(57)【特許請求の範囲】
【請求項１】
ユーザの発言に関する発言情報を取得する取得手段と、
前記発言情報が取得された場合に、当該発言情報が示す発言に対する返答に関する返答情報であって、返答内容の蓋然性に関する蓋然性情報を含む返答情報を生成する複数の対話手段と、
前記複数の対話手段のうちの少なくとも１つの前記返答情報を出力させる出力制御手段と、
前記複数の対話手段の各々の前記返答情報に含まれる前記蓋然性情報に基づいて、前記出力制御手段に出力させる前記返答情報を決定する決定手段と、
を含み、
前記取得手段による前記発言情報の取得と、前記出力制御手段による前記返答情報の出力と、が繰り返されることで対話が進行し、
前記複数の対話手段の各々は、前記出力制御手段により出力された他の前記対話手段の前記返答情報に含まれる前記蓋然性情報に基づいて、前記ユーザの反応を待たずに新たな返答情報を生成するか否かを決定する、
ことを特徴とする対話制御システム。
【請求項２】
ユーザの発言に関する発言情報を取得する取得手段と、
前記発言情報が取得された場合に、当該発言情報が示す発言に対する返答に関する返答情報を生成する複数の対話手段と、
前記複数の対話手段のうちの少なくとも１つの前記返答情報を出力させる出力制御手段と、
を含み、
前記取得手段による前記発言情報の取得と、前記出力制御手段による前記返答情報の出力と、が繰り返されることで対話が進行し、
前記複数の対話手段の各々は、商品又はサービスに関するデータベースが関連付けられており、
前記複数の対話手段の各々は、自身に関連付けられた前記データベースに基づいて、前記出力制御手段により出力された他の前記対話手段により提案された前記商品又は前記サービスと関連する前記商品又は前記サービスを前記ユーザに提案するための前記新たな返答情報を生成する、
ことを特徴とする対話制御システム。
【請求項３】
ユーザの発言に関する発言情報を取得する取得手段と、
前記発言情報が取得された場合に、当該発言情報が示す発言に対する返答に関する返答情報を生成する複数の対話手段と、
前記複数の対話手段のうちの少なくとも１つの前記返答情報を出力させる出力制御手段と、
を含み、
前記取得手段による前記発言情報の取得と、前記出力制御手段による前記返答情報の出力と、が繰り返されることで対話が進行し、
前記複数の対話手段の各々は、前記出力制御手段により出力された他の前記対話手段の前記返答情報に基づいて、新たな返答情報を生成し、
前記対話制御システムは、前記複数の対話手段の各々によって商品又はサービスの組み合わせが前記ユーザに提案された後の前記発言情報に基づいて、当該組み合わせを前記ユーザに提供するための処理を実行する実行手段、
を更に含むことを特徴とする対話制御システム。
【請求項４】
前記複数の対話手段の各々は、前記出力制御手段により出力された返答情報に対する前記発言情報に更に基づいて、前記新たな返答情報を生成する、
ことを特徴とする請求項１〜３の何れかに記載の対話制御システム。
【請求項５】
前記複数の対話手段の各々は、前記対話が進行して前記発言情報が取得された場合に、前記蓋然性情報を更新する、
ことを特徴とする請求項１に記載の対話制御システム。
【請求項６】
前記対話制御システムは、
所定の開始条件が満たされた場合に、前記対話が開始したと判定する開始判定手段と、
所定の終了条件が満たされた場合に、前記対話が終了したと判定する終了判定手段と、
を更に含み、
前記複数の対話手段の各々は、前記開始判定手段が開始したと判定してから、前記終了判定手段が終了したと判定するまでの間の任意の期間における前記他の対話手段の前記返答情報に基づいて、前記新たな返答情報を生成する、
ことを特徴とする請求項１〜５の何れかに記載の対話制御システム。
【請求項７】
前記複数の対話手段の各々は、前記出力制御手段により出力された前記返答情報を生成した前記他の対話手段と自身との関係に基づいて、前記新たな返答情報を生成する、
ことを特徴とする請求項１〜６の何れかに記載の対話制御システム。
【請求項８】
前記取得手段は、音声入力手段により検出された前記ユーザの音声に基づいて、前記発言情報を取得する、
ことを特徴とする請求項１〜７の何れかに記載の対話制御システム。
【請求項９】
ユーザの発言に関する発言情報を取得する取得ステップと、
前記発言情報が取得された場合に、当該発言情報が示す発言に対する返答に関する返答情報であって、返答内容の蓋然性に関する蓋然性情報を含む返答情報を生成する複数の対話手段のうちの少なくとも１つの前記返答情報を出力させる出力ステップと、
前記複数の対話手段の各々の前記返答情報に含まれる前記蓋然性情報に基づいて、前記出力ステップにおいて出力される前記返答情報を決定する決定ステップと、
を含み、
前記取得ステップによる前記発言情報の取得と、前記出力ステップによる前記返答情報の出力と、が繰り返されることで対話が進行し、
前記複数の対話手段の各々により、前記出力ステップにより出力された他の前記対話手段の前記返答情報に含まれる前記蓋然性情報に基づいて、前記ユーザの反応を待たずに新たな返答情報を生成するか否かを決定するステップ、
を更に含むことを特徴とする対話制御方法。
【請求項１０】
ユーザの発言に関する発言情報を取得する取得ステップと、
前記発言情報が取得された場合に、当該発言情報が示す発言に対する返答に関する返答情報を生成する複数の対話手段のうちの少なくとも１つの前記返答情報を出力させる出力ステップと、
を含み、
前記取得ステップによる前記発言情報の取得と、前記出力ステップによる前記返答情報の出力と、が繰り返されることで対話が進行し、
前記複数の対話手段の各々は、商品又はサービスに関するデータベースが関連付けられており、
前記複数の対話手段の各々は、自身に関連付けられた前記データベースに基づいて、前記出力ステップにより出力された他の前記対話手段により提案された前記商品又は前記サービスと関連する前記商品又は前記サービスを前記ユーザに提案するための前記新たな返答情報を生成する、
ことを特徴とする対話制御方法。
【請求項１１】
ユーザの発言に関する発言情報を取得する取得ステップと、
前記発言情報が取得された場合に、当該発言情報が示す発言に対する返答に関する返答情報を生成する複数の対話手段のうちの少なくとも１つの前記返答情報を出力させる出力ステップと、
を含み、
前記取得ステップによる前記発言情報の取得と、前記出力ステップによる前記返答情報の出力と、が繰り返されることで対話が進行し、
前記複数の対話手段の各々は、前記出力ステップにおいて出力された他の前記対話手段の前記返答情報に基づいて、新たな返答情報を生成し、
前記複数の対話手段の各々によって商品又はサービスの組み合わせが前記ユーザに提案された後の前記発言情報に基づいて、当該組み合わせを前記ユーザに提供するための処理を実行する実行ステップ、
を更に含むことを特徴とする対話制御方法。
【請求項１２】
ユーザの発言に関する発言情報を取得する取得手段、
前記発言情報が取得された場合に、当該発言情報が示す発言に対する返答に関する返答情報であって、返答内容の蓋然性に関する蓋然性情報を含む返答情報を生成する複数の対話手段のうちの少なくとも１つの前記返答情報を出力させる出力制御手段、
前記複数の対話手段の各々の前記返答情報に含まれる前記蓋然性情報に基づいて、前記出力制御手段に出力させる前記返答情報を決定する決定手段、
としてコンピュータを機能させるためのプログラムであって、
前記取得手段による前記発言情報の取得と、前記出力制御手段による前記返答情報の出力と、が繰り返されることで対話が進行し、
前記複数の対話手段の各々は、前記出力制御手段により出力された他の前記対話手段の前記返答情報に含まれる前記蓋然性情報に基づいて、前記ユーザの反応を待たずに新たな返答情報を生成するか否かを決定する、
プログラム。
【請求項１３】
ユーザの発言に関する発言情報を取得する取得手段、
前記発言情報が取得された場合に、当該発言情報が示す発言に対する返答に関する返答情報を生成する複数の対話手段のうちの少なくとも１つの前記返答情報を出力させる出力制御手段、
としてコンピュータを機能させるためのプログラムであって、
前記取得手段による前記発言情報の取得と、前記出力制御手段による前記返答情報の出力と、が繰り返されることで対話が進行し、
前記複数の対話手段の各々は、商品又はサービスに関するデータベースが関連付けられており、
前記複数の対話手段の各々は、自身に関連付けられた前記データベースに基づいて、前記出力制御手段により出力された他の前記対話手段により提案された前記商品又は前記サービスと関連する前記商品又は前記サービスを前記ユーザに提案するための前記新たな返答情報を生成する、
プログラム。
【請求項１４】
ユーザの発言に関する発言情報を取得する取得手段、
前記発言情報が取得された場合に、当該発言情報が示す発言に対する返答に関する返答情報を生成する複数の対話手段のうちの少なくとも１つの前記返答情報を出力させる出力制御手段、
としてコンピュータを機能させるためのプログラムであって、
前記取得手段による前記発言情報の取得と、前記出力制御手段による前記返答情報の出力と、が繰り返されることで対話が進行し、
前記複数の対話手段の各々は、前記出力制御手段により出力された他の前記対話手段の前記返答情報に基づいて、新たな返答情報を生成し、
前記コンピュータを、前記複数の対話手段の各々によって商品又はサービスの組み合わせが前記ユーザに提案された後の前記発言情報に基づいて、当該組み合わせを前記ユーザに提供するための処理を実行する実行手段、
として更に機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対話制御システム、対話制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、ユーザとコンピュータとの間での対話を実現する技術が知られている。例えば、特許文献１には、ユーザの発言内容を解析し、当該発言内容を取得したエージェントが、ユーザの嗜好などのユーザ関連情報に基づいて、返答内容を決定するシステムが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１４８１１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のような技術では、システム上に複数のエージェントを用意しておき、ユーザの発言内容に合ったエージェントに返答させることも考えられる。しかしながら、この場合、特許文献１のようにユーザ関連情報を利用したとしても、各エージェントは、ユーザの発言内容とユーザ関連情報とに基づいて独自の返答をするだけなので、他のエージェントとの兼ね合いで対話の流れに合った返答をすることは困難である。【０００５】
この点、各エージェントは、例えば、ユーザから他のエージェントとの対話の内容を教えてもらえば、一応は、他のエージェントとの兼ね合いで対話の流れに合った返答をすることができる。しかしながら、この場合、ユーザは、各エージェントに対し、他のエージェントとの対話の内容をいちいち伝えなければならないので、ユーザに負担がかかってしまう。【０００６】
本発明は上記課題に鑑みてなされたものであって、その目的は、ユーザの負担を軽減することが可能な対話制御システム、対話制御方法、及びプログラムを提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明に係る対話制御システムは、ユーザの発言に関する発言情報を取得する取得手段と、前記発言情報が取得された場合に、当該発言情報が示す発言に対する返答に関する返答情報を生成する複数の対話手段と、前記複数の対話手段のうちの少なくとも１つの前記返答情報を出力させる出力制御手段と、を含み、前記取得手段による前記発言情報の取得と、前記出力制御手段による前記返答情報の出力と、が繰り返されることで対話が進行し、前記複数の対話手段の各々は、前記出力制御手段により出力された他の前記対話手段の前記返答情報に基づいて、新たな返答情報を生成する、ことを特徴とする。【０００８】
本発明に係る対話制御方法は、ユーザの発言に関する発言情報を取得する取得ステップと、前記発言情報が取得された場合に、当該発言情報が示す発言に対する返答に関する返答情報を生成する複数の対話手段のうちの少なくとも１つの前記返答情報を出力させる出力制御ステップと、を含み、前記取得ステップによる前記発言情報の取得と、前記出力ステップによる前記返答情報の出力と、が繰り返されることで対話が進行し、前記複数の対話手段の各々により、前記出力ステップにより出力された他の前記対話手段の前記返答情報に基づいて、新たな返答情報を生成するステップ、を更に含むことを特徴とする。【０００９】
本発明に係るプログラムは、ユーザの発言に関する発言情報を取得する取得手段、前記発言情報が取得された場合に、当該発言情報が示す発言に対する返答に関する返答情報を生成する複数の対話手段、前記複数の対話手段のうちの少なくとも１つの前記返答情報を出力させる出力制御手段、としてコンピュータを機能させるためのプログラムであって、前記取得手段による前記発言情報の取得と、前記出力制御手段による前記返答情報の出力と、が繰り返されることで対話が進行し、前記複数の対話手段の各々は、前記出力制御手段により出力された他の前記対話手段の前記返答情報に基づいて、新たな返答情報を生成する。【００１０】
また、本発明の一態様では、前記複数の対話手段の各々は、前記出力制御手段により出力された返答情報に対する前記発言情報に更に基づいて、前記新たな返答情報を生成する、ことを特徴とする。【００１１】
また、本発明の一態様では、前記返答情報は、返答内容の蓋然性に関する蓋然性情報を含み、前記対話制御システムは、前記複数の対話手段の各々の前記返答情報に含まれる前記蓋然性情報に基づいて、前記出力制御手段に出力させる前記返答情報を決定する決定手段、を更に含むことを特徴とする。【００１２】
また、本発明の一態様では、前記複数の対話手段の各々は、前記対話が進行して前記発言情報が取得された場合に、前記蓋然性情報を更新する、ことを特徴とする。【００１３】
また、本発明の一態様では、前記複数の対話手段の各々は、前記出力制御手段により出力された前記他の対話手段の前記返答情報に含まれる前記蓋然性情報に基づいて、前記ユーザの反応を待たずに前記新たな返答情報を生成するか否かを決定する、ことを特徴とする。【００１４】
また、本発明の一態様では、前記対話制御システムは、所定の開始条件が満たされた場合に、前記対話が開始したと判定する開始判定手段と、所定の終了条件が満たされた場合に、前記対話が終了したと判定する終了判定手段と、を更に含み、前記複数の対話手段の各々は、前記開始判定手段が開始したと判定してから、前記終了判定手段が終了したと判定するまでの間の任意の期間における前記他の対話手段の前記返答情報に基づいて、前記新たな返答情報を生成する、ことを特徴とする。【００１５】
また、本発明の一態様では、前記複数の対話手段の各々は、前記出力制御手段により出力された前記返答情報を生成した前記他の対話手段と自身との関係に基づいて、前記新たな返答情報を生成する、ことを特徴とする。【００１６】
また、本発明の一態様では、前記複数の対話手段の各々は、商品又はサービスに関するデータベースが関連付けられており、前記複数の対話手段の各々は、自身に関連付けられた前記データベースに基づいて、前記他の対話手段とは異なる前記商品又は前記サービスを前記ユーザに提案するための前記新たな返答情報を生成する、ことを特徴とする。【００１７】
また、本発明の一態様では、前記複数の対話手段の各々は、前記他の対話手段により提案された前記商品又は前記サービスと関連する前記商品又は前記サービスを前記ユーザに提案するための前記新たな返答情報を生成する、ことを特徴とする。【００１８】
また、本発明の一態様では、前記対話制御システムは、前記複数の対話手段の各々によって商品又は前記サービスの組み合わせが前記ユーザに提案された後の前記発言情報に基づいて、当該組み合わせを前記ユーザに提供するための処理を実行する実行手段、を更に含むことを特徴とする。【００１９】
また、本発明の一態様では、前記取得手段は、音声入力手段により検出された前記ユーザの音声に基づいて、前記発言情報を取得する、ことを特徴とする。
【発明の効果】
【００２０】
本発明によれば、ユーザの負担を軽減することが可能になる。
【図面の簡単な説明】
【００２１】
【図１】対話制御システムの全体構成を示す図である。
【図２】仮想市場画面の一例を示す図である。
【図３】ユーザとエージェントとの間で対話が行われる様子を示す図である。
【図４】ユーザの反応によってエージェントの返答内容が変わる様子を示す図である。
【図５】対話制御システムで実現される機能の一例を示す機能ブロック図である。
【図６】仮想市場データベースの一例を示す図である。
【図７】商品データベースの一例を示す図である。
【図８】対話データベースの一例を示す図である。
【図９】定型文データベースの一例を示す図である。
【図１０】返答データベースの一例を示す図である。
【図１１】対話制御システムにおいて実行される処理の一例を示すフロー図である。
【図１２】対話制御システムにおいて実行される処理の一例を示すフロー図である。
【図１３】Ｓ３０７において実行される返答情報生成処理の詳細を示す図である。
【発明を実施するための形態】
【００２２】
［１．対話制御システムの全体構成］
以下、本発明に関わる対話制御システムの実施形態の例を説明する。図１は、対話制御システムの全体構成を示す図である。図１に示すように、対話制御システムＳは、ユーザ端末１０とサーバ３０とを含む。ユーザ端末１０とサーバ３０は、インターネットなどのネットワークに接続可能である。
【００２３】
なお、図１では、ユーザ端末１０とサーバ３０を１台ずつ示しているが、対話制御システムＳは、複数のユーザ端末１０を含んでもよいし、複数のサーバ３０を含んでもよい。また、対話制御システムＳは、ユーザ端末１０とサーバ３０以外のコンピュータを含んでもよい。
【００２４】
ユーザ端末１０は、ユーザが操作するコンピュータである。例えば、ユーザ端末１０は、スマートフォンなどの携帯電話、タブレット型コンピュータなどの携帯端末、パーソナルコンピュータ、又はスマートスピーカ（ＡＩスピーカ）等である。図１に示すように、対話制御システムＳは、制御部１１、記憶部１２、通信部１３、操作部１４、表示部１５、音声入力部１６、及び音声出力部１７を含む。
【００２５】
制御部１１は、少なくとも一つのマイクロプロセッサを含む。制御部１１は、記憶部１２に記憶されたプログラムやデータに従って処理を実行する。記憶部１２は、主記憶部及び補助記憶部を含む。例えば、主記憶部はＲＡＭなどの揮発性メモリであり、補助記憶部は、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、又はハードディスクなどの不揮発性メモリである。
【００２６】
通信部１３は、有線通信又は無線通信用の通信インタフェースであり、ネットワークを介してデータ通信を行う。操作部１４は、入力デバイスであり、例えば、タッチパネルやマウス等のポインティングデバイス、キーボード、又はボタン等である。操作部１４は、ユーザによる操作内容を制御部１１に伝達する。
【００２７】
表示部１５は、液晶表示部又は有機ＥＬ表示部等である。表示部１５は、制御部１１の指示に従って画面を表示する。音声入力部１６は、少なくとも１つのマイクを含む。音声入力部１６は、音声を検出してデジタルデータに変換する。音声出力部１７は、少なくとも１つのスピーカを含む。音声出力部１７は、音声データに基づいて音声を出力する。なお、音声データは、任意のデータ形式を適用可能であり、例えば、ＨＥ−ＡＡＣ、ＭＰ３、Ｖｏｒｂｉｓ、ＷＡＶ、又はＦＬＡＣといった形式を適用可能である。
【００２８】
サーバ３０は、サーバコンピュータである。例えば、サーバ３０は、制御部３１、記憶部３２、及び通信部３３を含む。制御部３１、記憶部３２、及び通信部３３のハードウェア構成は、それぞれ制御部１１、記憶部１２、及び通信部１３と同様のため説明を省略する。
【００２９】
なお、記憶部１２，３２に記憶されるものとして説明するプログラム及びデータは、ネットワークを介して供給されるようにしてもよい。また、ユーザ端末１０及びサーバ３０のハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部（例えば、光ディスクドライブやメモリカードスロット）や外部機器とデータの入出力をするための入出力部（例えば、ＵＳＢポート）が含まれていてもよい。例えば、情報記憶媒体に記憶されたプログラムやデータが読取部や入出力部を介して供給されるようにしてもよい。
【００３０】
［２．対話制御システムの概要］
対話制御システムＳでは、ユーザは、対話型のエージェントと対話する。エージェントは、所定のタスクを実行するソフトウェアであり、ユーザの入力内容に基づいてタスクを実行する。対話側のエージェントは、ユーザと対話することでタスクを実行するエージェントであり、ユーザの発言内容を入力にしてタスクを実行する。ユーザは、音声入力を利用して発言してもよいし、テキスト入力を利用して発言してもよい。同様に、エージェントは、音声を利用して返答してもよいし、テキスト又は画像を利用して返答してもよい。
【００３１】
エージェントが実行するタスクは、任意の内容であってよく、例えば、商品の購入を支援するタスク、サービスの利用を支援するタスク、ウェブサイト・音楽・画像などのコンテンツの検索を支援するタスク、又は、単にユーザの話し相手となるタスクであってもよい。
【００３２】
本実施形態では、インターネットにおける商品の購入を支援するタスクを実行するエージェントを例に挙げて説明する。例えば、ユーザがユーザ端末１０を操作してサーバ３０にアクセスすると、インターネット上の仮想市場を示す仮想市場画面が表示部１５に表示される。
【００３３】
図２は、仮想市場画面の一例を示す図である。なお、ここでは、ユーザ端末１０がスマートフォンである場合を例に挙げて説明する。図２に示すように、仮想市場画面Ｇには、仮想空間における仮想市場の様子が表示される。例えば、仮想空間には、複数の店舗の３次元モデルが配置されており、ユーザは仮想空間内を移動可能である。
【００３４】
仮想市場画面Ｇには、エージェントを示すエージェント画像Ａ１，Ａ２が表示される。以降では、エージェント画像Ａ１，Ａ２を特に区別する必要のないときは、単にエージェント画像Ａと記載する。本実施形態では、仮想市場内の店舗ごとにエージェントが用意されており、エージェント画像Ａは、各店舗の店員を模した画像となっている。例えば、エージェント画像Ａは、実在の人物の画像であってもよいし、架空のキャラクタの画像であってもよい。
【００３５】
図２の仮想市場画面Ｇは、仮想市場内の魚屋と八百屋の前に、ユーザが仮想的に立った状態を示している。例えば、エージェント画像Ａ１は、魚屋のエージェントを示し、エージェント画像Ａ２は、八百屋のエージェントを示す。この状態でユーザが何らかの発言をすると、何れかのエージェントが、商品の購入を支援するために返答する。
【００３６】
図３は、ユーザとエージェントとの間で対話が行われる様子を示す図である。図３に示すように、例えば、ユーザが「今の時期のおすすめは何？」と発言すると（図３のＳ１）、ユーザ端末１０は、音声入力部１６が検出した音声データをサーバ３０に送信する。サーバ３０は、受信した音声データを解析してテキストデータに変換すると、魚屋のエージェントと八百屋のエージェントにテキストデータを入力する。
【００３７】
各エージェントは、入力されたテキストデータに基づいて、返答内容と蓋然性を計算する。返答内容は、エージェントに対応する店舗の商品に関する内容となる。例えば、魚屋のエージェントであれば、魚屋が取り扱う魚に関する内容となり、八百屋のエージェントであれば、八百屋が取り扱う野菜に関する内容となる。
【００３８】
蓋然性は、例えば、ユーザが商品を欲する確率であり、返答内容の精度とうこともできる。別の言い方をすれば、蓋然性は、ユーザが興味を湧く返答になっている確率である。本実施形態では、返答内容が商品の内容なので、蓋然性が高いほど、返答内容が示す商品を欲する確率が高く、蓋然性が低いほど当該確率が低い。
【００３９】
ここでは、「今」「時期」「おすすめ」といった単語を含むテキストデータが入力されたので、例えば、各エージェントは、これらの単語を検索キーワードにして、自身に対応する店舗の商品を検索し、検索時に算出した各商品のスコアを蓋然性として取得する。スコアは、キーワードの適合度であり、検索精度を示す情報ということもできる。スコアが高いほど検索キーワードに適合し、スコアが低いほど検索キーワードに適合していない。
【００４０】
例えば、魚屋のエージェントは、魚屋の商品データベースＤＢ２を検索し、商品説明の中にスコアの高い「スズキ」という商品がヒットしたとする。この場合、魚屋エージェントは、この商品名を含む「スズキはいかがでしょうか？」といった返答内容を生成し、スコアが高いので蓋然性も高く設定する。
【００４１】
一方、八百屋エージェントは、八百屋の商品データベースＤＢ２を検索したが、あまりスコアの高い商品がヒットしなかったとする。この場合、八百屋エージェントは、何らかの返答内容を生成するが、スコアが低いので蓋然性も低く設定する。なお、ここでは、各エージェントは、蓋然性が低くても返答内容を返す場合を説明するが、蓋然性が閾値未満の場合には、返答内容を返さないようにしてもよい。
【００４２】
サーバ３０は、各エージェントから返答内容と蓋然性を取得すると、蓋然性が高い方（ここでは、魚屋のエージェント）の返答内容を示す音声データを生成する。サーバ３０は、音声データをユーザ端末１０に送信し、魚屋のエージェントの返答として、「スズキはいかがでしょうか？」といった音声がユーザ端末１０の音声出力部１７から出力される（図３のＳ２）。
【００４３】
これに対し、例えば、ユーザが「スズキか。いいね。」といった返答をしたとすると（図３のＳ３）、この返答内容を示すテキストデータが各エージェントに入力される。各エージェントは、今回の返答内容だけでなく、それまでの対話の流れも考慮して、次の返答内容と蓋然性を計算する。ここでは、各エージェントは、魚屋のエージェントが「スズキはいかがでしょうか？」といった返答をしているので、この返答内容も考慮する。
【００４４】
例えば、魚屋エージェントは、「スズキ」と一緒に提案すべき商品を検索するが、魚屋の商品データベースＤＢ２の中に、このような商品が存在しなかったとする。この場合、魚屋エージェントは、何らかの返答内容を決定するが、商品がヒットしていないので蓋然性を低く設定する。
【００４５】
一方、八百屋エージェントは、「スズキ」と一緒に提案すべき商品を検索する。例えば、「スズキのトマトスープ」という料理で使用される「トマト」が、「スズキ」と一緒に提案すべき商品として定義されており、八百屋の商品データベースＤＢ２の中に、この商品が存在したとする。この場合、八百屋エージェントは、この商品名を含む「トマトもご一緒にいかがでしょうか？」といった返答内容を生成し、商品がヒットしたので蓋然性を高く設定する。
【００４６】
サーバ３０は、各エージェントの返答内容と蓋然性を取得すると、蓋然性が高い方（ここでは、八百屋のエージェント）の返答内容を示す音声データを生成する。サーバ３０は、音声データをユーザ端末１０に送信し、八百屋のエージェントの返答として、「トマトもご一緒にいかがでしょうか？」といった音声がユーザ端末１０の音声出力部１７から出力される（図３のＳ４）。
【００４７】
これに対し、例えば、ユーザは「よし、両方とも買おう。」といった返答をしたとすると（図３のＳ５）、「買おう」という購入の意志を示す単語を含むテキストデータが入力されたので、各エージェントは、自身がオススメした商品をユーザの買い物かごに追加し、「ありがとうございます。」といった返答内容が出力される（図３のＳ６）。この場合、ユーザの買い物かごには、魚屋の「スズキ」と、八百屋の「トマト」と、が追加される。以降、ユーザは、買い物かごに入ったこれらの商品を購入することができる。
【００４８】
以上説明した例では、魚屋エージェントがすすめた「スズキ」という商品をユーザが肯定した場合を説明したが、ユーザの反応によっては、その後のエージェントの返答内容が変わる。
【００４９】
図４は、ユーザの反応によってエージェントの返答内容が変わる様子を示す図である。図４の例では、ユーザが「今の時期のおすすめは何？」と発言すると（図４のＳ１０）、魚屋エージェントが「スズキはいかがでしょうか？」と返答する（図４のＳ１１）ところまでは、図３と同様とする。
【００５０】
これに対し、ユーザが「うーん。他にないの？」といった返答をしたとする（図３のＳ１２）。この場合、図３の例とは異なり、魚屋エージェントが提案した「スズキ」という商品をユーザが否定しているので、各エージェントは、ユーザの反応を考慮して、次の返答内容と蓋然性を計算する。
【００５１】
例えば、魚屋エージェントは、「スズキ」とはタイプの異なる商品を検索し、魚屋の商品データベースＤＢ２の中に、「マグロ」という商品が存在したとする。この場合、魚屋エージェントは、この商品名を含む「では、マグロはいかがでしょうか？」といった返答内容を生成し、商品がヒットしたので蓋然性を高く設定する。
【００５２】
一方、八百屋エージェントは、「スズキ」とはタイプの異なる商品を検索するが、八百屋の商品データベースＤＢ２には、このような商品が存在しなかったとする。この場合、魚屋エージェントは、何らかの返答内容を決定するが、商品がヒットしていないので蓋然性を低く設定する。
【００５３】
サーバ３０は、各エージェントの返答内容と蓋然性を取得すると、蓋然性が高い方（ここでは、魚屋のエージェント）の返答内容を示す音声データを生成する。サーバ３０は、音声データをユーザ端末１０に送信し、魚屋のエージェントの返答として、「では、マグロはいかがでしょうか？」といった音声がユーザ端末１０の音声出力部１７から出力される（図３のＳ１３）。
【００５４】
これに対し、例えば、ユーザが「それにする！」といった返答をしたとすると（図３のＳ１４）、各エージェントは、今回の「それにする！」という返答内容だけでなく、それまでの対話の流れも考慮して、次の返答内容と蓋然性を計算する。ここでは、魚屋のエージェントによって「では、マグロはいかがでしょうか？」といった返答がなされているので、この返答内容も考慮されることになる。なお、魚屋のエージェントによる「スズキはいかがでしょうか？」といった返答も考慮されてもよいが、ここでは、ユーザから否定的な反応が返ってきているので考慮されないものとする。
【００５５】
例えば、魚屋エージェントは、「マグロ」と一緒に提案すべき商品を検索するが、魚屋の商品データベースＤＢ２の中に、このような商品が存在しなかったとする。この場合、魚屋エージェントは、何らかの返答内容を決定するが、商品がヒットしていないので蓋然性を低く設定する。
【００５６】
一方、八百屋エージェントは、「マグロ」と一緒に提案すべき商品を検索する。例えば、「マグロとキュウリのアヒポキ」という料理で使用される「キュウリ」が、「マグロ」と一緒に提案すべき商品として定義されており、八百屋の商品データベースＤＢ２の中に、この商品が存在したとする。この場合、八百屋エージェントは、「キュウリ」の名称を含む「キュウリもご一緒にいかがでしょうか？」といった返答内容を生成し、商品がヒットしたので蓋然性を高く設定する。
【００５７】
サーバ３０は、各エージェントの返答内容と蓋然性を取得すると、蓋然性が高い方（ここでは、八百屋のエージェント）の返答内容を示す音声データを生成する。サーバ３０は、音声データをユーザ端末１０に送信し、八百屋のエージェントの返答として、「キュウリもご一緒にいかがでしょうか？」といった音声がユーザ端末１０の音声出力部１７から出力される（図３のＳ１５）。以降、ユーザが購入の意志を示した場合に、「マグロ」と「キュウリ」が買い物かごに追加される点については、図３と同様である。
【００５８】
なお、図３及び図４の例では、魚屋のエージェントが提案した商品に対し、ユーザが反応を示した後に、八百屋のエージェントが商品を提案する場合を説明したが、八百屋のエージェントは、特にユーザの反応を待たずに商品を提案してもよい。
【００５９】
例えば、図２及び図３の例において、魚屋のエージェントが「スズキはいかがでしょうか？」と提案した直後に、八百屋のエージェントが「トマトもご一緒にいかがでしょうか？」と続けて提案してもよい。また例えば、図３の例において、魚屋のエージェントが「では、マグロはいかがでしょうか？」と提案した直後に、八百屋のエージェントが「キュウリもご一緒にいかがでしょうか？」と続けて提案してもよい。
【００６０】
更に、八百屋のエージェントは、魚屋のエージェントの返答の蓋然性に基づいて、ユーザの反応を待たずに商品を提案するか否かを決定してもよい。例えば、魚屋のエージェントの返答内容の蓋然性が閾値以上の場合には、ユーザが肯定する確率が極めて高いことになるので、八百屋のエージェントは、特にユーザの反応を待たずに商品をすすめるようにしてもよい。一方、魚屋のエージェントの返答内容の蓋然性が閾値未満の場合には、ユーザが肯定する確率がさほど高くないことになるので、八百屋のエージェントは、ユーザの反応を待つようにしてもよい。
【００６１】
以上のように、本実施形態の対話制御システムＳは、ユーザと複数のエージェントとの間で対話が行われる場合に、各エージェントが、直近のユーザの発言や自身の返答内容だけでなく、他のエージェントの返答内容も考慮して返答内容を生成することにより、対話の流れに合った返答をする場合のユーザの負担を軽減するようにしている。以降、この技術の詳細を説明する。
【００６２】
［３．対話制御システムにおいて実現される機能］
図５は、対話制御システムＳで実現される機能の一例を示す機能ブロック図である。図５に示すように、対話制御システムＳでは、データ記憶部３００、取得部３０１、開始判定部３０２、終了判定部３０３、複数の対話部３０４、決定部３０５、出力制御部３０６、及び実行部３０７が実現される。本実施形態では、これら各機能がサーバ３０で実現される場合を説明する。なお、図５では、対話部３０４を２つ示しているが、対話部３０４は、３つ以上であってもよい。
【００６３】
［３−１．データ記憶部］
データ記憶部３００は、記憶部３２を主として実現される。データ記憶部３００は、ユーザと対話するために必要なデータを記憶する。ここでは、データ記憶部３００が記憶するデータの一例として、仮想市場データベースＤＢ１、商品データベースＤＢ２、対話データベースＤＢ３、定型文データベースＤＢ４、及び返答データベースＤＢ５を説明する。
【００６４】
図６は、仮想市場データベースＤＢ１の一例を示す図である。図６に示すように、仮想市場データベースＤＢ１は、仮想市場の店舗に関する情報を格納するためのデータベースである。例えば、仮想市場データベースＤＢ１には、店舗を一意に識別する店舗ＩＤ、店舗の基本情報、店舗のエージェントを一意に識別するエージェントＩＤ、及び仮想３次元空間における店舗の３次元モデルに関する３次元モデル情報などが格納される。
【００６５】
基本情報は、インターネット上の店舗に関する情報であればよく、例えば、店舗名、運営会社名、住所、電話番号、メールアドレスといった情報である。３次元モデル情報は、例えば、仮想３次元空間における店舗の位置、店舗の３次元モデル、店員の３次元モデル、及びこれらにマッピングするテクスチャなどの情報である。
【００６６】
図７は、商品データベースＤＢ２の一例を示す図である。図７に示すように、商品データベースＤＢ２は、各店舗の商品に関する情報を格納するためのデータベースである。ここでは、店舗ごとに、商品データベースＤＢ２が用意されている場合を説明するが、全店舗で共通の商品データベースＤＢ２としてもよい。
【００６７】
図７では、仮想市場における魚屋の商品データベースＤＢ２を例に挙げているが、他の店舗の商品データベースＤＢ２も同様のデータ構造である。例えば、商品データベースＤＢ２には、店舗ＩＤ、商品を一意に識別する商品ＩＤ、及び商品情報が格納される。
【００６８】
商品情報は、商品に関する情報であり、例えば、カテゴリ、商品名、価格、キーワード、商品説明、及び商品画像といった情報が格納される。カテゴリは、商品の分類情報であり、ジャンルとも呼ばれるものである。商品名は、商品の名称であり、例えば、店舗により入力される。価格は、商品の値段を示す数値である。
【００６９】
キーワードは、商品の検索用のキーワードであり、例えば、店舗により入力されてもよいし、商品説明中の単語がキーワードとして抽出されてもよい。商品説明は、商品の説明を示す文章又は表などであり、例えば、店舗により入力される。商品画像は、商品を撮影した画像であってもよいし、商品に似た被写体を撮影した画像であってもよい。なお、商品情報の内容は、上記の例に限られない。商品情報は、商品に関する任意の内容を含むことができ、例えば、商品の特徴を数値化した特徴ベクトルを含んでもよい。
【００７０】
図８は、対話データベースＤＢ３の一例を示す図である。図８に示すように、対話データベースＤＢ３は、ユーザとエージェントとの対話に関する情報を格納するためのデータベースである。例えば、対話データベースＤＢ３には、対話制御システムＳ内で行われている対話を一意に識別する対話ＩＤ、対話中のユーザを一意に識別するユーザＩＤ、及びコンテクスト情報が格納される。
【００７１】
コンテクスト情報は、対話のコンテクストに関する情報である。コンテクストは、対話の一連の流れ（脈絡）であり、対話における発言の履歴ということもできる。例えば、コンテクスト情報には、発言者、発言内容、店舗ＩＤ、商品ＩＤ、及び発言時間といった情報が格納される。コンテクスト情報に含まれる各レコードは、ユーザ又はエージェントの個々の発言を示す。
【００７２】
発言者は、ユーザ又はエージェントの何れか一方なので、例えば、ユーザＩＤ又はエージェントＩＤが格納される。発言内容は、ユーザ又はエージェントの発言内容である。例えば、音声データが変換されたテキストデータが、ユーザの発言内容として格納される。また例えば、エージェントが生成した返答情報が示す返答内容が、エージェントの発言内容として格納される。
【００７３】
店舗ＩＤは、商品を提案したエージェントの店舗の店舗ＩＤである。商品ＩＤは、エージェントが提案した商品の商品ＩＤである。店舗ＩＤと商品ＩＤは、エージェントが商品を提案した場合に格納される。このため、発言者にエージェントＩＤが格納されているレコードに店舗ＩＤと商品ＩＤが格納される。店舗ＩＤと商品ＩＤを格納しておくことにより、ユーザが購入の意志を示した場合に、後述する実行部３０７に、商品を買い物かごに入れる処理を実行させることができる。発言時間は、ユーザ又はエージェントが発言した時間である。発言時間が示すように、コンテクスト情報には、ユーザ又はエージェントの発言が時系列的に格納される。
【００７４】
図９は、定型文データベースＤＢ４の一例を示す図である。図９に示すように、定型文データベースＤＢ４は、返答の定型文に関する情報を格納するためのデータベースである。例えば、定型文データベースＤＢ４には、出力条件と定型文のテキストとが格納される。
【００７５】
出力条件は、定型文を選択するための条件であり、定型文が選択される場面を示す。例えば、出力条件は、直近のユーザの発言内容だけに関する条件であってもよいし、現時点までのコンテクストに関する条件であってもよい。詳細は後述するが、出力条件が満たされるか否かは、コンテクスト情報に基づいて判定される。
【００７６】
図９のデータ格納例であれば、例えば、対話における最初の返答では、「＜商品名＞はいかがでしょうか？」といった定型文が選択される。なお、定型文のうち「＜商品名＞」の部分はタグ情報であり、任意の文字列を挿入可能である。例えば、「＜商品名＞」の部分には、エージェントが検索した商品名が挿入される。なお、定型文に挿入されるのは、商品情報に含まれる情報であればよく、商品名以外にも、商品画像などであってもよい。この場合、エージェントの返答として、商品画像とともに音声が出力されてもよい。
【００７７】
また例えば、直近で提案された商品をユーザが肯定した場合には、「＜商品名＞もご一緒にいかがでしょうか？」といった定型文が選択される。また例えば、直近で提案された商品をユーザが否定した場合には、「では、＜商品名＞はいかがでしょうか？」といった定型文が選択される。また例えば、ユーザが購入の意志を示した場合には、「ありがとうございます。」といった定型文が選択される。
【００７８】
図１０は、返答データベースＤＢ５の一例を示す図である。図１０に示すように、例えば、返答データベースＤＢ５は、ユーザに提案すべき商品に関する情報を格納するためのデータベースである。例えば、返答データベースＤＢ５には、対話のコンテクストに関するコンテクスト条件と、提案すべき商品と、の関係が定義されている。
【００７９】
コンテクスト条件は、対話で登場した商品に関する条件であり、例えば、商品名が格納される。なお、コンテクスト条件は、商品情報に含まれる内容であればよく、商品名以外にも、商品のカテゴリや商品説明内の単語等が格納されていてもよい。このでは、コンテクスト条件は、直近で提案された商品の商品名と、それに対するユーザの反応と、に関する条件である。ユーザの反応は、例えば、肯定、否定、何れでもないといった内容が格納される。詳細は後述するが、コンテクスト条件が満たされるか否かは、コンテクスト情報に基づいて判定される。
【００８０】
提案すべき商品は、コンテクスト条件が満たされた場合に提案すべき商品に関する情報である。当該情報としては、商品情報に含まれる情報であればよく、例えば、カテゴリ、商品名、価格、キーワードなどであってよい。ここでは、提案すべき商品の商品名が格納される場合を説明する。
【００８１】
図１０のデータ格納例であれば、例えば、直近で提案された商品が「スズキ」であり、それに対するユーザの反応が、「いいね」や「よし」といった単語を含む「肯定」のものであれば、提案すべき商品として「トマト」が定義されている。一方、直近で提案された商品が「スズキ」であり、それに対するユーザの反応が、「うーん」や「いやだ」といった単語を含む「否定」のものであれば、提案すべき商品として「マグロ」が定義されている。
【００８２】
また例えば、直近で提案された商品が「マグロ」であり、それに対するユーザの反応が肯定であれば、提案すべき商品として「キュウリ」が定義されている。また例えば、直近で提案された商品が「マグロ」であり、それに対するユーザの反応が否定であれば、提案すべき商品として「アジ」が定義されている。
【００８３】
なお、データ記憶部３００に記憶されるデータは、上記の例に限られない。例えば、データ記憶部３００は、各店舗のエージェントのプログラムを記憶してもよい。また例えば、データ記憶部３００は、ユーザの基本情報に関するユーザデータベースを記憶してもよい。基本情報としては、ユーザＩＤ、ユーザ名、クレジットカード情報などの決済情報、買い物かごに入れている商品の商品ＩＤなどが格納されていてもよい。
【００８４】
また例えば、各データのデータ形式は、上記の例に限られない。例えば、定型文データベースＤＢ４及び返答データベースＤＢ５をテーブル形式で説明したが、これらのデータベースで説明した内容が数式形式で定義されていてもよいし、プログラムコード（アルゴリズム）の一部として同様の内容が定義されていてもよい。例えば、各エージェントの機械学習アルゴリズムの一部として、定型文データベースＤＢ４及び返答データベースＤＢ５と同様の関係が定義されていてもよい。
【００８５】
［３−２．取得部］
取得部３０１は、制御部３１を主として実現される。取得部３０１は、ユーザの発言に関する発言情報を取得する。ユーザは、音声入力を利用して発言してもよいし、テキスト入力を利用して発言してもよい。また、発言情報のデータ形式は任意であってよく、例えば、音声データであってもよいし、テキストデータであってもよいし、これらの両方を含んだデータとしてもよい。
【００８６】
例えば、ユーザが音声入力を利用して発言する場合には、取得部３０１は、音声入力部１６により検出されたユーザの音声に基づいて、発言情報を取得する。例えば、取得部３０１は、音声入力部１６の検出信号に基づいて生成された音声データをそのまま発言情報として取得してもよいし、当該音声データを変換したテキストデータを発言情報として取得してもよい。
【００８７】
なお、音声データをテキストデータに変換する方法自体は、公知の音声認識アルゴリズムを適用可能であり、例えば、統計的手法、動的時間伸縮法、及び隠れマルコフモデルの少なくとも１つを含む音声認識アルゴリズムを利用してもよい。
【００８８】
また例えば、ユーザがテキスト入力を利用して発言する場合には、取得部３０１は、操作部１４から入力されたテキストに基づいて、発言情報として取得する。例えば、取得部３０１は、操作部１４の検出信号に基づいて特定されたテキストを発言情報として取得する。なお、ユーザは、操作部１４の物理的な操作部材からテキスト入力を行ってもよいし、表示部１５に表示されたソフトウェアキーボードを利用してテキスト入力を行ってもよい。
【００８９】
本実施形態では、ユーザが音声入力を利用して発言し、発言情報が音声データに対応するテキストデータである場合を説明する。また、ここでは、サーバ３０において取得部３０１が実現される場合を説明するので、取得部３０１は、通信部３３を介してユーザ端末１０から音声データを取得し、当該音声データをテキストデータに変換して発言情報として取得する。
【００９０】
なお、音声データからテキストデータへの変換は、サーバ３０以外のコンピュータ（例えば、ユーザ端末１０又は他のサーバコンピュータ）によって実行されるようにしてもよい。この場合、取得部３０１は、特にこれらの変換をすることなく、通信部３３を介して当該コンピュータから発言情報を取得することになる。
【００９１】
例えば、取得部３０１による発言情報の取得と、後述する出力部による返答情報の出力と、が繰り返されることで対話が進行する。例えば、発言情報の取得と返答情報の出力とが１回ずつ交互に行われ、ユーザとエージェントが１回ずつ交互に発言する。
【００９２】
また例えば、発言情報の取得が複数回行われた後に返答情報の出力が行われ、ユーザが複数回発言した後にエージェントが返答してもよい。また例えば、返答情報の出力が複数回行われた後に発言情報の取得が行われ、エージェントが複数回発言した後にユーザが返答してもよい。
【００９３】
［３−３．開始判定部］
開始判定部３０２は、制御部３１を主として実現される。開始判定部３０２は、所定の開始条件が満たされた場合に、対話が開始したと判定する。開始条件は、対話開始の合図になりうる条件であればよい。
【００９４】
ここでは、サーバ３０において開始判定部３０２が実現されるので、開始判定部３０２は、通信部３３を介してユーザ端末１０から所定のデータを受信したか否かを判定することによって、開始条件が満たされたか否かを判定する。例えば、開始判定部３０２は、所定のデータを受信したと判定された場合に、開始条件が満たされたと判定する。
【００９５】
本実施形態では、仮想市場画面Ｇが表示された場合に、ユーザとエージェントとの対話が可能になるので、開始判定部３０２は、ユーザ端末１０から仮想市場画面Ｇの表示要求を受信したか否かを判定する。開始判定部３０２は、ユーザ端末１０から表示要求を受信したと判定した場合に、開始条件が満たされたと判定する。
【００９６】
また例えば、ユーザが音声入力を利用して発言する場合を説明するので、例えば、開始判定部３０２は、通信部３３を介してユーザ端末１０から音声データを取得したか否かを判定してもよい。開始判定部３０２は、ユーザ端末１０から音声データを取得したと判定した場合に、開始条件が満たされたと判定してもよい。
【００９７】
この場合、開始判定部３０２は、何らかの音声データを取得した場合に開始条件が満たされたと判定してもよいし、音声データが示す音声の内容に基づいて、開始条件が満たされたか否かを判定してもよい。例えば、対話開始の合図となるフレーズを予め定めておき、開始判定部３０２は、ユーザ端末１０から取得した音声データに基づいて、当該フレーズが検出されたか否かを判定してもよい。開始判定部３０２は、当該フレーズが検出されたと判定された場合に、開始条件が満たされたと判定する。
【００９８】
なお、開始条件は、予め定められた条件であればよく、上記の例に限られない。例えば、開始条件は、操作部１４から所定の操作が検出されること、又は、ユーザ端末１０からサーバ３０内の所定のページへのアクセスが検出されることなどであってもよい。所定の操作としては、例えば、エージェント画像Ａ１，Ａ２を選択する操作であってもよい。この場合、ユーザは最初に話しかけるエージェントを指定できるようにしてもよい。
【００９９】
［３−４．終了判定部］
終了判定部３０３は、制御部３１を主として実現される。終了判定部３０３は、所定の終了条件が満たされた場合に、対話が終了したと判定する。終了条件は、対話終了の合図になりうる条件であればよい。
【０１００】
ここでは、サーバ３０において終了判定部３０３が実現されるので、終了判定部３０３は、通信部３３を介してユーザ端末１０から所定のデータを受信したか否かを判定することによって、終了条件が満たされたか否かを判定する。例えば、開始判定部３０２は、所定のデータを受信した場合に終了条件が満たされたと判定してもよいし、所定のデータを受信しない状態が一定時間継続した場合に終了条件が満たされたと判定してもよい。
【０１０１】
本実施形態では、仮想市場画面Ｇが表示されている間は、ユーザとエージェントとの対話が可能なので、終了判定部３０３は、ユーザ端末１０から仮想市場画面Ｇが閉じられた旨の通知を受信したか否かを判定する。終了判定部３０３は、ユーザ端末１０から当該通知を受信したと判定した場合に、終了条件が満たされたと判定する。
【０１０２】
なお、ユーザが音声入力を利用して発言する場合を説明するので、例えば、終了判定部３０３は、通信部３３を介してユーザ端末１０から音声データを取得したか否かを判定してもよい。例えば、終了判定部３０３は、ユーザ端末１０から音声データを取得しない状態が一定時間継続したと判定した場合に、終了条件が満たされたと判定してもよい。一定時間は、予め定められた時間であればよく、例えば、数秒〜数十分の間の任意の時間であってよい。
【０１０３】
なお、終了判定部３０３は、音声データが示す音声の内容に基づいて、終了条件が満たされたか否かを判定してもよい。例えば、対話終了の合図となるフレーズを予め定めておき、終了判定部３０３は、ユーザ端末１０から取得した音声データに基づいて、当該フレーズが検出されたか否かを判定してもよい。終了判定部３０３は、当該フレーズが検出されたと判定された場合に、終了条件が満たされたと判定する。
【０１０４】
なお、終了条件は、予め定められた条件であればよく、上記の例に限られない。例えば、終了条件は、操作部１４から所定の操作が検出されること、ユーザ端末１０との通信が切断されること、又はユーザ端末１０から応答のない状態が一定時間以上継続することなどであってもよい。
【０１０５】
［３−５．対話部］
複数の対話部３０４の各々は、制御部３１を主として実現される。対話部３０４は、発言情報が取得された場合に、当該発言情報が示す発言に対する返答に関する返答情報を生成する。
【０１０６】
なお、本実施形態で説明するエージェントは、対話部３０４の一例である。このため、本実施形態でエージェントと記載した箇所は、対話部３０４と読み替えることができ、対話部３０４と記載した箇所は、エージェントと読み替えることができる。なお、対話部３０４は、プログラム又はプログラムの一部であればよく、特にエージェントと呼ばれるものでなくてもよい。
【０１０７】
例えば、対話部３０４は、音声を利用して返答してもよいし、テキスト又は画像を利用して返答してもよいし、これらの両方で返答してもよい。別の言い方をすれば、対話部３０４は、聴覚的に返答してもよいし、視覚的に返答してもよいし、これらの両方で返答してもよい。なお、返答情報のデータ形式は任意であってよく、例えば、音声データであってもよいし、テキストデータ又は画像データであってもよいし、これらの両方を含んだデータとしてもよい。
【０１０８】
返答情報は、返答内容だけを示す情報であってもよいし、他の情報を含んでいてもよい。返答内容は、文章として成立している必要はなく、例えば、単語又は顔文字だけであってもよいし、画像だけであってもよい。本実施形態では、返答情報は、返答内容の蓋然性に関する蓋然性情報を含む場合を一例として説明するが、蓋然性情報以外にも、発言者を示すエージェントＩＤや商品情報などを含んでいてもよい。
【０１０９】
例えば、対話部３０４は、発言情報及びコンテクスト情報と、返答情報と、の関係を示すデータに基づいて、発言情報に対する返答情報を生成する。このデータは、発言情報及びコンテクスト情報の少なくとも一部を入力とし、返答情報の少なくとも一部を出力とするデータであり、本実施形態では、主に定型文データベースＤＢ４と返答データベースＤＢ５を一例として説明する。
【０１１０】
例えば、対話部３０４は、直近のユーザの発言情報だけでなく、コンテクスト情報に含まれる発言内容に基づいて、返答情報を生成する。対話部３０４は、コンテクスト情報に含まれる全ての発言内容を考慮してもよいし、一部の発言内容だけを考慮して返答情報を生成してもよい。なお、対話部３０４は、取得部３０１が発言情報を取得した場合、他の対話部３０４が返答情報を生成した場合、又は、出力制御部３０６が返答情報を出力した場合などの任意のタイミングにおいて返答情報を生成すればよい。
【０１１１】
ここでは、対話部３０４が、商品データベースＤＢ２、対話データベースＤＢ３、定型文データベースＤＢ４、及び返答データベースＤＢ５に基づいて、返答情報を生成する場合を一例として説明する。
【０１１２】
まず、対話部３０４は、対話データベースＤＢ３のコンテクスト情報が示す発言内容に含まれる商品名を、他の対話部３０４が提案した商品として取得する。本実施形態では、説明の簡略化のために、対話部３０４が、コンテクスト情報が示す発言内容のうち、他の対話部３０４による直近の発言内容を参照する場合を説明するが、２つ以上前の発言内容が参照されてもよいし、全ての発言内容が参照されてもよい。
【０１１３】
対話部３０４は、取得部３０１が取得した発言情報（即ち、直近のユーザの発言）を参照し、他の対話部３０４が提案した商品に対するユーザの反応を取得する。例えば、対話部３０４は、当該商品の返答情報の後に取得されたユーザの発言内容を参照し、「いいね」や「よし」といった単語を含む「肯定」のものであるか、「うーん」や「いやだ」といった単語を含む「否定」のものであるかを特定する。ユーザの反応を示す単語は、予めデータ記憶部３００に定義しておけばよい。
【０１１４】
対話部３０４は、定型文データベースＤＢ４を参照し、発言情報とコンテクスト情報に基づいて、合致する出力条件を特定して定型文を決定する。例えば、対話部３０４は、コンテクスト情報にユーザの発言が含まれていない場合には、「最初の発言」という出力条件が満たされたと判定する。また例えば、対話部３０４は、自身又は他の対話部３０４が提案した商品名がコンテクスト情報に含まれており、取得部３０１が取得した発言情報がユーザの肯定を示す場合には、「直近で提案された商品をユーザが肯定した」という出力条件が満たされたと判定する。
【０１１５】
また例えば、対話部３０４は、自身又は他の対話部３０４が提案した商品名がコンテクスト情報に含まれており、取得部３０１が取得した発言情報がユーザの否定を示す場合には、「直近で提案された商品をユーザが否定した」という出力条件が満たされたと判定する。また例えば、対話部３０４は、自身又は他の対話部３０４が提案した商品名がコンテクスト情報に含まれており、取得部３０１が取得した発言情報がユーザの購入の意志を示していれば、「ユーザが購入の意志を示した」という出力条件が満たされたと判定する。
【０１１６】
対話部３０４は、上記のように、発言情報及びコンテクスト情報に含まれる単語に基づいて合致する出力条件を特定し、当該出力条件に関連付けられた定型文を取得する。そして、対話部３０４は、定型文にタグ情報が含まれている場合には、下記のようにして、挿入する商品名を決定する。なお、合致する出力条件が「ユーザが購入の意志を示した」である場合には、定型文にタグ情報がなく、商品名を挿入する必要がないので、対話部３０４は、定型文をそのまま返答内容とする。
【０１１７】
例えば、合致する出力条件が「最初の返答」であれば、コンテクスト情報に発言内容がないので、対話部３０４は、発言情報に基づいて、定型文に挿入する商品名を検索する。例えば、対話部３０４は、発言情報に含まれる少なくとも１つの単語に基づいて、自身に関連付けられた商品データベースＤＢ２を検索する。
【０１１８】
合致する出力条件が「直近で提案された商品をユーザが肯定した」又は「直近で提案された商品をユーザが否定した」であれば、対話部３０４は、返答データベースＤＢ５を参照し、発言情報とコンテクスト情報に基づいて、合致するコンテクスト条件を特定する。例えば、対話部３０４は、コンテクスト情報を参照して直近で提案された商品を特定し、発言情報を参照してユーザの反応を特定する。対話部３０４は、提案された商品とユーザの反応に基づいて、合致するコンテクスト条件を特定し、当該コンテクスト条件に関連付けられた商品を特定する。
【０１１９】
例えば、対話部３０４は、「直近で提案したスズキをユーザが肯定した」というコンテクスト条件が満たされた場合には、提案すべき商品として「トマト」を特定し、自身の商品データベースＤＢ２の中から「トマト」を検索する。また例えば、対話部３０４は、「直近で提案したスズキをユーザが否定した」というコンテクスト条件が満たされた場合には、提案すべき商品として「マグロ」を特定し、自身の商品データベースＤＢ２の中から「マグロ」を検索する。
【０１２０】
例えば、対話部３０４は、「直近で提案したマグロをユーザが肯定した」というコンテクスト条件が満たされた場合には、提案すべき商品として「キュウリ」を特定し、自身の商品データベースＤＢ２の中から「キュウリ」を検索する。また例えば、対話部３０４は、「直近で提案したマグロをユーザが否定した」というコンテクスト条件が満たされた場合には、提案すべき商品として「アジ」を特定し、自身の商品データベースＤＢ２の中から「アジ」を検索する。
【０１２１】
なお、商品の検索自体は、種々の手法を適用可能であり、例えば、返答データベースＤＢ５に含まれる商品名を検索キーワードにして検索してもよいし、カテゴリなどの他の情報を利用して検索してもよい。他にも例えば、商品情報に商品の特徴ベクトルを定義しておく場合には、返答データベースＤＢ５に提案すべき商品の特徴ベクトルを定義しておき、当該特徴ベクトルに基づく検索が実行されてもよい。特徴ベクトルによる検索では、ベクトルの差が小さいほど、特徴が似ていることになるので、蓋然性が高いことになる。
【０１２２】
対話部３０４は、上記のようにして検索した商品の商品名を定型文に挿入し、返答内容を生成する。そして、対話部３０４は、検索時のスコアを蓋然性情報として生成する。対話部３０４は、これら生成した返答内容のテキスト情報及び蓋然性情報を含む返答情報を取得する。
【０１２３】
上記のように、複数の対話部３０４の各々は、出力部により出力された他の対話部３０４の返答情報に基づいて、新たな返答情報を生成する。新たな返答情報とは、ユーザに対する返答の候補であり、これから出力される可能性のある返答情報である。
【０１２４】
また例えば、複数の対話部３０４の各々は、出力制御部３０６により出力された返答情報に対する発言情報に更に基づいて、新たな返答情報を生成する。即ち、対話部３０４は、他の対話部３０４の返答情報だけでなく、当該返答情報に対するユーザの反応を示す発言情報も考慮して、新たな返答情報を生成する。
【０１２５】
また例えば、複数の対話部３０４の各々は、対話が進行して発言情報が取得された場合に、蓋然性情報を更新してもよい。更新とは、蓋然性情報を計算し直すことである。対話部３０４は、発言情報が取得されるたびに蓋然性情報を更新してもよいし、発言情報が一定回数以上取得された場合に蓋然性情報を更新してもよい。更に、対話部３０４は、返答内容は更新せずに蓋然性情報だけを更新してもよいし、返答内容と蓋然性情報の両方を更新してもよい。
【０１２６】
また例えば、複数の対話部３０４の各々は、出力制御部３０６により出力された他の対話部３０４の返答情報に含まれる蓋然性情報に基づいて、ユーザの反応を待たずに新たな返答情報を生成するか否かを決定してもよい。例えば、対話部３０４は、他の対話部３０４の返答情報に含まれる蓋然性情報が閾値以上であるか否かを判定する。閾値は、予め定められた値であればよく、例えば、ほとんどのユーザが肯定する程度の蓋然性である。例えば、蓋然性をパーセントで表したとすると、閾値は、７０％〜１００％の間の任意の値であってよい。
【０１２７】
例えば、対話部３０４は、蓋然性情報が閾値以上であると判定した場合には、ユーザの反応を待たずに新たな返答情報を生成すると決定し、蓋然性情報が閾値未満であると判定した場合には、ユーザの反応を待つ。「ユーザの反応を待たず」とは、出力制御部３０６により他の対話部３０４の返答情報がされた後、取得部３０１によりユーザの発言情報が取得される前に、対話部３０４は、新たな返答情報を生成することを意味する。一方、「ユーザの反応を待つ」とは、出力制御部３０６により他の対話部３０４の返答情報がされた後、取得部３０１によりユーザの発言情報が取得されるまでは、新たな返答情報を生成しないことを意味する。
【０１２８】
また例えば、複数の対話部３０４の各々は、開始判定部３０２が開始したと判定してから、終了判定部３０３が終了したと判定するまでの間の任意の期間における他の対話部３０４の返答情報に基づいて、新たな返答情報を生成してもよい。任意の期間とは、対話の開始から終了までの全期間であってもよいし、その中の一部の期間であってもよい。一部の期間の場合には、直近の所定期間であってもよいし、直近を除く過去の一定期間であってもよい。例えば、対話部３０４は、直近の所定個数の発言だけを考慮してもよいし、ユーザとの一連の対話における全ての発言を考慮してもよい。
【０１２９】
また例えば、複数の対話部３０４の各々は、商品又はサービスに関するデータベースが関連付けられており、複数の対話部３０４の各々は、自身に関連付けられたデータベースに基づいて、他の対話部３０４とは異なる商品又はサービスをユーザに提案するための新たな返答情報を生成する。商品又はサービスをユーザに提案するための新たな返答情報とは、商品又はサービスを識別可能な情報であり、例えば、商品名又はサービス名を含む返答情報であってもよいし、商品画像又はサービスに関する画像を含む返答情報であってもよい。なお、どの対話部３０４がどのデータベースと対応するかは、予めデータ記憶部３００に定義しておけばよい。
【０１３０】
本実施形態では、商品データベースＤＢ２が上記データベースに相当するが、商品ではなくサービスがユーザに提供される場合には、サービスに関するデータベースがデータ記憶部３００に記憶されているものとする。サービスは、任意のサービスであってよく、例えば、旅行予約、保険の申し込み、レストラン予約、宝くじの購入、又は金融サービスなどであってよい。この場合、サービスごとに対話部３０４を設けておき、例えば、ユーザが旅行予約の対話部３０４と対話しているときに、保険申し込みの対話部３０４が旅行保険を提案したり、レストラン予約の対話部３０４がレストランを提案したりするといった対話を実現してもよい。
【０１３１】
なお、商品としては、本実施形態で説明した食料品に限られず、取引の対象となる物であればよい。例えば、衣料品、家具、家電、又は電子機器といった有体物が商品であってもよいし、電子書籍、映画、又は楽曲といった無体物（コンテンツ）が商品であってもよい。
【０１３２】
また、複数の対話部３０４の各々は、他の対話部３０４により提案された商品又はサービスと関連する商品又はサービスをユーザに提案するための新たな返答情報を生成する。例えば、対話部３０４は、他の対話部３０４により提案された商品と一緒に提案すべき商品に関する新たな返答情報を生成したり、他の対話部３０４により提案されたサービスと一緒に提案すべきサービスに関する新たな返答情報を生成したりする。本実施形態では、一緒に提案すべき商品は、返答データベースＤＢ５に定義されているが、商品ではなくサービスがユーザに提供される場合には、一緒に提案すべきサービスを定義したデータベースがデータ記憶部３００に記憶されているものとする。
【０１３３】
なお、本実施形態では、対話部３０４は、定型文データベースＤＢ４に格納された定型文に、商品データベースＤＢ２に格納された商品情報が挿入されることで返答内容を生成する場合を説明したが、返答内容を生成するためのデータは、これらに限られない。例えば、対話部３０４が商品又はサービス以外の返答情報を生成する場合には、ユーザとの話題に合う単語をデータベースに定義しておき、対話部３０４は、当該データベースを参照して定型文に挿入する単語を特定してもよい。この単語としては、例えば、天気、地名、又はニュースなどの雑談に関する単語であってよい。
【０１３４】
［３−６．決定部］
決定部３０５は、制御部３１を主として実現される。決定部３０５は、複数の対話部３０４の各々の返答情報に含まれる蓋然性情報に基づいて、出力制御部３０６に出力させる返答情報を決定する。例えば、決定部３０５は、複数の対話部３０４の各々から取得した蓋然性情報を比較して最も蓋然性が高い返答情報を特定し、当該特定した返答情報を、出力制御部３０６に出力させる返答情報として決定する。
【０１３５】
なお、出力制御部３０６に出力させる返答情報は複数であってもよく、例えば、決定部３０５は、複数の対話部３０４の各々から取得した蓋然性情報に基づいて、蓋然性が閾値以上の返答情報を特定し、閾値以上の返答情報が複数存在していれば、これら全てを出力制御部３０６に出力させる返答情報として決定してもよい。また例えば、決定部３０５は、複数の対話部３０４の各々から取得した蓋然性情報に基づいて、蓋然性が高い順番に所定個数（例えば、２，３個程度）の返答情報を特定し、当該特定した返答情報を、出力制御部３０６に出力させる返答情報として決定してもよい。
【０１３６】
［３−７．出力制御部］
出力制御部３０６は、制御部３１を主として実現される。出力制御部３０６は、複数の対話部３０４のうちの少なくとも１つの返答情報を出力させる。出力は、聴覚的に行われてもよいし、視覚的に行われてもよいし、これらの両方によって行われてもよい。即ち、出力制御部３０６は、音声出力部１７から返答情報が示す音声を出力させてもよいし、表示部１５において返答情報が示す画像を出力させてもよいし、これらの両方を出力させてもよい。
【０１３７】
なお、ここでは、サーバ３０によって出力制御部３０６が実現される場合を説明するので、出力制御部３０６は、通信部３３を介してユーザ端末１０に対して返答情報を送信することによって、返答情報を出力させる。ユーザ端末１０は、出力制御部３０６の指示に従って、返答情報を出力することになる。
【０１３８】
［３−８．実行部］
実行部３０７は、制御部３１を主として実現される。実行部３０７は、複数の対話部３０４の各々によって商品又はサービスの組み合わせがユーザに提案された後の発言情報に基づいて、当該組み合わせをユーザに提供するための処理を実行する。この処理は、例えば、買い物かごに商品を追加する処理、購入する商品の確認画面を表示させる処理、又は、商品の決済処理などである。また例えば、この処理は、サービスの申し込み処理又はサービスの予約処理であってもよい。なお、実行部３０７の処理対象となる商品又はサービスは、ユーザの反応が肯定であった商品又はサービスとし、ユーザの反応が否定であった商品又はサービスは、処理対象から除外してもよい。
【０１３９】
［４．本実施形態において実行される処理］
図１１及び図１２は、対話制御システムＳにおいて実行される処理の一例を示すフロー図である。図１１及び図１２に示す処理は、制御部１１が記憶部１２に記憶されたプログラムに従って動作し、制御部３１が記憶部３２に記憶されたプログラムに従って動作することによって実行される。下記に説明する処理は、図５に示す機能ブロックにより実行される処理の一例である。
【０１４０】
図１１に示すように、まず、ユーザ端末１０において、仮想市場画面Ｇを表示させるための操作が行われると、制御部１１は、サーバ３０に対し、仮想市場画面Ｇの表示要求を送信する（Ｓ１０１）。表示要求は、予め定められた形式で行われるようにすればよく、例えば、ブラウザで仮想市場画面Ｇを表示させる場合にはＵＲＬを含んでいてもよいし、アプリ内で仮想市場画面Ｇを表示させる場合には画面を一意に識別する画面ＩＤを含んでいてもよい。なお、ユーザ端末１０からサーバ３０に対して何らかの情報が送信される場合には、ユーザＩＤも一緒に送信されるものとする。
【０１４１】
サーバ３０においては、表示要求を受信すると、制御部３１は、ユーザとの対話が開始したと判定し、対話データベースＤＢ３を更新する（Ｓ３０１）。Ｓ３０１においては、制御部３１は、対話ＩＤを新たに生成し、対話データベースＤＢ３に新たなレコードを生成する。そして、制御部３１は、当該レコードに、対話ＩＤとユーザＩＤを格納する。この時点では、ユーザもエージェントも発言していないので、コンテクスト情報には何も格納されない。
【０１４２】
制御部３１は、仮想市場データベースＤＢ１に基づいて、仮想市場画面Ｇの画像データを生成し（Ｓ３０２）、ユーザ端末１０に対し、生成した画像データを送信する（Ｓ３０３）。Ｓ３０３においては、制御部３１は、記憶部３２に構築された仮想３次元空間に、仮想市場内の店舗と店員の３次元モデルを配置し、任意の位置に仮想カメラを配置する。制御部３１は、３次元モデルの頂点座標を座標変換することによって仮想市場画面Ｇの画像データを生成する。なお、ここでは、仮想カメラを移動可能とするが、仮想カメラは固定されていてもよい。
【０１４３】
ユーザ端末１０においては、画像データを受信すると、制御部１１は、受信した画像データに基づいて、仮想市場画面Ｇを表示部１５に表示させる（Ｓ１０２）。Ｓ１０２においては、図２のような仮想市場画面Ｇが表示され、ユーザは、仮想市場画面Ｇにエージェント画像Ａが表示されているエージェントに話しかけることができる。
【０１４４】
制御部１１は、音声入力部１６の検出信号に基づいて、ユーザの発言を検出したか否かを判定する（Ｓ１０３）。Ｓ１０３においては、制御部１１は、音声入力部１６が検出した音声信号の強度が閾値以上であるか否かを判定したり、人の音声を示す特定帯域の音声信号の強度が閾値以上であるか否かを判定したりする。
【０１４５】
ユーザの発言を検出したと判定されない場合（Ｓ１０３；Ｎ）、後述するＳ１０６の処理に移行する。一方、ユーザの発言を検出したと判定された場合（Ｓ１０３；Ｙ）、制御部１１は、音声入力部１６の検出信号に基づいて、サーバ３０に対し、ユーザの発言を示す音声データを送信する（Ｓ１０４）。Ｓ１０４においては、制御部１１は、音声入力部１６が検出した音声信号をデジタル化し、音声の波形を示す音声データを生成して送信する。
【０１４６】
サーバ３０においては、音声データを受信すると、制御部３１は、受信した音声データをテキスト化して発言情報を取得する（Ｓ３０４）。Ｓ３０４においては、制御部３１は、音声データが示す波形のパターンに基づいて発言内容を推定し、発言内容の推定結果を示す発言情報を取得する。そして、制御部３１は、対話データベースＤＢ３のコンテクスト情報を更新し、発言者としてユーザＩＤを格納し、発言内容として発言情報を格納し、発言時間として現在の時間を格納する。
【０１４７】
制御部３１は、Ｓ３０４で取得した発言情報に基づいて、ユーザが購入の意志を示したか否かを判定する（Ｓ３０５）。例えば、記憶部３２には、購入の意志を示す単語（例えば、「買う」「買い物かご」）が予め記憶されており、Ｓ３０５においては、制御部３１は、発言情報に当該単語が含まれているか否かを判定する。
【０１４８】
ユーザが購入の意志を示していない場合（Ｓ３０５；Ｎ）、制御部３１は、複数のエージェントの各々に対し、Ｓ３０４で取得した発言情報を入力する（Ｓ３０６）。Ｓ３０６においては、制御部３１は、全てのエージェントに対してテキストデータを入力してもよいが、ここでは、仮想市場画面Ｇにエージェント画像Ａが表示されているエージェントに対してだけテキストデータを入力するものとする。例えば、制御部３１は、仮想カメラと、エージェント画像Ａが示す店員の３次元モデルと、の距離が閾値未満となるエージェントに対し、テキストデータを入力する。なお、各エージェントは、記憶部３２内で予め起動しており、テキストデータの入力を待ち受けている状態とする。
【０１４９】
制御部３１は、発言情報を入力したエージェントごとに、返答情報を生成するための返答情報生成処理を実行する（Ｓ３０７）。
【０１５０】
図１３は、Ｓ３０７において実行される返答情報生成処理の詳細を示す図である。なお、以降では、各ステップの実行主体をエージェントと記載しているが、実際には制御部３１が実行主体である。返答情報生成処理は、発言情報が入力された全てのエージェントにより実行される。
【０１５１】
図１３に示すように、エージェントは、対話データベースＤＢ３のコンテクスト情報に基づいて、今回の発言が最初の発言であるか否かを判定する（Ｓ３０７１）。Ｓ３０７１においては、エージェントは、コンテクスト情報の発言者情報に基づいて、ユーザの発言が既に存在するか否かを判定する。
【０１５２】
最初の発言であると判定された場合（Ｓ３０７１；Ｙ）、エージェントは、自身に対応する店舗の商品データベースＤＢ２に基づいて、ユーザに提案する商品を決定する（Ｓ３０７２）。Ｓ３０７２においては、エージェントは、発言情報が示す文章から複数の単語を抽出し、複数の単語を検索キーワードとした商品検索を実行する。キーワードに基づく商品検索自体は、公知の種々の検索アルゴリズムを適用可能である。例えば、Ｓ３０７２においては、エージェントは、ユーザの発言に含まれる単語が商品説明に含まれる数に基づいて商品のスコアを計算し、最もスコアが高い商品を、ユーザに提案する商品として決定する。
【０１５３】
例えば、図３及び図４のように、ユーザが「今の時期のおすすめは何？」という発言をした場合、エージェントは、「今」「時期」「おすすめ」という３つの単語を抽出する。そして、エージェントは、これら３つの単語を検索キーワードにして自身の商品データベースＤＢ２を検索し、最もスコアが高い商品を、ユーザに提案する商品として決定する。
【０１５４】
エージェントは、Ｓ３０７２の処理結果と定型文データベースＤＢ４とに基づいて、返答内容を生成する（Ｓ３０７３）。Ｓ３０７３においては、エージェントは、出力条件が「最初の返答」である定型文に対し、Ｓ３０７２で検索した商品の商品名を挿入することによって返答内容を生成する。
【０１５５】
エージェントは、Ｓ３０７３の処理結果に基づいて、蓋然性情報を生成する（Ｓ３０７４）。Ｓ３０７４においては、エージェントは、商品のスコアが高いほど蓋然性情報を高く設定し、商品のスコアが低いほど蓋然性情報を低く設定する。例えば、エージェントは、商品のスコアをそのまま蓋然性情報としてもよいし、商品のスコアを所定の数式に代入して得られる値を蓋然性情報としてもよい。
【０１５６】
エージェントは、返答内容と蓋然性情報とを含む返答情報を生成する（Ｓ３０７５）。以上の処理は、発言情報が入力された全てのエージェントについて実行される。
【０１５７】
一方、Ｓ３０７１において、最初の発言であると判定されない場合（Ｓ３０７１；Ｎ）、エージェントは、対話データベースＤＢ３のコンテクスト情報に基づいて、他のエージェントが提案した商品を特定する（Ｓ３０７６）。Ｓ３０７６においては、エージェントは、コンテクスト情報を参照し、直近の他のエージェントの発言内容に含まれる商品名を取得する。
【０１５８】
エージェントは、Ｓ３０７６で特定した商品と返答データベースＤＢ５とに基づいて、自身が提案すべき商品を取得する（Ｓ３０７７）。Ｓ３０７７においては、エージェントは、対話データベースＤＢ３のコンテクスト情報を参照し、直近で他のエージェントが提案した商品に対するユーザの発言内容を取得する。そして、エージェントは、当該発言内容が肯定であるか否定であるかを判定する。エージェントは、返答データベースＤＢ５を参照し、他のエージェントが提案した商品とユーザの反応に基づいて、満たされるコンテクスト条件を特定する。エージェントは、当該コンテクスト条件に関連付けられた商品を、提案すべき商品として特定する。
【０１５９】
エージェントは、自身の商品データベースＤＢ２に基づいて、ユーザに提案する商品を決定する（Ｓ３０７８）。Ｓ３０７８においては、エージェントは、提案すべき商品の商品名を検索キーワードとした商品検索を実行する。エージェントは、最もスコアが高い商品を、ユーザに提案する商品として決定する。
【０１６０】
エージェントは、Ｓ３０７８の処理結果と定型文データベースＤＢ４とに基づいて、返答内容を生成する（Ｓ３０７９）。Ｓ３０７９においては、エージェントは、定型文に対し、Ｓ３０７８で検索した商品の商品名を挿入することによって返答内容を生成する。
【０１６１】
エージェントは、Ｓ３０７９の処理結果に基づいて、蓋然性情報を生成し（Ｓ３０８０）、Ｓ３０７５の処理に移行する。以上説明した図１３の処理は、発言情報が入力されたエージェントごとに実行される。
【０１６２】
図１２に移り、制御部３１は、各エージェントが生成した返答情報に含まれる蓋然性情報を比較し、最も蓋然性が高い返答情報を特定する（Ｓ３０８）。制御部３１は、Ｓ３０８で特定した返答情報を音声データに変換し、ユーザ端末１０に対し、当該音声データを送信する（Ｓ３０９）。Ｓ３０９においては、制御部３１は、対話データベースＤＢ３のコンテクスト情報を更新し、最も蓋然性が高い返答情報を生成したエージェントのエージェントＩＤを発言者として格納し、発言内容として当該返答情報を格納する。そして、制御部３１は、当該エージェントに対応する店舗の店舗ＩＤと当該返答情報に含まれる商品の商品ＩＤをコンテクスト情報に格納し、発言時間として現在の時間を格納する。なお、先述したように、蓋然性情報が閾値以上であれば、ユーザが肯定したものとみなし、ユーザの反応を待たずに各エージェントに新たな返答情報を生成させてもよい。
【０１６３】
ユーザ端末１０においては、音声データを受信すると、制御部１１は、受信した音声データに基づいて、エージェントの返答を音声出力部１７から出力させ（Ｓ１０５）、後述するＳ１０６の処理に移行する。
【０１６４】
一方、図１１のＳ３０５において、ユーザが購入の意志を示した場合（Ｓ３０５；Ｙ）、図１２に移り、制御部３１は、対話データベースＤＢ３に基づいて、対話に登場した商品を買い物かごに入れる処理を実行し（Ｓ３１０）、商品に対応するエージェントがお礼をいう音声データを送信し（Ｓ３１１）、Ｓ３０９の処理に移行する。この場合、ユーザ端末１０の音声出力部１７からエージェントからのお礼が出力される。なお、Ｓ３０９においては、制御部３１は、対話データベースＤＢ３のコンテクスト情報を更新し、買い物かごに入れた商品を提案したエージェントのエージェントＩＤを発言者として格納し、発言内容として定型文を格納し、発言時間として現在の時間を格納する。
【０１６５】
ユーザ端末１０においては、Ｓ１０５において音声データが出力されると、制御部１１は、操作部１４の検出信号に基づいて、ユーザの操作を特定する（Ｓ１０６）。ここでは、買い物かごの商品を購入するための購入操作、仮想カメラを移動させるための移動操作、又は、商品を購入せずに終了するための終了操作が行われるものとする。
【０１６６】
何れの操作も行われなかった場合（Ｓ１０６；操作なし）、Ｓ１０３の処理に戻る。一方、購入操作が行われた場合（Ｓ１０６；購入操作）、サーバ３０に対し、購入操作が行われたことを示す通知を送信され、サーバ３０においては、通知を受信すると、制御部３１は、購入処理を実行し（Ｓ３１２）、本処理は終了する。
【０１６７】
一方、移動操作が行われた場合（Ｓ１０６；移動操作）、サーバ３０に対し、移動操作が行われたことを示す通知を送信され、サーバ３０においては、通知を受信すると、制御部３１は、仮想カメラを移動させ（Ｓ３１３）、Ｓ３０２の処理に戻る。この場合、移動後の仮想カメラに基づいて、仮想市場画面Ｇの画像データが生成される。
【０１６８】
終了操作が行われた場合（Ｓ１０６；終了操作）、サーバ３０に対し、終了操作が行われたことを示す通知を送信され、本処理は終了する。この場合、サーバ３０において、対話が終了したと判定される。
【０１６９】
以上説明した対話制御システムＳによれば、各エージェントが、直近のユーザの発言情報だけでなく、他のエージェントの返答情報も考慮して返答情報を生成するので、対話の流れに合った返答をする場合のユーザの負担を軽減することができる。例えば、ユーザが、魚屋エージェントとの対話の内容をいちいち八百屋エージェントに伝えなくても、八百屋エージェントは、魚屋エージェントがすすめた商品にかぶせるようにして、自身の店舗でのおすすめ商品を提案するといったことができるので、ユーザの負担を軽減することができる。
【０１７０】
また、各エージェントが、他のエージェントの返答情報に対するユーザの発言情報も考慮することで、ユーザの反応を考慮して返答情報を生成し、より対話の流れに合った返答をすることができる。
【０１７１】
また、対話制御システムＳは、各エージェントが生成した返答情報の蓋然性情報に基づいて出力対象となる返答情報を決定することで、蓋然性の高い返答情報を出力して返答の精度をより高めることができる。更に、蓋然性情報に基づいて出力対象となる返答情報を決定することで、蓋然性の低い返答情報が送信されることを防止できるので、対話制御システムＳの処理負荷を軽減し、ネットワーク上の通信負荷を軽減することもできる。また、蓋然性の低い返答情報が出力されてしまい、ユーザがそれに対していちいち否定の反応を示さなければならないといったことを防止することもでき、ユーザの負担を効果的に軽減することができる。
【０１７２】
また、各エージェントが、対話が進行した場合に蓋然性情報を更新することで、最新の対話の流れが蓋然性情報に反映され、より対話の流れに合った返答をすることができる。また、蓋然性情報の精度を高めることで、不要な返答情報が送信されることを効果的に防止できるので、対話制御システムＳの処理負荷をより効果的に軽減し、ネットワーク上の通信負荷もより効果的に軽減することができる。更に、蓋然性情報の精度を高めることで、ユーザが求めている返答情報が出力されず、ユーザがそれに対していちいち否定の反応を示さなければならないといったことを防止することもでき、ユーザの負担を効果的に軽減することができる。
【０１７３】
また、各エージェントが、他のエージェントの返答情報に含まれる蓋然性情報に基づいて、ユーザの反応を待たずに新たな返答情報を生成するか否かを決定することで、例えば、ユーザが肯定する蓋然性が極めて高い返答情報が出力されていれば、ユーザの反応を待たずにかぶせるようにして、新たな返答情報を出力させることができる。このため、ユーザがいちいち反応を示さなくても、ユーザが欲する情報を次々と提供することができる。
【０１７４】
また、各エージェントが、一連の対話の開始から終了までの任意の期間内のコンテクストを考慮して返答情報を生成することで、一連の対話の流れに合った返答をすることができる。
【０１７５】
また、各エージェントが、自身に関連付けられた商品データベースＤＢ２に基づいて、自身の店舗の商品を提案する返答情報を生成することで、商品購入を効果的に支援することができる。対話制御システムＳをサービスの提供に適用した場合も同様に、各エージェントが、自身に関連付けられたサービスのデータベースに基づいて、自身に対応するサービスを提案する返答情報を生成することで、サービス利用を効果的に支援することができる。また、ユーザが、各エージェントに対し、他のエージェントがすすめた商品又はサービスをいちいち伝えなくても、他のエージェントがすすめた商品又はサービスとかぶせるようにして、商品又はサービスをすすめることができ、ユーザの負担を軽減することができる。
【０１７６】
また、各エージェントが、他のエージェントが提案した商品に関連する商品を提案することで、商品購入をより効果的に支援することができる。対話制御システムＳをサービスの提供に適用した場合も同様に、各エージェントが、他のエージェントが提案したサービスに関連するサービスを提案することで、サービス利用をより効果的に支援することができる。また、対話の流れに関連性のない商品又はサービスが提案されてしまい、ユーザがそれに対していちいち否定の反応を示さなければならないといったことを防止することもでき、ユーザの負担を効果的に軽減することができる。
【０１７７】
また、対話制御システムＳが、ユーザが商品の購入の意志を示した場合に商品を買い物かごに入れる処理を実行したり商品の決済処理を実行したりすることで、商品購入をより効果的に支援することができる。対話制御システムＳをサービスの提供に適用した場合も同様に、対話制御システムＳが、ユーザがサービスの利用の意志を示した場合に予約処理や申し込み処理を実行することで、サービス利用をより効果的に支援することができる。また、一連の対話の流れの中で商品を購入したりサービスを利用したりすることができ、商品購入時又はサービス利用時のユーザの負担を効果的に軽減することができる。
【０１７８】
また、対話制御システムＳがユーザの音声に基づいて発言情報を取得することで、音声を利用した対話の流れに合った返答をすることができる。
【０１７９】
［５．変形例］
なお、本発明は、以上に説明した実施形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【０１８０】
例えば、複数の対話部３０４の各々は、出力制御部３０６により出力された返答情報を生成した他の対話部３０４と自身との関係に基づいて、新たな返答情報を生成してもよい。例えば、対話部３０４は、他の対話部３０４のうち、特定の対話部３０４の返答情報に基づいて、自身の返答情報を生成する。各対話部３０４がどの対話部３０４の返答情報を参照するかは、データ記憶部３００に予め定義しておけばよい。対話部３０４は、自身に関連付けられた他の対話部３０４の返答情報に基づいて、自身の返答情報を生成することになる。
【０１８１】
例えば、魚屋のエージェントであれば、八百屋のエージェントの返答情報に基づいて自身の返答情報を生成するが、洋服屋のエージェントの返答情報は特に参照しなくてよい。同様に、洋服屋のエージェントであれば、靴屋のエージェントの返答情報に基づいて自身の返答情報を生成するが、魚屋のエージェント及び八百屋のエージェントの返答情報は特に参照しなくてよい。
【０１８２】
上記変形例によれば、各エージェントが、自身に関係のない返答情報を参照してしまうことを防止することができるので、返答の精度を効果的に高めることができる。更に、対話に関係のないエージェントが返答情報を生成してしまうことも防止でき、対話制御システムＳの処理負荷を軽減することもできる。また、返答の精度を高めることで、蓋然性の低い返答情報が出力されてしまい、ユーザがそれに対していちいち否定の反応を示さなければならないといったことを防止することもでき、ユーザの負担を効果的に軽減することができる。
【０１８３】
また例えば、ユーザ端末１０内に音声入力部１６と音声出力部１７が含まれている場合を説明したが、音声入力部１６と音声出力部１７は、ユーザ端末１０の外部に接続されていてもよい。同様に、操作部１４及び表示部１５もユーザ端末１０の外部に接続されていてもよい。
【０１８４】
また例えば、仮想市場を３次元的に示したが、仮想市場は２次元的に示されてもよい。また例えば、特に仮想市場画面Ｇを表示することなく、ユーザとエージェントとの間での対話が可能であってもよい。例えば、インターネットショッピングモールのトップページや各店舗のページにおいて、ユーザとエージェントとの間での対話を可能としてもよい。
【０１８５】
また例えば、各機能がサーバ３０において実現される場合を説明したが、ユーザ端末１０とサーバ３０とで機能が分担されるようにしてもよいし、ユーザ端末１０で全ての機能が実現されてもよい。例えば、取得部３０１がユーザ端末１０の制御部１１を主として実現されてもよい。この場合、例えば、ユーザ端末１０において音声データからテキストデータへの変換処理が実行されてもよい。また例えば、ユーザ端末１０においてエージェントが立ち上がっており、対話部３０４がユーザ端末１０の制御部１１を主として実現されてもよい。また例えば、出力制御部３０６がユーザ端末１０の制御部１１を主として実現されてもよい。
【０１８６】
また例えば、対話制御システムＳの各機能のうち、取得部３０１、対話部３０４、及び出力制御部３０６以外の機能は省略してもよい。例えば、データ記憶部３００は、対話制御システムＳに含まれている必要はなく、データベースサーバによって実現されてもよい。
【要約】
ユーザとコンピュータとの間で対話をする場合のユーザの負担を軽減する。対話制御システム（Ｓ）の取得手段（３０１）は、ユーザの発言に関する発言情報を取得する。複数の対話手段（３０４）の各々は、発言情報が取得された場合に、当該発言情報が示す発言に対する返答に関する返答情報を生成する。出力制御手段（３０６）は、複数の対話手段（３０４）のうちの少なくとも１つの返答情報を出力させる。取得手段（３０１）による発言情報の取得と、出力制御手段（３０６）による返答情報の出力と、が繰り返されることで対話が進行し、複数の対話手段（３０４）の各々は、出力制御手段（３０６）により出力された他の対話手段（３０４）の返答情報に基づいて、新たな返答情報を生成する。【図１】
0006591128.tif 000002
【図２】
0006591128.tif 000003
【図３】
0006591128.tif 000004
【図４】
0006591128.tif 000005
【図５】
0006591128.tif 000006
【図６】
0006591128.tif 000007
【図７】
0006591128.tif 000008
【図８】
0006591128.tif 000009
【図９】
0006591128.tif 000010
【図１０】
0006591128.tif 000011
【図１１】
0006591128.tif 000012
【図１２】
0006591128.tif 000013
【図１３】
0006591128.tif 000014