2012-04-29 12 views
13

前処理段階でテキストドキュメントをステミングするための良いpythonモジュールが必要です。テキストドキュメントのステミング用のPythonモジュールが必要

私はこの1つ

http://pypi.python.org/pypi/PyStemmer/1.0.1

を見つけましたが、私は提供されたリンクint型のドキュメントを見つけることができません。

私はどこにドキュメントや他の良いステミングアルゴリズムを見つけるのを知って誰も助けてください。

答えて

25

あなたがNLTK

>>> from nltk import PorterStemmer 
>>> PorterStemmer().stem('complications') 
+0

1980年代に開発されたPorterStemmerはありませんでしたか?確かにより高度なオプションがありますか? – kalu

+1

あなたは他のステマーがあるということは間違いありません。 [stemmersのPythonでのNatural Language Processing](http://www.nltk.org/book3/ch03.html#stemmers)のプレビューから、LancasterとPorterを簡単に比較して、 "Stemming is notよく定義されたプロセスであり、私たちは通常、私たちが心に留めているアプリケーションに最適なステムマーを選びます。テキストを索引付けしていて、別の形式の単語を使って検索をサポートしたい場合には、Porter Stemmerは良い選択です。 – ditkin

5

Pythonの語幹モジュールは、ポーター、Porter2、ペイス・ハスク、およびロビンスのような様々な語幹アルゴリズムの実装を持って試してみたいことがあります。 http://pypi.python.org/pypi/stemming/1.0

>> from stemming.porter2 import stem 
    >> stem("factionally") 
    faction 
+0

これはPythonの純粋な実装であり、高速なC実装のラッパーであるPyStemmerよりも低速で実行されることに注意してください。 –

2

ここで議論されてきたこれらのすべてのステマーは、それゆえ、彼らは常に正しく1は、このような辞書ベースのステマーを必要とするルートの単語を取得するには、このような

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' 

として、予期しない結果を生成することができ、アルゴリズムのステマですHunspell Stemmerとして。linkの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'] 
+4

-1:ステーマーのオブジェクトは、ルートワード(またはlemmatization、nltkものためのモジュール)ではなく、他の変奏曲も短くなるであろう短縮されたバージョンの単語を見つける。語幹が根本を見つけられないかどうかは関係ありません。限り、 '茎('ナンセンス ')==茎('無意味な ')!=茎('バナナ ') '、それはいいです。 –

0

gensim packageはポーターステマーアルゴリズムが付属しています:

>>> from gensim import parsing 
>>> gensim.parsing.stem_text("trying writing nonsense") 
'try write nonsens' 

PorterStemmerはgensimで実装のみ起因するオプションです。

説明:ほとんどのテキストマイニング関連モジュールは、Porterのステミング、ホワイトスペースの削除、ストップワードの削除などの簡単な前処理手順のための独自の実装を持っていると想像することができます。

関連する問題