FUZZYDUP-Befehl

Sucht nahezu identische Werte (Fuzzy-Duplikate) in einem Zeichenfeld.

Hinweis

Verwenden Sie die Fuzzy-Übereinstimmung, um Felder aus zwei Analytics-Tabellen in einer neuen einzelnen Analytics-Tabelle zu vereinen. Siehe FUZZYJOIN-Befehl.

Syntax

FUZZYDUP ON Schlüsselfeld <OTHER Felder> LEVDISTANCE Wert <DIFFPCT Prozentsatz> <RESULTSIZE Prozentsatz> <EXACT> <IF Test> TO Tabellenname <LOCAL> <OPEN>

Parameter

Name Beschreibung
ON Schlüsselfeld Das auf Fuzzy-Duplikate zu prüfende Zeichenfeld oder der Ausdruck.
OTHER Felder

Optional

Eine Liste von Feldern oder Ausdrücken, die in die Ausgabe eingeschlossen werden sollen.

LEVDISTANCE Wert

Die maximal zulässige Levenshtein-Distanz zwischen zwei Zeichenfolgen, damit diese als Fuzzy-Duplikate identifiziert und in die Ergebnisse eingeschlossen werden.

Der LEVDISTANCE-Wert darf nicht kleiner als 1 oder größer als 10 sein. Bei einer Erhöhung des LEVDISTANCE -Werts erhöht sich die maximal zulässige Levenshtein-Distanz, was zu einer größeren Menge an Ergebnissen führt, da Werte mit einer größeren Differenz einbezogen werden.

Weitere Informationen finden Sie unter FUZZYDUP-Verhalten.

DIFFPCT Prozentsatz

Optional

Ein Grenzwert, der den „Differenzprozentsatz“ oder den Anteil einer Zeichenfolge beschränkt, der verschieden sein kann.

Der Prozentsatz, der sich aus einer internen Analytics-Berechnung für potenzielle Paare von Fuzzy-Duplikaten ergibt, muss kleiner oder gleich dem DIFFPCT-Wert sein, damit das Paar in die Ausgabeergebnisse eingeschlossen wird. Der DIFFPCT-Wert darf nicht kleiner als 1 oder größer als 99 sein.

Beim Auslassen von DIFFPCT wird der Grenzwert deaktiviert und der Differenzprozentsatz wird beim Verarbeiten des FUZZYDUP-Befehls nicht berücksichtigt.

Weitere Informationen finden Sie unter FUZZYDUP-Verhalten.

RESULTSIZE Prozentsatz

Optional

Die maximale Größe der Menge aus Ausgabeergebnissen als Prozentsatz der Datensatzanzahl im Schlüsselfeld.

Für ein Schlüsselfeld mit beispielsweise 50.000 Datensätzen würde RESULTSIZE von 3 die Verarbeitung beenden, sobald die Ergebnisse einen Umfang von 1.500 Fuzzy-Duplikaten (50.000 x 0,03) übersteigen. Wenn der Verarbeitung beendet wird, wird keine Ausgabetabelle erstellt.

Der RESULTSIZE-Wert darf nicht kleiner als 1 oder größer als 1000 (eintausend) Prozent sein. Die Grenze von 1000% ermöglicht einen n:n-Abgleich, bei dem die Ergebnisse die Anzahl der Einträge im ursprünglichen Testdataset überschreiten können.

Beim Auslassen von RESULTSIZE wird der Grenzwert deaktivert, und die Ergebnisgröße wird beim Verarbeiten des FUZZYDUP-Befehls nicht berücksichtigt.

Achtung

Das Auslassen von RESULTSIZE kann zu übermäßig großen Ergebnismengen und einer sehr langen Verarbeitungszeit führen, oder es tritt möglicherweise der Fall ein, dass der verfügbare Speicherplatz ausgeschöpft ist und die Verarbeitung beendet wird. Lassen Sie RESULTSIZE nur aus, wenn Sie zuversichtlich sind, dass die Ergebnisse eine überschaubare Größe haben werden.

EXACT

Optional

Schließt neben exakten Duplikaten auch Fuzzy-Duplikate in die Ausgabeergebnisse ein.

IF Test

Optional

Ein bedingter Ausdruck, der wahr sein muss, damit ein Datensatz verarbeitet wird. Der Befehl wird nur für Datensätze ausgeführt, welche die Bedingung erfüllen.

Hinweis

Der IF-Parameter wird nur für Datensätze ausgewertet, die nach Anwendung von Bereichsparametern (WHILE, FIRST, NEXT) in einer Tabelle übrig sind.

TO Tabellenname

Der Ort, an den die Ergebnisse des Befehls gesendet werden sollen:

  • Tabellenname Speichert die Ergebnisse in einer Analytics-Tabelle.

    Geben Sie Tabellenname als in Anführungszeichen gesetzte Zeichenfolge mit der Dateierweiterung „.FIL“ an. Beispiel: TO "Ausgabe.FIL"

    Standardmäßig wird die Tabellendatendatei (.FIL) im Ordner mit dem Analytics-Projekt gespeichert.

    Verwenden Sie entweder einen absoluten oder relativen Dateipfad, um die Datendatei in einen anderen bestehenden Ordner zu speichern:

    • TO "C:\Ausgabe.FIL"
    • TO "Ergebnisse\Ausgabe.FIL"

    Hinweis

    Tabellennamen sind auf 64 alphanumerische Zeichen beschränkt, was die .FIL-Dateierweiterung nicht einbezieht. Der Name kann den Unterstrich beinhalten ( _ ), aber keine anderen Sonderzeichen oder Leerzeichen. Er kann nicht mit einer Ziffer beginnen.

LOCAL

Optional

Speichert die Ausgabedatei am selben Speicherort wie das Analytics-Projekt.

Hinweis

Nur anwendbar, wenn der Befehl für eine Servertabelle ausgeführt wird und die Ausgabedatei eine Analytics-Tabelle ist.

Der LOCAL-Parameter muss unmittelbar auf den TO-Parameter folgen.

OPEN

Optional

Öffnet die durch den Befehl erstellte Tabelle, nachdem der Befehl ausgeführt wird. Nur gültig, wenn der Befehl eine Ausgabetabelle erstellt.

Analytics-Ausgabevariablen

Name Enthält
GAPDUPn

Die Gesamtanzahl an Lücken, Duplikaten oder Gruppen von Fuzzy-Duplikaten, die durch den Befehl identifiziert werden.

Beispiele

Nachnamefeld auf Fuzzy-Duplikate testen

Sie testen ein Nachnamefeld auf Fuzzy-Duplikate (das Feld Nachname in der Tabelle Mitarbeiterliste unter ACL DATA\Beispieldatendateien\Metaphor-Mitarbeiterdaten.ACL). Die Ergebnisse werden in einer neuen Analytics-Tabelle ausgegeben.

  • Neben dem Testfeld werden weitere Felder in die Ausgabeergebnisse eingeschlossen.
  • Die maximal zulässige Levenshtein-Distanz beträgt 1.
  • Der Anteil einer Zeichenfolge, der sich unterscheiden darf, ist auf 50 % begrenzt.
  • Die Größe der Ergebnismenge ist auf 20 % der Testfeldgröße begrenzt.
  • Neben Fuzzy-Duplikaten werden auch exakte Duplikate eingeschlossen.
FUZZYDUP ON Nachname OTHER Vorname Angest_Nr LEVDISTANCE 1 DIFFPCT 50 RESULTSIZE 20 EXACT TO "Fuzzy_Nachname" OPEN

Bemerkungen

Hinweis

Weitere Informationen über die Funktion dieses Befehls finden Sie in Hilfe für Analytics.

Funktionsweise

Mit dem FUZZYDUP-Befehl können Sie nahezu identische Werte (Fuzzy-Duplikate) finden oder eine uneinheitliche Buchstabierung in manuell eingegebenen Daten lokalisieren.

Im Gegensatz zur ISFUZZYDUP( )-Funktion, mit der eine vollständige Liste von Fuzzy-Duplikaten für einen einzelnen Zeichenwert ermittelt wird, identifiziert der FUZZYDUP-Befehl alle Fuzzy-Duplikate in einem Feld, organisiert diese in Gruppen und gibt eine unvollständige Ergebnismenge aus.

Was „unvollständig“ bedeutet

Unvollständig bedeutet, dass einzelne Gruppen von Fuzzy-Duplikaten in den Ausgabeergebnissen möglicherweise nicht alle Fuzzy-Duplikate eines Testfelds enthalten, die den festgelegten Differenzgrad zum Gruppeneigentümer aufweisen. Wenn ein Gruppeneigentümer jedoch ein Fuzzy-Duplikat eines anderen Werts im Testfeld ist, werden die beiden Werte zusammen in einer Gruppe in den Ausgabeergebnissen angezeigt.

Verwenden Sie die ISFUZZYDUP( )-Funktion, wenn Sie zur Analyse eine vollständige Liste der Fuzzy-Duplikate für einen bestimmten Wert im Testfeld erstellen möchten.

FUZZYDUP-Verhalten

Der FUZZYDUP-Befehl weist zwei Parameter auf, die Sie angeben können, um den Unterschied zwischen Fuzzy-Duplikaten sowie den Umfang der Ausgabeergebnisse zu steuern.

  • LEVDISTANCE
  • DIFFPCT

Sie sollten möglicherweise unterschiedliche Kombinationen der beiden Parameter testen, um zu ermitteln, welche Einstellung für ein bestimmtes Dataset am besten funktioniert.

LEVDISTANCE (Levenshtein-Distanz)

Beim Verarbeiten von Daten berechnet der FUZZYDUP-Befehl die Levenshtein-Distanz zwischen jedem ausgewerteten Zeichenfolgenpaar im Testfeld sowie den Differenzprozentsatz. Die Levenshtein-Distanz ist ein Wert, der die Mindestzahl von Bearbeitungen einzelner Zeichen darstellt, die erforderlich sind, um eine Zeichenfolge an eine andere anzugleichen. Weitere Informationen finden Sie unter LEVDIST( )-Funktion.

DIFFPCT (Differenzprozentsatz)

Der Differenzprozentsatz ist der Prozentsatz des Unterschieds der kürzeren der beiden ausgewerteten Zeichenfolgen. Er ergibt sich aus der folgenden internen Analytics-Berechnung, die die Levenshtein-Distanz zwischen den beiden Zeichenfolgen verwendet:

Levenshtein-Distanz/Anzahl der Zeichen in der kürzeren Zeichenfolge × 100 = Differenzprozentsatz

Weitere Informationen

Ausführliche Informationen über die Differenzeinstellungen der Fuzzy-Duplikate, das Steuern der Ergebnisgröße sowie Gruppen von Fuzzy-Duplikaten finden Sie unter Fuzzy-Duplikate – Übersicht.

Unterscheidung von Groß- und Kleinschreibung

Der FUZZYDUP Befehl berücksichtigt die Groß- und Kleinschreibung nicht, sodass beispielsweise „SCHMIDT“ und „Schmidt“ gleichwertig sind.

Nachgestellte Leerzeichen automatisch kürzen

Der FUZZYDUP-Befehl schneidet nachgestellte Leerzeichen im Schlüsselfeld automatisch ab, sodass die TRIM( )- oder ALLTRIM( )-Funktionen nicht verwendet werden müssen, wenn ein einzelnes Feld in Schlüsselfeld angegeben wird.

Wenn Sie Felder im Schlüsselfeld verketten, sollten Sie ALLTRIM( ) wie unten dargestellt verwenden.

Wirkung von FUZZYDUP verbessern

Verketten von Feldern

Das Verketten mehrerer Testfelder kann die Effektivität des FUZZYDUP-Befehls verbessern, indem der Grad an Eindeutigkeit der Testwerte erhöht wird.

Beispiel:

FUZZYDUP ON ALLTRIM(Vorname)+ALLTRIM(Nachname) OTHER Vorname Nachname Mitnr LEVDISTANCE 4 DIFFPCT 50 RESULTSIZE 20 EXACT TO "Fuzzy_Vorname_Nachname" OPEN

OMIT( )-Funktion

Die OMIT( )-Funktion kann ebenfalls die Effektivität des Befehls verbessern, indem generische Elemente wie „Corporation“ oder „Inc.“ aus den Feldwerten entfernt werden.

Durch das Entfernen generischer Elemente richtet sich der Zeichenfolgenvergleich mit FUZZYDUP nur auf den Teil der Zeichenfolge, in der aussagekräftige Unterschiede auftreten.

Weitere Informationen finden Sie unter OMIT( )-Funktion.

Andere Methoden des Vergleichs von Zeichenfolgen

  • Die Funktion DICECOEFFICIENT( ) stellt eine Methode für den Vergleich von Zeichenfolgen dar, welche die relative Position von Zeichen oder Zeichenblöcken völlig ignoriert oder weniger stark berücksichtigt.
  • Die Funktionen SOUNDSLIKE( ) und SOUNDEX( ) bieten eine Methode zum Vergleichen von Zeichenfolgen anhand eines phonetischen (Klang) statt eines orthografischen Vergleichs (Buchstabierung).