Suchraumbestimmung

      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).

                              SVG - Suchraumbestimmung - Grobblocking

                              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:

                              1. Erstellen der Schlüssel: Errechne einen Schlüssel für jeden Datensatz in der Liste durch extrahieren relevanter Felder oder Feldbestandteile
                              2. Sortierung der Daten: Sortiere die Datensätze in der Datenliste unter Nutzung des Schlüssels aus Schritt 1
                              3. 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.
                              SVG - Suchraumbestimmung - Sliding Window

                              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:

                              1. Durch die Vergrößerung des sliding-windows werden mehr Datensätze mit eingeschlossen.
                              2. 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 O(i=0j(nlogn+wn)) , wobei O(nlogn) 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 machen

                              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.

                              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.

                              SVG - Suchraumbestimmung - Canopy

                              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

                              O(nw²V)

                              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).

                          SVG - Suchraumbestimmung - Grobblocking

                          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:

                          1. Erstellen der Schlüssel: Errechne einen Schlüssel für jeden Datensatz in der Liste durch extrahieren relevanter Felder oder Feldbestandteile
                          2. Sortierung der Daten: Sortiere die Datensätze in der Datenliste unter Nutzung des Schlüssels aus Schritt 1
                          3. 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.
                          SVG - Suchraumbestimmung - Sliding Window

                          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:

                          1. Durch die Vergrößerung des sliding-windows werden mehr Datensätze mit eingeschlossen.
                          2. 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 O(i=0j(nlogn+wn)) , wobei O(nlogn) 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.

                          schade, ueberschrieben, morgen neu machen

                          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.

                          SVG - Suchraumbestimmung - Canopy

                          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

                          O(nw²V)

                          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).

                      SVG - Suchraumbestimmung - Grobblocking

                      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:

                      1. Erstellen der Schlüssel: Errechne einen Schlüssel für jeden Datensatz in der Liste durch extrahieren relevanter Felder oder Feldbestandteile
                      2. Sortierung der Daten: Sortiere die Datensätze in der Datenliste unter Nutzung des Schlüssels aus Schritt 1
                      3. 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.
                      SVG - Suchraumbestimmung - Sliding Window

                      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:

                      1. Durch die Vergrößerung des sliding-windows werden mehr Datensätze mit eingeschlossen.
                      2. 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 O(i=0j(nlogn+wn)) , wobei O(nlogn) 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.

                      schade, ueberschrieben, morgen neu machen

                      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.

                      SVG - Suchraumbestimmung - Canopy

                      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

                      O(nw²V)

                      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).

                  SVG - Suchraumbestimmung - Grobblocking

                  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:

                  1. Erstellen der Schlüssel: Errechne einen Schlüssel für jeden Datensatz in der Liste durch extrahieren relevanter Felder oder Feldbestandteile
                  2. Sortierung der Daten: Sortiere die Datensätze in der Datenliste unter Nutzung des Schlüssels aus Schritt 1
                  3. 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.
                  SVG - Suchraumbestimmung - Sliding Window

                  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:

                  1. Durch die Vergrößerung des sliding-windows werden mehr Datensätze mit eingeschlossen.
                  2. 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 O(i=0j(nlogn+wn)) , wobei O(nlogn) 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.

                  schade, ueberschrieben, morgen neu machen

                  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.

                  SVG - Suchraumbestimmung - Canopy

                  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

                  O(nw²V)

                  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).

              SVG - Suchraumbestimmung - Grobblocking

              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:

              1. Erstellen der Schlüssel: Errechne einen Schlüssel für jeden Datensatz in der Liste durch extrahieren relevanter Felder oder Feldbestandteile
              2. Sortierung der Daten: Sortiere die Datensätze in der Datenliste unter Nutzung des Schlüssels aus Schritt 1
              3. 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.
              SVG - Suchraumbestimmung - Sliding Window

              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:

              1. Durch die Vergrößerung des sliding-windows werden mehr Datensätze mit eingeschlossen.
              2. 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 O(i=0j(nlogn+wn)) , wobei O(nlogn) 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.

              schade, ueberschrieben, morgen neu machen

              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.

              SVG - Suchraumbestimmung - Canopy

              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

              O(nw²V)

              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).

          SVG - Suchraumbestimmung - Grobblocking

          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:

          1. Erstellen der Schlüssel: Errechne einen Schlüssel für jeden Datensatz in der Liste durch extrahieren relevanter Felder oder Feldbestandteile
          2. Sortierung der Daten: Sortiere die Datensätze in der Datenliste unter Nutzung des Schlüssels aus Schritt 1
          3. 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.
          SVG - Suchraumbestimmung - Sliding Window

          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:

          1. Durch die Vergrößerung des sliding-windows werden mehr Datensätze mit eingeschlossen.
          2. 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 O(i=0j(nlogn+wn)) , wobei O(nlogn) 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.

          schade, ueberschrieben, morgen neu machen

          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.

          SVG - Suchraumbestimmung - Canopy

          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

          O(nw²V)

          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).

      SVG - Suchraumbestimmung - Grobblocking

      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:

      1. Erstellen der Schlüssel: Errechne einen Schlüssel für jeden Datensatz in der Liste durch extrahieren relevanter Felder oder Feldbestandteile
      2. Sortierung der Daten: Sortiere die Datensätze in der Datenliste unter Nutzung des Schlüssels aus Schritt 1
      3. 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.
      SVG - Suchraumbestimmung - Sliding Window

      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:

      1. Durch die Vergrößerung des sliding-windows werden mehr Datensätze mit eingeschlossen.
      2. 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 O(i=0j(nlogn+wn)) , wobei O(nlogn) 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.

      schade, ueberschrieben, morgen neu machen

      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.

      SVG - Suchraumbestimmung - Canopy

      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

      O(nw²V)

      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).

SVG - Suchraumbestimmung - Grobblocking

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:

  1. Erstellen der Schlüssel: Errechne einen Schlüssel für jeden Datensatz in der Liste durch extrahieren relevanter Felder oder Feldbestandteile
  2. Sortierung der Daten: Sortiere die Datensätze in der Datenliste unter Nutzung des Schlüssels aus Schritt 1
  3. 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.
SVG - Suchraumbestimmung - Sliding Window

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:

  1. Durch die Vergrößerung des sliding-windows werden mehr Datensätze mit eingeschlossen.
  2. 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 O(i=0j(nlogn+wn)) , wobei O(nlogn) 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.

schade, ueberschrieben, morgen neu machen

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.

SVG - Suchraumbestimmung - Canopy

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

O(nw²V)

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) - +
top