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

标签 python nlp nltk

我正在尝试弄清楚如何使用 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’)

但是当我运行这个时:

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

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

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

最佳答案

StanfordNERTagger 的第二个参数是 stanford 标记器 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

关于python - Python Nltk 中的斯坦福实体识别器(无大小写),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30745714/

相关文章:

nlp - 需要一个好的关系提取器

python - 在 Python 和 __init__.py 中导入模块

python - 在匹配之前选择第一个日期,直到找到另一个匹配

nlp - 非英语术语提取

python - 如何对不同上下文的查询使用序列标签?

python - 从数据帧创建句子(行)到 POS 标签计数(列)矩阵

NLTK Stanford POS 标记器中的 Java 命令失败

python - 类似于plotly中seaborn的hue函数?

python - Django查询分组结果

python-3.x - python : How to extract addresses from a sentence/paragraph (non-Regex approach)?