動かざることバグの如し

近づきたいよ 君の理想に

RubyでMecabを使ってみる

Mecabのインストール

まずはMecab本体をインストール apt-getでもインスコできるけどバージョンが古いのでビルドしたほうがよさげ

sudo apt-get install build-essential libc6-dev g++

MeCab本体のダウンロード

wget http://mecab.googlecode.com/files/mecab-0.996.tar.gz

MeCab 用の辞書 (IPA 辞書)

wget http://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz

MeCab本体のビルド

tar zxfv mecab-0.996.tar.gz
cd mecab-0.996
./configure 
make
make check
sudo make install

辞書のビルド

tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz
mecab-ipadic-2.7.0-20070801
./configure --with-charset=utf8
make
sudo make install
libmecab.so.2: cannot open shared object file

のエラーが出る場合は以下のコマンドを実行してリトライ

sudo ldconfig

nattoのインストール

MecabRuby間を結ぶのに「natto」と呼ばれるものを入れる

こっちのインストールは難しくない Gemfileに一行足すだけ

gem 'natto'

使う場合は以下のように

require 'natto'

text = "悪質な業者によるトラブルが全国で急増している。"

mecab = Natto::MeCab.new
mecab.parse(text) do |n|
  puts "#{n.surface}\t#{n.feature}"
end

結果

悪質   名詞,形容動詞語幹,*,*,*,*,悪質,アクシツ,アクシツ
な    助動詞,*,*,*,特殊・ダ,体言接続,だ,ナ,ナ
業者   名詞,一般,*,*,*,*,業者,ギョウシャ,ギョーシャ
による  助詞,格助詞,連語,*,*,*,による,ニヨル,ニヨル
トラブル 名詞,一般,*,*,*,*,トラブル,トラブル,トラブル
が    助詞,格助詞,一般,*,*,*,が,ガ,ガ
全国   名詞,一般,*,*,*,*,全国,ゼンコク,ゼンコク
で    助詞,格助詞,一般,*,*,*,で,デ,デ
急増   名詞,サ変接続,*,*,*,*,急増,キュウゾウ,キューゾー
し    動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
て    助詞,接続助詞,*,*,*,*,て,テ,テ
いる   動詞,非自立,*,*,一段,基本形,いる,イル,イル
。    記号,句点,*,*,*,*,。,。,。
     BOS/EOS,*,*,*,*,*,*,*,*