FuzzyWuzzy的fuzz.ratio没有达到预期的效果。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FuzzyWuzzy的fuzz.ratio没有达到预期的效果。相关的知识,希望对你有一定的参考价值。

我使用fuzzywuzzy来做模糊匹配,并希望fuzz.ratio在独立使用时与在流程模块中作为 "scorer "参数使用时的结果是一样的。然而,事实并非如此。

我试着测试了所有其他的评分器,无论是独立使用还是在process.extract中使用,结果都是一样的。

fuzz.ratio('So','SO)
>> 50

当在流程模块中使用时,比较的结果如下。

...process.extract('So',['SO'])
>> 100
答案

如果你看一下源码 此处此处看来 process.extract() 强制将所有内容改为小写,而运行 fuzz.ratio() 直接不会。

如果您使用标志 processor=None,你会得到预期的结果。

process.extract('So', ['SO'], processor=None, scorer=fuzz.ratio)
>> [('SO', 50)]

以上是关于FuzzyWuzzy的fuzz.ratio没有达到预期的效果。的主要内容,如果未能解决你的问题,请参考以下文章

如何在 pyspark 中的数据帧上使用 fuzz.ratio

pandas 数据框中的匹配(fuzzywuzzy)

Fuzzywuzzy 匹配 2 列...脚本继续运行

模糊字符串匹配:FuzzyWuzzy

fuzzywuzzy:计算两个字符串之间的相似度

使用fuzzywuzzy删除数据帧上的所有不同字符串