【发布时间】:2016-09-20 15:02:36
【问题描述】:
我正在使用 python 中的模糊 wuzzy,虽然它声称它适用于 levenshtein 距离,但我发现许多具有单个字符不同的字符串会产生不同的结果。例如。
>>>fuzz.ratio("vendedor","vendedora")
94
>>>fuzz.ratio("estagiário","estagiária")
90
>>> fuzz.ratio("abcdefghijlmnopqrst","abcdefghijlmnopqrsty")
97
>>>fuzz.ratio("abc","abcd")
86
>>>fuzz.ratio("a","ab")
67
我想 levenshtein 距离应该与所有示例中的单个字符距离相同,但我理解这不是简单的距离,它是某种“平等百分比”。
我试图了解它是如何工作的,但我似乎无法理解。我很长的字符串给出了 97,而很短的字符串给出了 67。我想这意味着字符串越大,对单个字符的影响就越小。但是对于 "vendor","vendedora" 和 "estagiário","estagiária" 示例,情况并非如此,因为后者比前者大。
这是如何工作的?
我目前正在匹配用户输入的职位名称,尝试将输入错误的名称与正确输入的名称等联系起来。是否有更好的包来完成我的任务?
【问题讨论】:
-
fuzz.ratio根据 levenshtein 距离返回字符串相似程度的百分比。
标签: python string-matching fuzzywuzzy