node.js で、mecabを使う方法
すこし時間が出来たので、node.jsを触ってみました。
恥ずかしながら、全然知らなかったので、どんなものかも分からなかったのですが、なかなか面白い技術ですね。だいぶ前から流行っているようで、完全に乗遅れてます。
その分、先人たちの大量なる資料のおかげで、うっすらと、そのすごさが分かり始めたところです。
なんか作ろうかなと思って、mecabあたりをターゲットにと考えてたのですが、すでに id:koba789 氏がnode-mecab (GitHub - KOBA789/node-mecab: C++で書かれたnode.js用のMeCabバインディング) なるものを作成していましたので、それを動かす所までのメモをまとめておこうと思います。
なお、node-mecabは、
ということです。
では、node.jsをインストールするところからはじめます。node.jsのインストールですが、今回は、http://nodejs.org/dist から、最新を取ってきて、それを入れました。
$./configure $ make $ make install
で、問題なくインストールできました。はしょりすぎですが、このあたりは、インストール方法が各所にありますので、そちらを参考にしてみてください。
いよいよ、node-mecabです。ここで、丁寧な解説サイトなんかですと、mecabあたりの解説とインストール方法などを記述するんでしょうが、めんどくさいので、適当にぐぐってください。(手抜きですみません)
$ 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 すもも も もも も もも の うち
簡単ですね。;-)
参考: