ファジーのファジーで作業していて、それがlevenshtein距離で動作すると主張している間に、1つの文字が異なる多くの文字列が異なる結果を生成することがわかりました。例えば。Pythonのファジーファジーが予期しない結果を返す
>>>fuzz.ratio("vendedor","vendedora")
94
>>>fuzz.ratio("estagiário","estagiária")
90
>>> fuzz.ratio("abcdefghijlmnopqrst","abcdefghijlmnopqrsty")
97
>>>fuzz.ratio("abc","abcd")
86
>>>fuzz.ratio("a","ab")
67
私はすべての例では、単一の文字の距離があるようレーベンシュタイン距離が同じである必要があります推測するが、私はこれは単純な距離ではありません理解し、それはある種の「平等の割合」のいくつかの並べ替えです。
どのように動作するのか理解しようとしましたが、わかりません。私の非常に長いストリングは97と非常に短い67を与えます。ストリングが大きいほど、1文字に与える影響は少なくなります。しかし、 "vendedor"、 "vendora"、 "estagiário"、 "estagiária"の例では、後者が前者よりも大きいので、そうではありません。
これはどのように機能しますか?
私は現在、ユーザー入力の仕事のタイトルと一致しています。正しく入力された名前などでミスタイプされた名前を接続しようとしています。
'fuzz.ratio'は、文字列の類似度をlevenshtein距離に基づいて返します。 –