LevenshteinDist — funkcja skryptu i funkcja wykresu
LevenshteinDist () zwraca odległość Levenshteina między dwoma ciągami. Jest ona definiowana jako minimalna liczba jednoznakowych edycji (wstawień, usunięć lub podstawień) wymaganych do zmiany jednego ciągu na drugi.
Funkcja jest przydatna do porównań rozmytych ciągów.
Składnia:
LevenshteinDist(text1, text2)
Typ zwracanych danych: liczba całkowita
Argumenty
Argument
Opis
text1
Pierwszy ciąg.
text2
Drugi ciąg znaków, który zostanie porównany z pierwszym ciągiem w celu obliczenia minimalnej liczby edycji pojedynczych znaków.
Przykład: wyrażenie wykresu
Przykład
Wynik
LevenshteinDist( 'Kitten','Sitting' )
Zwraca wartość 3
Przykład — podstawy LevenshteinDist
Przegląd
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera:
Zestaw danych załadowany do tabeli o nazwie Example.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar:
InputText
Utwórz następującą miarę:
=LevenshteinDist('Silver', InputText) do obliczenia minimalnej liczby zmian pojedynczych znaków wymaganych do zmiany wartości ciągu InputText na słowo Silver.
Tabela wynikowa
InputText
LevenshteinDist('Silver', InputText)
Sliver
2
SSiveer
3
SSiver
2
Dane wyjściowe funkcji LevenshteinDist zwracają liczbę zmian wymaganych do zmiany tekstu InputText na tekst oczekiwany, Silver. Na przykład pierwszy wiersz wymaga dwóch zmian, aby zmienić słowo Sliver na Silver. Drugi wiersz wymaga 3 zmian: 1) Usunięcie nadmiarowego znaku S. 2) Usunięcie nadmiarowego znaku e. 3) Wstawienie nowego znaku l.
Przykład — zastosowanie LevenshteinDist
Przegląd
Ten przykład konsoliduje nazwy produktów z różnych systemów. Nazwy produktów nie zawsze mają taką samą pisownię ze względu na literówki, skróty, odstępy lub inne warianty. Używając funkcji LevenshteinDist, można zmierzyć podobieństwo między dwiema nazwami produktów i określić, które z nich prawdopodobnie odnoszą się do tego samego produktu, nawet jeśli ich nazwy nie są identyczne.
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera:
Zestaw danych załadowany do tabeli o nazwie Example.
Tabela zawiera następujące pola:
ProductA
ProductB
Skrypt ładowania
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
];
Wyniki
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
ProductA
ProductB
Utwórz następującą miarę:
=LevenshteinDist(ProductA, ProductB) do obliczenia minimalnej liczby zmian pojedynczych znaków wymaganych do zmiany wartości ciągu ProductB na dopasowanie do ProductA.
Tabela wynikowa
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
Odległość Levenshteina to typ dopasowania rozmytego, który jest szeroko stosowany w modułach sprawdzania pisowni, optycznego rozpoznawania znaków i systemów korekcji w obszarach takich jak zarządzanie danymi klientów, systemy inwentaryzacji i przetwarzanie dokumentów, gdzie często występują niewielkie różnice w tekście.
Skrypt ładowania
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;
Tabela wynikowa
Identyfikator
String_1
String_2
LevenshteinDistance
1
Silver
Sliver
2
2
Silver
SSiver
2
3
Silver
SSiveer
3
4
Gold
Pogrubienie
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
Czy ta strona była pomocna?
Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać, co możemy poprawić!