私は個人情報を含むデータベースがたくさんある組織で働いています。データ品質が悪い。 1つのケースは、私がこのように見つけた姓でした(これは最悪のシナリオです):
マーク「彼の姓はダンノですが、ライオンの「RAR」のように聞こえました、ハハ」
生年月日は1499年1月9日です。
これは最悪のシナリオです。ほとんどのデータ品質の問題は、キーボードの間違ったキーを押すことが原因です。スミスの代わりにスニス(nはキーボードの次の私mです)。
このような状況で、ある種の「あいまいマッチング」に役立つアルゴリズムを探しています。私たちの要件には、1日あたり数百万のレコードが含まれます。 「データマッチング」を探して、次のアルゴリズムを発見しました。
SQL SOUNDEX
SQL METAPHONE
Levenshtein Distance
また、生年月日が一致する可能性もありますか?姓に一致する可能性があるのは、レーベンシュタイン距離が80%である場合です。
したがって、2つの質問があります。
上記の3つ以外に利用できるアルゴリズムは何ですか?
可能なアドレスを照合するために使用されるアプローチ
生年月日と一般の人々については、その人が存在するかどうか、そしてその住所が有効かどうかを検証する必要があります。
次のようなサードパーティのサービスを使用して、これらの両方を実行できます。
あなたが言及したアルゴリズムを使用してこれを自分で行うことができますが、なぜ車輪を再発明し、おそらくあなたの実装に欠陥があるでしょう。
これらのサービスのほとんどは構成可能であり、名前、DOB、電話番号などの情報を送信でき、その人が存在するかどうかを調べようとします。
住所情報についても同様です。アドレスの標準化を試み、それを見つけて(実際に存在するかどうかを確認します)、標準化されたアドレスを返します。
これらのシナリオの両方で、ヒットを返すことはできません。つまり、人物が見つからないか、住所が見つかりません。そのような場合、サンプルデータにあるような偽の個人または住所が存在する可能性があります。
また、複数の一致または100%未満の一致が返される場合もあります。たとえば、有効な情報が電話番号だけの場合、その電話番号で複数の人に返される可能性があります。
絶対一致に満たない場合は、90%など、一致させたい信頼係数を設定できます。その数を下回るものはすべて、手動による介入が必要なレポートに入れられます。一致しない人はジャンクデータであるため、データストアから削除する必要があります。