본 포스팅 내용은 일본어 형태소 분석기 'Mecab' 의 설치 및
데이터 처리의 용이성을 위해 파이썬 환경에서 구현하는 과정을 담고 있습니다.
기본적인 MeCab 을 컴퓨터에 설치하기
< 환경 >
모델 : Macbook M1 Pro
운영체제 : macOS Ventura 13.4.1
<작업 환경>
Homebrew 4.1.4
Python3 3.10.10
1. Homebrew를 통한 MeCab Formulae 설치
brew install mecab
brew install mecab-ipadic
homebrew 실행 후 위의 명령어를 입력해줍니다.
첫 번째 줄은 일본어 형태소 분석기 MeCab 을 설치하는 단계,
두 번째 줄은 MeCab에서 사용되는 형태소 사전을 설치하는 단계입니다.
2. 실행
이후의 설치가 완료되었다면 터미널을 열고
mecab
을 입력하여 확인합니다.
경고 문구가 별도로 뜨지 않는다면 '편집 모드' 로 진입합니다.
형태소 분석을 원하는 문장을 입력하여 확인해 주세요.
저는 こんにちは、僕の名前はリュです。
라고 예문을 입력하여 다음과 같은 결과를 받았습니다.
형태소 분석이 원할하게 잘 되는 것을 볼 수 있습니다.
결과물의 출력 형식은
(형태소) | (품사) (품사대분류) (품사중분류) (품사소분류) (품사세분류) (활용모형) (활용형) (형태소원형) (형태소원형발음) (실제 발음)
순입니다.
<문제점>
아무래도 터미널 편집 모드로 들어가면 입력형태를 언어의 컴퓨팅 특성 상 반각으로 받게 되는데,
일본어의 입력형태는 전각이다보니 수정을 하려고 지우다보면 앞 글자가 몇 개 지워지지 않아 입력에 혼동을 초래할 수 있습니다.
또한 ipadic 사전의 경우, 지속적인 업데이트가 되지 않아 신조어에 대해서 명확하게 형태소 구분을 하지 못하는 단점이 있습니다.
위 예시는 일본의 연호인 令和를 따로 구분하는 모습입니다.
마지막으로 형태소 분석의 결과물을 셸 형태에서 원하는 결과만 가져오는 작업을 하기 쉽지 않습니다.
이러한 단점을 극복하기 위해 파이썬 라이브러리 형태로 MeCab 을 지원하고 있습니다.
다만, 라이브러리 형태라고 하여 파이썬 환경에서만 구현되도록 호출하는 것이 아니라
컴퓨터에 설치되어 있는 MeCab을 호출하여 사용하는 방식입니다.
MeCab을 파이썬에서 구현하기
1. 필요하시다면 아나콘다에서 가상환경을 설치해주시고 활성화 시켜주시면 됩니다.
2. 필요 라이브러리 설치
pip install mecab-python3
pip install unidic-lite
첫 번째 줄은 파이썬에서 MeCab이 구현 가능한 라이브러리를 pip 을 통해 설치하는 단계
두 번째 줄은 파이썬 환경에서 MeCab과 연결하여 사용할 단어사전입니다.
기본적으로 ipadic을 사용하고 있으나 필요에 따라 unidic, unidic-lite를 사용하는 경우도 있습니다.
원하시는 단어 사전에 대해서는 가능한 pip list를 확인하여 주시면 됩니다.
unidic-lite의 경우, 기존 unidic에 비해 용량과 단어가 작다는 장점이 있지만 분석에 필요한 일본어 단어의 대부분은 포함되어 있습니다.
unidic에 대한 자세한 정보는 아래 링크에서 확인 가능합니다.
「UniDic」国語研短単位自動解析用辞書|UniDicとは
UniDicの第一の目的は、国語研で構築しているコーパスアノテーションを支援することです。 国語研所内にあるUniDicデータベースは、同じく所内のコーパスのデータベースと参照関係にあり、
clrd.ninjal.ac.jp
다음과 같이 실행이 완료되었다면
VS Code 나 Pycharm 과 같은 텍스트 편집기를 열어 준 뒤,
파이썬 혹은 주피터 노트북 파일을 만들어준 다음
다음과 같은 형식을 실행시켜 줍니다.
import MeCab
mecab = MeCab.Tagger()
parse = mecab.parse('とても素敵な夜ですね')
print(parse)
import MeCab으로 라이브러리를 호출한 다음,
MeCab.Tagger()로 MeCab 형태소 분석기를 초기화(initialize) 합니다.
초기화 한 입력값을 변수에 할당한 뒤, parse 함수를 사용하여 파라미터로 분석하고자 하는 문장을 입력합니다.
위 함수를 통해 반환되는 값은 다음과 같습니다.
형태소 별로 줄바꿈('\n') 이 되어있고, 형태소 별로 쪼개진 형태소, 발음, 품사와 같은 값들은 들여쓰기('\t') 로 구분화 되어있습니다.
파이썬 출력 형식 및 유저 사전 입력 방법은 다음 포스팅에서 설명드리도록 하겠습니다.
'Python > Library' 카테고리의 다른 글
[MeCab] 일본어 형태소 분석기 유저사전 설정(Unidic) (1) | 2023.08.27 |
---|---|
[MeCab] 파이썬 MeCab 출력 형식 설정 (0) | 2023.08.24 |
[MeCab] 일본어 형태소 분석기 MeCab 설치(MacOS) (0) | 2023.05.12 |
[파이썬 라이브러리] Logging을 통해 기록하기 (0) | 2023.02.08 |