JP2012248161A - 対話型検索システム及びプログラム、並びに、対話シナリオ生成システム及びプログラム - Google Patents
対話型検索システム及びプログラム、並びに、対話シナリオ生成システム及びプログラム Download PDFInfo
- Publication number
- JP2012248161A JP2012248161A JP2011121834A JP2011121834A JP2012248161A JP 2012248161 A JP2012248161 A JP 2012248161A JP 2011121834 A JP2011121834 A JP 2011121834A JP 2011121834 A JP2011121834 A JP 2011121834A JP 2012248161 A JP2012248161 A JP 2012248161A
- Authority
- JP
- Japan
- Prior art keywords
- data
- scenario
- user
- attribute
- combination
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】 ユーザが所望するFAQデータが得られるまで対話を継続できるシナリオデータを生成する対話シナリオ生成システムを提供する。
【解決手段】 対話シナリオ生成システムは、各FAQデータに対して、そのデータの属性とその属性値を対応付けたデータ集合と、属性、属性値をクラスとして定義したクラスデータとを読込むデータ読込部と、各FAQデータのそれぞれに対して、属性値を有する全ての属性について、属性とその属性値との対の組み合わせを求め、組み合わせ毎に、当該組み合わせに係るFAQデータの識別情報と、データ数とを得るデータ分類部とを有する。そして、データ数が1個の組み合わせと、データ数が2個以上x個未満(但しxは3以上の自然数)の組み合わせと、データ数がx個以上の組み合わせに対し、異なる観点から、シナリオデータを生成する。
【選択図】 図3
【解決手段】 対話シナリオ生成システムは、各FAQデータに対して、そのデータの属性とその属性値を対応付けたデータ集合と、属性、属性値をクラスとして定義したクラスデータとを読込むデータ読込部と、各FAQデータのそれぞれに対して、属性値を有する全ての属性について、属性とその属性値との対の組み合わせを求め、組み合わせ毎に、当該組み合わせに係るFAQデータの識別情報と、データ数とを得るデータ分類部とを有する。そして、データ数が1個の組み合わせと、データ数が2個以上x個未満(但しxは3以上の自然数)の組み合わせと、データ数がx個以上の組み合わせに対し、異なる観点から、シナリオデータを生成する。
【選択図】 図3
Description
本発明は対話型検索システム及びプログラムに関し、例えば、沢山の質問応答集の中から、対話によってユーザの質問に一番近い質問応答のペアを1つ選び出し、それを回答としてユーザに提供する場合に適用し得る。
また、本発明は、対話型質問応答システム及びプログラムが利用する対話シナリオのデータを生成する対話シナリオ形成システム及びプログラムに関する。
近年、多くの企業で、CSR(企業の社会的責任)の向上のために、コンタクトセンタを設置し、お客様の問合せや要望を受け付けたり、ホームページ上での情報公開を積極的に行ったりしている。企業のホームページでは、ユーザが自分の質問の回答を簡単に見つけることができるように、製品やトラブルシューティング等のさまざまな情報を、FAQ集(頻度の高い質問応答集)としてユーザサポート等のサイトに集め、参照・検索可能な形式で提供している。しかしながら、大量の質問応答集の中から、ユーザの所望する質問応答(以下、QAと呼ぶ)を単純なキーワード検索や文字列検索で見つけることは難しく、ユーザは複数のキーワードを入れたり、何度も検索したり、候補として出力された膨大な量のQAを1つ1つ確認したりして、ようやく回答に辿り着く。このような問題を解決するために、特許文献1では、対話形式でユーザが探している情報に絞り込んでいくシステムを提案している。
特許文献1に記載のシステムは、ユーザの質問文を事例文照合辞書に登録されている事例文と照合して、その事例文に対応する次のシステム発話を得る。例えば、ユーザが「印刷」と入力した場合、事例文照合辞書中の事例文「印刷」と照合し、事例文「印刷」に対応するFAQテーマの「印刷」を得る。各FAQテーマには、FAQ・選択肢データベースにおいて、次のシステム発話文(以下、メッセージと呼ぶ)が対応付けられている。FAQテーマ「印刷」には、「印刷のどんなことについてお知りになりたいですか?以下の中から選んで下さい。(1)特別な用紙に印刷したい。(2)印刷時にトラブルが起こった。…(以下省略)」というメッセージが対応付けられており、この文がユーザに提示される。ユーザは、システムが提示した選択肢から適切な回答を一つ選択すると、その選択肢が新たなユーザの質問文となり、再度、事例文照合辞書との照合を繰り返す。事例文照合辞書には、「印刷」といった曖昧な意味の事例文もあれば、「印刷時にトラブルが起こった」、「印刷された文字がおかしい」といった、より具体的な事例文もある。具体的な事例文では、QAが特定できるので、選択肢ではなく、その特定されたQAが次のシステム発話文として対応付けられている。従って、ユーザの質問文やユーザが選択した選択肢が、詳細な内容を含む場合は、具体的な事例文と照合し、特定されたQAを提示して、処理が終了する。
上記(1)から(3)の理由から、特許文献1に記載の従来システムでは、一般的な文字列検索では膨大な量のFAQがヒットしてしまうような短い入力文が入力された場合でも、対話(選択肢からなる次の質問)を通じて詳細な情報をユーザから引き出し、最終的にユーザが求めているQAに絞り込むことができる。
しかし、特許文献1に記載の従来システムでは、次のような3つの課題を有する。
(1)事例文照合辞書及びFAQ・選択肢データベースの構築方法、並びに、構築コストの課題
上記従来システムでは、ユーザ入力文を照合させるための事例文を事例文照合辞書として用意しなければならない。さらに、事例文に合った次のシステム発話文(選択肢)をFAQ・選択肢データベースとして用意しなければならない。これら事例文照合辞書、FAQ・選択肢データベースのデータ量や品質が、システムの検索精度を左右する。例えば、ユーザの入力文と照合させる事例文が少ないと、次のシステムの発話を決めることができず、対話は終了する。また、FAQ・選択肢データベースの作成の際、検索対象となるFAQ全体を考慮にいれなければ、最終回答にたどりつかない選択肢を作ってしまったり、逆にQAがあるのに、選択肢がないためにたどりつけなくなったりする可能性がある。しかしながら、検索対象となるFAQ全体を考慮に入れて選択肢を作成するのは非常に面倒な作業となる。さらに、FAQに追加や修正が起こる場合には、その度に選択肢の見直しが必要となる。このように、上記従来システムには、事例文やFAQ・選択肢データベースの構築やデータの追加・削除が容易でないという課題がある。
上記従来システムでは、ユーザ入力文を照合させるための事例文を事例文照合辞書として用意しなければならない。さらに、事例文に合った次のシステム発話文(選択肢)をFAQ・選択肢データベースとして用意しなければならない。これら事例文照合辞書、FAQ・選択肢データベースのデータ量や品質が、システムの検索精度を左右する。例えば、ユーザの入力文と照合させる事例文が少ないと、次のシステムの発話を決めることができず、対話は終了する。また、FAQ・選択肢データベースの作成の際、検索対象となるFAQ全体を考慮にいれなければ、最終回答にたどりつかない選択肢を作ってしまったり、逆にQAがあるのに、選択肢がないためにたどりつけなくなったりする可能性がある。しかしながら、検索対象となるFAQ全体を考慮に入れて選択肢を作成するのは非常に面倒な作業となる。さらに、FAQに追加や修正が起こる場合には、その度に選択肢の見直しが必要となる。このように、上記従来システムには、事例文やFAQ・選択肢データベースの構築やデータの追加・削除が容易でないという課題がある。
(2)対話順番の効率性、事例文照合のコンフリクトの課題
例えば、ユーザが「印刷された文字がおかしいというトラブル」と入力した場合、照合に用いる文は、「印刷時にトラブルが起こった」、「印刷された文字がおかしい」の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データを探索できるようにした対話型質問応答システムである。
以下、本発明による対話型検索システム及びプログラム、並びに、対話シナリオ生成システム及びプログラムの一実施形態を、図面を参照しながら説明する。ここで、実施形態の対話型検索システムは、実施形態の対話シナリオ生成システムを包含しているものである。実施形態の対話型検索システムは、ユーザとシステムとの対話を通して、ユーザが所望するFAQデータを探索できるようにした対話型質問応答システムである。
(A−1)実施形態の構成
図1は、実施形態の対話型質問応答システム101のネットワーク上での位置を示す説明図である。
図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と、ドメイン知識データベース(ドメイン知識DB)111のデータを有する。ここで、ドメイン知識管理部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の対話時の動作(問い合わせ回答のためのシステム対話に関する動作)である。
次に、実施形態の対話型質問応答システム101の動作を説明する。動作は、大きく2つに分かれる。1つは、対話シナリオ生成システム115の動作(クラス辞書113及び条件付シナリオ辞書114の自動生成に関する動作)であり、もう1つは、対話型質問応答システム101の対話時の動作(問い合わせ回答のためのシステム対話に関する動作)である。
(A−2−1)対話シナリオ生成システム115の生成動作
以下では、対話シナリオ生成システム115が読み込むクラス付FAQデータ116、クラスデータ117、シナリオデータ118を順に説明した後、対話シナリオ生成システム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データと区別するための識別情報(id)411が付与されている。図4の最上行に記載のように、各属性について、「属性(属性名):その属性に関する質問シナリオ(システム発話文の一部となる)」が記述されている。図4の例では、属性は、「サービス名」、「問い合わせ目的」、「機能KW(KWはキーワードを表している)」、「画面KW」、「データKW」、「システム動作KW」、「ユーザ動作KW」、「しない・できないKW」の8つである。属性「サービス名」についての「質問シナリオ」として、「どのサービスに関係するご質問でしょうか?以下からお選びください。」が記述されている。
例えば、id=1のクラス付QA(412)は、質問文「MAILPIAとは何ですか?」、回答文「お気に入りのサイトやブログの更新情報をメールで受け取るサービスです。」というQAの本体に対し、属性「サービス名」について属性値「MailPIA」が付与され、属性「問い合わせ目的」について属性値「サービス名や用語について説明して欲しい」が付与されている。以下、「属性=属性値」という形式で記述する。この場合であれば、サービス名=MailPIA、問い合わせ目的=サービス名や用語について説明して欲しい、と記述することとなる。なお、属性値は全ての属性について付与する必要はなく、そのQAに関係する属性に対してのみ属性値を付与する。
FAQデータに対する属性値の付与は、手動で行ったものであっても良く、また、質問文(若しくは回答文)を解析(形態素解析や構文解析など)して自動的に付与したものであっても良い。
図5は、クラスデータ117の一例を示す説明図である。図5における最上行はデータ項目を表している。
クラスは、クラス0、クラス1、クラス2、…のように、いくつでも階層的に(木構造で)定義できる。図5の例では、クラス0(501)、クラス1(502)の2つのレベルで定義している。例えば、「Root」の下位ノードとして、「ユーザデータ」、「YESNO−ok」、「YESNO−mail」がある。「ユーザデータ」の下位ノードとして、「問い合わせ目的」、「サービス名」、「機能KW(KWはキーワードを表している)」、「画面KW」、「データKW」、「システム動作KW」、「ユーザ動作KW」、「しない・できないKW」がある。このように、クラス付FAQデータ116で定義された属性(例えば、サービス名)は、ユーザデータクラスの子クラスとして定義し、各属性の属性値(例えば、MailPIA)は、さらにその属性の子クラスとして定義している。それぞれのクラスは、標準形(ユーザに提示する際に使われる表現)503と、異表記(ユーザ入力文を認識する際に使われる表現)504、質問キュー(このクラスが回答であった場合の次のシナリオのシナリオid)505と、値セット(そのクラスがユーザから取得された場合にセットされるユーザデータの属性=属性値)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(のid)801毎に、質問文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=解除したい」について生成される条件付シナリオとクラス(のデータ構造)を示す説明図であり、図11(a)が条件付シナリオを示し、図11(b)がクラスを示している。
属性=属性値の組み合わせ「ユーザ動作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つを選択肢として含むシナリオを生成する。このとき、生成される条件付シナリオのデータ構造を図14(a)の上の行1401aに、クラスデータのデータ構造を図14(b)の上の行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の生成条件を満たすので、属性「サービス名」と同様にシナリオ及びクラスデータを生成する。生成処理の詳細は省略するが、生成される条件付シナリオは図14(a)の下の行1402aとなり、クラスデータは図14(b)の下の行1402bとなる。
属性「機能KW」についての生成が終了すると、対象以外の属性の属性値リストに未処理の属性が残っていない。そのため、繰り返し処理を終了する。このように生成条件を満たす属性がなくなれば、直前に生成したシナリオの質問キューに「sorry−001」をセットし(ステップ713)、次の属性=属性値の組み合わせの処理に移行する(ステップ704)。
上記の生成処理で生成されたシナリオにおける選択肢「この質問をスキップ」は、絞込み用の次のシナリオにスキップさせることを表しており、スキップして到達する最後のシナリオは、ステップ711及び712の繰返しループで最後に生成されたシナリオである。最後に生成されたシナリオでも、選択肢「この質問をスキップ」が選択された場合を考慮した何の手立ても行っていなければ、対話は中断されてしまう。そのため、図6に示した入力されたシナリオデータ118の中に、シナリオidが「sorry−001」であってシステム発話文が「申し訳ございません。お客様のご質問に関する回答をみつけることはできません。メールでの回答を希望しますか?」を用意しておいている。
(A−2−2)対話型質問応答システム101の対話動作
次に、実施形態の対話型質問応答システム101におけるユーザとの対話動作を、図15のフローチャートを参照しながら説明する。
次に、実施形態の対話型質問応答システム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)を取り出したものとなり、図16(a)に示すようになるが、この段階では、全ての属性について、属性値が空のものである。
以下では、当初のシステム発話文「お客様のご質問を入力してください。」の提示に対して、ユーザが「メールピアとは何ですか?」と入力した場合を説明する。なお、ステップ1501〜1503の処理は上述した通りである。ステップ1502でセットされたユーザデータ106は、startシナリオのユーザ回答クラスが「ユーザデータ」クラスであるので、クラス辞書113からユーザデータの下位クラス(問い合わせ目的、サービス名、機能KW、データKW、システム動作KW、ユーザ動作KW、しない・できないKW)を取り出したものとなり、図16(a)に示すようになるが、この段階では、全ての属性について、属性値が空のものである。
入出力処理部102は、ユーザ入力文「メールピアは何ですか」を受け取り、対話制御部103を介して、意図解析部104に渡し、その際、シナリオ質問文のユーザ回答クラスである「ユーザデータ」も同時に意図解析部104に渡す(ステップ1504)。意図解析部104は、形態素辞書112とクラス辞書113を引くことによって、形態素解析を行い、「ユーザデータ」クラスより下位に定義されているクラスを、対話制御部103を介してユーザデータ管理部105に渡す。
図17(a)に、ユーザ入力文「メールピアは何ですか」についての意図解析結果を示す。2つの出現形への分割は形態素解析による。意図解析結果の「メールピア」の部分については、図5のクラスデータにおけるクラス0が「サービス名」である中の1行目のクラスデータから、「標準形」、「親クラス」、「クラス名」のデータが得られ、ユーザ回答クラスの「ユーザデータ」は、このユーザ入力文が入力される前に提示された、シナリオidが「start」のシステム発話文のユーザ回答クラスの内容である。意図解析結果の「何ですか」の部分については、図5のクラスデータにおけるクラス0が「問い合わせ目的」である中の1行目のクラスデータから、「標準形」、「親クラス」、「クラス名」のデータが得られ、ユーザ回答クラスの「ユーザデータ」は、このユーザ入力文が入力される前に提示された、シナリオidが「start」のシステム発話文のユーザ回答クラスの内容である。
ユーザデータ管理部105は、既にユーザデータにセットされている属性と同じクラス名を、意図解析結果の親クラスにもつクラスを属性値としてセットする(ステップ1507)。
上記の例では、「MailPIA」をサービス名の属性値と、「サービス名や用語について説明して欲しい」を問い合わせ目的の属性値としてセットする。これにより、セット後のユーザデータは、図16(b)に示すようになる。
現在利用中の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」のシナリオをユーザに提示した画面例を図18(a)に示す。図18(a)〜(e)は選択肢をラジオボタンで選択させるものを示しているが、選択肢の指示方法はこれに限定されず、反転表示などのカーソルで選択させるものであっても良い。
シナリオidが「answer−001」のシナリオは、質問キューに「end」がセットされていないので、対話制御部103は処理を終了せず(ステップ1512)、選択肢「はい」か「いいえ」のどちらをユーザが選択したかを取り込む(ステップ1504)。
ユーザが「はい」を選択した場合には、「はい」のクラス名「YES−ok」が、入出力処理部102、対話制御部103を通じて、意図解析部104に渡される(ステップ1504)。ユーザ回答タイプが「選択肢の選択」に係るタイプの場合、意図解析部104は、形態素辞書112に対する辞書引きを実行せず、「YES−ok」のクラスデータ(図5の下から5行目のデータ)を、意図解析結果として対話制御部103に直接渡す(ステップ1505)。図17(b)は、この場合の意図解析結果を示している。
この結果にはユーザデータはないので、ユーザデータは格納されない(ステップ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によるユーザ入力文の入力処理から説明する。
次に、ユーザの最初の質問(ユーザ入力文)が不明瞭な場合について、対話型質問応答システム101の対話動作を具体例を挙げて説明する。以下では、当初のシステム発話文「お客様のご質問を入力してください。」の提示に対して、ユーザが「用語がわからない」と入力した場合を説明する。なお、ステップ1501〜1503の処理は上述した通りであるので、ステップ1504によるユーザ入力文の入力処理から説明する。
入出力処理部102は、ユーザ入力文「用語がわからない」を受け取り、対話制御部103を介して、意図解析部104に渡す(ステップ1504)。意図解析部104は、形態素辞書112とクラス辞書113を引くことによって、形態素解析を行い、「ユーザデータ」クラスより下位に定義されているクラスを、対話制御部103を介してユーザデータ管理部105に渡す(ステップ1505)。
図17(c)は、ユーザ入力文「用語がわからない」に対する意図解析結果を示している。形態素解析による「用語」が、図5のクラスデータにおけるクラス0が「問い合わせ目的」である中の1行目のクラスデータの異表記に定義されていることから、この1行目のクラスデータにおける「標準形」、「親クラス」、「クラス名」のデータが意図解析結果に含まれ、ユーザ回答クラスの「ユーザデータ」は、このユーザ入力文が入力される前に提示された、シナリオidが「start」のシステム発話文のユーザ回答クラスの内容である。
ユーザデータ管理部105は、既にセットされている属性と同じクラス名を親クラスにもつクラスを属性値としてユーザデータ116にセットする(ステップ1507)。上記の例では、「サービス名や用語について説明して欲しい」を問い合わせ目的の属性値としてセットする(図16(c)参照)。
この意図解析結果には質問キューがないので(ステップ1508)、対話制御部103は、条件照合部110に命令を送り、条件照合部110は、ユーザデータ116を読み込み、ユーザデータ116と条件付シナリオ辞書114にセットされているシナリオの条件を照合させ、照合結果をシナリオ選択部109に渡す(ステップ1509)。シナリオ選択部109は、最も数多くマッチするシナリオidのシナリオを、条件付シナリオ辞書114から選び、対話制御部103に渡す(ステップ1510)。
上記の例の場合、ユーザデータ116の属性値に対し、図14(a)の条件付シナリオの条件「問い合わせ目的=サービス名や用語を説明して欲しい」が完全マッチする(ステップ1509)。この場合、条件がユーザデータ116にマッチするシナリオは、図14(a)に示すように、シナリオidが「choice−008」のシナリオと、シナリオidが「choice−009」のシナリオとがある。
シナリオ選択部109は、ユーザデータ116に合致する条件を有する1つのシナリオを選択して対話制御部103に渡す(ステップ1510)。図14(a)に示すように、シナリオ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)。この際にユーザに提示された画面例を図18(b)に示している。
シナリオidが「choice−008」のシナリオは、質問キューに「end」がセットされていないため(ステップ1512)、処理を終了しない。
次に、図18(b)の画面中の選択肢の中から、ユーザが「MailPIA」を選択した場合の動作は説明する。
選択肢「MailPIA」を選択すると、「MailPIA」のクラス名「choice−008_001」が、入出力処理部102、対話制御部103を通じて、意図解析部104に渡される(ステップ1504)。意図解析部104は、回答タイプが「選択肢」であるため、クラス辞書113を引き、そのクラスデータを意図解析結果として対話制御部103に渡す(ステップ1505)。
このときの意図解析結果を図17(d)に示している。クラス名「choice−008_001」のクラスデータにおける値セットには、図14(b)に示すように、「サービス名=MailPIA」が記述されているので、意図解析結果の値セットにも、「サービス名=MailPIA」が含まれる。「サービス名」は、ユーザデータクラスの下位であるため、対話制御部103は、「サービス名=MailPIA」をユーザデータ管理部105に渡し、ユーザデータ管理部105は、ユーザデータの属性「サービス名」に「MailPIA」をセットする(ステップ1507)。この結果、ユーザデータ116は、ユーザ入力文「メールピアとは何ですか?」の処理後を示している上述した図16(b)と同じ結果、「サービス名=MailPIA&&問い合わせ目的=サービス名や用語を説明して欲しい」となる。
そのため、これ以降の動作は、ユーザ入力文「メールピアとは何ですか?」が入力された上述した第1具体例の場合と同様となり、以下の動作の説明は省略する。
詳述は避けるが、図18(b)の画面中の選択肢の中から、「訳してねっと」が選択されたときには、ユーザデータ116が「サービス名=訳してねっと&&問い合わせ目的=サービス名や用語を説明して欲しい」となり、これに最も合致する条件を有する条件付シナリオが、次のシナリオとして選択されることになる。同様に、図18(b)の画面中の選択肢の中から、「ラダサーチ」、が選択されたときには、ユーザデータ116が「サービス名=ラダサーチ&&問い合わせ目的=サービス名や用語を説明して欲しい」となり、これに最も合致する条件を有する条件付シナリオが、次のシナリオとして選択されることになる。
次に、図18(b)の画面中の選択肢の中から、ユーザが「この質問をスキップ」を選択した場合の動作を説明する。
ユーザが「この質問をスキップ」を選択すると、「この質問をスキップ」のクラス名「choice−008_004」が、入出力処理部102、対話制御部103を通じて、意図解析部104に渡される(ステップ1504)。意図解析部104は、回答タイプが「選択肢」であるため、クラス辞書113を引き、そのクラスデータを意図解析結果として対話制御部103に渡す(ステップ1505)。クラスデータが図14(b)の符号1401bに示すようなものであるので、この際の意図解析結果は図17(e)に示すようになる。
この場合、クラス名がユーザデータでなく、かつ、値セットにおいてもユーザデータへの値セットがないため、ユーザデータ116には何もセットされず、また、質問キューも空であるので、条件照合処理を行う(ステップ1509)。その条件照合時のユーザデータ116は、ユーザデータに対する変更が実行されていないため、前回と同じユーザデータである。すなわち、図16(c)に示すユーザデータである。そのため、条件照合部110による照合結果は、図14(a)に示す条件付シナリオとなる。
但し、シナリオidが「choice−008」のシナリオは既にユーザに提示しているため、このときには、シナリオidが「choice−009」のシナリオがシナリオ選択処理109で選択され(ステップ1510)、対話制御部103は、そのシステム発話文を、入出力処理部102を通じてユーザに出力する(ステップ1511)。図19(c)は、シナリオidが「choice−009」のシナリオが選択されてユーザに提示された画面例を示している。提示画面に、選択肢を含める処理は、上述したシナリオidが「choice−008」のシナリオが選択した場合と同様であるので、その説明は省略する。
図19(c)の提示画面の選択肢の中から、ユーザが「辞書登録」を選択したとする。このとき、「辞書登録」のクラス名「choice−009_001」が、入出力処理部102、対話制御部103を通じて、意図解析部104に渡される(ステップ1504)。意図解析部104は、回答タイプが選択肢であるため、クラス辞書113を引き、そのクラスデータを意図解析結果として対話制御部103に渡す(ステップ1505)。
クラス名「choice−009_001」を含むクラスデータにおける値セットには、図14(b)に示すように、「機能KW=辞書登録」が記述されているので、意図解析結果の値セットにも「機能KW=辞書登録」が記述され、属性「機能KW」は、ユーザデータクラスの下位であるため、対話制御部103は、「機能KW=辞書登録」をユーザデータ管理部105に渡し、ユーザデータ管理部105は、ユーザデータ116の属性「機能KW」に「辞書登録」をセットする(ステップ1507)。この結果、ユーザデータ116は、図16(d)に示すようになる。すなわち、ユーザデータ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)。
この場合のユーザへの提示画面は、図18(d)に示すようなものとなる。ユーザが、選択肢「Q:辞書登録では何かできますか?」を選択すると、その選択肢に係るクラス名「focusCl−001_id32」が、入出力処理部102、対話制御部103を通じて、意図解析部104に渡される(ステップ1504)。意図解析部104は、回答タイプが選択肢であるため、クラス辞書113を引き、そのクラスデータを意図解析結果として対話制御部103に渡す(ステップ1505)。このクラスデータにはユーザデータはないが(ステップ1506)、図19(b)に示すように質問キューが存在する。そのため、シナリオ選択部109は、質問キューにセットされているfocusCl−001−id32のシナリオを条件付シナリオ辞書114から選択する(ステップ1510)。この場合、図19(a)に符号1902aを付与したシナリオが選択され、そのシステム発話文が、ユーザに提示される(ステップ1511)。このときに、ユーザに提示される画面例を図18(e)に示している。
これ以降も同様にして、ユーザとシステムとの対話が進行していくが、これ以降の動作の説明は省略する。
(A−3)実施形態の効果
構成及び動作を上述した上記実施形態によれば、以下の効果を奏することができる。
構成及び動作を上述した上記実施形態によれば、以下の効果を奏することができる。
(1)QAの特徴を示す属性値(クラス)を付与したQAを準備するだけで、ユーザが所望するQAを絞り込むための効果的な条件付シナリオを自動的に生成することができる。なお、この条件付シナリオは、全QAに付与されている属性値に基づいて生成されているため、各選択肢には、必ずQAが紐づいている。従って、無駄な選択肢がユーザに提示されることはない。
(2)キーワード(属性値)を複数の属性に分類することによって、ユーザがある分類の切り口での選択肢による絞込みができなかった場合でも、別の分類の切り口での選択肢をユーザに提示することができる。従って、ユーザが理解できる分類での選択肢による絞込みが可能となる。
通常、ある用語に関するQAを選択肢で分類する切り口は、1つとは限らない。例えば、「印刷」に関するQAを(選択肢で)分類する切り口は、使用している「プリンタ名」で分類することもできるし、「印刷」の何について知りたいか(トラブル対処、設定方法、用語)で分類することもできる。何らかのアプリケーションからの印刷の場合ならば、「アプリケーション名」で分類することもできる。上記実施形態では、分類の切り口をいくつも用意し(属性=属性値の組み合わせ)、ある選択肢で回答が得られない場合は、別の切り口の分類で選択肢を提示し、ユーザに選ばせることができるので、ユーザが所望するQAをシステムが回答する率を向上させることができる。
(3)従来例のような事例文による照合ではなく、かつ、検索対象となる全QAに付与されているキーワード(属性値)を用いて、条件付シナリオと照合するため、照合する属性値が多い順にシナリオの優先度を設定したり、また、最終的に絞り込まれるQAの数が少ないものほど優先度を上げたりすることにより、シナリオの優先度を決定することができ、照合時のコンフリクトを抑えることができる。
(4)属性値は、全FAQデータに出現する用語から作成することができる。クラスファイルの作成は、類義語辞書や市販の辞書を利用することもでき、事例文による照合より、各種辞書の構築(生成)が容易である。
(B)他の実施形態
上記実施形態では、意図解析部104が単純な形態素解析を利用するものである場合を示したが、係り受けを解析する構文解析等を利用して意図解析するものであっても良い。例えば、このような高度な解析を用いることによって、文の5W1H(何、誰、どこ、いつ、なぜ、どのように)型を解析し、その解析結果から、属性「問い合わせ目的」の属性値を決定し、その属性値を条件として、次のシナリオを決定することもできる。
上記実施形態では、意図解析部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に限定せず、複数の属性とその属性値を付与できる対象であれば、検索対象はどのようなものでも良い。例えば、画像に属性=属性値が付与されているならば、画像検索にも応用することができる。
101…対話型質問応答システム、102…入出力処理部、103…対話制御部、104…意図解析部、105…ユーザデータ管理部、106…ユーザデータ、107…ドメイン知識管理部、108…辞書引き部、109…シナリオ選択部、110…条件照合部、111…ドメイン知識データベース(ドメイン知識DB)、112…形態素辞書、113…クラス辞書、114…条件付シナリオ辞書、115…対話シナリオ生成システム、150…データ読込み部、151…FAQデータ分類部、152…第1分類シナリオ生成部、153…第2分類シナリオ生成部、154…第3分類シナリオ生成部、155…生成シナリオ出力部。
Claims (6)
- ユーザとシステムとのシナリオデータに従った対話を通して、検索対象の多数のデータの中から、ユーザが所望するデータを見つけ出す対話型検索システムで利用される上記シナリオデータを生成する対話シナリオ生成システムにおいて、
検索対象の個々のデータに対して、そのデータの特徴を示す属性とその属性値を対応付けた属性データ集合と、属性、属性値をクラスとして定義したクラスデータとを少なくとも読込むデータ読込手段と、
検索対象の個々のデータのそれぞれに対して、属性値を有する全ての属性について、属性とその属性値との対の組み合わせを求め、属性とその属性値との対の組み合わせ毎に、当該組み合わせに係る検索対象のデータの識別情報と、当該組み合わせに係る検索対象のデータの数とを得るデータ分類手段と、
検索対象のデータの数が1個の属性とその属性値との対の組み合わせについて、ユーザとシステムとの対話を通して、ユーザの意図が、当該組み合わせに関連していると判別されるときに、1個だけの上記検索対象のデータをユーザに提示させるシナリオデータを生成する第1分類シナリオ生成手段と、
検索対象のデータの数が2個以上x個未満(但しxは3以上の自然数)の属性とその属性値との対の組み合わせについて、ユーザとシステムとの対話を通して、ユーザの意図が、当該組み合わせに関連していると判別されるときに、当該データ数の上記検索対象のデータをユーザに選択させるように提示させるシナリオデータを生成する第2分類シナリオ生成手段と、
検索対象のデータの数がx個以上の属性とその属性値との対の組み合わせについて、当該組み合わせに係る検索対象のデータを、当該組み合わせに含まれていない属性と属性値との対の観点から整理し、ユーザとシステムとの対話を通して、ユーザの意図が、当該組み合わせに関連していると判別されるときに、当該組み合わせに含まれていない属性の属性値を選択候補としてユーザに選択させるように提示させる、検索対象のデータを絞り込むためのシナリオデータを生成する第3分類シナリオ生成手段と
を有することを特徴とする対話シナリオ生成システム。 - 検索対象の個々のデータが、質問文と回答文のペアのデータであることを特徴とする請求項1に記載の対話シナリオ生成システム。
- ユーザとシステムとのシナリオデータに従った対話を通して、検索対象の多数のデータの中から、ユーザが所望するデータを見つけ出す対話型検索システムで利用される上記シナリオデータを生成する対話シナリオ生成プログラムであって、
コンピュータを、
検索対象の個々のデータに対して、そのデータの特徴を示す属性とその属性値を対応付けた属性データ集合と、属性、属性値をクラスとして定義したクラスデータとを少なくとも読込むデータ読込手段と、
検索対象の個々のデータのそれぞれに対して、属性値を有する全ての属性について、属性とその属性値との対の組み合わせを求め、属性とその属性値との対の組み合わせ毎に、当該組み合わせに係る検索対象のデータの識別情報と、当該組み合わせに係る検索対象のデータの数とを得るデータ分類手段と、
検索対象のデータの数が1個の属性とその属性値との対の組み合わせについて、ユーザとシステムとの対話を通して、ユーザの意図が、当該組み合わせに関連していると判別されるときに、1個だけの上記検索対象のデータをユーザに提示させるシナリオデータを生成する第1分類シナリオ生成手段と、
検索対象のデータの数が2個以上x個未満(但しxは3以上の自然数)の属性とその属性値との対の組み合わせについて、ユーザとシステムとの対話を通して、ユーザの意図が、当該組み合わせに関連していると判別されるときに、当該データ数の上記検索対象のデータをユーザに選択させるように提示させるシナリオデータを生成する第2分類シナリオ生成手段と、
検索対象のデータの数がx個以上の属性とその属性値との対の組み合わせについて、当該組み合わせに係る検索対象のデータを、当該組み合わせに含まれていない属性と属性値との対の観点から整理し、ユーザとシステムとの対話を通して、ユーザの意図が、当該組み合わせに関連していると判別されるときに、当該組み合わせに含まれていない属性の属性値を選択候補としてユーザに選択させるように提示させる、検索対象のデータを絞り込むためのシナリオデータを生成する第3分類シナリオ生成手段と
して機能させることを特徴とする対話シナリオ生成プログラム。 - ユーザとシステムとのシナリオデータに従った対話を通して、検索対象の多数のデータの中から、ユーザが所望するデータを見つけ出す対話型検索システムにおいて、
請求項1に記載の対話シナリオ生成システムと、
ユーザからの入力を取り込みと共に、ユーザへの出力を行う入出力手段と、
ユーザの入力を解析することによって、属性と属性値との対の組み合わせを求める意図解析手段と、
上記意図解析手段により得られた属性と属性値との対の組み合わせと、各シナリオデータに関連する属性と属性値の対の組み合わせと照合する条件照合手段と、
上記条件照合手段の結果から、最適なシナリオデータを選択するシナリオ選択手段と、
選択されたシナリオデータに基づいて、次のシステム発話をユーザに提示させる対話制御手段と
を有することを特徴とする対話型検索システム。 - 検索対象の個々のデータが、質問文と回答文のペアのデータであることを特徴とする請求項4に記載の対話型検索システム。
- ユーザとシステムとのシナリオデータに従った対話を通して、検索対象の多数のデータの中から、ユーザが所望するデータを見つけ出す対話型検索プログラムであって、
請求項3に記載の対話シナリオ生成プログラムを有すると共に、
コンピュータを、
ユーザからの入力を取り込みと共に、ユーザへの出力を行う入出力手段と、
ユーザの入力を解析することによって、属性と属性値との対の組み合わせを求める意図解析手段と、
上記意図解析手段により得られた属性と属性値との対の組み合わせと、各シナリオデータに関連する属性と属性値の対の組み合わせと照合する条件照合手段と、
上記条件照合手段の結果から、最適なシナリオデータを選択するシナリオ選択手段と、
選択されたシナリオデータに基づいて、次のシステム発話をユーザに提示させる対話制御手段と
して機能させることを特徴とする対話型検索プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011121834A JP2012248161A (ja) | 2011-05-31 | 2011-05-31 | 対話型検索システム及びプログラム、並びに、対話シナリオ生成システム及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011121834A JP2012248161A (ja) | 2011-05-31 | 2011-05-31 | 対話型検索システム及びプログラム、並びに、対話シナリオ生成システム及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012248161A true JP2012248161A (ja) | 2012-12-13 |
Family
ID=47468512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011121834A Withdrawn JP2012248161A (ja) | 2011-05-31 | 2011-05-31 | 対話型検索システム及びプログラム、並びに、対話シナリオ生成システム及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012248161A (ja) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015225657A (ja) * | 2014-05-27 | 2015-12-14 | バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド | 対話型検索方法および装置 |
JP2016224994A (ja) * | 2013-11-13 | 2016-12-28 | ネイバー コーポレーションNAVER Corporation | 対話基盤の検索サポートシステムおよびその方法 |
WO2017208518A1 (ja) * | 2016-05-30 | 2017-12-07 | ソニー株式会社 | 情報処理装置 |
JP2018180936A (ja) * | 2017-04-13 | 2018-11-15 | 日本電信電話株式会社 | 対話シナリオ生成装置、方法、及びプログラム |
CN109271411A (zh) * | 2018-09-28 | 2019-01-25 | 中国平安财产保险股份有限公司 | 报表生成方法、装置、计算机设备及存储介质 |
JP2020013492A (ja) * | 2018-07-20 | 2020-01-23 | 株式会社リコー | 情報処理装置、システム、方法およびプログラム |
CN111506712A (zh) * | 2019-01-30 | 2020-08-07 | 株式会社东芝 | 对话系统、对话方法、程序以及存储介质 |
KR20200096620A (ko) * | 2017-12-19 | 2020-08-12 | 캐논 가부시끼가이샤 | 무선 단말기, 관리 서버, 및 의도 해석 서버 |
JP2021519472A (ja) * | 2018-05-30 | 2021-08-10 | エーアイ スピーチ カンパニー リミテッドAi Speech Co., Ltd. | 対話システム間の知識共有方法、対話方法、知識共有装置、対話装置、電子機器及び記憶媒体 |
JP2022105186A (ja) * | 2019-01-30 | 2022-07-12 | 株式会社東芝 | 対話システム、対話方法、プログラム、及び記憶媒体 |
US11823082B2 (en) | 2020-05-06 | 2023-11-21 | Kore.Ai, Inc. | Methods for orchestrating an automated conversation in one or more networks and devices thereof |
-
2011
- 2011-05-31 JP JP2011121834A patent/JP2012248161A/ja not_active Withdrawn
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016224994A (ja) * | 2013-11-13 | 2016-12-28 | ネイバー コーポレーションNAVER Corporation | 対話基盤の検索サポートシステムおよびその方法 |
US10067975B2 (en) | 2013-11-13 | 2018-09-04 | Naver Corporation | Conversation based search system and method using a touch-detection surface separated from the system's search window |
JP2015225657A (ja) * | 2014-05-27 | 2015-12-14 | バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド | 対話型検索方法および装置 |
WO2017208518A1 (ja) * | 2016-05-30 | 2017-12-07 | ソニー株式会社 | 情報処理装置 |
JP7059929B2 (ja) | 2016-05-30 | 2022-04-26 | ソニーグループ株式会社 | 情報処理装置 |
US11114095B2 (en) | 2016-05-30 | 2021-09-07 | Sony Corporation | Information processing device |
JPWO2017208518A1 (ja) * | 2016-05-30 | 2019-03-28 | ソニー株式会社 | 情報処理装置 |
JP2018180936A (ja) * | 2017-04-13 | 2018-11-15 | 日本電信電話株式会社 | 対話シナリオ生成装置、方法、及びプログラム |
KR20200096620A (ko) * | 2017-12-19 | 2020-08-12 | 캐논 가부시끼가이샤 | 무선 단말기, 관리 서버, 및 의도 해석 서버 |
US11438469B2 (en) | 2017-12-19 | 2022-09-06 | Canon Kabushiki Kaisha | Wireless terminal, management server and intention interpretation server |
JP2021519472A (ja) * | 2018-05-30 | 2021-08-10 | エーアイ スピーチ カンパニー リミテッドAi Speech Co., Ltd. | 対話システム間の知識共有方法、対話方法、知識共有装置、対話装置、電子機器及び記憶媒体 |
JP7108720B2 (ja) | 2018-05-30 | 2022-07-28 | エーアイ スピーチ カンパニー リミテッド | 対話システム間の知識共有方法、対話方法、知識共有装置、対話装置、電子機器及び記憶媒体 |
JP2020013492A (ja) * | 2018-07-20 | 2020-01-23 | 株式会社リコー | 情報処理装置、システム、方法およびプログラム |
JP7183600B2 (ja) | 2018-07-20 | 2022-12-06 | 株式会社リコー | 情報処理装置、システム、方法およびプログラム |
CN109271411B (zh) * | 2018-09-28 | 2023-08-29 | 中国平安财产保险股份有限公司 | 报表生成方法、装置、计算机设备及存储介质 |
CN109271411A (zh) * | 2018-09-28 | 2019-01-25 | 中国平安财产保险股份有限公司 | 报表生成方法、装置、计算机设备及存储介质 |
JP2020123131A (ja) * | 2019-01-30 | 2020-08-13 | 株式会社東芝 | 対話システム、対話方法、プログラム、及び記憶媒体 |
JP2022105186A (ja) * | 2019-01-30 | 2022-07-12 | 株式会社東芝 | 対話システム、対話方法、プログラム、及び記憶媒体 |
US11282521B2 (en) | 2019-01-30 | 2022-03-22 | Kabushiki Kaisha Toshiba | Dialog system and dialog method |
JP7319504B2 (ja) | 2019-01-30 | 2023-08-02 | 株式会社東芝 | 対話システム、対話方法、プログラム、及び記憶媒体 |
CN111506712A (zh) * | 2019-01-30 | 2020-08-07 | 株式会社东芝 | 对话系统、对话方法、程序以及存储介质 |
CN111506712B (zh) * | 2019-01-30 | 2023-11-07 | 株式会社东芝 | 对话系统、对话方法、程序以及存储介质 |
US11823082B2 (en) | 2020-05-06 | 2023-11-21 | Kore.Ai, Inc. | Methods for orchestrating an automated conversation in one or more networks and devices thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2012248161A (ja) | 対話型検索システム及びプログラム、並びに、対話シナリオ生成システム及びプログラム | |
US10872104B2 (en) | Method and apparatus for natural language query in a workspace analytics system | |
KR100754768B1 (ko) | 사용자별 맞춤 추천어를 제공하는 시스템, 방법 및 상기방법을 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독가능한 기록 매체 | |
US8566699B2 (en) | Intent-based information processing and updates | |
US7672908B2 (en) | Intent-based information processing and updates in association with a service agent | |
US10811006B2 (en) | Information processing method, information processing apparatus, and non-transitory recording medium | |
JP4929704B2 (ja) | コンピュータ処理方法及びコンピュータ処理装置 | |
EP1522933B1 (en) | Computer aided query to task mapping | |
US10558335B2 (en) | Information providing system, information providing method, and non-transitory recording medium | |
US10366154B2 (en) | Information processing device, information processing method, and computer program product | |
US20130060750A1 (en) | System and Method for Displaying Publication Dates for Search Results | |
US10339222B2 (en) | Information providing system, information providing method, non-transitory recording medium, and data structure | |
JP6818706B2 (ja) | 情報提供装置、情報提供方法、およびプログラム | |
JP7172226B2 (ja) | 検索装置、検索方法及び検索プログラム | |
JP2021124914A (ja) | 情報処理システム、情報処理方法 | |
JP2011227767A (ja) | 情報処理装置および情報処理方法 | |
JP2008129692A (ja) | 回答支援装置、回答支援システム、回答支援方法および回答支援プログラム | |
JP2018092582A (ja) | 情報処理方法、情報処理装置、及び、プログラム | |
JP2006024158A (ja) | 分類案内装置 | |
WO2020095776A1 (ja) | 知識情報作成支援装置 | |
JP7475922B2 (ja) | 知識情報作成支援装置 | |
JP4946779B2 (ja) | リスク区分管理システム及びリスク区分管理装置及びリクス区分管理プログラム | |
WO2019008394A1 (en) | CAPTURE AND EXTRACTION OF DIGITAL INFORMATION | |
JP6777907B1 (ja) | 業務支援装置、及び業務支援システム | |
JP7352847B2 (ja) | 情報処理装置、情報処理方法及び記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20140805 |