如何打印/可视化用k-均值聚类的Word2Vec文本

时间:2018-10-25 13:28:25

标签: cluster-analysis k-means word2vec

我正在尝试使用word2vec和群集执行文本数据的无监督学习。我已经训练了模型,并用K-means对其进行聚类后,我希望能够将聚类作为文本打印出来。用正则图或T-SNE可视化数据似乎并不有用。 我的目标是打印出带有文本的聚类,查看聚类是否正确,然后根据每个聚类标签为文本块分配类别。

model = Word2Vec.load("word2vec.model")
X = model[model.wv.vocab]
kmeans = cluster.KMeans(n_clusters=8)
kmeans.fit(X)
y_kmeans = kmeans.predict(X)
plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, s=50, cmap='viridis')
centers = kmeans.cluster_centers_
plt.scatter(centers[:, 0], centers[:, 1], c='black', s=200, alpha=0.5)
plt.show()

由于多维性或聚类未能获得适当的结果,该图没有提供太多信息。

如果我现在打印带有标签的数据,它将显示带有单词向量的列和标签列。

y_new = y_kmeans.reshape(80440, 1)
with_labels = np.hstack((X, y_new))
print(with_labels)

我希望能够将单词向量作为文本而不是其数值打印出来,并在尝试为文本分配任何类别之前查看发生了什么。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

我通常在侧面使用树状图,并以文本作为标签。像这样:

Sample dendrogram

相关问题