2017-08-28 23 views
0

我正在使用doc2vec转换我的追随者在向量表示中的前100个推文(称为v1 ..... v100)。之后,我使用向量表示来完成K均值聚类。如何在使用Doc2vec后解析群集结果?

model = Doc2Vec(documents=t, size=100, alpha=.035, window=10, workers=4, min_count=2) 

我可以看到集群0被某些值(比如v10,v12,v23,...)所支配。我的问题是这些v10,v12 ...等代表什么。我可以推断出这些具体的列集合文档的特定关键字。

回答

0

集群本身并不意味着任何特定的。您可以拥有任意数量的群集,并且所有群集算法都会尝试将所有矢量分配到这些群集中。如果您知道所有推文,并知道您希望将它们分离为多少个不同的主题,请尝试清除它们或在其中添加特征,这样聚类算法就可以使用这些特征将它们分离到您选择的群集中。

此外,如果您的意思是话题建模,这是不同的聚类,你也应该看看。

+0

不,只有少数算法如k-means会将所有点分配给k个簇。很多现代算法都没有。即使使用k-means,这些集群也有一些意义。通过word2vec映射回原始数据空间并不容易。 –

+0

我想要使用他们的推文内容分割类似的追随者。有几种方法可以找到数据中最佳的群集数量。所以我不同意集群是完全没用的。我只是试验看doc2vec是否可以做出更好的分割,当然它应该对用户感兴趣的主题进行某种分类。 –

0

这些值代表要在群集中表示的各个tweets(或文档)的坐标。我假设v1到v100表示​​推文1到100的向量,否则这是没有意义的。因此,如果假设聚类0具有v1,v5和v6,则这意味着具有向量表示v1的推文1,5和6, v5和v6(或以向量v1,v5和v6为代表的推文)属于群集0.

+0

你真的应该阅读word2vec。不,这些变量不对应于推文。 –

+0

@ Anony-Mousse我正在使用doc2vec。在word2vec的情况下,我可以尝试从单词集合中理解,但是由于用户在不同的主题上发微博,所以定义两个100条推文的文档是非常困难的。但是,我的结果显示出一些好的趋势,就像所有只是为了促销其产品而正在聚集在一起的公司/公司一样。有艺术等词的人聚集在一个地方。但如何使用这些变量来定义集群的属性是个大问题 –

1

请勿使用各个变量。由于这些嵌入的训练方式,它们只能一起分析。

对于起动器,找到

  1. 最相似的文档向量到您的心,看看典型的集群成员
  2. 最相似的词向量从嵌入典型的词语来形容集群
  3. 注看看你的身材有多好。
+0

谢谢,这真是一个很好的方法。我会尽力让你知道结果。我的结果显示出一些良好的趋势,就像所有只为促销其产品而正在聚集在一起的公司/公司一样。有艺术等词语的人聚集在一个地方 –

+0

你是什么意思的最相似的术语向量?我完成了第1步并确定了质心的k最近邻居。我应该使用word count/tf-idf来查找最相似的术语向量,或者在每个群集上使用word2vec来查找相同的 –

+0

使用doc2vec使用的相同计算(点积)。 –