文本聚类:在 k 中选择 k 意味着

Posted

技术标签:

【中文标题】文本聚类:在 k 中选择 k 意味着【英文标题】:Text clustering: chosing the k in k means 【发布时间】:2018-01-22 17:03:13 【问题描述】:

在去除停用词并在一组文档中应用词干提取过程后,我在 javascript 中应用了二等分 K-means,以便对从某些网页接收到的一组文档进行聚类,以发现它们之间的相似性。

当有基于文本的集群时,找出应该创建多少集群的好方法应该是什么?我看到了一些方法,例如 Elbow、Silhouette 或信息标准方法,但假设我没有我创建的集群的任何信息,其他方法似乎更适合数字集群,而不是基于文本的集群。

entropy 能否成为在文本聚类中应用二等分 k-means 后帮助我找到正确数量的聚类的好方法?还是F-measure?我的意思是在达到某个值后停止划分集群?这些对大量数据有好处吗?

【问题讨论】:

在文本上,它们似乎都不能可靠地工作。 那怎么确定K的个数呢?在文本聚类中?有什么想法吗? 您有很多小文件还是一些长文件? - 同一个词多次出现是否表明相似度更高?还是仅仅是出现独特的单词很重要? 我有很多小文件。我认为相似性应该由同一个词的多次出现来给出。停用词(例如“the”、“a”和类似词)先前已被删除。很少使用的词应该更相关,但我如何识别它们? 在 Tweets 等小型文档上根本不起作用。 【参考方案1】:

简答:

您可以使用TermFequency- InverseDocument-Frequency (Tf-Idf)。它强调在单个文档中专门使用的稀有词,并在所有文档中发现这些词时对其进行惩罚。 如果您在数据集上应用了带有 TfIDF 的 PCA,则可以使用“Scree Plot”(~ Elbow 方法)来找到合适数量的集群。

长示例:

下面是一个不使用kmeans的例子,这个例子使用了几个长文档,已经确定有两个“集群”(实际上是使用Principal components和Tf-Idf),但是它使用了real以创造性的方式获取数据:

在为R 软件开发的PhD dissertation documenting the "textmining" package tm 中,tm 的作者 Ingo Feinerer 给出了一个示例(第 10 章)如何进行文体测量,即从“绿野仙踪”系列。其中一本书的作者身份存在争议(该系列中有两位作者,汤普森和鲍姆,但他们对其中一本书的贡献未知)。

Feinerer 将文档分成 500 行的块以构建一个 TermDocumentMatrix,然后在矩阵上执行主成分分析 (PCA) 的变体,其中一个使用 TfIDF,并通过对 PCA 图的目视检查显示有争议的 PCA 图这本书的作者往往是汤普森。但部分可能是鲍姆写的。

在图中,这由粉红色的摆动椭圆(由我绘制)内的点表示。绿点是来自已知作者身份 (T.) 的书的块,黄点来自未知/有争议的作者身份的书。 (图中的点紧密相连。这就是这里的证据;它是定性的,但这只是 PDF 中的许多例子之一)

第 95 页上的 Tf-IDF PCA 图看起来很相似。

我没有给出任何R代码,因为我不知道你是否喜欢R,而且这篇文章已经太长了,你可以在PDF中自己阅读。

(而且我不知道 Javascript 中 Tf-IDF 的任何实现)。

【讨论】:

以上是关于文本聚类:在 k 中选择 k 意味着的主要内容,如果未能解决你的问题,请参考以下文章

K-Means VS K-模式? (文本聚类)

在K意味着使用R进行聚类后,检索最接近每个聚类质心的100个样本

python k-means聚类文本

如何从 Tf-IDF 向量中选择 K-mean 的初始聚类

对比传统K-Means等聚类算法,LDA主题模型在文本聚类上有何优缺点

谁能告诉我SPSS中的K聚类分析怎么人为指定初始的聚类中心呢?内有截图,求大神告诉我怎么设置。