Jak obliczyć odległość levenshteina w pythonie


Odległość Levenshteina między dwoma ciągami znaków to minimalna liczba zmian pojedynczych znaków wymaganych do przekształcenia jednego słowa w drugie.

Słowo „modyfikacje” obejmuje podstawienia, insercje i skreślenia.

Załóżmy na przykład, że mamy następujące dwa słowa:

  • IMPREZOWAĆ
  • PARK

Odległość Levenshteina między dwoma słowami (tj. liczba zmian, które musimy wprowadzić, aby przekształcić jedno słowo w drugie) wyniosłaby 2 :

Przykład odległości Levenshteina

W praktyce odległość Levenshteina jest wykorzystywana w wielu różnych zastosowaniach, w tym w dopasowywaniu ciągów rozmytych, sprawdzaniu pisowni i przetwarzaniu języka naturalnego.

W tym samouczku wyjaśniono, jak obliczyć odległość Levenshteina między ciągami znaków w Pythonie za pomocą modułu Pythona-Levenshteina.

Aby zainstalować ten moduł, możesz użyć następującej składni:

 pip install python-Levenshtein

Następnie możesz załadować funkcję obliczającą odległość Levenshteina:

 from Levenshtein import distance as lev

Poniższe przykłady pokazują, jak w praktyce wykorzystać tę funkcję.

Przykład 1: Odległość Levenshteina pomiędzy dwiema strunami

Poniższy kod pokazuje, jak obliczyć odległość Levenshteina między dwoma ciągami „impreza” i „park”:

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

2

Okazuje się, że odległość Levenshteina wynosi 2 .

Przykład 2: Odległość Levenshteina między dwoma stołami

Poniższy kod pokazuje, jak obliczyć odległość Levenshteina pomiędzy każdą kombinacją parami ciągów w dwóch różnych tablicach:

 #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

Sposób interpretacji wyniku jest następujący:

  • Odległość Levenshteina pomiędzy „Mavami” i „Rakietami” wynosi 6 .
  • Odległość Levenshteina pomiędzy „Spurs” i „Pacers” wynosi 4 .
  • Odległość Levenshteina pomiędzy „Lakerami” a „Wojownikami” wynosi 5 .
  • Odległość Levenshteina pomiędzy „Cavs” i „Celtics” wynosi 5 .

Dodatkowe zasoby

Jak obliczyć odległość Hamminga w Pythonie
Jak obliczyć odległość euklidesową w Pythonie
Jak obliczyć odległość Mahalanobisa w Pythonie

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *