我想确定两个新闻项目内容的相似性,类似于 Google 新闻,但在某种意义上有所不同,我希望能够确定基本主题是什么,然后确定哪些主题是相关的。
因此,如果一篇文章是关于萨达姆侯赛因的,那么该算法可能会推荐一些关于唐纳德拉姆斯菲尔德在伊拉克的商业交易的内容。
如果您可以抛出诸如 k 最近邻之类的关键词并解释一下它们的工作原理(如果可以的话),我将完成其余的研究并调整算法。只是在寻找一个开始的地方,因为我知道外面肯定有人尝试过类似的东西。
最佳答案
第一想法:
- 去掉干扰词(and, you, is, the, some, ...)。
- 计算所有其他单词并按数量排序。
- 对于两篇文章中的每个单词,根据数量的总和(或乘积或其他公式)添加一个分数。
- 得分代表相似度。
一篇主要关于唐纳德·拉姆斯菲尔德的文章似乎会大量使用这两个词,这就是我在文章中对它们进行加权的原因。
但是,可能有一篇文章多次提到沃伦巴菲特,一次提到比尔盖茨,另一篇文章多次提到比尔盖茨和微软。那里的相关性很小。
根据您的评论:
So if an article was about Saddam Hussein, then the algorithm might recommend something about Donald Rumsfeld's business dealings in Iraq.
除非萨达姆的文章也提到伊拉克(或唐纳德),否则情况并非如此。
这就是我要开始的地方,我已经可以看到该理论中的潜在漏洞(如果经常提到比尔·盖茨的名字,一篇关于比尔·盖茨的文章将与一篇关于比尔·克林顿的文章非常吻合)。所有其他词都可以很好地解决这个问题(一个比尔是微软,另一个是希拉里)。
我可能会在尝试引入词邻近功能之前对其进行测试运行,因为这会使它变得非常复杂(可能是不必要的)。
另一个可能的改进是保持“硬”关联(比如总是在有奥萨马·本·拉登的文章中添加阿富汗这个词)。但同样,这需要额外维护以获得可能可疑的值(value),因为关于奥萨马的文章几乎肯定也会提到阿富汗。
关于similarity - 新闻项相似度(主题)算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/732934/