『日本語入力を支える技術』――複雑な、あまりに複雑な“日本語入力”の解体新書
|
日本語入力を支える技術 ―変わり続けるコンピュータと言葉の世界
徳永拓之(著) ISBN-10: 4774149934 |
■まるで空気のようなシステム
この書評を読んでいるあなたが感想をTwitterに書きこもうとする時、日中の仕事でメールを書く時、友人とSkypeでチャットする時、Excel方眼紙に業務システムの設計書を作っている時。
これらすべての場面で、共通して使用するソフトウェアがある。日本語入力システムだ。
日本人としてコンピュータ上で日本語を扱う場合、このソフトウェアを利用せずに日本語を入力することはあり得ない。しかし、日本語入力システムはその重要性に反して、利用者のほとんどが意識しない。まるで、空気のようなシステムである。
だが、空気とあなどるなかれ。日本語入力システムには、実は計算機科学の技術の粋が結集されている。
■複雑な日本語処理のすべてをここに書き残した
本書は、日本特有のソフトウェアの中でも、最も重要性と難易度が高いシステムである日本語入力システムが、どのように設計されて動作しているのかを、実に読みやすく書いた良書だ。
黎明期から現在に至る日本語入力システムの成り立ち、日本語入力システムの概観、それを実現するために必要なデータ構造の基本的な考え方や言語処理、機械学習のアルゴリズムなど、日本語入力システムのすべてが、本書には書かれている。
■メモリは限りなく少なく、しかし機能は膨大
日本語入力システムに求められる機能は多い。
日本語入力システムは、文字入力を必要とするあらゆるソフトウェアと連動して動作する。「入力」と「変換」という2つの機能を持ち、変換候補の一覧をどこに描画するか、という視覚的要素も必要だ。
変換誤りに対する訂正の手段をどのように提供するか。仮にクラッシュした場合、他のアプリケーションを巻き込まないようにどう設計すべきか――。こうした高機能と変換に必要となる膨大なデータ量を要求されるにもかかわらず、空気のような存在であるがゆえに、メモリ量はできるだけ小さくなければならない。
見た目のシンプルさや空気感と対照的に、日本語入力システムに求められる要件は複雑で、ソフトウェアとして高難度なものばかりだ。さらに、日本語は文法が複雑で、かつ扱う文字量の多さも半端なく多いため、さらに複雑さに拍車をかけることになる。
■難易度の高い話題を分かりやすく
データ構造やアルゴリズムに関する章では、数学的な知識や情報処理についての素養が求められる場面もあるが、巻末に付録で説明されているので心配することはない。随所に登場する専門用語も、すべて初出時に定義されている。内容の高度さに比べると本書は驚くほど読みやすく、きちんと時間をかけて読めば誰でもこの本の内容を理解できるだろう。
第3章以降のデータ構造、アルゴリズムの解説は難しいが、第2章の「日本語入力システムの概観」まではとても分かりやすく、日本語入力システムのエッセンスのすべてが書かれている。興味のある人は、第2章までを読むだけでも価値はあると思う。
これほど身近に存在するにもかかわらず、その詳細を知る人はほとんどいないであろう日本語入力システム。その深淵の一端を、本書より感じとってもらいたい。
これまではキーボードからの入力のみであった日本語入力システムは、スマートフォンなどで使用されるタッチパネルや音声入力など、一層の進化が期待されている。今、日本語入力について勉強してみるのもいいだろう。
(『雲(クラウド)の隙間から青空が見えた』コラムニスト
粕谷大輔)