Python FuzzyWuzzy 比率:它是如何工作的?

Python FuzzyWuzzy ratio: how does it work?

在 FuzzyWuzzy 比率描述中说:

FuzzyWuzzy 比率原始分数是 [0, 100] 范围内的字符串相似度的度量。对于两个字符串 X 和 Y,分数由 int(round((2.0 * M / T) * 100)) 定义,其中 T 是两个字符串中的字符总数,M 是两个字符串中的匹配数. FuzzyWuzzy ratio sim score 是 [0, 1] 范围内的一个浮点数,由原始分数除以 100 得到。

那为什么我换了词序,这个分数好像不一样了?

 from fuzzywuzzy import fuzz

 fuzz.ratio('EMRE MERT', 'OMER CAN') / 100 = 0.35

 fuzz.ratio('EMRE MERT', 'CAN OMER') / 100 = 0.47

您使用的定义来自 Ratio function in the py_stringmatching module, but the function you're using is from the fuzzywuzzy module which uses the Levenshtein distance

recursive implementation of Levenshtein可以看出算法是逐个字符地考虑字符串,因此改变字符的顺序将改变输出值。