データベースに多数の名前と住所を含むプロジェクトに取り組んでいます。「ジョン K スミス」や「ジョー スミス」などの名前と、「20 Theroad avenue」や「1345 Myplace st.」などの住所。
このプロジェクトでは、ユーザー X が Web サイトにアクセスすると、名前と住所、およびその他の詳細を入力します。入力された名前と住所は、データベースに既に存在するものと照合されます。入力された名前とアドレスが、ユーザー X のデータベースに存在するものと十分に類似している場合、アクセスが許可されます。
ログインをより便利にするために、正確な文字列一致の代わりに、おおよその文字列一致を実行する必要があります。(これはセキュリティコンサートであることは知っていますが、完全に一致するユーザー名/パスもあります)。
名前と住所に適した文字列一致アルゴリズムを探しています。さらに、頭字語、短縮形、および「ave」と「avenue」または「mr」と「mr」などの類似のフレーズを考慮に入れています。または「通り」対「大通り」。
これまで、編集距離、jarowinkler、ngram(qgram)、コサイン類似度、および音声学的アプローチを見てきました。
カスタム正規化関数 (短縮形/類似用語の文字列置換を行う) を使用したハイブリッド アプローチが最適な方法であると考えましたが、まだ確信が持てません。
このプロジェクトは最終的に他の言語 (スペイン語とフランス語) で動作するはずです。これは、より多くのカスタム テキスト置換を意味する可能性があります。
名前と住所を高い精度で (最小数の誤検知で) 一致させるための最適なアルゴリズムを見つけるための助けをいただければ幸いです。