집 >데이터 베이스 >MySQL 튜토리얼 >Levenshtein Distance를 사용하여 MySQL에서 문자열 유사성 백분율을 어떻게 계산할 수 있습니까?
MySQL과 같은 데이터베이스 관리 시스템에서는 텍스트 문자열의 유사성을 비교하는 것이 일반적인 요구 사항입니다. 이 기사에서는 MySQL 함수를 사용하여 두 문자열 간의 유사성 비율을 계산하는 다양한 접근 방식을 살펴봅니다.
Levenshtein 거리는 편집(삽입) 수를 측정하는 측정항목입니다. , 삭제 또는 대체) 한 문자열을 다른 문자열로 변환하는 데 필요합니다. 유사성 점수가 높을수록 문자열 간의 유사성이 더 높다는 것을 나타냅니다.
MySQL에서 LEVENSHTEIN() 함수는 두 문자열 사이의 Levenshtein 거리를 계산합니다. 유사성 비율을 얻으려면 다음 공식을 사용할 수 있습니다.
Similarity Percentage = (1 - (Levenshtein Distance / Length of Longest String)) * 100
MySQL에서 이 접근 방식을 구현하려면 다음 두 함수를 생성합니다.
레벤슈테인() 함수:
CREATE FUNCTION `LEVENSHTEIN`(s1 TEXT, s2 TEXT) RETURNS INT(11) DETERMINISTIC BEGIN # ... Function implementation ... END;
LEVENSHTEIN_RATIO() 함수:
CREATE FUNCTION `LEVENSHTEIN_RATIO`(s1 TEXT, s2 TEXT) RETURNS INT(11) DETERMINISTIC BEGIN # ... Function implementation ... END;
질문에 제공된 예를 고려하면 다음과 같습니다.
SET @a = "Welcome to Stack Overflow"; SET @b = "Hello to stack overflow";
계산 쿼리 @a와 @b 사이의 유사성 비율은 다음과 같습니다.
SELECT LEVENSHTEIN_RATIO(@a, @b) AS SimilarityPercentage;
이 쿼리는 60이라는 값을 반환하며, 이는 두 문자열 간의 유사성이 60%임을 나타냅니다.
위 내용은 Levenshtein Distance를 사용하여 MySQL에서 문자열 유사성 백분율을 어떻게 계산할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!