gpt4 book ai didi

Python 的 fuzzywuzzy 返回不可预测的结果

转载 作者:行者123 更新时间:2023-11-30 22:49:46 27 4
gpt4 key购买 nike

我正在 python 中使用模糊 wuzzy,虽然它声称它可以使用编辑距离,但我发现许多具有不同字符的字符串会产生不同的结果。例如。

>>>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

我猜编辑距离应该与所有示例中的单个字符距离相同,但我知道这不是简单的距离,它是某种“相等百分比”。

我试图理解它是如何工作的,但我似乎无法理解。我的很长的字符串给出了 97,很短的字符串给出了 67。我想这意味着字符串越大,对单个字符的影响就越小。然而,对于“vendor”、“vendingora”和“estagiário”、“estagiária”示例,情况并非如此,因为后者比前者大。

这是如何工作的?

我目前正在匹配用户输入的职位名称,尝试将错误输入的名称与正确输入的名称等连接起来。是否有更好的包来完成我的任务?

最佳答案

关于 fuzzywuzzy 的一般工作原理,您是正确的。 fuzz.ratio 函数的输出数字越大,意味着字符串彼此更接近(100 表示完美匹配)。我执行了几个额外的测试用例来检查它是如何工作的。它们在这里:

fuzz.ratio("abc", "abce") #to show which extra letter doesn't matter.
86
fuzz.ratio("abcd", "abce") #to show that replacing a number is worse than adding.
75
fuzz.ratio("abc", "abc") #to find what a match gives.
100

从这些测试中,我们可以看到替换数字对比率计算的影响比添加字母更大(这就是为什么 estagiário/estagiária 比 vendor/vendingora 匹配度要低,尽管更长)。根据this ,该包还可以用于从可能的匹配列表中自动选择最佳选择,因此我认为这对于您的预期目的来说是一个不错的选择。

关于Python 的 fuzzywuzzy 返回不可预测的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39597550/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com