Python에서 levenshtein 거리를 계산하는 방법


두 문자열 사이의 Levenshtein 거리는 한 단어를 다른 단어로 변환하는 데 필요한 단일 문자 변경의 최소 수입니다.

“수정”이라는 단어에는 대체, 삽입 및 삭제가 포함됩니다.

예를 들어 다음과 같은 두 단어가 있다고 가정해 보겠습니다.

  • 파티
  • 공원

두 단어 사이의 Levenshtein 거리(즉, 한 단어를 다른 단어로 변환하기 위해 변경해야 하는 변경 수)는 2 입니다.

Levenshtein 거리의 예

실제로 Levenshtein 거리는 퍼지 문자열 일치, 철자 검사, 자연어 처리 등 다양한 응용 분야에서 사용됩니다.

이 튜토리얼에서는 python-Levenshtein 모듈을 사용하여 Python에서 문자열 사이의 Levenshtein 거리를 계산하는 방법을 설명합니다.

이 모듈을 설치하려면 다음 구문을 사용할 수 있습니다.

 pip install python-Levenshtein

그런 다음 Levenshtein 거리를 계산하는 함수를 로드할 수 있습니다.

 from Levenshtein import distance as lev

다음 예에서는 이 기능을 실제로 사용하는 방법을 보여줍니다.

예시 1: 두 문자열 사이의 Levenshtein 거리

다음 코드는 두 문자열 “party”와 “park” 사이의 Levenshtein 거리를 계산하는 방법을 보여줍니다.

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

2

Levenshtein 거리는 2 입니다.

예 2: 두 테이블 간의 Levenshtein 거리

다음 코드는 두 개의 서로 다른 배열에 있는 각 문자열 쌍 조합 간의 Levenshtein 거리를 계산하는 방법을 보여줍니다.

 #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

결과를 해석하는 방법은 다음과 같습니다.

  • “Mavs”와 “Rockets” 사이의 Levenshtein 거리는 6 입니다.
  • “Spurs”와 “Pacers” 사이의 Levenshtein 거리는 4 입니다.
  • “Lakers”와 “Warriors” 사이의 Levenshtein 거리는 5 입니다.
  • “Cavs”와 “Celtics” 사이의 Levenshtein 거리는 5 입니다.

추가 리소스

Python에서 해밍 거리를 계산하는 방법
Python에서 유클리드 거리를 계산하는 방법
Python에서 Mahalanobis 거리를 계산하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다