我正在尝试 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.5T=5所以M=2比例2*2/5 = 0.8T=6所以M=1比例2*1/6.0 = 0.33
根据我的理解T = len(aabc) + len(a),M=2因为a进来两次aabc。
那么,我在哪里错了我错过了什么。?
这里是源代码SequenceMatcher.ratio()