LoginSignup
47
47

More than 5 years have passed since last update.

RubyでMeCabを使う

Posted at

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

47
47
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
47
47