【发布时间】:2019-12-12 12:41:38
【问题描述】:
在绘制词嵌入 TSNE 结果时,词会出现不止一次。
我正在减少 Word2Vec 词嵌入的维数,但是当我绘制最相似词的子集的结果时(手动输入几个我想要最相似的词),相同的词会出现不止一次:
from sklearn.manifold import TSNE
words = sum([[k] + v for k, v in similar_words.items()], [])
wvs = model.wv[words]
tsne = TSNE(n_components=3, random_state=0, n_iter=10000, perplexity=29)
np.set_printoptions(suppress=True)
T = tsne.fit_transform(wvs)
labels = words
plt.figure(figsize=(16, 12))
plt.scatter(T[:, 0], T[:, 1], c='purple', edgecolors='purple')
for label, x, y in zip(labels, T[:, 0], T[:, 1]):
plt.annotate(label, xy=(x+1, y+1), xytext=(0, 0), textcoords='offset points')
这是 PCA 和 TSNE 单词相似性降维的正常行为,还是我的代码有问题?情节是否有可能将每个相似的单词子集视为彼此独立?
【问题讨论】:
标签: matplotlib scikit-learn nlp word2vec word-embedding