pythonで文字列の類似度を比較する

python

今回は、pythonで文字列を比較する方法を二つご紹介します。

方法1:類似度をパーセンテージで表す

文字列の類似度をパーセンテージで表す場合にはdifflibというライブラリをインポートすると便利です。詳しい内容はpythonの公式ドキュメントを参考にしてください。このライブラリを使うことで、二つの文字列の類似度を0-1の数値で表すことができます。

まず、”ABCDEFGHIJ”と”AACDEFGHIJ”の比較をしてみます。

出力結果はこちらです。

10文字中1文字が違うので、0.9という結果でした。

文字列の長さが違う場合も比較できます。 “ABCDEFGHIJ”と”ABCDEFGHI”の比較をしてみます。

出力結果はこちらです。

「1文字違う文字に変えた場合」と「1文字短くした場合」で類似度のスコアが違うことが分かります。

方法2:何ヶ所違うかを調べる

ここでは、編集距離(Levenshtein距離)を求めることで比較する方法をご紹介します。編集距離とは文字列AとBの類似度を比較する場合、片方の文字列を何回編集すればもう一方の文字列に一致するかという回数のことです。ここでいう編集とは、「一文字置換」、「一文字挿入」、「一文字削除」のいずれかのことを指します。

まず、 パッケージをインストールします。

それでは、 “ABCDEFGHIJ”と”AACDEFGHIJ”の比較をしてみます。

出力結果はこちらです。

“ABCDEFGHIJ”と”AACDEFGHIJ”では二文字目を変更することで、一致させることができるので編集距離は1です。

タイトルとURLをコピーしました