かな漢字変換エンジン開発で大事なのはデータと API

id:tkng さんが、現状の ChaIME について紹介して、これからの開発研究体制について話したい、ということで、京大に集まってミーティング。京大の森さんたちが作っている変換エンジン KAGAMI も9月くらいから本格稼働している(少なくとも森さんは常用している)そうで、データやサーバ、ライブラリなど共通化できるところは共通化しましょう、というわけで、総勢5人でお昼から夕食(学生さんは free pizza と free beer (笑))を挟んで11時近くまで、スライド使ったりデモしたりコード見たり雑談したり、いろいろ。

今後の方針については、tkng さんがものすごくがんばってくれてメモリ・ディスク使用量、処理時間ともに1/25くらいになって使えるようになってきた(現在 tkng さんと自分の2人が常用している)実用的にしたいと思う反面、実用的にするためにごちゃごちゃした変更を加えて読みにくくなったり研究に使いにくくなったりするのは避けたいなとも思う。どこかで汚い処理をしなければならないのであれば、そこはライブラリとかサーバの部分に閉じ込めておいて、クライアント作る人は見なくてもいいようにする、とか……(かな漢字変換のエンジン開発者がもっと増えてほしい)

いちばん大事なのはデータと API (サーバの場合プロトコル)かなぁ。辞書やコーパス(変換ログ含む)は一朝一夕にできるものではないし、API も一度作るとクライアントがそれ前提で作られるので容易に変えにくい。昔だったら Canna サーバプロトコル。最近の人は知らないかもしれないが、ATOK や VJE や WnnCanna サーバのふりをさせる esecanna というソフトもあった。そうすると Canna プロトコルを喋れるクライアントが一気に使えるようになるので、本来ならクライアントxサーバ(変換エンジン)分の開発をしないといけないところが、クライアント+サーバ分の開発だけで済むようになり、格段に開発の手間が少なくなる。現在 ChaIME は libanthy を乗っ取って変換しているのだが、こうすることによってクライアントは既存の Anthy を使えるクライアントが使えるようになるので、非常に楽である。(足りない API や不十分な API もあるので、そこをどうするかが今後の課題ではあるが)

あとは開発者とドキュメンテーションソースコードも大事なのだが、エンジニア系の人は開発にそんなに時間を割けない(学生のうちはいいのだが、学生でなくなると時間もなくなる)ので、引き継ぎが簡単だったり、読めばすぐ開発できるくらいの状態になっているのが理想。論文書く動機としては、論文であれば30年前のものであっても簡単に手に入る(たとえば情報処理学会の研究会の原稿はウェブ経由で誰でも無料で PDF がダウンロードできる)のに、オープンソースのソフトウェアのアルゴリズムを解説したドキュメントはほとんどない。ソースを読め、ということなのかもしれないが、「使える」ようにするためにいろいろしているソフトウェアだと、読むのに大変苦労するし……(その割にそんなに変換の精度はよくないし)。この20年の理論面での成果があまり反映されていないのが根本の問題だと思うので、これは今後自然言語処理業界の一員として、改善していきたいものだと考えている。