鈍足ランナーのIT日記

走るのが好きな5流のITエンジニアのブログ。

趣味の範囲は広いけど、どれも中途半端なクソブロガー楽しめるWebアプリを作ってあっと言わせたい。サーバーサイドPerl(Mojolicious)、クライアントサイドVue.js。Arduinoにも触手を伸ばす予定。

地名や人名などが当て字かどうか判断したい場合のモジュールを作る

最近、日本語処理に目覚めた訳ではないけれど、親父ギャクレコメンデーションモジュールの次は漢字の読み候補を出してくれるモジュールの制作した。
kakasiを利用。当て字かどうか判断したい場合に使えると思います。

kakasiには漢字1文字1文字の読みを出力する-yオプションというのもがあり、
それを利用して、出力された結果を組み合わせして返すというものです。

kakasiコマンドを呼ぶ部分は、kakasi.jsというモジュールを流用し、その後の編集部分を加えた感じです。

以下のように使います。

var kk = new Kakasi({
    debug: false
});
kk.transliterate( "歌舞伎町" )
.then(results => {
    console.log("----------\n%s\n----------",results);
})
.catch(error => {
    console.error(error);
});

// results in yomi array うたまいきまち,かまいきまち,うたぶきまち,かぶきまち,うたまいぎまち,かまいぎまち,うたぶぎまち,かぶぎまち,うたまいわざまち,かまいわざまち,うたぶわざまち,かぶわざまち,うたまいきちょう,かまいきちょう,うたぶきちょう,かぶきちょう,うたまいぎちょう,かまいぎちょう,うたぶぎちょう,かぶぎちょう,うたまいわざちょう,かまいわざちょう,うたぶわざちょう,かぶわざちょう

参考にしたモジュール

漢字の読みを取得するkakasi.js

github.com

文字種の判定はnihongo.jsを使う

www.npmjs.com

文字種の変換はMoji.js

github.com

完成品

github.com