konlpy 한국어 처리 패키지
https://datascienceschool.net/view-notebook/70ce46db4ced4a999c6ec349df0f4eb0/
konlpy는 한국어 정보처리를 위한 파이썬 패키지이다.
http://konlpy.org/ko/latest/
https://github.com/konlpy/konlpy
konlpy는 다음과 같은 다양한 형태소 분석, 태깅 라이브러리를 파이썬에서 쉽게 사용할 수 있도록 모아놓았다.
Kkma
http://kkma.snu.ac.kr/
Hannanum
http://semanticweb.kaist.ac.kr/hannanum/
Twitter
https://github.com/twitter/twitter-korean-text/
Komoran
http://www.shineware.co.kr/?page_id=835
Mecab
https://bitbucket.org/eunjeon/mecab-ko-dic
konlpy 는 다음과 같은 기능을 제공한다.
한국어 corpus
한국어 처리 유틸리티
형태소 분석 및 품사 태깅
한국어 corpus
- 예문 호출, 파일리스트
from konlpy.corpus import kolaw
kolaw.fileids()
c = kolaw.open('constitution.txt').read()
print(c[:100])
from konlpy.corpus import kobill
kobill.fileids()
d = kobill.open('1809890.txt').read()
print(d[:100])
한국어 처리 유틸리티
konlpy에는 유니코드 한글 문자열이 리스트나 딕셔너리의 내부에 있을 때도 한글 글자 모양을 정상적으로 보여주는 pprint 유틸리티 함수를 제공한다.
x = [u"한글", {u"한글 키": [u"한글 밸류1", u"한글 밸류2"]}]
print(x)
from konlpy.utils import pprint
pprint(x)
형태소 분석
konlpy는 tag 서브패키지에서 형태소 분석을 위한 5개의 클래스를 제공한다.
Kkma
Hannanum
Twitter
Komoran
Mecab
이 클래스는 다음과 같은 메서드를 대부분 제공한다.
morphs : 형태소 추출
nouns : 명사 추출
pos : pos 태깅
from konlpy.tag import *
hannanum = Hannanum()
kkma = Kkma()
twitter = Twitter()
명사 추출
문자열에서 명사만 추출하려면 noun 명령을 사용한다.
pprint(hannanum.nouns(c[:65]))
pprint(kkma.nouns(c[:65]))
pprint(twitter.nouns(c[:65]))
형태소 추출
명사 뿐 아니라 모든 품사의 형태소를 알아내려면 morphs라는 명령을 사용한다.
pprint(hannanum.morphs(c[:65]))
pprint(kkma.morphs(c[:65]))
pprint(twitter.morphs(c[:65]))
품사 태깅
pos 명령을 사용하면 품사(POS)가 붙어있는(tagging) 형태로 형태소 분석을 한다. 다만 이 때 출력되는 품사의 정의 및 기호는 형태소 분석기 마다 다르므로 각 형태소 분석기에 대한 문서를 찾아봐야 한다.
다음은 많이 쓰이는 형태소 분석기의 품사 기호를 비교한 자료이다.
Korean POS tags comparison chart : https://docs.google.com/spreadsheets/d/1OGAjUvalBuX-oZvZ_-9tEfYD2gQe7hTGsgUpiiBSXI8/edit#gid=0
pprint(hannanum.pos(c[:65]))
pprint(kkma.pos(c[:65]))
pprint(twitter.pos(c[:65]))