Loading conllusvg/UDPipe2UD.py +5 −12 Original line number Diff line number Diff line Loading @@ -3,7 +3,6 @@ class UDPipeEntry(object): def __init__(self,result): self._result=result if "\n" in result: t=[UDPipeEntry("0\t_\t_\t_\t_\t_\t0\t_\t_\t_")] for r in result.split("\n"): Loading @@ -14,6 +13,7 @@ class UDPipeEntry(object): w.head=w if w._head==0 else t[i+w._head-w.id] w._parent=self self._tokens=t self._result=result else: w=result.split("\t") try: Loading @@ -21,7 +21,7 @@ class UDPipeEntry(object): except: w=[0]*10 self.id,self.form,self.lemma,self.upos,self.xpos,self.feats,self._head,self.deprel,self.deps,self.misc=w if len(w)==10 else [0]*10 self._useResult=True self._result="" def __setattr__(self,name,value): v=value if hasattr(self,name): Loading @@ -30,26 +30,19 @@ class UDPipeEntry(object): i=t.index(self) v=self if v==0 else t[i+v-self.id] if getattr(self,name)!=v: super(UDPipeEntry,self._parent).__setattr__("_result","") if name=="id": t=self._parent._tokens i=t.index(self) j=i+v-self.id super(UDPipeEntry,t[j]).__setattr__("id",t[i].id) super(UDPipeEntry,t[j]).__setattr__("_useResult",False) t[i],t[j]=t[j],t[i] super(UDPipeEntry,self).__setattr__("_useResult",False) super(UDPipeEntry,self).__setattr__(name,v) def __repr__(self): if self._useResult: if hasattr(self,"_tokens"): for t in self._tokens: if not t._useResult: self._useResult=False break if self._useResult: if self._result!="": r=self._result elif hasattr(self,"_tokens"): r="".join(str(t)+"\n" for t in self._tokens[1:]) r="".join(str(t)+"\n" for t in self._tokens[1:]).replace("\n1\t","\n\n1\t") else: r="\t".join([str(self.id),self.form,self.lemma,self.upos,self.xpos,self.feats,str(0 if self.head is self else self.head.id),self.deprel,self.deps,self.misc]) return r if type(r) is str else r.encode("utf-8") Loading Loading
conllusvg/UDPipe2UD.py +5 −12 Original line number Diff line number Diff line Loading @@ -3,7 +3,6 @@ class UDPipeEntry(object): def __init__(self,result): self._result=result if "\n" in result: t=[UDPipeEntry("0\t_\t_\t_\t_\t_\t0\t_\t_\t_")] for r in result.split("\n"): Loading @@ -14,6 +13,7 @@ class UDPipeEntry(object): w.head=w if w._head==0 else t[i+w._head-w.id] w._parent=self self._tokens=t self._result=result else: w=result.split("\t") try: Loading @@ -21,7 +21,7 @@ class UDPipeEntry(object): except: w=[0]*10 self.id,self.form,self.lemma,self.upos,self.xpos,self.feats,self._head,self.deprel,self.deps,self.misc=w if len(w)==10 else [0]*10 self._useResult=True self._result="" def __setattr__(self,name,value): v=value if hasattr(self,name): Loading @@ -30,26 +30,19 @@ class UDPipeEntry(object): i=t.index(self) v=self if v==0 else t[i+v-self.id] if getattr(self,name)!=v: super(UDPipeEntry,self._parent).__setattr__("_result","") if name=="id": t=self._parent._tokens i=t.index(self) j=i+v-self.id super(UDPipeEntry,t[j]).__setattr__("id",t[i].id) super(UDPipeEntry,t[j]).__setattr__("_useResult",False) t[i],t[j]=t[j],t[i] super(UDPipeEntry,self).__setattr__("_useResult",False) super(UDPipeEntry,self).__setattr__(name,v) def __repr__(self): if self._useResult: if hasattr(self,"_tokens"): for t in self._tokens: if not t._useResult: self._useResult=False break if self._useResult: if self._result!="": r=self._result elif hasattr(self,"_tokens"): r="".join(str(t)+"\n" for t in self._tokens[1:]) r="".join(str(t)+"\n" for t in self._tokens[1:]).replace("\n1\t","\n\n1\t") else: r="\t".join([str(self.id),self.form,self.lemma,self.upos,self.xpos,self.feats,str(0 if self.head is self else self.head.id),self.deprel,self.deps,self.misc]) return r if type(r) is str else r.encode("utf-8") Loading