はじめに
Node.jsで日本語をカタカナ・ひらがな・ローマ字に変換したい場合、まずKuroshiroというライブラリに行き当たります。
このKuroshiroを使ってみたのでメモとして残しておきます。
公式サイト:
kuroshiro
Japanese language library for converting Japanese sentence to Hiragana, Katakana or Romaji with furigana and okurigana modes supported.
npm
kuroshiro
kuroshiro is a Japanese language library for converting Japanese sentence to Hiragana, Katakana or Romaji with furigana and okurigana modes supported.. Latest v...
アナライザーとしては「Kuromoji」「Mecab」「Yahoo」が用意されています。
しかし、Mecabはメモリー使用率が高く重い。Yahooは動作しませんでした。長い間メンテナンスされていないので仕方ないところはあります。
そのため、よってKuromojiの使い方を残しておきます。
使い方
インストール
npm install kuroshiro
npm install kuroshiro-analyzer-kuromoji
コード
コードは次のようになります。
公式のマニュアルとは違いasync-awaitを使用しています。
const Kuroshiro = require("kuroshiro")
const kuroshiro_kuromoji = new Kuroshiro();
const KuromojiAnalyzer = require("kuroshiro-analyzer-kuromoji");
kuroshiro_kuromoji.init(new KuromojiAnalyzer());
async function kanji2yomi_kuroshiro(text) {
result = await kuroshiro_kuromoji.convert(text, { to: "hiragana" });
//console.log(result)
return (result)
}
Expressの場合は次のように使えばいいです。
router.get('/kanji2yomi_kuroshiro', async function (req, res, next) {
res.send(await kanji2yomi_kuroshiro(req.query.text))
});
品質について
少し試した限り、あまりKuromojiの品質は高くありませんでした。
固有名詞に弱く、「筑波山」を「つくばやま」にしたりします。
このあたりは、Yahooの方が品質は高いと思います。
より品質を求める場合はMecab方式で固有名詞の辞書を用意した方がいいでしょう。
コメント