(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022160151
(43)【公開日】2022-10-19
(54)【発明の名称】発話辞書学習装置、発話文生成装置及び発話辞書学習プログラム
(51)【国際特許分類】
G06F 40/242 20200101AFI20221012BHJP
【FI】
G06F40/242
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021064728
(22)【出願日】2021-04-06
(71)【出願人】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(72)【発明者】
【氏名】金子 豊
(72)【発明者】
【氏名】上村 真利奈
(72)【発明者】
【氏名】山本 正男
(72)【発明者】
【氏名】萩尾 勇太
(72)【発明者】
【氏名】星 祐太
【テーマコード(参考)】
5B091
【Fターム(参考)】
5B091CC02
(57)【要約】
【課題】コミュニケーションロボットが話すことの出来る単語を次第に増やしていくことができる発話辞書学習装置及び発話文生成装置を提供すること。
【解決手段】発話辞書学習装置100は、過去に入力された入力文Iを保管した入力文履歴Cと、入力文履歴Cに保管されている文に所定以上の頻度で出現する単語の特徴ベクトルを、文中の単語を予測するための文モデルDにより学習し、特徴ベクトルを学習済みの既知語を、既知語辞書Aに登録する文モデル学習部5と、入力文Iに出現し、かつ、既知語辞書Aに登録されていない未知語を、未知語辞書Bに登録する未知語辞書更新部3と、を備え、文モデル学習部5は、所定のタイミングで文モデルDの学習を繰り返し、既知語辞書Aに登録された既知語を、未知語辞書Bから削除する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
過去に入力された入力文を保管した入力文履歴と、
前記入力文履歴に保管されている文に所定以上の頻度で出現する単語の特徴ベクトルを、文中の単語を予測するための文モデルにより学習し、前記特徴ベクトルを学習済みの既知語を、既知語辞書に登録する文モデル学習部と、
前記入力文に出現し、かつ、前記既知語辞書に登録されていない未知語を、未知語辞書に登録する未知語辞書更新部と、を備え、
前記文モデル学習部は、所定のタイミングで前記文モデルの学習を繰り返し、前記既知語辞書に登録された前記既知語を、前記未知語辞書から削除する発話辞書学習装置。
【請求項2】
前記未知語の出現回数に基づいて、前記文モデル学習部に再学習を要求する再学習要求部を備える請求項1に記載の発話辞書学習装置。
【請求項3】
前記再学習要求部は、前記未知語辞書に、出現回数が所定以上の前記未知語が所定以上登録された場合に、前記文モデル学習部に再学習を要求する請求項2に記載の発話辞書学習装置。
【請求項4】
前記入力文に出現する単語の前記文モデルに基づく予測結果により、前記未知語の近似語を推定する未知語予測部を備え、
前記未知語辞書更新部は、前記未知語と前記近似語とを対応付けて前記未知語辞書に登録する請求項1から請求項3のいずれかに記載の発話辞書学習装置。
【請求項5】
請求項1から請求項4のいずれかに記載の発話辞書学習装置により学習された前記既知語辞書及び前記未知語辞書を参照し、発話文を生成する発話文生成装置であって、
入力文に含まれ、前記既知語辞書に登録されている前記既知語、又は前記未知語辞書に登録されている前記未知語を、テンプレート文に組み合わせて発話文を生成する発話文生成部を備える発話文生成装置。
【請求項6】
請求項4に記載の発話辞書学習装置により学習された前記既知語辞書及び前記未知語辞書を参照し、発話文を生成する発話文生成装置であって、
前記既知語辞書に登録されている前記既知語を含む入力文を、テンプレート文として登録するテンプレート作成部と、
入力文に含まれ、前記既知語辞書に登録されている前記既知語、又は前記未知語辞書に登録されている前記未知語に対して、前記テンプレート文を選択するテンプレート選択部と、
選択された前記テンプレート文に前記既知語又は前記未知語を組み合わせて発話文を生成する発話文生成部と、を備え、
前記テンプレート選択部は、
前記既知語に対して、前記特徴ベクトルが類似する類義語を選択し、当該類義語に対応する前記テンプレート文を選択し、
前記未知語に対して、前記未知語辞書において対応付けられている前記近似語に対応する前記テンプレート文を選択する発話文生成装置。
【請求項7】
前記近似語は、前記未知語に対して前記未知語予測部により推定された複数の単語のうち、推定頻度が高い単語が優先される請求項6に記載の発話文生成装置。
【請求項8】
請求項1から請求項4のいずれかに記載の発話辞書学習装置としてコンピュータを機能させるための発話辞書学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コミュニケーションロボットが視聴中の番組をきっかけに発話するための発話文生成装置に関する。
【背景技術】
【0002】
従来、人と一緒にテレビ番組などの映像を視聴するコミュニケーションロボットに関する技術が提案されている。
例えば、特許文献1では、映像に関連するソーシャルメディアコメントを利用し、ロボットの内部的なパーソナリティ、感情状態などに応じて、発話文を生成させ、ロボットを動作させることで、ロボットがユーザとともに映像を視聴しているかのような共感するアクションを実現する技術が提案されている。
また、特許文献2では、テレビ視聴中に、ロボットが人からのチャンネル切り替えなどの命令対話に応じるとともに、テレビの方向を向きながらつぶやくことで、ロボットが自律してテレビを視聴しているかのような動作をさせるロボットの制御技術が提案されている。
【0003】
このようなコミュニケーションロボットでは、人からの話しかけに対して応答や共感のように受動的に反応する動作だけでなく、人に対して話のきっかけを提供するような能動的な動作も必要となる。能動的な動作の1つとして、ロボットが自動的に発話文を生成して人に話しかける機能がある。
視聴中のテレビ番組をきっかけとして発話文を生成する手法として、例えば、特許文献3では、視聴中のテレビ番組の字幕情報からキーワードを抽出し、このキーワードを元に発話文を生成する手法が提案されている。この手法では、発話文は、保管されているテンプレート文に抽出したキーワードをはめ込むことで生成される。ところが、抽出されるキーワードは、予め辞書に登録されているものとしているため、決められたキーワードに基づく文章しか生成できないという課題がある。
【0004】
また、画像から文章を自動生成する手法としては、ビジュアルキャプショニングと呼ばれる技術が数多く開発されている。これらは、画像と対となる説明文の学習データを大量に用い、深層学習により画像から文章を生成するモデルを構築することで、入力画像から説明文を自動生成する手法である。
例えば、非特許文献1の手法では、画像からテンプレート文を生成し、画像内の検出オブジェクトでテンプレート文を埋めることで、検出オブジェクトに関する文章を生成している。ところが、深層学習に基づくビジュアルキャプショニング技術では、検出オブジェクトの種類(クラス数)が学習時に決まってしまい、発話文に用いるキーワードの種類が限定されてしまうという課題がある。また、新たな検出オブジェクトのクラスを追加するには、学習データが大量に必要となるため、容易には増やすことができない。さらに、画像内の検出オブジェクトは、「犬」、「猫」などの抽象的なクラス名であるため、固有名詞などの多様な単語を含む文を生成することが困難である。
【0005】
そこで、予め決められた語(辞書に登録されている語)以外の語(未知語)を使って発話文を自動生成するために、例えば、特許文献4の手法が提案されている。この手法では、未知語を含む文において、未知語の前後の単語から、未知語部分に当てはまる近似語を辞書の中から推定し、この推定語を使って文章を生成した上で、最後に推定語を未知語に置き換えることで、未知語を含んだ文を自動生成している。この手法では、未知語を使った文章を生成できるものの、推定精度は学習に使った文に依存する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特許第6122792号公報
【特許文献2】特開2018-180472号公報
【特許文献3】特開2018-190077号公報
【特許文献4】特開2019-185400号公報
【非特許文献】
【0007】
【非特許文献1】J. Lu, J. Yang, D. Batra, D. Parikh, "Neural Baby Talk," Computer Vision and Pattern Recognition (CVPR), pp.7219-7228 (2018)
【発明の概要】
【発明が解決しようとする課題】
【0008】
コミュニケーションロボットの課題として、ユーザがロボットの動作に飽きてしまい、利用が短期間となってしまうことがある。人がロボットに飽きてしまう要因の1つに、ロボット製作者が予め決めた動作しかしないという点がある。例えば、ロボットの発話に関しては、前述のように、予め登録された単語又は文を用いた発話しかできなかった。
特許文献4の手法によれば、未知語を使った文章を生成できるものの、近似語の推定精度は学習に用いた文に依存するため、適切な発話文を生成できないことも多かった。
【0009】
本発明は、コミュニケーションロボットが話すことの出来る単語を次第に増やしていくことができる発話辞書学習装置及び発話文生成装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明に係る発話辞書学習装置は、過去に入力された入力文を保管した入力文履歴と、前記入力文履歴に保管されている文に所定以上の頻度で出現する単語の特徴ベクトルを、文中の単語を予測するための文モデルにより学習し、前記特徴ベクトルを学習済みの既知語を、既知語辞書に登録する文モデル学習部と、前記入力文に出現し、かつ、前記既知語辞書に登録されていない未知語を、未知語辞書に登録する未知語辞書更新部と、を備え、前記文モデル学習部は、所定のタイミングで前記文モデルの学習を繰り返し、前記既知語辞書に登録された前記既知語を、前記未知語辞書から削除する。
【0011】
前記発話辞書学習装置は、前記未知語の出現回数に基づいて、前記文モデル学習部に再学習を要求する再学習要求部を備えてもよい。
【0012】
前記再学習要求部は、前記未知語辞書に、出現回数が所定以上の前記未知語が所定以上登録された場合に、前記文モデル学習部に再学習を要求してもよい。
【0013】
前記発話辞書学習装置は、前記入力文に出現する単語の前記文モデルに基づく予測結果により、前記未知語の近似語を推定する未知語予測部を備え、前記未知語辞書更新部は、前記未知語と前記近似語とを対応付けて前記未知語辞書に登録してもよい。
【0014】
本発明に係る発話文生成装置は、前記発話辞書学習装置により学習された前記既知語辞書及び前記未知語辞書を参照し、発話文を生成する装置であって、入力文に含まれ、前記既知語辞書に登録されている前記既知語、又は前記未知語辞書に登録されている前記未知語を、テンプレート文に組み合わせて発話文を生成する発話文生成部を備える。
【0015】
本発明に係る発話文生成装置は、前記発話辞書学習装置により学習された前記既知語辞書及び前記未知語辞書を参照し、発話文を生成する装置であって、前記既知語辞書に登録されている前記既知語を含む入力文を、テンプレート文として登録するテンプレート作成部と、入力文に含まれ、前記既知語辞書に登録されている前記既知語、又は前記未知語辞書に登録されている前記未知語に対して、前記テンプレート文を選択するテンプレート選択部と、選択された前記テンプレート文に前記既知語又は前記未知語を組み合わせて発話文を生成する発話文生成部と、を備え、前記テンプレート選択部は、前記既知語に対して、前記特徴ベクトルが類似する類義語を選択し、当該類義語に対応する前記テンプレート文を選択し、前記未知語に対して、前記未知語辞書において対応付けられている前記近似語に対応する前記テンプレート文を選択する。
【0016】
前記近似語は、前記未知語に対して前記未知語予測部により推定された複数の単語のうち、推定頻度が高い単語が優先されてもよい。
【0017】
本発明に係る発話辞書学習プログラムは、前記発話辞書学習装置としてコンピュータを機能させるためのものである。
【発明の効果】
【0018】
本発明によれば、コミュニケーションロボットが話すことの出来る単語を次第に増やしていくことができる。
【図面の簡単な説明】
【0019】
【
図1】実施形態における発話文生成装置の機能構成を示すブロック図である。
【
図2】実施形態における既知語辞書に保管された単語の例を示す図である。
【
図3】実施形態における未知語辞書に保管されたデータの例を示す図である。
【
図4】実施形態における既知語抽出部による処理の流れを示す図である。
【
図5】実施形態における未知語抽出部による処理の流れを示す図である。
【
図6】実施形態における未知語辞書更新部による処理の流れを示す図である。
【
図7】実施形態における文モデルの学習方法を例示する図である。
【
図8】実施形態における文モデル学習部による処理の流れを示す図である。
【
図9】実施形態におけるテンプレート文の例を示す図である。
【
図10】実施形態における発話文生成部による処理の流れを示す図である。
【
図11】実施形態における文モデルとして学習された既知語辞書に含まれる単語の特徴ベクトルのイメージを示す図である。
【
図12】実施形態におけるテンプレート選択部による処理の流れを示す図である。
【発明を実施するための形態】
【0020】
以下、本発明の実施形態の一例について説明する。
本実施形態における発話文生成装置は、ロボット又は擬人化エージェントなどの人間に対して言葉を発する装置に組み込まれて又は接続されて、テレビ番組の字幕文などの入力された文から、知っている言葉の辞書、話せる言葉の辞書、発話文生成用テンプレート文を段階的に記憶していく。
これにより、例えば、コミュニケーションロボットは、利用者と一緒にテレビを視聴していくうちに、話すことの出来る単語や文が増えていくことで、成長を感じさせ、発話する文がロボットの利用者によって異なるような個性を感じさせる発話を実現する。
【0021】
図1は、本実施形態における発話文生成装置200の機能構成を示すブロック図である。
発話文生成装置200は、入力文Iから発話文Uを生成する。本実施形態では、入力文Iとして、視聴中のテレビ番組の字幕文が逐次、発話文生成装置200に入力されるものとして説明する。
【0022】
発話文生成装置200は、内部に発話辞書学習装置100を備え、発話辞書学習装置100から出力される単語を用いて発話文Uを生成する。
ここで、発話文生成装置200は、制御部、記憶部及び各種の入出力デバイスを備えた情報処理装置(コンピュータ)であり、記憶部に格納されたソフトウェアを制御部が実行することにより、後述の各種機能を実現する。なお、発話辞書学習装置100は、発話文生成装置200とのインタフェースを備えた情報処理装置として構成されてもよいが、その機能及びデータベースが発話文生成装置200の制御部及び記憶部に統合されていてもよい。
【0023】
発話辞書学習装置100は、制御部に、既知語抽出部1と、未知語抽出部2と、未知語辞書更新部3と、文保管部4と、文モデル学習部5と、未知語予測部6と、再学習要求部7とを備え、記憶部に、既知語辞書A、未知語辞書B、入力文履歴C、文モデルDの各データを蓄積している。
発話文生成装置200は、発話辞書学習装置100の他、制御部にテンプレート作成部9と、発話文生成部10と、テンプレート選択部11とを備え、記憶部に、テンプレート文Eのデータを蓄積している。
【0024】
既知語辞書Aは、発話辞書学習装置100が学習により知った、発話文生成に使って話せる単語(既知語)を保管したデータベースである。本実施形態では、既知語辞書Aに保管する単語は名詞とするが、単語は名詞に限定されるものではなく、動詞、形容詞、副詞など、他の品詞を含んでもよい。
【0025】
図2は、本実施形態における既知語辞書Aに保管された単語の例を示す図である。
この例では、既知語として、「秋田犬」「柴犬」「東京駅」「京都駅」「日本そば」「ラーメン」「うどん」「スパゲッティ」「三毛猫」「トラ猫」「世田谷」「イギリス」「フランス」の13語が登録されている。
【0026】
未知語辞書Bは、入力文Iに含まれる単語(名詞)の中で、既知語辞書Aには含まれていない、すなわち学習していないが知っている単語(未知語)を保管したデータベースである。
また、未知語辞書Bには、登録された未知語それぞれに対して、既知語辞書Aの中から、この未知語に近い既知語を推定した結果である近似語が保管されている。近似語の推定は、入力文Iにこの未知語が出現するごとに後述の未知語予測部6により行われ、推定された近似語が推定の度に未知語辞書Bの該当する未知語に対応付けて追記される。
【0027】
図3は、本実施形態における未知語辞書Bに保管されたデータの例を示す図である。
この例では、未知語として、「ナポリタン」「甲斐犬」「花巻」「マンチカン」の4語が登録されている。また、「ナポリタン」に対しては、既知語辞書A(
図2)に登録されている「うどん」「イギリス」「ラーメン」の3語が近似語として推定されている。
同様に、「甲斐犬」に対して「秋田犬」「三毛猫」が、「花巻」に対して「世田谷」「うどん」が、「マンチカン」に対して「トラ猫」が、それぞれ近似語として登録されている。
【0028】
なお、
図3の例では、近似語が推定される度に追記されているため、例えば、未知語「ナポリタン」に対する近似語の「ラーメン」は、重複して登録されている。
未知語辞書Bにおける記録形式はこれには限られず、例えば、近似語は回数とともに記録されてもよい。
【0029】
既知語抽出部1は、入力文Iの中から、既知語辞書Aに含まれる既知語を抽出し、発話文生成部10に提供する。また、既知語抽出部1は、既知語辞書Aに含まれない単語(名詞)の抽出も行い、未知語辞書更新部3に提供する。
さらに、既知語抽出部1は、入力文Iに基づくテンプレートを作成するため、抽出した既知語とともに、入力文Iをテンプレート作成部9に提供する。
【0030】
図4は、本実施形態における既知語抽出部1による処理の流れを示す図である。
本処理は、字幕文などの入力文Iが入力されることにより開始される。
【0031】
ステップS11において、既知語抽出部1は、形態素解析により、入力文Iを単語分割する。例えば、入力文Iが「かわいい三毛猫ですね。」の場合、「かわいい(形容詞)/三毛猫(名詞)/です(助動詞)/ね(助詞)」と、品詞とともに単語分割された結果が得られる。
【0032】
ステップS12において、既知語抽出部1は、単語分割された文の中に、品詞が名詞で、既知語辞書Aに登録されている単語があるか否かを判定する。この判定がYESの場合、処理はステップS11に移り、判定がNOの場合、処理はステップS15に移る。
【0033】
ステップS13において、既知語抽出部1は、検出した単語(既知語)及び単語分割された入力文Iを、テンプレート作成部9に通知する。
【0034】
ステップS14において、既知語抽出部1は、検出した単語(既知語)を、発話文生成部10に通知する。
【0035】
ステップS15において、既知語抽出部1は、入力文Iの中に、既知語辞書Aに登録されている単語以外の名詞があるか否かを判定する。この判定がYESの場合、処理はステップS16に移り、判定がNOの場合、処理は終了する。
【0036】
ステップS16において、既知語抽出部1は、検出した単語(未知語)を、単語分割された入力文Iとともに、未知語辞書更新部3に通知する。例えば、入力文Iが「タルトを食べたい。」の場合、入力文Iは、「タルト(名詞)/を(助詞)/食べ(動詞)/たい(助動詞)」に単語分割され、「タルト(名詞)」が未知語として、未知語辞書更新部3に通知される。
【0037】
未知語抽出部2は、入力文Iの中から、未知語辞書Bに登録されている未知語を抽出し、対応付けられている近似語のいずれかとともに発話文生成部10に提供する。
ここで、提供する近似語の選択はランダムであってよい。未知語辞書Bには、複数回推定された近似語が重複して、あるいは回数とともに登録されているので、これらの重複する近似語は、他の近似語よりも選択される確率が高くなる。
あるいは、推定された回数が多い近似語ほど優先度を高く設定し、優先度に応じた確率で選択されてもよい。
【0038】
図5は、本実施形態における未知語抽出部2による処理の流れを示す図である。
本処理は、字幕文などの入力文Iが入力されることにより開始される。
【0039】
ステップS21において、未知語抽出部2は、形態素解析により、入力文Iを単語分割する。
【0040】
ステップS22において、未知語抽出部2は、単語分割された文の中に、未知語辞書Bに登録されている未知語があるか否かを判定する。この判定がYESの場合、処理はステップS23に移り、判定がNOの場合、処理は終了する。
【0041】
ステップS23において、未知語抽出部2は、未知語辞書Bに登録されている近似語の中から1つをランダムに選択し、ステップS22で検出した未知語、及び選択した近似語を、発話文生成部10に通知する。
【0042】
例えば、入力文Iが「このお店のナポリタンはすごくおいしいですよ。」の場合、未知語辞書B(
図3)に登録されている「ナポリタン」が未知語として検出される。また、未知語辞書Bには、「ナポリタン」の近似語として、「うどん」「ラーメン」「イギリス」が登録されており、そのうち「ラーメン」は2回近似語として推定されている。未知語抽出部2は、これらの近似語の中からランダムに1つを選択する。例えば、「ラーメン」が選択されたとすると、未知語抽出部2は、発話文生成部10に、未知語「ナポリタン」とともに、近似語として「ラーメン」を通知する。
【0043】
未知語辞書更新部3は、既知語抽出部1から未知語として通知された単語を、未知語辞書Bに登録するとともに、この未知語に対する近似語の推定結果を、未知語辞書Bに追記する。
【0044】
図6は、本実施形態における未知語辞書更新部3による処理の流れを示す図である。
本処理は、既知語抽出部1から入力文I及び未知語Xが通知されることにより開始される。
【0045】
ステップS31において、未知語辞書更新部3は、既知語抽出部1から通知された未知語Xが未知語辞書Bに既に登録されているか否かを判定する。この判定がYESの場合、処理はステップS33に移り、判定がNOの場合、処理はステップS32に移る。
【0046】
ステップS32において、未知語辞書更新部3は、未知語辞書Bに未登録の未知語Xを登録する。
【0047】
ステップS33において、未知語辞書更新部3は、未知語予測部6から、未知語Xに対する近似語の推定結果を取得する。
【0048】
ステップS34において、未知語辞書更新部3は、取得した近似語を、未知語辞書Bの未知語Xに対する近似語として登録する。
例えば、既知語抽出部1から、単語分割された入力文Iとして「タルト(名詞)/を(助詞)/食べ(動詞)/たい(助動詞)」を、未知語として「タルト」が通知された場合、未知語辞書更新部3は、未知語辞書B(
図3)に登録された単語の中から、「タルト」を検索し、登録されていないため、新たに未知語として登録する。また、未知語予測部6により、入力文Iから「タルト」の近似語として「うどん」が推定された場合、未知語辞書更新部3は、未知語辞書Bの「タルト」の近似語として「うどん」を追記する。
【0049】
文保管部4は、文モデルDを学習、又は再学習するために、入力された入力文Iを入力文履歴Cとして保管する。
【0050】
文モデル学習部5は、指示入力又は一定周期などの所定のタイミングで、あるいは再学習要求部7からの要求があると、入力文履歴Cに保管されている過去に入力された文を用いて、文モデルDを学習又は再学習するとともに、既知語辞書A及び未知語辞書Bの更新処理を実行する。
【0051】
本実施形態では、文モデルDの学習方法の一例として、次の非特許文献2に示されているWord2vecを用いるものとする。
非特許文献2: T. Mikolov, K. Chen, G. Corrado, J. Dean: "Efficient Estimation of Word Representations in Vector Space," Proceedings of Workshop at ICLR, arXiv: 1301.3781 (2013).
【0052】
Word2vecは、単語分割された文を使い、ターゲットの単語の周辺単語からターゲットの単語が出力されるように学習するニューラルネットワークである。大量の入力文を用いることで、学習されたニューラルネットワーク内の重みは、単語の特徴ベクトルとして用いることができ、意味的に近似する単語の特徴ベクトルは、近くのベクトル値になることが経験的に知られている。
【0053】
図7は、本実施形態における文モデルDの学習方法を例示する図である。
ここでは、「おいし/そう/な/ラーメン/です/ね」という単語分割された文において、ターゲットの単語を「ラーメン」とした場合の、Word2vecによる学習の例を示している。
【0054】
この例は、Word2vecが学習する単語の語彙数をV、単語の特徴ベクトルの次元数をNとした場合を示しており、ターゲットの単語を除く周辺の単語を入力し、「ラーメン」という単語が出力されるように学習することで、ネットワーク内のN次元の特徴ベクトルが学習される。
ここで、WN×V及びW’V×Nは、ネットワークの重みを表しており、入力の各単語wiに相当するone-hotベクトルxwiから得られるN次元ベクトルWN×V・xwiの総和が、ターゲットの単語の特徴ベクトルとなる。
文モデル学習部5は、入力文履歴Cを使って、Word2vecの学習を行い、学習結果のWN×V及びW’V×Nを文モデルDとして保管する。
【0055】
Word2vecで単語の特徴ベクトルを学習するためには、単語に対してある程度の量の学習文が必要である。したがって、出現頻度の低い単語に関しては、精度の高い特徴ベクトルが得られないため、学習する単語の語彙数Vは、予め出現頻度を数えた上で決定される。本実施形態では、学習に用いたV個の語彙の中から、名詞の単語が既知語辞書Aに登録される。
【0056】
図8は、本実施形態における文モデル学習部5による処理の流れを示す図である。
ステップS51において、文モデル学習部5は、入力文履歴Cの文から、全単語それぞれの出現頻度として回数をカウントし、K個以上出現した単語を学習対象の単語として決定する。
ここで、K個以上出現した単語とは、入力文履歴Cの全体の中にK個以上存在する単語であってよいが、これには限られず、例えば、ある一定期間にK回以上出現した単語が選択されてもよい。
【0057】
ステップS52において、文モデル学習部5は、ステップS51で決定した単語の数Vを入力及び出力の次元としてWord2vecの学習を実行し、学習結果のWN×V及びW’V×Nを文モデルDとして保管する。
【0058】
ステップS53において、文モデル学習部5は、学習に用いた語彙のうちの名詞を、既知語辞書Aに既知語として登録する。
【0059】
ステップS54において、文モデル学習部5は、未知語辞書Bに登録されている単語の中から、学習に用いた単語、すなわち既知語辞書Aに登録された単語を削除する。この結果、学習により未知語辞書Bの未知語の一部が既知語辞書Aに移されることとなる。
【0060】
未知語予測部6は、指定された未知語X、及びこの未知語Xが含まれていた入力文Iから、未知語Xの近似語として、既知語辞書Aに登録されている既知語の中から1つの単語を推定する。
図7に示したように、文モデルDにより、周辺の単語から出現確率の高い単語を予測することができるので、未知語予測部6は、未知語Xが含まれる入力文Iにおける未知語X以外の周辺単語から、未知語Xの位置に当てはまる単語を予測することで、既知語辞書Aの中から近似語を推定する。
【0061】
再学習要求部7は、文モデル学習部5に文モデルDの再学習を要求する。前述のように、学習には、対象の単語にある程度の出現頻度(K個以上)が必要である。このため、再学習要求部7は、未知語辞書Bに登録されている各未知語に対する近似語の推定結果の数を監視し、推定語数がK個以上の未知語が一定数L以上になると再学習を要求する。
【0062】
例えば、K=50,L=100とすると、100個の未知語に対応付けて登録された近似語が全て50個以上の状態になると、再学習要求部7は、再学習の要求を文モデル学習部5に通知することになる。
なお、本実施形態では、文モデル学習部5による再学習を、再学習要求部7から自動で要求することとしたが、ユーザが任意のタイミングで要求してもよい。
【0063】
テンプレート作成部9は、既知語抽出部1から通知された、単語分割された文、及びこの文に含まれる既知語から、既知語の部分を穴埋めとするテンプレート文を作成し、データベース(テンプレート文E)に保管する。
【0064】
図9は、本実施形態におけるテンプレート文Eの例を示す図である。
ここでは、括弧[]で囲まれている単語(既知語)が置き換え可能な名詞を示している。例えば、1行目の「大人になっても秋田犬は人気があるんですね。」という過去の入力文Iから作成されたテンプレート文において、置き換えが可能な単語が[大人][秋田犬][人気]であることが示されている。同様に、2行目では、「柴犬っていうのは海外でも人気ですかね?」という過去の入力文Iから、[柴犬][海外][人気]が置換可能なテンプレート文が作成されている。
【0065】
テンプレート作成部9は、このように、既知語抽出部1から通知された単語分割された入力文I及び既知語からテンプレート文を作成し、テンプレート文Eに保管する。例えば、既知語抽出部1から入力文として「かわいい(形容詞)/三毛猫(名詞)/です(助動詞)/ね(助詞)」、既知語として「三毛猫」が通知されると、テンプレート作成部9は、「かわいい[三毛猫]ですね。」というテンプレート文を作成し、テンプレート文Eに追記する。
【0066】
なお、本実施形態では、既知語抽出部1から通知された入力文Iを全てテンプレート文として利用しているが、これには限定されない。例えば、予め定めた所定の文字数以下の文だけがテンプレート文として利用されてもよい。また、「行きたい」「食べたい」などの動詞句、又は「きれい」「大きな」などの形容詞など、感情が含まれる文だけをテンプレート文として保管しておくことで、ロボットが感情を含んだ発話をするように構成されてもよい。
【0067】
発話文生成部10は、既知語抽出部1から通知された既知語Z、又は未知語抽出部2から通知された未知語X及び近似語Yから、発話文Uを生成する。
【0068】
図10は、本実施形態における発話文生成部10による処理の流れを示す図である。
本処理は、既知語抽出部1から既知語Zが通知されるか、又は未知語抽出部2から未知語X及び近似語Yが通知されることにより開始される。
【0069】
ステップS101において、発話文生成部10は、既知語Zが通知されたか未知語Xが通知されたかを判定する。既知語Zが通知された場合、処理はステップS102に移り、未知語Xが通知された場合、処理はステップS104に移る。
【0070】
ステップS102において、発話文生成部10は、既知語抽出部1より通知された既知語Zを用いた発話文Uを生成するため、テンプレート選択部11により選択されたテンプレート文を取得する。
なお、テンプレート選択部11によるテンプレート文の選択方法は後述するが、既知語Zの類義語を含むテンプレート文が選択される。
【0071】
ステップS103において、発話文生成部10は、取得したテンプレート文の中の類義語の部分を既知語Zに置換して、発話文Uを生成する。
【0072】
ステップS104において、発話文生成部10は、未知語抽出部2より通知された未知語Xを用いた発話文Uを生成するため、テンプレート選択部11により選択された、近似語Yに対するテンプレート文を取得する。
【0073】
ステップS105において、発話文生成部10は、取得したテンプレート文の中の近似語の部分を未知語Xに置き換えることで発話文Uを生成する。
【0074】
このように、発話文生成部10は、既知語Zの類義語又は未知語Xの近似語Yに対するテンプレート文を用いて発話文Uを生成する。
なお、既知語Zの類義語に比べて、未知語Xの近似語Yの精度(確かさ)は低いため、未知語Xを使った発話文は、近似語Yに対するテンプレート文から生成するのではなく、予め登録した、例えば、「~って何のことですか?」「~って知っていますか?」などの汎用のテンプレート文を使って生成されてもよい。
【0075】
テンプレート選択部11は、指定された単語からテンプレート文Eに保管されたテンプレート文の中から1つを選択する。
まず、テンプレート選択部11は、指定された単語(既知語Z又は未知語X)に類似する単語を求める。ここで、未知語Xに類似する単語は、未知語Xに対応して未知語抽出部2により選択された近似語Yである。既知語Zに類似する単語は、学習された単語の特徴ベクトルの類似度により、次のように求められる。
【0076】
図11は、本実施形態における文モデルDとして学習された既知語辞書Aに含まれる単語の特徴ベクトルのイメージを示す図である。
Word2vecによる学習結果は、
図11に示すように、似たような意味の単語間では、それぞれの特徴ベクトルが距離の近い位置に分布することが経験的に知られている。
【0077】
図11では、既知語辞書Aに保管されている「ラーメン」「うどん」「日本そば」「スパゲティ」の特徴ベクトル、「秋田犬」「柴犬」「三毛猫」「トラ猫」の特徴ベクトル、「東京駅」「京都駅」の特徴ベクトル、「世田谷」「イギリス」「フランス」の特徴ベクトルが、それぞれ近くに分布していることを示している。一方、「うどん」と「トラ猫」とでは、特徴ベクトルの距離が離れている。
この場合、例えば、「トラ猫」と特徴ベクトルが類似する「三毛猫」「秋田犬」「柴犬」などの単語(類義語)が入ったテンプレート文は、これらの単語を「トラ猫」で置き換えても利用できる可能性が高い。したがって、テンプレート選択部11は、既知語「トラ猫」に対して、いずれかの類義語(例えば、「三毛猫」)が入ったテンプレート文を選択する。
【0078】
図12は、本実施形態におけるテンプレート選択部11による処理の流れを示す図である。
本処理は、既知語Zが入力されることで開始される。
【0079】
ステップS111において、テンプレート選択部11は、既知語Zに対して、特徴ベクトルが類似する他の単語、例えば、類似度が上位所定数(例えば、5つ)の単語を、類義語の候補として文モデルDの語彙から抽出する。
特徴ベクトルの類似度には、例えば、2つのベクトルa,b間のコサイン類似度(cos(a,b)=a・b/|a||b|)を用いることができる。
なお、類義語として、類似度が上位の単語が抽出されることとしたが、これ以外にも、類似度が所定値以上の単語が抽出されてもよい。また、類似度は、コサイン類似度には限られない。
【0080】
ステップS112において、テンプレート選択部11は、抽出した単語の中からランダムに1つを類義語として選択する。
【0081】
ステップS113において、テンプレート選択部11は、テンプレート文Eに保管されているテンプレート文の中から、選択した類義語を含むテンプレート文を1つランダムに選択し、選択したテンプレート文及び選択した類義語を出力する。
【0082】
本実施形態によれば、発話辞書学習装置100は、特徴ベクトルを学習してロボットが話す言葉として利用できる単語を保管した既知語辞書Aと、既知語辞書Aには含まれないが、過去の入力文に存在し聞いたことがある単語を保管した未知語辞書Bとを備え、日々入力される入力文Iを用いて段階的にこれらの辞書に含まれる単語を更新する。
これにより、発話辞書学習装置100は、コミュニケーションロボットが話すことの出来る単語を次第に増やしていくことができ、これらの単語を用いて発話を行うコミュニケーションロボットに「成長感」を持たせることができる。
【0083】
発話辞書学習装置100は、未知語の出現回数に基づいて、再学習を行うことにより、適切なタイミングで文モデルDと、既知語辞書A及び未知語辞書Bを更新することができる。
具体的には、未知語辞書Bに、出現回数が所定以上の未知語が所定以上登録された場合に再学習を行うことで、通常は時間のかかる未知語辞書Bの単語を既知語辞書Aに移すための既知語辞書Aの再学習の頻度を低減できる。
【0084】
発話辞書学習装置100は、未知語に対して、既知語辞書Aに含まれる近似語を、文モデルDに基づく予測結果により推定して未知語辞書Bに登録する。
これにより、発話辞書学習装置100は、再学習前であっても、未知語を使った発話文を、近似語を手掛かりとして生成できるように、未知語辞書Bを提供できる。
【0085】
発話文生成装置200は、これらの既知語辞書A及び未知語辞書Bを参照することで、次第に増していく語彙を用いて、コミュニケーションロボットの発話機能を成長させることができる。
【0086】
また、発話文生成装置200は、既知語を含む入力文Iをテンプレート文として登録することにより、視聴するテレビ番組など、利用者ごとに異なる入力文Iに基づいて異なるテンプレート文が蓄積される。これにより、コミュニケーションロボットごとに、「成長」とともに変わる「個性」を持った発話が可能となる。
【0087】
発話文生成装置200は、既知語辞書Aに登録される前の未知語に対して、文モデルDによる推定頻度が高い単語を優先して近似語として選択する。これにより、発話文生成装置200は、特徴ベクトルの学習ができていない未知語に対しても、信頼度の高い近似語を用いてテンプレート文を選択し発話文を生成できる。
【0088】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【0089】
本実施形態では、主に発話辞書学習装置100及び発話文生成装置200の構成と動作について説明したが、本発明はこれに限られず、各構成要素を備え、コミュニケーションロボットに発話させるための方法、又はプログラムとして構成されてもよい。
【0090】
さらに、発話辞書学習装置100及び発話文生成装置200の機能を実現するためのプログラムをコンピュータで読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。
【0091】
ここでいう「コンピュータシステム」とは、OSや周辺機器などのハードウェアを含むものとする。また、「コンピュータで読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROMなどの可搬媒体、コンピュータシステムに内蔵されるハードディスクなどの記憶装置のことをいう。
【0092】
さらに「コンピュータで読み取り可能な記録媒体」とは、インターネットなどのネットワークや電話回線などの通信回線を介してプログラムを送信する場合の通信線のように、短時刻の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時刻プログラムを保持しているものも含んでもよい。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【符号の説明】
【0093】
A 既知語辞書
B 未知語辞書
C 入力文履歴
D 文モデル
E テンプレート文
1 既知語抽出部
2 未知語抽出部
3 未知語辞書更新部
4 文保管部
5 文モデル学習部
6 未知語予測部
7 再学習要求部
9 テンプレート作成部
10 発話文生成部
11 テンプレート選択部
100 発話辞書学習装置
200 発話文生成装置