以下に本発明の実施の形態を説明するが、本明細書に記載の発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が、本明細書に記載されていることを確認するためのものである。したがって、発明の実施の形態中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
更に、この記載は、本明細書に記載されている発明の全てを意味するものでもない。換言すれば、この記載は、本明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現、追加される発明の存在を否定するものではない。
請求項1に記載の情報処理装置(例えば、図1の対話処理装置1、図17の対話処理装置61、または、図22の対話処理装置131)は、自然言語で記述されたテキストデータを取得する取得手段(例えば、図1、図17、または、図22のテキストデータ入力部11、もしくは、図17、または、図22の音声データ取得部71および音声処理部72)と、用例と、フレーム形式を用いて記載された用例に対応するフレーム情報とを複数記憶する用例記憶手段(例えば、図2、図19、または、図23の用例データベース33)と、取得手段により取得されたテキストデータと、用例記憶手段により記憶されている複数の用例との類似度を計算する類似度計算手段(例えば、図2の類似度計算部32、図19の類似度計算部111、または、図23の類似度計算部161)と、類似度計算手段により計算された類似度を基に、用例記憶手段により記憶されている複数の用例から、取得手段により取得されたテキストデータと最も類似度の高い用例を選択する用例選択手段(例えば、図2、図19、または、図23の最適用例選択部35)と、用例選択手段により選択された用例に対応するフレーム情報を基に、取得手段により取得されたテキストデータを処理してフレーム形式に変換するテキストデータ処理手段(例えば、図2、図19、または、図23のフレーム表現変換部36)と、テキストデータ処理手段により処理されてフレーム形式に変換されたテキストデータを基に、対話処理を実行する対話処理実行手段(例えば、図2または図19の対話処理部37、もしくは、図23の対話処理部162)とを備えることを特徴とする。
取得手段は、音声データを取得する音声データ取得手段(例えば、図17、または、図22の音声データ取得部71)と、音声データ取得手段により取得された音声データを解析し、音声データに対応するテキストデータを出力する音声処理手段(例えば、図17、または、図22の音声処理部72)とを備えることができる。
音声処理手段は、音声データに対応するテキストデータの信頼度を更に求めることができ、類似度計算手段は、信頼度を更に用いて、類似度を計算することができる。
対話処理実行手段により実行された対話処理の履歴を保存する履歴保存手段(例えば、図22の対話履歴保存部142)を更に備えることができ、類似度計算手段は、履歴保存手段により保存されている履歴を更に用いて、類似度を計算することができる。
ユーザ情報を保存するユーザ情報保存手段(例えば、図22のユーザプロファイル保存部143)を更に備えることができ、類似度計算手段は、ユーザ情報保存手段により保存されているユーザ情報を更に用いて、類似度を計算することができる。
所定のデータベース(例えば、図1、図17、または、図22のデータベース13、もしくは、外部のデータベース)に記憶されている情報を検索する検索処理手段(例えば、図2、図19、または、図23の検索処理部39)を更に備えることができ、対話処理実行手段は、テキストデータ処理手段により処理されてフレーム形式に変換されたテキストデータを基に、検索処理手段を制御して、対話処理に必要な検索処理を実行させることができる。
検索処理手段は、テキストデータ処理手段により処理されてフレーム形式に変換されたテキストデータを基に、検索式を生成し、所定のデータベースに記憶されている情報を検索することができる。
ユーザに対して通知される文章を生成する文章生成手段(例えば、図2、図19、または、図23の出力文生成部41)を更に備えることができ、対話処理実行手段は、テキストデータ処理手段により処理されてフレーム形式に変換されたテキストデータを基に、文章生成手段を制御して、対話処理に必要な、ユーザに対して通知される文章を生成させることができる。
文章生成手段は、文章の基となるテンプレート(例えば、図8、図9、図14、または、図15を用いて説明したテンプレート)を予め保持することができる。
ネットワークを介して接続される他の装置の動作を制御するための制御信号を生成する制御信号生成手段(例えば、図2、図19、または、図23の制御信号生成部40)を更に備えることができ、対話処理実行手段は、テキストデータ処理手段により処理されてフレーム形式に変換されたテキストデータを基に、制御信号生成手段を制御して、対話処理の結果として、ネットワークを介して接続される他の装置の動作を制御するための制御信号を生成させることができる。
請求項11に記載の情報処理方法は、対話処理を実行する情報処理装置(例えば、図1の対話処理装置1、図17の対話処理装置61、または、図22の対話処理装置131)の情報処理方法であって、自然言語で記述されたテキストデータの取得を制御する取得制御ステップ(例えば、図16のステップS1、図20のステップS41、または、図24のステップS81の処理)と、所定の記憶部(例えば、図2、図19、または、図23の用例データベース33)に複数記憶されている、用例およびフレーム形式を用いて記載された用例に対応するフレーム情報と、取得制御ステップの処理により取得が制御されたテキストデータとの類似度を計算する類似度計算ステップ(例えば、図16のステップS3、図20のステップS45、または、図24のステップS85の処理)と、類似度計算ステップの処理により計算された類似度を基に、所定の記憶部に記憶されている複数の用例から、取得制御ステップの処理により取得が制御されたテキストデータと最も類似度の高い用例を選択する用例選択ステップ(例えば、図16のステップS4、図20のステップS47、または、図24のステップS87の処理)と、用例選択ステップの処理により選択された用例に対応するフレーム情報を基に、取得制御ステップの処理により取得が制御されたテキストデータを処理してフレーム形式に変換するテキストデータ変換ステップ(例えば、図16のステップS5、図20のステップS48、または、図24のステップS88の処理)と、テキストデータ変換ステップの処理によりフレーム形式に変換されたテキストデータを基に、対話処理の実行を制御する対話処理制御ステップ(例えば、図16のステップS7乃至ステップS14、図21のステップS50乃至ステップS57、または、図25のステップS90乃至ステップS97の処理)とを含むことを特徴とする。
また、請求項12に記載のプログラムにおいても、各ステップが対応する実施の形態(但し一例)は、請求項11に記載の情報処理方法と同様である。
以下、図を参照して、本発明の実施の形態について説明する。
図1は、本発明を適用した第1の実施の形態における、対話処理装置1の構成を示すブロック図である。
テキストデータ入力部11は、例えば、キーボードやタッチパッドなどによりユーザから入力されたテキストデータを取得し、対話制御部12に出力する。
対話制御部12は、テキストデータ入力部11から供給されたテキストデータを基に、対話処理を実行し、データベース13、または、外部のデータベースにアクセスし、ユーザが所望する情報を取得したり、ユーザの質問に対する答え、または、答えを求めるために必要な情報の入力をユーザに促すためなどの各種通知に対応する出力文を生成して出力制御部14に供給したり、他の外部機器を制御するための制御信号を生成し、ネットワークインターフェース15を介して、生成された制御信号を、対応する機器に出力する。
データベース13は、対話処理において必要なデータを保持するデータベースである。なお、対話処理装置1が外部のデータベースと接続可能である場合、データベース13は、必ずしも備えられていなくてもよい。
出力制御部14は、例えば、テキストや画像情報を表示可能な表示部および表示部を制御する表示制御部、または、音声を出力するスピーカと、スピーカから出力される音声データを処理する音声処理部などで構成され、対話制御部12において生成された出力文を、表示、または、音声出力する。また、出力制御部14は、外部の表示部または外部のスピーカに対して、表示用の画像データまたは音声出力用の音声データを出力するようにしてもよい。
ネットワークインターフェース15は、例えば、LAN(Local Area Network)やホームネットワーク、または、インターネットなどの各種ネットワークと接続され、対話制御部12において生成された制御信号を、ネットワークを介して、例えば、ネットワーク対応の表示装置、スピーカ、テレビジョン受像機、ビデオデッキ、ホームサーバなどの機器に出力し、制御信号出力先の機器から制御信号に対する応答信号を受信する。
次に、図2は、図1の対話制御部12の更に詳細な構成を示すブロック図である。
文章情報取得部31は、ユーザにより入力された文章情報(例えば、テキストデータ入力部11から供給されたテキストデータ)を取得し、類似度計算部32に供給する。
類似度計算部32は、文章情報取得部31から供給される文章情報を、例えば、単語単位に分解し、そこから助詞を削除することなどにより、自立語のみでなる単語列に変換する。そして、類似度計算部32は、シソーラス記憶部34に記憶されているシソーラスを用い、その単語列(以下、適宜、入力単語列という)と、用例データベース33に記憶されている用例それぞれとの類似度を示す類似度スコアを計算し、計算結果を、最適用例選択部35に供給する。
用例データベース33には、複数の用例が記憶(登録)されている。この用例は、対話処理の対象分野に応じて作成された少なくとも1文の文章と、その文章をフレームで表現したスロットの組とで構成されている。用例データベース33に保存される用例については、図5または図11を用いて後述する。シソーラス記憶部34には、類似度計算部32が入力単語列と用例データベース33に記憶されている用例それぞれとの類似度を計算するために用いられるシソーラスが記憶されている。シソーラスとは、単語を、その概念に基づいて木構造に階層化したものであり、その詳細については、図3を用いて後述する。
最適用例選択部35は、類似度計算部32から供給された類似度スコアを基に、類似度が最も高い用例を用例データベース33から選択して(以下、選択された用例を最適用例と称する)、最適用例と入力単語列とを、フレーム表現変換部36に出力する。
フレーム表現変換部36は、選択された最適用例に対応するスロットの組のそれぞれの値を、入力単語列を構成する単語にそれぞれ置き換え、その結果得られるスロットの組を、対話処理部37に出力する。
マスタフレーム保持部38は、対話処理部37が実行する動作を決定するためのマスタフレームを保持する。マスタフレーム保持部38に保持されるマスタフレームは、対話制御部12が、いかなる分野の対話に関する処理を行うかによって異なる。マスタフレームの具体例に関しては、図4または図10を用いて後述する。
対話処理部37は、フレーム表現変換部36から供給されたスロットの組を基に、マスタフレーム保持部38に保持されているマスタフレームを更新し、更新されたマスタフレームの状態に基づいて、次に対話処理としてどのような動作を行うかを決定する。すなわち、対話処理部37は、更新されたマスタフレームを基に、対話処理において、データベース13、または、外部のデータベースにアクセスして、ユーザの質問に対する回答を示す「ターゲット」として指定されているスロットに関する情報を取得したり、所定の外部機器に対する制御信号を生成して出力したり、所定のテンプレートを用いて、検索条件を絞り込むための質問や、データベースにアクセスして取得された情報をユーザに通知するためにテキストまたは音声を出力するという動作のうちの、いずれの動作を行うべきかを選択し、検索処理部39、制御信号生成部40、または、出力文生成部41を制御して、それぞれに処理を実行させる。更に、対話処理部37は、検索処理部39から供給された検索結果を基に、更に、マスタフレームを更新し、更新されたマスタフレームの状態に基づいて、次に対話処理としてどのような動作を行うかを決定する。
検索処理部39は、対話処理部37の制御に基づいて、データベース13、または、外部のデータベースにアクセスして、スロットに記載されている値を検索キーとして、ターゲットとして指定されているスロットに関する情報を取得し、対話処理部37に供給する。
制御信号生成部40は、対話処理部37の制御に基づいて、例えば、ネットワークを介して接続された表示装置やスピーカ、ネットワーク対応のテレビジョン受像機、ビデオデッキ、または、ホームサーバなどの外部の装置に対する制御信号を生成し、ネットワークインターフェース15を介して出力する。
出力文生成部41は、対話処理部37の制御に基づいて、内部のテンプレートを参照して、検索条件を絞り込むための質問や、データベースにアクセスして取得された情報をユーザに通知するための出力文を生成し、生成した出力文を出力制御部14に供給し、テキストデータとして表示、または、音声出力させる。出力文生成に用いられるテンプレートについては、図8および図9、または、図14および図15を用いて後述する。
このように、本実施の形態における対話処理においては、用例をフレーム形式の表現と対応付けて予め記憶しておき、ユーザが入力した文章との類似度が高い用例を選択して、そのスロットの値が入力単語列を構成する単語に置き換えられる、すなわち、フレーム形式の表現に対応付けられるので、類似度の計算や、データベースにアクセスして情報を取得する場合の検索処理において、検索キーとなる単語を抽出するために、入力された文章から再度単語を抽出するなどの処理を行ったり、単語の意味解析を実行する必要がない。更に、本実施の形態における対話処理においては、ユーザが入力した文章が、フレーム形式の表現に対応付けられるので、出力文の生成においても、テンプレートに当てはめる単語の決定が簡単である。すなわち、用例を利用する対話処理にフレーム形式を用いることにより、対話処理の動作を簡便化することが可能となる。
そして、上述した、類似度計算部32における用例と入力単語列との類似度の計算は、例えば、特開平3−276367号に開示されているように、単語をその意味の類似性(概念)に基づいて木構造に階層化したシソーラスを用いて行われる。すなわち、入力単語列を構成する単語のそれぞれと、その単語に対応する、用例を構成する単語とが、同一のカテゴリに属すると考えられる概念の階層が第k階層であった場合に、これらの単語間の概念的な類似性を表す単語類似度を、(k−1)/n(但し、nは、シソーラスの階層数)とし、入力単語列を構成する単語それぞれと、用例を構成する単語それぞれとについての単語類似度を積算する。そして、その積算結果を、入力単語列と用例との類似度とする。
次に、シソーラス記憶部34に、図3に示すようなシソーラスが記憶されている場合の類似度の計算方法について説明する。
ただし、図3においては、長方形で囲んであるものは概念を表し、楕円で囲んであるものが単語を表す。図3では、最も上の階層(第4階層)に属する概念が、「性状」、「変動」、「人物」、「社会」、「物品」、その他に分類されており、そのうちの、例えば、概念「変動」は、それに含まれる概念「増減」、「経過」、その他に分類されている。更に、例えば、概念「経過」は、それに含まれる概念「経過」、「到来」、その他に分類されており、そのうちの、例えば、概念「到来」には、その範疇にある単語「訪問する」、その他が属するものとされている。
また、図3においては、最も下の概念の階層を第1階層とし、下から2番目の概念の階層を第2階層とし、以下同様にして、下から3番目の概念の階層、または最も上の概念の階層を、それぞれ第3階層、または第4階層としている。図3のシソーラスは4階層(の概念)で構成されるから、シソーラスを第1階層までさかのぼることにより概念が一致する単語どうしの単語類似度は0(=(1−1)/4)となり、また、シソーラスを第2階層までさかのぼることにより概念が一致する単語どうしの類似度は1/4(=(2−1)/4)となる。以下同様に、シソーラスを第3または第4階層までさかのぼることにより概念が一致する単語どうしの単語類似度は1/2または3/4となる。
例えば、いま、文章情報取得部31から、入力された文章である「私は学校へ行く」が類似度計算部32に出力され、そこで、入力された文章が、上述したように助詞で分離されることにより、入力単語列(「私」、「学校」、「行く」)とされた場合、この入力単語列(「私」、「学校」、「行く」)と、用例データベース33に登録されている用例「彼は会社を訪問する」との類似度は、次のように計算される。
まず入力単語列(「私」、「学校」、「行く」)を構成する単語「私」、「学校」、「行く」それぞれと、用例「彼は会社を訪問する」を構成する、「私」、「学校」、「行く」に対応する単語「彼」、「会社」、「訪問する」それぞれとの単語類似度が計算される。
ここで、単語XとYとの単語類似度を、d(X,Y)と表すと、単語「私」と「彼」とは、第2階層までさかのぼることにより概念「人称」に一致するので、単語類似度d(「私」,「彼」)は1/4となる。また、単語「学校」と「会社」とは、第2階層までさかのぼることにより概念「施設」に一致するので、単語類似度d(「学校」,「会社」)は1/4となる。更に、単語「行く」と「訪問する」とは、やはり第2階層までさかのぼることにより概念「経過」に一致するので、単語類似度d(「行く」,「訪問する」)は1/4となる。
以上の単語類似度を積算すると、その積算値は3/4(=1/4+1/4+1/4)となり、これが、入力単語列(「私」、「学校」、「行く」)と用例「彼は会社を訪問する」との類似度とされる。
また、この入力単語列(「私」、「学校」、「行く」)と、用例「これは木でできている」との類似度は、次のように計算される。
入力単語列(「私」、「学校」、「行く」)を構成する単語「私」、「学校」、「行く」それぞれと、用例「これは木でできている」を構成する、「私」、「学校」、「行く」に対応する単語「これ」、「木」、「できる」(「できている」は「できる」とされる)それぞれとの単語類似度d(「私」,「これ」)、d(「学校」,「木」)、d(「行く」,「できる」)は、上述したようにして、シソーラスを基に、3/4,3/4,2/4と計算され、その結果、入力単語列(「私」、「学校」、「行く」)と用例「これは木でできている」との類似度は8/4(3/4+3/4+2/4)と求められる。
以上の処理は、木構造に階層化したシソーラスを用いた類似度の計算方法についてであるが、類似度計算部32における類似度の計算方法としては、その他の計算方法を用いることも可能である。その1例として、概念のベクトル表現を用いた類似度の計算方法について説明する。
前出の入力単語列(「私」、「学校」、「行く」)において、単語「私」に着目した場合、その単語の概念を列挙すると(「自称」、「人称」、「人物」)となる。また、前出の用例を構成する単語列(「彼」、「会社」、「訪問する」)において、単語「彼」に着目した場合、同様に、概念を列挙すると(「他称」、「人称」、「人物」)となる。これら2つの単語「私」と「彼」両者の概念の列挙を組み合わせると、(「自称」、「他称」、「人称」、「人物」)となる。この概念の組み合わせにおいて、該当するものに1、該当しないものに0を割り当てて記述すると、単語「私」における概念の列挙は(1,0,1,1)、単語「彼」における概念の列挙は(0,1,1,1)となり、各単語の概念の列挙をベクトル表現で書き換えることができる。
また、2つのベクトル(a,b)間の類似度は、その2つのベクトルのなす角をθとすると、余弦(cosθ)によって表すことができ、cosθ=(a・b)/(|a|×|b|)として求めることができる。よって、単語「私」と単語「彼」の類似度は、2/3=0.67となる。
同様にして、単語「学校」と単語「会社」、単語「行く」と単語「訪問する」の類似度を計算すると、両者ともに0.67となる。
また、入力単語列と用例を構成する単語列との類似度を、上述したような、概念のベクトル表現を用いた類似度の計算方法によって得られた各単語間の類似度の平均として計算すると、入力単語列(「私」、「学校」、「行く」)と用例を構成する単語列(「彼」、「会社」、「訪問する」)との類似度は、(0.67+0.67+0.67)/3=0.67となる。
更に、入力単語列(「私」、「学校」、「行く」)ともう1つの用例を構成する単語列(「これ」、「木」、「できる」)との類似度は、同様の計算方法によって0.11と求められる。
以上が、概念のベクトル表現を用いた類似度の計算方法の具体的な1例であるが、ここで説明した計算方法では、木構造に階層化したシソーラスを構成する概念を利用している。概念のベクトル表現を用いた類似度の計算方法は、このようなシソーラスだけではなく、例えば、辞書における「見出し語」と「説明文中の単語」の関係を利用することも可能である。この場合には、「見出し語」を単語と見なし、その単語の概念として「説明文中の単語」を用いることとなる。
更に、類似度計算部32における別の類似度の計算方法として、文献「素性選択機能を持ったString Kernelの提案」電子情報通信学会、信学技報 2003-NL-157に記述されている拡張ストリング・カーネルを用いた計算方法を利用することも可能である。
以上のようにして、用例データベース33に登録されている全ての用例について、入力単語列に対する類似度が計算される。
次に、図4乃至図15を用いて、対話制御部12において利用される、用例とフレーム表現について説明する。
まず、図4乃至図9を用いて、天気予報に関する対話処理を行う場合の用例とフレーム表現について説明する。
図4に、天気予報を対象とする対話処理を行う場合に対話制御部12で利用されるフレーム表現の例を示す。フレームは、1つ以上のスロットによって構成されており、個々のスロットは、そのスロットの名称であるスロット名と、スロット名に対応する値を保持するようになされている。図4に示される、天気予報を対象とする場合に利用されるフレームは、スロット名として、「日付」、「場所」、「天候」、「最高気温」、「最低気温」、および、「降水確率」を有するスロットで構成されたフレームである。このようなフレームは、マスタフレーム保持部38に、マスタフレームとして保持され、対話処理部37の処理により値が更新される。マスタフレームの更新については、図7を用いて後述する。
図4を用いて説明したフレーム表現がマスタフレームとして用いられる場合、用例データベース33には、例えば、図5に示されるような用例が保存される。
用例データベース33に保存されている用例は、1つ以上の文章と、それらの文章が表す意味内容を表現した1つのスロットの組とで構成されている。例えば、「東京の明日の天気を教えて」という文章と、「東京の明日の予報は」という文章とは、スロット名「日付」「場所」の項目が、それぞれ、「明日」「東京」という値で規定され、スロット名「天候」が、ユーザが求める情報であるターゲット(Target)とされる3つのスロットにより構成されるスロットの組とで1つの用例を構成する。また、「東京の明日の気温は」という文章と、「明日の東京は暖かいですか」という文章とは、スロット名「日付」「場所」の項目が、それぞれ、「明日」「東京」という値で規定され、スロット名「最高気温」および「最低気温」が、ユーザが求める情報であるターゲットとされる4つのスロットにより構成されるスロットの組とで1つの用例を構成する。更に、「東京の明日の降水確率は」、「明日、東京は雨が降りますか」、「明日の降水確率は」、および、「明日は雨が降りますか」は、スロット名「日付」が「明日」という値で規定され、スロット名「場所」が「東京」という値で規定され、スロット名「降水確率」が、ユーザが求める情報であるターゲットとされる3つのスロットにより構成されるスロットの組とで1つの用例を構成する。そして、例えば、対話処理中に、ユーザに対してシステムが質問した場合の答えなどで用いられる、「明日です」という文章は、スロット名「日付」が「明日」という値とされているスロットとで、1つの用例を構成する。
このように、用例は、1つ以上の文章と、それらの文章が表す意味内容を表現した1つのスロットの組とが、対となって記述されている。すなわち、1つの用例に、複数の文章が保持される場合は、それらの複数の文章が表す意味内容を、同一のスロットの組で表現することができるようになされている。更に、ユーザが入力した文章が、フレーム形式の表現に対応付けられるので、上述したように、類似度の計算や、データベースにアクセスして情報を取得する場合の検索処理、または、出力文の生成処理などに都合がよい。
更に、図5において、「東京の明日の降水確率は」という文章、「明日、東京は雨が降りますか」という文章、「明日の降水確率は」という文章、および、「明日は雨が降りますか」という文章が、対応するスロットの組とによって構成されている用例は、スロット名「場所」に対応する情報である「東京」が含まれている文章と含まれていない文章とが、同一のスロットの組に対応付けられている。例えば、入力文が、「今日は雨ですか」であったとき、入力文に、「場所」に対応するものがないので、スロット名「場所」に対応する値は、空白となる(すなわち、後述する処理により、マスタフレームに反映されない)。このように、対応するスロット数が異なる文章を、同一の用例に含めるようにすることにより、登録される用例の数を更に抑制することができるので、効率的に用例データベースを構築することが可能となる。
また、用例として保持されている文章は、後述する類似度計算を行うために、例えば、形態素解析などによって、事前に単語ごとに分割された、例えば、「明日、東京、雨」などの形で保持するようにしてもよい。
図5を用いて説明したように、これらの用例は、ユーザにより次の入力文として選択されるものではなく、更に、文法規則にも関係しないものである。したがって、対話処理のストーリーや、文法規則などの複雑な要素を考慮することなく用例を追加することができるので、用例の数の増加が容易である。また、検索精度を高めるためなどに、必要に応じて、用例を削除、または変更することなども、同様に容易である。
類似度計算部32は、入力単語列と、図5に示される用例との類似度を算出する。すなわち、類似度計算部32において、入力された文章と用例を構成する文章とは、それぞれ形態素解析されて、単語単位に分割される。その結果、例えば、入力文は「横浜,の,今日,の,天気,は」の6単語に分割され、用例を構成する文章は、例えば、「明日,の,東京,の,天気,を,教え,て」の8単語に分割される。
上述したシソーラスを用いて計算することにより、入力単語列(「横浜」、「今日」、「天気」)と、用例「明日の東京の天気を教えて」との類似度スコアは、例えば、3/4となり、同様にして、入力単語列と他の用例との類似度スコアも算出される。本実施例では、類似度が高い場合というのは、類似度スコアの値が小さい場合である。これは、図3において、シソーラスを構成する最も下の概念の階層から、第1階層、第2階層、・・・としたためで、これとは逆に、シソーラスを構成する最も上の概念の階層から、第1階層、第2階層、・・・とすれば、類似度が高いのは、類似度スコアの値が大きい場合となる。そして、類似度計算部32は、類似度スコアの計算結果を最適用例選択部35に出力する。
そして、最適用例選択部35では、類似度が最も高い用例が選択され、選択された用例、すなわち最適用例とともに、入力単語列がフレーム表現変換部36に供給される。例えば、入力された文章が、「横浜の今日の天気は」であるとき、用例「明日の東京の天気を教えて」が最適用例となり、(横浜、東京)(今日、明日)(天気、天気)の3つの単語のペアが求まる。したがって、最適用例選択部35は、用例「明日の東京の天気を教えて」と入力単語列(「横浜」、「今日」、「天気」)とをフレーム表現変換部36に出力する。
そして、フレーム表現変換部36は、最適用例を構成するスロットの組の単語のうち、入力単語列を構成する単語に対応するものを、それぞれ置き換えて、入力文に対応するフレーム形式を得て、そのフレーム形式を示す情報(スロットの組)を対話処理部37に出力する。
すなわち、フレーム表現変換部36では、図6に示されるように、選択された最適用例「明日の東京の天気を教えて」に対応するスロットの組のそれぞれの値を、入力単語列(「横浜」、「今日」、「天気」)を構成する単語にそれぞれ置き換え、その結果得られる、スロット名「日付」に対して値「今日」が記載され、スロット名「場所」に対して値「横浜」が記載され、スロット名「天候」に対して値「Target」が記載されているスロットの組を対話処理部37に出力する。
このとき、入力文が、例えば、「横浜の天気は」であった場合は、スロット名「日付」に対応する単語のペアが得られないので、「日付」に対応する値を空にしたものが、入力文に対応するフレーム形式として得られて、対応するスロットの組が対話処理部37に出力される。
そして、対話処理部37は、フレーム表現変換部36の処理により生成された、入力文に対応するフレーム形式の情報の供給を受け、図4を用いて説明した、マスタフレーム保持部38に保持されているマスタフレームを、図7に示されるように更新する。すなわち、対話処理部37は、入力文に対応するフレーム形式で記入されているスロット名の値を、マスタフレーム内の同一の名称のスロット名の値として設定するので、具体的には、入力された文章が、「横浜の今日の天気は」であるとき、図4を用いて説明したマスタフレームにおいて、スロット名「日付」に対して値「今日」が記載され、スロット名「場所」に対して値「横浜」が記載され、スロット名「天候」に対して値「Target」が記載されて、マスタフレームが更新される。また、入力された文章が、「横浜の天気は」であるとき、図4を用いて説明したマスタフレームにおいて、スロット名「場所」に対して値「横浜」が記載され、スロット名「天候」に対して値「Target」が記載されて、マスタフレームが更新される。
次に、対話処理部37は、マスタフレームの状態に基づいて、次に対話処理としてどのような動作を行うかを決定する。例えば、入力された文章が、図6および図7を用いて説明した、「横浜の今日の天気は」である場合、対話処理部37は、検索処理部39を制御して、天気予報に関する情報を提供するデータベース(内部のデータベース13であっても、外部のデータベースであってもよい)にアクセスさせて、「今日」および「横浜」を検索キーとして、「天気」、すなわち、ターゲットに関する情報を取得させる。このように、データベースの検索が選択された場合、検索処理部39は、対話処理部37の処理により更新されたマスタフレームなどの情報から適切な検索式を作成し、所定のデータベースにアクセスして所望の情報を取得し、対話処理部37に供給する。
そして、対話処理部37は、マスタフレームのターゲットに対応する部分に、取得された情報を記載するとともに、出力文生成部41を制御して、図8に示されるようなテンプレートを基に、データベースにアクセスして取得された明日の横浜の天気に関する情報をユーザに通知するという動作を選択する。
具体的には、出力文生成部41は、図8に示されるようなテンプレートを用いて、ユーザに対する出力文を生成する。図8に示されるテンプレートにおいては、ターゲットとして指定されていたスロット名と、それに対する回答となる出力文のテンプレートが用意されている。このテンプレート中の$(場所)、$(日付)などの記載は、フレーム形式中の値に置き換えて利用することを示す。具体的には、入力された文章が、図6および図7を用いて説明した、「横浜の今日の天気は」であり、検索処理部39による検索処理の結果、「天候」は「雨」であると検索された場合、対話処理部37の処理によりマスタフレームが更新されるので、テンプレート中の$(場所)、は「横浜」に置き換えられ、$(日付)は、「今日」に置き換えられ、ターゲットである$(天候)は「雨」に置き換えられるので、出力文「今日の横浜の天気は雨です」が生成される。
一方、入力された文章が、「横浜の天気は」である場合など、マスタフレームの日付スロットがまだ設定されていないような状態や、入力された文章が、「明日の降水確率は」である場合など、マスタフレームの場所スロットがまだ設定されていない状態では、話者であるユーザが、いつの天気を知りたいのか、どこの降水確率を知りたいのかがわからないので、対話処理部37は、出力文生成部41を制御して、足りないスロットの値をユーザに質問する文を出力することも可能である。
すなわち、対話処理部37は、マスタフレームに記載されている情報が、検索処理を実行するために必要な情報に満たない場合、出力文生成部41を制御して、図9に示されるようなテンプレートを基に、条件を絞り込むために必要な情報など、ユーザに入力を促すためのメッセージを通知させるという動作を選択する。
具体的には、出力文生成部41は、図9に示されるようなテンプレートを用いて、ユーザに対する出力文を生成する。図9に示されるテンプレートにおいては、値の入力が必要な、すなわち、ユーザに対して情報の入力を促したいスロット名と、それに対応する質問文が用意されている。具体的には、入力された文章が、「横浜の天気は」である場合、マスタフレームのスロット「日付」に対応する値が未入力となるので、出力文生成部41は、図9に示されるテンプレートから、値の入力が必要なスロット名に対応する出力文「いつの情報を知りたいですか?」を抽出して出力する。
これに対して、ユーザは、例えば、「明日です」や「横浜」などの情報を入力するので、対話処理部37は、供給された情報をマスタフレームの空きスロットに記載してマスタフレームを更新し、更新されたマスタフレームを基に、例えば、データベースの検索など、次の動作を選択する。
また、例えば、明日の天気に基づいて、所定のランプを点灯させるようになされている場合や、対話処理の結果、他の装置を制御する場合など、対話処理部37は、制御信号生成部40を制御し、外部装置の処理を制御することが可能である。対話処理部37により、外部装置の制御が選択された場合、制御信号生成部40は、対話処理の結果に基づいて、外部機器を制御するための制御信号を生成し、ネットワークインターフェース15に出力する。ネットワークインターフェース15は、ネットワークを介して、制御先の機器に、制御信号を送信し、必要に応じて、その応答を受信する。
次に、図10乃至図15を用いて、テレビ番組情報に関する対話処理を行う場合の用例とフレーム表現について説明する。この場合、対話処理の結果、例えば、EPG(Electronic Program Guide)などで構成されるテレビ番組情報のデータベースから、必要な情報が検索されて、その検索結果がユーザに通知されたり、外部のテレビジョン受像機にチャンネルのチューニングを指令したり、外部のビデオデッキやホームサーバに、録画予約処理を行わせるための制御信号を生成して出力する処理が実行される。
図10に、テレビ番組情報を対象とする対話処理を行う場合に対話制御部12で利用されるフレーム表現の例を示す。フレームは、1つ以上のスロットによって構成されており、個々のスロットは、そのスロットの名称であるスロット名と、スロット名に対応する値を保持するようになされている。図10に示される、テレビ番組情報を対象とする場合に利用されるフレームは、スロット名として、「日付」、「テレビ局名」、「ジャンル」、「番組名」、「出演者」、「時間帯」、「開始時刻」、「終了時刻」、および、「行為」を有するスロットで構成されたフレームである。このようなフレームは、マスタフレーム保持部38に、マスタフレームとして保持され、対話処理部37の処理により値が更新される。マスタフレームの更新については、図13を用いて後述する。
図10を用いて説明したフレーム表現がマスタフレームとして用いられる場合、用例データベース33には、例えば、図11に示されるような用例が保存される。
用例データベース33に保存されている用例は、1つ以上の文章と、それらの文章が表す意味内容を表現した1つのスロットの組とで構成されている。例えば、「今日の昼にあるサッカー番組を教えて」という文章と、「今日の昼はどんなサッカー番組がある」という文章とは、スロット名「日付」「ジャンル」および「時間帯」の項目が、それぞれ、「今日」「サッカー」および「昼」という値で規定され、スロット名「番組名」が、ユーザが求める情報であるターゲットとされる4つのスロットにより構成されるスロットの組とで1つの用例を構成する。また、「山村正和の出ているドラマは何がある」という文章は、スロット名「出演者」「ジャンル」の項目が、それぞれ、「山村正和」「ドラマ」という値で規定され、スロット名「番組名」が、ユーザが求める情報であるターゲットとされる3つのスロットにより構成されるスロットの組とで1つの用例を構成する。
更に、「野球中継は何時から」、「8chの野球中継は何時から」は、スロット名「テレビ局名」が「××放送」という値で規定され、スロット名「ジャンル」が「野球」という値で規定され、スロット名「開始時刻」が、ユーザが求める情報であるターゲットとされる3つのスロットにより構成されるスロットの組とで1つの用例を構成する。また、「今日の花子の部屋のゲストは誰」という文章は、スロット名「日付」が「今日」という値で規定され、スロット名「番組名」が「花子の部屋」という値で規定され、スロット名「出演者」がユーザが求める情報であるターゲットとされる3つのスロットにより構成されるスロットの組とで1つの用例を構成する。
また、例えば、対話処理中に、ユーザに対してシステムが応答した番組名などに対して、ユーザが録画を指令する場合などに用いられる「録画して」という文章は、スロット名「行為」が「録画」という値とされているスロットに対応付けられて、1つの用例を構成しており、例えば、対話処理中に、ユーザに対してシステムが質問した場合の答えなどで用いられる、「明日です」という文章は、スロット名「日付」が「明日」という値とされているスロットとで、1つの用例を構成している。
このように、用例は、1つ以上の文章と、それらの文章が表す意味内容を表現した1つのスロットの組とが、対となって記述されている。すなわち、図5を用いて説明した場合と同様に、1つの用例に、複数の文章が保持される場合は、それらの複数の文章が表す意味内容を、同一のスロットの組で表現することができるようになされている。したがって、用例データベース33における用例のデータベース構造を簡略化したり、類似度の演算速度を高速化することができる。更に、ユーザが入力した文章が、フレーム形式の表現に対応付けられるので、上述したように、類似度の計算や、データベースにアクセスして情報を取得する場合の検索処理、または、出力文の生成処理などに都合がよい。
更に、図11においても、図5を用いて説明した場合と同様に、「野球中継は何時から」という文章、および、「8chの野球中継は何時から」という文章、並びに、対応するスロットの組により構成されている用例は、スロット名「テレビ局名」に対応する情報である「××放送」が含まれている文章と含まれていない文章とが、同一のスロットの組に対応付けられている。例えば、入力文が、「相撲中継は何時から」であったとき、入力文に、「テレビ局名」に対応するものがないので、スロット名「テレビ局名」に対応する値は、空白となる(すなわち、後述する処理により、マスタフレームに反映されない)。このように、対応するスロット数が異なる文章を、同一の用例に含めるようにすることにより、登録される用例の数を更に抑制することができるので、効率的に用例データベースを構築することが可能となる。
また、用例として保持されている文章は、後述する類似度計算を行うために、例えば、形態素解析などによって、事前に単語ごとに分割された、例えば、「今日、花子の部屋、誰」などの形で保持するようにしてもよい。
図5を用いて説明した場合と同様に、図11を用いて説明した用例は、ユーザにより次の入力文として選択されるものではなく、更に、文法規則にも関係しないものである。したがって、対話処理のストーリーや、文法規則などの複雑な要素を考慮することなく用例を追加することができるので、用例の数の増加が容易である。また、同様にして、検索精度を高めるためなどに、必要に応じて、用例を削除、または変更することなども容易である。
類似度計算部32は、入力単語列と、図11に示される用例との類似度を算出する。すなわち、類似度計算部32において、入力された文章と用例を構成する文章とは、それぞれ形態素解析されて、単語単位に分割される。その結果、例えば、入力文「森村拓哉は何に出ている」は、「森村拓哉,は,何,に,出,て,いる」の7単語に分割され、用例を構成する文章は、例えば、「山村正和,の,出,て,いる,ドラマ,は,何,が,ある」の10単語に分割され、図3を用いて説明した場合と同様のシソーラスを用いて、類似度の値が算出される。
このとき、テレビ番組名など単語は、番組の改編に伴って頻繁に情報が更新されているので、シソーラスに全ての単語が登録されているとは限らない。同様に、出演者に関しても、日々新しい芸能人が出てくるので、全ての出演者がシソーラスに登録されているとは限らない。このような場合に対処するために、用例データベース33の特定のスロットの項目データに関して、データベースで保持されている文字列型の値を全てリストアップし、類似度計算部32において、それらの間の類似度は、最も類似しているものとして扱うようにする。そして、新しくデータベースが更新されるごとに、単語リストを更新するものとする。すなわち、類似度計算部32は、番組名のスロットに入りうる値として用例データベース33に記録されている「花子の部屋」や「暴れん坊奉行」などの具体的な番組名を表す単語の間の類似度を、全て、高いものとする(類似度の値を、最も類似することを表す数値0とする)。
なお、データベースの種類によっては、特定のスロットが取りうる文字列型の値が限られている場合があるので、その場合も同様に、類似度0に設定できる単語の一群を決めることが可能である。例えば、テレビ番組情報において、「ジャンル」としてどのようなものが用意されるかは、コンテンツ作成元によって予め定められるものであるので、スロット「ジャンル」に対応する単語は、限られた種類の文字列型の値のみとなり、類似度の値を0に設定できる単語の一群を予め定めておくことが可能となる。
図12に、入力文として「森村拓哉は何に出ている」が与えられたときに、「山村正和の出ているドラマは何がある」という用例との類似度を計算する手順と、この用例が最も類似する用例だった場合の入力文に対応するフレーム形式を生成する手順の概念図を示す。
入力文と用例文は、上述したように、それぞれ形態素解析されて、単語単位に分割される。その結果、入力文は「森村拓哉,は,何,に,出,て,いる」の7単語に分割され、用例文は「山村正和,の,出,て,いる,ドラマ,は,何,が,ある」の10単語に分割される。次に、入力文と用例文の各単語の間の類似度をシソーラスを用いて計算し、最も類似度の高い単語の組合わせが求められる。このとき、一般にシソーラスには助詞などの付属語は含まれないので、助詞に対応する部分が除かれて、自立語のみの単語の組合せが求められる。また、上述したように、森村拓哉や山村正和といった固有名詞はシソーラスに登録されていないので、出演者として取りうる文字列型のリストが参照され、そのリストに含まれる単語同士ということで、類似度スコアが高いものとされる。そして、類似度計算部32は、入力文として「森村拓哉は何に出ている」が与えられたときの個々の用例と入力文との類似度の算出結果を最適用例選択部35に出力する。
そして、最適用例選択部35は、個々の用例との類似度計算の結果に基づき、用例データベース33に登録されている用例のうち、類似度が最も高い用例を選択し、選択された用例、すなわち、最適用例とともに、入力単語列をフレーム表現変換部36に供給する。例えば、入力された文章が、「森村拓哉は何に出ている」であるとき、用例「山村正和の出ているドラマは何がある」が最適用例となり、(森村拓哉、山村正和)(何、何)(出る、ある)の3つの単語のペアが求まる。したがって、最適用例選択部35は、「山村正和の出ているドラマは何がある」に対応する用例と入力単語列(「森村拓哉」、「出ている」、「何」)とをフレーム表現変換部36に出力する。
そして、フレーム表現変換部36は、図12に示されるように、最適用例を構成するスロットの組の単語のうち、入力単語列を構成する単語に対応するものを、それぞれ置き換えて、入力文に対応するフレーム形式を得て、そのフレーム形式を示す情報(スロットの組)を対話処理部37に出力する。すなわち、上述した例における単語のペアのうち、用例に記述されているフレーム形式中の値の部分で利用されているのは「山村正和」だけなので、フレーム表現変換部36は、その部分を、対応する森村拓哉に置き換えて、スロット名「番組名」に対して値「Target」が記載されているスロットの組を出力する。
そして、対話処理部37は、フレーム表現変換部36の処理により生成された、入力文に対応するフレーム形式の情報の供給を受け、図10を用いて説明した、マスタフレーム保持部38に保持されているマスタフレームを、図13に示されるように更新する。すなわち、対話処理部37は、入力文に対応するフレーム形式で記入されているスロット名の値を、マスタフレーム内の同一の名称のスロット名の値として設定するので、具体的には、入力された文章が、「森村拓哉は何に出ている」であるとき、図10を用いて説明したマスタフレームにおいて、スロット名「出演者」に対して値「森村拓哉」が記載され、スロット名「番組名」に対して値「Target」が記載されて、マスタフレームが更新される。
次に、対話処理部37は、マスタフレームの状態に基づいて、次に対話処理としてどのような動作を行うかを決定する。対話処理部37は、例えば、入力された文章が、「森村拓哉は何に出ている」である場合、検索処理部39を制御して、例えば、EPGなどの番組情報を記憶しているデータベース(内部のデータベース13であっても、外部のデータベースであってもよい)にアクセスさせて、「森村拓哉」が出演している「番組名」(すなわち、ターゲット)に関する情報を取得させる。このように、データベースの検索が選択された場合、検索処理部39は、対話処理部37の処理により更新されたマスタフレームなどの情報から適切な検索式を作成し、所定のデータベースにアクセスして所望の情報を取得し、対話処理部37に供給する。
そして、対話処理部37は、マスタフレームのターゲットに対応する部分に、取得された情報を記載するとともに、出力文生成部41を制御して、図14に示されるようなテンプレートを基に、データベースにアクセスして取得された、「森村拓哉」が出演している番組名に関する情報をユーザに通知するという動作を選択する。
具体的には、出力文生成部41は、図14に示されるようなテンプレートを用いて、ユーザに対する出力文を生成する。図14に示されるテンプレートにおいては、ターゲットとして指定されていたスロット名と、それに対する回答となる出力文のテンプレートが用意されている。このテンプレート中の$(番組名)、$(日付)などの記載は、フレーム形式中の値に置き換えて利用するということを示す。具体的には、入力された文章が、「森村拓哉は何に出ている」であり、検索処理部39による検索処理の結果、「森村拓哉」が出演者である番組名は「月曜ドラマスペシャル」であると検索された場合、対話処理部37の処理によりマスタフレームが更新され、テンプレート中の$(番組名)、は「月曜ドラマスペシャル」に置き換えられるので、出力文「該当する番組は、月曜ドラマスペシャルがあるよ」が生成される。
また、検索処理部39がデータベースにアクセスし、所定の情報の検索を行った結果、検索結果として複数の情報が該当する場合がある。このような場合に対応するために、図14に示されるように、応答用テンプレートとして該当件数が複数の場合に利用するテンプレートを予め用意しておき、該当件数をユーザに伝えると同時に、該当した複数のデータを保持するために、マスタフレーム保持部38において、マスタフレームを該当件数分コピーして複数保持し、必要に応じて複数の番組情報を提示することができるようにしてもよい。
更に、検索処理部39がデータベースにアクセスし、所定の情報の検索を行った結果、該当件数が非常に多く、出力することができない場合、最終的な検索結果を規定の件数以下に絞り込むことができるように、ユーザに追加情報の入力を促すような質問を出力することができるようにしてもよい。
すなわち、対話処理部37は、検索処理の結果、ユーザの入力に対応する該当件数が非常に多く、出力することができない場合、出力文生成部41を制御して、図15に示されるようなテンプレートを基に、条件を絞り込むために必要な情報など、ユーザに入力を促すためのメッセージを通知させるという動作を選択する。
具体的には、出力文生成部41は、図15に示されるようなテンプレートを用いて、ユーザに対する出力文を生成する。図15に示されるテンプレートにおいては、値の入力が必要な、すなわち、ユーザに対して情報の入力を促したいスロット名と、それに対応する質問文が用意されている。具体的には、入力された文章が、「森村拓哉は何に出ている」である場合、出力文生成部41は、マスタフレームのスロット「日付」に対応する値が未入力であるので、図15に示されるテンプレートから、値の入力が必要なスロット名に対応する出力文「いつの番組が知りたいですか?」を抽出して出力してもよいし、マスタフレームのスロット「ジャンル」に対応する値が未入力であるので、図15に示されるテンプレートから、値の入力が必要なスロット名に対応する出力文「どんなジャンルの番組が良いですか?」を抽出して出力してもよいし、マスタフレームのスロット「時間帯」に対応する値が未入力であるので、図15に示されるテンプレートから、値の入力が必要なスロット名に対応する出力文「どの時間帯の番組が良いですか?」を抽出して出力してもよい。更に、対話処理部37において、マスタフレームのスロット情報のどれを優先するかをあらかじめ規定しておくことによって、優先度の高い情報から問い合わせるように対話処理を行うことが可能である。
これに対して、ユーザは、例えば、「明日です」、「音楽番組がいい」、または、「お昼の番組が見たい」などの情報を入力するので、対話処理部37は、供給された情報をマスタフレームの空きスロットに記載してマスタフレームを更新し、更新されたマスタフレームを基に、例えば、データベースの検索など、次の動作を選択する。また、対話処理部37は、出力文生成部41を制御して、最終的な検索結果が規定の件数以下になるまで、マスタフレームの空きスロットに対応する情報を図15に示されるテンプレートの出力文を用いてユーザに入力させるようにしてもよい。
また、対話処理部37においては、番組情報のデータベースにアクセスして該当する番組名を検索するのみならず、例えば、出力文生成部41において、「その番組を視聴しますか?または、録画しますか?」「録画している番組から検索して再生しますか?」などの質問を、テンプレートとして予め保持しておき、検索結果である番組名をユーザに通知した後に、これらの質問をユーザに対して通知し、その後に供給されるユーザの返答に基づいて、制御信号生成部40の処理により、家庭内ネットワークに接続されたネットワーク対応家電を制御することによって、対応する番組の放映開始時刻に、テレビジョン受像機の電源やチューニングを制御して、ユーザの所望する番組が視聴可能な状態となるように機器を動作させたり、対応する番組をビデオデッキやホームサーバなどに録画させるようにすることができる。また、対話処理部37は、検索処理部39を制御して、番組情報データベースにアクセスする代わりに、必要に応じて、ネットワークを介して接続されているホームサーバに録画されている映像コンテンツの一覧をデータベースとして利用して、録画されている番組の中からユーザが所望する番組を検索し、対応する番組が録画されている場合は、読み出して再生させるといった処理を実行させることも可能である。
このように、用例を、文章情報と、スロットの組とで構成するようにしたので、入力文のバリエーションに対するカバレッジを広くすることが可能となる。また、入力文を解釈するために文法を記述する必要がないため、言語的な知識を持たない人間が新たな話題に対する対話システムを構築しようとする場合の作業量を低減することが可能である。
次に、図16のフローチャートを参照して、図1の対話処理装置1が実行する対話処理1について説明する。
ステップS1において、テキストデータ入力部11は、ユーザからテキストデータの入力を受けたか否かを判断する。ステップS1において、テキストデータの入力を受けていないと判断された場合、テキストデータの入力を受けたと判断されるまで、ステップS1の処理が繰り返される。
ステップS1において、テキストデータの入力を受けたと判断された場合、ステップS2において、テキストデータ入力部11は、入力されたテキストデータを対話制御部12に供給し、対話制御部12の対話処理部37は、マスタフレーム保持部38に保持されているマスタフレームの値の記述を必要に応じてリセットする。具体的には、対話処理部37は、例えば、前回の対話処理において、ユーザに対する質問文を出力している場合などは、マスタフレームの値の記述をリセットしないが、前回の対話処理において、外部の機器を制御している場合などは、マスタフレームの値の記述をリセットする。
ステップS3において、対話制御部12の文章情報取得部31から文章の供給を受けた類似度計算部32は、入力された文章を単語に分解した後、助詞を分離して入力単語列を生成し、シソーラス記憶部34に記憶されているシソーラスを参照して、用例データベース33に登録されている各用例との類似度を計算し、類似度の計算結果である類似度スコアを最適用例選択部35に供給する。
ステップS4において、最適用例選択部35は、類似度の計算結果に基づいて、用例データベース33に登録されている用例から、最適な用例である最適用例を選択し、最適用例と、入力単語列をフレーム表現変換部36に供給する。
ステップS5において、フレーム表現変換部36は、選択された用例である最適用例の記述に基づいて、すなわち、最適用例を構成するスロットの組にしたがって、入力単語列を構成する単語に対応するものを、それぞれ置き換えて、入力された文章をフレーム表現に変換し、変換後のスロットの組を、対話処理部37に供給する。
ステップS6において、対話処理部37は、マスタフレーム保持部38に保持されているマスタフレームを読み込み、フレーム表現変換部36から供給された変換後のスロットの組に基づいて、マスタフレームのフレーム記述を更新する。
ステップS7において、対話処理部37は、マスタフレームの状態に基づいて、データベースの検索処理が必要であるか否かを判断する。具体的には、対話処理部37は、例えば、入力された文章が、「横浜の明日の天気は」や「山村正和が出てきるドラマは」である場合など、マスタフレームにおいて、スロットの値がターゲットとなっているものがあり、データベースを検索するのに十分な情報がスロットに記載されているとき、対話処理において、内部のデータベース13、または、外部のデータベースに対する検索処理が必要であると判断し、マスタフレームにおいて、スロットの値がターゲットとなっているものがないときや、データベースを検索するのに十分な情報がスロットに記載されていないとき、対話処理において、内部のデータベース13、または、外部のデータベースに対する検索処理を行わずに、異なる処理を行うと判断する。
ステップS7において、データベースの検索処理が必要であると判断された場合、ステップS8において、対話処理部37は、検索処理部39を制御して、検索処理を実行させる。検索処理部39は、対話処理部37の処理により更新されたマスタフレームを構成するスロットの値を用いて適切な検索式を作成し、データベース(内部のデータベース13であっても、外部のデータベースであってもよい)にアクセスして所望の情報を取得し、対話処理部37に供給する。
ステップS9において、対話処理部37は、供給された検索結果に基づいて、マスタフレームのターゲットに対応する部分に、取得された情報を記載し、マスタフレームのフレーム記述を更新し、処理は、ステップS7に戻り、それ以降の処理が繰り返される。
ステップS7において、データベースの検索処理が必要ではないと判断された場合、ステップS10において、対話処理部37は、制御信号の出力が必要であるか否かを判断する。具体的には、対話処理部37は、例えば、入力された文章が、「録画して」である場合、制御信号生成部40を制御し、現在のメインフレームに記載されている情報を参照して、所定の外部装置を制御するための制御信号を生成させて出力させる。
ステップS10において、制御信号の出力が必要であると判断された場合、ステップS11において、対話処理部37は、制御信号生成部40を制御し、ネットワークインターフェース15によって接続されている所定の外部装置の処理を制御させる。対話処理部37により制御されている制御信号生成部40は、これまでの対話処理の結果に基づいて、外部機器を制御するための制御信号を生成し、ネットワークインターフェース15に出力する。ネットワークインターフェース15は、ネットワークを介して、制御先の機器に、制御信号を送信する。
ステップS12において、ネットワークインターフェース15は、制御信号出力先からの応答を受信して、対話制御部12の制御信号生成部40に出力する。制御信号生成部40は、制御信号出力先からの応答を対話処理部37に供給し、処理が終了される。
ステップS10において、制御信号の出力が必要ではないと判断された場合、具体的には、例えば、ステップS8およびステップS9の処理により得られた検索処理結果を、図8または図14を用いて説明したテンプレートを利用して、ユーザに対して通知する必要がある場合、マスタフレームに記載されている情報が検索処理を実行するために必要な情報に満たないため、例えば、図9または図15を用いて説明したテンプレートを利用してユーザに対する質問を出力する必要がある場合、または、前の対話処理の内容により、例えば、「その番組を視聴しますか?または、録画しますか?」や、「録画している番組から検索して再生しますか?」などの質問をユーザに対して出力する必要がある場合など、ユーザに対して情報を提供するために出力文を生成し、ユーザに対して出力する必要がある場合、ステップS13において、対話処理部37は、出力文生成部41を制御して、ユーザへの出力文を生成させる。出力文生成部41は、対話処理部37の制御に基づいて、図8、図9、図14、または、図15に示されるようなテンプレートを基に、ユーザへの出力文を生成し、出力制御部14に出力する。
ステップS14において、出力制御部14は、テキストや画像情報を表示可能な表示部および表示部を制御する表示制御部、または、音声を出力するスピーカと、スピーカから出力される音声データを処理する音声処理部の処理により、ユーザへの出力文をテキストもしくは画像として表示出力したり、または、音声出力し、処理が終了される。
このような処理により、ユーザにより入力されたテキストと、フレーム表現された用例との類似度が算出されて、算出された類似度を基に、最適用例が選択され、マスタフレームのスロットの値が更新されて、更新されたマスタフレームを基に対話処理が実行されるので、ユーザは、例えば、複数の候補文を選択することなく、自然言語による質問と回答の応酬によって、所望の情報を得たり、ネットワーク機器に対して所望の操作指令を行うことができる。
また、このとき用いられる対話処理においては、文法などの規則を記述してユーザよりの入力発話を処理する方式に比べて、容易に新しい話題に対する処理を導入することができる。更に、図16を用いて説明した対話処理に用いられる用例の形式であれば、特に、文法などの規則を熟知していない管理者であっても、用例の追加(用例数の増加)や変更も容易に行うことができるので、入力文のバリエーションに対するカバレッジを広くすることが可能となる。
以上の説明においては、対話処理に用いられるユーザからの入力文は、テキストデータとして入力されるものとして説明したが、例えば、ユーザが発話した音声データを解析し、音声処理により、テキストデータを取得して、取得されたテキストデータをユーザからの入力文として取り扱うことができるようにしてもよい。
図17は、本発明を適用した第2の実施の形態における、対話処理装置61の構成を示すブロック図である。対話処理装置61は、ユーザのテキスト入力に加えて、ユーザの発話に対応する音声データを取得して、音声処理により、テキストデータを取得することができるようになされている。
なお、図17においては、図1における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図17の対話処理装置61は、新しく、音声データ取得部71および音声処理部72が設けられ、対話制御部12に代わって、対話制御部73が設けられている以外は、基本的に、図1を用いて説明した対話処理装置1と同様の構成を有するものである。
音声データ取得部71は、そこに入力される、いわば空気の波である音声を、電気的な波である音声信号に変換する、例えばマイクなどと、そのマイクから出力される音声信号を増幅するアンプなどで構成され、取得したアナログの音声信号を、音声処理部72に供給する。音声処理部72は、取得された音声信号を処理し、テキストデータとして認識する音声認識処理を実行して、対話制御部73に供給する。
対話制御部73は、テキストデータ入力部11、または、音声処理部72から供給されたテキストデータを基に、対話処理を実行し、データベース13、または、外部のデータベースにアクセスし、ユーザが所望する情報を取得したり、ユーザの質問に対する答え、または、答えを求めるために必要な情報の入力をユーザに促すためなどの各種通知に対応する出力文を生成して出力制御部14に供給したり、他の外部機器を制御するための制御信号を生成し、ネットワークインターフェース15を介して、生成された制御信号を、対応する機器に出力する機能に加えて、音声処理部72において実行される音声認識処理における信頼度の情報を取得して、これを、対話処理における類似度の計算に反映することができるようになされている。
図18は、音声処理部72の構成を示すブロック図である。
AD変換部91は、音声データ取得部71から出力されるアナログの音声信号を、所定のクロックのタイミングでサンプリングして量子化を行い、ディジタルの音声データに変換するようになされている。
分析部92は、AD変換部91より出力される音声信号を音響分析し、これにより、例えば所定の帯域ごとの音声のパワーや、線形予測係数(LPC:linear prediction coding)、または、ケプストラム係数などの音声の特徴パラメータを抽出するようになされている。すなわち、分析部92は、例えばフィルタバンクにより、音声データを所定の帯域ごとにフィルタリングし、そのフィルタリング結果を整流平滑化することで、所定の帯域ごとの音声のパワーを求めるようになされている。あるいは、分析部92は、入力された音声に対し、例えば線形予測分析処理を施すことで、線形予測係数を求め、またその線形予測係数からケプストラム係数を求めるようになされている。
分析部92で求められた特徴パラメータは、そのまま、あるいは、そこで必要に応じてベクトル量子化されて、認識部93に出力されるようになされている。
認識部93は、分析部92からの特徴パラメータ(あるいは、特徴パラメータをベクトル量子化して得られるシンボル)に基づき、例えばダイナミックプログラミング(DP)マッチング法や、隠れマルコフモデル(HMM:Hidden Markov Model)などの音声認識アルゴリズムにしたがい、後述する言語モデル記憶部94および単語辞書95を参照して、音声認識を行い、音声認識結果を求めて、対話制御部73に出力するようになされている。また、認識部93は、音声認識結果に加えて、その音声認識結果の確からしさを示す信頼度も、対話制御部73に出力するようになされている。
言語モデル記憶部94は、例えばバイグラム(Bigram)やトライグラム(Trigram)などの統計的言語モデルを記憶している。認識部93は、上述したような音声認識処理を、言語モデル記憶部94に記憶されている言語モデルにより緩い言語的制約をかけ、その制約のもと、例えばビタビ(Viterbi)アルゴリズムを用いたビームサーチなどにより、適当に枝刈しながら行い、音声認識結果を対話制御部73に出力するようになされている。この場合、認識部93において、音声認識結果を得るまでのサーチスペースが絞り込まれるので、音声処理部72の音声認識処理における演算量の低減、更にはその処理の高速化を図ることができる。
なお、バイグラム、トライグラムは、例えば1次、2次のマルコフ過程のモデルで、音素、音節、単語などの連鎖確率を大量のテキストデータベースを基にして学習したものであり、自然言語の局所的な性質を精度良く近似することのできるモデルとして知られている。
また、言語的制約は、言語モデルによる他、例えば有限状態ネットワークなどを用いてかけるようにすることも可能である。
単語辞書95には、音声認識の対象とする単語の見出し(例えば、「発明」という単語であれば「発明」という見出し)およびその音韻情報(読み)、更に必要ならば単語の品詞その他の情報が対応付けられて記憶(登録)されている。なお、単語辞書95には、少なくとも、対話制御部73の用例データベース33に記憶されている用例を構成する単語が記憶されている。認識部93では、この単語辞書95に記憶されている単語を対象として、音声認識が行われるようになされている。
ここで、認識部93が実行する音声認識に用いられる音声認識アルゴリズムの一例として、HMMについて簡単に説明する。HMMは、非決定有限状態オートマトンとして定義され、そのモデルは、幾つかの状態と、その状態間の遷移を表すパスから構成される。このようなモデルにおいて、各状態からの状態の遷移過程はマルコフ過程とされ、また、状態が遷移するときにはシンボルが1つ出力されるものとして、モデルの学習が行われる。いま、モデルが有する状態がN個あり、モデル(状態)から出力されるシンボルの種類がK個あるとすると、この学習では、多数の学習データを用い、状態が、状態iから状態jに遷移する確率(状態遷移確率)aijと、そのときにシンボルykが出力される確率(出力シンボル確率)bij(yk)が求められる(ただし、0<i,j<N+1,0<k<K+1)。
なお、HMMのパラメータには、最初に状態iにいる確率(初期状態確率)πiもあるが、音声認識では、通常、状態が、自分自身、もしくは、自分自身より右側の状態にしか遷移しないleft-to-rightモデルが用いられるので、初期状態は、モデルの最も左側の状態とされる(最初に、最も左側の状態にいる確率が1とされ、他の状態にいる確率は0とされる)。このため、通常は、学習において、初期状態確率を求める必要はない。
一方、認識時には、学習の結果得られた状態遷移確率および出力シンボル確率を用いて、分析部92から出力されるシンボル系列が観測(生起)される確率である生起確率が計算され、その確率の高いものが認識結果とされる。
本実施例では、認識部93には、予め学習を行うことにより得られた、例えば音素単位のモデルである音素モデルが記憶されており、認識部93は、単語辞書95に登録されている単語の音韻情報を参照して、音素モデルを連結し、単語辞書95に登録されている単語のモデルを作成する。そして、このモデルを用いて、上述したように生起確率を計算し、その確率の高い単語を求める。そして、認識部93は、計算された生起確率を信頼度として対話制御部73に出力する。
なお、認識部93には、音素モデルではなく、例えば単語単位のモデルである単語モデルを記憶させておき、そのモデルをそのまま用いて、連続音声認識させるようにすることも可能である。
更に、認識部93は、上述したような処理を、言語モデル記憶部94に記憶されているバイグラム、トライグラムにより緩い言語的制約をかけ、その制約のもと、例えばビタビアルゴリズムを用いたビームサーチなどにより、適当に枝刈しながら行うようにしてもよい。
次に、図19は、図17の対話制御部73の構成を示すブロック図である。
なお、図19においては、図2における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図19の対話制御部73は、類似度計算部32に代わって、類似度計算部111が設けられている以外は、基本的に、図2を用いて説明した対話制御部12と同様の構成を有するものである。
類似度計算部111は、基本的には、図2を用いて説明した類似度計算部32と同様にして、音声解析の結果得られたユーザの発話内容を示す文章、または、ユーザにより入力されたテキストと、用例を構成する文章とを、それぞれ形態素解析し、単語単位に分割して、入力単語列と用例との類似度を算出し、算出結果を最適用例選択部35に出力するようになされているが、このとき、音声処理部72から供給された音声認識の信頼度を利用することができるようになされている。
すなわち、類似度計算部111は、単語単位に分割された、入力単語列と用例との類似度を算出したのち、音声処理部72から供給された音声認識の信頼度を基に、類似度に重み付けを行う。すなわち、類似度計算部111は、音声認識処理の結果テキストに付与された音響的なスコアも、類似度の算出において考慮することができるようになされている。このことにより、音声認識結果によって、入力文に誤りが含まれる場合に対する処理のロバストネスを向上させることが可能となる。
また、シソーラス記憶部34は、少なくとも、図18を用いて説明した音声処理部72の単語辞書95に登録されている単語を、その概念ごとに分類して記憶している。
次に、図20および図21のフローチャートを参照して、図17の対話処理装置61が実行する対話処理2について説明する。なお、テキストデータ入力部11が、ユーザからテキストデータの入力を受けた場合、図17の対話処理装置61においても、基本的に、図16を用いて説明した対話処理1と同様の処理が実行されるので、ここでは、音声データ取得部71が音声データを取得した場合の処理について説明する。
ステップS41において、音声データ取得部71は、ユーザから音声データの入力を受けたか否かを判断する。ステップS41において、音声データの入力を受けていないと判断された場合、音声データの入力を受けたと判断されるまで、ステップS41の処理が繰り返される。
ステップS41において、音声データの入力を受けたと判断された場合、ステップS42において、音声データ取得部71は、入力された音声データを音声処理部72に供給する。音声処理部72は、音声解析処理を行い、その結果を、対話制御部73に出力する。具体的には、音声処理部72は、図18を用いて説明したように、AD変換部91において、音声データ取得部71から出力されるアナログの音声信号を、所定のクロックのタイミングでサンプリングして量子化を行い、分析部92において、音声信号を音響分析して、例えば所定の帯域ごとの音声のパワーや、線形予測係数、ケプストラム係数などの音声の特徴パラメータを抽出したり、線形予測分析処理を施すことで、線形予測係数を求めたり、線形予測係数からケプストラム係数を求める。そして、認識部93において、分析部92からの特徴パラメータ(あるいは、特徴パラメータをベクトル量子化して得られるシンボル)に基づき、例えばダイナミックプログラミングマッチング法や、HMMなどの音声認識アルゴリズムにしたがい、言語モデル記憶部94および単語辞書95を参照して、音声認識が実行され、音声認識結果が求められるとともに、音声認識結果に加えて、その音声認識結果の確からしさを示す信頼度が求められる。
ステップS43において、対話制御部73の文章情報取得部31は、音声解析の結果得られたテキストデータを取得し、対話制御部73の類似度計算部111は、音声解析時の信頼度情報を取得する。
ステップS44において、対話制御部73の対話処理部37は、マスタフレーム保持部38に保持されているマスタフレームの値の記述を必要に応じてリセットする。
ステップS45において、対話制御部73の文章情報取得部31は、類似度計算部111に取得したテキストデータを供給し、類似度計算部111は、入力された文章を単語に分解した後、助詞を分離して入力単語列を生成し、シソーラス記憶部34に記憶されているシソーラスを参照して、用例データベース33に登録されている各用例との類似度を計算する。
ステップS46において、類似度計算部111は、供給された信頼度を基に、算出された類似度の計算結果に重み付けを施して、最適用例選択部35に供給する。すなわち、類似度計算部111は、音声認識処理の結果テキストに付与された音響的なスコアも、類似度の算出において考慮することができるようになされている。
ステップS47において、最適用例選択部35は、重み付けられた類似度の計算結果に基づいて、用例データベース33に登録されている用例から、最適な用例を選択し、選択された用例、すなわち、最適用例と、入力単語列とをフレーム表現変換部36に供給する。
そして、ステップS48乃至ステップS57において、図16のステップS5乃至ステップS14と同様の処理が実行される。
すなわち、最適用例の記述に基づいて、入力された文章がフレーム表現に変換され、変換後のスロットの組に基づいて、マスタフレームのフレーム記述が更新され、マスタフレームの状態に基づいて、データベースの検索処理が必要であるか否かが判断される。そして、データベースの検索処理が必要であると判断された場合、検索処理が実行されて、データベースから所望の情報が取得され、マスタフレームのターゲットに対応する部分に、取得された情報が記載されて、マスタフレームのフレーム記述が更新される。
また、データベースの検索処理が必要ではないと判断された場合、制御信号の出力が必要であるか否かが判断される。そして、制御信号の出力が必要であると判断された場合、ネットワークインターフェース15によって接続されている所定の外部装置の処理を制御するための制御信号が生成されて、ネットワークインターフェース15およびネットワークを介して、制御先の機器に送信され、制御信号出力先からの応答が受信される。
また、制御信号の出力が必要ではないと判断された場合、図8、図9、図14、または、図15に示されるようなテンプレートを基に、ユーザへの出力文が生成され、テキストもしくは画像として表示出力されたり、または、音声出力され、処理が終了される。
このような処理により、ユーザにより入力されたテキスト、または、ユーザによる発話を音声認識した結果得られたテキストと、フレーム表現された用例との類似度が算出されて、算出された類似度を基に、最適用例が選択され、マスタフレームのスロットの値が更新されて、更新されたマスタフレームを基に対話処理が実行されるので、ユーザは、例えば、複数の候補文を選択することなく、自然言語による質問と回答の応酬によって、所望の情報を得たり、ネットワーク機器に対して所望の操作指令を行うことができるのみならず、音声認識結果の確からしさを示す信頼度情報を用いて類似度に重み付けを施すようにしているので、音声認識をした結果を利用する場合など入力文に誤りが含まれる場合に対する処理のロバストネスも向上する。
以上においては、ユーザ入力のみに基づいて、対話処理を実行する場合について説明したが、過去の対話処理に関する情報である対話履歴やユーザプロファイルを保存し、これらを基に、対話処理を行うことができるようにしてもよい。
次に、図22は、本発明を適用した第3の実施の形態における、対話処理装置131の構成を示すブロック図である。対話処理装置131は、ユーザのテキスト入力に加えて、ユーザの発話に対応する音声データを取得して、音声処理により、テキストデータを取得することができるようになされているとともに、対話履歴やユーザプロファイルを保存し、これらを基に、対話処理の制御を行うことができるようになされている。
なお、図22においては、図17における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図22の対話処理装置131は、新しく、対話履歴保存部142およびユーザプロファイル保存部143が設けられ、対話制御部73に代わって、対話制御部141が設けられている以外は、基本的に、図17を用いて説明した対話処理装置61と同様の構成を有するものである。
対話制御部141は、テキストデータ入力部11、または、音声処理部72から供給されたテキストデータを基に、対話処理を行い、データベース13、または、外部のデータベースにアクセスし、ユーザが所望する情報を取得したり、ユーザの質問に対する答え、または、答えを求めるために必要な情報の入力をユーザに促すためなどの各種通知に対応する出力文を生成して出力制御部14に供給したり、他の外部機器を制御するための制御信号を生成し、ネットワークインターフェース15を介して、生成された制御信号を、対応する機器に出力する。
また、対話制御部141は、対話処理において、必要に応じて、音声処理部72において実行される音声認識処理における信頼度の情報、対話履歴保存部142に保存される対話履歴情報、または、ユーザプロファイル保存部143に保存されるユーザプロファイルを取得して、これを、類似度の計算に反映させる。更に、対話制御部141は、対話処理の結果、必要な情報を、対話履歴保存部142またはユーザプロファイル保存部143に供給し、新たに保存させたり、その情報を解析させて保存させることができるようになされている。
対話履歴保存部142は、以前実行された対話処理に関する履歴を保存している。対話履歴保存部142には、例えば、直前の対話処理における用例ごとの類似度の算出値や、過去所定回数の対話処理におけるマスタフレームの各スロットの値などが保存されている。また、対話履歴保存部142においては、その記憶容量を有効に利用して、できるだけ新しい対話履歴を保存することができるように、新たな情報を保存するとき、常に、古い情報から消去するようにしてもよい。
ユーザプロファイル保存部143は、例えば、ユーザの個人情報や、行動パターンなどのユーザプロファイル情報を保存する。具体的には、ユーザプロファイル保存部143は、ユーザの氏名、性別、年齢、住所などの個人情報や、対話処理を頻繁に行う時間帯とその内容、好んで視聴する番組のジャンルまたは時間帯などのユーザ固有の行動パターンなどを保存することができる。なお、ユーザの個人情報は、ユーザの入力により登録される。そして、ユーザ固有の行動パターンは、ユーザの入力により登録されるのみならず、例えば、ユーザプロファイル保存部143が、対話制御部141から供給される過去の対話処理とその結果を蓄積し、解析する機能を有するものとし、解析された結果得られる行動パターンを登録することができるものとしてもよい。
次に、図23は、図22の対話制御部141の構成を示すブロック図である。
なお、図23においては、図19における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図23の対話制御部141は、類似度計算部111に代わって、類似度計算部161が設けられ、対話処理部37に代わって対話処理部162が設けられている以外は、基本的に、図19を用いて説明した対話制御部73と同様の構成を有するものである。
類似度計算部161は、基本的には、図19を用いて説明した類似度計算部73と同様にして、音声解析の結果得られたユーザの発話内容を示す文章、または、ユーザにより入力されたテキストと、用例を構成する文章とを、それぞれ形態素解析し、単語単位に分割して、入力単語列と用例との類似度を算出し、必要に応じて、音声処理部72から供給された音声認識の信頼度を利用して類似度に重み付けを施して、算出結果を最適用例選択部35に出力するようになされているが、このとき、更に、対話履歴保存部142に保存されている対話履歴情報、および、ユーザプロファイル保存部143に保存されているユーザプロファイル情報を取得して、これを類似度の計算に反映することができるようになされている。
すなわち、類似度計算部161は、対話履歴保存部142に保存されている対話履歴情報を基に、現在の対話処理が、直前の対話処理と時間的にほぼ連続して行われている場合、これらの対話は、連続した話題である可能性が高いため、必要に応じて、直前の対話処理において算出された用例との類似度を補正値として用いるようにすることができる。
例えば、直前の対話処理におけるユーザのはじめの入力が、「横浜の今日の天気は」である場合、入力単語列として、(「横浜」、「今日」、「天気」)が得られたとすると、上述したように、入力単語列(「横浜」、「今日」、「天気」)と、用例「明日の東京の天気を教えて」との類似度は、3/4と算出されていた。これに対して、現在の対話処理におけるユーザの入力が、「東京は」であるとき、ユーザが知りたいのは、東京の今日の天気であると考えられるが、通常の方法で類似度を算出してしまっては、入力単語列「東京」と、用例「明日の東京の天気を教えて」との類似度は低いものと算出されてしまう。これに対して、類似度計算部161は、直前の対話処理において算出された用例ごとの類似度スコアの値を補正値や重み付けの値として利用することができるようにする。例えば、直前の対話処理において算出された用例ごとの類似度スコアの値のうちの所定の割合の値を、算出された類似度スコアから減算し、得られた値を類似度スコアの補正値とするようにしても良い。これによって、直前の対話処理におけるユーザのはじめの入力が、「横浜の今日の天気は」であり、現在の対話処理におけるユーザの入力が、「東京は」であるとき、入力単語列に対して用例「明日の東京の天気を教えて」が類似しているという類似度算出結果を得ることができる。
また、類似度計算部161は、ユーザプロファイル保存部143に保存されているユーザプロファイル情報を基に、類似度を補正することができる。例えば、類似度計算部161は、ユーザプロファイル保存部143に保存されているユーザの普段の行動パターンのプロファイルを基に、毎朝、ナイターの放映時間を質問し、その回答を得て、録画予約を実行するユーザに対して、朝の時間帯は、入力単語列に対して、用例「野球中継は何時から」、および、用例「録画して」の類似度が高くなるような補正値を用いて、類似度の計算を行うようにすることができる。更に、類似度計算部161は、ユーザプロファイル保存部143に保存されているユーザプロファイル情報を基に、ユーザが、例えば、東京に住んでいる場合、「明日の天気は」という入力文章に対して、類似度スコアの算出にあたり、スロット名「場所」の値に「東京」が対応付けられている用例「明日の東京の天気を教えて」が類似しているという類似度算出結果を得ることができるような重み付けを施すようにしても良い。
また、これらの対話履歴やユーザプロファイルに基づく補正値は、ベイジアン・ネットワーク(Bayesian Network)などを利用して得られる確率値などを利用して算出することも可能である。ベイジアン・ネットワークとは、不確かな出来事の連鎖について、確率の相互作用を集計する手法で、知能情報システム構築の有力な手段になっている確率的推論アルゴリズムのひとつで、原因−結果の複雑な確率ネットワークがあったときに観測された「結果」から「原因」を推定するものである。
そして、対話処理部162は、フレーム表現変換部36から供給されたスロットの組を基に、マスタフレーム保持部38に保持されているマスタフレームを更新し、更新されたマスタフレームの状態に基づいて、次に対話処理としてどのような動作を行うかを決定する処理に加えて、対話処理の結果を、対話履歴保存部142またはユーザプロファイル保存部143に保存する処理を実行する。
次に、図24および図25のフローチャートを参照して、図22の対話処理装置131が実行する対話処理3について説明する。
ステップS81乃至ステップS85において、図20のステップS41乃至ステップS45と基本的に同様の処理が実行される。
すなわち、音声データの入力を受けたと判断された場合、音声解析処理が実行され、音声認識結果が求められるとともに、その音声認識結果の確からしさを示す信頼度が求められる。そして、音声解析の結果得られたテキストデータおよび音声解析時の信頼度情報が対話制御部141に取得され、マスタフレーム保持部38に保持されているマスタフレームの値の記述が必要に応じてリセットされる。そして、入力された文章が単語に分解された後、助詞が分離されて入力単語列が生成され、シソーラス記憶部34に記憶されているシソーラスが参照されて、用例データベース33に登録されている各用例との類似度が計算される。
ステップS86において、類似度計算部161は、供給された信頼度情報、並びに、ユーザプロファイルおよび対話履歴を基に、算出された類似度の計算結果に重み付けを施して、最適用例選択部35に供給する。具体的には、類似度計算部161は、入力単語列と用例との類似度を算出し、必要に応じて、音声処理部72から供給された音声認識の信頼度を利用して類似度に重み付けを施したのち、現在の対話処理が、直前の対話処理と時間的にほぼ連続して行われている場合には、対話履歴保存部142に保存されている対話履歴情報を参照し、直前の対話処理において算出された用例との類似度を基に、類似度の補正値を算出する。類似度計算部161は、更に、ユーザプロファイル保存部143に保存されているユーザプロファイル情報を参照し、例えば、ユーザの行動パターンに特徴がある場合には、その特徴に基づいて、特定の用例の類似度が高くなるような補正値を用いて、類似度の計算を行う。
そして、ステップS87乃至ステップS97において、図20および図21のステップS47乃至ステップS57と同様の処理が実行される。
すなわち、重み付けられた類似度の計算結果に基づいて、用例データベース33に登録されている用例から、最適な用例が選択され、選択された用例、すなわち、最適用例の記述に基づいて、入力された文章がフレーム表現に変換され、変換後のスロットの組に基づいて、マスタフレームのフレーム記述が更新され、マスタフレームの状態に基づいて、データベースの検索処理が必要であるか否かが判断される。そして、データベースの検索処理が必要であると判断された場合、検索処理が実行されて、データベースから所望の情報が取得され、マスタフレームのターゲットに対応する部分に、取得された情報が記載されて、マスタフレームのフレーム記述が更新される。
また、データベースの検索処理が必要ではないと判断された場合、制御信号の出力が必要であるか否かが判断される。そして、制御信号の出力が必要であると判断された場合、ネットワークインターフェース15によって接続されている所定の外部装置の処理を制御するための制御信号が生成されて、ネットワークインターフェース15およびネットワークを介して、制御先の機器に送信され、制御信号出力先からの応答が受信される。
また、制御信号の出力が必要ではないと判断された場合、図8、図9、図14、または、図15に示されるようなテンプレートを基に、ユーザへの出力文が生成され、テキストもしくは画像として表示出力されたり、または、音声出力される。
ステップS95またはステップS97の処理の終了後、ステップS98において、対話処理部162は、対話履歴保存部142に保存されている対話履歴に、この対話処理における履歴情報を追加し、必要に応じて、対話処理結果をユーザプロファイル保存部143に供給して、処理が終了される。
なお、ここでは、音声データ取得部71が音声データを取得した場合の処理について説明したが、テキストデータ入力部11がユーザからテキストデータの入力を受けた場合、ステップS81乃至ステップS83の処理に代わって、基本的に、図16を用いて説明した対話処理1のステップS1と同様の処理が実行され、ステップS86の処理において、音声解析時の信頼度情報が利用されない(ユーザプロファイルおよび対話履歴のみを用いて、類似度に重み付けが施される)。
このような処理により、ユーザにより入力されたテキスト、または、ユーザによる発話を音声認識した結果得られたテキストと、フレーム表現された用例との類似度が算出されて、算出された類似度を基に、最適用例が選択され、マスタフレームのスロットの値が更新されて、更新されたマスタフレームを基に対話処理が実行されるので、ユーザは、例えば、複数の候補文を選択することなく、自然言語による質問と回答の応酬によって、所望の情報を得たり、ネットワーク機器に対して所望の操作指令を行うことができ、更に、類似度の計算に、音声認識結果の確からしさを示す信頼度情報、ユーザの対話履歴情報、または、ユーザプロファイルを必要に応じて用いるようにしているので、対話処理の精度が向上し、音声認識をした結果を利用する場合など入力文に誤りが含まれる場合に対する処理のロバストネスも向上する。
上述した、本発明を適用した対話処理装置における対話処理では、文法を記述してユーザからの入力文を処理する方式に比べて、入力文のバリエーションに対する処理の適用範囲を広くすることが可能となる。また、本発明を適用した対話処理装置における対話処理では、従来の音声認識を利用した対話処理と比較して、音声認識の確からしさを示す情報を利用するようにしたので、音声認識をした結果を利用する場合など入力文に誤りが含まれる場合などに対する処理のロバストネスを向上させることができる。また、本発明を適用した対話処理装置における対話処理では、システムの構築のために、専門的な文法を記述して、装置に入力文を解釈させる必要がないため、言語的な知識を持たない人間が新たな話題に対する対話システムを構築しようとする場合の作業量を低減することが可能である。
また、例えば、ロボット装置などに本発明を適用した対話処理装置を組み込むようにすることにより、上述した対話処理を利用して、ユーザが、ロボットを自然言語で制御することができるようにすることも可能である。また、上述した対話処理は、ユーザインタフェースとして利用されるのみならず、例えば、ロボットが内部に保持する記憶や感情モデルなどへの内部処理のインターフェースとして用いることも可能である。
上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
図26は、上述した一連の処理をソフトウェアにより実現する場合のパーソナルコンピュータ201の一実施の形態の構成を示している。
パーソナルコンピュータ201のCPU211は、パーソナルコンピュータ201の動作の全体を制御する。また、CPU211は、内部バス213および入出力インターフェース212を介して、マウス231やキーボード232などからなる入力部214から、ユーザによる操作入力が入力されると、それに対応してROM(Read Only Memory)215に格納されているプログラムをRAM(Random Access Memory)216にロードして実行する。あるいはまた、CPU211は、HDD218にインストールされたプログラムをRAM216にロードして実行し、ディスプレイ233やスピーカ234などの出力部217に実行結果を出力させる。更に、CPU211は、ネットワークインターフェース220を制御して、外部と通信し、データの授受を実行する。
また、CPU201は、内部バス213および入出力インターフェース212を介して、必要に応じて、ドライブ219と接続され、ドライブ219に必要に応じて装着された磁気ディスク221、光ディスク222、光磁気ディスク223、または半導体メモリ224と情報を授受することができるようになされている。
プログラムが記録されている記録媒体は、図26に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク221(フレキシブルディスクを含む)、光ディスク222(CD−ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク23(MD(Mini-Disc)を含む)、もしくは半導体メモリ224などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM215や、HDD218などで構成される。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
1 対話処理装置, 11 テキストデータ入力部, 12 対話制御部, 13 データベース, 14 出力制御部, 15 ネットワークインターフェース, 31 文章情報取得部, 32 類似度計算部, 33 用例データベース, 34 シソーラス記憶部, 35 最適用例選択部, 36 フレーム表現変換部, 37 対話処理部, 38 マスタフレーム保持部, 39 検索処理部, 40 制御信号生成部, 41 出力文生成部, 61 対話処理装置, 71 音声データ取得部, 72 音声処理部, 73 対話制御部, 111 類似度計算部, 131 対話処理装置, 141 対話制御部, 142 対話履歴保存部, 143 ユーザプロファイル保存部, 161 類似度計算部, 162 対話処理部