DataProcessing/NLP

[Spark] Python 자연어처리 KoNLPy 형태소 분석 (feat. '코로나')

쫄보삽질러 2021. 1. 30. 16:46

파이썬에서는 텍스트분석을 위한 자연어처리(Natural language processing) 오픈소스 라이브러리를 제공하는데

그 중에서도 한국어 자연어 처리를 위한 파이썬 패키지로는 KoNLPy ("코엔엘파이")가 있습니다.

일명 '파이썬 한글 형태소 분석기' 라고 합니다.

 

KoNLPy에는 5가지의 종류의 형태소 분석기가 클래스로 포함되어 있습니다:

  • Okt(Open Korea Text)
  • 꼬꼬마(Kkma)
  • 메캅(Mecab)
  • 코모란(Komoran)
  • 한나눔(Hannanum)

이는 자바 기반의 형태소 분석기 이므로 pip으로 바로 설치되지 않고, Java jdk와 Jpype를 설치해야 합니다.

 

liveyourit.tistory.com/56

 

KoNLPy (파이썬 한글 형태소 분석기 ) 윈도우 설치 방법

파이썬 한글 형태소 분석기인 KoNLPy 설치는 아래 기입된 순서대로, 본인 환경(파이썬 버전, 윈도우 비트)에만 맞게 진행해주면 에러가 발생하지 않는다. 참고로 나의 환경은 '파이썬3.8, 윈도우10 x

liveyourit.tistory.com

 

아래는 Okt와 Kkma를 사용해서 트윗 메세지를 명사화하여 단어들의 빈도수를 계산해보려고 합니다.

원하는 형태소 분석기 클래스를 import한 후 객체를 생성하여 사용하면 됩니다.

 

from konlpy.tag import Okt, Kkma

okt = Okt()   ## 단어 개별 분석
kkma = Kkma()   ## 단어 중복 분석

tweet_message = '[속보] 정은경 코로나 전담병원 의료진부터 2월 중 접종 시작 https://twitter.com/JTBC_news/status/1354659426787987463/photo/1'

tweet_okt = okt.nouns(tweet_message)
tweet_kkma = kkma.nouns(tweet_message)

print(tweet_okt)
print(tweet_kkma)

코로나 관련 트윗 메세지의 형태소 분석

 

두 가지를 다 사용하여 나오는 값을 비교해본 결과 okt는 고유한 단어의 개별 명사화 통한 결과 값를 반환한다면,

kkma(꼬꼬마)는 단어들의 중복을 허용하여 명사화 시킨 결과 값을 반환하는 것을 확인할 수 있었다!

 

JAVA 관련에러:

konlpy SystemError: java.nio.file.InvalidPathException: Illegal char <*>

 

https://www.lfd.uci.edu/~gohlke/pythonlibs/#jpype

 

  1. 현재 python 3.7을 사용하고 있으므로 JPype1-1.2.0-cp37-cp37m-win_amd64.whl 파일 다운로드 후 동일 폴더에 저장
  2. 패키지 설치하기
> pip install JPype1-1.2.0-cp37-cp37m-win_amd64.whl

 

 

이상 저의 삽질일기를 마칩니다!

 


여기저기 삽질도 해보고

날려도 먹으면서

배우는 게

결국 남는거다

- Z.Sabziller

 


 

 

'쫄보의삽질' 블로그 탄생스토리가 궁금하다면:

 

Git push 취소 방법 (feat. '쫄보의삽질' 블로그 탄생 배경)

아래는 저의 생생한 경험담을 바탕으로 작성한 것 입니다. Github 관리 폴더의 이름을 실수로 변경하고 삭제해버렸다. 작업 후 commit 하려고 아무리 찾아봐도 폴더가 보이지 않았다. 나의 피땀눈물

ninano1109.tistory.com

 

 

반응형