(57)【要約】【課題】  現在または最近ユーザまたは他のユーザによって使用された単語または句を考慮することである。【解決手段】  モバイルデバイスにおいて、アプリケーション内の現在のスレッドを構成する文字列がバッファ内に格納される。スレッドとは、一連のテキストメッセージまたは一連の電子メールなど、モバイルデバイスのユーザと１人または複数の他のユーザとの間で送信される一連の通信のことである。ユーザがテキストを入力して現在のスレッドを継続するとき、入力されたテキストの文字が、バッファ内に格納された文字列と比較され、入力されたテキストを接頭辞として有する文字列が選択され、ソフト入力パネル内に文字列予測としてユーザに対して表示される。あるいは、バッファ内の文字列を使用して、文字列予測を選択するのに使用される辞書またはモデル内の一致する文字列の確率を増大させることができる。【選択図】図１
2015528172.tif 000002
【特許請求の範囲】
【請求項１】
複数の文字列をコンピューティングデバイスによって格納するステップであって、前記複数の文字列が、第１のアプリケーション内のスレッドに関連するステップと、
第１の文字を前記コンピューティングデバイスによって受け取るステップであって、前記受け取った文字が、前記第１のアプリケーション内の前記スレッドに関連するステップと、
前記受け取った第１の文字および前記格納された複数の文字列に基づいて第１の複数の文字列予測を前記コンピューティングデバイスによって生成するステップであって、各文字列予測が、前記格納された複数の文字列からの文字列を含むステップと、
前記第１の複数の文字列予測の前記文字列のうちの１つまたは複数を前記コンピューティングデバイスによって提供するステップと、
前記第１の複数の文字列予測の前記提供された１つまたは複数の文字列のうちの１つの選択の指示を前記コンピューティングデバイスによって受け取るステップと、
前記選択の指示に応答して、前記選択された文字列を前記第１のアプリケーションに前記スレッドの一部として前記第１のコンピューティングデバイスによって提供するステップと
を含む、方法。
【請求項２】
前記第１のアプリケーションが、ＳＭＳ（ショートメッセージサービス）アプリケーション、電子メールアプリケーション、またはソーシャルネットワーキングアプリケーションを含む、請求項１に記載の方法。
【請求項３】
前記複数の文字列がバッファ内に格納され、
前記方法が、
前記第１のアプリケーションがもうアクティブでないという指示を受け取るステップと、
前記指示に応答して、前記バッファを消去するステップと
をさらに含む、請求項１に記載の方法。
【請求項４】
第２の文字を受け取るステップであって、前記第２の文字が、第２のアプリケーションに関連するステップと、
前記受け取った第２の文字および前記格納された複数の文字列に基づいて第２の複数の文字列予測を生成するステップと、
前記第２の複数の文字列予測のうちの１つまたは複数の文字列を提供するステップと、
前記第２の複数の文字列予測の前記提供された１つまたは複数の文字列のうちの１つの選択の指示を受け取るステップと、
前記選択の指示に応答して、前記選択された文字列を前記第２のアプリケーションに提供するステップと
をさらに含む、請求項１に記載の方法。
【請求項５】
前記受け取った第１の文字および予測モデルに基づいて第２の複数の文字列予測を生成するステップであって、前記第２の複数の文字列予測の各々が、文字列および信頼値を含むステップと、
前記格納された複数の文字列内にもある前記第２の複数の文字列予測からの文字列を決定するステップと、
前記決定された文字列を含む前記第２の複数の文字列予測の前記文字列予測の前記信頼値を増大させるステップと、
前記信頼値に従って前記第２の複数の文字列予測の前記文字列のうちの１つまたは複数を提供するステップと
をさらに含む、請求項１に記載の方法。
【請求項６】
前記格納された複数の文字列に基づいて前記予測モデルを更新するステップをさらに含む、請求項５に記載の方法。
【請求項７】
少なくとも１つのコンピューティングデバイスと、
ディスプレイと、
バッファと、
候補予測生成器と
を備え、
前記候補予測生成器が、
アクティブなアプリケーションおよびスレッドの指示を受け取り、
前記スレッドおよび前記アプリケーションに関連した複数の文字列を前記バッファ内に格納し、
前記スレッドおよび前記アプリケーションに関連した文字を受け取り、
前記受け取った文字および前記バッファ内の前記格納された複数の文字列に基づいて、各文字列予測が前記格納された複数の文字列からの文字列を含む複数の文字列予測を生成し、
前記複数の文字列予測の前記文字列のうちの１つまたは複数を前記ディスプレイ上に表示する
ようになされた、システム。
【請求項８】
前記候補予測生成器が、前記格納された複数の文字列に基づいて予測モデルを更新するようにさらになされた、請求項７に記載のシステム。
【請求項９】
前記アプリケーションが、ＳＭＳ（ショートメッセージサービス）アプリケーション、ソーシャルネットワーキングアプリケーション、または電子メールアプリケーションのうちの少なくとも１つを含む、請求項７に記載のシステム。
【請求項１０】
前記候補予測生成器が、
前記アプリケーションがもうアクティブでないという指示を受け取り、
前記指示に応答して、前記バッファを消去するようにさらになされた、請求項７に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  タイピングは、例えば、テキストメッセージの作成、電子メールの作成、連絡先の検索、およびＵＲＬ（ユニフォームリソースロケータ）のタイピングを含む、モバイルデバイス上での多くの状況の一部である。モバイルデバイス上でのタイピングは、遅く、いらいらすることがある。これは、画面上のソフトウェアキーボードを使用するときに特に当てはまり得る。
【０００２】
[0002]  この問題の１つの解決策は、ソフト入力パネルとして知られている。ソフト入力パネルでは、画面のある領域が、ユーザがこれまでテキスト入力フィールドに入力した文字に基づいて提案された単語予測を表示する。提案された単語は、ユーザがフィールドに文字を入力し続けるのに応じて変化する。ユーザは、自分が入力している単語に一致する単語予測を目にすると、その単語予測を選択し、選択された単語は、ユーザによって入力された文字の代わりにテキスト入力フィールドに配置される。
【０００３】
[0003]  典型的には、ユーザに示される単語予測は、入力された文字を辞書内の単語と照合し、次いで、各単語がユーザが入力しようとする単語である尤度に基づいて一致する単語の順位付けされたサブセットを提示することによって生成される。尤度は、母集団別の各一致する単語の総使用頻度に基づくことができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
[0004]  単語予測を提供するこのような方法の１つの欠点は、単語予測を選択するとき、または単語予測を順位付けするとき、現在または最近ユーザまたは他のユーザによって使用された単語または句を考慮に入れ損なうことである。例えば、ユーザは、最近のテキサスへの旅行について別のユーザとショートメッセージサービス（SMS）または電子メールによる会話をすることがある。ユーザが「ｔ」の文字をテキスト入力フィールドに入力すると、「ｔ」で始まり、英語では高頻度の単語であるので、ユーザには「ｔｈｅ」、「ｔｈｅｉｒ」、および「ｔｈｅｒｅ」などの単語予測が提供され得る。「Ｔｅｘａｓ」という単語予測は、それまでに会話の内容が与えられたようであったとしても、辞書内の見出語にも一致しないし、十分に高く順位付けもされないので、ユーザには提供されない。
【課題を解決するための手段】
【０００５】
[0005]  モバイルデバイスにおいて、アプリケーション内の現在のスレッドを構成する文字列は、バッファ内に格納される。スレッドとは、一連のテキストメッセージや一連の電子メールなど、モバイルデバイスのユーザと１人または複数の他のユーザとの間で送信される一連の通信のことである。ユーザがテキストを入力して現在のスレッドを継続するとき、入力されたテキストの文字は、バッファ内に格納された文字列と比較され、入力されたテキストを接頭辞として有する文字列が選択され、ソフト入力パネル内に文字列予測としてユーザに対して表示される。あるいは、バッファ内の文字列を使用して、文字列予測を選択するのに使用される辞書またはモデル内の文字列に一致するまたは意味論的に関係する確率を増大させることができる。
【０００６】
[0006]  １つの実施において、文字列がコンピューティングデバイスによって格納される。文字列は第１のアプリケーション内のスレッドに関連する。第１の文字がコンピューティングデバイスによって受け取られる。受け取られた文字は、第１のアプリケーション内のスレッドに関連する。第１の複数の文字列予測が受け取られた第１の文字と格納された文字列とに基づいて生成される。各文字列予測は、格納された文字列からの文字列を含む。第１の複数の文字列予測のうちの１つまたは複数の文字列がコンピューティングデバイスによって提供される。提供された１つまたは複数の文字列のうちの１つの選択の指示がコンピューティングデバイスによって受け取られる。選択の指示に応答して、選択された文字列は、文字列の一部として第１のコンピューティングデバイスによって第１のアプリケーションに提供される。
【０００７】
[0007]  １つの実施において、第１の複数の文字列が取り出される。複数の文字列はスレッドに関連する。辞書が取り出される。辞書は第２の複数の文字列を含み、各文字列は関連する確率を有する。第１の複数の文字列内にもある第２の複数の文字列からの１つまたは複数の文字列がコンピューティングデバイスによって決定される。決定された文字列ごとに、辞書内の文字列に関連した確率が増大される。文字がコンピューティングデバイスによって受け取られる。受け取られた文字はスレッドに関連する。辞書からの１つまたは複数の文字列が、受け取られた文字および辞書内の文字列の各々に関連した確率に基づいて選択される。辞書からの選択された１つまたは複数の文字列は、コンピューティングデバイスのディスプレイ上に表示される。
【０００８】
[0008]  この概要は、以下の詳細な説明においてさらに説明される概念から選び集めたものを簡略化された形で紹介するために提供される。この概要は、特許請求される主題の主要な特徴または必須の特徴を特定することを意図していないし、特許請求される主題の範囲を限定するために使用されることも意図していない。
【０００９】
[0009]  前述の概要、ならびに以下の例示的実施形態の詳細な説明は、添付の図面と併せて読むと、より良く理解される。実施形態を例示するために、図面には実施形態の構成例を示すが、しかし、実施形態は開示された具体的な方法および手段に限定されない。
【図面の簡単な説明】
【００１０】
【図１】[0010]文字列予測の選択および提示の環境の一例の図である。
【図２】[0011]候補予測生成器の一例の図である。
【図３】[0012]文字列予測を提供するための方法の実施の動作フローの図である。
【図４】[0013]１つまたは複数の文字列を選択し表示するための方法の実施の動作フローの図である。
【図５】[0014]実施形態および態様の例を実施することができる例示的コンピューティング環境を示す図である。
【発明を実施するための形態】
【００１１】
[0015]  図１は、文字列予測の選択および提示の環境の一例１００の図である。環境１００は、複数のコンピューティングデバイス１１５（例えば、コンピューティングデバイス１１５ａ〜ｎ）を含むことができる。コンピューティングデバイス１１５は、携帯電話、スマートフォン、ポータブルメディアプレーヤ、ゲーム機などのモバイルデバイスを含む様々なコンピューティングデバイスであり得る。コンピューティングデバイス１１５は、ネットワーク１８０を介して相互に通信することができる。ネットワーク１８０は、公衆交換電話網（PSTN）、セルラー電話網、およびパケット交換網（例えば、インターネット）を含む様々なネットワークの種類であり得る。適切なコンピューティングデバイスの例１１５には、図５に関して説明されるコンピューティングシステム５００が含まれる。
【００１２】
[0016]  コンピューティングデバイス１１５の各々は、オペレーティングシステム１２５とユーザインターフェース１２０とを含むことができる。オペレーティングシステム１２５は、様々なよく知られたオペレーティングシステムを含むことができる。コンピューティングデバイスのユーザは、ユーザインターフェース１２０を使用して１つまたは複数の文字をオペレーティングシステム１２５に入力することができる。ユーザインターフェース１２０は、例えば、ソフトウェアキーボードまたはハードウェアキーボードを含む、様々なインターフェースを含むことができる。
【００１３】
[0017]  コンピューティングデバイス１１５の各々は、１つまたは複数のアプリケーション１３５（例えば、アプリケーション１３５ａ〜ｎ）をさらに実行することができる。アプリケーション１３５は、アプリケーション層１３０において実行することができる。アプリケーション１３５は、例えば、電子メールアプリケーション、ショートメッセージサービス（SMS）またはテキストアプリケーション、チャットアプリケーション、ソーシャルネットワーキングアプリケーション、およびワードプロセッシングアプリケーションを含むことができる。コンピューティングデバイス１１５は、アプリケーション１３５を使用してテキストベースのメッセージを交換することができる。例えば、各コンピューティングデバイスは、ＳＭＳアプリケーションを実行することができ、そのアプリケーションを介してＳＭＳメッセージを送受信することができる。
【００１４】
[0018]  コンピューティングデバイス１１５のユーザは、ユーザインターフェース１２０およびオペレーティングシステム１２５を介してアプリケーション１３５と相互作用することができる。１つの実施において、ユーザは、ユーザインターフェース１２０のソフト入力パネルを介して文字を入力することができる。入力された文字は、オペレーティングシステム１２５によって受け取ることができ、１つまたは複数のアプリケーション１３５に提供することができる。
【００１５】
[0019]  上記のように、ユーザインターフェース１２０に文字単位でテキストを入力するプロセスは、コンピューティングデバイス１１５のユーザにとっていらいらすることがある。したがって、コンピューティングデバイス１１５は、候補予測生成器１４０をさらに含むことができる。候補予測生成器１４０は、１つまたは複数の文字列予測を生成することができる。文字列予測は、候補予測生成器１４０が、ユーザがユーザインターフェース１２０に入力しようとすることを予測する文字列を含むことができる。文字列予測は、文字列の信頼値をさらに含むことができる。予測された文字列は、限定はされないが単語、句、文、顔文字、句読点もしくは他の記号、またはそれらの組合せを含む、１つまたは複数の文字の任意のシーケンスを含むことができる。
【００１６】
[0020]  図２に関してさらに説明するように、文字列予測は、１つまたは複数のアプリケーション１３５のスレッドに関連した文字列に一部基づくことができる。本明細書ではスレッドとは、特定のアプリケーションを介した２人以上のユーザの間の一連の関係する通信ということができる。例えば、１群の友人が電子メール、またはＳＭＳにより、またはソーシャルネットワーキングアプリケーションを介して会話をすることができる。会話の一部として送返信されるＳＭＳメッセージ、電子メール、またはソーシャルネットワーキングメッセージは、スレッドとみなすことができる。スレッドに関連した文字列は、例えば、スレッドを構成する電子メール、ＳＭＳ、またはソーシャルネットワーキングアプリケーションメッセージからのテキストであり得る。
【００１７】
[0021]  いくつかの実施において、ユーザが、アプリケーション１３５の１つを読み込ませるまたは使用し始めるとき、候補予測生成器１４０は、アプリケーションに関連した現在のスレッドから文字列を読み込むまたは取り出すことができる。ユーザが１つまたは複数の文字を入力することによってスレッドを継続すると、スレッドの文字列は、候補予測生成器１４０によって使用されて、入力された文字に基づいて１つまたは複数の文字列予測を提供することができる。文字列予測の文字列は、現在のスレッドに使用された文字列であることができ、文字列予測の信頼値は、スレッド内の文字列の頻度に基づくことができる。
【００１８】
[0022]  辞書またはモデルに基づくだけではなく、現在のスレッドに使用された単語および句に基づいて文字列予測を生成することによって、生成された文字列予測は、辞書またはモデルに使用された単語および句に限定されない。さらに、生成された文字列予測の信頼値を一般的な使用における文字列の頻度または確率ではなく現在のスレッド内の関連する文字列の頻度に基づくことによって、信頼値は、ユーザが文字列予測の文字列を入力しようとする尤度をより正確に表すことができる。
【００１９】
[0023]  図２は、候補予測生成器の一例１４０の図である。図示するように、候補予測生成器１４０は、限定はされないがバッファ２６０と予測モデル２０５とを含む、いくつかの構成部品を含むことができる。候補予測生成器１４０の構成部品の一部または全部は、図５に示すコンピューティングシステム５００によって実施することができる。
【００２０】
[0024]  候補予測生成器１４０は、オペレーティングシステム１２５から現在のアプリケーション１３５の指示を受け取ることができる。例えば、コンピューティングデバイス１１５のうちの１つのユーザは、電子メールやＳＭＳアプリケーションなど、アプリケーション１３５を実行するまたはアプリケーション１３５に切り替えることができる。
【００２１】
[0025]  指示に応答して、候補予測生成器１４０は、アプリケーション１３５に関連したスレッド２２０を取り出すことができる。スレッド２２０は、アプリケーション１３５の現在のスレッド２２０を含むことができ、アプリケーション１３５から直接取り出すことができ、あるいは候補予測生成器１４０によって記憶装置から取り出すことができる。例えば、候補予測生成器１４０は、現在のスレッド２２０を様々なアプリケーション１３５のために格納することができる。
【００２２】
[0026]  候補予測生成器１４０は、取り出されたスレッドから文字列を抽出し、抽出された文字列をバッファ２６０内に配置することができる。候補予測生成器１４０は、バッファ２６０内の文字列を使用して１つまたは複数の文字列予測２１５を生成することができる。文字列予測に関連した信頼値は、文字列予測に関連したバッファ２６０内の文字列の頻度に基づくことができる。
【００２３】
[0027]  候補予測生成器１４０は、現在のスレッド２２０に関連した入力されたテキスト２３０を受け取ることができる。入力されたテキスト２３０は、１つまたは複数の文字を含むことができ、コンピューティングデバイス１１５に関連したユーザから受け取ることができる。入力されたテキスト２３０は、例えば、テキストボックスなど、ユーザインターフェース１２０のユーザインターフェース要素にユーザによって入力することができる。入力されたテキスト２３０は、ユーザがスレッド２２０の一部としてアプリケーション１３５に提供しようとする文字列の一部であり得る。
【００２４】
[0028]  候補予測生成器１４０は、入力されたテキスト２３０およびバッファ２６０の内容を使用して１つまたは複数の文字列予測２１５を生成することができる。いくつかの実施において、文字列予測２１５は、入力されたテキスト２３０を接頭辞として有するバッファ２６０からの文字列を決定することによって候補予測生成器１４０によって生成することができる。決定された文字列の信頼値は、例えば、バッファ２６０内の文字列の頻度に基づいて決定することができる。概して、文字列がバッファ２６０内に出現する回数が多ければ多いほど、決定された信頼値はより高まり得る。候補予測生成器１４０は、各文字列の信頼値にバッファ２６０に関連した倍率をさらに乗じることができる。以下にさらに説明するように、倍率を使用してバッファ２６０から生成された文字列と１つまたは複数の予測モデル２０５を使用して生成された文字列とを比較することができる。
【００２５】
[0029]  いくつかの実施において、候補予測生成器１４０は、入力されたテキスト２３０をユーザが提供し続けるときでも、任意の新たに受け取った文字列を反映するようにバッファ２６０の内容を更新することができる。例えば、ユーザがＳＭＳアプリケーションに文字を入力する間、新たなテキストメッセージをスレッド２２０から受け取ることができる。新たに受け取ったテキストメッセージからの任意の文字列は、バッファ２６０に追加することができ、入力されたテキスト２３０に応答して文字列を生成するのに使用することができる。
【００２６】
[0030]  候補予測生成器１４０は、生成された文字列予測２１５の１つまたは複数を提供することができる。多くの文字列予測２１５がある場合、候補予測生成器１４０は、どの文字列予測２１５を各文字列予測２１５に関連した信頼値に基づいて提供するのかを選択することができる。提供された文字列予測２１５の文字列は、例えば、ユーザインターフェース１２０のソフト入力パネルでまたは他のユーザインターフェース要素でユーザに対して表示することができる。ユーザが表示された文字列を選択した場合、その文字列は入力としてアプリケーション１３５に提供することができ、選択された文字列はスレッド２２０の一部となることができる。したがって、候補予測生成器１４０は、選択された文字列をバッファ２６０内の文字列に追加することができる。
【００２７】
[0031]  いくつかの実施において、バッファ２６０に加えて、候補文字列生成器１４０は、予測モデル２０５を使用して１つまたは複数の文字列予測２１５を生成することもできる。予測モデル２０５は、辞書を含むことができ、各文字列の確率とともに様々な文字列（例えば、単語または句）を含むことができる。各文字列の確率は、例えば、一般的使用における各文字列の需要を反映することができる。確率は、１つまたは複数のスレッド２２０において１つまたは複数のアプリケーション１３５に対してある時間にわたってユーザによって提供された文字列を収集し分析することによって決定することがあり、あるいは新聞、雑誌、または他の言語ソースからの文字列の分析に基づくことができる。他の種類のモデルを使用することもできる。いくつかの予測モデル２０５があり得る。例えば、あるモデルは上記のように辞書であることができ、別のモデルはユーザが入力した文字列および入力された文字列の頻度に基づくことができる。同様に、バッファ２６０に関して説明したように、各予測モデル２０５は、その総合的重要性を示す倍率を有することができる。
【００２８】
[0032]  １つの実施において、候補予測生成器１４０は、予測モデル２０５を使用して、入力されたテキスト２３０を接頭辞として有するモデル２０５からの文字列を決定することによって、入力されたテキスト２３０に基づく文字列予測２１５を生成することができる。決定された文字列の信頼値は、特定のモデル２０５における各文字列に関連した確率に基づいて決定することができる。候補予測生成器１４０は、予測モデル２０５ごとに、予測モデル２０５の生成された文字列の信頼値に予測モデル２０５に関連した倍率をさらに乗じることができる。
【００２９】
[0033]  いくつかの実施において、候補文字列生成器１４０は、バッファ２６０を使用して生成された文字列予測を予測モデル２０５によって生成された文字列予測に組み合わせることができる。例えば、候補文字列生成器１４０は、バッファ２６０の最上位の文字列予測（すなわち、倍率によって調整された最高信頼値を有する）および予測モデル２０５の最上位の文字列予測を選択することができ、選択された文字列予測を組み合わせることができる。
【００３０】
[0034]  他の実施において、候補文字列生成器１４０は、バッファ２６０内の文字列（すなわち、現在のスレッド２２０の文字列）を使用して、予測モデル２０５によって生成された文字列の確率を調整または重み付けすることができる。候補文字列生成器１４０は、バッファ２６０内にもある予測モデル２０５の文字列を決定することができる。候補文字列生成器１４０は、予測モデル２０５内の決定された文字列の確率を増大させることができる。文字列の確率が予測モデル２０５内で増大される量は、バッファ２６０内の文字列の頻度によることができる。予測モデル２０５内の文字列の確率を増大させることによって、その文字列を含む文字列予測が候補文字列生成器１４０によって提供される尤度が増大される。予測モデル２０５内にないバッファ２６０からの文字列は、候補文字列生成器１４０によって予測モデル２０５に追加することができる。
【００３１】
[0035]  いくつかの実施において、候補文字列生成器１４０は、バッファ２６０内の文字列に意味論的に関係する予測モデル２０５内の文字列の確率も増大させることができる。例えば、バッファが「Ｎｅｗ  Ｙｏｒｋ」という文字列を含む場合、候補文字列生成器１４０は、「Ｂｒｏａｄｗａｙ」、「Ｅｍｐｉｒｅ  Ｓｔａｔｅ  Ｂｕｉｌｄｉｎｇ」、および「Ｇｒａｎｄ  Ｃｅｎｔｒａｌ  Ｓｔａｔｉｏｎ」など、予測モデル２０５内の関係する文字列の確率を、それらの文字列がバッファ２６０内に出現しない場合でも、増大させることができる。
【００３２】
[0036]  実施に応じて、予測モデル２０５における確率に加えられる調整、または予測モデル２０５に追加される任意の文字列は、一時的または恒久的であり得る。一時的調整の場合、候補予測生成器１４０は、アプリケーション１３５が閉じたときまたは異なるスレッド２２０が継続しもしくは開始したとき、予測モデル２０５に加えた調整を取り消すことができる。
【００３３】
[0037]  例えば、候補予測生成器１４０は、ユーザがアプリケーション１３５を切り替えたという指示をオペレーティングシステム１２５から検知するまたは受け取ることができる。新たなアプリケーション１３５に関連したスレッド２２０を取り出す前に、候補予測生成器１４０は、予測モデル２０５の確率に加えられた調整を取り消すことができ、あるいは新たな調整されていない予測モデル２０５のコピーを読み込むことができる。
【００３４】
[0038]  いくつかの実施において、候補予測生成器１４０は、予測モデル２０５の確率を調整するのではなく、バッファ２４０内の文字列に基づいて予測モデル２０５を使用して生成された文字列予測２１５の信頼値を調整することができる。候補予測生成器１４０は、予測モデル２０５を使用して、入力されたテキスト２３０に基づいて１組の文字列予測２１５を生成するとき、バッファ２６０内にもある生成された文字列予測２１５の文字列を決定することができる。バッファ２６０内にもある文字列を有する文字列予測２１５は、それらの関連する信頼値を調整させるもしくは増大させることができ、またはそれらの関連する信頼値にかかわりなくユーザに対して表示されるように選択することができる。
【００３５】
[0039]  候補予測生成器１４０は、現在のスレッド２２０または現在のアプリケーション１３５がもうアクティブでないことを決定することができ、決定に応答して、バッファ２６０を消去することができる。例えば、ユーザは、現在のスレッドに関連したアプリケーション１３５を閉じることがあり、または新たなスレッド２２０を開始することがある。バッファ２６０を消去することにより、前のスレッド２２０の文字列を使用して、入力されたテキスト２３０に基づいて文字列予測２１５を生成することがもうできない。バッファ２６０を消去することは、関係のない文字列が文字列予測２１５に含まれないようにするのに役立つことができ、バッファ２６０内に文字列を残すことに関連したプライバシーの懸念を軽減することもできる。
【００３６】
[0040]  あるいは、またはさらに、バッファ２６０を直ちに消去するのではなく、候補予測生成器１４０により、ユーザが新たなスレッド２２０を作り出し、既存のスレッド２２０を継続し、またはアプリケーション１３５を切り替えた場合でも、文字列の一部または全部がバッファ２６０内に残ることが可能になり得る。理解され得るように、スレッド２２０（すなわち、会話）を終了した後でも、ユーザは、まだスレッド２２０に使用された文字列のうちの１つまたは複数を提供しそうであり得る。例えば、ユーザは、電子メールアプリケーション１３５を使用して、バルセロナへの旅行を計画することに関する電子メールによる会話を継続することがある。電子メールアプリケーション１３５を閉じた後、ユーザは、インターネット閲覧アプリケーション１３５を使用してバルセロナの魅力について検索し、あるいはＳＭＳアプリケーション１３５を使用してバルセロナに関するテキストメッセージを送信することがある。すなわち、バルセロナに関する電子メールアプリケーションのスレッド２２０からのバッファ２６０の内容は、インターネット閲覧アプリケーションおよびＳＭＳアプリケーションの両方に対してまだ関連する文字列予測２１５を提供することができる。前のスレッド２２０の文字列をバッファ２６０内に残すことを可能にすることによって、候補予測生成器１４０は、同じまたは異なるアプリケーション内の前のスレッドの文字列に基づいて引き続き文字列予測２１５を生成することができる。このような実施において、バッファ２６０は、ある一定の時間の長さが経過した後（例えば、５分、１０分、１時間、１日など）またはバッファ２６０が一杯になった後、消去することができる。
【００３７】
[0041]  図３は文字列予測を提供するための方法３００の実施の動作フローである。方法３００は、例えば、コンピューティングデバイス１１５の候補予測生成器１４０によって実施することができる。
【００３８】
[0042]  ３０１において、アプリケーションおよびスレッドに関連した複数の文字列を格納する。複数の文字列は、候補予測生成器１４０によってバッファ２６０内に格納することができる。アプリケーションは、ＳＭＳ、電子メール、またはソーシャルネットワーキングアプリケーションを含む様々なアプリケーション１３５のいずれかであり得る。スレッド２２０は、コンピューティングデバイス１１５のユーザとアプリケーションを使用する１人または複数の他のユーザとの間で行われる一連の通信でよい。例えば、スレッド２２０は、一連の電子メール、テキストメッセージ、またはコンピューティングデバイスのユーザと他のコンピューティングデバイス１１５のユーザとの間で会話の一部として行われる他の通信でよい。複数の文字列は、スレッド２２０を構成する、通信においてユーザによって生成された単語、句、および文を含むことができる。
【００３９】
[0043]  いくつかの実施において、候補予測生成器１４０は、アプリケーションがアクティブであることを検知することができ、アクティブなアプリケーション１３５の現在のスレッド２２０に関連した複数の文字列をバッファ２０６内に格納することができる。例えば、候補予測生成器１４０は、オペレーティングシステム１２５からアプリケーション１３５がアクティブであるという指示を受け取ることできる。
【００４０】
[0044]  ３０３において、文字を受け取る。文字は、入力されたテキスト２３０としてユーザからユーザインターフェース１２０を介して候補予測生成器１４０によって受け取ることができる。例えば、ユーザは、ソフトウェアキーボードを使用してテキストフィールドに文字を入力することがある。文字は、スレッド２２０の一部であることができ、ユーザがスレッド２２０の一部としてアプリケーション１３５に提供しようとする文字列の接頭辞であり得る。
【００４１】
[0045]  ３０５において、受け取った文字および格納された複数の文字列に基づいて複数の文字列予測を生成する。複数の文字列予測は、文字列予測２１５を含むことができ、受け取った文字およびバッファ２６０からのスレッド２２０の複数の文字列を使用して候補予測生成器１４０によって生成することができる。いくつかの実施において、文字列予測２１５は、各々、複数の文字列からの文字列を含むことができ、受け取った文字を接頭辞として含む複数の文字列からの文字列を決定することによって生成されることがある。文字列予測２１５は、各々、複数の文字列内の文字列の頻度に基づく信頼値をさらに含むことができる。
【００４２】
[0046]  いくつかの実施において、複数の文字列予測２１５には、予測モデル２０５を使用して候補予測生成器１４０によって生成できるものもある。予測モデル２０５は、辞書であることができ、バッファ２６０より多い数の文字列を含むことができる。
【００４３】
[0047]  ３０７において、複数の文字列予測のうちの１つまたは複数の文字列を提供する。１つまたは複数の文字列は、文字列予測２１５の信頼値に従って候補予測生成器１４０によって提供することができる。いくつかの実施において、最高の信頼値を有する文字列予測２１５の文字列を提供することができる。文字列は、例えば、ユーザインターフェース１２０のソフト入力パネルに文字列を表示することによって提供することができる。
【００４４】
[0048]  ３０９において、提供された１つまたは複数の文字列のうちの１つの選択の指示を受け取る。選択の指示は、ユーザインターフェース１２０からオペレーティングシステム１２５によって受け取ることができ、候補予測生成器１４０に提供することができる。例えば、ユーザはユーザインターフェース１２０のソフト入力パネル内の文字列のうちの１つを選択または１つに接触することができる。
【００４５】
[0049]  ３１１において、選択された文字列をスレッドの一部としてアプリケーションに入力として提供する。選択された文字列は、例えば、スレッド２２５の一部として候補予測生成器１４０によってアプリケーション１３５に提供することができる。
【００４６】
[0050]  いくつかの実施において、選択された文字列は、候補予測生成器１４０によってバッファ２６０に追加することもできる。さらに。文字列は、予測モデル２０５を更新するのに使用することができる。例えば、選択された文字列が予測モデル２０５内に存在する場合、文字列に関連した確率または頻度は、候補予測生成器１４０によって増大させることができる。選択された文字列が予測モデル２０５内にない場合、選択された文字列は候補予測生成器１４０によって追加することができる。
【００４７】
[0051]  図４は、１つまたは複数の文字列を選択し表示するための方法４００の実施の動作フローである。方法４００は、例えば、コンピューティングデバイス１１５の候補予測生成器１４０によって実施することができる。
【００４８】
[0052]  ４０１において、アプリケーションおよびスレッドの指示を受け取る。アプリケーション１３５およびスレッド２２０の指示は、オペレーティングシステム１２５から候補予測生成器１４０によって受け取ることができる。指示は、ユーザがアプリケーション１３５を開くあるいはコンピューティングデバイス１１５上でアプリケーション１３５をアクティブにすることに応答して生成することができる。スレッド２２０は、アプリケーション１３５の現在のスレッド２２０であり得る。例えば、アプリケーション１３５がＳＭＳアプリケーションである場合、スレッド２２０は、アプリケーション１３５のユーザから別のユーザに送信される一連のテキストメッセージを含むことができる。
【００４９】
[0053]  ４０３において、アプリケーションおよびスレッドに関連した複数の文字列を取り出す。複数の文字列は、候補予測生成器１４０によって取り出すことができる。複数の文字列は、スレッド２２０からの文字列を含むことができる。文字列は、候補予測生成器１４０のバッファ２６０から取り出すことができ、または候補予測生成器１４０によってスレッド２２０から構文解析することができる。
【００５０】
[0054]  ４０５において、辞書を記憶装置から取り出す。辞書は候補予測生成器１４０によって取り出すことができる。辞書は複数の文字列を含むことができ、各文字列は文字列が一般的な使用において出現する頻度を表す関連する確率を有することができる。辞書はいくつかの実施において予測モデル２０５を含むことができる。辞書はグローバル辞書を含むことができ、またはアプリケーション１３５に特有であることができる。いくつかの実施において、受け取った辞書はコピーである。
【００５１】
[0055]  ４０７において、複数の文字列内にもある、辞書からの１つまたは複数の文字列を決定する。辞書からの１つまたは複数の文字列は、複数の文字列からの１つまたは複数の文字列を辞書の文字列と照合することにより候補予測生成器１４０によって決定することができる。
【００５２】
[0056]  ４０９において、決定された１つまたは複数の文字列ごとに、辞書内の文字列の確率を増大させる。決定された１つまたは複数の文字列の確率は、候補予測生成器１４０によって増大させることができる。増大された確率は恒久的であることができ、またはアプリケーション１３５が閉じたという指示が受け取られたとき放棄することができる。あるいは、増大され確率は、アプリケーション１３５が閉じた後、ある一定の時間保持することができる。
【００５３】
[0057]  ４１１において、文字を受け取る。文字は、入力されたテキスト２３０であることができ、テキストボックスまたは他のユーザインターフェース１２０の要素を介して候補予測生成器１４０によって受け取ることができる。例えば、ユーザは、ソフトキーボードを使用してテキストボックスに文字を入力することがある。
【００５４】
[0058]  ４１３において、受け取った文字および辞書内の各文字列に関連した確率に基づいて辞書からの１つまたは複数の文字列を選択する。１つまたは複数の文字列は、受け取った文字を接頭辞として有する最高の確率を有する辞書から文字列を選択することにより、候補予測生成器１４０によって選択することができる。選択された１つまたは複数の文字列は、それらの関連する確率とともに、文字列予測２１５である。
【００５５】
[0059]  ４１５において、選択された１つまたは複数の文字列を表示する。選択された１つまたは複数の文字列は、オペレーティングシステム１２５によってユーザインターフェース１２０のソフト入力パネルに表示される。
【００５６】
[0060]  図５は、実施形態および態様の例を実施することができる例示的コンピューティング環境を示す。コンピューティングシステム環境は、適切なコンピューティング環境の一例にすぎず、使用または機能性の範囲に関していかなる限定も提案することを意図していない。
【００５７】
[0061]  数多くの他の汎用または専用コンピューティングシステム環境または構成を使用することができる。使用に適切であり得るよく知られたコンピューティングシステム、環境、および／または構成の例は、限定はされないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、ネットワークＰＣ，ミニコンピュータ、メインフレームコンピュータ、埋め込みシステム、上記のシステムまたはデバイスのいずれかを含む分散型コンピューティング環境などを含む。
【００５８】
[0062]  コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令を使用することができる。一般に、プログラムモジュールは、特定のタスクを実行するまたは特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、構成部品、データ構造などを含む。分散型コンピューティング環境は、通信ネットワークまたは他のデータ伝送媒体を介してリンクされる遠隔処理デバイスによってタスクが実行される場合に使用することができる。分散型コンピューティング環境において、プログラムモジュールおよび他のデータは、メモリ記憶デバイスを含むローカルおよび遠隔両方のコンピュータ記憶媒体に配置することができる。
【００５９】
[0063]  図５を参照すると、本明細書に説明する態様を実施するための例示的システムが、コンピューティングシステム５００などのコンピューティングデバイスを含む。その最も基本的な構成において、コンピューティングシステム５００は、典型的には、少なくとも１つの処理ユニット５０２とメモリ５０４とを含む。コンピューティングデバイスの正確な構成および種類に応じて、メモリ５０４は、揮発性（ランダムアクセスメモリ（RAM）など）、不揮発性（読取り専用メモリ（ROM）、フラッシュメモリなど）、または２つの何らかの組合せでよい。この最も基本的な構成を図５に破線５０６で示す。
【００６０】
[0064]  コンピューティングシステム５００は、追加の特徴／機能性を有することができる。例えば、コンピューティングシステム５００は、限定はされないが磁気または光ディスクまたはテープを含む、追加の記憶装置（取外し可能および／または取外し不可能）を含むことができる。このような追加の記憶装置を図５に取外し可能記憶装置５０８および取外し不可能記憶装置５１０によって示す。
【００６１】
[0065]  コンピューティングシステム５００は、典型的には、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピューティングシステム５００によってアクセスすることができる任意の利用可能な媒体であることができ、揮発性および不揮発性媒体、取外し可能および取外し不可能媒体の両方を含む。
【００６２】
[0066]  コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報を格納するための任意の方法または技術で実施される揮発性および不揮発性、ならびに取外し可能および取外し不可能媒体を含む。メモリ５０４、取外し可能記憶装置５０８、および取外し不可能記憶装置５１０は、すべて、コンピュータ記憶媒体の例である。コンピュータ記憶媒体は、限定はされないが、ＲＡＭ、ＲＯＭ、電気的消去可能プログラム読取り専用メモリ（EEPROM）、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（DVD）もしくは他の光学式記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または所望の情報を格納するのに使用することができ、コンピューティングシステム１２００によってアクセスすることができる任意の他の媒体を含む。任意のこのようなコンピュータ記憶媒体は、コンピューティングシステム１２００の一部であり得る。
【００６３】
[0067]  コンピューティングシステム５００は、デバイスを他のデバイスおよび／またはインターフェースと通信することを可能にする通信接続部５１２を内蔵することができる。コンピューティングシステム５００は、キーボード（ソフトウェアまたはハードウェア）、マウス、ペン、音声入力インターフェース、タッチインターフェースなどの入力デバイス５１４も有することができる。ディスプレイ、スピーカ、プリンタなどの出力デバイス５１６も含むことができる。これらのデバイスは、すべて、当技術分野でよく知られており、ここで詳細に論じる必要がない。
【００６４】
[0068]  本明細書に説明する様々な技法は、ハードウェアもしくはソフトウェアに関連して、または、適切な場合、両方の組合せにより実施することができることを理解されたい。したがって、本開示の主題の方法および装置、またはある態様もしくはその部分は、フロッピディスケット、ＣＤ−ＲＯＭ、ハードドライブ、またはプログラムコードがコンピュータなどの機械によって読み込まれ実行されるとき、機械が本開示の主題を実行するための装置となる任意の他の機械可読記憶媒体など、有形の媒体で具現化されるプログラムコード（すなわち、命令）の形をとることができる。
【００６５】
[0069]  例示的実施は、１つまたは複数のスタンドアローンコンピュータシステムの関係において本開示の主題の態様を利用することを表すことができるが、主題はこれに限定されず、むしろ、ネットワークまたは分散型コンピューティング環境など、任意のコンピューティング環境に関連して実施することができる。さらに、本開示の主題の態様は、複数の処理チップもしくはデバイスにおいてまたは複数の処理チップもしくはデバイスの間で実施することができ、記憶装置は、同様に、複数のデバイスの間で実施することができる。このようなデバイスは、例えば、パーソナルコンピュータ、ネットワークサーバ、およびハンドヘルドデバイスを含み得る。
【００６６】
[0070]  主題を構造的特徴および／または方法論的動作に特有の言語で説明してきたが、添付の特許請求の範囲において定義される主題は、必ずしも上記の具体的な特徴または動作に限定されないことを理解されたい。むしろ、上記の具体的な特徴および動作は、特許請求の範囲を実施する形の例として開示される。
【図１】
2015528172.tif 000003
【図２】
2015528172.tif 000004
【図３】
2015528172.tif 000005
【図４】
2015528172.tif 000006
【図５】
2015528172.tif 000007
【国際調査報告】
2015528172.tif 000008
2015528172.tif 000009