-1

如果我在 Google 新闻上搜索某些内容,我可以单击“深入探索”按钮并从多个来源获取相同的新闻文章。使用什么样的算法来比较文本文章,然后确定它是关于同一事物的?我在这里看到了这个问题:

有没有一种算法可以告诉两个短语的语义相似性

但是,使用那里提到的方法,我觉得如果有性质相似但故事不同的文章,它们会使用那里提到的方法组合在一起。有没有一种标准的方法来检测大致相同的字符串并将它们分组,同时将相似的字符串分开?例如。如果我搜索“美国边境”,我可能会得到有关美国边境问题的故事,但是什么会阻止这些故事集中在一起呢?我能想到的只是出版日期,但如果许多故事的出版时间非常接近怎么办?

4

1 回答 1

1

确定两篇文章相似度的一种标准方法是为每篇文章创建一个语言模型,然后找到它们之间的相似度。

语言模型通常是一个概率函数,假设文章是由一个随机选择标记(words/bigrams/.../ngrams)的模型创建的。

最简单的语言模型是 unigrams(单词):(P(word|d) = #occurances(w,d)/|d|单词在文档中出现的次数,相对于文档的总长度)。平滑技术通常用于防止出现概率为零的单词。

有了语言模型之后,您所要做的就是比较两个模型。一种方法是余弦相似度Jensen-Shannon 相似度
这为您提供了两篇文章相似度的绝对分数。这可以与许多其他方法结合使用,例如比较日期的建议。

于 2014-02-16T23:25:58.470 回答