T-Swooshアルゴリズム
T-SwooshアルゴリズムはシンプルVSRマッチャーアルゴリズムと同じ考え方に基づいていますが、既存のレコードをマスターレコードと見なすのではなく、マスターレコードを作成します。
入力レコードの順序はマッチングプロセスには影響しません。
マスターレコードを作成するには、どの属性を残すかを決めるためにサバイバーシップルールをデザインします。
サバイバーシップルールには次の2つのタイプがあります。
- マッチングキーに関連するルール: マッチングするキーとして使用される各属性に特定のサバイバーシップルールを設定できます。
- デフォルトのルール: データ型が等しいすべての属性に適用されます(ブール値、文字列、日付、数値)。
カラムがマッチングキーである場合は、このカラムに固有のマッチングキーに関連するルールが適用されます。
カラムがマッチングキーでない場合は、このデータ型のデフォルトサバイバーシップルールが適用されます。データ型のデフォルトサバイバーシップルールが定義されていない場合は、[Most common] (最も一般的)なサバイバーシップ機能が使用されます。
2つのレコードをマージして新しいマスターレコードを作成した時は毎回、この新しいマスターレコードが、検査するレコードのキューに追加されます。マージされた2つのレコードは、ルックアップテーブルから削除されます。
たとえば、以下のレコードのセットを入力として取り込みます。
id | fullName |
---|---|
1 | John Doe |
2 | Donna Lewis |
3 | John B. Doe |
4 | Johnnie B. Doe |
サバイバーシップルールでは、[Concatenate] (連結)ファンクションと","が、値を区切るパラメーターとして使用されます。
プロセスの最初の段階では、キューにはすべての入力レコードが含まれており、ルックアップは空です。入力レコードを処理するために、アルゴリズムはキューが空になるまで反復されます。
- アルゴリズムはレコード1を取り、空のレコードセットと比較します。レコード1はどのレコードともマッチングしないため、マスターレコードのセットに追加されます。これで、キューにはレコード2、レコード3、レコード4が含まれています。ルックアップにはレコード1が含まれています。
- アルゴリズムはレコード2を取り、レコード1と比較します。レコード2はどのレコードともマッチングしないため、マスターレコードのセットに追加されます。これで、キューにはレコード3、レコード4が含まれています。ルックアップにはレコード1とレコード2が含まれています。
- アルゴリズムはレコード3を取り、レコード1と比較します。レコード3はレコード1とマッチングします。そのため、レコード1とレコード3がマージされて、レコード1,3という新しいマスターレコードが作成されます。これで、キューにはレコード4とレコード1,3が含まれています。ルックアップにはレコード2が含まれています。
- アルゴリズムはレコード4を取り、レコード2と比較します。マッチではないため、レコード4はマスターレコードのセットに追加されます。これで、キューにはレコード1,3が含まれています。ルックアップテーブルにはレコード2とレコード4が含まれています。
- アルゴリズムはレコード1,3を取り、レコード2、レコード4と比較します。レコード1,3はレコード4とマッチングします。そのため、レコード1,3とレコード4がマージされて、レコード1,3,4という新しいマスターレコードが作成されます。レコード4はルックアップテーブルから削除されます。レコード1,3は前のマージの結果であるため、テーブルから削除されます。これで、キューにはレコード1,3,4が含まれています。ルックアップにはレコード2が含まれています。
- アルゴリズムはレコード1,3,4を取り、レコード2と比較します。マッチではないため、レコード1,3,4はマスターレコードのセットに追加されます。現在、キューは空です。ルックアップにはレコード1,3,4とレコード2が含まれています。
出力は次のようになります。
id | fullName | GRP_ID | GRP_SIZE | MASTER | SCORE | GRP_QUALITY |
---|---|---|---|---|---|---|
1,3,4 | John Doe, John B. Doe, Johnnie B. Doe | 0 | 3 | true | 1.0 | 0.449 |
1 | John Doe | 0 | 0 | false | 0.72 | 0 |
3 | John B. Doe | 0 | 0 | false | 0.72 | 0 |
4 | Johnnie B. Doe | 0 | 0 | false | 0.78 | 0 |
2 | Donna Lewis | 1 | 1 | true | 1.0 | 1.0 |
このサンプルでわかるように、GRP_QUALITYカラムは[Match Threshold] (マッチングしきい値)パラメーターよりも小さくできます。これは、[Match Threshold] (マッチングしきい値)以上のマッチングスコアを持つレコードペアからグループが作成されますが、すべてのレコードが互いに比較されるわけではないためです。他方、GRP_QUALITYはグループ内のすべてのレコードペアを考慮に入れます。
このページは役に立ちましたか?
このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。