スクリプト言語のバインディング
細かいことはよくわからないけど、RubyからMeCabを使うにはこの作業が必要らしいのでやった。
ちなみにRubyの他にはPython、Perl、Javaからの利用が可能らしい。
他の言語からはわかりません。。。
詳細:http://mecab.sourceforge.net/bindings.html
0.材料のダウンロード
http://downloads.sourceforge.net/mecab/mecab-ruby-0.95.tar.gz
ここからダウンロードして適当なフォルダに入れとく。
ちなみに毎度のように/usr/local/src/mecabに入れたのでご承知を。
1.インストール
ぶっちゃけ詳細はダウンロードしたのを展開したフォルダ内にある
READMEを読めば文字の読める猿であればわかる。ただの猿にはわからないが。
が、諸事情によりうまくいかなかったのでログを書く。
まず基本的な手順。
$ ruby extconf.rb $ make $ sudo make install
これがマニュアルのやり方。
で、実際にやった方法。
$ sudo tar zxfv mecab-ruby-0.95.tar.gz $ cd mecab-ruby-0.95 $ ruby extconf.rb extconf.rb:1: command not found: mecab-config --libs-only-l extconf.rb:1: command not found: mecab-config --cflags checking for mecab.h... *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options.
こんな感じでextconf.rbが実行できない。
mecab-configがどこにあるかわからないとのことなので、
最初は↓みたいな感じでやってみた。
$ sudo ruby extconf.rb --with-mecab-confg=/usr/local/bin/mecab-config
しかし、これの実行結果は、
extconf.rb:1: command not found: mecab-config --libs-only-l extconf.rb:1: command not found: mecab-config --cflags checking for mecab.h... yes creating Makefile
となってしまい、根本的に解決してないと判断したので、vimを使って修正。
$ sudo vim extconf.rb
ファイル中上から3、4行目の'mecab-config'となっている合計3つと
6行目の`mecab-config --hoge....という部分の『mecab-config』を
全部『/usr/loca/bin/mecab-config』と変更する。
あとは保存してvimを終了させる。
$ sudo ruby extconf.rb checking for main() in -lmecab... yes checking for main() in -lstdc++... yes checking for mecab.h... yes creating Makefile
と今回は上手くいった様子。
$ sudo make $ sudo make install
これでインストール自体は完了。
次に動作確認で同じパッケージ中に含まれるtest.rbを実行してみる。
$ ruby test.rb 0.95 太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー は 助詞,係助詞,*,*,*,*,は,ハ,ワ この 連体詞,*,*,*,*,*,この,コノ,コノ 本 名詞,一般,*,*,*,*,本,ホン,ホン を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 二郎 名詞,固有名詞,一般,*,*,*,二郎,ニロウ,ニロー を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 見 動詞,自立,*,*,一段,連用形,見る,ミ,ミ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 女性 名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ に 助詞,格助詞,一般,*,*,*,に,ニ,ニ 渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 。 記号,句点,*,*,*,*,。,。,。 EOS BOS/EOS,*,*,*,*,*,*,*,* 0 太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー 8308 は 助詞,係助詞,*,*,*,*,は,ハ,ワ 9237 この 連体詞,*,*,*,*,*,この,コノ,コノ 9346 本 名詞,一般,*,*,*,*,本,ホン,ホン 13811 を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 13094 二郎 名詞,固有名詞,一般,*,*,*,二郎,ニロウ,ニロー 18835 を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 19322 見 動詞,自立,*,*,一段,連用形,見る,ミ,ミ 23338 た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 20625 女性 名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ 23008 に 助詞,格助詞,一般,*,*,*,に,ニ,ニ 22871 渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ 25639 た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 25006 。 記号,句点,*,*,*,*,。,。,。 21081 BOS/EOS,*,*,*,*,*,*,*,* 19505 EOS B[0] 太郎 名詞,固有名詞,地域,一般,*,*,太郎,タロウ,タロー B[0] 太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー B[0] 太 名詞,固有名詞,地域,一般,*,*,太,タイ,タイ B[0] 太 動詞,自立,*,*,五段・ラ行,体言接続特殊2,太る,フト,フト B[0] 太 名詞,固有名詞,人名,名,*,*,太,フトシ,フトシ B[0] 太 形容詞,自立,*,*,形容詞・アウオ段,ガル接続,太い,フト,フト E[0] BOS/EOS,*,*,*,*,*,*,*,* B[3] 郎 名詞,一般,*,*,*,*,郎,ロウ,ロー E[3] 太 形容詞,自立,*,*,形容詞・アウオ段,ガル接続,太い,フト,フト B[6] はこ 動詞,自立,*,*,五段・カ行イ音便,未然ウ接続,はく,ハコ,ハコ B[6] は 動詞,非自立,*,*,五段・ラ行,体言接続特殊2,はる,ハ,ハ B[6] は 助詞,係助詞,*,*,*,*,は,ハ,ワ B[6] は 動詞,自立,*,*,五段・ラ行,体言接続特殊2,はる,ハ,ハ E[6] 郎 名詞,一般,*,*,*,*,郎,ロウ,ロー B[9] この 連体詞,*,*,*,*,*,この,コノ,コノ B[9] こ 動詞,非自立,*,*,カ変・クル,未然形,くる,コ,コ B[9] こ 動詞,自立,*,*,カ変・クル,未然形,くる,コ,コ B[9] こ 動詞,自立,*,*,五段・ラ行,体言接続特殊2,こる,コ,コ B[9] こ 動詞,非自立,*,*,五段・カ行促音便,未然ウ接続,く,コ,コ B[9] こ 名詞,一般,*,*,*,*,こ,コ,コ B[9] こ 形容詞,自立,*,*,形容詞・アウオ段,ガル接続,こい,コ,コ E[9] は 動詞,自立,*,*,五段・ラ行,体言接続特殊2,はる,ハ,ハ B[12] の 動詞,自立,*,*,五段・ラ行,体言接続特殊2,のる,ノ,ノ B[12] の 助詞,終助詞,*,*,*,*,の,ノ,ノ B[12] の 助詞,連体化,*,*,*,*,の,ノ,ノ B[12] の 助詞,格助詞,一般,*,*,*,の,ノ,ノ B[12] の 名詞,非自立,一般,*,*,*,の,ノ,ノ E[12] こ 形容詞,自立,*,*,形容詞・アウオ段,ガル接続,こい,コ,コ B[15] 本 名詞,固有名詞,地域,一般,*,*,本,ホン,ホン B[15] 本 名詞,接尾,助数詞,*,*,*,本,ホン,ホン B[15] 本 接頭詞,名詞接続,*,*,*,*,本,ホン,ホン B[15] 本 名詞,固有名詞,人名,姓,*,*,本,モト,モト B[15] 本 名詞,一般,*,*,*,*,本,ホン,ホン E[15] の 名詞,非自立,一般,*,*,*,の,ノ,ノ B[18] を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ E[18] 本 名詞,一般,*,*,*,*,本,ホン,ホン B[21] 二郎 名詞,数,*,*,*,*,* B[21] 二郎 名詞,固有名詞,一般,*,*,*,二郎,ニロウ,ニロー B[21] 二郎 名詞,固有名詞,人名,名,*,*,二郎,ジロウ,ジロー B[21] 二 名詞,固有名詞,地域,一般,*,*,二,フタ,フタ B[21] 二 名詞,数,*,*,*,*,二,ニ,ニ E[21] を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ B[24] 郎 名詞,一般,*,*,*,*,郎,ロウ,ロー E[24] 二 名詞,数,*,*,*,*,二,ニ,ニ B[27] を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ E[27] 郎 名詞,一般,*,*,*,*,郎,ロウ,ロー B[30] 見 名詞,固有名詞,地域,一般,*,*,見,ミル,ミル B[30] 見 動詞,自立,*,*,一段,未然形,見る,ミ,ミ B[30] 見 動詞,自立,*,*,一段,連用形,見る,ミ,ミ E[30] を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ B[33] た 動詞,非自立,*,*,五段・ラ行,体言接続特殊2,たる,タ,タ B[33] た 動詞,自立,*,*,五段・ラ行,体言接続特殊2,たる,タ,タ B[33] た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ B[33] た 助動詞,*,*,*,特殊・タイ,ガル接続,たい,タ,タ E[33] 見 動詞,自立,*,*,一段,連用形,見る,ミ,ミ B[36] 女性 名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ B[36] 女 名詞,接尾,助数詞,*,*,*,女,ジョ,ジョ B[36] 女 接頭詞,名詞接続,*,*,*,*,女,ジョ,ジョ B[36] 女 名詞,一般,*,*,*,*,女,オンナ,オンナ E[36] た 助動詞,*,*,*,特殊・タイ,ガル接続,たい,タ,タ B[39] 性 名詞,接尾,一般,*,*,*,性,セイ,セイ B[39] 性 名詞,一般,*,*,*,*,性,セイ,セイ E[39] 女 名詞,一般,*,*,*,*,女,オンナ,オンナ B[42] に 動詞,自立,*,*,一段,連用形,にる,ニ,ニ B[42] に 動詞,自立,*,*,一段,未然形,にる,ニ,ニ B[42] に 助詞,副詞化,*,*,*,*,に,ニ,ニ B[42] に 助詞,特殊,*,*,*,*,に,ニ,ニ B[42] に 助詞,格助詞,一般,*,*,*,に,ニ,ニ E[42] 性 名詞,一般,*,*,*,*,性,セイ,セイ B[45] 渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ B[45] 渡し 名詞,一般,*,*,*,*,渡し,ワタシ,ワタシ B[45] 渡 動詞,自立,*,*,五段・ラ行,体言接続特殊2,渡る,ワタ,ワタ B[45] 渡 名詞,固有名詞,地域,一般,*,*,渡,ド,ド B[45] 渡 名詞,固有名詞,人名,姓,*,*,渡,ワタリ,ワタリ B[45] 渡 名詞,固有名詞,人名,名,*,*,渡,ワタル,ワタル E[45] に 助詞,格助詞,一般,*,*,*,に,ニ,ニ B[48] した 名詞,一般,*,*,*,*,した,シタ,シタ B[48] し 動詞,自立,*,*,サ変・スル,未然形,する,シ,シ B[48] し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ B[48] し 動詞,接尾,*,*,五段・サ行,連用形,す,シ,シ B[48] し 助詞,接続助詞,*,*,*,*,し,シ,シ B[48] し 動詞,自立,*,*,五段・ラ行,体言接続特殊2,しる,シ,シ B[48] し 助動詞,*,*,*,文語・キ,体言接続,き,シ,シ E[48] 渡 名詞,固有名詞,人名,名,*,*,渡,ワタル,ワタル B[51] た 動詞,非自立,*,*,五段・ラ行,体言接続特殊2,たる,タ,タ B[51] た 動詞,自立,*,*,五段・ラ行,体言接続特殊2,たる,タ,タ B[51] た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ B[51] た 助動詞,*,*,*,特殊・タイ,ガル接続,たい,タ,タ E[51] し 助動詞,*,*,*,文語・キ,体言接続,き,シ,シ B[54] 。 名詞,サ変接続,*,*,*,*,* B[54] 。 記号,句点,*,*,*,*,。,。,。 E[54] た 助動詞,*,*,*,特殊・タイ,ガル接続,たい,タ,タ B[57] BOS/EOS,*,*,*,*,*,*,*,* E[57] BOS/EOS,*,*,*,*,*,*,*,* EOS filename: /usr/local/lib/mecab/dic/ipadic/sys.dic charset: utf-8 size: 378914 type: 0 lsize: 1316 rsize: 1316 version: 102
と成功したっぽい。
今度こそお疲れちゃんだと思われる。
結論としてはmake待ちの時間はドキドキだってあたり。