public List<SemanticGraphEdge> getOutEdgesSorted(IndexedWord vertex) { List<SemanticGraphEdge> edges = outgoingEdgeList(vertex); Collections.sort(edges); return edges; }
private void recToString(IndexedWord curr, CoreLabel.OutputFormat wordFormat, StringBuilder sb, int offset, Set<IndexedWord> used) { used.add(curr); List<SemanticGraphEdge> edges = outgoingEdgeList(curr); Collections.sort(edges); for (SemanticGraphEdge edge : edges) { IndexedWord target = edge.getTarget(); sb.append(space(2 * offset)).append("-> ").append(target.toString(wordFormat)).append(" (").append(edge.getRelation()).append(")\n"); if (!used.contains(target)) { // recurse recToString(target, wordFormat, sb, offset + 1, used); } } }
/** * Returns the yield span for the word rooted at the given node, but only traversing a fixed set of relations. * @param tree The dependency graph to get the span from. * @param root The root word of the span. * @return A one indexed span rooted at the given word. */ private static Pair<Integer, Integer> getModifierSubtreeSpan(SemanticGraph tree, IndexedWord root) { if (tree.outgoingEdgeList(root).stream().anyMatch(x -> "neg".equals(x.getRelation().getShortName()))) { return getGeneralizedSubtreeSpan(tree, root, Collections.singleton("nmod")); } else { return getGeneralizedSubtreeSpan(tree, root, MODIFIER_ARCS); } }
edgeIter = sg.outgoingEdgeIterable(vertice); } else{ edgeIter = CollectionUtils.sorted(sg.outgoingEdgeList(vertice), (arg0, arg1) -> (arg0.getRelation().toString().compareTo(arg1.getRelation().toString())));
out.println("Parent is ROOT via root"); edgeList = graph.outgoingEdgeList(node); for (SemanticGraphEdge edge : edgeList) { String depWord = edge.getDependent().word();
List<SemanticGraphEdge> outgoingEdges = parse.outgoingEdgeList(node);
List<SemanticGraphEdge> orphanOutgoingEdges = sg.outgoingEdgeList(orphanGov); for (SemanticGraphEdge edge1 : orphanOutgoingEdges) { if (edge1.getRelation().getShortName().equals("cc")) {
/** * Replaces a node in the given SemanticGraph with the new node, * replacing its position in the node edges. */ public static void replaceNode(IndexedWord newNode, IndexedWord oldNode, SemanticGraph sg) { // Obtain the edges where the old node was the governor and the dependent. // Remove the old node, insert the new, and re-insert the edges. // Save the edges in a list so that remove operations don't affect // the iterator or our ability to find the edges in the first place List<SemanticGraphEdge> govEdges = sg.outgoingEdgeList(oldNode); List<SemanticGraphEdge> depEdges = sg.incomingEdgeList(oldNode); boolean oldNodeRemoved = sg.removeVertex(oldNode); if (oldNodeRemoved) { // If the new node is not present, be sure to add it in. if (!sg.containsVertex(newNode)) { sg.addVertex(newNode); } for (SemanticGraphEdge govEdge : govEdges) { sg.removeEdge(govEdge); sg.addEdge(newNode, govEdge.getDependent(), govEdge.getRelation(), govEdge.getWeight(), govEdge.isExtra()); } for (SemanticGraphEdge depEdge : depEdges) { sg.removeEdge(depEdge); sg.addEdge(depEdge.getGovernor(), newNode, depEdge.getRelation(), depEdge.getWeight(), depEdge.isExtra()); } } else { log.info("SemanticGraphUtils.replaceNode: previous node does not exist"); } }
public List<SemanticGraphEdge> getOutEdgesSorted(IndexedWord vertex) { List<SemanticGraphEdge> edges = outgoingEdgeList(vertex); Collections.sort(edges); return edges; }
public List<SemanticGraphEdge> getOutEdgesSorted(IndexedWord vertex) { List<SemanticGraphEdge> edges = outgoingEdgeList(vertex); Collections.sort(edges); return edges; }
public List<SemanticGraphEdge> getOutEdgesSorted(IndexedWord vertex) { List<SemanticGraphEdge> edges = outgoingEdgeList(vertex); Collections.sort(edges); return edges; }
private void recToString(IndexedWord curr, StringBuilder sb, int offset, Set<IndexedWord> used) { used.add(curr); List<SemanticGraphEdge> edges = outgoingEdgeList(curr); Collections.sort(edges); for (SemanticGraphEdge edge : edges) { IndexedWord target = edge.getTarget(); sb.append(space(2 * offset)).append("-> ").append(target).append(" (").append(edge.getRelation()).append(")\n"); if (!used.contains(target)) { // recurse recToString(target, sb, offset + 1, used); } } }
private void recToString(IndexedWord curr, CoreLabel.OutputFormat wordFormat, StringBuilder sb, int offset, Set<IndexedWord> used) { used.add(curr); List<SemanticGraphEdge> edges = outgoingEdgeList(curr); Collections.sort(edges); for (SemanticGraphEdge edge : edges) { IndexedWord target = edge.getTarget(); sb.append(space(2 * offset)).append("-> ").append(target.toString(wordFormat)).append(" (").append(edge.getRelation()).append(")\n"); if (!used.contains(target)) { // recurse recToString(target, wordFormat, sb, offset + 1, used); } } }
private void recToString(IndexedWord curr, CoreLabel.OutputFormat wordFormat, StringBuilder sb, int offset, Set<IndexedWord> used) { used.add(curr); List<SemanticGraphEdge> edges = outgoingEdgeList(curr); Collections.sort(edges); for (SemanticGraphEdge edge : edges) { IndexedWord target = edge.getTarget(); sb.append(space(2 * offset)).append("-> ").append(target.toString(wordFormat)).append(" (").append(edge.getRelation()).append(")\n"); if (!used.contains(target)) { // recurse recToString(target, wordFormat, sb, offset + 1, used); } } }
/** * Returns the yield span for the word rooted at the given node, but only traversing a fixed set of relations. * @param tree The dependency graph to get the span from. * @param root The root word of the span. * @return A one indexed span rooted at the given word. */ private static Pair<Integer, Integer> getModifierSubtreeSpan(SemanticGraph tree, IndexedWord root) { if (tree.outgoingEdgeList(root).stream().anyMatch(x -> "neg".equals(x.getRelation().getShortName()))) { return getGeneralizedSubtreeSpan(tree, root, Collections.singleton("nmod")); } else { return getGeneralizedSubtreeSpan(tree, root, MODIFIER_ARCS); } }
private static void recToString(IndexedWord curr, StringBuilder sb, int offset, Set<IndexedWord> used, SemanticGraph dependencies, HashMap<Integer, String> depLabels, HashMap<Integer, Integer> depParents) { used.add(curr); List<SemanticGraphEdge> edges = dependencies.outgoingEdgeList(curr); Collections.sort(edges); for (SemanticGraphEdge edge : edges) { IndexedWord target = edge.getTarget(); depParents.put(target.index(), edge.getSource().index()); depLabels.put(target.index(), edge.getRelation().toString()); sb.append(space(2 * offset)).append("-> ").append(target).append(" (").append(edge.getRelation()) .append(")\n"); if (!used.contains(target)) { // recurse recToString(target, sb, offset + 1, used, dependencies, depLabels, depParents); } } }
private static void recToString(IndexedWord curr, StringBuilder sb, int offset, Set<IndexedWord> used, SemanticGraph dependencies, HashMap<Integer, String> depLabels, HashMap<Integer, Integer> depParents) { used.add(curr); List<SemanticGraphEdge> edges = dependencies.outgoingEdgeList(curr); Collections.sort(edges); for (SemanticGraphEdge edge : edges) { IndexedWord target = edge.getTarget(); depParents.put(target.index(), edge.getSource().index()); depLabels.put(target.index(), edge.getRelation().toString()); sb.append(space(2 * offset)).append("-> ").append(target).append(" (").append(edge.getRelation()) .append(")\n"); if (!used.contains(target)) { // recurse recToString(target, sb, offset + 1, used, dependencies, depLabels, depParents); } } }
List<SemanticGraphEdge> outgoingEdges = parse.outgoingEdgeList(node);
/** * Replaces a node in the given SemanticGraph with the new node, * replacing its position in the node edges. */ public static void replaceNode(IndexedWord newNode, IndexedWord oldNode, SemanticGraph sg) { // Obtain the edges where the old node was the governor and the dependent. // Remove the old node, insert the new, and re-insert the edges. // Save the edges in a list so that remove operations don't affect // the iterator or our ability to find the edges in the first place List<SemanticGraphEdge> govEdges = sg.outgoingEdgeList(oldNode); List<SemanticGraphEdge> depEdges = sg.incomingEdgeList(oldNode); boolean oldNodeRemoved = sg.removeVertex(oldNode); if (oldNodeRemoved) { // If the new node is not present, be sure to add it in. if (!sg.containsVertex(newNode)) { sg.addVertex(newNode); } for (SemanticGraphEdge govEdge : govEdges) { sg.removeEdge(govEdge); sg.addEdge(newNode, govEdge.getDependent(), govEdge.getRelation(), govEdge.getWeight(), govEdge.isExtra()); } for (SemanticGraphEdge depEdge : depEdges) { sg.removeEdge(depEdge); sg.addEdge(depEdge.getGovernor(), newNode, depEdge.getRelation(), depEdge.getWeight(), depEdge.isExtra()); } } else { log.info("SemanticGraphUtils.replaceNode: previous node does not exist"); } }
/** * Replaces a node in the given SemanticGraph with the new node, * replacing its position in the node edges. */ public static void replaceNode(IndexedWord newNode, IndexedWord oldNode, SemanticGraph sg) { // Obtain the edges where the old node was the governor and the dependent. // Remove the old node, insert the new, and re-insert the edges. // Save the edges in a list so that remove operations don't affect // the iterator or our ability to find the edges in the first place List<SemanticGraphEdge> govEdges = sg.outgoingEdgeList(oldNode); List<SemanticGraphEdge> depEdges = sg.incomingEdgeList(oldNode); boolean oldNodeRemoved = sg.removeVertex(oldNode); if (oldNodeRemoved) { // If the new node is not present, be sure to add it in. if (!sg.containsVertex(newNode)) { sg.addVertex(newNode); } for (SemanticGraphEdge govEdge : govEdges) { sg.removeEdge(govEdge); sg.addEdge(newNode, govEdge.getDependent(), govEdge.getRelation(), govEdge.getWeight(), govEdge.isExtra()); } for (SemanticGraphEdge depEdge : depEdges) { sg.removeEdge(depEdge); sg.addEdge(depEdge.getGovernor(), newNode, depEdge.getRelation(), depEdge.getWeight(), depEdge.isExtra()); } } else { log.info("SemanticGraphUtils.replaceNode: previous node does not exist"); } }