以下、対話装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、ユーザが装置から情報の提示や情報の推薦を受けながら、候補を選択する相談型の対話装置について述べる。なお、本実施の形態における対話装置において、ユーザとのインタラクションは音声により行うが、音声による入出力は必須ではない。
嗜好に合った候補を選択する際には、多くの要因(後述する決定要因と同意義)を考慮する必要がある。対話装置を利用するユーザは、そのような要因を必ずしも全て把握しているわけではないため、対話装置はユーザに対して情報推薦を行い、対話装置が保有する知識とユーザの知識とのギャップを埋める必要がある。
本実施の形態において、複数の候補(ここでは、主として、スポットと言う)の中からユーザに適した候補を選択する相談型対話のモデルを実装する対話装置について述べる。
図1は、本実施の形態における対話装置1のブロック図である。対話装置1は、知識ベース11、情報推薦手法格納部12、ユーザ状態情報格納部13、受付部14、スコア算出部15、文構成部16、文出力部17、ユーザ状態情報更新部18を備える。
受付部14は、音声受付手段141、音声認識手段142を備える。
文構成部16は、文パターン情報取得手段161、変数値取得手段162、文構成手段163を備える。
ユーザ状態情報更新部18は、ユーザ提示用語取得手段181、装置提示用語取得手段182、嗜好ベクトル更新手段183、知識ベクトル更新手段184を備える。
知識ベース11は、2以上のスポット情報を格納している。スポット情報とは、スポットと、1以上の決定要因と、評価値とを有する情報である。スポットとは、スポットを識別する情報と同意義であり、例えば、スポット名である。スポットとは、観光のスポット、レストラン、店舗など、通常、ユーザが訪れる場所である。ただし、対話の対象となるものであれば何でも良い。例えば、スポットとは、企業、人の集まり、概念などでも良く、広く解する。また、決定要因は、スポットを決定するための要因である。また、決定要因は、スポットの属性とも言える。決定要因は、スポットの評価の観点とも言える。スポットが観光地である場合、決定要因は、例えば、「庭園で有名」「混雑していない」「世界遺産」「景色がいい」などである。また、評価値は、スポットの1以上の各決定要因の評価を示す情報である。評価値は、「1(○),0(×)」などの2値(2段階)でも良いし、1から5の整数などの多段階でも良い。評価値は、スポットが決定要因に当てはまるか否かを示す評価の値である。スポット情報は、スポットと決定要因に対応する説明文を有しても良い。スポット情報が説明文を有する場合、通常、一のスポットと一の決定要因ごとに説明文を有する。
知識ベース11は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。知識ベース11にスポット情報が記憶される過程は問わない。例えば、記録媒体を介してスポット情報が知識ベース11で記憶されるようになってもよく、通信回線等を介して送信されたスポット情報が知識ベース11で記憶されるようになってもよく、あるいは、入力デバイスを介して入力されたスポット情報が知識ベース11で記憶されるようになってもよい。
情報推薦手法格納部12は、2以上の情報推薦手法を格納している。情報推薦手法とは、文パターン情報と、文パターン情報の評価情報とを有する情報である。文パターン情報とは、対話装置1が出力する文または対話装置1が出力する文のパターンを示す情報である。文パターン情報とは、ユーザから受け付けた文に含まれる用語、着目スポット、システム(対話装置1)が出力した文に含まれる用語、1以上の決定要因のうちの1以上の情報を変数とする情報である。また、文パターン情報の評価情報とは、文パターン情報を選択する際に利用される情報である。評価情報は、最新のユーザ状態情報に対して、各情報推薦手法が選択されるべき度合いを示すスコアを算出する元になる情報であり、文パターン情報に対応付けられている情報である。評価情報は、例えば、ユーザ状態情報に対して乗算されるベクトルである。
また、情報推薦手法には、例えば、以下の6つの手法がある。(1)現在話題のスポットに関する情報推薦(手法1)、(2)現在話題の決定要因に関する情報推薦(手法2)、(3)オープンプロンプト(手法3)、(4)決定要因の提示1(手法4)、(5)決定要因の提示2(手法5)、(6)ユーザが、興味があると推定されるスポットの推薦(手法6)である。手法1は、直前に説明したスポットについて、詳細な説明を推薦する文パターン情報と文パターン情報の評価情報とを有する現在話題スポット情報推薦手法である。手法2は、直前に説明した決定要因に関連した別の観光スポットを推薦する文パターン情報と文パターン情報の評価情報とを有する現在話題決定要因情報推薦手法である。手法3は、特に情報を推薦せず、オープンプロンプトを示す文パターン情報と文パターン情報の評価情報とを有するオープンプロンプト情報推薦手法である。手法4は、対話装置1が説明可能な決定要因を提示する手法である。手法4が選択された場合、対話装置1が推定するユーザの知識が低い決定要因から選択する。手法5は、手法4と同様に、対話装置1が説明可能な決定要因を提示する手法である。手法5が選択された場合、対話装置1が推定するユーザの知識が高い決定要因から選択する。手法6は、対話装置1が推定するユーザの興味に基づいて、ユーザが最も興味を示すと考えられるスポットkを選択し、ユーザに提示する手法である。
情報推薦手法格納部12は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
情報推薦手法格納部12に情報推薦手法が記憶される過程は問わない。例えば、記録媒体を介して情報推薦手法が情報推薦手法格納部12で記憶されるようになってもよく、通信回線等を介して送信された情報推薦手法が情報推薦手法格納部12で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報推薦手法が情報推薦手法格納部12で記憶されるようになってもよい。
ユーザ状態情報格納部13は、ユーザの状態を示す情報であり、1以上の各決定要因に対するユーザの嗜好を示す情報である嗜好ベクトルと、1以上の各決定要因に対するユーザの知識を示す知識ベクトルとを有するユーザ状態情報を格納している。
ユーザ状態情報は、ユーザの決定要因の観点からのスポットに対する重要度を示す1以上の局所重みに関する情報である局所重み情報を含むことは好適である。ユーザの決定要因mの観点からのスポットnに対する局所重みvnmは、例えば、対話装置1が情報推薦手法1または情報推薦手法2または情報推薦手法6を用いてユーザにスポットの評価を知らせた場合に「1」をとるものとする。なお、これは、ユーザは、対話装置1から提示された情報のみから判断すると仮定している。また、ユーザ状態情報格納部13のユーザ状態情報は、対話の進行とともに、動的に変更される。
ユーザ状態情報格納部13は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
ユーザ状態情報格納部13にユーザ状態情報が記憶される過程は問わない。例えば、記録媒体を介してユーザ状態情報がユーザ状態情報格納部13で記憶されるようになってもよく、通信回線等を介して送信されたユーザ状態情報がユーザ状態情報格納部13で記憶されるようになってもよく、あるいは、入力デバイスを介して入力されたユーザ状態情報がユーザ状態情報格納部13で記憶されるようになってもよい。
受付部14は、ユーザが入力した文を受け付ける。ここで、受け付けとは、通常、音声の受け付けである。ただし、受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。つまり、入力とは、音声入力、文字列入力等であり、入力手段は問わない。
文の入力手段は、マイクやキーボードやマウスやメニュー画面によるもの等、何でも良い。受付部14は、マイクやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
音声受付手段141は、ユーザが入力した音声を、マイクから受け付ける。
音声認識手段142は、音声受付手段141が受け付けた音声を認識し、文字列に変換する。音声認識手段142における音声認識方法は問わない。音声認識手段142は、公知技術であるので、詳細な説明は省略する。音声認識手段142は、通常、MPUやメモリ等から実現され得る。音声認識手段142の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
スコア算出部15は、ユーザ状態情報格納部13のユーザ状態情報を、情報推薦手法格納部12に格納されている2以上の各情報推薦手法が有する評価情報に適用し、2以上の各情報推薦手法に対する2以上のスコアを算出する。また、スコア算出部15は、ユーザ状態情報更新部18が更新したユーザ状態情報を、情報推薦手法格納部12に格納されている2以上の各情報推薦手法が有する評価情報に適用し、2以上の各情報推薦手法に対する2以上のスコアを算出する。
スコア算出部15は、通常、文出力部17が文を出力する前(直前であるとは限らない)に、スコアを算出する。なお、スコア算出部15は、受付部14が文を受け付けるごとに、スコアを算出することは好適である。また、ここで、適用とは、例えば、演算式「スコア=f(ユーザ状態情報,評価情報)」によりスコアを算出することである。また、例えば、fは「スコア=ユーザ状態情報×評価情報」である。つまり、スコア算出部15は、次に対話装置1が出力すべき文の文パターン情報を決定するために、文パターン情報と対応付けて管理されている評価情報と動的に変化するユーザ状態情報とを用いて、情報推薦手法ごとにスコアを算出する。
スコア算出部15は、通常、MPUやメモリ等から実現され得る。スコア算出部15の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
文構成部16は、スコア算出部15が算出した2以上のスコアを用いて、一の情報推薦手法が有する文パターン情報を取得し、文パターン情報から文を構成する。通常、文構成部16は、スコア算出部15が算出したスコアが最大の情報推薦手法が有する文パターン情報を取得し、文パターン情報から文を構成する。ここで、文パターン情報が文である場合は、文の構成とはNOP(何らの処理もしない)である。また、文パターン情報が変数を含む文のパターン情報であれば、文の構成とは、直前の出力文や直前の受け付けられた文や、着目している決定要因や着目しているスポットなどから変数の値を取得し、取得した変数の値を文パターン情報に代入する処理である。なお、着目している決定要因とは、1以上のスポットを出力する元になった決定要因である。また、着目しているスポットとは、1以上の決定要因を出力する元になったスポットである。なお、文構成部16は、直前のユーザ入力文、または/および直前の対話装置1の出力文から、着目スポットや着目決定要因を取得する処理も行う。かかる処理の詳細については後述する。
文構成部16は、通常、MPUやメモリ等から実現され得る。文構成部16の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
文パターン情報取得手段161は、スコア算出部15が算出した2以上のスコアのうち最も大きいスコアに対応する一の情報推薦手法が有する文パターン情報を、情報推薦手法格納部12から取得する。
変数値取得手段162は、文パターン情報取得手段161が取得した文パターン情報に含まれる1以上の変数を取得し、変数に対応するスポットまたは決定要因を、文出力部17が直前に出力した文、または受付部14が直前に受け付けた文のうちの1以上の文から取得する。また、変数値取得手段162は、文パターン情報取得手段161が取得した文パターン情報に含まれる1以上の変数を取得し、変数に対応する候補となる1以上のスポットまたは1以上の決定要因を、文出力部17が直前に出力した文、または受付部14が直前に受け付けた文のうちの1以上の文から取得し、候補となる1以上のスポットまたは1以上の決定要因から、候補となる1以上のスポットまたは1以上の決定要因に対応する知識ベース11の評価値を用いて、変数に対応するスポットまたは決定要因を選択する。変数値取得手段162は、現在着目しているスポットである着目スポット、または現在着目している決定要因である着目決定要因から、変数に対応するスポットまたは決定要因を取得しても良い。
文構成手段163は、文パターン情報取得手段161が取得した文パターン情報の変数の箇所に、変数値取得手段162が取得した用語(通常、スポットまたは決定要因)を挿入して文を構成する。文構成手段163は、出力される文が自然な流暢な文となるように、変形する処理を行っても良い。かかる処理は公知技術であるので詳細な説明を省略する。
文出力部17は、文構成部16が構成した文を出力する。ここで、出力とは、通常、音声出力である。つまり、文出力部17は、文構成部16が構成した文を音声出力することは好適である。ただし、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、外部の装置(音声出力装置や表示装置など)への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
文出力部17は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。文出力部17は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
ユーザ状態情報更新部18は、受付部14が受け付けた文、または文出力部17が出力した文のうちの1以上の文から、少なくとも1以上のスポットまたは1以上の決定要因を取得し、当該1以上のスポットまたは1以上の決定要因を用いて、ユーザ状態情報格納部13のユーザ状態情報を更新する。ユーザ状態情報更新部18は、受付部14が受け付けた文、または文出力部17が出力した文のうちの1以上の文を形態素解析し、特定の品詞(名詞や形容詞や形容動詞など)の用語を取得し、当該用語をキーとして、知識ベース11を検索し、知識ベース11に格納されている用語をスポットまたは決定要因として取得しても良い。また、ユーザ状態情報更新部18は、受付部14が受け付けた文、または文出力部17が出力した文のうちの1以上の文から漢字列を取得し、当該漢字列をキーとして、知識ベース11を検索し、知識ベース11に格納されている漢字列をスポットまたは決定要因として取得しても良い。そして、ユーザ状態情報更新部18は、通常、取得したスポットまたは決定要因についてのユーザ状態情報を構成する要素の値(嗜好ベクトルや知識ベクトルなどの要素)が上昇するようにユーザ状態情報を更新する。また、ユーザ状態情報更新部18は、通常、受付部14が文を受け付けるごとに更新する。ただし、ユーザ状態情報更新部18は、文出力部17が文を出力するごとに更新しても良い。
ユーザ状態情報更新部18は、通常、MPUやメモリ等から実現され得る。ユーザ状態情報更新部18の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
ユーザ提示用語取得手段181は、受付部14が受け付けた文から少なくとも1以上の決定要因を取得する。ユーザ提示用語取得手段181は、肯定的な決定要因のみを取得しても良いし、肯定/否定を検知して、各カテゴリー(肯定/否定)ごとに決定要因を取得しても良い。ユーザ提示用語取得手段181は、例えば、受付部14が受け付けた文から自立語を取得し、自立語が知識ベース11の決定要因である場合に、当該自立語を決定要因として取得する。また、ユーザ提示用語取得手段181は、着目決定要因を取得しても良い。
装置提示用語取得手段182は、文出力部17が出力した文のうちの1以上の文から、少なくとも1以上の決定要因を取得する。装置提示用語取得手段182は、例えば、文出力部17が出力した文から自立語を取得し、自立語が知識ベース11の決定要因である場合に、当該自立語を決定要因として取得する。なお、文出力部17が出力した文とは、文構成部16が構成した文と同意義である。また、装置提示用語取得手段182は、肯定的な決定要因のみを取得しても良いし、肯定/否定を検知して、各カテゴリー(肯定/否定)ごとに決定要因を取得しても良い。また、装置提示用語取得手段182は、着目決定要因を取得しても良い。
嗜好ベクトル更新手段183は、ユーザ提示用語取得手段181が取得した1以上の決定要因に対する嗜好ベクトルの要素の値を高くするように、ユーザ状態情報を更新する。また、嗜好ベクトル更新手段183は、装置提示用語取得手段182が取得した1以上の決定要因の中で、ユーザ提示用語取得手段181が取得できなかった1以上の決定要因に対する嗜好ベクトルの要素の値を低くするように、ユーザ状態情報を更新する。これは、対話装置1が出力したが、ユーザに選択されなかった決定要因の値を低くすることである。
知識ベクトル更新手段184は、装置提示用語取得手段182が取得した1以上の決定要因に対する知識ベクトルの要素の値を高くするように、ユーザ状態情報を更新する。
次に、対話装置1の動作について、図2のフローチャートを用いて説明する。
(ステップS201)文出力部17は、予め保持している初期文を出力する。初期文とは、対話装置1が動作開始の際(例えば、起動時)にユーザに出力する文である。初期文は、例えば、「京都観光案内システムです。お好みの観光スポットを推薦します。」という文である。
(ステップS202)受付部14は、ユーザから文を受け付けたか否かを判断する。文を受け付ければステップS203に行き、文を受け付けなければステップS202に戻る。
(ステップS203)受付部14の音声認識手段142は、ステップS202で受け付けた文を音声認識し、文字列の文(文字コード列の文)を取得する。
(ステップS204)受付部14または図示しない手段が、受付部14が受け付けた文が終了条件を満たすか否かを判断する。終了条件を満たせば処理を終了し、終了条件を満たさなければステップS205に行く。なお、終了条件とは、例えば、ユーザの入力文が、予め決められた文のパターンに合致する文を含むことである。予め決められた文のパターンとは、例えば、「<スポット>に行きます。」「<スポット>に決めました。」などである。
(ステップS205)スコア算出部15は、2以上の各情報推薦手法に対する2以上のスコアを算出する。スコア算出処理の詳細について、図3のフローチャートを用いて説明する。
(ステップS206)文構成部16は、出力する1以上の文を構成する。文構成処理の詳細について、図4のフローチャートを用いて説明する。
(ステップS207)文出力部17は、文構成部16が構成した1以上の文を出力する。
(ステップS208)ユーザ状態情報更新部18は、ユーザ状態情報更新処理を行う。ユーザ状態情報更新処理の詳細について、図6のフローチャートを用いて説明する。
なお、図2のフローチャートにおいて、処理の終了前に、文出力部17は、予め決められた文や、予め決められた文パターンから構成された文を出力しても良い。
次に、ステップS205のスコア算出処理の詳細について、図3のフローチャートを用いて説明する。
(ステップS301)スコア算出部15は、ユーザ状態情報格納部13からユーザ状態情報を読み出す。
(ステップS302)スコア算出部15は、カウンタiに1を代入する。
(ステップS303)スコア算出部15は、情報推薦手法格納部12の中に、i番目の情報推薦手法が存在するか否かを判断する。i番目の情報推薦手法が存在すればステップS304に行き、存在しなければ上位処理にリターンする。
(ステップS304)スコア算出部15は、i番目の情報推薦手法が有する評価情報を読み出す。
(ステップS305)スコア算出部15は、ステップS301で読み出したユーザ状態情報と、ステップS304で読み出した評価情報とを用いて、i番目の情報推薦手法のスコアを算出し、当該スコアをi番目の情報推薦手法と対応付けて一時蓄積する。スコア算出部15は、例えば、ステップS301で読み出したユーザ状態情報とステップS304で読み出した評価情報と乗算し、スコアを算出する。
(ステップS306)スコア算出部15は、カウンタiを1、インクリメントする。ステップS303に戻る。
なお、図3のフローチャートにおいて、スコア算出部15のスコア算出方法は、問わない。
次に、ステップS206の文構成処理の詳細について、図4のフローチャートを用いて説明する。
(ステップS401)文構成部16は、直前のユーザ入力文、または/および直前の対話装置1の出力文を自然言語処理し、スポットを取得する。文構成部16は、例えば、直前のユーザ入力文、または/および直前の対話装置1の出力文を形態素解析し、自立語を取得し、当該自立語をキーとして知識ベース11を検索し、知識ベース11に存在するスポットを取得する。ただし、ここで、スポットを取得できない場合もあり得る。
(ステップS402)文構成部16は、直前のユーザ入力文、または/および直前の対話装置1の出力文を自然言語処理し、決定要因を取得する。文構成部16は、例えば、直前のユーザ入力文、または/および直前の対話装置1の出力文を形態素解析し、自立語を取得し、当該自立語をキーとして知識ベース11を検索し、知識ベース11に存在する決定要因を取得する。ただし、ここで、決定要因を取得できない場合もあり得る。
(ステップS403)文構成部16は、ステップS401でスポットを取得できたか否かを判断する。取得できればステップS404に行き、取得できなければステップS405に行く。
(ステップS404)文構成部16は、変数「着目スポット」に、ステップS401で取得したスポットを代入する。なお、変数「着目スポット」の値は、現在、対話において着目されているスポットである。また、変数「着目スポット」の値は、通常、一のスポットである。
(ステップS405)文構成部16は、ステップS402で決定要因を取得できたか否かを判断する。取得できればステップS406に行き、取得できなければステップS407に行く。
(ステップS406)文構成部16は、変数「着目決定要因」に、ステップS402で取得した決定要因を代入する。なお、変数「着目決定要因」の値は、現在、対話において着目されている決定要因である。また、変数「着目決定要因」の値は、2以上の決定要因である場合もある。
(ステップS407)文構成部16は、変数「着目スポット」の値、および変数「着目決定要因」の値を用いて、知識ベース11を検索し、着目スポットおよび着目決定要因に対応する説明文を、知識ベース11から読み出す。なお、この説明文は、ユーザからの入力文に対する回答文である。通常、文構成部16は、変数「着目スポット」の値、および変数「着目決定要因」に対応する説明文を知識ベース11から読み出す。
(ステップS408)文構成部16は、推薦文の取得処理を行う。推薦文取得処理について、図5のフローチャートを用いて説明する。
なお、図4のフローチャートにおいて、回答文と推薦文を取得した。しかし、図4のフローチャートにおいて、推薦文のみを取得する、回答文と推薦文と他の文も取得するなど、種々の文の取得処理が考えられる。
次に、ステップS408の推薦文取得処理について、図5のフローチャートを用いて説明する。
(ステップS501)文構成部16の文パターン情報取得手段161は、スコア算出部15が算出した2以上のスコアのうち最も大きいスコアに対応する一の情報推薦手法が有する文パターン情報を、情報推薦手法格納部12から取得する。
(ステップS502)変数値取得手段162は、カウンタiに1を代入する。
(ステップS503)変数値取得手段162は、ステップS501で取得した文パターン情報の中の、i番目の変数が存在するか否かを判断する。存在すればステップS504に行き、存在しなければステップS508に行く。
(ステップS504)変数値取得手段162は、ステップS501で取得した文パターン情報の中の、i番目の変数を取得する。なお、この変数には、変数の値をどこから取得するかに関する情報も保持している。
(ステップS505)変数値取得手段162は、i番目の変数に代入される1以上の用語を取得する。この用語とは、通常、スポットまたは決定要因(決定要因を特定する単語等でも良い)である。
(ステップS506)文構成手段163は、ステップS504で取得した1以上の用語を、文パターン情報の中のi番目の変数の箇所に代入する。
(ステップS507)変数値取得手段162は、カウンタiを1、インクリメントする。
(ステップS508)文構成手段163は、取得した文を、自然な文に変更する。上位処理にリターンする。なお、自然な文に変更する必要がない場合は、ステップS508では何も処理されない。また、文を自然な文に変更する技術は公知技術であるので、詳細な説明を省略する。文を自然な文に変更する技術は、例えば、統計ベースの手法を用いる。
なお、図5のフローチャートにおいて、ステップS508の処理は行わなくても良い。
次に、ステップS208のユーザ状態情報更新処理の詳細について、図6のフローチャートを用いて説明する。
(ステップS601)ユーザ状態情報更新部18のユーザ提示用語取得手段181は、受付部14が受け付けた最新(直前)の文から、1以上の決定要因を取得する。また、直前に受け付けた文から1以上の決定要因を取得できない場合、ユーザ提示用語取得手段181は、着目決定要因を取得する。また、ユーザ提示用語取得手段181は、受付部14が受け付けた最新(直前)の文から、1以上のスポットを取得する。そして、ユーザ提示用語取得手段181は、取得した決定要因または/および取得したスポットを、バッファに一時格納する。
(ステップS602)嗜好ベクトル更新手段183は、ユーザ状態情報格納部13のユーザ状態情報が有する嗜好ベクトルを読み出す。そして、嗜好ベクトル更新手段183は、ステップS601で取得した決定要因に対応する要素の値が大きくなるように、ユーザ状態情報に含まれる嗜好ベクトルを更新する。
(ステップS603)装置提示用語取得手段182は、文出力部17が出力した最新(直前)の文から、1以上の決定要因を取得する。また、装置提示用語取得手段182は、文出力部17が出力した最新(直前)の文から、1以上のスポットを取得する。そして、装置提示用語取得手段182は、取得した決定要因または/および取得したスポットを、バッファに一時格納する。
(ステップS604)知識ベクトル更新手段184は、ユーザ状態情報格納部13のユーザ状態情報が有する知識ベクトルを読み出す。知識ベクトル更新手段184は、ステップS603で取得した決定要因に対応する要素の値が大きくなるように、ユーザ状態情報に含まれる知識ベクトルを更新する。
(ステップS605)ユーザ状態情報更新部18は、ユーザ状態情報格納部13のユーザ状態情報が有する対話のターン数を読み出す。なお、対話のターン数とは、対話が繰り返された対数である。そして、ユーザ状態情報更新部18は、読み出したターン数に1を加えた値を、新しいターン数として、ユーザ状態情報格納部13のユーザ状態情報を更新する。
(ステップS606)ユーザ状態情報更新部18は、直前ユーザ発話行為情報を更新する。直前ユーザ発話行為情報は、直前に受付部14が受け付けた文に関する情報であり、ユーザが要求した情報の種類(スポットのみ、決定要因名のみ、またはその両方等)に対応する情報である。
(ステップS607)ユーザ状態情報更新部18は、直前システム発話行為情報を更新する。直前システム発話行為情報は、直前に文出力部17が出力した文に関する情報であり、選択した情報推薦手法を特定する情報である。
(ステップS608)ユーザ状態情報更新部18は、システム提示履歴情報を更新する。なお、システム提示履歴情報は、対話装置1(システム)が出力したスポット、および決定要因の数である。ユーザ状態情報更新部18は、ステップS603でバッファに書き込んだ決定要因およびスポットを、それぞれユニーク処理し、バッファ内の決定要因の数およびスポットの数を取得する。そして、ユーザ状態情報更新部18は、バッファ内の決定要因の数およびスポットの数を、システム提示履歴情報として取得する。
なお、図6のフローチャートにおいて、ステップS605からS608において更新した情報は、ユーザ状態情報を構成する情報の例であり、その他の情報がユーザ状態情報を構成しても良い。
以下、本実施の形態における対話装置1の具体的な動作について説明する。対話装置1の概念図は図7である。本具体例において、対話装置1は、ユーザとの対話を進めながら、ユーザの訪問先の意思決定を支援し、京都の観光案内を行うシステムである。
図8は、知識ベース11が保持しているスポット情報管理表の一例である。スポット情報管理表は、スポットに関する情報であるスポット情報を2以上格納している。ここでのスポットは、京都の観光地である。なお、本明細書において、スポットとは、スポットを特定する情報(スポット識別子と言い換えても良い)である場合と、スポットの概念を示す場合とがある。また、スポット情報は、「スポット」「決定要因情報」「評価値」「説明文」を有する。「決定要因情報」は、決定要因を識別する「決定要因識別子」と決定要因を正確に示す句である(肯定的または否定的な用語も含む句である)「決定要因」を有する。また、本具体例において、決定要因は、「庭園が有名」「混雑しない」「世界遺産」「景色が良い」「アクセスが良い」「紅葉が有名」「桜が有名」「歴史で有名」「散策できる」「イベントがある」の10要因がある(順不同)、とする。「評価値」は、各スポットの決定要因に対する評価を示す情報であり、各スポットが、ここでは、決定要因情報が示す決定要因の特性を有している場合は「1」、有していない場合は「0」の値を採る。なお、「評価値」は、「1」「0」の2値ではなく、多段階の評価(例えば、「1」から「5」など)でも良い。
また、図9は、情報推薦手法格納部12の情報推薦手法管理表の一例である。情報推薦手法管理表は、6つの情報推薦手法を格納している。情報推薦手法は、「ID」「手法識別子」「文パターン情報」「評価情報」を有する。「ID」は、情報推薦手法を識別する数値である。「手法識別子」は、情報推薦手法を識別する文字列であり、その意義を示す。「文パターン情報」は、情報の推薦文を構成する元になる情報、または情報の推薦文(ID=3のみ)である。情報の推薦文においてタグ(先頭"<"、終端">"の情報)は変数である。また、文パターン情報の中の"{"および"}"で囲まれた情報は、直前の変数の値の取得方法(取得動作)を示す情報(以下、取得動作記述という。)である。<着目スポット>は、現在の着目スポットが代入される。<着目決定要因>は、現在の着目決定要因が代入される。また、<1以上の未出決定要因>は、着目スポットについて、今までの対話で出現しておらず、かつ着目スポットの評価値が「1」の決定要因が代入される。また、<1以上の未出スポット>は、着目決定要因について、今までの対話で出現しておらず、かつ着目決定要因の評価値が「1」のスポットが代入される。<最高嗜好スポット>は、ユーザ状態情報が有する嗜好ベクトルを元に、各スポットのランク(嗜好値)を算出した場合に最高点になるスポットである。取得動作記述「{select 3以下の決定要因 where 知識ベクトル内の値が低い順}」は、知識ベクトル内の決定要素の値が低い順に3以下の決定要因を取得する動作を示す。なお、この取得動作記述は、<1以上の未出決定要因>に付随しているので、知識ベクトル内の決定要素の値が低い順に、3以下の未出の決定要因を取得する動作を示すこととなる。取得動作記述「{select 3以下の決定要因 where 嗜好ベクトル内の値が高い順}」は、嗜好ベクトル内の値が高い順に3以下の決定要因を取得する動作を示す。なお、この取得動作記述は、<1以上の未出決定要因>に付随しているので、嗜好ベクトル内の値が高い順に、3以下の未出の決定要因を取得する動作を示すこととなる。取得動作記述「{select 最高嗜好スポット where 嗜好値が最大のスポット}」は、現在のユーザ状態情情報から、ユーザから見て、最大の嗜好値であるとシステムが推定するスポットを取得することを示す。例えば、この取得動作記述は、嗜好値を算出する演算式に嗜好ベクトル、スポットごとに各決定要因の評価値を代入し、嗜好値を算出し、最大の嗜好値を有するスポットを取得する動作を示す。「評価情報」は、情報推薦手法ごとに保持している情報である。そして、現在のユーザ状態情報と情報推薦手法が有する評価情報とを用いて、各情報推薦手法のスコアが算出され、当該スコアが最大の情報推薦手法に対応する文パターン情報を用いて、推薦文が構成される。例えば、現在のユーザ状態情報(ベクトル)と情報推薦手法が有する評価情報(ベクトル)とが乗算され、情報推薦手法のスコアが算出される。
また、ユーザ状態情報格納部13は、以下に説明するユーザ状態情報を格納している、とする。例えば、ユーザ状態情報は、知識ベクトル「Kuser」、嗜好ベクトル「Puser」、および局所重み行列「Vuser」の3要素を有する、とする。ここでは、簡単のため、ユーザの嗜好ベクトル「Puser=(p1,p2,・・・,pM)」の要素は、「1」または「0」の2値からなるパラメータである、とする。すなわち、ユーザがある決定要因mに興味があり(もしくは潜在的に興味があり)、スポット決定する際に重視する場合にpmは「1」をとるものとする。また、ユーザが、(ユーザ自身も気づいていない)潜在的な嗜好を持っている状態を表現するために、ユーザの知識ベクトル「Kuser=(k1,k2,・・・,kM)」を導入する。ユーザが、システム(対話装置1)が決定要因mを扱えることを知っている、もしくはシステムが決定要因mを推薦した場合にベクトルの要素kMは、「1」をとる。これらのベクトルを用いることにより、例えば、決定要因mが、ユーザが潜在的に興味を持っている要因であるが、ユーザはそれに気づいていないという状態は(km=0,pm=1)で表現できる。また、ユーザの決定要因mの観点からのスポットnに対する局所重みvnmは、ユーザは、システムから提示された情報のみから判断すると仮定して、システムが上記の6つの推薦手法のうち「ID=1,2,6」のいずれかの推薦手法を用いて、ユーザにスポットの評価を知らせた場合に「1」をとるものとする。
また、ここでのユーザ状態情報は、対話状態の特徴ベクトルに相当する。さらに詳細には、ユーザ状態情報は、ここでは、以下の6種類の情報を有する。第一は、ターン数である。ターン数は、ここでは、ノコギリ関数を利用することにより、5つのパラメータでターン数を表現する。第二は、直前ユーザ発話行為情報である。直前ユーザ発話行為情報は、例えば、ベクトル(xi,xi+1,xi+2,xi+3,xi+4)であり、(1 if auser t-1=xi ,otherwise 0)とする。ここで、「auser t-1」は直前のユーザの発話である。また、直前のユーザの発話が、システム(対話装置1)が推薦したスポット(スポット名と言い換えても良い)もしくは決定要因のみを含む場合には「xi=1」であり他のベクトルの要素は「0」である。また、システムから推薦されていないスポットを含む場合には「xi+1=1」であり他のベクトルの要素は「0」である。また、システムから推薦されていない決定要因のみを含む場合には「xi+2=1」であり他のベクトルの要素は「0」である。また、システムから推薦されていないスポット・決定要因の双方を含む場合には「xi+3=1」であり他のベクトルの要素は「0」である。さらに、これらのいずれも含まない場合には「xi+4=1」であり他のベクトルの要素は「0」とする。第三は、直前システム発話行為情報である。直前システム発話行為情報は、例えば、ベクトル(yi,yi+1,yi+2,yi+3,yi+4,yi+5,yi+6)であり、(1 if asys t-1=yi ,otherwise 0)とする。ここで、「asys t-1」は直前のシステムの発話である。また、直前のシステムの発話が、情報推薦手法1を用いた場合は「yi+1=1」であり他のベクトルの要素は「0」である。また、情報推薦手法2を用いた場合は「yi+2=1」であり他のベクトルの要素は「0」である。つまり、情報推薦手法nを用いた場合は「yi+n=1」であり他のベクトルの要素は「0」とする。第四は、ユーザの決定要因に対する知識ベクトルである。なお、知識ベクトルは、ユーザの決定要因に対する知識を、「Σn=1 N Pr(kn=1)」により算出しても良い。ここで、knは、n番目の決定要因に対する知識ベクトルの要素値である。また、Pr(k=1)は、「kが1である」と、システムが推定する事後確率(確信度)である。ここで、嗜好ベクトルの要素値は、「1」または「0」である、とする。第五は、システムが提示したスポット・決定要因数である。つまり、第五は、システム提示履歴情報であり、例えば、「Σn=1 N Σm=1 Mvnm」である。ここで、vnmは、対話装置1が有するスポットmの決定要因nに対する評価値である。第六は、嗜好ベクトルである。嗜好ベクトルは、ユーザの各決定要因に対する嗜好を示す情報である。なお、嗜好ベクトルは、ユーザが決定要因を重視する確率の期待値に置き換えても良い。この期待値は、「Pr(kn=1)×Pr(pn=1))」で示され、ここで、各決定要因ごと計10パラメータを有する。ここで、「pn」は、嗜好ベクトルの要素値である。ここで、嗜好ベクトルの要素値は、「1」または「0」である、とする。
そして、ユーザ状態情報格納部13が格納しているユーザ状態情報は、上記で説明した要素値を有するベクトルであり、29の要素値を有するベクトル(s1,s2,・・・,s29)である、とする。そして、ユーザ状態情報の初期値は、(s0001,s0002,・・・,s0029)である、とする。
また、文出力部17は、対話装置1が起動時に出力される文である初期文「京都観光システムです。お好みの観光スポットを推薦します。」を格納している、とする。
さらに、受付部14は、対話の終了条件である文のパターン「<スポット>に行きます。」「<スポット>に決めました。」を保持している、とする。なお、ここで<スポット>は、スポットが代入され得る変数である。
かかる状態において、ユーザは、対話装置1を起動した、とする。次に、文出力部17は、初期文を読み出し、初期文「京都観光システムです。お好みの観光スポットを推薦します。」を音声出力する。
次に、ユーザは、「仁和寺の桜について教えて。」と音声入力した、とする。すると、受付部14の音声受付手段141は、音声「仁和寺の桜について教えて。」を受け付ける。次に、音声認識手段142は、この音声を認識し、文「仁和寺の桜について教えて。」を取得する。
次に、受付部14は、入力された文「仁和寺の桜について教えて。」が終了条件である文パターン「<スポット>に行きます。」または「<スポット>に決めました。」に合致しない、と判断する。
次に、スコア算出部15は、各情報推薦手法に対する6つのスコアを算出する。つまり、まず、スコア算出部15は、ユーザ状態情報格納部13からユーザ状態情報(s0001,s0002,・・・,s0029)を読み出す。
次に、スコア算出部15は、情報推薦手法格納部12の中に、1番目から6番目までの各情報推薦手法が有する評価情報(ベクトル)と、ユーザ状態情報(s0001,s0002,・・・,s0029)とを、情報推薦手法ごとに乗算する。そして、スコア算出部15は、6つの情報推薦手法のスコアを算出する。
次に、文構成部16は、直前のユーザ入力文を自然言語処理し、スポット「仁和寺」を取得する。また、文構成部16は、直前のユーザ入力文を自然言語処理し、決定要因「桜」を取得する。なお、文構成部16は、例えば、ユーザ入力文を形態素解析し、自立語「仁和寺」「桜」「教えて」を取得する。そして、文構成部16は、3つの自立語をキーとして、知識ベース11を検索し、「仁和寺」がスポット、「桜」が決定要因であることを検知し、スポット「仁和寺」および決定要因「桜」を取得する。
次に、文構成部16は、変数「着目スポット」に、取得したスポット「仁和寺」を代入する。また、文構成部16は、変数「着目決定要因」に、取得した決定要因「桜」を代入する。
次に、文構成部16は、変数「着目スポット」の値「仁和寺」、および変数「着目決定要因」の値「桜」を用いて、知識ベース11を検索し、着目スポットおよび着目決定要因に対応する説明文「御室桜は、樹高が低く単弁の香り高い白花を根元から咲かせる珍しい桜です。開花時期が遅く、京都の春の終わりを飾ります。」を、知識ベース11から読み出す。この説明文は、回答文となる。
次に、文構成部16は、推薦文の取得処理を行う。つまり、まず、文構成部16の文パターン情報取得手段161は、スコア算出部15が算出した6つのスコアのうち最も大きいスコアに対応する一の情報推薦手法(ここでは、ID=1の手法)が有する文パターン情報「<着目スポット>は、<1以上の未出決定要因>。何か説明しましょうか?」を、図9の情報推薦手法管理表から取得する。
次に、変数値取得手段162は、文パターン情報から、1番目の変数<着目スポット>を取得する。次に、変数値取得手段162は、変数<着目スポット>に代入される1以上の用語(変数「着目スポット」の値「仁和寺」)を取得する。次に、文構成手段163は、取得した1以上の用語「仁和寺」を、文パターン情報の中の1番目の変数の箇所に代入し、「仁和寺は、<1以上の未出決定要因>。何か説明しましょうか?」を得る。
次に、変数値取得手段162は、文パターン情報から、2番目の変数<1以上の未出決定要因>を取得する。そして、変数値取得手段162は、変数<1以上の未出決定要因>を取得する。つまり、変数値取得手段162は、変数「着目スポット」の値「仁和寺」の評価値が「1」であり、既出の決定要因「桜」を除く決定要因である「景色が良い」「庭園が有名」「紅葉が有名」「世界遺産」「イベントがある」を取得する。そして、次に、文構成手段163は、取得した1以上の用語を、文パターン情報の中の2番目の変数の箇所に代入し、「仁和寺は、景色が良い、庭園が有名、紅葉が有名、世界遺産、イベントがある。何か説明しましょうか?」を得る。次に、文構成手段163は、「仁和寺は、景色が良い、庭園が有名、紅葉が有名、世界遺産、イベントがある。何か説明しましょうか?」を自然な文「仁和寺は、景色が良く、庭園、紅葉が有名で、世界遺産であり、イベントがあります。何か説明しましょうか?」に変換し、推薦文を取得する。
つまり、上記の処理は、「Method1((Spot仁和寺),(Det景色,Det庭園,Det紅葉,Det世界遺産,Detイベント))」を実行したこととなる。Method1()は、情報推薦手法1を適用することを意味する。「Spot仁和寺」はスポット「仁和寺」、「Det景色」は決定要因「景色」、「Det庭園」は決定要因「庭園」、「Det紅葉」は決定要因「紅葉」、「Det世界遺産」は決定要因「世界遺産」、「Detイベント」は決定要因「イベント」を意味する。
次に、文出力部17は、回答文「御室桜は、樹高が低く単弁の香り高い白花を根元から咲かせる珍しい桜です。開花時期が遅く、京都の春の終わりを飾ります。」を音声出力する。続いて、文出力部17は、推薦文「仁和寺は、景色が良く、庭園、紅葉が有名で、世界遺産であり、イベントがあります。何か説明しましょうか?」を音声出力する。
次に、ユーザ状態情報更新部18は、以下のように、ユーザ状態情報更新処理を行う。つまり、まず、ユーザ状態情報更新部18のユーザ提示用語取得手段181は、受付部14が受け付けた最新の文「仁和寺の桜について教えて。」から、1以上の決定要因「桜」を取得する。
そして、嗜好ベクトル更新手段183は、ユーザ状態情報格納部13のユーザ状態情報が有する嗜好ベクトルを読み出す。そして、嗜好ベクトル更新手段183は、取得した決定要因「桜」に対応する要素の値が大きくなるように、ユーザ状態情報に含まれる嗜好ベクトルを更新する。決定要因「桜」に対応する要素の値を、どの程度大きくするかについては問わない。この大きくする値は、固定の値でも、固定の割合でも、動的に変化しても良い。
次に、装置提示用語取得手段182は、文出力部17が出力した最新の推薦文「仁和寺は、景色が良く、庭園、紅葉が有名で、世界遺産であり、イベントがあります。何か説明しましょうか?」から、1以上の決定要因「景色」「庭園」「紅葉」「世界遺産」「イベント」を取得する。
次に、知識ベクトル更新手段184は、ユーザ状態情報格納部13のユーザ状態情報が有する知識ベクトルを読み出す。知識ベクトル更新手段184は、取得した決定要因「景色」「庭園」「紅葉」「世界遺産」「イベント」に対応する要素の値が大きくなるように、ユーザ状態情報に含まれる知識ベクトルを更新する。決定要因「景色」等に対応する要素の値を、どの程度大きくするかについては問わない。この大きくする値は、固定の値でも、固定の割合でも、動的に変化しても良い。
次に、ユーザ状態情報更新部18は、ユーザ状態情報格納部13のユーザ状態情報が有する対話のターン数「0」を読み出す。そして、ユーザ状態情報更新部18は、読み出したターン数「0」に1を加えた値「1」を、新しいターン数として、ユーザ状態情報格納部13のユーザ状態情報を更新する。
次に、ユーザ状態情報更新部18は、直前ユーザ発話行為情報を「0」から「1」に更新する。
次に、ユーザ状態情報更新部18は、直前システム発話行為情報を「0」から「1」に更新する。
次に、ユーザ状態情報更新部18は、システム提示履歴情報を構成するスポット数を「0」から「1」(「仁和寺」を出力したので)に更新する。また、ユーザ状態情報更新部18は、システム提示履歴情報を構成する決定要因数を「0」から「5」(「景色」「庭園」「紅葉」「世界遺産」「イベント」を出力したので)に更新する。
以上により、ユーザ状態情報が最新の値(s0101,s0102,・・・,s0129)に更新された。
次に、ユーザと対話装置1との対話が何度か行われ、5回目の発話「ここの景色はどうですか?」が、ユーザにより音声入力された、とする。なお、現在の着目スポットは「仁和寺」である。
次に、受付部14の音声受付手段141は、ユーザから音声による文「ここの景色はどうですか?」を受け付ける。
次に、受付部14の音声認識手段142は、受け付けた文「ここの景色はどうですか?」を音声認識し、文字列の文を取得する。
次に、受付部14は、入力された文「ここの景色はどうですか?」が終了条件である文パターン「<スポット>に行きます。」または「<スポット>に決めました。」に合致しない、と判断する。
次に、スコア算出部15は、6つの各情報推薦手法に対する6つのスコアを、上述と同様に算出する。
つまり、まず、スコア算出部15は、ユーザ状態情報格納部13から、現在のユーザ状態情報(s0501,s0502,・・・,s0529)を読み出す。
次に、スコア算出部15は、情報推薦手法格納部12の中に、1番目から6番目までの各情報推薦手法が有する評価情報(ベクトル)と、ユーザ状態情報(s0501,s0502,・・・,s0529)とを、情報推薦手法ごとに乗算する。そして、スコア算出部15は、6つの情報推薦手法のスコアを算出する。
次に、文構成部16は、直前のユーザ入力文を自然言語処理し、決定要因「景色」を取得する。なお、ここでは、文構成部16は、ユーザ入力文からスポットを取得できなかった。
次に、文構成部16は、変数「着目決定要因」に、取得した決定要因「景色」を代入する。
次に、文構成部16は、変数「着目スポット」の値「仁和寺」、および変数「着目決定要因」の値「景色」を用いて、知識ベース11を検索し、着目スポットおよび着目決定要因に対応する説明文「三門の上からは。京都市内が一望できます。」を、知識ベース11から読み出す。この説明文は、回答文となる。
次に、文構成部16は、推薦文の取得処理を行う。つまり、まず、文構成部16の文パターン情報取得手段161は、スコア算出部15が算出した6つのスコアのうち最も大きいスコアに対応する一の情報推薦手法(ここでは、ID=2の手法)が有する文パターン情報「<着目決定要因>ところですと、<1以上の未出スポット>などが紹介できます。」を、図9の情報推薦手法管理表から取得する。
次に、変数値取得手段162は、文パターン情報から、1番目の変数<着目決定要因>を取得する。次に、変数値取得手段162は、変数<着目決定要因>に代入される1以上の用語(変数「着目決定要因」の値「景色」)を取得する。次に、文構成手段163は、取得した1以上の用語「景色が良い」を、文パターン情報の中の1番目の変数の箇所に代入し、「景色が良いところですと、<1以上の未出スポット>などが紹介できます。」を得る。なお、「決定要因」に関する変数に値を代入する場合は、変数値取得手段162は、図8の属性値「決定要因」を取得する、とする。
次に、変数値取得手段162は、文パターン情報から、2番目の変数<1以上の未出スポット>を取得する。そして、変数値取得手段162は、変数<1以上の未出スポット>を取得する。つまり、変数値取得手段162は、変数「着目決定要因」の値「景色」の評価値が「1」であり、既出の決定要因「仁和寺」を除くスポットである「清水寺」「伏見稲荷大社」「鞍馬寺」を、知識ベース11(図8)から取得する。そして、次に、文構成手段163は、取得した用語「清水寺」「伏見稲荷大社」「鞍馬寺」を、文パターン情報の中の2番目の変数の箇所に代入し、「景色が良いところですと、清水寺、伏見稲荷大社、鞍馬寺などが紹介できます。」を得る。次に、文構成手段163は、「景色が良いところですと、清水寺、伏見稲荷大社、鞍馬寺などが紹介できます。」を自然な文に変換しようとするが、変更の必要がなく、推薦文「景色が良いところですと、清水寺、伏見稲荷大社、鞍馬寺などが紹介できます。」を取得する。
つまり、上記の処理は、「Method2((Spot清水寺,Spot伏見稲荷大社,Spot鞍馬寺),(Det景色))」を実行したこととなる。Method2()は、情報推薦手法2を適用することを意味する。「Spot清水寺」等はスポット「清水寺」等を意味する。
次に、文出力部17は、回答文「三門の上からは。京都市内が一望できます。」を音声出力する。続いて、文出力部17は、推薦文「景色が良いところですと、清水寺、伏見稲荷大社、鞍馬寺などが紹介できます。」を音声出力する。
次に、ユーザ状態情報更新部18は、以下のように、ユーザ状態情報更新処理を行う。つまり、まず、ユーザ状態情報更新部18のユーザ提示用語取得手段181は、受付部14が受け付けた最新の文「ここの景色はどうですか?」から、1以上の決定要因「景色」を取得する。
そして、嗜好ベクトル更新手段183は、ユーザ状態情報格納部13のユーザ状態情報が有する嗜好ベクトルを読み出す。そして、嗜好ベクトル更新手段183は、取得した決定要因「景色」に対応する要素の値が大きくなるように、ユーザ状態情報に含まれる嗜好ベクトルを更新する。決定要因「景色」に対応する要素の値を、どの程度大きくするかについては問わない。
次に、装置提示用語取得手段182は、文出力部17が出力した最新の推薦文「景色が良いところですと、清水寺、伏見稲荷大社、鞍馬寺などが紹介できます。」から、1以上の決定要因「景色」を取得する。
次に、知識ベクトル更新手段184は、ユーザ状態情報格納部13のユーザ状態情報が有する知識ベクトルを読み出す。知識ベクトル更新手段184は、取得した決定要因「景色」に対応する要素の値が大きくなるように、ユーザ状態情報に含まれる知識ベクトルを更新する。なお、例えば、すでに決定要因「景色」に対応する要素の値が最大値である場合は、この要素値は変化しない。
次に、ユーザ状態情報更新部18は、ユーザ状態情報格納部13のユーザ状態情報が有する対話のターン数「5」を読み出す。そして、ユーザ状態情報更新部18は、読み出したターン数「5」に1を加えた値「6」を、新しいターン数として、ユーザ状態情報格納部13のユーザ状態情報を更新する。
次に、ユーザ状態情報更新部18は、直前ユーザ発話行為情報を「1」のままとする。また、ユーザ状態情報更新部18は、直前システム発話行為情報を「1」のままとする。
次に、ユーザ状態情報更新部18は、システム提示履歴情報を構成するスポット数を「1」から「4」(「清水寺」「伏見稲荷大社」「鞍馬寺」を出力したので)に更新する。また、「景色」は、既に出現したいたので、ユーザ状態情報更新部18は、システム提示履歴情報を構成する決定要因数を「5」のままとする。
以上により、ユーザ状態情報が最新の値(s0601,s0602,・・・,s0629)に更新された。
次に、ユーザは、対話装置1が出力した回答文と推薦文を聞き、「清水寺」(6回目の発話)と答えた、とする。
次に、受付部14の音声受付手段141は、ユーザから音声による文「清水寺」を受け付ける。
次に、受付部14の音声認識手段142は、受け付けた文「清水寺」を音声認識し、文字列の文を取得する。
次に、受付部14は、入力された文「清水寺」が終了条件である文パターン「<スポット>に行きます。」または「<スポット>に決めました。」に合致しない、と判断する。
次に、スコア算出部15は、6つの各情報推薦手法に対する6つのスコアを、上述と同様に算出する。
つまり、まず、スコア算出部15は、ユーザ状態情報格納部13から、現在のユーザ状態情報(s0601,s0602,・・・,s0629)を読み出す。
次に、スコア算出部15は、情報推薦手法格納部12の中に、1番目から6番目までの各情報推薦手法が有する評価情報(ベクトル)と、ユーザ状態情報(s0601,s0602,・・・,s0629)とを、情報推薦手法ごとに乗算する。そして、スコア算出部15は、6つの情報推薦手法のスコアを算出する。
次に、文構成部16は、直前のユーザ入力文を自然言語処理し、スポット「清水寺」を取得する。なお、ここでは、文構成部16は、ユーザ入力文から決定要因を取得できなかった。
次に、文構成部16は、変数「着目スポット」に、取得したスポット「清水寺」を代入する。なお、現在の変数「着目決定要因」は、「景色」である。
次に、文構成部16は、変数「着目スポット」の値「清水寺」、および変数「着目決定要因」の値「景色」を用いて、知識ベース11を検索し、着目スポットおよび着目決定要因に対応する説明文「清水の舞台は斜面の上に建てられ、ここから望む市街の風景は見事です。」を、知識ベース11から読み出す。この説明文は、回答文となる。
次に、文構成部16は、推薦文の取得処理を行う。つまり、まず、文構成部16の文パターン情報取得手段161は、スコア算出部15が算出した6つのスコアのうち最も大きいスコアに対応する一の情報推薦手法(ここでは、ID=4の手法)が有する文パターン情報「他にも<1以上の未出決定要因>{select 3以下の決定要因 where 知識ベクトル内の値が低い順}なところなどが説明できます。」を、図9の情報推薦手法管理表から取得する。
次に、変数値取得手段162は、文パターン情報から、1番目の変数<1以上の未出決定要因>を取得する。次に、変数値取得手段162は、取得動作記述{select 3以下の決定要因 where 知識ベクトル内の値が低い順}に従って、変数<1以上の未出決定要因>に代入される1以上の用語(変数「着目決定要因」の値「景色」)を取得する。つまり、変数値取得手段162は、既出の決定要因「桜」「景色」以外の決定要因「混雑」「世界遺産」「散策」・・・のうちで、知識ベクトル内の値が低い順に3つ(ここで、「世界遺産」「散策」「歴史」)を取得した、とする。次に、文構成手段163は、取得した3つの決定要因「世界遺産」「散策」「歴史」を、文パターン情報の中の1番目の変数の箇所に代入し、「他にも世界遺産、散策できる、歴史で有名なところなどが説明できます。」を得る。
つまり、上記の処理は、「Method4((NULL),(Det世界遺産,Det散策,Det歴史))」を実行したこととなる。Method4()は、情報推薦手法4を適用することを意味する。「Det世界遺産」等は決定要因「世界遺産」等を意味する。
次に、文出力部17は、回答文「清水の舞台は斜面の上に建てられ、ここから望む市街の風景は見事です。」を音声出力する。続いて、文出力部17は、推薦文「他にも世界遺産、散策できる、歴史で有名なところなどが説明できます。」を音声出力する。
次に、ユーザ状態情報更新部18は、上記と同様に、ユーザ状態情報更新処理を行い、ユーザ状態情報が最新の値(s0701,s0702,・・・,s0729)に更新された、とする。
その後、ユーザと対話装置1との対話が進行し、ユーザが16回目の発話で「では、南禅寺に行きます。」を音声入力した、とする。
次に、受付部14の音声受付手段141は、ユーザから音声による文「では、南禅寺に行きます。」を受け付ける。
次に、受付部14の音声認識手段142は、受け付けた文「では、南禅寺に行きます。」を音声認識し、文字列の文を取得する。
次に、受付部14は、入力された文「では、南禅寺に行きます。」が終了条件である文パターン「<スポット>に行きます。」に合致する、と判断する。文「では、南禅寺に行きます。」が文パターン「<スポット>に行きます。」に合致する文を含むからである。
そして、処理は終了する。なお、処理の終了時に、文出力部17は、予め決められた文「京都観光案内システムをご利用頂き、有り難うございました。」や、予め決められた文パターン「<スポット>に決定しました。他に知りたいことはありますか?」から構成された文を出力しても良い。なお、ここでは、文出力部17は、文パターン「<スポット>に決定しました。他に知りたいことはありますか?」から「南禅寺に決定しました。他に知りたいことはありますか?」を出力した、とする。
以上の対話の流れを、図10に示す。図10において、S[数値]は、対話装置1(システム)からの発話、U[数値]はユーザからの発話を示す。また、Ansは回答文、Recは推薦文を示す。
以上、本実施の形態によれば、ユーザとの対話の進行に応じて、ユーザの知識と嗜好とに関する情報を動的に変更しながら対話を行うことにより、ユーザの意思決定を適切に支援できる。
なお、本実施の形態によれば、ユーザ状態情報の内容は問わない。また、ユーザとの対話の進行に応じて、ユーザ状態情報をどのように変更するかは問わない。ただ、ユーザの発話内に含まれるスポットや決定要因であり、否定的な内容ではないスポットや決定要因に対する嗜好に関する値(嗜好ベクトルを構成する要素値など)は、大きくする(対話装置1に選択されやすくする)。また、対話装置1が出力した発話内に含まれるスポットや決定要因に対する知識に関する値(知識ベクトルを構成する要素値など)は、大きくする(対話装置1に選択されやすくする)。
また、本実施の形態における、対話によるユーザ状態情報の変更の例について、以下に詳細に説明する。事前のユーザ状態情報が有する知識ベクトルが「Ksys=(0.22,0.01,0.02,0.18,・・・)」であり、事前の嗜好ベクトルが「Psys=(0.37,0.19,0.48,0.38,・・・)」であるとする。そして、ユーザの発話を受け付けて、対話装置1は、情報推薦手法1を選択した、とする。つまり、対話装置1は、「asys=Method1{(Spot5),(Det1,Det3,Det4)}」を実行した、とする。そして、対話装置1は、推薦文「仁和寺(Spot5)に関しては、庭園(Det1)、世界遺産(Det3)、紅葉(Det4)について説明できます。」を得た、とする。そして、ユーザは、「世界遺産について(Det3)教えて」を入力した、とする。
すると、ユーザ状態情報更新部18は、事後の知識ベクトル「Ksys=((1.00,0.01,1.00,1.00,・・・)」、事後の嗜好ベクトル「Psys=(0.26,0.19,0.65,0.22,・・・)」を得る。なお、ベクトルは、(庭園,混雑,世界遺産,紅葉,景色,アクセス,桜,歴史,散策,イベント)の要素値で構成されている、とする。対話装置1(システム)から、決定要因「庭園」「世界遺産」「紅葉」が出力されたことにより、事後の知識ベクトルの「庭園」「世界遺産」「紅葉」の要素値が向上した。また、ユーザから決定要因「世界遺産」が入力されたことにより、嗜好ベクトルの「世界遺産」の要素値が増加した。そして、ユーザが決定要因「庭園」「紅葉」を選択しなかったことにより、嗜好ベクトルの「庭園」「紅葉」の要素値が減少した。
また、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における対話装置1を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、スポットと、当該スポットを決定するための要因である1以上の決定要因と、当該スポットの前記1以上の各決定要因の評価を示す評価値とを有するスポット情報を、2以上格納している知識ベースと、前記対話装置が出力する文または前記対話装置が出力する文のパターンを示す情報である文パターン情報と、当該文パターン情報を選択する際に利用される文パターン情報の評価情報とを有する2以上の情報推薦手法と、ユーザの状態を示す情報であり、1以上の各決定要因に対するユーザの嗜好を示す情報である嗜好ベクトルと、1以上の各決定要因に対するユーザの知識を示す知識ベクトルとを有するユーザ状態情報とを格納しており、コンピュータを、ユーザが入力した文を受け付ける受付部と、前記ユーザ状態情報を、前記記憶媒体に格納されている2以上の各情報推薦手法が有する評価情報に適用し、前記2以上の各情報推薦手法に対する2以上のスコアを算出するスコア算出部と、前記スコア算出部が算出した2以上のスコアを用いて、一の情報推薦手法が有する文パターン情報を取得し、当該文パターン情報から文を構成する文構成部と、前記文構成部が構成した文を出力する文出力部と、前記受付部が受け付けた文、または前記文出力部が出力した文のうちの1以上の文から、少なくとも1以上のスポットまたは1以上の決定要因を取得し、当該1以上のスポットまたは1以上の決定要因を用いて、前記記憶媒体のユーザ状態情報を更新するユーザ状態情報更新部とをして機能させるプログラムであり、前記スコア算出部は、前記ユーザ状態情報更新部が更新したユーザ状態情報を、前記情報推薦手法格納部に格納されている2以上の各情報推薦手法が有する評価情報に適用し、前記2以上の各情報推薦手法に対する2以上のスコアを算出するものとして機能させるプログラム、である。
また、上記プログラムにおいて、前記文構成部は、前記スコア算出部が算出した2以上のスコアのうち最も大きいスコアに対応する一の情報推薦手法が有する文パターン情報を取得する文パターン情報取得手段と、前記文パターン情報取得手段が取得した文パターン情報に含まれる1以上の変数を取得し、当該変数に対応するスポットまたは決定要因を、前記文出力部が直前に出力した文、または前記受付部が直前に受け付けた文のうちの1以上の文から取得する変数値取得手段と、前記文パターン情報取得手段が取得した文パターン情報の変数の箇所に、前記変数値取得手段が取得した用語を挿入して文を構成する文構成手段とを具備するものとして、コンピュータを機能させることは好適である。
また、上記プログラムにおいて、前記変数値取得手段は、前記文パターン情報取得手段が取得した文パターン情報に含まれる1以上の変数を取得し、当該変数に対応する候補となる1以上のスポットまたは1以上の決定要因を、前記文出力部が直前に出力した文、または前記受付部が直前に受け付けた文のうちの1以上の文から取得し、前記候補となる1以上のスポットまたは1以上の決定要因から、前記候補となる1以上のスポットまたは1以上の決定要因に対応する前記知識ベースの評価値を用いて、前記変数に対応するスポットまたは決定要因を選択するものとして、コンピュータを機能させることは好適である。
また、上記プログラムにおいて、前記ユーザ状態情報更新部は、前記受付部が受け付けた文から少なくとも1以上の決定要因を取得するユーザ提示用語取得手段と、前記文出力部が出力した文のうちの1以上の文から、少なくとも1以上の決定要因を取得する装置提示用語取得手段と、前記ユーザ提示用語取得手段が取得した1以上の決定要因に対する嗜好ベクトルの要素の値を高くするように更新する嗜好ベクトル更新手段と、前記装置提示用語取得手段が取得した1以上の決定要因に対する知識ベクトルの要素の値を高くするように更新する知識ベクトル更新手段とを具備するものとして、コンピュータを機能させることは好適である。
また、上記プログラムにおいて、前記受付部は、ユーザが入力した音声を受け付ける音声受付手段と、前記音声を認識し、文字列に変換する音声認識手段とを具備し、前記文出力部は、前記文構成部が構成した文を音声出力するものとして、コンピュータを機能させることは好適である。
また、図11は、本明細書で述べたプログラムを実行して、上述した実施の形態の対話装置等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図11は、このコンピュータシステム340の概観図であり、図12は、コンピュータシステム340のブロック図である。
図11において、コンピュータシステム340は、FDドライブ、CD−ROMドライブを含むコンピュータ341と、キーボード342と、マウス343と、モニタ344と、マイク345とを含む。
図12において、コンピュータ341は、FDドライブ3411、CD−ROMドライブ3412に加えて、MPU3413と、CD−ROMドライブ3412及びFDドライブ3411に接続されたバス3414と、ブートアッププログラム等のプログラムを記憶するためのROM3415とに接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3416と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3417とを含む。ここでは、図示しないが、コンピュータ341は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム340に、上述した実施の形態の対話装置等の機能を実行させるプログラムは、CD−ROM3501、またはFD3502に記憶されて、CD−ROMドライブ3412またはFDドライブ3411に挿入され、さらにハードディスク3417に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ341に送信され、ハードディスク3417に記憶されても良い。プログラムは実行の際にRAM3416にロードされる。プログラムは、CD−ROM3501、FD3502またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ341に、上述した実施の形態の対話装置等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム340がどのように動作するかは周知であり、詳細な説明は省略する。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段(端末情報送信部、端末情報受信部など)は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。