Это происходит, когда есть потенциал NE следует запятая, например, если мои строки являются чем-то вроде,выпуск распознавания НЭ с StanfordNER в питона NLTK
«Эти имена Praveen Kumar ,, Дэвид Харрисон, Пол Харрисон, бла "
или
"Калифорния, США"
Мой вывод выглядит следующим образом.
[[(u'These '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')]]
почему это делает не признать потенциальные сетевые элементы, такие как «Правеен Кумар», «Харрисон» и «Калифорния»?
Вот как это использовать его в коде:
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())
Это потому, что я разметить вход stirng с split()
? Как я могу это решить, так как он отлично работает при попытке использовать Java?
Во-первых, 'из nltk import word_tokenize', затем' st.tag (word_tokenize («California, United States»)) ' – alvas