关于 SequenceMatcher.ratio() 函数在 python 中的运作的清晰度

Clarity about functioning of SequenceMatcher.ratio() function in python

我对 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

我很难理解为什么它会这样?在此先感谢您的帮助。

有3场比赛: 给定 "rain" "nrai"

"ra"
"ai"
"rai"

2 * 3 / 8 = 0.75

你不是在匹配字母是否存在于两个序列上,你是在匹配字母的序列(组)。

1.0 仅在序列为 EXACT

时返回