我有一个爬虫程序,每天从7个不同的新闻机构存储体育数据。 它每天存储大约1200条体育新闻。我想将最近两天的信息分类到子类别中。因此,每两天我都会有大约2400条新闻,这些新闻是针对这些天的,而且许多主题都完全在讨论同一事件。例如:
70条新闻正在谈论@人名 的500英里赛车。
120条新闻正在谈论美国游泳运动员@人名 开始游泳。
28条新新闻正在谈论曼联和曼城的比赛。
. . .
换句话说,我想做一些像Google 新闻一样的东西。
问题是这种情况不是一个分类问题,因为我没有特殊的类别。例如,我的类别不是游泳、高尔夫、足球等。我的类别是每两年在每个领域发生的特殊事件。因此,我不能使用朴素贝叶斯等分类算法。
另一方面,我的问题也不能通过聚类算法来解决。因为我不想强迫它们放入n个簇中。也许其中一条新闻没有任何相似的新闻,或者也许在某两天的新闻包中,有12个不同的故事,但在另外两天中,有30个不同的问题。因此,我不能使用诸如“单连接(最大相似度)”,“完全连接(最小相似度)”,“最大加权匹配”或“组平均(平均内部相似度)”之类的聚类算法。
我自己有一些想法来做到这一点,例如,每两条有10个共同词的新闻应属于同一类别。但是,如果我们不考虑诸如文档长度,常见和稀有词的影响以及其他一些参数,这将无法很好地工作。
我读过这篇论文,但这不是我的答案。
有没有已知的算法可以解决此问题?
回答:
这个问题给我的感觉是一个聚类问题,但是缺少用于衡量聚类质量的有效指标。 这指向一种无监督的方法,该方法最终基于检测数据中的冗余来检测相关性。 也许像主成分分析或潜在语义分析之类的东西可能会有用。 不同的维度(主成分或奇异向量)将指示不同的主要主题,与向量分量相对应的术语有望成为出现在描述中的词。 一个缺点是,不能保证最强的相关性能够轻易地得出合理的描述。