nltk.parse.InsideChartParser

class nltk.parse.InsideChartParser[source]

Bases: BottomUpProbabilisticChartParser

A bottom-up parser for PCFG grammars that tries edges in descending order of the inside probabilities of their trees. The “inside probability” of a tree is simply the probability of the entire tree, ignoring its context. In particular, the inside probability of a tree generated by production p with children c[1], c[2], …, c[n] is P(p)P(c[1])P(c[2])…P(c[n]); and the inside probability of a token is 1 if it is present in the text, and 0 if it is absent.

This sorting order results in a type of lowest-cost-first search strategy.

sort_queue(queue, chart)[source]

Sort the given queue of edges, in descending order of the inside probabilities of the edges’ trees.

Parameters
  • queue (list(Edge)) – The queue of Edge objects to sort. Each edge in this queue is an edge that could be added to the chart by the fundamental rule; but that has not yet been added.

  • chart (Chart) – The chart being used to parse the text. This chart can be used to provide extra information for sorting the queue.

Return type

None

__init__(grammar, beam_size=0, trace=0)[source]

Create a new BottomUpProbabilisticChartParser, that uses grammar to parse texts.

Parameters
  • grammar (PCFG) – The grammar used to parse texts.

  • beam_size (int) – The maximum length for the parser’s edge queue.

  • trace (int) – 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.

grammar()[source]
Returns

The grammar used by this parser.

parse(tokens)[source]
Returns

An iterator that generates parse trees for the sentence. When possible this list is sorted from most likely to least likely.

Parameters

sent (list(str)) – The sentence to be parsed

Return type

iter(Tree)

parse_all(sent, *args, **kwargs)[source]
Return type

list(Tree)

parse_one(sent, *args, **kwargs)[source]
Return type

Tree or None

parse_sents(sents, *args, **kwargs)[source]

Apply self.parse() to each element of sents. :rtype: iter(iter(Tree))

trace(trace=2)[source]

Set the level of tracing output that should be generated when parsing a text.

Parameters

trace (int) – The trace level. A trace level of 0 will generate no tracing output; and higher trace levels will produce more verbose tracing output.

Return type

None