次のデータ要素を持つ人々でいっぱいのデータベースがあるとしましょう。
- PersonID(意味のない代理自動番号)
- ファーストネーム
- ミドルネームのイニシャル
- 苗字
- NameSuffix
- 生年月日
- AlternativeID(SSN、Militarty IDなど)
私はあなたが考えることができるこれらの情報のあらゆる合理的なバリエーションであらゆる種類のフォーマットからたくさんのデータフィードを受け取ります。いくつかの例は次のとおりです。
- フルネーム、DOB
- フルネーム、最後の4つのSSN
- 最初、最後、DOB
このデータが入ってくると、それに合わせて何かを書く必要があります。80%を超える一致率を取得する必要はありません。自動一致の後、誰かが手動で一致させるために、不確実な一致をWebページに表示します。
複雑さのいくつかは次のとおりです。
- 一部のデータ一致は他のデータよりも優れているので、それらに重みを付けたいと思います。たとえば、SSNが完全に一致しているが、誰かがミドルネームを使用しているために名前がオフになっている場合、名前が完全に一致しているがSSNがオフになっている場合よりも、その一致にはるかに高い信頼値を割り当てたいと思います。
- 名前の照合にはいくつかの問題があります。JohnDoeJrはJohnDoeIIと同じですが、John Doe Sr.とは異なります。JohnDoeと他の情報がない場合は、判断する方法がないため、システムが1つを選択しないようにする必要があります。誰を選ぶか。
- 名のマッチングは本当に難しいです。ボブ/ロバート、ジョン/ジョン/ジョナトン、トム/トーマスなどがいます。
- FullName + DOBのフィードがあるからといって、すべてのレコードのDOBフィールドが入力されているわけではありません。比類のないDOBが一致するスコアを殺すという理由だけでリンケージを見逃したくありません。フィールドが欠落している場合、マッチングに使用できる要素からそのフィールドを除外したいと思います。
- 誰かが手動で一致する場合、私は彼らの一致が将来のすべての一致に影響を与えることを望みます。したがって、同じ正確なデータを再度取得した場合、次回は自動的に一致させない理由はありません。
SSISにはあいまい一致があることを確認しましたが、現在SSISを使用していません。また、バージョン管理がかなり厄介でほぼ不可能であるため、ツールの最初の選択肢ではありません。しかし、それが最高の場合は、教えてください。それ以外の場合、このタイプの問題に使用した(できれば無料、できれば.NETまたはT-SQLベースの)ツール/ライブラリ/ユーティリティ/テクニックはありますか?