(57)【要約】      （修正有）【課題】ユーザが求めるサービスに係る情報を提供する対話制御装置、方法及びプログラムを提供する。【解決手段】対話システム１において、対話制御装置２００は、コンテンツを対話単位に分解して生成された対話ブロックを選択して提示する。対話制御装置２００は、提示した前記対話ブロックに対するユーザの反応を判定する。また、対話制御装置２００は、ユーザの反応の判定結果に基づいて、次の応答又は対話ブロックを選択する。これにより、対話制御装置は、異なるデータ構造を有するサービスから、一往復レベルの対話に対応した対話ブロックを定義する。【選択図】図２
2019046101.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツを対話単位に分解して生成された対話ブロックを選択して提示する選択部と、
前記提示した前記対話ブロックに対するユーザの反応を判定する判定部と、
前記ユーザの反応の判定結果に基づいて、次の応答又は対話ブロックを選択する応答部と、
を有することを特徴とする対話制御装置。
【請求項２】
インターネット上のＩＣＴサービスのＷｅｂコンテンツを検索する検索部と、
検索された前記ＩＣＴサービスのＷｅｂコンテンツを、発話内容と、想定されるユーザによる反応とを含む一往復レベルの対話に分解して前記対話ブロックを生成する生成部と、
をさらに有し、
前記応答部は、前記ユーザの反応の判定結果に基づいて、前記生成部に前記対話ブロックの生成を指示し、生成された前記対話ブロックを選択することを特徴とする請求項１に記載の対話制御装置。
【請求項３】
対話アクションと、当該対話アクションに対するユーザの反応を特定する条件と、当該ユーザの反応に対するシステムの動作の定義及び実行条件とを含む前記対話ブロックを管理する候補管理部と、
前記対話における文脈及びユーザプロファイルを管理する文脈管理部と、
をさらに有し、
前記応答部は、前記対話における文脈及びユーザプロファイルを用いて前記対話ブロックを選択することを特徴とする請求項１又は２に記載の対話制御装置。
【請求項４】
前記選択した対話ブロックを、当該対話ブロックに含まれる前記実行条件に基づいて実行する実行部と、
実行した前記対話ブロックに対するユーザの反応を解釈し、解釈結果を前記文脈管理部に反映させる解釈部とをさらに有し、
前記応答部は、前記解釈結果に基づいて、前記次の応答又は対話ブロックを選択することを特徴とする請求項３に記載の対話制御装置。
【請求項５】
前記応答部は、前記応答として次の対話ブロックの選択を指定された場合において、緊急性の高い発話候補の対話ブロックがあるか否かを判定し、前記緊急性の高い発話候補の対話ブロックがあると判定した場合、当該緊急性の高い発話候補の対話ブロックを優先して選択することを特徴とする請求項１乃至４のいずれか１つに記載の対話制御装置。
【請求項６】
前記応答部は、前記ユーザの反応が肯定的であるか又は想定されるものであったと判定された場合は、前記ユーザが反応した対話ブロックに関連する対話ブロックを選択し、前記ユーザの反応が否定的であるか又は想定の範囲外のものであったと判定された場合は、前記ユーザが反応した対話ブロックとの関連性が低い対話ブロックを選択することを特徴とする請求項１乃至５のいずれか１つに記載の対話制御装置。
【請求項７】
前記応答部は、前記対話ブロックの生成元であるＩＣＴサービスをランダムに選択し、前記ユーザが反応した対話ブロックとの関連性が低い対話ブロックを、選択された前記ＩＣＴサービスのＷｅｂコンテンツから生成された対話ブロックの中から選択することを特徴とする請求項６に記載の対話制御装置。
【請求項８】
コンピュータが、
コンテンツを対話単位に分解して生成された対話ブロックを選択して提示し、
前記提示した前記対話ブロックに対するユーザの反応を判定し、
前記ユーザの反応の判定結果に基づいて、次の応答又は対話ブロックを選択する
処理を行う対話制御方法。
【請求項９】
コンピュータに、
コンテンツを対話単位に分解して生成された対話ブロックを選択して提示し、
前記提示した前記対話ブロックに対するユーザの反応を判定し、
前記ユーザの反応の判定結果に基づいて、次の応答又は対話ブロックを選択する
処理を行わせる対話制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対話制御装置、対話制御方法及び対話制御プログラムに関する。
【背景技術】
【０００２】
対話形式で、ユーザに対して情報を提案する技術が知られている。例えば、ユーザの嗜好の変化を適切に反映し、また、新しく追加された属性に対するユーザの興味を適切に推測し、よりユーザの興味に近いコンテンツを推薦できるようにする情報処理装置が知られている。当該装置は、興味データの中であえて重要度の低いものを選択し、ユーザに対する提案を選択する。当該装置は、提案された質問に対する応答の入力を受け付けて、応答の内容に対応して興味データを変更（更新）する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３４３３２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記技術は、提案される候補の話題が全て構造化されてデータベースに格納化されていることが前提となっている。例えば、上記情報処理装置は、ユーザに対して表示される質問を生成するための雛形が記憶されている対話データベースを有し、雛形に興味データの一部または全部を埋め込むことにより質問を生成する。
【０００５】
一方、インターネット上で一般に公開され、ユーザに情報を提供するＩＣＴサービスは、例えばニュースサイトやレストラン紹介サイト、レシピ紹介サイトなど多岐にわたっている。また、データ構造も各ＩＣＴサービスによって異なるため、共通の構造化されたデータとして扱うことが難しい。このため、上記技術においては、一般に公開されているＩＣＴサービスが提供する幅広い情報を共通の構造化されたデータとして生成しそのデータを選択して、ユーザに提案することができない。
【０００６】
一つの側面では、ユーザが求めるサービスに係る情報を提供できる対話制御装置、対話制御方法及び対話制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
一つの態様において、対話制御装置は、コンテンツを対話単位に分解して生成された対話ブロックを選択して提示する。対話制御装置は、提示した対話ブロックに対するユーザの反応を判定する。また、対話制御装置は、ユーザの反応の判定結果に基づいて、次の応答又は対話ブロックを選択する。
【発明の効果】
【０００８】
一つの態様によれば、ユーザが求めるサービスに係る情報を提供できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、動的にサービスを切り替える対話ブロックの提示の一例を示す図である。
【図２】図２は、実施例１における対話システムの一例を示す図である。
【図３】図３は、実施例１におけるブロックＤＢの一例を示す図である。
【図４】図４は、実施例１における対話制御処理の一例を示すフローチャートである。
【図５】図５は、実施例１における対話の流れの一例を示すフローチャートである。
【図６】図６は、実施例１における対話の流れの別の一例を示すフローチャートである。
【図７】図７は、実施例２における対話制御処理の一例を示すフローチャートである。
【図８】図８は、実施例２における対話の流れの一例を示すフローチャートである。
【図９】図９は、対話制御プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本願の開示する対話制御装置、対話制御方法及び対話制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、以下に示す各実施例は、矛盾を起こさない範囲で適宜組み合わせても良い。
【実施例１】
【００１１】
本実施例における対話制御装置は、例えばセラピーロボット、エンターテイメントロボットなどの人との間で親和的な対話（インタラクション）を行うロボット（インタラクションロボット）を媒体として、ユーザとの対話を行う。本実施例におけるユーザとの対話は、ユーザの年齢、職業、性別などのプロファイルや、対話の文脈、状況等に応じて対話ブロックを選択して実行することにより行われる。
【００１２】
本実施例における対話ブロックは、「ユーザに対する発話内容」と、「実行条件」、「発話後のユーザの反応に応じた次の動作を含む対話の実行単位」である。対話ブロックは、発話内容として、例えば画面に表示させ、又は音声として出力する文章を含むが、これに限られず、例えば写真や動画などのコンテンツを含んでもよく、また他のＷｅｂサービスにアクセスするためのリンクであってもよい。
【００１３】
本実施例における対話制御装置は、例えば気象情報やニュースなどを提供するアプリやＷｅｂサイトなどのＩＣＴサービスにアクセスして、当該アプリやＩＣＴサービスのコンテンツを抽出し、コンテンツを分解して対話ブロックを生成する。例えば、対話制御装置は、気象情報アプリにアクセスして、「今夜は雨が降りそうです」というような発話を含む対話ブロックを生成する。
【００１４】
対話制御装置は、例えば対話ブロックに含まれる発話を音声として出力することにより、対話ブロックを実行する。対話ブロックが写真や動画などのコンテンツである場合、対話制御装置はコンテンツを再生することにより、対話ブロックを実行する。また、対話ブロックが他のＷｅｂサービスにアクセスするためのリンクであってもよい。この場合、対話制御装置は対話ブロックを実行することにより、当該Ｗｅｂサービスを呼び出す。
【００１５】
そして、対話制御装置は、実行された対話ブロックに対するユーザからの反応に応じて、次の動作を実行する。例えば、対話制御装置は、ユーザの反応が、実行された対話ブロックに含まれるリアクションの条件に一致する場合、当該リアクションに対応する次の動作を実行する。また、対話制御装置は、リアクションに対する動作として、リアクションによる文脈状態の変化等を記憶する。なお、条件に該当する対話ブロックが見つからない場合、対話制御装置は、リアクションに対する動作として、新たな対話ブロックを生成して実行してもよい。なお、当該リアクションは、ユーザの反応の一例である。
【００１６】
本実施例における対話制御装置による対話の流れについて、図１を用いて説明する。図１は、動的にサービスを切り替える対話ブロックの提示の一例を示す図である。図１において、例えば後に説明する対話制御装置２００は、対話のきっかけとして、気象情報アプリから生成された対話ブロック９０００を実行する。例えば、対話制御装置２００は、「今夜は雨が降りそうです」というような発話を行う。これに対して、ユーザ９００１は、例えば「東京の降水確率は？」などのように、気象情報に関する詳細な説明を求めるリアクションをする。この場合、対話制御装置２００は、気象情報から生成された対話ブロックを実行し、例えば「１９時以降の東京の降水確率は６０％です」というようにユーザのリアクションに対する発話を行う。
【００１７】
一方、ユーザ９００１が、「横浜から秋葉原までの乗り換え案内を教えて」というように、気象情報とは関係ない情報を求めるリアクションを行う場合もある。この場合、対話制御装置２００は、運行情報アプリを検索する。そして、「○○駅近くで沿線火災のため、電車が遅れております」というような発話内容を含む対話ブロックを生成して実行する。
【００１８】
さらに、これに対してユーザ９００１が、「火災について詳しく教えて」というようなリアクションを行う場合、対話制御装置２００は、運行情報アプリではなくニュースアプリにアクセスして対話ブロックを生成して実行する。例えば、対話制御装置２００は、ニュースアプリから火災のニュースに関する動画をダウンロードして対話ブロックとする。この場合、対話制御装置２００は、対話ブロックの実行として、ダウンロードした動画を再生する。
【００１９】
このように、本実施例における対話制御装置２００は、特定のシナリオに基づいて、トリガと発話とが、又は質問と回答とが対応して格納されているような対話データベースの代わりに、対話ブロックを実行することによりユーザとの対話を制御する。すなわち、本実施例における対話制御装置は、複数のサービスのコンテンツを対話形式に分解した対話ブロックを有し、ユーザのリアクションに応じて対話ブロックを選択して発話するので、シナリオに頼らずに、ユーザの求めるサービスに係る情報を提供できる。
【００２０】
［機能ブロック］
次に、本実施例における対話システムについて、図２を用いて説明する。図２は、実施例１における対話システムの一例を示す図である。図２に示す対話システム１は、対話制御装置２００と、入力装置３００と、出力装置４００と、外部サーバ５００ａ及び５００ｂとを有する。なお、以下において、外部サーバ５００ａと５００ｂとを区別せずに表現する場合に、単に「外部サーバ５００」と表記する場合がある。
【００２１】
本実施例において、対話制御装置２００は、入力装置３００及び出力装置４００並びに外部サーバ５００と、無線又は有線の通信にて通信可能に接続される。なお、図２においては、外部サーバ５００を２台含む対話システム１を示したが、外部サーバ５００の数は一例であり、３台以上の外部サーバ５００を含むような構成であってもよい。
【００２２】
対話制御装置２００は、対話ブロックを生成して実行し、対話ブロックの発話内容に対するユーザによるリアクションに応じて、次の対話ブロックを選択して実行する。対話制御装置２００は、例えばインタラクションロボットにより実装されるが、これに限られず、インタラクションロボットと無線又は有線にて相互に通信可能なサーバコンピュータであってもよく、またクラウド上において実装されてもよい。
【００２３】
入力装置３００は、ユーザによる対話の入力を受け付ける。入力装置３００は、例えばマイクロフォンやカメラにより実装されるが、これらに限られず、温度計や加速度センサなどの各種のセンサであってもよい。また、入力装置３００は、ユーザによる操作を受け付ける操作部を有してもよい。
【００２４】
出力装置４００は、対話ブロックの実行による発話等をユーザに対して出力する。出力装置４００は、例えばスピーカやディスプレイにより実装されるが、これらに限られず、バイブレータやストロボ等であってもよい。
【００２５】
入力装置３００及び出力装置４００は、例えばインタラクションロボットが備えるマイクロフォン及びスピーカにより実装することができるが、これに限られず、例えばスマートフォンやタブレットなどの携帯可能な電子機器でもよく、また据置型のコンピュータであってもよい。
【００２６】
外部サーバ５００は、各種の情報を配信するＩＣＴサービスを行うサーバである。ＩＣＴサービスには、例えばニュース配信サイト、気象情報サイト、運行情報サイトなどがあるが、これらに限られず、ＳＮＳサイトなどの広義のＩＣＴサービスを提供するサイトを含んでもよい。
【００２７】
また、対話制御装置２００は、外部サーバ５００から取得した情報ではなく、例えば装置内にインストールされた図示しない各種のアプリケーションソフト（アプリ）から取得した情報を用いて、対話ブロックを生成してもよい。
【００２８】
次に、本実施例における対話制御装置の一例について説明する。図２に示すように、本実施例における対話制御装置２００は、通信部２１０と、記憶部２２０と、制御部２３０とを有する。
【００２９】
通信部２１０は、有線又は無線を問わず、外部サーバ５００など、その他のコンピュータ等との通信を制御する。通信部２１０は、例えばＮＩＣ（Network  Interface  Card）等の通信インタフェース等である。
【００３０】
記憶部２２０は、例えば制御部２３０が実行するプログラムなどの各種データなどを記憶する。また、記憶部２２０は、ブロックＤＢ２２１及び文脈ＤＢ２２２を有する。記憶部２２０は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリなどの半導体メモリ素子や、ＨＤＤ（Hard  Disk  Drive）などの記憶装置に対応する。なお、以下において、「データベース」（DataBase）を「ＤＢ」と表記する場合がある。
【００３１】
ブロックＤＢ２２１は、対話ブロックに関する情報を記憶する。図３は、実施例１におけるブロックＤＢの一例を示す図である。図３に示すように、ブロックＤＢ２２１は、例えば、「発話内容」と、「サービス名」と、「実行条件」と、「リアクション」と、「次の動作」とを、「ブロックＩＤ」に対応付けて記憶する。なお、ブロックＤＢ２２１に記憶される情報は、例えば後に説明するブロック生成部２９２により入力される。
【００３２】
図３において、「ブロックＩＤ」は、各対話ブロックを一意に識別する識別子(IDentifier)を記憶する。なお、ブロックＩＤの頭文字のアルファベットは、例えば「サービス名」に対応する。「発話内容」は、対話ブロックを実行する場合に、ユーザに対して出力される発話の内容を記憶する。「サービス名」は、当該対話ブロックに関する情報を取得したＩＣＴサービスを記憶する。
【００３３】
図３において、「実行条件」は、当該対話ブロックを実行するトリガとなるイベントを記憶する。「実行条件」は、例えば特定の時刻や、ユーザが発した特定の語句である。また、特定の対話ブロックが実行済みであることや、文脈が特定の状態であることを「実行条件」として記憶してもよい。
【００３４】
図３において、「リアクション」は、当該対話ブロックを実行した場合に想定される、ユーザによるリアクションに関する複数の条件を記憶する。「リアクション」としては、例えばユーザによる発話が想定される語句や、特定のアプリの起動、Ｗｅｂページへのアクセスなどが考えられる。また、リアクションには、対話ブロックの発話内容を肯定するような内容と、否定するような内容が考えられる。
【００３５】
なお、本実施例におけるユーザのリアクションには、ユーザが何らかの言葉を発したり、端末を操作したりといった能動的なユーザの動作に加えて、ユーザが何も反応せずにタイムアウトとなった場合も含むものとする。また、入力装置としてカメラや各種のセンサ等を用いる場合、ユーザが頷くなどの各種のジェスチャをリアクションとして検出してもよい。
【００３６】
図３において、「次の動作」は、「リアクション」に記憶する条件と一致するリアクションが検出された場合に、対話制御装置２００が次に実行する動作を記憶する。「次の動作」としては、特定の対話ブロックを選択して実行することや、文脈状態を設定すること、特定のＷｅｂサービスを起動すること等が考えられる。なお、「次の動作」として、該当する対話ブロックが生成されていない場合に、当該対話ブロックを生成して実行することを記憶してもよい。
【００３７】
図２に戻って、文脈ＤＢ２２２は、対話ブロック及びそれに対するユーザのリアクションにより形成される文脈に関する情報と、ユーザの年齢、性別、職業などの属性や、個人的な好みなどを含むユーザプロファイルとを記憶する。
【００３８】
図２に戻って、文脈ＤＢ２２２は、例えば、ユーザとの対話における現在の話題は何か（気象、スポーツ、食事等）、及びこれまでどの対話ブロックを実行して、どのようなユーザによるリアクションを受けたかを記憶する。また、文脈ＤＢ２２２は、ユーザが好きなスポーツ、関心のあるニュース分野など、ユーザの好みに関する情報も記憶する。これにより、対話制御装置２００は、同じ話題が重複することを避けて、ユーザが求めるサービスに係る情報を提供できる。
【００３９】
制御部２３０は、対話制御装置２００の全体的な処理を司る処理部である。制御部２３０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部２３０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されるようにしてもよい。
【００４０】
制御部２３０は、対話入力部２３１、入力解釈部２３２、文脈記録部２３３、リアクション判定部２３４、リアクション対応部２３５及び発話候補管理部２３６を有する。また、制御部２３０は、発話候補管理部２３６、ブロック選択部２５１、ブロック実行部２５２、対話出力部２５３、サービス検索部２９１及びブロック生成部２９２を有する。なお、対話入力部２３１、入力解釈部２３２、文脈記録部２３３、リアクション判定部２３４、リアクション対応部２３５及び発話候補管理部２３６は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。同様に、発話候補管理部２３６、ブロック選択部２５１、ブロック実行部２５２、対話出力部２５３、サービス検索部２９１及びブロック生成部２９２も、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
【００４１】
対話入力部２３１は、入力装置３００を通じて、ユーザによる発話又は対話ブロックに対するリアクションの入力を受け付ける。対話入力部２３１は、入力された発話又はリアクションに関する情報を、入力解釈部２３２に出力する。
【００４２】
入力解釈部２３２は、対話入力部２３１により受け付けられたユーザによるリアクションを解釈し、解釈結果を文脈記録部２３３及びリアクション判定部２３４に出力する。なお、入力解釈部２３２は、解釈部の一例である。
【００４３】
入力解釈部２３２は、例えば、公知の音声認識技術を用いて、リアクションに含まれる音声を認識し、音声に含まれる語句を解釈する。入力解釈部２３２は、例えば、音声に含まれる語句が肯定的であるか否定的であるかを判定する。入力解釈部２３２は、例えばリアクションに「それにする」や「詳しく教えて」といった語句が含まれていれば、リアクションが肯定的であると判定する。また、入力解釈部２３２は、例えばリアクションに「他の」や「別に」といった語句が含まれていれば、リアクションが否定的であると判定する。
【００４４】
また、入力解釈部２３２は、発話内容に対して、場所などの特定の属性を示す語句が入力された場合（スロットフィリング）、当該属性をリアクションの内容として特定する。例えば、明日の天気に関する発話内容に対して「東京の」といった場所が示されていれば、ユーザが「東京の天気」を知りたいと判定する。同様に、ユーザが「今夜の」というように時間を指定した場合、ユーザが「今夜の天気」を知りたいと判定する。
【００４５】
また、発話内容が複数の選択肢を含むものである場合、入力解釈部２３２は、リアクションにどの選択肢が含まれているかを判定する。例えば、発話内容が今夜の夕食に関するものであり、「レストラン予約」、「出前」、「レシピ」などの選択肢が示されていた場合、入力解釈部２３２は、どの選択肢がリアクションに含まれているかを判定する。
【００４６】
なお、入力解釈部２３２は、上記した内容の一部分だけがリアクションに含まれているような場合であっても、リアクションの内容を判定してもよい。例えば、入力解釈部２３２は、「レストラン予約」という選択肢に対して、「レストラン」や「予約」などの一部分の語句だけが含まれている場合に、「レストラン予約」が選択されたと判定してもよい。
【００４７】
文脈記録部２３３は、対話に関する文脈や、ユーザのプロファイルを管理する。文脈記録部２３３は、入力解釈部２３２から解釈結果の出力を受けると、現在の対話における文脈を更新する。例えば、文脈記録部２３３は、レストランの予約に関する対話ブロックが実行された後に、ユーザから今夜の天気に関するリアクションを受け付けた場合、文脈ＤＢ２２２に記憶された文脈を「レストラン」から「天気」に更新する。
【００４８】
また、文脈記録部２３３は、出力された解釈結果に基づいて、ユーザのプロファイルを更新する。例えば、文脈記録部２３３は、ユーザが「高校野球」についての対話ブロックに対して肯定的なリアクションを繰り返したと判定した場合、ユーザが関心を有するカテゴリに「高校野球」を追加する。逆に、文脈記録部２３３は、ユーザが「レシピ」に対して否定的なリアクションを繰り返した場合に、「レシピ」をユーザが関心を有するカテゴリから削除してもよい。
【００４９】
また、文脈記録部２３３は、対話開始のトリガを検出すると、対話を開始させるために、ブロック選択部２５１に対話ブロックの選択指示を出力する。また、文脈記録部２３３は、対話ブロックに対するユーザからのリアクションの入力があった場合、入力解釈部２３２による解釈結果を、文脈ＤＢ２２２に記憶する。なお、文脈記録部２３３は、文脈管理部の一例である。
【００５０】
なお、対話開始のトリガとしては、例えば対話入力部２３１がユーザによる対話開始の指示を受け付けることがあるが、これに限られない。例えば、文脈記録部２３３は、所定の時刻になった場合や、前回の対話終了から所定の時間が経過した場合に対話を開始させてもよい。また、文脈記録部２３３は、ニュース速報に関する情報を受信した場合など、その他の任意のイベントを、対話開始のトリガとして用いてもよい。
【００５１】
また、入力装置３００として各種のセンサを用いる場合、例えば気温が３０℃を超えた場合や、ユーザが転倒したことを検出した場合など、各種のセンシング結果をトリガとして対話を開始してもよい。これにより、いわゆるセンス＆リコメンド方式により、よりアクティブに対話を進めることができる。
【００５２】
なお、文脈記録部２３３は、対話終了のトリガを検出した場合に、対話制御処理を終了させてもよい。文脈記録部２３３は、例えば、ユーザから「またあとで」などの対話の終了を要求するリアクションを受け付けた場合や、ユーザから応答を得ることなくタイムアウトした場合を、対話終了のトリガとして検出する。
【００５３】
リアクション判定部２３４は、解釈結果に基づいて、ユーザによるリアクションが、対話ブロックに含まれる条件と一致するか否かを判定する。リアクション判定部２３４は、リアクションの判定結果を、リアクション対応部２３５に出力する。なお、リアクション判定部２３４は、判定部の一例である。
【００５４】
リアクション対応部２３５は、リアクションの判定結果に基づいて、次の動作を実行する。リアクション対応部２３５は、ブロックＤＢ２２１を参照し、「次の動作」に記憶された動作を実行する。リアクション対応部２３５は、例えば「次の動作」として対話ブロックが記憶されている場合、ブロック選択部２５１に対話ブロックに関する情報を出力する。なお、リアクション対応部２３５は、応答部の一例である。
【００５５】
発話候補管理部２３６は、ブロックＤＢ２２１に記憶された対話ブロックを管理する。発話候補管理部２３６は、ブロック選択部２５１からのリクエストに応じて、ブロックＤＢ２２１から、リクエストに該当する対話ブロック候補を抽出し、ブロック選択部２５１に出力する。なお、発話候補管理部２３６は、候補管理部の一例である。
【００５６】
ブロック選択部２５１は、発話候補管理部２３６に対話ブロックのリクエストを出力し、対話ブロック候補の中から条件に合致する対話ブロックを選択する。なお、ブロック選択部２５１は、選択部の一例である。
【００５７】
ブロック選択部２５１は、例えば以下の優先度で、対話ブロックを選択する。まず、ブロック選択部２５１は、直前に発話した対話ブロックに対するユーザのリアクションに含まれる特定の語をコマンドととらえ、コマンドに対応する対話ブロックを選択する。また、ブロック選択部２５１は、リアクション判定部２３４により、直前に発話した対話ブロックのリアクションが、ブロックＤＢ２２１に記憶された条件と一致すれば、そのリアクションを実行する。また、ブロック選択部２５１は、リアクションが条件と一致しない場合に、直前のユーザ発話などの文脈、ユーザの好み情報やそれに関連する語といったユーザプロファイルを用いて、広い範囲から対話ブロックを選択して実行する。なお、ブロック選択部２５１は、文脈やユーザプロファイル等に基づいて、ランダムに対話ブロックを選択してもよい。
【００５８】
ブロック実行部２５２は、ブロック選択部２５１により選択された対話ブロックを実行する。ブロック実行部２５２は、例えば選択された対話ブロックが、発話内容を対話出力部２５３に出力させる。なお、ブロック実行部２５２は、実行部の一例である。
【００５９】
また、ブロック実行部２５２は、例えば選択された対話ブロックが、特定のアプリの起動や、特定のＷｅｂサービスへのアクセスを含む場合、当該アプリの起動やアクセスを実行する。
【００６０】
対話出力部２５３は、出力装置４００を通じて、ブロック実行部２５２により実行される対話ブロックに含まれる発話内容を出力させる。
【００６１】
サービス検索部２９１は、対話ブロックの生成に用いる情報を取得する。サービス検索部２９１は、例えば外部サーバ５００にアクセスし、ＩＣＴサービスにより提供される情報を取得する。また、サービス検索部２９１は、対話制御装置２００にインストールされた図示しないアプリを起動し、当該アプリから対話ブロックの生成に用いる情報を取得してもよい。サービス検索部２９１は、取得した対話ブロックの生成に用いる情報を、ブロック生成部２９２に出力する。なお、サービス検索部２９１は、検索部の一例である。
【００６２】
ブロック生成部２９２は、サービス検索部２９１が取得した情報を用いて対話ブロックを生成し、ブロックＤＢ２２１に記憶する。ブロック生成部２９２は、例えばサービス検索部２９１がＲＳＳフィードを取得した場合、ＲＳＳフィードに含まれる見出しや本文を、「発話内容」として記憶する。ブロック生成部２９２は、サービス検索部２９１が情報を取得したＩＣＴサービスの名前を、「サービス名」として記憶する。なお、ブロック生成部２９２は、生成部の一例である。
【００６３】
また、ブロック生成部２９２は、当該ＩＣＴサービスが提供する情報のジャンルや、ＲＳＳフィードの本文に頻出する語句などを、「実行条件」として記憶する。同様に、ブロック生成部２９２は、当該ジャンルの情報がアクセスされやすい時間帯や曜日、気象条件、及び当該ジャンルの情報に関連する語句などをさらに「実行条件」として記憶してもよい。
【００６４】
ブロック生成部２９２は、例えば、レシピサイトから抽出される情報を用いて対話ブロックを生成する場合、「肉野菜炒め」などの料理の名前や材料などを「発話内容」として記憶する。また、ブロック生成部２９２は、「実行条件」として、「平日１６時」などユーザが料理を作り始めることが多い時刻や、「夕食」、「献立」といった、レシピに関連する語句などを記憶する。
【００６５】
また、ブロック生成部２９２は、当該「発話内容」に対して想定されるユーザのリアクションや、当該リアクションがあった場合における次の動作などを記憶する。例えば、ブロック生成部２９２は、レシピに関する対話ブロックを生成する際に、「それにする」や「詳しく教えて」といった、発話内容を肯定するようなユーザによる反応を「リアクション」として記憶する。この場合、ブロック生成部２９２は、当該リアクションに対する次の動作として、当該料理の詳細な手順を含む対話ブロックなどを、「次の動作」として記憶する。
【００６６】
さらに、ブロック生成部２９２は、「『材料』（ピーマン、ニンジン等）がない」、「出前を取りたい」というように、発話内容に対して否定的であり、代替案を求めるようなユーザのリアクションを記憶してもよい。この場合、ブロック生成部２９２は、「次の動作」として、例えばリアクションにおいて指摘されたピーマン、ニンジン等の『材料』を用いないレシピに関する対話ブロックを記憶してもよい。さらに、ブロック生成部２９２は、「次の動作」として、「予約サイト」にアクセスして対話ブロックを生成、実行するなどの動作を記憶してもよい。
【００６７】
このように、本実施例におけるブロック生成部２９２は、例えばテレビの番組表のようなフォーマットが固定された情報だけでなく、一般的なＩＣＴサービス全般の多様なフォーマットの情報を用いて、対話ブロックを生成することができる。また、本実施例における対話ブロックは、単なる質問と回答との組み合わせではなく、ユーザのリアクションに応じた多様な次の動作を含む。これにより、ユーザの関心に応じて、固定されたシナリオに縛られることなく、多様な情報を芋づる式に提供することができる。
【００６８】
［処理の流れ］
次に、本実施例における処理について、図４乃至図６を用いて説明する。図４は、実施例１における対話制御処理の一例を示すフローチャートである。図４に示すように、入力装置３００の文脈記録部２３３は、例えば対話入力部２３１を通じて対話開始のトリガを検出するまで待機する（Ｓ１００：Ｎｏ）。
【００６９】
文脈記録部２３３は、対話開始のトリガを検出したと判定した場合（Ｓ１００：Ｙｅｓ）、ブロック選択部２５１に対話ブロックの選択指示を出力する。ブロック選択部２５１は、ブロックＤＢ２２１を参照して、対話ブロックの候補を選択し、ブロック実行部２５２に出力する（Ｓ１０１）ブロック実行部２５２は、出力された対話ブロックを実行する（Ｓ１０２）。ブロック実行部２５２は、例えば出力された対話ブロックが発話内容である場合、対話出力部２５３に、発話内容を音声として出力させ、又は文字として表示させる（Ｓ１０３）。
【００７０】
次に、対話入力部２３１は、入力装置３００を通じてユーザからリアクションの入力を受け付けたか否かを判定する（Ｓ１１０）。対話入力部２３１は、ユーザからリアクションの入力を受け付けていないと判定した場合（Ｓ１１０：Ｎｏ）、タイムアウトになるまで待機する（Ｓ１２０：Ｎｏ）。対話入力部２３１は、タイムアウトになったと判定した場合（Ｓ１２０：Ｙｅｓ）、Ｓ１３２に移行する。
【００７１】
対話入力部２３１は、リアクションの入力を受け付けたと判定した場合（Ｓ１１０：Ｙｅｓ）、入力されたリアクションを入力解釈部２３２に出力する。入力解釈部２３２は、出力されたリアクションを解釈し、解釈結果を文脈記録部２３３及びリアクション判定部２３４に出力する（Ｓ１３０）。文脈記録部２３３は、出力された解釈結果に基づいて、文脈ＤＢ２２２を更新する（Ｓ１３１）。
【００７２】
次に、リアクション判定部２３４は、解釈結果に基づいて、ユーザによるリアクションが、対話ブロックに含まれる条件と一致するか否かを判定する（Ｓ１３２）。また、リアクション判定部２３４は、Ｓ１２０においてタイムアウトになったと判定された場合についても、タイムアウト対話ブロックに含まれる条件と一致するか否かを判定する。
【００７３】
リアクション対応部２３５は、条件と一致すると判定された場合（Ｓ１４０：Ｙｅｓ）、ブロックＤＢ２２１を参照して、ユーザのリアクションに対する対応を実行する（Ｓ１５１）。また、リアクション対応部２３５は、当該リアクションに対する対応に、次の対話ブロックの指定が含まれるか否かを判定する（Ｓ１６０）。ブロック選択部２５１は、次の対話ブロックの指定が含まれると判定した場合（Ｓ１６０：Ｙｅｓ）、指定された対話ブロックを選択する（Ｓ１６１）。その後、Ｓ１９９に移行する。
【００７４】
一方、ユーザによるリアクションが条件と一致しないと判定された場合（Ｓ１４０：Ｎｏ）、ブロック選択部２５１は、文脈ＤＢ２２２を参照し、文脈及びユーザプロファイルに合致する対話ブロックを選択する（Ｓ１７０）。
【００７５】
次に、文脈記録部２３３は、対話終了の条件に合致したか否かを判定する（Ｓ１９９）。文脈記録部２３３は、終了条件に合致しないと判定した場合（Ｓ１９９：Ｎｏ）、Ｓ１０２に戻って処理を繰り返す。一方、文脈記録部２３３は、終了条件に合致したと判定した場合（Ｓ１９９：Ｙｅｓ）、処理を終了する。
【００７６】
次に、図４に示す対話制御処理における対話の流れについて説明する。図５は、実施例１における対話の流れの一例を示すフローチャートである。図５に示すように、対話制御装置２００は、ブロックＤＢ２２１を参照して、例えば「●●高校野球大会の本塁打数が最多ペースです」といった発話内容を含む対話ブロックを選択して発話させる（Ｓ２００）。
【００７７】
対話制御装置２００は、例えば「詳しく教えて」というように、発話内容に関する詳細な情報を要求するリアクションを受け付けた場合（Ｓ２１０：Ｙｅｓ）、ブロックＤＢ２２１を参照して、発話内容に対応する対話ブロックを抽出する（Ｓ２３０）。そして、対話制御装置２００は、例えば「夏の高校野球二日目の結果は〜」というような発話内容を含む対話ブロックを選択して発話させる（Ｓ２３１）。そして、次のユーザによるリアクションがあるまで待機する。
【００７８】
また、対話制御装置２００は、発話内容に関する詳細な情報を要求するリアクションを受け付けなかった場合（Ｓ２１０：Ｎｏ）、例えば「何の話？」というような、発話内容に関する概要の説明を要求するリアクションを受け付けたか否か判定する（Ｓ２１１）。対話制御装置２００は、発話内容に関する概要の説明を要求するリアクションを受け付けたと判定した場合（Ｓ２１１：Ｙｅｓ）、例えば百科事典サイトなどの外部サーバ５００にアクセスし、関連するコンテンツを抽出する（Ｓ２４０）。そして、対話制御装置２００は、例えば「●●高校野球大会は、今年で１００回目を迎える〜」などの対話ブロックを生成して実行する（Ｓ２４１）。そして、次のユーザによるリアクションがあるまで待機する。
【００７９】
また、対話制御装置２００は、発話内容に関する概要の説明を要求するリアクションを受け付けなかった場合（Ｓ２１１：Ｎｏ）、例えば「興味ない」のように発話内容に関する関心がないことを示すリアクションを受け付けたか否かを判定する（Ｓ２１２）。対話制御装置２００は、発話内容に関する関心がないことを示すリアクションを受け付けた場合（Ｓ２１２：Ｙｅｓ）、外部サーバ５００にアクセスし、発話内容と関連しない別のコンテンツを抽出する（Ｓ２５０）。例えば、対話制御装置２００は、テレビ番組情報サイトにアクセスし、「今夜のドラマ●●は、第●回〜」などの対話ブロックを生成して実行する（Ｓ２５１）。そして、次のユーザによるリアクションがあるまで待機する。
【００８０】
なお、対話制御装置２００は、例えばいずれのリアクションも受け付けることなく（Ｓ２１２：Ｎｏ）、タイムアウトしたと判定した場合も（Ｓ２１３：Ｙｅｓ）、発話内容と関連しない別のコンテンツを抽出してもよい（Ｓ２５０）。
【００８１】
次に、対話ブロックが複数の選択肢を含むような場合における対話の流れについて説明する。図６は、実施例１における対話の流れの別の一例を示すフローチャートである。なお、以下の説明において、図５に示すステップと同じ符号については同様のステップであるため、詳細な説明を省略する。
【００８２】
図６に示す例において、対話制御装置２００は、ブロックＤＢ２２１を参照して、対話ブロックとして、例えば「レストラン」、「宅配」、「宴会」などの選択肢をリアクションとして含む対話ブロックを選択して発話させる（Ｓ３００）。その後、対話制御装置２００は、ユーザのリアクションがあるまで待機する（Ｓ３１０：「リアクションなし」）。対話制御装置２００は、タイムアウトするまで、ユーザのリアクションを待機し（Ｓ３１１：Ｎｏ）、ユーザからの反応を得ることなくタイムアウトした場合（Ｓ３１１：Ｙｅｓ）、Ｓ２５０に移行する。
【００８３】
対話制御装置２００は、例えば「宴会」などのように、いずれかの選択肢を特定するリアクションを受け付けた場合（Ｓ３１０：「宴会」）、ブロックＤＢ２２１を参照して、リアクションに対応する対話ブロックを抽出する。そして、対話制御装置２００は、『場所はどこにしますか』等の発話内容を含む対話ブロックを実行し（Ｓ３２１）、ユーザのリアクションがあるまで待機する（Ｓ３３０：「リアクションなし」）。
【００８４】
対話制御装置２００は、例えば「川崎」のように、場所を特定するリアクションを受け付けた場合（Ｓ３３０：「川崎」）、次の対話ブロックを実行する。本実施例において、対話制御装置２００は、レストラン予約サイトにアクセスし、「川崎」における検索結果を発話内容とする対話ブロックを実行する（Ｓ３３１）。対話制御装置２００は、例えば「川崎周辺のお店が４０件見つかりました。おすすめはオープンテラスで〜」というような発話内容を出力させる。そして、次のユーザによるリアクションがあるまで待機する（Ｓ３４０）。
【００８５】
この場合において、ユーザが「そこにする」というように、肯定的なリアクションを示した場合（Ｓ３４０：「そこにする」）、対話制御装置２００は、次の対話ブロックを実行する。本実施例において、対話制御装置２００は、レストランの予約に必要な情報の入力を求める対話ブロックを選択して実行する。対話制御装置２００は、例えば「ありがとうございます。人数と時間をお知らせください。」というような発話内容を出力させ（Ｓ３４１）、次のリアクションがあるまで待機する。
【００８６】
一方、ユーザが「天気はどうかな？」というように、想定外のリアクションを示した場合（Ｓ３４０：「天気はどうかな？」）、対話制御装置２００は、天気に関する対話ブロックを選択して実行する。本実施例において、対話制御装置２００は、気象情報サイトにアクセスし、検索結果を発話内容とする対話ブロックを選択して実行する（Ｓ３５０）。対話制御装置２００は、例えば「今夜の川崎の天気は〜」というような発話内容を出力させ（Ｓ３５１）、次のリアクションがあるまで待機する。
【００８７】
［効果］
以上説明したように、本実施例における対話制御装置は、コンテンツを対話単位に分解して生成された対話ブロックを選択して提示する。本実施例における対話制御装置は、提示した対話ブロックに対するユーザの反応を判定する。また、本実施例における対話制御装置は、ユーザの反応の判定結果に基づいて、次の応答又は対話ブロックを選択する。すなわち、対話制御装置は、異なるデータ構造を有するＩＣＴサービスから、一往復レベルの対話に対応した対話ブロックを定義するので、対話判断を行うためのデータベースを生成できる。これにより、ユーザが求めるサービスに係る情報を提供できる。
【００８８】
また、本実施例における対話制御装置は、インターネット上のＩＣＴサービスのＷｅｂコンテンツを検索する。対話制御装置は、検索されたＩＣＴサービスのＷｅｂコンテンツを、「発話内容」と、「想定されるユーザによる反応」とを含む一往復レベルの対話（対話単位）に分解して対話ブロックを生成する。そして、対話制御装置は、ユーザの反応の判定結果に基づいて、生成部に対話ブロックの生成を指示し、生成された対話ブロックを選択する。これにより、ユーザの求めるサービスに応じた対話ブロックをリアルタイムで生成できる。
【００８９】
また、本実施例における対話制御装置は、対話アクションと、当該対話アクションに対するユーザの反応を特定する条件と、当該ユーザの反応に対するシステムの動作の定義及び実行条件とを含む対話ブロックを管理する。対話制御装置は、対話における文脈及びユーザプロファイルを管理し、対話における文脈及びユーザプロファイルを用いて対話ブロックを選択する。これにより、ユーザが求めるサービスに係る情報を、対話における文脈やユーザプロファイルに応じて提供できる。
【００９０】
また、本実施例における対話制御装置は、選択した対話ブロックを、当該対話ブロックに含まれる実行条件に基づいて実行し、実行した対話ブロックに対するユーザの反応を解釈し、解釈結果を文脈管理部に反映する。対話制御装置は、解釈結果に基づいて、次の応答又は対話ブロックを選択する。これにより、ユーザが求めるサービスに係る情報を、対話におけるユーザのリアクションに応じて提供できる。
【００９１】
また、本実施例における対話制御装置は、ユーザの反応が肯定的であるか又は想定されるものであったと判定された場合は、ユーザが反応した対話ブロックに関連する対話ブロックを選択する。対話制御装置は、ユーザの反応が否定的であるか又は想定の範囲外のものであったと判定された場合は、ユーザが反応した対話ブロックとの関連性が低い対話ブロックを選択する。これにより、対話において、ユーザが肯定的に対応した場合及び否定的に対応した場合のいずれについても、ユーザが求めるサービスに係る情報を芋づる式に提供できる。
【実施例２】
【００９２】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。例えば、ユーザのリアクションに応じて対話ブロックを選択して実行する構成について説明したが、対話中に地震や事故などの緊急性の高い事態が生じる場合がある。その際に、緊急性の高い発話候補を選択するような構成について説明する。なお、本実施例における処理は、図２に示すような対話制御装置２００と同等の構成により実現できるため、機能ブロックに関する詳細な説明は省略する。
【００９３】
［処理の流れ］
本実施例における処理について、図７を用いて説明する。図７は、実施例２における対話制御処理の一例を示すフローチャートである。なお、以下の説明において、図４に示すステップと同じ符号については同様のステップであるため、詳細な説明を省略する。
【００９４】
本実施例における対話制御装置２００のブロック選択部２５１は、指定された対話ブロックが選択された場合（Ｓ１６１）又は文脈に応じた対話ブロックが選択された場合（Ｓ１７０）において、緊急性の高い対話ブロックが存在するか否かを判定する（Ｓ１８０）。ブロック選択部２５１は、緊急性の高い対話ブロックが存在しないと判定した場合（Ｓ１８０：Ｎｏ）、Ｓ１９９に移行する。
【００９５】
ブロック選択部２５１は、緊急性の高い対話ブロックが存在すると判定した場合（Ｓ１８０：Ｙｅｓ）、Ｓ１６１又はＳ１７０において選択された対話ブロックに代えて、当該緊急性が高い対話ブロックを選択する（Ｓ１８１）。その後、Ｓ１９９に移行する。
【００９６】
また、上記対話制御装置２００は、出力した発話内容に対して、ユーザから否定的なリアクションを受け付けた場合に、関連の薄いその他の対話ブロックを選択して実行する。その際、例えば対話ブロックの数等に応じて次に実行する対話ブロックを選択すると、特定のアプリやＩＣＴサービスに基づく対話ブロックの数が多い場合に、当該アプリやＩＣＴサービスに基づく対話ブロックばかりが選択される場合がある。
【００９７】
そこで、本実施例においては、同じアプリやＩＣＴサービスに基づく対話ブロックばかりが選択されないように、まずどのアプリやＩＣＴサービスに基づく対話ブロックを実行するかを特定し、特定された対話ブロックの候補の中から対話ブロックを選択する。
【００９８】
本実施例における対話の流れについて、図８を用いて説明する。図８は、実施例２における対話の流れの一例を示すフローチャートである。図８に示す例において、対話制御装置２００は、「そろそろ夕食にしませんか？」などの発話内容を含む対話ブロックを選択して発話させる（Ｓ４００）。そして、対話制御装置２００は、「おなかすいた」などのように、発話内容に対して肯定的なリアクションを受け付けたか否かを判定する（Ｓ４１０）。
【００９９】
対話制御装置２００は、肯定的なリアクションを受け付けなかったと判定した場合（Ｓ４１０：Ｎｏ）、「まだいらない」などのように否定的なリアクションを受け付けたか否かを判定する（Ｓ４１２）。対話制御装置２００は、否定的なリアクションも受け付けなかったと判定した場合（Ｓ４１２：Ｎｏ）、タイムアウトまで待機する（Ｓ４１３：Ｎｏ）。対話制御装置２００は、否定的なリアクションを受け付けたと判定した場合（Ｓ４１２：Ｙｅｓ）、及びタイムアウトが発生したと判定した場合（Ｓ４１３：Ｙｅｓ）、Ｓ４６０に移行する。
【０１００】
一方、対話制御装置２００は、発話内容に対して肯定的なリアクションを受け付けたと判定した場合（Ｓ４１０：Ｙｅｓ）、ブロックＤＢ２２１を参照して、レシピを発話内容とする対話ブロックを抽出する（Ｓ４２０）。そして、対話制御装置２００は、『肉野菜炒めがお勧めです。』等の発話内容を含む対話ブロックを実行し（Ｓ４２１）、ユーザのリアクションがあるまで待機する（Ｓ４３０）。
【０１０１】
対話制御装置２００は、例えば「それでお願い」というように、肯定的なリアクションを受け付けた場合（Ｓ４３０：「それでお願い」）、次の対話ブロックを実行する。本実施例において、対話制御装置２００は、肉野菜炒めのレシピに関する発話内容を含む対話ブロックを実行する（Ｓ４３１）。そして、次のユーザによるリアクションがあるまで待機する。
【０１０２】
一方、ユーザが「ピーマンが無いな」というように、否定的なリアクションを示した場合（Ｓ４３０：「ピーマンが無いな」）、対話制御装置２００は、次の対話ブロックを実行する。本実施例において、対話制御装置２００は、『ピーマンを使わないレシピを探しますか？』などのような対話内容を含む対話ブロックを選択して実行し（Ｓ４３２）、次のリアクションがあるまで待機する（Ｓ４４０）。
【０１０３】
この場合において、ユーザが「それでお願い」というように、肯定的なリアクションを示した場合（Ｓ４４０：「それでお願い」）において、対話制御装置２００は、緊急性の高い対話ブロックがあるか否かを判定する（Ｓ４５０）。対話制御装置２００は、緊急性の高い対話ブロックがないと判定した場合（Ｓ４５０：Ｎｏ）、例えば『ロールキャベツはいかがですか〜』というような、別のレシピを提案する発話内容を出力させ（Ｓ４５１）、次のリアクションがあるまで待機する。
【０１０４】
一方、対話制御装置２００は、緊急性の高い対話ブロックがあると判定した場合（Ｓ４５０：Ｙｅｓ）、緊急性の高い対話ブロックを選択して実行する。本実施例において、対話制御装置２００は、『神奈川県南部で震度４を〜』などのように、緊急性の高い情報を発話内容とする対話ブロックを選択して実行し（Ｓ４５２）、次のリアクションがあるまで待機する。
【０１０５】
なお、対話制御装置２００は、Ｓ４１２において否定的なリアクションを受け付けた場合（Ｓ４１２：Ｙｅｓ）又はタイムアウトを検出した場合（Ｓ４１３：Ｙｅｓ）、次の対話ブロックの候補とするアプリ又はＷｅｂサービスをランダムに選択する（Ｓ４６０）。対話制御装置２００は、選択されたアプリ又はＷｅｂサービスの中から、新たな対話ブロックを抽出する（Ｓ４６１）。本実施例において、対話制御装置２００は、例えば『今日の高校野球は〜』などのように、図５のＳ２５０に示すような対話ブロックとは異なる発話内容を含む対話ブロックを選択し（Ｓ４６２）、次のリアクションがあるまで待機する。
【０１０６】
なお、上記対話の流れにおいては、Ｓ４５０において緊急性の高い対話ブロックがあるか否かを判定する場合について説明したが、判定のタイミングはこれに限られず、Ｓ４１０の後、Ｓ４３０の後等の任意のタイミングで判定するような構成であってもよい。
【０１０７】
以上説明したように、本実施例における対話制御装置は、応答として次の対話ブロックの選択を指定された場合において、緊急性の高い発話候補の対話ブロックがあるか否かを判定する。対話制御装置は、緊急性の高い発話候補の対話ブロックがあると判定した場合、当該緊急性の高い発話候補の対話ブロックを優先して選択する。これにより、緊急性の高い情報を優先して提供できる。
【０１０８】
また、本実施例における対話制御装置は、対話ブロックの生成元であるＩＣＴサービスをランダムに選択する。対話制御装置は、ユーザが反応した対話ブロックとの関連性が低い対話ブロックを、選択されたＩＣＴサービスのＷｅｂコンテンツから生成された対話ブロックの中から選択する。これにより、特定のアプリやＩＣＴサービスに基づく対話ブロックに偏ることなく、ユーザが求めるサービスに係る情報を提供することができる。
【０１０９】
なお、ブロックＤＢ２２１に記憶される対話ブロックは、例えば外部のコンピュータから取得された情報であってもよく、また図示しない対話制御装置２００の管理者により入力されてもよい。
【０１１０】
［システム］
また、上記の実施形態では、インタラクションロボットが通信部、記憶部及び制御部を有することにより対話制御装置２００を実現した場合について説明したが、これに限定されない。例えば、パーソナルコンピュータ（ＰＣ：Personal  Computer）を始めとする固定端末や、携帯電話機、ＰＨＳ（Personal  Handyphone  System）やＰＤＡ（Personal  Digital  Assistant）などの移動体端末により対話制御装置２００を実現してもよい。例えば、固定端末や移動体端末により対話制御装置２００を実現する場合、ディスプレイの上部などに設けられたカメラからの動画像により発話を検知すればよい。
【０１１１】
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、制御部２３０の各処理部が適宜統合されてもよい。また、各処理部の処理が適宜複数の処理部の処理に分離されてもよい。さらに、各処理部にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１１２】
また、上記の実施形態で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図９を用いて、上記の実施形態と同様の機能を有する対話制御プログラムを実行するコンピュータの一例について説明する。
【０１１３】
図９は、対話制御プログラムを実行するコンピュータの一例を示す図である。図９に示すように、コンピュータ１００は、操作部１１０ａと、スピーカ１１０ｂと、カメラ１１０ｃと、マイク１１０ｄ、ディスプレイ１２０と、通信部１３０とを有する。さらに、このコンピュータ１００は、ＣＰＵ１５０と、ＲＯＭ１６０と、ＨＤＤ１７０と、ＲＡＭ１８０とを有する。これら１１０〜１８０の各部はバス１４０を介して接続される。
【０１１４】
ＨＤＤ１７０には、対話制御装置２００の各処理部と同様の機能を発揮する対話制御プログラム１７０ａが予め記憶される。この対話制御プログラム１７０ａについては、上述した実施形態で示した各構成要素と同様、適宜統合又は分離してもよい。すなわち、ＨＤＤ１７０に格納される各データは、常に全てのデータがＨＤＤ１７０に格納される必要はなく、処理に必要なデータのみがＨＤＤ１７０に格納されればよい。
【０１１５】
そして、ＣＰＵ１５０が、対話制御プログラム１７０ａをＨＤＤ１７０から読み出してＲＡＭ１８０に展開する。これによって、対話制御プログラム１７０ａは、対話制御プロセス１８０ａとして機能する。この対話制御プロセス１８０ａは、ＨＤＤ１７０から読み出した各種データを適宜ＲＡＭ１８０上の自身に割り当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。なお、対話制御プロセス１８０ａは、対話制御装置２００の各処理部にて実行される処理、例えば図２に示す処理を含む。また、ＣＰＵ１５０上で仮想的に実現される各処理部は、常に全ての処理部がＣＰＵ１５０上で動作する必要はなく、処理に必要な処理部のみが仮想的に実現されれば良い。
【０１１６】
なお、上記の対話制御プログラム１７０ａについては、必ずしも最初からＨＤＤ１７０やＲＯＭ１６０に記憶させておく必要はない。例えば、コンピュータ１００に挿入されるフレキシブルディスク、いわゆるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ１００がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１００に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ１００がこれらから各プログラムを取得して実行するようにしてもよい。
【符号の説明】
【０１１７】
２００  対話制御装置
２１０  通信部
２２０  記憶部
２２１  ブロックＤＢ
２２２  文脈ＤＢ
２３０  制御部
２３１  対話入力部
２３２  入力解釈部
２３３  文脈記録部
２３４  リアクション判定部
２３５  リアクション対応部
２３６  発話候補管理部
２５１  ブロック選択部
２５２  ブロック実行部
２５３  対話出力部
２９１  サービス検索部
２９２  ブロック生成部
３００  入力装置
４００  出力装置
５００  外部サーバ
【図１】
2019046101.tif 000003
【図２】
2019046101.tif 000004
【図３】
2019046101.tif 000005
【図４】
2019046101.tif 000006
【図５】
2019046101.tif 000007
【図６】
2019046101.tif 000008
【図７】
2019046101.tif 000009
【図８】
2019046101.tif 000010
【図９】
2019046101.tif 000011