如何分类但不使用分类或聚类算法?

Posted

技术标签:

【中文标题】如何分类但不使用分类或聚类算法?【英文标题】:how to categorize but don't use Classification or Clustering algorithms? 【发布时间】:2011-10-22 05:04:28 【问题描述】:

我有一个爬虫程序,它每天存储来自 7 个不同新闻机构的体育数据。它每天存储大约 1200 条体育新闻。 我想将最近两天的新闻分类为子类别。因此,每两天我就有大约 2400 条正好是这些天的新闻,而且他们的许多话题都在谈论同一个事件。 例如:

70 条新闻正在谈论 Brad Keselowski 的 500 英里比赛。

120 条新闻正在谈论开始游泳的美国游泳运动员 Nyad。

28 位新人正在谈论曼联和曼城之间的比赛。

。 . .

换句话说,我想做类似Google News的东西。

问题是这种情况不是分类问题,因为我没有特殊的类。例如,我的课不是游泳、高尔夫、足球等。我的课是这两年发生的每一个领域的特殊事件。所以不能使用朴素贝叶斯等分类算法。

另一方面,我的问题也不能用聚类算法解决。因为我不想强迫他们放入 n 个集群。也许其中一个新闻没有任何类似的新闻,或者可能在一包两天内,有12个不同的故事,但在另外两天,有30个不同的问题。所以我不能使用诸如“单链接(最大相似度)”、“完整链接(最小相似度)”、“最大加权匹配”或“组平均值(平均内部相似度)”等聚类算法。

我自己有一些想法来做这件事,例如,每两个有 10 个常用词的新闻应该在同一个类中。但是如果我们不考虑一些参数,比如文档的长度、常用词和稀有词的影响以及其他一些东西,这将无法正常工作。

我已阅读this paper,但这不是我的答案。

有没有已知的算法可以解决这个问题?

【问题讨论】:

我想你肯定在这里寻找聚类算法。存在的聚类算法并不总是产生一些固定数量的聚类,而是试图找到看起来相似的元素组。不要认为这是一种可能性;大量的人工智能研究都在这方面进行! 【参考方案1】:

这个问题在我看来是一个聚类问题,聚类质量度量未知。这指向了一种无监督方法,该方法最终基于使用数据中的冗余检测相关性。也许像principal component analysis 或latent semantic analysis 这样的东西可能有用。不同的维度(主成分或奇异向量)将指示不同的主要主题,与向量成分相对应的术语有望成为描述中出现的单词。一个缺点是不能保证最强的相关性很容易导致合理的描述。

【讨论】:

【参考方案2】:

看看“主题模型”和“潜在狄利克雷分配”。这些很受欢迎,您会发现各种语言的代码。

【讨论】:

【参考方案3】:

您可以使用层次聚类算法来调查您的项目之间的关系 - 最接近的项目(具有几乎相同描述的新闻)将在同一个集群中,而最近的集群(相似新闻的组)将在同一个超级-集群等 此外,还有一个非常不错且快速的算法,称为 CLOPE - http://www.google.com.ua/url?sa=t&source=web&cd=11&sqi=2&ved=0CF0QFjAK&url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.13.7142%26rep%3Drep1%26type%3Dpdf&rct=j&q=CLOPE&ei=gvo_Tsi4AsKa-gas-uCkAw&usg=AFQjCNGcR9sFqhsEkAJowEjIGbDBwSjeXw&cad=rja

【讨论】:

【参考方案4】:

目前有许多文档聚类算法。例如,看看"Hierarchical document clustering using frequent itemsets",看看它是否与您想要的相似。如果您使用 Java 编程,您可能会从 S-space package 中获得一些好处,其中包括潜在语义分析 (LSA) 算法等。

【讨论】:

以上是关于如何分类但不使用分类或聚类算法?的主要内容,如果未能解决你的问题,请参考以下文章

从决策树学习谈到贝叶斯分类算法EMHMM(第一篇)

如何使用K-MEANS聚类算法解决分类问题

10种Python聚类算法完整操作示例(建议收藏)

解读分类算法与聚类算法

入门 | 解读分类算法与聚类算法

模型算法分类算法和聚类算法的差异