(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0017】
以下の説明及び図面では、同一の部品には同一の参照番号を付してある。したがって、それらについての詳細な説明は繰返さない。
【0018】
[第1の実施の形態]
<構成>
図1に、本発明の第1の実施の形態に係る対話システム40のブロック図を示す。
図1を参照して、この対話システム40は、ウェブから収集した大量のテキストをそのURLとともに記憶した大規模テキストデータベース52と、予めこの大規模テキストデータベースから抽出された、評価項目としての一組の感情語を記憶した感情語辞書54と、後に感情語のいずれかが現れることが多い語(ここでは「接続語」と呼ぶ。)を記憶した接続語辞書56と、感情語辞書54に記憶された感情語の各々について、入力された文がそれらに合致するスコアを算出するよう、事前に機械学習済の感情判定モデル60と、大規模テキストデータベース52、感情語辞書54及び接続語辞書56を用いて感情判定モデル60の機械学習を行うためのモデル学習部58とを含む。
【0019】
図2を参照して、大規模テキストデータベース52には、多くのテキストが格納されている。
図2に示す例文において、単語150、152、154、156及び158は何らかの感情を表す単語である。各単語の前に存在する単語130、132、134、136及び138は、これら感情語を導くために特徴的に使用される接続語である。最初に、後ろに感情語を伴うことが多い接続語を収集し、接続語辞書56に格納する。そして大規模テキストデータベース52から各接続語に後続する単語を集める。そうした単語が感情を表すものであれば感情語辞書54に格納し、そうでなければ捨てる。本実施の形態では、同根の感情語であっても語形が異なるものは別々の感情語とする。したがって感情語の数はかなり多くなる。
【0020】
再び
図1を参照して、モデル学習部58は、感情語辞書54及び接続語辞書56を参照して、大規模テキストデータベース52から接続語辞書56に記憶された接続語のいずれかと、感情語辞書54に記憶された感情語のいずれかが連続して現れるテキストを抽出し、各テキストにそのテキストが含む感情語をラベルとして付して出力するテキスト抽出・分類部80と、テキスト抽出・分類部80から出力されるラベル付きのテキストを感情判定モデル60の学習用として記憶する学習用テキスト記憶部82と、学習用テキスト記憶部82に記憶された学習用テキストを用いて感情判定モデル60の学習を行う学習処理部84とを含む。
【0021】
本実施の形態では、テキスト抽出・分類部80は、コンピュータプログラムにより実現される。
図3を参照して、このプログラムは、感情語辞書54から全ての感情語を読出すステップ200と、接続語辞書56から全ての接続語を読出すステップ202と、ステップ202で読出された先行する接続語と、ステップ200で読出された後続する感情語とからなる全ての単語列の組合せのいずれかを含むテキストを大規模テキストデータベース52から検索するための検索式を生成するステップ204と、ステップ204で生成された検索式を用いて大規模テキストデータベース52から条件を満たすテキストを全て抽出するステップ206と、ステップ206で抽出されたテキストの各々に対し、以下に説明する処理210を実行するステップ208とを含む。
【0022】
処理210は、処理対象となっているテキストの内、接続語の前までを抽出するステップ220と、ステップ220で抽出されたテキストに、検索された感情語をラベルとして付すステップ222と、ステップ220で抽出され、ステップ222で感情語のラベルが付されたテキストを学習データとして学習用テキスト記憶部82に格納するステップ224とを含む。
【0023】
図4に、
図1に示す学習用テキスト記憶部82に格納されたテキストの集合を模式的に示す。
図4を参照して、各テキストには感情語(嬉しい、悲しい、楽しい、しんどい)が付されている。これら感情語が後述するように応答発話を選択する際の評価項目となる。このラベルによりテキストはグループに分けられる。学習処理部84における感情判定モデル60の学習は、テキストが入力されると、そのテキストが学習用テキスト記憶部82に記憶されたテキストに付されたラベル(感情語)の各々について、そのラベルにより表される感情に合致するテキストである確率を出力するように行われる。ここでの確率は、そのテキストがそのラベルにより表される感情を表すものである「らしさ」を示す、すなわちその感情に合致する度合いを示すスコアと考えることができる。ラベルは複数個あり、確率はこれら各ラベルを排他的な評価項目として取り扱うことにより算出される。
【0024】
図5に感情判定モデル60の構成を概念的に示す。本実施の形態では、感情判定モデル60はコンボリューショナル・ニューラル・ネットワーク(CNN)からなる。感情判定モデル60は、入力されるテキストを構成する単語列が入力される複数個の入力240と、感情語辞書54に記憶された感情語の数だけの出力242とを持つ。本実施の形態では、入力される単語はいずれも、図示しない単語変換部により単語の識別子に変換され、入力240として与えられる。出力242の各々は感情語辞書54に記憶された感情語のいずれかに対応する。入力240に処理対象のテキストの単語列が与えられると、そのテキストが各感情語により表される感情に合致する確率が、各感情語に対応する出力に得られる。
【0025】
再び
図1を参照して、対話システム40はさらに、大量の会話文を記憶した会話文データベース64と、入力発話62を受け、感情判定モデル60を用いて、会話文データベース64から入力発話62に対する適切な応答発話68を選択し出力する対話装置66とを含む。
【0026】
図6に、会話文データベース64に記憶された会話文の例を示す。会話文データベース64には、
図6に示すような会話文が予め大量に収集され記憶されている。こうした会話文はどのようにして収集しても良いが、本実施の形態ではウェブ及びソーシャル・ネットワーキング・サービス上に存在する文を収集した。これら会話文は、そのテキストに基づいて検索可能となっている。
【0027】
再び
図1を参照して、対話装置66は、入力発話62に応答して、会話文データベース64に記憶された応答発話から応答発話候補の文を生成(本実施の形態では選択)する応答発話候補選択部90と、応答発話候補選択部90により選択された応答発話候補を記憶する応答発話候補記憶部92と、応答発話候補記憶部92に記憶された各応答発話候補について、感情判定モデル60を参照して各感情の評価値である感情スコアを算出する応答発話感情分析部94と、応答発話を選択するための基準をユーザが設定する際に使用する入出力装置98と、入出力装置98により設定された応答発話選択の基準を記憶する応答発話選択基準記憶部100と、応答発話選択基準記憶部100に記憶された応答発話選択基準にしたがって、応答発話感情分析部94により算出されたスコアに基づいて、応答発話候補記憶部92に記憶された応答発話候補の1つを選択して応答発話68として出力する応答発話選択・生成部96とを含む。
【0028】
図1に示す応答発話候補選択部90は、本実施の形態では入力発話62に含まれる単語の内、最も重要な単語を抽出し、その単語を含む会話文を会話文データベース64から抽出する。重要な単語としては、例えばtf/idf値が最大のものを採用できる。応答発話候補選択部90は、本実施の形態ではコンピュータプログラムにより実現される。
図7にそのコンピュータプログラムの制御構造をフローチャート形式で示す。
【0029】
図7を参照して、このプログラムは、入力発話62に含まれる内容語を抽出するステップ280と、ステップ280で抽出された内容語のいずれかを含む会話文を会話文データベース64から検索し抽出するステップ282と、ステップ282で抽出された会話文について、入力発話62の内容語と一致する内容語の数の多いものから順番に所定個数を選択するステップ284と、ステップ284で選択された会話文を応答発話候補として格納するステップ286とを含む。
【0030】
図1に示す応答発話感情分析部94も本実施の形態ではコンピュータプログラムにより実現される。
図8を参照して、このプログラムは、応答発話候補記憶部92に記憶された応答発話候補の各々に対して以下に述べるスコア算出処理310を実行するステップ300を含む。
【0031】
スコア算出処理310は、処理対象の応答発話候補の感情スコアを算出する処理である。スコア算出処理310は、処理対象の応答発話候補を応答発話候補記憶部92から読出すステップ320と、ステップ320で読出された応答発話候補を構成する単語の各々を識別子に変換して連結することにより、感情判定モデル60への入力パラメータを作成するステップ322と、ステップ322により作成された入力パラメータを
図5に示す感情判定モデル60の入力240に与えるステップ324と、ステップ324により与えられた入力パラメータに応答して感情判定モデル60の出力242に得られるスコアのベクトルの各要素(確率値)を、処理中の応答発話候補に対応するスコア配列に格納するステップ326とを含む。
【0032】
スコア配列は各応答発話候補に対応して準備される。したがって得られるこのスコア配列は2次元である。
図9にスコア配列の例を示す。
図9に示す例は、4つの応答発話候補の各々に対して算出された感情スコアを示している。例えば、応答発話候補「チョコレートを食べた」について算出された、「嬉しい」、「悲しい」、「楽しい」、及び「しんどい」という感情スコアはそれぞれ0.5、0.1、0.3及び0.1である。これらスコアは確率であるから、
図9に示す各行のスコアを横に加えた値は1となる。
【0033】
図10は、
図1に示す入出力装置98に表示される、応答発話選択の基準を設定するダイアログの例である。
図10を参照して、このダイアログ340は、「嬉しい」、「悲しい」、「楽しい」、及び「しんどい」という4つの感情の各々について、0から1の範囲でスコアの基準値を設定するために、4つのシークバー360、362、364及び366を持つ。各シークバー360、362,364及び366はそれぞれサム370、372、374及び376を持ち、これらサムを左右に移動させることにより各感情に対するスコアの基準値を設定できる。なお、本実施の形態では、各スコアの合計は1という制約がある。したがって、例えばあるシークバーのサムを左右に移動させたときにはその値を1から引き、それを残りの3つの感情のそれまで設定されていた基準値に応じて各感情に配分する必要がある。したがって、あるサムを移動させると、そのたびに他のサムも左右に移動することになる。
【0034】
図11に、
図1に示す応答発話選択・生成部96による応答発話の選択方法を示す。例えば3つの感情スコアを各評価項目の評価値と考えた場合、これら感情スコアを各軸に対応付けることにより、
図11に示すような3次元の立方体により囲まれた評価のための空間(評価空間)を考えることができる。この評価空間では、応答発話のスコアごとに対応する1点が定義できる。さらに、応答発話選択基準記憶部100に記憶された基準値に応じ、この評価空間内に基準点390を定めることができる。応答発話選択・生成部96は、応答発話感情分析部94により各応答発話候補に対して計算されたスコアを座標として用いることにより、各応答発話候補をこの評価空間内の1点に割り当て、その点と基準点390との間のユークリッド距離(以下、単に「距離」という。)を計算する。そして、基準点390との間の距離が最も小さな応答発話候補を応答発話68として選択する。なお、本実施の形態では、計算時間を短縮するために、基準点390を中心とした所定の探索範囲392内にある応答発話候補のみを抽出して距離の計算対象とする。ここでは距離としてユークリッド距離を用いているが、一般的に距離が満たすべき数学的条件を満たす測度であればどのようなものを用いても良い。
【0035】
本実施の形態では、この応答発話選択・生成部96もコンピュータプログラムにより実現される。
図12を参照して、このプログラムは、応答発話選択基準記憶部100から基準値を読出すステップ400と、探索範囲392を定めるステップ402とを含む。探索範囲392は、例えば各座標の値について基準値±αの範囲に定めることができる。αは本実施の形態では全ての座標について共通の定数値とする。しかし本発明はそのような実施の形態には限定されない。αを基準値の各座標値の例えば1/20等として座標別(感情別)に定めることもできる。又は、特定の座標については固定値とし、他の座標については基準値により変化させることもできる。
【0036】
このプログラムはさらに、感情スコアを構成する各値が、ステップ402で定めた探索範囲392内に存在する応答発話候補のみを応答発話候補記憶部92に記憶された候補から抽出するステップ404と、距離の最小値を記憶する変数にその変数の型で許容される最大数を代入するステップ406と、応答発話を表す変数に、予め定めたデフォルトの文を代入するステップ408と、ステップ404で抽出された応答発話候補の各々について以下に説明する処理412を実行することにより、基準点390からの距離が最小となる応答発話候補を選択するステップ410と、ステップ410で選択された応答発話候補を応答発話68として出力するステップ414とを含む。
【0037】
処理412は、処理対象の応答発話候補と、基準点390との距離を計算するステップ420と、ステップ420で計算された距離が、これまでに計算された最小値より小さいか否かを判定し、判定が否定なら現在の応答発話候補に対する処理412を終了するステップ422と、ステップ422の判定が肯定であれば、最小値にステップ420で計算された距離を代入し、応答発話を表す変数に処理中の応答発話候補を代入して処理412を終了するステップ424とを含む。
【0038】
[動作]
以上に構成を説明した対話システム40は以下のように動作する。動作には2つのフェーズがある。第1はモデル学習部58による感情判定モデル60の学習フェーズであり、第2は対話装置66による対話動作フェーズである。
【0039】
〈学習フェーズ〉
大規模テキストデータベース52には大量のテキストを格納し、データベース化する。また、接続語辞書56には予め接続語を格納しておき、感情語辞書54には接続語辞書56を用いて大規模テキストデータベース52から抽出した感情語を格納しておく。
【0040】
学習時、テキスト抽出・分類部80は、大規模テキストデータベース52から、接続語辞書56に記憶された接続語のいずれかと、感情語辞書54に記憶された感情語のいずれかが連続して現れるテキストを抽出し、各テキストにそのテキストが含む感情語をラベルとして付して出力する。学習用テキスト記憶部82は、これらラベル付きのテキストを記憶する。学習処理部84は、学習用テキスト記憶部82に記憶された学習用テキストを用いて感情判定モデル60の学習を行う。感情判定モデル60は前述したとおりCNNからなる。したがってこの感情判定モデル60の学習は、通常のニューラルネットワークと同様、誤差逆伝播方式により行える。こうして大規模テキストデータベース52に記憶された全てのテキストについて感情判定モデル60の学習が終わると、対話装置66による応答発話処理が可能になる。
【0041】
[対話動作フェーズ]
会話文データベース64には予め大量の会話文を格納し、テキストに含まれる任意の文字列に基づいて検索できるようデータベース化しておく。また、実際に対話動作を行う前に、ユーザは入出力装置98を用いて、
図10に示すようなダイアログ340を表示させ、応答の基準値を設定する。設定された基準値は応答発話選択基準記憶部100に記憶される。
【0042】
入力発話62が対話装置66の応答発話候補選択部90に与えられると、応答発話候補選択部90は、会話文データベース64から応答発話候補の会話文を選択する。具体的には、応答発話候補選択部90は、入力発話62から内容語を抽出し(
図7、ステップ280)、その内容語を含む会話文を会話文データベース64から抽出する(ステップ282)。さらに応答発話候補選択部90は、入力発話62のうちで重要な単語を抽出し、それら会話文の内で、この重要な単語を含むものを応答発話候補として抽出し(ステップ284)、応答発話候補記憶部92に格納する(ステップ286)。
【0043】
応答発話感情分析部94は、応答発話候補記憶部92に記憶された各応答発話候補について、感情判定モデル60を参照して感情スコアを算出する。より具体的には、応答発話感情分析部94は、応答発話候補記憶部92に記憶された応答発話候補を読み(
図8のステップ320)、感情判定モデル60への入力パラメータをその応答発話候補を構成する単語列から作成する(ステップ322)。この入力パラメータを感情判定モデル60の入力240(
図5参照)に入力して感情判定モデル60の出力を待ち(ステップ324)、感情判定モデル60の出力242(
図5参照)に得られるスコアのベクトルの各要素(確率値)を処理中の応答発話候補に対応するスコア配列に格納する(ステップ326)。この処理により、
図9に示すような2次元配列が得られる。
【0044】
応答発話選択・生成部96は、応答発話選択基準記憶部100から基準値を読出す(
図12、ステップ400)。応答発話選択・生成部96はさらに、この基準値に基づいてその基準値±αの範囲を
図11に示す探索範囲392に決定する(ステップ402)。応答発話選択・生成部96は、
図1に示す応答発話候補記憶部92に記憶された応答発話の内、応答発話感情分析部94に算出された感情スコアが探索範囲内392にあるもののみを抽出する(ステップ404)。さらに応答発話選択・生成部96は、距離の最小値を表す変数に、その変数のとり得る最大値を代入し(ステップ406)、応答発話を表す変数にデフォルト文を代入する(ステップ408)。
【0045】
応答発話選択・生成部96はさらに、ステップ404で抽出された各応答発話候補に対し、その応答発話候補と基準点390との間の距離を計算する(ステップ420)。この距離がこれまでに算出された最小値より小さければ(ステップ422でYES)、この距離を最小値に代入し、応答発話を表す変数にこの応答発話候補を代入して(ステップ424)、次の応答発話候補に処理を移す。ステップ422の判定が否定(ステップ422でNO)ならこの応答発話候補については何もせず、次の応答発話候補に処理を移す。
【0046】
こうして、全ての応答発話候補に対する処理412が終了すると、応答発話を表す変数には、
図11に示す基準点390との距離が最も小さな応答発話候補が格納されている。応答発話選択・生成部96は、この応答発話候補を応答発話68(
図1)として出力する(
図12、ステップ414)。
【0047】
以上のようにこの実施の形態によれば、ユーザが設定した感情スコアの配列に最も近い応答発話候補が応答発話として選択される。そのため、ユーザが対話として楽しいものを望むときには「楽しい」という感情のスコアが大きくなるように
図10に示すダイアログ340を用いて基準値を設定すれば、ユーザの望みに応じた楽しい会話を行うことができる。さらに、上記実施の形態では、感情語辞書54及び接続語辞書56を十分に準備することにより、感情語辞書54に記憶された感情語の範囲で任意の組合せを選び、対話装置66で選択できる。そのため、汎用性が極めて高い対話システムを得ることができる。
【0048】
[第2の実施の形態]
上記第1の実施の形態では、対話における感情に焦点を当てている。しかし本発明はそのような実施の形態には限定されない。例えば、多数のユーザが多くの発言を行うようなサイトでは、そのサイト特有の発言スタイルが形成されていたり、特有の話題に焦点があった発言のみが行われていたりする。例えば2ch(登録商標)等が有名である。ユーザがこうしたサイトでの発言を読むことを好んでいる場合、対話でも同じような発言スタイルを採用したり、特定の話題に関する話題に焦点が当てられていたりすることを望む場合があり得る。この第2の実施の形態は、第1の実施の形態で採用されていた「感情」に代えて、こうした発話スタイルを基準にした対話を可能にする。特にこの実施の形態は、特定サイトでの発言スタイルに近い発言をし、かつ、そのような特定サイトらしさとは独立に、発言の内容として最近のニュースに関する話題を扱うような対話システムを提供する。
【0049】
図13を参照して、第2の実施の形態に係る対話システム430は、大規模テキストデータベース52と、特定サイト及びニュースサイトのURLを格納した特定サイト/ニュースURLリスト452と、第1の実施の形態と同様にCNNからなり、発話が特定サイトのいずれかから得られた確率とそれ以外のサイトから得られた確率とを出力する特定サイト判別モデル448と、特定サイト判別モデル448とは独立に、入力発話がニュース記事である確率とそれ以外のサイトから得られた確率とを出力するニュース判別モデル450と、大規模テキストデータベース52及び特定サイト/ニュースURLリスト452を用いて、特定サイト判別モデル448及びニュース判別モデル450の学習を行うモデル学習部440とを含む。すなわち、特定サイト判別モデル448は発話が特定サイトから得られたか否かを評価項目とするのに対し、ニュース判別モデル450は、発話がニュース記事であるか否かという、特定サイト判別モデル448の評価項目とは独立なことがらを評価項目としている。
【0050】
対話システム430はさらに、ウェブ上から、対話の入力文とその応答文とのペアを大量に収集しデータベース化して得た入力・応答データベース444と、入力発話442に応答して、特定サイト判別モデル448及びニュース判別モデル450を参照して、入力・応答データベース444に格納された入力・応答の内で、入力発話442に近い入力発話とペアになった応答発話であって、ユーザが設定した「特定サイトらしさ」に近い発話スタイルを持ち、かつニュースらしさとしては最も高いスコアを持つ応答発話を選択して応答発話454として出力する対話装置446とを含む。
【0051】
モデル学習部440は、特定サイト/ニュースURLリスト452を参照して、大規模テキストデータベース52に格納されたテキストを、特定サイトのURLから収集したテキストとそれ以外からのテキストとに分類した第1のテキスト集合、及びニュース記事であるテキストとそれ以外のテキストとに分類した第2のテキスト集合を作成し、出所を示すラベル(特定サイト/それ以外、ニュース記事/それ以外)を付して、それぞれ出力するテキスト分類部460と、第1のテキスト集合を記憶する第1の学習用テキスト記憶部462と、第2のテキスト集合を記憶する第2の学習用テキスト記憶部463と、第1の学習用テキスト記憶部462に記憶された学習用テキストを用いて特定サイト判別モデル448の学習を行うための第1の学習処理部464と、第2の学習用テキスト記憶部463に記憶されたテキストを用いてニュース判別モデル450の学習を行う第2の学習処理部465とを含む。
【0052】
特定サイト判別モデル448及びニュース判別モデル450はいずれも、
図5に示す感情判定モデル60と基本的には同じ構成である。しかし、特定サイト判別モデル448の場合にはテキストが特定サイトのURL及びそれ以外のURL得られたものである確率をそれぞれ示す2つの出力を持つ点、ニュース判別モデル450の場合にはテキストがニュース記事である及びそれ以外である確率をそれぞれ示す2つの出力を持つ点でいずれも感情判定モデル60とは異なる。
【0053】
対話装置446は、入力発話442に応答して、入力・応答データベース444において、入力発話442に類似した入力発話を持つペアを検索し、検索されたペアの応答発話を応答発話候補として選択する応答発話候補選択部470と、応答発話候補選択部470により選択された応答発話候補を記憶する応答発話候補記憶部472と、応答発話候補記憶部472に記憶された応答発話候補の各々について、ニュース判別モデル450を参照してニュース記事である確率を算出し、ニュースらしさを示すスコアとして出力するニュースらしさスコア算出部474と、応答発話候補記憶部472に記憶された応答発話候補の各々について、特定サイト判別モデル448を参照して特定サイトのサイトから得られたものである確率を算出し、特定サイトらしさを示すスコアとして出力する特定サイトらしさスコア算出部475とを含む。応答発話候補選択部470による、類似した発話の検索には、例えば発話に含まれる単語からなる単語ベクトル間の類似度を用いたり、2つの発話の間の編集距離を用いたりすることが可能である。
【0054】
対話装置446はさらに、応答発話を選択するための基準を設定するためにユーザが用いる入出力装置478と、入出力装置478により設定された基準を記憶する応答発話選択基準記憶部480とを含む。本実施の形態では、応答発話の選択基準として設定できるのは特定サイトからの発話らしさのみである。ニュースらしさの選択基準はユーザにより設定されたものではなく、本実施の形態では最も高いもの、という基準を充足すること、というものである。
【0055】
対話装置446はさらに、特定サイトらしさスコア算出部475により計算された各応答発話候補の内で、特定サイトらしさのスコアがその基準値を中心とする所定範囲内にある応答発話候補のみを探索対象とし、その中でニュースらしさスコアが最高の応答発話候補を選択して応答発話454として出力する応答発話選択・生成部476を含む。
【0056】
図14に、ある応答発話候補の文について特定サイトらしさスコア算出部475により算出される特定サイトらしさのスコアとニュースらしさスコア算出部474により算出されるニュースらしさのスコアの例を示す。この例では、各スコアはそれぞれ別のモデルにより算出される。第1の実施の形態の場合と異なり、各文に対して算出されたスコアはそれぞれ0〜1の範囲に分布する。したがってそれらの値を合計しても必ずしも1にはならず、0から2の範囲内の値となる点に注意が必要である。
【0057】
図15に、応答発話選択・生成部476を実現するコンピュータプログラムの制御構造をフローチャート形式で示す。
図15を参照して、このプログラムは、応答発話選択基準記憶部480に記憶された基準値(特定サイトらしさのスコア)を読出すステップ490と、読出したスコアを中心とする所定範囲(基準値±α)を応答発話候補の探索範囲として定めるステップ492と、特定サイトらしさのスコアがステップ492で定められた探索範囲内にある応答発話候補のみを抽出するステップ494とを含む。
【0058】
このプログラムはさらに、ステップ494で抽出された応答発話候補を、ニュースらしさのスコアの降順でソートするステップ496と、ステップ496でソートされた応答発話候補の内で、先頭の応答発話候補を応答発話として選択し出力するステップ498とを含む。
【0059】
〈動作〉
この第2の実施の形態に係る対話システム430は以下のように動作する。予め大規模テキストデータベース52及び入力・応答データベース444を準備しておくことは第1の実施の形態と同様である。この対話システム430にも動作フェーズは学習と対話との2つがある。
【0060】
学習フェーズでは、モデル学習部440のテキスト分類部460は、特定サイト/ニュースURLリスト452を参照しながら、大規模テキストデータベース52に記憶されたテキストを、特定サイトからのテキストとそれ以外のテキストに分類して第1のテキスト集合を作成し、第1の学習用テキスト記憶部462に格納する。テキスト分類部460はさらに、大規模テキストデータベース52に記憶されたテキストを、ニュース記事のテキスト及びそれ以外のテキストに分類して第2のテキスト集合を作成し、第2の学習用テキスト記憶部463に格納する。この際、各テキストにはその出所を示すラベル(特定サイト/それ以外、ニュース記事/それ以外)が付される。
【0061】
第1の学習処理部464は第1の学習用テキスト記憶部462に記憶されたテキストの集合を用いて特定サイト判別モデル448の学習を行う。第2の学習処理部465は、第2の学習用テキスト記憶部463に記憶されたテキストの集合を用いてニュース判別モデル450の学習を行う。この学習の結果、発話のテキストが与えられると、特定サイト判別モデル448はその発話が特定サイトからか否かを示す2つの確率を出力し、ニュース判別モデル450はその発話がニュース記事であるか否かを示す2つの確率を出力する。特定サイトからのテキストである確率が特定サイトらしさのスコアであり、ニュース記事のテキストである確率がニュースらしさのスコアである。
【0062】
特定サイト判別モデル448及びニュース判別モデル450の学習が終了すると、対話装置446による対話処理が可能になる。
【0063】
〈対話〉
図13を参照して、入力発話442が与えられると、対話装置446の応答発話候補選択部470は、入力・応答データベース444に記憶されている入力・応答ペアの内、入力が入力発話442に類似しているものを所定個数検索し、対応する応答を応答発話候補として選択し応答発話候補記憶部472に格納する。
【0064】
ニュースらしさスコア算出部474は、応答発話候補記憶部472に記憶された各応答発話候補について、ニュース判別モデル450を用いてニュースらしさを算出する。特定サイトらしさスコア算出部475も同様に、各応答発話候補について、特定サイト判別モデル448を用いて特定サイトらしさを算出する。これらは各応答発話候補に関するスコアとして、
図14に示すような2次元配列として記憶され応答発話選択・生成部476に与えられる。
【0065】
応答発話選択・生成部476は、応答発話選択基準記憶部480に記憶された特定サイトらしさの基準値を読出し(
図15,ステップ490)、その基準値を中心とした基準値±αの範囲を応答発話候補の探索範囲に設定する(ステップ492)。応答発話選択・生成部476はさらに、探索範囲内の特定サイトスコアを持つ応答発話候補の中で(ステップ494)最もニュースらしさのスコアが高いものを選択し(ステップ496及び498)、応答発話454として出力する。
【0066】
本実施の形態では、異なる2つの評価項目を評価軸とし、一方の評価軸において設定された基準値に近い応答発話候補の内で、他方の評価軸で測定したスコアが最も高いものを応答発話として選択する。2つの評価軸の内、一方の評価軸に関する基準値を設定することだけが必要であって、基準値の設定が容易になるという効果がある。なお、本実施の形態では、説明を容易にするために、評価の軸を2つのみとした。しかし本発明はそうした実施の形態には限定されない。評価の軸を3つ以上とし、基準値を設定する軸を2つ以上、又は基準値を設定せずにスコアの高いものを選択する軸を2つ以上としてもよい。また、必ずしもスコアの高いものに限らず、任意の基準を充足するように基準を選択できる。例えばスコアが低いもの、予め設定した値に近いもの、探索範囲内にある応答発話候補のスコアの中央値を持つもの、又は平均値に近いもの等を選択するようにしてもよい。さらに、互いに独立にスコアが算出される複数の評価軸が存在する場合、各軸について独立に評価するのではなく、例えば第1の軸のスコアと第2の軸のスコアとの和(又は差、積、特定の関数の値等)が最大(又は最小)のものを選択する応用も可能である。なお、上記した応答発話選択・生成部476は、最初に探索範囲を決定した後、その探索範囲内でニュースらしさのスコアが最も高い応答発話候補を選択している。しかし本発明はそのような実施の形態には限定されず、最初にニュースらしさのスコアが高いものを選択した後、選択された応答発話候補の中で特定サイトらしさの基準値に最も近い応答発話候補を選択するようにしてもよい。
【0067】
[第3の実施の形態]
第3の実施の形態は、上記第1の実施の形態と第2の実施の形態とを組合せたものである。
図16を参照して、第3の実施の形態に係る対話システム510は、入力発話442が与えられると、第1の実施の形態で用いられた感情判定モデル60、並びに第2の実施の形態で用いられた特定サイト判別モデル448及びニュース判別モデル450を用いて、入力・応答データベース444に記憶された応答発話候補から、ユーザにより設定された基準値に最もよく合致するものを選択して応答発話528として出力する対話装置526を含む。
【0068】
対話装置526は、応答発話候補選択部470及び応答発話候補記憶部472と、ユーザが基準値を設定する際に使用する入出力装置550と、入出力装置550を用いて設定された基準値を記憶する応答発話選択基準記憶部552とを含む。本実施の形態では、第1の実施の形態で用いられた感情スコアと、第2の実施の形態で用いられた特定サイトらしさのスコア及びニュースらしさのスコアとを用いる。これらの内で、ユーザが設定可能なものはニュースらしさのスコア以外のものである。入出力装置550は、第1の実施の形態に関連して
図10に示したものと同様のダイアログで基準値を入力するためのものである。本実施の形態では、感情スコアについては第1の実施の形態と同様、感情ごとのスコアの合計が1となるような入力が行われるが、特定サイトらしさのスコアはそれらとは独立に0〜1の範囲で設定できるようにしておく必要がある。
【0069】
対話装置526はさらに、第1の実施の形態と同様の応答発話感情分析部94と、いずれも第2の実施の形態と同様のニュースらしさスコア算出部474及び特定サイトらしさスコア算出部475と、応答発話選択基準記憶部552に記憶された基準値に基づいて応答発話候補の探索範囲を設定し、応答発話候補記憶部472に記憶された応答発話候補の中で、探索範囲内にあり、かつニュースらしさのスコアが最も高いものを選択して応答発話528として出力する応答発話選択・生成部554とを含む。
【0070】
図17に、応答発話感情分析部94、ニュースらしさスコア算出部474、及び特定サイトらしさスコア算出部475により各応答発話候補に対して算出されたスコアの例を示す。この例でも、各文の感情スコアについては横に合計すると1になるが、特定サイトらしさスコア及びニュースらしさスコアはそれとは無関係にそれぞれ0〜1の範囲内となる。
【0071】
この第3の実施の形態に係る対話装置526の対話時の動作については、第1及び第2の実施の形態から明らかであるので、ここでは繰返さない。
【0072】
上記実施の形態によれば、様々な基準を設定することで、その基準に最も合致した応答発話を対話の応答として出力できる。ユーザがそのニーズ又は望みに合わせて基準値を設定することにより、同じ対話システムを利用してユーザのニーズ又は望みに合わせて発話内容が変化する対話システムを得ることができる。
【0073】
なお、上記実施の形態では、感情スコア、特定サイトらしさ、及びニュースらしさを応答発話選択の基準軸に採用している。しかし本発明はそのような実施の形態には限定されない。これ以外に、例えば発話内容が前向き(ポジティブ)か後ろ向き(ネガティブ)か、他サイトに転載された記事中の発話か否か、論文かそれ以外か、教師による発話かそれ以外か、ある年代以前に書かれた文か否か、発話者の年代がどの程度か、等を評価軸に採用することも可能である。また、これらの評価の軸を互いに自由に組合せることもできる。
【0074】
上記実施の形態では、CNNによって学習したモデルを用いて出力したスコア(確率値)に基づいて応答発話候補を選択している。しかし本発明はそのような実施の形態には限定されない。例えば学習者用の対話装置のような場合には、教科書に出現している頻度が高い単語を含む応答発話候補を選択してもよい。
【0075】
また、応答発話候補を決めるにあたっては、上記した第1の実施の形態、又は第2及び第3の実施の形態で使用したものに限定されるわけではない。入力発話との間にある関係が存在することが高い応答発話候補を抽出できるものであれば既存のものも、将来利用可能になるものも含めてどのようなものを用いてもよい。
【0076】
なお、本実施の形態では、CNNへの入力として単語の識別子列を用いているが、本発明はそうした実施の形態には限定されず、例えば単語ベクトルの形で入力するようにしてもよい。
【0077】
[コンピュータによる実現]
本発明の実施の形態に係る対話システム40、430及び510及びその構成要素は、いずれもコンピュータハードウェアと、そのコンピュータハードウェア上で実行されるコンピュータプログラムとによっても実現できる。
図18はこのコンピュータシステム630の外観を示し、
図19はコンピュータシステム630の内部構成を示す。
【0078】
図18を参照して、コンピュータシステム630は、メモリポート652及びDVD(Digital Versatile Disk)ドライブ650を有するコンピュータ640と、いずれもコンピュータ640に接続されたキーボード646と、マウス648と、モニタ642とを含む。
【0079】
図19を参照して、コンピュータ640は、メモリポート652及びDVDドライブ650に加えて、CPU(中央処理装置)656と、CPU656、メモリポート652及びDVDドライブ650に接続されたバス666と、起動プログラム等を記憶する読出専用メモリ(ROM)658と、バス666に接続され、上記対話システム40、430及び510の各部の機能を実現するプログラム命令、システムプログラム及び作業データ等を記憶するランダムアクセスメモリ(RAM)660と、ハードディスク654を含む。コンピュータシステム630はさらに、他端末との通信を可能とするネットワーク668への接続を提供するネットワークインターフェイス(I/F)644を含む。
【0080】
コンピュータシステム630を上記した実施の形態に係る対話システム40、430及び510並びにその各機能部として機能させるためのコンピュータプログラムは、DVDドライブ650又はメモリポート652に装着されるDVD662又はリムーバブルメモリ664に記憶され、さらにハードディスク654に転送される。又は、プログラムはネットワーク668を通じてコンピュータ640に送信されハードディスク654に記憶されてもよい。プログラムは実行の際にRAM660にロードされる。DVD662から、リムーバブルメモリ664から又はネットワーク668を介して、直接にRAM660にプログラムをロードしてもよい。
【0081】
このプログラムは、コンピュータ640を、上記実施の形態に係る対話システム40、430及び510の各機能部として機能させるための複数の命令からなる命令列を含む。コンピュータ640にこの動作を行わせるのに必要な基本的機能のいくつかはコンピュータ640上で動作するオペレーティングシステム若しくはサードパーティのプログラム又はコンピュータ640にインストールされる、ダイナミックリンク可能な各種プログラミングツールキット又はプログラムライブラリにより提供される。したがって、このプログラム自体はこの実施の形態のシステム、装置及び方法を実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令の内、所望の結果が得られるように制御されたやり方で適切な機能又はプログラミングツールキット又はプログラムライブラリ内の適切なプログラムを実行時に動的に呼出すことにより、上記したシステム、装置又は方法としての機能を実現する命令のみを含んでいればよい。もちろん、独立したプログラムのみで必要な機能を全て提供してもよい。
【0082】
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内での全ての変更を含む。