文字列を比較してどの程度違い(距離)があるのか調べる,Python3

参考:https://github.com/orsinium/textdistance

TextDistanceというPythonライブラリを公開している人がいたので、シェアさせてください。

2つないしそれ以上の文字列シーケンスを比較して、どれくらい違いがあるのか(どれくらい距離があるのか)を求めます。

まずはTextDistanceのインストール。

$ pip install textdistance

TextDistanceの使用例

# まずはインポート
>>> import textdistance

>>> textdistance.hamming('あなたと花火が見たい', 'あなたは花火が見たいのかな')
4

# 上記と同じ。distanceと明記するか否かの問題。
>>> textdistance.hamming.distance('あなたと花火が見たい', 'あなたは花火が見たいのかな')
4

# similarityでどの程度同じか
>>> textdistance.hamming.similarity('あなたと花火が見たい', 'あなたは花火が見たいのかな')
9

# normalizedがつくと、0~1で出力。0だと同じ、1だと完全に異なる。
>>> textdistance.hamming.normalized_distance('あなたと花火が見たい', 'あなたは花火が見たいのかな')
0.3076923076923077
>>> textdistance.hamming.normalized_similarity('あなたと花火が見たい', 'あなたは花火が見たいのかな')
0.6923076923076923

# qvalで分割する文字の単位を指定。qval=2は2文字単位で分割。
>>> textdistance.Hamming(qval=2).distance('あなたと花火が見たい', 'あなたは花火が見たいの かな')
5
>>> textdistance.Hamming(qval=3).distance('あなたと花火が見たい', 'あなたは花火が見たいの 
かな')
6