python에서 초성/중성/종성 뽑아내기, 음소로 나누기
17 Feb 2008기록 차원에서 간단하게 적어두기.
아래 코드들은 CJKCodec 이 설치된 python 2.4부터 가능하며, 전부 unicode(utf-8)로 처리된다. 만약, CJKCodec이 안깔려있다면 CJKPython에서 받아서 깔면 된다.
1. 글자 종류 알아내기
* 코드
# -*- coding:utf-8 -*- from unicodedata import name str = u'가' print name(str)[:6]
* 실행 결과
>>> HANGUL
2. 한글을 음소로 나누기
* 코드
# -*- coding:utf-8 -*- import hangul str = u'안' print hangul.split(str)
* 실행 결과
>>> (u'u3147', u'u314f', u'u3134')
3. 종성(끝소리) 있는지 확인
* 코드
# -*- coding:utf-8 -*- import hangul str = u'안' if hangul._has_final(str): print 1 else: print 0
* 실행 결과
>>> 1
4. 초성만 뽑아내기
* 코드
# -*- coding:utf-8 -*- import hangul str = u'안' a = [] for ch in str: if name(ch)[:6] == 'HANGUL': a.append(hangul.split(ch)[0])
* 실행 결과
>>> ['ㅇ','ㄴ','ㅎ','ㅅ','ㅇ']
중성만 뽑아내려면 hangul.split(ch)[0]을 hangul.split(ch)[1], 종성은 hangul.split(ch)[2]이라고 하면 된다.