新闻文章的集群

时间:2014-08-10 11:39:06

标签: machine-learning nlp cluster-analysis information-retrieval unsupervised-learning

我的场景非常简单:我有一堆新闻文章(目前约为1k),我知道有些文章涉及相同的故事/主题。我现在想根据共享的故事/主题对这些文章进行分组,即基于它们的相似性。

到目前为止,我所做的是应用基本的NLP技术,包括删除词和删除词。我还计算了每篇文章的tf-idf向量,并且还可以基于这些tf-idf向量计算例如余弦相似度。但现在随着文章的分组我有点挣扎。我看到两种主要方式 - 可能是相关的 - 来做到这一点:

1)机器学习/集群:我已经在现有的集群库中玩了一些,或多或少成功;见here。一方面,诸如k-means的算法需要簇的数量作为输入,这是我不知道的。其他算法需要的参数也不直观(对我而言)。

2)图算法:我可以将我的数据表示为图表,其中文章是节点,加权adges表示文章之间的成对(余弦)相似性。有了它,例如,我可以先删除低于某个阈值的所有边,然后可以应用图算法来查找强连通的子图。

简而言之,我不知道哪里最好离开这里 - 我在这方面仍然很新。我想知道是否有一些最佳实践,或者在某些情况下可以(不)应用某些方法/算法的指南。

(编辑:忘记链接到我的相关问题)

3 个答案:

答案 0 :(得分:2)

尝试使用单一和完整链接的分层聚合聚类HAC算法。

这些算法不需要群集数量作为输入。

基本原理类似于在给定的一组数据点上生成最小生成树,然后根据阈值标准停止。一个密切相关的类是Divisive聚类算法,它首先构建最小生成树,然后根据聚类间相似性比率修剪树的一个分支。

答案 1 :(得分:1)

您还可以尝试k-means上的冠层变化来创建相对快速的簇数(k)估计值。

http://en.wikipedia.org/wiki/Canopy_clustering_algorithm

您是否会重新计算,或者您只关心一组静态新闻?我问,因为你的k可能会随着时间的推移而改变。

答案 2 :(得分:1)

由于您可以将数据集建模为图形,因此可以应用基于马尔可夫模型的随机聚类。以下是MCL算法资源的链接:

Official thesis description and code base

Gephi plugin for MCL (to experiment and evaluate the method)