Как рассчитать расстояние левенштейна в python


Расстояние Левенштейна между двумя строками — это минимальное количество односимвольных изменений, необходимое для преобразования одного слова в другое.

Слово «модификации» включает замены, вставки и удаления.

Например, предположим, что у нас есть следующие два слова:

  • НА ВЕЧЕРИНКУ
  • ПАРК

Расстояние Левенштейна между двумя словами (то есть количество изменений, которые нам нужно сделать, чтобы превратить одно слово в другое) будет равно 2 :

Пример расстояния Левенштейна

На практике расстояние Левенштейна используется во многих различных приложениях, включая нечеткое сопоставление строк, проверку орфографии и обработку естественного языка.

В этом руководстве объясняется, как вычислить расстояние Левенштейна между строками в Python с помощью модуля python-Levenshtein.

Для установки этого модуля вы можете использовать следующий синтаксис:

 pip install python-Levenshtein

Затем вы можете загрузить функцию для расчета расстояния Левенштейна:

 from Levenshtein import distance as lev

Следующие примеры показывают, как использовать эту функцию на практике.

Пример 1: Расстояние Левенштейна между двумя строками

Следующий код показывает, как вычислить расстояние Левенштейна между двумя строками «вечеринка» и «парк»:

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

2

Расстояние Левенштейна оказывается равным 2 .

Пример 2: Расстояние Левенштейна между двумя таблицами

Следующий код показывает, как вычислить расстояние Левенштейна между каждой парной комбинацией строк в двух разных массивах:

 #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

Интерпретация результата следующая:

  • Расстояние Левенштейна между «Мавс» и «Рокетс» составляет 6 .
  • Расстояние Левенштейна между «Шпорами» и «Пэйсерс» составляет 4 .
  • Расстояние Левенштейна между «Лейкерс» и «Уорриорз» составляет 5,5 метра .
  • Расстояние Левенштейна между «Кавс» и «Селтикс» составляет 5 .

Дополнительные ресурсы

Как рассчитать расстояние Хэмминга в Python
Как рассчитать евклидово расстояние в Python
Как рассчитать расстояние Махаланобиса в Python

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *