gensimを使用して自分のコーパスにdoc2vecと対応するword2vecを訓練しました。私は言葉でt-sneを使ってword2vecを視覚化したい。のように、図の各ドットにも「単語」があります。gensimから生成されたword2vecを可視化します
私はここに同様の質問を見て:gと
輸入gensim 輸入gensim.models
from sklearn.manifold import TSNE
import re
import matplotlib.pyplot as plt
modelPath="/Users/tarun/Desktop/PE/doc2vec/model3_100_newCorpus60_1min_6window_100trainEpoch.bin"
model = g.Doc2Vec.load(modelPath)
X = model[model.wv.vocab]
print len(X)
print X[0]
tsne = TSNE(n_components=2)
X_tsne = tsne.fit_transform(X[:1000,:])
plt.scatter(X_tsne[:, 0], X_tsne[:, 1])
plt.show()
これは、との数字を与える:t-sne on word2vec
がそれに続いて、私はこのコードを持っていますドットはあるが言葉はない。それはどのドットがどの単語を代表するのか分かりません。どのようにしてドットでその単語を表示できますか?
素晴らしい作品! df.iterrows()のpos:word、pos:plt.annotate(word、pos) 'df = pd.DataFrame(X2、vocab、['x'、 'y']) '。すなわち、単語を索引として使用する。あなたは 'concat'と他の行を取り除くことができます。 –
dfインデックスとしての 'vocab'と' iterrows'単純化の2つの変更を行いました。ありがとう、@ RicardoCruz! –