Blog

Warum gibt es Duplikate und wie wird man sie los?

Laut Natik Ameen, Marketingexperte bei Canz Marketing, sind doppelte Daten im CRM des Unternehmens auf eine Reihe von Gründen zurückzuführen:

von menschlichem Versagen bis hin zu Kunden, die zu unterschiedlichen Zeitpunkten leicht abweichende Informationen in die Unternehmensdatenbank eingeben. Ein Verbraucher gibt beispielsweise auf einem Formular seinen Namen als Jonathan Smith und auf dem anderen als Jon Smith an. Die Herausforderung wird durch eine wachsende Datenbank noch verschärft. Für Administratoren wird es immer schwieriger, den Überblick über die DB zu behalten und die relevanten Daten zu erfassen. Es wird immer schwieriger, sicherzustellen, dass die DB der Organisation korrekt bleibt.„.

EineDatendeduplizierung findet statt, wenn Sie Informationen über ein und dieselbe Entität mehrfach speichern, anstatt einen einzigen Datensatz zu aktualisieren. In diesem Leitfaden werden einige grundlegende Konzepte im Zusammenhang mit der Datenduplizierung sowie eine Liste von Techniken und Algorithmen erörtert, die üblicherweise zur Behebung dieser Probleme eingesetzt werden.

Warum gibt es Duplikate?

Daten haben mehrere Darstellungen – das heißt, dieselben Daten können auf unterschiedliche Weise dargestellt werden. Dies ist der Hauptgrund, warum doppelte Datensätze in einer Datenbank existieren. Unabhängig davon, ob die Datensätze aus unabhängigen Datenquellen zusammengeführt oder im Laufe der Zeit in eine einzige Datenbank eingegeben werden, führt beides zu dem komplexen Problem der Datenduplizierung.

Im Idealfall sollte jeder Datensatz in einer Datenbank eine einzige, eindeutige Entität darstellen. Aus verschiedenen Gründen (die häufigsten werden im Folgenden genannt) stellen wir jedoch fest, dass sich die Informationen eines Unternehmens über mehrere Datensätze erstrecken.

1. Fehlen eindeutiger Identifikatoren

Eindeutige Bezeichner in Ihrer Datenbank sind der beste Weg, um die Speicherung von Duplikaten zu vermeiden. Ein eindeutiger Bezeichner ist ein Datenfeld, das für eine Einheit immer eindeutig ist (z. B. Sozialversicherungsnummer (SSN) für Kundendaten, Hersteller-Teilenummer (MPN) für Produktdaten, usw.). Bei jeder neuen Dateneingabe können Sie prüfen, ob ein Datensatz mit demselben eindeutigen Bezeichner existiert. Wenn dies der Fall ist, können Sie ihn einfach aktualisieren oder zusammenführen und vermeiden, einen neuen Datensatz für dieselbe Entität zu speichern. Wenn Ihre Datenbank jedoch keinen solchen eindeutigen Bezeichner enthält, wird der Prozess der Zuordnung neu eingehender Entitäten zu bestehenden zu einer komplexen Aufgabe.

2. Fehlen von Validierungsprüfungen und Integritätsbeschränkungen

Selbst bei Vorhandensein eindeutiger Identifikatoren kann es zu Duplikaten in Ihrer Datenbank kommen. Dies ist der Fall, wenn die eindeutigen Bezeichner nicht mit gültigen Mustern übereinstimmen (z. B. AAA-GG-SSSS für SSN) oder keine strengen Integritätsbeschränkungen aufweisen (z. B. 11 Zeichen für SSN).

3. Fehler bei der Dateneingabe

Die Fehlerquote bei der Dateneingabe liegt bei 400 pro 10.000 Einträge, was eine beachtliche Zahl ist. Selbst wenn eindeutige Bezeichner, Validierungsprüfungen und Integritätsbeschränkungen vorhanden sind, besteht also die Möglichkeit, dass menschliches Versagen eingreift und Duplikate in Ihrer Datenbank zulässt.

Schwieriger Datenvergleich – Heterogenität der Daten

Um die Duplikate in Ihrer Datenbank loszuwerden, müssen Sie die Datensätze vergleichen und bewerten, welche zur gleichen Entität gehören. Wenn Sie jedoch Datensätze vergleichen (entweder in derselben Datenbank oder in verschiedenen Datenbanken), werden Sie feststellen, dass sie einige systematische Unterschiede aufweisen, die einen genauen Vergleich erschweren. Dies wird gewöhnlich als Datenheterogenität bezeichnet.

Im Großen und Ganzen können Sie heterogene Daten als solche klassifizieren:

1. Strukturelle Heterogenität

Diese Art von Unterschieden tritt auf, wenn Felder verschiedener Datenbanken dieselbe Information auf strukturell unterschiedliche Weise darstellen. Eine Datenbank könnte beispielsweise den Namen eines Kontakts als Kontaktname speichern, während er in einer zweiten Datenbank in mehreren Spalten wie Anrede, Vorname, mittlerer Name und Nachnamegespeichert wird .

2. Lexikalische Heterogenität

Diese Art von Unterschieden tritt auf, wenn die Felder verschiedener Datenbanken strukturell gleich sind, aber dieselben Informationen auf unterschiedliche Art und Weise darstellen. So können beispielsweise zwei oder mehr Datenbanken dasselbe Adressfeld haben, aber eine kann einen Adresswert haben: 32 E St. 4, während in der anderen der Wert 32 East, 4 th Straße.

Prozess der Datendeduplizierung

Einfach ausgedrückt, beinhaltet der Prozess der Deduplizierung:

  1. Aufbereitung der Daten durch Standardisierung der Felder in allen Datenbanken
  2. Zuordnung der Felder, die dieselbe Information darstellen
  3. Auswahl einer geeigneten Feldabgleichstechnik (je nach Art der Daten) und anschließende Berechnung der Ähnlichkeit zwischen Datenfeldern

In den nächsten Abschnitten werden wir die oben genannten Schritte etwas ausführlicher erläutern.

1. Datenaufbereitung

Der erste Schritt in diesem Prozess besteht darin, die Einheitlichkeit aller Datenbanken in Bezug auf die Datenstruktur und die Felder zu gewährleisten. Dieses Verfahren verringert die strukturelle Heterogenität der Datenbanken – zumindest bis zu einem gewissen Grad. Dabei sind zwei Schritte zu beachten:

a. Datenbereinigung und -standardisierung

Dies beinhaltet die Beseitigung von Fehlern oder Abweichungen in Formaten und Datentypen von Werten oder in der Struktur von Datenbanken. Dies kann erreicht werden durch:

  1. Parsing langer Zeichenketten zur Identifizierung wichtiger Datenkomponenten. Ein Beispiel hierfür ist, wenn Sie die gesamte Adresse in einem Feld haben. Durch die Analyse des Adressfeldes erhalten Sie die nachfolgenden Datenkomponenten wie Straßenname, Hausnummer, Postleitzahl, Ort, Bundesland und Land. Der Abgleich ist bei diesen geparsten Elementen wesentlich einfacher als beim Abgleich des gesamten Feldes.
  2. Umwandlung von Datenwerten, um ähnliche Datentypen, Benennungskonventionen usw. zu erreichen. Dies kann durch die Umwandlung von Datentypen (z. B. Zeichenkette in Zahl), die Umbenennung von Spaltennamen oder die Zusammenführung von Feldern geschehen.
  3. Standardisierung von Mustern für alle in einem Datenfeld enthaltenen Werte, so dass erwartet wird, dass jeder Wert dem angegebenen Muster entspricht. Ein Beispiel hierfür ist, wenn Sie das Muster des Feldes Telefonnummer auf XXX-XXX-XXXX standardisieren. Dadurch werden Vergleiche und Abgleiche einfacher und genauer.
b. Zuordnung der Datenfelder

Sobald die Datenbanken (so weit wie möglich) standardisiert sind, besteht der nächste Schritt darin, Felder zuzuordnen, die dieselben Informationen darstellen. Dies geschieht entweder manuell (z. B., Adresse an Adresse, Rufnummer an Telefonnummer usw.), oder die Durchführung von Prüfungen, um festzustellen, welche Feldwerte sich mit den Feldern der anderen Datenbank überschneiden. Bei kleineren Datenbeständen ist die erste Technik nützlich, bei großen Datenbeständen, bei denen die Spalten unterschiedlich benannt sind, ist die zweite Technik sehr hilfreich.

2. Berechnung der Ähnlichkeit mit Hilfe von Feldübereinstimmungstechniken

Sobald dies geschehen ist, sind die Daten in einem relativ besseren Zustand, um sie zu vergleichen und Duplikate zu identifizieren. Aber es gibt immer noch Rechtschreibfehler, menschliche Schreibfehler und konventionelle Varianten. Aus diesem Grund sind exakte Abgleichtechniken hier nicht sinnvoll, und wir benötigen Techniken, die diese Aspekte der Daten bei der Berechnung von Punktzahlen berücksichtigen, um die Ähnlichkeit zwischen einzelnen Werten und somit dem gesamten Datensatz zu bewerten.

a. Zeichenbasierte Ähnlichkeitsmetriken

Da die meisten Tippfehler in Zeichenketten auftreten, werden in diesem Abschnitt die gebräuchlichsten Techniken zum Abgleich der Ähnlichkeit von Zeichenketten vorgestellt.

i. Entfernung bearbeiten

Dieser Algorithmus berechnet den Abstand zwischen zwei Zeichenketten, und zwar Zeichen für Zeichen. Der Abstand wird berechnet, indem die Anzahl der Bearbeitungen gezählt wird, die erforderlich sind, um die erste Zeichenfolge in die zweite Zeichenfolge umzuwandeln. Dann wird ein Schwellenwert festgelegt, der zwei Zeichenfolgen als übereinstimmend (wenn der Abstand < Schwellenwert) oder nicht übereinstimmend (wenn der Abstand > Schwellenwert) klassifiziert. Für die Berechnung des Abstands sind drei Arten von Änderungen zulässig: Einfügen eines Zeichens in die Zeichenfolge, Löschen eines Zeichens aus einer Zeichenfolge, Ersetzen eines Zeichens durch ein anderes in der Zeichenfolge.

Normalerweise wird der Zähler eines Bearbeitungsvorgangs als „1“ betrachtet. Die verschiedenen Modelle sehen jedoch unterschiedliche Kosten für jede Bearbeitung vor. Bei der Levenshtein-Distanz zum Beispiel werden die Kosten für jede Bearbeitung mit 1 angesetzt, während Needleman und Wunsch erklärten, dass die Kosten für jede Bearbeitung von der Art der Bearbeitung abhängen (das Ersetzen von O durch 0 hat geringere Kosten als das Ersetzen von T durch M).

ii. Affiner Spaltabstand

Der Editierabstandsalgorithmus funktioniert nicht gut bei Zeichenketten, die Initialen oder Kurzformen enthalten. Die Editierdistanz könnte zum Beispiel Jennifer Lily Stevens und Jen L. Stevens als Nichtübereinstimmung klassifizieren. Hier kann der affine Lückenabstand nützlich sein, da er zwei weitere Bearbeitungsoperationen einführt:

  • Offene Lücke: bezieht sich auf das Hinzufügen einer Lücke (oder eines Leerzeichens) zu einer Zeichenkette, wo keine vorhanden war.
  • Lücke erweitern: bezieht sich auf das Hinzufügen einer Lücke (oder eines Leerzeichens) zu einer Zeichenfolge, in der bereits eine Lücke vorhanden war.

Es liegt auf der Hand, dass die Kosten für die Öffnung einer Lücke (wo es keine gab) höher sind als die Kosten für die Erweiterung einer Lücke (wo es bereits eine gab). Mit dieser Variante der Edit-Distanz können Sie auch die Ähnlichkeit zwischen verkürzten Zeichenfolgen berechnen.

iii. Smith-Waterman-Abstand

Dies ist eine weitere Variante des Editierabstands und des affinen Lückenabstands. Dieses Modell senkt die Kosten von Unstimmigkeiten am Anfang oder Ende von Zeichenketten, da die Präfixe und Suffixe häufig unterschiedlich sind. Zum Beispiel macht es mehr Sinn, diese beiden Strings mit dem S-W-Abstand zu vergleichen: Dr. Jennifer Lily Stevens und Jennifer Lily Stevens, Ärztin im Nat Medical Center.

iv. Jaro Entfernung

Jaro hat eine Formel zum Vergleich der Ähnlichkeit von Vor- und Nachnamen eingeführt. Der Algorithmus zur Berechnung der Jaro-Metrik sieht folgendermaßen aus:

  1. Berechnen Sie die Längen der beiden zu vergleichenden Zeichenfolgen (S1 und S2).
  2. Ermitteln Sie die Anzahl der Zeichen, die in beiden Zeichenketten gemeinsam vorkommen (C).
  3. Vergleichen Sie jedes Zeichen der ersten Zeichenkette mit dem entsprechenden Zeichen der zweiten Zeichenkette, und berechnen Sie jedes nicht übereinstimmende Zeichen als Transposition (T).
  4. Bewerten Sie die Jaro-Metrik als:
    Jaro = 1/3 * [ (C/S1) + (C/S2) + ((C-(T/2))/C) ]

Je niedriger der Wert der Jaro-Metrik, desto ähnlicher sind sich zwei Zeichenketten.

v. N-Gramm-Abstand.

Dieser Algorithmus erstellt aus den übereinstimmenden Zeichenfolgen N-stellige Teilzeichenfolgen und vergleicht die Teilzeichenfolgen und nicht das gesamte Wort. Nehmen wir die Wörter Guide und Guode als Beispiel. Um die 2-Gramm-Distanz zwischen ihnen zu berechnen, werden folgende Teilstrings erstellt:

  • Guide = {‚gu‘, ‚ui‘, ‚id‘, ‚de‘}
  • Guode = {‚gu‘, ‚uo‘, ‚od‘, ‚de‘}

Die Ähnlichkeit wird dann berechnet, indem die Anzahl der gleichen Teilstrings bewertet wird. Dies zeigt deutlich, ob der Benutzer das gleiche Wort eingeben wollte oder ob es sich nur um einen Tippfehler handelt.

b. Token-basierte Ähnlichkeitsmetriken

Token-basierte Ähnlichkeitsmetriken kommen ins Spiel, wenn Sie Zeichenfolgen vergleichen wollen, die unterschiedlich angeordnet sind, aber dasselbe bedeuten. Zum Beispiel werden Vor- und Nachnamen in der Regel vertauscht, z. B. ist Jennifer Stevens dasselbe wie Stevens, Jennifer. Aber ein charakterbasierter Vergleich ist für solche Szenarien nicht geeignet. Hier verwenden wir tokenbasierte Ähnlichkeitsmetriken.

i. Atomare Zeichenketten

Die gebräuchlichste tokenbasierte Ähnlichkeitsmetrik sind atomare Zeichenketten. Bei diesem Algorithmus wird die gesamte Zeichenkette in Wörter unterteilt, die durch Interpunktionen wie Leerzeichen, Komma, Punkt usw. getrennt sind. Und dann werden die Wörter miteinander verglichen und nicht die gesamte Zeichenkette.

ii. WHIRL

Der Algorithmus für atomare Zeichenketten weist den Wörtern beim Vergleich keine Gewichtung zu. Aus diesem Grund werden Doctor Jennifer Stevens und Amanda Tates, Doctor als einigermaßen ähnlich angesehen (da ein Wort eine vollständige Übereinstimmung darstellt). WHIRL behebt dieses Problem, indem es häufig verwendeten Wörtern eine relativ geringe Gewichtung zuweist und die Ähnlichkeit entsprechend berechnet.

iii. N-Gramme mit WHIRL

WHIRL hat in seinem Algorithmus für den Ähnlichkeitsvergleich Rechtschreibfehler nicht berücksichtigt. Sie wurde um die Technik des N-Gramm-Vergleichs erweitert, so dass anstelle ganzer Wörter (oder Token) N-Gramme verglichen wurden.

c. Phonetische Ähnlichkeitsmetriken

Die zeichen- und tokenbasierten Algorithmen wurden entwickelt, um Zeichenfolgen zu vergleichen, die sich in ihrer Zeichenzusammensetzung ähneln. Andererseits gibt es andere Fälle, in denen wir Saiten vergleichen müssen, die zwar nicht gleich aussehen, aber sehr ähnlich klingen, wenn sie ausgesprochen werden. An dieser Stelle kommen phonetische Ähnlichkeitsmetriken ins Spiel. Werfen wir einen Blick auf die gebräuchlichsten Techniken zur Berechnung von phonetischen Ähnlichkeitsmetriken.

i. Soundex

Soundex wird häufig verwendet, um Nachnamen zu identifizieren, die sich zwar in der Schreibweise unterscheiden, aber phonetisch ähnlich sind. Auf diese Weise werden Tipp- oder Rechtschreibfehler, die bei der Eingabe der Daten aufgetreten sind, erkannt. Der Algorithmus funktioniert jedoch meist gut bei englischen Nachnamen und ist keine gute Wahl für Namen anderer Herkunft.

Soundex-Algorithmen berechnen einen Code für jede Zeichenkette und vergleichen, wie ähnlich die Codes für zwei verschiedene Zeichenketten sind. Der Soundex-Code wird wie folgt berechnet:

  1. Behalten Sie den Anfangsbuchstaben des Namens bei.
  2. Alle Vorkommen von w und hwerden ignoriert .
  3. Die Buchstaben a, e, i, o, u und y sind nicht kodiert und werden nur vorübergehend beibehalten (da sie im letzten Schritt ganz wegfallen).
  4. Ersetzen Sie die folgenden Buchstaben durch diese Ziffern:
    1. b, f, p, v → 1
    2. c, g, j, k, q, s, x, z → 2
    3. d, t → 3
    4. l → 4
    5. m, n → 5
    6. r → 6
  5. Wenn zwei oder mehr identische Ziffern im Code vorhanden sind, wird nur das erste Vorkommen beibehalten und der Rest weggelassen.
  6. Streiche diese Buchstaben: a, e, i, o, u und y.
  7. Behalten Sie den ersten Buchstaben (aus Schritt A.) und die ersten drei Ziffern, die erstellt wurden. Bei weniger als drei Ziffern sind Nullen anzuhängen.

Die beiden Zeichenfolgen „Fairdale“ und „Faredayle“ ergeben beispielsweise den Soundex-Code F634, da sie phonetisch gleich sind. Soundex erweist sich bei der Suche nach ähnlich klingenden Nachnamen als 95,99 % genau.

ii. New York State Identification and Intelligence System (NYSIIS)

Wie der Name schon sagt, wurde dieser Algorithmus 1970 für das New York State Identification and Intelligence System entwickelt, das heute Teil der New York State Division of Criminal Justice Services ist. Die Genauigkeitsrate liegt bei 98,72 % (2,7 % mehr als bei Soundex), da die Details zur Vokalposition im Code erhalten bleiben (sie werden dem Buchstaben A zugeordnet). Außerdem werden die Konsonanten anderen Alphabeten und nicht den Zahlen zugeordnet, so dass ein vollständiger Alpha-Code entsteht – ohne Zahlen.

iii. Metaphon, Doppelmetaphon und Metaphon 3

Lawrence Philips entwickelte 1990 eine bessere Version von Soundex namens Metaphone. Es schnitt bemerkenswert gut ab, da es die Details der Variationen und Ungereimtheiten in der englischen Aussprache und Rechtschreibung berücksichtigte. In seinen Algorithmen verwendete er 16 Konsonantenlaute, die bei der Aussprache einer großen Anzahl englischer und nicht-englischer Wörter verwendet werden.

Später veröffentlichte Philips eine neuere Version mit dem Titel Double Metaphone, in der er neben dem Englischen auch Angaben zu einer Reihe von Sprachen machte. Schließlich entwickelte er 2009 Metaphone 3, das eine 99-prozentige Genauigkeit für englische Wörter, andere den Amerikanern vertraute Wörter sowie in den USA gebräuchliche Vor- und Nachnamen aufwies.

d. Numerische Ähnlichkeitsmetriken

Es gibt viele Methoden zur Berechnung von String-basierten Differenzen, aber für numerische Datensätze sind diese Methoden begrenzt. Einfache numerische Unterschiede werden in der Regel durch die Berechnung des Abstands der Werte zueinander bewertet, aber bei komplexen Berechnungen kann auch die Verteilung der numerischen Daten berücksichtigt werden. Algorithmen wie die Cosinus-Ähnlichkeit können auch zum Auffinden numerischer Unterschiede verwendet werden.

Welches Feldabgleichsverfahren ist zu verwenden?

Wie wir gerade gesehen haben, ist der Prozess der Ähnlichkeitssuche zwischen zwei Datenfeldern recht komplex. Wir haben uns mehrere Datenabgleichstechniken angesehen, aber festgestellt, dass jede von ihnen ein bestimmtes Problem der Datendeduplizierung löst, und dass es keine einzige Technik gibt, die für alle Datentypen und -formate eine gute Leistung verspricht.

Die Wahl der passenden Technik hängt stark von diesen Faktoren ab:

  • Art Ihrer Daten – oder der Datentyp. Die Jaro-Distanz beispielsweise eignet sich gut für Zeichenketten, während die Kosinus-Ähnlichkeit für numerische Datensätze am häufigsten verwendet wird.
  • Art der Duplikate, die in Ihrem Datensatz vorhanden sind. So lassen sich beispielsweise Tipp- und Rechtschreibfehler besser mit zeichenbasierten Ähnlichkeitsmetriken erfassen, während unterschiedlich formatierte Felder besser mit tokenbasierten Ähnlichkeitsmetriken abgeglichen werden können.
  • Bereich Ihrer Daten. Wenn Sie z. B. englische Vor- oder Nachnamen abgleichen, funktioniert Metaphone gut, aber wenn Ihr Datensatz auch nicht-englische Namen enthält, ist es sinnvoller, Doppel-Metaphone oder Metaphone 3 zu verwenden.

Automatisieren des Deduplizierungsprozesses

Es ist eine schwierige Aufgabe, die Interna der Datenabgleichstechniken zu verstehen und eine geeignete Technik für Ihren Datensatz auszuwählen. In vielen Situationen reicht eine Technik nicht aus, und es wird eine Kombination von Techniken verwendet, um Daten genau abzuleiten. Aus diesem Grund steigt der Bedarf an digitalen Werkzeugen. Tools, die nicht nur den Zeit- und Arbeitsaufwand optimieren, sondern auch die Datenabgleichstechniken je nach Art Ihrer Datenstruktur und Werte intelligent auswählen.

DataMatch Enterprise ist ein solches Tool, das Ihren gesamten Datenqualitätsprozess von Anfang bis Ende abwickelt. Es bietet eine Reihe von Modulen, die Daten aus verschiedenen Quellen unterstützen, eine Feldzuordnung ermöglichen und eine Kombination von Abgleichsdefinitionen vorschlagen, die speziell auf Ihre Daten zugeschnitten sind. Sie können die vorgeschlagenen Abgleichsfelder und -algorithmen verwenden oder sie durch die Auswahl Ihrer eigenen überschreiben. Das Tool kann auch verwendet werden, um die Treffergenauigkeit verschiedener Abgleichtechniken in Ihrem Datensatz zu bewerten und festzustellen, welcher Algorithmus am besten abschneidet.

Wenn Sie mehr wissen möchten, melden Sie sich noch heute für eine kostenlose Testversion an oder vereinbaren Sie eine Demo mit einem unserer Experten, und beginnen Sie mit der Bereinigung Ihrer Daten!

In this blog, you will find:

Try data matching today

No credit card required

*“ zeigt erforderliche Felder an

Hidden
Dieses Feld dient zur Validierung und sollte nicht verändert werden.

Want to know more?

Check out DME resources

Merging Data from Multiple Sources – Challenges and Solutions

Oops! Wir konnten dein Formular nicht lokalisieren.