【文献】
秋田谷 樹 外2名,音声対話システムにおける簡略表現の使用とそのユーザ発話への影響,第70回 言語・音声理解と対話処理研究会資料 (SIG−SLUD−B303),日本,一般社団法人人工知能学会,2014年 2月26日,pp.15-21
【文献】
西田 潤 外3名,同調的音声対話システムのためのユーザに特徴的な発話フレーズの検出,情報処理学会研究報告 2012(平成24)年度6 [DVD−ROM],日本,一般社団法人情報処理学会,2013年 4月15日,pp.1-4
【文献】
CARLOS A. HENRIQUEZ. et al.,A Ngram-based Statistical Machine Translation Approach for Text Normalization on Chat-speak Style Communinations,CAW2(Content Analysis in Web 2.0),2009年 4月21日,pp.1-5
(58)【調査した分野】(Int.Cl.,DB名)
前記メッセージ交換スレッドに前記応答を組み込むステップが、前記ユーザの前記コンピューティングデバイス上で動作するメッセージ交換クライアントのグラフィカルユーザインターフェースに表示される前記メッセージ交換スレッドのトランスクリプトに前記応答を挿入するステップを含む、請求項1に記載の方法。
前記チャット語の尺度を決定することは、チャット語がメッセージ内で利用された事例の数に基づき、前記方法は、前記数が基づく前記事例のうちの1つを決定するステップをさらに含み、前記事例のうちの前記1つを決定するステップは、
前記過去の自動化されたアシスタントメッセージ交換スレッドのうちの1つにおいて前記メッセージのうちの所与のメッセージを受け取るステップであって、前記所与のメッセージが、前記ユーザにより組み立てられ、少なくとも第1の用語および第2の用語を含む、ステップと、
前記自然言語入力の少なくとも前記第1の用語に関して、前記第1の用語の第1の標準化を特定するステップと、
前記自然言語入力に関する候補代替入力を生成するステップであって、前記第1の標準化によって前記第1の用語を置き換えるステップ、および前記第2の用語または前記第2の用語の第2の標準化のいずれかを前記候補代替入力に含めるステップを含む生成するステップと、
前記自然言語入力に関する第1のスコアを決定するステップと、
前記候補代替入力に関する第2のスコアを決定するステップと、
前記第1のスコアおよび前記第2のスコアに基づいて前記候補代替入力を選択するステップと、
前記候補代替入力に基づいて返答内容を決定するステップと、
前記候補代替入力の選択に基づいて、前記第1の用語の前記第1の標準化による置き換えを前記事例のうちの前記1つとして記憶するステップと
を含む、請求項8に記載の方法。
前記チャット語の尺度を決定することが、前記メッセージ内でチャット語が利用された事例の数、前記メッセージ内で使用される1つまたは複数のチャット用語の質、前記チャット用語の普通さ、および前記チャット用語の使用の一貫性からなるグループから選択される少なくとも1つの基礎に基づく、請求項1に記載の方法。
前記1つまたは複数のプロセッサは、前記メッセージ交換スレッドに前記応答を組み込む際に、前記ユーザの前記コンピューティングデバイス上で動作するメッセージ交換クライアントのグラフィカルユーザインターフェースに表示される前記メッセージ交換スレッドのトランスクリプトに前記応答を挿入するためのものである、請求項12に記載のシステム。
前記1つまたは複数のプロセッサは、前記チャット語の尺度を決定する際に、チャット語がメッセージ内で利用された事例の数に基づき、前記チャット語の尺度を決定するためのものであり、
前記1つまたは複数のプロセッサはさらに、前記命令を実行する際に、前記数が基づく前記事例のうちの1つを決定するためのものであり、
前記1つまたは複数のプロセッサは、前記事例のうちの前記1つを決定する際に、
過去の自動化されたアシスタントメッセージ交換スレッドのうちの1つにおいて前記メッセージのうちの所与のメッセージを受け取ることであって、前記所与のメッセージが、前記ユーザにより組み立てられ、少なくとも第1の用語および第2の用語を含む、受け取ることと、
前記自然言語入力の少なくとも前記第1の用語に関して、前記第1の用語の第1の標準化を特定することと、
前記自然言語入力に関する候補代替入力を生成することであって、前記第1の標準化によって前記第1の用語を置き換えるステップ、および前記第2の用語または前記第2の用語の第2の標準化のいずれかを前記候補代替入力に含めるステップを含む、生成することと、
前記自然言語入力に関する第1のスコアを決定することと、
前記候補代替入力に関する第2のスコアを決定することと、
前記第1のスコアおよび前記第2のスコアに基づいて前記候補代替入力を選択することと、
前記候補代替入力に基づいて返答内容を決定することと、
前記候補代替入力の選択に基づいて、前記第1の用語の前記第1の標準化による置き換えを前記事例のうちの前記1つとして記憶することと
をさらに行うためのものである、請求項12に記載のシステム。
前記1つまたは複数のプロセッサは、前記チャット語の尺度を決定する際に、前記メッセージ内でチャット語が利用された事例の数、前記メッセージ内で使用される1つまたは複数のチャット用語の質、前記チャット用語の普通さ、および前記チャット用語の使用の一貫性からなるグループから選択される少なくとも1つの基礎に基づき、前記チャット語の尺度を決定するためのものである、請求項12に記載のシステム。
【発明の概要】
【課題を解決するための手段】
【0003】
本明細書の一部の実装は、コンピューティングデバイスのユーザインターフェース入力デバイスを介してユーザによって組み立てられた自然言語入力--ユーザによって自動化されたアシスタントに与えられた自然言語入力など--にチャット語が含まれる場合にチャット語を標準化された形態に変換することを対象とする。チャット語の標準化された形態は、自然言語入力に応答する返答内容を決定する際に自動化されたアシスタントによって利用される可能性があり、その返答内容は、ユーザのコンピューティングデバイスの1つまたは複数のユーザインターフェース出力デバイスを介してユーザに提示される可能性がある。多くの実装において、チャット語を含む自然言語入力は、ユーザと、自動化されたアシスタントと、任意で1つまたは複数の追加的なユーザとの間のメッセージ交換スレッドの一部としてユーザによって組み立てられる可能性がある。それらの実装の一部においては、チャット語の標準化された形態に基づいて自動化されたシステムによって生成される応答が、メッセージ交換スレッドに組み込まれる可能性がある。たとえば、応答は、ユーザのコンピューティングデバイス上で動作するメッセージ交換クライアントのグラフィカルユーザインターフェース内に表示されるメッセージ交換スレッドのトランスクリプト(Transcript)に挿入される可能性がある。
【0004】
ユーザによって与えられた入力内のチャット語の変換は、たとえば、それらのユーザが読書障害であるためにまたはそれらのユーザが流ちょうでない言語でコミュニケーションしているためにユーザがそれらのユーザの書き言葉の能力に制限あるとしても、ユーザが自動化されたアシスタントなどのコンピューティングデバイスとインタラクションすることを可能にし得る。言い換えれば、コンピューティングデバイスは、たとえばユーザが正しいスペルおよび文法によってクエリを書く/タイピングすることができないとしても入力を決定することができる。これは、あまり発音通り表記されない言語で入力を受け取っているコンピューティングデバイスに特に有用である可能性があり、英語およびフランス語は、そのような言語の例である。
【0005】
一例として、本明細書の一部の実装は、自然言語入力「c u l8er」を標準化された形態「see you later」に変換するために利用される可能性があり、標準化された形態は、「see you then」、「OK」などの適切な「チャット応答」である返答内容を決定するために自動化されたシステムによって使用される可能性がある。別の例として、一部の実装は、「thx」のみからなる自然言語入力が自動化されたアシスタントによる使用のために標準化された形態「thanks」に変換されるべきである一方、自動化されたアシスタントが1つまたは複数の特定の用語と一緒に「thx」を含むその他の自然言語入力において標準化された形態を利用することが適切でない可能性があると判定するために利用され得る。たとえば、「thx company」を含む自然言語入力において、「thx」は「thanks」に変換されない可能性がある。その代わりに、自動化されたシステムは、オーディオ/ビデオ会社THXに関連する内容を含む「検索応答」などの、「thx company」への適切な応答を決定するために「thx」を利用する可能性がある。
【0006】
追加的におよび/または代替的に、本明細書の一部の実装は、ユーザおよび/またはさらなるユーザによるチャット語の過去の使用に基づいて決定される「チャット語の尺度」に少なくとも部分的に基づいてチャット語の標準化された形態の代わりにチャット語を含む自然言語出力をユーザに対して提示するために提供することを対象とする。たとえば、ユーザに関するチャット語の変換の過去の事例が記憶される可能性があり、チャット語の尺度がそれらの事例の量に少なくとも部分的に基づいて(たとえば、そのままの数、頻度、および/または量のその他の関数に基づいて)決定される可能性がある。たとえば、ユーザが自動化されたアシスタントに与えられたメッセージの中でチャット語を一貫して使用する場合、そのユーザのチャット語の尺度は、やはりチャット語を含む自動化されたアシスタントからの応答を受け取りたいというそのユーザの望みを示す可能性があり、自動化されたアシスタントは、チャット語の用語の標準化されたバージョンの代わりにそれらの用語を含む少なくともいくつかの応答を提供し得る。チャット語の尺度は、「全体的な」チャット語の尺度であるか、または1つまたは複数の特定のチャット語の用語のグループに適用可能である可能性がある。たとえば、「thx」/「thanks」に関するユーザのチャット語の尺度は、自動化されたアシスタントにそのユーザに対する応答において「thanks」を「thx」によって置き換えさせる可能性があり、一方、「gr8」/「great」に関するユーザの別のチャット語の尺度(または「gr8」/「great」に関するチャット語の尺度がないこと)は、自動化されたアシスタントにそのユーザに対する応答において「great」を「gr8」によって置き換えさせない可能性がある。
【0007】
一部の実装においては、所与のユーザに対する所与の応答にチャット語を組み込むべきかどうかを判定する際に利用される1つまたは複数のチャット語の尺度のうちの少なくとも1つが、所与のユーザに固有である尺度である可能性がある。たとえば、チャット語の尺度は、本明細書において説明される技術によって認識されるチャット語の事例などのそのユーザによって組み立てられたメッセージ内のチャット語の事例に少なくとも部分的に基づいて決定される可能性がある。それらの実装の一部において、ユーザに固有のチャット語の尺度は、ユーザの1つまたは複数のデバイスに固有である可能性がある。たとえば、第1のチャット語の尺度が、ユーザのモバイルコンピューティングデバイスのためにユーザに割り当てられる可能性があり、第2のチャット語の尺度が、ユーザの「デスクトップ」コンピューティングデバイスに割り当てられる可能性がある。一部の実装においては、所与のユーザに対する所与の応答にチャット語を組み込むべきかどうかを判定する際に利用される1つまたは複数のチャット語の尺度のうちの少なくとも1つが、複数のユーザのチャット語の事例に基づく可能性がある。たとえば、チャット語の尺度は、1つもしくは複数の共通の属性(たとえば、地理的領域、年齢層)を有するユーザなどのユーザのグループに固有である可能性があり、ならびに/または利用されるコンピューティングデバイスの種類および/もしくは利用されるメッセージ交換クライアントの種類に固有である可能性がある(たとえば、複数のユーザの中で、メッセージ交換クライアントAが、クライアントBよりもチャット語のより高い頻度を有する可能性がある)。
【0008】
ユーザの自然言語入力は、様々な筋書きで受け取られ、処理される可能性があり、および/または自動化されたシステムによって生成される自然言語出力は、様々な筋書きで生成される可能性がある。たとえば、自然言語入力は、チャット、SMS、および/またはその他のメッセージ交換によるコミュニケーションなどの1人または複数のその他のユーザとのコミュニケーション中にユーザによって与えられた入力である可能性がある。別の例として、自然言語入力は、1つまたは複数のユーザインターフェース入力および出力デバイスを介してユーザとの対話に従事する自動化されたアシスタントに与えられる可能性がある。たとえば、自動化されたアシスタントは、ユーザのコンピューティングデバイス(たとえば、モバイル電話、タブレット、自動化されたアシスタントの機能にのみ充てられたデバイス)にすべてまたは一部を統合される可能性があり、1つまたは複数のユーザインターフェース入力デバイス(たとえば、マイクロフォン、タッチスクリーン)および1つまたは複数のユーザインターフェース出力デバイス(たとえば、スピーカ、ディスプレイスクリーン)を含む可能性がある。また、たとえば、自動化されたアシスタントは、ユーザのクライアントコンピューティングデバイスとは別であるが、ユーザのクライアントコンピューティングデバイスと通信する1つまたは複数のコンピューティングデバイスにすべてまたは一部を実装される可能性がある。
【0009】
一部の実装においては、1つまたは複数のプロセッサによって実行される方法であって、1人または複数のユーザに関するチャット語の尺度を、ユーザのうちの1人または複数によってメッセージ交換スレッドに与えられた複数のメッセージに基づいて決定するステップを含む、方法が提供される。方法は、少なくともユーザのうちのユーザと自動化されたアシスタントとの間の継続中のメッセージ交換スレッドの一部としてユーザによって送られた自然言語入力を受け取るステップをさらに含む。自然言語入力は、ユーザのコンピューティングデバイスのユーザインターフェース入力デバイスを介してユーザによって組み立てられる。方法は、自然言語入力に対する自動化されたアシスタントの応答に含めるための自然言語出力を生成するステップをさらに含む。自然言語出力を生成するステップは、チャット語の尺度に基づいて1つまたは複数のチャット語の用語を自然言語出力に組み込むことを含む。方法は、自動化されたアシスタントの応答をメッセージ交換スレッドに組み込むステップであって、応答が、1つまたは複数のチャット語の用語を伴う自然言語出力を含む、ステップをさらに含む。
【0010】
本明細書において開示されるテクノロジーのこの方法およびその他の実装は、それぞれ、任意で、以下の特徴のうちの1つまたは複数を含む可能性がある。
【0011】
一部の実装において、応答をメッセージ交換スレッドに組み込むステップは、ユーザのコンピューティングデバイス上で動作するメッセージ交換クライアントのグラフィカルユーザインターフェース内に表示されるメッセージ交換スレッドのトランスクリプトに応答を挿入することを含む。
【0012】
一部の実装において、チャット語の尺度は、自然言語出力に含まれる少なくともチャット語の用語を含む1つまたは複数のチャット語の用語のグループに固有であり、1つまたは複数のチャット語の用語を自然言語出力に組み込むことは、チャット語の用語を含むグループに固有であるチャット語の尺度に基づく。
【0013】
一部の実装において、チャット語の用語を自然言語出力に組み込むことは、自然言語入力に応答する初期自然言語出力を特定することと、初期自然言語出力の1つまたは複数の所与の用語がチャット語の用語にマッピングされると決定することと、初期自然言語出力の所与の用語をチャット語の用語によって置き換えることとを含む。
【0014】
一部の実装において、方法は、ユーザのうちの1人または複数に関する追加的なチャット語の尺度を決定するステップをさらに含み、自然言語出力を生成するステップは、チャット語の尺度に基づいておよび追加的なチャット語の尺度に基づいてチャット語の用語のうちの1つまたは複数を自然言語出力に組み込むことを含む。それらの実装の一部において、チャット語の尺度は、ユーザに固有であり、自然言語出力に組み込まれない1つまたは複数の追加的なチャット語の用語を含む複数のチャット語の用語に適用可能である。それらの実装の一部のバージョンにおいて、追加的なチャット語の尺度は、ユーザに固有でなく、自然言語出力に組み込まれるチャット語の用語のうちの少なくとも1つに固有である。
【0015】
一部の実装において、チャット語の尺度は、ユーザに固有である。それらの実装の一部において、メッセージ交換スレッドは、少なくともユーザと自動化されたアシスタントとの間の過去の自動化されたアシスタントのメッセージ交換スレッドを含む。それらの実装の一部のバージョンにおいて、チャット語の尺度を決定するステップは、チャット語がメッセージ内で利用された事例の数に基づき、方法は、数が基づく事例のうちの1つを決定するステップをさらに含む。事例のうちの1つを決定するステップは、過去の自動化されたアシスタントのメッセージ交換スレッドのうちの1つにおいてメッセージのうちの所与のメッセージを受け取ることであって、所与のメッセージが、ユーザによって組み立てられ、少なくとも第1の用語および第2の用語を含む、受け取ることと、少なくとも自然言語入力の第1の用語に関して、第1の用語の第1の標準化を特定することと、自然言語入力に関する候補代替入力を生成することであって、第1の用語を第1の標準化によって置き換えること、および第2の用語かまたは第2の用語の第2の標準化かのどちらかを候補代替入力に含めることを含む、生成することと、自然言語入力に関する第1のスコアを決定することと、候補代替入力に関する第2のスコアを決定することと、第1のスコアおよび第2のスコアに基づいて候補代替入力を選択することと、候補代替入力に基づいて返答内容を決定することと、自動化されたアシスタントによって自然言語入力に対する応答として過去の自動化されたアシスタントのメッセージ交換スレッドのうちの1つに返答内容を組み込むことであって、候補代替入力を選択することに基づく、組み込むことと、候補代替入力を選択することに基づいて事例のうちの1つの表示を記憶することとを含み得る。それらの実装の一部のさらなるバージョンにおいて、自然言語入力に関する第1のスコアを決定することは、少なくとも第1の用語および第2の用語を言語モデルに適用することに基づき、候補代替入力に関する第2のスコアを決定することは、少なくとも第1の標準化、および第2の用語かまたは第2の標準化かのどちらかを言語モデルに適用することに基づく。それらの実装のさらなるバージョンにおいて、チャット語の尺度は、ユーザに固有であり、チャット語の用語に固有であり、候補代替入力を選択することに基づいて事例のうちの1つの表示を記憶することは、少なくとも第1の用語または第1の標準化への表示の関連付けを記憶することをさらに含む。
【0016】
一部の実装において、チャット語の尺度を決定するステップは、チャット語がメッセージ内で利用された事例の数、メッセージ内で使用された1つもしくは複数のチャット語の用語の質、チャット語の用語の普通さ、および/またはチャット語の用語の使用の一貫性に基づく。
【0017】
一部の実装においては、1つまたは複数のプロセッサによって実行される方法であって、少なくともユーザと自動化されたアシスタントとの間のメッセージ交換スレッドの一部としてユーザによって送られた自然言語入力を受け取るステップを含む、方法が提供される。自然言語入力は、少なくとも第1の用語および第2の用語を含み、ユーザのコンピューティングデバイスのユーザインターフェース入力デバイスを介してユーザによって組み立てられる。方法は、少なくとも自然言語入力の第1の用語に関して、第1の用語の第1の標準化を特定するステップと、自然言語入力に関する候補代替入力を生成するステップとをさらに含む。候補代替入力を生成するステップは、第1の用語を第1の標準化によって置き換えること、および第2の用語かまたは第2の用語の第2の標準化かのどちらかを候補代替入力に含めることを含む。方法は、少なくとも第1の用語および第2の用語を言語モデルに適用することに基づいて自然言語入力に関する第1のスコアを決定するステップと、少なくとも第1の標準化、および第2の用語かまたは第2の標準化かのどちらかを言語モデルに適用することに基づいて候補代替入力に関する第2のスコアを決定するステップと、第1のスコアおよび第2のスコアに基づいて候補代替入力を選択するステップと、候補代替入力に基づいて返答内容を決定するステップと、自動化されたアシスタントによって自然言語入力に対する応答としてメッセージ交換スレッドに返答内容を組み込むステップとをさらに含む。メッセージ交換スレッドに返答内容を組み込むステップは、候補代替入力を選択することに基づく。
【0018】
本明細書において開示されるテクノロジーのこの方法およびその他の実装は、それぞれ、任意で、以下の特徴のうちの1つまたは複数を含む可能性がある。
【0019】
一部の実装において、メッセージ交換スレッドに返答内容を組み込むステップは、ユーザのコンピューティングデバイス上で動作するメッセージ交換クライアントのグラフィカルユーザインターフェース内に表示されるメッセージ交換スレッドのトランスクリプトに返答内容を挿入することを含む。
【0020】
一部の実装において、方法は、返答内容に関する返答内容スコアを決定するステップをさらに含み、第1のスコアを決定するステップは、返答内容スコアにさらに基づく。返答内容スコアが決定されるそれらの実装の一部において、返答内容は、1つまたは複数の入力パラメータにマッピングされる準備された応答(Scripted Response)であり、返答内容スコアを決定するステップは、候補代替入力を入力パラメータのうちの少なくとも一部と比較することに基づく。返答内容スコアが決定されるそれらの実装の一部において、返答内容は、候補代替入力に応答する1つまたは複数の検索結果に基づき、返答内容スコアを決定するステップは、検索結果のうちの少なくとも1つのスコアまたは特徴に基づく。それらの実装の一部のバージョンにおいて、返答内容スコアを決定するステップは、検索結果が特定の種類の検索結果であることを検索結果のうちの少なくとも1つの特徴が示すことに基づく。
【0021】
一部の実装において、言語モデルは、n-gramモデルであり、少なくとも第1の用語および第2の用語を言語モデルに適用することに基づいて自然言語入力に関する第1のスコアを決定するステップは、第1の用語と第2の用語との両方を言語モデルに適用することを含む。
【0022】
一部の実装において、方法は、人間の間のメッセージ交換スレッドからのメッセージの標準化に基づいて言語モデルを生成するステップであって、メッセージの標準化が、それらのメッセージのチャット語の用語がチャット語として利用されるとき、それらのチャット語の用語を標準化された用語によって置き換える、ステップをさらに含む。
【0023】
一部の実装において、候補代替入力に基づいて返答内容を決定するステップは、候補代替入力に基づいて1つまたは複数の返答リソースデータベースを検索することを含む。
【0024】
一部の実装においては、1つまたは複数のプロセッサによって実行される方法であって、少なくともユーザと自動化されたアシスタントとの間のメッセージ交換スレッドの一部としてユーザによって送られた自然言語入力を受け取るステップを含む、方法が提供される。方法は、少なくとも自然言語入力の第1の用語に関して、第1の用語の第1の標準化を特定するステップと、自然言語入力に関する候補代替入力を生成するステップとをさらに含む。候補代替入力を生成するステップは、候補代替入力に第1の用語の代わりに第1の標準化を含めることを含む。方法は、少なくとも第1の用語を言語モデルに適用することに基づいて自然言語入力に関する第1のスコアを決定するステップと、少なくとも第1の標準化を言語モデルに適用することに基づいて候補代替入力に関する第2のスコアを決定するステップと、第1のスコアおよび第2のスコアに基づいて候補代替入力を選択するステップと、候補代替入力に基づいて返答内容を決定するステップと、自動化されたアシスタントによって自然言語入力に対する応答としてメッセージ交換スレッドに返答内容を組み込むステップとをさらに含む。メッセージ交換スレッドに返答内容を組み込むステップは、候補代替入力を選択することに基づく。
【0025】
加えて、一部の実装は、1つまたは複数のコンピューティングデバイスの1つまたは複数のプロセッサを含み、1つまたは複数のプロセッサは、関連するメモリに記憶された命令を実行するように動作可能であり、命令は、上述の方法のいずれかの実行を引き起こすように構成される。一部の実装は、上述の方法のいずれかを実行するために1つまたは複数のプロセッサによって実行され得るコンピュータ命令を記憶する非一時的コンピュータ可読記録媒体も含む。
【0026】
上述の概念および本明細書においてより詳細に説明される追加的な概念のすべての組合せは、本明細書において開示される対象の一部であると考えられることを理解されたい。たとえば、本開示の最後に現れる特許請求の対象のすべての組合せは、本明細書において開示される対象の一部であると考えられる。
【発明を実施するための形態】
【0028】
ユーザは、自動化されたアシスタントとのメッセージ交換スレッドの間などに様々な人ではないコンピュータシステムに要求を送るときにチャット語を利用することを望む可能性がある。たとえば、ユーザは、チャット語を利用することおよび/またはユーザのコンピューティングデバイスの制約(たとえば、表示の制約、ユーザインターフェース入力デバイスの制約)に慣れている可能性があり、そのことが、チャット語を利用することをより望ましくする可能性がある。しかし、多くのコンピュータシステムは、チャット語を認識しない可能性があり、チャット語を標準化された形態に適切に解釈しない可能性があり、および/またはたとえ入力がチャット語として意図されていなかったとしても入力をチャット語として誤って解釈する可能性がある。また、多くのコンピュータシステムは、チャット語を用いて応答しない可能性があり、および/または1人または複数のユーザによるメッセージ交換スレッドにおけるチャット語の過去の使用に基づいてチャット語を用いて応答しない可能性がある。
【0029】
本明細書の実装は、コンピューティングデバイスのユーザインターフェース入力デバイスを介してユーザによって組み立てられた自然言語入力--ユーザによって自動化されたシステムに与えられた自然言語入力など--にチャット語が含まれる場合にチャット語を標準化された形態に変換することを対象とする。チャット語の標準化された形態は、自然言語入力に応答する返答内容を決定する際に自動化されたシステムによって利用される可能性があり、その返答内容は、ユーザのコンピューティングデバイスの1つまたは複数のユーザインターフェース出力デバイスを介してユーザに提示される可能性がある。一例として、本明細書の一部の実装は、自然言語入力「c u l8er」を標準化された形態「see you later」に変換するために利用される可能性があり、標準化された形態は、「see you then」、「OK」などの適切な「チャット応答」である返答内容を決定するために自動化されたシステムによって使用される可能性がある。
【0030】
追加的におよび/または代替的に、本明細書の一部の実装は、ユーザおよび/またはさらなるユーザによるチャット語の過去の使用に基づいて決定される少なくとも1つのチャット語の尺度に少なくとも部分的に基づいてチャット語の標準化された形態の代わりにチャット語を含む自然言語出力をユーザに対して提示するために提供することを対象とする。たとえば、ユーザに関するチャット語の変換の過去の事例が記憶される可能性があり、チャット語の尺度がそれらの事例の量に基づいて(たとえば、そのままの数、頻度、および/または量のその他の関数に基づいて)決定される可能性がある。たとえば、ユーザが自動化されたアシスタントに与えられたメッセージの中でチャット語を一貫して使用する場合、そのユーザに関するチャット語の尺度は、やはりチャット語(またはある特定のチャット語の用語)を含む自動化されたアシスタントからの応答を受け取りたいというそのユーザの望みを示す可能性があり、自動化されたアシスタントは、チャット語の用語の標準化されたバージョンの代わりにそれらの用語を含む少なくともいくつかの応答を提供し得る。チャット語の尺度を決定するためのその他の根拠は、使用されたチャット語の用語の質(たとえば、複雑さ)、使用されたチャット語の用語の普通さ(たとえば、「laugh out loud」を意味する「lol」など、標準化された形態を特定のチャット語で置き換えることがその他の人にとってよく行われていることである)、特定のチャット語のユーザによる使用の一貫性(たとえば、ユーザが大半のときに標準化された形態の代わりに特定のチャット語の用語を使用する)などを含む。さらに言えば、チャット語の尺度は、チャット語を含む一般的な応答に関するこれらの属性および/または応答における特定のチャット語の用語の使用の(重み付けされるかまたはそれ以外の)組合せから決定される可能性がある。
【0031】
ここで
図1に目を向けると、本明細書において開示される技術が実装され得る例示的な環境が示される。例示的な環境は、複数のクライアントコンピューティングデバイス106
1-Nおよび自動化されたアシスタント120を含む。自動化されたアシスタント120は
図1においてはクライアントコンピューティングデバイス106
1-Nと別れているように示されているが、一部の実装において、自動化されたアシスタント120のすべてまたは態様は、クライアントコンピューティングデバイス106
1-Nのうちの1つまたは複数によって実装される可能性がある。たとえば、クライアントコンピューティングデバイス106
1が、自動化されたアシスタント120の1つのインスタンスまたは複数の態様を実装する可能性があり、クライアントコンピューティングデバイス106
Nも、自動化されたアシスタント120それらの1つまたは複数の態様の別個のインスタンスを実装する可能性がある。自動化されたアシスタント120の1つまたは複数の態様がクライアントコンピューティングデバイス106
1-Nの遠隔にある1つまたは複数のコンピューティングデバイスによって実装される実装においては、クライアントコンピューティングデバイス106
1-Nおよび自動化されたアシスタント120のそれらの態様は、ローカルエリアネットワーク(LAN)および/または広域ネットワーク(WAN) (たとえば、インターネット)などの1つまたは複数のネットワークを介して通信する可能性がある。
【0032】
クライアントコンピューティングデバイス106
1-Nは、たとえば、デスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、タブレットコンピューティングデバイス、モバイル電話コンピューティングデバイス、ユーザの車両のコンピューティングデバイス(たとえば、車載通信システム、車載エンターテインメントシステム、車載ナビゲーションシステム)、パーソナルアシスタントコンピューティングデバイス、またはコンピューティングデバイスを含むユーザのウェアラブル装置(たとえば、コンピューティングデバイスを有するユーザの腕時計、コンピューティングデバイスを有するユーザのメガネ、仮想もしくは拡張現実コンピューティングデバイス)のうちの1つまたは複数を含み得る。追加的なおよび/または代替的なクライアントコンピューティングデバイスが、提供される可能性がある。一部の実装においては、所与のユーザが、集合的にコンピューティングデバイスの協調する「エコシステム」を形成するユーザ複数のクライアントコンピューティングデバイスを利用して自動化されたアシスタント120とコミュニケーションする可能性がある。しかし、簡潔にするために、本開示において説明される多くの例は、所与のユーザがクライアントコンピューティングデバイス106
1-Nのうちの1つを操作することに焦点を当てる。
【0033】
クライアントコンピューティングデバイス106
1-Nの各々は、メッセージ交換クライアント107
1-Nのうちの対応する1つなどの様々な異なるアプリケーションを動作させる可能性がある。メッセージ交換クライアント107
1-Nは、様々な形態で現れる可能性があり、形態は、クライアントコンピューティングデバイス106
1-N毎に変わる可能性があり、および/または複数の形態が、クライアントコンピューティングデバイス106
1-Nのうちの1つにおいて動作させられる可能性がある。一部の実装において、メッセージ交換クライアント107
1-Nのうちの1つまたは複数は、ショートメッセージングサービス(「SMS」)および/またはマルチメディアメッセージングサービス(「MMS」)クライアント、オンラインチャットクライアント(たとえば、インスタントメッセンジャ、インターネットリレーチャット、または「IRC」など)、ソーシャルネットワークに関連するメッセージングアプリケーション、自動化されたアシスタント120を用いた対話に専用のパーソナルアシスタントメッセージングサービスなどの形態で現れる可能性がある。一部の実装において、メッセージ交換クライアント107
1-Nのうちの1つまたは複数は、クライアントコンピューティングデバイス106のウェブブラウザ(図示せず)またはその他のアプリケーションによってレンダリングされるウェブページまたはその他のリソースによって実装される可能性がある。
【0034】
本明細書においてより詳細に説明されるように、自動化されたアシスタント120は、1つまたは複数のクライアントデバイス106
1-Nのユーザインターフェースの入力および出力デバイスを介して1人または複数のユーザから入力を受け取るおよび/または1人または複数のユーザに出力を提供する。一部の実装において、本明細書に記載のユーザインターフェース入力は、自動化されたアシスタント120をはっきりと対象とする。たとえば、メッセージ交換クライアント107
1-Nのうちの1つが、自動化されたアシスタント120との会話に専用のパーソナルアシスタントメッセージングサービスである可能性があり、パーソナルアシスタントメッセージングサービスを介して与えられたユーザインターフェース入力が、自動化されたアシスタント120に自動的に与えられる可能性がある。また、たとえば、ユーザインターフェース入力は、自動化されたアシスタント120が呼び出されるべきであることを示す特定のユーザインターフェース入力に基づいてメッセージ交換クライアント107
1-Nのうちの1つまたは複数において自動化されたアシスタント120に明示的に振り向けられる可能性がある。たとえば、特定のユーザインターフェース入力は、1つまたは複数のタイピングされた文字(たとえば、@PersonalAssistant)、仮想的なボタンとのユーザのインタラクション(たとえば、タップ、ロングタップ)、言葉による命令(たとえば、「Hey Personal Assistant」)などである可能性がある。一部の実装において、自動化されたアシスタント120は、ユーザインターフェース入力が自動化されたアシスタント120に明示的に振り向けられないときでさえもそのユーザインターフェース入力に応答して1つまたは複数のアクションを実行する可能性がある。たとえば、自動化されたアシスタント120は、ユーザインターフェース入力の内容を調べ、ユーザインターフェース入力の中に特定の用語が存在することに応じておよび/またはその他の手掛かりに基づいて1つまたは複数のアクションを実行する可能性がある。
【0035】
クライアントコンピューティングデバイス106
1-Nの各々および自動化されたアシスタント120は、データおよびソフトウェアアプリケーションを記憶するための1つまたは複数のメモリと、データにアクセスし、アプリケーションを実行するための1つまたは複数のプロセッサと、ネットワークを介した通信を容易にするためのその他の構成要素とを含み得る。クライアントコンピューティングデバイス106
1-Nのうちの1つもしくは複数によっておよび/または自動化されたアシスタント120によって実行される動作は、複数のコンピュータシステムに分散され得る。自動化されたアシスタント120は、たとえば、ネットワークを通じて互いに結合される1つまたは複数の場所の1つまたは複数のコンピュータ上で実行されるコンピュータプログラムとして実装され得る。
【0036】
自動化されたアシスタント120は、用語標準化エンジン122、代替入力エンジン124、採点エンジン126、1つまたは複数のメッセージ生成エンジン128、およびチャット語尺度エンジン130を含み得る。一部の実装において、エンジン122、124、126、128、および/または130のうちの1つまたは複数は省略される可能性がある。一部の実装において、エンジン122、124、126、128、および/または130のうちの1つまたは複数のすべてまたは態様は組み合わされる可能性がある。一部の実装において、エンジン122、124、126、128、および/または130のうちの1つまたは複数は、自動化されたアシスタント120とは別である構成要素に実装される可能性がある。たとえば、エンジン122、124、126、128、および/もしくは130のうちの1つもしくは複数、またはその任意の動作する部分が、クライアントコンピューティングデバイス106
1-Nのうちの1つによって実行される構成要素に実装される可能性がある。
【0037】
図1において、標準化データベース152、言語モデルデータベース154、返答リソースデータベース156、およびチャット語尺度データベース158と通信する自動化されたアシスタント120が示される。データベース152、154、156、および/または158は、下でより詳細に説明され、クライアントコンピューティングデバイス106
1-Nのうちの1つのローカルにある、自動化されたアシスタント120のローカルにある、ならびに/またはクライアントコンピューティングデバイス106
1-Nおよび/もしくは自動化されたアシスタント120の遠隔にある1つまたは複数の媒体などの1つまたは複数の非一時的コンピュータ可読媒体上に設けられる可能性がある。多くの実装において、データベース152、154、156、および/または158のうちの1つまたは複数は組み合わされる可能性がある。
【0038】
用語標準化エンジン122は、受け取られた自然言語入力の中の様々な潜在的なチャット語の用語の標準化を決定する。たとえば、用語標準化エンジン122は、用語「c」に関して標準化「see」、用語「thx」に関して標準化「thanks」、「rvw」に関して標準化「review」および「rearview」などを決定する可能性がある。用語標準化エンジン122は、標準化を生成するために標準化データベース152の1つまたは複数のマッピング、規則、および/またはその他の基準を利用する可能性がある。たとえば、標準化データベース152は、特定のチャット語の用語の、それらの用語の対応する標準化のうちの1つまたは複数へのマッピングを含み得る。たとえば、用語「c」は、単一の標準化「see」にマッピングされる可能性があり、用語「rvw」は、「review」、「rearview」などの複数の標準化にマッピングされる可能性がある。また、たとえば、標準化データベース152は、同じ文字の複数の連続する出現を含み、妥当な標準化された用語ではない用語において、妥当な標準化された用語が得られるまでその文字の出現が削除され得ることを示す規則を定義する可能性がある。たとえば、規則は、「helloooooooo」を「hello」に標準化し、「yessss」を「yes」に標準化し、「yippeeeeeeeee」を「yippee」に標準化し、「cooooolllll」を「cool」および「col」に標準化するなどするために利用され得る。一部の実装において、用語標準化エンジン122は、標準化を決定する際のマッピングおよび/または規則を構成し得る。たとえば、エンジン122は、「wazzaaaaa」を、まず「wazzaaaaa」の重複を削除して「wazza」にし、「wazza」と「what's up」との間のマッピングを特定することによって「what's up」に標準化することができる。「wazzaaaaa」の重複を削除して「what's up」にする際、エンジン122は、同じ文字の複数の連続する出現を含み、妥当な標準化された用語ではない用語において、認められた用語(たとえば、チャット語の用語と標準化された用語との間のマッピングにおいて認められる用語)が得られるまでその文字の出現が削除され得ることを示す規則に依拠する可能性がある。
【0039】
代替入力エンジン124は、受け取られた自然言語入力に関する候補代替入力を生成し、受け取られた自然言語入力の1つまたは複数の用語を(もしあれば)その用語の標準化のうちの1つによって置き換えることによって候補代替入力の各々を生成する。たとえば、受け取られた自然言語入力「tx 4 the rvw」に関して、用語標準化エンジン122は、「tx」をthanksに標準化する可能性があり、「4」を「for」に標準化する可能性があり、「rvw」を「review」および「rearview」に標準化する可能性がある。それらの標準化に基づいて、代替入力エンジンは、候補代替入力「thanks 4 the review」、「tx for the review」、「thanks 4 the rearview」、「thanks for the rearview」、「thanks for the review」、「tx 4 the review」、および「tx 4 the rearview」を生成し得る。
【0040】
採点エンジン126は、代替入力エンジン124によって生成された代替入力の各々と、任意で、代替入力がそれに基づいて生成された自然言語入力とに関するスコアを生成する。採点エンジン126は、受け取られた自然言語入力に対する応答を生成する際にメッセージ生成エンジン128によって使用される選択された入力としてそれらのうちの少なくとも1つを選択するためにスコアを利用する。
【0041】
様々な実装において、採点エンジン126は、スコアを決定するために言語モデル154を利用する。それらの実装のうちの一部において、言語モデル154は、「標準化された」(つまり、チャット語でない)用語を含むメッセージおよび/またはその他のコンテンツのコーパス上で訓練されたn-gram言語モデルである。たとえば、言語モデル154は、「see」、「you」、および「later」が用語「see」、「u」、および「l8r」よりも(言語モデル154を訓練するために使用されるコーパスにおいて)共起しやすいことを示す「see you later」に関するスコアを決定するために利用され得る。これを自然言語入力「thx audio company」および代替入力「thanks audio company」と比較する。そのような状況において、言語モデル154は、「thx」、「company」、および「audio」が「thanks」、「audio」、および「company」よりも共起しやすいと決定する(ひいては、「thx audio company」に関してより良いスコアを決定する)ために利用され得る。一部の実装において、採点エンジン126は、所与の入力(受け取られた自然言語入力および/または代替入力)に関して、ユーザによって自動化されたアシスタント120に与えられた以前の入力の用語および/またはユーザに提示するために自動化されたアシスタント120に与えられた以前の出力の用語を参照することなく、その入力の用語を利用して、言語モデル154に基づいて所与の入力に関するスコアを決定する。一部のその他の実装において、採点エンジン126は、以前の入力(たとえば、直前の入力)および/または以前の出力(たとえば、直前の出力)の用語のうちの1つまたは複数も利用する可能性がある。
【0042】
上述のように、一部の実装において、言語モデル154は、「標準化された」用語を含むメッセージおよび/またはその他のコンテンツのコーパスに基づいて訓練される可能性がある。たとえば、メッセージのコーパスは、2人以上の人間のユーザの間で交換されるメッセージを含む可能性があり、それらのメッセージのチャット語の用語は、1人もしくは複数の人間の査閲者および/または自動化されたシステムによって標準化されたバージョンに変換される。たとえば、「thanks 4 your help」を含むメッセージにおいて、用語「4」は、「for」に標準化される可能性があり、「4」の代わりに「for」を含むメッセージが、言語モデル154を訓練するために利用される可能性がある。一方、「4 X 4 truck」を含むメッセージにおいては、用語「4」の2回の発生が「for」によって置き換えられず、「4 X 4 truck」を含むメッセージが言語モデル154を訓練するためにやはり利用される可能性がある。言い換えると、それらの実装において、言語モデル154は、潜在的なチャット語の用語がそれらの用語がチャット語式に利用されるときにそれらの標準化されたバージョンによって置き換えられた--しかし、それらの潜在的なチャット語の用語がそれらの用語が非チャット語式に利用されるときには維持された--メッセージに基づいて訓練され得る。様々な実装において、ウェブページ、ニュース記事、学術論文、特許出願公開、ビデオなどのインターネットコンテンツにコメントするために与えられたユーザのインターネットのコメントなどの追加的なおよび/または代替的なコーパスが、言語モデル154を訓練するために利用される可能性がある。
【0043】
スコアを決定する一部の実装において、採点エンジン126は、追加的におよび/または代替的に、メッセージ生成エンジン128のうちの1つもしくは複数からの1つもしくは複数の返答内容スコアおよび/または書き換えエンジン(図示せず)からの1つもしくは複数の書き換えスコア(rewrite score)などの1つまたは複数の追加的なスコアを利用する。それらの実装の一部において、採点エンジン126は、言語モデル154に基づいて決定されたスコアのうちの2つ以上の間に十分な違いがないとき、メッセージ生成エンジン128からの返答内容スコア(および/またはその他の追加的なスコア)を利用する。一部のその他の実装において、採点エンジン126は、分析されている1つまたは複数の入力に関するスコア決定の一部としてメッセージ生成エンジン128からの返答内容スコア(および/またはその他の追加的なスコア)を常に利用する可能性があり、任意で、言語モデル154に基づいて決定されたスコアと組み合わせて返答内容スコアを利用する。
【0044】
概して、入力(元の自然言語入力または代替入力)に関してメッセージ生成エンジン128のうちの1つによって提供される返答内容スコアは、その入力に基づいてそのエンジン128によって生成される応答がどれだけ「良い」かを示す。たとえば、エンジン128のうちの1つが、「チャットの応答」を提供する可能性があり、入力と強い相関がある準備された応答がある場合、良い応答を示す返答内容スコアを与える可能性がある。たとえば、返答リソースデータベース156は、準備された応答が適切であるときを示す1つまたは複数の入力パラメータにそれぞれがマッピングされる1つまたは複数の準備されたチャットの応答を含む可能性があり--所与の入力に関する返答内容スコアは、所与の入力の入力パラメータとの比較に基づいて決定される可能性がある。また、たとえば、エンジン128のうちの1つが、「検索結果」からの内容を提供する可能性があり、所与の入力に関する少なくとも1つの検索結果が質の高い検索結果であるおよび/または特定の「種類」(たとえば、「ワンボックス(one box)の結果」、「ナレッジカード(knowledge card)」、「キュレーションされた応答(curated response)」)である場合に良い応答を示す所与の入力に関する返答内容スコアを与える可能性がある。
【0045】
一例として、受け取られた自然言語入力「thx audio」、および代替入力エンジン124が代替入力「thanks audio」を生成したことを仮定する。採点エンジン126が言語モデル154に基づくそれらの入力に関するスコアを生成するが、それらのスコアは互いに近すぎて他方の入力ではなく一方の入力を選択することを正当化することができない(たとえば、よい方のスコアが他方のスコアに対して閾値を満たすことができない)とさらに仮定する。そのような例において、メッセージ生成エンジン128のうちの1つは、「検索結果」からの内容を提供する可能性があり、「thanks audio」に関する別の返答内容スコアよりも良い応答をずっと強く示す「thx audio」に関する返答内容スコアを与える可能性がある。採点エンジン126は、それらの返答内容スコアに少なくとも部分的に基づいて「thanks audio」よりも「thx audio」を選択する可能性がある。
【0046】
別の例として、受け取られた自然言語入力「thx 4 assistance」、および代替入力エンジン124が代替入力「thanks for assistance」を生成したことを仮定する。採点エンジン126が言語モデル154に基づくそれらの入力に関するスコアを生成するが、それらのスコアは互いに近すぎて他方の入力ではなく一方の入力を選択することを正当化することができないとさらに仮定する。そのような例において、メッセージ生成エンジン128のうちの1つは、準備された応答からの内容を提供する可能性があり、返答リソースデータベース156において入力パラメータ「thanks for the [help / assistance / input / info / information / etc.]」に関連付けられる準備された応答「you're welcome」を含む可能性があり、括弧「[]」および括弧内の用語は、その中のいずれかが「thanks for the」と対にされる可能性がある複数の用語を示す。「thanks for assistance」と準備された応答「you're welcome」の入力パラメータとの間の高い適合性に基づいて、そのメッセージ生成エンジン128は、「thx 4 assistance」に関するそのエンジン128からの別の返答内容スコアよりも良い応答をずっと強く示す「thanks for assistance」に関する返答内容スコアを与える可能性がある。採点エンジン126は、それらの返答内容スコアに少なくとも部分的に基づいて「thx 4 assistance」よりも「thanks for assistance」を選択する可能性がある。
【0047】
概して、入力(もとの自然言語入力または代替入力)に関して書き換えエンジンによって与えられた書き換えスコアは、その入力の書き換えがどれだけ「良い」かを示し、書き換えは、その入力に基づいて、および任意で1つまたは複数の以前の入力(またはそれらの以前の入力の選択された代替入力)に基づいて、書き換えエンジンによって生成される。書き換えがどれだけ良いかは、書き換え自体の特徴(たとえば、その書き換えが構文的に正しいか)および/または書き換えに応答する検索結果の特性に基づく可能性がある。一例として、以前の入力「what's the weather on Saturday」、現在の入力「what abt sun」、および「what about Sunday」を含む候補代替入力を仮定する。以前の入力に基づく「what abt sun」の書き換えは、「what's the weather on the Sun」である可能性があり、一方、書き換え「what about Sunday」は、「what's the weather on Sunday」である可能性がある。「what about Sunday」に関する書き換えスコアは、たとえば、それらの書き換えに応答する検索結果の1つまたは複数の特性に基づいて、「what about sun」に関する書き換えスコアよりも良い可能性がある。
【0048】
利用される技術に関係なく、採点エンジン126は、返答リソースデータベース156を利用して選択された入力に応答する返答内容を生成し得るメッセージ生成エンジン128に選択された入力を提供する可能性がある。一部の実装において、メッセージ生成エンジン128は、選択された入力を受け取る前に返答内容を既に生成した可能性がある。たとえば、返答内容は、上述のように、返答内容スコアの生成中に生成済みである可能性がある。生成された返答内容は、自然言語入力を与えたメッセージ交換クライアント107
1-Nに提供され、その自然言語入力に対する応答としてユーザに提示するために提供される。たとえば、返答内容は、メッセージ交換クライアントによって、自然言語入力も含むメッセージ交換スレッドに組み込まれる可能性がある。
【0049】
チャット語尺度エンジン130は、ユーザのうちの1人または複数によってメッセージ交換スレッドに与えられた複数のメッセージ内のチャット語の過去の使用に基づいて1人または複数のユーザに関するチャット語の尺度を決定する。チャット語尺度エンジン130は、メッセージ生成エンジン128のうちの1つまたは複数による利用のためにチャット語尺度データベース158に決定されたチャット語の尺度を記憶する。メッセージ生成エンジン128は、ユーザの自然言語入力に応答してそれらのメッセージ生成エンジン128が生成する返答内容内にチャット語の用語の標準化された用語の代わりにそれらのチャット語の用語を含めるべきかどうかを(任意で、その自然言語入力自体がいずれかのチャット語の用語を含むかどうかにかかわらず)判定する際にユーザに適用可能なチャット語の尺度を利用する可能性がある。
【0050】
一部の実装において、チャット語尺度エンジン130は、チャット語が利用されるメッセージであった場合の数に基づいてチャット語の尺度を決定する。たとえば、チャット語尺度エンジン130は、いかなるチャット語も含まないメッセージの数と比較したいずれかのチャット語を含む(ユーザのグループのうちのユーザの)メッセージの数の関数として(ユーザまたはユーザのグループに関する)「全体的な」チャット語の尺度を決定し得る。また、たとえば、チャット語尺度エンジン130は、追加的におよび/または代替的に、メッセージ内の用語の総数と比較したチャット語の用語である(ユーザのグループのうちのユーザの)メッセージ内の用語の数の関数として(ユーザまたはユーザのグループに関する)「全体的な」チャット語の尺度を決定し得る。
【0051】
一例として、ユーザに関するチャット語の変換の過去の事例が記憶される可能性があり、チャット語の尺度がそれらの事例の量に基づいて(たとえば、そのままの数、頻度、および/または量のその他の関数に基づいて)決定される可能性がある。たとえば、ユーザが自動化されたアシスタントに与えられたメッセージの中でチャット語を一貫して使用する場合、そのユーザに関するチャット語の尺度は、やはりチャット語を含む自動化されたアシスタントからの応答を受け取りたいというそのユーザの望みを示す可能性があり、自動化されたアシスタントは、チャット語の用語の標準化されたバージョンの代わりにそれらの用語を含む少なくともいくつかの応答を提供し得る。チャット語の尺度は、「全体的な」チャット語の尺度であるか、または1つまたは複数の特定のチャット語の用語のグループに適用可能である可能性がある。たとえば、「thx」/「thanks」に関するユーザのチャット語の尺度は、自動化されたアシスタントにそのユーザに対する応答において「thanks」を「thx」によって置き換えさせる可能性があり、一方、「gr8/great」に関するユーザの別のチャット語の尺度は、自動化されたアシスタントにそのユーザに対する応答において「great」を「gr8」によって置き換えさせない可能性がある。
【0052】
一部の実装において、チャット語の尺度は、所与のユーザに固有である可能性がある。たとえば、チャット語の尺度は、本明細書において説明される技術によって認識される事例などのそのユーザによって組み立てられたメッセージ内のチャット語の事例に少なくとも部分的に基づいて決定される可能性がある。それらの実施形態の一部において、チャット語の尺度は、ユーザの1つまたは複数のデバイスに固有である可能性がある(たとえば、ユーザは、「デスクトップ」コンピューティングデバイスよりもモバイルコンピューティングデバイスにおいてよりチャット語を利用しがちである可能性がある)。一部の実装において、チャット語の尺度は、複数のユーザのチャット語の事例に基づく可能性があり、1つもしくは複数の共通の属性(たとえば、地理的領域、年齢層)を有するユーザなどのユーザのグループに固有である可能性があり、ならびに/または利用されるコンピューティングデバイスの種類および/もしくは利用されるメッセージ交換クライアントの種類に固有である可能性がある(たとえば、メッセージ交換クライアントAが、複数のユーザの中でクライアントBよりもチャット語のより高い頻度を有する可能性がある)。一部の実装において、所与のユーザは、少なくともユーザの1つまたは複数のグループに関する閾値のチャット語の尺度に関連するチャット語の用語を含むチャット語などのチャット語を自動化されたアシスタント120がユーザに提供される出力に含めることを明示的に要求するためのオプションを提示される可能性がある。たとえば、ユーザは、チャット語の用語が地理的領域内の人々の間で広く使われている(たとえば、少なくとも地理的領域内のユーザのグループに関する閾値のチャット語の尺度に関連するそれらのチャット語の用語)場合、出力においてそれらのチャット語の用語を受け取ることを選択する可能性がある。
【0053】
一部の実装においては、複数のチャット語の尺度が、1つまたは複数のチャット語の用語をそれらの用語の世紀のバージョンの代わりに利用すべきであるかどうかを判定する際にメッセージ生成エンジン128のうちの1つによって利用され得る。たとえば、メッセージ生成エンジン128は、ユーザの全体的なチャット語の尺度と、「c/see」に固有である(ユーザのまたはユーザのグループの)チャット語の尺度との両方に基づいてユーザに提供される出力において「see」の代わりに「c」を利用すべきかどうかを判定する可能性がある。たとえば、ユーザの全体的なチャット語の尺度がユーザによる「中」程度のチャット語の利用を示すと仮定する。「c/see」に固有であるチャット語の尺度がそれらの用語に関連して高い度合いのチャット語の利用を示す場合、「c」が、生成される出力において「see」の代わりに利用され得る。一方、「c/see」に固有であるチャット語の尺度がそれらの用語に関連して低い度合いのチャット語の利用を示す場合、「see」が、生成される出力において利用され得る。
【0054】
ここで
図2に目を向けて、自動化されたアシスタント120の様々な構成要素のさらなる説明が与えられる。
図2において、ユーザは、コンピューティングデバイス106
1の1つまたは複数のユーザインターフェース入力デバイスを利用して、メッセージ交換クライアント107
1に自然言語入力201を与え、メッセージ交換クライアント107
1は、自然言語入力201を用語標準化エンジン122に送信する。自然言語入力201は、自由形式の入力である可能性があり、たとえば、コンピューティングデバイスの物理的なもしくは仮想的なキーボードを介してユーザによって与えられるタイピングされた入力、またはコンピューティングデバイスのマイクロフォンにユーザによって与えられる発話された入力である可能性がある。自然言語入力201が発話された入力である実装において、その自然言語入力201は、任意で、コンピューティングデバイスによっておよび/または自動化されたアシスタント120の構成要素によってテキスト入力に変換される可能性がある。
【0055】
実施例として、自然言語入力201は、実施例を理解しやすくするために
図2においてやはり括弧に入れて示される「c u l8r」である可能性がある。
【0056】
用語標準化エンジン122は、任意で標準化データベース152の1つまたは複数のマッピング、規則、および/またはその他の基準に基づいて自然言語入力201の用語のうちの1つまたは複数に関する1つまたは複数の標準化を生成する。用語標準化エンジン122は、代替入力エンジン124に標準化された用語202を与える。
【0057】
実施例について続けると、用語標準化エンジン122は、標準化された用語202を生成する可能性があり、「c」が「see」に標準化されており、「u」が「you」に標準化されており、「l8r」が「later」に標準化されている。標準化は、
図2において括弧に入れて示される。
【0058】
代替入力エンジン124は、自然言語入力201の用語のうちの1つに代わって標準化された用語202のうちの少なくとも1つをそれぞれが含む自然言語入力201の代替入力203を生成する。
【0059】
実施例について続けると、自然言語入力201「c u l8r」ならびに標準化された用語「see」、「you」、および「later」に基づいて生成された代替入力203は、「see u l8r」、「c you l8r」、「c u later」、「see you l8r」、「see u later」、「c you later」、および「see you later」を含む。これらも、
図2において括弧に入れて示される。
【0060】
採点エンジン126は、代替入力の各々に関し、任意で自然言語入力201に関するスコアを生成し、スコアに基づいて選択された入力204としてそれらのうちの1つまたは複数の(たとえば、ただ1つ)を選択する。様々な実装において、採点エンジン126は、スコアを決定するために言語モデル154を利用する。それらの実装のうちの一部において、言語モデル154は、「標準化された」(つまり、チャット語でない)用語を含むか、「標準化された」(つまり、チャット語でない)用語に制限されるか、または「標準化された」(つまり、チャット語でない)用語によって支配されるメッセージおよび/またはその他のコンテンツのコーパス上で訓練されたn-gram言語モデルである。
【0061】
実施例について続けると、言語モデル154は、「see」、「you」、および「later」がその他の代替入力203の用語よりも(言語モデル154を訓練するために使用されるコーパスにおいて)共起しやすいことを示す「see you later」に関するスコアを決定するために利用され得る。
【0062】
スコアを決定する一部の実装において、採点エンジン126は、追加的におよび/または代替的に、1つまたは複数のメッセージ生成エンジン128からの1つまたは複数の返答内容スコアを利用する。それらの実装の一部において、採点エンジン126は、言語モデル154に基づいて決定されたスコアのうちの2つ以上の間に十分な違いがないとき、メッセージ生成エンジン128からの返答内容スコアを利用する。概して、入力(元の自然言語入力または代替入力)に関してメッセージ生成エンジン128のうちの1つによって提供される返答内容スコアは、その入力に基づいてそのエンジン128によって生成される応答がどれだけ「良い」かを示す。たとえば、エンジン126のうちの1つが、「チャットの応答」を提供する可能性があり、入力と強い相関がある準備された応答がある場合、良い応答を示す返答内容スコアを与える可能性がある。また、たとえば、エンジン128のうちの1つが、「検索結果」からの内容を提供する可能性があり、入力に関する少なくとも1つの検索結果が質の高い検索結果であるおよび/または特定の「種類」(たとえば、「ワンボックスの結果」、「ナレッジカード」、「キュレーションされた応答」)である場合に良い応答を示す返答内容スコアを与える可能性がある。
【0063】
利用される技術に関係なく、採点エンジン126は、返答リソースデータベース156を利用して選択された入力に応答する返答内容205を生成するメッセージ生成エンジン128に選択された入力204を提供する。返答内容205は、自然言語入力201に対する応答としてユーザに聴覚的におよび/または視覚的に提示するためにメッセージ交換クライアント107
1に提供される。たとえば、返答内容205は、メッセージ交換スレッド内に自然言語入力201と同時に表示するためにメッセージ交換クライアント107
1によってメッセージ交換スレッドに組み込まれる可能性がある。
【0064】
図2には、チャット語尺度エンジン130およびチャット語尺度データベース156も示される。一部の実装において、1つまたは複数のチャット語の用語のそれらのチャット語の用語の標準化された用語への「変換」を含む選択された入力204を決定することに応じて、採点エンジン126は、変換の発生の表示(Indication)ならびに/または変換されたチャット語の用語および/もしくはそれらのチャット語の用語の標準化された用語の表示をチャット語尺度エンジン130に提供し得る。本明細書において説明されるように、一部の実装においては、その表示および/または追加的な表示が、1人または複数のユーザに関する(ならびに任意で1つまたは複数の特定のチャット語の用語および/またはそれらのチャット語の用語の標準化された用語に関する)「チャット語の尺度」を決定するために利用され得る。やはり本明細書において説明されるように、そのチャット語の尺度および/または追加的なチャット語の尺度は、チャット語の用語をそれらのチャット語の用語の標準化された用語の代わりに返答内容205および/または追加的な返答内容に含めるべきかどうかを判定するためにメッセージ生成エンジン128によって利用され得る。
【0065】
実施例について続けると、採点エンジン126は、チャット語を含んでいた自然言語入力が代替入力に変換された「変換」が行われたという全般的な表示をチャット語尺度エンジン130に与え得る。全般的な表示は、ユーザに関する、ユーザのグループに関する、および/またはその他のパラメータに関する全体的なチャット語の尺度を決定するためにチャット語尺度エンジン130によって利用され得る。採点エンジン126は、追加的におよび/または代替的に、自然言語入力のチャット語の用語および/またはチャット語の語句ならびにそれらのチャット語の用語および/またはチャット語の語句の選択された標準化されたバージョンの表示をチャット語尺度エンジン130に与える可能性がある。たとえば、入力201が「c u l8r」であり、選択された入力204が「see you later」である場合、採点エンジン126は、チャット語「c」が「see」に標準化され、チャット語「u」が「you」に標準化され、チャット語「l8r」が「later」に標準化され、および/またはチャット語「c u l8r」が「see you later」に標準化されたという表示をチャット語尺度エンジン130に与える可能性がある。これらの表示は、それらの用語および/または語句に固有である1つまたは複数のチャット語の尺度を生成するためにチャット語尺度エンジン130によって利用される可能性があり、--任意で、メッセージ交換クライアント107
1による、その他のメッセージ交換クライアントによる、および/またはその他のアプリケーションによるそれらの用語および/または語句の変換のその他の事例にさらに基づく可能性がある。
【0066】
メッセージ生成エンジン128は、返答内容205および/または追加的な返答内容にチャット語の用語を含めるべきかどうかを判定する際にデータベース156のチャット語の尺度を利用し得る。実施例について続けると、選択された入力204が「see you later」であり、メッセージ生成エンジン128のうちの1つが選択された入力204に関する準備された応答「see you then」を返答リソースデータベース156から決定すると仮定する。メッセージ交換クライアント107
1のユーザに適用可能であるデータベース156の1つまたは複数のチャット語の尺度に基づいて、メッセージ生成エンジン128は、「see」を「c」によって置き換え、「you」を「u」によって置き換え、出力「c u then」を提供し得る。
【0067】
ここで
図3および
図4に目を向けて、本明細書において説明される様々な構成要素および技術のさらなる説明が与えられる。
図3および
図4は、本明細書において説明される実装によるクライアントコンピューティングデバイス106
1のユーザと自動化されたアシスタント120との間で行われ得る対話の例をディスプレイスクリーン140が表示する
図1のクライアントコンピューティングデバイス106
1をそれぞれ示す。また、ディスプレイスクリーン140は、コンピューティングデバイス106
1に1つまたは複数のアクションを実行させるためにユーザによってインタラクションされ得るシステムインターフェース要素381、382、383を含む。ディスプレイスクリーン140は、ユーザが仮想的なキーボードを介して自然言語入力を生成するために選択し得るテキスト返答インターフェース要素384と、ユーザがマイクロフォンを介して自然言語入力を生成するために選択し得る音声返答インターフェース要素385とをさらに含む。
【0068】
図3は、クライアントコンピューティングデバイス106
1の1つまたは複数のユーザインターフェース入力デバイスを介してユーザによって送られる自然言語入力380A〜Dを含む。
図3は、自動化されたアシスタント120によって生成される応答390A〜390Dをさらに含む。
【0069】
入力380A「Helloooooooooooooo」は、用語標準化エンジン122によって「hello」に標準化される可能性がある。代替入力エンジン124は、代替入力として「hello」を利用する可能性がある。採点エンジン126は、「Helloooooooooooooo」に関する第1のスコア、「hello」に関する第2のスコアを生成し、スコアに基づいて選択された入力として「hello」を選択し、メッセージ生成エンジン128に「hello」を与える可能性がある。メッセージ生成エンジン128のうちの1つが、返答リソースデータベース156内で「hello」にマッピングされるかまたはその他の方法で関連付けられるチャットの応答に基づいて応答390Aを生成し得る。
【0070】
用語標準化エンジン122によって、入力380Bの「gr8」は、「great」に標準化される可能性があり、入力380Bの「thx」は、「thanks」に標準化される可能性がある。代替入力エンジン124は、代替的な入力「gr8 thanks」、「great thx」、および「great thanks」を生成し得る。採点エンジン126は、入力380Bに関するおよび代替入力の各々に関するスコアを生成し得る。一部の実装において、「great thanks」に関するスコアは、本明細書において説明されるように返答内容スコア少なくとも部分的に基づいて生成される可能性があり、その返答内容スコアは、任意で、前の応答390Aおよび/または前の入力380Aを考慮に入れてメッセージ生成エンジン128のうちの1つによって生成される可能性がある。採点エンジン126は、メッセージ生成エンジン128に提供する選択された入力として「great thanks」を選択する。メッセージ生成エンジン128のうちの1つが、返答リソースデータベース156内で「Good to hear」にマッピングされるかまたはその他の方法で関連付けられるチャットの応答に基づいて応答390Bを生成し得る。
【0071】
入力380Cは、「c e o of numbers company?」である。用語標準化エンジン122は、「c」を「see」に標準化し、「e」を「enemy」に標準化し、「o」を「oh」および「over」に標準化する可能性がある。代替入力エンジン124は、代替入力「see e o of numbers company?」、「see enemy over numbers company?」などを生成し得る。採点エンジン126は、入力380Cに関するおよび代替入力の各々に関するスコアを生成し得る。スコアに基づいて、採点エンジン126は、メッセージ生成エンジン128に与えるために入力380C「c e o of numbers company?」を選択し得る。メッセージ生成エンジン128のうちの1つが、入力380Cに関して返された検索結果に基づいて応答390Cを生成する可能性がある。応答390Cは、内容が入力380Cに応答するものであることを示すためのテキスト「Here'swhatIfound:」を含み、架空の「Numbers Company」の架空のCEOに焦点を当てた「カード」を含む。カードは、CEOの画像、CEOの名前、および選択されるときにCEOに関するさらなる情報を(メッセージ交換クライアント107
1内で)ユーザに提示する可能性がある、さらなる情報を見るための選択可能なオプションを含む。
【0072】
入力380D「c u l8r」は、自動化されたアシスタント120によって「see you later」に変換され、準備された応答390D「Later」を与えるために利用され得る。
【0073】
図4は、クライアントコンピューティングデバイス106
1の1つまたは複数のユーザインターフェース入力デバイスを介してユーザによって送られる自然言語入力480A〜Dを含む。
図4は、自動化されたアシスタント120によって生成される応答490A〜490Dをさらに含む。
図4の例は、とりわけ、1つまたは複数のメッセージ生成エンジン128がチャット語を生成される応答490A〜490Dに選択的に組み込むためにクライアントコンピューティングデバイス106
1のユーザに関連するチャット語の尺度をどのように利用し得るかを示す。
【0074】
自動化されたアシスタント120は、入力480A「how r u today?」に応答して応答490A「Gr8 thx -- and you?」を生成する。応答490Aは、チャット語の用語「Gr8」および「thx」を含み、本明細書において説明されるようにチャット語の尺度に基づいてそれらのチャット語の用語を含む可能性がある。一部の実装においては、メッセージ生成エンジン128のうちの1つが、応答490Aが入力480Aに対する準備されたチャット語の応答(または本明細書において説明されるように決定された入力480Aの変換)として示されることに基づいてその応答490Aを決定する可能性がある。そのような実装において、メッセージ生成エンジン128は、応答490Aが「チャット語」の応答として示されていることに基づいて、および閾値を満たす入力480Aを送ったユーザのチャット語の尺度に基づいて、その応答490Aを選択する可能性がある。一部の実装においては、メッセージ生成エンジン128のうちの1つが、まず「Great thanks -- and you?」を入力480Aに対する応答(または本明細書において説明されるように決定された入力480Aの変換)として決定し、それから、「Great」を「Gr8」によって置き換え、「thanks」を「thx」によって置き換えるが、「you」を「u」によって置き換えないことに基づいて応答490Aを決定する可能性がある。たとえば、ユーザのチャット語の尺度は、ユーザが概して「Gr8」および「thx」をチャット語として利用するが、「u」をチャット語としてめったに(またはまったく)利用しないことを示す可能性がある。
【0075】
入力480B「gr8 as well」は、いかなるチャット語の用語も含まない準備された応答490B「Good to hear」によって応答される。たとえば、メッセージ生成エンジン128のうちの1つが、応答490 Bが入力480Bに対する準備されたチャット語の応答(または本明細書において説明されるように決定された入力480Bの変換)として示されることに基づいてその応答490Bを決定する可能性がある。
【0076】
入力480C「Who's the dog in Acme Movie」は、応答490Cによって応答される。メッセージ生成エンジン128のうちの1つが、入力480Cに関して返された検索結果に基づいて応答490Cを生成する可能性がある。応答490Cは、内容がメッセージ480Cに応答するものであることを示すためのテキスト「Here's what I found:」を含み、架空の映画「Acme Movie」の中で演技した架空の犬に焦点を当てた「カード」を含む。カードは、犬の画像、犬の「正式な」名前(WALTER P.)を含み、犬についての追加的な情報を含む。追加的な情報は、架空のAcme Movieにおけるその犬の役としての犬の名前「Great」を含むことが留意される。用語「Great」は、たとえ追加的な情報が応答490Aにあったとしても追加的な情報内で変換されないことがさらに留意される。これは、たとえば、(たとえば、準備された応答に基づいて生成された応答と比較して)検索結果に基づいて生成された応答の用語などの特定の応答の用語の代わりにチャット語の用語を利用しないという規則に基づく可能性がある。
【0077】
入力480D「c u l8r」は、チャット語の用語を含み、本明細書において説明される技術によって生成され得る応答490D「l8r」によって応答される。
【0078】
図5は、チャット語を含む自然言語入力を受け取り、チャット語を標準化された形態に変換し、標準化された形態を利用して自然言語入力に応答する返答内容を生成し、自然言語入力への応答として提示するためにその返答内容を提供する例示的な方法500を示す流れ図を示す。便宜上、流れ図の動作は、動作を実行するシステムに関連して説明される。このシステムは、自動化されたアシスタント120などの様々なコンピュータシステムの様々な構成要素を含み得る。さらに、方法500の動作は特定の順序で示されるが、これは、限定的であるように意図されていない。1つまたは複数の動作が、順序を変えられるか、省略されるか、または追加され得る。
【0079】
ブロック550において、システムは、1つまたは複数のユーザインターフェース入力デバイスを介してユーザによって組み立てられ、メッセージ交換スレッド(たとえば、ユーザと自動化されたアシスタントとの間のスレッドならびに/またはユーザ、自動化されたアシスタント、および1つもしくは複数の追加的なユーザの間のスレッド)においてユーザによって与えられる自然言語入力を受け取る。
【0080】
ブロック552においては、システムが、ブロック550の自然言語入力の1つまたは複数の用語の各々に関する1つまたは複数の標準化を特定する。
【0081】
ブロック554においては、システムが、ブロック554の標準化に基づいてブロック550の自然言語入力に関する候補代替入力を生成する。
【0082】
ブロック556においては、システムが、ブロック554の自然言語入力に関するスコアを決定し、ブロック554において決定された候補代替入力の各々に関するスコアを決定する。一部の実装においては、スコアを決定する際、システムが、ブロック556Aにおいて言語モデルに基づいてスコアのうちの1つもしくは複数を決定し、および/またはブロック556Bにおいて返答内容スコアに基づいてスコアのうちの1つもしくは複数を決定する。
【0083】
ブロック558においては、システムが、スコアに基づいて入力のうちの1つまたは複数(たとえば、ただ1つ)を選択する。特に、システムは、ブロック554の候補代替入力および/またはブロック550の自然言語入力のうちの1つまたは複数をそれらの入力に関するスコアに基づいて選択する。
【0084】
ブロック560においては、システムが、ブロック558において選択された入力に基づいて返答内容を決定する。たとえば、システムは、チャットの応答である返答内容または検索結果の応答である返答内容を決定する可能性がある。
【0085】
ブロック562においては、システムが、ブロック560の返答内容を自然言語入力への応答としてメッセージ変換スレッドに組み込む。
【0086】
図6は、ユーザに関するチャット語の尺度を決定し、ユーザから自然言語入力を受け取り、チャット語の尺度および自然言語入力に基づいて自然言語出力を決定し、自然言語入力に対する応答としてユーザに提示するために自然言語出力を提供する例示的な方法600を示す流れ図を示す。便宜上、流れ図の動作は、動作を実行するシステムに関連して説明される。このシステムは、自動化されたアシスタント120などの様々なコンピュータシステムの様々な構成要素を含み得る。さらに、方法600の動作は特定の順序で示されるが、これは、限定的であるように意図されていない。1つまたは複数の動作が、順序を変えられるか、省略されるか、または追加され得る。
【0087】
ブロック650においては、システムが、ユーザのうちの1人または複数によってメッセージ交換スレッドに与えられたメッセージ内のチャット語の事例の数に少なくとも部分的に基づいて1人または複数のユーザに関するチャット語の尺度を決定する。
【0088】
ブロック652において、システムは、1つまたは複数のユーザインターフェース入力デバイスを介してユーザによって組み立てられ、継続中のメッセージ交換スレッド(たとえば、ユーザと自動化されたアシスタントとの間のスレッドおよび/またはユーザと、自動化されたアシスタントと、1つもしくは複数の追加的なユーザとの間のスレッド)においてユーザによって与えられる自然言語入力を受け取る。
【0089】
ブロック654においては、システムが、ブロック650において決定されたチャット語の尺度に基づいておよびブロック652の自然言語入力に基づいて、1つまたは複数のチャット語の用語を組み込む自然言語出力を決定する。一部の実装において、システムは、ブロック650において決定されたチャット語の尺度に基づいておよび1つまたは複数の追加的なチャット語の尺度に基づいて、1つまたは複数のチャット語の用語を組み込む自然言語出力を決定する。
【0090】
ブロック656においては、システムが、ブロック654の自然言語出力を含む応答を、継続中のメッセージ交換スレッドに組み込む。
【0091】
図7は、本明細書において説明される技術の1つまたは複数の態様を実行するために任意で利用され得る例示的なコンピューティングデバイス710のブロック図である。一部の実装においては、クライアントコンピューティングデバイス106
1-N、自動化されたアシスタント120、および/またはその他の構成要素のうちの1つまたは複数が、例示的なコンピューティングデバイス710の1つまたは複数の構成要素を含む可能性がある。
【0092】
概して、コンピューティングデバイス710は、バスサブシステム712を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ714を含む。これらの周辺デバイスは、たとえば、メモリサブシステム725およびファイルストレージサブシステム726を含むストレージサブシステム724と、ユーザインターフェース出力デバイス720と、ユーザインターフェース入力デバイス722と、ネットワークインターフェースサブシステム716とを含み得る。入力および出力デバイスは、コンピューティングデバイス710とのユーザインタラクションを可能にする。ネットワークインターフェースサブシステム716は、外部ネットワークへのインターフェースを提供し、その他のコンピューティングデバイスの対応するインターフェースデバイスに結合される。
【0093】
ユーザインターフェース入力デバイス722は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックスタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどの音声入力デバイス、マイクロフォン、および/またはその他の種類の入力デバイスを含み得る。概して、用語「入力デバイス」の使用は、コンピューティングデバイス710または通信ネットワークに情報を入力するためのすべての可能な種類のデバイスおよび方法を含むように意図される。
【0094】
ユーザインターフェース出力デバイス720は、ディスプレイサブシステム、プリンタ、ファックスマシン、または音声出力デバイスなどの非視覚的表示を含み得る。ディスプレイサブシステムは、ブラウン管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、プロジェクションデバイス、または可視画像を生成するための何らかのその他のメカニズムを含み得る。ディスプレイサブシステムは、音声出力デバイスなどの非視覚的表示を提供する可能性もある。概して、用語「出力デバイス」の使用は、コンピューティングデバイス710からユーザまたは別のマシンもしくはコンピューティングデバイスに情報を出力するすべての可能な種類のデバイスおよび方法を含むように意図される。
【0095】
ストレージサブシステム724は、本明細書において説明されるモジュールの一部またはすべての機能を提供するプログラミングおよびデータ構造体を記憶する。たとえば、ストレージサブシステム724は、
図5および
図6の方法の選択された態様を実行するための論理を含み得る。
【0096】
これらのソフトウェアモジュールは、概して、プロセッサ714によって単独で、またはその他のプロセッサとの組合せで実行される。ストレージサブシステム724において使用されるメモリ725は、プログラムの実行中の命令およびデータの記憶のための主ランダムアクセスメモリ(RAM) 730と、決まった命令が記憶される読み出し専用メモリ(ROM) 732とを含むいくつかのメモリを含み得る。ファイルストレージサブシステム726は、プログラムおよびデータファイルのための永続的ストレージを提供することができ、ハードディスクドライブ、関連する取り外し可能な媒体を伴うフロッピーディスクドライブ、CD-ROMドライブ、光学式ドライブ、または取り外し可能なメディアカートリッジを含み得る。特定の実装の機能を実装するモジュールは、ストレージサブシステム724内のファイルストレージサブシステム726によって、またはプロセッサ714によりアクセスされ得るその他のマシンに記憶される可能性がある。
【0097】
バスサブシステム712は、コンピューティングデバイス710の様々な構成要素およびサブシステムに意図されたように互いに通信させるためのメカニズムを提供する。バスサブシステム712は単一のバスとして概略的に示されているが、バスサブシステムの代替的な実装は複数のバスを使用する可能性がある。
【0098】
コンピューティングデバイス710は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意のその他のデータ処理システムもしくはコンピューティングデバイスを含む様々な種類である可能性がある。コンピュータおよびネットワークの変わり続ける性質が原因で、
図7に示されたコンピューティングデバイス710の説明は、いくつかの実装を示すことを目的とする特定の例としてのみ意図される。
図7に示されたコンピューティングデバイスよりも多くのまたは
図7に示されたコンピューティングデバイスよりも少ない構成要素を有するコンピューティングデバイス710の多くのその他の構成が、可能である。
【0099】
本明細書において説明されたシステムがユーザについての個人情報を収集するかまたは個人情報を利用し得る状況において、ユーザは、プログラムまたは特徴がユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルなアクションもしくは活動、職業、ユーザの好み、またはユーザの現在の地理的位置についての情報)を収集するかどうかを制御するか、あるいはユーザにより関連性がある可能性があるコンテンツをコンテンツサーバから受け取るべきかどうかおよび/またはどのようにして受け取るべきかを制御する機会を与えられる可能性がある。また、特定のデータが、個人を特定できる情報が削除されるように、記憶されるかまたは使用される前に1つまたは複数の方法で処理される可能性がある。たとえば、ユーザの識別情報が、個人を特定できる情報がユーザに関して決定され得ないか、または地理的位置情報が取得される場合にユーザの地理的位置が(都市、郵便番号、もしくは州のレベルまでになど)一般化される可能性があり、したがって、ユーザの特定の地理的位置が決定され得ないように処理される可能性がある。したがって、ユーザは、情報がユーザについてどのように収集されるかおよび/または使用されるかを制御し得る。
【0100】
いくつかの実装が本明細書において説明され、図示されたが、本明細書において説明された機能を実行するならびに/または結果および/もしくは利点のうちの1つもしくは複数を得るための様々なその他の手段および/または構造が利用される可能性があり、そのような変更および/または修正の各々は本明細書において説明された実装の範囲内にあるとみなされる。より広く、本明細書において説明されたすべてのパラメータ、寸法、材料、および構成は、例示的であるように意図されており、実際のパラメータ、寸法、材料、および/または構成は、教示が使用される特定の1つの応用または複数の応用に依存する。当業者は、本明細書において説明された特定の実装の多くの均等物を通常の実験だけを使用して認識するかまたは突き止めることができる。したがって、上述の実装は単に例として提示されており、添付の請求項およびその均等物の範囲内で、実装が、特に説明され、特許請求されたのとは異なる方法で実施され得ることを理解されたい。本開示の実装は、本明細書において説明されたそれぞれの個々の特徴、システム、品物、材料、キット、および/または方法を対象とする。さらに、2つ以上のそのような特徴、システム、品物、材料、キット、および/または方法の任意の組合せが、そのような特徴、システム、品物、材料、キット、および/または方法が相互に矛盾しない場合は本開示の範囲に含まれる。