자로-윙클러 유사도 계산기
두 문자열의 자로·자로-윙클러 유사도를 계산합니다. 매칭 창과 자리바꿈, 접두사 보정을 단계별로 보여 주고 한글은 자모 분해 여부를 골라 견줄 수 있습니다.
자로-윙클러 유사도
0.961111
자로 0.944444 · 공통 접두사 3글자 · 보정 적용됨
사용 방법
- 1견줄 두 문자열을 넣습니다.
- 2한글이라면 글자 그대로 볼지 자모로 풀어서 볼지 고릅니다.
- 3윙클러 보정을 원 논문처럼 자로 0.7 초과일 때만 걸지, 언제나 걸지 고릅니다.
- 4짝지어진 자리와 자리바꿈 수를 확인해 값이 왜 그렇게 나왔는지 봅니다.
자주 묻는 질문
먼저 자로 유사도 J = ( m/|s₁| + m/|s₂| + (m−t)/m ) / 3을 구하고, 여기에 접두사 보정 JW = J + ℓ·p·(1−J) 를 더합니다. m은 짝지어진 글자 수, t는 자리바꿈 수, ℓ은 공통 접두사 길이(최대 4), p는 0.1입니다. 세 항은 각각 첫 문자열이 얼마나 쓰였나, 둘째가 얼마나 쓰였나, 순서가 얼마나 맞나를 나타냅니다.
같은 글자를 짝으로 인정해 주는 자리의 범위이며 ⌊max(|s₁|,|s₂|)/2⌋ − 1입니다. 이 −1을 빼먹는 구현이 흔해서 짧은 문자열에서 값이 눈에 띄게 달라집니다. 길이가 3 이하면 창이 0이 되어 같은 자리에 있는 글자끼리만 짝이 됩니다.
짝지어진 글자들을 각 문자열에서의 순서대로 늘어놓고 자리별로 견줘, 어긋난 자리의 수를 2로 나눕니다. MARTHA와 MARHTA는 T와 H가 서로 자리를 바꿔 어긋난 자리가 2개, 곧 자리바꿈 1회입니다.
윙클러 보정을 거는 조건이 서로 달라서인 경우가 대부분입니다. 원 논문은 자로가 0.7을 넘을 때만 보정을 걸지만 이 조건을 빼는 구현도 많고, 그러면 이미 많이 다른 쌍의 점수까지 올라갑니다. 이 계산기는 두 규약을 모두 고를 수 있게 하고 다른 규약의 값도 함께 보여 줍니다. 매칭 창의 −1이 빠진 구현도 흔한 원인입니다.
재는 것이 다릅니다. 레벤슈타인은 몇 번 고쳐야 하는가(편집 횟수), 사운덱스는 비슷하게 들리는가(발음), 자로-윙클러는 같은 글자가 가까운 자리에 얼마나 있는가를 봅니다. 사람 이름이나 주소처럼 앞부분이 맞으면 같은 것일 가능성이 높은 데이터에 자로-윙클러가 쓰이는 이유가 접두사 보정입니다.
오타 교정이라면 자모로 푸는 쪽이 대개 낫습니다. 「강」과 「간」은 글자로는 겹치는 것이 없지만 자모로 풀면 ㄱ·ㅏ를 공유하기 때문입니다. 다만 자모로 푼다고 항상 점수가 오르지는 않습니다. 다른 글자들이 자모를 하나도 나눠 갖지 않으면 짝의 비율이 그대로여서 값이 똑같이 나옵니다.
데이터마다 달라 직접 정해야 합니다. 0.9가 넘어도 다른 사람일 수 있고 낮아도 같은 사람일 수 있어, 실제로 맞춰 볼 자료에서 맞은 것과 틀린 것의 분포를 보고 문턱을 정하는 것이 보통입니다. 이 계산기는 값만 내고 문턱을 대신 정해 주지 않습니다.
전송되지 않습니다. 계산은 모두 브라우저 안에서 이루어지고 넣은 값은 이 기기에만 남습니다.
알아두면 좋은 점
- 매칭 창은 ⌊max(길이)/2⌋ − 1입니다. 이 −1을 빼먹는 구현이 흔해 값이 어긋나는 원인이 됩니다.
- 윙클러 보정은 접두사 4글자까지, 계수 0.1로 겁니다. 원 논문은 자로가 0.7을 넘을 때만 걸며 이 계산기는 두 규약을 모두 고를 수 있습니다.
- 한글 자모 분해는 유니코드 한글 음절의 산술로 합니다. 겹받침은 하나의 기호로 셉니다.
- 자모로 푼다고 항상 점수가 오르지는 않습니다. 다른 글자들이 자모를 공유하지 않으면 값이 그대로입니다.
- 유사도가 높다고 같은 것을 뜻하지는 않습니다. 판정 문턱은 데이터마다 직접 정해야 합니다.
- 200자까지만 계산합니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 2일 · 결과는 참고용 추정치입니다.