public void addSubtrees(Iterable<Tree<T>> subtrees) { for (Tree<T> tree : subtrees) { this.addSubtree(tree); } }
public void addSubtrees(Iterable<Tree<T>> subtrees) { for (Tree<T> tree : subtrees) { this.addSubtree(tree); } }
public void addSubtrees(Iterable<Tree<T>> subtrees, Iterable<T> edgeLabels) { Iterator<Tree<T>> treeIter = subtrees.iterator(); Iterator<T> edgeIter = edgeLabels.iterator(); while (treeIter.hasNext() && edgeIter.hasNext()) { this.addSubtree(treeIter.next(), edgeIter.next()); } }
public void addSubtrees(Iterable<Tree<T>> subtrees, Iterable<T> edgeLabels) { Iterator<Tree<T>> treeIter = subtrees.iterator(); Iterator<T> edgeIter = edgeLabels.iterator(); while (treeIter.hasNext() && edgeIter.hasNext()) { this.addSubtree(treeIter.next(), edgeIter.next()); } }
@SuppressWarnings("unchecked") @Override public Object clone() throws CloneNotSupportedException { Tree<T> cloneTree = new Tree<>(this.label); // for (Tree<T> child : children) for (int i = 0; i < this.getNumberOfChildren(); i++) { Tree<T> child = children.get(i); T edgeLabel = childrenEdgeLabels.get(i); cloneTree.addSubtree((Tree<T>) (child.clone()), edgeLabel); } return cloneTree; }
@SuppressWarnings("unchecked") @Override public Object clone() throws CloneNotSupportedException { Tree<T> cloneTree = new Tree<>(this.label); // for (Tree<T> child : children) for (int i = 0; i < this.getNumberOfChildren(); i++) { Tree<T> child = children.get(i); T edgeLabel = childrenEdgeLabels.get(i); cloneTree.addSubtree((Tree<T>) (child.clone()), edgeLabel); } return cloneTree; }
public static <T, S> Tree<S> mapTreePostfix(Tree<T> tree, ITransformer<Tree<T>, S> transformer) { List<Tree<S>> children = new ArrayList<>(); for (Tree<T> child : tree.getChildren()) { children.add(mapTreePostfix(child, transformer)); } Tree<S> newTree = new Tree<>(transformer.transform(tree)); for (Tree<S> child : children) { newTree.addSubtree(child); } return newTree; }
public static <T, S> Tree<S> mapTreePostfix(Tree<T> tree, ITransformer<Tree<T>, S> transformer) { List<Tree<S>> children = new ArrayList<>(); for (Tree<T> child : tree.getChildren()) { children.add(mapTreePostfix(child, transformer)); } Tree<S> newTree = new Tree<>(transformer.transform(tree)); for (Tree<S> child : children) { newTree.addSubtree(child); } return newTree; }
private void populateChildren(Tree<Pair<String, Integer>> tree, DepStruct struct, DepInst sent, int pos) { for (int i : struct.deps.get(pos)) { // All the node positions are -1 to account for the extra <root> node added Pair<String, Integer> nodePair = new Pair<>(sent.forms[i], i - 1); Tree<Pair<String, Integer>> childTree = new Tree<>(nodePair); tree.addSubtree(childTree, new Pair<>(struct.deprels[i], i - 1)); populateChildren(childTree, struct, sent, i); } }
private void populateChildren(Tree<Pair<String, Integer>> tree, DepStruct struct, DepInst sent, int pos) { for (int i : struct.deps.get(pos)) { // All the node positions are -1 to account for the extra <root> node added Pair<String, Integer> nodePair = new Pair<>(sent.forms[i], i - 1); Tree<Pair<String, Integer>> childTree = new Tree<>(nodePair); tree.addSubtree(childTree, new Pair<>(struct.deprels[i], i - 1)); populateChildren(childTree, struct, sent, i); } }
public static <T, S> Tree<S> mapTree(final Tree<T> tree, final ITransformer<Tree<T>, S> transformer) { Tree<S> t = new Tree<>(transformer.transform(tree)); for (Tree<T> treeChild : tree.getChildren()) { t.addSubtree(mapTree(treeChild, transformer)); } return t; }
public static <T, S> Tree<S> mapTree(final Tree<T> tree, final ITransformer<Tree<T>, S> transformer) { Tree<S> t = new Tree<>(transformer.transform(tree)); for (Tree<T> treeChild : tree.getChildren()) { t.addSubtree(mapTree(treeChild, transformer)); } return t; }
public static <T, S> Tree<S> conditionalMapTree(Tree<T> tree, ITransformer<Tree<T>, S> transformer, ITransformer<Tree<T>, Boolean> predicate) { Tree<S> t = new Tree<>(transformer.transform(tree)); for (Tree<T> treeChild : tree.getChildren()) { if (predicate.transform(treeChild)) t.addSubtree(conditionalMapTree(treeChild, transformer, predicate)); } return t; }
public static <T, S> Tree<S> mapTree(final Tree<T> tree, final ITransformer<Tree<T>, S> nodeTransformer, final ITransformer<T, S> edgeTransformer) { Tree<S> t = new Tree<>(nodeTransformer.transform(tree)); for (int i = 0; i < tree.getNumberOfChildren(); i++) { Tree<T> treeChild = tree.getChild(i); T edgeLabel = tree.getChildrenEdgeLabels().get(i); t.addSubtree(mapTree(treeChild, nodeTransformer, edgeTransformer), edgeTransformer.transform(edgeLabel)); } return t; }
public static <T, S> Tree<S> mapTree(final Tree<T> tree, final ITransformer<Tree<T>, S> nodeTransformer, final ITransformer<T, S> edgeTransformer) { Tree<S> t = new Tree<>(nodeTransformer.transform(tree)); for (int i = 0; i < tree.getNumberOfChildren(); i++) { Tree<T> treeChild = tree.getChild(i); T edgeLabel = tree.getChildrenEdgeLabels().get(i); t.addSubtree(mapTree(treeChild, nodeTransformer, edgeTransformer), edgeTransformer.transform(edgeLabel)); } return t; }
public static <T, S> Tree<S> conditionalMapTree(Tree<T> tree, ITransformer<Tree<T>, S> transformer, ITransformer<Tree<T>, Boolean> predicate) { Tree<S> t = new Tree<>(transformer.transform(tree)); for (Tree<T> treeChild : tree.getChildren()) { if (predicate.transform(treeChild)) t.addSubtree(conditionalMapTree(treeChild, transformer, predicate)); } return t; }
protected Tree<String> buildTree(Constituent root) { Tree<String> t; if (isDependencyTree) t = new Tree<>(root.toString()); else t = new Tree<>(root.getLabel()); for (Relation r : root.getOutgoingRelations()) { if (!isDependencyTree) t.addSubtree(buildTree(r.getTarget())); else t.addSubtree(buildTree(r.getTarget()), r.getRelationName()); } return t; }
private Tree<Constituent> getConstituentSubTree(Tree<Pair<String, IntPair>> parseTree) { Pair<String, IntPair> rootLabel = parseTree.getLabel(); Constituent root = createConstituent(rootLabel); Tree<Constituent> constituentTree = new Tree<>(root); for (Tree<Pair<String, IntPair>> child : parseTree.getChildren()) { if (child.isLeaf()) continue; constituentTree.addSubtree(getConstituentSubTree(child)); } return constituentTree; }
private Tree<Constituent> getConstituentSubTree(Tree<Pair<String, IntPair>> parseTree) { Pair<String, IntPair> rootLabel = parseTree.getLabel(); Constituent root = createConstituent(rootLabel); Tree<Constituent> constituentTree = new Tree<>(root); for (Tree<Pair<String, IntPair>> child : parseTree.getChildren()) { if (child.isLeaf()) continue; constituentTree.addSubtree(getConstituentSubTree(child)); } return constituentTree; }
private void populateChildren(SemanticGraph depGraph, IndexedWord root, Tree<Pair<String, Integer>> tree, TextAnnotation ta, int sentId) { if (depGraph.getChildren(root).size() == 0) return; for (IndexedWord child : depGraph.getChildren(root)) { int childPosition = getNodePosition(ta, child, sentId); Pair<String, Integer> nodePair = new Pair<>(child.originalText(), childPosition); Tree<Pair<String, Integer>> childTree = new Tree<>(nodePair); tree.addSubtree(childTree, new Pair<>(depGraph.getEdge(root, child).toString(), childPosition)); populateChildren(depGraph, child, childTree, ta, sentId); } }