File size: 3,797 Bytes
d916065
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# Natural Language Toolkit: Parsers
#
# Copyright (C) 2001-2023 NLTK Project
# Author: Steven Bird <[email protected]>
#         Edward Loper <[email protected]>
# URL: <https://www.nltk.org/>
# For license information, see LICENSE.TXT
#

"""

NLTK Parsers



Classes and interfaces for producing tree structures that represent

the internal organization of a text.  This task is known as "parsing"

the text, and the resulting tree structures are called the text's

"parses".  Typically, the text is a single sentence, and the tree

structure represents the syntactic structure of the sentence.

However, parsers can also be used in other domains.  For example,

parsers can be used to derive the morphological structure of the

morphemes that make up a word, or to derive the discourse structure

for a set of utterances.



Sometimes, a single piece of text can be represented by more than one

tree structure.  Texts represented by more than one tree structure are

called "ambiguous" texts.  Note that there are actually two ways in

which a text can be ambiguous:



    - The text has multiple correct parses.

    - There is not enough information to decide which of several

      candidate parses is correct.



However, the parser module does *not* distinguish these two types of

ambiguity.



The parser module defines ``ParserI``, a standard interface for parsing

texts; and two simple implementations of that interface,

``ShiftReduceParser`` and ``RecursiveDescentParser``.  It also contains

three sub-modules for specialized kinds of parsing:



  - ``nltk.parser.chart`` defines chart parsing, which uses dynamic

    programming to efficiently parse texts.

  - ``nltk.parser.probabilistic`` defines probabilistic parsing, which

    associates a probability with each parse.

"""

from nltk.parse.api import ParserI
from nltk.parse.bllip import BllipParser
from nltk.parse.chart import (
    BottomUpChartParser,
    BottomUpLeftCornerChartParser,
    ChartParser,
    LeftCornerChartParser,
    SteppingChartParser,
    TopDownChartParser,
)
from nltk.parse.corenlp import CoreNLPDependencyParser, CoreNLPParser
from nltk.parse.dependencygraph import DependencyGraph
from nltk.parse.earleychart import (
    EarleyChartParser,
    FeatureEarleyChartParser,
    FeatureIncrementalBottomUpChartParser,
    FeatureIncrementalBottomUpLeftCornerChartParser,
    FeatureIncrementalChartParser,
    FeatureIncrementalTopDownChartParser,
    IncrementalBottomUpChartParser,
    IncrementalBottomUpLeftCornerChartParser,
    IncrementalChartParser,
    IncrementalLeftCornerChartParser,
    IncrementalTopDownChartParser,
)
from nltk.parse.evaluate import DependencyEvaluator
from nltk.parse.featurechart import (
    FeatureBottomUpChartParser,
    FeatureBottomUpLeftCornerChartParser,
    FeatureChartParser,
    FeatureTopDownChartParser,
)
from nltk.parse.malt import MaltParser
from nltk.parse.nonprojectivedependencyparser import (
    NaiveBayesDependencyScorer,
    NonprojectiveDependencyParser,
    ProbabilisticNonprojectiveParser,
)
from nltk.parse.pchart import (
    BottomUpProbabilisticChartParser,
    InsideChartParser,
    LongestChartParser,
    RandomChartParser,
    UnsortedChartParser,
)
from nltk.parse.projectivedependencyparser import (
    ProbabilisticProjectiveDependencyParser,
    ProjectiveDependencyParser,
)
from nltk.parse.recursivedescent import (
    RecursiveDescentParser,
    SteppingRecursiveDescentParser,
)
from nltk.parse.shiftreduce import ShiftReduceParser, SteppingShiftReduceParser
from nltk.parse.transitionparser import TransitionParser
from nltk.parse.util import TestGrammar, extract_test_sentences, load_parser
from nltk.parse.viterbi import ViterbiParser