小さなテキストファイルにword2vecを適用する


11

私はword2vecがまったく新しいので、plsは私と一緒にそれに耐えます。私はテキストファイルのセットを持っています。それぞれに1000〜3000のツイートのセットが含まれています。共通のキーワード( "kw1")を選択し、word2vecを使用して "kw1"に意味的に関連する用語を見つけたいと考えています。たとえば、キーワードが「apple」の場合、入力ファイルに基づいて「ipad」、「os」、「mac」などの関連用語が表示されます。したがって、この「kw1」の関連用語のセットは、word2vecが個々のファイルでトレーニングされるため(たとえば、5つの入力ファイル、各ファイルでword2vecを5回実行)、入力ファイルごとに異なります。

私の目標は、他の目的で使用される共通のキーワード( "kw1")が指定された各入力ファイルの関連用語のセットを見つけることです。

私の質問/疑問は:

  • このようなタスクにword2vecを使用することには意味がありますか?入力ファイルのサイズが小さいことを考慮して使用するのは技術的に正しいですか?

:私はcode.google.comからコードをダウンロードしているhttps://code.google.com/p/word2vec/と、次のようにちょうどそれに予行演習を与えています:

 time ./word2vec -train $file -output vectors.bin -cbow 1 -size 200 -window 10 -negative 25 -hs 1 -sample 1e-3 -threads 12 -binary 1 -iter 50

./distance vectors.bin 
  • 私の結果から、「距離」ツールを使用して関連する用語を「kw1」に取得すると、多くのノイズの多い用語(ストップワード)が表示されることがわかりました。そのため、ストップワードやユーザーの言及など、その他のノイズの多い用語は削除しました。しかし、word2vecがクリーンな入力データを必要とすることはどこにもありません...?

  • どのようにして正しいパラメータを選択しますか?「-window」、「-iter」などのパラメーターを変更すると、(距離ツールの実行による)結果が大きく異なることがわかります。パラメータの正しい値を見つけるには、どの手法を使用すればよいですか。(私はデータセットをスケールアップするので、手動で試行錯誤することはできません)。

回答:


9

Word2Vecは、このようなサイズのデータ​​セットには適していません。私が見た研究から、少なくとも数百万の単語をフィードすれば、その力が発揮されます。3kのツイートでは、簡潔な単語の類似性には不十分です。


データの前処理ステップとしてストップワードを削除する必要がありますか?
samsamara

2
いいえ、word2vecアプローチでは、アルゴリズム自体が単語の類似性を見つけるために幅広いコンテキストに依存しているため、ストップワード(大部分は前置詞、代名詞など)がアルゴリズムの重要な評価であるため、これを行う必要はありません。 。
チューパカブラ2016年

しかし、距離ツールを使用して特定の単語に最も類似する単語を検索しているとき、ストップワードを削除したバージョンでは、バージョンなしのバージョンよりも適切な単語が得られました。これはどういう意味だと思いますか?
samsamara

おそらく、使用するコンテキストが狭すぎます。たとえば、モデルが前後に2つの単語を調べている場合、コンテキストにストップワードが2つまであり、結果が悪化する可能性があります。コンテキストを広げると(モデルが大きくなり、トレーニング時間が長くなります)、ストップワード付きのモデルを使用するとより良い結果が得られると思います。
チューパカブラ2016

入力をありがとう、今より意味があります。また、word2vecは入力セ​​ンテンスをセンテンスごとに処理するため、入力ドキュメント内のセンテンスを混同するとどうなりますか?それは出力ベクトルを完全に変えるべきですか?また、sentによって送信された処理を考えると、word2vecはdoc2vecとどのように異なりますか?再度、感謝します。
samsamara
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.