猿问

用于大写检测的模糊模糊 WRatio

我需要帮助找出原因

fuzz.WRatio('Māne', 'mane', force_ascii=True) => 75%

并且

fuzz.WRatio('Māne', 'Mane', force_ascii=True) => 75%

我希望 force_ascii 参数能够提高准确性。谢谢你。


MM们
浏览 122回答 1
1回答

忽然笑

有两个参数force_ascii,full_process在使用fuzz.WRatiofuzzywuzzy 时,默认情况下都是True。它们都用于预处理字符串(force_ascii 仅在 full_process 为 True 时使用,否则被忽略)。1) 使用时force_ascii=False, full_process=False 字符串在匹配之前不会更改,因此例如大写/小写很重要。2) 使用force_ascii=False, full_process=True 时,字符串中的所有非字母数字字符都替换为空格,字符串小写,开头和结尾的空格被修剪。例如“Mäne!” ->“马内”->“马内”->“马内”2) 使用时force_ascii=True, full_process=True 这与 2) 相同,但会预先删除所有非 ascii 字符。例如“Mäne!” -> “嗯!” -> “Mne” -> “Mne” -> “Mne”我真的不认为force_ascii默认为 true 是一件好事,因为我个人在 99% 的情况下并不真正想要这种行为,但大多数使用fuzzywuzzy 的人甚至不知道这种行为。除此之外,它似乎有一个错误,因为例如> 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
随时随地看视频慕课网APP

相关分类

Python
我要回答