【发布时间】:2015-06-25 22:29:43
【问题描述】:
我想从 utf-8 文本中提取实体,但似乎无法让 nltk.stanford.NERTagger 返回长于 1 的 ngram。
有人知道怎么做吗?
import nltk
NER = nltk.stanford.NERTagger("/Library/Java/Extensions/NER/classifiers/english.all.3class.distsim.crf.ser.gz",
"/Library/Java/Extensions/NER/stanford-ner.jar")
NER.tag('Game of Thrones by George R. R. Martin'.split())
输出是这样的:
[[(u'Game', u'O'),
(u'of', u'O'),
(u'Thrones', u'O'),
(u'by', u'O'),
(u'George', u'PERSON'),
(u'R.', u'PERSON'),
(u'R.', u'PERSON'),
(u'Martin', u'PERSON')]]
我需要这样的东西:
[[(u'Game', u'O'),
(u'of', u'O'),
(u'Thrones', u'O'),
(u'by', u'O'),
(u'George R. R. Martin', u'PERSON')]]
我的一位同事在 Java 中调用了相同的 stanford NLP 算法,实体没有按单词分解。
谢谢!
===== 可能重复=====
Chunking Stanford Named Entity Recognizer (NER) outputs from NLTK format
【问题讨论】:
-
代码示例中的小错误,应该是
nltk.tag.stanford.StanfordNERTagger对吧?
标签: python nltk stanford-nlp