Mecab と比較したベンチマーク結果はこちら。 形態素 N-gram コーパス から抽出した、ひらがな + 漢字の頻出成語 (ex: 走る, 赤い などの原形品詞) を対象とし、11,730 件を読み推定させています。 Mecab より早いことは自明なので、オーダーだけ見れば良いです。
ライブラリ | 速度 | 精度 |
---|---|---|
yomi-dict | 20.967ms | 99.92% |
Mecab (IPADic) | 148,606ms | 99.94% |
だいたい 7,000 倍くらい違うけど、思ったよりは Mecab も早いんだなと思いました。 形態素解析器の中で最速と言われるだけのことはあります。 yomi-dict の読みミスは単純に登録されているかどうかです。 登録されてなくても仕方ないかな、というものしかありません。 Mecab は読み登録されていない成語をすべて正しく読めていましたが、多少の推定ミスがありました。 「ず」と「づ」を間違えたり、変な間違いを結構してます。
上記の結果は IPADic で読み推定させており、ずるいと感じる人もいるかも知れません。 もちろん mecab-ipadic-NEologd などを利用してもいいと思います。 ただ上記の結果で重要だと思うのは、頻出成語の推定ならパターンマッチングでほぼ完璧に処理でき、多少のエラー処理で対処できるということだと思います。 このほんのわずかな手間と比較して、mecab-ipadic-NEologd はメモリ使用量が大きすぎる (1.2GB) のですよね。 一方の yomi-dict は 14MB しかメモリを消費しません。
ところで語句の読みではなく、読みに対応する語句を取得したい場合もあると思います。 IME があれば困ることは少ないと考えられるので、homonym-ja (同音異義語の辞書) も作ってみました。 こちらも O(1) で検索できる省メモリな辞書になっています。 「ぶっちゃけ同音異義語ってどれくらいあるんよ?」という疑問を持って作ってみましたが、想像以上に多かった。Web版 もあります。
追記: ついでに spelling-variants-ja (表記ゆれの辞書) も作ってみました (Web版)。
0 件のコメント:
コメントを投稿