(57)【要約】【課題】ユーザ毎の選択履歴に応じて、最適な検索対象の絞込みをすることの出来る質問の順序を制御することが出来る情報処理装置及び情報処理方法を提供する。【解決手段】情報処理装置１０は、ユーザに対して提供する質問文データを記憶する対話シナリオ記憶部１３と、質問文に対するユーザ毎の回答履歴である対話履歴データを記憶する対話履歴データ記憶部１４と、対話履歴データの件数及び検索対象データの件数に基づいて、ユーザに提供する質問文を選択し、質問文に対するユーザの回答に基づいて検索対象データを絞り込む対話制御部１６と、質問文のユーザへの提供、ユーザからの質問文に対する回答の取得、及び、回答に基づいて絞り込まれた検索対象データのユーザへの提供を実行する入出力制御部１１と、を有する。【選択図】図４
2011076360.tif 000002
【特許請求の範囲】
【請求項１】
ユーザに対して提供する質問文を記憶する対話シナリオ記憶部と、
前記質問文に対するユーザ毎の回答履歴である対話履歴データを記憶する対話履歴データ記憶部と、
前記対話履歴データの件数及び検索対象データの件数に基づいて、前記ユーザに提供する質問文を選択し、前記質問文に対する前記ユーザの回答に基づいて前記検索対象データを絞り込む対話制御部と、
前記質問文のユーザへの提供、前記ユーザからの前記質問文に対する回答の取得、及び、前記回答に基づいて絞り込まれた前記検索対象データの前記ユーザへの提供の実行を制御する入出力制御部と、
を備えることを特徴とする、情報処理装置。
【請求項２】
前記対話制御部は、前記質問文の回答の各選択肢に対応する検索対象データの件数と、前記各選択肢に対応する前記対話履歴データの件数とに基づいて、前記質問文によって絞り込むことの出来る検索対象データの件数の期待値を算出し、当該期待値に基づいて複数の前記質問文の中から前記ユーザに提供する質問文を選択することを特徴とする、請求項１に記載の情報処理装置。
【請求項３】
前記対話制御部は、前記ユーザに提供する前記検索対象データの件数が所定の結果件数閾値以下となるまで質問文の選択を繰り返すことを特徴とする、請求項１又は２のいずれかに記載の情報処理装置。
【請求項４】
前記対話履歴データは、前記質問文に対する回答を指定しない場合のデータを含むことを特徴とする、請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記対話制御部は、前記ユーザに対応する前記対話履歴データの件数が所定の履歴件数下限閾値以下である場合には、前記ユーザに限定しない前記対話履歴データの件数を用いて前記ユーザに提供する質問文を選択することを特徴とする、請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記対話制御部は、前記ユーザに対応する前記対話履歴データの件数が所定の履歴件数上限閾値以上である場合には、時間、場所、日付、及び曜日の少なくともいずれかを用いてさらに絞り込んだ前記対話履歴データの件数を用いて前記ユーザに提供する質問文を選択することを特徴とする、請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
ユーザに対して提供する質問文データを記憶する対話シナリオ記憶部と、前記質問文に対するユーザ毎の回答履歴である対話履歴データを記憶する対話履歴データ記憶部と、前記ユーザに提供する質問文を選択し、前記質問文に対する前記ユーザの回答に基づいて検索対象データを絞り込む対話制御部と、前記質問文のユーザへの提供、前記ユーザからの前記質問文に対する回答の取得、及び、前記回答に基づいて絞り込まれた前記検索対象データの前記ユーザへの提供を実行する入出力部と、を有する情報処理装置の前記対話制御部が、前記対話履歴データの件数及び前記検索対象データの件数に基づいて前記ユーザに提供する質問文を選択するステップを含む、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
近年、様々な情報がデータベース化されて大量に提供されている。私たちは、これらの情報を検索することによって所望の情報を容易に手に入れることが出来る。例えば、このような情報の例としては、レストラン情報、求人情報、物件情報、金融商品情報、旅行情報、ホテル情報、などが挙げられる。
【０００３】
このような大量の情報から効率的に所望の情報を手に入れるためには、検索条件の設定が特に重要である。検索条件の設定のための１つの方法として、システムが提供する質問に対してユーザが対話的に回答していくことによって検索対象を段階的に絞り込んでいく方法が提供されている。このような対話的な検索システムにおいては、質問を提供する順序によって所望の情報に辿り着く効率が大きく左右される。例えば、特許文献１には、システムが提供する質問に対する回答の選択肢それぞれの検索結果件数から計算したエントロピーに基づいて、質問を提供する順番を決定する対話システムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２５５９９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、単純に検索結果の件数に基づいて質問の順番を決定するこのようなシステムでは、ユーザ毎に質問に対する回答に偏りがある場合であっても考慮されず、どのユーザにも同じ質問が提供され、必ずしも効率的に検索対象の絞込みが行われないという問題があった。例えば、レストラン検索の場合において、あるユーザは、必ず車で出かけるため、毎回、駐車場のあるレストランしか検索しないかもしれない。また、例えば、あるユーザは、車を所有していないため、駐車場の有無は重要でなく、毎回指定しないで検索するかもしれない。ところが、このようなユーザ毎の条件は考慮されていなかった。
【０００６】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、ユーザ毎の選択履歴に応じて、最適な検索対象の絞込みをすることの出来る質問の順序を制御することが可能な、新規かつ改良された情報処理装置、及び情報処理方法を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある観点によれば、ユーザに対して提供する質問文データを記憶する対話シナリオ記憶部と、上記質問文に対するユーザ毎の回答履歴である対話履歴データを記憶する対話履歴データ記憶部と、上記対話履歴データの件数及び検索対象データの件数に基づいて、上記ユーザに提供する質問文を選択し、上記質問文に対する上記ユーザの回答に基づいて上記検索対象データを絞り込む対話制御部と、上記質問文のユーザへの提供、上記ユーザからの上記質問文に対する回答の取得、及び、上記回答に基づいて絞り込まれた上記検索対象データの上記ユーザへの提供の実行を制御する入出力制御部とを有することを特徴とする、情報処理装置が提供される。
【０００８】
かかる構成によれば、対話制御部は、ユーザ毎の選択履歴に基づいて、ユーザに提供する質問文を選択する。このため、対話制御部は、ユーザ毎にカスタマイズされた順序で質問文を提供することが出来、検索の効率を改善することが出来るようになる。
【０００９】
また、上記対話制御部は、上記質問文の回答の各選択肢に対応する検索対象データの件数と、上記各選択肢に対応する上記対話履歴データの件数とに基づいて、上記質問文によって絞り込むことの出来る検索対象データの件数の期待値を算出し、当該期待値に基づいて複数の上記質問文の中から上記ユーザに提供する質問文を選択してもよい。
【００１０】
また、上記対話制御部は、上記ユーザに提供する上記検索対象データの件数が所定の結果件数閾値以下となるまで質問文の選択を繰り返してもよい。
【００１１】
また、上記対話履歴データは、上記質問文に対する回答を指定しない場合のデータを含んでもよい。
【００１２】
また、上記対話制御部は、上記ユーザに対応する上記対話履歴データの件数が所定の履歴件数下限閾値以下である場合には、上記ユーザに限定しない上記対話履歴データの件数を用いて上記ユーザに提供する質問文を選択してもよい。
【００１３】
また、上記対話制御部は、上記ユーザに対応する上記対話履歴データの件数が所定の履歴件数上限閾値以上である場合には、時間、場所、日付、及び曜日の少なくともいずれかを用いてさらに絞り込んだ上記対話履歴データの件数を用いて上記ユーザに提供する質問文を選択してもよい。
【００１４】
また、上記課題を解決するために、本発明の別の観点によれば、ユーザに対して提供する質問文データを記憶する対話シナリオ記憶部と、上記質問文に対するユーザ毎の回答履歴である対話履歴データを記憶する対話履歴データ記憶部と、上記ユーザに提供する質問文を選択し、上記質問文に対する上記ユーザの回答に基づいて検索対象データを絞り込む対話制御部と、上記質問文のユーザへの提供、上記ユーザからの上記質問文に対する回答の取得、及び、上記回答に基づいて絞り込まれた上記検索対象データの上記ユーザへの提供を実行する入出力部と、を有する情報処理装置の上記対話制御部が、上記対話履歴データの件数及び上記検索対象データの件数に基づいて上記ユーザに提供する質問文を選択するステップを含む、情報処理方法が提供される。
【発明の効果】
【００１５】
以上説明したように本発明によれば、ユーザ毎の選択履歴に応じた検索対象の絞込みをすることの出来る質問の順序を制御することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態に係る情報処理システムの概要を示す模式図である。
【図２】ユーザ装置の画面表示の一例を示す説明図である。
【図３】ユーザ装置の画面表示の他の一例を示す説明図である。
【図４】情報処理装置の機能構成を示すブロック図である。
【図５】対話シナリオデータの一例を示す説明図である。
【図６】質問文データの一例を示す説明図である。
【図７】選択肢データの一例を示す説明図である。
【図８】対話履歴データの一例を示す説明図である。
【図９】検索対象データの一例を示す説明図である。
【図１０】対話制御の全体の流れを示すフローチャートである。
【図１１】対話初期処理の流れを示すフローチャートである。
【図１２】対話シナリオデータ取得処理の流れを示すフローチャートである。
【図１３】対話処理の流れを示すフローチャートである。
【図１４】質問文データ取得処理の流れを示すフローチャートである。
【図１５】選択肢データ取得処理の流れを示すフローチャートである。
【図１６】対象データ検索処理の流れを示すフローチャートである。
【図１７】順序制御処理の流れを示すフローチャートである。
【図１８】対話履歴データカウント処理の流れを示すフローチャートである。
【図１９】対象データカウント処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１８】
＜情報処理システム１００の概要＞
まず、図１を用いて本発明の一実施形態に係る情報処理システム１００の概要について説明する。図１は、本発明の一実施形態に係る情報処理システムの概要を示す模式図である。図１を参照すると、情報処理システム１００は、情報処理装置１０、ユーザ装置２０、基地局３０、及び通信網４０を主に有する。
【００１９】
情報処理装置１０は、ユーザ装置２０に対して提供するアプリケーションを実行するアプリケーションサーバの機能を有する。本実施形態においては、情報処理装置１０は、レストラン検索の機能をユーザに提供する。
【００２０】
ユーザ装置２０は、ユーザが操作することによって情報処理装置１０にネットワークを介して接続可能な端末装置である。ユーザ装置２０は、情報処理装置１０が提供するサービスを利用してその表示部に情報処理装置１０が生成した画面を表示させることが可能である。ユーザ装置２０は、例えば、携帯電話である。また、ユーザ装置２０は、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）などの端末装置であってもよい。本実施形態においては、ユーザ装置２０は、基地局３０、通信網４０を介して、情報処理装置１０と接続する。
【００２１】
基地局３０は、携帯電話網の末端装置である。基地局３０は、ユーザ装置２０が携帯電話である場合に、ユーザ装置２０と無線通信を行う機能を有する。
【００２２】
情報処理装置１０は、質問文とその質問文に対する回答とをユーザと対話的に交換し、ユーザから取得した回答に基づいて（回答を検索条件の一部として）検索対象データを絞り込み、その結果をユーザに提供する。質問文の提供と回答の取得はその結果及び用意された質問の数に応じて複数回繰り返される。
【００２３】
例えば、図２に情報処理装置１０がユーザ装置２０に提供する画面の一例を示した。図２は、ユーザ装置の画面表示の一例を示す説明図である。例えば、レストラン検索において、初めに「ご希望の場所はどこですか？」という質問文を提供し、それに対してユーザが「田町」という回答を送信したとする。情報処理装置１０は、「田町にあるレストラン」を、検索対象データの中から抽出し、ユーザに提供する。次に情報処理装置１０は、「どんなものが食べたいですか？」と、料理のカテゴリを質問してもよいし、「駐車場はあったほうがいいですか？」と、駐車場の要否を質問してもよい。
【００２４】
このように、対話的に質問と回答とを繰り返し、対象データを絞り込んでいく検索システムにおいて、質問する順番は、検索対象データの絞込みの精度に大きく影響する。従って、質問の順番を効率的に制御することは、検索サービスの質を向上させる上で非常に重要なポイントとなる。
【００２５】
ここで、質問の順番を決定する１つの方法として、期待値を用いた方法がある。例えば、特許文献１には、テレビ予約に適用した対話的な情報検索システムにおいて、各質問に対する回答をクラスとして、各クラスに属する検索結果件数から期待値を計算して質問の順序を決定するシステムが記載されている。ここで用いる期待値Ｈ（Ｃｊ）は下記の数式（１）によって求められる。
【００２６】
【数１】
2011076360.tif 000003
【００２７】
ここで、Ｎｔｏｔａｌは、番組の候補の総数であり、Ｎｃｌａｓｓ（ｉ）は、各クラスに属する番組数であり、Ｉはクラス数である。
【００２８】
この特許文献１に記載された方法においては、ユーザ毎の選択特性は考慮されないものであり、どのユーザに対しても一律に同じ順番で質問を提供するものであった。また、質問に対する回答として、「指定しない」場合を考慮したものではないため、例えば本実施形態において説明するレストラン検索に適用した場合に、ユーザが条件を「指定しない」という回答が多い場合には、効率的な絞込みが出来ないという問題があった。
【００２９】
そこで、以下に説明する本実施形態に係る情報処理装置１０は、ユーザの回答履歴に基づいて期待値を計算し、この期待値に基づいて質問を提供する順序を制御する。
【００３０】
＜情報処理装置１０の機能構成＞
次に、上記の機能を実現するための、情報処理装置１０の機能構成について図４を用いて説明する。図４は、情報処理装置の機能構成を示すブロック図である。
【００３１】
情報処理装置１０は、入出力制御部１１、メモリ部１２、対話シナリオ記憶部１３、対話履歴データ記憶部１４、検索対象データ記憶部１５、対話制御部１６を主に有する。
【００３２】
（入出力制御部１１）
入出力制御部１１は、情報処理装置１０への入力及び出力を制御する機能を有する。入出力制御部１１は、対話制御部１６及び通信網４０（ここでは図示せず）に接続される。本実施形態においては、入出力制御部１１は、対話制御部１６が選択した質問文を含む画面をユーザに提供し、ユーザがユーザ装置２０を用いて例えば回答データを入力した場合には、回答データを取得して対話制御部１６に入力する。
【００３３】
（メモリ部１２）
メモリ部１２は、入出力制御部１１及び対話制御部１６などが使用するプログラムや、各種の演算パラメータなどを一時的に記憶する。例えば、メモリ部１２は、実行対話シナリオ１２２、順序制御フラグ１２４、順序制御未実行対話シナリオリスト１２６を記憶する。メモリ部１２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの記憶部であってよい。
【００３４】
（対話シナリオ記憶部１３）
対話シナリオ記憶部１３は、対話シナリオデータ１３０、質問文データ１３２、選択肢データ１３４を主に記憶するデータベースである。対話シナリオ記憶部１３は、各種データを格納及び管理する機能を有する。対話シナリオ記憶部１３は、対話制御部１６によって抽出条件を設定したリクエスト（例えば、ＳＱＬ文）が入力されると、設定された条件に従って、データベース内のデータから条件に合致するデータを抽出して対話制御部１６に返信する機能を有する。
【００３５】
ここで、対話シナリオ記憶部１３に記憶されるデータについて図５、図６、及び図７を用いて説明する。図５は、対話シナリオデータの一例を示す説明図である。図６は、質問文データの一例を示す説明図である。図７は、選択肢データの一例を示す説明図である。
【００３６】
まず、図５を参照すると、対話シナリオデータ１３０は、対話の流れを制御する対話シナリオを記述したデータであり、対話ＩＤ１３０１、種別１３０２、質問文ＩＤ１３０３、選択肢ＩＤ１３０４、データベース属性１３０５、次対話ＩＤリスト１３０６を主に含むデータのリストから構成される。対話ＩＤ１３０１は、対話を一意に特定する識別子である。種別１３０２は、対話の種別を記述する。例えば、種別１３０２は、“質問”、“制御”などの種別が記述され、制御の場合には、さらに制御の種類が記述される。対話制御部１６は、この種別によって次の処理を判断する。質問文ＩＤ１３０３は、質問文データを一意に特定する識別子である。選択肢ＩＤ１３０４は、選択肢データを一意に特定する識別子である。データベース属性１３０５は、データベース内の対応する属性である。次対話リスト１３０６は、次の対話を特定する対話ＩＤのリストである。ここで、「ＮＵＬＬ」はデータが存在しないことを示す。
【００３７】
対話シナリオデータ１３０は、その設計者が、対話の流れを制御するために予め記述したデータである。このように、対話の流れをプログラムと分離したデータを用いて行うことにより、例えば質問文の追加及び削除などの修正を加える場合であっても、プログラムに修正を加えることなく、対話シナリオデータ１３０にデータを追加又は削除することによって簡単に修正を加える事が出来るという効果がある。
【００３８】
対話シナリオデータ１３０の作成の方法の一例を次に示す。例えば、固定した順番で質問を行う場合には、１件のデータの次対話ＩＤリストの中に次の対話を特定する対話ＩＤをひとつだけ記述する。一方、絞込みに最適な順序を選択して質問を実行する場合には、種別１３０２を“制御：順序制御開始”とし、次対話ＩＤリストに、絞込み対象となる質問が記述された対話ＩＤのリストを記述したデータと、種別１３０２を“制御：順序制御終了”とし、次対話ＩＤリスト１３０６に次の対話を特定する対話ＩＤを記述したデータとを作成し、絞込みのための対話は、次対話ＩＤリスト１３０６に制御のためのデータの対話ＩＤを記述する。また、最初の対話を特定するため、種別１３０２を“制御：対話開始”とし、次対話ＩＤリスト１３０６に最初の対話を特定する対話ＩＤを記述したデータを用意する。対話を終了するために、種別１３０６を“制御：対話終了”としたデータを用意し、最後の対話は、次対話ＩＤリスト１３０６に種別が“制御：対話終了”であるデータの対話ＩＤを記述する。このようなデータを作成することによって、設計者は、対話を制御するためのシナリオを作ることが出来る。
【００３９】
次に、図６を参照すると、質問文データ１３２は、質問文ＩＤ１３２１、質問文１３２２を主に含む。質問文ＩＤ１３２１は、質問を一意に特定する識別子である。質問文１３２２は、質問の内容を示すテキストである。
【００４０】
次に、図７を参照すると、選択肢データ１３４は、選択肢ＩＤ１３４１、選択肢リスト１３４２を主に含む。選択肢ＩＤ１３４１は、選択肢を一意に特定する識別子である。選択肢リスト１３４２は、選択肢を列挙したリストである。
【００４１】
（対話履歴データ記憶部１４）
対話履歴データ記憶部１４は、対話履歴データ１４０を記憶するデータベースである。対話履歴データ記憶部１４は、対話制御部１６によって条件を設定したリクエスト（例えば、ＳＱＬ文）が入力されると、設定された条件に従った処理を行う。例えば、リクエストに抽出命令が記述されている場合には、条件に合致するデータを抽出して対話制御部１６に返信する機能を有する。また、例えば、リクエストに件数の抽出命令が記述されている場合には、条件に合致するデータの件数をカウントして対話制御部１６に返信する機能を有する。
【００４２】
ここで、対話履歴データ記憶部１４に記憶されるデータの一例について、図８を用いて説明する。図８は、対話履歴データの一例を示す説明図である。対話履歴データ１４０は、日時１４０１、利用者ＩＤ１４０２、質問文ＩＤ１４０３、回答１４０４を主に含む。対話履歴データ１４０は、特定の利用者が情報処理装置１０の提供するサービスを利用した際にどのような選択行動を行ったかを蓄積した情報である。ひとつのデータは、ユーザが情報処理装置１０の提供した質問に対して回答を選択するときに生成される。日時１４０１は、そのデータが生成された日時である。利用者ＩＤ１４０２は、そのユーザを一意に特定する識別子である。質問文ＩＤ１４０３は、情報処理装置１０が提供した質問を一意に特定する識別子である。回答１４０４は、質問文ＩＤ１４０３により特定される質問に対してユーザが入力した回答である。ここで、対話履歴データ１４０は、回答１４０４として「指定無し」を含む。
【００４３】
本実施形態に係る情報処理装置１０は、この対話履歴データ１４０を用いることによって、ユーザ毎に適した質問の順番を制御し、効率のよい検索対象データの絞込みを行うものである。対話履歴データ１４０の利用の形態については、後述する。
【００４４】
（検索対象データ記憶部１５）
検索対象データ記憶部１５は、検索対象データ１５０を記憶するデータベースである。検索対象データ記憶部１５は、対話制御部１６によって条件を設定したリクエスト（例えば、ＳＱＬ文）が入力されると、設定された条件に従った処理を行う。例えば、リクエストに抽出命令が記述されている場合には、条件に合致するデータを抽出して対話制御部１６に返信する機能を有する。また、例えば、リクエストに件数の抽出命令が記述されている場合には、条件に合致するデータの件数をカウントして対話制御部１６に返信する機能を有する。
【００４５】
ここで、検索対象データ記憶部１５に記憶される検索対象データ１５０の一例について、図９を用いて説明する。図９は、検索対象データの一例を示す説明図である。検索対象データ１５０は、特定の対象物に関する情報の集合である。本実施形態においては、レストラン情報を例にとって説明する。検索対象データ１５０は、データＩＤ１５０１と属性及び属性値の組み合わせの複数の集合からなる１件のデータのリストにより構成される。ここでは、１件のデータ中に５種類の属性及び属性値の組合せが含まれるものとしたが、かかる例に限定されない。ここで、属性は、例えば、そのレストランの店名を示す「ＮＡＭＥ」、レストランのカテゴリを示す「ＣＡＴ」、そのレストランの場所を示す「ＬＯＣ」、そのレストランに駐車場があるか否かを示す「ＰＡＲＫ」、また、そのレストランのペット入店可否を示す「ＰＥＴ」などを含むことが出来る。属性値は、対応する属性の具体的な値である。
【００４６】
（対話制御部１６）
対話制御部１６は、入出力制御部１１、メモリ部１２、対話シナリオ記憶部１３、対話履歴データ記憶部１４、検索対象データ記憶部１５と接続され、情報処理装置１０の各部の動作を制御して対話処理を行う。対話制御部１６は、例えば、図１０〜図１９の各ブロックで行われる処理を実行する。対話制御部１６の制御の詳細な内容については、後述する。このとき、対話制御部１６は、例えば実行対話シナリオ１２２、順序制御フラグ１２４、順序制御未実行対話シナリオリスト１２６など、各処理実行中において必要とされる情報を、取得、又は生成してメモリ部１２に一時記憶して用いる。また、対話制御部１６は、ユーザに対して提供する情報を入出力制御部１１に入力し、入出力制御部１１がユーザから取得した情報を受信する。さらに対話制御部１６は、対話シナリオ記憶部１３、対話履歴データ記憶部１４、及び、検索対象データ記憶部１５に対して、各種情報を取得するための条件を含むリクエストを入力し、所望の情報を取得する。
【００４７】
以上、情報処理装置１０の各機能ブロックについて説明してきた。ここで、入出力制御部１１及び対話制御部１６は、例えばＣＰＵなどの演算処理装置によって実現されてもよい。入出力制御部１１及び対話制御部１６は、各種プログラムに従って装置内の動作を制御する。また、図４においては、対話シナリオ記憶部１３、対話履歴データ記憶部１４、検索対象データ記憶部１５は、いずれも情報処理装置１０内に有するものとしたが、これに限られない。外部の装置が有するデータベースを利用する形態であってもよい。この場合には、対話制御部１６は、入出力制御部１１及び通信網４０を介して情報の取得条件を含むリクエストを各データベースに入力する。
【００４８】
＜対話制御動作＞
次に、本実施形態に係る情報処理装置１０の対話制御動作の全体の流れについて図１０を用いて説明する。図１０は、対話制御の全体の流れを示すフローチャートである。図１０に示す各処理の詳細については、図１１〜図１９を用いて後述する。
【００４９】
まず、対話制御部１６は、対話初期処理を実行する（Ｓ１０２）。対話初期処理の詳細な動作は、後述されるが、ユーザがサービスの提供を受けるために情報処理装置１０にアクセスしてから、対話制御部１６が、対話シナリオを取得するまでの動作を含む。
【００５０】
そして、対話制御部１６は、取得されたシナリオの種別に応じてそれぞれの処理を実行する。このため、次にシナリオの種別が判定される（Ｓ１０４）。ステップＳ１０４の判定において、シナリオの種別が「質問」であった場合には、ユーザに質問を提供し、その回答を取得する処理を含む対話処理（Ｓ１０６）、及び、取得した回答に応じた対象データ検索処理（Ｓ１０８）が実行される。
【００５１】
また、ステップＳ１０４の判定において、シナリオの種別が「順序制御開始」であった場合には、シナリオデータの「次対話ＩＤリスト」内に記述される次のシナリオデータのリスト内のうち、ユーザに提供する質問の順番を制御する順序制御処理（Ｓ１１０）が実行される。この順序制御処理は、質問の順序を決定する処理及び、その順序に従ったユーザとの対話処理を含む。
【００５２】
また、ステップＳ１０６の対話処理及びステップＳ１０８の対象データ検索処理、並びにステップＳ１１０の順序制御処理が実行された後、並びに、ステップＳ１０４の判定においてシナリオの種別が「順序制御終了」であった場合には、次に、対話制御部１６は、シナリオデータ中の「次対話ＩＤリスト」に記述された対話ＩＤを取得する対話ＩＤにセットする（Ｓ１１２）。そして、対話制御部１６は、セットされた対話ＩＤに基づいて対話シナリオデータ取得処理を実行する（Ｓ１１４）。その後、取得したシナリオデータに基づいてステップＳ１０４のシナリオの種別を判定する処理に戻る。
【００５３】
また、ステップＳ１０４の判定において、シナリオの種別が「対話終了」であった場合には、対話処理を終了する。
【００５４】
次に、本実施形態に係る情報処理装置１０の対話制御の詳細について、図１１〜図１９を用いて説明する。図１１〜図１９は、図１０に示す対話制御の一部分の流れを示すサブフローチャートである。詳しくは、図１１は、対話初期処理の流れを示すフローチャートである。図１２は、対話シナリオデータ取得処理の流れを示すフローチャートである。図１３は、対話処理の流れを示すフローチャートである。図１４は、質問文データ取得処理の流れを示すフローチャートである。図１５は、選択肢データ取得処理の流れを示すフローチャートである。図１６は、対象データ検索処理の流れを示すフローチャートである。図１７は、順序制御処理の流れを示すフローチャートである。図１８は、対話履歴データカウント処理の流れを示すフローチャートである。図１９は、対象データカウント処理の流れを示すフローチャートである。
【００５５】
尚、以下に説明する詳細フローについては、図５に示すシナリオデータ１３０に沿って実行される場合について説明する。
【００５６】
（対話初期処理）
図１０を参照すると、まず、対話初期処理が実行される（Ｓ１０２）。対話初期処理の詳細な動作は、図１１に示される。図１１を参照すると、対話初期処理は、まずユーザ装置２０が情報処理装置１０にアクセスすることにより開始する（Ｓ２０２）。そして、入出力制御部１１は、利用者ＩＤを取得し、対話制御部１６に対話処理の開始を指示する（Ｓ２０４）。ここで、入出力制御部１１が利用者ＩＤを取得する方法は、例えば、画面上においてユーザに利用者ＩＤを入力させる方法、携帯電話の固体識別番号を取得する方法、Ｃｏｏｋｉｅを利用する方法などが挙げられ、いずれの方法によって取得してもよい。例えば、ここでは「Ｕ０１２３」なる利用者ＩＤを取得する。
【００５７】
次に、対話制御部１６は、対話シナリオデータ取得処理に受け渡す対話ＩＤとして、開始データを示す特定のＩＤをセットする（Ｓ２０６）。ここで特定の対話ＩＤとは、例えば、図５の「ＳＤ０００」である。そして、対話制御部１６は、対話シナリオデータ取得処理を実行する（Ｓ２０８）。
【００５８】
（対話シナリオデータ取得処理）
対話シナリオデータ取得処理の詳細は、図１２に示す。図１２を参照すると、対話制御部１６は、直前のステップＳ２０６においてセットした対話ＩＤを含むシナリオデータ取得条件を対話シナリオ記憶部１３に送信する（Ｓ３０２）。対話シナリオ記憶部１３は、シナリオデータ取得条件を受信し、シナリオデータ取得条件に合致するシナリオデータを取得し、対話制御部１６に送信する（Ｓ３０４）。対話制御部１６は、例えば、対話ＩＤ１３０１が「ＳＤ０００」、種別１３０２が「制御：対話開始」、質問文ＩＤ１３０３が「ＮＵＬＬ」、選択肢ＩＤ１３０４が「ＮＵＬＬ」、データベース属性１３０５が「ＮＵＬＬ」、次対話ＩＤリスト１３０６が「ＳＤ００１」である１件の対話シナリオデータを取得する（Ｓ３０６）。
【００５９】
そして、対話制御部１６は、対話シナリオデータ取得処理に受け渡すＩＤとして、先ほど取得した対話ＩＤが「ＳＤ０００」なるシナリオデータの次対話ＩＤリスト１３０６欄内のデータである「ＳＤ００１」をセットする（Ｓ２１０）。そして、対話制御部１６は、この対話ＩＤ「ＳＤ００１」に基づいて、対話シナリオデータ取得処理を実行する（Ｓ２１２）。対話シナリオデータ取得処理の詳細については、前述の図１２のステップＳ３０２〜ステップＳ３０６と同様である。ここで、対話制御部１６は、対話ＩＤ１３０１が「ＳＤ００１」、種別１３０２が「質問」、質問文ＩＤ１３０３が「Ｑ００１」、選択肢ＩＤ１３０４が「Ｃ００１」、データベース属性１３０５が「ＬＯＣ」、次対話ＩＤリスト１３０６が「Ｓ０１０」である１件の対話シナリオデータを取得する。これで、対話初期処理は終了である。
【００６０】
（対話処理）
再び図１０を参照すると、対話初期処理ステップＳ１０２において取得したシナリオデータの種別１３０２に応じて、次の処理が決定する。そこで、シナリオの種別１３０２を判定する（Ｓ１０４）。ここで、ステップＳ１０２において最後に取得したシナリオの種別は「質問」であるため、対話制御部１６は、対話処理を実行する（Ｓ１０６）。
【００６１】
対話処理の詳細については、図１３を用いて説明する。図１３を参照すると、まず、対話制御部１６は、メモリ部１２の実行対話シナリオ１２２に対話ＩＤ「ＳＤ００１」をセットする（Ｓ４０２）。そして、対話制御部１６は、質問文データ取得処理を実行する（Ｓ４０４）。質問文データ取得処理の詳細については、図１４を参照して説明する。
【００６２】
（質問文データ取得処理）
まず、対話制御部１６は、実行中の対話シナリオに含まれる質問文ＩＤ「Ｑ００１」を含む質問文データ取得条件を対話シナリオ記憶部１３に送信する（Ｓ３１２）。そして、対話シナリオ記憶部１３は、質問文データ取得条件を受信すると、条件に基づいて質問文データを取得し、対話制御部１６に返信する（Ｓ３１４）。ここで取得される質問文データは、質問文ＩＤが「Ｑ００１」であり、質問文が「ご希望の場所はどこですか？」である。そして、対話制御部１６は、当該質問文データを取得する（Ｓ３１６）。
【００６３】
（選択肢データ取得処理）
再び図１３を参照すると、対話制御部１６は、次に選択肢データ取得処理を実行する（Ｓ４０６）。選択肢データ取得処理の詳細については、図１５を参照する。まず、対話制御部１６は、実行中の対話シナリオに含まれる選択肢ＩＤを含む選択肢データ取得条件を対話シナリオ記憶部１３に送信する（Ｓ３２２）。そして、対話シナリオ記憶部１３は、受信した条件に基づいて選択肢データを取得し、対話制御部１６に返信する（Ｓ３２４）。ここで取得される選択肢データは、選択肢ＩＤが「Ｃ００１」であり、選択肢リストが「銀座，新宿，渋谷，池袋，田町，横浜」である。そして、対話制御部１６は、当該選択肢データを取得する（Ｓ３２６）。
【００６４】
そして、対話制御部１６は、取得した質問文データ及び選択肢データを入出力制御部１１に渡す出力データにセットする（Ｓ４０８）。このとき、表示する検索結果である検索対象データが存在するか否かを判定する（Ｓ４１０）。ここで、表示する検索結果である検索対象データが存在する場合、即ち、対話処理が２回目以降の実行であり、前回の対話処理の検索結果が存在する場合には、当該検索結果であるデータを入出力制御部１１に渡す出力データにセットする（Ｓ４１２）。そして、対話制御部１６は、対話開始を実行する旨の命令を出力データと共に入出力制御部１１に送信する（Ｓ４１４）。
【００６５】
ステップＳ４１４における対話制御部１６からの命令を受けて、入出力制御部１１は、出力データに基づいて出力画面を生成する。このとき、入出力制御部１１は、選択肢として「指定無し」などのデータを追加する（Ｓ４１６）。そして、ユーザ端末２０は、入出力制御部１１の生成した画面を受信し、ユーザ端末２０の表示部に表示させる。このとき、ユーザ端末２０の表示部には、例えば図２に示したような画面が表示される。例えば、質問文「ご希望の場所はどこですか？」
及び、選択肢「銀座，新宿，渋谷，池袋，田町，横浜」をプルダウンメニューや番号付で表示し、入力待ち状態になる。また、あるいは、図３に示したような画面を表示してもよい。回答はテキストで自由入力させ、内部処理において選択肢とマッチングする。このとき、音声による入出力を利用してもよい。
【００６６】
この場合には、一度目の対話処理であるため、質問文とそれに対する選択肢とが表示されている。２度目以降の対話処理であれば、前回の対話処理における検索結果が表示されていてもよい。この画面において、ユーザは、質問文に対する回答を入力する操作をする。すると、ユーザ端末２０は、当該ユーザ操作を取得して入出力制御部１１に対して送信する（Ｓ４１８）。例えば、ここでは回答が「田町」であったものとする。
【００６７】
入出力制御部１１は、ユーザ端末２０から回答データを取得すると、対話制御部１６に対して取得した回答データを送信する（Ｓ４２０）。対話制御部１６は、回答データを取得すると、この回答データに対して対応する質問文ＩＤ（ここでは、実行中の対話シナリオ中の質問文ＩＤである。）と利用者ＩＤとを対話履歴データ記憶部１４に送信する（Ｓ４２４）。対話履歴データ記憶部１４は、受信したデータに基づいて対話履歴データを更新する（Ｓ４２６）。以上で、対話処理は終了である。
【００６８】
（対象データ検索処理）
ここで、再び図１０に戻ると、次は対象データ検索処理が実行される（Ｓ１０８）。対象データ検索処理の詳細な流れについては、図１６を参照する。まず、対話制御部１６は、属性及び属性値を含む対象データ検索条件を検索対象データ記憶部１５に送信する（Ｓ３３２）。ここでは、属性は、実行中の対話シナリオのデータベース属性の欄に記述された属性である。ここでは、対話ＩＤ「ＳＤ００１」のデータベース属性１３０５を参照すると「ＬＯＣ」であることがわかる。また、属性値は、直前の対話処理におけるユーザの回答である。ここでは、ステップＳ４１８において取得された回答「田町」である。
【００６９】
そして、検索対象データ記憶部１５は、受信した属性及び属性値に基づいて検索対象データを検索し、該当する対象データを抽出して検索結果として対話制御部１６に送信する（Ｓ３３４）。即ち、検索対象データ記憶部１５は、属性が「ＬＯＣ」であり、属性値が「田町」であるデータを抽出して検索結果として対話制御部１６に送信する。対話制御部１６は、当該検索結果を受信することにより取得する（Ｓ３３６）。
【００７０】
再び図１０に戻り、以上のステップＳ１０８の対象データ検索処理により、レストラン情報である検索対象データを、場所が「田町」であるという条件により絞り込んだ。これにより、対話ＩＤが「ＳＤ００１」であるシナリオデータに沿った処理は終了である。次のシナリオデータを取得するために、対話制御部１６は、対話ＩＤ「ＳＤ００１」であるシナリオデータの次対話ＩＤリスト１３０６の欄により、次の対話ＩＤリストである「ＳＤ０１０」を取得する対話ＩＤにセットする（Ｓ１１２）。そして、対話ＩＤが「ＳＤ０１０」であるシナリオデータを取得する（Ｓ１１４）。ここで対話制御部１６は、対話ＩＤ１３０１が「ＳＤ０１０」、種別１３０２が「制御：順序制御開始」、質問文ＩＤ１３０３が「ＮＵＬＬ」
、選択肢ＩＤ１３０４が「ＮＵＬＬ」、データベース属性１３０５が「ＮＵＬＬ」、次対話ＩＤリスト１３０６が「ＳＤ０１１，ＳＤ０１２，ＳＤ０１３」である１件のシナリオデータを取得する。
【００７１】
ここで再び、対話制御部１６は、シナリオデータの種別を判定する（Ｓ１０４）。この時点において取得されたシナリオデータの種別は「制御：順序制御開始」であるため、次に対話制御部１６は、順序制御処理（Ｓ１１０）を実行する。
【００７２】
（順序制御処理）
順序制御処理の詳細については、図１７を参照する。まず、対話制御部１６は、順序制御フラグ１２４をオンにし、取得する対話ＩＤに、現時点において取得されたシナリオデータにおける次対話ＩＤリストである「ＳＤ０１１,ＳＤ０１２,ＳＤ０１３」をセットする（Ｓ５０２）。そして、対話ＩＤが「ＳＤ０１１,ＳＤ０１２,ＳＤ０１３」であるシナリオデータを取得する（Ｓ５０４）。ここで、シナリオデータ取得処理の詳細については、図１２を用いて既に説明したため、ここでは説明を省略する。
【００７３】
次に、対話制御部１６は、ステップＳ５０４において取得した全ての対話シナリオデータの対話ＩＤを順序制御未実行シナリオリスト１２６にセットする。順序制御未実行シナリオリスト１２６は、順序制御をする必要があるシナリオデータであって、まだユーザに提供されていないものがセットされている。即ち、対話制御部１６は、初めに、対象となるシナリオデータを全て登録しておき、順序制御が終了するとこの順序制御未実行シナリオリスト１２６から消去することにより、順序制御対象のデータを識別することが出来る。よってこの時点では、対話制御部１６は、「ＳＤ０１１,ＳＤ０１２,ＳＤ０１３」を順序制御未実行シナリオリスト１２６にセットする。
【００７４】
そして、対話制御部１６は、取得したシナリオデータ「ＳＤ０１１,ＳＤ０１２,ＳＤ０１３」のそれぞれの選択肢ＩＤ１３０４に記述された「Ｃ０１１，Ｃ０１２，Ｃ０１３」に基づいて、選択肢データ取得処理を実行する（Ｓ５０８）。即ち、かかる例においては、選択肢ＩＤ１３４１が「Ｃ０１１」であり、選択肢リスト１３４２が「和食，中華，洋食，カフェ」である１件の選択肢データ、選択肢ＩＤ１３４１が「Ｃ０１２」であり、選択肢リストが「有，無」である１件の選択肢データ、及び、選択肢ＩＤ１３４１が「Ｃ０１３」であり、選択肢リスト１３４２が「可，不可」である１件の選択肢データを取得する。
【００７５】
（対話履歴データカウント処理）
次に、対話制御部１６は、対話履歴データカウント処理を実行する（Ｓ５１０）。対話履歴データカウント処理の詳細については、図１８を参照する。本実施形態に係る情報処理装置１０は、質問の順序を制御する条件として、検索結果の件数のみならず、ユーザ毎の選択履歴を考慮するものである。そのため、対話制御部１６は、期待値計算のための基礎データとなる対話履歴データのカウント処理を実行する。
【００７６】
対話制御部１６は、まず、対話履歴データ記憶部１４に選択肢、利用者ＩＤ，質問文ＩＤを含む、対話履歴データカウント条件を送信する。このとき選択肢には「指定無し」を加える。対話履歴データ記憶部１４は、受信した対話履歴データカウント条件に基づいて対話履歴データの数をカウントし（Ｓ６０４）、カウントデータを対話制御部１６に送信する（Ｓ６０６）。対話制御部１６は、対話履歴データ記憶部１４からカウントデータを取得する（Ｓ６０８）。
【００７７】
例えば、対話制御部１６は、選択肢「和食」、「中華」、「洋食」、「カフェ」、「指定無し」、利用者ＩＤ「Ｕ０１２３」、質問文ＩＤ「Ｑ０１１」を送り、それぞれ、「和食」０件、「中華」５件、「洋食」２件、「カフェ」３件、「指定無し」０件を取得する。かかるデータは、該当するユーザが過去に何回それぞれの選択肢を選択しているかを示す。
【００７８】
また、同様に、対話制御部１６は、選択肢「有」、「無」、「指定無し」、利用者ＩＤ「Ｕ０１２３」、質問文ＩＤ「Ｑ０１２」を送り、それぞれ、「有」９件、「無」０件、「指定無し」１件を取得する。また、同様に、対話制御部１６は、選択肢「可」、「不可」、「指定無し」、利用者ＩＤ「Ｕ０１２３」、質問文ＩＤ「Ｑ０１３」を送り、それぞれ、「可」０件、「不可」０件、「指定無し」５件を取得する。
【００７９】
対話制御部１６は、受信したカウントデータが質問文を選択する基礎データとして用いるために充分な件数であるか否かを判定する（Ｓ６１０）。対話制御部１６は、カウントデータの件数に所定の閾値（以下、履歴件数下限閾値という。）を設けてかかる判定を行ってもよい。例えば、履歴件数下限閾値が１０件であるとすると、上記のカウントデータのうち、質問文ＩＤ「Ｑ０１３」に対するカウントデータは５件である。このとき、件数が履歴件数下限閾値に満たないため、図１８のステップＳ６１２〜ステップＳ６２０に示す補完処理を実行する。
【００８０】
対話制御部１６は、選択肢及び質問ＩＤを含む対話履歴データカウント条件を対話履歴データ記憶部１４に送信する。ここで、ステップＳ６０２と異なり、対話履歴データカウント条件に利用者ＩＤは含まない。そして、対話履歴データ記憶部１４は、利用者ＩＤを限定しないで対話履歴データのカウントを実行する（Ｓ６１４）。即ち、対話制御部１６は、選択肢「可」、「不可」、質問文ＩＤ「Ｑ０１３」を含む対話履歴データカウント条件を送信し、対話履歴データ記憶部１４は、「可」５件、「不可」０件、「指定無し」４９５件、であるカウントデータを取得する。
【００８１】
対話履歴データ記憶部１４は、取得したカウントデータを対話制御部１６に送信する（Ｓ６１６）。対話制御部１６は、対話履歴データ記憶部１４からカウントデータを受信すると（Ｓ６１８）、このカウントデータを用いて利用者ＩＤに基づいて取得したカウントデータをその他のＩＤを含む対話履歴に基づいたカウントデータで補完する（Ｓ６２０）。即ち、１０件に満たない５件分を当該カウントデータで補完するため、「可」５件、「不可」０件、「指定無し」４９５件なるカウントデータを全体が５件となるように換算し、「可」０．０５件、「不可」０件、「指定無し」４．９５件を加えて、「可」０．０５件、「不可」０件、「指定無し」９．９５件とする。
【００８２】
なお、図示していないが、取得した対話履歴データの件数が十分である場合には、さらに条件を加えて限定した中で件数をカウントしてもよい。例えば、取得した対話履歴データのカウントデータが所定の閾値（以下、履歴件数上限閾値という。）以上である場合には、対話制御部１６は、時間、場所、日付、及び曜日の少なくともいずれかを用いてさらに絞り込んだ前記対話履歴データの件数を用いて前記ユーザに提供する質問文を選択してもよい。具体的には、対話制御部１６は、対話履歴データを同じ時間帯のデータに限定する、同じ曜日のデータに限定する、直近の日時のデータに限定する、または、携帯電話の場所が取得できる場合には、この情報を用いて場所を限定してもよい。以上で対話履歴データカウント処理ステップＳ５１０は終了である。
【００８３】
（対象データカウント処理）
再び図１７を参照すると、次に、対話制御部１６は、対象データカウント処理を実行する（Ｓ５１２）。対象データカウント処理の詳細については、図１９を参照する。まず、対話制御部１６は、属性及び属性値のリストを含む対象データカウント条件を検索対象データ記憶部１５に送信する（Ｓ７０２）。検索対象データ記憶部１５は、受信した対象データカウント条件に基づいて対象データをカウントする（Ｓ７０４）。
【００８４】
例えば、対話制御部１６は、既に指定された属性「ＬＯＣ」が「田町」であり、属性「ＣＡＴ」が「和食」、「中華」、「洋食」、「カフェ」、である対象データカウント条件を送信し、検索対象データ記憶部１５は、「和食」１０件、「中華」２５件、「洋食」１５件、「カフェ」２０件であるカウントデータを取得する。また、対話制御部１６は、属性「ＬＯＣ」が「田町」であり、属性「ＰＡＲＫ」が「有」、「無」である対象データカウント条件を送信し、検索対象データ記憶部１５は、「有」１０件、「無」９０件、「ＮＵＬＬ」０件であるカウントデータを取得する。また、対話制御部１６は、属性「ＬＯＣ」が「田町」であり、属性「ＰＥＴ」が「可」、「不可」である対象データカウント条件を送信し、検索対象データ記憶部１５は、「可」５件、「不可」９０件、「ＮＵＬＬ」５件であるカウントデータを取得する。
【００８５】
（期待値の計算）
次に、対話制御部１６は、順序制御未実行対話シナリオリスト１２６に記述されている各対話シナリオデータに対して、取得した各選択肢の対話履歴データの件数、及び、対象データの件数に基づいて、対話による絞込み件数の期待値を計算する（Ｓ５１４）。
【００８６】
本実施形態において、対話シナリオデータＳＤｉ（ｉ＝１，２，・・・）の絞込み件数の期待値Ｅ（ＳＤｉ）は、以下の数式（２）を用いて計算される。
【００８７】
【数２】
2011076360.tif 000004
【００８８】
ここで、対話シナリオデータＳＤｉの各選択肢をＣｉｊ（ｊ＝１，２，・・・）、選択肢Ｃｉｊによる対話履歴データの件数をＮｌ（Ｃｉｊ）、対話シナリオデータＳＤｉの「指定無し」の対話履歴データの件数をＮｌ０、選択肢Ｃｉｊによる対象データの件数をＮｄ（Ｃｉｊ）とする。
【００８９】
例えば、各シナリオデータ「ＳＤ０１１」、「ＳＤ０１２」、「ＳＤ０１３」による絞込みの期待値Ｅは、次のように計算される。
【００９０】
【数３】
2011076360.tif 000005
【００９１】
以上、ステップＳ５１４の期待値計算ステップにより求められた期待値に基づいて、質問をユーザに提供する順序が決定される。本実施形態においては、期待値の小さい順序に質問が提供される。従って、対話制御部１６は、次に期待値が最小の対話ＩＤを選択する（Ｓ５１６）。ここでは、Ｅ（ＳＤ０１２）が最小であったため、対話制御部１６は、ＳＤ０１２を選択する。
【００９２】
次に、対話制御部１６は、ステップＳ５１６において選択された対話ＩＤに基づいて、対話処理を実行する（Ｓ５１８）。対話処理の詳細な動作については、図１３を用いて前述したため、詳細な説明は省略する。対話制御部１６は、この対話処理により、ユーザに対話ＩＤ「ＳＤ０１２」により特定されるシナリオデータに含まれる質問を提供し、その回答を取得する。例えば、ここでは「駐車場あったほうがいいですか？」という質問が提供され、「有」という回答が取得されたとする。対話制御部１６は、次に、取得した回答に基づいて対象データ検索処理を実行する（Ｓ５２０）。そして、対話制御部１６は、ここで選択された対話ＩＤであるＳＤ０１２を、順序制御未実行対話シナリオリストから削除する（Ｓ５２２）。
【００９３】
ここで、対話制御部１６は、ステップＳ５２０において実行された検索処理の結果絞り込まれた検索対象データの件数が所定の閾値（以下、結果件数閾値という。）以下であるか否かを判定する（Ｓ５２３）。ここで結果件数閾値は、例えば、ユーザが結果を閲覧しやすい件数、また、ユーザが結果の中から所望の情報を見つけ出しやすい件数に基づいて定められてもよい。例えば、結果件数閾値は、ユーザが結果を閲覧する画面操作との関係で定められてもよく、携帯電話の画面内に収まる件数に基づいて、又は、携帯電話の画面のスクロール操作がユーザにとって苦でない範囲内で定められてもよい。かかる判定の結果、結果件数閾値以下となった場合には、対話制御部１６は、順序制御処理を終了する。
【００９４】
ここで、対話制御部１６は、ステップＳ５２３の判定の結果、結果件数閾値以下ではなかった場合に、ステップＳ５２２の削除実行後の順序制御未実行対話リストが０件となったか否かを判定する（Ｓ５２４）。この時点においては、順序制御未実行対話シナリオリストには、「ＳＤ０１１」及び「ＳＤ０１３」が記述されているので、次に、対話制御部１６は、順序制御未実行対話シナリオリストが１件であるか否かを判定する。この時点においては２件記述されているため、ステップＳ５１２に戻る。
【００９５】
ここで、対話制御部１６は、再び、残った２件のシナリオリストに対して、再度、対象データカウント処理を実行し、絞込み件数の期待値を計算する（Ｓ５１２〜Ｓ５１４）。このとき、例えば、対象データカウント処理（Ｓ５１２）において、既に指定された属性「ＬＯＣ」が「田町」であり、さらに「ＰＡＲＫ」が「有」であり、属性「ＣＡＴ」が「和食」、「中華」、「洋食」、「カフェ」、である対象データカウント条件を送信してそれぞれカウントデータを取得する。また、対話制御部１６は、既に指定された属性「ＬＯＣ」が「田町」であり、さらに「ＰＡＲＫ」が「有」であり、属性「ＰＥＴ」が「可」、「不可」である対象データカウント条件を送信し、それぞれカウントデータを取得する。対話制御部１６は、ここで取得されたカウントデータに基づいて、同様にステップＳ５１４〜ステップＳ５１６の処理を実行する。例えばこのとき期待値が最小の対話ＩＤが「ＳＤ０１１」であった場合には、対話制御部１６は、選択された対話ＩＤに基づいて、ステップＳ５１８〜ステップＳ５２２の処理を実行する。
【００９６】
そして、対話制御部１６は、再びステップＳ５２３において、対話ＩＤ「ＳＤ０１１」に基づいて実行された対象データ検索処理により絞り込まれた検索対象データの件数が結果件数閾値以下であるか否かを判定する。
【００９７】
そして、絞り込まれた後の検索対象データの件数が結果件数閾値以下でない場合に、対話制御部１６は、ステップＳ５２４において、順序制御未実行対話シナリオリストが０件であるか否かを判定する。ここでは残り１件であるため、次に、対話制御部１６は、順序制御未実行対話シナリオリストが１件であるか否かを判定する（Ｓ５２６）。この時点において１件記述されているため、対話制御部１６は、残った対話ＩＤに基づいて、ステップＳ５１８〜ステップＳ５２２の処理を実行する。以上の処理によって、順序制御未実行シナリオリストは残り０件となるため、ステップＳ５２４の判定により、順序制御処理は終了する。
【００９８】
ここで、対話ＩＤが「ＳＤ０１３」なるシナリオデータの次対話ＩＤリストには、「ＳＤ０１９」が記述されている。そこで、対話制御部１６は、取得する対話ＩＤに次対話ＩＤのリストである「ＳＤ０１９」をセットする（Ｓ１１２）。そして、対話制御部１６は、セットされた対話ＩＤに基づいて、シナリオデータ取得処理を実行する（Ｓ１１４）。即ち、対話制御部１６は、対話ＩＤ１３０１が「ＳＤ０１９」であり、種別１３０２「制御：順序制御終了」、質問文ＩＤ１３０３「ＮＵＬＬ」、選択肢ＩＤ１３０４「ＮＵＬＬ」、データベース属性１３０５「ＮＵＬＬ」、次対話ＩＤリスト１３０６「ＳＤ９９９」なる１件のシナリオデータを取得する。
【００９９】
そして、対話制御部１６は、取得したシナリオデータに基づいて、ステップＳ１０４のシナリオ種別の判定処理を実行する。この時点において、シナリオの種別は「順序制御終了」であるため、対話制御部１６は、次に、取得する対話ＩＤに次対話ＩＤのリストである「ＳＤ９９９」をセットする（Ｓ１１２）。そして、対話制御部１６は、この対話ＩＤに基づいて、対話シナリオデータ取得処理（Ｓ１１４）を実行する。即ち、対話制御部１６は、対話ＩＤ１３０１が「ＳＤ９９９」であり、種別１３０２「制御：対話終了」、質問文ＩＤ１３０３「ＮＵＬＬ」、選択肢ＩＤ１３０４「ＮＵＬＬ」、データベース属性１３０５「ＮＵＬＬ」、次対話ＩＤリスト１３０６「ＮＵＬＬ」なる１件のシナリオデータを取得する。
【０１００】
そして、対話制御部１６は、取得したシナリオデータに基づいて、ステップＳ１０４のシナリオ種別の判定処理を実行する。この時点において、シナリオの種別は「対話終了」であるため、対話制御部１６は、対話制御を終了する。
【０１０１】
＜効果の例＞
以上、本実施形態に係る情報処理装置１０の対話制御に係る機能構成、及び、対話制御動作について説明してきた。かかる構成によれば、対話制御部１６は、対話順序を制御する際に、ユーザの対話履歴データの件数と検索対象データの件数とに基づいて、絞込み件数の期待値を計算し、期待値が最小になる対話シナリオに基づいて対話を実行する。これにより、ユーザの選択履歴を対話順序の選択に反映することが出来るため、ユーザの嗜好、及び制約を対話順序の決定に反映させることが出来るという効果がある。
【０１０２】
また、対話履歴データが十分にあるときには、対話制御部１６は、ユーザの対話履歴データを同じ時間帯、同じ曜日、直近の日時、などの条件を用いて限定する。又は、携帯電話の機能などを用いてユーザの場所が取得できる場合には、場所を限定する。これにより、ユーザの時間や曜日に応じた行動パターンに合わせた最適な絞込みの制御を実行することが出来るという効果がある。
【０１０３】
また、対話履歴データが不足している場合には、対話制御部１６は、不足分のデータを、他の人の履歴データを用いて補完する。ここで、全てを他人のデータを用いるのではなく、不足分のみを他の人の履歴データで補完することによって、なるべくユーザ毎の特性を残しながら、信頼性のあるデータを作成することが出来る。
【０１０４】
また、絞り込んだ後の検索対象データの件数が所定の結果件数閾値以下となるまで、又は、候補となる質問文がなくなるまで質問文の提供と回答の取得からなる対話制御を継続する。これにより、検索結果の件数が所望の件数以下となるように対話を制御できる可能性を高めることが出来る。
【０１０５】
また、対話履歴データは、回答として「指定無し」を含む。これにより、従来は考慮されていなかった回答を指定しない場合も考慮した期待値を算出することが出来、より現実に即した、正確なデータに基づいて質問文の提供順序を決定することが出来るようになる。
【０１０６】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【０１０７】
例えば、図９においては、レストランの場所情報は、「田町」、「渋谷」など、地名を示す単語が記憶されることとしたが、かかる例に限られない。例えば、住所を記憶しておいてもよい。この場合には、場所を問う質問に対する回答に基づいて、住所とのマッチング処理が別途必要である。
【０１０８】
尚、本明細書において、フローチャートに記述されたステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的に又は個別的に実行される処理をも含む。また時系列的に処理されるステップでも、場合によっては適宜順序を変更することが可能であることは言うまでもない。
【符号の説明】
【０１０９】
１０      情報処理装置
１１      入出力制御部
１２      メモリ部
１３      対話シナリオ記憶部
１４      対話履歴データ記憶部
１５      検索対象データ記憶部
１６      対話制御部
【図１】
2011076360.tif 000006
【図２】
2011076360.tif 000007
【図３】
2011076360.tif 000008
【図４】
2011076360.tif 000009
【図５】
2011076360.tif 000010
【図６】
2011076360.tif 000011
【図７】
2011076360.tif 000012
【図８】
2011076360.tif 000013
【図９】
2011076360.tif 000014
【図１０】
2011076360.tif 000015
【図１１】
2011076360.tif 000016
【図１２】
2011076360.tif 000017
【図１３】
2011076360.tif 000018
【図１４】
2011076360.tif 000019
【図１５】
2011076360.tif 000020
【図１６】
2011076360.tif 000021
【図１７】
2011076360.tif 000022
【図１８】
2011076360.tif 000023
【図１９】
2011076360.tif 000024