用于大写检测的模糊 wuzzy WRatio
fuzzy wuzzy WRatio for Uppercase detection
我需要帮助找出原因
fuzz.WRatio('Māne', 'mane', force_ascii=True) => 75%
还有
fuzz.WRatio('Māne', 'Mane', force_ascii=True) => 75%
我希望 force_ascii 参数能够提高准确性。
谢谢。
在 fuzzywuzzy 中使用 fuzz.WRatio
时有两个参数 force_ascii
和 full_process
,默认情况下都是 True。它们都用于预处理字符串(force_ascii 仅在 full_process 也为 True 时使用,否则将被忽略)。
1) 当使用 force_ascii=False, full_process=False
字符串在匹配之前不会更改,例如uppercase/lowercase 很重要。
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!" -> "Mne " -> "mne " -> "mne"
我真的不认为 force_ascii
默认为 true 是一件好事,因为在 99% 的情况下我个人并不真的想要这种行为,但大多数使用 fuzzywuzzy 的人甚至都不想意识到这种行为。
除此之外它似乎有一个错误,因为例如
> utils.full_process("ā", force_ascii=True)
'ā'
虽然它显然不是 ascii 字符,因此应该 return 一个空字符串。
在你希望它考虑你应该调用的两个字符串之间的任何差异的情况下
> fuzz.WRatio('Māne', 'mane', full_process=False)
50
> fuzz.WRatio('Māne', 'Mane', full_process=False)
75
我需要帮助找出原因
fuzz.WRatio('Māne', 'mane', force_ascii=True) => 75%
还有
fuzz.WRatio('Māne', 'Mane', force_ascii=True) => 75%
我希望 force_ascii 参数能够提高准确性。 谢谢。
在 fuzzywuzzy 中使用 fuzz.WRatio
时有两个参数 force_ascii
和 full_process
,默认情况下都是 True。它们都用于预处理字符串(force_ascii 仅在 full_process 也为 True 时使用,否则将被忽略)。
1) 当使用 force_ascii=False, full_process=False
字符串在匹配之前不会更改,例如uppercase/lowercase 很重要。
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!" -> "Mne " -> "mne " -> "mne"
我真的不认为 force_ascii
默认为 true 是一件好事,因为在 99% 的情况下我个人并不真的想要这种行为,但大多数使用 fuzzywuzzy 的人甚至都不想意识到这种行为。
除此之外它似乎有一个错误,因为例如
> utils.full_process("ā", force_ascii=True)
'ā'
虽然它显然不是 ascii 字符,因此应该 return 一个空字符串。
在你希望它考虑你应该调用的两个字符串之间的任何差异的情况下
> fuzz.WRatio('Māne', 'mane', full_process=False)
50
> fuzz.WRatio('Māne', 'Mane', full_process=False)
75