LinuxにMecabとmecab-rubyをインストールする

概要
我が家のLinux機(Fedora10)にMecabを入れた際のログです。

入れたものは

・MeCab0.98
・mecab-ipadic-2.7.0-20070801
・mecab-naist-jdic-0.6.1-20090630
・unidic-mecab-1.3.12
・mecab-ruby-0.98


以上5つです。

ここでは入れた際に打ったコマンドと、簡単なサンプルを載せておきたいと思います。
MeCabのインストール
ダウンロードはこちら。
http://sourceforge.net/projects/mecab/files/

Linuxであれば、mecab-x.xx.tar.gz(x.xxはバージョン番号)を拾ってきてください。
持ってきたら解凍して

$ ./configure
$ make
$ sudo make install

これだけでOKです。

【参考サイト】Mecab公式サイト
http://mecab.sourceforge.net/
IPA辞書のインストール
次に辞書をインストールします。

日本語辞書の有名どころとしては、IPA、NAIST、UniDicなどがあります。

とりあえずIPAを入れてみます。

どちらかというと、UniDicかNAISTを使う方がオススメです。


ダウンロードはこちら(下の方にいる、mecab-ipadicを落とします)。
http://sourceforge.net/projects/mecab/files/


$ ./configure --with-charset=utf8
$ make
$ make install

文字コードはUTF-8に設定しています。デフォルトではEUC-JPになります。
NAIST辞書のインストール
NAIST辞書は、SourceForgeの概要には「形態素解析用辞書 IPADIC の ICOT 条項をクリアするとともに表記ゆれ情報、複合語情報を付与した辞書」と書かれています。


ダウンロードはこちら
http://sourceforge.jp/projects/naist-jdic/releases/


ライセンスはBSDなので、他の2つよりも緩いです。後で使用範囲で悩みそうな場合は、NAIST辞書を使用しておくのが安全だと思われます。

Mecab用、Chasen用の辞書が用意されているので、「mecab-naist-jdic-x.x.x-yyyymmdd」の方を落とします。


$ ./configure --with-charset=utf8
$ make
$ make install

IPAの時と同じく、文字コードはUTF-8に設定しています。
UniDicのインストール
UniDicは「語彙素・語形・書字形・発音形の階層構造を持ち,表記の揺れや語形の変異にかかわらず同一の見出しを与えることができます」のような特徴がある辞書だそうです。

揺れの多い話し言葉に対しても強いということのようです。


現代語版ダウンロードはこちら(※ユーザ登録が必要です。住所や名前の記入が必要になります)
http://www.tokuteicorpus.jp/dist/

近代語版ダウンロードはこちら(※簡単なアンケートがあります)
http://www.kokken.go.jp/lrc/index.php?UniDic%2F%B6%E1%C2%E5%CA%B8%B8%ECUniDic

再配布はNGで、個人利用であれば改変は可。営利目的の場合は許諾が必要、といった条件のようです。
少しライセンスが厳しいので、営利や利用ソフトの公開を考えて使う人は注意が必要です。

リリースノートがTwitterで出てるところが面白いです。
http://twitter.com/unidic

$ cp -r unidic-mecab-1.3.12 /usr/local/lib/mecab/dic/
コピーするだけで動くようです

文字コードはデフォルトでUTF-8を採用しているようです。
詳細なインストール方法は、ダウンロードした中にPDFファイルが入っています。
mecab-rubyのインストール
MeCabのRubyバインディングです。


ダウンロードはこちら
http://sourceforge.net/projects/mecab/files/
mecab-ruby-x.xx.tar.gz(x.xxはバージョン名)というファイルです。


$ ruby extconf.rb

$ make

$ ruby test.rb

我が家の環境では、上記コマンドで以下のようなエラーが出ました。

./MeCab.so: libmecab.so.1: cannot open shared object file: No such file or directory - ./MeCab.so (LoadError)

対応

$ sudo vim /etc/ld.so.conf

一行目に以下を追加

/usr/local/lib

$ sudo ldconfig

$ sudo make install

Mecabの良く使う引数
mecab -h
ヘルプ表示。使用できる引数一覧が表示されます。

mecab -d 辞書ディレクトリパス
システム辞書指定。使用するシステム辞書が指定できます。
$ mecab -d /usr/local/lib/mecab/dic/ipadic
のように指定します。

mecab -u 辞書ディレクトリパス
ユーザ辞書指定。使用するユーザ辞書が指定できます。
ユーザ辞書はシステム辞書より低速ですが、簡単に複数の辞書を組み合わせて形態素解析が実行できます。顔文字辞書や、そのサイト特有の言葉を記したような数千件程度の辞書であれば、ユーザ辞書にして扱うのも良いかもしれません。

mecab -N 取得結果数
引数で指定した数まで結果を返してくれます。
複数の解析結果がありえるような文章では、別の結果を複数返す場合があります。
デフォルトでは最もコストが良い結果1つのみが表示されています。
$ echo やまかん | mecab -E2 -d /usr/local/lib/mecab/dic/unidic-mecab-1.3.12
とすると、2つ別個の結果が取れました
3つの辞書の結果を比較するサンプル
とりあえず、hoge.rbというファイル名で、以下のようなコードを書きます。

require 'MeCab'

dir_path = "/usr/local/lib/mecab/dic/"
dic_dir_names = [ "ipadic", "naist-jdic", "unidic-mecab-1.3.12" ]

dic_dir_names.each { | dir_name |
  mecab = MeCab::Tagger.new( "-d #{dir_path}#{dir_name}" )
  puts "===========", mecab.parse( ARGV[0] )
}
引数で渡された文字列に対して、3つの辞書でparseした結果を出力するコードです。

試しに以下のように実行してみました。

$ ruby test.rb どないせいっちゅうねん

===========
IPA
===========
ど 接頭詞,名詞接続,*,*,*,*,ど,ド,ド
ない 形容詞,自立,*,*,形容詞・アウオ段,基本形,ない,ナイ,ナイ
せい 名詞,非自立,一般,*,*,*,せい,セイ,セイ
っちゅう 助詞,格助詞,連語,*,*,*,っちゅう,ッチュウ,ッチュウ
ねん 助詞,終助詞,*,*,*,*,ねん,ネン,ネン
EOS
===========
NAIST
===========
ど 接頭詞,名詞接続,*,*,*,*,ど,ド,ド,,
ないせい 名詞,サ変接続,*,*,*,*,ないせい,ナイセイ,ナイセイ,,
っちゅう 助詞,格助詞,連語,*,*,*,っちゅう,ッチュウ,ッチュウ,,
ねん 助詞,終助詞,*,*,*,*,ねん,ネン,ネン,,
EOS
===========
UniDic
===========
どない 形状詞,一般,*,*,*,*,ドナイ,どない,どない,ドナイ,ドナイ,和,どない,ドナイ,ドナイ,ドナイ,*,*,*,*,*,*,0,C2,*
せい 動詞,非自立可能,*,*,サ行変格,命令形,スル,為る,せい,セイ,セイ,和,する,スル,スル,スル,*,*,*,*,*,*,0,C5,*
っちゅう 助動詞,*,*,*,五段-ワア行-一般,終止形-一般,ツウ,つう,っちゅう,ッチュー,ッチュウ,和,っちゅう,ッチュー,ッチュウ,ッチュウ,*,*,*,*,*,*,*,"動詞%F2@0,形容詞%F2@-1",*
ねん 助動詞,*,*,*,無変化型,終止形-一般,ネン,ねん,ねん,ネン,ネン,和,ねん,ネン,ネン,ネン,*,*,*,*,*,*,*,動詞%F2@0,*
EOS

UniDicはさすがという結果ですね。
まとめ
以上、MeCabと辞書のインストールと、ちょっとしたサンプルでした。
他にも巷にはいろいろな辞書が溢れているので、自分の用途にあった辞書を試しながら探していくのも楽しいと思います。
戻る    ご意見、ご要望