Ejemplo n.º 1
0
def init():
    # generate reference edges
    rootNode = None
    ename2treeNode = {}
    for i, node in enumerate(userInput):
        if i == 0:  ## ROOT
            rootNode = TreeNode(parent=None,
                                level=-1,
                                eid=-1,
                                ename="ROOT",
                                isUserProvided=True,
                                confidence_score=0.0,
                                max_children=level2max_children[-1])
            ename2treeNode["ROOT"] = rootNode
            for children in node[2]:
                newNode = TreeNode(parent=rootNode,
                                   level=0,
                                   eid=ename2eid[children],
                                   ename=children,
                                   isUserProvided=True,
                                   confidence_score=0.0,
                                   max_children=level2max_children[0])
                ename2treeNode[children] = newNode
                rootNode.addChildren([newNode])
        else:
            ename = node[0]
            eid = ename2eid[
                ename]  # assume user supervision is an entity mention in entity2id.txt
            level = node[1]
            childrens = node[2]
            if ename in ename2treeNode:  # existing node
                parent_treeNode = ename2treeNode[ename]
                for children in childrens:
                    newNode = TreeNode(
                        parent=parent_treeNode,
                        level=parent_treeNode.level + 1,
                        eid=ename2eid[children],
                        ename=children,
                        isUserProvided=True,
                        confidence_score=0.0,
                        max_children=level2max_children[parent_treeNode.level +
                                                        1])
                    ename2treeNode[children] = newNode
                    parent_treeNode.addChildren([newNode])
                    level2reference_edges[parent_treeNode.level].append(
                        (parent_treeNode.eid, newNode.eid))
            else:  # not existing node
                print("[ERROR] disconnected tree node: %s" % node)

    return rootNode
Ejemplo n.º 2
0
                         eid=-1,
                         ename="ROOT",
                         isUserProvided=True,
                         confidence_score=0.0,
                         max_children=level2max_children[-1])
     ename2treeNode["ROOT"] = rootNode
     for children in node[2]:
         newNode = TreeNode(parent=rootNode,
                            level=0,
                            eid=ename2eid[children],
                            ename=children,
                            isUserProvided=True,
                            confidence_score=0.0,
                            max_children=level2max_children[0])
         ename2treeNode[children] = newNode
         rootNode.addChildren([newNode])
 else:
     ename = node[0]
     eid = ename2eid[
         ename]  # assume user supervision is an entity mention in entity2id.txt
     level = node[1]
     childrens = node[2]
     if ename in ename2treeNode:  # existing node
         parent_treeNode = ename2treeNode[ename]
         for children in childrens:
             newNode = TreeNode(
                 parent=parent_treeNode,
                 level=parent_treeNode.level + 1,
                 eid=ename2eid[children],
                 ename=children,
                 isUserProvided=True,