1

これは SQL Server 固有の質問ではありません。ただし、ここには tSQL 固有のオプションがある場合があります。

私は顧客の詳細をたくさん持っています。彼らの多くは、サービスをキャンセルして辞任します。彼らはまったく新しいアカウントを取得します。そして、私たちのデータ検証はせいぜい大ざっぱです。そのため、電子メール アドレスやその他のデータのタイプミスがよくあります。

質問は 2 つの部分に分かれています。

初め; 氏名、メールアドレス、クレジット カードの下 4 桁、郵便番号、電話番号などの情報があります。データセットを調べて共通の繰り返しのプールを探すことができるアルゴリズム/プロセスはありますか?メールは「類似」しており、郵便番号も同じでした。リピーターでしたか (人間によるマッチング スキルに基づく)?

2番; データ セット間の類似性を表現するにはどうすればよいでしょうか。つまり、5 つのフィールドのうち 3 つが一致する場合に、一致と呼ばれるアイテムが存在するでしょうか。すべての異なるデータポイント間のある種の類似性指標? 名前にある程度soundexを使用できることは知っています...メールアドレスについてはよくわかりません。

だから、私は簡単な解決策と汚い解決策の両方に興味があります (今夜、分析をまとめます。しかし、この問題に取り組む「正しい」方法にも非常に興味があります)。尊敬する。=)

4

2 に答える 2

3

T-SQL ではありませんが、SSIS にはいくつかの答えがあります: Fuzzy Lookup TransformationFuzzy Grouping Transformation。この MSDN 記事では、その使用方法について説明しています: Fuzzy Lookups and Groupings Provide Powerful Data Cleansing Capabilitiesと、トピックに関するビデオ: MSDN TV: Data Cleansing Applications with SQL Server Integration Services .

Red-Gate のData Cleanserなど、サードパーティのソリューションもあります。それでも、彼らは SSIS を使用しています。これは、この仕事により適したツールです。

また、レーベンシュタイン距離についても読む必要があります。SQL Server で使用できる CLR 実装だけでなく、既に多くの公開されている市販の T-SQL 実装があります。彼らのためだけにグーグル

于 2011-11-30T06:54:16.707 に答える
0

クエリ用のJaro-Winklerファジー マッチング アルゴリズムも参照することをお勧めします。その CLR 実装はここにあります。

これは、少量のテキスト文字列マッチングで非常にうまく機能するようです

于 2011-11-30T11:50:28.933 に答える