SequenceMatcher.ratio()
2 つの文字列の類似性を取得するために使用しようとしています:"86418648"
と"86488648"
:
>>> SequenceMatcher(None,"86418648","86488648").ratio()
0.5
返される比率は です0.5
。これは、2 つの文字列で異なる文字が 1 つしかないため、予想よりもはるかに低くなっています。
マッチングブロックをもとに比率を算出しているようです。だから私は実行しようとしましたSequenceMatcher.get_matching_blocks()
:
>>> SequenceMatcher(None,"86418648","86488648").get_matching_blocks()
[Match(a=4, b=0, size=4), Match(a=8, b=8, size=0)]
しかし、私は結果が次のようになると予想していました:
[Match(a=0, b=0, size=3), Match(a=4, b=4, size=4), Match(a=8, b=8, size=0)]
最初の 3 つの数字が一致しなかった理由を説明できる人はいます"864"
か?