(57)【特許請求の範囲】
【請求項１】
対象の属性を質問する質問文の対象となる単語である対象部分に対象であることを示す対象ラベルが付与された複数の学習用質問文を用いて学習された対象モデルに基づいて、対象及び属性が未知の未知質問文から対象となる単語である対象部分を抽出する対象抽出手段と、
同じ属性を示す複数の単語の代表として予め定められた語（以下、「属性語」とよぶ）を用いて、前記複数の学習用質問文の各々についての、学習用質問文に付与された属性語と該学習用質問文から抽出された特徴量との対応付けを学習した属性モデルと、前記未知質問文から抽出された特徴量と、に基づいて、前記未知質問文に対応する属性語を判定する属性判定手段と、
前記対象抽出手段により抽出された対象部分と前記属性判定手段により判定された属性語とを用いて、対象となる単語と、属性語と、該対象となる単語の該属性語に対する回答と、が対応付けられたデータベースから、回答に対応付けられた属性語と前記属性判定手段により判定された属性語とが一致し、かつ、回答に対応付けられた対象となる単語と前記対象抽出手段により抽出された対象部分とが一致する回答を検索する処理により、前記未知質問文における対象部分の属性に対する回答を検索して応答を出力する応答出力手段と、
を含む質問応答装置。
【請求項２】
前記対象抽出手段は、前記未知質問文の品詞が対象候補として予め定めた品詞である単語の表層を特定の記号で置き換えた上で、前記学習用質問文の各々において、品詞が対象候補として予め定めた品詞である単語の表層を前記特定の記号で置き換えて学習された対象モデルに基づいて、前記未知質問文から前記対象部分を抽出する請求項１記載の質問応答装置。
【請求項３】
前記属性判定手段は、前記複数の学習用質問文の各々の対象部分の表層以外の部分から抽出された特徴量を用いて学習された属性モデルと、前記未知質問文から抽出された特徴量とに基づいて、前記未知質問文に対応する属性語を判定する請求項１または請求項２記載の
質問応答装置。
【請求項４】
前記複数の学習用質問文を用いて、前記対象モデル及び前記属性モデルを生成する学習手段を含む請求項１〜請求項３のいずれか１項記載の質問応答装置。
【請求項５】
前記属性語に応じて前記学習用質問文の各々に特徴的に出現する単語を抽出して生成した前記属性語毎の特徴単語リストと、前記未知質問文に含まれる単語とに基づいて、前記属性判定手段により判定された属性語の確からしさを検証する属性検証手段を含む請求項１〜請求項４のいずれか１項記載の質問応答装置。
【請求項６】
前記複数の学習用質問文を用いて、前記特徴単語リストを生成するリスト生成手段を含む請求項５記載の質問応答装置。
【請求項７】
対象抽出手段が、対象の属性を質問する質問文の対象となる単語である対象部分に対象であることを示す対象ラベルが付与された複数の学習用質問文を用いて学習された対象モデルに基づいて、対象及び属性が未知の未知質問文から対象となる単語である対象部分を抽出し、
属性判定手段が、同じ属性を示す複数の単語の代表として予め定められた語（以下、「属性語」とよぶ）を用いて、前記複数の学習用質問文の各々についての、学習用質問文に付与された属性語と該学習用質問文から抽出された特徴量との対応付けを学習した属性モデルと、前記未知質問文から抽出された特徴量と、に基づいて、前記未知質問文に対応する属性語を判定し、
応答出力手段が、前記対象抽出手段により抽出された対象部分と前記属性判定手段により判定された属性語とを用いて、対象となる単語と、属性語と、該対象を表す単語の該属性語に対する回答と、が対応付けられたデータベースから、回答に対応付けられた属性語と前記属性判定手段により判定された属性語とが一致し、かつ、回答に対応付けられた対象となる単語と前記対象抽出手段により抽出された対象部分とが一致する回答を検索する処理により、前記未知質問文における対象部分の属性に対する回答を検索して応答を出力する
質問応答方法。
【請求項８】
コンピュータを、請求項１〜請求項６のいずれか１項記載の質問応答装置を構成する各
手段として機能させるための質問応答プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は質問応答装置、方法、及びプログラムに係り、特に、対象の属性を質問する質問文に対する応答を出力する質問応答装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
自然言語による質問文の中で、対象の属性を質問するタイプの質問文は比較的多い。例えば、「山田さんの誕生日は？」や「スカイツリーの高さは？」などである。それぞれ、「山田さん」という対象の「誕生日」という属性、「スカイツリー」という対象の「高さ」という属性を質問している。このような質問文から、対象及び属性を正しく抽出できれば、例えば、人物名と誕生日とからなるデータベースから、「山田さん」の「誕生日」フィールドを検索することで、山田さんの誕生日を回答することができたり、建物とその高さとからなるデータベースから、「スカイツリー」の「高さ」フィールドを検索することで、スカイツリーの高さを回答することができたりする。
【０００３】
従来、自然言語による文から対象や属性を抽出する手法には、手作業によるルールや、機械学習の手法が用いられてきた。例えば、対象の抽出には、名詞連続を抽出するルールを作成する手法や、固有表現抽出技術を用いて、検出された固有表現を対象として抽出する手法が用いられてきた。また、属性の抽出は、自然言語処理では大きなトピックであり、多くの文書から、特定の対象に関する属性を抽出する研究がなされてきている。例えば、ウェブ上の文書から、特定の対象が持つ属性を抽出する手法が提案されている（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】谷  直紀、ボッレーガラ  ダヌシカ、石塚  満、「属性の相互関係を利用したＷｅｂからの属性抽出  Attribute Extraction from the Web based on Correlation  between Attributes」、人工知能学会全国大会、２０１０．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術は、大量の文書集合から、属性を抽出することが目的であって、単一の質問文中の対象について、どの属性が問われているかを推定するものではない。
【０００６】
質問文から対象を抽出する場合、従来は、上述のように、名詞連続や、固有表現抽出技術を用いて、質問文中の名詞句、固有名詞、固有表現等を検出し、これらが検出されれば対象とするアプローチが取られる。例えば、「山田の誕生日は？」という質問文であれば、唯一の固有名詞である「山田」が対象として選ばれる。
【０００７】
しかしながら、自然言語において、質問の仕方は様々である。例えば、「○○チームの山田っていつ生まれた？」という質問であれば、対象は「山田」であるが、従来手法では、「○○チーム」及び「山田」が対象として取得される。この場合、どちらの対象の属性を尋ねた質問であるかを判断することは、コンピュータにとって容易ではない。このため、単語長の長い方の単語を対象として決定したり、「の」の後の単語を優先したりするなどのアドホックなルールを記述して対応する必要がある。加えて、未知の単語が質問に入っている場合、形態素解析によって単語がうまく分割できず、対象の抽出に失敗する場合がある。また、倒置法などで質問が書かれている場合（例えば、「生まれたのいつだっけ？山田、○○チームの。」）、あらゆる態様に対応したルールを予め定めておくことは困難であるため、適切に対象を抽出することができない場合がある。
【０００８】
また、属性抽出については、文書集合から対象の属性を抽出する研究は多いが、対象の属性を質問する質問文に含まれる属性を特定する手法は提案されていない。
【０００９】
本発明は上記事実を考慮して成されたもので、対象の属性を質問する質問文から精度良く対象及び属性を抽出して、適切な応答を出力することができる質問応答装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明の質問応答装置は、対象の属性を質問する質問文の対象となる単語である対象部分に対象であることを示す対象ラベルが付与された複数の学習用質問文を用いて学習された対象モデルに基づいて、対象及び属性が未知の未知質問文から対象となる単語である対象部分を抽出する対象抽出手段と、同じ属性を示す複数の単語の代表として予め定められた語（以下、「属性語」とよぶ）を用いて、前記複数の学習用質問文の各々についての、学習用質問文に付与された属性語と該学習用質問文から抽出された特徴量との対応付けを学習した属性モデルと、前記未知質問文から抽出された特徴量と、に基づいて、前記未知質問文に対応する属性語を判定する属性判定手段と、前記対象抽出手段により抽出された対象部分と前記属性判定手段により判定された属性語とを用いて、対象となる単語と、属性語と、該対象を表す単語の該属性語に対する回答と、が対応付けられたデータベースから、回答に対応付けられた属性語と前記属性判定手段により判定された属性語とが一致し、かつ、回答に対応付けられた対象となる単語と前記対象抽出手段により抽出された対象部分とが一致する回答を検索する処理により、前記未知質問文における対象部分の属性に対する回答を検索して応答を出力する応答出力手段と、を含んで構成されている。
【００１２】
このように、学習用質問文を用いて学習された対象モデル及び属性モデルに基づいて、未知質問文に対して、対象の抽出、及び属性の判定を行うため、十分なバリエーションの学習用質問文を用いることで、対象の属性を質問する質問文から精度良く対象及び属性を抽出して、適切な応答を出力することができる。
【００１３】
また、前記対象抽出手段は、前記未知質問文の品詞が対象候補として予め定めた品詞である単語の表層を特定の記号で置き換えた上で、前記学習用質問文の各々において、品詞が対象候補として予め定めた品詞である単語の表層を前記特定の記号で置き換えて学習された対象モデルに基づいて、前記未知質問文から前記対象部分を抽出することができる。これにより、対象モデルが一般化され、未知の単語についても適切に対象部分として抽出可能となる。
【００１４】
また、前記属性判定手段は、前記複数の学習用質問文の各々の対象部分の表層以外の部分から抽出された特徴量を用いて学習された属性モデルと、前記未知質問文から抽出された特徴量とに基づいて、前記未知質問文に対応する属性語を判定することができる。これにより、学習用質問文に出現する対象と属性との組み合わせにおける表層の偏り等の影響を抑制し、属性の判定精度を向上させることができる。
【００１５】
また、本発明の質問応答装置は、前記属性語に応じて前記学習用質問文の各々に特徴的に出現する単語を抽出して生成した前記属性語毎の特徴単語リストと、前記未知質問文に含まれる単語とに基づいて、前記属性判定手段により判定された属性語の確からしさを検証する属性検証手段を含んで構成することができる。これにより、属性の判定結果の信頼性を向上させることができる。
【００１６】
また、本発明の質問応答装置は、前記複数の学習用質問文を用いて、前記対象モデル及び前記属性モデルを生成する学習手段、並びに、前記複数の学習用質問文を用いて、前記特徴単語リストを生成するリスト生成手段を含んで構成することができる。このように、上述の対象モデル、属性モデル、及び特徴単語リストを生成する機能を併せ持つことができる。
【００１７】
また、本発明の質問応答方法は、対象抽出手段が、対象の属性を質問する質問文の対象となる単語である対象部分に対象であることを示す対象ラベルが付与された複数の学習用質問文を用いて学習された対象モデルに基づいて、対象及び属性が未知の未知質問文から対象となる単語である対象部分を抽出し、属性判定手段が、同じ属性を示す複数の単語の代表として予め定められた語（以下、「属性語」とよぶ）を用いて、前記複数の学習用質問文の各々についての、学習用質問文に付与された属性語と該学習用質問文から抽出された特徴量との対応付けを学習した属性モデルと、前記未知質問文から抽出された特徴量と、に基づいて、前記未知質問文に対応する属性語を判定し、応答出力手段が、前記対象抽出手段により抽出された対象部分と前記属性判定手段により判定された属性語とを用いて、対象となる単語と、属性語と、該対象を表す単語の該属性語に対する回答と、が対応付けられたデータベースから、回答に対応付けられた属性語と前記属性判定手段により判定された属性語とが一致し、かつ、回答に対応付けられた対象となる単語と前記対象抽出手段により抽出された対象部分とが一致する回答を検索する処理により、前記未知質問文における対象部分の属性に対する回答を検索して応答を出力する方法である。
【００１８】
また、本発明の質問応答プログラムは、コンピュータを、上記の質問応答装置を構成する各手段として機能させるためのプログラムである。
【発明の効果】
【００１９】
本発明の質問応答装置、方法、及びプログラムによれば、学習用質問文を用いて学習された対象モデル及び属性モデルに基づいて、未知質問文に対して、対象の抽出、及び属性の判定を行うため、十分なバリエーションの学習用質問文を用いることで、対象の属性を質問する質問文から精度良く対象及び属性を抽出して、適切な応答を出力することができる、という効果を有する。
【図面の簡単な説明】
【００２０】
【図１】本実施の形態に係る質問応答装置の機能的構成を示すブロック図である。
【図２】学習データの一例を示す図である。
【図３】対象ラベルの付与及び特定記号への置き換え後の学習データの一例を示す図である。
【図４】学習データから素性を生成するためのテンプレートの一例を示す図である。
【図５】属性番号と抽出された特徴量との一例を示す図である。
【図６】未知質問文の形態素解析結果の一例を示す図である。
【図７】特定記号への置き換え後の未知質問文の一例を示す図である。
【図８】未知質問文へ対象ラベルを付与した一例を示す図である。
【図９】本実施の形態における学習処理ルーチンを示すフローチャートである。
【図１０】本実施の形態における応答処理ルーチンを示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００２２】
本実施の形態に係る質問応答装置１０は、ＣＰＵと、ＲＡＭと、後述する学習処理及び応答処理を含む質問応答処理ルーチンを実行するためのプログラム及び各種データを記憶したＲＯＭとを備えたコンピュータで構成されている。また、記憶手段としてＨＤＤを設けてもよい。
【００２３】
このコンピュータは、機能的には、図１に示すように、学習部１１と応答部３１とを含んだ構成で表すことができ、学習部１１はさらに、対象モデル生成部１２と、属性モデル生成部１３と、特徴単語リスト生成部１４とを含んだ構成で表すことができ、応答部３１はさらに、対象抽出部３２と、属性判定部３３と、属性検証部３４と、応答出力部３５とを含んだ構成で表すことができる。
【００２４】
まず、学習部１１の各部について詳述する。
【００２５】
対象モデル生成部１２は、対象の属性を質問する質問文を学習データとして複数取得する。学習データにおいて対象及び属性は既知である。学習データの一例を図２に示す。図２の例は、「△△テレビ」という対象の「ｕｒｌ」という属性を質問する質問文である。このような学習データの各々を形態素解析し、各単語の表層及び品詞の情報を得る。形態素解析後の学習データにおいて、対象となる単語に、対象であることを示す対象ラベルを付与する。図２の例では、質問中に「△△テレビ」という対象を必ず含めるように作成しているため、対象となる単語「△△テレビ」に対して、学習データ中での「△△テレビ」の出現位置に対象ラベルを付与する。
【００２６】
また、対象モデル生成部１２は、学習データの各々の対象となり得る単語、例えば、品詞が固有名詞等の対象候補として予め定めた品詞である単語の表層を特定の記号に置き換える。図３に、対象となる単語に対象ラベルを付与し、対象となり得る単語の表層を特定の記号に置き換えた学習データの一例を示す。図３の例では、最初のフィールドが表層、二つ目のフィールドが品詞、三つ目のフィールドが対象ラベルとなっている。対象ラベルとして、対象となる単語を表す「B-Tagged」及び「I-Tagged」と、対象ではない単語を表す「O」を用いている。なお、BはBegin（対象の始まり）、IはInside（対象中）、及びOはOtherの意味である。また、特定の記号としてアスタリスク（＊）を用いて、対象となり得る単語の表層を置き換えている。ここでは、形態素解析にＮＴＴによるＪＴＡＧを用い、品詞が、名詞：名：固有、名詞、名詞接尾辞：名詞、Ｎｕｍｂｅｒ、名詞：固有、名詞：形容、及びUndefの単語の表層を＊に置き換えている。このように固有名詞等を特定の記号へ置き換えておくことで、例えば、品詞が名詞の単語の後に、品詞が名詞：固有：地の単語が続くような箇所なども一般化して、対象ラベル（「B-Tagged」及び「I-Tagged」）を付与することができる。
【００２７】
さらに、対象モデル生成部１２は、上記のような処理を施した学習データを用いて、系列ラベリングの手法により、対象及び属性が未知の未知質問文に対象ラベルを付与するための対象モデル２１を学習する。具体的には、条件付き確率場（Conditional RandomFields；ＣＲＦ）を用いて学習する。ＣＲＦは、固有表現抽出など、系列ラベリング手法で一般的な手法である。ＣＲＦは、学習時、上記のような学習データから素性を生成し、学習を行う。この素性を生成するために、素性の生成方法を記述したテンプレートとして、例えば、図４に示すようなテンプレートを用いることができる。このテンプレートは、ＣＲＦ＋＋というソフトウェアの書式に従って記述されたもので、ある単語について、そのラベルを推定する場合、３つ前、３つ後までの単語の情報を用いた素性を生成することを示す。上記の学習データからテンプレートにより生成した素性を用いて、ＣＲＦにより対象モデル２１を学習する。
【００２８】
属性モデル生成部１３は、学習データの各々に、各学習データに含まれる属性を表す単語が、Ｎ個の属性のいずれの属性に属するかを示す属性番号を付与する。属性の数Ｎは、用いた全学習データに含まれる属性の数によって定まる。属性は、例えば、birthDate、Category、MVP、RadioStation、actors、address、affiliation、age、airdate、airtime等を用いることができ、それぞれの属性番号を、例えば、１，２，・・・，Ｎとすることができる。
【００２９】
また、属性モデル生成部１３は、学習データの各々の表層及び品詞のうち、対象部分となる単語の表層を除外した部分から、学習データ毎に特徴量を抽出する。特徴量としては、単語ユニグラム、品詞、及び単語バイグラムを用いる。これらの特徴量は全て、その特徴が存在すれば１、存在しなければ０というバイナリ素性である。
【００３０】
例えば、「甲野太郎の誕生日は」（対象：甲野太郎、属性：birthDate）という学習データの場合、まず、対象部分の表層を特徴量抽出の対象から除外する。そうすることで、学習データ中に「甲野太郎」の「誕生日」を質問する質問文が多い場合に、「甲野太郎」という文字列のみによって、属性が「誕生日」であると判定されてしまうことを防ぐことができる。具体的には、「甲野太郎の誕生日は」という学習データの形態素解析結果から、「甲野」、「太郎」、「の」、「誕生日」、及び「は」という単語系列を得る。また、それぞれの単語の品詞として、「名詞：固有：姓：組織」、「名詞：名：固有」、「格助詞：連体」、「名詞」、及び「連用助詞」を得る。ここから、単語ユニグラムとして、対象である「甲野太郎」の部分を除外した「の」、「誕生日」、及び「は」のそれぞれの単語の存在をバイナリ特徴量として抽出する。また、単語バイグラムとして、「の−誕生日」、「誕生日−は」、及び「は−Ｅ」の存在をバイナリ特徴量として抽出する。なお、「Ｅ」は文末を表すシンボルである。加えて、「名詞：固有：姓：組織」、「名詞：名：固有」、「格助詞：連体」、「名詞」、及び「連用助詞」のそれぞれの存在をバイナリ特徴量として抽出する。なお、固有表現抽出器を用いて、固有表現タイプの存在を特徴量として加えてもよい。
【００３１】
上記の「甲野太郎の誕生日は」という学習データから得られる具体的な特徴量は、例えば、図５に示すような特徴量となる。図５の例では、最初のフィールドは属性番号である。例えば、属性の数Ｎが１１９の場合、属性番号は１〜１１９のいずれかになり、図５の例では属性番号が１８であることを示している。属性番号以降のフィールドが特徴量であり、特徴量の値が０となるところは省略している。例えば、４５８０は「の−誕生日」という単語バイグラムに対応し、４７０７は「は−Ｅ」という単語バイグラムに対応する。また、１０７８４は「名詞」の存在に対応し、１０７８８は「名詞：名：固有」の存在に対応する。
【００３２】
さらに、属性モデル生成部１３は、上記のように抽出された特徴量を用いて、Multiclass ＳＶＭ（support vector machine）により、未知質問文に含まれる属性を表す単語が属する属性を判定するための属性モデル２２の学習を行う。Multiclass ＳＶＭは、分類性能が高いとされるＳＶＭを多クラス問題に拡張したものである。具体的には、全部でＮ個の属性があるとき、ある特徴量について、正解の属性に対するスコアを、その他の属性に対するスコアよりも高くするような重みを学習する。Ｎ個の属性に対応するＮ個の重みベクトルが学習され、ある特徴量ベクトルについて、それぞれの重みベクトルを掛け合わせたとき、正解の属性に対応する重みベクトルを用いたときのスコアが最も高くなるように、重みベクトルを決定する。上記の「甲野太郎の誕生日は」という学習データの例であれば、１〜１１９までの属性のうち、属性番号１８の属性についてのスコアが最も高くなるように１１９個の重みベクトルを学習する。この重みは、学習データ全体について、正解の属性が、それぞれの学習データについてスコアが高くなるように決定される。
【００３３】
なお、属性モデル２２は、未知質問文に含まれる属性を表す単語がＮ個の属性のいずれに属するかを判定するためのモデルであるため、未知質問文に含まれる属性を表す単語がいずれの属性にも属さない場合には、後述する属性判定部３３で誤った属性と判定してしまう。例えば、「甲野太郎のデビュー日は」という質問であっても、属性を表す単語「デビュー日」に対応した属性が存在しない場合は、属性をbirthDateと判定してしまう可能性がある。
【００３４】
特徴単語リスト生成部１４は、上記のような誤動作を防止するため、後述する属性検証部３４で用いる特徴単語リスト２３を生成する。特徴単語リスト２３は、属性に応じて学習データの対象部分以外の部分に特徴的に出現する単語を、属性毎に列挙したものである。例えば、判定された属性が「birthDate」であれば、「誕生日」や「生まれ」などの単語が入っている質問文であれば、属性はbirthDateであると認定（受理）し、そうでなければ、birthDateではない（棄却）という検証結果が得られるような特徴単語リスト２３を、統計検定を用いる手法で生成する。
【００３５】
具体的には、まず、各属性について、学習データ内の各単語の出現頻度を取得する。そして、その属性に出現した単語のそれぞれについて、その属性以外の属性における出現頻度と比較し、有意に当該属性に多く出現しているかどうかを、尤度比検定によって確認する。検定の結果、有意（例えば、ｐ＜0.001）に多いことが分かれば、その単語を当該属性の特徴単語として、特徴単語リスト２３に追加する。ここで、単語の出現頻度は、これまで同様、対象となる単語は除いて計算する。
【００３６】
例えば、上記のように、属性の数Ｎが１１９の場合、１１９の特徴単語リストが生成される。以下に、特徴単語リストの一部（属性「birthDate」及び「nearestStation」）の一例を示す。
【００３７】
birthDate：たんじょうび、日、生まれ、生年月日、誕生日
nearestStation：ドーム、最寄、最寄り、球場、行、行き方、近、降り、電車、駅
【００３８】
次に、応答部３１の各部について詳述する。
【００３９】
対象抽出部３２は、対象モデル生成部１２における学習データに対する処理と同様に、入力された未知質問文を形態素解析し、対象ラベルを付与すると共に、対象となり得る単語を特定の記号で置き換えた上で、対象モデル２１を用いて、未知質問文から対象を抽出する。
【００４０】
例えば、「甲野太郎の誕生日は」という未知質問文が入力された場合の形態素解析結果の一例を図６に、特定の記号（＊）での置き換え処理後のデータの一例を図７に示す。学習データに対する処理と異なる点は、この時点では対象となる単語が不明であるため、B-Tagged及びI-Taggedの対象ラベルが付与されておらず、全てOの対象ラベルが付与されている点である。また、対象ラベルのフィールドの前の三つ目のフィールドに単語の表層が入っている点である。三つ目のフィールドは、対象ラベル及び属性の推定で用いられないフィールドとなっており、各行がどの単語についての行であるかを表す付加情報として含められている。
【００４１】
このように処理した未知質問文のデータを、対象モデル２１により処理（デコード処理とも呼ばれる）することで、対象となる単語にB-Tagged及びI-Taggedの対象ラベルを付与する。対象ラベルを付与した結果を図８に示す。最初の行は、推定された系列の尤度である。個々の行の最後のフィールドは、個々の対象ラベルの周辺確率である。これは、推定した対象ラベルの確からしさ（信頼度）を示す値である。
【００４２】
また、対象抽出部３２は、B-Tagged及びI-Taggedが付与された単語の表層を文字列として結合した部分を抽出することにより、対象部分を抽出する。図８の例では、「甲野太郎」を抽出することができる。なお、アルゴリズム上、B-Tagged及びI-Taggedの対象ラベルが、Oの対象ラベルを挟んで、複数箇所に付与される可能性がある。その場合は、信頼度の平均が最も大きな箇所を抽出すればよい。図８の例で、「甲野太郎」の信頼度は、(log(0.999666)+log(0.999650))/2として計算することができる。
【００４３】
属性判定部３３は、属性モデル生成部１３における特徴量の抽出処理と同様に、入力された未知質問文の対象部分の表層を除いた部分から特徴量を抽出し、属性モデル２２を用いて、最もスコアが高くなる重みベクトルに対応する属性番号から、未知質問文に含まれる属性を判定する。
【００４４】
属性検証部３４は、特徴単語リスト２３を参照し、属性判定部３３で判定された属性に対応する特徴単語が、未知質問文に含まれているか否か判定することによって、判定結果の検証を行う。例えば、「甲野太郎の誕生日は」という未知質問文に対して、birthDateという属性が判定された場合には、上記の例のように、特徴単語として「たんじょうび、日、生まれ、生年月日、誕生日」という各特徴単語が特徴単語リスト２３に定められているため、これらのうちいずれかを未知質問文に含むか否かにより検証する。含むか否かの判定は、正規表現を用いた文字列マッチにより行うことができる。
【００４５】
なお、属性検証部３４は、特異値検出に用いられるone-class ＳＶＭ  を用いてもよい。これは、Multiclass ＳＶＭで用いた学習データのうち、各属性に対応する学習データのみを用いて、各クラスの特徴空間をone-class ＳＶＭでモデル化することによって行うことができる。
【００４６】
また、属性判定及び検証では、抽出された対象との関係を用いることで精度を向上させることができる。例えば、birthDateは対象が人名の場合には、属性として判定されることに問題は無いが、対象が場所であれば、属性としてbirthDateは取りえない。これを実現するためには、対象のクラス判定を行う必要がある。対象とその対象のクラス、及びその対象のクラスの取り得る属性の対応表を予め準備しておき、判定された属性が、抽出された対象に対してとり得る属性か否かにより、検証することができる。
【００４７】
応答出力部３５は、対象抽出部３２で抽出された対象と、属性判定部３３で判定され、属性検証部３４で検証された属性を用いて、データベースから質問に対する回答を検索して、検索された回答を応答として出力する。例えば、データベースとしてＲＤＢ（Relational Database）が用いられている場合には、ＳＱＬによる問い合わせ文として、例えば、「select birthDate from データベース where name like甲野太郎」のような問い合わせ文を作成する。これは、「甲野太郎」の「誕生日」を取得するものである。この問い合わせ文に基づいてＲＤＢを検索し、回答がＲＤＢに存在すれば、その回答を出力する。
【００４８】
次に、本実施の形態の質問応答装置１０の作用について説明する。学習段階において、複数の学習データが質問応答装置１０に入力されると、学習部１１において、図９に示す学習処理ルーチンが実行される。また、応答段階において、未知質問文が質問応答装置１０に入力されると、応答部３１において、図１０に示す学習処理ルーチンが実行される。以下、各処理について詳述する。
【００４９】
まず、学習処理ルーチンでは、ステップ１００で、対象モデル生成部１２が、対象及び属性が既知である対象の属性を質問する質問文を学習データとして複数取得し、学習データの各々を形態素解析して、各単語の表層及び品詞の情報を得る。次に、ステップ１０２で、対象モデル生成部１２が、形態素解析後の学習データにおいて、対象となる単語を示す対象ラベルを付与する。次に、ステップ１０４で、対象モデル生成部１２が、学習データの各々の対象となり得る単語の表層を特定の記号に置き換える。次に、ステップ１０６で、対象モデル生成部１２が、上記ステップ１００〜１０４の処理を施した学習データを用いて、系列ラベリングの手法により、対象及び属性が未知の未知質問文に対象ラベルを付与するための対象モデル２１を学習する。学習により生成した対象モデル２１は所定の記憶領域に記憶する。
【００５０】
次に、ステップ１０８で、属性モデル生成部１３が、学習データの各々に、各学習データに含まれる属性を示す属性番号を付与する。次に、ステップ１１０で、属性モデル生成部１３が、学習データの各々の表層及び品詞のうち、対象部分となる単語の表層を除外した部分から、学習データ毎に特徴量を抽出する。次に、ステップ１１２で、属性モデル生成部１３が、上記のように抽出された特徴量を用いて、Multiclass ＳＶＭにより、未知質問文の属性を判定するための属性モデル２２の学習を行う。学習により生成した属性モデル２２を所定の記憶領域に記憶する。
【００５１】
次に、ステップ１１４で、特徴単語リスト生成部１４が、各属性について、学習データ内の対象となる単語以外の各単語の出現頻度を取得し、他の属性における出現頻度と比較し、有意に当該属性に多く出現している単語を抽出して、属性毎の特徴単語リスト２３を生成する。生成した特徴単語リスト２３を所定の記憶領域に記憶し、学習処理ルーチンを終了する。
【００５２】
次に、応答処理ルーチンでは、ステップ１２０で、対象抽出部３２が、入力された未知質問文を形態素解析し、対象ラベルを付与すると共に、対象となり得る単語の表層を特定の記号で置き換えた上で、対象モデル２１を用いて、未知質問文から対象部分を抽出する。
【００５３】
次に、ステップ１２２で、属性判定部３３が、入力された未知質問文の上記ステップ１２０で抽出された対象となる単語の表層を除いた部分から特徴量を抽出し、属性モデル２２を用いて、最もスコアが高くなる重みベクトルに対応する属性番号から、未知質問文の属性を判定する。
【００５４】
次に、ステップ１２４で、属性検証部３４が、特徴単語リスト２３を参照し、上記ステップ１２２で判定された属性に対応する特徴単語が、未知質問文に含まれているか否か判定することによって、判定結果の検証を行う。
【００５５】
次に、ステップ１２６で、属性検証部３４が、上記ステップ１２４の検証結果が受理か棄却かを判定する。棄却の場合には、ステップ１２８へ移行し、属性の判定結果で、スコアが次点のものが存在するか否かを判定し、存在する場合には、ステップ１２４に戻って、スコアが次点の判定結果について、検証の処理を繰り返す。
【００５６】
また、上記ステップ１２６で、受理と判定された場合には、ステップ１３０へ移行して、応答出力部３５が、上記ステップ１２０で抽出された対象と、上記ステップ１２６で受理された属性を用いて、データベースから質問に対する回答を検索する。
【００５７】
次に、ステップ１３２で、応答出力部３５が、データベースから対象及び属性に対応する回答が検索されたか否かを判定する。検索された場合には、ステップ１３４へ移行して、検索された回答を応答として出力して、応答処理ルーチンを終了する。検索されなかった場合、及び上記ステップ１２８で否定判定された場合には、ステップ１３６へ移行して、エラーを出力して、応答処理ルーチンを終了する。
【００５８】
以上説明したように、本実施の形態の質問応答装置によれば、対象ラベルを付与した学習データを用いて学習された対象モデルに基づいて、未知質問文から対象を抽出するため、学習データに十分なバリエーションがあれば、倒置文など多様な質問記述に対応できるようになる。また、学習データ中の固有名詞などの対象になり得る単語を特定の記号に置き換えて一般化してから、系列を学習することで、未知の単語についても対象として認識できるようになる。加えて、対象の候補が複数あったとしても、確率的に対象となり易い方を選択することで、選択のためのアドホックなルールを記述しなくてもよくなる。
【００５９】
また、属性を示す属性番号を付与した学習データと、その学習データの対象の表層を除外した部分から抽出された特徴量との対応付けを学習した属性モデルに基づいて、未知質問文の属性を判定するため、属性の判定精度が向上する。さらに、属性毎の特徴単語リストに基づいて、判定結果を検証するため、判定結果の信頼性を向上させることができる。
【００６０】
これにより、対象の属性を問う質問文から精度良く対象及び属性を抽出して、適切な応答を出力することができる。その結果、ユーザの知的活動の効率を高めることができる。
【００６１】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【００６２】
例えば、上記実施の形態では、未知質問文の属性を判定するために、未知質問文から特徴量を抽出する際に、対象部分の表層以外の部分から特徴量を抽出する場合について説明したが、対象部分の表層を除外することなく特徴量を抽出するようにしてもよい。
【００６３】
また、上記実施の形態では、学習部と応答部とを１つのコンピュータで構成する場合について説明したが、別々のコンピュータで構成するようにしてもよい。
【００６４】
また、上述の質問応答装置は、内部にコンピュータシステムを有しているが、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【００６５】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。また、本発明は、周知のコンピュータに媒体もしくは通信回線を介して、プログラムをインストールすることによっても実現可能である。
【符号の説明】
【００６６】
１０   質問応答装置
１１   学習部
１２   対象モデル生成部
１３   属性モデル生成部
１４   特徴単語リスト生成部
２１   対象モデル
２２   属性モデル
２３   特徴単語リスト
３１   応答部
３２   対象抽出部
３３   属性判定部
３４   属性検証部
３５   応答出力部
【図１】
0005812534.tif 000002
【図２】
0005812534.tif 000003
【図３】
0005812534.tif 000004
【図５】
0005812534.tif 000005
【図６】
0005812534.tif 000006
【図７】
0005812534.tif 000007
【図８】
0005812534.tif 000008
【図９】
0005812534.tif 000009
【図１０】
0005812534.tif 000010
【図４】
0005812534.tif 000011