(57)【要約】【課題】質問に対して情報処理装置が自動的に応答を返す質問応答システムの応答のための応答データにおいて、修正・確認のための人手をそれほど要することなく、質の高い応答データを生成する。【解決手段】質問応答データ生成装置は、文書の構造情報の抽出パターンと質問とその応答のテキストを当てはめる応答データテンプレートとからなる応答データ生成パターンとを保持し、入力された文書を解析し、文書の構造情報を生成し、入力された文書の構造情報の示す構造と、応答データ生成パターンの抽出パターンとで、パターンマッチングを行い、抽出パターンの示すパターンにマッチした文書から、テキストを抽出し、抽出したテキストを、応答データテンプレートに当てはめることにより、応答データを生成する。【選択図】図３
2020080025.tif 000002
【特許請求の範囲】
【請求項１】
質問に対して情報処理装置が自動的に応答を返す質問応答システムのための応答データを生成する質問応答データ生成装置であって、
文書の構造情報の抽出パターンと質問とその応答のテキストを当てはめる応答データテンプレートとからなる応答データ生成パターンとを保持し、
入力された文書を解析し、文書の構造情報を生成し、
前記入力された文書の構造情報の示す構造と前記応答データ生成パターンの抽出パターンとで、パターンマッチングを行い、
前記抽出パターンの示すパターンにマッチした文書から、テキストを抽出し、
抽出したテキストを、前記応答データテンプレートに当てはめることにより、応答データを生成することを特徴とする質問応答データ生成装置。
【請求項２】
前記応答データは、質問文とその質問文に応答する応答文が一対一に対応した形式であることを特徴とする請求項１記載の質問応答データ生成装置。
【請求項３】
前記応答データテンプレートに、質問文のその質問文に応答する応答文を一つの状態と定義し、状態とその状態から遷移する状態とを定義したシナリオ記述テーブルのテンプレートを含み、
応答データとして、シナリオ記述テーブルを生成することを特徴とする請求項１記載の質問応答データ生成装置。
【請求項４】
前記応答データテンプレートに、文書からテキストを取り出すスロットと応答文を生成するパターンを対応付けた質問応答テーブルテンプレートと、
スロットとそのスロットの値を確定させる優先度とスロットの値が未確定なときに生成する応答文のパターンとを対応付けたスロット属性テーブルテンプレートとを保持し、
前記応答データは、前記質問応答テーブルテンプレートから生成され、スロット毎の値と、応答文を対応付けた質問応答テーブルと、
スロット属性テーブルテンプレートから生成され、スロットとそのスロットの値を確定させる優先度とスロットの値が未確定なときに生成する応答文のパターンとを対応付けたスロット属性テーブルとからなることを特徴とする請求項１記載の質問応答データ生成装置。
【請求項５】
前記生成された応答データを加工することを特徴とする請求項１記載の質問応答データ生成装置。
【請求項６】
前記生成された応答データを加工は、前記文書の情報に基づいて行われることを特徴とする請求項１記載の質問応答データ生成装置。
【請求項７】
前記文書のテキストを当てはめるスロットの値の確定状態に従い、前記応答データテンプレート内に定義される質問文とその質問文に応答する応答文を一つの状態としてまとめた状態の状態遷移を変更して、前記応答データテンプレートを更新することを特徴とする請求項３記載の質問応答データ生成装置。
【請求項８】
前記文書のテキストを当てはめるスロットの値の確定状態に従い、前記スロットの値を確定させる優先度を変更して、前記応答データテンプレートを更新することを特徴とする請求項４記載の質問応答データ生成装置。
【請求項９】
前記生成された応答データの内で、重複データ、不適切データをチェックして、該当する応答データを削除することを特徴とする請求項１記載の質問応答データ生成装置。
【請求項１０】
質問応答システムの統計情報に基づき、
使用頻度が少ない応答データを削除することを特徴とする請求項１記載の質問応答データ生成装置。
【請求項１１】
応答データ生成に関して、同じ質問文と応答文の状態があるとき、複数の状態をまとめた応答データを生成することを特徴とする請求項３記載の質問応答データ生成装置。
【請求項１２】
応答データ生成に関して、前記質問応答テーブルに同一のエントリがあるときに、一つを残して、他を削除した応答データを生成することを特徴とする請求項４記載の質問応答データ生成装置。
【請求項１３】
質問に対して情報処理装置が自動的に応答を返す質問応答システムのための応答データを生成する質問応答データ生成方法であって、
文書の構造情報の抽出パターンと質問とその応答のテキストを当てはめる応答データテンプレートとからなる応答データ生成パターンとを保持するステップと、
入力された文書を解析し、文書の構造情報を生成するステップと、
前記入力された文書の構造情報の示す構造と前記応答データ生成パターンの抽出パターンとで、パターンマッチングを行うステップと、
前記抽出パターンの示すパターンにマッチした文書から、テキストを抽出するステップと、
抽出したテキストを、前記応答データテンプレートに当てはめることにより、応答データを生成するステップとを有することを特徴とする質問応答データ生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、質問応答データ生成装置および質問応答データ生成方法に係り、特に、情報処理装置が質問者に対して自動的に応答を行う質問応答システムで用いる応答データにおいて、質の高い応答データを生成するのに好適な質問応答データ生成装置および質問応答データ生成方法に関する。
【背景技術】
【０００２】
自然言語処理技術の発展と、顧客満足度の改善や人件費削減と言った社会・経済的な要請の両面の理由により、自然言語を用いた質問応答システムへの注目が高まっている。
【０００３】
質問応答システムを実現する一つの方法として、新聞、書籍、論文、マニュアル、Ｗｅｂなどの文書に対し、質問者の質問文に類似した記述を含む文を探し、それを回答として応答する方法がある。しかしながら、この方法では、応答が本当に質問の内容に対応するものであることを判断できないため、正確な応答を要する用途には適さない。
【０００４】
今一つの方法としては、文書群に対し事前に質問内容と応答内容の対応関係を示す応答データを作成し、質問者の入力と応答データ中の質問内容を照らし合わせて対応する応答を返す方法がある。この方法によれば、質問と応答の対応が正しいことは、データ作成時に人間が確認でき、応答時に何の質問に対応する応答であるかを明示できるので、質問者自体もその正しさを検証できる。また、この方法による質問応答システムでは、質問者の入力と応答データの照らし合わせを行うために複数のデータ形式や質問内容の絞り込み方法が提案されている。
【０００５】
後者の文書群に対し事前に質問内容と応答内容の対応関係を示す応答データを作成する質問応答の実現方法によれば、質問・応答の関係を事前に応答データ作成者が確認できる点で優れる。しかしながら、より多くの質問に対して、適切な回答を行うためには、応答データの質と量を保たなければならず、応答データ作成者は、それなりの作業を要する。なお、以下、本明細書中において「応答データの質が高い」とは、質問応答システムが質問者の質問を認識するために必要な手数が小さいことや応答文として質問に対し正確で十分な情報を返すことなど、迅速で明解な回答を返せることを意味する。
【０００６】
応答データ作成の作業を軽減するための手段として、過去の対人間の対話履歴を分析し、質問・応答関係にある文を抽出して応答データを機械的に作成する手法がある。しかしながら、この手法は新規に質問応答システムを構築する場合など、そのような履歴が無い場合には利用できない。
【０００７】
それと異なる手法として、新聞、書籍、論文、マニュアル、Ｗｅｂなどにおける質問・応答の体裁を成さない文書を元に応答データを生成する手法が開示されている。例えば、特許文献１には、文書中で事前定義された文型パターンに合致する記述を抽出し、文章を組み替えて質問文と応答文を生成する手法が開示されている。また、特許文献２には、文書中の文や図表からキーワードを抽出し、事前定義された質問文のテンプレートに代入して、そのキーワードが回答となる質問・応答関係を作る手法が開示されている。特許文献３には、事実型質問について、ルール・回答表や正規表現ルール表に基づいて、回答文章を作成する技術が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国特許出願公開２０１１／０１２５７３４号明細書
【特許文献２】米国特許出願公開２０１７／０１０５６６６号明細書
【特許文献３】特開２０１４−８５８７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上記従来技術の手法では、文書中のある１単語や１文のみに着目して質問・応答関係を生成する。そのため、文書中で離れた位置にある複数の記述を関連付けた質問・応答関係を生成できず、生成可能な質問・応答関係が限定的となるため、質問に対し正確で十分な情報を返すことができなくなるおそれがある。
【００１０】
上記のように、一般的に、後者の文書群に対し事前に質問内容と応答内容の対応関係を示す応答データを作成する方法によれば、応答データの質を高めるには、確認者が修正の作業をすることが必要になる。そのため、確認者の作業量と応答データの質は、トレードオフの関係にあるということができる。
【００１１】
本発明の目的は、修正・確認のための人手をそれほど要することなく、質の高い応答データを生成することのできる質問応答データ生成装置および質問応答データ生成方法を提供することある。
【課題を解決するための手段】
【００１２】
本発明の質問応答データ生成装置の構成は、好ましくは、質問に対して情報処理装置が自動的に応答を返す質問応答システムのための応答データを生成する質問応答データ生成装置であって、文書の構造情報の抽出パターンと質問とその応答のテキストを当てはめる応答データテンプレートとからなる応答データ生成パターンとを保持し、入力された文書を解析し、文書の構造情報を生成し、入力された文書の構造情報の示す構造と応答データ生成パターンの抽出パターンとで、パターンマッチングを行い、抽出パターンの示すパターンにマッチした文書から、テキストを抽出し、抽出したテキストを、応答データテンプレートに当てはめることにより、応答データを生成するようにしたものである。
【発明の効果】
【００１３】
本発明によれば、修正・確認のための人手をそれほど要することなく、質の高い応答データを生成することのできる質問応答データ生成装置および質問応答データ生成方法を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】質問応答システムの全体構成図である。
【図２】質問応答装置のハードウェア・ソフトウェア構成図である。
【図３】質問応答データ生成装置の機能構成図である。
【図４】質問応答データ生成装置のハードウェア・ソフトウェア構成図である。
【図５】質問応答テーブルの一例を示す図である。
【図６】文書構成の一例を示す図である。
【図７】実施形態１の文章の構造情報の一例を示す図である。
【図８】実施形態１の応答データ生成パターンの一例を示す図である。
【図９】実施形態１の応答データの一例を示す図である。
【図１０】実施形態１の応答データ生成処理を示すフローチャートである。
【図１１】質問のシナリオ分岐図の一例を示す図である。
【図１２】シナリオ記述テーブルの一例を示す図である。
【図１３】実施形態１の文章の構造情報の一例を示す図である。
【図１４】実施形態２の応答データ生成パターンの一例を示す図である。
【図１５】応答文マッピングテーブルの一例を示す図である。
【図１６】実施形態２の応答データの一例を示す図である。
【図１７】実施形態２の応答データ生成処理を示すフローチャートである。
【図１８】実施形態２の応答データテンプレートの複製・変更の処理（図１７のＳ８６５）を示すフローチャートである。
【図１９】応答データテンプレートの中のシナリオ記述テーブルテンプレートの変更を説明する図である。
【図２０】質問応答テーブルの一例を示した図である。
【図２１】スロット属性テーブルの一例を示した図である。
【図２２】実施形態３の応答データ生成パターンの一例を示す図である。
【図２３】実施形態３の応答データテンプレートの複製・変更の処理（図１７のＳ８６５）を示すフローチャートである。
【図２４】応答データ生成処理により生成された質問応答テーブルの一例を示す図である。
【図２５】応答データ生成処理により生成されたスロット属性テーブル生成の一例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本実施形態の質問応答システムを、図１ないし図２５を用いて説明する。
【００１６】
〔質問応答システムの構成〕
先ず、図１ないし図４を用いて質問応答システムの構成について説明する。
【００１７】
この質問応答システムの構成は、以下の実施形態１〜実施形態３で共通に用いられるものである。
質問応答システム１００は、図１に示されるように、質問応答装置１２０と質問応答データ生成装置１３０がネットワーク５により接続された形態である。質問応答システム１００では、質問者１１０は、質問応答端末１１１を介して、質問応答装置１２０に質問内容が記述された質問文１１２を送り、その応答文１１３を受け取る。
【００１８】
質問応答の一連の流れは以下の通りである。質問応答端末１１１は、質問者１１０が音声、入力デバイス、画面上の操作、ジェスチャーなどを通じて質問内容を入力すると、その内容を質問文１１２として質問応答装置１２０に送る。質問文１１２は、質問文や単語、またはそれに類する表現（文章で記述された選択肢における選択番号など）など、自然言語によるテキスト表記された物、あるいはそれに変換可能な形式で表現される。質問応答装置１２０は、質問文１１２を受け取ると、応答データベース１２１中で質問文１１２と近い意味を有する質問文に対応する応答文を検索し、見つかった場合には、その応答文を質問者への応答文１１３として返す。質問応答端末１１１は、質問応答装置１２０から応答文１１３を受け取るとそれを画面や音声などで質問者に通知し、質問応答の一連の作業が完了する。
【００１９】
上記質問応答の一連の作業で参照される応答データベース１２１の格納データは、質問応答データ生成装置１３０により作成される。質問応答データ生成装置１３０は、一ないし複数の文書１４０を格納する文書データベース１３１と、一ないし複数の応答データ生成パターン１４１を格納するパターンデータベース１３２を保持する。応答データ生成パターン１４１は、文書１４０中に現れる特定のパターン（章の階層構造や文における単語の係り受け関係など）と、それに対応する応答データのテンプレートで構成される。質問応答データ生成装置１３０は、文書データベース１３１中の文書１４０から、上記応答データ生成パターン１４１に記述されたパターンに合致する部分を抽出し、その部分に含まれる語句をテンプレートにあてはめ、応答データベース１２１の格納データを生成する。
【００２０】
次に、図２を用いて質問応答装置のハードウェア・ソフトウェア構成について説明する。
質問応答装置１２０は、図２に示されるような一般的な情報処理装置で実現することができ、ハードウェア構成として、ＣＰＵ（Central Processing Unit）２１０、メインメモリ２２０、ネットワークインタフェース２３０、ストレージインタフェース２４０がバスによって接続された形態である。
【００２１】
ＣＰＵ２１０は、メモリ２２０中にロードされた各種プログラムを実行し、質問応答装置１２０の各構成要素を制御する。メインメモリ２２０は、ＨＤＤ２５０に格納されているプログラムと必要なワークデータを実行時に保持する。ネットワークインタフェース２３０は、質問応答装置１２０と他の計算機（質問応答端末１１１や質問応答データ生成装置１３０）とデータを送受信するためのインタフェース装置であり、例えば、ＮＩＣ（Network Internet Card）や無線ＬＡＮ（Local Area Network）の送受信装置が、これに該当する。
【００２２】
ストレージインタフェース２４０は、補助記憶装置上のデータを読み書きするための補助記憶装置とのインタフェース装置である。例えば、ＨＢＡ（Host Bus Adapter）などが該当する。ストレージインタフェース２４０に接続された補助記憶装置は、データを長期的に保存する比較的大容量の記憶装置であり、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）、光ディスク、磁気ディスク、磁気テープなどが該当する。なお、図２では、補助記憶装置の例として、ＨＤＤ２５０を図示している。
【００２３】
ＨＤＤ２５０には、質問応答プログラム２２１がインストールされており、その下位のプログラムとして、一問一答型応答プログラム２２２、シナリオ分岐型応答プログラム２２３、ドリルダウン型応答プログラム２２４を有する。これらのプログラムは、後に説明する実施形態１ないし実施形態３に示す応答文１１３の生成方式毎に応じて、それぞれ動作するプログラムである。
【００２４】
応答データ管理プログラム２２５は、ＨＤＤ２５０中にある応答データベース１２１を管理し、応答データベース１２１および応答履歴データベース１２２内に格納されたデータを読み書きするプログラムである。
【００２５】
また、ＨＤＤ２５０は、応答データベース１２１、応答履歴データベース１２２を保持する。
【００２６】
応答データベース１２１は、質問文１１２に対し応答文１１３を決定するために質問応答プログラム２２１が用いるデータを格納するデータベースである。応答履歴データベース１２２は、過去の質問・応答のやり取りの履歴において、応答データベース１２１に格納された応答データがどれだけ利用されたかを格納するデータベースである。応答履歴データベース１２２の実現方式として、質問・応答のやり取りのログの形で保持してもよいし、応答データベース１２１に格納された応答データ毎に対応して利用回数のカウンタを保持してもよい。また、その利用回数のカウンタは、応答履歴データベース１２２として応答データベース１２１と別に保持するのではなく、応答データベース１２１中の各応答データにカウンタが付与されていてもよい。
【００２７】
次に、図３を用いて質問応答データ生成装置の機能構成について説明する。
質問応答データ生成装置１３０は、図３に示されように、機能部として、応答データ生成部３６０、記憶部３５０を有する。
【００２８】
応答データ生成部３６０は、応答データを生成する機能部であり、下位の機能部として、構造解析部３７０、テキスト解析部３８０、パターンマッチング処理部３８５、データ生成関連部３９０、応答データ管理部３９５を有する。
【００２９】
構造解析部３７０は、文章１４０の構造を解析する部分であり、下位のレイアウト分析部３７１、章階層分析部３７２、表形式分析部３７３、図形式分析部３７４を有する。レイアウト分析部３７１は、文章レイアウトを解析する機能部である。章階層分析部３７２は、文章１４０の章の階層を解析する機能部である。表形式分析部３７３は、文章１４０内に記述された表の形式を解析する機能部である。図形式分析部３７４は、文章１４０内に記述された図の形式を解析する機能部である。構造解析部３７０は、これらに限られず、文書の構造を解析する他の機能部を内包することができる。
【００３０】
テキスト解析部３８０は、文章内の意味内容に着目してテキストの情報を分析する機能部であり、下位の機能部として、形態素解析部３８１、係り受け解析部３８２、照応解析部３８３、正規表現部３８４を有する。形態素解析部３８１は、文章１４０内の形態素（言語学でいう意味を有する最初単位）を解析する機能部である。係り受け解析部３８２は、文章１４０内の単語の関係を解析する機能部である。照応解析部３８３は、文章１４０内の代名詞の情報などの意味内容に解析する機能部である。正規表現部３８４は、文章１４０の正規表現を解析する機能部である。
【００３１】
テキスト解析部３８０は、これらに限られず、テキストの情報を分析する他の機能部を内包することができる。
【００３２】
パターンマッチング処理部３８５は、文章１４０と応答データ生成パターン（後述）のマッチング処理を行う部分である。
【００３３】
データ生成関連部３９０は、応答データを生成する機能に関連する機能部であり、下位の機能部として、マッチデータ統計部３９１、生成可否判定部３９２、出力データ変更部３９３、同義語・言い換え展開部３９４を有する。マッチデータ統計部３９１は、スロットの値（単語）の出現回数をカウントする機能部である（実施形態２で詳述）。生成可否判定部３９２は、応答データの品質を高めるために、応答データとして生成する価値があるか否かを判定する機能部である。出力データ変更部３９３は、テンプレート（実施形態２、実施形態３で詳述）を書き換えるための機能部である。同義語・言い換え展開部３９４は、質問文の同義語を言い換えとして、展開したり、応答データにおいて、語句を類義語、同義語に置き換える機能部である。
【００３４】
応答データ管理部３９５は、一度生成した応答データに関し、後日削除や階層管理を行う機能部である。応答データ管理部３９５は、質問応答データ生成装置１３０ではなく質問応答装置１２０内にあってもよい。
【００３５】
記憶部３５０は、情報を記憶する機能部である。記憶部３５０は、文書データベース１３１、パターンデータベース１３２、マッチ済みデータ１３３、類義語・言い換え辞書１３４を保持する。文書データベース１３１は、文章１４０を保持するデータベースである。パターンデータベース１３２は、応答データ生成のためのパターン情報を保持するデータベースである。マッチ済みデータ１３３は、文章１４０の応答データ生成のためのパターンのマッチングを行ったデータである。類義語・言い換え辞書１３４は、同義語・言い換え展開部３９４によって使用される単語の同義語・類義語を保持するシソーラスである。
【００３６】
次に、図４を用いて質問応答データ生成装置のハードウェア・ソフトウェア構成について説明する。
質問応答装置１２０は、質問応答装置１２０と同様に、図４に示されるような一般的な情報処理装置で実現することができる。質問応答装置１２０のハードウェア構成は、質問応答装置１２０と同様である。
【００３７】
質問応答装置１２０のＨＤＤ２５０には、応答データ生成プログラム２６０を有する。応答データ生成プログラム２６０は、応答データ生成部３６０の機能を実現するプログラムである。応答データ生成プログラム２６０には、下位のプログラムとして、構造解析プログラム２６１、テキスト解析プログラム２６２、パターンマッチング処理プログラム２６３、データ生成関連プログラム２６４、応答データ管理プログラム２６５を有する。
【００３８】
構造解析プログラム２６１、テキスト解析プログラム２６２、パターンマッチング処理プログラム２６３、データ生成関連プログラム２６４、応答データ管理プログラム２６５は、それぞれ、構造解析部３７０、テキスト解析部３８０、パターンマッチング処理部３８５、データ生成関連部３９０、応答データ管理部３９５の機能を実現するプログラムである。
【００３９】
また、質問応答装置１２０のＨＤＤ２５０には、文書データベース１３１、パターンデータベース１３２、マッチ済みデータ１３３、類義語・言い換え辞書１３４が格納されている。
【００４０】
〔実施形態１〕
以下、実施形態１に係る質問応答システムを、図５ないし図１０を用いて説明する。
【００４１】
本実施形態の質問応答データ生成装置では、一問一答型質問応答の応答データを生成する。一問一答型質問応答とは、質問者１１０の質問を、個々で捉え、前後の関連についてはシステム側で解析をしない応答である。
【００４２】
本実施形態では、質問者１１０が税務処理の年末調整に関する質問を行い、質問応答データ生成装置１３０は、年末調整マニュアルに基づいて応答データを生成する例について説明する。
【００４３】
先ず、図５ないし図９を用いて本実施形態の質問応答データ生成装置で用いられるデータ構造について説明する。
【００４４】
先ず、図５を用いて質問応答テーブル４００について説明する。
質問応答テーブル４００は、質問応答装置１２０の一問一答型プログラム２２２が質問応答に利用するテーブルであり、応答データベース１２１内に一つまたは複数格納される。
【００４５】
質問応答テーブル４００は、図５に示されるように、質問文４１０と応答文４２０の対応関係を列挙し、行に該当するエントリごとに格納したテーブルである。例えば、図５に示される質問応答テーブル４００では、質問文・応答文の対がエントリ４３１、４３２、４３３の３件登録されている。
【００４６】
一問一答型プログラム２２２は、質問文１１２を受け取ると、質問応答テーブル４００のエントリ４３１、４３２、４３３のうち、エントリ中の質問文４１０と質問文１１２が近いものを探す。ここで、「近い」とは、例えば、単語の数が一致する、また、単語の意味的距離が近いなどにより、計測される。もし、近い質問を有するエントリが存在した場合、そのエントリの応答文４２０を一問一答型プログラム２２２の応答として出力する。また、その際参照したエントリの情報は、応答履歴データベース１２２に格納される。
【００４７】
次に、図６を用いて文書の構成例について説明する。
文書１４０は、メタデータ部５１０と文書本体５２０で構成される。メタデータ部５１０は、文書内部の記述ではなく文書そのものに関する情報を、項目名５１１とその値５１２の対応関係を列挙した形式で保持する。図６の例では、三つのメタデータエントリ５１３、５１４、５１５があり、メタデータエントリ５１３は、文書の名称、メタデータエントリ５１４は、ファイル名、メタデータエントリ５１５は、最終更新日付が格納されている。
【００４８】
文書本体５２０は、文書１４０を構成する実際のテキスト・図・表などのデータが格納されている。文書本体５２０は、一般的に構造を有する。この構造は、テキストの位置・内容・大きさ・装飾や、それらが罫線によって区切られることで定義される。図の例では、文書本体５２０は、タイトル５３０をタイトルとする一つの章を表しており、その章には節タイトル５４０、５５０で示される二つの節があると考えることができる。タイトル５４０に対応する節では、節本文５４１の後に、箇条書き５４２が並んでいる。タイトル５５０に対応する節では、節本文５５１の後に、表キャプション５５２および表５５３が並んでいる。
【００４９】
すなわち、この文書本体５２０は章の後に節が来て、節の後に節本文が来るという階層構造を示している。
【００５０】
次に、図７を用いて本実施形態の文書の構造情報について説明する。
本実施形態の構造情報６００は、文章１４０の構造を解析した情報であり、図７に示される例では、木構造の形で表現されている。構造情報６００は、根ノード６１０を根（ルート）とするノード群が成す木構造である。この構造情報６００において、文書中で包含関係にある関係は、親子関係として表現される。例えば、根ノード６１０は、メタデータ５１０に対応するノード６２０と文書本体に対応するノード６３０を子ノードとする。メタデータに対応するノード６２０は、メタデータエントリ５１３、５１４、５１５に対応するノード６２１、６２２、６２３を子ノードとして有する。本文に対応するノード６３０は、章に対応するノード６４０を子ノードとして有し、章に対応するノード６４０は、節に対応するノード６４１、６５０を子ノードとして有する。また、節に対応するノード６４１、６５０は、節の内容に関連して、節本文に対応するノード６４２、６５１や、箇条書きに対応するノード６４３、表に対応するノード６６０などを子ノードとして有する。箇条書きに対応するノード６４３は、箇条書きを構成する各項目に対応するノード６４４、６４５、６４６を有する。
【００５１】
表に対応するノード６６０は表を構成する各行に対応するノード６６１、６６４、６６７を有し、行に対応するノード６６１、６６４、６６７は、それぞれその行を構成する各セルに対応するノード６６２、６６３、６６４、６６５、６６８、６６９を有する。表は構造情報上で異なる表現方法を取ってもよい。例えば、表を構成する列に対応するノードを表に対応するノードの子ノードとし、列に対応するノードが列を構成する各セルに対応するノードを子ノードに有するようにしてもよい。また、列、行の順を問わず、表を構成する全セルを表に対応するノードとして表の子ノードとしてもよい。
【００５２】
各ノードは、ノードに対応する文書の部分に対し、階層名（章や節、表など）に留まらずその部分に含まれるテキストや、構造に基づく情報（文書におけるページ数や章、節、表の番号、テキストの位置やフォント情報）を同様に保持することができる。
【００５３】
本実施形態では、構造情報６００に示す木構造において、事前に定義されたパターンに合致する記述、すなわち木構造の部分木を抽出し、応答文を生成する。
【００５４】
次に、図８を用いて応答データ生成パターンについて説明する。
応答データ生成パターン７００は、応答データを生成するためにあてまめるパターンである。応答データ生成パターン７００は、図８に示されるように、三つのパターン７１０、７１１、７１２からなる。パターン７１０、７１１、７１２は、構造情報の木構造の一部に相当する抽出パターン７２０と、そのパターンに合致した記述を抽出した場合に生成される質問、応答対の元となる応答データテンプレート７３０からなる。
【００５５】
抽出パターン記述７２１は、抽出パターン７２０の情報を記述するものである。本パターンでは、木構造にある、親子関係にあるノードの階層名とテキストを対にして記載することで抽出したい構造を示している。この例では、階層名７２２「節」と階層名７２４「節本文」が親子関係にある場合を示しているまた、各階層名に対応してスロット７２３「＜語句＞」とスロット７２５「＜意味＞」が記載されている。これは、抽出した構造において、対応するノードのテキストがこれらのスロットに代入されることを示している。スロットとは、応答データ生成のときに、その部分に具体的な値が代入されることを示すパターン表現である。
【００５６】
抽出パターン記述７４１には、また、別の抽出パターン７２０が記述されている。抽出パターン記述７４１は、複数の階層名７４２、７４３、７４５を有する点は、抽出パターン記述７２１と同一である。しかし、スロット７４６、７４７においてその部分に対応するテキストの種類（例えば、数字）を記述していたり、スロット以外のテキストを含む点が異なる。この場合、構造情報６００において、本抽出パターン７２０で抽出される部分木の階層名７４５に対応付けられるノードは、ノード中のテキストとスロットの対応関係が取れなければならない。このようなテキストとスロットの対応関係を取る手法には、ワイルドカードや正規表現などの手法が利用できる。
【００５７】
また、抽出パターン７２０の記述方法として、木構造同士で柔軟に対応関係を取る技術を取り入れることもできる。例えば、論文Dongwon Lee et al., Taxonomy of XML schema languages using formal language theory. ACM Trans. Internet Technol. 5, 4 (November 2005), 660-704.ではＸＭＬ（Extensible Markup Language）で記述された木構造の文書に対し、パターンに合致する部分木を柔軟に抽出する方法を提案している。
【００５８】
応答データテンプレート７３０は、質問文と応答文の対として記述される。これらの質問文・応答文は、文中に抽出パターン７２０中に現れるスロットを含めることができる。この場合、抽出された部分木において、抽出パターン７２０中のスロットに対応付けられるテキストがあった場合には、そのテキストが応答文中のスロットに代入されて応答文が生成される。
【００５９】
また、応答データテンプレート７３０は、同一の抽出パターン７２０と対応付けられる複数の部分木に関して集計した内容を含むことができる。例えば、応答文７３６において、スロット「＜項目:一覧＞」７６７は、抽出パターン例７６１中のスロット「＜項目＞」７６６に対応付けられた複数のテキストを列挙したテキストが代入される。
【００６０】
図８には記載されていないが、応答データテンプレート７３０において、スロットの出力方法を加工する記述を加えてもよい。例えば、日本語であれば適切な活用形への変更や、英語であれば、動詞の時制を特定の時制に変更するなどの加工が考えられる。
【００６１】
なお、図７、図８に示される例では、文書構造を木構造で表現しているが、部分構造を表現可能であれば、別の表現形式であってもよい。例えば、文書における表は、木構造ではなく、多次元配列などの形で表現してもよい。
【００６２】
次に、図９を用いて生成される応答データについて説明する。
応答データ９００は、文書１４０およびそれに対応する文書構造６００から、応答データ生成パターン７００を用いて生成される
応答データのエントリ９３１、９３２は、節に対応するノード６４１、６５０およびその子ノードがパターン７１０と対応づいた結果生成された例である。エントリ９３２における応答文は表を含んでいる。これは、ノード６５１に含まれる記述「表２」の参照先がノード６６０であり、文書中に表５５３が含まれているから、後に説明する置換処理により、表５５３が応答文に含まれたものである。
【００６３】
応答データのエントリ９３３、９３４は、行に対応するノード６６４、６６７およびその子ノードが、パターン７４１と対応づいた結果生成された例である。
【００６４】
応答データのエントリ９３５は、行に対応するノード６６４、６６７およびその子ノードが、パターン７６１と対応づいた結果生成された例である。
【００６５】
次に、図１０を用いて質問応答データ生成装置が行う本実施形態の応答データ生成処理について説明する。
【００６６】
応答データ生成処理では、質問応答データ生成装置１３０中の応答データ生成プログラム３６０が文書データベース１３１に格納された文書群から質問応答装置１２０が用いる応答データベース１２１に格納する質問応答テーブル形式の応答データ９００を生成する。
【００６７】
ループ開始のＳ８１０からループ終了のＳ８４０の間に示す処理は、入力される文書１４０毎に繰り返し行う。また、もし既に文書群のうち、応答データ生成処理が実行済みの文書があれば、未実行の文書のみを対象としてもよい。
【００６８】
先ず、質問応答データ生成装置１３０の構造解析部３７０の下位機能部であるレイアウト分析部３７１、章階層分析部３７２、表形式分析部３７３、図形式分析部３７４が文書１４０を分析して、図７に示した文書構造６００のような木構造の表現に変換する（Ｓ８１５）。文書１４０を木構造の表現に変換するには、既存の技術が利用できる。例えば、レイアウト分析部３７１に相当する段落に関する情報を保持しない形式の文書ファイルを段落ごとに分ける手法として、互いに近傍に位置する文を同一段落と見なす手法がある。
【００６９】
次に、テキスト解析部３８０は、変換した文書１４０の木構造表現に対し、各ノードの保持するテキスト情報を解析する（Ｓ８２０）。このＳ８２０の処理は、テキスト解析部３８０に含まれる形態素解析部３８１、係り受け解析部３８２、照応解析部３８３などがそれぞれの機能に応じた処理を行う。
【００７０】
次に、パターンマッチング処理部３８５は、パターンデータベース１３２に格納された各パターンについて、文書１４０の木構造表現から抽出パターン７２０に合致する部分木を抽出する（Ｓ８２５）。ノード間の関係が一致するようなノード群の抽出には、前述のDongwon Lee論文に記載された手法などを用いることができる。さらに、抽出した部分木の各ノードにおけるテキストと、抽出パターン７２０中のテキストやスロットを照合し、対応が取れるか否かを判定する。対応が取れない場合には、その部分木は抽出できないと見なす。この照合処理には、正規表現などが利用できる。
【００７１】
次に、Ｓ８２５で抽出した部分木について、抽出パターン７２０と部分木を対にしてマッチ済みデータ１３３に格納する（Ｓ８３５）。
【００７２】
次に、全文書の処理が完了していれば続くＳ８５０に進み、未完の文書があれば、Ｓ８１０に戻る（Ｓ８４０）。
【００７３】
Ｓ８５０からＳ８８５に示す処理は、マッチ済みデータ１３３において特定の抽出パターン７２０と対応関係が取れた部分木が複数ある場合、抽出パターン７２０毎にデータ生成関連部３９０が実施する。
【００７４】
先ず、実施対象の抽出パターン７２０に対応づく複数の部分木について、Ｓ８７０で選択した応答データテンプレート７３０中のスロットを埋め、応答データを出力する（Ｓ８７５）。その際、一つの部分木から応答データテンプレート７３０に従い、一つの応答データを出力するだけでなく、複数のデータを出力してもよい。例えば、類義語・言い換え辞書１３４を参照して、応答データの単語を類義語に置き換えたり、語順を変更するなどした応答データを合わせて出力することができる。
【００７５】
また、Ｓ８７５では、応答データテンプレート７３０中にＳ８１５で解析した文書の構造６００とＳ８３５で格納したマッチ済みデータ１３３から生成可能な他の情報を含んでもよい。例えば、文書における章のタイトルの一覧を列挙したり、表における項目数を応答文に含める際に利用できる。図８に示した応答文７３６におけるスロット「＜項目:一覧＞」７６７に、抽出パターン７６１中のスロット「＜項目＞」７６６に対応付けられた複数のテキストを列挙したテキストを代入する場合は、その一例である。
【００７６】
次に、必要ならば、Ｓ８７５で出力された応答文の書き換えを行う（Ｓ８８０）。応答文中に「上記の」「表２の」「ページ１８０」など文書中の他の位置を示す記述があった場合、対応する文書１４０の木構造を参照して、そのような記述の指し示す文章や図表を取得し、その記述を置き換えたり、応答文の末尾に追加するなどして、応答文中に対応する文書１４０中の記述が現れるようにする。また、「上記の」のようにその単語の現れる位置から相対的な位置を示す記述の場合には、絶対的な位置を示す記述、例えば、ページ番号や段落番号に置き換えてもよい。
【００７７】
そして、すべての抽出パターン７２０に対する処理が完了済みであれば、応答データ生成フロー８００は終了し、そうでなければ、未完の抽出パターン７２０に対し、Ｓ８５０以降の処理を繰り返す（Ｓ８８５）。
【００７８】
最後に、重複データの削除、不適切データの削除を行う（Ｓ８９０）。
【００７９】
ここまでのステップを実施した結果、同じ質問文・応答文の対応関係を有する応答データが複数できる場合がある。その場合重複するデータは、一つだけ残し他を削除することにより、応答データの量を削減することができる。Ｓ８９０は補足的な処理であり、実施しなくても応答質問システムの応答内容には変化しないが、質問応答データ生成装置の計算機リソース（ＣＰＵの利用時間やメモリ・記憶媒体の使用容量）の削減に影響する。
【００８０】
また、データ生成関連部３９０の生成可否判定部３９２は、文法的に正しくない、あるいは、質問応答システムに用いることが不適切であるか否かをチェックし、そのような応答文を含む応答データを削除する。
【００８１】
次に、応答データ管理部の処理について説明する。
図１０に示した応答データ生成処理により生成したデータは、以下のいずれかの観点で正しくない場合がある。一つは、質問文と応答文の対応関係が合っていないケースであり、今一つは、質問文自体が文法や意味の観点で不自然な場合である。これらが生じる原因として、例えば、複雑な表において、先頭行と先頭列どちらが項目タイトルを意味するかは、構造情報だけから特定できないなどがある。
【００８２】
そのため、応答データ管理部３９５は、一度生成して質問応答プログラム２２１により使用され始めた応答データベース１２１について、各生成結果の利用状況に応じて削除などを行う。例えば、応答履歴データベース１２２を参照し、一定時間以上利用されていない質問・応答対は、前述の二つの観点のうち、後者の質問文自体が不自然な結果については、質問者１１０の質問文１１２と類似するとみなせる可能性はないと考えることができる。この場合、利用価値がないので、応答データ管理部３９５はそのような質問・応答対を削除する。
【００８３】
また、応答データ管理部３９５は、応答データベース１２１について、各生成結果の利用状況に応じて、各応答データを複数にグループに分けてもよい。例えば、質問・応答対を利用頻度の高・中・低でグループ分けし、各グループ毎の統計情報などを取得して、以後の応答データ作成の際にその統計情報を教師データとして、生成データの利用頻度を推定するのに利用できる。
【００８４】
以上、本実施形態によると、パターンデータベース１３２内にパターンを作成しておくことにより、そのパターンと文書１４０から応答データベース１２１に格納する応答データを生成することができる。また、重複した余分な応答データを削除したり、応答文として解析した文書構造や、抽出パターンに対応する複数の部分木に基づく記述も含めることにより、応答データテンプレート７３０中のスロットに単語を代入するだけではない、質の高い応答文を生成することができる。
【００８５】
〔実施形態２〕
以下、本発明の実施形態２を、図１１ないし図１７を用いて説明する。
本実施形態の質問応答データ生成装置では、シナリオ分岐型システムの応答データを生成する。シナリオ分岐型システムの応答データは、質問者１１０の質問について、シナリオを想定し、質問がシナリオに従って、分岐するものとして作成される応答データである。シナリオ分岐型システムの応答データは、シナリオ分岐型応答プログラム２２３による質問応答を行う場合に用いられるものである。
【００８６】
本実施形態では、実施形態１と異なる所を中心に説明する。
【００８７】
実施形態１に示す一問一答型の質問応答システムでは、質問者１１０が質問文１１２を質問応答装置１２０に送ると、その回答が応答文１１３として質問者１１０に返り、質問応答が一つの区切りとして完了していた。
【００８８】
本実施形態が対象とするシナリオ分岐型の質問応答システムでは、質問者１１０と質問応答装置１２０が質問文１１２、応答文１１３のやりとりを複数回繰り返し、その中で最終的に質問者１１０の質問内容を絞り混んで質問応答装置１２０が回答を返すものである。
【００８９】
先ず、図１１および図１２を用いて質問のシナリオについて説明する。
シナリオ分岐図１０００は、質問のシナリオをツリー構造の図として表現したものであり、図１１に示されるように、例えば、状態１０１０、１０２０、１０３０、１０３１、１０４０、１０４１、１０４２、１０４３、１０５０、１０５１、１０５２、１０５３、１０５４、１０５５と、それらの間をつなぐ状態遷移関係で定義される。
【００９０】
本実施形態では、質問者１１０が銀行の顧客であり、質問は、銀行口座に関する質問をすることを想定する。特に、ここでは、例えば、普通預金口座の口座開設における営業時間を問い合わせる場合の状態遷移を例に採って説明する。
【００９１】
初期状態１０１０から状態遷移が始まり、先ず続く状態１０２０に遷移する。この状態１０２０には、応答文「ご要望の作業は？」が設定されているので、シナリオ分岐型応答プログラム２２２は応答文１１３として「ご要望の作業は？」を質問者１１０に返す。
【００９２】
状態１０２０からは、状態１０３０、１０３１と二つの遷移先がある。両遷移先の状態１０３０、１０３１は共に質問文が設定されている。この時、シナリオ分岐型応答プログラム２２２は、質問者１１０に次の入力を促す。そして、その質問文１１２と、遷移先の状態１０３０、１０３１に設定された質問文を比較し、近い方の状態に遷移する。文同士の近さは、一致する単語数や編集距離、単語や文章のベクトル表現における距離などで評価できる。なお、質問者１１０の質問文１１２と状態１０３０、１０３１に設定された質問文がいずれも遠い場合には、シナリオ分岐型応答プログラム２２２は、再度、質問者１１０に入力を促してもよい。
【００９３】
例えば、質問文１１２が「口座開設について」の場合、状態１０３０、１０３１では、前者に設定される質問文の方が同じ単語を含む数が多いため、状態１０３０に遷移する。
【００９４】
同様に、状態１０３０における応答文「どの口座ですか」に対し質問者１１０が「普通預金口座」と入力すると、次は状態１０４０に遷移し、状態１０４０における応答文「知りたい内容は何ですか？」に対し、質問者１１０が「営業している時間」と入力すると、次は状態１０５１に遷移する。状態１０５１はそれ以上遷移先が設定されていないので、状態１０５１に設定された応答文「平日の朝１０時から…」を応答すると、この質問応答のやり取りは完了する。この状態遷移の過程において、参照した各エントリの情報は、応答履歴データベース１２２に格納される。
【００９５】
シナリオ記述テーブル１１００は、図１２に示されるように、シナリオ分岐図１０００で表されたシナリオを、テーブル形式で表現したものであり、応答データベース１２１に格納され、シナリオ分岐型応答プログラム２２３が参照する。
【００９６】
シナリオ記述テーブル１１００のエントリ１１２０〜１１３２は、シナリオ分岐図１０００における各状態と、１対１で対応付けられる。よって、シナリオ記述テーブル１１００が生成できればシナリオ分岐図１０００に示すようなシナリオの質問応答が可能となる。
【００９７】
シナリオ記述テーブル１１００の各エントリは、状態ＩＤ１１１０、質問文１１１１、応答文１１１２、遷移先状態ＩＤ１１１３を有する。各エントリは、状態ＩＤ１１００に示す状態において、質問者１１０の質問文１１２が質問文１１１１と近い場合、遷移先状態ＩＤ１１１３の状態となり応答文１１１２を応答する。なお、ここで、各エントリ中の状態ＩＤは遷移元の状態をさしていることに留意する。
【００９８】
次に、図１３を用いて本実施形態の文書の構造情報について説明する。
本実施形態の構造情報１９００は、実施形態１同様に、文章１４０の構造を解析した情報であり、図１３に示されるように、木構造の形で表現されている。
【００９９】
図１３に示される構造では、ルートノードの下にノード１９１０（本文）を有し、その下の子ノードとしては、章を表すノード１９２０、１９４０、１９５０を有する。ノード１９２０の下の子ノードとしては、節を表すノード１９２１、１９１９、１９３０を有する。ノード１９２１の子ノードとしては、項を表すノード１９２２、１９２４を有する。ノード１９２２の子ノードとしては、項本文を表すノード１９２３を有する。
【０１００】
次に、図１４を用いて本実施形態の応答データ生成パターンについて説明する。
本実施形態では、構造情報１９００に示す木構造において、事前に定義されたパターンに合致する記述、すなわち木構造の部分木を抽出し、応答データを生成する点は、実施形態１と同じである。しかしながら、本実施形態では、図１１、図１２で表されるシナリオに基づいて、質問と応答が行われることを想定しているため、応答データ生成パターンの形式が異なる。
【０１０１】
応答データ生成パターン１２００は、図１４に示されるように、抽出パターン７２０と応答データテンプレート１２３０のエントリを有する。抽出パターン７２０は、実施形態１の図８における応答データ生成パターン７００と同様に、図１３の構造情報１９００中の木構造の一部に合致する内容を記述する。抽出パターン記述１２２１は、実際に構造情報１９００の一部に合致する例を記述する。応答データ生成パターン１２００が有する応答データテンプレート１２３０は、シナリオ記述テーブル１１００に合わせたデータを保持する。本実施形態の応答データテンプレート１２３０では、シナリオ記述テーブルテンプレート１２３１が記述されている。シナリオ記述テーブルテンプレート１２３１は、図１２に示したシナリオ記述テーブル１１００と同様、状態ＩＤ１１１０、質問文１１１１、応答文１１１２、遷移先状態ＩＤ１１１３を有する。ただし、質問文１１１１や応答文１１１２の内容には、抽出パターン例１２２１で用いたスロットを含めることができる。また、状態ＩＤ１１１０、遷移先状態ＩＤ１１１３には具体的な状態のＩＤを含めず、仮の値＜ａ＞＜ｂ＞＜ｃ＞が入っている。これは同一のパターンに対応する部分木が複数存在する場合、それぞれの部分木において＜ａ＞＜ｂ＞＜ｃ＞に異なるＩＤを生成して割り当てることにより、異なる部分木間でＩＤが重複することを防ぐためである。
【０１０２】
また、応答データテンプレート１２３０は、部分木に対応して生成される複数のエントリ１２４０、１２４１、１２４２、１２４３を有する。同一部分木内では、異なるエントリ間で同一のＩＤの仮の値＜ａ＞＜ｂ＞＜ｃ＞に対しては、同一のＩＤが生成され、割り当てられる。
【０１０３】
次に、図１５を用いて応答文マッピングテーブルについて説明する。
応答文マッピングテーブル１４００は、応答データ生成パターン１２００に基づいて、応答データを生成するときに、スロットの値の対応関係を示すテーブルであり、図１５に示される例では、文書中においてパターン１２００に対応付けられる各木構造に対してスロットに対応する項目１４１０、１４１１、１４１２に対してそれぞれに対応する値１４２０、１４２１、１４２２の組み合わせに対し、値１４３０は、対応する応答文の有無を示している。スロットの値１４２０、１４２１、１４２２は必ずしも埋まっている場合に限らず、空白やアスタリスク（任意の値を示す値）でもよい。これは正規表現などを用いて、当該スロットに対応するテキストやノードが存在しない部分木との対応付けがなされた場合に発生する。
【０１０４】
次に、図１６を用いて本実施形態の応答データの一例を示す図である。
本実施形態では、図１１、図１２に基づくシナリオと、図１４の応答データ生成パターン１２００に基づき、応答データ２０００として、図１６に示されるようなシナリオ記述テーブルの形式のデータが生成される。
【０１０５】
応答データ２０００として出力されるシナリオ記述テーブルの質問文、応答文、状態ＩＤの意義は、図１２により説明したものと同様である。
【０１０６】
次に、図１７ないし図１９を用いて質問応答データ生成装置が行う本実施形態の応答データ生成処理について説明する。
本実施形態は、質問応答データ生成装置１３０中の応答データ生成プログラム３６０が文書データベース１３１に格納された文書群から質問応答装置１２０が用いる応答データベース１２１に格納するシナリオ記述テーブル１１００を生成する。
【０１０７】
本実施形態の応答データ生成テーブルの処理は、実施形態１の図１０のフローチャートで示したものとほぼ同様であるが、図１７に示されるように、Ｓ８５０とＳ８７５の間に、Ｓ８６５とＳ８７０の処理が挿入されている所が異なっている。以下、この異なっている所のみを説明する。
【０１０８】
Ｓ８６５では、必要ならば、Ｓ８１５で解析した文書の構造６００と、Ｓ８３５で格納したマッチ済みデータ１３３を用いて、出力データ変更部３９３が抽出パターン７２０に対応する応答データテンプレート７３０の内容を書き換えて、異なる応答データテンプレート７３０を作成する。
【０１０９】
次に、Ｓ８７０では、Ｓ８６５で応答データテンプレート７３０の書き換えにより複数の応答データテンプレート７３０が作成された場合、実施対象の抽出パターン７２０に対応づく複数の部分木について、部分木の数などに応じて各部分木に対応づく、応答データテンプレート７３０を選択する。
【０１１０】
次に、図１８および図１９を用いて応答データテンプレートの複製・変更の処理（図１７のＳ８６５）の詳細について説明する。
先ず、図１５に示した応答文マッピングテーブル１４００を参照し、抽出パターン７２０に含まれるスロット毎に、そのスロットの値を固定させた場合に、他のスロットの値の範囲が狭くなるか否かを判定し（Ｓ１３１０）、複数のスロットについて、そのスロットの値を固定させた場合に、より範囲が狭くなりやすい順にスロットの確定順を定める（Ｓ１３１５）。
【０１１１】
以下、図１５の示した応答文マッピングテーブルの具体例より、応答文マッピングテーブルのスロットの値の範囲が狭くなるか否かの判定について説明する。
【０１１２】
図１５（ａ）に示した応答文マッピングテーブル１４００が並べ替え前のものであり、図１５（ｂ）に示した応答文マッピングテーブル１４５０がスロットの順を並べ替えたものである。
【０１１３】
応答文マッピングテーブル１４５０は、応答文マッピングテーブル１４００に対し、項目１４１０、１４１１、１４１２の並びを変えたものである。応答文マッピングテーブル１４００では、先に項目１４１０（＜作業＞）により値が分類され、その後、項目１４１１（＜事項＞）により分類されているが、応答文マッピングテーブル１４５０では、先に項目１４１１（＜事項＞）により分類を行っている。その結果、応答文マッピングテーブル１４５０では、値１４３０における範囲１４６０、１４６１、１４６２の例では、項目１４１１（＜事項＞）の値が確定すると、その時点で項目１４１２（＜口座名＞）の取りえる値が一通りに定まることがわかる（値１４３０に１以上の値を有する口座名が一意に定まる）。例えば、＜事項＞＝“営業時間”の値が確定すると、＜作業＞の値如何にかかわらず、＜口座名＞＝“普通預金”が確定する。一方、元の応答文マッピングテーブル１４００においては、項目１４１０（＜作業＞）を定めても、項目１４１２（＜口座名＞）の値は、候補が絞りきれない（例えば、＜作業＞＝“開設”が定まった時点では、＜口座名＞の取りうる値は、＜事項＞の値に従って、“普通預金”、“当座預金”、“普通預金”、“定期預金”の三通りの可能性がある）。よって、項目１４１１は項目１４１０に比べ、それを確定させることによって、他の項目の取りえる範囲が狭くなりやすいと言える。
【０１１４】
次に、Ｓ１３１５でスロットの確定順を決定後、Ｓ１３２０とＳ１３２５で対応してシナリオ記述テーブルテンプレート１２３１の変更、複製を行う。
【０１１５】
以下、Ｓ１３２０とＳ１３２５の手順を、図１９を用いて説明する。
図１９は、図１４に示した応答データ生成パターン１２００中のシナリオ記述テーブルテンプレート１２３１を変更する例について説明する図であり、図１９（ａ）に示されるのが、変更前シナリオ記述テーブルテンプレート１５００、図１９（ｂ）に示されるのが、エントリ並べ替えシナリオ記述テーブルテンプレート１５２０、図１９（ｃ）に示されるのが、エントリ削減後シナリオ記述テーブルテンプレート１５４０である。
【０１１６】
Ｓ１３２０では、シナリオ記述テーブルテンプレート１２３１中の各エントリの記述内容を比較し、どのエントリの応答文１１１２がどのスロットの入力を促し、どのエントリの質問文１１１１がそれを受けて状態遷移を行うものか推定する。
【０１１７】
変更前シナリオ記述テーブルテンプレート１５００においては、エントリ１５１０は、遷移先状態ＩＤ１１１３に「＜ａ＞」を有し、エントリ１５１１は状態ＩＤに同じ「＜ａ＞」を有する。また、エントリ１５１１は質問文にスロット＜作業＞を有する。このことから、エントリ１５１０の応答文１１１２は、エントリ１５１１の質問文１１１１にあるスロット＜作業＞の入力を促すものであると推定する。同様に、エントリ１５１１の応答文１１１２は、エントリ１５１２の質問文１１１１にあるスロット＜口座名＞、エントリ１５１２の応答文１１１２は、エントリ１５１３の質問文１１１１にあるスロット＜事項＞入力を促すものであると推定する。
【０１１８】
そして、Ｓ１３２５では、Ｓ１３１５で定めたスロットの確定順と、Ｓ１３２０で推定したエントリとスロットの関係に基づいて、シナリオ記述テーブルテンプレート１２３１の内容を入れ替える。エントリ並べ替えシナリオ記述テーブルテンプレート１５２０は、変更前シナリオ記述テーブルテンプレート１５００に対し、図１５（ｂ）の例で示したＳ１３１５で定めたスロットの確定順が「＜事項＞→＜口座名＞→＜作業＞」であった場合の入れ替え後のテンプレートを示している。
【０１１９】
変更前シナリオ記述テーブルテンプレート１５００から入れ替えを行いエントリ並べ替えシナリオ記述テーブルテンプレート１５２０を作成する手順は、以下の通りである。
【０１２０】
Ｓ１３２０において、スロット毎に、その内容を問う応答文１１１２を有するエントリと、そのスロットの内容を受ける質問文１１１１を有するエントリが推定できている。よって、状態ＩＤ１１１０として初期状態対応するエントリ１５３０の応答文として、最初に確定させるスロット＜事項＞を問う応答文１１１２を設定する。エントリ１５３０の遷移先状態ＩＤ１１１３「＜ａ＞」に対して、続くエントリ１５３１では状態ＩＤ１１１１として同じ「＜ａ＞」を有するようにする。その質問文１１１１は、スロット＜事項＞を受ける質問文であるエントリ１５１３の質問文１１１１を設定する。このように、スロットに対応する応答文１１１２をあるエントリに設定し、そのエントリに設定された遷移先状態ＩＤ１１１３に対応する状態ＩＤ１１１０を有する続くエントリ、そのスロットに対応する質問文１１１１を設定するということを確定順に繰り返し、全スロットが確定するエントリ１５３３の応答文１１１２には、元の変更前シナリオ記述テーブルテンプレート１５００における最後の（遷移先状態ＩＤ１１１３として終了状態を有する）エントリ１５１３の応答文１１１２を設定する。
【０１２１】
次に、スロットの確定順によっては、分岐中一意に定まるケースがあるか否かを判定する（Ｓ１３３０）。例えば、図１５（ｂ）の応答文マッピングテーブル１４５０では、値１４３０における範囲１４６０、１４６１、１４６２の例では、項目１４１１の値が確定すると、その時点で項目１４１２の取りえる値が一通りに定まることがある。よって、図１５（ｂ）の応答文マッピングテーブル１４５０ではそのようなケースがあると判定される。そのようなケースがある場合、Ｓ１３３５へ進む。
【０１２２】
そして、スロットの確定順とその値によって、本来後で確定される以後のスロットの値が参考して確定されるケースにおいて、そのスロットの値を問う応答・入力のためのエントリを削除する（Ｓ１３３５）。
【０１２３】
図１５（ｂ）の応答文マッピングテーブル１４５０では、値１４３０における範囲１４６０、１４６１、１４６２の例では、スロット＜事項＞の値が確定した時点で、その後の状態遷移先としてスロット＜口座名＞はそれぞれ一通りに決まる。図１９（ｃ）に示されるエントリ削減後シナリオ記述テーブルテンプレート１５４０は、それに従って、図１９（ｂ）に示されるエントリ並べ替えシナリオ記述テーブルテンプレート１５２０から、スロット＜口座名＞を問うエントリを削除した例である。Ｓ１３２０、１３２５の処理により、エントリ並べ替えシナリオ記述テーブルテンプレート１５２０において、エントリ１５３１の応答文１１１２と、エントリ１５３２の質問文１１１１はスロット＜口座名＞の値を確定させるためのものであることが分かっている。そこで本ステップでは、エントリ並べ替えシナリオ記述テーブルテンプレート１５２０に対し、初期状態から終了状態までに至る一連の状態遷移のうち、スロット＜口座名＞を特定させるための項目、すなわち、エントリ１５３１の応答文１１１２とエントリ１５３２の質問文１１１１を切り詰め、エントリ並べ替えシナリオ記述テーブルテンプレート１５２０からエントリ削減後シナリオ記述テーブルテンプレート１５４０を作成する。
【０１２４】
上記に示したような一連の手順により、Ｓ８６５の処理では、文書の構造情報と、抽出パターン７２０に対応する複数の部分木の情報を用いて、応答データテンプレートを更新・変更することができる。
【０１２５】
そして、図８のステップ８７０では、スロットの値に応じて、図１８に示した応答データテンプレートの複製・変更の処理で生成した複数の応答データテンプレート１２３０の内、最適なもの一つを選択することができる。例えば、図１５（ｂ）に示した応答文マッピングテーブル１４５０に従うと、スロット＜事項＞が「営業時間」となる部分木に対しては、図１９（ｃ）のエントリ削減後シナリオ記述テーブルテンプレート１５４０を選択し、スロット＜事項＞が「必要書類」である部分木に対しては、図１９（ｂ）のエントリ並べ替えシナリオ記述テーブルテンプレート１５２０を選択することにより、図１６に示したような不要な応答・入力エントリを省いたシナリオに基づいた応答データ２０００を生成することができる。
【０１２６】
また、応答データ管理部３９５は、質問応答プログラム２２１の運用開始後、応答履歴データベース１２２を参照して、エントリ並べ替えシナリオ記述テーブルテンプレート１５２０を更新することもできる。図１５（ａ）の応答文マッピングテーブル１４００の値１４３０は、図１８の応答データテンプレートの複製・変更の処理実行時の段階では、スロットの値に対し、応答文の有無の真偽値しか持たない。しかしながら、運用開始後は、応答履歴データベース１２２から各応答文の利用頻度がわかるので、値１４３０として真偽値ではなく前述の利用頻度を用いることによって、スロットの確定順の並び替えを行うことができる。
【０１２７】
次に、図１０のＳ８９０におけるシナリオ分岐型の質問応答システム固有の応答データ削減の例について説明する。
【０１２８】
例えば、図８のステップ８９０において、いずれも、実質同じ遷移を行うような状態を一つにまとめることによって、シナリオ分岐図１０００における状態数、および、対応するシナリオ記述テーブル１１００のエントリ数が減少し、応答データを削減することができる。
【０１２９】
状態のまとめあげの例を二つ上げる。一つは部分木のまとめあげである。シナリオ分岐図１０００において、一部の部分木において質問文・応答文の対応関係が全く同じ構成になる場合がある。例えば、図１１において状態１０５１と状態１０５４は同じ内容であり、状態１０５３と状態１０５５は同じ内容である。このように、個々の状態に限らず、そこから遷移する遷移先の各状態も含め完全に一致する部分木が複数存在するケースがある。このようなケースでは、シナリオ記述テーブル１１００においてもエントリ１１２５と１１３０が一致し、エントリ１１２９と１１３２が一致する形で現れる。このような場合、エントリ１１２５とエントリ１１３０をまとめて単一のエントリにすることが考えられる（状態ＩＤ１１１０は、単一の値だけでなく、複数の値を格納可能とする）。また、仮にそのようにまとめたエントリが遷移先を有する場合、遷移先状態ＩＤも一つに設定することで、複数の部分木に対応するエントリを保持する必要がなくなる。
【０１３０】
今一つは、分岐前の重複状態のまとめあげである。図１４に示した抽出パターン記述１２２１では、章・節・項の組一つに対しシナリオ記述テーブルテンプレート１２３１（または、それを変更したテーブル）一つを出力する。しかしながら、一般に、文書において一つの章に対し複数の節があり、一つの節に対し複数の項がある場合がある。よって、章や節に含まれるスロットの値の問い合わせに関するエントリ１２４０、１２４１、１２４２について、全項の数だけ応答データが出力される。章や節の数は項より少ないため、これが不必要に状態を増やすことになるうえ、同一のスロットの値に対応する質問文を保持するエントリが複数できるため、質問応答質システムにおいて遷移先状態が特定できず、質問応答システムとして正常な動作が期待できない。そこで、その状態に至る直前の状態が同じで、かつ受け付ける質問文が同じエントリ群は、一つにまとめる。例えば、同じ章に対応するエントリ群や同じ節に対応するエントリ群が項の数だけできても、それぞれ章・節の数だけ残しあとは削除する。
【０１３１】
これらの手順は、シナリオ分岐図１０００を有向グラフと見なしたときの頂点の縮約に相当する。また、ここに挙げた以外にも、これらグラフの縮約処理を適用することによって、シナリオ分岐図１０００における状態数、および、対応するシナリオ記述テーブル１１００のエントリ数を減少させることができ、それによって応答データを削減することができる。
【０１３２】
本実施形態によると、パターンデータベース内に質問のシナリオに沿ったパターンを作成しておくことによって、質問のシナリオを前提とした応答データを生成することができる。また、応答文として解析した文書構造や、抽出パターンに対応する複数の部分木に基づく記述を解析して、応答データテンプレートの内容を更新・変更することによって、生成する応答データの質を高めることができる。
【０１３３】
〔実施形態３〕
以下、本発明の実施形態３を、図２０ないし図２３を用いて説明する。
【０１３４】
本実施形態の質問応答データ生成装置では、ドリルダウン型の質問応答システムの応答データを生成する。ドリルダウン型の質問応答システムは、実施形態２に示すシナリオ分岐型の質問応答システム同様に、質問者１１０と質問応答装置１２０が質問文１１２・応答文１１３のやりとりを複数回繰り返し、その中で、最終的に質問者１１０の質問内容を絞り混んで質問応答装置１２０が回答を返すものであり、いずれも、複数のスロットの項目に対し、値を確定させていき最終的に必要なスロットの値が確定した時点で、最終的な質問応答を返す点は同じである。しかしながら、スロットの値を確定させる方法と、そのための応答データの構造が異なる。ドリルダウン型の質問応答システムの応答データは、ドリルダウン型応答プログラム２２４による質問応答を行う場合に使用される。
【０１３５】
なお、ドリルダウン型とは、スロットの値を絞り込んで値を確定させることから、名付けたものである。
以下では、実施形態１と実施形態２と比較して、異なる所を重点的に説明する。
【０１３６】
先ず、図２０および図２１を用いてドリルダウン型の質問応答システムで用いる応答データについて説明する。
ドリルダウン型の質問応答システムで用いる応答データは、図２０に示される質問応答テーブル１６００と、図２１に示されるスロット属性テーブル１６５０で構成される。
【０１３７】
質問応答テーブル１６００は、スロットの値に対し最終的に質問に対する応答文を対にしたものである。質問応答テーブル１６００の各エントリ１６３０〜１６３６は、スロット群１６１０と対応する応答文１６２０を有する。スロット群１６１０は、複数のスロット１６１１、１６１２、１６１３を有する。質問者１１０と質問応答装置１２０は、質問文１１２と応答文１１３のやり取りを複数繰り返し、その中で、ドリルダウン型応答プログラム２２４は、質問文１１２からスロットの値を取得していく。そして、各スロット１６１１、１６１２、１６１３の値が合致するエントリが質問応答テーブル１６００中にある場合、対応する応答文１６２０を応答して、質問応答を終了する。質問応答の終了には、必ずしも全スロットの値を確定させる必要はない。例えば、エントリ１６３２は、スロット１６１３に相当する値としてアスタリスク（＊）を設定している。これは、他のスロット１６１１、１６１２の値が入力から得られた値と一致すれば、スロット１６１３に相当する値を問わない（未確定でもよい）ことを示している。また、各エントリにおけるスロットの値は、単一の値および未確定を示す値だけではなく、複数の値を列挙したり、正規表現を用いるなど複数の値を許容する記載をしてもよい。
【０１３８】
ドリルダウン型応答プログラム２２４による質問応答の一連のやりとりでは、開始時には全てのスロットの値が未確定である。以後、質問者１１０からの質問文１１２を分析して、スロット１６１１、１６１２、１６１３の値を取得する。質問文１１２からスロットの値を取得する方法として、例えば、特許文献３に開示されている。質問文１１２からスロットの値を取得し、質問応答テーブル１６００中でスロット群１６１０の値が一致するエントリが一意に定まる場合、そのエントリに対応する応答文１６２０を返すようにする。また、エントリについて、その際参照したエントリの情報は、応答履歴データベース１２２にて格納される。
【０１３９】
質問文１１２からスロットの値を取得しても、質問応答テーブル１６００中にスロット群１６１０の値が一致するエントリが一意に定まらない場合、ドリルダウン型応答プログラム２２４は、未確定のスロットの値を確定させるよう質問者１１０に応答文１１３を用いて問い返すようにする。このとき、ドリルダウン型応答プログラム２２４は、問い返しの応答文１１３を生成するために、図２１に示したスロット属性テーブル１６５０を用いる。スロット属性テーブル１６５０は、スロット毎にエントリ１６８０〜１６８３を有する。例外的に、スロットに対応しないエントリ１６８０などを含んでもよい。各エントリは、空きスロットの項目１６６１、空きスロットの優先度１６６２、応答文１６７０の組で構成される。値が未確定のスロットが複数ある場合、ドリルダウン型応答プログラム２２４は、それらのスロットに対し、スロット属性テーブル１６５０の空きスロットの項目１６６１に一致するエントリを探し、エントリ中の優先度１６６２の値を取得する（図２１の例では、０が優先度が一番高く、３が優先度が一番低いとしている）。複数の値が未確定のスロットに対して、それぞれ優先度１６６２の値を求めたときに、その内で優先度が一番高い優先度１６６２を有するスロットを定め、対応するエントリ中の応答文１６７０を応答文１１３として返すことにより、質問者１１０に該当するスロットの値を確定させる入力を促す。エントリ１６８０〜１６８３には、スロットと対応付かないエントリ１６８０を含んでもよい。例えば、エントリ１６８０は、質問応答のやり取りを最初に行う場合に出力するあいさつ文を含んでいる。
【０１４０】
実施形態２のシナリオ分岐型の質問応答システムとドリルダウン型の質問応答システムにおける応答データ生成については、スロットの値の確定順が異なっている。シナリオ分岐型は、シナリオ分岐図１０００で定められた順でしか、スロットの値を確定できない。その確定順を変更するには、シナリオ分岐図１０００自体をそのように書き換えなければならない。一方、ドリルダウン型は、スロットの値の確定順は任意である。例えば、ドリルダウン型応答プログラム２２４がスロット属性テーブル１６５０のエントリ１６８１に従い、口座名の入力を促す応答文１６７０を出力したとする。しかしながら、その後に続く質問者１１０の質問文１１２がスロット＜事項＞に関する内容を含む場合には、先にスロット＜事項＞の値を確定させることもできる。また、一つの質問文１１２から複数のスロットの値を確定させることもできる。
【０１４１】
次に、図２２を用いて本実施形態の応答データ生成パターンについて説明する。
本実施形態では、実施形態１の図７に示した構造情報６００のような木構造において、事前に定義されたパターンに合致する記述、すなわち木構造の部分木を抽出し、応答データを生成する点は実施形態１と同じである。しかしながら、本実施形態では応答データが質問応答テーブル１６００、スロット属性テーブル１６５０であることから、応答データ生成パターンの形式が異なる。
【０１４２】
応答データ生成パターン１７００が有する抽出パターン７２０は、実施形態１における応答データ生成パターン７００同様に、構造情報１９００中の木構造の一部に合致する内容を記述する。抽出パターン記述１７２１は、実際に構造情報１９００の一部に合致する例を示している。応答データ生成パターン１７００が有する応答データテンプレート１７３０は、質問応答テーブル１６００およびスロット属性テーブル１６５０を生成するためのデータを保持する。応答データ生成パターン１７００では、データ生成のための応答データテンプレート１７３０として、質問応答テーブルテンプレート１７４０およびスロット属性テーブルテンプレート１７６０を有する。
【０１４３】
質問応答テーブルテンプレート１７４０は、質問応答テーブル１６００同様にスロット群１６１０と対応する応答文１６２０を有する。スロット群１６１０は、複数のスロット１６１１、１６１２、１６１３を有する。質問応答テーブルテンプレート１７４０のエントリ１７５０は、文書構造６００中で抽出パターン例１７２１に対応づけられる部分木を抽出した場合、そのテキストから取得した各スロットの値を代入して生成される質問応答テーブル１６００のエントリを示している。
【０１４４】
スロット属性テーブルテンプレート１７６０は、スロット属性テーブル１６５０同様にスロット項目１６６１、優先度１６６２、応答文１６７０を有する。スロット属性テーブルテンプレート１７６０の各エントリ１７７０〜１７７３の応答文１６７０は、スロットの値の集合を代入するプレースホルダ１７８０、１７８１を含むことができる。
【０１４５】
次に、図２３を用いて本実施形態の質問応答データ生成装置が行う本実施形態の応答データ生成処理について説明する。
図２３は、実施形態３の応答データテンプレートの複製・変更の処理（図１７のＳ８６５）を示すフローチャートである。
【０１４６】
本実施形態においては、応答データ生成フロー８００を用いて実施形態１、２同様に応答データを生成する。しかしながら、文書構造６００中で抽出パターン例１７２１に対応づけられる部分木を複数抽出しても、スロット属性テーブルテンプレート１７６０は、抽出パターン例１７２１一つに対し一つのスロット属性テーブル１６５０しか生成されない。これは、値が未確定のスロットに対し入力を促す応答文は、スロットの値の確定状況に依らないためである。その代わりに、応答文１６７０は、スロットの値の集合を代入するプレースホルダ１７８０、１７８１を含む。例えば、プレースホルダ１７８０、１７８１は、統計情報取得の過程で得られたスロットの値の一覧を応答文１６７０に代入し、応答文を生成する。
【０１４７】
本実施形態の応答データ生成処理は、図１７に示した実施形態２における応答データ生成処理と同様に、フロー８００と同等の処理を用いて、質問応答データ生成装置１３０中の応答データ生成プログラム３６０が文書データベース１３１に格納された文書群から質問応答装置１２０が用いる応答データベース１２１に格納する応答データ（質問応答テーブル１６００およびスロット属性テーブル１６５０）を生成する。
【０１４８】
しかしながら、応答データテンプレートの複製・変更の処理（図１７のＳ８６５）が異なっている。
【０１４９】
以下では、応答データテンプレートの複製・変更の処理（図１７のＳ８６５）の詳細な例を二つ説明する。
【０１５０】
先ず、一つ目は、図２３に示される例である。
先ず、テンプレート変更フロー１８００で実施するＳ１３１０、１３１５は、実施形態２の図１８に示したテンプレート変更、複製の処理と同一である。
【０１５１】
次のＳ１８２０では、Ｓ１３１０、１３１５で定めたスロットの値の確定順に応じて、スロット属性テーブルテンプレート１７６０の内容を変更する。実施形態２の応答文マッピングテーブル１４５０同様に、Ｓ１３１０、１３１５により定められたスロットの確定順が「＜事項＞→＜口座名＞→＜作業＞」とする。その場合、スロット属性テーブルテンプレート１７６０における優先度１６６２を前記確定順に合わせて、標準でその優先度１６６２の値を設定する。
【０１５２】
二つ目の例は、統計データに基づくスロットの生成・細分化例である。
【０１５３】
図２２に示した応答データ生成パターン１７００においては、質問応答テーブルテンプレート１７４０では、スロット１６１１、１６１２、１６１３は既に設定されている。しかしながら、抽出した部分木を用いて、スロットの生成することができる。これは、例えばスロットに充当しうる値が多すぎる場合、それらをグループ分けして独立したスロットとして扱いたい場合に行う。例えば、文書構造６００中スロット＜事項＞に該当する複数の値が、単語や意味により分類できるとする。例として、「本人確認」「必要書類」のような＜作業＞を進める手順に関する値が入る場合と、「営業時間」「対応店舗」など＜作業＞を進める条件に関する値で分類できる場合がある。この場合、スロット＜事項＞を＜事項:手順＞と＜事項:条件＞に細分化し、質問応答テーブルテンプレート１７４０やスロット属性テーブルテンプレート１７６０をそれぞれに分けることができる。このようにスロットを細分化すると、細分化されたそれぞれのスロット属性テーブルテンプレート１７６０に異なる優先度を設定するなど、きめ細やかな応答データの作成が可能となる。
【０１５４】
また、応答データ管理部３９５は、質問応答プログラム２２１の運用開始後、応答履歴データベース１２２を参照して、図２１に示すスロット属性テーブル１６５０を更新することもできる。実施形態２の図１５に示した応答文マッピングテーブル１４００の値１４３０は、応答データテンプレートの複製・変更の処理の実行時の段階では、スロットの値に対し、応答文の有無の真偽値しか持たない。しかしながら、運用開始後は、応答履歴データベース１２２から各応答文の利用頻度がわかるので、値１４３０として真偽値ではなく前述の利用頻度を用いることにより、例えば、プレースホルダ１７８０・１７８１に出力するスロット値の順番を、利用頻度の高い順に並べ替えたり、質問・応答履歴を元に早い段階で値が確定するスロットに対し、優先度１６６２に優先度が高い値を設定したりすることができる。
【０１５５】
次に、ドリルダウン型の質問応答システム固有の応答データ削減する方法について説明する。
図１７に示した応答データ生成処理のＳ８９０において、実質同じ状態を一つにまとめることにより、図２１に示した質問応答テーブル１６００のエントリ数を削減することができる。例えば、エントリ１６３１と１６３４は、スロット１６１２＜作業＞を除き同一内容である。この場合、スロット１６１２＜作業＞に複数の値を記述することで、両エントリを単一のエントリにまとめることができる。
【０１５６】
次に、図２４および図２５を用いて本実施形態における応答データ生成処理により生成した応答データについて説明する。
図２４は、応答データ生成処理により生成された質問応答テーブルの一例を示す図である。
図２５は、応答データ生成処理により生成されたスロット属性テーブル生成の一例を示す図である。
【０１５７】
本実施形態の応答データは、図２４に示す質問応答テーブル２１００と、図２５に示すスロット属性テーブル２１５０である。
【０１５８】
図２４に示す質問応答テーブル２１００および図２５に示すスロット属性テーブル２１５０は、それぞれ、図２０の質問応答テーブル１６００および図２１のスロット属性テーブル１６５０と対応するスロットの値および応答文は同等であり、質問応答できる範囲も等しいといえる。しかしながら、文書構成に基づき重複の削除や優先度の変更を行うことにより、本実施形態の質問応答テーブル生成例２１００およびスロット属性テーブル生成例２１５０は、質問応答テーブル１６００およびスロット属性テーブル１６５０に比べて、データ量（テーブルの行数）や優先度を考慮したより適切な質問順を実現することができる。
【０１５９】
本実施形態によると、スロットと応答文からなる応答データが用意されている場合に、データ量を削減し、優先度を考慮したより適切な質問順になった応答データとして最適化することで、生成する応答データの質を高めることができる。
【符号の説明】
【０１６０】
５…ネットワーク
１００…質問応答システム
１１０…質問者
１１１…質問応答端末
１１２…質問文
１１３…応答文
１２０…質問応答装置
１２１…応答データベース 
１３０…質問応答データ生成装置
１３１…文書データベース
１３２…パターンデータベース
１４０…文書
１４１…応答データ生成パターン
【図１】
2020080025.tif 000003
【図２】
2020080025.tif 000004
【図３】
2020080025.tif 000005
【図４】
2020080025.tif 000006
【図５】
2020080025.tif 000007
【図６】
2020080025.tif 000008
【図７】
2020080025.tif 000009
【図８】
2020080025.tif 000010
【図９】
2020080025.tif 000011
【図１０】
2020080025.tif 000012
【図１１】
2020080025.tif 000013
【図１２】
2020080025.tif 000014
【図１３】
2020080025.tif 000015
【図１４】
2020080025.tif 000016
【図１５】
2020080025.tif 000017
【図１６】
2020080025.tif 000018
【図１７】
2020080025.tif 000019
【図１８】
2020080025.tif 000020
【図１９】
2020080025.tif 000021
【図２０】
2020080025.tif 000022
【図２１】
2020080025.tif 000023
【図２２】
2020080025.tif 000024
【図２３】
2020080025.tif 000025
【図２４】
2020080025.tif 000026
【図２５】
2020080025.tif 000027