N文節最長一致とかな漢字変換

uimメーリングリストで知ったのだが、最近 Anthy のパッチのメンテナンスを続けてらっしゃる G-HAL さんがAnthy の変換アルゴリズムを N 文節最長一致にするパッチを公開したそうだ。

結論のところだけ引用してしまうが、

プログラムの設定値や depgraph やシステム辞書の頻度情報などの、 手作業でのパラメータ調整で変換結果を最高にしようなんて無理、無謀。 オリジナルの Anthy にて、 「手作業で設定するヒューリスティックのパラメータ調整」 と言う方向性を捨てて、 「コーパスからパラメータを自動生成する」 と言う方向性を選んだのは、 至極真っ当。 ただ、不適切だったのは、 公募したコーパスが十分な品質と量になる事を前提とした点と、 個人の文体に合わせた調整機構(学習機能?)が無いと言う運用上の点。

とのことで、全くその通りだと思う。

新聞数年〜十数年分のコーパスはさすがに必要ないと思うし(たとえば自然言語処理業界でよく使われている毎日新聞コーパス、いわゆる京大コーパス(京都テキストコーパス)は95年1月1日から17日までの全記事、約2万文、1月から12月までの社説記事、約2万文、計約4万文を対象としたコーパスであり、せいぜい新聞記事1ヶ月分程度の分量である)、Anthy に含まれるコーパスも1万文近くは入っているようだが、品質が全く統制取れていないので、それがもっと問題なのではないか。手作業でパラメータ調整するのも手間がかかるが、コーパスもただ集めればいいというものではないので、パラメータチューニングがコーパスメンテナンスに変わったと考えれば、コーパスのメンテナンスコストは依然としてかかるわけで、メンテナンスフリーになるわけではない。(もっとも、手作業のパラメータ調整よりは遙かに楽だとは思う)

個人の文体に合わせた調整機構というのも、SKK があれだけ広く使われているのは、きっと個人がよく使う単語というのは数千個で固定されていて、SKK はその単語をうまくピックアップできるからではないかと思う。(SKK同音異義語の変換の際は「一番最後に変換した単語」の順番に提示するが、このヒューリスティックは個々人の脳内の単語モデルをけっこううまく近似しているためにうまくいくのだろう) 検索エンジンでもパーソナライゼーションといって検索結果を個々人に応じて変化させたりする研究は盛んだが、かな漢字変換の場合は特にパーソナライズに失敗すれば怒られる分野なのではないかと思われる。(検索エンジンはまだパーソナライズに失敗しても怒られない領域のようだが)

とはいえ、どんな入力が入ってくるか分からない場合、機械学習・統計的手法を用いて学習したデータと全く異なるデータが入ってくるリスクを取るよりは、ルールベースでヒューリスティックに処理してそれなりに頑健に動くほうがよいのかもしれない。