본문 바로가기

BLOG/머신러닝

[자연어처리] Okt : 형태소 단위로 나누는 방법 (파이썬)

자연어처리를 할 때, 데이터 전처리로 문장을 형태소 단위로 나누는 과정을 거쳐야 하는데요, 파이썬에서 형태소 단위로 나누는 라이브러리는 다양합니다. 그중에서 Okt 라이브러리를 이용하여 형태소 단위로 나누는 방법에 대해서 살펴보도록 하겠습니다.

 

 

- 형태소 단위로 나누기

먼저, 필요한 라이브러리를 설치해줍니다.

 

from  konlpy.tag import Okt
import re

 

그리고, 형태소 단위로 나눌 문장은 다음과 같다고 가정하겠습니다.

 

text1 = "Tue) 오늘도 나는 커피를 마셔요!"

 

Okt 객체를 이용해서 이 문장을 형태소 단위로 나누기 전, 한글과 공백을 제외한 문자를 모두 제거해주어야 하는데요, 정규표현식을 이용해서 코드를 다음과 같이 입력해주면 됩니다.

 

text2 = re.sub("[^가-힣ㄱ-ㅎㅏ-ㅣ\\s]", "", text1)

 

그리고나서, Okt를 이용하여 형태소 단위를 나누면 되는데요, okt 라이브러리의 morphs()라는 모듈을 이용하면 됩니다.

 

okt = Okt()
word_text = okt.morphs(text2, stem=True)

 

이렇게 다 입력하고 실행했다면, 문장이 형태소 단위로 나누어지게 되는데요, 그 결과를 보도록 하겠습니다.

 

print(word_text)

# output :
['오늘', '도', '나', '는', '커피', '를', '마시다']

 

확인 결과, 해당 문장이 형태소 단위로 잘 나누어졌음을 확인할 수 있습니다.