20

N-gram과 Token 기반 Fuzzy Matching

Day 2: 문자열 유사도 & Fuzzy Matching

학습 목표

N-gram 기반 유사도의 원리를 이해한다 Token 기반 매칭의 장단점을 파악한다

Token 기반 vs Character 기반

Character 기반 (Levenshtein, Jaro-Winkler)

  • 문자 단위 비교
  • "John Smith" vs "Smith John" → 낮은 유사도
  • 순서에 민감

Token 기반 (Jaccard, TF-IDF)

  • 단어(토큰) 단위 비교
  • "John Smith" vs "Smith John" → 높은 유사도
  • 순서에 둔감

N-gram이란?

연속된 N개의 문자/단어 조각

에디터 로딩 중...

N-gram 유사도

에디터 로딩 중...

예시: 오타 처리

에디터 로딩 중...

Token 기반 매칭: Jaccard

에디터 로딩 중...

장점: 순서에 무관 단점: "서울시" vs "서울" 매칭 실패


Token Sort / Token Set

Token Sort Ratio

토큰을 정렬 후 비교

에디터 로딩 중...

Token Set Ratio

공통 토큰 기준 비교 (부분 매칭 허용)

에디터 로딩 중...

선택 가이드

상황권장 방법
이름 오타Jaro-Winkler
이름 순서 변경Token Sort
주소 (부분 생략)Token Set
회사명 (약어)Token Set + 사전
제품명N-gram (2-3)

fuzzywuzzy 라이브러리

에디터 로딩 중...