(57)【要約】      （修正有）【課題】ユーザの興味が高く、かつ重複しない話題を提供する。【解決手段】言語情報取得部２１が、ユーザの行動履歴を表す言語情報の形態素解析結果に基づいて、第１の名詞群を抽出する。情報抽出部が、第１の名詞群に関連する名詞からなる第２の名詞群を抽出し、第２の名詞群に含まれる名詞の各々について、素性を抽出する。トピックモデル生成部が、抽出された素性に基づいて、トピックモデル処理に従って、複数のトピックを生成し、第２の名詞群に含まれる名詞の各々について、複数のトピックの各々での名詞の生起確率を算出する。トピック決定部が、トピックでの名詞の生起確率が上位の所定個の名詞を抽出し、抽出された所定個の名詞と、第３の名詞群との重複度を算出し、重複度が０より大きく、かつ１未満であるトピックのうち、少なくとも１つのトピックを、ユーザへ提供する話題として決定する。【選択図】図１
2015219583.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの行動履歴を表す言語情報の形態素解析結果に基づいて、前記言語情報に含まれる名詞からなる第１の名詞群を抽出する言語情報取得手段と、
前記言語情報取得手段によって抽出された前記第１の名詞群に関連する名詞からなる第２の名詞群を抽出し、前記第２の名詞群に含まれる前記名詞の各々について、前記名詞と前記第１の名詞群に関連する文書における前記名詞の出現回数との組み合わせを素性として抽出する情報抽出手段と、
前記情報抽出手段によって抽出された前記素性に基づいて、トピックモデル処理に従って、複数のトピックを生成し、前記第２の名詞群に含まれる前記名詞の各々について、前記複数のトピックの各々での前記名詞の生起されやすさを示す生起確率を算出するトピックモデル生成手段と、
前記トピックモデル生成手段によって生成された前記複数のトピックの各々について、前記トピックでの前記名詞の生起確率が上位の所定個の前記名詞を抽出し、抽出された前記所定個の名詞と、前記ユーザの直近の行動履歴を表す言語情報の形態素解析結果に基づいて抽出された第３の名詞群との重複度を算出し、
前記重複度が０より大きく、かつ１未満である前記トピックのうち、少なくとも１つの前記トピックを、前記ユーザへ提供する話題として決定するトピック決定手段と、
を含む話題決定装置。
【請求項２】
前記情報抽出手段は、前記第１の名詞群に含まれる前記名詞の各々について、前記名詞を検索キーワードとし、複数の文書が格納された知識ベースから、前記検索キーワードを含む文書を検索し、前記名詞の各々について前記検索された文書の形態素解析結果に基づいて、前記第２の名詞群を抽出し、前記第２の名詞群に含まれる名詞の各々について、前記名詞と、前記名詞の各々について前記検索された文書における前記名詞の出現回数との組み合わせを素性として抽出する
請求項１記載の話題決定装置。
【請求項３】
前記ユーザの行動履歴を表す言語情報は、前記ユーザが発話した音声の音声認識結果、及び前記ユーザによるテキスト入力された文書の少なくとも１つである
請求項１又は請求項２記載の話題決定装置。
【請求項４】
請求項１〜請求項３の何れか１項記載の話題決定装置によって前記話題として決定された前記トピックでの前記名詞の生起確率が上位の所定個の名詞と、前記第３の名詞群とを用いた検索クエリに基づいて、複数の発話候補が格納された発話候補データベースから、発話候補を検索する発話候補検索手段と、
前記発話候補検索手段によって検索された発話候補の各々について、前記発話候補の重要度を算出し、前記重要度が最大となる前記発話候補を、前記ユーザに提示する発話として決定する発話決定手段と、
を含む発話装置。
【請求項５】
言語情報取得手段、情報抽出手段、トピックモデル生成手段、及びトピック決定手段を含む話題決定装置における話題決定方法であって、
前記言語情報取得手段が、ユーザの行動履歴を表す言語情報の形態素解析結果に基づいて、前記言語情報に含まれる名詞からなる第１の名詞群を抽出するステップと、
前記情報抽出手段が、前記言語情報取得手段によって抽出された前記第１の名詞群に関連する名詞からなる第２の名詞群を抽出し、前記第２の名詞群に含まれる前記名詞の各々について、前記名詞と前記第１の名詞群に関連する文書における前記名詞の出現回数との組み合わせを素性として抽出するステップと、
前記トピックモデル生成手段が、前記情報抽出手段によって抽出された前記素性に基づいて、トピックモデル処理に従って、複数のトピックを生成し、前記第２の名詞群に含まれる前記名詞の各々について、前記複数のトピックの各々での前記名詞の生起されやすさを示す生起確率を算出するステップと、
前記トピック決定手段が、前記トピックモデル生成手段によって生成された前記複数のトピックの各々について、前記トピックでの前記名詞の生起確率が上位の所定個の前記名詞を抽出し、抽出された前記所定個の名詞と、前記ユーザの直近の行動履歴を表す言語情報の形態素解析結果に基づいて抽出された第３の名詞群との重複度を算出し、
前記重複度が０より大きく、かつ１未満である前記トピックのうち、少なくとも１つの前記トピックを、前記ユーザへ提供する話題として決定するステップと、
を含む話題決定方法。
【請求項６】
発話候補検索手段、及び発話決定手段を含む発話装置における発話方法であって、
発話候補検索手段が、請求項５記載の話題決定方法によって前記話題として決定された前記トピックでの前記名詞の生起確率が上位の所定個の名詞と、前記第１の名詞群とを用いた検索クエリに基づいて、複数の発話候補が格納された発話候補データベースから、発話候補を検索するステップと、
発話決定手段が、前記発話候補検索手段によって検索された発話候補の各々について、前記発話候補の重要度を算出し、前記重要度が最大となる前記発話候補を、前記ユーザに提示する発話として決定するステップと、
を含む発話方法。
【請求項７】
コンピュータに、請求項１〜請求項３の何れか１項記載の話題決定装置の各手段として機能させるためのプログラム。
【請求項８】
コンピュータに、請求項４記載の発話装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、話題決定装置、発話装置、方法、及びプログラムに係り、特に、話題を決定する話題決定装置、発話装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
音声やテキストを入出力として、ユーザと対話を行う対話エージェントシステムでは、ユーザの発話内容に応じた返答をシステムが自動的に生成する。ユーザの発話に返答する対話エージェントシステムの基本構成を図８に示す。ユーザの対話エージェントにする発話（ユーザ発話）に対して、ユーザ発話内容理解部では、発話内容の理解、分析を行う。対話管理部では、ユーザ発話に対する対話エージェントの返答方針を決定する。エージェント発話生成部で、発話候補ＤＢ（データベース）から、返答方針に最もふさわしい発話を検索し、文末変換等の加工を行い対話エージェントの返答発話を生成している。
【０００３】
例えば、特許文献１では、（１）ユーザの発話内容を解析し、ユーザ発話の意味内容を示す発話行為タイプを求め、（２）対話行為タイプに応じた対話行為タイプ列を自己開示および共感の対話行為を行う生起確率に従って選択することで対話行為列を生成し、（３）対話行為列を自然な文章に変換することで、雑談などの社会的な対話を行う対話装置を実現している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０-１４０２８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、対話エージェントが先に発話を行う場合や、話題を切り替える発話を行う際には、ユーザの発話を受けた返答ではなく、対話エージェント自身が、ユーザが興味を持ちそうな話題についての発話を能動的に行う必要がある。多数存在する発話候補の中から、ユーザが興味を持つ話題を判定し、その話題に関連する発話を選択することは困難である。
【０００６】
そのため、初発話時には「こんにちは」などの挨拶文や、「今日はどうしましたか？」などのユーザに話題提供を促す発話を行い、話題切り替え時には、ユーザの興味を考慮せず、ランダムに発話を選択する等の手法で発話を行っていた。提供した話題がユーザにとって興味が薄い、または苦手なものであると、ユーザの対話満足度の低下を招き、対話を途中で打ち切られてしまうなどの問題が発生していた。
【０００７】
また、対話エージェントが任意のタイミングでユーザに話しかけた場合、それがユーザにとって興味のある話題でないと、ユーザの返答がもらえない可能性が高く、「こんにちは」などの挨拶発話においても、度々繰り返すことでマンネリ化し、ユーザが何も反応を示さなくなる。
【０００８】
以上から、ユーザとの対話が継続するようにユーザの興味を推定し、それに基づく発話を能動的に行うことは、対話エージェントにとっての課題となっている。
【０００９】
本発明は、上記の事情を鑑みてなされたもので、ユーザの興味が高く、かつ重複しない話題を提供することができる話題決定装置、発話装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の目的を達成するために本発明に係る話題決定装置は、ユーザの行動履歴を表す言語情報の形態素解析結果に基づいて、前記言語情報に含まれる名詞からなる第１の名詞群を抽出する言語情報取得手段と、前記言語情報取得手段によって抽出された前記第１の名詞群に関連する名詞からなる第２の名詞群を抽出し、前記第２の名詞群に含まれる前記名詞の各々について、前記名詞と前記第１の名詞群に関連する文書における前記名詞の出現回数との組み合わせを素性として抽出する情報抽出手段と、前記情報抽出手段によって抽出された前記素性に基づいて、トピックモデル処理に従って、複数のトピックを生成し、前記第２の名詞群に含まれる前記名詞の各々について、前記複数のトピックの各々での前記名詞の生起されやすさを示す生起確率を算出するトピックモデル生成手段と、前記トピックモデル生成手段によって生成された前記複数のトピックの各々について、前記トピックでの前記名詞の生起確率が上位の所定個の前記名詞を抽出し、抽出された前記所定個の名詞と、前記ユーザの直近の行動履歴を表す言語情報の形態素解析結果に基づいて抽出された第３の名詞群との重複度を算出し、前記重複度が０より大きく、かつ１未満である前記トピックのうち、少なくとも１つの前記トピックを、前記ユーザへ提供する話題として決定するトピック決定手段と、を含んで構成されている。
【００１１】
本発明に係る話題決定方法は、言語情報取得手段、情報抽出手段、トピックモデル生成手段、及びトピック決定手段を含む話題決定装置における話題決定方法であって、前記言語情報取得手段が、ユーザの行動履歴を表す言語情報の形態素解析結果に基づいて、前記言語情報に含まれる名詞からなる第１の名詞群を抽出するステップと、前記情報抽出手段が、前記言語情報取得手段によって抽出された前記第１の名詞群に関連する名詞からなる第２の名詞群を抽出し、前記第２の名詞群に含まれる前記名詞の各々について、前記名詞と前記第１の名詞群に関連する文書における前記名詞の出現回数との組み合わせを素性として抽出するステップと、前記トピックモデル生成手段が、前記情報抽出手段によって抽出された前記素性に基づいて、トピックモデル処理に従って、複数のトピックを生成し、前記第２の名詞群に含まれる前記名詞の各々について、前記複数のトピックの各々での前記名詞の生起されやすさを示す生起確率を算出するステップと、前記トピック決定手段が、前記トピックモデル生成手段によって生成された前記複数のトピックの各々について、前記トピックでの前記名詞の生起確率が上位の所定個の前記名詞を抽出し、抽出された前記所定個の名詞と、前記ユーザの直近の行動履歴を表す言語情報の形態素解析結果に基づいて抽出された第３の名詞群との重複度を算出し、前記重複度が０より大きく、かつ１未満である前記トピックのうち、少なくとも１つの前記トピックを、前記ユーザへ提供する話題として決定するステップと、を含んで構成されている。
【００１２】
本発明における前記情報抽出手段は、前記第１の名詞群に含まれる前記名詞の各々について、前記名詞を検索キーワードとし、複数の文書が格納された知識ベースから、前記検索キーワードを含む文書を検索し、前記名詞の各々について前記検索された文書の形態素解析結果に基づいて、前記第２の名詞群を抽出し、前記第２の名詞群に含まれる名詞の各々について、前記名詞と、前記名詞の各々について前記検索された文書における前記名詞の出現回数との組み合わせを素性として抽出するようにすることができる。
【００１３】
本発明の前記ユーザの行動履歴を表す言語情報は、前記ユーザが発話した音声の音声認識結果、及び前記ユーザによるテキスト入力された文書の少なくとも１つであるようにすることができる。
【００１４】
本発明に係る発話装置は、上記の話題決定装置によって前記話題として決定された前記トピックでの前記名詞の生起確率が上位の所定個の名詞と、前記第３の名詞群とを用いた検索クエリに基づいて、複数の発話候補が格納された発話候補データベースから、発話候補を検索する発話候補検索手段と、前記発話候補検索手段によって検索された発話候補の各々について、前記発話候補の重要度を算出し、前記重要度が最大となる前記発話候補を、前記ユーザに提示する発話として決定する発話決定手段と、を含んで構成されている。
【００１５】
本発明に係る発話方法は、発話候補検索手段、及び発話決定手段を含む発話装置における発話方法であって、発話候補検索手段が、上記の話題決定方法によって前記話題として決定された前記トピックでの前記名詞の生起確率が上位の所定個の名詞と、前記第１の名詞群とを用いた検索クエリに基づいて、複数の発話候補が格納された発話候補データベースから、発話候補を検索するステップと、発話決定手段が、前記発話候補検索手段によって検索された発話候補の各々について、前記発話候補の重要度を算出し、前記重要度が最大となる前記発話候補を、前記ユーザに提示する発話として決定するステップと、を含んで構成されている。
【００１６】
本発明の第１のプログラムは、コンピュータに、本発明の話題決定装置の各手段として機能させるためのプログラムである。
【００１７】
本発明の第２のプログラムは、コンピュータに、本発明の発話装置の各手段として機能させるためのプログラムである。
【発明の効果】
【００１８】
以上説明したように、本発明の話題決定装置、発話装置、方法、及びプログラムによれば、ユーザの行動履歴を表す言語情報の形態素解析結果に基づいて、言語情報に含まれる名詞からなる第１の名詞群を抽出し、第１の名詞群に関連する名詞からなる第２の名詞群を抽出し、第２の名詞群に含まれる名詞の各々について、当該名詞と第１の名詞群に関連する文書における当該名詞の出現回数との組み合わせを素性として抽出し、抽出された素性に基づいて、トピックモデル処理に従って、複数のトピックを生成し、第２の名詞群に含まれる名詞の各々について、複数のトピックの各々での当該名詞の生起されやすさを示す生起確率を算出し、複数のトピックの各々について、当該トピックでの名詞の生起確率が上位の所定個の名詞を抽出し、抽出された所定個の名詞と、ユーザの直近の行動履歴を表す第３の名詞群との重複度を算出し、重複度が０より大きく、かつ１未満であるトピックのうち、少なくとも１つのトピックを、ユーザへ提供する話題として決定することにより、ユーザの興味が高く、かつ重複しない話題を提供することができる、という効果が得られる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施の形態に係る発話装置の構成を示す概略図である。
【図２】本発明の実施の形態に係る発話装置における発話内容学習部の詳細を示す概略図である。
【図３】本発明の実施の形態に係る発話装置における発話選択部の詳細を示す概略図である。
【図４】発話候補検索部における発話候補検索の一例を示す図である。
【図５】本発明の実施の形態に係る発話装置におけるトピックモデル生成処理ルーチンの内容を示すフローチャートである。
【図６】本発明の実施の形態に係る発話装置における発話決定処理ルーチンの内容を示すフローチャートである。
【図７】本発明の実施の形態に係る発話装置の処理の一例を示す図である。
【図８】従来技術の処理内容の一例を示す図である。
【発明を実施するための形態】
【００２０】
＜概要＞
本発明の実施の形態では、ユーザと対話を行う対話エージェントシステムにおける発話装置に、本発明を適用させた場合を例に説明する。本発明の実施の形態に係る発話装置は、ユーザの過去の発話やライフログ等に残した行動履歴情報から得られる言語情報に基づいて、ユーザの興味を話題毎に分類する。そして、発話装置は、“ユーザが興味を持つ可能性が高く”かつ“過去の対話エージェントとの対話内容と同じではないが関連性がある”話題を選択し、この話題に関連する発話内容をデータベースから抽出する。対話エージェントは、発話装置によって抽出された発話について、当該ユーザへ能動的に発話を行い、話題を提供する。
【００２１】
本発明の実施の形態に係る発話装置は、ユーザとの対話状態以外の待機状態（スリープ）中に、過去のユーザ発話や、ライフログ等から収集したユーザの行動に基づく単語（名詞形態素：名詞にはサ変動詞の語幹を含む）集合を元に、知識ベース検索による当該単語周辺情報を取得し、トピックモデルを用いた話題のクラスタリングにより、ユーザの興味に関連する話題についての学習処理と分類処理とを行う。具体的には、本発明の実施の形態では、保存されているライフログ情報中に含まれるＧＰＳから取得した地名や、Ｗｅｂテキストなどの言語情報を用いて、ユーザの興味について学習し、次回対話時に反映させることで、発話候補からユーザが興味を持つ可能性の高い話題に関する発話を選択する。
【００２２】
そして、学習処理で生成した各トピックについて、トピック中の生起確率の上位語と、ユーザが過去に生成した言語情報中の単語集合との重複度（０〜１の範囲の値）を算出し、ユーザの過去の発話内容等と全く同じ（重複度が１）でも、全く異なる話題（重複度が０）でもないトピックを選択し、当該トピックに属する単語及びユーザが過去に生成した言語情報に含まれる単語を用いて、対話エージェントが発話を行う発話候補の検索を行う。
【００２３】
また、本発明の実施の形態に係る発話装置は、各発話候補を文書のスコアリング手法を用いてスコア付けし、例えば、最もスコアが高かった発話候補を、対話エージェントが実際に行う発話に決定し、当該ユーザへの対話として出力する。
【００２４】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００２５】
＜発話装置の構成＞
本発明の実施の形態に係る発話装置１００は、話題を決定し、決定された話題に基づいて発話を決定する。発話装置１００は、ＣＰＵと、ＲＡＭと、後述するトピックモデル生成処理ルーチン及び発話決定処理ルーチンを実行するためのプログラムを記憶したＲＯＭとを備えたコンピュータで構成され、機能的には次に示すように構成されている。図１に示すように、発話装置１００は、入力部１０と、演算部２０と、出力部３０とを備えている。
【００２６】
入力部１０は、ユーザと対話エージェントとの対話中に、ユーザの行動履歴を表す言語情報の入力として、ユーザの発話の文字列を受け付ける。ユーザの発話の文字列は、ユーザの音声の音声認識結果、又はユーザによって作成されたテキスト入力から得られる。
【００２７】
また、入力部１０は、更に、ユーザの行動履歴を表す言語情報の入力として、例えば、ユーザが訪問した場所の地名や店舗名、ユーザが利用した交通機関名、ユーザが閲覧したＷｅｂページ、ユーザが視聴したテレビ番組の番組名や番組紹介文、ユーザがＷｅｂから購入した商品の商品名などを示すライフログ情報を逐次受け付ける。
【００２８】
演算部２０は、言語情報取得部２１と、ＴＭＰユーザ単語データベース２２と、ＡＬＬユーザ単語データベース２３と、発話内容学習部２４と、トピックデータベース２５と、発話選択部２６とを備えている。
【００２９】
言語情報取得部２１は、入力部１０によって受け付けたユーザの行動履歴を表す言語情報の形態素解析結果に基づいて、言語情報に含まれる名詞を抽出する。言語情報取得部２１は、発話内容抽出部２１０と、ライフログ情報取得部２１２とを備えている。
【００３０】
発話内容抽出部２１０は、入力部１０によってユーザの行動履歴を表す言語情報として受け付けたユーザの発話の文字列に対して、形態素解析を行う。形態素解析とは、日本語の文章を意味の最小単位となるように分割することである。ここで、形態素解析器（発話内容抽出部２１０に含まれる）の辞書（図示省略）には、後述する情報抽出部２４２で使用する知識ベース２４０の見出し語を登録しておく。また、発話内容抽出部２１０は、形態素解析結果に基づいて、名詞（形態素解析器の品詞体系の最上位のみ参照）と判定された形態素（名詞形態素）を、ユーザの発話内容の一時格納領域であるＴＭＰユーザ単語データベース２２に格納する。なお、以下では、名詞形態素を単に「名詞」と称する。また、ＴＭＰユーザ単語データベース２２、ＡＬＬユーザ単語データベース２３、及びトピックデータベース２５の３つのデータベースは、１ユーザにつき各１個ずつ用意される。
【００３１】
ライフログ情報取得部２１２は、入力部１０によってユーザの行動履歴を表す言語情報として受け付けたライフログ情報から、名詞の各々を抽出する。
【００３２】
具体的には、ライフログ情報取得部２１２は、入力部１０によってユーザの行動履歴を表す言語情報として受け付けたライフログ情報に対して、発話内容抽出部２１０と同様に、形態素解析を行って名詞を抽出し、抽出された名詞を、ＡＬＬユーザ単語データベース２３へ格納する。
【００３３】
例えば、ライフログ情報取得部２１２は、ユーザの行動履歴を表す言語情報として、ユーザの携帯端末のＧＰＳの緯度経度情報から地名を取得したり、または、ユーザが閲覧したＷｅｂページを形態素解析し、名詞を抽出する等の処理を行い、言語情報に含まれる名詞を抽出する。
【００３４】
ＴＭＰユーザ単語データベース２２には、発話内容抽出部２１０によってユーザの直近のユーザ発話から抽出された名詞からなる第３の名詞群が格納される。ＴＭＰユーザ単語データベース２２に格納された名詞のデータは、ユーザと対話エージェントとの次回の対話の開始後に、ユーザが最初に発話した時点で初期化され、前回の対話中に格納された名詞のデータは全て消去される。
従って、ユーザと対話エージェントとの対話が開始された後、対話エージェントから初発話を行うときには前回のユーザの発話内容を表す名詞が、ＴＭＰユーザ単語データベース２２に格納されている。また、一方で、ユーザと対話エージェントとの対話中において、対話における話題切り替え時には、今回のユーザの初発話から現時点までのユーザの発話内容を表す名詞が、ＴＭＰユーザ単語データベース２２に格納されていることになる。
【００３５】
ＡＬＬユーザ単語データベース２３には、ＴＭＰユーザ単語データベース２２に格納されていた第３の名詞群の和集合と、ライフログ情報取得部２１２によって抽出された名詞の各々とからなる第１の名詞群が格納される。
【００３６】
具体的には、ユーザと対話エージェントとの対話が終了した後において、ＴＭＰユーザ単語データベース２２に格納されている名詞が、ＡＬＬユーザ単語データベース２３へ格納される。従って、ＡＬＬユーザ単語データベース２３には、これまでのユーザの発話の全てから収集された名詞が格納されている。なお、ＡＬＬユーザ単語データベース２３は、ＴＭＰユーザ単語データベース２２とは異なり、ユーザと対話エージェントとの対話の開始後には初期化されない。
【００３７】
発話内容学習部２４は、ユーザと対話エージェントとの対話の終了後から、次回の対話開始までの間（この間をスリープと称する。）に、ユーザの発話の内容について学習を行う。具体的には、発話内容学習部２４は、ＡＬＬユーザ単語データベース２３に格納された第１の名詞群に基づいて、当該ユーザが興味を持つ話題について学習したトピックモデルを生成する。
【００３８】
発話内容学習部２４は、まず、ユーザと対話エージェントとの対話終了後に、ＡＬＬユーザ単語データベース２３に格納されている第１の名詞群の入力を受け付け、第１の名詞群と関連する外部情報を取得する。なお、第１の名詞群には、ユーザが発話した内容を表す名詞と、ライフログ情報取得部２１２によって抽出された名詞とが含まれている。そして、発話内容学習部２４は、取得された外部情報に機械学習を適用することで、トピックモデルを生成する。
【００３９】
発話内容学習部２４の詳細な構成を図２に示す。発話内容学習部２４は、図２に示すように、知識ベース２４０と、情報抽出部２４２と、トピックモデル生成部２４４とを備えている。
【００４０】
知識ベース２４０には、記事を表す文書が格納されている。知識ベース２４０は、複数の文書が格納されたデータベースであり、文書を検索する知識ベースとしては、例えば、オンライン百科事典Ｗｉｋｉｐｅｄｉａ（商標登録）やブリタニカ・オンライン（商標登録）などを用いる。
【００４１】
情報抽出部２４２は、ＡＬＬユーザ単語データベース２３に格納された第１の名詞群に関連する名詞を含む第２の名詞群を抽出する。そして、情報抽出部２４２は、第２の名詞群に含まれる名詞の各々について、当該名詞と第１の名詞群に関連する文書における当該名詞の出現回数との組み合わせを素性として抽出する。
【００４２】
具体的には、情報抽出部２４２は、ＡＬＬユーザ単語データベース２３に格納された第１の名詞群に含まれる名詞を用いて、知識ベース２４０から、当該名詞を含む文書の検索を行う。より詳細には、情報抽出部２４２は、第１の名詞群に含まれる名詞の各々について、当該名詞を検索キーワードとし、知識ベース２４０から、検索キーワードを含む文書を検索する。例えば、情報抽出部２４２は、知識ベース２４０から、検索キーワードが見出しとなっている文書を取得する。そして、情報抽出部２４２は、名詞の各々について検索された文書の形態素解析結果に基づいて、第２の名詞群を抽出し、第２の名詞群に含まれる名詞の各々について、当該名詞と、検索された文書における当該名詞の出現回数との組み合わせを素性として抽出する。
【００４３】
ここで、知識ベース２４０から文書を取得する理由は、ユーザ自身の知識に基づく発話内容が狭く偏っていたり、あるいは事実と異なっている場合を想定し、客観的に把握できる事実や関連情報を広範囲に取得するためである。また、知識ベース２４０から文書を取得すれば、対話エージェントが利用可能な外部情報を定期的に更新して、選択可能なトピックを拡大することにも役立てることができる。
【００４４】
また、情報抽出部２４２は、知識ベース２４０から取得した文書に対して形態素解析を行い、形態素単位に分割し、当該名詞と文書における当該名詞の出現回数の組み合わせを素性として列挙した「Bag-of-words」モデルを作成する。作成されたモデルは、後述するトピックモデル生成部２４４でトピックモデルを生成するための入力として使用される。
【００４５】
トピックモデル生成部２４４は、情報抽出部２４２によって抽出された素性に基づいて、トピックモデル処理に従って、複数のトピックを生成し、第２の名詞群に含まれる名詞の各々について、複数のトピックの各々での当該名詞の生起されやすさを示す生起確率を算出する。トピックモデル生成部２４４は、情報抽出部２４２で取得したＷｉｋｉｐｅｄｉａ（登録商標）記事などの外部情報を利用し、トピックモデルの手法によって、ユーザの興味を分類したトピックを生成する。
【００４６】
トピックモデルとは文書中の単語の出現回数を特徴量として、文書と単語のクラスタリングを実現する機械学習のアルゴリズムである。トピックモデルによって生成されるトピックは単語の生起確率により表現され、同一のトピックには概念的に関連している複数の単語が高い生起確率を持って分類される。
【００４７】
例えば、学校関連のトピックであれば、「授業」、「先生」、「科目」などといった単語が高い生起確率を持って分類される。このようにトピックモデルを適用することで、複数の文書に記述されている情報を話題単位で整理することができる。トピックモデルにはＬＤＡ（Latent Dirichlet ALLocation）などの手法があるが、本発明の実施の形態では、トピックモデルの具体的な手法については限定しない。
【００４８】
トピックモデルにより生成される、ユーザの興味を分類したトピック数Ｎｕｍ＿Ｔｏｐｉｃｓは以下の式（１）、及び以下の条件（２）により設定される。ここで、ＮALLｕｔｔはＡＬＬユーザ単語データベース２３に格納されている名詞の総数を指す。条件式により、ＮALLｕｔｔ＜６の場合はトピック生成を行わないこととする。また、ＮALLｕｔｔ＞１００となる場合は、Ｎｕｍ＿Ｔｏｐｉｃｓ＝５０と設定する。
【００４９】
【数１】
2015219583.tif 000003
【００５０】
トピックモデル生成部２４４によって、ＡＬＬユーザ単語データベース２３に格納された第１の名詞群に基づいて取得した外部情報の「Bag-of-words」から、ユーザの興味を分類したトピックが生成される。
【００５１】
トピックデータベース２５には、トピックモデル生成部２４４によって生成された複数のトピックが格納される。トピックデータベース２５に格納された各トピックは、名詞の生起確率分布で表現されている。
【００５２】
発話選択部２６は、対話エージェントがユーザに対して最初の一言を発話する初発話、又は話題を切り替える際の発話を決定する。
具体的には、発話選択部２６は、ユーザと対話エージェントとの対話が開始された後、対話エージェントが最初の発話（初発話）を行う際、又は話題を切り替える発話を行う際に、ＴＭＰユーザ単語データベース２２に格納された第３の名詞群と、トピックデータベース２５に格納された複数のトピックとを参照し、発話を決定し発話を行う。
ここで話題を切り替えるタイミングとしては、例えば対話エージェントとユーザとの対話が一定時間（例えば３分間）以上継続した後に、ユーザが一定時間（例えば３０秒以上）沈黙したタイミングを利用する。
【００５３】
発話選択部２６の詳細な構成を図３に示す。発話選択部２６は、図３に示すように、トピック決定部２６０と、発話候補データベース２６２と、発話候補検索部２６４と、発話決定部２６６とを備えている。
【００５４】
トピック決定部２６０は、トピックデータベース２５に格納された複数のトピックの各々について、当該トピックでの名詞の生起確率が上位の所定個の名詞を抽出し、抽出された所定個の名詞と、ＴＭＰユーザ単語データベース２２に格納された第３の名詞群との重複度を算出する。そして、トピック決定部２６０は、重複度が０より大きく、かつ１未満であるトピックのうち、少なくとも１つのトピックを、ユーザへ提供する話題として決定する。トピック決定部２６０では、発話内容学習部２４で生成した複数のトピックから、後述する発話候補データベース２６２の検索で使用するトピックを決定する。
【００５５】
トピックデータベース２５に格納された各トピックは、外部情報として知識ベース２４０から取得した名詞の生起確率で表現されている。例えば、トピック決定部２６０は、まず、各トピックから生起確率の高い上位２０語を抽出する。次にトピック決定部２６０は、抽出した２０語と、ＴＭＰユーザ単語データベース２２に格納されている第３の名詞群とを比較し、語の重複度を計算する。重複度Ｒａｔｅｄｕｐｌｉｃａｔｉｏｎは以下の式（３）に示す通りである。このとき、単語集合Ｚはあるトピックｚの上位２０語の集合Ｚ＝｛ｗ０，ｗ１，... ，ｗ１９｝であり、ユーザ単語集合ＵはＴＭＰユーザ単語データベース２２に格納されている全Ｍ個の名詞の集合Ｕ＝｛ｗ'０，ｗ'１，... ，ｗ'Ｍ−１｝である。
【００５６】
【数２】
2015219583.tif 000004
【００５７】
そして、トピック決定部２６０は、トピックデータベース２５に格納されたトピックの各々について、重複度を計算し、重複度が０の近傍ではなく、かつ１の近傍でもない値を取る範囲のトピックを選択する。
【００５８】
ここで、重複度が０に近いトピックとは、ユーザにとって未知の名詞のみで構成されるトピックのため、ユーザの興味と一致しない可能性が高い。また、重複度が１に近いトピックとは、ユーザの前回の発話で既に出現している名詞が頻出しやすいトピックとなるため、ユーザにとって目新しさのない話題である可能性が高い。
【００５９】
そこで、トピック決定部２６０は、重複度が０の近傍でもなく、かつ１の近傍でもないトピックを選択することで、“ユーザが興味を持つ可能性が高く”かつ“過去の対話エージェントとの対話内容と同じではないが関連性がある”話題に関するトピックが選択できるようになる。
【００６０】
ここで、重複度が０にも１にも近くない値としては、例えば、重複度が０．４から０．８の範囲となる。また、トピック決定部２６０は、抽出したトピックの中からランダムで一つのトピックを選択し、後述する発話候補検索部２６４での検索に使用するトピックを決定する。ランダムでトピックを決定するのは、対話の度に出来る限り異なる話題についての発話を行うようにするためであるが、従来手法にあったような純粋にランダムに選択した場合よりは、ユーザの興味のある話題を含む発話が選択される可能性を高めている。
【００６１】
なお、例えば、全トピックの重複度が、設定した範囲の最低値より小さい場合は重複度が最大のトピックを、最大値より大きい場合は重複度が最小となるトピックを選択する。最終的に選択されたトピックを、以後トピックｚで表す。
【００６２】
発話候補データベース２６２には、複数の発話候補が格納されている。例えば、発話候補データベース２６２は、対話エージェントが発話する発話の文そのものが、テキスト形式で格納されているデータベースである。発話候補データベース２６２には、マイクロブログの投稿記事などＷｅｂ上に公開されている様々な発話の文書集合を、キーワード一致により全文検索可能にしたものや、上記特許文献１の手順により生成された発話集合を、同様に全文検索可能にしたものが含まれる。
【００６３】
発話候補検索部２６４は、トピック決定部２６０によって話題として決定されたトピックでの名詞の生起確率が上位の所定個の名詞と、第３の名詞群とを用いた検索クエリに基づいて、発話候補データベース２６２から、発話候補を検索する。発話候補検索部２６４では、選択したトピックとＴＭＰユーザ単語データベース２２に格納された第３の名詞群を用いて、発話候補データベース２６２から、対話エージェントが次に発話すべき、発話の候補を検索する。発話候補検索部２６４で検索される発話の一例を図４に示す。
【００６４】
発話候補検索部２６４が行う検索処理では、トピック決定部２６０によって選択されたトピックｚにおいて、例えば、生起確率が高い上位２０語の単語集合と、ＴＭＰユーザ単語データベース２２に格納されている第３の名詞群を用い、どちらの集合からも最低でも１語は含まれる発話を検索する（上記の条件を満たす発話を検索できれば、検索手法は問わない）。
【００６５】
上記図４の例では、検索結果に“トマトは昔から好き”という発話があるが、これはＴＭＰユーザ単語データベース２２及びトピックｚのどちらにも“トマト”という名詞が含まれるため、検索の条件を満たすことになるためである。ＴＭＰユーザ単語データベース２２が空の場合は、トピックｚの名詞集合の中の任意の１語が含まれている発話を検索する。
【００６６】
発話候補検索部２６４では、“トピックｚ中の名詞と、ＴＭＰユーザ単語データベース２２に格納されている名詞とがどちらも使用されている発話”という条件を満たした発話を全て抽出している。発話間の順位付けは、後述する発話決定部２６６で行うため、発話候補検索部２６４では、スコア計算は行わない。
【００６７】
発話決定部２６６は、発話候補検索部２６４によって検索された発話候補の各々について、当該発話候補の重要度を算出し、重要度が最大となる発話候補を、ユーザに提示する発話として決定する。発話決定部２６６では、検索された発話候補の中から、対話エージェントが発話する発話を一つ決定する。発話決定部２６６では、発話候補検索部２６４で得た発話候補の中から、対話エージェントが発話する発話を一つ選択するため、各発話候補のスコアリングを行う。
【００６８】
以降はスコアリング手法の例として、ＴＦ・ＩＤＦを用いた場合を例に、発話決定について述べる。なお、文書を特徴付けるスコアを付与できる手法であれば、ＴＦ・ＩＤＦ以外の手法でも実現可能であるため、スコアリング手法については問わない。
【００６９】
ＴＦ・ＩＤＦは情報検索で用いられる文書スコアリングの手法である。ＴＦ・ＩＤＦでは、一文書中での単語の出現頻度によって評価するｔｆと、全文書中で特定の単語を含む文書数で評価するｉｄｆの積で求められる。
【００７０】
一般に、文書ｄにおける単語ｔのＴＦ・ＩＤＦは以下の式（４）で計算することができる。本発明の実施の形態では、文書ｄは発話候補中の一発話、単語ｔはその発話を形態素解析し得られた名詞に対応している。ここで、ｆｒｅｑ（ｔ，ｄ）は発話ｄ中の名詞ｔの出現回数である。｜Ｄ｜は発話候補の総数、｜｛ｄ：ｄ∋ｔ｝｜は名詞ｔが含まれる発話の総数を示している。また、ｋは発話ｄに含まれる任意の名詞を示す。
【００７１】
【数３】
2015219583.tif 000005
【００７２】
発話決定部２６６は、発話候補検索部２６４によって検索された全ての発話候補に対して、以下の式（５）に従って、ＴＦ・ＩＤＦのスコアを計算する。発話決定部２６６は、発話候補データベース２６２の検索に用いたトピックｚのトピック内の生起確率上位２０語を検索クエリとみなし、最終的な発話を決定するためのスコアリングを行う。ｔ０，ｔ１，...，ｔｎ−１までのｎ種類の名詞により構成される発話候補中の発話ｄ＝｛ｔ０，ｔ１，...，ｔｎ−１｝のスコアは以下の式で計算される。ここで、｛ｗ：ｗ∈ｚ∩ｄ｝は、トピックｚと発話ｄとのどちらにも含まれる名詞ｗの集合である。
【００７３】
【数４】
2015219583.tif 000006
【００７４】
発話決定部２６６は、例えば、上記式（５）のスコアが最も高い発話候補を、対話エージェントが発話する発話として決定する。
【００７５】
出力部３０は、発話決定部２６６によって決定された発話を出力する。
【００７６】
＜発話装置の作用＞
次に、本実施の形態に係る発話装置１００の作用について説明する。発話装置１００は、ユーザの興味を分類したトピックを生成するトピックモデル生成処理ルーチンと、生成されたトピックに基づいて、発話を決定する発話決定処理ルーチンとを実行する。
【００７７】
発話装置１００は、ユーザと対話エージェントとの対話が開始されると、発話決定処理ルーチンを実行する。次に、発話装置１００は、ユーザが最初に発話した時点でＴＭＰユーザ単語データベース２２に格納されたデータを初期化し、前回の対話中に格納された名詞のデータを全て消去する。そして、発話装置１００のユーザの発話内容抽出部２１０が、ユーザと対話エージェントとの対話中に、入力部１０によって受け付けたユーザの発話の文字列に含まれる名詞をＴＭＰユーザ単語データベース２２に格納する。ユーザと対話エージェントとの対話が終了すると、ＴＭＰユーザ単語データベース２２に格納された名詞（第３の名詞群）が、ＡＬＬユーザ単語データベース２３に格納される。また、発話装置１００のライフログ情報取得部２１２が、入力部１０によって逐次受け付けたライフログ情報から名詞の各々を抽出し、ＡＬＬユーザ単語データベース２３に格納する。
【００７８】
＜トピックモデル生成処理ルーチン＞
次に、発話装置１００によって、図５に示すトピックモデル生成処理ルーチンが実行される。
【００７９】
ステップＳ１００において、情報抽出部２４２によって、ＡＬＬユーザ単語データベース２３へ格納された第１の名詞群に含まれる名詞の各々について、当該名詞を検索キーワードとし、知識ベース２４０から、検索キーワードを含む文書を検索する。そして、情報抽出部２４２によって、検索キーワードの各々について検索された文書の各々に対し、当該文書の形態素解析結果に基づいて、第２の名詞群を抽出し、第２の名詞群に含まれる名詞の各々について、当該名詞と、検索された文書における当該名詞の出現回数との組み合わせを素性として抽出する。
【００８０】
ステップＳ１０２において、トピックモデル生成部２４４によって、上記ステップＳ１００で抽出された素性に基づいて、トピックモデル処理に従って、複数のトピックを生成し、第２の名詞群に含まれる名詞の各々について、複数のトピックの各々での当該名詞の生起されやすさを示す生起確率を算出する。
【００８１】
ステップＳ１０４において、トピックモデル生成部２４４によって、上記ステップＳ１０２で生成した複数のトピックを格納して、トピックモデル生成処理ルーチンを終了する。
【００８２】
＜発話決定処理ルーチン＞
次に、ユーザと対話エージェントとの対話が開始されると、発話装置１００によって、図６に示す発話決定処理ルーチンが実行される。
【００８３】
まず、ステップＳ２００において、トピック決定部２６０によって、トピックデータベース２５に格納された複数のトピックの各々について、当該トピックでの名詞の生起確率が上位の所定個の名詞を抽出し、抽出された所定個の名詞と、ＴＭＰユーザ単語データベース２２に格納された第３の名詞群との重複度を算出する。そして、トピック決定部２６０によって、重複度が０より大きく、かつ１未満であるトピックのうち、少なくとも１つのトピックを、ユーザへ提供する話題として決定する。
【００８４】
ステップＳ２０２において、発話候補検索部２６４によって、上記ステップＳ２００で話題として決定されたトピックでの名詞の生起確率が上位の所定個の名詞と、ＴＭＰユーザ単語データベース２２に格納された第３の名詞群とを用いた検索クエリに基づいて、発話候補データベース２６２から、発話候補を検索する。
【００８５】
ステップＳ２０４において、発話決定部２６６によって、上記ステップＳ２０２で検索された発話候補の各々について、当該発話候補の重要度を算出し、重要度が最大となる発話候補を、ユーザに提示する発話として決定する。
【００８６】
ステップＳ２０６において、出力部３０によって、上記ステップＳ２０４で決定された発話を出力して、発話決定処理ルーチンを終了する。
【００８７】
出力部３０によって出力された発話は、対話エージェントがユーザに対して最初の一言を発話する初発話、又は話題を切り替える際の発話として用いられる。
【００８８】
＜実施結果例＞
次に、本発明の実施の形態の入力と出力の例を図７に示す。図７は、ユーザと対話エージェントとの前回の対話のときにユーザが発した１０個の発話のみを元に、トピックモデルを作成し、その中のトピック２をもとに、対話エージェントの発話を生成した例である。
【００８９】
トピックにユーザが発していない名詞が含まれるのは、“トマト”など、ユーザの発話から取得した名詞で知識ベース２４０の記事を検索し、当該記事の情報からトピックを生成したためである。
【００９０】
前回のユーザ発話では、主にパスタに関する内容が中心に語られているが、ユーザと対話エージェントとの次回の対話のときの対話エージェントの初発話では、“トマト”といった名詞を含みながら、“野菜”を中心とした話題を“スープ”のように、前回の対話でユーザが発していない名詞も含めて提供している。
【００９１】
以上説明したように、本発明の実施の形態に係る発話装置によれば、ユーザの行動履歴を表す言語情報の形態素解析結果に基づいて、言語情報に含まれる名詞からなる第１の名詞群を抽出し、第１の名詞群に関連する名詞からなる第２の名詞群を抽出し、第２の名詞群に含まれる名詞の各々について、当該名詞と第１の名詞群に関連する文書における当該名詞の出現回数との組み合わせを素性として抽出し、抽出された素性に基づいて、トピックモデル処理に従って、複数のトピックを生成し、第２の名詞群に含まれる名詞の各々について、複数のトピックの各々での当該名詞の生起されやすさを示す生起確率を算出し、複数のトピックの各々について、当該トピックでの名詞の生起確率が上位の所定個の名詞を抽出し、抽出された所定個の名詞と、ユーザの直近の発話から抽出された名詞との重複度を算出し、重複度が０より大きく、かつ１未満であるトピックのうち、少なくとも１つのトピックを、ユーザへ提供する話題として決定することにより、ユーザの興味が高く、かつ重複しない話題を提供することができる。
【００９２】
また、対話エージェントはこれまでのユーザの発話内容などからユーザの興味を自動で推定し、“ユーザが興味を持つ可能性が高く”かつ“過去の対話エージェントとの対話内容と同じではないが関連性がある”話題に関する発話を能動的に行えるようになる。ユーザの興味をもとに新しい話題を提供できるので、対話中の話題切り替え時にも、ユーザの対話満足度の低下を抑え、より継続的な対話が実現できるようになる。
【００９３】
また、ユーザにとってみれば、ユーザ自身の興味に近く、かつ、いつも異なる話題を対話エージェントから提供してもらえるため、対話エージェントとの対話がマンネリ化せず、対話エージェント自体への満足度を向上させることができる効果がある。
【００９４】
また、対話エージェントはユーザの興味に基づいて、話題提供の発話を行うため、対話エージェントが任意のタイミングでユーザに向かって話しかけたとしても、ユーザの興味を外していないため、ユーザからの返答が返ってくる可能性が高くなる。そのため、現在よりも対話エージェントがユーザに積極的に話しかけることができるようになる。
【００９５】
また、見守りシステム等に、本発明の実施の形態を適用した対話エージェントを組み込むことで、例えば「毎日同じ時間にシステムがユーザに、興味のありそうなことについて話しかける機能」のような、見守り対象の状況をシステム側から確かめられるという効果が期待できる。
【００９６】
更に波及効果として、ユーザが対話エージェントを利用する回数が高まったり、利用時間が長時間化する傾向が生じる。その結果、ユーザから対話エージェントへの対話内容が増加し、対話エージェントがその対話内容を更に学習することで、対話エージェントはより多くの話題をユーザへ提供できる効果も期待できる。
【００９７】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【００９８】
例えば、本発明の実施の形態では、言語情報取得部２１、情報抽出部２４２、トピックモデル生成部２４４、トピック決定部２６０、発話候補検索部２６４、及び発話決定部２６６を１つの装置で構成する場合を例に説明したが、これに限定されるものではない。例えば、上記実施の形態における言語情報取得部２１、情報抽出部２４２、トピックモデル生成部２４４、及びトピック決定部２６０を備えた装置と、発話候補検索部２６４及び発話決定部２６６を備えた装置とを別々に構成してもよい。
【００９９】
また、本発明の実施の形態のＴＭＰユーザ単語データベース２２には、発話内容抽出部２１０によって抽出された発話に含まれる名詞が、ユーザの直近の行動履歴を表す第３の名詞群として格納される場合を例に説明したが、これに限定されるものではない。例えば、ライフログ情報取得部２１２によって、ユーザのライフログ情報を表す言語情報に対して形態素解析を行って得られた名詞を、ユーザの直近の行動履歴を表す第３の名詞群としてＴＭＰユーザ単語データベース２２に格納してもよい。ユーザの直近の行動履歴としては、例えば予め定められた期間内（例えば、現在から１週間前など）に取得されたライフログ情報を用いることができる。また、ユーザと対話エージェントとの前回の対話から今回の対話までに取得されたライフログ情報を用いることもできる。
【０１００】
また、本発明の実施の形態の発話装置は、ＴＭＰユーザ単語データベース２２、ＡＬＬユーザ単語データベース２３、トピックデータベース２５、知識ベース２４０、及び発話候補データベース２６２を備えている場合について説明したが、例えばＴＭＰユーザ単語データベース２２、ＡＬＬユーザ単語データベース２３、トピックデータベース２５、知識ベース２４０、及び発話候補データベース２６２の少なくとも１つが発話装置の外部装置に設けられ、発話装置は、外部装置と通信手段を用いて通信することにより、ＴＭＰユーザ単語データベース２２、ＡＬＬユーザ単語データベース２３、トピックデータベース２５、知識ベース２４０、及び発話候補データベース２６２の少なくとも１つを参照するようにしてもよい。
【０１０１】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
【０１０２】
また、上述の発話装置は、内部にコンピュータシステムを有しているが、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【符号の説明】
【０１０３】
１０   入力部
２０   演算部
２１   言語情報取得部
２２   ＴＭＰユーザ単語データベース
２３   ＡＬＬユーザ単語データベース
２４   発話内容学習部
２５   トピックデータベース
２６   発話選択部
３０   出力部
１００ 発話装置
２１０ 発話内容抽出部
２１２ ライフログ情報取得部
２４０ 知識ベース
２４２ 情報抽出部
２４４ トピックモデル生成部
２６０ トピック決定部
２６２ 発話候補データベース
２６４ 発話候補検索部
２６６ 発話決定部
【図１】
2015219583.tif 000007
【図２】
2015219583.tif 000008
【図３】
2015219583.tif 000009
【図４】
2015219583.tif 000010
【図５】
2015219583.tif 000011
【図６】
2015219583.tif 000012
【図７】
2015219583.tif 000013
【図８】
2015219583.tif 000014