Tag: mecab



2013年 5月 10

groonga

どうやらcentosではmecab単体のパッケージが提供されていないので、groongaをインストールする。

2.5. CentOS — groonga v3.0.3ドキュメント

groongaのリポジトリを追加
% sudo rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-1.noarch.rpm
groongaのトークナイザーにmecabを使う
% sudo yum install -y groonga-tokenizer-mecab
================================================================================
 Package                   Arch     Version                     Repository
                                                                           Size
================================================================================
Installing:
 groonga-tokenizer-mecab   x86_64   3.0.3-0.el6                 groonga    18 k
Installing for dependencies:
 mecab                     x86_64   0.996-1.el6                 groonga   2.3 M
 mecab-ipadic              x86_64   2.7.0.20070801-6.el6.1      groonga    13 M

Transaction Summary
================================================================================
Install       3 Package(s)

mecab本体と辞書がインストールされます。

もしかするとgroonagリポジトリ追加して、yum install mecab mecab-ipadic で良かったかも。groonga必要だからいいけど。


Filed under: CentOS5.x,CentOS6.x,インストールメモ

Trackback Uri






2011年 12月 22

以前にハマっていた形態素解析をローカル環境で試してみたいので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/


    Filed under:  web,Mac,プログラミング

    Trackback Uri






    2011年 1月 7

    Text::Mecabがインストール出来なかった。
    そういえば昔諦めた気がする。
    で、エラー内容を見てみる。

    # perl Makefile.PL
    Path to mecab config? [/usr/local/bin/mecab-config] 
    detected mecab version 0.98
    Using compiler flags '-I/usr/local/include -DMECAB_MAJOR_VERSION=0 -DMECAB_MINOR_VERSION=98'...
    Using linker flags '-L/usr/local/lib -lmecab -lstdc++'...
    
    Text::MeCab needs to know what encoding you built your dictionary with
    to properly execute tests.
    
    Encoding of your mecab dictionary? (shift_jis, euc-jp, utf-8) [euc-jp] utf-8
    Using utf-8 as your dictionary encoding
    Detected the following mecab information:
       version: 0.98
       cflags: -I/usr/local/include -DMECAB_MAJOR_VERSION=0 -DMECAB_MINOR_VERSION=98 -I src
       libs: -L/usr/local/lib -lmecab -lstdc++
       include: /usr/local/include
    /root/.cpanm/work/1294395897.25225/Text-MeCab-0.20011/assertlibeiKR8srG: error while loading shared libraries: libmecab.so.1: cannot open shared object file: No such file or directory
    /root/.cpanm/work/1294395897.25225/Text-MeCab-0.20011/assertlibEejMJieF: error while loading shared libraries: libmecab.so.1: cannot open shared object file: No such file or directory
    wrong result: 'mecab', 'mecab'
    

    libmecab.so.1 が見つからないらしい。
    /usr/local/lib/libmecab.so.1 にインストールされている。

    CentOSの標準設定ではPATHが通っていないらしいので、/usr/local/lib/ 配下のライブラリが読み込まれない様子。

    で、/etc/ld.so.conf あたりをいじる必要がある。

    # vi /etc/ld.so.conf
    
    /usr/local/lib    ←最終行に追記

    ldconfigを実行して、ライブラリ読み込みパスを更新。

    # ldconfig 

    ※pathが通っていない場合は /sbin/ldconfig

    Text::Mecab のディレクトリへ移動して手動でインストール

    perl Makefile.PL
    make
    make test
    make install

    Filed under: perlモジュール

    Trackback Uri






    2009年 2月 7

    1)MeCabのインストール

    • UTF8で使用する。
    • UTF-8 only modeとして使用する
    wget http://downloads.sourceforge.net/mecab/mecab-0.97.tar.gz
    tar xvfz mecab-0.97.tar.gz
    cd mecab-0.97
    ./configure --with-charset=utf8 --enable-utf8-only
    make
    su --
    make install

    2)辞書ipadic2.7.0 のインストール

    • UTF8で使用する。
    wget http://downloads.sourceforge.net/mecab/mecab-ipadic-2.7.0-20070801.tar.gz
    tar xvfz mecab-ipadic-2.7.0-20070801.tar.gz
    cd mecab-ipadic-2.7.0-20070801
    ./configure --with-charset=utf8
    make
    su --
    make install
    2012/09/25追記

    最新版をインストールしようとしたらこんなエラーが出る。

    /bin/sh ../libtool --tag=CXX   --mode=link g++  -O3 -Wall    -o mecab mecab.o libmecab.la -lpthread -lpthread  -lstdc++
    libtool: link: g++ -O3 -Wall -o .libs/mecab mecab.o  ./.libs/libmecab.so -lpthread -lstdc++ -Wl,-rpath -Wl,/usr/local/lib
    ./.libs/libmecab.so: undefined reference to `__sync_val_compare_and_swap_4'
    collect2: ld returned 1 exit status
    make[2]: *** [mecab] Error 1
    

    gcc4.4をインストールしてconfigureオプションを渡してあげる

    $ sudo yum install gcc44 gcc44-c++
    $ ./configure --with-charset=utf8 --enable-utf8-only CXX='g++44'

    ※makeをやり直す場合は make clean してから行う事

    参考:mecabのインストール – 気ままに書いてみました日記


    Filed under: webアプリ,サーバ管理

    Trackback Uri