【发布时间】:2015-11-09 06:26:03
【问题描述】:
当有一个潜在的 NE 后跟一个逗号时会发生这种情况,例如,如果我的字符串类似于,
“这些名字 Praveen Kumar,, David Harrison, Paul Harrison, blah”
或
“美国加利福尼亚州”
我的输出分别如下。
[[(u'这些', u'O'), (u'names', u'O'), (u'Praveen', u'O'), (u'Kumar,,', u 'O'), (u'David', u'PERSON'), (u'Harrison,', u'O'), (u'Paul', u'PERSON'), (u'Harrison,', u 'O'), (u'blah', u'O')]]
或
[[(u'California,', u'O'), (u'United', u'LOCATION'), (u'States', u'LOCATION')]]
为什么它不识别潜在的 NE,例如“Praveen Kumar”、“Harrison”和“California”?
下面是如何在代码中使用它:
from nltk.tag.stanford import NERTagger
st = NERTagger('stanford-ner/classifiers/english.all.3class.distsim.crf.ser.gz', 'stanford-ner/stanford-ner.jar')
tags = st.tag("California, United States".split())
是因为我用 split() 标记了输入搅拌吗?我该如何解决这个问题,因为它在 Java 中运行良好?
【问题讨论】:
-
首先是
from nltk import word_tokenize,然后是st.tag(word_tokenize("California, United States"))
标签: python nlp nltk stanford-nlp named-entity-recognition