ISFUZZYDUP( )-Funktion
Gibt einen logischen Wert zurück, der angibt, ob eine Zeichenfolge ein Fuzzy-Duplikat von einer Vergleichszeichenfolge ist.
Syntax
ISFUZZYDUP(Zeichenfolge1; Zeichenfolge2; levdist <;diffpct>)
Parameter
Name | Typ | Beschreibung |
---|---|---|
Zeichenfolge1 | Zeichen | Die erste Zeichenfolge des Vergleichs. |
Zeichenfolge2 | Zeichen | Die zweite Zeichenfolge des Vergleichs. |
levdist | numerisch |
Die maximal zulässige Levenshtein-Distanz zwischen zwei Zeichenfolgen, die als Fuzzy-Duplikate identifiziert werden sollen. Der levdist-Wert darf nicht kleiner als 1 oder größer als 10 sein. Bei einer Steigerung des Werts levdist erhöht sich die Anzahl an Ergebnissen, da Werte mit einem stärkeren Fuzzy-Grad, also einer größeren Abweichung voneinander, einbezogen werden. |
diffpct
Optional |
numerisch |
Der obere Grenzbetrag für 'Differenzprozentsatz'. Der Differenzprozentsatz ist in Funktionsweise erläutert. Der diffpct-Wert darf nicht kleiner als 1 oder größer als 99 sein. Bei einer Steigerung des Werts diffpct erhöht sich die Anzahl an Ergebnissen, da Werte mit einem größeren Abweichungsanteil im Verhältnis zu ihrer Länge einbezogen werden. Bei einer fehlenden Angabe wird der Differenzprozentsatz beim Verarbeiten der ISFUZZYDUP( )-Funktion nicht berücksichtigt.
|
Ausgabe
Logisch. Gibt T (wahr) zurück, wenn die Werte von Zeichenfolge Fuzzy-Duplikate sind, und andernfalls F (falsch).
Beispiele
Einfache Beispiele
Gibt „F“ zurück, weil zwei Bearbeitungen erforderlich sind, um „Smith“ in „Smythe“ umzuwandeln, der Wert levdist jedoch nur 1 beträgt:
ISFUZZYDUP("Smith";"Smythe"; 1; 99)
Gibt „T“ zurück, weil zwei Bearbeitungen erforderlich sind, um „Smith“ in „Smythe“ umzuwandeln, und der Wert in levdist „2“ beträgt:
ISFUZZYDUP("Smith";"Smythe"; 2; 99)
Gibt „T“ zurück, weil keine Bearbeitungen erforderlich sind, um „SMITH“ in „smith“ umzuwandeln, und der Wert in levdist „1“ beträgt (die Funktion ISFUZZYDUP( ) unterscheidet nicht zwischen Groß- und Kleinschreibung):
ISFUZZYDUP("SMITH";"smith"; 1; 99)
Gibt einen logischen Wert (T oder F) zurück, der angibt, ob einzelne Werte im Feld Nachname Fuzzy-Duplikate für die Zeichenfolge „Smith“ sind:
ISFUZZYDUP(Nachname;"Smith"; 3; 99)
Weiterführende Beispiele
Mit dem Differenzprozentsatz arbeiten
Der Differenzprozentsatz ermöglicht Ihnen, die Anzahl der falsch-positiven Ergebnisse von ISFUZZYDUP( ) zu verringern.
Kein diffpct festgelegt
Gibt „T“ zurück, weil fünf Bearbeitungen erforderlich sind, um „abc“ in „Smith“ umzuwandeln, und der Wert von levdist „5“ beträgt:
ISFUZZYDUP("abc"; "Smith"; 5)
diffpct festgelegt
Gibt „F“ zurück, obwohl sich „abc“ innerhalb der festgelegten Levenshtein-Distanz von „Smith“ befindet, weil 5 Bearbeitungen und eine Zeichenfolgenlänge von 3 zu einem Differenzprozentsatz von 167% führen. Dies übersteigt den angegebenen Wert in diffpct von 99%:
ISFUZZYDUP("abc"; "Smith"; 5; 99)
Der Differenzprozentsatz ist ausführlich in Funktionsweise erläutert.
Fuzzy-Duplikate für „Smith“ isolieren
Erstellen Sie einen Filter, der alle Werte im Feld Nachname isoliert, die Fuzzy-Duplikate für „Smith“ sind:
SET FILTER TO ISFUZZYDUP(Nachname; "Smith"; 3; 99)
Durch eine Änderung der Werte levdist oder diffpct können Sie den Grad der Differenz in den gefilterten Werten angeben.
Bemerkungen
Wann Sie ISFUZZYDUP ) verwenden sollen
Verwenden Sie die ISFUZZYDUP( )-Funktion, um nahezu identische Werte (Fuzzy-Duplikate) zu suchen oder eine uneinheitliche Buchstabierung in manuell eingegebenen Daten zu lokalisieren.
Funktionsweise
Die ISFUZZYDUP( )-Funktion berechnet die Levenshtein-Distanz zwischen zwei Zeichenfolgen sowie den Differenzprozentsatz.
ISFUZZYDUP( ) wird als „T“ (wahr) ausgewertet, falls:
- die Levenshtein-Distanz kleiner oder gleich dem levdist-Wert ist.
- der Differenzprozentsatz kleiner oder gleich dem diffpct-Wert ist (falls angegeben).
Levenshtein-Distanz
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.
Differenzprozentsatz
Der Differenzprozentsatz ist der Prozentsatz des Unterschieds für die kürzere der beiden ausgewerteten Zeichenfolgen.
Der Differenzprozentsatz ist das Ergebnis der folgenden internen Analytics-Berechnung, welche die Levenshtein-Distanz zwischen den beiden Zeichenfolgen verwendet:
Levenshtein-Distanz/Anzahl der Zeichen in der kürzeren Zeichenfolge × 100 = Differenzprozentsatz
Die Verwendung des Differenzprozentsatzes ermöglicht Ihnen, die Anzahl der falsch-positiven Ergebnisse von ISFUZZYDUP( ) zu verringern.
- Der obere Grenzbetrag für diffpct ist 99%. Dies verhindert das vollständige Ersetzen einer Zeichenfolge bei der Angleichung.
- Zeichenfolgen, bei denen viele Bearbeitungen im Verhältnis zu ihrer Länge notwendig sind, werden ausgeschlossen.
Verwendungstipps
- Unterscheidung von Groß- und Kleinschreibung Die Funktion berücksichtigt die Groß- und Kleinschreibung nicht, sodass beispielsweise „SMITH“ und „smith“ gleichwertig sind.
- Nachgestellte Leerzeichen Außerdem schneidet die Funktion nachgestellte Leerzeichen in Feldern ab, sodass die TRIM( )-Funktion nicht verwendet werden muss, wenn ein Feld als Parameter angegeben wird.
- Generische Elemente entfernen Die OMIT( )-Funktion kann die Effektivität der ISFUZZYDUP( )-Funktion verbessern, indem generische Elemente wie „Corporation“ oder „Inc.“ aus den Feldwerten entfernt werden.
Durch das Entfernen generischer Elemente richtet sich der Zeichenfolgenvergleich mit ISFUZZYDUP( ) nur auf den Teil der Zeichenfolge, in der aussagekräftige Unterschiede auftreten.
Unterschiede des Befehls FUZZYDUP und der Funktion ISFUZZYDUP( )
Der FUZZYDUP-Befehl identifiziert alle Fuzzy-Duplikate in einem Feld, organisiert diese in Gruppen und gibt eine unvollständige Ergebnismenge aus.
Die Funktion ISFUZZYDUP erstellt eine vollständige Liste aus Fuzzy-Duplikaten für einen einzelnen Zeichenwert.
Der Befehl und auch die Funktion identifizieren exakte Duplikate. Im Gegensatz zum Befehl können bei Verwendung der Funktion exakte Duplikate nicht ausgeschlossen werden.
Was „vollständig“ bedeutet
Mit "vollständig" sind alle Werte gemeint, die den angegebenen Differenzgrad des zurückgegebenen Testwerts aufweisen, unabhängig von ihrer Position im Testfeld in Relation zum Testwert.
Die Funktion ISFUZZYDUP( ) ist hilfreich, wenn die durch den Befehl FUZZYDUP erstellten unvollständigen Ergebnisse für den Zweck Ihrer Analyse nicht ausreichen und Sie jedes Fuzzy-Duplikat direkt auf einen bestimmten Zeichenwert prüfen müssen.
Verwandte Funktionen
- LEVDIST( ) bietet eine alternative Methode zum Vergleichen von Zeichenfolgen anhand der Levenshtein-Distanz.
Im Gegensatz zu ISFUZZYDUP( ) beachtet LEVDIST( ) standardmäßig die Groß- und Kleinschreibung.
- DICECOEFFICIENT( ) ignoriert beim Vergleich von Zeichenfolgen die relative Position von Zeichen oder Zeichenblöcken völlig oder berücksichtigt sie weniger stark.
- SOUNDSLIKE( ) und SOUNDEX( ) vergleichen Zeichenfolgen anhand eines phonetischen (Klang) anstatt eines orthografischen Vergleichs (Buchstabierung).