2016-11-23 4 views
0

私はスタンフォードcoreNLP [stanford-ner-2015-12-09]をpython nltk StanfordNERTAggerと一緒に使用していますが、オンラインデモとは異なる結果を示しています。Python StanfordNerTagger coreNLPの出力はスタンフォードネータグャーのオンラインデモとは異なります

私はこのスレッド "https://mailman.stanford.edu/pipermail/java-nlp-user/2011-August/001283.html"を見ましたが、 "彼らは同じモデルを使用していますが、CoreNLPの最初のPOSタグでデータを分析し、それを解析します。

私が試したほとんどの例では、coreNLPよりも優れているため、オンラインデモの結果を整列させる方法はありますか?

CoreNLP 
[(u'Tom', u'PERSON'), (u'Cruise', u'PERSON'), (u'was', u'O'), (u'born', u'O'), (u'on', u'O'), (u'July', u'O'), (u'3,', u'O'), (u'1962,', u'O'), (u'in', u'O'), (u'Syracuse,', u'O'), (u'New', u'LOCATION'), (u'York', u'LOCATION')] 

OnlineDEMO 
Tom Cruise was born on July 3, 1962, in Syracuse, New York. 
Person         Location Location  
+0

CoreNLPが「Syracuse」に場所としてタグを付けていないという表現の違いについてですか? – lenz

+0

@lenz CoreNLPは "Syracuse"に場所としてタグを付けていませんでした! – Anish

答えて

0

これはトークン化によるものである:

st = StanfordNERTagger(model_path, stanford_tagger_jar, encoding='utf8') 
r=st.tag("Tom Cruise was born on July 3, 1962, in Syracuse, New York.".split()) 
for e in r: 
    print e 

この場所としてシラキュースにタグを付けるしない:

(u'Tom', u'PERSON') 
(u'Cruise', u'PERSON') 
(u'was', u'O') 
(u'born', u'O') 
(u'on', u'O') 
(u'July', u'O') 
(u'3,', u'O') 
(u'1962,', u'O') 
(u'in', u'O') 
(u'Syracuse,', u'O') 
(u'New', u'LOCATION') 
(u'York.', u'LOCATION') 

しかし、これは行います:

from nltk import word_tokenize 
st = StanfordNERTagger(model_path, stanford_tagger_jar, encoding='utf8') 
r=st.tag(word_tokenize("Tom Cruise was born on July 3, 1962, in Syracuse, New York.")) 
for e in r: 
    print e 
(u'Tom', u'PERSON') 
(u'Cruise', u'PERSON') 
(u'was', u'O') 
(u'born', u'O') 
(u'on', u'O') 
(u'July', u'O') 
(u'3', u'O') 
(u',', u'O') 
(u'1962', u'O') 
(u',', u'O') 
(u'in', u'O') 
(u'Syracuse', u'LOCATION') 
(u',', u'O') 
(u'New', u'LOCATION') 
(u'York', u'LOCATION') 
(u'.', u'O') 
関連する問題