def _find_special_nodes(self, node: ParentedTree): #IMP assumption: dealing with a tree #as such dont have to keep track of visited nodes #since each node has only one parent if not type(node) is str: #print(node.treeposition()) if (node.label() not in self.look_for) and (node.label() not in self.avoid): res = {self._find_special_nodes(n) for n in node} if 0 in res: return 0 else: return 2 elif node.label() in self.avoid: {self._find_special_nodes(n) for n in node} return 0 elif node.label() in self.look_for: res = {self._find_special_nodes(n) for n in node} if 0 in res: return 0 else: self.special_labels.add(node.treeposition()) return 1 else: return 2
def getTag(senArr, root): return senArr[int(root.label())][3] if __name__ == "__main__": senArr_eg = [ "1 I _ NN NN _ 2 _ _ _", "2 love _ VB VB _ 0 _ _ _", "3 to _ TO TO _ 4 _ _ _", "4 eat _ VB VB _ 2 _ _ _", "5 cabbage _ NN NN _ 4 _ _ _" ] print "****input_example:" print "\n".join(senArr_eg) senArr_eg = [line.split("\t") for line in senArr_eg] root = conll2tree(senArr_eg) print "****tree", root print "****height", root.height() print "root.label", root.label() print root[0] children_of_root = getChildren(root) for child in children_of_root: print "*** child of root", child.label() print "tree position", ParentedTree.treeposition(child) print "parent", ParentedTree.parent(child) print "parent_idx", ParentedTree.parent_index(child) print root[ParentedTree.parent_index(child)]
def getTag(senArr, root): return senArr[int(root.label())][3] if __name__ == "__main__": senArr_eg = ["1 I _ NN NN _ 2 _ _ _", "2 love _ VB VB _ 0 _ _ _", "3 to _ TO TO _ 4 _ _ _", "4 eat _ VB VB _ 2 _ _ _", "5 cabbage _ NN NN _ 4 _ _ _"] print "****input_example:" print "\n".join(senArr_eg) senArr_eg = [line.split("\t") for line in senArr_eg] root = conll2tree(senArr_eg) print "****tree", root print "****height", root.height() print "root.label", root.label() print root[0] children_of_root = getChildren(root) for child in children_of_root: print "*** child of root", child.label() print "tree position", ParentedTree.treeposition(child) print "parent", ParentedTree.parent(child) print "parent_idx", ParentedTree.parent_index(child) print root[ParentedTree.parent_index(child)]