KoichiYasuoka commited on
Commit
9892903
1 Parent(s): a09d0ab

root analysis improved

Browse files
Files changed (1) hide show
  1. README.md +7 -7
README.md CHANGED
@@ -34,16 +34,16 @@ class UDgoeswith(object):
34
  import numpy,torch,ufal.chu_liu_edmonds
35
  w=self.tokenizer(text,return_offsets_mapping=True)
36
  v=w["input_ids"]
37
- n=len(v)-1
38
  with torch.no_grad():
39
- d=self.model(input_ids=torch.tensor([v[0:i]+[self.tokenizer.mask_token_id]+v[i+1:]+[v[i]] for i in range(1,n)]))
40
- e=d.logits.numpy()[:,1:n,:]
41
- e[:,:,0]=numpy.nan
42
- m=numpy.full((n,n),numpy.nan)
43
  m[1:,1:]=numpy.nanmax(e,axis=2).transpose()
44
- p=numpy.zeros((n,n))
45
  p[1:,1:]=numpy.nanargmax(e,axis=2).transpose()
46
- for i in range(1,n):
47
  m[i,0],m[i,i],p[i,0]=m[i,i],numpy.nan,p[i,i]
48
  h=ufal.chu_liu_edmonds.chu_liu_edmonds(m)[0]
49
  u="# text = "+text+"\n"
 
34
  import numpy,torch,ufal.chu_liu_edmonds
35
  w=self.tokenizer(text,return_offsets_mapping=True)
36
  v=w["input_ids"]
37
+ x=[v[0:i]+[self.tokenizer.mask_token_id]+v[i+1:]+[j] for i,j in enumerate(v[1:-1],1)]
38
  with torch.no_grad():
39
+ e=self.model(input_ids=torch.tensor(x)).logits.numpy()[:,1:-2,:]
40
+ r=[1 if i==0 else -1 if j.endswith("|root") else 0 for i,j in sorted(self.model.config.id2label.items())]
41
+ e+=numpy.where(numpy.add.outer(numpy.identity(e.shape[0]),r)==0,0,numpy.nan)
42
+ m=numpy.full((e.shape[0]+1,e.shape[1]+1),numpy.nan)
43
  m[1:,1:]=numpy.nanmax(e,axis=2).transpose()
44
+ p=numpy.zeros(m.shape)
45
  p[1:,1:]=numpy.nanargmax(e,axis=2).transpose()
46
+ for i in range(1,m.shape[0]):
47
  m[i,0],m[i,i],p[i,0]=m[i,i],numpy.nan,p[i,i]
48
  h=ufal.chu_liu_edmonds.chu_liu_edmonds(m)[0]
49
  u="# text = "+text+"\n"