Skip to content

Repository files navigation

한국어 텍스트 빈도 분석기

프로젝트 개요

한국어 전용 텍스트 빈도 분석기입니다. 한국어 텍스트에서 단어의 출현 빈도를 분석하여 가장 자주 사용된 단어를 파악할 수 있는 웹 애플리케이션입니다. 대용량 텍스트도 빠르게 처리할 수 있도록 WebAssembly 기술을 활용합니다.

주요 특징:

  • 한국어만 분석 (영어, 중국어, 일본어 등 기타 언어는 자동 제외)
  • 조사 자동 제거 (은, 는, 이, 가, 을, 를 등)
  • 불용어 필터링 (조사, 연결어 등 의미 없는 단어 제거)
  • 동사/형용사/부사 자동 제거 (명사 중심 분석)

핵심 기능

1. 텍스트 입력

  • 요구사항: 다양한 길이의 한국어 텍스트 입력 지원
  • 제약사항:
    • 최대 입력 길이 제한 (메모리 고려)
    • 특수문자, 이모지 처리
  • UX 고려사항:
    • 텍스트 영역 크기 조절 가능
    • 입력 중 실시간 글자 수 표시

2. 한국어 단어 분리 및 정규화

  • 언어 감지:
    • UTF-8 바이트 패턴으로 한글 범위 정확히 감지 (U+AC00 ~ U+D7A3)
    • 한글이 아닌 단어는 자동 제외
  • 단어 분리:
    • 공백, 구두점 기준으로 단어 분리
    • 연속된 공백 처리
    • 줄바꿈 처리
  • 정규화:
    • 앞뒤 구두점 제거
    • 한글만 추출 (영어, 숫자 등 ASCII 문자 제거)
  • 조사 제거:
    • 자동으로 조사 제거 (은, 는, 이, 가, 을, 를, 에, 에서, 에게, 으로, 와, 과, 도, 만, 의, 들 등)
    • 여러 조사가 겹친 경우 반복 제거

3. 키워드 필터링

  • 불용어 제거:
    • 조사, 연결어 등 의미 없는 단어 자동 제거
    • 예: "은", "는", "이", "가", "그리고", "하지만" 등
  • 품사 필터링:
    • 동사/형용사/부사 끝말 자동 제거
    • 예: "한다", "된다", "하는", "되는", "처럼", "같이" 등
    • 서술어 제거 ("다"로 끝나는 단어)
    • 관형사형 제거 ("한"으로 끝나는 단어)
  • 기능 명사 제거:
    • 의미가 약한 기능 명사 제거
    • 예: "것", "수", "때", "등", "부분", "경우" 등
  • 명사 우선 인정:
    • 명사 접미사 패턴을 가진 단어는 우선 인정
    • 예: "제도", "정책", "사회", "문제", "법", "권", "성", "화" 등

4. 빈도 계산 및 정렬

  • 계산 방식: 각 단어의 출현 횟수 카운트
  • 정렬 기준: 빈도 내림차순 (가장 많이 나온 단어가 위)
  • 동점 처리: 빈도가 같을 경우 입력 순서 유지

5. 결과 표시

  • 전체 분석 모드:
    • 모든 단어의 빈도 표시
    • 스크롤 가능한 긴 목록
  • 상위 N개 모드:
    • 사용자가 지정한 개수만큼만 표시 (기본 10개)
    • 빠른 인사이트 제공
  • 결과 형식:
    • 순위, 단어, 빈도 수를 표 형태로 표시
    • 시각적으로 구분하기 쉬운 디자인

성능 지표

  • 평균 분석 시간
  • 최대 처리 가능 텍스트 크기
  • 에러 발생률

프로젝트 범위

포함 사항

  • ✅ 한국어 전용 텍스트 빈도 분석
  • ✅ 한글 정확한 감지 (UTF-8 바이트 패턴 기반)
  • ✅ 조사 자동 제거
  • ✅ 불용어 필터링
  • ✅ 동사/형용사/부사 자동 제거
  • ✅ 웹 브라우저에서 실행
  • ✅ 실시간 분석 결과 표시
  • ✅ WebAssembly 기반 고성능 처리

프로젝트 구조

text-frequency-analysis/
├── wasm/              # WebAssembly 모듈 (분석 엔진)
├── js/                # JavaScript 인터페이스
├── index.html         # 사용자 인터페이스
└── README.md          # 기획서

프로젝트 빌드 방법

프로젝트 빌드는 아래와 같습니다. (Emscripten이 설치되어 있다는 가정하에)

cd text-frequency-analysis  # 프로젝트 루트 디렉토리

# WASM 빌드 (cpp 파일 수정 시 또는 wasm 파일이 없을 때만 실행)
build-simple.bat

# 로컬 웹 서버 실행
python -m http.server 8000

# 웹 브라우저에서 접속
# http://127.0.0.1:8000

About

wasm 기반 텍스트 빈도 분석

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages