@Override public void find() throws OperationException { specs = new LinkedHashSet<SubstitutionSubtreeSpecification>(); nodesAndTheirAntecedent = new LinkedHashMap<ExtendedNode, ExtendedNode>(); mapNodeToThoseWhoHaveItAsAntecedent = new SimpleValueSetMap<ExtendedNode, ExtendedNode>(); Set<ExtendedNode> nodes = AbstractNodeUtils.treeToLinkedHashSet(textTree.getTree()); for (ExtendedNode node : nodes) { if (node.getAntecedent()!=null) { ExtendedNode antecedent = AbstractNodeUtils.getDeepAntecedentOf(node); nodesAndTheirAntecedent.put(node,antecedent); mapNodeToThoseWhoHaveItAsAntecedent.put(antecedent, node); } } for (ExtendedNode nodeThatHasAntecedent : nodesAndTheirAntecedent.keySet()) { specs.add(new SubstitutionSubtreeSpecification(nodeThatHasAntecedent, nodesAndTheirAntecedent.get(nodeThatHasAntecedent))); } if (parser.equals(PARSER.EASYFIRST)) { addCopyForRefRelation(); } }
public static <T, S extends AbstractNode<T, S>> void integrateParserAntecedentToCoreference(List<S> textTrees, TreeCoreferenceInformation<S> coreferenceInformation) throws TreeCoreferenceInformationException { for (S tree : textTrees) { for (S node : TreeIterator.iterableTree(tree)) { if (!coreferenceInformation.isNodeExist(node)) { if (node.getAntecedent()!=null) { S deepAntecedent = AbstractNodeUtils.getDeepAntecedentOf(node); if (coreferenceInformation.isNodeExist(deepAntecedent)) { Integer deepAntecedentGroupId = coreferenceInformation.getIdOf(deepAntecedent); coreferenceInformation.addNodeToGroup(deepAntecedentGroupId, node); } } } } } }
BasicConstructionNode dependencyChildNode = AbstractNodeUtils.getDeepAntecedentOf(node); Token dependencyChildToken = AbstractNodeCASUtils.nodeToToken(tokenAnnotations, dependencyChildNode);
Set<ExtendedNode> subtree = new HashSet<ExtendedNode>(); for (ExtendedNode child : AbstractNodeUtils.treeToList(node)){ ExtendedNode toAdd =AbstractNodeUtils.getDeepAntecedentOf(child); int curId = node.getInfo().getNodeInfo().getSerial()-1; subtree.add(toAdd);
private static void addNeToAntecedents(BasicConstructionNode mutableParseTree) { for (BasicConstructionNode mutableNode : TreeIterator.iterableTree(mutableParseTree)) { if (mutableNode.getAntecedent()!=null) { BasicConstructionNode antecedent = AbstractNodeUtils.getDeepAntecedentOf(mutableNode); if (antecedent.getInfo().getNodeInfo().getNamedEntityAnnotation()!=null) { NamedEntity ne = antecedent.getInfo().getNodeInfo().getNamedEntityAnnotation(); Info newInfo = new DefaultInfo(mutableNode.getInfo().getId(), new DefaultNodeInfo(mutableNode.getInfo().getNodeInfo().getWord(), mutableNode.getInfo().getNodeInfo().getWordLemma(), mutableNode.getInfo().getNodeInfo().getSerial(), ne, mutableNode.getInfo().getNodeInfo().getSyntacticInfo()), mutableNode.getInfo().getEdgeInfo()); mutableNode.setInfo(newInfo); } } } }