(57)【要約】  方法および装置は、ユーザのコンピューティングデバイスを介して少なくとも1人のユーザとのダイアログに関与するために自動メッセージングシステムを利用して、アクションのための特定のサービスエンティティを決定することを対象とする。いくつかの実装形態では、自動メッセージングシステムは、特定のサービスエンティティを決定する際にかつ/またはアクションにとっての1つもしくは複数の基準を決定する際に使用するために、ユーザインターフェース入力をユーザに要請するための複数の質問および/または他のプロンプトを生成し得る。いくつかの実装形態は、決定されたサービスエンティティに基づいて、かつ随意に、ダイアログのユーザインターフェース入力を介して決定されたアクションにとっての1つまたは複数の基準に基づいて、1つまたは複数のコンピューティングアクションを実行することをさらに対象とする。
2019518279.tif 000002
【特許請求の範囲】
【請求項１】
2つ以上のメッセージ交換クライアントを操作する2人以上のユーザ間での進行中のメッセージ交換スレッドを、1つまたは複数のプロセッサによって検査するステップと、
検査する前記ステップに基づいて、前記プロセッサのうちの1つまたは複数によって、
前記メッセージ交換スレッドの1つまたは複数の用語に関連する複数の候補サービスエンティティ、および
前記候補サービスエンティティに関連付けられた少なくとも1つのアクションを決定するステップと、
前記アクションおよび前記候補サービスエンティティに編整されているプロンプトを前記プロセッサのうちの1つまたは複数によって生成するステップと、
前記メッセージ交換クライアントのうちの少なくとも1つを介して前記ユーザのうちの少なくとも1人に提示するために、前記プロセッサのうちの1つまたは複数によって前記プロンプトを前記メッセージ交換スレッドの中に組み込むステップと、
前記プロセッサのうちの1つまたは複数によって前記プロンプトへの少なくとも1つの応答を識別するステップであって、前記応答が、前記ユーザのうちの少なくとも1人によって前記メッセージ交換スレッドの中で提供される、ステップと、
前記プロセッサのうちの1つまたは複数によって、前記候補サービスエンティティのうちの特定のエンティティを前記応答への前記特定のエンティティの適合に基づいて決定するステップと、
前記2人以上のユーザの各々に提示するために、前記特定のエンティティを決定することに基づいて前記プロセッサのうちの1つまたは複数によってグラフィカル要素を前記メッセージ交換スレッドの中に組み込むステップであって、前記グラフィカル要素が、前記特定のエンティティの1つまたは複数の特性を識別する、ステップと
を備える方法。
【請求項２】
前記グラフィカル要素を前記メッセージ交換スレッドの中に組み込むステップは、前記メッセージ交換クライアントのうちの少なくとも1つが、前記メッセージ交換クライアントのうちの前記少なくとも1つのグラフィカルユーザインターフェースにおいて表示される前記進行中のメッセージ交換スレッドの写しの中に前記グラフィカル要素を挿入することを要求するステップを備える、請求項1に記載の方法。
【請求項３】
前記グラフィカル要素が、テキストおよび画像のうちの1つまたは複数を含む、請求項2に記載の方法。
【請求項４】
前記アクション、および前記候補サービスエンティティのうちの少なくとも1つに編整されている、追加プロンプトを前記プロセッサのうちの1つまたは複数によって生成するステップと、
前記メッセージ交換クライアントのうちの少なくとも1つを介して前記ユーザのうちの少なくとも1人に提示するために、前記プロセッサのうちの1つまたは複数によって前記追加プロンプトを前記メッセージ交換スレッドの中に組み込むステップと、
前記プロセッサのうちの1つまたは複数によって前記追加プロンプトへの少なくとも1つの追加応答を識別するステップであって、前記追加応答が、前記ユーザのうちの少なくとも1人によって前記メッセージ交換スレッドの中で提供される、ステップと
をさらに備える、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記プロセッサのうちの1つまたは複数によって1つまたは複数のコンピュータ可読記憶媒体の中でタスクを生成するステップをさらに備え、前記タスクが、
前記ユーザのうちの少なくとも1人に関連付けられており、
前記アクションおよび前記特定のサービスエンティティを対象とし、かつ
前記追加応答に基づく前記アクションにとっての少なくとも第1の基準を含む、
請求項4に記載の方法。
【請求項６】
前記プロセッサのうちの1つまたは複数によって、前記追加応答に基づく前記アクションにとっての少なくとも第1の基準を用いて、前記特定のサービスエンティティに対する前記アクションを起動するステップ
をさらに備える、請求項4または請求項5に記載の方法。
【請求項７】
前記プロンプトを前記メッセージ交換スレッドの中に組み込むステップが、前記メッセージ交換スレッドの前記ユーザの各々に提示するために前記プロンプトを組み込むステップを備える、請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記プロンプトへの少なくとも1つの応答を識別するステップが、前記ユーザのうちの第1のユーザからの前記プロンプトへの少なくとも第1の応答、および前記ユーザのうちの第2のユーザからの前記プロンプトへの第2の応答を識別するステップを含み、前記特定のエンティティを決定するステップが、前記第1の応答および前記第2の応答に基づく、請求項1から7のいずれか一項に記載の方法。
【請求項９】
前記プロンプトへの少なくとも1つの応答を識別するステップが、前記ユーザの各々からの応答を識別するステップを含み、前記特定のエンティティを決定するステップが、前記ユーザからの前記応答の各々に基づく、請求項1から8のいずれか一項に記載の方法。
【請求項１０】
前記プロンプトを生成するステップが、前記メッセージ交換スレッドの前記ユーザの記憶された属性にさらに基づく、請求項1から9のいずれか一項に記載の方法。
【請求項１１】
1つまたは複数のプロセッサによって第1の自然言語入力を受け取るステップであって、前記第1の自然言語入力が、
ユーザと前記1つまたは複数のプロセッサを介して実装された自動メッセージングシステムとの間のダイアログの一部として、前記ユーザのコンピューティングデバイスのユーザインターフェース入力デバイスを介して前記ユーザによって定式化された自由形式入力である、ステップと、
前記第1の自然言語入力に関連する少なくとも1つのアクション、および前記アクションのための複数の候補サービスエンティティを、前記プロセッサのうちの1つまたは複数によって決定するステップであって、前記アクションが、前記候補サービスエンティティによってまたは前記候補サービスエンティティに対して実行され得る、ステップと、
前記アクションおよび前記候補サービスエンティティのうちの少なくとも1つを対象とする情報を要請するように編整されているプロンプトを、前記プロセッサのうちの1つまたは複数によって生成するステップと、
前記ユーザの前記コンピューティングデバイスのユーザインターフェース出力デバイスを介して前記ユーザに提示するために、前記ダイアログの存続中に前記プロセッサのうちの1つまたは複数によって前記プロンプトを提供するステップと、
前記プロンプトの提供に応答して前記プロセッサのうちの1つまたは複数によって、前記プロンプトに応答するとともに前記ユーザと前記自動メッセージングシステムとの間の前記ダイアログの一部として前記ユーザによって提供される、第2の入力を受け取るステップと、
前記第2の入力に基づいて前記プロセッサのうちの1つまたは複数によって、前記アクションおよび前記候補サービスエンティティのうちの少なくとも1つを対象とする追加情報を要請するように編整されている追加プロンプトを生成するステップと、
前記ユーザの前記コンピューティングデバイスのユーザインターフェース出力デバイスを介して前記ユーザに提示するために、前記ダイアログの存続中に前記プロセッサのうちの1つまたは複数によって前記追加プロンプトを提供するステップと、
前記追加プロンプトの提供に応答して前記プロセッサのうちの1つまたは複数によって、前記追加プロンプトに応答するとともに前記ユーザと前記自動メッセージングシステムとの間の前記ダイアログの一部として前記ユーザによって提供される、第3の入力を受け取るステップと、
前記第2の入力および前記第3の入力に基づいて、
前記アクションにとっての1つまたは複数の基準、および
前記アクションが実行されるべき、前記候補サービスエンティティのうちの特定のエンティティを決定するステップと、
前記アクションにとっての前記1つまたは複数の基準、および前記アクションが実行されるべき前記特定のエンティティの、決定に応答して、1つまたは複数のコンピュータ可読記憶媒体の中で前記プロセッサのうちの1つまたは複数によってタスクを生成するステップであって、前記タスクが、
前記ユーザに関連付けられており、
前記アクションおよび前記特定のエンティティを識別し、かつ
前記アクションにとっての前記1つまたは複数の基準を含む、ステップと
を備える方法。
【請求項１２】
前記プロンプトが前記第1の自然言語入力にすぐ引き続き、前記第2の入力が前記プロンプトにすぐ引き続き、前記追加プロンプトが前記第2の入力にすぐ引き続き、前記第3の入力が前記追加プロンプトにすぐ引き続く、請求項11に記載の方法。
【請求項１３】
前記プロンプトを生成するステップが、前記アクションのための候補エンティティのすべてに適用可能な概略的プロトコルのパラメータに基づく、請求項11または請求項12に記載の方法。
【請求項１４】
前記特定のエンティティが、前記第2の入力に基づいて決定され、前記追加プロンプトを生成するステップが、前記特定のエンティティに適用可能な固有プロトコルの追加パラメータに基づき、前記追加パラメータが、前記アクションのための前記候補エンティティのすべてに適用可能なプロトコルの中に含まれない、請求項13に記載の方法。
【請求項１５】
前記プロンプトに応答して受け取られる前記第2の入力が、候補エンティティの初期候補エンティティを識別し、前記方法が、
前記アクションにとっての前記基準のうちの少なくとも1つが前記初期候補エンティティにとって達成可能でないと決定するステップをさらに備え、
前記追加プロンプトを生成するステップは、前記1つまたは複数の基準が前記特定のエンティティに対する前記アクションにとって達成可能であると決定することに基づいて、前記特定のエンティティの通称を前記追加プロンプトの中に組み込むステップを含む、
請求項11から14のいずれか一項に記載の方法。
【請求項１６】
前記プロンプトを生成するステップが、前記ユーザの記憶された属性にさらに基づく、請求項11から15のいずれか一項に記載の方法。
【請求項１７】
前記ダイアログが、前記ユーザ、前記自動メッセージングシステム、および追加ユーザの間にあり、前記プロンプトを生成するステップが、前記追加ユーザの記憶された追加属性にさらに基づく、請求項16に記載の方法。
【請求項１８】
前記ユーザに提示するために前記プロンプトを提供するステップが、前記ユーザの前記コンピューティングデバイスのメッセージ交換クライアントを介した前記第1の自然言語入力との同時表示のために前記プロンプトを提供するステップを備える、請求項11から17のいずれか一項に記載の方法。
【請求項１９】
前記ダイアログが、前記ユーザ、前記自動メッセージングシステム、および追加ユーザの間にあり、前記追加ユーザの追加コンピューティングデバイスの追加メッセージ交換クライアントを介した前記第1の自然言語入力との同時表示のために前記プロンプトを提供するステップをさらに備える、請求項18に記載の方法。
【請求項２０】
前記追加プロンプトを生成するステップが、前記ユーザの現在のロケーション、前記ユーザの時間制約、および前記ユーザのユーザプロファイルのうちの少なくとも1つとの、前記特定のエンティティの特性の比較にさらに基づく、請求項11から19のいずれか一項に記載の方法。
【請求項２１】
メモリおよび1つまたは複数のプロセッサを備えるシステムであって、前記メモリが命令を記憶し、前記命令は、前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、請求項1から20のいずれか一項に記載の方法を実行させる、システム。
【請求項２２】
1つまたは複数のプロセッサによる命令の実行に応答して、前記1つまたは複数のプロセッサに、請求項1から20のいずれか一項に記載の方法を実行させる命令を備える、少なくとも1つの非一時的コンピュータ可読記憶媒体。
【請求項２３】
請求項1から20のいずれか一項に記載の方法を実行するように構成された装置。
【請求項２４】
コンピューティング装置によって実行されたとき、請求項1から20のいずれか一項に記載の方法を実行させる機械可読命令を備えるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アクションのためのエンティティを決定するとともにアクションおよびエンティティに関係する１つまたは複数のコンピューティングアクションを実行するためのプロンプトの自動生成およびプロンプトへのユーザ応答の分析に関する。
【背景技術】
【０００２】
いくつかのインターネットプラットフォームは、特定のサービスエンティティに関連する1つまたは複数のアクションをユーザが実行するのを可能にし得る。しかしながら、プラットフォームは、通常、ユーザが、1つもしくは複数のアクションにとっての基準を選択する前に特定のサービスエンティティを明示的に識別すること、および/または1つもしくは複数のアクションにとっての基準を選択する際に構造化オプションの選択を行うことを必要とする。たとえば、ユーザは、特定のレストランにおける予約を、その特定のレストランのためのウェブページにナビゲートすること、ならびにウェブページのドロップダウンユーザインターフェースメニューから時刻、日付、および人数を選択することによって予約し得る。また、たとえば、ユーザは、企業とのアポイントメントを、その企業のためのウェブページにナビゲートすること、ならびにウェブページのユーザインターフェース要素の中に提示される利用可能なオプションから時刻、日付、およびアポイントメントのタイプを選択することによってスケジュールし得る。
【０００３】
しかしながら、これらおよび/または他の技法は、1つまたは複数の欠点に見舞われることがある。たとえば、技法は、ユーザが最初に特定のサービスエンティティを識別し、次いで、その特定のサービスエンティティに対するアクションの実行を対象とする構造化入力を提供することを必要とすることがある。また、たとえば、技法は、ユーザによる自由形式自然言語入力を介して実行されるべきアクションの、1つまたは複数の(たとえば、すべての)基準の指定を可能にしないことがある。また、たとえば、技法は、アクションを実行しようと試みる際にユーザ入力に基づいて決定される意図、ならびに/または過去のユーザアクションおよび/もしくは他のソースに基づいて決定される意図などの、ユーザの意図に適合されていない固定された構造化フィールドを利用することがある。追加および/または代替の欠点が引き起こされることがある。
【発明の概要】
【課題を解決するための手段】
【０００４】
本明細書の実装形態は、ユーザのコンピューティングデバイスを介した少なくとも1人のユーザとのダイアログに関与するために自動メッセージングシステムを利用して、アクションのための特定のサービスエンティティを決定することを対象とする。いくつかの実装形態では、システムは、アクションを示すがアクションに関連する特定のサービスエンティティを示さないユーザインターフェース入力に応答して、ダイアログに関与する。たとえば、システムは、多くのサービスエンティティに適用可能であり、かつ/あるいは実行されるべきアクションにとっての1つまたは複数の必要なかつ/または所望の基準を指定しない、ユーザによって生成される漠然としたユーザインターフェース入力を受け取ることがある。どんなサービスエンティティが利用可能であるのかをユーザがよく知らない場合、このことはそうであり得る。それらの実装形態のうちのいくつかでは、自動メッセージングシステムは、特定のサービスエンティティを決定する際に使用するための、かつ/あるいはアクションにとっての1つまたは複数の基準を決定する際に使用するための、ユーザインターフェース入力をユーザに要請するための複数の質問および/または他のプロンプトを生成し得る場合であり得る。質問および/またはプロンプトを準備することは、特定のアクションを実行するためにユーザがデバイスに行わなければならないユーザ入力の数を低減し得る。どんなサービスエンティティが利用可能であるのかをよく知らないユーザにとって有益であるばかりでなく、このことは、あまり器用でないユーザ、またはさもなければデバイスにユーザ入力を行うことが難しいユーザにとって、特に利点があり得る。少なくともこれらのユーザにとって、質問および/またはプロンプトを準備することは、たとえば、あまり器用でないことに起因してユーザが間違えるのを救うことによって、デバイスの使用の信頼性および速度を高めることができる。自動メッセージングシステムは、たとえば、ダイアログ中に出現するユーザインターフェース入力、ユーザに関連する記憶された属性、候補エンティティのすべてに適用可能なプロトコル、および/または候補エンティティのサブセットに特有の(たとえば、特定のサービスエンティティに特有の)プロトコルに基づいて、プロンプトのうちの1つまたは複数を生成し得る。
【０００５】
様々な実装形態では、システムは、決定されたサービスエンティティに基づいて、かつ随意に、ダイアログのユーザインターフェース入力を介して決定されたアクションにとっての1つまたは複数の基準に基づいて、1つまたは複数のコンピューティングアクションをさらに実行する。たとえば、システムは、1つまたは複数のコンピュータ可読媒体の中でタスクを生成し得、タスクは、ユーザに関連付けられており、アクションおよび決定された特定のエンティティを識別し、かつアクションにとっての決定された1つまたは複数の基準を含む。システムは、アクションの実行を起動すべき1つまたは複数の他のコンピューティングシステムへタスクを随意に通信し得る。
【０００６】
いくつかの実装形態では、自動メッセージングシステムは、特定の情報をユーザに要請する質問または他のプロンプトをダイアログ中に生成し得、ダイアログ中にユーザによって提供されるユーザインターフェース入力に基づいてプロンプトを自発的に適合させ得る。自動メッセージングシステムによって生成されるプロンプトのうちの少なくともいくつかは、自然言語プロンプトであってよく、ダイアログ中にユーザによって提供されるユーザインターフェース入力のうちの少なくともいくつかは、自然言語自由形式入力であってよい。本明細書で使用する自由形式入力とは、ユーザによって定式化されるとともに、ユーザによる選択のために提示されるオプションのグループに制約されない、入力である。いくつかの実装形態では、ユーザとのダイアログに関与する際に、自動メッセージングシステムは、1つまたは複数のサービスエンティティのために構成された1つまたは複数のプロトコルに基づいて、1つまたは複数のプロンプトを生成し得る。たとえば、プロトコルは、同じクラスのメンバーである複数のサービスエンティティに適用される「概略的」プロトコル、および概略的プロトコルよりも狭く編整された(たとえば、クラスの特定のサービスエンティティなどの、クラスのサブセットに編整された)グループに適用される「固有」プロトコルを含んでよい。
【０００７】
いくつかの実装形態では、1つまたは複数のプロセッサによって実行される方法であって、2つ以上のメッセージ交換クライアントを操作する2人以上のユーザ間での進行中のメッセージ交換スレッドを検査することを含む方法が提供される。方法は、検査することに基づいて、メッセージ交換スレッドの1つまたは複数の用語に関連する複数の候補サービスエンティティ、および候補サービスエンティティに関連付けられた少なくとも1つのアクションを決定することをさらに含む。方法は、アクションおよび候補サービスエンティティに編整されているプロンプトを生成することと、メッセージ交換クライアントのうちの少なくとも1つを介してユーザのうちの少なくとも1人に提示するために、プロンプトをメッセージ交換スレッドの中に組み込むこととをさらに含む。方法は、プロンプトへの少なくとも1つの応答を識別することと、候補サービスエンティティのうちの特定のエンティティを応答への特定のエンティティの適合に基づいて決定することとをさらに含む。応答は、ユーザのうちの少なくとも1人によってメッセージ交換スレッドの中で提供される。方法は、2人以上のユーザの各々に提示するために、特定のエンティティを決定することに基づいてグラフィカル要素をメッセージ交換スレッドの中に組み込むことをさらに含む。グラフィカル要素は、特定のエンティティの1つまたは複数の特性を識別する。
【０００８】
本明細書で開示する技術のこれらおよび他の実装形態は、以下の特徴のうちの1つまたは複数を随意に含んでよい。
【０００９】
いくつかの実装形態では、グラフィカル要素をメッセージ交換スレッドの中に組み込むことは、メッセージ交換クライアントのうちの少なくとも1つが、メッセージ交換クライアントのうちの少なくとも1つのグラフィカルユーザインターフェースの中に表示される進行中のメッセージ交換スレッドの写しの中にグラフィカル要素を挿入することを要求することを含む。それらの実装形態のうちのいくつかでは、グラフィカル要素は、テキストおよび/または画像を含む。
【００１０】
いくつかの実装形態では、方法は、アクション、および候補サービスエンティティのうちの少なくとも1つに編整されている、追加プロンプトを生成することと、メッセージ交換クライアントのうちの少なくとも1つを介してユーザのうちの少なくとも1人に提示するために、追加プロンプトをメッセージ交換スレッドの中に組み込むことと、追加プロンプトへの少なくとも1つの追加応答を識別することとをさらに含む。追加応答は、ユーザのうちの少なくとも1人によってメッセージ交換スレッドの中で提供される。それらの実装形態のいくつかのバージョンでは、方法は、1つまたは複数のコンピュータ可読媒体の中でタスクを生成することをさらに含み、タスクは、ユーザのうちの少なくとも1人に関連付けられており、アクションおよび特定のサービスエンティティを対象とし、かつ追加応答に基づくアクションにとっての少なくとも第1の基準を含む。それらの実装形態のいくつかのバージョンでは、方法は、追加応答に基づくアクションにとっての少なくとも第1の基準を用いて、特定のサービスエンティティに対するアクションを起動することをさらに含む。
【００１１】
いくつかの実装形態では、プロンプトをメッセージ交換スレッドの中に組み込むことは、メッセージ交換スレッドのユーザの各々に提示するためにプロンプトを組み込むことを含む。
【００１２】
いくつかの実装形態では、プロンプトへの少なくとも1つの応答を識別することは、ユーザのうちの第1のユーザからのプロンプトへの少なくとも第1の応答、およびユーザのうちの第2のユーザからのプロンプトへの第2の応答を識別することを含み、特定のエンティティを決定することは、第1の応答および第2の応答に基づく。
【００１３】
いくつかの実装形態では、プロンプトへの少なくとも1つの応答を識別することは、ユーザの各々からの応答を識別することを含み、特定のエンティティを決定することは、ユーザからの応答の各々に基づく。
【００１４】
いくつかの実装形態では、プロンプトを生成することは、メッセージ交換スレッドのユーザの記憶された属性にさらに基づく。
【００１５】
いくつかの実装形態では、1つまたは複数のプロセッサによって実行される方法であって、ユーザと自動メッセージングシステムとの間のダイアログの一部として、ユーザのコンピューティングデバイスのユーザインターフェース入力デバイスを介してユーザによって定式化された自由形式入力である第1の自然言語入力を受け取ることを含む方法が提供される。方法は、第1の自然言語入力に関連する少なくとも1つのアクション、およびアクションのための複数の候補サービスエンティティを決定することをさらに含む。決定されたアクションは、候補サービスエンティティによってまたは候補サービスエンティティに対して実行され得る。方法は、アクションおよび/または候補サービスエンティティを対象とする情報を要請するように編整されているプロンプトを生成することと、ユーザのコンピューティングデバイスのユーザインターフェース出力デバイスを介してユーザに提示するために、ダイアログの存続中にプロンプトを提供することとをさらに含む。方法は、プロンプトの提供に応答して、プロンプトに応答するとともにユーザと自動メッセージングシステムとの間のダイアログの一部としてユーザによって提供される、第2の入力を受け取ることをさらに含む。方法は、第2の入力に基づいて、アクションおよび/または候補サービスエンティティを対象とする追加情報を要請するように編整されている追加プロンプトを生成することと、ユーザのコンピューティングデバイスのユーザインターフェース出力デバイスを介してユーザに提示するために、ダイアログの存続中に追加プロンプトを提供することとをさらに含む。方法は、追加プロンプトの提供に応答して、追加プロンプトに応答するとともにユーザと自動メッセージングシステムとの間のダイアログの一部としてユーザによって提供される、第3の入力を受け取ることをさらに含む。方法は、第2の入力および第3の入力に基づいて、アクションにとっての1つまたは複数の基準、およびアクションが実行されるべき、候補サービスエンティティのうちの特定のエンティティを決定することをさらに含む。方法は、アクションにとっての1つまたは複数の基準、およびアクションが実行されるべき特定のエンティティの、決定に応答して、1つまたは複数のコンピュータ可読媒体の中でタスクを生成することをさらに含み、タスクは、ユーザに関連付けられており、アクションおよび特定のエンティティを識別し、かつアクションにとっての1つまたは複数の基準を含む。
【００１６】
本明細書で開示する技術のこれらのおよび他の実装形態は、以下の特徴のうちの1つまたは複数を随意に含んでよい。
【００１７】
いくつかの実装形態では、プロンプトは第1の自然言語入力にすぐ引き続き、第2の入力はプロンプトにすぐ引き続き、追加プロンプトは第2の入力にすぐ引き続き、第3の入力は追加プロンプトにすぐ引き続く。
【００１８】
いくつかの実装形態では、中間プロンプトおよび応答性中間入力が、第2の入力と追加プロンプトとの間に介在する。
【００１９】
いくつかの実装形態では、プロンプトを生成することは、アクションのための候補エンティティのすべてに適用可能な概略的プロトコルのパラメータに基づく。それらの実装形態のうちのいくつかでは、特定のエンティティは、第2の入力に基づいて決定され、追加プロンプトを生成することは、特定のエンティティに適用可能な固有プロトコルの追加パラメータに基づく。追加パラメータは、アクションのための候補エンティティのすべてに適用可能なプロトコルの中に含まれない。
【００２０】
いくつかの実装形態では、プロンプトに応答して受け取られる第2の入力は、候補エンティティの初期候補エンティティを識別し、方法は、アクションにとっての基準のうちの少なくとも1つが初期候補エンティティにとって達成可能でないと決定することをさらに含む。それらの実装形態のうちのいくつかでは、追加プロンプトを生成することは、1つまたは複数の基準が特定のエンティティに対するアクションにとって達成可能であると決定することに基づいて、特定のエンティティの通称を追加プロンプトの中に組み込むことを含む。
【００２１】
いくつかの実装形態では、プロンプトを生成することは、ユーザの記憶された属性にさらに基づく。それらの実装形態のうちのいくつかでは、ダイアログは、ユーザ、自動メッセージングシステム、および追加ユーザの間にあり、プロンプトを生成することは、追加ユーザの記憶された追加属性にさらに基づく。
【００２２】
いくつかの実装形態では、ユーザに提示するためにプロンプトを提供することは、ユーザのコンピューティングデバイスのメッセージ交換クライアントを介した第1の自然言語入力との同時表示のためにプロンプトを提供することを含む。それらの実装形態のうちのいくつかでは、ダイアログは、ユーザ、自動メッセージングシステム、および追加ユーザの間にあり、方法は、追加ユーザの追加コンピューティングデバイスの追加メッセージ交換クライアントを介した第1の自然言語入力との同時表示のためにプロンプトを提供することをさらに備える。
【００２３】
いくつかの実装形態では、追加プロンプトを生成することは、ユーザの現在のロケーション、ユーザの時間制約、および/またはユーザのユーザプロファイルとの、特定のエンティティの特性の比較にさらに基づく。
【００２４】
加えて、いくつかの実装形態は、1つまたは複数のコンピューティングデバイスの1つまたは複数のプロセッサを含み、ここで、1つまたは複数のプロセッサは、関連するメモリの中に記憶された命令を実行するように動作可能であり、ここで、命令は、上述の方法のいずれかの実行を引き起こすように構成される。いくつかの実装形態はまた、上述の方法のいずれかを実行するために1つまたは複数のプロセッサによって実行可能なコンピュータ命令を記憶する非一時的コンピュータ可読記憶媒体を含む。
【００２５】
より詳細に本明細書で説明する上記の概念および追加の概念のすべての組合せが、本明細書で開示する主題の一部であるものとして企図されることを諒解されたい。たとえば、本開示の末尾に掲載されている特許請求される主題のすべての組合せは、本明細書で開示する主題の一部であるものとして企図される。
【図面の簡単な説明】
【００２６】
【図１】本明細書で開示する実装形態が実施され得る例示的な環境のブロック図である。
【図２Ａ】ユーザのコンピューティングデバイスを介して少なくとも1人のユーザとのダイアログに関与して、アクションのための特定のサービスエンティティおよびアクションにとっての複数の基準を決定すること、ならびに決定されたサービスエンティティ、およびアクションにとっての1つまたは複数の基準に基づいて、1つまたは複数のコンピューティングアクションを実行することの一例を示す図である。
【図２Ｂ】ユーザのコンピューティングデバイスを介して少なくとも1人のユーザとのダイアログに関与して、アクションのための特定のサービスエンティティおよびアクションにとっての複数の基準を決定すること、ならびに決定されたサービスエンティティ、およびアクションにとっての1つまたは複数の基準に基づいて、1つまたは複数のコンピューティングアクションを実行することの一例を示す図である。
【図３Ａ】本明細書で説明する実装形態による、クライアントコンピューティングデバイスのユーザと自動メッセージングシステムとの間に出現し得るダイアログの一例を表示スクリーンが表示している、例示的なクライアントコンピューティングデバイスを示す図である。
【図３Ｂ】本明細書で説明する実装形態による、クライアントコンピューティングデバイスのユーザと自動メッセージングシステムとの間に出現し得るダイアログの別の例を表示スクリーンが表示している、図3Aの例示的なクライアントコンピューティングデバイスを示す図である。
【図４】ユーザのコンピューティングデバイスを介して少なくとも1人のユーザとのダイアログに関与して、アクションのための特定のサービスエンティティおよびアクションにとっての複数の基準を決定すること、ならびに決定されたサービスエンティティ、およびアクションにとっての1つまたは複数の基準に基づいて、1つまたは複数のコンピューティングアクションを実行することの例示的な方法を示すフローチャートである。
【図５】本明細書で説明する実装形態による、表示スクリーンが、ユーザと追加ユーザとの間での進行中のメッセージ交換の一例を表示しており、ユーザと自動メッセージングシステムとの間に出現し得るダイアログを表示している、ユーザの例示的なクライアントコンピューティングデバイスを示す図である。
【図６】進行中のメッセージ交換スレッドに関与される複数のユーザのうちの少なくとも1人のユーザとのダイアログに関与して、アクションのための特定のサービスエンティティおよびアクションにとっての複数の基準を決定すること、ならびに決定されたサービスエンティティ、およびアクションにとっての1つまたは複数の基準に基づいて、1つまたは複数のコンピューティングアクションを実行することの例示的な方法を示すフローチャートである。
【図７】コンピューティングデバイスの例示的なアーキテクチャを示す図である。
【発明を実施するための形態】
【００２７】
本明細書の実装形態は、ユーザのコンピューティングデバイスを介して少なくとも1人のユーザとのダイアログに関与するために自動メッセージングシステムを利用して、アクションのための特定のサービスエンティティを決定することを対象とする。システムは、アクションを示すがアクションに関連する特定のサービスエンティティを示さないユーザインターフェース入力に応答して、ダイアログに関与し得る。それらの実装形態のうちのいくつかでは、自動メッセージングシステムは、特定のサービスエンティティを決定する際の使用のために、かつ/またはアクションにとっての1つもしくは複数の基準を決定する際の使用のために、ユーザインターフェース入力をユーザに要請するための複数のプロンプトを生成し得る。様々な実装形態では、システムは、決定されたサービスエンティティに基づいて、かつ随意に、ダイアログのユーザインターフェース入力を介して決定されたアクションにとっての1つまたは複数の基準に基づいて、1つまたは複数のコンピューティングアクションをさらに実行する。
【００２８】
いくつかの実装形態では、自動メッセージングシステムは、多くのサービスエンティティに適用可能であり、かつ/あるいは実行されるべきアクションにとっての1つまたは複数の必要なかつ/または所望の基準を指定しない、ユーザによって生成される漠然としたユーザインターフェース入力を受け取ることがあり、自動メッセージングシステムは、ユーザとのダイアログに関与して、アクションのための特定のサービスエンティティを選択し得、かつ/またはアクションにとっての1つもしくは複数の基準を決定し得る。一例として、ユーザが、「今夜のテーブルを予約してください(book a table tonight)」、「私のためにステーキハウスにおける予約を取ってください(get me reservations at a steak house)」、または「シカゴへのフライトを予約してください(book a flight to Chicago)」と発話またはタイプすることによって、自動メッセージングシステムとのダイアログを起動すると想定する。それらのシナリオの各々では、ユーザ要求は、多くのサービスエンティティに適用可能であり得(たとえば、テーブルは多くのレストランにおいて予約することができ、複数のステーキハウスが見込まれてよく、多くの航空会社がシカゴへのフライトを提供し得る)、1つまたは複数の所望のかつ/または必要な基準(たとえば、人数、時刻、日付、どの航空会社か)を指定しない。それらの実装形態では、ユーザとのダイアログ中に自動メッセージングシステムによって生成される質問は、特定のサービスエンティティおよび/または必要なかつ/もしくは所望の基準をユーザから抽出するように構成されてよく、ダイアログ中でのユーザの応答に基づいて、ダイアログ中に適合されてよい。
【００２９】
次に図1を参照すると、本明細書で開示する技法が実施され得る例示的な環境が図示される。例示的な環境は、複数のクライアントコンピューティングデバイス1061〜Nおよび自動メッセージングシステム120を含む。自動メッセージングシステム120はクライアントコンピューティングデバイス1061〜Nとは別個として図1に示されるが、いくつかの実装形態では、自動メッセージングシステム120の態様のすべてが、クライアントコンピューティングデバイス1061〜Nのうちの1つまたは複数によって実施され得る。たとえば、クライアントデバイス1061が、自動メッセージングシステム120の1つのインスタンスまたはより多くの態様を実施してよく、クライアントデバイス106Nも、自動メッセージングシステム120のそれらの1つまたは複数の態様の別個のインスタンスを実施してよい。自動メッセージングシステム120の1つまたは複数の態様が、クライアントコンピューティングデバイス1061〜Nから遠隔の1つまたは複数のコンピューティングデバイスによって実施される実装形態では、クライアントコンピューティングデバイス1061〜N、および自動メッセージングシステム120のそれらの態様は、ローカルエリアネットワーク(LAN)および/またはワイドエリアネットワーク(WAN)(たとえば、インターネット)などの、1つまたは複数のネットワークを介して通信し得る。
【００３０】
クライアントデバイス1061〜Nは、たとえば、デスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、タブレットコンピューティングデバイス、モバイルフォンコンピューティングデバイス、ユーザの車両のコンピューティングデバイス(たとえば、車両内通信システム、車両内エンターテインメントシステム、車両内ナビゲーションシステム)、またはコンピューティングデバイスを含むユーザの装着型装置(たとえば、コンピューティングデバイスを有するユーザの時計、コンピューティングデバイスを有するユーザの眼鏡、仮想現実もしくは拡張現実コンピューティングデバイス)のうちの、1つまたは複数を含み得る。追加および/または代替のクライアントコンピューティングデバイスが提供されてよい。いくつかの実装形態では、所与のユーザは、コンピューティングデバイスの協調された「エコシステム」を集合的に形成する複数のクライアントコンピューティングデバイスを利用して、自動メッセージングシステム120と通信し得る。しかしながら、簡潔のために、本開示で説明する例は、ユーザが単一のクライアントコンピューティングデバイス106を操作することに焦点を当てる。
【００３１】
クライアントコンピューティングデバイス1061〜Nの各々は、メッセージ交換クライアント1071〜Nのうちの対応するメッセージ交換クライアントなどの、様々な異なるアプリケーションを動作させ得る。メッセージ交換クライアント1071〜Nは、様々な形式をなして届くことがあり、クライアントコンピューティングデバイス1061〜Nにわたって形式が変わることがあり、かつ/またはクライアントコンピューティングデバイス1061〜Nのうちの単一のクライアントコンピューティングデバイス上で複数の形式が動作させられることがある。いくつかの実装形態では、メッセージ交換クライアント1071〜Nのうちの1つまたは複数は、ショートメッセージングサービス(「SMS」)および/またはマルチメディアメッセージングサービス(「MMS」)クライアント、オンラインチャットクライアント(たとえば、インスタントメッセンジャー、インターネット中継チャット、すなわち「IRC」など)、ソーシャルネットワークに関連するメッセージングアプリケーション、自動メッセージングシステム120との会話に専用のパーソナルアシスタントメッセージングサービスなどという形式をなして届くことがある。いくつかの実装形態では、メッセージ交換クライアント1071〜Nのうちの1つまたは複数は、クライアントコンピューティングデバイス106のウェブブラウザ(図示せず)または他のアプリケーションによってレンダリングされたウェブページまたは他のリソースを介して実施され得る。
【００３２】
より詳細に本明細書で説明するように、自動メッセージングシステム120は、1つまたは複数のクライアントデバイス1061〜Nのユーザインターフェース入力および出力デバイスを介して1人または複数のユーザとのダイアログに関与して、アクションのための特定のサービスエンティティを決定する。自動メッセージングシステム120は、アクションを示すがアクションに関連する特定のサービスエンティティを示さないユーザインターフェース入力に応答して、ダイアログに関与し得る。いくつかの実装形態では、ユーザインターフェース入力は、明示的に自動メッセージングシステム120を対象とする。たとえば、メッセージ交換クライアント1071〜Nのうちの1つが、自動メッセージングシステム120との会話に専用のパーソナルアシスタントメッセージングサービスであってよく、そのパーソナルアシスタントメッセージングサービスを介して提供されるユーザインターフェース入力は、自動メッセージングシステム120に自動的に提供され得る。また、たとえば、ユーザインターフェース入力は、システム120が呼び出されるべきであることを示す特定のユーザインターフェース入力に基づいて、メッセージ交換クライアント1071〜Nのうちの1つまたは複数の中の自動メッセージングシステム120を明示的に対象とし得る。たとえば、特定のユーザインターフェース入力は、タイプされた1つまたは複数の文字(たとえば、@AutomatedMessagingSystem)、仮想ボタンを用いたユーザ対話(たとえば、タップ、長いタップ)、言語的コマンド(たとえば、「やあ、自動メッセージングシステム」)などであってよい。いくつかの実装形態では、自動メッセージングシステム120は、ユーザインターフェース入力が明示的には自動メッセージングシステム120を対象としないときでさえ、ユーザインターフェース入力に応答してダイアログに関与し得る。たとえば、自動メッセージングシステム120は、ユーザインターフェース入力のコンテンツを検査し得、いくつかの用語の、ユーザインターフェース入力における存在に応答して、かつ/または他のキューに基づいて、ダイアログに関与し得る。
【００３３】
クライアントコンピューティングデバイス1061〜Nの各々および自動メッセージングシステム120は、データおよびソフトウェアアプリケーションを記憶するための1つまたは複数のメモリ、データにアクセスするとともにアプリケーションを実行するための1つまたは複数のプロセッサ、ならびにネットワークを介して通信を容易にする他の構成要素を含み得る。クライアントコンピューティングデバイス1061〜Nのうちの1つもしくは複数によって、かつ/または自動メッセージングシステム120によって実行される動作は、複数のコンピュータシステムにわたって分散されてよい。自動メッセージングシステム120は、たとえば、ネットワークを通じて互いに結合されている、1つまたは複数のロケーションにおける1つまたは複数のコンピュータ上で実行するコンピュータプログラムとして実装され得る。
【００３４】
自動メッセージングシステム120は、自然言語プロセッサ122、ユーザ属性エンジン124、アクション決定エンジン126、エンティティ決定エンジン128、メッセージ生成エンジン130、およびタスク管理モジュール132を含み得る。いくつかの実装形態では、エンジン122、124、126、128、130、および/またはモジュール132のうちの1つまたは複数が省略されてよい。いくつかの実装形態では、エンジン122、124、126、128、130、および/またはモジュール132のうちの1つまたは複数のすべてまたは態様が組み合わせられてよい。いくつかの実装形態では、エンジン122、124、126、128、130、および/またはモジュール132のうちの1つまたは複数が、自動メッセージングシステム120とは別個の構成要素の中に実装されてよい。たとえば、122、124、126、128、130、および/または132のうちの1つまたは複数、あるいはそれらの任意の動作可能部分が、クライアントコンピューティングデバイス1061〜Nによって実行される構成要素の中に実装されてよい。
【００３５】
自然言語プロセッサ122は、クライアントコンピューティングデバイス1061〜Nを介してユーザによって生成された自然言語入力を処理し、自動メッセージングシステム120の1つまたは複数の他の構成要素によって使用するために注釈付き出力を生成する。たとえば、自然言語プロセッサ122は、クライアントデバイス1061の1つまたは複数のユーザインターフェース入力デバイスを介してユーザによって生成される自然言語自由形式入力を処理し得る。生成された注釈付き出力は、自然言語入力の1つまたは複数の注釈、および随意に自然言語入力の用語のうちの1つまたは複数(たとえば、すべて)を含む。
【００３６】
いくつかの実装形態では、自然言語プロセッサ122は、自然言語入力における文法的な情報の様々なタイプを識別し注釈を付けるように構成される。たとえば、自然言語プロセッサ122は、それらの文法的な役割を用いて用語に注釈を付けるように構成された発話タガー(speech tagger)の部分を含み得る。たとえば、発話タガーの部分は、各用語に、「名詞」、「動詞」、「形容詞」、「代名詞」などの、発話のその部分を用いてタグ付けし得る。また、たとえば、いくつかの実装形態では、自然言語プロセッサ122は、追加および/または代替として、自然言語入力における用語間の構文関係を決定するように構成された依存関係パーサ(dependency parser)を含み得る。たとえば、依存関係パーサは、どの用語が他の用語を修飾するのか、文の主語および動詞など(たとえば、構文解析木)を決定し得、-そのような依存関係の注釈を作成し得る。
【００３７】
いくつかの実装形態では、自然言語プロセッサ122は、追加および/または代替として、人、組織、ロケーションなどへの参照などの、1つまたは複数のセグメントの中でのエンティティ参照に注釈を付けるように構成されたエンティティタガー(entity tagger)を含み得る。エンティティタガーは、(たとえば、人などのエンティティクラスへのすべての参照の識別を可能にするための)高レベルの粒度、および/または(たとえば、特定の人物などの特定のエンティティへのすべての参照の識別を可能にするための)低レベルの粒度において、エンティティへの参照に注釈を付け得る。エンティティタガーは、特定のエンティティを転換するために自然言語入力のコンテンツに依拠し得、かつ/または特定のエンティティを転換するために知識グラフもしくは他のエンティティデータベース(たとえば、エンティティデータベース154)と随意に通信し得る。
【００３８】
いくつかの実装形態では、自然言語プロセッサ122は、追加および/または代替として、同じエンティティへの参照を1つまたは複数のコンテキストキューに基づいてグループ化すなわち「クラスタ化」するように構成された同一指示レゾルバ(coreference resolver)を含み得る。たとえば、同一指示レゾルバは、自然言語入力「私はAsia Villageを希望します。それを予約してください。(I like Asia Village. Book it please)」において用語「それ(it)」を「Asia Village」に転換するために利用されてよい。
【００３９】
いくつかの実装形態では、自然言語プロセッサ122の1つまたは複数の構成要素は、自然言語プロセッサ122の1つまたは複数の他の構成要素からの注釈に依拠し得る。たとえば、いくつかの実装形態では、固有表現タガー(named entity tagger)は、特定のエンティティへのすべての言及に注釈を付ける際に、同一指示レゾルバおよび/または依存関係パーサからの注釈に依拠し得る。また、たとえば、いくつかの実装形態では、同一指示レゾルバは、同じエンティティへの参照をクラスタ化する際に、依存関係パーサからの注釈に依拠し得る。いくつかの実装形態では、特定の自然言語入力を処理する際に、自然言語プロセッサ122の1つまたは複数の構成要素は、以前の関連入力、および/または特定の自然言語入力の外部の他の関連データを使用して、1つまたは複数の注釈を決定し得る。たとえば、メッセージ交換スレッドの中の第1のユーザは、「私はAsia Villageを希望します。」という入力を提供することがあり、第2のユーザは、「私もです。それを予約しましょう。(Me too. Let's book it)」という応答性入力を提供することがある。「私もです。それを予約しましょう。」を処理する際に、同一指示レゾルバは、「私はAsia Villageを希望します。」という以前の入力を利用して、「それ」を「Asia Village」に転換し得る。
【００４０】
ユーザ属性エンジン124は、自動メッセージングシステム120とのダイアログに関与される少なくとも1人のユーザの1つまたは複数の属性を決定し、自動メッセージングシステム120の1つまたは複数の他の構成要素にそれらの属性を提供する。属性は、たとえば、アクションのための特定のエンティティを決定する際に、アクションにとっての1つまたは複数の基準を決定する際に、かつ/または1人もしくは複数のユーザとのダイアログに対する出力を生成する際に、自動メッセージングシステム120の他の構成要素によって利用され得る。ユーザ属性エンジン124は、1つまたは複数のユーザ属性を記憶し得るユーザ属性データベース152と通信している。様々な実装形態では、ユーザ属性エンジン124および/またはユーザ属性データベース152は、クライアントコンピューティングデバイス1061〜N上に全体的にまたは部分的に実装されてよく、かつ/またはクライアントコンピューティングデバイス1061〜Nによって提供されたデータに基づいて1つまたは複数のユーザ属性を決定し得る。ユーザ属性エンジン124によって決定され得るユーザ属性のいくつかの例は、(たとえば、GPSまたは他のロケーションデータに基づく)ユーザの現在のロケーション、(たとえば、ユーザの電子カレンダーに基づく)ユーザの時間制約、および(たとえば、複数のインターネットサービスにわたるユーザ活動に基づく)ユーザのユーザプロファイルを含む。
【００４１】
アクション決定エンジン126は、クライアントコンピューティングデバイス1061〜Nから受け取られた自然言語入力、および/または自然言語プロセッサ122によって提供される自然言語入力の注釈を利用して、自然言語入力に関係する少なくとも1つのアクションを決定する。いくつかの実装形態では、アクション決定エンジン126は、自然言語入力の中に含まれる1つまたは複数の用語に基づいてアクションを決定し得る。たとえば、アクション決定エンジン126は、1つまたは複数のコンピュータ可読媒体の中で、自然言語入力の中に含まれる1つまたは複数の用語にアクションがマッピングされていることに基づいて、アクションを決定してよい。たとえば、「レストラン予約を行う」というアクションは、「それを予約する(book it)」、「予約する(reserve)」、「予約(reservation)」、「私のためにテーブルをとる(get me a table)」などの、1つまたは複数の用語にマッピングされてよい。
【００４２】
いくつかの実装形態では、アクション決定エンジン126は、エンティティ決定エンジン128によって決定された1つまたは複数の候補エンティティに少なくとも部分的に基づいて、アクションを決定し得る。たとえば、「それを予約してください」という自然言語入力と、「それを予約してください」が、「レストラン予約を行う(making a restaurant reservation)」、「ホテル予約を行う(making a hotel reservation)」、「アポイントメントをとる(making an appointment)」などの、複数の異なるアクションにマッピングされることとを想定する。そのような状況では、アクション決定エンジン126は、エンティティ決定エンジン128によって決定された候補エンティティに基づいて、アクションのうちのどれが適切なアクションであるのかを決定し得る。たとえば、エンティティ決定エンジン128が、複数のレストランのみを候補エンティティとして決定する場合、アクション決定エンジン126は、「レストラン予約を行う」というアクションが適切なアクションであると決定してよい。
【００４３】
エンティティ決定エンジン128は、ユーザインターフェース入力デバイスを介して1人または複数のユーザによって提供される初期入力に基づいて、候補エンティティを決定し、ユーザと自動メッセージングシステム120との間のダイアログ中にユーザによって提供されるさらなる入力に鑑みて、それらの候補エンティティを改善する。エンティティ決定エンジン128は、候補エンティティを決定する際にかつ/またはそれらの候補エンティティを改善する際に、1つまたは複数のリソースを利用する。たとえば、エンティティ決定エンジン128は、自然言語入力自体、自然言語プロセッサ122によって提供される注釈、ユーザ属性エンジン124によって提供されるユーザ属性、エンティティデータベース154、および/またはエンティティプロトコルデータベース156からのエンティティプロトコルを利用してよい。
【００４４】
エンティティデータベース154は、1つまたは複数の非一時的コンピュータ可読媒体上に設けられてよく、複数のエンティティ、エンティティの各々の特性、および随意にそれらのエンティティ間の関係を規定し得る。たとえば、エンティティデータベースは、特定のレストランの識別子、およびロケーション、料理タイプ、営業時間、通称、予約を受け付けるかどうか、そのレストランの格付け、価格表示などの、そのレストランの1つまたは複数の特性を含んでよい。エンティティデータベース154はまた、現在の在庫、1つまたは複数の日付および/または時刻に対する予想される在庫、近くの交通条件などの、エンティティに対する1つまたは複数の動的特性の現在の状態を含んでよい。
【００４５】
エンティティプロトコルデータベース156は、1つまたは複数の非一時的コンピュータ可読媒体上に設けられてよく、各々が1つもしくは複数のサービスエンティティおよび/または1つもしくは複数のアクションにとって適用可能な複数のプロトコルを規定する。各プロトコルは、関連するアクションを実行するための、かつ/または関連する1つもしくは複数のサービスエンティティとともに関連するアクションを実行するための、1つまたは複数の必要なかつ/または所望のパラメータを規定する。たとえば、第1のプロトコルは、レストラン予約アクションに関連する概略的プロトコルであってよく、予約を採用するすべてのレストランに関連付けられてよい。第1のプロトコルは、予約の日付、予約の時刻、および予約のための人数などの、必要なパラメータを規定し得る。また、たとえば、第2のプロトコルは、レストラン予約アクションに関連する第2のプロトコルであってよく、特定のレストランなどの、予約を採用するレストランのサブセットに関連付けられてよい。第2のプロトコルは、ユーザが屋内座席を要望するのかそれとも屋外座席を要望するのか、ブースかそれともテーブルか、ユーザは食事制限があるのかどうかなどの、必要なかつ/または所望のパラメータを規定し得る。
【００４６】
メッセージ生成エンジン130は、関連するクライアントコンピューティングデバイスを介して1人または複数のユーザとのダイアログに関与して、アクションを実行するための特定のエンティティの転換、および/または特定のアクションにとっての1つもしくは複数の基準の転換を可能にする。メッセージ生成エンジン130は、情報をユーザに要請するための質問または他のプロンプトを生成する際に、1つまたは複数のリソースを利用する。たとえば、メッセージ生成エンジン130は、ダイアログ中でのユーザの現在および/または過去の自然言語入力、自然言語プロセッサ122によって提供されるその入力の注釈、ユーザ属性エンジン124によって提供されるユーザ属性、エンティティ決定エンジン128によって決定される1つまたは複数のエンティティ、アクション決定エンジン126によって決定される1つまたは複数のアクション、および/あるいはエンティティプロトコルデータベース156のエンティティプロトコルを利用してよい。メッセージ生成エンジン130は、ダイアログ中にユーザによって提供される自然言語入力によってどんな基準が指定されているのかを決定するとともにアクションに関連するその基準を記憶する、タスク管理モジュール132を含み得る。メッセージ生成エンジン130は、記憶されたそのような基準を利用して、すでに指定されている任意の基準を指定するようにユーザを促す自然言語出力の生成を防止し得る。タスク管理モジュール132は、1つまたは複数のコンピュータ可読媒体の中で、ユーザに関連付けられており、アクションおよび決定された特定のエンティティを識別し、かつアクションにとっての決定された1つまたは複数の基準を含む、タスクをさらに生成し得る。タスク管理モジュール132は、アクションの実行を起動すべき1つまたは複数の他のコンピューティングシステムへタスクを随意に通信し得る。
【００４７】
次に図2Aおよび図2Bを参照すると、自動メッセージングシステム120およびメッセージ交換クライアント1071の様々な構成要素の追加説明が提供される。図2Aおよび図2Bのいくつかの説明が、図3Aからの例を用いて提供される。図3Aは、本明細書で説明する実装形態による、クライアントコンピューティングデバイス1061のユーザと自動メッセージングシステム120との間に出現し得るダイアログの一例を表示スクリーン140が表示している、図1のコンピューティングデバイス1061を示す。詳細には、ダイアログは、ユーザ入力380A〜Eを含み、本明細書で説明する実装形態による自動メッセージングシステム120によって生成され得るプロンプト390A〜Dを含む。表示スクリーン140は、仮想キーボードを介してユーザ入力を生成するためにユーザが選択し得るテキスト応答インターフェース要素384、およびマイクロフォンを介してユーザ入力を生成するためにユーザが選択し得る音声応答インターフェース要素385をさらに含む。表示スクリーン140はまた、コンピューティングデバイス1061に1つまたは複数のアクションを実行させるためにユーザによって対話され得るシステムインターフェース要素381、382、383を含む。
【００４８】
図2Aにおいて、ユーザは、コンピューティングデバイス1061の1つまたは複数のユーザインターフェース入力デバイスを利用して、自然言語入力201Aをメッセージ交換クライアント1071に提供し、メッセージ交換クライアント1071は、自然言語入力201Aを自然言語プロセッサ122へ送信する。自然言語入力201Aは、本明細書で説明するような自由形式入力であってよく、たとえば、コンピューティングデバイスの物理キーボードもしくは仮想キーボードを介してユーザによって提供されるタイプ入力、またはユーザによってコンピューティングデバイスのマイクロフォンに提供される発話入力であってよい。自然言語入力201Bが発話入力である実装形態では、自然言語入力201Bは、コンピューティングデバイスによってかつ/または自然言語プロセッサ122によって、テキスト入力に随意に転写され得る。
【００４９】
一実施例として、自然言語入力201Bは、図3Aのユーザ入力380Aによって図示したような「私のために今夜のテーブルを予約してください(Book me a table tonight)」であってよい。
【００５０】
自然言語プロセッサ122は、自然言語入力201Aを処理し、自然言語入力の様々な注釈を生成する。自然言語プロセッサは、注釈付き出力(たとえば、自然言語入力201Aの用語および生成された注釈)202Aを、アクション決定エンジン126、エンティティ決定エンジン128、およびメッセージ生成エンジン130に提供する。
【００５１】
実施例を続けると、自然言語入力201Bは、図3Aのユーザ入力380Aによって図示したような「私のために今夜のテーブルを予約してください」であってよく、自然言語プロセッサ122は、「予約する」に動詞として注釈を付けてよく、「テーブル」に名詞として注釈を付けてよく、「テーブル」に「予約する」の目的語として注釈を付けてよく、「今夜」に日付(すなわち、今日の日付)および/または時間範囲(たとえば、午後5:00〜12:00)を用いて注釈を付けてよい。自然言語プロセッサ122は、それらの用語および/または注釈のうちの1つまたは複数を、注釈付き出力202Aとして提供し得る。
【００５２】
アクション決定エンジン126は、注釈付き出力202Aの用語および生成された注釈を利用して、自然言語入力201Aに関連する1つまたは複数のアクション203を決定する。アクション決定エンジンは、決定されたアクション203をメッセージ生成エンジン130に提供する。
【００５３】
実施例を続けると、アクション決定エンジン126は、「予約する(book)」を動詞として、また「テーブル」を「予約する」の目的語として示す、自然言語プロセッサ122からの出力に基づいて、「私のために今夜のテーブルを予約してください(Book me a table tonight)」に関連する「レストラン予約を行う」アクションを決定し得る。このことを、自然言語入力201Aが「私はテーブルと本を入手したいのです(I'd like to get a table and a book)」である別の例と比較する。そのような例では、自然言語プロセッサは、「テーブル」および「本(book)」の両方に名詞として注釈を付けることになり、アクション決定エンジン126は、「レストラン予約を行う」アクションを決定しないことになる(ただし、代わりに、「製品を購入する」アクションを決定することがある)。
【００５４】
エンティティ決定エンジン128は、自然言語入力201Aに関連する1つまたは複数の候補エンティティ205Aを決定する。エンティティ決定エンジン128は、決定された候補エンティティ205Aをメッセージ生成エンジン130に提供する。いくつかの実装形態では、エンティティ決定エンジン128は、注釈付き出力202Aの用語および生成された注釈を利用して、候補エンティティ205Aを決定する。たとえば、入力201Aが「シーフードレストランにおける予約」である場合、エンティティ決定エンジン128は、「レストラン」特性を有するとともに「シーフード」料理タイプ特性を有する複数の候補サービスエンティティを、エンティティデータベース154および/または他のリソースから決定し得る。いくつかの実装形態では、エンティティ決定エンジン128は、アクション決定エンジン126によって決定されたアクション203に基づいて、候補エンティティ205Aを決定し得る。たとえば、「予約を行う」という決定されたアクションに対して、エンティティ決定エンジン128は、予約を受け付けるレストランである、候補エンティティを決定し得る。
【００５５】
いくつかの実装形態では、エンティティ決定エンジン128は、候補エンティティを決定する際に、ユーザ属性エンジン124によって決定された1つまたは複数のユーザ属性204を利用する。たとえば、ユーザ属性エンジン124は、現在のロケーション、職場ロケーション、自宅ロケーションなどの、ユーザに関連するロケーションであるユーザ属性204を、ユーザ属性データベース152に基づいて決定してよい。エンティティ決定エンジン128は、候補エンティティを決定する際にロケーションを利用し得る。たとえば、エンジン128は、ロケーションのしきい値距離内にある候補エンティティを決定してよい。ユーザのユーザプロファイルにおけるユーザ属性、ユーザの時間制約などの、追加および/または代替のユーザ属性が、候補エンティティを決定する際にエンジン128によって利用されてよい。
【００５６】
実施例を続けると、エンティティ決定エンジン128は、「私のために今夜のテーブルを予約してください」という自然言語入力201Aに基づいて、複数の候補レストランエンティティを決定し得る。たとえば、エンティティ決定エンジン128は、アクション決定エンジン126によって決定されたアクション203に基づいて、レストランが自然言語入力201Aに関連すると決定してよく、(用語「今夜」の存在、および/または自然言語プロセッサ122によって提供される対応する時間注釈に基づいて)「今夜」営業中であり「今夜」に対して予約を受付け中の複数のレストランを、エンティティデータベース154から識別し得る。エンティティ決定エンジン128は、ユーザ属性エンジン124によって提供されるユーザロケーションユーザ属性204のしきい値距離内にそれらのレストランがあることに基づいて、それらのレストランをさらに決定し得る。
【００５７】
メッセージ生成エンジン130は、アクション203、候補エンティティ205A、用語および注釈202、ならびに/またはエンティティプロトコルデータベース156からのエンティティプロトコルを利用して、自然言語出力206Aを生成する。自然言語出力206Aは、特定のサービスエンティティを決定する際にかつ/またはアクションにとっての1つもしくは複数の基準を決定する際に使用するために、ユーザインターフェース入力をユーザに要請するためのプロンプトである。自然言語出力206Aは、クライアントコンピューティングデバイス1061のユーザインターフェース出力デバイスを介して可聴的かつ/または視覚的にユーザに提示するために、メッセージ交換クライアント1071に提供される。
【００５８】
いくつかの実装形態では、メッセージ生成エンジン130は、アクション203および/または候補エンティティ205Aを利用して、自動メッセージを生成する際に利用するためのエンティティプロトコルを決定する。たとえば、レストラン候補エンティティに対する「レストラン予約を行うこと」アクションに対して、エンジン130は、予約を行うためにすべてのレストランにとって適用可能な概略的エンティティプロトコルを識別し得る。概略的エンティティプロトコルは、それがエンティティプロトコルデータベース156の中で「レストラン予約を行うこと」アクションおよび/または「レストラン」エンティティに割り当てられていることに基づいて、識別され得る。概略的エンティティプロトコルは、予約の日付、予約の時刻、および予約のための人数などの、関連するアクションを実行するための1つまたは複数の必要なかつ/または所望のパラメータを規定し得る。エンジン130は、それらのパラメータのうちの1つもしくは複数に関する情報を要請するための、かつ/またはアクションの実行のための特定のサービスエンティティの決定を可能にするための情報を要請するための、自然言語出力206Aを生成し得る(多くの状況では、それらのパラメータのうちの1つまたは複数が特定のサービスエンティティの決定も可能にし得ることに留意されたい)。いくつかの実装形態では、概略的エンティティプロトコルおよび/または他のプロトコルのパラメータのうちの1つまたは複数は、それらのパラメータに対するプロンプトに含めるためのテキストを含み得るか、または別の方法で示し得る。たとえば、予約のための人数に関係するパラメータは、「いくつに対して」または「何名」などのテキストを含み得る。
【００５９】
いくつかの実装形態では、メッセージ生成エンジン130は、もしあれば、アクションにとってのどんな基準が自然言語入力201Aによって指定されるのかを決定するとともにアクションに関連するその基準を記憶する、タスク管理モジュール132を含む。たとえば、「私のために今夜のテーブルを予約してください」に対して、モジュール132は、用語「今夜」の存在に基づいて(かつ/または、自然言語プロセッサ122からの注釈に基づいて)、現在の日付を決定してよく、現在の日付をアクションの基準として記憶してよい。メッセージ生成エンジン130は、記憶されたそのような基準を利用して、その基準を再び指定するようにユーザを促す自然言語出力206Aの生成を防止し得る(たとえば、「あなたはどの日に予約を希望しますか」と尋ねることを防止するために)。たとえば、メッセージ生成エンジン130が、「予約の日付」に対するパラメータを含む、パラメータを規定するプロトコルを利用する場合、モジュール132は、ユーザインターフェース入力に基づいて決定された現在の日付を、プロトコルの対応するパラメータに割り当ててよい。割当てに基づいて、そのパラメータはエンジン130によって無視されてよく、代わりに他のパラメータに基づいてプロンプトが生成され得る。
【００６０】
実施例を続けると、「私のために今夜のテーブルを予約してください」という受け取られた自然言語入力201Aに応答して、メッセージ生成エンジン130は、「了解、人数は何名で何時にしますか。」というプロンプトを生成し得る。いくつかの実装形態では、エンジン130は、予約を受け付ける複数のレストランに適用可能な概略的プロトコルに基づいて、プロンプトを生成し得る。たとえば、概略的プロトコルは、「予約の日付、予約の時刻、および予約のための人数」というパラメータを規定し得、それがアクション203および/または候補エンティティ205Aに関連付けられていることに基づいて、エンジン130によって識別され得る。さらに、エンジン130は、「人数」パラメータに基づいてプロンプトの中に「何名」を含めてよく、「予約の時刻」パラメータに基づいて「何時」を含めていてよい。エンジン130は、そのパラメータにとっての基準が自然言語入力201A(すなわち、今夜)によって指定されていることに基づいて、「予約の日付パラメータ」に関係するいかなるもの(たとえば、「何日」、「今夜ですか」)も含めなくてよい。
【００６１】
次に図2Bを参照すると、メッセージ交換クライアント1071は、図2Aにおいて提供された自然言語出力206Aに応答してユーザによって生成される、さらなる自然言語入力201Bを提供する。たとえば、ユーザは、コンピューティングデバイス1061の1つまたは複数のユーザインターフェース入力デバイスを利用して、自然言語入力201Bをメッセージ交換クライアント1071に提供し得、メッセージ交換クライアント1071は、自然言語入力201Bを自然言語プロセッサ122へ送信する。
【００６２】
実施例を続けると、自然言語入力201Bは、図3Aのユーザ入力380Bによって図示したような「4名、午後7時、アジア風のカフェ」であってよい。
【００６３】
自然言語プロセッサ122は、自然言語入力201Aを処理し、自然言語入力の様々な注釈を生成する。自然言語プロセッサは、注釈付き出力202Bをエンティティ決定エンジン128およびメッセージ生成エンジン130に提供する。
【００６４】
実施例を続けると、自然言語入力201Bは、図3Aのユーザ入力380Bによって図示したような「4名、午後7時、アジア風のカフェ」であってよく、自然言語プロセッサ122は、「4」に数量として注釈を付けてよく、「7PM」に時刻として注釈を付けてよく、「アジア風のカフェ」に固有表現(たとえば、エンティティのクラス)として注釈を付けてよい。自然言語プロセッサ122は、それらの用語および/または注釈のうちの1つまたは複数を注釈付き出力202Bとして提供し得る。
【００６５】
エンティティ決定エンジン128は、自然言語入力201Bに基づいて、以前に決定された候補エンティティ205Aを改善し、特定のエンティティ、または候補エンティティ205Bの改善されたセットを決定する。エンティティ決定エンジン128は、決定された特定のエンティティ、または候補エンティティ205Bの改善されたセットを、メッセージ生成エンジン130に提供する。候補エンティティの改善されたセットが提供されるいくつかの実装形態では、エンティティ決定エンジン128は、1つまたは複数の基準に基づいて、セットの候補エンティティを随意にランク付けしてよい。たとえば、それらは、全体的な格付け、ユーザによって割り当てられた格付け、(たとえば、ユーザ属性エンジン124によって提供されるような)ユーザの選好への適合、(たとえば、ユーザ属性エンジン124によって提供されるような)ユーザのロケーションまでの距離などに基づいてランク付けされてよい。
【００６６】
実施例を続けると、エンティティ決定エンジン128は、「4名、午後7時、アジア風のカフェ」を含む自然言語入力201Bに基づいて、以前に決定された候補エンティティを改善し得る。たとえば、エンティティ決定エンジン128は、同様にサブセットのエンティティが、エンティティデータベース154の中で「アジア風の料理」、「カフェ」、または「アジア風のカフェ」という特性に関連付けられていることに基づいて、以前に決定された候補エンティティのサブセットを決定してよい。また、たとえば、エンティティ決定エンジン128は、同様にサブセットのエンティティが、午後7:00における4名のための予約を可能にする在庫に(たとえば、エンティティデータベース154の中で)関連付けられていることに基づいて、以前に決定された候補エンティティのサブセットを決定してよい。
【００６７】
メッセージ生成エンジン130は、特定のエンティティおよび/もしくは改善された候補エンティティ205B、ならびに/またはエンティティプロトコルデータベース156からのエンティティプロトコルを利用して、自然言語出力206Bを生成する。自然言語出力206Bは、クライアントコンピューティングデバイス1061のユーザインターフェース出力デバイスを介して可聴的かつ/または視覚的にユーザに提示するために、メッセージ交換クライアント1071に提供される。
【００６８】
実施例を続けると、改善された複数の候補エンティティがエンティティ決定エンジン128によって提供される場合、自然言語出力206Bは、改善された候補エンティティ(「8軒のカフェが...どれにしますか」)の中から選択するようにユーザを促すとともに、改善されたそれらの候補エンティティのうちの4つの特性(通称/名称)を、他の4つを見るためのオプション(「...」)と一緒に示すグラフィカル要素を提示する、図3Aのプロンプト390Bをユーザに提示し得る。グラフィカル要素の提示の表示順序は、エンティティ決定エンジン128によって提供される対応するエンティティの随意のランク付けに基づいてよい。ユーザは、その対応するグラフィカル要素を用いた対話を通じて(たとえば、グラフィカル要素をタップすることによって)、かつ/または図3Aのユーザ入力380Cに示す「私はAsia Villageを希望します。」などのさらなる自然言語入力によって、候補エンティティのうちの1つを選択し得る。
【００６９】
実施例を続けると、エンティティ決定エンジン128が特定のエンティティを決定しており、特定のエンティティをメッセージ生成エンジン130に提供していると想定する。たとえば、「Asia Village」が特定のエンティティであることを示す図3Aのユーザ入力380Cをユーザが提供した後、図2Bの例の別の事例が行われると想定する。それらの実装形態のうちのいくつかでは、エンジン130は、特定のエンティティに適用可能な固有プロトコルをエンティティプロトコルデータベース156から識別し得る。メッセージ生成エンジンは、タスク管理モジュール132によってすでに決定されていない、そのプロトコルの1つまたは複数の追加パラメータにとっての基準を要請するための、自然言語出力206Bを生成し得る。たとえば、固有プロトコルは、「窓際テーブルを予約するかどうか、およびラウンジテーブルを予約するかどうか」を示すパラメータを規定し得る。固有プロトコルのそれらのパラメータに基づいて、エンジン130は、図3Aのプロンプト390Cによって図示したような「窓際テーブルにしますか、それともラウンジテーブルにしますか」という自然言語出力206Bを生成し得る。
【００７０】
図3Aのユーザ入力380Dおよびプロンプト390Dによって図示したように、自動メッセージングシステム120は、固有プロトコルの「窓際テーブルを予約するかどうか、およびラウンジテーブルを予約するかどうか」パラメータにとっての基準を転換するために、またさらなるダイアログに関与し得る。プロンプト390Dにおいて、自動メッセージングシステム120は、概略的プロトコルおよび固有プロトコルのパラメータのすべてに対して基準が決定されていること、ならびにアクションが完了されてよいことを決定することに基づいて、テキスト「それを予約しますか」を含めてよい。「はい」という肯定的ユーザ入力380Eに応答して、タスク管理モジュール132は、ユーザに関連付けられており、決定されたアクションおよび特定のエンティティを識別し、かつアクションにとっての決定された基準を含む、タスクを生成し得る。いくつかの実装形態では、タスク管理モジュール132は、タスクを1つまたは複数の他のコンピューティングシステムへ通信して、それらのコンピューティングシステムによってかつ/またはそれらのコンピューティングシステムからユーザインターフェース出力を受け取る1人もしくは複数の人間によって、アクションの実行を起動し得る。
【００７１】
図3Bは、本明細書で説明する実装形態による、クライアントコンピューティングデバイス1061のユーザと自動メッセージングシステム120との間に出現し得るダイアログの別の例を表示スクリーン140が表示している、図1のコンピューティングデバイス1061を示す。詳細には、図3Bは、自動メッセージングシステム120によって起動されるとともに図3Aのダイアログの後に出現する、ダイアログの一例を示す。図3Bのダイアログは、図3Aのダイアログを介してユーザによって指定されたタスクが完了できないというシステム120による決定に応答して、自動メッセージングシステム120によって起動される。たとえば、自動メッセージングシステム120は、アクションにとっての基準のうちの少なくとも1つが、図3Aのダイアログによって指定された特定の候補エンティティにとって達成可能でないと決定してよい。決定は、1つまたは複数の他のコンピューティングシステムとの通信を介して予約を行うように試みること、およびそれに応答して障害メッセージを受け取ることに基づいてよく、かつ/または特定のサービスエンティティに関連する人間のユーザから受け取られる別個の通信に基づいてよい。
【００７２】
図3Bにおいて、自動メッセージングシステム120は、図3Aのダイアログを介してユーザによって指定されたタスクが、なぜ完了できないのかという説明、他のレストランにおける予約が、図3Aにおいて指定された同じ基準を有する同じアクションに対して予約され得るという表示、およびそれらの他のレストランの特性(通称/名称)を示すグラフィカル要素を含む、プロンプト390Eを有するダイアログを起動する。プロンプト390Eの中に含めるための他のレストランを決定する際に、自動メッセージングシステム120は、レストラン予約アクションが、図3Aのダイアログを介して指定された基準を有するそれらの他のレストランに対して実行され得ることを確認してよい。自動メッセージングシステム120は、そのような決定を行う際に、エンティティデータベース154および/またはエンティティプロトコルデータベース156を利用し得る。たとえば、システム120は、それらが「ラウンジテーブル」および「窓際テーブル」に対する1つまたは複数のパラメータを含むことを確認するために、それらの他のレストランに対する、データベース156のプロトコルを利用し得る。その上、システム120は、他のレストランが利用可能であると決定するために、エンティティデータベース154を随意に利用し得る。自動メッセージングシステム120はまた、ユーザの1つもしくは複数の属性に基づいて他のレストランを選択するために、かつ/またはユーザの属性に基づいて他のレストランをランク付けするために(図3Bにおけるそれらの表示順序に影響を及ぼすことがある)、ユーザ属性エンジン124によって提供されるユーザ属性を随意に利用し得る。
【００７３】
プロンプト390Eに応答して、ユーザは、プロンプト390Eの中で提示された他のエンティティのうちの1つ(「Ginger Cafe」)を指定するとともにユーザがそのエンティティに関するアクション(「それを予約してください」)を行いたいことを指定する、ユーザ入力380Fを提供することによって、ダイアログを存続させる。他の実装形態では、ユーザは、自然言語ユーザインターフェース入力380Fを提供する代わりに、「Ginger Cafe」に対応するプロンプト390Eのグラフィカル要素を選択すること(たとえば、タップすること)によって、ダイアログを存続させてよい。
【００７４】
ユーザインターフェース入力380Fに応答して、自動メッセージングシステム120は、図3Aにおいて指定された基準を用いて「Ginger Cafe」エンティティに対する予約を行うための新たなタスクを作成し得る。自動メッセージングシステム120は、1つまたは複数の他のコンピューティングシステムとさらに通信してそのタスクを達成し得、タスクが完了されていることをユーザに示すさらなる出力390Fを提供する。
【００７５】
図3Aおよび図3B、ならびに本明細書における他の例は、ユーザとのダイアログに関与するためのグラフィカルユーザインターフェースを示す。しかしながら、いくつかの実装形態では、自動メッセージングシステム120によって提供されるプロンプトは、必ずしもそれらのプロンプトを表示することなく、(ユーザのコンピューティングデバイスのスピーカーを介して)可聴的にユーザに伝達されてよい。その上、それらの実装形態のいくつかのバージョンでは、ユーザ入力は、ユーザが言語的ユーザインターフェース入力を提供することを介して提供されてよい。特定の一例として、いくつかの実装形態では、ユーザは、いかなるディスプレイも含まないコンピューティングデバイスを利用する自動メッセージングシステムとのダイアログに関与してよい。
【００７６】
図4は、ユーザのコンピューティングデバイスを介して少なくとも1人のユーザとのダイアログに関与して、アクションのための特定のサービスエンティティおよびアクションにとっての複数の基準を決定すること、ならびに決定されたサービスエンティティ、およびアクションにとっての1つまたは複数の基準に基づいて、1つまたは複数のコンピューティングアクションを実行することの例示的な方法400を示すフローチャートである。便宜上、フローチャートの動作は、動作を実行するシステムを参照しながら説明される。このシステムは、自動メッセージングシステム120などの、様々なコンピュータシステムの様々な構成要素を含み得る。その上、方法400の動作は特定の順序で示されるが、このことは限定的であることを意図しない。1つまたは複数の動作が、並べ替えられてよく、省略されてよく、または追加されてよい。
【００７７】
ブロック452において、システムは、第1の自然言語入力を受け取る。第1の自然言語入力は、ユーザのコンピューティングデバイスのユーザインターフェース入力デバイスを介してユーザによって定式化された自由形式入力であってよい。
【００７８】
ブロック454において、システムは、第1の自然言語入力に基づいてアクションおよび候補エンティティを決定する。たとえば、システムは、第1の自然言語入力の1つまたは複数の用語に基づいて、アクションおよび複数の候補サービスエンティティを決定し得る。いくつかの実装形態では、システムは、エンティティデータベース、ならびに/またはアクションおよび複数の候補サービスエンティティを決定する際に第1の自然言語入力を提供したユーザのユーザ属性を利用し得る。
【００７９】
ブロック456において、システムは、ブロック454において決定されたアクションおよび/または候補エンティティに基づいてプロンプトを生成する。いくつかの実装形態では、プロンプトは、アクションのためのかつ/または候補エンティティのためのプロトコルに基づいてよい。たとえば、プロトコルは、アクションおよび/または候補エンティティに関連付けられてよく、候補エンティティに関連するアクションを達成するための、1つまたは複数の所望のかつ/または必要なパラメータを規定し得る。システムは、プロンプトを生成する際に、プロトコルに対して規定されたパラメータを利用し得る。たとえば、システムは、パラメータのうちの1つまたは複数にとっての基準を提供するユーザ入力を要請するためのプロンプトを生成してよい。
【００８０】
ブロック458において、システムは、生成されたプロンプトを提供する。生成されたプロンプトは、ユーザのコンピューティングデバイスを介して視覚的かつ/または可聴的にユーザに提示するために提供され得る。
【００８１】
ブロック460において、システムは、プロンプトに応答してさらなる入力を受け取る。いくつかの実装形態では、さらなる入力は、ユーザのコンピューティングデバイスのユーザインターフェース入力デバイスを介してユーザによって定式化された自由形式自然言語入力であってよい。
【００８２】
ブロック462において、システムは、特定のエンティティが、受け取られている入力に基づいて転換され得るかどうかを決定する。たとえば、システムは、ブロック460において受け取られたさらなる入力に鑑みて、ブロック456において決定された候補エンティティを改善して、それらの候補エンティティが特定のエンティティに転換され得るかどうかを決定し得る。
【００８３】
システムが、特定のエンティティが転換され得ないと決定する場合、システムは、ブロック464に進み、追加プロンプトを生成する。いくつかの実装形態では、追加プロンプトは、ブロック456において随意に決定されたプロトコルに基づき、かつ/またはブロック454において決定された候補エンティティのうちの1つもしくは複数に基づく。たとえば、システムは、それらの特定のパラメータが、ブロック452および460において受け取られた入力によって指定されないことに鑑みて、ブロック456において決定されたプロトコル用の1つまたは複数の特定のパラメータを要請するための追加プロンプトを生成し得る。いくつかの実装形態では、追加プロンプトは、ブロック462において決定された候補エンティティの改善されたグループに基づく。たとえば、ブロック462において、ブロック454において決定された候補エンティティは、ブロック460の入力および/または他の要因に基づいて、サブセットに改善され得る。追加プロンプトは、サブセットのエンティティの1つまたは複数の特性(たとえば、通称)を含むように、かつサブセットの特定のエンティティを指定しかつ/またはサブセットのさらなるサブセットを指定するさらなるユーザ入力を要請するように、生成され得る。
【００８４】
ブロック464において追加プロンプトを生成した後、システムは、次いで、ブロック458および460に進み、次いで、特定のエンティティが、ブロック460の第2の反復において受け取られているまたさらなる入力に基づいて転換され得るかどうかを、ブロック462において再び決定する。
【００８５】
システムが、特定のエンティティがブロック462において(ブロック462の第1の反復または後続の反復のいずれかにおいて)転換され得ると決定する場合、システムは、随意のブロック466に進み、ここで、システムは、特定のエンティティのためのプロトコルに基づいてかつ受け取られた入力に基づいて、追加プロンプトを生成する。たとえば、システムは、特定のエンティティに適用可能な固有プロトコルを識別してよく、ブロック452においてまたはブロック460の反復のいずれかにおいて提供されたユーザ入力に基づいてすでに決定されていない、そのプロトコルの1つまたは複数のパラメータにとっての基準を要請するための自然言語出力を生成してよい。
【００８６】
随意のブロック468において、システムは、ブロック466において生成されたプロンプトを提供する。随意のブロック470において、システムは、ブロック468において生成されたプロンプトに応答して、さらなる入力を受け取る。いくつかの実装形態では、システムは、ブロック470において、ブロック470のさらなる入力に基づいてかつ/またはブロック452および460の前の入力に基づいて、特定のエンティティのためのプロトコルによって規定されたパラメータのすべてにとっての基準が決定され得るかどうかを決定し得る。1つまたは複数のパラメータの基準が決定され得ない場合、システムは、ブロック466、468、および470の1つまたは複数の追加の反復を実行して、さらなる入力を要請してよく、さらなる入力に基づいてそれらのパラメータを決定し得る。
【００８７】
ブロック472において、システムは、前のブロックにおいて受け取られた入力に基づいてタスクを生成する。たとえば、システムは、ユーザに関連付けられており、決定されたアクションおよび特定のエンティティを識別し、かつアクションにとっての決定された基準を含む、タスクを生成してよい。いくつかの実装形態では、システムは、それらのコンピューティングシステムによるかつ/またはユーザインターフェース出力をそれらのコンピューティングシステムから受け取る1人または複数の人間による、アクションの実行を起動すべき1つまたは複数の他のコンピューティングシステムへタスクを通信し得る。
【００８８】
本明細書で説明するように、いくつかの実装形態では、本明細書で説明する技法は、複数のユーザ間での進行中のメッセージ交換スレッドの中で実施され得る。次に図5および図6を参照すると、それらの実装形態のうちのいくつかのさらなる説明が提供される。たとえば、図5は、表示スクリーン140が、ユーザと追加ユーザとの間での進行中のメッセージ交換スレッドの一例を表示しており、かつ本明細書で説明する実装形態による、クライアントコンピューティングデバイス1061のユーザと自動メッセージングシステム120との間に出現し得るダイアログを表示している、図1のコンピューティングデバイス1061を示す。図5の表示スクリーン140はまた、コンピューティングデバイス1061に1つまたは複数のアクションを実行させるためにユーザと対話され得るシステムインターフェース要素581、582、583を含む。
【００８９】
本明細書で説明するように、多くの実装形態では、図5における自動メッセージングシステム120によって生成されるプロンプトおよび/または他のコンテンツのうちの1つまたは複数(たとえば、すべて)は、コンピューティングデバイス1061を介してユーザにメッセージ交換スレッドの一部として表示され得るかまたは別の方法で(たとえば、可聴的に)提示され得るだけでなくメッセージ交換スレッドの他のユーザにも、それらのユーザのコンピューティングデバイスを介してメッセージ交換スレッドの一部として表示されてよい。やはり本明細書で説明するように、多くの実装形態では、メッセージ交換スレッドの他のユーザも、自動メッセージングシステム120によって生成されるプロンプトに応答して入力を提供してよく、自動メッセージングシステム120は、他のユーザによって提供される入力に基づいて、さらなるプロンプトおよび/または他のコンテンツを生成してよい。
【００９０】
図5において、コンピューティングデバイス1061のユーザは、メッセージ交換スレッドの中でメッセージ580Aを提供し、メッセージ580Aは、メッセージ交換クライアントを介して、メッセージ交換スレッドの中の他のユーザ(「Jack」、「Diane」、「Joe」)の対応するメッセージ交換クライアントに提供される。他のユーザは、対応するメッセージ582A、584A、および586Aを用いてメッセージ580Aに応答する。コンピューティングデバイス1061のユーザは、次いで、「@AMS」をメッセージの中に含めることによって、メッセージ580Bの中で自動メッセージングシステム120を明示的に呼び出す。他の実装形態では、自動メッセージングシステム120は、代替のユーザインターフェース入力を介して明示的に呼び出されてよく、かつ/または明示的な呼出しなしに(たとえば、進行中のメッセージ交換スレッドの用語および/または他のキューに基づいて)ダイアログに関与してよい。
【００９１】
メッセージ580Aは、「7:00と8:00との間で我々のために予約を取ってくれる」をさらに含む。それに応答して、自動メッセージングシステム120は、メッセージ交換スレッドの中に挿入するためのプロンプト590Aを提供し、ここで、プロンプト590Aは、自動メッセージングシステム120がアクション(予約を行うこと)に対するサービスエンティティ(レストラン)を識別していること、ならびにメッセージ580A、582A、584A、および586Aから決定された基準に基づいてそれらのサービスエンティティを識別していることを示す。プロンプト590Aは、識別されたサービスエンティティの中から選択するようにユーザをさらに促し(「どれにしますか」)、それらのサービスエンティティの特性(通称/名称)を示すグラフィカル要素を提示する。
【００９２】
いくつかの実装形態では、自動メッセージングシステム120のエンティティ決定エンジン128は、メッセージ580A、582A、584A、および586Aの分析に基づいて、プロンプト590Bのサービスエンティティを決定してよく、それらのサービスエンティティに基づいてエンジン130によってプロンプトを生成するために、それらのサービスエンティティをメッセージ生成エンジン130に提供してよい。たとえば、エンティティ決定エンジン128は、メッセージ580Aに基づく「シーフード」という料理タイプ特性を有するエンティティであって、メッセージ580Bに基づいて7:00と8:00との間に利用可能であり、4人のユーザがメッセージ交換スレッドの中に含まれることと、ユーザのうちの1人(Joe)が、その人が同席しないことを示すメッセージ586Aを提供したこととを決定することに基づいて、その時刻における3人に対して利用可能である、エンティティを決定し得る。いくつかの実装形態では、エンティティ決定エンジン128は、サービスエンティティを決定する際に、メッセージ交換スレッドのユーザのうちの1人または複数(たとえば、全員)のユーザ属性を利用し得る。たとえば、エンティティ決定エンジン128は、メッセージ交換スレッドのユーザの各々に対して、ユーザロケーション属性のしきい値距離内にあるサービスエンティティを決定してよい。
【００９３】
プロンプト590Bに応答して、コンピューティングデバイス1061のユーザは、プロンプト590Bのエンティティのうちの1つ(「River House」)を指定するとともに予約のための時刻(「8:00」)を指定する、さらなる入力580Cを提供する。いくつかの他の実装形態では、メッセージ交換スレッドの別のユーザがさらなる入力を提供してよい。また他の実装形態では、メッセージ交換スレッドの複数のユーザがさらなる入力を提供してよく、自動メッセージングシステム120は、それらの入力の各々に基づいて特定のエンティティを決定してよい。たとえば、自動メッセージングシステム120は、最も多い入力によって示される特定のエンティティを選択してよく、または1つもしくは複数の基準に基づいて(たとえば、選択された特定のエンティティが、より良好な格付けを有すること、ユーザのうちの1人または複数により近いことなどに基づいて)、入力の中で別のエンティティに「結び付け」られている特定のエンティティを選択してよい。
【００９４】
自動メッセージングシステム120は、屋内座席と屋外座席との間での選択を要請するためのさらなるプロンプト590Bを提供する。いくつかの実装形態では、メッセージングシステム120のメッセージ生成エンジン130は、「River House」エンティティに特有のプロトコルに基づいて、かつメッセージ交換スレッドの前のメッセージによって指定されていないパラメータ(たとえば、「屋内座席にしますかそれとも屋外座席にしますか」)をプロトコルが規定すると決定することに基づいて、プロンプト590Bを生成する。
【００９５】
プロンプト590Bに応答して、コンピューティングデバイス1061のユーザは、アクションにとっての基準(屋外座席)を指定するさらなる入力580Dを提供する。いくつかの他の実装形態では、メッセージ交換スレッドの別のユーザがさらなる入力を提供してよい。また他の実装形態では、メッセージ交換スレッドの複数のユーザがさらなる入力を提供してよく、自動メッセージングシステム120は、それらの入力の各々に基づいて特定のエンティティを決定してよい。たとえば、コンピューティングデバイス1061のユーザおよび/またはメッセージ交換スレッドの中の別のユーザは、自動メッセージングシステム120が「採決」を行うことを要求してよく、自動メッセージングシステム120は、屋内座席と屋外座席との間で選択するようにユーザに要求するプロンプトを、コンピューティングデバイス1061のユーザ、ならびにJackおよびDianeに(ただし随意に、Joeは同席しないことを示したので、Joeにではなく)提供し得る。
【００９６】
さらなる入力580Dに応答して、自動メッセージングシステム120は、予約アクションが完了していることを識別し(「予約しました」)、特定のエンティティを識別し(「River House、123 River Road」)、かつ予約アクションにとっての基準を識別する(「8:00、3名、屋外座席」)、グラフィカル要素であるさらなるコンテンツ590Cを提供する。さらなるコンテンツ590Cは、選択されたとき、特定のエンティティ、および/またはアクションにとっての基準に特有である、実行されるべき1つまたは複数の追加のコンピューティングアクションを引き起こす、ディープリンク(「カレンダーに追加」および「道案内」)をさらに含む。たとえば、ユーザのうちの1人による「カレンダーに追加」の選択は、ユーザのコンピューティングデバイスに、特定のエンティティの通称を含むとともにアクションにとっての基準を含むエントリを、ユーザのカレンダーに追加させ得る。また、たとえば、ユーザのうちの1人による「道案内」の選択は、ユーザのコンピューティングデバイスに、コンピューティングデバイスの現在のロケーションから「123 River Road」への道案内を取得するためのパラメータを用いて、地図作成アプリケーションをオープンさせ得る。
【００９７】
図5は、複数のユーザ間での進行中のメッセージ交換スレッドにおいて本明細書で説明する技法を実施する特定の例を示すが、変形形態が可能である。たとえば、いくつかの実装形態では、自動メッセージングシステム120は、進行中のメッセージ交換スレッドの1人または複数のユーザとのダイアログに関与して、タスクを自発的に作成するかまたはそのアクションおよび特定のエンティティに関係するタスクを実行することなく、アクションのための特定のエンティティを転換し得る。たとえば、図5において、プロンプト580Cに応答して、自動メッセージングシステム120は、特定のエンティティの1つまたは複数の特性、ならびにユーザがリンクを選択するとともに1つまたは複数の別個のアプリケーションおよび/またはシステムを介してタスクを実行することを可能にする、1つまたは複数のリンク(たとえば、ディープリンク)をメッセージ交換スレッドの中に組み込んでよい。
【００９８】
図6は、進行中のメッセージ交換スレッドに関与される複数のユーザのうちの少なくとも1人のユーザとのダイアログに関与して、アクションのための特定のサービスエンティティおよびアクションにとっての複数の基準を決定すること、ならびに決定されたサービスエンティティ、およびアクションにとっての1つまたは複数の基準に基づいて、1つまたは複数のコンピューティングアクションを実行することの例示的な方法600を示すフローチャートである。便宜上、フローチャートの動作は、動作を実行するシステムを参照しながら説明される。このシステムは、自動メッセージングシステム120などの、様々なコンピュータシステムの様々な構成要素を含み得る。その上、方法600の動作は特定の順序で示されるが、このことは限定的であることを意図しない。1つまたは複数の動作が、並べ替えられてよく、省略されてよく、または追加されてよい。
【００９９】
ブロック652において、システムは、複数のユーザ間での進行中のメッセージ交換スレッドを検査する。進行中のメッセージ交換スレッドは、それらの複数のユーザのクライアントコンピューティングデバイスの複数のメッセージ交換クライアントを介して、複数のユーザ間で行われていることがある。いくつかの実装形態では、システムは、システムの明示的な呼出しに応答してメッセージ交換スレッドを検査し得る。いくつかの実装形態では、システムは、メッセージ交換スレッド自体からのキューなどの、1つまたは複数のキューに応答してメッセージ交換スレッドを検査し得る。いくつかの実装形態では、システムは、継続的に、または規則的な間隔もしくは不規則的な間隔で、メッセージ交換スレッドを検査し得る。
【０１００】
ブロック654において、システムは、進行中のメッセージ交換スレッドに基づいてアクションおよび候補エンティティを決定する。たとえば、システムは、メッセージ交換スレッドの1つまたは複数のメッセージの中に存在する1つまたは複数の用語に基づいて、アクションおよび複数の候補サービスエンティティを決定し得る。いくつかの実装形態では、システムは、アクションおよび/または複数の候補サービスエンティティを決定する際に、エンティティデータベース、および/またはメッセージ交換スレッドに関与されるユーザのうちの1人もしくは複数のユーザ属性を利用し得る。
【０１０１】
ブロック656において、システムは、ブロック654において決定されたアクションおよび/または候補エンティティに基づいて、プロンプトを生成する。いくつかの実装形態では、プロンプトは、アクションのためのかつ/または候補エンティティのためのプロトコルに基づいてよい。たとえば、プロトコルは、アクションおよび/または候補エンティティに関連付けられてよく、候補エンティティに関連するアクションを達成するための、1つまたは複数の所望のかつ/または必要なパラメータを規定し得る。システムは、プロンプトを生成する際に、プロトコルに対して規定されたパラメータを利用し得る。たとえば、システムは、パラメータのうちの1つまたは複数にとっての基準を提供するユーザ入力を要請するためのプロンプトを生成してよい。いくつかの実装形態では、プロンプトは、候補エンティティに基づいてよく、複数の候補エンティティの1つまたは複数の特性、および/あるいはメッセージ交換スレッドに関与されるユーザのうちの1人または複数によって候補エンティティのうちの1つまたは複数を選択するためのプロンプトを、提示し得る。
【０１０２】
ブロック658において、システムは、プロンプトをメッセージ交換スレッドの中に組み込む。生成されたプロンプトは、ユーザのコンピューティングデバイスを介してメッセージ交換スレッドのユーザのうちの少なくとも1人に視覚的かつ/または可聴的に提示するために提供される。いくつかの実装形態では、生成されたプロンプトは、メッセージ交換スレッドに関与されるユーザのうちの複数(たとえば、全員)に提示するためにそれが提供されるように、メッセージ交換スレッドの中に組み込まれる。いくつかの実装形態では、システムは、メッセージ交換クライアントのうちの少なくとも1つが、メッセージ交換クライアントのうちの少なくとも1つのグラフィカルユーザインターフェースの中で表示される進行中のメッセージ交換スレッドの写しの中にプロンプトを挿入することを要求することによって、プロンプトをメッセージ交換スレッドの中に組み込む。
【０１０３】
ブロック660において、システムは、プロンプトに応答してさらなる入力を識別する。さらなる入力は、メッセージ交換スレッドに関与されるユーザのうちの1人または複数(たとえば、全員)によるものであってよい。いくつかの実装形態では、さらなる入力は、ユーザのコンピューティングデバイスのユーザインターフェース入力デバイスを介してユーザによって定式化された自由形式自然言語入力であってよい。
【０１０４】
ブロック662において、システムは、特定のエンティティが、受け取られている入力に基づいて転換され得るかどうかを決定する。たとえば、システムは、ブロック660において受け取られたさらなる入力に鑑みて、ブロック656において決定された候補エンティティを改善して、それらの候補エンティティが特定のエンティティに転換され得るかどうかを決定し得る。
【０１０５】
システムが、特定のエンティティが転換され得ないと決定する場合、システムは、ブロック664に進み、追加プロンプトを生成する。いくつかの実装形態では、追加プロンプトは、ブロック656において随意に決定されたプロトコルに基づき、かつ/またはブロック654において決定された候補エンティティのうちの1つまたは複数に基づく。たとえば、システムは、それらの特定のパラメータがブロック652および660において受け取られた入力によって指定されないことに鑑みて、ブロック656において決定されたプロトコル用の1つまたは複数の特定のパラメータを要請するための追加プロンプトを生成してよい。いくつかの実装形態では、追加プロンプトは、ブロック662において決定された候補エンティティの改善されたグループに基づく。たとえば、ブロック662において、ブロック654において決定された候補エンティティは、ブロック460の入力および/または他の要因に基づいて、サブセットに改善され得る。追加プロンプトは、サブセットのエンティティの1つまたは複数の特性(たとえば、通称)を含むように、およびサブセットの特定のエンティティを指定しかつ/またはサブセットのさらなるサブセットを指定するさらなるユーザ入力を要請するように、生成され得る。
【０１０６】
ブロック664において追加プロンプトを生成した後、システムは、次いで、ブロック658および660に進み、次いで、特定のエンティティが、ブロック660の第2の反復において受け取られているまたさらなる入力に基づいて転換され得るかどうかを、ブロック662において再び決定する。
【０１０７】
システムが、特定のエンティティがブロック662において(ブロック662の第1の反復または後続の反復のいずれかにおいて)転換され得ると決定する場合、システムは、随意のブロック666に進み、ここで、システムは、特定のエンティティのためのプロトコルに基づいてかつ受け取られた入力に基づいて、追加プロンプトを生成する。たとえば、システムは、特定のエンティティに適用可能な固有プロトコルを識別してよく、ブロック652においてまたはブロック660の反復のいずれかにおいて提供されたユーザ入力に基づいてすでに決定されていない、そのプロトコルの1つまたは複数のパラメータにとっての基準を要請するための自然言語出力を生成してよい。
【０１０８】
随意のブロック668において、システムは、ブロック666において生成された追加プロンプトを、メッセージ交換スレッドの中に組み込む。追加プロンプトは、メッセージ交換スレッドに関与されるユーザのうちの1人または複数に提示するために組み込まれ得る。随意のブロック670において、システムは、ブロック668において生成されたプロンプトに応答して、さらなる入力を受け取る。さらなる入力は、メッセージ交換スレッドのユーザのうちの1人または複数からのものであってよい。いくつかの実装形態では、システムは、ブロック670において、ブロック670のさらなる入力に基づいてかつ/またはブロック652および660の前の入力に基づいて、特定のエンティティのためのプロトコルによって規定されたパラメータのすべてにとっての基準が決定され得るかどうかを決定し得る。1つまたは複数のパラメータの基準が決定され得ない場合、システムは、ブロック666、668、および670の1つまたは複数の追加の反復を実行して、さらなる入力を要請してよく、さらなる入力に基づいてそれらのパラメータを決定し得る。
【０１０９】
ブロック672において、システムは、前のブロックにおいて受け取られた入力に基づいてタスクを生成する。たとえば、システムは、メッセージ交換スレッドのユーザのうちの少なくとも1人に関連付けられており、決定されたアクションおよび特定のエンティティを識別し、かつアクションにとっての決定された基準を含む、タスクを生成してよい。いくつかの実装形態では、システムは、1つまたは複数の他のコンピューティングシステムへタスクを通信して、それらのコンピューティングシステムによってかつ/またはそれらのコンピューティングシステムからユーザインターフェース出力を受け取る1人もしくは複数の人間によって、アクションの実行を起動し得る。
【０１１０】
図7は、本明細書で説明する技法の1つまたは複数の態様を実行するために随意に利用され得る例示的なコンピューティングデバイス710のブロック図である。いくつかの実装形態では、クライアントコンピューティングデバイス1601〜N、自動メッセージングシステム120、および/または他の構成要素のうちの1つまたは複数は、例示的なコンピューティングデバイス710の1つまたは複数の構成要素を備え得る。
【０１１１】
コンピューティングデバイス710は、通常、バスサブシステム712を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ714を含む。これらの周辺デバイスは、たとえば、メモリサブシステム725およびファイル記憶サブシステム726を含む、記憶サブシステム724、ユーザインターフェース出力デバイス720、ユーザインターフェース入力デバイス722、ならびにネットワークインターフェースサブシステム716を含み得る。入力および出力デバイスは、コンピューティングデバイス710とのユーザ対話を可能にする。ネットワークインターフェースサブシステム716は、外部ネットワークへのインターフェースを提供し、他のコンピューティングデバイスの中の対応するインターフェースデバイスに結合されている。
【０１１２】
ユーザインターフェース入力デバイス722は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックスタブレットなどのポインティングデバイス、スキャナ、ディスプレイの中に組み込まれたタッチスクリーン、音声認識システム、マイクロフォンなどの音響入力デバイス、および/または他のタイプの入力デバイスを含み得る。概して、「入力デバイス」という用語の使用は、コンピューティングデバイス710の中にまたは通信ネットワーク上に情報を入力するための、すべての可能なタイプのデバイスおよび方法を含むものとする。
【０１１３】
ユーザインターフェース出力デバイス720は、表示サブシステム、プリンタ、ファックス機械、または音響出力デバイスなどの非視覚的ディスプレイを含み得る。表示サブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投影デバイス、または認識可能な画像を作成するためのいくつかの他のメカニズムを含み得る。表示サブシステムはまた、音響出力デバイスなどを介した非視覚的表示を提供し得る。概して、「出力デバイス」という用語の使用は、コンピューティングデバイス710からユーザまたは別の機械もしくはコンピューティングデバイスに情報を出力するための、すべての可能なタイプのデバイスおよび方法を含むものとする。
【０１１４】
記憶サブシステム724は、本明細書で説明するモジュールの一部または全部の機能性を提供するプログラミングおよびデータ構造を記憶する。たとえば、記憶サブシステム724は、図4および/または図6の方法の選択された態様を実行するための論理を含んでよい。
【０１１５】
これらのソフトウェアモジュールは、概して、プロセッサ714によって単独で、または他のプロセッサとの組合せで実行される。記憶サブシステム724の中で使用されるメモリ725は、プログラム実行中に命令およびデータを記憶するためのメインランダムアクセスメモリ(RAM)730、ならびに固定された命令が記憶される読取り専用メモリ(ROM)732を含む、いくつかのメモリを含むことができる。ファイル記憶サブシステム726は、プログラムおよびデータファイルのための永続的な記憶を提供することができ、ハードディスクドライブ、関連するリムーバブル媒体と一緒のフロッピー(登録商標)ディスクドライブ、CD-ROMドライブ、光ドライブ、またはリムーバブル媒体カートリッジを含んでよい。いくつかの実装形態の機能を実施するモジュールは、記憶サブシステム724の中でまたはプロセッサ714によってアクセス可能な他の機械の中で、ファイル記憶サブシステム726によって記憶され得る。
【０１１６】
バスサブシステム712は、コンピューティングデバイス710の様々な構成要素およびサブシステムに、意図に応じて互いに通信させるためのメカニズムを提供する。バスサブシステム712は単一のバスとして概略的に示されるが、バスサブシステムの代替実装形態は複数のバスを使用してよい。
【０１１７】
コンピューティングデバイス710は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意の他のデータ処理システムもしくはコンピューティングデバイスを含む、様々なタイプのものであってよい。コンピュータおよびネットワークの絶え間なく変化する性質に起因して、図7に示すコンピューティングデバイス710の説明は、いくつかの実装形態を示すための具体例としてのみ意図される。コンピューティングデバイス710の多くの他の構成が、図7に示すコンピューティングデバイスよりも多数または少数の構成要素を有することが可能である。
【０１１８】
本明細書で説明するシステムがユーザについての個人情報を収集するかまたは個人情報を利用し得る状況では、ユーザは、プログラムまたは機能が、ユーザ情報(たとえば、ユーザのソーシャルネットワーク、社会的行為もしくは社会的活動、職業、ユーザの選好、またはユーザの現在の地理的ロケーションについての情報)を収集するかどうかを制御するための、またはユーザにとってより関連があり得るコンテンツをコンテンツサーバから受け取るべきかどうか、かつ/もしくはどのように受け取るべきかを制御するための、機会が提供され得る。また、いくつかのデータは、個人が特定できる情報が除去されるように、それが記憶または使用される前に1つまたは複数の方法で処置されてよい。たとえば、ユーザの識別情報は、個人が特定できる情報がユーザに対して決定できないように処置されてよく、またはユーザの地理的ロケーションは、ユーザの特定の地理的ロケーションが決定できないように、地理的ロケーション情報が取得される場所で(都市、郵便番号、または州レベルなどに)一般化されてよい。したがって、ユーザは、情報がユーザについてどのように収集および/または使用されるのかを制する制御を有してよい。
【０１１９】
いくつかの実装形態が本明細書で説明および図示されているが、機能を実行しかつ/または結果を取得するための様々な他の手段および/もしくは構造、ならびに/または本明細書で説明する利点のうちの1つまたは複数が利用されてよく、そのような変形形態および/または修正形態の各々は、本明細書で説明する実装形態の範囲内にあるものと見なされる。より一般的には、本明細書で説明するすべてのパラメータ、寸法、材料、および構成は、例示的であること、ならびに実際のパラメータ、寸法、材料、および/または構成が、教示が使用されるべき1つまたは複数の特定の適用例によって決まることを意図する。当業者は、慣例にすぎない実験を使用して、本明細書で説明する特定の実装形態の多くの均等物を認識し、または把握することができる。したがって、上記の実装形態が例としてのみ提示されること、ならびに添付の特許請求の範囲およびそれらの均等物の範囲内で、実装形態が特に説明および特許請求されるものとは別の方法で実践され得ることを理解されたい。本開示の実装形態は、本明細書で説明する各個々の特徴、システム、物品、材料、キット、および/または方法を対象とする。加えて、2つ以上のそのような特徴、システム、物品、材料、キット、および/または方法の任意の組合せは、そのような特徴、システム、物品、材料、キット、および/または方法が互いに矛盾しない場合、本開示の範囲内に含まれる。
【符号の説明】
【０１２０】
1061〜N  クライアントコンピューティングデバイス、クライアントデバイス
1071〜N  メッセージ交換クライアント
120  自動メッセージングシステム
122  自然言語プロセッサ、エンジン
124  ユーザ属性エンジン
126  アクション決定エンジン
128  エンティティ決定エンジン
130  メッセージ生成エンジン
132  タスク管理モジュール
140  表示スクリーン
152  ユーザ属性データベース
154  エンティティデータベース
156  エンティティプロトコルデータベース
201A、201B  自然言語入力
202、202A、202B  注釈付き出力
203  アクション
204  ユーザ属性
205A、205B  候補エンティティ
206A、206B  自然言語出力
380A〜E  ユーザ入力
380F  ユーザインターフェース入力
390B〜E  プロンプト
390F  出力
580A、580B、582A、584A、586A  メッセージ
580C  入力、プロンプト
580D  入力
581、582、583  インターフェース要素
590A、590B  プロンプト
590C  コンテンツ
710  コンピューティングデバイス
712  バスサブシステム
714  プロセッサ
716  ネットワークインターフェースサブシステム
720  ユーザインターフェース出力デバイス
722  ユーザインターフェース入力デバイス
724  記憶サブシステム
725  メモリサブシステム
726  ファイル記憶サブシステム
732  読取り専用メモリ(ROM)
【図１】
2019518279.tif 000003
【図２Ａ】
2019518279.tif 000004
【図２Ｂ】
2019518279.tif 000005
【図３Ａ】
2019518279.tif 000006
【図３Ｂ】
2019518279.tif 000007
【図４】
2019518279.tif 000008
【図５】
2019518279.tif 000009
【図６】
2019518279.tif 000010
【図７】
2019518279.tif 000011
【手続補正書】
【提出日】平成30年12月13日(2018.12.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
2つ以上のメッセージ交換クライアントを操作する2人以上のユーザ間での進行中のメッセージ交換スレッドを、1つまたは複数のプロセッサによって検査するステップと、
検査する前記ステップに基づいて、前記プロセッサのうちの1つまたは複数によって、
前記メッセージ交換スレッドの1つまたは複数の用語に関連する複数の候補サービスエンティティ、および
前記候補サービスエンティティに関連付けられた少なくとも1つのアクションを決定するステップと、
前記アクションおよび前記候補サービスエンティティに編整されているプロンプトを前記プロセッサのうちの1つまたは複数によって生成するステップと、
前記メッセージ交換クライアントのうちの少なくとも1つを介して前記ユーザのうちの少なくとも1人に提示するために、前記プロセッサのうちの1つまたは複数によって前記プロンプトを前記メッセージ交換スレッドの中に組み込むステップと、
前記プロセッサのうちの1つまたは複数によって前記プロンプトへの少なくとも1つの応答を識別するステップであって、前記応答が、前記ユーザのうちの少なくとも1人によって前記メッセージ交換スレッドの中で提供される、ステップと、
前記プロセッサのうちの1つまたは複数によって、前記候補サービスエンティティのうちの特定のエンティティを前記応答への前記特定のエンティティの適合に基づいて決定するステップと、
前記2人以上のユーザの各々に提示するために、前記特定のエンティティを決定することに基づいて前記プロセッサのうちの1つまたは複数によってグラフィカル要素を前記メッセージ交換スレッドの中に組み込むステップであって、前記グラフィカル要素が、前記特定のエンティティの1つまたは複数の特性を識別する、ステップと、
前記グラフィカル要素を前記メッセージ交換スレッドの中に組み込んだ後に前記プロセッサのうちの1つまたは複数によって、前記特定のエンティティを用いた前記アクションの実行を要請するさらなるユーザインターフェース入力を識別するステップであって、前記さらなるユーザインターフェース入力が、前記ユーザのうちの少なくとも1人によって前記メッセージ交換スレッドの中で提供される、ステップと、
前記さらなるユーザインターフェース入力に応答して前記プロセッサのうちの1つまたは複数によって、前記アクションの実行を試みる際に1つまたは複数のコンピューティングシステムとの通信を通じて、前記アクションにとっての少なくとも1つの基準が前記特定のエンティティにとって達成可能でないと決定するステップであって、前記少なくとも1つの基準が、前記メッセージ交換スレッドの中の前記ユーザのうちの1人または複数によって指定される、ステップと、
前記少なくとも1つの基準が前記特定のエンティティにとって達成可能でないという決定に応答して前記プロセッサのうちの1つまたは複数によって、前記少なくとも1つの基準が前記候補サービスエンティティの追加の特定のエンティティにとって達成可能であると決定するステップと、
前記少なくとも1つの基準が前記追加の特定のエンティティにとって達成可能であるという決定に応答して前記プロセッサのうちの1つまたは複数によって、前記2人以上のユーザの各々に提示するために、追加のグラフィカル要素を前記メッセージ交換スレッドの中に組み込むステップであって、前記追加のグラフィカル要素が、前記追加の特定のエンティティの1つまたは複数の特性を識別する、ステップと
を備える方法。
【請求項２】
前記グラフィカル要素を前記メッセージ交換スレッドの中に組み込むステップは、前記メッセージ交換クライアントのうちの少なくとも1つが、前記メッセージ交換クライアントのうちの前記少なくとも1つのグラフィカルユーザインターフェースにおいて表示される前記進行中のメッセージ交換スレッドの写しの中に前記グラフィカル要素を挿入することを要求するステップを備える、請求項1に記載の方法。
【請求項３】
前記グラフィカル要素が、テキストおよび画像のうちの1つまたは複数を含む、請求項2に記載の方法。
【請求項４】
前記特定のエンティティを用いた前記アクションの実行を要請する前記さらなるユーザインターフェース入力の前に、
前記アクション、および前記候補サービスエンティティのうちの少なくとも1つに編整されている、追加プロンプトを前記プロセッサのうちの1つまたは複数によって生成するステップと、
前記メッセージ交換クライアントのうちの少なくとも1つを介して前記ユーザのうちの少なくとも1人に提示するために、前記プロセッサのうちの1つまたは複数によって前記追加プロンプトを前記メッセージ交換スレッドの中に組み込むステップと、
前記プロセッサのうちの1つまたは複数によって前記追加プロンプトへの少なくとも1つの追加応答を識別するステップであって、前記追加応答が、前記ユーザのうちの少なくとも1人によって前記メッセージ交換スレッドの中で提供される、ステップと、
前記追加応答に基づいて前記少なくとも1つの基準を、前記プロセッサのうちの1つまたは複数によって決定するステップと
をさらに備える、請求項1に記載の方法。
【請求項５】
前記プロンプトを前記メッセージ交換スレッドの中に組み込むステップが、前記メッセージ交換スレッドの前記ユーザの各々に提示するために前記プロンプトを組み込むステップを備える、請求項1に記載の方法。
【請求項６】
前記プロンプトへの少なくとも1つの応答を識別するステップが、少なくとも、前記ユーザのうちの第1のユーザからの前記プロンプトへの第1の応答、および前記ユーザのうちの第2のユーザからの前記プロンプトへの第2の応答を識別するステップを含み、前記特定のエンティティを決定するステップが、前記第1の応答および前記第2の応答に基づく、請求項1に記載の方法。
【請求項７】
前記プロンプトへの少なくとも1つの応答を識別するステップが、前記ユーザの各々からの応答を識別するステップを含み、前記特定のエンティティを決定するステップが、前記ユーザからの前記応答の各々に基づく、請求項1に記載の方法。
【請求項８】
前記プロンプトを生成するステップが、前記メッセージ交換スレッドの前記ユーザの記憶された属性にさらに基づく、請求項1に記載の方法。
【請求項９】
1つまたは複数のプロセッサによって第1の自然言語入力を受け取るステップであって、前記第1の自然言語入力が、
ユーザと前記1つまたは複数のプロセッサを介して実装された自動メッセージングシステムとの間のダイアログの一部として、前記ユーザのコンピューティングデバイスのユーザインターフェース入力デバイスを介して前記ユーザによって定式化された自由形式入力である、ステップと、
前記第1の自然言語入力に関連する少なくとも1つのアクション、および前記アクションのための複数の候補サービスエンティティを、前記プロセッサのうちの1つまたは複数によって決定するステップであって、前記アクションが、前記候補サービスエンティティによってまたは前記候補サービスエンティティに対して実行され得る、ステップと、
前記アクションおよび前記候補サービスエンティティのうちの少なくとも1つを対象とする情報を要請するように編整されているプロンプトを、前記プロセッサのうちの1つまたは複数によって生成するステップであって、
前記プロンプトを生成するステップは、前記アクションのための候補エンティティのすべてに適用可能な記憶された概略的プロトコルのパラメータに基づく、ステップと、
前記ユーザの前記コンピューティングデバイスのユーザインターフェース出力デバイスを介して前記ユーザに提示するために、前記ダイアログの存続中に前記プロセッサのうちの1つまたは複数によって前記プロンプトを提供するステップと、
前記プロンプトの提供に応答して前記プロセッサのうちの1つまたは複数によって、前記プロンプトに応答するとともに前記ユーザと前記自動メッセージングシステムとの間の前記ダイアログの一部として前記ユーザによって提供される、第2の入力を受け取るステップと、
前記第2の入力に基づいて前記プロセッサのうちの1つまたは複数によって、前記アクションが実行されるべき、前記候補サービスエンティティの特定のエンティティを決定するステップと、
前記プロセッサのうちの1つまたは複数によって、前記特定のエンティティに適用可能な記憶された固有プロトコルの追加パラメータを決定するステップであって、前記追加パラメータが、前記アクションのための前記候補エンティティのすべてに適用可能な前記記憶された概略的プロトコルの中に含まれない、ステップと、
前記プロセッサのうちの1つまたは複数によって、前記追加パラメータが、前記決定された特定のエンティティに適用可能な前記記憶された固有プロトコルのものであることに基づいて、前記追加パラメータを対象とする追加情報を要請するように編整されている追加プロンプトを生成するステップと、
前記ユーザの前記コンピューティングデバイスのユーザインターフェース出力デバイスを介して前記ユーザに提示するために、前記ダイアログの存続中に前記プロセッサのうちの1つまたは複数によって前記追加プロンプトを提供するステップと、
前記追加プロンプトの提供に応答して前記プロセッサのうちの1つまたは複数によって、前記追加プロンプトに応答するとともに前記ユーザと前記自動メッセージングシステムとの間の前記ダイアログの一部として前記ユーザによって提供される、第3の入力を受け取るステップと、
前記第3の入力に基づいて、
前記アクションにとっての1つまたは複数の基準を、前記プロセッサのうちの1つまたは複数によって決定するステップと、
前記アクションにとっての前記1つまたは複数の基準、および前記アクションが実行されるべき前記特定のエンティティの、決定に応答して、1つまたは複数のコンピュータ可読記憶媒体の中で前記プロセッサのうちの1つまたは複数によってタスクを生成するステップであって、前記タスクが、
前記ユーザに関連付けられており、
前記アクションおよび前記特定のエンティティを識別し、かつ
前記アクションにとっての前記1つまたは複数の基準を含む、ステップと
を備える方法。
【請求項１０】
前記プロンプトが前記第1の自然言語入力にすぐ引き続き、前記第2の入力が前記プロンプトにすぐ引き続き、前記追加プロンプトが前記第2の入力にすぐ引き続き、前記第3の入力が前記追加プロンプトにすぐ引き続く、請求項9に記載の方法。
【請求項１１】
前記プロンプトを生成するステップが、前記ユーザの記憶された属性にさらに基づく、請求項9に記載の方法。
【請求項１２】
前記ダイアログが、前記ユーザ、前記自動メッセージングシステム、および追加ユーザの間にあり、前記プロンプトを生成するステップが、前記追加ユーザの記憶された追加属性にさらに基づく、請求項11に記載の方法。
【請求項１３】
前記ユーザに提示するために前記プロンプトを提供するステップが、前記ユーザの前記コンピューティングデバイスのメッセージ交換クライアントを介した前記第1の自然言語入力との同時表示のために前記プロンプトを提供するステップを備える、請求項9に記載の方法。
【請求項１４】
前記ダイアログが、前記ユーザ、前記自動メッセージングシステム、および追加ユーザの間にあり、前記追加ユーザの追加コンピューティングデバイスの追加メッセージ交換クライアントを介した前記第1の自然言語入力との同時表示のために前記プロンプトを提供するステップをさらに備える、請求項13に記載の方法。
【請求項１５】
1つまたは複数のコンピューティングシステムとの通信を通じて前記プロセッサのうちの1つまたは複数によって、前記アクションにとっての前記1つまたは複数の基準が前記特定のエンティティにとって達成可能でないと決定するステップと、
前記1つまたは複数の基準が前記特定のエンティティにとって達成可能でないという決定に応答して前記プロセッサのうちの1つまたは複数によって、前記1つまたは複数の基準が前記候補サービスエンティティの追加の特定のエンティティにとって達成可能であると決定するステップと、
前記コンピューティングデバイスを介して前記ユーザに提示するために前記プロセッサのうちの1つまたは複数によって、前記1つまたは複数の基準が前記特定のエンティティにとって達成可能でないという表示を、前記1つまたは複数の基準が前記追加の特定のエンティティにとって達成可能であるというさらなる表示と一緒に提供するステップと
をさらに備える、請求項9に記載の方法。
【請求項１６】
前記さらなる表示が、選択可能なグラフィカル要素であり、前記選択可能なグラフィカル要素の選択に応答して、
前記1つまたは複数の基準を用いた前記追加の特定のエンティティに対する前記アクションの実行を、前記プロセッサのうちの1つまたは複数によって起動するステップ
をさらに備える、請求項15に記載の方法。
【請求項１７】
1つまたは複数のプロセッサによって実施される方法であって、
第1の自然言語入力を受け取るステップであって、前記第1の自然言語入力が、
ユーザと前記1つまたは複数のプロセッサを介して実装された自動メッセージングシステムとの間のダイアログの一部として、前記ユーザのコンピューティングデバイスのユーザインターフェース入力デバイスを介して前記ユーザによって定式化された自由形式入力である、ステップと、
前記第1の自然言語入力、およびアクションのための複数の候補サービスエンティティに関連する、アクションを決定するステップであって、前記アクションが、前記候補サービスエンティティによってまたは前記候補サービスエンティティに対して実行され得る、ステップと、
前記アクションのための候補エンティティのすべてに適用可能な記憶された概略的プロトコルから、前記アクションにとって必須の必須パラメータを識別するステップと、
前記必須パラメータのすべてを対象とする情報を要請するための1つまたは複数のプロンプトを前記ダイアログの一部として生成および提供するステップと、
前記プロンプトに応答して前記ダイアログの中で前記ユーザによって提供される1つまたは複数の入力に基づいて、前記必須パラメータのすべてに対する値を転換するステップと、
前記転換された値に少なくとも部分的に基づいて前記候補サービスエンティティの特定のエンティティを転換するステップと、
特定のエンティティパラメータが前記特定のエンティティに関連して記憶されていること、および前記特定のエンティティパラメータが前記1つまたは複数の入力によって転換されていないことを決定するステップであって、前記特定のエンティティパラメータが、前記記憶された概略的プロトコルから識別される前記必須パラメータに加えられる、ステップと、
前記特定のエンティティパラメータに基づく追加プロンプトを提供するステップであって、前記追加プロンプトは、追加パラメータが前記特定のエンティティに関連して記憶されておりかつ転換されていないという決定に応答して提供される、ステップと、
前記追加プロンプトの提供に応答して、前記追加プロンプトに応答するとともに前記ダイアログの一部として前記ユーザによって提供される、さらなる入力を受け取るステップと、
前記特定のエンティティパラメータに対する特定の値を前記さらなる入力に基づいて決定するステップと、
1つまたは複数のコンピュータ可読記憶媒体の中でタスクを生成するステップであって、前記タスクが、
前記ユーザに関連付けられており、
前記アクションおよび前記特定のエンティティを識別し、かつ
前記特定のエンティティパラメータに対する前記特定の値を含む、ステップと
を備える方法。
【国際調査報告】
2019518279.tif 000012
2019518279.tif 000013