説明

ソーシャル関係を使用したテキストのあいまい性除去

本明細書の主題は、中でも、ユーザに関連するコンピューティングデバイスに辞書を提供するための要求を受信するステップと、ユーザに関するシステムソーシャルネットワークのメンバに関する語の使用量を識別するステップと、そのソーシャルネットワークのメンバに関する語の使用量情報を用いて、そのユーザ向けの辞書を生成するステップとを含むことを特徴とするコンピュータで実施される方法の形で実装可能である。

【発明の詳細な説明】
【技術分野】
【0001】
本書は、コンピューティングデバイスのユーザによって入力されたテキストのあいまい性を除去するためのシステムおよび技法を説明する。
【0002】
本出願は、2008年10月17日に出願され、その開示が参照により本明細書に組み込まれている、「TEXTUAL DISAMBIGUATION USING SOCIAL CONNECTIONS」という表題の米国特許出願第12/253,791号の優先権を主張する。
【背景技術】
【0003】
電子メールをタイプしようと、探索クエリを提出しようと、電子書式を記入しようと、他の場合であろうと、人々は、コンピューティングデバイス内にテキストを入力するのに多くの時間を費やす。ある状況において、かかるテキスト入力を支援するために、いくつかの技法が開発されている。例えば、システムは、ユーザがいくつかの文字をタイプした後で、そのユーザが長い入力においてすべての文字をタイプする必要がないように、可能な自動コンプリートテキスト入力を示唆するために、知識に基づいた推測を行うことが可能である。また、移動体デバイスは、多くの場合、それぞれのキー上でユーザがいくつかのキーを押した後で、複数の文字がそれぞれのキーによって表され、システムが、どの字をタイプすることを意図するかを推論できるように、コンストレインドキーボード(constrained keyboards)を有する。このように、かかるシステムは、そうでなければあいまいな可能性があるキーの押下から適切な語または語のグループを選択することが可能である。
【0004】
入力のあいまい性除去は、すでに入力された文字に関する自動コンプリーションの形をとろうと、それぞれのキーの押下が複数の文字を表しうるときの適切な文字決定の形をとろうと、またはそれら2つの組合せの形をとろうと、多くの場合、辞書に依存する。詳細には、この文脈における辞書は、テキスト用語またはテキスト語句が通常の書き言葉において出現する頻度に関する表示と共に、それらのいくつかのテキスト用語および/またはテキスト語句を含むことが可能である。あいまいなユーザ入力に応答して、用語を示唆または選択するとき、最も頻繁に使用される用語には、その他の用語に比べて優位が与えられることが可能である。例えば、ユーザがBとAとを入力する場合、ユーザは、「BALL(ボール)」もしくは「BASEBALL(野球)」をタイプしようとしている可能性があり、またはいくつかのその他の用語をタイプしようとしている可能性がある。ユーザのコンピューティングデバイス上の辞書が、「BALL」は「BASEBALL」よりもより通俗的であることを示す場合、ユーザが2つの文字の後にタイプを停止した場合、入力されるデフォルト用語として「BALL」が提供されうる。同じように、ユーザが、電話のキーパッド上でこれら2つのキーを2回押した場合、ユーザは、この場合も、「BALL」、「BASEBALL」、または「ACT(行動する)」、「ACTION(活動)」、「ABDICATE(放棄する)」、およびその他のそのような用語すら、タイプすることを試みている可能性がある。辞書内のそれぞれの用語の通俗性は、多くの可能な用語のうち、どの用語がそのユーザに関して示唆されるか、または選択されるかを制御することが可能である。
【発明の概要】
【課題を解決するための手段】
【0005】
本書は、ユーザによって、デスクトップコンピュータまたはスマートフォンなどのコンピューティングデバイスに提供されたテキスト入力のあいまい性を除去するためのシステムおよび技法を説明する。一般に、ユーザに関するソーシャル(social)ネットワークが解析されて、そのユーザによって入力されたテキストのあいまい性を除去するための辞書データを生成するために、そのソーシャルネットワークのユーザの間で用語の通俗性が使用される。この理論は、ユーザはその友人達が使用することが多い用語を使用する可能性がより高いというものである。例えば、10代の若者がソーシャルネットワーキングウェブサイト上で様々なユーザを友人として識別した場合、そのユーザに関する用語の通俗性を決定する際に、そのユーザの友人達のページのコンテンツおよびその他の類似コンテンツが解析されうる。かかるユーザは、例えば、その通信において、ある種の形態の俗語、すなわち、より広い母集団の全域でのより一般的な用語の使用量を前提とする辞書によって取り上げられないであろう用語を使用する可能性がさらに高い可能性がある。
【0006】
第1の一般的な態様では、コンピュータで実施される方法が説明される。この方法は、ユーザに関連するコンピューティングデバイスに辞書を提供するための要求を受信するステップと、ユーザに関するソーシャルネットワークのメンバに関する語の使用量情報を識別するステップと、そのソーシャルネットワークのメンバに関する語の使用量情報を用いて、そのユーザ向けの辞書を生成するステップとを備える。
【0007】
第2の一般的な態様では、実行されるとき、活動を実行する命令を記録および格納している記録可能な記憶媒体が説明される。この記録可能な記憶媒体は、ユーザに関連するコンピューティングデバイスに辞書を提供するための要求を受信する活動と、そのユーザに関するソーシャルネットワークのメンバに関する語の使用量情報を識別する活動と、そのソーシャルネットワークのメンバに関する語の使用量情報を用いて、そのユーザ向けの辞書を生成する活動とを実行するための命令を含む。
【0008】
第3の一般的な態様では、コンピュータで実施されるテキストのあいまい性除去システムが説明される。このシステムは、ユーザに関連するソーシャルネットワークのメンバによる語の使用量を反映するデータを生成するためのソーシャルネットワークインターフェースと、そのユーザによって入力されたテキストのあいまい性を除去する際に使用するためにフォーマットされた辞書データを作成するために、そのソーシャルネットワークのメンバの語の使用量を反映するデータを使用するようにプログラムされた辞書ビルダ(dictionary builder)と、そのユーザによって入力されたテキストのあいまい性を除去するために、その辞書データを使用するようにプログラムされた予測モジュールとを含む。
【0009】
さらにもう1つの一般的な態様では、コンピュータで実施されるシステムが説明される。このシステムは、ユーザに関する識別子を使用して、そのユーザのソーシャルネットワークのメンバによる語の使用量を反映するデータを作成するためのソーシャルネットワークインターフェースと、そのユーザにとって特定でない一般的な語の使用量を反映するマスタ辞書データを格納するメモリと、そのユーザによって入力されたテキストのあいまい性を除去するために、そのマスタ辞書と共に使用する使用データを辞書データに処理するための手段とを含む。
【0010】
添付の図面、および下の説明において、1つまたは複数の実施形態の詳細が記載される。その他の特徴、目的、および利点は、その説明およびそれらの図面から、かつ特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0011】
【図1】語の使用量情報を使用して、入力あいまい性除去のための辞書データを生成するために、ソーシャルネットワーク内のソーシャル関係が使用されうる様式を示す概略図である。
【図2A】ソーシャルネットワーキングデータを使用して、ユーザ辞書を更新するための例示的なプロセスを示す流れ図である。
【図2B】ソーシャルネットワーキングデータを使用して、ユーザ辞書を更新するための例示的なプロセスを示す流れ図である。
【図3A】クライアントとサーバとの間の相互作用の例を示すシーケンス図である。
【図3B】クライアントとサーバとの間の相互作用の例を示すシーケンス図である。
【図4A】ユーザ入力のあいまい性を除去するための辞書を更新するためのシステムの概略図である。
【図4B】コンピューティングデバイス上にデータを入力しているユーザにあいまい性除去を提供するシステムの概略図である。
【図5】本明細書で説明される自動クロッピングの実施形態を実装する例示的な移動体デバイスの概略図である。
【図6】図5のデバイスの内部アーキテクチャを例示するブロック図である。
【図7】図3のデバイスによって使用されるオペレーティングシステムの例示的な構成要素を示すブロック図である。
【図8】図5のオペレーティングシステムカーネルによって実装される例示的なプロセスを示すブロック図である。
【図9】本明細書で説明される技法を実装するために使用されうるコンピュータデバイスおよび移動体コンピュータデバイスの例を示す図である。
【発明を実施するための形態】
【0012】
様々な図面内の類似の参照符号は、類似の要素を示す。
【0013】
図1は、語の使用量情報(word usage information)を使用して、入力あいまい性除去(disambiguation)のための辞書データを生成するために、ソーシャルネットワーク内のソーシャル関係が使用されうる様式を示す概略図である。この図は、ウェブサイトを介した個人的な関連として、ソーシャルネットワーク内の友人、および友人の友人として、何人かの異なるユーザ102、110、114が接続されるシステム100を示す。ソーシャルネットワークのそれぞれのメンバは、彼らが情報を掲示するページ112、彼らが自らに関して関連する特徴を列挙するプロファイルページ116、および議論ページまたは様々なメンバ同士の間の通信のテキストメッセージログなど、その他のコンテンツなど、彼らに関連する様々な形態のテキストコンテンツを有することが可能である。これらのソースのそれぞれは、そのグループのメンバによる典型的な使用を反映する可能性があり、したがって、そのグループのメンバが将来用いる可能性がある使用を反映する可能性がある。結果として、これらのソースは、ユーザに関する用語または語句を示唆する際に、コンピューティングデバイスによって使用するための辞書データを提供するために、下でより詳細に説明される形など、様々な形で使用可能である。
【0014】
図1をより詳細に参照すると、ユーザ102は、複数の入力106を含む辞書104に関連しているとして示される。これらの入力は、特定の語もしくは語句であってよく、またはその他の適切な形をとりうる。それぞれの語は、システム100が、ユーザ102が将来用いる可能性がある語であると判定した語を表す。この例では、これらの語は、0.01から0.90に正規化された尺度を用いて、最上部の最も一般的なものから最下部の最も一般的でないものまで分類されて示される。一般に、あいまい性除去辞書内の用語は、代わりに、それぞれのノードが、語内のそれぞれの連続する文字、または、キーパッドからのそれぞれのキーを表すツリーを通じて下降する状態で、ツリー構造の形で分類されることになる。それぞれの用語は、次いで、語の使用量情報(例えば、ツリー内のそのそれぞれの位置における重み付け)を有することが可能である。例えば、典型的な電話のキーパッドに関するツリー構造は、(非アルファベット文字に関して、1つまたは複数の追加のブランチが含まれうるが、字はキー2〜9上で表示されるため) 根ノードから生じる8本のブランチと、次のレベルでそれぞれのノードにおいて生じる別の8本のブランチとを有することが可能である。したがって、ツリーは、不可能な解決策を取り除けるように、ユーザがキーパッド上でキーを押すにつれて横断することができる。語または語句を構成するために、かつそれらの使用の可能性を示すために、その他の適切な機構が使用されてもよい。辞書104の特定の構成は、一般に重要ではない。
【0015】
この例において、それぞれの語は、説明を明瞭にするために、単一の得点を有するが、より複雑な得点技法が使用されることも可能である。例えば、用語は、ユーザ102が別の語をタイプしたときと比べて、ユーザがちょうど「sunny(日が照っている)」とタイプした場合、「day(日中)」に関する得点がより高いように、コンテンツ依存である得点を有することが可能である。
【0016】
それぞれの語に関連する得点は、一般に、ユーザ102が将来その語または語句を入力することになる可能性がどれだけ高いかという点から、語または語句の予測された通俗性を表す。そのようなデータは、一般的なシステムにおいて、集団全体の数冊の本またはいくつかの電子メールなど、文書のコーパスを解析して、そのコーパス内の様々な語が使用される頻度を識別し、それらの発生頻度に基づいて、正規化された形でそれらの語をランク付けすることによって解釈されうる。かかる得点は、次いで、ユーザ102のアウトボックス内および/もしくはインボックス内の電子メール、ユーザ102に関してコンピューティングデバイス上に格納された文書、またはユーザ102に関連してユーザアカウント内のサーバ上に格納された文書など、ユーザ102にとって特定の文書を調べることによって調整されうる。
【0017】
この例では、それぞれの用語(例えば、語または語句)のランク付けは、あるいは、ソーシャルネットワークにおける関係と関連付けられてよい。描写される例では、ユーザ102は、そのソーシャルネットワークにおいて2つの等級関係を有するとして示される。ユーザ102の第1の等級関係110は、それらの等級関係に関連する文書112を有するとして示される。ユーザ102は、1つまたは複数の関連文書116を有するユーザ114と第2の等級関係を有するとしても示される。
【0018】
文書112、116は、様々な形態をとってよく、例えば、ORKUT、MYSPACE、またはFACEBOOKなど、ソーシャルネットワーキングサイト上の通常のプロファイルページを含みうる。そのユーザのプロファイルページに付属する、ユーザが提出する追加のページなど、その他のページが含まれてもよい。加えて、ユーザ110、114間の、かつユーザ102、110、114間のテキストメッセージセッションの写しなど、ユーザ110、114によるその他の通信が検査されうる。したがって、例えば、システム100は、文書112、116内の語および語句の使用の頻度を決定するために、様々な文書112、116を解析することが可能である。ユーザが10代の若者である場合、この解析は、OMG(「Oh my God!(オーマイゴッド!)」)、「like(っていうか)」、「totally(超)」、「sick(かっこいい)」、およびその他のそのような俗語用語など、標準の英語の使用法の調査において出現しないであろう多くの語句を識別することが可能である。
【0019】
システム100は、やはり、またはその代わりに、ユーザ110、114のそれぞれに関連する辞書を解析することも可能である。これらの辞書は、ユーザ102、110、114のそれぞれに関連するクライアントデバイス上に格納されてよく、それらの辞書の写しは、1つまたは複数のサーバデバイスを含むことが可能なセントラルサーバ上に格納されてよい。様々なユーザ間のこのソーシャル関係は、辞書104内の語に関する得点に影響を及ぼすために様々な形で使用可能である。一例として、システム100は、ソーシャルネットワーク内の文書112、116のすべてまたはいくつかを解析して、当該文書内の語または語句に関する頻度分布を作成することが可能である。これらの語は、次いで、システム内のその位置に従って重み付けされてよい。例えば、ユーザの好きな食べ物がブルーベリーであることを示す語など、プロファイルページ内の語は、発信テキストメッセージ内の語と比べて、より低い重み、または下位方向に調整された得点を受ける可能性があるのは、ユーザ110は、おそらく、将来の通信セッションにおいて、前者の用語よりも後者の用語を使用する可能性がさらにより高い可能性があるためであり、拡大解釈すると、通信しているとき、友人達が類似の語および語句を使用するという推定の下で、ユーザ102は、その用語を使用する可能性もより高いことになる。
【0020】
また、ユーザ102に関するソーシャルネットワークの第1レベルのユーザ110の貢献は、ユーザ114など、より遠くのユーザの貢献よりもより重く重み付けされてよい。一例では、それによって、それぞれのユーザの辞書内の語に関する得点がそのソーシャルネットワーク内のすぐ隣の隣人に関する得点で平均化される再帰的手法が使用されうる。したがって、例えば、第1の反復において、ユーザ114からの得点は、図内の2人の上位ユーザ110に関する辞書に部分的に渡されてよく、次いで、それらの得点の一部は、次の周期において、辞書104に間接的に渡されてよい。それぞれのユーザの得点は、多数の反復の後で、ユーザのすべてが同一の辞書を有さないように、彼らの最終的な得点を彼らの元の得点に多少固定するために、人工的に重み付けされることも可能である。このようにして、辞書104は、ユーザ102の実際の使用を最も強く反映し、ユーザ110の使用をより少なく反映し、ユーザ114の使用をさらに少なく反映することができる。特定の実装形態では、特定のユーザの使用の重みは、ソーシャルネットワーク内の中央ユーザからの距離が遠のくと共に、指数関数的に、または類似の様式で減少しうる。
【0021】
加えて、ユーザ102およびユーザ110、114による使用から提供される得点付けは、その他のより伝統的な得点付け技法と調和されうる。例えば、公式文書のコーパスから生成される通常の辞書は、得点付けの基礎として使用可能であり、次いで、ユーザ102に関する使用データと組み合わされてよく、ユーザ110、114からの使用データと組み合わされてもよい。辞書104などの辞書内で語および語句をランク付けするための信号のその他の組合せが用いられてもよい。
【0022】
新しい入力および値がソーシャルネットワークからユーザ102の辞書104内に組み込まれると、辞書104は、ユーザによって入力されたテキストに関するあいまい性除去を提供するために使用可能である。あいまい性除去は、ユーザ102の入力に基づいて、ユーザ102に代替の選択肢を提供することができる。例えば、2-2-7を入力したユーザは、語「Carla(カーラ)」または「baseball(野球)」をコンプリートすることを意図する可能性がある。辞書内の入力は、ユーザがタイプするにつれて、ユーザが押していないキーに対応する解決策が可能性のある解決策セットから取り除かれることができるように、それらの文字に従って階層的に組織されうる。残りの候補解決策は、次いで、辞書104内のそれらの得点に従って順序付けられて、ユーザに提示されうる。かかるあいまい性除去は、システムが、すでに押されているキーによってユーザが何を意図したかを推論することが必要とされるコンストレインドキーボードと、システムが、すでに行われた入力から推定する必要がある(それらの入力が(例えば、ユーザがフルキーボードを有する場合)明確な、またはあいまいな)テキスト入力コンプリーションの両方に関して発生しうる。ユーザがキーを押し続けると、可能な解決策のセットは、それぞれのキーの押下後、示唆される解決策がよく知られている様式で更新されることにより、さらに取り除かれて、範囲が限定されうる。
【0023】
いくつかの実装形態では、ユーザ102は、特定の語が表示されることを望まないことを自らのデバイスに信号で知らせることが可能である。逆に、ユーザは、テキスト入力欄の下のドロップダウン内に表示されたリストから語を選択することが可能であり、そのユーザのデバイスは、次いで、選択された語を使用して、入力をコンプリートすることが可能である。
【0024】
ユーザ102が別の語ではなく、ある語を選ぶ場合、かかる選択は、辞書104内の両方の入力の値に影響を及ぼすことが可能である。いくつかの実施形態では、1つの入力(選択された入力)は、その関連する値を増大しうる。同様に、その他の入力は、その関連する値を低減しうる。かかるユーザ102決定は、辞書104内の複数の入力106に関連する値に何の影響も有さない場合もある。
【0025】
辞書内の用語のランキングは、上記で議論された機構以外の、またはそれらの機構に加えて、ソーシャルネットワーキングベースの機構に依存しうる。例えば、値を辞書内の用語と関連付けるプロセスは、メンバの通俗性、または特定のメンバとその他のメンバとの間の関係の数を決定することによって発生しうる。例えば、200万以上の第1の等級関係を有する、MYSPACEの最も人気のあるメンバのうちの1人であるTila Tequilaが、その辞書内に高い値に関連する「MTV」を有する場合、彼女にリンクされたメンバは、20人の第1の等級関係を有するある友人が同じ値に関連する「MTV」を有する場合よりも、より高い値と関連付けられた「MTV」を有することが可能である。
【0026】
同様に、入力に関連する値は、ユーザ102との関係の程度に依存しうる。例えば、ユーザ102が第1の等級関係110と共通の入力を有する場合、その語に関連する値は、ユーザ102が第2の等級関係114と共通の入力を有する場合よりも増大しうる。同様に、共有されるグループ、ネットワーク、学校、およびユーザ102のプロファイル内および関係のプロファイル内に入力された音楽またはビデオなど、ユーザ同士の間の共通性は、彼らのそれぞれの辞書内で共有される語に関連する値の増大を決定することが可能である。その他の実装形態では、辞書内の語に関連する値の増大は、メンバがそのソーシャルネットワーク内で有する連絡先の数に依存しうる。例えば、メンバがその友人もしくはその関係のうちの1つに関するブログを読み、そのブログ上で意見を述べる場合、またはその関係のウォール上に書き込む場合、そのユーザの辞書内のその関係の辞書内の語に関連する値に増大が存在しうる。
【0027】
ユーザ102は、その辞書104から用語を手動で削除または変更することが許可されうる。いくつかの実装形態では、ユーザは、辞書にアクセスして、入力に関する値を変更することが可能である。例えば、ユーザ102が「グレイズアナトミー」を好きでない場合、そのユーザのソーシャルネットワーク内の何人かのメンバがそのソーシャルネットワーキングページ内に当該用語に対する多くの引用を有するというだけの理由で、そのユーザは自らの辞書内に出現するその番組に関する用語の値を最低の設定に変更することが可能である。
【0028】
辞書は、共有されることも可能である。例えば、ある会社は、その会社の従業員からのページからのデータを使用して構築された共通の辞書を維持することが可能である。そのような共有される辞書は、したがって、その会社の人々の特定の頭文字または名前など、その会社の独特の構造を考慮に入れるテキストのあいまい性除去に対する容易なアクセスをその従業員に提供することが可能である。あるいは、辞書は、特定のソーシャルネットワークに関して作成されて、テキスト入力あいまい性除去のためにそのネットワークのそれぞれのメンバに提供可能であり、この場合、初期の辞書は、そのグループ内の個々の使用をより良好に反映するように若干修正されうる。
【0029】
ユーザ102は、複数の辞書を有することも可能である。例えば、ユーザは、そのソーシャルネットワーク内のすべての辞書がそのユーザの一般辞書、個人辞書、および(第1レベルの友人によってだけアクセスされうる)半個人辞書に影響を及ぼすことが可能であり、かつそれらの辞書によって影響が及ぼされることも可能であるような一般辞書を有することが可能である。ユーザ102は、特定用途向け辞書を有することも可能である。例えば、ユーザが電子メールをタイプしているとき、彼らはLOLまたはOMGなどの用語をタイプする可能性がはるかに高い可能性があるため、ユーザ102が電子メールを使用しているとき、そのような用語は、より高いランキングを有する可能性がある。逆に、ユーザは、探索を実行しているとき、かかる用語を一度も使用しない可能性があり、したがって、そのような状況では、ユーザが、示唆される用語のリストの最上部に、最近、その他のユーザにとって通俗的な探索用語である用語を目にする可能性が高いように、特定な探索エンジンに関する最近の探索活動を考慮に入れる辞書など、よりグローバルな(ユーザ特定ではない)辞書が使用可能である。
【0030】
図2Aは、ソーシャルネットワーキングデータを使用して、ユーザ辞書を更新するためのプロセス200の一例を示す流れ図である。プロセス200は、一般に、ユーザの識別を受信するステップと、そのユーザのソーシャル関係を識別するステップと、そのユーザのキーワードを計算するステップと、用語に重み付けを適用するステップと、そのユーザに属している辞書を更新するステップとを伴う。一般に、プロセス200は、ユーザに関するソーシャル関係を決定するステップと、そのユーザとそのソーシャルネットワークのメンバとによって使用される語を識別するステップと、そのユーザとそのソーシャルネットワークのメンバがそれらの語を使用する頻度に基づいて、それらの語に重み付けを適用するステップと、それに応じて、そのユーザのあいまい性除去辞書を更新するステップとを伴う。
【0031】
初期のステップにおいて、プロセス200は、ユーザの識別を受信する(202)。例えば、ユーザは、自らの識別をサーバに送信するために、ソーシャルネットワーキングサイトにサインインすることが可能である。この識別は、そのユーザのコンピューティングデバイス上のクッキーから識別情報を取得することによって、そのユーザにユーザ名とパスワードとを提供させることによって、またはその他の知られている機構によってなど、様々な形で取得されうる。
【0032】
プロセス200は、次いで、ユーザのソーシャル関係を識別する。例えば、ソーシャルネットワーキングサーバは、「友人リスト」など、そのユーザと第1の等級関係を誰が有するかについてのデータを格納することが可能である。このソーシャルネットワーキングサーバは、そのユーザと同級生のメンバ、そのユーザと共通の関心を共有しているメンバ、またはその他の点でそのユーザと共通の1つもしくは複数のグループ内のメンバなど、そのユーザがその他のソーシャルネットワーキングメンバと共通して有するリンクに関するデータを格納することも可能である。
【0033】
プロセス200は、次いで、ユーザのキーワードを計算する(206)。かかるキーワードは、ユーザのコンテンツ(例えば、ユーザによって送信もしくは受信された電子メールまたはテキストメッセージ、そのユーザに関するソーシャルネットワークプロファイルページなどのウェブページなど)内に出現する語句もしくは語句、またはそのユーザのソーシャルネットワークに関するページもしくは通信に関するコンテンツなど、そのユーザに関連しうるその他の語もしくは語句であってよい。例えば、そのユーザの友人達は、それぞれ、その独特なキーワードを有する可能性がある。そのユーザの友人達が識別された後で、それぞれの友人のキーワードが決定されて、そのユーザのキーワードに対して比較されうる。いくつかの実装形態では、それらの友人のキーワードは、そのユーザも同じキーワードを有するかどうかを決定する前に、同じキーワードを有する複数の友人が存在するかどうかを決定するために互いと比較されうる。
【0034】
次いで、重み付けがユーザのキーワードに適用される(208)が、これらの重み付けは、キーワードを識別するプロセスの一環として適用されうる。一例では、それぞれのユーザは、すべての英語を話す人々に一般的に適用されることが意図される辞書など、単に一般的なグループ辞書であってよいデフォルト辞書から始めることができる。例えば、このデフォルト辞書は、公式文書のコーパス内または特定の機関からの文書内の語の使用の頻度を解析することによって作成可能である。このデフォルト辞書内の語は、重み付けがそのコーパス内の相対的な出現頻度を反映する状態で、そのコーパス内に出現する上位Xの語でありうる(この場合、Xは、その辞書を格納するために利用可能なスペースによって決定されうる)。上で述べたように、重み付けは、その他の語と組み合わせた語の出現頻度を反映することも可能である。次いで、ユーザに関する特定の文書(例えば、テキストメッセージ、電子メール、およびウェブページ)が解析可能であり、それらの文書内の語がデフォルト辞書に追加可能であり、かつ/またはそれらの文書内の語はデフォルト辞書内の語の重み付けを変更することが可能である。ユーザがその以前の使用パターンのいくつかを繰り返すことが推定されうるため、ユーザの個人ファイル内の語の存在によってもたらされるこれらの重み付けは、一般的な使用からの重み付けよりも、より大きい可能性がある。これらの重み付けは、次いで、第1のユーザの使用が語の得点に最大の影響を有し、友人達の使用が、そのソーシャルネットワーク内でそのユーザから1友人が離れるにつれてさらに後退する、より少ない影響を有するように、上で説明されたように、第1のユーザのソーシャルネットワーク内のその他のユーザの辞書を調べることによってさらに精緻化されうる。いくつかの実装形態では、これらの重み付けは、標準的な言語辞書に対して比較されうる。例えば、そのユーザのソーシャルネットワークが、語「their」を「thier」と綴る例がある場合、標準英語辞書に対する重み付けは、英語辞書内の語「thier」の欠如に基づいて、精緻化されうる。
【0035】
枠210において、そのユーザに属している辞書が更新される。かかる更新するステップは、探索エンジンなどのソースから取得された新しいキーワードを追加する(すなわち、探索クエリ内で最近使用されている用語を提供する)ステップ、および辞書内の新しい語またはすでに存在している語に関する重み付けを変更するステップも伴う。
【0036】
ユーザの辞書は、周期的にまたは連続的に更新されることも可能である。例えば、そのユーザがテキストメッセージをタイプするたびに、または探索クエリを提出するたびに、その提出内の用語がユーザの辞書に追加可能であり、または、そのユーザがすぐに再び当該用語を繰り返す可能性があるという推定に基づいて、当該用語の評価が劇的に増大されることも可能である。また、システムは、スケジュールベースで(例えば、毎晩)ソーシャルネットワーク内のその他のユーザに関する辞書データにアクセスすることが可能であり、そのネットワーク内のすべてのユーザに関する辞書を更新することが可能である。そのような更新された辞書データは、当該システムと共に格納されてよく、かつその中で、その辞書も、やはり、またはその代わりに、遠隔デバイス上に格納されるシステム内に格納されてもよく、辞書データは、そのユーザの遠隔デバイスを用いて次回ログオンするときに同期されうる。
【0037】
このようにして、プロセス200は、ユーザのソーシャルネットワークのメンバに関するデータを考慮に入れることによって、あいまい性除去辞書がユーザ向けに個人化されうる一例を提供する。かかるデータは、大きな母集団に関する一般的な使用データよりも、そのユーザに対してさらにより特定であるため、かつそのユーザだけに関する使用データよりも量がより多いため、特に有利な可能性がある。結果として、事実上、ユーザがその友人から手がかりを見つけて、友人達がすでに使用している新しい語を使用し始めるとき、そのデータがすでにその辞書内にあるように、ユーザの辞書に対して予測可能な更新を提供することが可能である。
【0038】
図2Bは、ソーシャルネットワーキングデータを用いてユーザ辞書を更新するためのプロセス218の一例を示す流れ図である。プロセス218は、探索クエリをコンピューティングデバイス内に記入しているユーザに予測的なテキストコンプリーションを提供するための一例を示す。ユーザに示される予測情報は、ユーザのソーシャルネットワークのメンバによる語の使用に一部基づいて選択される。
【0039】
初期のステップにおいて、プロセス218はクエリを受信する(220)。例えば、ユーザは、一般的なウェブ探索エンジン、またはソーシャルネットワーキングウェブサイト向けの探索ツールなどの専門化された探索エンジンなど、探索エンジンにクエリを提出することが可能である。かかる提出、または別の提出は、そのユーザが、ユーザのコンピューティングデバイス上に記入されたテキストに関するテキストのあいまい性除去の精度を改善するデータを提供されることを(明示的に、または暗示的に)望むことをシステムに示すことができる。
【0040】
プロセス218は、次いで、そのユーザが有効であるかどうかを決定する(222)。すなわち、システムは、何人かのメンバに関する情報を格納することが可能であり、プロセス218は、そのユーザがそのようなメンバであることを検証することが可能である。例えば、ユーザは、サイトに手動でログオンすることによって、またはそのコンピュータが、クッキーもしくはその他の類似の機構からなど、情報をサーバに自動的に送信することによってなど、そのユーザのパスワードをソーシャルネットワーキングサーバまたはその他の形態のサーバに送信することが可能である。
【0041】
プロセス218が、そのユーザが有効であることを確認すると、プロセス218は、そのユーザに関連するソーシャル情報を識別する(226)。例えば、サーバシステムは、そのユーザのプロファイル、そのユーザの辞書、そのユーザのブログ、そのユーザのソーシャル関係、およびそのユーザのグループなど、そのユーザに特定のソーシャル情報を格納することが可能である。このソーシャル情報は、1つのソーシャルネットワーキングサーバ上に一緒に格納されてよく、または複数のサーバを通して格納されてもよい。その他の実装形態では、ソーシャル情報のうちのいくつかまたはすべては、ユーザのデバイス上に格納されてよく、写しがユーザのデバイスとサーバシステムとの間で格納されて、ユーザのデバイスとサーバシステムとの間で同期されうる。
【0042】
ユーザに関するソーシャル情報が識別されて、プロセス218は、そのソーシャルネットワークに関するキーワードを決定する(228)。例えば、ソーシャルネットワーキングサーバは、そのユーザとソーシャルに関係する人々に対応する文書(例えば、ウェブページ、電子メール、またはテキストメッセージ)から語を取り出すことが可能である。かかるキーワードは、辞書内にすでに存在しない場合、ユーザの辞書に追加されうる。
【0043】
キーワードのリストが編集された後で、プロセス218は、キーワードのそれぞれに関連する重み付けを決定する(230)(そして、辞書内にすでにある用語に適用される重み付けを変更することも可能である)が、これらの重み付けは、キーワードを識別するのと同時に発生してもよい。例えば、数値がキーワードに割り当てられることが可能である。上でより詳細に説明されたように、それぞれのキーワードに関連する値を決定するために、様々な実装形態が使用されうる。
【0044】
プロセス218は、次いで、ユーザ辞書と共に使用するためのキーワードと、関連する重み付け値とを識別することによってなど、辞書に関する用語の分類に関するデータを戻す(232)。プロセス218は、次いで、新しいソーシャルデータを用いて辞書を更新する(234)。例えば、サーバは、ユーザのソーシャル関係を使用して演算された新しいデータを使用して、ユーザの辞書を編集することが可能である。
【0045】
ユーザの辞書が編集されると、プロセス218は、辞書の更新をトリガした元の入力に続くユーザ入力を受信する(236)。例えば、ユーザは、その入力のあいまい性が除去されることを意図して数を入力することが可能である。ユーザがテンキー上で2-2-7を入力する場合、このアプリケーションは、テンキー上の数2に対してA、B、またはCなどの字をそれぞれの数字に割り当てることが可能である。ユーザは、QWERTYキーボードを使用して字を入力することも可能である。同様に、ユーザは、スタイラスによって入力された形に基づいて、字を決定することができるプログラム内でスタイラスを用いて字を入力することも可能である。下でさらに議論される、もう1つの実施形態では、このアプリケーションは、ユーザ入力として話し言葉を使用することが可能である。
【0046】
プロセス218は、次いで、辞書を用いてユーザ入力のあいまい性を除去する(238)。このあいまい性除去は、例えば、ユーザによる入力に整合しうる、辞書内のすべての候補用語を識別することによって、次いで、それぞれの可能性のある候補をランク付けることによって、発生しうる。かかるあいまい性除去は、ユーザが新しい文字を入力するたびに、知られている様式で更新されうる。
【0047】
このあいまい性除去は、異なるデバイス内で発生することが可能である。例えば、あいまい性除去サーバは、辞書を使用して入力のあいまい性を除去することが可能であり、示唆される語のリストがユーザにとって迅速に出現するように、更新された情報をユーザのコンピューティングデバイスに送信することが可能である。このあいまい性除去は、ユーザのコンピューティングデバイス上で局所的に発生することも可能であり、これは、応答時間をより速くすることが可能であるが、場合によっては、辞書のサイズを限定する可能性もある。あいまい性除去のある部分は、ユーザのデバイス上で局所的に発生することが可能であり、ある部分はサーバ上で発生することも可能である。例えば、ユーザのデバイスは、そのユーザが最近そのデバイスに入力した語を追跡することが可能であり(また、所定の期間の後で、それらの語を退去させることが可能であり)、かかる語を示唆される語コンプリーションのドロップダウンリストの最上位に提供することが可能であり、一方、そのリスト内の語のリマインダは、サーバにおいて、あいまい性除去辞書を使用して提供可能である。
【0048】
枠240において、プロセス218は、予測されたコンプリーション(predicted completion)を表示することが可能である。例えば、述べられたように、アプリケーションは、その表示が、ユーザが現在タイプしている領域の真上か真下に来る状態で、ユーザの辞書からのキーワードのリストをその関連する値の順序で表示することが可能である。その他の実施形態では、このアプリケーションは、ユーザが現在タイプしているテキスト枠のすぐ上に表示された最高の関連値を有するキーワードを表示することが可能である。
【0049】
ステップ242において、プロセス218は、示唆されたコンプリーションがユーザによって受け入れられているかどうかを決定する(242)。例えば、ユーザは、(例えば、入力を押すことによって、またはマウスボタンをクリックすることによって)示唆されたコンプリーションを明示的に受け入れることが可能である。その他の実装形態では、示唆されたコンプリーションを受け入れることは、ユーザが特定の語をタイプし終わったことを示すために、スペースをタイプすることによってなど、暗示的でありうる。
【0050】
ユーザが示唆されたコンプリーションを受け入れることを望まない場合、ユーザは、単にタイプを続けて、示唆のすべてを無視することが可能である。ユーザは、タイプの際に、1つの文字をバックアップして、その入力された文字の新しいより短い列に関して示唆された解決策を表示させるために、削除キーを押すことも可能である。ユーザが示唆されたコンプリーションを受け入れることを望まない状況において、プロセス218は、ユーザが新しく示唆されたコンプリーションを受け入れるまで、または辞書内のいずれのキーワードにも整合しない語を入力するまで、ステップ236に戻ることが可能である。
【0051】
ユーザが予測されたコンプリーションもしくは示唆されたコンプリーションを受け入れると、または新しい語を入力すると、プロセス218は、新しいデータを用いて辞書を更新する(244)。例えば、受け入れられた、予測されたコンプリーションは、キーワードに関連する値を定数だけ増大させることが可能である。例えば、ユーザが選択する用語に関する相対的な重み付けは、ユーザの辞書内で増大されてよく、かつ/または選択された用語は、ユーザが最近入力した用語の別個のグループに追加されてよく、この場合、このグループは、示唆されるコンプリーションの任意の後のリストの最上部に配置されうる。かかるリストは、ユーザが、そのユーザによって使用される用語を一度使用し、次いで、二度と使用しない場合、当該用語がリストの最上部から消えるように、タイムディケイ(time decay)と関連付けられることが可能である。
【0052】
1つの実装形態では、ユーザは、ユーザデバイスに入力するために話し言葉を使用することが可能である。あいまい性除去は、アプリケーションが、ユーザがどの語を個々の音と関連付けるかを決定する際に支援することができる。ユーザは、そのデバイス内に話されたデータを入力し続けることによって、予測されたコンプリーションを暗示的に受け入れることが可能である。ユーザはまた、「はい」または「正確」などの音声コマンドを通じて、予測されたコンプリーションを明示的に受け入れることも可能である。その他の実施形態では、ユーザは、キーパッド活動またはマウス活動など、非言語的手段を通して語を受け入れることも可能である。
【0053】
図3Aは、クライアント302とサーバ304との間の相互作用300の一例を示すシーケンス図である。本明細書で示されるプロセスは、図2Aに示されたプロセスと類似し、あいまい性除去情報をコンピュータユーザに提供する際に、クライアントとサーバシステムとが相互に作用することが可能であり、かつユーザが属するソーシャルネットワークのメンバによる語の使用量を使用して、かかる情報を更新することが可能な、例示的な様式をより明示的に示す。一般に、これらの相互作用は、クライアントがサーバから辞書情報を要求するステップと、サーバが、ソーシャルネットワークとのユーザの関係に基づいて、かかる情報を取り出すステップと、サーバが、辞書に関してクライアントに更新を提供するステップとを必要とする。クライアントは、語コンプリーションあいまい性除去を改善するために、更新された辞書を使用することが可能である。
【0054】
図面において、クライアント302は、当初、ユーザの個人辞書など、辞書にアクセスするための要求(枠306)をサーバ304に送信する。次いで、サーバ304は、ソーシャルネットワーク内のユーザの関係を識別し(枠308)、それらの関係に基づいて、ユーザキーワードを計算する(枠310)。いくつかの実装形態では、サーバ304は、それぞれの人物のデータを通じて探索を実行することによって、そのユーザにソーシャルに関係する人々に関するキーワードを決定することが可能である。例えば、ソーシャルネットワークのメンバはプロファイルを有することが可能であり、サーバ304は、キーワードを決定するために、そのプロファイル内のテキストまたはその他のデータを通して種類を解析することが可能である。
【0055】
サーバ304は、次いで、それらのキーワードに基づいて、用語に重み付けを適用して(枠312)、新しい辞書データまたは追加の辞書データを生成し、その新しい辞書データをクライアントに送信する(枠314)。
【0056】
サーバ304は、それらのキーワードを決定して、様々な要因を使用して、それぞれのキーワードに重み付けを適用する(枠312)ことが可能である。例えば、サーバ304は、ユーザと、そこから語が取得されているユーザのソーシャルネットワークのメンバとの間の分離の程度に基づいて、用語に重み付けを適用することが可能である。これらの重み付けは、やはり、またはその代わりに、ユーザが有する友人の数に基づいてもよい。同様に、これらの重み付けは、ユーザに関連するデータと友人のデータとの間の類似性に基づいてもよい。これらの重み付けは、その関係データ内に同じキーワードを有する友人の数に基づいてもよい。
【0057】
サーバ304は、次いで、重み付けされた用語を利用して、その情報を辞書データ内にフォーマットし、辞書データをクライアント302に送信する(枠314)。クライアント302は、ユーザ辞書を更新する(枠316)ために、この新しい辞書データを使用することが可能である。例えば、クライアント302は、新しい辞書データを、クライアント302上にすでに格納された既存の辞書に追加することが可能である。いくつかの実装形態では、新しい用語は、これまでの辞書に追加されうる。その他の実装形態では、新しい辞書データは、これまでの辞書に取って代わることが可能である。さらにその他の実施形態では、クライアント302は、サーバ304からの新しい重み付けを、元の辞書内にすでに存在する、対応する用語に適用することが可能である。その他の実施形態では、辞書はサーバ304に残ってよく、ユーザがタイプするにつれて、データはクライアント302とサーバ304との間で交わされてよく、クライアント302によって示唆される語の選択肢が提示される。
【0058】
図3Bは、クライアント348と、あいまい性除去サーバ350と、ソーシャルサーバ352との間の相互作用320の一例を示すシーケンス図である。この例では、あいまい性除去エンジンとソーシャルデータを共有するシステムを実装するための一例を提供するために、異なる専門化サーバグループ同士の間の特定の相互作用が示される。詳細には、ソーシャルサーバ352は、一般的なソーシャルネットワーキングシステムの一部であってよく、ユーザ向けのあいまい性除去辞書を構築または更新する際に、あいまい性除去サーバが、ユーザのソーシャルネットワークと、そのネットワークのメンバによる語の使用とに関する情報を取得できるように、アプリケーションプログラミングインターフェース(API)を経由して、あいまい性除去サーバ350と通信することが可能である。このようにして、ユーザがシステム内にテキストを入力している過程にあるとき、あいまい性除去サーバ350は、ユーザの意図をより容易かつ正確に予測することが可能である。
【0059】
この例示的なプロセスにおいて、クライアント348は、当初、辞書データに関する要求(枠322)をあいまい性除去サーバ350に送信する。あいまい性除去サーバ350は、クライアント348上に格納されたクッキーからの情報によってなど、クライアント348に関連するユーザを識別する(枠324)。あいまい性除去サーバ350は、次いで、ソーシャルサーバ352からソーシャル情報を要求する(枠326)。あいまい性除去サーバ350は、クライアント348を使用しているユーザに提供されることになる辞書データを構築または更新する、より大きなプロセスの一環として、これを行うことが可能である。例えば、あいまい性除去サーバ350は、あいまい性除去辞書内で語または語句をランク付けするとき、オンラインニュースソース内の語の使用、公衆からの最近の探索エンジンクエリ内の語の使用量をよびユーザ自身による使用など、いくつかの要因を考慮に入れることが可能である。要求をソーシャルサーバ352に提出することは、それにより、クライアント348のユーザによる可能な将来の使用を反映しうるデータを獲得するさらに別の機構でありうる。
【0060】
ソーシャルサーバ352は、次いで、クライアント348のユーザに関するソーシャルネットワークを識別して(枠328)、ユーザのソーシャルネットワークのメンバに関連する文書を解析することによってなど、ソーシャルネットワークに関するキーワードを決定し(枠330)、それらのキーワードに関する重み付けを決定し(枠332)、ソーシャルデータをあいまい性除去サーバ350に戻す(枠334)。当該データは、ソーシャルネットワークのユーザのプライバシを保護するために、様々な形態をとりうる。例えば、あいまい性除去サーバ350が、ソーシャルネットワークの様々なメンバの中から誰がそれらの語を使用したかを決定することができないように、戻されたデータは、語と、それらの語に関する関連する評価情報とだけを含みうる。また、ソーシャルサーバ352は、ユーザのソーシャルネットワークのメンバの識別を機密扱いすることが可能である。
【0061】
あいまい性除去サーバ350は、次いで、カスタム使用データを先のあいまい性除去辞書と統合する(枠336)。例えば、この先の辞書は、一般的な英語の一般的な使用に基づいて、語と語句とをランク付ける一般的な辞書であってよい。このカスタム使用データは、ユーザのソーシャルネットワークのメンバによる過去の使用を反映するデータを含めて、辞書に関する様々な更新された情報を含みうる。カスタム使用データを統合した後で、あいまい性除去サーバ350は、新しい辞書データをクライアント348に送信する(枠338)。図に示される実施形態では、クライアント348は、辞書(枠340))を更新して、ユーザから入力を受信して(枠342)、その予測されたコンプリーションを表示する(枠344)。このようにして、クライアントデバイスは、そのユーザに、現在、探索クエリを入力しているユーザの人々によって推論されるように、ニュースにおける最近の事象(event)によって決定されるように、かつユーザのソーシャル集まりによる語および語句の使用によって決定されるように、ユーザの独自の使用により緊密に整合する、テキスト入力の予測されるコンプリーションを提供することが可能である。
【0062】
クライアント348は、あいまい性除去サーバから辞書データを自動的に要求すること(枠322)が可能である。例えば、クライアント348は、ユーザがクライアント348上で特定のアプリケーションを開くときはいつでも、その要求を送信することが可能である。もう1つの実施形態では、ユーザは、そのコンピューティングデバイス上で辞書データを更新するための要求を送信することが可能である。逆に、クライアント348は、毎日、毎週、または毎月など、周期ベースで辞書データに関する要求を送信することが可能である。
【0063】
図4Aは、ユーザ入力のあいまい性を除去するために、辞書を更新するためのシステム400の概略図である。一般に、システム400は、ソーシャルネットワークのメンバである様々なユーザが、1つもしくは複数のあいまい性除去辞書を作成または更新する際に使用される、そのソーシャル関係からの情報を有することを可能にする。
【0064】
ユーザは、セル電話402、ラップトップコンピュータ410、およびスマートフォン412など、様々な機構によってシステムと相互に作用することが可能である。セル電話402は、ユーザがキーを押すとき、システムが、そのユーザが何の文字を入力しようとしているかを確実に決定することができないように、コンストレインドキーボードを含みうる。かかる入力は、したがって、あいまい性除去から利益を得ることが可能である。ラップトップコンピュータ410およびスマートフォン412は、逆に、完全なQWERTYキーボードを有することが可能であるが、ユーザが語または語句の一部だけを入力したとき、ユーザのテキスト入力は、それらの機構に対してあいまいな可能性がある。そのような状況において、ユーザのテキスト入力のあいまい性除去は、ユーザが入力している過程にある語をコンプリーションすることによって、有益になりうる。
【0065】
あいまい性除去サーバ406は、様々な遠隔デバイス上でユーザによって入力されたテキストのあいまい性を除去するのに役立つことが可能である。サーバ406は、例えば、デバイス自体の上にあいまい性除去辞書に関するデータを提供することが可能であり、またはユーザがタイプするにつれて、ネットワーク404上に示唆されたテキスト入力コンプリーションを提供することも可能である。あいまい性除去サーバ406は、1つまたは複数のサーバを含むことが可能であり、それによって、ユーザが探索クエリなどのテキストをページ内にタイプするにつれて、ウェブページを用いて示唆が表示される、探索エンジンなどのシステムの一部であってもよい。同じように、ユーザは、ツールバー上の探索欄内にテキストをタイプすることが可能であり、ツールバーアプリケーションは、ユーザがタイプするにつれて、示唆される回答を表示するために、あいまい性除去サーバ406と相互運用することが可能である。
【0066】
この例では、あいまい性除去エンジンは、あいまい性除去サーバ406と同じ領域の一部であってよく、または異なる領域からであってもよいソーシャルサーバ408のグループと通信することも可能である。上で詳細に説明されたように、かつあいまい性除去サーバ406とソーシャルサーバ408との間の矢印によって概略的に示されるように、あいまい性除去サーバは、ユーザに関する辞書データを生成する過程で、ユーザのソーシャルネットワークに関する情報を探すことが可能である。例えば、あいまい性除去辞書は、ユーザに関する識別子と、あいまい性除去辞書がデータの合法的なリクエスタであることを示す資格とをソーシャルサーバ408に渡すことが可能である。これらのソーシャルサーバは、次いで、ユーザのソーシャルネットワークに関連する文書上の語を識別して、それらの語に重み付けを適用する際に、上で議論された活動に類似した活動を実行することが可能である。ソーシャルサーバ408は、次いで、(「a」、「the」、「and」など、一般的な語が除去された)識別された語のリストと、それらの用語に関連する重み付けとをあいまい性除去サーバ406に再び渡すことが可能である。戻された情報は、次いで、あいまい性除去サーバ406および/またはデバイス402、410、412のうちの1つの上に格納されうるユーザのあいまい性除去辞書の内に組み込まれることが可能である。
【0067】
図4Bは、コンピューティングデバイス上にデータを入力しているユーザにあいまい性除去を提供するシステム420の概略図である。システム420は、 図4Aのシステム400に類似しているが、この例では、特定のあいまい性除去サーバ426により多く重点が置かれる。
【0068】
この場合も、システム420は、システム400のように、インターネットなど、ネットワーク424を介して、いくつかのサーバに電気的にアクセスすることが可能なコンピュータ422などの遠隔デバイスを含む。ウェブ探索サービスなどのようなサービスは、ユーザによるテキスト入力を迅速かつよりエラーのないものにするために、かかるテキスト入力のあいまい性を除去するサービスによって補強可能である。この例では、これらのあいまい性除去サービスは、あいまい性除去サーバ426によって提供される。
【0069】
サーバ426は、ユーザがコンピュータ422など、ユーザの遠隔デバイス内にタイプするにつれて、サーバ426がそのデバイスにあいまい性除去を提供することを可能にする、いくつかの構成要素を含む。例えば、予測モジュール434は、ユーザが何をタイプしているかに関する情報を受信して、予測されるコンプリーションに関するデータをユーザのデバイスに戻す。モジュール434は、ツリー構造を横断することによって動作することが可能であり、この場合、ツリー構造内のそれぞれのノードは、ユーザによって入力される文字であり、テキスト入力に関する解決策は、そのツリー内の現在のノードの下にあるすべての語である。また、語に関するそれぞれの入力は、そのユーザがタイプするにつれて、そのユーザに示されうる、予測される入力のリスト内に、その他の可能性のある解決策と比べて、その語がどのように表示されるかを決定する重み付けを含みうる。かかる構造は、文書のコーパスを通して語の使用量を反映するマスタ辞書436など、1つまたは複数の辞書として格納されてよく、上で説明されたように、ユーザの辞書がカスタマイズされる前に、ユーザ向けの最初の辞書として使用されうる。ユーザデータ440は、次に、システム内の様々なユーザに関連する、いくつかのパラメータを格納することが可能であり、それぞれのユーザに関するカスタム辞書データを格納することも可能である。カスタム辞書データは、マスタ辞書436の代わりに使用可能であり、またはマスタ辞書436を補強するためにも使用可能である。
【0070】
かかるカスタム辞書は、辞書ビルダ432によって構築されうる。この辞書ビルダは、ユーザのためにカスタム辞書を構築する際に、いくつかの異なるソースに依存することが可能であり、この場合、それらのソースは、そのユーザが、近い将来、タイプする可能性がある語または語句を反映するために選択される。一例では、最近の新聞および雑誌の記事において使用された語と、それらの語が使用された頻度とを決定するために、それらの記事など、現在の事象データ442が解析されうる。かかる「新鮮な」コンテンツは、探索を行ったときなど、ユーザがそのデバイス内にタイプする可能性がある現在の事象問題の種類をおそらく反映する。同様に、特に、その入力が、高まっている流行に関する場合、コンピュータ422のユーザが、その他の人々によって行われた入力を繰り返す可能性が多少あるという推定に基づいて、ユーザが探索エンジンに提出したクエリ用語を識別するために、クエリログ438が解析されうる。
【0071】
辞書ビルダは、ソーシャルネットワークデータ430など、外部データソースに依存することも可能である。この図では、ソーシャルネットワークインターフェース433が示され、ソーシャルネットワークインターフェース433は、ソーシャルサーバ428のグループから、語の使用量を反映する情報を要求するようにプログラムされる。この要求は、あいまい性除去サーバ426がユーザを識別し、あいまい性除去サーバ426自体を識別する以外に何も行わないことを必要としうる一般的なAPIに従ってよい。これらのソーシャルサーバは、上で議論された処理のような処理を実行することが可能であり、そのデータがユーザのソーシャルネットワークによる使用を反映する、ユーザのあいまい性除去辞書に追加されるためにフォーマットされたデータなど、ユーザのソーシャルネットワーク430に関するデータを戻すことが可能である。おそらく、友人達による使用は、そのユーザによる将来の語の使用量を多少予測する。
【0072】
このようにして、システム420は、カスタマイズされたテキスト入力支援をユーザに提供することが可能である。このカスタマイズは、最近のニュース記事および探索クエリなど、一時的な情報に関する可能性があるが、そうでない場合に可能であろうあいまい性除去よりも、より正確なあいまい性除去を提供できるように、ソーシャルな照準が定められることも可能である。
【0073】
いくつかの実装形態では、テキストのあいまい性除去は、コンピュータ422からのデータを使用して発生しうる。例えば、ユーザは、ワードプロセッシング文書、インスタントメッセージ、映画、連絡先、およびカレンダアイテムなどのファイルをコンピュータ422上に有する場合がある。これらの項目内に含まれたデータは、データがコンピュータ422とあいまい性除去サーバ426との間で共有されるとき(例えば、コンピュータ422があいまい性除去サーバ426と同期するとき)、あいまい性除去サーバ426にさらなるデータを提供することが可能である。一例では、カレンダが「サマンサの誕生日」という項目を含む場合、「サマンサ」および「誕生日」という用語がユーザデータ440に追加されうる。同様に、ユーザのブラウジング履歴がデータとして使用されることも可能である。例えば、ユーザのキャッシュデータがespn.comの野球ファイルを含む場合、テキスト内、画像内、またはファイル名内での「野球」という語の使用は、辞書ビルダ432によって使用されうる。データは、移動体デバイス、メディアプレイヤ、またはその他のコンピュータなど、その他のクライアントデバイスから提供されることも可能である。
【0074】
同様に、ネットワーク424に接続されたその他のサーバは、ユーザデータ440にさらなるデータを提供することが可能である。例えば、ユーザは、あいまい性除去サーバ426またはソーシャルサーバ428とは別個のサーバ上に、電子メールアカウントまたはインスタントメッセージングアカウントなどの情報を格納するアカウントを有する場合がある。別個のサーバからのデータは、ユーザデータ440内であいまい性除去サーバ426のデータと同期されうる。いくつかの実装形態では、ユーザは、より多くのデータをあいまい性除去サーバ426に提供するために、様々なサーバ上にアカウントを追加することが可能である。一例では、ユーザは、Yahoo!電子メールアカウントおよびAOLインスタントメッセンジャアカウントをあいまい性除去サーバ426にリンクさせることが可能である。データは、サーバおよびクライアントデバイスを含めて、複数のソースから提供可能である。例えば、移動体デバイスおよび別個のサーバからのユーザアカウントは、両方ともユーザデータ440にデータを提供することができる。
【0075】
次に図5を参照すると、ソーシャルなあいまい性除去辞書を実装する例示的なデバイス500の外観が示される。簡単に、とりわけ、デバイス500は、移動体デバイスのユーザの要求時に、ソーシャルあいまい性除去辞書にアクセスして、これを更新するように構成されたプロセッサを含む。
【0076】
より詳細には、デバイス500のハードウェア環境は、テキスト、画像、およびビデオをユーザに表示するためのディスプレイ501と、テキストデータおよびユーザコマンドをデバイス500内に入力するためのキーボード502と、ディスプレイ501上に表示されたオブジェクトを指摘、選択、および調整するためのポインティングデバイス504と、アンテナ505と、ネットワーク接続506と、カメラ507と、マイクロフォン509と、スピーカ510とを含む。デバイス500は外部アンテナを示すが、デバイス500は、ユーザには見えない内部アンテナを含んでもよい。
【0077】
ディスプレイ501は、デバイス500によって使用されるソフトウェアアプリケーションと、デバイス500を操作するために使用されるオペレーティングシステムプログラムとに関するユーザインターフェースを構成するビデオ、グラフィックス、画像、およびテキストを表示する。ディスプレイ501上に表示されうる可能な要素の中には、新しいメッセージの存在についてユーザに警告する新しいメールインジケータ511、電話呼が受信されていること、行われていること、または発生していることを示すアクティブ呼インジケータ512、データを送受信するためにデバイス500によって現在使用されているデータ標準を示すデータ標準インジケータ514、信号強度バーを使用することによってなど、アンテナ505を経由して受信された信号の強度の測定値を示す信号強度インジケータ515、残りの電池寿命の測定値を示す電池寿命インジケータ516、または現在の時間を出力するクロック517である。
【0078】
ディスプレイ501は、ウェブブラウザアプリケーションアイコン519、電話アプリケーションアイコン520、探索アプリケーションアイコン521、連絡先アプリケーションアイコン522、マッピングアプリケーションアイコン524、電子メールアプリケーションアイコン525、またはその他のアプリケーションアイコンなど、ユーザに利用可能な様々なアプリケーションを表すアプリケーションアイコンを示すことも可能である。1つの例示的な実装形態では、ディスプレイ501は、16ビット以上の色が可能なクオータビデオグラフィックスアレイ(quarter video graphics array)(QVGA)薄膜トランジスタ(TFT)液晶ディスプレイ(LCD)である。
【0079】
ユーザは、ソーシャルあいまい性除去辞書を提供するオペレーティングシステムおよびアプリケーションを操作し制御する目的で、コマンドおよびデータを入力するために、キーボード(または「キーパッド」)502を使用する。キーボード502は、単独で選択されたとき、英数字「Q」および「W」と関連付けられるか、もしくはキー529と組み合わせて押されたとき、文字「*」および「1」と関連付けられるキー526ならびに527など、英数字に関連する標準キーボードボタンまたは標準キーボードキーを含む。単一のキーは、特別な文字、または、オペレーティングシステム、またはオペレーティングシステムによって起動されるアプリケーションの状態に基づいて、ラベル付けされてない機能を含む機能と関連付けられることも可能である。例えば、アプリケーションが数字の入力を求めるとき、キー527だけを選択することは、「1」を入力させることができる。
【0080】
英数字キーパッドに通常関連するキーに加えて、キーボード502は、受信された呼を応答させる、もしくは新しい呼を発生させる呼確立キー530、アクティブな呼を終了させる呼終了キー531、メニューをディスプレイ501内に出現させるドロップダウンメニューキー532、これまでアクセスされたネットワークアドレスに再度アクセスさせる後方ナビゲーションキー534、アクティブなウェブページをお気に入りサイトのブックマークフォルダ内に配置させる、もしくはブックマークフォルダを出現させるお気に入りキー535、デバイス500上で起動されたアプリケーションを所定のネットワークアドレスに誘導させるホームページキー536、または多方向ナビゲーション、アプリケーション選択、ならびに電力制限および容量制限を提供するその他のキーなど、その他の特別な機能キーも含む。
【0081】
ユーザは、デバイス500およびデバイス500上で起動されたアプリケーションとの相互作用、ならびにデバイス500およびデバイス500上で起動されたアプリケーションの制御の一環として、ディスプレイ501上に表示されたグラフィックスおよびテキストオブジェクトを選択して、調整するために、ポインティングデバイス504を使用する。ポインティングデバイス504は、任意の適切なタイプのポインティングデバイスであり、ジョイスティック、トラックボール、タッチパッド、カメラ、ビデオ入力デバイス、ディスプレイ501と組み合わせて実装されるタッチスクリーンデバイス、または任意のその他の入力デバイスでありうる。
【0082】
外部アンテナであってよく、または内部アンテナであってもよいアンテナ505は、二点間無線通信、無線ローカルエリアネットワーク(LAN)通信、または位置決定を実装する無線周波数(RF)信号を送受信するために使用される指向性アンテナまたは全方向性アンテナである。アンテナ505は、特化モバイル無線(SMR)周波数帯域、セルラ周波数帯域、またはパーソナルコミュニケーションサービス(PCS)周波数帯域を使用して、二点間無線通信を円滑にすることが可能であり、任意の数のデータ標準を使用して、データの送信を実装することが可能である。例えば、アンテナ505は、無線広帯域(WiBro)、ワールドワイドインターオペラビリティフォーマイクロウェーブアクセス(WiMAX)、5GPPロングタームエボリューション(LTE)、ウルトラモバイルブロードバンド(UMB)、ハイパフォーマンス無線メトロポリタンネットワーク(HIPERMAN)、アイバースト、すなわち、大容量空間分割多元接続(HC-SDMA)、高速OFDMパケットアクセス(HSOPA)、高速パケットアクセス(HSPA)、HSPAエボリューション、HSPA+、高速アップロードパケットアクセス(HSUPA)、高速ダウンリンクパケットアクセス(HSDPA)、汎用アクセスネットワーク(GAN)、時分割・同期・符号分割多重アクセス(Time Division-Synchronous Code Division Multiple Access)(TD-SCDMA)、エボリューションデータオプティマイズド(すなわち、エボリューションデータオンリー)(EVDO)、時分割・符号分割多重接続(TD-CDMA)、自由なモバイルマルチメディアアクセス(Freedom Of Mobile Multimedia Access)(FOMA)、ユニバーサル移動体通信システム(UNITS)、広域符号分割多元接続(W-CDMA)、GSMエボリューションのための拡張データ転送速度(EDGE)、拡張GPRS(EGPRS)、符号分割多元接続2000(CDMA2000)、広帯域統合ディスパッチ強化ネットワーク(WiDEN)、高速回線交換データ(HSCSD)、汎用パケット無線サービス(GPRS)、パーソナルハンディフォンシステム(PHS)、回路交換データ(CSD)、パーソナルデジタルセルラ(PDC)、CDMAone、デジタルアドバンスドモバイルフォンシステム(Digital Advanced Mobile Phone System)(D-AMPS)、統合デジタル強化ネットワーク(IDEN)、移動体通信用グローバルシステム(GSM)、データTAC、Mobitex、セルラデジタルパケットデータ(CDPD)、Hicap、アドバンスドモバイルフォンシステム(AMPS)、ノルディックモバイルフォン(Nordic Mobile Phone)(NMP)、カーラジオ電話(Autoradiopuhelin)(ARP)、Autotelすなわち公衆自動陸上移動体(PALM)、移動式電話システムD(Mobiltelefonisystem D)(MTD)、公的陸上移動電話方式(OLT)、最新移動体電話システム(AMTS)、改善された移動体電話サービス(Improved Mobile Telephone Service)(IMTS)、移動体電話システム(MTS)、プッシュツートーク(PTT)、またはその他の技術などの技術を使用して、データがデバイス500と基地局との間で送信されることを可能にできる。W-CDMAネットワーク、HSUPAネットワーク、GSMネットワーク、GPRSネットワーク、およびEDGEネットワークを経由した通信は、例えば、QUALCOMM RTR6285(商標)トランシーバおよびPM7540(商標)電力管理回路を有するQUALCOMM MSM7200Aチップセットを使用して発生しうる。
【0083】
無線または有線のコンピュータネットワーク接続506は、モデム接続であってよく、イーサネット(登録商標)を含むローカルエリアネットワーク(LAN)接続であってもよく、またはデジタル加入者線(DSL)、ケーブル高速インターネット接続、ダイアルアップ接続、T-1回線、T-3回線、光ファイバ接続、もしくは衛星接続など、広域エリアネットワーク(WAN)接続であってもよい。ネットワーク接続506は、LANネットワーク、企業または政府のWANネットワーク、インターネット、電話網、またはその他のネットワークに接続することが可能である。ネットワーク接続506は、有線コネクタまたは無線コネクタを使用する。例示的な無線コネクタは、例えば、INFRARED DATA ASSOCIATION(IrDA)無線コネクタ、Wi-Fi無線コネクタ、光無線コネクタ、米国電気電子学会(IEEE)標準802.11無線コネクタ、(BLUETOOTHバージョン1.2コネクタ、もしくはバージョン5.0コネクタなど)BLUETOOTH無線コネクタ、近距離無線通信(NFC)コネクタ、直交周波数分割多重化(OFDM)超広帯域(UWB)無線コネクタ、時間変調超広帯域(TM-UWB)無線コネクタ、またはその他の無線コネクタを含む。例示的な有線コネクタは、例えば、IEEE-1394 FIREWIREコネクタ、(ミニB USBインターフェースコネクタを含めて)ユニバーサルシリアルバス(USB)コネクタ、シリアルポートコネクタ、パラレルポートコネクタ、またはその他の有線コネクタを含む。もう1つの実装形態では、ネットワーク接続506およびアンテナ505の機能は、単一の構成要素に統合される。
【0084】
カメラ507は、デバイス500がデジタル画像を捕捉するのを可能にし、スキャナ、デジタルスチルカメラ、デジタルビデオカメラ、その他のデジタル入力デバイスであってよい。1つの例示的な実装形態では、カメラ507は、相補的な金属酸化膜半導体(CMOS)を利用する5メガピクセル(MP)のカメラである。
【0085】
マイクロフォン509は、デバイス500が音声を捕捉するのを可能にし、全方向マイクロフォン、単方向マイクロフォン、双方向マイクロフォン、ショットガンマイクロフォン、または音声を電気信号に変換する、その他のタイプの装置であってよい。マイクロフォン509は、例えば、ユーザが、デバイス500を経由した電話呼の間に、別のユーザに話しているとき、ユーザによって生成された音声を捕捉するために使用可能である。逆に、スピーカ510は、デバイスが、電気信号を、電話アプリケーションプログラムによって生成された、別のユーザからの音声、または呼出音アプリケーションプログラムから生成された呼出音などの音声に変換することを可能にする。さらに、デバイス500は図5において、ハンドヘルドデバイスとして例示されるが、別の実装形態では、デバイス500は、ラップトップ、ワークステーション、ミッドレンジコンピュータ、メインフレーム、埋込み式システム、電話、デスクトップPC、タブレットコンピュータ、PDA、またはその他のタイプのコンピューティングデバイスであってよい。
【0086】
図6は、デバイス500の内部アーキテクチャ600を例示するブロック図である。このアーキテクチャは、オペレーティングシステムまたはアプリケーションを備えるコンピュータ命令が処理される中央制御装置(CPU)601と、ディスプレイ501上にビデオ、グラフィックス、画像、およびテキストを表示するための通信インターフェースおよび処理機能を提供して、(ボタン、テキスト、およびリストなど)内蔵型制御のセットを提供し、多様なスクリーンサイズをサポートするディスプレイインターフェース602と、通信インターフェースをキーボード502に提供するキーボードインターフェース604と、通信インターフェースをポインティングデバイス504に提供するポインティングデバイスインターフェース605と、通信インターフェースをアンテナ505に提供するアンテナインターフェース606と、コンピュータネットワーク接続506を介して通信インターフェースをネットワークに提供するネットワーク接続インターフェース607と、通信インターフェースおよびカメラ507からデジタル画像を捕捉するための処理機能を提供するカメラインターフェース608と、マイクロフォン509を使用して、音声を電気信号に変換して、スピーカ510を使用して、電気信号を音声に変換するための通信インターフェースを提供する音声インターフェース609と、コンピュータ命令およびデータがCPU 601によって処理されるために揮発性メモリデバイス内に格納されるランダムアクセスメモリ(RAM)610と、基本的な入出力(I/O)、起動、またはキーボード502からのキーストロークの受入れなど、基本的なシステム機能のための不変低レベルシステムコードまたはデータが不揮発性メモリデバイス内に格納される読出し専用メモリ(ROM) 611と、オペレーティングシステム613、(例えば、ウェブブラウザアプリケーション、ウィジェットエンジンもしくはガジェットエンジン、ならびに/または、必要に応じて、その他のアプリケーションを含む)アプリケーションプログラム615、およびデータファイル616を備えたファイルが格納された記憶媒体612、またはその他の適切なタイプのメモリ(例えば、RAM、ROM、プログラマブル読出し専用メモリ(PROM)、消去可能なプログラマブル読取り専用メモリ(EPROM)、電気的に消去可能なプログラマブル読取り専用メモリ(EEPROM)、磁気ディスク、光ディスク、フロッピー(登録商標)ディスク、ハードディスク、着脱可能なカートリッジ、フラッシュドライブ)と、デバイス500の実際の位置もしくは相対的位置または地理的位置を提供するナビゲーションモジュール617と、適切な交流(AC)電力成分または直流(DC)電力成分を電力構成要素に提供する電源619と、デバイス500が電話網を介して音声を送受信することを可能にする電話サブシステム620とを含む。構成デバイスおよびCPU 601は、バス621を介して、互いと通信する。
【0087】
CPU601は、いくつかのコンピュータプロセッサのうちの1つであってよい。1つの構成では、コンピュータCPU 601は、2つ以上の処理ユニットである。RAM610は、オペレーティングシステムアプリケーションプログラムなどのソフトウェアプログラムおよびデバイスドライバの実行の間に、CPU601に迅速なRAM記憶を提供するために、コンピュータバス621とインターフェースをとる。より詳細には、CPU601は、ソフトウェアプログラムを実行するために、コンピュータ実行可能プロセスステップを記憶媒体612またはその他の媒体からRAM610のフィールド内にロードする。データは、実行の間にそのデータがコンピュータCPU601によってアクセスされるRAM610内に格納される。1つの例示的な構成では、デバイス500は、少なくとも128MBのRAMと、256MBのフラッシュメモリとを含む。
【0088】
記憶媒体612自体が、独立ディスク冗長アレイ(RAID)、フロッピー(登録商標)ディスクドライブ、フラッシュメモリ、USBフラッシュドライブ、外部ハードディスクドライブ、サムドライブ、ペンドライブ、キードライブ、高密度多用途ディスク(High-Density Digital Versatile Disc)(HD-DVD)光ディスクドライブ、内部ハードディスクドライブ、ブルーレイ光ディスクドライブ、またはホログラフィックデジタルデータ記憶(HDDS)光ディスクドライブ、外部ミニデュアルインラインメモリモジュール(DIMM)同期ダイナミックランダムアクセスメモリ(SDRAM)、または外部マイクロDIMM SDRAMなど、いくつかの物理的ドライブユニットを含みうる。かかるコンピュータ可読記憶媒体は、デバイス500が、デバイス500からデータをオフロードするため、またはデバイス500上にデータをアップロードするために、着脱可能なメモリ媒体上および着脱不可能なメモリ媒体上に格納されたコンピュータ実行可能プロセスステップ、アプリケーションプログラムなどにアクセスするのを可能にする。
【0089】
コンピュータプログラム製品は、記憶媒体612、すなわち、機械可読記憶媒体内で有形的に実施される。このコンピュータプログラム製品は、機械によって読み取られたとき、データ処理装置に画像データを移動体デバイス内に格納させるように動作する命令を含む。いくつかの実施形態では、このコンピュータプログラム製品は、ソーシャルあいまい性除去辞書を生成する命令を含む。
【0090】
オペレーティングシステム613は、GOOGLE移動体デバイスプラットフォーム、APPLE MAC OS X、MICROSOFT WINDOWS(登録商標) NT/WINDOWS(登録商標) 2000/WINDOWS(登録商標) XP/WINDOWS(登録商標) MOBILE、様々なUNIX(登録商標)風のオペレーティングシステム、またはコンピュータ向けの独自仕様オペレーティングシステムもしくは埋込み式システムなど、LINUX(登録商標)ベースのオペレーティングシステムであってよい。オペレーティングシステム613用のアプリケーション開発プラットフォームまたはアプリケーション開発フレームワークは、BINARY RUNTIME ENVIORNMENT FOR WIRELESS(BREW)、SUN MICROSYSTEMS JAVASCRIPT(登録商標)プログラミング言語を使用したJAVA(登録商標)プラットフォーム、マイクロエディション(JAVA(登録商標) ME)もしくはJAVA(登録商標)2プラットフォーム、マイクロエディション(J2ME)、PYTHON(商標)、FLASH LITE、またはMICROSOFT.NETコンパクト、あるいは別の適切な環境であってよい。
【0091】
デバイスは、オペレーティングシステム613と、電子メール、インスタントメッセージング、ビデオサービスアプリケーション、マッピングアプリケーション、ワードプロセッシング、スプレッドシート、プレゼンテーション、ゲーム、マッピング、ウェブブラウジング、JAVASCRIPT(登録商標)エンジン、またはその他のアプリケーションなどのアプリケーションプログラム615とに関するコンピュータ実行可能コードを格納する。例えば、一実装形態は、ユーザがGOOGLE GMAIL電子メールアプリケーション、GOOGLE TALKインスタントメッセージングアプリケーション、YOUTUBEビデオサービスアプリケーション、GOOGLE MAPSもしくはGOOGLE EARTHのマッピングアプリケーション、またはGOOGLE PICASA画像編集およびプレゼンテーションアプリケーションにアクセスすることを可能にしうる。アプリケーションプログラム615は、TAFRIウィジェットエンジン、WINDOWS(登録商標) SIDEBARガジェットエンジンもしくはKAPSULESガジェットエンジンなどのMICROSOFTガジェットエンジン、KONFABULTORウィジェットエンジンなどのYAHOO!ウィジェットエンジン、APPLE DASHBOARDウィジェットエンジン、GOOGLEガジェットエンジン、KLIPFOLIOウィジェットエンジン、OPERAウィジェットエンジン、WIDSETSウィジェットエンジン、独自仕様のウィジエットエンジンもしくはガジェットエンジン、またはデスクトップ上で物理的にインスパイヤされたアプレット(physically-inspired applet)に関するホストシステムソフトウェアを提供するその他のウィジェットエンジンもしくはガジェットエンジンなどのウィジェットエンジンまたはガジェットエンジンを含むことも可能である。
【0092】
上述の実装形態を使用してソーシャルあいまい性除去辞書を提供することが可能であるが、ダイナミックリンクライブラリ(DLL)として、またはFOXFIREウェブブラウザ、APPLE SAFARIウェブブラウザ、もしくはMICROSOFT INTERNET EXPLORERウェブブラウザなどのインターネットウェブブラウザなど、その他のアプリケーションプログラムに対するプラグインとして、本開示による機能を実装することも可能である。
【0093】
ナビゲーションモジュール617は、全地球測位システム(GPS)信号、全地球的航法衛星システム(GLONASS)、ガリレオ測位システム、北斗衛星ナビゲーションおよび測位システム(Beidou Satellite Navigation and Positioning System)、慣性ナビゲーションシステム、デッドレコニングシステム(dead reckoning system)を使用することによって、またはアドレス、インターネットプロトコル(IP)アドレス、もしくはデータベース内の位置情報にアクセスすることによって、デバイスの絶対的位置または相対的位置を決定することが可能である。ナビゲーションモジュール617は、1つまたは複数の加速度計を使用してなど、デバイス500の角変位、配向、または速度を測定するために使用されることも可能である。
【0094】
図7は、オペレーティングシステム713がGOOGLE移動体デバイスプラットフォームである場合、デバイス700によって使用されるオペレーティングシステム713の例示的な構成要素を示すブロック図である。オペレーティングシステム713は、関連する電話アプリケーションが応答して、不規則な(wayward)アプリケーションがオペレーティングシステムの故障(または「クラッシュ」)を引き起こさないことを確実にしながら、複数のプロセスを起動する。タスク交換を使用して、オペレーティングシステム713は、それぞれの関連するアプリケーションの状態を失わずに、電話呼の間にアプリケーションの交換を可能にする。オペレーティングシステム713は、構成要素の再使用を奨励するため、およびポインティングデバイス入力とキーボード入力とを組み合わせることによって、かつピボッティング(pivoting)を可能にすることによって、スケーラブルなユーザ経験を提供するために、アプリケーションフレームワークを使用することが可能である。したがって、このオペレーティングシステムは、最新の標準ベースのウェブブラウザを使用しながら、豊かなグラフィックスシステムおよびメディア経験を提供することが可能である。
【0095】
オペレーティングシステム713は、一般に、6つの構成要素に組織されうる。すなわち、カーネル700、ライブラリ701、オペレーティングシステムランタイム702、アプリケーションライブラリ704、システムサービス705、およびアプリケーション706である。カーネル700は、オペレーティングシステム713およびアプリケーションプログラム715などのソフトウェアがディスプレイインターフェース602を経由してディスプレイ501と相互に作用することを可能にするディスプレイドライバ707と、ソフトウェアがカメラ507と相互に作用することを可能にするカメラドライバ709と、BLUETOOTHドライバ710と、Mシステムドライバ711と、バインダ(IPC)ドライバ712と、USBドライバ714と、ソフトウェアがキーボードインターフェース604を経してキーボード502と相互に作用することを可能にするキーパッドドライバ715と、WiFiドライバ716と、ソフトウェアが音声インターフェース709を経由してマイクロフォン509およびスピーカ510と相互に作用することを可能にする音声ドライバ717と、ソフトウェアが電源719と相互に作用して、電源719を管理することを可能にする電源管理構成要素719とを含む。
【0096】
BLUETOOTHドライバは、一実装形態では、LINUXベースのオペレーティングシステム用のBlueZ BLUETOOTHスタックに基づき、ヘッドセットデバイスおよびハンズフリーデバイス、ダイヤルアップネットワーキング、パーソナルエリアネットワーキング(PAN)、または(アドバンスドオーディオディストリビューションプロファイル(Advanced Audio Distribution Profile)(A2DP)またはオーディオ/ビデオリモートコントロールプロファイル(Audio/Video Remote Control Profile)(AVRCP)によってなど)オーディオストリーミングに関するプロファイルサポートを提供する。BLUETOOTHドライバは、走査、ペアリングおよびペアリング解除、ならびにサービスクエリに関するJAVA(登録商標)バインディングを提供する。
【0097】
ライブラリ701は、効率的なJAVA(登録商標)アプリケーションプログラミングインターフェース(API)レイヤを使用して、(ムービングピクチャエキスパートグループ(MPEG)-4、H.264、MPEG-1オーディオレイヤ3(MP3)、アドバンスドオーディオコーディング(AAC)、アダプティブマルチレート(AMR)、ジョイントフォトグラフィックエキスパートグループ(JPEG)など)標準のビデオフレームフォーマット、音声フレームフォーマット、および静止フレームフォーマットをサポートするメディアフレームワーク720と、サーフェスマネージャ721と、二次元のアプリケーション描画用のシンプルグラフィックスライブラリ(SGL)722と、ゲームおよび三次元表示のための埋込み式システム用オープングラフィックスライブラリ(オープンGL ES)724と、C標準ライブラリ(LIBC) 725と、LIBWEBCOREライブラリ726と、FreeTypeライブラリ727と、SSL 729とSQLiteライブラリ730とを含む。
【0098】
一般に、移動体情報デバイスプロファイル(MIDP)ランタイムを構成するオペレーティングシステムランタイム702は、コアJAVA(登録商標)ライブラリ731と、Dalvik仮想マシン732とを含む。グラフィックス表示に関して、システム全体のコンポーザは、サーフェスとフレームバッファとを管理して、その構成に関してOPENGL ES724および二次元ハードウェアアクセレレータを使用して、ウィンドウ遷移を処理するDalvik仮想マシン732とを含む。
【0099】
Dalvik仮想マシン732は、非常に効率的にランタイムメモリを使用して、CPU最適化バイトコードインタプリタを実装し、デバイスごとに複数の仮想マシンプロセスをサポートするため、埋込み式環境と共に使用可能である。カスタムファイルフォーマット(.DEX)は、メモリを削減するために共有されるコンスタントプール、プロセス間の共有を改善するための読出し専用構造、および解析時間を削減するための簡潔な固定幅命令を使用したランタイム効率性向けに設計され、それによって、設置されたアプリケーションが構築時にカスタムファイルフォーマットに変換されることを可能にする。スタックベースの命令の代わりに、レジスタベースの命令がメモリおよびディスパッチオーバヘッドを削減するため、固定幅の命令を使用することは解析を簡素化するため、かつ16ビットコードユニットが読取りを最小限に抑えるため、関連するバイトコードは、迅速な解釈のために設計される。
【0100】
アプリケーションライブラリ704は、ビューシステム734と、リソースマネージャ735と、コンテンツプロバイダ737とを含む。システムサービス705は、ステータスバー739と、アプリケーションランチャ740と、すべての設置されたアプリケーションに関する情報を維持するパッケージマネージャ741と、アプリケーションレベルのJAVA(登録商標)インターフェースをメディアフレームワーク720に提供する電話マネージャ742と、すべてのアプリケーションがステータスバーおよびオンスクリーン通知にアクセスすることを可能にする通知マネージャ744と、複数のウィンドウを有する複数のアプリケーションがディスプレイ501を共有することを可能にするウィンドウマネージャ745と、別個のプロセス内でそれぞれのアプリケーションを実行して、アプリケーションライフサイクルを管理し、アプリケーション間の履歴を維持するアクティビティマネージャ746とを含む。
【0101】
一般に、MIDPアプリケーションを構成するアプリケーション706は、ホームアプリケーション747と、ダイヤラ(dialer)アプリケーション749と、連絡先アプリケーション750と、ブラウザアプリケーション751と、ソーシャルあいまい性除去辞書アプリケーション752とを含む。
【0102】
電話マネージャ742は、(電話状態、ネットワーク状態、加入者識別モジュール(SIM)状態、または音声メール状態などの)事象通知を提供して、(ネットワーク情報、SIM情報、または音声メールの存在など)状態情報にアクセスすることを可能にし、呼を開始し、呼状態を問い合わせて、制御する。ブラウザアプリケーション751は、ナビゲーション機能を含めて、完全な、デスクトップのようなマネージャ内でウェブページを表示する。さらに、ブラウザアプリケーション751は、シングルカラム小型スクリーン表示を可能にし、HTMLビューをその他のアプリケーションに埋め込む。
【0103】
図8は、オペレーティングシステムカーネル514によって実装される例示的なプロセスを示すブロック図である。一般に、アプリケーションおよびシステムサービスは、別個のプロセス内で実行し、この場合、アクティビティマネージャ746は、それぞれのアプリケーションを別個のプロセス内で実行して、アプリケーションライフサイクルを管理する。多くのアクティビティまたはサービスは、同じプロセス内で実行することも可能であるが、これらのアプリケーションは、その独自のプロセス内で実行する。プロセスは、アプリケーションの構成要素を実行するために、必要に応じて、開始され、停止され、プロセスは、リソースを再生するために終了されうる。それぞれのアプリケーションには、その名称がアプリケーションのパッケージ名である、その独自のプロセスが割り当てられ、アプリケーションの個々の部分には別のプロセス名が割り当てられる。
【0104】
ダイヤラアプリケーション821に関連するプロセスなどのアプリケーションプロセスも永久的でありうるが、サーフェスマネージャ816、ウィンドウマネージャ814、またはアクティビティマネージャ810などの永久コアシステムサービスは、システムプロセスによってホストされる。オペレーティングシステムカーネル514によって実装されるこれらのプロセスは、一般に、システムサービスプロセス801、ダイヤラプロセス802、ブラウザプロセス804、およびマッププロセス805に分類されうる。システムサービスプロセス801は、ステータスバー739に関連するステータスバープロセス806と、アプリケーションランチャ740に関連するアプリケーションランチャプロセス807と、パッケージマネージャ741に関連するパッケージマネージャプロセス809と、アクティビティマネージャ746に関連するアクティビティマネージャプロセス810と、グラフィックス、ローカライズされたストリング、およびXMLレイアウト記述に対するアクセスを提供するリソースマネージャに関連するリソースマネージャプロセス811と、通知マネージャ744に関連する通知マネージャプロセス812と、ウィンドウマネージャ745に関連するウィンドウマネージャプロセス814と、コアJAVA(登録商標)ライブラリ731に関連するコアJAVA(登録商標)ライブラリプロセス815と、サーフェスマネージャ721に関連するサーフェスマネージャプロセス816と、Dalvik仮想マシン732に関連するDalvik仮想マシンプロセス817と、LIBCライブラリ725に関連するLIBCプロセス819と、ソーシャルあいまい性除去辞書アプリケーション752に関連するソーシャルあいまい性除去辞書プロセス820とを含む。
【0105】
ダイヤラプロセス802は、ダイヤラアプリケーション749に関連するダイヤラアプリケーションプロセス821と、電話マネージャ742に関連する電話マネージャプロセス822と、コアJAVA(登録商標)ライブラリ731に関連するコアJAVA(登録商標)ライブラリプロセス824と、Dalvik仮想マシン732に関連するDalvik仮想マシンプロセス825と、LIBCライブラリ725に関連するLIBCプロセス826とを含む。ブラウザプロセス804は、ブラウザアプリケーション751に関連するブラウザアプリケーションプロセス827と、コアJAVA(登録商標)ライブラリ731に関連するコアJAVA(登録商標)ライブラリプロセス829と、Dalvi仮想マシン732に関連するDalvik仮想マシンプロセス830と、LIBWEBCOREライブラリ726に関連するLIBWEBCOREプロセス831と、LIBCライブラリ725に関連するLIBCプロセス832とを含む。
【0106】
マッププロセス805は、マップアプリケーションプロセス834と、コアJAVA(登録商標)ライブラリプロセス835と、Dalvik仮想マシンプロセス836と、LIBCプロセス837とを含む。特に、Dalvik仮想マシンプロセスなど、いくつかのプロセスは、システムサービスプロセス801、ダイヤラプロセス802、ブラウザプロセス804、およびマッププロセス805のうちの1つまたは複数の中に存在しうる。
【0107】
図9は、本明細書で説明される技法と共に使用可能な汎用コンピュータデバイス900および汎用移動体コンピュータデバイス950の一例を示す。コンピューティングデバイス900は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、およびその他の適切なコンピュータなど、様々な形態のデジタルコンピュータを表すことが意図される。コンピューティングデバイス950は、携帯情報端末、セルラ電話、スマートフォン、およびその他の類似のコンピューティングデバイスなど、様々な形態の移動体デバイスを表すことが意図される。本明細書で示される構成要素、それらの関係および関連、ならびにそれらの機能は、単なる例示であることを意味し、本書において説明される発明および/または特許請求される本発明の実装形態を限定することが意図されない。
【0108】
コンピューティングデバイス900は、プロセッサ902と、メモリ904と、記憶デバイス906と、メモリ904および高速拡張ポート910に接続している高速インターフェース908と、低速バス914および記憶デバイス906に接続している低速インターフェース912とを含む。構成要素902、904、906、908、910、および912のそれぞれは、様々なバスを使用して相互に接続され、一般的なマザーボード上または適切なその他の様式で取り付けられることが可能である。プロセッサ902は、高速インターフェース908に結合されたディスプレイ916など、外部入出力デバイス上にGUIに関するグラフィカル情報を表示するために、メモリ904内または記憶デバイス906上に格納された命令を含めて、コンピューティングデバイス900内で実行するための命令を処理することが可能である。その他の実装形態では、複数のメモリおよび複数なタイプのメモリと共に、必要に応じて、複数のプロセッサならびに/または複数のバスが使用されうる。また、複数のコンピューティングデバイス900は、それぞれのデバイスが必要なオペレーション(例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムなど)の一部を提供する状態で、接続されうる。
【0109】
メモリ904は、コンピューティングデバイス900内に情報を格納する。一実装形態では、メモリ904は、1つまたは複数の揮発性メモリユニットである。もう1つの実装形態では、メモリ904は、1つまたは複数の不揮発性メモリである。メモリ904は、磁気ディスクまたは光ディスクなど、別の形態のコンピュータ可読媒体であってもよい。
【0110】
記憶デバイス906は、コンピューティングデバイス900に大容量を提供することが可能である。一実装形態では、記憶デバイス906は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくはその他の類似の固体メモリデバイス、または記憶領域ネットワークもしくはその他の構成のデバイスを含むデバイスのアレイなど、コンピュータ可読媒体であってよく、あるいはそのようなコンピュータ可読媒体を含みうる。コンピュータプログラム製品は、情報キャリア内で有形に実施可能である。コンピュータプログラム製品は、実行されるとき、上で説明されたような1つまたは複数の方法を実行する命令を含むことも可能である。この情報キャリアは、メモリ904、記憶デバイス906、プロセッサ902上のメモリ、もしくは伝搬信号など、コンピュータ可読媒体または機械可読媒体である。
【0111】
高速コントローラ908は、コンピューティングデバイス900に関して帯域幅を多用する動作を管理し、一方、低速コントローラ912は、帯域幅の多用がより少ない動作を管理する。機能のそのような割当ては、単なる例示である。一実装形態では、高速コントローラ908は、メモリ904に、(例えば、グラフィックスプロセッサまたはアクセレレータを介して) ディスプレイ916に、かつ様々な拡張カード(図示せず)を受け入れることが可能な高速拡張ポート910に結合される。この実装形態では、低速コントローラ912は、記憶デバイス906および低速拡張ポート914に結合される。様々な通信ポート(例えば、USB、Bluetooth(登録商標)、イーサネット(登録商標)、無線イーサネット(登録商標))を含むことが可能な低速拡張ポートは、キーボード、ポインティングデバイス、スキャナ、あるいはネットワークアダプタを介して、スイッチまたはルータなどのネットワーキングデバイスなど、1つもしくは複数の入出力デバイスに結合されうる。
【0112】
コンピューティングデバイス900は、図に示されるように、いくつかの異なる形態で実装可能である。例えば、コンピューティングデバイス900は、標準サーバ920として実装可能であり、またはかかるサーバのグループ内で複数回実装されうる。コンピューティングデバイス900は、ラックサーバシステム924の一部としても実装可能である。加えて、コンピューティングデバイス900は、ラップトップコンピュータ922など、パーソナルコンピュータ内でも実装されうる。あるいは、コンピューティングデバイス900からの構成要素は、デバイス950など、移動体デバイス(図示せず)内のその他の構成要素と組合されてよい。かかるデバイスのそれぞれは、コンピューティングデバイス900、950のうちの1つまたは複数を含んでよく、システム全体は、互いと通信している複数のコンピューティングデバイス900、950から構成されうる。
【0113】
コンピューティングデバイス950は、数ある構成要素の中で、プロセッサ952と、メモリ964と、ディスプレイ954などの入出力デバイスと、通信インターフェース966と、トランシーバ968とを含む。デバイス950には、追加の記憶装置を提供するために、マイクロドライブまたはその他のデバイスなどの記憶デバイスも提供されうる。構成要素950、952、964、954、966、および968のそれぞれは、様々なバスを使用して相互に接続されており、これらの構成要素のうちのいくつかは、一般的なマザーボード上にまたは適切なその他の様式で取り付けられることが可能である。
【0114】
プロセッサ952は、コンピューティングデバイス950内で、メモリ964内に格納された命令を含む命令を実行することが可能である。このプロセッサは、別個のアナログプロセッサおよびデジタルプロセッサ、ならびに複数のアナログプロセッサおよびプロセッサを含むチップのチップセットとして実装されうる。このプロセッサは、例えば、ユーザインターフェースの制御、デバイス950によって実行されるアプリケーション、およびデバイス950による無線通信など、デバイス950のその他の構成要素の調整を実現することが可能である。
【0115】
プロセッサ952は、ディスプレイ954に結合された制御インターフェース958とディスプレイインターフェース956とを介してユーザと通信することが可能である。ディスプレイ954は、例えば、TFT LCD(薄膜トランジスタ液晶ディスプレイ)またはOLED(有機発光ダイオード)ディスプレイ、またはその他の適切な表示技術であってよい。ディスプレイインターフェース956は、グラフィカル情報およびその他の情報をユーザに提示するために、ディスプレイ954を駆動させるための適切な回路を備えうる。制御インターフェース958は、ユーザからコマンドを受信して、それらのコマンドをプロセッサ952に対する提出に変換することが可能である。加えて、その他のデバイスとのデバイス950の近接領域通信を可能にするために、外部インターフェース962がプロセッサ952との通信において提供されうる。外部インターフェース962は、例えば、いくつかの実装形態では、有線通信を提供することが可能であり、または、その他の実装形態では、無線通信を提供することが可能であり、複数のインターフェースも使用可能である。
【0116】
メモリ964は、コンピューティングデバイス950内に情報を格納する。メモリ964は、1つもしくは複数のコンピュータ可読媒体、1つもしくは複数の揮発性メモリユニット、または1つもしくは複数の不揮発性メモリのうちの1つもしくは複数として実装されうる。拡張メモリ974は、例えば、SIMM(シングルインラインメモリモジュール)カードインターフェースを含みうる拡張インターフェース972を介してデバイス950に提供されて、デバイス950に接続されることも可能である。かかる拡張メモリ974は、デバイス950に追加の記憶スペースを提供することが可能であり、またはデバイス950に関するアプリケーションまたはその他の情報を格納することも可能である。詳細には、拡張メモリ974は、上で説明されたプロセスを実行または補完するための命令を含むことが可能であり、安全の情報を含むことも可能である。したがって、例えば、拡張メモリ974は、デバイス950に関するセキュリティモジュールとして提供可能であり、デバイス950の安全な使用を可能にする命令を用いてプログラムされうる。加えて、安全なアプリケーションは、識別情報をハッカー不可能な形でSIMMカード上に配置するなど、追加の情報と共にSIMMカードを経由して提供されうる。
【0117】
このメモリは、下で議論されるように、例えば、フラッシュメモリおよび/またはNVRAMメモリを含みうる。一実装形態では、コンピュータプログラム製品は、情報キャリア内で有形に実施される。このコンピュータプログラム製品は、実行されるとき、上で説明された方法など、1つまたは複数の方法を実行する命令を含む。この情報キャリアは、メモリ964、拡張メモリ974、プロセッサ952上のメモリ、または例えば、トランシーバ968もしくは外部インターフェース962を介して受信可能な伝搬信号など、コンピュータ可読媒体または機械可読媒体である。
【0118】
デバイス950は、必要に応じて、デジタル信号処理回路を含みうる通信インターフェース966を介して無線で通信しうる。通信インターフェース966は、とりわけGSM音声呼、SMSメッセージ、EMSメッセージ、もしくはMMSメッセージング、CDMA、TDMA、PDC、WCDMA、CDMA2000、またはGPRSなど、様々なモードまたはプロトコルに基づいて通信を提供することが可能である。かかる通信は、例えば、無線周波数トランシーバ968を介して発生しうる。加えて、Bluetooth、WiFi、またはその他のかかるトランシーバ(図示せず)を使用してなど、短距離通信が発生しうる。加えて、GPS(全地球測位システム)受信機モジュール970は、デバイス950上で実行しているアプリケーションによって、必要に応じて使用されうる追加の航法関連無線データおよび位置関連無線データをデバイス950に提供することが可能である。
【0119】
デバイス950は、ユーザから音声による情報を受信して、それを使用可能なデジタル情報に変換することが可能な音声コーデック960を使用して、可聴式に通信することも可能である。音声コーデック960は、同様に、例えば、デバイス950のハンドセット内で、スピーカを介してなど、ユーザ向けの可聴音声を生成することが可能である。かかる音声は、音声電話呼からの音声を含むことが可能であり、記録された音声(例えば、ボイスメッセージ、音楽ファイルなど)を含むことが可能であり、デバイス950上で動作しているアプリケーションによって生成される音声を含むことも可能である。
【0120】
コンピューティングデバイス950は、図に示されるように、いくつかの異なる形態で実装可能である。例えば、コンピューティングデバイス950は、セルラ電話980として実装可能である。コンピューティングデバイス950は、スマートフォン982、携帯情報端末、またはその他の類似の移動体デバイスの一部としても実装可能である。
【0121】
本明細書で説明されたシステムおよび技法の様々な実装形態は、デジタル電気回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組合せの形で実現されうる。これらの様々な実装形態は、記憶システム、少なくとも1つの入力デバイス、ならびに少なくとも1つの出力デバイスからデータおよび命令を受信して、記憶システム、少なくとも1つの入力デバイス、ならびに少なくとも1つの出力デバイスにデータおよび命令を送信するために結合された、専用であってよく、または汎用であってもよい、少なくとも1つのプログラマブルプロセッサを含めて、プログラマブルシステム上で実行可能かつ/または解釈可能な1つもしくは複数のコンピュータプログラム内の実装形態を含みうる。
【0122】
(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはソフトウェアコードとも呼ばれる)これらのコンピュータプログラムは、プログラマブルプロセッサに関する機械命令を含み、ハイレベル手順および/もしくはオブジェクト指向プログラミング言語の形で、かつ/またはアセンブリ言語/機械言語の形で実装可能である。本明細書で使用される場合、「機械可読媒体」、「コンピュータ可読媒体」という用語は、機械命令を機械可読信号として受信する機械可読媒体を含めて、機械命令および/もしくはデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラム製品、装置、および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブル論理素子(PLD))を指す。「機械可読信号」という用語は、機械命令ならびに/またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
【0123】
ユーザとの相互作用を提供するために、本明細書で説明されたシステムおよび技法は、情報をユーザに表示するためのディスプレイデバイス(例えば、CRT(陰極線管)モニタまたはLCD(液晶ディスプレイ)モニタ)と、それによって、ユーザがコンピュータに入力を提供することができるキーボードおよびポインティングデバイス(例えば、マウスまたはトラックボール)とを有するコンピュータ上で実装可能である。ユーザとの相互作用を提供するために、その他の種類のデバイスが同様に使用されうる。例えば、ユーザに提供されるフィードバックは、任意の形態の知覚フィードバック(例えば、仮想フィードバック、音声フィードバック、または触覚フィードバック)であってよく、ユーザからの任意の入力は、音響入力、音声入力、または触覚入力を含めて、任意の形態で受信可能である。
【0124】
本明細書で説明されるシステムおよび技法は、(例えば、データサーバなど)バックエンド構成要素を含むか、もしくはミドルウェア構成要素(例えば、アプリケーションサーバ)を含む、またはフロントエンド構成要素(例えば、それを介して、ユーザが本明細書で説明されたシステムおよび技法の実装形態と相互に作用することが可能なグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータ)、あるいはかかるバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムの形で実装可能である。このシステムのこれらの構成要素は、任意の形態のもしくは任意の媒体のデジタルデータ通信(例えば、通信ネットワーク)によって相互に接続されうる。通信ネットワークの例は、ローカルエリアネットワーク(「LAM」)、広域ネットワーク(「WAN」)、およびインターネットを含む。
【0125】
このコンピューティングシステムは、クライアントおよびサーバを含みうる。クライアントおよびサーバは、通常、互いから遠く離れ、通常、通信ネットワークを介して相互に作用する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行しており、互いとクライアントサーバ関係を有するコンピュータプログラムによって生じる。
【0126】
いくつかの実施形態が説明されている。とはいえ、本発明の趣旨および範囲から逸脱せずに、様々な修正行われうることを理解されよう。例えば、ソーシャルあいまい性除去辞書は、様々なアプリケーション内の語コンプリーションのために使用可能である。加えて、ソーシャルに関係する個人に関する使用データは、入力されたデータのあいまい性除去以外の目的で、または入力されたデータのあいまい性除去に加えて使用可能である。したがって、その他の実施形態は、以下の特許請求の範囲内である。
【符号の説明】
【0127】
400 システム
402 セル電話
404 ネットワーク
406 あいまい性除去サーバ
408 ソーシャルサーバ
410 ラップトップコンピュータ
412 スマートフォン
420 システム
422 コンピュータ
424 ネットワーク
426 あいまい性除去サーバ
430 ソーシャルネットワークデータ
434 予測モジュール
436 マスタ辞書
438 クエリログ
440 ユーザデータ
442 現在の事象データ
900 汎用コンピュータデバイス
902 プロセッサ
904 メモリ
905 汎用移動体コンピュータデバイス
906 記憶デバイス
908 高速インターフェース
910 高速拡張ポート
912 低速インターフェース
914 低速バス
916 ディスプレイ
920 標準サーバ
922 ラップトップコンピュータ
924 ラックサーバシステム
950 汎用モバイルコンピュータデバイス
952 プロセッサ
954 ディスプレイ
956 ディスプレイインターフェース
958 制御インターフェース
960 音声コーデック
962 外部インターフェース
964 メモリ
966 通信インターフェース
968 無線周波数トランシーバ
972 拡張インターフェース
974 拡張メモリ
980 セルラ電話
982 スマートフォン

【特許請求の範囲】
【請求項1】
ユーザに関連するコンピューティングデバイスの辞書の提供を求める要求を受信するステップと、
前記ユーザに関するソーシャルネットワークのメンバの、語の使用量情報を識別するステップと、
前記ソーシャルネットワークの前記メンバの、前記語の使用量情報を用いて、前記ユーザのための辞書を生成するステップと、
を備えることを特徴とするコンピュータで実施される方法。
【請求項2】
前記辞書の提供を求める前記受信された要求が、カスタマイズされたあいまい性除去辞書に関する明確なユーザ要求を備えることを特徴とする請求項1に記載の方法。
【請求項3】
標準言語辞書に対して前記語の使用量情報を重み付けするステップをさらに備えることを特徴とする請求項2に記載の方法。
【請求項4】
前記ソーシャルネットワークのメンバの、前記語の使用量情報を識別するステップは、前記ソーシャルネットワーク内の前記ユーザに関連する前記メンバを識別するステップと、前記識別されたメンバによって生成された文書内の語の使用量を解析するステップと、を備えることを特徴とする請求項1に記載の方法。
【請求項5】
前記ソーシャルネットワークのメンバの、前記語の使用量情報を識別するステップは、辞書データに関する前記要求をソーシャルネットワーキングシステムに送信するステップを備えることを特徴とする請求項1に記載の方法。
【請求項6】
前記ソーシャルネットワークのメンバの、前記語の使用量情報を識別するステップは、前記ソーシャルネットワークの前記メンバによって使用される語に重み付け情報を適用するステップを備えることを特徴とする請求項1に記載の方法。
【請求項7】
前記重み付けは、前記ソーシャルネットワーク内の前記ユーザからの距離が広がると共に減少することを特徴とする請求項6に記載の方法。
【請求項8】
前記ユーザのための前記辞書を生成するステップが、既存の辞書のための更新された情報を提供するステップを備えることを特徴とする請求項1に記載の方法。
【請求項9】
前記ユーザからあいまいなテキスト入力を受信するステップと、
前記あいまいなテキスト入力に整合する、示唆される用語のランク付けされたリストを提供するために、前記辞書を使用するステップと、
をさらに備えることを特徴とする請求項1に記載の方法。
【請求項10】
前記テキスト入力は、それぞれが複数の文字に関連するキーで入力されたため、あいまいであることを特徴とする請求項9に記載の方法。
【請求項11】
前記テキスト入力は、前記ユーザが用語の入力をコンプリートしなかったため、あいまいであることを特徴とする請求項9に記載の方法。
【請求項12】
前記ソーシャルネットワークのメンバの、前記語の使用量情報を周期的に識別するステップと、前記辞書のための更新情報を生成するステップと、をさらに備えることを特徴とする請求項1に記載の方法。
【請求項13】
命令を記録および格納している記録可能な記憶媒体であって、前記命令が実行されるとき、
ユーザに関連するコンピューティングデバイスの辞書の提供を求める要求を受信する機能と、
前記ユーザに関するソーシャルネットワークのメンバに関する語の使用量情報を識別する機能と、
前記ソーシャルネットワークの前記メンバに関する前記語の使用量情報を用いて、前記ユーザ向けの辞書を生成する機能と、
を実現すること特徴とする記録可能な記憶媒体。
【請求項14】
前記ソーシャルネットワークの前記メンバに関する前記語の使用量情報を識別する機能は、前記ソーシャルネットワークの前記ユーザに関係するメンバを識別する機能と、前記識別されたメンバによって生成された文書内の語の使用量を解析する機能と、を備えることを特徴とする請求項13に記載の記録可能な記憶媒体。
【請求項15】
前記ソーシャルネットワークの前記メンバに関する語の使用量情報を識別する機能は、前記ソーシャルネットワークの前記メンバによって使用される語に重み付け情報を適用する機能を備え、前記重み付け情報によって生成された重み付けが、前記ソーシャルネットワーク内の前記ユーザからの距離が広がると共に減少することを特徴とする請求項13に記載の記録可能な記憶媒体。
【請求項16】
実行されるとき、前記ユーザから受信されたあいまいなテキスト入力に整合する、示唆される用語のランク付けされたリストを提供するために、前記辞書を使用する機能をさらに実現する命令をさらに格納することを特徴とする請求項13に記載の記録可能な記憶媒体。
【請求項17】
格納のために前記辞書をクライアントデバイスに送信する機能をさらに備えることを特徴とする請求項13に記載の記録可能な記憶媒体。
【請求項18】
ユーザに関連するソーシャルネットワークのメンバによる語の使用量を反映するデータを作成するためのソーシャルネットワークインターフェースと、
前記ユーザによって入力されたテキストのあいまい性を除去する際に使用するためにフォーマットされた辞書データを作成するために、前記ソーシャルネットワークのメンバの前記語の使用量を反映する前記データを使用するようにプログラムされた辞書ビルダと、
前記ユーザによって入力された前記テキストのあいまい性を除去するために、前記辞書データを使用するようにプログラムされた予測モジュールと、
を備えることを特徴とするコンピュータで実施されるテキストのあいまい性除去システム。
【請求項19】
前記ソーシャルネットワークのメンバによる前記語の使用量を反映する前記データは、前記ソーシャルネットワーク内の前記メンバと前記ユーザとの間の距離に反比例してメンバによる使用量を重み付けすることを特徴とする請求項18に記載のシステム。
【請求項20】
ユーザに関する識別子を使用して、前記ユーザのソーシャルネットワークのメンバによる語の使用量を反映するデータを作成するためのソーシャルネットワークインターフェースと、
前記ユーザにとって特有でない一般的な語の使用量を反映するマスタ辞書データを格納するメモリと、
前記ユーザによって入力されたテキストのあいまい性を除去する目的で、前記マスタ辞書と共に使用するために、ユーザ使用量データを辞書データに処理する手段と、
を備えることを特徴とするコンピュータで実施されるシステム。
【請求項21】
コンピューティングデバイスで前記ユーザによって入力されたキーストロークのあいまい性を除去するための手段をさらに備えることを特徴とする請求項20に記載のシステム。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公表番号】特表2012−506101(P2012−506101A)
【公表日】平成24年3月8日(2012.3.8)
【国際特許分類】
【出願番号】特願2011−532282(P2011−532282)
【出願日】平成21年10月16日(2009.10.16)
【国際出願番号】PCT/US2009/060994
【国際公開番号】WO2010/045549
【国際公開日】平成22年4月22日(2010.4.22)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.GSM
2.FLASH
【出願人】(507103802)グーグル・インコーポレーテッド (191)
【Fターム(参考)】