为什么当所有字符都不匹配时,这个fuzz.ratio会给我25?

问题描述

我正在尝试解决fuzzywuzzy如何计算此简单的模糊比:

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

为什么模糊比不为0,因为每个位置的字符完全不同?

Levenshtein距离= 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

我的数学也一定有问题;我快五十了。

模糊度如何达到25?

任何指导将不胜感激。

谢谢

解决方法

fuzzywuzzy库使用Levenshtein距离的加权版本,其替换项的权重为2,这使Levenshtein距离达到12。然后(8 + 8-12)/(8 + 8)= 0.25。 / p>