(57)【要約】【課題】ロボットがあたかも自立した感情を持っているように、テレビ番組に合わせて、感情を表す言葉を発話できる発話生成装置、発話生成方法及び発話生成プログラムを提供すること。【解決手段】発話生成装置１は、発話の特徴を示す代表語に対応付けて、発話文のテンプレートを記憶する発話テンプレートデータベース２３と、キーワードの特徴ベクトルを記憶する特徴ベクトルデータベース２４と、入力されたキーワードの特徴ベクトルと代表語の特徴ベクトルとの距離を算出するベクトル距離演算部１７と、距離に基づいて選択されたテンプレートに対して、入力されたキーワードを組み合わせて発話文を生成する発話文生成部１９と、を備える。【選択図】図１
2018190077.tif 000002
【特許請求の範囲】
【請求項１】
発話の特徴を示す代表語に対応付けて、発話文のテンプレートを記憶する発話テンプレートデータベースと、
キーワードの特徴ベクトルを記憶する特徴ベクトルデータベースと、
入力されたキーワードの特徴ベクトルと前記代表語の特徴ベクトルとの距離を算出する距離演算部と、
前記距離に基づいて選択された前記テンプレートに対して、前記入力されたキーワードを組み合わせて発話文を生成する発話文生成部と、を備える発話生成装置。
【請求項２】
前記距離に基づいて、前記代表語の順位付けを行う代表語ランキング部を備え、
前記発話文生成部は、前記順位付けによるランキングが上位の代表語を優先して、当該上位の代表語に対応する前記テンプレートを選択する請求項１に記載の発話生成装置。
【請求項３】
入力文から、キーワード辞書に登録されているキーワードを抽出するキーワード抽出部を備える請求項１又は請求項２に記載の発話生成装置。
【請求項４】
前記入力文に、前記キーワード辞書に登録されているキーワード、及び前記代表語又は当該代表語の別表現が含まれている場合、当該代表語に対応するテンプレートとして、前記入力文のうち、前記キーワードを一般化した文を登録するテンプレート登録部を備える請求項３に記載の発話生成装置。
【請求項５】
前記入力文を形態素解析し、分かち書き文に変換する形態素解析部と、
前記分かち書き文において、前記代表語又は前記代表語の別表現が複数の単語に分割されている場合、当該複数の単語を連結して前記代表語又は前記別表現に復元する過分割修正部と、
前記分かち書き文の各語の特徴ベクトルを演算し、前記特徴ベクトルデータベースを更新する特徴ベクトル演算部と、を備える請求項３又は請求項４に記載の発話生成装置。
【請求項６】
前記分かち書き文において、前記別表現を前記代表語に置き換える表現統一部を備え、
前記特徴ベクトル演算部は、前記別表現が前記代表語に置き換えられた後に、前記特徴ベクトルを演算する請求項５に記載の発話生成装置。
【請求項７】
前記特徴ベクトルデータベースから、前記代表語の特徴ベクトルとの距離が所定以内の単語を抽出し、前記別表現として辞書に登録する代表語辞書更新部を備える請求項４から請求項６のいずれかに記載の発話生成装置。
【請求項８】
発話の特徴を示す代表語に対応付けて、発話文のテンプレートを記憶し、キーワードの特徴ベクトルを記憶したコンピュータが、
入力されたキーワードの特徴ベクトルと前記代表語の特徴ベクトルとの距離を算出する距離演算ステップと、
前記距離に基づいて選択された前記テンプレートに対して、前記入力されたキーワードを組み合わせて発話文を生成する発話文生成ステップと、を実行する発話生成方法。
【請求項９】
発話の特徴を示す代表語に対応付けて、発話文のテンプレートを記憶し、キーワードの特徴ベクトルを記憶したコンピュータに、
入力されたキーワードの特徴ベクトルと前記代表語の特徴ベクトルとの距離を算出する距離演算ステップと、
前記距離に基づいて選択された前記テンプレートに対して、前記入力されたキーワードを組み合わせて発話文を生成する発話文生成ステップと、を実行させるための発話生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの発話文を生成するための装置、方法及びプログラムに関する。
【背景技術】
【０００２】
従来、人がコンピュータと対話をするコミュニケーションロボットが開発されている。例えば、人との対話を学習しながら対話するロボットとして、人工無脳と呼ばれる会話ボットが開発されている。
人工無脳は、人間の発言から応答文としてもっともらしいものを機械的に生成する方式を採用している。人工無脳の実装方法としては、発言と応答文とを会話のルールとして準備しておく辞書型、大量の会話のログから、ユーザの発言に最も近いものを探し、その応答ログを用いるログ型、大量の文章からマルコフ連鎖を作成し、文を生成するマルコフ文生成型等がある（例えば、非特許文献１，２参照）。
【０００３】
ところで、人工無脳を組み込んだソフトウェアプログラム、又はコミュニケーションロボットは、使い始めは目新しいものの、しばらく使っていると利用者は飽きてしまい、使わなくなってしまうという課題がある。これは、会話のパターンが不十分なこと、人の発話に対する人工無脳の応答がかみ合っていないことが多いこと等に起因する。
また、人工無脳は、人間からのアクション（発話）によって反応するが、人から積極的に、ロボットに日常的な会話を話し掛けることは少なく、発話内容が思いつかない点も長く使われない原因と考えられる。
【０００４】
また、人とロボットとの１対１の会話ではなく、人とロボットとが一緒にテレビを視聴することで、一人で見るよりも楽しく視聴できることを目的とした技術が提案されている。
例えば、特許文献１では、ユーザの嗜好とロボットの嗜好とからロボットの行動を決定し、番組の視聴中に一緒に応援させる技術が提案されている。特許文献２では、映像印象情報とユーザ感情情報とから、感情状態を決定し、ロボットが共感する感情表現をさせる技術が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４３６８３１６号公報
【特許文献２】特開２０１６−３６８８３号公報
【非特許文献】
【０００６】
【非特許文献１】冨坂亮太、鈴木崇史、「人工無脳（会話ボット）」、映像情報メディア学会誌、Ｖｏｌ．６４、Ｎｏ．１、ｐｐ．６４〜６６（２０１０）
【非特許文献２】秋山智俊「恋するプログラム−Ｒｕｂｙでつくる人工無脳」、毎日コミュニケーションズ、２００５
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１及び特許文献２の技術によれば、テレビを介在させることで、人がロボットに話しかけなくともロボットは動作するため、人とロボットの１対１の対話に比べ、ロボットが長く利用され得る。
しかしながら、これらは、テレビを人と一緒に共感しながら見て楽しむロボットを目的とした技術であり、テレビを視聴して楽しんでいる人を対象としている。例えば、独居者の多くは、一人でテレビを見ていること、また、特にテレビが見たいわけではないが、部屋が静かすぎることを紛らわすためにテレビを付けたままにしていることも多い。
【０００８】
本発明は、ロボットがあたかも自立した感情を持っているように、テレビ番組に合わせて、感情を表す言葉を発話できる発話生成装置、発話生成方法及び発話生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る発話生成装置は、発話の特徴を示す代表語に対応付けて、発話文のテンプレートを記憶する発話テンプレートデータベースと、キーワードの特徴ベクトルを記憶する特徴ベクトルデータベースと、入力されたキーワードの特徴ベクトルと前記代表語の特徴ベクトルとの距離を算出する距離演算部と、前記距離に基づいて選択された前記テンプレートに対して、前記入力されたキーワードを組み合わせて発話文を生成する発話文生成部と、を備える。
【００１０】
前記発話生成装置は、前記距離に基づいて、前記代表語の順位付けを行う代表語ランキング部を備え、前記発話文生成部は、前記順位付けによるランキングが上位の代表語を優先して、当該上位の代表語に対応する前記テンプレートを選択してもよい。
【００１１】
前記発話生成装置は、入力文から、キーワード辞書に登録されているキーワードを抽出するキーワード抽出部を備えてもよい。
【００１２】
前記発話生成装置は、前記入力文に、前記キーワード辞書に登録されているキーワード、及び前記代表語又は当該代表語の別表現が含まれている場合、当該代表語に対応するテンプレートとして、前記入力文のうち、前記キーワードを一般化した文を登録するテンプレート登録部を備えてもよい。
【００１３】
前記発話生成装置は、前記入力文を形態素解析し、分かち書き文に変換する形態素解析部と、前記分かち書き文において、前記代表語又は前記代表語の別表現が複数の単語に分割されている場合、当該複数の単語を連結して前記代表語又は前記別表現に復元する過分割修正部と、前記分かち書き文の各語の特徴ベクトルを演算し、前記特徴ベクトルデータベースを更新する特徴ベクトル演算部と、を備えてもよい。
【００１４】
前記発話生成装置は、前記分かち書き文において、前記別表現を前記代表語に置き換える表現統一部を備え、前記特徴ベクトル演算部は、前記別表現が前記代表語に置き換えられた後に、前記特徴ベクトルを演算してもよい。
【００１５】
前記発話生成装置は、前記特徴ベクトルデータベースから、前記代表語の特徴ベクトルとの距離が所定以内の単語を抽出し、前記別表現として辞書に登録する代表語辞書更新部を備えてもよい。
【００１６】
本発明に係る発話生成方法は、発話の特徴を示す代表語に対応付けて、発話文のテンプレートを記憶し、キーワードの特徴ベクトルを記憶したコンピュータが、入力されたキーワードの特徴ベクトルと前記代表語の特徴ベクトルとの距離を算出する距離演算ステップと、前記距離に基づいて選択された前記テンプレートに対して、前記入力されたキーワードを組み合わせて発話文を生成する発話文生成ステップと、を実行する。
【００１７】
本発明に係る発話生成プログラムは、発話の特徴を示す代表語に対応付けて、発話文のテンプレートを記憶し、キーワードの特徴ベクトルを記憶したコンピュータに、入力されたキーワードの特徴ベクトルと前記代表語の特徴ベクトルとの距離を算出する距離演算ステップと、前記距離に基づいて選択された前記テンプレートに対して、前記入力されたキーワードを組み合わせて発話文を生成する発話文生成ステップと、を実行させるためのものである。
【発明の効果】
【００１８】
本発明によれば、ロボットがあたかも自立した感情を持っているように、視聴中のテレビ番組に合わせて、感情を表す言葉を発話でき、小さな子供がテレビを見て喜んでいる様子を、周囲の大人が微笑ましく眺めるような効果が期待できる。
【図面の簡単な説明】
【００１９】
【図１】実施形態に係る発話生成装置の機能構成を示すブロック図である。
【図２】実施形態に係る代表語辞書の登録例を示す図である。
【図３】実施形態に係る発話テンプレートデータベースの登録例を示す図である。
【図４】実施形態に係る特徴ベクトルデータベースの登録例を示す図である。
【図５】実施形態に係る入力文の変換例を示す図である。
【図６】実施形態に係るテンプレート登録処理を示すフローチャートである。
【図７】実施形態に係る関連語選択の動作イメージを示す図である。
【図８】実施形態に係る代表語辞書の更新処理を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態の一例について説明する。
本実施形態に係る発話生成装置１は、「食べたい」、「話したい」、「行きたい」等の願望を表す動詞を含む語句と、「きれい」、「おいしそう」、「大きい」等の形容詞とを含む代表語に対して、これらの代表語を含むテンプレート文と、代表語を含む多数のキーワードの特徴ベクトルとを用意しておく。
【００２１】
発話生成装置１は、視聴中の番組のキーワードに対して、このキーワードの特徴ベクトルと代表語の特徴ベクトルとを比較し、キーワードと距離が近い代表語に対するテンプレート文に、対象のキーワードを組み合わせて発話文を生成する。
これにより、発話生成装置１は、キーワードに対して、適切な動詞又は形容詞の代表語を選択し、例えば、キーワード「ラーメン」に対しては、代表語として「食べたい」、「おいしそう」等を選択し、テンプレートから「ラーメン食べたいな」、「おいしそうなラーメンだな」等の発話文を生成できる。
【００２２】
図１は、本実施形態に係る発話生成装置１の機能構成を示すブロック図である。
発話生成装置１は、制御部及び記憶部の他、各種インタフェースを備えた情報処理装置であり、記憶部に格納されたソフトウェア（発話生成プログラム）を制御部が実行することにより、本実施形態の各種機能が実現される。
【００２３】
発話生成装置１の制御部は、形態素解析部１１と、過分割修正部１２と、テンプレート登録部１３と、表現統一部１４と、特徴ベクトル演算部１５と、キーワード抽出部１６と、ベクトル距離演算部１７と、代表語ランキング部１８と、発話文生成部１９と、代表語辞書更新部２０とを備える。
また、発話生成装置１の記憶部は、キーワード辞書２１と、代表語辞書２２と、発話テンプレートデータベース（ＤＢ）２３と、特徴ベクトルデータベース２４とを備える。
【００２４】
本実施形態では、発話生成装置１は、テレビの側に置かれたコミュニケーションロボットの内部に組み込まれる。
発話生成装置１へは、テレビの放送番組に付加されている字幕文（クローズドキャプション）が入力文Ｉとして入力されることとして説明を行う。放送番組からの字幕文の抽出方法としては、例えば、ロボットがテレビ受像機と連動して、字幕情報を取得したり、放送連動サービスとして、インターネット等の通信設備を用いて配信された字幕情報を受信したりする方法が考えられる。
また、入力文Ｉは、字幕文に限ったものではなく、ロボットに装備されたカメラ又はマイクロフォンを用いて、テレビの画像から画像処理によりオープンキャプションが取得されてもよいし、音声から音声認識により文が抽出されてもよい。
【００２５】
キーワード辞書２１は、キーワードが登録されたデータベースである。ここで、キーワードとは、主に、人名、地名、施設等の固有名詞又は一般名詞等である。本実施形態では、キーワード辞書２１にキーワードが予め登録されているものとする。
【００２６】
代表語辞書２２は、発話の特徴を示す代表語に対応付けて、この代表語と意味が類似する別表現が登録されたデータベースである。
図２は、本実施形態に係る代表語辞書２２の登録例を示す図である。
この例では、代表語辞書２２に、種別、代表語及び別表現の３つのフィールドのデータがリストとして保管されている。
【００２７】
種別は、代表語の種別（品詞）を表しており、例えば、ｖは動詞、ａは形容詞を表している。
代表語は、感情を表す動詞又は形容詞を含む語であり、例えば、動詞の代表語として「話したい」、「聞きたい」、「食べたい」が登録されており、形容詞の代表語として「きれい」、「おもしろい」、「好き」が登録されている。
【００２８】
別表現のフィールドには、代表語と同じ又は類似した意味の、異なる表現が登録される。例えば、「話したい」の別表現として「おしゃべりしたい」、「しゃべってみたい」、「しゃべりたい」、「言いたい」、「言ってみたい」が、「聞きたい」の別表現として、「聞いてみたい」、「お聞きしたい」、「聴いてみたい」が、「食べたい」の別表現として「食いたい」、「食べちゃいたい」、「食べてみたい」が登録されている。
さらに、「きれい」の別表現として「綺麗」、「おもしろい」の別表現として「面白い」、「好き」の別表現として「大好き」が登録されている。
【００２９】
ここで、代表語辞書２２には、ひらがな表記と漢字表記とが別の語として登録されている。例えば、字幕文は、放送局又は番組によって使用される表記が異なるが、いずれの表記にもマッチングさせることができる。
なお、本実施形態では、代表語辞書２２に、代表語と別表現とが予め登録されているものとする。
【００３０】
発話テンプレートデータベース２３は、発話生成装置１が生成する発話文のテンプレートが登録されたデータベースである。
図３は、本実施形態に係る発話テンプレートデータベース２３の登録例を示す図である。
【００３１】
発話テンプレートデータベース２３には、代表語それぞれに対して、発話文のテンプレートが登録されている。発話テンプレートデータベース２３の代表語は、代表語辞書２２に登録されている語と同じである。
【００３２】
例えば、発話テンプレートデータベース２３には、「話したい」という代表語に対して、「％ｋｅｙさんと話したい」、「％ｋｅｙさんとおしゃべりしたい」、「しゃべってみたいんです％ｋｅｙさんと」、「％ｋｅｙに言いたいことがある」等のテンプレート文が登録されている。
ここで、「％ｋｅｙ」は、何らかのキーワードに置き換えられる箇所を示している。
【００３３】
図の例では、同様に、「聞きたい」、「食べたい」、「きれい」、「おもしろい」、「好き」の各代表語に対応するテンプレート文が登録されている。
発話テンプレートデータベース２３のデータは、予め準備されていてもよいし、後述するように、入力文Ｉを利用して、テンプレート登録部１３によって新たにテンプレートが追加されてもよい。
【００３４】
特徴ベクトルデータベース２４は、代表語及び他のキーワードを含む各語の特徴ベクトルが登録されたデータベースである。
図４は、本実施形態に係る特徴ベクトルデータベース２４の登録例を示す図である。
特徴ベクトルデータベース２４には、語と対応する特徴ベクトルとが登録される。
【００３５】
本実施形態では、特徴ベクトルとして、既知のソフトウェアであるｗｏｒｄ２ｖｅｃによって算出された特徴ベクトルを用いるものとする。ｗｏｒｄ２ｖｅｃは、３層のニューラルネットワークを用いており、分かち書きされた大量の文章を入力すると、算出された特徴ベクトルは、類似した語が距離の近いベクトルになることが経験的に知られている。
なお、特徴ベクトルの算出方法は、ｗｏｒｄ２ｖｅｃに限定されるものではなく、意味的に近い語の特徴ベクトルがベクトル空間上で近くに分布する演算方式であればよい。
【００３６】
図の例では、「ラーメン」の特徴ベクトルとしてｖｅｃ１が登録され、以下、「を」、「食べたい」、「○川×子」、「は」、「とても」、「綺麗」の特徴ベクトルとしてそれぞれ、ｖｅｃ２〜ｖｅｃ７が登録され、全部でＮ個の特徴ベクトルが登録されている。
特徴ベクトルデータベース２４は、予め大量の文章を入力として学習した特徴ベクトルが登録されていてもよいし、後述するように、入力文Ｉを用いて、特徴ベクトル演算部１５によって更新されてもよい。
【００３７】
［データベース更新処理］
前述の各データベースのうち、発話テンプレートデータベース２３及び特徴ベクトルデータベース２４は、形態素解析部１１、過分割修正部１２、テンプレート登録部１３、表現統一部１４、及び特徴ベクトル演算部１５の一連の処理により更新される。
【００３８】
形態素解析部１１は、発話生成装置１に入力文Ｉが入力されると、入力文Ｉの形態素解析を行い、入力文Ｉを分かち書き文に変換する。
ここで、分かち書き文とは、形態素に分割された語の間に区切り文字（例えば、空白文字）を挿入した文である。
【００３９】
図５は、本実施形態に係る入力文Ｉの変換例を示す図である。
入力文Ｉとして、「このラーメンを食べてみたいですね。」という文が入力された場合、形態素解析部１１の解析結果が分かち書きされ、「この／ラーメン／を／食べ／て／みたい／です／ね／。」と出力される。なお、ここでは、分かち書き文の区切り文字として、空白ではなく「／」を用いている。
【００４０】
過分割修正部１２は、形態素解析部１１による解析の結果、細かくなりすぎた語を接続する。具体的には、過分割修正部１２は、キーワード辞書２１に登録されているキーワード、又は代表語辞書２２に登録されている代表語若しくは別表現が入力文Ｉに含まれており、これらが形態素解析部１１によって複数の単語に分割された場合、分割されたこれらの単語を接続し直して元の語に復元する。
【００４１】
図５の例では、形態素解析部１１の出力で、代表語辞書２２の「食べたい」の別表現として登録されている「食べてみたい」という語が、「食べ／て／みたい」と３語に分割されている。このため、過分割修正部１２は、これらを「食べてみたい」の１語に接続し、結果として「この／ラーメン／を／食べてみたい／です／ね／。」という分かち書き文を出力する。
【００４２】
テンプレート登録部１３は、過分割修正部１２から出力された分かち書き文から、必要に応じてテンプレート文を作成し、発話テンプレートデータベース２３に登録する。
テンプレート登録部１３は、入力文Ｉに、キーワード辞書２１に登録されているキーワード、及び代表語辞書２２の代表語又は別表現が含まれている場合、この代表語に対応するテンプレートとして、入力文Ｉのうち、キーワードを一般化した文を登録する。
【００４３】
図６は、本実施形態に係るテンプレート登録処理を示すフローチャートである。
ステップＳ１において、テンプレート登録部１３は、分かち書きされた入力文Ｉに対して、代表語辞書２２に登録されている代表語又は別表現が含まれているか否かを判定する。この判定がＹＥＳの場合、処理はステップＳ２に移り、判定がＮＯの場合、処理は終了する。
【００４４】
ステップＳ２において、テンプレート登録部１３は、入力文Ｉに、キーワード辞書２１に登録されているキーワードが含まれているか否かを判定する。この判定がＹＥＳの場合、処理はステップＳ３に移り、判定がＮＯの場合、処理はステップＳ４に移る。
【００４５】
ステップＳ３において、テンプレート登録部１３は、入力文Ｉに含まれているキーワードの部分を文字列「％ｋｅｙ」に置き換える。
ステップＳ４において、テンプレート登録部１３は、分かち書き文を普通の文に戻すために、区切り文字である空白を削除する。
【００４６】
ステップＳ５において、テンプレート登録部１３は、発話テンプレートデータベース２３に、代表語のテンプレートとしてステップＳ４の結果と同じ文が登録されているか否かを判定する。この判定がＹＥＳの場合、処理は終了し、判定がＮＯの場合、処理はステップＳ６に移る。
ステップＳ６において、テンプレート登録部１３は、ステップＳ４の結果を、新たなテンプレートとして、発話テンプレートデータベース２３に登録する。
【００４７】
この処理により、テンプレート登録部１３は、例えば、「この／ラーメン／を／食べてみたい／です／ね／。」という入力に対して、「この％ｋｅｙを食べてみたいですね。」という文を、発話テンプレートデータベース２３の代表語「食べたい」のテンプレートとして登録する。
【００４８】
表現統一部１４は、過分割修正部１２の出力文に、代表語辞書２２に登録された代表語の別表現が含まれている場合に、この別表現を代表語に置き換える。
例えば、図５に示すように、過分割修正部１２の出力文が「この／ラーメン／を／食べてみたい／です／ね／。」の場合、代表語辞書２２では「食べてみたい」の代表語は「食べたい」なので、表現統一部１４は、「食べてみたい」を「食べたい」に置き換えた文「この／ラーメン／を／食べたい／です／ね／。」を出力する。
【００４９】
特徴ベクトル演算部１５は、表現統一部１４の出力する文をｗｏｒｄ２ｖｅｃの入力として与え、別表現が代表語に置き換えられた分かち書き文における各語の特徴ベクトルを演算し、特徴ベクトルデータベース２４に保管されている特徴ベクトルを更新する。
【００５０】
このように、テンプレート登録部１３及び特徴ベクトル演算部１５によって、発話テンプレートデータベース２３には、代表語に対して、代表語又は別表現を含むテンプレート文が登録され、特徴ベクトルデータベース２４には、代表語に統一された語の特徴ベクトルが登録される。
これにより、代表語の別表現として稀にしか出ない語（例えば、「食べたい」の別表現として「食っちゃいたい」等）が、「食べたい」の特徴ベクトルの学習に利用されると共に、この別表現はテンプレートとして登録されることになり、発話文のバリエーションが広がる。また、代表語にまとめることで、後述のベクトル距離演算部１７の計算量が低減される。
【００５１】
［発話生成処理］
発話生成装置１は、入力文Ｉに対して、キーワード抽出部１６、ベクトル距離演算部１７、代表語ランキング部１８、発話文生成部１９の一連の処理により、出力文Ｏ（発話文）を出力する。
【００５２】
キーワード抽出部１６は、入力文Ｉに、キーワード辞書２１に登録されているキーワードが含まれているか否かを判定し、含まれているキーワードを抽出する。入力文Ｉにキーワードが含まれていない場合には、発話生成装置１は、この入力文Ｉに対して、出力文Ｏとして何も出力しない。
【００５３】
ベクトル距離演算部１７は、キーワード抽出部１６により抽出されたキーワードと、代表語辞書２２に登録されている代表語それぞれとのベクトル距離を計算する。
ここで、キーワードｋの特徴ベクトルをｖｅｃｋ、代表語ｔの特徴ベクトルをｖｅｃｔとしたとき、ベクトル間の距離として、式１のコサイン類似度ｃｏｓ（ｖｅｃｋ，ｖｅｃｔ）が利用できる。
（式１）  cos(veck,vect)=(veck・vect)/(|veck||vect|)
【００５４】
代表語ランキング部１８は、キーワードの特徴ベクトルと各代表語の特徴ベクトルとの距離の演算結果から、この値の大きい順にソートすることにより順位付けを行い、キーワードに関連が強いランキングが上位の代表語を選択する。
【００５５】
図７は、本実施形態に係るベクトル距離演算部１７及び代表語ランキング部１８による関連語選択の動作イメージを示す図である。
この例では、キーワードとして「ラーメン」（特徴ベクトルｖｅｃ１）と「京都」（特徴ベクトルｖｅｃｙ）とが、代表語として「行きたい」（特徴ベクトルｖｅｃｘ）と「食べたい」（特徴ベクトルｖｅｃ３）とが定義されている。
【００５６】
本実施形態の特徴ベクトルは、例えば、「ラーメン」の近くに「うどん」、「カレー」、「焼きそば」等が分布するように、似た傾向の語の特徴ベクトルが近くなる。これと共に、関連のある語の特徴ベクトルも近くなる。すなわち、「ラーメン」のような食べ物の特徴ベクトルは、「行きたい」という特徴ベクトルより「食べたい」という特徴ベクトルに近い位置に分布している。このことは、「ラーメン」という語は、代表語としての「食べたい」と、「京都」という語は、代表語としての「行きたい」と、それぞれ関連が大きいことを意味している。
【００５７】
発話文生成部１９は、代表語ランキング部１８によりランキングされた代表語に対して、発話テンプレートデータベース２３に登録されているテンプレートの中から、ランダムに選択し、選択したテンプレート内の「％ｋｅｙ」の部分をキーワードに置き換えることで、発話文を生成し、出力文Ｏとして出力する。
【００５８】
例えば、キーワードが「ラーメン」、代表語が「食べたい」の場合、図３の発話テンプレートのうち、代表語「食べたい」に対して登録されたテンプレートの３番目を選ぶと、発話文は、「一度でいいからこのラーメンを食べてみたい」となる。
なお、発話文生成部１９は、代表語に対して複数登録されたテンプレートをランダムに選択するものとして説明したが、これには限られない。発話生成装置１は、例えば、特定のテンプレートに重み付けをし、選択確率に偏りを持たせてもよいし、この選択確率を視聴番組に関連して適宜更新することで、発話文に個性を持たせてもよい。
【００５９】
［代表語辞書２２の更新処理］
代表語辞書２２は、特徴ベクトルデータベース２４に基づいて、自動更新されてもよい。
代表語辞書更新部２０は、代表語辞書２２の各代表語に対する別表現の単語を追加登録する。
前述のように、特徴ベクトルデータベース２４に登録されている特徴ベクトルは、意味が近い単語が近くなる。これを利用し、代表語辞書更新部２０は、代表語の特徴ベクトルとの距離が所定以内の特徴ベクトルのうち、未登録の語を代表語の別表現として登録する。
【００６０】
図８は、本実施形態に係る代表語辞書２２の更新処理を示すフローチャートである。
ステップＳ１１において、代表語辞書更新部２０は、ループ処理用の変数ｎを１にセットする。
ステップＳ１２において、代表語辞書更新部２０は、代表語辞書２２に登録されている代表語のうち、ｎ番目の代表語を取得する。
ステップＳ１３において、代表語辞書更新部２０は、特徴ベクトルデータベース２４から、ステップＳ１２で取得したｎ番目の代表語の特徴ベクトルに近い特徴ベクトルの用語のうち上位Ｍ個を取得する。
【００６１】
ステップＳ１４において、代表語辞書更新部２０は、取得したＭ個の用語に対するループ処理用の変数ｍを１にセットする。
ステップＳ１５において、代表語辞書更新部２０は、ステップＳ１３で取得したＭ個の用語のうちｍ番目の用語が、代表語辞書２２のｎ番目の代表語の別表現として登録されているか否かを判定する。この判定がＹＥＳの場合、処理はステップＳ１７に移り、判定がＮＯの場合、処理はステップＳ１６に移る。
【００６２】
ステップＳ１６において、代表語辞書更新部２０は、ｍ番目の用語を、ｎ番目の代表語の別表現として代表語辞書２２に登録する。
ステップＳ１７において、代表語辞書更新部２０は、変数ｍをカウントアップし、ｍ＝Ｍになるまでループ処理を繰り返す。
ステップＳ１８において、代表語辞書更新部２０は、代表語辞書２２に登録されている代表語の数Ｎの全てに対して上記の処理を行うため、変数ｎをカウントアップし、ｎ＝Ｎになるまでループ処理を繰り返す。
【００６３】
なお、本実施形態では、ステップＳ１６において、未登録の単語を全て代表語辞書２２に登録することとしたが、これには限られず、例えば、登録するか否かの選択入力をユーザから受け付けてもよい。
【００６４】
本実施形態によれば、発話生成装置１は、テレビ番組中のキーワードの特徴ベクトルと、感情等を表す複数の代表語それぞれの特徴ベクトルとの距離に基づいて、キーワードと関連の強い代表語を選択すると、代表語に対応するテンプレート文とキーワードとを組み合わせることにより、発話文を生成する。
したがって、発話生成装置１は、番組に関連するキーワードから、自発的に、感情を示す発話文を生成できる。これにより、発話生成装置１を組み込んだロボットがあたかも自立した感情を持っているように、視聴中のテレビ番組に合わせて、感情を表す言葉を発話でき、小さな子供がテレビを見て喜んでいる様子を、周囲の大人が微笑ましく眺めるような効果が期待できる。
【００６５】
発話生成装置１をロボットに組み込むことで、ロボットは、テレビに反応してロボット自身の感情を含む言葉をつぶやくため、ユーザが積極的に話しかける必要はなく、ユーザは、テレビとロボットの発話のやりとりを俯瞰的な立場から楽しむことができる。また、ロボットから自発的に話し掛けるため、ユーザの発話を促す効果も期待できる。さらに、ユーザが放送中のテレビ番組自体に興味がなくても、ロボットがつぶやくことをきっかけに、番組に興味を持つ効果も期待できる。
【００６６】
発話生成装置１は、特徴ベクトルの距離に基づいて代表語を順位付けし、ランキングが上位の、すなわち番組のキーワードと関連の強い代表語を優先して発話文を生成する。したがって、発話生成装置１は、入力されたキーワードに対して、適切な代表語を用いて発話文を生成できる。
【００６７】
発話生成装置１は、入力文Ｉから、キーワード辞書２１に登録されているキーワードを抽出することにより、特徴ベクトルが登録済みのキーワードを対象として、効率的に発話文を生成できる。
【００６８】
発話生成装置１は、入力文Ｉに基づいて、未登録のテンプレートを登録し、特徴ベクトルを更新する。したがって、発話生成装置１は、流行りの言葉を学習できると共に、視聴したテレビ番組に応じて、登録されるテンプレート文及び特徴ベクトルを変化させ、テレビの視聴傾向によって発話内容にバリエーションを生じさせることができる。
【００６９】
発話生成装置１は、入力文Ｉに、代表語の別表現が含まれる場合、別表現を代表語に置き換えた後に特徴ベクトルを演算する。したがって、発話生成装置１は、別表現を含む類似語をまとめて処理でき、別表現毎の出現頻度によらず、代表語に対する特徴ベクトルを共用できる。これにより、代表語の特徴ベクトルを適切に更新できると共に、テンプレートの複数の表現を平等に扱い、発話文のバリエーションを増やすことができる。
【００７０】
発話生成装置１は、特徴ベクトルデータベース２４を用いて、特徴ベクトルの距離が代表語と近い用語を別表現として代表語辞書２２に登録するので、別表現を自動的に追加し、発話文のバリエーションを増やすことができる。
【００７１】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
【００７２】
発話文生成部１９は、１つの文を生成するだけでなく、複数の文を生成して出力してもよい。発話文生成部１９は、例えば、代表語ランキング部１８の上位ｎ個の代表語に対して発話文を生成してもよいし、コサイン類似度の値が閾値以上の代表語に対して発話文を生成してもよい。また、発話文生成部１９は、代表語の種別（動詞又は形容詞）毎にランキングを行い、それぞれの上位の代表語を使って発話文を生成してもよい。
複数の発話文を生成することにより、発話文生成部１９は、例えば、後続の処理として設けられ得る発話文の選択処理に対して複数の選択肢を提供でき、発話内容のバリエーションを増やすことができる。
また、このとき、発話文生成部１９は、後続の処理のために、発話文と共に特徴ベクトルの距離値を出力してもよい。
【００７３】
本実施形態では、発話テンプレートデータベース２３及び特徴ベクトルデータベース２４は、入力文Ｉが入力される度に更新されるものとして説明したが、十分なデータが蓄積されていれば、形態素解析部１１、過分割修正部１２、テンプレート登録部１３、表現統一部１４、特徴ベクトル演算部１５によるデータベースの更新処理は省略されてもよい。また、この場合、発話生成装置１への入力として、入力文Ｉに代えて、単にキーワードが入力されてもよい。この場合、キーワード辞書２１及びキーワード抽出部１６も不要となる。
【００７４】
本実施形態では、主に発話生成装置１の構成と動作について説明したが、本発明はこれに限られず、各構成要素を備え、ロボットの発話文を生成するための方法、又はプログラムとして構成されてもよい。
【００７５】
さらに、発話生成装置１の機能を実現するためのプログラムをコンピュータで読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。
【００７６】
ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータで読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００７７】
さらに「コンピュータで読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時刻の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時刻プログラムを保持しているものも含んでもよい。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【符号の説明】
【００７８】
１  発話生成装置
１１  形態素解析部
１２  過分割修正部
１３  テンプレート登録部
１４  表現統一部
１５  特徴ベクトル演算部
１６  キーワード抽出部
１７  ベクトル距離演算部
１８  代表語ランキング部
１９  発話文生成部
２０  代表語辞書更新部
２１  キーワード辞書
２２  代表語辞書
２３  発話テンプレートデータベース
２４  特徴ベクトルデータベース
【図１】
2018190077.tif 000003
【図２】
2018190077.tif 000004
【図３】
2018190077.tif 000005
【図４】
2018190077.tif 000006
【図５】
2018190077.tif 000007
【図６】
2018190077.tif 000008
【図７】
2018190077.tif 000009
【図８】
2018190077.tif 000010