macで形態素解析エンジン Mecab を使うときの最も簡単な方法

macで形態素解析エンジン Mecab を使うときの最も簡単な方法

以前にハマっていた形態素解析をローカル環境で試してみたいのでmacでmecabを使う方法を調べてみる。

Mecabって?

MeCabはオープンソースの形態素解析エンジンで、奈良先端科学技術大学院大学出身、現GoogleソフトウェアエンジニアでGoogle 日本語入力開発者の一人である工藤拓[1][2]によって開発されている。
MeCab - Wikipedia

macにはmecabが標準で入っている(*1)のだけれど、文字コードがUTF-16LEみたいで使うのに工夫が必要みたい。

  • 参考:きまぐれ日記: Mac OS X Leopard に「標準で」インストールされている MeCabを使ってみる
  • *1 Spotlight - Wikipedia
  • Mac OS X v10.5から、ネットワーク上の共有フォルダの検索にも対応(下記参照)、最近閲覧したWebページの検索もできるようになっている。初期の Spotlightでは日本語形態素解析が不十分だったため、Googleで使われていたMeCabを採用した(/usr/lib/、/usr/include/mecab.h 等参照)。

    文字コード変換とかいちいち面倒だし、UTF-8で使いたい。なので別途インストールして使う。オフィシャルからダウンロードしてビルドする方法もあるのだけれど、どうやらMacPortsでインストールするのが最善の様子。

  • 参考:Rails: Mac OS では mecab を MacPorts で入れること - tkrdの日記 (rails や ubuntu のことなど)
  • 管理も楽だし、依存関係もよきにはからってくるのでMacPortsでインストールしてみる。

    mecab本体と辞書のインストール

    MackPortsはインストールしてある前提です。

    $ sudo port install mecab
    $ sudo port install mecab-ipadic-utf8

    このまま使うと文字化けしてしまうのでmecabで使う辞書をutf8のへと変更します。(デフォルトの辞書はeucになっている様子)

    $ sudo vi /opt/local/etc/mecabrc
    
    ;dicdir =  /opt/local/lib/mecab/dic/sysdic    ←コメントアウト
    dicdir =  /opt/local/lib/mecab/dic/ipadic-utf8

    mecabを使う

    ここまででターミナルからmecabを使うことができます。
    mecabを終了するにはcontrol+cです。

    $ mecab
    
    mecabを使う簡単な方法
    mecab	名詞,一般,*,*,*,*,*
    を	助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
    使う	動詞,自立,*,*,五段・ワ行促音便,基本形,使う,ツカウ,ツカウ
    簡単	名詞,形容動詞語幹,*,*,*,*,簡単,カンタン,カンタン
    な	助動詞,*,*,*,特殊・ダ,体言接続,だ,ナ,ナ
    方法	名詞,一般,*,*,*,*,方法,ホウホウ,ホーホー
    EOS
    

    各言語のバインディング

    各言語から使うにはバイディングをインストールする必要があります。
    MacPortsにはPerl用、Ruby用、Python用があるみたいですね。

    $ port search mecab
    
    p5-mecab @0.980.0 (perl, textproc, japanese)
        a Perl module for MeCab
    
    p5.8-mecab @0.980.0 (perl, textproc, japanese)
        a Perl module for MeCab
    
    p5.10-mecab @0.980.0 (perl, textproc, japanese)
        a Perl module for MeCab
    
    p5.12-mecab @0.980.0 (perl, textproc, japanese)
        a Perl module for MeCab
    
    p5.14-mecab @0.980.0 (perl, textproc, japanese)
        a Perl module for MeCab
    
    py-mecab @0.98 (python, textproc, japanese)
        a Python module for MeCab
    
    py24-mecab @0.98 (python, textproc, japanese)
        a Python module for MeCab
    
    py25-mecab @0.98 (python, textproc, japanese)
        a Python module for MeCab
    
    py26-mecab @0.98 (python, textproc, japanese)
        a Python module for MeCab
    
    py27-mecab @0.98 (python, textproc, japanese)
        a Python module for MeCab
    
    rb-mecab @0.98 (ruby, textproc, japanese)
        a Ruby module for MeCab
    
    rb19-mecab @0.98 (ruby, textproc, japanese)
        a Ruby module for MeCab
    
    Found 28 ports.

    オフィスシャルサイト
    MeCab: Yet Another Part-of-Speech and Morphological Analyzer
    http://mecab.sourceforge.net/