(57)【要約】モバイル・デバイスにおいて、モバイル・デバイスに関するコンテキストが判定される。コンテキストは、モバイル・デバイス環境の多様な特性に基づいて判定される。そのような特性は、例えば、使用されている現在のアプリケーション、モバイル・デバイスのユーザがインタラクトしている、あるいは会話しているコンタクト、現在の日付及び／又は時間、会話の現在の話題、会話の現在のスタイル等を含む。判定されたコンテキスト及びユーザが生成したテキストに関連する文字列のセットに基づいて、ユーザが生成したテキストに関して、１以上の文字列予測が生成される。文字列予測が、ユーザが生成したテキストの提案される完成形としてユーザに提示され得る。
2015528968.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティング・デバイスにより、文字列を受信する受信ステップであって、前記の受信した文字列は会話に関連する、受信ステップと、
前記コンピューティング・デバイスにより、前記会話に基づいて、前記の受信した文字列に関するコンテキストを判定するステップと、
前記コンピューティング・デバイスにより、前記の受信した文字列及び前記の判定したコンテキストに基づいて、複数の文字列予測を生成する生成ステップであって、各文字列予測は文字列を含む、生成ステップと、
前記コンピューティング・デバイスにより、前記複数の文字列予測の前記文字列のうち１以上を提供するステップと、
前記コンピューティング・デバイスにより、前記複数の文字列予測の前記の提供した１以上の文字列のうちの１つの選択のインジケーションを受信するステップと、
前記選択のインジケーションに応答して、前記コンピューティング・デバイスにより、選択された文字列をアプリケーションに提供するステップと、
を含む、方法。
【請求項２】
前記の受信した文字列に関する前記コンテキストを判定することは、前記アプリケーションに基づいて、前記コンテキストを判定することを含む、請求項１記載の方法。
【請求項３】
前記コンテキストは複数の文字列に関連し、前記の生成した複数の文字列予測のうち少なくとも１つは、前記コンテキストに関連する前記複数の文字列からの文字列を含む、請求項１記載の方法。
【請求項４】
前記の受信した文字列は文字である、請求項１記載の方法。
【請求項５】
前記会話は１以上のパーティとのものであり、前記の受信した文字列に関する前記コンテキストを判定することは、前記１以上のパーティに基づいて、前記コンテキストを判定することを含む、請求項１記載の方法。
【請求項６】
前記の受信した文字列に関する前記コンテキストを判定することは、前記会話の話題を判定することを含み、前記会話に基づいて、前記の受信した文字列に関する前記コンテキストを判定することは、前記の判定した話題に基づいて、前記の受信した文字列に関する前記コンテキストを判定することをさらに含む、請求項１記載の方法。
【請求項７】
前記の受信した文字列に関する前記コンテキストを判定することは、前記会話のスタイルを判定することと、前記の判定したスタイルに基づいて、前記の受信した文字列に関する前記コンテキストを判定することとを含む、請求項１記載の方法。
【請求項８】
少なくとも１つのコンピューティング・デバイスと、
文字列を受信することであって、前記の受信した文字列は１以上のパーティに関連する、受信することと、
前記１以上のパーティに基づいて、前記の受信した文字列に関するコンテキストを判定することと、
前記の受信した文字列及び前記の判定したコンテキストに基づいて、複数の文字列予測を生成することであって、各文字列予測は文字列を含む、生成することと、
前記複数の文字列予測の前記文字列のうち１以上を提供することと、
を行うよう適合されている候補予測生成部と、
を備えた、システム。
【請求項９】
前記候補予測生成部は、
前記複数の文字列予測の前記の提供した１以上の文字列のうちの１つの選択のインジケーションを受信することと、
前記選択のインジケーションに応答して、選択された文字列をアプリケーションに提供することと、
をさらに行うよう適合されている、請求項８記載のシステム。
【請求項１０】
前記の受信した文字列は会話の一部であり、前記の受信した文字列に関するコンテキストを判定することは、前記会話の話題を判定することをさらに含み、前記の受信した文字列に関する前記コンテキストを判定することは、前記の判定した話題に基づく、請求項８記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
タイピングは、例えば、テキスト・メッセージを書くこと、電子メールを書くこと、連絡先を検索すること、及びＵＲＬ（uniform  resource  locator）をタイプすることを含む、モバイル・デバイス上での多くのシナリオの一部である。モバイル・デバイス上でのタイピングは遅く苛立たしいものであり得る。これは、オン・スクリーン・ソフトウェア・キーボードを使用するときに特に当てはまり得る。
【０００２】
この問題に対する１つの解決策は、ソフト入力パネルとして知られている。ソフト入力パネルにおいて、スクリーンのある領域は、ユーザがテキスト入力フィールドにそれまでに入力した文字に基づいて、提案される単語予測を表示することができる。ユーザがそのフィールドに文字を入力し続けるにつれ、提案される単語は変化する。ユーザが、入力している単語に合致する単語予測を見たとき、ユーザは、その単語予測を選択することができ、選択された単語が、ユーザにより入力された文字に置き換わってテキスト入力フィールド内に配置される。
【０００３】
通常、ユーザに示される単語予測は、辞書内の単語に対して入力された文字をマッチングさせ、次いで、各単語がユーザが入力しようとしている単語である尤度に基づいて、マッチングする単語のランク付けされたサブセットを提示することにより、生成される。尤度は、母集団によるマッチングする単語それぞれの使用量の全体的確率に基づき得る。
【０００４】
単語予測を提供するそのような方法の１つの欠点は、入力されている文字に関連するコンテキストを考慮に入れないことである。コンテキストは、ユーザが使用しているアプリケーション（すなわち、ショート・メッセージ・サービス（ＳＭＳ）アプリケーション又は電子メール・アプリケーション）、ユーザがやり取りしているパーティ（party）、ユーザの位置、日にちの日付及び時間、ユーザが以前にやり取りしていた人、又はユーザに関連する気持ちさえも含み得る。通常、ユーザは、会話のコンテキストに応じて変わり得る語彙のセットを使用する。例えば、ユーザは、友人と会話するときと、取引相手と会話するときとでは、異なる語句のセットを使用し得る、あるいは、ユーザは、ワープロ・アプリケーションを使用するときと、ＳＭＳアプリケーションを使用するときとでは、異なる語句のセットを使用し得る。予測を生成するときにコンテキストを考慮に入れないことにより、ユーザは、広すぎる単語予測、又は特定のコンテキストでは不適切な単語予測を受け取る場合がある。
【発明の概要】
【０００５】
モバイル・デバイスにおいて、モバイル・デバイスに関するコンテキストが判定される。コンテキストは、モバイル・デバイス環境の特性に基づいて判定され、例えば、使用されている現在のアプリケーション、モバイル・デバイスのユーザがインタラクトしている、あるいは会話しているコンタクト（contact）、現在の日付及び／又は時間、会話の現在の話題、会話の現在のスタイル等を含み得る。判定されたコンテキスト及びユーザが生成したテキストに関連する文字列のセットに基づいて、ユーザが生成したテキストに関して、１以上の文字列予測が生成される。文字列予測が、ユーザが生成したテキストの提案される完成形としてユーザに提示され得る。代替的に又は追加的に、音声メモ（voice  note）又は顔文字（emoticon）が、判定されたコンテキストに基づいて生成されてもよい。
【０００６】
一実施例において、文字列が、コンピューティング・デバイスにより受信される。受信された文字列はアプリケーションに関連する。受信された文字列に関するコンテキストが、コンピューティング・デバイスにより判定される。文字列予測が、受信された文字列及び判定されたコンテキストに基づいて生成される。各文字列予測は文字列を含む。文字列予測の文字列のうち１以上が、コンピューティング・デバイスにより提供される。提供された文字列のうちの１つの選択のインジケーションが、コンピューティング・デバイスにより受信される。選択のインジケーションに応答して、選択された文字列が、コンピューティング・デバイスによりアプリケーションに提供される。
【０００７】
一実施例において、受信された文字列に関するコンテキストが判定される。受信された文字列により基準が満たされるかどうかが判定される。受信された文字列により基準が満たされる場合、受信された文字列が、コンテキストに関連する複数の文字列に追加される。
【０００８】
この概要は、発明を実施するための形態において以下でさらに説明されるコンセプトのうち選択したものを簡略化した形で紹介するために提供される。この概要は、特許請求される主題の主要な特徴又は必要不可欠な特徴を特定することを意図するものではないし、特許請求される主題の範囲を限定するために使用されることを意図するものでもない。
【図面の簡単な説明】
【０００９】
添付の図面と併せて読まれるとき、前述の概要及び例示的な実施形態の以下の詳細な説明がより良く理解される。実施形態を例示する目的で、実施形態の例示的な構成が図面に示される。しかしながら、実施形態は、開示される特定の方法及び手段に限定されない。
【図１】コンテキストを用いた文字列予測の選択及び提示のための例示的な環境の図。
【図２】例示的な候補予測生成部の図。
【図３】コンテキストを用いた文字列予測を提供するための方法の実施例の動作フロー。
【図４】コンテキストを更新するための方法の実施例の動作フロー。
【図５】例示的な実施形態及び態様を実装することができる例示的なコンピューティング環境を示す図。
【発明を実施するための形態】
【００１０】
図１は、コンテキストに基づく文字列予測の選択及び提示のための例示的な環境１００の図である。環境１００は、複数のコンピューティング・デバイス１１５（例えば、コンピューティング・デバイス１１５ａ〜１１５ｎ）を含み得る。コンピューティング・デバイス１１５は、携帯電話機、スマートフォン、ポータブル・メディア・プレーヤ、ゲーム・コンソール等のモバイル・デバイスを含む多様なコンピューティング・デバイスとすることができる。コンピューティング・デバイス１１５は、ネットワーク１８０を介して、別のコンピューティング・デバイスと通信することができる。ネットワーク１８０は、公衆交換回線網（ＰＳＴＮ）、携帯電話ネットワーク、及びパケット交換ネットワーク（例えば、インタネット）を含む多様なネットワーク・タイプとすることができる。適切なコンピューティング・デバイス１１５の例は、図５に関連して説明するコンピューティング・システム５００を含む。
【００１１】
コンピューティング・デバイス１１５の各々は、オペレーティング・システム１２５及びユーザ・インタフェース１２０を含み得る。オペレーティング・システム１２５は、多様な周知のオペレーティング・システムを含み得る。コンピューティング・デバイス１１５のユーザは、ユーザ・インタフェース１２０を使用して、１以上の文字をオペレーティング・システム１２５に入力することができる。ユーザ・インタフェース１２０は、例えば、ソフトウェア・キーボード又はハードウェア・キーボード等の多様なインタフェースを含み得る。
【００１２】
コンピューティング・デバイス１１５の各々は、さらに、１以上のアプリケーション１３５（例えば、アプリケーション１３５ａ〜１３５ｎ）を実行することができる。アプリケーション１３５は、アプリケーション・レイヤ１３０において実行され得る。アプリケーション１３５は、例えば、電子メール・アプリケーション、ショート・メッセージ・サービス（ＳＭＳ）アプリケーション又はテキスト・アプリケーション、チャット・アプリケーション、ソーシャル・ネットワーキング・アプリケーション、及びワープロ・アプリケーションを含み得る。コンピューティング・デバイス１１５は、アプリケーション１３５を用いて、テキストベースのメッセージを交換することができる。例えば、各コンピューティング・デバイスは、ＳＭＳアプリケーションを実行し、ＳＭＳアプリケーションを介してＳＭＳメッセージを送受信することができる。本明細書において、一連の関連するテキストベースのメッセージを会話と呼ぶ。
【００１３】
各コンピューティング・デバイスの使用は、ユーザ・インタフェース１２０及びオペレーティング・システム１２５を介してアプリケーション１３５とインタラクトし得る。一実施例において、ユーザは、ユーザ・インタフェース１２０のソフト入力パネルを介して、文字を入力することができる。入力された文字は、オペレーティング・システム１２５により受信され、アプリケーション１３５のうちの１以上に提供され得る。
【００１４】
テキストを文字ごとにユーザ・インタフェース１２０に入力することは、コンピューティング・デバイス１１５のユーザにとって苛立たしいものであり得る。したがって、コンピューティング・デバイス１１５は、候補予測生成部１４０をさらに含み得る。候補予測生成部１４０は、１以上の文字列予測を生成することができる。文字列予測は、ユーザがユーザ・インタフェース１２０に入力しようとしている文字列であって、候補予測生成部１４０が予測する文字列を含み得る。文字列予測は、文字列に関する信頼値（confidence  value）を含み得る。代替的に又は追加的に、候補予測生成部１４０は、音声メモ、顔文字、又は、他のコミュニケーション・タイプ若しくはメッセージ・タイプを生成してもよい。予測された文字列は、単語、語句、文、顔文字、句読点若しくは他の記号、又はこれらの組合せを含む一連の１以上の文字を含み得るが、これらに限定されるものではない。
【００１５】
図２に関連してさらに説明するように、文字列予測は、入力された文字又は文字列に関連する１以上のコンテキストに部分的に基づき得る。本明細書で使用されるコンテキストは、入力された文字又は文字列に関連する会話又は環境の１以上の特性、特徴、又は性質を含み得る。コンテキストの特性又は特徴は、例えば、受信されたテキストが関連する特定のアプリケーション、会話に参加しているパーティ、コンタクト又は他のユーザ、現在の日付及び／又は時間、会話のトーン（すなわち、悲しい又は嬉しい）、会話の話題及び会話のスタイル（すなわち、公的な又は私的な）、ユーザの位置、ユーザが以前にやり取りしていたユーザ、及びユーザの気持ちを含み得る。
【００１６】
各コンテキストは文字列のセットに関連し得る。コンテキストに関連し得る文字列のセットは、コンテキスト中ユーザにより使用又は提供された文字列、あるいは、コンテキストに関連する知られている文字列を含み得る。例えば、ＳＭＳアプリケーションに関連するコンテキストは、「ＬＯＬ」等のテキスト・メッセージのために頻繁に使用される文字列に関連し得る。１月１日等の日付に関連するコンテキストは、「Ｈａｐｐｙ  Ｎｅｗ  Ｙｅａｒ」等の正月休みに関連する文字列を含み得る。ユーザの特定のコンタクトに関連するコンテキストは、ユーザがそのコンタクトとインタラクトしたときに入力した１以上の文字列を含み得る。コンテキストに関連する文字列のセットの文字列は、確率に関連付けられ得る。文字列の確率は、その文字列がコンテキストに関してユーザ又は他のユーザにより提供された回数に基づき得る。
【００１７】
いくつかの実施例において、ユーザが、文字列の１以上の文字を入力したとき、候補予測生成部１４０は、入力された文字列のコンテキストを判定し、入力された文字列及び判定したコンテキストに基づいて、文字列予測のセットを生成することができる。いくつかの実施例において、文字列予測は、プレフィックスとして入力された文字列を有するコンテキストに関連する文字列のセット、あるいは入力された文字列に類似する文字列のセットからの１以上の文字列を含み得る。さらに、文字列予測はまた、例えば、辞書等の１以上のモデルに基づいて生成された文字列予測を含み得る。
【００１８】
コンテキストに基づく文字列予測を生成することにより、辞書又はモデルのみに基づくよりも、生成された文字列予測は、辞書又はモデルにおいて使用される単語及び語句に限定されない。さらに、コンテキストに基づく文字列予測は、辞書又はモデルに基づく文字列予測よりも狭く調整され得るので、文字列は、辞書又はモデルに基づく文字列予測の文字列よりも、ユーザが入力しようとしている文字列をより正確に表し得る。
【００１９】
図２は、例示的な候補予測生成部１４０の図である。図示されるように、候補予測生成部１４０は、いくつかのコンポーネント、すなわち、コンテキスト・エンジン２４０及び予測モデル２０５を含み得るが、これらに限定されるものではない。候補予測生成部１４０のコンポーネントの一部又は全ては、図５に示されるコンピューティング・システム５００等のコンピューティング・システムにより実施され得る。
【００２０】
候補予測生成部１４０は、オペレーティング・システム１２５から入力されたテキスト２３０を受信することができる。入力されたテキスト２３０は、文字列又は文字を含み得るものであり、コンピューティング・デバイス１１５のユーザによりアプリケーション１３５に提供されたテキストであり得る。入力されたテキスト２３０は、ユーザがアプリケーション１３５に提供しようとしている、あるいは提供しようとしていた文字列に関連し得るか、又はその文字列の一部分であり得る。例えば、入力されたテキスト２３０は、ユーザが入力しようとしている文字列の最初の文字かもしれないし、又は、入力されたテキスト２３０は、ユーザが入力しようとしていた文字列のミススペルかもしれない。したがって、理解され得るように、候補予測生成部１４０を使用して、語句予測及びスペル提案の両方を１以上のアプリケーション１３５に提供することができる。
【００２１】
コンテキスト・エンジン２４０は、入力されたテキスト２３０に関する１以上のコンテキスト２１０を判定して、コンテキスト・ストレージ２６０から判定した１以上のコンテキスト２１０を取り出すことができる。いくつかの実施例において、各コンテキスト２１０は、複数の文字列を含み得るか、又は複数の文字列に関連し得る。コンテキスト２１０に関連する複数の文字列は、コンピューティング・デバイス１１５のユーザ又は他のコンピューティング・デバイス１１５の他のユーザにより入力された、コンテキスト２１０に関する文字列を含み得る。例えば、ワープロ・アプリケーションに関連するコンテキスト２１０に関して、複数の文字列は、ユーザによりワープロ・アプリケーションに頻繁に入力された１以上の文字列を含み得る。公的な会話スタイルに関連するコンテキストに関して、複数の文字列は、公的な会話中にユーザ又は他のユーザにより通常使用される１以上の文字列を含み得る。いくつかの実施例において、コンテキスト２１０に関連する複数の文字列のうちの文字列は、コンピューティング・デバイスの１以上の他のユーザにより使用された文字列に基づき得るものであり、外部のアドミニストレータにより収集されてコンテキスト・エンジン２４０に提供され得る。代替的に又は追加的に、以下でさらに説明するように、コンテキスト２１０に関連する文字列は、コンテキスト・エンジン２４０により判定されてもよい。
【００２２】
上述したように、コンテキストは、ユーザが入力されたテキスト２３０を提供している会話２２０又は環境の１以上の特性、特徴、又は性質を含み得る。いくつかの実施例において、コンテキスト・エンジン２４０は、入力されたテキスト２３０に関連する特性を判定し判定した特性にマッチするコンテキスト・ストレージ２６０の１以上のコンテキスト２１０を判定することにより、入力されたテキスト２３０に関する１以上のコンテキスト２１０を判定することができる。
【００２３】
コンテキスト２１０の特性は、入力されたテキスト２３０に関連するアプリケーション１３５のタイプを含み得る。入力されたテキスト２３０に関連するアプリケーション１３５は、ユーザが入力されたテキスト２３０を提供しているアプリケーション１３５であり得る。アプリケーション１３５のタイプは、例えば、ＳＭＳアプリケーション、ワープロ・アプリケーション、電子メール・アプリケーション、及びソーシャル・ネットワーキング・アプリケーションを含み得る。他のタイプのアプリケーションがサポートされてもよい。コンテキスト・エンジン２４０は、例えば、オペレーティング・システム１２０からアプリケーション１３５のタイプを判定することができる。
【００２４】
コンテキスト２１０の特性は、時間及び／又は日付に関連する特性を含み得る。理解され得るように、ユーザにより提供される単語又は語句のタイプは、例えば、１日のうちの時間、１週間のうちの日にち、又は月に基づいて変わり得る。例えば、ユーザは、昼に「Ｇｏｏｄ  Ａｆｔｅｒｎｏｏｎ」という語句を、朝に「Ｇｏｏｄ  Ｍｏｒｎｉｎｇ」という語句を使用し得る。ユーザにより使用される単語又は語句は、平日よりも週末の間の方が異なり得る。同様に、ユーザは、それぞれの祝日周辺の時間期間の間、「Ｈａｐｐｙ  Ｓｔ．Ｐａｔｒｉｃ’ｓ  Ｄａｙ」又は「Ｈａｐｐｙ  Ｍｏｔｈｅｒ’ｓ  Ｄａｙ」等の所定の祝日に関連する単語又は語句を使用する可能性が高い。コンテキスト・エンジン２４０は、例えば、オペレーティング・システム１２０から時間又は日付に関連する特性を判定することができる。
【００２５】
コンテキスト２１０の特性は、入力されたテキスト２３０に関連する会話２２０からさらに判定され得る。いくつかの実施例において、会話２２０は、ユーザ、及び会話２２０のパーティである１以上の他のユーザにより生成されたテキストベースのメッセージからの１以上の文字列を含み得る。例えば、会話２２０は、コンピューティング・デバイス１１５のユーザと、他のコンピューティング・デバイス１１５の１以上の他のユーザとの間で送信された一連のテキスト、電子メール、又はソーシャル・ネットワーキング・メッセージであり得る。さらに、コンテキストの特性は、会話中に言及又は指摘されたエンティティ又はパーティを含み得る。
【００２６】
入力されたテキスト２３０に関連する会話２２０からコンテキスト・エンジン２４０により判定され得るコンテキスト２１０の特性の例は、会話２２０に関連する１以上のパーティを含み得る。例えば、ユーザは、２人の友人と電子メールで会話をしている場合がある。この友人は、会話２２０のパーティであり得る。ユーザは、やり取りしているパーティに応じて（例えば、母親及び友人）、異なる単語又は語句を使用し得る。コンテキスト・エンジン２４０は、入力されたテキスト２３０に関連するアプリケーション１３５から会話のパーティを判定することができる。
【００２７】
入力されたテキスト２３０に関連する会話２２０からコンテキスト・エンジン２４０により判定され得るコンテキスト２１０の特性のさらなる例は、会話２２０のスタイル又はトーンを含み得る。会話２２０のスタイルの例は、公的なもの、私的なもの、又はビジネスを含み得る。トーンの例は、真剣であるもの、悲しいもの、嬉しいもの、及び興奮しているものを含み得る。他のトーン又はスタイルがサポートされてもよい。通常、ユーザは、会話２２０において、会話２２０のスタイル又はトーンにマッチする単語又は語句のセットを使用する。
【００２８】
コンテキスト・エンジン２４０は、会話２２０において使用された単語又は語句に基づいて、会話２２０のスタイル又はトーンを判定することができる。いくつかの実施例において、コンテキスト・エンジン２４０は、会話２２０のスタイル又はトーンを示す、会話２２０における単語又は語句を探すことができ、判定された単語に基づいて、会話２２０のスタイル又はトーンを判定することができる。例えば、「ＬＯＬ」等の私的な単語の使用は、会話２２０のスタイルが私的であることを示し得るものであり、エクスクラメーション・マークの使用は、会話のトーンが嬉しいものであるか、又は興奮しているものである可能性が高いことを示し得る。いくつかの実施例において、コンテキスト・エンジン２４０は、会話２２０を継続的にモニタリングして、会話２２０が進むにつれ、会話２２０のスタイル又はトーンを更新又は変更することができる。
【００２９】
入力されたテキスト２３０に関連する会話２２０からコンテキスト・エンジン２４０により判定され得るコンテキスト２１０の特性のさらなる例は、会話２２０の話題を含み得る。上述したスタイル及びトーンと同様に、コンテキスト・エンジン２４０は、会話２２０における特定の単語又は語句を探すことにより、会話の話題を判定することができる。例えば、会話２２０における「Ｎｅｗ  Ｙｏｒｋ」及び「ｔｒｉｐ」の複数の発生は、会話２２０がニューヨーク又は休日に関するものであることを示し得る。コンテキスト・エンジン２４０は、会話２２０を継続的にモニタリングして、会話２２０が進むにつれ、会話２２０の話題を更新又は変更することができる。
【００３０】
いくつかの実施例において、コンテキスト・エンジン２４０は、コンテキスト・ストレージ２６０から、判定された特性の各々にマッチするコンテキスト２１０を取り出すことができる。したがって、コンテキスト・エンジン２４０が、入力されたテキスト２３０に関連するコンテキスト２１０が公的なトーンの特性を有し、会話のパーティがユーザの両親であると判定した場合、コンテキスト・エンジン２４０は、コンテキスト・ストレージ２６０から、公的なトーンの特性を有し会話のパーティがユーザの両親であるコンテキスト２１０を取り出すことができる。そのようなコンテキスト２１０がコンテキスト・ストレージ２６０内に存在しない場合、コンテキスト・エンジン２４０は、判定された特性に最も近い又は最も類似した特性を有するコンテキスト２１０を選択することができる。代替的に又は追加的に、コンテキスト・ストレージ２６０から、判定された特性の全てを有する単一のコンテキスト２１０を取り出すのではなく、コンテキスト・エンジン２４０は、特性ごとに、コンテキスト・ストレージ２６０から、その特性を有するコンテキスト２１０を取り出してもよい。
【００３１】
候補予測生成部１４０は、入力されたテキスト２３０及び判定された１以上のコンテキスト２１０に基づいて、１以上の文字列予測２１５を生成することができる。いくつかの実施例において、文字列予測２１５は、候補予測生成部１４０によって、プレフィックスとして入力されたテキスト２３０を有する１以上のコンテキスト２１０の各々に関連する複数の文字列から文字列を判定することにより生成され得る。判定された文字列に関する信頼値が、例えば、判定された文字列を含む１以上のコンテキスト２１０の数と、１以上のコンテキスト２１０の各文字列に関連付けられた確率とにより、決定され得る。
【００３２】
文字列予測２１５がスペル提案として使用される実施例において、プレフィックスとして入力されたテキスト２３０を有する１以上のコンテキスト２１０の各々に関連する複数の文字列から文字列を判定するのではなく、候補予測生成部１４０は、入力されたテキスト２３０に類似する複数の文字列から文字列を判定してもよい。文字列の類似性を判定するための任意の方法が使用され得る。代替的に、候補予測生成部１４０は、入力されたテキスト２３０が、１以上のコンテキスト２１０の各々に関連する複数の文字列からの文字列の考えられるミススペルを含むかどうかを判定してもよく、判定した文字列を用いて、文字列予測２１５を生成することができる。
【００３３】
候補予測生成部１４０は、生成された文字列予測２１５のうちの１以上を提供することができる。多くの文字列予測２１５が存在する場合、候補予測生成部１４０は、各文字列予測２１５に関連付けられた信頼値に基づいて、どの文字列予測２１５を提供すべきかを選択することができる。信頼値は、判定された１以上のコンテキスト２１０に関連する文字列の各々に関連付けられた確率に基づき得る。語句予測の実施例において、提供される文字列予測２１５の文字列は、ユーザ・インタフェース１２０のソフト入力パネル内でユーザに表示され得る。ユーザが表示された文字列を選択した場合、その文字列が入力としてアプリケーション１３５に提供され得る。
【００３４】
スペル提案の実施例において、提供される文字列予測２１５の文字列は、入力されたテキスト２３０の近くに表示され得るか、又は、メニュー選択として表示され得る。ユーザが表示された文字列を選択した場合、選択された文字列が、アプリケーション１３５において、入力されたテキスト２３０に取って代わられ得る。
【００３５】
コンテキスト２１０に加えて、候補予測生成部１４０はまた、予測モデル２０５を用いて、１以上の文字列予測２１５を生成することができる。一実施例において、予測モデル２０５は、辞書を含み得るものであり、多様な文字列（例えば、単語又は語句）とともに各文字列に関する確率を含み得る。各文字列の確率は、例えば、一般的使用における各文字列のポピュラリティ（popularity）を反映し得る。確率は、１以上の会話２２０において、１以上のアプリケーション１３５に関してある時間期間の間ユーザにより提供される文字列を収集し解析することにより、決定されてもよいし、又は、例えば、新聞、雑誌、又は他の言語ソース（language  source）からの文字列の解析に基づき得るものであってもよい。他のタイプのモデルが使用されてもよい。
【００３６】
いくつかの実施例において、候補予測生成部１４０は、１以上のコンテキスト２１０を用いて生成された文字列予測２１５を、予測モデル２０５により生成された文字列予測２１５と組み合わせることができる。例えば、候補予測生成部１４０は、１以上のコンテキスト２１０を用いて生成された上位の文字列予測（すなわち、高い信頼値を有する文字列予測）と、予測モデル２０５の上位の文字列予測とを選択して、選択した文字列予測を組み合わせることができる。
【００３７】
他の実施例において、候補予測生成部１４０は、１以上のコンテキスト２１０及び予測モデル２０５を用いて、１以上の文字列予測２１５を生成してもよい。例えば、１以上のコンテキスト２１０に関連する複数の文字列のうちの文字列がモデル２０５に組み込まれてもよいし、又は、モデル２０５内の文字列に関連付けられた確率が、１以上のコンテキスト２１０に関連する文字列に基づいて調整されてもよい。候補予測生成部１４０による予測モデル２０５に対してなされる変更又は調整は、一時的なものであってよく、コンテキスト・エンジン２４０が１以上の異なるコンテキスト２１０を判定した場合、逆になってもよい。
【００３８】
コンテキスト・エンジン２４０は、入力されたテキスト２３０に基づいて判定されたコンテキスト２１０を維持又は更新することができる。コンテキスト・エンジン２４０は、アプリケーション１３５から文字列を受信することができる。文字列は、アプリケーションに提供された文字列であってもよいし、又は、アプリケーション１３５に関連する会話２２０の一部であった文字列であってもよい。例えば、コンピューティング・デバイス１１５のユーザは、会話２２０の一部としての、ＳＭＳアプリケーションに対する「Ｍａｙ  ｔｈｅ  ｆｏｒｃｅ  ｂｅ  ｗｉｔｈ  ｙｏｕ」という入力されたテキスト２３０を特定のパーティに提供することができる。入力されたテキスト２３０に関連する１以上のコンテキストが、ＳＭＳアプリケーションの特性と会話２２０に関連するパーティとを用いて、コンテキスト・エンジン２４０により判定され得る。
【００３９】
コンテキスト・エンジン２４０は、入力されたテキスト２３０の文字列が、すでに１以上のコンテキスト２１０に関連する文字列の一部であるかどうかを判定することができる。代替的に又は追加的に、コンテキスト・エンジン２４０は、入力されたテキスト２３０の文字列に類似する文字列が、すでに１以上のコンテキスト２１０の各々に関連する文字列の一部であるかどうかを判定してもよい。類似の文字列を判定するための任意の方法が使用され得る。入力されたテキスト２３０の文字列（又は、類似の文字列）が、すでに１以上のコンテキスト２１０に関連する文字列の一部である場合、１以上のコンテキスト２１０に関連する複数の文字列の各々における文字列（又は、類似の文字列）の確率が増大され得る。例えば、確率は固定量だけ増大され得る。
【００４０】
入力されたテキスト２３０の文字列（又は、類似の文字列）が、１以上のコンテキスト２１０に関連する文字列の一部でない場合、コンテキスト・エンジン２４０は、入力されたテキスト２３０の文字列を１以上のコンテキスト２１０に関連する複数の文字列に追加すべきか否かを判定することができる。いくつかの実施例において、入力されたテキスト２３０の文字列が、コンテキスト２１０に関連付けられた基準を満たす場合、入力されたテキスト２３０の文字列は、コンテキスト２１０に関連する複数の文字列に追加され得る。例えば、基準は、文字列が、例えば３回等の閾値回数よりも多く入力されたテキスト２３０の一部であったこととすることができる。他の閾値回数又は基準が使用されてもよい。各コンテキスト２１０が独自の基準を有してもよいし、又は、コンテキスト・ストレージ２６０内の各コンテキスト２１０について、基準が同一であってもよい。したがって、上記の例を続けると、「Ｍａｙ  ｔｈｅ  ｆｏｒｃｅ  ｂｅ  ｗｉｔｈ  ｙｏｕ」という文字列が、コンテキスト２１０の各々について３回より多く受信された場合、「Ｍａｙ  ｔｈｅ  ｆｏｒｃｅ  ｂｅ  ｗｉｔｈ  ｙｏｕ」という文字列が、ＳＭＳアプリケーションに関するコンテキスト２１０及び会話２２０に関連するパーティに関するコンテキスト２１０に追加され得る。
【００４１】
図３は、１以上のコンテキストを用いた文字列予測を提供するための方法３００の実施例の動作フローである。方法３００は、例えば、コンピューティング・デバイス１１５の候補予測生成部１４０により実施され得る。
【００４２】
３０１において、文字列が受信される。文字列は、ユーザから、ユーザ・インタフェース１２０を介して、候補予測生成部１４０により、入力されたテキスト２３０として受信され得る。例えば、ユーザは、ソフトウェア・キーボードを用いて、１以上の文字をテキスト・フィールドに入力し得る。受信された文字列は、１以上のパーティとの会話２２０の一部としてアプリケーション１３５に提供しようとしている文字列のプレフィックスであり得る。アプリケーション１３５は、例えば、ＳＭＳアプリケーション、ソーシャル・ネットワーキング・アプリケーション、及び電子メール・アプリケーションのうちの１以上であり得る。
【００４３】
３０３において、文字列に関するコンテキストが判定される。コンテキスト２１０は、候補予測生成部１４０のコンテキスト・エンジン２４０により判定され得る。コンテキスト・エンジン２４０は、受信された文字列に関する１つのコンテキスト２１０を判定してもよいし、又は、複数のコンテキスト２１０を判定してもよい。コンテキスト２１０は、コンテキスト・ストレージ２６０に記憶されたコンテキスト２１０から決定され得る。各コンテキスト２１０は、特定のコンテキスト２１０中にユーザ又は他のユーザにより頻繁に提供された文字列である複数の文字列に関連し得る。複数の文字列の各文字列はまた、コンテキスト２１０中にその文字列がどれくらい頻繁に提供されたかの基準である確率も含み得る。
【００４４】
いくつかの実施例において、コンテキストを判定することは、受信された文字列に関連するアプリケーション１３５、又は受信された文字列に関連する日付若しくは時間に基づいて、コンテキストを判定することを含み得る。代替的に又は追加的に、例えば、コンテキストは、受信された文字列に関連する会話２２０に基づき得るものであってよく、コンテキストは、会話のパーティ、会話の話題、又は会話のスタイルに基づいて判定され得る。会話の話題又はスタイルは、コンテキスト・エンジン２４０によって、特定の話題又はスタイルを示す、会話２２０における文字列を探すことにより判定され得る。
【００４５】
３０５において、複数の文字列予測が、受信された文字列及び判定されたコンテキストに基づいて生成される。複数の文字列予測は、文字列予測２１５を含み得るものであり、受信された文字列と、判定されたコンテキストに関連する複数の文字列とを用いて、候補予測生成部１４０により生成され得る。いくつかの実施例において、文字列予測２１５は、それぞれ、判定されたコンテキスト２１０に関連する複数の文字列からの文字列を含み得るものであり、プレフィックスとして受信された文字列を含む複数の文字列から文字列を判定することにより生成され得る。代替的に、文字列予測２１５は、受信された文字列に類似する複数の文字列から文字列を判定することにより生成されてもよい。文字列予測２１５は、それぞれ、複数の文字列における文字列の確率に基づく信頼値をさらに含んでもよい。
【００４６】
いくつかの実施例において、複数の文字列予測２１５はまた、予測モデル２０５及び判定されたコンテキスト２１０を用いて、候補予測生成部１４０により生成され得る。予測モデル２０５は、例えば、辞書を含み得るか、又は辞書に基づき得る。
【００４７】
３０７において、複数の文字列予測のうちの１以上の文字列が提供される。１以上の文字列は、文字列予測２１５の信頼値に従って、候補予測生成部１４０により提供され得る。いくつかの実施例において、複数の文字列予測２１５のうち最高の信頼値を有する文字列が提供され得る。文字列は、例えば、ユーザ・インタフェース１２０のソフト入力パネル内に文字列を表示することにより提供され得る。文字列が、受信された文字列に関するスペル提案として提供される場合、文字列は、オペレーティング・システム１２５により、受信された文字列の近くに表示され得る。
【００４８】
３０９において、提供された１以上の文字列のうち１つの選択のインジケーションが受信される。選択のインジケーションは、ユーザ・インタフェース１２０から、オペレーティング・システム１２５により受信され得るものであり、候補予測生成部１４０に提供され得る。例えば、ユーザは、ユーザ・インタフェース１２０のソフト入力パネルにおいて、文字列のうちの１つを選択又はタッチすることができる。
【００４９】
３１１において、選択された文字列が、入力としてアプリケーションに提供される。選択された文字列は、会話２２０の一部として、候補予測生成部１４０によりアプリケーション１３５に提供されてもよいし、又は受信された文字列のスペル置換としてアプリケーション１３５に提供されてもよい。
【００５０】
いくつかの実施例において、選択された文字列はまた、候補予測生成部１４０のコンテキスト・エンジン２４０により、判定されたコンテキスト２１０を更新するために使用され得る。例えば、判定されたコンテキスト２１０に関連する複数の文字列における選択された文字列に関連付けられた確率が、候補予測生成部１４０のコンテキスト・エンジン２４０により増大され得る。
【００５１】
図４は、コンテキストを更新するための方法４００の実施例の動作フローである。方法４００は、例えば、候補予測生成部１４０により実施され得る。
【００５２】
４０１において、文字列が受信される。文字列は、オペレーティング・システム１２５から、候補予測生成部１４０により受信され得る。文字列は、アプリケーション１３５のユーザにより入力又は選択され得る。文字列は、１以上の単語又は語句を含み得る。
【００５３】
４０３において、受信された文字列に関するコンテキストが判定される。コンテキスト２１０は、候補予測生成部１４０のコンテキスト・エンジン２４０により判定され得る。コンテキスト２１０は、特定のコンテキスト２１０中にユーザ又は他のユーザにより頻繁に提供された文字列である複数の文字列に関連し得る。複数の文字列の各文字列はまた、コンテキスト２１０中にその文字列がどれくらい頻繁に提供されたかの基準である確率も含み得る。
【００５４】
４０５において、判定されたコンテキストに関連する複数の文字列が、受信された文字列を含むかどうかが判定される。この判定は、候補予測生成部１４０のコンテキスト・エンジン２４０によりなされ得る。複数の文字列がこの文字列を含む場合、方法４００は４０７において継続し得る。そうでなければ、方法４００は４０９において継続し得る。
【００５５】
４０７において、複数の文字列における文字列の確率が増大される。確率は、候補予測生成部１４０のコンテキスト・エンジン２４０により増大され得る。例えば、コンテキスト・エンジン２４０は、複数の文字列における受信された文字列の確率に固定量付加することにより、確率を増大させることができる。
【００５６】
４０９において、文字列により基準が満たされるかどうかが判定される。この判定は、候補予測生成部１４０のコンテキスト・エンジン２４０によりなされ得る。いくつかの実施例において、基準は、文字列が閾値回数よりも多く受信されたこととすることできる。例えば、文字列が、ユーザにより、３回（又は、別の予め定められた回数としてもよいが、これは実装に応じて異なる）よりも多くアプリケーション１３５に入力又は提供された後、その文字列が、判定されたコンテキスト２１０に関連する複数の文字列に追加され得る。他の基準が使用されてもよい。基準が満たされる場合、方法４００は４１１において継続し得る。そうでなければ、方法４００は４１３において終了し得る。
【００５７】
４１１において、文字列が、コンテキストに関連する複数の文字列に追加される。文字列は、候補予測生成部１４０のコンテキスト・エンジン２４０により追加され得る。いくつかの実施例において、例えば、追加された文字列に関連付けられる確率は、新たに追加される文字列に対するデフォルト値として設定され得る。
【００５８】
図５は、例示的な実施形態及び態様を実装することができる例示的なコンピューティング環境を示している。コンピューティング・システム環境は、適切なコンピューティング環境の一例に過ぎず、使用又は機能の範囲に関して限定を示唆するよう意図するものではない。
【００５９】
多数の他の汎用コンピューティング・システム又は専用コンピューティング・システム、環境、又は構成が使用され得る。使用するのに適し得る周知のコンピューティング・システム、環境、及び／又は構成の例は、パーソナル・コンピュータ、サーバ・コンピュータ、ハンドヘルド・デバイス又はラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベースのシステム、ネットワークＰＣ、ミニコンピュータ、メインフレーム・コンピュータ、組み込みシステム、前述のシステム又はデバイスのいずれかを含む分散コンピューティング環境等を含むが、これらに限定されるものではない。
【００６０】
コンピュータにより実行されるプログラム・モジュール等のコンピュータ実行可能命令が使用され得る。一般に、プログラム・モジュールは、特定のタスクを実行するか、あるいは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。通信ネットワーク又は他のデータ伝送媒体を介してリンクされたリモート処理デバイスによりタスクが実行される分散コンピューティング環境が使用されてもよい。分散コンピューティング環境において、プログラム・モジュール及び他のデータは、メモリ・ストレージ・デバイスを含むローカル・コンピュータ記憶媒体及びリモート・コンピュータ記憶媒体の両方に配置させることができる。
【００６１】
図５を参照すると、本明細書で説明した態様を実装するための例示的なシステムは、コンピューティング・システム５００等のコンピューティング・デバイスを含む。その最も基本的な構成において、コンピューティング・システム５００は、通常、少なくとも１つの処理ユニット５０２及びメモリ５０４を含む。コンピューティング・デバイスの正確な構成及びタイプに応じて、メモリ５０４は、揮発性（ランダム・アクセス・メモリ（ＲＡＭ）等）であってもよいし、不揮発性（例えば、読み取り専用メモリ（ＲＯＭ）、フラッシュ・メモリ等）であってもよいし、それら２つの何らかの組合せであってもよい。この最も基本的な構成が、図５において、破線５０６により示されている。
【００６２】
コンピューティング・システム５００は、追加の特徴／機能を有することができる。例えば、コンピューティング・システム５００は、磁気ディスク、光ディスク、又は磁気テープ等の追加のストレージ（取り外し可能且つ／又は取り外し不可能）を含み得るが、これらに限定されるものではない。そのような追加のストレージが、図５において、取り外し可能なストレージ５０８及び取り外し不可能なストレージ５１０により示されている。
【００６３】
コンピューティング・システム５００は、通常、多様なコンピュータ読み取り可能媒体を含む。コンピュータ読み取り可能媒体は、コンピューティング・システム５００によりアクセスされ得る任意の利用可能な媒体とすることができ、揮発性媒体及び不揮発性媒体、取り外し可能な媒体及び取り外し不可能な媒体の両方を含む。
【００６４】
コンピュータ記憶媒体は、コンピュータ読み取り可能命令、データ構造、プログラム・モジュール、又は他のデータ等の情報を記憶するために任意の方法又は技術により実装された揮発性媒体及び不揮発性媒体、並びに取り外し可能な媒体及び取り外し不可能な媒体を含む。メモリ５０４、取り外し可能なストレージ５０８、及び取り外し不可能なストレージ５１０は、全て、コンピュータ記憶媒体の例である。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、電気的に消去できるプログラム可能な読み取り専用メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、若しくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、若しくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ、若しくは他の磁気ストレージ・デバイス、又は、所望の情報を記憶するために使用することができ、コンピューティング・システム５００によりアクセスされ得る任意の他の媒体を含むが、これらに限定されるものではない。このようなコンピュータ記憶媒体は、コンピューティング・システム５００の一部であり得る。
【００６５】
コンピューティング・システム５００は、デバイスが他のデバイス及び／又はインタフェースと通信することを可能にする１以上の通信接続５１２を含み得る。コンピューティング・システム５００はまた、キーボード（ソフトウェア又はハードウェア）、マウス、ペン、音声入力インタフェース、タッチ・インタフェース等の１以上の入力デバイス５１４を有し得る。ディスプレイ、スピーカ、プリンタ等の１以上の出力デバイス５１６も、コンピューティング・システム５００に含まれ得る。これらの全てのデバイスは当技術分野において周知であり、本明細書において詳細に説明される必要はない。
【００６６】
本明細書で説明した様々な技術は、ハードウェア若しくはソフトウェアに関連して、又は必要に応じて両者の組合せに関連して実装することができることを理解すべきである。したがって、現在開示している主題の方法及び装置、又はその所定の態様若しくは部分は、フロッピ・ディスク、ＣＤ−ＲＯＭ、ハード・ドライブ、又は任意の他のマシン読み取り可能記憶媒体等の有体の媒体内に具現化されるプログラム・コード（すなわち、命令）の形態を取ることができる。ここで、プログラム・コードが、コンピュータ等のマシンにロードされ、コンピュータ等のマシンにより実行されたとき、そのマシンは、現在開示している主題を実行するための装置になる。
【００６７】
例示的な実施例は、１以上のスタンド・アロン型コンピュータ・システムのコンテキストにおいて、現在開示している主題の態様を利用することに関連し得るが、主題は、そのように限定されるものではなく、むしろ、ネットワーク環境又は分散コンピューティング環境等の任意のコンピューティング環境に関連して実装することができる。さらに、現在開示している主題の態様は、複数の処理チップ又は処理デバイスにおいて、又はそれらにわたって実装することができ、ストレージも同様に、複数のデバイスにわたって実施され得る。そのようなデバイスは、例えば、パーソナル・コンピュータ、ネットワーク・サーバ、及びハンドヘルド・デバイスを含み得る。
【００６８】
主題が、構造的特徴及び／又は方法論的動作に特有の言葉で説明されたが、添付の特許請求の範囲において定められる主題は、上述した特定の特徴又は動作に必ずしも限定される必要がないことを理解すべきである。むしろ、上述した特定の特徴及び動作は、請求項を実施するための例示的な形態として開示されたものである。
【図１】
2015528968.tif 000003
【図２】
2015528968.tif 000004
【図３】
2015528968.tif 000005
【図４】
2015528968.tif 000006
【図５】
2015528968.tif 000007
【国際調査報告】
2015528968.tif 000008
2015528968.tif 000009