1

私は現在、大量のユーザー生成名を正規形式の同じ名前の別のリストと照合する必要があるプロジェクトに取り組んでいます。問題は、ユーザーが生成した名前に多数のスペルミス、略語、および単に無効なデータが含まれているため、正規データとの相互参照が困難になることです。これを行う方法に関する提案はありますか?

これはリアルタイムで行う必要はありません。この場合、速度よりも正確さが重要になります。

これに関する現在のアイデアは次のとおりです。

  1. Lucene や Sphinx などの既存の検索実装を使用して、標準データベースでユーザーが入力した名前のあいまい検索を実行します。これには、レーベンシュタイン距離のようなものを使用すると思われます。
  2. 実際の名前を使用する代わりに、SOUNDEX ハッシュ (スペルではなく名前の音で計算されると思われる) の相互参照。
  3. 上記のいくつかの組み合わせ

これらのいずれかまたは独自のアイデアについてフィードバックがある人はいますか?

私の懸念の 1 つは、上記の方法のいずれも省略形をうまく処理できないということです。拡張された略語を実際に検索するためのいくつかの機械学習方法の方向性を誰かに教えてもらえますか (または、私がおかしいと言ってください)? 前もって感謝します。

4

1 に答える 1

1

まず、 Peter Norvig のスペル修正に関する投稿で説明されている手法をリストに追加します。

第二に、あなたが話している「ユーザー生成名」の種類を尋ねたいと思います。両方を扱ったので、通りの名前に使用するヒューリスティックは、人名のヒューリスティックとは多少異なると思います。(簡単な例として、"Dr" は "Drive" または "Doctor" に展開されますか?)

3 番目に、さまざまな手法の結果を結合するための一連の係数を確立するために、テストを使用して結合を調べます。

于 2009-12-10T00:40:50.583 に答える