入力されたテキストがどのような単語、文章、文脈であるかを解析することにより、情報の検索や、文章の作成の補助などが行われている。例えば、単語が入力された際、その単語を解析し、その単語を含む文章が検索されるといった文章検索のサービスが行われている。また、例えば、単語が入力された際、その単語に続く文字(単語、文章など)は、何であるかを類推し、ユーザにその類推結果を提供することにより(ユーザは、その類推結果を用いることにより、文字を入力する手間が省ける)、ユーザが文章を作成する補助を行うといったことが行われている。
また、ユーザが発した言葉を解析し、その言葉に対応する処理を実行するといった音声認識と、その認識結果を用いた処理が行われている。例えば、ユーザが発した言葉を認識し、その認識結果に対した返答を行うことにより、ユーザとの会話を行うロボットなどの開発が行われている。また、ワードプロセッサなどでは、ユーザが発した言葉をテキストデータに変換することも行われている。
このような、ユーザによりテキストデータや音声データとして入力された言葉を処理することを、ここでは、自然言語処理または言語解析と称する。自然言語処理において、文や文章などの複数の単語から構成される言語単位の類似性を表す距離尺度として、ベクトル空間法が利用される。
ベクトル空間法は文章検索の分野で広く使われている方法の一つである。このベクトル空間法においては、処理対象となる文章同士(入力文と入力例)をそれぞれベクトルで表し、文章間の距離を、そのベクトル同士のなす角度として求める。
図1を参照し、ベクトル空間法の入力文と入力例のマッチングの仕方について説明する。図1に示したように、入力例の文章に含まれる単語の頻度を列挙し、各入力例をベクトルとして表現する。同様に、入力文もベクトルで表現される。入力例#k(k=1,2,・・・,K)を表すベクトルxkとし、入力文を表すベクトルyとし、ベクトルxkとベクトルyとがなす角度をθkとして、それぞれ表すこととすると、その余弦(cosine)であるcosθkは、式(1)に基づいて算出することができる。
式(1)において、・は内積を表し、|z|はベクトルzのノルムを表す。
cosθkは、ベクトルxkとベクトルyとが同一の向きであるときに最大値である1となり、ベクトルxkとベクトルyとが逆向きであるときに最小値である-1となる。ただし、ここでは、入力文のベクトルyや入力例#kのベクトルxkの要素は、0以上の値をとるので、ベクトルxkとベクトルyとのcosθkの最小値は0となる。コサインの値が最大になる文章を求めれば、それは入力文に最も「似ている」文章になっていると考えることができる。
ベクトル空間法によるマッチングでは、全ての入力例#kについて、cosθkをスコアとして計算し、例えば、最大のスコアを与える入力例#kが、入力文に最も類似する入力例として求められる。
なお、この例のように、ベクトルの各要素として単語の出現回数を使う場合を tf(Term Frequency)という。一般に、tf を使った検索では高頻度語の影響を受けやすい。また、日本語では、助詞や助動詞の出現頻度が高い傾向がある。従って、tfを使用した場合、入力文や入力例の中の助詞や助動詞に、いわば引きずられたスコアが得られやすい傾向がある。即ち、例えば、入力文に、助詞「の」が頻出している場合は、助詞「の」が頻出している入力例のスコアが高くなる傾向がある。
一般の文章検索では、出現頻度が高い単語の影響を受けるのを防止するために、ベクトルの値として、tfの代わりに、後述するidfを用いたtf×idfという尺度を使用することがある。しかしながら、日本語の文については、助詞や助動詞こそが、その文の形式を表していると考えられるので、形式的な応答文を作成する際など、文章間のマッチングにおいて、入力文および入力例における助詞や助動詞に影響を受けるのは、むしろ望ましいと考えることもできる。
そこで、応答文を作成する際などに行われるマッチングでは、tfを採用することができる。なお、ベクトルの値として、tfの代わりに、後述するdf(Document Frequency)を用いたtf×dfという尺度を使用することにより、助詞や助動詞の影響を一層強くすることができ、応答文を作成する際などのマッチングでは、このtf×dfを採用することもできる。
ここで、ある単語wについてのdfであるdf(w)は、例えば、式(2)で表される。
式(2)において、対数(log)の底は、例えば2である。また、式(2)において、C(w)は、単語wが出現している入力例の数を表し、offsetは、所定の定数である。
式(2)によれば、単語wが出現する入力例の数が多いほど、その単語wのdf(w)も大になる。
例えば、助詞「の」が出現する入力例の数が1023であるとし、つまり、C(の)が1023であるとし、offsetが1であるとする。また、ある入力例#k(または入力文)における助詞「の」の出現回数が2回、つまり、tfが2であるとする。この場合、入力例#kを表すベクトルの、単語(助詞)「の」に対応する要素の値は、tfを採用したときにはtf=2となり、tf×dfを採用したときにはtf×df(の)=2×10=20となる。
なお、ベクトルの要素の値として、tfに代えてtf×dfを採用することは、入力例と入力文との両方について行っても良いし、いずれか一方だけについて行っても良い。
また、このようなマッチングにおいて、助詞や助動詞といった文の形式を表す語句の影響を大にする方法としては、tf×dfを採用する方法の他、例えば、入力文や入力例のベクトルの要素のうち、助詞や、助動詞、その他の文の形式を表す語句に対応する要素を除く要素の値を0にする(文の形式を表す語句に対応する要素以外を無視する)方法などがある。
上述した入力文と入力例とのマッチングは、内容(形式ではなく)が合っているかという観点で、入力文と入力例との類似度を表すスコアを求める処理である。入力文と用例との内容が合っているかという観点のマッチングも、上述したベクトル空間法により行うことができる。
即ち、ベクトル空間法において、ベクトルの要素の値として、tfの代わりに、例えば、idf(Invert Document Frequency)を用いたtf×idfという尺度を採用することにより、入力文と用例との内容が合っているかという観点のマッチングを行うことができる。ここで、ある単語wについてのidfであるidf(w)は、例えば、式(3)で表される。
式(3)において、対数(log)の底は、例えば2である。また、式(3)において、pは、用例の総数を表し、C(w)は、単語wが出現している用例の数を表す。さらに、offsetは、所定の定数である。
式(3)によれば、ある用例に偏って出現する語句(単語)w、つまり、その用例の内容(話題)を表していると考えられる語句のidf(w)は大になり、多くの用例に、万遍なく現れる語句(単語)w、つまり、一般には、助詞や助動詞などのidf(w)は小になる。
例えば、助詞「は」が出現する用例の数が1024であるとし、つまり、C(は)が1024であるとし、offsetが1であるとする。さらに、用例の総数pが4096であり、ある入力文における助詞「は」の出現回数が2回、つまり、tfが2であるとする。この場合、その文章を表すベクトルの、単語(助詞)「は」に対応する要素の値は、tfを採用したときにはtf=2となり、tf×idfを採用したときにはtf×idf(は)=2×3=6となる。
なお、ベクトルの要素の値として、tfに代えてtf×idfを採用することは、用例と入力文との両方について行っても良いし、いずれか一方だけについて行っても良い。
しかしながら、文章中の単語の出現のみを考慮するベクトル空間法では、文章をベクトル表現した時、ほとんどの要素が0になり、非常に疎なベクトルとなってしまう。そのため、ベクトルの内積計算において信頼性の高い類似度を得ることが困難であるといった問題があった。この問題を解決する手法として、ベクトル空間を潜在的な空間に圧縮するというのがLatent Semantic Analysis(LSA), Probabilistic Latent Semantic Analysis(PLSA)という手法が提案されている。
LSAは、単語-文章の共起行列Aを特異値分解によって分解し、その主成分をk個とることによって近似し、空間をk次元に圧縮する。特異値分解の定式化したときの式(4)を示す。
A = UΣVT ・・・(4)
単語数をW、文章数をDとすると、AはW行D列の行列、行列Aのランクをr(rは、W、D以下の整数値)とすると、成分行列UはW行r列の左特異ベクトルを、成分行列VはD行r列の右特異ベクトルを、成分行列Σはr行r列の特異行列を、それぞれ示している。また、VTは成分行列Vの転置行列を示している。
成分行列Σは、r個の特異値が対角線上の要素として並び、他の要素は全て0の行列となる。また、成分行列Uの最初のr個の列成分(左特異ベクトル)が正規直交基底であり、左から順に重要な列成分であるので、k個(kは、rより小さい整数値)の左特異ベクトルを用いることで最良の近似ができる。
そこで、成分行列Uの先頭のk個の列成分(左特異ベクトル)からなる射影行列(以下、Ukと記述する)、即ち、W行k列の射影行列Ukとする。
次に、行列Aの各列成分のそれぞれ、即ち、各ベクトル(W次元)に対して、この射影行列Ukの転置行列を左から掛けることで、k次元に次元削減された各ベクトルのそれぞれ(各ベクトルの近似ベクトルのそれぞれ)を生成する。即ち、各ベクトルがk次元の概念空間に射影される。また、成分行列Vについても同様に、最初のk 個の右特異ベクトルを用いるとして、成分行列Vの先頭のk個の列成分(右特異ベクトル)からなる行列(以下、Vkと称する)、即ち、D行k列の行列Vkが生成される。
さらに、成分行列Σの先頭のk個の列成分のうちの1行乃至k行までの要素(成分行列Σのうちの、k×k個の要素からなる左上成分)からなる行列(以下、Σkと称する)、即ち、k行k列の行列Σkを生成する。
そして、次式(5)の右辺を演算することで、kに縮退した近似行列Akが生成される。なお、式(5)において、Vk Tは成分行列Vkの転置行列を示している。
Ak= UkΣkVk T ・・・(5)
このような潜在意味空間上でのベクトルの内積をとることによって類似度を計算し、データの過疎性の問題を回避し、さらに低頻度データによるノイズの影響を低減することにより、信頼性のより高い類似度が計算される。
このとき、共起行列に含まれない未知の文章の類似度を計算したい場合、その文章と共起する単語ベクトルが作成され、それに特異値ベクトルUを利用して潜在意味空間に変換することにより、他の文章との類似度の計算が行われる。
さらに、これを確率的に拡張したPLSAでは、次式(6)に示すように、単語wと文章dの共起を潜在変数zを用いて分解して考える。
d={p(w1|d),p(w2|d),・・・,p(wM|d)} ・・・(6)
式(6)において、Mは語彙数を示す。
そしてp(z),p(w|z),p(d|z)というパラメータを、図2に示す、式(7)乃至式(11)によるEM(期待値最大化)アルゴリズムを利用して最適化する。
そして文章をベクトル表現するための方法として、次式(12)のように文章における各単語の生起確率p(w|d)で表現する方法も提案されている。
また、次式(13)のように潜在空間上での単語の生起確率に基づいて表現する方法も提案されている。
またこのとき未知の文章を対象にする場合には、EMアルゴリズムを用いて、p(z|w)を固定して、未知文章に対するp(z|d)の値を最適化している。このような技術に関しては、例えば、非特許文献1,2に開示されている。
Thomas Hofmann, 捻robabilistic Latent Semantic Indexing Proc. of the 15th Conference on Uncertainty in AI
持橋大地,松本祐治、 "意味の確率的表現"、情報処理学会研究報告2002-NL-147
以下に、本発明の実施の形態について図面を参照して説明する。
図3は、本発明を適用した対話処理装置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と総称する。
図4は、図3の対話制御部12の詳細な構成例を示すブロック図である。
文章情報取得部31は、ユーザにより入力された文章情報(例えば、テキストデータ入力部11から供給されたテキストデータ)を取得し、類似度計算部32に供給する。
類似度計算部32は、文章情報取得部31から供給される文章情報を、例えば、単語単位に分解し、そこから助詞を削除することなどにより、自立語のみでなる単語列に変換する。そして、類似度計算部32は、確率値記憶部34に記憶されている確率値(詳細は後述する)を用い、その単語列(以下、適宜、入力単語列という)と、用例データベース33に記憶されている用例それぞれとの類似度を示す類似度を計算し、そのうち、入力単語列との類似度が最も高いことを示す類似度を、ユーザの入力文と自分自身が処理する対話処理の話題との類似度として、対話処理選択部13に供給する。そして、類似度計算部32は、対話処理選択部13から、対話処理の継続を指令する制御信号を受けたとき、類似度の計算結果を最適用例選択部35に供給する。
用例データベース33には、複数の用例が記憶(登録)されている。この用例は、対話処理の対象分野に応じて作成された少なくとも1文の文章と、その文章をフレームで表現したスロットの組とで構成されている。確率値記憶部34には、類似度計算部32が入力単語列と用例データベース33に記憶されている用例それぞれとの類似度を計算するために用いられる確率値が記憶されている。
最適用例選択部35は、類似度計算部32から供給された類似度を基に、類似度が最も高い用例を用例データベース33から選択して(以下、選択された用例を最適用例と称する)、最適用例と入力単語列とを、フレーム表現変換部36に出力する。
フレーム表現変換部36は、選択された最適用例に対応するスロットの組のそれぞれの値を、入力単語列を構成する単語にそれぞれ置き換え、その結果得られるスロットの組を、対話処理部37に出力する。
マスタフレーム保持部38は、対話処理部37が実行する動作を決定するためのマスタフレームを保持する。マスタフレーム保持部38に保持されるマスタフレームは、対話制御部12が、いかなる分野の対話に関する処理を行うかによって異なる。
対話処理部37は、フレーム表現変換部36から供給されたスロットの組を基に、マスタフレーム保持部38に保持されているマスタフレームを更新し、更新されたマスタフレームの状態に基づいて、次に対話処理としてどのような動作を行うかを決定する。すなわち、対話処理部37は、更新されたマスタフレームを基に、対話処理において、データベース14、または、外部のデータベースにアクセスして、ユーザの質問に対する回答を示す「ターゲット」として指定されているスロットに関する情報を取得したり、所定の外部機器に対する制御信号を生成して出力したり、所定のテンプレートを用いて、検索条件を絞り込むための質問や、データベースにアクセスして取得された情報をユーザに通知するためにテキストまたは音声を出力するという動作のうちのいずれの動作を行うべきかを選択し、検索処理部39、制御信号生成部40、または、出力文生成部41を制御して、それぞれに処理を実行させる。さらに、対話処理部37は、検索処理部39から供給された検索結果を基に、さらに、マスタフレームを更新し、更新されたマスタフレームの状態に基づいて、次に対話処理としてどのような動作を行うかを決定する。
検索処理部39は、対話処理部37の制御に基づいて、データベース14、または、外部のデータベースにアクセスして、スロットに記載されている値を検索キーとして、ターゲットとして指定されているスロットに関する情報を取得し、対話処理部37に供給する。
制御信号生成部40は、対話処理部37の制御に基づいて、例えば、ネットワークを介して接続された表示装置やスピーカ、ネットワーク対応のテレビジョン受像機、ビデオデッキ、または、ホームサーバなどの外部の装置に対する制御信号を生成し、ネットワークインターフェース16を介して出力する。
出力文生成部41は、対話処理部37の制御に基づいて、内部のテンプレートを参照して、検索条件を絞り込むための質問や、データベースにアクセスして取得された情報をユーザに通知するための出力文を生成し、生成した出力文を出力制御部15に供給し、テキストデータとして表示、または、音声出力させる。
このように、対話処理装置1において実行される対話処理においては、対話制御部12−1乃至12−nにおいて、用例がフレーム形式の表現と対応付けられて予め記憶されており、ユーザが入力した文章とそれぞれの用例との類似度が算出されて、そのうち最も類似度が高いことを示す類似度が、ユーザの入力文と自分自身が処理可能な話題との類似度として、対話処理選択部13に出力されるようになされている。そして、対話処理選択部13から、対話処理の継続を指令された場合、類似度を基に、ユーザが入力した文章との類似度が高い用例が選択されて、そのスロットの値が入力単語列を構成する単語に置き換えられる。すなわち、入力単語列が、フレーム形式の表現に対応付けられて、フレーム形式の表現を基に、対話処理が実行されるようになされている。また、対話処理を実行する対話制御部の選択は、対話制御部12−1乃至12−nが実行する対話処理において必要となる、入力単語列と用例との類似度に基づいて行われる。
このような構成の対話処理装置1において処理可能な対話処理の話題を、追加、変更、または、削除する場合、対話処理選択部13の機能を変更することなく、新たな話題の対話処理を実行することが可能な対話制御部12を新たに追加したり、対話制御部12−1乃至12−nのうちのいずれかを変更または削除するようにすれば良い。すなわち、対話処理装置1は、従来における複数の話題の対話処理が可能な対話処理装置と比較して、メンテナンスが非常に簡単である。
また、対話制御部12−1乃至12−nのそれぞれにおいては、用例がフレーム形式の表現と対応付けられているため、類似度の計算や、データベースにアクセスして情報を取得する場合の検索処理において、検索キーとなる単語を抽出するために、入力された文章から再度単語を抽出するなどの処理を行ったり、単語の意味解析を実行する必要がない。さらに、本実施の形態における対話処理においては、ユーザが入力した文章が、フレーム形式の表現に対応付けられるので、出力文の生成においても、テンプレートに当てはめる単語の決定が簡単である。すなわち、用例を利用する対話処理にフレーム形式を用いることにより、対話処理の動作を簡便化することが可能となる。
図5は、類似度計算部32と確率値記憶部34の詳細な構成例を示す図である。図5に示した類似度計算部32は、入力部51、文脈情報取得部52、文脈表現生成部53、距離計算部54、および、出力部55を備える。確率値記憶部34は、単語分布表現保持部61を備えている。なお、単語分布表現保持部61が記憶しているデータのうち、用例データベース33(図4)など他のデータベースが保持するデータと共用できるデータに関しては、共用するような構成とすることも可能である。
入力部51は、確率値取得に必要となる単語群の情報を取得する。入力部51は、文章情報取得部31(図4)から単語に関する情報が供給され、その供給された情報を、文脈情報取得部52に供給する。文脈情報取得部52は、供給された情報から文脈情報を構成する情報を抽出する。
文脈表現生成部53は、文脈情報取得部52で抽出された情報に含まれている個々の単語に関する確率分布表現(詳細は後述する)を単語分布表現保持部61より取得し、それを重ね合わせて文脈の確率分布表現を生成し、その生成した確率分布表現を、距離計算部54に供給する。
文脈表現生成部53が、このような処理を実行する上で必要となる情報を保持している単語分布表現保持部61は、予めPLSA(Probabilistic Latent Semantic Analysis)法などによって求められた、個々の単語に関する確率分布表現のパラメータ(例えば、図7のテーブル64)を保持している。
距離計算部54は、用例データベース33に用例として保持されている文章を、上記文脈情報と同様に確率分布表現したものと、文脈表現生成部53で生成された文脈情報の確率分布表現との間の距離を計算する。出力部55は、距離計算部54から供給された各用例との距離を、後段の対話処理選択部13(図3)や最適用例選択部35(図4)に出力する。
次に、確率値記憶部34が保持しているデータ(テーブル)について説明を加える。まず、単語分布表現保持部61が保持するデータについて説明する。上記したように、単語分布表現保持部61は、PLSA法などによって求められた、個々の単語に関する確率分布表現のパラメータを保持しているが、そのパラメータとは、例えば、図6に示すようなものである。
図6には、単語w1,w2,w3,w4に関するパラメータを、それぞれグラフ化したものを示している。図6に示した各グラフは、縦軸にp(z|w)の値をとり、横軸に意味クラスをとったものとされている。また、図6に示した各グラフは、クラス数をz=10に設定したときのものとされている。なお、意味クラスとは、特定のジャンルなど、人が識別できるようなクラスを示すものではなく、単語や文脈などを特徴付けるために設定されたものである。
p(z|w)は、単語wが生起するという条件のもとで、クラスzが生起する条件付き確率の値を示す。p(z|w)は、次式(14)により算出される。
式(14)からp(z|w)は、p(w|z)とp(z)から算出されることがわかる。p(w|z)とp(z)は、図2に示したEMアルゴリズムのうち、M−stepにおける式(8)と式(10)により、それぞれ算出される。すなわち、p(w|z)とp(z)から単語の意味クラスへの帰属確率分布p(z|w)を求めることができる。この意味クラスへの帰属確率分布を求めることにより、単語wのもつ意味の概要を表現することができる。
図6を参照するに、単語w1と単語w2は、共通の意味クラスz2とz9に対して高い帰属確率が与えられているなど分布の形状が類似しており、意味的に共通点がある。これに対し、単語w3は、単語w1や単語w2と共通の意味クラスで高い帰属確率が与えられるようなことがなく、分布の形状が異なり、意味的な共通点が少ない。
また、単語w4のグラフを参照するに、意味クラス毎の帰属確率値は、一様な値であり、特に高い確率値を有する意味クラスは存在していない。このようなグラフは、機能語、例えば、“〜する”といった語であり、特定の意味を表現しない(1または複数のクラスの確率値で特徴を表すことができず、確率値の分布に基づいて分類することができない語である)ことを示している。
このように、単語wの意味確率分布p(z|w)は、意味的に特徴のある単語に対しては確率値が意味クラスにより偏るが(分布自体に特徴が表れるが)、機能語のような意味的には特徴をあまり有さないような単語に対しては、確率値は意味クラスにより偏るようなことがないといった特徴を有する。
このような特徴を、単語wの意味確率分布p(z|w)は有するため、図6に示した例では、意味クラスの数を10に設定した場合を示したが、意味クラスの数を10以上に設定し、より詳細に解析すれば、単語の特徴をより明確に表すことができると考えられる。
単語分布表現保持部61には、図6に示したような、単語毎に意味クラスと確率値が関連付けられたデータ(例えば、図6に示したグラフが、テーブル化されたデータ)が保持されている。
図6に示したグラフをテーブル化して記憶させるようにした場合、例えば、そのテーブルは、図7に示したような項目から構成されるデータとされる。すなわち、図7に示したテーブル64は、横に意味クラス、縦に単語をとり、交わる部分に、その単語のその意味クラスでの確率値が記載されている。例えば、単語w1の意味クラスz1における確率値は、P(z1|w1)である。
ここでは、このようなテーブル64が、単語分布表現保持部62に保持されるとして、以下の説明を続ける。
文脈の確率分布表現とは、文脈(複数の単語が含まれる文)を構成する個々の単語の生起が独立であると仮定して、それぞれの単語の確率分布の積で近似したものである。
このことについて、図8を参照して説明する。図8の上側には、単語w1と単語w2の意味クラス毎の確率分布をグラフ化したもの(単語w1と単語w2の、それぞれの確率分布表現)を示している。この単語w1と単語w2を重ね合わせたものを文脈の確率分布表現とする。図8の下側に、文脈(w1,w2)の確率分布表現のグラフを示す。文脈(w1,w2)との表記は、単語w1と単語w2を含む文脈の確率分布表現を示すとする。また、その所定の意味クラスzにおける確率値は、p(z|w1,w2)と表記する。
この文脈(w1,w2)は、図6を参照して説明した単語に関する確率分布表現と同様の特徴を有する。すなわち、単語w1と単語w2を含む文脈の特徴を、意味クラス毎の確率値の分布により表すことができる。このことを例えて言うならば、1文を聞いたときに、その文の全体を聞き取れなくても、その文に含まれる複数の単語を聞き取れれば、文全体を推測することができるときがある。このように、文に含まれている単語w1と単語w2がわかることにより、文全体を推測することができると考えられる。
また、文脈の確率分布表現を用いることにより、文と文、文章と文章の類似度(どれだけ似ている文同士であるか、文章同士であるか)を測定することができる。このことを利用し、ここでは、入力された文と用例データベース33に記憶されている用例との類似度を計算するといったような処理が行われる。
この文脈における確率分布表現のグラフ(データ)の作成について説明を加える。単語を複数の意味クラスに含まれる確率の分布で表現する方法については、上述したように、PLSAモデルを利用することができる。PLSAモデルでは、文章とそれに出現する単語の関係を次式(15)のように定式化して、EMアルゴリズムでp(z),p(w|z),p(d|z)の値が推定される。
さらに、p(z|w)はベイズ則より次式(16)のように求めることができる。
このようにして求められた単語に関する確率分布表現を重畳する場合、すなわち、図8を参照したように、複数の単語の確率分布表現を重ね合わせることにより、文脈に関する確率分布表現を作成する場合、式(16)で求められる各単語の意味クラスに基づく確率分布表現から、複数の単語より構成される文や文章の意味クラスに基づく確率分布表現が求められる。
w1,w2,・・,wnのn個の単語で構成される文または文章をhとすると、この意味クラスに基づく分布表現は次式(17)で表される。
式(17)に示したように、意味クラスに基づく分布表現は、意味クラスzにおける生起確率p(z|w)を、単語毎に乗算していくことにより求められる。ここでは、式(17)に基づき、乗算することにより分布表現が求められるとして説明を続けるが、加算など、他の計算が行われることにより求められるようにしても良いし、加算と乗算など、複数の計算が行われることにより求められるようにしても良い。
ここでw1,w2,・・,wnは全て独立に生起するものと仮定して、それらが全て生起した時に意味クラスの分布がどのようになるかという近似を用いている。ここでβは、全てのクラスにわたる確率値の合計が1になるようにするための正規化係数である。またα(wi)は、個々の単語毎に決められる重み係数である。
重みα(wi)の設定の仕方について説明する。重み付けは、単語に関する確率分布表現を重畳するときに、重畳される個々の単語毎に重みα(w)を設定することが可能である。
その重み付けの値としては、まず、言語的な知識を利用して重み付けを行うようにすることが考えられる。例えば意味的に重要な要素となる内容語(名詞、動詞など)の単語に関しては、重みを重くし、逆に機能語(助詞、助動詞など)は重みを軽くするといったように重み付けを行っても良い。
また、ベクトル空間法で用いられているidfの尺度を利用するようにしても良い。例えば、あらゆる文章に出現する単語の重みは軽く、文章の出現に偏りのある単語は重みを重くするといったように重み付けを行っても良い。
さらに、単語を確率分布で表現しているので、その分布自身を基に重みα(wi)を設定するようにしても良い。上記したように、確率分布が一様でない(偏っている)場合、そのような確率分布を有する単語は、意味的に特徴があると考えられるので、そのような単語は、意味的に重要であるとし、重みを重くするようにしても良い。例えば、分布が偏っているほど意味的に重要であるとして、エントロピーを利用したり、分布の集中の尺度として用いられるGiniの集中度係数などを用いるようにしたりしても良い。
次式(18)は、エントロピーに基づく重み付けを行うときの式であり、次式(19)は、Giniの集中度係数に基づく重み付けを行うときの式である。
重み付けの仕方として、さらに文脈として古いものほど重みを小さくするといった規則を設けて重み付けを行うようにしても良い。例えば、文脈中の所定の単語がm文前に含まれていた場合、その重みに1/mを乗算することによって、mが大きくなるほど、すなわち現在位置から遠い単語ほど、重ね合わせ時の重みを小さくするようにしても良い。
重み付けは、1つの方法に依存するのではなく、上述した方法を組み合わせた方法を適用して重み付けが行われるようにしても、勿論良い。
また、ここでは、式(17)に基づき、文脈に関する確率分布表現p(z|h)が算出されるとして説明を続けるが、このような個々の単語の確率分布表現を重畳する他に、例えば、PLSAの原著に記載のあるEMアルゴリズムによる方法を適用して確率分布表現p(z|h)が算出されるようにしても良い。どちらの方法を用いても、後段の処理は同一のものとすることができる。
このようなテーブルを用い、類似度計算部32は、入力された文と用例との類似度を算出する。
次に、複数の対話制御部12において利用される、用例とフレーム表現について説明する。まず、図9乃至図14を用いて、対話制御部12−1が天気予報に関する対話処理を行うものとし、その場合における用例とフレーム表現について説明する。
図9に、天気予報を対象とする対話処理を行う場合に対話制御部12−1で利用されるフレーム表現の例を示す。フレームは、1つ以上のスロットによって構成されており、個々のスロットは、そのスロットの名称であるスロット名と、スロット名に対応する値を保持するようになされている。図9に示される、天気予報を対象とする場合に利用されるフレームは、スロット名として、「日付」、「場所」、「天候」、「最高気温」、「最低気温」、および、「降水確率」を有するスロットで構成されたフレームである。このようなフレームは、マスタフレーム保持部38に、マスタフレームとして保持され、対話処理部37の処理により値が更新される。マスタフレームの更新については、図12を用いて後述する。
図9を用いて説明したフレーム表現がマスタフレームとして用いられる場合、用例データベース33には、例えば、図10に示されるような用例が保存される。
用例データベース33に保存されている用例は、1つ以上の文章と、それらの文章が表す意味内容を表現した1つのスロットの組とで構成されている。例えば、「東京の明日の天気を教えて」という文章と、「東京の明日の予報は」という文章とは、スロット名「日付」「場所」の項目が、それぞれ、「明日」「東京」という値で規定され、スロット名「天候」が、ユーザが求める情報であるターゲット(Target)とされる3つのスロットにより構成されるスロットの組とで1つの用例を構成する。また、「東京の明日の気温は」という文章と、「明日の東京は暖かいですか」という文章とは、スロット名「日付」「場所」の項目が、それぞれ、「明日」「東京」という値で規定され、スロット名「最高気温」および「最低気温」が、ユーザが求める情報であるターゲットとされる4つのスロットにより構成されるスロットの組とで1つの用例を構成する。さらに、「東京の明日の降水確率は」、「明日、東京は雨が降りますか」、「明日の降水確率は」、および、「明日は雨が降りますか」は、スロット名「日付」が「明日」という値で規定され、スロット名「場所」が「東京」という値で規定され、スロット名「降水確率」が、ユーザが求める情報であるターゲットとされる3つのスロットにより構成されるスロットの組とで1つの用例を構成する。そして、例えば、対話処理中に、ユーザに対してシステムが質問した場合の答えなどで用いられる、「明日です」という文章は、スロット名「日付」が「明日」という値とされているスロットとで、1つの用例を構成する。
このように、用例は、1つ以上の文章と、それらの文章が表す意味内容を表現した1つのスロットの組とが、対となって記述されている。すなわち、1つの用例に、複数の文章が保持される場合は、それらの複数の文章が表す意味内容を、同一のスロットの組で表現することができるようになされている。さらに、ユーザが入力した文章が、フレーム形式の表現に対応付けられるので、上述したように、類似度の計算や、データベースにアクセスして情報を取得する場合の検索処理、または、出力文の生成処理などに都合がよい。
さらに、図10において、「東京の明日の降水確率は」という文章、「明日、東京は雨が降りますか」という文章、「明日の降水確率は」という文章、および、「明日は雨が降りますか」という文章が、対応するスロットの組とによって構成されている用例は、スロット名「場所」に対応する情報である「東京」が含まれている文章と含まれていない文章とが、同一のスロットの組に対応付けられている。例えば、入力文が、「今日は雨ですか」であったとき、入力文に、「場所」に対応するものがないので、スロット名「場所」に対応する値は、空白となる(すなわち、後述する処理により、マスタフレームに反映されない)。このように、対応するスロット数が異なる文章を、同一の用例に含めるようにすることにより、登録される用例の数をさらに抑制することができるので、効率的に用例データベースを構築することが可能となる。
また、用例として保持されている文章は、類似度計算を行うために、例えば、形態素解析などによって、事前に単語ごとに分割された、例えば、「明日、東京、雨」などの形で保持するようにしてもよい。
類似度計算部32は、入力単語列と、図10に示される用例との類似度を算出する。そして、類似度の計算結果のうち、最も類似度が高いことを示す類似度を対話処理選択部13に供給する。
そして、類似度計算部32は、対話処理選択部13から対話処理を行う対話制御部として選択されたことを示す制御信号の供給を受けたとき、入力単語列とそれぞれの用例との類似度の計算結果を最適用例選択部35に出力する。
最適用例選択部35では、類似度が最も高い用例が選択され、選択された用例、すなわち最適用例とともに、入力単語列がフレーム表現変換部36に供給される。例えば、入力された文章が、「横浜の今日の天気は」であるとき、用例「明日の東京の天気を教えて」が最適用例となり、(横浜、東京)(今日、明日)(天気、天気)の3つの単語のペアが求まる。したがって、最適用例選択部35は、用例「明日の東京の天気を教えて」と入力単語列(「横浜」、「今日」、「天気」)とをフレーム表現変換部36に出力する。
そして、フレーム表現変換部36は、最適用例を構成するスロットの組の単語のうち、入力単語列を構成する単語に対応するものを、それぞれ置き換えて、入力文に対応するフレーム形式を得て、そのフレーム形式を示す情報(スロットの組)を対話処理部37に出力する。
すなわち、フレーム表現変換部36では、図11に示されるように、選択された最適用例「明日の東京の天気を教えて」に対応するスロットの組のそれぞれの値を、入力単語列(「横浜」、「今日」、「天気」)を構成する単語にそれぞれ置き換え、その結果得られる、スロット名「日付」に対して値「今日」が記載され、スロット名「場所」に対して値「横浜」が記載され、スロット名「天候」に対して値「Target」が記載されているスロットの組を対話処理部37に出力する。
このとき、入力文が、例えば、「横浜の天気は」であった場合は、スロット名「日付」に対応する単語のペアが得られないので、「日付」に対応する値を空にしたものが、入力文に対応するフレーム形式として得られて、対応するスロットの組が対話処理部37に供給される。
そして、対話処理部37は、フレーム表現変換部36の処理により生成された、入力文に対応するフレーム形式の情報の供給を受け、図9を用いて説明した、マスタフレーム保持部38に保持されているマスタフレームを、図12に示されるように更新する。すなわち、対話処理部37は、入力文に対応するフレーム形式で記入されているスロット名の値を、マスタフレーム内の同一の名称のスロット名の値として設定するので、具体的には、入力された文章が、「横浜の今日の天気は」であるとき、図9を用いて説明したマスタフレームにおいて、スロット名「日付」に対して値「今日」が記載され、スロット名「場所」に対して値「横浜」が記載され、スロット名「天候」に対して値「Target」が記載されて、マスタフレームが更新される。また、入力された文章が、「横浜の天気は」であるとき、図9を用いて説明したマスタフレームにおいて、スロット名「場所」に対して値「横浜」が記載され、スロット名「天候」に対して値「Target」が記載されて、マスタフレームが更新される。
次に、対話処理部37は、マスタフレームの状態に基づいて、次に対話処理としてどのような動作を行うかを決定する。例えば、入力された文章が、図11および図12を用いて説明した、「横浜の今日の天気は」である場合、対話処理部37は、検索処理部39を制御して、天気予報に関する情報を提供するデータベース(内部のデータベース14であっても、外部のデータベースであってもよい)にアクセスさせて、「今日」および「横浜」を検索キーとして、「天気」、すなわち、ターゲットに関する情報を取得させる。このように、データベースの検索が選択された場合、検索処理部39は、対話処理部37の処理により更新されたマスタフレームなどの情報から適切な検索式を作成し、所定のデータベースにアクセスして所望の情報を取得し、対話処理部37に供給する。
そして、対話処理部37は、マスタフレームのターゲットに対応する部分に、取得された情報を記載するとともに、出力文生成部41を制御して、図13に示されるようなテンプレートを基に、データベースにアクセスして取得された明日の横浜の天気に関する情報をユーザに通知するという動作を選択する。
具体的には、出力文生成部41は、図13に示されるようなテンプレートを用いて、ユーザに対する出力文を生成する。図13に示されるテンプレートにおいては、ターゲットとして指定されていたスロット名と、それに対する回答となる出力文のテンプレートが用意されている。このテンプレート中の$(場所)、$(日付)などの記載は、フレーム形式中の値に置き換えて利用することを示す。具体的には、入力された文章が、図11および図12を用いて説明した、「横浜の今日の天気は」であり、検索処理部39による検索処理の結果、「天候」は「雨」であると検索された場合、対話処理部37の処理によりマスタフレームが更新されるので、テンプレート中の$(場所)、は「横浜」に置き換えられ、$(日付)は、「今日」に置き換えられ、ターゲットである$(天候)は「雨」に置き換えられるので、出力文「今日の横浜の天気は雨です」が生成される。
一方、入力された文章が、「横浜の天気は」である場合など、マスタフレームの日付スロットがまだ設定されていないような状態や、入力された文章が、「明日の降水確率は」である場合など、マスタフレームの場所スロットがまだ設定されていない状態では、話者であるユーザが、いつの天気を知りたいのか、どこの降水確率を知りたいのかがわからないので、対話処理部37は、出力文生成部41を制御して、足りないスロットの値をユーザに質問する文を出力することも可能である。
すなわち、対話処理部37は、マスタフレームに記載されている情報が、検索処理を実行するために必要な情報に満たない場合、出力文生成部41を制御して、図14に示されるようなテンプレートを基に、条件を絞り込むために必要な情報など、ユーザに入力を促すためのメッセージを通知させるという動作を選択する。
具体的には、出力文生成部41は、図14に示されるようなテンプレートを用いて、ユーザに対する出力文を生成する。図14に示されるテンプレートにおいては、値の入力が必要な、すなわち、ユーザに対して情報の入力を促したいスロット名と、それに対応する質問文が用意されている。具体的には、入力された文章が、「横浜の天気は」である場合、マスタフレームのスロット「日付」に対応する値が未入力となるので、出力文生成部41は、図14に示されるテンプレートから、値の入力が必要なスロット名「日付」に対応する出力文「いつの情報を知りたいですか?」を抽出して出力する。
これに対して、ユーザは、例えば、「明日です」や「横浜」などの情報を入力するので、対話処理部37は、供給された情報をマスタフレームの空きスロットに記載してマスタフレームを更新し、更新されたマスタフレームを基に、例えば、データベースの検索など、次の動作を選択する。
また、例えば、明日の天気に基づいて、所定のランプを点灯させるようになされている場合や、対話処理の結果、他の装置を制御する場合など、対話処理部37は、制御信号生成部40を制御し、外部装置の処理を制御することが可能である。対話処理部37により、外部装置の制御が選択された場合、制御信号生成部40は、対話処理の結果に基づいて、外部機器を制御するための制御信号を生成し、ネットワークインターフェース16に出力する。ネットワークインターフェース16は、ネットワークを介して、制御先の機器に、制御信号を送信し、必要に応じて、その応答を受信する。
このようにして、対話制御部12−1乃至対話制御部12−nは、それぞれ異なる話題に対応することが可能なようになされている。そして、ユーザにより入力された文と、対話制御部12−1乃至対話制御部12−nのそれぞれが内部に保有している用例との類似度が算出される。入力された文と用例との類似度は、すなわち、ユーザにより入力された文と、対話制御部12−1乃至対話制御部12−nのそれぞれが対応可能な話題との類似度と等しいのであるから、類似度の算出結果を得た対話処理制御部13は、その算出結果を基に、対話処理を行うのは、いずれの対話制御部であるかを選択することができる。
そして、対話処理装置1において対応可能な話題の追加、削除、変更などは、対話処理選択部13の機能を変更することなく、対話制御部12−1乃至対話制御部12−nの追加、削除、変さらによって容易に行うことが可能である。
次に、図15のフローチャートを参照して、図3の対話処理装置1が実行する対話処理について説明する。
ステップS1において、テキストデータ入力部11は、ユーザからテキストデータの入力を受けたか否かを判断する。ステップS1において、テキストデータの入力を受けていないと判断された場合、テキストデータの入力を受けたと判断されるまで、ステップS1の処理が繰り返される。
ステップS1において、テキストデータの入力を受けたと判断された場合、ステップS2において、テキストデータ入力部11は、入力されたテキストデータを対話制御部12−1乃至対話制御部12−nのそれぞれに供給するので、対話制御部12−1乃至対話制御部12−nのそれぞれにおいて、図16を用いて後述する、類似度算出処理が実行される。
ステップ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のうちのいずれかにおいて、図17を用いて後述する対話応答処理が実行されて、処理が終了される。
次に、図16のフローチャートを参照して、図15のステップS2において実行される類似度算出処理について説明する。前提として、単語分布表現保持部61には、図7に示したようなテーブル64が保持されているとする。
ステップS21において、入力部51に検索対象とされるテキストデータが入力される。入力されたテキストデータは、形態素解析などの処理により、単語単位に分解されている。単語は、文脈情報取得部52に供給される。
ステップS22において、文脈情報取得部52は、入力部51から、順次入力される文章(単語群)の中から、文脈として処理する複数の単語を抽出し、文脈表現生成部53に出力する。
文脈表現生成部53は、ステップS23において、供給された単語に関する単語分布表現を、単語分布表現保持部61から読み出す。単語分布表現保持部61には、図7に示したようなテーブル64が保持されているが、例えば、文脈表現生成部53に供給された単語が“単語w1”である場合、テーブル64から“単語w1”に関連付けられている各クラスの確率値(単語分布表現:単語に関する確率分布表現)が読み出される。
文脈表現生成部53に供給された単語が、2単語であった場合、その2つの単語の単語分布表現が読み出される。そして、読み出された単語分布表現が用いられ、文脈表現が生成される。すなわち、読み出された単語分布表現が、式(17)に基づく乗算により、文脈(複数の単語を含む文章)の確率分布表現が算出される。
距離計算部54は、ステップS24において、次式(20)に基づき、文脈と用例の文章間(処理対象とされている文脈と、用例データベース33にある各用例の文章)の距離を計算し、出力部55に供給する。
出力部55は、供給された距離を、類似度Sとして後段の処理部に出力する。
このようにして、入力されたテキストデータ(文)と用例との類似度Sが算出される。
次に、図17のフローチャートを参照して、対話処理の継続を指令された対話制御部12が、図15のステップS5において実行する対話応答処理について説明する。
ステップS41において、対話制御部12の対話処理部37は、マスタフレーム保持部38に保持されているマスタフレームの値の記述を、必要に応じてリセットする。具体的には、対話処理部37は、例えば、前回の対話処理において、ユーザに対する質問文を出力している場合などは、マスタフレームの値の記述をリセットしないが、前回の対話処理において、外部の機器を制御している場合などは、マスタフレームの値の記述をリセットする。
ステップS42において、最適用例選択部35は、図15のステップS2において計算された類似度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は、例えば、入力された文章が、「VTRに録画して」である場合、制御信号生成部40を制御し、現在のメインフレームに記載されている情報を参照して、所定の外部装置を制御するための制御信号を生成させて出力させる。
ステップS48において、制御信号の出力が必要であると判断された場合、ステップS49において、対話処理部37は、制御信号生成部40を制御し、ネットワークインターフェース16によって接続されている所定の外部装置の処理を制御させる。対話処理部37により制御されている制御信号生成部40は、これまでの対話処理の結果に基づいて、外部機器を制御するための制御信号を生成し、ネットワークインターフェース16に出力する。ネットワークインターフェース16は、ネットワークを介して、制御先の機器に、制御信号を送信する。
ステップS50において、ネットワークインターフェース16は、制御信号出力先からの応答を受信して、対話制御部12の制御信号生成部40に出力する。制御信号生成部40は、制御信号出力先からの応答を対話処理部37に供給し、処理は、ステップS5に戻り、処理が終了される。
ステップS48において、制御信号の出力が必要ではないと判断された場合、具体的には、例えば、ステップS46およびステップS47の処理により得られた検索処理結果を、図13または図14を用いて説明したテンプレートを利用して、ユーザに対して通知する必要がある場合、マスタフレームに記載されている情報が検索処理を実行するために必要な情報に満たないため、例えば、図14または図15を用いて説明したテンプレートを利用してユーザに対する質問を出力する必要がある場合など、ユーザに対して情報を提供するために出力文を生成し、ユーザに対して出力する必要がある場合、ステップS51において、対話処理部37は、出力文生成部41を制御して、ユーザへの出力文を生成させる。出力文生成部41は、対話処理部37の制御に基づいて、図13、図14に示されるようなテンプレートを基に、ユーザへの出力文を生成し、出力制御部15に出力する。
ステップS52において、出力制御部15は、テキストや画像情報を表示可能な表示部および表示部を制御する表示制御部、または、音声を出力するスピーカと、スピーカから出力される音声データを処理する音声処理部の処理により、ユーザへの出力文をテキストもしくは画像として表示出力したり、または、音声出力し、処理はステップS5に戻り、処理が終了される。
このような処理により、ユーザにより入力されたテキストと対話制御部12−1乃至対話制御部12−nのそれぞれが実行する対話処理の話題との類似度が算出されて、類似度の算出結果を基に、ユーザにより入力されたテキストに最も適した対話制御部が、対話制御部12−1乃至対話制御部12−nのうちから選択され、対話制御部の選択に用いられた類似度を基に、最適用例が選択され、マスタフレームのスロットの値が更新されて、更新されたマスタフレームを基に対話処理が実行される。このことにより、ユーザは、例えば、複数の候補文を選択することなく、自然言語による質問と回答の応酬によって、所望の情報を得たり、ネットワーク機器に対して所望の操作指令を行うことができる。
そして、対話処理装置1において対応可能な話題の追加、削除、変更などは、対話制御部12−1乃至対話制御部12−nの追加、削除、変さらによって容易に行うことが可能である。
以上の説明においては、対話処理に用いられるユーザからの入力文は、テキストデータとして入力されるものとして説明したが、例えば、ユーザが発話した音声データを解析し、音声処理により、テキストデータを取得して、取得されたテキストデータをユーザからの入力文として取り扱うことができるようにしてもよい。さらに、過去の対話処理に関する情報である対話履歴やユーザプロファイルを保存し、これらを基に、類似度を補正し、補正された類似度に基づいて、対話制御部の選択や、対話応答処理を行うことができるようにしてもよい。
上記したように、単語を潜在クラスに基づく確率分布で表現し、文や文書など複数の単語から構成される言語単位を、それを構成する個々の単語の確率分布表現を重畳することによって表現し、確率分布間の距離尺度を規定することによって、文書検索や用例ベースの言語処理など、言語単位間の類似尺度を利用した自然言語処理に利用することが可能となる。
また、構成する単語が少ない文や短い文書などの類似性を判定するには、従来のベクトル空間法に比べてより安定した尺度を得ることが可能で、効果的である。
上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
図18は、上述した一連の処理をソフトウェアにより実現する場合のパーソナルコンピュータ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と情報を授受することができるようになされている。
プログラムが記録されている記録媒体は、図18に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク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 出力文生成部, 51 入力部, 52 文脈情報取得部, 53 文脈表現生成部, 54 距離計算部, 55 出力部, 61 単語分布表現保持部