それぞれをいつ使用しますか?
また...NLTKのレンマ化は品詞に依存していますか?もしそうなら、もっと正確ではないでしょうか?
短くて密度の高い:http://nlp.stanford.edu/IR-book/html/htmledition/stemming-and-lemmatization-1.html
語幹変化と語彙変化の両方の目標は、語形変化の形、場合によっては派生的に関連する形の単語を共通の基本形に減らすことです。
ただし、2つの単語の味は異なります。ステミングとは、通常、ほとんどの場合、この目標を正しく達成することを期待して単語の終わりを切り落とす大まかなヒューリスティックプロセスを指し、派生接辞の削除が含まれることがよくあります。見出語とは、通常、語彙と単語の形態素解析を使用して物事を適切に行うことを指し、通常、語尾変化のみを削除し、単語のベースまたは辞書形式を返すことを目的としています。これは、見出語として知られています。
NLTKドキュメントから:
LemmatizationとStemingは、正規化の特殊なケースです。それらは、関連する単語形式のセットの正規の代表を識別します。
Lemmatisationはステミングと密接に関連しています。違いは、ステマーは文脈を知らなくても1つの単語を操作するため、品詞によって意味の異なる単語を区別できないことです。ただし、ステマーは通常、実装と実行がより簡単であり、一部のアプリケーションでは精度の低下が問題にならない場合があります。
例えば:
「より良い」という言葉は、その補題として「良い」を持っています。このリンクは、辞書の検索が必要なため、ステミングによって失われます。
「歩く」という言葉は「歩く」という言葉の基本形であるため、ステミングとレンマ化の両方で一致します。
「会議」という単語は、文脈に応じて、名詞の基本形または動詞の形式(「会う」)のいずれかになります。たとえば、「最後の会議で」または「明日また会います」などです。ステミングとは異なり、レンマ化は原則として、コンテキストに応じて適切なレンマを選択できます。
ステミングは、単語の最後の数文字を削除またはステミングするだけであり、多くの場合、誤った意味やスペルにつながります。補題は文脈を考慮し、単語を意味のある基本形に変換します。これは補題と呼ばれます。同じ単語に複数の異なる見出語が含まれる場合があります。その特定のコンテキストで単語の品詞(POS)タグを識別する必要があります。以下に、すべての違いと使用例を説明する例を示します。
それらの違いを示す2つの側面があります。
ステマーは単語の語幹を返しますが、これは単語の形態学的な語根と同一である必要はありません。通常、関連する単語が同じ語幹にマップされるだけで十分です。たとえ語幹自体が有効なルートでなくても、見出語では、単語の辞書形式が返されます。これは有効な単語である必要があります。
レンマ化では、単語の品詞を最初に決定する必要があり、正規化規則は品詞ごとに異なりますが、ステマーは文脈を知らなくても1つの単語を操作するため、異なる単語を区別することはできません。品詞による意味。
参照http://textminingonline.com/dive-into-nltk-part-iv-stemming-and-lemmatization
ステミングとレンマ化の両方の目的は、形態学的変化を減らすことです。これは、語彙意味論、構文、または正書法のバリエーションにも対処できる、より一般的な「用語の混同」手順とは対照的です。
ステミングとレンマ化の本当の違いは3つあります。
ステミングは単語形式を(疑似)語幹に減らしますが、レンマ化は単語形式を言語的に有効な見出語に減らします。この違いは、より複雑な形態の言語では明らかですが、多くのIRアプリケーションには関係がない場合があります。
Lemmatizationは屈折分散のみを処理しますが、stemingは派生分散も処理する場合があります。
実装に関しては、通常、レンマ化はより洗練されており(特に形態学的に複雑な言語の場合)、通常、ある種の語彙が必要です。一方、満足のいくステミングは、かなり単純なルールベースのアプローチで実現できます。
同音異義語を明確にするために、品詞タガーによってレマタイゼーションをバックアップすることもできます。
MYYNが指摘したように、ステミングとは、元の単語のすべてがおそらく関連している基本形への語形変化および場合によっては派生的な接辞を削除するプロセスです。Lemmatizationは、活用されたフォームの束をグループ化できる単一の単語を取得することに関係しています。これは、文脈(したがって単語の意味)を考慮に入れる必要があるため、ステミングよりも困難ですが、ステミングはコンテキストを無視します。
どちらを使用するかについては、コンテキスト内の単語の意味を正しく取得することにアプリケーションがどれだけ依存するかが問題になります。機械翻訳を行っている場合は、単語の誤訳を避けるために、おそらくレンマ化が必要です。クエリの99%が1〜3語の範囲で、10億を超えるドキュメントの情報検索を行っている場合は、ステミングに落ち着くことができます。
NLTKに関しては、WordNetLemmatizerは品詞を使用しますが、提供する必要があります(そうでない場合、デフォルトで名詞になります)。「dove」と「v」を渡すと「dive」になり、「dove」と「n」を渡すと「dove」になります。
ステミングとは、特定の単語の最後の数文字を削除して、その形式に意味がない場合でも、より短い形式を取得するプロセスです。
例、
"beautiful" -> "beauti"
"corpora" -> "corpora"
ステミングは非常に迅速に行うことができます。
一方、Lemmatizationは、単語の辞書の意味に従って、指定された単語を基本形式に変換するプロセスです。
例、
"beautiful" -> "beauty"
"corpora" -> "corpus"
Lemmatizationはステミングよりも時間がかかります。
Stemmingは、同じ単語のすべての異なる形式を、それ自体が正当な単語である必要のない基本形式に変換するために使用する大まかなハックだと思います。PorterStemmerの
ようなものは、単純な正規表現を使用して一般的な単語の接尾辞を削除できます。
Lemmatizationは、単語を実際の基本形に戻します。不規則動詞の場合、入力単語のようには見えない可能性が
あります。FSTを使用して名詞と動詞を基本形にするMorphaのようなもの
語幹と補題はどちらも語形変化した単語の基礎的な種類を生成するため、唯一の違いは、語幹が実際の単語ではない可能性があるのに対し、補題は実際の言語の単語であるということです。
ステミングは、単語に対して実行する手順を備えたアルゴリズムに従い、単語を高速化します。一方、見出語では、コーパスを使用して見出語を提供し、見出語よりも遅くします。さらに、適切な補題を取得するために品詞を定義する必要があるかもしれません。
上記の点は、速度が集中している場合は、レンマタイザーが時間と処理を消費するコーパスをスキャンするため、ステミングを使用する必要があることを示しています。ステマーを使用するか、レンマタイザーを使用するかを決定するのは、作業している問題によって異なります。詳細については、リンクをご覧ください: https ://towardsdatascience.com/stemming-vs-lemmatization-2daddabcb221
Huangetal。ステミングとレマタイゼーションについて次のように説明します。選択は、問題と計算リソースの可用性によって異なります。
ステミングは、単語の接尾辞を削除または置換することによって単語の一般的な語根形式を識別します(たとえば、「フラッディング」は「フラッド」としてステミングされます)。 "良い")。
Huang、X.、Li、Z.、Wang、C.、およびNing、H.(2020)。迅速な対応のための災害関連ソーシャルメディアの特定:ビジュアルとテキストが融合したCNNアーキテクチャ。International Journal of Digital Earth、13(9)、1017-1039。https://doi.org/10.1080/17538947.2019.1633425
ステミング は、語根/語根の形態学的変形を生成するプロセスです。ステミングプログラムは、一般にステミングアルゴリズムまたはステマーと呼ばれます。多くの場合、特定のキーワードのテキストを検索するときに、検索で単語のバリエーションが返される場合に役立ちます。たとえば、「ボート」を検索すると、「ボート」と「ボート」も返される場合があります。ここで、「ボート」は[ボート、ボーター、ボート、ボート]の語幹になります。
Lemmatization は、単語の削減を超えて、言語の完全な語彙を考慮して、形態素解析を単語に適用します。「was」の見出語は「be」であり、「mice」の見出語は「mouse」です。
私はこのリンクを参照しました、 https://towardsdatascience.com/stemming-vs-lemmatization-2daddabcb221