我々が日頃使っている IME(Input Method Editor)は、かな漢字変換エンジンとしての検索性能は日々向上している。しかしながら、キーボードから受け取ったかな文字列を検索クエリにして、辞書に検索をかけるという処理系のデザインは一般的に変化していない。ハードウェアに目を向けてみれば、ウェアラブルデバイスとしてスマートフォンを持ち歩くことが一般的になっている。このスマートフォンは、様々なセンサーを搭載しているものが一般的である。スマートフォンのセンサーから取得したデータを検索クエリとして、入力候補を検索することが出来れば、コンテクスト・アウェアネスを実現した、タッチ入力を必要としない入力システムが実現できる。
本研究における主要な計測データとなりうるのは、
であり、補助的に、
を計測することで、手法の有用性を測定する。このため、本研究の手法を導入したシステムと、一般的な日本語入力システムの両方を、同時にAndroid端末上に表示させ、ユーザに選択させるシステムを実装した。
上図における、二段の変換候補のうち、上段のものはコンテクストデータをクエリにしたものであり、下段のものはキーボードからのかな入力をクエリにしたものである。このシステムが送信する、統計情報を収集するシステムを実装し、上述した指標値の測定を図った。
Android OSにおける入力システムの実装では、イベントとして、起動時、キータッチ時、候補選択/入力確定時、終了時という 4 つのイベントのライフサイクルを設計した[図1]。このうち、 候補選択/入力確定時において、常にその時点でのコンテクストデータを取得し 、 入力が確定した単語とのセットにして、クラウド上に送信し、集計を行っている。 同時に、起動時、キータッチ時、候補選択/入力確定時のそれぞれに、クラウド上に用意したサーバに対して、その時点でのコンテクストデータを送信し、オンライン分類器が示す最も適切 な単語をリクエストする。 これによって、現在のコンテクストにおける、似たコンテクストに位置していたユーザ の入力履歴データをサジェストすることが出来る。 たとえば、一度も行ったことのない駅に降りた時でも、その駅を日常的に使用し ているユーザの履歴から、その時間帯でその駅における頻出語を推薦したり、 たとえば、同じ店の中にいる他のユーザの入力を取得することで、場をとりまくホットワードを推薦する、といったことが実現できると考えられた。
図 1: Android OS における IME のライフサイクル
大きく2種類の単語検索エンジンを実装した。一つは、予め定められたルールに基づいて、特定のコンテクストにおいて、特定の単語を返すエンジン。もう一つは、コンテクストごとに機械学習を行い、類似するコンテクストにおいて頻繁に入力されている単語を導出する、協調フィルタリングエンジンである。
構成:Node.js を基本的なサーバアプリケーションとして、Jubatus や MongoDB と連携する構成になっている。
図 4: サーバー構成図
本期間中には上述したシステムの構築を行った。今後、実ユーザに対する評価実験を行うことで、本手法の有用度を測定し、各種論文や学会などに反映させていく予定である。