我正在尝试在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。我在哪里以及如何找到整个包并将其安装在我的目录中。
答案 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
但请注意,这不是一个永恒的解决方案,因为斯坦福NLP工具和NLTK每年更改次数超过2-3次,请查看https://github.com/nltk/nltk/wiki/Installing-Third-Party-Software以获取有关NLTK API到Stanford工具的最新设置说明。< / p>
以上解决方案发布于2016年3月17日