Linux Mint - Ruby で形態素解析 MeCab を使う!
Updated:
以前、Cygwin 上で Ruby を使って形態素解析 MeCab をする方法を紹介しました。
今回は、Linux Mint にソースをビルドしてインストールした Ruby で形態素解析 MeCab を使用する方法についてです。
以前の Cygwin での方法と若干異なるので記録しておきます。
0. 前提条件
- Linux Mint 13 Maya (64bit) での作業を想定。(Ubuntu, Debian でも同様)
- Ruby はソースをビルドしてインストールした 1.9.3-p362 を想定。
1. MeCab と辞書のインストール
MeCab と辞書(UTF-8)を Synaptic パッケージマネージャか apt-get
等でインストールする。
apt-get
でインストールするなら以下のようにする。
$ sudo apt-get install mecab mecab-ipadic-utf8
$ mecab -v
mecab of 0.98
MeCab 0.98 がインストールできている。
2. libmecab-dev インストール
apt 管理下の Ruby でない場合、つまり、当方のようにソースをビルドしてインストールした Ruby や rvm, rbenv でインストールした Ruby の場合は、後にインストールする mecab-ruby
のビルドで libmecab-dev
が必要である。
Synaptic パッケージマネージャか apt-get
等でインストールする。
apt-get
でインストールするなら以下のようにする。
$ sudo apt-get install libmecab-dev
3. mecab-ruby インストール
mecab-ruby
のアーカイブをダウンロード後をビルド&インストールする。
当記事執筆時点では mecab-ruby 0.994
が最新だが、システムにインストールされている MeCab とバージョンが同じか近いものをインストールした方がよいようなので、mecab-ruby 0.98
をインストールした。
$ cd /usr/local/src
$ wget http://mecab.googlecode.com/files/mecab-ruby-0.98.tar.gz
$ tar zxvf mecab-ruby-0.98.tar.gz
$ 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
$ sudo gem install mecab-ruby-0.97.gem
Building native extensions. This could take a while...
Successfully installed mecab-ruby-0.97
1 gem installed
Installing ri documentation for mecab-ruby-0.97...
Installing RDoc documentation for mecab-ruby-0.97...
$ gem list | grep mecab-ruby
mecab-ruby (0.97)
【2016-12-29 追記】
現在、 mecab-ruby-x.xx.tar.gz 等のダウンロードは こちら から行うようになっている。 【追記ここまで】
4. テスト用スクリプト作成
テスト用に以下のような Ruby スクリプトを作成する。
File: test_mecab.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# -*- encoding: utf-8 -*-
require 'MeCab'
sentence = "太郎はこの本を二郎を見た女性に渡した。"
begin
c = MeCab::Tagger.new
n = c.parseToNode(sentence)
while n do
print n.surface, "\t", n.feature, "\t", n.cost, "\n"
n = n.next
end
print "EOS\n";
rescue
print "RuntimeError: ", $!, "\n";
end
5. テスト
作成した Ruby スクリプトを実行して動作を確認してみる。
$ ruby test_mecab.rb
BOS/EOS,*,*,*,*,*,*,*,* 0
太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー 8614
は 助詞,係助詞,*,*,*,*,は,ハ,ワ 9699
この 連体詞,*,*,*,*,*,この,コノ,コノ 9755
本 名詞,一般,*,*,*,*,本,ホン,ホン 14548
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 13738
二 名詞,数,*,*,*,*,二,ニ,ニ 16665
郎 名詞,一般,*,*,*,*,郎,ロウ,ロー 21808
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 20998
見 動詞,自立,*,*,一段,連用形,見る,ミ,ミ 25194
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 22795
女性 名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ 25091
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ 24938
渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ 28035
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 27158
。 記号,句点,*,*,*,*,。,。,。 23724
BOS/EOS,*,*,*,*,*,*,*,* 22188
EOS
問題ないようだ。
ちなみに、出力フォーマットは以下の通り。
表層形\t品詞,品詞細分類1,品詞細分類2,品詞細分類3, 活用形,活用型,原形,読み,発音,コスト
※コストとは出現頻度のことです。
6. 参考サイト
これで、Linux Mint にインストールしている Ruby でも形態素解析ができるようになりました。
以上。
Comments