Stanford Dependency Parser Setup et NLTK
ainsi j'ai obtenu le" standard "Stanford Parser de travailler grâce aux réponses de danger89 à ce post précédent, Stanford Parser et NLTK .
cependant, j'essaie maintenant de faire fonctionner l'analyseur de dépendances et il semble que la méthode mise en évidence dans le lien précédent ne fonctionne plus. Voici mon code:
import nltk
import os
java_path = "C:Program FilesJavajre1.8.0_51binjava.exe"
os.environ['JAVAHOME'] = java_path
from nltk.parse import stanford
os.environ['STANFORD_PARSER'] = 'path/jar'
os.environ['STANFORD_MODELS'] = 'path/jar'
parser = stanford.StanfordDependencyParser(model_path="path/jar/englishPCFG.ser.gz")
sentences = parser.raw_parse_sents(nltk.sent_tokenize("The iPod is expensive but pretty."))
j'obtiens l'erreur suivante: l'objet' module ' n'a pas d'attribut 'StanfordDependencyParser'
la seule chose que j'ai changée était" StanfordDependencyParser "de"StanfordParser". Des idées comment je peux obtenir que cela fonctionne?
j'ai aussi essayé le Stanford Neural Dependency parser en l'important comme indiqué dans la documentation ici: http://www.nltk.org/_modules/nltk/parse/stanford.html
celui-ci n'a pas fonctionné non plus.
Assez nouveau pour NLTK. Merci d'avance pour toutes informations utiles.
2 réponses
L'API StanfordDependencyParser
est un nouvel objet de classe créé depuis la version 3.1 de NLTK.
assurez-vous que vous disposez de la plus récente NLTK disponible par l'entremise de pip
pip install -U nltk
ou par l'intermédiaire de votre gestionnaire de paquets linux, par exemple:
sudo apt-get python-nltk
ou dans windows, Télécharger https://pypi.python.org/pypi/nltk et installer et il devrait écraser votre version NLTK précédente.
puis vous peut utiliser L'API comme indiqué dans la 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: assurez-vous d'obtenir votre chemin vers jar et os.environ
correct, dans Windows , c'est something\something\some\path
, dans unix c'est something/something/some/path
)
Voir aussi https://github.com/nltk/nltk/wiki/Installing-Third-Party-Software#stanford-tagger-ner-tokenizer-and-parser et lorsque vous avez besoin D'une solution TL;DR, voir https://github.com/alvations/nltk_cli
si la seule chose que vous avez changée était" StanfordDependencyParser "et que l'erreur indique: module' object has no attribute 'StanfordDependencyParser'
Je supposerais que StanfordDependencyParser
était la mauvaise chose à changer. Avez-vous copié tout le code que vous avez lié à verbatim?