0

データベース値とユーザー入力の間の単語の順序を確認したい。

元:

例 1:

DB値:ロレムイプサム

ユーザー入力: Ipsum Lorem

例 2:

DB値:ロレム・イプサム・ドロ

ユーザー入力: Dolo Lorem Ipsum (および正確な db 値以外の可能な組み合わせ)

空白を分割して、一致する単語のインデックスを比較したはずですが、常にスペルミスの可能性があります。元:

DB値:ロレムイプサム

ユーザー入力: Lorm Ipsm

私のアプリケーションでは、いくつかのスペルミスを許容する必要があります。他の方法で注文を確認する方法はありますか?

現在、次の方法でレーベンシュタインを使用しています(Ruby on Railsコード)

answer = 'Lorem Ipsum'

response = 'Ipsum Lorem'

score = Text::Levenshtein.distance(answer,response)/answer.length.to_f

これは、レーベンシュタインを使用して得点する正しい方法ですか? はいの場合、許容できるスコアを決定するにはどうすればよいですか? 同じサンプルデータリソースはありますか? 上記のこの特定の例では、スコアを次のように取得します0.72

4

2 に答える 2

0

これは、ユーザー入力と db レコードの両方を単語の配列に分割し、各ペアのレーベンシュタイン距離を計算することで解決できると思います。次に、どのペアリングのセットがスコアを最小化するかを調べる必要があります。

ユーザー入力の単語の各セットは、db レコードの単語と一致するため、同じ位置にあるかどうかに基づいてスコアを計算できます。

于 2013-10-11T13:24:50.827 に答える