すべてのソースのレコードが同じ人物を表しているかどうかを判断する方法

StackOverflow https://stackoverflow.com/questions/122990

質問

次のような個人データを含むテーブルのソースがいくつかあります。

SOURCE 1
ID, FIRST_NAME, LAST_NAME, FIELD1, ...
1, jhon, gates ...

SOURCE 2
ID, FIRST_NAME, LAST_NAME, ANOTHER_FIELD1, ...
1, jon, gate ...

SOURCE 3
ID, FIRST_NAME, LAST_NAME, ANOTHER_FIELD1, ...
2, jhon, ballmer ...

したがって、ソース 1 と 2 からの ID 1 のレコードが同一人物であると仮定すると、私の問題は すべてのソース内のレコードが同じ人物を表しているかどうかを判断する方法です. 。さらに、すべてのレコードがすべてのソースに存在するわけではありません。すべての名前は、主にスペイン語で書かれています。

この場合、次のように仮定するため、正確な一致を緩和する必要があります。 データソースが厳密にチェックされていない 国の公的身分証明書局に対して。また、仮定する必要があります タイプミスはよくあること, 、データを収集するプロセスの性質によるものです。しかも、レコードの量はどのソースでも 200 ~ 300 万件程度です...

私たちのチームは次のようなことを考えていました。まず、ID NUMBER や NAMES などの選択したフィールドで完全一致を強制して、問題がどれほど難しいかを確認します。次に、一致基準を緩和して、さらにどれだけのレコードが一致できるかを数えますが、ここで問題が発生します。 ノイズを生成しすぎず、制限しすぎずに一致基準を緩和するにはどうすればよいでしょうか?

これを処理するにはどのツールがより効果的ですか? たとえば、このマッチングをサポートするデータベース エンジンの特定の拡張機能についてご存知ですか?次のような賢いアルゴリズムについてご存知ですか? サウンデックス この近似一致を処理するには、ただしスペイン語のテキストの場合はどうすればよいでしょうか?

助けていただければ幸いです。

ありがとう。

役に立ちましたか?

解決

問題の核心は、エントリの各ペア間の距離の 1 つ以上の尺度を計算し、距離の 1 つが特定の許容しきい値よりも小さい場合にそれらの距離を同じとみなすことです。重要なのは、分析を設定し、偽陽性と偽陰性の間の最良のトレードオフと考えられる値に達するまで、許容可能な距離を変更することです。

距離測定の 1 つは音声的なものである可能性があります。もう 1 つ考えられるのは、 レーベンシュタインまたは編集距離 全体の間で、タイプミスを測定しようとします。

何人必要かについて合理的な考えがある場合、目標は、適切な人数が得られるスイート スポットを見つけることです。マッチングを曖昧にしすぎると、マッチングが少なくなりすぎます。制限を厳しくすると、数が増えすぎてしまいます。

ある人が持つべきエントリの数がおおよそわかっている場合は、それを指標として使用して、いつそれに近づいているかを確認できます。または、レコード数を各人物の平均レコード数に分割し、撮影対象の大まかな人数を取得することもできます。

使用する数値がない場合は、分析からレコードのグループを選択し、それらが同一人物に見えるかどうかを手動でチェックする必要があります。つまり、推測と確認です。

それが役立つことを願っています。

他のヒント

これは次のように聞こえます 顧客データの統合 問題。その用語で検索すると、さらに詳しい情報が見つかるかもしれません。また、中を覗いてみてください データウェアハウス協会, 、そこにも答えが見つかるかもしれません。

編集: 加えて、 ここにあります スペイン語の音声マッチングに関する興味深い記事です。

以前にも同様のことをしなければならなかったことがあり、私がやったのは ダブルメタフォン 名前の発音検索。

ただし、名前を比較する前に、作成したニックネーム テーブルで名前を検索して、名前とニックネームの違いを正規化しようとしました。(オンラインで見つけた国勢調査のデータを表に入力しました) したがって、ボブと呼ばれた人々はロバートになり、アレックスはアレクサンダーになり、ビルはウィリアムになりました。

編集:Double Metaphone は、Soundex よりも優れており、英語以外の言語でも動作するように特別に設計されています。

SSIS 、あいまい検索変換を使用してみてください

この問題を解決するためにいくつかの詳細を追加するために、Postgresql 8.3 用のこのモジュールを見つけました。

辞書と比較して名前を正規化しようとすることもできます。
これにより、よくあるタイプミスを見つけて修正することができます。

あなたは持っているように思えます レコード連携 問題。リンク内の参考資料を使用できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top