Python 튜토리얼

Lv1 전처리 8/14 python 파이썬 형태소 분석기 - (2)

2021.09.30 11:40 5,516 조회

이번시간에는 형태소 분석기의 종류에 대해 알아보고 실습을 통해 어떤식으로 형태소를 분리해 주는지 차이점에 대해 알아보겠습니다. 형태소 분석기의 종류를 여러개 알아야 하는 이유는 각각의 텍스트마다 성능이 좋은 형태소 분석기는 다르기 때문입니다.👨‍🏫👨‍🏫

오늘 실습 할 형태소 분석기는 Okt, Komoran, Kkma 총 3개 입니다.


형태소 분석기를 이용해 형태소를 분석하는 방법은 다음과 같습니다.

  1. 라이브러리 설치
  2. 형태소 분석기 정의
  3. 형태소 분석

순서에 맞게 실습을 진행해 보겠습니다.


-------------------------------------------------------------------------------------------------------------------------------------------------

# 라이브러리 설치

# Okt, Komoran, Kkma 은 모두 konlpy 라이브러리에서 불러올 수 있습니다.

!pip install konlpy


from konlpy.tag import Kkma, Komoran, Okt

# 형태소 분석기 정의

okt = Okt()

kkm = Kkma()

kom = Komoran()


#형태소를 분석할 텍스트 정의

text = '마음에 꽂힌 칼한자루 보다 마음에 꽂힌 꽃한송이가 더 아파서 잠이 오지 않는다'


# 형태소 분석기의 pos메소드를 이용해 형태소를 분석 

kom.pos(text)

kkm.pos(text)

okt.pos(text,norm=True, stem=True)


Komoran

[('마음', 'NNG'), ('에', 'JKB'), ('꽂히', 'VV'), ('ㄴ', 'ETM'), ('칼', 'NNG'), ('한자', 'NNP'),

('루', 'JKB'), ('보다', 'MAG'), ('마음', 'NNG'),('에', 'JKB'), ('꽂히', 'VV'), ('ㄴ', 'ETM'),

('꽃', 'NNG'), ('한송이', 'NNP'), ('가', 'JKS'), ('더', 'MAG'), ('아파서', 'NNP'), ('잠', 'NNG'),

('이', 'JKS'), ('오', 'VV'), ('지', 'EC'), ('않', 'VX'), ('는다', 'EC')]


Kkma

[('마음', 'NNG'), ('에', 'JKM'), ('꽂히', 'VV'), ('ㄴ', 'ETD'), ('칼', 'NNG'), ('한자', 'NNG'), ('로', 'JKM'), ('보다', 'MAG'), ('마음', 'NNG'), ('에', 'JKM'), ('꽂히', 'VV'), ('ㄴ', 'ETD'), ('꽃', 'NNG'), ('한', 'MDN'), ('송이', 'NNG'), ('가', 'JKS'), ('더', 'MAG'), ('아프', 'VA'), ('아서', 'ECD'), ('잠', 'NNG'), ('이', 'JKS'), ('오', 'VV'), ('지', 'ECD'), ('않', 'VXV'), ('는', 'EPT'), ('다', 'EFN')]


okt

[('마음', 'Noun'), ('에', 'Josa'), ('꽂히다', 'Verb'), ('칼', 'Noun'), ('한', 'Determiner'), ('자루', 'Noun'), ('보다', 'Verb'), ('마음', 'Noun'), ('에', 'Josa'), ('꽂히다', 'Verb'), ('꽃', 'Noun'),

('한송이', 'Noun'), ('가', 'Josa'), ('더', 'Noun'), ('아프다', 'Adjective'), ('잠', 'Noun'),

('이', 'Josa'), ('오지', 'Noun'), ('않다', 'Verb')]

-------------------------------------------------------------------------------------------------------------------------------------------------

분석 결과를 보았을 때, Kkma와 Komoran이 okt 보다 더 구체적으로 형태소에 따라 단어를 쪼개는 것을 알 수 있습니다.

또한 Okt는 stem=True, norm = True의 파라미터가 존재해서, 단어들을 알아서 정규화 해주고, 오타도 수정해주는 기능을 가지고 있습니다. 위예시에서 꽂힌 을 꽂히다아파서 를 아프다 로 바꿨습니다.


이 처럼 여러개의 형태소 분석기를 사용해보고 본인의 데이터에 맞는 알맞는 형태소 분석기를 선정하시기 바랍니다.

다음 시간에는 청와대 청원 데이터를 형태소 분석 해보도록 하겠습니다.


감사합니다.


[Colab 실습 링크]


↩️ 오늘의 파이썬 리스트


#데이콘_101 #AI #머신러닝 #딥러닝 #파이썬 #파이선 #데이터분석 #데이터사이언티스트 #코랩 #Python #colab #kaggle #pandas #numpy #sckit-learn #konlpy #형태소분석기 #okt #kkma #komoran


로그인이 필요합니다
0 / 1000
왼쪽눈썹왁싱
2021.11.03 10:57

페드로
2021.11.18 10:46

moran
2022.01.04 15:23

dbnoid
2022.01.20 13:02

acebed
2022.03.11 14:51

done

비회원
2022.04.07 00:02

krooner
2022.05.20 00:52

pysung
2022.09.13 21:21

done

baeksh0330
2022.10.02 17:44

센트럴푸
2022.11.07 11:52

highllight
2023.02.12 15:55