(本発明の基礎となった知見)
本発明者は、以下の課題を見出した。
図40は、本発明を適用していない文字列予測装置を示すブロック図である。
図40に示す文字入力予測装置900は、文字が入力される文字入力部953と、入力された文字から文字列を生成する文字列生成部954と、複数の候補文字列を保持する辞書を格納する辞書格納部955と、文字列生成部954で生成された文字列に基づいて予測文字列を辞書から検索する辞書検索部956と、予測文字列の出力順及び出力先の表示方法を管理する出力文字列バッファ部957と、予測文字列を表示装置に出力する出力部961とを備える。
しかしながら、この構成は、文字が入力された時点で単語辞書等を検索し、入力順で構成された文字で始まる文字列(単語)を抽出する。ただし、予測文字列が多い場合には、ユーザは求めている入力文字列を見つけ出すことに手間取ることがあった。つまり、このような文字入力予測装置では、より高速に予測文字列を絞り込むことが求められている。
本発明は、上記課題を解決するもので、高速に予測文字列を絞り込むことができる文字入力予測装置及び文字入力予測方法を提供することを目的とする。
前記課題を解決するために、本発明の一形態に係る文字入力予測装置は、複数の文字キーが配置された文字キーレイアウト表示を用いた、ユーザによる第1文字入力操作の情報を取得する第1操作入力部と、複数の候補文字列を保持する辞書を格納する辞書格納部と、前記文字キーレイアウト表示における前記複数の文字キーの配置を示す文字キーレイアウトを格納する文字キーレイアウト管理部と、前記第1文字入力操作の情報から、前記文字キーレイアウト表示における、前記第1文字入力操作の位置を示す第1指示位置と、前記第1文字入力操作の移動方向を示す第1指示方向とを検出する第1指示移動検出部と、前記第1指示位置と前記第1指示方向と前記文字キーレイアウトとを用いて、前記文字キーレイアウト表示における、前記第1指示位置を基点として前記第1指示方向側に位置する第1文字範囲を決定するフィルタ生成部と、前記辞書に保持される複数の候補文字列のうち、前記第1文字範囲に含まれる文字のいずれかを含む予測文字列を検索する辞書検索部とを備える。
この構成によれば、本発明の一形態に係る文字入力予測装置は、ユーザによる文字入力操作の移動方向に応じて、入力される文字範囲を絞り込み、当該文字範囲に含まれる文字を含む予測文字列を検索する。これにより、当該文字入力予測装置は、ユーザが文字を入力し終わる前に、予測文字列を絞り込むことができるので、高速に予測文字列を絞り込むことができる。
また、前記文字入力予測装置は、さらに、前記第1文字入力操作により入力された入力文字の情報を取得する文字入力部と、入力された順に前記入力文字を並べた入力文字列を生成する文字列生成部とを備え、前記辞書検索部は、前記辞書に保持される複数の候補文字列のうち、前記入力文字列の直後に前記第1文字範囲に含まれる文字のいずれかを加えた文字列が、文字列の先頭に含まれる予測文字列を検索してもよい。
また、前記文字入力予測装置は、さらに、指示起点を保持する指示位置格納部を備え、前記第1指示移動検出部は、前記第1指示位置を所定の時間ごとに検出し、前記指示起点が前記第1指示位置格納部に保持されていない場合、取得した前記第1指示位置を前記指示起点として、前記指示位置格納部に保持させ、前記指示起点を起点として、新たに取得した指示位置の方向を前記移動方向として検出してもよい。
この構成によれば、本発明の一形態に係る文字入力予測装置は、指示起点を用いて指示方向を検出できる。
また、前記第1指示移動検出部は、前記第1文字入力操作により文字が入力された場合、当該文字に対応する文字キーの位置を前記指示起点として、前記指示位置格納部に保持させてもよい。
この構成によれば、本発明の一形態に係る文字入力予測装置は、入力された文字キーの位置を基準として指示方向を判定できるので、より適切な指示方向を検出できる。
また、前記第1操作入力部は、文字入力操作の移動方向が垂直方向及び水平方向に限定されている入力装置を介して入力された文字入力操作の情報を取得してもよい。
この構成によれば、本発明の一形態に係る文字入力予測装置は、十字キー等の入力装置を用いる場合にも対応できる。
また、前記第1指示移動検出部は、前記第1指示位置を所定の時間ごとに検出し、前記文字入力予測装置は、さらに、前記第1指示移動検出部で検出された複数の指示位置を保持する指示位置格納部を備え、前記第1指示移動検出部は、前記指示位置格納部が保持する複数の指示位置を用いて前記第1指示方向を算出してもよい。
この構成によれば、本発明の一形態に係る文字入力予測装置は、複数の指示位置を用いて指示方向を検出できる。
また、前記フィルタ生成部は、前記文字入力操作が、前記指示起点から、前記指示起点に対して第1方向に位置する第1指示位置に移動したのち、当該第1指示位置から、当該第1指示位置に対して前記第1方向と反対の第2方向に位置する第2指示位置に移動した場合、前記指示起点と前記第2指示位置との間の範囲を前記第1文字範囲と判定してもよい。
この構成によれば、本発明の一形態に係る文字入力予測装置は、指示位置が行って戻ってくるような操作が行われた場合にも、適切な文字範囲を判定できる。
また、前記第1指示移動検出部は、前記第1指示位置を所定の時間ごとに検出し、前記文字入力予測装置は、さらに、前記第1指示移動検出部で検出された複数の指示位置を保持する指示位置格納部を備え、前記第1指示移動検出部は、さらに、前記複数の指示位置から前記第1文字入力操作の移動速度を算出し、前記フィルタ生成部は、前記移動速度が第1速度以上の場合、前記文字キーレイアウト表示における、前記第1指示位置を基点として前記第1指示方向側に位置する第1の大きさの範囲を前記第1文字範囲として決定し、前記移動速度が前記第1速度未満の場合、前記文字キーレイアウト表示における、前記第1指示位置を基点として前記第1指示方向側に位置する、前記第1の大きさより小さい第2の範囲を前記第1文字範囲として決定してもよい。
この構成によれば、本発明の一形態に係る文字入力予測装置は、文字入力操作の移動速度を用いて、より適切な文字範囲を判定できる。
また、前記第1指示移動検出部は、前記第1指示位置を所定の時間ごとに検出し、前記文字入力予測装置は、さらに、前記第1指示移動検出部で検出された複数の指示位置を保持する指示位置格納部を備え、前記第1指示移動検出部は、さらに、前記複数の指示位置から前記第1文字入力操作の移動速度を算出し、前記フィルタ生成部は、前記移動速度が第2速度未満の場合、前記文字キーレイアウト表示における、前記第1指示位置を基点として前記第1指示方向側に位置する第1の大きさの範囲を前記第1文字範囲として決定し、前記移動速度が前記第2速度以上の場合、前記第1の大きさの範囲から、当該第1の大きさの範囲に含まれる前記第1指示位置側の範囲を除外した第2の範囲を前記第1文字範囲として決定してもよい。
この構成によれば、本発明の一形態に係る文字入力予測装置は、文字入力操作の移動速度を用いて、より適切な文字範囲を判定できる。
また、前記第1指示移動検出部は、前記第1文字入力操作の移動角度であり、前記第1指示方向を細分化した指示角度を算出し、前記フィルタ生成部は、前記第1指示方向ごとに定められた基準範囲から、前記指示角度ごとに定められた削除範囲を除外することにより、前記第1文字範囲を判定してもよい。
この構成によれば、本発明の一形態に係る文字入力予測装置は、文字入力操作の移動角度を用いて、より適切な文字範囲を判定できる。
また、前記文字入力予測装置は、さらに、前記文字キーレイアウト表示を用いた、ユーザによる第2文字入力操作の情報を取得する第2操作入力部と、前記第2文字入力操作の情報から、前記文字キーレイアウト表示における、前記第2文字入力操作の位置を示す第2指示位置と、前記第2文字入力操作の移動方向を示す第2指示方向とを検出する第2指示移動検出部と、前記第2指示位置と前記第2指示方向と前記文字キーレイアウトとを用いて、前記文字キーレイアウト表示における、前記第2指示位置を基点として前記第2指示方向側に位置する第2文字範囲を判定するフィルタ生成部と、前記第1文字範囲及び前記第2文字範囲に共に含まれる第3文字範囲を抽出するフィルタ合成部とを備え、前記辞書検索部は、前記辞書に保持される複数の候補文字列のうち、前記第3文字範囲に含まれる文字のいずれかを含む予測文字列を検索してもよい。
この構成によれば、本発明の一形態に係る文字入力予測装置は、2つの文字入力操作を用いる場合に、高速に予測文字列を絞り込むことができる。
また、前記フィルタ生成部は、さらに、前記第1文字入力操作が移動し、かつ、前記第2文字入力操作の移動量が予め定められた閾値以下の場合、前記第1文字範囲に含まれ、かつ、前記第2指示位置を基点として前記第1指示位置側の範囲を前記第3文字範囲に決定してもよい。
この構成によれば、本発明の一形態に係る文字入力予測装置は、2つの文字入力操作の一方のみが移動している場合に、より適切な文字範囲を範囲できる。
また、前記フィルタ生成部は、さらに、前記第1文字入力操作が移動し、かつ、前記第2文字入力操作の移動量が予め定められた閾値以下の場合、前記第1文字範囲に含まれ、かつ、基準点を基点として前記第1指示位置側の範囲を前記第3文字範囲に決定し、前記基準点は、前記第1指示位置と前記第2指示位置との間の点であってもよい。
この構成によれば、本発明の一形態に係る文字入力予測装置は、2つの文字入力操作の一方のみが移動している場合に、より適切な文字範囲を範囲できる。
また、前記フィルタ生成部は、さらに、前記第2文字入力操作より前記第1文字入力操作の移動量が大きい場合、前記第1文字範囲を前記第3文字範囲に決定し、前記第1文字入力操作より前記第2文字入力操作の移動量が大きい場合、前記第2文字範囲を前記第3文字範囲に決定してもよい。
この構成によれば、本発明の一形態に係る文字入力予測装置は、2つの文字入力操作が逆方向に移動している場合に、より適切な文字範囲を範囲できる。
また、前記第1フィルタ生成部は、所定の時間ごとに前記第1文字範囲を決定するとともに、古い第1文字範囲と新たな第1文字範囲との変化量を範囲し、前記変化量が予め定められた閾値以上の場合に、第1文字範囲を前記新たな第1文字範囲に更新し、前記辞書検索部は、前記辞書に保持される複数の候補文字列のうち、更新された前記第1文字範囲に含まれる文字のいずれかを含む予測文字列を検索してもよい。
この構成によれば、本発明の一形態に係る文字入力予測装置は、予測結果が大きく変化する場合にのみ、予測結果の表示等を更新することで、予測結果の表示等が頻繁に更新されることを防止できる。
また、前記文字入力予測装置は、前記第1文字範囲を前記文字キーレイアウト表示上に表示してもよい。
この構成によれば、本発明の一形態に係る文字入力予測装置は、予測した文字範囲をユーザに明示できる。
また、前記文字入力予測装置は、前記辞書検索部により検索された、前記第1文字範囲に含まれる文字のいずれかを含む前記予測文字列を表示してもよい。
この構成によれば、本発明の一形態に係る文字入力予測装置は、予測した文字を含む予測文字列をユーザに強調して表示できる。
なお、本発明は、このような文字入力予測装置として実現できるだけでなく、文字入力予測装置に含まれる特徴的な手段をステップとする文字入力予測方法として実現したり、そのような特徴的なステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、CD−ROM等の非一時的なコンピュータ読み取り可能な記録媒体、及びインターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
さらに、本発明は、このような文字入力予測装置の機能の一部又は全てを実現する半導体集積回路(LSI)として実現したり、このような文字入力予測装置を含む文字入力システムとして実現したりできる。
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下で説明する実施の形態は、いずれも本発明の好ましい一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。本発明は、請求の範囲によって特定される。よって、以下の実施の形態における構成要素のうち、本発明の最上位概念を示す独立請求項に記載されていない構成要素については、本発明の課題を達成するのに必ずしも必要ではないが、より好ましい形態を構成するものとして説明される。
(実施の形態1)
本発明の実施の形態1に係る文字入力予測装置は、ユーザによる文字入力操作の移動方向に応じて、入力される文字範囲を絞り込み、当該文字範囲に含まれる文字を含む予測文字列を検索する。これにより、当該文字入力予測装置は、ユーザが次の文字を入力し終わる前に、予測文字列を絞り込むことができるので、高速に予測文字列を絞り込むことができる。
具体的には、当該文字入力予測装置は、文字入力操作の移動方向に含まれる文字キーレイアウトに割り当てた文字を使用して予測文字列を生成する。
なお、本発明の実施の形態1では、文字入力操作の位置を示す指示位置1点と、文字入力操作の移動方向を示す指示方向1方向とから、ユーザが入力する文字範囲1点を予測する場合の例を示す。
まず、本発明の実施の形態1に係る文字入力予測装置の基本構成を説明する。
図1は、本発明の実施の形態1に係る文字入力予測装置100の基本構成を示すブロック図である。
図1に示す文字入力予測装置100は、ユーザが文字を入力する前にユーザが入力する文字範囲を予測し、予測結果に応じて予測文字列を出力する。
この文字入力予測装置100は、フィルタ生成部101と、操作入力部150と、文字キーレイアウト管理部151と、指示移動検出部152と、辞書格納部155と、辞書検索部156とを備える。
操作入力部150は、複数の文字キーが配置された文字キーレイアウト表示を用いた、ユーザによる文字入力操作の情報である文字入力操作情報を取得する。
辞書格納部155は、複数の候補文字列を保持する辞書170を格納する。
文字キーレイアウト管理部151は、文字キーレイアウト表示における複数の文字キーの配置を示す文字キーレイアウト301を格納する。
指示移動検出部152は、操作入力部150により取得された文字入力操作情報から、文字キーレイアウト表示における、文字入力操作の位置を示す指示位置521と、文字入力操作の移動方向を示す指示方向522とを検出する。
フィルタ生成部101は、指示位置521と指示方向522と文字キーレイアウト301とを用いて、文字キーレイアウト表示における、指示位置521を基点として指示方向522側に位置する文字範囲523を判定する。
辞書検索部156は、辞書に保持される複数の候補文字列のうち、文字範囲523に含まれる文字のいずれかを含む文字列(以下、予測文字列)を検索する。
次に、文字入力予測装置100による動作の流れを説明する。
図2は、本発明の実施の形態1に係る文字入力予測装置100による文字入力予測処理のフローチャートである。
まず、指示移動検出部152は、操作入力部150を介して、ユーザによる文字入力操作が発生したことを確認する(S101)。
次に、指示移動検出部152は、当該文字入力操作に基づき、指示位置521と指示方向522とを検出する(S102)。
次に、フィルタ生成部101は、文字キーレイアウト表示において、指示位置521を基点として指示方向522側に位置する文字範囲523を判定する(S103)。
次に、辞書検索部156は、辞書に保持される複数の候補文字列のうち、文字範囲523に含まれる予測文字のいずれかを含む予測文字列を検索する(S104)。
以下、本発明の実施の形態1に係る文字入力予測装置100の詳細な構成及び動作を説明する。
なお、以下では、各図において同一の要素には同一の符号を付し、重複する説明は省略する。
図3は、本発明の実施の形態1に係る文字入力予測装置100Aの詳細な構成を示すブロック図である。
図3に示す文字入力予測装置100Aは、ユーザが文字を入力する前にユーザが入力する文字範囲を予測し、予測結果に応じて予測文字列を出力する。
この文字入力予測装置100Aは、図1に示す構成に加え、さらに、文字入力部153と、文字列生成部154と、出力文字列バッファ部157と、予測表示条件管理部158と、予測制御部159と、出力制御部160と、出力部161とを備える。
文字入力部153は、複数の文字キーに対するユーザの操作により入力された入力文字を取得する。
文字列生成部154は、文字入力部153に入力された入力文字から文字列を生成する。具体的には、文字列生成部154は、文字が入力されていない状態では、新たに入力された文字を文字列として生成する。また、文字列生成部154は、次の文字が入力された場合、現在の文字列の直後に新たに入力された文字を加えた文字列を新たな文字列として生成する。
文字キーレイアウト管理部151は、文字を割り当てた複数の文字キーの配置を示す文字キーレイアウト301を格納する。
図4は、文字キーレイアウト301の一例を示す図である。
図4に示すように、文字キーレイアウト301は、複数の文字302と、各文字302に対応するレイアウト位置303とを含む。複数の文字302は、文字キーに配置されている表示文字を示す。レイアウト位置303は、文字キーにおける、対応する文字302の表示位置(座標)を示す。
レイアウト位置303は、文字位置の開始位置304と文字位置の終了位置305とを含む。例えば、各文字302は、四角形で表示されており、開始位置304及び終了位置305は、当該四角形の対角となる2つの角の座標である。開始位置304は、X軸座標341及びY軸座標342を含む。終了位置305は、X軸座標351及びY軸座標352を含む。
指示移動検出部152は、ユーザによる文字入力操作の位置を示す指示位置521と、文字入力操作の移動方向を示す指示方向522とを検出する。具体的には、指示移動検出部152は、ユーザが入力操作をしている操作位置をX軸座標及びY軸座標を用いて表し、指示位置521として検出する。また、指示移動検出部152は、文字入力操作の移動方向を指示方向522として検出する。
また、ユーザの文字の入力方法としては、以下の方法がある。第1の方法は、マウス、タッチパッド又は十字キー等によりポインタを移動させ、マウスのクリック、又はボタンの押下によりポインタ位置の文字を選択する方法である。この場合、指示位置521は、ポインタの位置であり、指示方向522はポインタが移動する方向である。
第2及び第3の方法はタッチパネルを用いる方法である。第2の方法は、ユーザが指を、タッチパネル上をなぞるように移動させる方法である。また、文字の選択は、ユーザがパネルを強く押す、又は、所定の時間以上指を静止させることで行われる。この場合、指示位置521は、タッチパネルに接触しているユーザの指の位置であり、指示方向522は、ユーザの指の移動方向である。
第3の方法は、ユーザがタッチパネル上の文字位置をタッチすることで文字を入力する方法である。この場合、指示位置521は、ユーザがタッチした位置である。また、指示方向522は、ユーザがタッチパネルから指を離した方向である。この情報は、タッチパネルと指の接触面のうち、どの方向の部分から指が離れ始めるかを検知することで検出できる。
図5Aは、文字キーレイアウト表示501の一例を示す図である。
指示位置521は、ユーザによる文字入力操作の位置を示すものであって、ユーザの入力動作によって移動する。
指示方向522は、ユーザが入力する文字位置に向けて操作する様子を表現しており、文字入力操作の移動方向を示す。
文字範囲523は、当該文字入力予測装置が予測した、ユーザが入力する文字の範囲を示す。
座標Xb531は、指示位置521のX軸座標502を示す。
座標Yb532は、指示位置521のY軸座標503を示す。
図5Bは、指示位置521の具体例を示す図である。図5Bに示すように、指示位置521は、座標Xb531及び座標Yb532を含む。
フィルタ生成部101は、指示移動検出部152によって検出された指示位置521と指示方向522とから入力操作が行われたと判断して、ユーザが入力する文字範囲523を予測する。つまり、フィルタ生成部101は、文字キーレイアウト301において、指示位置521を基点として指示方向522側に位置する文字範囲523を抽出する。
例えば、フィルタ生成部101は、フィルタ生成部101が保持する文字範囲定義401と、指示位置521に含まれる座標Xb531及び座標Yb532と、指示方向522とを用いて、文字範囲条件403を決定する。さらに、フィルタ生成部101は、文字範囲条件403と、文字キーレイアウト管理部151からの文字キーレイアウト301のレイアウト位置303とを用いて、文字302が文字範囲条件403の範囲内であるかを判断して、ユーザが文字を入力する文字範囲523を予測する。また、ユーザの入力文字として文字範囲523を文字入力部153用に準備する。
図6は、フィルタ生成部101が保持する文字範囲定義401の一例を示す図である。
文字範囲定義401は、複数の指示方向402と、複数の指示方向402の各々に対応する文字範囲条件403とを含む。
指示方向402は、ユーザによる文字入力操作の方向を示し、上述した指示方向522に対応する。
文字範囲条件403は、指示方向402が、対応する指示方向402の場合に文字範囲523を算出するために用いる関数を示す。この文字範囲条件403は、開始位置404と終了位置405とを含む。また、座標Xb411は、指示位置521に含まれる座標Xb531であり、座標Yb412は、指示位置521に含まれる座標Yb532である。
辞書検索部156は、文字入力部153に入力された文字に基づいて予測文字列を辞書170から検索する。具体的には、辞書検索部156は、文字列生成部154で生成された文字列を先頭に含む文字列(以下、検索文字列)を検索する。
出力文字列バッファ部157は、辞書検索部156で検索された検索文字列を一時的に保持するとともに、検索文字列の出力順及び出力先の表示方法を管理する。
予測表示条件管理部158は、文字範囲523を用いた表示非表示を含む表示条件を有する。例えば、予測表示条件管理部158は、検索文字列のうち、文字範囲523に含まれる文字のいずれかを含む予測文字列は表示し、その他の文字列は非表示にする。なお、予測表示条件管理部158は、全ての検索文字列を表示するとともに、予測文字列を強調表示してもよい。
予測制御部159は、出力文字列バッファ部157から出力された文字列群を予測表示条件管理部158からの表示条件を用いて条件別に表示分けを行う。
出力制御部160は、予測制御部159によって条件別に表示分けされた文字列を表示装置に合わせて成型する。
出力部161は、出力制御部160により成型された文字列を表示装置に出力する。
続いて、実施の形態1に係る文字入力予測装置100Aの動作の具体例を説明する。
図5A及び図5Bに示す例のように、指示位置521に含まれる座標Xb531が「800」であり、座標Yb532が「300」であるとする。また、指示方向522が「水平方向左」であるとする。
この場合、図6に示す指示方向402が水平方向左421の場合に対応する。よって、フィルタ生成部101は、文字範囲条件403として「(0,0):(座標Xb411,500)」を選択する。さらに、フィルタ生成部101は、座標Xb411に座標Xb531(=800)を代入する。これにより、文字範囲条件403は「(0,0):(800,500)」となる。
次に、フィルタ生成部101は文字範囲523を算出する。具体的には、フィルタ生成部101は、文字範囲条件403「(0,0):(800,500)」と文字キーレイアウト301のレイアウト位置303とを用いて、文字302が文字範囲条件403「(0,0):(800,500)」の範囲内か範囲外かを判断する。
ここでは、その結果、文字範囲523に「さ、し、す、せ、そ、た、ち、つ、て、と、な、に、ぬ、ね、の、は、ひ、ふ、へ、ほ、ま、み、む、め、も、や、ゆ、よ、ら、り、る、れ、ろ、わ、を、ん、−」が含まれる。
以上より、本発明の実施の形態1に係る文字入力予測装置100Aは、指示方向522に応じて、入力される文字範囲523を絞り込み、当該文字範囲523に含まれる文字を含む予測文字列を検索する。これにより、文字入力予測装置100Aは、ユーザが文字を入力し終わる前に予測文字列を絞り込むことができるので、高速に予測文字列を絞り込むことができる。
なお、上記説明では、辞書検索部156が、複数の候補文字列から、文字列生成部154に生成された文字列を含む検索文字列を検索し、予測制御部159が検索文字列から、予測文字を含む予測文字列を検索するとしたが、予測文字列以外を表示しない場合には、辞書検索部156が複数の候補文字列から予測文字列を検索してもよい。
また、本発明は、ユーザが文字列の2文字目以降を入力する場合に限らず、1文字目を入力する場合にも適用できる。また、この場合の機能は、上述した文字入力部153及び文字列生成部154を備えなくても実現可能である。
また、ここでは、日本語の文字入力を行う場合について説明したが、これ以外の言語についても同様に本実施の形態を適用することができる。また、以下の実施の形態では主に日本語入力に本発明を適用した場合について説明するが、以下の実施の形態も同様に他の言語に適用できることは言うまでもない。
一例として、英文字入力を行う場合について説明する。
図7は、英字入力用の文字キーレイアウト301の一例を示す図である。図8Aは、英文字入力用の文字キーレイアウト表示501の一例を示す図である。また、図8Bは、この場合の指示位置521の具体例を示す図である。
以下、英文字入力を用いる場合の文字入力予測装置100Aの動作の具体例を説明する。
図8A及び図8Bに示す例のように、指示位置521に含まれる座標Xb531が「400」であり、座標Yb532が「200」であるとする。また、指示方向522が「水平方向左」であるとする。
この場合、図6に示す指示方向402が水平方向左421の場合に対応する。よって、フィルタ生成部101は、文字範囲条件403として「(0,0):(座標Xb411,500)」を選択する。さらに、フィルタ生成部101は、座標Xb411に座標Xb531(=400)を代入する。これにより、文字範囲条件403は「(0,0):(400,500)」となる。
次に、フィルタ生成部101は文字範囲523を算出する。具体的には、フィルタ生成部101は、文字範囲条件403「(0,0):(400,500)」と文字キーレイアウト301のレイアウト位置303とを用いて、文字302が文字範囲条件403「(0,0):(400,500)」の範囲内か範囲外かを判断する。
ここでは、その結果、文字範囲523に「1、2、3、4、Q、W、E、R、A、S、D、F、Z、X、C、V」が含まれる。
なお、図8Aに示す例では、文字キーレイアウト表示501に数字が含まれているが含まれてなくてもよい。同様に、文字キーレイアウト表示501には記号「,」及び「.」並びに「スペース」は含まれなくてもよい。なお、文字キーレイアウト表示501には、上記以外の記号等が含まれてもよい。また、文字キーの配置は図9に示すように、縦方向に段差を設けた配置でもよい。
(実施の形態2)
実施の形態2では、指示方向522を算出する具体的な処理方法を説明する。
図10は、本発明の実施の形態2に係る文字入力予測装置100Bの構成を示すブロック図である。
図10に示す文字入力予測装置100Bは、図3に示す構成に加え、さらに、指示位置格納部102を備える。なお、図10において、図3と同一の要素については同一の符号を用いている。
また、図11Aは、本発明の実施の形態2における文字キーレイアウト表示501を用いた文字入力操作状況の一例を示す図である。
指示移動検出部152は、所定時間ごとに指示位置521を検出する。
指示位置格納部102は、指示位置521を指示移動検出部152から取得し、順次格納する。また、指示位置格納部102は、指示位置格納部102に指示起点721が保持されていない時、指示移動検出部152から通知される指示位置521を指示起点721として保持する。ここで、指示起点721は、ユーザによる文字入力操作の開始位置を示す。
座標Xa731は、指示起点721のX軸座標502を示す。
座標Ya732は、指示起点721のY軸座標503を示す。
図11Bは、本発明の実施の形態2における指示位置521具体例を示す図である。図11Bに示すように、指示位置521は、さらに、時間経過541を含む。また、座標Xb531及び座標Yb532は、時間経過541ごとに設定されている。時間経過541は、文字入力操作の経過を示す。
図11Cは、本発明の実施の形態2における指示起点721の具体例を示す図である。指示起点721は座標Xa731及び座標Ya732を含む。
また、指示位置格納部102に指示起点721が保持されている時、指示移動検出部152は、指示位置格納部102に保持されている指示起点721と、指示移動検出部152が検出した新たな指示位置521とから、指示方向522を判定する。具体的には、指示移動検出部152は、指示起点721に対して、新たな指示位置521がどの方向に位置するかに応じて指示方向522を判定する。
なお、指示移動検出部152が指示方向522を判定するのではなく、フィルタ生成部101が、指示起点721と新たな指示位置521とから、直接、文字範囲523を予測してもよい。
例えば、フィルタ生成部101は、フィルタ生成部101が保持する文字範囲定義401Aと、指示位置521と、指示起点721とを用いて、文字範囲条件403を決定する。
図12は、この場合のフィルタ生成部101が備える文字範囲定義401Aの一例を示す図である。図12に示す文字範囲定義401Aは、図6に示す文字範囲定義401Aに対して、指示方向402Aの定義が異なる。
文字範囲定義401Aは、複数の指示方向402Aと、複数の指示方向402Aの各々に対応する文字範囲条件403を含む。
指示方向402Aは、ユーザによる文字入力操作の方向を示し、指示起点721と指示位置521とで決定される。
次に、この場合の文字入力予測装置100Bの動作の流れを説明する。
図13は、文字入力予測装置100Bによる文字入力予測処理のフローチャートである。また、図13に示すステップS101、S103及びS104の処理は、図2に示すステップS101、S103及びS104の処理と同様である。また、図13に示すステップS111〜S114の処理は、図2に示すステップS102の処理の具体例である。
ステップS101の後、指示移動検出部152は、ユーザの文字入力操作に基づき、指示位置521を取得する(S111)。
次に、指示移動検出部152は、指示位置格納部102に、指示起点721が保持されているかどうかを確認する(S112)。
指示起点721が保持されていない場合(S112でNo)、指示移動検出部152は、指示位置521を指示起点721として指示位置格納部102に保持し、ステップS101へ進む(S113)。
一方、指示起点721が保持されている場合(S112でYes)、指示移動検出部152は、指示位置521と指示起点721とから指示方向522を判定する(S114)。そして、フィルタ生成部101は、指示位置521と指示方向522とを用いて文字範囲523を予測する(S103)。
続いて、図12の文字範囲定義401Aを用いる場合の文字入力予測装置100Bによる動作の具体例として図11A〜図11Cに示す例を説明する。図11A〜図11Cに示す例では、時間経過541が「1」の時点における指示位置521は、座標Xb531が「800」であり、と座標Yb532が「300」である。この場合、指示起点721の座標Xa731に「800」が、座標Ya732に「300」が設定される。
次に、ユーザによる文字入力操作に移動があり、時間経過541が「2」の時点になる。そして、指示位置521の座標Xb531は「700」になり、座標Yb532は「300」になる。このとき、既に指示起点721が保持されているので、次に、フィルタ生成部101は文字範囲523を判定する。
具体的には、図12に示す指示方向402Aが「座標Xa731>座標Xb531、座標Ya732=座標Yb532」の場合なので、文字範囲条件403は「(0,0):(座標Xb411,500)」となる。さらに、座標Xb411に座標Xb531(=700)が代入されて、文字範囲条件403は、「(0,0):(700,500)」となる。そして、フィルタ生成部101は、文字範囲条件403「(0,0):(700,500)」と文字キーレイアウト301のレイアウト位置303とを用いて、各文字302が文字範囲条件403「(0,0):(700,500)」の範囲内か範囲外かを判断する。
その結果、文字範囲523は、「た、ち、つ、て、と、な、に、ぬ、ね、の、は、ひ、ふ、へ、ほ、ま、み、む、め、も、や、ゆ、よ、ら、り、る、れ、ろ、わ、を、ん、−」となる。
以上より、本発明の実施の形態2に係る文字入力予測装置100Bは、指示起点721を用いて適切な指示方向522を検出できる。
(実施の形態3)
実施の形態3では、上記指示起点721の決定方法の詳細を説明する。
なお、実施の形態3に係る文字入力予測装置100の構成は、例えば、図10に示す構成と同様である。
図14Aは、本発明の実施の形態3における文字キーレイアウト表示501を用いた文字入力操作状況の一例を示す図である。
図14Aに示す文字921は、ユーザにより入力された文字である。また、図14Aに示す例では、文字921が「つ」の場合が例示されている。
図14Bは、この場合の指示位置521の具体的な数値例を示す図である。
図14Cは、この場合の指示起点721の具体的な数値例を示す図である。図14Cに示す指示起点721は、さらに、時間経過741を含む。また、座標Xa731及び座標Ya732は、時間経過741ごとに設定されている。時間経過741は、文字の入力による指示起点721の更新の経過を示す。
また、指示位置格納部102は、指示起点721が保持されていない時、指示移動検出部152から通知される指示位置521を指示起点721として保持する。また、指示位置格納部102は、指示起点721を保持している時において、ユーザが文字を入力すると、当該文字に対尾する文字キーの位置を指示起点721として保持する。具体的には、指示移動検出部152は、文字入力部153から当該文字302を受け取る。そして、指示移動検出部152は、文字キーレイアウト301と、文字入力部153からの文字302とを用いて、当該文字302に対応する文字キーの位置を指示位置521として算出する。そして、指示移動検出部152は、算出した指示位置521を、指示起点721として指示位置格納部102に保持する。
次に、実施の形態3に係る文字入力予測装置の動作の流れを説明する。
図15は、実施の形態3に係る文字入力予測装置による文字入力予測処理のフローチャートである。図15に示す処理は、図13に示す処理に対して。ステップS121及びS122の処理が追加されている。
ステップS101の後、指示移動検出部152は、ユーザによる文字入力操作により文字302が入力されたか否かを判定する(S121)。
文字入力操作情報により文字が入力されたことが示される場合(S121でYes)、指示移動検出部152は、文字入力部153からの文字の情報と、文字キーレイアウト301とを用いて指示位置521を算出する(S122)。次に、指示移動検出部152は、ステップS122で算出された指示位置521を指示起点721として指示位置格納部102に保持し、ステップS101へ進む(S113)。
なお、文字が入力されていない場合(S121でNo)の処理は、図13の処理と同様である。
続いて、実施の形態3に係る文字入力予測装置による動作の具体例として図14A〜図14Cに示す例を説明する。図14A〜図14Cに示す例では、時間経過541が「1」の時点における最初の指示位置521の座標Xb531は「800」であり、座標Yb532は「300」である。また、時間経過741が「1」の時点における指示起点721の座標Xa731に「800」が、座標Ya732に「300」が設定される。
次に、ユーザによる文字入力操作に移動があり、時間経過541が「2」の時点になる。そして、指示位置521の座標Xb531は「700」になり、座標Yb532は「300」になる。
次に、ユーザの文字入力操作により、移動先の位置に配置されている文字「つ」が選択される。文字が入力されると、時間経過541が「2」の時点における指示位置521である座標Xb531(=700)及び座標Yb532(=300)が、時間経過741が「2」における時点における指示起点721の座標Xa731及び座標Ya732「300」に設定される。
次の文字入力操作により、時間経過541が「3」の時点における指示位置521の座標Xb531は「800」になり、座標Yb532は「300」になる。
次に、フィルタ生成部101は文字範囲523を判定する。具体的には、図12に示す、指示方向402Aが「座標Xa731<座標Xb531、座標Ya732=座標Yb532」の場合なので、文字範囲条件403は「(座標Xb411,0):(1000,500)」となる。さらに、座標Xb411に座標Xb531(=800)が代入されて、文字範囲条件403が「(800,0):(1000,500)」となる。そして、フィルタ生成部101は、文字範囲条件403「(800,0):(1000,500)」と文字キーレイアウト301のレイアウト位置303とを用いて、各文字302が文字範囲条件403「(800,0):(1000,500)」の範囲内か範囲外かを判断する。
その結果、文字範囲523は、「あ、い、う、え、お、か、き、く、け、こ」となる。
以上より、本発明の実施の形態3に係る文字入力予測装置は、入力された文字キーの位置を基準として指示方向522を判定できるので、より適切な指示方向522を検出できる。
(実施の形態4)
実施の形態4では、ユーザによる文字入力操作が、十字キー等により行われる場合の動作を説明する。つまり、文字入力操作は、指示方向522が垂直方向と水平方向とに限定される場合である。
なお、実施の形態4に係る文字入力予測装置の構成は、例えば、図10と同様である。
図16Aは、この場合の、文字キーレイアウト表示501を用いた文字入力操作状況の一例を示す図である。また、文字範囲523A及び文字範囲523Bは、ユーザが入力する文字位置が予測される範囲を示し、上述した文字範囲523に相当する。
図16Bは、この場合の指示位置521の具体的な数値例を示す図である。図16Cは、この場合の指示起点721の具体的な数値例を示す図である。
以下、図16A〜図16Cに示す例における、文字入力予測装置100の動作の具体例を説明する。
図16A〜図16Cに示す例では、時間経過541が「1」の時点における最初の指示位置521の座標Xb531は「800」であり、座標Yb532は「300」である。また、指示起点721の座標Xa731は「800」であり、座標Ya732は「300」である。
次に、ユーザによる十字キー操作により、文字入力操作の位置が垂直方向上に移動する。そして、時間経過541が「2」の時点で、指示位置521の座標Xb531は「800」になり、座標Yb532は「200」になる。
このとき、指示方向402Aは「座標Xa731=座標Xb531、座標Ya732>座標Yb532」なので、文字範囲条件403は「(0,0):(1000,座標Yb412)」となる。さらに、座標Yb412に座標Yb532=200)が代入されて、文字範囲条件403が「(0,0):(1000,200)」となる。次に、文字範囲523Aが求められる。
具体的には、フィルタ生成部101は、文字範囲条件403「(0,0):(1000,200)」と文字キーレイアウト301のレイアウト位置303とを用いて、各文字302が文字範囲条件403「(0,0):(1000,200)」の範囲内か範囲外かを判断する。
その結果、文字範囲523Aは、「あ、い、か、き、さ、し、た、ち、な、に、は、ひ、ま、み、や、ゆ、ら、り、わ、を」となる。
次に、ユーザによる十字キー操作により、文字入力操作の一が水平方向左に移動する。そして、時間経過541が「3」の時点で、指示位置521の座標Xb531は「700」になり、座標Yb532は「200」になる。
このとき、指示方向402Aは「座標Xa731>座標Xb531、座標Ya732>座標Yb532」なので、文字範囲条件403は「(0,0):(座標Xb411,座標Yb412)」となる。さらに、座標Xb411に座標Xb531(=700)が代入されるとともに、座標Yb412に座標Yb532(=200)が代入されることで、文字範囲条件403が「(0,0):(700,200)」となる。次に、文字範囲523Bが求められる。
具体的には、フィルタ生成部101は、文字範囲条件403「(0,0):(700,200)」と文字キーレイアウト301のレイアウト位置303とを用いて、各文字302が文字範囲条件403「(0,0):(700,200)」の範囲内か範囲外かを判断する。
その結果、文字範囲523Aは、「た、ち、な、に、は、ひ、ま、み、や、ゆ、ら、り、わ、を」となる。
以上より、本発明の実施の形態4に係る文字入力予測装置は、十字キー等の入力装置を用いる場合にも対応できる。
(実施の形態5)
上述した実施の形態2では、指示方向522を、指示起点721を用いて算出する例を述べた。実施の形態5では、指示方向522を算出する別の処理方法を説明する。
実施の形態5に係る文字入力予測装置は、複数の指示位置521を用いて、指示方向522を算出する。
なお、実施の形態5に係る文字入力予測装置の構成は、例えば、図10と同様である。
図17Aは、本発明の実施の形態5における文字キーレイアウト表示501を用いた文字入力操作状況の一例を示す図である。図17Bは、本発明の実施の形態5における指示位置521の具体的な数値例を示す図である。
また、フィルタ生成部101は、図6に示す文字範囲定義401を用いるとする。
指示移動検出部152は、所定時間ごとに指示位置521を検出する。
指示位置格納部102は、指示移動検出部152により検出された複数の指示位置521を保持する。
また、指示移動検出部152は、指示位置格納部102に保持されている複数の指示位置521を用いて指示方向522を算出する。そして、フィルタ生成部101は、算出された指示方向522を用いて文字範囲条件403を決定する。
続いて、実施の形態5に係る文字入力予測装置の動作の具体例を図17A及び図17Bを用いて説明する。
図17A及び図17Bに示す例では、時間経過541が「1」の時点における指示位置521の座標Xb531は「700」であり、座標Yb532は「300」である。時間経過541が「2」の時点における指示位置521の座標Xb531は「600」であり、座標Yb532「300」である。時間経過541が「3」の時点における指示位置521の座標Xb531は「500)であり、座標Yb532は「300)」である。
この場合、指示移動検出部152は、時間経過541が「1」から「3」の間に座標Xb531が「700」から「500」に変化し、かつ、座標Yb532が「300」のまま変化していないことから、指示方向522を「水平方向左」と判断する。つまり、指示移動検出部152は、時間的に連続する3つの指示位置521が同じ方向に変化している場合に、当該方向を指示方向522と判断する。
ここでは、指示方向402が水平方向左421なので、文字範囲条件403は「(0,0):(座標Xb411,500)」となる。さらに、座標Xb411に、時間経過541が「3」の時点における指示位置521の座標Xb531(=500)が代入されて、文字範囲条件403が「(0,0):(500,500)」となる。
次に、フィルタ生成部101は、文字範囲523を求める。具体的には、フィルタ生成部101は、文字範囲条件403「(0,0):(500,500)」と文字キーレイアウト301のレイアウト位置303とを用いて、各文字302が文字範囲条件403「(0,0):(500,500)」の範囲内か範囲外かを判断する。
その結果、文字範囲523は、「は、ひ、ふ、へ、ほ、ま、み、む、め、も、や、ゆ、よ、ら、り、る、れ、ろ、わ、を、ん、−」となる。
以上より、本発明の実施の形態5に係る文字入力予測装置は、複数の指示位置521を用いて適切な指示方向522を検出できる。
なお、上記説明では、指示移動検出部152は、3つの指示位置521を用いて指示方向522を判定しているが、2つ、又は、4つ以上の指示位置521を用いて指示方向522を判定してもよい。
(実施の形態6)
実施の形態6では、複数の指示位置521と指示起点721とを用いて文字範囲523を決定する例を説明する。具体的には、指示位置521が行って戻ってくるような操作が行われた場合の動作を説明する。
なお、実施の形態6に係る文字入力予測装置の構成は、例えば、図10と同様である。
図18Aは、本発明の実施の形態6における文字キーレイアウト表示501を用いた文字入力操作状況の一例を示す図である。図18Bは、本発明の実施の形態6における指示位置521の具体的な数値例を示す図である。図18Cは、本発明の実施の形態6における指示起点721の具体的な数値例を示す図である。
図19は、本発明の実施の形態6におけるフィルタ生成部101が備える文字範囲定義401Bの一例を示す図である。
図18B及び図18Cに示すように、指示位置格納部102は、指示移動検出部152で検出された複数の指示位置521を保持する。また、指示位置格納部102は指示起点721を保持する。なお、指示起点721の決定方法は、上述した実施の形態2又は実施の形態3と同様である。
指示移動検出部152は、指示位置格納部102に保持されている複数の指示位置521、及び指示起点721を用いて、指示方向522を判定する。
フィルタ生成部101は、指示位置格納部102に保持されている指示起点721と、最新の指示位置521と、指示方向522とを用いて文字範囲523を予測する。
具体的には、フィルタ生成部101は、フィルタ生成部101が保持する文字範囲定義401Bと、最新の指示位置521と、指示起点721とを用いて、文字範囲条件403を決定する。より具体的には、フィルタ生成部101は、文字入力操作が、指示起点721から、指示起点721に対して第1方向に位置する第1指示位置に移動したのち、当該第1指示位置から、当該第1位置に対して第1方向と反対の第2方向に位置する第2指示位置に移動した場合、指示起点721と第2指示位置との間の範囲を文字範囲523と判定する。
さらに、フィルタ生成部101は、文字範囲条件403と、文字キーレイアウト管理部151に保持されている文字キーレイアウト301に含まれるレイアウト位置303とを用いて、各文字302が文字範囲条件403の範囲内であるかを判断することで文字範囲523を予測する。
続いて、実施の形態6に係る文字入力予測装置の動作の具体例を説明する。
図18A〜図18Cに示す例では、時間経過541が「1」の時点における指示位置521の座標Xb531は「800」であり、座標Yb532は「300」である。指示起点721の座標Xa731は「800」であり、座標Ya732は「300」である。
次に、文字入力操作が水平方向左に移動し、時間経過541が「2」の時点で指示位置521の座標Xb531は「500」になり、座標Yb532は「300」になる。
次に、文字入力操作が水平方向右に移動し、時間経過541が「3」の時点で指示位置521の座標Xb531は「600」になり、座標Yb532は「300」になる。
このように、時間経過541が「1」から「3」の間に座標Xb531が「800」から「500」に変化し、次に「600」に変化し、かつ、座標Yb532が「300」のまま変化していない。よって、このような指示位置521の変化に基づき、フィルタ生成部101は、文字入力操作が一旦水平方向左に移動したのち、指示起点721に向かって戻っていると判定する。そして、フィルタ生成部101は、図19に示す文字範囲定義401Bを使用して文字範囲条件403を決定する。
具体的には、図19に示す指示方向402Aが「座標Xa731>座標Xb531、座標Ya732=座標Yb532」なので、文字範囲条件403は「(座標Xb411,0):(座標Xa731,500)」となる。さらに、座標Xb411に座標Xb531(=600)が代入されて、文字範囲条件403が「(600,0):(800,500)」となる。
次に、フィルタ生成部101は文字範囲523を求める。具体的には、フィルタ生成部101は、文字範囲条件403「(600,0):(800,500)」と文字キーレイアウト301のレイアウト位置303とを用いて、各文字302が文字範囲条件403「(600,0):(800,500)」の範囲内か範囲外かを判断する。
その結果、文字範囲523は、「さ、し、す、せ、そ、た、ち、つ、て、と」となる。
以上より、本発明の実施の形態6に係る文字入力予測装置は、指示位置521が行って戻ってくるような操作が行われた場合にも、適切な文字範囲523を判定できる。
(実施の形態7)
実施の形態7では、文字入力操作の移動速度である指示速度に応じて、文字範囲523を決定する例を説明する。
なお、実施の形態7に係る文字入力予測装置の構成は、例えば、図10と同様である。
指示位置格納部102は、指示移動検出部152で検出された複数の指示位置521を保持する。
また、指示移動検出部152は、複数の指示位置521から、文字入力操作の移動速度である指示速度を算出する。
フィルタ生成部101は、さらに、指示速度を用いて文字範囲523を予測する。
図20Aは、本発明の実施の形態7における文字キーレイアウト表示501を用いた文字入力操作状況の一例を示す図である。図20Bは、本発明の実施の形態7における指示位置521の具体的な数値例を示す図である。なお、時間経過541は、対応する指示位置521を保持した時刻を示す。言い換えると、各指示位置521は、当該指示位置521が保持された(検出された)時刻と関連付けられている。
図22は、本発明の実施の形態7におけるフィルタ生成部101が備える文字範囲定義401Cの一例を示す図である。この文字範囲定義401Cは、指示速度がある定められた値より遅い時に文字範囲523を限定する例を示している。
つまり、フィルタ生成部101は、指示速度が予め定められた速度より遅い場合は、図22に示す文字範囲定義401Cを使用する。また、フィルタ生成部101は、指示速度が予め定められた速度より速い場合は、例えば、図6に示す文字範囲定義401を使用する。言い換えると、フィルタ生成部101は、指示速度が予め定められた速度より遅い場合は、最新の指示位置521を基点として、指示方向側の第1範囲を文字範囲523に決定する。また、フィルタ生成部101は、指示速度が予め定められた速度より速い場合は、最新の指示位置521を基点として、第1範囲より広い指示方向側の第2範囲を文字範囲523に決定する。
なお、ここでは、一つの閾値を用いる例を述べたが、フィルタ生成部101は、複数の閾値を用いてもよい。この場合、フィルタ生成部101は、指示速度が遅いほど、文字範囲523を狭くすればよい。
具体的には、フィルタ生成部101は、フィルタ生成部101が保持する文字範囲定義401Cと、指示方向522とを用いて文字範囲条件403を決定する。さらに、フィルタ生成部101は、文字範囲条件403と、文字キーレイアウト管理部151からの文字キーレイアウト301のレイアウト位置303とを用いて、各文字302が文字範囲条件403の範囲内であるかを判断して、ユーザが文字を入力する文字範囲523を予測する。
続いて、実施の形態7に係る文字入力予測装置の動作の具体例を説明する。
図20A及び図20Bに示す例では、時間経過541が「1」の時点で指示位置521の座標Xb531は「800」であり、座標Yb532は「300」である。時間経過541が「2」の時点で指示位置521の座標Xb531は「750」であり、座標Yb532は「300」である。時間経過541が「3」の時点で指示位置521の座標Xb531は「700」であり、座標Yb532は「300」である。
この場合、時間経過541が「1」から「3」の間における座標Xb531の変化量は「100」である。例えば、閾値を、時間経過541が「1」から「3」の間に座標Xb531の変化量が「300」である場合とする。この場合、フィルタ生成部101は、指示速度が閾値より遅いと判定する。そして、フィルタ生成部101は、文字範囲定義401Cを使用して文字範囲条件403を決定する。
また、指示方向402は水平方向左421なので、文字範囲条件403は「(座標Xb411−200,0):(座標Xb411,500)」となる。さらに、座標Xb411に指示位置521(時間経過541が「3」の時点)の座標Xb531(=700)が代入されて、文字範囲条件403が「(500,0):(700,500)」となる。
次に、フィルタ生成部101は文字範囲523を求める。具体的には、フィルタ生成部101は、文字範囲条件403「(500,0):(700,500)」と文字キーレイアウト301のレイアウト位置303とを用いて、各文字302が文字範囲条件403「(500,0):(700,500)」の範囲内か範囲外かを判断する。
その結果、文字範囲523は、「た、ち、つ、て、と、な、に、ぬ、ね、の」となる。
以上より、本発明の実施の形態7に係る文字入力予測装置は、文字入力操作の移動速度を用いて、より適切な文字範囲523を判定できる。具体的には、指示速度が遅い場合には、ユーザが入力しようとしている文字が、指示位置521の近くにある可能性が高い。よって、当該文字入力予測装置は、指示速度が遅い場合には、指示位置521の近くの範囲に文字範囲523を限定することにより、候補となる予測文字の数を削減できる。これにより、ユーザは、意図する文字列を選択しやすくなる。
また、上記説明では、指示速度が遅い場合の例を説明したが、指示速度が速い場合に、文字範囲523を限定してもよい。この場合、フィルタ生成部101は、指示速度が第2速度未満の場合、最新の指示位置521を基点として、指示方向側に位置する第1の大きさの範囲を文字範囲523として決定する。また、フィルタ生成部101は、指示速度が第2速度以上の場合、上記第1の大きさの範囲から、当該第1の大きさの範囲に含まれる指示位置521側の範囲を除外した第2の範囲を文字範囲523として決定する。言い換えると、この第2の範囲は、指示方向側に指示位置521から離れた範囲である。
例えば、図21に示すように、指示速度が速い場合には、文字範囲523は、指示方向側に指示位置521から離れた範囲に決定される。
ここで、指示速度が速い場合には、ユーザが入力しようとしている文字が、指示位置521から遠くにある可能性が高い。よって、当該文字入力予測装置は、指示速度が速い場合には、指示位置521の遠くの範囲に文字範囲523を限定することにより、候補となる予測文字の数を削減できる。これにより、ユーザは、意図する文字列を選択しやすくなる。
(実施の形態8)
実施の形態8では、文字入力操作の移動角度を用いて、文字範囲523を決定する例を説明する。
なお、実施の形態8に係る文字入力予測装置の構成は、例えば、図10と同様である。
指示位置格納部102は、指示移動検出部152で検出された複数の指示位置521を保持する。
また、指示移動検出部152は、複数の指示位置521から、指示方向522に加え、指示方向の角度である指示角度533を算出する。
フィルタ生成部101は、さらに、指示角度533を用いて文字範囲523を予測する。
図23Aは、本発明の実施の形態8における文字キーレイアウト表示501を用いた文字入力操作状況の一例を示す図である。図23Bは、本発明の実施の形態8における指示位置521の具体的な数値例を示す図である。図23Bに示すように、指示位置521は、時間経過541ごとに対応付けられた指示角度533を含む。
フィルタ生成部101は、文字範囲定義401Dを参照し、指示方向522及び指示角度533に基づき、文字範囲523を決定する。
図24は、本発明の実施の形態8におけるフィルタ生成部101が備える文字範囲定義401Dの一例を示す図である。
図24に示す文字範囲定義401Dは、さらに、角度範囲406を含む。また、指示方向402ごと(この例では指示方向402のうち斜め方向ごと)に、基準範囲407と、削除範囲408とが対応付けられている。削除範囲408は角度範囲406ごとに設定されている。ここで、各角度範囲406は、対応する指示方向402に含まれる角度を複数に分割した部分範囲である。図24に示す例では、左斜め下424の0度より大きくかつ90度未満の範囲を、0度より大きくかつ30度未満の範囲と、30度以上かつ60度以下の範囲と、60度より大きくかつ90度未満の範囲との三つの角度範囲に分割している。なお、対応する指示方向402に含まれる角度の分割方法はこれに限定されない。例えば、当該角度を2つ以上に分割すればよい。
フィルタ生成部101は、指示方向402に対応する基準範囲407から、指示角度が含まれる角度範囲406の削除範囲408を除外した範囲を、文字範囲523に決定する。
続いて、実施の形態8に係る文字入力予測装置の動作の具体例を説明する。
図23A及び図23Bに示す例では、時間経過541が「1」の時点で指示位置521の座標Xb531は「800」であり、座標Yb532は「0」である。時間経過541が「2」の時点で指示位置521の座標Xb531は「750」であり、座標Yb532は「100」である。時間経過541が「3」の時点で指示位置521の座標Xb531は「700」であり、座標Yb532は「200」である。
この場合、時間経過541が「2」及び「3」における指示角度は「63度」である。そして、フィルタ生成部101は、文字範囲定義401Dを使用して文字範囲条件403を決定する。
ここでは、指示方向402は左斜め下424であり、指示角度は「63度」なので、基準範囲407の文字範囲条件403は「(座標Xb411−500,座標Yb412):(座標Xb411,500)」となる。さらに、座標Xb411及び座標Yb412に指示位置521(時間経過541が「3」の時点)の座標Xb531(=700)及び座標Yb532(=200)が代入されて、基準範囲407の文字範囲条件403が「(200,200):(700,500)」となる。
また、削除範囲408の文字範囲条件403は「(座標Xb411−500,座標Yb412):(座標Xb411−300,座標Yb+200)」となる。さらに、座標Xb411及び座標Yb412に指示位置521(時間経過541が「3」の時点)の座標Xb531(=700)及び座標Yb532(=200)が代入されて、削除範囲408の文字範囲条件403が「(200,200):(400,400)」となる。
次に、フィルタ生成部101は文字範囲523を求める。
具体的には、フィルタ生成部101は、基準範囲407の文字範囲条件403「(200,200):(700,500)」と文字キーレイアウト301のレイアウト位置303とを用いて、各文字302が文字範囲条件403「(200,200):(700,500)」の範囲内か範囲外かを判断する。
その結果、基準範囲407は、「つ、て、と、ぬ、ね、の、ふ、へ、ほ、む、め、も、よ」となる。
さらに、フィルタ生成部101は、削除範囲408の文字範囲条件403「(200,200):(400,400)」と文字キーレイアウト301のレイアウト位置303とを用いて、各文字302が文字範囲条件403「(200,200):(400,400)」の範囲内か範囲外かを判断する。
その結果、削除範囲408は、「む、め、よ」となる。
さらに、フィルタ生成部101は、基準範囲407に含まれる文字から削除範囲408に含まれる文字を除外することで文字範囲523を決定する。その結果、文字範囲523は、「つ、て、と、ぬ、ね、の、ふ、へ、ほ、も」となる。
以下、図25A、図25B、図26A及び図26Bを用いて、別の動作例を説明する。
図25Aは、本発明の実施の形態8における文字キーレイアウト表示501を用いた文字入力操作状況の一例を示す図である。図25Bは、本発明の実施の形態8における指示位置521の具体的な数値例を示す図である。
この場合、指示方向402は左斜め下424であり、指示角度は「45度」である。よって、基準範囲407の文字範囲条件403は、図23A及び図23Bの場合と同様に「(200,200):(700,500)」となる。
また、削除範囲408の文字範囲条件403は「(座標Xb411−100,400):(座標Xb411,500)」及び「(座標Xb411−500,座標Yb412):(座標Xb411−300,座標Yb+100)」となる。さらに、座標Xb411及び座標Yb412に指示位置521(時間経過541が「3」の時点)の座標Xb531(=700)及び座標Yb532(=200)が代入されて、削除範囲408の文字範囲条件403が「(600,400):(700,500)」及び「(200,200):(400,300)」となる。
次に、フィルタ生成部101は文字範囲523を求める。
具体的には、基準範囲407は、図23A及び図23Bの場合と同様に「つ、て、と、ぬ、ね、の、ふ、へ、ほ、む、め、も、よ」となる。
さらに、フィルタ生成部101は、削除範囲408の文字範囲条件403「(600,400):(700,500)」及び「(200,200):(400,300)」と文字キーレイアウト301のレイアウト位置303とを用いて、各文字302が文字範囲条件403「(600,400):(700,500)」及び「(200,200):(400,300)」の範囲内か範囲外かを判断する。
その結果、削除範囲408は、「と、よ、む」となる。
さらに、フィルタ生成部101は、基準範囲407に含まれる文字から削除範囲408に含まれる文字を除外することで文字範囲523を決定する。その結果、文字範囲523は、「つ、て、ぬ、ね、の、ふ、へ、ほ、め、も」となる。
図26Aは、本発明の実施の形態8における文字キーレイアウト表示501を用いた文字入力操作状況の一例を示す図である。図26Bは、本発明の実施の形態8における指示位置521の具体的な数値例を示す図である。
この場合、指示方向402は左斜め下424であり、指示角度は「26度」である。よって、基準範囲407の文字範囲条件403は、図23A及び図23Bの場合と同様に「(200,200):(700,500)」となる。
また、削除範囲408の文字範囲条件403は「(座標Xb411−100,座標Yb412+100):(座標Xb411,500)」となる。さらに、座標Xb411及び座標Yb412に指示位置521(時間経過541が「3」の時点)の座標Xb531(=700)及び座標Yb532(=200)が代入されて、削除範囲408の文字範囲条件403が「(600,300):(700,500)」となる。
次に、フィルタ生成部101は文字範囲523を求める。
具体的には、基準範囲407は、図23A及び図23Bの場合と同様に「つ、て、と、ぬ、ね、の、ふ、へ、ほ、む、め、も、よ」となる。
さらに、フィルタ生成部101は、削除範囲408の文字範囲条件403「(600,300):(700,500)」と文字キーレイアウト301のレイアウト位置303とを用いて、各文字302が文字範囲条件403「(600,300):(700,500)」の範囲内か範囲外かを判断する。
その結果、削除範囲408は、「て、と」となる。
さらに、フィルタ生成部101は、基準範囲407に含まれる文字から削除範囲408に含まれる文字を除外することで文字範囲523を決定する。その結果、文字範囲523は、「つ、ぬ、ね、の、ふ、へ、ほ、む、め、も、よ」となる。
以上より、本発明の実施の形態8に係る文字入力予測装置は、文字入力操作の移動角度を用いて、より適切な文字範囲523を判定できる。
(実施の形態9)
実施の形態9では、表示する予測結果を更新するタイミングについて説明する。
図27Aは、本発明の実施の形態9における文字キーレイアウト表示501を用いた文字入力操作状況の一例を示す図である。
入力文字位置751は、ユーザにより入力された文字を示す。図27Aでは、入力文字が「つ」の場合が例示されている。
図27Bは、本発明の実施の形態9における指示位置521の具体的な数値例を示す図である。
図27Cは、本発明の実施の形態9における入力文字位置751の具体的な数値例を示す図である。座標Xm761は、入力文字位置751のX軸座標を示す。座標Ym762は、入力文字位置751のY軸座標を示す。
図27A〜図27Cに示す例では、時間経過541が「1」の時点における指示位置521の座標Xb531は「700」であり、座標Yb532は「300)」である。また、当該指示位置521に配置されている文字「つ」が入力される。
このとき、例えば、実施の形態9に係る入力文字予測装置は、辞書格納部155が格納している複数の候補文字列から、読みの頭文字が「つ」の文字列を表示する。
次の文字入力操作により、時間経過541が「2」の時点で、指示位置521の座標Xb531が「600」にあり、座標Yb532が「300」になる。
この場合、指示方向402が水平方向左421なので、文字範囲条件403は「(0,0):(座標Xb411,500)」となる。さらに、座標Xb411に座標Xb531(=600)が代入されて、文字範囲条件403が「(0,0):(600,500)」となる。
次に、フィルタ生成部101は、文字範囲523を求める。具体的には、フィルタ生成部101は、文字範囲条件403「(0,0):(600,500)」と文字キーレイアウト301のレイアウト位置303とを用いて、各文字302が文字範囲条件403「(0,0):(600,500)」の範囲内か範囲外かを判断する。
その結果、文字範囲523は、「な、に、ぬ、ね、の、は、ひ、ふ、へ、ほ、ま、み、む、め、も、や、ゆ、よ、ら、り、る、れ、ろ、わ、を、ん、−」となる。ここで、文字範囲523に含まれる文字数は「27」である。
次の文字入力操作により、時間経過541が「3」の時点において、指示位置521の座標Xb531が「500」になり、座標Yb532が「300」になる。
この場合、指示方向402が水平方向左421なので、文字範囲条件403は「(0,0):(座標Xb411,500)」となる。さらに、座標Xb411に座標Xb531(=500)が代入されて、文字範囲条件403が「(0,0):(500,500)」となる。
次に、フィルタ生成部101は文字範囲523を求める。具体的には、フィルタ生成部101は、文字範囲条件403「(0,0):(500,500)」と文字キーレイアウト301のレイアウト位置303とを用いて、各文字302が文字範囲条件403「(0,0):(500,500)」の範囲内か範囲外かを判断する。
その結果、文字範囲523は、「は、ひ、ふ、へ、ほ、ま、み、む、め、も、や、ゆ、よ、ら、り、る、れ、ろ、わ、を、ん、−」となる。ここで、文字範囲523に含まれる文字数は、「22」である。
次に、フィルタ生成部101は、時間経過541が「2」の時点と、時間経過541が「3」の時点とにおける文字範囲523に含まれる文字数を比較する。そして、フィルタ生成部101は、表示する文字列に影響が少ない場合は、予測表示条件管理部158で使用する表示条件に時間経過541が「3」の時点の文字範囲523を用いない。つまり、フィルタ生成部101は文字範囲523を更新しない。
具体的には、例えば、フィルタ生成部101は、文字範囲523に含まれる文字数の変化量が予め定められた閾値より小さい場合に、文字範囲523を更新せず、当該文字数の変化量が当該閾値より大きい場合に、文字範囲523を更新する。なお、フィルタ生成部101は、文字範囲523に含まれる文字の変化量が予め定められた閾値より小さい場合に、文字範囲523を更新せず、当該文字の変化量が当該閾値より大きい場合に、文字範囲523を更新してもよい。ここで、文字の変化量とは、新たな文字範囲523と直前の文字範囲523との一方のみに含まれる文字の数である。また、フィルタ生成部101は、最終的に表示される予測文字列の変化量が予め定められた閾値より小さい場合に、文字範囲523を更新せず、当該予測文字列の変化量が当該閾値より大きい場合に、文字範囲523を更新してもよい。ここで、予測文字列の変化量とは、新たな予測文字列群と直前の予測文字列群との一方のみに含まれる予測文字列の数である。さらに、フィルタ生成部101は、上述した複数の判定基準を組み合わせてもよい。
次に時間経過541が「4」の時点になり、指示位置521の座標Xb531が「400」になり、座標Yb532が「200」になる。この場合、指示方向522は垂直方向上である。よって、指示方向402は垂直方向上422なので、文字範囲条件403は「(0,0):(1000,座標Yb412)」となる。さらに、座標Yb412に座標Yb532(=200)が代入されて、文字範囲条件403が「(0,0):(1000,200)」となる。
次に、フィルタ生成部101は文字範囲523を求める。具体的には、フィルタ生成部101は、文字範囲条件403「(0,0):(1000,200)」と文字キーレイアウト301のレイアウト位置303とを用いて、各文字302が文字範囲条件403「(0,0):(1000,200)」の範囲内か範囲外かを判断する。
その結果、文字範囲523は、「あ、い、か、き、さ、し、た、ち、な、に、は、ひ、ま、み、や、ゆ、ら、り、わ、を」となる。また、この文字範囲523に含まれる文字数は「20」である。
次に、フィルタ生成部101は、時間経過541が「2」の時点と時間経過541が「4」の時点との文字範囲523に含まれる文字数を比較する。ここでは、フィルタ生成部101は、表示する文字列に影響があると判断して、予測表示条件管理部158で使用する表示条件に、時間経過541が「4」の時点における文字範囲523を用いる。
次に、本発明の実施の形態9に係る文字入力予測装置による具体的な表示例を説明する。
図28は、本発明の実施の形態9における文字キーレイアウト表示501の表示例を示す図である。
図28に示す文字範囲表示771及び772は、ユーザの文字入力操作から予測した文字範囲523を文字キーレイアウト表示501に表示した枠である。
上記図27A〜図27Cの例では、時間経過541が「2」の時点で、文字範囲表示771が表示される。また、時間経過541が「3」の時点で、文字範囲表示771は更新されず、時間経過541が「4」の時点で、文字範囲表示772が表示される。
このように、文字範囲523を文字キーレイアウト表示501上に表示することにより、現在の文字範囲523をユーザに明示できるので、ユーザの操作性が向上する。
次に、予測文字列の表示方法を説明する。
図29は、本発明の実施の形態9における辞書格納部155が格納している辞書170の一例を示す図である。辞書170は、複数の候補文字列781を保持する。なお、図29には、読みの頭文字が「つ」の検索文字列が例示されている。
図30は、本発明の実施の形態9における出力部161が検索文字列を表示している様子の一例を示す図である。この図30の例は、文字「つ」が入力された時点における表示例であり、表示エリア782には、読みの頭文字が「つ」の検索文字列が例示されている。
図31は、本発明の実施の形態9における出力部161が検索文字列を表示している様子の一例を示す図である。この図31の例は、文字範囲523が判定された後における表示例である。また、図31に示す確認表示783には、文字範囲523に含まれる予測文字を含む予測文字列を強調表示するために用いられている。ここで、頭文字「つ」につづき、予測文字を含む予測文字列が強調表示されている。これにより、ユーザは予測状況を適宜確認できる。
以下、英字入力の場合の例を説明する。
図32は、本発明の実施の形態9における出力部161が検索文字列を表示している様子の一例を示す図である。この図32の例は、文字「bu」が入力された時点における表示例であり、表示エリア782には、先頭の文字列が「bu」の検索文字列が例示されている。
図33は、本発明の実施の形態9における出力部161が検索文字列を表示している様子の一例を示す図である。この図33の例は、文字範囲523が判定された後における表示例である。また、図33に示す確認表示783には、文字範囲523に含まれる予測文字を含む予測文字列を強調表示するために用いられている。ここで、先頭の文字列「bu」につづき、図8Aに示す予測文字を含む予測文字列が強調表示されている。これにより、ユーザは予測状況を適宜確認できる。
以上より、本発明の実施の形態9に係る文字入力予測装置は、予測結果が大きく変化する場合にのみ、予測結果の表示等を更新することで、予測結果の表示等が頻繁に更新されることを防止できる。
また、本発明の実施の形態9に係る文字入力予測装置は、文字範囲表示771及び772を用いることで、予測した文字範囲523をユーザに明示できる。
また、本発明の実施の形態9に係る文字入力予測装置は、予測した文字を含む予測文字列をユーザに強調して表示できる。
なお、文字範囲表示771、772、及び確認表示783としては、枠、又は色などを用いて、対象となる予測文字、及び予測文字列を強調表示できる。なお、表示方法は、枠又は色を用いる方法に限定されず、その他の方法であってもよい。
また、当該文字入力予測装置は、予測文字列と、それ以外の検索文字列とで表示順を変更してもよい。例えば、当該文字入力予測装置は、予測文字列を、それ以外の検索文字列より上に表示してもよい。
また、予測文字列を表示する領域と、それ以外の検索文字列を表示する領域とを個別に設けてもよい。
また、当該文字入力予測装置は、予測文字列の数が予め定められた値より少ないときは、上記の表示制御を行なわず、予測文字列の数が上記値より多いときに、上記の表示制御を行なってもよい。
また、予測文字を含む予測文字列の表示順についても、ポインタに近い文字列から表示させる工夫を施してもかまわない。
また、効果的に予測文字又は予測文字列を表示するために、当該文字入力予測装置は、文字列の入力操作の開始時から終了前までの期間のみに予測文字又は予測文字列を表示してもよい。また、ポインタの移動方向に変更が生じた時など、大きく予測文字又は予測文字列が変わる時に、当該文字入力予測装置は、予測文字又は予測文字列の表示を更新してもよい。これにより、ユーザは予測文字又は予測文字列を容易に確認できる。
特に、最初の文字を入力する時は、文字入力操作の全てが、予測文字又は予測文字列の表示制御に反映される。よって、当該文字入力予測装置は、ユーザが予測文字又は予測文字列の確認が困難にならないように予測文字又は予測文字列を、ユーザが意図する状態変化の時に表示させるなどの工夫を施す。具体的には、この状態変化とは、ポインタが起点から離れた直後、ポインタ位置が大きく変化した時、又は、ポインタの軌道が大きく変化した時である。また、入力装置によっては、この状態変化とは、フリック等の離れたときの状態、着地した時、スライドが変化した時、移動初期の状態、スピードが弱まった時、又は、起点からのポインタが動作する角度に変更があった時等である。
(実施の形態10)
実施の形態10〜実施の形態12では、文字入力操作の位置を示す指示位置が2点の場合を説明する。
図34は、このような2点の指示位置が用いられる入力装置の一例を示す図である。
入力装置801は、2つのタッチセンサ(左タッチセンサ802L、右タッチセンサ802R)を備えている。この2つのタッチセンサは、それぞれユーザの左手及び右手で操作される。ユーザは2つのタッチセンサを操作することにより、画面に表示されている2つのポインタの各々を操作する。また、例えば、ユーザはタッチセンサを押下することにより、ポインタ位置の文字キーを選択する。
図35は、本発明の実施の形態10に係る文字入力予測装置100Cのブロック図である。
この文字入力予測装置100Cは、フィルタ生成部101L及び101Rと、指示位置格納部102L及び101Rと、文字キーレイアウト管理部151L及び151Rと、指示移動検出部152L及び152Rと、操作入力部150L及び150Rと、フィルタバッファ部103と、フィルタ合成部104とを備える。また、図示していないが、文字入力予測装置100Cは、上述した文字入力予測装置100Aと同様に、文字入力部153と、文字列生成部154と、辞書格納部155と、辞書検索部156と、出力文字列バッファ部157と、予測表示条件管理部158と、予測制御部159と、出力制御部160と、出力部161とを備える。
フィルタ生成部101Lと、指示位置格納部102Lと、文字キーレイアウト管理部151Lと、指示移動検出部152Lと、操作入力部150Lとは、左側の文字入力操作のために設けられている。フィルタ生成部101Rと、指示位置格納部102Rと、文字キーレイアウト管理部151Rと、指示移動検出部152Rと、操作入力部150Rとは、右側の文字入力操作のために設けられている。
また、フィルタ生成部101L及び101Rと、指示位置格納部102L及び101Rと、文字キーレイアウト管理部151L及び151Rと、指示移動検出部152L及び152Rと、操作入力部150L及び150Rとの機能は、それぞれ、上述したフィルタ生成部101と、指示位置格納部102と、文字キーレイアウト管理部151と、指示移動検出部152と、操作入力部150との機能と同様である。
フィルタバッファ部103は、フィルタ生成部101Rが予測した文字範囲523をフィルタ生成部101Rに関連付けて保持する。また、フィルタバッファ部103は、フィルタ生成部101Lが予測した文字範囲553をフィルタ生成部101Lに関連付けて保持する。
フィルタ合成部104は、フィルタバッファ部103に保持された文字範囲523及び文字範囲553を用いて、ユーザの操作を予測する1つの文字範囲583を生成する。具体的には、フィルタ合成部104は、文字範囲523と文字範囲553とに共に含まれる範囲を文字範囲583として生成する。この文字範囲583は、予測表示条件管理部158に供給され、上述した他の実施の形態と同様の処理が行われる。
図36Aは、本発明の実施の形態10における文字キーレイアウト表示501を用いた文字入力操作状況の一例を示す図である。
指示位置551は、もう一つのユーザによる文字入力操作の位置を示すものであって、ユーザの入力動作によって移動する。
指示方向552は、指示位置551の移動方向を示す。
文字範囲553は、指示位置551に関連する、予測された文字の範囲を示す。
座標Xc561は、指示位置551のX軸座標を示す。座標Yc562は、指示位置551のY軸座標を示す。
図36Bは、本発明の実施の形態10における指示位置521の具体的な数値例を示す図である。図36Cは、本発明の実施の形態2における指示位置551の具体的な数値例を示す図である。
続いて、実施の形態10に係る文字入力予測装置100Cの動作の具体例を説明する。
図36A〜図36Cに示す例では、指示位置521の座標Xb531は「800」であり、座標Yb532は「300」である。また、指示方向522は水平方向左である。
指示方向402は水平方向左421なので、文字範囲条件403は「(0,0):(座標Xb411,500)」となる。さらに、座標Xb411に座標Xb531(=800)が代入されて、文字範囲条件403が「(0,0):(800,500)」となる。
次に、フィルタ生成部101Rは文字範囲523を求める。具体的には、フィルタ生成部101Rは、文字範囲条件403「(0,0):(800,500)」と文字キーレイアウト301のレイアウト位置303とを用いて、各文字302が文字範囲条件403「(0,0):(800,500)」の範囲内か範囲外かを判断する。
その結果、文字範囲523は、「さ、し、す、せ、そ、た、ち、つ、て、と、な、に、ぬ、ね、の、は、ひ、ふ、へ、ほ、ま、み、む、め、も、や、ゆ、よ、ら、り、る、れ、ろ、わ、を、ん、−」となる。そして、この文字範囲523が、フィルタバッファ部103に保持される。
また、指示位置551の座標Xc561は「400」であり、座標Yc562は「300」である。また、指示方向552は水平方向右である。
指示方向402は水平方向右423なので、文字範囲条件403は「(座標Xb411,0):(1000,500)」となる。さらに、座標Xb411に座標Xc561(=400)が代入されて、文字範囲条件403が「(400,0):(1000,500)」となる。
次に、フィルタ生成部101Lは文字範囲553を求める。具体的には、フィルタ生成部101Lは、文字範囲条件403「(400,0):(1000,500)」と文字キーレイアウト301のレイアウト位置303とを用いて、文字302が文字範囲条件403「(400,0):(1000,500)」の範囲内か範囲外かを判断する。
その結果、文字範囲553は、「あ、い、う、え、お、か、き、く、け、こ、さ、し、す、せ、そ、た、ち、つ、て、と、な、に、ぬ、ね、の、は、ひ、ふ、へ、ほ」となる。そして、この文字範囲553が、フィルタバッファ部103に保持される。
次に、フィルタ合成部104は、文字範囲523の「さ、し、す、せ、そ、た、ち、つ、て、と、な、に、ぬ、ね、の、は、ひ、ふ、へ、ほ、ま、み、む、め、も、や、ゆ、よ、ら、り、る、れ、ろ、わ、を、ん、−」と、文字範囲553の「あ、い、う、え、お、か、き、く、け、こ、さ、し、す、せ、そ、た、ち、つ、て、と、な、に、ぬ、ね、の、は、ひ、ふ、へ、ほ」とに共通に含まれる文字である「さ、し、す、せ、そ、た、ち、つ、て、と、な、に、ぬ、ね、の、は、ひ、ふ、へ、ほ」を含む文字範囲583を生成する。
以上より、本発明の実施の形態10に係る文字入力予測装置は、2つの文字入力操作を用いる場合に、高速に予測文字列を絞り込むことができる。
なお、上記説明では、2つの文字入力操作に対して、個別の文字キーレイアウト管理部151L及び151Rを設けているが、一つの文字キーレイアウト管理部を2つの文字入力操作に対して共通に用いてもよい。
(実施の形態11)
実施の形態11では、2つの指示位置521及び551のうち一方のみが移動する場合の文字範囲583の決定方法を説明する。
なお、実施の形態11に係る文字入力予測装置の構成は、例えば、図35に示す構成と同様である。
図37Aは、本発明の実施の形態11における文字キーレイアウト表示501を用いた文字入力操作状況の一例を示す図である。図37Bは、本発明の実施の形態11における指示位置521の具体的な数値例を示す図である。図37Cは、本発明の実施の形態11における指示位置551の具体的な数値例を示す図である。
時間経過571は、文字入力操作の経過を示す。
フィルタ合成部104は、指示位置521及び551の一方のみが変化している場合、変化している指示位置及び指示方向から算出された文字範囲と、他方の指示位置とを用いて、文字範囲583を決定する。
指示位置521が変化し、指示位置551が変化しない場合を説明する。この場合、フィルタ合成部104は、文字範囲523と、指示位置551とを用いて文字範囲583を決定する。具体的には、指示位置521が指示位置551の方向に移動している場合には、フィルタ合成部104は、文字範囲523に含まれ、かつ、指示位置551を基点として指示位置521側の範囲を文字範囲583に決定する。
より具体的には、フィルタ生成部101Rは、文字キーレイアウト管理部151Rが保持する文字キーレイアウト301と、指示位置格納部102Rが保持する複数の指示位置521とを用いて文字範囲523を予測するとともに、文字範囲523と複数の指示位置521と関連付けして保持する。
指示位置格納部102Lは、指示移動検出部152Lから通知される複数の指示位置551を保持する。
フィルタ生成部101Lは、文字キーレイアウト管理部151Lが保持する文字キーレイアウト301と、指示位置格納部102Lが保持する複数の指示位置551とを用いて文字範囲553を予測するとともに、文字範囲553を複数の指示位置551と関連付けして保持する。
フィルタバッファ部103は、フィルタ生成部101Rが予測した文字範囲523に関連付けされた複数の指示位置521のうち、最新の指示位置521を誘導位置として保持する。
または、フィルタバッファ部103は、フィルタ生成部101Lが予測した文字範囲553に関連付けされた複数の指示位置551のうち、最新の指示位置551を誘導位置として保持する。
指示移動検出部152R又は152Lは、誘導位置が他方からの位置情報である時、誘導位置と複数の指示位置のいずれかとを用いて指示方向を生成する。
または、指示移動検出部152R又は152Lは、誘導位置が他方からの位置情報である時、誘導位置と複数の指示位置のいずれかを用いた位置関係とから新たな指示位置と指示方向とを生成する。
さらに、フィルタ生成部101R又はフィルタ生成部101Lは指示移動検出部からの新たな指示位置と指示方向とを用いて文字範囲を予測する。
続いて、実施の形態11に係る文字入力予測装置の動作の具体例を説明する。
図37A〜図37Cに示す例では、時間経過541が「1」の時点の指示位置521の座標Xb531は「900」であり、座標Yb532は「300」である。また、時間経過541が「2」の時点の指示位置521の座標Xb531は「850」であり、座標Yb532は「300」である。時間経過541が「3」の時点の指示位置521の座標Xb531は「800」であり、座標Yb532は「300」である。
つまり、時間経過541が「1」から「3」の間に座標Xb531が「900」から「800」に変化し、座標Yb532が「300」から変化していない。よって、指示方向522は「水平方向左」である。
指示方向402は水平方向左421なので、文字範囲条件403は「(0,0):(座標Xb411,500)」となる。さらに、座標Xb411に座標Xb531(=800)が代入されて、文字範囲条件403が「(0,0):(800,500)」となる。
次に、フィルタ生成部101Rは文字範囲523を求める。具体的には、フィルタ生成部101Rは、文字範囲条件403「(0,0):(800,500)」と文字キーレイアウト301のレイアウト位置303とを用いて、各文字302が文字範囲条件403「(0,0):(800,500)」の範囲内か範囲外かを判断する。
その結果、文字範囲523は、「さ、し、す、せ、そ、た、ち、つ、て、と、な、に、ぬ、ね、の、は、ひ、ふ、へ、ほ、ま、み、む、め、も、や、ゆ、よ、ら、り、る、れ、ろ、わ、を、ん、−」となる。そして、この文字範囲523が、フィルタバッファ部103に保持される。
また、時間経過571が「1」の時点の指示位置551のみが保持されているため、指示位置551の移動方向は判断できない。言い換えると、指示位置551が停止していることがわかる。よって、最新の指示位置521(時間経過541が「3」の時点)の座標Xb531である「800」と、座標Yb532である「300」とが誘導位置となる。
次に、指示移動検出部152Lは、指示位置551(時間経過571が「1」の時点)の座標Xc561「400」及び座標Yc562「300」と、誘導位置の座標X「800」及び座標Y「300」とを用いて、指示方向552を「水平方向右」と判断する。
指示方向402は水平方向右423なので、文字範囲条件403は「(座標Xb411,0):(1000,500)」となる。さらに、座標Xb411に座標Xc561(=400)が代入されて、文字範囲条件403が「(400,0):(1000,500)」となる。
次に、フィルタ生成部101Lは文字範囲553を求める。具体的には、フィルタ生成部101Lは、文字範囲条件403「(400,0):(1000,500)」と文字キーレイアウト301のレイアウト位置303とを用いて、文字302が文字範囲条件403「(400,0):(1000,500)」の範囲内か範囲外かを判断する。
その結果、文字範囲553は、「あ、い、う、え、お、か、き、く、け、こ、さ、し、す、せ、そ、た、ち、つ、て、と、な、に、ぬ、ね、の、は、ひ、ふ、へ、ほ」となる。そして、この文字範囲553が、フィルタバッファ部103に保持される。
次に、フィルタ合成部104は、文字範囲523の「さ、し、す、せ、そ、た、ち、つ、て、と、な、に、ぬ、ね、の、は、ひ、ふ、へ、ほ、ま、み、む、め、も、や、ゆ、よ、ら、り、る、れ、ろ、わ、を、ん、−」と、文字範囲553の「あ、い、う、え、お、か、き、く、け、こ、さ、し、す、せ、そ、た、ち、つ、て、と、な、に、ぬ、ね、の、は、ひ、ふ、へ、ほ」とに共通に含まれる文字である「さ、し、す、せ、そ、た、ち、つ、て、と、な、に、ぬ、ね、の、は、ひ、ふ、へ、ほ」を含む文字範囲583を生成する。
なお、上記説明では、指示位置521及び551の一方が停止いている場合の例を説明したが、指示位置521及び551の一方の移動量又は移動速度が一定値以下の場合に、同様の処理を行なってもよい。
以上より、本発明の実施の形態11に係る文字入力予測装置は、2つの文字入力操作の一方のみが移動している場合に、より適切な文字範囲を範囲できる。
(実施の形態12)
実施の形態12では、2つの指示位置521及び551のうち一方のみが移動する場合の、実施の形態11とは異なる文字範囲583の決定方法を説明する。
図38Aは、本発明の実施の形態12における文字キーレイアウト表示501を用いた文字入力操作状況の一例を示す図である。図38Bは、本発明の実施の形態12における指示位置521の具体的な数値例を示す図である。図38Cは、本発明の実施の形態12における指示位置551の具体的な数値例を示す図である。
フィルタ合成部104は、指示位置521及び551の一方のみが変化している場合、変化している指示位置及び指示方向から算出された文字範囲と、他方の指示位置とを用いて、文字範囲583を決定する。
指示位置521が変化し、指示位置551が変化しない場合を説明する。この場合、フィルタ合成部104は、文字範囲523と、指示位置551とを用いて文字範囲583を決定する。具体的には、指示位置521が指示位置551の方向に移動している場合には、フィルタ合成部104は、文字範囲523に含まれ、かつ、基準点より指示位置521側に位置する範囲を文字範囲583に決定する。ここで、基準点とは、指示位置551と指示位置521との間の点である。例えば、基準点は、指示位置551と指示位置521との中点である。なお、基準点は、指示位置551及び指示位置521の一方から他方側に第1距離移動した点でもよい。ここで第1距離とは、予め定められた値でもよいし、指示位置551と指示位置521との距離に応じて変化する値でもよい。
以上より、本発明の実施の形態12に係る文字入力予測装置は、2つの文字入力操作の一方のみが移動している場合に、より適切な文字範囲を範囲できる。
(実施の形態13)
実施の形態13では、2つの指示位置が逆方向に移動する場合の動作を説明する。具体的には、フィルタ合成部104は、文字範囲523と文字範囲553とに重複する文字が含まれていない場合、文字範囲523と文字範囲553とのうち、指示速度が速い側の文字範囲を文字範囲583に決定する。
図39Aは、本発明の実施の形態13における文字キーレイアウト表示501を用いた文字入力操作状況の一例を示す図である。図39Bは、本発明の実施の形態13における指示位置521の具体的な数値例を示す図である。図39Cは、本発明の実施の形態13における指示位置551の具体的な数値例を示す図である。
続いて、実施の形態13に係る文字入力予測装置の動作の具体例を説明する。
図39A〜図39Cに示す例では、最新の指示位置521の座標Xb531が「800」であり、座標Yb532が「300」である。また、指示方向522は水平方向右である。
指示方向402は水平方向右423なので、文字範囲条件403は「(座標Xb411,0):(1000,500)」となる。さらに、座標Xb411に座標Xb531(=800)が代入されて、文字範囲条件403が「(800,0):(1000,500)」となる。
次に、フィルタ生成部101Rは文字範囲523を求める。具体的には、フィルタ生成部101Rは、文字範囲条件403「(800,0):(1000,500)」と文字キーレイアウト301のレイアウト位置303とを用いて、各文字302が文字範囲条件403「(800,0):(1000,500)」の範囲内か範囲外かを判断する。
その結果、文字範囲523は、「あ、い、う、え、お、か、き、く、け、こ」となる。そして、この文字範囲523が、フィルタバッファ部103に保持される。
また、最新の指示位置551の座標Xc561は「400」であり、座標Yc562は「300」である。また、指示方向552は水平方向左421である。
指示方向402は水平方向左421なので、文字範囲条件403は「(0,0):(座標Xb411,500)」となる。さらに、座標Xb411に座標Xc561(=400)が代入されて、文字範囲条件403が「(0,0):(400,500)」となる。
次に、フィルタ生成部101Lは文字範囲553を求める。具体的には、フィルタ生成部101Lは、文字範囲条件403「(0,0):(400,500)」と文字キーレイアウト301のレイアウト位置303とを用いて、文字302が文字範囲条件403「(0,0):(400,500)」の範囲内か範囲外かを判断する。
その結果、文字範囲553は、「ま、み、む、め、も、や、ゆ、よ、ら、り、る、れ、ろ、わ、を、ん、−」となる。そして、この文字範囲553が、フィルタバッファ部103に保持される。
次に、フィルタ合成部104は、フィルタバッファ部103からの文字範囲523と文字範囲553とに共通に含まれる文字があるか否かを判定する。この場合、共通の文字が確認できないため、フィルタ合成部104は、文字範囲523及び553に関連付けされた指示位置521及び指示位置551の移動量に応じて、一方の文字範囲を選択する。
具体的には、時間経過541が「1」の時点における指示位置521の座標Xb531は「600」で座標Yb532「300」である。時間経過541が「2」の時点における指示位置521の座標Xb531は「700」であり、座標Yb532は「300」である。時間経過541が「3」の時点における指示位置521の座標Xb531は「800」であり、座標Yb532は「300」である。よって、時間経過541が「1」から「3」の間における座標Xb531の変化量は「200」である。
また、時間経過571が「1」の時点における指示位置551の座標Xc561は「500」であり、座標Yc562は「300」である。時間経過571が「2」の時点における指示位置551の座標Xc561は「450」であり、座標Yc562は「300」である。時間経過571が「3」の時点における指示位置551の座標Xc561は「400」であり、座標Yc562は「300」である。よって、時間経過571が「1」から「3」の間における座標Xc561の変化量は「100」である。
次に、フィルタ合成部104は、求めた指示位置521及び指示位置551の変化量を比較して、変化量が多い指示位置がユーザの操作方向であると判断する。
その結果、フィルタ合成部104は、変化量の多い側の文字範囲523「あ、い、う、え、お、か、き、く、け、こ」を文字範囲583として選択する。
以上より、本発明の実施の形態13に係る文字入力予測装置は、2つの文字入力操作が逆方向に移動している場合に、より適切な文字範囲を範囲できる。
なお、上記説明において、複数文字桁への適応又は複数の入力装置への対応として、フィルタ合成部104を設けたが、フィルタ生成部101が、直接、予測表示条件管理部158にフィルタの情報を提供してもよい。
以上、本発明の実施の形態に係る文字入力予測装置について説明したが、本発明は、この実施の形態に限定されるものではない。
また、上記実施の形態に係る文字入力予測装置に含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
また、本発明の実施の形態に係る、文字入力予測装置の機能の一部又は全てを、CPU等のプロセッサがプログラムを実行することにより実現してもよい。
さらに、本発明は上記プログラムであってもよいし、上記プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体であってもよい。また、上記プログラムは、インターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
つまり、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記各実施の形態の画像復号化装置などを実現するソフトウェアは、次のようなプログラムである。
すなわち、このプログラムは、コンピュータに、複数の文字キーが配置された文字キーレイアウト表示を用いた、ユーザによる第1文字入力操作の情報を取得するステップと、前記第1文字入力操作の情報から、前記文字キーレイアウト表示における、前記第1文字入力操作の位置を示す指示位置と、前記文字入力操作の移動方向を示す指示方向とを検出するステップと、前記指示位置と、前記指示方向と、前記文字キーレイアウト表示における前記複数の文字キーの配置を示す文字キーレイアウトとを用いて、前記文字キーレイアウト表示における、前記指示位置を基点として前記指示方向側に位置する文字範囲を決定するステップと、辞書に保持される複数の候補文字列のうち、前記第1文字範囲に含まれる文字のいずれかを含む予測文字列を検索するステップとを実行させる。
また、上記実施の形態1〜13に係る、文字入力予測装置、及びそれら変形例の機能のうち少なくとも一部を組み合わせてもよい。
また、上記で用いた数字は、全て本発明を具体的に説明するために例示するものであり、本発明は例示された数字に制限されない。
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
また、フローチャートにおける処理手順は一例であり、同様の処理結果を実現できる他の処理手順を用いてもよい。例えば、上記のステップが実行される順序は、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
更に、本発明の主旨を逸脱しない限り、本実施の形態に対して当業者が思いつく範囲内の変更を施した各種変形例も本発明に含まれる。