文本聚类:用k表示选择k

时间:2017-08-14 19:21:15

标签: javascript cluster-analysis

在消除了停用词并在一组文档中应用了词干过程之后,我在Javascript中应用了二等分K-means,以便从一些网页中收集一组文档,以找出它们之间的相似性。

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

在文本聚类中应用二等分k-means后,entropy可以帮助我找到正确数量的聚类吗?还是F-measure?我的意思是在达到某个值后停止分组?那些对大量数据有用吗?

1 个答案:

答案 0 :(得分:0)

简短回答:

您可以使用TermFequency- InverseDocument-Frequency(Tf-Idf)。它强调在单个文档中专门使用的罕见词,并且当在所有文档中找到时,它会惩罚这些词。 如果您在数据集上应用了带有TfIDF的PCA,则可以使用“Scree Plot”(~Elbow方法)来查找合适数量的聚类。

很长的例子:

以下是NOT使用kmeans的示例,该示例使用了一些长文档,并且已经确定有两个“集群”(实际上使用Principal组件和Tf-Idf),但它使用了真实数据以创造性的方式:

在为R软件开发的PhD dissertation documenting the "textmining" package tm中,tm的作者,Ingo Feinerer,给出了一个示例(第10章)如何进行样式测量,即聚类/识别来自“绿野仙踪”系列的5本书。对于其中一本书,作者身份存在争议(该系列中有两位作者,Thompson和Baum,但他们对其中一本书的贡献未知)。

Feinerer将文档切割成500行的块以构建TermDocumentMatrix,然后在Matrix上执行主成分分析(PCA)的变体,一个带有TfIDF,并通过目视检查显示有争议的PCA图。本书倾向于由汤普森撰写。但部分可能是鲍姆写的。

在情节中,这由粉红色的摇摆椭圆形内部的点(由我绘制)表示。绿点是来自具有已知作者身份(T.)的书的块,而黄点来自未知/有争议作者的书。 (这些点在图中非常接近。这就是证据;它是定性的,但这只是PDF中许多例子) enter image description here

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

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

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