Stanford Entity Recognizer (caseless) en Python Nltk
j'essaie de comprendre comment utiliser la version SANS cas de l'entité recognizer de NLTK. J'ai téléchargé http://nlp.stanford.edu/software/stanford-ner-2015-04-20.zip et l'a placé dans le dossier site-packages de python. Puis j'ai téléchargé http://nlp.stanford.edu/software/stanford-corenlp-caseless-2015-04-20-models.jar et l'a placé dans le dossier. Puis j'ai lancé ce code dans nltk
from nltk.tag.stanford import NERTagger
english_nertagger = NERTagger(‘/home/anaconda/lib/python2.7/site-packages/stanford-ner-2015-04-20/classifiers/english.conll.4class.distsim.crf.ser.gz’, ‘/home/anaconda/lib/python2.7/site-packages/stanford-ner-2015-04-20/stanford-corenlp-caseless-2015-04-20-models.jar’)
mais quand je exécutez ceci:
english_nertagger.tag(‘Rami Eid is studying at stony brook university in NY’.split())
j'obtiens une erreur:
Error: Could not find or load main class edu.stanford.nlp.ie.crf.CRFClassifier
Toute aide si vous avez de l'expérience est appréciée!
P.S. Je peux faire fonctionner la version non-caseless mais je trouve que lors de l'analyse des requêtes de recherche, les utilisateurs capitalisent rarement des mots et la version non-caseless semble manquer complètement les mots s'ils ne sont pas capitalisés.
1 réponses
le second paramètre de StanfordNERTagger
est le chemin vers le fichier stanford tagger jar, pas le chemin vers le modèle. Alors, changez-le en stanford-ner.jar
(et placez-le là, bien sûr).
il semble aussi que vous devriez choisir english.conll.4class.caseless.distsim.crf.ser.gz
(de stanford-corenlp-caseless-2015-04-20-des mannequins.jar) au lieu de english.conll.4class.distsim.crf.ser.gz
essayez donc ce qui suit:
english_nertagger = StanfordNERTagger(‘/home/anaconda/lib/python2.7/site-packages/stanford-ner-2015-04-20/classifiers/english.conll.4class.caseless.distsim.crf.ser.gz’, ‘/home/anaconda/lib/python2.7/site-packages/stanford-ner-2015-04-20/stanford-ner.jar’)
Upd. NERTagger
a été renommé en StanfordNERTagger