我正在尝试 python 的 difflib 模块,我遇到了SequenceMatcher
. 因此,我尝试了以下示例,但无法理解发生了什么。
>>> SequenceMatcher(None,"abc","a").ratio()
0.5
>>> SequenceMatcher(None,"aabc","a").ratio()
0.4
>>> SequenceMatcher(None,"aabc","aa").ratio()
0.6666666666666666
现在,根据比例:
将序列相似性的度量作为 [0, 1] 范围内的浮点数返回。其中
T
是两个序列中的元素总数,M
是匹配数,这是2.0*M / T
。
所以,对于我的情况:
T=4
所以M=1
比例2*1/4 = 0.5
T=5
所以M=2
比例2*2/5 = 0.8
T=6
所以M=1
比例2*1/6.0 = 0.33
根据我的理解T = len(aabc) + len(a)
,M=2
因为a
进来两次aabc
。
那么,我在哪里错了我错过了什么。?
这里是源代码SequenceMatcher.ratio()