如何在Jaro Winkler距离中计算“m”?

时间:2013-09-03 14:27:58

标签: string algorithm

为了计算两个弦的Jaro距离,我们使用这个等式:

dj = 1/3(m / | s1 | + m / | s2 | +(m-t)/ m)

我应该如何计算这个等式中两个字符串的“m”?

如果“m”是两个字符串之间的差异,为什么Wikipedia处的示例为两个字符串“MARTHA”和“MARHTA”,m为6.我认为它应该是1,因为区别字符串之间是1而不是6!我是对的吗?

1 个答案:

答案 0 :(得分:8)

m是两个字符串之间共享的字符数,无论它们的位置如何,它们的距离都不超过d = floor(max(len(String1), len(String2)) / 2) - 1(感谢Michael Foukarakis)。对于MARTHAMARHTA,这是6。

t是共享但位于不同位置的字符数除以2.在这种情况下,共享2个字符(HT)但是不同的立场t = 2/2 = 1