特許第6857754号(P6857754)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧
特許6857754回答候補生成装置、回答候補生成方法、及びプログラム
<>
  • 特許6857754-回答候補生成装置、回答候補生成方法、及びプログラム 図000009
  • 特許6857754-回答候補生成装置、回答候補生成方法、及びプログラム 図000010
  • 特許6857754-回答候補生成装置、回答候補生成方法、及びプログラム 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6857754
(24)【登録日】2021年3月24日
(45)【発行日】2021年4月14日
(54)【発明の名称】回答候補生成装置、回答候補生成方法、及びプログラム
(51)【国際特許分類】
   G06F 16/90 20190101AFI20210405BHJP
   G06F 16/35 20190101ALI20210405BHJP
【FI】
   G06F16/90 100
   G06F16/35
【請求項の数】6
【全頁数】13
(21)【出願番号】特願2020-11236(P2020-11236)
(22)【出願日】2020年1月27日
(62)【分割の表示】特願2017-79659(P2017-79659)の分割
【原出願日】2017年4月13日
(65)【公開番号】特開2020-74205(P2020-74205A)
(43)【公開日】2020年5月14日
【審査請求日】2020年1月30日
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】特許業務法人太陽国際特許事務所
(72)【発明者】
【氏名】大塚 淳史
(72)【発明者】
【氏名】片山 太一
(72)【発明者】
【氏名】杉山 弘晃
(72)【発明者】
【氏名】東中 竜一郎
【審査官】 吉田 誠
(56)【参考文献】
【文献】 特開2011−039977(JP,A)
【文献】 特開2005−149014(JP,A)
【文献】 特開2002−041573(JP,A)
【文献】 特開2006−163623(JP,A)
【文献】 特開2013−143066(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00−16/958
(57)【特許請求の範囲】
【請求項1】
質問文に対する回答単語の各々と前記質問文に含まれる単語の各々とに類似する単語の各々を、前記単語の概念を表す概念ベクトルのスコアに基づいて求めて、拡張回答単語候補とする拡張単語候補生成部と、
前記質問文と前記拡張回答単語候補との組み合わせに対する、予め定められた言語モデルのスコア、及び前記拡張回答単語候補についての単語の概念を表す概念ベクトルのスコアに基づく統合スコアが上位の拡張回答単語候補と、前記質問文に対する回答単語とを含む単語集合に対して、前記概念ベクトルに基づいてクラスタリングを行うクラスタリング部と、
を含む回答候補生成装置。
【請求項2】
予め定められた条件を満たすまで前記拡張単語候補生成部、及び前記クラスタリング部の処理を繰り返す条件判定部を更に含み、
前記条件判定部による繰り返し処理においては、
前記拡張単語候補生成部は、前記クラスタリング部で得られたクラスタ毎に、前記クラスタに属する単語の各々と前記質問文に含まれる単語の各々とに類似する単語の各々を、前記概念ベクトルのスコアに基づいて求めて、前記拡張回答単語候補とする、
請求項1に記載の回答候補生成装置。
【請求項3】
質問文に対する回答単語の各々と前記質問文に含まれる単語の各々とに類似する単語の各々を、前記単語の概念を表す概念ベクトルのスコアに基づいて求めて、拡張回答単語候補とする拡張単語候補生成部と、
前記質問文における所定の単語を拡張回答単語候補に置き換えたときに得られるスコア、及び前記拡張回答単語候補についての前記概念ベクトルのスコアに基づく統合スコアが上位N個の拡張回答単語候補を求める拡張回答単語候補リランキング部と、
前記上位N個の拡張回答単語候補と、前記質問文に対する回答単語とを含む単語集合に対して、前記概念ベクトルに基づいてクラスタリングを行うクラスタリング部と、
予め定められた条件を満たすまで前記拡張単語候補生成部、前記拡張回答単語候補リランキング部、及び前記クラスタリング部の処理を繰り返す条件判定部と、
を含み、
前記条件判定部による繰り返し処理においては、
前記拡張単語候補生成部は、前記クラスタリング部で得られたクラスタ毎に、前記クラスタに属する単語の各々と前記質問文に含まれる単語の各々とに類似する単語の各々を、前記概念ベクトルのスコアに基づいて求めて、前記拡張回答単語候補とする回答候補生成装置。
【請求項4】
拡張単語候補生成部が、質問文に対する回答単語の各々と前記質問文に含まれる単語の各々とに類似する単語の各々を、前記単語の概念を表す概念ベクトルのスコアに基づいて求めて、拡張回答単語候補とするステップと、
クラスタリング部が、前記質問文と前記拡張回答単語候補との組み合わせに対する、予め定められた言語モデルのスコア、及び前記拡張回答単語候補についての単語の概念を表す概念ベクトルのスコアに基づく統合スコアが上位の拡張回答単語候補と、前記質問文に対する回答単語とを含む単語集合に対して、前記概念ベクトルに基づいてクラスタリングを行うステップと、
を含む回答候補生成方法。
【請求項5】
拡張単語候補生成部が、質問文に対する回答単語の各々と前記質問文に含まれる単語の各々とに類似する単語の各々を、前記単語の概念を表す概念ベクトルのスコアに基づいて求めて、拡張回答単語候補とするステップと、
拡張回答単語候補リランキング部が、前記質問文における所定の単語を拡張回答単語候補に置き換えたときに得られるスコア、及び前記拡張回答単語候補についての前記概念ベクトルのスコアに基づく統合スコアが上位N個の拡張回答単語候補を求めるステップと、
クラスタリング部が、前記上位N個の拡張回答単語候補と、前記質問文に対する回答単語とを含む単語集合に対して、前記概念ベクトルに基づいてクラスタリングを行うステップと、
条件判定部が、予め定められた条件を満たすまで前記拡張単語候補生成部、前記拡張回答単語候補リランキング部、及び前記クラスタリング部の処理を繰り返すステップと、
を含み、
前記条件判定部による繰り返し処理においては、
前記拡張単語候補生成部は、前記クラスタリング部で得られたクラスタ毎に、前記クラスタに属する単語の各々と前記質問文に含まれる単語の各々とに類似する単語の各々を、前記概念ベクトルのスコアに基づいて求めて、前記拡張回答単語候補とする回答候補生成方法。
【請求項6】
コンピュータを、請求項1〜請求項3の何れか1項に記載の回答候補生成装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、回答候補生成装置、回答候補生成方法、及びプログラムに係り、特に、対話システムで使用する回答候補を生成するための回答候補生成装置、回答候補生成方法、及びプログラムに関する。
【背景技術】
【0002】
一般的に、ロボット等の対話システムと話をする際、ユーザから発話を行い、返答することが多かった。しかし、最近では、システム側から話しかける雑談対話のようなものも存在し、シナリオベースで展開されている。システムから何かを問うといった発話の場合、相手の回答に対して、こちらがその回答を認識し、再び発話する必要がある。このようなシナリオを生成する際、システムの質問に対して、どういった回答の可能性があるかを人手で予測し、シナリオに起こすことが多い。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2014−219872号公報
【非特許文献】
【0004】
【非特許文献1】自然対話プラットフォームの構築と音声対話玩具への応用. 大西 可奈子他. 人工知能学会研究会資料, SIG-SLUD-B502-14, 2015
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、相手の返答パターンは膨大であるため、対話システムにおいて想定される回答の多くを網羅することは困難であり、実行するにはコストが膨大であるという問題がある。
【0006】
本発明は、上記問題点を解決するために成されたものであり、質問文に対する適切かつ多様な回答候補を得ることができる回答候補生成装置、回答候補生成方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明に係る回答候補生成装置は、質問文に対する回答単語の各々と前記質問文に含まれる単語の各々とに類似する単語の各々を、前記単語の概念を表す概念ベクトルのスコアに基づいて求めて、拡張回答単語候補とする拡張単語候補生成部と、前記質問文と前記拡張回答単語候補との組み合わせに対する、予め定められた言語モデルのスコア、及び前記拡張回答単語候補についての単語の概念を表す概念ベクトルのスコアに基づく統合スコアが上位の回答単語候補と、前記質問文に対する回答単語とを含む単語集合に対して、前記概念ベクトルに基づいてクラスタリングを行うクラスタリング部と、を含んで構成されている。
【発明の効果】
【0008】
また、本発明の回答候補生成装置、回答候補生成方法、及びプログラムによれば、質問文に対する適切かつ多様な回答候補を得ることができる、という効果が得られる。
【図面の簡単な説明】
【0009】
図1】本発明の実施の形態に係る回答候補生成装置の構成を示すブロック図である。
図2】クラスタリングを使用した場合と使用していない場合の拡張語の探索イメージの比較例の図である。
図3】本発明の実施の形態に係る回答候補生成装置における回答候補生成処理ルーチンを示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【0011】
<本発明の実施の形態に係る概要>
【0012】
まず、本発明の実施の形態における概要を説明する。
【0013】
上述した問題点に対して、本実施の形態では、大量のテキストを用いた統計情報、質問の言語情報及び統計情報を利用し、対話システムがした質問文に対して、ユーザの回答内容を予測することで、対話シナリオの作成支援を実現する。
【0014】
本実施の形態の回答候補生成装置は、対話システムのシナリオに関して、システムが発する質問文と、その質問文の回答となる単語(回答シード)を数語与えることで、回答単語を拡張し、質問に対する様々な回答となる単語を出力する装置である。
【0015】
本実施の形態では、ブログ記事などの大量のテキストを統計処理し、単語の意味を表現する概念ベクトルを作成する。概念ベクトルの類似度に基づいて、出力する拡張単語候補を決定する。また、質問文を言語解析して、文パターンを生成する。概念ベクトルに基づいて出力された拡張単語候補を文パターンに当てはめて、言語モデル的に妥当であるかを判定することで、質問に対して妥当な回答となる単語をより高精度に出力できることに特徴がある。
【0016】
また、上記手法によって出力した拡張回答単語の集合を回答シードとして再度入力することでより多様な拡張単語候補を入手することもできる。このとき、再度入力する拡張単語候補を意味が近いもの同士でまとめるクラスタリングを行い、各クラスタで単語を拡張することで、より多様な拡張単語候補を得ることができるという特徴がある。
【0017】
<本発明の実施の形態に係る回答候補生成装置の構成>
【0018】
次に、本発明の実施の形態に係る回答候補生成装置の構成について説明する。図1に示すように、本発明の実施の形態に係る回答候補生成装置100は、CPUと、RAMと、後述する回答候補生成処理ルーチンを実行するためのプログラムや各種データを記憶したROMと、を含むコンピュータで構成することが出来る。この回答候補生成装置100は、機能的には図1に示すように入力部10と、演算部20と、出力部50とを備えている。
【0019】
入力部10は、質問文、及び質問文に対する回答単語の各々(以下「(元の)回答シード」とも記載する)の入力を受け付ける。本実施の形態では、質問文として「できたてで食べたい食べ物は?」を受け付け、回答単語の各々として、「パン、揚げ物、ご飯、麺類、焼肉」を受け付けた場合を例に説明する。
【0020】
演算部20は、概念ベクトルモデル生成部22と、概念ベクトルモデル24と、言語モデル生成部26と、言語モデル28と、文パターン生成部30と、拡張単語候補生成部32と、拡張回答単語候補リランキング部34と、クラスタリング部36と、条件判定部38とを含んで構成されている。
【0021】
概念ベクトルモデル生成部22は、テキスト集合に含まれる単語の各々について、単語の概念を表す概念ベクトルを生成し、概念ベクトルモデル24として記憶する。概念ベクトルは、テキスト集合から単語の出現情報に基づくものであり、本実施の形態では、概念ベクトルの作成手法はニューラルネットワークを活用したもの(Word2vec)を使用する。また、特異値分解を利用したものなど任意のものを使用して良い。但し、後述する拡張単語候補生成部32では、複数の単語ベクトルを合成する処理を行うため、概念ベクトルモデル生成部22で採用する概念ベクトルは、合成ベクトルとしても利用可能なものとする。合成方法については特に指定しない。
【0022】
言語モデル生成部26は、テキスト集合に含まれる単語のNグラムに基づいて言語モデル28を生成する。この時、言語モデルの作成方法は特に指定しないが、モデルを効率的に活用するため、「は」「が」などの助動詞を「*」に置き換える。ただし、ここで作成する言語モデル28は後述する文パターン生成部30で生成する文パターンを使用できる形式であることとする。
【0023】
文パターン生成部30は、入力部10で受け付けた質問文から、単語に置き換えるためのタグを付与した文パターンを生成する。具体的には、まず、文パターン生成部30では、入力された質問文を構文解析する。ここでの構文解析とは、係り受け解析である。係り受け解析された質問文に対してまず、「なぜ」「なに」「いつ」「どこ」「誰」といった5W1Hの表現を検索する。該当した5W1Hの表現を、単語に置き換えるためのタグ(<cand>)に置き換える。次に、係り受け解析結果で動詞や動詞語幹が含まれる文節を見つける。この文節を基準文節として、残りの文節を基準文節の前と後に分け、それぞれで係り受け関係に従い文節を合成する。ここで、基準文節の前の文節と合成する場合には、まず基準文節の前に、タグを含む“<cand> *”を付与(*は任意の助詞)し、その後、係り受け関係によって文節を合成する。基準文節の後の文節との合成には、質問文の最後の文節の最後に置き換えタグ“<cand>”を付与し(句読点や疑問符は削除)、そこから係り受け関係に従い合成を繰り返す。
【0024】
「できたてで食べたい食べ物は?」という質問文の基準文節は「食べ たい」の部分となる。この基準文節の前の文節との合成では「<cand> * 食べ たい」「<cand> * できたて で 食べ たい」という2つの文パターンが生成され、後ろの文節との合成によって「食べ物 は <cand>」、「食べ たい 食べ物 は <cand>」、「できたて で 食べ たい 食べ物 は <cand>」という3つの文パターンが生成される。よって、合計で5つの文パターンが生成される。個々で置き換えタグ<cand>は自由に設定してよく、また「は」などの助詞を*に置き換えた文パターンを作成しても良い。
【0025】
以下は文パターンの出力例である。この例では、「は」などの助詞を*に置き換えている。
【0026】
文パターン1:<cand> * 食べ た い
文パターン2:<cand> * できたて * 食べ た い
文パターン3:食べ物 * <cand>
文パターン4:食べ た い 食べ物 * <cand>
文パターン5:できたて * 食べ た い 食べ物 * <cand>
【0027】
拡張単語候補生成部32は、入力部10で受け付けた質問文に対する回答単語の各々と質問文に含まれる単語の各々とに類似する単語の各々を、概念ベクトルモデル24に基づいて求めて、拡張回答単語候補とする。また、後述するクラスタリング部36で得られたクラスタ毎に、クラスタに属する単語の各々と質問文に含まれる単語の各々とに類似する単語の各々を、概念ベクトルモデル24に基づいて求めて、拡張回答単語候補とする。
【0028】
拡張単語候補生成部32では、概念ベクトルモデル24の単語の概念ベクトルを用いて、出力となる拡張回答単語の候補となる単語を生成する。入力となる回答単語(回答シード)の集合をαとする。質問文を形態素解析した結果の集合Qを用意する。ここで、αにQ中のある単語qを加えたときの集合α+qの単語の概念ベクトルの合成ベクトルを
【0029】
【数1】

【0030】
と表すとすると、ある単語wの概念ベクトルのスコアは以下(1)式の通りに計算できる。
【0031】
【数2】

・・・(1)
【0032】
ここで、
【0033】
【数3】
【0034】
は、単語qの各々について作成された合成ベクトル
【0035】
【数4】
【0036】
と単語wの概念ベクトル
【0037】
【数5】
【0038】
との類似度である。類似度の計算方法は、数値が大きいほど類似性が高いことを表すものであれば任意のものを使用できる。概念ベクトルモデルに含まれる全ての単語に対して、上記のスコアを計算し、スコアを降順に並べたときの上位n語を拡張回答単語候補として次の拡張回答単語候補リランキング部34で使用する。
【0039】
また、拡張単語候補生成部32では、クラスタリング部36によるクラスタリング後は、例えば、クラスタ毎の拡張回答単語候補の集合Qが得られるため、単語wについて、クラスタ毎に上記スコアを計算する。そして、全てのクラスタについて計算されたスコアを降順に並べたときの上位n語を拡張回答単語候補として次の拡張回答単語候補リランキング部34で使用する。なお、単語wについてクラスタ毎に計算されたスコアを合計したスコアを用いても良い。また、上記(1)式の計算に、拡張回答単語候補が属するクラスタに属する単語数を係数として導入した計算方法としても良い。例えば、全クラスタの単語数が100であり、あるクラスタの単語数が5であれば、5/100を係数とする等すればよい。
【0040】
拡張回答単語候補リランキング部34は、上位n語の拡張回答単語候補の各々について、文パターンに含まれるタグを当該拡張回答単語候補に置き換えたときに得られる、言語モデル28のスコア、及び当該拡張回答単語候補について計算された概念ベクトルのスコアに基づく統合スコアを算出し、統合スコアが上位N個の拡張回答単語候補を求める。また、クラスタリング部36によるクラスタリング後も同様に、上位n語の拡張回答単語候補の各々について、文パターンに含まれるタグを当該拡張回答単語候補に置き換えたときに得られる、言語モデル28のスコア、及び当該拡張回答単語候補について計算された概念ベクトルのスコアに基づく統合スコアを算出し、統合スコアが上位N個の拡張回答単語候補を求める。クラスタリング後の統合スコアは、言語モデル28のスコア、及び当該拡張回答単語候補が属するクラスタに属する単語数を係数として概念ベクトルのスコアに乗算したスコアに基づいて求められる。
【0041】
具体的には、拡張回答単語候補リランキング部34では、まず、拡張回答単語候補の各々について、文パターンの置き換えタグ<cand>の部分を当該拡張回答単語候補に置き換えることにより、拡張回答単語候補の各単語を文パターンに当てはめる。そして、置き換えた文を言語モデル28に入力して言語モデル28のスコアを計算する。ここで、言語モデル28のスコア算出方法については任意のものを使用できる。本実施の形態では、例えば、一般的な言語モデルにおけるスコアとして、単語の条件付き確率を用い、以下(2)式の通り、拡張回答単語候補wのスコアScore(w)を計算する。
【0042】
【数6】

・・・(2)
【0043】
ここで、上記(2)式において、wはある拡張回答単語候補、pは文パターンを表している。上記(2)式では、拡張回答単語候補wと全ての文パターンpとの組み合わせの各々についてScore(w,p)を計算し、leng(p)を重みとして乗算して合計している。leng(p)は文パターンpの単語長を表している。単語長が長いほど、重みを大きくするようにして、単語長を考慮することで、長い文パターンの影響が大きくなる。長い文パターンの方が、修飾語などが含まれた質問文に近い文になるため長い文パターンで出現しやすい語の方が、より質問文に関連のある文書になる。
【0044】
また、言語モデル28の代替として、拡張回答単語候補wを置き換えた文パターンpをクエリ(q(w、p))としたWeb検索を実行して、検索ヒット数をスコアとして用いて下記(3)式のようにSore(w,p)の計算をすることも可能である。
【0045】
【数7】

・・・(3)
【0046】
ここでH(q(w、p))はクエリq(w、p)でWeb検索したときの検索ヒット数を示している。このとき、上記(3)式で計算されたSore(w,p)を用いて、上記(2)式の右側に従って、拡張回答単語候補wのスコアScore(w)が計算される。
【0047】
そして、拡張回答単語候補wの各々について、言語モデル28のスコアScore(w)と、拡張単語候補生成部32で拡張回答単語候補wについて計算された概念ベクトルのスコアを用いて、最終的な統合スコアを計算する。ここで、統合スコアの計算方法は、言語モデル28のスコアと概念ベクトルのスコアとがどちらも考慮されている手法であれば、任意のものを使用できる。言語モデル28のスコアと概念ベクトルのスコアとの平均値を使用しても良いし、言語モデル28のスコアで降順に並べたスコアの順位と、概念ベクトルのスコアで降順に並べたときの順位との平均値を利用しても良い。
【0048】
統合スコアを降順に拡張回答単語候補を並べたとき、上位N件を出力部50に出力する。また、次のクラスタリング部36で使用する単語集合とする。ここで、拡張単語候補生成部32の拡張回答単語候補の出力数nと最終的な出力数であるNは、n>Nであれば自由に設定して良い。また、クラスタリングを用いた場合の統合スコア計算手法についても、上記と同様の計算手法でも良いし、上記の計算方法に加えて例えば、拡張回答単語候補の概念ベクトルのスコアに、拡張回答単語候補が属するクラスタに属する単語数を係数として導入した計算方法としても良い。これは、拡張回答単語候補リランキング部34で出力される拡張回答単語候補の多くは、回答シードと質問文に合致するものだが、中には間違いとなるような拡張回答単語候補が含まれる事がある。このような拡張回答単語候補は他の出力と大きく傾向が違う単語であることが多いため、独立したクラスタを形成する傾向がある。単語数を係数として処理をしておくと、小さいクラスタ(単語数が少ないクラスタ)から出力された拡張回答単語候補のスコアが小さくなる傾向があるので、このような拡張回答単語候補が、多く出力されないようにすることが可能である。
【0049】
以下は、N=10とした場合の統合スコア上位10件の拡張回答単語候補の出力例である。
【0050】
カレー、唐揚げ、ハンバーグ、カレーライス、焼きそば、総菜、丼飯、パスタ、トンカツ、から揚げ
【0051】
以下は、上記10件をクラスタリングし、クラスタ毎に求められた拡張回答単語候補を用いて、更に求めた統合スコア上位10件の拡張回答単語候補の出力例である。
【0052】
コロッケ、チャーハン、オムライス、餃子、たらこスパ、ポテトフライ、炒飯、カツ丼、焼き飯、カニクリームコロッケ
【0053】
クラスタリング部36は、上位N個の拡張回答単語候補と、質問文に対する回答単語とを含む単語集合に対して、概念ベクトルモデル24に基づいてクラスタリングを行う。クラスタリングの手法については、任意の手法を使用して良い。クラスタ数を事前に設定する方法(k-means法)やクラスタ数を自動的に決定する手法(Affinity Propagation)を用いても良い。
【0054】
本実施の形態でクラスタリングを行う理由を以下に説明する。
【0055】
本実施の形態では、入力の質問文と回答シードを与えることで、回答シードを拡張した拡張回答単語集合を得ることが出来るが、ここでまでの拡張単語候補生成部32、及び拡張回答単語候補リランキング部34の処理を複数回実行することで、より多様かつ多数の拡張回答単語候補の集合を得ることができる。その場合、拡張回答単語候補リランキング部34で出力したN語を次回の拡張の回答シードとして使用する。出力した拡張回答単語候補の集合を次回の回答シードとすることで、初期に入力した元の回答シードや前回の出力とは異なる単語を得ることができるが、出力されたN個の拡張回答単語候補の集合は元の回答シードと比較して単語数が多い。この状態で拡張単語候補生成部32の拡張回答単語候補の計算を行った場合、回答シードから作成する単語の概念ベクトルの合成ベクトルは、多数の単語の意味が平均化されたものになってしまい、入手できる単語の多様性が失われるという問題があった。
【0056】
クラスタリング部36では、上記の問題を解決するために、回答シードとして使用するN語に対して、概念ベクトルモデル24の単語の概念ベクトルの類似性に基づくクラスタリングを行い、複数のクラスタに分割する。そして、拡張単語候補生成部32ではクラスタごとに上記(1)式の計算を行い、全てのクラスタについての上位n個の拡張回答単語候補を求める。そして、拡張回答単語候補リランキング部34で、全ての拡張回答単語候補の各々について、上記(2)式で拡張回答単語候補wのスコアScore(w)を計算して、更に、統合スコアを計算することによって、ループ2回目以降の出力単語を決定する。クラスタリングを行う際には、新しく使用するN語に、元の回答シードの単語集合αを追加した単語集合で行うものとする。拡張回答単語候補リランキング部34で出力されたN語は元の回答シードを拡張した語であるが質問文や言語モデルを考慮しているため回答シードよりも多様な語の集合となる。この状態でクラスタを作成すると、クラスタが分散しやすくなる。また、N語の中には解析ミスで出力される語も含まれており、これら不適切な語の集合でクラスタが作成されてしまうと2回目以降の出力される回答が不適切な単語で占められる可能性がでる。そのため、元の回答シードの単語集合αは意味が近い可能性が高く、間違いなく正しい単語であるため、元の回答シード単語集合αを含めてクラスタリングを行ったほうが、クラスタのまとまりがよくなり、かつ不適切なクラスタが大量に生成されることを防ぐ働きがある。
【0057】
クラスタごとに単語の拡張を行うことで、より多様性に富んだ拡張語を取得できるようになるという特徴がある。図2にクラスタリングを使用した場合と使用していない場合の拡張語の探索イメージの比較を示す。図2中の各黒丸は、概念ベクトルで表現された回答シードの単語を示し、星印は合成ベクトルを示している。点線で囲まれた範囲が合成ベクトルの類似度によって探索できる範囲を示している。この例では合成ベクトルは各単語の概念ベクトルの重心によって表現されているものとする。
【0058】
以下はクラスタの出力例である。
【0059】
クラスタ(ア):カレー、カレーライス、 焼きそば
クラスタ(イ):総菜
クラスタ(ウ):パスタ
クラスタ(エ):唐揚げ、ハンバーグ、丼飯、トンカツ、から揚げ
【0060】
条件判定部38は、予め定められた条件を満たすまで拡張単語候補生成部32、拡張回答単語候補リランキング部34、及びクラスタリング部36の処理を繰り返す。条件は、例えば回数や、出力された単語数とすればよい。
【0061】
<本発明の実施の形態に係る回答候補生成装置の作用>
【0062】
次に、本発明の実施の形態に係る回答候補生成装置100の作用について説明する。回答候補生成装置100では、予め、概念ベクトルモデル生成部22によって概念ベクトルモデル24を、言語モデル生成部26によって言語モデル28を求めておく。入力部10において質問文、及び質問文に対する回答単語の各々を受け付けると、回答候補生成装置100は、図3に示す回答候補生成処理ルーチンを実行する。
【0063】
まず、ステップS100では、入力部10で受け付けた質問文から、単語に置き換えるためのタグを付与した文パターンを生成する。
【0064】
次に、ステップS102では、入力部10で受け付けた質問文に対する回答単語の各々と質問文に含まれる単語の各々とに類似する単語の各々を、上記(1)式で計算される概念ベクトルモデル24における単語の概念ベクトルのスコアに基づいて求めて、スコアを降順に並べたときの上位n語を拡張回答単語候補とする。
【0065】
ステップS104では、文パターンに含まれるタグを拡張回答単語候補に置き換えたときに得られる、上記(2)式で計算される言語モデル28のスコア、及び拡張回答単語候補について計算された概念ベクトルのスコアに基づく統合スコアが上位N個(n>N)の拡張回答単語候補を求める。
【0066】
ステップS106では、ステップS104又は前回のステップS110で求められた上位N個の拡張回答単語候補と、質問文に対する回答単語とを含む単語集合に対して、概念ベクトルモデル24に基づいてクラスタリングを行う。
【0067】
ステップS108では、クラスタ毎に、クラスタに属する単語の各々と質問文に含まれる単語の各々とに類似する単語の各々を、上記(1)式で計算される概念ベクトルモデル24における単語の概念ベクトルのスコアに基づいて求めて、スコアを降順に並べたときの上位n語を拡張回答単語候補とする。
【0068】
ステップS110では、ステップS108で得られた、文パターンに含まれるタグをクラスタについて求められた拡張回答単語候補に置き換えたときに得られる、言語モデル28のスコアを算出し、上記(2)式で計算される言語モデル28のスコア、及び拡張回答単語候補について計算された概念ベクトルのスコアに基づく統合スコアが上位N個の拡張回答単語候補を求める。ここで、統合スコアは、言語モデル28のスコア、及び拡張回答単語候補が属するクラスタに属する単語数を係数として概念ベクトルのスコアに乗算したスコアに基づいて求める。
【0069】
ステップS112では、繰り返しの終了の条件を満たすかを判定し、条件を満たせばステップS114へ移行し、満たさなければステップS106に戻って処理を繰り返す。
【0070】
ステップS114では、ステップS104〜S112の処理で得られた拡張回答単語候補を出力部50に出力して処理を終了する。
【0071】
以上説明したように、本発明の実施の形態に係る回答候補生成装置によれば、単語に置き換えるためのタグを付与した文パターンを生成し、質問文に対する回答単語の各々と質問文に含まれる単語の各々とに類似する単語の各々を、概念ベクトルのスコアに基づいて求めて、拡張回答単語候補とし、文パターンに含まれるタグを拡張回答単語候補に置き換えたときに得られる、言語モデルのスコア、及び拡張回答単語候補についての概念ベクトルのスコアに基づく統合スコアが上位N個の拡張回答単語候補を求め、上位N個の拡張回答単語候補と、質問文に対する回答単語とを含む単語集合に対して、概念ベクトルに基づいてクラスタリングを行い、予め定められた条件を満たすまで拡張単語候補生成、拡張単語候補リランキング、及びクラスタリングの処理を繰り返し、クラスタ毎に、クラスタに属する単語の各々と質問文に含まれる単語の各々とに類似する単語の各々を、概念ベクトルのスコアに基づいて求めて、拡張回答単語候補とし、文パターンに含まれるタグをクラスタについて求められた拡張回答単語候補に置き換えたときに得られる、言語モデルのスコアを算出し、全てのクラスタにおいて、言語モデル、及び拡張回答単語候補についての概念ベクトルのスコアに基づく統合スコアが上位N個の拡張回答単語候補を求めることにより、対話システムで使用するための多様な回答候補を得ることができる。
【0072】
本発明の実施の形態の手法を利用することで、対話システムのシナリオ作成者は、システムが発する質問文と、その質問に対する回答となる単語を数語(5語程度)回答シードとして与えることで、様々な回答単語(拡張回答単語候補)を得ることが出来る。
【0073】
また、雑談対話のようなオープンドメイン対話では、質問に対する回答は多岐にわたるため、それらの回答をシナリオ作成者が全て想起することは難しいが、本発明の実施の形態の手法を利用することで、シナリオ作成者は自信で回答内容を多数考える必要が無くなるため、シナリオ作成のコストが低減できるという利点がある。同時に、対話シナリオにおいて、予測できる回答数が増えるため、より多くのユーザの回答に対しての満足の行く返答が出来る可能性が高まるため、対話システムの品質や満足度の向上も期待できる。
【0074】
また、本発明の実施の形態の手法は対話シナリオに対して、ユーザの回答内容の予測を拡張するものである。対話シナリオでは、システムが質問し、ユーザがその質問に答えた後、システムはユーザの回答を受けてもう一言発話する3つ組み形式が一般的である。本発明の実施の形態においても、拡張された回答に対して、システムの3発話目はシステム作成者が自身で作成する。ここで、本発明の実施の形態で出力される回答単語を参考に3発話目を作成しても良い。本発明の実施の形態では多様な観点から多数の回答単語が出力されるため、その中にはユーザの回答の予測だけでなく、3発話目として活用できるもの含まれるためである。また、3発話目の作成に従来の自動発話生成装置を組み合わせることで、対話シナリオ自体を自動で生成することも可能である。
【0075】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【0076】
例えば、上述した実施の形態では、回答候補生成装置として構成する場合を例に説明したが、これに限定されるものではない。例えば、クラスタリング部のみのクラスタリング装置として構成し、質問文、質問文に対する回答単語の各々、及び外部の装置によって得られた上位の回答単語候補を入力として受け付け、回答単語候補のクラスタリング結果を出力するようにしてもよい。
【符号の説明】
【0077】
10 入力部
20 演算部
22 概念ベクトルモデル生成部
24 概念ベクトルモデル
26 言語モデル生成部
28 言語モデル
30 文パターン生成部
32 拡張単語候補生成部
34 拡張回答単語候補リランキング部
36 クラスタリング部
38 条件判定部
50 出力部
100 回答候補生成装置
図1
図2
図3