参考:https://github.com/orsinium/textdistance
TextDistanceというPythonライブラリを公開している人がいたので、シェアさせてください。
2つないしそれ以上の文字列シーケンスを比較して、どれくらい違いがあるのか(どれくらい距離があるのか)を求めます。
まずはTextDistanceのインストール。
$ pip install textdistance
TextDistanceの使用例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# まずはインポート >>> 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 |