본문 바로가기
Data Analysis/Python

[Python] 한글 자연어 처리하기, Kkma, konlpy, 문장 분석, 단어 분석, 형태소 분석

by lucky__lucy 2024. 2. 6.

 

※ '파이썬으로 데이터 주무르기' 책을 참고하여 작성한 글입니다. 파이썬으로 데이터 전처리 및 분석을 공부할 수 있는 좋은 책이라 추천합니다!

 
파이썬으로 데이터 주무르기
이 책은 누구나 한 권 이상 가지고 있을 파이썬 기초 문법책과 같은 내용이 아닌, 데이터 분석이라는 특별한 분야에서 초보를 위해 처음부터 끝까지 파이썬으로 진행되는 과정을 다룹니다. 서울시 범죄 현황 분석, 셀프 주유소 가격 정보 분석, 19대 대선 결과 분석 등 흥미 있는 목표를 이루기 위해서 파이썬의 기초를 익히고, 데이터를 다루고 분석하는 데 필요한 과정을 대화 형식으로 전개하면서 필요한 기초 내용은 그때 그때 습득하고자 합니다. 마치 파이썬에 대해 잘 모르는 독자가 구글에서 검색하며 코드 한 줄 한 줄을 완성해가는 느낌으로 기술했습니다. 대부분의 장에는 뚜렷한 목표가 있습니다. 항상 시작은 데이터를 얻는 법을 먼저 다루게 되고, 그 데이터를 정제하거나 변경해가며 목표를 이루는 과정을 보여줍니다. 필요하다면 해당 모듈의 튜토리얼을 가지고 와서 기초를 설명하고자 합니다. 아마 이 책을 다 읽고 나면 파이썬이, 또 파이썬으로 수행하는 데이터 분석의 세계가 아주 흥미롭다는 것을 알게 될 것입니다.
저자
민형기
출판
비제이퍼블릭
출판일
2017.12.29

 

 

1. Kkma 활용

# 패키지 불러오기
from konlpy.tag import Kkma # 이때 맨 앞 K는 대문자
kkma = Kkma()

 

# 문장 분석
kkma.sentences('안녕하세요 잘 부탁드립니다')
# ['안녕하세요', '잘 부탁 드립니다']

kkma.sentences('안녕하세요 반갑습니다 잘부탁드립니다')
# ['안녕 하세요 반갑습니다', '잘 부탁드립니다']

온점이 없어도 문장 인식이 된다.

그러나 '안녕하세요 반갑습니다 잘부탁드립니다'의 경우 문장이 제대로 나누어지지 않았다. (왜 이런 지 파악 필요)

 

# 명사 분석
kkma.nouns('안녕하세요 잘 부탁드립니다')
# ['안녕', '부탁']

kkma.nouns('안녕하세요 잘부탁드립니다')
# ['안녕']

띄어쓰기 여부에 따라 명사로 인식되는 내용이 달라진다.

 

# 형태소 분석
kkma.pos('안녕하세요 잘 부탁드립니다')
# [('안녕', 'NNG'),
#  ('하', 'XSV'),
#  ('세요', 'EFN'),
#  ('잘', 'MAG'),
#  ('부탁', 'NNG'),
#  ('드리', 'VV'),
#  ('ㅂ니다', 'EFN')]

한글은 단어 형태가 많기 때문에 최소 의미 단위인 형태소로 분석하는 것이 일반적이다.

 

2. konlpy 활용

# 패키지 불러오기
from konlpy.tag import Twitter
t = Twitter()

 

# 명사 분석
t.nouns('한국어 분석 패키지입니다')
# ['한국어', '분석', '패키지']

# 형태소 분석 (설명이 없는 버전)
t.morphs('한국어 분석 패키지입니다')
# ['한국어', '분석', '패키지', '입니다']

# 형태소 분석 (설명이 있는 버전)
t.pos('한국어 분석 패키지입니다')
# [('한국어', 'Noun'), ('분석', 'Noun'), ('패키지', 'Noun'), ('입니다', 'Adjective')]

 

728x90
반응형