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
我想知道如何使用 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