前処理段階でテキストドキュメントをステミングするための優れたPythonモジュールが必要です。
これを見つけました
http://pypi.python.org/pypi/PyStemmer/1.0.1
しかし、提供されたリンク内のドキュメントが見つかりません。
ドキュメントやその他の優れたステミングアルゴリズムがどこにあるかは誰でも知っています。助けてください。
前処理段階でテキストドキュメントをステミングするための優れたPythonモジュールが必要です。
これを見つけました
http://pypi.python.org/pypi/PyStemmer/1.0.1
しかし、提供されたリンク内のドキュメントが見つかりません。
ドキュメントやその他の優れたステミングアルゴリズムがどこにあるかは誰でも知っています。助けてください。
NLTKを試してみてください
>>> from nltk import PorterStemmer
>>> PorterStemmer().stem('complications')
ここで説明したこれらのステマーはすべてアルゴリズムステマーであるため、次のような予期しない結果が常に発生する可能性があります。
In [3]: from nltk.stem.porter import *
In [4]: stemmer = PorterStemmer()
In [5]: stemmer.stem('identified')
Out[5]: u'identifi'
In [6]: stemmer.stem('nonsensical')
Out[6]: u'nonsens'
ルートワードを正しく取得するには、HunspellStemmerなどの辞書ベースのステマーが必要です。次のリンクにPythonで実装されています。サンプルコードはこちら
>>> import hunspell
>>> hobj = hunspell.HunSpell('/usr/share/myspell/en_US.dic', '/usr/share/myspell/en_US.aff')
>>> hobj.spell('spookie')
False
>>> hobj.suggest('spookie')
['spookier', 'spookiness', 'spooky', 'spook', 'spoonbill']
>>> hobj.spell('spooky')
True
>>> hobj.analyze('linked')
[' st:link fl:D']
>>> hobj.stem('linked')
['link']
Pythonステミングモジュールには、Porter、Porter2、Paice-Husk、Lovinsなどのさまざまなステミングアルゴリズムが実装されています。 http://pypi.python.org/pypi/stemming/1.0
>> from stemming.porter2 import stem
>> stem("factionally")
faction
トピックモデリングのgensim
パッケージには、PorterStemmerアルゴリズムが付属しています。
>>> from gensim import parsing
>>> gensim.parsing.stem_text("trying writing nonsense")
'try write nonsens'
PorterStemmerは、に実装されている唯一のステミングオプションgensim
です。
補足:ほとんどのテキストマイニング関連モジュールには、ポーターのステミング、空白の削除、ストップワードの削除などの単純な前処理手順のための独自の実装があることを想像できます(これ以上の参照はありません)。
PyStemmerは、SnowballステミングライブラリへのPythonインターフェイスです。
ドキュメントはここにあります: https ://github.com/snowballstem/pystemmer/blob/master/docs/quickstart.txt https://github.com/snowballstem/pystemmer/blob/master/docs/quickstart_python3.txt