문자열 거리 계산기
두 문자열을 Levenshtein·Damerau-Levenshtein·Hamming 거리로 비교. 퍼지 매치 임계값으로 사용 가능한 유사도 %.
유사도
57.1%
Levenshtein
3
Damerau-Lev.
3
Hamming
n/a
Damerau-Levenshtein은 ab → ba(전치)를 한 번의 편집으로 보고, 일반 Levenshtein은 두 번으로 셉니다. Hamming은 길이가 같은 문자열에만 쓸 수 있습니다.
사용법
- 두 문자열 입력/붙여넣기.
- 각 거리 지표와 유사도 % 확인.
- 퍼지 중복 제거 시작 임계값 ~85%+, 오타 허용 검색은 더 낮게.
자세한 설명
펼치기접기
문자열 두 개를 입력하면 여러 편집 거리 지표로 얼마나 떨어져 있는지 한꺼번에 보여 줍니다. 레벤슈타인은 삽입·삭제·치환을 셉니다. 맞춤법 검사에 쓰이는 고전적인 척도로, kitten과 sitting은 세 번의 편집만큼 떨어져 있습니다. 다메라우-레벤슈타인은 인접한 두 글자의 자리바꿈까지 한 번의 편집으로 셉니다. 사람이 실제로 오타를 내는 방식과 더 잘 맞습니다. ac와 ca는 레벤슈타인으로는 2, 다메라우로는 1입니다. 해밍은 자리별 불일치를 세며 길이가 같을 때만 정의됩니다. 고정 길이 코드에는 알맞고 자유 문장에는 맞지 않는 도구라는 뜻입니다. 유사도 백분율은 (1 − 레벤슈타인 / 더 긴 쪽 길이) × 100으로, 레코드를 중복 제거할 때 기준선으로 삼게 되는 숫자입니다.
비교는 UTF-16 코드 단위 위에서 이뤄지고, 거리를 믿기 전에 알아 둘 만한 결과가 따라옵니다. 기본 다국어 평면 바깥의 이모지는 코드 단위 두 개이므로, 하나를 지우면 편집 1이 아니라 2로 계산됩니다. 더 곤란한 것은, 화면에서 똑같아 보이는 두 문자열의 거리가 0이 아닐 수 있다는 점입니다. 완성형 é로 쓴 café는 4단위이고, 같은 단어를 e 뒤에 결합 악센트를 붙여 쓰면 5단위여서, 어떤 독자도 다르다고 말하지 않을 두 문자열 사이에 거리 1이 생깁니다. 출처가 다른 텍스트를 비교하기 전에는 양쪽을 String.prototype.normalize('NFC')로 정규화하세요. 맥에서 복사한 글, 데이터베이스에서 꺼낸 값, 웹 폼으로 들어온 입력은 이 점에서 저절로 일치하지 않습니다.
임계값을 조정하는 것보다 올바른 지표를 고르는 일이 더 중요합니다. 편집 거리는 모든 글자를 똑같이 중요하게 취급하므로, Smith와 Smyth의 점수가 Smith와 Smith.의 점수와 같아집니다. 한쪽은 다른 이름이고 다른 쪽은 문장부호인데도 그렇습니다. 사람 이름을 대조하는 데는 공통 접두어에 더 큰 가중치를 주는 자로-윙클러가 낫고, 문장을 대조하는 데는 글자 기반보다 토큰 기반 지표가 확실히 낫습니다. 그리고 원시 거리 값은 길이가 다르면 서로 비교할 수 없습니다. 다섯 글자 문자열에서의 세 번 편집과 백 글자 문자열에서의 세 번 편집은 전혀 다른 사건이고, 백분율은 정확히 그것을 보정하려고 있는 값입니다.
자주 묻는 질문
어떤 지표 사용?
사람이 인접 문자를 바꾸는 타이핑 텍스트는 Damerau-Levenshtein 사용. 단백질 서열·고정 길이 코드는 Hamming. 그 외 모든 것(URL 슬러그·이름·자유 텍스트)은 Levenshtein이 안전한 기본 — 대부분 맞춤법 라이브러리가 내부적으로 사용.
유사도 %와 거리 관계?
정규화된 Levenshtein: 100%는 동일·0%는 모든 문자 교체 필요. 분모는 두 문자열 중 더 긴 것 — cat 대 dog은 0%(3 편집/3 문자)·cat 대 catt는 75%(1 편집/4 문자).
Hamming이 가끔 'n/a'인 이유?
Hamming 거리는 같은 길이 문자열에만 정의. 길이가 다르면 의미 있는 쌍별 위치 비교 불가 — Levenshtein 사용.
대소문자 구분?
예. Cat 대 cat은 Levenshtein 거리 1. 대소문자 무시 비교 원하면 두 입력 모두 소문자화 먼저.
관련 도구
텍스트 뒤집기
텍스트를 네 가지로 뒤집기 — 문자, 단어 순서, 각 단어의 글자, 줄 순서. 이모지와 모든 언어를 지원합니다.
텍스트
텍스트 반복기
단어·줄·텍스트 블록을 원하는 횟수만큼 반복합니다 — 줄바꿈·공백·쉼표·없음 또는 사용자 구분자로 연결.
텍스트
마크다운 통계·읽기 시간
마크다운의 단어·문장·헤딩·링크·코드 블록을 카운트하고 읽기·말하기 시간 추정.
텍스트
읽기·말하기 시간 계산기
텍스트를 읽거나 말하는 데 걸리는 시간 추정 — 느린·평균·빠른 독자, TED, 팟캐스트 WPM 프리셋.
텍스트
가독성 계산기 (Flesch-Kincaid, Gunning Fog, SMOG, ARI)
영문 텍스트를 6가지 고전 가독성 공식으로 동시 채점 — Flesch Reading Ease, Flesch-Kincaid 학년, Gunning Fog, SMOG, ARI, Coleman-Liau — 공식별 등급과 통합 학년 추정치 표시.
텍스트
글자수 단어수 카운터
글자·단어·문장·줄·바이트 수를 실시간으로 셉니다.
텍스트