(57)【要約】      （修正有）【課題】質問文に対する適切かつ多様な回答候補を得る回答候補生成装置、回答候補生成方法及びプログラムを提供する。【解決手段】回答候補生成装置１００は、文パターンを生成する文パターン生成部３０と、質問文に対する回答単語の各々と質問文に含まれる単語の各々とに類似する単語の各々を、概念ベクトルのスコアに基づいて求めて、拡張回答単語候補とする拡張単語候補生成部３２と、言語モデルのスコア及び概念ベクトルのスコアに基づく統合スコアが上位Ｎ個の拡張回答単語候補を求める拡張回答単語候補リランキング部３４と、上位Ｎ個の拡張回答単語候補と、質問文に対する回答単語とを含む単語集合に対して、概念ベクトルに基づいてクラスタリングを行うクラスタリング部３６と、を含み、予め定められた条件を満たすまで拡張単語候補生成、拡張単語候補リランキング及びクラスタリングの処理を繰り返す。【選択図】図１
2020074205.tif 000002
【特許請求の範囲】
【請求項１】
質問文に対する回答単語の各々と前記質問文に含まれる単語の各々とに類似する単語の各々を、前記単語の概念を表す概念ベクトルのスコアに基づいて求めて、拡張回答単語候補とする拡張単語候補生成部と、
前記質問文と前記拡張回答単語候補との組み合わせに対する、予め定められた言語モデルのスコア、及び前記拡張回答単語候補についての単語の概念を表す概念ベクトルのスコアに基づく統合スコアが上位の拡張回答単語候補と、前記質問文に対する回答単語とを含む単語集合に対して、前記概念ベクトルに基づいてクラスタリングを行うクラスタリング部と、
を含む回答候補生成装置。
【請求項２】
予め定められた条件を満たすまで前記拡張単語候補生成部、及び前記クラスタリング部の処理を繰り返す条件判定部を更に含み、
前記条件判定部による繰り返し処理においては、
前記拡張単語候補生成部は、前記クラスタリング部で得られたクラスタ毎に、前記クラスタに属する単語の各々と前記質問文に含まれる単語の各々とに類似する単語の各々を、前記概念ベクトルのスコアに基づいて求めて、前記拡張回答単語候補とする、
請求項１に記載の回答候補生成装置。
【請求項３】
質問文に対する回答単語の各々と前記質問文に含まれる単語の各々とに類似する単語の各々を、前記単語の概念を表す概念ベクトルのスコアに基づいて求めて、拡張回答単語候補とする拡張単語候補生成部と、
前記質問文における所定の単語を拡張回答単語候補に置き換えたときに得られるスコア、及び前記拡張回答単語候補についての前記概念ベクトルのスコアに基づく統合スコアが上位Ｎ個の拡張回答単語候補を求める拡張回答単語候補リランキング部と、
前記上位Ｎ個の拡張回答単語候補と、前記質問文に対する回答単語とを含む単語集合に対して、前記概念ベクトルに基づいてクラスタリングを行うクラスタリング部と、
予め定められた条件を満たすまで前記拡張単語候補生成部、前記拡張回答単語候補リランキング部、及び前記クラスタリング部の処理を繰り返す条件判定部と、
を含み、
前記条件判定部による繰り返し処理においては、
前記拡張単語候補生成部は、前記クラスタリング部で得られたクラスタ毎に、前記クラスタに属する単語の各々と前記質問文に含まれる単語の各々とに類似する単語の各々を、前記概念ベクトルのスコアに基づいて求めて、前記拡張回答単語候補とする回答候補生成装置。
【請求項４】
拡張単語候補生成部が、質問文に対する回答単語の各々と前記質問文に含まれる単語の各々とに類似する単語の各々を、前記単語の概念を表す概念ベクトルのスコアに基づいて求めて、拡張回答単語候補とするステップと、
クラスタリング部が、前記質問文と前記拡張回答単語候補との組み合わせに対する、予め定められた言語モデルのスコア、及び前記拡張回答単語候補についての単語の概念を表す概念ベクトルのスコアに基づく統合スコアが上位の拡張回答単語候補と、前記質問文に対する回答単語とを含む単語集合に対して、前記概念ベクトルに基づいてクラスタリングを行うステップと、
を含む回答候補生成方法。
【請求項５】
拡張単語候補生成部が、質問文に対する回答単語の各々と前記質問文に含まれる単語の各々とに類似する単語の各々を、前記単語の概念を表す概念ベクトルのスコアに基づいて求めて、拡張回答単語候補とするステップと、
拡張回答単語候補リランキング部が、前記質問文における所定の単語を拡張回答単語候補に置き換えたときに得られるスコア、及び前記拡張回答単語候補についての前記概念ベクトルのスコアに基づく統合スコアが上位Ｎ個の拡張回答単語候補を求めるステップと、
クラスタリング部が、前記上位Ｎ個の拡張回答単語候補と、前記質問文に対する回答単語とを含む単語集合に対して、前記概念ベクトルに基づいてクラスタリングを行うステップと、
条件判定部が、予め定められた条件を満たすまで前記拡張単語候補生成部、前記拡張回答単語候補リランキング部、及び前記クラスタリング部の処理を繰り返すステップと、
を含み、
前記条件判定部による繰り返し処理においては、
前記拡張単語候補生成部は、前記クラスタリング部で得られたクラスタ毎に、前記クラスタに属する単語の各々と前記質問文に含まれる単語の各々とに類似する単語の各々を、前記概念ベクトルのスコアに基づいて求めて、前記拡張回答単語候補とする回答候補生成方法。
【請求項６】
コンピュータを、請求項１〜請求項３の何れか１項に記載の回答候補生成装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回答候補生成装置、回答候補生成方法、及びプログラムに係り、特に、対話システムで使用する回答候補を生成するための回答候補生成装置、回答候補生成方法、及びプログラムに関する。
【背景技術】
【０００２】
一般的に、ロボット等の対話システムと話をする際、ユーザから発話を行い、返答することが多かった。しかし、最近では、システム側から話しかける雑談対話のようなものも存在し、シナリオベースで展開されている。システムから何かを問うといった発話の場合、相手の回答に対して、こちらがその回答を認識し、再び発話する必要がある。このようなシナリオを生成する際、システムの質問に対して、どういった回答の可能性があるかを人手で予測し、シナリオに起こすことが多い。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−２１９８７２号公報
【非特許文献】
【０００４】
【非特許文献１】自然対話プラットフォームの構築と音声対話玩具への応用． 大西 可奈子他． 人工知能学会研究会資料, SIG-SLUD-B502-14, 2015
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、相手の返答パターンは膨大であるため、対話システムにおいて想定される回答の多くを網羅することは困難であり、実行するにはコストが膨大であるという問題がある。
【０００６】
本発明は、上記問題点を解決するために成されたものであり、質問文に対する適切かつ多様な回答候補を得ることができる回答候補生成装置、回答候補生成方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明に係る回答候補生成装置は、質問文に対する回答単語の各々と前記質問文に含まれる単語の各々とに類似する単語の各々を、前記単語の概念を表す概念ベクトルのスコアに基づいて求めて、拡張回答単語候補とする拡張単語候補生成部と、前記質問文と前記拡張回答単語候補との組み合わせに対する、予め定められた言語モデルのスコア、及び前記拡張回答単語候補についての単語の概念を表す概念ベクトルのスコアに基づく統合スコアが上位の回答単語候補と、前記質問文に対する回答単語とを含む単語集合に対して、前記概念ベクトルに基づいてクラスタリングを行うクラスタリング部と、を含んで構成されている。
【発明の効果】
【０００８】
また、本発明の回答候補生成装置、回答候補生成方法、及びプログラムによれば、質問文に対する適切かつ多様な回答候補を得ることができる、という効果が得られる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態に係る回答候補生成装置の構成を示すブロック図である。
【図２】クラスタリングを使用した場合と使用していない場合の拡張語の探索イメージの比較例の図である。
【図３】本発明の実施の形態に係る回答候補生成装置における回答候補生成処理ルーチンを示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００１１】
＜本発明の実施の形態に係る概要＞
【００１２】
まず、本発明の実施の形態における概要を説明する。
【００１３】
上述した問題点に対して、本実施の形態では、大量のテキストを用いた統計情報、質問の言語情報及び統計情報を利用し、対話システムがした質問文に対して、ユーザの回答内容を予測することで、対話シナリオの作成支援を実現する。
【００１４】
本実施の形態の回答候補生成装置は、対話システムのシナリオに関して、システムが発する質問文と、その質問文の回答となる単語（回答シード）を数語与えることで、回答単語を拡張し、質問に対する様々な回答となる単語を出力する装置である。
【００１５】
本実施の形態では、ブログ記事などの大量のテキストを統計処理し、単語の意味を表現する概念ベクトルを作成する。概念ベクトルの類似度に基づいて、出力する拡張単語候補を決定する。また、質問文を言語解析して、文パターンを生成する。概念ベクトルに基づいて出力された拡張単語候補を文パターンに当てはめて、言語モデル的に妥当であるかを判定することで、質問に対して妥当な回答となる単語をより高精度に出力できることに特徴がある。
【００１６】
また、上記手法によって出力した拡張回答単語の集合を回答シードとして再度入力することでより多様な拡張単語候補を入手することもできる。このとき、再度入力する拡張単語候補を意味が近いもの同士でまとめるクラスタリングを行い、各クラスタで単語を拡張することで、より多様な拡張単語候補を得ることができるという特徴がある。
【００１７】
＜本発明の実施の形態に係る回答候補生成装置の構成＞
【００１８】
次に、本発明の実施の形態に係る回答候補生成装置の構成について説明する。図１に示すように、本発明の実施の形態に係る回答候補生成装置１００は、ＣＰＵと、ＲＡＭと、後述する回答候補生成処理ルーチンを実行するためのプログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することが出来る。この回答候補生成装置１００は、機能的には図１に示すように入力部１０と、演算部２０と、出力部５０とを備えている。
【００１９】
入力部１０は、質問文、及び質問文に対する回答単語の各々（以下「（元の）回答シード」とも記載する）の入力を受け付ける。本実施の形態では、質問文として「できたてで食べたい食べ物は？」を受け付け、回答単語の各々として、「パン、揚げ物、ご飯、麺類、焼肉」を受け付けた場合を例に説明する。
【００２０】
演算部２０は、概念ベクトルモデル生成部２２と、概念ベクトルモデル２４と、言語モデル生成部２６と、言語モデル２８と、文パターン生成部３０と、拡張単語候補生成部３２と、拡張回答単語候補リランキング部３４と、クラスタリング部３６と、条件判定部３８とを含んで構成されている。
【００２１】
概念ベクトルモデル生成部２２は、テキスト集合に含まれる単語の各々について、単語の概念を表す概念ベクトルを生成し、概念ベクトルモデル２４として記憶する。概念ベクトルは、テキスト集合から単語の出現情報に基づくものであり、本実施の形態では、概念ベクトルの作成手法はニューラルネットワークを活用したもの（Word2vec）を使用する。また、特異値分解を利用したものなど任意のものを使用して良い。但し、後述する拡張単語候補生成部３２では、複数の単語ベクトルを合成する処理を行うため、概念ベクトルモデル生成部２２で採用する概念ベクトルは、合成ベクトルとしても利用可能なものとする。合成方法については特に指定しない。
【００２２】
言語モデル生成部２６は、テキスト集合に含まれる単語のＮグラムに基づいて言語モデル２８を生成する。この時、言語モデルの作成方法は特に指定しないが、モデルを効率的に活用するため、「は」「が」などの助動詞を「＊」に置き換える。ただし、ここで作成する言語モデル２８は後述する文パターン生成部３０で生成する文パターンを使用できる形式であることとする。
【００２３】
文パターン生成部３０は、入力部１０で受け付けた質問文から、単語に置き換えるためのタグを付与した文パターンを生成する。具体的には、まず、文パターン生成部３０では、入力された質問文を構文解析する。ここでの構文解析とは、係り受け解析である。係り受け解析された質問文に対してまず、「なぜ」「なに」「いつ」「どこ」「誰」といった５Ｗ１Ｈの表現を検索する。該当した５Ｗ１Ｈの表現を、単語に置き換えるためのタグ（<cand>）に置き換える。次に、係り受け解析結果で動詞や動詞語幹が含まれる文節を見つける。この文節を基準文節として、残りの文節を基準文節の前と後に分け、それぞれで係り受け関係に従い文節を合成する。ここで、基準文節の前の文節と合成する場合には、まず基準文節の前に、タグを含む“<cand>  ＊”を付与（＊は任意の助詞）し、その後、係り受け関係によって文節を合成する。基準文節の後の文節との合成には、質問文の最後の文節の最後に置き換えタグ“<cand>”を付与し（句読点や疑問符は削除）、そこから係り受け関係に従い合成を繰り返す。
【００２４】
「できたてで食べたい食べ物は？」という質問文の基準文節は「食べ  たい」の部分となる。この基準文節の前の文節との合成では「<cand>  ＊   食べ  たい」「<cand>  ＊  できたて  で  食べ  たい」という２つの文パターンが生成され、後ろの文節との合成によって「食べ物  は  <cand>」、「食べ  たい  食べ物  は  <cand>」、「できたて で  食べ  たい  食べ物  は <cand>」という３つの文パターンが生成される。よって、合計で５つの文パターンが生成される。個々で置き換えタグ<cand>は自由に設定してよく、また「は」などの助詞を＊に置き換えた文パターンを作成しても良い。
【００２５】
以下は文パターンの出力例である。この例では、「は」などの助詞を＊に置き換えている。
【００２６】
文パターン１：<cand> * 食べ た い
文パターン２：<cand> * できたて * 食べ た い
文パターン３：食べ物 * <cand>
文パターン４：食べ た い 食べ物 * <cand>
文パターン５：できたて * 食べ た い 食べ物 * <cand>
【００２７】
拡張単語候補生成部３２は、入力部１０で受け付けた質問文に対する回答単語の各々と質問文に含まれる単語の各々とに類似する単語の各々を、概念ベクトルモデル２４に基づいて求めて、拡張回答単語候補とする。また、後述するクラスタリング部３６で得られたクラスタ毎に、クラスタに属する単語の各々と質問文に含まれる単語の各々とに類似する単語の各々を、概念ベクトルモデル２４に基づいて求めて、拡張回答単語候補とする。
【００２８】
拡張単語候補生成部３２では、概念ベクトルモデル２４の単語の概念ベクトルを用いて、出力となる拡張回答単語の候補となる単語を生成する。入力となる回答単語（回答シード）の集合をαとする。質問文を形態素解析した結果の集合Ｑを用意する。ここで、αにＱ中のある単語ｑを加えたときの集合α+ｑの単語の概念ベクトルの合成ベクトルを
【００２９】
【数１】
2020074205.tif 000003
【００３０】
と表すとすると、ある単語ｗの概念ベクトルのスコアは以下（１）式の通りに計算できる。
【００３１】
【数２】
2020074205.tif 000004
・・・（１）
【００３２】
ここで、
【００３３】
【数３】
2020074205.tif 000005
【００３４】
は、単語ｑの各々について作成された合成ベクトル
【００３５】
【数４】
2020074205.tif 000006
【００３６】
と単語ｗの概念ベクトル
【００３７】
【数５】
2020074205.tif 000007
【００３８】
との類似度である。類似度の計算方法は、数値が大きいほど類似性が高いことを表すものであれば任意のものを使用できる。概念ベクトルモデルに含まれる全ての単語に対して、上記のスコアを計算し、スコアを降順に並べたときの上位ｎ語を拡張回答単語候補として次の拡張回答単語候補リランキング部３４で使用する。
【００３９】
また、拡張単語候補生成部３２では、クラスタリング部３６によるクラスタリング後は、例えば、クラスタ毎の拡張回答単語候補の集合Ｑｋが得られるため、単語ｗについて、クラスタ毎に上記スコアを計算する。そして、全てのクラスタについて計算されたスコアを降順に並べたときの上位ｎ語を拡張回答単語候補として次の拡張回答単語候補リランキング部３４で使用する。なお、単語ｗについてクラスタ毎に計算されたスコアを合計したスコアを用いても良い。また、上記（１）式の計算に、拡張回答単語候補が属するクラスタに属する単語数を係数として導入した計算方法としても良い。例えば、全クラスタの単語数が１００であり、あるクラスタの単語数が５であれば、５／１００を係数とする等すればよい。
【００４０】
拡張回答単語候補リランキング部３４は、上位ｎ語の拡張回答単語候補の各々について、文パターンに含まれるタグを当該拡張回答単語候補に置き換えたときに得られる、言語モデル２８のスコア、及び当該拡張回答単語候補について計算された概念ベクトルのスコアに基づく統合スコアを算出し、統合スコアが上位Ｎ個の拡張回答単語候補を求める。また、クラスタリング部３６によるクラスタリング後も同様に、上位ｎ語の拡張回答単語候補の各々について、文パターンに含まれるタグを当該拡張回答単語候補に置き換えたときに得られる、言語モデル２８のスコア、及び当該拡張回答単語候補について計算された概念ベクトルのスコアに基づく統合スコアを算出し、統合スコアが上位Ｎ個の拡張回答単語候補を求める。クラスタリング後の統合スコアは、言語モデル２８のスコア、及び当該拡張回答単語候補が属するクラスタに属する単語数を係数として概念ベクトルのスコアに乗算したスコアに基づいて求められる。
【００４１】
具体的には、拡張回答単語候補リランキング部３４では、まず、拡張回答単語候補の各々について、文パターンの置き換えタグ<cand>の部分を当該拡張回答単語候補に置き換えることにより、拡張回答単語候補の各単語を文パターンに当てはめる。そして、置き換えた文を言語モデル２８に入力して言語モデル２８のスコアを計算する。ここで、言語モデル２８のスコア算出方法については任意のものを使用できる。本実施の形態では、例えば、一般的な言語モデルにおけるスコアとして、単語の条件付き確率を用い、以下（２）式の通り、拡張回答単語候補ｗのスコアＳｃｏｒｅ（ｗ）を計算する。
【００４２】
【数６】
2020074205.tif 000008
・・・（２）
【００４３】
ここで、上記（２）式において、ｗはある拡張回答単語候補、ｐは文パターンを表している。上記（２）式では、拡張回答単語候補ｗと全ての文パターンｐとの組み合わせの各々についてＳｃｏｒｅ（ｗ，ｐ）を計算し、ｌｅｎｇ(ｐ)を重みとして乗算して合計している。ｌｅｎｇ(ｐ)は文パターンｐの単語長を表している。単語長が長いほど、重みを大きくするようにして、単語長を考慮することで、長い文パターンの影響が大きくなる。長い文パターンの方が、修飾語などが含まれた質問文に近い文になるため長い文パターンで出現しやすい語の方が、より質問文に関連のある文書になる。
【００４４】
また、言語モデル２８の代替として、拡張回答単語候補ｗを置き換えた文パターンｐをクエリ（ｑ（ｗ、ｐ））としたＷｅｂ検索を実行して、検索ヒット数をスコアとして用いて下記（３）式のようにＳｏｒｅ（ｗ，ｐ）の計算をすることも可能である。
【００４５】
【数７】
2020074205.tif 000009
・・・（３）
【００４６】
ここでＨ(ｑ(ｗ、ｐ))はクエリｑ(ｗ、ｐ)でＷｅｂ検索したときの検索ヒット数を示している。このとき、上記（３）式で計算されたＳｏｒｅ（ｗ，ｐ）を用いて、上記（２）式の右側に従って、拡張回答単語候補ｗのスコアＳｃｏｒｅ（ｗ）が計算される。
【００４７】
そして、拡張回答単語候補ｗの各々について、言語モデル２８のスコアＳｃｏｒｅ（ｗ）と、拡張単語候補生成部３２で拡張回答単語候補ｗについて計算された概念ベクトルのスコアを用いて、最終的な統合スコアを計算する。ここで、統合スコアの計算方法は、言語モデル２８のスコアと概念ベクトルのスコアとがどちらも考慮されている手法であれば、任意のものを使用できる。言語モデル２８のスコアと概念ベクトルのスコアとの平均値を使用しても良いし、言語モデル２８のスコアで降順に並べたスコアの順位と、概念ベクトルのスコアで降順に並べたときの順位との平均値を利用しても良い。
【００４８】
統合スコアを降順に拡張回答単語候補を並べたとき、上位Ｎ件を出力部５０に出力する。また、次のクラスタリング部３６で使用する単語集合とする。ここで、拡張単語候補生成部３２の拡張回答単語候補の出力数ｎと最終的な出力数であるＮは、ｎ＞Ｎであれば自由に設定して良い。また、クラスタリングを用いた場合の統合スコア計算手法についても、上記と同様の計算手法でも良いし、上記の計算方法に加えて例えば、拡張回答単語候補の概念ベクトルのスコアに、拡張回答単語候補が属するクラスタに属する単語数を係数として導入した計算方法としても良い。これは、拡張回答単語候補リランキング部３４で出力される拡張回答単語候補の多くは、回答シードと質問文に合致するものだが、中には間違いとなるような拡張回答単語候補が含まれる事がある。このような拡張回答単語候補は他の出力と大きく傾向が違う単語であることが多いため、独立したクラスタを形成する傾向がある。単語数を係数として処理をしておくと、小さいクラスタ（単語数が少ないクラスタ）から出力された拡張回答単語候補のスコアが小さくなる傾向があるので、このような拡張回答単語候補が、多く出力されないようにすることが可能である。
【００４９】
以下は、Ｎ＝１０とした場合の統合スコア上位１０件の拡張回答単語候補の出力例である。
【００５０】
カレー、唐揚げ、ハンバーグ、カレーライス、焼きそば、総菜、丼飯、パスタ、トンカツ、から揚げ
【００５１】
以下は、上記１０件をクラスタリングし、クラスタ毎に求められた拡張回答単語候補を用いて、更に求めた統合スコア上位１０件の拡張回答単語候補の出力例である。
【００５２】
コロッケ、チャーハン、オムライス、餃子、たらこスパ、ポテトフライ、炒飯、カツ丼、焼き飯、カニクリームコロッケ
【００５３】
クラスタリング部３６は、上位Ｎ個の拡張回答単語候補と、質問文に対する回答単語とを含む単語集合に対して、概念ベクトルモデル２４に基づいてクラスタリングを行う。クラスタリングの手法については、任意の手法を使用して良い。クラスタ数を事前に設定する方法(k-means法)やクラスタ数を自動的に決定する手法（Affinity Propagation）を用いても良い。
【００５４】
本実施の形態でクラスタリングを行う理由を以下に説明する。
【００５５】
本実施の形態では、入力の質問文と回答シードを与えることで、回答シードを拡張した拡張回答単語集合を得ることが出来るが、ここでまでの拡張単語候補生成部３２、及び拡張回答単語候補リランキング部３４の処理を複数回実行することで、より多様かつ多数の拡張回答単語候補の集合を得ることができる。その場合、拡張回答単語候補リランキング部３４で出力したＮ語を次回の拡張の回答シードとして使用する。出力した拡張回答単語候補の集合を次回の回答シードとすることで、初期に入力した元の回答シードや前回の出力とは異なる単語を得ることができるが、出力されたＮ個の拡張回答単語候補の集合は元の回答シードと比較して単語数が多い。この状態で拡張単語候補生成部３２の拡張回答単語候補の計算を行った場合、回答シードから作成する単語の概念ベクトルの合成ベクトルは、多数の単語の意味が平均化されたものになってしまい、入手できる単語の多様性が失われるという問題があった。
【００５６】
クラスタリング部３６では、上記の問題を解決するために、回答シードとして使用するＮ語に対して、概念ベクトルモデル２４の単語の概念ベクトルの類似性に基づくクラスタリングを行い、複数のクラスタに分割する。そして、拡張単語候補生成部３２ではクラスタごとに上記（１）式の計算を行い、全てのクラスタについての上位ｎ個の拡張回答単語候補を求める。そして、拡張回答単語候補リランキング部３４で、全ての拡張回答単語候補の各々について、上記（２）式で拡張回答単語候補ｗのスコアＳｃｏｒｅ（ｗ）を計算して、更に、統合スコアを計算することによって、ループ２回目以降の出力単語を決定する。クラスタリングを行う際には、新しく使用するＮ語に、元の回答シードの単語集合αを追加した単語集合で行うものとする。拡張回答単語候補リランキング部３４で出力されたＮ語は元の回答シードを拡張した語であるが質問文や言語モデルを考慮しているため回答シードよりも多様な語の集合となる。この状態でクラスタを作成すると、クラスタが分散しやすくなる。また、Ｎ語の中には解析ミスで出力される語も含まれており、これら不適切な語の集合でクラスタが作成されてしまうと２回目以降の出力される回答が不適切な単語で占められる可能性がでる。そのため、元の回答シードの単語集合αは意味が近い可能性が高く、間違いなく正しい単語であるため、元の回答シード単語集合αを含めてクラスタリングを行ったほうが、クラスタのまとまりがよくなり、かつ不適切なクラスタが大量に生成されることを防ぐ働きがある。
【００５７】
クラスタごとに単語の拡張を行うことで、より多様性に富んだ拡張語を取得できるようになるという特徴がある。図２にクラスタリングを使用した場合と使用していない場合の拡張語の探索イメージの比較を示す。図２中の各黒丸は、概念ベクトルで表現された回答シードの単語を示し、星印は合成ベクトルを示している。点線で囲まれた範囲が合成ベクトルの類似度によって探索できる範囲を示している。この例では合成ベクトルは各単語の概念ベクトルの重心によって表現されているものとする。
【００５８】
以下はクラスタの出力例である。
【００５９】
クラスタ（ア）：カレー、カレーライス、 焼きそば
クラスタ（イ）：総菜
クラスタ（ウ）：パスタ
クラスタ（エ）：唐揚げ、ハンバーグ、丼飯、トンカツ、から揚げ
【００６０】
条件判定部３８は、予め定められた条件を満たすまで拡張単語候補生成部３２、拡張回答単語候補リランキング部３４、及びクラスタリング部３６の処理を繰り返す。条件は、例えば回数や、出力された単語数とすればよい。
【００６１】
＜本発明の実施の形態に係る回答候補生成装置の作用＞
【００６２】
次に、本発明の実施の形態に係る回答候補生成装置１００の作用について説明する。回答候補生成装置１００では、予め、概念ベクトルモデル生成部２２によって概念ベクトルモデル２４を、言語モデル生成部２６によって言語モデル２８を求めておく。入力部１０において質問文、及び質問文に対する回答単語の各々を受け付けると、回答候補生成装置１００は、図３に示す回答候補生成処理ルーチンを実行する。
【００６３】
まず、ステップＳ１００では、入力部１０で受け付けた質問文から、単語に置き換えるためのタグを付与した文パターンを生成する。
【００６４】
次に、ステップＳ１０２では、入力部１０で受け付けた質問文に対する回答単語の各々と質問文に含まれる単語の各々とに類似する単語の各々を、上記（１）式で計算される概念ベクトルモデル２４における単語の概念ベクトルのスコアに基づいて求めて、スコアを降順に並べたときの上位ｎ語を拡張回答単語候補とする。
【００６５】
ステップＳ１０４では、文パターンに含まれるタグを拡張回答単語候補に置き換えたときに得られる、上記（２）式で計算される言語モデル２８のスコア、及び拡張回答単語候補について計算された概念ベクトルのスコアに基づく統合スコアが上位Ｎ個（ｎ＞Ｎ）の拡張回答単語候補を求める。
【００６６】
ステップＳ１０６では、ステップＳ１０４又は前回のステップＳ１１０で求められた上位Ｎ個の拡張回答単語候補と、質問文に対する回答単語とを含む単語集合に対して、概念ベクトルモデル２４に基づいてクラスタリングを行う。
【００６７】
ステップＳ１０８では、クラスタ毎に、クラスタに属する単語の各々と質問文に含まれる単語の各々とに類似する単語の各々を、上記（１）式で計算される概念ベクトルモデル２４における単語の概念ベクトルのスコアに基づいて求めて、スコアを降順に並べたときの上位ｎ語を拡張回答単語候補とする。
【００６８】
ステップＳ１１０では、ステップＳ１０８で得られた、文パターンに含まれるタグをクラスタについて求められた拡張回答単語候補に置き換えたときに得られる、言語モデル２８のスコアを算出し、上記（２）式で計算される言語モデル２８のスコア、及び拡張回答単語候補について計算された概念ベクトルのスコアに基づく統合スコアが上位Ｎ個の拡張回答単語候補を求める。ここで、統合スコアは、言語モデル２８のスコア、及び拡張回答単語候補が属するクラスタに属する単語数を係数として概念ベクトルのスコアに乗算したスコアに基づいて求める。
【００６９】
ステップＳ１１２では、繰り返しの終了の条件を満たすかを判定し、条件を満たせばステップＳ１１４へ移行し、満たさなければステップＳ１０６に戻って処理を繰り返す。
【００７０】
ステップＳ１１４では、ステップＳ１０４〜Ｓ１１２の処理で得られた拡張回答単語候補を出力部５０に出力して処理を終了する。
【００７１】
以上説明したように、本発明の実施の形態に係る回答候補生成装置によれば、単語に置き換えるためのタグを付与した文パターンを生成し、質問文に対する回答単語の各々と質問文に含まれる単語の各々とに類似する単語の各々を、概念ベクトルのスコアに基づいて求めて、拡張回答単語候補とし、文パターンに含まれるタグを拡張回答単語候補に置き換えたときに得られる、言語モデルのスコア、及び拡張回答単語候補についての概念ベクトルのスコアに基づく統合スコアが上位Ｎ個の拡張回答単語候補を求め、上位Ｎ個の拡張回答単語候補と、質問文に対する回答単語とを含む単語集合に対して、概念ベクトルに基づいてクラスタリングを行い、予め定められた条件を満たすまで拡張単語候補生成、拡張単語候補リランキング、及びクラスタリングの処理を繰り返し、クラスタ毎に、クラスタに属する単語の各々と質問文に含まれる単語の各々とに類似する単語の各々を、概念ベクトルのスコアに基づいて求めて、拡張回答単語候補とし、文パターンに含まれるタグをクラスタについて求められた拡張回答単語候補に置き換えたときに得られる、言語モデルのスコアを算出し、全てのクラスタにおいて、言語モデル、及び拡張回答単語候補についての概念ベクトルのスコアに基づく統合スコアが上位Ｎ個の拡張回答単語候補を求めることにより、対話システムで使用するための多様な回答候補を得ることができる。
【００７２】
本発明の実施の形態の手法を利用することで、対話システムのシナリオ作成者は、システムが発する質問文と、その質問に対する回答となる単語を数語（５語程度）回答シードとして与えることで、様々な回答単語（拡張回答単語候補）を得ることが出来る。
【００７３】
また、雑談対話のようなオープンドメイン対話では、質問に対する回答は多岐にわたるため、それらの回答をシナリオ作成者が全て想起することは難しいが、本発明の実施の形態の手法を利用することで、シナリオ作成者は自信で回答内容を多数考える必要が無くなるため、シナリオ作成のコストが低減できるという利点がある。同時に、対話シナリオにおいて、予測できる回答数が増えるため、より多くのユーザの回答に対しての満足の行く返答が出来る可能性が高まるため、対話システムの品質や満足度の向上も期待できる。
【００７４】
また、本発明の実施の形態の手法は対話シナリオに対して、ユーザの回答内容の予測を拡張するものである。対話シナリオでは、システムが質問し、ユーザがその質問に答えた後、システムはユーザの回答を受けてもう一言発話する３つ組み形式が一般的である。本発明の実施の形態においても、拡張された回答に対して、システムの３発話目はシステム作成者が自身で作成する。ここで、本発明の実施の形態で出力される回答単語を参考に３発話目を作成しても良い。本発明の実施の形態では多様な観点から多数の回答単語が出力されるため、その中にはユーザの回答の予測だけでなく、３発話目として活用できるもの含まれるためである。また、３発話目の作成に従来の自動発話生成装置を組み合わせることで、対話シナリオ自体を自動で生成することも可能である。
【００７５】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【００７６】
例えば、上述した実施の形態では、回答候補生成装置として構成する場合を例に説明したが、これに限定されるものではない。例えば、クラスタリング部のみのクラスタリング装置として構成し、質問文、質問文に対する回答単語の各々、及び外部の装置によって得られた上位の回答単語候補を入力として受け付け、回答単語候補のクラスタリング結果を出力するようにしてもよい。
【符号の説明】
【００７７】
１０ 入力部
２０ 演算部
２２ 概念ベクトルモデル生成部
２４ 概念ベクトルモデル
２６ 言語モデル生成部
２８ 言語モデル
３０ 文パターン生成部
３２ 拡張単語候補生成部
３４ 拡張回答単語候補リランキング部
３６ クラスタリング部
３８ 条件判定部
５０ 出力部
１００ 回答候補生成装置
【図１】
2020074205.tif 000010
【図２】
2020074205.tif 000011
【図３】
2020074205.tif 000012