以下に、本願にかかる応答生成装置、応答生成方法及び応答生成プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願にかかる応答生成装置、応答生成方法及び応答生成プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
〔1.応答生成処理〕
まず、図1を用いて、実施形態にかかる応答生成処理の一例について説明する。図1は、実施形態にかかる応答生成処理の一例を示す図である。図1では、応答生成装置100によって応答生成処理が行われる例を示す。
応答生成装置100は、ユーザの発話である入力メッセージに対し、予め設定された判定情報に従って応答メッセージを出力することにより対話を実現する。以下、実施形態では、かかる判定情報は、入力メッセージ及び応答メッセージに対応する各ノードから成るツリー構造(以下、「判定ツリー」と表記する場合がある)であるものとする。
具体的には、応答生成装置100は、図1に示すような判定ツリーを用いて、ユーザの会話の進め方の傾向(以下、「会話傾向」と表記する場合がある)を特定し、特定した会話の進め方の傾向に基づいて、ユーザの特性を判定する。そして、応答生成装置100は、ユーザの特性に応じて、応答メッセージとなる広告情報の出力制御の仕分けを行う。なお、以下の実施形態では、応答生成装置100は、ユーザの特性としてユーザの性格を判定する例について説明する。
〔1−1.ユーザ特性判定処理〕
まず、図1を用いて、実施形態にかかる応答生成処理のうちユーザの性格判定に関する処置の一例について説明する。図1に示す判定ツリーおいて、破線ブロックは、検出ノードを示しており、実線ブロックは、動作ノードを示している。検出ノードは、ユーザからの入力メッセージに対応する処理手順を定めており、動作ノードは応答メッセージに対応する処理手順を定めている。例えば、検出ノードには、所定のキーワードが設定されており、ユーザの入力メッセージにかかる所定のキーワードが含まれているか否かに応じて、応答に対応する動作ノードの選択が行われる。このように、応答生成装置100は、検出ノードと動作ノードを用いて対話を実現する。
例えば、図1に示すように、応答生成装置100は、検出ノードに設定されたキーワードがユーザU01の入力メッセージ「東京の有名カレー店は?」に含まれているか否かを判定する。そして、応答生成装置100は、含まれている場合には、会話を開始する。
ここで、応答生成装置100は、かかる検出ノードと接続された動作ノードに対応する応答メッセージ、例えば「赤坂2件」または「六本木5件」といった応答メッセージを出力する。そして、応答生成装置100は、かかる応答メッセージに対応する動作ノードと接続された複数の検出ノードに設定された各キーワードが、ユーザU01の入力メッセージに含まれているか否かを判定し、キーワードが含まれていると判定した場合には、かかるキーワードと対応する検出ノードに接続された動作ノードに対応する応答メッセージを出力する。このように、応答生成装置100は、検出ノードと動作ノードを使用してユーザとの会話を実現する。
また、応答生成装置100は、検出ノード、または、動作ノードを使用するたびに、ノード毎に使用回数を計数する。具体的には、応答生成装置100は、一連の会話の中で、使用回数が最も多いノードを抽出し、そのノードの使用回数が所定の閾値を超えるか否かでユーザの性格を判断する。例えば、応答生成装置100は、閾値に「2」を設定することにより、使用回数が2より少ない場合には、対応するユーザは、話題が切り替わりにくい、すなわち、無駄話嫌いな性格であると判定する。また、応答生成装置100は、使用回数が2以上である場合には、対応するユーザは、話題が切り替わりやすい、すなわち、無駄話好きな性格であると判定する。
したがって、応答生成装置100は、かかる閾値に基づき、例えば、「使用回数:2回未満→会話傾向:話題が切り替わりにくい→性格:無駄話嫌い」、「使用回数:2回以上→会話傾向:話題が切り替わりやすい→性格:無駄話好き」といった判定基準を設定しているものとする。
例えば、ユーザU01の会話の流れを示す曲線K1に着目すると、応答生成装置100は、会話が終了するまでに、「東京の有名カレー店は?」、「赤坂2件」、「おすすめは?」、「A店」の4つのメッセージに対するノードを、それぞれ「1回」使用している。この場合、応答生成装置100は、上述した判定基準に基づいて、ユーザU01の会話傾向を「話題が切り替わりにくい」と定め、これにより、ユーザU01の性格を「無駄話嫌い」と判定する。
このように、応答生成装置100は、一連の会話の中で各ノードを1回ずつしか使用していないということは、ユーザU01は、予め設定されている対話ツリーに比較的忠実に会話を進めている、すなわち、ユーザU01は、話題が切り替わりにくく、自身の質問等に対しても確実な回答だけを求めるといった会話傾向にあると予測される。したがって、応答生成装置100は、ユーザU01の性格を「無駄話嫌い」と判定することができる。
一方、図1に示す例では、ユーザU02は、「東京の有名カレー店は?」といった入力メッセージで会話を開始し、「六本木5件」、「良い場所ですよね」、「そうですね」、「ところで何件でしたっけ?」、「六本木5件」、「おすすめは?」、「B店」といった会話を行ったものとする。かかる会話の流れを示す曲線K2に着目すると、応答生成装置100は、動作ノード「六本木5件」を2回使用していることになる。具体的には、応答生成装置100は、ユーザU02によって、「ところで何件でしたっけ?」と再質問されたことにより、再び動作ノード「六本木5件」を使用することになる。これにより、応答生成装置100は、動作ノード「六本木5件」の使用回数を「2回」と計数する。そして、応答生成装置100は、上述した判定基準に基づいて、ユーザU02の会話傾向を「話題が切り替わりやすい」と定め、これにより、ユーザU02の性格を「無駄話好き」と判定する。
このように、一連の会話の中で、応答生成装置100が所定のノードを複数回使用するということは、ユーザU02は、応答生成装置100の様々な応答メッセージを期待し、会話をより楽しもうとしていることが考えられる。例えば、図1による再質問の例では、単純に情報の取得漏れによる再質問という可能性もあるが、聞き直すことにより、応答生成装置100がどの様な応答をしてくるかといったことに期待し、応答生成装置100との様々な会話をより楽しもうとしていることも考えられる。したがって、応答生成装置100は、ユーザU02の性格を「無駄話好き」と判定することができる。
なお、一連の会話の中で所定のノードが複数回使用される事例は、図1に示す再質問の例に限るものではなく、様々なケースが考えられる。つまり、会話が広がるほど所定のノードの使用回数は多くなる。すなわち、応答生成装置100は、そのような会話を行っているユーザは、話題が切り替わりやすく、無駄話等の様々な会話をすることを好む性格であると判定することができる。また、応答生成装置100は、必ずしも所定のノード使用回数2回以上で、「無駄話好き」と判定する必要はなく、使用回数の閾値と、対応する会話傾向及び性格は任意に設定することができる。
また、ここでは、所定のノードの使用回数に基づく会話傾向からユーザの性格を判定する例を示したが、これに限るのもではない。例えば、後述するが、ノードの組合せ、会話終了までに特定したノード総数、所定のノードを使用してから次のノードを使用するまでの時間、会話終了までに要した時間等から判定してもよいし、これらを適宜組み合わせることにより、総合的に判定してもよい。
〔1−2.広告出力処理〕
次に、図1を用いて、実施形態にかかる応答生成処理のうち広告情報に関する情報を、応答メッセージとして出力する広告出力処理の一例について説明する。なお、かかる広告出力処理は、上述した判定処理と並行して実行される処理であるものとする。
まず、上述した性格判定処理によって「無駄話嫌い」と判定されたユーザU01と、応答生成装置100との会話の中で、応答生成装置100が応答メッセージとして、広告情報を出力制御する例について説明する。
応答生成装置100は、ユーザから入力メッセージを受け付けるたびに、かかる入力メッセージに対応する検出ノードに含まれる所定のキーワードを、広告検索用の検索キーワードとする。
図1に示すように、応答生成装置100は、ユーザU01から「キーマカレーおいしいお店は?」といった入力メッセージを受け付けたとすると、かかる入力メッセージに対応する検出ノードに含まれる「キーマカレー」を検索キーワードとする。
ここで、ユーザU01は、「無駄話嫌い」と判定されているので、会話の文脈から外れた応答メッセージに対して、不快感を覚える可能性がある。そこで、応答生成装置100は、対話文脈から外れない応答メッセージとしての広告情報を出力する。つまり、応答生成装置100は、検索キーワード「キーマカレー」を用いることにより検索の範囲を狭める。言い換えれば、応答生成装置100は、「キーマカレー」と類似性の強い広告情報を検索する。
具体的には、応答生成装置100は、検索キーワード「キーマカレー」を用いて検索を行い、入札キーワードとして「キーマカレー」が設定されている広告データを取得する。そして、応答生成装置100は、取得した広告データを応答メッセージとして出力するよう制御する。例えば、広告主C店が入札キーワード「キーマカレー」、広告データ「キーマカレーならC店おすすめ」といった広告情報を入札しているとすると、応答生成装置100は、かかる検索方法に基づき、広告主C店の広告データを取得し、応答メッセージ「キーマカレーならC店おすすめ」を出力制御する。
このように、応答生成装置100は、「無駄話嫌い」と判定したユーザU01に対し、ユーザU01の入力メッセージに含まれる所定のキーワードを用いて検索した広告情報を応答メッセージとして出力制御する。このような応答メッセージは、会話の文脈に忠実であるため、無駄話が嫌いなユーザU01に不快感を与えることもない。具体的には、応答生成装置100は、「キーマカレー」に関する会話をしているユーザU01に対し、「キーマカレー」に関する内容の応答メッセージを出力するので、対話文脈から外れることがなく、不快感を与えることもない。
一方、上述した性格判定処理によって「無駄話好き」と判定されたユーザU02と、応答生成装置100との対話の中で、応答生成装置100が応答メッセージとして、広告情報を出力する例について説明する。
ユーザU02は、「無駄話好き」と判定されているので、応答生成装置100との様々な会話を楽しみたいと考えているといえる。つまり、会話の文脈から外れた応答メッセージにより、不快感を与えてしまうことはないと考えられる。よって、応答生成装置100は、あえて対話文脈から外れたような応答メッセージとしての広告情報も出力制御してよいことになる。つまり、応答生成装置100は、検索キーワード「キーマカレー」だけでなく、その関連語である類似検索キーワードを用いることにより検索の範囲を広める。言い換えれば、応答生成装置100は、「キーマカレー」を検索範囲に含める類似性のゆるい広告情報を検索する。
図1に示すように、応答生成装置100は、ユーザU02から「キーマカレーおいしいお店は?」といった入力メッセージを受け付けたとする。かかる場合、応答生成装置100は、ユーザU02の会話に含まれる「キーマカレー」を検索キーワードとする。また、応答生成装置100は、かかる検索キーワードと関連する関連語を検索し、それらを類似検索キーワードとする。応答生成装置100は、「キーマカレー」と類似する類似検索キーワードとして、例えば、「カレー」、「インド料理」を設定する。なお、応答生成装置100が関連語を検索する処理については、任意の公知技術が適用されるものとする。
ここで、応答生成装置100は、「キーマカレー」、「カレー」、「インド料理」を用いて検索を行い、入札キーワードとして「キーマカレー」、「カレー」、「インド料理」が設定されている広告データを取得する。そして、応答生成装置100は、取得した広告データを応答メッセージとして出力制御する。例えば、入札キーワードと広告データとして、各広告主により、広告主C店「キーマカレー:キーマカレーならC店おすすめ」、広告主D店「カレー:カレーといえばD店」、広告主E店「インド料理:インド料理のおいしいE店」といった広告情報が入札されているとする。応答生成装置100は、かかる検索方法に基づき、各広告主の広告データを取得し、応答メッセージとして出力制御する。
なお、応答生成装置100は、図1に示すように、複数の広告情報を取得した場合には、例えば、出力対象をユーザ属性とのマッチングを行ってもよいし、入札単価に応じて出力制御する広告情報を決定してもよいし、ランダムに少なくとも1つを決定してもよいし、順に全てを出力制御してもよい。
このように、応答生成装置100は、「無駄話好き」と判定したユーザU02に対し、ユーザU02の入力メッセージに含まれるキーワードと、かかるキーワードと関連する関連語とを用いた検索によって取得した広告データを応答メッセージとして出力制御する。このような応答メッセージは、検索キーワードによる検索に基づく応答メッセージを出力する場合に比べ、会話の文脈から外れてしまう可能性がある。つまり、図1に示すように、応答生成装置100は、「キーマカレー」に関する会話をしているユーザU02に対し、単に「カレー」や、「インド料理」に関する応答メッセージを出力する場合がある。このように、応答生成装置100は、「無駄話好き」と判定したユーザU02に対しては、あえて会話の文脈から外れた応答メッセージを出力することにより、様々な話題を提供することができ、ユーザU02の会話に対する満足度を高めることができる。
以上のように、応答生成装置100は、会話の傾向に基づいて、ユーザの性格を判定する。そして、応答生成装置100は、判定した性格に基づいて、応答メッセージとなる広告情報の出力制御の仕分けを行う。例えば、応答生成装置100は、「無駄話嫌い」と判定したユーザに対しては、話題が切り替わらないように会話の文脈に応じた応答メッセージを出力制御する。また、応答生成装置100は、「無駄話好き」と判定したユーザに対しては、話題が切り替わってもよいことから会話の文脈から外れた応答メッセージを出力制御する場合がある。これにより、応答生成装置100は、ユーザの性格に適した応答メッセージを出力制御することができるため、会話におけるユーザの満足度を高めることができる。
〔2.応答生成システムの構成〕
次に、図2を用いて、実施形態にかかる応答生成システムの構成について説明する。図2は、実施形態にかかる応答生成システム1の構成例を示す図である。図2に示すように、応答生成システム1は、ユーザ端末10と、音声認識装置20と、広告主端末30と、広告入札装置40と、APIサーバ装置60と、音声合成装置70と、応答生成装置100とを含む。ユーザ端末10と、音声認識装置20と、広告主端末30と、広告入札装置40と、APIサーバ装置60と、音声合成装置70と、応答生成装置100とは、ネットワークNを介して有線または無線により通信可能に接続される。なお、図2に示す応答生成システム1には、複数台のユーザ端末10や、複数台の広告主端末30が含まれてよい。
ここで、応答生成システム1がユーザへ音声サービスを提供する処理の概要について説明する。ユーザ端末10は、携帯電話機、スマートフォン、PDA(Personal Digital Assistant)、タブレット型PC、ノート型PC、デスクトップ型PC等の情報処理装置である。なお、ユーザ端末10は、会話を行うロボットや、ロボットが有する情報処理装置、その他ロボットに内蔵される任意の装置に適用することができる。ユーザ端末10は、アプリケーションの起動後、ユーザの発話を検知すると、発話の音声データを音声認識装置20へ送信する。
音声認識装置20は、ユーザ端末10から発話の音声データを受信すると、音声データをテキストデータに変換し、発話のテキストデータをユーザ端末10へ送信する。音声認識サーバ20から発話のテキストデータを受信したユーザ端末10は、発話のテキストデータを応答生成装置100に送信する。
広告主端末30は、広告主によって利用される端末装置である。広告主端末30は、例えば、スマートフォンなどの携帯電話機や、タブレット端末や、PDAや、デスクトップ型PCや、ノート型PC等である。また、広告主端末30は、広告主から受け付けた広告情報を広告入札装置40へ送信する。なお、広告情報には入札キーワードや広告データ等が含まれる。
広告入札装置40は、入札用画面を広告主端末30に提示する。また、広告入札装置40は、広告主端末30から受け付けた広告情報を後述する記憶部に記憶する。
応答生成装置100は、通常は、以下に示す処理を基盤として行うことによりユーザとの会話を実現している。
例えば、応答生成装置100は、ユーザ端末10から発話のテキストデータを受信すると、上述した判定処理を実行して応答メッセージを生成する。また、応答生成装置100は、ユーザの発話に基づいて画像検索結果や経路検索結果等を応答メッセージとして出力する場合には、応答メッセージの生成に必要なデータの検索条件を指定し、ユーザ端末10が起動したアプリケーションに対応するAPIサーバ装置60に対してデータの要求を行う。
APIサーバ装置60は、応答生成装置100から受信した検索条件に従って、画像検索結果や経路検索結果等を含むデータを応答生成装置100に送信する。例えば、APIサーバ装置60は、画像検索結果や経路検索結果を含むXML(Extensible Markup Language)データを取得する処理を行い、取得したXMLデータを応答生成装置100に送信する。
応答生成装置100は、APIサーバ装置60から、例えば、XMLデータを受信すると、XMLデータからデータを抽出し、XMLデータをHTMLデータに変換するとともに、XMLデータまたはHTMLデータから音声にて応答を行うテキストデータ(以下、応答発話表示用のテキストデータと記載する)を抽出する。また、応答生成装置100は、応答発話表示用のテキストデータや、判定処理により取得された応答メッセージのテキストデータを音声合成装置70に送信する。音声合成装置70は、応答発話表示用のテキストデータや判定処理により取得された応答メッセージのテキストデータから音声を合成する音声合成処理を行って生成した応答発話用の中間表記を応答生成装置100に送信する。応答生成装置100は、応答発話用の中間表記と応答発話表示用のテキストデータとHTMLデータとをユーザ端末10に送信する。
ユーザ端末10は、受信した応答発話用の中間表記を用いて、応答の音声を出力するとともに、応答発話表示用のテキストデータとHTMLデータとを用いて、応答内容を表示する。このようにして、応答生成システム1は、ユーザの発話に対して適切な応答を行う音声サービスを実現する。
なお、応答生成装置100は、上述した判定処理を実行する際、上述した応答生成処理を組み合わせることにより、よりユーザの性格に応じた応答メッセージの出力を実現する。例えば、応答生成装置100は、ユーザの発話に含まれるキーワードを抽出し、抽出したキーワードを検索キーワードとして広告入札装置40に送信する。かかる場合、応答入札装置40は、検索キーワードと対応する広告を検索し、検索結果を応答生成装置100へ送信する。そして、応答生成装置100は、受信した広告のテキストデータを音声合成装置70に送信して応答発話用の中間表記を取得し、取得した中間表記や広告のテキストデータをユーザ端末10に送信する。
〔3−1.広告入札装置の構成〕
次に、図3を用いて、実施形態にかかる広告入札装置40について説明する。図3は、実施形態にかかる広告入札装置40の構成例を示す図である。図3に示すように、広告入札装置40は、通信部41と、広告情報記憶部42と、制御部43とを有する。
通信部41は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部41は、ネットワークと有線または無線で接続される。
広告情報記憶部42は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。
広告情報記憶部42は、各種広告情報を記憶する。具体的には、広告情報記憶部42は、広告主端末30から入札として受け付けた広告情報を記憶する。ここで、図4に、実施形態にかかる広告情報記憶部42の一例を示す。図4に示した例では、広告情報記憶部42は、広告IDに、入札キーワードと、広告データとを対応付けて記憶する。
「広告ID」は、広告情報を識別するための識別情報を示す。また、「広告ID」は、広告主及び広告主端末30を識別するための識別情報でもある。「入札キーワード」は、広告主によって設定されるキーワードである。例えば、広告主は、広告したい商品や情報を特徴づける言葉を入札キーワードとして設定する。
「広告データ」は、広告主によって設定される広告文であり、例えば、テキストデータ形式で入稿される。なお、広告入札装置40によって文字数が設定されてもよい。
すなわち、図4では、広告ID「C01」によって識別される広告主(例えばC店とする)は、入札キーワード「キーマカレー」を設定することにより、ユーザが「キーマカレー」を含むメッセージを入力した場合に、「キーマカレーならC店おすすめ!」といった応答メッセージを出力するよう指示していることを示す。
図3に戻って説明を続ける。制御部43は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、広告入札装置40の内部の記憶装置に記憶されている各種プログラム(広告入札プログラムの一例に相当)がRAM(Random Access Memory)を作業領域として実行されることにより実現される。また、制御部43は、例えば、ASIC(Application Specific Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
図3に示すように、制御部43は、入札受付部44と、提示部45とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部43の内部構成は、図3に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部43が有する各処理部の接続関係は、図3に示した接続関係に限られず、他の接続関係であってもよい。
入札受付部44は、広告主端末30に所定の入札画面を提示することにより、広告主から入札キーワードと広告データを含む広告情報の入札を受け付ける。そして、入札受付部44は、受け付けた広告情報を広告情報記憶部42に格納する。
提示部45は、応答生成装置100によって検索された広告データを、かかる検索部133の取得要求に応じて提示する。具体的には、提示部45は、応答生成装置100から検索キーワードを受け付け、受け付けた検索キーワードを用いて広告情報記憶部42の広告データを検索する。具体的には、提示部45は、検索キーワードと入札キーワードとが一致する広告データを広告情報記憶部42から抽出し、抽出した広告データを検索キーワードの送信元である応答生成装置100に提示する。
〔3−2.応答生成装置の構成〕
次に、図5を用いて、実施形態にかかる応答生成装置100について説明する。図5は、実施形態にかかる応答生成装置100の構成例を示す図である。図5に示すように、応答生成装置100は、通信部110と、判定情報記憶部120と、制御部130とを有する。
通信部110は、例えば、NIC等によって実現される。そして、通信部110は、ネットワークと有線または無線で接続される。
判定情報記憶部120は、例えば、RAM、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。そして、判定情報記憶部120は、ユーザによる応答メッセージに対する応答メッセージを判定するための判定情報を記憶する。判定情報は、入力メッセージに対応する処理手順が定められた検出ノードと、応答メッセージに対応する処理手順が定められた動作ノードと、検出ノードと動作ノードとの接続関係を示すエッジとから構成されるツリー構造のデータである。
ここで、図6に実施形態にかかる判定情報記憶部120の一例を示す。図6に示した例では、各ノードを識別するノードIDと、ノードの種別を示すノード種別と、メッセージに対応する処理手順を示す処理内容とを関連付けて記憶する。なお、図6では記載を省略したが、判定情報記憶部120には、各ノードがどのノードと接続されているかを示す情報が登録されているものとする。例えば、判定情報記憶部120には、ノードID「N11」のノードと、ノードID「N12」、「N13」のノードとが接続され、ノードID「N11」のノードからノードID「N12」、「N13」に遷移する確率である遷移確率がそれぞれ「0.5」であるものとする。この結果、判定情報記憶部120は、図7に示すツリー構造のデータを記憶することとなる。
図7は、判定情報記憶部120に記憶されるツリー構造の模式図である。図7に示される破線ブロックは、検出ノードを示しており、実線ブロックは動作ノードを示している。また、これらのブロックには、ノードIDが付されている。また、各ブロック同士を繋ぐ矢印は、エッジを示しており、具体的には、始点(矢がない側)が接続元ノードを示し、終点(矢がある側)が接続先ノードを示している。例えば、ノードID「N11」のノードとノードID「N12」のノードとを接続する矢印は、接続元ノードがノードID「N11」の検出ノードであり、接続先ノードがノードID「N12」の動作ノードであることを示している。なお、かかる判定ツリーは、図1に示す判定ツリーに対応し、各ノードにおける処理手順等をより明確化した判定ツリーであるといえる。なお、表記されている数値(0.5等)は、遷移確率を示す。また、図7に模式した判定ツリーは、判定情報記憶部120が記憶する検出ノードや動作ノードのうち一部のノードのみを表したものであり、各ノードには図6や図7に示すノード以外にも、各種の検出ノードや動作ノードが接続されているものとする。
したがって、応答生成装置100がユーザの入力メッセージ「東京の有名カレー店は?」に対応するノードが、ノードID「N11」であると判定すると、接続先のノードであるノードID「N12」、または、ノードID「N13」のいずれかの動作ノードへ遷移する。
図5に戻って説明を続ける。制御部130は、例えば、CPUやMPU等によって、応答生成装置100の内部の記憶装置に記憶されている各種プログラム(応答生成プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、例えば、ASICやFPGA等の集積回路により実現される。
図5に示すように、制御部130は、受信部131と、判定部132と、検索部133と、出力制御部134とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図5に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部130が有する各処理部の接続関係は、図5に示した接続関係に限られず、他の接続関係であってもよい。
受信部131は、上述したように、ユーザ端末10、APIサーバ装置60、音声合成装置70から各種情報を受信する。また、受信部131は、図示しない外部装置によって作成された判定情報を受信し、判定情報記憶部120に格納する。
判定部132は、会話の進め方の傾向からユーザ特性を判定する。具体的には、判定部132は、応答生成装置100が検出ノード、または、動作ノードを使用するたびに、ノード毎に使用回数を計数する。そして、判定部132は、使用回数に基づいて、会話の進め方の傾向を判定する。そして、判定部132は、会話の進め方の傾向に応じたユーザの性格や感情等の各種ユーザ特性を判定する。
図1でも説明したように、判定部132は、ユーザと応答生成装置100との一連の会話の中で、所定のノードの使用回数に基づいて、かかるユーザの会話の進め方の傾向に応じたユーザ特性を判定する。具体的には、判定部132は、一連の会話の中で、使用回数が最も多いノードを抽出し、そのノードの使用回数が所定の閾値を超えるか否かでユーザの性格を判断する。例えば、応答生成装置100は、閾値に「2」を設定することにより、使用回数が2より少ない場合には、対応するユーザは、話題が切り替わりにくい、すなわち、無駄話嫌いな性格であると判定する。また、応答生成装置100は、使用回数が2以上である場合には、対応するユーザは、話題が切り替わりやすい、すなわち、無駄話好きと判定する。
したがって、応答生成装置100は、かかる閾値に基づき、例えば、「使用回数:2回未満→会話傾向:話題が切り替わりにくい→性格:無駄話嫌い」、「使用回数:2回以上→会話傾向:話題が切り替わりやすい→性格:無駄話好き」といった判定基準が設定されているものとする。
図7の例では、ユーザU01によって会話が開始されたことにより、判定部132は、会話が終了するまで、応答生成装置100によって検出ノード、または、動作ノードが使用されるたびに、ノード毎に使用回数を計数する。例えば、「N11」→「N12」→「N14」→「N18」の順に会話が進んだとする。ここで、判定部132は、「N11:1回」、「N12:1回」、「N14:1回」、「N18:1回」といった計数結果を有していることになる。そして、判定部132は、上述した判定基準と計数結果とを比較する。どのノードにおいても、使用回数は、閾値より少ないため、判定部132は、ユーザU01は、話題が切り替わりにくい会話傾向にある、すなわち、「無駄話嫌い」な性格であると判定する。
一方、ユーザU01とは異なるユーザ端末10を使用するユーザU02によって会話が開始された場合について説明する。例えば、「N11」→「N13」→「N16」→「N19」→「N22」→「N13」→「N17」→「N20」の順に会話が進んだとする。ここで、判定部132は、「N11:1回」、「N13:2回」、「N16:1回」、「N17:1回」、「N19:1回」、「N22:1回」、「N20:1回」といった計数結果を有していることになる。そして、判定部132は、上述した判定基準と計数結果を比較する。
ここで、ノード「N13」は、計数結果「2回」である。1回目は、ノード「N11」に対する応答メッセージとしての動作ノードに対応する。2回目は、ノード「N22」において、例えば、「ところで何件でしたっけ?」といった再質問がユーザU02によって入力されていることによる、応答メッセージとしての動作ノードに対応する。
これにより、判定部132によるノード「N13」の使用回数が閾値以上であることから、判定部132は、ユーザU02は、話題が切り替わりやすい会話傾向にある、すなわち、「無駄話好き」な性格であると判定する。
なお、判定部132は、必ずしも使用回数が最も多いノードにおいて、その使用回数と閾値との比較から判定する必要はない。例えば、判定部132は、ノード「N13」の使用回数2回、ノード「N17」の使用回数2回といったように、複数回使用されたノードがいくつか存在する場合には、それらの合計回数(すなわち、4回)と閾値との比較から判定してもよい。また、判定部132は、複数回使用されたノードの数に応じて判定してもよいし、所定のノードが複数回使用されたか否かに応じて判定してもよい。さらに、判定部132は、これらを組み合わせてもよい。すなわち、判定部132は、ユーザとの会話が所定の条件を満たすか否かに基づいて、ユーザの性格を判断すればよく、任意の手法を適用できる。
そして、判定部132は、判定結果によって得られたユーザ特性を図示しない所定の記憶部に記憶してもよい。なお、判定部132は、1回の会話でユーザ特性を判定してもよいし、複数の会話で判定してもよい。1回の会話とは、例えば、ユーザ端末10において、応答生成システム1に関する所定のアプリが起動されてから終了されるまでにユーザと応答生成装置100間でなされた会話であってよい。なお、ユーザの性格が「無駄話好き」となるか「無駄話嫌い」となるかは、利用者の性格に依存する場合の他にも、例えば、会話のシチュエーションによってそのつど変化する場合もあると考えられる。そこで、判定部132は、例えば、会話の内容や利用者の声の状態等から、ユーザとの会話におけるシチュエーションを予測し、予測したシチュエーションを考慮して、利用者の性格を判定してもよい。また、判定部132は、シチュエーションを考慮した利用者の性格判定処理を優先するものの、判定結果が曖昧な場合は、利用者の性格に依存する性格判定処理の結果を優先するような処理があってもよい。また、判定部132は、全体として、「無駄話嫌い/無駄話好き」のケースが頻発する対話については、そちらを優先する処理を行ってもよい。
図5に戻って説明を続ける。検索部133は、判定部132によって判定されたユーザ特性に応じて、応答メッセージとなる広告情報を広告情報記憶部42から検索する。具体的には、検索部133は、判定部132によって「無駄話嫌い」と判定された場合には、検索範囲を狭めた検索を行い、「無駄話好き」と判定された場合には、検索範囲を広めた検索を行う。これにより、検索部133は、「無駄話嫌い」なユーザには、対話文脈から外れない応答メッセージを出力可能にし、「無駄話好き」なユーザには、対話文脈から外れた応答メッセージであっても出力可能にする。具体的な処理について、図1及び図5を用いて説明する。
検索部133は、判定部132からユーザの特性に関する情報を受け付ける。なお、上述したように、ユーザ特性が所定の記憶部に記憶されている場合には、検索部133は、かかる記憶部からユーザ特性を取得してもよい。ここでは、検索部133は、ユーザ特性としてユーザの性格を受け付けた場合について説明する。
まず、上述した性格判定処理によって「無駄話嫌い」と判定されたユーザU01と、応答生成装置100との会話の中で、検索部133が応答メッセージとなる広告情報を検索する例について説明する。
検索部133は、応答生成装置100が検出ノードを使用するたびに、かかる検出ノードに含まれる所定のキーワードを、広告検索用の検索キーワードとする。なお、検出ノード中に複数のキーワードが含まれる場合には、最も重要度の高いキーワードを検索キーワードとしてよい。
図1の例ように、応答生成装置100によって「キーマカレー」を含む検出ノードが使用された場合には、検索部133は、この「キーマカレー」を検索キーワードとする。そして、検索部133は、検索キーワードと一致する入札キーワードに対応付けられた広告情報を広告情報記憶部42から取得する。
具体的には、検索部133は、検索キーワードを広告入札装置40へ送信する。ここで、検索キーワードを受け付けた広告入札装置40の提示部45は、かかる検索キーワードと入札キーワードが一致する広告データを抽出し、抽出した広告データを検索部133に提示する。そして、検索部133は、提示された広告データを取得する。
例えば、各広告主によって図4に示す入札がなされているとすると、検索部133は、検索キーワード「キーマカレー」を広告入札装置40へ送信することにより、検索キーワード「キーマカレー」と一致する入札キーワードに対応する対応する広告データとして、「キーマカレーならC店おすすめ」を取得する。
そして、検索部133は、広告入札装置40の提示部45から、広告データを取得した場合に、その広告データを応答メッセージとして出力制御するよう出力制御部134に指示する。例えば、上記例では、検索部133は、取得した広告データ「キーマカレーならC店おすすめ」を出力制御部134へ出力する。
このように、検索キーワードと一致する入札キーワードの検索では、検索範囲が狭く、ユーザU01の入力メッセージと関係性の高い応答メッセージのみが検索結果として得られることになる。このような応答メッセージであれば、会話の文脈から外れることもなく、「無駄話嫌い」なユーザU01に不快感を与えることもない。
一方、上述した性格判定処理によって「無駄話好き」と判定されたユーザU02と、応答生成装置100との会話の中で、検索部133が応答メッセージとなる広告情報を検索する例について説明する。
検索部133は、応答生成装置100が検出ノードを使用するたびに、かかる検出ノードに含まれる所定のキーワードを広告検索用の検索キーワードとする。また、検索部133は、かかる検索キーワードと関連する関連語を複数設定し、それらを類似検索キーワードとする。なお、関連語は、検索キーワードに対する上位語や類似語から成る。
例えば、図1のように、応答生成装置100によって「キーマカレー」を含む検出ノードが使用された場合には、検索部133は、この「キーマカレー」を検索キーワードとする。また、検索部133は、類似検索キーワードとして、例えば、「カレー」、「インド料理」を設定する。
例えば、各広告主によって図4に示す入札がなされているとする。検索部133は、検索キーワード「キーマカレー」及び類似検索キーワード「カレー」、「インド料理」を用いて類似度がゆるい検索を行う。具体的には、検索部133は、検索キーワードと類似検索キーワードを広告入札装置40へ送信する。ここで、広告入札装置40の提示部45は、受け付けた検索キーワード及び類似検索キーワードと、入札キーワードとが一致する広告データを抽出し、抽出した広告データを検索部133に提示する。そして、検索部133は、提示された広告データを取得する。つまり、検索部133は、「キーマカレーならC店おすすめ」、「カレーといえばD店」、「インド料理のおいしいE店」を取得する。
そして、検索部133は、広告入札装置40の提示部45から広告データを取得した場合に、その広告データを応答メッセージとして出力するよう出力制御部134に指示する。例えば、上記例では、検索部133は、取得した広告データ「キーマカレーならC店おすすめ」、「カレーといえばD店」、「インド料理のおいしいE店」とユーザU02のユーザ属性とのマッチングを行い、マッチングの結果選択された広告データ(例えば、「インド料理のおいしいE店」)を出力制御部134へ出力する。
このように、検索キーワード及び類似検索キーワードを用いた検索では、検索範囲は、検索キーワードのみを用いた場合よりも広く、ユーザU02の入力メッセージと関係性の低い応答メッセージを得られることになる。このような応答メッセージは、会話の文脈から外れる可能性があるが、「無駄話好き」なユーザU02は、様々な会話ができるようになるため、結果的に会話の満足度を高めることができる。
出力制御部134は、所定の入力メッセージに関するノードと所定の応答メッセージに関するノードとが関連付けられた判定情報に基づいて選択された応答メッセージを出力させる。例えば、出力制御部134は、検索部133から応答メッセージとなる広告データを受け付けた場合に、かかる広告データを音声合成装置70に送信する。音声合成装置70は、出力制御部134から広告データを受け付けると、かかる広告データの中間表現(例えば、再生波形のデータ)及びテキストを作成し、応答生成装置100へ送信する。
〔4.応答生成処理フロー〕
次に、図8を用いて、実施形態にかかる応答生成装置100による広告入札処理について説明する。図8は、実施形態にかかる応答生成装置100による広告入札処理手順を示すフローチャート図である。
図8に示すように、まず、応答生成装置100の判定部132は、ユーザ特性を判定する処理のタイミングであるか否かを判定する。例えば、判定部132は、応答生成装置100によって検出ノード、または、動作ノードを使用された場合に、ユーザ特性を判定する処理のタイミングであると判定し(ステップS101;Yes)、ユーザ特性の判定処理を行う(ステップS102)。続いて、応答生成装置100の検索部133は、広告情報を出力するタイミングである場合には(ステップS103;Yes)、ステップS102において判定したユーザ特性に応じた検索用のキーワードを設定する(ステップS104)。具体的には、検索部133は、ユーザ特性に応じて設定されている検索範囲に基づき、検索キーワードや類似検索キーワードを設定する。そして、検索部133は、設定した検索用キーワードに対応する広告データを広告入札装置40から取得する(ステップS105)。具体的には、検索部133は、設定した検索用キーワードを広告入札装置40へ送信することで、広告入札装置40によってそのキーワードに一致する入札キーワードに対応する広告データが抽出され、抽出された広告データを取得する。続いて、応答生成装置100の出力制御部134は、検索部133から受け付けた広告データが音声として出力されるよう、出力制御を行う(ステップS106)。
〔5.変形例〕
上述した実施例にかかる応答生成装置100は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、以下では、応答生成装置100の他の実施例について説明する。
〔5−1.ユーザ特性判定(1)〕
上述してきた応答生成装置100の判定部132は、応答生成装置100によって所定のノードが使用された使用回数に基づく会話の傾向からユーザの特性として性格を判定する例を示した。しかし、判定部132は、所定のユーザによってなされた会話の中で、会話が終了するまでに、応答生成装置100によって使用されたノードの総数に基づいて、かかるユーザの会話傾向に応じた性格を判定してもよい。この点について、図7を用いて説明する。
具体的には、判定部132は、応答生成装置100によって使用されたノードの総数に閾値を設定しており、その閾値より総数が少ないか多いかに基づく会話傾向から、ユーザの性格を判定する。例えば、判定部132は、閾値に「総数:5回」を設定し、これに基づいて、「総数:5回未満→会話傾向:話題が切り替わりにくい→性格:無駄話嫌い」、「総数:5回以上→会話傾向:話題が切り替わりやすい→性格:無駄話好き」といった判定基準を設定しているものとする。
判定部132は、応答生成装置100によって広告情報が出力制御されるまで、応答生成装置100によってノードが使用されるたびに、使用されたノードの数を計数する。具体的には、判定部132は、応答生成装置100が検出ノード、または、動作ノードを使用するたびに、カウント「1」を加えてゆき、最終的にその総数を算出する。例えば、ユーザU01との会話が「N11」→「N12」→「N14」→「N18」の順で進んだ場合には、使用されたノードの数が「4」となる。このように、ノード総数が少ない会話というのは、簡潔にまとまった内容の会話であると共に、様々な方向に話題が切り替わっていない会話であることが予想でき、そういった会話をするユーザが無駄話を好まない性格であると判定ができる。このため、判定部132は、ユーザU01が「無駄話嫌い」な性格であると判定する。この結果、判定部132は、ノード「N18」に対するユーザU01の回答に含まれるキーワードに基づいて、類似性が強い検索を行うことで、出力対象となる広告データを特定する。
一方、ユーザU02との会話が「N11」→「N13」→「N16」→「N19」→「N22」→「N13」→「N17」→「N20」の順に進んだ場合には、応答生成装置100によって使用されたノード総数を「8」と算出する。このように、ノード総数が多い会話というのは、内容の濃い会話であったり、様々な方向に話題が切り替わりっていることが予想でき、そういった会話をするユーザは、結果的に無駄話を好む性格であると判定することができる。このため、判定部132は、ユーザU02が「無駄話好き」な性格であると判定する。この結果、判定部132は、ノード「N20」に対応する応答に含まれるキーワードに基づいて、類似性がゆるい検索を行うことで、出力対象となる広告を特定する。
〔5−2.ユーザ特性判定(2)〕
また、上述してきた応答生成装置100の判定部132は、ユーザの入力メッセージが、その入力メッセージを含む一連の会話の文脈にどれほど一致しているかの度合いに基づいて、かかるユーザのユーザ特性を判定してもよい。
ここで、応答生成装置100は、予め各ノードに所定のカテゴリを対応付けておくとする。例えば、ある一連の会話において、判定部132は、応答生成装置100がユーザから入力メッセージを受け付けることにより、対応する検出ノードを使用した場合に、かかる検出ノードに対応付けられたカテゴリと、かかる検出ノードよりも前に使用されたノードに対応付けられたカテゴリとの「一致度」を算出する。これにより、判定部132は、かかる検出ノードに対応する入力メッセージが、それまでに行われた一連の会話の文脈にどれほど一致しているかを判定することができる。なお、一致度とは、どれだけ文脈に沿っているかを表す指数であり、値が小さいほど文脈から外れていることになる。ここでは、判定部132は、完全に文脈に一致している場合には、最大値「5」を与えるものとする。
具体的には、判定部132は、一連の会話の中で、最も低い一致度を抽出し、その一致度が所定の閾値を超えるか否かでユーザ特性としてユーザの性格を判定する。例えば、応答生成装置100は、閾値に「3」を設定することにより、抽出した一致度が3以上である場合には、対応するユーザは、話題が切り替わりにくい、すなわち、無駄話嫌いな性格であると判定する。また、応答生成装置100は、一致度が3より小さい場合には、対応するユーザは、話題が切り替わりやすい、すなわち、無駄話好きと判定する。
例えば、図7において、ユーザU02との会話は、「N11」→「N13」→「N16」の順に進んだとする。また、ユーザU01との会話は、「N11」→「N13」→「N17」の順に進んだとする。ここで、応答生成装置100は、各ノードに対し、N11「カレー店:地域」、N13「カレー店:六本木」、N16「六本木:感情」、N17「カレー店:おすすめ」といったカテゴリを予め対応付けておくとする。
かかる場合、判定部132は、ユーザU01との一連の会話の流れは「N11」→「N13」→「N17」であることから、例示したカテゴリに基づき、ユーザU01は常にカレー店に関する話題に沿っている、すなわち、文脈から外れていないと判定し、一致度「5」を与える。そして、判定部132は、一致度が閾値「3」以上であることからユーザU01は、「無駄話嫌い」と判定する。
一方、判定部132は、ユーザU02との一連の会話の流れは「N11」→「N13」→「N16」であることから、例示したカテゴリに基づき、ユーザU02の入力メッセージに対応する検出ノード「N16」は、カレー店に関する話題から、六本木に関する感情にそれてしまったことにより、例えば、一致度「2」を与える。そして、判定部132は、一致度が閾値「3」より小さいことからユーザU02は、「無駄話好き」と判定する。
このように、応答生成装置100は、一連の会話の文脈と、その会話におけるユーザの入力メッセージとがどれほど一致しているかによって、かかるユーザのユーザ特性を判定する。
〔5−3.ユーザ特性判定(3)〕
また、上述してきた応答生成装置100の判定部132は、応答メッセージが出力制御されてから新たな入力メッセージをユーザから受け付けるまでの時間に基づいて、ユーザ特性を判定してもよい。この点について、図7を用いて説明する。
具体的には、判定部132は、応答生成装置100によって、所定のノードが使用されてから次のノードが使用されるまでに要した時間に基づいて、かかるユーザの会話傾向に応じた性格を判定する。つまり、判定部132は、ノードが使用されるたびに、次のノードを使用するまでの時間を計測する。そして、判定部132は、この操作を会話が終了するまで各ノードについて行い、広告情報を検索する時点における各ノード間の平均時間を算出する。
判定部132は、平均時間に閾値を設定しており、その閾値より平均時間が少ないか多いかに基づく会話傾向から、ユーザの性格を判定する。例えば、判定部132は、閾値に「平均時間:10秒」を設定し、これに基づいて、「平均時間:10秒未満→会話傾向:話題が切り替わりにくい→性格:無駄話嫌い」、「平均時間:10秒以上→会話傾向:話題が切り替わりやすい→性格:無駄話好き」といった判定基準を設定しているものとする。
例えば、ユーザU01との会話において、平均時間を「N11」→「N12」(5秒)→「N14」(4秒)→「N18」(5秒)とする。これにより、判定部132は、平均時間「7秒」と算出する。そして、判定部132は、算出結果と判定基準とを比較することにより、平均時間は閾値未満であるため、ユーザU01は、話題が切り替わりにくい会話傾向にある、すなわち、「無駄話嫌い」な性格であると判定する。
このように、平均時間が短いユーザは、話題が切り替わることもなく、すぐに返事をして会話を簡単に早く終わらそうとしていることが予想でき、そういった会話をするユーザは、結果的に無駄話を好まない性格であると判定することができる。
一方、ユーザU02との会話において、平均時間を「N11」→「N13」(15秒)→「N16」(6秒)→「N19」(21秒)→「N22」(18秒)→「N13」(10秒)→「N17」(10秒)→「N20」(10秒)とする。これにより、判定部132は、平均時間「14秒」と算出する。そして、判定部132は、算出結果と判定基準とを比較することにより、平均時間は閾値以上であるため、ユーザU02は、話題が切り替わりやすい会話傾向にある、すなわち、「無駄話好き」な性格であると判定する。
このように、平均時間が長いユーザは、じっくり考えて返事をしようとしていることが予想でき、そういった会話をするユーザは、内容の濃い会話をしようとしていると考えられ、結果的に無駄話等の様々な会話を好む性格であると判定することができる。
〔5−4.ユーザ特性判定(4)〕
また、上述してきた応答生成装置100の判定部132は、広告情報を検索するまでのトータル所要時間に基づいて、かかるユーザの会話傾向に応じたユーザ特性を判定してもよい。具体的には、判定部132は、応答生成装置100によって、最初のノードが使用されてから広告情報を検索するまでの時間を計測する。なお、判定部132は、上述したようにノードが使用されるたびに、次のノードが使用されるまでの時間を計測し、その時間の合計をトータル所要時間としてもよい。そして、判定部132は、上述してきたように、トータル所要時間に閾値を設定しておき、その閾値より少ないか多いかに基づく会話傾向から、ユーザの性格を判定する。
〔5−5.ユーザ特性判定(5)〕
また、上述してきた応答生成装置100の判定部132は、上述してきた5つの判定方法を組み合わせることにより総合的に判定してもよい。例えば、判定部132は、上記判定方法により、無駄話嫌い、または、無駄話好きのどちらか判定した方に1ポイントを加算する。例えば、判定部132は、5つの判定方法中3つの判定方法で無駄話嫌いと判定し、残り2つの判定方法で無駄話好きと判定した場合には、「無駄話嫌い:3ポイント」に対して、「無駄話好き:2ポイント」となり、総合的に「無駄話嫌い」と判定する。
〔5−6.検索(1)〕
上述してきた応答生成装置100の検索部133は、検索キーワードや類似検索キーワードをタグとして検索する例を示した。しかし、検索部133は、検索キーワードと広告内容との関連度に基づいて検索範囲を調整してもよい。
具体的には、検索部133は、関連度に所定の値を設定し、判定部132によって「話題が切り替わりにくい、無駄話嫌い」と判定された場合には、所定の値よりも高い関連度を有する広告データを検索する。一方、検索部133は、判定部132によって「話題が切り替わりやすい、無駄話好き」と判定された場合には、所定の値よりも低い関連度を有する広告データを検索する。
〔5−7.検索(2)〕
また、上述してきた応答生成装置100の検索部133は、広告文の文字数に基づいて、検索範囲を調整してもよい。具体的には、検索部133は、所定の文字数を設定し、判定部132によって「話題が切り替わりにくい、無駄話嫌い」と判定された場合には、かかる文字数より少ない文字数で構成される広告データを検索する。一方、検索部133は、判定部132によって「話題が切り替わりやすい、無駄話好き」と判定された場合には、かかる文字数より多い文字数で構成される広告データを検索する。
これにより、応答生成装置100は、無駄話嫌いなユーザに対して、長文から成る応答メッセージを出力させることにより不快感を与えたり、再生が途中で停止されるといった事象を防ぐことができる。対して、応答生成装置100は、無駄話好きなユーザには、長文から成る応答メッセージを出力させることで、より会話を盛り上げることができる。なお、応答生成装置100は、同一の広告対象について、長文の広告データと短文の広告データとが登録されている場合には、ユーザ特性に応じて、いずれかの広告データを出力してもよい。例えば、応答生成装置100は、「無駄話嫌い」と判定されたユーザU01に対して、商品Aの短い広告を出力し、「無駄話好き」と判定されたユーザU02に対して、商品Aの長い広告を出力してもよい。
〔5−8.検索(3)〕
また、上述してきた応答生成装置100の検索部133は、位置情報を考慮した検索を行ってもよい。具体的には、検索部133は、判定部132によって判定されたユーザ特性を受け付けた際に、かかるユーザのユーザ端末10のGPS装置から位置情報を取得する。そして、検索部133は、広告入札装置40によって提示された広告データのうち、取得した位置情報と一致、または、取得した位置情報から所定の範囲内に所在する広告主の広告データを優先的に出力させる。なお、広告入札装置40は、広告主から希望する広告配信場所を受け付けておき、検索部133によって取得された位置情報とのマッチングを行うことにより、検索部133は、マッチングで得られた広告データを出力制御部134に出力してもよい。また、対応する広告データが複数存在する場合には、検索部133は、その中から入札単価の高いものを優先して出力させてもよいし、かかるユーザが無駄話好きであれば、複数の広告データを順に出力させてもよい。
〔5−9.追加情報〕
また、上述してきた応答生成装置100の検索部133は、ユーザ属性に基づいて、所定の追加情報を生成し、検索によって得られた広告データと共に出力させてもよい。例えば、検索部133は、判定部132からユーザの性格を取得した際に、かかるユーザのユーザ属性として年齢を所定の記憶部から取得する。そして、検索部133は、そのユーザが高齢である場合には、検索によって得られた広告データに関する詳細な説明を生成し、広告データと共に出力させてもよい。
また、検索部133は、ユーザ属性として趣味や関心を取得し、検索によって得られた広告データが、その趣味や関心と関係が深ければ、その広告データに関する追加情報を生成し、広告データと共に出力させてもよい。なお、検索部133は、予め広告主から受け付けている各種情報(例えば、製品情報等)に基づいて、追加情報を生成してもよいし、関連するウェブページから取得した情報に基づいて生成してもよい。
これにより、応答生成装置100は、ユーザに対して広告情報への関心を高めることができるので、広告効果を高めることができる。なお、検索部133は、このような情報の追加を、判定部132によって無駄話好きと判定されたユーザにのみ行ってもよいし、例えば、上述したようにユーザが高齢であれば、判定部132によって判定されたユーザ特性に関係なく情報を追加してもよい。
また、応答生成装置100は、他の情報を用いて、ユーザの会話の傾向を特定してもよい。例えば、スマートデバイス等近年のユーザ端末10は、利用者の筋電(EMG:electromyography)、目の動き、心拍数、汗の量等の生態情報を取得することができる。このため、応答生成装置100は、ユーザ端末10が利用者から取得した生態情報を考慮して、利用者の会話の傾向を特定してもよい。例えば、応答生成装置100は、利用者の心拍数が多い場合、筋電の電位が上昇した場合、目が所定の方向を見ている場合には、うそをついていると判定し、一連の会話の流れにうそが含まれているものとして、会話の傾向を特定してもよい。また、応答生成装置100は、汗の量が所定の閾値よりも多い場合は、せっかちであると判定してもよい。すなわち、応答生成装置100は、ユーザの会話の傾向を特定することができるのであれば、利用者に関連する任意の情報を用いることができる。なお、応答生成装置100は、上述した任意の情報に基づいて、ユーザの会話の傾向を動的に特定してもよく(例えば、会話が進むたびに特定しなおす)、静的に特定してもよい(例えば、所定の会話が行われた際に特定する)。
〔5−10.装置構成〕
上記実施形態では、応答生成装置100と広告入札装置40とが個々に存在する例を示したが、応答生成装置100と広告入札装置40とが一体化されていてもよい。この場合、応答生成装置100は、広告入札装置40の広告情報記憶部42と、入札受付部44と、提示部45とを有する。
〔5−11.ユーザ端末以外の例〕
上記実施形態では、ユーザはユーザ端末10を用いて、応答生成装置100と会話を行う例を示した。しかし、ユーザ端末10の有する応答生成装置100との対話機能が、会話を行うロボットに搭載されていてもよい。これにより、かかるロボットがユーザに代わって応答生成装置100と会話を行うことが実現できる。
〔5−12.プログラム〕
また、上述してきた各実施形態にかかる応答生成装置100は、例えば図9に示すような構成のコンピュータ1000によって実現される。以下、応答生成装置100を例に挙げて説明する。図9は、応答生成装置100の機能を実現するコンピュータ1000の一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、通信網50を介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータを、通信網50を介して他の機器へ送信する。
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを、入出力インターフェイス1600を介して出力装置へ出力する。
メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ1000が実施形態にかかる応答生成装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部130の機能を実現する。また、HDD1400には、判定情報記憶部120内のデータが格納される。コンピュータ1000のCPU1100は、これらのプログラムを、記録媒体1800から読み取って実行するが、他の例として、他の装置から、通信網50を介してこれらのプログラムを取得してもよい。
〔5−13.その他〕
上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上述してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔6.効果〕
上述してきたように、実施形態にかかる応答生成装置100は、判定部132と、出力制御部134とを有する。判定部132は、対話エージェントシステムとユーザとの会話の進め方の傾向を判定する。出力制御部134は、判定部132によって判定された会話の進め方の傾向に応じた応答メッセージを出力するよう制御する。
これにより、実施形態にかかる応答生成装置100は、ユーザの特性に応じた応答メッセージを検索し、出力制御することができるため、会話におけるユーザの満足度を高めることができる。例えば、応答生成装置100は、無駄話嫌いな特性を有するユーザに対しては、話題が切り替わらないように会話の文脈に応じた応答メッセージを出力制御することができ、無駄話好きな特性を有するユーザに対しては、あえて会話の文脈から外れた応答メッセージを出力制御することにより会話の質を高めることができる。
また、実施形態にかかる検索部133は、判定部132によって判定された会話の進め方の傾向に基づく検索範囲で、応答メッセージとして出力する広告情報を検索する。
これにより、実施形態にかかる応答生成装置100は、ユーザの特性に応じた応答メッセージを検索することができる。
また、実施形態にかかる検索部133は、判定部132によってユーザとの話題が切り替わりやすい傾向にあると判定された場合には、判定部132によってユーザとの話題が切り替わりにくい傾向にあると判定された場合よりも広告情報の検索範囲を広げる。
これにより、応答生成装置100は、会話におけるユーザの満足度を高めることができる。例えば、応答生成装置100は、話題が切り替わりにくく、無駄話嫌いな特性を有するユーザに対しては、会話の文脈に応じた応答メッセージを出力制御することができ、話題が切り替わりやすく、無駄話好きな特性を有するユーザに対しては、あえて会話の文脈から外れた応答メッセージを出力制御することにより会話の質を高めることができる。
また、実施形態にかかる検索部133は、判定部132によってユーザとの話題が切り替わりやすい傾向にあると判定された場合に、メッセージが所定値より長い広告情報を広告情報の検索範囲に含める。
これにより、実施形態にかかる応答生成装置100は、会話におけるユーザの満足度を高めることができる。つまり、話題が切り替わりやすい傾向にあるユーザは、無駄話が好きであると考えられるので、応答生成装置100は、あえてメッセージが所定値より長い広告情報を出力制御することにより、会話の質を高めることや、会話自体を盛り上げることができ、無駄話が好きなユーザの満足度を高めることができる。
また、実施形態にかかる検索部133は、判定部132によってユーザとの話題が切り替わりにくい傾向にあると判定された場合に、メッセージが所定値より長い広告情報を前記広告情報の検索範囲から除外する。
これにより、実施形態にかかる応答生成装置100は、会話におけるユーザの満足度を高めることができる。つまり、話題が切り替わりにくい傾向にあるユーザは、無駄話が嫌いであると考えられるので、応答生成装置100は、メッセージが所定値より長い広告情報を出力制御することにより、不快感を与えてしまうことがない。
また、実施形態にかかる出力制御部134は、所定の入力メッセージに関するノードと所定の応答メッセージに関するノードとが関連付けられた判定情報に基づいて選択された応答メッセージを出力させ、判定部132は、ユーザとの会話におけるノードの使用経過に基づいて、当該ユーザとの会話の進め方の傾向を判定する。
これにより、実施形態にかかる応答生成装置100は、会話の内容を把握しなくとも、会話の流れだけでユーザの特性を判定することができる。
また、実施形態にかかる判定部132は、ユーザとの会話において各ノードが使用された回数に基づいて、ユーザとの会話の進め方の傾向を判定する。
これにより、実施形態にかかる応答生成装置100は、会話の進め方の傾向を判定することができる。このため、応答生成装置100は、会話の進め方の傾向に応じたユーザの特性を判定することができる。
また、実施形態にかかる判定部132は、いずれかのノードが使用された回数が所定値を超える場合に、ユーザとの話題が切り替わりやすいと判定する。
これにより、実施形態にかかる応答生成装置100は、会話の進め方の傾向を判定することができる。このため、応答生成装置100は、会話の進め方の傾向に応じたユーザの特性を判定することができる。
また、実施形態にかかる判定部132は、ユーザとの会話において使用されたノードの総数に基づいて、ユーザとの会話の進め方の傾向を判定する。
これにより、実施形態にかかる応答生成装置100は、会話の進め方の傾向を判定することができる。このため、応答生成装置100は、会話の進め方の傾向に応じたユーザの特性を判定することができる。
また、実施形態にかかる判定部132は、出力制御部134によって応答メッセージが出力されてから新たな入力メッセージをユーザから受け付けるまでの時間に基づいて、ユーザとの会話の進め方の特性を判定する。
これにより、実施形態にかかる応答生成装置100は、会話の進め方の傾向を判定することができる。このため、応答生成装置100は、会話の進め方の傾向に応じたユーザの特性を判定することができる。
また、実施形態にかかる判定部132は、ユーザとの会話が終了するまでに要した時間に基づいて、前記ユーザとの会話の進め方の傾向を判定する。
これにより、実施形態にかかる応答生成装置100は、会話の進め方の傾向を判定することができる。このため、応答生成装置100は、会話の進め方の傾向に応じたユーザの特性を判定することができる。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、判定部は、特定手段や特定回路に読み替えることができる。