SORTWORDS( )-Funktion
Gibt eine Zeichenfolge zurück, deren einzelne Wörter sequenziell sortiert sind.
Syntax
SORTWORDS(Zeichenfolge)
Parameter
Name | Typ | Beschreibung |
---|---|---|
Zeichenfolge | Zeichen |
Die Zeichenfolge oder der Ausdruck mit den zu sortierenden Wörtern. Ein „Wort“ ist ein beliebiges Zeichen bzw. eine Zeichengruppe, getrennt von Leerzeichen:
Mehrere Leerzeichen zwischen Wörtern werden automatisch auf ein einzelnes Leerzeichen konvertiert. Führende oder nachgestellte Leerzeichen werden automatisch abgeschnitten. |
Ausgabe
Zeichen.
Beispiele
Einfache Beispiele
Literale Zeicheneingabe
Gibt „1 2 A Z a z“ zurück (Nicht-Unicode-Analytics):
SORTWORDS("Z a 2 z A 1")
Gibt „1 2 a A z Z“ zurück (Unicode-Analytics):
SORTWORDS("Z a 2 z A 1")
Gibt „1 2 A A Z Z“ zurück:
SORTWORDS(UPPER("Z a 2 z A 1"))
Gibt „CA, FL NY, TX,“ zurück:
SORTWORDS("CA, TX, NY, FL")
Gibt „CA FL NY TX“ zurück:
SORTWORDS(OMIT("CA, TX, NY, FL"; ","))
Feldeingabe
Gibt alle Werte des Felds Lieferantenadresse zurück, wobei alle Adresselemente sequenziell entfernt wurden:
SORTWORDS(Lieferantenadresse)
Weiterführende Beispiele
Adresselemente zur Verbesserung von Fuzzy-Duplikat-Übereinstimmungen verbessern
Sie können SORTWORDS( ) als Hilfsfunktion verwenden, wenn Sie unterschiedliche Fuzzy-Übereinstimmungen in Analytics durchführen.
Auswirkung von SORTWORDS( ) auf die Levenshtein-Distanz
Betrachten wir zuerst die Levenshtein-Distanz von zwei Ausprägungen derselben Adresse, die unterschiedlich formatiert ist.
Ohne die SORTWORDS( )-Funktion wird eine Levenshtein-Distanz von 22 zurückgegeben. Eine so große Levenshtein-Distanz deutet an, dass es sich bei den beiden Zeichenfolgen nicht um dieselbe Adresse handelt:
LEVDIST("125 SW 39TH ST, Suite 100"; "Suite 100, 125 SW 39TH ST")
Fügen wir nun die SORTWORDS( )-Funktion hinzu. Die zurückgegebene Levenshtein-Distanz beträgt 2, ist also wesentlich niedriger. Sie deutet an, dass es sich bei den beiden Zeichenfolgen um dieselbe Adresse handelt.
LEVDIST(SORTWORDS("125 SW 39TH ST, Suite 100"); SORTWORDS("Suite 100, 125 SW 39TH ST"))
Fuzzy-Duplikate für „125 SW 39TH ST, Suite 100“ isolieren
Sie erstellen einen Filter, der alle Werte im Feld Lieferantenadresse isoliert, die sich innerhalb einer angegebenen Levenshtein-Distanz von „125 SW 39TH ST, Suite 100“ befinden:
SET FILTER TO LEVDIST(SORTWORDS(Lieferantenadresse); SORTWORDS("125 SW 39TH ST, Suite 100"); F) < 3
SET FILTER TO ISFUZZYDUP(SORTWORDS(Lieferantenadresse); SORTWORDS("125 SW 39TH ST, Suite 100"); 3; 99)
Indem Sie die Levenshtein-Distanz in den Ausdrücken vergrößern oder verringern (3), können Sie den Differenzgrad in den gefilterten Werten anpassen.
Weitere Informationen zur Levenshtein-Distanz finden Sie unter LEVDIST( )-Funktion.
Bemerkungen
Übersichtsvideo
Das Video Fuzzy Matching Using SORTWORDS() (Fuzzy-Übereinstimmungen mit SORTWORDS, nur auf Englisch) verschafft Ihnen einen Überblick zu dieser Funktion.
Von SORTWORDS( ) verwendete Sortierfolge
Die Funktion SORTWORDS( ) verwendet die Sortierfolge, die in der Option Sortierfolge (Extras > Optionen > Tabelle) angegeben ist. Die Standardsortierfolge ist im Folgenden ausgeführt.
Detaillierte Informationen finden Sie unter Die Option „Sortierfolge“ und Sortierfolgen.
Analytics-Edition |
Standard-Sortierfolge |
Verknüpfte Sortierfolge |
---|---|---|
Nicht-Unicode |
Systemstandard (ASCII) |
Zahlen, anschließend Großbuchstaben, anschließend Kleinbuchstaben: 0, 1, 2... A, B, C... a, b, c... Beispiel: "Z" wird vor "a" sortiert. |
Unicode |
Mehrere Sprachen (UCA) (Unicode-Kollationsalgorithmus) |
Zahlen, anschließend gemischt Kleinbuchstaben und Großbuchstaben: 0, 1, 2... a, A, b, B, c, C... Beispiel: "a" wird vor "Z" sortiert. |
Beachtung der Groß- und Kleinschreibung
SORTWORDS( ) beachtet die Groß- und Kleinschreibung. In Abhängigkeit von Ihrer verwendeten Analytics-Edition (Nicht-Unicode oder Unicode) kann sich die Groß- und Kleinschreibung in Zeichenfolgen auf die Sortierung auswirken.
Falls Sie nicht möchten, dass sich die Groß- und Kleinschreibung auf die Sortierung auswirkt, können Sie die Funktion UPPER( ) zusammen mit SORTWORDS( ) verwenden:
SORTWORDS(UPPER("Zeichenfolge"))
SORTWORDS( ) kann Fuzzy-Übereinstimmungen verbessern
SORTWORDS( ) kann die Wirksamkeit der Fuzzy-Übereinstimmungsbefehle und der Filter sowie Bedingungen, die Fuzzy-Übereinstimmungsfunktionen nutzen, verbessern:
- FUZZYJOIN-Befehl
- FUZZYDUP-Befehl
- ISFUZZYDUP( )-Funktion
- LEVDIST( )-Funktion
- Funktion DICECOEFFICIENT( )
Achtung
Wenn Sie SORTWORDS( ) zusammen mit Fuzzy-Zusammenführungsbefehlen oder -funktionen verwenden, müssen Sie SORTWORDS( ) auf beide zu vergleichende Zeichenfolgen oder Felder anwenden. Wenn Sie die Funktion nur auf eine der beiden Zeichenfolgen oder Felder anwenden, können sich die Ergebnisse der Fuzzy-Übereinstimmung deutlich verschlechtern.
Algorithmus für Levenshtein-Distanz
SORTWORDS( ) ist besonders hilfreich, wenn es zusammen mit Befehlen und Funktionen auf Basis des Levenshtein-Distanz-Algorithmus verwendet wird. Dieser Algorithmus führt zu größeren Differenzwerten bei identischen oder ähnlichen Elementen in zwei Zeichenfolgen, wenn diese an unterschiedlichen Positionen vorkommen. Indem Sie die Elemente zuerst sortieren, können Sie die Differenzwerte des Levenshtein-Algorithmus beträchtlich verringern. In den Ergebnismengen kommt es dann zu weniger Falschmeldungen und mehr korrekten Ergebnissen.
Algorithmus „Dice-Koeffizient“
SORTWORDS( ) kann zusammen mit Befehlen und Funktionen auf Basis des Algorithmus „Dice-Koeffizient“ hilfreich sein. Immer verbessert sich die Wirksamkeit dadurch aber nicht. Der Algorithmus „Dice-Koeffizient“ ist so konzipiert, dass die Bedeutung der Position von Elementen minimiert wird. Eine Sortierung der Elemente wirkt sich also weniger als beim Algorithmus für Levenshtein-Distanz aus.
Je nach der Art der Daten kann SORTWORDS( ) die Wirksamkeit sogar verschlechtern, sodass der Algorithmus „Dice-Koeffizient“ niedrigere Ergebnisse zurückgibt. Testen Sie Beispieldaten, bevor Sie entscheiden, ob Sie SORTWORDS( ) in einer Produktionsumgebung zusammen mit dem Dice-Koeffizient-Algorithmus verwenden möchten.
Darüber hinaus muss berücksichtigt werden, dass SORTWORDS( ) weniger nützlich ist, falls die N-Gramm-Länge des Dice-Koeffizienten kürzer ist. Wenn Sie die N-Gramm-Länge verringern, wird die Bedeutung der Position von Elementen beim Algorithmus „Dice-Koeffizient“ zunehmend minimiert.