2017-01-09 2 views
0

スタンフォードNERを使用してパーセンテージを抽出しようとしています。しかし、適切にパーセンテージを抽出していません。スタンフォードNERがパーセンテージを正しく抽出していません

inp_str = 'total revenue received was one hundred and twenty five percent 125% for last financial year' 
split_inp_str = inp_str.split() 
st = StanfordNERTagger('english.muc.7class.distsim.crf.ser.gz') 
print(st.tag(split_inp_str)) 

これはなぜそれが125%または百二十五%を抽出されていない出力

[('total', 'O'), ('revenue', 'O'), ('received', 'O'), ('was', 'O'), ('one', 'O'), ('hundred', 'O'), ('and', 'O'), ('twenty', 'O'), ('five', 'PERCENT'), ('percent', 'PERCENT'), ('125%', 'O'), ('for', 'O'), ('last', 'O'), ('financial', 'O'), ('year', 'O')] 

次与えますか?

+0

スタンフォードCoreNLP 3.7.0を使用すると「125%125%」と計算されます。私はJavaコードを実行しています。 NLTKを使用している場合、私は何が実行されているか完全にはわかりません。 – StanfordNLPHelp

答えて

-1

split()ではなくsentenceをトークン化する必要があります。次のコードを試してください。

from nltk import word_tokenize 

inp_str = 'total revenue received was one hundred and twenty five percent 125% for last financial year' 
split_inp_str = word_tokenize(inp_str) 
st = StanfordNERTagger('english.muc.7class.distsim.crf.ser.gz') 
print(st.tag(split_inp_str)) 
関連する問題