問題タブ [word2vec]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python word2vecのインストール時にエラーが発生する
Python word2vec をインストールすると、次のエラーが表示されます。私は何をすべきか?
python - word2vec でエンコード エラーが発生する
コードを実行すると、次のエラーが発生します
ここに私のコード
cuda - GPU で動作するように擬似コードを並列化する: ミスアラインされたメモリ アクセスを克服する
これは、並列化しようとしている疑似コード (word2vec C コードから取得) です。まず、データ構造とそれに対応するサイズをリストし、次に疑似コードをリストします。
プログラムへの入力はテキスト ファイルです。次に、プログラムはそれを一度に 1 語ずつ処理して語彙を構築します。たとえば、テキスト ファイルに次の文があるとします。
「並列プログラミングは非常に興味深い」</p>
すると、語彙は次のようになります (コードは単語の頻度に基づいて語彙を並べ替えるため)。
語彙を構築した後、コードは一度に 1000 語ずつテキストの処理を再開します。最初の 1000 語が に保存されsen[MAX_SENTENCE_LENGTH]
、次にニューラル ネットワークが 内のすべての語についてトレーニングされsen
、このプロセスがファイルの最後に到達するまで続きます。上記の文の場合、次のようにsen
なります[1,2,3,0,0,4]
。
トレーニングが 1 回の反復でのみ行われると仮定すると、擬似コードは次のようになります。
これを並列化する最善の方法は、文中の単語を並列処理することだと考えています。N
すべてのループを考慮すると、単一のスレッドがループごとに 1 回だけグローバル メモリ ( ) にアクセスするように、ワードごとにスレッドを使用する必要があると思いsyn0, syn1neg
ます。また、neu1
とのneu1e
更新はすべて独立しているため、スレッドのプライベート メモリに常駐し、個別に更新することができます。
現在の主な懸念事項は次のとおりです。
- グローバル メモリ アクセスは、変数の値 (ボキャブラリのインデックス) に基づいてアクセスされるため
syn0
、ランダムな方法で発生しています。そして、ご覧のとおり、文中の単語は順不同です。syn1neg
word
これは大きな問題ですか?または、GPU に十分な数のスレッドを与えることで、メモリのレイテンシを隠すことはできますか? また、N スレッド/ワードが syn0 および syn1neg のシーケンシャル データにアクセスするため、このアクセス パターンが実際にランダムかどうかはわかりませんが、N スレッドの次のセットはメモリ内の遠くにあるシーケンシャル データにアクセスする可能性があります。
- ネガティブ サンプリング ループでは、リダクション操作を実行する必要があります。変数
f
は内積の合計です。問題は、グローバルメモリにあるのneu1
に対し、各スレッドのプライベートメモリに格納することを計画していることです。syn1neg
ネガティブ サンプリングには別のカーネルが必要ですか? Nスレッド/ワードを起動するだけではなく、別のアプローチが必要なようですが、どのアプローチが最適かはわかりません。
これらの懸念とは別に、このコードへのアプローチ方法に問題があるかどうかを提案してください。
python - word2vec で反意語を取得するには?
現在、Python で gensim を使用して word2vec モデルに取り組んでおり、特定の単語の反意語と同義語を見つけるのに役立つ関数を作成したいと考えています。例: antonym("sad")="happy" synonym("upset")="enraged"
word2vecでそれを行う方法はありますか?
gensim - Doc2Vec 文を段落ベクトルに結合する
Gensim の Doc2Vec では、文のベクトルをどのように組み合わせて段落の単一のベクトルを作成しますか? 段落全体でトレーニングできることはわかっていますが、文脈などのために、個々の文でトレーニングする方が明らかに良いでしょう. (私は思う...?)
アドバイスや通常の使用例はありますか?
また、モデルから文/段落ベクトルを取得するにはどうすればよいですか?
python - 保存したベクター テキスト ファイルからベクターを取得するにはどうすればよいですか?
私はすでにWord2vec
Python でモデルをトレーニングしており、これらすべての単語に対応するベクトル (サイズ = 300) をvec.txt
ファイルに保存しています。1 つの単語を取得した場合は、対応するベクトルを取得し、それらに対して何らかの処理を行う必要があります。ベクトル。しかし、txt ファイルからこれらのベクトルを取得する方法がわかりません。
以下は一部ですvec.txt
:
new -0.000113 0.000211 -0.000170 0.000346 -0.000251 -0.001012 0.001647 -0.001331 0.001267 0.000876 0.001243 -0.000600 -0.000667 -0.001241 0.001204 -0.000726 -0.001023 0.001476 -0.001380 0.000065 0.000145 0.001451 0.001275 0.001482 -0.001011 0.001131 0.001095 -0.001637 0.000289 -0.000846 0.001599 -0.001027 -0.000768 -0.000595 0.000825 0.000639 -0.001097 -0.001654 -0.000977 -0.000351 0.001410 0.001182 0.000318 -0.000454 -0.000622 0.000343 0.000508 -0.000258 0.001347 0.000362 0.000372 -0.000208 0.000896 0.001408 0.001412 -0.001566 0.001642 -0.000865 -0.000656 0.001095 -0.001503 -0.000483 0.000465 0.001352 0.000602 -0.000017 0.000011 0.001219 0.001363 0.001296 -0.000474 0.000718 -0.000544 0.000779 -0.001225 -0.001141 -0.001061 -0.000550 0.001446 0.000735 0.001267 0.001269 0.001115 0.001023 0.001564 -0.000947 0.000320 -0.001648 0.001605 -0.000900 -0.000734 -0.000344 0.000376 -0.001550 0.001241 0.000294 0.000207 -0.001420 0.000297 0.001122 0.000834 -0.001423 -0.001499 0.001060 0.000898 0.001609 -0.000512 -0.001185 -0.001648 0.001328 0.001620 0.001344 0.000160 0.000567 -0.001665 -0.000246 -0.000274 0.001234 0.000659 0.000144 -0.001370 0.001457 -0.000025 0.001117 0.000249 0.000137 - 0.000048 -0.000527 -0.000428 0.000305 -0.001058 0.001374 0.000369 0.001588 0.000085 0.000749 -0.001584 0.000918 -0.001196 0.000424 0.000651 -0.001387 0.000815 -0.000959 0.001261 -0.001246 0.000258 -0.000887 0.001583 0.000102 -0.001337 0.000428 -0.000004 0.000131 0.000487 -0.001659 0.000093 0.001464 0.000356 -0.001479 -0.001217 - 000626 0.001019 0.001179 -0.000599 0.000825 0.000858 -0.000841 0.000399 -0.001587 -0.000923 -0.000496 -0.000668 0.000567 0.001308 0.001042 -0.000676 0.001292-0134000577 0.000292 0.001052 -0.001646 -0.001186 0.000184 0.000747 -0.001190 -0.001472 0.000535 0.000199 0.000522 -0.000229 -0.000277 -0.000136 0.001568 -0.000509 -0.000065 0.000305 0.001245 -0.001371 -0.001378 -0.000742 0.000411 -0.000461 0.001547 0.001272 0.001339 0.000181 -0.001335 0.000257 -0.000001 0.001494 -0.001379 -0.000635 -0.001195 -0.001483 0.000744 -0.000203 0.000407 -0.000061 -0.001561 0.000239 0.000370 0.000227 -0.000043 -0.001377 -0.000961 -0.001038 0.001575 0.000618 0.000218 0.001260 0.000971 0.000572 0.001307 0.000362 -0.000844 -0.000281 0.000440 -0.001122 0.000097 0.001392 0.000427 0.000913 -0.000537 -0.000889 0.000799 - 0.001422 0.001501 0.001130 -0.000633 -0.000747 0.001198 0.000235 0.001335 0.000273 -0.000906 -0.000551 0.000527 0.000900 -0.001294 0.000451 -0.001180 -0.001376 0.000287 0.001508 0.000068 0.000225 0.000504 0.000137 -0.001071 -0.001383 0.001414 -0.000946 0.001358 -0.001146 -0.000623 0.000656 0.001605 0.000519 0.000106 0.001341 -0.000560 -0.001359 0.000721 0.001653 -0.000643 0.000625 0.000133 -0.000321 0.001230 0.000046 -0.001030 0.000752 0.000108 0.001263 0.000562 0.001224
「new」を取得した場合、vec.txt
ファイルから new に対応する 300 個のベクトルを取得する必要があります。
python - Gensim には C コンパイラが必要ですか?
画像を投稿するのに十分な評判がなくて申し訳ありません。
主な問題は、C コンパイラをインストールして gensim を再インストールする必要がある、または列車が遅くなるというメッセージが表示され、実際には非常に遅いことです。
mingw32、Visual Studio 2008 をインストールし、パスに mingw32 環境変数を追加しました。
それを解決する方法についてのアイデアはありますか?
python - Apache Spark - 特徴抽出 Word2Vec の例と例外
A. 以下は私の設定です:
OS: Windows7
Spark バージョン: 1.4.1 (1.4.0 にも存在する問題)
言語: Python と Scala の両方
B. ソースコードの例:
C. 以下はスタック トレースです。
手がかりはありますか?
よろしくお願いします、
ヴィシャール
python - gensim で Word2Vec モデルをロード中にエラーが発生しました
AttributeError
word2vec リポジトリで利用可能な gensim モデルを読み込んでいます。
これは既知の問題ですか?
gensim - word2vec の確率的出力
私は word2vec の世界に不慣れで、word2vec の gensim の実装を使い始めたばかりです。
最初のドキュメント セットとして 2 つの単純な文を使用します。
私が得るベクトルは次のようなものです:
ただし、別のおもちゃのドキュメント セットを入力すると、次のようになります。
次の結果が得られます。
繰り返しますが、私は word2vec を初めて使用しますが、私の理解によると、私の 2 つのドキュメント セットは構造的に同一であるため、対応する単語の結果は同じになるはずです。しかし、なぜ私は異なる結果を得ているのですか? アルゴリズムは常に確率論的な出力を提供しますか、それともドキュメント セットが小さすぎますか?
私が使用した関数は次のとおりです。