Zusammenfassung
- Es gibt die Gewichtung einzelner Attribute, was sehr häufig getan wird.
- Innerhalb der Attributwerte können durch TF-IDF häufiger und seltener auftretende Terme gewichtet werden.
- Parallel angewendete Metriken können gegeneinander gewichtet bzw. als sequentieller Entscheidungsbaum Top-Down-Traversierung aufgebaut werden.
- Es gibt die Gewichtung einzelner Attribute, was sehr häufig getan wird.
- Innerhalb der Attributwerte können durch TF-IDF häufiger und seltener auftretende Terme gewichtet werden.
- Parallel angewendete Metriken können gegeneinander gewichtet bzw. als sequentieller Entscheidungsbaum Top-Down-Traversierung aufgebaut werden.
- Es gibt die Gewichtung einzelner Attribute, was sehr häufig getan wird.
- Innerhalb der Attributwerte können durch TF-IDF häufiger und seltener auftretende Terme gewichtet werden.
- Parallel angewendete Metriken können gegeneinander gewichtet bzw. als sequentieller Entscheidungsbaum Top-Down-Traversierung aufgebaut werden.
- Es gibt die Gewichtung einzelner Attribute, was sehr häufig getan wird.
- Innerhalb der Attributwerte können durch TF-IDF häufiger und seltener auftretende Terme gewichtet werden.
- Parallel angewendete Metriken können gegeneinander gewichtet bzw. als sequentieller Entscheidungsbaum Top-Down-Traversierung aufgebaut werden.
- Es gibt die Gewichtung einzelner Attribute, was sehr häufig getan wird.
- Innerhalb der Attributwerte können durch TF-IDF häufiger und seltener auftretende Terme gewichtet werden.
- Parallel angewendete Metriken können gegeneinander gewichtet bzw. als sequentieller Entscheidungsbaum Top-Down-Traversierung aufgebaut werden.
- Es gibt die Gewichtung einzelner Attribute, was sehr häufig getan wird.
- Innerhalb der Attributwerte können durch TF-IDF häufiger und seltener auftretende Terme gewichtet werden.
- Parallel angewendete Metriken können gegeneinander gewichtet bzw. als sequentieller Entscheidungsbaum Top-Down-Traversierung aufgebaut werden.
- Es gibt die Gewichtung einzelner Attribute, was sehr häufig getan wird.
- Innerhalb der Attributwerte können durch TF-IDF häufiger und seltener auftretende Terme gewichtet werden.
- Parallel angewendete Metriken können gegeneinander gewichtet bzw. als sequentieller Entscheidungsbaum Top-Down-Traversierung aufgebaut werden.
Zusammenfassung
Zusammenfassung
Zusammenfassung
Zusammenfassung
Zusammenfassung
Zusammenfassung
Wie in diesem Kapitel verdeutlicht wurde, kann Datenharmonisierung in verschiedenen Dimensionen durchgeführt werden.
Abschließend soll ein kleiner Überblick zu frei verfügbaren Datenharmonisierungs-Tools bzw. Frameworks gegeben werden. Er stellt keinerlei Anspruch auf Vollständigkeit, sondern eine während der Bearbeitung explorativ aufgefundene Auswahl dar. Zunächst werden die Methoden-Sammlungen von Wilhelm Cohen und Sam Chapman genannt. Anschließend folgen einige Worte zu einem Record-Linkage-Framework von Peter Christen und Tim Churches. Abschließend wird das mit Lernmethoden aus Kapitel Klassifizierung arbeitende Marlin-Framework angesprochen, und mit ähnlichen Ansätzen von Cohen et.al und Minton et.al. verglichen.
[secstring06] SecondString ist eine Sammlung von Java-Klassen, welche eine große Auswahl an String-Vergleichs-Algorithmen enthalten. Von W. Cohen für Zeichenvergleichs-Experimente entwickelt, umfasst SecondString Methoden zum Tokenisieren und Grobblockieren, statische Zeichenketten-Metriken sowie Gewichtungsmethoden, jedoch keine Methoden zur Daten-Standardisierung oder Klassifizierung.
[simmetric06] stellt den europäischen Gegenpart dar. Der Umfang ist vergleichbar, der Code jedoch übersichtlicher gestaltet. Beide Pakete sind als OpenSource-Download unter [SF06] zu finden.
Die Herkunft des in objektorientierten Python implementierten Frameworks [Febrl05] liegt in der Bioinformatik. An der Universität Canberra, Australien von Peter Christen und Tim Churches entwickelt, stellt es die vollständige Mächtigkeit für Harmonisierungsaufgaben zur Verfügung. Ferbl teilt die Datenbearbeitung in die Schritte Datenanalyse/Standardisierung und Record-Linkage/Deduplikation auf.
Der erste Schritt umfasst im einzelnen die Wort-Ersetzung unter Nutzung von Lookup-Tables und Korrekturlisten. Anschließende werden Datums- und Zeitformate standardisiert und die Ergebnisse zwischengespeichert.
Im zweiten Schritt werden auf die Datenmenge Blockier- und Sortieralgorithmen angewendet und mögliche Treffer einem Feldvergleich mit individuellen, im Kapitel 4.4 vorgestellten Methoden zugeführt. In der Klassifizierung werden die Ergebnisse ausgewertet und ein ausführliches Logging für Protokoll-Untersuchungen erstellt.
Die Ähnlichkeitsschätzung zwischen Strings ist enormen Schwankungen unterlegen, abhängig von Domain und Aspekt (Betrachtungsweise). Anstatt diese Gewichtungen von Hand anzulernen sind trainierbaren Ähnlichkeitsberechnungen der Vorzug zu geben.
Die Folgende drei Ansätze, wovon Marlin als Einziger umgesetzt zu sein scheint, arbeiten mit einer vom Nutzer vorher gegebenen Traingsmenge an Daten. Diese beinhaltete gekennzeichnete korrekte sowie inkorrekte Vergleichsdatensätze und berechnet daraus zunächst bestimmte Parameter für die Abarbeitung der eigentlichen Daten.
Marlin ist eine auf dem Weka-Framework [weka06] basierende, automatische Trainingsumgebung der Universität Texas [Bilen03].
In der Trainingsphase bekommt Marlin lernbare DistanzMetriken für jedes Datenfeld präsentiert. Homonyme („noisy trainingsdata“) wie beispielsweise „Asian“ und „Seafood“ werden dabei als Trainingspaare erkannt und erhalten eine Ähnlichkeit zugewiesen.
Nach dem Erlernen dieser Ähnlichkeitsmetriken für jedes individuelle Datensatzfeld wird das gewonnene Wissen genutzt, um die Distanz für jeden Datensatz zu berechnen. Diese Vektoren bestehend aus Distanz-Merkmalen und werden als Trainingsdaten für den Binärklassifikator genutzt. Bei diesem Vorgang kommt der unter Kapitel 4.5.5. vorgestellte „Support Vector Machine“-Algorithmus zur Anwendung, welche traditionelle Entscheidungsbäume übertrifft [kdd03].
In der „Erkennungsphase“ werden alle Datensätze miteinander verglichen. Da dies eine Anzahl von O(n²) Vergleichen bedeuten würde, nutzt „Marlin“ einen aus Canopies-Clustering via Jaccard bestehenden Pre-Blocking-Algorithmus.
Anschließend werden die gelernten Distanz-Metriken verwendet, um jedes Feld von jedem Paar möglicher Duplikat-Datensätze auszuwerten, also der Erstellung von Distanz-Feature-Vektoren für den Klassifizierer. Glaubhafte Schätzungen zur Einordnung in die Gruppe der Duplikate oder Unikate werden durch den Binär-Klassifikator vorgenommen, und Paare werden mit aufsteigender Reihenfolge sortiert.
Der von Cohen und Richmann genutzte Ansatz verwendet ebenso den Canopy-Algorithmus. Dieser wählt zu Beginn aus dem kompletten Datenbestand bestimmte Datensatzpaare aus, für die der Benutzer die Einteilung „match“ oder „non-match“ übernimmt. Diese werden darauffolgend als „Mittelpunkte“ genutzt.
Der Canopy-Algorithmus teilt nun mit Hilfe der Parameter und alle weiteren Paare den identifizierten Paaren zu.
Mit den gewonnenen Informationen bildet der Klassifikations-Lerner zwei Funktionen. Zum einen eine boolean-Funktion h(a,b), welche die Übereinstimmung der Datensätze a und b zurückgibt, zum Zweiten eine Funktion c(a,b), die die Wahrscheinlichkeit liefert, mit der die Klassifizierung h(a,b) positiv ist. Je höher c, umso sicherer ist der Klassifikations-Lerner mit der Einstufung der beiden Records als Duplikate.
Um den Maschinenlerner, meist ein „Expectation Maximization Lerner“, zu trainieren, werden aus den Kandidatenpaaren m Paare ausgewählt, für die der Nutzer die Übereinstimmung bewertet.
Hierbei werden aus den beiden Records mehrere Eigenschaften zusammen betrachtet, um daraus die Hypothese c(a,b) möglichst genau anzupassen. Eigenschaften sind binär, also ein Datensatz, und besitzt eine Eigenschaft oder nicht. Mögliche Paar-Eigenschaften sind SubstringMatch, PrefixMath, EditDistance, MatchAToken, MatchBToken, MatchABigram, JaccardDistance, StrongNumberDistance.
Die Spalten „Titel“ und „Adresse“ könnten folgende Eigenschaften genutzt werden: SubstringTitel,SubstringAdresse, PrefixMatchTitel, PrefixMatchAdresse,StrongNumberMatchTitel, StrongNumberMatchAdresse. Der Learner gewichtet die Nutzerauswahl, und stärkt somit sein internes Klassifikations-Modell. Abschließend wird auf die Gesamtmenge an Werten ein „GreedyAgglomerativeClustering“-Algorithmus [CallumNigamUngar] angewendet, welcher die Gesamtmenge aufteilt, bis eine vorgegebene Teilmengenanzahl erreicht wurde.
Dieser Ansatz arbeitet äquivalent zu Cohen und Richman, baut allerdings nach der 2. Lernphase einen Entscheidungbaum („Decision Tree“) aufgebaut, um alle weiteren Vergleiche über diesen traversierend durchgeführt.
Wie in diesem Kapitel verdeutlicht wurde, kann Datenharmonisierung in verschiedenen Dimensionen durchgeführt werden.
Abschließend soll ein kleiner Überblick zu frei verfügbaren Datenharmonisierungs-Tools bzw. Frameworks gegeben werden. Er stellt keinerlei Anspruch auf Vollständigkeit, sondern eine während der Bearbeitung explorativ aufgefundene Auswahl dar. Zunächst werden die Methoden-Sammlungen von Wilhelm Cohen und Sam Chapman genannt. Anschließend folgen einige Worte zu einem Record-Linkage-Framework von Peter Christen und Tim Churches. Abschließend wird das mit Lernmethoden aus Kapitel Klassifizierung arbeitende Marlin-Framework angesprochen, und mit ähnlichen Ansätzen von Cohen et.al und Minton et.al. verglichen.
SecondString / Simmetrik
[secstring06] SecondString ist eine Sammlung von Java-Klassen, welche eine große Auswahl an String-Vergleichs-Algorithmen enthalten. Von W. Cohen für Zeichenvergleichs-Experimente entwickelt, umfasst SecondString Methoden zum Tokenisieren und Grobblockieren, statische Zeichenketten-Metriken sowie Gewichtungsmethoden, jedoch keine Methoden zur Daten-Standardisierung oder Klassifizierung.
[simmetric06] stellt den europäischen Gegenpart dar. Der Umfang ist vergleichbar, der Code jedoch übersichtlicher gestaltet. Beide Pakete sind als OpenSource-Download unter [SF06] zu finden.
Ferbl
Die Herkunft des in objektorientierten Python implementierten Frameworks [Febrl05] liegt in der Bioinformatik. An der Universität Canberra, Australien von Peter Christen und Tim Churches entwickelt, stellt es die vollständige Mächtigkeit für Harmonisierungsaufgaben zur Verfügung. Ferbl teilt die Datenbearbeitung in die Schritte Datenanalyse/Standardisierung und Record-Linkage/Deduplikation auf.
Der erste Schritt umfasst im einzelnen die Wort-Ersetzung unter Nutzung von Lookup-Tables und Korrekturlisten. Anschließende werden Datums- und Zeitformate standardisiert und die Ergebnisse zwischengespeichert.
Im zweiten Schritt werden auf die Datenmenge Blockier- und Sortieralgorithmen angewendet und mögliche Treffer einem Feldvergleich mit individuellen, im Kapitel 4.4 vorgestellten Methoden zugeführt. In der Klassifizierung werden die Ergebnisse ausgewertet und ein ausführliches Logging für Protokoll-Untersuchungen erstellt.
Marlin
Die Ähnlichkeitsschätzung zwischen Strings ist enormen Schwankungen unterlegen, abhängig von Domain und Aspekt (Betrachtungsweise). Anstatt diese Gewichtungen von Hand anzulernen sind trainierbaren Ähnlichkeitsberechnungen der Vorzug zu geben.
Die Folgende drei Ansätze, wovon Marlin als Einziger umgesetzt zu sein scheint, arbeiten mit einer vom Nutzer vorher gegebenen Traingsmenge an Daten. Diese beinhaltete gekennzeichnete korrekte sowie inkorrekte Vergleichsdatensätze und berechnet daraus zunächst bestimmte Parameter für die Abarbeitung der eigentlichen Daten.
Marlin ist eine auf dem Weka-Framework [weka06] basierende, automatische Trainingsumgebung der Universität Texas [Bilen03].
In der Trainingsphase bekommt Marlin lernbare DistanzMetriken für jedes Datenfeld präsentiert. Homonyme („noisy trainingsdata“) wie beispielsweise „Asian“ und „Seafood“ werden dabei als Trainingspaare erkannt und erhalten eine Ähnlichkeit zugewiesen.
Nach dem Erlernen dieser Ähnlichkeitsmetriken für jedes individuelle Datensatzfeld wird das gewonnene Wissen genutzt, um die Distanz für jeden Datensatz zu berechnen. Diese Vektoren bestehend aus Distanz-Merkmalen und werden als Trainingsdaten für den Binärklassifikator genutzt. Bei diesem Vorgang kommt der unter Kapitel 4.5.5. vorgestellte „Support Vector Machine“-Algorithmus zur Anwendung, welche traditionelle Entscheidungsbäume übertrifft [kdd03].
In der „Erkennungsphase“ werden alle Datensätze miteinander verglichen. Da dies eine Anzahl von O(n²) Vergleichen bedeuten würde, nutzt „Marlin“ einen aus Canopies-Clustering via Jaccard bestehenden Pre-Blocking-Algorithmus.
Anschließend werden die gelernten Distanz-Metriken verwendet, um jedes Feld von jedem Paar möglicher Duplikat-Datensätze auszuwerten, also der Erstellung von Distanz-Feature-Vektoren für den Klassifizierer. Glaubhafte Schätzungen zur Einordnung in die Gruppe der Duplikate oder Unikate werden durch den Binär-Klassifikator vorgenommen, und Paare werden mit aufsteigender Reihenfolge sortiert.
Cohen/Richman
Der von Cohen und Richmann genutzte Ansatz verwendet ebenso den Canopy-Algorithmus. Dieser wählt zu Beginn aus dem kompletten Datenbestand bestimmte Datensatzpaare aus, für die der Benutzer die Einteilung „match“ oder „non-match“ übernimmt. Diese werden darauffolgend als „Mittelpunkte“ genutzt.
Der Canopy-Algorithmus teilt nun mit Hilfe der Parameter und alle weiteren Paare den identifizierten Paaren zu.
Mit den gewonnenen Informationen bildet der Klassifikations-Lerner zwei Funktionen. Zum einen eine boolean-Funktion h(a,b), welche die Übereinstimmung der Datensätze a und b zurückgibt, zum Zweiten eine Funktion c(a,b), die die Wahrscheinlichkeit liefert, mit der die Klassifizierung h(a,b) positiv ist. Je höher c, umso sicherer ist der Klassifikations-Lerner mit der Einstufung der beiden Records als Duplikate.
Um den Maschinenlerner, meist ein „Expectation Maximization Lerner“, zu trainieren, werden aus den Kandidatenpaaren m Paare ausgewählt, für die der Nutzer die Übereinstimmung bewertet.
Hierbei werden aus den beiden Records mehrere Eigenschaften zusammen betrachtet, um daraus die Hypothese c(a,b) möglichst genau anzupassen. Eigenschaften sind binär, also ein Datensatz, und besitzt eine Eigenschaft oder nicht. Mögliche Paar-Eigenschaften sind SubstringMatch, PrefixMath, EditDistance, MatchAToken, MatchBToken, MatchABigram, JaccardDistance, StrongNumberDistance.
Die Spalten „Titel“ und „Adresse“ könnten folgende Eigenschaften genutzt werden: SubstringTitel,SubstringAdresse, PrefixMatchTitel, PrefixMatchAdresse,StrongNumberMatchTitel, StrongNumberMatchAdresse. Der Learner gewichtet die Nutzerauswahl, und stärkt somit sein internes Klassifikations-Modell. Abschließend wird auf die Gesamtmenge an Werten ein „GreedyAgglomerativeClustering“-Algorithmus [CallumNigamUngar] angewendet, welcher die Gesamtmenge aufteilt, bis eine vorgegebene Teilmengenanzahl erreicht wurde.
Tejada Knobloch Minton
Dieser Ansatz arbeitet äquivalent zu Cohen und Richman, baut allerdings nach der 2. Lernphase einen Entscheidungbaum („Decision Tree“) aufgebaut, um alle weiteren Vergleiche über diesen traversierend durchgeführt.
Wie in diesem Kapitel verdeutlicht wurde, kann Datenharmonisierung in verschiedenen Dimensionen durchgeführt werden.
Abschließend soll ein kleiner Überblick zu frei verfügbaren Datenharmonisierungs-Tools bzw. Frameworks gegeben werden. Er stellt keinerlei Anspruch auf Vollständigkeit, sondern eine während der Bearbeitung explorativ aufgefundene Auswahl dar. Zunächst werden die Methoden-Sammlungen von Wilhelm Cohen und Sam Chapman genannt. Anschließend folgen einige Worte zu einem Record-Linkage-Framework von Peter Christen und Tim Churches. Abschließend wird das mit Lernmethoden aus Kapitel Klassifizierung arbeitende Marlin-Framework angesprochen, und mit ähnlichen Ansätzen von Cohen et.al und Minton et.al. verglichen.
SecondString / Simmetrik
[secstring06] SecondString ist eine Sammlung von Java-Klassen, welche eine große Auswahl an String-Vergleichs-Algorithmen enthalten. Von W. Cohen für Zeichenvergleichs-Experimente entwickelt, umfasst SecondString Methoden zum Tokenisieren und Grobblockieren, statische Zeichenketten-Metriken sowie Gewichtungsmethoden, jedoch keine Methoden zur Daten-Standardisierung oder Klassifizierung.
[simmetric06] stellt den europäischen Gegenpart dar. Der Umfang ist vergleichbar, der Code jedoch übersichtlicher gestaltet. Beide Pakete sind als OpenSource-Download unter [SF06] zu finden.
Ferbl
Die Herkunft des in objektorientierten Python implementierten Frameworks [Febrl05] liegt in der Bioinformatik. An der Universität Canberra, Australien von Peter Christen und Tim Churches entwickelt, stellt es die vollständige Mächtigkeit für Harmonisierungsaufgaben zur Verfügung. Ferbl teilt die Datenbearbeitung in die Schritte Datenanalyse/Standardisierung und Record-Linkage/Deduplikation auf.
Der erste Schritt umfasst im einzelnen die Wort-Ersetzung unter Nutzung von Lookup-Tables und Korrekturlisten. Anschließende werden Datums- und Zeitformate standardisiert und die Ergebnisse zwischengespeichert.
Im zweiten Schritt werden auf die Datenmenge Blockier- und Sortieralgorithmen angewendet und mögliche Treffer einem Feldvergleich mit individuellen, im Kapitel 4.4 vorgestellten Methoden zugeführt. In der Klassifizierung werden die Ergebnisse ausgewertet und ein ausführliches Logging für Protokoll-Untersuchungen erstellt.
Marlin
Die Ähnlichkeitsschätzung zwischen Strings ist enormen Schwankungen unterlegen, abhängig von Domain und Aspekt (Betrachtungsweise). Anstatt diese Gewichtungen von Hand anzulernen sind trainierbaren Ähnlichkeitsberechnungen der Vorzug zu geben.
Die Folgende drei Ansätze, wovon Marlin als Einziger umgesetzt zu sein scheint, arbeiten mit einer vom Nutzer vorher gegebenen Traingsmenge an Daten. Diese beinhaltete gekennzeichnete korrekte sowie inkorrekte Vergleichsdatensätze und berechnet daraus zunächst bestimmte Parameter für die Abarbeitung der eigentlichen Daten.
Marlin ist eine auf dem Weka-Framework [weka06] basierende, automatische Trainingsumgebung der Universität Texas [Bilen03].
In der Trainingsphase bekommt Marlin lernbare DistanzMetriken für jedes Datenfeld präsentiert. Homonyme („noisy trainingsdata“) wie beispielsweise „Asian“ und „Seafood“ werden dabei als Trainingspaare erkannt und erhalten eine Ähnlichkeit zugewiesen.
Nach dem Erlernen dieser Ähnlichkeitsmetriken für jedes individuelle Datensatzfeld wird das gewonnene Wissen genutzt, um die Distanz für jeden Datensatz zu berechnen. Diese Vektoren bestehend aus Distanz-Merkmalen und werden als Trainingsdaten für den Binärklassifikator genutzt. Bei diesem Vorgang kommt der unter Kapitel 4.5.5. vorgestellte „Support Vector Machine“-Algorithmus zur Anwendung, welche traditionelle Entscheidungsbäume übertrifft [kdd03].
In der „Erkennungsphase“ werden alle Datensätze miteinander verglichen. Da dies eine Anzahl von O(n²) Vergleichen bedeuten würde, nutzt „Marlin“ einen aus Canopies-Clustering via Jaccard bestehenden Pre-Blocking-Algorithmus.
Anschließend werden die gelernten Distanz-Metriken verwendet, um jedes Feld von jedem Paar möglicher Duplikat-Datensätze auszuwerten, also der Erstellung von Distanz-Feature-Vektoren für den Klassifizierer. Glaubhafte Schätzungen zur Einordnung in die Gruppe der Duplikate oder Unikate werden durch den Binär-Klassifikator vorgenommen, und Paare werden mit aufsteigender Reihenfolge sortiert.
Cohen/Richman
Der von Cohen und Richmann genutzte Ansatz verwendet ebenso den Canopy-Algorithmus. Dieser wählt zu Beginn aus dem kompletten Datenbestand bestimmte Datensatzpaare aus, für die der Benutzer die Einteilung „match“ oder „non-match“ übernimmt. Diese werden darauffolgend als „Mittelpunkte“ genutzt.
Der Canopy-Algorithmus teilt nun mit Hilfe der Parameter und alle weiteren Paare den identifizierten Paaren zu.
Mit den gewonnenen Informationen bildet der Klassifikations-Lerner zwei Funktionen. Zum einen eine boolean-Funktion h(a,b), welche die Übereinstimmung der Datensätze a und b zurückgibt, zum Zweiten eine Funktion c(a,b), die die Wahrscheinlichkeit liefert, mit der die Klassifizierung h(a,b) positiv ist. Je höher c, umso sicherer ist der Klassifikations-Lerner mit der Einstufung der beiden Records als Duplikate.
Um den Maschinenlerner, meist ein „Expectation Maximization Lerner“, zu trainieren, werden aus den Kandidatenpaaren m Paare ausgewählt, für die der Nutzer die Übereinstimmung bewertet.
Hierbei werden aus den beiden Records mehrere Eigenschaften zusammen betrachtet, um daraus die Hypothese c(a,b) möglichst genau anzupassen. Eigenschaften sind binär, also ein Datensatz, und besitzt eine Eigenschaft oder nicht. Mögliche Paar-Eigenschaften sind SubstringMatch, PrefixMath, EditDistance, MatchAToken, MatchBToken, MatchABigram, JaccardDistance, StrongNumberDistance.
Die Spalten „Titel“ und „Adresse“ könnten folgende Eigenschaften genutzt werden: SubstringTitel,SubstringAdresse, PrefixMatchTitel, PrefixMatchAdresse,StrongNumberMatchTitel, StrongNumberMatchAdresse. Der Learner gewichtet die Nutzerauswahl, und stärkt somit sein internes Klassifikations-Modell. Abschließend wird auf die Gesamtmenge an Werten ein „GreedyAgglomerativeClustering“-Algorithmus [CallumNigamUngar] angewendet, welcher die Gesamtmenge aufteilt, bis eine vorgegebene Teilmengenanzahl erreicht wurde.
Tejada Knobloch Minton
Dieser Ansatz arbeitet äquivalent zu Cohen und Richman, baut allerdings nach der 2. Lernphase einen Entscheidungbaum („Decision Tree“) aufgebaut, um alle weiteren Vergleiche über diesen traversierend durchgeführt.
Wie in diesem Kapitel verdeutlicht wurde, kann Datenharmonisierung in verschiedenen Dimensionen durchgeführt werden.
Abschließend soll ein kleiner Überblick zu frei verfügbaren Datenharmonisierungs-Tools bzw. Frameworks gegeben werden. Er stellt keinerlei Anspruch auf Vollständigkeit, sondern eine während der Bearbeitung explorativ aufgefundene Auswahl dar. Zunächst werden die Methoden-Sammlungen von Wilhelm Cohen und Sam Chapman genannt. Anschließend folgen einige Worte zu einem Record-Linkage-Framework von Peter Christen und Tim Churches. Abschließend wird das mit Lernmethoden aus Kapitel Klassifizierung arbeitende Marlin-Framework angesprochen, und mit ähnlichen Ansätzen von Cohen et.al und Minton et.al. verglichen.
SecondString / Simmetrik
[secstring06] SecondString ist eine Sammlung von Java-Klassen, welche eine große Auswahl an String-Vergleichs-Algorithmen enthalten. Von W. Cohen für Zeichenvergleichs-Experimente entwickelt, umfasst SecondString Methoden zum Tokenisieren und Grobblockieren, statische Zeichenketten-Metriken sowie Gewichtungsmethoden, jedoch keine Methoden zur Daten-Standardisierung oder Klassifizierung.
[simmetric06] stellt den europäischen Gegenpart dar. Der Umfang ist vergleichbar, der Code jedoch übersichtlicher gestaltet. Beide Pakete sind als OpenSource-Download unter [SF06] zu finden.
Ferbl
Die Herkunft des in objektorientierten Python implementierten Frameworks [Febrl05] liegt in der Bioinformatik. An der Universität Canberra, Australien von Peter Christen und Tim Churches entwickelt, stellt es die vollständige Mächtigkeit für Harmonisierungsaufgaben zur Verfügung. Ferbl teilt die Datenbearbeitung in die Schritte Datenanalyse/Standardisierung und Record-Linkage/Deduplikation auf.
Der erste Schritt umfasst im einzelnen die Wort-Ersetzung unter Nutzung von Lookup-Tables und Korrekturlisten. Anschließende werden Datums- und Zeitformate standardisiert und die Ergebnisse zwischengespeichert.
Im zweiten Schritt werden auf die Datenmenge Blockier- und Sortieralgorithmen angewendet und mögliche Treffer einem Feldvergleich mit individuellen, im Kapitel 4.4 vorgestellten Methoden zugeführt. In der Klassifizierung werden die Ergebnisse ausgewertet und ein ausführliches Logging für Protokoll-Untersuchungen erstellt.
Marlin
Die Ähnlichkeitsschätzung zwischen Strings ist enormen Schwankungen unterlegen, abhängig von Domain und Aspekt (Betrachtungsweise). Anstatt diese Gewichtungen von Hand anzulernen sind trainierbaren Ähnlichkeitsberechnungen der Vorzug zu geben.
Die Folgende drei Ansätze, wovon Marlin als Einziger umgesetzt zu sein scheint, arbeiten mit einer vom Nutzer vorher gegebenen Traingsmenge an Daten. Diese beinhaltete gekennzeichnete korrekte sowie inkorrekte Vergleichsdatensätze und berechnet daraus zunächst bestimmte Parameter für die Abarbeitung der eigentlichen Daten.
Marlin ist eine auf dem Weka-Framework [weka06] basierende, automatische Trainingsumgebung der Universität Texas [Bilen03].
In der Trainingsphase bekommt Marlin lernbare DistanzMetriken für jedes Datenfeld präsentiert. Homonyme („noisy trainingsdata“) wie beispielsweise „Asian“ und „Seafood“ werden dabei als Trainingspaare erkannt und erhalten eine Ähnlichkeit zugewiesen.
Nach dem Erlernen dieser Ähnlichkeitsmetriken für jedes individuelle Datensatzfeld wird das gewonnene Wissen genutzt, um die Distanz für jeden Datensatz zu berechnen. Diese Vektoren bestehend aus Distanz-Merkmalen und werden als Trainingsdaten für den Binärklassifikator genutzt. Bei diesem Vorgang kommt der unter Kapitel 4.5.5. vorgestellte „Support Vector Machine“-Algorithmus zur Anwendung, welche traditionelle Entscheidungsbäume übertrifft [kdd03].
In der „Erkennungsphase“ werden alle Datensätze miteinander verglichen. Da dies eine Anzahl von O(n²) Vergleichen bedeuten würde, nutzt „Marlin“ einen aus Canopies-Clustering via Jaccard bestehenden Pre-Blocking-Algorithmus.
Anschließend werden die gelernten Distanz-Metriken verwendet, um jedes Feld von jedem Paar möglicher Duplikat-Datensätze auszuwerten, also der Erstellung von Distanz-Feature-Vektoren für den Klassifizierer. Glaubhafte Schätzungen zur Einordnung in die Gruppe der Duplikate oder Unikate werden durch den Binär-Klassifikator vorgenommen, und Paare werden mit aufsteigender Reihenfolge sortiert.
Cohen/Richman
Der von Cohen und Richmann genutzte Ansatz verwendet ebenso den Canopy-Algorithmus. Dieser wählt zu Beginn aus dem kompletten Datenbestand bestimmte Datensatzpaare aus, für die der Benutzer die Einteilung „match“ oder „non-match“ übernimmt. Diese werden darauffolgend als „Mittelpunkte“ genutzt.
Der Canopy-Algorithmus teilt nun mit Hilfe der Parameter und alle weiteren Paare den identifizierten Paaren zu.
Mit den gewonnenen Informationen bildet der Klassifikations-Lerner zwei Funktionen. Zum einen eine boolean-Funktion h(a,b), welche die Übereinstimmung der Datensätze a und b zurückgibt, zum Zweiten eine Funktion c(a,b), die die Wahrscheinlichkeit liefert, mit der die Klassifizierung h(a,b) positiv ist. Je höher c, umso sicherer ist der Klassifikations-Lerner mit der Einstufung der beiden Records als Duplikate.
Um den Maschinenlerner, meist ein „Expectation Maximization Lerner“, zu trainieren, werden aus den Kandidatenpaaren m Paare ausgewählt, für die der Nutzer die Übereinstimmung bewertet.
Hierbei werden aus den beiden Records mehrere Eigenschaften zusammen betrachtet, um daraus die Hypothese c(a,b) möglichst genau anzupassen. Eigenschaften sind binär, also ein Datensatz, und besitzt eine Eigenschaft oder nicht. Mögliche Paar-Eigenschaften sind SubstringMatch, PrefixMath, EditDistance, MatchAToken, MatchBToken, MatchABigram, JaccardDistance, StrongNumberDistance.
Die Spalten „Titel“ und „Adresse“ könnten folgende Eigenschaften genutzt werden: SubstringTitel,SubstringAdresse, PrefixMatchTitel, PrefixMatchAdresse,StrongNumberMatchTitel, StrongNumberMatchAdresse. Der Learner gewichtet die Nutzerauswahl, und stärkt somit sein internes Klassifikations-Modell. Abschließend wird auf die Gesamtmenge an Werten ein „GreedyAgglomerativeClustering“-Algorithmus [CallumNigamUngar] angewendet, welcher die Gesamtmenge aufteilt, bis eine vorgegebene Teilmengenanzahl erreicht wurde.
Tejada Knobloch Minton
Dieser Ansatz arbeitet äquivalent zu Cohen und Richman, baut allerdings nach der 2. Lernphase einen Entscheidungbaum („Decision Tree“) aufgebaut, um alle weiteren Vergleiche über diesen traversierend durchgeführt.
Wie in diesem Kapitel verdeutlicht wurde, kann Datenharmonisierung in verschiedenen Dimensionen durchgeführt werden.
Abschließend soll ein kleiner Überblick zu frei verfügbaren Datenharmonisierungs-Tools bzw. Frameworks gegeben werden. Er stellt keinerlei Anspruch auf Vollständigkeit, sondern eine während der Bearbeitung explorativ aufgefundene Auswahl dar. Zunächst werden die Methoden-Sammlungen von Wilhelm Cohen und Sam Chapman genannt. Anschließend folgen einige Worte zu einem Record-Linkage-Framework von Peter Christen und Tim Churches. Abschließend wird das mit Lernmethoden aus Kapitel Klassifizierung arbeitende Marlin-Framework angesprochen, und mit ähnlichen Ansätzen von Cohen et.al und Minton et.al. verglichen.
SecondString / Simmetrik
[secstring06] SecondString ist eine Sammlung von Java-Klassen, welche eine große Auswahl an String-Vergleichs-Algorithmen enthalten. Von W. Cohen für Zeichenvergleichs-Experimente entwickelt, umfasst SecondString Methoden zum Tokenisieren und Grobblockieren, statische Zeichenketten-Metriken sowie Gewichtungsmethoden, jedoch keine Methoden zur Daten-Standardisierung oder Klassifizierung.
[simmetric06] stellt den europäischen Gegenpart dar. Der Umfang ist vergleichbar, der Code jedoch übersichtlicher gestaltet. Beide Pakete sind als OpenSource-Download unter [SF06] zu finden.
Ferbl
Die Herkunft des in objektorientierten Python implementierten Frameworks [Febrl05] liegt in der Bioinformatik. An der Universität Canberra, Australien von Peter Christen und Tim Churches entwickelt, stellt es die vollständige Mächtigkeit für Harmonisierungsaufgaben zur Verfügung. Ferbl teilt die Datenbearbeitung in die Schritte Datenanalyse/Standardisierung und Record-Linkage/Deduplikation auf.
Der erste Schritt umfasst im einzelnen die Wort-Ersetzung unter Nutzung von Lookup-Tables und Korrekturlisten. Anschließende werden Datums- und Zeitformate standardisiert und die Ergebnisse zwischengespeichert.
Im zweiten Schritt werden auf die Datenmenge Blockier- und Sortieralgorithmen angewendet und mögliche Treffer einem Feldvergleich mit individuellen, im Kapitel 4.4 vorgestellten Methoden zugeführt. In der Klassifizierung werden die Ergebnisse ausgewertet und ein ausführliches Logging für Protokoll-Untersuchungen erstellt.
Marlin
Die Ähnlichkeitsschätzung zwischen Strings ist enormen Schwankungen unterlegen, abhängig von Domain und Aspekt (Betrachtungsweise). Anstatt diese Gewichtungen von Hand anzulernen sind trainierbaren Ähnlichkeitsberechnungen der Vorzug zu geben.
Die Folgende drei Ansätze, wovon Marlin als Einziger umgesetzt zu sein scheint, arbeiten mit einer vom Nutzer vorher gegebenen Traingsmenge an Daten. Diese beinhaltete gekennzeichnete korrekte sowie inkorrekte Vergleichsdatensätze und berechnet daraus zunächst bestimmte Parameter für die Abarbeitung der eigentlichen Daten.
Marlin ist eine auf dem Weka-Framework [weka06] basierende, automatische Trainingsumgebung der Universität Texas [Bilen03].
In der Trainingsphase bekommt Marlin lernbare DistanzMetriken für jedes Datenfeld präsentiert. Homonyme („noisy trainingsdata“) wie beispielsweise „Asian“ und „Seafood“ werden dabei als Trainingspaare erkannt und erhalten eine Ähnlichkeit zugewiesen.
Nach dem Erlernen dieser Ähnlichkeitsmetriken für jedes individuelle Datensatzfeld wird das gewonnene Wissen genutzt, um die Distanz für jeden Datensatz zu berechnen. Diese Vektoren bestehend aus Distanz-Merkmalen und werden als Trainingsdaten für den Binärklassifikator genutzt. Bei diesem Vorgang kommt der unter Kapitel 4.5.5. vorgestellte „Support Vector Machine“-Algorithmus zur Anwendung, welche traditionelle Entscheidungsbäume übertrifft [kdd03].
In der „Erkennungsphase“ werden alle Datensätze miteinander verglichen. Da dies eine Anzahl von O(n²) Vergleichen bedeuten würde, nutzt „Marlin“ einen aus Canopies-Clustering via Jaccard bestehenden Pre-Blocking-Algorithmus.
Anschließend werden die gelernten Distanz-Metriken verwendet, um jedes Feld von jedem Paar möglicher Duplikat-Datensätze auszuwerten, also der Erstellung von Distanz-Feature-Vektoren für den Klassifizierer. Glaubhafte Schätzungen zur Einordnung in die Gruppe der Duplikate oder Unikate werden durch den Binär-Klassifikator vorgenommen, und Paare werden mit aufsteigender Reihenfolge sortiert.
Cohen/Richman
Der von Cohen und Richmann genutzte Ansatz verwendet ebenso den Canopy-Algorithmus. Dieser wählt zu Beginn aus dem kompletten Datenbestand bestimmte Datensatzpaare aus, für die der Benutzer die Einteilung „match“ oder „non-match“ übernimmt. Diese werden darauffolgend als „Mittelpunkte“ genutzt.
Der Canopy-Algorithmus teilt nun mit Hilfe der Parameter und alle weiteren Paare den identifizierten Paaren zu.
Mit den gewonnenen Informationen bildet der Klassifikations-Lerner zwei Funktionen. Zum einen eine boolean-Funktion h(a,b), welche die Übereinstimmung der Datensätze a und b zurückgibt, zum Zweiten eine Funktion c(a,b), die die Wahrscheinlichkeit liefert, mit der die Klassifizierung h(a,b) positiv ist. Je höher c, umso sicherer ist der Klassifikations-Lerner mit der Einstufung der beiden Records als Duplikate.
Um den Maschinenlerner, meist ein „Expectation Maximization Lerner“, zu trainieren, werden aus den Kandidatenpaaren m Paare ausgewählt, für die der Nutzer die Übereinstimmung bewertet.
Hierbei werden aus den beiden Records mehrere Eigenschaften zusammen betrachtet, um daraus die Hypothese c(a,b) möglichst genau anzupassen. Eigenschaften sind binär, also ein Datensatz, und besitzt eine Eigenschaft oder nicht. Mögliche Paar-Eigenschaften sind SubstringMatch, PrefixMath, EditDistance, MatchAToken, MatchBToken, MatchABigram, JaccardDistance, StrongNumberDistance.
Die Spalten „Titel“ und „Adresse“ könnten folgende Eigenschaften genutzt werden: SubstringTitel,SubstringAdresse, PrefixMatchTitel, PrefixMatchAdresse,StrongNumberMatchTitel, StrongNumberMatchAdresse. Der Learner gewichtet die Nutzerauswahl, und stärkt somit sein internes Klassifikations-Modell. Abschließend wird auf die Gesamtmenge an Werten ein „GreedyAgglomerativeClustering“-Algorithmus [CallumNigamUngar] angewendet, welcher die Gesamtmenge aufteilt, bis eine vorgegebene Teilmengenanzahl erreicht wurde.
Tejada Knobloch Minton
Dieser Ansatz arbeitet äquivalent zu Cohen und Richman, baut allerdings nach der 2. Lernphase einen Entscheidungbaum („Decision Tree“) aufgebaut, um alle weiteren Vergleiche über diesen traversierend durchgeführt.
Wie in diesem Kapitel verdeutlicht wurde, kann Datenharmonisierung in verschiedenen Dimensionen durchgeführt werden.
Abschließend soll ein kleiner Überblick zu frei verfügbaren Datenharmonisierungs-Tools bzw. Frameworks gegeben werden. Er stellt keinerlei Anspruch auf Vollständigkeit, sondern eine während der Bearbeitung explorativ aufgefundene Auswahl dar. Zunächst werden die Methoden-Sammlungen von Wilhelm Cohen und Sam Chapman genannt. Anschließend folgen einige Worte zu einem Record-Linkage-Framework von Peter Christen und Tim Churches. Abschließend wird das mit Lernmethoden aus Kapitel Klassifizierung arbeitende Marlin-Framework angesprochen, und mit ähnlichen Ansätzen von Cohen et.al und Minton et.al. verglichen.
SecondString / Simmetrik
[secstring06] SecondString ist eine Sammlung von Java-Klassen, welche eine große Auswahl an String-Vergleichs-Algorithmen enthalten. Von W. Cohen für Zeichenvergleichs-Experimente entwickelt, umfasst SecondString Methoden zum Tokenisieren und Grobblockieren, statische Zeichenketten-Metriken sowie Gewichtungsmethoden, jedoch keine Methoden zur Daten-Standardisierung oder Klassifizierung.
[simmetric06] stellt den europäischen Gegenpart dar. Der Umfang ist vergleichbar, der Code jedoch übersichtlicher gestaltet. Beide Pakete sind als OpenSource-Download unter [SF06] zu finden.
Ferbl
Die Herkunft des in objektorientierten Python implementierten Frameworks [Febrl05] liegt in der Bioinformatik. An der Universität Canberra, Australien von Peter Christen und Tim Churches entwickelt, stellt es die vollständige Mächtigkeit für Harmonisierungsaufgaben zur Verfügung. Ferbl teilt die Datenbearbeitung in die Schritte Datenanalyse/Standardisierung und Record-Linkage/Deduplikation auf.
Der erste Schritt umfasst im einzelnen die Wort-Ersetzung unter Nutzung von Lookup-Tables und Korrekturlisten. Anschließende werden Datums- und Zeitformate standardisiert und die Ergebnisse zwischengespeichert.
Im zweiten Schritt werden auf die Datenmenge Blockier- und Sortieralgorithmen angewendet und mögliche Treffer einem Feldvergleich mit individuellen, im Kapitel 4.4 vorgestellten Methoden zugeführt. In der Klassifizierung werden die Ergebnisse ausgewertet und ein ausführliches Logging für Protokoll-Untersuchungen erstellt.
Marlin
Die Ähnlichkeitsschätzung zwischen Strings ist enormen Schwankungen unterlegen, abhängig von Domain und Aspekt (Betrachtungsweise). Anstatt diese Gewichtungen von Hand anzulernen sind trainierbaren Ähnlichkeitsberechnungen der Vorzug zu geben.
Die Folgende drei Ansätze, wovon Marlin als Einziger umgesetzt zu sein scheint, arbeiten mit einer vom Nutzer vorher gegebenen Traingsmenge an Daten. Diese beinhaltete gekennzeichnete korrekte sowie inkorrekte Vergleichsdatensätze und berechnet daraus zunächst bestimmte Parameter für die Abarbeitung der eigentlichen Daten.
Marlin ist eine auf dem Weka-Framework [weka06] basierende, automatische Trainingsumgebung der Universität Texas [Bilen03].
In der Trainingsphase bekommt Marlin lernbare DistanzMetriken für jedes Datenfeld präsentiert. Homonyme („noisy trainingsdata“) wie beispielsweise „Asian“ und „Seafood“ werden dabei als Trainingspaare erkannt und erhalten eine Ähnlichkeit zugewiesen.
Nach dem Erlernen dieser Ähnlichkeitsmetriken für jedes individuelle Datensatzfeld wird das gewonnene Wissen genutzt, um die Distanz für jeden Datensatz zu berechnen. Diese Vektoren bestehend aus Distanz-Merkmalen und werden als Trainingsdaten für den Binärklassifikator genutzt. Bei diesem Vorgang kommt der unter Kapitel 4.5.5. vorgestellte „Support Vector Machine“-Algorithmus zur Anwendung, welche traditionelle Entscheidungsbäume übertrifft [kdd03].
In der „Erkennungsphase“ werden alle Datensätze miteinander verglichen. Da dies eine Anzahl von O(n²) Vergleichen bedeuten würde, nutzt „Marlin“ einen aus Canopies-Clustering via Jaccard bestehenden Pre-Blocking-Algorithmus.
Anschließend werden die gelernten Distanz-Metriken verwendet, um jedes Feld von jedem Paar möglicher Duplikat-Datensätze auszuwerten, also der Erstellung von Distanz-Feature-Vektoren für den Klassifizierer. Glaubhafte Schätzungen zur Einordnung in die Gruppe der Duplikate oder Unikate werden durch den Binär-Klassifikator vorgenommen, und Paare werden mit aufsteigender Reihenfolge sortiert.
Cohen/Richman
Der von Cohen und Richmann genutzte Ansatz verwendet ebenso den Canopy-Algorithmus. Dieser wählt zu Beginn aus dem kompletten Datenbestand bestimmte Datensatzpaare aus, für die der Benutzer die Einteilung „match“ oder „non-match“ übernimmt. Diese werden darauffolgend als „Mittelpunkte“ genutzt.
Der Canopy-Algorithmus teilt nun mit Hilfe der Parameter und alle weiteren Paare den identifizierten Paaren zu.
Mit den gewonnenen Informationen bildet der Klassifikations-Lerner zwei Funktionen. Zum einen eine boolean-Funktion h(a,b), welche die Übereinstimmung der Datensätze a und b zurückgibt, zum Zweiten eine Funktion c(a,b), die die Wahrscheinlichkeit liefert, mit der die Klassifizierung h(a,b) positiv ist. Je höher c, umso sicherer ist der Klassifikations-Lerner mit der Einstufung der beiden Records als Duplikate.
Um den Maschinenlerner, meist ein „Expectation Maximization Lerner“, zu trainieren, werden aus den Kandidatenpaaren m Paare ausgewählt, für die der Nutzer die Übereinstimmung bewertet.
Hierbei werden aus den beiden Records mehrere Eigenschaften zusammen betrachtet, um daraus die Hypothese c(a,b) möglichst genau anzupassen. Eigenschaften sind binär, also ein Datensatz, und besitzt eine Eigenschaft oder nicht. Mögliche Paar-Eigenschaften sind SubstringMatch, PrefixMath, EditDistance, MatchAToken, MatchBToken, MatchABigram, JaccardDistance, StrongNumberDistance.
Die Spalten „Titel“ und „Adresse“ könnten folgende Eigenschaften genutzt werden: SubstringTitel,SubstringAdresse, PrefixMatchTitel, PrefixMatchAdresse,StrongNumberMatchTitel, StrongNumberMatchAdresse. Der Learner gewichtet die Nutzerauswahl, und stärkt somit sein internes Klassifikations-Modell. Abschließend wird auf die Gesamtmenge an Werten ein „GreedyAgglomerativeClustering“-Algorithmus [CallumNigamUngar] angewendet, welcher die Gesamtmenge aufteilt, bis eine vorgegebene Teilmengenanzahl erreicht wurde.
Tejada Knobloch Minton
Dieser Ansatz arbeitet äquivalent zu Cohen und Richman, baut allerdings nach der 2. Lernphase einen Entscheidungbaum („Decision Tree“) aufgebaut, um alle weiteren Vergleiche über diesen traversierend durchgeführt.
Wie in diesem Kapitel verdeutlicht wurde, kann Datenharmonisierung in verschiedenen Dimensionen durchgeführt werden.
Abschließend soll ein kleiner Überblick zu frei verfügbaren Datenharmonisierungs-Tools bzw. Frameworks gegeben werden. Er stellt keinerlei Anspruch auf Vollständigkeit, sondern eine während der Bearbeitung explorativ aufgefundene Auswahl dar. Zunächst werden die Methoden-Sammlungen von Wilhelm Cohen und Sam Chapman genannt. Anschließend folgen einige Worte zu einem Record-Linkage-Framework von Peter Christen und Tim Churches. Abschließend wird das mit Lernmethoden aus Kapitel Klassifizierung arbeitende Marlin-Framework angesprochen, und mit ähnlichen Ansätzen von Cohen et.al und Minton et.al. verglichen.
SecondString / Simmetrik
[secstring06] SecondString ist eine Sammlung von Java-Klassen, welche eine große Auswahl an String-Vergleichs-Algorithmen enthalten. Von W. Cohen für Zeichenvergleichs-Experimente entwickelt, umfasst SecondString Methoden zum Tokenisieren und Grobblockieren, statische Zeichenketten-Metriken sowie Gewichtungsmethoden, jedoch keine Methoden zur Daten-Standardisierung oder Klassifizierung.
[simmetric06] stellt den europäischen Gegenpart dar. Der Umfang ist vergleichbar, der Code jedoch übersichtlicher gestaltet. Beide Pakete sind als OpenSource-Download unter [SF06] zu finden.
Ferbl
Die Herkunft des in objektorientierten Python implementierten Frameworks [Febrl05] liegt in der Bioinformatik. An der Universität Canberra, Australien von Peter Christen und Tim Churches entwickelt, stellt es die vollständige Mächtigkeit für Harmonisierungsaufgaben zur Verfügung. Ferbl teilt die Datenbearbeitung in die Schritte Datenanalyse/Standardisierung und Record-Linkage/Deduplikation auf.
Der erste Schritt umfasst im einzelnen die Wort-Ersetzung unter Nutzung von Lookup-Tables und Korrekturlisten. Anschließende werden Datums- und Zeitformate standardisiert und die Ergebnisse zwischengespeichert.
Im zweiten Schritt werden auf die Datenmenge Blockier- und Sortieralgorithmen angewendet und mögliche Treffer einem Feldvergleich mit individuellen, im Kapitel 4.4 vorgestellten Methoden zugeführt. In der Klassifizierung werden die Ergebnisse ausgewertet und ein ausführliches Logging für Protokoll-Untersuchungen erstellt.
Marlin
Die Ähnlichkeitsschätzung zwischen Strings ist enormen Schwankungen unterlegen, abhängig von Domain und Aspekt (Betrachtungsweise). Anstatt diese Gewichtungen von Hand anzulernen sind trainierbaren Ähnlichkeitsberechnungen der Vorzug zu geben.
Die Folgende drei Ansätze, wovon Marlin als Einziger umgesetzt zu sein scheint, arbeiten mit einer vom Nutzer vorher gegebenen Traingsmenge an Daten. Diese beinhaltete gekennzeichnete korrekte sowie inkorrekte Vergleichsdatensätze und berechnet daraus zunächst bestimmte Parameter für die Abarbeitung der eigentlichen Daten.
Marlin ist eine auf dem Weka-Framework [weka06] basierende, automatische Trainingsumgebung der Universität Texas [Bilen03].
In der Trainingsphase bekommt Marlin lernbare DistanzMetriken für jedes Datenfeld präsentiert. Homonyme („noisy trainingsdata“) wie beispielsweise „Asian“ und „Seafood“ werden dabei als Trainingspaare erkannt und erhalten eine Ähnlichkeit zugewiesen.
Nach dem Erlernen dieser Ähnlichkeitsmetriken für jedes individuelle Datensatzfeld wird das gewonnene Wissen genutzt, um die Distanz für jeden Datensatz zu berechnen. Diese Vektoren bestehend aus Distanz-Merkmalen und werden als Trainingsdaten für den Binärklassifikator genutzt. Bei diesem Vorgang kommt der unter Kapitel 4.5.5. vorgestellte „Support Vector Machine“-Algorithmus zur Anwendung, welche traditionelle Entscheidungsbäume übertrifft [kdd03].
In der „Erkennungsphase“ werden alle Datensätze miteinander verglichen. Da dies eine Anzahl von O(n²) Vergleichen bedeuten würde, nutzt „Marlin“ einen aus Canopies-Clustering via Jaccard bestehenden Pre-Blocking-Algorithmus.
Anschließend werden die gelernten Distanz-Metriken verwendet, um jedes Feld von jedem Paar möglicher Duplikat-Datensätze auszuwerten, also der Erstellung von Distanz-Feature-Vektoren für den Klassifizierer. Glaubhafte Schätzungen zur Einordnung in die Gruppe der Duplikate oder Unikate werden durch den Binär-Klassifikator vorgenommen, und Paare werden mit aufsteigender Reihenfolge sortiert.
Cohen/Richman
Der von Cohen und Richmann genutzte Ansatz verwendet ebenso den Canopy-Algorithmus. Dieser wählt zu Beginn aus dem kompletten Datenbestand bestimmte Datensatzpaare aus, für die der Benutzer die Einteilung „match“ oder „non-match“ übernimmt. Diese werden darauffolgend als „Mittelpunkte“ genutzt.
Der Canopy-Algorithmus teilt nun mit Hilfe der Parameter und alle weiteren Paare den identifizierten Paaren zu.
Mit den gewonnenen Informationen bildet der Klassifikations-Lerner zwei Funktionen. Zum einen eine boolean-Funktion h(a,b), welche die Übereinstimmung der Datensätze a und b zurückgibt, zum Zweiten eine Funktion c(a,b), die die Wahrscheinlichkeit liefert, mit der die Klassifizierung h(a,b) positiv ist. Je höher c, umso sicherer ist der Klassifikations-Lerner mit der Einstufung der beiden Records als Duplikate.
Um den Maschinenlerner, meist ein „Expectation Maximization Lerner“, zu trainieren, werden aus den Kandidatenpaaren m Paare ausgewählt, für die der Nutzer die Übereinstimmung bewertet.
Hierbei werden aus den beiden Records mehrere Eigenschaften zusammen betrachtet, um daraus die Hypothese c(a,b) möglichst genau anzupassen. Eigenschaften sind binär, also ein Datensatz, und besitzt eine Eigenschaft oder nicht. Mögliche Paar-Eigenschaften sind SubstringMatch, PrefixMath, EditDistance, MatchAToken, MatchBToken, MatchABigram, JaccardDistance, StrongNumberDistance.
Die Spalten „Titel“ und „Adresse“ könnten folgende Eigenschaften genutzt werden: SubstringTitel,SubstringAdresse, PrefixMatchTitel, PrefixMatchAdresse,StrongNumberMatchTitel, StrongNumberMatchAdresse. Der Learner gewichtet die Nutzerauswahl, und stärkt somit sein internes Klassifikations-Modell. Abschließend wird auf die Gesamtmenge an Werten ein „GreedyAgglomerativeClustering“-Algorithmus [CallumNigamUngar] angewendet, welcher die Gesamtmenge aufteilt, bis eine vorgegebene Teilmengenanzahl erreicht wurde.
Tejada Knobloch Minton
Dieser Ansatz arbeitet äquivalent zu Cohen und Richman, baut allerdings nach der 2. Lernphase einen Entscheidungbaum („Decision Tree“) aufgebaut, um alle weiteren Vergleiche über diesen traversierend durchgeführt.
Wie in diesem Kapitel verdeutlicht wurde, kann Datenharmonisierung in verschiedenen Dimensionen durchgeführt werden.
- Es gibt die Gewichtung einzelner Attribute, was sehr häufig getan wird.
- Innerhalb der Attributwerte können durch TF-IDF häufiger und seltener auftretende Terme gewichtet werden.
- Parallel angewendete Metriken können gegeneinander gewichtet bzw. als sequentieller Entscheidungsbaum Top-Down-Traversierung aufgebaut werden.
Abschließend soll ein kleiner Überblick zu frei verfügbaren Datenharmonisierungs-Tools bzw. Frameworks gegeben werden. Er stellt keinerlei Anspruch auf Vollständigkeit, sondern eine während der Bearbeitung explorativ aufgefundene Auswahl dar. Zunächst werden die Methoden-Sammlungen von Wilhelm Cohen und Sam Chapman genannt. Anschließend folgen einige Worte zu einem Record-Linkage-Framework von Peter Christen und Tim Churches. Abschließend wird das mit Lernmethoden aus Kapitel Klassifizierung arbeitende Marlin-Framework angesprochen, und mit ähnlichen Ansätzen von Cohen et.al und Minton et.al. verglichen.
SecondString / Simmetrik
[secstring06] SecondString ist eine Sammlung von Java-Klassen, welche eine große Auswahl an String-Vergleichs-Algorithmen enthalten. Von W. Cohen für Zeichenvergleichs-Experimente entwickelt, umfasst SecondString Methoden zum Tokenisieren und Grobblockieren, statische Zeichenketten-Metriken sowie Gewichtungsmethoden, jedoch keine Methoden zur Daten-Standardisierung oder Klassifizierung.
[simmetric06] stellt den europäischen Gegenpart dar. Der Umfang ist vergleichbar, der Code jedoch übersichtlicher gestaltet. Beide Pakete sind als OpenSource-Download unter [SF06] zu finden.
Ferbl
Die Herkunft des in objektorientierten Python implementierten Frameworks [Febrl05] liegt in der Bioinformatik. An der Universität Canberra, Australien von Peter Christen und Tim Churches entwickelt, stellt es die vollständige Mächtigkeit für Harmonisierungsaufgaben zur Verfügung. Ferbl teilt die Datenbearbeitung in die Schritte Datenanalyse/Standardisierung und Record-Linkage/Deduplikation auf.
Der erste Schritt umfasst im einzelnen die Wort-Ersetzung unter Nutzung von Lookup-Tables und Korrekturlisten. Anschließende werden Datums- und Zeitformate standardisiert und die Ergebnisse zwischengespeichert.
Im zweiten Schritt werden auf die Datenmenge Blockier- und Sortieralgorithmen angewendet und mögliche Treffer einem Feldvergleich mit individuellen, im Kapitel 4.4 vorgestellten Methoden zugeführt. In der Klassifizierung werden die Ergebnisse ausgewertet und ein ausführliches Logging für Protokoll-Untersuchungen erstellt.
Marlin
Die Ähnlichkeitsschätzung zwischen Strings ist enormen Schwankungen unterlegen, abhängig von Domain und Aspekt (Betrachtungsweise). Anstatt diese Gewichtungen von Hand anzulernen sind trainierbaren Ähnlichkeitsberechnungen der Vorzug zu geben.
Die Folgende drei Ansätze, wovon Marlin als Einziger umgesetzt zu sein scheint, arbeiten mit einer vom Nutzer vorher gegebenen Traingsmenge an Daten. Diese beinhaltete gekennzeichnete korrekte sowie inkorrekte Vergleichsdatensätze und berechnet daraus zunächst bestimmte Parameter für die Abarbeitung der eigentlichen Daten.
Marlin ist eine auf dem Weka-Framework [weka06] basierende, automatische Trainingsumgebung der Universität Texas [Bilen03].
In der Trainingsphase bekommt Marlin lernbare DistanzMetriken für jedes Datenfeld präsentiert. Homonyme („noisy trainingsdata“) wie beispielsweise „Asian“ und „Seafood“ werden dabei als Trainingspaare erkannt und erhalten eine Ähnlichkeit zugewiesen.
Nach dem Erlernen dieser Ähnlichkeitsmetriken für jedes individuelle Datensatzfeld wird das gewonnene Wissen genutzt, um die Distanz für jeden Datensatz zu berechnen. Diese Vektoren bestehend aus Distanz-Merkmalen und werden als Trainingsdaten für den Binärklassifikator genutzt. Bei diesem Vorgang kommt der unter Kapitel 4.5.5. vorgestellte „Support Vector Machine“-Algorithmus zur Anwendung, welche traditionelle Entscheidungsbäume übertrifft [kdd03].
In der „Erkennungsphase“ werden alle Datensätze miteinander verglichen. Da dies eine Anzahl von O(n²) Vergleichen bedeuten würde, nutzt „Marlin“ einen aus Canopies-Clustering via Jaccard bestehenden Pre-Blocking-Algorithmus.
Anschließend werden die gelernten Distanz-Metriken verwendet, um jedes Feld von jedem Paar möglicher Duplikat-Datensätze auszuwerten, also der Erstellung von Distanz-Feature-Vektoren für den Klassifizierer. Glaubhafte Schätzungen zur Einordnung in die Gruppe der Duplikate oder Unikate werden durch den Binär-Klassifikator vorgenommen, und Paare werden mit aufsteigender Reihenfolge sortiert.
Cohen/Richman
Der von Cohen und Richmann genutzte Ansatz verwendet ebenso den Canopy-Algorithmus. Dieser wählt zu Beginn aus dem kompletten Datenbestand bestimmte Datensatzpaare aus, für die der Benutzer die Einteilung „match“ oder „non-match“ übernimmt. Diese werden darauffolgend als „Mittelpunkte“ genutzt.
Der Canopy-Algorithmus teilt nun mit Hilfe der Parameter und alle weiteren Paare den identifizierten Paaren zu.
Mit den gewonnenen Informationen bildet der Klassifikations-Lerner zwei Funktionen. Zum einen eine boolean-Funktion h(a,b), welche die Übereinstimmung der Datensätze a und b zurückgibt, zum Zweiten eine Funktion c(a,b), die die Wahrscheinlichkeit liefert, mit der die Klassifizierung h(a,b) positiv ist. Je höher c, umso sicherer ist der Klassifikations-Lerner mit der Einstufung der beiden Records als Duplikate.
Um den Maschinenlerner, meist ein „Expectation Maximization Lerner“, zu trainieren, werden aus den Kandidatenpaaren m Paare ausgewählt, für die der Nutzer die Übereinstimmung bewertet.
Hierbei werden aus den beiden Records mehrere Eigenschaften zusammen betrachtet, um daraus die Hypothese c(a,b) möglichst genau anzupassen. Eigenschaften sind binär, also ein Datensatz, und besitzt eine Eigenschaft oder nicht. Mögliche Paar-Eigenschaften sind SubstringMatch, PrefixMath, EditDistance, MatchAToken, MatchBToken, MatchABigram, JaccardDistance, StrongNumberDistance.
Die Spalten „Titel“ und „Adresse“ könnten folgende Eigenschaften genutzt werden: SubstringTitel,SubstringAdresse, PrefixMatchTitel, PrefixMatchAdresse,StrongNumberMatchTitel, StrongNumberMatchAdresse. Der Learner gewichtet die Nutzerauswahl, und stärkt somit sein internes Klassifikations-Modell. Abschließend wird auf die Gesamtmenge an Werten ein „GreedyAgglomerativeClustering“-Algorithmus [CallumNigamUngar] angewendet, welcher die Gesamtmenge aufteilt, bis eine vorgegebene Teilmengenanzahl erreicht wurde.
Tejada Knobloch Minton
Dieser Ansatz arbeitet äquivalent zu Cohen und Richman, baut allerdings nach der 2. Lernphase einen Entscheidungbaum („Decision Tree“) aufgebaut, um alle weiteren Vergleiche über diesen traversierend durchgeführt.