参考: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