私は現在、大量のユーザー生成名を正規形式の同じ名前の別のリストと照合する必要があるプロジェクトに取り組んでいます。問題は、ユーザーが生成した名前に多数のスペルミス、略語、および単に無効なデータが含まれているため、正規データとの相互参照が困難になることです。これを行う方法に関する提案はありますか?
これはリアルタイムで行う必要はありません。この場合、速度よりも正確さが重要になります。
これに関する現在のアイデアは次のとおりです。
- Lucene や Sphinx などの既存の検索実装を使用して、標準データベースでユーザーが入力した名前のあいまい検索を実行します。これには、レーベンシュタイン距離のようなものを使用すると思われます。
- 実際の名前を使用する代わりに、SOUNDEX ハッシュ (スペルではなく名前の音で計算されると思われる) の相互参照。
- 上記のいくつかの組み合わせ
これらのいずれかまたは独自のアイデアについてフィードバックがある人はいますか?
私の懸念の 1 つは、上記の方法のいずれも省略形をうまく処理できないということです。拡張された略語を実際に検索するためのいくつかの機械学習方法の方向性を誰かに教えてもらえますか (または、私がおかしいと言ってください)? 前もって感謝します。