misima バグ

misima のバグを見つけた。

ある Web サイトを見ていて,「かわゆらしい子」という言葉を前にちょっと考え込んだ。「かわいらしい子」じゃないのか?古語に「かはゆし」があるので,間違いとはいえないと納得する。広辞苑第二版を引いてみると「かはゆらし」がある。形容詞から語尾の「い」を取り去って「らしい」の付く形を misima が考慮していないことにピンときた。misima に「かわゆらしい子」を食わせてみると,果たして「かはゆゆらしひ子」ととんまな変換結果を吐き出した。な,なにどもってるんだ。

misima のデバッグ機能で茶筌の解析結果と変換過程トレースを確認する。たしかに「かわゆい」のような形容詞において「かわゆ」が単語として切り出される場合を見落としていた。通常,形容詞は「かわゆく(思う)」「かわゆい(ヤツ)」のように語末に「く」「い」などが付く。設計では,旧仮名辞書形容詞終止形から末尾の一文字「い」をとって,対象語出現形に,末尾一文字を残して重ね合わせればよいはずだった。ところが今回,「かわゆ」なんかで切り出されると「かわ」の部分に「かはゆ」が収まって「かはゆゆ」となってしまったのだった。設計不良。misima の旧仮名変換ロジックに手を入れたのは久しぶり。問題箇所を特定し対策を施すのに手間取ってしまった。

しかしプログラムの対策だけでは不十分で,形態素解析ソフト茶筌の辞書にも「かわゆらしい」という語を登録しなければならなかった。そうしないと茶筌は,なんでか,「かわゆらしい子」を,「かわゆ<形容詞/かわゆい/ガル接続形」「ら<名詞/ら(「ヤツら」の「ら」)」「しい<動詞/しいる/連用形」「子<名詞/子」と解釈してくれるんである。そうすると misima は「しい」の部分を「しひ」に旧仮名変換してしまう。辞書に登録すれば茶筌は「かわゆらしい<形容詞/かわゆらしい/基本形」「子<名詞/子」と解析し,misima の旧仮名変換も正しい結果を出力する。

misima のメンテナンスはこんなふうに面倒なのだ。本,Web サイト記事を読んでいると言葉遣いが気になってしようがない。変わった表現に出くわすと misima で変換してみたくなってしまう。あきらかな日本語誤りは別だけど。いったんプログラムを書いて公開してしまうとやっかいなものである。