(57)【要約】  方法および装置は、少なくとも1人のユーザとのダイアログを起動しかつ/または適合させるために、自動メッセージングシステム利用することを対象とし、ここで、ダイアログは、ユーザの少なくとも1つのコンピューティングデバイスのユーザインターフェース入力および出力デバイスを介して出現する。それらの実装形態のうちのいくつかでは、自動メッセージングシステムは、ユーザに関連する少なくとも1つのタスクを識別し、タスクを識別することに基づいてユーザとのダイアログを起動する。自動メッセージングシステムは、ダイアログを起動して、タスクに関係する追加情報をユーザに提供し得、かつ/またはダイアログ中に提供されるユーザ入力に基づいて、タスクの1つまたは複数のパラメータに対する値を決定し得る。いくつかの実装形態では、自動メッセージングシステムは、ダイアログ中に決定されたパラメータを利用して、タスクの実行をさらに起動し得る。
2019518278.tif 000002
【特許請求の範囲】
【請求項１】
自動メッセージングシステムに関連する1つまたは複数のプロセッサによって、ユーザのための少なくとも1つのタスクを識別するステップであって、前記タスクが、少なくとも1つのアクション、および前記アクションに関連する少なくとも1つのエンティティを示す、ステップと、
前記タスクを識別するステップに基づいて前記プロセッサのうちの1つまたは複数によって、前記タスクに関係する前記ユーザとのダイアログを起動するステップであって、前記自動メッセージングシステムを介し、
前記ユーザのコンピューティングデバイスのユーザインターフェース出力デバイスを介して前記ユーザに提示するために、前記タスクに合ったコンテンツを提供するステップを備える、ステップと、
前記提供に応答して、前記ダイアログを存続させるとともに前記コンピューティングデバイスのユーザインターフェース入力デバイスを介して前記ユーザによって定式化されている、自由形式自然言語入力を、前記プロセッサのうちの1つまたは複数によって受け取るステップと、
前記タスクに合った、前記自然言語入力に基づく、追加コンテンツを、前記プロセッサのうちの1つまたは複数によって生成するステップと、
前記ユーザインターフェース出力デバイスを介して前記ユーザに提示するために、前記ダイアログの存続中に前記プロセッサのうちの1つまたは複数によって前記追加コンテンツを提供するステップと
を備える方法。
【請求項２】
前記プロセッサのうちの1つまたは複数によって、前記ユーザがロケーションに存在することを決定するステップと、
前記タスクが前記ロケーションに関連付けられていることに基づいて、前記プロセッサのうちの1つまたは複数によって前記タスクを識別するステップと、
前記ユーザが前記ロケーションに存在すること、および前記タスクが前記ロケーションに関連付けられていることを、決定することに基づいて、前記プロセッサのうちの1つまたは複数によって前記タスクを前記ユーザに割り当てるステップと
をさらに備える請求項1に記載の方法。
【請求項３】
前記プロセッサのうちの1つまたは複数によって、前記ユーザがロケーションに存在すること、および前記ロケーションが前記ユーザにとってよく知っているロケーションでないことを、決定するステップと、
前記ロケーションをよく知らない個人に前記タスクが関連付けられていることに基づいて、前記プロセッサのうちの1つまたは複数によって前記タスクを識別するステップと、
前記ロケーションが前記ユーザによく知られていないこと、および前記ロケーションをよく知らない個人に前記タスクが関連付けられていることを、決定することに基づいて、前記プロセッサのうちの1つまたは複数によって前記タスクを前記ユーザに割り当てるステップと
をさらに備える請求項1または請求項2に記載の方法。
【請求項４】
前記タスクに合った、ソース言語での、ソース言語コンテンツを、前記プロセッサのうちの1つまたは複数によって識別するステップと、
前記プロセッサのうちの1つまたは複数によって、前記ソース言語とは異なる前記ユーザの言語を識別するステップと、
前記ソース言語コンテンツを前記ソース言語から前記ユーザの前記言語に翻訳することによって、前記プロセッサのうちの1つまたは複数によって前記コンテンツを生成するステップと
をさらに備える請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記プロセッサのうちの1つまたは複数によって、前記タスクの実行に関係する複数のパラメータを規定するプロトコルを識別するステップと、
前記プロセッサのうちの1つまたは複数によって、前記パラメータのうちの1つまたは複数のグループに関係する入力を要請するための前記コンテンツまたは前記追加コンテンツを生成するステップと
をさらに備える請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記アクションによって示される前記エンティティがサービスエンティティであり、前記第1の自然言語入力および前記第2の自然言語入力が両方とも前記ユーザのネイティブ言語におけるものであり、
前記プロセッサのうちの1つまたは複数によって、前記サービスエンティティにとって好ましい言語を識別するステップと、
前記プロセッサのうちの1つまたは複数によって、前記第1の自然言語入力および前記第2の自然言語入力のうちの少なくともいくつかを前記ネイティブ言語から前記好ましい言語に翻訳するステップと、
前記プロセッサのうちの1つまたは複数によって、前記翻訳された自然言語入力を前記サービスエンティティに提供するステップと
をさらに備える請求項1から5のいずれか一項に記載の方法。
【請求項７】
前記ユーザの現在のロケーションが前記エンティティのロケーションに対応することに基づいて、前記プロセッサのうちの1つまたは複数によって前記少なくとも1つのタスクを前記ユーザに割り当てるステップをさらに備え、
前記タスクに合った前記コンテンツが、前記タスクに関連する前記エンティティにおいて発話される共通の句を含み、
前記自然言語入力が、前記共通の句を口頭で発話するための試行としての音響であり、
前記第2のコンテンツが、前記音響の分析に基づくフィードバックである、
請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記プロセッサのうちの1つまたは複数によって、前記エンティティに対する前記アクションの実行に関係する複数のパラメータを規定するプロトコルを識別するステップであって、
前記追加コンテンツを生成するステップが、前記パラメータのうちの1つまたは複数のグループに向けられた入力を要請するための前記追加コンテンツを生成するステップを含む、ステップと、
前記ダイアログを存続させるとともに前記ユーザインターフェース入力デバイスを介して前記ユーザによって定式化されている、追加自由形式自然言語入力を、前記追加コンテンツの提供に応答して前記プロセッサのうちの1つまたは複数によって受け取るステップと、
前記追加自由形式自然言語入力に基づいて、前記パラメータのうちの1つまたは複数に対する1つまたは複数の値を決定するステップと
をさらに備える請求項1から7のいずれか一項に記載の方法。
【請求項９】
前記プロセッサのうちの1つまたは複数によって、前記決定された1つまたは複数の値を用いて前記エンティティに対する前記アクションを起動するステップ
をさらに備える請求項8に記載の方法。
【請求項１０】
有効な値が指定されない前記パラメータのうちの1つまたは複数を、前記パラメータに対する前記1つまたは複数の値を決定した後に前記プロセッサのうちの1つまたは複数によって識別するステップと、
有効な値が指定されない前記パラメータのうちの前記1つまたは複数に向けられた入力を要請するためのさらなるコンテンツを、前記プロセッサのうちの1つまたは複数によって生成するステップと、
前記ユーザインターフェース出力デバイスを介して前記ユーザに提示するために、前記ダイアログの存続中に前記プロセッサのうちの1つまたは複数によって前記さらなるコンテンツを提供するステップと
をさらに備える請求項8に記載の方法。
【請求項１１】
前記プロセッサのうちの1つまたは複数によって、前記エンティティに対する前記アクションの実行に関係する複数のパラメータを規定するプロトコルを識別するステップであって、
前記追加コンテンツを生成するステップが、前記パラメータのうちの1つまたは複数のグループに向けられた入力を要請するための前記追加コンテンツを生成するステップを含む、ステップと、
前記ダイアログを存続させるとともに前記ユーザインターフェース入力デバイスを介して前記ユーザによって定式化されている、追加自由形式自然言語入力を、前記追加コンテンツの提供に応答して前記プロセッサのうちの1つまたは複数によって受け取るステップと、
前記追加自由形式自然言語入力によって指定された少なくとも1つの値が、前記グループの前記パラメータのうちの所与のパラメータにとって有効でないことを決定するステップと、
前記値が前記所与のパラメータにとって有効でないことを示すとともに前記所与のパラメータにとっての1つまたは複数の基準を示す、さらなるコンテンツを生成するステップと、
前記ユーザインターフェース出力デバイスを介して前記ユーザに提示するために、前記ダイアログの存続中に前記プロセッサのうちの1つまたは複数によって前記さらなるコンテンツを提供するステップと
をさらに備える請求項1から10のいずれか一項に記載の方法。
【請求項１２】
前記プロセッサのうちの1つまたは複数によって、前記エンティティに対する前記アクションの実行に関係する複数のパラメータを規定するプロトコルを識別するステップと、
自然言語入力によって指定された少なくとも1つの値が、前記グループの前記パラメータのうちの所与のパラメータにとって有効でないことを決定するステップとをさらに備え、
前記追加コンテンツを生成するステップが、前記値が前記所与のパラメータにとって有効でないという表示を含むとともに前記所与のパラメータにとっての1つまたは複数の基準の表示を含むように、前記追加コンテンツを生成するステップを含む、
請求項1から11のいずれか一項に記載の方法。
【請求項１３】
前記タスクを前記ユーザに割り当てるステップをさらに備え、割り当てる前記ステップは、前記プロセッサのうちの1つまたは複数によるものであり、前記ユーザによって前記自動メッセージングシステムに提供されるいかなるユーザインターフェース入力とも無関係である、
請求項1から12のいずれか一項に記載の方法。
【請求項１４】
前記ダイアログを起動するステップが、前記自動メッセージングシステムを対象とするユーザインターフェース入力に応答し、前記ユーザインターフェース入力が、前記タスクを明示的には識別しない、請求項13に記載の方法。
【請求項１５】
前記ユーザに提示するために前記追加コンテンツを提供するステップが、前記コンテンツとの同時表示のために前記追加コンテンツを提供するステップを備え、前記コンテンツとの前記同時表示が、前記コンピューティングデバイスによってレンダリングされるグラフィカルユーザインターフェースを介する、請求項1から14のいずれか一項に記載の方法。
【請求項１６】
前記ユーザに提示するために前記追加コンテンツを提供するステップが、前記自然言語入力との同時表示のために前記追加コンテンツを提供するステップを備え、前記自然言語入力との前記同時表示が、前記コンピューティングデバイスによってレンダリングされる前記グラフィカルユーザインターフェースを介する、請求項15に記載の方法。
【請求項１７】
前記自動メッセージングシステムが、前記ユーザの前記コンピューティングデバイスから遠隔にある1つまたは複数のコンピューティングデバイス上に少なくとも部分的に実装される、請求項15または請求項16に記載の方法。
【請求項１８】
メモリおよび1つまたは複数のプロセッサを備えるシステムであって、前記メモリが命令を記憶し、前記命令は、前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
ユーザのための少なくとも1つのタスクを識別することであって、前記タスクが、少なくとも1つのアクション、および前記アクションに関連する少なくとも1つのエンティティを示す、ことと、
前記タスクを識別することに基づいて、前記タスクに関係する前記ユーザとのダイアログを起動することであって、前記ダイアログを起動する際に、前記1つまたは複数のプロセッサが、前記ユーザのコンピューティングデバイスのユーザインターフェース出力デバイスを介して前記ユーザに提示するために、前記タスクに合ったコンテンツを提供すべきである、ことと、
前記提供に応答して、前記ダイアログを存続させるとともに前記コンピューティングデバイスのユーザインターフェース入力デバイスを介して前記ユーザによって定式化されている、自由形式自然言語入力を受け取ることと、
前記タスクに合った、前記自然言語入力に基づく、追加コンテンツを生成することと、
前記ユーザインターフェース出力デバイスを介して前記ユーザに提示するために、前記ダイアログの存続中に前記追加コンテンツを提供することと
をさせる、システム。
【請求項１９】
前記命令が、前記1つまたは複数のプロセッサによって実行されたとき、さらに前記1つまたは複数のプロセッサに、
前記ユーザがロケーションに存在することを決定することと、
前記タスクが前記ロケーションに関連付けられていることに基づいて、前記タスクを識別することと、
前記ユーザが前記ロケーションに存在すること、および前記タスクが前記ロケーションに関連付けられていることを、決定することに基づいて、前記タスクを前記ユーザに割り当てることと
をさせる、請求項18に記載のシステム。
【請求項２０】
前記命令が、前記1つまたは複数のプロセッサによって実行されたとき、さらに前記1つまたは複数のプロセッサに、
前記ユーザの現在のロケーションが前記エンティティのロケーションに対応することに基づいて、前記少なくとも1つのタスクを前記ユーザに割り当てさせ、
前記タスクに合った前記コンテンツが、前記タスクに関連する前記エンティティにおいて発話される共通の句を含み、
前記自然言語入力が、前記共通の句を口頭で発話するための試行としての音響であり、
前記第2のコンテンツが、前記音響の分析に基づくフィードバックである、
請求項18または請求項19に記載のシステム。
【請求項２１】
前記命令が、前記1つまたは複数のプロセッサによって実行されたとき、さらに前記1つまたは複数のプロセッサに、
前記エンティティに対する前記アクションの実行に関係する複数のパラメータを規定するプロトコルを識別することであって、
前記追加コンテンツを生成する際に、前記1つまたは複数のプロセッサが、前記パラメータのうちの1つまたは複数のグループを要請するための前記追加コンテンツを生成すべきである、ことと、
前記ダイアログを存続させるとともに前記ユーザインターフェース入力デバイスを介して前記ユーザによって定式化されている、追加自由形式自然言語入力を、前記追加コンテンツの提供に応答して受け取ることと、
前記追加自由形式自然言語入力に基づいて、前記パラメータのうちの1つまたは複数に対する1つまたは複数の値を決定することと
をさせる、請求項18から20のいずれか一項に記載のシステム。
【請求項２２】
命令を備える少なくとも1つのコンピュータ可読記憶媒体であって、前記命令は、1つまたは複数のプロセッサによる前記命令の実行に応答して、前記1つまたは複数のプロセッサに、以下の動作、すなわち、
ユーザのための少なくとも1つのタスクを識別することであって、前記タスクが、少なくとも1つのアクション、および前記アクションに関連する少なくとも1つのエンティティを示す、ことと、
前記タスクを識別することに基づいて、前記タスクに関係する前記ユーザとのダイアログを起動することであって、前記ダイアログを起動する際に、前記1つまたは複数のプロセッサが、前記ユーザのコンピューティングデバイスのユーザインターフェース出力デバイスを介して前記ユーザに提示するために、前記タスクに合ったコンテンツを提供すべきである、ことと、
前記提供に応答して、前記ダイアログを存続させるとともに前記コンピューティングデバイスのユーザインターフェース入力デバイスを介して前記ユーザによって定式化されている、自由形式自然言語入力を受け取ることと、
前記タスクに合った、前記自然言語入力に基づく、追加コンテンツを生成することと、
前記ユーザインターフェース出力デバイスを介して前記ユーザに提示するために、前記ダイアログの存続中に前記追加コンテンツを提供することと
を実行させる、コンピュータ可読記憶媒体。
【請求項２３】
1つまたは複数のプロセッサによる前記命令の実行に応答して、前記1つまたは複数のプロセッサに、請求項2から17のいずれか一項に記載の方法を実行させる命令をさらに備える、請求項22に記載の少なくとも1つのコンピュータ可読記憶媒体。
【請求項２４】
請求項1から17のいずれか一項に記載の方法を実行するように構成された装置。
【請求項２５】
コンピューティング装置によって実行されたとき、請求項1から17のいずれか一項に記載の方法を実行させる機械可読命令を備えるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
ユーザのコンピューティングデバイスのユーザインターフェースデバイスを介したユーザとのダイアログの自動起動および適合に関する。
【背景技術】
【０００２】
いくつかのインターネットプラットフォームは、特定のサービスエンティティに関連する1つまたは複数のアクションをユーザが実行するのを可能にし得る。しかしながら、プラットフォームは、通常、ユーザが、1つもしくは複数のアクションにとっての基準を選択する前に特定のサービスエンティティを明示的に識別すること、および/または1つもしくは複数のアクションにとっての基準を選択する際に構造化オプションの選択を行うことを必要とする。たとえば、ユーザは、特定のレストランにおける予約を、その特定のレストランのためのウェブページにナビゲートすること、ならびにウェブページのドロップダウンユーザインターフェースメニューから時刻、日付、および人数を選択することによって登録し得る。また、たとえば、ユーザは、企業とのアポイントメントを、その企業のためのウェブページにナビゲートすること、ならびにウェブページのユーザインターフェース要素の中に提示される利用可能なオプションから時刻、日付、およびアポイントメントのタイプを選択することによってスケジュールし得る。
【０００３】
しかしながら、これらおよび/または他の技法は、1つまたは複数の欠点を抱えている。たとえば、技法は、ユーザが最初に特定のサービスエンティティを識別し、次いで、その特定のサービスエンティティに対するアクションの実行を対象とする構造化入力を提供することを必要とすることがある。タスクが実行可能であること、および/またはタスクを実行するためにどのサービスエンティティが利用され得るのかを、承知していないことがある何人かのユーザにとって、このことは困難なタスクであり得る。また、たとえば、技法は、ユーザによる自由形式自然言語入力を介して実行されるべきアクションの、1つまたは複数の(たとえば、すべての)基準の指定を可能にしないことがある。また、たとえば、技法は、アクションを実行しようと試みる際にユーザ入力に基づいて決定される意図、ならびに/または過去のユーザアクションおよび/もしくは他のソースに基づいて決定される意図などの、ユーザの意図に適合されていない固定された構造化フィールドを利用することがある。追加および/または代替の欠点が引き起こされることがある。
【発明の概要】
【課題を解決するための手段】
【０００４】
本明細書の実装形態は、少なくとも1人のユーザとのダイアログを起動しかつ/または適合させるために、自動メッセージングシステムを利用することを対象とし、ここで、ダイアログは、ユーザの少なくとも1つのコンピューティングデバイスのユーザインターフェース入力および出力デバイスを介して出現する。それらの実装形態のうちのいくつかでは、自動メッセージングシステムは、ユーザに関連する少なくとも1つのタスクを識別し、タスクを識別することに基づいてユーザとのダイアログを起動する。自動メッセージングシステムは、ダイアログを起動して、タスクに関係する追加情報をユーザに提供し得、かつ/またはダイアログ中に提供されるユーザ入力に基づいて、タスクの1つまたは複数のパラメータに対する値を決定し得る。いくつかの実装形態では、自動メッセージングシステムは、ダイアログ中に決定されたパラメータを利用して、タスクの実行をさらに起動し得る。タスクが実行可能であること、および/またはタスクを実行するためにどのサービスエンティティが利用され得るのかを、承知していないことがある何人かのユーザにとって、自動メッセージングシステムによるダイアログの起動が有益であり得る。たとえば、新たなロケーションへの旅行者、新たなロケーションへの移住者などは、新たなロケーションに関係するいくつかのタスクが実行可能であるのかさえまったく承知していないことがあり、かつ/またはいくつかのタスクの実行を起動するために自動メッセージングシステムが利用され得ることを承知していないことがある。さらに、もしもユーザが従来の手段を使用してタスクを実行しようと試みるならそうなる場合よりも、少数のユーザ入力を用いてタスクが実行されてよい。たとえば、ユーザは、タスクの異なる態様を実行するために複数のアプリケーションをオープンすることを必要とされない。どんなサービスエンティティが利用可能であるのか、および/またはどんなタスクが実行可能であるのかを、よく知らないユーザにとって有益であるばかりでなく、システムは、あまり器用でないユーザ、またはさもなければデバイスにユーザ入力を行うことが難しいユーザにとって、特に利点があり得る。少なくともこれらのユーザにとって、ダイアログを準備することは、たとえば、あまり器用でないことに起因してユーザが間違えるのを救うことによって、デバイスの使用の信頼性および速度を高めることができる。
【０００５】
いくつかの実装形態では、自動メッセージングシステムは、特定の情報をユーザに要請する質問または他のプロンプトをダイアログ中に生成し得、ダイアログ中にユーザによって提供されるユーザインターフェース入力に基づいてプロンプトを自発的に適合させ得る。それらの実装形態のうちのいくつかでは、ユーザとのダイアログ中に自動メッセージングシステムによって生成されるプロンプトは、タスク用の必要なかつ/または所望のパラメータに対する値をユーザから抽出するように構成されてよく、ダイアログ中でのユーザの応答に基づいてダイアログ中に適合されてよい。自動メッセージングシステムによって生成されるプロンプトのうちの少なくともいくつかは、自然言語プロンプトであってよく、ダイアログ中にユーザによって提供されるユーザインターフェース入力のうちの少なくともいくつかは、自然言語自由形式入力であってよい。自然言語自由形式入力を可能にすることは、そのことが、使用すべきシステムをより簡単にするので、特に入力デバイスを使用することに未熟であるかまたはひどく不器用なユーザにとって有益である。本明細書で使用する自由形式入力とは、ユーザによって定式化されるとともに、ユーザによる選択のために提示されるオプションのグループに制約されない、入力である。
【０００６】
いくつかの実装形態では、ユーザとのダイアログに関与する際に、自動メッセージングシステムは、1つまたは複数のサービスエンティティのために構成された1つまたは複数のプロトコルに基づいて、1つまたは複数のプロンプトを生成し得る。たとえば、プロトコルは、同じクラスのメンバーである複数のサービスエンティティに適用される「概略的」プロトコル、および/または概略的プロトコルよりも狭い形で合った(たとえば、クラスの特定のサービスエンティティなどの、クラスのサブセットに合った)グループに適用される「固有」プロトコルを含んでよい。
【０００７】
いくつかの実装形態では、ユーザとのダイアログに関与する際に、自動メッセージングシステムは、ローカル言語データベースの1つまたは複数のエントリに基づいて、ユーザに提示するためのコンテンツを生成し得る。いくつかの実装形態では、ローカル言語データベースは、1つまたは複数の地理的領域および/または言語の各々に対して、その地理的領域および/または言語において会話的に利用される言語セグメント(たとえば、文、句、および/または用語)、ならびに随意に、それらの言語セグメントに関連付けられているタスクの表示を規定する、エントリを含んでよい。
【０００８】
様々な実装形態では、ユーザに提示すべきコンテンツを生成する際に、自動メッセージングシステムは、(たとえば、ユーザの記憶された属性、ユーザのコンピューティングデバイス上で実行するメッセージングクライアントにおいて利用される言語に基づいて)ユーザの言語を識別し得る。システムは、タスクに関係しソース言語でのコンテンツを決定し得、そのコンテンツをユーザの言語に翻訳し得、翻訳されたコンテンツをユーザに提示するために提供し得る。また、様々な実装形態では、ユーザとのダイアログの中でユーザから受け取られるユーザ入力は、ユーザの言語での自由形式自然言語入力であってよい。それらの実装形態のうちのいくつかでは、自動メッセージングシステムは、入力をユーザの言語から、システムの好ましい言語および/またはタスクに関連するサービスエンティティの好ましい言語に翻訳し得る。
【０００９】
いくつかの実装形態では、少なくとも1つのアクション、およびアクションに関連する少なくとも1つのエンティティを示す、ユーザのための少なくとも1つのタスクを識別することを含む、自動メッセージングシステムに関連する1つまたは複数のプロセッサによって実行される方法が提供される。方法は、ユーザとのダイアログを起動することをさらに含み、ここで、ダイアログはタスクに関係する。起動することは、タスクを識別することに基づき、自動メッセージングシステムを介し、ユーザのコンピューティングデバイスのユーザインターフェース出力デバイスを介してユーザに提示するために、タスクに合ったコンテンツを提供することを含む。方法は、提供に応答して、ダイアログを存続させるとともにコンピューティングデバイスのユーザインターフェース入力デバイスを介してユーザによって定式化されている、自由形式自然言語入力を受け取ることと、タスクに合った、自然言語入力に基づく、追加コンテンツを生成することと、ユーザインターフェース出力デバイスを介してユーザに提示するために、ダイアログの存続中に追加コンテンツを提供することとをさらに含む。
【００１０】
本明細書で開示する技術のこれらおよび他の実装形態は、以下の特徴のうちの1つまたは複数を随意に含んでよい。
【００１１】
いくつかの実装形態では、方法は、ユーザがロケーションに存在することを決定することと、タスクがロケーションに関連付けられていることに基づいて、タスクを識別することと、ユーザがロケーションに存在すること、およびタスクがロケーションに関連付けられていることを、決定することに基づいて、タスクをユーザに割り当てることとをさらに含む。
【００１２】
いくつかの実装形態では、方法は、ユーザがロケーションに存在すること、およびロケーションがユーザにとってよく知っているロケーションでないことを、決定することと、ロケーションをよく知らない個人にタスクが関連付けられていることに基づいて、タスクを識別することと、ロケーションがユーザによく知られていないこと、およびロケーションをよく知らない個人にタスクが関連付けられていることを、決定することに基づいて、タスクをユーザに割り当てることとをさらに含む。
【００１３】
いくつかの実装形態では、方法は、タスクに合った、ソース言語での、ソース言語コンテンツを識別することと、ソース言語とは異なるユーザの言語を識別することと、ソース言語コンテンツをソース言語からユーザの言語に翻訳することによってコンテンツを生成することとをさらに含む。
【００１４】
いくつかの実装形態では、方法は、タスクの実行に関係する複数のパラメータを規定するプロトコルを識別することと、パラメータのうちの1つまたは複数のグループに関係する入力を要請するためのコンテンツまたは追加コンテンツを生成することとをさらに含む。
【００１５】
いくつかの実装形態では、アクションによって示されるエンティティは、サービスエンティティであり、第1の自然言語入力および第2の自然言語入力は両方とも、ユーザのネイティブ言語におけるものである。それらの実装形態のうちのいくつかでは、方法は、サービスエンティティにとって好ましい言語を識別することと、第1の自然言語入力および第2の自然言語入力のうちの少なくともいくつかをネイティブ言語から好ましい言語に翻訳することと、翻訳された自然言語入力をサービスエンティティに提供することとをさらに含む。
【００１６】
いくつかの実装形態では、方法は、ユーザの現在のロケーションがエンティティのロケーションに対応することに基づいて、少なくとも1つのタスクをユーザに割り当てることをさらに含む。それらの実装形態のうちのいくつかでは、タスクに合ったコンテンツは、タスクに関連するエンティティにおいて発話される共通の句を含み、自然言語入力は、共通の句を口頭で発話するための試行としての音響であり、第2のコンテンツは、音響の分析に基づくフィードバックである。
【００１７】
いくつかの実装形態では、方法は、エンティティに対するアクションの実行に関係する複数のパラメータを規定するプロトコルを識別することと、パラメータのうちの1つまたは複数のグループを要請するための追加コンテンツを生成することとをさらに含む。それらの実装形態のうちのいくつかでは、方法は、追加コンテンツの提供に応答して、ダイアログを存続させるとともにユーザインターフェース入力デバイスを介してユーザによって定式化されている、追加自由形式自然言語入力を受け取ることと、追加自由形式自然言語入力に基づいて、パラメータのうちの1つまたは複数に対する1つまたは複数の値を決定することとをさらに含む。それらの実装形態のいくつかのバージョンでは、方法は、決定された1つまたは複数の値を用いてエンティティに対するアクションを起動することをさらに含む。
【００１８】
いくつかの実装形態では、方法は、ユーザによって自動メッセージングシステムに提供されるいかなるユーザインターフェース入力とも無関係である、タスクをユーザに割り当てることをさらに含む。それらの実装形態のうちのいくつかでは、ダイアログを起動することは、自動メッセージングシステムを対象とするユーザインターフェース入力に応答し、ここで、そのユーザインターフェース入力は、タスクを明示的には識別しない。
【００１９】
いくつかの実装形態では、ユーザに提示するために追加コンテンツを提供することは、コンテンツとの同時表示のために追加コンテンツを提供することを含む。コンテンツとの同時表示は、コンピューティングデバイスによってレンダリングされるグラフィカルユーザインターフェースを介してよい。それらの実装形態のうちのいくつかでは、ユーザに提示するために追加コンテンツを提供することは、自然言語入力との同時表示のために追加コンテンツを提供することを含む。自然言語入力との同時表示は、コンピューティングデバイスによってレンダリングされるグラフィカルユーザインターフェースを介してよい。それらの実装形態のうちのいくつかでは、自動メッセージングシステムは、ユーザのコンピューティングデバイスから遠隔にある1つまたは複数のコンピューティングデバイス上に少なくとも部分的に実装される。
【００２０】
加えて、いくつかの実装形態は、1つまたは複数のコンピューティングデバイスの1つまたは複数のプロセッサを含み、ここで、1つまたは複数のプロセッサは、関連するメモリの中に記憶された命令を実行するように動作可能であり、ここで、命令は、上述の方法のいずれかの実行を引き起こすように構成される。いくつかの実装形態はまた、上述の方法のいずれかを実行するために1つまたは複数のプロセッサによって実行可能なコンピュータ命令を記憶する非一時的コンピュータ可読記憶媒体を含む。
【００２１】
より詳細に本明細書で説明する上記の概念および追加の概念のすべての組合せが、本明細書で開示する主題の一部であるものとして企図されることを諒解されたい。たとえば、本開示の末尾に掲載されている特許請求される主題のすべての組合せは、本明細書で開示する主題の一部であるものとして企図される。
【図面の簡単な説明】
【００２２】
【図１】本明細書で開示する実装形態が実施され得る例示的な環境のブロック図である。
【図２Ａ】ユーザのタスクに基づいて、ユーザのメッセージ交換クライアントにタスク関連コンテンツを提供して、メッセージ交換クライアントを介したユーザとのダイアログを起動することの一例を示す図である。
【図２Ｂ】ユーザのタスクに基づいてかつダイアログの存続中にユーザによって提供される自然言語入力に基づいて、追加タスク関連コンテンツを生成すること、および追加タスク関連コンテンツをメッセージ交換クライアントに提供することによって、図2Aにおいて起動されたダイアログを存続させることの一例を示す図である。
【図３Ａ】本明細書で説明する実装形態による、クライアントコンピューティングデバイスのユーザと自動メッセージングシステムとの間に出現し得るダイアログの一例を表示スクリーンが表示している、例示的なクライアントコンピューティングデバイスを示す図である。
【図３Ｂ】本明細書で説明する実装形態による、クライアントコンピューティングデバイスのユーザと自動メッセージングシステムとの間に出現し得るダイアログの別の例を表示スクリーンが表示している、図3Aの例示的なクライアントコンピューティングデバイスを示す図である。
【図４】本明細書で説明する実装形態による、クライアントコンピューティングデバイスのユーザと自動メッセージングシステムとの間に出現し得るダイアログのまた別の例を表示スクリーンが表示している、図3Aおよび図3Bの例示的なクライアントコンピューティングデバイスを示す図である。
【図５】ユーザのタスクに基づいてユーザとのダイアログを起動すること、ダイアログ中にユーザによって提供される自然言語入力に基づいてダイアログを適合させること、およびダイアログ中に転換された1つまたは複数のパラメータを用いてタスクの実行を随意に起動することの、例示的な方法を示すフローチャートである。
【図６】コンピューティングデバイスの例示的なアーキテクチャを示す図である。
【発明を実施するための形態】
【００２３】
本明細書の実装形態は、少なくとも1人のユーザとのダイアログを起動しかつ/または適合させるために、自動メッセージングシステムを利用することを対象とし、ここで、ダイアログは、ユーザのコンピューティングデバイスのユーザインターフェース入力および出力デバイスを介して出現する。それらの実装形態のうちのいくつかでは、自動メッセージングシステムは、ユーザに関連する少なくとも1つのタスク(たとえば、少なくとも1つのアクションおよびアクションに関連する少なくとも1つのエンティティ(たとえば、サービスエンティティ)を示すタスク)を識別し、タスクを識別することに基づいてユーザとのダイアログを起動する。自動メッセージングシステムは、タスクに関係する追加情報をユーザに提供するための、かつ/またはダイアログ中に提供されるユーザ入力に基づいて、タスクの1つまたは複数のパラメータに対する値を決定するための、ダイアログを起動し得る。いくつかの実装形態では、自動メッセージングシステムは、ダイアログ中に決定されるパラメータの値を利用してタスクの実行をさらに起動し得る。
【００２４】
いくつかの実装形態では、自動メッセージングシステムは、特定の情報をユーザに要請する質問または他のプロンプトをダイアログ中に生成し得、ダイアログ中にユーザによって提供されるユーザインターフェース入力に基づいてプロンプトを自発的に適合させ得る。それらの実装形態のうちのいくつかでは、ユーザとのダイアログ中に自動メッセージングシステムによって生成されるプロンプトは、タスク用の必要なかつ/または所望のパラメータに対する値をユーザから抽出するように構成されてよく、ダイアログ中でのユーザの応答に基づいてダイアログ中に適合されてよい。
【００２５】
いくつかの実装形態では、ユーザとのダイアログに関与する際に、自動メッセージングシステムは、1つまたは複数のサービスエンティティに対して構成された1つまたは複数のプロトコルに基づいて、かつ/またはローカル言語データベースの1つまたは複数のエントリに基づいて、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つまたは複数は、クライアントコンピューティングデバイスのウェブブラウザ(図示せず)または他のアプリケーションによってレンダリングされたウェブページまたは他のリソースを介して実施され得る。
【００３０】
より詳細に本明細書で説明するように、様々な実装形態では、自動メッセージングシステム120は、クライアントコンピューティングデバイス1061〜Nのうちの1つのユーザに関連するタスクを識別し、クライアントコンピューティングデバイスを介してユーザに提示するためにタスクに合ったコンテンツを提供することによって、タスクに関係するユーザとのダイアログを起動する。自動メッセージングシステム120によるタスクに関係するダイアログの「起動」とは、システム120とのいかなるダイアログにもユーザが関与されなかったこと、および/またはシステム120にダイアログを起動させたいかなる入力もユーザが提供しなかったことを、必ずしも意味するとは限らない。むしろ、そのことは、タスクに関係するダイアログの、システムによる起動の前に、自動メッセージングシステム120とのいかなる進行中のダイアログも、タスクを明示的には対象としなかったことを意味する。たとえば、ユーザは、その日のニュース、天気などにおける更新を入手するために、自動メッセージングシステムとのダイアログに関与されることがあり-システム120は、タスクに関係するダイアログをそのような関与の間に起動し得る。いくつかの実装形態では、タスクに関係するいかなる入力(たとえば、システム120との以前のダイアログにおける自然言語入力)もユーザがこれまでに自動メッセージングシステム120に直接提供していることなく、自動メッセージングシステム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)を含み得る。エンティティタガーは、(たとえば、人などのエンティティクラスへのすべての参照の識別を可能にするための)高レベルの粒度、および/または(たとえば、特定の人物などの特定のエンティティへのすべての参照の識別を可能にするための)低レベルの粒度において、エンティティへの参照に注釈を付け得る。エンティティタガーは、特定のエンティティを転換するために自然言語入力のコンテンツに依拠し得、かつ/または特定のエンティティを転換するために知識グラフもしくは他のエンティティデータベースと随意に通信し得る。
【００３６】
いくつかの実装形態では、自然言語プロセッサ122は、追加および/または代替として、同じエンティティへの参照を1つまたは複数のコンテキストキューに基づいてグループ化すなわち「クラスタ化」するように構成された同一指示レゾルバ(coreference resolver)を含み得る。たとえば、同一指示レゾルバは、自然言語入力「私はAsia Villageを希望します。それを登録してください。」において用語「それ」を「Asia Village」に転換するために利用されてよい。
【００３７】
いくつかの実装形態では、自然言語プロセッサ122の1つまたは複数の構成要素は、自然言語プロセッサ122の1つまたは複数の他の構成要素からの注釈に依拠し得る。たとえば、いくつかの実装形態では、固有表現タガー(named entity tagger)は、特定のエンティティへのすべての言及に注釈を付ける際に、同一指示レゾルバおよび/または依存関係パーサからの注釈に依拠し得る。また、たとえば、いくつかの実装形態では、同一指示レゾルバは、同じエンティティへの参照をクラスタ化する際に、依存関係パーサからの注釈に依拠し得る。いくつかの実装形態では、特定の自然言語入力を処理する際に、自然言語プロセッサ122の1つまたは複数の構成要素は、以前の関連入力、および/または特定の自然言語入力の外部の他の関連データを使用して、1つまたは複数の注釈を決定し得る。たとえば、自動アシスタントとのダイアログにおけるユーザの最初のメッセージが「彼らは明日の正午に関してアポイントメントがありますか」であってよく、ユーザの後続のメッセージが「その時に関してそれを登録してください」であってよい。「その時に関してそれを登録してください」を処理する際に、同一指示レゾルバは、「彼らは明日の正午に関してアポイントメントがありますか」という、以前の入力を利用して、「それ」を「アポイントメント」に転換し得、「その時」を「明日の正午」に転換し得る。
【００３８】
ユーザ属性エンジン124は、自動メッセージングシステム120とのダイアログに関与されかつ/または自動メッセージングシステム120がその人とのダイアログを起動し得るユーザの、1つまたは複数の属性を決定し、自動メッセージングシステム120の1つまたは複数の他の構成要素にそれらの属性を提供する。たとえば、ユーザに割り当てるべきタスクを決定する際に、タスク用の1つまたは複数のパラメータに対する値を決定する際に、ユーザとのダイアログをいつ起動すべきかを決定する際に、1人もしくは複数のユーザとのダイアログのための出力を生成する際に、かつ/またはユーザに提供された自然言語出力を翻訳すべきかどうかを決定する際に、自動メッセージングシステム120の他の構成要素によって属性が利用され得る。ユーザ属性エンジン124は、1つまたは複数のユーザ属性を記憶し得るユーザ属性データベース152と通信している。様々な実装形態では、ユーザ属性エンジン124および/またはユーザ属性データベース152は、クライアントコンピューティングデバイス1061〜N上に全体的にまたは部分的に実装されてよく、かつ/またはクライアントコンピューティングデバイス1061〜Nによって提供されたデータに基づいて1つまたは複数のユーザ属性を決定し得る。ユーザ属性エンジン124によって決定され得るユーザ属性のいくつかの例は、(たとえば、GPSまたは他のロケーションデータに基づく)ユーザの現在のロケーション、ユーザの過去のロケーション(たとえば、ユーザの「自宅」、ユーザによって以前に訪問されたロケーション)、ユーザの言語、(たとえば、ユーザの電子カレンダーに基づく)ユーザの時間制約、および(たとえば、複数のインターネットサービスにわたるユーザ活動に基づく)ユーザのユーザプロファイルを含む。
【００３９】
タスクエンジン126は、ユーザのためのタスクを識別し、そのタスクに関係する情報(たとえば、タスクのためのアクションおよび/または1つもしくは複数のサービスエンティティの識別子、タスク用のパラメータの1つまたは複数の所定の値)をメッセージ生成エンジン130に提供し、エンジン130がユーザとのタスク関連ダイアログをいつ起動するのが適切であるかという表示を、メッセージ生成エンジン130に随意に提供する。タスクエンジン126は、タスクデータベース154、ユーザ属性エンジン124によって提供されるユーザ属性、および/またはユーザによって自動メッセージングシステム120に提供された過去の自然言語入力などの、様々なリソースのうちの1つまたは複数を利用して、ユーザのためのタスクを決定し得る。
【００４０】
タスクデータベース154は、1つまたは複数の非一時的コンピュータ可読媒体上に設けられてよく、各々が少なくとも1つのアクションおよびアクションに関連する少なくとも1つのエンティティを示す、複数のタスクを規定し得る。タスクのいくつかの例は、政府機関とのアポイントメントをスケジュールすること、企業にサービスを要求すること、企業に製品を注文すること、レストランにおいて食べ物を注文すること、タクシーによる輸送を取得すること、顧客と会うこと、用役提供をセットアップすること、映画チケットを買うことなどを含む。タスクは、タスクデータベース154の中で様々なレベルの粒度を用いて規定され得る。たとえば、タスクは、「任意の政府機関との任意のアポイントメントをスケジュールする」として、またはより狭く「特定の政府機関とのアポイントメントをスケジュールする」もしくは「特定の政府機関との特定のタイプのアポイントメントをスケジュールする」として規定されてよい。いくつかの実装形態では、タスクデータベース154の1つまたは複数のタスクは各々、1人または複数の特定のユーザに関連付けられてよく、かつ/あるいはタスクデータベース154の1つまたは複数のタスクは、タスクをインスタンス化し得る1つまたは複数の特定の基準に関連付けられてよい。いくつかの実装形態では、タスクデータベース154のすべてまたは態様は、クライアントコンピューティングデバイス1061〜Nのうちの1つまたは複数の一部として組み込まれてよい。
【００４１】
いくつかの実装形態では、タスクエンジン126は、ユーザのためのタスクを、そのタスクがすでにタスクデータベース154の中でユーザに関連付けられていることに基づいて識別し得る。たとえば、タスクデータベース154は、ユーザにとって特有であり、ユーザによって利用されるクライアントコンピューティングデバイス1061〜Nのうちの1つまたは複数を介してユーザによって実行される1つまたは複数のアクションなどの、ユーザによるものでありかつ/またはユーザを対象とする、1つまたは複数のコンピューティングベースアクションに応答して作成され得る、1つまたは複数のエントリを含み得る。たとえば、タスクデータベース154は、1つまたは複数のカレンダーエントリ、リマインダエントリ、および/またはユーザにとって個人的であり(たとえば、ユーザの許可なく他のユーザにとってアクセス可能でなく)、コンピューティングデバイスの1つまたは複数のアプリケーション(たとえば、カレンダーアプリケーション)とのユーザによる対話を介してユーザによって故意に作成され得る、他のエントリを含み得る。
【００４２】
また、たとえば、タスクデータベース154は、ユーザによって故意には作成されないが、クライアントコンピューティングデバイス1061〜Nのうちの1つまたは複数を介してユーザによって実行される1つまたは複数のアクションに基づいて、1つまたは複数のコンピューティングデバイスによって推論的に作成される、1つまたは複数のエントリを含み得る。たとえば、「私はどのようにして古い家具を処分すべきか」、「だれが家具を集荷するのか」、および「家具撤去」という検索などの、古い家具を撤去することに関係する複数のインターネット検索をユーザが実行したと想定する。そのような例では、家具撤去タスクのためのエントリが、ユーザがエントリを故意に作成することなく、タスクデータベース154の中でユーザに対して随意に作成され得る。また別の事例として、タスクデータベース154は、ユーザによって故意には作成されないが、電子メール、テキストメッセージ、またはユーザへ送られた他の通信の内容に基づいてなど、ユーザを対象とする1つまたは複数のコンピューティングアクションに基づいて作成される、1つまたは複数のエントリを含み得る。
【００４３】
いくつかの実装形態では、タスクエンジン126は、タスクがタスクデータベース154の中でユーザにすでに関連付けられていることなく、ユーザのためのタスクを識別し得る。たとえば、いくつかの実装形態では、タスクデータベース154は、タスクをインスタンス化し得る1つまたは複数の基準に関連付けられているタスクを含み得る。タスクエンジン126は、それらの基準とユーザ属性エンジン124によって提供されるユーザ属性との間の適合に基づいて、それらのタスクのうちの1つをユーザのためのタスクとして決定し得る。たとえば、タスクデータベース154は、レストランにいること、およびユーザによって発話される言語でなくかつ/またはユーザの1次言語でない、1次言語を伴うロケーションにいることという基準に関連付けられている、「食べ物を注文すること」というタスクを含み得る。タスクエンジン126は、ユーザ属性エンジン124によって提供されるユーザ属性が、ユーザの現在のロケーションがレストランの中であることと、現在のロケーションがユーザによって発話されない言語を伴う地理的エリアの中であることとを示すことに基づいて、ユーザに対して「食べ物を注文すること」タスクを識別し得る。別の例として、タスクデータベース154は、特定の都市への新たな移転者であるという基準に関連付けられている、無料廃品撤去をその特定の都市にスケジュールするというタスクを含み得る。タスクエンジン126は、ユーザ属性エンジン124によって提供されるユーザ属性が、ユーザがその特定の都市に最近移転したことを示すことに基づいて、「無料廃品撤去をスケジュールすること」タスクを識別し得る。また別の例として、タスクデータベース154は、その特定の都市への新たな訪問者であるという基準に関連付けられている、特定の都市の中で地下鉄チケットを購入するというタスクを含み得る。タスクエンジン126は、ユーザ属性エンジン124によって提供されるユーザ属性が、ユーザが特定の都市の中に存在するとともに特定の都市を以前に訪問していないことを示すことに基づいて、「地下鉄チケットを購入する」タスクを識別し得る。
【００４４】
翻訳エンジン128は、ユーザによって提供された自然言語入力を別の言語に翻訳し得、かつ/またはメッセージ生成エンジン130によって生成された自然言語出力を、出力の受け手ユーザによって発話される言語(たとえば、受け手ユーザのネイティブ言語)に翻訳し得る。いくつかの実装形態では、翻訳エンジン128は、ユーザ属性エンジン124によって提供される1つまたは複数のユーザ属性を利用して、ユーザのネイティブ言語などの、ユーザによって発話される言語を決定し得る。
【００４５】
いくつかの実装形態では、メッセージ生成エンジン130は、ユーザの関連するクライアントコンピューティングデバイスを介して、ユーザとのタスク関連ダイアログを起動し、タスクがユーザに割り当てられることを識別することに基づいてダイアログを起動する。たとえば、メッセージ生成エンジン130は、タスクエンジン126によって提供される出力が、タスクがユーザのタスクであることを示すことに基づいて、タスクに関係するダイアログを起動し得る。翻訳エンジン128に関して説明したように、様々な実装形態では、メッセージ生成エンジン130は、翻訳エンジン128を介してユーザとのダイアログに関与し得る。たとえば、エンジン128は、メッセージ生成エンジン130によって生成された自然言語出力を、それがユーザに提示される前に翻訳し得、かつ/またはユーザによって定式化された自然言語入力を、それがメッセージ生成エンジン130に提供される前に、かつ/もしくはタスクを起動するためのサービスエンティティとの通信の一部としてそれがサービスエンティティに提供される前に翻訳し得る。
【００４６】
メッセージ生成エンジン130は、タスクに関係する追加情報をユーザに提供するための、かつ/またはダイアログ中に提供されるユーザ入力に基づいてタスクの1つもしくは複数のパラメータに対する値を決定するための、タスク関連ダイアログを起動し得る。いくつかの実装形態では、メッセージ生成エンジン130は、タスク用の必要なかつ/または所望のパラメータに対する値をユーザから抽出するように構成されるとともに、ダイアログ中でのユーザの応答に基づいてダイアログ中に適合され得る、質問または他のプロンプトをダイアログ中に生成し得る。
【００４７】
メッセージ生成エンジン130は、ユーザに情報を要請するための質問または他のプロンプトを生成する際に、1つまたは複数のリソースを利用する。たとえば、メッセージ生成エンジン130は、ダイアログ中でのユーザの現在および/または過去の自然言語入力、自然言語プロセッサ122によって提供されるその入力の注釈、ユーザ属性エンジン124によって提供されるユーザ属性、タスクエンジン126によって提供されるタスクパラメータまたは他のタスク情報に対する値、エンティティプロトコルデータベース156のエンティティプロトコル、ならびに/あるいはローカル言語データベース158の1つまたは複数のエントリを利用し得る。メッセージ生成エンジン130は、ダイアログ中にユーザによって提供される自然言語入力によって、タスク用のどんなパラメータが有効に指定されているのかを決定するとともに、タスクに関連するそれらのパラメータに対する値を記憶する、タスクパラメータモジュール132を含み得る。メッセージ生成エンジン130は、そのような記憶された値を利用して、そのタスクに対してすでに有効に指定されている、タスク用の任意のパラメータを指定するようにユーザを促す自然言語出力の生成を防止し得る。タスクパラメータモジュール132は、タスクおよびタスク用のパラメータの値(タスクエンジン126によって決定されかつ/またはダイアログ中に決定される、パラメータに対する値)を、タスクの実行を起動すべき1つまたは複数の他のコンピューティングシステムにさらに通信し得る。
【００４８】
エンティティプロトコルデータベース156は、1つまたは複数の非一時的コンピュータ可読媒体上に設けられてよく、各々がタスクの1つもしくは複数のエンティティおよび/または1つもしくは複数のアクションにとって適用可能な複数のプロトコルを規定する。各プロトコルは、タスクの関連するアクションを実行するための、かつ/または関連する1つもしくは複数のサービスエンティティとともに関連するアクションを実行するための、1つまたは複数の必要なかつ/または所望のパラメータを規定する。たとえば、第1のプロトコルは、レストラン予約アクションに関連する概略的プロトコルであってよく、予約を採用するすべてのレストランに関連付けられてよい。第1のプロトコルは、予約の日付、予約の時刻、および予約のための人数などの、アクションにとって必要なパラメータを規定し得る。また、たとえば、第2のプロトコルは、レストラン予約アクションに関連する第2のプロトコルであってよく、特定のレストランなどの、予約を採用するレストランのサブセットに関連付けられてよい。第2のプロトコルは、ユーザが屋内座席を要望するのかそれとも屋外座席を要望するのか、ブースかそれともテーブルか、ユーザは食事制限があるのかどうかなどの、特定のレストランにとって必要なかつ/または所望のパラメータを規定し得る。
【００４９】
ローカル言語データベース158は、1つまたは複数の非一時的コンピュータ可読媒体上に設けられてよく、1つまたは複数の地理的領域および/または言語の各々に対して、その地理的領域および/または言語において会話的に利用される言語セグメント(たとえば、文、句、および/または用語)、ならびに随意に、それらの言語セグメントに関連付けられているタスクを規定する、エントリを含む。たとえば、米国内の地理的領域に対するエントリは、タクシー運転手から輸送を取得するというタスクなどの1つまたは複数のタスクにすべてが関連する、「私は[ロケーション]まで乗車したい」、「[ロケーション]までの推定料金はいくらか」、「ご乗車ありがとうございます」というエントリを含み得る。また、たとえば、米国内の地理的領域に対するエントリは、レストランを訪問するタスク、食べ物を注文するタスク、および/または他のタスクに関連付けられている、「私は[食べ物]を注文したい」というエントリ、レストランを訪問するタスク、サービスエンティティを訪問するタスク、および/または他のタスクに関連付けられている、「トイレがどこにあるのかを私に教えて頂けますか」というエントリなどのエントリを含み得る。先行する例における括弧「[]」の中の語が、そのクラスの説明を用いてかつ/またはそのクラスのメンバーである特定の語を用いて、メッセージ生成エンジン130によって「記入され」得るとともに、ユーザによって提供される自然言語入力に基づいて決定され得る、語のクラスを示すことに留意されたい。ローカル言語データベース158の言語セグメントは、テキストセグメントを含んでよく、「.wav」ファイル、「.mp3」ファイル、「.mpeg」ファイルなどの可聴ファイルおよび/もしくは可聴ファイルへのリンク、ならびに/またはコンピューティングデバイスによって実行されたとき、対応する音響出力をコンピューティングデバイスに生成させる他のフォーマットでのファイルも含んでよい。
【００５０】
メッセージ生成エンジン130は、タスクに関係するダイアログを起動しかつ/または存続させる際にユーザに提供すべきコンテンツを決定する際に、ローカル言語データベース158のエントリを利用し得る。たとえば、より詳細に本明細書で説明するように、ユーザの所与のタスクに対して、メッセージ生成エンジン130は、データベース158の中でそのタスクに関連付けられているとともに、ユーザの現在のロケーションに関連付けられておりかつ/またはユーザの現在のロケーションにおける言語に関連付けられている、1つまたは複数の言語セグメントを識別し得る。メッセージ生成エンジン130は、タスクに関係するユーザとのダイアログを起動する際に提供されるコンテンツの一部として、かつ/またはユーザとのタスク関連ダイアログの存続中に提供される追加コンテンツの一部として、それらの言語セグメントを可聴的かつ/または視覚的にユーザに提示し得る。
【００５１】
次に図2Aおよび図2Bを参照すると、自動メッセージングシステム120およびメッセージ交換クライアント1071の様々な構成要素の追加説明が提供される。図2Aおよび図2Bのいくつかの説明が、図3Aからの例を用いて提供される。図3Aは、本明細書で説明する実装形態による、クライアントコンピューティングデバイス1061のユーザと自動メッセージングシステム120との間に出現し得るダイアログの一例を表示スクリーン140が表示している、図1のコンピューティングデバイス1061を示す。詳細には、ダイアログは、各々が本明細書で説明する実装形態による自動メッセージングシステム120によって生成され得るタスク関連コンテンツ390A、390B、390C、および390Dを含み、ユーザ入力380Aおよび380Bを含む。表示スクリーン140は、仮想キーボードを介してユーザ入力を生成するためにユーザが選択し得るテキスト応答インターフェース要素384、およびマイクロフォンを介してユーザ入力を生成するためにユーザが選択し得る音声応答インターフェース要素385をさらに含む。表示スクリーン140はまた、コンピューティングデバイス1061に1つまたは複数のアクションを実行させるためにユーザによって対話され得るシステムインターフェース要素381、382、383を含む。
【００５２】
図2Aは、ユーザのタスク202に基づいて、ユーザのメッセージ交換クライアント1071にタスク関連コンテンツ203Aを提供して、メッセージ交換クライアント1071を介したユーザとのダイアログを起動することの一例を示す。
【００５３】
図2Aにおいて、タスクエンジン126は、タスクデータベース154に基づいて、かつ/またはユーザ属性エンジン124によって提供される1つもしくは複数のユーザ属性201に基づいて、ユーザのタスク202を識別する。タスクエンジン126は、タスク202をメッセージ生成エンジン130に提供する。
【００５４】
実施例として、タスクエンジン126が、「家具を撤去すること」というアクションを示すとともにアクションのための「サニーベール市(the city of Sunnyvale)」という特定のサービスエンティティを示す、「古い家具を撤去すること」というタスク202を決定することを想定する。実施例のいくつかの実装形態では、タスクエンジン126は、それがタスクデータベース154の中でユーザに関連付けられていることに基づいて、かつ/またはユーザ属性エンジン124によって提供されるユーザ属性201に基づいて、タスクを識別し得る。
【００５５】
たとえば、ユーザが、「私はどのようにして家具を処分すべきか」、「だれが家具を集荷するのか」、および「家具撤去」という検索などの、家具を撤去することに関係する複数の検索を、別個の検索エンジンにサブミットしたと想定する。そのような例では、概略的な家具撤去タスクは、それらの検索に基づいて、タスクデータベース154の中でユーザに随意に関連付けられ得る。実施例のいくつかの実装形態では、タスクエンジン126は、ユーザ属性エンジン124によって提供されるユーザ属性201に基づいて、サニーベール市を家具撤去タスクのための特定のサービスエンティティとして識別し得る。たとえば、タスクエンジン126は、ユーザがサニーベール市の居住者であることを、ユーザ属性201に基づいて決定し得、サニーベール市に対する家具撤去タスクが、その特定の都市の居住者であるという必須の基準に関連付けられていることを、タスクデータベース154および/または他のリソースに基づいてさらに決定し得る。また、たとえば、タスクエンジン126は、ユーザがサニーベール市への新たな移転者であることを、ユーザ属性201に基づいて決定し得、サニーベール市に対する家具撤去タスクが、その特定の都市への新たな移転者であるという随意の基準に関連付けられていることを(たとえば、新たな移転者はまだ都市のサービスをよく知らないことがあるので)、タスクデータベース154および/または他のリソースに基づいてさらに決定し得る。ユーザ属性201と、サニーベール市に対する家具撤去タスクにとっての基準との間の適合に基づいて、タスクエンジン126は、タスクをユーザのためのタスクとして識別し得る。
【００５６】
メッセージ生成エンジン130は、タスク202を利用して、タスク関連コンテンツ203Aを生成する際に使用するための、エンティティプロトコルデータベース156からのエンティティプロトコル、および/またはローカル言語データベース158からの言語セグメントを識別する。いくつかの実装形態では、タスク関連コンテンツ203Aは、ユーザがタスクを実行する際に助けを希望するかどうかを決定する際に(たとえば、「あなたは[タスク]を実行する必要があるようです。私がお手伝いすることを希望しますか」という自然言語出力)、かつ/またはタスク202用の必要なかつ/もしくは所望のパラメータを決定する際に(たとえば、「あなたは[タスク]を実行する必要があるようです。私がお手伝いできます。その場合、[タスクパラメータ]を私に知らせてください」という自然言語出力)、使用するためのユーザインターフェース入力をユーザに要請するためのプロンプトである自然言語出力などの、自然言語出力である。
【００５７】
タスク関連コンテンツ203Aは、クライアントコンピューティングデバイス1061のユーザインターフェース出力デバイスを介して可聴的かつ/または視覚的にユーザに提示するために、メッセージ交換クライアント1071に提供される。いくつかの実装形態では、タスク関連コンテンツ203Aは自然言語出力であり、その出力は翻訳エンジン128によってメッセージ交換クライアント1071のユーザの言語に翻訳される。それらの実装形態では、翻訳された出力が、メッセージ交換クライアント1071に提供される。いくつかの他の実装形態では、メッセージ交換クライアント1071は、翻訳エンジン128を組み込んでよく、翻訳を実行し得る。
【００５８】
いくつかの実装形態では、メッセージ生成エンジン130は、タスク202によって示されるアクションおよび/またはエンティティを利用して、自動メッセージを生成する際に利用するためのエンティティプロトコルを決定する。たとえば、レストラン候補エンティティに対するレストラン予約アクションを示す「レストラン予約を行うこと」タスクに対して、エンジン130は、予約を行うためにすべてのレストランにとって適用可能な概略的エンティティプロトコルを識別し得る。概略的エンティティプロトコルは、それがエンティティプロトコルデータベース156の中で「レストラン予約を行うこと」アクションおよび/または「レストラン」エンティティに割り当てられていることに基づいて、識別され得る。概略的エンティティプロトコルは、予約の日付、予約の時刻、予約のための人数、および予約のためのレストランなどの、タスクを実行するための1つまたは複数の必要なかつ/または所望のパラメータを規定し得る。エンジン130は、それらのパラメータのうちの1つまたは複数に関する情報を要請するためのタスク関連コンテンツ203Aを生成し得る。いくつかの実装形態では、概略的エンティティプロトコルおよび/または他のプロトコルのパラメータのうちの1つまたは複数は、それらのパラメータに対するプロンプトに含めるためのテキストを含み得るか、または別の方法で示し得る。たとえば、予約のための人数に関係するパラメータは、「いくつに対して」または「何名」などのテキストを含み得る。
【００５９】
いくつかの実装形態では、メッセージ生成エンジン130は、もしあれば、どんなパラメータがタスク202によってすでに指定されているのかを決定する、タスクパラメータモジュール132を含む。たとえば、タスク202の実行のための特定のサービスエンティティなどの、すでに指定された1つまたは複数のパラメータに対する値を用いて、タスクエンジン126によってタスク202が提供され得る。メッセージ生成エンジン130は、すでに指定されたパラメータを利用して、すでに指定されたパラメータを指定するようにユーザを促すタスク関連コンテンツ203Aの生成を防止し得る。
【００６０】
実施例を続けると、メッセージ生成エンジン130は、「古い家具を撤去すること」というタスク202に応答して、「家具を撤去すること」というアクションを示すとともにアクションのための「サニーベール市」という特定のサービスエンティティを示す、図3Aのタスク関連コンテンツ390Aを生成し得る。いくつかの実装形態では、メッセージ生成エンジン130は、エンティティプロトコルデータベース156のプロトコルに基づいてコンテンツ390Aを生成し得る。たとえば、データベース156は、「家具を撤去すること」というアクションに関連付けられるとともに「サニーベール市」という特定のサービスエンティティに関連付けられた、特定のエンティティプロトコルを含み得る。それらの実装形態のうちのいくつかでは、プロトコルは、コンテンツ390Aの自然言語テキストの一部または全部、およびユーザとのダイアログを起動するためにタスクに関係するテキストが提供されるべきであるという表示を含み得る。コンテンツ390Aは図3Aにおいて英語で示されるが、いくつかの実装形態では、コンテンツ390Aは翻訳エンジン128によって別の言語に翻訳されてよく、翻訳がコンテンツ390Aとしてユーザに提供される。
【００６１】
図2Bは、タスク202(図2A)に基づいて(たとえば、タスクに基づいて選択されるエンティティプロトコルに基づいて)、かつダイアログの存続中にユーザによって提供される自然言語入力204に基づいて、追加タスク関連コンテンツ203Bを生成することによって、図2Aにおいて起動されたダイアログを存続させることの一例を示す。追加タスク関連コンテンツ203Bは、視覚的かつ/または可聴的にユーザに提示するために、メッセージ交換クライアント1071に提供される。
【００６２】
図2Bにおいて、図2Aのタスク関連コンテンツ203Aに応答して、ユーザは、コンピューティングデバイス1061の1つまたは複数のユーザインターフェース入力デバイスを利用して、応答性自然言語入力204をメッセージ交換クライアント1071に提供し、メッセージ交換クライアント1071は、自然言語入力204を自然言語プロセッサ122へ送信する。自然言語入力204は、本明細書で説明するような自由形式入力であってよく、たとえば、コンピューティングデバイスの物理キーボードもしくは仮想キーボードを介してユーザによって提供されるタイプ入力、またはユーザによってコンピューティングデバイスのマイクロフォンに提供される発話入力であってよい。自然言語入力204が発話入力である実装形態では、自然言語入力204は、コンピューティングデバイスによってかつ/または自然言語プロセッサ122によって、テキスト入力に随意に転写され得る。
【００６３】
実施例を続けると、自然言語入力204は、図3Aのユーザ入力380Aによって図示したような「もちろん。2脚のソファと4脚の椅子があります。」であってよく、-タスク関連コンテンツ390Aを提供することによってメッセージ生成エンジン130によって起動されたダイアログの存続中に、ユーザによって提供され得る。
【００６４】
自然言語プロセッサ122は、自然言語入力204を処理し、自然言語入力の様々な注釈を生成する。自然言語プロセッサ122は、注釈付き出力(たとえば、自然言語入力204の用語および生成された注釈)205をメッセージ生成エンジン130に提供する。
【００６５】
実施例を続けると、自然言語入力204は、図3Aのユーザ入力380Aによって図示したような「もちろん。2脚のソファと4脚の椅子があります。」であってよく、自然言語プロセッサ122は、「もちろん。」に肯定的応答として注釈を付けてよく、「ソファ」および「椅子」に家具エンティティとして注釈を付けてよく、「2」に「ソファ」に関連する数量として、かつ「4」に「椅子」に関連する別個の数量として注釈を付けてよい。自然言語プロセッサ122は、注釈付き入力205として、それらの用語および/または注釈のうちの1つまたは複数を提供し得る。
【００６６】
メッセージ生成エンジン130は、注釈付き入力205、およびエンティティプロトコルデータベース156からのエンティティプロトコル、ならびに/または追加タスク関連コンテンツ203Bを生成する際に使用するためのローカル言語データベース158からの言語セグメントを利用する。たとえば、メッセージ生成エンジン130は、注釈付き入力205を分析して、注釈付き入力205がさらなるタスク関連コンテンツに対するユーザの要望を示すかどうかを決定し得る。たとえば、入力205がさらなるタスク関連コンテンツに対する要望を示す場合、メッセージ生成エンジン130は、図2Aにおいて利用されたエンティティプロトコルを利用して、エンティティプロトコルによって規定される1つまたは複数の所望のかつ/または必要なパラメータに対する値を提供するようにユーザを促す追加タスク関連コンテンツ203Bを生成し得る。本明細書で説明するように、タスクパラメータモジュール132はまた、もしあれば、アクション用のどんなパラメータが自然言語入力204によって有効に指定されているのか(かつ/またはタスク202によってすでに指定されたのか)を決定し得、それらのパラメータに対する指定された値を記憶し得る。メッセージ生成エンジン130は、モジュール132の決定を利用して、それらのパラメータを再び指定するようにユーザを促す追加タスク関連コンテンツ203Bの生成を防止し得る。たとえば、メッセージ生成エンジン130が、「アポイントメントの日付」に対するパラメータを含むパラメータを規定するプロトコルを利用する場合、モジュール132は、特定の日付、および特定の日付がそのパラメータにとって有効であることを自然言語入力204が示す場合、そのパラメータに対してその特定の日付を割り当ててよい。割当てに基づいて、そのパラメータはエンジン130によって無視されてよく、代わりに追加タスク関連コンテンツ203Bが他のパラメータに基づいて生成されてもよい。
【００６７】
実施例を続けると、「もちろん。2脚のソファと4脚の椅子があります。」という受け取られた自然言語入力204に応答して、メッセージ生成エンジン130は、「申し訳ありませんが収集ごとに2つの物品のみ可能です。」という追加タスク関連コンテンツ203Bを生成し得る。いくつかの実装形態では、エンジン130は、タスクパラメータモジュール132によって提供される入力に基づいてコンテンツ203Bを生成し得る。たとえば、モジュール132は、注釈付き入力205を利用して、2つの家具物品という最大値を有する(図2Aにおいて利用されたプロトコルの)パラメータに対して、6つの家具物品が自然言語入力204において指定されると決定し得、-パラメータに対する指定された値が有効でないという表示をメッセージ生成エンジン130に提供し得る。メッセージ生成エンジン130は、プロトコル用のパラメータに基づいて、かつプロトコルにおけるそのパラメータに対して指定された最大値に基づいて、コンテンツ390Bを生成し得る。
【００６８】
追加タスク関連コンテンツ203Bは、クライアントコンピューティングデバイス1061のユーザインターフェース出力デバイスを介して可聴的かつ/または視覚的にユーザに提示するために、メッセージ交換クライアント1071に提供される。いくつかの実装形態では、追加タスク関連コンテンツ203Bは自然言語出力であり、その出力は翻訳エンジン128によってメッセージ交換クライアント1071のユーザの言語に翻訳される。それらの実装形態では、翻訳された出力は、メッセージ交換クライアント1071に提供される。
【００６９】
実施例を続けると、メッセージ生成エンジン130が追加タスク関連コンテンツ390Bを提供した後、図2Bの例の別の事例が行われると想定する。詳細には、「わかりました。まずは2脚のソファにします。」を示す、図3Aのさらなる追加ユーザ入力380Bをユーザが提供すると想定する。それらの実装形態のうちのいくつかでは、メッセージ生成エンジン130は、図3Aのさらなる追加タスク関連コンテンツ390Cを生成し得る。たとえば、タスクパラメータモジュール132は、ユーザ入力380Bがプロトコルの家具物品パラメータの数量に対する有効な値(2つ)を示すと決定し得、メッセージ生成エンジン130は、割り当てられた有効な値をまだ有していない、プロトコルの「アポイントメント日付」パラメータに対するユーザ入力を要請するための、図3Aの追加タスク関連コンテンツ390Cを生成し得る。
【００７０】
追加タスク関連コンテンツ390Cは、プロトコルにおいて決定(たとえば、規定)され得るアポイントメント日付パラメータに関係する情報(たとえば、「あなたは在宅している必要があります。」)を含み、プロンプト(「どの日付を希望しますか。」)を含み、アポイントメント日付パラメータに対する有効な値(日付)としての選択可能な3つのオプションを含む。いくつかの実装形態では、メッセージ生成エンジン130は、サニーベール市に対する利用可能なサービス日付を反映するように更新される1つまたは複数のデータベースを参照することによって、サニーベール市に関連付けられたコンピューティングシステム、および/または人物へ通信を送るとともにそれに応答して日付を受信することによって、かつ/または他の技法を利用することによって、選択可能なオプションに対する日付を決定し得る。
【００７１】
ユーザは、その対応するグラフィカル要素との対話を通じて(たとえば、グラフィカル要素をタップすることによって)、かつ/または「6月19日でお願いします」などのさらなる自然言語入力によって、選択可能なオプションのうちの1つを選択し得る。たとえば、図3Aで示されるように、「6/19」を含むグラフィカル要素をユーザが「タップする」かまたは別の方法で選択すると想定する。そのさらなる入力は、メッセージ生成エンジン130に提供され得、メッセージ生成エンジン130は、タスク用のすべてのパラメータが有効な値を用いて指定されていることを、タスクパラメータモジュール132を介して決定し得る。それに応答して、メッセージ生成エンジン130は、タスクが起動されていること(「6月19日に関して予約しました」)を示し、タスクに関係するさらなる情報(「確認書が...受信箱」)を提供する、さらなる追加タスク関連コンテンツ390Dを提供し得る。いくつかの実装形態では、タスクパラメータモジュール132は、タスク用のパラメータとしての指定された値を1つまたは複数の他のコンピューティングシステム(たとえば、サニーベール市によって制御される)へ通信することによってタスクを起動して、それらのコンピューティングシステムによってかつ/またはそれらのコンピューティングシステムからユーザインターフェース出力を受け取る1人もしくは複数の人間によって、アクションの実行を起動し得る。
【００７２】
図3Bは、本明細書で説明する実装形態による、クライアントコンピューティングデバイス1061のユーザと自動メッセージングシステム120との間に出現し得るダイアログの別の例を表示スクリーン140が表示している、図1のコンピューティングデバイス1061を示す。詳細には、図3Bは、図3Aに示すものとは異なる自然言語ユーザインターフェース入力のユーザによる提供に応答して、図3Aのダイアログがどのように異なっていることがあるのかという一例を示す。言い換えれば、それは、自動メッセージングシステム120が、ダイアログ中に提供されるユーザインターフェース入力に基づいてどのようにダイアログを適合させ得るのかという一例を示す。
【００７３】
図3Bにおいて、自動メッセージングシステム120は、図3Aのタスク関連コンテンツ390Aと同じであるタスク関連コンテンツ390Eを有するダイアログを起動する。図3Bにおいて、ユーザは、「もちろん。」しか含まず図3Aの入力380Bのような物品の数量を指定しない入力380Cを用いて応答する。自動メッセージングシステム120は、ユーザが図3Aの入力380Bにおいて指定したように入力380Cでは無効な数量パラメータをユーザが指定しなかったので、図3Aにおけるようなプロトコルの家具物品パラメータの数量に基づいて生成され得るが異なるコンテンツを含む、さらなるタスク関連コンテンツ390Fを提供する。
【００７４】
図3Bにおいて、ユーザは、「1脚のソファと1台のテレビです。」という入力380Dを用いて応答する。メッセージ生成エンジン130は、「申し訳ありませんがテレビはお受けできません。ソファだけにしますか、それとも別の物品を追加しますか。」というさらなるタスク関連コンテンツ390Gを用いて応答する。この応答は、撤去に対してテレビが利用可能でないことを指定する、プロトコルのさらなるパラメータに基づいてよい。
【００７５】
図3Bのダイアログは、さらなるユーザ入力380E、およびさらなるユーザ入力380Eに合ったさらなるタスク関連コンテンツ390Dに続く。
【００７６】
次に図4を参照すると、タスク関連コンテンツを生成するためにローカル言語データベース158を利用するメッセージ生成エンジン130のさらなる例が提供される。図4は、本明細書で説明する実装形態による、クライアントコンピューティングデバイス1061のユーザと自動メッセージングシステム120との間に出現し得るダイアログのまた別の例を表示スクリーン140が表示している、図1のコンピューティングデバイス1061を示す。図4における表示スクリーン140は、仮想キーボードを介してユーザ入力を生成するためにユーザが選択し得るテキスト応答インターフェース要素484、およびマイクロフォンを介してユーザ入力を生成するためにユーザが選択し得る音声応答インターフェース要素485をさらに含む。表示スクリーン140はまた、コンピューティングデバイス1061に1つまたは複数のアクションを実行させるためにユーザによって対話され得るシステムインターフェース要素481、482、483を含む。
【００７７】
図4において、タスクエンジン126は、「食べ物を注文すること」というアクションを示すとともにアクションのための「レストラン」というサービスエンティティを示す、「レストランにおいて食べ物を注文すること」というタスクを識別している。いくつかの実装形態では、タスクエンジン126は、ユーザ属性エンジン124によって提供される、ユーザの1つまたは複数のユーザ属性が、そのタスクにとっての1つまたは複数の基準に適合すると決定することに基づいて、「レストランにおいて食べ物を注文すること」タスクを識別し得る。たとえば、「レストランにおいて食べ物を注文すること」タスクが、レストランにいることおよびユーザの言語(たとえば、ユーザの1次言語)とは異なる1次言語を伴う地理的領域にいることという、基準を含むと想定する。ユーザがレストランにいること、およびその1次言語がユーザのためのいかなる言語とも異なる地理的領域にレストランがあることを、ユーザのユーザ属性が示すとさらに想定する。たとえば、ユーザがスペイン語を話す国にいること、およびユーザによって発話される唯一の言語が英語であることを想定する。タスクエンジン126は、ユーザ属性とタスクにとっての基準との間のそのような適合に基づいて、「レストランにおいて食べ物を注文すること」タスクを識別し得る。
【００７８】
メッセージ生成エンジン130は、「レストランにおいて食べ物を注文すること」というタスクを利用して、ユーザがタスクを実行する助けを希望することになるのかどうかを促すタスク関連コンテンツ490A(「注文するお手伝いを希望しますか。」)を生成する。
【００７９】
図4のタスク関連コンテンツ490Aに応答して、ユーザは、コンピューティングデバイス1061の1つまたは複数のユーザインターフェース入力デバイスを利用して、「はい、チキンを注文したいのです。」という応答性自然言語入力480Aを提供する。
【００８０】
メッセージ生成エンジン130は、タスクおよび(ユーザ属性によって示されるような)ユーザの現在のロケーションを使用して、ローカル言語データベース158から「Me gustaria [食べ物] favor」という自然言語エントリを識別する。たとえば、その自然言語エントリは、それがデータベース158の中で「食べ物を注文すること」というタスクに関連付けられていること、およびユーザの現在のロケーションに対応する地理的領域に関連付けられていることに基づいて識別され得る。メッセージ生成エンジン130は、自然言語エントリに基づく自然言語出力を含むとともに、「pollo」が入力480Aで示された「チキン」の翻訳であることに基づいてプレースホルダー「[食べ物]」と置き換えられた「pollo」を含む、コンテンツ490Bを生成する。
【００８１】
コンテンツ490Bは、ユーザによって選択されると「Me gustaria pollo favor」をコンピューティングデバイス1061のスピーカーを介して可聴的にユーザに提示させる、選択可能なグラフィカル要素(「クリックして例を聞く」)をさらに含む。いくつかの実装形態では、「Me gustaria pollo favor」は、「Me gustaria pollo favor」という表示の代わりにまたはそれに加えて、自動的に可聴的にユーザに提示され得る。
【００８２】
コンテンツ490Cは、ユーザによって選択されるとユーザによって提供される発話入力をコンピューティングデバイス1061のマイクロフォンによってキャプチャさせる、選択可能なグラフィカル要素(「ここをクリックしてそれを言ってみる」)をさらに含む。発話入力は、それが「Me gustaria pollo favor」と一致するかどうかを決定するために、自動メッセージングシステム120および/または他の構成要素によって分析され得る。それが一致する場合、自動メッセージングシステム120は、さらなるタスク関連コンテンツ(図示せず)を介して、ユーザが正しく言語セグメントを復唱したことを示すフィードバックをユーザに提供し得る。それが一致しない場合、自動メッセージングは、さらなるタスク関連コンテンツ(図示せず)を介して、ユーザが言語セグメントを正しく復唱しなかったことを示し、正しく復唱されなかった用語を示し、かつ/もしくはその句を可聴的にユーザに提供し、かつ/またはその句を聞くための別の機会をユーザに与えるフィードバックをユーザに提供し得る。
【００８３】
ローカル言語データベース158からのエントリを利用する特定の例が図4に示されるが、多くの変形形態が企図される。たとえば、いくつかの実装形態では、ユーザのタスクの識別に応答して、自動メッセージングシステム120は、それらの句が提供されることをユーザが希望していることを確認するように最初にユーザを促すことなく、1つまたは複数のコンテキスト的に適切な「外国語」句を提供することによって、ダイアログを起動し得る。たとえば、図4のダイアログの起動は、「あなたはレストランにいるようです。あなたが食べ物を注文したい場合、「Me gustaria, [あなたが希望する食べ物], favor」と言ってください。たとえば、チキンを注文するには「Me gustaria pollo favor」と言ってください。」であってよい。ダイアログの起動は、さらに随意に、少なくともいくつかのコンテンツを自動的に可聴的に提示してよく、かつ/またはコンテンツのうちの少なくともいくつかを復唱するためのユーザの試行を自動的に聞き取ってよい。
【００８４】
別の例として、ユーザの1次言語とは異なる1次言語を伴う地理的領域の中のレストランにユーザがいることに基づいて(または、ユーザのカレンダーエントリが、ユーザがまもなくそのようなレストランにいることを示すことに基づいて)、タスクエンジン126は、「レストランの中で通信する」というもっと概略的なタスクを識別し得る。さらに、メッセージ生成エンジン130は、「gracias」(ありがとうございます)、「donde esta el bano」(トイレはどこですか)、「Me gustaria, [あなたが希望する食べ物], favor」(わたしは[あなたが希望する食べ物]を希望するのでお願いします)という言語セグメントなどの、そのタスクに関係する複数の言語セグメントをローカル言語データベース158から識別し得る。メッセージ生成エンジン130は、「レストランにおいて使用するための役に立つ現地語の句を聞きたいかどうかを知らせてください」というコンテンツを有するダイアログを起動してよい。肯定的ユーザ入力に応答して、メッセージ生成エンジン130は、識別された言語セグメント(たとえば、最も一般的なN個の言語セグメント)のうちの1つまたは複数を、それらの言語セグメントの英語の説明と一緒にユーザに提示してよい。
【００８５】
ダイアログに関与するためのグラフィカルユーザインターフェースが図3A、図3B、および図4に示され、本明細書におけるいくつかの他の例で説明されている。しかしながら、いくつかの実装形態では、自動メッセージングシステム120によって提供されるプロンプトは、必ずしもそれらのプロンプトを表示することなく、(ユーザのコンピューティングデバイスのスピーカーを介して)可聴的にユーザに伝達されてよい。その上、それらの実装形態のいくつかのバージョンでは、ユーザ入力は、ユーザが言語的ユーザインターフェース入力を提供することを介して提供されてよい。特定の一例として、いくつかの実装形態では、ユーザは、いかなるディスプレイも含まないコンピューティングデバイスを利用する自動メッセージングシステムとのダイアログに関与してよい。
【００８６】
図5は、ユーザのタスクに基づいてユーザとのダイアログを起動すること、ダイアログ中にユーザによって提供される自然言語入力に基づいてダイアログを適合させること、およびダイアログ中に転換された1つまたは複数のパラメータを用いてタスクの実行を随意に起動することの、例示的な方法500を示すフローチャートである。便宜上、フローチャートの動作は、動作を実行するシステムを参照しながら説明される。このシステムは、自動メッセージングシステム120などの、様々なコンピュータシステムの様々な構成要素を含み得る。その上、方法500の動作は特定の順序で示されるが、このことは限定的であることを意図しない。1つまたは複数の動作が、並べ替えられてよく、省略されてよく、または追加されてよい。
【００８７】
ブロック552において、システムは、ユーザのタスクを識別する。
【００８８】
ブロック554において、システムは、ユーザのコンピューティングデバイスのユーザインターフェース出力デバイスを介してユーザに提示するためにタスクに合ったコンテンツを提供することによって、ユーザとのダイアログを起動する。いくつかの実装形態では、システムは、タスクに関連付けられている(たとえば、タスクによって示されるアクションおよび/またはエンティティに関連付けられている)プロトコルを識別し得、プロトコルに基づいてコンテンツを生成し得る。いくつかの実装形態では、システムは、タスクに関連付けられている1つまたは複数の言語セグメントを識別し得、言語セグメントに基づいてコンテンツを生成し得、かつ/またはユーザが言語セグメントに関係する追加タスクコンテンツを希望することになるのかどうかを決定するためのコンテンツを生成し得る。
【００８９】
ブロック556において、システムは、ブロック554におけるコンテンツの提供に応答して、ユーザのコンピューティングデバイスの(または、ユーザの別のコンピューティングデバイスの)ユーザインターフェース入力デバイスを介してユーザによって定式化されている自然言語入力を受け取る。いくつかの実装形態では、自然言語入力は、ユーザインターフェース入力デバイスを介してユーザによって定式化された自由形式入力である。
【００９０】
ブロック558において、システムは、タスクに合った、ブロック556において受け取られた自然言語入力に基づく、追加コンテンツを生成する。いくつかの実装形態では、システムは、ブロック554において随意に識別されたプロトコルなどの、タスクに関連付けられたプロトコルに基づいて、追加コンテンツを生成し得る。たとえば、システムは、プロトコルにおいて規定されたタスクパラメータに関係するユーザ入力を要請するための追加コンテンツを生成し得る。そのような例では、システムは、タスクに関係する追加コンテンツをユーザが要望することを示す、ブロック556において受け取られた自然言語入力に基づいて、追加コンテンツを生成し得、かつ/またはブロック556において受け取られた自然言語入力によって規定される有効な値を有しなかったタスクパラメータに基づいて、追加コンテンツを生成し得る。いくつかの実装形態では、ブロック554のコンテンツは、タスクに関連付けられた言語セグメントを含み、ブロック556の入力は、言語セグメントを口頭で発話するためのユーザによる試行であり、ブロック558の追加コンテンツは、ブロック556の入力の分析に基づく、試行を対象とするフィードバックである。
【００９１】
ブロック560において、システムは、ユーザのコンピューティングデバイスのユーザインターフェース出力デバイスを介してユーザに提示するために、追加コンテンツを提供する。
【００９２】
随意のブロック562において、システムは、追加コンテンツの提供に応答して、ユーザインターフェース入力デバイスを介してユーザによって定式化されたさらなる自然言語入力を受け取る。
【００９３】
随意のブロック564において、システムは、ブロック552のタスク用の1つまたは複数のタスクパラメータ(たとえば、すべてのタスクパラメータまたはすべての必要なタスクパラメータ)が、ブロック552におけるタスクを用いて提供された値、ならびに/またはブロック556および/もしくは562においてユーザによって提供された自然言語入力に基づいて決定された値によって、転換されているかどうかを決定する。たとえば、システムは、タスクのためのプロトコルにおいて規定されるすべての必要なタスクパラメータに対して値が規定されているかどうかを決定してよい。
【００９４】
タスクパラメータのすべてが転換されていないとシステムが決定する場合、システムは、ブロック566に進み、転換されていないタスクパラメータを転換するためのさらなる追加コンテンツを生成する。いくつかの実装形態では、追加コンテンツは、ブロック554および/または558において随意に決定されたプロトコルに基づく。たとえば、システムは、それらの特定のパラメータがブロック556および562において受け取られた入力によって指定されないことに鑑みて、ブロック554において決定されたプロトコル用の1つまたは複数の特定のパラメータを要請するための追加プロンプトを生成してよい。
【００９５】
ブロック566において追加プロンプトを生成した後、システムは、次いで、ブロック560および562に進み、次いで、ブロック564において、ブロック552のタスク用の1つまたは複数のタスクパラメータ(たとえば、すべてのタスクパラメータまたはすべての必要なタスクパラメータ)が転換されているかどうかを、ブロック562の第2の反復において受け取られているまたさらなる入力に基づいて再び決定する。
【００９６】
ブロック564において(ブロック564の第1の反復または後続の反復のいずれかにおいて)タスクパラメータが転換され得るとシステムが決定する場合、システムは随意のブロック568に進み、ここで、システムはタスクの実行を起動する。いくつかの実装形態では、システムは、1つまたは複数の転換済みパラメータに対する値と一緒に1つまたは複数の他のコンピューティングシステムへタスクを通信して、それらのコンピューティングシステムによってかつ/またはそれらのコンピューティングシステムからユーザインターフェース出力を受け取る1人もしくは複数の人間によって、タスクの実行を起動し得る。
【００９７】
図6は、本明細書で説明する技法の1つまたは複数の態様を実行するために随意に利用され得る例示的なコンピューティングデバイス610のブロック図である。いくつかの実装形態では、クライアントコンピューティングデバイス1601〜N、自動メッセージングシステム120、および/または他の構成要素のうちの1つまたは複数は、例示的なコンピューティングデバイス610の1つまたは複数の構成要素を備え得る。
【００９８】
コンピューティングデバイス610は、通常、バスサブシステム612を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ614を含む。これらの周辺デバイスは、たとえば、メモリサブシステム625およびファイル記憶サブシステム626を含む、記憶サブシステム624、ユーザインターフェース出力デバイス620、ユーザインターフェース入力デバイス622、ならびにネットワークインターフェースサブシステム616を含み得る。入力および出力デバイスは、コンピューティングデバイス610とのユーザ対話を可能にする。ネットワークインターフェースサブシステム616は、外部ネットワークへのインターフェースを提供し、他のコンピューティングデバイスの中の対応するインターフェースデバイスに結合されている。
【００９９】
ユーザインターフェース入力デバイス622は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックスタブレットなどのポインティングデバイス、スキャナ、ディスプレイの中に組み込まれたタッチスクリーン、音声認識システム、マイクロフォンなどの音響入力デバイス、および/または他のタイプの入力デバイスを含み得る。概して、「入力デバイス」という用語の使用は、コンピューティングデバイス610の中にまたは通信ネットワーク上に情報を入力するための、すべての可能なタイプのデバイスおよび方法を含むものとする。
【０１００】
ユーザインターフェース出力デバイス620は、表示サブシステム、プリンタ、ファックス機械、または音響出力デバイスなどの非視覚的ディスプレイを含み得る。表示サブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投影デバイス、または認識可能な画像を作成するためのいくつかの他のメカニズムを含み得る。表示サブシステムはまた、音響出力デバイスなどを介した非視覚的表示を提供し得る。概して、「出力デバイス」という用語の使用は、コンピューティングデバイス610からユーザまたは別の機械もしくはコンピューティングデバイスに情報を出力するための、すべての可能なタイプのデバイスおよび方法を含むものとする。
【０１０１】
記憶サブシステム624は、本明細書で説明するモジュールの一部または全部の機能性を提供するプログラミングおよびデータ構造を記憶する。たとえば、記憶サブシステム624は、図5の方法の選択された態様を実行するための論理を含んでよい。
【０１０２】
これらのソフトウェアモジュールは、概して、プロセッサ614によって単独で、または他のプロセッサとの組合せで実行される。記憶サブシステム624の中で使用されるメモリ625は、プログラム実行中に命令およびデータを記憶するためのメインランダムアクセスメモリ(RAM)630、ならびに固定された命令が記憶される読取り専用メモリ(ROM)632を含む、いくつかのメモリを含むことができる。ファイル記憶サブシステム626は、プログラムおよびデータファイルのための永続的な記憶を提供することができ、ハードディスクドライブ、関連するリムーバブル媒体と一緒のフロッピーディスクドライブ、CD-ROMドライブ、光ドライブ、またはリムーバブル媒体カートリッジを含んでよい。いくつかの実装形態の機能を実施するモジュールは、記憶サブシステム624の中でまたはプロセッサ614によってアクセス可能な他の機械の中で、ファイル記憶サブシステム626によって記憶され得る。
【０１０３】
バスサブシステム612は、コンピューティングデバイス610の様々な構成要素およびサブシステムに、意図に応じて互いに通信させるためのメカニズムを提供する。バスサブシステム612は単一のバスとして概略的に示されるが、バスサブシステムの代替実装形態は複数のバスを使用してよい。
【０１０４】
コンピューティングデバイス610は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意の他のデータ処理システムもしくはコンピューティングデバイスを含む、様々なタイプのものであってよい。コンピュータおよびネットワークの絶え間なく変化する性質に起因して、図6に示すコンピューティングデバイス610の説明は、いくつかの実装形態を示すための具体例としてのみ意図される。コンピューティングデバイス610の多くの他の構成が、図6に示すコンピューティングデバイスよりも多数または少数の構成要素を有することが可能である。
【０１０５】
本明細書で説明するシステムがユーザについての個人情報を収集するかまたは個人情報を利用し得る状況では、ユーザは、プログラムまたは機能が、ユーザ情報(たとえば、ユーザのソーシャルネットワーク、社会的行為もしくは社会的活動、職業、ユーザの選好、またはユーザの現在の地理的ロケーションについての情報)を収集するかどうかを制御するための、またはユーザにとってより関連があり得るコンテンツをコンテンツサーバから受け取るべきかどうか、かつ/もしくはどのように受け取るべきかを制御するための、機会が提供され得る。また、いくつかのデータは、個人が特定できる情報が除去されるように、それが記憶または使用される前に1つまたは複数の方法で処置されてよい。たとえば、ユーザの識別情報は、個人が特定できる情報がユーザに対して決定できないように処置されてよく、またはユーザの地理的ロケーションは、ユーザの特定の地理的ロケーションが決定できないように、地理的ロケーション情報が取得される場所で(都市、郵便番号、または州レベルなどに)一般化されてよい。したがって、ユーザは、情報がユーザについてどのように収集および/または使用されるのかを制する制御を有してよい。
【０１０６】
いくつかの実装形態が本明細書で説明および図示されているが、機能を実行しかつ/または結果を取得するための様々な他の手段および/もしくは構造、ならびに/または本明細書で説明する利点のうちの1つまたは複数が利用されてよく、そのような変形形態および/または修正形態の各々は、本明細書で説明する実装形態の範囲内にあるものと見なされる。より一般的には、本明細書で説明するすべてのパラメータ、寸法、材料、および構成は、例示的であること、ならびに実際のパラメータ、寸法、材料、および/または構成が、教示が使用されるべき1つまたは複数の特定の適用例によって決まることを意図する。当業者は、慣例にすぎない実験を使用して、本明細書で説明する特定の実装形態の多くの均等物を認識し、または把握することができる。したがって、上記の実装形態が例としてのみ提示されること、ならびに添付の特許請求の範囲およびそれらの均等物の範囲内で、実装形態が特に説明および特許請求されるものとは別の方法で実践され得ることを理解されたい。本開示の実装形態は、本明細書で説明する各個々の特徴、システム、物品、材料、キット、および/または方法を対象とする。加えて、2つ以上のそのような特徴、システム、物品、材料、キット、および/または方法の任意の組合せは、そのような特徴、システム、物品、材料、キット、および/または方法が互いに矛盾しない場合、本開示の範囲内に含まれる。
【符号の説明】
【０１０７】
1061〜N  クライアントコンピューティングデバイス、クライアントデバイス
1071〜N  メッセージ交換クライアント
120  自動メッセージングシステム
122  自然言語プロセッサ、エンジン
124  ユーザ属性エンジン
126  タスクエンジン
128  翻訳エンジン
130  メッセージ生成エンジン
132  タスクパラメータモジュール
140  表示スクリーン
152  ユーザ属性データベース
154  タスクデータベース
156  エンティティプロトコルデータベース
158  ローカル言語データベース
201  ユーザ属性
202  タスク
203A  タスク関連コンテンツ
203B  追加タスク関連コンテンツ
204  応答性自然言語入力
205  注釈付き出力、注釈付き入力
380A〜E  ユーザ入力
381〜383  システムインターフェース要素
384  テキスト応答インターフェース要素
385  音声応答インターフェース要素
390A〜G  タスク関連コンテンツ
480A  応答性自然言語入力
481〜483  システムインターフェース要素
484  テキスト応答インターフェース要素
485  音声応答インターフェース要素
490A  タスク関連コンテンツ
490B、490C  コンテンツ
610  コンピューティングデバイス
612  バスサブシステム
614  プロセッサ
616  ネットワークインターフェースサブシステム
620  ユーザインターフェース出力デバイス
622  ユーザインターフェース入力デバイス
624  記憶サブシステム
625  メモリサブシステム
626  ファイル記憶サブシステム
632  読取り専用メモリ(ROM)
【図１】
2019518278.tif 000003
【図２Ａ】
2019518278.tif 000004
【図２Ｂ】
2019518278.tif 000005
【図３Ａ】
2019518278.tif 000006
【図３Ｂ】
2019518278.tif 000007
【図４】
2019518278.tif 000008
【図５】
2019518278.tif 000009
【図６】
2019518278.tif 000010
【手続補正書】
【提出日】平成30年12月11日(2018.12.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
自動メッセージングシステムに関連する1つまたは複数のプロセッサによって、ユーザのための少なくとも1つのタスクを識別するステップであって、前記タスクが、少なくとも1つのアクション、および前記アクションに関連する少なくとも1つのエンティティを示す、ステップと、
前記タスクを識別するステップに基づいて前記プロセッサのうちの1つまたは複数によって、前記タスクに関係する前記ユーザとのダイアログを起動するステップであって、前記自動メッセージングシステムを介し、
前記ユーザのコンピューティングデバイスのユーザインターフェース出力デバイスを介して前記ユーザに提示するために、前記タスクに合ったコンテンツを提供するステップを備える、ステップと、
前記提供に応答して、前記ダイアログを存続させるとともに前記コンピューティングデバイスのユーザインターフェース入力デバイスを介して前記ユーザによって定式化されている、自由形式自然言語入力を、前記プロセッサのうちの1つまたは複数によって受け取るステップと、
前記タスクに合った、前記自然言語入力に基づく、追加コンテンツを、前記プロセッサのうちの1つまたは複数によって生成するステップと、
前記ユーザインターフェース出力デバイスを介して前記ユーザに提示するために、前記ダイアログの存続中に前記プロセッサのうちの1つまたは複数によって前記追加コンテンツを提供するステップと
を備える方法。
【請求項２】
前記プロセッサのうちの1つまたは複数によって、前記ユーザがロケーションに存在することを決定するステップと、
前記タスクが前記ロケーションに関連付けられていることに基づいて、前記プロセッサのうちの1つまたは複数によって前記タスクを識別するステップと、
前記ユーザが前記ロケーションに存在すること、および前記タスクが前記ロケーションに関連付けられていることを、決定することに基づいて、前記プロセッサのうちの1つまたは複数によって前記タスクを前記ユーザに割り当てるステップと
をさらに備える請求項1に記載の方法。
【請求項３】
前記プロセッサのうちの1つまたは複数によって、前記ユーザがロケーションに存在すること、および前記ロケーションが前記ユーザにとってよく知っているロケーションでないことを、決定するステップと、
前記ロケーションをよく知らない個人に前記タスクが関連付けられていることに基づいて、前記プロセッサのうちの1つまたは複数によって前記タスクを識別するステップと、
前記ロケーションが前記ユーザによく知られていないこと、および前記ロケーションをよく知らない個人に前記タスクが関連付けられていることを、決定することに基づいて、前記プロセッサのうちの1つまたは複数によって前記タスクを前記ユーザに割り当てるステップと
をさらに備える請求項1または請求項2に記載の方法。
【請求項４】
前記タスクに合った、ソース言語での、ソース言語コンテンツを、前記プロセッサのうちの1つまたは複数によって識別するステップと、
前記プロセッサのうちの1つまたは複数によって、前記ソース言語とは異なる前記ユーザの言語を識別するステップと、
前記ソース言語コンテンツを前記ソース言語から前記ユーザの前記言語に翻訳することによって、前記プロセッサのうちの1つまたは複数によって前記コンテンツを生成するステップと
をさらに備える請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記プロセッサのうちの1つまたは複数によって、前記タスクの実行に関係する複数のパラメータを規定するプロトコルを識別するステップと、
前記プロセッサのうちの1つまたは複数によって、前記パラメータのうちの1つまたは複数のグループに関係する入力を要請するための前記コンテンツまたは前記追加コンテンツを生成するステップと
をさらに備える請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記アクションによって示される前記エンティティがサービスエンティティであり、第1の自然言語入力および第2の自然言語入力が両方とも前記ユーザのネイティブ言語におけるものであり、
前記プロセッサのうちの1つまたは複数によって、前記サービスエンティティにとって好ましい言語を識別するステップと、
前記プロセッサのうちの1つまたは複数によって、前記第1の自然言語入力および前記第2の自然言語入力のうちの少なくともいくつかを前記ネイティブ言語から前記好ましい言語に翻訳するステップと、
前記プロセッサのうちの1つまたは複数によって、前記翻訳された自然言語入力を前記サービスエンティティに提供するステップと
をさらに備える請求項1から5のいずれか一項に記載の方法。
【請求項７】
前記ユーザの現在のロケーションが前記エンティティのロケーションに対応することに基づいて、前記プロセッサのうちの1つまたは複数によって前記少なくとも1つのタスクを前記ユーザに割り当てるステップをさらに備え、
前記タスクに合った前記コンテンツが、前記タスクに関連する前記エンティティにおいて発話される共通の句を含み、
前記自然言語入力が、前記共通の句を口頭で発話するための試行としての音響であり、
第2のコンテンツが、前記音響の分析に基づくフィードバックである、
請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記プロセッサのうちの1つまたは複数によって、前記エンティティに対する前記アクションの実行に関係する複数のパラメータを規定するプロトコルを識別するステップであって、
前記追加コンテンツを生成するステップが、前記パラメータのうちの1つまたは複数のグループに向けられた入力を要請するための前記追加コンテンツを生成するステップを含む、ステップと、
前記ダイアログを存続させるとともに前記ユーザインターフェース入力デバイスを介して前記ユーザによって定式化されている、追加自由形式自然言語入力を、前記追加コンテンツの提供に応答して前記プロセッサのうちの1つまたは複数によって受け取るステップと、
前記追加自由形式自然言語入力に基づいて、前記パラメータのうちの1つまたは複数に対する1つまたは複数の値を決定するステップと
をさらに備える請求項1から7のいずれか一項に記載の方法。
【請求項９】
前記プロセッサのうちの1つまたは複数によって、前記決定された1つまたは複数の値を用いて前記エンティティに対する前記アクションを起動するステップ
をさらに備える請求項8に記載の方法。
【請求項１０】
有効な値が指定されない前記パラメータのうちの1つまたは複数を、前記パラメータに対する前記1つまたは複数の値を決定した後に前記プロセッサのうちの1つまたは複数によって識別するステップと、
有効な値が指定されない前記パラメータのうちの前記1つまたは複数に向けられた入力を要請するためのさらなるコンテンツを、前記プロセッサのうちの1つまたは複数によって生成するステップと、
前記ユーザインターフェース出力デバイスを介して前記ユーザに提示するために、前記ダイアログの存続中に前記プロセッサのうちの1つまたは複数によって前記さらなるコンテンツを提供するステップと
をさらに備える請求項8に記載の方法。
【請求項１１】
前記プロセッサのうちの1つまたは複数によって、前記エンティティに対する前記アクションの実行に関係する複数のパラメータを規定するプロトコルを識別するステップであって、
前記追加コンテンツを生成するステップが、前記パラメータのうちの1つまたは複数のグループに向けられた入力を要請するための前記追加コンテンツを生成するステップを含む、ステップと、
前記ダイアログを存続させるとともに前記ユーザインターフェース入力デバイスを介して前記ユーザによって定式化されている、追加自由形式自然言語入力を、前記追加コンテンツの提供に応答して前記プロセッサのうちの1つまたは複数によって受け取るステップと、
前記追加自由形式自然言語入力によって指定された少なくとも1つの値が、前記グループの前記パラメータのうちの所与のパラメータにとって有効でないことを決定するステップと、
前記値が前記所与のパラメータにとって有効でないことを示すとともに前記所与のパラメータにとっての1つまたは複数の基準を示す、さらなるコンテンツを生成するステップと、
前記ユーザインターフェース出力デバイスを介して前記ユーザに提示するために、前記ダイアログの存続中に前記プロセッサのうちの1つまたは複数によって前記さらなるコンテンツを提供するステップと
をさらに備える請求項1から10のいずれか一項に記載の方法。
【請求項１２】
前記プロセッサのうちの1つまたは複数によって、前記エンティティに対する前記アクションの実行に関係する複数のパラメータを規定するプロトコルを識別するステップと、
自然言語入力によって指定された少なくとも1つの値が、前記グループの前記パラメータのうちの所与のパラメータにとって有効でないことを決定するステップとをさらに備え、
前記追加コンテンツを生成するステップが、前記値が前記所与のパラメータにとって有効でないという表示を含むとともに前記所与のパラメータにとっての1つまたは複数の基準の表示を含むように、前記追加コンテンツを生成するステップを含む、
請求項1から11のいずれか一項に記載の方法。
【請求項１３】
前記タスクを前記ユーザに割り当てるステップをさらに備え、割り当てる前記ステップは、前記プロセッサのうちの1つまたは複数によるものであり、前記ユーザによって前記自動メッセージングシステムに提供されるいかなるユーザインターフェース入力とも無関係である、
請求項1から12のいずれか一項に記載の方法。
【請求項１４】
前記ダイアログを起動するステップが、前記自動メッセージングシステムを対象とするユーザインターフェース入力に応答し、前記ユーザインターフェース入力が、前記タスクを明示的には識別しない、請求項13に記載の方法。
【請求項１５】
前記ユーザに提示するために前記追加コンテンツを提供するステップが、前記コンテンツとの同時表示のために前記追加コンテンツを提供するステップを備え、前記コンテンツとの前記同時表示が、前記コンピューティングデバイスによってレンダリングされるグラフィカルユーザインターフェースを介する、請求項1から14のいずれか一項に記載の方法。
【請求項１６】
前記ユーザに提示するために前記追加コンテンツを提供するステップが、前記自然言語入力との同時表示のために前記追加コンテンツを提供するステップを備え、前記自然言語入力との前記同時表示が、前記コンピューティングデバイスによってレンダリングされる前記グラフィカルユーザインターフェースを介する、請求項15に記載の方法。
【請求項１７】
前記自動メッセージングシステムが、前記ユーザの前記コンピューティングデバイスから遠隔にある1つまたは複数のコンピューティングデバイス上に少なくとも部分的に実装される、請求項15または請求項16に記載の方法。
【請求項１８】
メモリおよび1つまたは複数のプロセッサを備えるシステムであって、前記メモリが命令を記憶し、前記命令は、前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
ユーザのための少なくとも1つのタスクを識別することであって、前記タスクが、少なくとも1つのアクション、および前記アクションに関連する少なくとも1つのエンティティを示す、ことと、
前記タスクを識別することに基づいて、前記タスクに関係する前記ユーザとのダイアログを起動することであって、前記ダイアログを起動する際に、前記1つまたは複数のプロセッサが、前記ユーザのコンピューティングデバイスのユーザインターフェース出力デバイスを介して前記ユーザに提示するために、前記タスクに合ったコンテンツを提供すべきである、ことと、
前記提供に応答して、前記ダイアログを存続させるとともに前記コンピューティングデバイスのユーザインターフェース入力デバイスを介して前記ユーザによって定式化されている、自由形式自然言語入力を受け取ることと、
前記タスクに合った、前記自然言語入力に基づく、追加コンテンツを生成することと、
前記ユーザインターフェース出力デバイスを介して前記ユーザに提示するために、前記ダイアログの存続中に前記追加コンテンツを提供することと
をさせる、システム。
【請求項１９】
前記命令が、前記1つまたは複数のプロセッサによって実行されたとき、さらに前記1つまたは複数のプロセッサに、
前記ユーザがロケーションに存在することを決定することと、
前記タスクが前記ロケーションに関連付けられていることに基づいて、前記タスクを識別することと、
前記ユーザが前記ロケーションに存在すること、および前記タスクが前記ロケーションに関連付けられていることを、決定することに基づいて、前記タスクを前記ユーザに割り当てることと
をさせる、請求項18に記載のシステム。
【請求項２０】
前記命令が、前記1つまたは複数のプロセッサによって実行されたとき、さらに前記1つまたは複数のプロセッサに、
前記ユーザの現在のロケーションが前記エンティティのロケーションに対応することに基づいて、前記少なくとも1つのタスクを前記ユーザに割り当てさせ、
前記タスクに合った前記コンテンツが、前記タスクに関連する前記エンティティにおいて発話される共通の句を含み、
前記自然言語入力が、前記共通の句を口頭で発話するための試行としての音響であり、
第2のコンテンツが、前記音響の分析に基づくフィードバックである、
請求項18または請求項19に記載のシステム。
【請求項２１】
前記命令が、前記1つまたは複数のプロセッサによって実行されたとき、さらに前記1つまたは複数のプロセッサに、
前記エンティティに対する前記アクションの実行に関係する複数のパラメータを規定するプロトコルを識別することであって、
前記追加コンテンツを生成する際に、前記1つまたは複数のプロセッサが、前記パラメータのうちの1つまたは複数のグループを要請するための前記追加コンテンツを生成すべきである、ことと、
前記ダイアログを存続させるとともに前記ユーザインターフェース入力デバイスを介して前記ユーザによって定式化されている、追加自由形式自然言語入力を、前記追加コンテンツの提供に応答して受け取ることと、
前記追加自由形式自然言語入力に基づいて、前記パラメータのうちの1つまたは複数に対する1つまたは複数の値を決定することと
をさせる、請求項18から20のいずれか一項に記載のシステム。
【請求項２２】
命令を備える少なくとも1つのコンピュータ可読記憶媒体であって、前記命令は、1つまたは複数のプロセッサによる前記命令の実行に応答して、前記1つまたは複数のプロセッサに、以下の動作、すなわち、
ユーザのための少なくとも1つのタスクを識別することであって、前記タスクが、少なくとも1つのアクション、および前記アクションに関連する少なくとも1つのエンティティを示す、ことと、
前記タスクを識別することに基づいて、前記タスクに関係する前記ユーザとのダイアログを起動することであって、前記ダイアログを起動する際に、前記1つまたは複数のプロセッサが、前記ユーザのコンピューティングデバイスのユーザインターフェース出力デバイスを介して前記ユーザに提示するために、前記タスクに合ったコンテンツを提供すべきである、ことと、
前記提供に応答して、前記ダイアログを存続させるとともに前記コンピューティングデバイスのユーザインターフェース入力デバイスを介して前記ユーザによって定式化されている、自由形式自然言語入力を受け取ることと、
前記タスクに合った、前記自然言語入力に基づく、追加コンテンツを生成することと、
前記ユーザインターフェース出力デバイスを介して前記ユーザに提示するために、前記ダイアログの存続中に前記追加コンテンツを提供することと
を実行させる、コンピュータ可読記憶媒体。
【請求項２３】
1つまたは複数のプロセッサによる前記命令の実行に応答して、前記1つまたは複数のプロセッサに、請求項2から17のいずれか一項に記載の方法を実行させる命令をさらに備える、請求項22に記載の少なくとも1つのコンピュータ可読記憶媒体。
【請求項２４】
請求項1から17のいずれか一項に記載の方法を実行するように構成された装置。
【請求項２５】
コンピューティング装置によって実行されたとき、請求項1から17のいずれか一項に記載の方法を実行させる機械可読命令を備えるコンピュータプログラム。
【国際調査報告】
2019518278.tif 000011
2019518278.tif 000012