(58)【調査した分野】(Int.Cl.,DB名)
複数の感情述語のそれぞれについて,複数段階の感情レベルのいずれのレベルに属するかが記憶されるとともに,複数段階の感情レベルごとに,感情レベルに応じた一または複数の感情関連語が記憶された感情グラデーション・データベースと協働して動作するコンピュータを制御するプログラムであって,
入力文の入力を受け付ける受付処理,
受け付けた入力文に含まれる述語が上記感情グラデーション・データベースに感情述語として記憶されている場合に,その感情述語の感情レベルに応じた一または複数の感情関連語を選択する第1の選択処理,
上記入力文を文節ごとに分割する分割処理,
上記分割処理によって分割された文節のそれぞれと上記第1の選択処理によって選択された感情関連語の組合せからなる第1の返答文を作成する第1の返答文作成処理,
上記入力文から少なくとも修飾語を取り除き,上記入力文に含まれる主語,述語および目的語から構成される最小の文章部分を作成する最小文章部分作成処理,
上記最小文章部分作成処理によって作成された最小文章部分と上記第1の選択処理によって選択された感情関連語の組合せからなる第2の返答文を作成する第2の返答文作成処理,ならびに
上記第1および第2の返答文作成処理によって作成された複数の第1,第2の返答文の中から一つの返答文をランダムに選択する第2の選択処理,
をコンピュータに実行させるプログラム。
【実施例】
【0015】
図1は対話システムの電気的構成を示すブロック図である。対話システム1は,様々な設備,システム,装置,たとえば人型ロボット,動物型ロボット,スマートフォン,テレビなどに組み込んで使用することができる。
【0016】
対話システム1は,構文構造解析部11,相槌作成部12,感情分析部13,返答文作成部14および返答文提示部15を備えている。マイクロフォン2,スピーカ3,ハードディスク16などの外部装置が,対話システム1に接続される。
【0017】
対話システム1のユーザが対話システムにあたかも話しかけるように発話すると,これに応答して対話システム1は自動的に音声によって返答をする。ユーザによる発話と対話システム1による返答とは繰り返される。ユーザによる発話の入力にマイクロフォン2が,対話システム1による返答の出力にスピーカ3がそれぞれ用いられる。マイクロフォン2に代えて発話内容をキーボードから文字入力してもよい。また対話システム1の返答についても,スピーカ3からの音声出力に代えて表示装置の表示画面への文字表示であってもよい。
【0018】
マイクロフォン2に入力した音声は構文構造解析部11に与えられる。構文構造解析部11は,入力音声を表すデータを文字列データ(入力文)に変換し(音声認識処理),この入力文を構文構造解析することで Chunk(チャンク)とMinimal Node(ミニマル・ノード)を作成する。
【0019】
「Chunk 」とは,入力文を文節単位(意味単位のかたまり)に分割したもので,入力文に含まれる名詞と助詞の組合せ(名詞句),動詞句,形容詞などのそれぞれがChunk として扱われる。たとえば「庭のバラが美しい」という入力文の場合,「庭の」と,「バラの」と,「美しい」の3つのChunk が作成される。名詞,助詞,動詞,形容詞,助詞など,入力文に含まれる単語の品詞は形態素解析処理によって識別される。
【0020】
「Minimal Node」とは入力文のうち基本的には主語,述語および目的語から構成される最小の文章部分であり,修飾語等が取り除かれた文章部分である。主語が含まれない(省略されている)入力文では目的語と述語のみによってMinimal Nodeが構成されたり,目的語が含まれていない入力文では主語と述語とからMinimal Nodeは構成されたりする。上述の「庭のバラが美しい」という入力文の場合,主語が「バラが」であり,「美しい」が述語である。「バラが美しい」がMinimal Nodeとして扱われる。「庭の」は主語を修飾する修飾語であるからMinimal Nodeに含まれない。主語,述語,目的語,修飾語等も,形態素解析処理を応用することで判定され,たとえば,既存の構文解析システム(たとえば,KNP,CaboCha,ShinChaなど)を利用することができる。もちろん,簡便なルールに基づく処理を行ってもよい。たとえば,助詞「は」,「が」,「も」が最初に出現するまでの文字列(単語列)を基本的には主語として扱い,その中に助詞「の」が含まれていれば,それよりも前の部分を削除することで入力文から主語を抽出(検出)する,といった処理である。
【0021】
相槌作成部12は,入力文に対する相槌を作成する。作成される相槌は,あらかじめハードディスク16に用意される感嘆語データベース(詳細は後述する)に記憶される複数の感嘆語と,上述した構文構造解析部11において作成されたChunk およびMinimal Nodeに感嘆符を付与したものを含む(詳細は後述する)。
【0022】
感情分析部13は,入力文に含まれる述語が感情を表す述語(以下,感情述語という)であるか,さらには感情述語である場合には,「快」から「不快」にわたる複数のレベルのうちのどのレベルであるかを判定する。ハードディスク16にあらかじめ用意される感情グラデーション・データベース(詳細は後述する)がこの感情分析処理に用いられる。また,感情レベルに応じた感情関連語(後述する)の選択も行われる。
【0023】
返答文作成部14は上述した感嘆語,Chunk ,Minimal Node,および感情関連語を用いて,入力文に対する返答に適する返答文を作成する。返答文作成部14は複数の返答文を作成する。
【0024】
返答文作成部14が作成した複数の返答文の一つが返答文提示部15によってランダムに選ばれる。選ばれた返答文は出力に適するデータに変換される。たとえば返答文が音声出力される場合には,返答文提示部15において返答文を表すデータが音声データに変換され,スピーカ3から出力されることになる。
【0025】
上述した構文構造解析部11,相槌作成部12,感情分析部13,返答文作成部14および返答文提示部15は,それぞれ専用のハードウェア装置によって構成してもよいし,その一部および全部を汎用のコンピュータ装置およびプログラムによって実現してもよい。汎用のコンピュータ装置は,CPU(Central Processing Unit ),メモリ等を備え,プログラムがCPUで実行されることによって対話システム1の一部または全部の処理を実行する。
【0026】
図2はハードディスク16に用意される感嘆語データベース16Aを示している。
【0027】
感嘆語データベース16Aには,感動(へー,あーそう,ほんとう,ほんと,ほんとに等)または応答(はい,ええ,うん,そうですか,なるほど等)を表す複数の単語(感嘆語,感嘆詞)を表すデータが記憶されている。感嘆語データベース16Aに記憶されている複数の感嘆語が,対話システム1によって作成される返答文に用いられる。
【0028】
図3はハードディスク16に用意される感情グラデーション・データベース16Bを示している。
【0029】
感情グラデーション・データベース16Bには多数の述語,日本語の場合,動詞,形容詞,形容動詞および名詞の基本形が記憶されるとともに,述語のそれぞれについて,その品詞,および一般述語であるか感情述語であるかの区別が記憶され,感情述語についてはさらに,その感情述語を「快」から「不快」にかけて14段階の感情レベルに分けたときにいずれのレベルに属するか,および14段階の感情レベルのそれぞれに関連づけられた感情を表す関連語(感情関連語)が記憶されている。
【0030】
感情グラデーション・データベース16Bに記憶される感情述語は,「快」または「不快」のいずれかに大別される。「快」に区別された感情述語は,さらに「快感」,「好感」または「安定感」のいずれかに区別される。「不快」に属する感情述語は「不安定感」,「嫌悪感」または「痛感」のいずれかに区別される。
【0031】
「快感」に属する感情述語はここではさらに3段階にレベル分けされ,3つのレベル(以下,便宜的にここでは上位レベル,中位レベル,下位レベルという)のそれぞれに対して,複数の感情関連語が関連づけられている。
図3に示す感情グラデーション・データベース16Bでは,「快感」に属する感情述語の上位レベルには「凄い」と「狂おしい」の2つの感情関連語が関連づけられ,中位レベルには「気持ちいい」と「うれしい」の2つの感情関連語が関連づけられ,下位レベルには「面白い」と「いとしおしい」の2つの感情関連語が関連づけられている。
【0032】
「好感」に属する感情述語は2段階にレベル分けされ(以下,便宜的に,ここでは上位レベル,下位レベルという),2つのレベルのそれぞれに対して一または感情関連語が関連づけられている。
図3を参照して,「好感」に属する感情述語の上位レベルには「可愛い」の感情関連語が関連づけられ,下位レベルには「心地よい」と「やさしい」の2つの感情関連語が関連づけられている。
【0033】
同様に,「安定感」に属する感情述語は2段階にレベル分けされ,「不安定感」に属する感情述語は3段階にレベル分けされ,「嫌悪感」に属する感情述語は3段階にレベル分けされている。「痛感」に属する感情述語はレベル分けされていない。それぞれのレベルごとに,一または複数の感情関連語が関連づけられている。
【0034】
一例を説明する。基本形「愛する」は,その品詞が動詞であり,感情述語,すなわち人の感情を述べた語である。感情グラデーション・データベース16Bにおいて,「愛する」が感情述語であることが,フラグによって示される。
【0035】
感情述語は上述のようにレベル分けが行われており,これにより対応する感情関連語が特定される。
図3を参照して,基本形「愛する」は,「快」に属し,かつ「好感」に属する2段階のレベルの上位に属している(14段階の感情レベルのうちの4番目の感情レベル)。これによって,基本形「愛する」には「可愛い」の感情関連語が関連づけられる。
【0036】
人の感情を述べた語でない一般述語については感情関連語は関連づけられない。
図3を参照して,たとえば基本形「挨拶する」は人の感情を述べた語ではないので,一般述語にフラグが立てられる。一般述語には感情関連語は関連づけられない。
【0037】
感情グラデーション・データベース16Bでは,人の感情を述べた感情述語が,「快」から「不快」にわたる14段階の感情レベルのいずれかに属するようにレベル分けされて記憶されている。そして14段階の感情レベルのそれぞれに,感情を表す感情関連語が関連づけられている。これにより,対話システムに話しかけたユーザの発言内容に沿った感情関連語を含む返答,すなわちユーザの感情や気持ちに沿う内容の返答が作成されることになる(詳しくは後述する)。感情レベルの段階数は14に限られることはなく,さらに多くの段階数,少ない段階数であってもよい。もっとも,ユーザの感情に沿った返答文を作成するためには6以上程度の段階数があるのが好ましい。
【0038】
図4は対話システムの処理の流れを示すフローチャートである。
図5,
図6は,対話システムによる処理の具体例をそれぞれ示している。以下,
図5,
図6に示す具体例を取り上げながら,
図4に示す対話システムの処理を説明する。
【0039】
対話システム1のマイクロフォン2に向かってユーザが話しかけることで,構文構造解析部11によって音声データが受け付けられる(ステップ21)。上述したように,構文構造解析部11において音声データは文字列データ(入力文)に変換される。ここでは,
図5(A)に示すように,「庭のバラが美しい」が受け付けられたものとする。
【0040】
構文構造解析部11は入力文を構文構造解析して,Chunk とMinimal Nodeを作成する(ステップ22)。「庭のバラが美しい」が受け付けられた場合,「庭の」と,「バラが」と,「美しい」の3つのchunk が生成される。また,Minimal Node「バラが美しい」が生成される(ステップ22,
図5(B))。
【0041】
次に相槌作成部12によって,感嘆語データベース16Aと,上述したChunkおよびMinimal Node とが用いられて,相槌データが作成される(ステップ23)。作成される相槌データは,感嘆語データベース16Aに記憶されている感嘆語を表すデータそのもの(「あーそう」,「へー」など)と,Chunk およびMinimal Nodeに感嘆符を付加したもの(「庭の!」,「バラが!」,「美しい!」)と,Minimal Nodeに感嘆符を付加したもの(「バラが美しい!」)とが含まれる(
図5(C))。
【0042】
入力文に含まれる述語に,上述した感情グラデーション・データベース16Bに記憶されている感情述語が含まれるかどうかが判断される(ステップ24)。
【0043】
入力文「庭のバラが美しい」には,感情グラデーション・データベース16Bに記憶されている感情述語「美しい」が記憶されている(
図3参照)ので,次の感情分析部13による感情グラデーション分析の処理に進む(ステップ24でYES)。
【0044】
感情グラデーション分析処理では,感情グラデーション・データベース16Bに記憶されている感情述語を含む入力文を発したユーザがどのような気分(感情)であるか,具体的には「快」であるか「不快」であるか,さらに「快」であれば「快感」,「好感」または「安定感」のいずれの気分であるか,「不快」であれば「不安定感」,「嫌悪感」または「痛感」のいずれの気分であるかが分析される(ステップ25)。さらに決定された気分(14段階の感情レベルのうちのいずれのレベルであるか)に応じて,そのレベルに関連づけられている感情関連語を選択(抽出)する処理が行われる(ステップ26)。
図3を参照して,感情述語「美しい」の場合であれば,入力文を発したユーザの気分は「好感」(上から2段階目の感情レベル)であることが分析され,「気持ちいい」と「うれしい」の2つの感情関連語が選択される(ステップ26,
図5(D))。なお,入力文に2つ以上の感情述語が含まれており,それらの感情レベルが異なる場合には,2つの感情レベルの両方(またはどちらか一方)をユーザの気分であるとしてもよい。この場合には2つの感情レベルに対応する両方の感情関連語が選択される。
【0045】
ステップ23で作成された相槌データと,ステップ26で選択された感情関連語が用いられて,返答文作成部14において入力文に対する返答文が作成される(ステップ27)。
【0046】
作成される返答文は,ステップ23で作成されたすべての相槌データと,ステップ26で選択された感情関連語のすべてとをそれぞれ組合せたものである。また,必要に応じて,感情関連語の語尾に「ね」を付加することによって会話感が醸し出される。感嘆語が2つ,chunk が3つ,Minimal Nodeが1つ,感情関連語が2つであれば,
図5(D)に示すように,感嘆語と感情関連語との組合せから構成される返答文((1)〜(4))と,chunk と感情関連語との組合せから構成される返答文((5)〜(10))と,Minimal Nodeと感情関連語との組合せから構成される返答文((11)〜(12))の,12通りの返答文が作成される。
【0047】
作成された複数の返答文,ここでは12通りの返答文のうち,いずれかの一つの返答文が返答文提示部15によってランダムに選択される(ステップ28)。たとえば作成された返答文の個数に応じた数を範囲とする乱数を生成し,生成された乱数を用いることで一つの返答文が選択される。
【0048】
選択された一つの返答文を表すデータが音声データに変換されてスピーカ3に与えられることで,選択された返答文が音声によって出力される(ステップ29)。なお,感嘆符「!」については,音声出力の場合には抑揚によって表現される。また,音声認識において誤認識があったときには,この抑揚が質問されているように聞こえる効果もある。さらに,上述した感情グラデーション分析に応じて,ユーザの気分が「快」に分類される感情レベルであることが分析された場合にはハイトーンの音声が用いられ,ユーザの気分が「不快」に分類される感情レベルであることが分析された場合にはロートーンの音声が用いられる。
【0049】
対話システム1からの返答文の出力の後,ユーザはさらに対話システム1に話しかけ,これを繰り返すことができる。
【0050】
図6(A)〜(D)に示す具体例は,述語が感情述語ではない一般述語の例である。入力文が「昨日,市長に挨拶した」であれば,この入力文に含まれる述語「挨拶した」は一般述語であり,感情関連語は関連づけられていない(
図3参照)。この場合には感情グラデーション分析(ステップ25)および感情関連語の選択処理(ステップ26)はスキップされる(ステップ24でNO)。ステップ23で作成された相槌データ(
図6(C))が返答文に用いられる(
図6(D))。
【0051】
このように,対話システム1は,ユーザによる発話の内容をそのまま返答文として用いるのではなく,変化に富む返答を行う。ユーザを飽きさせることなく,またユーザによる発話内容に沿った返答が実現される。
【0052】
また,入力文に含まれる述語からユーザの感情ないし気分が分析され,ユーザの感情ないし気分に沿う言葉(感情関連語)が返答文に含まれるので,ユーザの気分に寄り添った返答文を対話システム1から出力させることができる。
【0053】
ユーザによる発話と対話システム1による返答が繰返された場合には,上述した感情述語(その感情レベル)の出現頻度を用いてユーザの感情状況を推測してもよい。また推測されたユーザの感情状況に応じて,対話システム1側からユーザに話しかけるようにしてもよい。たとえば,出現頻度によってユーザの気分が「快」に属することが推測された場合には「今日は機嫌が良いようですね」といった内容を対話システム1に出力させ,ユーザの気分が「不快」であれば「何か辛いことがありますか」といった内容を対話システム1に出力させることが考えられる。
【0054】
また,感情グラデーションの考えは,複数の人の感情を自己組織化マップ(Self-Organizing Map:SOM)などを用いてグループ分けを行うために利用することもできる。