レーベンシュタイン距離は絶対値として使用することになっていますか?
それはあなたの要件に依存するようです。(明確にするために:レーベンシュタイン距離は絶対値ですが、OPが指摘したように、生の値は、単語の長さを考慮した尺度として、特定のアプリケーションほど有用ではない場合があります。これは、私たちが本当に距離自体よりも類似性に関心があります。)
Daitch-Mokotoff soundexing と Damerau-Levenshtein の両方を使用して、アプリケーションのユーザー エントリと値が「同じ」かどうかを調べています。
ユーザーが自分のエントリが特定のデータ値と同じであることを意図しているかどうかを判断しようとしているように聞こえますか?
スペルチェックをしていますか?または無効な入力を既知の値のセットに適合させますか? あなたの優先事項は何ですか?
- 誤検知を最小限に抑えます (提案されたすべての単語が非常に「似ている」こと、および提案のリストが短いことを確認してください)
- 誤検知を最小限に抑えます (リストが長くなっても、ユーザーが意図した文字列が候補のリストに含まれていることを確認してください)
- 平均マッチング精度を最大化
レーベンシュタイン距離を 1 つの方法で使用して、候補リストに単語を提供する必要があるかどうかを判断することになる場合があります。提案リストの順序を決定する別の方法。
あなたの目的を正しく推測した場合、あなたが測定したい中心的なことは、2つの文字列の違いではなく類似性であるように思えます。そのため、文字列の長さと共通の文字数を考慮したJaro または Jaro-Winkler 距離を使用できます。
与えられた 2 つの文字列 s1 と s2 のジャロ距離 dj は、
(m / |s1| + m / |s2| + (m - t) / m) / 3
どこ:
ジャロ・ウィンクラー距離は、設定されたプレフィックス長lの最初から一致する文字列に、より有利な評価を与えるプレフィックス スケールpを使用します。