我が家のLinux機(Fedora10)にMecabを入れた際のログです。
入れたものは以下。
以上5つです。
ここでは入れた際に打ったコマンドと、簡単なサンプルを載せておきたいと思います。
ダウンロードはこちら
http://sourceforge.net/projects/mecab/files/
Linuxであれば、mecab-x.xx.tar.gz(x.xxはバージョン番号)を持ってきます。持ってきたら解凍してinstall。
$ tar xzvf mecab-x.xx.tar.gz
$ cd mecab-x.xx
$ ./configure
$ make
$ sudo make install
これだけでOKです。
【参考サイト】Mecab公式サイト
http://mecab.sourceforge.net/
次に辞書をインストールします。日本語辞書の有名どころとしては、IPA、NAIST、UniDicなどがあります。
とりあえずIPAのヤツを入れてみます。
ダウンロードはこちら(下の方にいる、mecab-ipadicを落とします)
http://sourceforge.net/projects/mecab/files/
$ ./configure --with-charset=utf8
$ make
$ make install
文字コードはUTF-8に設定しています。デフォルトではEUC-JPになります。
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は「語彙素・語形・書字形・発音形の階層構造を持ち,表記の揺れや語形の変異にかかわらず同一の見出しを与えることができます」のような特徴がある辞書だそうです。
揺れの多い話し言葉に対しても強いということのようです。
現代語版ダウンロードはこちら(※ユーザ登録が必要です。住所や名前の記入が必要になります)
http://www.tokuteicorpus.jp/dist/
近代語版ダウンロードはこちら(※簡単なアンケートがあります)
http://www.kokken.go.jp/lrc/index.php?UniDic%2F%B6%E1%C2%E5%CA%B8%B8%ECUniDic
再配布はNGで、個人利用であれば改変は可。営利目的の場合は許諾が必要、といった条件のようです。
少しライセンスが厳しいので、営利や利用ソフトの公開を考えて使う人は注意が必要です。
$ cp -r unidic-mecab-1.3.12 /usr/local/lib/mecab/dic/
コピーするだけで動くようです。
文字コードはデフォルトでUTF-8を採用しているようです。詳細なインストール方法は、ダウンロードした中にPDFファイルが入っています。
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 -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つ別個の結果が取れました
とりあえず、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と辞書のインストールと、ちょっとしたサンプルでした。
他にも巷にはいろいろな辞書が溢れているので、自分の用途にあった辞書を試しながら探していくのも楽しいと思います。