我对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
我正在努力理解为什么会有这种方式?预先感谢您的帮助。
答案 0 :(得分:0)
有3个匹配项: 鉴于“雨”“ nrai”
"ra"
"ai"
"rai"
2 * 3 / 8 = 0.75
您不匹配两个序列上是否都存在字母,您匹配的是字母序列(组)。
1.0仅在序列正确时返回