Algorithm 字符串中的相似性检测

Algorithm 字符串中的相似性检测,algorithm,nlp,semantics,google-news,Algorithm,Nlp,Semantics,Google News,如果我在谷歌新闻上搜索一些东西,我可以点击“深入探索”按钮,从多个来源获得相同的新闻文章。什么样的算法用于比较文本中的文章,然后确定它是关于同一事物的?我在这里看到了一个问题: 然而,使用这里提到的方法,我觉得如果有性质相似但涉及不同故事的文章,它们将使用这里提到的方法分组在一起。是否有一种标准的方法来检测大致相同的字符串并对它们进行分组,同时将相似的字符串分开?如果我搜索“美国边境”,我可能会得到关于美国边境问题的报道,但什么能阻止这些问题集中在一起呢?我所能想到的只是发表日期,但如果许多故

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


然而,使用这里提到的方法,我觉得如果有性质相似但涉及不同故事的文章,它们将使用这里提到的方法分组在一起。是否有一种标准的方法来检测大致相同的字符串并对它们进行分组,同时将相似的字符串分开?如果我搜索“美国边境”,我可能会得到关于美国边境问题的报道,但什么能阻止这些问题集中在一起呢?我所能想到的只是发表日期,但如果许多故事发表得非常接近,会怎么样?

确定两篇文章相似性的一个标准方法是为每一篇文章创建一个列表,然后找出它们之间的相似性

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

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

在你有了一个语言模型之后,你所要做的就是比较这两个模型。一种方法是或。

这将为您提供两篇文章的绝对相似性分数。这可以与许多其他方法相结合,比如你的比较日期的建议。

基本上,谷歌只关注链接结构。它可以将实体(在稍后阶段)分组到等价类中,但这是一个昂贵的过程。一旦建立了链接结构,它将变得更便宜。(因为受影响的集合较小)