(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-06
(45)【発行日】2023-07-14
(54)【発明の名称】発話生成装置、発話生成方法、及びコンピュータプログラム
(51)【国際特許分類】
G06F 40/56 20200101AFI20230707BHJP
G06F 16/90 20190101ALI20230707BHJP
【FI】
G06F40/56
G06F16/90 100
(21)【出願番号】P 2021151210
(22)【出願日】2021-09-16
(62)【分割の表示】P 2018241207の分割
【原出願日】2018-12-25
【審査請求日】2021-12-24
(73)【特許権者】
【識別番号】518458528
【氏名又は名称】株式会社DataVision
(74)【代理人】
【識別番号】100114557
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】青山 敦
(72)【発明者】
【氏名】辻 健太朗
【審査官】成瀬 博之
(56)【参考文献】
【文献】特開2007-219149(JP,A)
【文献】町田雄一郎 他3名,関連語知識獲得のための対話システム上の連想ゲームのデザイン,情報処理学会 論文誌(ジャーナル),Vol.57 NO.3,日本,情報処理学会,2016年03月15日,1058-1068頁
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/20-40/58
G06F 16/00-16/958
G10L 13/00-17/26
G06F 3/16
(57)【特許請求の範囲】
【請求項1】
入力されたユーザ発話に対して出力すべきシステム発話を生成する発話生成装置であって、
前記ユーザ発話からユーザの意図を認識する認識部と、
前記ユーザ発話に含まれる名詞を抽出し、抽出した名詞から連想される複数の連想語と、前記名詞及び前記複数の連想語の夫々に共起する用言を含む複数の共起表現とを取得する取得部と、
前記名詞及び前記複数の連想語の間で共通に用いられる共起表現の多寡に基づき、前記名詞及び前記複数の連想語を複数のクラスタに分類する分類部と、
前記複数のクラスタのうちの一のクラスタから一の名詞又は連想語を選択すると共に、前記一のクラスタに含まれる何れかの名詞又は連想語と共起する一の共起表現を選択する選択部と、
前記認識部が認識したユーザの意図を前記システム発話に付与すべき意図へ変換する変換部と、
前記選択部により選択された名詞又は連想語と、前記選択部により選択された共起表現と
を接続すると共に、前記共起表現に前記変換部による変換後の意図
を接続してシステム発話を生成する発話生成部と
を備える発話生成装置。
【請求項2】
前記選択部は、前記一のクラスタ、前記一の名詞又は連想語、前記一の共起表現をそれぞれランダムに選択する
請求項1に記載の発話生成装置。
【請求項3】
前記取得部は、言語空間内で前記名詞から所定距離範囲内に位置する複数の連想語を取得する
請求項1又は請求項2に記載の発話生成装置。
【請求項4】
前記連想語は、名詞、動詞、又は形容詞である
請求項1から請求項3の何れか1つに記載の発話生成装置。
【請求項5】
ユーザ発話から認識される意図と、システム発話に付与すべき意図との関係を規定する意図変換テーブル
を備え、
前記変換部は、前記意図変換テーブルを参照し、入力されたユーザ発話から認識した意図を、システム発話に付与すべき意図へ変換する
請求項1から請求項4の何れか1つに記載の発話生成装置。
【請求項6】
前記意図変換テーブルは、システム発話に付与すべき意図の候補を複数含み、
前記変換部は、前記意図変換テーブルに含まれる意図の候補から、システム発話に付与すべき一の意図を選択する
請求項5に記載の発話生成装置。
【請求項7】
ユーザ発話が定型文である場合、前記発話生成部が生成するシステム発話に代えて、定型文を含むシステム発話を出力する定型文出力部
を備える請求項1から請求項6の何れか1つに記載の発話生成装置。
【請求項8】
コンピュータを用いて、入力されたユーザ発話に対して出力すべきシステム発話を生成する発話生成方法であって、
前記コンピュータは、
前記ユーザ発話からユーザの意図を認識し、
前記ユーザ発話に含まれる名詞を抽出し、
抽出した名詞から連想される複数の連想語と、前記名詞及び前記複数の連想語の夫々に共起する用言を含む複数の共起表現とを取得し、
前記名詞及び前記複数の連想語の間で共通に用いられる共起表現の多寡に基づき、前記名詞及び前記複数の連想語を複数のクラスタに分類し、
前記複数のクラスタのうちの一のクラスタから一の名詞又は連想語を選択すると共に、前記一のクラスタに含まれる何れかの名詞又は連想語と共起する一の共起表現を選択し、
認識したユーザの意図を前記システム発話に付与すべき意図へ変換し、
選択した名詞又は連想語と、選択した共起表現と
を接続すると共に、前記共起表現に対して変換後の意図
を接続してシステム発話を生成する
発話生成方法。
【請求項9】
コンピュータに、入力されたユーザ発話に対して出力すべきシステム発話を生成する処理を実行させるためのコンピュータプログラムであって、
前記コンピュータに、
前記ユーザ発話からユーザの意図を認識し、
前記ユーザ発話に含まれる名詞を抽出し、
抽出した名詞から連想される複数の連想語と、前記名詞及び前記複数の連想語の夫々に共起する用言を含む複数の共起表現とを取得し、
前記名詞及び前記複数の連想語の間で共通に用いられる共起表現の多寡に基づき、前記名詞及び前記複数の連想語を複数のクラスタに分類し、
前記複数のクラスタのうちの一のクラスタから一の名詞又は連想語を選択すると共に、前記一のクラスタに含まれる何れかの名詞又は連想語と共起する一の共起表現を選択し、
認識したユーザの意図を前記システム発話に付与すべき意図へ変換し、
選択した名詞又は連想語と、選択した共起表現と
を接続すると共に、前記共起表現に対して変換後の意図
を接続してシステム発話を生成する
処理を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、発話生成装置、発話生成方法、及びコンピュータプログラムに関する。
【背景技術】
【0002】
近年、ユーザ発話を解析し、発話内容に応じた応答を返すことでユーザとの対話を実現する対話装置の開発が進められている。このような対話装置は、例えば、カーナビゲーション装置、及び公共施設等における案内装置等において利用されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述したような対話装置はタスク指向型であり、質問への応答を目的としているため、癒し、治療、助言、発想支援等のユーザの心的変化を喚起する効果は期待できない。
【0005】
本発明は、斯かる事情に鑑みてなされたものであり、癒し、治療、助言、発想支援等のユーザの心的変化を喚起する効果を期待できる発話生成装置、発話生成方法、及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本願の一態様に係る発話生成装置は、入力されたユーザ発話に対して出力すべきシステム発話を生成する発話生成装置であって、前記ユーザ発話からユーザの意図を認識する認識部と、前記ユーザ発話に含まれる名詞を抽出し、抽出した名詞から連想される複数の連想語と、前記名詞及び前記複数の連想語の夫々に共起する用言を含む複数の共起表現とを取得する取得部と、前記名詞及び前記複数の連想語の間で共通に用いられる共起表現の多寡に基づき、前記名詞及び前記複数の連想語を複数のクラスタに分類する分類部と、前記複数のクラスタのうちの一のクラスタから一の名詞又は連想語を選択すると共に、前記一のクラスタに含まれる何れかの名詞又は連想語と共起する一の共起表現を選択する選択部と、前記認識部が認識したユーザの意図を前記システム発話に付与すべき意図へ変換する変換部と、前記選択部により選択された名詞又は連想語と、前記選択部により選択された共起表現とを接続すると共に、前記共起表現に前記変換部による変換後の意図を接続してシステム発話を生成する発話生成部とを備える。
【0007】
本願の一態様に係る発話生成方法は、コンピュータを用いて、入力されたユーザ発話に対して出力すべきシステム発話を生成する発話生成方法であって、前記コンピュータは、前記ユーザ発話からユーザの意図を認識し、前記ユーザ発話に含まれる名詞を抽出し、抽出した名詞から連想される複数の連想語と、前記名詞及び前記複数の連想語の夫々に共起する用言を含む複数の共起表現とを取得し、前記名詞及び前記複数の連想語の間で共通に用いられる共起表現の多寡に基づき、前記名詞及び前記複数の連想語を複数のクラスタに分類し、前記複数のクラスタのうちの一のクラスタから一の名詞又は連想語を選択すると共に、前記一のクラスタに含まれる何れかの名詞又は連想語と共起する一の共起表現を選択し、認識したユーザの意図を前記システム発話に付与すべき意図へ変換し、選択した名詞又は連想語と、選択した共起表現とを接続すると共に、前記共起表現に対して変換後の意図を接続してシステム発話を生成する。
【0008】
本願の一態様に係るコンピュータプログラムは、コンピュータに、入力されたユーザ発話に対して出力すべきシステム発話を生成する処理を実行させるためのコンピュータプログラムであって、前記コンピュータに、前記ユーザ発話からユーザの意図を認識し、前記ユーザ発話に含まれる名詞を抽出し、抽出した名詞から連想される複数の連想語と、前記名詞及び前記複数の連想語の夫々に共起する用言を含む複数の共起表現とを取得し、前記名詞及び前記複数の連想語の間で共通に用いられる共起表現の多寡に基づき、前記名詞及び前記複数の連想語を複数のクラスタに分類し、前記複数のクラスタのうちの一のクラスタから一の名詞又は連想語を選択すると共に、前記一のクラスタに含まれる何れかの名詞又は連想語と共起する一の共起表現を選択し、認識したユーザの意図を前記システム発話に付与すべき意図へ変換し、選択した名詞又は連想語と、選択した共起表現とを接続すると共に、前記共起表現に対して変換後の意図を接続してシステム発話を生成する処理を実行させるためのコンピュータプログラムである。
【発明の効果】
【0009】
本願に依れば、癒し、治療、助言、発想支援等のユーザの心的変化を喚起する効果を期待できる。
【図面の簡単な説明】
【0010】
【
図1】実施の形態1に係る対話システムの全体構成を説明するブロック図である。
【
図2】対話システムにおける対話の一例を示す模式図である。
【
図3】発話生成装置の内部構成を説明するブロック図である。
【
図4】端末装置の内部構成を説明するブロック図である。
【
図5】発話生成処理の概要を説明する説明図である。
【
図6】Word2Vecによる名詞の抽出例を示す図である。
【
図7】本実施の形態におけるクラスタリング手法を説明する説明図である。
【
図8】名詞及び共起表現の選択処理について説明する説明図である。
【
図9】意図変換テーブルの一例を示す概念図である。
【
図10】意図変換テーブルの一例を示す概念図である。
【
図11】発話生成装置が実行する処理の手順を説明するフローチャートである。
【
図12】実施の形態2に係るシステム発話の生成手法を説明する説明図である。
【発明を実施するための形態】
【0011】
以下、本発明をその実施の形態を示す図面に基づいて具体的に説明する。
(実施の形態1)
図1は実施の形態1に係る対話システムの全体構成を説明するブロック図である。本実施の形態に係る対話システムは、通信網Nを介して互いに通信可能に接続される発話生成装置10と端末装置20とを備える。端末装置20は、ユーザによって利用されるパーソナルコンピュータ、スマートフォン、AR(Augmented Reality)装置などの情報処理端末であり、発話生成装置10にアクセスするためのアプリケーションプログラムがインストールされているものとする。発話生成装置10は、例えば、端末装置20からのアクセスを受付けた場合、ユーザ認証を行い、ユーザ認証に成功した場合、端末装置20に対して対話サービスを提供する。
【0012】
図2は対話システムにおける対話の一例を示す模式図である。
図2は端末装置20の表示画面20Aに表示される対話文の一例を示している。対話文は、ユーザが端末装置20を用いて入力するユーザ発話と、ユーザ発話に対する発話生成装置10の応答であるシステム発話とにより構成されている。本実施の形態では、ユーザ発話及びシステム発話を文字情報として説明するが、音声情報であってもよいことは勿論のことである。
【0013】
端末装置20は、ユーザ発話U01の入力を受付けた場合、受付けたユーザ発話U01を発話生成装置10へ送信する。発話生成装置10は、端末装置20から送信されるユーザ発話U01を受信した場合、その応答としてシステム発話S01を生成し、生成したシステム発話S01を端末装置20へ送信する。以後、例えば対話の終了を意図する定型文(
図2に示す例では、「ばいばい」というユーザ発話U06)が端末装置20に入力されるまでの間、発話生成装置10は、端末装置20からユーザ発話U02,U03,…を受信する都度、システム発話S02,S03,…を逐次生成し、生成したシステム発話S02,S03,…を端末装置20へ返信する。
【0014】
端末装置20の表示画面20Aには、入力されたユーザ発話U01,U02,U03,…と、発話生成装置10から受信したシステム発話S01,S02,S03,…とが表示される。
図2の例では、表示画面20Aの右側に、画面上部から画面下部に向かって時系列順にユーザ発話U01~U05が表示されており、表示画面20Aの左側に、画面上部から画面下部に向かって時系列順にシステム発話S01~S05が表示されている様子を示している。
【0015】
なお、発話生成装置10によるシステム発話の生成手法については、後に詳述することとする。
【0016】
図3は発話生成装置10の内部構成を説明するブロック図である。発話生成装置10は、例えばサーバ装置であり、制御部11、記憶部12、通信部13、表示部14及び操作部15を備える。
【0017】
制御部11は、例えば、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)などにより構成されている。制御部11が備えるCPUは、ROM又は記憶部12に記憶されている各種コンピュータプログラムをRAM上に展開して実行することにより、装置全体を本願の発話生成装置として機能させる。
【0018】
なお、制御部11は、上記の構成に限定されるものではなく、1又は複数のCPU、マルチコアCPU、マイコン等を含む任意の処理回路であればよい。また、制御部11は、計測開始指示を与えてから計測終了指示を与えるまでの経過時間を計測するタイマ、数をカウントするカウンタ等の機能を備えていてもよい。
【0019】
記憶部12は、ハードディスク装置などの記憶装置により構成されており、各種コンピュータプログラム及び各種データを記憶する。ここで、記憶部12に記憶されるコンピュータプログラムは、入力されるユーザ発話からシステム発話を生成させる処理を発話生成装置10に実行させるためのコンピュータプログラム(発話生成プログラム120)を含む。
【0020】
なお、記憶部12に記憶されるプログラムは、当該プログラムを読み取り可能に記録した非一時的な記録媒体M1により提供されてもよい。記録媒体M1は、例えば、CD-ROM、USBメモリ、SD(Secure Digital)カード、マイクロSDカード、コンパクトフラッシュ(登録商標)などの可搬型メモリである。この場合、制御部11は、不図示の読取装置を用いて記録媒体M1から各種プログラムを読み取り、読み取った各種プログラムを記憶部12にインストールする。また、記憶部12に記憶されるプログラムは、通信部13を介した通信により提供されてもよい。この場合、制御部11は、通信部13を通じて各種プログラムを取得し、取得した各種プログラムを記憶部12にインストールする。
【0021】
また、記憶部12に記憶される各種データは、後述する意図変換テーブル121、Word2Vecデータ122を含む。これらのデータの詳細については後に詳述することとする。
【0022】
通信部13は、通信網Nを通じて端末装置20と通信を行うためのインタフェースを備える。通信部13は、端末装置20へ送信すべき情報が制御部11から入力された場合、入力された情報を端末装置20へ送信する共に、通信網Nを通じて受信した端末装置20からの情報を制御部11へ出力する。
【0023】
表示部14は、液晶ディスプレイ、有機ELディスプレイなどの表示デバイスを備え、発話生成装置10の管理者に対して報知すべき情報を表示する。また、操作部15は、タッチパネル、各種ボタンを備え、発話生成装置10の管理者による操作を受付け、受付けた操作情報を制御部11へ出力する。
【0024】
なお、本実施の形態では、簡略化のために、発話生成装置10を1つの装置として記載したが、複数のサーバ装置により構成されてもよく、1又は複数の仮想マシンにより構成されるものであってもよい。
【0025】
また、本実施の形態では、簡略化のために、発話生成装置10の記憶部12が意図変換テーブル121、及びWord2Vecデータ122を備えるものとして説明するが、1又は複数の外部サーバにこれらのデータを用意しておき、必要に応じて外部サーバにアクセスすることによって、必要なデータを取得する構成としてもよい。
【0026】
図4は端末装置20の内部構成を説明するブロック図である。端末装置20は、例えばサーバ装置であり、パーソナルコンピュータ、スマートフォンなどの情報処理端末であり、制御部21、記憶部22、通信部23、表示部24及び操作部25を備える。
【0027】
制御部21は、例えば、CPU、ROM、RAMなどにより構成されている。制御部21が備えるCPUは、ROM又は記憶部22に記憶されている各種コンピュータプログラムをRAM上に展開して実行することにより、装置全体の動作を制御する。
【0028】
記憶部22は、EEPROM(Electronically Erasable Programmable Read Only Memory)などの不揮発性メモリにより構成されており、各種コンピュータプログラム及び各種データを記憶する。ここで、記憶部22に記憶されるコンピュータプログラムは、発話生成装置10にアクセスするためのアプリケーションプログラムが含まれる。
【0029】
通信部23は、通信網Nを通じて発話生成装置10と通信を行うためのインタフェースを備える。通信部23は、発話生成装置10へ送信すべき情報が制御部21から入力された場合、入力された情報を発話生成装置10へ送信する共に、通信網Nを通じて受信した発話生成装置10からの情報を制御部21へ出力する。
【0030】
表示部24は、液晶ディスプレイ、有機ELディスプレイなどの表示デバイスを備え、端末装置20のユーザに対して報知すべき情報(例えば対話文)を表示する。また、操作部25は、タッチパネル、各種ボタンを備え、端末装置20のユーザによる操作を受付け、受付けた操作情報を制御部21へ出力する。
【0031】
なお、本実施の形態では、端末装置20が表示部24を備える構成としたが、表示部24に代えて、又は表示部24に加えて、音声出力装置を備える構成としてもよい。この場合、端末装置20は、ユーザに対して報知すべき情報(例えば対話文)を音声出力装置から音声として出力することが可能である。
【0032】
以下、発話生成装置10が実行する発話生成処理について説明する。
図5は発話生成処理の概要を説明する説明図である。発話生成装置10は、端末装置20からユーザ発話を受信した場合、まず、受信したユーザ発話からコンテンツ及びユーザの意図を抽出する。このため、発話生成装置10は、形態素解析の手法を用いて、ユーザ発話を複数の形態素に分解する。
図5の例では、端末装置20から受信したユーザ発話が「学校で学びたい」であった場合、形態素解析により、「学校」、「で」、「学び」、「たい」の4つの形態素に分解されたことを示している。また、端末装置20から受信したユーザ発話が「技術経営?」であった場合、「技術経営」及び「?」の2つの形態素に分解されたことを示している。
【0033】
発話生成装置10は、形態素解析の結果に基づき、主要品詞を取得する。主要品詞は、終端の動詞を起点として、動詞、名詞、形容詞又は形状詞の順にユーザ発話から1又は複数個取得する。発話生成装置10は、取得した品詞のうち、名詞、動詞、及び形容詞に相当する形態素をコンテンツとして認識する。また、発話生成装置10は、名詞及び動詞を除く、主として助詞及び助動詞に相当する形態素を意図として認識する。
図5の例では、「学校」、「で」、「学び」、「たい」の4つの形態素のうち、「学校」及び「学び」がコンテンツとして認識され、「たい」をユーザの意図(この場合、願望)として認識されたことを示している。また、「技術経営」及び「?」の2つの形態素のうち、「技術経営」がコンテンツとして認識され、「?」がユーザの意図(この場合、疑問)として認識されたことを示している。なお、発話生成装置10が抽出するユーザの意図には、ユーザの性格、感情、対話状況に関する情報が含まれてもよい。
【0034】
発話生成装置10は、認識したコンテンツから連想される連想語を抽出する処理を実行する。本実施の形態では、コンテンツから連想される連想語として名詞を抽出する構成について説明するが、連想語は動詞であってもよく、形容詞であってもよい。発話生成装置10は、主格名詞又は初期名詞をテーマとして保持しつつ、直近のユーザ発話の主要品詞、直近のシステム発話の名詞、動詞又は形容詞、テーマを合成し、Word2Vecデータ122を参照して、名詞を設定した数だけ抽出する。例えば、2つ目のユーザ発話である「技術経営?」に含まれるコンテンツから名詞を連想する際、「技術経営」というコンテンツだけでなく、直近のユーザ発話、又はシステム発話に含まれるコンテンツ(「学校」及び「学び」)を加味して名詞を連想することができる。コンテンツから連想される複数の名詞を抽出した後、発話生成装置10は、抽出した名詞群の中から、システム発話に含めるべき名詞を1つ選択する。また、選択した名詞と共起する用言を含む共起表現が必要に応じて抽出される。なお、コンテンツから抽出される連想語が動詞又は形容詞である場合、動詞又は形容詞に共起する体言を含む共起表現を抽出してもよい。
【0035】
本実施の形態では、認識したコンテンツから連想される名詞を抽出する際に、Word2Vecデータ122を用いる構成としたが、Word2Vecデータ122に限らず、GloVe、FastTextなどの各単語の関係性をベクトル表現化したデータを用いて、認識コンテンツから連想される名詞を抽出する構成としてもよいことは勿論のことである。
【0036】
また、本実施の形態では、認識されるコンテンツから連想語を抽出する構成としたが、設定した用語を加えることによって、意図的に連想を偏らせる構成としてもよい。例えば、「物理学」といった用語を加えることによって、物理学に近い概念に連想を偏らせることも可能である。
【0037】
なお、本実施形態では、ユーザ発話に含まれるコンテンツと同一のコンテンツを選択すること(パロット)を許容する。
図5の例では、1つ目のユーザ発話である「学校で学びたい」に含まれるコンテンツの「学び」に対して、パロットによりシステム発話のコンテンツが選択されたことを示している。
【0038】
発話生成装置10は、意図変換テーブル121を利用して、ユーザ発話から認識したユーザの意図を、システム発話に付与すべき意図へ変換する処理を実行する。なお、本実施の形態では、変換後の意図が元のユーザ発話から認識したユーザの意図と同一であることを許容する。
図5に示す例では、1つ目のユーザ発話に含まれるユーザの意図(願望)がシステム発話の意図(願望)に変換され、2つ目のユーザ発話に含まれるユーザの意図(疑問)がシステム発話の意図(願望)に変換されたことを示している。
【0039】
発話生成装置10は、抽出した名詞と、変換後の意図とを含むシステム発話を生成する。
図5の例では、1つ目のユーザ発話「学校で学びたい」に対して、パロットにより選択されたコンテンツ(「学び」)と、変換後の意図(「たい」)とを含む「私も学びたいよ」といったシステム発話が生成されたことを示している。また、2つ目のユーザ発話に対して、連想により抽出された名詞(コンテンツ)である「概論」、この名詞と共起する用言を含む共起表現である「を取る」、及び変換後の意図(「たい」)を含む「概論を取りたいです」といったシステム発話が生成されたことを示している。
【0040】
発話生成装置10は、端末装置20からユーザ発話を受信する都度、システム発話を生成し、その都度、端末装置20へ返信する。端末装置20は、入力されたユーザ発話、及び発話生成装置10から受信したシステム発話を表示部24に時系列順に表示させる。
【0041】
以下、ユーザ発話に含まれるコンテンツから連想される名詞を抽出する処理の詳細について説明する。
【0042】
図6はWord2Vecによる名詞の抽出例を示す図である。発話生成装置10は、ユーザ発話から認識したコンテンツに基づき、Word2Vecデータ122からコンテンツに連想される名詞を取得する。コンテンツから連想される名詞は、Word2Vecデータ122からコンテンツの近傍語彙として抽出される。近傍語彙は、言語空間内において、対象のコンテンツから所定距離範囲内に位置する語彙であり、コンテンツと各語彙との間のコサイン距離に基づき判別される。
図6の例では、「意味は?」といったユーザ発話に含まれるコンテンツ(この例では「意味」)に基づき、Word2Vecデータ122から取得した近傍語彙の一部を示している。取得した近傍語彙には、「いみ」、「わけ」、「意図」、「真意」、「ニュアンス」、…といった名詞の他に、「分かる」といった動詞が含まれることが分かる。このように、Word2Vecデータ122から得られる近傍語彙には、名詞だけでなく、動詞(又は形容詞)等が含まれる可能性があるが、本実施の形態においては、名詞以外の動詞、形容詞等は抽出対象から除外される。
【0043】
本実施の形態では、言語資源の偏りに伴う発話性能の制限を緩和するために、抽出した名詞に関してクラスタリングを行う。例えば、言語資源として、「炭酸水-を飲む」、「水-を飲む、水-が美味しい」しか存在しない場合、「炭酸水」に対しては、「を飲む」という助詞及び動詞が一意に接続されることになる。すなわち、ユーザ発話から連想される名詞が「炭酸水」であった場合、システム発話としては「炭酸水を飲む」といった発話しか生成できないことになる。これに対し、「を飲む」という点で「炭酸水」と「水」とが同一のクラスタとしてクラスタリングできれば、「炭酸水」に対して、「を飲む」又は「が美味しい」の何れかを選択できるようになるので、「炭酸水を飲む」といったシステム発話の他に、「炭酸水が美味しい」といったシステム発話の生成が可能となる。このように、クラスタリングによって、発話として自然に接続できる助詞及び動詞(形容詞)の可能性を広げることができる。
【0044】
図7は本実施の形態におけるクラスタリング手法を説明する説明図である。本実施の形態では、無向グラフとKmeans++とを用いて、Word2Vecデータ122から取得した名詞をクラスタリングする。例として、ユーザ発話から認識したコンテンツである「意味」、及び、その近傍語彙としてWord2Vecデータ122から取得した名詞である「いみ」、「わけ」、「意図」、「真意」、「ニュアンス」、「真偽」、「文脈」、「仕組み」、「理由」の合計10個の名詞をクラスタリングする処理について説明する。発話生成装置10は、取得した10個の名詞、並びに、各名詞に共起する用言を含む共起表現に基づき、無向グラフを生成する。共起表現には、例えば、各名詞に共起する動詞(又は形容詞)と、名詞及び動詞(又は形容詞)を接続する助詞を含む。各名詞は、それぞれに接続される共起表現の多寡に応じて、無向グラフ上に分散して配置される。
【0045】
発話生成装置10は、無向グラフ上に配置した10個の名詞をKmeans++を用いてクラスタリングする。Kmeans++によるクラスタリングでは、分割したいクラスタの数だけ重心を置き、各データ(この例では名詞)を最も近い重心に関連付ける処理と、関連付けたデータの平均値に重心を移動させる処理とを繰り返すことによって、クラスタを決定する。なお、Kmeans++では、クラスタの数は予め設定しておく必要があるが、エルボー法を利用して、分割するクラスタの数を自動的に設定する構成としてもよい。
【0046】
図7に示した例では、「意味」、「ニュアンス」、「文脈」の3つの名詞が第1のクラスタ、「真偽」、「真意」、「意図」の3つの名詞が第2のクラスタ、「わけ」、「いみ」、「仕組み」、「理由」の4つの名詞が第3のクラスタにクラスタリングされたことを示している。
【0047】
なお、本実施の形態では、簡略化のために10個の名詞を3つのクラスタにクラスタリングする構成について説明したが、クラスタリングの対象となる名詞の数及びクラスタの数は
図7に示した例に限定されるものではない。例えば、コンテンツから取得される名詞の数が50個程度となる場合があるが、このとき、クラスタリングによって8~16個程度のクラスタが生成され得る。
【0048】
発話生成装置10は、クラスタリングの結果を参照して、システム発話に含める名詞及び共起表現を選択する。
【0049】
図8は名詞及び共起表現の選択処理について説明する説明図である。
図8では、ユーザ発話に基づき認識したコンテンツから複数の名詞を抽出し、システム発話に含める名詞及び共起表現を選択するまでの処理の流れを模式的に示している。発話生成装置10は、ユーザ発話に基づきコンテンツを認識した場合、上述したように、そのコンテンツから連想される名詞をWord2Vecデータ122から抽出する。また、発話生成装置10は、抽出した名詞のそれぞれと共起する用言を含む共起表現を併せて読み込む。共起表現は、例えば、助詞及び動詞、又は、助詞及び形容詞を含む。なお、Word2Vecデータ122から抽出する名詞は、元のユーザ発話から認識したコンテンツと同一(パロット)であってもよい。また、名詞と併せて読み込む共起表現は、元のユーザ発話に含まれる共起表現と同一(パロット)であってもよい。
図8において、パロットとして抽出された名詞及び共起表現は、ハッチングを付して示している。
【0050】
発話生成装置10は、Word2Vecデータ122から抽出した名詞、及び併せて読み込んだ共起表現が得られた場合、上述したように、無向グラフを生成し、Kmeans++の手法を用いてクラスタリングを行う。
図8の例では、n個のクラスタが生成され、第1クラスタには3つの名詞、第nクラスタにはパロットを含む4つの名詞が含まれることを示している。各クラスタに関連付けられる共起表現は、各クラスタ内に含まれる名詞のそれぞれと共起する用言を含む共起表現の集合である。すなわち、「炭酸水」の共起表現に「が美味しい」が含まれない場合であっても、「炭酸水」と同一のクラスタに含まれる「水」の共起表現として、「が美味しい」が含まれる場合、このクラスタ内には、「が美味しい」が含まれることになる。
【0051】
発話生成装置10は、システム発話に含める名詞及び共起表現を選択する際、まず、生成されたクラスタの中からランダムに1つのクラスタを選択する。次いで、発話生成装置10は、選択したクラスタに含まれる名詞の中から、ランダムに1つの名詞を選択し、そのクラスタに関連付けられている共起表現の集合の中から、ランダムに1つの共起表現を選択する。
図8に示した例では、第1クラスタ~第nクラスタの中から第nクラスタを選択し、選択した第nクラスタから名詞を1つ選択すると共に、第nクラスタに関連付けられている共起表現の集合から共起表現を1つ選択したことを示している。
なお、ユーザ発話に対して、オウム返しを行う場合、パロットとして含まれる名詞及び共起表現が選択される。
【0052】
以上の処理により、発話生成装置10は、システム発話に含める名詞及び共起表現を抽出することができる。
【0053】
次に、発話生成装置10は、ユーザ発話から認識した意図を、システム発話に付与すべき意図へ変換する処理を実行する。本実施の形態では、ユーザ発話における意図と、システム発話における意図との関係を規定する意図変換テーブル121を用いて意図変換を行う。
【0054】
図9及び
図10は意図変換テーブル121の一例を示す概念図である。意図変換テーブル121は、
図9に示す第1テーブル121Aと、
図10に示す第2テーブル121Bとにより構成される。
【0055】
図9に示す第1テーブル121Aの第1列目は、ユーザ発話の意図を分類したタグを表し、第2列目~第10列目は、システム発話の意図として選択される候補を表している。本実施の形態では、ユーザ発話を[現在・肯定・通常文]、[過去・肯定・通常文]、[※1・否定・通常文]、[現在・肯定・疑問文]、[過去・肯定・疑問文]、[※1・否定・疑問文]、[現在・肯定・7W2H]、[過去・肯定・7W2H]、[※1・否定・7W2H]の9つの意図に分類する。
【0056】
例えば、ユーザ発話が「勉強をしたかった」である場合、[過去・肯定・通常文]に分類されるので、第1テーブル121Aの例では、「0x00000002」の行が選択の候補となる。すなわち、システム発話の意図は「0x00000000」~「0xFFFFC000」が候補となり、発話生成装置10は、予め設定している重みによりランダムでシステム発話の候補を選択する。
【0057】
発話生成装置10は、システム発話の候補として、例えば「0x00000000」を選択した場合、第1テーブル121Aに登録されているページ番号(この例では10ページ)を参照し、該当ページの第2テーブル121Bを記憶部12から読出す。
【0058】
図10は記憶部12から読み出した10ページ目の第2テーブル121Bを示している。第2テーブル121Bへのインプットとしては、ユーザ発話の意図タグのみを使用する。ここで、上述したユーザ発話「勉強をしたかった」は「主体・願望」を表すので、第2テーブル121Bにおける「主体・願望」の行が選択候補となる。すなわち、システム発話における意図の候補は、「可能・通常」、「可能・願望」、「主体・願望」、「主体・希望」、「義務」、「提案」の6つとなる。発話生成装置10は、予め設定している重みによりランダムでシステム発話における意図の候補を選択する。例えば、重み付きランダムにより、「提案」を選択した場合、ユーザ発話の意図(主体・願望)は、システム発話に付与すべき意図(提案)に変換されることになる。
【0059】
なお、「主体・願望」の行と、「提案」の列とが交差する欄には、6つのSが記載されているが、これらは、名詞連想の可否、及び動詞(形容詞)連想の可否を制御するための制御子である。何れかのSが選択された場合、名詞を連想する/名詞を連想しない、および、動詞(形容詞)を連想する/動詞(形容詞)を連想しないの何れかが決定される。
【0060】
また、ユーザ発話からコンテンツを認識する際に、ユーザ発話の意図の情報を考慮して、コンテンツを認識してもよい。
【0061】
本実施の形態では、意図変換テーブル121を用いて、ユーザ発話から認識した意図を、システム発話に付与すべき意図へ変換する構成としたが、複数のテーブルを用意しておき、パラメトリックにテーブルを選択してもよく、選択パラメータを他の情報と結び付けて動的に変更する構成としてもよい。更に、対話データを用いて、意図変換テーブル121を機械学習させてもよい。
【0062】
また、ユーザの属性、感情、性格、キャラクタ設定、会話の状態、会話の流れといったパラメータを用いて、ユーザ発話から認識した意図を、システム発話に付与すべき意図に変換してもよい。
【0063】
以下、発話生成装置10が実行する処理の手順を説明する。
図11は発話生成装置10が実行する処理の手順を説明するフローチャートである。発話生成装置10の制御部11は、通信部13を通じて、端末装置20から送信されるユーザ発話の入力を受付ける(ステップS101)。制御部11は、入力されたユーザ発話について定型文であるか否かを判断し(ステップS102)、定型文であると判断した場合(S102:YES)、システム発話として定型文を出力する(ステップS103)。制御部11から出力されるシステム発話は、通信部13を通じて、端末装置20へ送信される。
【0064】
定型文でないと判断した場合(S102:NO)、制御部11は、ユーザ発話からコンテンツ及び意図を認識する(ステップS104)。すなわち、制御部11は、ユーザ発話について形態素解析を行うことによって主要品詞を取得し、取得した品詞のうち、名詞に相当する形態素をコンテンツとして認識し、名詞、動詞、及び形容詞を除く形態素に基づきユーザの意図を認識する。
【0065】
次いで、制御部11は、Word2Vecデータ122を参照し、認識したコンテンツから連想される名詞を抽出する(ステップS105)。このとき、制御部11は、抽出した名詞のそれぞれに接続される共起表現の読み出しを行う。
【0066】
次いで、制御部11は、抽出した名詞及び共起表現に基づき無向グラフを生成し(ステップS106)、生成した無向グラフ上に配置される名詞をクラスタリングする(ステップS107)。クラスタリングには、例えばKmeans++による手法が用いられる。また、必要に応じてエルボー法を用いることにより、分割するクラスタ数を自動的に設定してもよい。
【0067】
次いで、制御部11は、ステップS107で生成されるクラスタの中から一のクラスタをランダムに選択する(ステップS108)。更に、制御部11は、選択したクラスタに含まれる名詞の中から一の名詞をランダムに選択すると共に、そのクラスタに関連付けられている共起表現の集合の中から一の共起表現をランダムに選択する(ステップS109)。
【0068】
次いで、制御部11は、意図変換テーブル121を参照し、ユーザ発話の意図を、システム発話に付与すべき意図へ変換する(ステップS110)。なお、本実施の形態では、ユーザ発話に含まれるコンテンツから連想される名詞を抽出し、システム発話に含める名詞及び共起表現を選択した後に、意図変換を行う手順を示したが、意図変換を実行した後に、ユーザ発話に含まれるコンテンツから連想される名詞を抽出し、システム発話に含める名詞及び共起表現を選択した後に、意図変換を行う手順であってもよく、これらの手順を同時並行的に行ってもよい。
【0069】
次いで、制御部11は、ステップS109で選択した名詞及び共起表現、並びにステップS110で変換したシステム発話の意図を用いて、システム発話を生成する(ステップS111)。このとき、制御部11は、共起表現に含まれる動詞又は形容詞がシステム発話の意図と適切に接続されるように、動詞又は形容詞の活用を適宜変換する。制御部11によって生成されたシステム発話は、通信部13を通じて、端末装置20へ送信される。
【0070】
以上のように、本実施の形態では、ユーザ発話に含まれるコンテンツと意図とを認識した上で、コンテンツから連想される複数の名詞と、これらの名詞に共起する用言を含む共起表現とを活用して、システム発話を生成するので、シナリオといった予め定めたパターンに依存せずに対話を進めることができる。この結果、ユーザに対して、癒し、治療、助言、発想支援等の心的変化の喚起を目的とした対話環境を提供することができる。
【0071】
なお、本実施の形態では、ユーザ発話を基にシステム発話を生成する構成としたが、例えばスマートフォンやAR装置などの端末装置20から得られる、視覚、聴覚、加速度、カレンダー、メール等のマルチモーダルな情報を補助的に用いて、システム発話を生成してもよい。
【0072】
更に、ユーザに関する情報、及びシステム発話を発するキャラクタの情報を記憶部12に格納し、これらの情報を加味して、システム発話を生成してもよい。
【0073】
(実施の形態2)
実施の形態2では、コンテンツに付随する心的語彙を評価し、評価結果に基づきシステム発話を生成する構成について説明する。
なお、システムの全体構成、並びに、発話生成装置10及び端末装置20の内部構成は実施の形態1と同様であるため、その説明を省略することとする。
【0074】
図12は実施の形態2に係るシステム発話の生成手法を説明する説明図である。実施の形態2では、「二日酔いです」といったユーザ発話に対して、「辛いね」といったシステム発話を生成することを目的としている。発話生成装置10にユーザ発話が入力された場合、実施の形態1と同様に、形態素解析を用いて主要品詞に分解し、コンテンツを認識する。例えば「二日酔いです」といったユーザ発話からは、「二日酔い」がコンテンツとして認識される。
【0075】
次いで、発話生成装置10は、Word2Vecデータ122を用いて、「二日酔い」と、(嬉しい、悲しい)、(安心、心配)、(楽しい、苦痛)といった心的語彙との間のコサイン距離を算出し、その2点間のコサイン距離が閾値を超えた場合に、どちらの意図に近いのかを判断するSens分析を行う。
図12の例では、「苦痛」とのコサイン距離が1に近く、かつ閾値を超えていると評価していることを示している。
【0076】
発話生成装置10は、評価結果である「苦痛」と関連付けて記憶されているシステム発話(
図12の例では「辛い」)を、発話テンプレートから取得し、システム発話として「辛いね」を生成する。
【0077】
実施の形態2におけるSens分析によるシステム発話の生成は、常時実行する必要はなく、ランダムに実施してもよい。
【0078】
今回開示された実施の形態は、全ての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上述した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【0079】
10 発話生成装置
11 制御部
12 記憶部
120 発話生成プログラム
121 意図変換テーブル
122 Word2Vecデータ
13 通信部
14 表示部
15 操作部
20 端末装置
21 制御部
22 記憶部
23 通信部
24 表示部
25 操作部