私はgensimライブラリから作成したword2vecを視覚化したいと思います。私はsklearnを試みたが、私はそれを得るために開発者のバージョンをインストールする必要があるようだ。私は開発者のバージョンをインストールしようとしましたが、それは私のマシンでは動作しません。このコードを修正してword2vecモデルをビジュアル化することは可能ですか?gensimから作成したword2vecでtsneを実行するには?
3
A
答えて
0
Xが縦に行列Xにnumpy.vstackを使用して、すべての単語の埋め込みをCONCATし、それをfit_transformの代わりに、以下のコードを使用してください。
import numpy as np
from sklearn.manifold import TSNE
X = np.array([[0, 0, 0], [0, 1, 1], [1, 0, 1], [1, 1, 1]])
model = TSNE(n_components=2, random_state=0)
np.set_printoptions(suppress=True)
model.fit_transform(X)
fit_transformの出力には、形状vocab_size x 2があり、視覚化することができます。 ピップまたはconda経由だけinstall scikit-learn通常の方法を -
vocab = sorted(word2vec_model.get_vocab()) #not sure the exact api
emb_tuple = tuple([word2vec_model[v] for v in vocab])
X = numpy.vstack(emb_tuple)
13
あなたは学ぶscikitの開発者向けバージョンを必要としません。単にモデルへのインデックスとして単語辞書を使用word2vecによって作成された単語ベクトルにアクセスするには
:後
X = model[model.wv.vocab]
は、いくつかのニュースグループのデータをロードする単純だが、完全なコード例である(非常に基本的なデータの準備を適用します文章を整理し、解読する)、word2vecモデルを訓練し、t-SNEで次元を縮小し、出力を視覚化する。
from gensim.models.word2vec import Word2Vec
from sklearn.manifold import TSNE
from sklearn.datasets import fetch_20newsgroups
import re
import matplotlib.pyplot as plt
# download example data (may take a while)
train = fetch_20newsgroups()
def clean(text):
"""Remove posting header, split by sentences and words, keep only letters"""
lines = re.split('[?!.:]\s', re.sub('^.*Lines: \d+', '', re.sub('\n', ' ', text)))
return [re.sub('[^a-zA-Z]', ' ', line).lower().split() for line in lines]
sentences = [line for text in train.data for line in clean(text)]
model = Word2Vec(sentences, workers=4, size=100, min_count=50, window=10, sample=1e-3)
print (model.most_similar('memory'))
X = model[model.wv.vocab]
tsne = TSNE(n_components=2)
X_tsne = tsne.fit_transform(X)
plt.scatter(X_tsne[:, 0], X_tsne[:, 1])
plt.show()
関連する問題
- 1. gensimから生成されたword2vecを可視化します
- 2. Python Gensim word2vecボキャブラリーキー
- 3. Gensim word2vecオンライントレーニング
- 4. Gensim Word2Vecモデル:カットディメンション
- 5. word2vec(gensim)のscore_cbow_pair
- 6. Gensim word2vecの出力は
- 7. gensimから否定的なWord2Vec類似性を解釈する
- 8. Gensim word2vec/doc2vecマルチスレッド並列クエリ
- 9. gensimを使用してword2vecの実行を並列化できませんでした
- 10. Pythonの:Gensim Word2vecモデルクラスで「サイズ」パラメータは何ですか
- 11. gensimからのword2vec実現は、文脈を調べるときに文章レベルを超えますか?
- 12. gensim word2vecに複数のモデルファイルが作成されているのはなぜですか?
- 13. Gensim Word2Vecが多すぎるメモリを使用しています
- 14. gensim Word2vecモデルをバイナリ形式で保存します.bin with save_word2vec_format
- 15. gensim - Word2vecオンライントレーニング - AttributeError: 'Word2Vec'オブジェクトには属性がありません 'model_trimmed_post_training
- 16. gensim word2vec in/out vectorへのアクセス
- 17. python3のGensim word2vecがありません。
- 18. 事前に訓練された単語ベクトルを使用してgensim word2vecモデルを作成するにはどうすればよいですか?
- 19. あらかじめ定義された辞書と単語インデックスデータのGensim word2vec
- 20. word2vecでfit_predictを実行する
- 21. Word2VecモデルをインポートするときのGensimエラー
- 22. gensim word2vec:語彙の単語数を確認する
- 23. word2vecのbigramsとtrigramsを取得するGensim
- 24. MLlibのword2vecをCBOWモードで実行するには?
- 25. onclickを追加したり、実行時にデータベースから実行時に作成
- 26. HTTPサービスとしてのgensim Word2vecのコード 'KeyedVectors'属性エラー
- 27. gensim word2vecで出力埋め込み(出力ベクトル)にアクセスするにはどうすればよいですか?
- 28. Gensim Word2VecがCコンパイラを使用しているかどうかはどうすればわかりますか?
- 29. マッピングのあるgensim Word2Vec単語の名前変更
- 30. red langからWindows実行ファイル(.exe)を作成するには?