Toolkit for Hangul composing, decomposing and etc...
Project description
Simple Toolkit for Hangul
base code forked from https://github.com/rhobot/Hangulpy
한글 자모 분해, 조합(오토마타), 조사 붙이기, 초/중/종 분해조합, 한글/한자/영문 여부 체크 등을 지원합니다.
INSTALL
pip install hgtk
Samples
Letter
Decompose character
>>> hgtk.letter.decompose('감')
('ㄱ', 'ㅏ', 'ㅁ')
Compose character
>>> hgtk.letter.compose('ㄱ', 'ㅏ', 'ㅁ')
'감'
Text
Decompose text
>>> hgtk.text.decompose('학교종이 땡땡땡! hello world 1234567890 ㅋㅋ!')
'ㅎㅏㄱᴥㄱㅛᴥㅈㅗㅇᴥㅇㅣᴥ ㄸㅐㅇᴥㄸㅐㅇᴥㄸㅐㅇᴥ! hello world 1234567890 ㅋᴥㅋᴥ!'
기본 조합 완료 기호는 ᴥ이고, 아래와 같이 compose_code 옵션으로 변경 가능합니다.
>>> hgtk.text.decompose('학교종이 땡땡땡! hello world 1234567890 ㅋㅋ!', compose_code='/')
'ㅎㅏㄱ/ㄱㅛ/ㅈㅗㅇ/ㅇㅣ/ㄸㅐㅇ/ㄸㅐㅇ/ㄸㅐㅇ/! hello world 1234567890 ㅋ/ㅋ/!'
기본 조합기호의 의미는 곰돌이 입니다. 👇
Compose text (Automata)
>>> hgtk.text.compose('ㅎㅏㄱᴥㄱㅛᴥㅈㅗㅇᴥㅇㅣᴥ ㄸㅐㅇᴥㄸㅐㅇᴥㄸㅐㅇᴥ! hello world 1234567890 ㅋᴥㅋᴥ!')
'학교종이 땡땡땡! hello world 1234567890 ㅋㅋ!'
Checker
is hangul text
>>> hgtk.checker.is_hangul('한글입니다')
True
>>> hgtk.checker.is_hangul('no한글입니다')
False
>>> hgtk.checker.is_hangul('it is english')
False
is hanja text
>>> hgtk.checker.is_hanja('大韓民國')
True
>>> hgtk.checker.is_hanja('大한민국')
False
>>> hgtk.checker.is_hanja('대한민국')
False
is latin1 text
>>> hgtk.checker.is_latin1('abcdefghijklmnopqrstuvwxyz')
True
>>> hgtk.checker.is_latin1('한글latin1한')
False
has batchim
>>> hgtk.checker.has_batchim('한') # '한' has batchim 'ㄴ'
True
>>> hgtk.checker.has_batchim('하')
False
Josa
EUN_NEUN - 은/는
>>> hgtk.josa.attach('하늘', hgtk.josa.EUN_NEUN)
'하늘은'
>>> hgtk.josa.attach('바다', hgtk.josa.EUN_NEUN)
'바다는'
I_GA - 이/가
>>> hgtk.josa.attach('하늘', hgtk.josa.I_GA)
'하늘이'
>>> hgtk.josa.attach('바다', hgtk.josa.I_GA)
'바다가'
EUL_REUL - 을/를
>>> hgtk.josa.attach('하늘', hgtk.josa.EUL_REUL)
'하늘을'
>>> hgtk.josa.attach('바다', hgtk.josa.EUL_REUL)
'바다를'
GWA_WA - 과/와
>>> hgtk.josa.attach('하늘', hgtk.josa.GWA_WA)
'하늘과'
>>> hgtk.josa.attach('바다', hgtk.josa.GWA_WA)
'바다와'
IDA_DA - 이다/다
>>> hgtk.josa.attach('하늘', hgtk.josa.IDA_DA)
'하늘이다'
>>> hgtk.josa.attach('바다', hgtk.josa.IDA_DA)
'바다다'
EURO_RO - 로/으로
>>> hgtk.josa.attach('하늘', hgtk.josa.EURO_RO)
'하늘로'
>>> hgtk.josa.attach('바다', hgtk.josa.EURO_RO)
'바다로'
>>> hgtk.josa.attach('태양', hgtk.josa.EURO_RO)
'태양으로'
RYUL_YUL - 율/률
>>> hgtk.josa.attach('방어', hgtk.josa.RYUL_YUL)
'방어율'
>>> hgtk.josa.attach('공격', hgtk.josa.RYUL_YUL)
'공격률'
>>> hgtk.josa.attach('반환', hgtk.josa.RYUL_YUL)
'반환율'
Const
-
CHO: 초성 리스트
-
JOONG: 중성 리스트
-
JONG: 종성 리스트, 종성이 없는 경우를 대비해 공백 문자가 추가됨
-
JAMO: 공백을 제외한 모든 자모(비조합문자)
-
NUM_CHO: 초성 개수
-
NUM_JOONG: 중성 개수
-
NUM_JONG: 종성 개수
-
FIRST_HANGUL_UNICODE: 유니코드 상의 한글 코드(조합문자) 시작 시점
-
LAST_HANGUL_UNICODE: 유니코드 상의 한글 코드(조합문자) 종료 시점
Exception
예외 처리를 위한 Exception들, 의미는 보이는 대로..
- NotHangulException
- NotLetterException
- NotWordException
##Tested in
-
python 2.6
-
python 2.7
-
python 3.3
-
python 3.4
-
python 3.5
-
python 3.6
-
python nightly build
-
PyPy 2.2.5.
-
Pypy 3 2.4.
-
PyPy 5.3.1
Apache 2.0 License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file hgtk-0.2.1-py2.py3-none-any.whl
.
File metadata
- Download URL: hgtk-0.2.1-py2.py3-none-any.whl
- Upload date:
- Size: 12.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3e33dacf6ab2564f6257418b718e2c7a4ae9fffa32e18d6c4f6278b72ba73ee |
|
MD5 | 37043d0570f1577f110bcf903e51b723 |
|
BLAKE2b-256 | 4cd0d62a73954ab95a8d3967a063c371c16feddfb8bd2957fd11691adf7834e8 |