我正在使用 TSNE 绘制经过训练的 word2vec 模型(从 gensim 创建):
labels = []
tokens = []
for word in model.wv.vocab:
tokens.append(model[word])
labels.append(word)
tsne_model = TSNE(perplexity=40, n_components=2, init='pca', n_iter=2500, random_state=23)
new_values = tsne_model.fit_transform(tokens)
x = []
y = []
for value in new_values:
x.append(value[0])
y.append(value[1])
plt.figure(figsize=(50, 50))
for i in range(len(x)):
plt.scatter(x[i],y[i])
plt.annotate(labels[i],
xy=(x[i], y[i]),
xytext=(5, 2),
textcoords='offset points',
ha='right',
va='bottom')
plt.show()
就像内置的 gensim 方法“most_similar”一样,每个 ex。
w2v_model.wv.most_similar(postive=['word'], topn=20)
将输出 20 个与“单词”最相似的单词,我只想绘制给定单词中最相似的单词 (n=20)。关于如何修改情节以做到这一点的任何建议?