mecab-async

Asynchronous japanese morphological analyzer using MeCab.

Asynchronous japanese morphological analyser using MeCab

非同期で MeCab で結果をパースする Node.js 用モジュールです。

$ npm install mecab-async

以下のようにコールバック経由で解析結果を取得します。

    var MeCab = new require('mecab-async')
      , mecab = new MeCab()
    ;
    mecab.parse('いつもニコニコあなたの隣に這い寄る混沌ニャルラトホテプです!', function(errresult) {
        if (err) throw err;
        console.log(result);
    });

結果:

[ [ 'いつも', '副詞', '一般', '*', '*', '*', '*', 'いつも', 'イツモ', 'イツモ' ],
  [ 'ニコニコ', '副詞', '助詞類接続', '*', '*', '*', '*', 'ニコニコ', 'ニコニコ', 'ニコニコ' ],
  [ 'あなた', '名詞', '代名詞', '一般', '*', '*', '*', 'あなた', 'アナタ', 'アナタ' ],
  [ 'の', '助詞', '連体化', '*', '*', '*', '*', 'の', 'ノ', 'ノ' ],
  [ '隣', '名詞', '一般', '*', '*', '*', '*', '隣', 'トナリ', 'トナリ' ],
  [ 'に', '助詞', '格助詞', '一般', '*', '*', '*', 'に', 'ニ', 'ニ' ],
  [ '這い', '動詞', '自立', '*', '*', '五段・ワ行促音便', '連用形', '這う', 'ハイ', 'ハイ' ],
  [ '寄る', '動詞', '自立', '*', '*', '五段・ラ行', '基本形', '寄る', 'ヨル', 'ヨル' ],
  [ '混沌', '名詞', '一般', '*', '*', '*', '*', '混沌', 'コントン', 'コントン' ],
  [ 'ニャルラトホテプ', '名詞', '一般', '*', '*', '*', '*', '*' ],
  [ 'です', '助動詞', '*', '*', '*', '特殊・デス', '基本形', 'です', 'デス', 'デス' ],
  [ '!', '記号', '一般', '*', '*', '*', '*', '!', '!', '!' ] ]

わかち書きもできます。

    var MeCab = new require('mecab-async')
      , mecab = new MeCab()
    ;
    mecab.wakachi('いつもニコニコあなたの隣に這い寄る混沌ニャルラトホテプです!', function(errresult) {
        if (err) throw err;
        console.log(result);
    });

結果:

[ 'いつも',
  'ニコニコ',
  'あなた',
  'の',
  '隣',
  'に',
  '這い',
  '寄る',
  '混沌',
  'ニャルラトホテプ',
  'です',
  '!' ]

同期版として parseSync および wakachiSync を使用することもできます。

実行される mecab コマンドのパスを明示的に指定したかったり、より詳細なオプションを指定したかったりする場合、 シェルコマンドをカスタマイズして使うこともできます。

    var MeCab = new require('mecab-async')
      , mecab = new MeCab()
    ;
    mecab.command = '/usr/local/bin/mecab -E "<改行>\\n"';   // EOSを <改行> と表示 

その他詳細は Twitter:@hecomi へご質問いただくか、http://d.hatena.ne.jp/hecomi/ をご参照下さい。