「コカ・コーラ」と「コカ・コーラ」など、2 つの文字列をあいまいに一致させるコードを作成している場合、標準的な方法がいくつかあります。
- レーベンシュタイン編集距離の比較 ( http://en.wikipedia.org/wiki/Levenshtein_distance )
- 各文字列の音声ベースのハッシュ (例: Double Metaphone) を計算し、比較します。
ただし、部分文字列に対してこれを行う標準的で効率的な方法に関する情報が見つかりません。たとえば、入力「tell me about coca-kola」(「干し草の山」) の場合、会社「Coca-Cola」(「針」) を取り上げたいとします。
何百万もの針 (DB 内の会社) があり、リソースを大量に消費する可能性があるため、変更されたレーベンシュタイン アルゴリズムを使用することはできません。干し草の山にある各単語の音声ハッシュを計算し、各針と比較できる可能性がありますが、音声表現にも多くの制限があり、音声を使用しないこの問題を処理するための十分に確立された標準があるかどうか疑問に思っていますか?
よくスケーリングするシンプルで理解しやすいアルゴリズムを探しています。Bitapアルゴリズムなど、回答が示唆された場所に同様の質問がすでに投稿されていますが、Levenshteinのように、これはスケーリングされていないようです。