(57)【要約】【課題】ユーザが文字入力を行う際の状況に適合した入力候補を提示することができる情報処理装置を提供する。【解決手段】予測部１０４は、文字入力によって入力される文字列を少なくとも１つ予測する。記憶装置１０３は、文字列と、その文字列が使用される状況を表す状況情報とを関連付けて記憶する。判定部１１２は、センサ１０２が検知した文字入力を受け付けた際の状況と、予測部１０４により予測された文字列に関連付けられた状況とが類似するかを判定する。表示制御部１１０は、予測部１０４により予測された少なくとも１つの文字列のうち、判定部１１２によって、文字入力を受け付けた際の状況と類似すると判定された状況の情報と関連付けて記憶されている文字列を、候補として画面に表示させる。【選択図】図１
2015045973.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ操作による文字入力に応じて、入力される文字列の候補を提示する情報処理装置であって、
前記文字入力によって入力される文字列を少なくとも１つ予測する予測手段と、
文字列と、その文字列が使用される状況を表す状況情報とを関連付けて記憶する記憶手段と、
前記文字入力を受け付けた際の状況と、前記記憶手段に、前記予測手段に予測された文字列に関連付けられた状況とが類似するかを判定する判定手段と、
前記予測手段に予測された少なくとも１つの文字列のうち、前記判定手段によって、前記文字入力を受け付けた際の状況と類似すると判定された状況の情報と関連付けて記憶されている文字列を、前記候補として画面に表示させる表示制御手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記記憶手段には、前記文字列が使用される状況を表す状況情報として、前記文字入力が受け付けられたときに前記情報処理装置が存在する状況を示す情報を検知する少なくとも１つのセンサの種別及び当該センサが検出する情報の所定の値が記録されていることを特徴とする、
請求項１に記載の情報処理装置。
【請求項３】
前記画面に表示された、前記候補である文字列の中から、一の文字列の指定を受け付ける受付手段と、
前記指定の受け付けを契機に、当該指定された文字列の状況情報に示された種別のセンサによる検知結果に基づいて、前記記憶手段に記憶された情報の更新を行う登録手段を、さらに有することを特徴とする、
請求項２に記載の情報処理装置。
【請求項４】
前記登録手段は、前記入力された文字が前記センサの種別を表す情報と対応付けられた文字列であり、且つ、当該文字列が前記状況情報と関連付けられて前記記憶手段に登録されていない場合には、当該文字列に対応するセンサの種別と、前記センサ値として当該センサの検知結果を含んだ状況情報を生成し、生成した状況情報と当該文字列とを関連付けて前記記憶手段に登録することを特徴とする、
請求項３に記載の情報処理装置。
【請求項５】
前記センサは、前記文字入力が受け付けられたときに前記情報処理装置が存在する状況を示す情報として前記情報処理装置に作用する加速度を検知するものであり、
前記記憶手段には、前記文字列が使用される状況を表す状況情報として加速度の推移を表す情報が登録されており、
前記判定手段は、前記状況情報の加速度の推移により表される状況と、前記センサにより検知された加速度の推移により表される状況とが類似するかを判定することを特徴とする、
請求項２乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記センサは、前記文字入力が受け付けられたときに前記情報処理装置が存在する状況を示す情報として前記情報処理装置の位置を検知するものであり、
前記記憶手段には、前記文字列が使用される状況を表す状況情報として位置を表す情報が登録されており、
前記判定手段は、前記状況情報に示された位置と、前記センサにより検知された位置との差分の大きさに基づいて、両者が類似するかを判定することを特徴とする、
請求項２乃至４のいずれか１項に記載の情報処理装置。
【請求項７】
前記センサは、前記文字入力が受け付けられたときに前記情報処理装置が存在する状況を示す情報として前記情報処理装置の向きを表す方位、前記情報処理装置が存在する空間の温度、前記情報処理装置にかかる気圧の少なくとも一つを検知するものであり、
前記記憶手段には、前記文字列が使用される状況を表す状況情報として、前記センサの種別と共に方位、温度、気圧の少なくとも一つの情報が登録されており、
前記判定手段は、前記状況情報に示された方位、温度、気圧の内の一つあるいは２つ以上の組み合わせと、これに対応するセンサによる検知結果との差分を算出し、算出結果に基づいて、前記文字入力を受け付けた際の状況と、前記記憶手段に、前記予測手段に予測された文字列に関連付けられた状況とが類似するかを判定することを特徴とする、
請求項２乃至４のいずれか１項に記載の情報処理装置。
【請求項８】
前記判定手段は、前記算出結果と、前記センサの種別毎に設定された閾値とを比較することにより類似度を判定することを特徴とする、
請求項７に記載の情報処理装置。
【請求項９】
前記センサは、種別が異なる複数のセンサであり、
前記記憶手段には、前記文字列が使用される状況を表す状況情報として前記センサの種別に応じたセンサ値が登録されており、
前記判定手段は、前記状況情報に示された種別のセンサを前記情報処理装置が有する場合には、当該状況情報に示されたセンサ値と、当該状況情報に示された種別のセンサの検知結果との差分をそれぞれ算出し、算出結果に基づいて、前記文字入力を受け付けた際の状況と、前記記憶手段に、前記予測手段に予測された文字列に関連付けられた状況とが類似するかを判定することを特徴とする、
請求項２に記載の情報処理装置。
【請求項１０】
前記表示制御手段は、前記入力された文字列に対応する一又は複数の文字列を前記画面に表示させる場合に、前記判定手段により判定された類似度に応じて当該文字列の表示の可否を制御することを特徴とする、
請求項１乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記表示制御手段は、前記画面に表示できる文字列に制限がある場合には、当該制限を超えない範囲で前記類似度が高い順に入力候補として表示するように制御することを特徴とする、
請求項１０に記載の情報処理装置。
【請求項１２】
前記表示制御手段によって、前記文字列の候補が提示されてから、前記情報処理装置が存在する状況が変化したことを検知する変化検知手段をさらに有し、
前記表示制御手段は、前記変化検知手段によって検知された変化の後の状況に応じた文字列を、前記候補として、さらに前記画面に表示させることを特徴とする、
請求項１乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
ユーザ操作による文字入力に応じて、入力される文字列の候補を提示する情報処理装置の制御方法であって、
前記文字入力によって入力される文字列を少なくとも１つ予測する工程と、
文字列と、その文字列が使用される状況を表す状況情報とを関連付けて記憶する工程と、
前記文字入力を受け付けた際の状況と、前記予測された文字列に関連付けられた状況とが類似するかを判定する工程と、
前記予測された少なくとも１つの文字列のうち、前記文字入力を受け付けた際の状況と類似すると判定された状況の情報と関連付けて記憶されている文字列を、前記候補として画面に表示させる工程と、を有することを特徴とする、
情報処理装置の制御方法。
【請求項１４】
コンピュータを、ユーザ操作による文字入力に応じて、入力される文字列の候補を提示する情報処理装置として動作させるためのコンピュータプログラムであって、
前記コンピュータを、
前記文字入力によって入力される文字列を少なくとも１つ予測する予測手段、
文字列と、その文字列が使用される状況を表す状況情報とを関連付けて記憶する記憶手段、
前記文字入力を受け付けた際の状況と、前記記憶手段に、前記予測手段に予測された文字列に関連付けられた状況とが類似するかを判定する判定手段、
前記予測手段に予測された少なくとも１つの文字列のうち、前記判定手段によって、前記文字入力を受け付けた際の状況と類似すると判定された状況の情報と関連付けて記憶されている文字列を、前記候補として画面に表示させる表示制御手段、として機能させることを特徴とする、
コンピュータプログラム。
【請求項１５】
請求項１４に記載のコンピュータプログラムをコンピュータが読み取り可能に記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パーソナルコンピュータや携帯電話などに対して行う、文字入力の技術に関する。
【背景技術】
【０００２】
パーソナルコンピュータや携帯電話などにおいてユーザが文字入力を行う場合、いくつかの文字が入力された段階でその後の入力される文字列を予測し、予測された文字列を入力候補（あるいは変換候補とも呼ぶ）として提示する技術がある。ユーザは、提示された入力候補が適切なものであればこれを選択する。これにより、必ずしも文章を構成する文字全てを入力する必要がなくなり、ユーザは効率良く文章の作成を行うことができる。
【０００３】
しかしながら、いくつかの文字が入力された段階で行われる予測では、既に入力された文字を含んでいるというだけの意味のない入力候補が予測されてしまうことがある。この場合、結果としてユーザの所望する入力候補が適切に提示されないという問題がある。この問題に対して、例えば、入力候補が過去に選択された頻度（採用頻度）に応じて並び替えて提示したり、入力候補として各種センサの検知結果を提示したりする方法がある。
【０００４】
また、この問題に対し、特許文献１に開示された文字入力装置では、入力候補の中にセンサに対応する所定の単語が存在する場合、対応するセンサのデータ（検知結果）を入力候補の一つとして表示する。例えば、入力候補の中に「場所」という単語が存在する場合、ＧＰＳ（Global Positioning System）センサにより検知された現在位置の地名を表示する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１９３４５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示された文字入力装置では、センサによる検知結果を入力候補として表示させるためには、センサ毎に予め割り当てられている所定の単語が、辞書データベースから検索された入力候補の中に含まれている必要がある。例えば、センサの検知結果に基づいて具体的な地名を入力候補として予測させる場合には、ユーザは本来入力したい地名ではなく、「場所」、「現在地」などの単語を入力する必要がある。そのため、ユーザに対して不自然な文字入力を強いてしまうことになる。
また、この例でいえば、ＧＰＳセンサの検知結果を用いるための入力が、「場所」、「現在地」などといった、センサの検知結果を利用するために入力すべき所定の単語を覚えておかなければならない、という課題が残る。
【０００７】
本発明はこのような問題を解決し、ユーザが文字入力を行う際の状況に適合した入力候補を提示することができる情報処理装置を提供することを、主たる目的とする。
【課題を解決するための手段】
【０００８】
本発明の情報処理装置は、ユーザ操作による文字入力に応じて、入力される文字列の候補を提示する情報処理装置であって、前記文字入力によって入力される文字列を少なくとも１つ予測する予測手段と、文字列と、その文字列が使用される状況を表す状況情報とを関連付けて記憶する記憶手段と、前記文字入力を受け付けた際の状況と、前記記憶手段に、前記予測手段に予測された文字列に関連付けられた状況とが類似するかを判定する判定手段と、前記予測手段に予測された少なくとも１つの文字列のうち、前記判定手段によって、前記文字入力を受け付けた際の状況と類似すると判定された状況の情報と関連付けて記憶されている文字列を、前記候補として画面に表示させる表示制御手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ユーザが文字入力を行う際の状況に適合した入力候補を提示することができる。
【図面の簡単な説明】
【００１０】
【図１】（ａ）は、情報処理装置のハードウェア構成の一例を示す図。（ｂ）は、情報処理装置の機能構成の一例を示す図。
【図２】第１実施形態における情報処理装置の処理手順の一例を示すフローチャート。
【図３】第１実施形態における状況の類似度を判定する際の処理手順の一例を示すフローチャート。
【図４】第１実施形態における状況情報を含む辞書テーブルの一例を示す図。
【図５】表示部に表示される画面の一例を示す図。
【図６】入力された文字列をセンサの検知結果と関連付けて登録する際の処理手順の一例を示すフローチャート。
【図７】第２実施形態における状況情報を含む辞書テーブルの一例を示す図。
【図８】第３実施形態における情報処理装置の機能構成の一例を示す図。
【図９】ユーザの状況が変化した場合に、その変化に応じた入力候補を追加表示する際の処理手順の一例を示すフローチャート。
【図１０】（ａ）、（ｂ）は、入力候補を追加表示した画面の一例を示す図。
【図１１】（ａ）、（ｂ）は、修正候補を表示した画面の一例を示す図。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら実施形態を説明する。
【００１２】
［第１実施形態］
図１は、本実施形態に係る情報処理装置のハードウェア構成の一例（図１（ａ））と、情報処理装置の機能構成の一例（図１（ｂ））を示す図である。
図１（ａ）に示す情報処理装置１０１は、センサ１０２、記憶装置１０３、入力部１０４、通信部１０５、表示部１０６、ＣＰＵ（Central Processing Unit）１０７、プログラムメモリ１０８、メモリ１０９を含んで構成される。
【００１３】
センサ１０２は、例えば情報処理装置１０１の現在位置を検知するＧＰＳ（Global Positioning System）センサ、情報処理装置１０１に作用する加速度を検知する加速度センサ、気温を検知する温度センサなどの検知手段である。このように、センサ１０２は、情報処理装置１０１の状態を表す状況、つまり、文字を入力している際のユーザが存在する環境を示す各種情報を検知する。なお、情報処理装置１０１は、検知目的に応じて一又は複数のセンサを有するように構成することができる。
記憶装置１０３には、文字の入力を受け付ける入力部１０４を介してユーザが入力したいくつかの文字に基づいて予測される文字列を、入力候補（あるいは変換候補とも呼ぶ）としてユーザに提示するための情報が辞書として記憶されている。なお、入力候補となる文字列は１単語の場合も、複数の単語から構成される場合もある。例えば、ユーザが「のり」と入力した場合に、これに対応する入力候補として「乗ります」を予測するための対応関係の情報、さらに各単語が使用された頻度を記憶する。本実施形態では、辞書に登録されている単語の中には、当該単語が使用される状況を表す状況情報が関連付けられているものが含まれる。本実施形態において、記憶装置１０３は情報処理装置１０１に内蔵されているものとするが、各種ネットワークによって接続された外部装置であっても構わない。
辞書に登録される状況情報は、入力候補となる単語に関連付けられたセンサ１０２の種別、当該センサ１０２のセンサ値を含んだ情報からなる。具体的には、例えば辞書に登録された単語が特定の建物を表す場合には、センサの種別としてＧＰＳセンサが関連付けられる。また、センサ値として、当該建物が存在する位置を表す緯度と経度が記録される。このように、状況情報により単語が使用される状況を表すことができる。そのため、文字を入力している際のユーザの状況に適合した単語を入力候補としてユーザに提示することができる。
入力部１０４は、ユーザによる文字入力を受け付ける入力受付手段である。また、入力部１０４は、入力された文字列に対応する入力候補として予測された単語の中から、当該文字列に対応させる単語の指定するための入力を受け付ける。本実施形態では、入力部１０４として、ユーザによるタッチ入力を検知可能なタッチパネルを用いる。タッチパネルは表示部１０６の画面と重畳しており、ユーザが画面に表示された表示画像をタッチしたことに応じて、タッチされた位置を示す信号を出力し、情報処理装置１０１に通知する。ただし、入力部１０４はマウスやデジタイザなどのポインティングデバイスや、ハードウェアキーボードであっても本発明を適応可能である。
【００１４】
通信部１０５は、情報処理装置１０１と、例えばインターネットなどの外部ネットワークとの相互通信を行う。具体的には、例えばネットワーク上に存在する各種辞書データベースにアクセスして必要な情報を受信したり、ユーザの入力内容を送信したりする。
表示部１０６は、例えば液晶ディスプレイなどであり、各種情報を画面に表示する。また、表示部１０６によって画面に表示される画像は、ユーザが入力した文字列を表示する領域（後述する表示エリア５０１：図５）、入力候補を表示する領域（後述する表示エリア５０２：図５）を含んで成る。本実施形態では、ユーザは表示部１０６に表示されたソフトウエアキーボードに対するタッチ入力により文字入力を行う。従って、画面に表示される画像には、文字入力のための各種キーによって構成されるソフトウエアキーボードを表示する領域（後述するキーパッド５０４：図５）を含んで成る。
【００１５】
ＣＰＵ１０７は、情報処理装置１０１が有する各構成機器を制御する。プログラムメモリ１０８は、例えばＲＯＭ（Read Only Memory）であり、ＣＰＵ１０７により実行される各種プログラムが格納される。メモリ１０９は、例えばＲＡＭ（Random Access Memory）であり、ＣＰＵ１０７によりプログラムが実行される際のワークエリアを提供し、処理に必要な各種データを一時的又は恒久的に保持する。
【００１６】
図１（ｂ）に示す各機能部は、ＣＰＵ１０７が、プログラムメモリ１０８に格納されたプログラムをメモリ１０９に展開し、後述する各フローチャートに従った処理を実行することで実現されている。また例えば、上記ＣＰＵ１０７を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
表示制御部１１０は、予測部１１４により予測された入力候補を表示部１０６の画面の表示するための表示画像を生成し、表示部１０６に出力することで、表示される内容の制御を行う。
登録部１１１は、ユーザが入力した文字列とセンサ１０２の検知結果に基づいて取得部１１５が取得する状況情報とを関連付けた新たな入力候補を記憶装置１０３に記憶された辞書に登録する。また、登録部１１１は、既に辞書に登録されている状況情報の内容を、センサ１０２の最新の検知結果に基づいて更新する。詳細は後述する。
判定部１１２は、辞書に登録された状況情報と、センサ１０２の検知結果に基づいて取得部１１５が取得する状況情報とを比較して類似度を取得し、２つの状況が類似するかを判定する。詳細は後述する。
受付部１１３は、入力部１０４から出力された信号が示す情報を受け付ける。本実施形態では特に、タッチパネルである入力部１０４から、ユーザがタッチした位置、あるいはタッチをやめた位置（リリース位置）を示す座標を取得し、当該タッチパネルに重畳する表示部１０６の画面に表示された画像内での位置として取得する。当該位置に、ユーザインタフェースを構成する部品が表示されている場合には、当該部品を指定する入力として受け付ける。例えば、ソフトウエアキーボードのキーが表示された位置におけるタッチ入力は、タッチされた位置に表示されたキーに対応する文字の文字入力として受け付けられる。
予測部１１４は、入力された文字と、辞書に登録された情報に基づいて、入力された文字によって構成される少なくとも１つの文字列を予測し、入力される文字列の候補とする。本実施形態では、受付部１１３が受け付けた入力情報と、過去に候補とされたときに入力文字列として採用された採用頻度、判定部１１２の判定結果とに基づき、状況に応じた候補を優先的に決定し、表示制御部１１によって提示させる。例えばユーザの状況との類似度が高い入力候補から順番に画面に提示されるように制御する。詳細は後述する。
取得部１１５が、センサ１０２が検知した位置、加速度、方位、湿度、気圧などの情報を、情報処理装置１０１が存在する状況を表す状況情報として取得し、判定部１１２、登録部１１１に通知する。
【００１７】
図２は、情報処理装置１０１の処理手順の一例を示すフローチャートである。本実施形態では、アプリケーションの呼び出しに応じてソフトウエアキーボードが表示され、ユーザが文字入力可能となった段階で、図２のフローチャートが起動される。
ＣＰＵ１０７の機能部としての予測部１１４は、受付部１１３が、ユーザがソフトウエアキーボードをタッチすることで行う文字入力の受け付けたのを契機に、記憶装置１０３に記憶された辞書の登録情報に基づき、入力された文字列に対応する単語を予測する。そして、予測された単語を入力候補として特定し保持する（Ｓ２０１）。
【００１８】
ＣＰＵ１０７の機能部としての判定部１１２は、入力候補が特定できたか否かを判定する（Ｓ２０２）。特定できなかったと判定した場合（Ｓ２０２：Ｎｏ）、ユーザの入力した文字列を画面に表示（Ｓ２０３）し、ユーザによる次の文字入力を待つ（Ｓ２１０）。また、特定できたと判定した場合（Ｓ２０２：Ｙｅｓ）、ステップＳ２０１の処理で保持した入力候補の中に、辞書において状況情報（例えばＧＰＳ情報）と関連付けられた入力候補があるか否かを判定する（Ｓ２０４）。
【００１９】
ＣＰＵ１０７の機能部としての判定部１１２は、状況情報に関連付けられている入力候補があると判定した場合（Ｓ２０４：Ｙｅｓ）、特定した入力候補の状況情報に示されたセンサに対応するセンサ１０２を情報処理装置１０１が有するか否かを判定する（Ｓ２０５）。例えば、センサ１０２が状況情報に示されたＧＰＳセンサ、温度センサなどであるかを判定する。状況情報に示されたセンサを有しない場合（Ｓ２０４：Ｎｏ）、ステップＳ２０４の処理へ進む。
また、状況情報に示されたセンサを有する場合（Ｓ２０４：Ｙｅｓ）、ＣＰＵ１０７の機能部である取得部１１５が状況情報として取得する。そして、ＣＰＵ１０７の機能部である判定部１１２は、取得部１１５が取得した当該センサの検知結果に基づいて、現在の状況と入力候補に関連付けられた状況が類似するかを判定する（Ｓ２０６）。
【００２０】
ここで、状況が類似するとは、入力候補の状況情報が示す状況（例えば、緯度と経度）と、センサの検知結果（例えば、ＧＰＳセンサの検知結果である緯度と経度）が示す状況とが類似する度合い（類似度）が大きいことである。類似するか類似しないかの判定は、センサ種別毎に設定された閾値と類似度の大きさの比較により行うことができる。なお、閾値は、例えばプログラムメモリ１０８に予め記憶される。
なお、入力候補が複数の状況情報と関連付けられている場合には、それぞれの状況情報に基づいて繰り返し判定する。また、類似度の大きさの判定においては、入力候補に関連付けられている状況情報に示されたセンサ値と、センサ１０２の検知結果とが一致する場合に同じ状況であると判定するように構成することもできる。
【００２１】
また、ユーザに提示された入力候補の採用頻度に応じて、同じ状況である（状況が類似する）と判定するか否かを学習できるように構成することもできる。また、複数の入力候補それぞれが同じセンサに対応している場合には、当該センサにより検知された状況に最も類似する状況情報と関連付けられている入力候補を、同じ状況であると判定するようにしても良い。
以下、類似度に基づいて同じ状況である（状況が類似する）か否かを判定し、判定結果に応じて、入力された文字列に対応する一又は複数の単語を入力候補として画面に表示する場合を例に挙げて説明する。
【００２２】
ＣＰＵ１０７の機能部としての判定部１１２は、ステップＳ２０６の処理の判定結果に基づいて、同じ状況を示す入力候補があるか否かを判定する（Ｓ２０７）。入力候補があると判定した場合（Ｓ２０７：Ｙｅｓ）、ＣＰＵ１０７の機能部としての表示制御部１１０は、当該入力候補を他の入力候補と比べて優先して表示するような表示画像を生成し、表示部１０６に出力する（Ｓ２０９）。また、そうでない場合（Ｓ２０７：Ｎｏ）、状況情報に関連付けられている入力候補は表示しないような表示画像を生成し、表示部１０６に出力する（Ｓ２０８）。これは、現在の状況（入力候補が決定されたときの状況）と入力候補に関連付けられた状況との類似度が低いため類似しないと判定された入力候補を表示しないことにより、例えば画面への表示の効率化を図り、ユーザの視認性を確保するためである。なお、非表示ではなく、優先度の低い下位候補として表示するなど、判定部１１２によって求められる類似度に応じた順番で画面に表示されるように制御しても良い。
その後、ＣＰＵ１０７の機能部である受付部１１３は、ユーザによる次の文字入力を待ち（Ｓ２１０）、次の文字入力があった場合（Ｓ２１０：Ｙｅｓ）、ステップＳ２０１の処理へ戻る。また、例えば図示しないタイマにより所定の時間が経過してもユーザによる次の文字入力がなかった場合など、文字入力が終了したと判定された場合（Ｓ２１０：Ｎｏ）、一連の処理を終了する。
【００２３】
図３は、図２に示すステップＳ２０６の処理（２つの状況が類似するかの判定）の具体的な処理手順の一例を示すフローチャートである。
ＣＰＵ１０７の機能部としての判定部１１２は、入力候補の状況情報に示されたセンサの検知結果を取得する（Ｓ３０１）。その後、センサに対応する閾値を取得する（Ｓ３０２）。閾値は、例えばＧＰＳセンサにおいては測定誤差として許容される距離、温度センサにおいては測定誤差として許容される温度範囲などに基づくものである。また、ユーザに提示された入力候補の採用頻度に応じて許容される誤差量を学習させて、その学習結果を閾値とするように構成しても良い。なお、閾値は、判定部１１２が保持するようにしても良いし、記憶装置１０３に記憶されているように構成しても良い。
【００２４】
ＣＰＵ１０７の機能部としての判定部１１２は、Ｓ２０４の処理において特定した入力候補の数を取得する（Ｓ３０３）。取得した入力候補の数を、入力候補数Ｎとして保持する（Ｓ３０４）。以下、ステップＳ３０５からステップＳ３１０までの各処理は、特定した入力候補を１番目からＮ番目として、順番にそれぞれに対して行う処理である。
【００２５】
ＣＰＵ１０７の機能部としての判定部１１２は、特定した入力候補の状況情報のセンサ値と、ステップ１０３の処理で取得した検知結果との差分を算出する（Ｓ３０５）。そして、算出した差分がステップＳ３０２の処理で取得した閾値以下であるか否かを判定する（Ｓ３０６）。閾値以下であると判定した場合（Ｓ３０６：Ｙｅｓ）、現在の入力候補は同じ状況である（状況が類似する）と判定し、判定結果を保持する（Ｓ３０７）。また、そうでない場合（Ｓ３０６：Ｎｏ）、現在の入力候補は同じ状況ではない（状況が類似しない）と判定し、判定結果を保持する（Ｓ３０８）。なお、現在の入力候補は同じ状況ではないと判定した場合には、判定結果を保持しないようにしても良い。
【００２６】
ＣＰＵ１０７の機能部としての判定部１１２は、入力候補数Ｎをデクリメント（Ｎ−１）する（Ｓ３０９）。その後、入力候補数ＮがＮ＝０であるか否かを判定する（Ｓ３１０）。入力候補数ＮがＮ＝０でない場合（Ｓ３１０：Ｎｏ）、ステップＳ３０５の処理へ戻る。入力候補数ＮがＮ＝０である場合（Ｓ３１０：Ｙｅｓ）、ステップＳ３１１の処理へ進む。
ＣＰＵ１０７の機能部としての判定部１１２は、ステップＳ３０７の処理で保持した判定結果に基づいて、状況の類似度に基づいて２つの状況が類似するかを判定した結果を伝達する（Ｓ３１１）。このようにして、一連の処理が終了する。
【００２７】
なお、状況情報のセンサ値は、複数の種別の異なるセンサのセンサ値を組み合わせて登録したり、同一のセンサの異なるセンサ値を組み合わせたりすることもできる。この場合の処理手順を、図２（ステップ２０１からステップ２１０までの各処理）及び図３（ステップＳ３０１からステップＳ３１１までの各処理）に示すフローチャートを用いて説明する。
【００２８】
図２に示すステップＳ２０４の処理において、例えば複数のセンサ値を組み合わせて構成された状況情報に関連付けられている入力候補があると判定されたとする。この場合、ステップＳ２０５の処理では、状況情報に示された全てのセンサを有するか否かが判定される。その後、ステップＳ２０６の処理において、状況情報に示されたセンサに対応するセンサ１０２の検知結果を順次取得する。あるいは、状況情報に示されたセンサの中から、情報処理装置１０１が有しているセンサ１０２のみの検知結果を取得し、同じ状況であるか否かの判定を行うように制御しても良い。
【００２９】
図３に示すステップＳ３０１の処理において、各センサの検知結果を取得する。ステップＳ３０２の処理では、センサ種別毎の閾値、あるいは、センサ値の組み合わせに対応した閾値を取得する。
前者の場合には、全てが閾値以内となるか否か、又は、一つでも閾値以内となるか否かなど予め定めた基準に基づいて同じ状況であるか否かを判定する。例えば、状況情報のセンサ種別として、ＧＰＳセンサと気圧センサが記録されているとする。この場合、ＧＰＳセンサの検知結果である位置情報と、気圧センサの検知結果である気圧情報のそれぞれが閾値以内であるか否かにより、同じ状況であるか否かを判定する。
これにより、例えば、位置情報が同じ状況であると判定された場合であっても、気圧の違いが高さの違いを示すことを利用して、ユーザが建物の１階にいるのか、又は、最上階にいるのかなどにより、ユーザの状況に適した入力候補を提示することが可能になる。
【００３０】
一方で、後者の場合では、センサ値の組み合わせから決まる状況情報の内容と、それに対応するセンサ１０２の検知結果との差分が閾値以内であるか否かにより、同じ状況であるか（状況が類似するか）否かを判定する。
例えば、状況情報のセンサ種別が、ＧＰＳセンサ、加速度センサ、地磁気センサであり、それぞれのセンサ値を組み合わせて記録されているとする。なお、状況情報のセンサ値である加速度情報は、例えばユーザが電車で移動している状況における加速度の推移、徒歩で移動している状況における加速度の推移を表しているものとする。この場合には、センサ１０２である加速度センサにより検知された加速度の推移との類似度を用いて、ユーザの移動の状況（例えば、電車で移動、歩いて移動など）が類似するかを判定することができる。また、加速度センサと地磁気センサの検知結果を用いて、ユーザが移動している方向を表す方位を推定することができる。
この様な場合において、状況が類似するかを類似度に基づいて判定する場合は、例えば、初めに加速度の推移からユーザが電車で移動している状況か、あるいは、徒歩で移動している状況かを区別する。このようにして、判定対象とする単語を絞り込む。次に、電車で移動している状況であれば、センサ１０２であるＧＰＳセンサの検知結果に基づいて移動中の電車の沿線を特定する。さらに、センサ１０２である加速度センサと地磁気センサそれぞれの検知結果から移動方向を推定する。このように類似度に基づく判定処理を制御することにより、ユーザの状況により適合した入力候補を提示することができる。
【００３１】
なお、一部のセンサ１０２の検知結果に基づく類似度が高い、すなわち状況が類似していると判定された場合であっても、種別の異なる他のセンサ１０２の検知結果に基づく類似度は低いと判定される場合がある。そのため、それぞれの類似度を総合的に判定する必要がある。このように、複数の種別の異なるセンサ１０２の検知結果に基づいて状況の類似度を判定する場合、重視するセンサの種別、状況情報のセンサ値の重みづけなどを予め規定しておく。この規定された重みづけを加味して、類似度に基づく判定を行う。
【００３２】
ステップＳ３０３とステップＳ３０４の各処理では、センサ種別が一つである場合と同様の処理が行われる。ステップＳ３０５の処理では、状況情報のセンサ値の組み合わせに応じて、それぞれの差分が算出される。ステップ３０６の処理以降の各処理においても、センサ種別が一つである場合と同様の処理が行われる。このようにして、状況情報が複数のセンサ値を組み合わせて構成されている場合であっても、類似度に基づく判定を行うことができる。
【００３３】
図４は、記憶装置１０３に記憶されている辞書情報のうち、単語に関連付けられた状況情報を含む辞書テーブルの一例を示す図である。図４（ａ）、（ｂ）、（ｃ）に示す辞書テーブルは、モデル番号、入力文字数と構成文字、状況情報、入力候補、採用頻度の各項目を有する。
図４（ａ）に示す辞書テーブルには、モデル１及びモデル２において、入力文字数が１であれば「し」、入力文字数が２であれば「しも」、入力文字数が３であれば「しもま」という構成文字がそれぞれ対応する。ユーザから入力された文字列が「し」、「しも」、「しもま」などの構成文字に前方一致する場合には、それに対応する入力候補の単語（例えば、下丸子駅など）が提示される。図４（ａ）に示す入力候補は、「下丸子駅」、「下丸子図書館」という単語であり、それぞれが状況情報と関連付けられている。入力候補「下丸子駅」の状況情報は、センサ種別が「ＧＰＳ（センサ）」であり、センサ値の緯度が「３５．５７１３」、経度が「１３９．６８５６」である。また、入力候補「下丸子図書館」の状況情報は、センサ種別が「ＧＰＳ（センサ）」であり、センサ値の緯度が「３５．５６６９」、経度が「１３９．６８１９」である。
なお、状況情報に記録されたセンサ値（緯度と経度）は、測定誤差を踏まえて複数回測定した結果の平均値である。また、センサ値の平均値のみならず、センサ値の最小値及び最大値により表される範囲としても良い。
【００３４】
また、入力候補「下丸子駅」の採用頻度は「１０」回であり、入力候補「下丸子図書館」の採用頻度は「４」回である。この採用頻度に基づき、例えば「し」、「しも」、「しもま」の文字を含んで構成される単語の入力候補が複数存在する場合には、採用頻度の高い順番に並び替えて画面に表示することができる。この他、入力候補の単語が最後に使用（採用）された日付、時間に基づいて表示する順番を並び替えたり、採用頻度と組み合わせて表示する順番を並び替えても良い。
【００３５】
いずれにしても、従来では、「しもま」というユーザの文字入力に対して、「下丸子駅」と「下丸子図書館」の入力候補がある場合には、採用頻度の高い一方を優先的に表示したり、最後に使用された一方を優先的に表示していた。例えば、図４（ａ）に示す採用頻度であれば、入力候補「下丸子駅」が第一候補として表示されることになる。
これに対して、情報処理装置１０１では、入力候補として提示した単語の採用頻度が低い場合、あるいは最近使用されていない場合であっても、例えばＧＰＳセンサの検知結果に基づいて、ユーザの状況に適合した入力候補を優先表示することができる。つまり、例えば、ユーザの状況を表す現在位置が下丸子駅付近であれば、「しもま」の文字入力に対して入力候補「下丸子駅」が優先表示される。また、図書館付近であれば入力候補「下丸子図書館」が優先表示される。以下、このように処理するための処理手順について、図２及び図３に示すフローチャートを用いて詳細に説明する。
【００３６】
ここでは、ユーザが下丸子駅付近において「し」を文字入力したとする。また、情報処理装置１０１が有するセンサ１０２は、ＧＰＳセンサであるとする。
図２に示すステップＳ２０１の処理において、文字入力「し」に対応する入力候補が記憶装置１０３の辞書から取得される。文字入力「し」に対しては、例えば「します」、「して」、「時」、「時間」、「しまいました」など複数の入力候補が取得されたとする。例えば、表示部１０６のサイズによっては、表示できる入力候補の数が制限される場合がある。その場合には、例えば表示できる入力候補の数に応じて、採用頻度の高い上位候補のみを取得するように制御する。また、表示できる入力候補の数にかかわらず、できる限り多くの入力候補が取得されるように制御することもできる。
【００３７】
ステップ２０２の処理では、複数の入力候補を取得したと判定される。次に、ステップＳ２０４の処理において、取得された入力候補の中に状況情報に関連付けられているものがあるか否かが判定される。例えば、取得された入力候補「します」、「して」、「時」、「時間」、「しまいました」の中には、状況情報に関連付けられているものはないとする。この場合には、ステップＳ２１０の処理においてユーザによる次の文字入力を待つことになる。
【００３８】
次に、ユーザから「も」が文字入力されたことを契機に、再びステップＳ２０１の処理において「しも」に対応する入力候補が記憶装置１０３の辞書から取得される。あるいは、前回の処理において、できる限り多くの入力候補が取得されている場合には、その中から改めて取得されるように制御しても良い。その後、ステップＳ２０２からステップＳ２０４の処理が行われる。ここでも、取得された入力候補の中で、状況情報に関連付けられているものはないとする。
【００３９】
次に、ユーザから「ま」が文字入力されたことを契機に、再びステップＳ２０１の処理において「しもま」に対応する入力候補が記憶装置１０３の辞書から取得される。文字入力「しもま」に対しては、入力候補として「しもま」、「シモマ」、「下丸子」、「下丸子図書館」、「下丸子駅」が取得されたとする。
ステップＳ２０４の処理において、取得された入力候補の中に状況情報に関連付けられているものがあるか否かが判定される。図４（ａ）に示すように、入力候補「下丸子図書館」、「下丸子駅」は状況情報と関連付けられている。そのため、ステップＳ２０５の処理へ進む。ステップＳ２０５の処理において、情報処理装置１０１がＧＰＳセンサを有していると判定される。その後、ステップＳ２０６の処理へ進み、状況の類似度が判定される。
【００４０】
本実施形態においては、同じ状況であるか否かを判定するために、図３に示すステップＳ３０１の処理において、ＧＰＳセンサの検知結果が取得される。ここでは、下丸子駅付近におけるＧＰＳセンサの検知結果が、緯度「３５．５７１２」、経度「１３９．６８６１」であったとする。
ステップＳ３０２の処理において、ＧＰＳセンサに対応する閾値が取得される。ここでは、閾値は５００［ｍ］であるとする。
【００４１】
ステップＳ３０３の処理において、入力候補「下丸子図書館」、「下丸子駅」の２つが特定される。そのため、ステップＳ３０４の処理で入力候補数Ｎは、Ｎ＝２として保持される。
ステップＳ３０５の処理において、入力候補Ｎ＝２番目の「下丸子図書館」のセンサ値である緯度（３５．５６６９）及び経度（１３９．６８１９）と、ＧＰＳセンサの検知結果である緯度（３５．５７１２）及び経度（１３９．６８６１）との差分が算出される。
ここでは、説明の便宜上、地球の円周上の２点間の距離として扱い、緯度及び経度それぞれにおける距離の差分を二乗和の平方根により算出する。まず、円弧の長さを求めるために、緯度差（「３５．５７１２」と「３５．５６６９」の差分）のラジアン（０．００００７５０４９２）と、経度差（「１３９．６８６１」と「１３９．６８１９」の差分）のラジアン（０．００００７３３０３８）を算出する。次に、求めた緯度差のラジアンと地球の半径距離とに基づいて、南北の距離（０．１１９１２９［ｋｍ］）と、緯度と求めた経度差のラジアンと地球の半径から東西の距離（０．３８０３１５８［ｋｍ］）を算出する。その後、二乗和の平方根を算出することにより２点間の距離０．６１１３６６［ｋｍ］が得られる。よって、距離の差分は６１１［ｍ］となる。
【００４２】
ステップＳ３０６の処理において、得られた差分が閾値以下であるか否かが判定される。閾値が５００［ｍ］に対して差分は６１１［ｍ］であり、当該閾値を超えた差分であることから、同じ状況ではないと判定される。その後、ステップＳ３０９の処理へ進み、入力候補数Ｎ＝２がデクリメントされ、Ｎ＝１となる。
ステップＳ３１０の処理において、入力候補数ＮがＮ＝１であることから、ステップＳ３０５の処理に戻り、次の入力候補における差分が算出される。
ステップＳ３０５の処理において、入力候補Ｎ＝１番目の「下丸子駅」のセンサ値である緯度（３５．５７１３）及び経度（１３９．６８５６）と、ＧＰＳセンサの現在の検知結果である緯度（３５．５７１２）及び経度（１３９．６８６１）の差分が算出される。その結果、２点間の距離０．００４６６２［ｋｍ］となり、差分４６［ｍ］が得られる。
【００４３】
ステップＳ３０６の処理において、得られた差分が閾値以下であるか否かが判定される。閾値５００［ｍ］に対して差分４６［ｍ］であることから、同じ状況であると判定され、判定結果が保持される。その後、ステップＳ３０９の処理へ進み、入力候補数Ｎ＝１がデクリメントされてＮ＝０となり、ステップＳ３１１の処理へ進む。ステップＳ３１１の処理において、入力候補「下丸子駅」は同じ状況であり、入力候補「下丸子図書館」は同じ状況ではないという判定結果が出力される。
【００４４】
図２に示すステップＳ２０６の処理に戻り、次のステップＳ２０７の処理において同じ状況を示す入力候補があると判定され、ステップＳ２０９の処理において入力候補「下丸子駅」が優先表示される。その後、ステップＳ２１０の処理においてユーザによる次の文字入力を待つことになる。
なお、単純に緯度と経度それぞれの差分に基づいて閾値以内であるか否かを判定しても良い。また、２点間の距離の算出方法として、地球の丸みを考慮した孤を求める計算式を用いたり、地球が球体でなく楕円体であることまでを考慮した距離の計算式を用いたりすることもできる。このように、２点間の距離を算出することができる様々な計算方法から任意に選択して利用することができる。計算処理に必要な各種情報は、例えばプログラムメモリ１０８に予め記憶しておいたり、判定部１１２で保持したりすることができる。さらに、計算処理をネットワーク上で行ったり、計算処理に必要な各種情報を更新したりすることができる。また、計算処理毎にセンサの検知結果が取得されるように制御したり、種別の異なるセンサに関する計算処理が同時に行われるように制御したりすることもできる。
また、入力候補の表示は、採用頻度に関わらず状況情報と関連付けられている入力候補のみを表示したり、採用頻度の高い入力候補は別画面に表示したり、それぞれに重みづけを付与してその総和に基づいて表示したりしても良い。
【００４５】
図４に戻り、図４（ｂ）に示す辞書テーブルのモデル１は、入力文字数が１であれば「あ」、入力文字数が２であれば「あつ」、入力文字数が３であれば「あつい」という構成文字がそれぞれ対応する。図４（ｂ）に示す辞書テーブルのモデル２は、入力文字数が１であれば「あ」、入力文字数が２であれば「あた」、入力文字数が３であれば「あたた」という構成文字がそれぞれ対応する。
図４（ｂ）に示す入力候補は、「暑い」、「暖かい」という単語であり、それぞれが状況情報と関連付けられている。入力候補「暑い」の状況情報は、センサ種別が「温度（センサ）」であり、センサ値が「３０．００［度］」である。また、入力候補「暖かい」の状況情報は、センサ種別が「温度」であり、センサ値が「２４．００［度］」である。入力候補「暑い」の採用頻度は「１０」回であり、入力候補「暖かい」の採用頻度は「４」回である。
【００４６】
例えば、ユーザが「あ」を文字入力したとする。また、情報処理装置１０１が有するセンサ１０２は、温度センサであるとする。この場合、文字入力「あ」に対応して、温度センサの検知結果が３０度付近であれば「暑い」が入力候補として優先的に提示される。また、検知結果が温度２４度付近であれば「暖かい」が入力候補として優先的に提示される。以下、このように処理するための処理手順について、図２及び図３に示すフローチャートを用いて説明する。
【００４７】
ここでは、ユーザが気温（温度）３２度の状況下で「あ」を文字入力したとする。
図２に示すステップＳ２０１の処理において、入力文字「あ」に対応する入力候補が記憶装置１０３の辞書から取得される。入力文字「あ」に対しては、例えば「あった」、「あした」、「ある」、「暑い」、「暖かい」などが上位候補として取得されたとする。
ステップＳ２０２の処理では、複数の入力候補を取得したと判定される。次に、ステップＳ２０４の処理において、取得された入力候補の中に状況情報に関連付けられているものがあるか否かが判定される。図４（ｂ）に示すように、入力候補「暑い」、「暖かい」は状況情報と関連付けられている。そのため、ステップＳ２０５の処理へ進む。ステップＳ２０５の処理において、情報処理装置１０１が温度センサを有していると判定される。その後、ステップＳ２０６の処理へ進み、状況の類似度が判定される。
【００４８】
本実施形態においては、同じ状況であるか否かを判定するために、図３に示すステップＳ３０１の処理において、温度センサの検知結果が取得される。ここでは、温度センサの検知結果は、温度３２．００［度］であるとする。
ステップＳ３０２の処理において、温度センサに対応する閾値が取得される。ここでは、閾値は３［度］であるとする。
【００４９】
ステップＳ３０３の処理において、入力候補「暑い」、「暖かい」の２つが特定される。そのため、ステップＳ３０４の処理で入力候補数Ｎは、Ｎ＝２として保持される。
ステップＳ３０５の処理において、入力候補Ｎ＝２番目の「暖かい」のセンサ値である温度（２４．００）と、ステップＳ３０１の処理で取得された温度センサの現在の検知結果である温度（３２．００）との差分が算出される。その結果、差分９［度］が得られる。
【００５０】
ステップＳ３０６の処理において、得られた差分が閾値以下であるか否かが判定される。閾値３［度］に対して差分９［度］であることから、同じ状況ではないと判定される。その後、ステップＳ３０９の処理へ進み、入力候補数Ｎ＝２がデクリメントされ、Ｎ＝１となる。
ステップＳ３１０の処理において、入力候補数ＮがＮ＝１であることから、ステップＳ３０５の処理に戻り、次の入力候補における差分が算出される。
ステップＳ３０５の処理において、入力候補Ｎ＝１番目の「暑い」のセンサ値である温度（３０．００）と、ステップＳ３０１の処理で取得された温度センサの現在の検知結果である温度（３２．００）との差分が算出される。その結果、差分２［度］が得られる。
【００５１】
ステップＳ３０６の処理において、得られた差分が閾値以下であるか否かが判定される。閾値３［度］に対して差分２［度］であることから、同じ状況であると判定され、判定結果が保持される。その後、ステップＳ３０９の処理へ進み、入力候補数Ｎ＝１がデクリメントされてＮ＝０となり、ステップＳ３１１の処理へ進む。ステップＳ３１１の処理においては、入力候補「暑い」は同じ状況であり、入力候補「暖かい」は同じ状況ではないという判定結果が出力される。
【００５２】
図２に示すステップＳ２０６の処理に戻り、次のステップＳ２０７の処理において同じ状況を示す入力候補があると判定され、ステップＳ２０９の処理において入力候補「暑い」が優先表示される。その後、ステップＳ２１０の処理においてユーザによる次の文字入力を待つことになる。
【００５３】
また、図４（ｃ）に示す辞書テーブルのモデル１及びモデル２は、入力文字数が１であれば「の」、入力文字数が２であれば「のり」、入力文字数が３であれば「のりま」という構成文字がそれぞれ対応する。
図４（ｃ）に示す入力候補は、「乗りました」、「乗ります」という単語であり、それぞれが状況情報と関連付けられている。入力候補「乗りました」の状況情報は、センサ種別が「加速度」であり、センサ値が「移動」である。また、入力候補「乗ります」の状況情報は、センサ種別が「加速度」であり、センサ値が「停止」である。入力候補「乗りました」の採用頻度は「１０」回であり、入力候補「乗ります」の採用頻度は「２」回である。
【００５４】
図４（ｃ）に示すセンサ値は、加速度センサの検知結果よりユーザの状況を推定した結果であり、モデル１のセンサ値では「移動」、モデル２のセンサ値では「停止」が格納されている。具体的には、例えば所定時間（例えば、１秒）の加速度センサの検知結果に基づいて分散値を算出し、算出した分散値の大小に応じて「停止」又は「移動」を判定することができる。また、センサ１０２である加速度センサにより検知された加速度の推移に応じて、ユーザが例えば「徒歩で移動している状況」、あるいは「走って移動している状況」であるかの判定を行うこともできる。
なお、検知結果が加速度である場合と同様に、検知結果が速度である場合、あるいは変位量である場合には、ユーザの状況を表すセンサ値として変換した後に状況情報に記録する。
【００５５】
例えば、ユーザが「のり」を文字入力したとする。また、情報処理装置１０１が有するセンサ１０２は、加速度センサであるとする。この場合、ユーザが移動している状況であれば、「のり」の文字入力に対して入力候補「乗りました」が優先表示され、ユーザが停止している状況であれば、入力候補「乗ります」が優先表示される。以下、このように処理するための処理手順について、図２及び図３に示すフローチャートを用いて説明する。
【００５６】
ここでは、ユーザが移動している状況下で「のり」を文字入力したとする。
図２に示すステップ２０１の処理において、文字入力「のり」に対応する入力候補が記憶装置１０３の辞書から取得される。文字入力「のり」に対しては、例えば「乗り換え」、「載り」、「海苔」、「乗り」、「乗ります」、「乗りました」などが上位候補として取得されたとする。
ステップ２０２の処理では、複数の入力候補を取得したと判定される。次に、ステップＳ２０４の処理において、取得された入力候補の中に状況情報に関連付けられているものがあるか否かが判定される。図４（ｃ）に示すように、入力候補「乗りました」、「乗ります」は状況情報と関連付けられている。そのため、ステップＳ２０５の処理へ進む。ステップＳ２０５の処理において、情報処理装置１０１が加速度センサを有していると判定される。その後、ステップＳ２０６の処理へ進み、状況の類似度が判定される。
【００５７】
本実施形態においては、同じ状況であるか否かを判定するために、図３に示すステップＳ３０１の処理において、直近１秒間分の加速度センサの検知結果が取得される。ここでは、ユーザは移動中であることから、検知結果に基づいて「移動」と推定される。
ステップＳ３０２の処理において、加速度センサに対応する閾値が取得される。ここでは、閾値が「０」であるとする。これは、加速度センサの検知結果に基づいてユーザの状況を推定し、推定された状況が同じ状況であるか否かを判定するためである。
【００５８】
ステップＳ３０３の処理において、入力候補「乗りました」、「乗ります」の２つが特定される。そのため、ステップＳ３０４の処理で入力候補数Ｎは、Ｎ＝２として保持される。
ステップＳ３０６の処理において、入力候補Ｎ＝２番目の「乗ります」のセンサ値である「停止」と、ステップＳ３０１の処理で取得された検知結果から推定された「移動」とが比較される。その結果、同じ状況ではないと判定される。その後、ステップＳ３０９の処理へ進み、入力候補数Ｎ＝２がデクリメントされ、Ｎ＝１となる。
ステップＳ３１０の処理において、入力候補数ＮがＮ＝１であることから、ステップＳ３０５の処理に戻り、次の入力候補との比較が行われる。
【００５９】
ステップＳ３０６の処理において、入力候補Ｎ＝１番目の「乗りました」のセンサ値である「移動」と、ステップＳ３０１の処理で取得された検知結果から推定された「移動」とが比較される。その結果、同じ状況であると判定され、判定結果が保持される。その後、ステップＳ３０９の処理へ進み、入力候補数Ｎ＝１がデクリメントされてＮ＝０となり、ステップＳ３１１の処理へ進む。ステップＳ３１１の処理においては、入力候補「乗りました」は同じ状況であり、入力候補「乗ります」は同じ状況ではないという判定結果が出力される。
【００６０】
図２に示すステップＳ２０６の処理に戻り、次のステップＳ２０７の処理において同じ状況を示す入力候補があると判定され、ステップＳ２０９の処理において入力候補「乗りました」が優先表示される。その後、ステップＳ２１０の処理において次の文字入力を待つことになる。
【００６１】
図５は、表示部１０６に表示される画面の一例を示す図である。なお、図５に示す情報処理装置１０１では、メールアプリケーションが起動されており、ユーザがメール作成のために文字入力を行っているものとする。
図５に示す画面５００は、ユーザが入力した文字が表示される表示エリア５０１、入力候補が表示される表示エリア５０２、入力装置の一例であるキーパッド５０４が表示されるエリアを含んで構成される。また、画面５００には、ユーザが作成したメールの保存を指示する保存ボタン５０３ａ、作成したメールの送信を指示する送信ボタン５０３ｂが配置される。
【００６２】
表示エリア５０１では、カーソル５０５が示す入力位置までユーザが入力した文字の中で、「今、電車に」の部分が入力確定済みであり、続く「のり」の部分は入力未確定の状態、つまり、入力候補の選択待ちの状態であることを表している。
表示エリア５０２では、ユーザが「のり」を文字入力したことを契機に、「乗り換え」、「載り」、「海苔」、「乗り」、「ノリ」、「糊」という入力候補とともに、「乗ります」という入力候補が優先して表示されている。なお、優先して表示するとは、例えば入力候補を選択するための選択カーソル（不図示）が初めに画面５００に表示される位置に表示することなどである。具体的には、例えば表示エリア５０２において、図正面から見て左上位置に優先して表示する入力候補を表示することである。
【００６３】
図４（ｃ）に示す辞書テーブルでは、入力文字「のり」に対して、状況情報が関連づけられている入力候補「乗ります」、「乗りました」が登録されている。そのため、ユーザが「のり」を文字入力した際に、センサ１０２である加速度センサの検知結果が取得され、取得した検知結果に基づいてユーザの状況が推定される。推定された状況が「停止」であれば、図５に示すように、入力候補「乗ります」が他の入力候補（「乗り」、「海苔」、「ノリ」、「載り」）よりも優先して表示される。具体的には、例えば、ユーザが電車の到着を待っている状況においてメールを作成している場合である。
なお、ユーザが既に電車に乗って移動している状況であれば、「移動」と推定されるため、入力候補「乗りました」が他の入力候補よりも優先して表示される。
【００６４】
ここで、登録部１１１による記憶装置１０３に記憶されている辞書情報への各種情報の登録について説明する。入力候補としての単語、並びに、入力候補に関連付けられた状況情報の登録は、ユーザが事前に登録する他に、所定の単語が入力されたタイミングにおいて自動的に登録することもできる。
具体的には、予めセンサ種別毎に対応付けされた単語を保持しておき、登録部１１１がこれらの単語とユーザから入力された文字列（単語）とを比較することにより、当該文字列が状況情報と関連付けて登録できるものであるか否かを判定する。以下、この点について詳細に説明する。
【００６５】
図６は、入力された文字列をセンサの検知結果と関連付けて登録する際の処理手順の一例を示すフローチャートである。なお、センサ種別毎に対応付けされた単語は、予め図示しないＤＢ（データベース）に参照可能な状態で格納されているものとする。
【００６６】
ＣＰＵ１０７の機能部である登録部１１１は、ユーザによる文字入力の受け付けを契機に、図示しないＤＢを参照することにより、受け付けた文字列がセンサ種別毎に対応付けされた単語であるか否かを判定する（Ｓ６０１）。受け付けた文字列がセンサ種別毎に対応付けされた単語である場合（Ｓ６０１：Ｙｅｓ）、既に記憶装置１０３に記憶された辞書情報に登録されている単語であるか否かを判定する（Ｓ６０２）。また、そうでない場合（Ｓ６０１：Ｎｏ）、ユーザによる次の文字入力を待つ（Ｓ６０５）。
【００６７】
ＣＰＵ１０７の機能部である登録部１１１は、辞書に登録されていないと判定した場合（Ｓ６０２：Ｎｏ）、入力された文字列を入力候補として、生成した状況情報と関連付けて記憶装置１０３に記憶されている辞書に登録する（Ｓ６０３）。この場合の状況情報は、単語に関連付けされているセンサ種別を状況情報のセンサ種別とし、文字入力の受け付けた際のセンサ１０２の検知結果を状況情報のセンサ値とし、採用頻度を「１」として生成される。
また、既に辞書に登録されていると判定した場合（Ｓ６０２：Ｙｅｓ）、受け付けた文字列に対応する入力候補の状況情報のセンサ値を、文字入力の受け付けた際のセンサ１０２の検知結果により更新する。さらに、状況情報の採用頻度の値を１だけインクリメントする（Ｓ６０４）。センサ値の更新は、検知結果を単に上書きすることでも良いし、既に登録されているセンサ値とは別に、今回の検知結果を新たなセンサ値として追加登録するようにしても良い。また、既に登録されているセンサ値も含めた平均値を算出し、算出結果を登録することもできる。あるいは、先述したように、最小値と最大値のみを更新していく方法であっても良い。なお、追加登録する場合においては、使用日時や登録順番に基づいて、順次古いものから破棄されるように制御することが望ましい。これにより、辞書が占める記憶装置１０３の記憶容量を低減化することができる。
【００６８】
ＣＰＵ１０７は、次の文字入力を待ち（Ｓ６０５）、ユーザによる次の文字入力があった場合（Ｓ６０５：Ｙｅｓ）、ステップＳ６０１の処理へ戻る。また、文字入力が終了したと判定された場合（Ｓ６０５：Ｎｏ）、一連の処理を終了する。このように、ユーザの手を煩わせることなく、自動的に新たな入力候補を記憶装置１０３の辞書に登録することができる。
なお、受け付けた文字列がセンサ種別毎に対応付けされた単語である場合には、既に辞書に登録済みであっても、当該文字列に対応する入力候補の採用頻度の値を１だけインクリメントする。これにより、ユーザによる入力頻度に応じて、上位候補が決定されるように制御することができる。また、状況情報のセンサ値を、常に文字入力された時点におけるセンサの検知結果で更新することに替えて、閾値を決定して、この閾値に基づいて更新するか否かが判定されるように制御することもできる。この他、入力候補に適したセンサ値を予めＤＢに格納しておき、必要に応じて取得することができるようにしても良い。なお、受け付けた文字列を入力候補として状況情報と関連付けて記憶装置１０３の辞書に登録する際に、閾値も登録することができるようにしても良い。
【００６９】
また、前述した辞書登録の方法のほか、受け付けた文字列がセンサ種別毎に対応付けされた単語である場合、当該単語を入力候補として辞書に登録するか否かをユーザが決定できるように構成することもできる。その他、辞書登録用のアプリケーションソフトウエアを実行することにより、随時、ユーザが辞書登録できるようにしても良い。なお、辞書に登録されている力候補の削除は、辞書登録と同様にして行うことができる。
【００７０】
また、辞書は、一人のユーザのみが利用できる形態で構成しても良いし、複数のユーザにより共有して利用できる形態で構成しても良い。また、図１に示すように、情報処理装置１０１の内部に設置された記憶装置１０３に辞書を記憶する形態のほか、情報処理装置１０１の通信機能（通信部１０５）によりネットワーク上に存在する辞書を利用することができるように構成することもできる。その場合には、辞書とともにネットワーク上に設けられた予測部１１４によって決定された入力候補を、情報処理装置１００が取得して利用する構成とすることで、通信及び予測処理にかかる負荷を低減することができる。
【００７１】
また、受け付けた文字列がセンサ種別毎に対応付けされた単語である場合には、当該文字列が現在の事柄に関するものであるか、又は、過去の事柄に関するものであるかを判定できるように構成しても良い。この場合、現在の事柄であると判定された場合に、検知結果によりセンサ値を最新の情報に更新する。そのため、ＤＢに格納される単語には、現在の事柄、あるいは過去の事柄であることを示す識別子を付与する。
一方、過去の作成された文章を引用したり、あるいは編集途中であった文章の編集を再開したりする場合にも適用することができる。例えば、文章内の文字列に状況情報が関連付けられている場合には、これに対応するセンサ１０２の現時点の検知結果と、状況情報に記録されているセンサ値とから、文字列を変更する必要があるか否かを判定する。変更が必要であると判定された場合には、今の状況に適合した入力候補を優先して表示する。
【００７２】
このように、本実施形態の情報処理装置１０１によれば、ユーザが文字入力を行う際の状況に適合した入力候補を優先して提示することができる。これにより、ユーザは、例えばメール文書の作成、検索文字列の入力などを効率良く行うことができる。
【００７３】
［第２実施形態］
本実施形態では、入力確定済みの文字列に後続する単語を予測し、入力候補として提示することができる情報処理装置について説明する。なお、第１実施形態で既に説明した部分と重複する部分は、同じ符号を付すとともに、その説明を省略する。
【００７４】
入力確定済の文字列に後続する単語を予測する既知の手法の一つとして、Ｎ−ｇｒａｍ（Ｎグラム法、あるいはＮ文字インデックス法などとも呼ばれる）と呼ばれる方法がある。Ｎ−ｇｒａｍでは、１つの単語、あるいは複数の単語の組み合わせから後続する入力を予測するものであり、Ｎから１を引いた個数の単語から、Ｎ番目に登場する単語を確率計算により算出する。その他にも、後続する単語を予測する手法はいくつか存在する。
これらの手法を用いることにより、入力候補を提示する上で入力未確定の状態を必要とせず、直前に入力された入力確定済みの内容（単語）に基づいて、後続する単語を予測し、入力候補としてユーザに提示することが可能になる。
【００７５】
さらに、入力候補に関連付けられている状況情報により、ユーザが文字入力を行う際の状況に適合した入力候補のみを提示することができる。そのため、ユーザの文字入力の負担が低減されるとともの、利便性も向上することになる。
なお、本実施形態の情報処理装置においては、ＣＰＵ１０７の制御に基づき辞書において、入力確定済みの単語から入力候補の予測が行われるものとする。また、登録部１１１において、単語の組み合わせと、これに関連付けられる状況情報のセンサ値などを登録するものとする。
【００７６】
図７は、本実施形態における状況情報を含む辞書テーブルの一例を示す図である。図７（ａ）、（ｂ）、（ｃ）に示す辞書テーブルは、構成モデル、付加センサ情報、採用頻度の各項目を有する。
図７（ａ）に示す辞書テーブルには、構成モデル１が「これから」、「下丸子」、「で」、「電車」という単語の組み合わせとして、構成モデル２が「これから」、「下丸子」、「で」、「会議」という単語の組み合わせとして登録されている。また、それぞれの構成モデルでは、状況情報である付加センサ情報、採用頻度も関連付けられて登録されている。
構成モデル１では、センサ種別が「ＧＰＳ（センサ）」であり、センサ値の緯度が「３５．５７１３」、経度が「１３９．６８５６」である。構成モデル２では、センサ種別が「ＧＰＳ（センサ）」であり、センサ値の緯度が「３５．５６６９」、経度が「１３９．６８１９」である。また、構成モデル１の採用頻度は「７」回、構成モデル２の採用頻度は「３」回である。
【００７７】
例えば、ユーザが入力した文字列「これから下丸子で」が入力確定した際のＧＰＳセンサの検知結果に応じて、入力候補「電車」が提示されたり、入力候補「会議」が提示されたりする。そのため、採用頻度に依存することなく、例えば文字列「これから下丸子で」が入力確定した時点の状況が駅付近であれば入力候補として「電車」を、あるいは図書館付近であれば入力候補として「会議」を提示するように制御される。以下、このような場合の処理手順について、図２及び図３に示すフローチャートを用いて説明する。
【００７８】
ここでは、ユーザが下丸子駅付近において入力した文字列「これから下丸子で」が入力確定済みであるとする。また、情報処理装置１０１が有するセンサ１０２は、ＧＰＳセンサであるとする。
図２に示すステップＳ２０１の処理において、入力確定済みの文字列に後続する確率の高い単語が入力候補として記憶装置１０３の辞書から取得される。入力確定済みの文字列「これから下丸子で」に対しては、「電車」、「会議」という２つの入力候補が取得されたとする。
【００７９】
ステップ２０２の処理では、複数の入力候補を取得したと判定される。次に、ステップＳ２０４の処理において、取得された入力候補の中に状況情報に関連付けられているものがあるか否かが判定される。図７（ａ）に示すように、入力候補「電車」、「会議」は状況情報と関連付けられている。そのため、ステップＳ２０５の処理へ進む。ステップＳ２０５の処理において、情報処理装置１０１がＧＰＳセンサを有していると判定される。その後、ステップＳ２０６の処理へ進み、状況の類似度が判定される。
【００８０】
本実施形態においては、同じ状況であるか否かを判定するために、図３に示すステップＳ３０１の処理において、センサ１０２であるＧＰＳセンサの検知結果が取得される。ここでは、下丸子駅付近におけるＧＰＳセンサの検知結果が、緯度「３５．５７１２」、経度「１３９．６８６１」であったとする。
ステップＳ３０２の処理において、ＧＰＳセンサに対応する閾値が取得される。ここでは、閾値は５００［ｍ］であるとする。
【００８１】
ステップＳ３０３の処理において、入力候補「電車」、「会議」の２つが特定される。そのため、ステップＳ３０４の処理で入力候補数Ｎは、Ｎ＝２として保持される。
ステップＳ３０５の処理において、入力候補Ｎ＝２番目の「会議」のセンサ値である緯度（３５．５６６９）及び経度（１３９．６８１９）と、ＧＰＳセンサの検知結果である緯度（３５．５７１２）及び経度（１３９．６８６１）との差分が算出される。その結果、距離の差分として６１１［ｍ］が得られる。
【００８２】
ステップＳ３０６の処理において、得られた差分が閾値以下であるか否かが判定される。閾値５００［ｍ］に対して差分６１１［ｍ］であることから、同じ状況ではないと判定される。その後、ステップＳ３０９の処理へ進み、入力候補数Ｎ＝２がデクリメントされ、Ｎ＝１となる。
ステップＳ３１０の処理において、入力候補数ＮがＮ＝１であることから、ステップＳ３０５の処理に戻り、次の入力候補における差分が算出される。
ステップＳ３０５の処理において、入力候補Ｎ＝１番目の「電車」のセンサ値である緯度（３５．５７１３）及び経度（１３９．６８５６）と、ＧＰＳセンサの現在の検知結果である緯度（３５．５７１２）及び経度（１３９．６８６１）の差分が算出される。その結果、２点間の距離０．００４６６２［ｋｍ］となり、差分４６［ｍ］が得られる。
【００８３】
ステップＳ３０６の処理において、得られた差分が閾値以下であるか否かが判定される。閾値５００［ｍ］に対して差分４６［ｍ］であることから、同じ状況であると判定され、判定結果が保持される。その後、ステップＳ３０９の処理へ進み、入力候補数Ｎ＝１がデクリメントされてＮ＝０となり、ステップＳ３１１の処理へ進む。ステップＳ３１１の処理においては、入力候補「電車」は同じ状況であり、入力候補「会議」は同じ状況ではないという判定結果が出力される。
【００８４】
図２に示すステップＳ２０６の処理に戻り、次のステップＳ２０７の処理において同じ状況を示す入力候補があると判定され、ステップＳ２０９の処理において入力候補「電車」が優先表示される。その後、ステップＳ２１０の処理において次の文字入力を待つことになる。なお、「電車」のみが入力候補として表示されるように制御することもできる。
【００８５】
図７に戻り、図７（ｂ）に示す辞書テーブルには、構成モデル１が「今日」、「は」、「暑い」という単語の組み合わせとして、構成モデル２が「今日」、「は」、「暖かい」という単語の組み合わせとして登録されている。また、それぞれの構成モデルでは、状況情報である付加センサ情報、採用頻度も関連付けられて登録されている。
構成モデル１では、センサ種別が「温度（センサ）」であり、センサ値が「３０．００［度］」である。構成モデル２では、センサ種別が「温度（センサ）」であり、センサ値が「２４．００［度］」である。また、構成モデル１の採用頻度は「６」回、構成モデル２の採用頻度は「３」回である。
【００８６】
例えば、ユーザが入力した文字列「今日は」が入力確定した際の温度センサの検知結果に応じて、入力候補「暑い」が提示されたり、入力候補「暖かい」が提示されたりする。そのため、採用頻度に依存することなく、例えば文字列「今日は」が入力確定した時点の気温の状況に応じて入力候補「暑い」、あるいは入力候補「暖かい」を提示するように制御される。以下、このような場合の処理手順について、図２及び図３に示すフローチャートを用いて説明する。
【００８７】
ここでは、ユーザが気温（温度）３２度の状況下で入力した文字列「今日は」が入力確定済みであるとする。また、情報処理装置１０１が有するセンサ１０２は、温度センサであるとする。
図２に示すステップＳ２０１の処理において、入力確定済みの文字列に後続する確率の高い単語が入力候補として記憶装置１０３の辞書から取得される。入力確定済みの文字列「今日は」に対しては、「暑い」、「暖かい」という２つの入力候補が取得されたとする。
【００８８】
ステップ２０２の処理では、複数の入力候補を取得したと判定される。次に、ステップＳ２０４の処理において、取得された入力候補の中に状況情報に関連付けられているものがあるか否かが判定される。図７（ｂ）に示すように、入力候補「暑い」、「暖かい」は状況情報と関連付けられている。そのため、ステップＳ２０５の処理へ進む。ステップＳ２０５の処理において、情報処理装置１０１が温度センサを有していると判定される。その後、ステップＳ２０６の処理へ進み、状況の類似度が判定される。
【００８９】
本実施形態においては、同じ状況であるか否かを判定するために、図３に示すステップＳ３０１の処理において、温度センサの検知結果が取得される。ここでは、温度センサの検知結果は、温度３２．００［度］であるとする。
ステップＳ３０２の処理において、温度センサに対応する閾値が取得される。ここでは、閾値は３［度］であるとする。
【００９０】
ステップＳ３０３の処理において、入力候補「暑い」、「暖かい」の２つが特定される。そのため、ステップＳ３０４の処理で入力候補数Ｎは、Ｎ＝２として保持される。
ステップＳ３０５の処理において、入力候補Ｎ＝２番目の「暖かい」のセンサ値である温度（２４．００）と、ステップＳ３０１の処理で取得された温度センサの現在の検知結果である温度（３２．００）との差分が算出される。その結果、差分９［度］が得られる。
【００９１】
ステップＳ３０６の処理において、得られた差分が閾値以下であるか否かが判定される。閾値３［度］に対して差分９［度］であることから、同じ状況ではないと判定される。その後、ステップＳ３０９の処理へ進み、入力候補数Ｎ＝２がデクリメントされ、Ｎ＝１となる。
ステップＳ３１０の処理において、入力候補数ＮがＮ＝１であることから、ステップＳ３０５の処理に戻り、次の入力候補における差分が算出される。
ステップＳ３０５の処理において、入力候補Ｎ＝１番目の「暑い」のセンサ値である温度（３０．００）と、ステップＳ３０１の処理で取得された温度センサの現在の検知結果である温度（３２．００）との差分が算出される。その結果、差分２［度］が得られる。
【００９２】
ステップＳ３０６の処理において、得られた差分が閾値以下であるか否かが判定される。閾値３［度］に対して差分２［度］であることから、同じ状況であると判定され、判定結果が保持される。その後、ステップＳ３０９の処理へ進み、入力候補数Ｎ＝１がデクリメントされてＮ＝０となり、ステップＳ３１１の処理へ進む。ステップＳ３１１の処理においては、入力候補「暑い」は同じ状況であり、入力候補「暖かい」は同じ状況ではないという判定結果が出力される。
【００９３】
図２に示すステップＳ２０６の処理に戻り、次のステップＳ２０７の処理において同じ状況を示す入力候補があると判定され、ステップＳ２０９の処理において入力候補「暑い」が優先表示される。その後、ステップＳ２１０の処理においてユーザによる次の文字入力を待つことになる。なお、「暑い」のみが入力候補として表示されるように制御することもできる。
【００９４】
図７（ｃ）に示す辞書テーブルには、構成モデル１が「電車」、「に」、「乗りました」という単語の組み合わせとして、構成モデル２が「電車」、「に」、「乗ります」という単語の組み合わせとして登録されている。また、それぞれの構成モデルでは、状況情報である付加センサ情報、採用頻度も関連付けられて登録されている。
構成モデル１では、センサ種別が「加速度（センサ）」であり、センサ値が「移動」である。構成モデル２では、センサ種別が「加速度（センサ）」であり、センサ値が「停止」である。また、構成モデル１の採用頻度は「６」回、構成モデル２の採用頻度は「２」回である。
【００９５】
例えば、ユーザが入力した文字列「電車に」が入力確定した際の加速度センサの検知結果に応じて、入力候補「乗りました」が提示されたり、入力候補「乗ります」が提示されたりする。そのため、採用頻度に依存することなく、例えば文字列「電車に」が入力確定した際の状況に応じて入力候補「乗りました」、あるいは入力候補「乗ります」を提示するように制御される。以下、このような場合の処理手順について、図２及び図３に示すフローチャートを用いて説明する。
【００９６】
ここでは、ユーザが移動している状況下で入力した文字列「電車に」が入力確定済みであるとする。また、情報処理装置１０１が有するセンサ１０２は、加速度センサであるとする。
図２に示すステップＳ２０１の処理において、入力確定済みの文字列に後続する確率の高い単語が入力候補として記憶装置１０３から取得される。入力確定済みの文字列「電車に」に対しては、「乗りました」、「乗ります」という２つの入力候補が取得されたとする。
【００９７】
ステップ２０２の処理では、複数の入力候補を取得したと判定される。次に、ステップＳ２０４の処理において、取得された入力候補の中に状況情報に関連付けられているものがあるか否かが判定される。図７（ｃ）に示すように、入力候補「乗ります」、「乗りました」は状況情報と関連付けられている。そのため、ステップＳ２０５の処理へ進む。ステップＳ２０５の処理において、情報処理装置１０１が加速度センサを有していると判定される。その後、ステップＳ２０６の処理へ進み、状況の類似度が判定される。
【００９８】
本実施形態においては、同じ状況であるか否かを判定するために、図３に示すステップＳ３０１の処理において、直近１秒間分の加速度センサの検知結果が取得される。ここでは、ユーザは移動中であることから、検知結果に基づいて「移動」と推定される。
ステップＳ３０２の処理において、加速度センサに対応する閾値が取得される。ここでは、閾値が「０」であるとする。
【００９９】
ステップＳ３０３の処理において、入力候補「乗りました」、「乗ります」の２つが特定される。そのため、ステップＳ３０４の処理で入力候補数Ｎは、Ｎ＝２として保持される。
ステップＳ３０６の処理において、入力候補Ｎ＝２番目の「乗ります」のセンサ値である「停止」と、ステップＳ３０１の処理で取得された検知結果から推定された「移動」とが比較される。その結果、同じ状況ではないと判定される。その後、ステップＳ３０９の処理へ進み、入力候補数Ｎ＝２がデクリメントされ、Ｎ＝１となる。
ステップＳ３１０の処理において、入力候補数ＮがＮ＝１であることから、ステップＳ３０５の処理に戻り、次の入力候補との比較が行われる。
【０１００】
ステップＳ３０６の処理において、入力候補Ｎ＝１番目の「乗りました」のセンサ値である「移動」と、ステップＳ３０１の処理で取得された検知結果から推定された「移動」とが比較される。その結果、同じ状況であると判定され、判定結果が保持される。その後、ステップＳ３０９の処理へ進み、入力候補数Ｎ＝１がデクリメントされてＮ＝０となり、ステップＳ３１１の処理へ進む。ステップＳ３１１の処理においては、入力候補「乗りました」は同じ状況であり、入力候補「乗ります」は同じ状況ではないという判定結果が出力される。
【０１０１】
図２に示すステップＳ２０６の処理に戻り、次のステップＳ２０７の処理において同じ状況を示す入力候補があると判定され、ステップＳ２０９の処理において入力候補「乗りました」が優先表示される。その後、ステップＳ２１０の処理において次の文字入力を待つことになる。なお、「乗りました」のみが入力候補として表示されるように制御することもできる。
【０１０２】
このように、本実施形態の情報処理装置によれば、入力確定済みの文字列に後続する単語を予測し、ユーザが文字入力を行う際の状況に適合した入力候補を優先して提示することができる。これにより、ユーザは、例えばメール文書の作成、検索文字列の入力などを効率良く行うことができる。
【０１０３】
［第３実施形態］
本実施形態では、入力候補を提示している間にユーザの状況が変化した場合に、既に提示している入力候補を変更するか否かを判定することができる情報処理装置について説明する。なお、第１実施形態及び第２実施形態で既に説明した部分と重複する部分は、同じ符号を付すとともに、その説明を省略する。
【０１０４】
図８は、本実施形態に係る情報処理装置の機能構成の一例を示す図である。第１実施形態及び第２実施形態と異なる点は、変化検知部８０１を有する点である。
変化検知部８０１は、センサ１０２により検知される状況の変化を、ユーザの状況の変化として検知する。具体的には、入力候補が提示されている間にセンサ１０２が検知した検知結果（現在の検知結果）と、図２に示すステップＳ２０６の処理において取得されている検知結果（過去の検知結果）とを比較する。比較した結果、所定の値以上の差分が生じるような変化があった場合には、ユーザの状況が変化したものと判定する。ユーザの状況の変化とは、例えば入力を開始した時点では乗車待ちで停止している状況であったが、入力している最中に乗車して移動している状況になった場合などである。
【０１０５】
図９は、ユーザの状況が変化した場合に、その変化に応じた入力候補を追加表示する際の処理手順の一例を示すフローチャートである。本実施形態では、第１実施形態あるいは第２実施形態において図２のフローチャートに従った処理が実行され、ステップＳ２１０に進んだ状態において、取得部１１５がセンサ１０２の検知結果を状況情報として再度取得する。そして、変化検知部８０１が、ステップＳ２０６で用いた状況情報と比較し、２つの状況情報が異なる場合に、図９のフローチャートが起動されるものとする。ただし、変化検知部８０１は、図２のフローチャートに示されたメイン処理の進捗状況に関わらず、所定の周期で前回の検知結果と比較して変化があるかを判定し、変化を検知した時点で図９のフローチャートを起動させても構わない。ただしその場合には、少なくとも１回は、ステップＳ２０９あるはステップＳ２０８の処理により、入力候補が提示された後であることを条件とする。
ＣＰＵ１０７の機能部である判定部１１２は、変化検知部８０１によりユーザの状況が変化したと検知されたことを契機に、センサ１０２の検知結果を取得し、取得した検知結果を現在の状況として保持する（Ｓ９０１）。なお、取得する検知結果は、ユーザの状況が変化したことが検知されたセンサの検知結果である。
ＣＰＵ１０７の機能部である受付部１１３は、ユーザにより文字入力が行われている状況であるか否かを判定する（Ｓ９０２）。この判定は、ユーザの文字入力操作を検知することによる判定のほか、文字入力に要するアプリケーションソフトウエアが起動されているか、文字入力のためのキーパッドが起動されているかなどに基づき判定する。
【０１０６】
ＣＰＵ１０７の機能部である判定部１１２は、文字入力が行われている状況ではないと判定された場合（Ｓ９０２：Ｎｏ）、一連の処理を終了する。また、そうでない場合（Ｓ９０２：Ｙｅｓ）、この時点までにユーザに提示されている入力候補の中に、変化検知部８０１により検知結果の変化がみとめられたセンサ（例えば、加速度センサ）に対応する入力候補が含まれているか否かを判定する（Ｓ９０３）。例えば、センサ種別が共通する入力候補「乗ります」、「乗りました」の中で、当初は「乗ります」がユーザの状況に適合した入力候補であっても、状況の変化により今時点では「乗りました」がユーザの状況に適合した入力候補となる場合がある。
【０１０７】
ＣＰＵ１０７の機能部である判定部１１２は、対応する入力候補が含まれていると判定された場合（Ｓ９０３：Ｙｅｓ）、ステップＳ９０１の処理で保持した検知結果に対応する入力候補が記憶装置１０３に登録されているか否かを判定する（Ｓ９０４）。記憶した検知結果に対応する入力候補、つまり、現在のユーザの状況により適した入力候補が存在すると判定した場合（Ｓ９０４：Ｙｅｓ）、ＣＰＵ１０７の機能部である表示制御部１１０によって、当該入力候補が画面５００に追加表示される（Ｓ９０５）。また、そうでない場合（Ｓ９０４：Ｎｏ）、ステップＳ９０６の処理へ進む。
【０１０８】
ＣＰＵ１０７の機能部である判定部１１２は、入力確定済みの文字列の中に、変化検知部８０１により検知結果の変化がみとめられたセンサに対応する入力候補である文字列が含まれているか否かを判定する（Ｓ９０６）。対応する文字列が含まれていると判定した場合（Ｓ９０６：Ｙｅｓ）、ステップＳ９０１の処理で記憶した検知結果に対応する入力候補が辞書に登録されているか否かを判定する（Ｓ９０７）。記憶した検知結果に対応する入力候補はないと判定した場合（Ｓ９０７：Ｎｏ）、一連の処理を終了する。また、記憶した検知結果に対応する入力候補があると判定した場合（Ｓ９０７：Ｙｅｓ）、表示制御部１１０によって当該入力候補を修正候補として画面５００に追加表示させる（Ｓ９０８）。また、そうでない場合（Ｓ９０７：Ｎｏ）、一連の処理を終了する。
なお、入力確定済の文字列を修正候補に変更するか否かは、ユーザが任意に指定することができるように制御される。
【０１０９】
図１０は、ステップＳ９０５の処理において、入力候補を追加表示した画面の一例を示す図である。
図１０（ａ）に示す画面５００には、図５で既に説明した画面の一例と同じ内容が表示されている。図１０（ａ）では、メール作成しているユーザが「のり」を文字入力したことに対して、「乗ります」、「乗り換え」を含むいくつかの入力候補が表示されている様子を示している。なお、この場合の情報処理装置１０１が有するセンサ１０２は、加速度センサである。
【０１１０】
図１０（ｂ）は、入力候補を追加表示した際の画面５００の一例である。図１０（ｂ）に示すように、提示中の入力候補の中には、変化検知部８０１により特定されたセンサの検知結果に対応した入力候補「乗ります」１００１が含まれている。そのため、記憶した検知結果に対応する入力候補、つまり、現在の状況により適した入力候補が辞書に登録されているか否か検索が行われる。図１０（ｂ）に示すように、検索の結果、特定された入力候補「乗りました」１００２が追加表示される。
また、図１０（ｂ）に示すように、文字列「乗ります」１００１は、現在の状況により適した入力候補が存在する場合には、反転表示されるように制御する。これにより、ユーザは、追加表示された入力候補との対応関係の把握が容易になる。
【０１１１】
図１１は、ステップＳ９０８の処理において、修正候補を表示した画面の一例を示す図である。
図１１（ａ）に示す画面５００は、修正候補が表示される前の画面例である。図１１（ａ）では、ユーザが入力した文字列「今、電車に乗ります」が入力確定していることを示している。
図１１（ｂ）は、修正候補を表示した際の画面５００の一例である。図１１（ｂ）に示すように、入力確定済みの文字列の中には、変化検知部８０１により特定されたセンサの検知結果に対応した文字列「乗ります」１１０１が含まれている。そのため、記憶した検知結果に対応する入力候補、つまり、現在の状況により適する入力候補が辞書に登録されているか否か検索が行われる。図１１（ｂ）に示すように、検索の結果、特定された入力候補が修正候補「乗りました」１１０２として追加表示される。
また、図１１（ｂ）に示すように、文字列「乗ります」１１０１は、現在の状況により適した修正候補が存在する場合には、反転表示されるように制御する。これにより、ユーザは、追加表示された入力候補との対応関係の把握が容易になる。
【０１１２】
また、例えばスマートフォンである情報処理装置１０１を右手から左手に持ちかえているなど、ユーザが入力を中断している状況にあることを、加速度センサ、近接センサなどの検知結果に基づいて判定する。変化検知部８０１によりユーザの状況が変化したと検知されたことを契機に、その時点における情報処理装置１０１が有する全てのセンサの検知結果を取得し、取得した検知結果を記憶する。その後、入力の再開を契機に、再度、全てのセンサの検知結果を取得し、当該入力再開の前後で検知結果の変化がみとめられたものに対して、ステップＳ９０３の処理、ステップＳ９０６の処理を行う。
これにより、ユーザの状況の変化をより適切に反映させた入力候補、修正候補の提示を行うことができる。
【０１１３】
このように、本実施形態に係る情報処理装置によれば、ユーザが入力を行う状況が変化した場合には、提示済の入力候補に対して新たな入力候補を提示したり、既に入力確定済みの文字列に対して入力内容を変更するための修正候補を提示したりすることができる。
これにより、ユーザの状況に変化が生じた場合であっても、簡単に入力内容を変更したり、修正したりすることができる。そのため、ユーザの利便性が向上する。
【０１１４】
上記説明した実施形態は、本発明をより具体的に説明するためのものであり、本発明の範囲が、これらの例に限定されるものではない。
【図１】
2015045973.tif 000003
【図２】
2015045973.tif 000004
【図３】
2015045973.tif 000005
【図４】
2015045973.tif 000006
【図５】
2015045973.tif 000007
【図６】
2015045973.tif 000008
【図７】
2015045973.tif 000009
【図８】
2015045973.tif 000010
【図９】
2015045973.tif 000011
【図１０】
2015045973.tif 000012
【図１１】
2015045973.tif 000013