-
[Spark] Python 자연어처리 KoNLPy 형태소 분석 (feat. '코로나')DataProcessing/NLP 2021. 1. 30. 16:46728x90
파이썬에서는 텍스트분석을 위한 자연어처리(Natural language processing) 오픈소스 라이브러리를 제공하는데
그 중에서도 한국어 자연어 처리를 위한 파이썬 패키지로는 KoNLPy ("코엔엘파이")가 있습니다.
일명 '파이썬 한글 형태소 분석기' 라고 합니다.
KoNLPy에는 5가지의 종류의 형태소 분석기가 클래스로 포함되어 있습니다:
- Okt(Open Korea Text)
- 꼬꼬마(Kkma)
- 메캅(Mecab)
- 코모란(Komoran)
- 한나눔(Hannanum)
이는 자바 기반의 형태소 분석기 이므로 pip으로 바로 설치되지 않고, Java jdk와 Jpype를 설치해야 합니다.
아래는 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
- 현재 python 3.7을 사용하고 있으므로 JPype1-1.2.0-cp37-cp37m-win_amd64.whl 파일 다운로드 후 동일 폴더에 저장
- 패키지 설치하기
> pip install JPype1-1.2.0-cp37-cp37m-win_amd64.whl
이상 저의 삽질일기를 마칩니다!
여기저기 삽질도 해보고
날려도 먹으면서
배우는 게
결국 남는거다
- Z.Sabziller