(57)【要約】【課題】適切な応答文を生成する。【解決手段】文生成装置１００は、ユーザの発言を取得する取得部１３０と、取得したユーザの発言の少なくとも一部を含むデータをマイクロブログデータから検索する検索部１４０と、検索部１４０が検索したデータを使用してユーザの発言に応答する文章を作成する文章作成部１６０と、を備える。【選択図】図３
2018198097.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの発言を受けて該ユーザに応答を返す文生成装置において、
前記ユーザの発言を取得する取得手段と、
取得した前記ユーザの発言の少なくとも一部を含むデータをマイクロブログデータから検索する検索手段と、
前記検索手段が検索したデータを使用して前記ユーザの発言に応答する文章を作成する文章作成手段と、
を備える文生成装置。
【請求項２】
前記検索手段は、前記取得手段が取得したユーザの発言と主題が関係し且つ前記ユーザの発言の投稿時期と投稿時期の近いデータを検索する、
請求項１記載の文生成装置。
【請求項３】
前記検索手段は、取得した前記ユーザの発言から該発言の主題語を検索クエリとして抽出する抽出手段を備え、
前記検索手段は、前記検索クエリを含むデータを前記マイクロブログデータから検索する、
請求項１又は２に記載の文生成装置。
【請求項４】
前記抽出手段は、前記主題語および該主題語に関連する関連語を前記検索クエリとして抽出する、
請求項３に記載の文生成装置。
【請求項５】
前記検索手段は、前記ユーザの発言時刻から予め設定された時間の間に投稿されたマイクロブログデータの中から、前記検索クエリを含むデータを検索する、
請求項３又は４に記載の文生成装置。
【請求項６】
前記検索手段が検索したデータを投稿した他のユーザと前記ユーザとの関連度を評価する評価手段を、さらに備え、
前記文章作成手段は、前記検索したデータの中から前記関連度に基づいて選択したデータを使用して、前記ユーザの発言に応答する文章を作成する、
請求項１から５の何れか一項に記載の文生成装置。
【請求項７】
前記評価手段は、前記ユーザの発言の主題語に関連する投稿を多くした他のユーザと前記ユーザとの関連度を高く評価する、
請求項６に記載の文生成装置。
【請求項８】
ユーザの発言の語尾部分を編集して応答文の語尾部分を含むテンプレートを作成するテンプレート作成手段を備え、
前記文章作成手段は、前記検索したデータを前記テンプレートにあてはめて、前記ユーザの発言に応答する文章を作成する、
請求項１から７の何れか一項に記載の文生成装置。
【請求項９】
前記テンプレート作成手段は、疑似性格を表現する文章の語尾を含むテンプレートを作成する、
請求項８に記載の文生成装置。
【請求項１０】
ユーザの発言を取得する取得ステップと、
取得した前記ユーザの発言の少なくとも一部を含むデータをマイクロブログデータから検索する検索ステップと、
前記検索ステップで検索したデータを使用して前記ユーザの発言に応答する文章を作成する文章作成ステップと、
前記文章作成ステップで作成した文章を前記ユーザに応答するステップと、
を含む文生成方法。
【請求項１１】
コンピュータを、
ユーザの発言を取得する取得手段、
取得した前記ユーザの発言の少なくとも一部を含むデータをマイクロブログデータから検索する検索手段、
前記検索手段が検索したデータを使用して前記ユーザの発言に応答する文章を作成する文章作成手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザの発言を受けて、該ユーザに応答を返すための応答文を作成する技術に関する。
【背景技術】
【０００２】
特定のタスクを持たないオープンドメインな雑談を行う雑談対話システムの開発が進められている。特定のタスクを持つ対話システムに比べてオープンドメインな雑談対話システムでは、ユーザの発話内容のバリエーションが各段に広いので、適切な応答文を作成するために必要な知識源を予め人手で構築しきることは極めて困難である。
【０００３】
この問題に対応するために、非特許文献１は、大規模な文章が存在するツイッター（登録商標）などのマイクロブログを利用して発話文を生成する技術を開示している。また、特許文献１は、ユーザの発話内容から発話内容の主題を表す単語を抽出し、その単語をテンプレートに代入することにより発話文を作成する技術を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−４５８３３号公報
【非特許文献】
【０００５】
【非特許文献１】稲葉通将、神園彩香、高橋健一、「Ｔｗｉｔｔｅｒを用いた非タスク指向型対話システムのための発話候補文獲得」、人工知能学会論文誌  ２９巻１号ＳＰ１−Ｃ（２０１４年）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、マイクロブログから取得した単語を予め準備されている定型のテンプレートにあてはめて応答文を作成しても、ユーザの発言に対して適切な応答文を作成することが出来ない場合があるという問題があった。
【０００７】
本発明は、上記問題を軽減するためになされたものであり、適切な応答文を生成することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の文生成装置は、  ユーザの発言を受けて該ユーザに応答を返す文生成装置において、
前記ユーザの発言を取得する取得手段と、
取得した前記ユーザの発言の少なくとも一部を含むデータをマイクロブログデータから検索する検索手段と、
前記検索手段が検索したデータを使用して前記ユーザの発言に応答する文章を作成する文章作成手段と、
を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ユーザが発した発言に対応する適切な応答文を生成することができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態１に係る対話システムの構成図である。
【図２】実施形態１に係る文生成装置の物理的構成図である。
【図３】実施形態１に係る文生成装置の機能構成図である。
【図４】実施形態１に係る文生成装置のネット検索部の構成図である。
【図５】投稿件数の分布について説明するための図である。
【図６】検索した他ユーザの投稿データの例について説明するための図である。
【図７】他ユーザの評価方法について説明するための図である。
【図８】実施形態１に係る文生成装置の文章作成部の構成図である。
【図９】テンプレートの例について説明するための図である。
【図１０】文生成処理について説明するためのフローチャートである。
【図１１】応答文作成処理について説明するためのフローチャートである。
【発明を実施するための形態】
【００１１】
本実施形態に係る文生成装置を利用する対話システム１について、図１を参照して説明する。本実施形態では、文生成装置１００をユーザと対話するパーソナルアシスタント（対話エージェントともいう）の一種である対話型のペットロボット１０に組み込んで使用する場合について説明する。ユーザＡがペットロボット１０に対して発言すると、ペットロボット１０に組み込まれている文生成装置１００は、ユーザの発言に適応する応答文を作成して出力する。ユーザＡがペットロボット１０に話しかけるシチュエーションとして、ユーザＡが何らかの番組を前記ペットロボット１０と一緒に見ているときに、その番組に関してリアルタイムで感想等をペットロボット１０に向かって発言する場合について説明する。
【００１２】
図１に示す対話システム１では、文生成装置１００は、ネットワークＮＷを介してマイクロブログサーバ２００と通信を行い、ユーザＡが発した発言をマイクロブログサーバ２００に投稿することが出来る。複数の他ユーザも各自の端末３００から各自の発した発言をマイクロブログサーバ２００に投稿することが出来、マイクロブログサーバ２００には複数のユーザが発した発言が投稿データとして蓄積される。ペットロボット１０に内蔵された文生成装置１００は、ユーザＡが視聴している番組をユーザＡによる入力操作等で取得し、マイクロブログサーバ２００の該当する掲示板に接続する。なお、文生成装置１００が、テレビ番組情報をテレビジョン等から取得するようにしても良い。また、文生成装置１００は、マイクロブログサーバ２００にアクセスして、マイクロブログサーバ２００に蓄積されている投稿データを取得することが出来る。つまり、複数の他ユーザが発した発言を取得することが出来る。ユーザＡがペットロボット１０に対して発言すると、ペットロボット１０に組み込まれている文生成装置１００は、マイクロブログサーバ２００にアクセスしてユーザＡが視聴している番組に対応する掲示板に投稿された投稿データ（マイクロブログデータ）の中から、ユーザＡが発した発言に関連する他ユーザの投稿データを検索して応答文を作成する。
【００１３】
次に、文生成装置１００の物理的構成について、図２を参照しながら説明する。文生成装置１００は、図２に示すように、制御部１１０、音声入力部１１１、文字入力部１１２、音声出力部１１３、表示部１１４、通信部１１５、記憶部１２０を備える。
【００１４】
制御部１１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等で構成され、記憶部１２０に記憶されたプログラムを実行することにより、後述する各部（取得部１３０、検索部１４０、評価部１５０、文章作成部１６０）の機能を実現する。
【００１５】
音声入力部１１１は、マイクロフォン等の音声入力装置と音声認識装置とから構成され、ユーザＡが発した音声をテキストデータに変換する。具体的には、音声入力部１１１は、ユーザＡが音声で発言した音声データをマイクロフォン等の音声入力装置で取得し、その音声データを音声認識装置で音声認識してテキストデータに変換する。音声入力部１１１は、取得したテキストデータを制御部１１０に供給する。
【００１６】
文字入力部１１２は、キーボード、タッチパネル等から構成される。文字入力部１１２は、ユーザＡが入力したキー入力をテキストデータとして取得する。文字入力部１１２は、取得したテキストデータを制御部１１０に供給する。ユーザＡは、発言を文字入力部１１２からテキストデータで入力することが出来る。また、ユーザＡは、後述する期間Ｔ１，Ｔ２を文字入力部１１２から設定することが出来る。
【００１７】
音声出力部１１３は、スピーカから構成される。音声出力部１１３は、後述する文章作成部１６０が作成した応答文を音声出力する。
【００１８】
表示部１１４は、液晶ディスプレイ装置等から構成される。表示部１１４は、後述する文章作成部１６０が作成した応答文を表示する。
【００１９】
通信部１１５は、ネットワークＮＷを介してマイクロブログサーバ２００と通信するための通信装置である。例えば、通信部１１５は、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）規格に基づく無線通信を行う通信装置である。
【００２０】
記憶部１２０は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等から構成される。ＲＯＭには制御部１１０のＣＰＵが実行するプログラムや、プログラムを実行する上で予め必要なデータが記憶されている。ＲＡＭには、プログラム実行中に作成されたり変更されたりするデータが記憶される。
【００２１】
次に、制御部１１０の機能について図３を参照しながら説明する。図３に示すように、制御部１１０は、取得部１３０、検索部１４０、評価部１５０、文章作成部１６０を備える。また、記憶部１２０は、主題語データ記憶部１２１、関連語データ記憶部１２２、関連ユーザデータ記憶部１２３を備える。詳細は後述する。
【００２２】
取得部１３０は、ユーザＡの発した発言を音声入力部１１１からテキストデータで取得する。また、ユーザＡが入力した発言を文字入力部１１２からテキストデータで取得する。取得部１３０は、取得したテキストデータを検索部１４０に供給する。
【００２３】
検索部１４０は、ユーザＡの発言の少なくとも一部を含むデータを、通信部１１５を介してマイクロブログサーバ２００から検索する。そのために、検索部１４０は、検索クエリ抽出部１７０とネット検索部１８０とを備える。
【００２４】
検索クエリ抽出部１７０は、ユーザＡの発言の主題語およびその主題語に関連する関連語を検索対象とする検索クエリとして抽出する。そのために、検索クエリ抽出部１７０は、主題語抽出部１７１と関連語推定部１７２とを備える。
【００２５】
主題語抽出部１７１は、取得したユーザＡの発言から発言の主題語（焦点語とも言う）を抽出する。ユーザの発言から発言の主題語を抽出する方法としては、例えば参考文献１（Barbara J. Grosz，Scott Weinstein, and AravindK．Joshi. 1995. Centering: A Framework for Modeling the Local Coherence of Discourse. Computational linguistics，21(2):203-225.）や参考文献２（Marilyn A. Walker, 1998. Centering, Anaphora Resolution, and Discourse Structure Oxford University Press on Demand.）に記載された既知技術を用いる。概略を言えば、主題語抽出部１７１は、ユーザＡの発言を名詞、接続詞、修飾詞、動詞等に分解して形態素分析を行い、主語と述語の関係等から主題語を特定する。
【００２６】
例えば、ユーザＡの発言が「猫の寝顔ってとってもかわいいね」であった場合、主語に該当する部分は「猫の寝顔って」である。この場合、主題語抽出部１７１は、主題語として「猫の寝顔」を抽出する。
【００２７】
関連語推定部１７２は、主題語抽出部１７１が抽出した主題語に関連する関連語を推定する。関連語を推定する方法としては、シソーラス辞書を用いる既知技術、もしくは単語間の共起関係によって類義語を推定するトピックモデル（Ｔｏｐｉｃ  Ｍｏｄｅｌ）を利用した既知技術を用いる。
【００２８】
例えば、関連語推定部１７２は、主題語が「猫の寝顔」であった場合、「猫の顔、猫のあくび、猫の仕草、猫、犬の顔、犬、・・・・・」等を関連語として推定する。
【００２９】
検索クエリ抽出部１７０は、主題語抽出部１７１が抽出した主題語および関連語推定部１７２が推定した関連語を検索クエリとして設定する。
【００３０】
ネット検索部１８０は、この検索クエリを含む投稿データをマイクロブログサーバ２００から検索する。具体的には、ネット検索部１８０は、通信部１１５を介してマイクロブログサーバ２００にアクセスし、マイクロブログサーバ２００が保有する複数の他ユーザが投稿した投稿データを検索し、検索クエリを含む投稿データを取得する。
【００３１】
さらに具体的には、ネット検索部１８０は、図４に示すように、検索時間設定部１８１と話題度評価部１８２とを備える。話題度とは、ユーザＡがマイクロブログに投稿した発言に関連する複数の他ユーザの投稿件数の多さの程度を示す指標である。検索部１４０は、検索時間設定部１８１が設定する期間Ｔ１、および、話題度評価部１８２が設定する期間Ｔ２に検索を行う。
【００３２】
検索時間設定部１８１は、ユーザＡが発した発言に対する応答文を作成するためにマイクロブログデータを検索するための期間Ｔ１を設定する。検索時間設定部１８１は、ユーザＡによる文字入力部１１２からの入力操作に基づいてこの期間Ｔ１を取得する。文生成装置１００は、この期間Ｔ１に検索した他ユーザの投稿データに基づいて、ユーザＡの発言に対する応答文を作成する。この期間Ｔ１が長いほど多くの投稿データを取得できるので、ユーザＡの発言に適応した応答文を作成できる確率が高くなる。また、この期間Ｔ１が長くなると、文章を作成するまでの時間が長くなる。ペットロボット１０に文生成装置１００を組み込んだ場合、ペットロボット１０の応答速度は、この期間Ｔ１によって決まることになる。
【００３３】
また、ユーザＡがこの期間Ｔ１を選択できるようにするようにしても良い。例えば、早い応答速度用の期間Ｔ１を１秒、普通の応答速度用の期間Ｔ１を３秒、遅い応答速度用の期間Ｔ１を１０秒のように設定できるようにする。もしくは、期間Ｔ１と文生成装置１００の出力内容との関係を実験により求め、予め本システムのプログラム内に期間Ｔ１を設定しておいても良い。具体的には、後述するつなぎ文の多さ、ユーザＡの発言に対して作成された応答文の適応度等を評価して期間Ｔ１を設定してもよい。適応度は、複数人による主観評価で評価する。
【００３４】
話題度評価部１８２は、後述する関連ユーザの評価に使用する投稿データを取得するためにマイクロブログデータを検索する期間を設定する。なお、関連ユーザとは、複数の他ユーザのうち、ユーザＡが投稿した発言に関連する投稿をした他ユーザを言う。
【００３５】
ところで、ユーザＡがある発言をマイクロブログに投稿した場合、その発言に関連する他ユーザの投稿件数の分布は、図５に示すような分布になる。図５に示すグラフの横軸は、ユーザＡが発言した時刻からの経過時間である。また、縦軸は、単位時間あたりに投稿される他ユーザの投稿件数である。例えば、１分間に測定した他ユーザの投稿件数の合計である。つまり、ユーザＡがマイクロブログにある発言を投稿すると、その発言に関係する他ユーザの投稿件数は次第に増加し、ある程度の期間後に減少して収束していく傾向がある。
【００３６】
話題度評価部１８２は、検索部１４０が検索した投稿データの件数を所定時間（例えば、１分）ごとに測定する。そして、話題度評価部１８２は、測定した投稿データの件数が予め設定された閾値（例えば、３件／分）よりも少なくなったことを検出した場合、閾値を下回ったことをネット検索部１８０に通知する。この通知を受けたネット検索部１８０は、マイクロブログデータの検索を停止する。ユーザＡの発言時刻から投稿データの件数が閾値以下になったことを話題度評価部１８２が検出するまでの期間を期間Ｔ２とする。
【００３７】
ネット検索部１８０は、マイクロブログサーバ２００から検索した他ユーザの投稿データのうち、主題語を含む投稿データを記憶部１２０内の主題語データ記憶部１２１に、主題語を含まず関連語のみを含む投稿データを関連語データ記憶部１２２に記憶する。ネット検索部１８０がマイクロブログサーバ２００から検索した投稿データの例を図６に示す。例えば、ユーザＡの発言が「猫の寝顔ってとってもかわいいね」であった場合、関連ユーザＩＤ＝ＩＤ０００２の投稿データは、主題語である「猫の寝顔」を含んでいるので主題語データ記憶部１２１に記憶される。関連ユーザＩＤ＝ＩＤ０００１およびＩＤ０００３の投稿データは、主題語である「猫の寝顔」を含まず、関連語である「子猫の寝顔、猫、犬」を含んでいるので関連語データ記憶部１２２に記憶される。
【００３８】
図３に戻って、評価部１５０は、取得した投稿データを投稿した他ユーザとユーザＡとの関連度を他ユーザ毎に評価する。関連度とは、ユーザＡの発言に関連する投稿をした投稿回数の多さの程度を示す指標である。評価部１５０は、ユーザＡの発言に関連する投稿を多くした他ユーザの関連度を高く評価する。具体的には、評価部１５０は、検索部１４０が検索クエリを含む投稿データとともに取得した他ユーザを特定するデータに基づいて、他ユーザの投稿回数を測定する。他ユーザを特定するデータとは、他ユーザのＵＲＬ、ユーザＩＤ、ブログ上でのニックネーム等である。
【００３９】
評価部１５０は、ユーザＡの１回の発言に対して検索部１４０が検索した投稿データを他ユーザごとにカウントする。評価部１５０は、ユーザＡの１回の発言に対して図５に示す期間Ｔ２にこの測定を行う。そして、評価部１５０は、ユーザＡが発言するごとにこの測定を行い、測定したカウント数を順次加算して累積投稿回数を求める。文生成装置１００は、この累積投稿回数を関連度を表す指標として使用する。この累積投稿回数は、ユーザＡが発言するたびに、順次更新されていく。評価部１５０は、この累積投稿回数の測定を該当する番組が終了するまで継続する。
【００４０】
評価部１５０が測定した累積投稿回数の例を図７に示す。図７に示すテーブルは、ユーザＡによるある投稿後の期間Ｔ２に取得した投稿データを測定した例である。図７に示す例では、関連ユーザＩＤがＩＤ０００１である他ユーザによる投稿回数は、ユーザＡによる今回の発言に対する期間Ｔ２では１回である。また、このテレビ番組の放映が始まってからの累積投稿回数は１５回である。関連ユーザＩＤがＩＤ０００２の他ユーザによる投稿回数は、今回の期間Ｔ２では２回である。また、このテレビ番組の放映が始まってからの累積投稿回数は９回である。
【００４１】
なお、図７に示すテーブルは、マイクロブログサーバ２００に投稿するユーザ毎に、また、そのユーザが視聴する番組毎に形成される。そして、各テーブルは、該当するユーザが投稿するたびに更新される。
【００４２】
評価部１５０は、この累積投稿回数に基づいて、他ユーザとユーザＡとの関連度を評価する。具体的には、評価部１５０は、この累積投稿回数が多い他ユーザの関連度を高く評価する。評価部１５０は、図７に示す評価データを記憶部１２０内の関連ユーザデータ記憶部１２３に記憶する。また、後述する文章作成部１６０の選択部１６１は、選択時における累積投稿回数に基づいて他ユーザの投稿データを選択する。
【００４３】
図３に戻って、文章作成部１６０は、検索部１４０が検索した投稿データに基づいて、ユーザＡの発言に応答する文章を作成する。具体的に、文章作成部１６０は、検索部１４０が検索した投稿データの中から関連度に基づいて投稿データを選択して、ユーザＡの発言に応答する文章を作成する。また、文章作成部１６０は、ペットロボット１０の擬似性格を表現する文章の語尾を含むテンプレートを作成し、そのテンプレートに選択した投稿データをあてはめて、ユーザＡの発言に応答する文章を作成する。そのために、文章作成部１６０は、図８に示すように、選択部１６１、テンプレート作成部１６２、応答文作成部１６３を備える。以下に詳細を説明する。
【００４４】
選択部１６１は、評価部１５０が生成した関連度に基づいて、検索部１４０がマイクロブログサーバ２００から検索した投稿データの中から、応答文に使用する投稿データを選択する。例えば、選択部１６１は、関連ユーザデータ記憶部１２３に記憶されている累積投稿回数が閾値（例えば、１０回）以上である他ユーザが存在する場合、累積投稿回数が閾値以上であり、その中で累積投稿回数が最も多い他ユーザの投稿データを選択する。閾値を設ける理由は、同じ番組を視聴している他ユーザの投稿データを選択する確率を高めるためである。なお、選択部１６１は、累積投稿回数が閾値以上の他ユーザの投稿がなかった場合、検索部１４０が検索した投稿データの中からランダムに投稿データを選択する。
【００４５】
例えば、期間Ｔ１に検索した投稿データが図６に示す投稿データであり、関連ユーザデータ記憶部１２３に記憶されている他ユーザの累積投稿回数が図７に示す回数であったとする。この場合、図７に示す関連ユーザの中で累積投稿回数が閾値（例えば、１０回）以上であり、累積投稿回数が最も多い他ユーザは、ＩＤ０００１で表されている他ユーザである。したがって、選択部１６１は、図６に示す投稿データの中からＩＤ０００１の他ユーザが投稿した投稿データ「特に子猫の寝顔はかわいいね」を選択する。
【００４６】
テンプレート作成部１６２は、ユーザＡが発した発言の語尾部分を編集して応答文の語尾部分を作成し、その語尾を含むテンプレートを作成する。
【００４７】
文の語尾部分は、その発言者の性格を表す特徴を有する。文の語尾部分の表現により、例えば、アッサリした事務的なタイプ、ひょうきんタイプ、丁寧タイプ、等の発言者の性格を表すことが出来る。テンプレート作成部１６２は、ユーザＡの発言の語尾部分を編集することにより、文生成装置１００を搭載したペットロボット１０の疑似性格を表現する文章の語尾を作成し、その語尾を含むテンプレートを作成する。
【００４８】
例えば、ユーザＡの発言が「猫の寝顔ってとってもかわいいね」であったとすると、テンプレート作成部１６２は、ユーザＡの発言「猫の寝顔ってとってもかわいいね」の語尾部分「かわいいね」を抽出する。そして、テンプレート作成部１６２は、ペットロボット１０の疑似性格「あっさりタイプ」用のテンプレートとして、「・・・・・かわいいね。」を作成する。また、ペットロボット１０の疑似性格「ひょうきんタイプ」用のテンプレートとして、「・・・・・ムチャかわいいね。」を作成する。また、ペットロボット１０の疑似性格「丁寧タイプ」用のテンプレートとして、「・・・・・確かにかわいいですね。」を作成する。テンプレート作成部１６２が作成したテンプレートの例を図９に示す。なお、ペットロボット１０の疑似性格は、ユーザＡにより文字入力部１１２から設定される。また、上記の疑似性格は一例であり、テンプレート作成部１６２は、他の疑似性格を表現するテンプレートを作成するようにしても良い。テンプレート作成部１６２は、予めユーザＡによって設定されている疑似性格を表す文章の語尾部分を作成し、その語尾を含むテンプレートを作成する。
【００４９】
応答文作成部１６３は、テンプレート作成部１６２が作成したテンプレートに選択した投稿データをあてはめて、ユーザＡの発言に応答する文章を作成する。例えば、ペットロボット１０の疑似性格として「ひょうきんタイプ」が選択されており、選択した投稿データが「特に子猫の寝顔はかわいいね」であった場合、応答文作成部１６３は、応答文「特に子猫の寝顔はムチャかわいいね」を作成する。そして、文章作成部１６０は、音声出力部１１３から「特に子猫の寝顔はムチャかわいいね」を音声出力させる。また、表示部１１４に「特に子猫の寝顔はムチャかわいいね」を表示させる。
【００５０】
次に、上記の構成を有する文生成装置１００が実行する文生成処理について、図１０と図１１に示すフローチャートを参照しながら説明する。以下では、ユーザＡがペット関係の番組を見ているときに、文生成装置１００を搭載したペットロボット１０に、その番組に関して感想等を発言する場合について説明する。ある番組を視聴しているユーザＡが発言する毎に、文生成装置１００はその発言をマイクロブログサーバ２００の該当番組の掲示板に投稿する。また、同じ番組およびマイクロブログサーバ２００に投稿されたユーザＡの投稿データを見ている複数の他ユーザは、各自の発言を各自の端末３００からマイクロブログサーバ２００の同じ掲示板に投稿していることとする。ここでは、ユーザＡが文生成装置１００に音声で発言を入力し、文生成装置１００が音声で応答文を出力する場合について説明する。期間Ｔ１は、ユーザＡにより予め設定されており、ペットロボット１０の疑似性格は「ひょうきんタイプ」に設定されていることとする。ユーザＡが、通信部１１５を介してマイクロブログサーバ２００に文生成装置１００を接続し、文生成装置１００がユーザＡの発言をマイクロブログサーバ２００に投稿することにより、図１０に示す文生成処理は開始する。
【００５１】
ユーザＡがペット関連の番組を視聴しながら感想等をペットロボット１０に搭載されている文生成装置１００に向かって発言すると、音声入力部１１１はその発言を音声データとして取得してテキストデータに変換する。文生成装置１００は、通信部１１５を介して、マイクロブログサーバ２００にユーザＡの発言を投稿する。また、取得部１３０は、音声入力部１１１からユーザＡの発言をテキストデータで取得し（ステップＳ１）、検索部１４０に供給する。検索部１４０の検索クエリ抽出部１７０は、そのテキストデータから検索クエリを抽出する（ステップＳ２）。具体的には、主題語抽出部１７１が、テキストデータから主題語を抽出する。また、関連語推定部１７２が、主題語に関連する関連語を推定する。
【００５２】
例えば、ユーザＡが、「猫の寝顔ってとってもかわいいね」と発言すると、主題語抽出部１７１は、主題語として「猫の寝顔」を抽出する。また、関連語推定部１７２は、関連語として「猫の顔、猫のあくび、猫の仕草、犬の顔、・・・・・」等を推定する。検索クエリ抽出部１７０は、この主題語と関連語を検索クエリとして設定する。
【００５３】
次に、ネット検索部１８０は、通信部１１５を介してマイクロブログサーバ２００内のマイクロブログデータから、検索クエリ抽出部１７０が抽出した検索クエリを含む投稿データを検索する（ステップＳ３）。ネット検索部１８０は、予め設定されている期間Ｔ１の検索が完了するまで（ステップＳ４：Ｎｏ）、ステップＳ３の検索を継続する。例えば、ネット検索部１８０は、図６に示すような主題語を含む投稿データと関連語を含む投稿データとをマイクロブログデータから検索する。そして、期間Ｔ１の検索が完了すると（ステップＳ４：Ｙｅｓ）、文章作成部１６０は、ユーザＡの発言に対応する応答文の作成処理を行う（ステップＳ５）。応答文作成処理については、図１１を参照して説明する。
【００５４】
応答文作成処理が始まると、文章作成部１６０は、検索部１４０が検索クエリを含む投稿データを期間Ｔ１内に検索できたか否かを確認する（ステップＳ２１）。そして、該当する投稿データを検索できていない場合（ステップＳ２１：Ｎｏ）、文章作成部１６０は、「へー」、「そうだね」、「そうなの」等のユーザに違和感を与えないつなぎ文を作成する（ステップＳ２２）。具体的には、つなぎ文として出力する言葉は予め記憶部１２０に記憶されており、文章作成部１６０は、記憶部１２０からつなぎ文を取得してつなぎ文用のテンプレートにあてはめて応答文を作成する。つなぎ文は、応答文を作成するまでに会話が途切れないようにするための文である。
【００５５】
期間Ｔ１に検索クエリを含む投稿データを検索できた場合（ステップＳ２１：Ｙｅｓ）、文章作成部１６０の選択部１６１は、検索した投稿データを投稿した他ユーザの中に、累積投稿回数が閾値以上である他ユーザが存在するか否かを確認する（ステップＳ２３）。具体的には、関連ユーザデータ記憶部１２３に記憶されている他ユーザの累積投稿回数が閾値（例えば、１０回）以上の他ユーザが存在するか否かを確認する。累積投稿回数が閾値以上の他ユーザが存在しない場合（ステップＳ２３：Ｎｏ）、選択部１６１は、検索部１４０が検索した他ユーザの投稿データの中から、例えばランダムに投稿データを選択し（ステップＳ２４）、ステップＳ２６へ遷移する。一方、累積投稿回数が閾値以上の他ユーザが存在する場合（ステップＳ２３：Ｙｅｓ）、選択部１６１は、累積投稿回数が最も多い他ユーザの投稿データ（関連度が最も高い投稿データ）を選択する（ステップＳ２５）。図７に示す例では、関連ユーザＩＤ＝ＩＤ０００１の累積投稿回数が最も多いので、選択部１６１は、図６に示す投稿データの中から関連ユーザＩＤ＝ＩＤ０００１の投稿データ「特に子猫の寝顔はかわいいね」を選択する。
【００５６】
そして、文章作成部１６０は、選択した投稿データを使用して応答文を作成する（ステップＳ２６）。具体的には、ユーザＡの発言「猫の寝顔ってとってもかわいいね」の語尾部分「・・・かわいいね」を取得する。そして、ペットロボットの疑似性格として「ひょうきんタイプ」が設定されているので、テンプレート作成部１６２は、図９に示すテンプレートの中の「・・・・ムチャかわいいね」を作成する。そして、応答文作成部１６３は、選択した投稿データ「特に子猫の寝顔はかわいいね」をテンプレート「・・・・ムチャかわいいね」にあてはめて、応答文「特に子猫の寝顔はムチャかわいいね」を作成する。そして、文章作成部１６０は、音声出力部１１３から、「特に子猫の寝顔はムチャかわいいね」を音声出力する（ステップＳ２７）。なお、文章作成部１６０は、応答文を生成できない場合には、ステップＳ２２で作成したつなぎ文を音声出力する。
【００５７】
図１０のステップＳ６に戻って、検索部１４０は、文章作成部１６０が応答文を作成できなかった場合（ステップＳ６：Ｎｏ）、次の期間Ｔ１を設定し（ステップＳ７）、ステップＳ３からステップＳ６までの処理を繰り返す。
【００５８】
一方、文章作成部１６０が応答文を作成できた場合（ステップＳ６：Ｙｅｓ）、評価部１５０は、関連ユーザの評価処理を行うために、期間Ｔ１経過後も検索クエリを含む投稿データの検索を継続する（ステップＳ８）。この検索と並行して、話題度評価部１８２は、検索部１４０が検索した投稿データの件数を所定時間（例えば、１分）ごとに測定する（ステップＳ９）。検索部１４０は、話題度評価部１８２が測定した投稿データの件数が予め設定された閾値（例えば、３件／分）以上である間（ステップＳ１０：Ｙｅｓ）、上記の検索を継続する（ステップＳ８からステップＳ１０）。つまり、図５に示す期間Ｔ２の間、検索クエリを含む投稿データをマイクロブログサーバ２００から検索する。そして、検索部１４０は、話題度評価部１８２が測定した投稿データの件数が予め設定された閾値（例えば、３件／分）よりも少なくなった場合（ステップＳ１０：Ｎｏ）、上記の検索を停止する。評価部１５０は、この期間Ｔ２にユーザＡの発言に関連する投稿をした他ユーザの関連度の評価をする（ステップＳ１１）。具体的には、評価部１５０は、期間Ｔ２に投稿した他ユーザの投稿回数を測定し、図７に示す「今回の投稿回数」を測定する。また、評価部１５０は、該当する番組が始まってからの累積投稿回数をユーザＡが発言するたびに測定する。評価部１５０は、測定した追跡投稿回数を他ユーザの関連度として使用する。
【００５９】
以上の処理で、ユーザの１回の発言に対応する応答文作成処理と他ユーザの関連度の評価処理が完了する。文生成装置１００は、以上のステップＳ１からＳ１１までの処理を該当する番組が終了するまで継続する（ステップＳ１２：Ｎｏ）。評価部１５０は、この処理を繰り返すごとに他ユーザの投稿回数を測定し、図７に示す累積投稿回数を更新する。一方、該当する番組が終了すると、もしくはユーザＡが視聴するテレビ番組を変更して文生成装置１００がマイクロブログサーバ２００との通信回線を切断すると、文生成処理は終了する（ステップＳ１２：Ｙｅｓ）。
【００６０】
以上に説明したように文生成装置１００は、ユーザＡの発言からその発言の主題語とその主題語の関連語とを検索クエリとして設定する。そして、文生成装置１００は、マイクロブログデータからその検索クエリを含む他ユーザの投稿データを検索し、検索した投稿データを使用してユーザＡの発言に対する応答文を作成する。これにより、文生成装置１００は、予め大量の応答文を記憶部１２０に記憶しておかなくても、ユーザＡの発言に適応した応答文を作成することが出来る。
【００６１】
また、文生成装置１００は、ユーザＡの発言時刻から直近の期間Ｔ１に投稿されたマイクロブログデータの中から、検索クエリを含む他ユーザの投稿データを検索する。そして、文生成装置１００は、非特許文献１が開示するような予め準備された応答文を作成するための限られたパターンの応答文作成用テンプレートを使用しないで、検索した投稿データを使用してユーザＡの発言に適応した応答文を作成する。これにより、単調な応答文、ユーザＡの発言と関連が低い応答文、無機質な応答文のように、ユーザＡが対話をやめたくなるような応答文を作成することを回避できる。
【００６２】
また、文生成装置１００は、検索した投稿データを投稿した他ユーザとユーザとの関連度を評価する評価部１５０を備える。そして、文章作成部１６０は、検索部１４０が検索したデータの中から、その関連度に基づいて選択した投稿データを使用して応答文を作成する。これにより、文生成装置１００は、ユーザと同じ視聴対象（番組）を見ている他ユーザの投稿データを使用して応答文を作成する確率を高めることが出来る。したがって、ユーザの発言に適応した応答文を作成する確率を高めることが出来る。
【００６３】
また、文生成装置１００は、ユーザＡの発言の語尾部分を抽出し、疑似性格を表現する文章の語尾を含むテンプレートを作成するテンプレート作成部１６２を備える。テンプレート作成部１６２は、例えば、図９に例示するようなテンプレートを作成する。これにより、ペットロボット１０に搭載された文生成装置１００は、そのペットロボット１０の擬似性格を表現可能な応答文を作成することが出来る。
【００６４】
（変形例１）
上記の説明では、ユーザＡの発言の主題語に加えて、その主題語と関連する関連語を含む投稿データを検索する説明をした。しかし、関連語に関する検索を省略することも出来る。この場合、図３に示す機能図において、関連語推定部１７２および関連語データ記憶部１２２を省略することが出来る。
【００６５】
この場合、検索クエリ抽出部１７０は、主題語のみを検索クエリとして設定する。そして、ネット検索部１８０は、マイクロブログサーバ２００からその主題語を含む他ユーザの投稿データを検索する。評価部１５０は、検索した投稿データの数をカウントして、累積投稿回数を他ユーザ毎に測定する。そして、文章作成部１６０は、測定した累積投稿回数に基づいて他ユーザの投稿データを選択し、ユーザＡの発言に対する応答文を作成する。
【００６６】
このように関連語に関する検索を省略した場合、文生成装置１００の処理を軽減することが出来る。その一方、短い期間Ｔ１の期間内に主題語を含む投稿データを検索できる確率は低下する。その結果、つなぎ文を出力する可能性が高くなる。
【００６７】
（変形例２）
上記の説明では、評価部１５０が他ユーザの関連度を評価し、文章作成部１６０は、その関連度に基づいて検索部１４０が検索した投稿データの中から応答文に使用する投稿データを選択する説明をした。しかし、評価部１５０を省略することも出来る。この場合、図３に示す機能図において、評価部１５０および関連ユーザデータ記憶部１２３を省略することが出来る。また、図１０に示す文生成処理において、ステップＳ８からステップＳ１１の処理を省略することが出来る。また、図１１に示す応答文作成処理において、ステップＳ２３とステップＳ２５の処理を省略することが出来る。その一方、評価部を省略すると、ユーザＡが発言した時間帯（同じ番組の同じシーン）に多く投稿した他ユーザの投稿データを使用して応答文を作成する確率が低くなる。つまり、ユーザＡの感性と異なる感性を有する他ユーザの投稿データを用いた応答文を作成する確率が高くなる。その結果、ユーザＡに違和感を与えるような応答文を出力する確率が高くなる恐れがある。
【００６８】
なお、上記の説明では、文生成装置１００が音声入力部１１１、文字入力部１１２、音声出力部１１３、表示部１１４、通信部１１５、記憶部１２０を備える説明をした。しかし、音声入力部１１１、文字入力部１１２、音声出力部１１３、表示部１１４、通信部１１５、記憶部１２０を文生成装置１００の外部装置としても良い。
【００６９】
また、上記の説明では、文生成装置１００をペットロボット１０に搭載する説明をしたが、実施形態はこれに限定する必要は無い。例えば、制御部１１０をクラウド上のサーバ内に設け、ペットロボット１０には通信部１１５と入出力部のみを設けるようする。そして、ペットロボット１０の入力部から取得したユーザの発言を通信部１１５を介してクラウド上のサーバに転送する。そして、クラウド上のサーバ内で文生成処理を行うようにしても良い。
【００７０】
また、上記の説明では、話題度評価部１８２がユーザＡの発言に対して関連する投稿データを検索する期間Ｔ２を設定する説明をした。しかし、ユーザＡが、この期間Ｔ２を固定値（例えば、１０分）として文字入力部１１２から設定できるようにしても良い。
【００７１】
また、上記の説明では、ユーザＡが発言する毎に期間Ｔ２に限定して他ユーザの関連度を測定し、この測定を番組継続期間中に断続的に継続することにより他ユーザの関連度を評価する説明をした。しかし、話題度評価部１８２を削除し、番組継続時間中、連続的に他ユーザの関連度を評価するようにしても良い。例えば、放映時間が１時間のテレビ番組の場合には、１時間連続して他ユーザの関連度を測定するようにしても良い。これにより、同じ番組を視聴している他ユーザの投稿データを多く取得することが出来き、つなぎ文を出力する頻度を低下させることが出来る。一方、ユーザＡが発言した時間帯（同じ番組の同じシーン）とは異なる時間帯に多く投稿した他ユーザの投稿データを取得する確率が高くなる。つまり、ユーザＡの感性と異なる感性を有する他ユーザの投稿データを用いた応答文を作成する確率が高くなる。
【００７２】
また、上記の説明では、１つの番組毎に他ユーザの関連度を評価する説明をした。しかし、他ユーザの評価方法はこれに限定する必要は無い。例えば、１ケ月間継続して評価するようにしても良い。  具体的には、１日分の関連ユーザの累積投稿回数を測定し、この測定を毎日継続する。そして、直近の３０日分の累積投稿回数を加算した値を最終的な累積投稿回数として関連ユーザの評価に使用する。１つの番組内で関連度を評価することにより、同じ番組を継続して視聴している他ユーザの投稿データを検索して、ユーザＡの発言に適応した応答文を作成できる確率を高くすることが出来る。一方、１つの番組ではなく、例えば１ケ月間に渡って他ユーザの関連度を評価すると、ユーザＡの投稿した発言にいつも応答して投稿してくれる特定の他ユーザの投稿データを選択できる確率を高めることが出来る。これにより、同じ人とチャットをしているような応答文を作成することが出来るようになる。
【００７３】
また、上記の説明では、テンプレート作成部１６２は、ユーザＡの発言の語尾部分等を編集することにより、疑似性格を表現するためのテンプレートを作成する説明をしたが、疑似性格を表現する応答文を作成するためのテンプレートはこれに限定する必要は無い。例えば、疑似性格「ひょうきんタイプ」用のテンプレートでは、「て、に、を、は」等を省略した応答文を作成するようなテンプレートとしても良い。また、疑似性格「丁寧タイプ」用のテンプレートとしては、主語、述語、目的語を省略しない応答文を作成するようなテンプレートとしても良い。
【００７４】
また、図１０を用いて説明した文生成処理において、ステップＳ７の処理を省略するようにしても良い。つまり、期間Ｔ１に該当する投稿データを検索できなかった場合、つなぎ文を出力するのみにしても良い。
【００７５】
また、図１１を用いて説明した応答文作成処理において、関連度が閾値以上である他ユーザの投稿データを検索できなかった場合、つなぎ文を作成するようにしても良い。つまり、ステップＳ２４の処理をつなぎ文の作成処理に変更するようにしても良い。
【００７６】
また、図１１を用いて説明した応答文作成処理のステップＳ２５の処理において、累積投稿回数が閾値以上の他ユーザによる投稿データが複数ある場合、関連度が最も高い投稿データを選択する説明をしたが、この複数の投稿データの中からランダムに選択するようにしても良い。
【００７７】
また、上記の説明では、ユーザＡが発した発言に対する応答文を作成するためにマイクロブログデータを検索するための期間Ｔ１を１秒から１０秒を例にして説明した。しかし、この期間Ｔ１をこの期間に限定する必要は無い。例えば、期間Ｔ１を３０秒、６０秒のように設定しても良い。
【００７８】
また、上記の説明では、通信部１１５は無線通信を行う通信装置である場合について説明したが、光通信等の有線通信を行う通信装置であっても良い。
【００７９】
また、上記の説明では、他のユーザが端末３００からマイクロブログサーバ２００に投稿する説明をしたが、この端末３００は、ユーザＡが使用するような文生成装置１００を組み込んだペットロボット１０であっても良いし、通信機能を有する通常のＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等のコンピュータであってもよい。
【００８０】
この発明の文生成装置１００の各機能は、通常のＰＣ等のコンピュータによっても実施することができる。具体的には、上記実施形態では、文生成装置１００が行う文生成処理のプログラムが、記憶部１２０のＲＯＭに予め記憶されているものとして説明した。しかし、プログラムを、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）及びＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  Ｄｉｓｃ）等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータに読み込んでインストールすることにより、上述の各機能を実現することができるコンピュータを構成してもよい。
【００８１】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【００８２】
（付記１）
ユーザの発言を受けて該ユーザに応答を返す文生成装置において、
前記ユーザの発言を取得する取得手段と、
取得した前記ユーザの発言の少なくとも一部を含むデータをマイクロブログデータから検索する検索手段と、
前記検索手段が検索したデータを使用して前記ユーザの発言に応答する文章を作成する文章作成手段と、
を備える文生成装置。
【００８３】
（付記２）
前記検索手段は、前記取得手段が取得したユーザの発言と主題が関係し且つ前記ユーザの発言の投稿時期と投稿時期の近いデータを検索する、
付記１記載の文生成装置。
【００８４】
（付記３）
前記検索手段は、取得した前記ユーザの発言から該発言の主題語を検索クエリとして抽出する抽出手段を備え、
前記検索手段は、前記検索クエリを含むデータを前記マイクロブログデータから検索する、
付記１又は２に記載の文生成装置。
【００８５】
（付記４）
前記抽出手段は、前記主題語および該主題語に関連する関連語を前記検索クエリとして抽出する、
付記３に記載の文生成装置。
【００８６】
（付記５）
前記検索手段は、前記ユーザの発言時刻から予め設定された時間の間に投稿されたマイクロブログデータの中から、前記検索クエリを含むデータを検索する、
付記３又は４に記載の文生成装置。
【００８７】
（付記６）
前記検索手段が検索したデータを投稿した他のユーザと前記ユーザとの関連度を評価する評価手段を、さらに備え、
前記文章作成手段は、前記検索したデータの中から前記関連度に基づいて選択したデータを使用して、前記ユーザの発言に応答する文章を作成する、
付記１から５の何れか一に記載の文生成装置。
【００８８】
（付記７）
前記評価手段は、前記ユーザの発言の主題語に関連する投稿を多くした他のユーザと前記ユーザとの関連度を高く評価する、
付記６に記載の文生成装置。
【００８９】
（付記８）
ユーザの発言の語尾部分を編集して応答文の語尾部分を含むテンプレートを作成するテンプレート作成手段を備え、
前記文章作成手段は、前記検索したデータを前記テンプレートにあてはめて、前記ユーザの発言に応答する文章を作成する、
付記１から７の何れか一に記載の文生成装置。
【００９０】
（付記９）
前記テンプレート作成手段は、疑似性格を表現する文章の語尾を含むテンプレートを作成する、
付記８に記載の文生成装置。
【００９１】
（付記１０）
ユーザの発言を取得する取得ステップと、
取得した前記ユーザの発言の少なくとも一部を含むデータをマイクロブログデータから検索する検索ステップと、
前記検索ステップで検索したデータを使用して前記ユーザの発言に応答する文章を作成する文章作成ステップと、
前記文章作成ステップで作成した文章を前記ユーザに応答するステップと、
を含む文生成方法。
【００９２】
（付記１１）
コンピュータを、
ユーザの発言を取得する取得手段、
取得した前記ユーザの発言の少なくとも一部を含むデータをマイクロブログデータから検索する検索手段、
前記検索手段が検索したデータを使用して前記ユーザの発言に応答する文章を作成する文章作成手段、
として機能させるためのプログラム。
【符号の説明】
【００９３】
１…対話システム、１０…ペットロボット、１００…文生成装置、１１０…制御部、１１
１…音声入力部、１１２…文字入力部、１１３…音声出力部、１１４…表示部、１１５…通信部、１２０…記憶部、１２１…主題語データ記憶部、１２２…関連語データ記憶部、１２３…関連ユーザデータ記憶部、１３０…取得部、１４０…検索部、１５０…評価部、１６０…文章作成部、１６１…選択部、１６２…テンプレート作成部、１６３…応答文作成部、１７０…検索クエリ抽出部、１７１…主題語抽出部、１７２…関連語推定部、１８０…ネット検索部、１８１…検索時間設定部、１８２…話題度評価部、２００…マイクロブログサーバ、３００…端末、ＮＷ…ネットワーク
【図１】
2018198097.tif 000003
【図２】
2018198097.tif 000004
【図３】
2018198097.tif 000005
【図４】
2018198097.tif 000006
【図５】
2018198097.tif 000007
【図６】
2018198097.tif 000008
【図７】
2018198097.tif 000009
【図８】
2018198097.tif 000010
【図９】
2018198097.tif 000011
【図１０】
2018198097.tif 000012
【図１１】
2018198097.tif 000013