修改Levenshtein距离以考虑位置,同时是对称的

时间:2014-12-23 09:09:16

标签: algorithm statistics string-matching levenshtein-distance

SATURDAY 转换为 SUNDAY 的Levenshtein距离是3.一种方法是,删除位于pos 2的A,删除位于pos 3的T,将R替换为位置5 ñ

如果我将头寸数作为头寸的权重,则费用为:

2 + 3 + 5 = 10

同样,如果我将 SUNDAY 转换为 SATURDAY ,则需要在pos 2进行2次插入,在3处进行1次替换,费用为:

2 + 2 + 3 = 7

如您所见,这种经过修改的Levenshtein不是对称的。

请注意,即使在插入后,这些位置也相对于原始字符串。

有没有办法考虑字母的位置,并保持Levenshtein对称,以便lev(x,y) = lev(y,x)

我看到已发布的一些问题,但它们并没有真正帮助我们: Modifying Levenshtein Distance for positional Bias

提前致谢。

1 个答案:

答案 0 :(得分:1)

采用不对称属性并使其对称的一种方法是使用它们的平均值(或其他度量):d'(x,y) = d'(y,x) = (d(x,y) + d(y,x))/2

这种技术的一种常见用法是通过应用相同的技术使KL-Divergence对称。这称为Jensen-Shannon Diversion