$Id: index.html 182 2009-09-27 15:49:17Z taku-ku $;
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 に至るまでの形態素解析器開発の歴史等はこちらをご覧ください
一般的なフリーソフトウェアと同じ手順でインストールできます.
% tar zxfv mecab-X.X.tar.gz % cd mecab-X.X % ./configure % make % make check % su # make install
辞書のインストール
% tar zxfv mecab-ipadic-2.7.0-XXXX.tar.gz % mecab-ipadic-2.7.0-XXXX % ./configure % make % su # make install
バイナリをインストールする場合は, 自己解凍インストーラ (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 の -t オプションを使って直接文字コードの異なる 辞書を再構築できます. -f オプションはオリジナルのテキスト辞書の文字コードです.
% cd mecab-ipadic-2.7.0-xxxx % /usr/local/libexec/mecab/mecab-dict-index -f euc-jp -t utf-8 # make install
configure option で --enable-utf8-only を指定すると. MeCab が扱う 文字コードを utf8 に固定します. euc-jp や shift-jis をサポートする場合, MeCab 内部に変換用のテーブルを埋めこみます. --enable-utf8-only を 指定することでテーブルの埋めこみを抑制し, 結果として実行バイナリを 小さくすることができます.
MeCab は, 辞書に単語が未登録の場合でも適当にその品詞を推定します.
ホリエモン市 ホリエモン 名詞,固有名詞,地域,一般,*,*,* 市 名詞,接尾,地域,*,*,*,市,シ,シ EOS ホリエモンさん ホリエモン 名詞,固有名詞,人名,一般,*,*,* さん 名詞,接尾,人名,*,*,*,さん,サン,サン
ただし, その精度は正確ではありません. 品詞推定をやめ, 未知語は常に "未知語" 品詞を出力したい場合は -x (--unk-feature) オプションを使います. オプションで指定された文字列が品詞として使われます.
%mecab --unk-feature "未知語" ホリエモンさん ホリエモン 未知語 さん 名詞,接尾,人名,*,*,*,さん,サン,サン
-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 182 2009-09-27 15:49:17Z taku-ku $;