LevenshteinDist() gibt die Levenshtein-Entfernung zwischen zwei Zeichenfolgen zurück. Dies ist als Mindestzahl von Bearbeitungen mit einem Zeichen (Einfügungen, Löschungen oder Ersetzungen) definiert, die zum Ändern einer Zeichenfolge in eine andere erforderlich sind.
Die Funktion ist für den Vergleich von Fuzzy-Zeichenfolgen nützlich.
Syntax:
LevenshteinDist(text1, text2)
Rückgabe Datentyp: ganze Zahl
Argumente
Argument
Beschreibung
text1
Der erste String.
text2
Der zweite String, der mit dem ersten String verglichen wird, um die minimale Anzahl von Ein-Zeichen-Bearbeitungen zu berechnen.
Beispiel: Diagrammformel
Beispiel
Ergebnis
LevenshteinDist( 'Kitten','Sitting' )
Gibt 3 zurück
Beispiel – Grundlegendes zu „LevenshteinDist“
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Datensatz, der in eine Datentabelle namens Example geladen wird
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu:
InputText
Erstellen Sie die folgende Kennzahl:
=LevenshteinDist('Silver', InputText), um die minimale Anzahl von Bearbeitungen einzelner Zeichen zu berechnen, die erforderlich sind, um den Stringwert für InputText in das Wort Silver zu ändern.
Ergebnistabelle
InputText
LevenshteinDist('Silver', InputText)
Sliver
2
SSiveer
3
SSiver
2
Die Ausgabe der Funktion LevenshteinDist gibt die Anzahl der Änderungen zurück, die erforderlich sind, um InputText in den erwarteten Text Silver zu ändern. In der ersten Zeile sind zum Beispiel zwei Änderungen erforderlich, um das Wort Sliver in Silver zu ändern. In der zweiten Zeile sind 3 Änderungen erforderlich: 1) Löschen des zusätzlichen Zeichens S. 2) Löschen des zusätzliche Zeichens e. 3) Einfügen eines neuen Zeichens l.
Beispiel – Szenario für „LevenshteinDist“
Übersicht
In diesem Beispiel werden Produktnamen aus verschiedenen Systemen konsolidiert. Die Produktnamen sind aufgrund von Tippfehlern, Abkürzungen, Abständen oder anderen Abweichungen nicht immer gleich geschrieben. Mit der Funktion LevenshteinDist können Sie die Ähnlichkeit zwischen zwei Produktnamen messen und feststellen, welche sich wahrscheinlich auf dasselbe Produkt beziehen, auch wenn die Namen nicht identisch sind.
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Datensatz, der in eine Datentabelle namens Example geladen wird
Die folgenden Felder in der Datentabelle:
ProductA
ProductB
Ladeskript
Example:
Load * inline [
ProductA, ProductB
Coca Cola 330ml, CocaCola 330 ml
Pepsi 500 ml, Pepsi 500ml
Sprite Zero 600 ml, SpriteZero600ml
Red Bull 250ml, Redbull 250ml
];
Ergebnisse
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
ProductA
ProductB
Erstellen Sie die folgende Kennzahl:
=LevenshteinDist(ProductA, ProductB), um die minimale Anzahl von Bearbeitungen einzelner Zeichen zu berechnen, die erforderlich sind, um den Stringwert für ProductB so zu ändern, dass er mit ProductA übereinstimmt.
Ergebnistabelle
ProductA
ProductB
LevenshteinDist(ProductA, ProductB)
Coca Cola 330ml
CocaCola 330 ml
2
Pepsi 500 ml
Pepsi 500ml
1
Red Bull 250ml
Redbull 250ml
2
Sprite Zero 600 ml
SpriteZero600ml
3
Die Levenshtein-Distanz dient zum Erkennen von ungefähren Übereinstimmungen und wird häufig im Rahmen von Rechtschreibprüfungen, optischer Zeichenerkennung und Korrektursystemen in Bereichen wie der Verwaltung von Kundendaten, Lagerbestandssystemen und der Dokumentenverarbeitung verwendet, in denen häufig geringfügige Abweichungen im Text auftreten.
Ladeskript
Example:
Load *, recno() as ID;
Load 'Silver' as String_1,* inline [
String_2
Sliver
SSiver
SSiveer ];
Example:
Load *, recno()+3 as ID;
Load 'Gold' as String_1,* inline [
String_2
Bold
Bool
Bond ];
Example:
Load *, recno()+6 as ID;
Load 'Ove' as String_1,* inline [
String_2
Ove
Uve
Üve ];
Example:
Load *, recno()+9 as ID;
Load 'ABC' as String_1,* inline [
String_2
DEFG
abc
ビビビ ];
set nullinterpret = '<NULL>';
Example:
Load *, recno()+12 as ID;
Load 'X' as String_1,* inline [
String_2
''
<NULL>
1 ];
R1:
Load
ID,
String_1,
String_2,
LevenshteinDist(String_1, String_2) as LevenshteinDistance
resident Example;
Drop table Example;
Ergebnistabelle
ID
String_1
String_2
LevenshteinDistance
1
Silver
Sliver
2
2
Silver
SSiver
2
3
Silver
SSiveer
3
4
Gold
Bold
1
5
Gold
Bool
3
6
Gold
Bond
2
7
Ove
Ove
0
8
Ove
Uve
1
9
Ove
Üve
1
10
ABC
DEFG
4
11
ABC
abc
3
12
ABC
ビビビ
3
13
X
1
14
X
-
1
15
X
1
1
Hat diese Seite Ihnen geholfen?
Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!