使用levenshtein距离的两个全文相似度

时间:2013-03-25 10:17:17

标签: algorithm statistics levenshtein-distance

我有两个文本文件,我想比较一下。我做的是:

  1. 我把它们分成了句子。
  2. 我测量了一个文件中每个句子与第二个文件中每个句子之间的levenshtein距离。
  3. 我想计算这两个文本文件之间的平均相似度,但是我无法提供任何有意义的值 - 显然算术平均值(所有距离之和[标准化]除以比较次数)是一个坏主意。

    如何解释这样的结果?

    编辑: 距离值已标准化。

1 个答案:

答案 0 :(得分:13)

levenshtein距离具有最大值,即最大值。两个输入字符串的长度。它不会变得更糟。因此,两个字符串a和b的归一化相似性指数(0 =差,1 =匹配)可以计算为1-距离(a,b)/ max(a.length,b.length)。

从文件A中取一个句子。你说你要将它与文件B的每个句子进行比较。我猜你正在寻找B中具有最小距离(即最高相似度指数)的句子。

只需计算所有“最小相似度指数”的平均值。这应该可以粗略估计两个文本的相似性。

但是,是什么让你认为两个相似的文本可能会将他们的句子改组?我个人的意见是你还应该引入停用词列表,同义词等等。

尽管如此:还请检查三元组匹配,这可能是您正在寻找的另一种好方法。