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.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が 2 回入ってくるからaabcです。
では、どこが間違っているのでしょうか。
のソースコードはこちらSequenceMatcher.ratio()