$Id: index.html,v 1.34 2005/03/20 13:18:57 taku-ku Exp $;
subscribeのみを書いたメールを送信してください.
過去記事は, こちらから入手 できます. ML に質問する前に同様の内容が投稿されていないか事前にチェック していただけると幸いです.
% tar zxfv mecab-X.X.tar.gz % cd mecab-X.X % cd dic % tar zxfv ipadic-2.X.X.tar.gz (2.4.4, 2.5.0 2.5.1 のいずれか1つ) % cd .. % ./configure % make % su # make install
バイナリをインストールする場合は, 自己解凍インストーラ (mecab-X.X.exe) を実行してください. 辞書も同時にインストールされます.
ソースからコンパイルする場合.
ソースパッケージの vcc というディレクトリに, ソリューションファイルがあります. それを用いて ビルドしてください.
コマンドラインからも以下のような方法で作成できます. ただし cygwin が必要です.> cd mecab-X.X.X > ./configure > cd src > nmake -f Makefile.msvc
> cd mecab-X.X.X > ./configure > cd src > make -f Makefile.bcc32
> cd mecab-X.X.X > ./configure --enable-shared=no > make
> cd mecab-X.X.X > env CXX="g++ -mno-cygwin -I/usr/include/g++-3" ./configure --enable-shared=no > make
公開している Windows binary package は, Visual Studio .NET C++ 上でビルドしています.
mecab を起動して,
生文を標準入力から入力してみてください.
MeCab では, 一行一文を前提として解析を行ないます.
% mecab 太郎はこの本を二郎を見た女性に渡した。 太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー は 助詞,係助詞,*,*,*,*,は,ハ,ワ この 連体詞,*,*,*,*,*,この,コノ,コノ 本 名詞,一般,*,*,*,*,本,{ホン/モト},{ホン/モト} を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 二郎 名詞,固有名詞,一般,*,*,*,二郎,ニロウ,ニロー を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 見 動詞,自立,*,*,一段,連用形,見る,ミ,ミ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 女性 名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ に 助詞,格助詞,一般,*,*,*,に,ニ,ニ 渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 。 記号,句点,*,*,*,*,。,。,。 EOS出力フォーマットは, ChaSen のそれと大きく異なります. 左から,
表層形\t品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用形,活用型,原形,読み,発音となっています.
引数にファイルを与えると, そのファイルが解析対象となります. また, -o オプションにて, 別のファイルに結果を出力することも可能です.
% mecab INPUT -o OUTPUT
以下のように -O オプションを使います.
% mecab -O wakati 太郎はこの本を二郎を見た女性に渡した。 太郎 は この 本 を 二郎 を 見 た 女性 に 渡し た 。
以下のように -O オプションを使います.
% mecab -Oxml (XML) % mecab -Ochasen (ChaSen互換) % mecab -Ocsv (csv) % mecab -Oyomi (ヨミ付与)これらの出力フォーマットは, /usr/local/lib/mecab/ipadic/dicrc に定義されています. さらに, ユーザがこれらのフォーマットを自由に定義することが可能です. こちらをご覧ください.
-N #NUM オプションを使うことで, 確からしいものから#NUM 個解析結果を出力 します. 理論的にはすべての可能な解析解を出力することが 可能ですが, 出力バッファのかねあいから, -N の最大値を 512 に制限しています.
% mecab -N2 今日もしないとね。 今日 名詞,副詞可能,*,*,*,*,今日,キョウ,キョー も 助詞,係助詞,*,*,*,*,も,モ,モ し 動詞,自立,*,*,サ変・スル,未然形,する,シ,シ ない 助動詞,*,*,*,特殊・ナイ,基本形,ない,ナイ,ナイ と 助詞,接続助詞,*,*,*,*,と,ト,ト ね 助詞,終助詞,*,*,*,*,ね,ネ,ネ 。 記号,句点,*,*,*,*,。,。,。 EOS 今日 名詞,副詞可能,*,*,*,*,今日,キョウ,キョー もし 副詞,一般,*,*,*,*,もし,モシ,モシ ない 形容詞,自立,*,*,形容詞・アウオ段,基本形,ない,ナイ,ナイ と 助詞,接続助詞,*,*,*,*,と,ト,ト ね 助詞,終助詞,*,*,*,*,ね,ネ,ネ 。 記号,句点,*,*,*,*,。,。,。 EOS
N Best 解は, いったん 前向きに viterbi 探索を行なった後, 後ろ向きに, A* 探索を行なうことで実現できます. ただし, A* といっても, heruristic 関数の値は, 前向き探索 時に厳密解を取得できているので, 厳密な N-Best 解を出力する ことができます.
特に指定しない限り, euc が使用されます. もし, shift-jis や utf8 を 使いたい場合は, configure オプションにて charset を変更し, 辞書を再構築してください. これで, shift-jis や, utf8 の辞書が作成されます.
辞書の構築の際の文字コードの変換に iconv が使用されます. iconv を前もってインストールしておく必要があります. 最近の Linux や, cygwin はインストールされているようです.
% ./configure --with-charset=sjis % make % ./configure --with-charset=utf8 % make
コンパイル後でも, 以下の手順で文字コードの異なる辞書を再構築できます. -d オプションを使うことで, それぞれのコードの辞書を使い分けることが可能 です.
% cd mecab-X.X.X/dic % vi dicrc # charset を utf8 に変更 charset = utf8 % make clean % make charset=utf8 % make dicdir=/somewhere/dic/ipadic-utf8 install % mecab -d /somewhere/dic/ipadic-utf8 FILES ..
テストコーパス: RWCP コーパス(毎日新聞
94年), 約 35000文 3MByte
テスト環境: RedHat Linux 7.2, DELL , XEON 2.4Ghz dual, Memory
4Gbyte
分かち書き出力の結果 (juman のみ標準のフォーマット)
MeCab | 2.21s user 0.04s system 99% cpu 2.269 total |
ChaSen | 7.22s user 0.06s system 98% cpu 7.358 |
JUMAN | 25.93s user 0.07s system 99% cpu 26.055 total |
kakasi | 7.03s user 0.05s system 99% cpu 7.124 total |
デフォルトの出力フォーマット(kakasi は分かち書き)
MeCab | 2.72s user 0.04s system 98% cpu 2.793 total |
ChaSen | 8.22s user 0.06s system 100% cpu 8.278 total |
JUMAN | 25.93s user 0.07s system 99% cpu 26.055 total |
kakasi | 7.03s user 0.05s system 99% cpu 7.124 total |
ChaSen 互換をうたうには, まだまだ遠い..
ChaSen | MeCab | 進行状況,予定など | |
連結品詞機能 | ○ | × | CaboChaが使うのでサポートしたい |
複合語機能 | ○ | × | |
出力フォーマットの柔軟な変更 | ○ | ○ | |
すべての解析解の表示 | ○ | ○ | |
n-best 解 | × | ○ | |
多言語形態素解析 | △ | △ | 英語, 中国語の tokenizer
を tokenizer class から継承して書くだけ |
わかち書き位置の外部指定 | ○ | × | 研究目的として重要な機能なので実装予定 |
再入可能ライブラリ | × | ○ | |
マルチスレッド対応 | × | ○ | |
文字コード非依存 | △ (動的に変更) | ○ | SJIS/EUC/UTF-8 の辞書で動作確認 |
連接コストの推定精度の向上 | △ (単純な最尤推定) | △ (左に同じ) | CRF
等を使って推定 |
自然言語処理,
特に形態素解析を知ってる人向けの技術資料
誤りがあればお知らせください.
MeCab | ChaSen | JUMAN | KAKASI | |
解析モデル | 可変長マルコフモデル | 可変長マルコフモデル | bi-gram マルコフモデル | 最長一致 |
コスト推定手法 | コーパスから学習 | コーパスから学習 | 人手 | コストという概念無し |
辞書引きアルゴリズム | Double Array | パトリシア木 | パトリシア木 | Hash? |
解探索アルゴリズム | Viterbi | Viterbi | Viterbi | 決定的? |
連接表の実装 | 3次元 Table | オートマトン | 2次元 Table? | 連接表無し? |
品詞の階層 | 無制限多階層品詞 | 無制限多階層品詞 | 2段階固定 | 品詞という概念無し? |
$Id: index.html,v 1.34 2005/03/20 13:18:57 taku-ku Exp $;
taku-ku@is.naist.jp