当 none 个字符匹配时,为什么这个 fuzz.ratio 给我 25?

Why is this fuzz.ratio giving me 25 when none of the characters match?

我正在尝试研究 fuzzywuzzy 如何计算这个简单的模糊率:

print(fuzz.ratio("66155347", "12026599"))
25

每个位置都是完全不同的字符,为什么模糊率不为0?

编辑距离 = 8(因为每个值都需要替换) a为8(字符串1的长度为8) b为8(字符串2的长度为8)

fuzz.ratio 是 (a+b - Levenshtein 距离)/(a+b)

fuzz.ratio 是 (8+8 - 8)/(8+8) = .50

fuzz.ratio 是 50

我的数学一定也有问题;我要 50.

模糊比是如何达到 25 的?

如有任何指导,我们将不胜感激。

谢谢

fuzzywuzzy 库使用 Levenshtein 距离的加权版本,它为替换赋予权重 2,从而使 Levenshtein 距离达到 12。然后 (8 + 8 - 12) / (8 + 8) = 0.25 .