KoNLPy

박경민·2023년 2월 9일
0

[Machine Learning]

목록 보기
13/35

본 포스팅은 데이터사이언스 스쿨의 다음링크 를 실습한 내용입니다

KoNLPy는 한국어 정보처리를 위한 파이썬 패키지이다.

konlpy 를 설치부터 따라가보자.

pip install konlpy

from konlpy.corpus import kolaw
kolaw.fileids() #kolaw 임포트, fileids 로 텍스트 이름 확인 #kobill 국회법안도 제공

konlpy 자체적으로 한국 헌법인 kolaw 와 국회법안인 kobill 을 제공한다. .fieids 를 이용해 텍스트 이름을 찍어주었다.

c = kolaw.open('constitution.txt').read()
print(c[:500])

konlpy는 다양한 형태소 분석, 태깅 라이브러리를 지원한다. Mecab 도 있는데 이는 Window 에서는 지원하지 않는다고 한다.

#Hannanum, Kkma, Komoran, Mecab, OKt 제공
from konlpy.tag import *


hannanum = Hannanum()
kkma = Kkma()
komoran = Komoran()
okt = Okt()

위 라이브러리들은 모두 nouns, morphs, pos 를 제공한다. 각각 명사, 형태소, 품사 태깅 메서드이다!

🙌nouns 메서드

hannanum.nouns(c[:40])

kkam.nouns(c[:40])

komoran 은 빈 줄이 있으면 에러가 난다, 이를 결합해주자.

# komoran은 빈줄이 있으면 에러가 남
komoran.nouns("\n".join([s for s in c[:40].split("\n") if s]))

okt.nouns(c[:40])

🙌 morphs 메서드

morphs 메서드는 글자를 구성하는 모든 형태소를 반환한다.

hannanum.morphs(c[:40])

# komoran은 빈줄이 있으면 에러가 남
komoran.morphs("\n".join([s for s in c[:40].split("\n") if s]))

okt.morphs(c[:40])

🙌pos 메서드

pos 메서드는 part of speech, 즉 품사를 태깅 (단어 - 품사로 달아줌)해주는 메서드이다.

hannanum.pos(c[:40])

kkma.pos(c[:40])

# komoran은 빈줄이 있으면 에러가 남
komoran.pos("\n".join([s for s in c[:40].split("\n") if s]))

okt.pos(c[:40])

🙌nltk 와 결합

from nltk import Text

kolaw = Text(okt.nouns(c), name = 'Kolaw')
kolaw.plot(30)
plt.show()

nltk 와 결합하여 숫자를 카운팅하는 것도 가능하다.

kkma.nouns(u'안녕하세요. 저는 현재 블로그를 작성 중이고, 한국어 자연어 처리 라이브러리를 공부 중입니다')

profile
Mathematics, Algorithm, and IDEA for AI research🦖

0개의 댓글