Type RecursiveDescent
object
--+
|
ParseI
--+
|
AbstractParse
--+
|
RecursiveDescent
- Known Subclasses:
-
SteppingRecursiveDescent
A simple top-down CFG parser that parses texts by recursively
expanding the fringe of a Tree
, and matching it against a
text.
RecursiveDescent
uses a list of tree locations called a
frontier to
remember which subtrees have not yet been expanded and which leaves have
not yet been matched against the text. Each tree location consists of a
list of child indices specifying the path from the root of the tree to a
subtree or a leaf; see the reference documentation for Tree
for more information about tree locations.
When the parser begins parsing a text, it constructs a tree containing
only the start symbol, and a frontier containing the location of the
tree's root node. It then extends the tree to cover the text, using the
following recursive procedure:
-
If the frontier is empty, and the text is covered by the tree,
then return the tree as a possible parse.
-
If the frontier is empty, and the text is not covered by the tree,
then return no parses.
-
If the first element of the frontier is a subtree, then use CFG
productions to expand it. For each applicable production, add
the expanded subtree's children to the frontier, and recursively find
all parses that can be generated by the new tree and frontier.
-
If the first element of the frontier is a token, then match it against the
next token from the text. Remove the token from the frontier, and
recursively find all parses that can be generated by the new tree and
frontier.
See Also: nltk.cfg
Method Summary |
|
__init__ (self,
grammar,
trace)
Create a new RecursiveDescent , that uses
grammar to parse texts. |
|
get_parse_list(self,
tokens)
|
None
|
trace (self,
trace)
Set the level of tracing output that should be generated when parsing
a text. |
Inherited from AbstractParse :
get_parse ,
grammar ,
parse
Inherited from ParseI :
get_parse_probs
Inherited from object :
__delattr__ ,
__getattribute__ ,
__hash__ ,
__new__ ,
__reduce__ ,
__reduce_ex__ ,
__repr__ ,
__setattr__ ,
__str__
|
__init__(self,
grammar,
trace=0)
(Constructor)
Create a new RecursiveDescent , that uses
grammar to parse texts.
-
- Parameters:
grammar -
The grammar used to parse texts.
(type=Grammar )
trace -
The level of tracing that should be used when parsing a text.
0 will generate no tracing output; and higher
numbers will produce more verbose tracing output.
(type=int )
- Overrides:
nltk_lite.parse.AbstractParse.__init__
|
trace(self,
trace=2)
Set the level of tracing output that should be generated when
parsing a text.
-
- Parameters:
trace -
The trace level. A trace level of 0 will generate
no tracing output; and higher trace levels will produce more
verbose tracing output.
(type=int )
- Returns:
-
None
|