-2

トレーニング済みの英語版ウィキペディア ベクトル ファイル ( wiki.en.vec) を fastText Github リポジトリ ページからダウンロードし、次のように Mikolov の最初の word2vec 論文で説明されているように、構文および意味の類推タスクの精度を計算しようとしました。

を実行するだけで word2vec リポジトリを構築しましたmake

つまり、デフォルトで 30000 に制限するのでは./compute-accuracy wiki.en.vec 0 < questions-words.txtなく、語彙全体を考慮するために、事前トレーニング済みのベクトル ファイルを word2vec の計算精度バイナリに 0 のしきい値と共に渡し、精度も送信します。コードが標準入力からデータセットを読み取ることに気付いたので、計算データセットquestions-words.txtを使用しています。<

応答として、以下のような一連の NaN を取得します。これは、しきい値を 30000 などに変更しても変わりません。

>capital-common-countries:
ACCURACY TOP1: 0.00 % (0 / 1)
Total accuracy: -nan % Semantic accuracy: -nan % Syntactic accuracy: -nan %

英語の事前学習済みベクトルが word2vec の精度計算コードで機能しないように見える理由を誰か説明してもらえますか? 見てみるcompute-accuracy.cと、標準のベクター ファイルの書式設定規則が想定さwiki.en.vecれているように見えます。また、標準の規則で書式設定されているようにも見えます。

また、fastText の論文では、fastText ベクトルを使用した単語の類推精度が提示されており、この論文では Mikolov の word2vec 論文が引用されています。明らかに、同じデータセットが使用されており、おそらく同じ word2veccompute-accuracy.cファイルが提示された数値を取得するために使用されました。それで、誰かが何がうまくいかないのか説明してもらえますか?

4

1 に答える 1

0

compute-accuracyローカルでトレーニングされたベクターで機能しますか? (つまり、Facebook ソースのベクトルの追加変数を追加せずにセットアップが機能していますか?)

もしそうなら、「コンピュータ精度」で動作するローカルで訓練されたベクトル セットは、Facebook がダウンロードしたファイルと同じフォーマット/エンコーディングであるように見えますか?

私の理解が正しければ、.vecファイルはテキスト形式です。compute-accuracyword2vec.c リポジトリ内で実行可能ファイルを使用する例は、バイナリ形式のベクトルを引数として渡すことを示しています。見る:

https://github.com/tmikolov/word2vec/blob/master/demo-word-accuracy.sh#L7

于 2017-07-15T02:06:55.623 に答える