(57)【要約】【課題】ユーザに対して１体のエージェントのみが対話することなく、ユーザ発話テキストに応じてエージェントを交代させるプログラム等を提供する。【解決手段】エージェント管理プログラムであって、エージェント毎に、ユーザ想定テキストとエージェント発話テキストとを対応付けたエージェントデータベースと、現選択のエージェントに対するユーザからのユーザ発話テキストと、全てのエージェントに含まれるユーザ想定テキストそれぞれとの類似度を算出する類似度算出手段と、現選択のエージェントの全てのユーザ想定テキストの類似度が所定閾値以上でない場合、類似度が所定閾値以上で且つ最も高いユーザ想定テキストを含む他のエージェントに交代するエージェント選択手段としてコンピュータを機能させる。【選択図】図１
2020034626.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ発話テキストを入力し、エージェント発話テキストを返答する複数のエージェントを管理するようにコンピュータを機能させるエージェント管理プログラムであって、
エージェント毎に、ユーザ想定テキストとエージェント発話テキストとを対応付けたエージェントデータベースと、
現選択のエージェントに対するユーザからのユーザ発話テキストと、全てのエージェントに含まれるユーザ想定テキストそれぞれとの類似度を算出する類似度算出手段と、
現選択のエージェントの全てのユーザ想定テキストの類似度が所定閾値以上でない場合、類似度が所定閾値以上で且つ最も高いユーザ想定テキストを含む他のエージェントに交代するエージェント選択手段と
してコンピュータを機能させることを特徴とするエージェント管理プログラム。
【請求項２】
前記エージェント選択手段によって他のエージェントに交代した際に、当該他のエージェントについて前記類似度が最も高いユーザ想定テキストに対応するエージェント発話テキストを返答する
ようにコンピュータを機能させることを特徴とする請求項１に記載のエージェント管理プログラム。
【請求項３】
前記エージェントデータベースは、エージェント毎に、エージェントペルソナテキストを更に対応付けており、
前記類似度算出手段は、前記ユーザ発話テキストと、各エージェントのエージェントペルソナテキストとの類似度を、当該エージェントの各ユーザ想定テキストの類似度に重み付ける
ようにコンピュータを機能させることを特徴とする請求項１又は２に記載のエージェント管理プログラム
【請求項４】
ユーザ毎に、ユーザプロファイルテキストを蓄積したユーザプロファイル蓄積手段として更に機能させ、
前記類似度算出手段は、当該ユーザのユーザプロファイルテキストと、各エージェントのエージェントペルソナテキスト及び／又はエージェント発話テキストとの類似度を、当該エージェントの全てのユーザ想定テキストの類似度に重み付ける
ようにコンピュータを機能させることを特徴とする請求項３に記載のエージェント管理プログラム。
【請求項５】
前記ユーザプロファイル蓄積手段は、ＳＮＳ(Social Networking Service)によって各ユーザのユーザプロファイルテキストを取得する
ようにコンピュータを機能させることを特徴とする請求項４に記載のエージェント管理プログラム。
【請求項６】
前記エージェントペルソナテキストは、敬語表現の有無を含んでおり、
前記類似度算出手段は、更に、前記ユーザ発話テキストの敬語表現の有無と、複数のエージェントにおける敬語表現の有無とが不一致となる場合、当該エージェントの全てのユーザ想定テキストの類似度を零とする
ようにコンピュータを機能させることを特徴とする請求項３から５のいずれか１項に記載のエージェント管理プログラム。
【請求項７】
前記類似度算出手段は、ユーザ発話テキストとユーザ想定テキストとの両方を文字要素に基づくベクトルに変換し、２つのベクトル間の距離をコサイン類似度として算出する
ようにコンピュータを機能させることを特徴とする請求項１から６のいずれか１項に記載のエージェント管理プログラム。
【請求項８】
前記ユーザ発話テキストは、ユーザから発話された音声を音声認識処理によって変換したテキストであるか、又は、ユーザから入力されたテキストである
ことを特徴とする請求項１から７のいずれか１項に記載のエージェント管理プログラム。
【請求項９】
前記エージェント選択手段は、現選択のエージェントから他のエージェントへ交代させる際に、現選択のエージェントが当該他のエージェントへ交代する旨のエージェント発話テキストを送信し、その後、当該他のエージェントにおける最も類似度が高いユーザ想定テキストに対応するエージェント発話テキストを送信する
ことを特徴とする請求項１から８のいずれか１項に記載のエージェント管理プログラム。
【請求項１０】
請求項１から９のいずれか１項に記載のエージェント管理プログラムと通信する装置に搭載されたコンピュータを機能させるユーザプログラムであって、
前記エージェント管理プログラムによって選択されたエージェントのキャラクタをディスプレイに表示すると共に、前記エージェント発話テキストをユーザに明示し、ユーザによって入力又は発話されたユーザ発話テキストを前記エージェント管理プログラムへ送信する
ようにコンピュータを機能させることを特徴とするユーザプログラム。
【請求項１１】
ユーザ操作に基づく端末に対して、ユーザ発話テキストに応じてエージェント発話テキストを返答する複数のエージェントを管理する対話サーバであって、
エージェント毎に、ユーザ想定テキストとエージェント発話テキストとを対応付けたエージェントデータベースと、
現選択のエージェントに対するユーザからのユーザ発話テキストと、全てのエージェントに含まれるユーザ想定テキストそれぞれとの類似度を算出する類似度算出手段と、
現選択のエージェントの全てのユーザ想定テキストの類似度が所定閾値以上でない場合、類似度が所定閾値以上で且つ最も高いユーザ想定テキストを含む他のエージェントに交代するエージェント選択手段と
を有することを特徴とする対話サーバ。
【請求項１２】
ユーザ操作に基づく端末に対して、ユーザ発話テキストに応じてエージェント発話テキストを返答する複数のエージェントを管理する装置のエージェント管理方法であって、
前記装置は、エージェント毎に、ユーザ想定テキストとエージェント発話テキストとを対応付けたエージェントデータベースと、
前記装置は、
現選択のエージェントに対するユーザからのユーザ発話テキストと、全てのエージェントに含まれるユーザ想定テキストそれぞれとの類似度を算出する第１のステップと、
現選択のエージェントの全てのユーザ想定テキストの類似度が所定閾値以上でない場合、類似度が所定閾値以上で且つ最も高いユーザ想定テキストを含む他のエージェントに交代する第２のステップと
を実行することを特徴とするエージェント管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シナリオを用いてユーザと対話するエージェント対話システムの技術に関する。
【背景技術】
【０００２】
スマートフォンやタブレット端末では、ユーザに対して自然に対話する対話システムが普及しつつある。特に、コンピュータグラフィックスのキャラクタが、ユーザと音声やテキストで対話する機能を、「エージェント」と称す。エージェントは、ユーザから見て、ユーザに特別な意識を持たせることなく、ユーザの状況や、趣味趣向、感情に応じた対話を成立させる。
【０００３】
従来、漫画などの登場人物を模した複数のエージェントの中から、ユーザが１体のエージェントを選択することができる雑談対話システムの技術がある（例えば特許文献１参照）。この技術によれば、対話システムは、選択されたエージェントに基づく雑談データを取得し、対話時にその雑談データを用いて返答を生成する。対話の際、スマートフォンのディスプレイには、エージェントの姿が表示される（チャットボット型）。但し、エージェントの雑談データに含まれていないユーザからの発話に対しては、返答を生成することができない
【０００４】
尚、対話システムについて、ユーザの印象を調査した文献もある（例えば非特許文献１参照）。この文献によれば、ユーザは、キャラクタ性を持つ１体のエージェントとの対話システムと、キャラクタ性を持つ３体のエージェントとの対話システムとを用いている。但し、Wizard of Oz方式で実験したものに過ぎず、システム化されていない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−９８８４４号公報
【非特許文献】
【０００６】
【非特許文献１】Ana Paula Chaves, Marco Aurelio Gerosa, “\lochSingle or Multiple Conversational Agents? An Interactional Coherence Comparison”\loch ACM CHI Conference on Human Factors in Computing Systems. (2018, April)
【発明の概要】
【発明が解決しようとする課題】
【０００７】
前述した特許文献１によれば、チャットボット型のように、ユーザが１体のエージェントと対話する際に、ユーザの発話に対して、エージェントに返答候補が無い場合、その対話が破綻してしまうことになる。
【０００８】
そこで、本発明は、ユーザ発話テキストに応じてエージェントを交代させることができるプログラム、サーバ及び方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明によれば、ユーザ発話テキストを入力し、エージェント発話テキストを返答する複数のエージェントを管理するようにコンピュータを機能させるエージェント管理プログラムであって、
エージェント毎に、ユーザ想定テキストとエージェント発話テキストとを対応付けたエージェントデータベースと、
現選択のエージェントに対するユーザからのユーザ発話テキストと、全てのエージェントに含まれるユーザ想定テキストそれぞれとの類似度を算出する類似度算出手段と、
現選択のエージェントの全てのユーザ想定テキストの類似度が所定閾値以上でない場合、類似度が所定閾値以上で且つ最も高いユーザ想定テキストを含む他のエージェントに交代するエージェント選択手段と
してコンピュータを機能させることを特徴とする。
【００１０】
本発明のプログラムにおける他の実施形態によれば、
エージェント選択手段によって他のエージェントに交代した際に、当該他のエージェントについて類似度が最も高いユーザ想定テキストに対応するエージェント発話テキストを返答する
ようにコンピュータを機能させることも好ましい。
【００１１】
本発明のプログラムにおける他の実施形態によれば、
エージェントデータベースは、エージェント毎に、エージェントペルソナテキストを更に対応付けており、
類似度算出手段は、ユーザ発話テキストと、各エージェントのエージェントペルソナテキストとの類似度を、当該エージェントの各ユーザ想定テキストの類似度に重み付ける
ようにコンピュータを機能させることも好ましい。
【００１２】
本発明のプログラムにおける他の実施形態によれば、
ユーザ毎に、ユーザプロファイルテキストを蓄積したユーザプロファイル蓄積手段として更に機能させ、
類似度算出手段は、当該ユーザのユーザプロファイルテキストと、各エージェントのエージェントペルソナテキスト及び／又はエージェント発話テキストとの類似度を、当該エージェントの全てのユーザ想定テキストの類似度に重み付ける
ようにコンピュータを機能させることも好ましい。
【００１３】
本発明のプログラムにおける他の実施形態によれば、
ユーザプロファイル蓄積手段は、ＳＮＳ(Social Networking Service)によって各ユーザのユーザプロファイルテキストを取得する
ようにコンピュータを機能させることも好ましい。
【００１４】
本発明のプログラムにおける他の実施形態によれば、
エージェントペルソナテキストは、敬語表現の有無を含んでおり、
類似度算出手段は、更に、ユーザ発話テキストの敬語表現の有無と、複数のエージェントにおける敬語表現の有無とが不一致となる場合、当該エージェントの全てのユーザ想定テキストの類似度を零とする
ようにコンピュータを機能させることも好ましい。
【００１５】
本発明のプログラムにおける他の実施形態によれば、
類似度算出手段は、ユーザ発話テキストとユーザ想定テキストとの両方を文字要素に基づくベクトルに変換し、２つのベクトル間の距離をコサイン類似度として算出する
ようにコンピュータを機能させることも好ましい。
【００１６】
本発明のプログラムにおける他の実施形態によれば、
ユーザ発話テキストは、ユーザから発話された音声を音声認識処理によって変換したテキストであるか、又は、ユーザから入力されたテキストである
ことも好ましい。
【００１７】
本発明のプログラムにおける他の実施形態によれば、
エージェント選択手段は、現選択のエージェントから他のエージェントへ交代させる際に、現選択のエージェントが当該他のエージェントへ交代する旨のエージェント発話テキストを送信し、その後、当該他のエージェントにおける最も類似度が高いユーザ想定テキストに対応するエージェント発話テキストを送信する
ことも好ましい。
【００１８】
本発明によれば、前述したエージェント管理プログラムと通信する装置に搭載されたコンピュータを機能させるユーザプログラムであって、
エージェント管理プログラムによって選択されたエージェントのキャラクタをディスプレイに表示すると共に、エージェント発話テキストをユーザに明示し、ユーザによって入力又は発話されたユーザ発話テキストをエージェント管理プログラムへ送信する
ようにコンピュータを機能させることも好ましい。
【００１９】
本発明によれば、ユーザ操作に基づく端末に対して、ユーザ発話テキストに応じてエージェント発話テキストを返答する複数のエージェントを管理する対話サーバであって、
エージェント毎に、ユーザ想定テキストとエージェント発話テキストとを対応付けたエージェントデータベースと、
現選択のエージェントに対するユーザからのユーザ発話テキストと、全てのエージェントに含まれるユーザ想定テキストそれぞれとの類似度を算出する類似度算出手段と、
現選択のエージェントの全てのユーザ想定テキストの類似度が所定閾値以上でない場合、類似度が所定閾値以上で且つ最も高いユーザ想定テキストを含む他のエージェントに交代するエージェント選択手段と
を有することを特徴とする。
【００２０】
本発明によれば、ユーザ操作に基づく端末に対して、ユーザ発話テキストに応じてエージェント発話テキストを返答する複数のエージェントを管理する装置のエージェント管理方法であって、
装置は、エージェント毎に、ユーザ想定テキストとエージェント発話テキストとを対応付けたエージェントデータベースと、
装置は、
現選択のエージェントに対するユーザからのユーザ発話テキストと、全てのエージェントに含まれるユーザ想定テキストそれぞれとの類似度を算出する第１のステップと、
現選択のエージェントの全てのユーザ想定テキストの類似度が所定閾値以上でない場合、類似度が所定閾値以上で且つ最も高いユーザ想定テキストを含む他のエージェントに交代する第２のステップと
を実行することを特徴とする。
【発明の効果】
【００２１】
本発明のプログラム、サーバ及び方法によれば、ユーザ発話テキストに応じてエージェントを交代させることができる。特に、現選択のエージェントについて、ユーザ発話テキストに対して応答候補となるエージェント発話テキストが無い場合、他のエージェントに交代することによって、ユーザから見た対話内容を充実させることができる。
【図面の簡単な説明】
【００２２】
【図１】本発明における対話サーバの機能構成図である。
【図２】エージェントデータベースに登録された各エージェントのテーブルである。
【図３】本発明におけるテキスト間の類似度の算出を表す説明図である。
【図４】ユーザ発話テキストとユーザ想定テキストとの類似度の算出を表す説明図である。
【図５】ユーザ発話テキストとエージェントペルソナテキストとの類似度の算出を表す説明図である。
【図６】ユーザとエージェントとの間の敬語表現に基づく類似度の算出を表す説明図である。
【図７】ユーザプロファイルテキストとエージェントペルソナテキストとの類似度の算出を表す説明図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
【００２４】
図１は、本発明における対話サーバの機能構成図である。
【００２５】
図１によれば、エージェントを実行する対話サーバ１は、ユーザプログラムを実行する端末２と、ネットワークを介して接続されている。
【００２６】
端末２は、例えばスマートフォンであって、ユーザに対するマイク及びスピーカと、エージェントのキャラクタを表示するディスプレイとを有する。
端末２には、ユーザとの対話のインタフェースとなるユーザプログラムが実装されており、対話サーバ１から受信したエージェントキャラクタをディスプレイに表示すると共に、エージェント発話テキストをユーザに明示する。また、ユーザから発話又は入力されたユーザ発話テキストは、対話サーバ１へ送信される。
ユーザ発話テキストは、ユーザから発話された音声を音声認識処理によって変換したテキストであるか、又は、ユーザから入力されたテキストである。ユーザが音声発話で入力する場合、端末２のディスプレイにマイク入力ボタンを表示し、ユーザが発話テキストを入力する場合、端末２のディスプレイに入力フォームを表示する。
【００２７】
対話サーバ１は、ユーザ発話テキストを入力し、エージェント発話テキストを返答する複数のエージェントを管理する。対話サーバ１のエージェントは、ユーザと対話的にシナリオを進行させる。
【００２８】
図１によれば、対話サーバ１は、既存機能として、対話インタラクション部１００と、エージェント対話部１０１とを有する。
また、対話サーバ１は、本発明の機能として、エージェントデータベース１１０と、類似度算出部１１１と、エージェント選択部１１２と、ユーザプロファイル蓄積部１１３とを有する。
これら機能構成部は、装置に搭載されたコンピュータを機能させるプログラムを実行することによって実現される。また、これら機能構成部の処理の流れは、エージェント選択方法としても理解できる。
【００２９】
［対話インタラクション部１００］
対話インタラクション部１００は、端末２のユーザプログラムと、エージェント対話部１０１のエージェントとのインタフェースとなる。対話インタラクション部１００は、端末２へ、エージェント対話部１０１におけるキャラクタ及びエージェント発話テキストを送信すると共に、端末２から、ユーザ発話テキストを受信し、エージェント対話部１０１へ出力する。
【００３０】
［エージェント対話部１０１］
エージェント対話部１０１は、複数のエージェントを管理し、エージェント選択部１１２から指示されたエージェントを起動する。
そして、エージェント対話部１０１は、対話インタラクション部１００から入力したユーザ発話テキストを、類似度算出部１１１へ出力する。また、エージェント対話部１０１は、エージェント選択部１１２から指示されたエージェントに基づいて、そのエージェント発話テキストを、対話インタラクション部１００へ出力する。
エージェント対話部１０１は、エージェント選択部１１２からの指示に応じて、エージェントを交代させる。
【００３１】
［エージェントデータベース１１０］
エージェントデータベース１１０は、エージェント毎に、「ユーザ想定テキスト」と「エージェント発話テキスト」とを対応付けたものである。
【００３２】
図２は、エージェントデータベースに登録された各エージェントのテーブルである。
【００３３】
図２のエージェントデータベース１１０によれば、ユーザからユーザ想定テキストが発話された場合、そのエージェントは、それに対応するエージェント発話テキストを返答する、ことを意味する。
また、エージェントデータベース１１０は、エージェント毎に、「エージェントペルソナテキスト」を更に対応付けていることも好ましい。エージェントは、擬人化したものであるので、そのキャラクタ特性としてのエージェントペルソナテキストを持つ。
【００３４】
図２には、４つのエージェントが登録されている。
例えばエージェント１は、エージェントペルソナテキストとして、「年齢：２２歳」「職業：学生」「趣味：バイク」等が登録されている。
エージェント１は、ユーザ想定テキスト「休講になった」がユーザから発話された場合、エージェント発話テキスト「ラッキー！このゲーム面白いよ」をユーザへ返答する。
また、エージェント１は、ユーザ想定テキスト「バイト探してる」がユーザから発話された場合、エージェント発話テキスト「埼玉にこの求人があるよ」をユーザへ返答する。
このように他にも、エージェント２「職業：会社員」、エージェント３「ジムトレーナ」、エージェント４「職業：バイト」が登録されている。
【００３５】
尚、エージェントデータべース１１０は、ユーザ想定テキスト及びエージェント発話テキストの組を、ツリー状に並べたものであってもよい。ユーザからの返答に応じて、ツリーを辿って、ユーザとの間の対話を進めることもできる。
【００３６】
［ユーザプロファイル蓄積部１１３］
ユーザプロファイル蓄積部１１３は、ユーザ毎に、ユーザプロファイルテキストを蓄積する。
ユーザプロファイルテキストは、ＳＮＳ(Social Networking Service)によってユーザ毎に取得されたものであってもよい。例えばＳＮＳのプロファイルを、ユーザプロファイルテキストとしてもよい。
また、例えばＳＮＳの投稿文から、ユーザの趣味嗜好や最新の状況に関する情報を抽出し、それをユーザプロファイルテキストとしてもよい。例えば、そのユーザの投稿文を形態素解析によって単語を抽出し、ＴＦ−ＩＤＦ（Term Frequency - Inverse Document Frequency：単語の出現頻度−逆出現頻度）によって特徴的な単語を、ユーザプロファイルテキストとすることも好ましい。
【００３７】
［類似度算出部１１１］
＜ユーザ発話テキストとユーザ想定テキストとの類似度＞
類似度算出部１１１は、現選択のエージェントに対するユーザからの「ユーザ発話テキスト」と、現選択のエージェントも含めた全てのエージェントに含まれる「ユーザ想定テキスト」それぞれとの類似度を算出する。
類似度算出部１１１は、ユーザ発話テキストとユーザ想定テキストとの両方を文字要素に基づくベクトルに変換し、２つのベクトル間の距離を「コサイン類似度」として算出する。
【００３８】
具体的には、ユーザ発話テキストを、形態素解析によって複数の単語に分解し、Bag Of Wordsを用いて特徴ベクトルに変換する。「Bag-of-Words」とは、テキストに含まれる各単語の出現頻度のみを表現したベクトルをいう。ここでは、単語の出現順は無視される。この特徴ベクトルは、単語を軸とし、出現頻度を値として、その空間の１点にそのテキストを位置付けたものである。
同様に、全てのエージェントに含まれる各ユーザ想定テキストを、形態素解析によって複数の単語に分解し、Bag Of Wordsを用いて特徴ベクトルに変換する。
【００３９】
そして、類似度算出部１１１は、ユーザ発話テキストioの平均特徴ベクトルと、全てのエージェントに含まれる各ユーザ想定テキストajの平均特徴ベクトルとの間で、コサイン類似度Ｓ(io,aj)を算出する。
i：ユーザ
io：ユーザ発話テキストの識別子（ユーザiのo番目の発話）
a：エージェントの識別子
aj：ユーザ想定テキストの識別子
例えば以下の概念式で算出される。
Ｖio：ユーザ発話テキストioにおける単語群の特徴ベクトル
Ｖaj：エージェントaのユーザ想定テキストajにおける単語群の特徴ベクトル
Ｓ(io,aj)＝cosθ＝（Ｖio・Ｖaj）／(|Ｖio||Ｖaj|)
コサイン類似度Ｓ(io,aj)は、０〜１の値となり、類似性が高いほど１に近づく。
【００４０】
ここで、ユーザ発話テキストからみて、コサイン類似度Ｓが所定閾値を超えるユーザ想定テキストが検出されなかった場合、改めて、Word2vecを用いてコサイン類似度Ｓを算出する。「Word2vec」とは、単語の意味や文法を捉えるために単語をベクトル表現化して次元を圧縮する技術をいう。
具体的には、ユーザ発話テキストを、形態素解析によって複数の単語に分解し、Word2vecを用いて特徴ベクトルに変換する。同様に、全てのエージェントに含まれる各ユーザ想定テキストを、形態素解析によって複数の単語に分解し、Word2vecを用いて特徴ベクトルに変換する。
勿論、Bag Of WordsやWord2vecに限ることなく、各単語の品詞又は意味を解析した特徴ベクトルに変換することができればよい。
【００４１】
［エージェント選択部１１２］
エージェント選択部１１２は、現選択のエージェントの全てのユーザ想定テキストの類似度が所定閾値以上でない場合、類似度が所定閾値以上で且つ最も高いユーザ想定テキストを含む他のエージェントに交代する。
また、エージェント選択部１１２によって他のエージェントに交代した際に、エージェント対話部１０１へ、交代した当該他のエージェントについて類似度が最も高いユーザ想定テキストに対応するエージェント発話テキストを返答するべく指示する。
【００４２】
図３は、本発明におけるテキスト間の類似度の算出を表す説明図である。
【００４３】
最初に、ユーザに対して、エージェント２が選択されているとする。
（Ｓ３１）ユーザは、ユーザ発話テキスト「今日会社行ったけど疲れたなあ」と発話したとする。
このとき、ユーザ発話テキストと、エージェント２に登録された全てのユーザ想定テキストとのコサイン類似度を算出する。
ユーザ発話テキスト：「今日会社行ったけど疲れたなあ」
（エージェント２）
ユーザ想定テキスト：「会社は疲れます」  ★コサイン類似度Ｓが最高
「プレゼン発表がありました」
「会議が多かったです」
・・・・・・
「ジムには行ってない」
ここで、ユーザ発話テキスト「今日会社行ったけど疲れたなあ」に対して、ユーザ想定テキスト「会社は疲れます」とのコサイン類似度Ｓが最も高いとする。また、そのコサイン類似度Ｓは、所定閾値（例えば０．７）以上であったとする。
【００４４】
（Ｓ３２）最も高いコサイン類似度Ｓが所定閾値以上であるので、エージェント２を交代しない。そして、ユーザ想定テキスト「会社は疲れます」に対応して、エージェント２から、エージェント発話テキスト「週末までの我慢です」を、エージェント対話部１０１へ指示する。
即ち、現選択のエージェントの中に、ユーザ発話テキストに対して所定閾値以上のコサイン類似度Ｓとなるユーザ想定テキストが１つでもあれば、エージェントを交代しない。
【００４５】
（Ｓ３３）これに対して、ユーザは、ユーザ発話テキスト「ジムに行って体力つけなきゃ」と発話したとする。
このとき、ユーザ発話テキストと、エージェント２に登録された全てのユーザ想定テキストとのコサイン類似度を算出する。
ユーザ発話テキスト：「ジムに行って体力つけなきゃ」
（エージェント２）
ユーザ想定テキスト：「会社は疲れます」
「プレゼン発表がありました」
「会議が多かったです」
・・・・・・
「ジムには行ってない」  ★コサイン類似度が最高
ここで、ユーザ発話テキスト「ジムに行って体力つけなきゃ」に対して、ユーザ想定テキスト「ジムには行ってない」のコサイン類似度Ｓが最も高いとする。しかしながら、そのコサイン類似度Ｓは、所定閾値（例えば０．７）よりも低いとする。
【００４６】
この場合、ユーザ発話テキストと、エージェント２以外の他のエージェントにおける、全てのユーザ想定テキストとのコサイン類似度Ｓを算出する。
【００４７】
図４は、ユーザ発話テキストとユーザ想定テキストとの類似度の算出を表す説明図である。
【００４８】
図４によれば、以下のテキスト同士の類似度が算出されている。
ユーザ発話テキスト：「ジムに行って体力つけなきゃ」
（エージェント１）
ユーザ想定テキスト：「休講になった」
「バイト探してる」
「レポートが大変」
・・・・・・
「電車が混んでて大変でした」
（エージェント３）
ユーザ想定テキスト：「筋トレはいいよね」
「ジムには行っている」  ★コサイン類似度Ｓが最高
「残業が多い」
・・・・・・
「電車が混んでて」
（エージェント４）
ユーザ想定テキスト：「乾燥する季節です」
「友達と買い物に行くよ」
「夜遅くまでバイトだった」
・・・・・・
「電車が混んでて大変」
ここで、ユーザ発話テキスト「ジムに行って体力つけなきゃ」に対して、エージェント３のユーザ想定テキスト「ジムには行っている」のコサイン類似度Ｓが最も高いとする。また、そのコサイン類似度Ｓは、所定閾値（例えば０．７）以上であったとする。
【００４９】
（Ｓ３４）エージェント２にコサイン類似度Ｓが所定閾値以上となるユーザ想定テキストが無いので、エージェント２から、エージェント３へを交代する。そして、ユーザ想定テキスト「ジムには行っている」に対応して、エージェント３から、エージェント発話テキスト「ジムは会社帰りですか？」を、エージェント対話部１０１へ指示する。
即ち、現選択のエージェントの中に、ユーザ発話テキストに対して所定閾値以上のコサイン類似度となるユーザ想定テキストが１つもなく、他のエージェントの中に、ユーザ発話テキストに対して所定閾値以上のコサイン類似度となるユーザ想定テキストが１つでもあれば、そのエージェントに交代する。
【００５０】
他の実施形態として、図３によれば、Ｓ３３の後段にＳ３３１のエージェント発話テキストが返答されている。
ユーザから見て、エージェント２からＳ３２のエージェント発話テキスト「週末までの我慢です」に対して、Ｓ３３のユーザ発話テキスト「ジムに行って体力つけなきゃ」と返答した後、急に、別のエージェント３からＳ３４のエージェント発話テキスト「ジムは会社帰りですか？」と言われると、違和感があり、自然な対話の流れではない。現在まで対話していたエージェント２が突然居なくなり、他のエージェント３から急に発話されてしまうためである。
【００５１】
そのために、エージェント選択部１１２は、現選択のエージェントから他のエージェントへ交代させる際に、現選択のエージェントが当該他のエージェントへ交代する旨のエージェント発話テキストを送信し、その後、当該他のエージェントにおける最も類似度が高いユーザ想定テキストに対応するエージェント発話テキストを送信する。
【００５２】
図３のＳ３３１によれば、交代前のエージェント２が、エージェント発話テキスト「そう言えば、ジムトレーナさんも同じこと言ってました」と発話することによって、ユーザに対して、ジムトレーナのエージェント３を予め意識させておくことができる。
【００５３】
類似度算出部１１１は、前述した実施形態によれば、＜ユーザ発話テキストとユーザ想定テキストとの類似度Ｓ＞を算出する。
これに対して、他の実施形態として、この類似度に、以下のような類似度を「重み付け」ることも好ましい。
＜ユーザ発話テキストとエージェントペルソナテキストとの類似度Ｗ1＞
＜ユーザ発話テキストの敬語表現と、エージェント発話テキストの敬語表現との関係Ｋ＞
＜ユーザプロファイルテキストとエージェントペルソナテキストとの類似度Ｗ2＞
＜ユーザプロファイルテキストとユーザ想定テキストとの類似度Ｗ3＞
【００５４】
＜ユーザ発話テキストとエージェントペルソナテキストとの類似度Ｗ1＞
図５は、ユーザ発話テキストとエージェントペルソナテキストとの類似度の算出を表す説明図である。
類似度算出部１１１は、ユーザ発話テキストioと、各エージェントaのエージェントペルソナテキストPaとの類似度Ｗ1（コサイン類似度）を、当該エージェントの各ユーザ想定テキストの類似度Ｓに重み付ける。
Pa：エージェントａのエージェントペルソナテキスト
Ｗ1(io,Pa)
【００５５】
＜ユーザ発話テキストの敬語表現と、エージェント発話テキストの敬語表現との関係Ｋ＞
図６は、ユーザとエージェントとの間の敬語表現に基づく類似度の算出を表す説明図である。
他の実施形態として、エージェントペルソナテキストが、敬語表現の有無を含んでいることも好ましい。
【００５６】
類似度算出部１１１は、ユーザ発話テキストが敬語表現であるか否かを判定するために、ユーザ発話テキストを形態素解析した述語によって判定するものであってもよいし、ユーザプロファイルに記述されたものであってもよい。
同様に、エージェント発話テキストが敬語表現であるか否かを判定するために、エージェント発話テキストを形態素解析した述語によって判定するものであってもよいし、エージェントペルソナテキストに記述されたものであってもよい。
そして、類似度算出部１１１は、ユーザ発話テキストの敬語表現（有／無）と、各エージェントのエージェント発話テキストの敬語表現（有／無）とが一致しているか否かを判定する。ここで、ユーザ発話テキストの敬語表現が有りで、エージェント発話テキストの敬語表現が無しの場合、そのエージェントを選択しない。その場合、そのエージェントにおける全てのユーザ想定テキストのコサイン類似度を、零とするのが好ましい。ユーザが敬語で話すのに対し、エージェントが平常語で話すことは、自然な対話とはいえない。
i：ユーザ
a：エージェント
Ｋ(i,a)＝０,  ０＜Ｋ(i,a)≦１
ユーザ発話テキストとエージェント発話テキストとの敬語表現が一致する場合、Ｋに対して0.00より大きく1.00以下の任意の数とする。一方で、一致しない場合、Ｋ＝０とする。
【００５７】
また、ユーザプロファイルテキストの年齢と、エージェントプロファイルテキストの年齢とを比較するものであってもよい。
ユーザの年齢が、エージェントの年齢よりも高い場合、エージェント発話テキストは、敬語であることが好ましい。その場合、敬語表現無しとなるエージェントが選択されないように、そのようなエージェントにおける全てのユーザ想定テキストのコサイン類似度を、零とする。年上の相手と対話する場合、敬語を使うのが一般的であるからである。
【００５８】
＜ユーザプロファイルテキストとエージェントペルソナテキストとの類似度Ｗ2＞
図７は、ユーザプロファイルテキストとエージェントペルソナテキストとの類似度の算出を表す説明図である。
類似度算出部１１１は、当該ユーザのユーザプロファイルテキストuと、各エージェントaのエージェントペルソナテキストPaとの類似度Ｗ2（コサイン類似度）を、当該エージェントの全てのユーザ想定テキストの類似度Ｓに重み付ける。
u：ユーザプロファイルテキスト
Pa：エージェントaのエージェントペルソナテキスト
Ｗ2(u,Pa)
ユーザプロファイルテキストとエージェントペルソナテキストとの類似度が大きいほど、ユーザは、自らの趣味嗜好に近いエージェントほど親近感を持つ。前述した図３の場合、ユーザに対して、年齢や職業が類似するエージェント２が選択される。
【００５９】
＜ユーザプロファイルテキストとユーザ想定テキストとの類似度Ｗ3＞
類似度算出部１１１は、当該ユーザのユーザプロファイルテキストuと、各エージェントaのユーザ想定テキストajとの類似度Ｗ3（コサイン類似度）を、当該エージェントの全てのユーザ想定テキストの類似度Ｓに重み付ける。
u：ユーザプロファイルテキスト
aj：エージェントaのユーザ想定テキストj
Ｗ3(u,aj)
【００６０】
最終的に、ユーザ想定テキストの類似度Ｓ(io,aj)に、他の類似度Ｗを重み付けた総合類似度Ｓallを、以下のように算出する。
ここで、エージェント交代の場合と、初期エージェントの選択の場合とがある。
＜エージェント交代の場合＞
Ｓall(io,aj)＝Ｓ(io,aj)×Ｗ1(io,Pa)×Ｋ(i,a)
敬語有無Ｋ＝０の場合、Ｓall(io,aj)＝０となる。
そして、総合類似度Ｓallが最も高いユーザ想定テキストを検出し、そのユーザ想定テキストを登録する「エージェント」を選択する。また、そのユーザ想定テキスト対応するエージェント発話テキストが、エージェント対話部１０１へ指示される。
尚、Ｓall(io,aj)＝Ｓ(io,aj)×Ｗ1(io,aj)×Ｋ×Ｗ2(io,aj)×Ｗ3(io,aj)としてもよい。但し、Ｗ2(io,aj)×Ｗ3(io,aj)の重みの寄与率は低いことが好ましい。エージェント交代の判定が、ユーザプロファイルに引っ張られないようにすべきという理由に基づく。
【００６１】
＜初期エージェントの選択の場合＞
Ｓall(io,aj)＝Ｗ2(u,Pa)×Ｗ3(u,aj)
対話開始時にはユーザ発話テキストが存在しないために、ユーザプロファイルを比較対象として、エージェントを選択することが好ましい。
【００６２】
以上、詳細に説明したように、本発明のプログラム、サーバ及び方法によれば、ユーザ発話テキストに応じてエージェントを交代させることができる。特に、現選択のエージェントについて、ユーザ発話テキストに対して応答候補となるエージェント発話テキストが無い場合、他のエージェントに交代することによって、ユーザから見た対話内容を充実させることができる。
【００６３】
前述した本発明の種々の実施形態について、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
【符号の説明】
【００６４】
１  対話サーバ
１００  対話インタラクション部
１０１  エージェント対話部
１１０  エージェントデータベース
１１１  類似度算出部
１１２  エージェント選択部
１１３  ユーザプロファイル蓄積部
２  端末
【図１】
2020034626.tif 000003
【図２】
2020034626.tif 000004
【図３】
2020034626.tif 000005
【図４】
2020034626.tif 000006
【図５】
2020034626.tif 000007
【図６】
2020034626.tif 000008
【図７】
2020034626.tif 000009