(57)【特許請求の範囲】
【請求項１】
不確定なテキスト入力から明確な文字をフィルタリングするための装置であって、
・プロセッサと、
・前記プロセッサにインターフェース回路を介して結合されている、複数のキーを備えるキーボードであって、当該キーの少なくとも幾つかが2以上の文字に関連付けられていて、キー・インプット・シーケンスが、現在の不確定なキー・インプット・シーケンスと少なくとも１つの明確に入力された文字インプットとの双方を備える、キーボードと、
・前記インターフェース回路を介して前記プロセッサに結合されているディスプレイであって、当該プロセッサが、前記ディスプレイに対する出力オブジェクトを管理する、ディスプレイと、
・前記不確定なキー・インプット・シーケンス内の特定の位置に、明確な文字を入力する手段と、
・文字の前記入力が明確であることを認識する手段と、
・当該プロセッサに結合されているメモリであって、オブジェクトが、前記キー・インプット・シーケンスに関連付けられているオブジェクト・データベースと、オペレーティング・システムと、不確定性除去ソフトウェアとを備える、メモリと、
・識別されたオブジェクトの当該セットのうちの少なくとも１つを当該ディスプレイに提示して、提示されたオブジェクトを形成するための手段と、
・提示されたオブジェクトの当該セットから所望のオブジェクトを選択するための手段とを
備え、
当該プロセッサが、当該キーボードから少なくとも１つのキー・インプット・シーケンスを受信し、
前記不確定性除去ソフトウェアが、
i)  当該現在の不確定なキー・インプット・シーケンスにマッチングするオブジェクト・データベース内のオブジェクトを見出すことにより、識別されたオブジェクトのセットを形成するステップと、
ii)  当該明確に入力された文字インプットを当該特定の位置に含まない、当該識別されたオブジェクトに関連付けられているオブジェクトのサブセットから、識別されたオブジェクトのセットをフィルタリングして、フィルタリングされたオブジェクトのセットを形成するステップと、
を実行し、
前記フィルタリングされたオブジェクトのセットのみを、当該ディスプレイに出力する、
装置。
【請求項２】
前記識別されたオブジェクトから明確な文字をフィルタリングする前記ステップが、
当該オブジェクト・データベース内の当該オブジェクトを、明確に入力された文字にマッチングさせるステップと、
新規なインプットが追加され、かつ前記新規なインプットを含む前記キー・インプット・シーケンスが、少なくとも１つのデータベースにマッチングしないとの決定に応じて、出力に対し前記キー・インプット・シーケンスの第一のサブセットにマッチングするオブジェクトを自動的に受け入れるステップであって、前記キー・インプット・シーケンスの前記第一のサブセットが前記新規なインプットを含んでいない、ステップと、
を備える、請求項１に記載の装置。
【請求項３】
当該提示されたオブジェクトが、予め定められた順序にある、請求項１に記載の装置。
【請求項４】
更に、少なくとも１つの区切り文字でオブジェクトをビルドアラウンドするステップを備え、かつ
当該少なくとも１つの区切り文字に先行する不確定なキーとマッチングする少なくとも１つのオブジェクトを含むオブジェクトを、特定のシーケンスにマッチングさせることにより解釈するステップと、
当該少なくとも１つの区切り文字で終わる不確定なキーとマッチングする少なくとも１つのオブジェクトを含むオブジェクトを、特定のシーケンスにマッチングさせることにより解釈するステップと、
当該少なくとも１つの区切り文字から始まる少なくとも１つのオブジェクトを含むオブジェクトを、特定のシーケンスにマッチングさせることにより解釈するステップと、
当該少なくとも１つの区切り文字の後に続く少なくとも１つのオブジェクトを含むオブジェクトを、特定のシーケンスにマッチングさせることにより解釈するステップと
からなるグループの内の少なくとも一つのステップを備える、請求項１に記載の装置。
【請求項５】
更に、オブジェクトをビルドアラウンドするステップを備え、当該ビルドアラウンドするステップが、さらに、明確に入力された文字を含むオブジェクトを、特定のシーケンスにマッチングさせることにより解釈するステップを備える、請求項１に記載の装置。
【請求項６】
当該オブジェクト・データベースの複数の検索から、次の結果のセットを得るために、次のキーを押下することにより、当該オブジェクトをビルドアラウンドするステップが、作動する、請求項４または５に記載の装置。
【請求項７】
前記識別されたオブジェクトから当該明確な文字をフィルタリングする前記ステップが、少なくとも１つの文字列を明確に入力されたものとマークすることにより、当該少なくとも１つの文字からなる文字列を解釈し直すことを不必要とする、語幹ロッキング・ステップを備える、請求項１に記載の装置。
【請求項８】
当該語幹ロッキング・ステップが、
次のキーが、当該少なくとも一つの文字列の一つをロックする、フル・ネクスト・ロッキング・ステップ、または
ロッキング機能が割り当てられた第一のキーを押下させるステップと、
提供されつつある語の完成をロックするために第二のキーを押下することを可能にするステップと、
を備える、請求項７に記載の装置。
【請求項９】
ロッキング機能が割り当てられた前記第一のキーがOKキーまたは選択キーであり、
提供されつつある語の完成をロックするための前記第二のキーが、適切な矢印キーである、請求項８に記載の装置。
【請求項１０】
当該オブジェクト・データベースに格納されていないオブジェクトを生成する当該ステップが、
ロックされた文字のシーケンスを備える文字の第一のセットを受信するステップと、
文字の第二のセットに関連付けられている次の不確定な入力を受信するステップと、
当該ロックされた文字のシーケンスおよび当該文字の第二のセットを使用して当該所望のオブジェクトに対し当該オブジェクト・データベースを検索するステップと、
当該所望のオブジェクトが当該オブジェクト・データベースにおいて見つけ出されたことに応じて、当該所望のオブジェクトを選択するステップと、
当該所望のオブジェクトが当該オブジェクト・データベース内に発見されないことに応じて、当該文字の第二のセットのサブセットをロックしかつ当該文字の第二の当該サブセットに基づいて当該所望のオブジェクトを検索することにより、続いて２つ以上の検索を実行するステップ
を更に備える、請求項８に記載の装置。
【請求項１１】
不確定なテキスト入力から明確な文字をフィルタリングするための方法であって、
・キーボードが、キー・インプット・シーケンスをプロセッサに転送するステップであって、当該キー・インプット・シーケンスが、不確定なキー・インプットと、前記キー・インプット・シーケンス内の特定の位置で明確に入力された少なくとも一つのインプットとを備え、かつ当該キーボードが、各々が、インターフェース回路を介して前記プロセッサに結合されている複数のキーとディスプレイとを備え、かつ当該キーの少なくとも幾つかが2以上の文字に関連付けられている、ステップと、
・当該プロセッサが、当該プロセッサに結合されているメモリ内に格納されているオブジェクト・データベースにアクセスするステップと、
・当該プロセッサが、前記オブジェクト・レベルで前記不確定なキー・インプット・シーケンスの不確定性を除去して、識別されたオブジェクトのセットを形成するステップであって、現在の不確定なキー・インプット・シーケンスに関係付けられているオブジェクトが識別されている、ステップと、
・当該プロセッサが、前記オブジェクト・データベースを参照することにより、当該不確定なテキスト入力内の特定位置に明確に入力された文字を認識して、前記識別されたオブジェクトの明確な文字をフィルタリングするステップと、
・当該プロセッサが、当該明確に入力された文字インプットを当該特定の位置に含まない、当該識別されたオブジェクトに関連付けられているオブジェクトのサブセットから、識別されたオブジェクトの前記セットをフィルタリングして、フィルタリングされたオブジェクトのセットを形成するステップと、
・当該ディスプレイが、当該フィルタリングされたオブジェクトを表示するステップとを、
備える方法。
【請求項１２】
ユーザが、当該フィルタリングされて表示されたオブジェクトから所望のオブジェクトを選択するステップと、
プロセッサが、スピーカにより前記所望のオブジェクトを音声的に出力する音声合成ソフトウェアを実行するステップとを更に備える、請求項１１に記載の方法。
【請求項１３】
当該関連付けられている文字が、字、数字、句読記号、記号、日本語の仮名、韓国のジャモからなるグループの内の少なくとも一つのタイプを備え、かつ
オブジェクトが、文字、語、語の一部、語幹、アイコン、電話番号、および目録記録のシーケンスからなるグループの内の少なくとも一つのタイプを備える、請求項１１に記載の方法。
【請求項１４】
キー・インプット・シーケンスを転送するステップが、
２キーにより明確に入力するステップと、
文字シーケンスを表示しかつ循環するためにキーを長押しするステップと、
明確に数／数字を入力するためにキーを長押しするステップと、
数モードに変更しかつ明確に数／数字を入力するためにキーを押下するステップと、
マルチタップ・モードに変更しかつ明確に文字を入力するためにキーを繰り返し押下するステップと、
２キーによる明確な入力として、キー押下の各対をグループ化することにより、不確定なモード・キー押下を明確な文字として解釈するステップと、
マルチタップ入力として、前記同じキーの繰り返された押下をグループ化することにより、不確定なモード・キー押下を明確な文字と解釈するステップと、
単一の押下での不確定な入力と、異なる種類の押下での明確な文字入力とを可能にするマルチスイッチ・キーを使用するステップと、
不確定な文字のセットを示す一次キーと、前記セットにおける何れの文字を選択すべきかを示す二次キーとの、少なくとも２つのキーを同時に押下することによってコーディングを行うステップと、
キーに割り当てられている任意の文字を提供するための二次手段として、ソフトキーを使用するステップであって、現在の語の候補リストの中の語に基づいて、または先行するキーストロークに関連付けられている最も可能性がある文字の解析に基づいて、前記キーに割当てられている前記任意の文字が、前記プロセッサにより、前記ソフトキーのラベルに表示されかつ選択される、ステップ、
の中から選択された少なくとも一つの、明確なインプットを転送するステップを備える、請求項１３に記載の不確定なテキスト入力から明確な文字をフィルタリングする方法。
【請求項１５】
２キーにより明確に文字を入力するステップを、更に、備え、
このステップが、
マトリックス表示と、
関連付けられている文字の予め定められたセットのサブセットを含むラベルと、
スクロール可能なリスト、
の少なくとも一つを使用する、請求項１１に記載の方法。
【請求項１６】
文字シーケンスが表示された後に、  
追加的に当該キーが押される度に、当該文字シーケンスにおける次の文字を、強調するステップであって、その強調が、一回のキー押下と次のキー押下との間に充分な時間が経過した後に、または異なるキーが押されたときに終了するステップ、および
ナビゲーション・キーが押される度に、当該文字シーケンスにおける次の文字を強調するステップ、
の少なくとも１つを備える、文字シーケンスの表示および循環のためにキーを長押しすることにより明確な文字を入力するステップを、更に、備える、請求項１１に記載の方法。
【請求項１７】
マッチングしないオブジェクトが、前記キー・インプット・シーケンスの当該特定の位置に、当該少なくとも一つの明確なインプットを欠くとの認識に基づいて、マッチングする可能性があるオブジェクトから、マッチングしていないオブジェクトをフィルタリングする当該ステップが、更に、
少なくとも一つの文字が明確に入力されることに応じて、対応する位置に当該明確に入力された文字を有している当該オブジェクト・データベースから、格納されているオブジェクトのみを検索するステップを備える、請求項１１に記載の方法。
【請求項１８】
オブジェクトのサブセットから、前記識別されたオブジェクトのセットをフィルタリングする当該ステップが、更に、
当該オブジェクト・データベース内の当該オブジェクトを、明確に入力された文字とマッチングさせるステップと、
新規なインプットの追加と、前記新規なインプットを含む前記インプット・シーケンスが、少なくとも１つのデータベース・オブジェクトにマッチングしないとの決定とに応じて、前記キー・インプット・シーケンスの第一のサブセットにマッチングするオブジェクトを出力のために自動的に受け入れるステップであって、前記インプット・シーケンスの前記第一のサブセットが前記新規なインプットを含まない、ステップとを、
備える、請求項１１に記載の方法。
【請求項１９】
当該対応するオブジェクトから所望のオブジェクトを選択するステップを更に備える、請求項１２に記載の方法。
【請求項２０】
当該対応するオブジェクトが、予め定められた順序で表示される、請求項１２に記載の方法。
【請求項２１】
当該フィルタリングが、
少なくとも１つの区切り文字でオブジェクトをビルドアラウンドするステップを備え、かつ、
当該少なくとも１つの区切り文字に先行する不確定なキーとマッチングさせる少なくとも１つのオブジェクトを含むオブジェクトを、特定のシーケンスにマッチングさせることにより解釈するステップと、
当該少なくとも１つの区切り文字で終わる不確定なキーとマッチングする少なくとも１つのオブジェクトを含むオブジェクトを、特定のシーケンスにマッチングさせることにより解釈するステップと、
当該少なくとも１つの区切り文字から始まる少なくとも１つのオブジェクトを含むオブジェクトを、特定のシーケンスにマッチングさせることにより解釈するステップと、
当該少なくとも１つの区切り文字の後に続く少なくとも１つのオブジェクトを含むオブジェクトを、特定のシーケンスにマッチングさせることにより解釈するステップ
からなるグループの内の少なくとも１つのステップを備える、請求項１１に記載の方法。
【請求項２２】
当該フィルタリングが、明確に入力された文字を含むオブジェクトを、特定のシーケンスにマッチングさせることにより解釈するステップを備える、請求項１１に記載の方法。
【請求項２３】
当該オブジェクト・データベースの複数の検索の結果から次のセットを得るために、次のキーを押下することにより、当該ビルドアラウンドが、作動する、請求項２１または２２に記載の方法。
【請求項２４】
当該オブジェクトのフィルタリングが、少なくとも１つの文字列を明確に入力されたものとマークすることにより、少なくとも１つの文字列を解釈し直すことを不必要とする、語幹ロッキングを実行する、請求項１１に記載の方法。
【請求項２５】
当該語幹ロッキングが、
次のキーが、当該少なくとも一つの文字からなる一つの文字列をロックするフル・ネクスト・ロッキング・ステップ、または
ロッキング機能が割り当てられた第一のキーを押下するステップと、
提供されつつある語完成をロックするために第二のキーを押下するステップと、
を更に備える、請求項２４に記載の方法。
【請求項２６】
ロッキング機能が割り当てられた前記第一のキーがOKキーまたは選択キーであり、
提供されつつある語の完成をロックするための前記第二のキーが、適切な矢印キーである、請求項２５に記載の方法。
【請求項２７】
当該オブジェクト・データベースに格納されていないオブジェクトを生成する当該ステップが、
ロックされた文字のシーケンスを備える文字の第一のセットを受信するステップと、
文字の第二のセットに関連付けられている次に続く不確定な入力を受信するステップと、
当該ロックされた文字のシーケンスおよび当該文字の第二のセットを使用して当該所望のオブジェクトに対し当該オブジェクト・データベースを検索するステップと、
当該所望のオブジェクトが当該オブジェクト・データベースにおいて見つけ出されたことに応じて、当該所望のオブジェクトを選択することを可能にするステップと、
当該所望のオブジェクトが当該オブジェクト・データベース内に発見されないことに応じて、当該文字の第二のセットのサブセットをロックしかつ当該文字の第二の当該サブセットに基づいて当該所望のオブジェクトを検索することにより、次に続く少なくとも１つの検索を実行するステップ、
を更に備える、請求項２６に記載の方法。
【請求項２８】
不確定なテキストの入力システムにおいて明確な文字をフィルタリングする方法であって、
キー・インプット・シーケンスをキーボードからプロセッサに転送するステップであって、当該キーボードが、各々が、適切なインターフェース回路を介してプロセッサに結合されている、複数のキーとディスプレイとを備え、当該キーの少なくとも幾つかが2以上の文字に関連付けられている、ステップと、
ユーザから所望の文字を受信する、ステップであって、前記ユーザが、最初に当該所望の文字に関連付けられているキーを選択し、少なくとも一つの入力された語または語幹が、少なくとも一つの不確定に入力されたキー・インプットと、少なくとも一つの明確に入力された文字の両方を備えるように、少なくとも一つの不確定なキーインプットと少なくとも一つの明確に入力された文字インプットを備える、ステップと、
明確に入力された文字と不確定なキーインプットの双方を含む、現在の入力シーケンスにマッチングする単語完了オブジェクトを備えるオブジェクトのセットを表示する、ステップであって、当該表示されたオブジェクトの各々が、特定のキーと一意に関連付けられている、ステップと、
ユーザが当該オブジェクトに関連付けられている当該特定キーの選択をユーザから受信することに応じて、前記所望のオブジェクトを選択するステップと、
を備える、不確定なテキストの入力システムにおいて明確な文字をフィルタリングする方法。
【請求項２９】
当該表示するステップが、更に、
マトリックス表示を表示するステップと、
関連付けられている文字の予め定められたセットのサブセットを含むラベルを表示するステップと、
スクロール可能なリストを表示するステップ、
からなるグループの内の少なくとも一つのステップを備える、請求項１１に記載の方法。
【請求項３０】
識別されたオブジェクトのフィルタリングされた当該セットのうちの少なくとも１つを当該ディスプレイに提示して、フィルタリングされて、提示されたオブジェクトを形成するための手段と、
識別されたオブジェクトのフィルタリングされた当該セットから所望のオブジェクトを選択するための手段と、
を更に備える、請求項１に記載の装置。
【請求項３１】
当該フィルタリングされて提示されたオブジェクトが、予め定められた順序にある、請求項３０に記載の装置。
【請求項３２】
明確な文字入力と不確定なキー入力からオブジェクトを構成するための装置であって、
・少なくとも一つのプロセッサと、
・前記少なくとも一つのプロセッサに結合されている、オブジェクト・データベースを備えるメモリと、
・前記少なくとも一つのプロセッサに結合されているディスプレイと、
・複数のキーを備える、前記プロセッサに結合されているキーボードであって、当該キーのいくつかが２つ以上の文字に関連付けられていて、当該プロセッサが、少なくとも一つの不確定なキー・インプットと少なくとも一つの明確なインプットとを備えるキー・インプット・シーケンスを受信する、キーボードと、
・不確定なキー・インプット・シーケンス内の特定の位置での前記明確な文字の入力を許可する手段と、
・キーインプットが、少なくとも一つの明確に入力されたインプットを備える時を決定するための手段と、
・キー・インプット・シーケンスの不確定性をなくし、かつ、オブジェクトをフィルタリングするための手段であって、
キーインプットが入力されたときに、キーインプットのシーケンスの不確定性をなくし、識別されたオブジェクトを形成する手段と、
明確なインプットが入力される際に、前記オブジェクト・データベースを参照することによって、不確定なテキスト入力内の特定の位置に明確に入力された文字を認識することにより、識別されたオブジェクトの中からオブジェクトをフィルタリングする手段であって、前記明確に入力されたインプットを含むオブジェクトのサブセットを、前記識別されたオブジェクトの中からフィルタリングして、フィルタリングされたオブジェクトを形成する、手段と、
を備える手段と、
・当該フィルタリングされたオブジェクトのみを前記ディスプレイに表示する手段とを、 
備える装置。
【請求項３３】
通信補助として音声合成ソフトウェアおよびスピーカを更に備える、請求項１または３０に記載の装置。
【請求項３４】
当該文字が、字、数字、句読記号、記号、日本語の仮名、韓国のジャモから選択され、かつ
オブジェクトが、文字、語、語の一部、語幹、アイコン、電話番号、目録記録の文字のシーケンスから選択される、請求項１または３０に記載の装置。
【請求項３５】
キー・インプットが、少なくとも一つの明確に入力されたインプットを備えることを決定するための前記手段が、
インプット・シーケンスが、
２キーによる明確な文字入力と、
文字シーケンスを表示しかつ循環させるためにキーを長押しするステップと、
明確に数／数字を入力するためにキーを長押しするステップと、
数モードに変更しかつ明確に数／数字を入力するためにキーを押下するステップと、
マルチタップ・モードに変更しかつ明確に文字を入力するためにキーを繰り返し押下するステップと、
２キーによる明確な入力として、キー押下の各対をグループ化することにより、不確定なモード・キー押下を明確な文字として解釈するステップと、
マルチタップ入力として、前記同じキーの繰り返された押下をグループ化することにより、不確定なモード・キー押下を明確な文字と解釈するステップと、
単一の押下での不確定な入力と、異なる種類の押下での明確な文字入力とを可能にするマルチスイッチ・キーを使用するステップと、
不確定な文字のセットを示す一次キーと、前記セットにおける何れの文字を選択すべきかを示す二次キーとの、少なくとも二つのキーを同時に押下することによってコーディングを行うステップと、
現在の語の候補リストの中の語に基づいて、先行するキーストロークに関連付けられている最も可能性がある文字の解析に基づいて、キーに割り当てられている任意の文字を提供するための二次手段として、ソフトキーを使用するステップ、
から選択された一方法を示している
か否かを決定するステップを備える、請求項１または３０に記載の装置。
【請求項３６】
当該２キーによる明確な文字入力により明確な文字を入力する手段が、更に、
マトリックス表示と、
関連付けられている文字の予め定められたセットのサブセットを含むラベルと、
スクロール可能なリスト、
の何れかを備える、請求項３５に記載の装置。
【請求項３７】
文字シーケンスの表示および循環のためにキーを長押しすることによって、明確な文字を入力する手段が、更に、
当該文字シーケンスが表示された後で、一回のキー押下と次のキー押下との間に充分な時間が経過した後、または異なるキーが押されたとの決定に応じて、追加的に当該キーが押される度に、当該文字シーケンスにおける次の文字を強調する手段と、
ナビゲーション・キーが押される度に、当該文字シーケンスにおける次の文字を強調する手段、
の少なくとも１つを更に備える、請求項３３に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テキスト・インプット技術に関する。より詳しくは、本発明は、キーの数を減少させたキーパッドを有する無線通信デバイスに対するテキスト入力ソリューションに関する。
【背景技術】
【０００２】
年を追って、携帯型コンピュータは、小さくなって来ている。より小さな携帯型コンピュータを生産しようとする上でサイズ縮小を妨げる主な要素は、キーボードであった。標準のタイプライタ-サイズのキーを使用する場合、携帯型コンピュータは、少なくともキーボードと同じ大きさでなければならない。ミニチュア・キーボードも携帯型コンピュータに使われて来たが、ミニチュア・キーボードのキーは、小さすぎてユーザが容易にまたは軽快に操作することが出来ないことが判明する。
【０００３】
携帯型コンピュータにフルサイズのキーボードを組み込むことは、コンピュータを真に携帯して使用することを妨げる。ほとんどの携帯型コンピュータは、それを平坦な作業面に配置しないと、ユーザが両手でタイプすることはできない。ユーザは、立っているときまたは移動中には、携帯型コンピュータを使用することは困難である。パーソナル携帯情報機器(PDA)またはパームサイズのコンピュータと呼ばれる、小型携帯型コンピュータの最近の世代において、メーカは、デバイスに手書き文字認識ソフトウェアを組み込むことによって本問題に対処しようとした。ユーザは、タッチセンシティブ・パネルまたはスクリーン上に書くことによってテキストを直接入力することができる。この手書きのテキストは、次に、認識ソフトウェアによって、デジタルデータに変換される。残念なことに、ペンを用いたプリントまたは書込みは、一般に、タイプより遅いという事実に加えて、手書き文字認識ソフトウェアの精度および速度は、現在まで、満足であるとは言えない。日本語の場合、複合文字が多いので、問題は特に難しくなる。更に悪いことには、テキスト・インプットを必要とする今日のハンドヘルド・コンピューティング・デバイスは、今もなお小型化されつつある。双方向ページング、移動電話および他のポータブル無線技術の最近の進歩により、小さくて携帯可能な双方向メッセージ通信システム、特に、電子メール(e-mail)を送受信することができるシステムが要求されて来ている。
【０００４】
したがって、小型で、かつユーザが片手でデバイスを保持しながら、他方の手で操作することが可能な、テキストをコンピュータ・デバイスに入力させるためのキーボードを開発することは、有益であろう。従来の製品開発では、キーの数を減少させたキーボードを使用することが検討されて来た。タッチ-トーン電話のキーパッド・レイアウトにおいて使用されているように、キーの数を減少させたキーボードの多くには、3行4列のキーが使用されて来ている。その配列における多数のキーは、複数の文字(character)に関連する。したがって、与えられたキーに関連付けられている複数の文字の内のどの文字が、所望の文字であるかをユーザに示すための方法が必要である。キーの数を減少させたキーボード上に入力された平仮名文字を確定して特定するための或る提案されたアプローチは、ユーザに各々の仮名を特定するために２回以上のキーストロークを入力することを要求する。キーストロークは、同時に入力（コーディング）しても、シーケンスに入力（複数回ストロークによる特定）してもよい。従来、コーディングによっても複数回ストロークによる特定によっても、充分簡単でかつ効率的に使用できるキーボードをもたらすことはなかった。複数回ストロークによる特定は、非効率的であり、他方、コーディングは、習得し使用することが、多くの場合、複雑である。
【０００５】
日本語の五十音図の各音節は、単一の母音または母音が続く子音の、何れかから構成される。これらの音節には、例外が２つあるが、それは、母音を有しない音節「ん」と、次に子音が来る発音の「ダブリング(doubling)」、または「ハードニング(hardening)」を示すために使用される「小文字」「っ」である。これらの音節は、（本来の日本語を書く場合、一般に使用される）平仮名または（外来語を書く場合、一般に使用される）片仮名として書くことができる。本願では、用語”仮名”は、平仮名または片仮名の何れかを指すために使用される。字音表は、一般に（五十音表（特許文献３の図２９参照）に示される）行と列の表として表される。ここにおいて、各行は、5つの日本の母音、「あ」、「い」、「う」、「え」、および「お」に対応する列内に5つまでの入力を有することができる。所定の子音が行内の或る入力に対して音の変化を受けるにもかかわらず、各行は、最初の子音に対応する（例えば、s(a)「さ」=>sh(i)「し」； t(a)「た」=>ts(u)「つ」；など）。第１行は、各々が、最初に子音を持たない5つの母音に対応する5つの音節から成る。第8行は、口蓋音化された母音、「や」、「ゆ」、および、「よ」から成る（「YI」および「YE」は、現代の日本語では使用されない）。発音区別符号「  ゛」および「  ゜」は、一般に、子音の発音の変化を示すために使用され、無声子音から有声子音への変化を示す。濁音／半濁音表（特許文献３の図３０参照）は、発音区別符号「  ゛」および「  ゜」を五十音表の音節に追加することによって形成される基本的な音節を示す。音節「ゃ」、「ゅ」 および 「ょ」 の小文字も、また、五十音表および濁音／半濁音表の第２列、つまり、「い」列の音節と結合して使用され、対応する子音と口蓋音化された母音から成る音節を表す（例えば、「小文字の」「ゃ」が続く「き」  は、「きゃ」を表す）。したがって、拗音表（特許文献３の図３１参照）に示されるように、発音区別符号を用いて書かれた形を含む、口蓋音化された母音を有するこれらの音節は一対の仮名として書かれる。
【０００６】
日本語の辞書式順序は、一般に、五十音表の（母音Aに対応する）第１列の音節のシーケンス：「あ」、「か」、「さ」、「た」、「な」、「は」、「ま」、「や」、「ら」、「わ」、および「ん」によって表される。ここで、（「ん」を除く）これらの音節の各々は、母音「あ」、「い」、「う」、「え」、および「お」からこの順序で構成される5つまでの音節のサブ階層を表す。現在、日本語のテキスト・インプットを必要とする移動電話のような製品は、一般に、9個のキーの各々が、最初の9行（「あ」〜「ら」）の各々に関連する複数回ストロークによる特定方法を使用する。対応する行のどの音節が、意図される音節であるかを示すために、キーを複数回ストロークすることが、使用される。ここで、キーにストロークを追加するたびに、出力されるべき文字は、五十音表または濁音／半濁音表の次の列に現れる文字にシーケンシャルに変化する。分離キーまたはタイムアウト方法により、同じキーに関連付けられている連続した文字を入力することが可能になる。第１0キーは、音節「わ」、「を」、「ん」および前の音節の母音を繰り返す母音のみの音節を示す片仮名「ー」記号のために使用される。小文字の「ゃ」、「ゅ」、および「ょ」も、また「や」キーに関連するが、これらの小文字を選択するには、追加のキーストロークが必要である。音節に続く発音区別符号を追加するためには、通常、追加平仮名（または片仮名）を入力することは、今なお、難しい問題である。上述のキーが、使用される。キーの数を減少させたキーボードを使用して日本の平仮名（または片仮名）を入力することは、引き続き難しい問題である。上述のような従来の複数回ストローキング方法を用いると、一つの仮名音節を生成するために、平均少なくとも3回のキーストロークが必要となる。2文字によって表される口蓋音化された母音を有する音節（すなわち、「小文字」「ゃ」、「ゅ」または「ょ」が続く五十音表および濁音／半濁音表の第２列、または「い」列の音節から成る拗音表の音節）は、生成するために8回までのキーストロークを必要とする場合がある。したがって、平仮名を入力するために必要とされるキーストロークの数を最小限に抑え、かつ使用するのが簡単かつ直覚的でもある、キーの数を減少させたキーボード・システムを開発することは、望ましいことであろう。
【０００７】
キーの数を減少させたキーボードに、仮名に加えて中国語文字（漢字）を含む標準日本語文をタイプすることは、更にいっそう難しい問題である。フルキーボードおよび大きなディスプレイを有する標準のコンピュータにテキストを入力することは、一般に、濁音／半濁音表、拗音表、五十音表に示される各平仮名音節に対応する（日本語で「ローマ字(romaji)」と呼ばれる）ラテンアルファベットの文字を使用して、まず、所望のテキストの発音をタイプすることによって達成される。文字がタイプされると、インプットは、自動的に、対応する平仮名音節に変換されて、かつスクリーンに表示される。多くの場合、ユーザは、次に、最初に平仮名で表示されたテキストを、所望の特定のテキストの解釈に変換することを必要とする。表示された平仮名は、ユーザが実際に入力を望む漢字と平仮名の組み合わせの表音読みを表し、かつユーザが意図した意味を伝える。日本語には同音異義語が多数存在することに起因して、ユーザによる平仮名インプットには、対応する漢字と平仮名の意味のある組み合わせが、多数存在する可能性がある。例えば、各代替を数字キーに関連付けて、キーを押下することにより、インプットされた平仮名を、表示されている漢字解釈に変換させて、多数のこれらの代替変換を、標準のコンピュータに表示させることが出来る。小さい手持ち型デバイス上でこのプロセスを実施しようとする場合、表示サイズが限られていることと利用可能なキーの数が少ない数ことに起因して、複雑さが更に追加して発生する。
【０００８】
キーの数を減少させたキーボードで入力された平仮名を特定するための代替方法は、ユーザが一回のキーストロークで各平仮名を入力することを可能にする。キーの数を減少させたキーボードの各キーは、複数の平仮名文字に関連する。ユーザがキーのシーケンスを入力する時、各キーストロークは、いくつかの平仮名の内の１つを示すので、出力結果には、不確定性が生じる。したがって、システムは、ユーザが、各キーストロークの可能な解釈のいずれを意図したかを効率的に示すことができる手段を提供しなければならない。いくつかのアプローチが、キーストローク・シーケンスの不確定性を解決するために提案された。
【０００９】
不確定なキーストローク・シーケンスに対応する、正しい文字シーケンスを決定するための多くの提案されたアプローチは、非特許文献１にまとめられている。非特許文献１は、不確定性除去アプローチの大部分が、所定のコンテクストにおいて文字不確定性を解決するために、関連する言語の文字シーケンスの公知の統計を使用することに言及している。すなわち、既存の不確定性除去システムは、キーストロークの適切な解釈を決定するために、不確定なキーストローク・グループを、それらをユーザが入力している際に、統計的に解析する。非特許文献１は、また、いくつかの不確定性除去システムが、キーの数を減少させたキーボードからのテキストをデコードするために語レベルの不確定性除去の使用を試みたことにも言及している。語レベルの不確定性除去プロセスは、語の最後を示す確定した文字の受信後、受信されたキーストロークの全シーケンスを、辞書の可能なマッチングと比較することによって語を完成させる。非特許文献１は、語レベルの不確定性除去のいくつかの不利な点を指摘している。例えば、語レベルの不確定性除去は、珍しい語を識別する際の制限および辞書に含まれない語をデコードすることができないことに起因して、しばしば語を正しくデコードすることが出来ない。デコーディングが制限されるため、語レベルの不確定性除去では、１文字につき１回のキーストロークの効率で、制約のない英語テキストのエラーの無いデコーディングを提供することはできない。したがって、非特許文献１は、語レベルの不確定性除去ではなく文字レベルの不確定性除去に集中し、かつ文字レベルの不確定性除去が最も有望な不確定性除去技法であると思われると指摘する。しかしながら、アルファベットの言語に対し、日本語の各平仮名文字は、基本的に、音素を表す単一の字(letter)ではなく音節を表す。このために、平仮名の可能なシーケンスについては制約がほとんどなく、かつ平仮名シーケンスの確率分布がこのアプローチを効率的とするには充分に非対称ではないので、文字レベルの不確定性除去は、日本語においては非効率である。
【００１０】
非特許文献２には、更に提案された別のアプローチが、開示される。非特許文献２は、電話タッチパッドを使用して入力されるテキストから不確定性を減らすためのシステムを論じている。非特許文献２は、24,500語の英語辞書の語のおよそ92%に対して、キーストローク・シーケンスを辞書と比較すれば、不確定性が発生しないと認識している。しかしながら、非特許文献２には、不確定性が発生すると、ユーザに不確定性を提示し、かつユーザに数多くの不確定な入力の中から選択をするよう依頼するシステムによって、不確定性がインタラクティブに解決されなければならないことが、注記されている。したがって、ユーザは、各語の最後でシステムの予測に応答しなければならない。このような応答は、システムの効率を低下させ、かつテキストの所定のセグメントを入力するために必要なキーストロークの数を増加させる。
【００１１】
日本語の場合、ワープロ・ソフトのユーザは、日本語には同音異義語が多く存在するために、１つの語の入力に対して、多数の不確定な解釈から選択しなければならない。仮名の同じシーケンスが、２つ以上の異なる漢字解釈に変換される可能性が頻繁にある。したがって、仮名のシーケンスを入力した後に、ユーザは、一般に、可能な選択のセットから所望の漢字変換を選択することを必要とし、更に、正しい変換が選択されたことを、何とかして確認することがしばしば必要となる。平仮名がキーの数を減少させたキーボードを使用して入力される場合、ユーザが、漢字に変換されるべき平仮名のシーケンスとして実際に意図するものに関しても、不確定性がある。この結果、可能な解釈の数は、非常に増加する。
【００１２】
不確定なキーストローク・シーケンスの不確定性を除去することは、今なお、難しい問題である。前述の刊行物において言及されているように、テキストのセグメントを入力するために必要とされるキーストロークの数を最小化する既存の解決法は、携帯型コンピュータの使用において許容可能な必要な効率を達成させることが出来ない。したがって、簡単でわかりやすいユーザ・インターフェースのコンテクスト内で、必要とされるキーストロークの合計数を最小化しながら、入力されたキーストロークの不確定性を解決するための不確定性除去システムを開発することが望まれている。このようなシステムは、これによって、テキスト入力の効率を最大にするであろう。
【００１３】
日本語のための効果的なキーの数を減少させたキーボード・インプット・システムは、次の基準を全て満たさなければならない。第一に、キーボード上の日本語の音節（仮名）の配置およびそれらを生成する方法が、ネイティブ・スピーカにとって理解しやすく、かつ使用するために習得しやすいものでなければならない。第二に、システムは、キーの数を減少させたキーボード・システムの効率を高めるために、テキストを入力するために必要なキーストロークの数を最小化するのに役立たなければならない。第三に、システムは、インプット処理の間に必要とされる注意および意志決定の量を減らすことによって、ユーザが認識するための負荷を減らさなければならない。第四に、アプローチは、実用システムを実施するために必要なメモリおよび処理リソースの量を最小にすべきである。
【００１４】
特許文献１は、電話キーパッドのキー1〜0が、それぞれ、平仮名音節｛あいうえお｝、｛かきくけこ｝、｛さしすせそ｝、｛たちつてと｝、｛なにぬねの｝、｛はひふへほ｝、｛まみむめも｝、｛やゆよ｝、｛らりるれろ｝、および｛わをん｝によりラベル付けされる、１つのアプローチを開示する。これは、電話キーパッドのキー1〜9に、それぞれ、平仮名音節「あ」、「か」、「さ」、「た」、「な」、「は」、「ま」、「や」、および「ら」が、ラベル付けされる、日本語の電話キーパッド用の事実上の標準であるものに対応する。各キー上に現れる単一の平仮名は、五十音表の第１列に表れるこの単一の平仮名の行の全ての平仮名に対応する、そのキーに割り当てられた平仮名の完全なセットを表す。「0」のキーには、しばしば、｛わ、を、ん｝が、明確にラベル付けされる。
【００１５】
特許文献１は、ユーザが、各文字が関連するキーを一回押下することにより、文字のシーケンス（平仮名）を不確定にインプットする、語レベルの不確定性除去アプローチを開示する。各インプット・シーケンスの最後に、ユーザは、インプット・キーシーケンスに関連する平仮名の可能なシーケンスの内の１つのシーケンスの最初のテキストの解釈を表示するために「変換／次候補」キーを押下する。特許文献１は、所定のインプット・キーシーケンスの全てのテキストの解釈が、メモリの連続ブロックに連続的に格納されている辞書構造を開示する。「変換／次候補」キーを追加して押下するたびに、もし存在するならば、辞書に格納された次のテキストの解釈が表示される。テキストの解釈がもう存在しなくなると、エラー・メッセージが、表示され、かつオプションの異常処理が実行される可能性がある。所望のテキストの解釈が表示されると、ユーザが次のテキスト・オブジェクトの入力を続けることが可能となる前に、特別な「確認」キーを、所望のテキストが表示されたことを確認するために、押さなければならない。
【００１６】
特許文献１により開示されるアプローチには、多くの困難がある。１つは、平仮名ストリングの特定と、各可能な平仮名候補ストリングの変換の両方に不確定性があるという事実に起因して、所定のキーシーケンスに対し、極めて多数のテキストの解釈があり得るということである。このことは、所望の解釈を見つけるために「変換／次候補」キー使用して多数の可能性のある解釈を処理することを、ユーザに要求することになる。更に、可能性のある解釈を処理する場合、ユーザは、インプットの不確定性に起因する様々な平仮名ストリングに対応する、様々な漢字および／または平仮名ストリングを見なければならない。このことは、ユーザの気が散る可能性があり、かつ所望の解釈を見つけようとする際、ユーザに、余計な注意を払うことを要求することになる。更に、テキスト解釈のデータベースは、全てのデータが、完全な語からのみ成り、かつ所定の長さの全てのキーシーケンスに対し全てのデータが、メモリの連続ブロックに連続的に格納されるように構成されている。特許文献１は、如何なる完成語にも対応しないインプット・シーケンスにおけるこれらのポイントで、より長い、まだ未完成の語に対応する適切な語幹(stem)を表示することができる如何なるアプローチも開示していない。特許文献１のシステムは、インプットにおけるこのようなポイントで、数字またはデフォルトの字または文字のような、入力された各キーのデフォルトの表示しか示すことができない。このことは、ユーザを混乱させ、かつ意図されたキーが入力されたことをユーザが確認するのを助ける際に効果的であるフィードバックを提供することができない。最後に、ユーザは、各語のインプットに対して「確認」キーを押さなければならず、各インプットに対して追加のキーストロークを入力しなければならない。したがって、特許文献１により開示されるシステムは、上述の基準を満たしていない。
【００１７】
語レベルの不確定性除去アプリケーションが直面する別の重要な課題は、その使用が最も有利である種類のハードウェア・プラットホーム上で、いかにうまくそれを実施するかということである。上述したように、このようなデバイスは、双方向ポケットベル、移動電話および他のハンドヘルド無線通信デバイスを含む。これらのシステムは、バッテリー電源であり、したがって、ハードウェア設計およびリソース利用において、可能な限り省電力型に設計される。このようなシステムに実行するように設計されるアプリケーションは、プロセッサのバンド幅利用および必要メモリのどちらも最小化しなければならない。これら２つの要素は、一般に、逆相関する傾向がある。語レベルの不確定性除去システムは、機能するためには、大きな語データベースを必要とし、かつ満足の行くユーザ・インターフェースを提供するために、速やかにインプット・キーストロークに反応しなければならないので、それを利用するために必要とされる処理時間に重大な影響を与えずに、必要とされたデータベースを圧縮することができることは、大きな利点であろう。日本語の場合、仮名のシーケンスをユーザが意図する漢字へ変換することをサポートするために、追加情報が、データベースに含まれなければならない。
【００１８】
語レベルの不確定性除去の如何なるアプリケーションにも直面する別の課題は、インプットされつつあるキーストロークに関して、ユーザに充分なフィードバックを提供することである。通常のタイプライタまたはワードプロセッサでは、各キーストロークは、それが入力されるとすぐに、ユーザに表示することができる一意の文字を表現する。しかしながら、語レベルの不確定性除去の場合、このことは、多くの場合、可能ではない。何故ならば、各キーストロークが、複数の文字を表し、かつキーストロークの如何なるシーケンスも、複数の語または語幹(word stem)にマッチングする可能性があるからである。したがって、入力されたキーストロークの不確定性を最小化し、かつテキスト入力の間、ユーザが、発生する如何なる不確定性も解決することができる効率を最大にする、不確定性除去システムを開発することは、望ましいであろう。ユーザの効率を高める１つの方法は、各キーストロークの後に、適切なフィードバックを提供することである。このことは、各キーストロークの後に最も有望な語を表示することと、現在のキーストローク・シーケンスが、完成された語に対応してない場合、まだ未完成の語の最も可能性が高い語幹を表示することとを含む。日本語のための効果的なキーの数を減少させたキーボード・インプット・システムを作成するために、前述の基準の全てを満たすシステムが、設計されて来た。第一に、キーボード上の日本語の音節（仮名）の配置およびそれらを生成する方法は、ネイティブ・スピーカにとって理解しやすくかつその使用方法は習得しやすい。第二に、このシステムは、テキストを入力するために必要なキーストロークの数を最小にする。第三に、このシステムは、インプット処理の間に要求されるユーザの注意および意志決定の量を減らすことによって、かつ適切なフィードバックを提供することによって、ユーザへの認識負荷を減らす。第4に、このアプローチは、実用システムを実施するために必要とされるメモリおよび処理リソースの量を最小にする。
【００１９】
年を追って、携帯型コンピュータは、小さくなって来ている。より小さな携帯型コンピュータを生産しようとする上でサイズ縮小を妨げる主な要素は、キーボードであった。標準のタイプライタ-サイズのキーを使用する場合、携帯型コンピュータは、少なくともキーボードと同じ大きさでなければならない。ミニチュア・キーボードも携帯型コンピュータに使われて来たが、ミニチュア・キーボードのキーは、小さすぎてユーザが容易にまたは軽快に操作することが出来ないことが判明している。フルサイズのキーボードを組み込んだ携帯型コンピュータは、実際に携帯して使用することは出来ない。ほとんどの携帯型コンピュータは、それを平坦な作業面に配置しないと、ユーザが両手でタイプすることはできない。ユーザは、立っているときまたは移動中には、携帯型コンピュータを使用することは困難である。
【００２０】
パーソナル携帯情報機器(PDA)またはパームサイズのコンピュータと呼ばれる、最新世代の小型携帯型コンピュータでは、メーカは、PDAに手書き文字認識ソフトウェアを組み込むことによってこの問題を解決しようとして来た。ユーザは、タッチ・センシティブ・パネルまたはスクリーン上に書くことによってテキストを直接入力することができる。この手書きテキストは、次に、認識ソフトウェアによって、デジタル・データに変換される。残念なことに、ペンを用いたプリントまたは書込みは、一般に、タイプより遅いという事実に加えて、手書き文字認識ソフトウェアの精度および速度は、現時点では、満足なものとは言えない。
【００２１】
現在、無線業界の目覚ましい成長は、携帯電話、双方向ポケットベル、PDAなどのような、普通の消費者に利用可能な、信頼できる、便利かつ極めて普及する移動通信デバイスを生み出した。テキスト・インプットを要求するこれらの手持ち型無線通信およびコンピューティング装置は、今なお、小型化されつつある。双方向ページング、移動電話および他のポータブル無線技術の最近の進歩は、小さくて携帯可能な双方向メッセージ通信システムと、特に、電子メール(e-mail)を送受信の両方を可能とするシステムとを要求して来た。いくつかの無線通信装置メーカは、更に、消費者がデバイスを保持するのと同じ手で動作することができるデバイスを消費者に提供することを望んでいる。
【００２２】
不確定性除去の背景
従来の研究開発活動は、キーの数を減少させたキーボードの使用を検討して来た。タッチ-トーン電話のキーパッド・レイアウトにおいて使用されているように、キーの数を減少させた多くのキーボードでは、3行4列のキーが使用されて来た。キー配列において各キーは、複数の文字を含む。したがって、各キーストロークがいくつかの字の内の１つを示すので、ユーザがキーのシーケンスを入力するとき、不確定性が存在する。キーストローク・シーケンスの不確定性を解決するために、不確定性除去(disambiguation)と呼ばれるいくつかのアプローチが、提案されて来た。
【００２３】
キーの数を減少させたキーボードに入力された文字を確定して特定するための提案された１つのアプローチは、各々の文字を特定するために、ユーザは、平均で、２回以上のキーストロークを入力しなければならない。キーストロークは、同時に（コーディング）、またはシーケンスに（複数回のストロークによる特定）入力される。コーディングも複数回のストロークによる特定も、充分簡単でかつ効率的に使用できるキーボードをもたらすことはなかった。複数回のストロークによる特定は、非効率的であり、かつコーディングは、習得し使用することが、多くの場合、複雑である。
【００２４】
不確定なキーストローク・シーケンスに対応する正しい文字シーケンスを決定するための他の提案されたアプローチは、非特許文献１にまとめられている。非特許文献１は、不確定性除去アプローチの大部分が、所定のコンテクストにおける文字の不確定性を解決するために、関連する言語の文字シーケンスの公知の統計を使用することに言及する。
【００２５】
語レベルの不確定性除去に基づく別の提案されたアプローチは、非特許文献２において開示されている。非特許文献２、電話タッチパッドを使用して入力されるテキストから、不確定性を減らすためのシステムを論じている。非特許文献２は、24,500語の英語辞書の語のおよそ92%に対して、キーストローク・シーケンスを辞書と比較するとき、不確定性は発生しないことを認めている。しかしながら、非特許文献２は、不確定性が発生するとき、これらの不確定性は、ユーザに不確定性を提示しかつユーザに複数の不確定な入力の中で選択をするよう依頼するシステムによって、インタラクティブに解決されなければならないと記載されていることに注目すべきである。したがって、ユーザは、各語の最後でシステムの予測に応答しなければならない。このような応答は、システムの効率を低下させ、かつテキストの所定のセグメントを入力するために必要とされるキーストロークの数を増加させる。
【００２６】
特許文献２は、タイプ可能な(typable)デバイス、および、特に、不確定なコードを具体化するタッチ‐タイプ・デバイスの設計が、多くの人間工学的な(ergonomical)問題を提示することを開示し、かつこのような問題のためのいくつかのソリューションを提案する。特許文献２は、デバイスのサイズ、形状および計算容量のような所定の設計制約条件、デバイスの典型的な用途、およびアルファベット順序またはQwerty順序のような従来の制約条件に対し、コンピュータ、PDA等および他の情報機器のようなタッチタイプ可能な(touch-typable)デバイスのための、強くタッチタイプ可能な(strongly-touch-typable)不確定なコードおよび実質的に最適な不確定なコードのクラスから、不確定なコードを選択するための方法を、教示する。
【００２７】
Eatoni Ergonomics Inc.は、標準的なキーボードから構成されるWordWise（著作権 2001 Eatoni Ergonomics Inc.）と呼ばれるシステムを提供する。このシステムでは、大文字は、通常のキーボードでタイプされ、かつ、意図された字に関するキーが押下される間、シフトキーのような補助キーが、押されたままである。WordWiseの背後にある主要な考えは、電話キーパッドの各キーの字のグループの各々から、１つの字を選択することである。このような選ばれた字は、意図された字に関するキーが押下されるとき、補助キーを押されたままにすることよって、タイプされる。WordWiseは、不確定な、確定したまたはそれらの組み合わせの入力を解決するために、語を検索する語彙データベース／辞書を使用しない。
【００２８】
Zi Corporationは、予測テキスト手法、 eZiText（著作権 2002 Zi Corporation）を教示するが、不確定モードにおける明確なテキスト・フィルタリングについて、または、２キーによる明確な入力、語幹-ロッキングまたはn-グラム(n-gram)検索との組み合わせについては、何の教示せず、提案もしてない。
【００２９】
現在の不確定性除去法に対する改善の必要性
不確定なキーストローク・シーケンスの不確定性を除去することは、今なお難しい問題である。不確定性除去に直面する特別の課題は、インプットされているキーストロークに関してユーザに充分なフィードバックを提供することである。通常のタイプライタまたはワードプロセッサでは、各キーストロークは、それが入力されるとすぐに、ユーザに表示することができる一意の文字を表現する。しかしながら、例えば、語レベルの不確定性除去の場合、各入力は、複数の文字を表現し、かつ任意の入力のシーケンスは、例えば、語または語幹のような複数のオブジェクトとマッチングする場合もあるので、このことは、多くの場合、不可能である。例えば、ユーザがスペルまたは入力を間違え、かつ完全なシーケンスが入力されかつ所望の結果が提示されるまで、ユーザが、このような間違いに気が付かない場合、このような不確定性は、特に問題である。別の具体例の場合、語-レベルの不確定性除去を利用する従来のシステムでは、システムが終了選択（例えば、スペース・キー）と認識可能な、特定のキー選択のような既定の選択がなされるまで、如何なるフィードバックも提供されない。
【００３０】
更に、タイ語およびアラビア語のような、いくつかのアルファベットは、英語のアルファベットより多くの字を含むので、キーの数が減少された場合には、更に大きな不確定性をまねく。これらの言語の効率的なインプットは、必要に応じて、その不確定性を減らすためのメカニズムを要求する。
【００３１】
したがって、入力の間、ディスプレイ上の明白な不確定性を減らし、かつユーザがスペルおよび／または入力の誤りを検出しかつ訂正する能力を改善した不確定性除去システムを提供することは、有利である。
【００３２】
候補語、語幹、記号のシーケンス等のリストを狭めることができる明確なフィルタ機能を提供することにより、不確定性を減らしかつ効率を増加させ、かつユーザが、語またはシーケンスをより速く完成させることができる、不確定性除去システムを提供することは、更に有利である。より詳しくは、（これらに限定されるものではないが）オブジェクトおよび／または語幹、および明確に入力された文字を含む、以前に入力された文字の一部または全部についての現在の解釈状態を、ロッキングすることを可能にし、これにより以前の入力の再解釈を妨ぐことができることは、有利であろう。
【００３３】
新しいオブジェクト、語または語幹の終わりまたは開始に対するアンカ(anchor)として、明確に入力された複数の文字を、ビルドアラウンドに使用(build around)することも、また、有利であろう。
【００３４】
先行する明確に入力された文字のn-グラム解析により、オブジェクトまたは語を拡張するために合理的な推測を提供することも、また、有利であろう。
【００３５】
語または語幹のような言語学的オブジェクトの不確定性を除去するプロセスの間、例えば、以前の入力の再解釈を防止することにより、不確定性を減少させ、かつ効率を増加させることも、また、有利であろう。
【００３６】
キーストロークの解釈を再開することができる場所を示唆するために、２つの別の文字のセットを接続するポイントを示唆するものとして、不確定にまたは明確に入力された共通の区切りを認識することも、また、有利であろう。
【００３７】
【特許文献１】Kisaichi et al. [JP 8-314920; US 5,786,776; EP 0 732 646 A2]
【特許文献２】国際公開第00/35091号パンフレット（2000年6月15日出願）（発明者 H. A. Gutowitz ）（発明の名称「不確定なコードに基づくタッチタイプ可能な装置およびこのような装置を設計する方法(Touch-Typable Devices Based on Ambiguous Codes and Methods to Design Such Devices)」）
【特許文献３】特開平１１−３１２０４６号
【非特許文献１】John L. Arnott and Muhammad Y. Javad 著、「短いテキスト・サンプルを使用するキーの数を減少させたキーボード用確率的文字不確定性除去(Probabilistic Character Disambiguation for Reduced Keyboards Using Small Text Samples)」（the Journal of the International Society for Augmentative and Alternative Communication）
【非特許文献２】I. H. Witten 著、「コンピュータ・スピーチの原理(Principles of Computer Speech)」(Academic Press in 1982)
【発明の開示】
【課題を解決するための手段】
【００３８】
本発明は、不確定なテキスト入力を明確にフィルタリングするための方法と装置に関する。本発明は、２キー押下および長押しのような、さまざまな明確なテキストの入力法を含む実施例を提供する。本発明は、更に、ビルドアラウンド法、語幹ロッキング法、語完成法およびn-グラム検索を使用する、データベースにおける語をマッチングさせるための手段を提供する。
【図面の簡単な説明】
【００３９】
【図１Ａ】本発明のキーの数を減少させたキーボードの不確定性除去システムを組み込んだ移動電話の実施例の線図である。
【図１Ｂ】複数のキーの各々が1つ以上のローマ字に関連する図１Ａと同様の移動電話キーパッドの線図である。
【図１Ｃ】制限された表示機能を備える、または表示機能を備えない本発明のキーの数を減少させたキーボード・システムの実施例を組み込んだ移動電話キーパッドの線図である。
【図１Ｄ】表示機能を有する本発明のキーの数を減少させたキーボード・システムの実施例を組み込んだ移動電話キーパッドの線図であり、確定した２ストローク方法においてキーストロークの順序付けられた対の最初のものとしてキー「2」のアクティブ化に続くディスプレイを示す。
【図２Ａ】図１Ａのキーの数を減少させたキーボードの不確定性除去システムのハードウェア・ブロック線図である。
【図２Ｂ】本発明のキーの数を減少させたキーボード・システムを組み込んでいる携帯型コンピュータ・タッチスクリーンの実施例の線図であり、確定した２ストロークの方法においてキーストロークの順序付けられた対の第1番目のキーストロークの前に表示されたキーパッドを示す。
【図２Ｃ】図２Ｂのタッチスクリーンの線図であり、キーストロークの順序付けられた対の第1として、音節「か」「き」「く」「け」「こ」に関連するキーのアクティブ化に続く表示されたキーパッドを示す。
【図３Ａ】日本語用のキーの数を減少させたキーボードの不確定性除去システムのための語レベルの不確定性除去ソフトウェアの実施例のフローチャートである。
【図３Ｂ】日本語用のキーの数を減少させたキーボードの不確定性除去システムのための語レベルの不確定性除去ソフトウェアの実施例のフローチャートである。
【図３Ｃ】日本語用のキーの数を減少させたキーボードの不確定性除去システムのための語レベルの不確定性除去ソフトウェアの実施例のフローチャートである。
【図４】本発明のキーの数を減少させたキーボード・システムを組み込んだ携帯型コンピュータ・タッチスクリーンの別の実施例の線図である。
【図５】9個のキーを有する本発明のキーの数を減少させたキーボード・システムを組み込んだ携帯型コンピュータ・タッチスクリーンの更に別の実施例の線図である。
【図６】記号の物理的関連を、物理的キーに現れる文字の追加の強調されたバリエーションを含む論理的関連のインスタンスを有するキーと比較する。
【図７】キー・インデクスに論理記号を関連づけている表の具体例である。
【図８Ａ】語彙モジュールのツリーのノードにおけるデータの内部配置を表す。
【図８Ｂ】”読み方”(Yomikata)テキスト・オブジェクトを構築するための一次命令の実施例の意味上の構成要素を表す。
【図８Ｃ】”見出し語”(Midashigo)テキスト・オブジェクトを構築するために使用される二次命令の4つの異なるタイプの実施例の意味上の構成要素を表す。
【図８Ｄ】”見出し語”テキスト・オブジェクトを構築するために使用される二次命令の4つの異なるタイプの2つの別の好適実施例の意味上の構成要素を表す。
【図９Ａ】実施例のノードの構造の可能な内部データ項目の、4つの具体例を表す。
【図９Ｂ】実施例のノードの構造の可能な内部データ項目の、4つの具体例を表す。
【図９Ｃ】実施例のノードの構造の可能な内部データ項目の、4つの具体例を表す。
【図９Ｄ】実施例のノードの構造の可能な内部データ項目の、4つの具体例を表す。
【図１０】圧縮されていない語彙モジュールの好適なツリー構造を表す。
【図１１】語彙モジュールから検索されているプロセスにおけるオブジェクトの中間記憶装置のための好適実施例であるオブジェクト・リストの具体例の状態を表す。
【図１２】キー押下のリストに対し、テキスト・オブジェクトを語彙モジュールから検索するためのソフトウェア・プロセスの好適実施例のフローチャートである。
【図１３】単一のキー押下に対し、語彙モジュールのツリー構造をトラバースし、かつオブジェク・リストの状態を変えるためのソフトウェア・プロセスの一実施例のフローチャートである。
【図１４】折り畳まれ、圧縮された語彙モジュールを構築するためのソフトウェア・プロセスの実施例のフローチャートである。
【図１５】語彙モジュールのツリー・データ構造を折り畳むためのソフトウェア・プロセスの実施例のフローチャートである。
【図１６】所定のノードと比較して最も大きな冗長度を有する語彙モジュールのツリーの二次ノードを位置づけるためのソフトウェア・プロセスの実施例のフローチャートである。
【図１７Ａ】語彙モジュールにおけるツリーの2つのノード間の冗長度を計算するためのソフトウェア・プロセスの実施例のフローチャートである。
【図１７Ｂ】語彙モジュールにおけるツリーの2つのノード間の冗長度を計算するためのソフトウェア・プロセスの実施例のフローチャートである。
【図１８】音節「か」、「き」、「く」、「け」、および「こ」に不確定に関連するキーについての3回の連続したキーストロークのシーケンスに対する、本発明のデータベースの部分的なコンテンツを示すチャートである。
【図１９】システム・オペレーションの3つの代表例を示し、テキストをインプットする間に入力されるキーのシーケンスに関する各キーストロークが続く図１Ａに示されるシステムのテキスト表示のコンテンツを示す。
【図２０】本発明に従う明確な文字フィルタリング・システムのハードウェア・ブロック線図である。
【図２１】本発明に従うキーに関連付けられている英語のアルファベットの各字を示す無線手持ち型デバイスの図である。
【図２２】本発明に従う0〜9のキーに示されるヨーロッパの字といくつかの特殊記号およびそれらのそれぞれのシフト(Shift)キーの具体例のチャートである。
【図２３】本発明に従う1つの２キー・マトリックス・インプット方法のサンプル・スクリーン・ショットである。
【図２４】図２０の不確定なテキスト入力システムの文字を明確にフィルタリングするための２キーによる明確な入力のフローチャートである。
【図２５】本発明の好ましい実施例に従う不確定モードにおける明確なフィルタリングのフローチャートである。
【図２６】本発明に従うデータベースに格納されていない語を生成するための方法のフローチャートである。
【図２７】本発明に従うキーの長押しによる明確な入力の具体例を示す。
【図２８】本発明に従うビルドアラウンド(build around)の具体例を表すフローチャートである。
【発明を実施するための形態】
【００４０】
前述の観点および本発明の付随的利点の多くは、添付の図面と併せて読むと、次の詳細な説明を参照することによりこの発明をよりよく理解することにより、より容易に明らかになるであろう。
【００４１】
キーの数を減少させた日本語のためのキーボード・テキスト・インプット・システム
I. システム構成および基本動作
図１Ａには、本発明に従って形成されたキーの数を減少させたキーボードの不確定性除去システムが、組み込まれている、ディスプレイ53を有する携帯型移動電話52が示されている。携帯型移動電話52は、標準電話キーについて実施される、キーの数を減少させたキーボード54を含む。本出願では、用語「キーボード」は、キー用の定義領域を有するタッチスクリーン、離散的メカニカルキー、膜キー等を含む、如何なるインプット装置も含むように広く定義される。キーボード54の各キーの仮名の配置は、図１Ａに表されるように、日本の電話機の事実上の標準になったものに対応する。キーボード54は、したがって、標準QWERTYキーボード、または1個のキーが五十音表に示される基本的な日本語の五十音図の仮名の各々に割り当てられる少なくとも46個のキーを含むキーボードと比較して、データ入力キーの数が少いことに留意されたい。
【００４２】
より詳しくは、本実施例において示される好適なキーボードは、”選択(Select)”キー60と”変換(CONVERT)”キー62と共に、3行4列に配列された1〜0の番号が付された10個のデータ・キーを含む。オプションとして、キーボードは、更に、前のキーストロークを削除するための”クリア”キー64；明確な文字、数および記号をタイプするためのモードの入力に関する”モード(Mode)”キー67；および以前に入力された仮名に濁点(dakuten)および半濁点(handakuten)を追加するための”発音区別符号(Diacritic)”キー68を含むことができる。
【００４３】
データは、キーの数を減少させたキーボード54のキーストロークにより不確定性除去システムにインプットされる。第一の好適実施例の場合、ユーザがキーボードを使用してキーストローク・シーケンスを入力すると、テキストは、電話ディスプレイ53に表示される。システムが、図１Ａ〜Ｄで表される移動電話のようなディスプレイ空間が限られたデバイスに実施される場合、現在選択されたオブジェクト、または最も可能性が高い語のオブジェクトのみが、テキストの生成時、挿入ポイント88に表示される。所望の語を入力するためにキーが、シーケンシャルに押下されると、インプット・シーケンスに対応する最も可能性が高い語が、いくつかの特徴的な書式で表示される。図１Ａに表される好適実施例の場合、現在の語は、点線のアンダーラインと共に表示される。後で詳しく述べるように、”選択”キー60または”変換”キー62が押された後、点線のアンダーラインは実線のアンダーラインに変化する。
【００４４】
図２Ｂおよび２Ｃに示される第二の好適実施例では、ユーザに情報を表示するために、ディスプレイ53上に２つの領域が定義される。上記した第一の実施例に関して記載されたように、テキスト領域66は、ユーザによって入力されたテキストを表示し、テキストのインプットおよび編集のためのバッファとして機能する。図２Ｂおよび２Ｃに示されるように、典型的にテキスト領域66の下に位置する選択リスト領域77は、語のリストおよびユーザにより入力されたキーストローク・シーケンスに対応する他の解釈を示す。選択リスト領域は、インプット・キーストローク・シーケンスの最も頻繁に発生する解釈と、頻度の降順に表示された、発生頻度が相対的により小さい他の代替解釈との両方を同時に示すことによって、ユーザが、入力したキーストロークの不確定性を解決することを容易にする。
【００４５】
キーの数を減少させたキーボードの不確定性除去システム・ハードウェアのブロック線図が、図２Ａに示される。キーボード54およびディスプレイ53は、適切なインターフェース回路を介してプロセッサ100に結合されている。オプションとして、プロセッサに、スピーカ102も結合される。プロセッサ100は、キーボードからインプットを受信し、かつディスプレイとスピーカへの全ての出力を管理する。プロセッサ100は、メモリ104に結合されている。メモリは、ランダムアクセスメモリ(RAM)のような一時記憶媒体、および読取り専用メモリ(ROM)、フロッピー（登録商標）ディスク、ハードディスクまたはCD-ROMのような恒久的な記憶媒体の組み合わせを含む。メモリ104は、システム・オペレーションを支配するために、全てのソフトウェア・ルーチンを含む。メモリには、オペレーティング・システム106、不確定性除去ソフトウェア108、以下で更に詳細に論じられる関連語彙モジュール110が、含まれていることが好ましい。オプションとして、メモリは、１つ以上のアプリケーション・プログラム112、114を含むことができる。アプリケーション・プログラムの具体例は、ワードプロセッサ、ソフトウェア辞書および外国の言語翻訳プログラムを含む。音声合成ソフトウェアもまた、アプリケーション・プログラムとして提供することができ、これにより、キーの数を減少させたキーボードの不確定性除去システムが通信補助として機能することが可能になる。
【００４６】
図１Ａを再び参照すると、キーの数を減少させたキーボードの不確定性除去システムは、ユーザが片手だけを使用して、すばやくテキストまたは他のデータを入力することを可能にする。データは、キーの数を減少させたキーボード54を使用して入力される。1〜0の各データ・キーは、キーに文字、数字および他の記号により表される複数の意味を有する。（本願明細書では、各データ・キーは、データ・キー上に示されている数字と文字（例えば、右上のデータ・キー「3 サ」）により識別される。個々のキーが複数の意味を有するので、キーストローク・シーケンスの意味は不確定である。したがって、ユーザがデータを入力する時、キーストロークのさまざまな解釈が、ディスプレイ上の複数の領域に表示され、ユーザが任意の不確定性を解決するのを助ける。入力されたキーストロークの可能な解釈の選択リストは、図２Ｂに示されるような大画面デバイスの場合、選択リスト領域でユーザに表示される。選択リストの最初の入力は、デフォルトの解釈として選択され、かつテキスト領域66の挿入ポイント88に表示される。好適実施例の場合、この入力は、挿入ポイント88（および大画面デバイスの場合には、選択リスト領域）にその下に引かれる点線のアンダーラインとともに表示される。このような書式化は、このオブジェクトが、現在の選択リストにおいて最も頻繁に発生するオブジェクトであることから、選択される可能性が高いことを示す。図２Ｂのようにディスプレイが選択リスト領域を含む場合、このような書式化は、挿入ポイント88のオブジェクトと、選択リスト領域77の表示された同じオブジェクトとの間に、視覚的関係も確立する。図１Ａの場合には、選択リストは、表示されず、挿入ポイント88には、デフォルト・オブジェクト（”選択”キーをアクティブにする前の選択リストにおいて、最初に表示されるであろうオブジェクト）、または１つが明確に選択された場合の現在選択されたオブジェクトのみが、表示される。
【００４７】
入力されたキーストロークの可能な解釈についての選択リストは、多数の方法で順序づけることができる。通常の操作モードでは、キーストロークは、まず、所望の語に対応する”読み方”(Yomikata)をつづる仮名入力として、解釈される（以下、「語解釈」）。例えば、図２Ｂに示される状況では、「カ」、「カ」および「カ」のキーストローク・シーケンスが、ユーザにより入力されている。キーの入力と同時に、キーストローク・シーケンスとマッチングする”読み方”を見つけるために、語彙モジュール探索が、実行される。”読み方”は、最も一般的に使用される”読み方”が最初にリストアップされて、使用頻度に従って、語彙モジュールから戻される。この具体例のキーストローク・シーケンスの場合、「かかく」、「きかく」および「きこく」の”読み方”が、キーストローク・シーケンスに対応する3つの最も有望な”読み方”であるとして、語彙モジュールから識別される。この選択リストに示される8つの識別された”読み方”の中で、「かかく」が、最も多用されるので、これはデフォルトの解釈として採用され、かつ挿入ポイント88に、暫定的に平仮名のテキストとして示される。図１Ａに示されるように、”選択”キー60が押下される前では、この最初の”読み方”が、デフォルトの解釈として採用され、かつ特徴的な書式を使用して、挿入ポイント88に示される。この書式は、データ・キーの１つについて連続するキーストロークが、新しいシーケンスを始めるのではなく現在のキーシーケンスに追加されるであろうことを示す。例えば、図１Ａに示されるように、この特徴的な書式化は、”読み方”を、点線のアンダーラインを伴う平仮名テキストとして表示する。マッチングした他の可能な”読み方”のリストは、それらの相対頻度に従って、ソートされて、メモリに保持される。
【００４８】
好適実施例の場合、所望の”読み方”に対応するキーストローク・シーケンスを入力した後、ユーザは、”選択”キー60を押下するだけである。挿入ポイント88に表示されたデフォルトの”読み方”である「かかく」の下の点線のアンダーラインは、実線のアンダーラインに置き換わる。表示されたデフォルトの”読み方”が所望の”読み方”でない場合、所望の”読み方”が現れるまで、”選択”キー60が繰り返し押下される。好適な一実施例の場合、キーシーケンスとマッチングするメモリの”読み方”の全てが、”選択”キー60の繰り返されるアクティブ化で表示された後で、キーシーケンスは、（各キーストロークが、キーのラベルに表されている数字を生成する）数として解釈される。このことは、数を、別個の数字モードを必要とせずに生成することを可能にし、更に、数は、”読み方”の解釈の選択リストの終わりを容易に認識できるインジケータとして機能する。次に”選択”キー60を押下すると、選択リストにおける最初の”読み方”に戻る。
【００４９】
所望の”読み方”が表示され、所望の”見出し語”(Midashigo)（テキストの解釈）が、すでに表示された平仮名テキストの”読み方”と実際同じである場合、ユーザは、入力しようとする次の”読み方”の最初の仮名に対応するデータ・キーを押下する。一方、所望の”見出し語”が、漢字、漢字と平仮名、片仮名またはこれらの組み合わせから成る場合、ユーザは”変換”キー62を押下する。これにより、表示されている”読み方”は、語彙モジュールにおけるその”読み方”に関連した、最も頻繁に発生する”見出し語”に置き換えられる。”変換”キー62を繰り返し押下することにより、表示された”見出し語”は、関連付けられた別の”見出し語”に、頻度の降順で置き換わる。好ましい一実施例の場合、選択された”読み方”に関連付けられているメモリの”見出し語”の全てが、”変換”キー62のアクティブ化を繰り返すことにより表示された後に、選択された”読み方”が片仮名として表示される。このことは、片仮名の語を別のモードにすることなく生成することを可能にし、更に、”見出し語”解釈の選択リストの終わりを容易に認識できるインジケータとしても機能する。別の好適実施例の場合、ユーザがインプット・キーシーケンスに関連する最初の（デフォルトの）”読み方”に関連付けられている”見出し語”を選びたい場合、”選択”キー60を押下することなく、”変換”キー62を、直接押下することにより、所望の”見出し語”を得ることができる。
【００５０】
”選択”キー60および”変換”キー62の何れかまたは両方が１回以上押下されると、如何なるデータ・キーを押下しても、表示されている”読み方”または”見出し語”の特別な書式（好適実施例における実線のアンダーライン）が除去され、かつこのキーが、システムが解釈する新しいキー・シーケンスの第一番目のキーストロークになる。先行するキーストローク・シーケンスの解釈を確認するための特別なキーストロークは、必要とされない。
【００５１】
上述した適実施例の場合、”選択”キー60を押下することは、（頻度の降順で）現在のキーシーケンスに関連する、メモリ内の”読み方”を、順方向に循環する。別の好適実施例の場合、予め定められた時間閾値以上に”選択”キー60を押下し続けること(pressing-and-holding)は、メモリにおける”読み方”を、頻度の昇順で逆方向に循環する。したがって、数の解釈が、先に述べた通りにメモリ内の関連付けられた”読み方”のシーケンスの最後に含まれる場合、”選択”キー60を普通に押下する前に”選択”キー60を押下し続けること(press-and-hold)は、即座に数の解釈を逆方向に循環する。”選択”キー60を繰り返し押下し続けることは、関連付けられた”読み方”を頻度の昇順で逆方向に循環する。同様に、”変換”キー62を押下し続けることは、現在選択された”読み方”に関連する”見出し語”を頻度の昇順で逆方向に循環する。同様に、”変換”キー62を普通に押下する前に、まず”変換”キー62を押下し続けることは、即座に、片仮名解釈を逆方向に循環する。
【００５２】
更に、図１Ａを参照すると、別の好適実施例において、データ・キーを入力する場合、”クリア”キー64を押下すると、以前に入力されたデータ・キーを削除することができる。したがって、現在のキーシーケンスにおける全てのデータ・キーを削除する場合、”クリア”キー64を押下すると、現在の選択リストが空の場合、標準テキストカーソルを表示する挿入ポイント88より左にあるテキスト表示53の文字は削除される。”選択”キー60および”変換”キー62の何れかまたは両方を１回以上押下した後に、”クリア”キー64を押下すると、挿入ポイント88において現在選択されているテキストの解釈が、現在のキーシーケンスのデフォルトの”読み方”解釈に置き換わるが、キーシーケンスからのデータ・キーは何れも削除されない。言い換えると、”選択”キー60および／または”変換”キー62を任意の回数押下した後の、”クリア”キー64の最初の押下は、事実上、”選択”キー60および”変換”キー62のアクティブ化の全てを「削除」し、システムを、”選択”キー60または”変換”キー62の何れかの最初の押下の直前の状態に戻す。別の好適実施例の場合、”変換”キー62を１回以上押下した後、”選択”キー60を押下することは、挿入ポイント88において現在選択されている”見出し語”を、”見出し語”が関連付けられた”読み方”に置き換える。”選択”キー60を更に押下すると、（頻度の降順で）現在のキーシーケンスに関連するメモリ内の他の”読み方”は、そのポイントから順方向に循環し続ける。
【００５３】
別の好適実施例の場合、確定した文字を明確に生成する他の手段のアクティブ化（例えば、特別な”記号”モードを入力すること、および特定の一字に明確に関連付けたキーを押下すること）は、何れも、現在のキーシーケンスを終了させることになる。この結果、挿入ポイント88に表示されている”読み方”または”見出し語”の如何なる特別な書式化（好適実施例における点線また実線のアンダーライン）も、除去され、かつ特定の確定した文字が、新しい挿入ポイント88において出力語に追加される。
【００５４】
挿入ポイント88に選択されている”読み方”または”見出し語”をテキスト領域に暫定的に示すことは、ユーザが、選択リストを参照する必要なしに、テキスト領域上に彼等の注意を集中させることを可能にする。ユーザのオプションにより、”選択”キー60（または”変換”キー62）の最初の押下が受信されると、暫定的に示されている挿入ポイント88における”読み方”（または”見出し語”）を、現在の選択リストのコピーを表示するために（垂直にまたは水平に）拡張することができるように、システムを構成することもできる。ユーザは、選択リストのこのコピーに表示される語の最大数を選択することができる。これに代えて、ユーザは、”選択”キーの最初のアクティブ化の前でさえ、選択リストを、挿入ポイント88において常に表示させるように決めることもできる。不確定性除去システムは、（不確定なデータ・キーのアクティブ化、または確定した明確な文字の生成により）現在選択された入力が所望の入力であるとユーザが確認すると、次の語の先頭を解釈する。したがって、選択された語は、ユーザの選択として挿入ポイント88に残り、アンダーラインは完全に消え、かつこの語は、特別に書式化されていない標準テキストで再表示される。
【００５５】
大部分のテキスト入力では、キーストローク・シーケンスは、ユーザが意図する仮名の”読み方”を形成する。しかしながら、各キーには、関連する文字および記号が複数存在するので、個々のキーストロークおよびキーストローク・シーケンスにいくつかの解釈が存在することになることは、理解されるであろう。キーの数を減少させたキーボードの好適な不確定性除去システムの場合、キーストローク・シーケンスが解釈されかつ語のリストとしてユーザに表示されるのと同時に、さまざまな異なる解釈が、自動的に決定され、かつユーザに表示される。
【００５６】
例えば、キーストローク・シーケンスは、ユーザが入力する可能性がある仮名についての可能な有効なシーケンスに対応する語幹の観点から、解釈される（以下、「語幹解釈」）。語解釈と異なって、語幹は不完全な語である。語幹の場合には、最後のキーストロークについて可能な解釈を示すことにより、ユーザは、正しいキーストロークが入力されたことを容易に確認し、また、彼または彼女の注意が語の途中で変更されていた場合、タイプを再開することが出来る。語または句が長い場合、それらが入力とは一部しか対応せず、如何なる完全な語または句とも対応しないキーシーケンスがある。このような場合、ユーザに提供できる最も有効なフィードバックは、そのポイントまでに入力された語の語幹に対応する仮名を示すことである。図２Ｂに示される具体例の場合、キーストローク・シーケンス「カ」、「カ」、「カ」を、有効な語幹「かけき」（これは、最終的には、語「かけきん」となる）を形成すると、解釈することが出来る。したがって、語幹解釈が、選択リストの入力として提供される。語幹解釈は、データ・キーにより追加されたキーストロークにより、各語幹から生成することができる可能な全ての語のセットの合成頻度に従って、ソートされることが、好ましい。このような入力の表示される合成頻度の最大数および最小数は、ユーザにより選択可能であり、またはシステムにおいて構成することもできる。この結果、語幹解釈の内のあるものは、表示されない可能性がある。選択リストに語幹解釈をリストする際に、語幹解釈が選択リストに現れる語と重複する場合には、その語幹は、省略される。しかしながら、語幹が省略される場合には、省略された語幹に対応する語には、これらの語幹を含むより長い語も存在することを示すために、記号で印を付すこともできる。ユーザが、正しいキーストロークが所望の語の入力として入力されたことを確認するために、語幹解釈は、フィードバックされる。
【００５７】
図３は、不確定なキーストローク・シーケンスの不確定性をユーザが除去することを容易にするために、選択リストを処理し、かつ挿入ポイント88に何が表示されるかを決定する、不確定性除去ソフトウェアのメインルーチンのフローチャートである。ブロック150において、システムは、キーボード54からのキーストロークの受信を待つ。キーストロークを受信すると、判断ブロック151において、受信されたキーストロークが、モード選択キーであるか否かを決定するテストが行われる。モード選択キーであるならば、ブロック172において、システムは、現在のシステムモードを示すフラグを設定する。判断ブロック173において、システムモードが変化したか否かを決定する、テストが行われる。変化した場合、ブロック171において、現在のシステムモードを反映するために、必要に応じて、表示がアップデートされる。ブロック151が、キーストロークがモード選択キーではないと決定すると、判断ブロック152において、受信されたキーストロークが”選択”キーであるか否かを決定するテストが行われる。キーストロークが”選択”キーでない場合、判断ブロック152Aにおいて、受信されたキーストロークが”変換”キーであるか否かを決定するテストが行われる。キーストロークが”変換”キーでない場合、判断ブロック153において、システムが特別な明確な文字モード、例えば、明確な”記号”モードにあるか否かを決定するテストが行われる。明確な”記号”モードにある場合、任意の暫定的に選択された項目が選択リストに存在するか否かを決定するために、判断ブロック166において、テストが行われる。そうであれば、ブロック167において、項目は、受け入れられかつ標準テキストとして出力される。次に、ブロック168において、キーストロークに対応する明確な文字が、テキスト領域に出力される。次に、判断ブロック169において、システムモードが自動的に変更されるべきか否かを決定するために、”記号”モードの場合と同様に、テストが行われる。そうであれば、実行はブロック170へ進み、かつシステムモードは、以前のアクティブ・モードに戻され、そうでなければ、実行はブロック150に戻る。
【００５８】
ブロック153において、明確な文字モードがアクティブでない場合、ブロック154において、このキーストロークは、格納されているキーストローク・シーケンスに追加される。ブロック156において、このキーストローク・シーケンスに対応するオブジェクトが、システムの語彙モジュールから識別される。語彙モジュールとは、キーストローク・シーケンスに関連付けられているオブジェクトのライブラリである。オブジェクトは、受信されたキーストローク・シーケンスに基づいて検索されるべき、格納されているデータの一部分である。例えば、語彙モジュールの範囲内のオブジェクトは、数字、文字、語、語の構成要素、語幹、句またはシステム関数およびマクロを含むことができる。各々のこれらのオブジェクトは、オブジェクトの表（特許文献３の26−27頁参照）に簡潔に記される。
【００５９】
好適な語彙オブジェクトが上述されているが、他のオブジェクトも考察できることは理解されるであろう。例えば、グラフィック・オブジェクトは、格納されているグラフィック・イメージに関連させることが出来、またスピーチ・オブジェクトは、格納されているスピーチのセグメントに関連させることが出来る。一般に誤って綴られた語およびタイプ・ミスされたキーストローク・シーケンスを、その語の正しいスペルにリンクさせるスペリング・オブジェクトも、また、実施できる。処理を単純化するために、各語彙モジュールは、同種のオブジェクトを含むことが、好ましい。しかしながら、さまざまなオブジェクトを語彙モジュール内で混合させることも出来ることは、理解されるであろう。
【００６０】
図３を再び参照すると、ブロック156において、受信されたキーストローク・シーケンスに対応するこれらのオブジェクトが、各語彙モジュール内で識別される。ブロック158〜165において、語彙モジュールのキーストローク・シーケンスを探索することにより見いだされたオブジェクトには、ユーザに表示されるオブジェクトの順序を決定するために、優先順位がつけられる。選択リストに表示されるオブジェクトのシーケンスを決定するために、優先順位が、各語彙モジュール間に、更には、各語彙モジュールから戻されたオブジェクト間に、確立される。
【００６１】
さまざまな語彙モジュールから識別されるオブジェクト・リストに優先順位をつけるために、ブロック158において、キーの数を減少させたキーボードの不確定性除去システムの操作モードが、調べられる。上述したように、通常の操作モードでは、語解釈（”読み方”および”見出し語”）は、選択リストの中で最初に表示される。したがって、語の語彙モジュールからのオブジェクト・リストには、他の語彙モジュールからのオブジェクト・リストより、高い優先順位が、割り当てられるであろう。逆にいえば、不確定性除去システムの操作が数字モードである場合、数字の解釈には、他の語彙モジュールより高い優先順位が割り当てられるであろう。したがって、不確定性除去システムのモードは、語彙モジュール・オブジェクト・リスト間の優先順位を決める。或るモードでは、或る語彙モジュールからのオブジェクト・リストが、選択リストから完全に除かれる可能性があることは、理解されるであろう。
【００６２】
語彙モジュールから生成されるオブジェクト・リストは、一回の入力しか含まない場合も複数の入力を含む場合もある。したがって、ブロック160において、オブジェクト・リストが複数の入力を含む場合、同じ語彙モジュールからのオブジェクト間の優先順位が、決められる。所定の語彙モジュールにおいて探索された特定のキーストローク・シーケンスにマッチングするオブジェクトには、相互にそれらの相対的な提示を決定する優先順位も与えられる。上記したように、デフォルトの提示順序は、代表的なコーパスの使用量における使用頻度を減少させることによることが好ましい。したがって、各オブジェクトに関連付けられている優先順位データは、選択リストのオブジェクトを順序づけるために使用される。
【００６３】
語彙モジュールにおいて探索されるオブジェクトの提示に関連付けられている特性の多くは、適切なシステム・メニューにアクセスすることにより、ユーザがプログラムすることが出来る。例えば、ユーザは、選択リスト内における各オブジェクトの順序またはオブジェクトのクラスの順序を特定することができる。ユーザは、また、語彙モジュール間と各語彙モジュールから識別されたオブジェクトとの間の優先順位を決定する優先順位レベルを設定することもできる。
【００６４】
オブジェクト間の優先順位が決められた後、ブロック165において、選択リストが、識別されたオブジェクトから構成され、かつユーザに提示される。ユーザにより入力された不確定なキーストローク・シーケンスのデフォルトの解釈として、選択リストの最初の入力が、暫定的に示され、かつ図１Ａと１Ｃに図示されるように、テキスト領域53の挿入ポイント88において強調表示される。次に、不確定性除去ソフトウェア・ルーチンは、次のキーストロークを待つためにブロック150へ戻る。
【００６５】
検出されたキーストロークが”選択”キー60である場合、判断ブロック152から判断ブロック163へ「はい」の分岐が取られる。ここで、テストは、現在の選択リストが空であるか否かを決定する。空である場合、実行はブロック150へ戻る。判断ブロック163において選択リストが空でない場合、ブロック174への「いいえ」の分岐が取られる。ブロック174において、暫定的に示されている挿入ポイント88に表示されているデフォルトの”読み方”の下の点線のアンダーラインが、実線アンダーラインに変化する。ブロック175において、システムは、次いで、ユーザにより入力される次のキーストロークを検出する待状態に入る。キーストロークを受信すると、判断ブロック176において、次のキーストロークが”選択”キーであるか否かを決定するためのテストが行われる。次のキーストロークが”選択”キーである場合、ブロック178において、システムは、選択リストの次の”読み方”へ進み、および現在選択された項目としてそれに印をつける。ブロック179において、現在選択されている入力が、挿入ポイントに、実線のアンダーラインと共に、暫定的に表示される。次に、ルーチンは、ユーザにより入力される次のキーストロークを検出するためにブロック175へ戻る。ブロック175〜179から形成されるループにより、ユーザが、”選択”キーを複数回押下することにより、入力された不確定なキーストローク・シーケンスの、使用頻度がより少ないさまざまな”読み方”解釈を、選択することが可能となることは、理解されるであろう。
【００６６】
次のキーストロークが”選択”キーでない場合、判断ブロック177において、次のキーストロークが”変換”キーであるか否かを決定するためのテストが行われる。検出されたキーストロークが”変換”キーである場合、判断ブロック177からブロック190へ「はい」の分岐が取られる。ここで、現在の”読み方”に関連付けられている最初の”見出し語”が、選択された項目として印がつけられ、かつ”見出し語”テキストが、挿入ポイント88に、実線のアンダーラインと共に、暫定的に表示される。ブロック191において、システムは、次に、ユーザにより入力される次のキーストロークの検出を待つ。キーストロークが受信されると、判断ブロック192において、次のキーストロークが”選択”キーであるか否かを決定するためのテストが行われる。次のキーストロークが”選択”キーである場合、ブロック196において、システムは、現在選択されている項目を、現在選択されている”見出し語”が関連付けられた”読み方”に戻し、かつ現在選択された項目としてそれに印をつけ、次に、前と同様にブロック179に進む。判断ブロック192において、次のキーストロークが”選択”キーでない場合、判断ブロック193において、次のキーストロークが”変換”キーであるか否かを決定するためのテストが行われる。それが”変換”キーである場合、ブロック194において、現在選択されたオブジェクトは、現在の”読み方”に関連付けられている次の”見出し語”へ進み、かつ選択された項目として印がつけられる。ブロック195において、今選択されている”見出し語”が、挿入ポイント88に、実線のアンダーラインと共に、暫定的に表示される。次に、システムは、ブロック191へ戻り、ユーザにより入力される次のキーストロークの検出を待つ。
【００６７】
判断ブロック177または193において、次のキーストロークが”変換”キーでない場合、ルーチンは、ブロック180へと続く。ここで、暫定的に表示されている入力が、キーストローク・シーケンスの解釈として選択され、かつテキスト領域において標準テキストの書式に変換される。ブロック184において、”選択”キーまたは”変換”キーに続く不確定なキーストロークの受信が、システムに新しい不確定なシーケンスの開始を示すので、古いキーストローク・シーケンスは、システムメモリからクリアされる。新しく受信されたキーストロークは、次に、ブロック154において新しいキーストローク・シーケンスを開始するために使用される。最高の使用頻度を有する”読み方”解釈がデフォルトの選択として示されるので、不確定性除去ソフトウェアのメインルーチンは、”選択”キーの追加されたアクティブ化を必要とする最小数のインスタンスを有するテキストを、ユーザが、連続的に入力することを可能にする。
【００６８】
図１Ｂは、図１Ａと同様の、移動電話キーパッドの線図である。キーの数を減少させたキーボード54’は、複数のデータ入力キー21’〜30’を含む。一つ以上のデータ入力キーは、複数のローマ字(romaji character)（音声学上日本の仮名文字の発音を綴るために使用されるラテン文字）に関連付けられていて、かつキーに関連付けられている各々のローマ字によってラベル付けされる。インプット装置のユーザ操作によりインプットが選択されるたびに、インプット・シーケンスが、生成される。生成されたインプット・シーケンスのテキスト解釈は、一つ以上のデータ入力キーに複数のローマ字が関連するので、不確定である。システムのこの実施例は、図１Ａに示されるものと概念的に極めて似ているが、発音区別符号を有する仮名は、異なるラテン文字の使用によりローマ字(romaji)において特定されるので、発音区別符号キー68を必要としない。例えば、仮名「か」は、ローマ字で「KA」として特定され、発音区別符号の濁点が付けられた同じ仮名「が」は、ローマ字で「GA」として特定される。
【００６９】
通常の操作モードにおいて、キーストロークは、最初、所望の語解釈に対応する”読み方”を綴るために仮名に対応するローマ字のシーケンスの入力として解釈される。例えば、図１Ｂに示されるように、キーストローク・シーケンス、「5 KLM」、「4 HIJ」、「5 KLM」、「1 ABC」、「5 KLM」および「9 TUV」が、ユーザにより入力される。キーの入力と同時に、語彙モジュール探索が、キーストローク・シーケンスとマッチングする”読み方”を見つけるために実行される。”読み方”は、使用頻度に従う語彙モジュールから、最初にリストされる最も一般的に使用される”読み方”に戻される。キーストローク・シーケンスの具体例の場合、このキーストローク・シーケンスに対応する２つの最も有望な”読み方”として、”読み方”KIKAKU（「きかく」）およびMIKAKU（「みかく」）が、語彙モジュールから識別される。この選択リストの２つの識別された”読み方”の中で、KIKAKU「きかく」が最も多用されるので、それはデフォルトの解釈とされ、かつ挿入ポイント88’に平仮名テキストとして暫定的に示される。図１Ｂに示されるように、”選択”キー60”を押下する前に、この最初の”読み方”は、デフォルトの解釈とされ、かつ特徴的な書式を使用して、挿入ポイント88に示される。ローマ字で”読み方”を特定することは、平均して、仮名による特定の場合のおよそ倍の文字（したがって、倍のキー選択）を必要とする。図１Ｂに示されるシステムの場合、インプット・キーの数は同じ（10個）でも、２倍のキーストロークが入力されるので、統計的により多くの情報が特定される。従って、図１Ｂに示されるシステムは、一般に、図１Ａに示されるそれより、不確定な選択がより少ない結果になる。
【００７０】
II. 確定したテキストの入力方法
本発明は、ユーザが、キーストロークの順序付けられた対として、所望の各仮名を確定して特定することを可能とする、キーの数を減少させた日本語用キーボードのための方法も提供する。日本語の五十音図は、108個の音節を含む（小文字の「っ」、「ゃ」、「ゅ」および「ょ」は、異なった様式で書かれ、かつ異なって発音されるので、これらは、標準サイズの「つ」、「や」、「ゆ」および「よ」とは別個の音節として計算される）。いくつかの追加のあまり使用されない音節には、例えば、母音音節「あ」、「い」、「う」、「え」および「お」の小文字版があるが、これらは主に片仮名においてのみ使用される。後述するようにディスプレイと連動して使用されると、これらのあまり使用されない音節もまた、システムにより、容易に、生成させることができる。108個の標準音節の中で、37個は、他の71個の音節の１つに単に発音区別符号「゛」または「゜」の１つを追加することにより生成される。発音区別符号のないこれらの71の音節は、下記で詳細に説明されるように、9または10行および8〜10列の単一のマトリックスに論理的に編成することができる。本発明のキーボード上の複数のキーは、２つの仮名、すなわち、マトリックスの所定の行に関連付けられている子音を表す第一の仮名と、マトリックスの所定の列に関連付けられている母音を表す第二の仮名とによってラベル付けされる。
【００７１】
この編成は、108個の音節の106個については、日本語のネイティブ・スピーカにとって論理的かつ直覚的であり、かつ、残りの２音節（小文字の「っ」および「ん」）を生成するための方法は、単純でかつ覚えやすい。２つの別々の仮名により表される口蓋音化された母音を有する音節（例えば「KYA」、「KYU」および「KYO」）を含めて、すべての音節は、一対のキーストロークにより生成される。このことは、キーの数を減少させたキーボードに仮名を入力するための現在使用されている複数回ストローク方法に比較し、必要とされるキーストロークが、著しく少なくなる結果をもたらす。したがって、本発明は、日本語のネイティブ・スピーカが、容易に理解しかつすぐ覚えることができ、かつインプット・キーストローク・シーケンスの長さを減らすことができることから効率的である、キーの数を減少させたキーボードを提供する。
【００７２】
好適実施例の場合、日本語の五十音図の71個の音節は、音節・キー割当表Ａに示されるマトリックスで編成される。音節・キー割当表Ａの最初の8つの列に現れる全ての69個の音節については、対応する順序付けられた対の第一番目のキーストロークが、出力される音節の子音を決定し、および、第二番目のキーストロークが、母音を決定する。残りの２つの音節（小文字の「っ」および「ん」）は、以下に記載される例外的な場合である。音節・キー割当表Ａに示されていない残りの37個の音節は、別個のキーを使用して、音節・キー割当表Ａのマトリックスに現れる対応するベース音節に発音区別符号を追加することにより、生成される出力である。図１Ｃは、本発明のキーの数を減少させた日本語用キーボード・システムの実施例を組み込んだキーパッドを有する、機能が限られたまたは表示機能を備えない移動電話の線図を示す。10個のキー121〜130の各々には、キーの左上領域に、音節・キー割当表Ａの「Key1」に分類される列の行ヘッダからの仮名ラベル（以下、「行ラベル仮名」）の１つがラベル付けされていて、キーの右下領域には、音節・キー割当表Ａの「Key2」に分類される行の列ヘッダからの仮名ラベル（以下、「列ラベル仮名」）の１つが、ラベル付けされている。好適実施例の場合、２キー・シーケンスが入力されると、音節・キー割当表Ａに現れる音節が、生成される。ここで、第１キーは、音節が現れる行に対応する行ラベル仮名が、左上にラベル付けされているキーであり、および第２キーは、音節が現れる列に対応する列ラベル仮名が、右下にラベル付けされているキーである。10個の行ラベル仮名は、それらの標準辞書編集のシーケンスで、図１Ｃに示されているキーボード内の10個のキー121〜130の左上に示されている。最初の5個の列ラベル仮名は、それらの標準辞書編集のシーケンスで、キーボードの最初の5個のキー121〜125の右下に現れ、次で、（同様に、標準辞書編集のシーケンスで）3個のキー126〜128上の小文字の「ゃ」、「ゅ」および「ょ」がそれに続く。最後に、次のキー129に、小文字の「っ」が現れ、キー130の「ん」が続く。発音区別符号は、発音区別符号「゛」を生成するために一回、および発音区別符号「゜」を生成するために二回連続して”発音区別符号”キー131をアクティブにすることにより、任意の音節に追加することができる。発音区別符号が、口蓋音化された母音を有する（小文字の「ゃ」、「ゅ」または「ょ」が続く音節・キー割当表Ａ、Ｂの「い」列からの音節からなる２つの出力仮名により表される）音節に追加されると、発音区別符号が、２つの仮名の最初の仮名の直後の正しい位置で出力に追加される。
【００７３】
したがって、音節・キー割当表Ａ（特許文献３の図３２参照）の最初の8つの列に現れる69個の音節に対して、対応する順序付けられた対の第一番目のキーストロークは、出力される音節の子音を決定し、および第二番目のキーストロークは、母音を決定する。別の好適実施例の場合、ディスプレイが、ユーザにフィードバックを提供するために使用される。順序付けられた対の第一番目のキーストロークを受信すると、システムは、順序付けられた対の第二番目のキーストロークとして有効な各キーにより生成させることができるさまざまな音節を表示する。どのキーがどの音節を生成するかの関連は、音節を生成するキーに関連付けられている数字（または他の識別子）で各音節をラベル付けすることにより、示すことができる。これに代えて、音節は、（数字のラベルの有無にかかわらず）対応するキーの配置に対応する幾何学的な配置で表示することができる。例えば、テキスト表示を有する移動電話のようなデバイスの場合、音節は、電話キーパッドの1〜9のキーの配置に対応する3×3マトリックスで表示することができる。ディスプレイをこのように使用すると、母音音節「ぁ」、「ぃ」、「ぅ」、「ぇ」および「ぉ」の「小文字」版のようなたまにしか使用されない音節さえ、容易に生成することが出来る。例えば、音節・キー割当表Ｂ（特許文献３の図３３参照）に示されるマトリックスが使用される場合に、順序付けられた対の第１キーが押下されると（第１キーは、音節・キー割当表Ｂの最上行の母音のみの音節にしか対応していない）、ディスプレイには、第二番目のキーストロークのキー1〜5に関連付けられている母音音節「あ」、「い」、「う」、「え」および「お」の通常の大文字版と、キー6〜0に関連付けられている母音音節「ぁ」、「ぃ」、「ぅ」、「ぇ」および「ぉ」の「小文字」版とが、示される。
【００７４】
図１Ｄは、本発明のキーの数を減少させた日本語用キーボード・システムの実施例を組み込んだキーパッドを有する、テキスト表示機能を含む移動電話の線図である。10個のキー121〜130の各々には、キーの中央領域に、音節・キー割当表Ｂからの行ラベル仮名の１つのみがラベル付けされている。10個の行ラベル仮名は、図１Ｄに示されるキーボードの10個のキー121〜130上にそれらの標準辞書編集のシーケンスで現れる。図１Ｄは、キーストロークの順序付けられた対の第１キーとして、（「か」、「き」、「く」、「け」および「こ」に不確定に関連付けられている）キー122が、アクティブ化された後のディスプレイの表示を示す。好適実施例の場合、行ラベル仮名によってラベル付けされているキーがアクティブにされると、音節・キー割当表Ｂの対応する行の音節が、表示される。ディスプレイには、生成されるであろう仮名と、この仮名を生成するためにキーストロークの順序付けられた対の第２キーとして押下することができる各キーとの、間の関連が示される。音節・キー割当表Ｂの列は、図１Ｄに示される移動電話の各キー上の数字によりラベル付けされている（１か、２き、３く、４け、５こ、７きゃ、８きゅ、９きょ）。この好ましい実施例の場合、口蓋音化された母音（「きゃ」、「きゅ」および「きょ」）を有する3音節は、（数字7、8および9がラベル付けされている）キー127〜129に関連付けられている。したがって、これらの母音は、ディスプレイの一行に表示できることに留意されたい。このことは、ユーザが、それらを生成するであろうキーに、これらの関連した音節を関連づけることを、より容易にする。何故なら、この関連を、キー上の数字ラベルに対応する音節が表示される観点ばかりでなく、ディスプレイ上の音節とキーパッド上のキーが同じ3×3マトリックス配置を有する観点からも、作成することができるからである。前と同様に、発音区別符号は、”発音区別符号”キー131を、発音区別符号「゛」を生成するために一回、および発音区別符号「゜」を生成するために、二回連続してアクティブにすることにより、任意の音節に追加することができる。発音区別符号が、（図１Ｄに示される具体例におけるキー127〜129の第二番目のキーストロークに関連付けられている）口蓋音化された母音を有する音節に追加されると、発音区別符号が、２つの仮名の第一の仮名の直後の正しい位置で、出力に追加される。
【００７５】
図２Ｂおよび２Ｃは、実施されると、携帯型コンピュータ・タッチスクリーン上のキーボードとして現れる可能性がある、本システムの好適実施例を示す。図２Ｂは、キーストロークの順序付けられた対の第一番目のキーストロークの前に表示されるキーボード150を示す。図２Ｃは、キーストロークの順序付けられた対の第一のキーストロークとして、音節「か」、「き」、「く」、「け」および「こ」に関連付けられている図２Ｂのキー152が、アクティブ化された後に、表示されるキーボード170を示す。図２Ｃでは、キー171〜179には、それぞれ、仮名がラベル付けされていて、これらのキーがアクティブにされると、その仮名が、出力のために生成される。キーと音節のこの配置は、図１Ｄのディスプレイに示される3×3マトリックス配置と同じで、この配置は、音節・キー割当表Ｂに示される音節と同じ概念の編成を使用して、音節とキーパッドのキーとを関連付けている。
【００７６】
別の好適実施例の場合、音節・キー割当表ＡまたはＢの空のセルに対応する２キー・シーケンスが入力されても、何の出力もされず、かつユーザのオプションにより、音声によりエラー信号を生成させることができる。別の実施例の場合、図１Ｃの（列ラベル仮名の、小文字の「っ」がラベル付けされている）キー129を二回ヒットさせることに対応するセルも、また、小文字の「っ」を生成する。別の代替実施例の場合、列ラベル仮名の、小文字の「っ」がラベル付けされている列のセルは、また、全て、小文字の「っ」を生成する。同様に、別の代替実施例の場合、列ラベル仮名「ん」がラベル付けされている列のセルは、全て、「ん」を生成する。本発明の範囲を逸脱することなく、音節・キー割当表ＡおよびＢのマトリックスにさまざまな修正をなすことができることは、当業者には明らかであろう。例えば、小文字の「っ」および「ん」を、小文字の「っ」を生成するために一回、および「ん」を生成するために連続二回、アクティブにする別個のキーに、割り当てることによるような多種多様な方法で特定させる例外的な場合も可能である。より重要な本発明の観点は、音節・キー割当表Ａの最初の8つの列（つまり、音節・キー割当表Ｂの列1〜5および7〜9）の音節の特定方法である。
【００７７】
図１Ｃに示される好適実施例における行ラベル仮名および列ラベル仮名のキーへの割当てが、最も自然ではあるが、行ラベル仮名および列ラベル仮名を、本発明の範囲から逸脱することなく、他の組み合わせでキーに割り当てる代替実施例も、また、可能であることは、当業者に明らかであろう。図４および５は、行ラベル仮名および列ラベル仮名が代替配置のキーに割り当てられる、多くの可能な代替実施例のいくつかを示す。
【００７８】
別の実施例の場合、本発明のシステムは、図５に示されるように、キーが9個しかないキーボード上で実施させることもできる。音節・キー割当表Ａの71個の異なった音節の内68個（68）は、行ラベル「や」に対応する行が除去された音節・キー（９個）割当表（特許文献３の図３４参照）に示されるように、編成させることもできる。このような9個のキーシステムでは、3個の音節「や」、「ゆ」および「よ」は、第１キーが、表の第１の行のセルに対応する行ラベル「あ」である、順序付けられた対のキーシーケンスから、生成される。音節、小文字の「っ」および「ん」は、音節・キー割当表Ａの最後の2列を併合させた最後の列のセルに対応する、キーシーケンスにより生成される。
【００７９】
本発明の別の観点の場合、システムは、次のキーストロークが、（出力される音節の子音を決定する）順序付けられた対の第一番目のキーストローク、または（出力される音節の母音を決定する）順序付けられた対の第二番目のキーストロークの何れで処理されるべきかを、ユーザに表示する。例えば、この表示は、交替に点灯される一対のラベル付けされたLEDにより、実施させることができる。これに代えて、２つの異なったアイコンを、ディスプレイに交替に示すこともできる。このような表示の多くの他の代替実施例も、また、本発明の範囲を逸脱することなく可能であることは、当業者に明らかであろう。
【００８０】
図１Ｃおよび２Ｂに示されるような適切なラベルのキーへの割り当て；キーストロークの順序付けられた対から音節の生成；図１Ｄおよび２Ｃに示されるような順序付けられた対の第一番目のキーストロークに続く適切なフィードバックの提供；キー・ラベルの編成と日本語の五十音図の標準順位付けと配置との間の自然の対応；および次のキーストロークが、音節の子音を特定する行ラベル仮名または母音を特定する列ラベル仮名に対応するか否かのユーザへの表示、の組み合わせた効果は、テキストを確定してインプットするのに対して効率的であるのみならず、日本語のネイティブ・スピーカにより容易に理解され、かつすばやく覚えられるシステムをもたらす結果になる。したがって、習得し使用し易い、減少された数のフルサイズのキーを有するキーボードを使用することにより、テキストの確定した高速入力が、達成される。
【００８１】
III. 不確定なキーストロークと確定したキーストロークを組み合わせるテキスト入力方法
本発明の更に別の観点の場合、音節の不確定な特定と、確定した特定の両方を、このインプット方法で、より大きな効率を達成するために組み合わせることができる。好適な一実施例の場合、ユーザのオプションにより、入力されるべき語の第一の音節を、上述した２キーストローク方法を使用して、確定して特定することができる。口蓋音化された母音を有する音節の場合、これらの最初の２つのキーストロークが、結果として（口蓋音化された母音を示す小文字の「ゃ」、「ゅ」または「ょ」を含む）２つの平仮名文字を特定することに留意されたい。語または句の残りの音節の特定は、各音節に関する一回のキーストロークでは、不確定である。１音節または２音節のように短い語の場合には、この組み合わせられた方法は、インプット・シーケンスの不確定性を著しく減らすことができ、従って、ユーザが、所望の読みを見つけるために調べる必要がある候補の読みの数を減らすことができる。別の代替実施例の場合、当業者に公知の複数回ストロークによる特定方法を、語または句の第一の音節のみを確定して特定するために使用することはできるが、残りの音節の特定は、不確定である。
【００８２】
不確定を特定化する本発明の方法を使用する更に別の代替実施例の場合、２ストロークの方法は、語または句の（第一の音節のみならず）任意の所望の音節を特定するために使用することができる。例えば、或る時間閾値以上にキーを押下し続けることにより、直後のキーストロークが、所望の音節を確定して特定する２キーストロークの内の２番目のものであることを示すことができる。このアプローチは、２つの利点を有する。１つ目は、（語または句の第一の音節のみならず）任意の音節を確定して特定することができるということである。２つ目は、このことがインプットの効率を増加させるとユーザが考えるときのみ、ユーザは、音節を確定して特定することを選択することができることである。より一般的でない、いくつかの語および句に対して（特により短い語に対して）、最も一般的に使用される語および句をデフォルトで提示することは、全ての音節の特定が不確定である場合、所望の”読み方”を選択するために、”選択”キーを何度もアクティブ化することが必要となる。このような場合、少なくとも１つの音節を確定して特定することは、ユーザが、同じポジションで確定して特定された同じ音節を、共有するそれらの”読み方”の中からのみ選択すれば良いので、所望の”読み方”を生成するために必要なキーストロークを、著しく少なくすることが出来る。
【００８３】
IV. 不確定なキーストロークの不確定性除去をサポートするデータベース構造
インプット・シーケンスの不確定性を除去するために使用される語および句のデータベースは、１つ以上のツリー・データ構造を使用して、語彙モジュールに格納される。特定のキーストローク・シーケンスに対応する語は、直前のキーストローク・シーケンスに関連付けられている語および語幹のセットを修正する命令の形で、ツリー構造で格納されているデータから構成される。したがって、シーケンスの各新しいキーストロークが処理されるとき、そのキーストロークに関連付けられている命令のセットが、使用されて、それに追加されるこの新しいキーストロークを有するこのキーストローク・シーケンスに関連付けられている語および語幹の新しいセットが作成される。このように、語および語幹は、明示的にデータベースに格納されず、それらは、それらにアクセスするために使用されるキーシーケンスに基づいて構成される。
【００８４】
日本語の場合、ツリー・データ構造は、２つのタイプの命令を含む。一次命令は、語および句の発音に対応する仮名のシーケンスから成る語彙モジュールに格納される語および句の”読み方”を作成する。各”読み方”に対応することは、各”読み方”に関連する”見出し語”を作成する二次命令のリストである。各”読み方”は、直前のキーストローク・シーケンスに関連する”読み方”の１つを修正する一次命令により作成される。同様に、各”見出し語”は、二次命令が関連付けられた一次命令により修正された”読み方”に関連する”見出し語”の１つを修正する二次命令により作成される。
【００８５】
各一次命令が既知のキーを参照するので、どの特定の仮名が追加されるべきかに関する情報は、キーに関連付けられている仮名のセットへの論理インデクスとして、格納することが好ましい。１つのキー540の代表的な線図は、図6に表される。好適実施例におけるキー内部の論理表現は、物理的な配列を反映させる必要はない。例えば、541は、日本語の語彙モジュールの「2 か」キーに関連付けられているキーの好適な論理記述である。4つの更なる記号542（く、き、こ、け）も、また、キーに関連付けられている。また、これらの記号は、日本語辞書におけるそれらの使用頻度が減少する順序（く、き、こ、け）で、インデクス543が付されることが好ましい。そして更には、図７は、論理記号のインデクスを、日本語へのキー押下の不確定性除去で使用されるキー・インデクスに、関連づける好適な表である。図７は、先行する文字が濁点または半濁点と共に現れるときに、それらを特定するために使用される別個の”発音区別符号”キー68を有する、図１Ａに示される好適実施例に対応する表を示す。”発音区別符号”キー68を押下することは、先行する仮名に、濁点が追加されるのか、半濁点が追加されるのかという点で不確定である。代替実施例の場合、”発音区別符号”キー68を、濁点には一回、および半濁点には連続して二回押下することにより”発音区別符号”キー68は不確定ではなくなる。別の好適実施例の場合には、（濁点または半濁点を伴うものおよび伴わないもの）全ての所定の仮名の形態が、同じキーに関連付けられ、かつ”論理記号インデクス表(Logical Symbol Index Table)”の同じ行にも現れるであろう。このことは、システムが、”発音区別符号”キー68の使用がオプションとなるように設定されるデータベースを使用することを可能にする。このようなシステムでは、”発音区別符号”キー68の使用を必要とするオプションが使われない場合、発音区別符号を有する仮名の追加を特定する命令は、”発音区別符号”キー68が（濁点のために）一回、または（半濁点のために）二回押下されるまで、スキップされる。
【００８６】
語オブジェクト語彙モジュール1010のツリーの代表的な線図が、図１０に表される。ツリー・データ構造は、対応するキーストローク・シーケンスに基づいて、語彙モジュールにおけるオブジェクトを編成するために使用される。図１０に示されるように、語彙モジュール・ツリーにおける各ノードN001、N002、... N011は、特定のキーストローク・シーケンスを表す。ツリーのノードは、パスP001、P002、...P011により接続されている。不確定性除去システムのこの好適実施例では、不確定なデータ・キーが11個存在するので、語彙モジュール・ツリーの各親ノードは、11個の子ノードと接続できる。ノードからパスが欠如していることは、キーストローク・シーケンスが無効であること、すなわち、このシーケンスが、格納された如何なる語にも対応しないことを示す。他方、パスにより接続されているノードは、有効キーストローク・シーケンスを示す。インプット・キーストローク・シーケンスが無効であっても、好適実施例のシステムは、インプット・キーシーケンスの数を解釈しかつそれを表示することが出来ることに留意されたい。（”選択”キーを押さないにもかかわらず）挿入ポイントに数の解釈が出現することは、ユーザに、語彙モジュールにはインプット・キーシーケンスに対応する語が存在しないことを示す。
【００８７】
語彙モジュール・ツリーは、受信されたキーストローク・シーケンスに基づいてトラバースされる。例えば、ルート・ノード1011から第２データ・キーを押下することにより、第１キーに関連付けられているデータが、ルート・ノード1011の内部からフェッチされかつ評価され、次に、ノードN002へのパスP002が、トラバースされる。第二データ・キーを再度押下することにより、第２キーに関連付けられているデータがノードN002からフェッチされかつ評価され、次に、ノードN102へのパスP102が、トラバースされる。以下に、より詳細に述べるように、各ノードは、キーストローク・シーケンスに対応する多くのオブジェクトに関連付けられている。各キーストロークが受信され、かつ対応するノードが処理されると、オブジェクト・リストが、このキーストローク・シーケンスに対応するオブジェクトから生成される。各語彙モジュールからのオブジェクト・リストは、選択リストを生成するために、不確定性除去システムのメインルーチンにより使用される。
【００８８】
図８Ａは、各ノードに関連付けられた好適なデータ構造400のブロック線図である。データ構造は、語彙モジュール・ツリーの各親ノードを子ノードにリンクする情報を含む。データ構造は、また、ノードにより表される特定のキーストローク・シーケンスに関連付けられたオブジェクトを識別するための情報（命令）も含む。
【００８９】
ノード・データ構造400の第一のフィールドは、有効キー・ビット・フィールド402であり、これは、親ノードに接続されている子ノードの数および識別を示し、かつ11個の可能なキーのノードは、このノードにより表される特定のキーストローク・シーケンスに関連するオブジェクトを識別する（構成する）ための情報（命令）に関連付けられている。この好適実施例の場合、11個のデータ・キーが存在するので、最大11個の子ノードが、任意の親ノードに接続される可能性がある。したがって、子ノードの有無を示すために、11個の有効キー・ビットが、有効キー・ビット・フィールド402に提供される。各有効キー・ビットは、語彙モジュールのそれぞれの子ノード・データ構造のポインタを含むポインタ・フィールド404a、404b、... 404nに関連付けられている。子ノードに関連付けられているキーストロークが、親ノードに関連付けられているキーストローク・シーケンスに有効に継続している場合のみ、子ノードが存在するので、ポインタ・フィールドの数は、各ノードごとに異なる。例えば、有効キー・ビット・フィールド402が、可能な11個のキーストロークの内6個しか、有効な子ノードに導くことがないことを示す場合もある。この場合、有効なパスは6個しか存在しないので、親ノードに対するデータ構造には、6個のポインタ・フィールドしか、含まれない。有効キー・ビット・フィールド402は、ノード・データ構造の範囲内に含まれるポインタ・フィールドの識別を確認するために使用される。キーストロークが有効な子ノードに至らない場合、関連付けられたポインタ・フィールドは、語彙モジュールを格納するために必要なメモリ空間の量を節約するために、ノード・データ構造から削除される。
【００９０】
各ノードは、ノードにより表されるキーストローク・シーケンスに対応する多数のオブジェクトに、関連付けられている。各々のオブジェクトは、ノード・データ構造に含まれる有効キー・ビット・フィールド402のビット・パターンにより示される、特定の有効キーに付与されたパケット408の命令406により、記述される。
【００９１】
各パケットの各命令406は、各ノードにより表されるキーストローク・シーケンスに対応するオブジェクトの一つを記述する。オブジェクトを記述するには、２つのオブジェクト・リストを維持することが必要である。図１１は、語彙モジュール・ツリーの親および子から不確定性除去ソフトウェア・プロセスにより動的に作成される代表的なオブジェクト・リストを表す。オブジェクト・リスト430は、２個のキーストロークを表すノードに関連付けられているオブジェクト1〜N1を含むオブジェクト・リストである。オブジェクト・リスト440は、3個のキーストロークを表すノードに関連付けられているオブジェクト1〜N2を含むオブジェクト・リストである。各オブジェクト・リストは、各ノードに関連付けられている全てのオブジェクトのリストを含む。オブジェクト・リスト430は、図１Ａのキーボードからのキーストローク・シーケンス「2か」「2か」を表す親ノードに関連付けられている。オブジェクト・リスト440は、キーストローク・シーケンス「2か」「2か」「2か」を表す子ノードに関連付けられている。オブジェクト・リストのサイズが、各ノードに関連付けられているオブジェクトの実際の数ごとに異なることは、理解されるであろう。
【００９２】
子ノードに関連付けられている各”読み方”オブジェクトは、親ノードにより構成されたオブジェクトに、仮名文字を追加する一次命令により構成される。図８Ａの命令406のパケット内の各命令は、したがって、子ノード・オブジェクトを構成するために使用されるオブジェクトを、親ノード・オブジェクト・リストから識別する、図８Ｂに示される”オブジェクト・リスト・インデクス(Object-List-Index)”フィールド556を含む。例えば、図１１の場合、古いオブジェクト・リスト430の第３オブジェクト「きか」が、新しいオブジェクト・リスト440の第二オブジェクト「きかく」を構成するために使用される。したがって、前のオブジェクト識別子フィールドのOBJECT-LIST-INDEX556は、新しいオブジェクトを構成するために使用される古いオブジェクトを識別するために、古いオブジェクト・リスト内の入力へのリンクを提供する。
【００９３】
命令558は、新しいオブジェクトを構成するために識別されたオブジェクトに追加する記号を示すために、”論理記号インデクス(LOGICAL-SYMBOL-INDEX) “フィールド555を含む。したがって、”論理記号インデクス・フィールド”は、新しいオブジェクトを構成するために追加されるノードのキーシーケンスの最終的なキーから、字(letter)を特定する。字は、図７に表されるような表により特定される。例えば、図１１の場合、新しいオブジェクト・リスト440の第１オブジェクト「かかく」は、古いオブジェクト・リスト430の第４オブジェクト「かか」を使用し、かつ「く」を特定する追加されたキーストロークを追加することにより構成される。図６に示されるように、「く」は、「2か」キーの２番目の論理文字であるので、図７の論理記号インデクス表において、オブジェクト「かかく」を生成した命令の論理記号インデクス・フィールドは、表の第二の字を示すために「2」に設定される。このようにオブジェクトをエンコードすることは、各ノードに関連付けられた公知のキーシーケンスおよびキーに対する字の既知の関連性を利用する。その結果、各語彙モジュールに必要な記憶空間の量は大きく減少する。
【００９４】
また、語彙をエンコードする技術は、検索することなく語彙モジュール入力にアクセスすることを可能とする。新しい有効キーストロークを受信するたびに、システムは、現在のノードにおいてこのキーに関連付けられている命令を実行して、古いオブジェクト・リストから新しいオブジェクト・リストを構成し、次に、適切な子ノードへの単一のポインタに向かう。また、すべてのオブジェクトを語彙モジュールに格納する必要はなく、新しいオブジェクトを、LOGICAL-SYMBOL-INDEXフィールドを使用して定義し、古い解釈に追加しても良い。したがって、語彙モジュール内の複数のオブジェクトにより共有される語幹は、一回しか、格納されず、かつそれから導出されるオブジェクトの全てを作成するために使用される。ここで開示された格納方法は、子ノードのオブジェクト・リストを構成するために、語彙モジュール・ツリーの親ノードからのオブジェクト・リストを維持していなければならない。
【００９５】
例えば、図７に表される論理記号インデクス表の入力は、一文字である必要はない。如何なるシーケンスも、単一入力を占有することができる。例えば、語「きかなかった」を形成するために、仮名シーケンス「なかった」を、古いオブジェクト・リストの第３のオブジェクト「きか」に追加するかもしれない。このように、入力されたキーストローク・シーケンスの長さは、必ずしも、関連付けられたオブジェクトの長さに直接対応しない。記号インデクス表内の入力に格納されている文字シーケンスは、語彙オブジェクトを任意のキーシーケンスにより識別する、すなわち、語彙モジュール・ツリーの範囲内の任意の位置に格納させることを可能にする。
【００９６】
構成されつつあるオブジェクトに関する追加情報を特定するために、オブジェクトタイプ・フィールドを、図８Ｂの各命令558に含ませることもできる。オブジェクトタイプ・フィールドは、生成されたオブジェクトが、語、語幹、または他のオブジェクトの何れであるかを特定するコードを含むことができる。したがって、オブジェクトタイプ・フィールドは、異なるタイプのオブジェクトを所定の語彙モジュールの範囲内で混合させることを可能にする。更に、オブジェクトタイプ・フィールドは、また、語の音声部分と考えられる情報、またはさまざまな語尾変化、および語尾を構成するために必要とされる情報を含むこともできる。音声情報の部分を有する語彙モジュールを使用する、キーの数を減少させたキーボードのための不確定性除去システムは、不確定性除去プロセスを改善するために、構文上の解析を実施するための追加情報を使用することが出来る。オブジェクトタイプ・フィールドは、また、圧縮形式でのテキスト伝送を可能にするために、一意のコードを含むこともできる。つまり、入力されたキーストローク・シーケンス、または関連付けられた不確定性が除かれた文字が送信される代わりに、一意のコードが、リモートターミナルに送信されるであろう。
【００９７】
好適な語彙モジュール・ツリー・データ構造の主な特徴の一つは、各ノードに関連付けられているオブジェクトが、それらの使用頻度に従って、ノード・データ構造400に格納されることである。すなわち、命令406のパケットの第一命令により構成されるオブジェクトは、406における第二の命令（存在すれば）により構成されるものより、より高い使用頻度を有する。ここで、第二命令は、第三命令（存在すれば）より高い使用頻度を有する。このように、オブジェクトは、使用頻度が減少する順でソートされるように、オブジェクト・リスト内に自動的に配置される。説明の便宜上、語オブジェクトの使用頻度は、各語がコーパスにおいて発生する回数と比例する、有用な代表的なコーパスの範囲内における所定の語を使用する可能性を参照する。語幹オブジェクトの場合、使用頻度は、語幹を共有する全ての語の頻度を合計することにより決定される。
【００９８】
各ノードの使用頻度または他のランク情報を格納することは、システムを使用している際に、各オブジェクトのランクを決定しかつソートすることを不必要とする。このことは、格納されたオブジェクトが、極めて多数のより長い語に共通する共有語幹を含むことができるので、語オブジェクト語彙において重要な意味を有する。これらの語幹の相対的なランクを動的に決定することは、子ノードの全ツリーをトラバースし、かつ各語幹に関する情報を蓄積することを必要とするので、携帯型コンピューティング装置には、過大な処理オーバーヘッドを追加することになるであろう。したがって、前もってこの情報を決定し、かつそれを語彙データに格納しておくことは、処理のオーバーヘッドを減少させる。更に、ノードにより作成されるオブジェクトの使用頻度またはランクが、それらを作成する命令406の順位付けにより暗に表されるときには、この情報のためには、如何なる追加の記憶空間も、必要とされない。
【００９９】
オブジェクトが、それらの使用頻度に従う順序でノード・データ構造400の範囲に格納されることが、好ましいが、使用頻度フィールドもまた各命令に関連付けることができることも、理解されるであろう。使用頻度フィールドは、関連付けられたオブジェクトの使用頻度に対応する代表的な数を含む。異なるオブジェクト間の使用頻度は、各オブジェクトの使用頻度フィールドを比較することにより決定される。使用頻度フィールドを各オブジェクト・パケットに関連づける後者の構成を使用する１つの利点は、使用頻度フィールドを、不確定性除去システムにより変化させることができる点である。例えば、システムは、ユーザが代表的なテキストを入力する間に、語彙モジュールの範囲内で或るオブジェクトを使用した頻度を反映させるために、使用頻度フィールドを変化させることができるであろう。
【０１００】
図１２は、特定の語彙モジュール・ツリーの対応するオブジェクトを識別する、受信されたキーストローク・シーケンスを解析するためのサブルーチン600のフローチャートである。サブルーチン600は、特定のキーストローク・シーケンスに関するオブジェクト・リストを構成する。ブロック602は、新しいオブジェクト・リストをクリアする。ブロック604は、図１０のそのルート・ノード1011において、ツリー1010のトラバースを開始する。ブロック606で、第１キーが押下される。ブロック608〜612は、全ての利用可能なキー押下を処理するためのループを形成する。ブロック608は、図１３のサブルーチン620をコールする。判断ブロック610は、全ての利用可能なキー押下が処理されたか否かを決定する。未処理のキー押下がある場合、ブロック612は、次の利用可能なものの処理に進む。全てのキー押下が処理されると、ブロック614は、完成されたオブジェクト・リストを戻す。メインルーチンが、（各々が、最後のものより一つ多いキーを有し、かつ最後以外の全てのキーが、前の呼出しと同じものである）新しいキーストローク・シーケンスによって、繰り返し、サブルーチン600をコールする場合、サブルーチン620が、直接、最新のキー押下のみを処理するためにコールされると、初期設定ブロック602および604は、バイパスさせることができることは、理解されるであろう。
【０１０１】
図１３は、サブルーチン600からコールされるサブルーチン620のフローチャートである。上記したように、新しいオブジェクト・リストを構成するために、不確定性除去システムは、古いオブジェクト・リストのコピーからスタートする。したがって、ブロック626において、新しいオブジェクト・リストを構成するために使用することができるように、前のノードからのオブジェクト・リストが、格納される。
【０１０２】
図３に示されるメインルーチンの場合、キーストロークは、ブロック150においてシステムにより検出された。有効なパスが、キーストロークに対応する子に存在する場合、新しいキーストロークが受信されると、語彙モジュール・ツリーの下方へのトラバースが生じる。したがって、図１３のブロック621において、有効な命令とポインタが、受信されたキーストロークに対応するか否かを決定するために、ノード400のデータ構造の有効キー・ビット・フィールドが、調べられる。判断ブロック622において、命令406と、404aのようなポインタ・フィールドとから成る有効なパケット408が、入力されたキーストロークに対応して存在するか否かを決定するために、有効キー・ビット・フィールドが、テストされる。キーストロークに対応する有効なパケットが存在しない場合、ブロック624において、古いオブジェクト・リストが、選択リストを生成するためにメインルーチンに戻される。受信されたキーストロークは、語彙モジュールの範囲内の如何なるオブジェクトにも対応しない無効なキーストローク・シーケンスの部分であるので、このキーストロークは無視され、かつ、現在のオブジェクト・リストが、語彙モジュールからのオブジェクト・リストであるとして、メインルーチンに戻される。したがって、ブロック622および624から成るサブルーチン620の分岐は、如何なる無効なキーストローク・シーケンスも無視し、かつ不確定性除去システムにより生成される選択リスト内に含ませるために親ノードにおいて生成されるオブジェクト・リストを戻す。
【０１０３】
判断ブロック622において、受信されたキーストロークに対応する有効なパケットが、存在する場合、サブルーチンは、ブロック626に進み、ここで、新しいオブジェクト・リストが、古いオブジェクト・リストにコピーされる。ブロック628は、所定のキーに関連付けられている第一の有効な命令をフェッチする。ブロック630は、第一の命令が新しいオブジェクト・リスト内に第一の項目を生成するように、繰返し子NEW-INDEXを「1」に初期化する。このサブルーチンは、次に、有効な命令に関連付けられているオブジェクト・リストを構成するために、ブロック632〜642より成るループに入る。ブロック632において、OBJECT-LIST-INDEXフィールド556が、調べられ、かつ対応するオブジェクトが、古いオブジェクト・リストからロードされる。ブロック634において、LOGICAL-SYMBOL-INDEXフィールド555が調べられ、かつ（図７の550のようなLOGICAL-SYMBOL-INDEX表を介して受信されたキーストロークに関連する）適切な記号が、識別されたオブジェクトの終わりに追加される。所定のキー551と論理記号インデクス552での記号表550の入力が、文字シーケンスを保持する場合、ブロック634において、２個以上の文字を識別されたオブジェクトに追加することができることは、理解されるであろう。ブロック636において、組み合わされたオブジェクトおよび記号が、新しいオブジェクト・リストにおける新しいオブジェクトとして格納される。ブロック638において、サブルーチンが、所定のノードで所定のキーに関連付けられている最後の有効な命令を処理したか否かを、決定するテストが行われる。最後の有効な命令が処理されなかった場合、ブロック640において、次の有効な命令がフェッチされる。ブロック642において、NEW-INDEXが、増加する。
【０１０４】
判断ブロック638におけるテストが、オブジェクトの全てがノードのために既に構成されたことを示すと、サブルーチンは、ブロック644へ進み、かつ子ノードに関連付けられたポインタに従う。ブロック646において、新しいオブジェクト・リストが、選択リストを生成するためにメインルーチンに戻される。各ノードに関連付けられているオブジェクト・リストの生成に関する図１２のサブルーチン600が、ユーザから受信される各キーストロークに対して実行されることは、理解されるであろう。各キーストロークは、語彙モジュール・ツリーの範囲内で、１つ追加されたレベル分、サブルーチンを前進させるだけであるので、ユーザが新しいキーストローク・シーケンスを入力する際、語彙モジュールの「検索」は、実行されない。各キーストロークに対しては検索が実行されないので、語彙モジュールは、最小の処理オーバーヘッドで、各ノードに関連付けられているオブジェクトのリストを戻す。
【０１０５】
図１０に表されたツリー・データ構造1010上で動作する、図１３に表されたサブルーチン620のオブジェクト識別ソフトウェア・プロセスに、キーストロークを組み合わせることにより、サブルーチン620の処理時間を増やすことなく、語彙モジュールのための格納の使用量をより少なくし、かつオブジェクトのより多くの語彙を検索する新規ないくつかの手段が得られる。
【０１０６】
所定の語彙モジュールの論理記号インデクス表550（図７）の各行の記号を、インプット辞書のそれらの使用頻度順に並べることにより、ツリー・データ構造1010内の全てのノード400の大部分の命令558（図８Ｂ）のそれらのLOGICAL-SYMBOL-INDEXフィールド555を、「1」となるようにすることが出来る。同様に、語幹および語オブジェクトが、オブジェクト・リスト440（図１１）内の言語におけるそれらの使用が減少する順に生成されるように、全てのノード400内の全ての命令パケット406の命令558を並べることにより、ツリー構造1010の全てのノード400の大部分の命令558のそれらのOBJECT-LIST-INDEXフィールド556を「1」となるようにすることが出来る。したがって、ツリー1010のデータの多くは、冗長である。親ノードを子ノードへリンクするパスを切り換え、かつもはや参照されない子ノードを削除することにより、系統的に冗長度を識別しかつそれらを除去することは、オリジナルのツリーよりもはるかにノードが少なく、はるかに命令が少なく、かつはるかにリンクが少ない、非常に折り畳まれた、つまり、ラップされたデータ構造をもたらすことが出来るが、このようなデータ構造でも、なお、オリジナルのツリーから検索可能なすべてのオブジェクトを検索することができる。更に、その命令がオブジェクト・リスト440において同様のオブジェクトを生成する、オリジナルのツリーからのパスの別のインスタンスは、折り畳まれたツリー内で共通のパスに併合される。このパスは、所定の語彙モジュールのツリー1010を定義するために当初使用されたものよりはるかに多くのオブジェクトを生成する縮小された構造を可能にする、ルールを構成する（特定化とは反対に）一般化されたオブジェクトとして、機能する。例えば、好適実施例では、30,000の英語の語のリストから生成される折り畳まれていない語彙ツリーは、78,000を超える命令を含むかもしれない。上記の好適実施例により折り畳まれた後、修正されたツリーは、所定の不確定なキーストローク・シーケンスおよび図１２のフローチャートの好適な方法において実施される検索プロセスに対し、（この構造が検索可能な語オブジェクトの数より少ない数）29,000より少ない命令を含むかもしれない。一回のキー押下に応答して一つの記号しか追加されないので、各命令は、図１１のオブジェクト・リスト430内で１つのオブジェクトしか変えず、顕著でかつ新規な結果をもたらす。このことは、折り畳まれたツリーと、命令の共通シーケンスを一般的なオブジェクト構成ルールとして再利用するソフトウェア検索プロセスとの結果である。ツリー構造の更なる修正点は、オブジェクトをキーストローク・シーケンスに関連づけるための一般化されたルールの自動識別である。このようなルールを使用すると、語彙モジュールは、キーストローク・シーケンスを、高い成功率で、それを作成する際に最初に使用されなかった語および語幹オブジェクトに、関連づけることができる。例えば、語彙モジュールを構築するインプットされた語のリストは、語「sun」、「run」および「running」を含むが、語「sunning」を含むことはできない。しかし、このアルゴリズムにより作成された折り畳まれたツリー構造は、対応するキーシーケンスのための選択リスト内の、オブジェクトの１つとして、「sunning」語を作成するであろう。
【０１０７】
図９には、ノードの具体例が、示されている。ノード560は、その有効キー・フィールド562「01010000000」において「1」により示された２つの有効キーを有する。好適実施例の場合、「1」の位置は、第２キーおよび第４のキーが有効なパスで、かつそれらが、命令のパケットを有し、かつパケット566および568に、それぞれ、関連付けられている子ノードへのポインタを有することを示す。パケット566は、3つの命令「(1,1,0)」、「(1,2,0)」およびノード560を子ノードにリンクするポインタ「P」が後に続く「(2,1,1)」を含む。図１２のサブルーチン600が、ノード560に至るキーストロークのリストを既に処理しているのであれば、図１３のサブルーチン620が、好適実施例の「2 か」キーである「2」キーを処理するためにコールされ、以下同様な処理が行われるであろう。命令561は、インデクス1において新しいオブジェクトを構築するために、インデクス1の古いオブジェクトに、キー「2 か」の第一の論理記号（「か」）を追加するであろう。命令561の第３のフィールド「0」は、”ストップ・フラグ (STOP-FLAG) ”557（図８Ｂ）の誤った値であるので、次の命令563が、解釈される。命令563は、インデクス2において新しいオブジェクトを構築するために、インデクス2における古いオブジェクトに、キー「2 か」の第一の論理記号（図７の「か」）を追加する。新しいオブジェクトのインデクスは、2になるであろう。何故ならば、構築されつつある新しいオブジェクトのインデクスは、それ自身、命令の順序では暗示的であるからである（例えば、第二の命令は、常に第二のオブジェクトを構築する）。命令563の第３のフィールド「0」は、STOP-FLAG 557の誤った値であるので、次の命令567が解釈される。命令567は、インデクス3において新しいオブジェクトを構築するために、インデクス1において、古いオブジェクトに、キー「2か」の第二の論理記号（図７の「く」）を追加する。命令567の第３のフィールド「1」は、”ストップ・フラグ” 557の真値である。これは、これが、現在のパケットの最後の命令であることを示すので、サブルーチン620（図１３）の実行は、ブロック638からブロック644にパスされるであろう。
【０１０８】
異なる命令パケット408を含む２つ以上のノードを、組み合わせて、複数のノードと同じ目的を単独で機能させることができる単一ノードにすることは、可能である。このことは、語彙ツリー1010の或るノードが、新しい意味において冗長であることを意味する。本発明では、語「冗長」は、２つのノードに関して、ソフトウェア・プロセスの動作により、１つのノードを省略することができるという意味で、使用される。これは、図１４〜17で表される好適実施例に関して以下に記述される。
【０１０９】
例えば、図９においてノード560をノード574と比較する。キー「2 か」の命令パケット566および571は、正確に対応するが、ノード560のキー「4 た」の命令570は、ノード574のキー「4 た」の命令572とコンフリクトする。したがって、どちらのノードも他のものの仕事を行うことができないし、２つのノードを組み合わせて、両方の仕事を行う１つのノードにすることもできない。ノード560をノード576を比較する。各ノードのキー「2 か」に関連する命令パケット566および577は、正確に対応する。命令569および578は、それらの”ストップ・フラグ”フィールド557の設定が異なる。しかし、この差により、これらの間にコンフリクトは、生じない。図１３のサブルーチン620のオブジェクト検索プロセスの本質的な結果は、所定のキーに対し、あるノードで命令のセットを実行することにより作成される新しいオブジェクト・リストである。追加されるオブジェクトは、任意のそのノードの子の正しい処理を損なわずに、オブジェクト・リストの終わりに追加することができる。したがって、578の後の追加された命令の実行によるノード576の子の処理において、誤りは、生じない。間違った命令が実行される場合、または少な過ぎる命令が実行される場合のみ、この処理の本質は妨げられる。同様に、ノード576にキー「9 ら」の有効キーが存在することは、ノード560内に「9 ら」の有効キーが存在しないこととコンフリクトしない。したがって、ノード560と576は、冗長であり、そして両方の正味の効果を達成し、かつ両方の子の親ノードとして正しく機能する新しいノード582に併合させることができる。ポインタも、また、冗長度を定義する際に機能することは、理解されるであろう。もはやより長い語の語幹を形成することがない語に関連するツリーのシーケンス内の最後のキーストロークにおいて、有効キー・パケット408におけるポインタは、子がもうそれ以上存在しないことを示すために、好適実施例では、特別な値、ヌル(NULL)を有する。このようなノードは、「端末ノード」と呼ばれる。両方のノードに共通な有効キーの子ノードを有する２つのノードに対して、それぞれの子ノードは、親ノードが冗長となるために、冗長でなければならなく、かつ以下同様のことが、その子より下位になるノードに対しても、端末ノードに達するまで、または比較されているノードに共通の有効キーシーケンス上に、子孫が存在しなくなるまで、繰り返される。
【０１１０】
図１４〜１７は、1010と同様の語彙モジュール・ツリーの圧縮および折り畳み(folding)のためのソフトウェア処理の好適実施例のフローチャートを表す。図１４は、圧縮語彙モジュールを構築するソフトウェア処理の好適実施例のフローチャートである。ブロック652において、図６におけるような日本語の語彙モジュールに対する物理的キーに現れる記号以外の任意の必要な追加された不確定な記号を識別するために、辞書が、走査される。ブロック654〜656において、記号が、図７の具体例のように、インプット辞書の論理的インデクスの使用頻度が減少する順序で、それらのそれぞれのキーに割り当てられる。オブジェクトの辞書に頻度が与えられれば、ブロック658がどのように形式1010の語彙ツリーを構築するかは、当業者にとって明らかであろう。ブロック660において、データの重複を最小にし、かつ単一のオブジェクトに関連付けられている分離された命令シーケンスを、複数のオブジェクトを検索するための一般化されたルールに変えるために、冗長ノードが、識別され、かつ一緒に併合される。この処理は、図１５に詳細に示される。ブロック662は、端末ノードから全ての残りのヌル・ポインタを識別し、かつそれらを最大の数の親を有するノードに向くように変化させる。これにより、モジュール内のルールの数が増加する。ヌル・ポインタに子ノードを割り当てることに、他のルールを適用することができるであろうこと、および処理されつつあるキーストロークに関連付けられている要素に基づいて、オブジェクト検索時に、このようなルールを動的に適用させることが可能であろうことは、理解されるであろう。ブロック664において、各一意の命令558（図８Ｂ）とポインタ404a（図８Ａ）の残りのインスタンスは、スペースを保存するためにより頻度が高い命令とアドレスに割り当てられる、ビット・パターンがより短いパターンを有する一意のビット・パターンとして、エンコードされるように、それらはカウントされる。好適実施例は、当業者に公知のハフマン・コーディングである。更に、親ノードが複数の子ノードであるノードは、特別な順序に格納させることにより、それらの迅速な検索を容易にし、かつそれらにアドレス指定するために要求されるビットの数を最小限に抑えることができる。
【０１１１】
ブロック658においてツリーを構築する間に、格納されるべきオブジェクトを記述する命令558を選ぶ際、オブジェクトが語または語の語幹である場合には、それらの文字シーケンスが、ツリー1010のノードの冗長度を増やすために有利に使用することができる追加データを含むことは、理解されるであろう。例えば、日本語の仮名の対が、全て等しく共通であるというわけではなく、例えば、一般に、「ま」には「す」が続く。仮名の対またはバイグラム(bigram)の統計は、先行する仮名に続く、オブジェクトにおいて最も可能性がある次の仮名を予測するために使用することができる。このような予測によって、図７の論理記号インデクス表550の、不確定な記号の論理的順位付けは、第一の位置の使用を更に最適化するために、動的に変更させることができる。この予測は、3仮名(triplet)、3-グラム(trigram)、および一般のn-グラムに拡張することができる。
【０１１２】
図１５は、語彙モジュールのツリー1010を折り畳むソフトウェア処理の好適実施例のフローチャートである。ブロック670は、図１４のフローチャートのブロック660から入力される。ブロック672は、ルート・ノード1011の後の図１０の1010の第一のノードから処理を開始する。ブロック674は、もし存在するのであれば、現在のノードに関して冗長が最大であるノードを見つけるために、図１６のフローチャートの好適実施例に表されたサブルーチン690をコールする。宛先ノードが見いだされると、判断ブロック676は、処理をブロック678に向ける。ここでは、冗長ノードが、一緒に併合され、重複データが、複数かつ個々の命令のインスタンスを包含するツリーから削除され、共有されたシーケンスになる。これは、キーストローク・シーケンスをオブジェクトに関連づけるための一般的なルールである。判断ブロック676が失敗すると、判断ブロック680は処理が行われているか否かをテストする。処理するノードがより多くある場合、流れは別のノードを識別するためにブロック682へ進む。
【０１１３】
図１６は、ツリー1010において所定のノードに関して冗長度が最も高いノードを見いだすソフトウェア処理の好適実施例のフローチャートである。ブロック690は、図１５のフローチャートのブロック674から入力される。ブロック692は、測定された冗長度に関する記入子MAX-SAVINGSを初期化する。ブロック694は、図１０のツリー1010のルート・ノード1011から始まる処理を初期化する。ブロック696は、現在のノードに関する所定のノードの冗長度を計算するために、図１７の好適実施例のフローチャートに表されるサブルーチン710をコールする。判断ブロック698は、MAX-SAVINGSより大きい冗長度の程度が報告されたか否かをテストする。もし報告されているのであれば、ブロック700は、このノードが所定のノードに関して最も冗長であることが暫定的に見出された識別BEST-NODEであることと、MAX-SAVINGSとして報告された冗長の測定値とを記録する。判断ブロック702は、全てのノードが評価されたか否かをテストする。そうでない場合には、流れは、ブロック704に続き、現在のノードから次のノードへ進む。ブロック704から、流れは、ブロック696へ戻る。判断ブロック702におけるテストの結果が、最後のノードが既に評価されたと判断した場合、ブロック706は、所定のノードについて冗長が最大であるノードの識別を、図１５のサブルーチン670のブロック674に戻す。
【０１１４】
図１７は、２つの特定されたノード間の数値的な冗長を計算するソフトウェア処理の好適実施例のフローチャートである。ブロック710は、図１６のサブルーチン690のフローチャートのブロック696から入力される。ブロック712は、重複命令のカウントを初期化する。ブロック714は、KEY-INDEXを1に初期化する。ブロック716は、キーKEY-INDEXに関連付けられている命令パケット406を、サブルーチンに対するパラメータとして特定された２つのノード400の第一ノードから読み込み、かつ、一時リスト、LIST-Aにそれらを置く。キーKEY-INDEXが有効キーでない場合、命令は、読取られない。ブロック718は、キーKEY-INDEXに関連付けられている命令パケット406を、サブルーチンに対するパラメータとして特定された２つのノード400の第二ノードから読み込み、かつ、一時リスト、LIST-Bにそれらを置く。キーKEY-INDEXが有効キーでない場合、命令は、読取られない。判断ブロック720は、LIST-AまたはLIST-Bの何れも空であるか否かを決定する。空でない場合には、ブロック722は、LIST-AおよびLIST-Bの両方から１つの命令をフェッチし、各々の中の残りの命令数を１つだけ減らす。判断ブロック724は、これらの命令が、それらのLOGICAL-SYMBOL-INDEXおよびオブジェクト・リスト・インデクス・フィールド内で同じであるか否かをテストする。同じでない場合には、非冗長(no redundancy)に対する失敗コードが、図１６のサブルーチン690のブロック696に戻される。ブロック724の判断が「はい」である場合、ブロック728は、カウントSAVED INSTRUCTIONSを増加させる。制御は、再びブロック720に渡される。判断ブロック720がTRUEをテストすると、制御は、２つのノードが全ての可能なキーに関して比較されたか否かをテストする、判断ブロック730に渡される。比較されていない場合には、ブロック732は、KEY-INDEXを増加させ、かつ制御は、ブロック716に渡される。ブロック730の判断が「はい」である場合、制御は、ブロック734に渡され、KEY-INDEXが1にリセットされる。ブロック736は、２つのノードのキーKEY-INDEXに関連するポインタを調べる。判断ブロック738は、いずれのポインタが、空（ヌル）であるか否か、つまり、端末ノードのポインタに対するまたは有効でない任意のキーに対する場合を、テストする。どちらのポインタも空でない場合、２つの空でないポインタにより示された子ノードが冗長か否かをテストするために、制御がブロック740に渡されて、再帰的にサブルーチン710が使用される。ブロック740の結果は、判断ブロック742においてテストされる。２つの子ノードが冗長でないと分かった場合、失敗コードは戻される。さもなければ、２つの子は、ブロック746により蓄積される或る数値スコアによって冗長であることが分かる。判断ブロック748は、最後のキー（好適実施例ではキー9）に関連するポインタが、テストされたか否かをテストする。テストされていない場合には、ブロック752は、KEY-INDEXを増加させ、かつブロック736に制御を渡す。ブロック748におけるテストが、全てのポインタがチェックされたと決定すると、サブルーチンがブロック710で入力された際に最初に識別された２つのノードの冗長の蓄積された数値的な測定は、戻される。
【０１１５】
各ノードに存在する分岐の数と、子としてのノードにポイントされる親の数のような追加要素とを考慮するために、冗長度の数値の計算を重み付けすることができることは、理解されるであろう。或るキーに関連付けられている命令の順序付けのために、２つのノードが冗長でない場合、インプット辞書の低い頻度の語に関連付けられている命令の順序は、より高い頻度のオブジェクトに関連付けられている命令の優先順位に影響を与えず、これにより、ツリーの冗長度を増加させることなく、再順序付けさせることが可能であろうことは、理解されるであろう。
【０１１６】
冗長ノードを除去することによりツリーのサイズを減らすための上述した方法は、一次命令から成るツリーに関して記述された。各一次命令をゼロ以上の二次命令のリストに関連付けることは、併合されるオブジェクトの複雑さを増加させるが、上述した手続きは、一次命令と二次命令の両方を含むツリーの冗長度を識別しかつ除去するためにも、使用することができる。更に、一次および二次命令の両方を、メモリ内の同じ物理的ツリーに格納させる必要はない。命令の２つのセットを、メモリ内の同じ物理的ツリーに格納させた一次命令と二次命令とすることもできる。一次命令ツリーのノードにおける一次命令のシーケンスが、二次命令ツリーの対応するノードにおける二次命令のセットのシーケンスに対応する限り、命令の２つのセットは、別々のツリーに格納させることが好ましい。同様に、一次命令と二次命令がメモリ内の同じ物理的ツリーに格納されている場合には、各一次命令の直後に、（ゼロ以上の）関連付けられた二次命令のシーケンスが続くように、それらの命令を、混在させることができる。これに代えて、ノード内の一次命令の全てを、順番に、連続ブロックに格納させることもできる。この連続ブロックには、一次命令と同じ順序で連続ブロックの第二のシーケンスが続き、各ブロックは、（ゼロ以上の）関連付けられた二次命令を含む。この代替書式では、それらの一次命令に関して冗長であるノードは、併合させることができ、かつ関連付けられた二次命令の２つ以上の別々のセットも、併合させることができる。この場合、併合されたノードへジャンプする各親ノードにおいて、二次命令の代替セットのどのセットを実行させるべきであるかを特定するためには、少量の追加情報を追加しさえすれば良い。
【０１１７】
更に、本発明のさらなる別の観点の場合、データベース圧縮によるより大きな効率は、任意の特定の関連付けられた読みについて、データベース構造内に、一回のみ各漢字を格納することにより、達成される。一般に、データベースは、読みが同じである漢字の多数の異なるインスタンス、例えば、「動物」（どうぶつ）および「植物」（しょくぶつ）の漢字「物」（「ぶつ」として読む）を含む可能性がある。データベースに明確に含まれない珍しい名前または語、例えば、「官物」（かんぶつ）のような、さまざまな珍しい組み合わせの漢字の入力を容易にするために、各漢字は、所望の関連付けられた読みを入力することのみにより、特定することができなければならない。したがって、好適な一実施例の場合、ツリー構造のルートからすぐに始って、所定の漢字の各読みは、関連付けられた漢字に関するコードの特定を含む二次命令と共に、データベースに含まれる。この命令は、同じ読みに関連しかつ同じ二次命令リスト内の他の命令により特定される、他のテキスト・オブジェクトに関するその特定の漢字の相対発生頻度により決定される順序で、二次命令リストに格納される。全てのこのような場合において、関連付けられた読みを構築するノード・シーケンスがデータベース・ツリーのルートから開始されるので、対応する二次命令は、ヌル・テキスト・オブジェクトに、漢字を追加する。したがって、ヌル・テキスト・オブジェクトに漢字を追加する全ての二次命令は、別個の書式を有することができる。この書式では、前の”見出し語”のインデクスを特定するために、インデクスを必要とせず、かつ漢字コードを特定するために使用されるビットの数を、データベース内に表される最大数の有効な漢字を含みかつそれらを区別するのに、充分とすることができる。
【０１１８】
同様に、漢字が、データベースの語または句の内の語または句の先頭文字以外の場所に現れる場合、関連付けられた二次命令は、直前のノードの一次オブジェクト・リスト内の、対応する”読み方”用の二次オブジェクト・リストに以前に追加された、既存の”見出し語”テキスト・オブジェクトに、漢字を追加する。したがって、この場合、命令書式は、”見出し語”テキスト・オブジェクトの二次オブジェクト・インデクスを特定する、フィールドを含まなければならない。同様に、漢字を後のノードに追加することができるように、既存の”見出し語”を”保存”しなければならないとき、または（一次命令で特定される）仮名を追加しなければならないとき、二次オブジェクト・インデクス・フィールドは、命令に含まれていなければならない。したがって、データベースのサイズを最小にするために、二次オブジェクト・インデクスが無いタイプと、このようなインデクスを有するタイプの、二次命令のこれらの２つのタイプの書式は、区別されなければならない。
【０１１９】
後者の場合、すなわち、命令の二次オブジェクト・インデクスがゼロでなく、かつ漢字が”見出し語”に追加されるべきである場合、文字が、命令のインデクスにより特定された”見出し語”テキスト・オブジェクトへ最後に追加された時から、システムは、その音節が一次オブジェクト・リストの関連付けられた読みに追加されたトラックを保持するので、システムは、追加されるべき漢字に関する読みを、決定することができる。上記のように、各漢字の各読みは、漢字用のコードが、関連付けられた命令により充分に特定されるツリーのルートから開始するデータベースに、格納される。したがって、漢字が、以前から存在する”見出し語”に追加されるべきである命令により、漢字は、ツリー構造のルートから開始する決定された読みの二次オブジェクト・リストに現れる、完全に特定された漢字の位置に対応するインデクスを格納することにより特定される。このアプローチは、格納されたインデクスが、データベースを作成する時に決定することができる極めて限られた範囲の値に限定されるので、データベースにおける大部分の漢字の発生を、通常必要とされるビットよりはるかにより少ないビットにより特定することを可能にする。例えば、約89,000語がエンコードされているデータベースの場合、漢字の発生の約89%が、このようにして、格納される。図8Cに示されるように、好適な一実施例の場合、4つのタイプの二次命令があり、各々の先頭は、4つの異なった値の１つに設定されている２ビット書式フィールドである。これらの２ビットの例は、二次命令の表（特許文献３の段落０１４７の表２参照）に示される。
【０１２０】
したがって、図８Ｃに示されるように、「00」, 「01」 および 「10」に設定された書式フィールド・コード5610を有する命令5600〜5602は、全て、直前のノードにより作成されたリストにすでに存在する”見出し語”のインデクスを特定する、フィールドの”二次オブジェクト・リスト・インデクス”5611を含む。保存(PRESERVE)命令5600では、インデクスが付けられた”見出し語”は、それが、次のノードの１つ以上の命令により修正されるように、リストに保存される。”仮名”命令5601では、インデクスが付けられた”見出し語”は、関連付けられた一次命令により特定された仮名を追加することにより修正される。”間接漢字(INDIRECT KANJI)”命令5602では、追加されるべき漢字の仮名読みは、命令5602が関連する一次命令と共に、命令の先行するシーケンスから決定される。追加されるべき漢字は、漢字インデクス・フィールド5613により特定される。この漢字インデクス・フィールド5613は、決定された読みの最終的な仮名をルート・ノード1011から開始するシーケンスに追加する、一次命令に関連する二次命令リスト内の命令のインデクスである。直接漢字(DIRECT KANJI)命令5603には、所定の漢字の全部のエンコードを回復するのに十分な情報を含むより大きい漢字コードのビット・フィールド5614が、含まれる。命令書式5600〜5603は、全て、所定の一次命令に関連するグループの最後の命令を識別するための”ストップ・フラグ”フィールド5612も含む。
【０１２１】
これらのさまざまな場合の具体例は、データベース・ツリー構造の3つのノードのいくつかの可能な命令リストの表現を示す図１８に示される。説明のために、図１８は、実際にデータベース命令に格納されるであろう（図７の）論理記号インデックスではなく、追加する実際の仮名を示す「デコードされた」形式の一次命令を示していることに留意されたい。また、説明のために、各命令により作成されるリスト・オブジェクトは、命令の右に中括弧で示されている。図１８は、「2 か」キー（例えば、図１Ｄのキー122）の3つの逐次的アクティブ化のためのノードの一次および二次命令の両方のリストの部分的なリスティングを示す。左側の列は、第一レベル・ノード用の（すなわち、ツリー構造のルートから開始する）命令を示し、シーケンスのキーの第一のアクティブ化の結果として作成されるテキスト・オブジェクトを表す。次の2列は、キーの第２および第３のアクティブ化命令を示す。リストの各一次命令には、Y1,...,Yn（ここで、「Y」は”読み方”を表す）のラベルが付され、および各一次命令は、それが関連付けられている二次命令のリストと共に示されている。各々には、M1,...,Mn（「”見出し語”」の「M」）のラベルが付されている。図１８において、Y0およびM0は、「ヌル」テキスト・オブジェクトを表す。したがって、期待されるように、ルート・レベル（レベル1）において、一次命令は全てY0を特定し、および二次命令は全てM0を特定する。したがって、このレベルで表される二次命令は、”直接漢字”命令である（したがって、”二次オブジェクト・リスト・インデクス(SECONDARY-OBJECT-LIST-INDEX)”フィールドは、含まれない）、および「M0 + X」として図１８に示される各漢字「X」用の文字コードは、命令の漢字コードのフィールドで、充分に特定される。”直接漢字”命令は、”見出し語”の先頭文字として現れる漢字を特定するためにしか使用されないので、このような命令がツリーの第一のレベルの下に現れる場合には、先行する”保存”命令は、不必要である。したがって、形式「M0 +P」の命令は、それらが推定可能であるので、レベル1には現れず、かつ「ヌル」テキスト・オブジェクトを保存することも不必要である。例えば、中央の列（レベル2）において、一次命令Y1は、先行するレベルの”読み方”Y1（すなわち「か」）に仮名「く」を追加し、したがって、第二のレベルにおいて”読み方”オブジェクト「かく」が作成される。第5二次命令M5は、”直接漢字”命令であるので、これは、ルート・ノードから現在のレベルまで追加された全ての仮名を含む完全な読み「かく」に対応する。この命令は、文字「画」の正しい出力コードを決定するのに充分な情報も含む。この漢字は、また、レベル3において一次命令Y2に関連付けられている二次命令M1により作成される”見出し語”の一部である。一次命令Y2は、先行するレベル（すなわち「きか」）の”読み方”Y11に仮名「く」を追加するので、第３のレベルにおいて、”読み方”オブジェクト「きかく」を作成する。この一次命令Y2に関連付けられている二次命令M1が、「M5 + [ M5 ]」として示されている。この命令は、”間接漢字”命令であり、かつ（図１８に「M5 +」と示される）「5」の値を特定する”二次オブジェクト・リスト・インデクス”フィールドを含む。これは、先行するレベル2で、（一次命令のオブジェクト・リスト・インデクス・フィールドにより参照される）Y11に関連付けられている第5の”見出し語”オブジェクトを参照する。レベル2におけるこの”見出し語”オブジェクトは、一次命令Y11:「Y2 +か」と、それに関連付けらている二次命令M5：「M7 +P」とにより作成される。この二次命令は、先行レベル（レベル１）の”読み方”Y2に関連付けられている命令M7により作成されかつ充分に特定された”見出し語”オブジェクト「企」が、現在のレベル（レベル2）で、リストの第5の”見出し語”オブジェクトとして複製される（保存される）べきであることを示す”保存(preserve)”命令である。この”保存”命令は、記入子として機能し、かつこのレベルで加えられる仮名「か」が、後の命令により追加される漢字の最初の読みであることを示す。これは、レベル3の”間接漢字”命令Y2：M1：「M5 + [M5]」で発生する。ここで、インデクスが付けられた漢字[M5]に関する読みが、保存された「か」＋レベル3のY2により加えられた「く」、つまり「かく」、となるべきであることは判っている。ルートから開始したこの読み「かく」の探索は、レベル2のY1に至る。ここで、インデクス[ M5 ]が、充分に特定された漢字「画」に導く。レベル1から保存された”見出し語”へこれを追加することは、充分に特定された”見出し語”「企画」を作成する。
【０１２２】
別の好適実施例の場合、代替方法は、”保存”命令（上記した実施例の形式コード「00」）により提供される機能を実施するために使用される。図８Ｄに示されるこの代替実施例の場合、形式コード「00」を有する代替命令書式5604は、それが、”ルートからの漢字インデクス”フィールド5613と、すでに存在する”見出し語”のインデクスを特定する”二次オブジェクト・リスト・インデクス”フィールド5611との、両方を特定するという点において、命令書式5602に似ている。しかしながら、この代替実施例の場合、”二次オブジェクト・リスト・インデクス”は、直前のノードではなく、”仮名の数(NUMBER-OF-KANA)”フィールド5615により特定されたノードの数より一つ多いノードだけ現在のノードに先行するノードを参照する。追加されるべき漢字に対応する読みは、参照されるノードから、現在のノードに関連付けられている一次命令までの、一次命令のチェインをトレース・バックすることにより決定される。このアプローチの利点は、別の”保存”命令を介在ノードで必要としないことであり、したがって、データベースを更にコンパクトにすることができる点である。不利な点は、先行するノードからのただ１つのリストのみならず、前のノードからの複数のオブジェクト・リストを、キーストローク・シーケンスを処理する際に、維持しければならないことである。同様に、”仮名”命令5605の代替形式の場合、”二次オブジェクト・リスト・インデクス”は、”仮名の数”フィールド5615により特定されたノードの数分現在のノードに先行するノードを参照する。追加されるべき１つ以上の仮名のシーケンスは、参照されているノードから現在ノード内の関連付けられた一次命令までの、一次命令のチェインをトレース・バックすることにより決定される。代替の”保存”命令に関しても、同じ利点および不利な点が当てはまる。当業者に明らかなように、”書式コード(FORMAT CODE)”フィールド(5610)、”二次オブジェクト・リスト・インデクス”フィールド(5611)、および”仮名の数”フィールド(5615)は、格納された命令に対しより大きな圧縮を達成するために、さまざまな方法（例えば、ハフマン・エンコーディング）を、組み合わせることができる。
【０１２３】
本発明の別の好適実施例の場合、データベースの更なる圧縮は、次のメカニズムによって、実質的な追加的処理負担なしで達成される。多くの場合、所定の漢字に関連する読みは、それが語の最初ではない位置に現れるとき、変化する。大部分のこのような場合において、この表音変化は、先行する漢字の発音の調音結合(co-articulation)効果の結果であり、かつ、最初の位置に無い漢字の最初の子音を無声音から有声音へ、または摩擦音から破裂音へ変化させる。これは、最初の位置に無い漢字の読みの第一の仮名に濁点または半濁点を追加することに対応する。上述のデータ記憶および検索方式の場合、このことは、ツリーのルートで開始するノードのシーケンスに格納された（濁点または半濁点を有する）代替読みに関連する充分にエンコードされた漢字を、格納するために、データベースに追加的な入力を必要とするであろう。この好適実施例の場合、漢字が、このような代替読みと共に最初の位置以外に現れるとき、”間接漢字”命令が、代替読みに関する所望の漢字を特定するために使用される。データベースのサイズを縮小するために、参照される漢字は、代替読みに関連するルートから格納されず、（濁点または半濁点なしの）その標準読みに関連してのみ格納される。意図された漢字を識別するために、”間接漢字”命令の”二次オブジェクト・リスト・インデクス”フィールドに格納された値は、次の方法で修正される：Nを、代替読みに関連するルートから格納された漢字の数とし、かつ、Xを、それが（濁点または半濁点なしの）その標準読みに関連するルートから格納された、意図された漢字の位置に対応する”二次オブジェクト・リスト・インデクス”値とする。次に、”間接漢字”命令の”二次オブジェクト・リスト・インデクス”フィールドは、値（N + X）に設定される。”間接漢字”命令を処理する際に、システムは、最初、代替読みに関連するルートから格納された漢字を検索し、かつそこにはフィールド値（N + X）より小さい、N個の漢字しか格納されていないことを決定する。関連付けられた読みが、濁点または半濁点を有する仮名から始まると決定されると、対応する標準読みが、生成され、漢字の決定された数Nが、フィールド値（N + X）から減算され、かつ意図された漢字が、決定されたインデクス位置Xで決定された標準読みのもとで見出される。
【０１２４】
V. 不確定なキーストロークを使用する代表的なシステム動作
図１９は、図１Ａに示されるシステムの動作の3つの代表的な具体例を示す。これらの具体例は、システムの動作と、データ・キー21〜30、”選択”キー60、”変換”キー62および”発音区別符号”キー68の用途を含む、実施例において提供されるフィードバックの特徴とを示す。この具体例は、各キーストロークの結果として、テキスト領域66の挿入ポイント88（点線のアンダーラインまたは実線のアンダーライン）に現れる、オブジェクトの特別な書式化を含むテキストを示す。各キーストロークは、図１Ａに示されるキーのラベルの数字により識別される。
【０１２５】
図１９の具体例1は、図１Ａのシステムの好適な一実施例において、句「お願いします」がインプットされる方法を示す。キー21、25および22での最初の3回のキーストロークの各々なされた後、各々が、長さが1、2、および3の仮名の語にそれぞれ対応する最も頻度が高い”読み方”が、表示される。”発音区別符号”キー68についての第4番目のキーストロークは、キー22についての先行したキーストロークの仮名が、濁点を有する仮名に対応することを特定し、かつ表示されている”読み方”は、キーシーケンス21、25、22とマッチングし、かつ第３位置に濁点を有する仮名である、最も一般的な3字仮名の”読み方”（うなぎ）に、変化する。キー21についての第5番目のキーストロークの後の、最も一般的な”読み方”は、インプットされた所望の句の最初の語に対応する「おねがい」である。次に”変換”キー62についてなされるキーストロークにより、表示されているテキストは、（この場合もまたインプットされた所望の句の最初の語に対応している）表示されている”読み方”に対応する、最も一般的な”見出し語”に変化する。次のキーストロークは、データ・キー23についてなされる。”選択”キー60または”変換”キー62の何れかを１回以上アクティブ化した（この場合、”変換”キー62についての１回のアクティブ化）後に、不確定性を除去すべき新しいキーストローク・シーケンスのインプットが開始する。キー23についてのキーストローク、およびキー27についてそして再び23について次の２回のキーストロークがなされると、常に、最も頻度が高い”読み方”が、表示される。この場合にも、また、これらのキーストロークの後に表示された語は、インプットされた句の所望の語「します」に対応する。最後の”選択”キー60についてのキーストロークは、現在の語オブジェクトのキーストローク・シーケンスが、完了したことを示し、その結果、データ・キー21〜30について次になされるキーストロークにより、新しいインプット・シーケンスが開始される。
【０１２６】
図１９の具体例２は、データベースに含まれる句「ありがとうございます」のインプットの間のディスプレイを示す。（キー22についての）第7番目のキーストロークに続いて、インプット・キーシーケンスとマッチングするデータベースのオブジェクトは、インプットされた所望の句そのものである。したがって、このポイントでのシーケンスが、完成された語または句に対応していなくても、頻度が最も高いマッチングが取れた語幹（この場合「ありがとうご」）が、表示される。更に、データベース内には潜在的にマッチングが取れたオブジェクトは、１つしかなく、かつこのオブジェクトの現在位置の仮名は、濁点を含むので、たとえ”発音区別符号”キー68がアクティブにされなかったとしても、濁点が付された仮名が、表示される。したがって、この場合、”発音区別符号”キー68をアクティブにすることはオプションであり、かつ実施例2では、「ご」または「ざ」の仮名の何れに対しても、”発音区別符号”キー68をアクティブにせずに、句が生成されている。インプットされた句が第11番目のキーストロークにより完成するまで、語幹が、シーケンスの第7〜10番目のキーストロークに対して表示されている。
【０１２７】
具体例3は、実施例における”選択”キー60および”変換”キー62に関連するさまざまな機能を示す。キー22およびキー25上の最初の２回のキーストロークの後、最も頻度が高いマッチングが取れた”読み方”は、「この」であると決定される。”選択”キー60についての次のキーストロークは、現在の語オブジェクトに関するデータ・キーシーケンスが終了したとの信号を発生させ、かつこのことは、点線のアンダーラインが実線のアンダーラインに変化することにより示される。”選択”キー60の２回目の押下により、第二の最も一般的な”読み方”「くに」が選択される。”変換”キー62についての次のキーストロークは、選択されかつ表示された”読み方”「くに」に対応する最も一般的な”見出し語”を選択する。”変換”キー62についての次の２回のキーストロークは、漢字一字である、より一般性が無い”見出し語”「邦」を示し、そしてシーケンスの最後の”見出し語”である片仮名の”読み方”を示す。”変換”キー62についての次のキーストロークは、この”読み方”と同じである”見出し語”のシーケンスのテキストの最初の解釈として最初に表示された平仮名に戻る。”変換”キー62についての更なるキーストロークは、サイクルを繰り返し、再び、最も一般的な漢字解釈を示す。それに続いて、”選択”キー60を押下すると、現在選択されている”読み方”の表示「くに」に戻る。”選択”キー60の２回目の押下は、次の（３番目に頻度が高い）”読み方”「かね」に進む。”変換”キー62についての次の２キーストロークは、この”読み方”に関する最初の２つの（最も一般的な）”見出し語”（それぞれ、漢字一字）を示す。”変換”キー62を押下し続けると、前に表示された漢字を再選択するために”見出し語”リストを循環する。
【０１２８】
本明細書において開示されるキーの数を減少させたキーボードのための日本語テキストインプット・システムは、このシステムを組み込むコンピュータまたは他のデバイスのサイズを縮小させる。キーの数を減少させることは、デバイスを、ユーザが片手で保持しつつ、他方の手で操作することを可能にする。本願のシステムは、特に、正確で、高速なテキスト入力によるメリットが大きい、携帯電話、PDA、双方向ポケットベルまたは他の小さい電子デバイスの用途に有利である。このシステムは、タッチスクリーン・ベースのデバイス、またはディスプレイ・スクリーン領域が限られている、限定された数のメカニカルキーを有するデバイスに実施しても、優れた効率性および簡略性を提供することができる。本発明のシステムは、日本語の表音字音表を構成する仮名の形でインプットを生成し、かつこのインプットされた仮名を意図された漢字または仮名読みに対応する他のテキストの解釈に変換する処理を集積化する。更に、本発明のシステムは、極めてコンパクトなデータベースにシステムの動作に必要とされる情報を格納する方法でありかつ実行時に最小の処理オーバーヘッドしか必要としない方法を提供する。
【０１２９】
当業者は、本発明の基本的な原理から著しく逸脱せずに、キーボード配置の設計および基本的なデータベース設計に対して小さな変更を行うことができることも認識するであろう。従って、添付した特許請求の範囲の範囲内において、本発明を、本明細書に特に記述したもの以外にも実施できることは、理解されるであろう。
【０１３０】
不確定なテキスト入力から明確な文字をフィルタリングする例
本発明は、不確定なテキスト入力から明確な文字をフィルタリングするための方法と装置に関する。本発明は、２キーおよび長押しのようなさまざまな明確なテキスト入力法を含む実施例を提供する。本発明は、更に、ビルドアラウンド法、語幹ロッキング法、語完成法およびn-グラム検索を使用して、データベースにおける語をマッチングさせる手段を提供する。
【０１３１】
より詳しくは、本発明は、不確定なテキスト入力モードにおける明確なフィルタリングのための、オブジェクト、語、語幹等を拡張しかつ解釈するための、および語幹-ロッキングのための方法と装置に関する。不確定性を減少させるための明確なフィルタリングの一つの特別の実施例は、マトリックス表示と組み合わせたキー押下が使用される、２キーによる明確な入力機能を含む様々な明確な入力の手段を使用する。複雑な句をタイプすることを可能とする、拡張しかつ解釈する方法が、提供される。予め定められた文字のセットが、新しい語または語幹の終わりまたは始めのアンカ(anchor)として、ビルドアラウンドに使用される。先行する明確な字を「n-グラム」解析することにより語を拡張するために、合理的な推測が、提供される。語幹-ロッキングを使用する３つの具体的な実施例が、提供される。第一の実施例は、（語のような）所望のオブジェクトのn個の字と次のキーの組み合わせを使用する。第二の実施例は、オブジェクトの語幹部をロックし、かつオブジェクトのロックがかかってない部分を解明する。第３の実施例は、n-グラム検索を使用する。
【０１３２】
キーの数を減少させたキーボードの不確定性除去システム・ハードウェアの好適実施例のブロック線図が、図２０に示されている。キーボード54とディスプレイ53は、適切なインターフェース回路を介してプロセッサ100に結合されている。オプションとして、スピーカ102もまた、プロセッサに結合される。プロセッサ100は、キーボードからインプットを受信し、かつディスプレイとスピーカへの全ての出力を管理する。プロセッサ100は、メモリ104に結合されている。メモリは、ランダム・アクセス・メモリ(RAM)のような一時記憶媒体、および読取り専用メモリ(ROM)、フロッピー（登録商標）ディスク、ハードディスクまたはCD-ROMのような恒久的な記憶媒体の組み合わせを含む。メモリ104は、システム・オペレーションを管理するための、全てのソフトウェア・ルーチンを含む。メモリは、オペレーティング・システム106、不確定性除去ソフトウェア108、および不確定なテキスト入力ソフトウェアにおける関連付けられた明確な文字のフィルタリング、および／または以下で更に詳細に論じられる拡張および解釈ソフトウェア110を含むことが好ましい。メモリは、また、語彙データベース30を含む。オプションとして、メモリは、１つ以上のアプリケーション・プログラム112、114を含むこともできる。アプリケーション・プログラムの具体例には、ワードプロセッサ、ソフトウェア辞書および外国の言語翻訳プログラムが含まれる。音声合成ソフトウェアも、また、アプリケーション・プログラムとして提供することもできる。これは、キーの数を減少させたキーボードの不確定性除去システムが、通信補助として機能することを可能にする。したがって、この場合、出力を、スピーカから音声で出力させることが可能になるであろう。
【０１３３】
組み合わされるとオブジェクトまたはオブジェクトの一部を形成する記号および記号のシーケンスにも、本発明の議論が、適用されることを、当業者は理解すべきである。記号の典型的な具体例は、字のような、任意の言語の文字、言語の数字、句読記号または任意の他の記号である。オブジェクトまたはオブジェクトの一部の典型的な具体例は、語または語の一部である。しかしながら、本明細書における議論は、日本語の仮名および韓国のジャモ(jamo)にも同様に適用される。或るタイプの記号ストリングの表現が存在する限り、本明細書において請求された不確定性除去システムは、アイコン、電話番号または目録記録を探索するためにも使用することができるので、オブジェクトは、言語学上のものである必要がないことにも、留意すべきである。したがって、字、語、語幹等のような用語を使用することが、それらのアプリケーションにのみに限定されず、そして本明細書における議論を読解しかつ理解することを容易にするために使用されることは、理解されるべきである。
【０１３４】
明確な入力
本発明により語選択をフィルタリングするために明確な文字を生成する好適な一実施例は、２キーによる明確な入力機能を提供する。多くの言語、例えば、英語において、あるキーに関する字は、全て、図２１に示されるように、キーにプリントされている。ここで、図２１は、本発明の、キーに関する英語のアルファベットの各字を示す、無線ハンドヘルド・デバイスの具体例の図である。
【０１３５】
しかしながら、フランス語のような他の言語は、携帯電話キーのようなキーに視覚的に割り当てることができる字より多くの字を含む。図２２は、0〜9のキーとそれらの各”シフト”キー上に示されるヨーロッパの字といくつかの特殊記号のチャートの具体例である。例えば、ユーザが「5」キーを押下すると、英数字「j」、「k」、「l」および「5」を有するマトリックス表示が現れる。図２３は、本発明の１つの、２キー・マトリックス・インプット方法のスクリーン・ショットの具体例である。最初のキーが押された後、選択のためのマトリックスが、デバイス・パネルに表示される。例えば、各キーが、関連付けられた字の予め定められたセットの最初と最後の文字を表示するような、関連付けられた字の予め定められたセットのサブセットを含むように、他のラベルをキーにプリントすることもできることは、理解されるべきである。
【０１３６】
図２４は、図２０の不確定なテキスト入力システムにより明確な文字をフィルタリングするための２キーによる明確な入力のフローチャートである。本発明の好適実施例によれば、ユーザが、（フランス語の場合のように1つのキーに多くの字が割当てられている）１つのキーに割り当てられた多くの字の内の一字を明確に選択するために、ユーザは、関連付けられたキーを、例えば、押下により選択する(5000)。所望のキーの選択（例えば、押下）により、システムは、選択されたキーに対応する字の第二のセットを、例えば、マトリクス形式で表示する(5100)。マトリックスの各ブロックには、直前に選択／押下されたキーに関する字のセットの内の一字が含まれる。図２３は、キー1を押下げた結果表示されるものの具体例を示す。この時点で必要なことは、ユーザが、所望の文字を含むマトリックス・ブロックのキーの数字を選択することのみである(5200)。この明確な選択過程は、字を選択するために、最大２回のキー選択／押下しか必要としない。
【０１３７】
フィルタリングのための２キーによる明確な入力方法が、他の任意の言語にも拡張させることができることが、当業者に容易であることは、明らかであろう。例えば、スクロールリストのような代替構成が可能であることも、また、当業者には明らかであろう。
【０１３８】
代替構成の場合、ユーザは、長押しによりキーを選択して、そのキーについての文字シーケンスを表示しかつ循環させる。図２７に示されるように、キーが押されている間、プレビュー・ウィンドウに文字の一部または全ての履歴をスクロールさせることができる。キーが解放されると、最後に強調された文字が受け入れられる。
【０１３９】
更に別の構成の場合、文字シーケンスがキーの長押しにより示された後、キーが押下されるたびに、文字が現れまたは強調される。一回目のキー押下と次のキー押下との間に充分な時間が経過する、または別のキーが押下されると、各明確な文字の提示は、終了させることができる。
【０１４０】
更に別の構成の場合、キーの長押しにより文字シーケンスが示された後、ナビゲーション・キーが押下されるたびに、文字が現れまたは強調される。ここで、ナビゲーション・キーは、例えば、矢印キーまたはスクロール・ホイールである。
【０１４１】
以下は、フィルタリングのための他の明確入力手段のリストである。このリストは、単なる具体例であって、全てを網羅しているものではないことは、理解されるべきである。
・数字／ディジットを明確に入力するために、キーを長押しする；
・数字／ディジットを明確に入力するために、数字モードに変更し、かつキーを押下する（次で、フィルタリングのために不確定な入力モードへ戻す）；
・文字を明確に入力するために、マルチタップ・モードに変更し、かつ繰り返しキーを押下する（そして次に、フィルタリングのために不確定な入力モードに戻る）;
・キー押下の各対を２キーによる明確入力にグループ化すること、または同じキーの繰り返される押下をマルチタップ入力にグループ化することの何れかにより、不確定モード・キーの押下を明確な文字と解釈する；
・単純な押下についての不確定な入力と、異なる種類の押下についての明確な入力とを可能にする、5-ウェイ・ロッカー(5-way rocker)のようなマルチスイッチ・キーを使用する；および、
・文字の不確定なセットを示す一次キーと、このセットのどの文字を選択すべきかを示す二次キーとを有する（例えば、ビデオゲーム・コントローラの）２個以上のキーを同時に押下することを意味する「コーディング」による。
【０１４２】
フィルタリングのための明確な入力の別の手段は、キーに割り当てられている任意の文字を、例えば、プログラマブル・キーまたは「ソフトキー」のラベル上に表示される二次手段により、ユーザに提供することである。これらの文字は、選択されると、明確に入力されるであろう。例えば、ユーザが、文字を追加することにより語を拡張しようとしている場合、または語を全て入力する前に表示された解釈を訂正したい場合、ソフトキー・メカニズムは、最後に入力されたキーストロークの訂正を可能にする。追加文字は、先行するキーストロークに関連する最も可能性が高い文字の解析に基づいて、または現在の語候補リスト内の語に基づいて提供されるであろう。最も可能性が高い文字が、不確定な語選択においてすでに表示されている場合には、二番目に可能性が高い文字が、提供されるであろう。例えば、ユーザが「ram」をタイプしようとして、キーシーケンス「7, 2, 6」を入力すると、語「ran」が、現れる。キーシーケンス「7, 2, 6」に関連する語候補リストにおける３番目の位置に対する最も可能性が高い字は、「m」であるので、「m」をソフトキー上に提供することが出来るであろう。ユーザがソフトキーを押下すると、語「ran」の「n」が、「m」に代わる。
【０１４３】
不確定モードにおける明確な文字のフィルタリング
不確定な入力のシーケンスを入力している間に、文字が明確に入力されると、不確定モードにおける明確な文字のフィルタリングが、行われる。すでに議論した明確入力の一実施例は、上述したマトリクスを使用する２キーによる明確入力の方法である。本発明の別の好適実施例によると、文字の明確入力は、関連付けられたキーの長押しにより達成される。文字のシーケンス内の１つ以上の文字が明確に入力されると、対応する位置で文字が明確に選択されている格納された語のみが、検索される。
【０１４４】
本発明の一実施例に従う、所望の語を検索する１つの方法では、不確定な入力モードで明確な文字が入力されると、不確定性除去フィルタリング・システムは、最初の明確な字に基づくデフォルトの語を受け入れずに、可能な限り、データベースの語と不確定でかつ明確な字とのマッチングを取り続ける。マッチングがない場合、選択された最後の不確定な語が、受け入れられ、かつ新しい字がそれに追加される。
【０１４５】
例えば、ユーザが語「home」を英語版T9で入力したいと仮定する。ユーザが、「m」を明確に選択するために、３番目の位置で「6」キー（図２３）を長押下しすると、「home」のみの結果が得られ、更に、4回のキーストロークの後、語幹「imme」および「gome」の結果が得られる。
【０１４６】
別の具体例では、例えば、データベースに格納することができる「cu2night」のような、英数字が混合する語が使用される。ユーザが「2」キーを長押しすると、明確に「2」が入力され、「cub」のような語は、フィルタリングにより語候補リストから除去される。
【０１４７】
明確なフィルタリングは、すばやく語を完成させる別の方法にもなる。「cu2night」が、データベースに存在し、かつ「cu」が不確定に入力され、そして次に「2」が明確に入力されると、キーストローク・シーケンス「2, 8, 2」の全ての不確定な解釈が、フィルタリングされ、語完成によって提供される、より可能性がある選択として、「cu2night」が残るであろう。
【０１４８】
図２５は、本発明の好適実施例に従う、不確定モードにおいて明確にフィルタリングするためのフローチャートである。所望の文字に関連付けられたキーが、不確定にまたは明確に入力される(6000)。次に、所望の語が、不確定に選択されたキー（すなわち、それらの関連付けられた文字）のシーケンスと明確に選択された文字とに基づいて解釈される。それらのそれぞれの対応する位置に、不確定に選択された入力（例えば、キー）に関連付けられている文字と、明確に入力された文字とを有する語に対して、データベースが、検索される(6100)。検索された語は、次に、最も頻繁に使われる順序のような予め定められた優先順位がつけられた順序で、提示され、または表示される(6200)。所望の語が、提示された検索語のセットの中に存在する場合(6300)、この所望の語は、選択され(6400)、かつ処理は終了する。さもなければ、処理は終了せず、かつ所望のキーを選択することから、ステップが繰り返される(6000)。
【０１４９】
ビルドアラウンド
不確定性除去フィルタリング・システムの別の観点によると、データベースからの語は、明確にまたは不確定に入力させた文字、またはこれに加えて予め定められた文字のセットからの文字を基に「ビルドアラウンド」させることが、可能である。１つの解釈によれば、（もし存在すれば）マッチングが取れている語は、特定のシーケンスに対する明確な文字を含む。しかしながら、シーケンスのさらなる解釈は、明確な文字に先行するおよび／または明確な文字で終わる不確定なキーとマッチングする１つ以上の語、（もし存在すれば）明確な文字から始まるマッチングする１つ以上の語、および明確な文字に続く不確定なキーとマッチングする１つ以上の語、を含むことができる。例えば、数字「4」を明確に入力して、「gifts4less」に対するキーシーケンスを入力した場合、例え、「gifts4less」、「gifts4」および「4less」が、データベース内に発見されなくても、語「gifts」は、この明確な文字「4」に先行する不確定なキーシーケンスにマッチングし、かつ「less」は「4」に続くキーシーケンスとマッチングする。同様に、句読点についての不確定なキーが存在する場合、「mobile.com」は、データベース内の入力「mobile」と「.com」から、または入力「mobile」および「.」および「com」から、自動的に構成される１語として、タイプさせることができる。これらの何れの場合においても、ピリオドを明確に入力する必要はない。
【０１５０】
ビルドアラウンド概念の一実施例は、ビルドアラウンドの具体例を表すフローチャート、図２８を参照して説明することができる。ビルドアラウンド法は、入力されつつあるキーシーケンス、例えば、[k1 k2 k3 kd k5 k6 k7 k8]から開始される(9000)。「k#」は、不確定に入力されたキーを意味し、かつ「kd」は、明確に入力された文字または不確定に入力された句読文字の何れかとすることが出来る区切りキーを意味する。この方法は、次に、データベースが、マッチングを見出したか否かを決定する(9100)。「はい」であるならば、語が、表示される(9200)。ユーザが、データベースにより見出された語のリストにおいて次の選択に進むよう望む場合、ユーザは、データベースによる更なる探索を要求するために、次のキーを押下する(9300)。特に、データベースは、キーシーケンスとのマッチングのために複数回検索される。キーシーケンスは、区切り記号の両側で２つのセットに分割される。区切り記号により分割されたシーケンスの２つのセットのさまざまなグループ化の具体例は、以下の通りである：
・[k1 k2 k3 kd] [k5 k6 k7 k8]；
・[k1 k2 k3] [kd k5 k6 k7 k8]；および
・[k1 k2 k3] kd [k5 k6 k7 k8]。
【０１５１】
グループの何れかでマッチングが見出されると(9400)、所望の語が、選択されかつ表示される(9500)。ユーザが、このシーケンスをビルドアラウンドさせたい場合、ユーザは、次のキーを押下して、データベースの複数回の検索により次のセットの結果を得ることができる(9600)。
【０１５２】
データベースが最初のマッチングを見出せない場合(9100)、データベースは、キーシーケンスに対するマッチングのために複数回検索される(9700)。ここにおいて、キーシーケンスは、その説明およびその具体例が前述されているように、区切り記号の両側で２つのセットに分割されている。
【０１５３】
可能な所望の語のセットを検索し、表示し、提示(display/present)する手段を、変更しかつ本発明の範囲および精神の範囲内に留まらせることができることは、理解されるであろう。
【０１５４】
語幹-ロッキング
本発明の好適実施例では、語幹-ロッキングは、シーケンス内の文字の１つ以上のサブシーケンスまたはサブストリングを、ロックする。例えば、語の文字のシーケンスの最初のn個の数を、ロックさせることができる。語幹-ロッキングを機能させる方法は、これらのロックされた文字を有する語のみを検索することである。例えば、ユーザが、T9技術を使用する無線携帯電話の「4」キーを、次に「6」キーを選択すると仮定する。語「go」が、ディスプレイに示される。もし、「go」がロックされていると、次のキー選択では、最初の２つの位置に「go」を有する語のみが、選択される。
【０１５５】
字のロッキングは、多数の異なる方法で実行させることができるが、例えば、「フル・ネクスト・ロッキング(full next locking)」メカニズムによるものと、選択するために文字の上にカーソルを移動することによる「制限のない(unbounded)」方法とが、２つの具体例である。「フル・ネクスト・ロッキング」を実施する具体例では、「next」キーが、使用される。すなわち、本発明の一実施例では、「next」キーを選択することにより、以前提示された文字列がロックされ、このことにより、システムが、ロックされた文字列を解釈し直すことによりオブジェクトを解釈し直す可能性が、排除される。選択された文字列は、明確に入力されたものと、マークされる。本発明の一実施例に従う、カーソルを（制限なく）文字の上で移動させる具体例の場合、ユーザが、カーソルを列の先頭に移動させ、かつ右矢印キー（または、例えば、ヘブライ語では左矢印キー）を選択することにより、カーソルが移動した全ての文字が、ロックされる。
【０１５６】
フル・ネクスト・ロッキングの別の観点は、可能性がある語の境界が識別されると、以前提示された文字列をロックすることである。このような境界は、例えば、ユーザが「next」を押下し、次に記号または句読文字を選択する、または、ユーザが「next」を押下し、次に明確な数字を入力すると言うような、インタラクションが或るシーケンスに基づいて、識別することができる。
【０１５７】
「ロック」に対する他の方法には、以下が含まれるが、決してこれらに限定されるものではないことは、理解されるであろう：
・「OK」または”選択”キーのような「ロック」機能が割り当てられたキーを押下すること；
・提供されている語の完成を「ロック」するために、適切な矢印キーを押下すること。
【０１５８】
上述したような語幹ロッキング・アプローチは、本明細書において上述されたように、「ビルドアラウンド」に関係づけることができる。すなわち、シーケンスがロックされていたとすると、それは、「ビルドアラウンド」させることが可能である。
【０１５９】
日本語仮名の具体例
不確定性除去フィルタリング法の別の具体例は、日本語において存在する。仮名（表音）文字形式のサブ・フレーズは、漢字（”読み方”）に変換させることができ、かつこれらの変換されたサブ・フレーズは、変換されたサブ・フレーズに先行するまたはこれに続く、残りの不確定な仮名の解釈を順番にフィルタリングすることができ、有効な句を構成するために使用することができない解釈を除外する。
【０１６０】
本発明の他の実施例において、ロッキング・メカニズムの階層化が、使用される。例えば、右矢印キーは、カーソルの左の全ての文字をロックすることができる。したがって、この実施において、右矢印キーは、第一の選択語幹をロックし、一方、「next」キーは、第一の選択でない語幹をロックする。
【０１６１】
別の実施例は、「next」キーと組み合わせる右矢印キーの代わりに、「選択」キーを使用する。例えば、（”選択”キーを一回押下して）デフォルトの選択を選択しかつ受け入れるため、または（所望の選択が現れるまたは強調されるまで、「選択」キーを二回以上押下して）代替選択を選択するための何れかのために、「選択」キーを、各不確定なキーシーケンスの最後に使用することができる。この場合、最初の選択に対し右矢印キーを使用しかつ他の選択に対し「next」キーを使用する（またはこの逆、またはキーの選択が任意であるので、予め決められていない）のではなく、「選択」キーは、最初の選択または代替選択の何れかの語幹をロックするために使用される。
【０１６２】
語の拡張および完成
本発明の別の観点は、システムが、自動的にロック位置から新語を開始することである。例えば、ユーザが、「car」を入力し、かつそれをロックし、そして次に、「pet」に対するキーを入力する。「Carpet」は、それがデータベース内で完成語であるので、示される。語「carset」もまた、それが「car」 + 「set」であるので、示される。これは、「ビルドアラウンド」概念の別の具体例である。ここでは、不確定なシーケンスが、明確な文字入力に続くことができ、これは、1つの解釈を、新しい不確定な語の始まりとさせる。
【０１６３】
他の代替例では、以前に受け入れられた１つ以上の文字が、現在のかつアクティブな不確定なキーシーケンスに先行する（スペースなしで、隣接する）。システムは、これらの先行する文字を使用して、これらの文字で始まり、かつこれらの文字に続く不確定なキーシーケンスとマッチングする（例えば、ユーザ・データベース内の）語および句のマッチングを取る。オプションとして、１つ以上の語の完成が、提供される。具体例は、以下の通りである。ユーザは、文字「con」を入力しかつロックする（受け入れる）。次に、ユーザが、「stan」について不確定なキーをタイプすると、語完成として、「constantinople」が提示される。この具体例では、ユーザは、左／右矢印キーを使用して「con」を受け入れ、「con」を使用して、受け入れられた文字で始まりかつ不確定なキーシーケンスに直に隣接する語の完成をフィルタリングし、かつ提案することもができる。ヘブライ語および他の言語は、逆方向へ進むので、右側への進行のみが仮定されている訳ではない。
【０１６４】
図２６は、データベースに格納されていない語を生成するための本発明の方法のフローチャートである。すなわち、同様に好適な代替実施例において、一連の入力がロックされ(7000)、次の不確定な文字が入力され(7100)、かつ対応する格納された語が、データベースに見出されない(7200)場合に、可能性がある組み合わせに対して、前にロックされたn個の文字に基づいて、検索が、実行される(7300)。本発明の一実施例の場合、n-グラムが、格納された語を見出すために使用される。このことは、ロックされた字の全てのセットを使用することを必要としない。例えば、ユーザが、語「flight」を入力しかつ明確に選択したが、ユーザが、データベースにない語「flightplan」を入力することを望むと仮定する。本発明の本実施例では、ユーザは、次に、「flight」の後の字「p」および「l」を明確にロックする。システムは、次に、最後の明確に入力されたバイグラム(bigram)（pとl）を使用する語を検索する。このようにして、データベースに格納されていない語が、生成される。
【０１６５】
本発明が、好適実施例を参照して本明細書において説明されたが、当業者は、他のアプリケーションにより、本発明の精神および範囲から逸脱することなく、本明細書において記載される実施例を置換することができることを容易に理解するであろう。
【０１６６】
したがって、本発明は、下記で含まれる請求の範囲によりのみ制限されるべきである。
【符号の説明】
【０１６７】
53  ディスプレイ
54  キーボード
100  CPU
102  スピーカ
104  メモリ
106  オペレーティング・システム
108  不確定性除去ソフトウェア
110  語彙モジュール
112  アプリケーション・プログラム
114  アプリケーション・プログラム
【図２Ａ】
0005501625.tif 000002
【図１２】
0005501625.tif 000003
【図１３】
0005501625.tif 000004
【図１４】
0005501625.tif 000005
【図１９】
0005501625.tif 000006
【図２０】
0005501625.tif 000007
【図２５】
0005501625.tif 000008
【図１Ａ】
0005501625.tif 000009
【図１Ｂ】
0005501625.tif 000010
【図１Ｃ】
0005501625.tif 000011
【図１Ｄ】
0005501625.tif 000012
【図２Ｂ】
0005501625.tif 000013
【図２Ｃ】
0005501625.tif 000014
【図３Ａ】
0005501625.tif 000015
【図３Ｂ】
0005501625.tif 000016
【図３Ｃ】
0005501625.tif 000017
【図４】
0005501625.tif 000018
【図５】
0005501625.tif 000019
【図６】
0005501625.tif 000020
【図７】
0005501625.tif 000021
【図８Ａ】
0005501625.tif 000022
【図８Ｂ】
0005501625.tif 000023
【図８Ｃ】
0005501625.tif 000024
【図８Ｄ】
0005501625.tif 000025
【図９Ａ】
0005501625.tif 000026
【図９Ｂ】
0005501625.tif 000027
【図９Ｃ】
0005501625.tif 000028
【図９Ｄ】
0005501625.tif 000029
【図１０】
0005501625.tif 000030
【図１１】
0005501625.tif 000031
【図１５】
0005501625.tif 000032
【図１６】
0005501625.tif 000033
【図１７Ａ】
0005501625.tif 000034
【図１７Ｂ】
0005501625.tif 000035
【図１８】
0005501625.tif 000036
【図２１】
0005501625.tif 000037
【図２２】
0005501625.tif 000038
【図２３】
0005501625.tif 000039
【図２４】
0005501625.tif 000040
【図２６】
0005501625.tif 000041
【図２７】
0005501625.tif 000042
【図２８】
0005501625.tif 000043