概要
Mecabをインストールして、RubyからNattoを用いて簡単に使えるようにします。
Windowsのローカル環境で実行する前提だと、MeCabをインストールするだけで直接コマンドを叩かせたほうが楽な気もしますが、他の環境で動かすことも考えると、そのあたりを隠蔽してくれる適当なgemを使ったほうがよいかな、と思いました。
環境
Windows10(64bit) で Ruby 2.2.3 + Rails 4.2.5で構築した環境です。
やること
1. MeCabのインストール
mecab-0.996.exeを入手してインストールします。
https://drive.google.com/folderview?id=0B4y35FiV1wh7fjQ5SkJETEJEYzlqcUY4WUlpZmR4dDlJMWI5ZUlXN2xZN2s2b0pqT3hMbTQ&usp=drive_web
辞書の文字コードをutf-8にし、pathを通します。
これで、MeCabは単独で動くようになるのですが、32bitのdllだと64bit用ruby(MinGW)から呼ぶと動かないらしいので、実行ファイルを作り直します。
2. MeCabの実行ファイルを作り直す
https://github.com/buruzaemon/natto/wiki/64-Bit-Windows
の内容を参考にして実行ファイル(dll,exe)を作り直します。書いてある通りにやるとうまくいきました。
- ソースはGoogleDriveから取得します。
- Visual Studioをインストールするときは、c++をインストールする必要があるので注意します。
3. nattoのインストール
> gem install natto
nattoが入ります。
4. 動かす
C:\temp\mecab
に適当なファイルを作って、試してみます。
require 'natto'
text = '日本語を分解してしまいます。'
natto = Natto::MeCab.new
natto.parse(text) do |n|
puts "#{n.surface}: #{n.feature}"
end
以下のコマンドを実行します。
> cd c:\temp\mecab
> ruby mecab.rb > temp.txt
ファイルの中身は次のとおりです。
日本語: 名詞,一般,*,*,*,*,日本語,ニホンゴ,ニホンゴ
を: 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
分解: 名詞,サ変接続,*,*,*,*,分解,ブンカイ,ブンカイ
し: 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
て: 助詞,接続助詞,*,*,*,*,て,テ,テ
しまい: 動詞,非自立,*,*,五段・ワ行促音便,連用形,しまう,シマイ,シマイ
ます: 助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス
。: 記号,句点,*,*,*,*,。,。,。
: BOS/EOS,*,*,*,*,*,*,*,*
ちなみに、MeCabを直接実行したときは次のようになります。
> mecab input.txt -o out.txt
日本語 名詞,一般,*,*,*,*,日本語,ニホンゴ,ニホンゴ
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
分解 名詞,サ変接続,*,*,*,*,分解,ブンカイ,ブンカイ
し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
て 助詞,接続助詞,*,*,*,*,て,テ,テ
しまい 動詞,非自立,*,*,五段・ワ行促音便,連用形,しまう,シマイ,シマイ
ます 助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス
。 記号,句点,*,*,*,*,。,。,。
EOS
本質的には同じだと思います。
おしまい
たのしめ!