KoichiYasuoka commited on
Commit
ee20ef9
1 Parent(s): bf3e0fd

root analysis improved

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