web-dev-qa-db-ja.com

トレーニング前のコーパスのword2veclemmatization

Word2vecは、ほとんどが生のコーパスデータでトレーニングされているようです。ただし、レンマ化は、多くの意味的類似性タスクの標準的な前処理です。 Word2vecをトレーニングする前にコーパスをレンマ化した経験がある人はいないか、そしてこれが前処理に役立つステップであるかどうか疑問に思いました。

23
Luca Fiaschi

これで何を解決したいかが本当に重要だと思います。タスクによって異なります。

基本的にレンマ化によって、入力スペースをスパースにします。これは、十分なトレーニングデータがない場合に役立ちます。

しかし、Word2Vecはかなり大きいので、十分なトレーニングデータがあれば、レンマ化はあまり得られないはずです。

さらに興味深いのは、W2V(またはその他)内の既存の単語ベクトルの辞書に関してトークン化を行う方法です。 「良いマフィンはニューヨークで3.88ドルかかる」のように。 ['Good'、 'muffins'、 'cost'、 '$'、 '3.88'、 'in'、 'New York。']にトークン化する必要があります。次に、W2Vからのベクトルに置き換えることができます。課題は、一部のトークナイザーが「ニューヨーク」を['New''York']としてトークン化することです。これはあまり意味がありません。 (たとえば、NLTKはこの間違いを犯しています https://nltk.googlecode.com/svn/trunk/doc/howto/tokenize.html )これは複数の単語のフレーズが多い場合に問題になります。

8
Daniel

私が取り組んでいる現在のプロジェクトでは、Word2Vecによって作成されたベクトル空間を使用して、生物学論文の要約内の遺伝子名を特定します。コーパスをレンマ化せずにアルゴリズムを実行すると、主に2つの問題が発生します。

  • 最終的に同じ意味を持つさまざまな形の単語があるため、語彙が大きくなりすぎます。
  • 上記のように、特定の「意味」の代表が増えるため、スペースはまばらになりませんが、同時に、これらの意味の一部が代表者間で分割される可能性があります。例を挙げて明確にしておきます。

現在、頭字語BADで認識される遺伝子に関心があります。同時に、「悪い」はさまざまな形(ひどく、最悪、...)の英語の単語です。 Word2vecはコンテキスト(周囲の単語)の確率に基づいてベクトルを構築するため、これらの形式の一部をレンマ化しないと、これらの単語の一部間の関係が失われる可能性があります。このように、悪いケースでは、ベクトル空間の形容詞ではなく、遺伝子名に近い単語になってしまう可能性があります。

3
Roger