Strings similar_text

(PHP 4, PHP 5, PHP 7, PHP 8)

similar_text — 두 문자열 간의 유사도 계산


설명

similar_text(string $string1, string $string2, float &$percent = null): int

이것은 프로그래밍 고전: Oliver의 세계 최고의 알고리즘 구현(ISBN 0-131-00413-1)에 설명된 대로 두 문자열 간의 유사성을 계산합니다. 이 구현은 Oliver의 의사 코드에서와 같이 스택을 사용하지 않지만 전체 프로세스의 속도를 높일 수도 있고 그렇지 않을 수도 있는 재귀 호출을 사용합니다. 또한 이 알고리즘의 복잡성은 O(N**3)이며 여기서 N은 가장 긴 문자열의 길이입니다.


매개변수

string1
첫 번째 문자열입니다.
string2
두 번째 문자열입니다.

메모: string1string2를 바꾸면 다른 결과가 나올 수 있습니다. 아래의 예를 참조하십시오.

percent
세 번째 인수로 참조를 전달하면similar_text()similar_text()의 결과를 주어진 문자열 길이의 평균 곱하기 100으로 나누어 유사성을 백분율로 계산합니다.

반환 값

두 문자열에서 일치하는 문자의 수를 반환합니다.

일치하는 문자의 수는 가장 긴 첫 번째 공통 부분 문자열을 찾은 다음 접두사와 접미사에 대해 재귀적으로 이 작업을 수행하여 계산됩니다. 발견된 모든 공통 부분 문자열의 길이가 추가됩니다.


Examples

예제 #1 Similar_text() 인수 스와핑 예제

이 예는 string1string2 인수를 교환하면 다른 결과가 생성될 수 있음을 보여줍니다.

                  
<?php
$sim = similar_text('bafoobar', 'barfoo', $perc);
echo "similarity: $sim ($perc %)\n";
$sim = similar_text('barfoo', 'bafoobar', $perc);
echo "similarity: $sim ($perc %)\n";
                  
                

위의 예는 다음과 유사한 결과를 출력합니다.

similarity: 5 (71.428571428571 %)
similarity: 3 (42.857142857143 %)
                

기타

  • levenshtein() - 두 문자열 사이의 Levenshtein 거리 계산
  • soundex() - 문자열의 soundex 키 계산