tMatchPairingはどうやって疑わしい重複するペアを計算しますか?
tMatchPairingコンポーネントでは、ファジーブのロッキング方式として見なせるサフィックス配列のブロッキング方式が使用されて、疑わしい重複するペアを計算します。
プロセスのメインステップは以下のようです:
-
各行では、ブロッキングキーとして使用されるさまざまなカラムの値が連結されます。次に、[Min suffix length] (最小サフィックス長)パラメーターで設定される値以上の長さであるサフィックスがすべて生成されます。デフォルトで、値はTalend Studioで3に設定されています。
たとえば、first_nameカラムとlast_nameカラムはブロッキングキーとして使用されます。fisrt_nameカラムにはJohnが、last_nameカラムにはDoeが含まれています。従って、生成されるサフィックスはDoe、nDoe、hnDoe、ohnDoe、JohnDoeです。
-
残りのサフィックスはアルファベット順にソートされています。2つの連続するサフィックスが類似しすぎると、マージされます。
特定のサフィックスを持つ行数が[Max block size] (最大ブロックサイズ)パラメーターで設定された値を超えると、そのサフィックスの出現頻度が高すぎると見なされます。この後に削除されます。
- 各サフィックスでは、同じサフィックスを持つレコードが含まれている行の潜在的なペアがすべて生成されます。組み合わせの数が劇的に増加する可能性があるため、[Max block size] (最大ブロックサイズ)パラメーターで設定する値は大きすぎない必要があります。デフォルトで、[Max block size] (最大ブロックサイズ)パラメーターの値は10に設定されています。
- 最後のステップはフィルタリングステップです。マッチングする可能性がより少ないペアを削除します。各ペアのスコアが計算されて、出力スキーマに追加されます。疑わしい重複の各ペアに対するスコアを計算するために、固定サイズのサンプルが生成されます。デフォルトサイズは10000に設定されています。以下の2つのステップがサンプルに適用されます:
- 各ペアと各カラムのさまざまな測定(Levenshtein、Jaro-Winkler、Exact without case)を計算する。
- 疑わしい重複の各ペアと各カラムのパーセンタイルを計算する。
特定の測定値に対して、パーセンタイルの非常に正しい近似値を与えることができるようになりました。グローバルデータセットで、各ペアのさまざまな測定が計算されて、各測定のパーセンタイルが取得されます。次に、2つのステップに従って、スコアが計算されます:
- 測定で各カラムの最大パーセンタイルを計算する。
- カラムで最小パーセンタイルを計算する。
スコアがしきい値より低い場合は、ペアがフィルタリングされます。各カラムにはしきい値を上回る測定が少なくとも1つあることが保証されます。これは、カラムがすべて少なくとも1つの測定と完全マッチングしていることを意味します。