#実現したいこと
Pythonのdifflibを用いて文字列の比較をしたいのですが、全角半角の違いと空白を無視して比較したいと思っています。
#実装コード
Python3
1import difflib 2import unicodedata 3str1 = u"スパ ゲッティー" 4str2 = u"スパゲティ" 5normalized_str1 = unicodedata.normalize('NFKC', str1) 6normalized_str2 = unicodedata.normalize('NFKC', str2) 7 8s = difflib.SequenceMatcher(isjunk=lambda x: x in " \t", a=normalized_str1, b=normalized_str2).ratio() 9print("match ratio:", s, "\n") 10
以下の結果となります。
Python3
1match ratio: 0.7692307692307693
#結果と問題点
str1 = u"スパ ゲッティー"
str2 = u"スパゲティ"
の場合と、str1で空白が無い場合とで、類似度が異なる結果(空白なしの場合0.83)となり、空白を無視することができていないことが判明しました。
原因につき、ご教示いただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。