为什么 fuzzywuzzy 处理分率 return 与模糊分率相比得分不同?
Why does fuzzywuzzy process with partial ratio return a different score compared to fuzz partial ratio?
我假设在将 scorer 参数设置为 fuzz.partial_ratio 的情况下调用的 process.extract 方法会产生与 fuzz.partial_ratio 方法相同的输出。然而,情况似乎并非如此:
>>>transcript = "July 23rd 2020 in house Sheridan Park alert"
>>>fuzz.partial_ratio(transcript, "Buses")
60
现在,process.extract:
>>>process.extract(transcript, ["Buses"], scorer = fuzz.partial_ratio)
[('Buses', 80)]
似乎 fuzz.partial_ratio 正在将“Buses”与内部的“use”匹配,但 process.extract 继续忽略以下 space 并匹配“S”在下一个词中。这是预期的行为吗?如果是这样,有没有办法解决它?我想使用 extract(或 extractBests)方法,因为我的列表大约有 150 个项目。
默认情况下 process.extract
通过以下方式预处理所有字符串:
- 小写它们
- 用空格替换非字母数字字符
- 去除字符串开头和结尾的空格
可以使用 process.extract
的 processor
参数禁用此行为。
from fuzzywuzzy import process, fuzz
transcript = "July 23rd 2020 in house Sheridan Park alert"
process.extract(transcript, ["Buses"], processor=None, scorer=fuzz.partial_ratio)
也会给你 [('Buses', 60)]
作为结果。
我假设在将 scorer 参数设置为 fuzz.partial_ratio 的情况下调用的 process.extract 方法会产生与 fuzz.partial_ratio 方法相同的输出。然而,情况似乎并非如此:
>>>transcript = "July 23rd 2020 in house Sheridan Park alert"
>>>fuzz.partial_ratio(transcript, "Buses")
60
现在,process.extract:
>>>process.extract(transcript, ["Buses"], scorer = fuzz.partial_ratio)
[('Buses', 80)]
似乎 fuzz.partial_ratio 正在将“Buses”与内部的“use”匹配,但 process.extract 继续忽略以下 space 并匹配“S”在下一个词中。这是预期的行为吗?如果是这样,有没有办法解决它?我想使用 extract(或 extractBests)方法,因为我的列表大约有 150 个项目。
默认情况下 process.extract
通过以下方式预处理所有字符串:
- 小写它们
- 用空格替换非字母数字字符
- 去除字符串开头和结尾的空格
可以使用 process.extract
的 processor
参数禁用此行为。
from fuzzywuzzy import process, fuzz
transcript = "July 23rd 2020 in house Sheridan Park alert"
process.extract(transcript, ["Buses"], processor=None, scorer=fuzz.partial_ratio)
也会给你 [('Buses', 60)]
作为结果。