많은 소프트웨어 시스템을 개발할 때는 종종 텍스트 매칭, 문자열 검색 및 단어 편집 거리와 같은 문제를 처리해야합니다. 그 중 텍스트의 편집 거리는 일련의 문자 작업 (예 : 삽입, 삭제, 교체)을 통해 한 텍스트를 다른 텍스트로 변환하는 데 필요한 최소 피연산자를 나타냅니다. 편집 거리가 작을수록 텍스트의 유사성이 높아집니다. Levenshtein 알고리즘은 문자열 편집 거리를 계산하기위한 고전적인 알고리즘 중 하나입니다.
PHP에서 Levenshtein () 함수는 두 문자열 사이의 편집 거리를 계산하는 데 사용됩니다. 즉, 한 문자열을 다른 문자열로 변환하는 데 필요한 최소 편집 작업 수를 반환 할 수 있습니다.
int levenshtein (String $ st1, String $ str2, int $ cost_ins, int $ cost_rep, int $ cost_del)
매개 변수 이름 | 매개 변수 유형 | 설명 |
---|---|---|
str1 | 끈 | 첫 번째 문자열 |
str2 | 끈 | 두 번째 문자열 |
Cost_ins | int | 삽입 작업 비용 (기본값은 1) |
Cost_Rep | int | 교체 작업 비용 (기본값은 1) |
Cost_del | int | 삭제 비용 (기본값은 1) |
이 함수는 두 문자열 사이의 최소 편집 거리, 즉 편집을 완료하는 데 필요한 최소 작업 수를 반환합니다.
$ str1 = "고양이"; $ str2 = "앉아"; $ 거리 = Levenshtein ($ str1, $ str2); Echo "$ str1과 $ str2 사이의 거리는 $ 거리";
산출:
<span class="fun">새끼 고양이와 앉는 거리는 3입니다</span>
참고 : "새끼 고양이"에서 "앉아"까지 3 번의 작업이 필요합니다.
$ str1 = "고양이"; $ str2 = "앉아"; $ 거리 = Levenshtein ($ str1, $ str2, 2, 3, 4); Echo "$ str1과 $ str2 사이의 거리는 $ 거리";
산출:
<span class="fun">새끼 고양이와 앉는 거리는 15입니다</span>
참고 : "새끼 고양이"에서 "설정"에 이르기까지 삽입, 교체 및 삭제 작업이 필요하며 총 15 개의 작업이 완료되어야합니다.
$ str1 = "Hello"; $ str2 = "안녕"; $ 거리 = Levenshtein ($ str1, $ str2); Echo "$ str1과 $ str2 사이의 거리는 $ 거리";
산출:
<span class="fun">Hello와 Goodbye 사이의 거리는 4입니다</span>
참고 : "hello"에서 "Goodbye"에 이르기까지 문자를 삽입하고 두 글자를 교체하고 문자를 삭제해야합니다. 완료하는 데 총 4 개의 작업이 필요합니다.
Levenshtein 알고리즘은 편집 거리를 계산하기위한 고전적인 알고리즘이며 문자열 처리 작업에 널리 사용됩니다. PHP의 Levenshtein () 함수는이 알고리즘의 편리한 구현을 제공하여 문자열 간의 유사성을 신속하게 계산할 수 있도록 도와줍니다. 텍스트 처리, 맞춤법 검사 또는 자연 언어 처리에 관계없이 Levenshtein () 기능은 개발자를 강력하게 지원할 수 있습니다.