전체 그래프
Concepts

Fuzzy Matching

ai-mlfuzzy-matching

요약

Fuzzy Matching은 두 문자열이 정확히 일치하지 않더라도 얼마나 유사한지를 정량적인 점수로 측정하는 기법입니다. 이 기법은 표현의 다양성을 극복하고 의미적으로 유사한 내용을 연결하는 데 도움을 줍니다.

개념 정의

Fuzzy Matching은 두 문자열이 정확히 일치하지 않아도 얼마나 유사한지를 정량적인 점수(0.0 ~ 1.0)로 측정하는 기법입니다. 이 방법은 오타, 다른 표현, 순서 변경 등에 강합니다.

필요성

인간은 같은 의미를 전달하기 위해 다양한 표현을 사용합니다. 예를 들어, "develops", "created", "produced" 등은 비슷한 의미를 가지고 있습니다. Fuzzy Matching은 이러한 표현의 다양성을 극복하고 의미적으로 유사한 내용을 연결하는 데 도움을 줍니다.

작동 원리

Fuzzy Matching의 한 예인 SequenceMatcher는 두 문자열 사이에서 가장 길게 공통으로 나타나는 부분 문자열(Longest Common Subsequence)을 찾고, 그 길이를 전체 문자열 길이와 비교하여 유사도 점수를 계산합니다. 다른 알고리즘으로는 Levenshtein 거리가 있으며, 이는 두 문자열을 같게 만들기 위한 최소 편집 횟수를 계산합니다.

Ontalis에서의 활용 예시

Fuzzy Matching는 Ontalis에서 관계(Link) 타입의 근거를 찾을 때 사용됩니다.

예를 들어, (Company, develops, Drug)라는 관계를 찾고 있습니다.

다음과 같은 문서 내 유사 문장이 있다고 가정해봅시다. "Pfizer created the vaccine"

이때, "develops"와 "created the vaccine" 구문 간의 유사도를 계산합니다. 만약 유사도가 0.72라고 하면, 이 점수가 임계값(예: 0.65) 이상이므로, 해당 문장을 develops 관계의 유효한 근거로 간주합니다.

이런 방식으로, Fuzzy Matching은 문서에 숨겨진 관계 정보를 더 많이 찾아내고 재현율(Recall)을 향상시킵니다.