LevenshteinDist - funzione dello script e del grafico
LevenshteinDist() restituisce la distanza Levenshtein tra due stringhe. Viene definita come il numero minimo di modifiche a un singolo carattere (inserimenti, eliminazioni o sostituzioni) richiesto per cambiare una stringa con un'altra.
La funzione è utile per i confronti tra stringhe fuzzy.
Sintassi:
LevenshteinDist(text1, text2)
Tipo di dati restituiti: numero intero
Argomenti
Argomento
Descrizione
text1
La prima stringa.
text2
La seconda stringa che sarà confrontata con la prima per calcolare il numero minimo di modifiche di un singolo carattere.
Esempio: espressione del grafico
Esempio
Risultato
LevenshteinDist( 'Kitten','Sitting' )
Restituisce 3
Esempio: principi fondamentali della funzione LevenshteinDist
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
Un set di dati che viene caricato in una tabella dati chiamata Example.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione:
InputText
Creare la seguente misura:
=LevenshteinDist('Silver', InputText), per calcolare il numero minimo di modifiche di un singolo carattere necessarie per cambiare il valore della stringa per InputText nella parola Silver.
Tabella dei risultati
InputText
LevenshteinDist('Silver', InputText)
Sliver
2
SSiveer
3
SSiver
2
L'output della funzione LevenshteinDist restituisce il numero di modifiche necessarie per cambiare InputText nel testo previsto, Silver. Ad esempio, la prima riga richiede due modifiche per modificare la parola Sliver in Silver. La seconda riga richiede 3 modifiche: 1) Eliminazione del carattere extra S. 2) Eliminazione del carattere extra e. 3) Inserimento di un nuovo carattere l.
Esempio: scenario per l'applicazione della funzione LevenshteinDist
Panoramica
In questo esempio si mostra come consolidare i nomi dei prodotti generati da sistemi diversi. I nomi dei prodotti non sono sempre scritti nello stesso modo a causa di errori di battitura, abbreviazioni, spaziatura o altre variazioni. Utilizzando la funzione LevenshteinDist, è possibile misurare la somiglianza tra due nomi di prodotti e identificare quali si riferiscono probabilmente allo stesso prodotto, anche se i nomi non sono identici.
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
Un set di dati che viene caricato in una tabella dati chiamata Example.
I seguenti campi nella tabella dati:
ProductA
ProductB
Script di caricamento
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
];
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
ProductA
ProductB
Creare la seguente misura:
=LevenshteinDist(ProductA, ProductB), per calcolare il numero minimo di modifiche di un singolo carattere necessarie per cambiare il valore della stringa per ProductB in modo da corrispondere a ProductA.
Tabella dei risultati
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
La distanza di Levenshtein è un tipo di corrispondenza parziale ampiamente utilizzato nei correttori ortografici, per il riconoscimento ottico dei caratteri e nei sistemi di correzione per aree come la gestione dei dati dei clienti, i sistemi di inventario e l'elaborazione dei documenti, dove si verificano frequentemente lievi variazioni nel testo.
Script di caricamento
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;
Tabella dei risultati
ID
String_1
String_2
LevenshteinDistance
1
Silver
Sliver
2
2
Silver
SSiver
2
3
Silver
SSiveer
3
4
Gold
Grassetto
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
Hai trovato utile questa pagina?
Se riscontri problemi con questa pagina o con il suo contenuto – un errore di battitura, un passaggio mancante o un errore tecnico – facci sapere come possiamo migliorare!