텍스트 빈도 분석은 텍스트에서 각 단어나 문자가 몇 번 나타나는지를 셉니다. 한글은 자모(초성·중성·종성)가 조합되어 하나의 음절 블록을 이루는 독특한 문자 체계이기 때문에, "글자 빈도"를 무엇 기준으로 셀지부터 정해야 합니다.
음절 블록으로 셀까, 자모로 셀까
"한"이라는 글자는 하나의 음절 블록이지만 실제로는 ㅎ(초성), ㅏ(중성), ㄴ(종성) 세 개의 자모가 결합된 것입니다. 음절 단위로 빈도를 세면 "한", "국", "어" 같은 조합이 각각 다른 항목으로 집계되지만, 자모 단위로 분해해서 세면 자음과 모음 각각의 사용 빈도라는 전혀 다른 통계가 나옵니다 — 두 결과 모두 유효하지만 서로 다른 질문에 답하는 것입니다.
조사 때문에 단어 빈도가 왜곡되는 경우
한국어는 명사에 조사("은", "는", "이", "가")가 바로 붙기 때문에, 스페이스 기준으로 단어 빈도를 세면 "사과가", "사과는", "사과를"이 서로 다른 "단어"로 집계됩니다. 실제로 같은 명사 "사과"의 빈도를 정확히 알고 싶다면 조사를 분리하는 형태소 분석 과정이 필요하며, 이는 영어의 단순 공백 기반 단어 빈도 분석과는 다른 접근입니다.
문자 빈도와 고전적인 암호 해독
단순 치환 암호는 문자의 빈도 분포 자체를 바꾸지 않고, 어떤 문자가 어떤 문자에 대응하는지만 재배열합니다. 암호화된 텍스트의 빈도 분포를 알려진 원래 언어의 분포와 비교함으로써, 가능한 모든 키를 시도하지 않고도 문자 매핑을 복원하고 암호를 해독할 수 있습니다.
이 기능이 필요한 이유
- 가장 자주 나타나는 단어들로 긴 문서의 주요 주제를 빠르게 파악하기.
- 조사를 분리하지 않은 단어 빈도 분석이 왜 같은 명사를 여러 항목으로 나누어 세는지 이해하기.
- 페이지 텍스트의 SEO 최적화를 위해 단어 반복 분석하기.
지프의 법칙
자연어에서 단어의 빈도는 빈도 내림차순으로 매긴 순위에 반비례합니다: 가장 흔한 단어는 두 번째로 흔한 단어보다 대략 두 배, 세 번째로 흔한 단어보다 대략 세 배 더 자주 나타나는 식입니다. 이 규칙성(지프의 법칙)은 일반적인 텍스트에서 매우 안정적이기 때문에, 이로부터 크게 벗어난다는 것은 텍스트가 인위적으로 생성되었거나, 키워드로 심하게 도배되었거나, 예상과 다른 언어로 작성되었을 수 있다는 신호가 됩니다.