ProgramingTip

Jaro-Winkler와 Levenshtein 거리의 차이점은 무엇입니까?

bestdevel 2020. 11. 4. 08:11
반응형

Jaro-Winkler와 Levenshtein 거리의 차이점은 무엇입니까?


여러 파일에서 수백만 개의 레코드를 퍼지 매칭해야하는 사용 사례가 있습니다. 이를 위해 JARO - 윈 클러Levenshtein 편집 거리 라는 두 가지 알고리즘을 식별했습니다 .

둘 다 탐구하기 시작했을 때 둘의 많은 것을 발견 할 수 없었습니다. Levenshtein은 두 페이지 사이의 편집 횟수를 제공하고 Jaro-Winkler는 0.0에서 1.0 사이의 일치 점수를 제공합니다. 알고리즘을 이해하지. 두 알고리즘 중 하나를 사용하는 알고리즘 성능과 관련하여 정확한 차이점을 알아야합니다.


Levenshtein은 한 번의 다른 노드로 변환하는 데 필요한 편집 (삽입, 삭제 또는 대체) 수를 계산합니다. Damerau-Levenshtein은 조옮김을 하나의 편집으로 만들고 수정 된 버전입니다. 출력은 정수 편집 수이지만 공식으로 유사성 값을 제공하도록 정규화 할 수 있습니다.

1 - (edit distance / length of the larger of the two strings)

Jaro 알고리즘은 조옮김을 고려하여 거리에서 더 긴 소수점 길이의 절반 이하인 공통 문자 척도입니다. Winkler는 상위 시작 부분의 차이가 부분의 차이보다 더 중요하다는 생각을 지원하기 위해 알고리즘을 수정했습니다. Jaro 및 Jaro-Winkler는 단어 및 이름과 같은 작은 크기를 비교하는 데 적합합니다.

어떤 것을 사용할 수 있는지 결정하는 성능의 문제가 아닙니다. 비교하려는 것이 선택하는 것이 중요합니다. 그러나 모두 일반적으로 언급 한 두 알고리즘 비용이 많이 있습니다. 각 패키지를 다른 모든 노드와 비교해야하고 데이터 세트에있는 수백만 개의 사랑과 비교해야하기 때문에 엄청난 수의 비교입니다. 이는 각 암호화에 대한 음성 인코딩을 계산 한 다음 인코딩을 공유하는 것보다 훨씬 비쌉니다.

인터넷에 설치 알고리즘 및 기타 퍼지 알고리즘에 대한 자세한 정보가 많이 있습니다. 이 당신에게 시작을 줄 것입니다.

개인 이름 매칭 비교 : 기술 및 실제 문제

그 논문에 따르면 제가 언급 한 네 가지 Jaro 및 Levenshtein 알고리즘의 속도는 가장 빠른 것에서 가장 느린 것까지입니다.

  • 자로
  • Jaro-Winkler
  • Levenshtein
  • Damerau-Levenshtein

가장 느린 것은 가장 빠른 것보다 2 ~ 3 배 더 오래 것입니다. 물론 그렇습니다.

참고 URL : https://stackoverflow.com/questions/25540581/difference-between-jaro-winkler-and-levenshtein-distance

반응형