Node.js でテキスト解析

Hachioji.pm #13 で話した、京都テキスト解析ツールキット - KyTeaを Node.js から利用する C++ Addon をドキュメントを整理したうえでGithubに上げました。

GitHub - hideo55/node-kytea: Node.js binding of KyTea

KyTeaとは?

テキストの単語分割(分かち書き)、品詞推定、読み推定を行うことができるテキスト解析ツールです。類似のツールではMeCabが有名ですね。MeCabとKyTeaの違い等はKyTea v.s. MeCab - 形態素解析における点予測対系列ラベリング,または品詞の要不要など - Togetterが参考になると思います。

使い方

//Addonを読み込み
var KyTea = require('kytea').KyTea;
var path = '/path/to/model';
//オブジェクト作成&モデル読み込み
var kt = new KyTea(path, function(err){
  if(err) throw err;
  //タグ推定
  kytea.getTags("...", function(err,words){
    for(var i =0; i< words.length;i++){
      var surf = words[i].surf;//単語表記
      var posTag = words[i].tags[0][0];
      var pronTag = words[i].tags[1][0];
      ...
    }
  });
});

kytea.getTags()でタグ推定を行う例です。コールバック関数にはエラーオブジェクトと配列が引数として渡されます。

配列の中身は以下のようになっています。

    [
    	{
    		surf: '私', // 単語表記
    		tags: [
                  [//品詞
                    ['代名詞', 3.6951145482572487] //品詞タグと信頼度
    		  ],
    		  [ //読み
                    ['わたし', 2.3796118434353652] //読みタグと信頼度
    		  ]
                ]
    	},
        {
           ...
        }
    ]

詳しくはドキュメントをご覧下さい。