模糊字符串匹配 - 区分大小写

4
我正在使用SeatGeek的FuzzyWuzzy字符串匹配模块
我发现当使用token_set_ratio搜索算法时,大小写的微小差异会导致结果大相径庭。
例如,如果我在一个文件中查找短语“我在吃饭”,我得到了100%的匹配。但是如果短语是“我在吃”,只是一个字母的大小写改变,就给出了65%的匹配度。
有没有办法使算法忽略大小写?

你可以把所有东西都使用.upper吗? - Andy Hayden
4个回答

3

token_set_ratio()默认情况下不区分大小写。

from fuzzywuzzy import fuzz
fuzz.token_set_ratio("I am eating", "i am eating")
=> 100

为什么这个答案有-1的评分?就我所看到的,它说的是真相 - 它默认情况下是不区分大小写的(kwarg token_process=False会使其区分大小写)。 - The Hog
@SarunasAzna 我只能对那个给出负分的人做出猜测,但是答案表明它是区分大小写的,而不是不区分大小写的。除了大小写敏感性之外,token_set_ratio 还有其他差异。 - Nate Wanner

1

我遇到了同样的问题,你可能使用的是Ratio而不是TokenSetRatio...


0

我刚刚将要比较的字符串转换为小写:

fuzz.token_set_ratio("I am eating".lower(), "i am eating".lower())

这给了我一个得分为100


0
如果您查看此处fuzz原始代码,您会发现fuzz.token_set_ratio在执行序列匹配之前将字符串转换为小写。
此外,您可能想要查看SeatGeek工程师在此处的stackoverflow帖子,以获得更好的比率使用清晰度。
希望这可以帮助到您。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接