LevenshteinDist() retourneert de afstand van Levenshtein tussen twee tekenreeksen. Het wordt gedefinieerd als het aantal bewerkingen van één teken (invoegingen, verwijderingen of vervangingen) dat is vereist om een tekenreeks te wijzigen.
De functie kan worden gebruikt om fuzzy tekenreeksen te vergelijken.
Syntaxis:
LevenshteinDist(text1, text2)
Retourgegevenstypen: geheel getal
Argumenten
Argument
Beschrijving
text1
De eerste tekenreeks.
text2
De tweede tekenreeks die vergeleken zal worden met de eerste tekenreeks om het minimumaantal bewerkingen van één teken te berekenen.
Voorbeeld: diagramuitdrukking
Voorbeeld
Resultaat
LevenshteinDist( 'Kitten','Sitting' )
Retourneert 3
Voorbeeld - Basisprincipes voor LevenshteinDist
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Een gegevensverzameling die wordt geladen in een tabel met de naam Example.
Eén veld in de gegevenstabel met de naam InputText.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie:
InputText
Maak de volgende meting:
=LevenshteinDist('Silver', InputText) om het minimumaantal bewerkingen van één teken te berekenen dat nodig is om de tekenreekswaarde voor InputText te wijzigen in het woord Silver.
Resultatentabel
InputText
LevenshteinDist('Silver', InputText)
Sliver
2
SSiveer
3
SSiver
2
De uitvoer van de functie LevenshteinDist geeft het aantal vereiste wijzigingen om de InputText te wijzigen in de verwachte tekst, Silver. Voor de eerste rij zijn bijvoorbeeld twee wijzigingen nodig om het woord Sliver te wijzigen in Silver. De tweede rij vereist 3 wijzigingen: 1) Verwijderen van het extra teken S. 2) Verwijderen van het extra teken e. 3) Invoegen van een nieuw teken in l.
Voorbeeld - Scenario met LevenshteinDist
Overzicht
In dit voorbeeld worden productnamen uit verschillende systemen samengevoegd. De productnamen gebruiken niet altijd dezelfde schrijfwijze vanwege typefouten, afkortingen, spaties of andere variaties. Met behulp van de functie LevenshteinDist kunt u de gelijkenis tussen twee productnamen meten en vaststellen welke waarschijnlijk naar hetzelfde product verwijzen, zelfs als de namen niet identiek zijn.
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Een gegevensverzameling die wordt geladen in een tabel met de naam Example.
De volgende velden in de gegevenstabel:
ProductA
ProductB
Load-script
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
];
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
ProductA
ProductB
Maak de volgende meting:
=LevenshteinDist(ProductA, ProductB) om het minimum aantal bewerkingen van één teken te berekenen dat nodig is om de tekenreekswaarde voor ProductB te wijzigen zodat het overeenkomt met ProductA.
Resultatentabel
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
De Levenshtein-afstand is een type fuzzy matching dat veel wordt gebruikt als onderdeel van spellingscontroles, optische tekenherkenning en correctiesystemen in gebieden zoals klantgegevensbeheer, inventarisatiesystemen en documentverwerking, waar kleine variaties in tekst vaak voorkomen.
Load-script
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;
Resultatentabel
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
Was deze pagina nuttig?
Als u problemen ervaart op deze pagina of de inhoud onjuist is – een typfout, een ontbrekende stap of een technische fout – laat het ons weten zodat we dit kunnen verbeteren!