【发布时间】:2014-10-03 09:25:25
【问题描述】:
我的场景非常简单:我有一堆新闻文章(目前约为 1k),我知道其中一些文章涵盖了相同的故事/主题。我现在想根据共享的故事/主题(即基于它们的相似性)对这些文章进行分组。
到目前为止,我所做的是应用基本的 NLP 技术,包括停用词删除和词干提取。我还计算了每篇文章的 tf-idf 向量,并且还可以基于这些 tf-idf 向量计算余弦相似度。但是现在随着文章的分组,我有点挣扎。我看到了两种主要的方法——可能是相关的——来做到这一点:
1) 机器学习/聚类:我已经对现有的聚类库进行了一些尝试,或多或少取得了成功;见here。一方面,诸如k-means之类的算法需要聚类的数量作为输入,我不知道。其他算法需要的参数也不能直观地指定(对我来说就是这样)。
2) 图算法:我可以将我的数据表示为一个图,其中文章是节点,加权边表示文章之间的成对(余弦)相似度。有了这个,例如,我可以首先删除所有低于某个阈值的边,然后可以应用图算法来寻找强连接子图。
简而言之,我不确定从这里最好的去处——我在这个领域还是很新的。我想知道是否有一些最佳实践,或者某种指导方针,哪些方法/算法可以(不)应用于某些场景。
(编辑:忘记链接到我的相关问题)
【问题讨论】:
-
我认为没有单一的“最佳方式”来完成这项任务;实际上,从您提出问题的方式来看,您可能会应用数十种不同的算法并获得质量相似的结果。你读过any paper on text categorization吗?
-
是的,我开始阅读有关相似性度量、(无监督)学习/聚类以及相关主题的内容。但与此同时,我也想尝试一些事情——你知道,“边做边学”,或者如果发生“通过燃烧/失败学习”。我不希望这是一种最好的方法。然而,这似乎是一项相当普遍的任务,我希望有一些最佳实践方法。
-
我真的很想知道你是如何对你的数据集进行聚类的,因为我有一组简历,我想对它们进行聚类和分类,而且我对这个领域还很陌生,我怎么能联系你对不起,因为我是没有在这里回答,但你是我最后的希望_再次抱歉
-
@Abeerzaroor -- 请参阅我的StackOverflow question,其中包含一个最小的、现在可以使用的示例。它本质上只是SciKit-Learn website 上更复杂示例的简化版本。这两个链接都应该可以帮助您开始滚动。
标签: machine-learning nlp cluster-analysis information-retrieval unsupervised-learning