如何安装和调用Stanford NERTagger?

时间:2014-05-26 00:51:42

标签: python nlp nltk stanford-nlp

我正在尝试在python环境中使用NLTK接口进行斯坦福NER nltk.tag.stanford.NERTagger

from nltk.tag.stanford import NERTagger
st = NERTagger('/usr/share/stanford-ner/classifiers/all.3class.distsim.crf.ser.gz',
               '/usr/share/stanford-ner/stanford-ner.jar') 
st.tag('Rami Eid is studying at Stony Brook University in NY'.split()) 

我应该得到输出:

[('Rami', 'PERSON'), ('Eid', 'PERSON'), ('is', 'O'), ('studying', 'O'),
('at', 'O'), ('Stony', 'ORGANIZATION'), ('Brook', 'ORGANIZATION'),
('University', 'ORGANIZATION'), ('in', 'O'), ('NY', 'LOCATION')]

我已根据NLTK website中描述的程序安装了NLTK。但是,我根本找不到/ usr / share / stanford-ner。我在哪里以及如何找到整个包并将其安装在我的目录中。

5 个答案:

答案 0 :(得分:18)

我认为值得一提的是现在的输入行:

from nltk.tag.stanford import StanfordNERTagger

答案 1 :(得分:4)

可能更容易查看更新的用于python的Stanford CoreNLP接口,可在此处获取:http://nlp.stanford.edu/software/corenlp.shtml

答案 2 :(得分:2)

必须下载独立于NLTK下载的Stanford软件包,将其放在路径指示的位置,并将NLTK文档中描述的路径中的目录名称更改为要用于目录的名称。如果NLTK文档明确说明这一点,那就太好了。

答案 3 :(得分:2)

from nltk.tag.stanford import StanfordNERTagger
st = StanfordNERTagger('/Users/mahendrabilagi/Desktop/stanford-ner-2017-06-09/classifiers/english.all.3class.distsim.crf.ser.gz',
           '/Users/mahendrabilagi/Desktop/stanford-ner-2017-06-09/stanford-ner.jar')
print st.tag('Rami Eid is studying at Stony Brook University in Bengaluru'.split())

答案 4 :(得分:1)

虽然这只是一个链接答案,但它将解决OP的问题。

适用于Windows https://gist.github.com/alvations/0ed8641d7d2e1941b9f9

适用于Linux https://gist.github.com/alvations/e1df0ba227e542955a8a

EDITED

但请注意,这不是一个永恒的解决方案,因为斯坦福NLP工具和NLTK每年更改次数超过2-3次,请查看https://github.com/nltk/nltk/wiki/Installing-Third-Party-Software以获取有关NLTK API到Stanford工具的最新设置说明。< / p>

以上解决方案发布于2016年3月17日