2017-01-06 69 views
0

我試圖使用斯坦福大學的名爲Entity Recognizer。我想使用7類分類器,因爲我甚至想要檢測句子中的時間(或日期)和其他內容。當進入了一句:StanfordNPP中沒有給出想要的結果的七個類別分類器

"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)在線演示

它被正確歸類爲可在此圖像中可以看到(在斯坦福現場演示了上面的行):

The demo in the stanford site for the above line

但是,當我試圖在我的系統上使用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 

誰能告訴我做的錯誤(如果有的話),或者任何其他方式來識別句子中的位置和時間?我是NLP的初學者,希望對此有所幫助。

回答

0

我試着運行你的代碼,發現word_tokenize有一些問題。

試試這個代碼:

from nltk 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 = word_tokenize(i) 
namedEnt = st.tag(words) 

print namedEnt 

這裏是我的輸出:

[(u'He', u'O'), (u'was', u'O'), (u'born', u'O'), (u'on', u'O'), (u'October', u'DATE'), (u'15', u'DATE'), (u',', u'DATE'), (u'1931', u'DATE'), (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')] 
相關問題