(57)【要約】【課題】  回答となる情報が複数の文書中に分散して記述されているような場合でも適切な回答候補を出力できる質問応答装置を提供する。【解決手段】  分割質問文生成部１１１は、入力部１０１から入力された質問文を、複数の分割された質問文である分割質問文に分割する。回答候補保持部１１３は、前記質問文および前記分割質問文を解析して、前記複数の文書から前記回答の候補となる回答候補を得て、この得た回答候補と、前記質問文または前記分割質問文とを組として記憶する。制御部１０２は、回答候補生成部１２８により回答候補を評価・マージされ、最終的に得られた組を回答として出力部１０３から出力する。【選択図】      図１
2005165416.tif 000002
【特許請求の範囲】
【請求項１】
入力された質問文に対する回答を複数の文書から抽出して出力する質問応答装置において、
入力された質問文を複数の分割された質問文である分割質問文に分割する質問文分割手段と、
前記質問文および前記分割質問文を解析して、前記複数の文書から前記回答の候補となる回答候補を得て、この得た回答候補と、前記質問文または前記分割質問文とを組として記憶する回答候補記憶手段と、
前記回答候補記憶手段が記憶する回答候補を評価し、この評価の結果得られた評価点を前記組毎に付与する回答候補評価手段と、
前記分割質問文から得られた前記組について、前記回答候補毎にマージするマージ手段と、
最終的に得られた前記組の評価点が高い組の順に、所定個の前記回答候補を回答として出力する回答出力手段とを有することを特徴とする質問応答装置。
【請求項２】
前記回答候補記憶手段は、
前記質問文および前記分割質問文を解析して、前記複数の文書から前記回答の候補となる回答候補を得て、この得た回答候補，前記複数の文書の内当該回答候補を得た文書，前記質問文を組として、更に、前記得た回答候補，前記複数の文書の内当該回答候補を得た文書，前記分割質問文を組として記憶することを特徴とする請求項１に記載の質問応答装置。
【請求項３】
前記回答出力手段は、
前記分割質問文から得られた回答に、前記分割質問文から得られた回答であることを示す情報を付して出力する手段を有することを特徴とする請求項１または２に記載の質問応答装置。
【請求項４】
前記回答出力手段は、
前記分割質問文から得られた回答に、当該回答と組として前記分割質問文を出力する手段を有することを特徴とする請求項１乃至３のいずれか１項に記載の質問応答装置。
【請求項５】
前記回答出力手段は、
前記分割質問文から得られた回答に、前記分割質問文から得られた回答であることを示す情報を付して出力する手段と、
前記分割質問文から得られた回答に、当該回答と組として前記分割質問文を出力する手段と、
前記分割質問文から得られた回答に、回答を得る元となった前記文書を前記分割質問文に対応付けて出力する手段を有することを特徴とする請求項２に記載の質問応答装置。
【請求項６】
入力された質問文に対する回答を複数の文書から抽出して出力する質問応答方法において、
質問文分割手段により、入力された質問文を複数の分割された質問文である分割質問文に分割し、
回答候補記憶手段により、前記質問文および前記分割質問文を解析して、前記複数の文書から前記回答の候補となる回答候補を得て、この得た回答候補と、前記質問文または前記分割質問文とを組として記憶し、
回答候補評価手段により、前記回答候補記憶手段が記憶する回答候補を評価し、この評価の結果得られた評価点を前記組毎に付与し、
マージ手段により、前記分割質問文から得られた前記組について、前記回答候補毎にマージし、
回答出力手段により、最終的に得られた前記組の評価点が高い組の順に、所定個の前記回答候補を回答として出力することを特徴とする質問応答方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ユーザの入力した質問に対する回答を出力する質問応答装置に関し、特に、回答を自然言語文書中から発見する質問応答装置に関する。
【背景技術】
【０００２】
インターネットの検索エンジンに代表されるように、ユーザの検索要求に適合する文書を検索してランキングする文書検索技術は広く普及している。しかし、文書検索は、「××に関する新聞記事が読みたい」，「××に関するWebページが見たい」といった検索要求を満足することはできるが、「○×社の社長は誰か？」，「富士山の高さは？」，「鯨は絶滅しかかっているか？」といった質問に対してダイレクトに答えを返すことができない。文書検索は文書あるいは文書中のパッセージを出力するだけなので、ユーザは出力結果から自分で回答を探しださなくてはならない。
【０００３】
上記のような質問に対する回答を直接出力するものとして、質問応答装置がある。質問応答装置は、例えば「○×社の社長は誰か？」という質問に対し、○×社のホームページなど○×社に関する文書を出力するのではなく、○×社の社長の人名を出力する。また、「富士山の高さは？」のような質問に対しては、「富士山の標高は3776mです。」というように質問に対する回答を出力する。
【０００４】
質問応答装置は、近年、情報検索や情報抽出などの研究の発展形として注目を集めており、ユーザの質問に対しある程度ダイレクトな答えをかえすことが可能になってきている。例えば利用者の質問文に対して回答と、その回答が質問への回答となっていることを利用者が確認できる文書（以下、ここでは根拠文書と呼ぶ）とを出力するような質問応答装置が知られている（例えば、特許文献１参照）。
【０００５】
なお、ここで根拠文書とは、例えば、質問応答装置が質問に対する回答を抽出した抽出源の文書のことである。
【特許文献１】特開２００２−１３２８１２公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、入力される質問文は自然言語で記述されているので、必ずしも単純な質問とは限らず、例えば「新潟に本社のある、お菓子製造の会社は？」といった複雑な質問も入力され得る。このような複雑な質問に対しては、１つの文書中に、ある回答候補がその質問への回答であることを示す全ての情報が含まれているとは限らず、複数の文書中に分散して記述されている可能性がある。
【０００７】
例えばＡ社の本社が新潟にあるという情報と、Ａ社がお菓子製造の会社であるという情報が、別々の文書中に記述されていたとする。その場合、入力された質問文をそのまま用いて回答候補を検索するだけではその回答候補（上記の例ではＡ社）が回答候補リストの上位から洩れてしまう場合があり、結果として正しい回答を出力できなくなるという問題点があった。このような、情報の蓄積場所が複数存在するという問題に対し、いわゆるデータベース検索の分野では問い合わせ（クエリー）を複数の検索条件に分割するという技術が解決手段として知られている。
【０００８】
しかし、回答を自然言語文書中から発見するような質問応答装置においては、あらかじめ検索されるデータの形式・関係が定まっているデータベース検索と異なり、検索されるデータの形式・関係が分からないため、どのようなときに質問文を分割すべきかが必ずしも明確ではない。また誤った回答が検索される危険性の少ないデータベース検索とは異なり、誤った回答候補が検索されるために正しい回答候補が候補リストから漏れるといった危険性があり、検索対象に含まれる表現によって、分割しない質問文での問い合わせの方が適切な回答を抽出できる場合も、また反対に分割した質問文での問い合わせの方が適切な回答を抽出できる場合も存在する。
【０００９】
このように従来の質問応答装置においては、回答となる情報が複数の文書中に分散して記述されている場合、正しい回答候補が候補リストから漏れるという問題があった。
【００１０】
この発明は、以上の問題点に鑑み、回答となる情報が複数の文書中に分散して記述されている場合でも適切な回答候補を出力できる質問応答装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために、この発明においては、入力された質問文に対する回答を複数の文書から抽出して出力する質問応答装置において、入力された質問文を複数の分割された質問文である分割質問文に分割する質問文分割手段と、前記質問文および前記分割質問文を解析して、前記複数の文書から前記回答の候補となる回答候補を得て、この得た回答候補と、前記質問文または前記分割質問文とを組として記憶する回答候補記憶手段と、前記回答候補記憶手段が記憶する回答候補を評価し、この評価の結果得られた評価点を前記組毎に付与する回答候補評価手段と、前記分割質問文から得られた前記組について、前記回答候補毎にマージするマージ手段と、最終的に得られた前記組の評価点が高い組の順に、所定個の前記回答候補を回答として出力する回答出力手段とを有することを特徴とする質問応答装置を提供する。
【発明の効果】
【００１２】
この発明によれば、回答となる情報が複数の文書中に分散して記述されているような場合でも適切な回答候補を出力できる質問応答装置を提供することができる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して本発明の実施の形態について詳細に説明する。
図１は本発明の一実施形態に係る質問応答装置を示すブロック図である。
この質問応答装置は、質問文を入力する入力部１０１，質問応答装置全体を制御する制御部１０２，回答結果を出力する出力部１０３，質問文を分割する分割質問文生成部１１１，入力質問文および分割質問文を管理する質問文リスト１１２，回答候補と回答候補の評価点と根拠文書の情報を保持する回答候補保持部１１３，質問パターンデータベース１２１，質問文の回答種別を判定する回答種別判定部１２２，質問文により検索を行い文書をスコアリングする文書検索部１２３，自然言語文書が蓄積されている文書データベース１２４，検索対象文書から回答となる可能性のある表現を抽出し回答カテゴリを付与する回答表現抽出部１２５，表現カテゴリデータベース１２６，回答表現データベース１２７，検索結果と回答種別と回答表現から回答候補を選択し評価点を付与する回答候補生成部１２８からなる。
【００１４】
質問文リスト１１２，回答候補保持部１１３，質問パターンデータベース１２１，文書データベース１２４，表現カテゴリデータベース１２６，回答表現データベース１２７は、メモリやハードディスクドライブ等の記憶媒体を備えている。
【００１５】
また、この質問応答装置は、ハードウェアをプロセッサ，ＲＯＭ，ＲＡＭ等から構成されたコンピュータとし、上記各機能をコンピュータが記憶媒体から読み出したコンピュータプログラムをプロセッサが実行することにより実現するようにしてもよい。
【００１６】
以下、本質問応答装置の全体的な処理の流れを図1に沿って説明する。
回答表現抽出部１２５は、あらかじめ文書データベース１２４に登録されている検索対象文書と、表現カテゴリデータベース１２６に登録されている表現とを比較して回答となる可能性のある回答表現を回答種別情報付きで抽出し、回答表現文字列、出現文書ＩＤ、出現位置、回答種別の各情報を回答表現データベース１２７に保持しておく。
【００１７】
この回答表現抽出部１２５の処理については、いわゆる固有名詞抽出やオントロジータガーの技術が既に知られており、これらの技術を適用すれば良い。本発明の特徴部ではないためここでは詳細な説明は省略する。回答表現抽出においては、対象文書の表層表現に対して処理を行ってもよいし、形態素解析した結果に対して処理を行ってもよいし、構文・係り受け解析結果に対して処理を行ってもよい。
【００１８】
ユーザは入力部１０１を介してキーワード等からなる質問文を入力する。
制御部１０２は、入力部１０１から入力された質問文を質問文リスト１１２の１行目に登録すると共に質問文ＩＤを分割質問文生成部１１１，回答種別判定部１２２および文書検索部１２３へ出力する。
【００１９】
回答種別判定部１２２は、制御部１０２から入力された質問文と、質問パターンデータベース１２１に登録されている表現とを比較して回答種別判定を行い、判定結果である回答種別情報を制御部１０２へ出力する。この回答種別判定部１２２の処理については、例えば特開２００２−１３２８１２公報等を用いればよく、本発明の主要部ではないため、詳細な説明は省略する。
【００２０】
文書検索部１２３は、制御部１０２から入力された質問文から検索キーワードを取り出し、検索対象文書である文書データベース１２４に対してキーワード検索を行い、キーワード検索結果を得る。そしてこのキーワード検索により得られた文書について、文書スコアの上位順にあらかじめ定められた文書ＩＤと当該文書ＩＤの文書スコア、およびマッチした検索キーワードと当該検索キーワードの出現位置の情報を制御部１０２へ出力する。このキーワード検索による文書スコアの出し方としては、例えば、より高い出現頻度の文書を、より高いスコアとする等、従来種々知られている技術を適用すれば良い。この文書スコアを出すキーワード検索としては、例えば、特開２００２−１３２８１１や、文献（徳永健伸；情報検索と言語処理、東京大学出版会、１９９４年）等を用いれば良い。
【００２１】
制御部１０２は、回答種別判定部１２２の処理結果（回答種別情報）および文書検索部１２３の処理結果（文書ＩＤと当該文書ＩＤの文書スコア，検索キーワードと当該検索キーワードの出現位置の情報の４つの情報の内、文書ＩＤと当該文書ＩＤの文書スコアの２つの情報）を、回答候補生成部１２８へ出力する。
【００２２】
回答候補生成部１２８は、制御部１０２から入力された回答種別情報，文書ＩＤと当該文書ＩＤの文書スコアをキーとして回答表現データベース１２７を検索し、回答候補文字列（回答候補表現）と当該回答候補文字列（回答候補表現）の出現位置の情報を得る。
【００２３】
回答候補生成部１２８は、該回答候補文字列（回答候補表現）と該回答候補文字列（回答候補表現）を得るために回答表現データベース１２７の検索時にマッチした各キーワードとの距離を計算し、あらかじめ定めた計算式により各回答候補文字列（回答候補表現）に回答としての評価点を付与する。例えば、マッチした各キーワードとの距離の逆数を合算するなどの計算式により評価点を付与することが可能である。より確からしい回答候補に高い評価点を与える計算式については質問応答装置の分野で種々の手法が知られている。ここでは本発明の主要部ではないため詳細な説明は省略する。
【００２４】
質問応答の技術については、例えば特開２００３−１０８５８３公報、特開平７−９３３５１号公報や特開平７−１９２０２０号公報等により知られている技術を用いれば良い。
【００２５】
次に、回答候補生成部１２８は、得られた回答候補文字列（回答候補表現）のうち表層文字列が同じものの中から評価点が高いものを残し、他を削除する。
次に、回答候補生成部１２８は、回答候補文字列（回答候補表現）と、その質問文ＩＤ（質問文リスト１１２の番号），評価点，文書ＩＤリストを、制御部１０２に出力する。
【００２６】
制御部１０２は、回答候補生成部１２８から入力された情報（回答候補生成部１２８により得られた回答候補文字列（回答候補表現），その質問文ＩＤ（質問文リスト１１２の質問文ＩＤ），評価点，文書ＩＤリスト）を、回答候補保持部１１３へ出力する。回答候補保持部１１３が記憶するデータ形式については後で詳述する。
【００２７】
回答候補保持部１１３は、制御部１０２から入力されたこの情報を保持する。
分割質問文生成部１１１は、制御部１０２から入力された質問文が分割可能か否かを判定し、質問文が分割可能な場合には、質問文から分割質問文を生成して制御部１０２に出力する。
【００２８】
例えば分割質問文生成部１１１は、入力質問文を構文解析し、構文木構造を条件として分割可能か否かを判定して分割質問文を生成する。あるいは、正規表現により分割可能かどうかを判定し分割質問文を生成してもよい。例えば、構文解析結果が、質問文の主語に複数の連体修飾句が係っている場合、連体修飾句毎に質問文を分割するようにしてもよい。また、質問文の途中に句読点が含まれている場合、句読点の前後で質問文を分割して質問を生成するようにしてもよい。
【００２９】
図２および図３は、この質問文から分割質問文を生成する処理の一例を模式的に表した図である。図２は、入力質問文を構文解析し、構文木構造を条件として分割した例を示す図である。図３は、質問文の途中に句読点が含まれている場合、句読点の前後で質問文を分割して質問を生成した例を示す図である。
【００３０】
分割質問文生成部１１１は、制御部１０２から入力された「新潟にある、お菓子製造の会社は？」という質問文を分割し、「新潟にある本社がある会社は？」および「お菓子製造の会社は？」という２つの分割質問文を生成して制御部１０２に出力する。
【００３１】
次に、分割質問文生成部１１１から分割質問文が入力された後の制御部１０２の処理の流れについて説明する。
制御部１０２は、分割質問文生成部１１１から入力された全ての分割質問文を質問文リスト１１２に登録する。
次に、制御部１０２は、質問文リスト１１２に登録された分割質問文を一つづつ順に回答種別判定部１２２および文書検索部１２３に送る。
回答種別判定部１２２および文書検索部１２３の処理については、分割質問文の場合も入力質問文の場合と同様であり、各処理結果を制御部１０２へ出力する。
次に制御部１０２は、回答種別判定部１２２の処理結果および文書検索部１２３の処理結果を回答候補生成部１２８に出力する。
回答候補生成部１２８の処理については、分割質問文の場合も入力質問文の場合と同様であり、処理結果を制御部１０２へ出力する。
次に制御部１０２は、回答候補生成部１２８から入力された情報を回答候補保持部１１３へ出力する。
回答候補保持部１１３は、制御部１０２から入力されたこの情報を保持する。
制御部１０２は、全ての分割質問文に対し同じ処理を繰り返す。
制御部１０２は、全ての分割質問文の処理が終了したら、回答候補保持部１１３に記憶されている回答候補文字列（回答候補表現）を１つずつ読み出し、複数の分割質問文に共通している回答候補を見つけ、その評価点を更新する。この評価点更新の手続きについては後に詳述する。
【００３２】
次に制御部１０２は、回答候補保持部１１３に保持されている回答候補文字列（回答候補表現）と当該回答候補文字列（回答候補表現）の評価点を読み出し、評価点の高い順に回答候補を並べ替える。
【００３３】
最後に制御部１０２は、評価点順に並べられた回答候補の内、あらかじめ定められた上位ｎ件の回答候補を出力部１０３に出力する。この例では、あらかじめ定められた上位ｎ件としたが、このｎについては固定である必要はなく、可変であっても良い。また、評価点が幾つ以上のものに限定して出力するようにしても良い。
【００３４】
出力部１０３は、ディスプレイから構成されており、制御部１０２から入力された回答候補をディスプレイ上に表示する。この表示方法の例については後で詳細に説明する。
【００３５】
以上が、質問応答装置の処理の流れの概略である。
以下、先の図２，図３の質問文である「新潟にある、お菓子製造の会社は？」が入力されたときを例として質問応答装置の動作を詳細に説明する。
図４は、質問文リスト１１２のデータの形式を示す図である。
質問文リスト１１２のデータは、質問文ＩＤ，種類，テキストの３つから構成されている。１行目には、質問文ＩＤ“００１”として、入力質問文を示す“入力”，テキストとして“新潟にある、お菓子製造の会社は？”が入力されている。２行目には、質問文ＩＤ“００２”として、分割質問文を示す“分割”，テキストとして一方の分割質問文である“新潟にある本社がある会社は？”が入力されている。３行目には、質問文ＩＤ“００３”として、分割質問文を示す“分割”，テキストとして他方の分割質問である“お菓子製造の会社は？”が入力されている。
【００３６】
回答候補保持部１１３は、回答候補文字列（回答候補表現），その質問文ＩＤ（図４に示す質問文リスト１１２の質問文ＩＤ），評価点，文書ＩＤ，ｆｌａｇ（フラッグ）の５つの情報から成る。ｆｌａｇは、既に他のデータにマージされ不要となったデータであることを識別するために付すｆｌａｇである。
【００３７】
制御部１０２は、まず入力質問文（すなわち質問文ＩＤ＝００１）「新潟にある、お菓子製造の会社は？」に対する回答候補を回答候補保持部１１３に格納する。このときｆｌａｇ＝１とする。
【００３８】
この時点での回答候補保持部１１３のデータを、図５Ａに示す。
次に、制御部１０２は、一方の分割質問文（すなわち質問文ＩＤ＝００２）「新潟にある本社がある会社は？」に対する回答候補を回答候補保持部１１３に格納する（図５Ｂの６行目〜８行目を参照）と共に、他方の分割質問文（すなわち質問文ＩＤ＝００３）「お菓子製造の会社は？」に対する回答候補を回答候補保持部１１３に格納する（図５Ｂの９行目〜１１行目を参照）。このときｆｌａｇ＝１とする。
【００３９】
この時点での回答候補保持部１１３のデータを図５Ｂに示す。この図５Ｂは、回答候補保持部１１３のデータの形式を示す図であり、図５Ａと比較して分割質問文に関するデータ（質問文ＩＤ＝００２，００３）が追加されている点が異なる。
【００４０】
以上により、全ての質問文（入力質問文，分割質問文）に対する回答候補が回答候補保持部１１３に格納される。
次に、全ての質問文（入力質問文，分割質問文）に対する回答候補が回答候補保持部１１３に格納された後の制御部１０２の処理の流れについて図６のフローチャートに従って説明する。
【００４１】
まず、処理開始時点で格納されている回答候補の数を、変数ｃｎｔに代入する（ステップＳ６０１）。
変数ｎに初期値１，変数ｉに初期値１を代入する（ｎ＝１，ｉ＝１）（ステップＳ６０２）。
変数ｎが、変数ｃｎｔより大きいか否か（ｎ＞ｃｎｔ？）を判定する（ステップＳ６１１）。このステップＳ６１１の判定結果がＹｅｓであれば、回答候補保持部１１３の全てのデータに対し、同じ回答候補文字列で異なる質問文ＩＤ（質問文ＩＤが複数あるときには、質問文ＩＤを複数並べた質問文ＩＤリスト）を持つデータの有無を調べ、もし見つかった場合には評価点の小さい方のデータのｆｌａｇを０に変更し（ステップＳ６９１）、終了する。反対にステップＳ６１１の判定結果がＮｏであれば、次のステップＳ６１２へ進む。
【００４２】
次に、回答候補保持部１１３の全てのデータに対し、同じ回答候補文字列で異なる質問文ＩＤまたは質問文ＩＤリストを持つデータの有無を調べ、もし見つかった場合には、評価点の小さい方のデータのｆｌａｇを０に変更する。
【００４３】
ステップＳ６１１でＮｏであれば（まだ全ての回答候補について処理を終えていない場合）、ｎ行目の回答候補は質問文ＩＤの値が２以上（即ち、分割質問文）であり、かつｆｌａｇ＝１（即ち、マージされていないデータ）であるか否か（質問文ＩＤの値≧２  かつ  ｆｌａｇ＝１）を判定する（ステップＳ６１２）。このステップＳ６１２の判定結果がＹｅｓであれば、まだマージしていない新たな回答候補文字列であるため以降マージを行うため、変数ｐに０を代入して初期化し（ｐ＝０）（ステップＳ６５１）、反対にＮｏであればステップＳ６１３で変数ｎを１インクリメントし（ｎ＝ｎ＋１）、ステップＳ６１１へ戻る。
【００４４】
ステップＳ６５１の次に、変数ａに回答候補保持部１１３のｎ行目の回答候補文字列を代入する（ステップＳ６５２）。
ステップＳ６５２の次に、変数ｍに、変数ｎ＋１を代入し初期化する（ｍ＝ｎ＋１）（ステップＳ６５３）。この変数ｍは、ｎ行目のデータと、回答候補保持部１１３の何行目のデータとを比較するかを示す変数として使用し、ｎ＋１行目以降と比較するため初期値であるｎ＋１を与えている。
【００４５】
ステップＳ６５３の次に、変数ｍが、変数ｃｎｔより大きいか否かを判定する（ｍ＞ｃｎｔ？）（ステップＳ６５４）。即ち、ｎ行目の回答候補文字列に対して、全てマージが終了したか否かを判定する。ステップＳ６５４の判定結果がＹｅｓ（ｎ行目の回答候補文字列に対して、全てマージが終了した）であれば、ステップＳ６１３で変数ｎを１インクリメントし（ｎ＝ｎ＋１）、ステップＳ６１１へ戻る。反対にステップＳ６５４の判定結果がＮｏ（ｎ行目の回答候補文字列に対して、全てマージが終了していない）であれば、変数ｂに回答候補保持部１１３のｍ行目の回答候補文字列を代入する（ステップＳ６５５）。
【００４６】
ステップＳ６５５の次に、変数ａが、変数ｂと等しいか否かを判定する（ａ＝ｂ？）（ステップＳ６５６）。ステップＳ６５６の判定結果が、Ｙｅｓ（ａ＝ｂ）であれば、次のステップＳ６５７へ進み、反対にＮｏ（ａ≠ｂ）であればステップＳ６６２で変数ｍを１インクリメントし（ｍ＝ｍ＋１）、ステップＳ６５４へ戻る。
【００４７】
次に、変数ｐが０か否か判定する（ステップＳ６５７）。ステップＳ６５７の判定結果がＹｅｓであれば回答候補保持部１１３のｎ行目の回答候補の情報を、変数ｃｎｔ＋ｉ行目にコピーすると共に回答候補ｎ行目のｆｌａｇを０とし（ステップＳ６５８）、反対にＮｏであればステップＳ６６０へ進む。
【００４８】
ステップＳ６５８の次に、変数ｉを１インクリメントし（ｉ＝ｉ＋１）（ステップＳ６５９）、次のステップＳ６６０へ進む。
次のステップＳ６６０では、次の３つの処理を行う、１つ目は、ｍ行目の回答候補の評価点を、変数ｃｎｔ＋ｉ行目の回答候補の評価点とを加算する。２つ目は、質問文ＩＤと文書ＩＤを、変数ｃｎｔ＋ｉ行目へ追加する。３つ目は、ｍ行目のｆｌａｇ＝０とする。
【００４９】
ステップＳ６６０の次に、変数ｐを１インクリメントし（ｐ＝ｐ＋１）（ステップＳ６６１）、ステップＳ６６２へ進む。
要するに、ｎ＝１から順にまだマージしていない回答候補についてマージ処理を順次していく。
質問文ＩＤの値が２以上（即ち、分割質問による回答候補）で、ｆｌａｇの値が１（即ち、まだマージしていないデータ）である回答候補に対して、同じ回答候補文字列を持つデータの有無を調べる。
【００５０】
もし見つかった場合には、重複しているデータの中で一番上のデータ（ｎ行目のデータ）、即ち、ｎ行目の回答候補の回答候補文字列，質問文ＩＤ，評価点，文書ＩＤ，ｆｌａｇ（ｆｌａｇ＝１）を、回答候補保持部１１３の変数ｃｎｔ＋ｉ行目に格納し、ｎ行目の回答候補のｆｌａｇを０とする。
【００５１】
そして重複しているデータの中で上から２番目以降に出現するデータを、順次、変数ｃｎｔ＋ｉ行目にマージしていく。詳細には、回答候補文字列が一致したｍ行目の回答候補の評価点を変数ｃｎｔ＋ｉ行目の回答候補の評価点に加算し、質問文ＩＤと、文書ＩＤを追加し、ｍ行目の回答候補のｆｌａｇを０とする。
【００５２】
以上の処理の結果、分割質問による回答候補のデータはマージが行われる。
例えば、ｎ＝６となるとステップＳ６５８にて、図５Ｂの回答候補６行目の質問文ＩＤ“００２”，評価点“０．２”，文書ＩＤ“００２１”が、図５Ｃの回答候補１２行目（変数ｃｎｔ＋１行目、即ち、この時点での回答候補保持部１１３が保持する情報の件数である１１＋１＝１２行目）にそれぞれコピーされる。回答候補６（ｎ）行目のｆｌａｇは０となり、コピー先である変数ｃｎｔ＋１行目のｆｌａｇは１となる。
【００５３】
更に、分割質問文の重複については変数ｍが変更されることによりサーチが行われ、ｍ＝９となるとステップＳ６６０にて、図５Ｂの回答候補９行目の評価点“０．２”が図５Ｃの回答候補１２行目に加算され合計した値である“０．４”となり、質問文ＩＤである“００３” ，文書ＩＤ“０３１１”が、図５Ｃの回答候補１２行目に追加される。回答候補９（ｍ）行目のｆｌａｇは０となる。この時点での回答候補保持部１１３のデータを図５Ｃに示す。
【００５４】
要するに、重複しているデータの中で、一番上の行のデータが空いているエリアへコピーされ（ステップＳ６５８）、２番目以降のデータがこのコピーされた行に追加されていく（ステップＳ６６０）こととなる。この時点での回答候補保持部１１３のデータを図５Ｄに示す。このように回答候補文字列毎に、ｆｌａｇ＝１のデータは１つのみ存在する状態となる。
【００５５】
次に、回答候補保持部１１３の全てのデータに対し、同じ回答候補文字列で異なる質問文ＩＤ（質問文ＩＤが複数あるときには、質問文ＩＤを複数並べた質問文ＩＤリスト）を持つデータの有無を調べ、もし見つかった場合には、評価点の小さい方のデータのｆｌａｇを０に変更する。
【００５６】
この時点での回答候補保持部１１３のデータを図５Ｄに示す。
以上が、制御部１０２による、回答候補保持部１１３の評価点の更新処理の流れである。
なお、この実施形態では、入力質問文から得られた回答候補と、分割質問文から得られた回答候補とを加算せずに別々に計算した。しかし、入力質問文／分割質問文から得られた回答候補を区別せず、合計を計算しても同様の効果を得ることができる。
【００５７】
次に、出力部１０３への出力形態について図面を用いて詳細に説明する。
図７（ａ）は、質問文分割を行わず、入力質問文に対する回答候補からのみ（図５Ｄの質問文ＩＤが００１のデータ、即ち、図５Ａのデータ）を出力部１０３へ回答出力した場合の表示例である。この例では、上位３件を第１位から第３位の回答出力とした例であり、回答候補１行目から３行目の回答候補文字列が表示されている。このように評価点順に並べ替えられて表示がなされる。
【００５８】
図７（ｂ）は、入力質問文および分割質問文に対する回答候補を合わせた全体から回答出力した場合の表示例である。この例では、回答候補１行目と回答候補１２行目の評価点が同じく０．４であるが、入力質問文に対する回答候補を正しいであろうと見なして第１位の回答候補としている。第３位の回答候補には、２番目に高い評価点が０．３２である回答候補２行目が表示されている。このように評価点順に並べ替えられて表示がなされる。
【００５９】
次に、図８を用いて、分割質問文から得られた回答出力であることを示す情報を表示する場合の表示例について説明する。
図８において、第２位の回答「○○製菓」は分割質問文から得られた回答出力（図５Ｄ回答候補１２行目）であるので、画面上の表示として回答出力の隣に別の色・あるいは形状の文字で「質問分割」と制御部１０２が制御し表示させることにより、ユーザが第２位の回答出力が分割質問文から得られた回答出力であることを知ることができる。
【００６０】
なお、この例では、回答出力の隣に別の色・あるいは形状の文字で表示したが、例えば分割質問文から得られた回答出力については回答出力の文字の色を変える等、回答出力の文字のフォントや文字の修飾を入力質問文から得られた回答出力と変えることにより識別可能としても良い。
【００６１】
このように回答出力が分割質問文から得られたものである場合、どのような分割質問文から得られたのかユーザが知りたい場合がある。これに対応するため、図９に示す通り、図８の回答出力に加えて、分割質問文についても表示するように制御部１０２が制御し表示させても良い。図９において、第２位の回答出力「○○製菓」は、２つの分割質問文（質問文ＩＤ＝００２「新潟にある本社がある会社は？」，質問文ＩＤ＝００３「お菓子製造の会社は？」）から得られた回答出力であるので、第２位の回答出力横や下等、第２位の回答出力に対応した表示であることが分かるように、第２位の回答出力に対応付けて表示する。このとき制御部１０２は、図４に示した質問文リスト１１２を参照することにより分割質問文を得て、第２位の回答出力に対応して画面上に出力表示する。
【００６２】
更に、回答出力についてどのような文書が根拠となる文書であるのかユーザが知りたい場合がある。これに対応するため図１０に示すとおり、図９の回答出力に加え、回答出力の根拠となった文書についても回答出力に加えて表示する。実際には制御部１０２は、回答出力の根拠となった文書（根拠文書）の文書ＩＤを、図５Ｄに示す回答候補保持部１１３のデータから得て、文書検索部１２３を介して文書データベース１２４から根拠文書を得て、第２位の回答出力に対応して画面上に出力表示する。
【００６３】
このように、本実施形態においては、入力された質問文に対する回答根拠が複数の文書に分散している場合にも、入力された質問文による回答候補と、分割質問文による回答候補を獲得し、これらを評価して適切に回答候補を提示することができるようになる。
【００６４】
また、本発明では回答候補をマージするときに評価点の合計としたが、必ずしも合計でなくても良い。例えば、合計×０．９というように係数を乗算するようにしても良い。
【００６５】
その他、本発明はその趣旨を逸脱しない範囲内で種々の応用が可能である。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００６６】
【図１】本発明の質問応答装置の構成を示すブロック図。
【図２】質問文分割規則の一例を示す図（構文木構造を条件として分割した例）。
【図３】質問文分割規則の一例を示す図（句読点の前後で質問文を分割して質問を生成した例）。
【図４】質問文リスト１１２に記憶される質問文のデータの形式を示す図である。
【図５Ａ】回答候補保持部１１３が保持する回答候補のデータの形式を示す図（入力質問文について入力された例）。
【図５Ｂ】回答候補保持部１１３が保持する回答候補のデータの形式を示す図（入力質問文および分割質問文について入力された例）。
【図５Ｃ】回答候補保持部１１３が保持する回答候補のデータの形式を示す図（マージを説明するための例）。
【図５Ｄ】回答候補保持部１１３が保持する回答候補のデータの形式を示す図（マージを説明するための例）。
【図６】制御部１０２のマージ処理の流れを示すフローチャート。
【図７】出力部１０３の表示例（（ａ）：入力質問文に対する回答候補からのみ回答出力した場合の表示例。（ｂ）入力質問文および分割質問文に対する回答候補からも合わせた全体から回答出力した場合の表示例）。
【図８】出力部１０３の表示例（分割質問文から得られた回答出力であることを識別可能に表示する場合の表示例）。
【図９】出力部１０３の表示例（分割質問文から得られた回答候補を識別可能に表示する場合の表示例）
【図１０】出力部１０３の表示例（回答出力の根拠となった文書についても回答出力に加えて表示する場合の表示例）。
【符号の説明】
【００６７】
１０１…入力部、１０２…制御部、１０３…出力部、１１１…分割質問文生成部、１１２…質問文リスト、１１３…回答候補保持部、１２１…質問パターンデータベース、１２２…回答種別判定部、１２３…文書検索部、１２４…文書データベース、１２５…回答表現抽出部、１２６…表現カテゴリデータベース、１２７…回答表現データベース、１２８…回答候補生成部。
【図１】
2005165416.tif 000003
【図２】
2005165416.tif 000004
【図３】
2005165416.tif 000005
【図４】
2005165416.tif 000006
【図５Ａ】
2005165416.tif 000007
【図５Ｂ】
2005165416.tif 000008
【図５Ｃ】
2005165416.tif 000009
【図５Ｄ】
2005165416.tif 000010
【図６】
2005165416.tif 000011
【図７】
2005165416.tif 000012
【図８】
2005165416.tif 000013
【図９】
2005165416.tif 000014
【図１０】
2005165416.tif 000015