edu.stanford.nlp.trees
Class Trees

java.lang.Object
  extended by edu.stanford.nlp.trees.Trees

public class Trees
extends java.lang.Object

Various static utilities for the Tree class.

Author:
Roger Levy, Dan Klein, Aria Haghighi (tree path methods)

Method Summary
static Tree applyToProjections(TreeVisitor v, Tree head, Tree root, HeadFinder hf)
           
static Tree copyHelper(Tree t, java.util.Map<Tree,Tree> newToOld, java.util.Map<Tree,Tree> oldToNew)
           
static void fixEmptyTreeLeafs(Tree t, java.util.Map<Tree,Tree> newToOld, java.util.Map<Tree,Tree> oldToNew)
          traceTo() values that are contained in the tree are assigned to new objects.
static Tree getLeaf(Tree tree, int i)
          Gets the ith leaf of a tree from the left.
static Tree getLowestCommonAncestor(java.util.List<Tree> nodes, Tree root)
          Get lowest common ancestor of all the nodes in the list with the tree rooted at root
static Tree getLowestCommonAncestor(Tree t1, Tree t2, Tree root)
          returns the node of a tree which represents the lowest common ancestor of nodes t1 and t2 dominated by root.
static Tree getPreTerminal(Tree tree, int n)
          gets the nth preterminal in tree.
static Tree getTerminal(Tree tree, int n)
          gets the nth terminal in tree.
static boolean heads(Tree head, Tree node, HeadFinder hf)
          returns true iff head (transitively) heads node
static java.util.List<Label> leafLabels(Tree t)
          returns the labels of the leaves in a Tree in the order that they're found.
static java.util.List<Tree> leaves(Tree t)
          returns the leaves in a Tree in the order that they're found.
static int leftEdge(Tree t, Tree root)
          Returns the positional index of the left edge of a tree t within a given root, as defined by the size of the yield of all material preceding t.
static Tree lexicalize(Tree t, HeadFinder hf)
          Returns a lexicalized Tree whose Labels are CategoryWordTag instances, all corresponds to the input tree.
static java.util.List<java.lang.String> localTreeAsCatList(Tree t)
          returns the syntactic category of the tree as a list of the syntactic categories of the mother and the daughters
static void main(java.lang.String[] args)
           
static Tree maximalProjection(Tree head, Tree root, HeadFinder hf)
          returns the maximal projection of head in root given a HeadFinder
static Tree normalizeTree(Tree tree, TreeNormalizer tn, TreeFactory tf)
           
static int objectEqualityIndexOf(Tree parent, Tree daughter)
          Returns the index of daughter in parent by ==.
static java.util.List<Tree> pathFromRoot(Tree t, Tree root)
          returns list of tree nodes to root from t.
static java.util.List<java.lang.String> pathNodeToNode(Tree from, Tree to, Tree root)
          returns a list of categories that is the path from Tree from to Tree to within Tree root.
static java.util.List<Tree> preTerminals(Tree t)
           
static Tree readTree(java.lang.String str)
          Simple tree reading utility method.
static Tree readTree(java.lang.String ptbTreeString, TreeFactory treeFactory)
          Simple tree reading utility method.
static void replaceNode(Tree node, Tree node1, Tree t)
          replaces all instances (by ==) of node with node1.
static int rightEdge(Tree t, Tree root)
          Returns the positional index of the right edge of a tree t within a given root, as defined by the size of the yield of all material preceding t plus all the material contained in t.
static Tree safeDeepCopy(Tree t)
          #### MAJOR UGLINESS #### this is a workaround for the fact that there's no good way to clone a tree.
static java.util.List<CoreLabel> taggedLeafLabels(Tree t)
          returns the labels of the leaves in a Tree, augmented with POS tags.
static java.lang.String toDebugStructureString(Tree t)
          Return information about the objects in this Tree.
static Tree toFlatTree(java.util.ArrayList<? extends HasWord> s, LabelFactory lf)
          Turns a sentence into a flat phrasal tree.
static Tree toFlatTree(java.util.ArrayList<HasWord> s)
          Turns a sentence into a flat phrasal tree.
static java.lang.String treeToLatex(Tree t)
           
static java.lang.String treeToLatexEven(Tree t)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

leftEdge

public static int leftEdge(Tree t,
                           Tree root)
Returns the positional index of the left edge of a tree t within a given root, as defined by the size of the yield of all material preceding t.


rightEdge

public static int rightEdge(Tree t,
                            Tree root)
Returns the positional index of the right edge of a tree t within a given root, as defined by the size of the yield of all material preceding t plus all the material contained in t.


lexicalize

public static Tree lexicalize(Tree t,
                              HeadFinder hf)
Returns a lexicalized Tree whose Labels are CategoryWordTag instances, all corresponds to the input tree.


leaves

public static java.util.List<Tree> leaves(Tree t)
returns the leaves in a Tree in the order that they're found.


preTerminals

public static java.util.List<Tree> preTerminals(Tree t)

leafLabels

public static java.util.List<Label> leafLabels(Tree t)
returns the labels of the leaves in a Tree in the order that they're found.


taggedLeafLabels

public static java.util.List<CoreLabel> taggedLeafLabels(Tree t)
returns the labels of the leaves in a Tree, augmented with POS tags. assumes that the labels are CoreLabels.


heads

public static boolean heads(Tree head,
                            Tree node,
                            HeadFinder hf)
returns true iff head (transitively) heads node


maximalProjection

public static Tree maximalProjection(Tree head,
                                     Tree root,
                                     HeadFinder hf)
returns the maximal projection of head in root given a HeadFinder


applyToProjections

public static Tree applyToProjections(TreeVisitor v,
                                      Tree head,
                                      Tree root,
                                      HeadFinder hf)

getTerminal

public static Tree getTerminal(Tree tree,
                               int n)
gets the nth terminal in tree. The first terminal is number zero.


getPreTerminal

public static Tree getPreTerminal(Tree tree,
                                  int n)
gets the nth preterminal in tree. The first terminal is number zero.


localTreeAsCatList

public static java.util.List<java.lang.String> localTreeAsCatList(Tree t)
returns the syntactic category of the tree as a list of the syntactic categories of the mother and the daughters


objectEqualityIndexOf

public static int objectEqualityIndexOf(Tree parent,
                                        Tree daughter)
Returns the index of daughter in parent by ==. Returns -1 if daughter not found.


toDebugStructureString

public static java.lang.String toDebugStructureString(Tree t)
Return information about the objects in this Tree.

Parameters:
t - The tree to examine.
Returns:
A human-readable String

toFlatTree

public static Tree toFlatTree(java.util.ArrayList<HasWord> s)
Turns a sentence into a flat phrasal tree. The structure is S -> tag*. And then each tag goes to a word. The tag is either found from the label or made "WD". The tag and phrasal node have a StringLabel.

Parameters:
s - The Sentence to make the Tree from
Returns:
The one phrasal level Tree

toFlatTree

public static Tree toFlatTree(java.util.ArrayList<? extends HasWord> s,
                              LabelFactory lf)
Turns a sentence into a flat phrasal tree. The structure is S -> tag*. And then each tag goes to a word. The tag is either found from the label or made "WD". The tag and phrasal node have a StringLabel.

Parameters:
s - The Sentence to make the Tree from
lf - The LabelFactory with which to create the new Tree labels
Returns:
The one phrasal level Tree

treeToLatex

public static java.lang.String treeToLatex(Tree t)

treeToLatexEven

public static java.lang.String treeToLatexEven(Tree t)

main

public static void main(java.lang.String[] args)
                 throws java.io.IOException
Throws:
java.io.IOException

normalizeTree

public static Tree normalizeTree(Tree tree,
                                 TreeNormalizer tn,
                                 TreeFactory tf)

getLeaf

public static Tree getLeaf(Tree tree,
                           int i)
Gets the ith leaf of a tree from the left. The leftmost leaf is numbered 0.

Returns:
The ith leaf as a Tree, or null if there is no such leaf.

getLowestCommonAncestor

public static Tree getLowestCommonAncestor(java.util.List<Tree> nodes,
                                           Tree root)
Get lowest common ancestor of all the nodes in the list with the tree rooted at root


pathNodeToNode

public static java.util.List<java.lang.String> pathNodeToNode(Tree from,
                                                              Tree to,
                                                              Tree root)
returns a list of categories that is the path from Tree from to Tree to within Tree root. If either from or to is not in root, returns null. Otherwise includes both from and to in the list.


pathFromRoot

public static java.util.List<Tree> pathFromRoot(Tree t,
                                                Tree root)
returns list of tree nodes to root from t. Includes root and t. Returns null if tree not found dominated by root


safeDeepCopy

public static Tree safeDeepCopy(Tree t)
#### MAJOR UGLINESS #### this is a workaround for the fact that there's no good way to clone a tree. Creates a "deep" copy of the tree with a node-by-node call to treeFactory(). The totally hacked treeFactory() method in EmptyTreeLeaf should let me get away with this.


copyHelper

public static Tree copyHelper(Tree t,
                              java.util.Map<Tree,Tree> newToOld,
                              java.util.Map<Tree,Tree> oldToNew)

fixEmptyTreeLeafs

public static void fixEmptyTreeLeafs(Tree t,
                                     java.util.Map<Tree,Tree> newToOld,
                                     java.util.Map<Tree,Tree> oldToNew)
traceTo() values that are contained in the tree are assigned to new objects. traceTo() values that are not contained in the tree are given the old value.


replaceNode

public static void replaceNode(Tree node,
                               Tree node1,
                               Tree t)
replaces all instances (by ==) of node with node1. Doesn't affect the node t itself


getLowestCommonAncestor

public static Tree getLowestCommonAncestor(Tree t1,
                                           Tree t2,
                                           Tree root)
returns the node of a tree which represents the lowest common ancestor of nodes t1 and t2 dominated by root. If either t1 or or t2 is not dominated by root, returns null.


readTree

public static Tree readTree(java.lang.String ptbTreeString,
                            TreeFactory treeFactory)
Simple tree reading utility method. Given a tree formatted as a PTB string, returns a Tree made by a specific TreeFactory.


readTree

public static Tree readTree(java.lang.String str)
Simple tree reading utility method. Given a tree formatted as a PTB string, returns a Tree made by the default TreeFactory (LabeledScoredTreeFactory)



Stanford NLP Group