2024-05-29 07:33:19 发布
网友
我需要帮助找出原因
fuzz.WRatio('Māne', 'mane', force_ascii=True) => 75%
而且
fuzz.WRatio('Māne', 'Mane', force_ascii=True) => 75%
我希望force_ascii参数能够提高精度。 多谢各位
在fuzzyfuzzy中使用fuzz.WRatio时,有两个参数force_ascii和full_process,默认情况下这两个参数都为True。它们都用于对字符串进行预处理(force_ascii仅在full_process为True时使用,否则将被忽略)
fuzz.WRatio
force_ascii
full_process
1)当使用force_ascii=False, full_process=False 字符串在匹配之前不会更改,例如大写/小写内容
force_ascii=False, full_process=False
2)当使用force_ascii=False, full_process=True 字符串中的所有非字母数字字符都将替换为空格,字符串将小写,并且从开头和结尾开始的空格将被修剪。比如说 “Mäne!”——>;“Mäne”->;“mäne”->;“mäne”
force_ascii=False, full_process=True
2)当使用force_ascii=True, full_process=True 这与2)相同,但会事先删除所有非ascii字符。比如说 “Mäne!”——>;“Mne!”——>;“跨国公司”->;“跨国公司”->;“跨国公司”
force_ascii=True, full_process=True
我真的不认为force_ascii默认为true是一件好事,因为我个人并不希望99%的情况下出现这种行为,但大多数使用fuzzyfuzzy的人甚至没有意识到这种行为。 除此之外,它似乎还有一个bug,因为
> utils.full_process("ā", force_ascii=True) 'ā'
而它显然不是ascii字符,因此应该返回空字符串
在你希望它考虑两个字符串之间的任何差异的情况下,你应该调用
> fuzz.WRatio('Māne', 'mane', full_process=False) 50 > fuzz.WRatio('Māne', 'Mane', full_process=False) 75
在fuzzyfuzzy中使用
fuzz.WRatio
时,有两个参数force_ascii
和full_process
,默认情况下这两个参数都为True。它们都用于对字符串进行预处理(force_ascii仅在full_process为True时使用,否则将被忽略)1)当使用
force_ascii=False, full_process=False
字符串在匹配之前不会更改,例如大写/小写内容2)当使用
force_ascii=False, full_process=True
字符串中的所有非字母数字字符都将替换为空格,字符串将小写,并且从开头和结尾开始的空格将被修剪。比如说 “Mäne!”——>;“Mäne”->;“mäne”->;“mäne”2)当使用
force_ascii=True, full_process=True
这与2)相同,但会事先删除所有非ascii字符。比如说 “Mäne!”——>;“Mne!”——>;“跨国公司”->;“跨国公司”->;“跨国公司”我真的不认为
force_ascii
默认为true是一件好事,因为我个人并不希望99%的情况下出现这种行为,但大多数使用fuzzyfuzzy的人甚至没有意识到这种行为。 除此之外,它似乎还有一个bug,因为而它显然不是ascii字符,因此应该返回空字符串
在你希望它考虑两个字符串之间的任何差异的情况下,你应该调用
相关问题 更多 >
编程相关推荐