본문 바로가기

Python/Library

[MeCab] 파이썬 MeCab 출력 형식 설정

일본어 형태소 분석기 MeCab Python 입니다.

 

 

 

해당 형태소 분석기로 결과물을 출력해 보면 일반적으로 다음과 같은 형식으로 출력됩니다.

 

 

순서대로

 

기준형태소와 발음, 원형의 발음, 원형, 품사.. 순으로 해당 결과물이 출력되는 것을 볼 수 있습니다.

 

MeCab은 이 외에도 꽤 많은 형식으로 결과물을 출력해 주는 형태를 가지고 있습니다.

 

 

먼저 예를 들어보면 

 

 

제일 첫 번째 결과물과 바로 직전의 결과물이 다른 것을 보실 수 있습니다

 

차이점이 보이시나요?

 

바로 MeCab을 초기화하는 시점에서 인자로 '-O yomi' 를 주었습니다.

 

 

터미널이나 셸을 조금 익히신 분들은 아시겠지만 Hyphen('-') 뒤에 바로 붙는 알파벳 하나 이상은 옵션을 의미합니다.

 

파이썬은 컴퓨터 자체에 설치되어 있는 MeCab을 그대로 사용한다고 말씀드렸습니다.

 

즉, 터미널에서 mecab 명령어를 사용함과 동시에 -O yomi 를 옵션으로 제시하는 것과 같은 역할을 한다는 것이지요.

 

 

 

yomi는 読み로 말 그대로 가타가나로 해당 문장의 읽는 법을 그대로 나타내는 것을 의미합니다.

 

그 외에는 어떤 방식이 있고, 어떤 결과를 출력할 수 있으며, 어떻게 해당 옵션을 만들 수 있는지 아래에서 살펴보도록 하겠습니다.

 

 


먼저 아래에서 설명할 내용은 Mac OS 기준의 설명입니다.

Windows 환경은 따로 테스트해본 경험이 없어서 양해부탁드립니다.

(실제로 Windows 환경에서 MeCab 설치가 워낙 어려운지라...)

 

 

 

 

Finder를 열고 검색에 'dicrc' 를 검색해 줍니다!

 

dicrc 파일이 적어도 2개 이상 생성되어 있으실 겁니다.

 

하나씩 클릭해서 가상환경, 사용하는 사전의 이름을 확실하게 찾아봐주세요.

 

 

 

저는 japan 이라는 가상환경에 unidic_lite 사전을 쓰고 있으니 첫 번째 파일인 것을 확인했습니다!

 

클릭을 해보면 다음과 같은 형태소 분석의 결과를 출력하게끔 만들어주는 태그들이 설정되어 있습니다.

 

 

 

 

 

본인에게 맞는 태그를 설정하여 출력하는 방법을 알려드리겠습니다.

 

아래로 내려보시면 다음과 같은 코드가 있을 겁니다.

 

 

; simple
node-format-simple = %m\t%F-[0,1,2,3]\n
eos-format-simple  = EOS\n

; csv
node-format-csv = %m,%f[7],%f[8],%f[6],%F-[0,1,2,3],%f[4],%f[5]\n
unk-format-csv  = %m,%m,%m,%f[6],%F-[0,1,2,3],,\n
eos-format-csv  = EOS,,,,,,\n

; ChaSen
node-format-chasen = %m\t%f[7]\t%f[6]\t%F-[0,1,2,3]\t%f[4]\t%f[5]\n
unk-format-chasen  = %m\t%m\t%m\t%F-[0,1,2,3]\t\t\n
eos-format-chasen  = EOS\n

; yomi
node-format-yomi = %pS%f[6]
unk-format-yomi = %M
eos-format-yomi  = \n

 

먼저, 세미콜론 뒤에 옵션으로 설정하고 싶은 이름을 작명합니다.

 

아래에는 node-format, unk-format, eos-format 을 제시합니다.

이때, 각 format 뒤에는 Hyphen + 위에서 설정한 이름으로 만듭니다.

 

<예시>

; Keyword

node-format-keyword = ~~

 

Equal 뒤에는 태그와 공백(\t, \n), 출력 포맷을 지정할 수 있습니다.

출력 포맷은 MeCab 공식 사이트에서 참고하실 수 있습니다.

 

 

 

 

MeCab: Yet Another Japanese Dependency Structure Analyzer

出力フォーマット 概要 MeCab は, ChaSen と同様, 出力のフォーマットを比較的自由に再定義することができます. また, 設定ファイルにフォーマットを複数記述しておき, 実行時にそれらを 切り

taku910.github.io