(57)【要約】【課題】  特に仮想キーボードに関して、ユーザのキーストローク入力における不正確さを、単語レベルのあいまいさ解決処理を使用して自動的に訂正する、改良されたテキスト入力システムを提供すること。【解決手段】  簡略化されたキーボードまたは仮想キーボード上でのユーザによるキーストローク入力における不正確さを、単語レベルの分析を使用して自動的に訂正する、改良されたテキスト入力システムが開示される。指定されている自動訂正領域内で検出される入力シーケンスそれぞれの1つ以上の代替のテキスト解釈を確定する方法およびシステムが定義されている。キーストロークに対する実際の対話位置は、選択のために提案あるいは提示される単語解釈の実際の文字に関連付けられる特定のキーボードキー領域の境界の外側であってもよく、一般には、各対話位置から、ユーザが意図した対応する各文字までの距離は、その言語あるいは特定の文脈における、意図された単語の予測される頻度が大きいほど、大きくてもよい。同様に、仮想キーボードシステムにおいては、作動されるキーは、単語解釈の文字に実際に関連付けられているキーと異なっていてもよい。そのようなシーケンスのそれぞれは完全な単語に対応し、ユーザは、生成された解釈の中から意図した単語を容易に選択することができる。さらに、システムが、入力シーケンスと同じ長さの有望な単語解釈候補を十分な数だけ識別できない場合、先頭から1文字以上の文字が入力シーケンスの有望な解釈に対応している候補が識別される。【選択図】
2007538299.tif 000002
【特許請求の範囲】
【請求項１】
複数のアルファベット文字を有する自動訂正領域を含んでいる仮想キーボードを有するユーザ入力デバイスであって、前記複数の文字のうちの1つまたは複数の文字が、前記自動訂正領域における既知の座標に対応しており、ユーザが前記自動訂正領域において前記ユーザ入力デバイスと対話するときに、ユーザ対話に関連付けられる位置が確定され、かつ、前記確定された対話位置が、対話位置の現在の入力シーケンスに追加される、前記ユーザ入力デバイスと、
複数のオブジェクトを含んでいるメモリであって、1つまたは複数のオブジェクトが、単語または単語の一部を形成する、1つまたは複数の文字の文字列を有する、前記メモリと、
出力デバイスと、
前記ユーザ入力デバイスと、前記メモリと、前記出力デバイスとに結合されているプロセッサであって、当該プロセッサが、
前記対話の入力シーケンスにおける確定された対話位置に対して、前記対話位置と、前記自動訂正領域における1つまたは複数の文字に対応する前記既知の座標位置との間の一連の距離値を計算する距離値計算コンポーネントと、
生成された入力シーケンスに対して、メモリ内の1つまたは複数の候補オブジェクトを識別し、前記1つまたは複数の識別された候補オブジェクトについて、前記計算された距離に基づいて合致基準を計算することによって、前記識別された候補オブジェクトを評価し、かつ、前記評価された候補オブジェクトを、前記計算された合致基準値に基づいて順位付けする、単語評価コンポーネントと、
1つまたは複数の候補オブジェクトを、それらの評価された順位に従って識別し、前記識別されたオブジェクトを前記ユーザに提示し、かつ、前記提示されたオブジェクトのうち、前記出力デバイスに出力する1つを前記ユーザが選択できるようにする、選択コンポーネントと、
を有する、前記プロセッサと、
を有する、テキスト入力システム。
【請求項２】
前記複数のメモリ内オブジェクトの1つまたは複数が、オブジェクトの1つまたは複数の定義済みグループにさらに関連付けられており、かつ、
前記単語評価コンポーネントが、生成された入力シーケンスについて、前記メモリ内オブジェクトの1つまたは複数の候補グループを識別することによって、合致基準が計算されるオブジェクトの数を制限し、かつ、オブジェクトの前記1つまたは複数の識別された候補グループに関連付けられている1つまたは複数のオブジェクトについて、前記計算された距離値に基づいて合致基準を計算し、かつ、前記評価された候補オブジェクトを、前記計算された合致基準値に基づいて順位付けする、
請求項１に記載のシステム。
【請求項３】
前記アルファベット文字が、前記自動訂正領域においてほぼ標準のQWERTYレイアウトに配列されている、請求項１に記載のシステム。
【請求項４】
当該自動訂正領域が、1つまたは複数の句読点文字および／または発音区別記号に関連付けられている1つまたは複数の既知の位置を含んでおり、当該メモリが、当該自動訂正領域内の位置に関連付けられている前記1つまたは複数の句読点文字および／または発音区別記号を含んでいる1つまたは複数のメモリ内オブジェクトを含んでいる、請求項１に記載のシステム。
【請求項５】
メモリ内オブジェクトが、1つまたは複数のモジュールにさらに関連付けられており、各モジュールが、1つまたは複数の共通の特性を持つ一連のオブジェクトを有するかまたは生成する、請求項１に記載のシステム。
【請求項６】
前記単語評価コンポーネントが、前記入力シーケンスにおける各対話位置から、前記候補オブジェクトの対応するポジションにおける文字に割り当てられている位置までの計算された距離値を合計することによって、各候補オブジェクトの合致基準を計算する、請求項１に記載のシステム。
【請求項７】
前記オブジェクトに関連付けられている使用頻度に従って重み関数を適用するステップ、
をさらに有する、請求項１に記載のシステム。
【請求項８】
前記自動訂正領域における1つまたは複数の位置が、水平座標および垂直座標によって定義されており、かつ、対話位置と、文字に対応する既知の座標位置との間の距離値が、水平成分および垂直成分を有し、当該水平成分および垂直成分のうちの少なくとも一方が、前記文字から前記対話位置までの距離を計算するときに、重み係数によって調整される、請求項６に記載のシステム。
【請求項９】
メモリ内の候補オブジェクトに関連付けられている前記使用頻度が、他のメモリ内オブジェクトに対する前記オブジェクトの順位を有する、請求項7に記載のシステム。
【請求項１０】
前記単語評価コンポーネントが、前記候補オブジェクトに関連付けられている前記使用頻度に従って重み関数を適用する前に、前記距離値の合計に増分値を加える、請求項６に記載のシステム。
【請求項１１】
メモリ内オブジェクトが、同じ長さのオブジェクトを有するグループに前記オブジェクトが分類されるように格納されている、請求項２に記載のシステム。
【請求項１２】
前記単語評価コンポーネントが、前記入力シーケンスにおける入力の数と同じ長さのオブジェクトの候補グループを最初に識別することによって、合致基準が計算されるオブジェクトの数を制限する、請求項１１に記載のシステム。
【請求項１３】
前記入力シーケンスにおける対話位置と、前記自動訂正領域内の、文字に対応する既知の座標位置との間の計算された距離値のうち、距離しきい値を超えている値それぞれについて、メモリ内オブジェクトのうち、当該入力シーケンスにおける当該対話位置の前記ポジションに対応する、当該オブジェクトの文字のシーケンスにおけるポジション、に当該文字が現れている、1つまたは複数のメモリ内オブジェクトについて、当該オブジェクトが、選択のためのユーザへの提示から除外されるオブジェクトとして、前記単語評価コンポーネントによって順位付けされる、請求項６に記載のシステム。
【請求項１４】
前記メモリ内オブジェクトの1つまたは複数の前記識別された候補グループは、選択のためのユーザへの提示から除外されているオブジェクトを有し、オブジェクトの当該1つまたは複数の識別された候補グループにおける各オブジェクトの距離値の計算された合計に含まれている、前記計算された距離値の少なくとも1つが、距離しきい値を超えている、請求項２に記載のシステム。
【請求項１５】
前記自動訂正領域における既知の位置に対応する文字に対して、1つまたは複数の当該既知の位置のまわりに領域が事前定義されており、当該定義済み領域内にある入力対話位置と、当該定義済み領域内の前記既知の文字位置との間の距離が、ゼロとして計算される、請求項１に記載のシステム。
【請求項１６】
前記自動訂正領域における既知の座標を有する少なくとも1つの位置が、複数の文字に対応しており、当該複数の文字のうちの1つまたは複数が、さまざまな発音区別記号を含んでおり、前記複数の文字が、1つの基本文字の異形を有し、かつ、メモリ内オブジェクトが、それらの正しいアクセント記号付き文字と一緒に格納されている、請求項１に記載のシステム。
【請求項１７】
前記選択コンポーネントが、ユーザが選択するための前記識別された1つまたは複数の候補オブジェクトを候補オブジェクトリストに提示する、請求項１に記載のシステム。
【請求項１８】
前記選択コンポーネントが、最も高く順位付けされる候補オブジェクトを識別し、前記識別されたオブジェクトを、前記候補オブジェクトリストの最初のポジションに提示する、請求項１7に記載のシステム。
【請求項１９】
前記自動訂正領域の外側の対話に関連付けられている文字をユーザが選択すると、確定されたオブジェクトが受け入れられ、当該文字が出力される、請求項１に記載のシステム。
【請求項２０】
出力させるオブジェクトをユーザが選択すると、前記自動訂正領域内の次の対話によって新しい入力シーケンスが開始されるように、現在の入力シーケンスが終了する、請求項１に記載のシステム。
【請求項２１】
候補の選択が、代替の入力モードによって行われる、請求項１に記載のシステム。
【請求項２２】
前記現在の入力シーケンスのユーザ入力が、異なるモードの組合せによって行われる、請求項１に記載のシステム。
【請求項２３】
ユーザ入力エラーの訂正において、代替の入力モードが使用される、請求項１に記載のシステム。
【請求項２４】
前記選択コンポーネントが、候補オブジェクトを選択するために使用されている特殊な選択方式を検出し、かつ、当該特殊な方式によってオブジェクトが選択されたことを検出した時点で、前記システムが、実際の対話位置の現在の入力シーケンスを、前記選択されたオブジェクトを有する文字の座標位置に対応する対話位置の入力シーケンスに置き換え、かつ、前記自動訂正領域における次の対話が、前記現在の入力シーケンスに付加される、請求項１に記載のシステム。
【請求項２５】
当該特殊な選択方式が、当該選択されたオブジェクトが含まれている候補以外のすべての候補を除外する、請求項２４に記載のシステム。
【請求項２６】
予測された／受け入れられた句または文における単語の選択および／または編集が、特殊な選択方式によって行われる、請求項１に記載のシステム。
【請求項２７】
前記単語評価コンポーネントが、対話位置の入力シーケンスにおける確定された対話位置のそれぞれについて、文字に対応する最も近い既知の位置を確定し、かつ、対話位置の前記入力シーケンスに対応する順序での、当該確定された対応する文字から成る、タイプ入力したままのオブジェクトを構築する、請求項１に記載のシステム。
【請求項２８】
タイプ入力したままのオブジェクトの文字の追跡の視覚的なフィードバックを提供する手段、
をさらに有する、請求項２７に記載のシステム。
【請求項２９】
精度を高めるための比例型スケーリングを提供する手段、
をさらに有する、請求項２８に記載のシステム。
【請求項３０】
前記選択コンポーネントが、最も高く順位付けされる候補オブジェクトを識別し、前記識別されたオブジェクトを前記出力デバイスに提示する、請求項１に記載のシステム。
【請求項３１】
前記テキスト入力システムが、オブジェクト選択機能に関連付けられている領域を含んでおり、当該領域との対話によって、前記出力デバイス上に提示されている前記オブジェクトが、前記識別された1つまたは複数の候補オブジェクトのうち次に高く順位付けされているオブジェクトに置き換えられる、請求項３０に記載のシステム。
【請求項３２】
前記テキスト入力システムが、削除機能に関連付けられている削除キー領域を有し、現在の入力シーケンスが少なくとも1つの対話を含んでおりかつ当該削除キー領域が選択されたときに、対話の前記現在の入力シーケンスから最後の入力対話が削除される、請求項１に記載のシステム。
【請求項３３】
前記テキスト入力システムが、単語編集機能に関連付けられている領域を含んでおり、現在の入力シーケンスが存在せずかつ当該領域が対話されたとき、
前記出力デバイス上の前記テキスト挿入ポイントが、以前に出力された単語の中に含まれているときには、前記システムが、当該単語の文字に関連付けられている座標位置に対応する対話位置のシーケンスを有する新しい現在の入力シーケンスを確立し、かつ、
前記出力デバイス上の前記テキスト表示領域におけるテキスト挿入ポイントが、以前に出力された2つの単語の間に位置しているときには、前記システムが、前記テキスト挿入ポイントに隣接している前記単語の文字に関連付けられている座標位置に対応する対話位置のシーケンスを有する新しい現在の入力シーケンスを確立し、
前記テキスト入力システムが、当該新しい現在の入力シーケンスを処理し、新しい候補オブジェクトの対応する順位を確定し、かつ、
前記新しい候補オブジェクトのうちの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つまたは複数の候補オブジェクトを候補オブジェクトリストに提示する、請求項４６に記載のシステム。
【請求項５５】
前記選択コンポーネントが、最も高く順位付けされる候補オブジェクトを識別し、前記識別されたオブジェクトを、前記候補オブジェクトリストのうち前記自動訂正領域に最も近いポジションに提示する、請求項５４に記載のシステム。
【請求項５６】
文字に関連付けられており、かつ前記自動訂正領域内に含まれない対話位置、の作動によって、前記最も高く順位付けされると判断された候補オブジェクトが受け入れられ、前記選択された文字が出力される、請求項４６に記載のシステム。
【請求項５７】
出力領域へのオブジェクトをユーザが選択することによって、現在の入力シーケンスが終了し、前記自動訂正領域内の次のキーの作動によって、新しい入力シーケンスが開始される、請求項４６に記載のシステム。
【請求項５８】
当該仮想キーボードが、
レーザー投影キーボード、筋肉検出キーボード、ファブリックキーボード、ジェスチャー検出デバイス、目の動きを追跡するデバイス、脳波を検出するデバイス、のいずれかを有する、請求項４６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力デバイスと対話するときにおける誤りあるいは不正確さに起因する「ぞんざいな」テキスト入力を自動訂正するシステムに関する。より具体的には、本発明は、仮想キーボードあるいはジェスチャーベースのキーボードなどに実施されているものなど、単語レベルの解析を使用して不正確さ（すなわちぞんざいなテキスト入力）を解決する、キーボード用の自動的な訂正機能を提供する。
【背景技術】
【０００２】
長年の間に、携帯コンピュータはますます小型化されている。より小さな携帯コンピュータを製造しようとするときに大きさを制限する主たる構成要素は、キーボードである。標準のタイプライタサイズのキーを使用する場合、その携帯コンピュータは、必然的に少なくともキーボードより大きくなる。携帯コンピュータでは小型キーボードが使用されているが、小型キーボードのキーは、ユーザが楽に、あるいは速く、かつ十分な精度で操作するには小さすぎることが判明している。
【０００３】
携帯コンピュータに標準サイズのキーボードを組み込むことは、コンピュータの本来の携帯的な使用も妨げる。ほとんどの携帯コンピュータは、ユーザが両手でタイプ入力するためには平たい作業面に置かないと動作することができない。ユーザは、立った状態あるいは移動しながら携帯コンピュータを容易に使用することはできない。パーソナルデジタルアシスタンツ（PDA）と称されている小型携帯コンピュータの最新世代においては、メーカーは、PDAに手書き認識ソフトウェアを組み込むことにより、この問題の取り組みを試みてきた。ユーザは、タッチパネルまたはディスプレイスクリーン上で書くことによって、テキストを直接入力できる。次いで、手書きのテキストが認識ソフトウェアによってデジタルデータに変換される。しかしながら、ペンで活字体あるいは筆記体を書くことは一般にタイプ入力より遅いうえ、現在までの手書き認識ソフトウェアの精度および速度は、満足なものではない。さらに悪いことに、テキスト入力を必要とする今日の携帯型計算デバイスは、ますます小型化されている。双方向(two-way)ページング、携帯電話、およびその他の携帯無線技術の近年の進歩により、小さく携帯型の双方向メッセージングシステムの需要、特に、電子メール（e-mail）を送受信できるシステムの需要が生まれている。
【０００４】
従って、コンピュータにテキストを入力するためのずっと小さなキーボードを開発することは有利であろう。キーボードのサイズが小さくなると、ユーザは対象の文字を選択することがより困難になる。一般的に、このような携帯デバイスに使用されているキーボードは2種類ある。1つは、指あるいは親指で押し下げることにより作動する一連のメカニカルキーから成る、よく知られたメカニカルキーボードである。しかしながら、メカニカルキーボードは、タイプライタ、デスクトップコンピュータ、さらには「ノート型」コンピュータの標準サイズのキーボードより大幅に小さい傾向にある。キーボードの物理的なサイズが小さい結果として、各キーがより小さく、隣のキーにより接近している。これにより、ユーザが意図しないキーを押し下げる可能性が増し、また、ユーザが速くタイプ入力しようとするほどキーストローク誤りの可能性が増す傾向にある。
【０００５】
一般に使用されているもう1つのタイプのキーボードは、何らかのタイプのキーボードオーバーレイが印刷されているタッチパネル、あるいはキーボードオーバーレイを表示できるタッチディスプレイスクリーンから成る。ユーザは、キーボードの大きさおよび特性に応じて指またはスタイラスを使用して、作動させようとするキーに関連付けられている領域において、パネルまたはディスプレイ画面と対話することができる。多くの携帯デバイスでは、サイズが小さくなったため、キーボードと対話して目的のキーそれぞれを作動させるときに十分な精度が得られるように、しばしばスタイラスが使用される。この場合も、このようなキーボードの外形サイズが小さいために、各キーに関連付けられている領域が小さく、平均的なユーザが十分な精度で高速にタイプ入力することはきわめて困難である。
【０００６】
メカニカルキーボードの過去の開発の一領域においては、通常のキーボードで使用されているキーよりずっと小さなキーの使用が考慮された。より小さなキーを使用する場合、ユーザは、各キー押しをコントロールするのに大きな注意を払わなければならない。1つの方法（特許文献１）では、主文字（例：アルファベット）を定義するために最大4つの小型キーを協同で使用し、主文字の行の間に副（例：数字）文字の行を入れ子にするシステムが提案されている。副文字の選択は、周囲の主文字のそれぞれからの小型キーを押し下げるステップを伴う。この方式で小さなキーをグループ化することにより、4つの隣接する小さなキーから成るより大きな明確な仮想キーが生成され、その仮想キーは指で押し下げるのに十分大きい。しかしながら、指は、協同で押し下げる4つの隣接するキーの間の境界の十字線上において相当な精度でキーと対話しなければならない。このため、十分な精度で高速でタイプ入力することは依然として困難である。
【０００７】
タッチスクリーンおよびメカニカルキーボードの両方における過去の開発の別の一領域では、ずっと少ない数の標準サイズキーを使用することが考慮された。キーの数が少ない場合、個々のキー押しに複数の文字を関連付けなければならず、従って、個々のキーの作動がどの文字を意図しているのかが明確ではない。プッシュホン電話のキーパッドレイアウトによって提案されているように、簡略型キーボードの多くは3×4のキー配列を使用しており、各キーには3文字あるいは4文字が関連付けられている（特許文献２）。このようなキーボードにおけるキーストロークシーケンスのあいまいさを解決するために、いくつかの方法が提案されている。この方法は、キーの数が限られたキーボードの場合に利点があるが、すべてのキーを備えた縮小型キーボードには適用できない。
【０００８】
タッチスクリーンキーボードにおける別の方法として、ある文字の表示位置の中心からはずれたキーストロークに対してどの文字を生成すべきかを、直前の数個の文字を分析して確定する方法が考慮された（特許文献３）。キーボードが小さなタッチスクリーン上に表示されているときには、文字の中心からはずれたキーストロークが検出される。ソフトウェアは、タイプ入力された2文字ないし3文字の可能性の高いシーケンスの可能なテキスト文字列を、以前にタイプ入力されたテキストの履歴、あるいは文脈内での頻度によって順位付けされたテキスト文字列の辞書など、既知の組合せと比較する。システムによって生成された文字がユーザの意図した文字でない場合、ユーザは、次の文字を選択を続ける前に文字を訂正しなければならず、なぜなら、生成された文字が、次のキーストロークに対する可能性を確定するのに使用されるためである。
【０００９】
最近では、ユーザとコンピュータ、PDA、ビデオゲーム、携帯電話、その他との新しい対話方式を提供するさまざまな入力デバイスが登場している。
【００１０】
例えば、Virtual Keyboard社（http://www.vkb.co.il/を参照）およびCanesta社（http://www.canesta.com/を参照）などの会社によって提供されているレーザー投影キーボードは、スマートフォン、携帯電話、PDA、あるいはその他のモバイルデバイスまたはワイヤレスデバイスに完全に統合することのできる投影キーボードである。レーザー投影キーボードは、小さなレーザーパターン投影器を使用して、標準サイズのキーボードのイメージを、ユーザとデバイスとの間の都合のよい平らな面（テーブルの表面、ブリーフケースの側面など）に投影する。ユーザは、このイメージ上でタイプ入力することができ、ユーザの指の動きは、関連付けられている電子認識技術によって、通常の連続的なキーストロークデータ（ワイヤレスデバイスあるいはモバイルデバイスによって容易に使用される）に変換される。
【００１１】
Senseboard(登録商標)仮想キーボード（例：http://www.senseboard.com/を参照）などの筋肉検出キーボード（muscle-sensing keyboard）も公知であり、これは、一般には、ユーザの手のひらに取り付けられるパッドを備えた一対のハンドモジュールから成る。筋肉検出キーボードでは、ユーザは、標準キーボードの物理的な制約なしにタイプ入力することができる。この種類の仮想キーボードは、一般に、センサー技術および人工知能（パターン認識など）を使用して、ユーザがタイプ入力する文字を認識する。キーボードは、指の動きを検出し、それらを、タッチタイピングを行う人が例えば標準QWERTYキーボードを使用するときの状態に関連付ける。次いで、このように生成された情報を、例えばモバイルデバイス（携帯情報端末（PDA）あるいはスマートフォンなど）に、例えばケーブルまたはBluetooth無線接続を使用して転送する。
【００１２】
さらに別の仮想キーボードは、ファブリックキーボード（例：http://www.electrotextiles.com/を参照）である。そのようなキーボードは、厚さ約1mmのファブリック構造の中に3本の検出軸（X、Y、Z）を提供する。この技術は、ファブリックセンサーと、電子システムおよびソフトウェアシステムとの組合せである。結果のファブリックインタフェースは、適用されるアプリケーションの要件に従ってデータを供給する。センサーの3つの動作モードとして、位置検出（X−Yポジショニング）、圧力測定（Z検出）、スイッチアレイが含まれている。従って、指の押圧など圧力点の位置を、インタフェースのX−Yポジショニング機能を使用して検出するキーボードを構築することができる。このシステムは、ファブリックが折れている、シワが生じている、あるいは伸びている場合にも機能する。1つのファブリックスイッチを使用して、スイッチマトリクス機能を提供することができる。例えばキーボード機能を実施する目的で、任意の構成におけるスイッチ領域の位置を識別する解釈ソフトウェアが使用される。
【００１３】
しかしながら、このような仮想キーボードをさまざまなデータ受信デバイスに統合するうえでの主たる障害は、タッチタイピングする物理的なキーが存在しないとき、正確にタイプ入力することが非常に困難なことである。この場合、ユーザは、タイプ入力するときに手と目の協調に完全に頼らざるを得ない。しかしながら、タッチタイピングを行う人のほとんどは、そのように手と目を協調させるのではなく、触覚のフィードバックを頼りにキーを見ずにタイプ入力するように教えられている。前述した仮想キーボードには、ユーザの手の位置を合わせるポイントがまったく存在せず、従って、ユーザがタイプ入力するときにガイドとなる触角のフィードバックが存在しない。
【００１４】
上記のシステムすべての根本的な問題は、ユーザがキーボードのキーを作動させようとした結果としての実際の作動が、ユーザの意図と必ずしも正確に一致しないことである。タッチスクリーンキーボードでは、ユーザの指またはスタイラスが間違った文字を打つ、あるいは、どの文字にも関連付けられていない、キーの間の境界領域を打つことがある。小型のメカニカルキーボードの場合には、あるキーを押すことによって間違ったキーが作動する、あるいは、2つ以上のキーが同時に作動する、あるいは、隣接しているキーがロールオーバー動作(roll-over motion)によって連続的に作動することがある。また、仮想キーボードでは、触角のフィードバックがないため、ユーザの指が望ましいキー位置からずれることがある。別の例としては、動作範囲が限られているユーザ、またはモーター制御に頼るユーザによって通常のキーボードが操作されるときに、スペースやキーを一定の調子で打つことができない場合、あるいは、（手足を失った人の場合などの）腕／足、あるいは手袋を着用した手または指、あるいは入力を行うために使用されるデバイス（スタイラスなど）が、目標のキーまたは文字スペースよりはるかに大きい場合が挙げられる。
【００１５】
特に仮想キーボードに関して、ユーザのキーストローク入力における不正確さを、単語レベルのあいまいさ解決処理(disambiguation)を使用して自動的に訂正する高度なテキスト入力システムを提供することは有利であろう。
【００１６】
【特許文献１】米国特許第5,612,690号
【特許文献２】米国特許第5,818,437号
【特許文献３】米国特許第5,748,512号
【発明の開示】
【課題を解決するための手段】
【００１７】
本発明は、特に仮想キーボードに関して、ユーザのキーストローク入力における不正確さを、単語レベルのあいまいさ解決処理を使用して自動的に訂正する、改良されたテキスト入力システムを提供する。
【００１８】
具体的には、本発明は、
複数のアルファベット文字を有する自動訂正領域を含んでいる仮想キーボードを有するユーザ入力デバイスであって、前記複数の文字のうちの1つまたは複数の文字が、前記自動訂正領域における既知の座標に対応しており、ユーザが前記自動訂正領域において前記ユーザ入力デバイスと対話するときに、ユーザ対話に関連付けられる位置が確定され、かつ、前記確定された対話位置が、対話位置の現在の入力シーケンスに追加される、前記ユーザ入力デバイスと、
複数のオブジェクトを含んでいるメモリであって、1つまたは複数のオブジェクトが、単語または単語の一部を形成する、1つまたは複数の文字の文字列を有する、前記メモリと、
出力デバイスと、
前記ユーザ入力デバイスと、前記メモリと、前記出力デバイスとに結合されているプロセッサであって、当該プロセッサが、
前記対話の入力シーケンスにおける確定された対話位置に対して、前記対話位置と、前記自動訂正領域における1つまたは複数の文字に対応する前記既知の座標位置との間の一連の距離値を計算する距離値計算コンポーネントと、
生成された入力シーケンスに対して、メモリ内の1つまたは複数の候補オブジェクトを識別し、前記1つまたは複数の識別された候補オブジェクトについて、前記計算された距離に基づいて合致基準を計算することによって、前記識別された候補オブジェクトを評価し、かつ、前記評価された候補オブジェクトを、前記計算された合致基準値に基づいて順位付けする、単語評価コンポーネントと、
1つまたは複数の候補オブジェクトを、それらの評価された順位に従って識別し、前記識別されたオブジェクトを前記ユーザに提示し、かつ、前記提示されたオブジェクトのうち、前記出力デバイスに出力する1つを前記ユーザが選択できるようにする、選択コンポーネントと、
を有する、前記プロセッサと、
を有する、テキスト入力システム、を提供する。
【００１９】
前記選択コンポーネントは、(c)前記提示されたオブジェクトのうち、前記出力デバイス上の前記テキスト表示領域に出力する1つを前記ユーザが選択したことを検出した時点で、対話位置の前記現在の入力シーケンスを空のシーケンスにリセットするステップ、をさらに有することが好ましい。
【００２０】
(a)前記複数のメモリ内オブジェクトのそれぞれが、オブジェクトの1つまたは複数の定義済みグループにさらに関連付けられており、かつ、(b)前記単語評価コンポーネントが、生成された入力シーケンスのそれぞれについて、前記メモリ内オブジェクトの1つまたは複数の候補グループを識別することによって、合致基準が計算されるオブジェクトの数を制限し、かつ、オブジェクトの前記1つまたは複数の識別された候補グループに関連付けられている1つまたは複数のオブジェクトについて、前記計算された距離値と、各候補オブジェクトに関連付けられている使用頻度とに基づいて合致基準を計算し、かつ、前記評価された候補オブジェクトを、前記計算された合致基準値に基づいて順位付けする、ことが好ましい。これにより、必要な計算が減少し、なぜなら、特定の対話の入力シーケンスに対し、1つまたは複数のオブジェクトグループが候補オブジェクトを含んでいないものとして識別され、そのように識別されたグループ中のオブジェクトについては合致基準を計算する必要がないためである。
【００２１】
前記アルファベット文字は、前記自動訂正領域においてほぼ標準のQWERTYレイアウトに配列されていることが好ましい。自動訂正領域の幅対高さの比は、およそ2：1である、あるいは、自動訂正領域の幅対高さの比は、2：1未満であることが最も好ましい。1つの実施例においては、前記自動訂正領域に配列されている1つまたは複数の文字は、判読できない、すなわち「意味不明な」(greeked)小さなフォントにおいて提示される。
【００２２】
前記自動訂正領域は、1つまたは複数の句読点文字に関連付けられている1つまたは複数の既知の位置を含んでおり、前記メモリが、前記自動訂正領域内の位置に関連付けられている前記1つまたは複数の句読点文字を含んでいる1つまたは複数のメモリ内オブジェクトを含んでいることが好ましい。前記メモリ内オブジェクトは、1つまたは複数のモジュールにさらに関連付けられており、各モジュールが、1つまたは複数の共通の特性を持つ一連のオブジェクトを有することが好ましい。1つの実施例においては、前記テキスト入力システムは、候補オブジェクトを識別するために前記単語評価コンポーネントによって評価されるモジュールをユーザが決定することのできるモジュールセレクタを有する。
【００２３】
別の実施例においては、前記複数のモジュールは、語幹モジュールと接尾辞モジュールとを有し、各語幹モジュールは、語尾変化しない語幹オブジェクトの論理的な編成を有し、かつ、各接尾辞モジュールが、語幹に付加して語尾変化する単語を形成することのできる接尾辞の論理的な編成を有し、各語幹モジュールが、1つまたは複数の接尾辞モジュールに関連付けられており、前記単語評価コンポーネントは、入力シーケンス内の最初の対話シーケンスに関して、与えられた語幹モジュール内の与えられた語幹の合致基準値として、所定のしきい値より高く順位付けされる値を計算すると、前記入力シーケンスの残りの対話を、前記関連付けられている接尾辞モジュールに関連して評価し、前記単語評価コンポーネントが、当該関連付けられている接尾辞モジュールの1つにおける与えられた接尾辞の合致基準値として、第二の所定のしきい値より高く順位付けされる値を計算すると、当該接尾辞が当該語幹に付加され、当該求められた語幹の合致基準値と、当該求められた接尾辞の合致基準値との関数である合致基準値に対応する完全な単語が形成される。
【００２４】
前記単語評価コンポーネントは、前記入力シーケンスにおける各対話位置から、前記候補オブジェクトの対応するポジションにおける文字に割り当てられている位置までの計算された距離値を合計し、かつ、前記オブジェクトに関連付けられている使用頻度に従って重み関数を適用することによって、各候補オブジェクトの合致基準を計算することが好ましい。さらに、前記自動訂正領域に関連付けられている前記アルファベット文字のそれぞれにデカルト座標が割り当てられており、かつ、前記距離値計算コンポーネントが、前記対話位置と、文字に対応する位置との間の距離を、標準デカルト座標距離の分析に従って計算する。さらに、前記自動訂正領域に関連付けられている前記アルファベット文字のそれぞれに、デカルト座標が割り当てられており、かつ、前記距離値計算コンポーネントが、前記対話位置と、文字に対応する位置との間の前記距離を、標準デカルト座標距離の二乗として計算する。前記距離値はテーブルに配置される。さらに、前記自動訂正領域における各位置は、水平座標および垂直座標によって定義されており、かつ、対話位置と、文字に対応する既知の座標位置との間の距離値は、水平成分および垂直成分を有し、前記垂直成分は、前記文字から前記対話位置までの距離を計算するときに、重み係数によって調整される。前記単語評価コンポーネントは、前記候補オブジェクトに関連付けられている前記使用頻度に従って重み関数を適用する前に、前記距離値の合計に増分値を加える。前記増分値は、前記自動訂正領域における、文字に対応する隣接する位置の間の平均距離の約2倍である一定値であることが最も好ましい。メモリ内の候補オブジェクトのそれぞれに関連付けられている前記使用頻度は、他のメモリ内オブジェクトに対する前記オブジェクトの順位を有し、より高い相対頻度に関連付けられているオブジェクトは、数値の小さい順位に対応する。候補オブジェクトの前記合計された距離値に前記単語評価コンポーネントによって適用される前記頻度重み関数は、前記距離値の合計と、前記オブジェクトの前記順位の2を底とする対数値との乗算を含んでいることが最も好ましい。
【００２５】
メモリ内オブジェクトは、同じ長さのオブジェクトを有するグループに前記オブジェクトが分類されるように格納されていることが好ましい。前記単語評価コンポーネントは、前記入力シーケンスにおける入力の数と同じ長さのオブジェクトの候補グループを最初に識別することによって、合致基準が計算されるオブジェクトの数を制限する。最も好ましくは、候補オブジェクトの個数しきい値より少ない数のオブジェクトが、しきい値より良好な合致基準評点を持つと評価される場合、当該単語評価コンポーネントは、漸次長さの長いオブジェクトの候補グループを識別し、前記しきい値の個数の候補オブジェクトが、前記しきい値より良好な合致基準評点を持つと評価されるまで、前記識別されたグループの中の前記オブジェクトの前記合致基準を計算する。さらに、前記単語評価コンポーネントは、前記入力シーケンスにおける各対話位置から、前記候補オブジェクトの対応するポジションにおける文字に割り当てられている位置までの計算された前記距離値を合計し、増分値を加え、かつ、前記オブジェクトに関連付けられている使用頻度に従って重み関数をこの合計に適用することによって、各候補オブジェクトの合致基準を計算し、かつ、前記距離値の前記合計に加えられる前記増分値は、前記候補オブジェクトにおける文字の数と前記現在の入力シーケンスにおける入力の数との差に基づく値である。
【００２６】
前記単語評価コンポーネントは、前記入力シーケンスにおける各対話位置から、前記候補オブジェクトの対応するポジションにおける文字に割り当てられている位置までの計算された距離値を合計し、かつ、前記オブジェクトに関連付けられている使用頻度に従って重み関数を適用することによって、各候補オブジェクトの合致基準を計算することが好ましい。最も好ましくは、メモリ内の候補オブジェクトのそれぞれに関連付けられている前記使用頻度は、当該オブジェクトが関連付けられている、メモリ内の1つまたは複数のサブグループ、の中の他のオブジェクトに対する前記オブジェクトの順位を有し、より高い相対頻度に関連付けられているオブジェクトが、数の小さい順位に対応する。さらに、前記入力シーケンスにおける対話位置と、前記自動訂正領域内の、文字に対応する既知の座標位置との間の計算された距離値のうち、距離しきい値を超えている値それぞれについて、メモリ内オブジェクトのうち、当該入力シーケンスにおける当該対話位置の前記ポジションに対応する、当該オブジェクトの文字のシーケンスにおけるポジション、に当該文字が現れている、メモリ内オブジェクトそれぞれについて、当該オブジェクトが、選択のためのユーザへの提示から除外されるオブジェクトとして、前記単語評価コンポーネントによって順位付けされる。前記メモリ内オブジェクトの1つまたは複数の前記識別された候補グループは、選択のためのユーザへの提示から除外されているオブジェクトを有し、オブジェクトの当該1つまたは複数の識別された候補グループにおける各オブジェクトの距離値の計算された合計に含まれている、前記計算された距離値の少なくとも1つは、距離しきい値を超えている。前記自動訂正領域は、2つ以上の定義済みのクラスタ領域に分けられており、当該クラスタ領域のそれぞれが、1つまたは複数の文字の既知の位置を含んでおり、かつ、メモリ内オブジェクトのそれぞれが、当該2つ以上の定義済みのクラスタ領域のうちのどのクラスタ領域が、当該オブジェクトの先頭から1つまたは複数の文字に対応する既知の位置を含んでいるかに従って、定義済みのグループに割り当てられる。1つの実施例においては、前記自動訂正領域は、3つの定義済みのクラスタ領域に分けられており、かつ、メモリ内オブジェクトのそれぞれが、前記3つの定義済みのクラスタ領域のうちどのクラスタ領域が、当該オブジェクトの最初の2文字のそれぞれに対応する既知の位置を含んでいるかに基づいて、9つの定義済みのグループのうちの1つに割り当てられる。
【００２７】
前記自動訂正領域における既知の位置に対応する文字のそれぞれに対して、1つまたは複数の当該既知の位置のまわりに領域が事前定義されており、当該定義済み領域内にある入力対話位置と、当該定義済み領域内の前記既知の文字位置との間の距離は、ゼロとして計算されることが好ましい。最も好ましくは、当該定義済み領域の相対的なサイズは、当該定義済み領域内の前記既知の位置に関連付けられている文字の相対出現頻度に対応する。文字の前記既知の位置のまわりの前記定義済み領域は、仮想キーボード上に表示されるキーに対応している。さらに、前記自動訂正領域における既知の座標を有する少なくとも1つの位置は、複数の文字に対応しており、当該複数の文字のうちの1つまたは複数が、さまざまな発音区別記号を含んでおり、前記複数の文字が、1つの基本文字の異形を有し、かつ、メモリ内オブジェクトが、それらの正しいアクセント記号付き文字と一緒に格納されている。
【００２８】
前記選択コンポーネントは、ユーザが選択するための前記識別された1つまたは複数の候補オブジェクトを、前記テキスト表示領域における候補オブジェクトリストに提示することが好ましい。最も好ましくは、前記選択コンポーネントは、最も高く順位付けされる候補オブジェクトを識別し、前記識別されたオブジェクトを、前記候補オブジェクトリストのうち前記自動訂正領域に最も近いポジションに提示する。さらに、前記自動訂正領域の外側の対話に関連付けられている文字をユーザが選択すると、前記最も高く順位付けされると判断された候補オブジェクトが受け入れられ、前記テキスト表示領域におけるテキスト挿入位置に出力された後、前記選択された文字が、前記テキスト表示領域における前記テキスト挿入位置に出力される。ユーザが前記テキスト表示領域における前記テキスト挿入ポイントに出力されるようにオブジェクトを選択すると、前記自動訂正領域内の次の対話によって新しい入力シーケンスが開始されるように、現在の入力シーケンスが終了する。さらに、前記選択コンポーネントは、候補オブジェクトを選択するために使用されている特殊な選択方式を検出し、かつ、当該特殊な方式によってオブジェクトが選択されたことを検出した時点で、前記システムは、実際の対話位置の現在の入力シーケンスを、前記選択されたオブジェクトを有する文字の座標位置に対応する対話位置の入力シーケンスに置き換え、かつ、前記自動訂正領域における次の対話が、前記現在の入力シーケンスに付加される。
【００２９】
前記単語評価コンポーネントは、対話位置の各入力シーケンスにおける確定された対話位置のそれぞれについて、文字に対応する最も近い既知の位置を確定し、かつ、対話位置の前記入力シーケンスに対応する順序での、当該確定された対応する文字から成る、タイプ入力したままのオブジェクトを構築することが好ましい。最も好ましくは、前記選択コンポーネントは、対話位置の各入力シーケンスに対して、当該タイプ入力したままのオブジェクトを選択肢としてユーザに提示する。さらに、ユーザが、当該タイプ入力したままのオブジェクトを前記出力デバイスの前記テキスト表示領域に出力するように選択し、かつ、当該タイプ入力したままのオブジェクトが前記メモリ内オブジェクトの1つとしてまだ含まれていないとき、当該タイプ入力したままのオブジェクトが、前記メモリに追加される。前記タイプ入力したままのオブジェクトを選択肢として前記ユーザに表示する前に、前記選択コンポーネントは、前記タイプ入力したままのオブジェクトを、それぞれが受け入れて表示できる代替オブジェクトに関連付けられている好ましくないオブジェクト、のデータベースと比較し、合致が見つかる場合、前記タイプ入力したままのオブジェクトを、前記関連付けられている受け入れ可能なオブジェクトに置き換えて前記ユーザに提示する。
【００３０】
前記選択コンポーネントは、最も高く順位付けされる候補オブジェクトを識別し、前記識別されたオブジェクトを、前記出力デバイス上の前記テキスト表示領域における前記テキスト挿入ポイントに提示することが好ましい。最も好ましくは、前記テキスト入力システムは、オブジェクト選択機能に関連付けられている選択キー領域を含んでおり、当該選択キー領域が対話されると、前記出力デバイス上の前記テキスト表示領域における前記テキスト挿入ポイントに提示されている前記オブジェクトが、前記識別された1つまたは複数の候補オブジェクトのうち次に高く順位付けされているオブジェクトに置き換えられる。
【００３１】
前記テキスト入力システムは、削除機能に関連付けられている削除キー領域を含んでおり、現在の入力シーケンスが少なくとも1つの対話を含んでおりかつ当該削除キー領域が選択されたときに、対話の前記現在の入力シーケンスから最後の入力対話が、前記現在の入力シーケンスが終了することなく削除されることが好ましい。別の好ましい実施例においては、前記テキスト入力システムは、単語編集機能に関連付けられている単語編集キー領域を含んでおり、現在の入力シーケンスが存在せずかつ当該単語編集キー領域が選択されたときに、
(i)前記出力デバイス上の前記テキスト表示領域における前記テキスト挿入ポイントが、以前に出力された単語の中に含まれているときには、前記システムは、当該単語の文字に関連付けられている座標位置に対応する対話位置のシーケンスから成る新しい現在の入力シーケンスを確立し、かつ、
(ii)前記出力デバイス上の前記テキスト表示領域における前記テキスト挿入ポイントが、以前に出力された2つの単語の間に位置しているときには、前記システムは、前記テキスト挿入ポイントに隣接している前記単語の文字に関連付けられている座標位置に対応する対話位置のシーケンスから成る新しい現在の入力シーケンスを確立し、かつ、
前記テキスト入力システムが、当該新しい現在の入力シーケンスを処理して新しい候補オブジェクトの対応する順位を確定し、かつ、前記新しい候補オブジェクトのうちの1つが選択されると、当該新しい現在の入力シーケンスを確立するために使用された前記以前に出力された単語が置き換えられる。
【００３２】
前記ユーザが、前記自動訂正領域において一連の対話を実行することによって入力シーケンスを入力するとき、前記プロセッサは、ユーザの対話によってたどられた経路に沿った2つ以上の一定の数の等間隔の対話点の索引化された一次セットとして、前記シーケンスにおける各対話を記録することによってと、前記2つ以上の可能な一次索引値のそれぞれに対して、記録された対話点の索引化された一次セットのそれぞれから1つ、同じ索引値を有する対話点のシーケンスを取ることにより、対話点の2つ以上の対応する二次セットを集めることによってと、出力されるようにユーザによって選択された各単語に関して、前記集められた、対話点の二次セットと、前記選択された単語の文字に対応する既知の位置との間の計算される距離が最小になる、前記集められた、対話点の二次セット、を識別する最小化一次索引値を確定することによって、ユーザ対話のそれぞれに関連付けられている位置を確定し、かつ、それによって、前記距離値計算コンポーネントが、ユーザ対話の次の入力シーケンスに対して、前記確定された最小化一次索引値に対応する、対話の当該次の入力シーケンスから集められる対話点位置の二次セットとして確定される対話位置のシーケンスに基づいて、距離値を計算する、ことが好ましい。最も好ましくは、前記距離値計算コンポーネントが、複数のユーザ入力シーケンスに対して、前記2つ以上の一次索引値に対応する前記2つ以上の集められた二次セットのそれぞれの距離計算の移動平均を計算し、それによって、前記距離値計算コンポーネントが、対話の次の入力シーケンスに対して、当該計算された移動平均に関連して確定された前記最小化一次索引値に対応する、対話の当該次の入力シーケンスから集められる対話点位置の二次セットとして確定される対話位置のシーケンスに基づいて、距離値を計算する。さらに、前記距離値計算コンポーネントは、一次索引値のそれぞれに対して、対応する記録された索引化されている対話点のそれぞれの座標位置に対する、選択された単語のそれぞれの各文字に対応する座標位置のオフセット、の水平成分および垂直成分の移動平均を計算し、前記単語評価コンポーネントのための距離計算を実行するときに、前記距離値計算コンポーネントが、記録された索引化されている対話点のそれぞれの水平座標および垂直座標を、前記対応する一次索引値に対して計算された平均の水平および垂直オフセットの関数である量だけ調整する。
【００３３】
入力対話位置のそれぞれに対して、前記距離値計算コンポーネントは、選択された単語それぞれの各文字に対応する座標位置から、対応する入力対話位置のそれぞれの座標までのオフセット、の水平成分および垂直成分の移動平均を計算し、前記距離値計算コンポーネントは、前記単語評価コンポーネントのための距離計算を実行するときに、入力された対話位置のそれぞれの水平座標および垂直座標を、前記計算された符号付き水平／垂直平均オフセットの関数である量だけ調整することが好ましい。これに代えて、前記プロセッサは、前記自動訂正領域内のユーザの対話動作のそれぞれについて、指またはスタイラスがタッチ表面から持ち上がる前に対話点が最初の対話位置から距離しきい値より小さい距離だけ移動したかを判断する、ストローク認識コンポーネント、をさらに有する。
【００３４】
本発明は、仮想キーボードのためのテキスト入力システムであって、
(a)持ち上がる前に対話点が最初の対話位置から距離しきい値より小さい距離だけ移動したときには、前記ストローク認識コンポーネントが、ユーザ対話がタップ(tap)対話であると判断し、前記ユーザ対話に関連付けられていると判断される位置が、前記距離値計算コンポーネント、前記単語評価コンポーネント、および前記選択コンポーネントによって処理される対話位置の前記現在の入力シーケンスに付加され、かつ、
(b)持ち上がる前に前記対話点が前記最初の対話位置から距離しきい値より大きいかまたは等しい距離だけ移動したときには、前記ストローク認識コンポーネントは、前記ユーザ対話が、既知のシステム機能に関連付けられている複数のストローク対話のうちの1つであると判断し、前記ストローク対話を、前記複数の定義済みタイプのストローク対話の1つとして分類する、
テキスト入力システム、をさらに提供する。
【００３５】
前記入力シーケンスにおける、個数しきい値の対話位置が、与えられた候補オブジェクトを含んでいる前記文字シーケンス内の対応する文字からの最大距離しきい値より離れているとき、そのオブジェクトは、もはや前記選択コンポーネントにとっての候補オブジェクトではないと識別されることが好ましい。これに代えて、前記プロセッサは、各メモリ内オブジェクトに関連付けられている使用頻度を、前記オブジェクトが前記出力デバイス上の前記テキスト表示領域に出力されるように前記ユーザによって選択された回数の関数として調整する頻度昇格コンポーネントをさらに有する。さらに、各メモリ内オブジェクトに関連付けられている前記使用頻度は、他のメモリ内オブジェクトに対する前記オブジェクトの順位を有し、より高い相対頻度に関連付けられているオブジェクトが、より数の小さい順位に対応し、かつ、出力されるようにオブジェクトがユーザによって選択されると、前記頻度昇格コンポーネントが、当該選択されたオブジェクトに関連付けられている前記順位を、その時点における当該オブジェクトの前記順位の関数である量だけ調整する。さらに、前記選択されたオブジェクトに関連付けられている前記順位を調整する前記量を確定するために前記頻度昇格コンポーネントによって使用される前記関数は、相対的に高い使用頻度に関連付けられている順位を持つオブジェクトに対して、当該量を減少させる。前記頻度昇格コンポーネントは、前記テキスト入力システムからアクセス可能な追加の情報ファイルを分析し、当該テキスト入力システムの当該メモリ内オブジェクトに含まれておらずかつ当該ファイルに含まれている新しいオブジェクトを識別し、かつ、当該新たに識別されたオブジェクトが、低い使用頻度が関連付けられているオブジェクトとして前記メモリ内オブジェクトに加えられる。さらに、前記メモリ内オブジェクトに加えられる新たに識別されたオブジェクトに関連付けられる前記使用頻度は、前記新たに識別されたオブジェクトが当該追加の情報ファイルの分析中に検出される回数の関数として、前記頻度昇格コンポーネントによって調整される。
【００３６】
前記プロセッサは、メモリ内オブジェクトのそれぞれに関連付けられている前記使用頻度を、同じ定義済みグループに関連付けられている他のオブジェクトに対して、前記出力デバイス上の前記テキスト表示領域に出力されるように前記オブジェクトがユーザによって選択された回数の関数として調整する頻度昇格コンポーネントを、さらに有することが好ましい。最も好ましくは、前記出力デバイス上の前記テキスト表示領域に出力されるようにオブジェクトが前記ユーザによって選択されると、前記頻度昇格コンポーネントは、前記選択されたオブジェクトに関連付けられている頻度値を相対的に大きな増分だけ増大させ、かつ、前記選択されたオブジェクトと同じグループに関連付けられている選択されないオブジェクトに関連付けられている頻度を、相対的に小さな減分だけ減少させる。これに代えて、1つまたは複数のオブジェクトの大文字使用に関する情報が、前記メモリ内オブジェクトと共に格納されており、前記選択コンポーネントは、識別されたオブジェクトのそれぞれを、前記格納されている大文字使用情報に従って好ましい大文字使用形式において表示する。別の実施例においては、1つまたは複数のメモリ内オブジェクトが、1つまたは複数の文字または記号のシーケンスを有するメモリ内二次オブジェクトに関連付けられており、かつ、前記選択コンポーネントが、当該オブジェクトのうち前記ユーザに提示する1つを、前記単語評価コンポーネントによって計算された前記合致基準に基づいて識別すると、前記選択コンポーネントは、前記関連付けられている二次オブジェクトを選択できるように提示する。
【００３７】
本発明は、
既知の座標における[定義済みのキーを表す]複数の対話位置を有する自動訂正領域を有する仮想キーボードを有するユーザ入力デバイスであって、当該位置が、1つまたは複数のアルファベット文字に対応しており、確定される位置のユーザ選択が、現在の入力シーケンスに付加されるキー作動イベントに対応する、前記ユーザ入力デバイスと、
単語または単語の一部を形成する1つまたは複数の文字の文字列をそれぞれが有する複数のオブジェクト、を含んでいるメモリと、
出力デバイスと、
前記ユーザ入力デバイスと、前記メモリと、前記出力デバイスとに結合されているプロセッサであって、当該プロセッサが、
生成されたキー作動イベント位置に対して、前記キー作動イベント位置と、前記自動訂正領域内の1つまたは複数のキーに対応する既知の座標位置との間の一連の距離値を計算する距離値計算コンポーネントと、
生成された入力シーケンスに対して、メモリ内の1つまたは複数の候補オブジェクトを識別し、かつ、1つまたは複数の識別された候補オブジェクトについて、前記計算された距離値と、前記オブジェクトに関連付けられている使用頻度とに基づいて合致基準を計算することにより、識別された各候補オブジェクトを評価し、かつ、前記評価された候補オブジェクトを、前記計算された合致基準値に基づいて順位付けする、単語評価コンポーネントと、
評価された順位に従って1つまたは複数の候補オブジェクトを識別し、前記識別されたオブジェクトをユーザに提示し、前記提示されたオブジェクトのうち、前記出力デバイスに出力する1つを前記ユーザが選択できるようにする、選択コンポーネントと、
を有するプロセッサと、
を有するテキスト入力システム、をさらに提供する。
【００３８】
(a)前記複数のメモリ内オブジェクトのそれぞれが、オブジェクトの1つまたは複数の定義済みグループにさらに関連付けられており、かつ、(b)前記単語評価コンポーネントが、生成された入力シーケンスのそれぞれについて、前記メモリ内オブジェクトの1つまたは複数の候補グループを識別することによって、合致基準が計算されるオブジェクトの数を制限し、かつ、オブジェクトの前記1つまたは複数の識別された候補グループのそれぞれに関連付けられている1つまたは複数のオブジェクトについて、前記計算された距離値と、各候補オブジェクトに関連付けられている使用頻度とに基づいて合致基準を計算し、かつ、前記評価された候補オブジェクトを、前記計算された合致基準値に基づいて順位付けすることが好ましい。さらに、前記アルファベット文字に関連付けられている前記キーは、自動訂正領域において標準のQWERTYレイアウトにほぼ従って配列されている。
【００３９】
前記自動訂正領域における複数の隣接しているキーの同時作動を有するキー作動イベントが検出されると、当該キー作動イベントに対応する位置は、前記同時に作動されたキーの位置の関数として確定され、当該確定された位置が、前記キー作動イベントの前記位置の現在の入力シーケンスに付加されることが好ましい。最も好ましくは、当該キー作動イベントの前記位置を確定するために使用される前記関数は、前記同時に作動されたキーの前記位置の中心に対応する位置の計算を含んでいる。さらに、当該キー作動イベントの前記位置を確定するために使用される前記関数は、前記同時に作動されたキーの位置の重み付けされた重心に対応する位置の計算を含んでおり、前記自動訂正領域における前記キーのそれぞれに関連付けられている重みは、前記キーに関連付けられている文字の相対出現頻度に対応し、当該相対頻度が、前記メモリ内オブジェクトにおける前記文字の出現頻度に関連して確定される。
【００４０】
所定の期間しきい値以内での、前記自動訂正領域における複数の隣接しているキーの作動を有するキー作動イベントであって、当該キー作動イベント中は、当該複数の隣接しているキーのうちの少なくとも1つが作動しており、かつ、当該キー作動イベント中の任意の瞬間において、当該複数のキーの任意のサブセットが同時に作動しており、当該同時に作動されたキーのサブセットが、隣接しているキーを有する、前記キー作動イベント、が検出されると、当該キー作動イベントに対応する位置が、当該キー作動イベント中に検出された前記複数の隣接しているキーすべての位置の関数として確定され、かつ、当該確定された位置が、前記キー作動イベントの前記位置の現在の入力シーケンスに付加されることが好ましい。最も好ましくは、当該キー作動イベントの前記位置を確定するために使用される前記関数は、前記同時に作動されたキーの位置の中心に対応する位置の計算を含んでいる。さらに、当該キー作動イベントの前記位置を確定するために使用される前記関数は、前記同時に作動されたキーの位置の重み付けされた重心に対応する位置の計算を含んでおり、前記自動訂正領域における前記キーのそれぞれに関連付けられている重みは、前記キーに関連付けられている文字の相対出現頻度に対応し、当該相対頻度は、前記メモリ内オブジェクトにおける前記文字の出現頻度に関連して確定される。
【００４１】
前記自動訂正領域は、1つまたは複数の句読点文字に関連付けられている1つまたは複数のキーを含んでおり、当該メモリは、当該自動訂正領域におけるキーに関連付けられている前記1つまたは複数の句読点文字を含んでいる1つまたは複数のメモリ内オブジェクトを含んでいることが好ましい。これに代えて、前記単語評価コンポーネントは、前記入力シーケンスにおける確定された位置から、前記候補オブジェクトの対応するポジションにおける文字に対応するキーの既知の位置までの距離値を合計し、かつ、前記オブジェクトに関連付けられている使用頻度に従って重み付け関数を適用することによって、候補オブジェクトそれぞれの合致基準を計算する。別の実施例においては、前記自動訂正領域における前記キーのうちの少なくとも1つが複数の文字に対応しており、当該複数の文字のうちの1つまたは複数が様々な発音区別記号を有し、前記複数の文字が、1つの基本文字の異形を有し、かつ、メモリ内オブジェクトが、それらの正しいアクセント記号付き文字と一緒に格納されている。
【００４２】
前記選択コンポーネントは、前記テキスト表示領域における候補オブジェクトリストに、ユーザが選択するための前記識別された1つまたは複数の候補オブジェクトを表示することが好ましい。最も好ましくは、前記選択コンポーネントは、最も高く順位付けされる候補オブジェクトを識別し、前記識別されたオブジェクトを、前記候補オブジェクトリストのうち前記自動訂正領域に最も近いポジションに提示する。さらに、文字に関連付けられているキーのうち、前記自動訂正領域内に含まれていないキーが作動されると、前記確定された最も高く順位付けされる候補オブジェクトが受け入れられ、前記テキスト表示領域における前記テキスト挿入ポイントに出力された後、前記選択された文字が前記テキスト表示領域における前記テキスト挿入ポイントに出力される。さらに、ユーザが前記テキスト表示領域における前記テキスト挿入ポイントに出力されるようにオブジェクトを選択すると、前記自動訂正領域内の次のキー作動イベントによって新しい入力シーケンスが開始されるように、前記現在の入力シーケンスが終了する。
【００４３】
本発明の現時点における好ましい実施例は、複数のアルファベット文字を有する自動訂正領域を含んでいる仮想キーボードを有するユーザ入力デバイスであって、前記複数の文字のそれぞれが、前記自動訂正領域における既知の座標を有する位置に対応しており、ユーザが前記自動訂正領域において前記ユーザ入力デバイスと対話するたびに、前記ユーザの対話に関連付けられている位置が確定され、かつ、前記確定された対話位置が、対話位置の現在の入力シーケンスに付加される、前記ユーザ入力デバイスと、複数のオブジェクトを含んでいるメモリであって、各オブジェクトが、単語あるいは単語の一部を形成する1つまたは複数の文字または記号の文字列であり、各オブジェクトに使用頻度がさらに関連付けられている、前記メモリと、出力デバイスと、前記ユーザ入力デバイスと、前記メモリと、前記出力デバイスとに結合されているプロセッサであって、当該プロセッサが、前記対話の入力シーケンスにおける確定された対話位置のそれぞれに対して、前記対話位置と、前記自動訂正領域における1つまたは複数の文字に対応する既知の座標との間の一連の距離値を計算する距離値計算コンポーネントと、生成された入力シーケンスのそれぞれに対して、メモリ内の1つまたは複数の候補オブジェクトを識別し、1つまたは複数の識別された候補オブジェクトのそれぞれについて、前記計算された距離値と、前記オブジェクトに関連付けられている使用頻度とに基づいて合致基準を計算することによって、前記識別された候補オブジェクトのそれぞれを評価し、かつ、前記評価された候補オブジェクトを、前記計算された合致基準値に基づいて順位付けする、単語評価コンポーネントと、1つまたは複数の候補オブジェクトをそれらの評価された順位付けに従って識別し、前記識別されたオブジェクトを前記ユーザに提示し、かつ、前記提示されたオブジェクトのうち、前記出力デバイスに出力する1つを前記ユーザが選択できるようにする、選択コンポーネントと、を有する、前記プロセッサと、を有する、テキスト入力システム、を提供する。
【００４４】
本発明は、前記複数のメモリ内オブジェクトのそれぞれが、オブジェクトの1つまたは複数の定義済みグループにさらに関連付けられており、かつ、前記単語評価コンポーネントが、生成された入力シーケンスのそれぞれについて、前記メモリ内オブジェクトの1つまたは複数の候補グループを識別することによって、合致基準が計算されるオブジェクトの数を制限し、かつ、オブジェクトの前記1つまたは複数の識別された候補グループに関連付けられている1つまたは複数のオブジェクトに対して、前記計算された距離値と、各候補オブジェクトに関連付けられている使用頻度とに基づいて合致基準を計算し、かつ、前記評価された候補オブジェクトを前記計算された合致基準値に基づいて順位付けする、システム、も提供する。
【００４５】
本発明は、前記アルファベット文字が、前記自動訂正領域においてほぼ標準のQWERTYレイアウトに配列されている、システム、も提供する。
【００４６】
そのようなシステムにおいては、前記自動訂正領域の幅対高さの比は、およそ2：1である、これに代えて、前記自動訂正領域の幅対高さの比は、2：1未満である。
【００４７】
さらなる実施例においては、前記自動訂正領域に配列されている前記1つまたは複数の文字は、小さく判読できないフォントにて提示されている、または小さな形状によって表されている。
【００４８】
本発明は、当該自動訂正領域が、1つまたは複数の句読点文字に関連付けられている1つまたは複数の既知の位置を含んでおり、当該メモリが、当該自動訂正領域における位置に関連付けられている前記1つまたは複数の句読点文字を含んでいる1つまたは複数のメモリ内オブジェクトを含んでいる、システム、も提供する。
【００４９】
本発明は、メモリ内オブジェクトが、1つまたは複数のモジュールにさらに関連付けられており、各モジュールが、1つまたは複数の共通の特性を持つ一連のオブジェクトを有する、システム、も提供する。
【００５０】
さらなる実施例においては、前記テキスト入力システムは、候補オブジェクトを識別するために前記単語評価コンポーネントによって評価されるモジュールをユーザが決定することのできるモジュールセレクタを有する。
【００５１】
さらなる実施例においては、前記複数のモジュールは、語幹モジュールと接尾辞モジュールとを有し、各語幹モジュールは、語尾変化しない語幹オブジェクトの論理的な編成を有し、かつ、各接尾辞モジュールが、語幹に付加して語尾変化する単語を形成することのできる接尾辞の論理的な編成を有し、各語幹モジュールが、1つまたは複数の接尾辞モジュールに関連付けられており、前記単語評価コンポーネントが、入力シーケンス内の最初の対話シーケンスに関して、与えられた語幹モジュール内の与えられた語幹の合致基準値として、所定のしきい値より高く順位付けされる値を計算すると、前記単語評価コンポーネントが、前記入力シーケンスの残りの対話を、前記関連付けられている接尾辞モジュールに関連して評価し、かつ、前記単語評価コンポーネントが、当該関連付けられている接尾辞モジュールの1つにおける与えられた接尾辞の合致基準値として、第二の所定のしきい値より高く順位付けされる値を計算すると、当該接尾辞が当該語幹に付加され、当該求められた語幹の合致基準値と、当該求められた接尾辞の合致基準値との関数である合致基準値に対応する完全な単語が形成される。
【００５２】
本発明は、前記単語評価コンポーネントが、前記入力シーケンスにおける各対話位置から、前記候補オブジェクトの対応するポジションにおける文字に割り当てられている位置までの計算された距離値を合計し、かつ、前記オブジェクトに関連付けられている使用頻度に従って重み関数を適用することによって、各候補オブジェクトの合致基準を計算する、システム、も提供する。
【００５３】
さらなる実施例においては、前記自動訂正領域に関連付けられている前記アルファベット文字のそれぞれにデカルト座標が割り当てられており、かつ、前記距離値計算コンポーネントが、前記対話位置と、文字に対応する位置との間の距離を、標準デカルト座標距離の分析に従って計算する。
【００５４】
さらなる実施例においては、前記自動訂正領域に関連付けられている前記アルファベット文字のそれぞれにデカルト座標が割り当てられており、かつ、前記距離値計算コンポーネントが、前記対話位置と、文字に対応する位置との間の前記距離を、標準デカルト座標距離の二乗として計算する。
【００５５】
さらなる実施例においては、前記距離値はテーブルに配置されている。
【００５６】
さらなる実施例においては、前記自動訂正領域における各位置は、水平座標および垂直座標によって定義されており、かつ、対話位置と、文字に対応する既知の座標位置との間の距離値は、水平成分および垂直成分を有し、前記垂直成分は、前記文字から前記対話位置までの距離を計算するときに、重み係数によって調整される。
【００５７】
さらなる実施例においては、メモリ内の候補オブジェクトのそれぞれに関連付けられている使用頻度は、他のメモリ内オブジェクトに対する前記オブジェクトの順位を有し、より高い相対頻度に関連付けられているオブジェクトは、数値の小さい順位に対応する。
【００５８】
さらなる実施例においては、候補オブジェクトの前記合計された距離値に前記単語評価コンポーネントによって適用される前記頻度重み関数は、前記距離値の合計と、前記オブジェクトの前記順位の2を底とする対数値との乗算を含んでいることが最も好ましい。
【００５９】
さらなる実施例においては、前記単語評価コンポーネントは、前記候補オブジェクトに関連付けられている前記使用頻度に従って重み関数を適用する前に、前記距離値の合計に増分値を加える。
【００６０】
さらなる実施例においては、前記増分値は、前記自動訂正領域における、文字に対応する隣接する位置の間の平均距離の約2倍である一定値である。
【００６１】
さらなる実施例においては、メモリ内オブジェクトは、同じ長さのオブジェクトを有するグループに前記オブジェクトが分類されるように格納されている。
【００６２】
さらなる実施例においては、前記単語評価コンポーネントは、前記入力シーケンスにおける入力の数と同じ長さのオブジェクトの候補グループを最初に識別することによって、合致基準が計算されるオブジェクトの数を制限する。
【００６３】
さらなる実施例においては、候補オブジェクトの個数しきい値より少ない数のオブジェクトが、しきい値より良好な合致基準評点を持つと評価される場合、前記単語評価コンポーネントは、漸次長さの長いオブジェクトの候補グループを識別し、当該しきい値の個数の候補オブジェクトが、当該しきい値より良好な合致基準評点を持つと評価されるまで、前記識別されたグループの中の前記オブジェクトの前記合致基準を計算する。
【００６４】
さらなる実施例においては、前記単語評価コンポーネントは、前記入力シーケンスにおける各対話位置から、前記候補オブジェクトの対応するポジションにおける文字に割り当てられている位置までの計算された前記距離値を合計し、増分値を加え、かつ、前記オブジェクトに関連付けられている使用頻度に従って重み関数をこの合計に適用することによって、各候補オブジェクトの合致基準を計算し、かつ、前記距離値の前記合計に加えられる前記増分値は、前記候補オブジェクトにおける文字の数と前記現在の入力シーケンスにおける入力の数との差に基づく値である。
【００６５】
さらなる実施例においては、前記単語評価コンポーネントは、前記入力シーケンスにおける各対話位置から、前記候補オブジェクトの対応するポジションにおける文字に割り当てられている位置までの計算された距離値を合計し、かつ、前記オブジェクトに関連付けられている使用頻度に従って重み関数を適用することによって、各候補オブジェクトの合致基準を計算する。
【００６６】
さらなる実施例においては、メモリ内の候補オブジェクトのそれぞれに関連付けられている前記使用頻度は、当該オブジェクトが関連付けられている、メモリ内の1つまたは複数のサブグループ、の中の他のオブジェクトに対する前記オブジェクトの順位を有し、より高い相対頻度に関連付けられているオブジェクトが、数の小さい順位に対応する。
【００６７】
さらなる実施例においては、前記入力シーケンスにおける対話位置と、前記自動訂正領域内の、文字に対応する既知の座標位置との間の計算された距離値のうち、距離しきい値を超えている値それぞれについて、メモリ内オブジェクトのうち、当該入力シーケンスにおける当該対話位置の前記ポジションに対応する、当該オブジェクトの文字のシーケンスにおけるポジション、に当該文字が現れている、メモリ内オブジェクトそれぞれについて、当該オブジェクトが、選択のためのユーザへの提示から除外されるオブジェクトとして、前記単語評価コンポーネントによって順位付けされる。
【００６８】
さらなる実施例においては、前記メモリ内オブジェクトの1つまたは複数の前記識別された候補グループは、選択のためのユーザへの提示から除外されているオブジェクトを有し、オブジェクトの当該1つまたは複数の識別された候補グループにおける各オブジェクトの距離値の計算された合計に含まれている、前記計算された距離値の少なくとも1つは、距離しきい値を超えている。
【００６９】
さらなる実施例においては、前記自動訂正領域は、2つ以上の定義済みのクラスタ領域に分けられており、当該クラスタ領域のそれぞれが、1つまたは複数の文字の既知の位置を含んでおり、かつ、メモリ内オブジェクトのそれぞれが、当該2つ以上の定義済みのクラスタ領域のうちどのクラスタ領域が、当該オブジェクトの先頭から1つまたは複数の文字に対応する既知の位置を含んでいるかに従って、定義済みのグループに割り当てられている。
【００７０】
さらなる実施例においては、前記自動訂正領域は、3つの定義済みのクラスタ領域に分けられており、かつ、メモリ内オブジェクトのそれぞれが、前記3つの定義済みのクラスタ領域のうちどのクラスタ領域が、当該オブジェクトの最初の2文字のそれぞれに対応する既知の位置を含んでいるかに基づいて、9つの定義済みのグループのうちの1つに割り当てられている。
【００７１】
本発明は、前記自動訂正領域における既知の位置に対応する文字のそれぞれに対して、1つまたは複数の当該既知の位置のまわりに領域が事前定義されており、当該定義済み領域内にある入力対話位置と、当該定義済み領域内の前記既知の文字位置との間の距離は、ゼロとして計算される。
【００７２】
さらなる実施例においては、当該定義済み領域の相対的なサイズは、当該定義済み領域内の前記既知の位置に関連付けられている文字の相対出現頻度に対応する。
【００７３】
さらなる実施例においては、文字の前記既知の位置のまわりの当該定義済み領域は、仮想キーボード上に表示されるキーに対応している。
【００７４】
本発明は、前記自動訂正領域における既知の座標を有する少なくとも1つの位置が複数の文字に対応しており、当該複数の文字のうちの1つまたは複数が、さまざまな発音区別記号を含んでおり、前記複数の文字が、1つの基本文字の異形を有し、かつ、メモリ内オブジェクトが、それらの正しいアクセント記号付き文字と一緒に格納されている、システム、も提供する。
【００７５】
本発明は、前記選択コンポーネントが、ユーザが選択するための前記識別された1つまたは複数の候補オブジェクトを候補オブジェクトリストに提示する、システム、も提供する。
【００７６】
本発明は、前記選択コンポーネントが、最も高く順位付けされる候補オブジェクトを識別し、かつ、前記識別されたオブジェクトを、前記候補オブジェクトリストのうち前記自動訂正領域に最も近いポジションに提示する、システム、も提供する。
【００７７】
本発明は、前記自動訂正領域の外側の対話に関連付けられている文字をユーザが選択すると、前記最も高く順位付けされると判断された候補オブジェクトが受け入れられて出力された後、前記選択された文字が出力される、システム、も提供する。
【００７８】
本発明は、ユーザが出力されるようにオブジェクトを選択すると、前記自動訂正領域内の次の対話によって新しい入力シーケンスが開始されるように、現在の入力シーケンスが終了する、システム、も提供する。
【００７９】
本発明は、前記選択コンポーネントが、候補オブジェクトを選択するために使用されている特殊な選択方式を検出し、かつ、当該特殊な方式によってオブジェクトが選択されたことを検出した時点で、システムが、実際の対話位置の現在の入力シーケンスを、前記選択されたオブジェクトを有する文字の座標位置に対応する対話位置の入力シーケンスに置き換え、かつ、前記自動訂正領域における次の対話が、前記現在の入力シーケンスに付加される、システム、も提供する。
【００８０】
本発明は、前記単語評価コンポーネントが、対話位置の各入力シーケンスにおける確定された対話位置のそれぞれについて、文字に対応する最も近い既知の位置を確定し、かつ、対話位置の前記入力シーケンスに対応する順序での、当該確定された対応する文字から成る、タイプ入力したままのオブジェクトを構築する、システム、も提供する。
【００８１】
さらなる実施例においては、前記選択コンポーネントは、対話位置の各入力シーケンスに対して、当該タイプ入力したままのオブジェクトを選択肢としてユーザに提示する。
【００８２】
さらなる実施例においては、前記ユーザが、当該タイプ入力したままのオブジェクトを前記出力デバイスに出力するように選択し、かつ、当該タイプ入力したままのオブジェクトが前記メモリ内オブジェクトの1つとしてまだ含まれていないとき、当該タイプ入力したままのオブジェクトが前記メモリに追加される。
【００８３】
さらなる実施例においては、前記タイプ入力したままのオブジェクトを選択肢として前記ユーザに表示する前に、前記選択コンポーネントは、前記タイプ入力したままのオブジェクトを、それぞれが受け入れて表示できる代替オブジェクトに関連付けられている好ましくないオブジェクト、のデータベースと比較し、合致が見つかる場合、前記タイプ入力したままのオブジェクトを、前記関連付けられている受け入れ可能なオブジェクトに置き換えて前記ユーザに提示する。
【００８４】
本発明は、前記選択コンポーネントが、最も高く順位付けされる候補オブジェクトを識別し、前記識別されたオブジェクトを前記出力デバイスに提示する、システム、も提供する。
【００８５】
本発明は、前記テキスト入力システムが、オブジェクト選択機能に関連付けられている選択キー領域を含んでおり、当該選択キー領域が対話されると、前記出力デバイスに提示されている前記オブジェクトが、前記識別された1つまたは複数の候補オブジェクトのうち次に高く順位付けされているオブジェクトに置き換えられる、システム、も提供する。
【００８６】
本発明は、前記テキスト入力システムが、削除機能に関連付けられている削除キー領域を含んでおり、現在の入力シーケンスが少なくとも1つの対話を含んでおりかつ当該削除キー領域が選択されたときに、対話の前記現在の入力シーケンスから最後の入力対話が、前記現在の入力シーケンスが終了することなく削除される、システム、も提供する。
【００８７】
本発明は、前記テキスト入力システムが、単語編集機能に関連付けられている単語編集キー領域を含んでおり、現在の入力シーケンスが存在せずかつ当該単語編集キー領域が対話され、かつ、前記出力デバイス上の前記テキスト挿入ポイントが、以前に出力された単語の中に含まれているときには、前記システムが、当該単語の文字に関連付けられている座標位置に対応する対話位置のシーケンスから成る新しい現在の入力シーケンスを確立し、かつ、前記出力デバイス上の前記テキスト表示領域における前記テキスト挿入ポイントが、以前に出力された2つの単語の間に位置しているときには、前記システムが、前記テキスト挿入ポイントに隣接している前記単語の文字に関連付けられている座標位置に対応する対話位置のシーケンスから成る新しい現在の入力シーケンスを確立し、かつ、前記テキスト入力システムが、当該新しい現在の入力シーケンスを処理して新しい候補オブジェクトの対応する順位を確定し、かつ、前記新しい候補オブジェクトのうちの1つが選択されると、当該新しい現在の入力シーケンスを確立するために使用された前記以前に出力された単語が置き換えられる、システム、も提供する。
【００８８】
本発明は、入力対話位置のそれぞれに対して、前記距離値計算コンポーネントが、選択された単語それぞれの各文字に対応する座標位置から、対応する入力対話位置のそれぞれの座標までのオフセット、の水平成分および垂直成分の移動平均を計算し、かつ、前記距離値計算コンポーネントが、前記単語評価コンポーネントのための距離計算を実行するときに、入力された対話位置のそれぞれの水平座標および垂直座標を、前記計算された符号付き水平および垂直平均オフセットの関数である量だけ調整する、システム、も提供する。
【００８９】
本発明は、前記プロセッサが、前記自動訂正領域内のユーザの対話動作のそれぞれについて、仮想キーボードから持ち上がる前に対話点が最初の対話位置から距離しきい値より小さい距離だけ移動したかを判断する、ストローク認識コンポーネント、をさらに有し、前記仮想キーボードから持ち上がる前に前記対話点が最初の対話位置から距離しきい値より小さい距離だけ移動したときには、前記ストローク認識コンポーネントが、ユーザ対話がタップ対話であると判断し、前記ユーザ対話に関連付けられていると判断される位置が、前記距離値計算コンポーネント、前記単語評価コンポーネント、および前記選択コンポーネントによって処理される対話位置の前記現在の入力シーケンスに付加され、かつ、前記仮想キーボードから持ち上がる前に前記対話点が前記最初の対話位置から距離しきい値より大きいかまたは等しい距離だけ移動したときには、前記ストローク認識コンポーネントが、前記ユーザ対話が既知のシステム機能に関連付けられている複数のストローク対話のうちの1つであると判断し、前記ストローク対話を、前記複数の定義済みタイプのストローク対話の1つとして分類する、システム、をさらに提供する。
【００９０】
本発明は、前記入力シーケンスにおける、個数しきい値の対話位置が、与えられた候補オブジェクトを含んでいる前記文字シーケンス内の対応する文字からの最大の距離しきい値より離れているとき、当該オブジェクトが、もはや前記選択コンポーネントにとっての候補オブジェクトではないと識別される、システム、も提供する。
【００９１】
本発明は、1つまたは複数のオブジェクトの大文字使用に関する情報が、前記メモリ内オブジェクトと共に格納されており、かつ、前記選択コンポーネントが、識別されたオブジェクトのそれぞれを、前記格納されている大文字使用情報に従って好ましい大文字使用形式において表示する、システム、も提供する。
【００９２】
本発明は、1つまたは複数のメモリ内オブジェクトが、1つまたは複数の文字または記号のシーケンスを有するメモリ内二次オブジェクトに関連付けられており、かつ、前記選択コンポーネントが、当該オブジェクトのうち前記ユーザに提示する1つを、前記単語評価コンポーネントによって計算された前記合致基準に基づいて識別すると、前記選択コンポーネントが、前記関連付けられている二次オブジェクトを選択できるように提示する、システム、も提供する。
【００９３】
本発明は、当該仮想キーボードが、レーザー投影キーボード、筋肉検出キーボード、ファブリックキーボード、ジェスチャー検出デバイス、目の動きを追跡するデバイス、のいずれかを有する、システム、も提供する。
【００９４】
本発明は、当該ユーザ入力デバイスと当該出力デバイスとが統合されている、システム、も提供する。
【００９５】
本発明は、形式的または会話調の書かれたテキストにおける言語オブジェクトの出現頻度、先行する1つまたは複数の言語オブジェクトに続くときの言語オブジェクトの出現頻度、周囲の文の適切または一般的な文法、現在の言語オブジェクトエントリの、アプリケーションにおけるコンテキスト、ユーザによる、またはアプリケーションプログラム内での前記言語オブジェクトの使用または繰り返し使用の頻度、のうちの任意の1つ以上を有する言語モデル、をさらに有するシステム、も提供する。
【００９６】
本発明は、ユーザ対話が、前記自動訂正キーボード領域内での、または隣接するスクロールジェスチャーであって、リストをスクロールさせ、出力されるように選択される候補単語を変更させる、前記スクロールジェスチャー、を有する、システム、も提供する。
【００９７】
本発明は、ユーザ対話が、ユーザの意図を表現する任意のジェスチャーおよびその他の動きを有する、システム、も提供する。
【００９８】
本発明のさらなる実施例においては、複数のキーを有する自動訂正領域を含んでいる仮想キーボードを有するユーザ入力デバイスであって、前記複数のキーのそれぞれが、アルファベット文字に対応しており、かつ既知の座標位置にあり、ユーザが、前記自動訂正領域における1つまたは複数の隣接するキーを所定の期間しきい値以内に作動させてキー作動イベントを生成するたびに、前記キー作動イベントに対応する確定された位置が、前記キー作動イベントの前記確定された位置の現在の入力シーケンスに付加される、前記ユーザ入力デバイスと、複数のオブジェクトを含んでいるメモリであって、各オブジェクトが、単語または単語の一部を形成する1つまたは複数の文字の文字列であり、各オブジェクトに使用頻度がさらに関連付けられている、前記メモリと、出力デバイスと、前記ユーザ入力デバイスと、前記メモリと、前記出力デバイスとに結合されているプロセッサであって、当該プロセッサが、キー作動イベントの前記入力シーケンスにおける生成されたキー作動イベントそれぞれに対して、前記キー作動イベント位置と、前記自動訂正領域内の1つまたは複数のキーに対応する前記既知の座標位置との間の一連の距離値を計算する距離値計算コンポーネントと、生成された入力シーケンスに対して、メモリ内の1つまたは複数の候補オブジェクトを識別し、かつ、前記1つまたは複数の識別された候補オブジェクトについて、前記計算された距離と、前記オブジェクトに関連付けられている使用頻度とに基づいて合致基準を計算することによって、識別された候補オブジェクトそれぞれを評価し、かつ、前記評価された候補オブジェクトを、前記計算された合致基準値に基づいて順位付けする、単語評価コンポーネントと、1つまたは複数の候補オブジェクトを、それらの評価された順位に従って識別し、前記識別されたオブジェクトを前記ユーザに提示し、かつ、前記提示されたオブジェクトのうち、前記出力デバイスに出力する1つを前記ユーザが選択できるようにする、選択コンポーネントと、を有する、前記プロセッサと、を有する、テキスト入力システム、を提供する。
【００９９】
本発明は、前記複数のメモリ内オブジェクトのそれぞれが、オブジェクトの1つまたは複数の定義済みグループにさらに関連付けられており、かつ、前記単語評価コンポーネントが、生成された入力シーケンスのそれぞれについて、前記メモリ内オブジェクトの1つまたは複数の候補グループを識別することによって、合致基準が計算されるオブジェクトの数を制限し、かつ、オブジェクトの前記1つまたは複数の識別された候補グループのそれぞれに関連付けられている1つまたは複数のオブジェクトについて、前記計算された距離値と、各候補オブジェクトに関連付けられている使用頻度とに基づいて合致基準を計算し、かつ、前記評価された候補オブジェクトを、前記計算された合致基準値に基づいて順位付けする、システム、も提供する。
【０１００】
本発明は、さらに、前記アルファベット文字に関連付けられている前記キーが、自動訂正領域においてほぼ規格QWERTYレイアウトに配列されている、システム、も提供する。
【０１０１】
本発明は、前記自動訂正領域における複数の隣接しているキーの同時の作動を有するキー作動イベントが検出されると、当該キー作動イベントに対応する位置が、前記同時に作動されたキーの前記位置の関数として確定され、かつ、当該確定された位置が、前記キー作動イベントの前記位置の現在の入力シーケンスに付加される、システム、も提供する。
【０１０２】
さらなる実施例においては、当該キー作動イベントの前記位置を確定するために使用される前記関数が、前記同時に作動されたキーの位置の中心に対応する位置の計算を含んでいる。
【０１０３】
さらなる実施例においては、当該キー作動イベントの前記位置を確定するために使用される前記関数は、前記同時に作動されたキーの位置の重み付けされた重心に対応する位置の計算を含んでおり、前記自動訂正領域における前記キーのそれぞれに関連付けられている重みは、前記キーに関連付けられている文字の相対出現頻度に対応し、当該相対頻度は、前記メモリ内オブジェクトにおける前記文字の出現頻度に関連して確定される。
【０１０４】
さらなる実施例においては、所定の期間しきい値以内での、前記自動訂正領域における複数の隣接しているキーの作動を有するキー作動イベントであって、当該キー作動イベント中は、当該複数の隣接しているキーのうちの少なくとも1つが作動しており、かつ、当該キー作動イベント中の任意の瞬間において、当該複数のキーの任意のサブセットが同時に作動しており、当該同時に作動されたキーのサブセットが、隣接しているキーを有する、前記キー作動イベント、が検出されると、当該キー作動イベントに対応する位置が、当該キー作動イベント中に検出された前記複数の隣接しているキーすべての位置の関数として確定され、かつ、当該確定された位置が、前記キー作動イベントの前記位置の現在の入力シーケンスに付加される。
【０１０５】
さらなる実施例においては、当該キー作動イベントの前記位置を確定するために使用される前記関数は、前記同時に作動されたキーの位置の中心に対応する位置の計算を含んでいる。
【０１０６】
さらなる実施例においては、当該キー作動イベントの前記位置を確定するために使用される前記関数は、前記同時に作動されたキーの位置の重み付けされた重心に対応する位置の計算を含んでおり、前記自動訂正領域における前記キーのそれぞれに関連付けられている重みは、前記キーに関連付けられている文字の相対出現頻度に対応し、当該相対頻度は、前記メモリ内オブジェクトにおける前記文字の出現頻度に関連して確定される。
【０１０７】
本発明は、当該自動訂正領域が、1つまたは複数の句読点文字に関連付けられている1つまたは複数のキーを有し、当該メモリが、当該自動訂正領域におけるキーに関連付けられている前記1つまたは複数の句読点文字を含んでいる1つまたは複数のメモリ内オブジェクトを含んでいる、システム、も提供する。
【０１０８】
本発明は、前記単語評価コンポーネントが、前記入力シーケンスにおける確定された位置から、前記候補オブジェクトの対応するポジションにおける文字に対応するキーの既知の位置までの距離値を合計し、かつ、前記オブジェクトに関連付けられている使用頻度に従って重み付け関数を適用することによって、候補オブジェクトそれぞれの合致基準を計算する、システム、も提供する。
【０１０９】
本発明は、前記自動訂正領域における前記キーのうちの少なくとも1つが、複数の文字に対応しており、当該複数の文字のうちの1つまたは複数が、様々な発音区別記号を有し、前記複数の文字が、1つの基本文字の異形を有し、かつ、メモリ内オブジェクトが、それらの正しいアクセント記号付き文字と一緒に格納される、システム、も提供する。
【０１１０】
本発明は、前記選択コンポーネントが、ユーザが選択するための前記識別された1つまたは複数の候補オブジェクトを候補オブジェクトリストに提示する、システム、も提供する。
【０１１１】
さらなる実施例においては、前記選択コンポーネントは、最も高く順位付けされる候補オブジェクトを識別し、かつ、前記識別されたオブジェクトを、前記候補オブジェクトリストのうち前記自動訂正領域に最も近いポジションに提示する。
【０１１２】
さらなる実施例においては、文字に関連付けられている前記キーのうち、前記自動訂正領域内に含まれていないキーが作動されると、前記確定された最も高く順位付けされる候補オブジェクトが受け入れられて出力された後、前記選択された文字が出力される。
【０１１３】
さらなる実施例においては、出力させるオブジェクトをユーザが選択すると、前記自動訂正領域内の次のキー作動イベントによって新しい入力シーケンスが開始されるように、前記現在の入力シーケンスが終了する。
【０１１４】
本発明は、当該仮想キーボードが、レーザー投影キーボード、筋肉検出キーボード、ファブリックキーボード、ジェスチャー検出デバイス、目の動きを追跡するデバイス、のいずれかを有する、システム、も提供する。
【０１１５】
本発明は、当該ユーザ入力デバイスと当該出力デバイスとが統合されている、システム、も提供する。
【発明を実施するための最良の形態】
【０１１６】
ユーザのキーストローク入力は不正確さを伴うと考えられるため、ユーザがタイプ入力しようとした文字列を生成するときに、特定のキーストロークシーケンスの解釈が一意に決まらない。本発明は、ユーザが所望の解釈を容易に選択できるように、単語に対応する個々のキーストロークシーケンスの1つ以上の代替の解釈がユーザに示され、最も適切と考えられる解釈を選択するために特別な動作をとる必要がない、プロセスおよびシステム、すなわち装置あるいはデバイスを提供する。この方法では、システムは、シーケンスの各文字について、ユーザが意図した可能性の高い文字を推測するときに、単語に対応するキーストロークシーケンス全体に含まれる情報を利用することができる。
【０１１７】
本発明の方法は、特許文献３によって開示されているような従来のシステムに対する2つの非常に重要な利点を有する。1つは、本発明のシステムでは、各キーストロークの意図された文字を確定する際に、先行するキーストロークおよび後続のキーストロークの両方に関する情報と、単語の長さの情報と、合致する可能性がある単語の相対頻度に関する情報を含むデータベースとを使用する。これは、従来のシステムが利用できる情報よりはるかに多い情報であり、システムの性能が大幅に向上する。第二の利点として、ユーザは、各単語の文字すべてが入力された後の単語の境界においてシステムと対話してその予測に応答するのみでよく、各キーストロークの直後に、システムによって生成される各文字を調べて、受け入れるかまたは拒否する必要はない。このことにより、システムの利便性が非常に高まり、なぜなら、これによりユーザは、キーストロークごとに絶えずディスプレイに注意を向ける必要なしに、キーボード上のテキスト入力にはるかに集中できるためである。もう1つの利点は、このシステムが、英語におけるハイフンで結ばれた合成語あるいは短縮形など、単語に一般に埋め込まれているハイフンあるいはアポストロフィなどの句読点文字にも対応することである。このような埋め込まれた句読点文字は、アルファベット文字に関連付けられているキーあるいは文字位置のうちの1つ以上に関連付けることができる。
【０１１８】
用語の定義
「キーボード」は、定義された領域を有する任意の入力デバイスを意味するものとし、例えば、1つまたは複数の文字に関連付けられている複数の定義された位置を含む定義された領域を有する入力デバイスが挙げられ（ただしこれに限定されない）、具体的には、仮想キーボードであり（ただしこれに限定されない）、これには、一例として、レーザー投影キーボード、筋肉検出キーボード、ファブリックキーボードが含まれる（ただしこれらに限定されない）ものとする。
【０１１９】
「自動訂正領域」は、本発明の自動訂正プロセスおよび機能が適用される、キーボード上の領域を意味する。
【０１２０】
「オブジェクト」は、単語、語幹、接頭辞または接尾辞、句、省略形、スラング、顔文字、ユーザID、URL、または表意文字シーケンスを形成する、1つ以上の文字または記号の文字列など、言語オブジェクトを意味するものとする。
【０１２１】
「単語評価コンポーネント」は、どのオブジェクトをどの順序でユーザに提示するかを確定する、システムの一部を意味し、この場合のオブジェクトは、上に定義されている言語オブジェクトすべてを包含し、完全な単語のみに限定されない。
【０１２２】
「語幹」は、先頭に接頭辞が付加されている、または付加されていない「語根(root word)」または「構成要素(component)」を意味するものとする。例えば、「interestingly」という語は、語根「interest」から成り、これに接尾辞「ingly」が付加されたものである。
【０１２３】
「アルファベット」は、音声要素または単語構成要素を表し、かつ、アクセント記号の付いた、またはアクセント記号が付いていない、またはその他の文字または記号を意味するものとし、例えば、日本語の仮名、韓国語のジャモ文字、中国語の注音、あるいはその他の言語文字および非言語文字（省略形、スラング、顔文字、ユーザID、またはURLに含まれている数字および句読点など）が含まれる。
【０１２４】
「使用頻度」は、言語モデルに従う静的または動的な頻度情報を意味するものとし、形式的または会話調の書かれたテキストにおける単語の出現頻度、先行する1つまたは複数の単語に続くときの単語の出現頻度、周囲の文の適切または一般的な文法、現在の単語エントリの、アプリケーションにおけるコンテキスト、ユーザによる、またはアプリケーションプログラム内での単語の使用または繰り返し使用の頻度、のうちの1つまたは複数を含んでいることができる。
【０１２５】
「モジュール」はオブジェクトの特性に基づいたオブジェクトの論理的な編成である。例えば、(1)フランス語の単語と英語の単語はそれぞれ異なるモジュールに編成されている、(2)動詞語幹モジュールは、それぞれに1つ以上の可能な接尾辞を添えることができる動詞語幹を含んでおり、接尾辞は、動詞語幹モジュールに関連付けられている1つ以上の接尾辞モジュールに含まれており、接尾辞モジュールからの接尾辞を動詞語幹モジュールの中の動詞語幹に付加して、適切に語尾変化する単語を形成することができる。
【０１２６】
同様に、モジュールは、言語パターンに基づいてオブジェクトを修正あるいは生成する（特定の音節に識別記号を置くなど）、あるいは、現在の入力シーケンスおよび周囲の文脈を解釈するためのその他の任意のアルゴリズムに基づいてオブジェクトを生成することができる。
【０１２７】
「対話動作」は、キーボードと対話する結果となるユーザ動作の全体であり、最初の対話と、キーボードとの対話が終了する瞬間までに検出される追加の連続的な対話点とが含まれる。対話動作の例として、以下に限定されないが、スタイラスまたは指によって表面上の位置または空間的位置に物理的に触れる、またはその近傍に触れ、スタイラスまたは指をいくらかの距離だけ動かした後、表面上の位置または空間的位置からスタイラスまたは指を持ち上げることが挙げられる。
【０１２８】
「対話位置」は、キーボードと対話する結果となるユーザ動作に対応するように確定される位置である。対話位置を確定する方法として、以下に限定されないが、ユーザによって行われた最初の対話または最後の対話の位置または近くの位置を検出する、あるいは、ユーザ動作の時点に表示されるキーボード領域内で、そのようなユーザ動作の位置に対応して対話位置が確定されるようなユーザ動作を検出すること、が挙げられる。
【０１２９】
「距離値計算コンポーネント」は、対話位置と、キーボードの自動訂正領域内の1つ以上の文字に対応する既知の座標位置との間の一連の距離値を計算する。2つの位置の間の距離を計算する方法として、以下に限定されないが、各位置にデカルト座標を割り当てて、標準のデカルト座標距離解析に従って2つの位置の間の距離を計算する、各位置にデカルト座標を割り当てて、標準のデカルト座標距離の二乗として2つの位置の間の距離を計算する、および、各位置にデカルト座標を割り当てて、垂直成分を重み係数によって調整して三次元空間において上記の手法を適用することにより、デカルト座標距離解析に従って2つの位置の間の距離を計算することが挙げられる。
【０１３０】
「合致基準」は、一連の対話を入力したときのユーザの意図にオブジェクトが一致している可能性を推定する手段として、対話位置の入力シーケンスに関してオブジェクトについて計算される評点である。例えば、1つの実施例においては、入力シーケンスの各対話位置から、与えられた候補オブジェクトの対応するポジションにおける文字に割り当てられている位置までの距離の二乗の和として、合致基準を計算することができ、次いで、距離の二乗の和に頻度調整係数が乗算される。頻度調整係数は、1つの好ましい実施例においては、可能性のある他の候補オブジェクトに対する単語の順位の、2を底とする対数として計算され、より高い相対頻度に関連付けられているオブジェクトは、数の小さい順位に対応する、すなわち、最も頻繁に現れるオブジェクトが「1」のポジションとなる。このように、この実施例においては、計算された合致基準の数値が小さいほど、与えられたオブジェクトが、対話点のシーケンスを生成したときのユーザの意図に一致しているとみなせる可能性が高い。
【０１３１】
「評価された順位」は、対話点のシーケンスを生成したときのユーザの意図に各オブジェクトが一致している可能性に基づく、一連の候補オブジェクトの相対的な優先順位であり、この可能性は、オブジェクトに対して計算された合致基準に従って確定される。
【０１３２】
「キー作動イベント」は、以下に限定されないが、仮想キーボードの1つ以上の隣接しているキーの作動につながるユーザの動作中に検出される、作動されたすべてのキーを含むイベントである。最初に押し下げられたキーに始まり、それが押し下げられている時間が含まれ、さらに、最初のキーと、同時に押し下げられた隣接しているキーのいずれも押し下げられていない瞬間までに検出される、最初に押し下げられたキーに隣接しておりかつ同時に押し下げられるすべての付加的なキーが含まれる。
【０１３３】
図1Aには、本発明に従って形成された、簡略化された自動訂正キーボードシステム100が、パームトップ携帯コンピュータ102に組み入まれて描かれている。携帯コンピュータ102は、タッチスクリーンディスプレイ103上に実施されている簡略化されたキーボード105を有し、このキーボード105は、テキスト表示領域104へ出力されるテキストを生成するために使用される。本出願の目的に対し、用語「キーボード」は、キー用に定義された領域を持つ任意の入力デバイスが含まれるように広く定義される。キーボード105は、自動訂正領域106を有し、この領域には、英語のアルファベットの26文字とアポストロフィとがほぼ標準のQWERTY配置に表示されている。留意すべき点として、キーボード106のアスペクト比（すなわち幅と高さの比）は、標準のコンピュータキーボードまたはタイプライタの場合にはおよそ4：1であるのに対し、この好ましい実施例では2：1未満である。このアスペクト比により、キーボードの形が正方形に近く、キーボードの両端の文字の間でスタイラスを移動させなくてはならない距離が最小化される傾向がある一方で、隣り合う行の相対的間隔が増加することによって、隣り合う行の文字同士を識別するシステムの能力が高まることにおいて、キーボード106が使いやすくなる。これにより、ユーザは、意図する文字に垂直方向に相対的に近い位置でキーボードと容易に対話することができる。従って、好ましい実施例においては、文字から対話点までの距離は、水平成分に対して距離の垂直成分の相対的な重みを増加させる方法を使用して計算される。
【０１３４】
キーボードは、任意のサイズとすることができ、非常に小さい、あるいは非常に大きくてもよい。本文書に記載されている仮想キーボードの場合、キーボードのサイズは、ユーザの好みと利用可能な表面領域によって決まる。従来型に近いキーボードの場合、英語のアルファベットの26文字をすべて含む自動訂正キーボードの空間として1cm×0.5cmという小さなスペースを使用する実施形態は、小さなプラスチックスタイラスで全く問題なく使用可能であることが判明している。このサイズのキーボードとして具体化するときには、標準のQWERTYレイアウトのようなよく知られたキー配置を使用してもよい。このキー配置を使用する場合、定義されたキーボード空間における各文字の相対的な位置が、そのような標準配置に慣れているユーザには周知であるため、明瞭に表示された文字を含める必要はない。これに代えて、ユーザを支援するためのドットなどの非常に小さなラベルを、各文字位置に表示させてもよい。
【０１３５】
本発明の別の側面によると、文字の内部の論理的表現は、自動訂正キーボードにおける実際の文字のラベルによって表されている物理的な配置を反映している必要はない。例えば、フランス語の語彙モジュールとして構築されているデータベースにおいては、アクセント記号が付された文字&Acirc;および&Agrave;を、仮想キーボード上の文字位置に表示されるアクセント記号のない文字Aに関連付けることもできる。フランス語の語彙モジュールにおける単語のエントリには、アクセント記号がない文字に関連付けられているキーまたは文字位置に十分近い入力対話点に基づいて、正確な綴り形式を自動的に生成できるように、与えられた単語がアクセント記号付きの文字またはアクセント記号なしの文字によって綴られるべきかを判断するために必要な情報が含まれている。このことは、適切なアクセント記号を含んだ正確な綴りを用いて単語をタイプ入力するために、特別なタイプ入力手法、付加的なキー、あるいは付加的なキーストロークが必要とされないため、アクセント記号のついた文字が頻繁に使用されるフランス語などの言語にとって、重要な利点となる。
【０１３６】
本発明の別の側面によると、表示されるキーボードは、音節などの単語構成要素を入力するための複数の状態にすることができる。例えば、注音の場合、キーボードは、有効な子音(initial)z/zh/c/ch/b/p/m/fなどの表示と、有効な母音(final)o/on/ong/a/an/ang/uong/uang/uan/uonなどの表示との間で切り替わることができる。これらの場合のそれぞれにおいて、語彙モジュールには、動的なキーボード挙動をサポートするために必要な情報が含まれる。
【０１３７】
図1Aのキーボード配置は、特定の機能の実行、あるいは特定の文字の生成に関連付けられている6個の付加的なキーを含んでいる。これらのキーは、シフトキー108、スペースキー110、バックスペースキー112、単語編集キー114、記号モードキー116、リターン（または「エンター」）キー118、代替キーボードモードキー120、およびテンキーモードキー122を含んでいる。これらのキーの機能は、図1Bを参照しながら説明されている。
【０１３８】
テキストは、自動訂正キーボード106上でのキーストロークを介して、キーボードシステムを使用して生成される。ユーザが、キーボードを使用してキーストロークシーケンスを入力すると、テキストが、コンピュータディスプレイ103に表示される。2つの重なりあう領域がディスプレイ上に画成され、それぞれがユーザへの情報を表示する。上部の出力テキスト領域104は、ユーザによって入力されたテキストを表示し、テキスト入力および編集用のバッファとしての役割を果たす。単語選択肢リスト領域150は、図1Bに示されている好ましい実施例においては、テキスト領域104の上に重なっており、ユーザによって入力されたキーストロークシーケンスに対応する単語およびその他の解釈のリストを提供する。単語選択肢リスト領域150は、入力したキーストロークの不正確さをユーザが訂正するのを助ける。別の1つの実施例においては、表示空間が限られたデバイスにシステムを実施し、デフォルトあるいは最も可能性の高い単語オブジェクトのみを、生成中のテキストの挿入ポイント107に表示することができる。
【０１３９】
別の好ましい実施例においては、本発明のキーボードは、仮想キーボードデバイスを使用して実施されている。そのようなデバイスの例として、Virtual Keyboard社（http://www.vkb.co.il/を参照）およびCanesta社（http://www.canesta.com/を参照）などの会社によって提供されているレーザー投影キーボード、Senseboard（登録商標）仮想キーボード（例：http://www.senseboard.com/を参照）などの筋肉検出キーボード、ファブリックキーボード（例：http://www.electrotextiles.com/を参照）が挙げられる。
【０１４０】
しかしながら、仮想キーボードにおいては、1回の不正確または誤ったキーの作動は、意図した以外のキーを作動させたことに起因するのみならず、2個以上の隣接しているキーを同時またはほぼ連続して作動させたことに起因することもあり、このとき、作動されたキーが意図したキーを含む場合も含まない場合もある。従って、本発明の別の側面によると、自動訂正キーボードにおけるキーストロークのシーケンスは、1回の意図したキーストロークによって2つ以上の隣接しているキーが作動しうることに関して、時間および空間の両方の側面からフィルタリングされる。一例としては、ユーザの指が、意図したキー、または1つの特定のキーと位置が合っていない状態で、ユーザが2個、3個、あるいは4個のキーを押す場合である。この場合、各キーストロークが受け取られた後、システムが非常にわずかのタイムアウトしきい値だけ待機するまで、または隣接していないキーからのキーストロークが受け取られるまで、キーストロークは処理されない。次のキーストロークが隣接しているキーに生じる場合、または複数のキーストロークが、互いに隣接するキーに生じる場合、タイムアウトしきい値の終了前に検出されたキーは、単一のキーストロークイベントと見なされる。このような場合、同時に作動された一連のキーの中心に、仮想の対話点が計算される。この計算された仮想の対話点から既知の文字位置までの距離は、仮想キーの解像度より細かい解像度を持つ論理的座標系に内挿することによって計算される。
【０１４１】
本発明の別の実施例においては、自動訂正キーボード上のキーストロークを個別に文字に合致させるのではなく、完成した単語に対応するキーストロークのシーケンス全体に対し、使用頻度の情報が含まれている候補単語の辞書に照らして合致を見いだす。このようにして、このシステムは、ときおり生じる平均より大きなキーストロークエラー、あるいは意図した単語の相対頻度が高ければ相対的に大きな複数のエラーでさえも、しばしば正しく補正することができる。キーストローク入力シーケンスのこの単語レベル解析は、本発明のシステムがユーザのキーストロークエラーに柔軟に対応できるための鍵となる要素である。
【０１４２】
キーストロークシーケンスの単語レベル解析によって、本システムは、英語におけるハイフンで結ばれた合成語あるいは短縮形など、単語に一般に埋め込まれているハイフンやアポストロフィなどの句読点文字を生成することができる。そのような埋込まれた句読点文字は、アルファベット文字に関連付けられているキーあるいは文字位置のうち、自動訂正キーボードに含まれている1つ以上のキーあるいは文字位置に関連付けることができる。2つ以上の句読点文字が単一のキーに関連付けられているときには、意図した特定の句読点文字は、辞書に含まれている情報に基づいて明確にすることができる。従って、例えば、辞書の中の単語が、一意に決まらない句読点キーの領域におけるキー対話に対応するポジションにアポストロフィを含んでいる場合、合致アルゴリズムは、関連付けられる単語を自動的に識別し、そのキーストロークをアポストロフィとして明確に認識する。同時に、このシステムは、句読点キーの領域におけるキーの対話に先行あるいは後続するキーストロークシーケンスを別々に解析し、辞書内で最も合致する可能性の高い単語を確定し、ハイフンで結ばれた合成語が意図された可能性を計算することができる。いくつかの実施例においては、句読点、その他の記号、数字、または一般には使用されないその他の文字は、好ましくは一時的に表示される一連のテーブルにおける提示によって、個別の記号選択方式に格下げされる。そのような記号テーブルは、自動訂正領域に隣接して割り当てられているファンクションキーまたはエントリ要素によってアクセスできることが好ましい。仮想キーボードの場合には、これらの他の記号、数字、および通常用いられない文字は、自動訂正キーボードには含まれない付加的なキーによって対応することができる。
【０１４３】
別の実施例においては、付加記号機能が、自動訂正領域内の位置、または定義済みキーに関連付けられている。付加記号機能は、選択されると、適切な付加記号（フランス語におけるアクサンテギュ、日本語における濁点など）を、入力シーケンスにおける前の文字または後ろの文字に追加する。
【０１４４】
本発明の別の側面によると、各入力が受け取られると、入力シーケンスに合致する候補単語が、ディスプレイ上の単語選択肢リストにおいてユーザに提示される。本発明の別の側面によると、単語解釈は、各候補単語に対して計算された合致基準によって確定される順に提示され、従って、合致基準によって最も可能性が高いとみなされる単語がリストの最初に現れる。入力シーケンスの提案された解釈のうちの1つが選択されると、入力シーケンスは終了し、自動訂正領域内の次のキーストロークによって新しい入力シーケンスが開始される。
【０１４５】
本発明のさらに別の側面によると、1つの単語解釈のみが、ディスプレイ上、好ましくは生成されているテキストの挿入ポイントに表示される。表示される単語解釈は、合致基準に従って最も可能性が高いと認められたものである。ユーザは、特に指定されている選択入力を繰り返し起動することによって、表示された単語を、合致基準によって確定された順に提示されている代替の解釈に切り替えることができる。指定されている選択入力を一回またはそれ以上起動し、シーケンスに対する提案された解釈のうちシステムに実際に出力させる1つを選ぶことによっても、入力シーケンスが終了し、従って、自動訂正領域内での次のキーストロークによって新しい入力シーケンスが開始される。代替実施例においては、指定されている選択入力によって、表示されている単語選択肢リストにおける単語の強調表示が変化し、ユーザによって現在選択されている単語が次の動作によって出力される、またはさらに拡大されることが示される。本発明のさらに別の側面によると、指定されている選択入力によって、入力された、または単語完成処理(word completion)によって予測される複数音節のシーケンスまたは複数単語の句において、訂正または再入力する対象の1つの音節または単語が選択される。本発明のさらに別の側面によると、選択入力動作は、自動訂正キーボード領域内での、または隣接するスクロールジェスチャー（これによりリストがスクロールし、出力されるように選択されている候補単語が変更される）とすることができる。
【０１４６】
本発明の別の側面によると、対話点の各入力シーケンスに対して、各対話点に最も近い文字を識別し、識別された文字のシーケンスから成る単語を組み立てることによって、単語が構築される。次いで、この「タイプ入力したまま」の単語は、単語選択肢リストに単語選択肢として提示される。次いで、この単語を、通常の方法で、例えば、単語選択肢リスト中でそれに触れることによって、選択することができる。タイプ入力したままのエントリは、例えば、バックスペースキーを押して単語の末端から一度に1文字づつ削除することによって、編集することができる。ユーザが、タイプ入力したままの単語を選択すると、その語は自動的に受け入れられて出力され、作成中の情報に追加される。このように選択された場合、以降は、タイプ入力したままのエントリを最初に入力したときに必要であったように単語の各文字を正確に対話する必要なしに、自動訂正キーボードを使用してこのエントリをタイプ入力することができるように、タイプ入力したままの文字列を単語の辞書に含める候補として加えることができる。本発明の別の側面によると、指の下の位置に関連付けられている文字が前記自動訂正領域上でドラッグされるときに、その文字を拡大する小さなポップアップウインドウなどの表示が、タイプ入力したままの文字としてどの文字が選択されたかについての視覚的なフィードバックをユーザに提供する。前記表示は、例えば、入力位置と0.5秒以上対話することによってトリガーされる一時的な状態の間に提供することができる。本発明の別の側面によると、前記一時的な状態においては、特定の文字の選択を容易にするため、1つのタイプ入力したままの文字から次の文字へ移動するために必要な距離または速度を、デスクトップPC上のマウスの加速とは逆の方式において変更することもできる。
【０１４７】
図1Bは、ユーザが自動訂正領域106にキーストロークシーケンスを入力した後に表示される単語選択肢リスト150の好ましい実施例を示す。単語選択肢リストは、キャンセルキー152を含んでおり、キャンセルキーと対話すると、システムは、現在の入力シーケンスを破棄して単語選択肢リストをクリアし、これにより、単語選択肢リストの背後に隠れていたテキストあるいはグラフィックスが再び表示される。好ましい実施例においては、このような画面上ではなく仮想キーボード上の同等のキーは、自動訂正領域近くのキャンセル／エスケープキーである。「タイプ入力したまま」の単語154は、これらがいずれかの語彙モジュールにおけるいずれかの単語に対応するか否かにかかわらず、入力シーケンスの実際の対話点に最も近い文字のシーケンスを示す。図1Bに示されている例においては、タイプ入力したままの単語「rwzt」は英語の単語には対応しない。好ましい実施例においては、このタイプ入力したままの単語を出力するように選択すると、この単語が該当する語彙モジュールにまだ含まれていなければ、自動的にその語彙モジュールに追加される。デフォルトの単語160（図1Bの例においては「text」）は、最小の合致基準値を持つ、すなわち、この単語がユーザの意図に対応する可能性が最も高いと判断される、語彙モジュールからの単語であり、好ましい実施例においては、単語選択肢リストのうち、自動訂正領域106に最も近い最下段に示される。同様に、3つの代替の単語選択肢157が、それらの対応する合致基準値によって確定される順序でリスト中に示されている。
【０１４８】
記号モードキー116、代替文字モードキー120、およびテンキーモードキー122は、それぞれ、句読点文字および記号、アルファベット文字、および数字、の対応するキーボードを、ディスプレイスクリーンに表示させる。ユーザは、表示されたキーボードから1つまたは複数の目的の文字を選ぶことができる。このような代替キーボードが表示される前に単語選択肢リストが表示されていた場合、表示された代替キーボードからいずれかの文字を選択すると、それまで表示されていた単語選択肢リストのデフォルトの単語が出力テキスト領域104に出力された後、代替のキーボードから選択された文字が出力される。同様に、単語選択肢リストが表示されているときにスペースキー110あるいはリターンキー118と対話すると、デフォルトの単語160が出力テキスト領域104に出力された後、それぞれ、一個のスペースまたは改行文字が生成される。別の実施例においては、システムは、代替キーボードからの選択された文字に対して、対応する文字シーケンスの中にその文字を含んでいる合致するオブジェクトを探し、それをタイプ入力したままの単語に加え、それまで表示されていた単語選択肢リストのデフォルトの単語は出力しない。
【０１４９】
好ましい実施例においては、シフトキー108は、連動型シフトキーとして機能し、このキーと対話すると、自動訂正キーボード106における次の対話に関連付けられている文字が大文字として生成される。別の好ましい実施例においては、シフトキー108を二度続けて対話すると、システムが「キャプスロック」モードになり、もう一度作動させると「キャプスロック」モードがキャンセルされる。バックスペースキー112は、現在の対話シーケンスが存在する場合には、現在の対話シーケンスから最後の入力対話を削除し、現在の対話シーケンスが存在しない場合には、出力テキスト領域104の中の挿入ポイント107におけるカーソルの左側の文字を削除する。現在の入力シーケンスが存在しないとき、単語編集キー114と対話すると、システムは、挿入ポイントカーソル107を含む単語、または出力テキスト領域104における挿入ポイントカーソル107のすぐ左の単語、の文字に関連付けられている座標位置から成る現在の入力シーケンスを作成する。この結果、この単語がシステムに取り込まれ、この単語がデフォルトの単語160およびタイプ入力したままの単語154の両方として表示される単語選択肢リストが生成される。代替実施例においては、ユーザが自動訂正キーボード領域との新しい一連の対話を開始すると、システムは、挿入ポイントカーソルを含んでいる単語、または挿入ポイントカーソルに隣接している単語を使用して、現在の入力シーケンスを作成し、その新しい対話は、作成された現在の入力シーケンスに付加される。
【０１５０】
図1Cには、本発明に従って形成されている簡略化された自動訂正キーボードシステムが、表面180に投影されている仮想キーボードに関連して描かれている。このキーボードは、英語のアルファベット26文字とアポストロフィとがほぼ標準QWERTY配列で表示されている自動訂正領域を有する。
【０１５１】
図2は、システムハードウェアを明確に示す、簡略化されたキーボードのブロック図である。仮想キーボード202およびディスプレイ203は、適切なインタフェース回路によってプロセッサ201に結合されている。オプションとして、スピーカー204もプロセッサに結合される。プロセッサ201は、仮想キーボードから入力を受け取り、ディスプレイおよびスピーカーへの出力すべてを管理する。プロセッサ201は、メモリ210に結合されている。メモリは、ランダムアクセスメモリー（RAM）などの一時記憶媒体と、リードオンリーメモリ（ROM）やフロッピー（登録商標）ディスク、ハードディスク、あるいはCD-ROMなどの永久記憶媒体との組合せを有する。メモリ210は、システムの動作を管理するためのソフトウェアルーチンをすべて含んでいる。メモリは、オペレーティングシステム211と、自動訂正ソフトウェア212と、後からさらに詳しく説明されている関連する語彙モジュール213とを含んでいることが好ましい。オプションとして、メモリは、1つ以上のアプリケーションプログラム214、215、216を含んでいることができる。アプリケーションプログラムの例としては、ワードプロセッサ、辞書ソフト、および外国語翻訳ソフトが挙げられる。アプリケーションプログラムとして、簡略化された自動訂正キーボードシステムに通信補助機能を持たせる音声合成ソフトウェアを提供することもできる。
【０１５２】
本発明の別の側面によると、各入力シーケンスは、1つ以上の語彙モジュールを参照しながら処理され、語彙モジュールのそれぞれは、1つ以上の単語と、各単語に関する情報（その単語の文字数、同じ長さの別の単語に対するその単語の相対出現頻度など）とを含んでいる。これに代えて、与えられた単語が含まれている1つ以上の語彙モジュールに関する情報を、各単語と一緒に格納することもできる。
【０１５３】
1つの実施例においては、1つ以上の語幹モジュールと、接頭辞／接尾辞モジュールとが存在する。各語幹モジュールは、語尾変化しない語幹オブジェクトの論理的な編成を有し、各接頭辞／接尾辞モジュールは、語幹に付加して語尾変化する単語を形成することのできる接頭辞および／または接尾辞の論理的な編成を有する。各語幹モジュールは、1つまたは複数の接頭辞／接尾辞モジュールに関連付けられており、従って、単語評価コンポーネントは、入力シーケンス内の対話シーケンスに関して、与えられた語幹モジュール内の与えられた語幹の合致基準値として、所定のしきい値より高く順位付けされる値が計算されるときには、入力シーケンスの残りの対話を、関連付けられている接頭辞／接尾辞モジュールに関連して評価する。単語評価コンポーネントによって、関連付けられているモジュールの1つにおける与えられた接頭辞または接尾辞の合致基準値として、別のしきい値より高く順位付けされる値が計算されるときには、その接頭辞または接尾辞が語幹に付加され、語幹の合致基準値と、接頭辞／接尾辞の合致基準値の両方の関数である結合された合致基準値を持つ完全な単語が形成される。
【０１５４】
さらに、インド系言語などのいくつかの言語においては、語彙モジュールは、先行する対話と、考慮されている単語オブジェクトとが与えられたときに、対話点の周囲において可能である文字を判断するための、有効な文字シーケンスまたは単語構成要素のシーケンスの「テンプレート」を採用することができる。システムのコンポーネントは、より広いコンテキストとして、直前または直後の単語、現在のテキストにおいてユーザによって選択されている文体あるいは通常使用する文体のフォーマル度、さらには入力フィールドまたはアプリケーションのタイプなどを考慮することもでき、また、関与する語彙モジュールのみを参照する、あるいは、可能性の高い単語、語幹、接頭辞、または接尾辞の計算された合致基準値を適切に重み付けることができる。さらに、アプリケーションは、現在のコンテキストにおいて使用するための特定の語彙をシステムに供給することができる。
【０１５５】
各入力シーケンスは、入力シーケンスにおける各対話点から、各候補単語の対応するポジションにおける文字に割り当てられている点までの計算された距離を合計することにより処理され、この場合、距離は、好ましい方法のうちの1つによって計算される。この合計距離を各候補単語に関する頻度情報と組み合わせて合致基準値を計算し、その合致基準値によって候補単語を順位付けしてユーザに提示する。1つの好ましい実施例においては、合致基準は、以下のように計算される。入力シーケンス中の各対話点から、各候補単語の対応するポジションにおける文字に割り当てられている位置までの距離の二乗を計算し、各候補単語について、距離の二乗の合計を計算する。次いで、この合計に頻度調整係数を乗算し、この頻度調整係数は、1つの好ましい実施例においては、候補リスト中の単語の順位の2を底とする対数として計算する。高い相対頻度を持つ単語は、リスト中の上方の、数の小さい順位に対応する位置まで移動され、すなわち、最も頻繁に現れる単語がポジション「1」にある。従って、計算された合致基準の数値が小さいほど、与えられた単語は対話点のシーケンスを生成したときのユーザの意図に一致している可能性が高いとみなされる。
【０１５６】
本発明の別の側面においては、入力シーケンスにおける各対話点から候補単語における対応する各文字までの距離の合計に頻度調整係数を乗算する前に、一定の増分を合計に加えて、合計が少なくともその増分値と同じかまたはそれより大きくなるようにする。これは、対話点のシーケンスが、ある単語の綴りにたまたま正確に一致し、その単語がたとえきわめて低い頻度でしか生じない（つまり高い数値の順位を持っている）場合であっても、計算された合致基準値がゼロになる（すなわち合致する可能性が最も高い）ことを避けるために行われる。これにより、出現頻度がずっと高い単語では、たとえ不正確な対話点のシーケンスが入力されても、より良好な合致基準が得られる。この好ましい実施例の1つの実施形態においては、キーボードにおける隣接している文字の間の平均距離のほぼ二倍である一定の増分値は、出現頻度の低い単語との偶然の合致を減らすのに有効であることが判明した。
【０１５７】
本発明の別の側面によると、各語彙モジュールにおける単語は、同じ長さの単語から成るクラスタあるいはファイルにグループ化されて格納されている。各入力シーケンスは、入力シーケンスにおける入力の数と同じ長さの単語のグループを探索し、それらの候補単語を最良の合致基準評点により識別することによって、最初に処理される。本発明の別の側面によると、入力シーケンスと同じ長さであり、かつ合致基準評点がしきい値より高い候補単語が、しきい値数より少ない数しか識別されない場合、システムは、次に、長さN+1の単語のグループ中の各単語の最初のN文字と、N個の入力の入力シーケンスとを比較する。このプロセスは、より長い単語のグループを順次探索し、各グループ中の各単語の最初のN文字とN個の入力の入力シーケンスとを比較して、しきい値の数だけ候補単語が得られるまで継続される。従って、入力シーケンスより長い有力な候補単語を、入力シーケンスの可能な解釈としてユーザに提示し、単語の完全形を示すことができる。本発明の別の側面においては、入力シーケンス中の各対話点から、現在の入力シーケンスより長い候補単語における対応する最初の文字のそれぞれまでの距離の合計に頻度調整係数を乗算する前に、その合計が、現在の入力シーケンスの長さに正確に一致する長さを持つ単語に対して計算される距離の合計より大きくなるように、第二の一定の増分が合計に加えられる。これは、長さが正確に一致する単語に、相対的に高い合致確率を割り当てるために行われる。別の好ましい実施例においては、この第二の増分係数は、候補単語と現在の入力シーケンスとの長さの差の関数である。
【０１５８】
本発明の別の側面によると、語彙モジュールの処理効率を向上させるために、自動訂正領域における仮想キーボード上に関連付けられている各文字に、除外境界が割り当てられる。このような境界のそれぞれは、対話点から文字までの距離が計算されない領域を識別し、入力シーケンスにおけるその対話点については文字が考慮から除外され、これによって距離計算プロセスに必要な計算量が減少する。いくつかの文字の除外境界が、共通の境界セグメントのすべてまたは一部を共有してもよい。共有される境界の例としては、自動訂正領域の最端部、あるいは自動訂正キーボードが2つ、3つ、またはそれ以上の大きなクラスタ領域に細分化されるように文字領域中に引かれた境界線全体が挙げられる。このことは、概念的には、与えられた対話点に対する除外境界として、その境界の外側の文字が、その入力点に対して合致するかの考慮から除外される境界を考えることと同じである。例えば、図3は、ほぼ等しいサイズの3つのクラスタ領域301、302、303に縦に分割されている横長の長方形から成る、自動訂正領域300を示しており、これらの領域は、各文字が3つのクラスタ領域のうちの1つのみに含まれるように定義されている。クラスタ領域は、自動訂正領域の各対話点に対して、3つの領域のうちの少なくとも1つ、しばしば2つがその対話点の除外境界の完全に外側に位置するように定義される。例えば、領域301の左側の対話点311は、領域302から十分に離れており、領域302（および領域303）における文字のすべてが、対話点311の除外境界の外側に位置すると定義することができる。反対に、領域301の右側の対話点312に対する除外境界は、領域302における1つ以上の文字がその境界の内側に位置すると考えられるため、領域302に拡張され、従って、対話点312の除外境界の完全に外側となる唯一の領域は、領域303である。領域302の中心にある対話点313の除外境界は、領域301および領域303の両方から十分に離れていると考えられるため、領域301および領域303の両方の領域における文字はすべて境界の外側にあると定義することができる。
【０１５９】
さらに、このようなクラスタ領域は、対話点の入力シーケンスに対して1つ以上の語彙モジュールの中で合致する可能性の最も高い単語をシステムが識別する効率を高めるために使用される。図3に描かれている上述されている例においては、領域の順序対として9とおりがあるため、各語彙モジュールの中のある長さの単語を、各単語の最初の二文字のそれぞれが見つかるクラスタ領域に基づいて、9つまでの異なるサブグループに分割することができる。なお、一文字から成る単語の処理に最適化は必要ではなく、なぜなら、必要な計算は非常にわずかであり、各文字を一文字の「単語」として扱ったとしても一文字の単語の数が極めて少ないためである。最初の2つの対話点のそれぞれについては、クラスタ領域のうちの1つあるいは2つの中の文字を考慮から除外することができ、その結果、除外された領域における文字に関連付けられているサブグループ内の単語のすべてを、何らの距離計算を実行する必要なしにスキップすることができる。従って、語彙モジュールの中の単語の最初の2つの文字のポジションに対する3つの領域におけるすべての文字の頻度分布が、多かれ少なかれ等しいと仮定すると、システムは、第二の対話点を受け取った時点で、最も多くて候補単語のうちの4/9について（1つのクラスタ領域のみが各対話点に対する考慮から除外される場合）、最も少なければ候補単語のうちの1/9について（2つのクラスタ領域が各対話点に対して除外される場合）、距離を計算して比較するのみでよい。この分野における通常の技術を有する者には明らかであるように、この方法は、クラスタ領域の数がより多い、またはより少い、あるいは最初の対話点の数が異なっている場合にも使用でき、相応の結果が得られる。例えば、4つのクラスタ領域を使用し、候補単語を最初の2つの対話点に基づいた16のサブグループに分割することもできる。
【０１６０】
本発明の別の実施例においては、文字または機能のサブセットが、自動訂正キーボードの外側の一意に定義されている領域またはキーに関連付けられ、この場合、これらの領域内の入力は、特定の文字または機能（例：選択されたときに明白に一個のスペースを生成するスペースキー）の明示的な入力として解釈される。そのような一連の定義済みキーについては、入力シーケンスの直後、かつ入力シーケンスに対してシステムによって提示された解釈のいずれかを明示的に選択する前に、そのようなキーを選択すると、各候補単語に対して計算された合致基準に従って最も可能性が高いとみなされる入力シーケンスの解釈が自動的に受け入れられる。その入力シーケンスが終了し、自動訂正領域内の次のキーストロークによって新しい入力シーケンスが開始される。入力シーケンスの所望の単語の解釈が確定されてシーケンスが終了すると、システムは、自動的にその単語を出力し、構築されている情報にその単語が加えられる。特定の機能、例えば、バックスペース機能の場合には、関連付けられている領域内の入力は、バックスペース機能の明示的な入力と解釈され、ただちに実行される。しかしながら、この場合には、その結果として入力シーケンスが終了することはなく、シーケンスから最後の（最も新しい）入力が単に削除される。多くの実施例においては、自動訂正キーボードの外側のキーは、キーに関連付けられている一意の文字または機能に従ってただちに解釈される、または実行される。関連付けられている文字または機能に応じて、場合によっては、結果として現在の入力シーケンスが終了する。
【０１６１】
本発明の別の側面によると、本システムでは、仮想キーボードのうち、自動訂正領域を表示するために使用される領域と、自動訂正キーボードの外側の一意に定義される他の領域またはキーを表示するために使用される領域と、において生じる2つの異なるタイプの対話が区別される。第一のタイプの対話は、「タップ」イベントから成り、仮想キーボードと対話したとき、対話の最初の点からある限られた距離を超えることなく対話が終了する。このタイプのイベントは、本開示に記述されているような簡略化された自動訂正キーボードシステムを対象とするキーストロークとして処理される。第二のタイプの対話はストロークイベントから成り、この場合、仮想キーボードと対話したときに、対話点が、タップイベントを定義する限られた距離しきい値を超えて1つ以上の方向に移動する。この第二のタイプの対話は、この分野において周知である手法を用いたストローク認識システムを使用することによって処理できる。これにより、プルダウンメニューを起動する、あるいは余分なキーを定義する（これにより余分なスクリーンスペースが必要となる、あるいはキーのサイズが小さくなる）ことなく、ユーザが多くの補助機能あるいは特殊文字にアクセスできるようになる。その後、そのようなストロークの解釈と、認識されたストロークに関連付けられている結果としての文字または機能は、自動訂正キーボードの外側の一意に定義されている領域あるいはキーの1つを起動したときと同じように、システムによって処理される。このように、キーボードに基づいた入力方法と、ストローク認識の入力方法の両方に対応するために必要であるのは、利用可能な仮想キーボードの限られた領域のみである。
【０１６２】
本発明の別の側面によると、ストローク認識システムによって認識される各文字は、既知の文字位置までの距離ではなく、文字形状テンプレートとの類似性に基づく、独自の計算された合致基準値を持つことができる。システムは、その値を等価の距離値に変換し、そのような認識された文字として、各ストロークイベントの1つ以上の可能な文字解釈（相対値を有する）、または、文字の既知の位置から距離0として記録されている明示的なエントリ、あるいは、シーケンスにおける対応するポジションにおけるその文字を含むオブジェクトとして単語評価コンポーネントにおいて合致する明示的なエントリを入力シーケンスに組み込む。
【０１６３】
本発明の別の側面によると、システムは、特定のユーザの仮想キーボードとの対話のスタイルに対する動的な調整を行うため、タップイベントの付加的な処理を実行する。ユーザが、ある点に近づくジェスチャによって仮想キーボードと対話する、すなわち、スタイラスまたは指が仮想キーボードと対話し、検出可能な距離だけ移動する前に持ち上げる場合、ユーザがキーボードと対話しようとした場所に関して大きなあいまいさは存在しない。しかしながら、スタイラスが面から持ち上げられるまでに多少なりとも移動する場合、ジェスチャーの間に対話された点のうち、ユーザが対話しようとした点を最適に表す点に関してあいまいさが存在する。すなわち、最適に表す点が対話の最初の点であるのか、スタイラスまたは指が持ち上げられた最後の点であるのか、あるいは対話の経路に沿った別の点であるのかである。好ましい実施例においては、システムは、各対話によってなぞられる経路を、対話の経路の両端の点と、対話経路に沿ったゼロ個以上の等間隔の点とを含む、N個の対話点のセットとして記録する。例えば、Nが3に設定されている実施例においては、このセットには、両端の点および経路の中間点が含まれるであろう。最初に、記録された点の各セットの1つの点が、自動訂正キーボードにおける文字までの距離を計算するときの対話点を表すのに使用される座標として指定される。例えば、好ましい実施例においては、各セットに記録された対話の始点が、すべての距離計算において対話点を表すために使用される座標として指定される。単語が単語選択肢リストからの出力のために選択されるたびに、選択された単語の各文字から、他のセットの記録された点のそれぞれまでの距離計算が繰り返される。例えば、Nが3に設定されており、対話の開始点に対して計算が実行されるときには、一連の中間点と、一連の終端点に対して計算が繰り返される。計算される距離が最小になる点のセットは、その後の各対話シーケンスに対する単語選択肢リストを作成するときの距離計算すべてにおいて、対話シーケンスの点を表すために座標が使用される点のセットとして指定される。別の好ましい実施例においては、点のセットそれぞれに対して実行された距離計算の移動平均が計算され、その移動平均が最小である点のセットが、単語選択肢リストを生成する際の距離計算に使用される。
【０１６４】
別の好ましい実施例においては、意図された対象の文字から指定された点までの水平および垂直方向の正負符号付きオフセットの移動平均が計算され、単語選択肢リストを生成する際に距離計算に使用される座標値が、この符号付きオフセットの平均、またはこのオフセットの一定の割合によって調整される。従って、ユーザが、意図する文字のやや左下において仮想キーボードと常に対話する場合、システムは、自動的に調整し、意図された文字を平均的により正確に予測することができる。
【０１６５】
さらに、自動訂正領域が平らな面でない場合、あるいは、特定の一部の領域または文字がそれ以外の領域または文字よりもエラーとなりやすい場合、あるいは、表示または投影が適切でないか歪んでいる場合、あるいは、対話検出技術によって記録される入力が不均一である場合、システムは、水平および垂直オフセットのみの場合よりも高度な方法において、不正確さのパターンに対して調整を行うことができる。例えば、システムは、各クラスタ領域または個々の文字それぞれを独立して調整することができる。ユーザが入力と単語選択肢リストからの単語選択を繰り返すときに、各対話点と、意図された文字の既知の位置との間の差を、各文字の水平／垂直方向符号付きオフセットの移動平均に含めることができる。
【０１６６】
本発明の別の側面によると、自動訂正領域における仮想キーボードに関連付けされている各文字には、受け持ち領域が割り当てられる。このような領域のそれぞれは、ユーザ入力から文字までの距離に値0が割り当てられて距離計算プロセスが単純化される領域を識別する。このような領域のサイズは、異なる文字および機能に対して異なっていてもよい。例えば、代表的な用例集の中で相対的に高い頻度で出現する文字には、より大きな領域を割り当てることができる。1つの実施例においては、文字に割り当てられるこの領域は、仮想キーボード上で明確な境界が定められて文字が割り当てられている定義済みのキーに単純に対応する。
【０１６７】
システムは、特に、キーボードがあらかじめ印刷されていない場合、文字の領域を動的に変化させることができる。システムは、ユーザ自身の語彙または使用パターンに基づいて、より頻出する文字にはより大きな領域を割り当てることにより、それらのあいまいさを低減させる、あるいは、文字を移動させたりその領域の形状を変えることによって、不正確さの調整が何度も行われていることを視覚的に反映させることができる。
【０１６８】
別の実施例においては、仮想キーボードの配置は、いくつかの定義済みキーに複数の文字が関連付けられている電話のキーパッドに似ている。各クラスタ内の文字は同じ領域にマッピングされており、その領域内のユーザ対話に対しては、すべての文字に距離0が割り当てられる。このようにして、自動訂正キーボードシステムは、定義済みキーの最大数が制限されている場合、あるいはこのキーボード配列により慣れているユーザの利便性のため、携帯電話用のテキスト入力システムT9（登録商標）に似た、あいまいなテキスト入力もサポートすることができる。距離計算プロセスでは、距離0の文字を同等に扱い、T9モデルにより近い、あいまいさバイアス(ambiguity bias)を作成するが、望ましい単語に対して入力された位置に誤ったキーが関連付けられている場合には自動訂正が依然として可能である。
【０１６９】
簡略化された自動訂正キーボードシステムの動作は、自動訂正ソフトウェア212によって管理され、このソフトウェアは、部分的には、対話点と様々な候補文字との間の距離に基づいている。本発明の1つの実施例においては、キーストロークまでの距離の計算を単純化するために、自動訂正キーボードにおける各文字にデカルト座標が割り当てられている。従って、自動訂正キーボードにおける対話点と様々な候補文字の位置との間の距離は、単純なデカルト座標距離分析により計算される。本発明の別の実施例においては、計算を単純化する（なぜなら平方根を計算する必要がない）ことと、より離れた対話点に非線形の重み付けを適用することの両方を目的として、単純なデカルト座標距離の二乗が使われる。別の実施例においては、距離計算において、自然対数あるいは離散ステップのような他の非線形関数が、単独で、あるいはデカルト座標距離分析との適切に重み付けされた組合せとして利用される。
【０１７０】
さらに、別の好ましい実施例においては、x方向およびy方向の距離が、異なって重み付けられる。このように距離計算を修正することは、単語の選択を単純化する、処理の要件を軽減する、あるいは、与えられたシステムおよびその実施形態の特別な必要性に応じて、入力の規則的な偏差に対応するうえで役立つ。例えば、3行の文字キーによってQWERTYキーボード配置が表示されている仮想キーボードの場合には、キーボードの間違った行と対話するという重大な誤りはそれほど発生しない。この場合、Y軸に沿った垂直距離について、X軸に沿った水平距離より大きく重み付けすることができる。
【０１７１】
さらに、言語の代表的な用例集において、ある文字がどれくらい頻繁に使用されるかに応じて、またはキーボードの中心または端に対するその文字の相対位置に応じて、自動訂正キーボード上の文字間の間隔は均一でなくてもよい。これに代えて、十分な計算リソースが利用可能であるときには、1つ以上の文字に、キーボードが対話された点の座標位置からのキーの距離を計算する上での基準点として使用される、複数の対応する座標位置を割り当てることもでき、この場合、距離は、対話点から、そのような割り当てられている基準座標のうち最も近い基準座標までの距離として計算される。これにより、面が非線形的に対話された点までの計算された距離が小さくなり、結果的に、文字を囲む領域として、その領域内における対話点を含んでいる対話シーケンスが、対応するポジションにその文字を持つ単語と合致する可能性が高い領域、のサイズが増す傾向にある。
【０１７２】
さらに、文字の座標を、キーボードのキーによって共有されていない位置に割り当てる、あるいは、センサによって直接検出することができる。これにより、対話点を検出するときの解像度が低い仮想キーボードを使用して、システムを実施することができる。さらに、同じ仮想キーボードを使用して、ユーザの希望に応じてキーボードを再構成することも可能である。例えば、キーボードの複雑さを軽減する、あるいは新規のキーボード配列を動的に再割当できるようにするために、1列、2列、3列、あるいはそれ以上のセンサの列を、通常のQWERTYレイアウトの3行の文字に使用することができる。一例としては、9文字3行を7文字4行に変えることである。従って、ある文字キーに割り当てられている座標位置を、キーボードとの対話を検出して解決することのできる最も近い2つ以上の点の間に配置させてもよい。この場合、検出できる対話点および割り当てられている文字位置からの距離は、仮想キーボードより解像度の細かい論理座標系に内挿することにより計算される。
【０１７３】
このシステムの1つの好ましい実施例においては、ある候補単語のうちいくつの文字が、事前に設定されている距離しきい値（maximum_key_distance）よりも対応する入力対話点から離れていてもよいかの制限を設定することにより、処理のさらなる最適化が達成される。この事前に設定されたしきい値maximum_key_distanceが、MAX_DISTANCE_VALUE（そのシステムで使用されている距離測定アルゴリズムによって計算できる最大の距離値）以外の値に設定される場合、第二のしきい値over_max_distance_limitは、対応する入力対話点からmaximum_key_distanceよりも遠く離れていてもよい、ある候補単語における最大文字数に設定される。
【０１７４】
図4A〜図4Kは、ユーザが不正確なキーストロークシーケンスを効率的に利用することを助けるために単語選択肢リストを生成して管理する、自動訂正ソフトウェア212のメインルーチンの好ましい実施例の流れ図を示す。
【０１７５】
図4Aは、メイン処理ルーチンを示す。システムは、最初に起動されると、ブロック4105において、単語選択肢リストおよび現在の入力シーケンスの両方を空の状態に初期化する。次いで、システムは、ブロック4110において、仮想キーボード202からのキーストロークの受け取りを待つ。キーストロークを受け取ると、システムは、ブロック4115において、受け取ったキーストローク対話点の座標x/yが、自動訂正領域106の境界内に位置しているかを判断する。位置していない場合、ブロック4120に示されているプロセスが、図4Iの流れ図に示されているように行なわれ、このプロセスでは、システムは対話点x/yを含んでいる定義済みのキー領域に関連付けられている特定の文字または機能を処理する。ブロック4115において、受け取ったキーストローク対話点x/yが、自動訂正領域106の境界内に位置している場合、ブロック4130において、シーケンスの長さkを1だけ増加させ、点x/yを、k番目の入力として現在の入力シーケンスの最後に付加する。次いで、ブロック4140において、システムは、key_distanceテーブルのエントリKDikを、k番目の入力点x/yから、自動訂正キーボードにおける個々のキーKiの周囲上の最も近い点までのデカルト距離の二乗に設定し、x／yがキー領域Kiの内側であるときには、KDikを0に設定する。ブロック4150において、語彙モジュール213の1つ以上の単語に現れる有効な文字である個々の可能な文字Cjについて、各文字値Cjを対応するキーKiに対応付ける変換テーブルcharacter_mapを使用して、character_distanceテーブルのk番目の行の各要素CDjkを、k番目の入力x/yから、個々の可能な文字Cjに対応するキーKiまでの距離の二乗KDikに設定する。これにより、合致基準を計算するときに使われる距離は、（key_distanceテーブルにおいてKDikが設定されるときに）一度だけ計算され、同様に、変換テーブルcharacter_mapは、character_distanceテーブルがkey_distanceテーブルから埋められるときに一度だけ使用される。これによって、語彙モジュールの単語を処理する際に繰り返される多くの計算の効率が、大幅に向上する。
【０１７６】
決定ブロック4160において、変数maximum_key_distanceを調べ、それがMAX_DISTANCE_VALUE以外の値に設定されているかを判断する。設定されている場合、ブロック4170において、語彙モジュールの単語を探索する際に、x/y入力に近いキーに対応付けされている文字に合致する可能性の低い順にx/y入力を処理することができるように、補助の索引配列を並べ替える。この順序で処理されるように入力x/yを並べ替えることにより、入力シーケンスに対して語彙モジュールを処理するのに必要な全計算量が最小化される傾向となり、なぜなら、並べ替えにより、すべての入力が処理される前に、1つ以上のx/y入力が、対応するキーからのmaximum_key_distanceより大きい可能性が増し、このような入力の数がover_max_distance_limitを超えた時点で、その単語はもはや候補ではなくなり、残りの入力を処理する必要がなくなるためである。
【０１７７】
図4Kは、与えられたx/y入力に近い1つのキーに対応付けされている文字が合致する可能性を計算する方法の好ましい実施例を示す。語彙モジュールと一緒にテーブルcharacter_frequenciesが含まれており、このテーブルにおいて、要素character_frequenciesijは、語彙の中の任意の単語のj番目の文字として見つかるすべての文字（これらはcharacter_mapにおいてキーKiに対応付けされている）の相対頻度の合計を含んでいる。ブロック41110において、現在の入力x/yに対するmatch_probabilitykを0に初期化する。ループ41120の中では、決定ブロック41130において、キーKiが入力x/yからのmaximum_key_distance以下である場合、ブロック41140において、match_probabilitykを、character_frequenciesijの値を距離（KDik+1）で割った値だけ増加させ、このとき、ゼロでの除算を回避し、かつ各character_frequenciesijを適切にスケーリングするために、距離KDikを1だけ増加させる。すべてのキーがループ41120において処理されると、ブロック41150において、配列key_indexの中の索引1.kを、各入力に対して計算されたmatch_probabilitykの値の小さい順に並べ替える。
【０１７８】
図4Aに戻って、ブロック4180において、新しい単語選択肢リストを、長さkの現在の入力シーケンスに基づいて計算する。
【０１７９】
図4Bは、新しい単語選択肢リストを計算するための好ましい実施例を示す。ブロック4210において、以前に計算された単語選択肢リストをすべてクリアする。ブロック4220において、現在の入力シーケンスが2つ以上の入力を含んでいる場合、ソフトウェアは、シーケンスの最初の2つの入力の座標位置に基づいて、3つのクラスタ領域のどれを考慮から除外できるかを判断する。ブロック4230において、除外されたクラスタ領域に基づいて、語彙モジュールにおける各単語リストの9つの可能なサブグループのうち、現実に処理する必要のある単語のサブグループを識別する。次いで、ブロック4240において、これらの識別されたサブグループのみを処理し、単語選択肢リストに示す候補単語を識別する。
【０１８０】
図4Cは、自動訂正領域の内側の対話点から成るキーストロークの入力シーケンスを入力したときのユーザの意図に合致する可能性が最も高い単語の単語選択肢リストを構築する目的で、識別されたサブグループがどのように処理されるかを示す。ブロック4305は、ブロック4310から、ループ終了のためのブロック4380における検査までのループの範囲を定義している。ブロック4380において、識別されたサブグループの1つに属し、かつまだ処理されていない、長さk（入力シーケンスの現在の長さ）の単語がさらに存在しているかを検査する。存在していない場合、ブロック4385において、システムは、単語リストが埋められたかと、リスト内の各単語に対して計算された合致基準の値が所定のしきい値より小さいかとを検査する。YESである場合、単語リストは、合致する可能性の高い選択肢で埋められたとみなされ、ブロック4395において、プロセッサは図4Bのブロック4260に戻る。NOである場合、ブロック4390において、システムは、識別されたサブグループの1つに属しており、かつまだ処理されていない、kより長い任意の長さの単語がさらに存在するかを検査する。存在しない場合、ブロック4395において、プロセッサはブロック4260に戻る。
【０１８１】
ブロック4310において、次に処理される単語が語彙モジュールから得られると、ブロック4315において、入力シーケンスからその単語までの重み付けされた距離の合計値を変数word_distanceに入れることができるように、word_distanceをゼロに設定する。次いで、ブロック4320において、単語の文字のうち、入力シーケンスにおける対応する対話点からその単語までの距離が、事前に設定されている最大しきい値maximum_key_distanceより大きい文字の数を、変数over_max_distance_countによって数えることができるように、over_max_distance_countをゼロに設定する。
【０１８２】
次いで、ブロック4330において、単語は図4Dに示されているように処理される。ブロック4410は、ブロック4420からブロック4490（現在のシーケンスにおけるk個の入力のそれぞれが処理されたときにループ終了検査を行う）までのループの範囲を定義しており、ループカウンタiを1に初期化する。ブロック4420において、変数next_keyを次の索引配列値key_indexiに設定し、この値は、計算されたkey_distanceがしきい値maximum_key_distanceを最も超えそうな入力から処理が開始されるように、図4Jに従って並べ替えられたものである。次いで、ループカウンタiをインクリメントする。ブロック4430において、入力シーケンスにおける各対話点から、語彙モジュールの任意の単語において生じる個々の可能な文字までの距離を含んでいる、上述したように計算されてすでに配列CDに格納されている対応する値に、key_distanceを設定する。決定ブロック4440において、key_distanceがしきい値maximum_key_distanceを超える場合、ブロック4450において、over_max_distance_countをインクリメントし、決定ブロック4455において、over_max_distance_countを検査し、そのような入力の最大値over_max_distance_limitより大きいかを判断する。大きい場合、ループ4410が早期に終了し、ブロック4490で戻される正しくない単語距離は意味がなく、なぜなら、この単語がさらに考慮されることはないためである。決定ブロック4440においてkey_distanceがしきい値maximum_key_distanceを超えていない場合、または決定ブロック4455においてover_max_distance_countがしきい値over_max_distance_limitを超えていない場合、ブロック4460において、key_distanceが合計され、現在の単語に対して計算されている合計word_distanceとなる。このプロセスは、決定ブロック4470において入力がすべて処理されたと判断されるまで、入力シーケンスにおける各対話点に対して繰り返される。このプロセスがブロック4490から戻ったときには、現在の単語に対してword_distanceが正確に計算されている、または、over_max_distance_countがしきい値over_max_distance_limitを超えているかのいずれかであり、現在の単語はさらなる考慮から除外される。
【０１８３】
図4Cに戻って、決定ブロック4335において、over_max_distance_countを検査し、現在の単語が考慮から除外されるかを判断し、除外される場合、実行はブロック4380に進み、単語処理ループ4305を終了すべきかを検査する。除外されない場合、決定ブロック4340において、現在の単語の長さが入力の数より大きい場合、ブロック4345において、計算されたword_distanceを、一定量wrong_length_additive_factorだけ増大させる。
【０１８４】
別の好ましい実施例においては、wrong_length_additive_factorを、単語における文字数と、入力シーケンスにおける対話点の数との差の関数として計算する。いずれの場合にも、処理はブロック4350に戻り、word_distance値が0である単語が生じないように、word_distanceを一定量all_word_additive_factorだけ増大させ、従って、単語について計算されたmatch_metricは、語彙モジュールのリストにおける相対的な優先順位を反映している。ブロック4355において、その単語に対するmatch_metricの値を求めるために、計算されたword_distanceと組み合わせて重み係数として使用する乗算係数(multiplicative factor) idx_multiplierを計算する。図4Cに示されている好ましい実施例においては、idx_multiplierは、自身が属すリストにおける単語の順位の数値索引の二進表現において、1に設定されている最高位ビットのビットポジションとして計算される。この値は、0〜31の範囲をとり、0が最も高いビットポジション、31が最も低いビットポジションに対応する。ブロック4360において、この値を1だけインクリメントし、これにより、使用される乗法係数は1以上となり、従って、0でないword_distanceのすべてが結果として0でないmatch_metric値となる。
【０１８５】
決定ブロック4370において、match_metricが、単語選択肢リスト内の最も悪い（すなわち最も高い）match_metric評点より小さい場合、現在の単語を単語選択肢リストに挿入する。match_metricが、完全な単語選択肢リスト内の最も悪いmatch_metric評点に等しいかそれ以上である場合、現在の単語を無視する。決定ブロック4380において、現在の入力シーケンスと同じ長さkの未処理単語がある場合、ブロック4310に戻る。決定ブロック4380において、長さkの処理すべき単語が見つからない場合、決定ブロック4385において、それぞれが所定のしきい値より小さいmatch_metric値を有する、条件に合致する単語が定数個（1つの好ましい実施例においては、定数個は4つの単語である）だけ単語選択肢リストに含まれているかを検査する。決定ブロック4385において、定数個の合致する単語が単語リストにまだ含まれていないことが判明した場合、ブロック4390において、システムは、現在の入力シーケンス長さkより長い単語が残っているかを判断し、残っている場合、ブロック4310から実行を継続する。単語の検査は、決定ブロック4385において、単語選択肢リストが合致する単語によって埋まっていることが判明するまで、または決定ブロック4390において、検査するさらなる単語がもはや存在しないことが判明するまで、継続される。
【０１８６】
図4Bに戻り、ブロック4260において、単語選択肢リストが処理される。
【０１８７】
図4Eは、単語選択肢リストを処理するための好ましい実施例を示す。ブロック4510において、入力された文字列のキーの数に長さが等しい単語が、単語選択肢リスト内の最も妥当な選択肢として提示されるように、単語選択肢リストに選ばれた単語を、単語の長さの短い順に並べ替える。ブロック4520において、より小さいmatch_metric値を持つ単語が、最も妥当な選択肢として提示されるように、同じ長さの単語の各グループを、各単語に対して計算されたmatch_metric値の小さい順に並べ替える。
【０１８８】
例えば、文字「i」および「e」の正しい順序がしばしば逆にされた英単語など、既知の誤った綴りとしてマークされた単語を語彙モジュールに含めることができる。1つの好ましい実施例においては、このような誤って綴られた単語が、語彙モジュールからの候補単語として識別され、単語選択肢リストに含まれている場合、ブロック4540において、それらを単語リストにおいて対応する正確に綴られた単語に置き換えることができるように、それらにフラグが立てられる。同様に、関連付けられている単語の選択時に出力される他のテキスト文字列、または関連付けられている単語の選択時に実行されるよう指定されている機能、に関連付けられている省略形またはマクロとしてフラグが立てられた単語を、語彙モジュールに含めることができる。このようなマクロも、ブロック4540において、単語選択肢リストにおいて、対応する関連付けられているテキスト文字列に置き換えられる。ブロック4560において、各文字に対応するキーストロークが実行されたときに有効であったシフト状態に従って、単語選択肢リスト内の単語のすべての文字に適切なシフト状態を適用し、該当する文字を大文字または小文字のうち適切な形に変える。ブロック4580において、単語選択肢リストにおける重複した単語を、優先順位の最も低い重複語を除去することによって削除する。
【０１８９】
本発明の別の側面によると、本発明の入力方式を実施するソフトウェアアプリケーションが、既存のデバイスにインストールされる。このアプリケーションをデバイスにインストールするとき、あるいはテキストメッセージまたはその他のデータを受け取ったときには継続的に、辞書に加えるべき単語について既存の情報ファイルが走査される。そのような情報ファイルを走査する方法は、当技術分野において周知である。走査中に新しい単語が見つかると、それらは出現頻度の低い単語として辞書構造に加えられ、従って、単語が関連付けられている単語リストの最後に置かれる。新しい単語が走査中に検出される回数に応じて、関連付けられているリスト内でその単語を昇格させることによって、その語には他と比較して高い優先順位が割り当てられ、情報の入力時に単語選択肢リストにその単語が現れる可能性が増す。
【０１９０】
本発明の別の側面によると、単語の辞書は、受け入れられる可能性のある類似の単語と対にされている好ましくない単語(offensive word)の付録を有し、これにより、好ましくない単語を入力したとき、たとえタイプ入力したままの文字位置が好ましくない単語である場合にも、タイプ入力したままフィールドには関連付けられている受け入れ可能な単語のみが格納され、条件が満たされれば、単語選択肢リストに提示される。意図した文字の正確な位置でキーボードと対話することに注意を払いすぎないことによってより速くタイプできることをユーザが認識すれば、この機能により、ユーザの意図に反して選択肢リストに現れうる好ましくない単語の出現を排除することができる。単語選択肢リストを表示するソフトウェアルーチンは、タイプ入力したままの単語列を表示する前に、当技術分野において周知の手法を用いて、現在のタイプ入力したままの文字列を好ましくない単語の付録と比較し、合致が見つかると、表示文字列を関連付けられている受け入れ可能な単語に置き換える。合致が見つからない場合、好ましくない単語がきわめて出現頻度の低い単語として扱われていても、その単語の文字のそれぞれが直接対話されたときには、その好ましくない単語がタイプ入力したままの単語として表示される。これは、標準のキーボードで好ましくない単語を偶然にタイプ入力することに似ているが、本発明のシステムは、ユーザがより低い精度でタイプ入力することができ、さらにはより低い精度でタイプ入力するよう奨励されるように設計されている。この機能は、ユーザが例えばシステムメニューの選択を通じて有効または無効にすることができる。
【０１９１】
また、当業者には、例えば、法律用語、医学用語および外国語を含む語彙モジュールなど、付加的な語彙モジュールをコンピュータにおいて使用可能にできることも認識されるであろう。ユーザは、付加的な語彙単語が、可能な単語リスト中の最初あるいは最後に特別な色あるいは強調表示で表示されるように、システムメニューによってシステムを設定することができ、あるいは、直前に選択された1つ以上の単語がどの語彙モジュールによって供給されたかに基づいて、システムが単語の順序を自動的に切り替えることができる。従って、本発明を、添付の請求項の範囲内において、本文書に具体的に記載されている以外の方法で実施できることが理解されるであろう。
【０１９２】
図4Bを経て図4Aに戻って、単語選択肢リストがユーザに提示され、メインルーチンは、ブロック4110において、タッチスクリーン202からの次のキーストロークを待機する。キーストロークを受け取り、ブロック4115において、受け取ったキーストローク対話点が自動訂正領域106の境界の外側にあるとシステムが判断すると、ブロック4120のプロセスが、図4Iに示されるように実行される。ブロック4910において、定義済み領域に関連付けられている文字または機能を識別する。決定ブロック4920において、単語選択肢リストが空である場合、ブロック4925において、その定義済みキー領域に関連付けられている1つ以上の文字を生成する、または、定義済みキー領域に関連付けられている機能を実行し、ブロック4970において、システムは図4Aに戻る。その時点において1つ以上の単語が単語選択肢リストに表示されている場合、決定ブロック4930において、キーストロークのx/y座標が単語選択肢リスト領域150の中であるかを判断する。中である場合、ブロック4935において、システムは単語選択肢リストからの単語選択処理を行う。
【０１９３】
本発明の別の側面によると、ユーザは、入力したキーストロークシーケンスを区切るためにスペースキーを押す。本システムは、スペースキーを受け取った後、最も頻繁に用いられている単語を選択し、構築中の情報にその単語を加える。スペースキーは、入力されたシーケンスを区切るために使用される。
【０１９４】
本発明の別の側面によると、単語選択肢リストは、1行につき1つの候補単語が縦に並べられたリストとして提示され、各行は、複数の領域またはカラムにさらに分割されている。これらの領域またはカラムは、選択された行に表示されている候補文字列の受け入れに関連する機能を定義し、例えば、後置スペースを含める／含めない、句読点を添える、発音区別アクセント記号を適用するなどである。この機能は、ユーザが、単語選択肢リスト内の意図した文字列の行の中の、目的の機能に関連付けられている領域またはカラムに含まれている点に触れたとき、あるいは、表示されている領域またはカラムに対応する領域における同等の対話動作を仮想キーボードに対して実行したときに、適用することができる。ユーザが、特定の領域あるいはカラムの中の行と対話することによって所望の候補単語を選択すると、その単語は、出力されるように自動的に「受け入れられ」、作成されている情報に加えられる。例えば、後置スペースの付加に関連付けられている領域において行と対話すると、関連付けられている単語が後置スペースを伴ってただちに出力される。
【０１９５】
本発明の別の側面によると、このような1つの領域あるいはカラムは、領域内の行と対話したときに、実際の対話点の現在の入力シーケンスを、選択された行の単語を有する文字の座標位置に対応する対話点のシーケンスに置き換える（ただし現在の入力シーケンスは終了させない）機能が呼び出されるように、定義される。この結果として、選択された単語は、入力シーケンスのタイプ入力したままの解釈として選択肢リストに表示される。ほとんどの場合、選択された単語は、入力シーケンスの最も可能性が高い単語解釈としても表示されるが、単語の文字のそれぞれが、はるかに頻繁に現れる単語の文字に近い場合には、その頻繁に現れる単語が、最も適切な単語解釈として表示される。
【０１９６】
代替実施例においては、単語選択肢リストには、選択された単語を含んでいる単語のみが表示され、追加の入力それぞれの後に合致した単語も含まれる。入力シーケンスを終了させることなく、意図した単語の文字の座標位置として入力シーケンスを再定義するこの機能により、ユーザは、次いで、例えば、単語に添える所望の語尾変化あるいは接尾辞を続けてタイプ入力することができる。意図した単語の出現頻度が相対的に低く、特に所望の語尾変化または接尾辞を伴うことがまれにしか見られない場合、この機能により、ユーザは、頻度が低い単語の所望のまれに生じる形を、単語の各文字を注意深くタイプ入力する必要なしに容易にタイプ入力することができる。単語の語尾変化なしの形が、選択肢リストにおける関連付けられている行の中の、この機能に関連付けられている領域と対話することによって選択される場合、必要となる付加的な選択ステップは1つのみである。
【０１９７】
本発明の別の側面によると、音声認識などの代替の入力モードを使用して、単語選択肢リストから単語を選択することができる。リスト中に2つ以上の可能性の高い単語解釈が見つかった場合、選択コンポーネントは、それ以外の候補を除外し、代替の入力モードに合致する可能性の高い単語解釈のみを表示し、この場合、オプションとして、計算された合致基準値が低すぎて最初に選択肢リストに入らなかった解釈も含める。本発明の別の実施例によると、指定されている選択入力によって、合致した、または単語完成処理を使用して予測される複数音節のシーケンスまたは複数単語の句において、訂正または再入力する対象の1つの音節または単語が選択されるとき、自動訂正キーボードまたは代替入力モード（音声認識あるいは手書き認識など）のいずれかを使用して、その音節あるいは単語を訂正あるいは再入力することができる。
【０１９８】
図4Jは、単語選択肢リストの選択処理として、領域154、157、または160内での対話を登録するための好ましい実施例を示す。ブロック41010において、単語選択肢リストの中の対話された行および関連付けられている単語を識別する。ブロック41020において、単語選択肢リストにおける対話されたカラムと、そのカラムに関連付けられている機能Fcolを識別する。図1Bに示されている好ましい実施例においては、異なる3つのカラムが定義されており、すなわち、カラムマーカ170の左側に1つ、カラムマーカ172の右側に1つ、カラムマーカ170と172の間に1つである。決定ブロック41030において、機能Fcol（図1Bに示されている好ましい実施例においては、カラムマーカ172の右側のx/y位置に対応する）が、入力シーケンスを選択される単語のx/y位置の新しいセットに置き換えるステップから成るかを判断する。YESである場合、ブロック41032において、入力シーケンスを、選択された単語の文字に対応するx/y位置のシーケンスに置き換え、ブロック41034において、新しい単語選択肢リストが図4Bに示されるように生成される。機能Fcolが入力シーケンスを置き換えない場合、単語選択肢リストから選択された単語の処理を継続する。ブロック41040において、選択された単語の優先順位を調整する。
【０１９９】
別の実施例においては、単語選択肢リストは、1つ以上の行において単語が隣り合って横に並べられており、アプリケーションのテキスト領域の下部に沿ってなど、従来の領域に表示される、あるいは、仮想キーボードの上部に沿って投影されている。別の実施例においては、リスト内の各単語または語幹近くの印により、その語幹に基づく完全形を、リストのエントリに適用される指定された選択入力によって表示して選択できることをユーザに知らせることができる。次の単語選択肢リストのポップアップには、その語幹のみが含まれている単語のみが表示され、さらなる完了形が示される。単語は、本文書に記載されている任意の方法によって、選択する、あるいは接尾辞などを付加し、水平対垂直の向きを適切に調整することができる。
【０２００】
本発明の別の側面によると、ユーザがシステムを使用している間、辞書は「昇格アルゴリズム」によって自動的に修正され、このアルゴリズムは、単語がユーザによって選択されるたびに、その単語に関連付けられている相対頻度を少しずつ増加させることにより、辞書内でその単語を昇格させる。1つの好ましい実施例においては、昇格アルゴリズムは、選択された単語に関連付けられている頻度の値を相対的に大きな増分だけ増加させる一方で、選択されなかった単語の頻度値を非常に小さな減分だけ減少させる。単語がリスト中に現れる順序によって相対頻度情報が示される辞書の場合、昇格は、選択された単語を、リストの先頭からの距離のある割合だけ上方へ移動させることによって行われる。昇格アルゴリズムは、最も一般に使用される単語、および非常に使用頻度の低い単語が、それらの元の位置から極端に大きく移動することが回避されるように設計されている。1つの好ましい実施例においては、これは、選択された単語が昇格される距離の割合(fraction of the remaining distance)を、リスト全体における現在の相対的なポジションに応じて変えることにより達成される。例えば、リストの中央の範囲にある単語は、各選択に伴って最大の割合だけ昇格される。選択された単語の、辞書における昇格前の位置と昇格後の位置との間にある単語は、値1だけ降格される。「単語リストの質量」の保存が維持され、従って、リストの単語の相対頻度に関する情報が維持され、リストに必要とされる記憶域が増すことなく更新される。
【０２０１】
本発明の別の側面によると、昇格アルゴリズムは、選択された単語の頻度を増加させ、かつ該当する場合、選択されない単語の頻度を減少させるという操作の両方を行う。例えば、リスト中に単語が現れる順序によって相対頻度情報が示される辞書においては、リスト中のポジションIDXに現れている選択された単語は、ポジション（IDX/2）に移動される。これに対応して、リスト中のポジション（IDX/2）から（IDX+1）までの単語は、リストにおける1つ下のポジションに移動される。対話点のシーケンスが処理され、計算された合致基準値に基づいて単語選択肢リストが生成されたときに、ユーザによって選択された単語より上位に1つ以上の単語がある場合、それらの単語はリスト中で降格される。選択肢リストにおいてより上位に現れているが選択されない単語は、不当に高い頻度を割り当てられている（すなわち、リスト中で高すぎる位置に現れている）と推定することができる。最初にポジションIDXに現れていたこのような単語は、例えば、それをポジション（IDX*2+1）に移動させることによって降格される。このように、出現頻繁が高いと考えられる単語ほど、より少ない数のポジションだけ移動される、すなわち降格が小さい。
【０２０２】
本発明の別の側面によると、昇格と降格のプロセスは、ユーザによる動作への応答のみによってトリガーさせることができ、あるいは、ユーザの入力に応じて異なる方式で実行することができる。例えば、選択肢リストにおいてユーザが意図した単語より上方にある単語は、ユーザがスタイラスまたはマウス、あるいは仮想キーボードにおける同等の対話動作を使用して、意図した単語をクリックし、単語選択肢リストにおける第一位の位置までドラッグすることによって選択したときのみに、降格される。これに代えて、選択肢リストにおけるより高いポジションまで手動でドラッグされた選択された単語を、通常より大きな係数だけ昇格させることができる。例えば、昇格される単語は、ポジションIDXからポジション（IDX/3）に移動される。この分野における通常の技術を有する者には、多くのこのような変形が明らかであろう。
【０２０３】
図4Fは、単語選択肢リストから単語が選択されるときに、単語の優先順位を調整する好ましい実施例を示す。決定ブロック4610において、選択肢から選択された単語が、タイプ入力したままの単語、すなわち、x/y位置が対話点のシーケンスにたまたま正確に対応している文字列（好ましい実施例においては、単語選択肢リストの中の個別の位置に表示される）であるかを判断し、例えば、図1Bにおいては、リストにおいてタイプ入力したままの単語154（図示されている例では「rwzt」）が他の語と実線によって分けられている。選択された単語が、項目157または160など、タイプ入力したままの単語ではない場合、ブロック4620において、図4Gに示される好ましい実施例のように、選択された単語を昇格させ、ブロック4630において、単語選択肢リスト中で、選択された単語より上位に現れている単語のそれぞれを明示的に降格し、これは、図4Hに示される好ましい実施例のように、単に別の単語が昇格された結果として1つ以上の単語が降格されるのとは対照的である。
【０２０４】
ブロック4610において、選択された単語が、タイプ入力したままの単語であると判断された場合、決定ブロック4640において、その単語が語彙モジュールにまだ含まれていない新しい単語であるかを識別する。新しい単語ではない場合、ブロック4650において、選択された単語を昇格させる。選択されたタイプ入力したままの単語が語彙モジュールにまだ含まれていない場合、ブロック4660において、その単語を加えるべき適切な単語リストを識別する。決定ブロック4665において、その適切な単語リスト内に利用可能な空間があるかを識別し、空間がない場合、ブロック4670において、その単語を追加するための余地を作るため、その適切な単語リスト中で最も可能性の小さい最後の単語を削除する。ブロック4675において、その新しい単語を、適切な単語リストにおける最も可能性の小さい単語として加え、次いで、ブロック4680において、新たに追加された単語を昇格させ、単語選択肢リストに現れた他の単語は明示的に降格させない。
【０２０５】
図4Gは、ブロック4620、4650、および4680において実行される単語の昇格の好ましい実施例を示す。ブロック4710において、選択された単語の、単語リスト内でのポジションを識別し、そのポジション値をidxに割り当てる。ブロック4720において、new_idxをidxの値の半分として定義し、リストにおける現在のポジションからリストの先頭（すなわち最も選択される可能性があると考えられる単語のポジション）までの間の1／2のポジションを指定する。ブロック4730において、idxとnew_idxの間のポジションにある単語すべてをポジション1つだけ降格し、これにより、選択された単語の元のポジションidxに別の単語が入り、選択された単語が入るための余地がnew_idxに生じる。次いで、ブロック4740において、選択された単語を、リスト中のポジションnew_idxに挿入することによって昇格させる。なお、昇格のこの好ましい方法には、本質的に、ブロック4355において単語に対して計算されたidx_multiplierを1だけデクリメントする効果がある。
【０２０６】
図4Hは、ブロック4635において実行される単語の明示的な降格の好ましい実施例を示す。ブロック4810において、明示的に降格させる単語の、単語リスト内でのポジションを識別し、そのポジション値をidxに割り当てる。ブロック4820において、new_idxを、idx値の2倍に1を加えた値として定義する。決定ブロック4830において、new_idxの値を、単語リスト中の単語の総数と比較する。new_idxが単語リスト中の単語の合計数より大きい場合、リストの最後より下に単語を降格させることができないため、ブロック4835において、単語リスト中の単語数と等しい値にnew_idxを設定する。ブロック4840において、idxとnew_idxの間のポジションにおけるすべての単語をポジション1つだけ昇格させ、これにより、降格させる単語が元あったidxの場所に別の単語が入り、降格させる単語が入る余地がnew_idxに生じる。次いで、ブロック4850において、選択された単語を、リストにおけるポジションnew_idxに挿入することによって降格させる。なお、降格のこの好ましい方法には、本質的に、ブロック4355においてその単語に対して計算されたidx_multiplierを1だけインクリメントする効果がある。
【０２０７】
図5A〜図5Eは、図1A、図1B、図2、図6、および図7に示されているような、本発明に従って形成された簡略化された自動訂正キーボードシステム100を組み込んだ携帯コンピュータ102の好ましい実施例において、単語を入力する説明例としての文字入力のシーケンスを示す、概略図である。携帯コンピュータ102は、タッチスクリーンディスプレイ103または仮想キーボード（図6および図7を参照）に実施されている簡略化されたキーボード105を含んでおり、このキーボード105は、テキスト表示領域104に出力されるテキストを生成するために使用される。
【０２０８】
図5Aは、単語「text」の入力に対応するキーストロークシーケンスの最初のキーストロークの位置510を示す。自動訂正キーボードシステムは、キーストローク501に応答して、テキスト領域104の上に重ねられた単語選択肢リスト領域150を表示し、この領域は、キーストロークに対応する単語およびその他の解釈のリストを示している。この例においては、キーストロークの座標位置510は、文字「r」に関連付けられている座標位置に物理的に最も近い。単語選択肢リストは、デフォルトの選択肢として「R」511を含んでおり、これは単語選択肢リストのうち、自動訂正領域106に最も近いポジションに示されている。長さが1文字のみである「単語」として現れる場合、文字「r」は、「R」が人の名前の一部として含まれるイニシャルとして現れる場合など、大文字としてより頻繁に見つかるため、「R」は単語選択肢リストに大文字で提示される。これは、本発明の側面によるものであり、すなわち、入力された単語の大文字使用を指定するためにユーザがシフトキーなどのキーを作動させる必要なしに、大文字を使用した好ましい形で単語が提示されるように、語彙モジュールには、各単語の大文字の使用に関する情報が単語と共に格納されている。本発明の側面によると、1つ以上の文字の任意のシーケンスに1つの単語または記号を関連付けることができ、従って、関連付けられている文字のシーケンスがユーザによって入力されると、その単語または記号が単語選択肢リストの選択肢として提示され、この場合、単語選択肢リストは、次の最も適切な選択肢として「are」512を示している。この例においては、単語「are」は、英語で同じに発音される1つの文字「r」の「マクロ」展開として関連付けられている。同様に、単語選択肢リストは、3番目に適切な選択肢として「（登録商標）」513を示し、この記号は、文字「r」との論理的な関連付けに基づいて語彙モジュールに含まれていたものである。単語選択肢リストは、4番目に適切な選択肢として「a」514を示す。「a」は非常に一般的に現れる一文字単語であり、従って、たとえ文字「a」に関連付けられている座標位置が対話位置501から相対的に離れていても、単語選択肢リストに文字「a」が候補として表示される。選択オプションとして「r」515を表示している「タイプ入力したまま」領域は、これらの選択肢より上にあり、なぜなら、文字「r」に関連付けられている座標位置が、他のいずれの文字よりもキーストロークの座標位置510に近いためである。
【０２０９】
図5Bは、文字「w」に関連付けられている座標位置に最も近い、次のキーストロークの位置520を示す。単語選択肢リストは、デフォルトの選択肢としての「re」521、次に最も適切な選択肢としての「Re」522、3番目に適切な選択肢としての「ra」523、および4番目に適切な選択肢としての「Rs」524を含んでいる。これらの選択肢より上に、選択のオプションとして「rw」525を表示している「タイプ入力したまま」領域がある。
【０２１０】
図5Cは、文字「z」に関連付けられている座標位置に最も近い次のキーストロークの位置530を示す。単語選択肢リストは、デフォルトの選択肢としての「tax」531、次に最も適切な選択肢としての「Rex」532、3番目に適切な選択肢としての「fax」533、4番目に適切な選択肢としての「was」534を含んでいる。これらの選択肢より上に、選択のオプションとして「rwz」535を表示している「タイプ入力したまま」領域がある。
【０２１１】
図5Dは、文字「t」に関連付けられている座標位置に非常に近い、次のキーストロークの位置540を示す。単語選択肢リストは、デフォルトの選択肢としての「text」541、次に最も適切な選択肢としての「year」542、3番目に適切な選択肢としての「rest」543、および4番目に適切な選択肢としての「fact」544を含んでいる。これらの選択肢より上に、選択のオプションとして「rwzt」545を表示している「タイプ入力したまま」領域がある。単語「text」が次の単語として入力される。
【０２１２】
図5Eは、「スペース」キーとして指定された領域における次のキーストローク550を示す。スペースキーは自動訂正領域106の外側であり、従って明白に特定の機能に関連付けることができる。スペースキーは、デフォルトの単語「text」541を受け入れて、テキスト出力領域104の中の生成中のテキストにおける、カーソルが最後に置かれていた挿入点107に、単語「text」542を入力するように動作する。同時に、現在の入力シーケンスがクリアされ、テキスト出力領域104全体が見えるように、単語選択肢リストの表示が、携帯コンピュータ102のディスプレイスクリーン103から除去される。
【０２１３】
図5Fは、キーボードが表面580に投影される、本発明の非スクリーン型の実施例を示している、図5Aと同じ概略図である。
【０２１４】
ユーザとコンピュータ、PDA、ビデオゲーム、携帯電話、その他との新しい対話方式を提供するさまざまな入力デバイスが登場している。上述されているように、そのようなデバイスには精度および指の位置合わせの問題があり、これらが目的とするデータエントリ入力機能には一般に適さないものになっている。本発明は、上述されているように、そのようなデバイスによって有用なデータ入力を達成するうえでの問題の解決策を提供する。
【０２１５】
図6は、本文書に開示されている本発明と一緒に使用するためのレーザー投影キーボードを示している概略図である。例えば、VKB社（http://www.vkb.co.il/を参照）およびCanesta社（http://www.canesta.com/を参照）などの会社によって提供されているレーザー投影キーボードは、スマートフォン、携帯電話、PDA、あるいはその他のモバイルデバイスまたはワイヤレスデバイスに完全に統合することのできる投影キーボードである。レーザー投影キーボードは、小さなレーザーパターン投影器62を使用して、標準サイズのキーボードのイメージ63を、ユーザ61とデバイス60との間の都合のよい平らな面64（テーブルの表面、ブリーフケースの側面など）に投影する。ユーザは、このイメージ上でタイプ入力することができ、ユーザの指の動きが、関連付けられている電子認識技術によって、（ワイヤレスデバイスあるいはモバイルデバイスによって容易に使用される）通常の連続的なキーストロークデータに変換される。レーザー投影キーボードによって提供される利点は、親指キーボードあるいは手書き認識など、普及はしているが、タイプ入力頻度の高いアプリケーション（文書およびメモの作成、電子メール作成など）をサポートする能力が限られている、入力に関する現在の解決策を考えるときに最も理解される。レーザー投影キーボードでは、これまで標準サイズのメカニカルキーボードを使用することによってのみ実用的であったアプリケーションを、モバイルデバイスまたはワイヤレスデバイスがサポートすることができる。
【０２１６】
さらに別の実施例は、トレイテーブル上の仮想キーボードと、背もたれまたはアームレストのディスプレイとを有する機内システムである。キーボードは、レーザーによって投影し、母国語または出身地域に基づいてユーザが容易に選択することができ、かつ上述されている電子認識技術を使用するものか、あるいは、トレイテーブルまたはプレイスマットに印刷し、従来の光学認識技術を使用して指の動きとキーの位置とを追跡するものとすることができる。トレイテーブルは背もたれに対してスライドして傾くため、システムがキーボードを配置または追跡できるようにするための、トレイテーブル上の1つ以上の位置合わせマークを使用することができる。
【０２１７】
図7は、本文書に開示されている本発明と一緒に使用するための筋肉検出キーボードを示している概略図である。Senseboard（登録商標）仮想キーボード（例：http://www.senseboard.com/を参照）などの筋肉検出キーボードは、一般には、ユーザの手のひらに取り付けられるパッドを備えた一対のハンドモジュール71から成る。筋肉検出キーボードでは、ユーザは、標準キーボードの物理的な制約なしにタイプ入力することができる。この種類の仮想キーボードは、一般に、センサー技術および人工知能（パターン認識など）を使用して、ユーザがタイプ入力している文字を認識する。キーボードは、指の動きを検出し、それらを、タッチタイピングを行う人が例えば標準QWERTYキーボードを使用するときの状況に関連付ける。次いで、このように生成された情報を、例えばモバイルデバイス（携帯情報端末（PDA）あるいはスマートフォンなど）に、例えばケーブルまたはBluetooth無線接続を使用して転送する。
【０２１８】
さらに別の仮想キーボードは、ファブリックキーボード（例：http://www.electrotextiles.com/を参照）である。そのようなキーボードは、厚さ約1mmのファブリック構造の中に3本の検出軸（X、Y、Z）を提供する。この技術は、ファブリックセンサーと、電子システムおよびソフトウェアシステムとの組合せである。結果のファブリックインタフェースは、適用されるアプリケーションの要件に従ってデータを供給する。センサーの3つの動作モードとして、位置検出（X−Yポジショニング）、圧力測定（Z検出）、スイッチアレイが含まれている。従って、指の押圧など圧力点の位置を、インタフェースのX−Yポジショニング機能を使用して検出するキーボードを構築することができる。このシステムは、ファブリックが折れている、シワが生じている、あるいは伸びている場合にも機能する。1つのファブリックスイッチを使用して、スイッチマトリクス機能を提供することができる。例えばキーボード機能を実施する目的で、任意の構成におけるスイッチ領域の位置を識別する解釈ソフトウェアが使用される。
【０２１９】
図8は、本文書に開示されている本発明と一緒に使用するための視線追跡キーボードを示している概略図である。このようなシステムにおいては、ユーザの目の動き80が、追跡デバイス82によって追跡され、本文書に開示されている本発明に従って動作するシステム83によって確定される選択肢が、モニター81に表示される。
【０２２０】
本発明の好ましい実施例が示されかつ説明されたが、本発明の精神および範囲から逸脱せずに、様々な変更を行うことができることが理解されるであろう。例えば、当業者には、キーボード105およびその自動訂正領域106を様々な方法で構成することができ、また、様々な数の明示的な機能キー108〜122を備えていることができることが認識されるであろう。本文書に開示されている自動訂正手法は、異なるサイズのキーボード、様々なサイズの従来のメカニカルキーボード、タッチパネルおよびタッチスクリーンに基づいたキーボードにも、等しく適用可能である。提示される単語選択肢の数、単語選択肢の配置、単語選択肢リストのさまざまな領域に関連付けられている機能など、単語選択肢リスト150の特定の形式は、変更することができる。例えば、当業者には、特定のアプリケーションにおいては、入力シーケンスを、選択された単語のx/y位置の新しいセットに置き換える機能を省略できることが理解されるであろう。さらに、語彙モジュール内の単語を昇格および降格させるのに使用される特定のアルゴリズムも、変更することができる。例えば、上述されている好ましい実施例において使用されている係数6ではなく、リストの先頭までの距離の1/2だけ単語を移動させることにより、選択された単語を昇格させることができる。
【０２２１】
さらに、仮想キーボードは、テレビ、ヘッドアップディスプレイ、網膜投影システムなどの出力デバイスを有することもでき、これによって、図1a−1bに示されているものなど、ディスプレイ／キーボードを提供することができる。さらに、本発明は、投影されるイメージおよびカメラとを有するスマートサーフェス(smart surface)、超音波デバイス、あるいは、ユーザの対話を検出するその他のデバイスに組み込まれている仮想キーボードを有することができる。さらに、ユーザ対話は、ユーザの意図を表すことのできる任意のジェスチャーあるいはその他の動き、例えば、手または指の動き、その他の身体部分の動き、目の動き、脳波の検出などを有することができる。これにより、仮想キーボードは、障害を持つ人の特殊なニーズに適する任意のデバイスを含んでいる。さらに、本発明は、文字およびそのようなオブジェクトに加えて、またはそれらの代わりに、句、または句の一部の作成に適用することができる。従って、本発明は、添付の請求項によってのみ限定されるものとする。
【図面の簡単な説明】
【０２２２】
【図１Ａ】入力キーストロークを自動的に訂正する、本発明の簡略化されたキーボードシステム、を組み込んでいる携帯コンピュータの好ましい実施例の概略図である。
【図１Ｂ】ユーザが自動訂正領域において一連のキーストロークを入力した後に表示される単語選択肢リストの実施例を示している、図1Aと同じ概略図である。
【図１Ｃ】本発明の非スクリーン型の実施例を示している、図1Bと同じ概略図である。
【図２】図1Aおよび図1Bの簡略化されたキーボードシステムのハードウェアブロック図である。
【図３】入力キーストロークを自動的に訂正する、本発明の簡略化されたキーボードシステムの自動訂正領域の好ましい実施例の概略図であり、3つのクラスタ領域への分割と、3つの対話点の例を示している。
【図４Ａ】キーストロークの入力シーケンスに応答して生成すべき意図されたテキストを確定するソフトウェアの好ましい実施例の流れ図を示す。
【図４Ｂ】キーストロークの入力シーケンスに応答して生成すべき意図されたテキストを確定するソフトウェアの好ましい実施例の流れ図を示す。
【図４Ｃ】キーストロークの入力シーケンスに応答して生成すべき意図されたテキストを確定するソフトウェアの好ましい実施例の流れ図を示す。
【図４Ｄ】キーストロークの入力シーケンスに応答して生成すべき意図されたテキストを確定するソフトウェアの好ましい実施例の流れ図を示す。
【図４Ｅ】キーストロークの入力シーケンスに応答して生成すべき意図されたテキストを確定するソフトウェアの好ましい実施例の流れ図を示す。
【図４Ｆ】キーストロークの入力シーケンスに応答して生成すべき意図されたテキストを確定するソフトウェアの好ましい実施例の流れ図を示す。
【図４Ｇ】キーストロークの入力シーケンスに応答して生成すべき意図されたテキストを確定するソフトウェアの好ましい実施例の流れ図を示す。
【図４Ｈ】キーストロークの入力シーケンスに応答して生成すべき意図されたテキストを確定するソフトウェアの好ましい実施例の流れ図を示す。
【図４Ｉ】キーストロークの入力シーケンスに応答して生成すべき意図されたテキストを確定するソフトウェアの好ましい実施例の流れ図を示す。
【図４Ｊ】キーストロークの入力シーケンスに応答して生成すべき意図されたテキストを確定するソフトウェアの好ましい実施例の流れ図を示す。
【図４Ｋ】キーストロークの入力シーケンスに応答して生成すべき意図されたテキストを確定するソフトウェアの好ましい実施例の流れ図を示す。
【図５Ａ】本発明の簡略化されたキーボードシステムを組み込んでいる携帯コンピュータの好ましい実施例において単語を入力するときの連続的な文字入力を、説明上の一例として示している概略図である。
【図５Ｂ】本発明の簡略化されたキーボードシステムを組み込んでいる携帯コンピュータの好ましい実施例において単語を入力するときの連続的な文字入力を、説明上の一例として示している概略図である。
【図５Ｃ】本発明の簡略化されたキーボードシステムを組み込んでいる携帯コンピュータの好ましい実施例において単語を入力するときの連続的な文字入力を、説明上の一例として示している概略図である。
【図５Ｄ】本発明の簡略化されたキーボードシステムを組み込んでいる携帯コンピュータの好ましい実施例において単語を入力するときの連続的な文字入力を、説明上の一例として示している概略図である。
【図５Ｅ】本発明の簡略化されたキーボードシステムを組み込んでいる携帯コンピュータの好ましい実施例において単語を入力するときの連続的な文字入力を、説明上の一例として示している概略図である。
【図５Ｆ】本発明の非スクリーン型の実施例を示している、図5Aと同じ概略図である。
【図６】本文書に開示されている本発明と一緒に使用するためのレーザー投影キーボードを示している概略図である。
【図７】本文書に開示されている本発明と一緒に使用するための筋肉検出キーボードを示している概略図である。
【図８】本文書に開示されている本発明と一緒に使用するための視線追跡キーボードを示している概略図である。
【符号の説明】
【０２２３】
60  デバイス
61  ユーザ
62  レーザーパターン投影器
63  キーボードのイメージ
64  平らな面
71  ハンドモジュール
80  目の動き
81  モニター
82  追跡デバイス
83  システム
100  自動訂正キーボードシステム
102  携帯コンピュータ
103  ディスプレイ
104  テキスト表示領域
105  簡略化されたキーボード
106  自動訂正領域
107  挿入ポイント
108  シフトキー
110  スペースキー
112  バックスペースキー
114  単語編集キー
116  記号モードキー
118  リターンあるいは入力キー
120  代替キーボードモードキー
122  テンキーモードキー
150  単語選択肢リスト領域
152  キャンセルキー
154  「タイプ入力したまま」単語
157  代替の単語選択肢
160  デフォルトの単語
170,172  カラムマーカ
201  プロセッサ
202  仮想キーボード
203  ディスプレイ
204  スピーカー
210  メモリ
211  オペレーティングシステム
212  自動訂正ソフトウェア
213  語彙モジュール
214,215,216  アプリケーションプログラム
300  自動訂正領域
301,302,303  クラスタ領域
311,312,313  対話点
501  キーストローク
510,520,530,540  キーストロークの座標位置
511,521,531,541  デフォルトの選択肢
512,522,532,542  次に最も適切な選択肢
513,523,533,543  3番目に適切な選択肢
514,524,534,544  4番目に適切な選択肢
515,525,535,545  「タイプ入力したまま」領域
550  次のキーストローク
580  表面
【図１Ａ】
2007538299.tif 000003
【図１Ｂ】
2007538299.tif 000004
【図１Ｃ】
2007538299.tif 000005
【図２】
2007538299.tif 000006
【図３】
2007538299.tif 000007
【図４Ａ】
2007538299.tif 000008
【図４Ｂ】
2007538299.tif 000009
【図４Ｃ−１】
2007538299.tif 000010
【図４Ｃ−２】
2007538299.tif 000011
【図４Ｄ】
2007538299.tif 000012
【図４Ｅ】
2007538299.tif 000013
【図４Ｆ】
2007538299.tif 000014
【図４Ｇ】
2007538299.tif 000015
【図４Ｈ】
2007538299.tif 000016
【図４Ｉ】
2007538299.tif 000017
【図４Ｊ】
2007538299.tif 000018
【図４Ｋ】
2007538299.tif 000019
【図５Ａ】
2007538299.tif 000020
【図５Ｂ】
2007538299.tif 000021
【図５Ｃ】
2007538299.tif 000022
【図５Ｄ】
2007538299.tif 000023
【図５Ｅ】
2007538299.tif 000024
【図５Ｆ】
2007538299.tif 000025
【図６】
2007538299.tif 000026
【図７】
2007538299.tif 000027
【図８】
2007538299.tif 000028
【手続補正書】
【提出日】平成19年2月26日(2007.2.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のアルファベット文字を有する自動訂正領域を含んでいる仮想キーボードを有するユーザ入力デバイスであって、前記複数の文字のうちの1つまたは複数の文字が、前記自動訂正領域における既知の座標に対応しており、ユーザが前記自動訂正領域において前記ユーザ入力デバイスと対話するときに、ユーザ対話に関連付けられる位置が確定され、かつ、前記確定された対話位置が、対話位置の現在の入力シーケンスに追加される、前記ユーザ入力デバイスと、
複数のオブジェクトを含んでいるメモリであって、1つまたは複数のオブジェクトが、単語または単語の一部を形成する、1つまたは複数の文字の文字列を有する、前記メモリと、
出力デバイスと、
前記ユーザ入力デバイスと、前記メモリと、前記出力デバイスとに結合されているプロセッサであって、当該プロセッサが、
前記対話の入力シーケンスにおける確定された対話位置に対して、前記対話位置と、前記自動訂正領域における1つまたは複数の文字に対応する前記既知の座標位置との間の一連の距離値を計算する距離値計算コンポーネントと、
生成された入力シーケンスに対して、各ユーザ動作の意図された文字を確定する際に、先行するユーザ動作および後続のユーザ動作の両方に関する情報を使用するメモリ内の1つまたは複数の候補オブジェクトを識別し、前記1つまたは複数の識別された候補オブジェクトについて、前記計算された距離に基づいて合致基準を計算することによって、前記識別された候補オブジェクトを評価し、かつ、前記評価された候補オブジェクトを、前記計算された合致基準値に基づいて順位付けする、単語評価コンポーネントと、
1つまたは複数の候補オブジェクトを、それらの評価された順位に従って識別し、前記識別されたオブジェクトを前記ユーザに提示し、かつ、前記提示されたオブジェクトのうち、前記出力デバイスに出力する1つを前記ユーザが選択できるようにする、選択コンポーネントと、
を有する、前記プロセッサと、
を有する、テキスト入力システム。
【請求項２】
前記複数のメモリ内オブジェクトの1つまたは複数が、オブジェクトの1つまたは複数の定義済みグループにさらに関連付けられており、かつ、
前記単語評価コンポーネントが、生成された入力シーケンスについて、前記メモリ内オブジェクトの1つまたは複数の候補グループを識別することによって、合致基準が計算されるオブジェクトの数を制限し、かつ、オブジェクトの前記1つまたは複数の識別された候補グループに関連付けられている1つまたは複数のオブジェクトについて、前記計算された距離値に基づいて合致基準を計算し、かつ、前記評価された候補オブジェクトを、前記計算された合致基準値に基づいて順位付けする、
請求項１に記載のシステム。
【請求項３】
前記アルファベット文字が、前記自動訂正領域においてほぼ標準のQWERTYレイアウトに配列されている、請求項１に記載のシステム。
【請求項４】
当該自動訂正領域が、1つまたは複数の句読点文字および／または発音区別記号に関連付けられている1つまたは複数の既知の位置を含んでおり、当該メモリが、当該自動訂正領域内の位置に関連付けられている前記1つまたは複数の句読点文字および／または発音区別記号を含んでいる1つまたは複数のメモリ内オブジェクトを含んでいる、請求項１に記載のシステム。
【請求項５】
メモリ内オブジェクトが、1つまたは複数のモジュールにさらに関連付けられており、各モジュールが、1つまたは複数の共通の特性を持つ一連のオブジェクトを有するかまたは生成する、請求項１に記載のシステム。
【請求項６】
前記単語評価コンポーネントが、前記入力シーケンスにおける各対話位置から、前記候補オブジェクトの対応するポジションにおける文字に割り当てられている位置までの計算された距離値を合計することによって、各候補オブジェクトの合致基準を計算する、請求項１に記載のシステム。
【請求項７】
前記オブジェクトに関連付けられている使用頻度に従って重み関数を適用するステップ、
をさらに有する、請求項１に記載のシステム。
【請求項８】
前記自動訂正領域における1つまたは複数の位置が、水平座標および垂直座標によって定義されており、かつ、対話位置と、文字に対応する既知の座標位置との間の距離値が、水平成分および垂直成分を有し、当該水平成分および垂直成分のうちの少なくとも一方が、前記文字から前記対話位置までの距離を計算するときに、重み係数によって調整される、請求項６に記載のシステム。
【請求項９】
メモリ内の候補オブジェクトに関連付けられている前記使用頻度が、他のメモリ内オブジェクトに対する前記オブジェクトの順位を有する、請求項7に記載のシステム。
【請求項１０】
前記単語評価コンポーネントが、前記候補オブジェクトに関連付けられている前記使用頻度に従って重み関数を適用する前に、前記距離値の合計に増分値を加える、請求項６に記載のシステム。
【請求項１１】
メモリ内オブジェクトが、同じ長さのオブジェクトを有するグループに前記オブジェクトが分類されるように格納されている、請求項２に記載のシステム。
【請求項１２】
前記単語評価コンポーネントが、前記入力シーケンスにおける入力の数と同じ長さのオブジェクトの候補グループを最初に識別することによって、合致基準が計算されるオブジェクトの数を制限する、請求項１１に記載のシステム。
【請求項１３】
前記入力シーケンスにおける対話位置と、前記自動訂正領域内の、文字に対応する既知の座標位置との間の計算された距離値のうち、距離しきい値を超えている値それぞれについて、メモリ内オブジェクトのうち、当該入力シーケンスにおける当該対話位置の前記ポジションに対応する、当該オブジェクトの文字のシーケンスにおけるポジション、に当該文字が現れている、1つまたは複数のメモリ内オブジェクトについて、当該オブジェクトが、選択のためのユーザへの提示から除外されるオブジェクトとして、前記単語評価コンポーネントによって順位付けされる、請求項６に記載のシステム。
【請求項１４】
前記メモリ内オブジェクトの1つまたは複数の前記識別された候補グループは、選択のためのユーザへの提示から除外されているオブジェクトを有し、オブジェクトの当該1つまたは複数の識別された候補グループにおける各オブジェクトの距離値の計算された合計に含まれている、前記計算された距離値の少なくとも1つが、距離しきい値を超えている、請求項２に記載のシステム。
【請求項１５】
前記自動訂正領域における既知の位置に対応する文字に対して、1つまたは複数の当該既知の位置のまわりに領域が事前定義されており、当該定義済み領域内にある入力対話位置と、当該定義済み領域内の前記既知の文字位置との間の距離が、ゼロとして計算される、請求項１に記載のシステム。
【請求項１６】
前記自動訂正領域における既知の座標を有する少なくとも1つの位置が、複数の文字に対応しており、当該複数の文字のうちの1つまたは複数が、さまざまな発音区別記号を含んでおり、前記複数の文字が、1つの基本文字の異形を有し、かつ、メモリ内オブジェクトが、それらの正しいアクセント記号付き文字と一緒に格納されている、請求項１に記載のシステム。
【請求項１７】
前記選択コンポーネントが、ユーザが選択するための前記識別された1つまたは複数の候補オブジェクトを候補オブジェクトリストに提示する、請求項１に記載のシステム。
【請求項１８】
前記選択コンポーネントが、最も高く順位付けされる候補オブジェクトを識別し、前記識別されたオブジェクトを、前記候補オブジェクトリストの最初のポジションに提示する、請求項１7に記載のシステム。
【請求項１９】
前記自動訂正領域の外側の対話に関連付けられている文字をユーザが選択すると、確定されたオブジェクトが受け入れられ、当該文字が出力される、請求項１に記載のシステム。
【請求項２０】
出力させるオブジェクトをユーザが選択すると、前記自動訂正領域内の次の対話によって新しい入力シーケンスが開始されるように、現在の入力シーケンスが終了する、請求項１に記載のシステム。
【請求項２１】
候補の選択が、代替の入力モードによって行われる、請求項１に記載のシステム。
【請求項２２】
前記現在の入力シーケンスのユーザ入力が、異なるモードの組合せによって行われる、請求項１に記載のシステム。
【請求項２３】
ユーザ入力エラーの訂正において、代替の入力モードが使用される、請求項１に記載のシステム。
【請求項２４】
前記選択コンポーネントが、候補オブジェクトを選択するために使用されている特殊な選択方式を検出し、かつ、当該特殊な方式によってオブジェクトが選択されたことを検出した時点で、前記システムが、実際の対話位置の現在の入力シーケンスを、前記選択されたオブジェクトを有する文字の座標位置に対応する対話位置の入力シーケンスに置き換え、かつ、前記自動訂正領域における次の対話が、前記現在の入力シーケンスに付加される、請求項１に記載のシステム。
【請求項２５】
当該特殊な選択方式が、当該選択されたオブジェクトが含まれている候補以外のすべての候補を除外する、請求項２４に記載のシステム。
【請求項２６】
予測された／受け入れられた句または文における単語の選択および／または編集が、特殊な選択方式によって行われる、請求項１に記載のシステム。
【請求項２７】
前記単語評価コンポーネントが、対話位置の入力シーケンスにおける確定された対話位置のそれぞれについて、文字に対応する最も近い既知の位置を確定し、かつ、対話位置の前記入力シーケンスに対応する順序での、当該確定された対応する文字から成る、タイプ入力したままのオブジェクトを構築する、請求項１に記載のシステム。
【請求項２８】
タイプ入力したままのオブジェクトの文字の追跡の視覚的なフィードバックを提供する手段、
をさらに有する、請求項２７に記載のシステム。
【請求項２９】
精度を高めるための比例型スケーリングを提供する手段、
をさらに有する、請求項２８に記載のシステム。
【請求項３０】
前記選択コンポーネントが、最も高く順位付けされる候補オブジェクトを識別し、前記識別されたオブジェクトを前記出力デバイスに提示する、請求項１に記載のシステム。
【請求項３１】
前記テキスト入力システムが、オブジェクト選択機能に関連付けられている領域を含んでおり、当該領域との対話によって、前記出力デバイス上に提示されている前記オブジェクトが、前記識別された1つまたは複数の候補オブジェクトのうち次に高く順位付けされているオブジェクトに置き換えられる、請求項３０に記載のシステム。
【請求項３２】
前記テキスト入力システムが、削除機能に関連付けられている削除キー領域を有し、現在の入力シーケンスが少なくとも1つの対話を含んでおりかつ当該削除キー領域が選択されたときに、対話の前記現在の入力シーケンスから最後の入力対話が削除される、請求項１に記載のシステム。
【請求項３３】
前記テキスト入力システムが、単語編集機能に関連付けられている領域を含んでおり、現在の入力シーケンスが存在せずかつ当該領域が対話されたとき、
前記出力デバイス上の前記テキスト挿入ポイントが、以前に出力された単語の中に含まれているときには、前記システムが、当該単語の文字に関連付けられている座標位置に対応する対話位置のシーケンスを有する新しい現在の入力シーケンスを確立し、かつ、
前記出力デバイス上の前記テキスト表示領域におけるテキスト挿入ポイントが、以前に出力された2つの単語の間に位置しているときには、前記システムが、前記テキスト挿入ポイントに隣接している前記単語の文字に関連付けられている座標位置に対応する対話位置のシーケンスを有する新しい現在の入力シーケンスを確立し、
前記テキスト入力システムが、当該新しい現在の入力シーケンスを処理し、新しい候補オブジェクトの対応する順位を確定し、かつ、
前記新しい候補オブジェクトのうちの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つまたは複数の候補オブジェクトを候補オブジェクトリストに提示する、請求項４６に記載のシステム。
【請求項５５】
前記選択コンポーネントが、最も高く順位付けされる候補オブジェクトを識別し、前記識別されたオブジェクトを、前記候補オブジェクトリストのうち前記自動訂正領域に最も近いポジションに提示する、請求項５４に記載のシステム。
【請求項５６】
文字に関連付けられており、かつ前記自動訂正領域内に含まれない対話位置、の作動によって、前記最も高く順位付けされると判断された候補オブジェクトが受け入れられ、前記選択された文字が出力される、請求項４６に記載のシステム。
【請求項５７】
出力領域へのオブジェクトをユーザが選択することによって、現在の入力シーケンスが終了し、前記自動訂正領域内の次のキーの作動によって、新しい入力シーケンスが開始される、請求項４６に記載のシステム。
【請求項５８】
当該仮想キーボードが、
レーザー投影キーボード、筋肉検出キーボード、ファブリックキーボード、ジェスチャー検出デバイス、目の動きを追跡するデバイス、脳波を検出するデバイス、のいずれかを有する、請求項４６に記載のシステム。
【国際調査報告】
2007538299.tif 000029
2007538299.tif 000030