MeCab: Yet Another Part-of-Speech and Morphological Analyzer

$Id: index.html,v 1.25 2006/04/30 14:30:25 taku-ku Exp $;

MeCab (和布蕪)とは

MeCab は 京都大学情報学研究科−日本電信電話株式会社コミュニケーション科学基礎研究所 共同研究ユニットプロジェクトの一環として開発されたオープンソース形態 素解析エンジンです. 言語, 辞書,コーパスに依存しない汎用的な設計を基本方 針としています. パラメータの推定に Conditional Random Fields (CRF) を用 いており, ChaSenが採用している 隠れマルコフモデルに比べ性能が向上しています。また、平均的に ChaSen, Juman, KAKASIより高速に動作します. ちなみに和布蕪(めかぶ)は, 作者の好物です.

目次

特徴

比較

MeCab ChaSen JUMAN KAKASI
解析モデル bi-gram マルコフモデル 可変長マルコフモデル bi-gram マルコフモデル 最長一致
コスト推定 コーパスから学習 コーパスから学習 人手 コストという概念無し
学習モデル CRF (識別モデル) HMM (生成モデル)
辞書引きアルゴリズム Double Array Double Array パトリシア木 Hash?
解探索アルゴリズム Viterbi Viterbi Viterbi 決定的?
連接表の実装 2次元 Table オートマトン 2次元 Table? 連接表無し?
品詞の階層 無制限多階層品詞 無制限多階層品詞 2段階固定 品詞という概念無し?
未知語処理 字種 (動作定義を変更可能) 字種 (変更不可能) 字種 (変更不可能)
制約つき解析 可能 2.4.0で可能 不可能 不可能
N-best解 可能 不可能 不可能 不可能

MeCab に至るまでの形態素解析器開発の歴史等はこちらをご覧ください

メーリングリスト

新着情報

ダウンロード

インストール

UNIX

Windows

バイナリをインストールする場合は, 自己解凍インストーラ (mecab-X.X.exe) を実行してください. 辞書も同時にインストールされます.

使い方

とりあえず解析してみる

mecab を起動して, 生文を標準入力から入力してみてください.MeCab では, 一行一文を前提として解析を行ないます.

% mecab
すもももももももものうち
すもも  名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も      助詞,係助詞,*,*,*,*,も,モ,モ
もも    名詞,一般,*,*,*,*,もも,モモ,モモ
も      助詞,係助詞,*,*,*,*,も,モ,モ
もも    名詞,一般,*,*,*,*,もも,モモ,モモ
の      助詞,連体化,*,*,*,*,の,ノ,ノ
うち    名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS

出力フォーマットは, ChaSen のそれと大きく異なります. 左から,

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

となっています.

引数にファイルを与えると, そのファイルが解析対象となります. また, -o オプションにて, 別のファイルに結果を出力することも可能です.

% mecab INPUT -o OUTPUT

わかち書きをする

以下のように -O オプションを使います.

% mecab -O wakati
太郎はこの本を二郎を見た女性に渡した。
太郎 は この 本 を 二郎 を 見 た 女性 に 渡し た 。

出力フォーマットの変更

以下のように -O オプションを使います.

% mecab -Oyomi (ヨミ付与)
% mecab -Ochasen (ChaSen互換)
% mecab -Odump (全情報を出力)

これらの出力フォーマットは, /usr/local/lib/mecab/ipadic/dicrc に定義されています. さらに, ユーザがこれらのフォーマットを自由に定義することが可能です. こちらをご覧ください.

高度な使い方

文字コード変更

特に指定しない限り, euc が使用されます. もし, shift-jis や utf8 を 使いたい場合は, 辞書の configure オプションにて charset を変更し, 辞書を再構築してください. これで, shift-jis や, utf8 の辞書が作成されます.

% tar zxfv mecab-ipadic-2.7.0-xxxx
% cd mecab-ipadic-2.7.0-xxxx
% ./configure --with-charset=sjis
% make

% tar zxfv mecab-ipadic-2.7.0-xxxx
% ./configure --with-charset=utf8
% make

また, mecab-dict-index を使って直接文字コードの異なる辞書を再構築できます.

% cd mecab-ipadic-2.7.0-xxxx
% /usr/local/libexec/mecab/mecab-dict-index -c utf-8
# make install

mecab-dict-index はテキスト辞書の文字コードを自動判定し, -c オプショ ンで指定されたコードに変換します. ただし, 文字コード判定は完璧ではありませ ん. 自動判定に失敗するときは -f オプションを使って強制的に指定することができます.

% /usr/local/libexec/mecab/mecab-dict-index -f euc-jp -c utf-8

N-Best 解の出力

-N #NUM オプションを使うことで, 確からしいものから#NUM 個解析結果を出力 します. 理論的にはすべての可能な解析解を出力することが 可能ですが, 出力バッファのかねあいから, -N の最大値を 512 に制限しています.

% mecab -N2
今日もしないとね。
今日    名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
も      助詞,係助詞,*,*,*,*,も,モ,モ
し      動詞,自立,*,*,サ変・スル,未然形,する,シ,シ
ない    助動詞,*,*,*,特殊・ナイ,基本形,ない,ナイ,ナイ
と      助詞,接続助詞,*,*,*,*,と,ト,ト
ね      助詞,終助詞,*,*,*,*,ね,ネ,ネ
。      記号,句点,*,*,*,*,。,。,。
EOS
今日    名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
もし    副詞,一般,*,*,*,*,もし,モシ,モシ
ない    形容詞,自立,*,*,形容詞・アウオ段,基本形,ない,ナイ,ナイ
と      助詞,接続助詞,*,*,*,*,と,ト,ト
ね      助詞,終助詞,*,*,*,*,ね,ネ,ネ
。      記号,句点,*,*,*,*,。,。,。
EOS

謝辞

CRF のパラメータ推定に Jorge Nocedal 氏が考案した L-BFGS と同氏が公開している FORTRAN 実装を使わせていただいております。ありがとうございます.

http://www.ece.northwestern.edu/~nocedal/lbfgs.html


$Id: index.html,v 1.25 2006/04/30 14:30:25 taku-ku Exp $;