web-dev-qa-db-ja.com

見出し語化とステミングの本当の違いは何ですか?

それぞれをいつ使用しますか?

また... NLTKの見出し語化は品詞に依存していますか?正確だったのではないでしょうか?

104
TIMEX

短くて密: http://nlp.stanford.edu/IR-book/html/htmledition/stemming-and-lemmatization-1.html

ステミングと見出し語化の両方の目標は、語の屈折形と、派生的に関連する形の単語を共通の基本形に減らすことです。

ただし、2つの単語のフレーバーは異なります。ステミングは通常、ほとんどの場合この目標を正しく達成することを期待して単語の端を切り落とす粗いヒューリスティックプロセスを指し、多くの場合、派生接辞の削除を含みます。語彙化とは、通常、語彙と形態素解析を使用して適切に処理することを指し、通常は語尾変化のみを削除し、語の基本形または辞書形を返すことを目的としています。

NLTKドキュメントから:

見出し語化とステミングは、正規化の特殊なケースです。これらは、関連する一連のWordフォームの正規の代表を識別します。

107
miku

補題は、ステミングと密接に関連しています。違いは、ステマーはコンテキストを知らずに単一の単語で動作するため、品詞によって異なる意味を持つ単語を区別できないことです。ただし、ステマーは通常、実装と実行がより簡単で、アプリケーションによっては精度の低下は問題になりません。

例えば:

  1. 「より良い」という言葉には、その補題として「良い」があります。辞書の検索が必要なため、このリンクはステミングによって失われます。

  2. 単語「walk」は、単語「walking」の基本形であり、したがって、これはステミングと見出し語化の両方で一致します。

  3. 単語「meeting」は、文脈に応じて、名詞の基本形または動詞の形(「会う」)のいずれかです。ステミングとは異なり、補題化は原則として文脈に応じて適切な補題を選択できます。

出典https://en.wikipedia.org/wiki/Lemmatisation

56

ステミングと見出し語化の両方の目的は、形態学的なばらつきを減らすことです。これは、より一般的な「用語混同」手順とは対照的です。これは、語彙意味論的、構文的、または正字法のバリエーションにも対応します。

ステミングと見出し語化の本当の違いは3つあります。

  1. 語幹化は、Word形式を(疑似)ステムに減らします。一方、見出し語化は、Word形式を言語学的に有効な見出し語に減らします。この違いは、より複雑な形態の言語では明らかですが、多くのIRアプリケーションには関係ありません。

  2. 語彙化は屈折変化のみを処理しますが、ステミングは派生変化も処理する場合があります。

  3. 実装の観点から、補題化は通常より洗練され(特に形態学的に複雑な言語の場合)、通常何らかの種類の語彙が必要です。一方、満足のいくステミングは、かなり単純なルールベースのアプローチで実現できます。

同音異義語を明確にするために、品詞化は品詞タガーによってバックアップすることもできます。

14
Jan Snajder

違いを示すには2つの側面があります。

  1. stemmerは、Wordのステムを返します。これは、Wordの形態学的ルートと同一である必要はありません。通常、関連する単語が同じ語幹にマッピングされることで十分です。たとえ語幹自体が有効なルートでない場合でも、lemmatisationでは、有効なWordでなければならないWordの辞書形式。

  2. lemmatisationでは、最初に単語の品詞を決定する必要があり、品詞によって正規化ルールが異なりますが、stemmerは、コンテキストを知らない単一のWordで動作するため、品詞によって意味が異なる単語を区別できません。

参照 http://textminingonline.com/dive-into-nltk-part-iv-stemming-and-lemmatization

14
Liang Zhang

MYYNが指摘したように、ステミングとは、元の単語のすべてがおそらく関連している基本形への屈折的および派生的な接辞を削除するプロセスです。見出し語化は、1つのWordを取得することに関するもので、これを使用して、さまざまな形のフォームをグループ化できます。ステミングはコンテキストを無視する必要があるため、これはステミングよりも困難です(したがって、Wordの意味)。

どちらを使用するかについては、コンテキスト内でWordの意味を正しく取得することにアプリケーションがどれだけ依存するかという問題です。機械翻訳をしている場合、おそらく単語の誤訳を避けるために、見出し語化が必要です。クエリの99%が1〜3ワードの範囲で10億件以上のドキュメントを対象に情報を取得している場合は、ステミングに対応できます。

NLTKに関しては、WordNetLemmatizerは品詞を使用しますが、あなたはそれを提供する必要があります(そうでない場合はデフォルトで名詞になります)。 「dove」と「v」を渡すと「dive」が得られ、「dove」と「n」を渡すと「dove」が得られます。

13
ealdent

見出し語化とステミングの違いに関する例に基づいた説明:

Lemmatizationハンドル「car」を「cars」に一致させるとともに、「car」を「automobile」に一致させます。

Stemmingは、「car」と「cars」のマッチングを処理します。

見出し語化は、同じサブシステムで処理されるファジーなWordマッチングのより広い範囲を意味します。これは、エンジン内での低レベル処理のための特定の手法を意味し、用語に対する工学的な好みを反映している場合もあります。

[...] FASTを例にとると、それらの見出し語化エンジンは、単数形と複数形などの基本的なWordのバリエーションだけでなく、「ホット」マッチと「ウォーム」のようなシソーラス演算子も処理します。

もちろん、他のエンジンが同義語を処理しないというわけではありませんが、低レベルの実装は、基本ステミングを処理するサブシステムとは異なるサブシステムにある可能性があります。

http://www.ideaeng.com/stemming-lemmatization-0601

9
majom

ianacl
[。
Porter Stemmerのようなものは、単純な正規表現を使用して、一般的なWordサフィックスを排除できます。

語彙化は、Wordを実際の基本形に戻します。これは、不規則な動詞の場合、入力Wordのようには見えません。
モルファのようなもので、FSTを使用して名詞と動詞を基本形にするもの

3
Aditya Mukherji