0

この件については多くのことが触れられていると思いますが、何時間もグーグルで検索しても、必要な答えが見つからないのではないかと心配しています。私が本当に求めているのは、方向性、必要なことを学ぶための道筋です。MA Access データベースがあり、キーワード検索クエリを作成しようとしていますが、クエリから非常に幅広い結果を取得したいと考えています。言うのは簡単description LIKE "red"ですが、もっと強力な検索を探しています。検索した単語の一部でも返ってくるようなものなので、「クリップボード」で検索すると「サーフボード」も見つけたいです。私が本当に望んでいるのは、大量の結果を返すが、元の検索との関連性に基づいてそれらをランク付けする方法を持つキーワード検索を実行できるようにすることです。何か案は?

4

1 に答える 1

1

単語間のレーベンシュタイン距離を計算できます。レーベンシュタイン距離は、2 つのシーケンス間の差を測定します。これにより、類似した単語も考慮することができます。

レーベンシュタイン距離の範囲は、0 (単語が等しい) から最長の単語の長さ (単語が完全に異なる) までです。レーベンシュタイン値をより適切な値に変換したい場合があります。

Dim maxlength As Long
Dim similarity As Single

maxlength = Max(word1.Length, word2.Length)
similarity = (maxlength - levenshteinDist) / maxlength

これにより、0 (類似していない) から 1 (等しい) までの類似度の値が得られます。

ここでVBAの実装を見つけることができます:
Excelのレーベンシュタイン距離 - スタックオーバーフロー
msアクセス - VBAで同様のサウンドテキストを見つける

注: Access には機能がありませんMax。独自に記述するか、明示的にコーディングしてください。

于 2013-01-11T14:52:15.620 に答える