我试图弄清楚如何使用NLTK的实体识别器的无壳版本.我下载了http://nlp.stanford.edu/software/stanford-ner-2015-04-20.zip并将其放在python的site-packages文件夹中.然后我下载了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’)
Run Code Online (Sandbox Code Playgroud)
但当我运行这个:
english_nertagger.tag(‘Rami Eid is studying at stony brook university in NY’.split())
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
Error: Could not find or load main class edu.stanford.nlp.ie.crf.CRFClassifier
Run Code Online (Sandbox Code Playgroud)
如果您有经验,任何帮助表示赞赏!
PS我可以让非caseless版本工作正常,但我发现在分析搜索查询时,用户几乎不会大写单词,而非caseless版本似乎完全错过了单词,如果它们没有大写.
第二个参数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’)
Run Code Online (Sandbox Code Playgroud)
UPD.NERTagger已重命名为StanfordNERTagger
| 归档时间: |
|
| 查看次数: |
1766 次 |
| 最近记录: |