DoITgrow

[패키지 설치 방법] 윈도우10(Window10)에서 Mecab 형태소 분석기를 설치하고 사용하는 방법 (feat. 파이썬) 본문

딥러닝 & 머신러닝/자연어 처리 (Natural Language Processing)

[패키지 설치 방법] 윈도우10(Window10)에서 Mecab 형태소 분석기를 설치하고 사용하는 방법 (feat. 파이썬)

김수성 (Kim SuSung) 2021. 12. 21. 18:05
반응형

안녕하세요. 자연어 처리를 할 때, 형태소 분석기는 매우 중요하죠. 오늘은 윈도우10 환경에서 Mecab 형태소 분석기를 설치하고 활용하는 방법에 대해서 알아보겠습니다.

 

사전에 설치가 필요한 프로그램

Mecab 형태소 분석기는 Java 언어로 구현된 라이브러리이므로 파이썬에서 작동시키려면 파이썬에서 자바 언어를 해석할 수 있어야 합니다. 그러게 위해 필요한 것은 파이썬을 대신하여 자바 언어를 읽고 파이썬에게 통역해주는 프로그램이 필요합니다. 바로 2가지 JDK 라고 부르는 "Java SE Development Kit""Jpype" 프로그램 설치가 필요합니다. 단순하게 어떤 패키지를 설치해야 하는지 외우기 보다는 각각의 프로그램이 하는 역할을 같이 알고 계시면 나중에 다시 환경설정을 할 때, 금방 기억하실 수 있을 거에요.

1. Java SE Development Kit 설치 및 환경변수 등록

파일 다운로드 및 설치

구글에 키워드로 검색해도 되고, 아래 링크로 바로 접속하셔서 본인 컴퓨터에 맞는 프로그램을 다운받으시면 됩니다.

저는 "x64 Installer'를 받아서 설치했습니다. 참고로 파일을 다운로드하기 위해선 회원가입이 필요합니다.

https://www.oracle.com/java/technologies/downloads/#java8-windows

환경변수 등록

윈도우에서 "환경"이라고 검색하면 "시스템 환경 변수 편집"이라는 설정이 검색됩니다. 여기에 들어가면 아래 두번째 스크린샷과 같이 환경변수를 설정할 수 있는 창으로 들어갈 수 있습니다. 

★참고로 환경변수에 대해서 잘 모르시는 분들을 위해 부연 설명을 드리자면, 환경변수로 등록한다는 의미는 내가 컴퓨터에 있는 폴더 중 어느 위치에 있어도 환경변수로 등록한 경로에 있는 파일을 바로 불러올 수 있다는 것입니다. 즉, 파이썬 코드를 실행할 때 파이썬 코드가 어느 폴더에 위치해 있어도 자바 실행 프로그램이 있는 폴더를 환경변수로 등록한다면 자바 실행 프로그램의 이름만 불러서 바로 실행할 수 있게 됩니다. 

아래 세번째 스크린 샷과 같이 "사용자 변수" 아래에 "새로 만들기(N)..." 버튼을 클릭한 뒤 변수이름에는 "JAVA_HOME", 변수 값에는 "C:\Program Files\Java\jdk-17.0.1\bin"과 같이 자바가 설치된 경로의 bin 폴더의 경로를 넣고 저장하시면 됩니다. (경로는 사용자마다 조금씩 다를 수 있으니 잘 확인하고 넣어주세요.)

 

추가로 말씀드리자면 변수 이름을 "JAVA_HOME" 이라고 넣는 이유는 약속입니다. 파이썬에서 자바로 구현된 패키지를 실행하려면 먼저 자바 프로그램을 호출해야겠죠. 그럼 컴퓨터에게 자바 프로그램 좀 불러달라고 요청해야 합니다. 이때 파이썬은 컴퓨터에게 자바 프로그램이 설치된 주소를 자세히 알려주는게 아니라 JAVA_HOME 이라고만 알려줘도 컴퓨터는 우리가 등록한 환경변수 내용을 보고 자바를 불러다 주죠.

2. 아나콘다 명령창 실행 및 가상환경 설정

본 포스팅에서는 아나콘다 실행환경을 기준으로 Mecab을 설치하는 방법을 포스팅합니다. 이유는 conda 패키지 저장소를 이용하여 Jpype를 설치하는 것이 오류없이 안정하게 설치되는 것 같아서 이 방법을 추천드리구요. 아나콘다 말고 일반 명령창을 사용하실 분은 일단 그대로 설치해보셔도 될 것 같아요.

(그러다가 오류가 발생할 경우 댓글로 공유해 주시면 같이 해결 방법을 찾아봐 드릴게요.)

▲ 아나콘다 명령창을 실행할 때는 오른쪽 버튼을 누르고 관리자 버튼으로 열어주세요. 간혹 권한 문제로 설치가 제대로 되지 않는 문제가 발생하니 관리자 권한으로 명령창을 여는 습관을 들여도 좋을 것 같네요.

 

▼ 명령창을 실행했으면 아래와 같이 명령어를 실행하여 가상환경을 만들어 주겠습니다. 맨 뒤에 anaconda를 작성하는 이유는 빼고 설치하면 pandas, numpy, matplotlib 등등 데이터 분석에 기본적으로 필요한 패키지가 모두 설치가 되지 않은 채로 가상환경이 만들어집니다. 그래서 anaconda를 입력하고 가상환경을 만들면 기본적으로 자주 사용하는 패키지들은 모두 같이 설치됩니다.

참고로 "test2" 부분은 마음껏 이름을 바꿔서 설정해도 되는 부분이고, "3.7" 부분도 원하시는 파이썬 버전을 선택하셔도 되는 부분입니다.

(base) C:\> conda create --name test2 python=3.7 anaconda

▼ 가상환경 설치가 완료되려면 몇 분정도 걸리는데 모두 마쳤으면 가상환경으로 진입해 줍니다. 그러면 맨 앞에 괄호 안에 글자가 바뀌며 현재 가상환경이 어떤 것인지 나옵니다.

(base) C:\> conda activate test2

3. konlpy / Jpype 설치

Jpype 설치

Jpype는 파이썬에서 자바 언어를 이해할 수 있도록 설치하는 프로그램이고, 구글에 konlpy로 공식 홈페이지를 보면 윈도우에서 어떻게 설치해야 하는지 잘 나와 있습니다. 해당 사이트로 바로가는 링크는 아래에 남겨 놓았습니다.

https://konlpy.org/ko/latest/install/#id2

 

설치하기 — KoNLPy 0.5.2 documentation

우분투 Supported: Xenial(16.04.3 LTS), Bionic(18.04.3 LTS), Disco(19.04), Eoan(19.10) Install dependencies # Install Java 1.8 or up $ sudo apt-get install g++ openjdk-8-jdk python3-dev python3-pip curl Install KoNLPy $ python3 -m pip install --upgrade p

konlpy.org

여기서 중요한 것은 Jpype를 설치하는 방법이 2가지로 나뉜다는 것입니다. 첫번째는 위 링크의 방법대로 Jpype 파일을다운받고 pip 패키지로 직접 설치하는 방법이 있고, 두번째는 konlpy를 설치하면 자동으로 설치되는 방법이 있습니다. 두번째 방법을 먼저 시도해보고, 혹시나 에러가 발생할 경우 첫번째 방법으로 Jpype를 설치하는 것으로 추천드립니다.

저는 아래와 같이 knolpy 패지키를 설치하여 Jpype 프로그램을 자동 설치하였습니다.

konlpy 설치

가상환경으로 진입했으면 konlpy 패키지를 설치합니다. 명령 창에 "pip install konlpy"를  입력하면 됩니다.

설치가 다되었으면 명령창에 "python"을 입력/실행하여 파이썬 콘솔로 진입한 후, "import konlpy"를 실행해 보세요.

혹시 AttributeError: module 'tweepy' has no attribute 'StreamListener' 이러한 오류 메세지가 뜬다면 아래의 포스팅을 참고하여 해결하고 돌아오시면 됩니다.

2021.11.02 - [딥러닝 & 머신러닝/자연어 처리 (Natural Language Processing)] - [오류 해결] konlpy 패키지 import 에러 (AttributeError: module 'tweepy' has no attribute 'StreamListener')

4. Mecab 설치

4-1. mecab-ko-msvc 파일 다운로드

기본적으로 Mecab은 윈도우를 지원하지 않지만 윈도우에서 사용 가능하도록 프로그램을 배포되어 나온 것을 활용해야 합니다. 아래 링크로 들어가면 해당 파일을 받을 수 있습니다. 본인 비트에 맞는 파일을 다운로드 받으시면 됩니다.

https://github.com/Pusnow/mecab-ko-msvc/releases/tag/release-0.9.2-msvc-3

 

Release release-0.9.2-msvc-3 · Pusnow/mecab-ko-msvc

Fix: -r 옵션을 지정해 주지 않았을 때 레지스트리에서 이상한 값을 가져와 오류가 나는 문제 해결

github.com

파일을 받으셨으면 "C 드라이브"에 mebac 폴더를 만든 후(→ C:\mecab), 여기에 압축을 풀어주시면 됩니다. 다른 곳에서 압축을 풀고, 안에 있는 모든 파일을 옮기셔도 되고, 처음부터 만든 폴더에 압축을 푸셔도 상관없습니다.

4-2. mecab-ko-dic-msvc 파일 다운로드

그 다음으로는 아래 링크로 들어가셔서 비트에 상관없이 하나의 파일이 있는데 이를 받으시면 됩니다. 

파일을 받으시면 이것 또한 압축을 푸시고, 위에서 만들어썬 "C:\mecab" 폴더로 모든 파일고 폴더를 옮기시면 됩니다.

https://github.com/Pusnow/mecab-ko-dic-msvc/releases/tag/mecab-ko-dic-2.1.1-20180720-msvc

 

Release mecab-ko-dic-2.1.1-20180720-msvc · Pusnow/mecab-ko-dic-msvc

mecab-ko-dic-2.1.1-20180720 반영 오류 수정 NNG/장소의 출현 비용이 비정상적으로 높았던 문제(학습 데이터) 수정 후 재학습 사전 오피스/NNG/장소 추가

github.com

4-3. python wheel 설치하기

 이제 "4-2" 스텝까지의 작업으로 윈도우 OS가 Mecab을 사용할 수 있는 환경은 만들어 주었습니다. 이제 남은 일은 파이썬에서 Mecab을 사용할 수 있는 환경을 만들어 주어야 합니다. 관련 파일은 아래 링크에서 받을 수 있습니다.

저는 64비트 환경이고, 가상환경을 파이썬 3.7 버전으로 설치했으므로 "mecab_python-0.996_ko_0.9.2_msvc-cp37-cp37m-win_amd64.whl" 파일을 다운로드 받았습니다. 

https://github.com/Pusnow/mecab-python-msvc/releases/tag/mecab_python-0.996_ko_0.9.2_msvc-2

 

Release mecab_python-0.996_ko_0.9.2_msvc-2 · Pusnow/mecab-python-msvc

Add Python 3.7 support

github.com

여기서부터 조금 더 집중을 하셔야 합니다. 먼저 다운로드 받은 파일을 현재 사용하고 있는 파이썬 가상환경 폴더에 있는 "site-package" 폴더로 옮겨야 합니다. 그런데 그 폴더가 어디에 있는지 찾는 방법은 아래에 말씀드릴게요.

아나콘다 설치를 "모든 유저(All users)"로 체크하여 진행한 경우

"C:\ProgramData\anaconda3" 위치에 아나콘다가 설치됩니다. "ProgramData" 폴더는 기본적으로 숨긴폴더이므로 아래 스크린샷과 같이 폴더의 보기 탭으로 이동하고 "숨긴항목"을 체크한 후, 확인해 보시길 바랍니다.

아나콘다 설치를 "현재 사용자(Current user)"로 체크하여 진행한 경우

"C:\Users\kss20\anaconda3" 위치에 아나콘다가 설치됩니다. "kss20" 부분은 컴퓨터를 설치할 때, 개인적으로 만든 사용자 이름이므로 저와 다르니까 참고해 주세요.

가상환경의 site-package 폴더 찾기

아나콘다 설치 폴더를 찾으셨으면 그 폴더 안에 "envs" 폴더로 들어가시면 아까 만들었던 가상환경 폴더를 확인할 수 있습니다. 그러면 "가상환경 이름 > lib > site-packages" 순서로 폴더를 들어가면 끝입니다.

해당 폴더에 아까 다운로드 받았던 파일을 넣어주시면 됩니다.

가상환경 명령창에서 다운로드 받은 파일 설치하기

파일 설치를 위해 가상환경으로 설정되어 있는 아나콘다 명령창을 이용해야 합니다. 일단 파일을 넣어논 폴더까지 이동해야 하는데요. 아래와 같이 명령창에 입력하면 이동할 수 있습니다. 

(test) cd C:\Users\kss20\anaconda3\envs\test2\lib\site-packages

▼ 이건 팁인데 아래와 같이 탐색기 창에서 경로가 나와있는 부분을 마우스로 클릭하여 경로를 복사한 후, 명령 창에서 cd 까지는 직접 입력하고 이후는 붙여넣기를 통해 원하는 경로까지 쉽게 이동할 수 있어요.

마지막으로 아래와 같이 아나콘다 명령창에 pip install을 통해 다운로드 받은 파일을 설치하면 끝납니다.

pip install mecab_python-0.996_ko_0.9.2_msvc-cp37-cp37m-win_amd64.whl

5. 잘 설치되었는지 확인

import MeCab

m = MeCab.Tagger()
out = m.parse("아빠가가방에들어가신다.")

print(out)

>>> 아빠    NNG,*,F,아빠,*,*,*,*
>>> 가      JKS,*,F,가,*,*,*,*
>>> 가방    NNG,*,T,가방,*,*,*,*
>>> 에      JKB,*,F,에,*,*,*,*
>>> 들어가  VV,*,F,들어가,*,*,*,*
>>> 신다    EP+EF,*,F,신다,Inflect,EP,EF,시/EP/*+ᆫ다/EF/*
>>> .       SF,*,*,*,*,*,*,*
>>> EOS

위와 같이 코드를 작동시켜보니 잘되네요!

모두들 긴 과정을 따라오시느라 수고 많으셨습니다.

 

진행하시며 잘 안되는 부분이 있으면 언제든지 댓글로 남겨주세요^^.

반응형
Comments