@Override public String transform(Tree<String> input) { return input.getLabel(); } });
static FeatureExtractor getParameterizedFeatureExtractor(Tree<String> tree, FeatureExtractor fex, HashMap<String, String> variables) throws EdisonException { ParameterizedFeatureGenerator gen = fexes.get(tree.getLabel()); return gen.getFeatureExtractor(tree, fex, variables); }
public static List<String> getTerminalTokens(Tree<String> tree) { List<String> output = new ArrayList<>(); for (Tree<String> t : tree.getYield()) { output.add(t.getLabel()); } return output; }
public static String getTerminalString(Tree<String> tree) { StringBuilder sb = new StringBuilder(); for (Tree<String> y : tree.getYield()) { sb.append(y.getLabel()).append(" "); } return sb.toString(); }
public static List<String> getTerminalTokens(Tree<String> tree) { List<String> output = new ArrayList<>(); for (Tree<String> t : tree.getYield()) { output.add(t.getLabel()); } return output; }
public static String getTerminalString(Tree<String> tree) { StringBuilder sb = new StringBuilder(); for (Tree<String> y : tree.getYield()) { sb.append(y.getLabel()).append(" "); } return sb.toString(); }
public static String getTerminalString(Tree<String> tree) { StringBuilder sb = new StringBuilder(); for (Tree<String> y : tree.getYield()) { sb.append(y.getLabel()).append(" "); } return sb.toString(); }
private List<String> getUniqueList(Tree<String> tree) { List<String> f = new ArrayList<>(); f.add(tree.getLabel()); for (Tree<String> child : tree.getChildren()) { f.add(child.toString().replaceAll("\\s+", " ")); } Collections.sort(f); return f; }
private static Predicate<Constituent> knownQuery(Tree<String> tree, Constituent c, Map<String, String> variables) throws EdisonException { String label = tree.getLabel(); if (knownQueries.containsKey(label)) return knownQueries.get(label).create(tree, c, variables); else { throw new EdisonException("Unknown query '" + label + "'. Expecting one of " + knownQueries.keySet() + ".\n" + tree); } }
private static Predicate<Constituent> knownQuery(Tree<String> tree, Constituent c, Map<String, String> variables) throws EdisonException { String label = tree.getLabel(); if (knownQueries.containsKey(label)) return knownQueries.get(label).create(tree, c, variables); else { throw new EdisonException("Unknown query '" + label + "'. Expecting one of " + knownQueries.keySet() + ".\n" + tree); } }
@Deprecated public static <T> String getPathStringToCommonAncestor(Tree<T> start, Tree<T> end, Tree<T> tree, int maxDepth) throws Exception { Pair<List<Tree<T>>, List<Tree<T>>> paths = getPath(start, end, tree, maxDepth); StringBuilder buffer = new StringBuilder(); for (int i = 1; i < paths.getFirst().size(); i++) { buffer.append(paths.getFirst().get(i).getLabel()).append(PATH_UP_STRING); } return buffer.toString(); }
@Deprecated public static <T> String getPathStringToCommonAncestor(Tree<T> start, Tree<T> end, Tree<T> tree, int maxDepth) throws Exception { Pair<List<Tree<T>>, List<Tree<T>>> paths = getPath(start, end, tree, maxDepth); StringBuilder buffer = new StringBuilder(); for (int i = 1; i < paths.getFirst().size(); i++) { buffer.append(paths.getFirst().get(i).getLabel()).append(PATH_UP_STRING); } return buffer.toString(); }
@Deprecated public static <T> String getPathStringToCommonAncestor(Tree<T> start, Tree<T> end, Tree<T> tree, int maxDepth) throws Exception { Pair<List<Tree<T>>, List<Tree<T>>> paths = getPath(start, end, tree, maxDepth); StringBuilder buffer = new StringBuilder(); for (int i = 1; i < paths.getFirst().size(); i++) { buffer.append(paths.getFirst().get(i).getLabel()).append(PATH_UP_STRING); } return buffer.toString(); }
public int getPredicateStart(List<Tree<Pair<String, IntPair>>> yield) { Tree<Pair<String, IntPair>> l = yield.get(predicateTerminal); return l.getLabel().getSecond().getFirst(); } }
/** * Removes subtrees labeled with the null label (-NONE-) and returns a new tree * * @param tree A parse tree, possibly containing null labels * @return A new parse tree where subtrees with the null label are removed */ public static Tree<String> snipNullNodes(Tree<String> tree) { Tree<String> newTree = new Tree<>(tree.getLabel()); createSnippedTree(tree, newTree); return newTree; }
private static boolean checkForPredicate(Tree<Pair<String, IntPair>> tree, int predicateIndex) { if (tree == null) return false; // Does the left-most leaf of the tree match the predicate? return tree.getYield().get(0).getLabel().getSecond().getFirst() == predicateIndex; } }
/** * assumes that the integer in the dependency tree label is ALWAYS token offset in the TEXT, * i.e. is NOT sentence-relative. */ private Constituent createTreeConstituent(Tree<Pair<String, Integer>> depTree, double treeScore, String constituentLabel) { Pair<String, Integer> label = depTree.getLabel(); int start = label.getSecond(); int end = label.getSecond() + 1; // TODO: verify stanford at-the-end indexing! return createNewConstituent(start, end, constituentLabel, treeScore); }
private void getRightYield(Tree<T> node, List<T> rightYield) { for (int rightChildId = node.getPositionAmongParentsChildren() + 1; rightChildId < node .getParent().getNumberOfChildren(); rightChildId++) { List<Tree<T>> rightChildYield = node.getParent().getChild(rightChildId).getYield(); for (Tree<T> rightYieldItem : rightChildYield) { rightYield.add(rightYieldItem.getLabel()); } } }
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; }