LevenshteinDist() returnerar Levenshtein-avståndet mellan två strängar. Det definieras som det minsta antalet enkelteckensredigeringar (infogningar, borttagningar eller ersättningar) som krävs för att förvandla en sträng till en annan.
Funktionen är användbar vid ungefärliga strängjämförelser.
Syntax:
LevenshteinDist(text1, text2)
Returnerad datatyp: heltal
Argument
Argument
Beskrivning
text1
Första strängen.
text2
Den andra strängen som kommer att jämföras med den första strängen för att beräkna det minsta antalet redigeringar av enstaka tecken.
Exempel: diagramuttryck
Exempel
Resultat
LevenshteinDist( 'Kitten','Sitting' )
Returnerar 3
Exempel – Grunderna i LevenshteinDist
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
En datauppsättning som läses in i en datatabell som heter Example.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension:
InputText
Skapa följande mått:
=LevenshteinDist('Silver', InputText), för att beräkna det minsta antalet redigeringar av enstaka tecken som krävs för att förändra strängvärdena för InputText till ordet Silver.
Resultattabell
InputText
LevenshteinDist('Silver', InputText)
Sliver
2
SSiveer
3
SSiver
2
Utdata från funktionen LevenshteinDist ger det antal ändringar som krävs för att förändra InputText till den förväntade texten, Silver. Första raden kräver till exempel två ändringar för att ändra ordet Sliver till Silver. Den andra raden kräver tre ändringar: 1) Ta bort det extra tecknet S. 2) Ta bort det extra tecknet e. 3) Infoga ett nytt tecken l.
Exempel – LevenshteinDist-scenario
Översikt
I detta exempel konsolideras produktnamn från olika system. Produktnamnen har inte alltid samma stavning på grund av skrivfel, förkortningar, utrymme eller andra variationer. Med funktionen LevenshteinDist kan du mäta likheten mellan två produktnamn och identifiera vilka som sannolikt hänvisar till samma produkt, även om namnen inte är identiska.
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
En datauppsättning som läses in i en datatabell som heter Example.
Följande fält i datatabellen:
ProductA
ProductB
Laddningsskript
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
];
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
ProductA
ProductB
Skapa följande mått:
=LevenshteinDist(ProductA, ProductB), för att beräkna det minsta antalet redigeringar av enstaka tecken som krävs för att förändra strängvärdet för ProductB till att matcha ProductA.
Resultattabell
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
Levenshtein-avstånd är en typ av fuzzy matchning som ofta används som en del av stavningskontroller, optisk teckenigenkänning och korrigeringssystem inom områden som kunddatahantering, lagersystem och behandling av dokument, där små variationer i text ofta förekommer.
Laddningsskript
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;
Resultattabell
ID
Sträng_1
Sträng_2
LevenshteinDistance
1
Silver
Sliver
2
2
Silver
SSiver
2
3
Silver
SSiveer
3
4
Guld
Fetstil
1
5
Guld
Bool
3
6
Guld
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
Var den här sidan till hjälp för dig?
Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!