edu.stanford.nlp.trees
Class Trees

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

public class Trees
extends 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, Map<Tree,Tree> newToOld, Map<Tree,Tree> oldToNew)
           
static void fixEmptyTreeLeafs(Tree t, Map<Tree,Tree> newToOld, 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(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 List<Label> leafLabels(Tree t)
          returns the labels of the leaves in a Tree in the order that they're found.
static 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 List<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(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 List<Tree> pathFromRoot(Tree t, Tree root)
          returns list of tree nodes to root from t.
static List<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 List<Tree> preTerminals(Tree t)
           
static Tree readTree(String s)
           
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 List<CoreLabel> taggedLeafLabels(Tree t)
          returns the labels of the leaves in a Tree, augmented with POS tags.
static String toDebugStructureString(Tree t)
          Return information about the objects in this Tree.
static Tree toFlatTree(Sentence<?> s)
          Turns a sentence into a flat phrasal tree.
static Tree toFlatTree(Sentence<?> s, LabelFactory lf)
          Turns a sentence into a flat phrasal tree.
static String treeToLatex(Tree t)
           
static 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 List<Tree> leaves(Tree t)
returns the leaves in a Tree in the order that they're found.


preTerminals

public static List<Tree> preTerminals(Tree t)

leafLabels

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


taggedLeafLabels

public static 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 List<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 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(Sentence<?> 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(Sentence<?> 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 String treeToLatex(Tree t)

treeToLatexEven

public static String treeToLatexEven(Tree t)

readTree

public static Tree readTree(String s)
                     throws IOException
Throws:
IOException

main

public static void main(String[] args)
                 throws IOException
Throws:
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(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 List<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 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,
                              Map<Tree,Tree> newToOld,
                              Map<Tree,Tree> oldToNew)

fixEmptyTreeLeafs

public static void fixEmptyTreeLeafs(Tree t,
                                     Map<Tree,Tree> newToOld,
                                     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.



Stanford NLP Group