ステミングとレマタイゼーション
1. 序章
この記事では、自然言語処理と情報検索で広く使用されている2つの手法であるステミングとレンマ化について説明します。 それらは同様の目的を果たすことができますが、それぞれに長所と短所があり、どちらを使用するのが最適かを見ていきます。
2. ステミングとレマタイゼーションの理由
ステミングとレンマ化はどちらも単語の正規化手法です。同じ単語のバリエーションを適切に処理するために検索エンジンを実装する場合によく使用されます。
たとえば、ユーザーが「ドッグフード」を検索している場合、単数形の「食品」も含む結果を取得する可能性があります。つまり、複数形の「食品」を「食品」に正規化する必要があります。 同様に、動詞と形容詞の同様のバリエーションを処理したいと思います。
ここで、ステミングまたはレンマ化が役立ちます。
3. ステミング
ステミングは単純な正規化手法であり、ほとんどの場合、単語に段階的に適用されて正規化された形式を生成する一連のルールとして実装されます。
これらの規則は言語ごとに異なり、手元の言語の形態学的構造を反映しています。 たとえば、英語の場合、考えられるルールは、単語の末尾の「s」を削除して、単語をその単数形に変換することです。
ステミングについて覚えておくべき重要なことの1つは、正規化された単語が有効である必要はなく、同じ単語のバリエーションだけが同じ語幹にマッピングされることです。
この現象は、英語で広く使用されているステミングアルゴリズムであるPorterステマーを試してみるとわかります。 「engine」または「engines」という単語で使用すると、「engin」になります。 これは有効な英語の単語ではありませんが、両方の単語が同じ語幹にマッピングされることだけを気にします。
最初は直感に反しているように見えるかもしれませんが、これは問題ではありません。 ステミングは主に検索エンジンでドキュメントのインデックスを作成するために使用されます。したがって、これらのステムは無効な単語である可能性があり、ドキュメントを検索するために内部でのみ処理され、ユーザーに表示されることはありません。
4. Lemmatization
レンマ化は、ステミングのより洗練されたバージョンと考えることができます。 各単語を適切な基本形、つまり辞書で見つけることができる単語に縮小します。
これを行うには、単語が名詞、動詞、形容詞などであるかどうかにかかわらず、さまざまな正規化規則を適用する必要がある場合があるため、レンマ化アルゴリズムは入力単語の品詞情報の可用性に依存します。
例として、「フォロー」という言葉を考えてみましょう。 文脈に応じて、これは名詞(たとえば、「彼は非常に多くのフォロワーを持っている」)、動詞(たとえば、「彼はウサギをフォローし始めた」)、または形容詞(たとえば、「翌日」)のいずれかになります。 形容詞または動詞の場合、lemmatizationは「following」を返し、動詞の場合は「follow」を返します。 ステミングアルゴリズムはこれを認識せず、すべての場合に「follow」を返すために「ing」サフィックスを削除します。
検索エンジンは、ステミングと同様の方法で、レンマ化を使用してドキュメントにインデックスを付けることができます。 ただし、精度が高いため、Word Sense Disambiguationなど、有効な単語を使用する必要があるさまざまなNLPタスクで使用されます。
実際の英語の文でのステミングとレンマ化の違いは次のとおりです。
5. 長所と短所
ステミングとレンマ化のどちらを使用するかは、特定の要件に大きく依存します。
一般に、ステミングの利点は、実装が簡単で、実行が高速であることです。 ここでのトレードオフは、出力に不正確さが含まれる可能性があることですが、テキストのインデックス作成などの一部のタスクには関係がない場合があります。
代わりに、 lemmatizationは、単語の品詞に依存する分析を実行し、実際の辞書の単語を生成することにより、より良い結果を提供します。 その結果、レンマ化は、ステミングに比べて実装が難しく、遅くなります。
要約すると、定性的な観点からは、ほとんどの場合、レンマ化がより良い選択です。 今日の計算リソースでは、レンマ化アルゴリズムの実行が全体的なパフォーマンスに大きな影響を与えることはありません。 ただし、速度を大幅に最適化する場合は、より単純なステミングアルゴリズムが可能になる可能性があります。
6. 結論
この記事では、ステミングとレンマ化の概要を確認し、それらの違い、長所、短所を調べて、2つから選択する方法を理解しました。