>데이터 베이스 >MySQL 튜토리얼 >Levenshtein Distance를 사용하여 MySQL에서 문자열 유사성 백분율을 어떻게 계산할 수 있습니까?

Levenshtein Distance를 사용하여 MySQL에서 문자열 유사성 백분율을 어떻게 계산할 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-13 05:48:12566검색

How can I Calculate String Similarity Percentage in MySQL using Levenshtein Distance?

MySQL에서 문자열 유사성 계산

MySQL과 같은 데이터베이스 관리 시스템에서는 텍스트 문자열의 유사성을 비교하는 것이 일반적인 요구 사항입니다. 이 기사에서는 MySQL 함수를 사용하여 두 문자열 간의 유사성 비율을 계산하는 다양한 접근 방식을 살펴봅니다.

Levenshtein 거리를 사용하여 문자열 유사성 계산

Levenshtein 거리는 편집(삽입) 수를 측정하는 측정항목입니다. , 삭제 또는 대체) 한 문자열을 다른 문자열로 변환하는 데 필요합니다. 유사성 점수가 높을수록 문자열 간의 유사성이 더 높다는 것을 나타냅니다.

MySQL에서 LEVENSHTEIN() 함수는 두 문자열 사이의 Levenshtein 거리를 계산합니다. 유사성 비율을 얻으려면 다음 공식을 사용할 수 있습니다.

Similarity Percentage = (1 - (Levenshtein Distance / Length of Longest String)) * 100

MySQL 구현

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.