R에서 levenshtein 거리를 계산하는 방법(예제 포함)
두 문자열 사이의 Levenshtein 거리는 한 단어를 다른 단어로 변환하는 데 필요한 단일 문자 변경의 최소 수입니다.
“수정”이라는 단어에는 대체, 삽입 및 삭제가 포함됩니다.
예를 들어 다음과 같은 두 단어가 있다고 가정해 보겠습니다.
- 파티
- 공원
두 단어 사이의 Levenshtein 거리(즉, 한 단어를 다른 단어로 변환하기 위해 변경해야 하는 변경 수)는 2 입니다.
실제로 Levenshtein 거리는 퍼지 문자열 일치, 철자 검사, 자연어 처리 등 다양한 응용 분야에서 사용됩니다.
이 튜토리얼에서는 R에서 stringdist 패키지의 stringdist() 함수를 사용하여 R에서 문자열 사이의 Levenshtein 거리를 계산하는 방법을 설명합니다.
이 함수는 다음 기본 구문을 사용합니다.
#load stringdist package library(stringdist) #calculate Levenshtein distance between two strings stringdist(" string1 ", " string2 ", method = " lv ")
이 기능은 다양한 거리 측정값을 계산할 수 있습니다. method = “lv”를 지정함으로써 함수에 Levenshtein 거리를 계산하도록 지시합니다.
예시 1: 두 문자열 사이의 Levenshtein 거리
다음 코드는 stringdist() 함수를 사용하여 두 문자열 “party”와 “park” 사이의 Levenshtein 거리를 계산하는 방법을 보여줍니다.
#load stringdist package library(stringdist) #calculate Levenshtein distance between two strings stringdist(' party ', ' park ', method = ' lv ') [1] 2
Levenshtein 거리는 2 입니다.
예 2: 두 벡터 사이의 Levenshtein 거리
다음 코드는 두 개의 서로 다른 벡터에 있는 문자열의 각 쌍별 조합 간의 Levenshtein 거리를 계산하는 방법을 보여줍니다.
#load stringdist package library(stringdist) #definevectors a <- c('Mavs', 'Spurs', 'Lakers', 'Cavs') b <- c('Rockets', 'Pacers', 'Warriors', 'Celtics') #calculate Levenshtein distance between two vectors stringdist(a, b, method=' lv ') [1] 6 4 5 5
결과를 해석하는 방법은 다음과 같습니다.
- “Mavs”와 “Rockets” 사이의 Levenshtein 거리는 6 입니다.
- “Spurs”와 “Pacers” 사이의 Levenshtein 거리는 4 입니다.
- “Lakers”와 “Warriors” 사이의 Levenshtein 거리는 5 입니다.
- “Cavs”와 “Celtics” 사이의 Levenshtein 거리는 5 입니다.
예시 3: 데이터 프레임의 열 간 Levenshtein 거리
다음 코드는 데이터 프레임의 서로 다른 두 열에 있는 각 문자열 쌍 조합 사이의 Levenshtein 거리를 계산하는 방법을 보여줍니다.
#load stringdist package library(stringdist) #define data data <- data.frame(a = c('Mavs', 'Spurs', 'Lakers', 'Cavs'), b = c('Rockets', 'Pacers', 'Warriors', 'Celtics')) #calculate Levenshtein distance stringdist(data$a, data$b, method=' lv ') [1] 6 4 5 5
그런 다음 원하는 경우 Levenshtein 거리를 데이터 프레임의 새 열로 추가할 수 있습니다.
#save Levenshtein distance as vector lev <- stringdist(data$a, data$b, method=' lv ') #append Levenshtein distance as new column data$lev <- lev #view data frame data ab lev 1 Mavs Rockets 6 2 Spurs Pacers 4 3 Lakers Warriors 5 4 Cavs Celtics 5
추가 리소스
R에서 해밍 거리를 계산하는 방법
R에서 유클리드 거리를 계산하는 방법
R에서 맨해튼까지의 거리를 계산하는 방법