The StanfordDependencyParser
API is a new class object created since NLTK version 3.1.
Ensure that you have the latest NLTK available either through pip
pip install -U nltk
or through your linux package manager, e.g.:
sudo apt-get python-nltk
or in windows, download https://pypi.python.org/pypi/nltk and install and it should overwrite your previous NLTK version.
Then you can use the API as shown in the documentation:
from nltk.parse.stanford import StanfordDependencyParser
dep_parser=StanfordDependencyParser(model_path="edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz")
print [parse.tree() for parse in dep_parser.raw_parse("The quick brown fox jumps over the lazy dog.")]
[out]:
[Tree('jumps', [Tree('fox', ['The', 'quick', 'brown']), Tree('dog', ['over', 'the', 'lazy'])])]
(Note: Make sure you get your path to jar and os.environ
correct, in Windows, it's something\something\some\path
, in unix it's something/something/some/path
)
See also https://github.com/nltk/nltk/wiki/Installing-Third-Party-Software#stanford-tagger-ner-tokenizer-and-parser and when you need a TL;DR solution, see https://github.com/alvations/nltk_cli
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…