Python Nltk 中的斯坦福实体识别器(无大小写)

Stanford Entity Recognizer (caseless) in Python Nltk

我想知道如何使用 NLTK 实体识别器的无大小写版本。我下载了 http://nlp.stanford.edu/software/stanford-ner-2015-04-20.zip and placed it in the site-packages folder of python. Then I downloaded http://nlp.stanford.edu/software/stanford-corenlp-caseless-2015-04-20-models.jar 并将其放在文件夹中。然后我 运行 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’)

但是当我 运行 这个:

english_nertagger.tag(‘Rami Eid is studying at stony brook university in NY’.split())

我收到一个错误:

Error: Could not find or load main class edu.stanford.nlp.ie.crf.CRFClassifier

如果您有经验,我们将不胜感激!

P.S。我可以让非大小写版本正常工作,但我发现在分析搜索查询时,用户几乎不会将单词大写,如果单词没有大写,非大小写版本似乎会完全错过单词。

StanfordNERTagger的第二个参数是stanford tagger jar文件的路径,不是模型的路径。因此,将其更改为 stanford-ner.jar(当然,并将其放在那里)。

此外,您似乎应该选择 english.conll.4class.caseless.distsim.crf.ser.gz(来自 stanford-corenlp-caseless-2015-04-20-models.jar)而不是 english.conll.4class.distsim.crf.ser.gz

因此请尝试以下操作:

 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’)

更新。 NERTagger 已重命名为 StanfordNERTagger