Awesome
mecab-ko-msvc
역사적인 이유로 mecab-ko-msvc이름을 사용하지만, Windows와 함께 macOS와 Linux도 지원합니다.
설치
Windows
- 실행 컴퓨터에 맞는 최신버전 을 다운로드 받습니다. x86, x64 버전을 제공합니다.
-r
옵션과-d
옵션을 사용할 경우는 문제가 없지만 최적의 환경을 위해C:\mecab
폴더에 압축을 해제합니다.- 사전을 설치합니다. mecab-ko-dic.zip을 다운로드하여
C:\mecab\share\mecab-ko-dic
폴더에 압축을 해제합니다. - 환경변수
PATH
에C:\mecab\bin
을 추가하거나,C:\mecab\bin\mecab.exe
를 실행합니다.
macOS / Linux
- 실행 컴퓨터에 맞는 최신버전 을 다운로드 받습니다. macOS (x86_64, arm64), Linux (x86_64, aarch64) 버전을 제공합니다.
-r
옵션과-d
옵션을 사용할 경우는 문제가 없지만 최적의 환경을 위해/opt/mecab
폴더에 압축을 해제합니다.- 명령어:
sudo tar -C /opt -xvzf mecab-ko-<버전>.tar.gz
- 명령어:
- 사전을 설치합니다. mecab-ko-dic.tar.gzp을 다운로드하여
/opt/mecab/share/mecab-ko-dic
폴더에 압축을 해제합니다.- 명령어:
sudo tar -C /opt/mecab/share -xvzf mecab-ko-dic.tar.gz
- 명령어:
- 환경변수
PATH
에/opt/mecab/bin
을 추가하거나,/opt/mecab/bin/mecab
를 실행합니다.
Python
- pip를 이용하여 Python 버전을 설치할 수 있습니다.
- 명령어:
pip3 install mecab-ko-msvc mecab-ko-dic-msvc
- 명령어:
- 다음과 같이 Python 패키지에 내장된 사전을 사용할 수 있습니다.
$ python3
Python 3.11.3 (main, Jun 5 2023, 09:32:32) [GCC 13.1.1 20230429] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import MeCab
>>> tagger = MeCab.Tagger()
>>> tagger.parse("무궁화꽃이피었습니다.")
'무궁화\tNNG,*,F,무궁화,Compound,*,*,무궁/NNG/*+화/NNG/*\n꽃\tNNG,*,T,꽃,*,*,*,*\n이\tJKS,*,F,이,*,*,*,*\n피\tVV,*,F,피,*,*,*,*\n었\tEP,*,T,었,*,*,*,*\n습니다\tEF,*,F,습니다,*,*,*,*\n.\tSF,*,*,*,*,*,*,*\nEOS\n'
사용 정보
- 현재 버전에서는 Windows cmd에서 출력이 제대로 되지 않습니다.
mecab.exe -o output.txt input.txt
명령으로 파일로 출력하거나 mecab-python-msvc 를 이용해서 Python에서 사용해야 합니다.input.txt
파일은 메모장에서 저장할 경우 인코딩을 UTF-8으로 지정해야 합니다. - 메모장을 이용하여 저장하고 사용할 경우 출력의 앞 부분에 필요없는
SY,*,*,*,*,*,*,*
가 나타나게 됩니다. 이는 메모장이 파일을 저장할 경우 BOM을 추가하기 때문입니다. 다른 에디터를 사용하여 BOM 없이 저장을 한다면 문제가 생기지 않습니다.
mecab-ko 소개
mecab-ko는 은전한닢 프로젝트에서 사용하기 위한 MeCab의 fork 프로젝트 입니다.
최소한의 변경으로 한국어의 특성에 맞는 기능을 추가하는 것이 목표입니다.
mecab-ko에서 추가된 기능.
공백 문자(white space)를 포함하는 특정 품사 비용 늘림
띄어쓰기를 하지 않는 일본어와 달리 띄어쓰기를 하는 한국어 특성에 맞게 특정 품사가 띄어쓰기 되어있는 경우 해당 품사의 비용을 늘리는 기능 (사전 설정(dicrc)에 설정 값을 지정)
mecab을 사용하여 분석
:::text
화학 이외의 것
화학 NN,T,화학,*,*,*,*
이 JKS,F,이,*,*,*,*
외 NN,F,외,*,*,*,*
의 JKG,F,의,*,*,*,*
것 NNB,T,것,*,*,*,*
EOS
mecab-ko를 사용하여 분석
:::text
화학 이외의 것
화학 NN,T,화학,*,*,*,*
이외 NN,F,이외,*,*,*,*
의 JKG,F,의,*,*,*,*
것 NNB,T,것,*,*,*,*
EOS
설정 방법
MeCab의 사전 설정(dicrc)에서 다음과 같이 설정합니다.
:::text
# 좌측에 공백을 포함하는 품사의 연접 비용을 늘리기 위한 설정입니다.
# mecab-ko에서만 사용되는 설정입니다. 다음과 같은 형식을 가집니다.
# <posid 1>,<posid 1 penalty cost>,<posid 2>,<posid 2 penalty cost> ...
#
# 예) 120,6000 => posid가 120인 품사(조사)의 좌측에 공백을 포함할 경우
# 연접 비용을 6000만큼 늘림
left-space-penalty-factor = 120,6000,184,6000,100,500
mecab-ko의 설치와 사용법
mecab-ko 설치
mecab-ko 다운로드 페이지에서 최신 버전의 소스를 다운 받고 설치합니다. tar.gz 압축을 해제하고 일반적인 자유 소프트웨어와 같은 순서로 설치할 수 있습니다.
:::text
$ tar zxfv mecab-ko-XX.tar.gz
$ cd mecab-ko-XX
$ ./configure
$ make
$ make check
$ su
# make install
설치 방법은 MeCab와 동일하므로, 자세한 내용은 MeCab 홈페이지를 참조하시기 바랍니다.
참고
- 오래된 버전의 리눅스 환경에서 컴파일이 안되는 경우, 다음의 글을 참조하시기 바랍니다. Cent OS 5.9에서 MeCab 및 mecab-ko-dic 설치하기
한국어 사전(mecab-ko-dic)의 설치와 사용
mecab-ko-dic의 설명을 참조하시기 바랍니다.
라이센스
mecab-ko의 라이센스는 MeCab의 라이센스를 그대로 따릅니다.
MeCab 는 무료 소프트웨어입니다. GPL (the GNU General Public License), LGPL (Lesser GNU General Public License) 또는 BSD 라이선스에 따라 소프트웨어를 사용, 재배포할 수 있습니다. 자세한 내용은 COPYING, GPL, LGPL, BSD 각 파일을 참조하십시오.