조사 선택부터 자모 분해·조합, 초성 검색, 발음 변환, 로마자 표기까지 제공하는 Python 한글 처리 라이브러리입니다. es-hangul에서 영감을 받아 Python에 자연스러운 API와 타입 정보를 제공합니다.
- 별도 런타임 의존성 없음
- NFC·NFD, 호환 자모와 반각 한글을 고려한 Unicode 처리
py.typed를 포함한 정적 타입 검사 지원- 조사, 검색, 숫자, 발음, 로마자 표기를 하나의 패키지에서 제공
python -m pip install -U hangulpy| hangulpy | Python | 지원 정책 |
|---|---|---|
| v1.5.x | 3.11~3.14 | 필수 CI 검증 |
| v1.5.x | 3.15 프리릴리스 | 실패를 허용하는 선행 호환성 검증 |
| v1.4.x | 3.8~3.10 | 이전 Python용 호환 계열 |
Python 3.8~3.10을 계속 사용해야 한다면 python -m pip install "hangulpy<1.5"로
마지막 호환 계열을 설치할 수 있습니다. 자세한 배경은
v1.5 마이그레이션 가이드를 확인하세요.
from hangulpy import (
get_chosung_string,
format_josa,
hangul_contains,
join_jamos,
number_to_hangul_mixed,
romanize,
split_syllables,
standardize_pronunciation,
)
print(format_josa("RAM[은/는] API[이/가]")) # RAM은 API가
print(hangul_contains("사과", "삭")) # True
print(split_syllables("한글", output_format="string")) # ㅎㅏㄴㄱㅡㄹ
print(join_jamos(["ㅎ", "ㅏ", "ㄴ", "ㄱ", "ㅡ", "ㄹ"])) # 한글
print(get_chosung_string("한글")) # ㅎㄱ
print(standardize_pronunciation("굳이")) # 구지
print(romanize("한글")) # hangeul
print(number_to_hangul_mixed(123456780)) # 1억2,345만6,780| 분야 | 설명 | 주요 API |
|---|---|---|
| 조사 | 받침, 숫자, 영문 약어에 맞는 조사 선택 | josa, josa_pick, format_josa, has_batchim |
| 검색 | 초성·부분 음절·퍼지 검색과 원문 위치 추적 | hangul_contains, HangulSearcher, HangulIndex, find_hangul_spans |
| 자모 | 음절 분해·조합, 자모 단위 편집과 변환 | split_syllables, join_jamos, jamo_slice, map_hangul |
| 속성 | 초·중·종성 판정과 문자열 전체 성분 추출 | get_hangul_components, get_chosung_string, can_be_jongsung |
| 발음·표기 | 표준 발음 변환과 여러 방식의 로마자 표기 | standardize_pronunciation, romanize, Romanizer |
| 숫자·키보드 | 한글 수사 변환과 한영타 교정 | number_to_hangul, susa, days, koen, enko, autofix |
| 전처리 | 반각 한글 변환과 반복 자모·이모티콘 정리 | normalize_halfwidth_hangul, reduce_jamo_repeats |
전체 공개 API와 사용법은 공식 문서에서 확인할 수 있습니다.
저장소를 받은 뒤 개발 의존성을 설치하고 검사할 수 있습니다.
python -m pip install -e ".[dev]"
python -m ruff check .
python -m black --check .
python -m pytest버그 제보, 기능 제안, 문서 개선과 Pull Request를 환영합니다. 작업 전 열린 이슈를 확인해 주세요.