ユニバーサルなテキスト入力
連文節変換システムの憂鬱
パソコンで日本語入力を行なうときは連文節変換方式にもとづく仮名漢字変換システムを使うのが一般的になっています。仮名漢字変換システムは東芝で天野真家氏らが1978年にはじめてワープロを開発したときに導入されたもので、それ以降多くのシステムの研究開発が続けられてきており、最近でも「Google日本語入力」のように、新しいアルゴリズムを使った連文節仮名漢字変換システムの開発が続いています。Google日本語入力システムでは、大規模な文例データ(コーパス)に基づいた自然言語処理技術や高度な圧縮技術を駆使して効率の良い入力が可能になっています。 パソコンの創世記から様々な種類の日本語入力システムが提案されてきた結果、現在のパソコンでは連文節変換システムが主流になっているわけですが、パソコン以外のユビキタスコンピューティング環境でテキスト入力を行なう機会が増えている現在、連文節変換システムは日本語入力に最適な手法とはいえません。まず、連文節変換システムでは入力したいテキストの読みをすべて入力する必要があるのが問題です。「品川駅」とローマ字で入力する場合は「shinagawaeki」と入力しなければなりません。「shinag」まで入力した時点で、考えられる入力単語は「品川」「品切れ」ぐらいものですから、「awaeki」を入力するのはほとんど無駄な操作です。また、入力ミスが全く許されないのも問題です。ほとんどの連文節変換システムでは、キー入力に少しでも誤りがあると正しく変換することができません。「正しく変換することができません」と入力するためには、「tadashikuhenkansurukotogadekimasen」と間違えずに入力する必要がありますが、キーボード操作に習熟していないとこのような長い文字列を間違えずに入力することはできませんし、キーボードが使えない環境でこのような文字列を入力するのはかなりの苦痛です。また、正しく読みを入力すれば常に正しい文字列に変換してくれるとは限りません。「かいとうする」という入力文字列は「回答する」「解答する」「解凍する」のどれに変換すべきかわかりませんし、「きょうはいしゃにいった」という入力文字列は「今日は医者に行った」「今日歯医者に行った」のどちらの意味なのかもわかりません。このように、入力誤りの訂正操作や変換結果の修正操作が必ず必要になるので、変換アルゴリズムをいくら改良しても変換効率には限界があります。
連文節変換方式はユビキタスコンピューティング環境でユニバーサルに利用できないという大きな問題があります。両手でキーボードを操作することができない環境では効率的に文字を入力できないので長い文字列を入力するのは苦痛ですし、正確に文字入力するのは大変です。連文節変換方式はパソコン上ではそれなりに便利ですが、ユビキタス時代に適したユニバーサルな日本語入力手法とはいえません。将来のユビキタス環境では、必要なキーや操作の数を最小化して目的の文字列を入力する手法が必要になります。また、様々な形態の機器を利用することが多くなるでしょうから、単純で共通に使える辞書や変換方式を利用することが望ましいと考えられます。
ユビキタスでユニバーサルな日本語入力
モバイル環境で誰もが簡単にテキスト入力を行なえるようにするため、私は1996年ごろから携帯電話などで使える予測入力システム「POBox」を開発し、これに類するシステムが現在ほとんどの携帯電話で利用できるようになっています。また、同様の考え方にもとづく入力手法は現在ほとんどのスマートフォンでも利用されており、予測入力は携帯電話やスマートフォンでの標準的な入力手法になっています。予測入力システムとは、ユーザの操作をシステムが解析することによってユーザが次に入力しようとする単語を予測し、選択候補として提示するシステムです。たとえばユーザが「お」という文字を入力したとき、ユーザは「思う」「おはよう」のような文字列を入力しようとしてるのだと判断し、このような候補単語を表示して選択可能にします。ペン操作のような、キー入力以外の操作を予測に利用することもできます。 http://gyazo.com/4b8cd28e0dbf19c2dbb0d4faf5dbff10.png
2000年にauから発売されたC406SのPOBox
予測入力システムによって人間のテキスト入力操作の手間を減らすことができるので、携帯電話やスマートフォンだけでなくユニバーサルに利用することができます。私は現在、同様の考え方にもとづいた入力手法をMac、Android、ブラウザなど様々な場所で利用しています。アルゴリズムが単純なので、様々な機器上で簡単に実装できますし、辞書をWeb上で編集して共通に利用することができます。
http://gyazo.com/21c7d0ce680547fa4a16ad8d8c4eb528.png
Gyaim
GyaimはMac上で動作するシンプルな予測型日本語入力システムです。Macでは、標準装備の「ことえり}」や市販の「ATOK」のような連文節変換システムが広く使われていますが、Gyaimは連文節変換を行なわず、文字を1文字入力するたびに変換候補を辞書から検索してリストするという方法をとっており、必要な単語が出たところで入力をやめて候補を選ぶことができるようになっています。たとえば「shinag」と入力した段階で「品川」を選んで入力することができます。 GyaimはMacRubyというスクリプト言語で実装されています。MacRubyは汎用スクリプト言語RubyをMac用に拡張したシステムで、Rubyのすべての機能を利用できることに加え、全てのMacのライブラリを利用することができます。Macのアプリケーション開発はObjective-Cを利用するのが普通ですが、Rubyは文字列処理を簡単に行なうことができるので、Gyaimはわずか数百行で実装されています。 http://gyazo.com/9f30f6665d65bc6cfa440b5a5c0ecf1c.png
Slime
SlimeはAndroid用の日本語入力システムです。ソフトウェアはGoogle Playからダウンロードでき、ソースコードはGitHubで公開しています。日本語の読みは五十音で奇麗に表現できるのに、携帯電話やスマートフォンの日本語キーボードはキー配置が3×3になっていたり上下左右の4方向で5種類の母音を表現したりするのが不自然だと感じられるので、Slimeではできるだけ「5」を基本にしたキー配列を利用しています。 Slimeでは五十音表の「行」を表現する10個のキーが常に表示されています。「か」にタッチしてから指をスライドして「か」「き」「く」のようなメニューを表示することによって「か」や「こ」のような文字を選んで入力することができますが、メニューが表示される前に指を離すと、その行の文字のいずれか(「か」〜「こ」、「が」〜「ご」のいずれか)を指定したのと同じことになります。このため、「た」「あ」「か」を連続して高速にタッチすると、「た行の文字」「あ行の文字」「か行の文字」のような読みをもつ「東京」「動画」のような単語が候補として表示されます。普通の入力システムで「とうきょう」とか「じょうきょう」のような読みを入力するときは濁点や拗音などの指定が面倒ですが、Slimeでは子音キーを素早くタップするだけでこのような単語を入力できます。SlimeはJavaで実装されており、見かけはGyaimと全く異なりますが、辞書も変換アルゴリズムもGyaimと同じものを利用しています。
http://gyazo.com/e7e4691e4657edf918f955ed309c97a0.png
「さ」「や」「あ」「か」をタップして「状況」を入力
自分のパソコンに特殊な単語を登録してもスマートフォンで利用することはできませんし、公共のデジタルサイネージで使うこともできません。しかしクラウド上に保存された変換辞書を利用できるようになっていれば、単語登録は一度だけで良いはずです。様々な機器で共通に使える入力システムを利用できれば無駄な手間は不要になるでしょう。どこでも簡単に個人認証(c.f. ユビキタス時代の認証技術)を行なうことができれば、自分用にカスタマイズした辞書や入力手法をどこでも使えるようになるでしょう。