(57)【特許請求の範囲】
【請求項１】
接触検出部と、
文字がそれぞれ対応付けられた複数のキーを表示する表示部と、を有し、
一の位置から他の位置までの連続的な接触を前記接触検出部が検出した場合、当該連続的な接触の過程で、接触が留まらずに直線的に通過された位置に表示されたキーに対応付けられた文字のうち少なくとも一つを抽出し、当該抽出した文字を用いて文字列を作成する文字入力装置。
【請求項２】
接触検出部と、
英字がそれぞれ対応付けられた複数のキーを表示する表示部と、を有し、
一の位置から他の位置までの連続的な接触を前記接触検出部が検出した場合、当該連続的な接触の過程で、接触が留まらずに直線的に通過された位置に表示されたキーに対応付けられた英字のうち少なくとも一つを抽出し、当該抽出した英字を用いてかな文字を作成する文字入力装置。
【請求項３】
接触検出部と、
文字がそれぞれ対応付けられた複数のキーを表示する表示部と、を有し、
一の位置から他の位置までの連続的な接触を前記接触検出部が検出した場合、当該連続的な接触の過程で、接触が留まらずに直線的に通過された位置に表示された複数のキーそれぞれに対応付けられた複数の文字のうち少なくとも一部の複数の文字を抽出し、当該抽出した複数の文字それぞれを用いた複数の文字列を作成する文字入力装置。
【請求項４】
文字入力装置が、一の位置から他の位置までの連続的な接触を検出した場合、当該連続的な接触の過程で、接触が留まらずに直線的に通過された位置に表示されたキーに対応付けられた文字のうち少なくとも一つを抽出し、当該抽出した文字を用いて文字列を作成する文字入力方法。
【請求項５】
文字入力装置が、一の位置から他の位置までの連続的な接触を検出した場合、当該連続的な接触の過程で、接触が留まらずに直線的に通過された位置に表示されたキーに対応付けられた英字のうち少なくとも一つを抽出し、当該抽出した英字を用いてかな文字を作成する文字入力方法。
【請求項６】
文字入力装置が、一の位置から他の位置までの連続的な接触を検出した場合、当該連続的な接触の過程で、接触が留まらずに直線的に通過された位置に表示された複数のキーそれぞれに対応付けられた複数の文字のうち少なくとも一部の複数の文字を抽出し、当該抽出した複数の文字それぞれを用いた複数の文字列を作成する文字入力方法。
【請求項７】
文字入力装置に、一の位置から他の位置までの連続的な接触を検出した場合、当該連続的な接触の過程で、接触が留まらずに直線的に通過された位置に表示されたキーに対応付けられた文字のうち少なくとも一つを抽出し、当該抽出した文字を用いて文字列を作成する機能を発揮させる文字入力プログラム。
【請求項８】
文字入力装置に、一の位置から他の位置までの連続的な接触を検出した場合、当該連続的な接触の過程で、接触が留まらずに直線的に通過された位置に表示されたキーに対応付けられた英字のうち少なくとも一つを抽出し、当該抽出した英字を用いてかな文字を作成する機能を発揮させる文字入力プログラム。
【請求項９】
文字入力装置に、一の位置から他の位置までの連続的な接触を検出した場合、当該連続的な接触の過程で、接触が留まらずに直線的に通過された位置に表示された複数のキーそれぞれに対応付けられた複数の文字のうち少なくとも一部の複数の文字を抽出し、当該抽出した複数の文字それぞれを用いた複数の文字列を作成する機能を発揮させる文字入力プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字入力装置、文字入力方法および文字入力プログラムに関する。
【背景技術】
【０００２】
近年、直感的な操作を可能にするとともに、キーボードのように物理的に大きな面積を必要とするデバイスを具備しない小型の端末装置を実現するために、タッチパネルが広く利用されるようになっている。タッチパネルを用いて文字を入力するための技術として、タッチパネル上で文字を手書き入力する技術（例えば、特許文献１）と、タッチパネル上に表示された仮想的なキーボード（以下、「仮想キーボード」という）を用いて文字を入力する技術（例えば、特許文献２）が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１４１４４８号公報
【特許文献２】特開２００８−１０８２３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、タッチパネル上で文字を手書き入力する従来技術には、入力と文字認識処理に時間がかかるため高速な文字入力が困難であるという問題があった。また、仮想キーボードを用いて文字を入力する従来技術でも、入力したい文字に対応するキーごとに指をタッチパネルに対して上げ下げする動作を繰り返す必要があったため、高速な文字入力が困難であった。
【０００５】
本発明は、上記に鑑みてなされたものであって、タッチパネル上で高速に文字を入力することを可能にする文字入力装置、文字入力方法および文字入力プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、文字入力装置であって、接触検出部と、文字がそれぞれ対応付けられた複数のキーを表示する表示部と、を有し、一の位置から他の位置までの連続的な接触を前記接触検出部が検出した場合、当該連続的な接触の過程で、接触が留まらずに直線的に通過された位置に表示されたキーに対応付けられた文字のうち少なくとも一つを抽出し、当該抽出した文字を用いて文字列を作成する。
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、文字入力装置であって、接触検出部と、英字がそれぞれ対応付けられた複数のキーを表示する表示部と、を有し、一の位置から他の位置までの連続的な接触を前記接触検出部が検出した場合、当該連続的な接触の過程で、接触が留まらずに直線的に通過された位置に表示されたキーに対応付けられた英字のうち少なくとも一つを抽出し、当該抽出した英字を用いてかな文字を作成する。
【０００８】
上述した課題を解決し、目的を達成するために、本発明は、文字入力装置であって、接触検出部と、文字がそれぞれ対応付けられた複数のキーを表示する表示部と、を有し、一の位置から他の位置までの連続的な接触を前記接触検出部が検出した場合、当該連続的な接触の過程で、接触が留まらずに直線的に通過された位置に表示された複数のキーそれぞれに対応付けられた複数の文字のうち少なくとも一部の複数の文字を抽出し、当該抽出した複数の文字それぞれを用いた複数の文字列を作成する。
【０００９】
また、上述した課題を解決し、目的を達成するために、本発明は、文字入力方法であって、文字入力装置が、一の位置から他の位置までの連続的な接触を検出した場合、当該連続的な接触の過程で、接触が留まらずに直線的に通過された位置に表示されたキーに対応付けられた文字のうち少なくとも一つを抽出し、当該抽出した文字を用いて文字列を作成する。
【００１０】
また、上述した課題を解決し、目的を達成するために、本発明は、文字入力方法であって、文字入力装置が、一の位置から他の位置までの連続的な接触を検出した場合、当該連続的な接触の過程で、接触が留まらずに直線的に通過された位置に表示されたキーに対応付けられた英字のうち少なくとも一つを抽出し、当該抽出した英字を用いてかな文字を作成する。
【００１１】
また、上述した課題を解決し、目的を達成するために、本発明は、文字入力方法であって、文字入力装置が、一の位置から他の位置までの連続的な接触を検出した場合、当該連続的な接触の過程で、接触が留まらずに直線的に通過された位置に表示された複数のキーそれぞれに対応付けられた複数の文字のうち少なくとも一部の複数の文字を抽出し、当該抽出した複数の文字それぞれを用いた複数の文字列を作成する。
【００１２】
また、上述した課題を解決し、目的を達成するために、本発明は、文字入力プログラムであって、文字入力装置に、一の位置から他の位置までの連続的な接触を検出した場合、当該連続的な接触の過程で、接触が留まらずに直線的に通過された位置に表示されたキーに対応付けられた文字のうち少なくとも一つを抽出し、当該抽出した文字を用いて文字列を作成する機能を発揮させる。
【００１３】
また、上述した課題を解決し、目的を達成するために、本発明は、文字入力プログラムであって、文字入力装置に、一の位置から他の位置までの連続的な接触を検出した場合、当該連続的な接触の過程で、接触が留まらずに直線的に通過された位置に表示されたキーに対応付けられた英字のうち少なくとも一つを抽出し、当該抽出した英字を用いてかな文字を作成する機能を発揮させる。
【００１４】
また、上述した課題を解決し、目的を達成するために、本発明は、文字入力プログラムであって、文字入力装置に、一の位置から他の位置までの連続的な接触を検出した場合、当該連続的な接触の過程で、接触が留まらずに直線的に通過された位置に表示された複数のキーそれぞれに対応付けられた複数の文字のうち少なくとも一部の複数の文字を抽出し、当該抽出した複数の文字それぞれを用いた複数の文字列を作成する機能を発揮させる。
【発明の効果】
【００１５】
本発明に係る文字入力装置、文字入力方法および文字入力プログラムは、タッチパネル上で高速に文字を入力することを可能にするという効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】図１は、携帯電話端末の外観を示す正面図である。
【図２】図２は、タッチパネル上に表示される仮想キーボードを示す図である。
【図３】図３は、ボタン領域内を指が通過した例を示す図である。
【図４】図４は、ボタン領域内で指の移動方向が変化した例を示す図である。
【図５】図５は、ボタン領域内で指が回転する軌跡を描いた例を示す図である。
【図６】図６は、文字入力の操作例を示す図である。
【図７】図７は、携帯電話端末の機能の概略構成を示すブロック図である。
【図８】図８は、仮想キーボードデータの一例を示す図である。
【図９】図９は、携帯電話端末による文字入力処理の処理手順を示すフロー図である。
【図１０】図１０は、入力文字バッファの一例を示す図である。
【図１１】図１１は、一時バッファの一例を示す図である。
【図１２】図１２は、タッチパネル上に表示される入力文字列候補表示領域を示す図である。
【図１３】図１３は、文字入力判定処理の処理手順を示すフロー図である。
【図１４】図１４は、文字列検索処理の処理手順を示すフロー図である。
【図１５】図１５は、優先度を細分化した場合の一時バッファの一例を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明につき図面を参照しつつ詳細に説明する。なお、以下の説明により本発明が限定されるものではない。また、以下の説明における構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。以下においては、端末装置として携帯電話端末を例として説明するが、本発明の適用対象は携帯電話端末に限定されるものではなく、タッチパネルを備える各種装置、例えば、ＰＨＳ（Personal  Handyphone  System）、ＰＤＡ、ポータブルナビゲーション装置、パーソナルコンピュータ、ゲーム機等に対しても本発明は適用できる。
【実施例】
【００１８】
図１は、本発明の端末装置の一実施形態である携帯電話端末１の外観を示す正面図である。携帯電話端末１は、タッチパネル２と、ボタン３Ａ、ボタン３Ｂおよびボタン３Ｃからなる入力部３を備える。タッチパネル２は、文字、図形、画像等を表示するとともに、指、スタイラス、ペン等（以下、単に「指」という）を用いてタッチパネル２に対して行われる各種動作を検出する。入力部３は、いずれかのボタンが押下された場合に、押下されたボタンに対応する機能を起動させる。
【００１９】
携帯電話端末１は、利用者から文字の入力を受け付けるために、図２に示すように、タッチパネル２上に仮想キーボード４を表示させる。仮想キーボード４は、物理的なキーボードのキーを模した複数の仮想的なボタンを含む。例えば、利用者が仮想キーボード４内の「Ｑ」のボタンに指を置いて（接触して）離す動作をすると、その動作がタッチパネル２によって検出され、携帯電話端末１は、「Ｑ」という文字を入力として受け付ける。
【００２０】
携帯電話端末１は、さらに、仮想キーボード４上での連続方式による文字の入力を受け付ける。連続方式とは、利用者が指をタッチパネル２に接触させたまま仮想キーボード４上を移動させることによって複数の文字を連続して入力することを可能にする方式である。連続方式では、利用者は、例えば、指をタッチパネル２に接触させたままで、「Ｗ」のボタン、「Ｅ」のボタン、「Ｔ」のボタンの順に滑るように移動させることで「ＷＥＴ」という文字列を入力することができる。
【００２１】
このように、連続方式では、ボタン毎に指を上げ下げする動作を行わずに、タッチパネル２上で指を滑るように移動させるだけで複数の文字を入力することができるため、非常に高速に文字を入力することができる。
【００２２】
ただし、連続方式では、利用者が指を移動させた軌跡上にある各ボタンについて、利用者がそのボタンに対応する文字を入力するために意図的に触れたのか、あるいは、利用者が他のボタン上へ指を移動させるために単にその上を通過させたに過ぎないのかを判定する必要がある。例えば、仮想キーボード４の配列がＱＷＥＲＴＹ配列であり、利用者が上記の「ＷＥＴ」という単語を入力したいものとする。この場合、利用者の指は「Ｅ」のボタンから「Ｔ」のボタンへ移動する際に、それらのボタンの間にある「Ｒ」のボタン上を通過することになる。このため、「Ｒ」のボタンについては意図的に触れたわけではないと判定できなかった場合には、利用者の意図に反して「ＷＥＲＴ」という文字列が入力として受け付けられてしまう。
【００２３】
そこで、携帯電話端末１は、利用者が指を移動させた軌跡上にあるボタンのうち、特定の動作がタッチパネル２によって検出された位置に表示されているボタンを、利用者が文字を入力するために意図的に触れたものであると判定する。具体的には、携帯電話端末１は、指の接触を開始する動作がタッチパネル２によって検出された場合、接触の開始が検出された位置にボタンがあれば、そのボタンは意図的に触れられたと判定する。また、携帯電話端末１は、指の移動が終了しタッチパネル２から離れる動作がタッチパネル２によって検出された場合、接触の終了が検出された位置にボタンがあれば、そのボタンは意図的に触れられたと判定する。
【００２４】
また、携帯電話端末１は、指がタッチパネル２に触れたまま移動方向を変更する動作がタッチパネル２によって検出された場合、移動方向の変更が検出された位置にボタンがあれば、そのボタンは意図的に触れられたと判定する。具体的には、携帯電話端末１は、指がボタンに進入したときの移動方向と指がボタンから出るときの移動方向とを比較し、移動方向の角度差が閾値よりも大きければ、利用者が意図的にそのボタンに触れたと判定する。
【００２５】
これは、他のボタンへの移動中において、単に通過するに過ぎない場合、指はボタン上を一定方向へ移動し、図３に示すように進入時の移動方向（ベクトル）を示すＶ１と脱出時の移動方向を示すＶ２の角度差は小さくなると考えられるためである。また、図４に示すように進入時の移動方向を示すＶ３と脱出時の移動方向を示すＶ４の角度差の角度差が大きい場合、利用者が意図的にそのボタンに触れた後に他のボタンに触れるために移動方向を変更した可能性が高いためである。つまり、このボタンが目的ボタンの一つであったと判定できる。
【００２６】
また、携帯電話端末１は、図５に示すように、指がタッチパネル２に触れたままあるボタン領域内で回転する軌跡を描いて移動する動作がタッチパネル２によって検出された場合に、利用者が意図的にそのボタンに触れたと判定する。単に通過するに過ぎない場合に指がこのような軌跡を描いて移動することはないと考えられるためである。なお、回転する軌跡に限らずに、山型や波状等の特徴的な形状の軌跡が指によってボタン領域内で描かれた場合に、利用者が意図的にそのボタンに触れたと判定することとしてもよい。
【００２７】
このようにボタン領域内で特徴的な形状の軌跡を描く指の移動が検出された場合にそのボタンが意図的に触れられたと判定することにより、利用者は同じ文字を容易に連続して入力することが可能になる。例えば、「Ｗ」という文字を３回連続して入力したい場合、利用者は「Ｗ」のボタン領域内で円を３回描くように指を移動させればよい。ここで、例えば、ボタン領域内での指の移動ベクトルの角度の総計が３６０度を超える度に１回転とカウントすることにより、回転数をカウントすることができる。
【００２８】
利用者が携帯電話端末１に「エレクトロニクス（ＥＲＥＫＵＴＯＲＯＮＩＫＵＳＵ）」と入力する場合の操作例を図６に示す。ｓ１では、「Ｅ」のボタン領域内に指が置かれた後、指がタッチパネル２に触れたまま、「Ｒ」、「Ｅ」、「Ｈ」、「Ｊ」、「Ｋ」の順にボタンの上を通過している。この場合、携帯電話端末１は、指が置かれた「Ｅ」のボタンと、進入方向と脱出方向の角度差が閾値よりも大きい「Ｒ」、「Ｅ」、「Ｋ」のボタンが意図的に触れられたと判断する。
【００２９】
ｓ２では、指がタッチパネル２に触れたまま、「Ｕ」、「Ｙ」、「Ｔ」、「Ｙ」、「Ｕ」、「Ｉ」の順にボタンの上を通過している。この場合、携帯電話端末１は、進入方向と脱出方向の角度差が閾値よりも大きい「Ｕ」、「Ｔ」のボタンが意図的に触れられたと判断する。ｓ３では、指がタッチパネル２に触れたまま、「Ｏ」、「Ｉ」、「Ｕ」、「Ｙ」、「Ｔ」、「Ｒ」、「Ｔ」、「Ｙ」、「Ｕ」、「Ｉ」の順にボタンの上を通過している。この場合、携帯電話端末１は、進入方向と脱出方向の角度差が閾値よりも大きい「Ｏ」、「Ｒ」のボタンが意図的に触れられたと判断する。
【００３０】
ｓ４では、指がタッチパネル２に触れたまま、「Ｏ」、「Ｋ」、「Ｎ」、「Ｊ」の順にボタンの上を通過している。この場合、携帯電話端末１は、進入方向と脱出方向の角度差が閾値よりも大きい「Ｏ」、「Ｎ」のボタンが意図的に触れられたと判断する。ｓ５では、指がタッチパネル２に触れたまま、「Ｉ」、「Ｋ」、「Ｕ」、「Ｇ」、「Ｆ」、「Ｄ」、「Ｓ」、「Ｒ」、「Ｔ」、「Ｙ」の順にボタンの上を通過している。この場合、携帯電話端末１は、進入方向と脱出方向の角度差が閾値よりも大きい「Ｉ」、「Ｋ」、「Ｕ」、「Ｓ」のボタンが意図的に触れられたと判断する。
【００３１】
ｓ６では、タッチパネル２に触れたまま「Ｕ」のボタンへ移動した指が、「Ｕ」のボタン領域内でタッチパネル２から離れている。この場合、携帯電話端末１は、指がタッチパネル２から離れた位置にある「Ｕ」のボタンが意図的に触れられたと判断する。
【００３２】
以上の操作により、携帯電話端末１は、「Ｅ」、「Ｒ」、「Ｅ」、「Ｋ」、「Ｕ」、「Ｔ」、「Ｏ」、「Ｒ」、「Ｏ」、「Ｎ」、「Ｉ」、「Ｋ」、「Ｕ」、「Ｓ」、「Ｕ」の順にボタンが意図的に触れられたと判定し、これらのボタンに対応する文字を時系列に連結した「エレクトロニクス（ＥＲＥＫＵＴＯＲＯＮＩＫＵＳＵ）」を入力された文字列として受け付ける。この文字列は、利用者が入力しようとした文字列と一致する。
【００３３】
図６の例が示すように、携帯電話端末１は、利用者の指がタッチパネル２に触れたまま移動した軌跡上の各ボタンについて、意図して触れられたのか、単にその上を通過したに過ぎないのかを、利用者が自然に行う動作に基づいて精度よく判定して文字の入力を受け付ける。このため、利用者は、携帯電話端末１に対して文字を高速かつ正確に入力することができる。
【００３４】
なお、携帯電話端末１は、単に指が通過したに過ぎないと判定したボタンに対応する文字を無視するのではなく、入力精度を向上させるためにそれらの文字を利用する。具体的には、携帯電話端末１は、利用者が意図的に触れたと判定したボタンに対応する文字を時系列に連結した文字列を辞書と照合し、該当する単語が見つからない場合は、単に指が通過したに過ぎないと判定したボタンに対応する文字を補完して辞書との照合をやり直して正当な単語を見つけ出す。
【００３５】
例えば、利用者が携帯電話端末１に対して「ＷＥＴ」という単語を入力したい場合、利用者は、「Ｗ」のボタン領域内に指を置いた後、タッチパネル２に触れたまま指を「Ｔ」のボタンの方向へ移動させ、「Ｔ」のボタン領域内で指をタッチパネル２から離す。この場合、指が置かれた「Ｗ」のボタンと指が離れた「Ｔ」のボタンは意図的に触れられたと判定されるが、指が移動する軌道上にある「Ｅ」と「Ｒ」のボタンは、進入方向と脱出方向の角度差が小さいため、単に通過したに過ぎないと判定される。
【００３６】
しかしながら、利用者が意図的に触れたと判定したボタンに対応する文字を時系列に連結した文字列である「ＷＴ」は辞書に存在しない。そこで、携帯電話端末１は、単に通過したに過ぎないと判定したボタンに対応する文字を時系列に補完して、「ＷＥＴ」、「ＷＲＴ」、「ＷＥＲＴ」という候補を作成し、各候補を辞書と照合する。この場合、「ＷＥＴ」という単語が辞書に含まれるため、携帯電話端末１は、「ＷＥＴ」を入力された文字として受け付ける。この文字列は、利用者が入力しようとした文字列と一致する。
【００３７】
ところで、「ＷＥＴ」という単語を入力する場合、利用者は、タッチパネル２に触れたまま指を「Ｗ」のボタンから「Ｔ」のボタンの方向へ移動させる最中に、「Ｅ」のボタンの中で回転する軌道を描いてもよい。このような操作をすることにより、利用者は、「Ｅ」のボタンに意図的に触れたことを携帯電話端末１に明示的に示して、入力した文字列の識別精度を向上させることができる。
【００３８】
次に、携帯電話端末１の機能と制御部との関係を説明する。図７は、図１に示す携帯電話端末１の機能の概略構成を示すブロック図である。図７に示すように携帯電話端末１は、タッチパネル２と、入力部３と、電源部５と、通信部６と、スピーカ７と、マイク８と、記憶部９と、主制御部１０と、ＲＡＭ（Random  Access  Memory）１１とを有する。
【００３９】
タッチパネル２は、表示部２Ｂと、表示部２Ｂに重畳されたタッチセンサ２Ａとを有する。タッチセンサ２Ａは、指を用いてタッチパネル２に対して行われた各種動作を、動作が行われた場所のタッチパネル２上での位置とともに検出する。タッチセンサ２Ａによって検出される動作には、指をタッチパネル２の表面に接触させる動作や、指をタッチパネル２の表面に接触させたまま移動させる動作や、指をタッチパネル２の表面から離す動作が含まれる。なお、タッチセンサ２Ａは、感圧式、静電式等のいずれの検出方式を採用していてもよい。表示部２Ｂは、例えば、液晶ディスプレイ（ＬＣＤ、Liquid  Crystal  Display）や、有機ＥＬ（Organic  Electro−Luminescence）パネルなどで構成され、文字、図形、画像等を表示する。
【００４０】
入力部３は、物理的なボタン等を通じて利用者の操作を受け付け、受け付けた操作に対応する信号を主制御部１０へ送信する。電源部５は、蓄電池または外部電源から得られる電力を、主制御部１０を含む携帯電話端末１の各機能部へ供給する。通信部６は、基地局によって割り当てられるチャネルを介し、基地局との間でＣＤＭＡ方式などによる無線信号回線を確立し、基地局との間で電話通信及び情報通信を行う。スピーカ７は、電話通信における相手側の音声や着信音等を出力する。マイク８は、利用者等の音声を電気的な信号へ変換する。
【００４１】
記憶部９は、例えば、不揮発性メモリや磁気記憶装置であり、主制御部１０での処理に利用されるプログラムやデータを保存する。具体的には、記憶部９は、メールの送受信や閲覧のためのメールプログラム９Ａや、ＷＥＢページの閲覧のためのブラウザプログラム９Ｂや、上述した連続方式での文字入力を受け付けるための文字入力プログラム９Ｃや、文字入力時にタッチパネル２に表示される仮想キーボードに関する定義を含む仮想キーボードデータ９Ｄや、正当な文字列が登録された辞書データ９Ｅを記憶する。記憶部９には、携帯電話端末１の基本的な機能を実現するオペレーティングシステムプログラムや、氏名、電話番号、メールアドレス等が登録されたアドレス帳データ等の他のプログラムやデータも記憶される。
【００４２】
主制御部１０は、例えば、ＣＰＵ（Central  Processing  Unit）であり、携帯電話端末１の動作を統括的に制御する。具体的には、主制御部１０は、記憶部９に記憶されているデータを必要に応じて参照しつつ、記憶部９に記憶されているプログラムを実行して、タッチパネル２、通信部６等を制御することによって各種処理を実行する。主制御部１０は、記憶部９に記憶されているプログラムや、処理を実行することによって取得／生成／加工されたデータを、一時的な記憶領域を提供するＲＡＭ１１に必要に応じて展開する。なお、主制御部１０が実行するプログラムや参照するデータは、通信部６による無線通信でサーバ装置からダウンロードすることとしてもよい。
【００４３】
ここで、記憶部９が記憶する仮想キーボードデータ９Ｄの一例を図８に示す。図８の例に示すように、仮想キーボードデータ９Ｄには、仮想キーボードに含まれるボタン毎に、ボタンに対応する文字、ボタンの位置（例えば、左上座標）、幅、高さ等が登録される。図８に示す例では、あるボタンに対応する文字が「Ｑ」であり、そのボタンの左上座標がＸ＝１０、Ｙ＝１０であり、そのボタンの幅と高さが２０と４０であること等が登録されている。
【００４４】
次に、携帯電話端末１が文字の入力を受け付ける場合の動作について説明する。図９は、携帯電話端末１による文字入力処理の処理手順を示すフロー図である。図９に示す文字入力処理は、主制御部１０が記憶部９から文字入力プログラム９Ｃを読み出して実行することにより実現され、仮想キーボード４がタッチパネル２上に表示されている間、繰り返し実行される。なお、仮想キーボード４は、主制御部１０が文字入力プログラム９Ｃまたは他のプログラムを実行することにより、タッチパネル２上に表示される。
【００４５】
まず、主制御部１０は、ステップＳ１０として、入力文字バッファ１２をクリアし、ステップＳ１１として、一時バッファ１３をクリアする。入力文字バッファ１２は、指がタッチパネル２に接触したまま移動した軌跡上の各ボタンに対応する文字が優先度と対応づけて格納される記憶領域であり、ＲＡＭ１１に設けられる。一時バッファ１３は、指がタッチパネル２に接触したまま移動した軌跡上の各ボタンのうち、指が単にその上を通過したに過ぎないと判定されたボタンに対応する文字が一時的に格納される記憶領域であり、ＲＡＭ１１に設けられる。
【００４６】
入力文字バッファ１２の一例を図１０に示す。図１０は、タッチパネル２に対して図６に示した操作が行われた場合の入力文字バッファ１２を示している。図１０の例において、入力文字バッファ１２の上段には、指がタッチパネル２に接触したまま移動した軌跡上の各ボタンに対応する文字が格納され、下段には、上段の文字に対応づけられた優先度が格納されている。図１０の例が示すように、入力文字バッファ１２には、指がタッチパネル２に接触したまま移動した軌跡上の各ボタンに対応する文字が時系列に格納される。
【００４７】
優先度は、入力文字バッファ１２に含まれる文字を連結して文字列を構成する際に、対応付けられた文字を採用するか否かを決定するために用いられる。本実施例では、優先度の値が小さいほど、対応付けられた文字が優先的に採用されることとする。具体的には、指が意図的に触れたと判断されたボタンに対応する文字には優先度として「１」を対応付け、指が単に通過したに過ぎないと判断されたボタンに対応する文字には優先度として「２」を対応付ける。
【００４８】
一時バッファ１３の一例を図１１に示す。図１１は、図６のｓ１において指が「Ｊ」のボタンから出た時点での一時バッファ１３を示している。図１１の例が示すように、一時バッファ１３には、指が単にその上を通過したに過ぎないと判定されたボタンに対応する文字が、指がいずれかのボタンに意図的に触れたと判定されるまで、時系列に格納される。
【００４９】
入力文字バッファ１２と一時バッファ１３のクリアを終えると、主制御部１０は、ステップＳ１２として、ＲＡＭ１１に設けた入力完了フラグを０に設定する。入力完了フラグは、１回分の文字入力が完了したか否かを判定するために用いられる。ここでいう１回分の文字入力とは、指をタッチパネル２に接触させてから離すまでの間に行われる文字入力を意味する。
【００５０】
続いて、主制御部１０は、ステップＳ１３として、タッチパネル２の最新の検出結果を取得し、ステップＳ１４として、文字入力判定処理を実行する。文字入力判定処理において、主制御部１０は、指がタッチパネル２に接触したまま移動した軌跡上に表示されている各ボタンに対応する文字を入力文字バッファ１２や一時バッファ１３に格納していく。なお、文字入力判定処理の詳細については後述する。
【００５１】
文字入力判定処理の実行後、主制御部１０は、ステップＳ１５として、入力完了フラグが０のままであるかを判定する。ここで、入力完了フラグが０のままである場合、すなわち、１回分の文字入力がまだ完了していない場合（ステップＳ１５，Ｙｅｓ）、主制御部１０は、ステップＳ１６として、文字列検索処理を実行して入力文字バッファ１２に格納されている文字を連結した文字列とマッチする文字列を辞書データ９Ｅから検索する。なお、文字列検索処理の詳細については後述する。
【００５２】
続いて、主制御部１０は、ステップＳ１７として、文字列検索処理によって得られた１ないし複数の文字列を図１２に示すように入力文字列候補表示領域１４に表示する。そして、主制御部１０は、入力完了フラグが０でない、すなわち、１回分の文字入力が完了したとステップＳ１５で判定されるまで、ステップＳ１３〜ステップＳ１７を繰り返して実行する。
【００５３】
ステップＳ１５で入力完了フラグが０でなくなっていた場合（ステップＳ１５，Ｎｏ）、主制御部１０は、ステップＳ１８として、文字列検索処理を実行して入力文字バッファ１２に格納されている文字を連結した文字列とマッチする文字列を辞書データ９Ｅから検索する。ここで、文字列検索処理の処理結果として得られた文字列が１つだけであった場合（ステップＳ１９，Ｙｅｓ）、主制御部１０は、ステップＳ２０として、文字列検索処理の処理結果として得られた文字列を入力された文字列として受け付ける。
【００５４】
一方、文字列検索処理の処理結果として得られた文字列が複数あった場合（ステップＳ１９，Ｎｏ）、主制御部１０は、ステップＳ２１として、文字列検索処理の処理結果として得られた複数の文字列を図１２に示すように入力文字列候補表示領域１４に表示する。そして、主制御部１０は、ステップＳ２２として、タッチパネル２の最新の検出結果を取得し、ステップＳ２３として、入力文字列候補表示領域１４に表示した文字列のいずれかが選択されたかを判定する。
【００５５】
ここで、いずれの文字列も選択されていなければ（ステップＳ２３，Ｎｏ）、主制御部１０は、いずれかの文字列が選択されるまで、ステップＳ２２〜ステップＳ２３を繰り返して実行する。なお、ステップＳ２２において利用者の指が入力文字列候補表示領域１４以外の領域に触れるといった入力のキャンセルを示す動作が検出された場合に、主制御部１０が、文字入力処理を終了させることとしてもよい。
【００５６】
ステップＳ２３で入力文字列候補表示領域１４に表示した文字列のいずれかが選択されていた場合（ステップＳ２３，Ｙｅｓ）、主制御部１０は、ステップＳ２４として、選択された文字列を入力された文字列として受け付ける。
【００５７】
次に、図１３に示したフロー図を参照しながら、図９のステップＳ１４で実行される文字入力判定処理について説明する。主制御部１０は、ステップＳ３０として、タッチパネル２で検出された動作がタッチパネル２への接触を開始する動作、すなわち、指をタッチパネル２の表面に接触させる動作であったかを、タッチパネル２の検出結果に基づいて判定する。
【００５８】
検出された動作がタッチパネル２への接触を開始する動作であった場合（ステップＳ３０，Ｙｅｓ）、主制御部１０は、ステップＳ３１として、接触が開始された位置を仮想キーボードデータ９Ｄと照合して、接触が開始された位置がいずれかのボタン領域内であったかを判定する。接触が開始された位置がいずれかのボタン領域内であった場合（ステップＳ３１，Ｙｅｓ）、ボタンは意図して触れられたと考えられるので、主制御部１０は、ステップＳ３２として、そのボタンに対応する文字を優先度「１」と対応付けて入力文字バッファ１２に追加する。ボタンに対応する文字は、仮想キーボードデータ９Ｄから取得される。
【００５９】
そして、主制御部１０は、ステップＳ３３として、出力フラグを「１」に設定して文字入力判定処理を終了させる。出力フラグは、ＲＡＭ１１に設けられ、指が現在接触している位置に表示されているボタンに対応する文字を入力文字バッファ１２または一時バッファ１３に出力済みであるか否かを判定するために用いられる。出力フラグの値が「０」であることは、指が現在接触している位置に表示されているボタンに対応する文字をいずれのバッファにもまだ出力していないことを示す。出力フラグの値が「１」であることは、指が現在接触している位置に表示されているボタンに対応する文字をいずれかのバッファに出力済みであることを示す。
【００６０】
ステップＳ３１において、接触が開始された位置がボタン領域内でなかった場合（ステップＳ３１，Ｎｏ）、主制御部１０は、特に処理を行わずに文字入力判定処理を終了させる。
【００６１】
ステップＳ３０において、タッチパネル２で検出された動作がタッチパネル２への接触を開始する動作でなかった場合（ステップＳ３０，Ｎｏ）、主制御部１０は、ステップＳ３４として、タッチパネル２で検出された動作がタッチパネル２への接触を保ったまま指をボタン領域内に進入させる動作であったかを、タッチパネル２の検出結果に基づいて判定する。検出された動作がタッチパネル２への接触を保ったまま指をボタン領域内に進入させる動作であったか否かは、タッチパネル２の最新の検出結果が示す接触位置とその直前の検出結果が示す接触位置とを仮想キーボードデータ９Ｄと照合することによって判定される。
【００６２】
検出された動作がタッチパネル２への接触を保ったまま指をボタン領域内に進入させる動作であった場合（ステップＳ３４，Ｙｅｓ）、主制御部１０は、ステップＳ３５として、移動方向履歴をクリアする。移動方向履歴は、ボタン領域内で指がどの方向へ移動したかを示す方向ベクトルが時系列に記録されるデータであり、ＲＡＭ１１に記憶される。
【００６３】
続いて、主制御部１０は、ステップＳ３６として、指がボタン領域内に進入した方向を示す方向ベクトルを取得して、取得した方向ベクトルを移動方向履歴に追加する。そして、主制御部１０は、ステップＳ３７として、出力フラグを「０」に設定して文字入力判定処理を終了させる。
【００６４】
なお、タッチパネル２の検出結果に指の移動方向を示す情報が含まれている場合、方向ベクトルは、タッチパネル２の検出結果から取得される。タッチパネル２の検出結果に指の移動方向を示す情報が含まれていない場合、方向ベクトルは、タッチパネル２の最新の検出結果が示す接触位置とその直前の検出結果が示す接触位置とから算出される。
【００６５】
ステップＳ３４において、タッチパネル２で検出された動作がタッチパネル２への接触を保ったまま指をボタン領域内に進入させる動作でなかった場合（ステップＳ３４，Ｎｏ）、主制御部１０は、ステップＳ３８として、タッチパネル２で検出された動作がタッチパネル２への接触を保ったまま指をボタンの外へ出す動作であったかを、タッチパネル２の検出結果に基づいて判定する。検出された動作がタッチパネル２への接触を保ったまま指をボタンの外へ出す動作であったか否かは、タッチパネル２の最新の検出結果が示す接触位置とその直前の検出結果が示す接触位置とを仮想キーボードデータ９Ｄと照合することによって判定される。
【００６６】
検出された動作がタッチパネル２への接触を保ったまま指をボタンの外へ出す動作であった場合（ステップＳ３８，Ｙｅｓ）、主制御部１０は、ステップＳ３９として、出力フラグが「０」であるかを判定する。ここで、出力フラグが「０」でなかった場合、すなわち、指がそれまで内部に位置していたボタンに対応する文字をいずれかのバッファに出力済みの場合（ステップＳ３９，Ｎｏ）、主制御部１０は、特に処理を行わずに文字入力判定処理を終了させる。
【００６７】
一方、出力フラグが「０」であった場合（ステップＳ３９，Ｙｅｓ）、主制御部１０は、ステップＳ４０として、最新の移動ベクトル、すなわち、指がボタンの外へ出た方向を示す方向ベクトルを取得し、移動方向履歴の先頭の方向ベクトルとの角度差を算出する。ここで算出された角度差は、指がボタンに進入したときの方向と指がボタンから脱出したときの方向の相違の大きさを表す。
【００６８】
算出された角度差が所定の閾値以下の場合（ステップＳ４１，Ｎｏ）、指は単にボタンを通過したに過ぎないと考えられるため、主制御部１０は、ステップＳ４２として、そのボタンに対応する文字を一時バッファ１３に追加して文字入力判定処理を終了させる。
【００６９】
一方、算出された角度差が所定の閾値より大きい場合（ステップＳ４１，Ｙｅｓ）、ボタンは意図的に触れられたと考えられるため、主制御部１０は、そのボタンに対応する文字が、指が通過した軌道上の他のボタンに対応する文字とともに時系列に入力文字バッファ１２に格納されるように、ステップＳ４３以降の処理手順を実行する。
【００７０】
ステップＳ４３として、主制御部１０は、一時バッファ１３に格納されている文字を優先度「２」と対応付けて入力文字バッファ１２へ追加し、続いて、ステップＳ４４として、ボタンに対応する文字を優先度「１」と対応付けて入力文字バッファ１２に追加する。そして、主制御部１０は、ステップＳ４５として、一時バッファ１３をクリアして文字入力判定処理を終了させる。
【００７１】
ステップＳ３８において、タッチパネル２で検出された動作がタッチパネル２への接触を保ったまま指をボタンの外へ出す動作でなかった場合（ステップＳ３８，Ｎｏ）、主制御部１０は、ステップＳ４６として、タッチパネル２で検出された動作がタッチパネル２への接触を終了させる動作、すなわち、指をタッチパネル２から離す動作であったかを、タッチパネル２の検出結果に基づいて判定する。
【００７２】
検出された動作がタッチパネル２への接触を終了させる動作であった場合（ステップＳ４６，Ｙｅｓ）、主制御部１０は、ステップＳ４７として、接触が終了された位置を仮想キーボードデータ９Ｄと照合して、接触が終了された位置がいずれかのボタン領域内であったかを判定する。接触が終了された位置がいずれかのボタン領域内であった場合（ステップＳ４７，Ｙｅｓ）、ボタンは意図して触れられたと考えられるため、主制御部１０は、そのボタンに対応する文字が、指が通過した軌道上の他のボタンに対応する文字とともに時系列に入力文字バッファ１２に格納されるように、ステップＳ４８以降の処理手順を実行する。
【００７３】
ステップＳ４８として、主制御部１０は、出力フラグが「０」であるかを判定する。ここで、出力フラグが「０」である場合、すなわち、意図して触れられたと考えられるボタンに対応する文字がまだいずれのバッファにも出力されていない場合（ステップＳ４８，Ｙｅｓ）、主制御部１０は、ステップＳ４９として、一時バッファ１３に格納されている文字を優先度「２」と対応付けて入力文字バッファ１２へ追加する。そして、主制御部１０は、ステップＳ５０として、ボタンに対応する文字を優先度「１」と対応付けて入力文字バッファ１２に追加する。
【００７４】
そして、タッチパネル２への接触が終了させる動作が行われたということは、一回分の文字入力が完了したことを意味するので、主制御部１０は、ステップＳ５１として、入力完了フラグを「１」に設定して文字入力判定処理を終了させる。
【００７５】
接触が終了された位置がボタン領域内でなかった場合（ステップＳ４７，Ｎｏ）、または、出力フラグが「０」でなかった場合（ステップＳ４８，Ｎｏ）、主制御部１０は、ステップＳ５１として、入力完了フラグを「１」に設定する処理のみを行って文字入力判定処理を終了させる。
【００７６】
なお、接触が終了された位置がボタン領域内でなかった場合、または、出力フラグが「０」でなかった場合に、一時バッファ１３に格納されている文字を優先度「２」と対応付けて入力文字バッファ１２へ追加することとしてもよい。
【００７７】
ステップＳ４６において、タッチパネル２で検出された動作がタッチパネル２への接触を終了させる動作でなかった場合（ステップＳ４６，Ｎｏ）、主制御部１０は、ステップＳ５２として、タッチパネル２で検出された動作がタッチパネル２への接触を保ったままボタン領域内で指を移動させる動作であったかを、タッチパネル２の検出結果に基づいて判定する。
【００７８】
検出された動作がタッチパネル２への接触を保ったままボタン領域内で指を移動させる動作であった場合（ステップＳ５２，Ｙｅｓ）、主制御部１０は、ステップＳ５３として、指がボタン領域内で移動した方向を示す方向ベクトルを取得して、取得した方向ベクトルを移動方向履歴に追加する。そして、主制御部１０は、ステップＳ５４として、移動方向履歴に記録されている各方向ベクトルを参照して、指がタッチパネル２に触れたままボタン領域内で回転する軌跡を描いて移動したかを判定する。
【００７９】
ここで、指がタッチパネル２に触れたままボタン領域内で回転する軌跡を描いて移動していた場合（ステップＳ５４，Ｙｅｓ）、ボタンは意図的に触れられたと考えられるため、主制御部１０は、そのボタンに対応する文字が、指が通過した軌道上の他のボタンに対応する文字とともに時系列に入力文字バッファ１２に格納されるように、ステップＳ５５以降の処理手順を実行する。
【００８０】
ステップＳ５５として、主制御部１０は、一時バッファ１３に格納されている文字を優先度「２」と対応付けて入力文字バッファ１２へ追加し、続いて、ステップＳ５６として、ボタンに対応する文字を優先度「１」と対応付けて入力文字バッファ１２に追加する。そして、主制御部１０は、ステップＳ５７として、出力フラグを「１」に設定し、ステップＳ５８として、移動方向履歴をクリアして文字入力判定処理を終了させる。
【００８１】
ステップＳ５２において、タッチパネル２で検出された動作がタッチパネル２への接触を保ったままボタン領域内で指を移動させる動作でなかった場合、すなわち、指が仮想キーボード４上のボタン外を移動していた場合（ステップＳ５２，Ｎｏ）、主制御部１０は、特に処理を行わずに文字入力判定処理を終了させる。
【００８２】
なお、タッチパネル２への接触を保ったまま指を仮想キーボード４の外へ出す動作が検出された場合に、タッチパネル２への接触を終了させる動作が検出された場合と同様の処理手順を実行し、タッチパネル２への接触を保ったまま指を仮想キーボード４の中へ移動させる動作が検出された場合に、タッチパネル２への接触を開始する動作が検出された場合と同様の処理手順を実行することとしてもよい。このようにすることにより、利用者は、一回分の入力を終えた後に、指を上げ下げすることなくタッチパネル２への接触を保ったまま、迅速に次の入力に移ることが可能になる。
【００８３】
次に、図１４に示したフロー図を参照しながら、図９のステップＳ１６およびステップＳ１８で実行される文字列検索処理について説明する。主制御部１０は、ステップＳ７０として、入力文字バッファ１２から優先度が「１」である文字を取得し、取得した文字を組み合わせて第１候補文字列を生成する。
【００８４】
例えば、「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」という４つの文字列がこの順序で入力文字バッファ１２に格納され、「Ａ」と「Ｄ」の優先度が「１」で、「Ｂ」と「Ｃ」の優先度が「２」であったものとする。この場合、主制御部１０は、優先度が「１」の文字を格納順に連結して「ＡＤ」という第１候補文字列を生成する。
【００８５】
続いて、主制御部１０は、ステップＳ７１として、第１候補文字列にマッチする文字列を辞書データ９Ｅから検索する。
【００８６】
本実施例では、例えば第１候補文字列が「ＡＢＣ」の場合、「Ａ＊Ｂ＊Ｃ＊」というパターンにマッチする文字列が辞書データ９Ｅから検索されるものとする。ここで、「＊」は、任意の文字にマッチするワイルドカードである。すなわち、本実施例では、第１候補文字列と先頭の文字が一致し、第１候補文字列の２番目以降の各文字が、０個以上の文字を介在させて第１候補文字列と同じ順序で出現する文字列が、第１候補文字列とマッチすると文字列として検索される。
【００８７】
このようにマッチングさせることにより、指によって意図的に触れられたことを判別できないボタンがあった場合でも、入力された文字列を正しく識別することができる可能性を高めることができる。
【００８８】
検索結果として複数の文字列が得られた場合（ステップＳ７２，Ｙｅｓ）、主制御部１０は、検索結果を絞り込むために、ステップＳ７３として、入力文字バッファ１２から優先度が「２」である文字を取得し、取得した文字を第１候補文字列に補完して、１ないし複数の第２候補文字列を生成する。
【００８９】
例えば、上記と同様に、「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」という４つの文字列がこの順序で入力文字バッファ１２に格納され、「Ａ」と「Ｄ」の優先度が「１」で、「Ｂ」と「Ｃ」の優先度が「２」であったものとする。この場合、主制御部１０は、格納順序を守りつつ、第１候補文字列である「ＡＤ」に優先度が「２」の文字を少なくとも１つ補完して、「ＡＢＤ」、「ＡＣＤ」、「ＡＣＤＢ」という３つの第２候補文字列を生成する。
【００９０】
続いて、主制御部１０は、ステップＳ７４として、第２候補文字列のいずれかにマッチする文字列を辞書データ９Ｅから検索する。マッチングの方式は、第１候補文字列の場合と同様である。
【００９１】
そして、ステップＳ７４において、いずれかの文字列が検索された場合（ステップＳ７５，Ｙｅｓ）、主制御部１０は、ステップＳ７６として、検索された文字列を検索結果として文字列検索処理を終了させる。一方、ステップＳ７４において、いずれの文字列も検索されなかった場合（ステップＳ７５，Ｎｏ）、主制御部１０は、ステップＳ７７として、ステップＳ７１において第１候補文字列とマッチした文字列を検索結果として文字列検索処理を終了させる。
【００９２】
ステップＳ７１において検索結果として１つの文字列のみが得られた場合（ステップＳ７２，Ｎｏ、かつ、ステップＳ７８，Ｙｅｓ）、主制御部１０は、ステップＳ７６として、検索された文字列を検索結果として文字列検索処理を終了させる。ステップＳ７１において検索結果として１つの文字列も得られなかった場合（ステップＳ７８，Ｎｏ）、主制御部１０は、ステップＳ７９として、第１候補文字列、すなわち、優先度が「１」の文字を格納順に連結した文字列を検索結果として文字列検索処理を終了させる。
【００９３】
上述してきたように、携帯電話端末１は、指をタッチパネル２から離さずに仮想キーボード上を移動させて文字を入力することを可能にするため、高速な文字入力を実現することができる。
【００９４】
なお、携帯電話端末１の構成は、本発明の要旨を逸脱しない範囲で任意に変更することができる。例えば、本実施例では、指をタッチパネル２から離れずに移動した軌跡上の各ボタンに対応する文字に優先度として「１」または「２」を対応付けることとしたが、文字に対応付ける優先度をさらに細分化してもよい。
【００９５】
例えば、意図的に触れられたと判定されたボタンに対応する文字には優先度として「１」を対応付け、指が単に通過したに過ぎないと判定されたボタンに対応する文字については優先度として「２」〜「５」のいずれかの値を対応付けることとしてもよい。優先度を細分化する場合、図１３に示した文字入力判定処理では、図１５の例のように一時バッファ１３に格納される各文字に優先度が対応付けられる。
【００９６】
この場合、例えば、指が単に通過したに過ぎないと判定されたボタンに対応する文字について、指がボタンに進入したときの移動方向と指がボタンから出たときの移動方向の角度差が大きいほど高い優先度を対応付けることとしてもよい。角度差が大きいほど、意図的に触れられたボタンである可能性が高いためである。
【００９７】
また、指が単に通過したに過ぎないと判定されたボタンに対応する文字について、指が通過した軌跡がボタンの中心に近いほど高い優先度を対応付けることとしてもよい。通過した軌跡がボタンの中心に近いほど、意図的に触れられたボタンである可能性が高いためである。
【００９８】
そして、このように優先度を細分化した場合、文字列検索処理においては、優先度の高い文字ほど第２候補文字列の作成時に優先的に使用される。具体的には、優先度が「１」の文字を組み合わせた第１候補文字列に複数の文字列がマッチした場合、まず、優先度が「２」の文字を第１候補文字列に補完して検索結果の絞込みが試みられる。そして、優先度が「２」の文字を補完しても複数の文字列がマッチした場合、優先度が「３」の文字を第１候補文字列にさらに補完して検索結果の絞込みが試みられる。
【００９９】
以下同様に、検索結果が１つに絞り込まれるまで、優先度が高い順に補完に文字が利用される。このように、優先度を細分化することにより、意図的に触れられた可能性が高い順に文字を組み合わせて検証対象の文字列を生成することができるため、入力された文字列の識別精度を向上させることができる。
【０１００】
また、図９を参照しながら説明した文字入力処理では、主制御部１０がタッチパネル２から新たに検出結果を取得するたびに検索された文字列を入力文字列候補表示領域１４に表示することとしているが、一回分の文字入力が完了するまではこのような表示は行わずに、一回分の文字入力が完了した後に文字列検索処理で複数の文字列が検索された場合にのみ検索された文字列を入力文字列候補表示領域１４に表示することとしてもよい。
【０１０１】
また、図１４を参照しながら説明した文字列検索処理における辞書データとのマッチング処理は、完全一致や前方一致等の他のマッチング方式を用いることとしてもよい。また、入力予測技術を用いて、利用者が入力しようとしている文字列を予測し、予測された文字列を検索結果として扱うこととしてもよい。入力予測技術とは、文字列の結びつきの強さや使用頻度等に基づいて、既に入力された文字列と入力途中の文字列から、利用者が入力しようとしている文字列を予測する技術である。
【０１０２】
また、上記の実施例では、指がタッチパネル２に接触したまま移動した軌跡上に表示されているボタンに対応する文字のうち、特定の動作が検出された位置に表示されているボタンに対応する文字を優先して入力された文字列を識別することとしているが、本発明これに限定されるものではなく、指がタッチパネル２に接触したまま移動した軌跡上またはその近隣に表示されているボタンに対応する文字を含む文字列を入力された文字列として受け付けるものであればよい。
【０１０３】
また、上記の実施例では、特定の動作として、ボタン領域内でタッチパネル２に接触する動作や、ボタン領域内でタッチパネル２から指を離す動作等について説明したが、これらの動作は特定の動作の例であり、他の動作を特定の動作として扱ってもよい。
【産業上の利用可能性】
【０１０４】
以上のように、本発明に係る文字入力装置、文字入力方法および文字入力プログラムは、文字の入力に有効であり、タッチパネルを用いて文字を高速に入力することが必要な場合に特に適している。
【符号の説明】
【０１０５】
１  携帯電話端末
２  タッチパネル
２Ａ  タッチセンサ
２Ｂ  表示部
３  入力部
３Ａ、３Ｂ、３Ｃ  ボタン
４  仮想キーボード
５  電源部
６  通信部
７  スピーカ
８  マイク
９  記憶部
９Ａ  メールプログラム
９Ｂ  ブラウザプログラム
９Ｃ  文字入力プログラム
９Ｄ  仮想キーボードデータ
９Ｅ  辞書データ
１０  主制御部
１１  ＲＡＭ
１２  入力文字バッファ
１３  一時バッファ
１４  入力文字列候補表示領域
【図１】
0005615579.tif 000002
【図２】
0005615579.tif 000003
【図３】
0005615579.tif 000004
【図４】
0005615579.tif 000005
【図５】
0005615579.tif 000006
【図６】
0005615579.tif 000007
【図７】
0005615579.tif 000008
【図８】
0005615579.tif 000009
【図９】
0005615579.tif 000010
【図１０】
0005615579.tif 000011
【図１１】
0005615579.tif 000012
【図１２】
0005615579.tif 000013
【図１３】
0005615579.tif 000014
【図１４】
0005615579.tif 000015
【図１５】
0005615579.tif 000016