(user_id、name)を持つSQLiteデータベースがあります。ユーザーが名前でシステムに既に存在するかどうかを検出したい。問題は、名前のスペルが間違っている可能性があることを意味するユーザーからの名前であるか、名前の代替バージョンである可能性があることです: "Tim" 対 "Timothy". したがって、入力に最も近い一致を見つけ、一致があるかどうかを判断するための類似性の信頼を与える関数が必要です。信頼度は 0 から 1 の間である必要があります (意味のあるカットオフを設定できるようにするため)。
テーブル:
1 | ティム・ベスト 2 | ロジャー・トーマス 3 | ローパーバー
- ユーザーが入力した場合
Timothy Bert
、関数は返されます1 | Tim Best | 0.8
(0.8 が信頼度でした)。 - ユーザー
Roper Thomas
が関数に入ると、戻ります2 | Roger Thomas | 0.6
- ユーザー
Tim Taylor
が関数に入ると、戻ります1 | Tim Best | 0.3
- ユーザー
Foo Taylor
が関数に入ると、戻ります2 | Roper Thomas | 0.0
理想的には、これを行うために SQLite でクエリを記述できれば最高ですが、それが不可能な場合は、ac ソリューションも使用します。