LoginSignup
6
8

More than 5 years have passed since last update.

Windows10(64bit)のRubyでMeCabをつかう(Natto)

Last updated at Posted at 2016-01-15

概要

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に適当なファイルを作って、試してみます。

mecab.rb
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

ファイルの中身は次のとおりです。

temp.txt
日本語: 名詞,一般,*,*,*,*,日本語,ニホンゴ,ニホンゴ
を: 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
分解: 名詞,サ変接続,*,*,*,*,分解,ブンカイ,ブンカイ
し: 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
て: 助詞,接続助詞,*,*,*,*,て,テ,テ
しまい: 動詞,非自立,*,*,五段・ワ行促音便,連用形,しまう,シマイ,シマイ
ます: 助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス
。: 記号,句点,*,*,*,*,。,。,。
: BOS/EOS,*,*,*,*,*,*,*,*

ちなみに、MeCabを直接実行したときは次のようになります。

> mecab input.txt -o out.txt
out.txt
日本語   名詞,一般,*,*,*,*,日本語,ニホンゴ,ニホンゴ
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
分解  名詞,サ変接続,*,*,*,*,分解,ブンカイ,ブンカイ
し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
て 助詞,接続助詞,*,*,*,*,て,テ,テ
しまい   動詞,非自立,*,*,五段・ワ行促音便,連用形,しまう,シマイ,シマイ
ます  助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス
。 記号,句点,*,*,*,*,。,。,。
EOS

本質的には同じだと思います。

おしまい

たのしめ!

6
8
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
6
8