ユーザとシステムとのシナリオデータに従った対話を通して、検索対象の多数のデータの中から、ユーザが所望するデータを見つけ出す対話型検索システムで利用される上記シナリオデータを生成する対話シナリオ生成システムにおいて、検索対象の個々のデータに対して、そのデータの特徴を示す属性とその属性値を対応付けた属性データ集合と、属性、属性値をクラスとして定義したクラスデータとを少なくとも読込むデータ読込手段と、検索対象の個々のデータのそれぞれに対して、属性値を有する全ての属性について、属性とその属性値との対の組み合わせを求め、属性とその属性値との対の組み合わせ毎に、当該組み合わせに係る検索対象のデータの識別情報と、当該組み合わせに係る検索対象のデータの数とを得るデータ分類手段と、検索対象のデータの数が1個の属性とその属性値との対の組み合わせについて、ユーザとシステムとの対話を通して、ユーザの意図が、当該組み合わせに関連していると判別されるときに、1個だけの上記検索対象のデータをユーザに提示させるシナリオデータを生成する第1分類シナリオ生成手段と、検索対象のデータの数が2個以上x個未満但しxは3以上の自然数の属性とその属性値との対の組み合わせについて、ユーザとシステムとの対話を通して、ユーザの意図が、当該組み合わせに関連していると判別されるときに、当該データ数の上記検索対象のデータをユーザに選択させるように提示させるシナリオデータを生成する第2分類シナリオ生成手段と、検索対象のデータの数がx個以上の属性とその属性値との対の組み合わせについて、当該組み合わせに係る検索対象のデータを、当該組み合わせに含まれていない属性と属性値との対の観点から整理し、ユーザとシステムとの対話を通して、ユーザの意図が、当該組み合わせに関連していると判別されるときに、当該組み合わせに含まれていない属性の属性値を選択候補としてユーザに選択させるように提示させる、検索対象のデータを絞り込むためのシナリオデータを生成する第3分類シナリオ生成手段とを有することを特徴とする対話シナリオ生成システム。検索対象の個々のデータが、質問文と回答文のペアのデータであることを特徴とする請求項1に記載の対話シナリオ生成システム。ユーザとシステムとのシナリオデータに従った対話を通して、検索対象の多数のデータの中から、ユーザが所望するデータを見つけ出す対話型検索システムで利用される上記シナリオデータを生成する対話シナリオ生成プログラムであって、コンピュータを、検索対象の個々のデータに対して、そのデータの特徴を示す属性とその属性値を対応付けた属性データ集合と、属性、属性値をクラスとして定義したクラスデータとを少なくとも読込むデータ読込手段と、検索対象の個々のデータのそれぞれに対して、属性値を有する全ての属性について、属性とその属性値との対の組み合わせを求め、属性とその属性値との対の組み合わせ毎に、当該組み合わせに係る検索対象のデータの識別情報と、当該組み合わせに係る検索対象のデータの数とを得るデータ分類手段と、検索対象のデータの数が1個の属性とその属性値との対の組み合わせについて、ユーザとシステムとの対話を通して、ユーザの意図が、当該組み合わせに関連していると判別されるときに、1個だけの上記検索対象のデータをユーザに提示させるシナリオデータを生成する第1分類シナリオ生成手段と、検索対象のデータの数が2個以上x個未満但しxは3以上の自然数の属性とその属性値との対の組み合わせについて、ユーザとシステムとの対話を通して、ユーザの意図が、当該組み合わせに関連していると判別されるときに、当該データ数の上記検索対象のデータをユーザに選択させるように提示させるシナリオデータを生成する第2分類シナリオ生成手段と、検索対象のデータの数がx個以上の属性とその属性値との対の組み合わせについて、当該組み合わせに係る検索対象のデータを、当該組み合わせに含まれていない属性と属性値との対の観点から整理し、ユーザとシステムとの対話を通して、ユーザの意図が、当該組み合わせに関連していると判別されるときに、当該組み合わせに含まれていない属性の属性値を選択候補としてユーザに選択させるように提示させる、検索対象のデータを絞り込むためのシナリオデータを生成する第3分類シナリオ生成手段として機能させることを特徴とする対話シナリオ生成プログラム。ユーザとシステムとのシナリオデータに従った対話を通して、検索対象の多数のデータの中から、ユーザが所望するデータを見つけ出す対話型検索システムにおいて、請求項1に記載の対話シナリオ生成システムと、ユーザからの入力を取り込みと共に、ユーザへの出力を行う入出力手段と、ユーザの入力を解析することによって、属性と属性値との対の組み合わせを求める意図解析手段と、上記意図解析手段により得られた属性と属性値との対の組み合わせと、各シナリオデータに関連する属性と属性値の対の組み合わせと照合する条件照合手段と、上記条件照合手段の結果から、最適なシナリオデータを選択するシナリオ選択手段と、選択されたシナリオデータに基づいて、次のシステム発話をユーザに提示させる対話制御手段とを有することを特徴とする対話型検索システム。検索対象の個々のデータが、質問文と回答文のペアのデータであることを特徴とする請求項4に記載の対話型検索システム。ユーザとシステムとのシナリオデータに従った対話を通して、検索対象の多数のデータの中から、ユーザが所望するデータを見つけ出す対話型検索プログラムであって、請求項3に記載の対話シナリオ生成プログラムを有すると共に、コンピュータを、ユーザからの入力を取り込みと共に、ユーザへの出力を行う入出力手段と、ユーザの入力を解析することによって、属性と属性値との対の組み合わせを求める意図解析手段と、上記意図解析手段により得られた属性と属性値との対の組み合わせと、各シナリオデータに関連する属性と属性値の対の組み合わせと照合する条件照合手段と、上記条件照合手段の結果から、最適なシナリオデータを選択するシナリオ選択手段と、選択されたシナリオデータに基づいて、次のシステム発話をユーザに提示させる対話制御手段として機能させることを特徴とする対話型検索プログラム。しかし、特許文献1に記載の従来システムでは、次のような3つの課題を有する。1事例文照合辞書及びFAQ選択肢データベースの構築方法、並びに、構築コストの課題上記従来システムでは、ユーザ入力文を照合させるための事例文を事例文照合辞書として用意しなければならない。さらに、事例文に合った次のシステム発話文選択肢をFAQ選択肢データベースとして用意しなければならない。これら事例文照合辞書、FAQ選択肢データベースのデータ量や品質が、システムの検索精度を左右する。例えば、ユーザの入力文と照合させる事例文が少ないと、次のシステムの発話を決めることができず、対話は終了する。また、FAQ選択肢データベースの作成の際、検索対象となるFAQ全体を考慮にいれなければ、最終回答にたどりつかない選択肢を作ってしまったり、逆にQAがあるのに、選択肢がないためにたどりつけなくなったりする可能性がある。しかしながら、検索対象となるFAQ全体を考慮に入れて選択肢を作成するのは非常に面倒な作業となる。さらに、FAQに追加や修正が起こる場合には、その度に選択肢の見直しが必要となる。このように、上記従来システムには、事例文やFAQ選択肢データベースの構築やデータの追加削除が容易でないという課題がある。2対話順番の効率性、事例文照合のコンフリクトの課題例えば、ユーザが印刷された文字がおかしいというトラブルと入力した場合、照合に用いる文は、印刷時にトラブルが起こった、印刷された文字がおかしいの2文である。この場合、印刷された文字がおかしいの方がより詳細な記述なので、後者を優先して照合すべきだが、従来システムには、優先度を決める仕組みがない。ユーザの入力文は極めて多様であり、このような複数文の事例文照合のコンフリクトは常に起こることが予想されるが、これらを想定して辞書やデータベースを調整することは難しい。入力文の照合精度を上げるためには、多数のQAに関連する事例文を追加しなければならない。しかし、事例文を追加すればするほど、照合のコンフリクトは発生し易くなる。3質問選択肢の融通性の課題ユーザ入力文が印刷の場合の例を先述したが、この例において、仮にシステムが提示する選択肢の中に、該当する選択肢がない場合、そこで対話が終了してしまう。そのため、データベースの構築コストが低い、データベースの変更にも容易に対応できる、ユーザに対して優先度が高い候補から提示可能で、ユーザが所望する検索対象データが得られるまで対話を継続できる、シナリオデータを生成する対話シナリオ生成システム及びプログラムや、そのように生成されたシナリオデータを適用した対話型検索システム及びプログラムが望まれている。第1の本発明は、ユーザとシステムとのシナリオデータに従った対話を通して、検索対象の多数のデータの中から、ユーザが所望するデータを見つけ出す対話型検索システムで利用される上記シナリオデータを生成する対話シナリオ生成システムにおいて、1検索対象の個々のデータに対して、そのデータの特徴を示す属性とその属性値を対応付けた属性データ集合と、属性、属性値をクラスとして定義したクラスデータとを少なくとも読込むデータ読込手段と、2検索対象の個々のデータのそれぞれに対して、属性値を有する全ての属性について、属性とその属性値との対の組み合わせを求め、属性とその属性値との対の組み合わせ毎に、当該組み合わせに係る検索対象のデータの識別情報と、当該組み合わせに係る検索対象のデータの数とを得るデータ分類手段と、3検索対象のデータの数が1個の属性とその属性値との対の組み合わせについて、ユーザとシステムとの対話を通して、ユーザの意図が、当該組み合わせに関連していると判別されるときに、1個だけの上記検索対象のデータをユーザに提示させるシナリオデータを生成する第1分類シナリオ生成手段と、4検索対象のデータの数が2個以上x個未満但しxは3以上の自然数の属性とその属性値との対の組み合わせについて、ユーザとシステムとの対話を通して、ユーザの意図が、当該組み合わせに関連していると判別されるときに、当該データ数の上記検索対象のデータをユーザに選択させるように提示させるシナリオデータを生成する第2分類シナリオ生成手段と、5検索対象のデータの数がx個以上の属性とその属性値との対の組み合わせについて、当該組み合わせに係る検索対象のデータを、当該組み合わせに含まれていない属性と属性値との対の観点から整理し、ユーザとシステムとの対話を通して、ユーザの意図が、当該組み合わせに関連していると判別されるときに、当該組み合わせに含まれていない属性の属性値を選択候補としてユーザに選択させるように提示させる、検索対象のデータを絞り込むためのシナリオデータを生成する第3分類シナリオ生成手段とを有することを特徴とする。第2の本発明は、ユーザとシステムとのシナリオデータに従った対話を通して、検索対象の多数のデータの中から、ユーザが所望するデータを見つけ出す対話型検索システムで利用される上記シナリオデータを生成する対話シナリオ生成プログラムであって、コンピュータを、1検索対象の個々のデータに対して、そのデータの特徴を示す属性とその属性値を対応付けた属性データ集合と、属性、属性値をクラスとして定義したクラスデータとを少なくとも読込むデータ読込手段と、2検索対象の個々のデータのそれぞれに対して、属性値を有する全ての属性について、属性とその属性値との対の組み合わせを求め、属性とその属性値との対の組み合わせ毎に、当該組み合わせに係る検索対象のデータの識別情報と、当該組み合わせに係る検索対象のデータの数とを得るデータ分類手段と、3検索対象のデータの数が1個の属性とその属性値との対の組み合わせについて、ユーザとシステムとの対話を通して、ユーザの意図が、当該組み合わせに関連していると判別されるときに、1個だけの上記検索対象のデータをユーザに提示させるシナリオデータを生成する第1分類シナリオ生成手段と、4検索対象のデータの数が2個以上x個未満但しxは3以上の自然数の属性とその属性値との対の組み合わせについて、ユーザとシステムとの対話を通して、ユーザの意図が、当該組み合わせに関連していると判別されるときに、当該データ数の上記検索対象のデータをユーザに選択させるように提示させるシナリオデータを生成する第2分類シナリオ生成手段と、5検索対象のデータの数がx個以上の属性とその属性値との対の組み合わせについて、当該組み合わせに係る検索対象のデータを、当該組み合わせに含まれていない属性と属性値との対の観点から整理し、ユーザとシステムとの対話を通して、ユーザの意図が、当該組み合わせに関連していると判別されるときに、当該組み合わせに含まれていない属性の属性値を選択候補としてユーザに選択させるように提示させる、検索対象のデータを絞り込むためのシナリオデータを生成する第3分類シナリオ生成手段として機能させることを特徴とする。第3の本発明は、ユーザとシステムとのシナリオデータに従った対話を通して、検索対象の多数のデータの中から、ユーザが所望するデータを見つけ出す対話型検索システムにおいて、1第1の本発明の対話シナリオ生成システムと、2ユーザからの入力を取り込みと共に、ユーザへの出力を行う入出力手段と、3ユーザの入力を解析することによって、属性と属性値との対の組み合わせを求める意図解析手段と、4上記意図解析手段により得られた属性と属性値との対の組み合わせと、各シナリオデータに関連する属性と属性値の対の組み合わせと照合する条件照合手段と、5上記条件照合手段の結果から、最適なシナリオデータを選択するシナリオ選択手段と、6選択されたシナリオデータに基づいて、次のシステム発話をユーザに提示させる対話制御手段とを有することを特徴とする。第4の本発明は、ユーザとシステムとのシナリオデータに従った対話を通して、検索対象の多数のデータの中から、ユーザが所望するデータを見つけ出す対話型検索プログラムであって、1第2の本発明の対話シナリオ生成プログラムを有すると共に、2コンピュータを、2-1ユーザからの入力を取り込みと共に、ユーザへの出力を行う入出力手段と、2-2ユーザの入力を解析することによって、属性と属性値との対の組み合わせを求める意図解析手段と、2-3上記意図解析手段により得られた属性と属性値との対の組み合わせと、各シナリオデータに関連する属性と属性値の対の組み合わせと照合する条件照合手段と、2-4上記条件照合手段の結果から、最適なシナリオデータを選択するシナリオ選択手段と、2-5選択されたシナリオデータに基づいて、次のシステム発話をユーザに提示させる対話制御手段として機能させることを特徴とする。本発明によれば、データベースの構築コストが低い、データベースの変更にも容易に対応できる、ユーザに対して優先度が高い候補から提示可能で、ユーザが所望する検索対象データが得られるまで対話を継続できる、シナリオデータを生成する対話シナリオ生成システム及びプログラムを提供でき、また、そのように生成されたシナリオデータを適用した対話型検索システム及びプログラムを提供できる。A主たる実施形態以下、本発明による対話型検索システム及びプログラム、並びに、対話シナリオ生成システム及びプログラムの一実施形態を、図面を参照しながら説明する。ここで、実施形態の対話型検索システムは、実施形態の対話シナリオ生成システムを包含しているものである。実施形態の対話型検索システムは、ユーザとシステムとの対話を通して、ユーザが所望するFAQデータを探索できるようにした対話型質問応答システムである。A-1実施形態の構成図1は、実施形態の対話型質問応答システム101のネットワーク上での位置を示す説明図である。実施形態の対話型質問応答システム101は、Webサーバ303に接続されている。そのため、パーソナルコンピュータなどの通信機能を有する情報処理端末301は、インターネット302を介し、さらに、Webサーバ303経由で、対話型質問応答システム101と通信することができる。例えば、ユーザは、情報処理端末301上のWebブラウザ等によって、入力情報を対話型質問応答システム101に与えることができる。ユーザの入力情報は、インターネット302を通り、Webサーバ303を経由して、対話型質問応答システム101の後述する入出力処理部102に渡される。逆に、対話型質問応答システム101からの出力情報は、後述する入出力処理部102からWebサーバ303、インターネット302を経由して、ユーザの端末301上のWebブラウザ等に出力される。以下では、情報処理端末301及び対話型質問応答システム101間の通信において、インターネット302及びWebサーバ303を経由することの説明を省略する。なお、対話型質問応答システム101及びWebサーバ303が融合されたシステムであっても良い。また、対話型質問応答システム101がインターネット302に直接接続したシステムであっても良い。図2は、実施形態の対話型質問応答システム101の機能的な構成を示すブロック図である。対話型質問応答システム101は、専用装置として構成されても良く、また、パーソナルコンピュータなどのコンピュータに、対話型質問応答プログラムをインストールすることで構成されても良いものであるが、機能的には、図2で表すことができる。また、対話型質問応答システム101は、複数のコンピュータの分散処理で実現されるものであっても良い。さらには、対話シナリオ生成システム115として機能するコンピュータと、それ以外の部分として機能するコンピュータとが異なるものであっても良い。いずれにせよ、機能的には、図2で表すことができる。対話型質問応答システム101は、入出力処理部102、対話制御部103、意図解析部104、ユーザデータ管理部105及びドメイン知識管理部107を有する。さらに、対話型質問応答システム101は、ユーザデータユーザデータ格納部106と、ドメイン知識データベースドメイン知識DB111のデータを有する。ここで、ドメイン知識管理部107は、辞書引き部108、シナリオ選択部109及び条件照合部110を有する。また、ドメイン知識DB111は、形態素辞書112、クラス辞書113及び条件付シナリオ辞書114を有する。各部の機能については、後述する動作説明の項で明らかにするが、その機能の概要を述べると以下の通りである。入出力処理部102は、上述したように、ユーザが情報処理端末301へ入力した情報以下、入力文と呼ぶを取り込むと共に、ユーザへの出力情報以下、出力文と呼ぶを情報処理端末301へ出力するものである。なお、ユーザは、キーボードやマウスなどを使って、ユーザ入力文を入力しても良く、音声で入力文を入力しても良い。音声入力の場合、情報処理端末301が音声認識機能を備えていても良く、また、当該入出力処理部102が音声認識機能を備えていても良い。また、当該実施形態とは異なるが、検索対象の個々のデータのデータ量が少ないような場合であれば、ユーザへの出力にも音声を用いても良い。また、ユーザが所望するQAを見つけ出すのにリアルタイム性が求められていない場合であれば、システムからユーザへの出力にも、ユーザからシステムへの入力にも、電子メールを適用しても良く、この場合、入出力処理部102は、電子メールの組立機能や電子メールの分解機能を持つことを要する。対話制御部103は、システムとユーザとの対話を制御するものである。具体的には、対話制御部103は、入出力処理部102にシステム発話文を渡し、ユーザ入力文を受け取る。対話制御部103は、意図解析部104にユーザ入力文を渡し、解析結果を受け取る。対話制御部103は、ユーザデータ管理部105に解析結果を渡す。対話制御部103は、条件照合部110に命令を送り、シナリオ選択部109から、次のシステム発話用のシナリオを受け取る。意図解析部104は、ユーザ入力文を対話制御部103から受け取り、ドメイン知識管理部107の辞書引き部108を通じて、形態素辞書112、クラス辞書113の情報を得て、ユーザ入力文を解析するものである。意図解析部104は、解析結果を対話制御部103に返す。ユーザデータ管理部105は、対話制御部103から受け取った解析結果をユーザデータ106に格納する。ドメイン知識管理部107における辞書引き部108は、意図解析部104からの命令により、ドメイン知識DB111の形態素辞書112とクラス辞書113を引くものである。ドメイン知識管理部107における条件照合部110は、対話制御部103の命令によって、ユーザデータ106に格納されている情報と条件付シナリオ辞書114の情報を照合するものである。ドメイン知識管理部107におけるシナリオ選択部109は、条件照合部110の結果を受け取り、次のシステム発話のためのシナリオを選択し、対話制御部103に渡すものである。ユーザデータ106は、ユーザ入力文の解析結果によって得られる、ある属性についての属性値の情報が格納されている。ドメイン知識DB111の形態素辞書112は、ユーザ入力文に対する形態素解析用の辞書である。ドメイン知識DB111のクラス辞書113と条件付シナリオ辞書114は、対話シナリオ生成システム115によって自動生成されるユーザとの対話用の辞書である。なお、クラス辞書113は、ユーザ入力文を解析するためにも使用される。対話シナリオ生成システム115は、クラス付FAQデータ116とクラスデータ117とシナリオデータ118を受け取り、条件付シナリオ辞書114とそれに連携するクラス辞書113とを生成するものである。ここで、クラス付FAQデータ116は、属性値クラスが付与されているQA質問応答の集合からなるFAQデータである後述する図4参照。クラスデータ117は、クラス間の関係、クラスの表記などを規定するデータである後述する図5参照。シナリオデータ118は、クラス付FAQデータ116やクラスデータ117から生成されるシナリオ以外で必要となるシナリオのデータである後述する図6参照。例えば、対話を開始した直後のシステム発話文や対話を終了させる際のシステム発話文などが、シナリオデータ118で規定されている。図3は、対話シナリオ生成システム115における機能を整理して示す機能ブロック図である。対話シナリオ生成システム115は、コンピュータとそのコンピュータが実行するプログラムとして実現することができ、また、DSPや専用ICチップとして実現することもできる。対話シナリオ生成システム115は、データ読込み部150、FAQデータ分類部151、第1分類シナリオ生成部152、第2分類シナリオ生成部153、第3分類シナリオ生成部154及び生成シナリオ出力部155を有する。各部の機能については、後述する動作説明の項で明らかにするが、その機能の概要を述べると以下の通りである。データ読込み部150は、クラス付FAQデータ116、クラスデータ117、シナリオデータ118を読み込んで作業用エリアに格納するものである。データ読込み部150による読込みは、記録媒体からの読込みであっても良く、他の情報処理装置からのファイル転送などであっても良い。クラス付FAQデータ116、クラスデータ117、シナリオデータ118毎に、異なる記録媒体などから読み込むものであっても良い。FAQデータ分類部151は、FAQデータに付与されている属性値クラスの全組み合わせを求め、組み合わせ毎に、候補となるQAとそのQA数とを求めるものである。第1分類シナリオ生成部152は、QA数が1個の属性値の組み合わせについて、条件属性値の組み合わせ付シナリオ辞書114に格納する内容を生成するものである。ユーザ入力文から得た、ユーザが所望しているQAに係る属性値の組み合わせが、QA数が1個の組み合わせであれば、そのQAをユーザに提示するほかなく、第1分類シナリオ生成部152は、このような観点から、条件付シナリオ辞書114に格納する内容を生成する。第2分類シナリオ生成部153は、QA数が2以上ある数x;xは3以上の自然数未満の属性値の組み合わせについて、条件付シナリオ辞書114とそれに連携するクラス辞書113に格納する内容を生成するものである。QA数が2以上ある数x未満の場合、全QAの候補を選択肢とした1つの質問システム発話文をユーザに提示した場合、提示されたQAの中にユーザが所望するQAが含まれている可能性が高く、第2分類シナリオ生成部153は、このような観点から、条件付シナリオ辞書114とそれに連携するクラス辞書113に格納する内容を生成する。第3分類シナリオ生成部154は、QA数がx以上の属性値の組み合わせについて、条件付シナリオ辞書114とそれに連携するクラス辞書113に格納する内容を生成するものである。ユーザ入力文から得た、ユーザが所望しているQAに係る属性値の組み合わせについて、QA数がx以上あるような場合は、ユーザ入力文が、ユーザの意図を読取り難い曖昧性が高い文になっている場合であり、このような場合に、全QAの候補を選択肢とした1つの質問システム発話文をユーザに提示しても、QAの候補にユーザが所望するものが入っていない可能性が高く、また、多くのQAの候補を一括提示すると、所望するQAが入っていたとしてもユーザが見落とす可能性が高い。そのため、QA数がx以上の属性値の組み合わせについては、QAの候補を絞り込む手順が必要となる。第3分類シナリオ生成部154は、次にどの属性に関する質問をすればさらにQAが絞り込まれるかを予め捉え、最も絞り込まれる可能性が高い属性から順番に、その属性についての質問を定義した条件付シナリオ辞書114とそれに連携するクラス辞書113の内容を生成する。生成シナリオ出力部155は、第1分類シナリオ生成部152、第2分類シナリオ生成部153及び第3分類シナリオ生成部154によって生成された、条件付シナリオ辞書114とそれに連携するクラス辞書113の内容を出力するものである。生成シナリオ出力部155は、ドメイン知識DB111の条件付シナリオ辞書114及びクラス辞書113に直接書き込むものであっても良い。例えば、対話シナリオ生成システム115を構成している情報処理装置が、対話シナリオ生成システム115以外の対話型質問応答システム101の構成要素を搭載している情報処理装置と異なる場合であれば、生成シナリオ出力部155は、記録媒体に出力記録させたり、ファイル転送させたりするものとなる。A-2実施形態の動作次に、実施形態の対話型質問応答システム101の動作を説明する。動作は、大きく2つに分かれる。1つは、対話シナリオ生成システム115の動作クラス辞書113及び条件付シナリオ辞書114の自動生成に関する動作であり、もう1つは、対話型質問応答システム101の対話時の動作問い合わせ回答のためのシステム対話に関する動作である。A-2-1対話シナリオ生成システム115の生成動作以下では、対話シナリオ生成システム115が読み込むクラス付FAQデータ116、クラスデータ117、シナリオデータ118を順に説明した後、対話シナリオ生成システム115による生成動作を説明する。図4は、クラス付FAQデータ116の一例を示す説明図である。なお、図4中他の図面も同様のMailPIA、訳してねっと、ラダサーチはいずれも、本願出願人の登録商標である。一般的なFAQ集の各QA質問文及び回答文に対して、各QAを分別するための属性を決め、かつ、各QAに対して、属性値を付与したものがクラス付FAQデータ116である。1つのQAデータは、質問文401、回答文402、複数の属性値403~410からなると共に、他のQAデータと区別するための識別情報id411が付与されている。図4の最上行に記載のように、各属性について、属性属性名:その属性に関する質問シナリオシステム発話文の一部となるが記述されている。図4の例では、属性は、サービス名、問い合わせ目的、機能KWKWはキーワードを表している、画面KW、データKW、システム動作KW、ユーザ動作KW、しないできないKWの8つである。属性サービス名についての質問シナリオとして、どのサービスに関係するご質問でしょうか以下からお選びください。が記述されている。例えば、id=1のクラス付QA412は、質問文MAILPIAとは何ですか、回答文お気に入りのサイトやブログの更新情報をメールで受け取るサービスです。というQAの本体に対し、属性サービス名について属性値MailPIAが付与され、属性問い合わせ目的について属性値サービス名や用語について説明して欲しいが付与されている。以下、属性=属性値という形式で記述する。この場合であれば、サービス名=MailPIA、問い合わせ目的=サービス名や用語について説明して欲しい、と記述することとなる。なお、属性値は全ての属性について付与する必要はなく、そのQAに関係する属性に対してのみ属性値を付与する。FAQデータに対する属性値の付与は、手動で行ったものであっても良く、また、質問文若しくは回答文を解析形態素解析や構文解析などして自動的に付与したものであっても良い。図5は、クラスデータ117の一例を示す説明図である。図5における最上行はデータ項目を表している。クラスは、クラス0、クラス1、クラス2、...のように、いくつでも階層的に木構造で定義できる。図5の例では、クラス0501、クラス1502の2つのレベルで定義している。例えば、Rootの下位ノードとして、ユーザデータ、YESNO-ok、YESNO-mailがある。ユーザデータの下位ノードとして、問い合わせ目的、サービス名、機能KWKWはキーワードを表している、画面KW、データKW、システム動作KW、ユーザ動作KW、しないできないKWがある。このように、クラス付FAQデータ116で定義された属性例えば、サービス名は、ユーザデータクラスの子クラスとして定義し、各属性の属性値例えば、MailPIAは、さらにその属性の子クラスとして定義している。それぞれのクラスは、標準形ユーザに提示する際に使われる表現503と、異表記ユーザ入力文を認識する際に使われる表現504、質問キューこのクラスが回答であった場合の次のシナリオのシナリオid505と、値セットそのクラスがユーザから取得された場合にセットされるユーザデータの属性=属性値506を定義する。質問キュー505と値セット506には、対話時に、このクラスデータが取り出された際に、値がセットされることがある。また、図5におけるは、ユーザ入力文の形態素解析時に使用されないことを表している。を付与するようにしたのは、上位クラスはユーザ入力文から認識する必要がないためである。図6は、シナリオデータ118の一例を示す説明図である。図6における最上行もデータ項目を表している。1つのシナリオデータは、条件601、シナリオid602、システム発話文603、回答タイプ604、ユーザ回答クラス605、質問キュー606から構成される。条件601は、そのシナリオが適用されるユーザデータの条件を記述する。シナリオid602は、シナリオを区別する識別情報である。シナリオ発話文603は、そのシナリオの適用時に、ユーザに提示される文である。回答タイプ604は、シナリオ提示時にユーザに求める回答のタイプである。回答タイプ604に自由がセットされている場合は、自由文での入力をユーザに促し、回答タイプ604に選択肢がセットされている場合は、選択肢をユーザに提示し、その中から最も適切な候補を選択させる。質問キュー606は、この次の質問文となる次のシナリオidである。次の質問が固定的でなく、動的に決まる場合は、質問キューには何もセットされていない。ユーザ回答クラス605は、ユーザ入力文を意図解析する際に用いるクラスである。セットされたクラスより下位のクラスが意図解析部104に利用されるが、回答タイプによってその利用方法が異なる。回答タイプが自由の場合は、ユーザの入力は自由文である。この場合、ユーザ入力文の形態素解析時に下位のクラスが用いられ、入力文に含まれる下位のクラスの集合が意図解析結果となる。例えば、図6のstartシナリオ609では、ユーザ回答クラスがユーザデータであるので、意図解析結果は、ユーザの入力文に含まれるユーザデータクラスより下位のクラスの集合となる。一方、回答タイプが選択肢の場合は、下位のクラスがユーザに直接提示され、ユーザはその中から選択する。従って、意図解析部104は単にクラス辞書113から選択されたクラスを結果として出力する。例えば、図6のsorry-001シナリオ610は回答タイプが選択肢であり、ユーザ回答クラスがYESNO-mailである。この場合、図5のYESNO-mailの子クラスのYES-ok標準形のはいが提示されるとYES-no標準形のいいえが提示されるが選択肢としてユーザに提示され、ユーザが選択したクラスが直接、意図解析結果となる。対話シナリオ生成システム115に入力するシナリオデータ118は、上述したように、対話を開始した直後のシステム発話文や対話を終了させる際のシステム発話文やFQAデータに依存しないで対話を展開させるシステム発話文などを規定しており、シナリオ辞書114に格納させる他のシナリオデータを、対話シナリオ生成システム115が生成する。次に、対話シナリオ生成システム115が、クラス付FAQデータ116、クラスデータ117、シナリオデータ118を用いて、クラス辞書113及び条件付シナリオ辞書114を自動生成する動作を説明する。図7は、かかる生成動作を示すフローチャートである。対話シナリオ生成システム115は起動されると、図7に示す処理を開始し、まず、クラス付FAQデータ116、クラスデータ117及びシナリオデータ118を読み込むステップ701。次に、対話シナリオ生成システム115は、各QAに、クラス付FAQデータ116に付与されている属性=属性値の全組み合わせを生成するステップ702;後述する図8参照。さらに、対話シナリオ生成システム115は、属性=属性値の組み合わせ毎のQAのidリストと関連するQA数のデータを得るステップ703;後述する図9参照。その後、対話シナリオ生成システム115は、全ての属性=属性値の組み合わせについて生成処理が終了していないことを確認してステップ704、1つの未生成の属性=属性値の組み合わせを処理対象とするステップ705。そして、対話シナリオ生成システム115は、その組み合わせが関連するQA数を確認するステップ706。処理対象の属性=属性値の組み合わせに関連するQA数が1個の場合には、対話シナリオ生成システム115は、そのQAの質問文と回答文を直接提示するデータシナリオを生成するステップ707。処理対象の属性=属性値の組み合わせに関連するQA数が2以上x未満の場合には、対話シナリオ生成システム115は、関連するQAの質問文を選択肢とするシナリオと各QAの質問文に対応するシナリオと、これらシナリオと連携するクラスとを生成するステップ708。処理対象の属性=属性値の組み合わせに関連するQA数がx以上の場合には、2以上x未満の場合のように候補となるQAの質問文を選択肢として提示するのではなく、候補を絞り込むための特別な質問を行うようにする。対話シナリオ生成システム115は、まず、関連するQAのidリストを取得しステップ709、各idのQAがもつ全ての属性=属性値の組み合わせから、現在対象としている属性=属性値を除外した属性=属性値を求めるステップ710。その属性の中で、2以上の関連するQA数が最も高い属性から順に選択し、その属性がもつ属性値を選択肢としてシナリオや連携するクラスを生成しステップ711、712、このような処理を、条件を満たす属性がなくなるまで繰り返す。対話シナリオ生成システム115は、条件を満たす属性がなくなれば、直前に生成したシナリオの質問キューにsorry-001図6の符号610参照をセットしステップ713、次の属性=属性値の組み合わせの処理ステップ704に移行する。ステップ704~713の処理ループを繰り返すことにより、全ての属性=属性値の組み合わせについて生成処理が終了すると、対話シナリオ生成システム115は、上述した生成処理ステップ707、708、712で生成されたクラスのデータ構造や入力された図5に示すクラスデータをクラス辞書113に書き出すと共にステップ714、生成されたシナリオのデータ構造や入力された図6に示すシナリオデータを、条件付シナリオ辞書114に書き出しステップ715、図7に示す処理を終了する。以下、対話シナリオ生成システム115による自動生成動作を、具体例を用いて説明する。図8は、図4に示したクラス付FAQデータに対して、ステップ702を実行した場合における、属性=属性値の全ての組み合わせの生成結果データ構造を示す説明図である。各QAのid801毎に、質問文802、回答文803、属性=属性値の全ての組み合わせ804がセットされる。例えば、図4のid=1のQAには、サービス名=MailPIA、問い合わせ目的=サービス名や用語を説明して欲しい、の2つの属性に関する属性値がセットされているので、図8のid=1の行に記載のように、属性=属性値の3=22-1個の組み合わせ、すなわち、1サービス名=MailPIA問い合わせ目的=サービス名や用語を説明して欲しい、2サービス名=MailPIA、3問い合わせ目的=サービス名や用語を説明して欲しい、がセットされる。ここで、は且つを表している。例えば、図4のid=2のQAのように、3つの属性に関する属性値がセットされているQAであれば、属性=属性値の組み合わせ数は7=23-1個となり、7個の組み合わせがリストアップされることとなる。以上のようにして、クラス付FAQデータに含まれている全てのQAに対してそれぞれ、属性=属性値の全ての組み合わせを得ると、ステップ703の処理により、属性=属性値の組み合わせからデータを整理し、QAのidリストとQA数のデータを得る。図9は、属性=属性値の組み合わせ毎のQAのidリストの一例を示す説明図であり、図8に一部対応している。各属性=属性値の組み合わせ901に対して、その組み合わせを持つidリスト902と関連するQA数idの個数903が得られる。例えば、図8のid=1のQAやid=2のQAは、サービス名=MailPIAという属性=属性値の組み合わせを有するので、サービス名=MailPIAという属性=属性値の組み合わせのidリストには、図9に示すように、id=1や2が含まれる。また例えば、図8のid=1のQAは、サービス名=MailPIA問い合わせ目的=サービス名や用語を説明して欲しい、という属性=属性値の組み合わせを有するので、サービス名=MailPIA問い合わせ目的=サービス名や用語を説明して欲しい、という属性=属性値の組み合わせのidリストには、図9に示すように、id=1が含まれる。ここで、サービス名=MailPIA問い合わせ目的=サービス名や用語を説明して欲しい、という属性=属性値の組み合わせを有するQAが他になければ、サービス名=MailPIA問い合わせ目的=サービス名や用語を説明して欲しい、という属性=属性値の組み合わせに関連するQA数は、図9に示すように、1となる。このように、QA数が1個の場合は、ステップ707の処理により、唯一のQAの質問文と回答文をユーザに直接提示するデータを生成する。図9の例の場合、サービス名=MailPIA問い合わせ目的=サービス名や用語を説明して欲しいが処理対象となった場合、関連するQA数が1個であり、関連する唯一のQAのidが1であるので、このid=1の質問文と回答文を、図8の質問文803、回答文804から取り出し、システム発話文条件付シナリオとする。図10は、このようにして生成された条件付シナリオのデータ構造を示す説明図である。条件付シナリオのデータ構造は、図6で示した読み込むシナリオデータのデータ構造と同じである。生成した条件付シナリオの条件1001には、属性=属性値の組み合わせそのものが記述され、図9の符号904の例であれば、サービス名=MailPIA問い合わせ目的=サービス名や用語を説明して欲しいが記述され、システム発話文1003には、唯一のQAの質問文803及び回答文804を引用した文をセットする。システム発話文1003における最初の文お客様の回答が見つかりました。と最後の文お客様の問題は解消しましたかは、QA数のシステム発話文1003として予め定まっている文であり、これら文に挟まれて、唯一のQAの質問文803及び回答文804が記述される。シナリオid1002は、自動的かつ機械的に割り振られるものである。最後の文がお客様の問題は解消しましたかという、YES、NOで回答させるものであるので、回答タイプ1004には選択肢が記述され、ユーザ回答クラス1005にはYESNO-okが記述される。次に、QA数が2以上x未満の場合について、QA数が2である図9のユーザ動作KW=解除したい907を例に説明する。仮に、x=3とすると、ユーザ動作KW=解除したいは、関連するQA数が2個であるので符号909参照、今回の場合分けを満たす。この場合には、関連する各QAの質問文を選択肢とするシナリオと、各QAの質問文に対応するシナリオが生成される。図11は、QA数が2以上x未満の場合である属性=属性値の組み合わせユーザ動作KW=解除したいについて生成される条件付シナリオとクラスのデータ構造を示す説明図であり、図11aが条件付シナリオを示し、図11bがクラスを示している。属性=属性値の組み合わせユーザ動作KW=解除したいに関連するQAのidはid=2と、id=53とである。id=2のQAは図4に記載の通りである。図4では省略しているが、id=53のQAにおける質問文は訳してねっとの辞書登録を解除する方法はであり、回答文ははい。ユーザ設定画面により、利用登録を解除することができます。である。QA数が2個の場合、2個のQAの質問文を選択肢としたシナリオと、各QAにそれぞれ対応したシナリオとの、計3個のシナリオが生成される。1つめのシナリオとして、条件には、属性=属性値の組み合わせであるユーザ動作KW=解除したいをセットし、システム発話文には、お客様の回答が以下のように絞られました。該当する質問がありましたら以下からお選び下さい。という文をセットし、回答タイプは、選択肢をセットし、ユーザ回答クラスには、自動的に付与したクラス名focusCl-001をセットする。システム発話文のお客様の回答が以下のように絞られました。該当する質問がありましたら以下からお選び下さい。における以下からお選び下さい。の選択肢を、システム発話文に盛り込むことができるように、この場合にはクラスも生成する。この際に生成されるクラスのデータ構造は、入力された図5に示すクラスデータのデータ構造と同じである。Rootの子クラスとしてfocusCl-001をセットし、focusCl-001の子クラスとして、上記システム発話文の選択肢にそれぞれ対応するfocusCl-001-id2、focusCl-001-id53、focusCl-001-elseをセットする。それぞれのクラスの標準形として、id=2のQAの質問文であるQ:MAILPIAの利用登録の解除はいつでも可能ですかと、id=53のQAの質問文であるQ:訳してねっとの辞書登録を解除する方法はと、その他をセットし、それぞれのクラスには、選択された選択肢に応じた次のシステム発話文に移行できるように、質問キューに、移行先のシナリオidを表すfocusCl-001_id2、focusCl-001_id53、else-01をセットする。ここで、シナリオidのfocusCl-001_id2、focusCl-001_id53は自動的に割り振るものである。また、質問キューfocusCl-001_id2、focusCl-001_id53にセットされたシナリオidのシナリオを生成する。id=2とid=53のQAの各質問文に対応するシナリオとして、条件はなく但し、条件として上位クラスのシナリオと同じユーザ動作KW=解除したいをセットするようにしても良い、シナリオidを、focusCl-001_id2、focusCl-001_id10とする。システム発話文は、QAの質問文及び回答文を引用した文をセットし、回答タイプには選択肢を、ユーザ回答クラスにはYESNO-okをセットする。なお、シナリオidがelse-01に対応するシナリオは、図6に示す入力されたシナリオデータ118に含まれている符号612参照。最後に、関連するQA数がx以上の場合x=3のときは3以上の場合について、具体例を説明する。図9の属性=属性値の組み合わせ問合せ目的=サービス名や用語を説明して欲しい910の例を用いて、具体的に説明する。まず、属性=属性値の組み合わせ問合せ目的=サービス名や用語を説明して欲しいのidリストid=1、id=20、id=50の各QAが持つ全ての属性=属性値の組み合わせを、id毎の属性=属性値の組み合わせのリスト図8から得るステップ709。図8の場合、かかる処理を考慮し、全ての属性=属性値の組み合わせを、それぞれのリストの先頭行805、806、807に記載している。これらの先頭行のみを取り出したデータ構造を図12に示している。次に、現在対象となっている属性=属性値の組み合わせ問合せ目的=サービス名や用語を説明して欲しい以外の属性を、id毎の全ての属性=属性値の組み合わせリスト図12から取り出し、その属性がもつ属性値をリスト化するステップ710。図13は、その結果を示している。各属性に対して、その属性に関するQA数とその属性値がセットされる。id=1、id=20、id=50の各QAは、現在対象となっている属性=属性値の組み合わせ問合せ目的=サービス名や用語を説明して欲しい以外の属性として、サービス名を有するので、この属性サービス名が取り出され、QA数として3がセットされると共に、id=1のQAにおけるサービス名の属性値MailPIAと、id=20のQAにおけるサービス名の属性値訳してねっとと、id=50のQAにおけるサービス名の属性値ラダサーチとがセットされる。また、id=20、id=50の各QAは、現在対象となっている属性=属性値の組み合わせ問合せ目的=サービス名や用語を説明して欲しい以外の属性として、機能KWを有するので、この属性機能KWが取り出され、QA数として2がセットされると共に、id=20のQAにおける機能KWの属性値辞書登録と、id=50のQAにおける機能KWの属性値対話制御とがセットされる。なお、処理対象以外の属性をリスト化する際に、QA数が1の属性は、リストから排除するようにしても良い。後述するステップ711の処理で、QA数が1の属性は除外されるからである。これは、QA数が1の属性はユーザの意図の絞り込みにほとんど機能しないためである。処理対象以外の属性をリスト化すると、次に、関連するQA数が最も多い他の属性を選択しステップ711、その属性がもつ属性値を選択肢として質問する条件付シナリオとそれに連携するクラスデータを生成するステップ712。属性サービス名と機能KWとではQA数がそれぞれ、3個と2個であるので、まず、QA数が3個である属性サービス名が選択され、属性値として、MailPIA、訳してねっと、ラダサーチの3つを選択肢として含むシナリオを生成する。このとき、生成される条件付シナリオのデータ構造を図14aの上の行1401aに、クラスデータのデータ構造を図14bの上の行1401bに示している。条件付シナリオ1401aは、条件には、処理対象の属性=属性値の組み合わせ問い合わせ目的=サービス名や用語を説明して欲しいがセットされ、システム発話文には、ステップ712の処理で生成されるシナリオの第1行目に含まれることが決まっている定形文お客様のご質問の候補がyここには、絞込み用の属性サービス名のQA数、今の例では3が挿入される件あります。と、今回の絞込み用の属性サービス名について定まっている質問文質問シナリオとの合成文が用いられる。図4について説明したように、各属性についての質問シナリオは、図4の最上段の後半に記載されている。属性サービス名の質問シナリオは、どのサービスに関係するご質問でしょうか以下からお選びください。である符号403参照。条件付シナリオ1401aの回答タイプには選択肢がセットされ、ユーザ回答クラスには、自動的に付与されたクラス名choiceCl-008がセットされる。クラスデータ1401bは、Rootの子クラスとしてchoiceCl-008をセットし、choiceCl-008の子クラスとして、選択肢用のchoiceCl-008_001、choiceCl-008_002、choiceCl-008_003、choiceCl-008_004をセットする。それぞれの標準形には、3つの属性値MailPIA、訳してねっと、ラダサーチと、これら属性値がユーザの選択対象とならない場合を考慮したこの質問をスキップをセットし、3つの属性値MailPIA、訳してねっと、ラダサーチに係る子クラスchoiceCl-008_001、choiceCl-008_002、choiceCl-008_003に対応する値セットには、対話時において、ユーザデータ106にセットするクラスを、属性=属性値の形式でセットする。これは、例えば、仮に、ユーザが選択肢MailPIAを選択した場合に、ユーザデータのサービス名にMailPIAをセットせよという命令を意味する。このような条件付シナリオとそれに連携するクラスデータを生成する処理ステップ711、712を、対象以外の属性の属性値リストの取得処理ステップ710で取得した他の属性に対して繰り返し行う。図13の例では、属性機能KWもステップ711の生成条件を満たすので、属性サービス名と同様にシナリオ及びクラスデータを生成する。生成処理の詳細は省略するが、生成される条件付シナリオは図14aの下の行1402aとなり、クラスデータは図14bの下の行1402bとなる。属性機能KWについての生成が終了すると、対象以外の属性の属性値リストに未処理の属性が残っていない。そのため、繰り返し処理を終了する。このように生成条件を満たす属性がなくなれば、直前に生成したシナリオの質問キューにsorry-001をセットしステップ713、次の属性=属性値の組み合わせの処理に移行するステップ704。上記の生成処理で生成されたシナリオにおける選択肢この質問をスキップは、絞込み用の次のシナリオにスキップさせることを表しており、スキップして到達する最後のシナリオは、ステップ711及び712の繰返しループで最後に生成されたシナリオである。最後に生成されたシナリオでも、選択肢この質問をスキップが選択された場合を考慮した何の手立ても行っていなければ、対話は中断されてしまう。そのため、図6に示した入力されたシナリオデータ118の中に、シナリオidがsorry-001であってシステム発話文が申し訳ございません。お客様のご質問に関する回答をみつけることはできません。メールでの回答を希望しますかを用意しておいている。A-2-2対話型質問応答システム101の対話動作次に、実施形態の対話型質問応答システム101におけるユーザとの対話動作を、図15のフローチャートを参照しながら説明する。ユーザが情報処理端末301に対して対話開始ボタンを押す等により、開始命令が入出力処理部102から対話制御部103に渡される。対話制御部103は、ドメイン知識管理部107のシナリオ選択部109を通じて、条件付シナリオ辞書114から、シナリオidがstartの開始シナリオを取り出しステップ1501、そのシステム発話文お客様のご質問を入力してください。が入出力処理部102を通じて情報処理端末301に提示されるステップ1502。その一方、startシナリオのユーザ回答クラスがユーザデータクラスであるので、クラス辞書113からユーザデータの下位クラス問い合わせ目的、サービス名、機能KW、データKW、システム動作KW、ユーザ動作KW、しないできないKWを取り出して、ユーザデータ管理部105に渡し、ユーザデータ管理部105は、各クラスをユーザデータの属性としてセットするステップ1503。システム発話文のお客様のご質問を入力してください。に対して、ユーザが入力文を入力し、入出力処理部102がその入力文を受け取ると、対話制御部103を介して、意図解析部104に渡すステップ1504。その際、シナリオ質問文のユーザ回答クラスであるユーザデータも同時に意図解析部104に渡す。意図解析部104は、形態素辞書112とクラス辞書113を引くことによって、形態素解析を行い、ユーザデータクラスより下位に定義されているクラスを、対話制御部103を介してユーザデータ管理部105に渡すステップ1505。そのようなクラスが存在しないこともあり得る。ユーザデータ管理部105は、ユーザデータクラスより下位に定義されているクラスがあるか否かを判別しステップ1506、そのようなクラスがあれば、既にセットされている属性と同じクラス名を親クラスにもつクラスを属性値としてセットするステップ1507。さらに、対話制御部103は、現在利用中のシナリオの質問キューに値がセットされているか否かを判別しステップ1508、値がセットされていれば、質問キューにセットされているシナリオidのシナリオを次のシナリオとして選択するステップ1510。これに対して、質問キューにシナリオidがセットされていなければ、条件照合部110に命令を送り、条件照合部110は、ユーザデータを読み込み、ユーザデータと条件付シナリオ辞書114にセットされている条件を照合させ、照合結果をシナリオ選択部109に渡しステップ1509、シナリオ選択部109は、最も数多くマッチするシナリオidを、条件付シナリオ辞書114から選び、対話制御部103に渡すステップ1510。対話制御部103は、次のシナリオに係る応答文を、入出力処理部102を通じて情報処理端末301に提示するステップ1511。対話制御部103は、シナリオidがendか否かを判別しステップ1512、endでなければ、ユーザ入力文の取込みステップ1524に戻り、endであれば対話処理を終了する。以下では、実施形態の対話型質問応答システム101におけるユーザとの対話動作を、2つの具体例を用いて説明する。第1の具体例は、ユーザの質問内容が明確な場合であり、第2の具体例は、ユーザの質問内容が不明瞭な場合である。A-2-2-1対話型質問応答システム101の対話動作の第1具体例以下では、当初のシステム発話文お客様のご質問を入力してください。の提示に対して、ユーザがメールピアとは何ですかと入力した場合を説明する。なお、ステップ1501~1503の処理は上述した通りである。ステップ1502でセットされたユーザデータ106は、startシナリオのユーザ回答クラスがユーザデータクラスであるので、クラス辞書113からユーザデータの下位クラス問い合わせ目的、サービス名、機能KW、データKW、システム動作KW、ユーザ動作KW、しないできないKWを取り出したものとなり、図16aに示すようになるが、この段階では、全ての属性について、属性値が空のものである。入出力処理部102は、ユーザ入力文メールピアは何ですかを受け取り、対話制御部103を介して、意図解析部104に渡し、その際、シナリオ質問文のユーザ回答クラスであるユーザデータも同時に意図解析部104に渡すステップ1504。意図解析部104は、形態素辞書112とクラス辞書113を引くことによって、形態素解析を行い、ユーザデータクラスより下位に定義されているクラスを、対話制御部103を介してユーザデータ管理部105に渡す。図17aに、ユーザ入力文メールピアは何ですかについての意図解析結果を示す。2つの出現形への分割は形態素解析による。意図解析結果のメールピアの部分については、図5のクラスデータにおけるクラス0がサービス名である中の1行目のクラスデータから、標準形、親クラス、クラス名のデータが得られ、ユーザ回答クラスのユーザデータは、このユーザ入力文が入力される前に提示された、シナリオidがstartのシステム発話文のユーザ回答クラスの内容である。意図解析結果の何ですかの部分については、図5のクラスデータにおけるクラス0が問い合わせ目的である中の1行目のクラスデータから、標準形、親クラス、クラス名のデータが得られ、ユーザ回答クラスのユーザデータは、このユーザ入力文が入力される前に提示された、シナリオidがstartのシステム発話文のユーザ回答クラスの内容である。ユーザデータ管理部105は、既にユーザデータにセットされている属性と同じクラス名を、意図解析結果の親クラスにもつクラスを属性値としてセットするステップ1507。上記の例では、MailPIAをサービス名の属性値と、サービス名や用語について説明して欲しいを問い合わせ目的の属性値としてセットする。これにより、セット後のユーザデータは、図16bに示すようになる。現在利用中のstartシナリオの質問キューには値がセットされていないので、対話制御部103は、条件照合部110に命令を送り、条件照合部110は、その時点のユーザデータ106を読み込み、ユーザデータ106と条件付シナリオ辞書114にセットされている条件とを照合させ、照合結果をシナリオ選択部109に渡すステップ1509。シナリオ選択部109は、最も数多くマッチするシナリオidを、条件付シナリオ辞書114から選び、対話制御部103に渡すステップ1509。上記の例の場合、条件付シナリオ辞書114に記憶された図10に示した生成シナリオの条件サービス名=MailPIA問い合わせ目的=サービス名や用語を説明して欲しいが、ユーザデータ106に完全マッチするのでステップ1509、条件照合部110からこの照合結果が与えられたシナリオ選択部109は、その条件が有するシナリオidがanswer-001のシナリオを対話制御部103に渡しステップ1510、対話制御部103は、システム発話文と選択肢を、入出力処理部102を介して、ユーザに提示するステップ1511。シナリオidがanswer-001のシナリオの回答タイプが選択肢でユーザ回答クラスがYESNO-okであるので、回答クラスの子クラスのYES-ok、NO-okの各標準形はい、いいえ図5の符号507参照が選択肢としてユーザに提示される。シナリオidがanswer-001のシナリオをユーザに提示した画面例を図18aに示す。図18a~eは選択肢をラジオボタンで選択させるものを示しているが、選択肢の指示方法はこれに限定されず、反転表示などのカーソルで選択させるものであっても良い。シナリオidがanswer-001のシナリオは、質問キューにendがセットされていないので、対話制御部103は処理を終了せずステップ1512、選択肢はいかいいえのどちらをユーザが選択したかを取り込むステップ1504。ユーザがはいを選択した場合には、はいのクラス名YES-okが、入出力処理部102、対話制御部103を通じて、意図解析部104に渡されるステップ1504。ユーザ回答タイプが選択肢の選択に係るタイプの場合、意図解析部104は、形態素辞書112に対する辞書引きを実行せず、YES-okのクラスデータ図5の下から5行目のデータを、意図解析結果として対話制御部103に直接渡すステップ1505。図17bは、この場合の意図解析結果を示している。この結果にはユーザデータはないので、ユーザデータは格納されないステップ1506。但し、意図解析部104からの結果に質問キューがセットされているのでステップ1508、質問キューにセットされているシナリオidがendのシナリオ図6符号611参照が次のシナリオとして選択されステップ151、シナリオ発話文のありがとうございました。を入出力処理部102を通じて情報処理端末301に出力するステップ1511。このシナリオのシナリオidはendなので、対話型質問応答システム101は一連の処理が終了するステップ1512。A-2-2-1対話型質問応答システム101の対話動作の第1具体例次に、ユーザの最初の質問ユーザ入力文が不明瞭な場合について、対話型質問応答システム101の対話動作を具体例を挙げて説明する。以下では、当初のシステム発話文お客様のご質問を入力してください。の提示に対して、ユーザが用語がわからないと入力した場合を説明する。なお、ステップ1501~1503の処理は上述した通りであるので、ステップ1504によるユーザ入力文の入力処理から説明する。入出力処理部102は、ユーザ入力文用語がわからないを受け取り、対話制御部103を介して、意図解析部104に渡すステップ1504。意図解析部104は、形態素辞書112とクラス辞書113を引くことによって、形態素解析を行い、ユーザデータクラスより下位に定義されているクラスを、対話制御部103を介してユーザデータ管理部105に渡すステップ1505。図17cは、ユーザ入力文用語がわからないに対する意図解析結果を示している。形態素解析による用語が、図5のクラスデータにおけるクラス0が問い合わせ目的である中の1行目のクラスデータの異表記に定義されていることから、この1行目のクラスデータにおける標準形、親クラス、クラス名のデータが意図解析結果に含まれ、ユーザ回答クラスのユーザデータは、このユーザ入力文が入力される前に提示された、シナリオidがstartのシステム発話文のユーザ回答クラスの内容である。ユーザデータ管理部105は、既にセットされている属性と同じクラス名を親クラスにもつクラスを属性値としてユーザデータ116にセットするステップ1507。上記の例では、サービス名や用語について説明して欲しいを問い合わせ目的の属性値としてセットする図16c参照。この意図解析結果には質問キューがないのでステップ1508、対話制御部103は、条件照合部110に命令を送り、条件照合部110は、ユーザデータ116を読み込み、ユーザデータ116と条件付シナリオ辞書114にセットされているシナリオの条件を照合させ、照合結果をシナリオ選択部109に渡すステップ1509。シナリオ選択部109は、最も数多くマッチするシナリオidのシナリオを、条件付シナリオ辞書114から選び、対話制御部103に渡すステップ1510。上記の例の場合、ユーザデータ116の属性値に対し、図14aの条件付シナリオの条件問い合わせ目的=サービス名や用語を説明して欲しいが完全マッチするステップ1509。この場合、条件がユーザデータ116にマッチするシナリオは、図14aに示すように、シナリオidがchoice-008のシナリオと、シナリオidがchoice-009のシナリオとがある。シナリオ選択部109は、ユーザデータ116に合致する条件を有する1つのシナリオを選択して対話制御部103に渡すステップ1510。図14aに示すように、シナリオidがchoice-008のシナリオと、シナリオidがchoice-009のシナリオとの2つのシナリオがマッチする場合、シナリオ選択部109は、シナリオidにおける枝番が若い方のシナリオを選択する。この例であれば、シナリオidがchoice-008のシナリオを選択する。上述した対話シナリオ生成システム115の生成動作から明らかなように、シナリオidにおける枝番が若い方のシナリオの方が、ユーザの意図を絞り込める可能性が高いシナリオ選択肢が多いシナリオになっているためである。シナリオ選択部109は、シナリオidがchoice-008のシナリオを対話制御部103に渡しステップ1510、対話制御部103は、システム発話文と選択肢を、入出力処理部102を介して、ユーザに提示するステップ1511。シナリオidがchoice-008のシナリオの回答タイプが選択肢であるので、回答クラスchoice-008の子クラスchoice-008_001、choice-008_002、choice-008_003、choice-008_004のそれぞれに係る各標準形MailPIA、訳してねっと、ラダサーチ、この質問をスキップが選択肢として提示されるステップ1511。この際にユーザに提示された画面例を図18bに示している。シナリオidがchoice-008のシナリオは、質問キューにendがセットされていないためステップ1512、処理を終了しない。次に、図18bの画面中の選択肢の中から、ユーザがMailPIAを選択した場合の動作は説明する。選択肢MailPIAを選択すると、MailPIAのクラス名choice-008_001が、入出力処理部102、対話制御部103を通じて、意図解析部104に渡されるステップ1504。意図解析部104は、回答タイプが選択肢であるため、クラス辞書113を引き、そのクラスデータを意図解析結果として対話制御部103に渡すステップ1505。このときの意図解析結果を図17dに示している。クラス名choice-008_001のクラスデータにおける値セットには、図14bに示すように、サービス名=MailPIAが記述されているので、意図解析結果の値セットにも、サービス名=MailPIAが含まれる。サービス名は、ユーザデータクラスの下位であるため、対話制御部103は、サービス名=MailPIAをユーザデータ管理部105に渡し、ユーザデータ管理部105は、ユーザデータの属性サービス名にMailPIAをセットするステップ1507。この結果、ユーザデータ116は、ユーザ入力文メールピアとは何ですかの処理後を示している上述した図16bと同じ結果、サービス名=MailPIA問い合わせ目的=サービス名や用語を説明して欲しいとなる。そのため、これ以降の動作は、ユーザ入力文メールピアとは何ですかが入力された上述した第1具体例の場合と同様となり、以下の動作の説明は省略する。詳述は避けるが、図18bの画面中の選択肢の中から、訳してねっとが選択されたときには、ユーザデータ116がサービス名=訳してねっと問い合わせ目的=サービス名や用語を説明して欲しいとなり、これに最も合致する条件を有する条件付シナリオが、次のシナリオとして選択されることになる。同様に、図18bの画面中の選択肢の中から、ラダサーチ、が選択されたときには、ユーザデータ116がサービス名=ラダサーチ問い合わせ目的=サービス名や用語を説明して欲しいとなり、これに最も合致する条件を有する条件付シナリオが、次のシナリオとして選択されることになる。次に、図18bの画面中の選択肢の中から、ユーザがこの質問をスキップを選択した場合の動作を説明する。ユーザがこの質問をスキップを選択すると、この質問をスキップのクラス名choice-008_004が、入出力処理部102、対話制御部103を通じて、意図解析部104に渡されるステップ1504。意図解析部104は、回答タイプが選択肢であるため、クラス辞書113を引き、そのクラスデータを意図解析結果として対話制御部103に渡すステップ1505。クラスデータが図14bの符号1401bに示すようなものであるので、この際の意図解析結果は図17eに示すようになる。この場合、クラス名がユーザデータでなく、かつ、値セットにおいてもユーザデータへの値セットがないため、ユーザデータ116には何もセットされず、また、質問キューも空であるので、条件照合処理を行うステップ1509。その条件照合時のユーザデータ116は、ユーザデータに対する変更が実行されていないため、前回と同じユーザデータである。すなわち、図16cに示すユーザデータである。そのため、条件照合部110による照合結果は、図14aに示す条件付シナリオとなる。但し、シナリオidがchoice-008のシナリオは既にユーザに提示しているため、このときには、シナリオidがchoice-009のシナリオがシナリオ選択処理109で選択されステップ1510、対話制御部103は、そのシステム発話文を、入出力処理部102を通じてユーザに出力するステップ1511。図19cは、シナリオidがchoice-009のシナリオが選択されてユーザに提示された画面例を示している。提示画面に、選択肢を含める処理は、上述したシナリオidがchoice-008のシナリオが選択した場合と同様であるので、その説明は省略する。図19cの提示画面の選択肢の中から、ユーザが辞書登録を選択したとする。このとき、辞書登録のクラス名choice-009_001が、入出力処理部102、対話制御部103を通じて、意図解析部104に渡されるステップ1504。意図解析部104は、回答タイプが選択肢であるため、クラス辞書113を引き、そのクラスデータを意図解析結果として対話制御部103に渡すステップ1505。クラス名choice-009_001を含むクラスデータにおける値セットには、図14bに示すように、機能KW=辞書登録が記述されているので、意図解析結果の値セットにも機能KW=辞書登録が記述され、属性機能KWは、ユーザデータクラスの下位であるため、対話制御部103は、機能KW=辞書登録をユーザデータ管理部105に渡し、ユーザデータ管理部105は、ユーザデータ116の属性機能KWに辞書登録をセットするステップ1507。この結果、ユーザデータ116は、図16dに示すようになる。すなわち、ユーザデータ116は問い合わせ目的=サービス名や用語を説明して欲しい機能KW=辞書登録となる。この意図解析結果には質問キューが記述されていないので、対話制御部103は、条件照合部110に命令を送り、条件照合部110は、ユーザデータ116を読み込み、ユーザデータ116と条件付シナリオ辞書114にセットされている条件を照合し、照合結果をシナリオ選択部109に渡すステップ1509。シナリオ選択部109は、最も数多くマッチするシナリオを、条件付シナリオ辞書114から選び、対話制御部103に渡すステップ1510。生成処理では言及しなかったが、図19に示すような条件付シナリオ及びクラスデータが生成され、それぞれ、条件付シナリオ辞書114とクラス辞書115とに記憶されていたとする。この場合、図19の1901aの条件付シナリオの条件問い合わせ目的=サービス名や用語を説明して欲しい機能KW=辞書登録がユーザデータ116に完全マッチするステップ1509。シナリオ選択部109は、その条件をもつシナリオidがfocusCl-020のシナリオを対話制御部103に渡しステップ1510、対話制御部103は、システム発話文と選択肢を、入出力処理部102を介して、ユーザに提示するステップ1511。この場合のユーザへの提示画面は、図18dに示すようなものとなる。ユーザが、選択肢Q:辞書登録では何かできますかを選択すると、その選択肢に係るクラス名focusCl-001_id32が、入出力処理部102、対話制御部103を通じて、意図解析部104に渡されるステップ1504。意図解析部104は、回答タイプが選択肢であるため、クラス辞書113を引き、そのクラスデータを意図解析結果として対話制御部103に渡すステップ1505。このクラスデータにはユーザデータはないがステップ1506、図19bに示すように質問キューが存在する。そのため、シナリオ選択部109は、質問キューにセットされているfocusCl-001-id32のシナリオを条件付シナリオ辞書114から選択するステップ1510。この場合、図19aに符号1902aを付与したシナリオが選択され、そのシステム発話文が、ユーザに提示されるステップ1511。このときに、ユーザに提示される画面例を図18eに示している。これ以降も同様にして、ユーザとシステムとの対話が進行していくが、これ以降の動作の説明は省略する。A-3実施形態の効果構成及び動作を上述した上記実施形態によれば、以下の効果を奏することができる。1QAの特徴を示す属性値クラスを付与したQAを準備するだけで、ユーザが所望するQAを絞り込むための効果的な条件付シナリオを自動的に生成することができる。なお、この条件付シナリオは、全QAに付与されている属性値に基づいて生成されているため、各選択肢には、必ずQAが紐づいている。従って、無駄な選択肢がユーザに提示されることはない。2キーワード属性値を複数の属性に分類することによって、ユーザがある分類の切り口での選択肢による絞込みができなかった場合でも、別の分類の切り口での選択肢をユーザに提示することができる。従って、ユーザが理解できる分類での選択肢による絞込みが可能となる。通常、ある用語に関するQAを選択肢で分類する切り口は、1つとは限らない。例えば、印刷に関するQAを選択肢で分類する切り口は、使用しているプリンタ名で分類することもできるし、印刷の何について知りたいかトラブル対処、設定方法、用語で分類することもできる。何らかのアプリケーションからの印刷の場合ならば、アプリケーション名で分類することもできる。上記実施形態では、分類の切り口をいくつも用意し属性=属性値の組み合わせ、ある選択肢で回答が得られない場合は、別の切り口の分類で選択肢を提示し、ユーザに選ばせることができるので、ユーザが所望するQAをシステムが回答する率を向上させることができる。3従来例のような事例文による照合ではなく、かつ、検索対象となる全QAに付与されているキーワード属性値を用いて、条件付シナリオと照合するため、照合する属性値が多い順にシナリオの優先度を設定したり、また、最終的に絞り込まれるQAの数が少ないものほど優先度を上げたりすることにより、シナリオの優先度を決定することができ、照合時のコンフリクトを抑えることができる。4属性値は、全FAQデータに出現する用語から作成することができる。クラスファイルの作成は、類義語辞書や市販の辞書を利用することもでき、事例文による照合より、各種辞書の構築生成が容易である。B他の実施形態上記実施形態では、意図解析部104が単純な形態素解析を利用するものである場合を示したが、係り受けを解析する構文解析等を利用して意図解析するものであっても良い。例えば、このような高度な解析を用いることによって、文の5W1H何、誰、どこ、いつ、なぜ、どのように型を解析し、その解析結果から、属性問い合わせ目的の属性値を決定し、その属性値を条件として、次のシナリオを決定することもできる。上記実施形態のクラスデータの上位下位関係を利用することによって、ユーザの入力文の解析精度を向上させることができる。例えば、仮に、送受信する、送信する、受信するが同じレベルで定義されていると、ユーザが、送受信すると入力した場合、送受信するという属性値が付与されているQAしか関連付かないことになる。しかし、クラスデータの上位クラスの送受信するの下位クラスに送信すると受信するを定義した場合、ユーザの送受信するは、その下位の送信する及び受信するの上位レベルの意味なので、QAで送受信する、送信する、受信するの3つが関連付けられる。さらにこの場合、ユーザが受信すると入力した場合は、送受信する及び受信するは関連付けられるが、送信するは関連付けられない。このように、上位下位クラスを使って認識する語を定義することにより、精度の高い入力文とシナリオQAの対応付けが可能となる。なお、このようなクラスの上位下位関係を利用する方法として、特開2010-262343号公報に記載の方法を用いることができる。上記実施形態においては、対話シナリオ生成システム115へ、図4に示したクラス付FAQデータ116を入力するものを示したが、図4の符号401及び402を付与したQAの第1の部分と、図4の符号403~410を付与した属性=属性値の第2の部分とを、FAQデータのidでリンクできるようにした別のデータとして入力し、図7に示した処理を、第2の部分のデータだけを用いて行って、QAの質問文や回答文を挿入すれば良いだけの未完シナリオや未完クラスデータを生成し、全ての未完シナリオや未完クラスデータを生成した後で、各未完シナリオや未完クラスデータに、第1の部分のデータから、必要なQAの質問文や回答文を挿入して、シナリオ及びクラスデータを完成させるようにしても良い。また、未完シナリオや未完クラスデータの形式で、対話時に使用されるクラス113や条件付シナリオ辞書114に記憶させると共に、各QAを記憶したQA辞書を設け、ユーザにシステム発話文を提示する直前の段階で、必要なQAの質問文や回答文を挿入してユーザに提示するようにしても良い。上記実施形態では、QAに属性=属性値を付与することで、QAの検索を目的とした例について示したが、QAに限定せず、複数の属性とその属性値を付与できる対象であれば、検索対象はどのようなものでも良い。例えば、画像に属性=属性値が付与されているならば、画像検索にも応用することができる。