以下に本発明の実施の形態を説明するが、本明細書に記載の発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が、本明細書に記載されていることを確認するためのものである。したがって、発明の実施の形態中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
更に、この記載は、本明細書に記載されている発明の全てを意味するものでもない。換言すれば、この記載は、本明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現、追加される発明の存在を否定するものではない。
請求項1に記載の情報処理装置(例えば、図1の対話処理装置1、または、図19の対話処理装置61)は、自然言語で記述されたテキストデータを取得する取得手段(例えば、図1、または、図19のテキストデータ入力部11、もしくは、図19の音声データ取得部71および音声処理部72)と、取得手段により取得されたテキストデータを基に、所定の話題に対する対話処理を実行する複数の対話処理実行手段(例えば、図1の対話制御部12−1乃至12−n、または、図19の対話制御部73−1乃至73−n)と、複数の対話処理実行手段から、対話処理を実行する対話処理実行手段を選択する選択手段(例えば、図1または図19の対話処理選択部13)とを備え、複数の対話処理実行手段は、取得手段により取得されたテキストデータと、自分自身が実行する対話処理の所定の話題との類似度を計算する類似度計算手段(例えば、図2の類似度計算部32または図21の類似度計算部101)を備え、選択手段は、類似度計算手段により計算された類似度を基に、対話処理を実行する対話処理実行手段を選択し、選択手段により選択された対話処理実行手段は、類似度計算手段により計算された類似度を用いて、対話処理を実行することを特徴とする。
対話処理実行手段は、所定の話題に関連する用例を複数記憶する用例記憶手段(例えば、図2または図21の用例データベース33)を更に備えることができ、類似度計算手段は、取得手段により取得されたテキストデータと用例との類似度を、テキストデータと所定の話題との類似度として計算することができる。
取得手段は、音声データを取得する音声データ取得手段(例えば、図19の音声データ取得部71)と、音声データ取得手段により取得された音声データを解析し、音声データに対応するテキストデータを出力する音声処理手段(例えば、図19の音声処理部72)とを備えることができる。
音声処理手段は、音声データに対応するテキストデータの信頼度を更に求めることができ、類似度計算手段は、信頼度を更に用いて、類似度を計算することができる。
対話処理実行手段により実行された対話処理の履歴を保存する履歴保存手段(例えば、図19の対話履歴保存部74)を更に備えることができ、類似度計算手段は、履歴保存手段により保存されている履歴を更に用いて、類似度を計算することができる。
ユーザ情報を保存するユーザ情報保存手段(例えば、図19のユーザプロファイル保存部75)を更に備えることができ、類似度計算手段は、ユーザ情報保存手段により保存されているユーザ情報を更に用いて、類似度を計算することができる。
請求項7に記載の情報処理方法は、複数の話題に対する対話処理を実行する情報処理装置(例えば、図1の対話処理装置1、または、図19の対話処理装置61)の情報処理方法であって、自然言語で記述されたテキストデータの取得を制御する取得制御ステップ(例えば、図16のステップS1の処理、または、図23のステップS91の処理)と、取得制御ステップの処理により取得が制御されたテキストデータと、複数の話題とのそれぞれの類似度を計算する類似度計算ステップ(例えば、図16のステップS2の処理、または、図22のステップS71の処理)と、類似度計算ステップの処理により計算された類似度を基に、テキストデータと類似度の高い話題を選択する選択ステップ(例えば、図16のステップS3の処理、または、図22のステップS72の処理)と、選択ステップの処理により選択された話題に対応する類似度を用いて、対話処理を実行する対話処理実行ステップ(例えば、図16のステップS5の処理、または、図22のステップS74の処理)とを含むことを特徴とする。
また、請求項8に記載のプログラムにおいても、各ステップが対応する実施の形態(但し一例)は、請求項7に記載の情報処理方法と同様である。
以下、図を参照して、本発明の実施の形態について説明する。
図1は、本発明を適用した第1の実施の形態における、対話処理装置1の構成を示すブロック図である。
テキストデータ入力部11は、例えば、キーボードやタッチパッドなどによりユーザから入力されたテキストデータを取得し、対話制御部12−1乃至12−nに出力する。
対話制御部12−1乃至12−nは、それぞれ、異なる話題に関する対話処理を行うことができるようになされている。対話制御部12−1乃至12−nは、テキストデータ入力部11から供給されたテキストデータと、自分自身が対話処理を行う話題との類似度を演算し、対話処理選択部13に供給する。そして、対話制御部12−1乃至12−nのうち、対話処理選択部13により、対話処理を継続するように制御する制御信号を受けたものが、算出した類似度を利用して対話処理を実行し、データベース14、または、外部のデータベースにアクセスし、ユーザが所望する情報を取得したり、ユーザの質問に対する答え、または、答えを求めるために必要な情報の入力をユーザに促すためなどの各種通知に対応する出力文を生成して出力制御部15に供給したり、他の外部機器を制御するための制御信号を生成し、ネットワークインターフェース16を介して、生成された制御信号を、対応する機器に出力する。
対話処理選択部13は、対話制御部12−1乃至12−nのそれぞれから供給された類似度の算出結果を基に、テキストデータ入力部11に入力されたテキストに対する対話処理を行う対話制御部を、対話制御部12−1乃至12−nから選択し、選択した対話制御部12−1乃至12−nのうちのいずれかに、算出した類似度の結果を用いて対話処理を継続するように制御する制御信号を生成して出力する。対話処理選択部13による対話制御部の選択の詳細については後述する。
データベース14は、対話処理において必要なデータを保持するデータベースである。なお、対話処理装置1が外部のデータベースと接続可能である場合、データベース14は、必ずしも備えられていなくてもよい。
出力制御部15は、例えば、テキストや画像情報を表示可能な表示部および表示部を制御する表示制御部、または、音声を出力するスピーカと、スピーカから出力される音声データを処理する音声処理部などで構成され、対話制御部12−1乃至12−nのうちのいずれかにおいて生成された出力文を、表示、または、音声出力する。また、出力制御部15は、外部の表示部または外部のスピーカに対して、表示用の画像データまたは音声出力用の音声データを出力するようにしてもよい。
ネットワークインターフェース16は、例えば、LAN(Local Area Network)やホームネットワーク、または、インターネットなどの各種ネットワークと接続され、対話制御部12−1乃至12−nのうちのいずれかにおいて生成された制御信号を、ネットワークを介して、例えば、ネットワーク対応の表示装置、スピーカ、テレビジョン受像機、ビデオデッキ、ホームサーバなどの機器に出力し、制御信号出力先の機器から制御信号に対する応答信号を受信する。
以下、対話制御部12−1乃至12−nを個々に区別する必要がない場合、単に対話制御部12と総称する。
次に、図2は、図1の対話制御部12の更に詳細な構成を示すブロック図である。
文章情報取得部31は、ユーザにより入力された文章情報(例えば、テキストデータ入力部11から供給されたテキストデータ)を取得し、類似度計算部32に供給する。
類似度計算部32は、文章情報取得部31から供給される文章情報を、例えば、単語単位に分解し、そこから助詞を削除することなどにより、自立語のみでなる単語列に変換する。そして、類似度計算部32は、シソーラス記憶部34に記憶されているシソーラスを用い、その単語列(以下、適宜、入力単語列という)と、用例データベース33に記憶されている用例それぞれとの類似度を示す類似度スコアを計算し、そのうち、入力単語列との類似度が最も高いことを示す類似度スコアを、ユーザの入力文と自分自身が処理する対話処理の話題との類似度として、対話処理選択部13に供給する。そして、類似度計算部32は、対話処理選択部13から、対話処理の継続を指令する制御信号を受けたとき、類似度の計算結果を最適用例選択部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は、更新されたマスタフレームを基に、対話処理において、データベース14、または、外部のデータベースにアクセスして、ユーザの質問に対する回答を示す「ターゲット」として指定されているスロットに関する情報を取得したり、所定の外部機器に対する制御信号を生成して出力したり、所定のテンプレートを用いて、検索条件を絞り込むための質問や、データベースにアクセスして取得された情報をユーザに通知するためにテキストまたは音声を出力するという動作のうちのいずれの動作を行うべきかを選択し、検索処理部39、制御信号生成部40、または、出力文生成部41を制御して、それぞれに処理を実行させる。更に、対話処理部37は、検索処理部39から供給された検索結果を基に、更に、マスタフレームを更新し、更新されたマスタフレームの状態に基づいて、次に対話処理としてどのような動作を行うかを決定する。
検索処理部39は、対話処理部37の制御に基づいて、データベース14、または、外部のデータベースにアクセスして、スロットに記載されている値を検索キーとして、ターゲットとして指定されているスロットに関する情報を取得し、対話処理部37に供給する。
制御信号生成部40は、対話処理部37の制御に基づいて、例えば、ネットワークを介して接続された表示装置やスピーカ、ネットワーク対応のテレビジョン受像機、ビデオデッキ、または、ホームサーバなどの外部の装置に対する制御信号を生成し、ネットワークインターフェース16を介して出力する。
出力文生成部41は、対話処理部37の制御に基づいて、内部のテンプレートを参照して、検索条件を絞り込むための質問や、データベースにアクセスして取得された情報をユーザに通知するための出力文を生成し、生成した出力文を出力制御部15に供給し、テキストデータとして表示、または、音声出力させる。出力文生成に用いられるテンプレートについては、図8および図9、または、図14および図15を用いて後述する。
このように、対話処理装置1において実行される対話処理においては、対話制御部12−1乃至12−nにおいて、用例がフレーム形式の表現と対応付けられて予め記憶されており、ユーザが入力した文章とそれぞれの用例との類似度が算出されて、そのうち最も類似度が高いことを示す類似度スコアが、ユーザの入力文と自分自身が処理可能な話題との類似度として、対話処理選択部13に出力されるようになされている。そして、対話処理選択部13から、対話処理の継続を指令された場合、類似度スコアを基に、ユーザが入力した文章との類似度が高い用例が選択されて、そのスロットの値が入力単語列を構成する単語に置き換えられる。すなわち、入力単語列が、フレーム形式の表現に対応付けられて、フレーム形式の表現を基に、対話処理が実行されるようになされている。また、対話処理を実行する対話制御部の選択は、対話制御部12−1乃至12−nが実行する対話処理において必要となる、入力単語列と用例との類似度スコアに基づいて行われる。
このような構成の対話処理装置1において処理可能な対話処理の話題を、追加、変更、または、削除する場合、対話処理選択部13の機能を変更することなく、新たな話題の対話処理を実行することが可能な対話制御部12を新たに追加したり、対話制御部12−1乃至12−nのうちのいずれかを変更または削除するようにすれば良い。すなわち、対話処理装置1は、従来における複数の話題の対話処理が可能な対話処理装置と比較して、メンテナンスが非常に簡単である。
また、対話制御部12−1乃至12−nのそれぞれにおいては、用例がフレーム形式の表現と対応付けられているため、類似度の計算や、データベースにアクセスして情報を取得する場合の検索処理において、検索キーとなる単語を抽出するために、入力された文章から再度単語を抽出するなどの処理を行ったり、単語の意味解析を実行する必要がない。更に、本実施の形態における対話処理においては、ユーザが入力した文章が、フレーム形式の表現に対応付けられるので、出力文の生成においても、テンプレートに当てはめる単語の決定が簡単である。すなわち、用例を利用する対話処理にフレーム形式を用いることにより、対話処理の動作を簡便化することが可能となる。
そして、上述した、類似度計算部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)と求められる。
以上のようにして、用例データベース33に登録されている全ての用例について、入力単語列に対する類似度が計算される。
次に、図4乃至図15を用いて、複数の対話制御部12において利用される、用例とフレーム表現について説明する。
まず、図4乃至図9を用いて、対話制御部12−1が天気予報に関する対話処理を行うものとし、その場合における用例とフレーム表現について説明する。
図4に、天気予報を対象とする対話処理を行う場合に対話制御部12−1で利用されるフレーム表現の例を示す。フレームは、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は、類似度スコアの計算結果のうち、最も類似度が高いことを示す類似度スコアを対話処理選択部13に供給する。
そして、類似度計算部32は、対話処理選択部13から対話処理を行う対話制御部として選択されたことを示す制御信号の供給を受けたとき、入力単語列とそれぞれの用例との類似度スコアの計算結果を最適用例選択部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を制御して、天気予報に関する情報を提供するデータベース(内部のデータベース14であっても、外部のデータベースであってもよい)にアクセスさせて、「今日」および「横浜」を検索キーとして、「天気」、すなわち、ターゲットに関する情報を取得させる。このように、データベースの検索が選択された場合、検索処理部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は、対話処理の結果に基づいて、外部機器を制御するための制御信号を生成し、ネットワークインターフェース16に出力する。ネットワークインターフェース16は、ネットワークを介して、制御先の機器に、制御信号を送信し、必要に応じて、その応答を受信する。
次に、図10乃至図15を用いて、対話制御部12−2がテレビ番組情報に関する対話処理を行うものとし、その場合における用例とフレーム表現について説明する。この場合、対話処理の結果、例えば、EPG(Electronic Program Guide)などで構成されるテレビ番組情報のデータベースから、必要な情報が検索されて、その検索結果がユーザに通知されたり、外部のテレビジョン受像機にチャンネルのチューニングを指令したり、外部のビデオデッキやホームサーバに、録画予約処理を行わせるための制御信号を生成して出力する処理を実行することができる。
図10に、テレビ番組情報を対象とする対話処理を行う場合に対話制御部12−2で利用されるフレーム表現の例を示す。フレームは、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は、入力文として「森村拓哉は何に出ている」が与えられたときの個々の用例と入力文との類似度スコアの計算結果のうち、最も類似度が高いことを示す類似度スコアを対話処理選択部13に供給する。
そして、類似度計算部32は、対話処理選択部13から対話処理を行う対話制御部として選択されたことを示す制御信号の供給を受けたとき、入力単語列とそれぞれの用例との類似度スコアの計算結果を最適用例選択部35に出力する。
最適用例選択部35は、個々の用例との類似度計算の結果に基づき、用例データベース33に登録されている用例のうち、類似度が最も高い用例を選択し、選択された用例、すなわち、最適用例とともに、入力単語列をフレーム表現変換部36に供給する。例えば、入力された文章が、「森村拓哉は何に出ている」であるとき、用例「山村正和の出ているドラマは何がある」が最適用例となり、(森村拓哉、山村正和)(何、何)(出る、ある)の3つの単語のペアが求まる。したがって、最適用例選択部35は、「山村正和の出ているドラマは何がある」に対応する用例と入力単語列(「森村拓哉」、「出ている」、「何」)とをフレーム表現変換部36に出力する。
そして、フレーム表現変換部36は、図12に示されるように、最適用例を構成するスロットの組の単語のうち、入力単語列を構成する単語に対応するものを、それぞれ置き換えて、入力文に対応するフレーム形式を得て、そのフレーム形式を示す情報(スロットの組)を対話処理部37に出力する。すなわち、上述した例における単語のペアのうち、用例に記述されているフレーム形式中の値の部分で利用されているのは「山村正和」だけなので、フレーム表現変換部36は、その部分を、対応する森村拓哉に置き換えて、スロット名「番組名」に対して値「Target」が記載されているスロットの組を出力する。
そして、対話処理部37は、フレーム表現変換部36の処理により生成された、入力文に対応するフレーム形式の情報の供給を受け、図10を用いて説明した、マスタフレーム保持部38に保持されているマスタフレームを、図13に示されるように更新する。すなわち、対話処理部37は、入力文に対応するフレーム形式で記入されているスロット名の値を、マスタフレーム内の同一の名称のスロット名の値として設定するので、具体的には、入力された文章が、「森村拓哉は何に出ている」であるとき、図10を用いて説明したマスタフレームにおいて、スロット名「出演者」に対して値「森村拓哉」が記載され、スロット名「番組名」に対して値「Target」が記載されて、マスタフレームが更新される。
次に、対話処理部37は、マスタフレームの状態に基づいて、次に対話処理としてどのような動作を行うかを決定する。対話処理部37は、例えば、入力された文章が、「森村拓哉は何に出ている」である場合、検索処理部39を制御して、例えば、EPGなどの番組情報を記憶しているデータベース(内部のデータベース14であっても、外部のデータベースであってもよい)にアクセスさせて、「森村拓哉」が出演している「番組名」(すなわち、ターゲット)に関する情報を取得させる。このように、データベースの検索が選択された場合、検索処理部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を制御して、番組情報データベースにアクセスする代わりに、必要に応じて、ネットワークを介して接続されているホームサーバに録画されている映像コンテンツの一覧をデータベースとして利用して、録画されている番組の中からユーザが所望する番組を検索し、対応する番組が録画されている場合は、読み出して再生させるといった処理を実行させることも可能である。
このように、用例を、文章情報と、スロットの組とで構成するようにしたので、入力文のバリエーションに対するカバレッジを広くすることが可能となる。また、入力文を解釈するために文法を記述する必要がないため、言語的な知識を持たない人間が新たな話題に対する対話システムを構築しようとする場合の作業量を低減することが可能である。
このようにして、対話制御部12−1乃至対話制御部12−nは、それぞれ異なる話題に対応することが可能なようになされている。そして、ユーザにより入力された文と、対話制御部12−1乃至対話制御部12−nのそれぞれが内部に保有している用例との類似度が算出される。入力された文と用例との類似度は、すなわち、ユーザにより入力された文と、対話制御部12−1乃至対話制御部12−nのそれぞれが対応可能な話題との類似度と等しいのであるから、類似度の算出結果を得た対話処理制御部13は、その算出結果を基に、対話処理を行うのは、いずれの対話制御部であるかを選択することができる。
そして、対話処理装置1において対応可能な話題の追加、削除、変更などは、対話処理選択部13の機能を変更することなく、対話制御部12−1乃至対話制御部12−nの追加、削除、変更によって容易に行うことが可能である。
次に、図16のフローチャートを参照して、図1の対話処理装置1が実行する対話処理1について説明する。
ステップS1において、テキストデータ入力部11は、ユーザからテキストデータの入力を受けたか否かを判断する。ステップS1において、テキストデータの入力を受けていないと判断された場合、テキストデータの入力を受けたと判断されるまで、ステップS1の処理が繰り返される。
ステップS1において、テキストデータの入力を受けたと判断された場合、ステップS2において、テキストデータ入力部11は、入力されたテキストデータを対話制御部12−1乃至対話制御部12−nのそれぞれに供給するので、対話制御部12−1乃至対話制御部12−nのそれぞれにおいて、図17を用いて後述する、類似度算出処理1が実行される。
ステップS3において、対話処理選択部13は、対話制御部12−1乃至対話制御部12−nのそれぞれにおいて算出された類似度の算出結果を基に、類似度スコアを利用したこれ以降の対話処理である対話応答処理を実行する対話制御部を選択する。具体的には、対話処理選択部13は、話制御部12−1乃至対話制御部12−nのそれぞれにおいて算出された類似度の算出結果を類似度スコアSとしたとき、類似度スコアSが最も小さいもの、すなわち、対話制御部12−1乃至対話制御部12−nのそれぞれにおいて実行される対話処理の話題と、入力されたテキストの話題との類似度が高いものを選択する。
ステップS4において、対話処理選択部13は、対話処理を行う対話制御部として選択された、対話制御部12−1乃至対話制御部12−nのうちのいずれか1つに、対話処理の継続を指令する制御信号を生成して出力する。
ステップS5において、対話処理選択部13から制御信号の供給を受けた対話制御部12−1乃至対話制御部12−nのうちのいずれかにおいて、図18を用いて後述する対話応答処理が実行されて、処理が終了される。
次に、図17のフローチャートを参照して、図16のステップS2において実行される類似度算出処理1について説明する。
ステップS21において、対話制御部12の文章情報取得部31は、テキストデータの入力を受けたか否かを判断する。ステップS21において、テキストデータの入力を受けていないと判断された場合、テキストデータの入力を受けたと判断されるまで、ステップS21の処理が繰り返される。
ステップS21において、テキストデータの入力を受けたと判断された場合、文章情報取得部31は、入力されたテキストデータを類似度計算部32に供給するので、ステップS22において、類似度計算部32は、入力された文章を単語に分解した後、助詞を分離して入力単語列を生成し、シソーラス記憶部34に記憶されているシソーラスを参照して、用例データベース33に登録されている各用例との類似度である類似度スコアSを計算する。
ステップS23において、類似度計算部32は、入力された文章と用例データベース33に登録されている各用例との類似度である類似度スコアSの計算の結果、最も類似度が高いことを示す算出結果(すなわち、もっとも小さな類似度スコアS)を、対話処理選択部13に出力し、処理は、図1のステップS3に進む。
次に、図18のフローチャートを参照して、対話処理の継続を指令された対話制御部12が、図16のステップS5において実行する対話応答処理について説明する。
ステップS41において、対話制御部12の対話処理部37は、マスタフレーム保持部38に保持されているマスタフレームの値の記述を、必要に応じてリセットする。具体的には、対話処理部37は、例えば、前回の対話処理において、ユーザに対する質問文を出力している場合などは、マスタフレームの値の記述をリセットしないが、前回の対話処理において、外部の機器を制御している場合などは、マスタフレームの値の記述をリセットする。
ステップS42において、最適用例選択部35は、図17のステップS22において計算された類似度スコアSの計算結果に基づいて、用例データベース33に登録されている用例から、最適な用例である最適用例を選択し、最適用例と入力単語列とをフレーム表現変換部36に供給する。
ステップS43において、フレーム表現変換部36は、選択された用例である最適用例の記述に基づいて、すなわち、最適用例を構成するスロットの組にしたがって、入力単語列を構成する単語に対応するものを、それぞれ置き換えて、入力された文章をフレーム表現に変換し、変換後のスロットの組を、対話処理部37に供給する。
ステップS44において、対話処理部37は、マスタフレーム保持部38に保持されているマスタフレームを読み込み、フレーム表現変換部36から供給された変換後のスロットの組に基づいて、マスタフレームのフレーム記述を更新する。
ステップS45において、対話処理部37は、マスタフレームの状態に基づいて、データベースの検索処理が必要であるか否かを判断する。具体的には、対話処理部37は、例えば、入力された文章が、「横浜の明日の天気は」や「山村正和が出てきるドラマは」である場合など、マスタフレームにおいて、スロットの値がターゲットとなっているものがあり、データベースを検索するのに十分な情報がスロットに記載されているとき、対話処理において、内部のデータベース14、または、外部のデータベースに対する検索処理が必要であると判断し、マスタフレームにおいて、スロットの値がターゲットとなっているものがないときや、データベースを検索するのに十分な情報がスロットに記載されていないとき、対話処理において、内部のデータベース14、または、外部のデータベースに対する検索処理を行わずに、異なる処理を行うと判断する。
ステップS45において、データベースの検索処理が必要であると判断された場合、ステップS46において、対話処理部37は、検索処理部39を制御して、検索処理を実行させる。検索処理部39は、対話処理部37の処理により更新されたマスタフレームを構成するスロットの値を用いて適切な検索式を作成し、データベース(内部のデータベース14であっても、外部のデータベースであってもよい)にアクセスして所望の情報を取得し、対話処理部37に供給する。
ステップS47において、対話処理部37は、供給された検索結果に基づいて、マスタフレームのターゲットに対応する部分に、取得された情報を記載し、マスタフレームのフレーム記述を更新し、処理は、ステップS45に戻り、それ以降の処理が繰り返される。
ステップS45において、データベースの検索処理が必要ではないと判断された場合、ステップS48において、対話処理部37は、制御信号の出力が必要であるか否かを判断する。具体的には、対話処理部37は、例えば、入力された文章が、「録画して」である場合、制御信号生成部40を制御し、現在のメインフレームに記載されている情報を参照して、所定の外部装置を制御するための制御信号を生成させて出力させる。
ステップS48において、制御信号の出力が必要であると判断された場合、ステップS49において、対話処理部37は、制御信号生成部40を制御し、ネットワークインターフェース16によって接続されている所定の外部装置の処理を制御させる。対話処理部37により制御されている制御信号生成部40は、これまでの対話処理の結果に基づいて、外部機器を制御するための制御信号を生成し、ネットワークインターフェース16に出力する。ネットワークインターフェース16は、ネットワークを介して、制御先の機器に、制御信号を送信する。
ステップS50において、ネットワークインターフェース16は、制御信号出力先からの応答を受信して、対話制御部12の制御信号生成部40に出力する。制御信号生成部40は、制御信号出力先からの応答を対話処理部37に供給し、処理は、ステップS5に戻り、処理が終了される。
ステップS48において、制御信号の出力が必要ではないと判断された場合、具体的には、例えば、ステップS46およびステップS47の処理により得られた検索処理結果を、図8または図14を用いて説明したテンプレートを利用して、ユーザに対して通知する必要がある場合、マスタフレームに記載されている情報が検索処理を実行するために必要な情報に満たないため、例えば、図9または図15を用いて説明したテンプレートを利用してユーザに対する質問を出力する必要がある場合、または、前の対話処理の内容により、例えば、「その番組を視聴しますか?または、録画しますか?」や、「録画している番組から検索して再生しますか?」などの質問をユーザに対して出力する必要がある場合など、ユーザに対して情報を提供するために出力文を生成し、ユーザに対して出力する必要がある場合、ステップS51において、対話処理部37は、出力文生成部41を制御して、ユーザへの出力文を生成させる。出力文生成部41は、対話処理部37の制御に基づいて、図8、図9、図14、または、図15に示されるようなテンプレートを基に、ユーザへの出力文を生成し、出力制御部15に出力する。
ステップS52において、出力制御部15は、テキストや画像情報を表示可能な表示部および表示部を制御する表示制御部、または、音声を出力するスピーカと、スピーカから出力される音声データを処理する音声処理部の処理により、ユーザへの出力文をテキストもしくは画像として表示出力したり、または、音声出力し、処理はステップS5に戻り、処理が終了される。
このような処理により、ユーザにより入力されたテキストと対話制御部12−1乃至対話制御部12−nのそれぞれが実行する対話処理の話題との類似度が算出されて、類似度の算出結果を基に、ユーザにより入力されたテキストに最も適した対話制御部が、対話制御部12−1乃至対話制御部12−nのうちから選択され、対話制御部の選択に用いられた類似度を基に、最適用例が選択され、マスタフレームのスロットの値が更新されて、更新されたマスタフレームを基に対話処理が実行される。このことにより、ユーザは、例えば、複数の候補文を選択することなく、自然言語による質問と回答の応酬によって、所望の情報を得たり、ネットワーク機器に対して所望の操作指令を行うことができる。
そして、対話処理装置1において対応可能な話題の追加、削除、変更などは、対話制御部12−1乃至対話制御部12−nの追加、削除、変更によって容易に行うことが可能である。
以上の説明においては、対話処理に用いられるユーザからの入力文は、テキストデータとして入力されるものとして説明したが、例えば、ユーザが発話した音声データを解析し、音声処理により、テキストデータを取得して、取得されたテキストデータをユーザからの入力文として取り扱うことができるようにしてもよい。更に、過去の対話処理に関する情報である対話履歴やユーザプロファイルを保存し、これらを基に、類似度スコアを補正し、補正された類似度スコアに基づいて、対話制御部の選択や、対話応答処理を行うことができるようにしてもよい。
図19は、本発明を適用した第2の実施の形態における、対話処理装置61の構成を示すブロック図である。対話処理装置61は、ユーザのテキスト入力に加えて、ユーザの発話に対応する音声データを取得して、音声処理により、テキストデータを取得することができるようになされているとともに、対話履歴やユーザプロファイルを保存し、これらを基に、類似度を補正し、対話制御部の選択や、対話応答処理を行うことができるようになされている。
なお、図19においては、図1における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図19の対話処理装置61は、新しく、音声データ取得部71、音声処理部72、対話履歴保存部74およびユーザプロファイル保存部75が設けられ、対話制御部12−1乃至対話制御部12−nに代わって、対話制御部73−1乃至対話制御部73−nが設けられている以外は、基本的に、図1を用いて説明した対話処理装置1と同様の構成を有するものである。
音声データ取得部71は、そこに入力される、いわば空気の波である音声を、電気的な波である音声信号に変換する、例えばマイクなどと、そのマイクから出力される音声信号を増幅するアンプなどで構成され、取得したアナログの音声信号を、音声処理部72に供給する。音声処理部72は、取得された音声信号を処理し、テキストデータとして認識する音声認識処理を実行して、対話制御部73に供給するとともに、音声認識処理における信頼度の情報を対話制御部73に供給する。
対話制御部73−1乃至対話制御部73−nは、テキストデータ入力部11、または、音声処理部72から供給されたテキストデータを基に、ユーザの入力したテキストデータと、自分自身が対話処理を行う話題との類似度を演算し、対話処理選択部13に供給する。そして、対話制御部73−1乃至73−nのうち、対話処理選択部13により、対話処理を継続するように制御する制御信号を受けたものが、算出した類似度を利用して対話処理を実行し、データベース14、または、外部のデータベースにアクセスし、ユーザが所望する情報を取得したり、ユーザの質問に対する答え、または、答えを求めるために必要な情報の入力をユーザに促すためなどの各種通知に対応する出力文を生成して出力制御部15に供給したり、他の外部機器を制御するための制御信号を生成し、ネットワークインターフェース16を介して、生成された制御信号を、対応する機器に出力する。そして、対話制御部73−1乃至対話制御部73−nは、音声処理部72において実行される音声認識処理における信頼度の情報を取得したり、対話履歴保存部74に保存されている対話履歴情報、および、ユーザプロファイル保存部75に保存されているユーザプロファイル情報を取得して、これを、対話処理における類似度の計算に反映することができるようになされている。
対話履歴保存部74は、以前実行された対話処理に関する履歴を所定回数分、または所定時間だけ保存している。ユーザプロファイル保存部75は、例えば、ユーザの個人情報や、行動パターンなどのユーザプロファイル情報を保存する。具体的には、ユーザプロファイル保存部75は、ユーザの氏名、性別、年齢、住所などの個人情報や、対話処理を頻繁に行う時間帯とその内容、好んで視聴する番組のジャンルまたは時間帯などのユーザ固有の行動パターンなどを保存することができる。なお、ユーザの個人情報は、ユーザの入力により登録される。そして、ユーザ固有の行動パターンは、ユーザの入力により登録されるのみならず、例えば、ユーザプロファイル保存部75が、対話制御部73−1乃至対話制御部73−nから供給される過去の対話処理とその結果を蓄積し、解析する機能を有するものとし、解析された結果得られる行動パターンを登録することができるものとしてもよい。
以下、対話制御部73−1乃至73−nを個々に区別する必要がない場合、単に対話制御部73と総称する。
図20は、音声処理部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には、少なくとも、対話制御部72の用例データベース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に記憶されているバイグラム、トライグラムにより緩い言語的制約をかけ、その制約のもと、例えばビタビアルゴリズムを用いたビームサーチなどにより、適当に枝刈しながら行うようにしてもよい。
次に、図21は、図19の対話制御部73の構成を示すブロック図である。
なお、図21においては、図2における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図21の対話制御部73は、類似度計算部32に代わって、類似度計算部101が設けられ、対話処理部37に代わって対話処理部102が設けられている以外は、基本的に、図2を用いて説明した対話制御部12と同様の構成を有するものである。
類似度計算部101は、基本的には、図2を用いて説明した類似度計算部32と同様にして、音声解析の結果得られたユーザの発話内容を示す文章、または、ユーザにより入力されたテキストと、用例を構成する文章とを、それぞれ形態素解析し、単語単位に分割して、入力単語列と用例との類似度を算出し、算出結果を最適用例選択部35に出力するようになされているが、このとき、必要に応じて、音声処理部72から供給された音声認識の信頼度を利用して類似度に重み付けを施したり、更に、対話履歴保存部74に保存されている対話履歴情報、および、ユーザプロファイル保存部75に保存されているユーザプロファイル情報を取得して、これを類似度の計算に反映することができるようになされている。
すなわち、類似度計算部111は、単語単位に分割された、入力単語列と用例との類似度スコアを算出したのち、音声処理部72から供給された音声認識の信頼度を基に、類似度に重み付けを行う。すなわち、類似度計算部111は、音声認識処理の結果テキストに付与された音響的なスコアも、類似度の算出において考慮することができるようになされている。このことにより、音声認識結果によって、入力文に誤りが含まれる場合に対する処理のロバストネスを向上させることが可能となる。
更に、類似度計算部101は、類似度の算出結果である類似度スコアSに対して、対話履歴に関する情報を利用して、類似度の算出結果を補正する場合、次の式(1)に示される補正を行って、補正後の類似度スコアS'を算出する。
S'=S+x+y+z・・・(1)
ここで、xは、以前実行した対話処理において、ユーザから情報を求める発話を受けたが、まだその情報に答えていない、すなわち、スロットの値が“target”であるものがマスタフレームに記憶されている対話制御部73の類似度計算部101において加算される負の補正値である。
そして、yは、以前実行した対話処理において、ユーザに対して出力したのが、検索条件を絞り込むためなどの、対話処理に必要な、換言すれば、空きスロットに値を記載するための質問であり、今回のユーザの入力文が、質問に対応するスロットの内容に合致している場合に、類似度計算部101において加算される負の補正値である。
そして、zは、直前の対話処理を担当した対話制御部73の類似度計算部101において加算される負の補正値である。
ただし、類似度計算部101は、所定の時間が経過したとき、これら値を0にリセットするようにして、例えば、ユーザが途中で対話を中止して、しばらくたってから、前回までの対話処理とは全く関係のない文章を入力した場合などに対応することができるようにするものとする。
また、類似度計算部101は、類似度の算出結果である類似度スコアSに対して、ユーザプロファイルを利用して、類似度の算出結果を補正する場合、次の式(2)に示される補正を行って、補正後の類似度スコアS''を算出する。
S''=S+t+u・・・(2)
ここで、tは、次の式(3)で示される。
t=N×m・・・(3)
式(3)において、Nはユーザプロファイルから予め値を記載することが可能なスロットの個数であり、mは、所定の負の定数である。例えば、天気の話題に関する処理を実行する対話制御部73が保有するマスタフレームにおいては、場所を示すスロットが必要となるが、ユーザプロファイルとして、ユーザの現住所の情報を保有しているとき、その情報を対応するスロットのデフォルトの値として利用することができる。
そして、uは、ユーザの普段の行動パターンを示すプロファイルを基に補正される補正値である。例えば、毎朝天気情報に関する対話処理入力を行うユーザに対しては、朝の時間帯は、天気に関する話題の処理を実行する対話制御部73における補正値uが、絶対値の大きな負の値となるように(類似度が高くなるような値となるように)設定されるものとする。
さらに、類似度計算部101は、類似度の算出結果である類似度スコアSに対して、対話履歴およびユーザプロファイルの両方を利用して、類似度の算出結果を補正する場合、次の式(4)に示される補正を行って、補正後の類似度スコアS'''を算出する。
S'''=S+x+y+z+t+u・・・(4)
ここでは、類似度が計算する類似度スコアSが小さいもののほうが類似度が高い場合について説明しているため、補正値x、y、z、t、および、uは、それぞれ、負の値であるものとして説明しているが、類似度計算部101が計算する類似度スコアSが大きいものの方が類似度が高いようになされている場合、補正値x、y、zは、それぞれ、正の値となることは言うまでもない。また、補正値x、y、z、t(すなわち、m)、および、uのそれぞれの値は、実験や経験などに基づいて、適宜設定可能な値であることも言うまでもない。
また、これらの対話履歴やユーザプロファイルに基づく補正値は、例えば、ベイジアン・ネットワーク(Bayesian Network)などを利用して得られる確率値などを利用することができる。ベイジアン・ネットワークとは、不確かな出来事の連鎖について、確率の相互作用を集計する手法で、知能情報システム構築の有力な手段になっている確率的推論アルゴリズムのひとつで、原因−結果の複雑な確率ネットワークがあったときに観測された「結果」から「原因」を推定するものである。
そして、対話処理部102は、フレーム表現変換部36から供給されたスロットの組を基に、マスタフレーム保持部38に保持されているマスタフレームを更新し、更新されたマスタフレームの状態に基づいて、次に対話処理としてどのような動作を行うかを決定する処理に加えて、対話処理の結果を、対話履歴保存部74またはユーザプロファイル保存部75に保存する処理を実行する。
また、対話制御部73のシソーラス記憶部34は、少なくとも、図20を用いて説明した音声処理部72の単語辞書95に登録されている単語を、その概念ごとに分類して記憶している。
次に、対話制御部73−1が、天気に関する話題に対する対話処理を実行するようになされており、対話制御部73−2が、テレビ番組情報に関する話題に対する対話処理を実行するようになされている場合を例として、処理を行う対話制御部73の選択の具体的な例について説明する。
ここでは、対話制御部73−1のマスタフレーム保持部38は、図4を用いて説明したマスタフレームを保持し、用例データベース33は、図5を用いて説明したフレーム表現の用例を保持しているものとし、対話制御部73−2のマスタフレーム保持部38は、図10を用いて説明したマスタフレームを保持し、用例データベース33は、図11を用いて説明したフレーム表現の用例を保持しているものとする。
第1の例として、対話履歴の補正値がリセットされた状態で、ユーザにより、「横浜の今日の天気は」という文章が入力されたときの対話処理と、それに続く対話処理において、対話履歴を用いた補正を行う場合(利用可能なユーザプロファイルが存在しない、または、ユーザプロファイルによる補正値を利用しない場合)について説明する。
対話制御部73−1および対話制御部73−2の文章情報取得部31は、ユーザが入力した、「横浜の今日の天気は」という文章を取得し、類似度計算部101に供給する。類似度計算部101は、供給された文章を形態素解析し、「横浜,の,今日,の,天気,は」の6単語に分割し、入力単語列を得る。そして、類似度計算部101は、用例データベース33を参照し、入力単語列とそれぞれの用例との類似度を計算する。
類似度計算部101は、入力単語列と用例データベース33の全ての用例との類似度を算出し、その結果、入力単語列に最も類似することを示す類似度スコア(すなわち、最適用例の類似度スコア)を、対話処理選択部13に出力するようになされている。
例えば、対話制御部73−1において、最も類似度が高い(類似度スコアの低い)最適用例となるものが、「東京の明日の天気を教えて」であった場合、(今日、明日)(横浜、東京)(天気、天気)の3つの単語のペアが求まり、シソーラス記憶部34が参照されて、類似度スコアSは、例えば、(0+1/4+0)=1/4と算出される。ここでは、対話履歴による補正値がリセットされているので、類似度計算部101は、算出された類似度スコアSを、対話処理選択部13に供給する。
そして、対話制御部73−2において、最も類似度が高い(類似度スコアの低い)最適用例となるものが、「今日の昼にあるサッカー番組を教えて」であった場合、(今日、今日)(天気、サッカー)(横浜、昼)の3つの単語のペアが求まり、シソーラス記憶部34が参照されて、類似度スコアSは、例えば、(0+0+4/4)=4/4(天気とサッカーはジャンルスロットであるため、値は0となる)と算出される。ここでは、対話履歴による補正値がリセットされているので、類似度計算部101は、算出された類似度スコアSを、対話処理選択部13に供給する。
そして、対話処理選択部13は、対話制御部73−1の類似度計算部101と対話制御部73−2の類似度計算部101とから供給された類似度スコアSを比較し、対話処理を行う対話制御部73として、対話制御部73−1を選択する。
そして、その対話処理の直後、ユーザにより、「明日は」という文章が入力されたものとする。
対話制御部73−1の用例データベース33および対話制御部73−2の用例データベース33のいずれにおいても、「明日です」という用例があるため、それぞれの類似度計算部101が算出する類似度スコアSは同一の値となる。しかしながら、それぞれの類似度計算部101は、式(1)を用いて説明した、対話履歴に基づいた類似度スコアの補正を行うことができるので、補正値zにより、対話制御部73−1の類似度計算部101が算出する類似度スコアS´は、対話制御部73−2の類似度計算部101が算出する類似度スコアS´より、小さな値、すなわち、類似度が高いことを示す値となる。
対話処理選択部13は、対話制御部73−1の類似度計算部101と対話制御部73−2の類似度計算部101とから供給された類似度スコアS´を比較し、対話処理を行う対話制御部73として、対話制御部73−1を選択する。
次に、第2の例として、対話履歴の補正値がリセットされた状態で、ユーザにより、「今日の天気は」という文章が入力された場合の対話処理において、ユーザプロファイルを用いた補正を行う場合について説明する。
対話制御部73−1および対話制御部73−2の文章情報取得部31は、ユーザが入力した、「今日の天気は」という文章を取得し、類似度計算部101に供給する。類似度計算部101は、供給された文章を形態素解析し、「今日,の,天気,は」の4単語に分割し、入力単語列を得る。そして、類似度計算部101は、用例データベース33を参照し、それぞれの用例との類似度を計算する。
例えば、対話制御部73−1において、最も類似度が高い(類似度スコアの低い)最適用例となるものが、「東京の明日の天気を教えて」であった場合、(今日、明日)(天気、天気)の2つの単語のペアが求まり、シソーラス記憶部34が参照されて、類似度スコアSは、例えば、(0+0)=0と算出される。
そして、対話制御部73−2において、最も類似度が高い(類似度スコアの低い)最適用例となるものが、「今日の昼にあるサッカー番組を教えて」であった場合、(今日、今日)(天気、サッカー)の2つの単語のペアが求まり、シソーラス記憶部34が参照されて、類似度スコアSは、例えば、(0+0)=0(天気とサッカーはジャンルスロットであるため、値は0となる)と算出される。
対話制御部73−1と対話制御部73−2の類似度計算部101が計算する類似度スコアSは、いずれも同一の値となる。すなわち、シソーラスに基づいた類似度スコアSの算出結果だけでは、ユーザが、今日の天気の情報を聞きたいのか、今日の天気番組の情報を聞きたいのかを判断することができないが、対話制御部73−1と対話制御部73−2とのそれぞれの類似度計算部101は、式(2)を用いて説明した類似度スコアの補正値S''を計算することができる。なお、ここでは、対話履歴による補正値はリセットされている。ここで、ユーザプロファイルとして、このユーザは、朝、天気に関する情報を問い合わせることが多いことが登録されている場合、天気に関する情報の話題を処理する対話制御部73−1の類似度計算部101による類似度スコアの補正値S''のほうが、小さな値(類似度が高いことを示す値)となる。対話制御部73−1と対話制御部73−2とのそれぞれの類似度計算部101は、類似度スコアの補正値S''の計算結果を、対話処理選択部13に供給する。
そして、対話処理選択部13は、対話制御部73−1の類似度計算部101と対話制御部73−2の類似度計算部101とから供給された類似度スコアの補正値S''を比較し、対話処理を行う対話制御部73として、対話制御部73−1を選択する。
そして、これに続く対話処理では、対話制御部73−1と対話制御部73−2の類似度計算部101は、式(4)を用いて説明した、ユーザプロファイルと対話履歴のいずれの情報も利用して算出される補正値S'''を計算することができる。そして、対話処理選択部13は、対話制御部73−1の類似度計算部101と対話制御部73−2の類似度計算部101とから供給された類似度スコアの補正値S'''を比較し、対話処理を行う対話制御部73を選択することができる。
また、これらの対話履歴やユーザプロファイルに基づく補正値は、ベイジアン・ネットワークなどを利用して得られる確率値などを利用して算出することも可能である。
このようにして、対話制御部73−1乃至対話制御部73−nは、それぞれ異なる話題に対応することが可能なようになされている。そして、ユーザにより入力された文と、対話制御部73−1乃至対話制御部73−nのそれぞれが内部に保有している用例との類似度が算出されて、音声処理において求められる信頼度、対話履歴、および、ユーザプロファイルを基に補正される。入力された文と用例との類似度の補正値は、すなわち、ユーザにより入力された文と、対話制御部73−1乃至対話制御部73−nのそれぞれが対応可能な話題との類似度と等しいのであるから、類似度スコアの補正値の計算結果を得た対話処理制御部13は、その算出結果を基に、対話処理を行うのは、いずれの対話制御部であるかを選択することができる。
そして、対話処理装置61においても、対応可能な話題の追加、削除、変更などは、対話処理選択部13の機能を変更することなく、対話制御部73−1乃至対話制御部73−nの追加、削除、変更によって容易に行うことが可能である。
次に、図22のフローチャートを参照して、図19の対話処理装置61が実行する対話処理2について説明する。なお、ここでは、音声データ取得部71が音声データを取得した場合の処理について説明する。
ステップS71において、図23を用いて後述する、類似度算出処理2が実行される。
ステップS72乃至ステップS74において、図16のステップS3乃至ステップS5と基本的に同等の処理が実行される。すなわち、対話処理選択部13は、対話制御部73−1乃至対話制御部73−nのそれぞれにおいて算出された類似度の算出結果を基に、対話応答処理を実行する対話制御部を選択し、対話処理を行う対話制御部として選択された、対話制御部73−1乃至対話制御部73−nのうちのいずれか1つに、対話処理の継続を指令する制御信号を生成して出力し、対話処理選択部13から制御信号の供給を受けた対話制御部73−1乃至対話制御部73−nのうちのいずれかにおいて、図18を用いて説明した対話応答処理と基本的に同等の処理が実行される。
そして、ステップS75において、対話処理選択部13から制御信号の供給を受けた対話制御部73−1乃至対話制御部73−nのうちのいずれかの対話処理部102は、対話履歴保存部74に保存されている対話履歴に、この対話処理における履歴情報を追加し、必要に応じて、対話処理結果をユーザプロファイル保存部75に供給して、処理が終了される。
次に、図23のフローチャートを参照して、図22のステップS71において実行される類似度算出処理2について説明する。ここでは、音声データ取得部71が音声データを取得した場合の処理について説明する。
ステップS91において、音声データ取得部71は、ユーザから音声データの入力を受けたか否かを判断する。ステップS91において、音声データの入力を受けていないと判断された場合、音声データの入力を受けたと判断されるまで、ステップS91の処理が繰り返される。
ステップS91において、音声データの入力を受けたと判断された場合、ステップS92において、音声データ取得部71は、入力された音声データを音声処理部72に供給する。音声処理部72は、音声解析処理を行い、その結果を、対話制御部73−1乃至対話制御部73−nのそれぞれに出力する。具体的には、音声処理部72は、図20を用いて説明したように、AD変換部91において、音声データ取得部71から出力されるアナログの音声信号を、所定のクロックのタイミングでサンプリングして量子化を行い、分析部92において、音声信号を音響分析して、例えば所定の帯域ごとの音声のパワーや、線形予測係数、ケプストラム係数などの音声の特徴パラメータを抽出したり、線形予測分析処理を施すことで、線形予測係数を求めたり、線形予測係数からケプストラム係数を求める。そして、認識部93において、分析部92からの特徴パラメータ(あるいは、特徴パラメータをベクトル量子化して得られるシンボル)に基づき、例えばダイナミックプログラミングマッチング法や、HMMなどの音声認識アルゴリズムにしたがい、言語モデル記憶部94および単語辞書95を参照して、音声認識が実行され、音声認識結果が求められるとともに、音声認識結果に加えて、その音声認識結果の確からしさを示す信頼度が求められる。
ステップS93において、対話制御部73の文章情報取得部31は、音声解析の結果得られたテキストデータを取得し、対話制御部73の類似度計算部101は、音声解析時の信頼度情報を取得する。
ステップS94において、類似度計算部101は、文章情報取得部31から供給された、ユーザにより音声入力された文章を単語に分解した後、助詞を分離して入力単語列を生成し、シソーラス記憶部34に記憶されているシソーラスを参照して、用例データベース33に登録されている各用例との類似度を示す類似度スコアを計算する。
ステップS95において、類似度計算部101は、供給された信頼度情報、並びに、ユーザプロファイルおよび対話履歴を基に、算出された類似度の計算結果に重み付けを施す。具体的には、類似度計算部101は、入力単語列と用例との類似度スコアに対して、必要に応じて、音声処理部72から供給された音声認識の信頼度を利用して重み付けを施したのち、対話履歴保存部74に保存されている対話履歴情報、または、ユーザプロファイル保存部75に保存されているユーザプロファイル情報を基に、上述した式(1)乃至式(4)を用いて、類似度スコアの補正値を計算する。
ステップS96において、類似度計算部101は、入力された文章と用例データベース33に登録されている各用例との類似度に、適当な補正が行われるような重み付けを施した結果、最も類似度が高いことを示す算出結果(すなわち、もっとも小さな類似度スコアの補正値)を、対話処理選択部13に出力し、処理は、図22のステップS72に進む。
なお、ここでは、音声データ取得部71が音声データを取得した場合の処理について説明したが、テキストデータ入力部11がユーザからテキストデータの入力を受けた場合、ステップS91乃至ステップS93の処理に代わって、基本的に、図17を用いて説明した類似度算出処理1のステップS21と同様の処理が実行され、ステップS95の処理において、音声解析時の信頼度情報が利用されない(ユーザプロファイルおよび対話履歴のみを用いて、類似度に重み付けが施される)。
このような処理により、ユーザにより入力されたテキスト、または、ユーザによる発話を音声認識した結果得られたテキストと、フレーム表現された用例との類似度の算出に、音声認識結果の確からしさを示す信頼度情報、ユーザの対話履歴情報、または、ユーザプロファイルを必要に応じて用いることができる。そして、算出された類似度を基に、複数の対話制御部73から、ユーザの話題に最も適したものが選択され、選択された対話制御部73において、対話制御部の選択に利用された類似度算出結果が用いられて、最適用例が選択され、マスタフレームのスロットの値が更新されて、更新されたマスタフレームを基に対話処理が実行される。
そして、対話処理装置61においても、対応可能な話題の追加、削除、変更などは、対話処理選択部13の機能を変更することなく、対話制御部73−1乃至対話制御部73−nの追加、削除、変更によって容易に行うことが可能である。
また、ここでは、類似度の算出や対話処理の具体的な方法として、フレーム表現された用例を用いる場合について説明したが、本発明は、対話処理にフレーム表現を用いない場合においても適用可能であることは言うまでもない。例えば、対話制御部12−1乃至対話制御部12−n、または、対話制御部73−1乃至対話制御部73−nは、一般的な文法規則を用いて、ユーザから入力されたテキストと、それぞれの対話制御部が保有する用例との類似度を算出し、対話処理選択部13が、文法規則を用いて算出された類似度スコアを基に、対話制御部12−1乃至対話制御部12−n、または、対話制御部73−1乃至対話制御部73−nから、ユーザにより入力されたテキストに最も適した対話制御部12または対話制御部73を選択して、選択された対話制御部12または対話制御部73において、算出された類似度スコアが用いられて、対話処理が実行されるようにしても良い。
また、例えば、ロボット装置などに本発明を適用した対話処理装置を組み込むようにすることにより、上述した対話処理を利用して、ユーザが、ロボットを自然言語で制御することができるようにすることも可能である。また、上述した対話処理は、ユーザインタフェースとして利用されるのみならず、例えば、ロボットが内部に保持する記憶や感情モデルなどへの内部処理のインターフェースとして用いることも可能である。
上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
図24は、上述した一連の処理をソフトウェアにより実現する場合のパーソナルコンピュータ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 出力制御部, 16 ネットワークインターフェース, 31 文章情報取得部, 32 類似度計算部, 33 用例データベース, 34 シソーラス記憶部, 35 最適用例選択部, 36 フレーム表現変換部, 37 対話処理部, 38 マスタフレーム保持部, 39 検索処理部, 40 制御信号生成部, 41 出力文生成部, 61 対話処理装置, 71 音声データ取得部, 72 音声処理部, 73 対話制御部, 74 対話履歴保存部, 75 ユーザプロファイル保存部, 101 類似度計算部, 102 対話処理部