我对SequenceMatcher.ratio()的工作方式感到困惑。在网上查询后,我知道计算比率的公式是:
比率= 2.0 *M/T
哪里
M=匹配数
T=两个序列中的元素总数
我尝试在函数中输入不同的值,但在一些场景中得到了一些意想不到的答案。
我尝试过的价值观:
>>> SequenceMatcher(None, "rain","nrai").ratio().
0.75
在上述情况下使用比率公式应给出答案1.0
M = 4 (as all the letters match)
T = 8 (both words are of 4 letters)
Ratio = 2.0 * 4 / 8
Ratio = 8/8 = 1.0
我很难理解它为什么会这样做?提前谢谢你的帮助。
发布于 2019-04-03 08:42:25
有三场比赛:“雨”"nrai“
"ra"
"ai"
"rai"
2 * 3 / 8 = 0.75
您不匹配字母是否存在于两个序列上,而是匹配字母的序列(组)。
只有当序列精确时才返回1.0
https://stackoverflow.com/questions/55469173
复制相似问题