読者です 読者をやめる 読者になる 読者になる

clock-up-blog

go-mi-tech

gem install mecab でビルドエラー

Ruby gem MeCab

gem install mecab で cpp のコンパイルエラー

# yum -y install mecab mecab-devel install mecab-ipadic
# gem install mecab
Building native extensions.  This could take a while...
ERROR:  Error installing mecab:
        ERROR: Failed to build gem native extension.

    /usr/local/bin/ruby extconf.rb
checking for main() in -lmecab... yes
checking for mecab.h... yes
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling MeCab_wrap.cpp
MeCab_wrap.cpp: In function ‘const mecab_node_t* mecab_node_t_begin_node_list(mecab_node_t*, size_t)’:
MeCab_wrap.cpp:2085: error: ‘struct mecab_node_t’ has no member named ‘sentence_length’
…

ガッデム!

解決方法

入れようとしている gem の mecab のバージョンを調べる

# gem list --remote | grep mecab
light-mecab (0.0.5)
mecab (0.98)
mecab-ext (1.0.2)
mecab-light (0.2.4)
mecab-modern (0.0.2)
mecab-mora (0.0.5)
mecab-syllable (0.0.5)

なるほど 0.98 である。

yum で入れてある mecab のバージョンを調べる

# rpm -q mecab mecab-devel
mecab-0.996-1.el6.x86_64
mecab-devel-0.996-1.el6.x86_64

なるほど 0.996 であった。

yum で入れる mecab のバージョンを gem のやつに合わせる

# yum -y remove mecab
# yum -y remove mecab-devel
# yum -y install mecab-0.98 mecab-devel-0.98
# rpm -q mecab mecab-devel
mecab-0.98-1.el6.x86_64
mecab-devel-0.98-1.el6.x86_64

はい。

それでは再度 gem install mecab

# gem install mecab
Building native extensions.  This could take a while...
Successfully installed mecab-0.98
Parsing documentation for mecab-0.98
Installing ri documentation for mecab-0.98
Done installing documentation for mecab after 1 seconds
1 gem installed

解決!\(^o^)/

おまけ:使用例

require "mecab"
sentence = "当社のサービスを含むインターネット全般のご利用にあたっての注意事項"
tagger = MeCab::Tagger.new
puts tagger.parse sentence


↓ 実行

当社    名詞,一般,*,*,*,*,当社,トウシャ,トーシャ
の      助詞,連体化,*,*,*,*,の,ノ,ノ
サービス        名詞,サ変接続,*,*,*,*,サービス,サービス,サービス
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
含む    動詞,自立,*,*,五段・マ行,基本形,含む,フクム,フクム
インターネット  名詞,一般,*,*,*,*,インターネット,インターネット,インターネット
全般    名詞,一般,*,*,*,*,全般,ゼンパン,ゼンパン
の      助詞,連体化,*,*,*,*,の,ノ,ノ
ご      接頭詞,名詞接続,*,*,*,*,ご,ゴ,ゴ
利用    名詞,サ変接続,*,*,*,*,利用,リヨウ,リヨー
にあたって      助詞,格助詞,連語,*,*,*,にあたって,ニアタッテ,ニアタッテ
の      助詞,連体化,*,*,*,*,の,ノ,ノ
注意    名詞,サ変接続,*,*,*,*,注意,チュウイ,チューイ
事項    名詞,一般,*,*,*,*,事項,ジコウ,ジコー
EOS

ちゃんと分解されたンゴ

});