Я создал модель word2ve c и визуализировал первые n похожих слов для конкретного термина, используя TSNE и matplotlib. Что я не понимаю, так это то, что когда я запускаю его несколько раз, одни и те же слова отображаются в разных позициях, даже если слова и векторы одинаковы каждый раз. Почему это так? У меня есть ощущение, что это связано с тем, как TSNE уменьшает размерность векторов. Если это так, то действительно ли надежно использовать этот метод визуализации, поскольку он будет отличаться каждый раз?
model = Word2Vec.load("a_w2v_model")
topn_words_list = [x[0] for x in model.wv.most_similar("king",topn=3)]
topn_vectors_list = model[topn_words_list]
tsne = TSNE(n_components=2, verbose=1, perplexity=27, n_iter=300)
Y = tsne.fit_transform(topn_vectors_list)
fig, ax = plt.subplots()
ax.plot(Y[:, 0], Y[:, 1], 'o')
ax.set_yticklabels([]) #Hide ticks
ax.set_xticklabels([]) #Hide ticks
for i, word in enumerate(topn_words_list):
plt.annotate(word, xy=(Y[i, 0], Y[i, 1]))
plt.show()