Come calcolare la distanza di levenshtein in python


La distanza di Levenshtein tra due stringhe è il numero minimo di modifiche di un singolo carattere necessarie per trasformare una parola in un’altra.

La parola “modifiche” comprende sostituzioni, inserimenti e cancellazioni.

Ad esempio, supponiamo di avere le seguenti due parole:

  • FESTEGGIARE
  • PARCO

La distanza di Levenshtein tra le due parole (ovvero il numero di cambiamenti che dobbiamo fare per trasformare una parola nell’altra) sarebbe 2 :

Esempio di distanza di Levenshtein

In pratica, la distanza di Levenshtein viene utilizzata in molte applicazioni diverse, tra cui la corrispondenza fuzzy di stringhe, il controllo ortografico e l’elaborazione del linguaggio naturale.

Questo tutorial spiega come calcolare la distanza Levenshtein tra le stringhe in Python utilizzando il modulo python-Levenshtein.

È possibile utilizzare la seguente sintassi per installare questo modulo:

 pip install python-Levenshtein

È quindi possibile caricare la funzione per calcolare la distanza di Levenshtein:

 from Levenshtein import distance as lev

I seguenti esempi mostrano come utilizzare questa funzione nella pratica.

Esempio 1: distanza di Levenshtein tra due corde

Il codice seguente mostra come calcolare la distanza di Levenshtein tra le due stringhe “party” e “park”:

 #calculate Levenshtein distance
lev(' party ', ' park ')

2

La distanza di Levenshtein risulta essere 2 .

Esempio 2: distanza di Levenshtein tra due tavoli

Il codice seguente mostra come calcolare la distanza di Levenshtein tra ciascuna combinazione di stringhe a coppie in due array diversi:

 #define arrays
a = ['Mavs', 'Spurs', 'Lakers', 'Cavs']
b <- ['Rockets', 'Pacers', 'Warriors', 'Celtics']

#calculate Levenshtein distance between two arrays
for i,k in zip (a,b):
  print (lev(i, k))

6
4
5
5

Il modo di interpretare il risultato è il seguente:

  • La distanza di Levenshtein tra “Mavs” e “Rockets” è 6 .
  • La distanza di Levenshtein tra gli “Spurs” e i “Pacers” è 4 .
  • La distanza di Levenshtein tra i “Lakers” e i “Warriors” è 5 .
  • La distanza di Levenshtein tra “Cavs” e “Celtics” è 5 .

Risorse addizionali

Come calcolare la distanza di Hamming in Python
Come calcolare la distanza euclidea in Python
Come calcolare la distanza di Mahalanobis in Python

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *