도구
가이드

단어 빈도 분석기

텍스트

텍스트의 단어 및 문자 n-gram 빈도를 계산합니다. CJK는 Intl.Segmenter, 라틴어는 유니코드 문자 또는 공백으로 분할. Top-N 표, 비율, CSV 내보내기를 지원.

100% 클라이언트 백엔드 없음

원격 URL은 가져오지 않습니다. JSON을 직접 붙여넣으세요.

입력
출력
단어 빈도를 분석할 텍스트를 입력하세요.
이 페이지에서

단어 빈도 분석기란?#

단어 빈도 분석기는 텍스트 본문을 읽고 각 토큰이 등장하는 빈도를 세어 순위를 매깁니다. SEO의 키워드 밀도 검사, 검색 인덱스의 불용어 발견, 언어 학습의 어휘 크기 추정, 그리고 모든 진지한 텍스트 편집기의 “가장 흔한 단어” 패널을 뒷받침하는 도구입니다. 손으로 단어를 세면 틀립니다. 대소문자, 구두점, CJK 세분화가 들어오는 순간 직관이 무너집니다.

어려운 부분은 무엇이 토큰인지 결정하는 것입니다. 이 도구는 네 가지 토큰화 모드를 제공합니다. 올바른 답이 텍스트에 따라 달라지기 때문입니다.

  • 공백 분할 — 모든 공백으로 분할. 언어 무관. 쉼표와 대문자 때문에 Hello,와 hello를 다른 토큰으로 취급합니다.
  • 단어(문자) — 유니코드 문자의 최장 연속(\p{L}+). 숫자와 구두점을 버려 Hello,가 Hello가 됩니다. 라틴 문자 산문의 올바른 기본값입니다.
  • CJK — 중국어/일본어 텍스트의 적절한 언어적 세분화를 위해 브라우저의 Intl.Segmenter를 단어 단위로 사용합니다(我爱北京이 글자별이 아니라 실제 단어 경계에서 분할). 세그멘터가 없는 브라우저에서는 한자별 카운트로 폴백하고 경고합니다.
  • 문자 n-gram — 공백을 축약한 스트림 위에 크기 2–5의 문자 n-gram. 반복 패턴과 오타 클러스터 분석용.

모든 카운팅은 로컬에서 동작합니다. 1메가바이트를 넘는 입력은 페이지가 반응성을 유지하도록 백그라운드 워커로 옮겨갑니다.

사용 방법#

  1. 도구 모음에서 모드 를 고릅니다. 공백 분할, 단어(문자), CJK, 또는 n-gram.
  2. Top-N 을 설정합니다(기본값 20, 최대 1000). 순위 행은 그만큼만 표시되지만, 표 아래 총계는 항상 모든 토큰을 반영합니다.
  3. n-gram을 골랐다면 n-gram 크기 선택기(2, 3, 4 또는 5)가 나타납니다. 그램 길이를 고르세요.
  4. 대소문자 무시 (기본 켜짐)를 체크하거나 해제합니다. 켜면 The와 the가 하나의 카운트로 합쳐집니다.
  5. 왼쪽 창에 텍스트를 붙여넣거나, 예제 로 내장 단락을 불러옵니다.
  6. 오른쪽 창을 읽습니다. 요약(총 토큰, 고유 토큰)과 토큰/횟수/비율의 순위 표가 있습니다. 표는 복사 로, token,count,share 파일은 CSV 다운로드 로 어떤 스프레드시트에서든 열 수 있습니다.

CJK 모드가 브라우저에 Intl.Segmenter가 없어 폴백했다면, 표 아래에 작은 안내가 나타나 세분화가 언어적이 아니라 글자별임을 알려 줍니다.

주요 기능#

  • 네 가지 토큰화 모드. 날 카운트를 위한 공백 분할, 깨끗한 단어 카운트를 위한 단어(문자), 적절한 중국어/일본어 세분화를 위한 CJK, 패턴 발견을 위한 n-gram — 네 가지 중 세 가지에 대해 틀린 한 가지 모드 대신.
  • 진짜 CJK 세분화. granularity: "word"로 브라우저의 내장 언어 세그멘터인 Intl.Segmenter를 사용해 我爱北京天安门을 글자별로 해체하는 것이 아니라 단어 경계에서 분할합니다.
  • 정직한 폴백. 세그멘터를 사용할 수 없을 때 도구는 한자별 카운트로 성능을 낮추고 그렇게 했다고 알립니다. 조용히 다른 수치를 내놓지 않습니다.
  • 횟수뿐 아니라 비율. 모든 행은 전체 텍스트에 대한 백분율을 보여 줍니다. 10,000단어 문서의 Top-20 조차도 의미 있는 백분율을 보고합니다.
  • CSV 내보내기. 한 번의 클릭으로 token,count,share 파일을 다운로드. 스프레드시트나 차트에 바로 씁니다.
  • 결정론적 순서. 동점은 알파벳순(토큰 오름차순)으로 처리되어, 동일한 입력에 대해 브라우저와 엔진을 가로질러 동일한 출력을 얻습니다.
  • 무거운 입력 워커. 약 1MB를 넘는 입력은 백그라운드 워커로 옮겨가 메인 스레드와 페이지 나머지가 반응성을 유지합니다.
  • 로컬·안전. 토큰은 textContent로만 렌더링됩니다. 사용자 제어 텍스트가 표 셀을 벗어날 수 없습니다.

사용 예#

이 짧은 줄을 입력에 붙여넣습니다. 모드 = 공백 분할, 대소문자 무시 켜짐.

the quick brown fox the fox

요약은 총 토큰 6, 고유 4를 보고합니다. 순위 표는 다음과 같습니다.

토큰횟수비율
fox233.33%
the233.33%
brown116.67%
quick116.67%

두 가지를 주목하세요. 첫째, 같은 횟수인데도 fox가 the보다 위에 있습니다. 동점은 알파벳순으로 끊기 때문입니다. 둘째, 비율의 합이 네 토큰 전체에서 100%가 됩니다. 백분율은 표시된 행만이 아니라 전체 토큰 총계에 대해 계산되므로, Top-N이 긴 꼬리를 숨길 때도 의미를 유지합니다.

이제 같은 텍스트(공백 축약)에 대해 모드를 n-gram, 크기 2로 바꾸면 분석기는 th, he, e , q … 같은 바이그램을 만들어, 어느 글자 쌍이 반복되는지 보여 줍니다. 이는 중복된 접두사나 고장 난 키보드를 찾는 방법입니다.

FAQ#

일반 영어 텍스트에는 어느 모드를 써야 하나요?#

라틴 문자 산문에는 단어(문자) 가 올바른 기본값입니다. 구두점과 숫자를 벗겨 word, word. word가 모두 같은 토큰으로 세이게 하고, 깨끗한 어휘 카운트를 얻습니다. 구두점 자체가 의미를 가질 때만(예: 로그의 날 카운트 공백 구분 필드 세기) 공백 분할 을 쓰세요.

CJK 모드는 중국어를 실제로 어떻게 분할하나요?#

브라우저의 Intl.Segmenter를 granularity: "word"로 호출합니다. 이것은 중국어 단어가 어디서 시작하고 끝나는지 아는 진짜 언어 세그멘터입니다. 그래서 我爱北京天安门이 다섯 개의 분리된 글자가 아니라 실제 단어로 분할됩니다. 브라우저가 Intl.Segmenter를 지원하지 않으면 도구는 글자별 카운트로 폴백하고 안내를 표시합니다. 수치는 밀도 비교에 여전히 쓸 수 있지만 언어적 정밀도는 떨어집니다.

n-gram 모드는 무엇을 위한 건가요?#

n-gram은 반복되는 부분문자열을 드러냅니다. 긴 텍스트에 대한 2-gram 패스는 어느 글자 또는 문자 쌍이 지배적인지 보여 주고, 3-gram이나 4-gram 패스는 반복된 접두사, 흔한 형태소, 오타 클러스터를 표면화합니다. 키워드 스태핑 감사, 암호 분석, 자동완성 순위의 표준 기술입니다.

왜 내 비율은 표시된 Top-N이 아니라 모든 토큰을 기준인가요?#

백분율은 실제 총계에 대해서만 의미 있기 때문입니다. 5,000단어 에세이의 Top 10을 물어보면 각 단어의 비율은 표시된 10단어의 몫이 아니라 전체 에세이에서의 몫을 반영해야 합니다. 전체 토큰 총계에 대해 비율을 계산하면 표가 잘리더라도 수치가 정직하게 유지됩니다.

내 텍스트가 어디론가 업로드되나요?#

아닙니다. 토큰화, 카운팅, CSV 생성은 모두 브라우저에서 동작합니다. 큰 입력은 백그라운드 워커 스레드로 옮겨가지만 그 스레드도 여전히 이 페이지의 일부입니다. 서버로 아무것도 보내지 않습니다.