2017-03-15 11 views
0

"輝き"のように連続して "-ing"を使用する単語がいくつかあります。しかし、nltkを使って「光る」ことを略語にしようとすると、それは「慎」に変わります。コードは次のとおりです:なぜPython nltkを使ってlemmatizedした後に "shining"が "shin"になるのですか?

from nltk.stem import WordNetLemmatizer 

wordnet_lemmatizer = WordNetLemmatizer() 
word = "shining" 

newlemma = wordnet_lemmatizer.lemmatize(word,'v') 
print newlemma 

「v」を使用しなくても、それは同じ「輝いている」と変わらない。 出力が「輝いている」と思っています。 誰かが助けることができますか?ありがとう

+0

私は、出力として何を期待していますか? –

+0

私は出力が "輝いて"期待しています – sang

+0

lemmatiserが完璧ではないように見えます。この種のエラーが増えましたか? – lenz

答えて

1

ルートフォームを検索するときにWordNetがルールと例外リストを適用する方法が原因です。

これは特に、例えば、ワード語尾を除去するために、ルールのリストを有する:

"ing" -> "" 
"ing" -> "e" 

これは、ルールを適用し、得られた単語の形は、WordNetの中に存在するかどうか。たとえば、miningでは、minを試しても何も見つかりませんでした。その後、mine(2番目のルール)を試して、mineが有効な単語であることを確認し、それを返します。しかし、shiningでは、shinを試し、有効な単語のリストにshinが見つかり、これが正しいルートであると考えているので、それを返します。

関連する問題