2017-10-30 10 views
0

gensim word2vecを使用して、名前付きエンティティ認識問題で単語をベクトルとして表現するための一連の訴訟ファイルを組み込んだCBOWモデルを構築しましたが、私の言葉の表現。私がwordsim353(NLTK)やGoogleの他のオンラインデータセットのような他のデータセットを使用すると、ファイルの自分のドメインデータセットに固有のモデルを構築したため、動作しません。 word2vecの単語ベクトルの表現を評価するにはどうすればいいですか。同様のコンテキストに属する単語をベクトル空間に近づけたいと思います。特定のコンテキストファイルでword2vecビルドを評価する方法

私はという奇妙なものがと呼ばれる技術を使用して始めました。例:

model.wv.doesnt_match("breakfast cereal dinner lunch".split()) --> 'cereal' 

私はcontext.Butのうち、3つの同様の文脈の言葉と奇数ワードを取っての精度を評価word2vec .Startedの訓練中の単語を使用して(検証する)私自身のデータセットを作成しました私のモデルはわずか30%です。

上記の方法は、私のw2vモデルの評価に本当に役立ちますか?それとも良い方法がありますか?

私はword_similarity measureを使いたいと思っていますが、私のモデルを評価するためにリファレンススコア(Human assessed)が必要ですか、それを行う方法はありますか?どうか提案や技術を提案してください。

答えて

0

最終的には、これは単語ベクトルの目的に応じて決まります。評価はできるだけ最終的な使用を模倣する必要があります。

"奇妙なアウト"アプローチは妥当かもしれません。それはしばしば外部の知識/分類を介して(あなたの最終用途にとって重要な側面で)関連することが知られている何らかの2ワードだけで成り立ってから、3番目の単語が無作為に選ばれます。

あなたの手作りの評価セットが目的のために高品質であるが、ワードベクトルがうまくいかないと思うのであれば、トレーニングに他の問題があるかもしれません:前処理のエラー、メタパラメータの選択の誤りなどがあります。

次に改善すべきものを選択するには、個々の障害のケースをより詳細に調べる必要があります。たとえば、あなたの奇妙なテストの1つで失敗した場合でも、最も類似した単語のリストは、含まれている単語ごとに、まだ眼球検査で表面的な意味を持っていますか?より多くのデータやトレーニングの繰り返しを使用すると、評価スコアが大幅に向上しますか?

訓練と評価/導入の間によくある間違いは、(もっと間違った)直感では、より多くの稀少な言葉をあまりにも多く保持することです。事実、数回の出現しかない単語は、非常に高品質のベクトルを得ることができません。 (より頻繁な単語と比較すると、それらの終了ベクトルは、ランダムなオリジナルの初期化によって、そしてそれらの最も一般的な意味よりむしろ利用可能な少数の出来事の特異性によって、より大きく左右される。)さらに、それらの存在は、近くの他の頻繁な単語のあなたの評価に弱いベクトルの「ロングテール」を含めると、通常の単語に先んじて強力なベクタを使ってランク付けされ、評価の質問に対する「正しい」答えが隠されます。

また、あなたは自分の真のエンド目標の右方向であなたの他の最適化を指して何かを探しているので、評価スコアの絶対値は、その重要ではないかもしれないことに注意してください。正確な評価質問でわずかに優れている単語ベクトルは、他のファジーな情報検索コンテキストでも十分に機能するかもしれません。

関連する問題