node.js で、mecabを使う方法

すこし時間が出来たので、node.jsを触ってみました。
恥ずかしながら、全然知らなかったので、どんなものかも分からなかったのですが、なかなか面白い技術ですね。だいぶ前から流行っているようで、完全に乗遅れてます。
その分、先人たちの大量なる資料のおかげで、うっすらと、そのすごさが分かり始めたところです。

なんか作ろうかなと思って、mecabあたりをターゲットにと考えてたのですが、すでに id:koba789 氏がnode-mecab (GitHub - KOBA789/node-mecab: C++で書かれたnode.js用のMeCabバインディング) なるものを作成していましたので、それを動かす所までのメモをまとめておこうと思います。
なお、node-mecabは、

C++で書かれたnode.js用のMeCabバインディング

ということです。

では、node.jsをインストールするところからはじめます。node.jsのインストールですが、今回は、http://nodejs.org/dist から、最新を取ってきて、それを入れました。

$./configure
$ make
$ make install

で、問題なくインストールできました。はしょりすぎですが、このあたりは、インストール方法が各所にありますので、そちらを参考にしてみてください。

いよいよ、node-mecabです。ここで、丁寧な解説サイトなんかですと、mecabあたりの解説とインストール方法などを記述するんでしょうが、めんどくさいので、適当にぐぐってください。(手抜きですみません)

node-mecabは、githubにありますので、

$ git clone https://github.com/KOBA789/node-mecab.git
$ cd node-mecab
$ node-waf configure build

で、実行準備完了したので、実行!

$ node test.js
node.js:66
      throw e; // process.nextTick error, or 'error' event on first tick
      ^
Error: libmecab.so.1: cannot open shared object file: No such file or directory
    at Object..node (node.js:371:15)
    at Module.load (node.js:288:27)
    at loadModule (node.js:260:14)
    at require (node.js:300:16)
    at Object.<anonymous> (/home/ykot/node-mecab/test.js:1:75)
    at Module._compile (node.js:357:32)
    at Object..js (node.js:365:14)
    at Module.load (node.js:288:27)
    at Array.<anonymous> (node.js:379:26)
    at EventEmitter._tickCallback (node.js:58:24)

と、エラーが出ました。libmecab.so.1が読み込めないとの事なので、

$ export LD_LIBRARY_PATH=/usr/local/lib
$ node test.js
すもも  名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も      助詞,係助詞,*,*,*,*,も,モ,モ
もも    名詞,一般,*,*,*,*,もも,モモ,モモ
も      助詞,係助詞,*,*,*,*,も,モ,モ
もも    名詞,一般,*,*,*,*,もも,モモ,モモ
の      助詞,連体化,*,*,*,*,の,ノ,ノ
うち    名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS

すもも も もも も もも の うち

簡単ですね。;-)

参考: