(57)【要約】【課題】まだ入力されていないシーケンスを予測することになる、ユーザのインプットを処理することへのアプローを提供し、さらに、入力されたシーケンスの曖昧さを除去する時、ユーザコンテクストが考慮されるアプローチを提供し、加えて、入力されたシーケンスの曖昧さ除去が、ユーザに代わって、アクションを行うことになるアプローチを提供すること。【解決手段】本発明は、インプットデバイスを有するシステムへのユーザの情報入力に関する。ユーザが入力したい全体の語が、ユーザが間隔文字のような特殊記号を入力した後、予測される方式が、提供される。ユーザが、予測を受け入れることなく、その後、曖昧なキーを押す場合、選択リストは、再順序付けされる。例えば、ユーザは、句 “Letsrun to school. Better yet, lets drive to “.””” を入力する。語“to”の第2の発生を最初に入力した後に、ユーザがスペースを押した後、システムは、ユーザが過去にその語を入力したコンテクストに基づいて、ユーザが、語“school”を入力しようとしていることを予測する。もしも、ユーザが、スペースの後に、曖昧なキーを入力する場合、語“school”を含む語リストは、再順序付けされ、および他のオプションは、ユーザに利用可能とされる。本発明は、また、メッセージが送信される人、メッセージを書いている人、曜日、週の時刻等のようなコンテクストに関して、予測することも可能である。本発明の実施例は、メニュー項目と関連したユーザのアクション、またはフォーム入力と関連したユーザのアクションのようなユーザのアクション、並びに語の予想を意図する。【選択図】図1
2007506184.tif 000002
【特許請求の範囲】
【請求項１】
ユーザプロンプト、コントロールインプット、または曖昧なテキスト入力に関連して、ユーザの語、または語およびユーザのアクションの何れかを予測するための装置であって：
各々適切なインタフェース回路を介してプロセッサに結合されているインプットデバイスおよびディスプレイであって、当該プロセッサが、当該インプットデバイスからインプットされた文字および記号を受信し、かつ当該ディスプレイに対するオブジェクトの前記出力および当該装置内のアクションの前記表明を管理する、インプットデバイスおよびディスプレイと、
当該プロセッに結合されているメモリであって、
オペレーティング・システムと、
曖昧さ除去ソフトウェアと、
オブジェクトデータベースとを有する、メモリとを有し、
ユーザが入力したい1つまたは複数の全体の語、またはユーザが実行したいアクションが、ユーザプロンプトの後予測され、当該ユーザが、特殊記号を、当該インプットデバイスを用いて入力する、またはタスクまたは状態を変化させることと関連している特殊なアクションを当該インプットデバイスを用いて実行する；および
当該予測された語が、当該ユーザに当該ディスプレイを介して表示される、または、アクションが、当該装置に関して実行される、装置。
【請求項２】
当該ユーザに当該ディスプレイを介して表示される選択リストであって、複数の予測された語およびアクションの何れかを有する当該選択リストと；
当該ユーザが当該特殊記号を入力する、または特殊なコントロールインプットを与えた後、当該ユーザが、曖昧な入力をする場合、当該選択リストを再順序付けするための手段と、をさらに有する請求項1に記載の装置。
【請求項３】
当該プロセッサに関連して、文脈ベースで予測する、文脈データベースを、さらに有する請求項1に記載の装置。
【請求項４】
当該文脈上の予測が、メッセージが送信される人、メッセージを書き込む人、日付、時間、および位置の何れかに基づく請求項1に記載の装置。
【請求項５】
句がユーザのインプットまたはアクションに基づいて予測される請求項1に記載の装置。
【請求項６】
予測が、文法およびセマンティクスの何れかに基づく請求項1に記載の装置。
【請求項７】
当該文脈上の予測が、ユーザのアクションを予想する請求項3に記載の装置。
【請求項８】
当該ユーザのアクションが、メニュー項目およびフォーム入力の何れかに関連して実行可能である請求項7に記載の装置。
【請求項９】
ユーザのインプットパターンおよびアクションの何れかを格納するための手段と；
当該格納されたユーザのインプットパターンおよび／またはアクションの何れかをサーバーにアップロードするための手段と、をさらに有する請求項1に記載の装置。
【請求項１０】
実行された前記アクションが、当該装置状態を、当該装置のコンテクストに基づき、自動的に変化させることを有する請求項1に記載の装置。
【請求項１１】
当該装置が、ユーザのアクションを学習し、かつ予測をするために当該学習されたアクションを使用するための手段をさらに有する請求項1に記載の装置。
【請求項１２】
当該コンテクストが、前の語のコンテクストまたは複数の前の語のコンテクストに基づく請求項3に記載の装置。
【請求項１３】
ユーザの語またはユーザのアクションの何れかを予測するための方法であって、
ユーザが、インプットシーケンスをインプットデバイスに入力し、かつ当該インプットデバイスと関連している特殊なアクションを実行するステップと；
それに応じて、当該ユーザが入力したい1つまたは複数の全体の次の語、またはユーザが、当該デバイスにより実行されることを望むアクションを予測するステップと、を有する方法。
【請求項１４】
複数の予測された語およびアクションの何れかを有する選択リストを提供するステップと；
当該ユーザが、当該特殊記号を入力したまたは特殊なアクションを実行した後、当該ユーザが、曖昧な入力をする場合、当該選択リストを再順序付けするステップとをさらに有する請求項13に記載の方法。
【請求項１５】
現在のインプットシーケンスのコンテクストが、当該ユーザが以前に入力したインプットシーケンスまたは以前に実行されたアクション内のコンテクストとマッチングする時、当該ユーザが入力したい1つまたは複数の全体の次の語、または当該デバイスにより実行されることを希望するアクションを予測するステップをさらに有する請求項13に記載の方法。
【請求項１６】
当該コンテクストが、入力された前記テキストインプットシーケンスの前記コンテンツに基づく請求項15に記載の方法。
【請求項１７】
当該コンテクストを少なくとも1つの他のコンテクストと組み合わせるステップをさらに有する請求項16に記載の方法。
【請求項１８】
当該コンテクストが：
メッセージが送信される人；
前記メッセージを書き込む人；
日付；
時間；および
位置の何れかを有する請求項17に記載の方法。
【請求項１９】
コンテクストとして含む最も効果的なファクタを決定するために、ユーザ行動の即座のファクタ分析を実行するステップをさらに有する請求項15に記載の方法。
【請求項２０】
当該予測するステップが：
当該ユーザが、特殊記号を入力する、または特殊なアクションを実行するステップと；
それに応じて、すぐに先行するユーザのインプットシーケンスまたはアクションのコンテクストに基づいて、メニューに対するキーワードを提供するステップと；
当該キーワードにより先行された入力としてコンテクストデータベース内に格納された当該メニューから予め選択された入力を当該ユーザに表示するステップと；
当該メニュー内の当該入力を再順序付けするステップと；
メニュー入力が選択される時、それを、メニュー・タグとともに選択された場合、今後再順序付けする時、コンテクスト用として自動的に記録するステップとをさらに有する請求項13に記載の方法。
【請求項２１】
当該予測するステップが：
当該ユーザが、特殊記号を入力し、または特殊なアクションを実行するステップと；
それに応じて、かつすぐに先行するユーザのインプットシーケンスまたはアクションのコンテクストに基づいて、ユーザが進むことが予測される次の状態／アプリケーションのために即時的オプションを再順序付けすることにより、標準のメニューフォーマットに取って代わるステップとをさらに有する請求項13に記載の方法。
【請求項２２】
最も可能性があるオプションを、自動的に実行するステップをさらに有する請求項21に記載の方法。
【請求項２３】
当該予測するステップが：
当該ユーザが、特殊記号を入力し、または特殊なアクションを実行するステップと；
それに応じて、かつすぐに先行するユーザのインプットシーケンスまたはアクションのコンテクストに基づいて、フォーム内の少なくとも1つのフィールドを記入するステップとをさらに有する請求項13に記載の方法。
【請求項２４】
コンテクスト感度が、現在のフィールド属性により決定される請求項23に記載の方法。
【請求項２５】
曖昧なテキスト入力に関連して、ユーザの語およびユーザのアクションの何れかを予測するための装置であって：
各々適切なインタフェース回路を介してプロセッサに結合されているインプットデバイスおよびディスプレイであって、当該プロセッサが、当該インプットデバイスからインプットされた文字および記号を受信し、かつ当該ディスプレイに対するオブジェクトの前記出力および当該装置内のアクションの前記表明を管理する、インプットデバイスおよびディスプレイと；
ユーザ・インタフェース(UI)を有するインテグレーション・レイヤと；
コアエンジンであって、当該インプットデバイスの各キー上に見出される字のグループを関連づけられた語の辞書と組み合わせ、当該ユーザが当該インプットを入力する時、ユーザのインプットを認識し、および当該ユーザが、特殊記号を有するユーザプロンプトを当該インプットデバイスを用いて入力した、またはタスクまたは状態を変化させることと関連している特殊なアクションを当該ユーザデバイスを用いて実行した後、ユーザが入力したい1つまたは複数の全体の語、またはユーザが実行したいアクションを予測するためのコアエンジンと；
当該ユーザが以前に入力した語に関する情報を有するコンテクストデータベースであって、当該ユーザのインプットおよび／またはアクションおよび動作の当該装置モードの何れかのコンテクストに基づいて、当該予測をするために当該コアエンジンと協同するコンテクストデータベースとを有し；
当該予測された語または当該アクションが、当該ユーザに当該ディスプレイを介して表示される装置。
【請求項２６】
当該ユーザに当該ディスプレイを介して表示される選択リストであって、複数の予測された語およびアクションの何れかを有する選択リストと；
当該ユーザが、当該特殊記号を入力したまたは特殊なアクションを実行した後、当該ユーザが、曖昧な入力をする場合、当該選択リストを再順序付けするための手段とをさらに有する請求項25に記載の装置。
【請求項２７】
当該文脈上の予測が、メッセージが送信される人、メッセージを書き込む人、日付、時間、および位置の何れかに基づく請求項25に記載の装置。
【請求項２８】
句が、ユーザのインプットまたはアクションに基づいて予測される請求項25に記載の装置。
【請求項２９】
予測が、文法およびセマンティクスの何れかに基づく請求項25に記載の装置。
【請求項３０】
当該文脈上の予測が、ユーザのアクションを予想する請求項25に記載の装置。
【請求項３１】
当該ユーザのアクションが、メニュー項目およびフォーム入力の何れかに関連して実行可能である請求項30に記載の装置。
【請求項３２】
ユーザのインプットパターンおよびアクションの何れかを格納するための手段と；
当該格納されたユーザのインプットパターンおよび／またはアクションをサーバーにアップロードするための手段とをさらに有する請求項25に記載の装置。
【請求項３３】
当該コンテクストが、入力されたテキストインプットシーケンスの前記コンテンツに基づく請求項25に記載の装置。
【請求項３４】
1つのコンテクストを少なくとも1つの他のコンテクストと組み合わせる手段をさらに有する請求項25に記載の装置。
【請求項３５】
コンテクストとして含む最も効果的なファクタを決定するために、ユーザ行動の即座のファクタ分析を実行するための手段をさらに有する請求項25に記載の装置。
【請求項３６】
最も可能性があるオプションを自動的に実行するための手段をさらに有する請求項25に記載の装置。
【請求項３７】
当該ユーザが、特殊記号を入力する、または特殊なアクションを実行すること、およびすぐに先行するユーザのインプットシーケンスのコンテクストに基づいて、フォーム内の少なくとも1つのフィールドを記入することとの何れかに応じる手段をさらに有する請求項25に記載の装置。
【請求項３８】
コンテクスト感度が、現在のフィールド属性により決定される請求項37に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インプットデバイスを有するシステムへのユーザの情報入力に関する。より詳しくは、本発明は、意図されたユーザのインプットおよびアクションの文脈上の予測に関する。
【背景技術】
【０００２】
年を追って、携帯型コンピュータは、小さくなって来ている。より小さな携帯型コンピュータを生産しようとする上でサイズ縮小を妨げる主な要素は、キーボードであった。標準のタイプライタ-サイズのキーを使用する場合、携帯型コンピュータは、少なくともキーボードと同じ大きさでなければならない。ミニチュア・キーボードも携帯型コンピュータに使われて来たが、ミニチュア・キーボードのキーは、小さすぎてユーザが容易にまたは軽快に操作することが出来ないことが判明している。携帯型コンピュータにフルサイズのキーボードを組み込むことは、コンピュータを真に携帯して使用することを妨げる。ほとんどの携帯型コンピュータは、それを平坦な作業面に配置しないと、ユーザが両手でタイプすることはできない。ユーザは、立っているときまたは移動中には、携帯型コンピュータを使用することは困難である。
【０００３】
パーソナル携帯情報機器(PDA)またはパームサイズのコンピュータと呼ばれる、小型携帯型コンピュータの最近の世代において、メーカは、装置に手書き文字認識ソフトウェアを組み込むことによって本問題に対処しようとした。ユーザは、タッチセンシティブ・パネルまたはスクリーン上に書くことによってテキストを直接入力することができる。この手書きのテキストは、次に、認識ソフトウェアによって、デジタルデータに変換される。残念なことに、ペンを用いたプリントまたは書込みは、一般に、タイプより遅いという事実に加えて、手書き文字認識ソフトウェアの精度および速度は、現在まで、満足であるとは言えない。また、メモリ制約がある。認識ソフトウェアは、しばしば、デバイス上で利用可能であるよりも多くのメモリを必要とする。このことは、移動電話のようなデバイスでは特にそうである。
【０００４】
現在、無線業界の目覚ましい成長は、携帯電話、双方向ポケットベル、PDAなどのような、普通の消費者に利用可能な、信頼できる、便利かつ極めて普及している移動通信デバイスを生み出した。テキスト・インプットを要求するこれらの手持ち型無線通信およびコンピューティング装置は、今もまだ小型化されている。双方向ページング、移動電話および他のポータブル無線技術の最近の進歩は、小さくて携帯可能な双方向メッセージ通信システム、特に、電子メール(e-mail)を送受信両方できるシステムの需要をもたらした。いくつかの無線通信装置メーカは、更に、消費者がデバイスを保持しているのと同じ手で動作することができるデバイスを消費者に提供することを望んでいる。
【０００５】
曖昧さ除去の背景
従来の研究開発活動は、キーの数を減少させたキーボードの使用を考えた。タッチ-トーン電話のキーパッド・レイアウトにおいて使用されているように、キーの数を減少させたキーボードの多くには、4行3列のキーが使用されてきている。キー配列において各キーは、複数の文字を含んでいる。したがって、各キーストロークがいくつかの字の1つを示す可能性があるので、ユーザがキーのシーケンスを入力するとき、曖昧性がある。曖昧さ除去(disambiguation)と称されるいくつかのアプローチは、キーストローク・シーケンスの曖昧性を解決するために提案された。
【０００６】
キーの数を減少させたキーボード上に入力された文字を曖昧でなく特定するのための1つの使用されている方法は、ユーザに各々の文字を特定するために、平均で、2回以上のキーストロークを入力することを必要とする。キーストロークは、同時に（コーディング）、またはシーケンスに（マルチストローク仕様）入力される。コーディングもマルチストローク仕様も、充分に簡単かつ効率的な使用を備えるキーボードをもたらさなかった。マルチストローク仕様は、非効率的であり、およびコーディングは、習得し使用することが、多くの場合、複雑である。
【０００７】
曖昧なキーストローク・シーケンスに対応する正しい文字シーケンスを決定するための他の提案されたアプローチは、非特許文献1にまとめられている。非特許文献1は、曖昧さ除去アプローチの大部分が、所定のコンテクストにおいて文字曖昧性を解決するために、関連する言語の文字シーケンスの公知の統計学を使用することに言及している。
【０００８】
語レベルの曖昧さ除去に基づく別の提案されたアプローチは、非特許文献2において開示されている。非特許文献2は、テレフォン・タッチパッドを使用して入力されるテキストから曖昧性を減らすためのシステムを論じている。非特許文献2は、24,500語の英語辞書の語のおよそ92%に対して、キーストローク・シーケンスを辞書と比較するとき、曖昧性は発生しないことを認めている。しかしながら、非特許文献2は、曖昧性が発生するとき、それらは、ユーザに曖昧性を示しかつユーザに複数の曖昧な入力の中で選択をするよう依頼するシステムによって、インタラクティブに解決されなければならないことに注目している。したがって、ユーザは、各語の最後でシステムの予測に応答しなければならない。このような応答は、システムの効率を低下させ、かつテキストの所定のセグメントを入力するために必要とされるキーストロークの数を増加させる。
【０００９】
特許文献1は、タイプ可能な(typable)デバイスおよび、特に、曖昧なコードを具体化するタッチ‐タイプ・デバイスの設計が、多くの人間工学的な(ergonomical)問題を提示することを開示し、かつこのような問題のためのいくつかのソリューションを提案している。特許文献1は、コンピュータ、PDA等および他の情報機器のタッチタイプ可能な(touch-typable)デバイス、デバイスのサイズ、形状およびコンピュータの容量のような所定の設計制約条件、デバイスの典型的な用途、およびアルファベットの順位付けまたはQwerty順位付けのような従来の制約条件のための、強くタッチタイプ可能な(strongly-touch-typable)曖昧なコードおよび実質的に最適な曖昧なコードのクラスから曖昧なコードを選択するための方法を教示する。
【００１０】
Eatoni Ergonomics Inc.は、標準的なキーボードから構成されるWordWise（著作権 2001 Eatoni Ergonomics Inc.）と呼ばれるシステムを提供する。ここで、代表文字は、通常のキーボード上でタイプされ、および、意図された字に関するキーが押される間、シフトキーのような補助キーは、押されたままである。WordWiseの背後の主要な考えは、テレフォン・キーパッド上の各々のキー上の字のグループの各々から1つの字を選択することである。このような選ばれた字は、意図された字に関するキーを押すとき、補助キーを押したままにすることよってタイプされる。WordWiseは、曖昧な、曖昧でないまたはそれらの組み合わせの入力を解決するために語を検索する語彙データベース／辞書を使用しない。
【００１１】
Zi Corporationは、次の語予測、eZiText（著作権 2002 Zi Corporation）を教示するが、我々が知る限りでは、複数の予測のプレゼンテーション、またはコンテクストにマッチングする語を優先させるための選択リストの再順序付けをどこにも提案していない。
【００１２】
他の公知である、次の語生成システムは、Motorolaの Lexicus事業部により提供されるiTAP(http://www.motorola.com/lexicus/)、およびAIRTXにより提供される適応可能な認識技術(http://www.airtx.com/)を含む。
【００１３】
曖昧なキーストローク・シーケンスの曖昧さを除去することは、引き続き難しい問題である。例えば、曖昧さ除去に対する公知のアプローチは、主に、部分的に入力されたシーケンスの完成に重点を置き、まだ入力されていないシーケンス予測することには重点を置かない。さらに、ユーザコンテクストは、入力されたシーケンスの曖昧さを除去する時、一般的に、考慮されず、かつ入力されたシーケンスの曖昧さ除去は、ユーザに代わってアクションを行うことにはならず、むしろ意図されたシーケンスの完成およびユーザに対する表示に重点を置くにすぎない。
【００１４】
まだ入力されていないシーケンスを予測することになる、ユーザのインプットを処理することへのアプローを提供することは、有利である。さらに、入力されたシーケンスの曖昧さを除去する時、ユーザコンテクストが考慮されるアプローチを提供することは、有利である。加えて、入力されたシーケンスの曖昧さ除去が、ユーザに代わって、アクションを行うことになるアプローチを提供することは、有利である。
【００１５】
【特許文献１】国際公開第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. Java（登録商標）d 著、「短いテキストサンプルを使用するキーの数を減少させたキーボード用確率的文字曖昧さ除去(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)
【発明の開示】
【課題を解決するための手段】
【００１６】
本発明は、インプットデバイスを有するシステムへのユーザの情報入力に関する。ユーザが入力したい全体の語が、ユーザが間隔文字のような特殊記号を入力した後、予測される方式が、提供される。ユーザが、予測を受け入れることなく、その後、曖昧なキーを押す場合、選択リストは、再順序付けされる。例えば、ユーザは、句 “Lets run to school. Better yet, lets drive to “.”””を入力する。語“to”の第2の発生を最初に入力した後に、ユーザがスペースを押した後、システムは、ユーザが過去にその語を入力したコンテクストに基づいて、ユーザが、語“school”を入力しようとしていることを予測する。他の予測は、ユーザが、以前に、同じコンテクスト（例えば、“to work”、“to camp”）を有するテキストを入力した場合、利用可能である。これらの予測は、ユーザが、“next”キー；リストをスクロールするために特定されるキーを、押す場合、示される。もしも、ユーザが、スペースの後に、曖昧なキーを入力する場合、語リストは、コンテクストとマッチングする語を優先させるために、再順序付けされる。例えば、ユーザが、字‘a’、‘b’、および‘c’を含む曖昧なキーを押す場合、語“camp”は、リスト内に、優先順位が与えられる。
【００１７】
本発明は、また、メッセージが送信される人、メッセージを書いている人、曜日、週の時刻等のようなコンテクストの他の形に関して、予測することも可能である。
【００１８】
本発明の他の実施例は、メニュー項目と関連したユーザのアクション、またはフォーム入力と関連したユーザのアクションのような、ユーザのアクション、並びに語の予想を意図する。
【００１９】
ユーザのアクションまたはインプットは、コンテクストに基づくデバイスの状態を自動的に変えることができる。例えば、システムは、コンテクストを使用し、カレンダーが、ユーザが会議中であることを示す時間中は、移動電話を「鳴る」から「振動する」へ、変えることができるであろう。別の実施例は、位置コンテクストを使用し、ユーザが屋外にいる時、または、電話が高レベルのバックグラウンド・ノイズを検出した時、移動電話の音量を大きくする。
【００２０】
別の実施例において、システムは、ユーザの習慣を学習する。例えば、学習されたユーザのアクションに基づいて、システムは、ユーザに、ユーザが知ることができないサービスを提供することができる。
【００２１】
別の実施例において、語予測は、前の語コンテクスト（2-グラム(bigram)コンテクスト）に基づくが、また、前の「n」個の語（3-グラム(trigram)コンテクスト等）を使用することも可能であろう。
【発明を実施するための最良の形態】
【００２２】
本発明は、インプットデバイスを有するシステムへのユーザの情報入力に関する。ユーザが入力したい全体の語が、ユーザが間隔文字のような特殊記号を入力した後、予測される方式が、提供される。ユーザが、予測を受け入れることなく、その後、曖昧なキーを押す場合、選択リストは、再順序付けされる。例えば、ユーザは、句“Letsrun to school. Better yet, lets drive to “.””” を入力する。語“to”の第2の発生を最初に入力した後に、ユーザがスペースを押した後、システムは、ユーザが過去にその語を入力したコンテクストに基づいて、ユーザが、語“school”を入力しようとしていることを予測する。他の予測は、ユーザが、以前に、同じコンテクスト（例えば、“to work”、“to camp”）を有するテキストを入力した場合、利用可能である。これらの予測は、ユーザが、“next”キー；リストをスクロールするために特定されるキーを、押す場合、示される。もしも、ユーザが、スペースの後に、曖昧なキーを入力する場合、語リストは、コンテクストとマッチングする語を優先させるために、再順序付けされる。例えば、ユーザが、字‘a’、‘b’、および‘c’を含む曖昧なキーを押す場合、語“camp”は、リスト内に、優先順位が与えられる。
【００２３】
本発明は、また、メッセージが送信される人、メッセージを書いている人、曜日、週の時刻等のようなコンテクストの他の形に関して、予測することも可能である。
【００２４】
本発明の別の実施例において、送信者／受信者／電子メール／SMS／返信／転送／新しい電子メールなどのコンテクスト・パラメータを明確に定義することなく、システムは、デバイスにより、関連しても、関連しなくてもよい一連のパラメータをパスされ、かつ、システムは、パラメータのいずれが、予測に関連し、いずれが関連しないかを学習する。
【００２５】
本発明の他の実施例において、予測は、語を越えて進み、かつフレーズを予測することができる。予測は、また、文法、セマンティクス等に依存することも可能である。
【００２６】
本発明の実施例は、メニュー項目と関連したユーザのアクション、またはフォーム入力と関連したユーザのアクションのような、ユーザのアクション、並びに語および句の予想を意図する。
【００２７】
さらなる実施例において、ユーザ・パターンから得られる知識は、アップロード／ダウンロードすることができ、および／またはこの情報をデバイスとアプリケーションとの間で共有されることを可能にするサーバーから供給されることができる。
【００２８】
議論
本明細書における議論のために、語の文脈上の完成に関して、用語「次の語予測」(Next Word Prediction(NWP))は、とりわけ、以下を意味する：
1）間隔文字を入力した後、ユーザが入力したい全体の次の語を予測し、および
2）ユーザが、予測を受け入れることなく、曖昧なキーを押す場合、選択リストが、再順序付けされる。
【００２９】
図1は、ディスプレイ10およびユーザ情報インプットメカニズム12を有し、かつ本発明による次の語予測技術を組み込むデバイス14の線図である。図1において、ユーザは、句 “Lets run to school. Better yet, lets drive to.“ を入力した。ユーザは、語“to”を入力した後、スペースを押し、およびシステムは、ユーザが、過去に、語“school”を入力したコンテクストに基づいて、ユーザが、次に、語“school,”を入力しようとしていることを予測する。この場合、コンテクストのために前の語のみが、調べられる。最後に、ユーザが語“to”を入力した後、彼は、語“school”を直接入力した。図1の具体例において、ユーザは、語“to”を再度入力し、かつ予測語 “school” が提供されている。ユーザが、過去に、語“to”の後に、他の語を入力した場合、これらの追加の予測は、例えば、リスト内に、同様に、提供される。 この具体例において、コンテクスト情報は、このメッセージにおいてのみ入力された過去のテキストに由来する。好適な実施例において、コンテクスト情報は、同様に、前のメッセージ／セッションにおいて入力されたテキストからコンパイルされる。
【００３０】
現在のメッセージにおけるコンテクストが、ユーザが以前に入力したテキストにおけるコンテクストとマッチングする時、予測は、行われる。コンテクストの概念は、非常に、一般的であることが可能である。コンテクストは、入力されたテキストの性質を意味することが可能である。コンテクストは、また、例えば、以下のような他のコンテクストと組み合わせ可能である：
a）メッセージが送信される人；
b）メッセージを書いている人；
c）曜日；
d）時刻。
【００３１】
最後に、予測システムは、コンテクストのために、何が、最も重要なファクタかを知らないかもしれない、例えば、それらは：
テキストおよびメッセージの受信者?；
テキストおよびメッセージの書き手?；
3つ全て?。
【００３２】
さらなる実施例は、極めて広い可能なセットのファクタで開始し、およびコンテクストとして含む最も効果的なファクタを決定するために、ユーザ行動の即座のファクタ分析を実行する。このシステムは、テキスト、受信者、著者、日のような、記録されるアプリオリな特定されたファクタに基づいて、ユーザ行動に十二分に適応するが、さらに、どのファクタが最も重要であり、かつそれらを強調するかを決定するために十分高機能でもある。このことは、より良い予測を可能にする。
【００３３】
本発明により意図された、予測の別の具体例は、時刻に基づく。例えば、ランチタイムでメッセージ"let's meet for"を入力する時、語"lunch"は句における次の語として自動的に予測される。その日のさらに遅くに、語"dinner"は、予測される。蓄積される句は、さらに、それらの属性の1つとして、それらと関連している時刻を有することができる。このことは、ユーザがテキストを入力している時、どの句が関連するかを決めるために使用することができる。
【００３４】
ユーザのアクションの予測
予測は、また、メニューおよびユーザーアクションのような他の概念にも適用可能である。ユーザがメニューをクリックする時、コンテクスト・モジュールには、先行するコンテクスト語として、そのメニューのためのキーワードが与えられる 。次に、コンテクスト・モジュールは、それらがコンテクストデータベース内にそのキーワードが先行する入力として存在するので、そのメニューから予め選択された入力を生成する。さらに、これらの語は、メニューの最上位に、再順序付け可能である。メニュー入力が選択される時、コンテクスト・モジュールは、それを、メニュー・タグとともに発生した場合、次回前方へ再順序付けするためのコンテクストとして、自動的に記録する。
【００３５】
例えば、ユーザが"Edit"メニューをクリックする時、コンテクスト・モジュールには、コンテクストとして "Edit："が与えられる。ユーザが "Edit" をクリックした最後の時に、ユーザが、"Find"を選ぶ場合、"Find"は、メニューの前方へ示される。ユーザがそれを通り越して"Replace"に移動する場合、"Edit："のコンテクストにおける"Replace"の使用が、マークされ、その結果、ユーザが"Edit"メニューを選択する次の時、"Replace"は、第1の入力となり、後に、"Find"および他のより低い頻度で使用される入力が続く。
【００３６】
制限されたスクリーンスペースを有する携帯電話に対して、メニューの前方へ一般に使用される入力を移動することは、それらが、そうしないとスクロール無しで見えない時、直ちにそれらを見えるようにすることができることに、留意されたい。
【００３７】
一実施例において、簡単なケースのコンテクストおよび再順序付けにおいて、学習は、ユーザが実行することが期待される次のマクロレベルのユーザ・インタフェース(UI)行動を予測するために、使われる。過去の使用に基づいてメニューを再順序付けする代わりに、標準のメニューフォーマットは、ユーザが進むことを期待される次の状態／アプリケーションのために即時的オプションを再順序付けすることにより、完全に取って代わられ、かつ最も可能性があるオプションは、必要に応じて、自動的に、実行可能である。
【００３８】
例えば、システムは、ユーザが電話でセッティング・モードにあり、かつ彼らが、入力方式または言語を選択している時は何時でも、彼らは、彼らの好きなメッセージング・アプリケーションのすぐそばに、極めて移動しやすいことを、知っている状況を考慮されたい。その時、ユーザに、メッセージング・アプリケーションに達するための標準のメニュー・ツリーを与える代わりに、システムは：
a) 自動的にそこに進む、またはそのことが、実行可能でないことが分かった場合；
b) 次の最も可能性があるオプションに加えて、そのことを、セッティング・ウィンドウ内に、目に見える顕著なオプションとして示す。
【００３９】
最後のオプションは、"go to standard menu tree"であろう。このように、ユーザには、ここから直接の最も可能性がある行動ではなく、標準の電話において、メニュー・ツリーに戻っている、最も可能性がある次の終了状態が示される。ユーザは、メニュー・ツリーをナビゲートする必要は全くなく、次のタスクに進むために、1回、クリックする（またはクリック無しでよい）。
【００４０】
本発明の追加の実施例は、例えば、以下の質問の何れかを提起するコンテクストに適用する：
メッセージング・アプリケーションの直後、ユーザがいる最も可能性がある終了状態は何か？
電話帳にある事を入力した後、ユーザがいる最も可能性がある終了状態は何か？
ユーザが、彼がいた最後の2つの場所が与えられる、最も可能性がある終了状態は何か？
与えられた時刻?
ファクタ分析は、次の動きが何であるかを決定する際に含まれる最も関連するファクタを分離するために、即座に実行されるべきか？
フォーム
フォーム入力は、本発明により実行される別の有用な機能である。フィールド属性によるコンテクスト感度(context sensitivity)、例えば、日付は、単に月を予測し、日は、数値モードなどへ切り替えをする。このことは、インプットを作成するために、同じように適用されることが可能である。ブラウザまたは他のフォーム-インプットソフトウェアは、セルのテキスト入力用のコンテクストとして、インプットセル用のプロンプトを提供することができる。従って、例えば、フォームが"Name:"のために促す時、ユーザの名前は、少数回からゼロ回のキーストロークで利用可能であり、また彼がフォームに記入するかもしれない他の名前は、入力するのがより容易にされる。
【００４１】
TegicのT9テクノロジーにおける文脈上の語予測の実施
本明細書において開示される次の語予測発明は、Tegic CorporationのT9テクノロジーに適用されている（www.tegic.comおよびwww.t9.com を参照）。T9テクノロジーは、インプットデバイスの各キー上に見出される字のグループ、例えば、各電話キーを語の高速アクセス辞書と組み合わせ、かつユーザが、彼がタイプ入力するテキストとして何をインプットしたいかを認識する。T9は、デフォルテで入力されたキーシーケンスごとに、最も一般に使用される語を提供し、次に、ユーザに、NEXTまたはスペースキーを１回以上押すことで、他の選択にアクセスさせる。
【００４２】
本発明のT9実施のためのキーの数を減少させたキーボードの曖昧さ除去システムハードウェアの好適な実施例のブロック線図が、図2において提供される。キーボード54およびディスプレイ53は、適切なインタフェース回路を介してプロセッサ100に結合されている。オプションとして、スピーカ102もまた、プロセッサに結合する。この実施例において、プロセッサ100は、キーボードからインプットを受信し、およびディスプレイおよびスピーカへの全ての出力を管理する。プロセッサ100は、メモリ104に結合されている。メモリは、ランダムアクセスメモリ(RAM)のような一時記憶媒体、および読取り専用メモリ(ROM)、フロッピー（登録商標）ディスク、ハードディスクまたはCD-ROMのような恒久的な記憶媒体の組み合わせを含む。好適なメモリ104は、システムオペレーションを支配するために全てのソフトウェア・ルーチンを含む。メモリは、オペレーティング・システム106、曖昧さ除去ソフトウェア108、曖昧なテキスト入力ソフトウェアの関連づけられたフィルタリング、および／または拡張解釈ソフトウェア110および文脈データベース116（後者は以下でさらに詳細に論じられる）を含むことが好ましい。メモリは、また、語彙データベース30を含むことも可能である。オプションとして、メモリは、1つ以上のアプリケーションプログラム112、114を含むことも可能である。アプリケーションプログラムの具体例は、ワードプロセッサ、ソフトウェア辞書および外国の言語翻訳プログラムを含む。音声合成ソフトウェアは、また、アプリケーションプログラムとして提供されることも可能であり、キーの数を減少させたキーボードの曖昧さ除去システムが通信補助として機能することを可能にする。したがって、この場合、出力は、スピーカから音声で出力されることが可能であろう。
【００４３】
本明細書における議論が、組み合わされる場合、オブジェクトまたはオブジェクトの部分を作る記号および記号のシーケンスに適用されることは、当業者に理解されるべきである。記号の典型的な具体例は、字、数字、句読記号または言語からの任意の他の記号のような任意の言語の文字である。オブジェクトまたはオブジェクトの部分の典型的な具体例は、語または語の部分である。しかしながら、本明細書における議論は、日本語の仮名および韓国のジャモ(jamo)に等しく適用される。また、或る種の記号ストリング表現が存在する限り、本明細書において請求された曖昧さ除去システムがアイコン、電話番号または目録記録を予測するために使用可能であるので、オブジェクトは、言語学的である必要はないことも、また、留意するべきである。したがって、字、語、語幹等のような用語の使用が、それらのアプリケーションにのみに限定されず、かつ本明細書における議論を読みかつ理解することを容易にするために使用されることは、理解されるべきである。
【００４４】
本明細書における議論のために、T9システムは、少なくとも3つのコンポーネントを有する：
・インテグレーション・レイヤ。このコンポーネントは、ユーザ・インタフェース(UI)を含み、かつデバイスとT9コアとの間の通信を処理する。通信は、以下で論ずるように、イベントベースまたは機能ベースのAPIの何れかを介して、生じることが可能である。
・コアエンジン、例えば、Tegicにより提供される、T9コアとして公知のコアエンジン。
・1つ以上の言語データベース(LDB)。各LDBは、特定の言語に関する情報を含む。T9は、この言語用の語のリストを生成するために、この情報を使用する。LDBは、例えば、アルファベットT9 LDB、中国語T9 LDB、および韓国語T9 LDBの何れかを含むことができる。
【００４５】
補足的なデータベース
アルファベットT9および中国語T9の実施は、以下の補足的なデータベースを含むことができる：
・ユーザデータベース（アルファベットT9）。アルファベットT9 UDBは、ユーザにより入力されたカスタム語を含む。一般的に、これらは、名前、電子メールアドレス、およびインスタントメッセージングIDのような、LDBにより生成されることができない語である。データベースは、また、ユーザが、語（カスタム語とLDBからの語との両方）を選択する頻度に関する情報を含むことができる。
・コンテクストデータベース（アルファベットT9）。アルファベットT9 CDBは、ユーザが以前に入力した語に関する情報を含む。T9は、この情報をその次の-語予測およびCDB語完成の機能のために必要とする。コンテクストデータベースは、最近入力された語を含む。アルファベットT9は、この情報を、予測された、および完成された語を選択リスト内に提供し、かつ選択リスト内の全部および完成された語を再順序付けするために、使用する。
・マニュファクチャデータベース（アルファベットT9）。アルファベットT9 MDBは、T9ユーザに利用可能としたいが、一般的に、LDBにより、生成可能でない語を含む。MDB入力は、地理学的位置、ストック・チッカー記号、およびURLを含むことができる。
・中国語ユーザデータベース（中国語T9）。中国語T9 CUDBは、ユーザ-入力された文字句、すなわち、一緒に句を形成する中国語文字のストリングを含む。
・中国語自動再順序付けユーザデータベース（中国語T9）。中国語T9CAUDBは、中国語T9 LDBからの最近入力された文字を含む。
【００４６】
選択リスト語の生成
ユーザがアクティブなキーシーケンスを入力する時、アルファベットT9は、キーシーケンスとマッチングする語に関して、そのデータベース(LDB、UDB、CDB、およびMDB)をチェックする。
【００４７】
アルファベットT9選択リストは、1）ユーザがその語をどの程度頻繁に入力するか、2）その語がその言語においてどの程度一般的か、および3）キーが入力された前のコンテクストに基づいて、ユーザが最も望む可能性がある語を提供するように設計され、その結果、その語は、選択リストの初めに現れる。
【００４８】
選択リスト項目の相対的な順序は、どのデータベースが使用可能であるか、かつ選択リストの再順序付けおよび語完成と語予測のような、どの機能が、使用可能であるに依存する。
【００４９】
アルファベットT9の選択リスト内の一番目の語は、デフォルトでアクティブである。用語、アクティブな語とは、現在アクティブな選択リスト語を意味する。
【００５０】
選択リスト順序の具体例は、以下に与えられる。キーが入力され、かつT9データベースまたはデータベース機能が、無効でないと仮定される。
キーシーケンスの長さのCDB語。
再順序付けされた（高頻度で使用された）LDBおよびキーシーケンスの長さのカスタムユーザ語。
キーシーケンスの長さの最上位のLDB語。
キーシーケンスの長さの一般に使用される頻度の低いカスタム語。
キーシーケンスの長さの一般に使用される頻度の低いマニュファクチャ(MDB)語。
キーシーケンスの長さの残っているLDB語。
入力されたキーシーケンスより長いCDB語（これらは、T9により完成される）。
入力されたキーシーケンスより長いカスタムおよびマニュファクチャ語（これらは、T9により完成される）。
【００５１】
複数のデータベース・ルックアップの結果である語。これらは、URLおよび他の長いシーケンスにマッチするための試みである。
【００５２】
受け入れた語の処理
ユーザが、その語からカーソルを移動する（T9キー値T9KEYRIGHT、またはT9KEYLEFTに対応するキーを押す）ことにより、アクティブな語を受け入れる時、アルファベットT9は：
・それがカスタム語としてUDBに存在する場合、語の選択頻度値を調整する。
・それがLDBにあり、かつアルファベットT9の選択リスト再順序付け機能が無効でなかった場合、語の選択頻度値を調整する。
【００５３】
ユーザが、スペースを入力する（T9キー値T9KEYSPACEに対応するキーを押す）ことにより、アクティブな語を受け入れる時、アルファベットT9は、上記の動作、並びに以下の動作を実行する：
・UDBおよびLDBが、まだ、その語を含まない場合、新しく入力されたスペースとその前のスペースとの間の全ての文字を、カスタム語としてUDBに加える。
・新しく入力されたスペースとその前のスペースとの間の全ての文字を、CDBに加える。
【００５４】
次の語の予測
図3は、本発明による次の語予測方法を示しているフローダイヤグラムである。テキストが入力される時、語は、それらがユーザにより入力された順序で、CDB内に格納される。ユーザが語を入力する時(300)、実施がCDBを含む場合、アルファベットT9は、所望の次の語を予測しようとする(302)。アルファベットT9は、最も最近入力された語の第1の前の発生を求めて、CDBをサーチする(304)。アルファベットT9が、その語を見つける場合(306)、データベース内のその後に現れるいかなる語も、予測された語としてユーザに提供される(308)。その語が見つからない場合(306)、処理は、完了し、かつT9は、次のキー入力を待つ(314)。予測された語がユーザにより受け入れられる場合(310)、その語は、処理される；T9は、語の使用を記録する(316)。ユーザがその語を受け入れないが(310)、‘next’キーを押す場合(312)、CDBは、入力されたばかりの語の次の最も最近の発生を求めてサーチされる(318)。見つかる場合、データベース内でそれの次に来る語は、予測として示される(306および308)。ユーザがその語を受け入れず(310)、かつnextキーを押さない場合、如何なる処理も、完了せず、かつT9は、図4に関連してさらに説明されるように、次のキー入力を待つ(314)。
【００５５】
アルファベットT9は、予測された語の選択リストを作成する。選択リスト内の予測された語の最大数は、#define constant T9MAXCDBMATCHESのリテラル値に依存する。異なる値が割当てられない限り、この定数は、6にセットされる。
【００５６】
ユーザは、語を選択し、かつ受け入れるためにT9において使用された、同じプロセスを使用して、予測された語を選択し、かつ受け入れる。ユーザが、予測された語を受け入れた(310)後、アルファベットT9は、その語を処理する(312)。本発明が、T9以外の他の曖昧さ除去システム、並びにアルファベットT9以外のT9の他のフォームに適用可能であることは、当業者に明らかであろう。
【００５７】
語の処理
図4は、本発明による次の語予測方法の語の処理を示しているフローダイヤグラムである。ユーザが、新しい語のスタートを示すために、スペースキーを押す(400)時、アルファベットT9は：
・UDBおよびLDBが、まだ、その語を含まない場合(402)、新しく入力されたスペースとその前のスペースとの間の全ての文字を、カスタム語としてUDBに加える(404)。
・新しく入力されたスペースとその前のスペースとの間の全ての文字を、CDBに加える(406)。
・それが、カスタム語としてUDB内に存在する場合(408)、語の選択頻度値を調整する(410)。
・それが、UDB内に、LDB再順序付けされた語として存在する場合(414)、語の選択頻度値を調整する(410)。
・それが、LDB内にあり、かつアルファベットT9の選択リスト再順序付け、またはLDB語完成機能が、無効でなかった場合(412)、その語をUDBにLDBの再順序付けされた語として加える(416)。
【００５８】
アルファベットT9コンテクストデータベース
以下の議論は、アルファベットT9コンテクストデータベース(CDB)実施し、かつ動作する方法を記載する。CDBは、最近入力された語に関する情報を含む。アルファベットT9は、予測されたおよび完成された語を選択リスト内に含むために、この情報を使用する。アルファベットT9は、現在のアクティブなキーシーケンスにマッチする語のためだけにその他のデータベースをチェックする一方、アルファベットT9は、また、最も最近受け入れられた語、すなわち最も最近入力された非アクティブな語のためにCDBをチェックする。CDB語は、選択リスト内に含まれるために、必ずしも、アクティブな語とマッチングする必要はない。アクティブなキーシーケンスが存在しない時のみ、好適な実施例において現れる、予測された語に対して、CDBマッチングは、アクティブな語以前の語に依存する。完成されたCDB語に対して、マッチングは、アクティブな語以前の語とアクティブな語のキーシーケンスとの両方に依存する。
【００５９】
アルファベットT9が、CDB内にユーザが入力した語を見つける場合、アルファベットT9は、CDB内ですぐ続く語を予測された語として提案する。例えば、CDBが語の対“text message”を含み、かつユーザが、語“text”を入力し、次に、スペースキーを押す場合、アルファベットT9は、“message”を選択リスト内に予測された語として置く。
【００６０】
また、アルファベットT9が、CDB内にユーザが入力した語を見つける場合、アルファベットT9は、完成された語が追加の文字を含むものの、その語がアクティブなキーシーケンスとマッチングする場合、CDB内ですぐ続くその語を完成された語として提案する。例えば、CDBが、語の対“text message”を含み、かつユーザが、語“text”を入力し、スペースを加え、次に、語“message”の最初の４つの字に対応する、キーシーケンス6-3-7-7を入力する場合、アルファベットT9は、“message”を選択リスト内に完成された語として置く。
【００６１】
好適な実施例において、CDB語完成は、UDBカスタム-語完成、LDB語完成、およびMDB語完成とは独立して、動作する。
【００６２】
CDBの実施
アルファベットT9CDBを実施するために、インテグレーション・レイヤは、以下を行うべきである：
1．データベースのためのパーシステントメモリを割当てる。
2．CDBをアクティブにするために、T9AWCdbActivateを呼び出す。
3．CDBのサイズを示す。
4．データベースを、必要に応じて、リセットする。
5．インテグレーション・レイヤが、データをデータベースに書き込むことを、必要に応じて、示す。
6．次の-語予測を、必要に応じて、無効にする。
7．CDB語完成を、必要に応じて、無効にする。
8．T9により実行依頼される要求を処理する。
9．T9終了後、データベースをパーシステントメモリにコピーする。
【００６３】
上記の実施プロセスは、CDBが、不揮発性メモリに格納されること、かつCDBデータが、CDB動作をアクティブにする前に、RAMにコピーされることを仮定する。異なる記憶モデルが、使用される場合、上記ステップのいくつかは、適用できない可能性がある。
【００６４】
パーシステントメモリの割当て
インテグレーション・レイヤは、CDBを格納するために、パーシステントメモリを割当てなければならない。インテグレーション・レイヤが、T9AWCdbActivateを呼び出すことにより、CDB動作をアクティブにする時、それは、CDBをパーシステントメモリからRAMにコピーする。このデータベースは、CDB Data構造(T9AWCdbInfo)のインスタンスとして参照される。
【００６５】
CDB動作のアクティブ化
既存のCDBがない場合、例えば、最初のCDB動作が、デバイス上で、アクティブにされる場合、インテグレーション・レイヤは、全てのT9AWCdbInfo構造フィールド値を0に初期化しなければならない。インテグレーション・レイヤが、既存のCDBをパーシステントメモリからRAMへコピーした場合、それは、如何なるT9AWCdbInfo構造フィールド値も修正するべきではない。
【００６６】
インテグレーション・レイヤは、T9AWCdbActivateを呼び出すことにより、CDB動作をアクティブにする。インテグレーション・レイヤが、この関数を呼び出す時、それは、それがメモリを割当てたCDB Data Structure(T9AWCdbInfo)のインスタンスに対して、ポインタを提供する。
【００６７】
インテグレーション・レイヤが使用可能なCDB動作をアクティブにした後で、アルファベットT9は自動的にCDBをサーチする。アルファベットT9がCDBをサーチする情報の種類は、アクティブなキーシーケンスが存在するか否かに依存する：
・アクティブなキーシーケンスが存在する場合、アルファベットT9は、キーシーケンスとマッチングする語をもとめて、CDBをサーチする。
・アクティブなキーシーケンスが存在しない場合、アルファベットT9は、最も最近入力された語を求めて、CDBをサーチする。アルファベットT9は、次の-語予測のために、この情報を必要とする。
【００６８】
CDBのサイズの表示
CDBのサイズは、T9AWCdbInfo.wDataSizeの値により、示される。WDataSizeフィールドは、T9AWCdbInfoの全体のサイズを示す。これは、CDBデータが格納されるデータエリア、T9により使用されるいくつかの関連する変数、およびコンパイラ環境により加えられる任意の構造-パディングバイト(structure-padding bytes)を含む。
【００６９】
T9の関数APIが、使用される場合、T9AWCdbInfo.wDataSizeの値を直接セットすることは、必要でない。代わりに、CDBデータエリアのサイズは、関数T9AWCdbActivateの引数として、提供される。関数を処理しながら、T9は、T9AWCdbInfo.wDataSizeの値をセットする。
【００７０】
CDBエリアを望む大きさにすることができるが、それは、少なくともT9MINCDBDATABYTESバイトでなければならない。しかしながら、CDBが、サイズにおいて1800 * T9SYMBOLWIDTHバイトであることが推奨される。
【００７１】
CDBのリセット
インテグレーション・レイヤが、CDB動作をアクティブにする時、アルファベットT9は、以下により、データベースの完全性を保証する：
・CDBが、T9が期待している同一サイズであることを保証すること。
・CUDBが、サイズにおいて少なくともT9CCUDBMINSIZEバイトであり、かつ偶数のバイトであることを確認すること。
・CDBが、LDBと同じ文字符号化を使用することを確認すること。
【００７２】
アルファベットT9が、問題を検出する場合、それは、CDBをリセットする。このことは、全てのCDBデータを削除する。このプロセスは、インテグレーション・レイヤによる任意のアクションなしで発生し、かつアルファベットT9は、CDBがリセットされたことをインテグレーション・レイヤに通知しない。インテグレーション・レイヤは、T9AWCdbReset呼び出すことにより、CDBを明確にリセットすることができる。大部分の状況下で、インテグレーション・レイヤは、この関数を呼び出す必要はない。
【００７３】
インテグレーション・レイヤがデータをCDBへ書き込むことの表示
CDBが、アルファベットT9が書き込むことができないメモリエリアに格納される場合、インテグレーション・レイヤは、データをそのデータベースに書き込まなければならない。また、データベースに書かれるものをモニタすることが望まれる、または不揮発性記憶装置内にCDBのシャドウコピーを維持することが望まれる場合、インテグレーション・レイヤに、データをCDBへ書き込ませる可能性がある。
【００７４】
インテグレーション・レイヤは、アルファベットT9に、それが、T9AWSetCdbWriteByOEMを呼び出すことにより、データを書き込むことを知らせる。
【００７５】
インテグレーション・レイヤが、このイベントを呼び出した後、アルファベットT9は、インテグレーション・レイヤが、T9REQCDBWRITEを呼び出すことにより、データを書き込むことを必要とする。インテグレーション・レイヤがデータをCDBへ書き込むことがもはや必要でない場合、インテグレーション・レイヤは、アルファベットT9がデータを直接書き込むことができることを示すために、T9AWClrCdbWriteByOEMを呼び出す。
【００７６】
次の語予測の無効
CDB動作がアクティブにされる時、デフォルトによるT9は、予測された語、すなわち、ユーザが入力したい語をユーザがすでに入力した語に基づいて提供する。次の-語予測は、曖昧およびマルチタップの両方のテキスト-入力モードにおいて、利用可能である。
【００７７】
アルファベットT9は、ユーザが入力したばかりの語が、１つ以上の語の対の第1の部分として、CDB内に見つけられる時、選択リスト内に予測された語を置く。ユーザが入力したばかりの語の各インスタンスの後に、CDB内に現れるいかなる語も、予測された語として、提供される。
【００７８】
アルファベットT9実施において、CDB語完成のみを使用し、かつ次の-語予測を使用しないことが望まれる場合、この機能性を無効にすることは、可能である。CDB語完成を無効にするために、インテグレーション・レイヤは、T9AWClrCdbPredictionを呼び出す。次の-語予測を再び可能にするために、インテグレーション・レイヤは、T9AWSetCdbPredictionを呼び出す。
【００７９】
CDB語完成の無効
CDB動作がアクティブにされる時、デフォルトによるアルファベットT9は、アクティブな語のすぐ前の語が、CDB内で、完成された語のすぐ前にある場合、アクティブなシーケンスとマッチングする（および追加の文字を含む）完成されたCDB語を選択リスト内に置く。アルファベットT9実施において、次の-語予測のみを使用し、かつCDB語完成を使用しないことが望まれる場合、この機能性を無効にすることは、可能である。CDB語完成を無効にするために、インテグレーション・レイヤは、T9AWClrCdbCompletionを呼び出す。CDB語完成を再び可能にするために、インテグレーション・レイヤは、T9AWClrCdbCompletionを呼び出す。
【００８０】
CDB語完成は、UDBカスタム語完成、LDB語完成、およびMDB語完成とは独立して、動作することに留意されたい。CDB内の語の多くは、また、他のアルファベットT9データベース内にも存在する。アルファベットT9は、選択リストからこれらの複製を抑制する。しかしながら、他のAPIイベント関数上にこの重複の可能性のある効果は、留意されるべきである。例えば、データベースから削除されたUDBカスタム語は、その語がCDB内にもまた存在する場合、なお、選択リストに現れる。同様に、LDB語完成を無効にする場合、LDB内の語は、それらがCDB内にも存在し、かつCDB語完成が使用可能である場合、選択リスト内に完成された語として現れる。
【００８１】
T9要求の処理
CDBが実施される方法に依存して、インテグレーション・レイヤは、以下のT9要求を処理する必要がある可能性がある：
・T9REQCDBWRITE-インテグレーション・レイヤが、データを、CDBに書き込むことを要求する。T9は、インテグレーション・レイヤが、T9に、それが、かつT9ではないものが、データをCDBに書き込むことを知らせる場合のみ、この要求を実行依頼する。
【００８２】
アップデートされたCDBのパーシステントメモリへのコピー
インテグレーション・レイヤは、データベースが、T9セッション中に修正された場合、それが、アルファベットT9を終了する時、CDBデータをパーシステントメモリにコピーするべきである。T9は、それがデータベースを修正するときはいつでも、T9AWCdbInfo.wUpdateCounterの値をインクリメントする。インテグレーション・レイヤは、データベースが、セッション後のwUpdateCounterの値をセッション前のその値と比較することにより、修正されたか否かを決定することができる。その値が異なる場合、インテグレーション・レイヤは、アップデートされたCDBデータをパーシステントメモリにコピーしなければならない。T9は、各セッション中に、CDBを修正するであろうことに留意されたい。
【００８３】
アルファベットT9 CDBの動作
アルファベットT9CDB動作は、以下のタスクから成る：
・データをCDBに追加すること。
・データをCDBから取り出すこと。
・データをCDBから削除すること。
【００８４】
データのCDBへの追加
アルファベットT9は、自動的に、データをCDBに追加する。CDBが、T9が書き込むことができないメモリエリア内に格納される場合、インテグレーション・レイヤは、データをCDBに書き込まなければならないことに留意されたい。
【００８５】
データのCDBからの取り出し
アルファベットT9は、自動的に、データをCDBから取り出す。
【００８６】
データのCDBからの削除
アルファベットT9は、ユーザまたはインテグレーション・レイヤが語をデータベースから削除することを許可しない。代わりに、アルファベットT9は、それが、ほぼ満杯になる時自動的に、データベース内の最も古い語を削除し始める。この除去プロセスは、ガーベッジコレクションと称され、およびそれは、ユーザまたはインテグレーション・レイヤによる任意のアクションなしに発生する。
【００８７】
動作
本発明の本好適な実施例において、保存されたコンテクスト・データは、スペースを押し次第、次の語の予測を戻し、かつキーストロークを入力した後に語完成をフィルタリングするために、使用される。このことは、原則として、ユーザが、1つまたは複数の前の語に基づいて正しく予測された語をすばやく取り出すことによりキーストロークの数を減少することを可能にする。この完成機能は、現在、ユーザ入力されたテキストをコンテクストデータベース(CDB)に保存し、かつコンテクストおよびキーストロークとマッチングするこれらの語を戻すことにより、実施される。
【００８８】
NWPは、最近入力されたユーザテキストを保存し、およびユーザ入力する次の語を予測するために、そのテキストを使用する。例えば、ユーザが、最近、句‘hello Leslie’、’ hello Inger’および‘Hello Helena’をタイプした場合、ユーザがタイプし、かつ語‘hello’をスペースを打つことにより受け入れる時、本発明は、可能な次の語として、以下を提案する：
Leslie
Inger
Helena。
【００８９】
ユーザ が、これらの語の1つを受け入れないが、タイプを続ける場合、本発明は、ユーザに示される完成に優先順位を付けるために、コンテクストを使用する。12-キーインプットデバイスを使う実施例において、上記ユーザが、スペースを打った後、4キーをタイプする場合、ユーザに示される選択リストは、以下の通りである：
i
h
g
4
Inger
Helena
【００９０】
上記ユーザが、スペースを打った後、43キーをタイプする場合、ユーザに示される選択リストは、以下の通りである：
he
if
id
ie
ge
gf
Helena
【００９１】
スペースの後、コンテクストデータベース(CDB)オブジェクトは、全部の選択リストを構成する。曖昧なキーを押した後、CDBオブジェクトは、以下の様に、現れる：
CDBオブジェクトが、アクティブなキーシーケンスの長さである場合、オブジェクトは、選択リストの最上位に、現れる。
CDBオブジェクトが、アクティブなキーシーケンスより長い場合、オブジェクトは、リストの完成部分の最上位に現れる。
【００９２】
システム状態は、スペースの後、以下を用いて、完成をトラッキングする：
pFieldInfo->nWordLen                =       0；
pFieldInfo->nComplLen       =       コンテクスト 語の長さ。
【００９３】
ユーザ が曖昧なキーを選択した後、システム 状態は、  CDB 完成を、 既存の方法でトラッキングする：
pFieldInfo->nWordLen          =       アクティブな キー シーケンスの長さ；
pFieldInfo->nComplLen                 =    完成の長さ。
【００９４】
API 
T9 APIは、語、語リスト、および顧客により使用されるバッファ情報を保持するグローバルな構造、および語をビルドし、受け入れ、および削除し、語リストによりスクロールする等のためのイベントまたは関数のセットから成る。アルファベットT9において、API構造は、T9AWFieldinfo構造と称される（しばしば、pAWFieldInfoと称される）。T9AWFieldInfoは、アルファベットT9に特有のデータを含む。T9AWFieldInfo構造は、日本語、中国語、および韓国語T9にもまた使用されている一般語データを含む、別の構造、T9FieldInfo（しばしばpFieldInfoと称される）を含む。
【００９５】
新しいAPI構造データおよび関数は、NWPを実施するために、T9に加えられる。NWP機能は、ホストがコンテクストデータベースに対してスペースを割当て、かつpFieldInfo->pCdbInfoを非ゼロ値にセットした場合、アクティブである。
【００９６】
以下の関数APIイベントは、CDBをアクティブにするために、加えられる：
T9AWCdbActivate(T9AWFieldInfo *pAWFieldInfo,
T9AWCdbInfo T9FARUDBPOINTER *pCdbInfo,
T9UINT nDataSize, T9U8 bSymbolClass)；
書き込み構成をセットするために：
T9EVTCDB :T9CTRLSETCDBWRITEBYOEM
Function API - T9AWSetCdbWriteByOEM(T9AWFieldInfo *pAWFieldInfo)
書き込み構成をクリアーするために：
T9CTRLCLRCDBWRITEBYOEM 
Function API - T9AWClrCdbWriteByOEM(T9AWFieldInfo *pAWFieldInfo)
CDBをリセットするために：
T9EVTCDB:T9CTRLCDBRESET 
(Function API call: T9AWUdbReset(T9AWFieldInfo *pAWFieldInfo)
CDBコンテクストをブレークするために：
T9EVTCDB:T9CTRLCDBBREAKCONTEXT 
Function API - T9AWBreakCdbContext (T9AWFieldInfo *pAWFieldInfo)
コンテクストバッファに記入するために：
T9EVTCDB : T9CTRLCDBFILLCONTEXTBUFFER 
buffer: pEvent->data.sCDBData.psBuf 
buffer length pEvent->data.sCDBData.nBufLen 
Function API - T9AWFillContextBuffer(T9AWFieldInfo *pAWFieldInfo,
T9SYMB *psBuf, T9UINT nBufLen)
語予測を得るために：
T9EVTCDB : T9CTRLCDBGETWORDPREDICTION 
Function API - T9AWGetWordPrediction (T9AWFieldInfo *pAWFieldInfo)
バッファをクリアーするが、コンテクストを保持するために：
T9EVTCLEARBUFFE 
Function API - T9AWClearBuffer (T9AWFieldInfo *pAWFieldInfo)
CDB完成をターンオフするために：
T9CTRLCLRCDBCOMPLETION 
Function API - T9AWClrCdbCompletion (T9AWFieldInfo *pAWFieldInfo)
CDB完成をターンオンするために：
T9CTRLSETCDBCOMPLETION
Function API - T9AWSetCdbCompletion (T9AWFieldInfo *pAWFieldInfo)
CDB完成をターンオフするために：
T9CTRLCLRCDBPREDICTION 
Function API - T9AWClrCdbPrediction (T9AWFieldInfo *pAWFieldInfo)
CDB完成をターンオンするために：
T9CTRLSETCDBPREDICTION 
Function API - T9AWSetCdbPrediction (T9AWFieldInfo *pAWFieldInfo)
以下の要求タイプは、加えられる：
T9REQCDBWRITE
これは、外部書き込みが進行中の場合、CDBへの書き込みを要求するために、使用される。
【００９７】
APIを通してCDBへ書き込むための、追加の直接のアクセスは存在しない。
【００９８】
内部のCDBインタフェース
本発明のT9実施例において、CDBに対する2つのインタフェースが、存在する：
AddCdbText(pFieldInfo, psWordBuf, nLen)
ここで：
pfieldInfo                      =       T9 fieldinfo
psWordBuf                      =       テキスト保持バッファ
nLen                            =       語長さ
および：
GetCdbObject(pFieldInfo, nUdbObjNum, nWordLen, nCursor, psBuildTxtBuf, nBuildTxtBufSize, pnComplLen, pnUdbObjCnt)
ここで：
pfieldInfo                      =       T9 fieldinfo
nUdbObjNum              =       CDB オブジェクト数（1番目のマッチングに対して1、2番目のマッチングに対して2、等）
nWordLen                        =       語長さ（スペースの後、0、1キーの後、1、2キーの後、2、等）
nCursor                 =       カーソル位置    
psBuildTxtBuf           =       ビルド・バッファに対するポインタ
nBuildTxtBufSize                =       ビルド・バッファサイズ
pnComplLen                      =       完成長さホルダに対するポインタ
pnUdbObjCnt             =       オブジェクトカウントホルダに対するポインタ。
【００９９】
関数
T9STATUS T9FARCALL T9AW_SaveAndAddToCdb(T9AWFieldInfo *pAWFieldInfo)
語をコンテクストバッファに保存かつ追加し、かつコンテクストデータベースに加える。この関数は、スペースが入力された後のみ、呼び出される。
【０１００】
T9UINT T9FARCALL T9AW_GetCdbObject (T9AWFieldInfo *pAWFieldInfo, T9UINT nCdbObjNum, T9UINT nWordLen, T9UINT nCursor, T9U8 bObjectType, T9UINT *pnTerminal, T9U8 bRightMost, T9SYMB *psBuildTxtBuf, T9UINT nBuildTxtBufSize, T9UINT *pnComplLen, T9UINT *pnCdbObjCnt)
この関数は、CDBからコンテクストマッチングを取り出す。
【０１０１】
T9STATUS T9FARCALL T9AWCdbReset(T9AWFieldInfo *pAWFieldInfo)
この関数は、CDBをリセットする。
【０１０２】
T9STATUS T9FARCALL T9AWCdbActivate(T9AWFieldInfo *pAWFieldInfo, T9AWCdbInfo T9FARUDBPOINTER *pCdbInfo, T9U8 bSymbolClass)
この関数は、CDBをアクティブにする。
【０１０３】
データベース
現在の最小のデータベースサイズ要求条件は、1800 * 記号幅（300語 * 6  文字／語 * 記号幅 バイト／文字）である。これは、1-バイトのシステムに対して1800、および2-バイトのシステムに対して3600である。
【０１０４】
CDBは、最近入力されたテキストをユーザがそれを入力する同じフォームで保存する。このテキストは、環状バッファに格納される。新しい語は、CDB内の最も古い語を上書きする。
【０１０５】
CDBは、そのヘッダーにグローバルな情報を有する：
T9U16 wDataSize；        ／*この構造のバイトの全サイズ*／
T9U16 wUpdateCounter；   ／* ユーザデータベースが修正された毎にインクリメントされたカウント*／
T9U16 wSymbolClass；    ／*CDBに対してマッピングする記号表を示すT9 enum値*／
T9U16 wDataBeginOffset；       ／* データの開始に対するオフセット *／
T9U16 wDataEndOffset；       ／* データの終わりに対するオフセット *／   
T9U16 wSavedOffset；       ／*データベース内の最後にアクセスされた位置に対するポインタ *／
T9U32 dwOffsetSaver；       ／* 最後にオフセットを保存したスレッドに対する識別子 *／
T9U8  bDataArea[1]；         ／* 実際は可変のサイズ・データ配列 *／
【０１０６】
読出し
CDBから語を要求する時、システム語ビルダーは、コンテクストバッファを通過する。コンテクストバッファを使用して、CDBは、最近の順序で、コンテクストマッチングを取り出す。
【０１０７】
書込み
スペースキーが打たれた、または空白が明確に入力された時、ビルドされた語は、CDBに書き込まれる。このことは、曖昧およびマルチタップ(MT)の両方のモードにおいて、起こる。語は、また、標準のRUDB処理も通過する。CDB内に、ガーベジクリーンアップは存在しない。
【０１０８】
コンテクストバッファ
コンテクストバッファは、維持される。コンテクストバッファは、スペースキーを押すことで、アップデートされ、およびカーソルを移動するおよびクリアーするようなコンテクストを失う傾向のある任意のアクションにより、クリアーされる。語APIにおいて、これは、別個の確認関数のフラッシュ語関数(flush word function)にアタッチされる。
【０１０９】
機能説明
T9実施例において、NWP機能は、以下の場合、アクティブである：
a）コンパイルは、この機能のためのコードを含む；および
b）フィールド情報メンバーpFieldInfo->pCdbinfoは、有効メモリを示す。
【０１１０】
T9において、次の語予測機能がアクティブである時適用する機能要素は、以下に、リストアップされる：
FD100：T9コアは、使用された全ての最近の語をCDBに保存する。保存される語の数は、OEMによりCDBに割当てられたサイズに依存する。
FD200：T9曖昧およびMTモードは、アクティブな語が存在する、または打たれた前のキーがT9数字キーである場合、スペースの後に次の語予測を戻す。
FD300：T9曖昧およびMTモードは、右矢印が押される前にアクティブな語がある場合、右矢印およびスペースの後に次の語予測を戻す。
FD301：FD300かつFD200の結果は、以下を意味する：
語を離れてカーソルを移動し、かつバッファ内を次々に移動した後に、T9は、スペースが打たれた後、予測を示さない。
バッファ内を次々にカーソルを移動する(“Cursoring around the buffer”)は、左矢印または右矢印の何れかを押し、かつ語の右側でカーソルを終えることを意味する。唯一の例外は、語をフラッシュする（非アクティブにする）ためにのみ、右矢印が、打たれる時である。
予測が、アクティブであり、かつユーザが、その予測をクリアーするために、スペースを打ち、そのスペースをクリアーするためにクリアーを再度打ち、次に、スペースを再度打つ場合、T9は、予測を示す。
FD400：語をスタートする時、その語が、スペースおよび別の語の後にある場合、T9は、いつも、コンテクストマッチングを生成する。具体例として、語の右側に、バッファ内を次々にカーソルを移動し、かつキースペースを打った後、如何なる予測も、配信されない。しかしながら、ユーザが、曖昧な数字キーをタイプし続ける場合、コンテクストマッチングは、選択リスト内に配信される。
FD500：CDB予測／完成は、最近の順序で、取り出される。
FD600：CDBは、言語に依存しない。
FD700：スペースを押した後、CDBマッチングの数の制限は、コンパイル時マクロT9MAXCDBMATCHESにより、決定される。ユーザが、数字キーを押した後、CDBからビルダーに配信されるCDBマッチングの数に制限はない。
FD800：CDB予測／完成は、文句読点を横切って、配信されない。文句読点は、非エモティコンに関する後置句読点として、定義される。エモティコンの定義に対して、FD1200を参照されたい。
FD900：CDB予測／完成は、アクティブな語とともにクリアーを押した後、除去されるが、完成は、ユーザが再びタイプし始めた時、配信される。
FD1000：CDBのエージングは存在しない；最も古い語は、入力された最も最近の語により置き換えられる。
FD1100：コンテクストバイグラムは、アクティブな語が存在する、または以前に打ったキーがT9数字キーである場合、スペースを押し次第、CDB内に記録される。ユーザが、語からカーソルを移動する場合、コンテクストは、CDB内でブレークされる。
FD1200：コンテクスト予測の候補は、以下の処理に従う：
語が先行句読点を有さない場合、後置句読点は、これがエモティコンのように見えない限り、取り除かれる。T9は、その語が、1つ以上の文字であり、かつ非アルファベット文字（句読点および数字）の数が、語において、文字の合計数の少なくとも2分の1である場合、後置または先行句読点を有する語は、エモティコンであると仮定する。これは、ユーザデータベース(UDB)処理のために使用される同じルールである。
語が、先行句読点を有する場合、語は、それがエモティコンであると思われない限り、拒絶される。
FD1300：ユーザが多くのT9キーを押した場合、キーシーケンスの長さのコンテクスト選択リスト項目は、選択リストの始めに配信される。完成を伴なったコンテクスト選択リスト項目は、リストの完成部分の最上位に、配信され、後にMDB、UBD、およびLDBが予め特定された順序で、続く。
FD1400：スペースが打たれる時、キャプスロックオンの場合、予測された語は、全部大文字である。
FD1500：先行語は、大小文字識別不能であるが、後置語は、大小文字識別可能である。したがって、“cab fee”をタイプし、次に、キャプスロックをオンにし、かつ“CAB”とスペースをタイプする場合、システムは、“FEE”を予測する。“cab fee”をタイプし、次に、キャプスロックではなくシフトを使用して“CAB”をタイプし、次に、スペースを選択する場合、システムは、“fee”を予測する。同様に、“Cab fee ”をタイプし、次に、“cab”およびスペースをタイプする場合、システムは、“fee”を予測する。
FD1600：スイッチは、コンテクスト予測をオン／オフにする、およびコンテクスト完成をオン／オフにするために、利用可能である。
【０１１１】
T9におけるコンテクスト予測および完成
使用ケース：
1）ユーザは、バイグラム ‘my money’ 、’my time’、および ‘my marriage’  をここに書かれた順序で、最近入力した。
2）ユーザは、語  ‘my’ を入力し、かつ受け入れる。
3）スペースを打つ。
4）選択リストを期待する：
marriage
time 
money
5）   ユーザは、 6 キーを入力する。
6）   選択リストを期待する：
o
m
n
6
marriage
money
7）   ユーザは、再び、6 キーを入力する。
8）   選択リストを期待する：
on
no
mm
mo
oo
money
【０１１２】
使用ケース：
1）ユーザは、 バイグラム  ‘bow tie’ を最近入力した。
2）ユーザは、語  ‘bow’ を 入力し、かつ受け入れる。
3） スペースを打つ。
4）   選択リストを期待する：
tie
5）   ユーザは、843キーを入力する。
6）   選択リストを期待する：
tie
the
vie
vid
tid  
注記：たとえ語 ‘the’ が、英語において、最も一般的な語であっても、このコンテクスト内で、‘tie’ は、リストに、最初に示される。語 ‘bow’ が先行する時、それは、最も可能性のある候補である。
【０１１３】
マルチタップにおけるコンテクスト予測および完成
使用ケース：
1）   ユーザは、バイグラム ‘my money’、 ’my time’、および ‘my marriage’ を、ここに書かれた順序で、最近入力した。
2）  ユーザは、 語  ‘my’ を入力する。
3）  スペースを打つ。
4）  選択リストを期待する：
marriage
time 
money
5）   ユーザは、‘m’ を 入力する。
6）   ユーザは、next キーを押す。
7）   選択リストを期待する：
m
marriage
money
8）   ユーザは、‘o’ を 入力する。
9）   ユーザは、次の キーを 押す。
10）選択リストを期待する：
mo
money
T9におけるコンテクスト予測および完成（スペースの前のフラッシング）。
【０１１４】
使用ケース：
1）   ユーザは、バイグラム ‘my money’ 、’my time’、および ‘my marriage’  をここに書かれた順序で、最近入力した。
2）  ユーザは、語 ‘my’ を 入力する。
3）   右矢印を打つ。
4）   スペースを打つ。
5）   コンテクスト予測を期待しない。
6）   ユーザは、6キーを入力する。
7）   選択リストを期待する：
o
m
n
6
marriage
money
8）   ユーザは、再び、6キーを入力する。
7）   選択リストを期待する：
on
no
mm
mo
oo
money
T9におけるUDB完成を伴なうコンテクスト予測および完成
CDB完成は、UDB完成の前に現れる。
【０１１５】
使用ケース：
1）   ユーザは、バイグラム ‘my money’、 ’my time’、および ‘my marriage’、およびユニグラム ‘mobetterblues’ をここに書かれた順序で、最近入力した。
2）   ユーザは、語‘my’を入力し、かつ受け入れる。
3）  スペースを打つ。
4）  選択リストを期待する：
marriage
time 
money
5）   ユーザは、6 キーを入力する。
6）   選択リストを期待する：
o
m
n
6
marriage
money
mobetterblues
7）   ユーザは、再度、 6 キーを入力する。
8）   選択リストを期待する：
on
no
mm
mo
oo
money
mobetterblues
T9におけるコンテクスト 予測および完成（大小文字識別）
先行 語 は、大小文字識別不能であり、後置 語は、大小文字識別である。スペース が、キャプスロックオンの状態で、打たれる場合 、予測された語は、 全部、大文字である。
【０１１６】
使用ケース：
1）  ユーザは、 バイグラム  ‘my MONEY’、 ’my time’、および ‘MY marriage’ を、ここに書かれた順序で、最近入力した。
2）   ユーザは、語  ‘my’ を 入力し、かつ受け入れる。
3）   スペースを打つ。
4）  選択リストを期待する：
marriage
time 
MONEY
5）   ユーザは、クリアーキーを入力する。
6）   ユーザは、キャプスロックオンの状態ではなく、語 ‘MY’ を入力し、かつ受け入れる。
7）  選択リストを期待する：
marriage
time 
MONEY
8）   ユーザは、 クリアー キーを入力する。
9）   ユーザは、キャプスロック オンの状態で、語  ‘MY’  を  入力し、かつ受け入れる。
10）選択リストを期待する：
MARRIAGE
TIME 
MONEY
マルチタップにおけるUDB 完成を伴なうコンテクスト 予測および完成
CDB 完成は、UDB 完成の前に現れる。
【０１１７】
使用ケース：  
1）  ユーザは、 バイグラム ‘my money’、 ’my time’、および‘my marriage’、およびユニグラム‘mobetterblues’を、ここに書かれた順序で、最近入力した。
2）   ユーザは、語‘my’を入力する。
3）  スペースを打つ。
4）  選択リストを期待する：
marriage
time 
money
5）   ユーザは、‘m’を入力する。
6）   ユーザは、nextキーを押す。
7）   選択リストを期待する：
m
marriage
money
mobetterblues
8）    ユーザは、 ‘o’を 入力する。
9）   ユーザは、次の キーを 押す。
10）選択リストを期待する ：
mo
money
mobetterblues
T9におけるUDB完成を伴なうコンテクスト予測および完成（ブレークされたコンテクスト）
CDB完成は、UDB完成の前に現れる。
【０１１８】
使用ケース：
1）   ユーザは、バイグラム‘my money’、’my time’、および‘my marriage’、およびユニグラム‘mobetterblues’を、ここに書かれた順序で、最近入力した。
2）  ユーザは、語 ‘my’を入力し、かつ受け入れる。
3）  スペースを打つ。
4）  クリアーを打つ。
5）  クリアーを再度打つ、または、“my” のすぐ右側のカーソルで終わるように、任意の他の カーソル移動をする。
6）   スペースを入力する。
7）   コンテクスト 予測を期待しない（機能説明 FD200）。
8）   ユーザは、6キーを入力する。
9）   コンテクストを伴なう選択リストを期待する（機能説明FD400）。
10）選択リストを期待する：
o
m
n
6
marriage
money
mobetterblues
11）ユーザ は、再度6 キーを入力する。
12）選択リストを期待する ：
on
no
mm
mo
oo 
money
mobetterblues
T9におけるコンテクスト予測および完成（新しさが頻度に優先する）
CDB完成は、UDB完成の前に現れる。
【０１１９】
使用ケース：
1）   ユーザは、バイグラム ‘my money’ 、‘my money’、 ’my marriage’ を、ここに書かれた順序で、最近入力した。
2）   ユーザは、語‘my’を、入力し、かつ受け入れる。
3）   スペースを打つ。
4）選択リストを期待する（より最近の‘marriage’は、より頻度の高い‘money’の前に来る）：
marriage
money
5）   ユーザは、6キーを入力する。
6）   選択リストを期待する：
o
m
n
6
marriage
money
言語
CDBは、言語独立である。
【０１２０】
完成されていない語の再順序付け
完成されていない語を再順序付けすることに関するRUDB処理は、変化しないままである。
【０１２１】
クリアー
コンテクスト予測は、現在の語をクリアーした後、配信されないが、ユーザが再度タイプし始める時、配信される。
【０１２２】
句読点
コンテクスト予測は、文句読点を横切って、配信されない。
【０１２３】
エージング
CDBのエージングは、存在しない、最も古い語は、入力された最も最近の語により置き換えられる。
【０１２４】
ガーベッジコレクション
スペースが、新しい語をCDBに入力することを必要とされる時、CDB内の最も古い語は、場所を作るために、除去される。
【０１２５】
MT内への語の入力
CDBのためのデータは、MTの間に集められ、かつコンテクスト予測／完成は、MT内に配信される。
【０１２６】
My Words
CDB処理は、コンテクスト語が、ユーザにより維持されるMyWordsデータベースに、入力されたか否かにかかわらず、間隔文字の追加時に、発生する。
【０１２７】
本発明が好適な実施例を参照して本明細書において説明されるにもかかわらず、当業者は、他のアプリケーションが、本発明の精神および範囲から逸脱することなく、本明細書において記載されるそれらと置換することができることを容易に理解するであろう。例えば、ユーザのアクションまたはインプットは、コンテクストに基づくデバイスの状態を自動的に変えることができる。例えば、システムは、コンテクストを使用し、カレンダーが、ユーザが会議中であることを示す時間中は、移動電話を「鳴る」から「振動する」へ、変えることができるであろう。別の実施例は、位置コンテクストを使用し、ユーザが屋外にいる時、または、電話が高レベルのバックグラウンド・ノイズを検出した時、移動電話の音量を大きくする。
【０１２８】
別の実施例において、システムは、ユーザの習慣を学習する。例えば、学習されたユーザのアクションに基づいて、システムは、ユーザに、ユーザが知ることができないサービスを提供することができる。
【０１２９】
別の実施例において、語予測は、前の語コンテクスト（2-グラム(バイグラム)コンテクスト）に基づくが、また、前の「n」個の語（3-グラム(trigram)コンテクスト等）を使用することも可能であろう。
【０１３０】
したがって、本発明は、下記で含まれる請求の範囲によりのみ制限されるべきである。
【図面の簡単な説明】
【０１３１】
【図１】ディスプレイ、およびユーザ情報入力メカニズムを有し、かつ、本発明による次の語予測テクノロジを組み込んでいるデバイスの線図である。
【図２】本発明によるT9実施のためのキーの数を減少させたキーボードの曖昧さ除去システムの好適な実施例のブロック線図である。
【図３】本発明による次の語予測方法を示しているフローダイヤグラムである。
【図４】本発明による次の語予測方法の語の処理を示しているフローダイヤグラムである。
【符号の説明】
【０１３２】
10  ディスプレイ
12  インプットメカニズム
14  次の語予測技術を組み込むデバイス
53  ディスプレイ
54  キーボード
100  プロセッサ
102  スピーカ
104  メモリ
【図１】
2007506184.tif 000003
【図２】
2007506184.tif 000004
【図３】
2007506184.tif 000005
【図４】
2007506184.tif 000006
【手続補正書】
【提出日】平成17年4月19日(2005.4.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ユーザプロンプト、コントロールインプット、または曖昧なテキスト入力に関連して、ユーザの語、または語およびユーザのアクションの何れかを予測するための装置であって：
各々適切なインタフェース回路を介してプロセッサに結合されているインプットデバイスおよびディスプレイであって、当該プロセッサが、当該インプットデバイスからインプットされた文字および記号を受信し、かつ当該ディスプレイに対するオブジェクトの前記出力および当該装置内のアクションの前記表明を管理する、インプットデバイスおよびディスプレイと、
当該プロセッに結合されているメモリであって、
オペレーティング・システムと、
曖昧さ除去ソフトウェアと、
オブジェクトデータベースとを有する、メモリとを有し、
ユーザが入力したい次に続く1つまたは複数の全体の語、またはユーザが実行したいアクションが、ユーザプロンプトの後予測され、当該ユーザが、特殊記号を、当該インプットデバイスを用いて入力する、またはタスクまたは状態を変化させることと関連している特殊なアクションを当該インプットデバイスを用いて実行する；および
当該予測された語が、当該ユーザに当該ディスプレイを介して表示される、または、アクションが、当該装置に関して実行される、装置。
【請求項２】
当該ユーザに当該ディスプレイを介して表示される選択リストであって、複数の予測された語およびアクションの何れかを有する当該選択リストと；
当該ユーザが当該特殊記号を入力する、または特殊なコントロールインプットを与えた後、当該ユーザが、曖昧な入力をする場合、当該選択リストを再順序付けするための手段と、をさらに有する請求項1に記載の装置。
【請求項３】
当該プロセッサに関連して、文脈ベースで予測する、文脈データベースを、さらに有する請求項1に記載の装置。
【請求項４】
当該文脈上の予測が、メッセージが送信される人、メッセージを書き込む人、日付、時間、および位置の何れかに基づく請求項1に記載の装置。
【請求項５】
句がユーザのインプットまたはアクションに基づいて予測される請求項1に記載の装置。
【請求項６】
予測が、文法およびセマンティクスの何れかに基づく請求項1に記載の装置。
【請求項７】
当該文脈上の予測が、ユーザのアクションを予想する請求項3に記載の装置。
【請求項８】
当該ユーザのアクションが、メニュー項目およびフォーム入力の何れかに関連して実行可能である請求項7に記載の装置。
【請求項９】
ユーザのインプットパターンおよびアクションの何れかを格納するための手段と；
当該格納されたユーザのインプットパターンおよび／またはアクションの何れかをサーバーにアップロードするための手段と、をさらに有する請求項1に記載の装置。
【請求項１０】
実行された前記アクションが、当該装置状態を、当該装置のコンテクストに基づき、自動的に変化させることを有する請求項1に記載の装置。
【請求項１１】
当該装置が、ユーザのアクションを学習し、かつ予測をするために当該学習されたアクションを使用するための手段をさらに有する請求項1に記載の装置。
【請求項１２】
当該コンテクストが、前の語のコンテクストまたは複数の前の語のコンテクストに基づく請求項3に記載の装置。
【請求項１３】
ユーザの語またはユーザのアクションの何れかを予測するための方法であって、
ユーザが、インプットシーケンスをインプットデバイスに入力し、かつ当該インプットデバイスと関連している特殊なアクションを実行するステップと；
それに応じて、当該ユーザが入力したい1つまたは複数の全体の次の語、またはユーザが、当該デバイスにより実行されることを望むアクションを予測するステップと、を有する方法。
【請求項１４】
複数の予測された語およびアクションの何れかを有する選択リストを提供するステップと；
当該ユーザが、当該特殊記号を入力したまたは特殊なアクションを実行した後、当該ユーザが、曖昧な入力をする場合、当該選択リストを再順序付けするステップとをさらに有する請求項13に記載の方法。
【請求項１５】
現在のインプットシーケンスのコンテクストが、当該ユーザが以前に入力したインプットシーケンスまたは以前に実行されたアクション内のコンテクストとマッチングする時、当該ユーザが入力したい1つまたは複数の全体の次の語、または当該デバイスにより実行されることを希望するアクションを予測するステップをさらに有する請求項13に記載の方法。
【請求項１６】
当該コンテクストが、入力された前記テキストインプットシーケンスの前記コンテンツに基づく請求項15に記載の方法。
【請求項１７】
当該コンテクストを少なくとも1つの他のコンテクストと組み合わせるステップをさらに有する請求項16に記載の方法。
【請求項１８】
当該コンテクストが：
メッセージが送信される人；
前記メッセージを書き込む人；
日付；
時間；および
位置の何れかを有する請求項17に記載の方法。
【請求項１９】
コンテクストとして含む最も効果的なファクタを決定するために、ユーザ行動の即座のファクタ分析を実行するステップをさらに有する請求項15に記載の方法。
【請求項２０】
当該予測するステップが：
当該ユーザが、特殊記号を入力する、または特殊なアクションを実行するステップと；
それに応じて、すぐに先行するユーザのインプットシーケンスまたはアクションのコンテクストに基づいて、メニューに対するキーワードを提供するステップと；
当該キーワードにより先行された入力としてコンテクストデータベース内に格納された当該メニューから予め選択された入力を当該ユーザに表示するステップと；
当該メニュー内の当該入力を再順序付けするステップと；
メニュー入力が選択される時、それを、メニュー・タグとともに選択された場合、今後再順序付けする時、コンテクスト用として自動的に記録するステップとをさらに有する請求項13に記載の方法。
【請求項２１】
当該予測するステップが：
当該ユーザが、特殊記号を入力し、または特殊なアクションを実行するステップと；
それに応じて、かつすぐに先行するユーザのインプットシーケンスまたはアクションのコンテクストに基づいて、ユーザが進むことが予測される次の状態／アプリケーションのために即時的オプションを再順序付けすることにより、標準のメニューフォーマットに取って代わるステップとをさらに有する請求項13に記載の方法。
【請求項２２】
最も可能性があるオプションを、自動的に実行するステップをさらに有する請求項21に記載の方法。
【請求項２３】
当該予測するステップが：
当該ユーザが、特殊記号を入力し、または特殊なアクションを実行するステップと；
それに応じて、かつすぐに先行するユーザのインプットシーケンスまたはアクションのコンテクストに基づいて、フォーム内の少なくとも1つのフィールドを記入するステップとをさらに有する請求項13に記載の方法。
【請求項２４】
コンテクスト感度が、現在のフィールド属性により決定される請求項23に記載の方法。
【請求項２５】
曖昧なテキスト入力に関連して、ユーザの語およびユーザのアクションの何れかを予測するための装置であって：
各々適切なインタフェース回路を介してプロセッサに結合されているインプットデバイスおよびディスプレイであって、当該プロセッサが、当該インプットデバイスからインプットされた文字および記号を受信し、かつ当該ディスプレイに対するオブジェクトの前記出力および当該装置内のアクションの前記表明を管理する、インプットデバイスおよびディスプレイと；
ユーザ・インタフェース(UI)を有するインテグレーション・レイヤと；
コアエンジンであって、当該インプットデバイスの各キー上に見出される字のグループを関連づけられた語の辞書と組み合わせ、当該ユーザが当該インプットを入力する時、ユーザのインプットを認識し、および当該ユーザが、特殊記号を有するユーザプロンプトを当該インプットデバイスを用いて入力した、またはタスクまたは状態を変化させることと関連している特殊なアクションを当該ユーザデバイスを用いて実行した後、ユーザが入力したい次に続く1つまたは複数の全体の語、またはユーザが実行したいアクションを予測するためのコアエンジンと；
当該ユーザが以前に入力した語に関する情報を有するコンテクストデータベースであって、当該ユーザのインプットおよび／またはアクションおよび動作の当該装置モードの何れかのコンテクストに基づいて、当該予測をするために当該コアエンジンと協同するコンテクストデータベースとを有し；
当該予測された語または当該アクションが、当該ユーザに当該ディスプレイを介して表示される装置。
【請求項２６】
当該ユーザに当該ディスプレイを介して表示される選択リストであって、複数の予測された語およびアクションの何れかを有する選択リストと；
当該ユーザが、当該特殊記号を入力したまたは特殊なアクションを実行した後、当該ユーザが、曖昧な入力をする場合、当該選択リストを再順序付けするための手段とをさらに有する請求項25に記載の装置。
【請求項２７】
当該文脈上の予測が、メッセージが送信される人、メッセージを書き込む人、日付、時間、および位置の何れかに基づく請求項25に記載の装置。
【請求項２８】
句が、ユーザのインプットまたはアクションに基づいて予測される請求項25に記載の装置。
【請求項２９】
予測が、文法およびセマンティクスの何れかに基づく請求項25に記載の装置。
【請求項３０】
当該文脈上の予測が、ユーザのアクションを予想する請求項25に記載の装置。
【請求項３１】
当該ユーザのアクションが、メニュー項目およびフォーム入力の何れかに関連して実行可能である請求項30に記載の装置。
【請求項３２】
ユーザのインプットパターンおよびアクションの何れかを格納するための手段と；
当該格納されたユーザのインプットパターンおよび／またはアクションをサーバーにアップロードするための手段とをさらに有する請求項25に記載の装置。
【請求項３３】
当該コンテクストが、入力されたテキストインプットシーケンスの前記コンテンツに基づく請求項25に記載の装置。
【請求項３４】
1つのコンテクストを少なくとも1つの他のコンテクストと組み合わせる手段をさらに有する請求項25に記載の装置。
【請求項３５】
コンテクストとして含む最も効果的なファクタを決定するために、ユーザ行動の即座のファクタ分析を実行するための手段をさらに有する請求項25に記載の装置。
【請求項３６】
最も可能性があるオプションを自動的に実行するための手段をさらに有する請求項25に記載の装置。
【請求項３７】
当該ユーザが、特殊記号を入力する、または特殊なアクションを実行すること、およびすぐに先行するユーザのインプットシーケンスのコンテクストに基づいて、フォーム内の少なくとも1つのフィールドを記入することとの何れかに応じる手段をさらに有する請求項25に記載の装置。
【請求項３８】
コンテクスト感度が、現在のフィールド属性により決定される請求項37に記載の装置。
【国際調査報告】
2007506184.tif 000007