private Pair<String, IntPair> getSpan(String s, List<Tree<Pair<String, IntPair>>> yield) { String[] parts = s.split(":"); assert parts.length == 2; int terminalNumber = Integer.parseInt(parts[0]); int height = Integer.parseInt(parts[1]); Tree<Pair<String, IntPair>> leaf = yield.get(terminalNumber); Tree<Pair<String, IntPair>> node = leaf.getParent(); while (height > 0) { node = node.getParent(); height--; } return node.getLabel(); }
private Pair<String, IntPair> getSpan(String s, List<Tree<Pair<String, IntPair>>> yield) { String[] parts = s.split(":"); assert parts.length == 2; int terminalNumber = Integer.parseInt(parts[0]); int height = Integer.parseInt(parts[1]); Tree<Pair<String, IntPair>> leaf = yield.get(terminalNumber); Tree<Pair<String, IntPair>> node = leaf.getParent(); while (height > 0) { node = node.getParent(); height--; } return node.getLabel(); }
/** * Assuming that the tree comes with lexical items and POS tags, the subcat frame for the verb * can be found by going to the parent of the POS tag (which is probably a VP) and listing its * children. */ public static String getSubcatFrame(Tree<String> yieldNode) { StringBuilder sb = new StringBuilder(); Tree<String> node = yieldNode.getParent().getParent(); for (Tree<String> t : node.childrenIterator()) { sb.append(t.getLabel()).append(" "); } return sb.toString(); }
/** * Assuming that the tree comes with lexical items and POS tags, the subcat frame for the verb * can be found by going to the parent of the POS tag (which is probably a VP) and listing its * children. */ public static String getSubcatFrame(Tree<String> yieldNode) { StringBuilder sb = new StringBuilder(); Tree<String> node = yieldNode.getParent().getParent(); for (Tree<String> t : node.childrenIterator()) { sb.append(t.getLabel()).append(" "); } return sb.toString(); }
/** * Assuming that the tree comes with lexical items and POS tags, the subcat frame for the verb * can be found by going to the parent of the POS tag (which is probably a VP) and listing its * children. */ public static String getSubcatFrame(Tree<String> yieldNode) { StringBuilder sb = new StringBuilder(); Tree<String> node = yieldNode.getParent().getParent(); for (Tree<String> t : node.childrenIterator()) { sb.append(t.getLabel()).append(" "); } return sb.toString(); }
/** * Assuming that the tree comes with lexical items and POS tags, the subcat frame for the verb * can be found by going to the parent of the POS tag (which is probably a VP) and listing its * children. */ public static String getSubcatFrame(Tree<String> yieldNode) { StringBuilder sb = new StringBuilder(); Tree<String> node = yieldNode.getParent().getParent(); for (Tree<String> t : node.childrenIterator()) { sb.append(t.getLabel()).append(" "); } return sb.toString(); }
public static Tree<String> getTreeCovering(Tree<String> parse, int start, int end) { Tree<String> tree = parse.getYield().get(start); while (!tree.isRoot()) { if (tree.getYield().size() >= (end - start)) { break; } tree = tree.getParent(); } return tree; }
public static Tree<String> getTreeCovering(Tree<String> parse, int start, int end) { Tree<String> tree = parse.getYield().get(start); while (!tree.isRoot()) { if (tree.getYield().size() >= (end - start)) { break; } tree = tree.getParent(); } return tree; }
public static Tree<String> getTreeCovering(Tree<String> parse, int start, int end) { Tree<String> tree = parse.getYield().get(start); while (!tree.isRoot()) { if (tree.getYield().size() >= (end - start)) { break; } tree = tree.getParent(); } return tree; }
public static Tree<String> getTreeCovering(Tree<String> parse, int start, int end) { Tree<String> tree = parse.getYield().get(start); while (!tree.isRoot()) { if (tree.getYield().size() >= (end - start)) { break; } tree = tree.getParent(); } return tree; }
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 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()); } } }
public static String[] getTerminalStringSentence(Tree<String> tree) { List<String> words = new ArrayList<>(); for (Tree<String> y : tree.getYield()) { if (!ParseTreeProperties.isNullLabel(y.getParent().getLabel())) words.add(ParseUtils.convertBracketsFromPTBFormat(y.getLabel())); } return words.toArray(new String[words.size()]); }
public static String[] getTerminalStringSentence(Tree<String> tree) { List<String> words = new ArrayList<>(); for (Tree<String> y : tree.getYield()) { if (!ParseTreeProperties.isNullLabel(y.getParent().getLabel())) words.add(ParseUtils.convertBracketsFromPTBFormat(y.getLabel())); } return words.toArray(new String[words.size()]); }
public static String getTerminalStringSentence(Tree<String> tree) { StringBuilder sb = new StringBuilder(); for (Tree<String> y : tree.getYield()) { if (!ParseTreeProperties.isNullLabel(y.getParent().getLabel())) sb.append(ParseUtils.convertBracketsFromPTBFormat(y.getLabel())).append(" "); } return sb.toString(); }
public static String getTerminalStringSentence(Tree<String> tree) { StringBuilder sb = new StringBuilder(); for (Tree<String> y : tree.getYield()) { if (!ParseTreeProperties.isNullLabel(y.getParent().getLabel())) sb.append(ParseUtils.convertBracketsFromPTBFormat(y.getLabel())).append(" "); } return sb.toString(); }
private void getLeftYield(Tree<T> node, List<T> leftYield) { for (int leftChildId = 0; leftChildId < node.getPositionAmongParentsChildren(); leftChildId++) { List<Tree<T>> leftChildYield = node.getParent().getChild(leftChildId).getYield(); for (Tree<T> leftYieldItem : leftChildYield) { leftYield.add(leftYieldItem.getLabel()); } } }
private void getLeftYield(Tree<T> node, List<T> leftYield) { for (int leftChildId = 0; leftChildId < node.getPositionAmongParentsChildren(); leftChildId++) { List<Tree<T>> leftChildYield = node.getParent().getChild(leftChildId).getYield(); for (Tree<T> leftYieldItem : leftChildYield) { leftYield.add(leftYieldItem.getLabel()); } } }
@Override public Set<Feature> getWordFeatures(TextAnnotation ta, int wordPosition) throws EdisonException { Sentence sentence = ta.getSentenceFromToken(wordPosition); int sentenceStart = sentence.getStartSpan(); int predicatePosition = wordPosition - sentenceStart; Tree<String> tree = ParseHelper.getParseTree(parseViewName, sentence); Tree<Pair<String, IntPair>> spanLabeledTree = ParseUtils.getSpanLabeledTree(tree); Tree<Pair<String, IntPair>> currentNode = spanLabeledTree.getYield().get(predicatePosition).getParent(); String f = getVoice(currentNode); return new LinkedHashSet<Feature>(Collections.singletonList(DiscreteFeature.create(f))); }
@Override public Set<Feature> getWordFeatures(TextAnnotation ta, int wordPosition) throws EdisonException { Sentence sentence = ta.getSentenceFromToken(wordPosition); int sentenceStart = sentence.getStartSpan(); int predicatePosition = wordPosition - sentenceStart; Tree<String> tree = ParseHelper.getParseTree(parseViewName, sentence); Tree<Pair<String, IntPair>> spanLabeledTree = ParseUtils.getSpanLabeledTree(tree); Tree<Pair<String, IntPair>> currentNode = spanLabeledTree.getYield().get(predicatePosition).getParent(); String f = getVoice(currentNode); return new LinkedHashSet<Feature>(Collections.singletonList(DiscreteFeature.create(f))); }