文本聚类:在 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意味着使用R进行聚类后,检索最接近每个聚类质心的100个样本