(57)【要約】      （修正有）【課題】ダイアログ・システムにおけるパラメータ収集および自動ダイアログ生成を提供する。【解決手段】方法は、要求されたインテント・パラメータを有する会話入力に関連付けられたダイアログ・システム・インテントを少なくとも１つの予め決定されたインテントキーワードに基づいて識別するステップと、ダイアログ・システムの全ての要求されたインテント・パラメータに対するデータが利用可能であるかどうかを判定するステップと、判定に基づいて、ダイアログ・システム・インテントに関連付けられたパラメータ収集ダイアログを選択的に開始するステップと、ダイアログ・システム・インテントおよび１つまたは複数の要求されたパラメータに基づいて、アクション命令を生成するステップと、を含む。【選択図】図７
2020161153.tif 000002
【特許請求の範囲】
【請求項１】
インテント・パラメータ収集のための方法であって、
ユーザの会話入力を受信するステップと、
前記会話入力に関連付けられたダイアログ・システム・インテントを少なくとも１つの予め決定されたインテントキーワードに基づいて識別するステップであって、前記ダイアログ・システム・インテントは要求されたインテント・パラメータを有する、ステップと、
前記ダイアログ・システムの全ての要求されたインテント・パラメータに対するデータが利用可能であるかどうかを判定するステップと、
前記判定に基づいて、前記ダイアログ・システム・インテントに関連付けられたパラメータ収集ダイアログを選択的に開始するステップであって、前記パラメータ収集ダイアログは、そうでなければ前記ダイアログ・システム・インテントに利用可能でない前記要求されたパラメータに対するデータを収集するように動作可能である、ステップと、
前記ダイアログ・システム・インテントおよび１つまたは複数の要求されたパラメータに基づいて、アクション命令を生成するステップと、
を含む、方法。
【請求項２】
前記会話入力内の前記要求されたインテント・パラメータのうち少なくとも１つを識別するステップと、
前記要求されたインテント・パラメータのうち前記少なくとも１つを前記会話入力から抽出するステップと、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記会話入力が全ての紛失インテント・パラメータを含むとの判定に基づいて前記パラメータ収集ダイアログを開始することなく、前記要求されたインテント・パラメータを前記会話入力から抽出するステップをさらに含む、請求項１に記載の方法。
【請求項４】
前記パラメータ収集ダイアログは少なくとも１つの予め決定されたプロンプトを含む、請求項１に記載の方法。
【請求項５】
前記少なくとも１つの予め決定されたプロンプトに応答して、前記ユーザの少なくとも１つのさらなる会話入力を受信するステップと、
前記紛失インテント・パラメータの全てが収集されるまで、前記要求されたインテント・パラメータのうち少なくとも１つを前記少なくとも１つの追加の会話入力から抽出するステップと、
をさらに含む、請求項４に記載の方法。
【請求項６】
前記インテント・パラメータのうち少なくとも１つは、数値、単語、フレーズ、音、および画像のうち少なくとも１つを含む、請求項１に記載の方法。
【請求項７】
前記インテント・パラメータのうち少なくとも１つは予め決定された値のリストから選択される、請求項１に記載の方法。
【請求項８】
開発者プラットフォームにより、開発者が、紛失インテント・パラメータの収集を自動化するための前記自然会話ダイアログ・システムのダイアログ・エージェントを生成できるようにするステップであって、前記ダイアログ・エージェントは開発者プロフィールに関連付けられる、ステップをさらに含む、請求項１に記載の方法。
【請求項９】
前記開発者プラットフォームにより、前記開発者が、
前記ダイアログ・エージェントを生成し、
前記ダイアログ・システム・インテント、少なくとも１つのインテント・パラメータ、および前記インテント・パラメータに対する１つまたは複数のプロンプトのうち１つまたは複数を提供する
ことを可能とするグラフィカル・インタフェースを提供するステップをさらに含む、請求項８に記載の方法。
【請求項１０】
前記開発者が、前記開発者プラットフォームにより、ダイアログ・システム・エンティティまたは前記インテント・パラメータに対するデータ・タイプを指定できるようにするステップと、
前記開発者が、前記開発者プラットフォームにより、前記インテント・パラメータの各々に対する値タイプを指定できるようにするステップと、
をさらに含む、請求項９に記載の方法。
【請求項１１】
前記アクション命令は、サーバまたはユーザ・デバイスに、前記アクション命令および１つまたは複数の要求されたインテント・パラメータに基づいて予め決定されたアクションを実装させるように構成される、請求項１に記載の方法。
【請求項１２】
前記アクション命令は、ＡＰＩサービスを引き起こすように構成されたアプリケーション・プログラミング・インタフェース（ＡＰＩ）固有応答を含む、請求項１に記載の方法。
【請求項１３】
前記ユーザが前記アクション命令を確認するかまたは明らかにすることを可能とする確認メッセージを提供するステップをさらに含み、前記確認メッセージは１つまたは複数の要求されたインテント・パラメータを記述する、請求項１に記載の方法。
【請求項１４】
少なくとも１つのプロセッサとプロセッサ実行可能コードを格納するメモリとを備えた自然会話ダイアログ・システムであって、前記少なくとも１つのプロセッサは、前記プロセッサ実行可能コードを実行する際に、
会話入力に関連付けられたダイアログ・システム・インテントを少なくとも１つの予め決定されたインテントキーワードに基づいて識別するステップであって、前記ダイアログ・システム・インテントは要求されたインテント・パラメータを有する、ステップと、
前記ダイアログ・システムの全ての要求されたインテント・パラメータに対するデータが利用可能であるかどうかを判定するステップと、
前記判定に基づいて、前記ダイアログ・システム・インテントに関連付けられたパラメータ収集ダイアログを選択的に開始するステップであって、前記パラメータ収集ダイアログは、そうでなければ前記ダイアログ・システム・インテントに利用可能でない前記要求されたパラメータに対するデータを収集するように動作可能である、ステップと、
前記ダイアログ・システム・インテントおよび１つまたは複数の要求されたパラメータに基づいて、アクション命令を生成するステップと、
を実施するように構成される、自然会話ダイアログ・システム。
【請求項１５】
前記少なくとも１つのプロセッサはさらに、前記会話入力が前記紛失インテント・パラメータの全てを含むとの判定に基づいて前記パラメータ収集ダイアログを開始することなく、紛失インテント・パラメータの全てを前記会話入力から取り出すように構成される、請求項１４に記載のシステム。
【請求項１６】
前記少なくとも１つのプロセッサはさらに、前記パラメータ収集ダイアログに対する少なくとも１つの予め決定されたプロンプトを生成するように構成される、請求項１４に記載のシステム。
【請求項１７】
前記少なくとも１つのプロセッサはさらに、前記プロセッサ実行可能コードの実行の際に、
前記少なくとも１つの予め決定されたプロンプトに応答して、ユーザの少なくとも１つの追加の会話入力を受信し、
前記紛失インテント・パラメータの全てが収集されるまで、前記要求されたインテント・パラメータのうち少なくとも１つを前記少なくとも１つの追加の会話入力から取り出す
動作を実施するように構成される、請求項１６に記載のシステム。
【請求項１８】
前記少なくとも１つのプロセッサは、前記プロセッサ実行可能コードの実行の際に、
開発者プラットフォームにより、開発者が、前記要求されたインテント・パラメータの収集を自動化するための前記自然会話ダイアログ・システムに対するダイアログ・エージェントを生成できるようにする動作を実施するように構成され、前記ダイアログ・エージェントは開発者プロフィールに関連付けられる、請求項１４に記載のシステム。
【請求項１９】
前記少なくとも１つのプロセッサは、前記プロセッサ実行可能コードの実行の際に、
前記開発者プラットフォームにより、
前記開発者が前記ダイアログ・エージェントを生成できるようにし、
前記ダイアログ・システム・インテント、少なくとも１つのインテント・パラメータ、および前記インテント・パラメータの各々に対する前記パラメータ収集ダイアログに対する１つまたは複数のプロンプトのうち少なくとも１つを提供し、
前記開発者が、前記開発者プラットフォームにより、ダイアログ・システム・エンティティまたは前記インテント・パラメータに対するデータ・タイプを指定できるようにし、
前記開発者が、前記開発者プラットフォームにより、前記インテント・パラメータの各々に対する値タイプを指定できるようにする
ためのグラフィカル・インタフェースを提供する動作を実施するように構成される、請求項１８に記載のシステム。
【請求項２０】
１つまたは複数のプロセッサにより実行されたとき、前記１つまたは複数のプロセッサに、自然会話ダイアログ・システムに対する方法を実装させる命令を格納した非一時的プロセッサ可読媒体であって、前記方法は、
会話入力に関連付けられたダイアログ・システム・インテントを少なくとも１つの予め決定されたインテントキーワードに基づいて識別するステップであって、前記ダイアログ・システム・インテントは要求されたインテント・パラメータを有する、ステップと、
前記ダイアログ・システムの全ての要求されたインテント・パラメータに対するデータが利用可能であるかどうかを判定するステップと、
前記判定に基づいて、前記ダイアログ・システム・インテントに関連付けられたパラメータ収集ダイアログを選択的に開始するステップであって、前記パラメータ収集ダイアログは、そうでなければ前記ダイアログ・システム・インテントに利用可能でない前記要求されたパラメータに対するデータを収集するように動作可能である、ステップと、
前記ダイアログ・システム・インテントおよび１つまたは複数の要求されたパラメータに基づいて、アクション命令を生成するステップと、
を含む、非一時的プロセッサ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の記載
本願は、発明の名称を「ダイアログ・システムにおけるパラメータ収集および自動ダイアログ生成」とした、２０１５年１０月２１日出願の米国仮特許出願第６２／２４４、５６０号に対する利益を主張し、全ての目的でその全体を引用により本明細書に組み込む。
【背景技術】
【０００２】
ダイアログ・システムは、ポータブルデバイスに対する適用において広く使用される。一般に、ダイアログ・システムは、情報にアクセスし、処理し、管理し、配信するためのヒューマン・マシン・インタフェースを有するコンピュータベースのエージェントを含む。ダイアログ・システムは、チャット情報システム、発話ダイアログ・システム、会話エージェント、チャッタロボット、チャッタボット、チャットボット、チャットエージェント、デジタルパーソナルアシスタント、自動化されたオンラインアシスタント等としても知られる。
【０００３】
伝統的に、ダイアログ・システムは、自然言語を用いて人間と対話して、インテリジェントな会話をシミュレートし、個別化された支援を当該ユーザに提供することができる。例えば、ユーザは、当該ダイアログ・システムに「What is the weather like in Alexandria today?」と問い合わせて、回答を当該ダイアログ・システムからオーディオまたはテキスト・メッセージの形で受信しうる。当該ユーザは音声コマンドを当該ダイアログ・システムに提供して、特定の動作、例えば、電子メールの生成、電話、情報の検索、ナビゲート、通知またはリマインダの設定等の実施を行わせてもよい。これらのおよび他の機能により、ダイアログ・システムは、ユーザ、特に、例えば、スマートフォンおよびタブレットコンピュータのようなポータブル電子デバイスのユーザに非常に人気があるものとなっている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ダイアログ・システムは、ユーザ音声入力を受信し、それをテキスト入力に変換し、当該テキスト入力を解釈し、当該テキスト入力に対する適切な応答の生成、および応答のユーザへの配信の責任を負うダイアログ・システム・エンジンを含むことができる。入力の解釈および正確な応答の発見は人工知能アルゴリズムを利用することができる。したがって、ダイアログ・システムに対する増大する要求にも関わらず、当該ダイアログ・システムの生成は複雑な技術的作業となっている。
【課題を解決するための手段】
【０００５】
自然言語ダイアログ・システムは、ユーザとの対話を維持し、インテリジェントな応答を提供するかまたはユーザ要求に応答して広範囲のアクションを実施することができる。当該ユーザ要求は、ユーザが発声したことと自然言語ダイアログ・システムがとるアクションとの間のマッピングを促進するダイアログ・システム「インテント」を用いて、自然言語ダイアログ・システムにより解釈することができる。特定のユーザマシンダイアログ・コンテキストにおいて、所与のインテントに対するアクションを実装するために、自然言語ダイアログ・システムは１つまたは複数のインテント・パラメータを取得する必要がある。例えば、ユーザ要求がピザの注文を自然言語ダイアログ・システムに要求するとき、自然言語ダイアログ・システムは、サイズ、パイ皮タイプ、トッピング、ベンダ、配達の時間と住所のような、ピザに関連付けられたパラメータを取得する必要がある。
【０００６】
本開示に従う例は、インテント・パラメータをユーザから自然言語ダイアログを模倣するマシン実行型のパラメータ収集ダイアログで収集するためのシステムおよび方法を提供する。当該ユーザの予め決定されたインテントを、インテント・パラメータの当該集合を初期化するために識別する必要があってもよい。当該インテント・パラメータが収集されると、自然言語ダイアログ・システムは、当該収集されたパラメータに基づいて当該インテントに関連付けられた予め決定されたアクションを実装する（例えば、電子購入注文をピザレストランに送信する）。
【０００７】
本開示に従う例はさらに、ソフトウェア開発者が、パラメータ収集ダイアログを実行しインテント・パラメータを収集するように構成可能なダイアログ・エージェントを生成できるようにするためのシステムおよび方法を提供することができる。本明細書で開示された１例において、ユーザの会話入力を受信するステップと、当該会話入力に関連付けられたダイアログ・システム・インテントを少なくとも１つの予め決定されたインテントキーワードに基づいて識別するステップであって、当該ダイアログ・システム・インテントは要求されたインテント・パラメータを有する、ステップと、当該ダイアログ・システムの全ての要求されたインテント・パラメータに対するデータが利用可能であるかどうかを判定するステップと、当該判定に基づいて、当該ダイアログ・システム・インテントに関連付けられたパラメータ収集ダイアログを選択的に開始するステップであって、当該パラメータ収集ダイアログは、そうでなければ当該ダイアログ・システム・インテントに利用可能でない当該要求されたパラメータに対するデータを収集するように動作可能である、ステップと、当該ダイアログ・システム・インテントおよび１つまたは複数の要求されたパラメータに基づいて、アクション命令を生成するステップとを含む、インテント・パラメータ収集のための方法が提供される。
【０００８】
１例において、当該方法はさらに、当該会話入力内の要求されたインテント・パラメータのうち少なくとも１つを識別するステップと当該要求されたインテント・パラメータのうち当該少なくとも１つを当該会話入力から抽出するステップとを含んでもよい。当該方法はさらに、当該会話入力が全ての紛失インテント・パラメータを含むとの判定に基づいて当該パラメータ収集ダイアログを開始することなく、当該要求されたインテント・パラメータを当該会話入力から抽出するステップを含むことができる。当該パラメータ収集ダイアログが、少なくとも１つの予め決定されたプロンプトを含んでもよい。
【０００９】
１例において、当該方法はさらに、当該少なくとも１つの予め決定されたプロンプトに応答して、当該ユーザの少なくとも１つのさらなる会話入力を受信するステップと当該紛失インテント・パラメータの全てが収集されるまで、当該要求されたインテント・パラメータのうち少なくとも１つを当該少なくとも１つの追加の会話入力から抽出するステップとを含んでもよい。当該インテント・パラメータが、数値、単語、フレーズ、音、および画像のうち少なくとも１つを含んでもよい。当該インテント・パラメータのうち少なくとも１つを予め決定された値のリストから選択することができる。
【００１０】
１例において、当該方法はさらに、開発者プラットフォームにより、開発者が、紛失インテント・パラメータの収集を自動化するための当該自然会話ダイアログ・システムのダイアログ・エージェントを生成できるようにするステップであって、当該ダイアログ・エージェントは開発者プロフィールに関連付けられる、ステップを含むことができる。当該方法はさらに、開発者プラットフォームにより、開発者が、当該ダイアログ・エージェントを生成し、当該ダイアログ・システム・インテント、少なくとも１つのインテント・パラメータ、および当該インテント・パラメータに対する１つまたは複数のプロンプトの１つまたは複数を提供できるようにするグラフィカル・インタフェースを含むことができる。当該方法はさらに、開発者が、開発者プラットフォームにより、ダイアログ・システム・エンティティまたは当該インテント・パラメータに対するデータ・タイプを指定できるようにするステップと開発者が、開発者プラットフォームにより、当該インテント・パラメータの各々に対する値タイプを指定できるようにするステップとを含むことができる。当該アクション命令を、サーバまたはユーザ・デバイスに、当該アクション命令および１つまたは複数の要求されたインテント・パラメータに基づいて予め決定されたアクションを実装させるように構成することができる。当該アクション命令はＡＰＩサービスを引き起こすように構成されたアプリケーション・プログラミング・インタフェース（ＡＰＩ）固有応答を含むことができる。当該方法は、当該ユーザが当該アクション命令を確認するかまたは明らかにすることを可能とする確認メッセージを提供するステップであって、当該確認メッセージは１つまたは複数の要求されたインテント・パラメータを記述する、ステップを含むことができる。
【００１１】
本開示に従う別の例では、少なくとも１つのプロセッサとプロセッサ実行可能コードを格納するメモリとを備えた自然会話ダイアログ・システムが提供される。当該プロセッサを、当該プロセッサ実行可能コードを実行する際に以下の動作、即ち、当該会話入力に関連付けられたダイアログ・システム・インテントを少なくとも１つの予め決定されたインテントキーワードに基づいて識別するステップであって、当該ダイアログ・システム・インテントは要求されたインテント・パラメータを有する、ステップと、当該ダイアログ・システムの全ての要求されたインテント・パラメータに対するデータが利用可能であるかどうかを判定するステップと、当該判定に基づいて、当該ダイアログ・システム・インテントに関連付けられたパラメータ収集ダイアログを選択的に開始するステップであって、当該パラメータ収集ダイアログは、そうでなければ当該ダイアログ・システム・インテントに利用可能でない当該要求されたパラメータに対するデータを収集するように動作可能である、ステップと、当該ダイアログ・システム・インテントおよび１つまたは複数の要求されたパラメータに基づいて、アクション命令を生成するステップとを実装するように構成することができる。
【００１２】
１例において、当該少なくとも１つのプロセッサはさらに、当該会話入力が当該紛失インテント・パラメータの全てを含むとの判定に基づいて当該パラメータ収集ダイアログを開始することなく、紛失インテント・パラメータの全てを当該会話入力から取り出すように構成されることができる。当該少なくとも１つのプロセッサはさらに、当該パラメータ収集ダイアログに対する少なくとも１つの予め決定されたプロンプトを生成するように構成されることができる。当該少なくとも１つのプロセッサはさらに、当該プロセッサ実行可能コードの実行の際に以下の動作、即ち、当該少なくとも１つの予め決定されたプロンプトに応答して、当該ユーザの少なくとも１つの追加の会話入力を受信し、当該紛失インテント・パラメータの全てが収集されるまで、当該要求されたインテント・パラメータのうち少なくとも１つを当該少なくとも１つの追加の会話入力から取り出すことを実装するように構成されることができる。
【００１３】
１例において当該少なくとも１つのプロセッサを、当該プロセッサ実行可能コードの実行の際に以下の動作、即ち、開発者プラットフォームにより、開発者が、当該要求されたインテント・パラメータの収集を自動化するための当該自然会話ダイアログ・システムに対するダイアログ・エージェントを生成できるようにすることを実装するように構成することができる、当該ダイアログ・エージェントは開発者プロフィールに関連付けられる。当該少なくとも１つのプロセッサを、当該プロセッサ実行可能コードの実行の際に以下の動作、即ち、開発者プラットフォームにより、開発者に当該ダイアログ・エージェントを生成させることを可能とするグラフィカル・インタフェースを提供し、当該ダイアログ・システム・インテント、少なくとも１つのインテント・パラメータ、および当該インテント・パラメータの各々に対する当該パラメータ収集ダイアログに対する１つまたは複数のプロンプトのうち少なくとも１つを提供し、開発者が、開発者プラットフォームにより、ダイアログ・システム・エンティティまたは当該インテント・パラメータに対するデータ・タイプを指定できるようにし、開発者が、開発者プラットフォームにより、当該インテント・パラメータの各々に対する値タイプを指定できるようにすることを実装するように構成することができる。
【００１４】
さらに本開示に従う別の例では命令を格納した非一時的プロセッサ可読媒体が提供される。当該命令は、１つまたは複数のプロセッサにより実行されたとき、当該１つまたは複数のプロセッサに、自然会話ダイアログ・システムに対する方法を実装させることができる。当該方法は、当該会話入力に関連付けられたダイアログ・システム・インテントを少なくとも１つの予め決定されたインテントキーワードに基づいて識別するステップであって、当該ダイアログ・システム・インテントは要求されたインテント・パラメータを有する、ステップと、当該ダイアログ・システムの全ての要求されたインテント・パラメータに対するデータが利用可能であるかどうかを判定するステップと、当該判定に基づいて、当該ダイアログ・システム・インテントに関連付けられたパラメータ収集ダイアログを選択的に開始するステップであって、当該パラメータ収集ダイアログは、そうでなければ当該ダイアログ・システム・インテントに利用可能でない当該要求されたパラメータに対するデータを収集するように動作可能である、ステップと、当該ダイアログ・システム・インテントおよび１つまたは複数の要求されたパラメータに基づいて、アクション命令を生成するステップとを含むことができる。
【００１５】
このセクションは、当該クレームされた主題の主要な特徴または本質的な特徴を識別するものではなく、当該クレームされた主題の範囲を決定する際の支援として使用するものでもない。本明細書で説明した主題の例の１つまたは複数の詳細を添付図面および以下の説明で説明する。当該主題の他の潜在的な特徴、態様、および利点は詳細な説明、添付図面、および添付の特許請求の範囲から明らかになろう。
【００１６】
実施形態が限定ではなく例として添付図面において示されている。添付図面において同様な参照は同様な要素を示す。
【図面の簡単な説明】
【００１７】
【図１】本開示の幾つかの実施形態に従う、ダイアログ・システム・インタフェースのためのカスタム・ダイアログ・システム・エンジンを生成するためのシステムおよび方法を実装できる環境を示す図である。
【図２】例示的な実施形態に従う、プラットフォームを用いてカスタム・ダイアログ・システム・エンジンを生成し当該プラットフォームを動作するための方法を示す処理流れ図である。
【図３】本開示の例示的な実施形態に従うダイアログ・システム・エンジンの高レベルアーキテクチャを示す図である。
【図４】本開示の例示的な実施形態に従う、新たなダイアログ・システム・エンティティを生成するためのプラットフォーム・インタフェースのグラフィカルユーザ・インタフェース（ＧＵＩ）を示す図である。
【図５】本開示の例示的な実施形態に従う、新たなダイアログ・システム・インテントを生成するためのプラットフォーム・インタフェースのＧＵＩを示す図である。
【図６】本開示の例示的な実施形態に従う、ダイアログ・システムによる要求を処理するためのログを提供するプラットフォーム・インタフェースのＧＵＩを示す図である。
【図７】本開示の例示的な実施形態に従う、インテント・パラメータを収集するための方法を示す処理流れ図である。
【図８】本開示の例示的な実施形態に従う、パラメータ収集ダイアログによりインテント・パラメータを収集するためのダイアログ・エージェントを生成するためのプラットフォーム・インタフェースの例示的なＧＵＩを示す図である。
【図９】本開示の例示的な実施形態に従う、ダイアログ・エージェントのプロンプトを定義するためのプラットフォーム・インタフェースの例示的なＧＵＩを示す図である。
【図１０】本明細書で説明した方法を実装するのに適した例示的なコンピューティング・デバイスを示す高レベルブロック図である。
【発明を実施するための形態】
【００１８】
本開示の例示的な態様は一般に、インテリジェントなヒューマンマシン対話を維持するように構成された自然言語ダイアログ・システム（簡単のため「ダイアログ・システム」とも呼ばれる）に関する。当該ダイアログ・システムは、ユーザから会話入力を受信し、当該会話入力をテキスト入力に変換し、機械学習、統計的、ヒューリスティック、または他の適切なアルゴリズムを用いて当該テキスト入力を処理することができる。当該処理の結果は当該ユーザに対する応答メッセージまたはクライアント・デバイスまたはサーバにより実施されるアクションを含むことができる。例示的なアクションが、電子メールの送信、予約を行うこと、通知またはリマインダの設定、ホテルの予約、天気予報のチェック、トラフィックのナビゲート等を含んでもよい。
【００１９】
当該ヒューマンマシン対話は、ユーザ入力と当該ダイアログ・システムによりとるべきアクションとの間の枠組み、ルール、またはマッピング、特に、ダイアログ・コンテキストを含みうるダイアログ・システム・インテントに基づくことができる。ダイアログ・システム・インテントは、予め決定されたキーワードまたはフレーズをユーザ入力において検出することで、ヒューマンマシン対話の過程でダイアログ・システムにより自動的に識別されうる。例えば、ユーザが特定の都市のホテルを予約するようにダイアログ・システムに問い合わせるとき、インテントを識別することができる。別の例では、ユーザがテキスト・メッセージまたは電子メールを特定の受取人に送信するようにダイアログ・システムに問い合わせるとき、インテントを識別することができる。さらに別の例では、ユーザがレストランにピザを注文するようにダイアログ・システムに問い合わせるとき、インテントを識別することができる。
【００２０】
予め決定されたダイアログ・システム・インテントを処理することは広範囲のインテント・パラメータの収集を要求することができる。例えば、当該インテントがテキスト・メッセージを受信者に送信するアクションを要求するとき、このインテントを実行するのに十分な要求されたインテント・パラメータは、当該テキスト・メッセージのコンテンツおよび当該受信者の名前を含むことができる。ホテルを電子的に予約するために提供されるインテントの例に対して、当該要求されたパラメータが、宛先都市、部屋タイプ、到着日、出発日、および、場合によっては、ホテル評価、ホテル名前、ホテルサービス等のような他のパラメータを含んでもよい。複数のインテントを定義しダイアログ・コンテキストを介してそれらをリンクするのではなく、本明細書で開示された例はダイアログ・システムで使用するためのダイアログ・エージェントを提供し、その結果各ダイアログ・エージェントを単一のダイアログ・システム・インテントおよび当該ダイアログ・システム・インテントの１つまたは複数のインテント・パラメータに関連付けることができる。
【００２１】
特定のダイアログ・エージェントが起動されると、パラメータ収集ダイアログを、ユーザ会話入力におけるダイアログ・システム・インテントの検出の際に開始することができる。当該パラメータ収集ダイアログは、既にユーザにより提供されるかまたは他のソースから利用可能なインテント・パラメータを検出することができる。特定のインテント・パラメータが失われていると判定された場合、当該パラメータ収集ダイアログはプロンプト・メッセージをユーザに提供して、ユーザに追加の会話入力を提供するように促すことができる。当該プロンプト・メッセージを予め定義するか、または、必要に応じて生成することができ、失われた要求されたパラメータおよび幾つかのケースでは追加の任意のパラメータを提供するようにユーザを誘導するように選択することができる。当該ダイアログ・システムはインテント・パラメータをユーザの１つまたは複数の追加の会話入力から取り出すことができる。
【００２２】
幾つかの例では、幾つかのパラメータを事前格納されたデータから取得することができる。例えば、ユーザが「call a taxi service to give me a ride from where I am to home」と言った場合、ユーザの自宅住所をメモリから取得することができる。特定のインテントに対して要求された全てのパラメータのうち少なくとも最小数が収集または確認されたとき、パラメータ収集が完了し、当該ダイアログ・システムは当該インテントに基づいてアクション命令を生成することができる。当該アクション命令は、ユーザ会話入力から収集されたまたは他所から取得された幾つかの要求された任意のインテント・パラメータに基づくことができる。当該ダイアログ・システム、クライアント・デバイス、またはサーバはついで、アクション・コマンドを実行して、ダイアログ応答をユーザに提供するか、または特定のアクションを実施することができる。
【００２３】
例えば、ユーザが「Please book a hotel for me in Palo Alto」と発声すると、ダイアログ・システムは、ダイアログ・システム・インテントが「ホテル予約」であると識別し、対応するパラメータ収集ダイアログを開始することができる。まず、ダイアログ・システムは、要求されたパラメータの幾つかが既に提供されている（即ち、都市がパロアルトである）かまたは他のソースから利用可能であると判定することができる。ダイアログ・システムはさらに、到着日付および滞在時間のような「ホテル予約」インテントの他の要求されたパラメータが依然として失われていると判定することができる。ダイアログ・システムは、「When would you like to arrive?」および「How many nights would you be staying?」のようなプロンプトでさらなる会話入力を提供するようにユーザに促すことができる。ユーザが回答を提供すると、ダイアログ・システムはインテント・パラメータを入力から取り出し、全ての失われている要求されたインテント・パラメータが収集されるまで、プロンプトを提供し続けることができる。さらに、ダイアログ・システムは、例えば、「You want me to book a hotel in Palo Alto for you starting next Monday for two nights. Is that correct?」のようなサマリ出力を提供することで当該要求されたパラメータが収集されることを確認するのをユーザに要求することができる。ユーザが肯定的に答えた場合、ダイアログ・システムは１つまたは複数の収集されたパラメータを含む電子ホテル予約注文を生成し、それを適切なウェブ・サービスに送信することができる。そうでなければ、ダイアログ・システムは、変更または追加する必要があるものをユーザに問い合わせることができる。
【００２４】
本明細書で開示された例はまた、ソフトウェア開発者が、上述のようにインテント・パラメータを収集するためのダイアログ・エージェントを含む、カスタム・ダイアログ・システム・エンジンおよびダイアログ・エージェントを生成できるようにする開発者プラットフォームに関する。一般に、ダイアログ・システム・エンジンは、カスタム・ダイアログ・システム・インタフェースと協調するバックエンド・サービスを含む。ダイアログ・システム・インタフェースを、少なくとも様々なソフトウェア・アプリケーション、モバイル・アプリケーション、ミドルウェアアプリケーション、ファームウェアアプリケーション、ウェブサイト等の一部として実装することができる。換言すれば、ダイアログ・システム・インタフェースは、少なくともユーザ入力を取得しダイアログ・システム出力をユーザに配送するように構成されたコンピュータヒューマンインタフェースを提供することができる。
【００２５】
ダイアログ・システム・エンジンは、ユーザ入力を処理し対応する応答（またはコマンド）を生成することで、ダイアログ・システム・インタフェースをサポートすることができる。したがって、ダイアログ・システム・エンジンおよびダイアログ・システム・インタフェースは、互いと対話するとき、ダイアログ・システムを形成することができる。特定の例において、ユーザ・デバイスで実行されるかまたはそこからアクセスされるダイアログ・システム・インタフェースを「フロントエンド」ユーザ・インタフェースと称してもよく、ダイアログ・システム・エンジンは、このダイアログ・システム・インタフェースの当該動作をサポートし、「バックエンド」サービスと称してもよい。幾つかの例では、当該インタフェースおよびエンジンが、クライアント−サーバモデルを含んでもよく、これら２つはネットワーク接続を介して通信する。他の例において、ダイアログ・システム・エンジンおよびダイアログ・システム・インタフェースは、サーバへのネットワーク接続を必要とせずに単一のデバイス上で動作してもよい。
【００２６】
本開示の例に従って、開発者プラットフォームは、ソフトウェア開発者が、フロントエンドダイアログ・システム・インタフェースをサポートしうるカスタム・ダイアログ・システム・エンジンを生成することを可能としうる。例えば、ソフトウェア開発者がダイアログ・システム機能をモバイル・アプリケーションに追加の機能として統合したい場合、開発者は当該プラットフォームを使用して、カスタム・ダイアログ・システム・エンジンを生成し展開して、当該カスタム・ダイアログ・システム・エンジンを当該モバイル・アプリケーションとリンクすることができる。当該モバイル・アプリケーションはダイアログ・システム・インタフェースを含むだけでもよい。この例において、ユーザは、当該モバイル・アプリケーションと対話することでダイアログ・システム・インタフェースを起動することができる。ユーザは、音声入力またはテキスト入力の形でダイアログ・システム・インタフェースに問合せを行うことができる。ユーザ問合せを受信すると、ダイアログ・システム・インタフェースは、追加の事前処理によりまたはそれなしに、以前に開発者プラットフォームを用いて生成された問合せを当該リンクされたカスタム・ダイアログ・システム・エンジンに送信することができる。当該カスタム・ダイアログ・システム・エンジンは、当該受信されたユーザ問合せを処理し解釈し、予め決定されたルールおよび設定に基づいて当該問合せに対する応答を生成することができる。当該応答はついで、ユーザへのさらに視覚的またはオーディオ提供のためにダイアログ・システム・インタフェースに提供することができる。あるいは、当該応答がアクション命令（コマンド）を含む場合、当該アクション命令を実行するか、またはサーバ、ウェブ・サービス、またはクライアント・デバイスに送信して実行することができる。
【００２７】
ダイアログ・システム・インタフェースは、パーソナル・コンピュータまたはスマートフォンのようなユーザ・デバイスにより実行可能な広範囲のソフトウェア・アプリケーションにより実行されかつ／またはそこに統合され、またはダイアログ・システムがウェブサイトまたはウェブ・サービスの一部であるようにサーバまたはコンピューティングクラウドリソースにリモートに配置されることができる。述べたように、ダイアログ・システム・エンジンを、それらの機能がインターネット、モバイルデータネットワーク、または任意の他の通信ネットワーク上でダイアログ・システム・インタフェースにアクセス可能でありうるように、当該インタフェースと同一のユーザ・デバイス、（Ｂｌｕｅｔｏｏｔｈ（登録商標）接続を介して通信するモバイル・フォンおよびスマートウォッチのような）当該インタフェースが実装されるデバイスと通信する同伴者デバイス、またはサーバで実装することができる。
【００２８】
図１は、本開示の例を実施するのに適切でありうる例示的なシステム環境１００の高レベルブロック図を示す。特に、図１は、カスタム・ダイアログ・システム・エンジンを生成し維持するためのプラットフォーム１１０を示す。示すように、プラットフォーム１１０は、カスタム・ダイアログ・システム・エンジン１２０を維持し実行するためのカスタム・ダイアログ・システム・エンジンおよびバックエンド・サービス１１４を生成するためのプラットフォーム・インタフェース１１２を含む。本開示の幾つかの態様において、プラットフォーム１１０は開発者プラットフォームを含む。
【００２９】
プラットフォーム・インタフェース１１２が、ウェブ・ページに埋め込まれネットワークを介して開発者によりアクセス可能なグラフィカルユーザ・インタフェース（ＧＵＩ）を含んでもよい。本開示の幾つかの他の態様において、プラットフォーム・インタフェース１１２を、コンピュータまたはスマートフォンのような電子デバイスで実行されているかまたはそこからアクセス可能な例えば、ミドルウェア、またはファームウェアのようなダウンロード可能なソフトウェア・アプリケーションまたは任意の他のソフトウェアを含む、ソフトウェア・アプリケーションとして実装することができる。図１に示す例において、プラットフォーム・インタフェース１１２は（以下でより詳細に説明される）ウェブアクセス可能ＧＵＩとして実行される。簡単のため、本開示は、プラットフォーム・インタフェース１１２がインターネットを介してアクセス可能なサーバベースのソリューションである態様のみを提供する。しかし、プラットフォーム・インタフェース１１２はかかる実装に限定されず、多数のＧＵＩツールを通じた１つまたは複数のカスタム・ダイアログ・システム・エンジン１２０またはダイアログ・エージェントの生成を可能としうることは理解されるべきである。
【００３０】
依然として図１を参照すると、バックエンド・サービス１１４は、例えば、プラットフォーム・インタフェース１１２によりまたはその支援により生成されるカスタム・ダイアログ・システム・エンジン１２０を維持し実行する役割を果たしうる。バックエンド・サービス１１４は、それらのダイアログ・システム・インタフェースがプラットフォーム１１０のバックエンド・サービス１１４維持されるカスタム・ダイアログ・システム・エンジン１２０と対話できるようにすることで、機能をカスタム・ダイアログ・システムに提供するウェブ・サービスとして動作してもよい。
【００３１】
前述のように、ダイアログ・システム・インタフェース１３０をクライアント・サイド１４０に提供することができる。ダイアログ・システム・インタフェース１３０は、ユーザが、対応するダイアログ・システム・エンジン１２０による処理のためにバックエンド・サービス１１４に配信される問合せを行い、ダイアログ・システム・エンジン１２０により生成された当該問合せへの応答を受信できるようにするＧＵＩであってもよい。ダイアログ・システム・インタフェース１３０をスタンドアロンソフトウェア・アプリケーションとして実装してもよく、またはそれを別のソフトウェア・アプリケーション、ウェブ・サービス、ウェブサイト等に統合することができる。クライアントサーバモデルは説明の目的のためにのみ示されることは理解されるべきである。本明細書で開示されたシステムはクライアント−サーバシステムである必要はなく、および特定の例においてダイアログ・システム・インタフェース１３０およびダイアログ・システム・エンジン１２０は同一の（例えば、ユーザ）デバイス上にあることができる。
【００３２】
クライアント・サイド１４０が、ユーザ・デバイス、クライアント・デバイス、端末、ポータル、ユーザ機器、コンピューティング・デバイス（例えば、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナル・コンピュータ、およびスマートフォン）、パーソナルデジタルアシスタント、ゲーム・コンソール、リモートコントロール、マルチメディアシステム、スマートテレビデバイス、セットトップボックス、インフォテイメントシステム、車内コンピューティング・デバイス、情報キオスク、ロボット等を含んでもよい。これらの例において、１つまたは複数のダイアログ・システム・インタフェース１３０をソフトウェア、ミドルウェア、またはファームウェアとして実装することができる。
【００３３】
さらなる例では、クライアント・サイド１４０は、サーバ、ウェブホスティングサービス、ウェブ・サービス、ウェブサイト、クラウドサービス等のようなネットワークまたはオンラインソリューションを指してもよい。例えば、ダイアログ・システム・インタフェース１３０は、エンド・ユーザが問合せを行いそれに対する応答を受信できるようにする、１つまたは複数のウェブ・ページ上で提供されるウィジェットまたはＧＵＩを含むことができる。このオプションは、開発者が、例えば、ダイアログ・システムをウェブサイトに統合して強化されたカスタマサービスを提供したい場合に適切でありうる。
【００３４】
図１から分かるように、ダイアログ・システム・インタフェース１３０および対応するカスタム・ダイアログ・システム・エンジン１２０の間の対話が通信ネットワーク１５０を介して行われている。通信ネットワーク１５０が、インターネット、イントラネット、モバイルデータネットワーク、ローカル・エリアネットワーク、広域ネットワーク、ＩＥＥＥ８０２．１１ベースネットワーク、パーソナル・エリアネットワーク（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｚｉｇｂｅｅ（登録商標））、赤外線等の１つまたは複数を含んでもよい。
【００３５】
図１はまた、様々なサードパーティ・ウェブ・リソース／サービス１６０を示す。様々なサードパーティ・ウェブ・リソース／サービス１６０は、ダイアログ・システム応答の一部としてカスタム・ダイアログ・システム・エンジン１２０またはダイアログ・システム・インタフェース１３０に情報を提供し、または特定のアクションまたは動作を実施することができる。例えば、ウェブ・リソース／サービス１６０は、電子メールサービス、天気サービス、ナビゲーションサービス、ホテル予約サービス、タクシー予約サービス、オンラインショッピングサービス、電子商取引サービス、予約サービス、リマインダサービス等を提供してもよい。したがって、ユーザが「What is the weather like today?」と言った場合、対応する情報を自動的に、ダイアログ・システム・エンジン１２０により１つまたは複数のサードパーティ・ウェブ・リソース／サービス１６０から取得し、ユーザに配送されたダイアログ・システム応答に統合することができる。ユーザが「Send an email to John to invite him to my party tonight」と言った場合、ダイアログ・システム・エンジン１２０は、サードパーティ・ウェブ・リソース／サービス１６０に、電子メールを生成させ当該電子メールを受取人に関連付けられた電子メール・アドレスに送信させることができる。
【００３６】
次に、カスタム・ダイアログ・システム・エンジン１２０を生成し動作させる例示的なプロセスを、図１および他の図面を参照して説明する。特に、プラットフォーム・インタフェース１１２は、開発者がカスタム・ダイアログ・システム・エンジンに対する基礎の役割を果たす１つまたは複数の「ダイアログ・システム要素」を生成しカスタマイズできるようにする、幾つかのツールを有する１つまたは複数のＧＵＩを提供することができる。
【００３７】
様々な例によれば、ダイアログ・システム要素は少なくとも「エンティティ」および「インテント」を含む。各エンティティが、実質的に同一のまたは同様な特性を有する幾つかのオブジェクトを含んでもよい。換言すれば、エンティティはクラスのオブジェクトを定義するキーワードのリストを含むことができる。１例において、エンティティが、キーワードおよび当該キーワードに対応する１組のシノニムを含んでもよい。別の例では、エンティティが、キーワードおよび当該キーワードに対応する１組の定義を含んでもよい。さらに別の例では、エンティティが、リスト（例えば、都市のリスト、名前のリスト、タイトルのリスト、ブランドのリスト、および通り名のリスト）を含んでもよい。幾つかの例では、当該エンティティを特定のダイアログ・エージェントで使用でき、エージェントの機能の結果を返すと期待されるパラメータ値に依存しうる。
【００３８】
本開示の幾つかの例では、開発者は、当該ダイアログ・エージェントで述べられた全ての概念に対するエンティティを生成する必要はなく、アクション可能データに対して要求されたもののみを生成すればよい。例えば、３つのタイプのエンティティがありうる。第１のタイプはシステム・エンティティ、例えば、共通日付基準、時間基準、数値基準、および都市基準を含むことができる。第２のタイプは、開発者が、「veg」および「veggie」のシノニムを有する「vegetarian」の参照値を有する入力を生成することで食料タイプのエンティティを生成できるように、開発者エンティティ、例えば、参照値にマップされる任意の一意なシノニムのグループを含むことができる。第３のタイプは、ユーザ・エンティティ、例えば、ユーザ嗜好に固有なプレイリスト・エンティティのような特定のエンド・ユーザに対して定義されたエンティティを含むことができる。さらに、これらのエンティティの各々は、（参照値を有する）マッピング、（参照値を有さない）列挙タイプ、または（エイリアスを有する他のエンティティを含みオブジェクト・タイプ値を返す）複合型であることができる。
【００３９】
幾つかの例では、エンティティに関連付けられたオブジェクトのリストを自動的に拡張することができる。例えば、機械学習アルゴリズムを、当該エンティティに関連付けられた１つまたは複数の新たなオブジェクトを提案するために使用することができる。機械学習されるアルゴリズムを、大きなテキストおよび／または語彙を用いてトレーニングすることができる。限定ではなく例として、カスタム・ダイアログ・システム・エンジン１２０の開発者は、エンティティ@cityを、例えば、ニューヨークおよびロサンゼルスのような値で定義することができる。当該カスタム・ダイアログ・システム・エンジンのユーザが単語「ワシントンＤＣ」を発するかまたは入力した場合、機械学習アルゴリズムは「ワシントンＤＣ」がエンティティ@city内に列挙されたオブジェクトに関すると判定できるので、エンティティ@cityをニューヨーク、ロサンゼルス、およびワシントンＤＣに自動的に拡張することができる。幾つかの例では、提案されたオブジェクトが当該１つまたは複数のエンティティに関することを確認するためにユーザに問い合わせることができる。
【００４０】
さらなる例において、エンティティは他のエンティティのリストを含むことができる。例えば、開発者はエンティティ@carをエンティティのリスト（@make, （c）model）として定義することができる。（c）makeおよび（c）modelの値は、（c）makeおよび（c）modelを関連付けうるオブジェクトの何れかに設定される。例えば、エンティティ（c）carは、｛make:"Honda"; model:"Accord"}, {make:"Ford"; model:"Fiesta"｝等のような複合型オブジェクトを含むことができる。
【００４１】
さらに、各インテントは、ユーザ要求およびダイアログ・システム応答の間の特定の関係を記述するダイアログ・システム対話枠組みまたはルールを含むことができる。換言すれば、インテントは、ユーザが言ったことおよびソフトウェア・アプリケーションがとるべきアクションの間のマッピングを表すことができる。１例において、インテントを、エンティティに対する１つまたは複数の参照を明示的に含むパターンとして決定することができる。例示的なパターンは「what is the weather in （c）city: city」を含むことができる。「（c）city: city」は、エンティティ@cityに対する参照および当該エンティティ@city内部のパラメータ都市である。特定の追加の例において、インテントを決定するために、「エンティティ」に対する明示的な参照を含むパターンを提供する代わりに、開発者は、インテントおよびエンティティを示す例示的な要求（フレーズ）を提供するだけでよい。かかる例において、プラットフォーム１１０は、機械学習技術を用いて、どの「エンティティ」および「インテント」が例示的な要求で示唆されているかを自動的に判定する。
【００４２】
例示的な入力に基づいて、プラットフォーム１１０は対応するアクションを生成してもよい。各アクションは名前（エンティティ）および１つまたは複数のパラメータを含むことができる。例えば、要求は、「Weather forecast for Los Angeles」と入力されてもよい。機械学習技術は名前「weather」を有するアクションと、データ・タイプ@cityのパラメータ名：都市を決定することができる。
【００４３】
したがって、開発者はプラットフォーム・インタフェース１１２を使用して、複数のエンティティおよび複数のインテントを生成することができ、両方とも特定のアプリケーションまたは業界に固有である。これらの複数のエンティティおよびインテントはダイアログ・システム・エンジン１２０を形成し、ダイアログ・システム・エンジン１２０が特定のアクションを実施するかまたは広範囲のエンド・ユーザ入力に応答して特定の出力を生成できるようにしうる。特定の例において、インテントは、（ユーザの読取専用のために）インテントの名前、パターンおよび／または例示的な要求のリスト、アクションの名前、当該アクションに関連付けられたパラメータ、および当該アクションに関連付けられた履行を含む、一般的な構造を含むことができる。当該履行が、テキスト（スクリーンでハイライトされたテキスト）、またはウェブ・サービスの呼出しを含んでもよく、データベースへの要求を行ってもよい等である。幾つかの例では、プラットフォーム１１２は、アクションを開発者に提供でき、開発者は当該アクションに関連付けられたカスタム履行を直接カスタム・ダイアログ・システム・エンジン１２０に統合できるようにする。特定の例において、開発者は、当該アクション（アクションおよびパラメータの名前）を受信し、カスタム履行をクライアント・サイド１４０に統合してもよい。例えば、カスタム履行が、情報（例えば、予報、トラフィック情報、およびナビゲーション）を取り出すこと、ダイアログ・システム・インタフェースが実行しているデバイスの幾つかの動作を実施すること等の、ウェブサイトまたはデータベースに対する要求を含んでもよい。
【００４４】
幾つかの例では、ダイアログ・システム要素が、１つまたは複数のコンテキストを含んでもよい。当該コンテキストは、特定のエンド・ユーザに対するセッションの間のインテントに対するラベル、キー、または手掛りを含む１つまたは複数のパラメータを含むことができる。当該コンテキストが、当該ラベルの事前条件およびブール表現を含んでもよい。当該インテントを入力コンテキストに基づいてトリガすることができる。例えば、特定の事前条件が満たされるかまたは事前条件のブール表現が真であるときに、インテントをトリガすることができる。出力コンテキストは、インテントがユーザの要求に基づいて実行されるときエンド・ユーザ・セッションに設定される。様々な例において、出力コンテキストは、幾つかのユーザ要求を含むユーザ・セッション内の特定のライフスパンを割り当てることができる。幾つかの例では、出力コンテキストのライフスパンを、ユーザのセッションの間で行われた幾つかの要求として測定することができる。ユーザ・セッション内において、これは次のユーザ要求に応答してインテントの実行の前に存在する現在のコンテキスト状態、および当該インテントの実行後に設定される実行後コンテキスト状態がある。当該実行後コンテキスト状態は、ユーザ要求および当該インテントの実行の結果に基づく１つまたは複数の新たに追加されたコンテキストを含むことができる。古いコンテキストの幾つかを、当該インテントの実行の結果に基づいて、またはその有効期限切れのため、実行後状態から削除することができる。
【００４５】
コンテキストは、ユーザの要求の現在のコンテキストを表す文字列であることができる。これはフレーズを区別するのに有用である。当該フレーズは、ユーザの嗜好または地理的位置または会話のトピックに応じて曖昧であるかもしれずまたは異なる意味を有するかもしれない。例えば、ユーザが音楽プレイヤ・アプリケーションを聴いており、彼の関心を惹くバンドを見つけた場合、彼は「I want to hear more of this」と言うかもしれない。開発者は当該要求を有するコンテキストに当該バンドの名前を含めることができ、その結果、当該ダイアログ・エージェントはそれをより効果的に処理することができる。別の例では、開発者はスマート・ホーム・デバイスの製造者であり、家庭機器を遠隔制御するモバイル・アプリケーションを有する。ユーザは「Turn on the front door light」と言い、次いで「Turn it off」と言ってもよく、モバイル・アプリケーションは、２番目のフレーズが、それが同一のコンテキスト内にあるので、依然としてライトのことを指していると理解するであろう。すると、後にユーザ、「Turn on the coffee machine」と言い、その後に「Turn it off」と言った場合、新たなコンテキストのため、以前とは異なるアクションの結果となるであろう。コンテキストを、ユーザ・セッション（例えば、ＡＰＩ呼出しで渡されるセッション識別子）に結び付けることができる。ユーザ表現がインテントにマッチする場合、当該インテントは、将来この表現により共有されるべき出力コンテキストをセットすることができる。
【００４６】
さらなる例において、１つまたは複数の属性またはパラメータを各コンテキストに割り当てることができる。当該属性は、インテントの実行の間に識別され、当該インテントに関連付けられたアクションで使用されることができる。当該コンテキストから取り出された値は当該アクションに対するパラメータを形成することができる。当該属性はさらに、当該インテントの実行の後に設定された出力コンテキストに置くことができる。
【００４７】
図２は、本明細書で開示された１態様に従う、プラットフォーム１１０を用いてカスタム・ダイアログ・システム・エンジンを生成し、プラットフォーム１１０を動作させるための方法２００を示す処理流れ図である。方法２００を、ハードウェア（例えば、意思決定論理、専用論理、プログラム可能論理、およびマイクロコード）、（汎用目的コンピュータシステムまたは専用マシンで実行されているソフトウェアのような）ソフトウェア、またはその両方の組合せを含みうる処理論理により実施してもよい。１例において、当該処理論理は、図１０に示すプラットフォーム１１０またはコンピューティング・デバイスの１つまたは複数のコンポーネントを指す。方法２００のステップを図２で説明し図示したのと異なる順序で実装することができる。さらに、方法２００は本明細書で図示していない追加のステップを有してもよいが、これは本開示から当業者にとって明らかでありうる。方法２００はまた、以下で図２で概観し図示したものより少ないステップを有してもよい。
【００４８】
方法２００は、動作２０２で開発者にプラットフォーム１１０に登録させ、少なくとも１つのプロセッサおよびプロセッサ実行可能コードを格納するメモリを備えた第１のサーバにより開発者プロフィールを生成することで開始する。これらの目的のため、開発者はプラットフォーム・インタフェース１１２と対話する。開発者プロフィールは、クライアント・サイド１４０に展開された開発者のカスタム・ダイアログ・システム・エンジン１２０および１つまたは複数のダイアログ・システム・インタフェース１３０を仮想的にリンクし（関連付け）てもよい。当該リンクが、アプリケーション・プログラミング・インタフェース（ＡＰＩ）コード、対話ルール、宛先アドレス、およびそれより多くを規定するステップを含んでもよい。特定の例において、開発者プロフィールは複数の開発者によりアクセスされることができる。動作２０２で、当該方法により、開発者は１つまたは複数のダイアログ・システムを生成することが可能であってもよい。各ダイアログ・システムをアクセス識別子（ＩＤ）に関連付けることができる。当該アクセスＩＤを、ダイアログ・システムに認証を介してクライアント・サイド１４０からアクセスするために使用することができる。様々な例において、当該アクセスＩＤが、トークン、デジタルキー等を含んでもよい。
【００４９】
動作２０４で、プラットフォーム１１０は、開発者から１つまたは複数のダイアログ・システム・エンティティを受信し、それをメモリまたはデータベースに格納することができる。幾つかの例では、当該エンティティは受信されないが、プラットフォーム・インタフェース１１２のウェブツールを用いて開発者により生成される。ダイアログ・システム・エンティティが、キーワードおよび当該キーワードに対する少なくとも１つのシノニム、キーワードおよび当該キーワードの少なくとも１つの定義、１つのクラスのオブジェクトを定義するキーワードのリスト等を含んでもよい。ダイアログ・システム・エンティティは、１つまたは複数のパラメータに関連付けられるかまたはそれを含むことができる。
【００５０】
動作２０６で、プラットフォーム１１０が、開発者から１つまたは複数のダイアログ・システム・インテントを受信し、それを当該メモリまたはデータベースに格納する。幾つかの例では、ダイアログ・システム・インテントは受信されないが、プラットフォーム・インタフェース１１２のツールを用いて開発者により生成される。上述のように、当該インテントはダイアログ・システム要素（ダイアログ・システム・エンジンが特定のニーズに対してカスタマイズされた応答を生成できるようにするカスタム論理）を形成する。ダイアログ・システム・インテントが、ダイアログ・システム対話枠組み、ユーザ要求およびダイアログ・システム応答の間の関係を定義するルール、特定のアクションおよび当該１つまたは複数のダイアログ・システム・エンティティの間の関係のルール等を含んでもよい。幾つかの例では、開発者は、１つまたは複数のダイアログ・システム・インテントで使用されるべき１つまたは複数のダイアログ・システム・エンティティを明示的に定義することができる。さらにまたはあるいは、開発者は例示的な要求（複数可）（フレーズ）を提供することができる。当該例示的な要求に基づいて、プラットフォーム１１０は１つまたは複数のダイアログ・システム・エンティティを提案してもよい。当該エンティティを提案するために、プラットフォーム１１０はまず、動作２０４で開発者により提供されるエンティティのリスト内で当該適切なエンティティを検索してもよい。幾つかの例では、プラットフォーム１１０は、機械学習技術を介して新たなダイアログ・システム・エンティティを提案してもよい。開発者が、提案された新たなダイアログ・システム・エンティティのパラメータを承認し、修正し、または変更することができてもよい。開発者はまた、当該インテントの１つまたは複数のパラメータを提供することができる。
【００５１】
エンティティの定義が静的でないことに留意すべきである。さらなる動作の間に、プラットフォーム１１０は開発者により定義されたエンティティを動的に再定義してもよい。当該エンティティを、ユーザプロフィール、嗜好、ユーザ要求等に基づいて改良（補強）することができる。当該改良されたエンティティは、さらなる処理においてプラットフォーム１１０により使用される。
【００５２】
動作２０８で、プラットフォーム１１０は、１つまたは複数のダイアログ・システム・インテントを１つまたは複数のダイアログ・システムアクションに関連付けて、１つまたは複数のカスタム・ダイアログ・システム・エンジン１２０またはダイアログ・エージェントを生成することができる。カスタム・ダイアログ・システム・エンジン１２０は、開発者の１つまたは複数のダイアログ・システム・インタフェース１３０に関連付けられる。当該アクションの各々は、ダイアログ・システム・エンティティに関連付けられた名前および１組のエイリアスにより定義される。
【００５３】
動作２０２乃至２０８は、カスタム・ダイアログ・システム・エンジン１２０（ダイアログ・エージェント）に対するセットアップ・プロセスを示し、動作２１０乃至２１８はカスタム・ダイアログ・システム・エンジン１２０を動作させるプロセスを示す。特に、カスタム・ダイアログ・システム・エンジン１２０の全てのダイアログ・システム要素が生成されると、それらはバックエンド・サービスとして維持され、関連付けられたダイアログ・システム・インタフェース１３０の何れかがダイアログ・システムの完全な機能を予め決定された設定に従ってユーザに提供できるようにする。
【００５４】
特に、動作２１０で、プラットフォーム１１０は識別されていないダイアログ・システム・インタフェース１３０からユーザ要求を受信することができる。ユーザ要求は音声（会話）入力またはテキスト入力であることができる。幾つかの例では、ダイアログ・システム・インタフェース１３０は、例えば、話された単語を認識し音声入力をテキスト入力を変換することで、ユーザ入力を事前に処理することができる。他の例において、事前処理はオーディオ拡張、雑音キャンセル、暗号化／復号化等を含むことができる。他の例において、しかし、事前処理はダイアログ・システム・インタフェース１３０により実施されない。
【００５５】
動作２１２で、プラットフォーム１１０はユーザ要求を処理し、ダイアログ・システム・インタフェース１３０を識別する。当該識別プロセスは、ダイアログ・システム・インタフェース１３０の識別子をユーザ要求から取り出すことに基づくことができる。例えば、ユーザ要求は、ユーザ要求がダイアログ・システム・インタフェース１３０からプラットフォーム１１０に送信された時点の識別子を伴うことができる。
【００５６】
動作２１４で、動作２１２での識別の結果に基づいて、プラットフォーム１１０は、当該識別されたダイアログ・システム・インタフェース１３０に関連付けられたカスタム・ダイアログ・システム・エンジン１２０を起動する。同一の動作２１４で、プラットフォーム１１０はまた、１つまたは複数のダイアログ・システム要素（即ち、１つまたは複数のエンティティおよび１つまたは複数のインテント）を動作２１２での識別の結果に基づいて抽出または識別してもよい。動作２１４で、プラットフォーム１１０は、ユーザ要求および特定の要求セッションに関連付けられたコンテキスト（１つまたは複数のラベル、キー、手掛り、およびその論理的表現）を識別してもよい。
【００５７】
動作２１６で、カスタム・ダイアログ・システム・エンジン１２０は、動作２１４で取り出されたダイアログ・システム要素（即ち、１つまたは複数のエンティティおよび１つまたは複数のインテント）を用いてユーザ要求を処理する。当該インテントをコンテキストに基づいてトリガすることができる。当該コンテキストを、事前に定義し、ユーザ要求に基づいて決定し、さらに１つまたは複数のインテントがトリガされた後に変更することができる。当該コンテキストは、特定のユーザおよびユーザの特定のセッションに対して固有であることができる。ダイアログ・システム処理の幾つかの例がさらに図３を参照して説明される。
【００５８】
動作２１８で、カスタム・ダイアログ・システム・エンジン１２０は、応答を生成し、それをカスタム・ダイアログ・システム・エンジン１２０に関連付けられたダイアログ・システム・インタフェース１３０に送信することができる。当該応答が、特定のデータ、例えば、テキスト・メッセージ、および／または１つまたは複数のアクションを含んでもよい。各アクションは、１つまたは複数のインテントおよび１つまたは複数のエンティティの使用で識別されたアクションの名前および１組のパラメータを含むことができる。ダイアログ・システム・インタフェース１３０はついで、予め決定された設定に応じて当該テキスト・メッセージをエンド・ユーザに表示または再生してもよい。ダイアログ・システム・インタフェース１３０はまた、アクション名および１組のパラメータを用いて当該１つまたは複数のアクションに基づいておよびアクションに関連付けられたカスタム履行に従って、１つまたは複数の動作を実施することができる。幾つかの例では、カスタム・ダイアログ・システム・エンジン１２０はカスタム履行を処理して、結果をダイアログ・システム・インタフェース１３０に送信することができる。カスタム・ダイアログ・システム・エンジン１２０の応答はまた、クライアント・デバイス、ウェブ・リソース／サービス１６０、プラットフォーム１１０、またはリモートサーバにより実行されうるアクション命令を指すことができる。
【００５９】
図３は、１例に従うダイアログ・システム・エンジン１２０の高レベルアーキテクチャ３００を示す。ダイアログ・システム・エンジン１２０または関連付けられたアーキテクチャの全てのモジュールはハードウェアコンポーネント、ソフトウェアコンポーネント、またはそれらの組合せを含むことに留意すべきである。ダイアログ・システム・エンジン１２０はユーザ・デバイスまたはサーバに埋め込むかまたはインストールしてもよく、または、クラウドコンピューティングモジュールおよび／または分散コンピューティングモジュールとして表してもよい。
【００６０】
図３に示された例において、ダイアログ・システム・エンジン１２０は、会話ベースのユーザ入力を受信しパラメータ・ベクトルのシーケンスに処理するように構成された自動会話認識器（ＡＳＲ）３１０を含む。ＡＳＲ３１０はさらに、パラメータ・ベクトルの当該シーケンスを認識された入力（即ち、１つまたは複数の単語、フレーズ、または文章を有するテキスト入力）に変換する。ＡＳＲ３１０は、パターンベースの会話認識器、フリーディクテーション認識器、アドレス帳ベース認識器、動的に生成された認識器等のような１つまたは複数の会話認識器を含む。
【００６１】
さらに、ダイアログ・システム・エンジン１２０は、話された言語入力を理解するための自然言語処理（ＮＬＰ）モジュール３２０を含む。特に、ＮＬＰモジュール３２０は当該認識された入力を分解し解析して発声を生成してもよく、当該発声は、例えば、形態学的分析、会話部分タギング、シャロー解析、ニューラルネットワーク、機械学習分類器、パターン化された分類器等を利用して分析される。ＮＬＰモジュール３２０はついで、認識された入力またはその部分を意味表現にマップしてもよい。
【００６２】
ダイアログ・システム・エンジン１２０はさらにダイアログ・マネージャ３３０を含む。ダイアログ・マネージャ３３０は、全てのコンポーネント、コントロールダイアログフローのアクティビティと協調し、外部アプリケーション、デバイス、サービス、またはリソースと通信する。ダイアログ・マネージャ３３０が多数の役割を演じてもよく、これらは講話分析、知識データベースクエリ、および講話コンテキストに基づくシステムアクション予測を含む。幾つかの例では、ダイアログ・マネージャ３３０は、特定のタスク・ドメインに関する知識を有しうる１つまたは複数のタスクマネージャ（図示せず）にコンタクトしてもよい。幾つかの例では、ダイアログ・マネージャ３３０は様々なコンピューティング、論理、または記憶リソース３４０と通信してもよい。これらが、例えば、コンテンツ記憶、ルールデータベース、推奨データベース、プッシュ通知データベース、電子アドレス帳、電子メールまたはテキストエージェント、ダイアログ履歴データベース、離散知識データベース、地図データベース、関心点データベース、地理的位置決定器、クロック、無線ネットワーク検出器、検索エンジン、ソーシャルネットワーキングウェブサイト、ブログウェブサイト、ニューズ・フィードサービス、およびそれより多くを含んでもよい。幾つかの例では、計算または記憶リソース３４０は、上述の１つまたは複数のウェブ・リソース／サービス１６０を含む。
【００６３】
動作の間に（例えば、ダイアログセッション内で）、ダイアログ・マネージャ３３０は、入力および出力コンテキストに従ってダイアログフローを制御してもよい。当該入力コンテキストはインテント実行に対する事前条件の幾つかを表す。特定のインテントは、特定の入力コンテキスト（複数可）がユーザ要求でまたは以前のインテントの実行の結果として提示される場合にのみトリガされる。幾つかのインテントを同一のコンテキストに基づいてトリガできる場合、どのインテントを実行すべきかに関する判定は、当該コンテキストに関するインテントの重み、コンテキストの年齢、および嗜好で指定された他のパラメータに基づくことができる。より新しいコンテキストはより高い優先度を有することができる。出力コンテキストは、当該インテントのマッチと実行の際に設定することができる。
【００６４】
様々な例において、ダイアログ・マネージャ３３０はユーザ要求をダイアログ・システムに渡すことができる。ダイアログ・システムは、図１および図２で説明したように開発者により設計されたカスタム・ダイアログ・システムを含むことができる。同時に、幾つかの例において、ユーザ要求をタスク・ドメインに並列に送信することができる。当該タスク・ドメインは、当該要求を処理し回答を提供しうる事前に構築されたダイアログ・システムである。幾つかの例では、当該カスタム・ダイアログ・システムが回答をユーザ要求に提供するのに失敗した場合、ダイアログ・マネージャ３３０は当該タスク・ドメインから受信された回答で進む。
【００６５】
ダイアログ・マネージャ３３０は、複数の離散アプローチを使用して、認識された入力に応答して出力を生成してもよい。幾つかのアプローチは統計的分析、機械学習アルゴリズム（例えば、ニューラルネットワーク）、ヒューリスティック分析等の使用を含む。ダイアログ・マネージャ３３０はダイアログ・システム・エンジン１２０の中央コンポーネントのうち１つである。ダイアログ・マネージャ３３０の主な役割は、観察された証拠および推論されたダイアログ状態に基づいて正確なシステムアクションをＮＬＰ（例えば、ダイアログ動作、ユーザゴール、および講話履歴）の結果から選択する。さらに、ダイアログ・マネージャ３３０は、ユーザ入力が雑音または期待されない入力に起因するＡＳＲおよびＮＬＰエラーを有するとき、エラーを処理することができる。
【００６６】
ダイアログ・システム・エンジン１２０はさらに、ダイアログ・マネージャ３３０により選択されたアクションをユーザに提供するのに適した形態でまたはコンピュータ実装可能またはプロセッサ実装可能命令（例えば、ＡＰＩコード）の形態で出力に変換するための出力レンダラ３５０を含んでもよい。例えば、出力レンダラ３５０はテキスト会話エンジンを使用してもよく、または、事前に記録されたオーディオデータベースにコンタクトしてダイアログ・マネージャ３３０の出力に対応するオーディオメッセージを生成してもよい。特定の例において、出力レンダラ３５０は、ダイアログ・マネージャ３３０の出力をユーザ・デバイスのディスプレイスクリーンにさらに表示するためのテキスト・メッセージ、画像、またはビデオメッセージとして提示するかまたは提示させてもよい。
【００６７】
他の例において、出力レンダ３５０は、選択されたアクション（アクションおよび１組のパラメータの名前）をクライアント・サイド１４０上のダイアログ・システム・インタフェース１３０に提供する。開発者は、当該選択されたアクションを処理し、ウェブ・サービスへの要求の送信、データベース動作、テキスト・メッセージの表示、オーディオまたはビデオのユーザ・デバイスでの再生、テキストの生成、テキスト会話システムを通じたその処理等のような１つまたは複数の要求された動作を実施するようにダイアログ・システム・インタフェース１３０を構成してもよい。幾つかの例では、開発者は、当該アクションに関連付けられた履行に従って当該アクションを処理し結果をダイアログ・システム・インタフェース１３０に提供するようにカスタム・ダイアログ・システム・エンジン１２０を構成してもよい。
【００６８】
図４は、前述のように新たなダイアログ・システム・エンティティを生成するためのプラットフォーム・インタフェース１１２の例示的なＧＵＩ４００を示す。開発者がカスタム・ダイアログ・システム・エンジン１２０を生成したいとき、彼は、ＧＵＩ４００のようなプラットフォーム・インタフェース１１２のウェブツールを用いて、ダイアログ・システム・エンティティおよびインテントを定義してもよい。ＧＵＩ４００を用いて、開発者は、キーワードに対する参照値４０２を入力し、提供された参照値に対するシノニム４０４をＧＵＩ４００により提供される対応するフィールドに入力することができる。ダイアログ・システム・エンティティが、キーワード（または参照値）および当該キーワードのシノニム、キーワードおよび当該キーワードの定義、１つのクラスのオブジェクトを定義するキーワードのリスト等を含んでもよい。それらのシノニムおよび／または定義を有するキーワードまたは参照値がダイアログ・システム・エンティティを構成する。
【００６９】
幾つかの例では、各エンティティはタイトルを有することができる。例えば、１つのエンティティに「都市」と名付けることができ、当該エンティティはアーリントン、ボストン、シカゴ等のような都市のリストを含むことができる。他の例において、エンティティをキーワードと名付けることができ、それはシノニムまたはこのキーワードの定義を含むことができる。１例において、「音楽」呼ばれるエンティティが、歌、歌手、歌うこと、音楽家等の用語を含んでもよい。別の例では、「アーチスト」と呼ばれるエンティティが、音楽バンド、音楽アンサンブル、または音楽アーチストのリストを含んでもよい。別の例では、「ビートルズ」と呼ばれる当該エンティティが、「ザ・ビートルズ」、「ビートルズ」、「Ｆａｂ  Ｆｏｕｒ」、「Ｌｉｖｅｒｐｏｏｌ  Ｌｅｇｅｎｄｓ」、「ジョンレノン」等のような可能なシノニムのリストを含んでもよい。さらに別の例では、「アーチスト」と呼ばれるエンティティがあってもよく、これが、様々なアーチスト名、アーチスト名シノニム、音楽バンド名等を含んでもよい。
【００７０】
図５は、前述のように新たなダイアログ・システム・インテントを生成するためのプラットフォーム・インタフェース１１２の例示的なＧＵＩ５００を示す。ダイアログ・システム・インテントは、ユーザ要求およびダイアログ・システム応答の間の関係を定義してもよく、特定のアクションおよびエンティティの間の関係に基づくルールに関連付けられてもよい。一般に、各インテントを、[Action] （c）[Entity]または[Action] （c）[Entities]のコンピュータ可読手続きとして表すことができる。ＧＵＩ５００を用いて、開発者は、ユーザ表現５０２（例えば、「天気@city」）を追加して、インテントおよびエンティティを示してもよい。ユーザ表現５０２に基づいて、プラットフォーム１１０は、機械学習技術を用いて、どのエンティティおよびインテントが例示的な要求において示唆されるかを自動的に判定し、対応するルールを生成する。例えば、開発者は、「Weather forecast for Los Angeles」のような例示的な要求を単に提供してもよい。プラットフォーム１１０は、「Los Angeles」を（システムまたはユーザ定義された）既存のエンティティにマッチしてもよく、対応する「[Action] （c）[Entity]」ルールを自動的に生成してもよい。さらにまたはあるいは、開発者は、「What is the weather in @say.geo-city:geo-city-us」のような、１つまたは複数のエンティティが明示的に表される例示的な要求を提供してもよい。図５の例では、アクション５０６に関連付けられた「天気」およびパラメータは「geo-city-us」および「geo-city」である。開発者はさらに、アクション５０６を修正し、アクション５０６に対する履行５０８を提供することができる。
【００７１】
生成されたルールは、エンティティまたは幾つかのエンティティに関して、特定のアクションがクライアント・サイド１４０（またはサーバ、ウェブ・サービス等）により実施されるものとすることを意味する。例えば、或るインテントを「looking up forecast for $geo-city-us」として表してもよい。この例において、当該インテントは、ロサンゼルスの予報を探すようにダイアログ・システム・エンジン１２０に指示する。
【００７２】
幾つかの例では、ＧＵＩ５００は機械学習に対するコントロール５１０を提供する。機械学習アルゴリズムをトグルすることで、ハードな／厳格なマッチから広いファジーなまたは機械学習されたマッチにわたるマッチの不明瞭さを扱うことができる。
【００７３】
幾つかの例では、プラットフォーム・インタフェース１１２は、特定のダイアログ・システムのエンド・ユーザまたはエンド・ユーザのグループに関連付けられた要求および処理インテントのログを提供するためのＧＵＩを提供してもよい。図６は、特定のユーザの要求のログを提供するための例示的なＧＵＩ６００を示す。
【００７４】
様々な例において、プラットフォーム・インタフェース１１２は、カスタム・ダイアログ・システムの性能の統計的分析のためのツールを開発者に提供してもよい。結果の統計値が、幾つかのセッション、要求の数、（少なくとも１つのインテントがトリガされる）分類された要求の数、（インテントがトリガされない）未分類の要求の数、精度、リコール、要求のＦ−スコア等を含んでもよい。幾つかの例では、未分類の要求は機械学習クラスタリングに基づいてグループに分割される。
【００７５】
さらなる例において、プラットフォーム・インタフェース１１２は、開発者または機械学習技術による未分類の要求内のエンティティをマークして新たなエンティティ、インテント、アクションおよび当該要求の履行を修正または生成するためのツールを提供してもよい。プラットフォーム・インタフェース１１２が、１つまたは複数のカスタム・ダイアログ・システムによる当該要求を再分類するためのツールを含んでもよい。
【００７６】
図７は、１例に従うインテント・パラメータを収集しダイアログ・システムを動作させる方法７００を示す処理流れ図である。方法７００を、ハードウェア（例えば、意思決定論理、専用論理、プログラム可能論理、特殊用途向け集積回路（ＡＳＩＣ）、およびマイクロコード）、（汎用目的コンピュータシステムまたは専用マシンで実行されるソフトウェアのような）ソフトウェア、またはその両方の組合せを含みうる処理論理により実施することができる。１例において、当該処理論理は、プラットフォーム１１０、バックエンド・サービス１１４、カスタム・ダイアログ・システム・エンジン１２０、コンピューティング・デバイス１０００、または任意のその組合せを指す。方法７００の以下に記載するステップを、図で説明し図示したものと異なる順序で実装してもよい。さらに、方法７００は本明細書で図示していない追加のステップを有してもよいが、これは本開示から当業者には明らかであろう。方法７００はまた、以下で図７で概観し図示したものより少ないステップを有してもよい。
【００７７】
方法７００は、動作７０２で、ダイアログ・システム（例えば、カスタム・ダイアログ・システム・エンジン１２０）がユーザの会話入力を受信するステップで開始することができる。当該会話入力を、ダイアログ・システム・インタフェース１３０を通じてクライアント・サイド１４０に提供することができる。当該会話入力を、クライアント・サイド１４０でまたはダイアログ・システムにより処理することができる。例えば、当該会話入力を認識し、コンピュータ可読テキスト入力に変換することができる。
【００７８】
動作７０４で、ダイアログ・システム（例えば、カスタム・ダイアログ・システム・エンジン１２０）は、当該会話入力に関連付けられたダイアログ・システム・インテントを少なくとも１つの予め決定された当該会話入力のインテントキーワードに基づいて識別または決定することができる。換言すれば、ダイアログ・システムは、当該会話入力を処理して、１つまたは複数のインテントキーワードが、当該予め決定されたインテントのうち１つを指すかどうかを判定することができる。例えば、会話入力「Please order a pizza for me」は、（プラットフォーム１１０を介して開発者により以前に生成されうる）予め決定された「ピザ注文」インテントのトリガまたは検出を引き起こしうるインテントキーワード「order」および「pizza」を含む。ダイアログ・システム・インテントは、インテント・パラメータを収集するためのパラメータ収集ダイアログへの入力点を示すことができる。当該所与の例において、インテント・パラメータは、ピザサイズ、パイ皮のタイプ、トッピングの選択、ソース、配達先、配達時間、ベンダ等を含むことができる。したがって、当該インテント・パラメータをパラメータ名前およびその値に関連付けることができる。当該パラメータ値は数値、単語、フレーズ、音、または画像を含むことができる。幾つかの実装では、当該インテント・パラメータの一部または全部を予め決定された値のリストから選択することができる（例えば、或るインテント・パラメータを予め決定された都市名前のリストから選択することができる）。
【００７９】
動作７０６で、ダイアログ・システムは、当該会話入力が既に、失われた要求されたインテント・パラメータの全てを含むかどうかを判定することができる。当該失われた要求されたインテント・パラメータの全てが動作７０２で与えられた会話入力に存在すると判定された場合、当該方法は動作７０８に進むことができる。動作７０８で、ダイアログ・システムは当該失われた要求されたインテント・パラメータを当該会話入力から識別し収集することができる。当該収集された要求されたインテント・パラメータはキャッシュまたはメモリに一時的に格納されることができる。
【００８０】
動作７１０で、当該要求された紛失インテント・パラメータの全てがいったん収集されると、ダイアログ・システムは、ダイアログ・システムに関連付けられたアクション命令を当該インテントおよびインテント・パラメータに基づいて生成する。当該アクション命令を、ダイアログ・システム、サーバ、ユーザ・デバイス、またはダイアログ・システム・インタフェースに予め決定されたアクションを当該アクション命令および１つまたは複数のインテント・パラメータに基づいて実装させるように構成することができる。上で与えた例において、当該アクション命令は、以前に収集されたインテント・パラメータに基づいてピザを注文するために予め決定されたウェブ・サービス１６０に送信されうる電子購入注文を指すことができる。したがって、幾つかの例において、当該アクション命令はＡＰＩサービスを引き起こすように構成されたＡＰＩ固有応答（またはＡＰＩコード）を含むことができる。例えば、当該アクション命令のＡＰＩコードはＪａｖａ（登録商標）スクリプトオブジェクト記法（ＪＳＯＮ）フォーマットであることができる。
【００８１】
幾つかの例では、動作７１０で、当該アクション命令の生成の前に、ダイアログ・システムは応答メッセージを生成しそれをユーザに提供することができる。当該応答メッセージは、当該収集されたインテント・パラメータの１つまたは複数を繰り返し、当該インテント・パラメータが正しいかどうかを確認するようにユーザに問い合わせることができる。例えば、ダイアログ・システムは、「You want to order a large margherita pizza to be delivered to your home in an hour. Is that correct?」のようなダイアログ・システム・インタフェース１３０を介して配信されるべきテキストまたはオーディオメッセージを生成することができる。ユーザが肯定的に応答する場合、ダイアログ・システムは上述のように当該アクション命令の描画に進むことができる。そうでなければ、ダイアログ・システムはユーザに彼の要求を明確にさせるための１つまたは複数のプロンプトを提供することができる。
【００８２】
動作７０６で、（動作７０２で取得された）初期会話入力が、失われた要求されたインテント・パラメータの全てを含まないと判定された場合、当該方法は図７で示すように動作７１２に進むことができる。動作７１２で、ダイアログ・システムは、動作７０４で識別されたインテントに関連付けられた予め決定されたパラメータ収集ダイアログを開始することができる。当該予め決定されたパラメータ収集ダイアログは、ダイアログ・システムにより失われた要求されたインテント・パラメータおよび、幾つかの例において、任意のインテント・パラメータを取得するように問い合わせられる幾つかのプロンプト・メッセージを含むことができる。したがって、動作７１２で、ダイアログ・システムは、１つまたは複数の紛失インテント・パラメータを入力するようにユーザに促すようにユーザに１つまたは複数のプロンプトを提供する。例えば、動作７１２で、ダイアログ・システムは、ユーザに「What pizza size would you like - large, medium or small?" or "Tell me what toppings you would like to have?」と問い合わせることができる。
【００８３】
動作７１４で、ダイアログ・システムは、以前の動作で与えられたプロンプトに対する回答を含む１つまたは複数の追加の会話入力をユーザから受信することができる。ダイアログ・システムは、要求されたインテント・パラメータを当該追加の会話入力または他のソースから取り出すことができる。動作７１６で、ダイアログ・システムは、全ての要求されたインテント・パラメータが利用可能であるかどうかを判定することができる。当該要求されたインテント・パラメータの全てが利用可能であると判定された場合、当該方法は動作７１０に進むことができる。そうでなければ、当該要求されたインテント・パラメータの全てが利用可能であるわけではないと判定された場合、当該方法は図７で示すように動作７１２に戻ることができる。動作７１２、７１４、および７１６は、当該失われた要求されたインテント・パラメータの全てが収集されるまで繰り返すことができる。
【００８４】
前述のように、プラットフォーム１１０により、開発者は、全ての要求されたインテント・パラメータの収集を自動化するように自然会話ダイアログ・システムのダイアログ・エージェントを生成または修正することができる。各開発者は、開発者のカスタム・ダイアログ・システム・エンジンおよびダイアログ・エージェントの全てを格納するプラットフォーム１１０とともに開発者プロフィールを有することができる。図８は、１例に従うパラメータ収集ダイアログ内でインテント・パラメータを収集するためのダイアログ・エージェントを生成するためのプラットフォーム・インタフェース１１２の例示的なＧＵＩ８００を示す。
【００８５】
図８で示すように、ＧＵＩ８００は、ダイアログ・システム・インテントを生成させうるアクション可能ボタン８０２を含む。例えば、開発者は、インテントを生成し、ホテルを電子的に予約しこのインテントがホテル予約を正しく予約するために要求されたインテント・パラメータの全てを収集するためのパラメータ収集ダイアログを生成することができる。先ず、開発者は、図８におけるウィジェット８０４により示されるように「book a hotel」のような新たに生成されたインテントに名前を付けることができる。さらに、開発者は、ＧＵＩ８００の当該インタフェースを介して、このインテントの起動をトリガできる１つまたは複数の例示的なフレーズまたはキーワードを提供することができる。これらの目的のため、開発者は、ウィジェット８０６を通じて例示的なフレーズまたはキーワードを提供することができる。「book a hotel」インテントに対する幾つかの例示的なフレーズまたはキーワードは、「book a hotel」、「book a hotel in @sys.geo-city:city」または「book a hotel in @sys.geo-city:city on @sys. date: date」を含む。ここで、@sys.geo-city:city and @sys. date: dateは、それぞれエンティティ「都市」および「日付」を指す。換言すれば、幾つかの例において、インテントをトリガするための例示的なフレーズまたはキーワードを、１つまたは複数のエンティティに関連付けることができる。ボタン８０８をクリックすることで、開発者はこのインテントに関連付けられた追加の例示的なフレーズまたはキーワードを追加することができる。
【００８６】
さらに、開発者は、予め決定されたアクションのうち１つを選択するか、またはインテントがダイアログ・システムにより実行されたとき実施されるべき新たなアクションを生成することができる。ここで、ウィジェット８１０は、開発者が、プラットフォーム・インタフェース１１２の別のＧＵＩを通じてカスタマイズできる予め決定されたまたは生成された新たなアクション「bookhotel」のうち１つを選択したことを示す。さらに、開発者は、それがユーザとの対話の過程で起動されるとき、パラメータ収集ダイアログ内で収集される１つまたは複数のインテント・パラメータを提供することができる。当該インテント・パラメータは「都市」、「日付」等を含むことができる。図８で示すように、当該インテント・パラメータは、ＧＵＩウィジェット８１２を介して提供、識別、または修正される。ボタン８１４をクリックすることで、開発者は新たなインテント・パラメータをリストに追加することができる。当該インテント・パラメータの各々は幾つかの特性を有することができる。例えば、開発者は、インテント・パラメータが要求される（必須）かまたは任意であるかを指定することができる。さらに、開発者は、パラメータ名、パラメータデータ・タイプ、およびパラメータ値を提供または修正し、１つまたは複数のプロンプト・メッセージを提供することができる。ダイアログ・システムは、パラメータ収集ダイアログの間に、当該インテント・パラメータの各々のプロンプト・メッセージに問い合わせて、（例えば、方法７００の動作７１２および７１４を参照して上述したように）全ての紛失インテント・パラメータ値を取得することができる。
【００８７】
図９は、１例に従う、ダイアログ・エージェントのプロンプトを定義するためのプラットフォーム・インタフェース１１２の例示的なＧＵＩを示す。図で示すように、インテント・パラメータの各々を、パラメータ名（例えば、都市）、パラメータデータ・タイプ（例えば、@sys.geo-city)）、パラメータ値（例えば、$city）、および１つまたは複数のプロンプト・メッセージ９０２に関連付けることができる。ここで、当該パラメータデータ・タイプおよびパラメータ値はダイアログ・システム・エンティティを指すことができる。さらに、プロンプト・メッセージ９０２は「Where are you going?」および「What is the destination?」と言及することができる。開発者は彼が望むほど多くのプロンプトを提供することができる。当該プロンプトを選択しユーザに配信する順序は任意であるかまたは、開発者により予め決定することができる。
【００８８】
既に述べたように、幾つかのパラメータはユーザに問い合わせてそれらの各値をユーザから収集するために必須（要求された）であることができ、幾つかの他のパラメータは任意であることができる。例えば、「都市」パラメータは必須であることができるが、ホテル・チェーンの名前は任意であることができる。
【００８９】
図１０は、本明細書で説明した方法を実装するのに適したコンピューティング・デバイス１０００を示す高レベルブロック図である。特に、コンピューティング・デバイス１０００を、開発者によりダイアログ・システムを生成し修正し、ダイアログ・システムを実行するために使用してもよい。コンピューティング・デバイス１０００が、とりわけ汎用目的コンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、ネットブック、モバイル・フォン、スマートフォン、インフォテイメントシステム、スマートテレビデバイスのような多数のタイプのデバイスの１つまたは複数を含むか、それらであるかまたはそれらの統合部分を含んでもよい。幾つかの例では、コンピューティング・デバイス１０００を、クライアント・デバイス、サーバ、プラットフォーム１１０、またはダイアログ・システムのインスタンスとみなすことができる。
【００９０】
図１０で示すように、コンピューティング・デバイス１０００は、１つまたは複数のプロセッサ１０１０、メモリ１０２０、１つまたは複数の大容量記憶デバイス１０３０、１つまたは複数の入力デバイス１０５０、１つまたは複数の出力デバイス１０６０、ネットワークインタフェース１０７０、１つまたは複数の任意の周辺デバイス１０８０、および上に列挙した要素を動作可能に相互接続するための通信バス１０９０を含む。プロセッサ１０１０を、コンピューティング・デバイス１０００内で実行するための機能および／またはプロセス命令を実装するように構成することができる。例えば、プロセッサ１０１０はメモリ１０２０に格納された命令および／または記憶デバイス１０３０に格納された命令を処理してもよい。かかる命令が、オペレーティング・システムまたはソフトウェアアプリケーションのコンポーネントを含んでもよい。
【００９１】
１例に従う、メモリ１０２０は、動作の間にコンピューティング・デバイス１０００内に情報を格納するように構成される。幾つかの例において、メモリ１０２０は非一時的コンピュータ可読記憶媒体またはコンピュータ可読記憶デバイスを指してもよい。幾つかの例では、メモリ１０２０は一時メモリであり、これは、メモリ１０２０の主な目的が長期記憶でなくてもよいことを意味する。メモリ１０２０はまた、揮発性メモリを指してもよく、これは、メモリ１０２０が電力を受信しないときに。メモリ１０２０が格納されたコンテンツを維持しないことを意味する。揮発性メモリの例は、ランダム・アクセスメモリ（ＲＡＭ）、動的ランダム・アクセスメモリ（ＤＲＡＭ）、静的ランダム・アクセスメモリ（ＳＲＡＭ）、および当業界で公知な他の形態の揮発性メモリを含む。幾つかの例では、メモリ１０２０は、プロセッサ１０１０による実行のためにプログラム命令を格納するために使用される。メモリ１０２０は、１例において、ソフトウェアアプリケーションにより使用される。一般的に、ソフトウェア・アプリケーションは、本明細書で説明したようにインテント・パラメータを収集しダイアログ・システムを動作させるための方法の少なくとも幾つかの動作を実装するのに適したソフトウェアアプリケーションを指す。
【００９２】
大容量記憶デバイス１０３０はまた、１つまたは複数の一時的または非一時的コンピュータ可読記憶媒体および／またはコンピュータ−可読記憶デバイスを含むことができる。幾つかの例では、大容量記憶デバイス１０３０は、メモリ１０２０よりも多くの量の情報を格納するように構成されてもよい。大容量記憶デバイス１０３０が情報の長期記憶に対して構成されてもよい。幾つかの例では、大容量記憶デバイス１０３０は不揮発性記憶要素を含む。かかる不揮発性記憶要素の例は、磁気ハード・ディスク、光学的ディスク、固体ディスク、フラッシュ・メモリ、或る形態の電気的にプログラム可能メモリ（ＥＰＲＯＭ）または電気的に消去可能なおよびプログラム可能メモリ、および当業界で公知な他の形態の不揮発性メモリを含む。
【００９３】
依然として図１０を参照すると、コンピューティング・デバイス１０００はまた、１つまたは複数の入力デバイス１０５０を含んでもよい。入力デバイス１０５０は、触覚、オーディオ、ビデオ、または生体チャネルを通じて入力をユーザから受信するように構成されてもよい。入力デバイス１０５０の例が、キーボード、キーパッド、マウス、トラックボール、タッチスクリーン、タッチパッド、マイクロフォン、ビデオカメラ、画像センサ、指紋センサ、または、ユーザまたは他のソースから入力を検出し、コンピューティング・デバイス１０００またはそのコンポーネントに当該入力を中継できる任意の他のデバイスを含んでもよい。出力デバイス１０６０は、視覚的または可聴チャネルを通じて出力をユーザに提供するように構成されてもよい。出力デバイス１０６０が、液晶ディスプレイ（ＬＣＤ）モニタ、発光ダイオード（ＬＥＤ）モニタ、または有機ＬＥＤモニタ、音カード、スピーカ、発光デバイス、プロジェクタ、またはーザに対してインテリジェントでありうる出力を生成できる任意の他のデバイスのようなビデオグラフィックスアダプタカード、ディスプレイを含んでもよい。出力デバイス１０６０はまた、タッチスクリーン、存在検知ディスプレイ、または当業界で公知な他の入出力可能ディスプレイを含んでもよい。
【００９４】
コンピューティング・デバイス１０００はまた、ネットワークインタフェース１０７０を含むことができる。ネットワークインタフェース１０７０は、例えば、とりわけ、インターネット、イントラネット、ローカル・エリアネットワーク、広域ネットワーク、携帯電話ネットワーク（例えば、グローバルシステムフォーモバイル通信ネットワーク、ロング・ターム・エボリューション通信ネットワーク、パケット交換通信ネットワーク、回路交換通信ネットワーク）、Ｂｌｕｅｔｏｏｔｈ（登録商標）無線、およびＩＥＥＥ８０２．１１ベースの無線周波数ネットワークを含む、１つまたは複数の有線、無線、または光学的ネットワークのような１つまたは複数のネットワークを介して外部デバイスと通信するために利用することができる。ネットワークインタフェース１０７０は、Ｅｔｈｅｒｎｅｔカード、光学的トランシーバ、無線周波数トランシーバ、または情報を送受信できる任意の他のタイプのデバイスのようなネットワークインタフェースカードであってもよい。
【００９５】
コンピューティング・デバイス１０００のオペレーティング・システムはコンピューティング・デバイス１０００またはそのコンポーネントの１つまたは複数の機能を制御してもよい。例えば、当該オペレーティング・システムはソフトウェアアプリケーションと対話してもよく、ソフトウェアアプリケーションおよびプロセッサ１０１０、メモリ１０２０、記憶デバイス１０３０、入力デバイス１０５０、出力デバイス１０６０、およびネットワークインタフェース１０７０の間の１つまたは複数の対話を促進してもよい。当該オペレーティング・システムは、ソフトウェアアプリケーションまたはそのコンポーネントと対話するかまたはそれに接続されてもよい。幾つかの例では、ソフトウェア・アプリケーションは当該オペレーティング・システムに含まれてもよい。
【００９６】
このように、ダイアログ・システムにおけるインテント・パラメータを収集するための方法およびシステムを説明した。特定の例を参照して特定の態様を説明したが、本願の広い趣旨と範囲から逸脱せずにこれらの例に様々な修正および変更を加えうることは明らかであろう。したがって、本明細書および図面は限定的な意味ではなく例示的なものとしてみなされるべきである。
【００９７】
以上の詳細な説明は当該添付図面への参照を含み、これは当該詳細な説明の一部を形成する。このセクションで説明するアプローチはクレームに対する先行技術ではなく、このセクションへの包含により先行技術であるとして認めるものでもない。図面は、本明細書で開示された例に従う例示を示す。これらの例は、当業者が本主題を実施できるようにするために十分な詳細で説明されている。当該例を組み合わせることができ、他の例を利用でき、または構造的に、論理的および動作的変更を、クレームしたものの範囲から逸脱せずに行うことができる。以下の詳細な説明は、したがって、限定的な意味でとらえるべきでｈなあく、その範囲は添付の特許請求の範囲とその均等物により定義される。
【００９８】
上で提供した例は、様々なブロック、コンポーネント、回路、ステップ、動作、プロセス、アルゴリズム等により添付図面で参照され、集合的に「要素」と称される。これらの要素を、電子ハードウェア、コンピュータソフトウェア、または任意のその組合せを用いて実装してもよい。かかる要素がハードウェアまたはソフトウェアとして実装されるかどうかは、当該特定のアプリケーションおよびシステム全体に課される設計制約に依存する。
【００９９】
例として、要素、または要素の任意の部分、または要素の任意の組合せを、１つまたは複数のプロセッサを含む「処理システム」で実装してもよい。プロセッサの例は、マイクロプロセッサ、マイクロコントローラ、中央演算装置（ＣＰＵ）、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラム可能ゲートアレイ（ＦＰＧＡ）、プログラム可能論理デバイス（ＰＬＤ）、状態マシン、ゲート論理、離散ハードウェア回路、および本開示にわたって説明された様々な機能を実施するように構成された他の適切なハードウェアを含む。当該処理システム内の１つまたは複数のプロセッサはソフトウェア、ファームウェア、またはミドルウェア（集合的に「ソフトウェア」と称される）を実行してもよい。「ソフトウェア」という用語は、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア説明言語、またはその他と称されるとに関わらず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアコンポーネント、アプリケーション、ソフトウェア・アプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能、実行スレッド、手続き、関数等を意味するように広く解釈されるものである。
【０１００】
したがって、１つまたは複数の例において、説明した機能をハードウェア、ソフトウェア、または任意のその組合せで実装してもよい。ソフトウェアで実装される場合、当該機能を、非一時的コンピュータ可読媒体に格納するかまたはその上の１つまたは複数の命令またはコードとして符号化してもよい。コンピュータ可読媒体はコンピュータ記憶媒体を含む。記憶媒体は、コンピュータによりアクセスされうる任意の利用可能な媒体であってもよい。限定ではなく例として、かかるコンピュータ可読媒体は、ランダム・アクセスメモリ、読取専用メモリ、電気的に消去可能なプログラム可能ランダム・アクセスメモリ（ＥＥＰＲＯＭ）、コンパクトディスクランダム・アクセスメモリ、または他の光ディスク記憶、磁気ディスク記憶、固体メモリ、または任意の他のデータ記憶デバイス、前述のタイプのコンピュータ可読媒体の組合せ、またはコンピュータによりアクセスされうる命令またはデータ構造の形でコンピュータ実行可能コードを格納するために使用できる任意の他の媒体を含むことができる。
【０１０１】
この特許出願の目的のため、「または」および「および」という用語は、特に断れらない限りまたはそれらの使用の文脈により明確に意図されない限り、「および／または」を意味するものとする。「ａ」という用語は、特に断れらない限りまたは「１つまたは複数の」の使用が明確に不適切でない限り、「１つまたは複数の」を意味するものとする。「ｃｏｍｐｒｉｓｅ」、「ｃｏｍｐｒｉｓｉｎｇ」、「ｉｎｃｌｕｄｅｓ」、および「ｉｎｃｌｕｄｉｎｇ」という用語は交換可能であり、限定を意味するものではない。例えば、「ｉｎｃｌｕｄｉｎｇ」という用語は、「〜を含むがこれに限定されない」と解釈されるものとする。
【０１０２】
「自然言語ダイアログ・システム」および「ダイアログ・システム」という用語は、交互に使用でき、テキスト、会話、グラフィックス、ハプティクス、ジェスチャ、コンピュータ生成されたアクション、および当該入力および出力チャネルの両方での他の通信モードを用いてヒューマンマシンダイアログ対話を提供するためのコンピュータ実装されたシステムを意味するように解釈されるものであり、ユーザ入力への応答は１つまたは複数のダイアログ・システムエージェントまたはダイアログ・システム・エンジンにより生成され、当該システムは、情報を受信し、処理し、管理し、配信するためのインタフェースを提供する。「チャット情報システム」、「発話ダイアログ・システム」、「会話エージェント」、「チャッタロボット」、「チャッタボット」、「チャットボット」、「チャットエージェント」、「デジタルパーソナルアシスタント」、「自動化されたオンラインアシスタント」等という用語は「ダイアログ・システム」という用語の範囲内にある。
【０１０３】
「クライアント・デバイス」および「ユーザ・デバイス」という用語は、モバイル・デバイス、携帯電話、モバイル・フォン、ユーザ機器、ユーザ端末、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、サーバ、パーソナルデジタルアシスタント、音楽プレイヤ、マルチメディアプレイヤ、ポータブルコンピューティング・デバイス、ナビゲーションシステム、ビークルコンピュータ、インフォテイメントシステム、ゲーミングデバイス、ゲーム・コンソール、エンターテインメントシステム、テレビデバイス、ネットワークデバイス、モデム、ルータ等のような、入力および出力の機能を有するクライアント・サイド１４０上の任意の電子またはコンピューティング・デバイスを意味するように解釈されるものとする。
【０１０４】
「ユーザ」という用語は「クライアント・デバイス」および「ユーザ・デバイス」のユーザを意味し、「開発者」という用語は、プラットフォーム１１０を介して生成され維持されうるダイアログ・システム・エンジン（エージェント）のソフトウェア開発者、エンジニアまたは所有者を意味するように解釈されるものとする。
【０１０５】
「ダイアログ・システムエージェント」および「ダイアログ・システム・エンジン」という用語は、交互に使用でき、ダイアログ・システム・インテントおよびダイアログ・システム・エンティティを含むダイアログ・システム要素のような１つまたは複数の予め決定されたルールまたは基準に基づいてユーザ入力を処理するためのコンピュータ実装可能インタフェースを意味するものと解釈することができる。
【０１０６】
本明細書で開示された技術的効果は、ユーザ要求を処理し、ユーザ要求に関連付けられた複数のパラメータ（またはパラメータ値）を収集して当該複数のパラメータに基づいてコンピュータ実装されたアクションを生成する際の自然言語ダイアログ・システムに対する改善を提供することができる。
【０１０７】
さらに本明細書で開示された技術的効果は、属性を探すためのメモリへの呼出しを減らし、したがってレイテンシを減らしバッテリ寿命を改善し、インタフェース、および音声アクションをセットアップするのに必要なステップ、インタフェース、およびメモリへの呼出しを減らすことでハードウェア性能の改善を提供することができる。
【０１０８】
本明細書で説明したシステムまたは方法がユーザに関する個人情報を収集するか、またはパーソナル情報を利用しうる状況において、ユーザに当該集合および／またはかかるパーソナル情報を制御する機会を提供し、かかるデータの収集の一部または全部を制限してもよい。例えば、パラメータの識別のためのコンテキストの利用が可能であるとき、ユーザに、コンテキストデータの一部または全部の収集を制御する能力を提供してもよい。さらに、特定のデータを、個人的に識別可能な情報が除去されるように、それが格納または利用される前に１つまたは複数の方法で処理するかまたは不明瞭にしてもよい。例えば、ユーザのアイデンティティを個人的に識別可能な情報がユーザに対して決定できないように処理してもよく、またはユーザの地理的位置を、ユーザの特定の位置を決定できないように一般化してもよい。したがって、ユーザに、どのように情報がユーザに関して収集されるかおよび本明細書で開示されたシステムおよび方法がどのように使用されるかに関する制御が提供されうる。
【０１０９】
本開示は幾つかの詳細を含むが、これらを本開示の範囲またはクレームしたものに対する制限と解釈すべきではなく、本開示の例示的な特徴の説明として解釈すべきである。別々の実装の文脈で本開示で説明した特定の特徴をまた、単一の実装の組合せで提供することができる。反対に、単一の実装の文脈で説明した様々な特徴をまた、複数の実装で別々にまたは任意の適切な部分的組合せで提供することができる。さらに、特徴は特定の組合せで動作するように上述され最初にそのようにクレームされているかもしれないが、クレームされた組合せからの１つまたは複数の特徴を幾つかのケースでは当該組合せから実施してもよく当該クレームされた組合せは部分的組合せまたは部分的組合せの変形に関連してもよい。
【０１１０】
同様に、動作を図面において特定の順序で説明したが、これは、所望の結果を実現するために、かかる動作を示した特定の順序でまたは逐次的順序で実施されること、または全ての示された動作が実施されることを要求するものと理解されるべきではない。特定の環境において、マルチタスキングおよび並列処理が有利であるかもよい。さらに、上述の実装における様々なシステムコンポーネントの分離が、かかる分離が全ての実装で要求されると理解されるべきではなく、当該説明されたプログラムコンポーネントおよびシステムを一般に単一のソフトウェア製品に統合するかまたは複数のソフトウェア製品にパッケージ化できることは理解されるべきである。
【０１１１】
したがって、本開示の特定の実装を説明した。他の実装は添付の特許請求の範囲内にある。例えば、特許請求の範囲で記載した動作を異なる順序で実施して、依然として所望の結果を実現することができる。幾つかの実装を説明した。それにも関わらず、様々な修正を前記開示の趣旨と範囲から逸脱せずに行いうることは理解される。例えば、上で示したフローの様々な形態を、ステップを再順序付けし、追加し、または削除して使用してもよい。したがって、他の実装は添付の特許請求の範囲内にある。
【符号の説明】
【０１１２】
１１０  プラットフォーム
１１２  プラットフォーム・インタフェース
１１４  バックエンド・サービス
１２０  カスタム・ダイアログ・システム・エンジン
１３０  ダイアログ・システム・インタフェース
１４０  クライアント側
１５０  通信ネットワーク
１６０  ウェブ・リソース／ウェブ・サービス
【図１】
2020161153.tif 000003
【図２】
2020161153.tif 000004
【図３】
2020161153.tif 000005
【図４】
2020161153.tif 000006
【図５】
2020161153.tif 000007
【図６】
2020161153.tif 000008
【図７】
2020161153.tif 000009
【図８】
2020161153.tif 000010
【図９】
2020161153.tif 000011
【図１０】
2020161153.tif 000012
【手続補正書】
【提出日】令和2年6月23日(2020.6.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
1つまたは複数のプロセッサによって実行される方法であって、前記方法は、
ダイアログ・システムのためのダイアログ・エージェントを作成する開発者からのユーザ・インタフェース入力に基づいて、
前記ダイアログ・エージェントのダイアログ・システム・インテント、
前記ダイアログ・システム・インテントのための複数のパラメータ、
前記パラメータの各々に対して、前記ダイアログ・システム・インテントのための必須のパラメータ、または前記ダイアログ・システム・インテントのための任意のパラメータであるかどうか、および
前記ダイアログ・システム・インテントがトリガされかつ少なくとも前記必須のパラメータのための値が解決された場合に実行されるべきアクションを決定するステップであって、前記アクションが、前記解決された値に基づいて実行される、ステップと、
前記ダイアログ・システム・インテントを前記アクションに関連付けるとともに、前記パラメータを、前記ダイアログ・システム・インテントと、当該パラメータが必須のパラメータまたは任意のパラメータであるかどうかの指示とに関連付けるステップと、
前記関連付けに続いて、
クライアント・デバイスのダイアログ・システム・インタフェースを介して提供された会話入力を受信するステップであって、前記ダイアログ・システム・インタフェースが、前記ダイアログ・システムに関連付けられる、ステップと、
前記会話入力の処理に基づいて、前記ダイアログ・エージェントの前記ダイアログ・システム・インテントを起動することを決定するステップと、
前記ダイアログ・エージェントの前記ダイアログ・システム・インテントの起動に応答して、
前記ダイアログ・システム・インテントのための全ての前記必須のパラメータに対する値が、パラメータ収集ダイアログを開始することなく全て解決可能であるかどうかを決定するステップと、
全ての前記必須のパラメータに対する前記値が前記パラメータ収集ダイアログを開始することなく解決可能であると決定された場合、
前記パラメータ収集ダイアログを開始することなく、全ての前記必須のパラメータに対する前記値に基づく前記アクションの実行を開始するステップと、
全ての前記必須のパラメータに対する値が前記パラメータ収集ダイアログを開始しない限り解決可能ではないと決定された場合、
全ての前記必須のパラメータに対する値が解決されるまで、パラメータ収集ダイアログを実行するステップと、
前記パラメータ収集ダイアログを実行した後に、全ての前記必須のパラメータに対する前記値に基づく前記アクションの実行を開始するステップとを含む、
方法。
【請求項２】
前記ダイアログ・システム・インテントのための前記パラメータを決定するステップが、
前記パラメータのうちの、前記ユーザ・インタフェース入力を介した少なくとも1つの参照用語および少なくとも1つのシノニムの提供を通じて前記開発者によって作成された開発者エンティティに基づく、開発者パラメータを決定するステップを含む、
請求項１に記載の方法。
【請求項３】
前記ダイアログ・システム・インテントのための前記パラメータを決定するステップが、
前記パラメータのうちの、前記ユーザ・インタフェース入力によって示されたシステム・エンティティに基づいて定義された、システムパラメータを決定するステップであって、前記システム・エンティティが、前記ダイアログ・システムに対して予め定義される、ステップをさらに含む、
請求項2に記載の方法。
【請求項４】
前記方法は、
前記会話入力に基づいて、前記任意のパラメータのうちの1つに対して、任意の値を解決するステップをさらに含み、
全ての前記必須のパラメータに対する前記値が解決可能であると決定された場合、前記パラメータ収集ダイアログを開始することなく、全ての前記必須のパラメータに対する前記値に基づく前記アクションの実行を開始するステップが、
前記任意の値と、全ての前記必須のパラメータに対する前記値とに基づいて、前記アクションの実行を開始するステップを含む、
請求項１に記載の方法。
【請求項５】
前記方法は、
前記任意のパラメータのうちの追加の1つに対して、前記会話入力に基づいて解決可能である、任意の値がないと決定するステップをさらに含み、
全ての前記必須のパラメータに対する前記値が解決可能であると決定された場合、前記パラメータ収集ダイアログを開始することなく、全ての前記必須のパラメータに対する前記値に基づく前記アクションの実行を開始するステップが、
前記任意のパラメータのうちの前記追加の1つに対する任意の値を用いずに、前記任意の値と、全ての前記必須のパラメータに対する前記値とに基づいて、前記アクションの実行を開始するステップを含む、
請求項4に記載の方法。
【請求項６】
前記任意のパラメータのうちの1つに対して、前記会話入力に基づいて解決可能である、任意の値がないと決定するステップをさらに含み、
全ての前記必須のパラメータに対する前記値が解決可能ではないと決定された場合、前記全ての前記必須のパラメータに対する値が解決されるまで、パラメータ収集ダイアログを実行するステップが、
前記パラメータ収集ダイアログの間、前記任意のパラメータのうちの前記1つに対する任意の値を解決することなく、全ての前記必須のパラメータに対する前記値を解決するステップを含み、
前記パラメータ収集ダイアログを実行した後に、全ての前記必須のパラメータに対する前記値に基づく前記アクションの実行を開始するステップが、
前記任意のパラメータのうちの前記1つに対する任意の値を用いずに、全ての前記必須のパラメータに対する前記値に基づく前記アクションの実行を開始するステップを含む、
請求項１に記載の方法。
【請求項７】
前記アクションが、前記クライアント・デバイスによって、または前記クライアント・デバイスと通信するサーバによって、実行される、
請求項１に記載の方法。
【請求項８】
前記アクションが、アプリケーション・プログラミング・インタフェース(API)固有応答を含む、
請求項7に記載の方法。
【請求項９】
少なくとも1つのプロセッサと、プロセッサ実行可能コードを記憶しているメモリとを備えたシステムであって、前記少なくとも1つのプロセッサが、前記プロセッサ実行可能コードを実行すると、以下の動作を実行するように構成され、前記動作が、
ダイアログ・システムのためのダイアログ・エージェントを作成する開発者からのユーザ・インタフェース入力に基づいて、
前記ダイアログ・エージェントのダイアログ・システム・インテント、
前記ダイアログ・システム・インテントのための複数のパラメータ、
前記パラメータの各々に対して、前記ダイアログ・システム・インテントのための必須のパラメータ、または前記ダイアログ・システム・インテントのための任意のパラメータであるかどうか、および
前記ダイアログ・システム・インテントがトリガされかつ少なくとも前記必須のパラメータのための値が解決された場合に実行されるべきアクションを決定するステップであって、前記アクションが、前記解決された値に基づいて実行される、ステップと、
前記ダイアログ・システム・インテントを前記アクションに関連付けるとともに、前記パラメータを、前記ダイアログ・システム・インテントと、当該パラメータが必須のパラメータまたは任意のパラメータであるかどうかの指示とに関連付けるステップと、
前記関連付けに続いて、
クライアント・デバイスのダイアログ・システム・インタフェースを介して提供された会話入力を受信するステップであって、前記ダイアログ・システム・インタフェースが、前記ダイアログ・システムに関連付けられる、ステップと、
前記会話入力の処理に基づいて、前記ダイアログ・エージェントの前記ダイアログ・システム・インテントを起動することを決定するステップと、
前記ダイアログ・エージェントの前記ダイアログ・システム・インテントの起動に応答して、
前記ダイアログ・システム・インテントのための全ての前記必須のパラメータに対する値が、パラメータ収集ダイアログを開始することなく全て解決可能であるかどうかを決定するステップと、
全ての前記必須のパラメータに対する前記値が前記パラメータ収集ダイアログを開始することなく解決可能であると決定された場合、
前記パラメータ収集ダイアログを開始することなく、全ての前記必須のパラメータに対する前記値に基づく前記アクションの実行を開始するステップと、
全ての前記必須のパラメータに対する値が前記パラメータ収集ダイアログを開始しない限り解決可能ではないと決定された場合、
全ての前記必須のパラメータに対する値が解決されるまで、パラメータ収集ダイアログを実行するステップと、
前記パラメータ収集ダイアログを実行した後に、全ての前記必須のパラメータに対する前記値に基づく前記アクションの実行を開始するステップとを含む、
システム。
【請求項１０】
前記ダイアログ・システム・インテントのための前記パラメータを決定するステップにおいて、前記少なくとも1つのプロセッサが、
前記パラメータのうちの、前記ユーザ・インタフェース入力を介した少なくとも1つの参照用語および少なくとも1つのシノニムの提供を通じて前記開発者によって作成された開発者エンティティに基づく、開発者パラメータを決定するように構成される、
請求項９に記載のシステム。
【請求項１１】
前記ダイアログ・システム・インテントのための前記パラメータを決定するステップにおいて、前記少なくとも1つのプロセッサが、
前記パラメータのうちの、前記ユーザ・インタフェース入力によって示されたシステム・エンティティに基づいて定義された、システムパラメータを決定するようにさらに構成され、
前記システム・エンティティが、前記ダイアログ・システムに対して予め定義される、
請求項１０に記載のシステム。
【請求項１２】
前記少なくとも1つのプロセッサが、
前記会話入力に基づいて、前記任意のパラメータのうちの1つに対して、任意の値を解決するようにさらに構成され、
全ての前記必須のパラメータに対する前記値が解決可能であると決定された場合、前記パラメータ収集ダイアログを開始することなく、全ての前記必須のパラメータに対する前記値に基づく前記アクションの実行を開始するステップにおいて、前記少なくとも1つのプロセッサが、
前記任意の値と、全ての前記必須のパラメータに対する前記値とに基づいて、前記アクションの実行を開始するように構成される、
請求項９に記載のシステム。
【請求項１３】
前記少なくとも1つのプロセッサが、前記任意のパラメータのうちの追加の1つに対して、前記会話入力に基づいて解決可能である、任意の値がないことを決定するようにさらに構成され、
全ての前記必須のパラメータに対する前記値が解決可能であると決定された場合、前記パラメータ収集ダイアログを開始することなく、全ての前記必須のパラメータに対する前記値に基づく前記アクションの実行を開始するステップにおいて、前記少なくとも1つのプロセッサが、
前記任意のパラメータのうちの前記追加の1つに対する任意の値を用いずに、前記任意の値と、全ての前記必須のパラメータに対する前記値とに基づいて、前記アクションの実行を開始するように構成される、
請求項１２に記載のシステム。
【請求項１４】
前記少なくとも1つのプロセッサが、前記任意のパラメータのうちの1つに対して、前記会話入力に基づいて解決可能である、任意の値がないと決定するようにさらに構成され、
全ての前記必須のパラメータに対する前記値が解決可能ではないと決定された場合、前記全ての前記必須のパラメータに対する値が解決されるまで、パラメータ収集ダイアログを実行するステップにおいて、前記少なくとも1つのプロセッサが、
前記パラメータ収集ダイアログの間、前記任意のパラメータのうちの前記1つに対する任意の値を解決することなく、全ての前記必須のパラメータに対する前記値を解決するように構成され、
前記パラメータ収集ダイアログを実行した後に、全ての前記必須のパラメータに対する前記値に基づく前記アクションの実行を開始するステップにおいて、前記少なくとも1つのプロセッサが、
前記任意のパラメータのうちの前記1つに対する任意の値を用いずに、全ての前記必須のパラメータに対する前記値に基づく前記アクションの実行を開始するように構成される、
請求項９に記載のシステム。
【請求項１５】
前記アクションが、前記クライアント・デバイスによって、または前記クライアント・デバイスと通信するサーバによって、実行される、
請求項９に記載のシステム。
【請求項１６】
前記アクションが、アプリケーション・プログラミング・インタフェース(API)固有応答を含む、
請求項１５に記載のシステム。
【請求項１７】
自然会話ダイアログ・システムのための方法を1つまたは複数のプロセッサに実行させるための命令を記憶しているプロセッサ可読記憶媒体であって、前記方法は、
ダイアログ・システムのためのダイアログ・エージェントを作成する開発者からのユーザ・インタフェース入力に基づいて、
前記ダイアログ・エージェントのダイアログ・システム・インテント、
前記ダイアログ・システム・インテントのための複数のパラメータ、
前記パラメータの各々に対して、前記ダイアログ・システム・インテントのための必須のパラメータ、または前記ダイアログ・システム・インテントのための任意のパラメータであるかどうか、および
前記ダイアログ・システム・インテントがトリガされかつ少なくとも前記必須のパラメータのための値が解決された場合に実行されるべきアクションを決定するステップであって、前記アクションが、前記解決された値に基づいて実行される、ステップと、
前記ダイアログ・システム・インテントを前記アクションに関連付けるとともに、
前記パラメータを、前記ダイアログ・システム・インテントと、当該パラメータが必須のパラメータまたは任意のパラメータであるかどうかの指示とに関連付けるステップと、
前記関連付けに続いて、
クライアント・デバイスのダイアログ・システム・インタフェースを介して提供された会話入力を受信するステップであって、前記ダイアログ・システム・インタフェースが、前記ダイアログ・システムに関連付けられる、ステップと、
前記会話入力の処理に基づいて、前記ダイアログ・エージェントの前記ダイアログ・システム・インテントを起動することを決定するステップと、
前記ダイアログ・エージェントの前記ダイアログ・システム・インテントの起動に応答して、
前記ダイアログ・システム・インテントのための全ての前記必須のパラメータに対する値が、パラメータ収集ダイアログを開始することなく全て解決可能であるかどうかを決定するステップと、
全ての前記必須のパラメータに対する前記値が前記パラメータ収集ダイアログを開始することなく解決可能であると決定された場合、
前記パラメータ収集ダイアログを開始することなく、全ての前記必須のパラメータに対する前記値に基づく前記アクションの実行を開始するステップと、
全ての前記必須のパラメータに対する値が前記パラメータ収集ダイアログを開始しない限り解決可能ではないと決定された場合、
全ての前記必須のパラメータに対する値が解決されるまで、パラメータ収集ダイアログを実行するステップと、
前記パラメータ収集ダイアログを実行した後に、全ての前記必須のパラメータに対する前記値に基づく前記アクションの実行を開始するステップとを含む、
プロセッサ可読記憶媒体。
【外国語明細書】
2020161153000001.pdf