(57)【要約】    【課題】  景色や風景から連想可能な自然な発話で人と対話できるコミュニケーションロボットを提供する。    【解決手段】  コミュニケーションロボット（１０）はスピーカ（２０）およびカメラ(２２)を備え、ＣＰＵ（２４）は、カメラからの画像データを取り込み（Ｓ４１）、その画像の構成要素を抽出して特徴ベクトルを生成する（Ｓ４３）。次元圧縮用のトピックパラメータを用いて、Ｎ次元の入力画像ベクトルを生成し（Ｓ４７）、他方、発話コンテンツ中の全ての発話文について、発話用インデックスとの類似度をそれぞれ計算し（Ｓ４９）、最大の類似度を示す発話文を選択して発話する（Ｓ５１、Ｓ５３）。したがって、入力画像と適合した発話をすることができる。【選択図】  図７
2018147145.tif 000002
【特許請求の範囲】
【請求項１】
複数の発話文を発話コンテンツとして登録する発話コンテンツ登録部、
各々が画像データと発話文データとを含む複数のデータセットから、同時発生確率の高い単語の特徴ベクトルをＮ次元に圧縮したトピックラメータを登録するトピックパラメータ登録部、
前記発話コンテンツ中の各発話文の特徴ベクトルをＮ次元に圧縮した発話用インデックスを登録する発話用インデックス登録部、
入力された画像から抽出した単語の特徴ベクトルをＮ次元に圧縮した入力画像ベクトルを生成する入力画像ベクトル生成部、
前記発話用インデックスと前記入力画像ベクトルとの類似度に応じて前記発話コンテンツから発話文を選択する選択部、および
前記選択された発話文を出力する発話部を備える、コミュニケーションロボット。
【請求項２】
カメラをさらに備え、前記画像は前記カメラが撮影した画像である、請求項１記載のコミュニケーションロボット。
【請求項３】
前記発話用インデックス登録部および入力画像ベクトル生成部は、それぞれ前記トピックパラメータを用いてＮ次元圧縮を行う、請求項１または２記載のコミュニケーションロボット。
【請求項４】
各々が画像データと発話文データとを含む複数のデータセットから、同時発生確率の高い単語の特徴ベクトルをＮ次元に圧縮したトピックパラメータおよび発話コンテンツ中の各発話文の特徴ベクトルをＮ次元に圧縮した発話用インデックスを利用して、発話コンテンツから発話文を選択して発話する、コミュニケーションロボットのコンピュータが、
入力された画像から抽出した単語の特徴ベクトルを前記トピックパラメータを用いてＮ次元に圧縮した入力画像ベクトルを生成する入力画像ベクトル生成ステップ、
前記発話用インデックスと前記入力画像ベクトルとの類似度に応じて前記発話コンテンツから発話文を選択する選択ステップ、および
前記選択された発話文を出力する発話ステップを実行する、コミュニケーションロボットの制御方法。
【請求項５】
各々が画像データと発話文データとを含む複数のデータセットから、同時発生確率の高い単語の特徴ベクトルをＮ次元に圧縮したトピックパラメータおよび発話コンテンツ中の各発話文の特徴ベクトルをＮ次元に圧縮した発話用インデックスを利用して、発話コンテンツから発話文を選択して発話する、コミュニケーションロボットのコンピュータによって実行される制御プログラムであって、
前記制御プログラムは、前記コンピュータを
入力された画像から抽出した単語の特徴ベクトルを前記トピックパラメータを用いてＮ次元に圧縮した入力画像ベクトルを生成する入力画像ベクトル生成部、
前記発話用インデックスと前記入力画像ベクトルとの類似度に応じて前記発話コンテンツから発話文を選択する選択部、および
前記選択された発話文を出力する発話部
として機能させる、コミュニケーションロボットの制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はコミュニケーションロボット、制御方法および制御プログラムに関し、特にたとえば、人と対話する、コミュニケーションロボット、制御方法および制御プログラムに関する。
【背景技術】
【０００２】
人とロボットの対話を制御する１つの方法として、非特許文献１に示すような、場所ごとに定義された発話を実現する方法が提案されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】M. Shiomi, T. Kanda, H. Ishiguro, and N. Hagita, Interactive Humanoid Robots for a Science Museum, IEEE Intelligent Systems, vol. 22, pp. 25-32, 2007
【発明の開示】
【発明が解決しようとする課題】
【０００４】
非特許文献１の方法では、定義していない場所では適切な発話を選択することはできなかった。しかも、非特許文献１では、各場所に応じて、人間が手動で発話コンテンツの対応づけを行う必要があるため、発話コンテンツの作成に時間が掛かるという問題もあった。
【０００５】
それゆえに、この発明の主たる目的は、新規な、コミュニケーションロボット、制御方法および制御プログラムを提供することである。
【０００６】
この発明の他の目的は、画像に適合した自然な会話をすることができる、コミュニケーションロボット、制御方法および制御プログラムを提供することである。
【課題を解決するための手段】
【０００７】
第１の発明は、複数の発話文を発話コンテンツとして登録する発話コンテンツ登録部、各々が画像データと発話文データとを含む複数のデータセットから、同時発生確率の高い単語の特徴ベクトルをＮ次元に圧縮したトピックパラメータを登録するトピックパラメータ登録部、発話コンテンツ中の各発話文の特徴ベクトルをＮ次元に圧縮した発話用インデックスを登録する発話用インデックス登録部、入力された画像から抽出した単語の特徴ベクトルをＮ次元に圧縮した入力画像ベクトルを生成する入力画像ベクトル生成部、発話用インデックスと入力画像ベクトルとの類似度に応じて発話コンテンツから発話文を選択する選択部、および選択された発話文を出力する発話部を備える、コミュニケーションロボットである。
【０００８】
第１の発明によれば、発話用インデックスと入力画像ベクトルとの類似度に応じて発話コンテンツの中から発話文を選択して発話するので、入力画像に適合した発話文を出力することができる。
【０００９】
第２の発明は、第１の発明に従属し、カメラをさらに備え、画像はカメラが撮影した画像である、コミュニケーションロボットである。
【００１０】
第２の発明によれば、入力画像としてカメラでリアルタイムに撮影したカメラ画像を用いるので、人と共通の風景を見ながらその風景に適した発話を行うことができる。
【００１１】
第３の発明は、第１または第２の発明に従属し、発話用インデックス登録部および入力画像ベクトル生成部は、それぞれトピックパラメータを用いてＮ次元圧縮を行う、コミュニケーションロボットである。
【００１２】
第３の発明では、同じトピックパラメータを用いるので、発話用インデックスや入力画像ベクトルの計算が簡単に行える。
第４の発明は、各々が画像データと発話文データとを含む複数のデータセットから、同時発生確率の高い単語の特徴ベクトルをＮ次元に圧縮したトピックパラメータおよび発話コンテンツ中の各発話文の特徴ベクトルをＮ次元に圧縮した発話用インデックスを利用して、発話コンテンツから発話文を選択して発話する、コミュニケーションロボットのコンピュータが入力された画像から抽出した単語の特徴ベクトルをトピックパラメータを用いてＮ次元に圧縮した入力画像ベクトルを生成する入力画像ベクトル生成ステップ、発話用インデックスと入力画像ベクトルとの類似度に応じて発話コンテンツから発話文を選択する選択ステップ、および選択された発話文を出力する発話ステップを実行する、コミュニケーションロボットの制御方法である。
【００１３】
第５の発明は、各々が画像データと発話文データとを含む複数のデータセットから、同時発生確率の高い単語の特徴ベクトルをＮ次元に圧縮したトピックパラメータおよび発話コンテンツ中の各発話文の特徴ベクトルをＮ次元に圧縮した発話用インデックスを利用して、発話コンテンツから発話文を選択して発話する、コミュニケーションロボットのコンピュータによって実行される制御プログラムであって、制御プログラムは、コンピュータを入力された画像から抽出した単語の特徴ベクトルをトピックパラメータを用いてＮ次元に圧縮した入力画像ベクトルを生成する入力画像ベクトル生成部、発話用インデックスと入力画像ベクトルとの類似度に応じて発話コンテンツから発話文を選択する選択部、および選択された発話文を出力する発話部として機能させる、コミュニケーションロボットの制御プログラム。
【００１４】
第４または第５の発明でも第１の発明と同様の効果が期待できる。
【発明の効果】
【００１５】
この発明によれば、画像から連想可能な発話を選択することができるので、たとえば風景をカメラで撮影した画像を用いるとした場合、風景に適合した自然な会話を実現することができる。そのため、この発明のコミュニケーションロボットは、散歩などの歩行（同行）パートナとしてより適したロボットである。
【００１６】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００１７】
【図１】図１はこの発明の一実施例のコミュニケーションロボットの外観の一例を示す図解図である。
【図２】図２は図１実施例のコミュニケーションロボットの電気的な構成を示すブロック図である。
【図３】図３は図２に示すメモリのメモリマップの一例を示す図解図である。
【図４】図４はデータセットの一例を示す図解図である。
【図５】図５は図１実施例におけるトピックパラメータを作成する動作の一例を示すフロー図である。
【図６】図６は図１実施例における発話用インデックスを作成する動作の一例を示すフロー図である。
【図７】図７は図１実施例における発話動作の一例を示すフロー図である。
【図８】図８は図７実施例における次元圧縮すなわち連想情報の抽出の一例を示すフロー図である。
【図９】図９は図７の発話動作における発話コンテンツの計算方法の一例を示す図解図である。
【図１０】図１０はトピックベクトルを例示する図解図である。
【図１１】図１１は図７実施例における次元圧縮動作の他の例を示すフロー図である。
【図１２】図１２は図７実施例における発話文の選択を示すグラフである。
【図１３】図１３は図１２のグラフに示す４つの画像を示す図解図である。
【発明を実施するための最良の形態】
【００１８】
図１を参照して、この実施例のコミュニケーションロボット（以下、単に「ロボット」ということがある。）１０は、一例として、人の肩に載せられて、その人と一緒に移動することができるロボットである。人の肩に載せるために、ロボット１０は彎曲した支持板１２を含み、この支持板１２の彎曲した部分が肩（図示せず）の上に載せられる。
【００１９】
支持板１２の前端上面には、胴体に相当する支持部１４が取り付けられ、この支持部１４の上方には首に相当する支柱１８を介して、顔（頭）に相当するハウジング１６が、左右に旋回可能に、設けられる。
【００２０】
ハウジング１６には、人の顔の口に相当する位置にスピーカ２０が内蔵されていて、眼に相当する位置に、カメラ２２が内蔵されている。ただし、スピーカ２０を胴体すなわち支持部１４内に設けたり、カメラ２２を口に相当する位置に設けたりする、任意の変更が可能である。
【００２１】
スピーカ２０はこのロボット１０を載せて移動している人（図示せず）に対して発話するために用いられ、カメラ２２は、人とともに移動しているときに風景を撮影して話題にするために用いられる。
【００２２】
なお、カメラ２２で撮影するときにはロボット１０の顔は進行方向に向けられるが、スピーカ２０から発話するときには、上述の支柱の旋回機能を利用して、顔を人（ロボット１０を肩に載せている人）に向けるようにしてもよい。
【００２３】
また、カメラ２２は両眼に設けられる両眼カメラであってもよいが、実施例では単眼カメラを用いる。この場合なら、カメラ２２は１つでよい。
【００２４】
ロボット１０は、図２に示すように、ロボット１０の全体制御を司るＣＰＵ２４を備える。ＣＰＵ２４は、バス２６を通して通信モジュール２８に接続され、したがって、ＣＰＵ２４は、必要なとき、通信モジュール２８を介して、ネットワーク（図示せず）に通信可能に接続される。
【００２５】
ＣＰＵ２４はまた、バス２６を通してメモリ３０にアクセスでき、このメモリ３０に設定されているプログラムやデータ（図３：後述）に従って、人と対話することができる。そのために、ＣＰＵ２４は発話データを音声インタフェース３２を通して、スピーカ２０に音声信号として与える。ＣＰＵ２４はまた、カメラ２２からの画像データを、カメラインタフェース３４を通して取得する。
【００２６】
ロボット１０のメモリ３０は、たとえばＲＡＭやＨＤＤであり、図３に示すように、プログラム領域３６およびデータ領域３８を含む。
【００２７】
プログラム領域３６には、トピックパラメータ作成プログラム３６ａが記憶される。ここで、たとえば図４に示すような、画像とその画像に応じた発話文を大量に集めたデータセットをコーパスと呼び、トピックパラメータは、そのコーパスから同時発生確率の高い構成要素（単語）をまとめた（連想構造を抽出した）ベクトルの集合である。プログラム領域３６には、さらに、発話用インデックス作成プログラム３６ｂおよび会話プログラム３６ｃが記憶される。発話用インデックスとは、記憶領域３８ａから発話すべき発話コンテンツを読み出すための、検索用ベクトルの集合である。会話プログラム３６ｃは、音声合成プログラムを含み、ＣＰＵ２４は、発話のために、データ領域３８の記憶領域３８ａに記憶されている発話コンテンツデータを読み出して、発話データを音声インタフェース３２に出力する。
【００２８】
プログラム領域３６にはさらに、画像解析プログラム３６ｄが予め設定されている。この画像解析プログラム３６ｄは、たとえばGoogle Cloud Vision API（商品名）のような視覚モジュールであり、この画像解析プログラム３６ｂは、取り込んだ画像からその画像の構成要素を単語として抽出する。
【００２９】
データ領域３８は、上述の発話コンテンツを記憶している領域３８ａを含み、さらに、記憶領域３８ｂ‐３８gを含む。記憶領域３８ｂには、トピックベクトルコーパス作成のためのデータセットすなわちコーパスが予め大量に記憶される。
【００３０】
データセットとは、前述したように、風景の画像と、その画像から想起できる発話文のセットのことである。たとえば図４のデータセットでは、左側に「木や芝生のある庭」の画像があり、それとの関連で「Have you ever gone a camp?（キャンプに行ったことがありますか？）」という発話文が右側にセットされている。データセットはこのような画像と発話文とのセットであり、上述の記憶領域３８ｂに記憶される。
【００３１】
ただし、データセットは必要なトピックパラメータを作成した後には記憶領域３８ｂから削除されてもよい。
【００３２】
さらに、データセットは、ロボット１０のメモリ３０にではなく、別のデータベース（図示せず）に記憶しておいて、トピックパラメータ作成時にのみそのデータベースから読み出すようにしてもよい。
【００３３】
記憶領域３８ｃには、このようなデータセットから上述のトピックパラメータ作成プログラム３６ａでトピックパラメータを作成する際に除外する、発話文の単語および画像の構成要素（単語）のリストが予め記憶される。これらの単語を除外する理由は、それらの単語が一般的であり特徴的ではないので、コーパス作成処理の計算負荷を可及的軽減するために、ストップワードとして除外するのである。発話文でいえば、たとえば「a」、「an」のような不定冠詞「the」のような定冠詞、「I」、「is」などを例示できる。これらの単語は、文章や文書の性質に拘わらず共通して現れる単語であり、これらの単語の数を数えても連想の類似性を計算するのに役立つわけではなく、計算の結果をゆがませるだけである。このような除外単語として、画像の構成要素でいえば、「floor（床）」、「property（属性）」などが挙げられる。
【００３４】
データ領域３８の記憶領域３８ｄには、上述のトピックパラメータ作成プログラム３６ａで作成したトピックパラメータが記憶される。記憶領域３８ｅには、上述の発話用インデックス作成プログラム３６ｂで作成した発話用インデックスが記憶される。
【００３５】
データ領域３８の記憶領域３８ｆは、カメラ２２から入力した画像の画像データを一時的に記憶し、記憶領域３８ｇは、前述の画像解析プログラム３６ｂで抽出した構成要素を一時的に記憶する。
【００３６】
図５を参照して、まず、トピックパラメータ作成プログラム３６ａによるトピックパラメータ作成処理（連想情報の抽出処理）について説明する。なお、発明者等の実験では上述のように言語として英語を用いたので、以下の説明でも英語を用いる場合があることを予め指摘しておく。
【００３７】
最初のステップＳ１では、抽出する連想情報の数Ｎを読み込む。この連想情報数Ｎは、圧縮次元数であり、今回の実施例では５０‐１００程度に設定される。ただし、この次元数Ｎは用意するデータセットの量に応じて適した値が変わるので、もっと小さい値の場合もあり、もっと大きい場合もある。つまり、データセットの数（コーパスの大きさ）と圧縮結果などから適した次元数を決めればよい。
【００３８】
次のステップＳ３では、発話文における除外リストおよび画像の構成要素における除外リストに設定されている除外単語（ストップワード）を、記憶領域３８ｃから読み込む。
【００３９】
ステップＳ５では、先に図４で説明したようなデータセットを記憶領域３８ｂから読み込む。
【００４０】
そして、ステップＳ７すなわちステップＳ９‐Ｓ１３において、データセット中の全ての基本セット（１つのデータセット）Ｅｉについて、特徴ベクトルＶｉを作成する。
【００４１】
詳しく説明すると、ステップＳ９において、基本セットＥｉのための特徴ベクトルＶｉを初期化する。ステップＳ１１において、基本セットＥｉの発話文を文節に区切り、除外リスト（記憶領域３８ｃ）にない単語をその特徴ベクトルに追加する。ステップＳ１３では、画像解析プログラム３６ｄによって、基本セットＥｉの画像の画像要素を抽出し、除外リストにない単語を同じ特徴ベクトルＶｉに追加する。
【００４２】
図４の基本セットを参照して説明すると、ステップＳ１１では、発話文「Have you ever gone to a camp?」から、「have」、「you」、「ever」、「gone」、「to」、「a」、「camp（キャンプ）」が抜き出されるが、「you」、「to」、「a」が除外単語なので、図４の基本セットＥｉの発話文からは単語「have」、「ever」、「gone」、「camp」が特徴ベクトルＶｉに加えられる。他方、画像解析プログラム３６ｄで基本セットＥｉの画像を解析すると、「property」、「lawn（芝生）」、「cottage（小屋）」、「pasture（牧草、牧草地）」、「area（領域、場所）」、「farm（農場）」が抽出されるが、「property」が除外単語なので、図４の基本セットＥｉの画像からは、単語「lawn」、「cottage」、「pasture」、「area」、「farm」が特徴ベクトルＶｉに追加される。
【００４３】
このようなステップＳ７での特徴ベクトル作成処理が、記憶領域３８ｂに記憶されているデータセット（コーパス）中の全ての基本セットに対して実行される。そうすると、基本セットの数に相当する非常に多数の次元の特徴ベクトルがこの時点で作成される。
【００４４】
そして、ステップＳ１５で、ＣＰＵ２４は、全ての基本セットに対するすべての特徴ベクトルから、同時発生確率（共起確率）の高い構成要素をまとめて、すなわち連想構造を抽出することによって、Ｎ次元に圧縮するためのトピックパラメータＰ_topicを抽出する。トピックパラメータＰ_topicは、画像と同時に発話し易い単語の組み合わせパターンすなわちトピックベクトルの集合である。
【００４５】
ただし、このステップＳ１５では、同時発生確率の高い要素をまとめるために、特徴ベクトルの集合に対して、ＬＤＡや主成分分析を適用する。
【００４６】
ＬＤＡ（Latent Dirichlet Allocation：潜在的ディリクレ配分法）は、一般的には、文書中の単語の「トピック」を確率的に求める言語モデルであるといわれていて、各単語が「隠れトピック」(話題、カテゴリ)から生成されていると想定して、そのトピックを文書集合から教師なしで推定する。簡単に言えば、それぞれの単語は潜在的なトピックを持ち、同じトピックを持つ単語は同じ文章に出現しやすい、という事実に着目したものである。詳しくは、[Blei+ 2003]に示される。
【００４７】
ＬＤＡを使用するのは次元圧縮のためである。単語ベクトルの次元は非常に大きいが、はるかに小さな次元のベクトルで情報を表現することができる。これは、単語の共起に偏りがあるためである。つまり、いくつかの用語が他の用語より頻繁に共起する。たとえば、「海」と「水泳」はしばしば一緒に現れることが予想される。ＬＤＡは、話題として一緒に共起することが多い各用語群を表し、高次元の単語ベクトルを低次元のトピックベクトルに変換する。
【００４８】
ＬＤＡでは、文書内に存在する単語の発生確率を、ディリクレ分布でモデル化する。ディリクレ分布では、Ｋ個の潜在的なトピック(＝圧縮したい次元数)が事前に与えられている。各トピックは、θとφという、２種類の確率パラメータから構成される。θは、全文書の中でそのトピックが発生する確率である。たとえば、全トピックの中で、店舗に関連する話題の発生確率が高く、車に関連する話題の発生確率が低い場合、店舗（shop）に関連するトピック（θ_shop）には高い値が与えられ、駐車場（parking）に関連するトピック（θ_parking）には低いθが与えられる。理解を助けるため、便宜的に、店舗（shop）や車（car）という人間に分かりやすいラベルを与えている。実際のＬＤＡでは、人間がラベルを与える必要はなく、トピックの番号が与えられる。φは、そのトピックで使用される単語の発生確率を示したものであり、ベクトル(トピックベクトル)φ_k=｛π_k,1、π_k,2 ...、π_k,v｝で表現される。ただし、ｋはトピックの番号を意味し、π_k,iはトピックに含まれるｉ番目の単語の発生確率を示す。たとえば、駐車場に関連するベクトル（φ_parking）において、「車（car）」という単語が高い確率で使われる場合、「車」に対応するπ_parking,carには高い値が設定される。結果、ＬＤＡでは、同じトピックを構成する主要な単語集合は、(そのトピックにおいて)高い共起確率を持つことになり、ともに高いπ_k,iが与えられる。
【００４９】
ＬＤＡは、事前に与えられたトピック数Ｋに基づき、コーパスＣに最も適合するよう、全てのトピックｋ（k = 1、 2、 …、K）に対する単語分布φkおよびトピック分布θdを推定する。今回は、パラメータ推定を行う方法を行う方法として、オンライン変分ベイズアルゴリズムを使用した。ＬＤＡの詳細は、上述の文献（Blei+ 2003）に見出すことができるが、ＬＤＡを実装するために、発明者等は、Gensim (R. Rehurek and P. Sojka, Software Framework for Topic Modelling with Large Corpora, Proceedings of the LREC 2010 Workshop on New Challenges for NLP Frameworks, pp. 45-50, 2010)というライブラリを使用した。
【００５０】
ＬＤＡによって得られたトピックベクトルを基底ベクトルと使用することで、各文書をＫ次元のトピックベクトル空間上へ射影可能となる。トピックベクトル空間では、各トピックと、文書の関連度合が、ベクトルの要素として表現される。たとえば、ある文書で、駐車場に関するトピックと関連性が高ければ、φ_parkingに対応する値が大きくなる。一方、店舗に関するトピックとの関連性が低ければ、φ_shopに対応する値が小さくなる。このようにトピックベクトル空間では、各文書のベクトル表現は各トピックの混合比率となる。 
【００５１】
このようにして、図５のステップＳ１５で、ＬＤＡを利用して、次元圧縮用のトピックパラメータＰ_topicを抽出する。
【００５２】
このステップＳ７を各データセットＥｉについて繰り返し実行することによって、全てのデータセットに対してトピックパラメータＰ_topicが登録される。
【００５３】
次に、図６に示すフロー図を参照して、発話用インデックス作成プログラム３６ｂに従った処理を説明する。ステップＳ２１で、まず、使用する発話コンテンツをデータ領域の記憶領域３８ａからすべて読み込む。この発話文は、先のデータセットとは別に、たとえばキー入力や音声入力によって、予め作成して登録しておく。
【００５４】
そして、次のステップＳ２３で、発話文の除外単語をデータ領域３８の記憶領域３８ｃから読み込む。
【００５５】
続くステップＳ２５すなわちステップＳ２７‐Ｓ３３で、全ての発話文Ｕｉに関して、発話用インデックスＶ_index,iを作成する。
【００５６】
詳しくいうと、ステップＳ２７で、発話文Ｕｉのための特徴ベクトルＶｉを初期化し、ステップＳ２９で、発話文Ｕｉを文節毎に区切り、除外単語ではない単語を特徴ベクトルＶｉに加える。
【００５７】
次のステップＳ３１で、トピックパラメータＰ_topic（図５：ステップＳ１５）を使用して、特徴ベクトルＶｉをＮ次元に圧縮したベクトルＶ_index,iを生成する。これは、特徴ベクトルＶｉの次元をトピック空間へ射影したものである。
【００５８】
なお、このステップＳ３１での次元圧縮には、上述のＬＤＡの他、ＬＳＡ（Latent Semantic Analysis：潜在意味解析）、主成分分析などの手法が利用可能である。
【００５９】
ステップＳ３３で、ステップＳ３１で作成したベクトルＶ_index,iを、発話文Ｕｉの発話用インデックスとして、データ領域３８の記憶領域３８ｅに登録する。
【００６０】
このステップＳ２５を各発話文Ｕｉについて繰り返し実行することによって、発話コンテンツの全ての発話文Ｕに対して発話用インデックスＶ_index,iが登録される。
【００６１】
次に実際にカメラ２２で風景を撮影したときの発話動作を、図７を用いて説明する。この図７の動作を開始する前提として、図５のトピックパラメータＰおよび図６の発話用インデックスＶがそれぞれデータ領域３８に登録されている。つまり、データ領域３８の記憶領域３８ｄがトピックパラメータ登録部として機能し、記憶領域３８ｅが発話用インデックス登録部として機能
図１に示すロボット１０を、肩に装着して人がたとえば散歩に出る。ステップＳ４１では、ＣＰＵ２４は、カメラ２２からの画像データをカメラインタフェース３４を通して取得する。そして、ステップＳ４３で、プログラム領域３６の画像解析プログラム３６ｄ（たとえば、Google Cloud Vision：https//cloud.google.com/vision/）を用いて、その画像データからすべての構成要素を抽出して、特徴ベクトルＶ_sightを生成する。
【００６２】
ステップＳ４５では、そのようにして生成した特徴ベクトルＶ_sightの要素数が「１」以上かどうか、つまり、そのときの画像データが解析するに値する画像のものかどうか、判断する。もし、カメラ２２の故障や不作動によって、ちゃんとした画像がない場合、たとえば全黒画像であったり、ピンぼけ画像であったりする場合、そのような画像から連想する発話コンテンツを選択することはできないからである。
【００６３】
ステップＳ４５で“ＮＯ”なら、ステップＳ４１に戻って別の画像データを取り込む。
【００６４】
ステップＳ４５で“ＹＥＳ”を判断したとき、すなわち、画像の構成要素の特徴ベクトルＶ_sightの要素数が１以上あると判断したとき、次のステップＳ４７で、先のトピックパラメータＰ_topicを用いて、特徴ベクトルＶ_sightをＮ次元に圧縮したベクトルＶ_topic,sightを生成する。このステップＳ４７でも、ＬＤＡ、ＬＳＡ、あるいは主成分分析などの手法が利用可能である。このベクトルＶ_topic,sightは、そのとき入力された（たとえばカメラから）画像の構成要素の特徴ベクトルをＮ次元に圧縮したベクトルであるので、便宜上、入力画像特徴ベクトルと呼ぶことにする。
【００６５】
図８に、参考のために、ＬＳＡによるベクトルＶ_topic,sightの生成について示す。
【００６６】
図８のＬＳＡでは、ステップＳ６１で、Ｎ個のトピックベクトルＶ_topicを読み込む。ＬＳＡでは、同時に発生する単語（構成要素）をＮ個のトピックベクトルＶ_topicとして表現される。各トピックベクトルＶ_topicの要素は、同時発生確率（共起確率）が高い組み合わせほど高い値を持つ。
【００６７】
ＬＤＡはコーパス中の単語の出現確率の偏りをトピックとして扱い、図９の表に示すような各トピックにおける各単語の出現確率を算出する。ステップＳ６１で新たに取得する画像は、ＬＤＡによってラベル（構成要素：単語）から各トピックに属している確率が計算され、それがトピックベクトルとなる。
【００６８】
トピックベクトルＶ_topicについて説明すると、図９の表は、買い物関連（shop-like）、車関連（car-like）、自然関連（nature-like）、と名付けた３つのトピックの単語分布φ_kの例を示している。この表でいえば、画像から抽出した構成要素がたとえば「property」、「lawn」、「cottage」、「pasture」、「area」、「farm」、「have」、「you」、「ever」、「gone」、「to」、「camp」である場合を想定する。
【００６９】
この場合、表に示す「φ_shop-like」では、発話文Ｕiに含まれる単語「pedestrian」、「shopping」、「road」、「city」、「crowd」、「street」、「shopping-mall」などの単語について、それぞれ「.０６２」、「.０５３」、「.０４５」、「.０４２」、「.０４０」、「.０３７」、「.０３０」などの確率が計算される。
【００７０】
表に示す「φ_car-like」、「φ_nature-like」についても同様である。
【００７１】
図１０（ａ）に示す画像についてさらに説明すると、この画像からは図１０（ｂ）に示すラベル（単語）が抽出できる。その結果、図１０（ｃ）に示すトピックベクトルが「φ_shop-like」、「φ_car-like」、「φ_nature-like」について、それぞれ、「０．５２」、「０.２２」、「０．０２」となる。画像が繁華街を撮影したものであるので、この「φ_shop-like」のトピックベクトルＶ_topicが画像を最もよく表現したものということができる。
【００７２】
次のステップＳ６７すなわちステップＳ６９‐Ｓ７１を実行して、出力ベクトルＶ_out、この場合には、圧縮ベクトルＶ_topic,sightを出力する。
【００７３】
詳しく説明すると、Ｎ個のトピックベクトＶ_topic,iに対して、まずステップＳ６９で、トピックベクトルＶ_topicと、特徴ベクトルＶ_inの内積innerを計算し、ステップＳ７１で、出力ベクトルＶ_outのi番目の要素にこのinnerを設定する。各トピックベクトルＶ_topic,iに対してこれらのステップＳ６９およびＳ７１を繰り返し実行することによって、ステップＳ７３で、次元圧縮された特徴ベクトルＶ_out、すなわち、次元圧縮ベクトルＶ_topic,sightを出力して、図７のステップＳ４９にリターンする。
【００７４】
図７のステップＳ４７をＬＤＡで実施する場合、図１１のステップＳ８１において、図５のステップＳ１５で作成したトピックパラメータＰ_topicを読み込む。ＬＤＡでは、各トピックは、単語の同時出現頻度を示す確率分布として表現される。また、各特徴ベクトルはこのトピック毎の隔離分布関数の組み合わせ（比率による混合）として表現する。パラメータの算出時には、データセットからこの確率分布が次元圧縮用のパラメータとして抽出される。
【００７５】
ステップＳ８３で、次元圧縮の対象となる特徴ベクトルＶ_in、この場合には構成要素の特徴ベクトルＶ_sightを読み込む。次のステップＳ８５で、出力ベクトルＶ_out、この場合には、圧縮ベクトルＶ_topic,sightを初期化する。
【００７６】
そして、ステップＳ８９で、Ｖ_outすなわちＶ_topic,sightを出力し、図７のステップＳ４９にリターンする。
【００７７】
図７に戻って、ステップＳ４９では、全ての発話文Ｕｉに関して、その発話用インデックスＶ_index（図６）と、ステップＳ４７で生成したベクトルＶ_topic,sightの類似度Ｓｉｍ_sight,iを計算する。この類似度の計算としては、コサイン類似度や内積等が利用可能であるが、実施例ではコサイン類似度を使用した。
【００７８】
そして、全ての発話文Ｕｉの中で、類似度Ｓｉｍ_sight,iが最大となる発話文Ｕｉを選択し、ステップＳ５３で、その発話文をスピーカ２０から出力させる。このときの発話文は、ステップＳ４３データ抽出したカメラ画像の構成要素と最も高い類似度を持つ（ステップＳ５１）のであるから、カメラ画像と最も適合する発話文であるといえる。
【００７９】
図１２のグラフにおけるＵ１、Ｕ２はロボット１０がデータ領域３８に予め設定されている発話コンテンツであり、Ｐ１‐Ｐ４は図１３に示す画像であり、これらをたとえばＬＤＡと呼ばれるトピックモデルを用いて、図９で示すように単語の集合をラベル化したものとの類似度を計算することが可能となり、類似度の計算にはコサイン類似度を用いる。
【００８０】
図１２および図１３の実施例でいえば、画像Ｐ１、Ｐ３のように車や駐車場が認識できる風景画像に対しては、より類似度の大きい（コサイン類似度は２つのベクトルが作る角度によって計算されるので、図１２のグラフ上で近い点になる。）発話文Ｕ１（車のトピック）が選択され、画像Ｐ２、Ｐ４のように店舗や人混みが認識できる画像に対しては発話文Ｕ２（買い物のトピック）を選択する。
【００８１】
上述の実施例によれば、画像と発話文のデータセットからコーパス（Ｎ次元の特徴ベクトル）を登録しておき、他方別に入力した発話コンテンツを検索するためのＮ次元の発話用インデックスを登録しておくことで、発話コンテンツの中から、入力された画像から連想できる発話文を選択することができ、たとえばカメラがリアルタイムに撮影した風景に適合した自然な対話を実現することができる。このような対話ロボットは、たとえば人の散歩のパートナとして適したものとなる。
【００８２】
さらに、発話コンテンツは画像とは別にメモリ（データベース）に登録しておけばよいだけなので、発話コンテンツを場所や風景とは独立して登録でき、さらに場所や風景との関連付けを手動で行わなくてもよいので、人と対話するロボットの開発の効率が向上する。
【００８３】
なお、上述の実施例では、人の肩に装着された結果人と同行するロボット１０を用いて説明した。しかしながら、ロボット１０としては、車輪移動できるロボット、２足歩行できるロボットなど、自律的にもしくは遠隔操作によって移動できるロボットであってもよい。また、遠隔操作はロボットと同道する人が実行してもよいし、他の人がモニタを見ながら実行してもよい。
【００８４】
肩に装着する場合には、ロボットとして移動機構を持たなくてもよいので、安価かつ簡単な構造で実現できる。しかしながら、特に高齢者などでは肩に装着して歩行する体力やバランス感覚のない人もいるので、そのような人には、人と並んで移動するようなロボットが好適する。
【００８５】
さらに、上述の実施例では、発話コンテンツは、ロボット１０のメモリ３０に登録しておくこととして説明した。しかしながら、この発話コンテンツのデータは、別のデータベース（図示せず）に登録しておくようにしてもよい。この場合、発話用インデックスの作成処理は、その別のデータベースから発話文を読み出して、ロボット１０のＣＰＵ２４とは別のコンピュータを用いて、予め計算して登録しておくようにしてもよい。
【００８６】
さらに、この場合、発話文を発話コンテンツから選択して読み出す必要があれば、必要の都度、通信モジュール２８を通してそのようなデータベースにアクセスしてそこから読み出すようにしてもよい。このとき、発話用インデックスについてもそのデータベースに併せて登録ようにしてもよい。
【符号の説明】
【００８７】
１０  …コミュニケーションロボット
２０  …スピーカ
２２  …カメラ
２４  …ＣＰＵ
３０  …メモリ
３６  …プログラム領域
３８  …データ領域
【図１】
2018147145.tif 000003
【図２】
2018147145.tif 000004
【図３】
2018147145.tif 000005
【図４】
2018147145.tif 000006
【図５】
2018147145.tif 000007
【図６】
2018147145.tif 000008
【図７】
2018147145.tif 000009
【図８】
2018147145.tif 000010
【図９】
2018147145.tif 000011
【図１０】
2018147145.tif 000012
【図１１】
2018147145.tif 000013
【図１２】
2018147145.tif 000014
【図１３】
2018147145.tif 000015