MeCab(めかぶ)の概要

MeCabは、京都大学情報学研究科、および日本電信電話株式会社コミュニケーション科学基礎研究所の共同研究ユニットプロジェクトを通じて開発された、形態素解析器のひとつ。パラメータの推定にCRF(Conditional Random Fields)を採用し、品詞体系, 単語長, 辞書の変更に対し柔軟にかつ低コストで対応できるようになるなど、HMMよりも性能が向上した。平均的に ChaSen, Juman, KAKASIより高速に動作する。

 

■プログラム・ダウンロード

C++で書かれており、2019年4月時点の最新バージョンは、MeCab 0.996だ。なかなか1.0にならないw(0.999の次は、きっと0.9991が出るに違いない)

UNIX向けにはソース(mecab-0.996.tar.gz)が、Windows向けにはバイナリ(mecab-0.996.exe)が、ダウンロード可能。

 

■ライセンス

GPL, LGPL, BSDいづれかに沿って配布可能。

 

mecabコマンドの出力フォーマット

出力フォーマットは、茶筌とは異なり、以下となる。

層形\t品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用形,活用型,原形,読み,発音

 

mecabコマンドの引数に、「-O」オプションを付加することで、出力フォーマットを指定できる。

 

mecab 引数なし

庭 名詞,一般,*,*,*,*,庭,ニワ,ニワ
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
二 名詞,数,*,*,*,*,二,ニ,ニ
羽 名詞,接尾,助数詞,*,*,*,羽,ワ,ワ
にわとり 名詞,一般,*,*,*,*,にわとり,ニワトリ,ニワトリ
が 助詞,格助詞,一般,*,*,*,が,ガ,ガ
いる 動詞,自立,*,*,一段,基本形,いる,イル,イル
。 記号,句点,*,*,*,*,。,。,。
EOS

 

mecab -Oyomi ・・・ 読み方を出力

ニワニハニワニワトリガイル。

 

mecab -Owakati ・・・ わかち書きを出力

庭 に は 二 羽 にわとり が いる 。

 

mecab -Ochasen ・・・ 茶筌形式で出力

庭 ニワ 庭 名詞-一般
に ニ に 助詞-格助詞-一般
は ハ は 助詞-係助詞
二 ニ 二 名詞-数
羽 ワ 羽 名詞-接尾-助数詞
にわとり ニワトリ にわとり 名詞-一般
が ガ が 助詞-格助詞-一般
いる イル いる 動詞-自立 一段 基本形
。 。 。 記号-句点
EOS

 

mecab -Odump ・・・ 全情報を出力

0 BOS BOS/EOS,*,*,*,*,*,*,*,* 0 0 0 0 0 0 2 1 0.000000 0.000000 0.000000 0
1 庭 名詞,一般,*,*,*,*,庭,ニワ,ニワ 0 3 1285 1285 38 2 0 1 0.000000 0.000000 0.000000 5935
2 に 助詞,格助詞,一般,*,*,*,に,ニ,ニ 3 6 151 151 13 6 0 1 0.000000 0.000000 0.000000 5782
7 は 助詞,係助詞,*,*,*,*,は,ハ,ワ 6 9 261 261 16 6 0 1 0.000000 0.000000 0.000000 6004
10 二 名詞,数,*,*,*,*,二,ニ,ニ 9 12 1295 1295 48 8 0 1 0.000000 0.000000 0.000000 9284
16 羽 名詞,接尾,助数詞,*,*,*,羽,ワ,ワ 12 15 1300 1300 53 2 0 1 0.000000 0.000000 0.000000 8686
24 にわとり 名詞,一般,*,*,*,*,にわとり,ニワトリ,ニワトリ 15 27 1285 1285 38 6 0 1 0.000000 0.000000 0.000000 16346
43 が 助詞,格助詞,一般,*,*,*,が,ガ,ガ 27 30 148 148 13 6 0 1 0.000000 0.000000 0.000000 15491
56 いる 動詞,自立,*,*,一段,基本形,いる,イル,イル 30 36 619 619 31 6 0 1 0.000000 0.000000 0.000000 17920
60 。 記号,句点,*,*,*,*,。,。,。 36 39 8 8 7 3 0 1 0.000000 0.000000 0.000000 14206
62 EOS BOS/EOS,*,*,*,*,*,*,*,* 39 39 0 0 0 0 3 1 0.000000 0.000000 0.000000 12670

 

■各種言語からの利用

Perl

use MeCab;
$m = new MeCab::Tagger ("-Ochasen");
print $m->parse ("今日もしないとね");

 

Ruby

require 'MeCab'
m = MeCab::Tagger.new ("-Ochasen")
print m.parse ("今日もしないとね")

 

python

import sys
import MeCab
m = MeCab.Tagger ("-Ochasen")
print m.parse ("今日もしないとね")

 

Java

import org.chasen.mecab.Tagger;
import org.chasen.mecab.Node
public static void main(String[] argv) {
   Tagger tagger = new Tagger ("-Ochasen");
   System.out.println (tagger.parse ("太郎は二郎にこの本を渡した."));
}

 

 

---------------------------------------
ITとことんのトップページ

 ┗■形態素解析とかのトップページ

   ┗■本ページ