(57)【要約】【課題】ユーザの発話に対して、明示されていないコンテクストを推定し、応答としての発話文を生成できる発話生成装置、発話生成方法及び発話生成プログラムを提供すること。【解決手段】発話生成装置１は、テレビ出力文Ｔから、キーワードデータベース１１に登録されているキーワードを抽出するキーワード抽出部３１と、抽出されたキーワードをキーワードメモリ１２に格納し、格納時から所定時間が経過したキーワードをキーワードメモリ１２から削除するキーワード管理部３２と、ユーザ発話文Ｕに含まれる代表語を探索する代表語探索部２１と、代表語の特徴ベクトルとキーワードメモリ１２に格納されているキーワードそれぞれの特徴ベクトルとの距離に基づいて、ユーザ発話文Ｕの対象語となるキーワードを決定する対象語推定部２２と、対象語及び代表語に基づいて応答発話文Ｒを生成する発話文生成部２３と、を備える。【選択図】図１
2020201748.tif 000002
【特許請求の範囲】
【請求項１】
入力文から、キーワードデータベースに登録されているキーワードを抽出するキーワード抽出部と、
抽出された前記キーワードをキーワードメモリに格納し、格納時から所定時間が経過した前記キーワードを前記キーワードメモリから削除するキーワード管理部と、
ユーザの発話文に含まれる代表語を探索する代表語探索部と、
前記代表語の特徴ベクトルと前記キーワードメモリに格納されている前記キーワードそれぞれの特徴ベクトルとの距離に基づいて、前記発話文の対象語となる前記キーワードを決定する対象語推定部と、
前記対象語及び前記代表語に基づいて応答発話文を生成する発話文生成部と、を備える発話生成装置。
【請求項２】
前記発話文生成部は、前記対象語を、前記代表語に対応するテンプレートに組み合わせて応答発話文を生成する請求項１に記載の発話生成装置。
【請求項３】
前記発話文生成部は、前記対象語及び前記代表語を含むパラメータにより、人工無能アプリケーションにアクセスし、前記応答発話文を取得する請求項１に記載の発話生成装置。
【請求項４】
前記入力文は、テレビ番組の映像又は音声から抽出される請求項１から請求項３のいずれかに記載の発話生成装置。
【請求項５】
前記入力文は、複数のユーザの発話文であり、
前記対象語推定部は、前記代表語を抽出したユーザとは異なるユーザの発話文から抽出されたキーワードの中から、前記対象語を決定する請求項１から請求項４のいずれかに記載の発話生成装置。
【請求項６】
入力文から、キーワードデータベースに登録されているキーワードを抽出するキーワード抽出ステップと、
抽出された前記キーワードをキーワードメモリに格納し、格納時から所定時間が経過した前記キーワードを前記キーワードメモリから削除するキーワード管理ステップと、
ユーザの発話文に含まれる代表語を探索する代表語探索ステップと、
前記代表語の特徴ベクトルと前記キーワードメモリに格納されている前記キーワードそれぞれの特徴ベクトルとの距離に基づいて、前記発話文の対象語となる前記キーワードを決定する対象語推定ステップと、
前記対象語及び前記代表語に基づいて応答発話文を生成する発話文生成ステップと、をコンピュータが実行する発話生成方法。
【請求項７】
請求項１から請求項５のいずれかに記載の発話生成装置としてコンピュータを機能させるための発話生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの発話文を生成するための装置、方法及びプログラムに関する。
【背景技術】
【０００２】
従来、人がコンピュータと会話を楽しむ手段として、例えば、人工無脳（チャットボット、会話ボット）が開発されている。人工無能は、人間の発言から応答文としてもっともらしいものを機械的に生成する方式を採用している。人工無脳の実装方法としては、発言と応答文とを会話のルールとして準備しておく辞書型、大量の会話のログから、ユーザの発言に最も近いものを探し、その応答ログを用いるログ型、大量の文章からマルコフ連鎖を作成し、文を生成するマルコフ文生成型などがある（例えば、非特許文献１及び２参照）。
【０００３】
近年、人工無脳を組み込むことで、人と対話する機能が実装されたコミュニケーションロボットが開発されている。人工無脳を組み込んだソフトウェアプログラム、又はコミュニケーションロボットは、ユーザの発話に含まれている単語を用いてもっともらしい応答文を生成している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−１８５５６１号公報
【特許文献２】特開２０１８−１９００７７号公報
【非特許文献】
【０００５】
【非特許文献１】冨坂亮太、鈴木崇史、「人工無脳（会話ボット）」、映像情報メディア学会誌、Ｖｏｌ．６４、Ｎｏ．１、ｐｐ．６４〜６６（２０１０）
【非特許文献２】秋山智俊、「恋するプログラム−Ｒｕｂｙでつくる人工無脳」、毎日コミュニケーションズ、２００５
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、人間同士の日常会話においては、発言としては明示していないがお互いに認識し共有している文脈や話題（コンテクスト）が存在することが多い。特にテレビ番組視聴中は、テレビ番組の内容を共通のコンテクストとして対話が進行するため、画面に映っているものの名称などを明示的に発話文に含めないことが多い。
しかしながら、一般的な人工無脳は、このようなコンテクストを考慮できていないという課題がある。このことは、会話が噛み合わない応答を行ってしまう原因となり、ユーザがコミュニケーションロボットに対して興味を失う要因の一つとなっている。
【０００７】
一方で、特許文献１には、ユーザの発話を記憶部に保存されているトピックに分類することで、ユーザの意図を汲み取った応答文を生成する技術が提案されている。また、特許文献２には、テレビ番組からキーワードを抽出しテンプレート文と組み合わせることで、自発的な発話を行いコミュニケーションを活性化させる技術が提案されている。
しかしながら、特許文献１の技術は、ユーザの発話文と記憶部に保存されているトピックとを比較するため、ユーザの発話文に含まれていないコンテクストを考慮できない。また、特許文献２の技術は、テレビ番組から抽出したキーワードとテンプレート文とから自発的な発話文を生成するため、ユーザの発話に対して応答文を生成できない。
【０００８】
本発明は、ユーザの発話に対して、明示されていないコンテクストを推定し、応答としての発話文を生成できる発話生成装置、発話生成方法及び発話生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る発話生成装置は、入力文から、キーワードデータベースに登録されているキーワードを抽出するキーワード抽出部と、抽出された前記キーワードをキーワードメモリに格納し、格納時から所定時間が経過した前記キーワードを前記キーワードメモリから削除するキーワード管理部と、ユーザの発話文に含まれる代表語を探索する代表語探索部と、前記代表語の特徴ベクトルと前記キーワードメモリに格納されている前記キーワードそれぞれの特徴ベクトルとの距離に基づいて、前記発話文の対象語となる前記キーワードを決定する対象語推定部と、前記対象語及び前記代表語に基づいて応答発話文を生成する発話文生成部と、を備える。
【００１０】
前記発話文生成部は、前記対象語を、前記代表語に対応するテンプレートに組み合わせて応答発話文を生成してもよい。
【００１１】
前記発話文生成部は、前記対象語及び前記代表語を含むパラメータにより、人工無能アプリケーションにアクセスし、前記応答発話文を取得してもよい。
【００１２】
前記入力文は、テレビ番組の映像又は音声から抽出されてもよい。
【００１３】
前記入力文は、複数のユーザの発話文であり、前記対象語推定部は、前記代表語を抽出したユーザとは異なるユーザの発話文から抽出されたキーワードの中から、前記対象語を決定してもよい。
【００１４】
本発明に係る発話生成方法は、入力文から、キーワードデータベースに登録されているキーワードを抽出するキーワード抽出ステップと、抽出された前記キーワードをキーワードメモリに格納し、格納時から所定時間が経過した前記キーワードを前記キーワードメモリから削除するキーワード管理ステップと、ユーザの発話文に含まれる代表語を探索する代表語探索ステップと、前記代表語の特徴ベクトルと前記キーワードメモリに格納されている前記キーワードそれぞれの特徴ベクトルとの距離に基づいて、前記発話文の対象語となる前記キーワードを決定する対象語推定ステップと、前記対象語及び前記代表語に基づいて応答発話文を生成する発話文生成ステップと、をコンピュータが実行する。
【００１５】
本発明に係る発話生成プログラムは、前記発話生成装置としてコンピュータを機能させるためのものである。
【発明の効果】
【００１６】
本発明によれば、ユーザの発話に対して、明示されていないコンテクストを推定し、応答としての発話文を生成できる。
【図面の簡単な説明】
【００１７】
【図１】実施形態における発話生成装置の機能構成を示すブロック図である。
【図２】実施形態におけるキーワードメモリに格納されたデータを例示する図である。
【図３】実施形態における代表語データベースの登録例を示す図である。
【図４】実施形態における特徴ベクトルデータベースの登録例を示す図である。
【図５】実施形態におけるテンプレートデータベースの登録例を示す図である。
【図６】実施形態におけるキーワード処理を示すフローチャートである。
【図７】実施形態における対象語推定部の動作イメージを例示する図である。
【図８】実施形態における応答生成処理を示すフローチャートである。
【図９】実施形態における人工無脳を利用した応答発話文の生成の例を示す図である。
【図１０】実施形態における複数ユーザとの対話における応答発話文の生成例を示す図である。
【発明を実施するための形態】
【００１８】
以下、本発明の第１実施形態について説明する。
本実施形態における発話生成装置１は、「食べたい」、「話したい」、「行きたい」などの要望を表す動詞を含む語句、又は「きれい」、「おいしそう」、「大きい」などの形容詞を含む語句を代表語と定義し、これらの代表語を含むテンプレート文と、代表語の特徴ベクトル及びキーワードデータベースに含まれる単語の特徴ベクトルを作成しておく。
【００１９】
発話生成装置１は、視聴中の番組のキーワードを一定期間保持し、代表語を含むユーザ発話文が入力されたときに、この代表語の特徴ベクトルと保持しているキーワードの特徴ベクトルとを比較する。そして、発話生成装置１は、特徴ベクトルの近いキーワードを、代表語に対するテンプレート文に組み合わせて応答発話文を生成する。
これにより、発話生成装置１は、ユーザ発話文において明示されていないコンテクストである対象語を推定した上で、適切な応答発話文を生成することができる。例えば、キーワードとして、「ラーメン」、「どんぶり」、「レンゲ」、「博多」が保持されている状態で、ユーザが「これ食べたいな」などと発言した場合に、代表語である「食べたい」と特徴ベクトルの近い「ラーメン」が対象語として選択され、テンプレート文と組み合わせることで、「僕もラーメン食べたい」などの応答発話文が生成される。
【００２０】
［全体構成］
図１は、本実施形態における発話生成装置１の機能構成を示すブロック図である。
発話生成装置１は、制御部及び記憶部の他、各種インタフェースを備えた情報処理装置であり、記憶部に格納されたソフトウェア（発話生成プログラム）を制御部が実行することにより、本実施形態の各種機能が実現される。
【００２１】
発話生成装置１の記憶部は、キーワードデータベース１１と、キーワードメモリ１２と、代表語データベース１３と、特徴ベクトルデータベース１４と、テンプレートデータベース１５とを備える。
また、発話生成装置１の制御部は、応答生成処理ブロック２０として、代表語探索部２１と、対象語推定部２２と、発話文生成部２３とを備え、キーワード処理ブロック３０として、キーワード抽出部３１と、キーワード管理部３２とを備える。
【００２２】
本実施形態では、発話生成装置１は、テレビのそばに置かれたコミュニケーションロボットの内部に組み込まれる。
そして、発話生成装置１には、ユーザ発話文Ｕとテレビ出力文Ｔとが入力され、応答発話文Ｒが出力される。
【００２３】
［ユーザ発話文Ｕ］
ユーザ発話文Ｕは、音声入力装置４０に入力された入力音声Ｖｉのうち、ユーザの発した音声のみを抽出してテキスト化したものである。なお、音声入力装置４０は、コミュニケーションロボットに組み込まれ、複数のマイクを備えたマイクロフォンアレイにより構成される。
【００２４】
コミュニケーションロボットは、テレビのそばに置かれるため、音声入力装置４０に入力される入力音声Ｖｉは、ユーザの発話音声の他、テレビから出力された音声を含む複数の音源からの合成音となることが想定される。
そこで、合成音は、音源定位・分離ユニット４１により、入力された各音声の方向が検出され音源方向毎の音声に分離される。続いて、分離した音声の中からユーザの発話音声のみが抽出されると、音声認識ユニット４２により、テキストに変換されたユーザ発話文Ｕが得られる。
【００２５】
音源定位・分離ユニット４１には、例えば次の文献Ａの手法を、音声認識ユニット４２には、例えば次の文献Ｂの手法を用いることができるが、実現手法はこれらに限られない。
文献Ａ：  中臺一博、奥乃博、中島弘史、長谷川雄二、辻野広司、「ロボット聴覚オープンソースソフトウェアＨＡＲＫの概要と評価」、第２６回日本ロボット学会学術講演会、２００８
文献Ｂ：  篠崎隆宏、「Ｋａｌｄｉツールキットを用いた音声認識システムの構築」、信学技報  １１６（２７９）、ｐｐ２５−２９、２０１６
【００２６】
なお、テレビが出力する音声を取り除きユーザの発話音声のみを抽出するためには、テレビ及びユーザの方向が必要であるが、ロボット、テレビ及びユーザの位置関係を予めパラメータとして与える方法、ロボットがカメラから画像を取得して画像処理によりテレビ及びユーザの方向を識別する方法、音声入力の頻度からテレビ及びユーザの方向を推定する方法などが利用できる。
【００２７】
［テレビ出力文Ｔ］
テレビ出力文Ｔは、テレビの放送番組に付加されている字幕文（クローズドキャプション）であってよい。放送番組からの字幕文の抽出方法としては、例えば、ロボットがテレビ受像機と連動して、字幕情報を取得したり、放送連動サービスとして、インターネットなどの通信設備を用いて配信された字幕情報を受信したりする方法が考えられる。
また、テレビ出力文Ｔは、字幕文に限ったものではなく、例えば、ロボットに装備されたマイク又はカメラを用いて、テレビ音声から音声認識により文が抽出されてもよいし、テレビ映像のキャプチャ画像から画像処理によりオープンキャプションが抽出されてもよい。あるいは、既存の画像認識技術により、被写体の名称又は説明文などが生成されてもよい。
【００２８】
［応答発話文Ｒ］
応答発話文Ｒは、音声合成ユニット５１により音声へと変換され、スピーカにより構成される音声出力装置５０から音声出力される。
音声合成ユニット５１の実現手法は限定されないが、例えば次の文献Ｃの手法を用いることができる。
文献Ｃ：  大浦圭一郎、「日本語テキスト音声合成システム  Ｏｐｅｎ  ＪＴａｌｋ」、日本音響学会春季講論集、２０１０  １、ｐｐ３４３−３４４、２０１０
【００２９】
［キーワードデータベース１１］
キーワードデータベース１１は、キーワードが登録されたデータベースである。ここで、キーワードとは、主に、人名、地名、施設などの固有名詞又は一般名詞などである。本実施形態では、キーワードデータベース１１には、テレビ出力文Ｔから対象語（コンテクスト）の候補として抽出したい単語（キーワード）が予め登録されているものとする。
【００３０】
［キーワードメモリ１２］
キーワードメモリ１２は、テレビ出力文Ｔから抽出されたキーワードを一定期間保持するためのメモリである。
【００３１】
図２は、本実施形態におけるキーワードメモリ１２に格納されたデータを例示する図である。
この例では、キーワードメモリ１２には、「ラーメン」、「どんぶり」、「レンゲ」、「博多」の４つのキーワードが格納されており、それぞれのキーワードが格納された日時も各キーワードに対応付けて保存されている。
【００３２】
キーワードメモリ１２に格納されてから一定期間経過したキーワードについては、キーワード管理部３２により削除される。ここでいう一定期間には、任意の時間が設定されてよいが、一般的に人間が何らかの話題に対して反応する時間と処理の遅延時間とを考慮し、例えば１５秒程度が設定される。
なお、発話生成装置１の動作開始時には、キーワードメモリ１２にはキーワードが保存されていない状態である。
【００３３】
［代表語データベース１３］
代表語データベース１３には、発話の特徴を示す代表語として感情を表す動詞及び形容詞を含む語句が登録されており、さらに、この代表語と意味が類似する別表現が登録される。
【００３４】
図３は、本実施形態における代表語データベース１３の登録例を示す図である。
この例では、同じ又は似た意味の異なる表現を統一的に扱うため、種別、代表語、別表現の３つのフィールドのデータがリストとして保管されている。
【００３５】
種別は、代表語の種別（品詞）を表しており、例えば、ｖは動詞、ａは形容詞を表している。
代表語は、感情を表す動詞又は形容詞を含む語句であり、例えば、動詞を含む代表語として「話したい」、「聞きたい」、「食べたい」が登録されており、形容詞を含む代表語として「きれい」、「おもしろい」、「好き」が登録されている。
【００３６】
別表現のフィールドには、代表語と同じ又は似た意味の異なる表現が登録されている。
例えば、「話したい」の別表現として「おしゃべりしたい」、「しゃべってみたい」、「しゃべりたい」、「言いたい」、「言ってみたい」が、「聞きたい」の別表現として、「聞いてみたい」、「お聞きしたい」、「聴いてみたい」が、「食べたい」の別表現として「食いたい」、「食べちゃいたい」、「食べてみたい」が登録されている。
さらに、「きれい」の別表現として「綺麗」が、「おもしろい」の別表現として「面白い」が、「好き」の別表現として「大好き」が登録されている。
【００３７】
ここで、代表語データベース１３には、ひらがな表記と漢字表記とが別の語として登録されている。例えば、字幕文は、放送局又は番組によって使用される表記が異なるが、いずれの表記にもマッチングさせることができる。
なお、本実施形態では、代表語データベース１３にも、キーワードデータベース１１と同様に、代表語と別表現とが予め登録されているものとする。
【００３８】
［特徴ベクトルデータベース１４］
特徴ベクトルデータベース１４には、代表語及び他のキーワードを含む単語又は語句と、各語に対応する分散表現である特徴ベクトルとが登録される。
【００３９】
本実施形態では、特徴ベクトルとして、既知の手法であるｗｏｒｄ２ｖｅｃによって算出される特徴ベクトルを用いるものとする。ｗｏｒｄ２ｖｅｃは、３層のニューラルネットワークを用いており、分かち書きされた大量の文章を入力することで算出された特徴ベクトルは、類似した語が距離的に近いベクトルになることが経験的に知られている。
なお、特徴ベクトルの算出方法は、ｗｏｒｄ２ｖｅｃに限定されるものではなく、意味的に近い語の特徴ベクトルがベクトル空間上で近くに分布する演算方式であればよい。
【００４０】
図４は、本実施形態における特徴ベクトルデータベース１４の登録例を示す図である。
この例では、「ラーメン」の特徴ベクトルとしてｖｅｃ１が登録され、以下、「どんぶり」、「レンゲ」、「博多」、「食べたい」、「聞きたい」、「話したい」の特徴ベクトルとしてそれぞれ、ｖｅｃ２〜ｖｅｃ７が登録され、全部でＮ個の特徴ベクトルが登録されている。
特徴ベクトルデータベース１４には、予め大量の文章を入力として学習した特徴ベクトルが登録され、キーワードデータベース１１及び代表語データベース１３に含まれる語の特徴ベクトルが含まれる必要がある。
【００４１】
［テンプレートデータベース１５］
テンプレートデータベース１５には、代表語に対する発話文のテンプレートが登録される。代表語は、代表語データベース１３の代表語フィールドに登録されている語と同じである。
【００４２】
図５は、本実施形態におけるテンプレートデータベース１５の登録例を示す図である。
この例では、テンプレートデータベース１５には、「使いたい」という代表語に対して、「％ｋｅｙを使ってみたい」、「今度％ｋｅｙを使ってみよう」などのテンプレート文が登録されている。また、同様に、「飲みたい」、「食べたい」、「きれい」、「おもしろい」、「好き」の各代表語に対応するテンプレート文が登録されている。
ここで、％ｋｅｙは、何らかのキーワードに置き換えられる箇所を示している。
なお、テンプレートデータベース１５のデータは、予め準備され登録される。
【００４３】
発話生成装置１による発話生成処理は、これらの各種データベースを利用し、応答生成処理ブロック２０とキーワード処理ブロック３０の各機能ブロックそれぞれの処理から構成される。これら２つの処理は並列で行われてよい。
【００４４】
［キーワード処理］
キーワード処理は、キーワード処理ブロック３０を構成するキーワード抽出部３１及びキーワード管理部３２により実行される。
【００４５】
キーワード抽出部３１は、テレビ出力文Ｔ（発話生成装置１への入力文）の中に、キーワードデータベース１１に登録されているキーワードが含まれているかどうかを検索する。キーワードが含まれていない場合、キーワード抽出部３１は、次のテレビ出力文Ｔが入力されるまで待機する。キーワードが含まれていた場合は、キーワード抽出部３１は、該当のキーワードを抽出しキーワード管理部３２に入力する。
なお、テレビ出力文Ｔに複数のキーワードが含まれていた場合は、これら全てがキーワード管理部３２に入力されてよい。
【００４６】
キーワード管理部３２は、キーワードメモリ１２に一時的に保持されるキーワードを管理する。具体的には、キーワード管理部３２は、キーワード抽出部３１より入力されたキーワードを、時刻情報と共にキーワードメモリ１２に格納する。また、キーワード管理部３２は、発話生成装置１の動作開始時にキーワード保持時間を予め設定しておき、キーワードメモリ１２に格納されてからキーワード保持時間が経過したキーワードを、キーワードメモリ１２から削除する。
これにより、キーワードメモリ１２には、視聴中のテレビ番組において現在話題になっているキーワードが所定期間（例えば、１５秒間）保持される。
【００４７】
図６は、本実施形態におけるキーワード処理を示すフローチャートである。
ステップＳ１において、キーワード抽出部３１は、発話生成装置１への入力テキストとしてテレビ出力文Ｔを受け付ける。
【００４８】
ステップＳ２において、キーワード抽出部３１は、受け付けたテレビ出力文Ｔの中に、キーワードデータベース１１に登録されているキーワードが含まれているか否かを判定する。この判定がＹＥＳの場合、処理はステップＳ３に移り、判定がＮＯの場合、処理は終了する。
【００４９】
ステップＳ３において、キーワード管理部３２は、テレビ出力文Ｔに含まれていたキーワードを、時刻情報と共にキーワードメモリ１２に格納する。
なお、格納されたキーワードは、本処理とは別に、所定のキーワード保持時間が経過すると、キーワードメモリ１２から削除される。
【００５０】
［応答生成処理］
応答生成処理は、応答生成処理ブロック２０を構成する代表語探索部２１、対象語推定部２２、及び発話文生成部２３により実行される。
【００５１】
代表語探索部２１は、入力されたユーザ発話文Ｕに、代表語データベース１３に格納されている代表語又はその別表現が含まれているかどうかを探索する。代表語データベース１３の代表語及びその別表現がユーザ発話文Ｕに含まれていた場合、代表語探索部２１は、ユーザ発話文Ｕとそれに含まれていた代表語とを、対象語推定部２２に入力する。
なお、ユーザ発話文Ｕに複数の代表語が含まれていた場合、代表語探索部２１は、これら全てを対象語推定部２２に入力してよい。また、代表語が一つも含まれていない場合、対象語推定部２２への入力はなく、代表語探索部２１は、次のユーザ発話文Ｕが入力されるまで待機する。
【００５２】
対象語推定部２２は、ユーザ発話文Ｕと代表語とからユーザ発話の対象語となるキーワードをキーワードメモリ１２から推定する。
具体的には、まず、ユーザ発話文Ｕに、キーワードメモリ１２に格納されているキーワードが含まれているかどうかを確認する。キーワードがユーザ発話文Ｕに含まれていた場合、このユーザ発話文Ｕに含まれる代表語の対象は、確認されたキーワードであることが明示的であり推定する必要がない。例えば、ユーザ発話文Ｕが「このラーメンおいしそう」であった場合、代表語である「おいしそう」の対象がキーワード「ラーメン」であることは自明である。
【００５３】
なお、本実施形態では、対象語推定部２２は、単にユーザ発話文Ｕに対して、キーワードメモリ１２に格納されているキーワードが含まれているかどうかのみを確認することとしているが、例えば、係り受け解析技術などを利用することで、より高精度に対象語を特定することができる。
【００５４】
一方、ユーザ発話文Ｕに、キーワードメモリ１２に格納されているキーワードが含まれていない場合、対象語推定部２２は、対象語となるキーワードを推定する。このとき、対象語推定部２２は、代表語探索部２１において抽出された代表語及びキーワードメモリ１２に含まれているキーワードそれぞれの特徴ベクトルを特徴ベクトルデータベース１４から取り出し、特徴ベクトル間の距離を計算する。
ここで、キーワードメモリ１２に格納されているキーワードｋの特徴ベクトルをｖｅｃｋ、ユーザ発話文Ｕに含まれる代表語ｔの特徴ベクトルをｖｅｃｔとしたとき、ｖｅｃｋとｖｅｃｔとの間の距離として、例えば、次式のコサイン類似度ｃｏｓ（ｖｅｃｋ，ｖｅｃｔ）が利用できる。
cos(veck,vect)=(veck・vect)/(|veck||vect|)
【００５５】
次に、対象語推定部２２は、キーワードメモリ１２に含まれるキーワードの特徴ベクトルと、ユーザ発話文Ｕに含まれる代表語の特徴ベクトルとのコサイン類似度の計算結果を、値の大きい順にランキング（ソート）する。そして、対象語推定部２２は、ランキングが最上位であり、ユーザ発話文Ｕに含まれる代表語に関連が強いキーワードを、キーワードメモリ１２の中から推定結果として決定する。対象語として決定されたキーワードは、発話文生成部２３に入力される。
【００５６】
なお、代表語探索部２１において複数の代表語が抽出された場合、対象語推定部２２は、複数の代表語それぞれに対してキーワードメモリ１２に含まれるキーワードとのコサイン類似度を計算した後、全ての計算結果を値の大きい順にランキング（ソート）し、最もコサイン類似度の大きい代表語とキーワードとのペアを発話文生成部２３に入力する。
【００５７】
図７は、本実施形態における対象語推定部２２の動作イメージを例示する図である。
この例では、キーワードメモリ１２には、「ラーメン」、「どんぶり」、「レンゲ」、「博多」の４つのキーワードが格納されており、それぞれの特徴ベクトルは、特徴ベクトルデータベース１４により、ｖｅｃ１、ｖｅｃ２、ｖｅｃ３、ｖｅｃ４と定義されている。このとき、ユーザ発話文Ｕに代表語「食べたい」（特徴ベクトルｖｅｃ５）が含まれていた場合を考える。
【００５８】
本実施形態の特徴ベクトルは、例えば、「ラーメン」の近くに「うどん」、「カレー」、「焼きそば」などが分布するように、似た傾向の語の特徴ベクトルが近くなる。これと共に、関連のある語の特徴ベクトルも近くなる。すなわち、「ラーメン」のような食べ物の特徴ベクトルは、「食べたい」という特徴ベクトルと近い位置に分布し、その一方で、「博多」などの地名の特徴ベクトルは、「食べたい」の特徴ベクトルとは遠い距離に分布している。これにより、代表語「食べたい」に対して、キーワードメモリ１２に含まれるキーワードの中では、「ラーメン」というキーワードが最もコサイン類似度が高くなり、代表語「食べたい」の対象語はキーワード「ラーメン」であると推定される。
【００５９】
発話文生成部２３は、ユーザ発話文Ｕに含まれている代表語に対応して、テンプレートデータベース１５に登録されているテンプレートの中から、ランダムにテンプレートを選択する。そして、発話文生成部２３は、選択したテンプレート内の「％ｋｅｙ」の部分を、対象語推定部２２により対象語として推定されたキーワードに置き換えることで、発話文を生成する。
【００６０】
例えば、ユーザ発話文Ｕに含まれている代表語が「食べたい」で、対象語としてキーワードメモリ１２内の「ラーメン」が推定されているとする。この場合、図５のテンプレートデータベース１５から、代表語「食べたい」に対して登録されたテンプレートの１番目が選ばれると、発話文は、対象語「ラーメン」を組み合わせて「僕もラーメン食べたい」となる。
発話生成装置１は、このように生成した発話文を応答発話文Ｒとして出力する。
【００６１】
なお、本実施形態では、発話文生成部２３は、代表語に対して複数登録されたテンプレートをランダムに選択するものとして説明したが、これには限られない。例えば、特定のテンプレートに重み付けをして選択しやすくし、選択確率に偏りを持たせてもよいし、この選択確率を視聴番組に関連して適宜更新することで、発話文に個性を持たせてもよい。
【００６２】
図８は、本実施形態における応答生成処理を示すフローチャートである。
ステップＳ１１において、代表語探索部２１は、ユーザ発話文Ｕを受け付ける。
【００６３】
ステップＳ１２において、代表語探索部２１は、ユーザ発話文Ｕの中に、代表語データベース１３に格納されている代表語又はその別表現が含まれているか否かを判定する。この判定がＹＥＳの場合、処理はステップＳ１３に移り、判定がＮＯの場合、処理は終了する。
【００６４】
ステップＳ１３において、対象語推定部２２は、ユーザ発話文Ｕの中に、キーワードメモリ１２に格納されているキーワードが含まれているか否かを判定する。この判定がＹＥＳの場合、ユーザ発話文Ｕに含まれているキーワードを対象語とし、処理はステップＳ１５に移る。一方、判定がＮＯの場合、処理はステップＳ１４に移る。
【００６５】
ステップＳ１４において、対象語推定部２２は、代表語の特徴ベクトルと、キーワードメモリ１２に格納されているキーワード毎の特徴ベクトルとの距離をそれぞれ算出し、最も距離が近いキーワードを対象語として決定する。
【００６６】
ステップＳ１５において、発話文生成部２３は、代表語に対応するテンプレートを選択する。
【００６７】
ステップＳ１６において、発話文生成部２３は、テンプレートに対象語を組み合わせて、応答発話文Ｒを生成して出力する。
【００６８】
本実施形態によれば、発話生成装置１は、ユーザ発話文Ｕから代表語を、テレビ出力文Ｔからキーワードをそれぞれ抽出し、代表語の特徴ベクトルと距離が近く、かつ、所定時間内に用いられたキーワードを対象語として組み合わせ、応答発話文Ｒを生成する。
これにより、発話生成装置１は、テレビ番組視聴中にユーザが発した、感情を表現し、かつ、対象となるコンテクストを明示的に含んでいない発話、例えば、ラーメンが出てきたシーンで発した「これ食べたいな」というような発話に対して、「このラーメン食べてみたいね」、「僕は味噌ラーメンが好き」のように、明示されていないコンテクストを推定した上で、応答としての発話文を生成できる。
【００６９】
したがって、発話生成装置１をコミュニケーションロボットに組み込むことで、ユーザの発話文に明示されていなかった対象語を推定し、対象語を含んだ応答文により人と対話できるコミュニケーションロボットが実現される。この結果、発話生成装置１は、会話が噛み合わない応答を行ってしまうことを防ぎ、コミュニケーションロボットに対してユーザが愛着を持つことの手助けとなることが期待できる。
【００７０】
また、発話生成装置１は、対象語を、代表語に対応するテンプレートに組み合わせて応答発話文Ｒを生成することにより、容易に応答発話文Ｒを生成することができる。
【００７１】
また、キーワードがテレビ番組の映像又は音声から抽出されることにより、発話生成装置１は、テレビ視聴中のユーザの発話に対して、コンテクストを考慮した適切な応答発話文Ｒを生成できる。
【００７２】
［第２実施形態］
以下、本発明の第２実施形態について説明する。
本実施形態では、発話文生成部２３の機能が第１実施形態とは異なり、外部の人工無能を利用して、応答発話文Ｒを生成する。
【００７３】
発話文生成部２３は、テンプレートデータベース１５を利用せず、対話ＡＰＩ呼出部２３１により、外部の人工無脳にアクセスする。
ここで、人工無脳は、テキスト又は音声を通じて会話を自動的に行うプログラムにより構成される。このような人工無脳は、インターネット上に存在する情報を収集し、ＳＮＳなどで話題となっている時事的な内容に関する対話を実現できるものも多い。
人工無脳は、ユーザから送られた文に対して返答を行う。例えば、ユーザが「ラーメン食べたい」と送ったとき、人工無脳からは、「僕は味噌ラーメンが好き」や「最近○○のラーメンが人気みたいだよ」などの返答が得られることが期待される。
【００７４】
図９は、本実施形態における人工無脳を利用した応答発話文Ｒの生成の例を示す図である。
この例では、「これ食べたい」というユーザ発話文Ｕに対して、代表語探索部２１において「食べたい」が代表語として抽出され、対象語推定部２２において「ラーメン」が対象語として推定された場合を示している。
【００７５】
代表語「食べたい」と対象語「ラーメン」を組み合わせることで「ラーメン食べたい」という文を作成することができる。この文は、ユーザ発話文Ｕに明示されていなかった対象語を補った文である。この文を人工無脳に送ることで、人工無脳からは、返答として「僕は味噌ラーメンが好き」といった文が返ってくる。発話文生成部２３は、人工無脳からの返答文を応答発話文Ｒとして出力することで、テンプレートデータベース１５を利用しない発話文生成を実現できる。
ここでは、人工無能に文をパラメータとして入力することを想定している。このため、代表語及び対象語から文を作成するためのテンプレートが予め用意されてもよいし、テンプレートデータベース１５が流用されてもよい。あるいは、語句を受け付け可能な人工無能の場合には、代表語及び対象語がそのままパラメータとして入力されてもよい。
【００７６】
なお、応答発話文Ｒを生成する際に、テンプレートデータベース１５を利用した手法と人工無脳を利用した手法とを併用することも可能である。発話文生成部２３は、これら２つの手法で生成した文のいずれかをランダムに出力してもよい。
また、複数の人工無脳を利用することも可能であるが、人工無脳は、その個性に合わせた一人称（私、僕、など）及び語尾（です、だよ、など）を利用している場合がある。この場合、テンプレートデータベース１５のテンプレート文に合わせて、文を整形して応答発話文Ｒとすることが好ましい。
【００７７】
本実施形態によれば、発話生成装置１は、対象語及び代表語を含むパラメータにより、人工無能にアクセスし、応答発話文を取得する。
これにより、発話生成装置１は、限られたテンプレートによらず、バリエーションに富む応答発話文Ｒを出力することができる。また、代表語及び対象語の組み合わせは、ユーザの発話内容を解釈したものであるため、これに対して、さらに応答となる文を取得することで、発話生成装置１は、ユーザの発話に応じた対話を実現できる。
【００７８】
なお、人工無能は、クラウドなどの外部サーバに設けられたアプリケーションであってよいが、これには限られず、発話生成装置１に組み込まれていてもよい。
【００７９】
［第３実施形態］
以下、本発明の第３実施形態について説明する。
発話生成装置１は、キーワードメモリ１２に含まれるキーワードの中からユーザ発話文Ｕに含まれる代表語の対象となるキーワードを推定するが、キーワードメモリ１２に格納されるキーワードが抽出されるテキストの発生元は限定されない。すなわち、対話の文脈となる対象語の発生元は、テレビ、ラジオ、人間など、様々なシチュエーションが考えられる。したがって、キーワード処理ブロック３０へ入力されるテキストを変更し、キーワードメモリ１２のデータを変更することで、異なるシチュエーションにおける発話文生成を実現できる。
【００８０】
本実施形態では、キーワード処理ブロック３０へ入力されるテキストが第１実施形態とは異なり、前述のテレビ出力文Ｔに代えて、複数のユーザの発話文となる。
これにより、キーワードメモリ１２には、複数のユーザそれぞれの発したキーワードがユーザと対応付けて格納される。
そして、対象語推定部２２は、代表語を抽出したユーザとは異なるユーザの発話文から抽出されたキーワードの中から対象語を決定する。
【００８１】
図１０は、本実施形態における複数ユーザとの対話における応答発話文Ｒの生成例を示す図である。
この例では、ユーザ２人のそばに発話生成装置１が組み込まれたコミュニケーションロボットがいる場合を想定している。
【００８２】
発話生成装置１は、音声入力装置４０及び音源定位・分離ユニット４１によって、２人のユーザの発話を分類して処理する。その後、音声認識ユニット４２によってテキスト化されたユーザ発話文Ｕは、代表語探索部２１に入力されると同時に、キーワード抽出部３１にも入力される。
このとき、キーワードメモリ１２には、キーワード及び格納日時のフィールドの他に、新たにユーザ情報を保存するフィールドが設けられる。このユーザ情報のフィールドには、キーワードが抽出される元となったユーザ発話文Ｕを発したユーザ名又はＩＤなどが格納される。
【００８３】
代表語探索部２１においてユーザ発話文Ｕから代表語が抽出されたとき、対象語推定部２２は、このユーザ発話文Ｕを発したユーザとは別のユーザが発したキーワードを、キーワードメモリ１２から抽出すると、これらのキーワードに対して代表語とのコサイン類似度を計算する。つまり、対象語推定部２２は、ユーザＸの発話文に対してはユーザＹが発したキーワード、ユーザＹの発話文に対してはユーザＸが発したキーワードの中から対象語を推定する。
【００８４】
例えば、図１０では、ユーザＸが発したキーワードとして「ラーメン」、ユーザＹが発したキーワードとして「焼き肉」及び「渋谷」がキーワードメモリ１２に格納されている。このとき、ユーザＸが「あ、それは食べたい。行ってみよう。」と発話した場合、代表語探索部２１により代表語「食べたい」が抽出される。対象語推定部２２は、キーワードメモリ１２内に格納されているユーザＹが発したキーワード「焼き肉」及び「渋谷」と、代表語「食べたい」とのコサイン類似度をそれぞれ計算し、ランキング（ソート）を行う。この結果、対象語としては「焼き肉」が選択され、テンプレートデータベース１５を利用することで、「僕も焼き肉食べたい」という応答発話文Ｒが生成される。
【００８５】
ユーザが３人以上の場合も同様に、対象語推定部２２は、代表語が抽出された発話文を発したユーザ以外が発したキーワードの中から対象語を推定することで、応答発話文Ｒを生成できる。
【００８６】
本実施形態によれば、発話生成装置１は、代表語を抽出した発話文を発したユーザとは異なるユーザの発話文から抽出されたキーワードの中から対象語を決定する。
これにより、発話生成装置１は、複数のユーザの会話の輪に入り、ユーザ間の話題を推定しつつ、いずれかのユーザの発話に対して応答できる。
【００８７】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【００８８】
前述の実施形態では、発話生成装置１は、ユーザの発話に対する応答として応答発話文Ｒを生成したが、他の発話文生成処理を組み合わせて対話のバリエーションを増やしてもよい。例えば、特許文献２に開示されているような、テレビ出力文Ｔに基づいて自発的に発話する処理と組み合わせることにより、ユーザの発話がないときにも、ロボットが発話するよう構成されてもよい。
【００８９】
前述の実施形態では、各種のデータベースは、発話生成装置１が備える構成としたが、これには限られず、データベースは、クラウドなどの外部サーバに配置されてもよい。
【００９０】
本実施形態では、主に発話生成装置１の構成と動作について説明したが、本発明はこれに限られず、各構成要素を備え、ロボットの発話文を生成するための方法、又はプログラムとして構成されてもよい。
【００９１】
さらに、発話生成装置１の機能を実現するためのプログラムをコンピュータで読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。
【００９２】
ここでいう「コンピュータシステム」とは、ＯＳや周辺機器などのハードウェアを含むものとする。また、「コンピュータで読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭなどの可搬媒体、コンピュータシステムに内蔵されるハードディスクなどの記憶装置のことをいう。
【００９３】
さらに「コンピュータで読み取り可能な記録媒体」とは、インターネットなどのネットワークや電話回線などの通信回線を介してプログラムを送信する場合の通信線のように、短時刻の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時刻プログラムを保持しているものも含んでもよい。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【符号の説明】
【００９４】
Ｒ  応答発話文
Ｔ  テレビ出力文
Ｕ  ユーザ発話文
１  発話生成装置
１１  キーワードデータベース
１２  キーワードメモリ
１３  代表語データベース
１４  特徴ベクトルデータベース
１５  テンプレートデータベース
２０  応答生成処理ブロック
２１  代表語探索部
２２  対象語推定部
２３  発話文生成部
３０  キーワード処理ブロック
３１  キーワード抽出部
３２  キーワード管理部
２３１  対話ＡＰＩ呼出部
【図１】
2020201748.tif 000003
【図２】
2020201748.tif 000004
【図３】
2020201748.tif 000005
【図４】
2020201748.tif 000006
【図５】
2020201748.tif 000007
【図６】
2020201748.tif 000008
【図７】
2020201748.tif 000009
【図８】
2020201748.tif 000010
【図９】
2020201748.tif 000011
【図１０】
2020201748.tif 000012