私はpythonでfuzzy wuzzyを使用していますが、レーベンシュタイン距離で機能すると主張していますが、1文字が異なる多くの文字列が異なる結果をもたらすことがわかりました。例えば。
>>>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 つの文字への影響が少ないことを意味すると思います。ただし、「vendor」、「vendedora」、および「estagiário」、「estagiária」の例では、後者が前者よりも大きいため、そうではありません。
これはどのように作動しますか?
現在、ユーザー入力の役職を照合し、入力ミスした名前を正しく入力された名前に関連付けようとしています。私のタスクに適したパッケージはありますか?