4

実行した後nltk.stem.porter.PorterStemmer().stem_word(word)、「ing」が切り取られているか、「y」が「i」と交換された多くの単語が表示されます。たとえば、「品質」は「品質」になり、(さらに奇妙な)「値」は「値」になりますか?

結果の単語は実際の英語の単語ではないので、どのように使用するのかわかりません。私の最善の推測は、語幹の単語を別の関数に入れて、この語幹から派生した/子の単語をすべて取得することです(たとえば、「valu」が返さ['valuing','valued', 'values', ...]れます。そのような関数はありますか?

4

2 に答える 2

5

ステミングは、一般的な接尾辞と接頭辞を取り除く一連の変換ルールを使用して、単語の語幹を抽出します。したがって、生成される結果は実際の英単語ではない場合があります。ステミングの一般的な用途は、単語が同じと見なされるように単語を正規化することです。例えば:

stem_word('value') == stem_word('valuing')

語幹が付けられた単語は、検索用にインデックスを作成できます。検索を実行するときに、クエリの単語がインデックス内の語幹抽出された単語と一致するように、同じステミングが受信クエリで行われます。

于 2012-07-17T02:49:47.390 に答える
1

私はその特定の機能に精通していませんが、一般的に語幹は単語の語根を意味し、必ずしも合法的な英語の単語ではありません.

nltkブックを使用していますか?この章ではステミングについて説明します: http://nltk.googlecode.com/svn/trunk/doc/book/ch03.html

于 2012-07-17T02:52:31.957 に答える