## edu.stanford.nlp.trees
Class Trees

    java.lang.Object
      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 `n`th preterminal in `tree`.
`static Tree` `getTerminal(Tree tree, int n)` gets the `n`th 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 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(ArrayList<? extends HasWord> s, LabelFactory lf)` Turns a sentence into a flat phrasal tree.
`static Tree` `toFlatTree(ArrayList<HasWord> s)` 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 `n`th terminal in `tree`. The first terminal is number zero.

### getPreTerminal

    public static Tree getPreTerminal(Tree tree,
                                      int n)

  gets the `n`th 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(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(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 String treeToLatex(Tree t)

### treeToLatexEven

    public static String treeToLatexEven(Tree t)

### 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