Suchraumbestimmung
- Erstellen der Schlüssel: Errechne einen Schlüssel für jeden Datensatz in der Liste durch extrahieren relevanter Felder oder Feldbestandteile
- Sortierung der Daten: Sortiere die Datensätze in der Datenliste unter Nutzung des Schlüssels aus Schritt 1
- Vereine: Bewege ein Fenster mit konstanter Größe durch die sequentielle Liste der Datensätze und limitiere den Vergleich auf passende Werte auf solche innerhalb des Fensters. Falls die Fenstergröße w Datensätze umfasst, so wird jeder neuer Datensatz mit den vorhergehenden w-1 Sätzen verglichen, um „passende Datensätze“ zu finden. Der erste Datensatz im Fenster slided dabei aus dem Fensterbereich.
- Durch die Vergrößerung des sliding-windows werden mehr Datensätze mit eingeschlossen.
- ein mehrmaliges Ausführen mit unterschiedlichen Schlüsseln und relativ kleinem Fenster gibt, nach einzelnem Abgleich der Ergebniss-Gruppen und transitivem Schließen (nur bei geringer Fenstergröße empfehlenswert) die besseren Ergebnisse.
- w
Anzahl der Vergleichsdatensätze
- V
die möglichen Werte der Attribute, |V| Anzahl der Canopies
- n
Anzahl aller Entitäten/Datensätze
- Erstellen der Schlüssel: Errechne einen Schlüssel für jeden Datensatz in der Liste durch extrahieren relevanter Felder oder Feldbestandteile
- Sortierung der Daten: Sortiere die Datensätze in der Datenliste unter Nutzung des Schlüssels aus Schritt 1
- Vereine: Bewege ein Fenster mit konstanter Größe durch die sequentielle Liste der Datensätze und limitiere den Vergleich auf passende Werte auf solche innerhalb des Fensters. Falls die Fenstergröße w Datensätze umfasst, so wird jeder neuer Datensatz mit den vorhergehenden w-1 Sätzen verglichen, um „passende Datensätze“ zu finden. Der erste Datensatz im Fenster slided dabei aus dem Fensterbereich.
- Durch die Vergrößerung des sliding-windows werden mehr Datensätze mit eingeschlossen.
- ein mehrmaliges Ausführen mit unterschiedlichen Schlüsseln und relativ kleinem Fenster gibt, nach einzelnem Abgleich der Ergebniss-Gruppen und transitivem Schließen (nur bei geringer Fenstergröße empfehlenswert) die besseren Ergebnisse.
- w
Anzahl der Vergleichsdatensätze
- V
die möglichen Werte der Attribute, |V| Anzahl der Canopies
- n
Anzahl aller Entitäten/Datensätze
- Erstellen der Schlüssel: Errechne einen Schlüssel für jeden Datensatz in der Liste durch extrahieren relevanter Felder oder Feldbestandteile
- Sortierung der Daten: Sortiere die Datensätze in der Datenliste unter Nutzung des Schlüssels aus Schritt 1
- Vereine: Bewege ein Fenster mit konstanter Größe durch die sequentielle Liste der Datensätze und limitiere den Vergleich auf passende Werte auf solche innerhalb des Fensters. Falls die Fenstergröße w Datensätze umfasst, so wird jeder neuer Datensatz mit den vorhergehenden w-1 Sätzen verglichen, um „passende Datensätze“ zu finden. Der erste Datensatz im Fenster slided dabei aus dem Fensterbereich.
- Durch die Vergrößerung des sliding-windows werden mehr Datensätze mit eingeschlossen.
- ein mehrmaliges Ausführen mit unterschiedlichen Schlüsseln und relativ kleinem Fenster gibt, nach einzelnem Abgleich der Ergebniss-Gruppen und transitivem Schließen (nur bei geringer Fenstergröße empfehlenswert) die besseren Ergebnisse.
- w
Anzahl der Vergleichsdatensätze
- V
die möglichen Werte der Attribute, |V| Anzahl der Canopies
- n
Anzahl aller Entitäten/Datensätze
- Erstellen der Schlüssel: Errechne einen Schlüssel für jeden Datensatz in der Liste durch extrahieren relevanter Felder oder Feldbestandteile
- Sortierung der Daten: Sortiere die Datensätze in der Datenliste unter Nutzung des Schlüssels aus Schritt 1
- Vereine: Bewege ein Fenster mit konstanter Größe durch die sequentielle Liste der Datensätze und limitiere den Vergleich auf passende Werte auf solche innerhalb des Fensters. Falls die Fenstergröße w Datensätze umfasst, so wird jeder neuer Datensatz mit den vorhergehenden w-1 Sätzen verglichen, um „passende Datensätze“ zu finden. Der erste Datensatz im Fenster slided dabei aus dem Fensterbereich.
- Durch die Vergrößerung des sliding-windows werden mehr Datensätze mit eingeschlossen.
- ein mehrmaliges Ausführen mit unterschiedlichen Schlüsseln und relativ kleinem Fenster gibt, nach einzelnem Abgleich der Ergebniss-Gruppen und transitivem Schließen (nur bei geringer Fenstergröße empfehlenswert) die besseren Ergebnisse.
- w
Anzahl der Vergleichsdatensätze
- V
die möglichen Werte der Attribute, |V| Anzahl der Canopies
- n
Anzahl aller Entitäten/Datensätze
- Erstellen der Schlüssel: Errechne einen Schlüssel für jeden Datensatz in der Liste durch extrahieren relevanter Felder oder Feldbestandteile
- Sortierung der Daten: Sortiere die Datensätze in der Datenliste unter Nutzung des Schlüssels aus Schritt 1
- Vereine: Bewege ein Fenster mit konstanter Größe durch die sequentielle Liste der Datensätze und limitiere den Vergleich auf passende Werte auf solche innerhalb des Fensters. Falls die Fenstergröße w Datensätze umfasst, so wird jeder neuer Datensatz mit den vorhergehenden w-1 Sätzen verglichen, um „passende Datensätze“ zu finden. Der erste Datensatz im Fenster slided dabei aus dem Fensterbereich.
- Durch die Vergrößerung des sliding-windows werden mehr Datensätze mit eingeschlossen.
- ein mehrmaliges Ausführen mit unterschiedlichen Schlüsseln und relativ kleinem Fenster gibt, nach einzelnem Abgleich der Ergebniss-Gruppen und transitivem Schließen (nur bei geringer Fenstergröße empfehlenswert) die besseren Ergebnisse.
- w
Anzahl der Vergleichsdatensätze
- V
die möglichen Werte der Attribute, |V| Anzahl der Canopies
- n
Anzahl aller Entitäten/Datensätze
- Erstellen der Schlüssel: Errechne einen Schlüssel für jeden Datensatz in der Liste durch extrahieren relevanter Felder oder Feldbestandteile
- Sortierung der Daten: Sortiere die Datensätze in der Datenliste unter Nutzung des Schlüssels aus Schritt 1
- Vereine: Bewege ein Fenster mit konstanter Größe durch die sequentielle Liste der Datensätze und limitiere den Vergleich auf passende Werte auf solche innerhalb des Fensters. Falls die Fenstergröße w Datensätze umfasst, so wird jeder neuer Datensatz mit den vorhergehenden w-1 Sätzen verglichen, um „passende Datensätze“ zu finden. Der erste Datensatz im Fenster slided dabei aus dem Fensterbereich.
- Durch die Vergrößerung des sliding-windows werden mehr Datensätze mit eingeschlossen.
- ein mehrmaliges Ausführen mit unterschiedlichen Schlüsseln und relativ kleinem Fenster gibt, nach einzelnem Abgleich der Ergebniss-Gruppen und transitivem Schließen (nur bei geringer Fenstergröße empfehlenswert) die besseren Ergebnisse.
- w
Anzahl der Vergleichsdatensätze
- V
die möglichen Werte der Attribute, |V| Anzahl der Canopies
- n
Anzahl aller Entitäten/Datensätze
- Erstellen der Schlüssel: Errechne einen Schlüssel für jeden Datensatz in der Liste durch extrahieren relevanter Felder oder Feldbestandteile
- Sortierung der Daten: Sortiere die Datensätze in der Datenliste unter Nutzung des Schlüssels aus Schritt 1
- Vereine: Bewege ein Fenster mit konstanter Größe durch die sequentielle Liste der Datensätze und limitiere den Vergleich auf passende Werte auf solche innerhalb des Fensters. Falls die Fenstergröße w Datensätze umfasst, so wird jeder neuer Datensatz mit den vorhergehenden w-1 Sätzen verglichen, um „passende Datensätze“ zu finden. Der erste Datensatz im Fenster slided dabei aus dem Fensterbereich.
- Durch die Vergrößerung des sliding-windows werden mehr Datensätze mit eingeschlossen.
- ein mehrmaliges Ausführen mit unterschiedlichen Schlüsseln und relativ kleinem Fenster gibt, nach einzelnem Abgleich der Ergebniss-Gruppen und transitivem Schließen (nur bei geringer Fenstergröße empfehlenswert) die besseren Ergebnisse.
- w
Anzahl der Vergleichsdatensätze
- V
die möglichen Werte der Attribute, |V| Anzahl der Canopies
- n
Anzahl aller Entitäten/Datensätze
Suchraumbestimmung
Suchraumbestimmung
Suchraumbestimmung
Suchraumbestimmung
Suchraumbestimmung
Suchraumbestimmung
Aus Gründen der Effizienz und Skalierbarkeit soll ein Vergleich aller Tupel in jeder Relation verhindert werden. Analog zu Schritt 2 aus dem Abschnitt "Strukturanalyse" wird daher für jeden Datensatz der Suchraum zur Ableitung möglicher Abbildungen begrenzt.
Da in der Menge A×B im Allgemeinen viel mehr Nicht-Treffer als Treffer zu erwarten sind (u(γ)≫m(γ)), werden für einen Datensatz die Vergleichsdatensätze entfernt, welche auf keinen Fall zutreffen. Eine Vielzahl von Methoden haben als Aufgabe, die Rechenkosten der Namensfindung gering zu halten, indem eine erste Grobauswahl aus dem Gesamtdatenbestand isoliert wird. Sets von geordneten Paaren , auf denen der Fellegi-Sunter Verlinkungsalgorithmus Anwendung findet, sind daher mit „Blockierkriterien“ bzw. Sortierschlüssel belegt.
Man nehme als Beispiel ein Tupel-Set, in welchem eine Telefonnummer vorhanden ist. Diese Telefonnummer kann in Verbindung mit einigen wenigen Zeichen des Namens zur Bestimmung von Verlinkungen nutzen. Bei anderen Paaren mögen zusätzlich die Informationen zu Straßennamen und Stadtnamen zugrunde gelegt werden.
Der traditionelle Blockier-Algorithmus gruppiert Datensätze, wenn diese den selben Inhalt in einer Blockiervariable besitzen, also bspw. den identischen Eintrag für Stadt und Nachname in einem Datensatz. Blockierkriterien müssen dabei gut gewählt werden, da bei zu allgemeinen Auswahlschlüsseln die Menge näher zu untersuchender Datensätze zu hoch ist (korrekte Negative), bei einer zu engen jedoch passende Datensätze ausgesperrt bleiben könnten (falsche Positive).
Ebenfalls muss die Fehler-Charakteristik des gewählten Schlüssels bekannt und ein Fehlerauftritt minimal sein. Durch die Verwendung multipler Blockierschlüssel kann der Fehler in einem der Schlüssel abgemildert werden. Die Berechnungskomplexität ist pro gewählten Schlüssel, O(h(n)+n²/b), wobei h(n) = n log n bei sortierter Blocking-Menge, h(n) = n bei blocking durch hashing. Die Ergebnissmengen sind allerdings nur schwer abzuschätzen.
Eine Weiterentwicklung stellt die Sorted-Neighbourhood- oder Fenster- Strategie ("windowing strategy") nach [HS95] dar. Sie sortiert einen Datenbestand nach dem Schlüssel ("Key")-Attribut mit dem größten Unterschied und vergleicht alle Records innerhalb eines fliessenden Fensters („sliding Window“) in der aussortierten Ordnung . Die Effektivität dieses Ansatzes hängt stark von der Qualität des gewählten Schlüssels ab.
Poor chosen keys will result in a poor quality merge
Die „Sorted-Neighbourhood“-Methode kann in 3 Phasen zusammengefasst werden:
Bei sehr großen Datenmengen empfiehlt sich ein vorheriges Clustern des Datenbestandes. Dabei wird der Datenbestand in Sequenzen durchsucht, wobei ein n-attributiger Schlüssel (Bsp. Nachname+1.Buchstabe des Vornamens) extrahiert und in den n-dimensionalen Clusterraum abgebildet wird.
Da auch dieses gewählte Attribut einen Fehler besitzen kann, ist ein einzelnes Schlüsselattribut zu wenig. Um demnach Fehler im Hauptschlüssel auszuschließen, schlägt [HS95] folgende Methoden vor:
Als Grenzwerte sind hier die Schlüsselanzahl j sowie die Fenstergröße w anzugeben. Damit errechnet sich für n Datensätze eine Komplexität von , wobei für die Sortierung benötigt wird.
Diese Methode basiert auf Bigramme (in [SprachSynth06] auch Diphone oder Halblaute genannt). Die Grundidee dabei besteht darin, dass nach der Indexerstellung die Werte der Blockiervariablen in eine Liste von Bigramme (Diphone, Halblaute) konvertiert werden, welche alphabetisch sortiert und von Duplikaten bereinigt werden. Nun werden Sub-listen erstellt, für welche ein benutzerdefinierte Untergrenze (eine Zahl zw. 0.0 und 1.0) für alle möglichen Kombinationen gegeben wird.
schade, ueberschrieben, morgen neu machenBeispiel: Der String 'dresden' würde die Bigram-Liste ['dr','re','es','sd','de','en'] mit sechs Elementen ergeben. Es würde sortiert zu ['de','dr','en','es','re','sd'], und bei einer Untergrenze von 0.8 ergebe dies 6 * 0.8 = 4.8, gerundet 5, was bedeutet, dass alle Kombinationen der Länge 5 berrechnet werden. Für das gegebene Beispiel
['de','dr','en','es','re']
['de','dr','en','es','sd']
['de','dr','es','re','sd']
['de','en','es','re','sd']
['de','dr','en','re','sd']
['dr','en','es','re','sd']
Damit wird die korrespondierende Datensatz-Nummer mit den Schlüsseln 'dedrenesre', 'dedrenessd', 'dedresresd', 'dedrenresd', 'drenesresd' und 'deenesresd' in die invertierten Index-Blöcke eingefügt.
Je geringer die Untergrenze, desto kürzer die Sub-Liste, aber umso mehr Sub-Listen gibt es pro Feldwert, was zu mehr (kleineren) Blöcken im invertierten Index führt.
Als Grenzwerte kann hier die Anzahl der übereinstimmenden Bigramme T1 sowie die allgemeine Bigramm-Länge T2 identifiziert werden.
Daraus ergibt sich, wie beim Standard-Blocking, die Komplexität von O(n²/b) [tailor02], wobei b die Anzahl der zu vergleichenden Blöcke darstellt.
Als Grenzwerte kann hier die Anzahl der übereinstimmenden Bigramme sowie die allgemeine Bigramm-Länge identifiziert werden. Daraus ergibt sich, wie beim Standard-Blocking, die Komplexität von [tailor02], wobei b die Anzahl der zu vergleichenden Blöcke darstellt.
Diese besteht aus 2 Schritten, wobei der 1. Schritt einen Blockieralgorithmus in der Form darstellt, daß er über eine billige Distanzmessung die Entitäten in n>= 1 sich überlappende, sog. Canopy (engl. „Abdeckhaube“) einteilt. Dazu wird aus der Liste der Datensätze ein beliebiger Eintrag genommen und mit allen anderen Einträgen der Liste verglichen (bspw. nach der Anzahl identischer Attribute). Alle Datensätze innerhalb der Distanz werden dabei in ein Canopy gegeben. Alle Datensätze innerhalb der Distanz werden von der Liste gelöscht. Dies wird wiederholt, bis die Liste leer ist.
Dadurch werden Nachteile des Grobblockings bzw. Sliding-Windows ausgeräumt, wie ein mögliches Paar außerhalb der Fenstergröße.
Die „Term-frequency-inverse data frequency“ (TF-IDF) Cosinus Ähnlichkeit ist eine billige Distanzmessungen, um sich überlappende Datensatz-Cluster zu erstellen. Es basiert auf der Auftrittshäufigkeit einzelner Terme und wird im Abschnitt [TDIDF] näher behandelt.
Im 2. Schritt werde daraufhin mit einer teureren Distanzmessung nur Punkt-Paare verglichen, welche sich im selben Canopy befinden.
Bei diesem Ansatz können 3 Parameter gesetzt werden: während Stufe 1 der Loose-Grenzwert (T1) und der Tight-Grenzwert (T2) . Bei Verwendung des GAC (siehe unten), 3. Parameter der Stopp-Parameter, bei dessen erreichen keine weitere Iteration ausgeführt wird.
Die Berechnungskomplexität kann bei Nutzung der invertierten Liste für Schritt 2 wie folgt dargestellt werden
Loose und Tight sollten so gewählt werden, daß n gering und |V| möglichst groß ist, um den Umfang der Berechnung zu verringern. bei zu großen Werten können typographische Fehler nicht mehr erkannt werden.
Vergleichsmessungen, durchgeführt in [Kdd03]. Die Ergebniss-Anzahl bei Standard-Blocking können großen Schwankungen unterliegen und nehmen mit zunehmenden Blockierschlüsseln rapide ab. Kleinere Blöcke bedeuten dabei zwar weniger Vergleiche, schliessen jedoch ebenso mehr korrekte Paare aus.
Sorted-Neighbourhood-Methoden verhindern diese Extreme in der Performance des Standard Blockings und erlauben ein vorhersehbares Verhalten durch Erhöhung der Fenstergröße w. Durch größere Fenster erhöht sich die Paar-Vollständigkeit in den Ergebnissen, doch das Reduktionsverhältnis sinkt.
Mit gut gewählten Parametern sind jedoch sowohl Bigramm- als auch Canopies-Clustering signifikant performanter. Bei Ersterem wird eine Bigram-Vergleichsanzahl von 3 - 4 empfohlen, der Schwellwert für Canopy sollte um 1.5 liegen.
. | Komplexität | korrekte Negative | falsche Positive |
Standard-Blocking | n²/b | ++ | ++ |
Sliding Window | n log n + wn | + | + |
Bigramme | n²/b | - | + |
Canopy | nw²/count(V) | - | + |
Aus Gründen der Effizienz und Skalierbarkeit soll ein Vergleich aller Tupel in jeder Relation verhindert werden. Analog zu Schritt 2 aus dem Abschnitt "Strukturanalyse" wird daher für jeden Datensatz der Suchraum zur Ableitung möglicher Abbildungen begrenzt.
Da in der Menge A×B im Allgemeinen viel mehr Nicht-Treffer als Treffer zu erwarten sind (u(γ)≫m(γ)), werden für einen Datensatz die Vergleichsdatensätze entfernt, welche auf keinen Fall zutreffen. Eine Vielzahl von Methoden haben als Aufgabe, die Rechenkosten der Namensfindung gering zu halten, indem eine erste Grobauswahl aus dem Gesamtdatenbestand isoliert wird. Sets von geordneten Paaren , auf denen der Fellegi-Sunter Verlinkungsalgorithmus Anwendung findet, sind daher mit „Blockierkriterien“ bzw. Sortierschlüssel belegt.
Man nehme als Beispiel ein Tupel-Set, in welchem eine Telefonnummer vorhanden ist. Diese Telefonnummer kann in Verbindung mit einigen wenigen Zeichen des Namens zur Bestimmung von Verlinkungen nutzen. Bei anderen Paaren mögen zusätzlich die Informationen zu Straßennamen und Stadtnamen zugrunde gelegt werden.
Standard-Blocking
Der traditionelle Blockier-Algorithmus gruppiert Datensätze, wenn diese den selben Inhalt in einer Blockiervariable besitzen, also bspw. den identischen Eintrag für Stadt und Nachname in einem Datensatz. Blockierkriterien müssen dabei gut gewählt werden, da bei zu allgemeinen Auswahlschlüsseln die Menge näher zu untersuchender Datensätze zu hoch ist (korrekte Negative), bei einer zu engen jedoch passende Datensätze ausgesperrt bleiben könnten (falsche Positive).
Ebenfalls muss die Fehler-Charakteristik des gewählten Schlüssels bekannt und ein Fehlerauftritt minimal sein. Durch die Verwendung multipler Blockierschlüssel kann der Fehler in einem der Schlüssel abgemildert werden. Die Berechnungskomplexität ist pro gewählten Schlüssel, O(h(n)+n²/b), wobei h(n) = n log n bei sortierter Blocking-Menge, h(n) = n bei blocking durch hashing. Die Ergebnissmengen sind allerdings nur schwer abzuschätzen.
Sorted-Neighbourhood / sliding window
Eine Weiterentwicklung stellt die Sorted-Neighbourhood- oder Fenster- Strategie ("windowing strategy") nach [HS95] dar. Sie sortiert einen Datenbestand nach dem Schlüssel ("Key")-Attribut mit dem größten Unterschied und vergleicht alle Records innerhalb eines fliessenden Fensters („sliding Window“) in der aussortierten Ordnung . Die Effektivität dieses Ansatzes hängt stark von der Qualität des gewählten Schlüssels ab.
Poor chosen keys will result in a poor quality merge
Die „Sorted-Neighbourhood“-Methode kann in 3 Phasen zusammengefasst werden:
Bei sehr großen Datenmengen empfiehlt sich ein vorheriges Clustern des Datenbestandes. Dabei wird der Datenbestand in Sequenzen durchsucht, wobei ein n-attributiger Schlüssel (Bsp. Nachname+1.Buchstabe des Vornamens) extrahiert und in den n-dimensionalen Clusterraum abgebildet wird.
Da auch dieses gewählte Attribut einen Fehler besitzen kann, ist ein einzelnes Schlüsselattribut zu wenig. Um demnach Fehler im Hauptschlüssel auszuschließen, schlägt [HS95] folgende Methoden vor:
Als Grenzwerte sind hier die Schlüsselanzahl j sowie die Fenstergröße w anzugeben. Damit errechnet sich für n Datensätze eine Komplexität von , wobei für die Sortierung benötigt wird.
Fuzzy Blocking / Bigramm-Indexing
Diese Methode basiert auf Bigramme (in [SprachSynth06] auch Diphone oder Halblaute genannt). Die Grundidee dabei besteht darin, dass nach der Indexerstellung die Werte der Blockiervariablen in eine Liste von Bigramme (Diphone, Halblaute) konvertiert werden, welche alphabetisch sortiert und von Duplikaten bereinigt werden. Nun werden Sub-listen erstellt, für welche ein benutzerdefinierte Untergrenze (eine Zahl zw. 0.0 und 1.0) für alle möglichen Kombinationen gegeben wird.
Beispiel: Der String 'dresden' würde die Bigram-Liste ['dr','re','es','sd','de','en'] mit sechs Elementen ergeben. Es würde sortiert zu ['de','dr','en','es','re','sd'], und bei einer Untergrenze von 0.8 ergebe dies 6 * 0.8 = 4.8, gerundet 5, was bedeutet, dass alle Kombinationen der Länge 5 berrechnet werden. Für das gegebene Beispiel
['de','dr','en','es','re']
['de','dr','en','es','sd']
['de','dr','es','re','sd']
['de','en','es','re','sd']
['de','dr','en','re','sd']
['dr','en','es','re','sd']
Damit wird die korrespondierende Datensatz-Nummer mit den Schlüsseln 'dedrenesre', 'dedrenessd', 'dedresresd', 'dedrenresd', 'drenesresd' und 'deenesresd' in die invertierten Index-Blöcke eingefügt.
Je geringer die Untergrenze, desto kürzer die Sub-Liste, aber umso mehr Sub-Listen gibt es pro Feldwert, was zu mehr (kleineren) Blöcken im invertierten Index führt.
Als Grenzwerte kann hier die Anzahl der übereinstimmenden Bigramme T1 sowie die allgemeine Bigramm-Länge T2 identifiziert werden.
Daraus ergibt sich, wie beim Standard-Blocking, die Komplexität von O(n²/b) [tailor02], wobei b die Anzahl der zu vergleichenden Blöcke darstellt.
Canopy-Methode
Als Grenzwerte kann hier die Anzahl der übereinstimmenden Bigramme sowie die allgemeine Bigramm-Länge identifiziert werden. Daraus ergibt sich, wie beim Standard-Blocking, die Komplexität von [tailor02], wobei b die Anzahl der zu vergleichenden Blöcke darstellt.
Diese besteht aus 2 Schritten, wobei der 1. Schritt einen Blockieralgorithmus in der Form darstellt, daß er über eine billige Distanzmessung die Entitäten in n>= 1 sich überlappende, sog. Canopy (engl. „Abdeckhaube“) einteilt. Dazu wird aus der Liste der Datensätze ein beliebiger Eintrag genommen und mit allen anderen Einträgen der Liste verglichen (bspw. nach der Anzahl identischer Attribute). Alle Datensätze innerhalb der Distanz werden dabei in ein Canopy gegeben. Alle Datensätze innerhalb der Distanz werden von der Liste gelöscht. Dies wird wiederholt, bis die Liste leer ist.
Dadurch werden Nachteile des Grobblockings bzw. Sliding-Windows ausgeräumt, wie ein mögliches Paar außerhalb der Fenstergröße.
Die „Term-frequency-inverse data frequency“ (TF-IDF) Cosinus Ähnlichkeit ist eine billige Distanzmessungen, um sich überlappende Datensatz-Cluster zu erstellen. Es basiert auf der Auftrittshäufigkeit einzelner Terme und wird im Abschnitt [TDIDF] näher behandelt.
Im 2. Schritt werde daraufhin mit einer teureren Distanzmessung nur Punkt-Paare verglichen, welche sich im selben Canopy befinden.
Bei diesem Ansatz können 3 Parameter gesetzt werden: während Stufe 1 der Loose-Grenzwert (T1) und der Tight-Grenzwert (T2) . Bei Verwendung des GAC (siehe unten), 3. Parameter der Stopp-Parameter, bei dessen erreichen keine weitere Iteration ausgeführt wird.
Die Berechnungskomplexität kann bei Nutzung der invertierten Liste für Schritt 2 wie folgt dargestellt werden
Loose und Tight sollten so gewählt werden, daß n gering und |V| möglichst groß ist, um den Umfang der Berechnung zu verringern. bei zu großen Werten können typographische Fehler nicht mehr erkannt werden.
Zusammenfassung
Vergleichsmessungen, durchgeführt in [Kdd03]. Die Ergebniss-Anzahl bei Standard-Blocking können großen Schwankungen unterliegen und nehmen mit zunehmenden Blockierschlüsseln rapide ab. Kleinere Blöcke bedeuten dabei zwar weniger Vergleiche, schliessen jedoch ebenso mehr korrekte Paare aus.
Sorted-Neighbourhood-Methoden verhindern diese Extreme in der Performance des Standard Blockings und erlauben ein vorhersehbares Verhalten durch Erhöhung der Fenstergröße w. Durch größere Fenster erhöht sich die Paar-Vollständigkeit in den Ergebnissen, doch das Reduktionsverhältnis sinkt.
Mit gut gewählten Parametern sind jedoch sowohl Bigramm- als auch Canopies-Clustering signifikant performanter. Bei Ersterem wird eine Bigram-Vergleichsanzahl von 3 - 4 empfohlen, der Schwellwert für Canopy sollte um 1.5 liegen.
. | Komplexität | korrekte Negative | falsche Positive |
Standard-Blocking | n²/b | ++ | ++ |
Sliding Window | n log n + wn | + | + |
Bigramme | n²/b | - | + |
Canopy | nw²/count(V) | - | + |
Aus Gründen der Effizienz und Skalierbarkeit soll ein Vergleich aller Tupel in jeder Relation verhindert werden. Analog zu Schritt 2 aus dem Abschnitt "Strukturanalyse" wird daher für jeden Datensatz der Suchraum zur Ableitung möglicher Abbildungen begrenzt.
Da in der Menge A×B im Allgemeinen viel mehr Nicht-Treffer als Treffer zu erwarten sind (u(γ)≫m(γ)), werden für einen Datensatz die Vergleichsdatensätze entfernt, welche auf keinen Fall zutreffen. Eine Vielzahl von Methoden haben als Aufgabe, die Rechenkosten der Namensfindung gering zu halten, indem eine erste Grobauswahl aus dem Gesamtdatenbestand isoliert wird. Sets von geordneten Paaren , auf denen der Fellegi-Sunter Verlinkungsalgorithmus Anwendung findet, sind daher mit „Blockierkriterien“ bzw. Sortierschlüssel belegt.
Man nehme als Beispiel ein Tupel-Set, in welchem eine Telefonnummer vorhanden ist. Diese Telefonnummer kann in Verbindung mit einigen wenigen Zeichen des Namens zur Bestimmung von Verlinkungen nutzen. Bei anderen Paaren mögen zusätzlich die Informationen zu Straßennamen und Stadtnamen zugrunde gelegt werden.
Standard-Blocking
Der traditionelle Blockier-Algorithmus gruppiert Datensätze, wenn diese den selben Inhalt in einer Blockiervariable besitzen, also bspw. den identischen Eintrag für Stadt und Nachname in einem Datensatz. Blockierkriterien müssen dabei gut gewählt werden, da bei zu allgemeinen Auswahlschlüsseln die Menge näher zu untersuchender Datensätze zu hoch ist (korrekte Negative), bei einer zu engen jedoch passende Datensätze ausgesperrt bleiben könnten (falsche Positive).
Ebenfalls muss die Fehler-Charakteristik des gewählten Schlüssels bekannt und ein Fehlerauftritt minimal sein. Durch die Verwendung multipler Blockierschlüssel kann der Fehler in einem der Schlüssel abgemildert werden. Die Berechnungskomplexität ist pro gewählten Schlüssel, O(h(n)+n²/b), wobei h(n) = n log n bei sortierter Blocking-Menge, h(n) = n bei blocking durch hashing. Die Ergebnissmengen sind allerdings nur schwer abzuschätzen.
Sorted-Neighbourhood / sliding window
Eine Weiterentwicklung stellt die Sorted-Neighbourhood- oder Fenster- Strategie ("windowing strategy") nach [HS95] dar. Sie sortiert einen Datenbestand nach dem Schlüssel ("Key")-Attribut mit dem größten Unterschied und vergleicht alle Records innerhalb eines fliessenden Fensters („sliding Window“) in der aussortierten Ordnung . Die Effektivität dieses Ansatzes hängt stark von der Qualität des gewählten Schlüssels ab.
Poor chosen keys will result in a poor quality merge
Die „Sorted-Neighbourhood“-Methode kann in 3 Phasen zusammengefasst werden:
Bei sehr großen Datenmengen empfiehlt sich ein vorheriges Clustern des Datenbestandes. Dabei wird der Datenbestand in Sequenzen durchsucht, wobei ein n-attributiger Schlüssel (Bsp. Nachname+1.Buchstabe des Vornamens) extrahiert und in den n-dimensionalen Clusterraum abgebildet wird.
Da auch dieses gewählte Attribut einen Fehler besitzen kann, ist ein einzelnes Schlüsselattribut zu wenig. Um demnach Fehler im Hauptschlüssel auszuschließen, schlägt [HS95] folgende Methoden vor:
Als Grenzwerte sind hier die Schlüsselanzahl j sowie die Fenstergröße w anzugeben. Damit errechnet sich für n Datensätze eine Komplexität von , wobei für die Sortierung benötigt wird.
Fuzzy Blocking / Bigramm-Indexing
Diese Methode basiert auf Bigramme (in [SprachSynth06] auch Diphone oder Halblaute genannt). Die Grundidee dabei besteht darin, dass nach der Indexerstellung die Werte der Blockiervariablen in eine Liste von Bigramme (Diphone, Halblaute) konvertiert werden, welche alphabetisch sortiert und von Duplikaten bereinigt werden. Nun werden Sub-listen erstellt, für welche ein benutzerdefinierte Untergrenze (eine Zahl zw. 0.0 und 1.0) für alle möglichen Kombinationen gegeben wird.
Beispiel: Der String 'dresden' würde die Bigram-Liste ['dr','re','es','sd','de','en'] mit sechs Elementen ergeben. Es würde sortiert zu ['de','dr','en','es','re','sd'], und bei einer Untergrenze von 0.8 ergebe dies 6 * 0.8 = 4.8, gerundet 5, was bedeutet, dass alle Kombinationen der Länge 5 berrechnet werden. Für das gegebene Beispiel
['de','dr','en','es','re']
['de','dr','en','es','sd']
['de','dr','es','re','sd']
['de','en','es','re','sd']
['de','dr','en','re','sd']
['dr','en','es','re','sd']
Damit wird die korrespondierende Datensatz-Nummer mit den Schlüsseln 'dedrenesre', 'dedrenessd', 'dedresresd', 'dedrenresd', 'drenesresd' und 'deenesresd' in die invertierten Index-Blöcke eingefügt.
Je geringer die Untergrenze, desto kürzer die Sub-Liste, aber umso mehr Sub-Listen gibt es pro Feldwert, was zu mehr (kleineren) Blöcken im invertierten Index führt.
Als Grenzwerte kann hier die Anzahl der übereinstimmenden Bigramme T1 sowie die allgemeine Bigramm-Länge T2 identifiziert werden.
Daraus ergibt sich, wie beim Standard-Blocking, die Komplexität von O(n²/b) [tailor02], wobei b die Anzahl der zu vergleichenden Blöcke darstellt.
Canopy-Methode
Als Grenzwerte kann hier die Anzahl der übereinstimmenden Bigramme sowie die allgemeine Bigramm-Länge identifiziert werden. Daraus ergibt sich, wie beim Standard-Blocking, die Komplexität von [tailor02], wobei b die Anzahl der zu vergleichenden Blöcke darstellt.
Diese besteht aus 2 Schritten, wobei der 1. Schritt einen Blockieralgorithmus in der Form darstellt, daß er über eine billige Distanzmessung die Entitäten in n>= 1 sich überlappende, sog. Canopy (engl. „Abdeckhaube“) einteilt. Dazu wird aus der Liste der Datensätze ein beliebiger Eintrag genommen und mit allen anderen Einträgen der Liste verglichen (bspw. nach der Anzahl identischer Attribute). Alle Datensätze innerhalb der Distanz werden dabei in ein Canopy gegeben. Alle Datensätze innerhalb der Distanz werden von der Liste gelöscht. Dies wird wiederholt, bis die Liste leer ist.
Dadurch werden Nachteile des Grobblockings bzw. Sliding-Windows ausgeräumt, wie ein mögliches Paar außerhalb der Fenstergröße.
Die „Term-frequency-inverse data frequency“ (TF-IDF) Cosinus Ähnlichkeit ist eine billige Distanzmessungen, um sich überlappende Datensatz-Cluster zu erstellen. Es basiert auf der Auftrittshäufigkeit einzelner Terme und wird im Abschnitt [TDIDF] näher behandelt.
Im 2. Schritt werde daraufhin mit einer teureren Distanzmessung nur Punkt-Paare verglichen, welche sich im selben Canopy befinden.
Bei diesem Ansatz können 3 Parameter gesetzt werden: während Stufe 1 der Loose-Grenzwert (T1) und der Tight-Grenzwert (T2) . Bei Verwendung des GAC (siehe unten), 3. Parameter der Stopp-Parameter, bei dessen erreichen keine weitere Iteration ausgeführt wird.
Die Berechnungskomplexität kann bei Nutzung der invertierten Liste für Schritt 2 wie folgt dargestellt werden
Loose und Tight sollten so gewählt werden, daß n gering und |V| möglichst groß ist, um den Umfang der Berechnung zu verringern. bei zu großen Werten können typographische Fehler nicht mehr erkannt werden.
Zusammenfassung
Vergleichsmessungen, durchgeführt in [Kdd03]. Die Ergebniss-Anzahl bei Standard-Blocking können großen Schwankungen unterliegen und nehmen mit zunehmenden Blockierschlüsseln rapide ab. Kleinere Blöcke bedeuten dabei zwar weniger Vergleiche, schliessen jedoch ebenso mehr korrekte Paare aus.
Sorted-Neighbourhood-Methoden verhindern diese Extreme in der Performance des Standard Blockings und erlauben ein vorhersehbares Verhalten durch Erhöhung der Fenstergröße w. Durch größere Fenster erhöht sich die Paar-Vollständigkeit in den Ergebnissen, doch das Reduktionsverhältnis sinkt.
Mit gut gewählten Parametern sind jedoch sowohl Bigramm- als auch Canopies-Clustering signifikant performanter. Bei Ersterem wird eine Bigram-Vergleichsanzahl von 3 - 4 empfohlen, der Schwellwert für Canopy sollte um 1.5 liegen.
. | Komplexität | korrekte Negative | falsche Positive |
Standard-Blocking | n²/b | ++ | ++ |
Sliding Window | n log n + wn | + | + |
Bigramme | n²/b | - | + |
Canopy | nw²/count(V) | - | + |
Aus Gründen der Effizienz und Skalierbarkeit soll ein Vergleich aller Tupel in jeder Relation verhindert werden. Analog zu Schritt 2 aus dem Abschnitt "Strukturanalyse" wird daher für jeden Datensatz der Suchraum zur Ableitung möglicher Abbildungen begrenzt.
Da in der Menge A×B im Allgemeinen viel mehr Nicht-Treffer als Treffer zu erwarten sind (u(γ)≫m(γ)), werden für einen Datensatz die Vergleichsdatensätze entfernt, welche auf keinen Fall zutreffen. Eine Vielzahl von Methoden haben als Aufgabe, die Rechenkosten der Namensfindung gering zu halten, indem eine erste Grobauswahl aus dem Gesamtdatenbestand isoliert wird. Sets von geordneten Paaren , auf denen der Fellegi-Sunter Verlinkungsalgorithmus Anwendung findet, sind daher mit „Blockierkriterien“ bzw. Sortierschlüssel belegt.
Man nehme als Beispiel ein Tupel-Set, in welchem eine Telefonnummer vorhanden ist. Diese Telefonnummer kann in Verbindung mit einigen wenigen Zeichen des Namens zur Bestimmung von Verlinkungen nutzen. Bei anderen Paaren mögen zusätzlich die Informationen zu Straßennamen und Stadtnamen zugrunde gelegt werden.
Standard-Blocking
Der traditionelle Blockier-Algorithmus gruppiert Datensätze, wenn diese den selben Inhalt in einer Blockiervariable besitzen, also bspw. den identischen Eintrag für Stadt und Nachname in einem Datensatz. Blockierkriterien müssen dabei gut gewählt werden, da bei zu allgemeinen Auswahlschlüsseln die Menge näher zu untersuchender Datensätze zu hoch ist (korrekte Negative), bei einer zu engen jedoch passende Datensätze ausgesperrt bleiben könnten (falsche Positive).
Ebenfalls muss die Fehler-Charakteristik des gewählten Schlüssels bekannt und ein Fehlerauftritt minimal sein. Durch die Verwendung multipler Blockierschlüssel kann der Fehler in einem der Schlüssel abgemildert werden. Die Berechnungskomplexität ist pro gewählten Schlüssel, O(h(n)+n²/b), wobei h(n) = n log n bei sortierter Blocking-Menge, h(n) = n bei blocking durch hashing. Die Ergebnissmengen sind allerdings nur schwer abzuschätzen.
Sorted-Neighbourhood / sliding window
Eine Weiterentwicklung stellt die Sorted-Neighbourhood- oder Fenster- Strategie ("windowing strategy") nach [HS95] dar. Sie sortiert einen Datenbestand nach dem Schlüssel ("Key")-Attribut mit dem größten Unterschied und vergleicht alle Records innerhalb eines fliessenden Fensters („sliding Window“) in der aussortierten Ordnung . Die Effektivität dieses Ansatzes hängt stark von der Qualität des gewählten Schlüssels ab.
Poor chosen keys will result in a poor quality merge
Die „Sorted-Neighbourhood“-Methode kann in 3 Phasen zusammengefasst werden:
Bei sehr großen Datenmengen empfiehlt sich ein vorheriges Clustern des Datenbestandes. Dabei wird der Datenbestand in Sequenzen durchsucht, wobei ein n-attributiger Schlüssel (Bsp. Nachname+1.Buchstabe des Vornamens) extrahiert und in den n-dimensionalen Clusterraum abgebildet wird.
Da auch dieses gewählte Attribut einen Fehler besitzen kann, ist ein einzelnes Schlüsselattribut zu wenig. Um demnach Fehler im Hauptschlüssel auszuschließen, schlägt [HS95] folgende Methoden vor:
Als Grenzwerte sind hier die Schlüsselanzahl j sowie die Fenstergröße w anzugeben. Damit errechnet sich für n Datensätze eine Komplexität von , wobei für die Sortierung benötigt wird.
Fuzzy Blocking / Bigramm-Indexing
Diese Methode basiert auf Bigramme (in [SprachSynth06] auch Diphone oder Halblaute genannt). Die Grundidee dabei besteht darin, dass nach der Indexerstellung die Werte der Blockiervariablen in eine Liste von Bigramme (Diphone, Halblaute) konvertiert werden, welche alphabetisch sortiert und von Duplikaten bereinigt werden. Nun werden Sub-listen erstellt, für welche ein benutzerdefinierte Untergrenze (eine Zahl zw. 0.0 und 1.0) für alle möglichen Kombinationen gegeben wird.
Beispiel: Der String 'dresden' würde die Bigram-Liste ['dr','re','es','sd','de','en'] mit sechs Elementen ergeben. Es würde sortiert zu ['de','dr','en','es','re','sd'], und bei einer Untergrenze von 0.8 ergebe dies 6 * 0.8 = 4.8, gerundet 5, was bedeutet, dass alle Kombinationen der Länge 5 berrechnet werden. Für das gegebene Beispiel
['de','dr','en','es','re']
['de','dr','en','es','sd']
['de','dr','es','re','sd']
['de','en','es','re','sd']
['de','dr','en','re','sd']
['dr','en','es','re','sd']
Damit wird die korrespondierende Datensatz-Nummer mit den Schlüsseln 'dedrenesre', 'dedrenessd', 'dedresresd', 'dedrenresd', 'drenesresd' und 'deenesresd' in die invertierten Index-Blöcke eingefügt.
Je geringer die Untergrenze, desto kürzer die Sub-Liste, aber umso mehr Sub-Listen gibt es pro Feldwert, was zu mehr (kleineren) Blöcken im invertierten Index führt.
Als Grenzwerte kann hier die Anzahl der übereinstimmenden Bigramme T1 sowie die allgemeine Bigramm-Länge T2 identifiziert werden.
Daraus ergibt sich, wie beim Standard-Blocking, die Komplexität von O(n²/b) [tailor02], wobei b die Anzahl der zu vergleichenden Blöcke darstellt.
Canopy-Methode
Als Grenzwerte kann hier die Anzahl der übereinstimmenden Bigramme sowie die allgemeine Bigramm-Länge identifiziert werden. Daraus ergibt sich, wie beim Standard-Blocking, die Komplexität von [tailor02], wobei b die Anzahl der zu vergleichenden Blöcke darstellt.
Diese besteht aus 2 Schritten, wobei der 1. Schritt einen Blockieralgorithmus in der Form darstellt, daß er über eine billige Distanzmessung die Entitäten in n>= 1 sich überlappende, sog. Canopy (engl. „Abdeckhaube“) einteilt. Dazu wird aus der Liste der Datensätze ein beliebiger Eintrag genommen und mit allen anderen Einträgen der Liste verglichen (bspw. nach der Anzahl identischer Attribute). Alle Datensätze innerhalb der Distanz werden dabei in ein Canopy gegeben. Alle Datensätze innerhalb der Distanz werden von der Liste gelöscht. Dies wird wiederholt, bis die Liste leer ist.
Dadurch werden Nachteile des Grobblockings bzw. Sliding-Windows ausgeräumt, wie ein mögliches Paar außerhalb der Fenstergröße.
Die „Term-frequency-inverse data frequency“ (TF-IDF) Cosinus Ähnlichkeit ist eine billige Distanzmessungen, um sich überlappende Datensatz-Cluster zu erstellen. Es basiert auf der Auftrittshäufigkeit einzelner Terme und wird im Abschnitt [TDIDF] näher behandelt.
Im 2. Schritt werde daraufhin mit einer teureren Distanzmessung nur Punkt-Paare verglichen, welche sich im selben Canopy befinden.
Bei diesem Ansatz können 3 Parameter gesetzt werden: während Stufe 1 der Loose-Grenzwert (T1) und der Tight-Grenzwert (T2) . Bei Verwendung des GAC (siehe unten), 3. Parameter der Stopp-Parameter, bei dessen erreichen keine weitere Iteration ausgeführt wird.
Die Berechnungskomplexität kann bei Nutzung der invertierten Liste für Schritt 2 wie folgt dargestellt werden
Loose und Tight sollten so gewählt werden, daß n gering und |V| möglichst groß ist, um den Umfang der Berechnung zu verringern. bei zu großen Werten können typographische Fehler nicht mehr erkannt werden.
Zusammenfassung
Vergleichsmessungen, durchgeführt in [Kdd03]. Die Ergebniss-Anzahl bei Standard-Blocking können großen Schwankungen unterliegen und nehmen mit zunehmenden Blockierschlüsseln rapide ab. Kleinere Blöcke bedeuten dabei zwar weniger Vergleiche, schliessen jedoch ebenso mehr korrekte Paare aus.
Sorted-Neighbourhood-Methoden verhindern diese Extreme in der Performance des Standard Blockings und erlauben ein vorhersehbares Verhalten durch Erhöhung der Fenstergröße w. Durch größere Fenster erhöht sich die Paar-Vollständigkeit in den Ergebnissen, doch das Reduktionsverhältnis sinkt.
Mit gut gewählten Parametern sind jedoch sowohl Bigramm- als auch Canopies-Clustering signifikant performanter. Bei Ersterem wird eine Bigram-Vergleichsanzahl von 3 - 4 empfohlen, der Schwellwert für Canopy sollte um 1.5 liegen.
. | Komplexität | korrekte Negative | falsche Positive |
Standard-Blocking | n²/b | ++ | ++ |
Sliding Window | n log n + wn | + | + |
Bigramme | n²/b | - | + |
Canopy | nw²/count(V) | - | + |
Aus Gründen der Effizienz und Skalierbarkeit soll ein Vergleich aller Tupel in jeder Relation verhindert werden. Analog zu Schritt 2 aus dem Abschnitt "Strukturanalyse" wird daher für jeden Datensatz der Suchraum zur Ableitung möglicher Abbildungen begrenzt.
Da in der Menge A×B im Allgemeinen viel mehr Nicht-Treffer als Treffer zu erwarten sind (u(γ)≫m(γ)), werden für einen Datensatz die Vergleichsdatensätze entfernt, welche auf keinen Fall zutreffen. Eine Vielzahl von Methoden haben als Aufgabe, die Rechenkosten der Namensfindung gering zu halten, indem eine erste Grobauswahl aus dem Gesamtdatenbestand isoliert wird. Sets von geordneten Paaren , auf denen der Fellegi-Sunter Verlinkungsalgorithmus Anwendung findet, sind daher mit „Blockierkriterien“ bzw. Sortierschlüssel belegt.
Man nehme als Beispiel ein Tupel-Set, in welchem eine Telefonnummer vorhanden ist. Diese Telefonnummer kann in Verbindung mit einigen wenigen Zeichen des Namens zur Bestimmung von Verlinkungen nutzen. Bei anderen Paaren mögen zusätzlich die Informationen zu Straßennamen und Stadtnamen zugrunde gelegt werden.
Standard-Blocking
Der traditionelle Blockier-Algorithmus gruppiert Datensätze, wenn diese den selben Inhalt in einer Blockiervariable besitzen, also bspw. den identischen Eintrag für Stadt und Nachname in einem Datensatz. Blockierkriterien müssen dabei gut gewählt werden, da bei zu allgemeinen Auswahlschlüsseln die Menge näher zu untersuchender Datensätze zu hoch ist (korrekte Negative), bei einer zu engen jedoch passende Datensätze ausgesperrt bleiben könnten (falsche Positive).
Ebenfalls muss die Fehler-Charakteristik des gewählten Schlüssels bekannt und ein Fehlerauftritt minimal sein. Durch die Verwendung multipler Blockierschlüssel kann der Fehler in einem der Schlüssel abgemildert werden. Die Berechnungskomplexität ist pro gewählten Schlüssel, O(h(n)+n²/b), wobei h(n) = n log n bei sortierter Blocking-Menge, h(n) = n bei blocking durch hashing. Die Ergebnissmengen sind allerdings nur schwer abzuschätzen.
Sorted-Neighbourhood / sliding window
Eine Weiterentwicklung stellt die Sorted-Neighbourhood- oder Fenster- Strategie ("windowing strategy") nach [HS95] dar. Sie sortiert einen Datenbestand nach dem Schlüssel ("Key")-Attribut mit dem größten Unterschied und vergleicht alle Records innerhalb eines fliessenden Fensters („sliding Window“) in der aussortierten Ordnung . Die Effektivität dieses Ansatzes hängt stark von der Qualität des gewählten Schlüssels ab.
Poor chosen keys will result in a poor quality merge
Die „Sorted-Neighbourhood“-Methode kann in 3 Phasen zusammengefasst werden:
Bei sehr großen Datenmengen empfiehlt sich ein vorheriges Clustern des Datenbestandes. Dabei wird der Datenbestand in Sequenzen durchsucht, wobei ein n-attributiger Schlüssel (Bsp. Nachname+1.Buchstabe des Vornamens) extrahiert und in den n-dimensionalen Clusterraum abgebildet wird.
Da auch dieses gewählte Attribut einen Fehler besitzen kann, ist ein einzelnes Schlüsselattribut zu wenig. Um demnach Fehler im Hauptschlüssel auszuschließen, schlägt [HS95] folgende Methoden vor:
Als Grenzwerte sind hier die Schlüsselanzahl j sowie die Fenstergröße w anzugeben. Damit errechnet sich für n Datensätze eine Komplexität von , wobei für die Sortierung benötigt wird.
Fuzzy Blocking / Bigramm-Indexing
Diese Methode basiert auf Bigramme (in [SprachSynth06] auch Diphone oder Halblaute genannt). Die Grundidee dabei besteht darin, dass nach der Indexerstellung die Werte der Blockiervariablen in eine Liste von Bigramme (Diphone, Halblaute) konvertiert werden, welche alphabetisch sortiert und von Duplikaten bereinigt werden. Nun werden Sub-listen erstellt, für welche ein benutzerdefinierte Untergrenze (eine Zahl zw. 0.0 und 1.0) für alle möglichen Kombinationen gegeben wird.
Beispiel: Der String 'dresden' würde die Bigram-Liste ['dr','re','es','sd','de','en'] mit sechs Elementen ergeben. Es würde sortiert zu ['de','dr','en','es','re','sd'], und bei einer Untergrenze von 0.8 ergebe dies 6 * 0.8 = 4.8, gerundet 5, was bedeutet, dass alle Kombinationen der Länge 5 berrechnet werden. Für das gegebene Beispiel
['de','dr','en','es','re']
['de','dr','en','es','sd']
['de','dr','es','re','sd']
['de','en','es','re','sd']
['de','dr','en','re','sd']
['dr','en','es','re','sd']
Damit wird die korrespondierende Datensatz-Nummer mit den Schlüsseln 'dedrenesre', 'dedrenessd', 'dedresresd', 'dedrenresd', 'drenesresd' und 'deenesresd' in die invertierten Index-Blöcke eingefügt.
Je geringer die Untergrenze, desto kürzer die Sub-Liste, aber umso mehr Sub-Listen gibt es pro Feldwert, was zu mehr (kleineren) Blöcken im invertierten Index führt.
Als Grenzwerte kann hier die Anzahl der übereinstimmenden Bigramme T1 sowie die allgemeine Bigramm-Länge T2 identifiziert werden.
Daraus ergibt sich, wie beim Standard-Blocking, die Komplexität von O(n²/b) [tailor02], wobei b die Anzahl der zu vergleichenden Blöcke darstellt.
Canopy-Methode
Als Grenzwerte kann hier die Anzahl der übereinstimmenden Bigramme sowie die allgemeine Bigramm-Länge identifiziert werden. Daraus ergibt sich, wie beim Standard-Blocking, die Komplexität von [tailor02], wobei b die Anzahl der zu vergleichenden Blöcke darstellt.
Diese besteht aus 2 Schritten, wobei der 1. Schritt einen Blockieralgorithmus in der Form darstellt, daß er über eine billige Distanzmessung die Entitäten in n>= 1 sich überlappende, sog. Canopy (engl. „Abdeckhaube“) einteilt. Dazu wird aus der Liste der Datensätze ein beliebiger Eintrag genommen und mit allen anderen Einträgen der Liste verglichen (bspw. nach der Anzahl identischer Attribute). Alle Datensätze innerhalb der Distanz werden dabei in ein Canopy gegeben. Alle Datensätze innerhalb der Distanz werden von der Liste gelöscht. Dies wird wiederholt, bis die Liste leer ist.
Dadurch werden Nachteile des Grobblockings bzw. Sliding-Windows ausgeräumt, wie ein mögliches Paar außerhalb der Fenstergröße.
Die „Term-frequency-inverse data frequency“ (TF-IDF) Cosinus Ähnlichkeit ist eine billige Distanzmessungen, um sich überlappende Datensatz-Cluster zu erstellen. Es basiert auf der Auftrittshäufigkeit einzelner Terme und wird im Abschnitt [TDIDF] näher behandelt.
Im 2. Schritt werde daraufhin mit einer teureren Distanzmessung nur Punkt-Paare verglichen, welche sich im selben Canopy befinden.
Bei diesem Ansatz können 3 Parameter gesetzt werden: während Stufe 1 der Loose-Grenzwert (T1) und der Tight-Grenzwert (T2) . Bei Verwendung des GAC (siehe unten), 3. Parameter der Stopp-Parameter, bei dessen erreichen keine weitere Iteration ausgeführt wird.
Die Berechnungskomplexität kann bei Nutzung der invertierten Liste für Schritt 2 wie folgt dargestellt werden
Loose und Tight sollten so gewählt werden, daß n gering und |V| möglichst groß ist, um den Umfang der Berechnung zu verringern. bei zu großen Werten können typographische Fehler nicht mehr erkannt werden.
Zusammenfassung
Vergleichsmessungen, durchgeführt in [Kdd03]. Die Ergebniss-Anzahl bei Standard-Blocking können großen Schwankungen unterliegen und nehmen mit zunehmenden Blockierschlüsseln rapide ab. Kleinere Blöcke bedeuten dabei zwar weniger Vergleiche, schliessen jedoch ebenso mehr korrekte Paare aus.
Sorted-Neighbourhood-Methoden verhindern diese Extreme in der Performance des Standard Blockings und erlauben ein vorhersehbares Verhalten durch Erhöhung der Fenstergröße w. Durch größere Fenster erhöht sich die Paar-Vollständigkeit in den Ergebnissen, doch das Reduktionsverhältnis sinkt.
Mit gut gewählten Parametern sind jedoch sowohl Bigramm- als auch Canopies-Clustering signifikant performanter. Bei Ersterem wird eine Bigram-Vergleichsanzahl von 3 - 4 empfohlen, der Schwellwert für Canopy sollte um 1.5 liegen.
. | Komplexität | korrekte Negative | falsche Positive |
Standard-Blocking | n²/b | ++ | ++ |
Sliding Window | n log n + wn | + | + |
Bigramme | n²/b | - | + |
Canopy | nw²/count(V) | - | + |
Aus Gründen der Effizienz und Skalierbarkeit soll ein Vergleich aller Tupel in jeder Relation verhindert werden. Analog zu Schritt 2 aus dem Abschnitt "Strukturanalyse" wird daher für jeden Datensatz der Suchraum zur Ableitung möglicher Abbildungen begrenzt.
Da in der Menge A×B im Allgemeinen viel mehr Nicht-Treffer als Treffer zu erwarten sind (u(γ)≫m(γ)), werden für einen Datensatz die Vergleichsdatensätze entfernt, welche auf keinen Fall zutreffen. Eine Vielzahl von Methoden haben als Aufgabe, die Rechenkosten der Namensfindung gering zu halten, indem eine erste Grobauswahl aus dem Gesamtdatenbestand isoliert wird. Sets von geordneten Paaren , auf denen der Fellegi-Sunter Verlinkungsalgorithmus Anwendung findet, sind daher mit „Blockierkriterien“ bzw. Sortierschlüssel belegt.
Man nehme als Beispiel ein Tupel-Set, in welchem eine Telefonnummer vorhanden ist. Diese Telefonnummer kann in Verbindung mit einigen wenigen Zeichen des Namens zur Bestimmung von Verlinkungen nutzen. Bei anderen Paaren mögen zusätzlich die Informationen zu Straßennamen und Stadtnamen zugrunde gelegt werden.
Standard-Blocking
Der traditionelle Blockier-Algorithmus gruppiert Datensätze, wenn diese den selben Inhalt in einer Blockiervariable besitzen, also bspw. den identischen Eintrag für Stadt und Nachname in einem Datensatz. Blockierkriterien müssen dabei gut gewählt werden, da bei zu allgemeinen Auswahlschlüsseln die Menge näher zu untersuchender Datensätze zu hoch ist (korrekte Negative), bei einer zu engen jedoch passende Datensätze ausgesperrt bleiben könnten (falsche Positive).
Ebenfalls muss die Fehler-Charakteristik des gewählten Schlüssels bekannt und ein Fehlerauftritt minimal sein. Durch die Verwendung multipler Blockierschlüssel kann der Fehler in einem der Schlüssel abgemildert werden. Die Berechnungskomplexität ist pro gewählten Schlüssel, O(h(n)+n²/b), wobei h(n) = n log n bei sortierter Blocking-Menge, h(n) = n bei blocking durch hashing. Die Ergebnissmengen sind allerdings nur schwer abzuschätzen.
Sorted-Neighbourhood / sliding window
Eine Weiterentwicklung stellt die Sorted-Neighbourhood- oder Fenster- Strategie ("windowing strategy") nach [HS95] dar. Sie sortiert einen Datenbestand nach dem Schlüssel ("Key")-Attribut mit dem größten Unterschied und vergleicht alle Records innerhalb eines fliessenden Fensters („sliding Window“) in der aussortierten Ordnung . Die Effektivität dieses Ansatzes hängt stark von der Qualität des gewählten Schlüssels ab.
Poor chosen keys will result in a poor quality merge
Die „Sorted-Neighbourhood“-Methode kann in 3 Phasen zusammengefasst werden:
Bei sehr großen Datenmengen empfiehlt sich ein vorheriges Clustern des Datenbestandes. Dabei wird der Datenbestand in Sequenzen durchsucht, wobei ein n-attributiger Schlüssel (Bsp. Nachname+1.Buchstabe des Vornamens) extrahiert und in den n-dimensionalen Clusterraum abgebildet wird.
Da auch dieses gewählte Attribut einen Fehler besitzen kann, ist ein einzelnes Schlüsselattribut zu wenig. Um demnach Fehler im Hauptschlüssel auszuschließen, schlägt [HS95] folgende Methoden vor:
Als Grenzwerte sind hier die Schlüsselanzahl j sowie die Fenstergröße w anzugeben. Damit errechnet sich für n Datensätze eine Komplexität von , wobei für die Sortierung benötigt wird.
Fuzzy Blocking / Bigramm-Indexing
Diese Methode basiert auf Bigramme (in [SprachSynth06] auch Diphone oder Halblaute genannt). Die Grundidee dabei besteht darin, dass nach der Indexerstellung die Werte der Blockiervariablen in eine Liste von Bigramme (Diphone, Halblaute) konvertiert werden, welche alphabetisch sortiert und von Duplikaten bereinigt werden. Nun werden Sub-listen erstellt, für welche ein benutzerdefinierte Untergrenze (eine Zahl zw. 0.0 und 1.0) für alle möglichen Kombinationen gegeben wird.
Beispiel: Der String 'dresden' würde die Bigram-Liste ['dr','re','es','sd','de','en'] mit sechs Elementen ergeben. Es würde sortiert zu ['de','dr','en','es','re','sd'], und bei einer Untergrenze von 0.8 ergebe dies 6 * 0.8 = 4.8, gerundet 5, was bedeutet, dass alle Kombinationen der Länge 5 berrechnet werden. Für das gegebene Beispiel
['de','dr','en','es','re']
['de','dr','en','es','sd']
['de','dr','es','re','sd']
['de','en','es','re','sd']
['de','dr','en','re','sd']
['dr','en','es','re','sd']
Damit wird die korrespondierende Datensatz-Nummer mit den Schlüsseln 'dedrenesre', 'dedrenessd', 'dedresresd', 'dedrenresd', 'drenesresd' und 'deenesresd' in die invertierten Index-Blöcke eingefügt.
Je geringer die Untergrenze, desto kürzer die Sub-Liste, aber umso mehr Sub-Listen gibt es pro Feldwert, was zu mehr (kleineren) Blöcken im invertierten Index führt.
Als Grenzwerte kann hier die Anzahl der übereinstimmenden Bigramme T1 sowie die allgemeine Bigramm-Länge T2 identifiziert werden.
Daraus ergibt sich, wie beim Standard-Blocking, die Komplexität von O(n²/b) [tailor02], wobei b die Anzahl der zu vergleichenden Blöcke darstellt.
Canopy-Methode
Als Grenzwerte kann hier die Anzahl der übereinstimmenden Bigramme sowie die allgemeine Bigramm-Länge identifiziert werden. Daraus ergibt sich, wie beim Standard-Blocking, die Komplexität von [tailor02], wobei b die Anzahl der zu vergleichenden Blöcke darstellt.
Diese besteht aus 2 Schritten, wobei der 1. Schritt einen Blockieralgorithmus in der Form darstellt, daß er über eine billige Distanzmessung die Entitäten in n>= 1 sich überlappende, sog. Canopy (engl. „Abdeckhaube“) einteilt. Dazu wird aus der Liste der Datensätze ein beliebiger Eintrag genommen und mit allen anderen Einträgen der Liste verglichen (bspw. nach der Anzahl identischer Attribute). Alle Datensätze innerhalb der Distanz werden dabei in ein Canopy gegeben. Alle Datensätze innerhalb der Distanz werden von der Liste gelöscht. Dies wird wiederholt, bis die Liste leer ist.
Dadurch werden Nachteile des Grobblockings bzw. Sliding-Windows ausgeräumt, wie ein mögliches Paar außerhalb der Fenstergröße.
Die „Term-frequency-inverse data frequency“ (TF-IDF) Cosinus Ähnlichkeit ist eine billige Distanzmessungen, um sich überlappende Datensatz-Cluster zu erstellen. Es basiert auf der Auftrittshäufigkeit einzelner Terme und wird im Abschnitt [TDIDF] näher behandelt.
Im 2. Schritt werde daraufhin mit einer teureren Distanzmessung nur Punkt-Paare verglichen, welche sich im selben Canopy befinden.
Bei diesem Ansatz können 3 Parameter gesetzt werden: während Stufe 1 der Loose-Grenzwert (T1) und der Tight-Grenzwert (T2) . Bei Verwendung des GAC (siehe unten), 3. Parameter der Stopp-Parameter, bei dessen erreichen keine weitere Iteration ausgeführt wird.
Die Berechnungskomplexität kann bei Nutzung der invertierten Liste für Schritt 2 wie folgt dargestellt werden
Loose und Tight sollten so gewählt werden, daß n gering und |V| möglichst groß ist, um den Umfang der Berechnung zu verringern. bei zu großen Werten können typographische Fehler nicht mehr erkannt werden.
Zusammenfassung
Vergleichsmessungen, durchgeführt in [Kdd03]. Die Ergebniss-Anzahl bei Standard-Blocking können großen Schwankungen unterliegen und nehmen mit zunehmenden Blockierschlüsseln rapide ab. Kleinere Blöcke bedeuten dabei zwar weniger Vergleiche, schliessen jedoch ebenso mehr korrekte Paare aus.
Sorted-Neighbourhood-Methoden verhindern diese Extreme in der Performance des Standard Blockings und erlauben ein vorhersehbares Verhalten durch Erhöhung der Fenstergröße w. Durch größere Fenster erhöht sich die Paar-Vollständigkeit in den Ergebnissen, doch das Reduktionsverhältnis sinkt.
Mit gut gewählten Parametern sind jedoch sowohl Bigramm- als auch Canopies-Clustering signifikant performanter. Bei Ersterem wird eine Bigram-Vergleichsanzahl von 3 - 4 empfohlen, der Schwellwert für Canopy sollte um 1.5 liegen.
. | Komplexität | korrekte Negative | falsche Positive |
Standard-Blocking | n²/b | ++ | ++ |
Sliding Window | n log n + wn | + | + |
Bigramme | n²/b | - | + |
Canopy | nw²/count(V) | - | + |
Aus Gründen der Effizienz und Skalierbarkeit soll ein Vergleich aller Tupel in jeder Relation verhindert werden. Analog zu Schritt 2 aus dem Abschnitt "Strukturanalyse" wird daher für jeden Datensatz der Suchraum zur Ableitung möglicher Abbildungen begrenzt.
Da in der Menge A×B im Allgemeinen viel mehr Nicht-Treffer als Treffer zu erwarten sind (u(γ)≫m(γ)), werden für einen Datensatz die Vergleichsdatensätze entfernt, welche auf keinen Fall zutreffen. Eine Vielzahl von Methoden haben als Aufgabe, die Rechenkosten der Namensfindung gering zu halten, indem eine erste Grobauswahl aus dem Gesamtdatenbestand isoliert wird. Sets von geordneten Paaren , auf denen der Fellegi-Sunter Verlinkungsalgorithmus Anwendung findet, sind daher mit „Blockierkriterien“ bzw. Sortierschlüssel belegt.
Man nehme als Beispiel ein Tupel-Set, in welchem eine Telefonnummer vorhanden ist. Diese Telefonnummer kann in Verbindung mit einigen wenigen Zeichen des Namens zur Bestimmung von Verlinkungen nutzen. Bei anderen Paaren mögen zusätzlich die Informationen zu Straßennamen und Stadtnamen zugrunde gelegt werden.
Standard-Blocking
Der traditionelle Blockier-Algorithmus gruppiert Datensätze, wenn diese den selben Inhalt in einer Blockiervariable besitzen, also bspw. den identischen Eintrag für Stadt und Nachname in einem Datensatz. Blockierkriterien müssen dabei gut gewählt werden, da bei zu allgemeinen Auswahlschlüsseln die Menge näher zu untersuchender Datensätze zu hoch ist (korrekte Negative), bei einer zu engen jedoch passende Datensätze ausgesperrt bleiben könnten (falsche Positive).
Ebenfalls muss die Fehler-Charakteristik des gewählten Schlüssels bekannt und ein Fehlerauftritt minimal sein. Durch die Verwendung multipler Blockierschlüssel kann der Fehler in einem der Schlüssel abgemildert werden. Die Berechnungskomplexität ist pro gewählten Schlüssel, O(h(n)+n²/b), wobei h(n) = n log n bei sortierter Blocking-Menge, h(n) = n bei blocking durch hashing. Die Ergebnissmengen sind allerdings nur schwer abzuschätzen.
Sorted-Neighbourhood / sliding window
Eine Weiterentwicklung stellt die Sorted-Neighbourhood- oder Fenster- Strategie ("windowing strategy") nach [HS95] dar. Sie sortiert einen Datenbestand nach dem Schlüssel ("Key")-Attribut mit dem größten Unterschied und vergleicht alle Records innerhalb eines fliessenden Fensters („sliding Window“) in der aussortierten Ordnung . Die Effektivität dieses Ansatzes hängt stark von der Qualität des gewählten Schlüssels ab.
Poor chosen keys will result in a poor quality merge
Die „Sorted-Neighbourhood“-Methode kann in 3 Phasen zusammengefasst werden:
Bei sehr großen Datenmengen empfiehlt sich ein vorheriges Clustern des Datenbestandes. Dabei wird der Datenbestand in Sequenzen durchsucht, wobei ein n-attributiger Schlüssel (Bsp. Nachname+1.Buchstabe des Vornamens) extrahiert und in den n-dimensionalen Clusterraum abgebildet wird.
Da auch dieses gewählte Attribut einen Fehler besitzen kann, ist ein einzelnes Schlüsselattribut zu wenig. Um demnach Fehler im Hauptschlüssel auszuschließen, schlägt [HS95] folgende Methoden vor:
Als Grenzwerte sind hier die Schlüsselanzahl j sowie die Fenstergröße w anzugeben. Damit errechnet sich für n Datensätze eine Komplexität von , wobei für die Sortierung benötigt wird.
Fuzzy Blocking / Bigramm-Indexing
Diese Methode basiert auf Bigramme (in [SprachSynth06] auch Diphone oder Halblaute genannt). Die Grundidee dabei besteht darin, dass nach der Indexerstellung die Werte der Blockiervariablen in eine Liste von Bigramme (Diphone, Halblaute) konvertiert werden, welche alphabetisch sortiert und von Duplikaten bereinigt werden. Nun werden Sub-listen erstellt, für welche ein benutzerdefinierte Untergrenze (eine Zahl zw. 0.0 und 1.0) für alle möglichen Kombinationen gegeben wird.
Beispiel: Der String 'dresden' würde die Bigram-Liste ['dr','re','es','sd','de','en'] mit sechs Elementen ergeben. Es würde sortiert zu ['de','dr','en','es','re','sd'], und bei einer Untergrenze von 0.8 ergebe dies 6 * 0.8 = 4.8, gerundet 5, was bedeutet, dass alle Kombinationen der Länge 5 berrechnet werden. Für das gegebene Beispiel
['de','dr','en','es','re']
['de','dr','en','es','sd']
['de','dr','es','re','sd']
['de','en','es','re','sd']
['de','dr','en','re','sd']
['dr','en','es','re','sd']
Damit wird die korrespondierende Datensatz-Nummer mit den Schlüsseln 'dedrenesre', 'dedrenessd', 'dedresresd', 'dedrenresd', 'drenesresd' und 'deenesresd' in die invertierten Index-Blöcke eingefügt.
Je geringer die Untergrenze, desto kürzer die Sub-Liste, aber umso mehr Sub-Listen gibt es pro Feldwert, was zu mehr (kleineren) Blöcken im invertierten Index führt.
Als Grenzwerte kann hier die Anzahl der übereinstimmenden Bigramme T1 sowie die allgemeine Bigramm-Länge T2 identifiziert werden.
Daraus ergibt sich, wie beim Standard-Blocking, die Komplexität von O(n²/b) [tailor02], wobei b die Anzahl der zu vergleichenden Blöcke darstellt.
Canopy-Methode
Als Grenzwerte kann hier die Anzahl der übereinstimmenden Bigramme sowie die allgemeine Bigramm-Länge identifiziert werden. Daraus ergibt sich, wie beim Standard-Blocking, die Komplexität von [tailor02], wobei b die Anzahl der zu vergleichenden Blöcke darstellt.
Diese besteht aus 2 Schritten, wobei der 1. Schritt einen Blockieralgorithmus in der Form darstellt, daß er über eine billige Distanzmessung die Entitäten in n>= 1 sich überlappende, sog. Canopy (engl. „Abdeckhaube“) einteilt. Dazu wird aus der Liste der Datensätze ein beliebiger Eintrag genommen und mit allen anderen Einträgen der Liste verglichen (bspw. nach der Anzahl identischer Attribute). Alle Datensätze innerhalb der Distanz werden dabei in ein Canopy gegeben. Alle Datensätze innerhalb der Distanz werden von der Liste gelöscht. Dies wird wiederholt, bis die Liste leer ist.
Dadurch werden Nachteile des Grobblockings bzw. Sliding-Windows ausgeräumt, wie ein mögliches Paar außerhalb der Fenstergröße.
Die „Term-frequency-inverse data frequency“ (TF-IDF) Cosinus Ähnlichkeit ist eine billige Distanzmessungen, um sich überlappende Datensatz-Cluster zu erstellen. Es basiert auf der Auftrittshäufigkeit einzelner Terme und wird im Abschnitt [TDIDF] näher behandelt.
Im 2. Schritt werde daraufhin mit einer teureren Distanzmessung nur Punkt-Paare verglichen, welche sich im selben Canopy befinden.
Bei diesem Ansatz können 3 Parameter gesetzt werden: während Stufe 1 der Loose-Grenzwert (T1) und der Tight-Grenzwert (T2) . Bei Verwendung des GAC (siehe unten), 3. Parameter der Stopp-Parameter, bei dessen erreichen keine weitere Iteration ausgeführt wird.
Die Berechnungskomplexität kann bei Nutzung der invertierten Liste für Schritt 2 wie folgt dargestellt werden
Loose und Tight sollten so gewählt werden, daß n gering und |V| möglichst groß ist, um den Umfang der Berechnung zu verringern. bei zu großen Werten können typographische Fehler nicht mehr erkannt werden.
Zusammenfassung
Vergleichsmessungen, durchgeführt in [Kdd03]. Die Ergebniss-Anzahl bei Standard-Blocking können großen Schwankungen unterliegen und nehmen mit zunehmenden Blockierschlüsseln rapide ab. Kleinere Blöcke bedeuten dabei zwar weniger Vergleiche, schliessen jedoch ebenso mehr korrekte Paare aus.
Sorted-Neighbourhood-Methoden verhindern diese Extreme in der Performance des Standard Blockings und erlauben ein vorhersehbares Verhalten durch Erhöhung der Fenstergröße w. Durch größere Fenster erhöht sich die Paar-Vollständigkeit in den Ergebnissen, doch das Reduktionsverhältnis sinkt.
Mit gut gewählten Parametern sind jedoch sowohl Bigramm- als auch Canopies-Clustering signifikant performanter. Bei Ersterem wird eine Bigram-Vergleichsanzahl von 3 - 4 empfohlen, der Schwellwert für Canopy sollte um 1.5 liegen.
. | Komplexität | korrekte Negative | falsche Positive |
Standard-Blocking | n²/b | ++ | ++ |
Sliding Window | n log n + wn | + | + |
Bigramme | n²/b | - | + |
Canopy | nw²/count(V) | - | + |
Aus Gründen der Effizienz und Skalierbarkeit soll ein Vergleich aller Tupel in jeder Relation verhindert werden. Analog zu Schritt 2 aus dem Abschnitt "Strukturanalyse" wird daher für jeden Datensatz der Suchraum zur Ableitung möglicher Abbildungen begrenzt.
Da in der Menge A×B im Allgemeinen viel mehr Nicht-Treffer als Treffer zu erwarten sind (u(γ)≫m(γ)), werden für einen Datensatz die Vergleichsdatensätze entfernt, welche auf keinen Fall zutreffen. Eine Vielzahl von Methoden haben als Aufgabe, die Rechenkosten der Namensfindung gering zu halten, indem eine erste Grobauswahl aus dem Gesamtdatenbestand isoliert wird. Sets von geordneten Paaren , auf denen der Fellegi-Sunter Verlinkungsalgorithmus Anwendung findet, sind daher mit „Blockierkriterien“ bzw. Sortierschlüssel belegt.
Man nehme als Beispiel ein Tupel-Set, in welchem eine Telefonnummer vorhanden ist. Diese Telefonnummer kann in Verbindung mit einigen wenigen Zeichen des Namens zur Bestimmung von Verlinkungen nutzen. Bei anderen Paaren mögen zusätzlich die Informationen zu Straßennamen und Stadtnamen zugrunde gelegt werden.
Standard-Blocking
Der traditionelle Blockier-Algorithmus gruppiert Datensätze, wenn diese den selben Inhalt in einer Blockiervariable besitzen, also bspw. den identischen Eintrag für Stadt und Nachname in einem Datensatz. Blockierkriterien müssen dabei gut gewählt werden, da bei zu allgemeinen Auswahlschlüsseln die Menge näher zu untersuchender Datensätze zu hoch ist (korrekte Negative), bei einer zu engen jedoch passende Datensätze ausgesperrt bleiben könnten (falsche Positive).
Ebenfalls muss die Fehler-Charakteristik des gewählten Schlüssels bekannt und ein Fehlerauftritt minimal sein. Durch die Verwendung multipler Blockierschlüssel kann der Fehler in einem der Schlüssel abgemildert werden. Die Berechnungskomplexität ist pro gewählten Schlüssel, O(h(n)+n²/b), wobei h(n) = n log n bei sortierter Blocking-Menge, h(n) = n bei blocking durch hashing. Die Ergebnissmengen sind allerdings nur schwer abzuschätzen.
Sorted-Neighbourhood / sliding window
Eine Weiterentwicklung stellt die Sorted-Neighbourhood- oder Fenster- Strategie ("windowing strategy") nach [HS95] dar. Sie sortiert einen Datenbestand nach dem Schlüssel ("Key")-Attribut mit dem größten Unterschied und vergleicht alle Records innerhalb eines fliessenden Fensters („sliding Window“) in der aussortierten Ordnung . Die Effektivität dieses Ansatzes hängt stark von der Qualität des gewählten Schlüssels ab.
Poor chosen keys will result in a poor quality merge
Die „Sorted-Neighbourhood“-Methode kann in 3 Phasen zusammengefasst werden:
- Erstellen der Schlüssel: Errechne einen Schlüssel für jeden Datensatz in der Liste durch extrahieren relevanter Felder oder Feldbestandteile
- Sortierung der Daten: Sortiere die Datensätze in der Datenliste unter Nutzung des Schlüssels aus Schritt 1
- Vereine: Bewege ein Fenster mit konstanter Größe durch die sequentielle Liste der Datensätze und limitiere den Vergleich auf passende Werte auf solche innerhalb des Fensters. Falls die Fenstergröße w Datensätze umfasst, so wird jeder neuer Datensatz mit den vorhergehenden w-1 Sätzen verglichen, um „passende Datensätze“ zu finden. Der erste Datensatz im Fenster slided dabei aus dem Fensterbereich.
Bei sehr großen Datenmengen empfiehlt sich ein vorheriges Clustern des Datenbestandes. Dabei wird der Datenbestand in Sequenzen durchsucht, wobei ein n-attributiger Schlüssel (Bsp. Nachname+1.Buchstabe des Vornamens) extrahiert und in den n-dimensionalen Clusterraum abgebildet wird.
Da auch dieses gewählte Attribut einen Fehler besitzen kann, ist ein einzelnes Schlüsselattribut zu wenig. Um demnach Fehler im Hauptschlüssel auszuschließen, schlägt [HS95] folgende Methoden vor:
- Durch die Vergrößerung des sliding-windows werden mehr Datensätze mit eingeschlossen.
- ein mehrmaliges Ausführen mit unterschiedlichen Schlüsseln und relativ kleinem Fenster gibt, nach einzelnem Abgleich der Ergebniss-Gruppen und transitivem Schließen (nur bei geringer Fenstergröße empfehlenswert) die besseren Ergebnisse.
Als Grenzwerte sind hier die Schlüsselanzahl j sowie die Fenstergröße w anzugeben. Damit errechnet sich für n Datensätze eine Komplexität von , wobei für die Sortierung benötigt wird.
Fuzzy Blocking / Bigramm-Indexing
Diese Methode basiert auf Bigramme (in [SprachSynth06] auch Diphone oder Halblaute genannt). Die Grundidee dabei besteht darin, dass nach der Indexerstellung die Werte der Blockiervariablen in eine Liste von Bigramme (Diphone, Halblaute) konvertiert werden, welche alphabetisch sortiert und von Duplikaten bereinigt werden. Nun werden Sub-listen erstellt, für welche ein benutzerdefinierte Untergrenze (eine Zahl zw. 0.0 und 1.0) für alle möglichen Kombinationen gegeben wird.
Beispiel: Der String 'dresden' würde die Bigram-Liste ['dr','re','es','sd','de','en'] mit sechs Elementen ergeben. Es würde sortiert zu ['de','dr','en','es','re','sd'], und bei einer Untergrenze von 0.8 ergebe dies 6 * 0.8 = 4.8, gerundet 5, was bedeutet, dass alle Kombinationen der Länge 5 berrechnet werden. Für das gegebene Beispiel
['de','dr','en','es','re']
['de','dr','en','es','sd']
['de','dr','es','re','sd']
['de','en','es','re','sd']
['de','dr','en','re','sd']
['dr','en','es','re','sd']
Damit wird die korrespondierende Datensatz-Nummer mit den Schlüsseln 'dedrenesre', 'dedrenessd', 'dedresresd', 'dedrenresd', 'drenesresd' und 'deenesresd' in die invertierten Index-Blöcke eingefügt.
Je geringer die Untergrenze, desto kürzer die Sub-Liste, aber umso mehr Sub-Listen gibt es pro Feldwert, was zu mehr (kleineren) Blöcken im invertierten Index führt.
Als Grenzwerte kann hier die Anzahl der übereinstimmenden Bigramme T1 sowie die allgemeine Bigramm-Länge T2 identifiziert werden.
Daraus ergibt sich, wie beim Standard-Blocking, die Komplexität von O(n²/b) [tailor02], wobei b die Anzahl der zu vergleichenden Blöcke darstellt.
Canopy-Methode
Als Grenzwerte kann hier die Anzahl der übereinstimmenden Bigramme sowie die allgemeine Bigramm-Länge identifiziert werden. Daraus ergibt sich, wie beim Standard-Blocking, die Komplexität von [tailor02], wobei b die Anzahl der zu vergleichenden Blöcke darstellt.
Diese besteht aus 2 Schritten, wobei der 1. Schritt einen Blockieralgorithmus in der Form darstellt, daß er über eine billige Distanzmessung die Entitäten in n>= 1 sich überlappende, sog. Canopy (engl. „Abdeckhaube“) einteilt. Dazu wird aus der Liste der Datensätze ein beliebiger Eintrag genommen und mit allen anderen Einträgen der Liste verglichen (bspw. nach der Anzahl identischer Attribute). Alle Datensätze innerhalb der Distanz werden dabei in ein Canopy gegeben. Alle Datensätze innerhalb der Distanz werden von der Liste gelöscht. Dies wird wiederholt, bis die Liste leer ist.
Dadurch werden Nachteile des Grobblockings bzw. Sliding-Windows ausgeräumt, wie ein mögliches Paar außerhalb der Fenstergröße.
Die „Term-frequency-inverse data frequency“ (TF-IDF) Cosinus Ähnlichkeit ist eine billige Distanzmessungen, um sich überlappende Datensatz-Cluster zu erstellen. Es basiert auf der Auftrittshäufigkeit einzelner Terme und wird im Abschnitt [TDIDF] näher behandelt.
Im 2. Schritt werde daraufhin mit einer teureren Distanzmessung nur Punkt-Paare verglichen, welche sich im selben Canopy befinden.
Bei diesem Ansatz können 3 Parameter gesetzt werden: während Stufe 1 der Loose-Grenzwert (T1) und der Tight-Grenzwert (T2) . Bei Verwendung des GAC (siehe unten), 3. Parameter der Stopp-Parameter, bei dessen erreichen keine weitere Iteration ausgeführt wird.
Die Berechnungskomplexität kann bei Nutzung der invertierten Liste für Schritt 2 wie folgt dargestellt werden
- w
Anzahl der Vergleichsdatensätze
- V
die möglichen Werte der Attribute, |V| Anzahl der Canopies
- n
Anzahl aller Entitäten/Datensätze
Loose und Tight sollten so gewählt werden, daß n gering und |V| möglichst groß ist, um den Umfang der Berechnung zu verringern. bei zu großen Werten können typographische Fehler nicht mehr erkannt werden.
Zusammenfassung
Vergleichsmessungen, durchgeführt in [Kdd03]. Die Ergebniss-Anzahl bei Standard-Blocking können großen Schwankungen unterliegen und nehmen mit zunehmenden Blockierschlüsseln rapide ab. Kleinere Blöcke bedeuten dabei zwar weniger Vergleiche, schliessen jedoch ebenso mehr korrekte Paare aus.
Sorted-Neighbourhood-Methoden verhindern diese Extreme in der Performance des Standard Blockings und erlauben ein vorhersehbares Verhalten durch Erhöhung der Fenstergröße w. Durch größere Fenster erhöht sich die Paar-Vollständigkeit in den Ergebnissen, doch das Reduktionsverhältnis sinkt.
Mit gut gewählten Parametern sind jedoch sowohl Bigramm- als auch Canopies-Clustering signifikant performanter. Bei Ersterem wird eine Bigram-Vergleichsanzahl von 3 - 4 empfohlen, der Schwellwert für Canopy sollte um 1.5 liegen.
. | Komplexität | korrekte Negative | falsche Positive |
Standard-Blocking | n²/b | ++ | ++ |
Sliding Window | n log n + wn | + | + |
Bigramme | n²/b | - | + |
Canopy | nw²/count(V) | - | + |