RubyからMeCabを使う
MeCabをプログラムの中から使えるようにします。
しばらく離れていたrubyでやってみようと思います。
rubyのバージョン管理にrbenv使ってますのでまずはプロジェクト用にruby関係の設定をします
#まずプロジェクト用のフォルダ作って使用するrubyバージョンを分離します $mkdir crossword_dic $ cd crossword_dic/ $ rbenv version 1.9.3-p194 (set by /home/kuroyanagi/.rbenv/version) $ rbenv local 1.9.3-p194 $ rbenv version 1.9.3-p194 (set by /home/kuroyanagi/workspace/crossword_dic/.rbenv-version) #gemsetを作成します。 $ rbenv gemset create 1.9.3-p194 mecab-ruby created mecab-ruby for 1.9.3-p194 #プロジェクトフォルダでこのgemsetを使うように設定します。 $ echo mecab-ruby > .rbenv-gemsets #プロジェクトフォルダで設定が有効か確認してみます $ rbenv gemset active mecab-ruby global $ rbenv gemset list 1.9.3-p194: mecab-ruby
rubyからmecabを使用するためにはmecab-rubyを使用しますがgemにはないので
MeCab-Japanese morphological analyzerからダウンロードして使用します。
http://code.google.com/p/mecab/downloads/list
バージョンがいっぱいありますが、インストールしたmecabのバージョンに近いものを入れます。
$ mecab -v mecab of 0.98 #今の環境はmecab 0.98なのでmecab-ruby-0.98.tar.gzをダウンロードします。 #ダウンロードしたファイルを展開してgemspecを作成します。 $ tar -zxvf mecab-ruby-0.98.tar.gz mecab-ruby-0.98/ mecab-ruby-0.98/bindings.html mecab-ruby-0.98/README mecab-ruby-0.98/extconf.rb mecab-ruby-0.98/LGPL mecab-ruby-0.98/mecab-ruby.gemspec mecab-ruby-0.98/COPYING mecab-ruby-0.98/BSD mecab-ruby-0.98/GPL mecab-ruby-0.98/AUTHORS mecab-ruby-0.98/test.rb mecab-ruby-0.98/MeCab_wrap.cpp $ cd mecab-ruby-0.98/ $ gem build mecab-ruby.gemspec Successfully built RubyGem Name: mecab-ruby Version: 0.97 File: mecab-ruby-0.97.gem #ここでできたgemを使ってインストールします。 $ gem install mecab-ruby-0.97.gem Building native extensions. This could take a while... Successfully installed mecab-ruby-0.97 1 gem installed
動作確認のためにこの様なソース書いて
# coding: utf-8 require 'MeCab' mecab = MeCab::Tagger.new() puts mecab.parse("MeCabっていうのは日本語の文書を分析して単語の塊に分けてくれる(形態素解析)ソフトです。")
実行すると
$ ruby test.rb
MeCab 名詞,固有名詞,組織,*,*,*,*
っていう 助詞,格助詞,連語,*,*,*,っていう,ッテイウ,ッテユウ,,
の 名詞,非自立,一般,*,*,*,の,ノ,ノ,,
は 助詞,係助詞,*,*,*,*,は,ハ,ワ,,
日本語 名詞,一般,*,*,*,*,日本語,ニホンゴ,ニホンゴ,,
の 助詞,連体化,*,*,*,*,の,ノ,ノ,,
文書 名詞,一般,*,*,*,*,文書,ブンショ,ブンショ,,
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ,,
分析 名詞,サ変接続,*,*,*,*,分析,ブンセキ,ブンセキ,,
し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ,,
て 助詞,接続助詞,*,*,*,*,て,テ,テ,,
単語 名詞,一般,*,*,*,*,単語,タンゴ,タンゴ,,
の 助詞,連体化,*,*,*,*,の,ノ,ノ,,
塊 名詞,一般,*,*,*,*,塊,カタマリ,カタマリ,,
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ,,
分け 動詞,自立,*,*,一段,連用形,分ける,ワケ,ワケ,わけ/分け,
て 助詞,接続助詞,*,*,*,*,て,テ,テ,,
くれる 動詞,非自立,*,*,一段・クレル,基本形,くれる,クレル,クレル,,
( 記号,括弧開,*,*,*,*,(,(,(,,
形態素 名詞,一般,*,*,*,*,形態素,ケイタイソ,ケイタイソ,,
解析 名詞,サ変接続,*,*,*,*,解析,カイセキ,カイセキ,,
) 記号,括弧閉,*,*,*,*,),),),,
ソフト 名詞,一般,*,*,*,*,ソフト,ソフト,ソフト,,
です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス,,
。 記号,句点,*,*,*,*,。,。,。,,
EOS
よさそうです。