class MultiParentedTree(AbstractParentedTree): (source)
Known subclasses: nltk.tree.ImmutableMultiParentedTree
Constructor: MultiParentedTree(node, children)
A Tree that automatically maintains parent pointers for multi-parented trees. The following are methods for querying the structure of a multi-parented tree: parents(), parent_indices(), left_siblings(), right_siblings(), roots, treepositions.
Each MultiParentedTree may have zero or more parents. In particular, subtrees may be shared. If a single MultiParentedTree is used as multiple children of the same parent, then that parent will appear multiple times in its parents() method.
MultiParentedTrees should never be used in the same tree as Trees or ParentedTrees. Mixing tree implementations may result in incorrect parent pointers and in TypeError exceptions.
Method | __init__ |
Undocumented |
Method | left |
A list of all left siblings of this tree, in any of its parent trees. A tree may be its own left sibling if it is used as multiple contiguous children of the same parent. A tree may appear multiple times in this list if it is the left sibling of this tree with respect to multiple parents. |
Method | parent |
Return a list of the indices where this tree occurs as a child of parent. If this child does not occur as a child of parent, then the empty list is returned. The following is always true: |
Method | parents |
The set of parents of this tree. If this tree has no parents, then parents is the empty set. To check if a tree is used as multiple children of the same parent, use the parent_indices() method. |
Method | right |
A list of all right siblings of this tree, in any of its parent trees. A tree may be its own right sibling if it is used as multiple contiguous children of the same parent. A tree may appear multiple times in this list if it is the right sibling of this tree with respect to multiple parents. |
Method | roots |
The set of all roots of this tree. This set is formed by tracing all possible parent paths until trees with no parents are found. |
Method | treepositions |
Return a list of all tree positions that can be used to reach this multi-parented tree starting from root. I.e., the following is always true: |
Method | _delparent |
Update the parent pointer of child to not point to self. This method is only called if the type of child is Tree; i.e., it is not called when removing a leaf from a tree. This method is always called before the child is actually removed from the child list of ... |
Method | _frozen |
Undocumented |
Method | _get |
Undocumented |
Method | _get |
Undocumented |
Method | _setparent |
Update the parent pointer of child to point to self. This method is only called if the type of child is Tree; i.e., it is not called when adding a leaf to a tree. This method is always called before the child is actually added to the child list of ... |
Instance Variable | _parents |
A list of this tree's parents. This list should not contain duplicates, even if a parent contains this tree multiple times. |
Inherited from AbstractParentedTree
:
Method | __delitem__ |
Undocumented |
Method | __delslice__ |
Undocumented |
Method | __getslice__ |
Undocumented |
Method | __setitem__ |
Undocumented |
Method | __setslice__ |
Undocumented |
Method | append |
Undocumented |
Method | extend |
Undocumented |
Method | insert |
Undocumented |
Method | pop |
Undocumented |
Method | remove |
Undocumented |
Inherited from Tree
(via AbstractParentedTree
):
Class Method | convert |
Convert a tree between different subtypes of Tree. cls determines which class will be used to encode the new tree. |
Class Method | fromlist |
Convert nested lists to a NLTK Tree |
Class Method | fromstring |
Read a bracketed tree string and return the resulting tree. Trees are represented as nested brackettings, such as: |
Method | __add__ |
Undocumented |
Method | __copy__ |
Undocumented |
Method | __deepcopy__ |
Undocumented |
Method | __eq__ |
Undocumented |
Method | __getitem__ |
Undocumented |
Method | __lt__ |
Undocumented |
Method | __mul__ |
Undocumented |
Method | __radd__ |
Undocumented |
Method | __repr__ |
Undocumented |
Method | __rmul__ |
Undocumented |
Method | __str__ |
Undocumented |
Method | chomsky |
This method can modify a tree in three ways: |
Method | collapse |
Collapse subtrees with a single child (ie. unary productions) into a new non-terminal (Tree node) joined by 'joinChar'. This is useful when working with algorithms that do not allow unary productions, and completely removing the unary productions would require loss of useful information... |
Method | copy |
Undocumented |
Method | draw |
Open a new window containing a graphical diagram of this tree. |
Method | flatten |
Return a flat version of the tree, with all non-root non-terminals removed. |
Method | freeze |
Undocumented |
Method | height |
Return the height of the tree. |
Method | label |
Return the node label of the tree. |
Method | leaf |
No summary |
Method | leaves |
Return the leaves of the tree. |
Method | pformat |
No summary |
Method | pformat |
Returns a representation of the tree compatible with the LaTeX qtree package. This consists of the string \Tree followed by the tree represented in bracketed notation. |
Method | pos |
Return a sequence of pos-tagged words extracted from the tree. |
Method | pprint |
Print a string representation of this Tree to 'stream' |
Method | pretty |
Pretty-print this tree as ASCII or Unicode art. For explanation of the arguments, see the documentation for nltk.treeprettyprinter.TreePrettyPrinter . |
Method | productions |
Generate the productions that correspond to the non-terminal nodes of the tree. For each subtree of the form (P: C1 C2 ... Cn) this produces a production of the form P -> C1 C2 ... Cn. |
Method | set |
Set the node label of the tree. |
Method | subtrees |
Generate all the subtrees of this tree, optionally restricted to trees matching the filter function. |
Method | treeposition |
No summary |
Method | un |
This method modifies the tree in three ways: |
Class Variable | __ge__ |
Undocumented |
Class Variable | __gt__ |
Undocumented |
Class Variable | __le__ |
Undocumented |
Class Variable | __ne__ |
Undocumented |
Class Variable | node |
Undocumented |
Class Method | _parse |
Display a friendly error message when parsing a tree string fails. :param s: The string we're parsing. :param match: regexp match of the problem token. :param expecting: what we expected to see instead. |
Method | _get |
Outdated method to access the node value; use the label() method instead. |
Method | _pformat |
Undocumented |
Method | _repr |
Draws and outputs in PNG for ipython. PNG is used instead of PDF, since it can be displayed in the qt console and has wider browser support. |
Method | _set |
Outdated method to set the node value; use the set_label() method instead. |
Instance Variable | _label |
Undocumented |
A list of all left siblings of this tree, in any of its parent trees. A tree may be its own left sibling if it is used as multiple contiguous children of the same parent. A tree may appear multiple times in this list if it is the left sibling of this tree with respect to multiple parents.
Return a list of the indices where this tree occurs as a child of parent. If this child does not occur as a child of parent, then the empty list is returned. The following is always true:
for parent_index in ptree.parent_indices(parent): parent[parent_index] is ptree
The set of parents of this tree. If this tree has no parents, then parents is the empty set. To check if a tree is used as multiple children of the same parent, use the parent_indices() method.
A list of all right siblings of this tree, in any of its parent trees. A tree may be its own right sibling if it is used as multiple contiguous children of the same parent. A tree may appear multiple times in this list if it is the right sibling of this tree with respect to multiple parents.
The set of all roots of this tree. This set is formed by tracing all possible parent paths until trees with no parents are found.
nltk.tree.Tree.treepositions
Return a list of all tree positions that can be used to reach this multi-parented tree starting from root. I.e., the following is always true:
for treepos in ptree.treepositions(root): root[treepos] is ptree
Update the parent pointer of child to not point to self. This method is only called if the type of child is Tree; i.e., it is not called when removing a leaf from a tree. This method is always called before the child is actually removed from the child list of self.
Parameters | |
child:Tree | Undocumented |
index:int | The index of child in self. |
Update the parent pointer of child to point to self. This method is only called if the type of child is Tree; i.e., it is not called when adding a leaf to a tree. This method is always called before the child is actually added to the child list of self.
Parameters | |
child:Tree | Undocumented |
index:int | The index of child in self. |
dry | If true, the don't actually set the child's parent pointer; just check for any error conditions, and raise an exception if one is found. |
Raises | |
TypeError | If child is a tree with an impropriate type. Typically, if child is a tree, then its type needs to match the type of self. This prevents mixing of different tree types (single-parented, multi-parented, and non-parented). |