RubyでMeCabを使う
まずはMecab自体をインストール
むかしにやった気がするけど、メモがてら。
MeCabはhomebrewで入れた。portsでもなんでもイイと思います。
% brew install mecab
インストールされたら辞書ファイルを作る
からipaの辞書を取ってくる。
DLしたtar.gzを展開して、ディレクトリに移動する。あとは普通にmakeするだけなんだけれど、configure時のcharsetをUTF8にしておくことにする。イマドキ、UTF8じゃないほうが例外だと思うので。
./configure --with-charset=utf8 make make install
MeCab単体での動作確認
一応、単体で動くか確認してみる。
% echo "お前は今まで食ったパンの枚数を覚えているのか?" | mecab お前 名詞,代名詞,一般,*,*,*,お前,オマエ,オマエ は 助詞,係助詞,*,*,*,*,は,ハ,ワ 今 名詞,副詞可能,*,*,*,*,今,イマ,イマ まで 助詞,副助詞,*,*,*,*,まで,マデ,マデ 食っ 動詞,自立,*,*,五段・ワ行促音便,連用タ接続,食う,クッ,クッ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ パン 名詞,一般,*,*,*,*,パン,パン,パン の 助詞,連体化,*,*,*,*,の,ノ,ノ 枚数 名詞,一般,*,*,*,*,枚数,マイスウ,マイスー を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 覚え 動詞,自立,*,*,一段,連用形,覚える,オボエ,オボエ て 助詞,接続助詞,*,*,*,*,て,テ,テ いる 動詞,非自立,*,*,一段,基本形,いる,イル,イル の 名詞,非自立,一般,*,*,*,の,ノ,ノ か 助詞,副助詞/並立助詞/終助詞,*,*,*,*,か,カ,カ ? 記号,一般,*,*,*,*,?,?,? EOS
大丈夫そうですね。
natto っていうRubyバインディングを使う
nattoがいいのかよくわからんけど、とりあえず目に入ったので使ってみます。
gem install natto
これだけ。irbで確認してみよう。
ruby-1.9.2-head :018 > pp Natto::MeCab.new.parse("お前は今まで食ったパンの枚数を覚えているのか?").split("\n").delete_if{|n| n == "EOS"} ["お前\t名詞,代名詞,一般,*,*,*,お前,オマエ,オマエ", "は\t助詞,係助詞,*,*,*,*,は,ハ,ワ", "今\t名詞,副詞可能,*,*,*,*,今,イマ,イマ", "まで\t助詞,副助詞,*,*,*,*,まで,マデ,マデ", "食っ\t動詞,自立,*,*,五段・ワ行促音便,連用タ接続,食う,クッ,クッ", "た\t助動詞,*,*,*,特殊・タ,基本形,た,タ,タ", "パン\t名詞,一般,*,*,*,*,パン,パン,パン", "の\t助詞,連体化,*,*,*,*,の,ノ,ノ", "枚数\t名詞,一般,*,*,*,*,枚数,マイスウ,マイスー", "を\t助詞,格助詞,一般,*,*,*,を,ヲ,ヲ", "覚え\t動詞,自立,*,*,一段,連用形,覚える,オボエ,オボエ", "て\t助詞,接続助詞,*,*,*,*,て,テ,テ", "いる\t動詞,非自立,*,*,一段,基本形,いる,イル,イル", "の\t名詞,非自立,一般,*,*,*,の,ノ,ノ", "か\t助詞,副助詞/並立助詞/終助詞,*,*,*,*,か,カ,カ", "?\t記号,一般,*,*,*,*,?,?,?"]