Fuzzy-Zusammenführung

Konzept-Informationen

FUZZYJOIN-Befehl

Die Analytics-Fuzzy-Zusammenführung verwendet eine Fuzzy-Übereinstimmung von Schlüsselfeldwerten, um zwei Analytics-Tabellen in einer neuen dritten Tabelle zu vereinen. In vielerlei Hinsicht entspricht eine Fuzzy-Zusammenführung einer gewöhnlichen Analytics-Zusammenführung (siehe Zusammenführen von Tabellen). Der Hauptunterschied besteht darin, dass Datensätze nicht nur auf Basis einer genauen Übereinstimmung von Schlüsselfeldwerten zusammengeführt werden. Eine Fuzzy-Zusammenführung kann Datensätze auch auf Basis einer ähnlichen Übereinstimmung zusammenführen.

Eine Fuzzy-Zusammenführung ist nützlich, wenn Primär- und Sekundärschlüssel dieselben Datenarten in leicht unterschiedlicher Ausprägung enthalten. Möglicherweise gibt es in den Schlüsseldaten auch leichte Unregelmäßigkeiten, wie beispielsweise Tippfehler, die eine genaue Übereinstimmung verhindern.

Beispiel

Szenario

Sie möchten Lieferanten identifizieren, die auch Mitarbeiter sind. Dies ist eine Möglichkeit, um Daten auf möglicherweise unangemessene Zahlungen zu analysieren.

Ansatz

Sie führen die Lieferantenstammtabelle mit der Tabelle „Mitarbeiter“ zusammen und verwenden dabei das Adressfeld, das in beiden Tabellen als gemeinsamer Schlüssel existiert (Vendor_Street und Emp_Address). Das Format der Adressdaten weicht in den Schlüsselfeldern aber leicht ab. Daher verwenden Sie statt einer normalen Zusammenführung die Fuzzy-Zusammenführung.

Ein Blick auf einige der Daten

Ohne eine beträchtliche Datenbereinigung und -harmonisierung würden die folgenden Primär- und Sekundärschlüsselwerte durch eine normale Analytics-Zusammenführung nicht zusammengeführt werden, obwohl sie sehr wahrscheinlich übereinstimmen.

Primärschlüsselwerte Sekundärschlüsselwerte
605 3rd Avenue 605 Third Avenue
400 High St SE 400 High Street S.E.
2203 Rowan Street 2203 Rowen St

Selbst nach einer Datenbereinigung und -harmonisierung würden Schlüsselwerte mit leicht unterschiedlichen Schreibweisen, wie „Rowan“ und „Rowen“ wahrscheinlich nicht zusammengeführt werden.

Je nach den Einstellungen könnten die Schlüsselwerte jedoch durch eine Fuzzy-Zusammenführung zusammengeführt werden.

Ausgabeergebnisse

Im folgenden Beispiel der zusammengeführten Tabelle sind genaue Schlüsselfeldübereinstimmungen lila und Fuzzy-Übereinstimmungen grün hervorgehoben.

Fuzzy-Zusammenführung gegenüber Fuzzy-Duplikaten

Eine Fuzzy-Zusammenführung analysiert Werte in Schlüsselfeldern zweier Tabellen. Um ein einzelnes Feld in einer einzelnen Analytics-Tabelle auf fast identische Werte zu testen, lesen Sie Fuzzy-Duplikate-Analyse.

Wirkung von Fuzzy-Zusammenführung verbessern

Mithilfe der folgenden Techniken können Sie die Wirksamkeit der Fuzzy-Zusammenführung beträchtlich steigern:

  • Einzelne Elemente in den Werten der Primär- und Sekundärschlüsselfelder sortieren
  • Generische Elemente aus den Werten der Primär- und Sekundärschlüsselfelder entfernen
  • Werte von Primär- und Sekundärschlüsselfeldern harmonisieren

Durch diese Techniken können Sie striktere Fuzzy-Einstellungen verwenden und dieselben Fuzzy-Übereinstimmungen erhalten, während Sie die Anzahl der Falschmeldungen verringern. Sie können die Techniken separat oder zusammen verwenden.

Ausdruck oder Kalkulationsfeld erstellen

Um die Techniken zu verwenden, müssen Sie einen Ausdruck oder ein Kalkulationsfeld erstellen. Dazu verwenden Sie die jeweilige Analytics-Funktion und eines oder beide Schlüsselfelder.

Weitere Informationen über Ausdrücke finden Sie unter Verwenden von Ausdrücken.

Weitere Informationen über Kalkulationsfelder finden Sie unter Kalkulationsfelder definieren.

Hinweis

Das Dialogfeld Fuzzy-Zusammenführung ermöglicht keine Erstellung eines Ausdrucks für ein Sekundärschlüsselfeld. Sie können jedoch einen Ausdruck für ein Sekundärschlüsselfeld manuell in der Analytics-Befehlszeile oder in einem Skript erstellen. Eine andere Option ist das Erstellen eines Kalkulationsfelds, das als Sekundärschlüsselfeld verwendet wird.

Einzelne Elemente in Schlüsselfeldwerten sortieren

Die Funktion SORTWORDS( ) kann die Wirksamkeit der Fuzzy-Zusammenführung verbessern, indem sie einzelne Elemente von Primär- und Sekundärschlüsselfeldern sequenziell sortiert.

Durch das Sortieren von Elementen, zum Beispiel Komponenten einer Adresse, ist es möglich, dass sich Schlüsselfeldwerte mit denselben Informationen, die ein unterschiedliches Format aufweisen, stärker angleichen. Eine stärkere Angleichung steigert die Wahrscheinlichkeit, dass Schlüsselfeldwerte als Fuzzy-Übereinstimmungen ausgewählt werden.

Weitere Informationen finden Sie unter SORTWORDS( )-Funktion.

Das Video Fuzzy Matching Using SORTWORDS() (Fuzzy-Übereinstimmungen mit SORTWORDS, nur auf Englisch) verschafft Ihnen einen Überblick zu SORTWORDS().

Hinweis

Das Sortieren von Elementen in Schlüsselfeldwerten eignet sich am besten bei einer Fuzzy-Zusammenführung nach dem Levenshtein-Distanz-Algorithmus.

Bei einer Fuzzy-Zusammenführung mit dem Dice-Koeffizient-Algorithmus muss das Sortieren von Elementen nicht unbedingt hilfreich sein. Testen Sie Beispieldaten, bevor Sie entscheiden, ob Sie SORTWORDS( ) in einer Produktionsumgebung zusammen mit dem Dice-Koeffizient-Algorithmus verwenden möchten.

Achtung

Wenn Sie SORTWORDS( ) zusammen mit Fuzzy-Zusammenführung verwenden, müssen Sie SORTWORDS( ) auf beide zu vergleichende Zeichenfolgen oder Felder anwenden.

Generische Elemente aus den Schlüsselfeldwerten entfernen

Die OMIT( )-Funktion kann die Effektivität der Fuzzy-Zusammenführung verbessern, indem generische Elemente wie „GmbH“ oder „AG“ bzw. Zeichen wie Kommas, Punkte und das Kaufmannsund (&) aus den Werten der Primär- und Sekundärschlüsselfelder entfernt werden.

Durch das Entfernen generischer Elemente und Satzzeichen konzentriert sich die Fuzzy-Zusammenführung nur auf den Teil der Schlüsselfeldwerte, in dem aussagekräftige Unterschiede auftreten könnten.

Weitere Informationen finden Sie unter OMIT( )-Funktion.

Schlüsselfeldwerte harmonisieren

Die Funktionen REPLACE( ) oder REGEXREPLACE( ) können die Wirksamkeit der Fuzzy-Zusammenführung verbessern, indem sie variable Ausprägungen desselben Elements der Werte von Primär- und Sekundärschlüsselfelder harmonisieren. Zum Beispiel könnten Sie „Straße“, „Str.“ und „Str“ auf denselben Wert „Str“ harmonisieren.

Durch die Harmonisierung von Elementen ist es möglich, dass sich Schlüsselfeldwerte mit denselben Informationen, die ein unterschiedliches Format aufweisen, stärker angleichen. Eine stärkere Angleichung steigert die Wahrscheinlichkeit, dass Schlüsselfeldwerte als Fuzzy-Übereinstimmungen ausgewählt werden.

Weitere Informationen finden Sie unter REPLACE( )-Funktion für einfache Ersetzungen und unter REGEXREPLACE( )-Funktion für komplexere Ersetzungen.

Größe der Ausgabetabelle und Befehlsperformance

Größe der Ausgabetabelle

Die Fuzzy-Zusammenführung ähnelt der Analytics-n:n-Zusammenführung. Alle Primärschlüsselwerte können potenziell mit allen Sekundärschlüsselwerten abgeglichen werden. Die Größe der Ausgabetabelle kann um ein Vielfaches größer als die Größe der Primär- oder Sekundäreingabetabellen sein.

Befehlsperformance

Die Algorithmen für die Fuzzy-Übereinstimmung stellen sicher, dass nur Schlüsselwerte im Bereich eines bestimmten Fuzzy-Grades oder genau übereinstimmende Werte zusammengeführt werden. Jede mögliche Übereinstimmung zwischen Primär- und Sekundärwert muss jedoch getestet werden, weshalb die Fuzzy-Zusammenführung zeitaufwendig sein kann. Die Anzahl der durchzuführenden Einzeltests entspricht der Datensatzanzahl in der Primärtabelle multipliziert mit der Datensatzanzahl in der Sekundärtabelle.

Abgleich auf ersten übereinstimmenden Sekundärdatensatz beschränken

Sie können die Verarbeitungszeit und die Größe der Ausgabeergebnisse beträchtlich verringern, wenn Sie die Option Nur erstes Vorkommen übereinstimmender Sekundärschlüssel zusammenführen verwenden. Durch diese Option wird festgelegt, dass jeder Primärschlüsselwert lediglich mit dem ersten Vorkommen eines übereinstimmenden Sekundärschlüsselwerts zusammengeführt wird.

In einer der folgenden Situationen empfiehlt es sich, die Option zu aktivieren:

  • Gibt es Übereinstimmungen? Sie möchten nur wissen, ob es in den beiden Tabellen überhaupt Übereinstimmungen (genaue oder Fuzzy-Übereinstimmungen) gibt. Gleichzeitig möchten Sie nicht warten, bis alle Übereinstimmungen ermittelt wurden.
  • Höchstens eine Übereinstimmung Sie sind sicher, dass es höchstens eine Übereinstimmung in der Sekundärtabelle für jeden Primärschlüsselwert gibt.

Die Aktivierung der Option empfiehlt sich nicht, wenn Sie Ausgabeergebnisse mit allen möglichen Übereinstimmungen zwischen Primär- und Sekundärschlüsselwerten benötigen.

Hinweis

Falls Sie Nur erstes Vorkommen übereinstimmender Sekundärschlüssel zusammenführen auswählen und das erste Vorkommen eine genaue Übereinstimmung ist, werden alle folgenden Fuzzy-Übereinstimmungen für den Primärschlüsselwert nicht in die zusammengeführte Ausgabetabelle aufgenommen.

Empfohlene Vorgehensweisen

Beachten Sie die Größe der Ausgabetabelle und die Befehlsperformance, wenn Sie die Primär- und Sekundäreingabetabellen vorbereiten und den Fuzzy-Grad festlegen.

  • Daten maßschneidern Stellen Sie sicher, dass nur relevante Datensätze in den Primär- und Sekundärtabellen aufgenommen werden. Wenn einige Datensätze keine Chance einer Übereinstimmung haben, filtern Sie sie vor der Durchführung der Fuzzy-Übereinstimmung aus.
  • Testläufe Bei großen Datasets führen Sie Testläufe für einen kleinen Teil der Daten durch, um die geeigneten Einstellungen für die Algorithmen der Fuzzy-Übereinstimmung effizienter zu ermitteln. Beginnen Sie mit konservativeren Fuzzy-Einstellungen und lockern Sie sie bei Bedarf.

Algorithmen für die Fuzzy-Übereinstimmung

Wenn Sie eine Fuzzy-Zusammenführung durchführen, wählen Sie zwischen zwei Algorithmen für die Fuzzy-Übereinstimmung:

  • Dice-Koeffizient
  • Levenshtein-Distanz

Die Algorithmen funktionieren völlig unabhängig voneinander und können zu etwas unterschiedlichen Ergebnissen führen. Ein Ansatz ist die doppelte Durchführung einer Fuzzy-Zusammenführung, einmal mit jedem Algorithmus, und dem anschließenden Vergleich der Ergebnisse. In der Regel kommt es zu einer Überlappung von Fuzzy-Übereinstimmungen beider Ergebnismengen, einige Übereinstimmungen können aber in jeder Ergebnismenge nur einmal vorkommen.

Fuzzy-Grad

Sie legen den Fuzzy-Grad für jeden Algorithmus fest, was die Größe und Zusammensetzung der Ergebnismenge drastisch ändern kann. „Fuzzy-Grad“ bezieht sich darauf, wie stark zwei Werte übereinstimmen.

Je nach gewähltem Algorithmus verwenden Sie die folgenden Einstellungen zur Steuerung des Fuzzy-Grads:

Algorithmus Einstellung

Dice-Koeffizient

  • N-Gramm
  • Prozent

Levenshtein-Distanz

  • Distanz

Versuchen Sie, mit unterschiedlichen Fuzzy-Graden zu experimentieren. Beginnen Sie konservativ, und erstellen Sie kleinere Ergebnismengen. Lockern Sie dann graduell die Einstellungen, bis Sie zu viele zusammengeführte Werte erhalten, die offensichtlich keine Übereinstimmungen mehr sind (Falschmeldungen).

Dice-Koeffizient

Der Algorithmus „Dice-Koeffizient“ misst die Ähnlichkeit zwischen dem Primär- und Sekundärschlüsselwert auf einer Skala von 0,0000 bis 1,0000. Je größer der Dice-Koeffizient der beiden Werte ist, umso ähnlicher sind sie sich.

Levenshtein-Distanz

Der Algorithmus „Levenshtein-Distanz“ misst den Unterschied zwischen einem Primär- und Sekundärschlüsselwert auf einer ganzzahligen Skala, die mit 0 beginnt. Die Skala stellt die Anzahl von Bearbeitungen einzelner Zeichen dar, die erforderlich sind, um einen Wert auf einen anderen Wert zu überführen. Je größer die Levenshtein-Distanz der beiden Werte ist, umso unterschiedlicher sind sie.

Schritte

Sie können eine Fuzzy-Übereinstimmung von Schlüsselfeldwerten verwenden, um zwei Analytics-Tabellen in einer neuen dritten Tabelle zu vereinen.