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] の float としてシーケンスの類似度の尺度を返します。は両方のシーケンス
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
が 2 回入ってくるからaabc
です。
では、どこが間違っているのでしょうか。
のソースコードはこちらSequenceMatcher.ratio()