RubyでMeCabを使う

  • 45
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

CentOSにMeCabをインストール

まずは、MeCabをインストールする。

$ sudo yum install mecab mecab-ipadic 
No package mecab available.
No package mecab-ipadic available.

できない、どうやらレポジトリを追加する必要があるらしい。

Groongaレポジトリ追加

$ sudo rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-1.noarch.rpm

mecab本体と辞書ファイルをインストール

$ sudo yum install mecab mecab-ipadic 

確認

$ mecab --version
mecab of 0.996

$ mecab
すもももももももものうち
すもも   名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも  名詞,一般,*,*,*,*,もも,モモ,モモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも  名詞,一般,*,*,*,*,もも,モモ,モモ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
うち  名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS

nattoからMeCabをよぶ

nattoをインストール

$ gem install natto

rubyファイルを書いて実行

require 'natto'

text = 'すもももももももものうち'
nm = Natto::MeCab.new
nm.parse(text) do |n|
  puts "#{n.surface}\t#{n.feature}"
end
$ ruby natto.rb
~/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/lib/ffi/library.rb:133:in `block in ffi_lib': Could not open library 'mecab': /usr/lib/mecab: cannot read file data: Is a directory. (LoadError)
Could not open library 'libmecab.so': libmecab.so: cannot open shared object file: No such file or directory

よく分からんが、libmecab.soが必要で、ちゃんと読み込めていない。

libmecab.soの場所を探す

$ sudo find / -name libmecab.so*
/usr/lib/libmecab.so.2
/usr/lib/libmecab.so.2.0.0

libmecab.soにパスを通す

$ echo 'export MECAB_PATH=/usr/lib/libmecab.so.2' >> ~/.bash_profile
$ source ~/.bash_profile

再度実行する

$ ruby natto.rb
すもも   名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも  名詞,一般,*,*,*,*,もも,モモ,モモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも  名詞,一般,*,*,*,*,もも,モモ,モモ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
うち  名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
    BOS/EOS,*,*,*,*,*,*,*,*

できた!

参考URL