Exemple #1
0
def tree_generate(node_name,
                  index,
                  pos,
                  dependency_list,
                  visited_list,
                  reverse=False):
    """Generating a tree from the node name given

    :type index: int
    :type pos: str
    :type visited_list: list
    :type node_name: str
    :type dependency_list: list
    """
    node = Node(node_name, pos, index=index)
    visited_list += [index]
    kids_index_name_pos = [(d[1][0], d[1][1], d[1][2]) for d in dependency_list
                           if d[0][0] == index]
    for x in kids_index_name_pos:
        if x in visited_list:
            node.value = 1
            node.addkid(Node(label=x[1], index=x[0], pos=x[2]))
        else:
            node.addkid(
                tree_generate(x[1], x[0], x[2], dependency_list, visited_list))
        visited_list += [x]

    else:
        if Node.get_children(node):
            node.value += sum([g.value for g in Node.get_children(node)])
            # print node.label, node.value, node.pos
    node.children.sort(key=lambda x: x.label, reverse=reverse)
    return node
Exemple #2
0
def tree_generate(node_name, index, pos, dependency_list, visited_list, reverse=False):
    """Generating a tree from the node name given

    :type index: int
    :type pos: str
    :type visited_list: list
    :type node_name: str
    :type dependency_list: list
    """
    node = Node(node_name, pos, index=index)
    visited_list += [index]
    kids_index_name_pos = [(d[1][0], d[1][1], d[1][2]) for d in dependency_list if d[0][0] == index]
    for x in kids_index_name_pos:
        if x in visited_list:
            node.value = 1
            node.addkid(Node(label=x[1], index=x[0], pos=x[2]))
        else:
            node.addkid(tree_generate(x[1], x[0], x[2], dependency_list, visited_list))
        visited_list += [x]

    else:
        if Node.get_children(node):
            node.value += sum([g.value for g in Node.get_children(node)])
            # print node.label, node.value, node.pos
    node.children.sort(key=lambda x: x.label, reverse=reverse)
    return node
Exemple #3
0
 def order_children(rootnode):
     if len(rootnode.children) == 0:
         return
     # order children of the rootnode
     rootnode.children = sorted(Node.get_children(rootnode),
                                key=lambda c: c.label)
     for cnode in Node.get_children(rootnode):
         order_children(cnode)
Exemple #4
0
 def treetostr(self, node):
     l = Node.get_label(node)
     t = None
     if isinstance(l, tuple):
         t, l = l
     if t == 'O':
         return '%s(%s)' % (l, ', '.join(
             map(self.treetostr, Node.get_children(node))))
     return l
Exemple #5
0
 def treetostr(self, node):
     l = Node.get_label(node)
     t = None
     if isinstance(l, tuple):
         t, l = l
     if t == 'O':
         return '%s(%s)' % (l, ', '.join(
             map(self.treetostr, Node.get_children(node))))
     return l
Exemple #6
0
def get_children(node):
    """Returns the children of node"""
    return Node.get_children(node)
Exemple #7
0
 def ts(node):
     return 1 + sum(map(ts, Node.get_children(node)))
import zss
# from simple_tree import Node
from zss import Node, simple_distance


def buildTree(state, node, chart):
    if state[4] == ():
        return
    else:
        for ptr in state[4]:
            child = Node(chart[ptr[0]][ptr[1]][0])
            node.addkid(child)
            buildTree(chart[ptr[0]][ptr[1]], child, chart)


rootNode1 = Node("Start", [])
buildTree(root1, rootNode1, chart1)

rootNode2 = Node("Start", [])
buildTree(root2, rootNode2, chart2)

print simple_distance(rootNode1, rootNode2)

# for child in rootNode1.get_children():
#     for chichild in child.get_children():
#         print "parent is: ", chichild.get_label()
#         for chichichild in chichild.get_children():
#             print chichichild.get_label()

for child in Node.get_children(rootNode1):
    print Node.get_label(child)
Exemple #9
0
def print_tree(node, tab_level=0):
    print("  " * tab_level, node.label)
    children = Node.get_children(node)
    for child in children:
        print_tree(child, tab_level + 1)
Exemple #10
0
 def ts(node):
     return 1 + sum(map(ts, Node.get_children(node)))
Exemple #11
0
def get_children(node):
    """Returns the children of node"""
    return Node.get_children(node)