Я пытаюсь использовать названный Entord Recognizer от Stanford. Я хочу использовать классификатор классов 7, потому что я даже хочу определить время (или дату) и другие вещи в предложении. При входе в предложение:Семь классификаторов классов не дает желаемых результатов в StanfordNLP python
"He was born on October 15, 1931 at Dhanushkothi in the temple town Rameshwaram in Tamil Nadu."
в онлайн демо на сайте Стэнфордского NLP (http://nlp.stanford.edu:8080/ner/process) он правильно классифицируя, как можно видеть на этом снимке (демо в сайте Стэнфордского для вышеуказанной линии):
Но, когда я пытаюсь запустить код в своей системе, используя NLTL и StanfordTagger, я получаю неправильный результат. Я получаю выход как:
[(u'He', u'O'), (u'was', u'O'), (u'born', u'O'), (u'on', u'O'), (u'1931-10-15', u'O'),
(u'at', u'O'), (u'Dhanushkothi', u'O'), (u'in', u'O'), (u'the', u'O'),
(u'temple', u'O'), (u'town', u'O'), (u'Rameshwaram', u'O'), (u'in', u'O'),
(u'Tamil', u'ORGANIZATION'), (u'Nadu', u'ORGANIZATION'), (u'.', u'O')]
Он заключается в определении даты неправильно здесь как «другой» и даже Тамилнад в качестве организации, а не место. Код, который я использовал здесь ниже:
from nltk.tokenize import sent_tokenize, word_tokenize
from nltk.tag import StanfordNERTagger
st = StanfordNERTagger('english.muc.7class.distsim.crf.ser.gz','stanford-ner.jar')
i= "He was born on October 15, 1931 at Dhanushkothi in the temple town Rameshwaram in Tamil Nadu."
words = nltk.word_tokenize(i)
namedEnt = st.tag(words)
print namedEnt
Может кто-нибудь пожалуйста, скажите ошибку я делаю (если таковые имеются) или какой-либо другой способ определения местоположения и времени в предложении? Я новичок в НЛП, и любая помощь в этом отношении будет оценена по достоинству.