20분
N-gram과 Token 기반 Fuzzy Matching
Day 2: 문자열 유사도 & Fuzzy Matching
N-gram과 Token 기반 Fuzzy Matching
Entity Resolution & 데이터 통합 > 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 라이브러리
에디터 로딩 중...