Ran*_*Rag 4 python string similarity string-matching
我正在尝试python的difflib模块,我遇到了SequenceMatcher.所以,我尝试了以下示例,但无法理解发生了什么.
>>> SequenceMatcher(None,"abc","a").ratio()
0.5
>>> SequenceMatcher(None,"aabc","a").ratio()
0.4
>>> SequenceMatcher(None,"aabc","aa").ratio()
0.6666666666666666
Run Code Online (Sandbox Code Playgroud)
现在,根据比例:
将序列相似性的度量返回为[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()
你有第一个案例是正确的.在第二种情况下,只有一个a从aabc匹配,所以中号 = 1.在第三示例中,两个a的比赛所以中号 = 2.
[PS:你指的是古老的Python 2.4源代码.目前的源代码位于hg.python.org.]
| 归档时间: |
|
| 查看次数: |
5777 次 |
| 最近记录: |