2012-05-11 10 views

答えて

77

ポーターとランカスターのステミングアルゴリズムの主な違いは、ランカスターのステマーがポーターステマーよりもはるかに積極的であることです。今日使用されている3つの主要なステミングアルゴリズムは、Porter、Snowball(Porter2)、Lancaster(Paice-Husk)です。 Porterは、最も積極的なアルゴリズムであり、各アルゴリズムの詳細は実際にかなり長く技術的です。しかし、ここではあなたのためのブレークダウンです:

ポーター:最も一般的に使用されるステマー、間違いなく、最も穏やかなstemmersのも。実際にはJavaのサポートをプラスしている少数のステムマーのうちの1つですが、計算量が最も多いアルゴリズムです(非常に大きなマージンではありません)。それはまた、最も大きなステミングアルゴリズムでもあります。

Porter2:ほとんど普遍的に、ポーターを上回る改善と見なされています。正当な理由があります。 Porter自身は、実際には彼の元のアルゴリズムよりも優れていると認めています。ポーターに比べて計算時間がやや速く、周囲にはかなり大きなコミュニティがあります。

ランカスター:非常に積極的なステミングアルゴリズムです。ポーターとスノーボールでは、通常、棒状の表現は読者にとってかなり直感的であり、多くの短い単語が完全に難読化されるため、ランカスターではそうではありません。ここでは最速のアルゴリズムで、ワーキングセットを大きく減らすことはできますが、もっと区別したいのであれば、あなたが望むツールではありません。

正直言って、私はスノーボールが普通に行く方法だと感じています。ランカスターがあなたのワーキングセットを大幅にトリミングする特定の状況がありますが、これは非常に便利ですが、私の意見ではスノーボールの限界速度が精度の欠如に値するものではありません。ポーターは最も実装が多いので、通常はデフォルトのゴーイングアルゴリズムですが、可能であればスノーボールを使用します。

+31

スノーボールは実際にはステムマーの正確な定義のためにMartin Porterによって設計された言語ですが、それ自体がステマーではありません。あなたが参照するアルゴリズムは、 "English Stemmer"または "Porter2 Stemmer"として知られています。これは "Porter Stemmer"と非常によく似ていますが、ルールは若干改善されています。あなたが研究のための比較を行っているならば、 "Porter"(オリジナル)ははるかに頻繁に使用されますが、実際の精度を "Porter2"に固執させたいならば。デフォルトでは "Paice-Husk"は重いステムメルですが、別のルールファイルを使用して独自のルールをロールする場合に便利です。 3の間の計算時間はかなり簡単です。 – TheManWithNoName

+0

@ TheManWithNoName元の答えは、スノーボールのことでしたが、私が読んでいたものではないので、私のものから混乱を混乱させました。混乱を解消してくれてありがとう。 – Gerry

+3

答えの恩恵を受けるために、スノーボール言語と仮定されているスノーボール・ステマーとの間の混乱が広がっています。たとえば、NLTKでは、「SnowballStemmer」という用語を使用しています。http://www.nltk.org/howto/stem.html – juanmirocks

関連する問題