(57)【要約】【課題】対話システムにおいてユーザ発話に応じて適切な応答を行うことができる発話候補生成装置、発話候補生成方法、及び発話候補生成プログラムを提供する。【解決手段】発話ペア選択部２２は、ユーザ発話に応じて発話ペア２４から選択された応答により発話候補４６を生成する。関連発話選択部２６は、ユーザ発話を形態素解析して抽出した話題を示す単語に対応し、かつ対話行為が付与された発話を単語−発話ペア３０から取得して発話候補４６を生成する。発話サーチ部３２は、ユーザ発話を形態素解析して抽出した単語及び対話行為を検索クエリとした発話データベース３６の検索結果に基づいて発話候補４６を生成する。バーサタイル発話選択部３８は、一致する対話行為が付与された発話を発話リスト４０から選択して発話候補４６を生成する。新規話題発話選択部４２は、一致する対話行為が付与された発話を発話リスト４４から選択して発話候補４６を生成する。【選択図】図１
2014222402.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ発話に対して応答を行うことによりユーザと対話を行う対話システムにおける応答に用いる発話候補を生成する発話候補生成装置であって、
ユーザ発話と前記ユーザ発話に対する応答とからなる予め定められた複数の発話ペアから、入力されたユーザ発話と一致すると判断される発話ペアを選択し、選択された発話ペアの前記応答を用いて、発話候補を生成する第１モジュール、
ユーザ発話の話題を表す単語の各々について予め定められた、前記単語に関連する関連語を用いた発話から、前記入力されたユーザ発話から抽出される前記ユーザ発話の話題を表す単語に関連する前記関連語を用いた発話を選択し、選択した前記発話を用いて発話候補を生成する第２モジュール、
複数の発話を格納した発話データベースから、前記入力されたユーザ発話から抽出される単語を用いた検索クエリで検索し、前記検索された発話を用いて発話候補を生成する第３モジュール、
予め定められた、ユーザ発話の話題によらず発話可能と判断される複数の発話のうちの少なくとも１つの発話を用いて発話候補を生成する第４モジュール、及び
予め定められた、ユーザ発話の話題を変更するための複数の発話のうちの少なくとも１つの発話を用いて発話候補を生成する第５モジュールのうち少なくとも２つ以上のモジュールを備え、
各モジュールから出力された発話候補を出力する、発話候補生成装置。
【請求項２】
前記第１モジュール〜前記第５モジュールのうちの少なくとも１つは、前記ユーザの発話の意図を表す対話行為を推定した対話行為推定情報に基づいて決定される、前記対話システムの対話行為に基づいて、前記発話候補を生成する請求項１記載の発話候補生成装置。
【請求項３】
前記第１モジュールによって生成された前記発話候補、前記第２モジュールによって生成された前記発話候補、前記第３モジュールによって生成された前記発話候補、前記第４モジュールによって生成された前記発話候補、及び前記第５モジュールによって生成された前記発話候補の順に優先して、前記発話候補を出力する請求項１または請求項２に記載の発話候補生成装置。
【請求項４】
ユーザ発話に対して応答を行うことによりユーザと対話を行う対話システムにおける応答に用いる発話候補を生成する発話候補生成方法であって、
第１モジュールにより、ユーザ発話と前記ユーザ発話に対する応答とからなる予め定められた複数の発話ペアから、入力されたユーザ発話と一致する発話ペアを選択し、選択された発話ペアの前記応答を用いて、発話候補を生成するステップ、
第２モジュールにより、ユーザ発話の話題を表す単語の各々について予め定められた、前記単語に関連する関連語を用いた発話から、前記入力されたユーザ発話から抽出される前記ユーザ発話の話題を表す単語に関連する前記関連語を用いた発話を選択し、選択した前記発話を用いて発話候補を生成するステップ、
第３モジュールにより、複数の発話を格納した発話データベースから、前記入力されたユーザ発話から抽出される単語を用いた検索クエリで検索し、前記検索された発話を用いて発話候補を生成するステップ、
第４モジュールにより、予め定められた、ユーザ発話の話題によらず発話可能な複数の発話のうちの少なくとも１つの発話を用いて発話候補を生成するステップ、及び
第５モジュールにより、予め定められた、ユーザ発話の話題を変更するための複数の発話のうちの少なくとも１つの発話を用いて発話候補を生成するステップのうち少なくとも２つ以上のステップと、
各モジュールから出力された発話候補を出力するステップと、
を備えた、発話候補生成方法。
【請求項５】
コンピュータを、請求項１に記載の発話候補生成装置の各モジュールとして機能させるための発話候補生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、発話候補生成装置、発話候補生成方法、及び発話候補生成プログラムにかかり、特に、ユーザ発話に応答する対話システムにおけるシステム発話のための発話候補生成装置、発話候補生成方法、及び発話候補生成プログラムに関する。
【背景技術】
【０００２】
一般に、ユーザと対話を行う対話システムでは、人間らしい応答を実現するために、ユーザ発話についての応答を発話ペアとして手作業で大量に構築しておき、対話システム１０の応答として用いることが多い。発話ペアの例としては、ユーザ発話：「ありがとう」、応答：「どういたしまして」等が挙げられる。このような手法で応答を生成するシステムがある（例えば、非特許文献１参照）。
【０００３】
また、ユーザとの対話における現在の話題について、インターネットを利用してウェブ検索エンジンを用いて関連する文を抽出し、抽出した文の中から一つ以上の文を発話として用いて応答を行う対話システムがある（例えば、非特許文献２参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】R. S. Wallace, “The Anatomy of A.L.I.C.E.”, A.L.I.C.E. Artificial_Intelligence Foundation, Inc., 2004.
【非特許文献２】Shibata, M., Nishiguchi, T., and Tomiura, Y. (2009).“Dialog system for open-ended conversation using web documents.” Informatica, 33(3), pp. 277-284.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記非特許文献１に記載の技術、及び非特許文献２に記載の技術のいずれも単一のアルゴリズムで応答を生成するが、ユーザ発話は様々であり、単一のアルゴリズムのみで対話システムが適切に応答することは難しい。例えば、非特許文献１の技術では、開発者が想定したユーザ発話に対しては、的確に答えられるが、開発者が想定していないユーザ発話に対しては、応答することができない。また、非特許文献２の技術では、インターネットの検索エンジンを用いるため、様々な話題について応答を返すことができるが、雑多な内容を含むインターネットからの検索結果は発話として用いるには質が低く、また、挨拶に挨拶で返すといった定型応答に対応することが難しい。加えて、非特許文献１及び非特許文献２による応答手法を組み合わせたとしても、それぞれが適切に応答できるシステム発話は限られており、ユーザ発話に対して、常に適切な応答ができるとは限らない。
【０００６】
本発明は上記問題点を考慮してなされたものであり、対話システムにおいてユーザ発話に応じて適切な応答を行うことができる発話候補生成装置、発話候補生成方法、及び発話候補生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の発話候補生成装置は、ユーザ発話に対して応答を行うことによりユーザと対話を行う対話システムにおける応答に用いる発話候補を生成する発話候補生成装置であって、ユーザ発話と前記ユーザ発話に対する応答とからなる予め定められた複数の発話ペアから、入力されたユーザ発話と一致すると判断される発話ペアを選択し、選択された発話ペアの前記応答を用いて、発話候補を生成する第１モジュール、ユーザ発話の話題を表す単語の各々について予め定められた、前記単語に関連する関連語を用いた発話から、前記入力されたユーザ発話から抽出される前記ユーザ発話の話題を表す単語に関連する前記関連語を用いた発話を選択し、選択した前記発話を用いて発話候補を生成する第２モジュール、複数の発話を格納した発話データベースから、前記入力されたユーザ発話から抽出される単語を用いた検索クエリで検索し、前記検索された発話を用いて発話候補を生成する第３モジュール、予め定められた、ユーザ発話の話題によらず発話可能と判断される複数の発話のうちの少なくとも１つの発話を用いて発話候補を生成する第４モジュール、及び予め定められた、ユーザ発話の話題を変更するための複数の発話のうちの少なくとも１つの発話を用いて発話候補を生成する第５モジュールのうち少なくとも２つ以上のモジュールを備え、各モジュールから出力された発話候補を出力する。
【０００８】
また、本発明の発話候補生成装置の前記第１モジュール〜前記第５モジュールのうちの少なくとも１つは、前記ユーザの発話の意図を表す対話行為を推定した対話行為推定情報に基づいて決定される、前記対話システムの対話行為に基づいて、前記発話候補を生成することが好ましい。
【０００９】
また、本発明の発話候補生成装置は、前記第１モジュールによって生成された前記発話候補、前記第２モジュールによって生成された前記発話候補、前記第３モジュールによって生成された前記発話候補、前記第４モジュールによって生成された前記発話候補、及び前記第５モジュールによって生成された前記発話候補の順に優先して、前記発話候補を出力することが好ましい。
【００１０】
本発明の発話候補生成方法は、ユーザ発話に対して応答を行うことによりユーザと対話を行う対話システムにおける応答に用いる発話候補を生成する発話候補生成方法であって、第１モジュールにより、ユーザ発話と前記ユーザ発話に対する応答とからなる予め定められた複数の発話ペアから、入力されたユーザ発話と一致する発話ペアを選択し、選択された発話ペアの前記応答を用いて、発話候補を生成するステップ、第２モジュールにより、ユーザ発話の話題を表す単語の各々について予め定められた、前記単語に関連する関連語を用いた発話から、前記入力されたユーザ発話から抽出される前記ユーザ発話の話題を表す単語に関連する前記関連語を用いた発話を選択し、選択した前記発話を用いて発話候補を生成するステップ、第３モジュールにより、複数の発話を格納した発話データベースから、前記入力されたユーザ発話から抽出される単語を用いた検索クエリで検索し、前記検索された発話を用いて発話候補を生成するステップ、第４モジュールにより、予め定められた、ユーザ発話の話題によらず発話可能な複数の発話のうちの少なくとも１つの発話を用いて発話候補を生成するステップ、及び第５モジュールにより、予め定められた、ユーザ発話の話題を変更するための複数の発話のうちの少なくとも１つの発話を用いて発話候補を生成するステップのうち少なくとも２つ以上のステップと、各モジュールから出力された発話候補を出力するステップと、を備える。
【００１１】
本発明の発話候補生成プログラムは、コンピュータを、本発明の発話候補生成装置の各モジュールとして機能させるためのものである。
【発明の効果】
【００１２】
本発明の発話候補生成装置、発話候補生成方法、及び発話候補生成プログラムによれば、対話システムにおいてユーザ発話に応じて適切な応答を行うことができる、という効果が得られる。
【図面の簡単な説明】
【００１３】
【図１】本実施の形態の対話システムの一例の概略を示すブロック図である。
【図２】本実施の形態の対話システムで使用する、対話行為のセットと、対応する発話の例との関係を表したテーブルを示した説明図である。
【図３】本実施の形態の発話ペアの具体的な一例を示す説明図である。
【図４】本実施の形態の単語−発話ペアの具体的な一例を示す説明図である。
【図５】本実施の形態の発話サーチ部において「ラーメン」を検索クエリとして発話データベースから得られる発話リストの具体的な一例を示す説明図である。
【図６】本実施の形態の発話サーチ部において「ラーメン」及びシステムの対話行為である「５：自己丘維持評価＋」を検索クエリとして発話データベースから得られる発話リストの具体的な一例を示す説明図である。
【図７】本実施の形態の発話リストの具体的な一例を示す説明図である。
【図８】本実施の形態の発話リストの具体的な一例を示す説明図である。
【図９】本実施の形態の発話候補生成装置で実行される発話候補生成処理の一例のフローチャートである。
【図１０】本実施の形態の発話候補生成装置で実行される発話候補生成処理の一例のフローチャートである。
【図１１】本実施の形態の対話システムとユーザとの対話の具体的な一例を説明するための説明図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施の形態を詳細に説明する。なお、本実施の形態は本発明を限定するものではない。
【００１５】
本実施の形態の対話システム１０は、ユーザの発話に対してシステムが発話を行うことによりユーザと雑談等の対話を行う対話システムであって、ユーザ発話と、ユーザ発話から推定した対話行為に基づいて決定された対話システム１０の対話行為とに基づいて発話候補４６を生成し、生成した発話候補４６から選択した発話によりユーザに対して応答を行う機能を有している。
【００１６】
まず、本実施の形態の対話システム１０の構成について説明する。図１には、本実施の形態の対話システム１０の概略構成の一例を表した構成図を示す。本実施の形態の対話システム１０は、入力部１２、対話制御部１４、出力部１８、及び発話候補生成装置２０を備える。
【００１７】
入力部１２は、ユーザによって入力されたユーザ発話を発話候補生成装置２０に出力する機能を有している。また、本実施の形態の入力部１２は、入力されたユーザ発話を対話制御部１４にも出力する機能を有している。さらに、本実施の形態の入力部１２は、ユーザとの対話履歴を発話候補生成装置２０に出力する機能を有している。
【００１８】
対話制御部１４は、対話行為推定器１６を備えており、入力されたユーザ発話の対話行為を対話行為推定器１６により推定し、推定した対話行為に応じて、対話システムの発話意図を決定する機能を有している。対話システム１０側の発話意図を表す情報をシステムの対話行為と呼ぶ。なお、本実施の形態において「対話行為」とは、発話の意図を表すシンボルのことをいう。
【００１９】
本実施の形態の対話行為は、対話行為ＩＤと対話行為名のセットからなる。図２には、具体的な一例として本実施の形態で使用する、対話行為のセットと、対応する発話の例との関係を表したテーブルを示す。なお、対話行為のセットとしては、図２に示したものに限らず、談話研究で一般的なＤＡＭＳＬタグセット等を用いてもよい。
【００２０】
また、対話行為推定器１６は、発話中の単語を元に対話行為を推定する推定器であり、機械学習の手法で構築される。例えば、対話行為推定器１６を、文書分類で一般的に用いられる手法である、サポートベクトルマシン等を用いて構築することができる。本実施の形態では、約数万の発話について手作業で対話行為を付与し、このデータを学習データとして、サポートベクトルマシンによって、発話からその対話行為を推定する、多クラス分類器を学習した。
【００２１】
また、システムの対話行為の決定には、例えば、文献（目黒豊美，南泰浩，東中竜一郎，堂坂浩二，POMDPを用いた聞き役対話制御部のWizard of Oz実験による評価，人工知能学会第26 回全国大会オーガナイズドセッション「OS-18 知的対話システム」, 2012．参照）に記されたような手作業で作成されたルールを用いてもよい。また、その他には、近年一般的になっているＭＤＰやＰＯＭＤＰと呼ばれる統計的な対話制御の手法を用いて、システムの対話行為を決定してもよい。
【００２２】
対話制御部１４により決定されたシステムの対話行為は、発話候補生成装置２０に出力される。なお、発話候補生成装置２０における発話候補の生成において、システムの対話行為は、必須ではない。発話候補生成装置２０が対話行為を用いずに発話候補を生成する場合は、対話制御部１４は、対話行為推定器１６を備えなくてもよく、推定した対話行為を発話候補生成装置２０に出力する機能を有していなくてもよい。
【００２３】
出力部１８は、発話候補生成装置２０により出力された発話候補４６から一つ以上の発話を選択して、システム発話としてユーザに応答（提示）する機能を有している。
【００２４】
本実施の形態の発話候補生成装置２０は、複数のモジュールを用いて、入力部１２から入力されたユーザ発話に応答するための発話候補４６を生成して出力部１８へ出力する機能を有する。本実施の形態の発話候補生成装置２０は、５つのモジュールを備えている。発話候補生成装置２０では、発話ペア選択部２２が第１モジュールに対応し、関連発話選択部２６が第２モジュールに対応し、発話サーチ部３２が第３モジュールに対応し、バーサタイル発話選択部３８が第４モジュールに対応し、新規話題発話選択部４２が第５モジュールに対応している。なお、以下では、発話ペア選択部２２、関連発話選択部２６、発話サーチ部３２、バーサタイル発話選択部３８、及び新規話題発話選択部４２を総称する場合は、「モジュール」という。
【００２５】
また、本実施の形態の発話候補生成装置２０は、各モジュールで用いられるデータベースとして、発話ペア２４、単語−発話ペア３０、発話データベース３６、発話リスト４０、及び発話リスト４４を備える。
【００２６】
なお、発話候補生成装置２０におけるこれら各処理部、及び上記各処理部（入力部１２、対話制御部１４、及び出力部１８）は、ＣＰＵ（Central  Processing  Unit）、ＲＡＭ（Random  Access  Memory）、及びＲＯＭ（Read  Only  Memory）等を備えたコンピュータにより実現されており、ＣＰＵが、ＲＯＭに記憶されているプログラムを実行することにより、詳細を後述する各処理部における処理が実行される。
【００２７】
発話ペア選択部２２は、ユーザ発話そのものに対する応答を予め与えられた発話ペア２４から選択することにより、発話候補を生成する機能を有している。
【００２８】
発話ペア２４には、ユーザ発話と当該ユーザ発話に対する応答とのペア（発話ペア）が一つ以上格納されている。発話ペア２４のデータ（発話ペア）は、例えば手作業により予め作成されたものである。図３には、本実施の形態の発話ペア２４の具体的な一例を示す。なお、本実施の形態では、発話ペアの応答の対話行為を発話ペアに付与して発話ペア２４に格納している。なお、応答の対話行為は、上述の対話行為推定器１６と同様の対話行為推定器を用いて推定した対話行為を付与すればよい。図３に示した「0:挨拶」の場合は、「0」が対話行為ＩＤであり、「挨拶」が対話行為名を示している。なお、本実施の形態では、後述するようにシステムの対話行為も用いて発話候補４６を生成しているため、このように各発話ペアの対話行為についても発話ペア選択部２２に格納しているが、対話行為を用いずに発話候補４６を生成する場合には、対話行為については、発話ペア選択部２２に格納しなくてもよい。
【００２９】
発話ペア選択部２２は、入力されたユーザ発話に一致するユーザ発話を含む発話ペアの応答を発話ペア選択部２２から各々抽出し、各々抽出した応答からなる発話リストを発話候補４６として生成する。なお、発話ペア選択部２２が抽出する応答の数は特に限定されない。また、本実施の形態の発話ペア選択部２２では、ユーザ発話に加えてシステムの対話行為が入力された場合は、入力されたユーザ発話に一致し、かつ、入力された対話行為と対話行為が一致する発話ペアにおける応答を発話ペア２４から各々抽出し、各々抽出した応答からなる発話リストを発話候補４６として生成する。対話行為を用いることにより、対話システム１０の発話意図に沿った発話候補４６を生成することができる。
【００３０】
発話ペア選択部２２が生成する発話候補４６は、ユーザ発話そのものに対応した発話であるため、ユーザ発話に対して適切な応答を期待することができる。
【００３１】
関連発話選択部２６は、入力されたユーザ発話から、ユーザとの対話における現在の話題を示す単語を抽出し、抽出した単語に対応した発話を単語−発話ペア３０から選択することにより、発話候補４６を生成する機能を有する。なお、本実施の形態において「入力されたユーザ発話」とは、直前に入力された発話のみが対象となるのではなく、複数（例えば、予め定められた数）のこれまでに入力されたユーザ発話を対象としてもよい。
【００３２】
単語−発話ペア３０には、話題を示す単語と当該単語に関連する関連語を用いた発話との組み合わせからなる単語−発話のデータが一つ以上格納されている。単語−発話のデータは、例えば、手作業により予め作成されたものである。図４には、本実施の形態の単語−発話ペア３０の具体的な一例を示す。なお、本実施の形態では、発話ペアの発話の対話行為を各データに付与して単語−発話ペア３０に格納している。なお、発話の対話行為は、上述の対話行為推定器１６と同様の対話行為推定器を用いて推定した対話行為を付与すればよい。
【００３３】
関連発話選択部２６は、入力されたユーザ発話に対して形態素解析器２８により形態素解析を行い、形態素解析結果に基づいて、ユーザとの対話における話題を示す単語を抽出する。例えば、話題を示す単語とは、ユーザ発話に含まれる名詞であってもよい。具体的な一例として、「ラーメンが好きです」というユーザ発話が入力された場合は、当該ユーザ発話を形態素解析器３４により形態素解析を行うことで、「ラーメン」を名詞として判定することができる。この場合、関連発話選択部２６は、「ラーメン」を、話題を示す単語として抽出する。さらに関連発話選択部２６は、抽出した話題を示す単語と一致する単語に対応した発話を単語−発話ペア３０から各々抽出し、各々抽出した発話からなる発話リストを発話候補４６として生成する。本実施の形態では、具体的な一例として、図４に示した発話からなる発話リストを発話候補４６として生成する。なお、関連発話選択部２６が抽出する発話の数は特に限定されない。また、本実施の形態の関連発話選択部２６では、ユーザ発話に加えてシステムの対話行為が入力された場合は、抽出した話題を示す単語と一致し、かつ、入力された対話行為と対話行為とが一致するデータにおける発話を単語−発話ペア３０から各々抽出し、各々抽出した発話からなる発話リストを発話候補４６として生成する。対話行為を用いることにより、対話システム１０の発話意図に沿った発話候補４６を生成することができる。
【００３４】
関連発話選択部２６が生成する発話候補４６は、ユーザ発話そのものではなく、ユーザとの対話における話題に対応しているため、発話ペア選択部２２（第１モジュール）よりもユーザ発話に直接的に対応したものではなくなるものの、対話の話題に即した応答を実現することができる。
【００３５】
発話サーチ部３２は、入力されたユーザ発話から単語を抽出し、抽出した単語が含まれる発話を、発話データベース３６から検索することにより、発話候補４６を生成する機能を有する。
【００３６】
本実施の形態の発話データベース３６としては、具体的な一例として、ツイッター（登録商標）のサイトのデータを独自にクロールし、これらを句点や記号によって文分割した上で、一文（発話）を一レコードとして登録したものを用いているが、特に限定されない。なお、発話データベース３６は全文検索が可能なように転置インデックスを保持している。当該発話データベース３６の構築方法は特に限定されず、例えば、一般的な全文検索エンジンのデータベースを構築する手順を踏めばよく、フリーソフトのLuceneやNamazu等を用いて構築すればよい。本実施の形態では、具体的な一例として、Luceneを用いて構築した発話データベース３６を用いている。なお、本実施の形態では、発話の対話行為を当該発話に付与して発話データベース３６に格納している。なお、発話の対話行為は、上述の対話行為推定器１６と同様の対話行為推定器を用いて推定した対話行為を付与すればよい。
【００３７】
発話サーチ部３２は、入力されたユーザ発話に対して形態素解析器３４により形態素解析を行い、形態素解析結果に基づいて、ユーザ発話から単語を抽出し、抽出した単語を用いて検索クエリを構成して、発話データベース３６を検索する。具体的な一例として、「ラーメンが好きです」というユーザ発話が入力された場合は、当該ユーザ発話を形態素解析器３４により形態素解析を行うことで、発話文に含まれる単語を抽出することができる。当該ユーザ発話文においては、内容語（名詞、動詞、及び形容詞）として、「ラーメン」及び「好き」を抽出することができる。なお、これら二つの単語からなる検索クエリを作成してもよいし、「ラーメン」及び「好き」のいずれか一方からなる検索クエリを作成してもよい。このようにして得られた検索クエリによって発話データベース３６を検索し、上位Ｎ件の検索結果である発話を発話リストとして取得して発話候補４６を生成する。なお、発話サーチ部３２が取得する発話の数は特に限定されない。また、本実施の形態の発話サーチ部３２では、ユーザ発話に加えてシステムの対話行為が入力された場合は、検索クエリにシステムの対話行為を含めることにより、システムの対話行為が一致する発話のみを検索結果として得ることができる。図５には、具体的な一例として、「ラーメン」を検索クエリとして発話データベース３６から得られる発話リストを示す。また、図６には、具体的な一例として、「ラーメン」及びシステムの対話行為である「５：自己開示評価＋」を検索クエリとして発話データベース３６から得られる発話リストを示す。
【００３８】
発話サーチ部３２が生成する発話候補４６は、関連発話選択部２６（第２モジュール）が生成する発話候補４６に比べて、ユーザとの対話における話題に直接対応する発話を用いて応答できるとは限らないが、適切な検索結果が得られることにより、話題に即した応答を実現することができる。
【００３９】
バーサタイル発話選択部３８は、発話リスト４０から発話を選択することで発話候補４６を生成する機能を有する。一般に、「バーサタイル」とは、多様という意味であり、種々の意味を含むという意味である。そのため、どのような意味にでも解釈でき、いつ発話しても文脈上大きな問題の起きにくい発話のことを、本実施の形態では、「バーサタイル発話」という。
【００４０】
発話リスト４０は、ユーザとの対話における現在の話題によらず、いつ発話しても対話の内容に大きな影響を与えない複数の発話からなる発話リストである。バーサタイル発話を発話リスト４０に格納しておくことにより、対話システム１０は発話に窮した場合にこれらの発話を用いてその場を繋ぐことが可能となる。発話リスト４０には、例えば、「はい」や「ええ」のような相槌や、具体的な内容を持たない、「すごいですね」や「いいですね」等の共感を表す発話等が格納されている。発話リスト４０は、例えば手作業により予め作成されてものである。図７には、本実施の形態の発話リスト４０の具体的な一例を示す。なお、本実施の形態では、発話の対話行為を各発話に付与して発話リスト４０に格納している。発話の対話行為は、上述の対話行為推定器１６と同様の対話行為推定器を用いて推定した対話行為を付与すればよい。
【００４１】
バーサタイル発話選択部３８は、発話リスト４０から発話を選択することで発話候補４６を生成する。なお、バーサタイル発話選択部３８は、発話リスト４０の全体を発話候補４６としてもよいし、発話リスト４０の中から一つ以上を適宜選択して発話候補４６としてもよい。また、本実施の形態では、発話の対話行為を当該発話に付与して発話リスト４０に格納している。また、本実施の形態のバーサタイル発話選択部３８では、システムの対話行為が入力された場合は、発話リスト４０から、システムの対話行為と一致する対話行為が付与された発話を選択し、発話候補４６を生成する。
【００４２】
バーサタイル発話選択部３８が生成する発話候補４６は、発話ペア選択部２２（第１モジュール）、関連発話選択部２６（第２モジュール）、及び発話サーチ部３２（第３モジュール）のようにユーザ発話や、ユーザとの対話における現在の話題に即した発話は応答できないが、現在の話題を継続することができる応答を実現することができる。
【００４３】
新規話題発話選択部４２は、発話リスト４４から発話を選択することで発話候補４６を生成する機能を有する。
【００４４】
発話リスト４４は、ユーザとの対話における現在の話題を変更するために、新規な話題にユーザを誘導するための発話が含まれた発話リストである。発話リスト４４は例えば手作業により予め作成したものである。図８には、本実施の形態の発話リスト４４の具体的な一例を示す。なお、本実施の形態では、発話の対話行為を各発話に付与して発話リスト４４に格納している。発話の対話行為は、上述の対話行為推定器１６と同様の対話行為推定器を用いて推定した対話行為を付与すればよい。
【００４５】
新規話題発話選択部４２は、発話リスト４４から発話を選択することで発話候補４６を生成する。なお、新規話題発話選択部４２は、発話リスト４４の全体を発話候補４６としてもよいし、発話リスト４４の中から一つ以上を適宜選択して発話候補４６としてもよい。また、本実施の形態の新規話題発話選択部４２では、システムの対話行為が入力された場合は、発話リスト４４から、入力されたシステムの対話行為と一致する対話行為が付与された発話を選択し、発話候補４６を生成する。
【００４６】
新規話題発話選択部４２が生成する発話候補４６は、発話ペア選択部２２（第１モジュール）、関連発話選択部２６（第２モジュール）、発話サーチ部３２（第３モジュール）、及びバーサタイル発話選択部３８（第４モジュール）とは異なり、新規な話題にユーザを誘導する応答を行うことにより、ユーザ発話や、ユーザとの対話における現在の話題に即した応答ができない状況を打開することができる応答を実現することができる。
【００４７】
次に、本実施の形態の発話候補生成装置２０の動作の流れについて説明する。本実施の形態の発話候補生成装置２０では、複数（第１〜第５）のモジュールを使い分けることにより、常にユーザ発話に応じて適切な、質が高い応答を行っている。また、本実施の形態の発話候補生成装置２０では、第１モジュール（発話ペア選択部２２）から第５モジュール（新規話題発話選択部４２）の順で順次、発話候補４６を生成する。このような順番で発話候補４６を生成することにより、ユーザ発話に対して、より適切な応答ができるモジュールの順で順次、発話候補４６を生成するため、ユーザの発話に対して、より的確な応答を実現することが可能となっている。なお、発話候補４６を生成するモジュールの順番は、本実施の形態の順番に限定されないが、上述の理由から、本実施の形態のように、番号が小さいモジュールから大きいモジュールへ進む順番とすることが好ましい。
【００４８】
図９及び図１０には、発話候補生成装置２０における発話候補生成処理の流れの一例のフローチャートを示す。当該発話候補生成処理は、入力部１２からユーザ発話及び対話履歴が発話候補生成装置２０に入力されると実行される。なお、対話履歴の入力は必須ではないが、入力された一つのユーザ発話から話題を示す単語を抽出できなかった場合等、各モジュールが、発話候補４６を生成できない場合に、入力されたユーザ発話に替わり、当該ユーザ発話より過去に発話されたユーザ発話を用いて発話候補４６を生成することができるため、本実施の形態のように、対話履歴を入力することが好ましい。
【００４９】
まず、発話ペア選択部２２が、発話候補４６の生成を行う。そのため、ステップＳ１００では、発話ペア選択部２２にユーザ発話が入力される。次のステップＳ１０２では、発話ペア選択部２２が、入力されたユーザ発話に一致するユーザ発話を含む発話ペアが発話ペア２４に格納されているか否か判断する。なお、本実施の形態では、発話ペア選択部２２は、完全一致のみではなく、一致するとみなされるユーザ発話を含む発話ペアが発話ペア２４に格納されているか否か判断している。具体的には、例えば、編集距離や単語集合の類似度を用いて、予め設けておいた閾値に基づいて当該閾値を超えるか否かにより、一致するか否かを判断している。このように発話ペア選択部２２は、入力されたユーザ発話に完全に一致するユーザ発話を含む発話ペアのみではなく、一致するとみなされるユーザ発話を含む発話ペアが発話ペア２４に格納されているか否か判断することが好ましい。
【００５０】
入力されたユーザ発話に一致するユーザ発話を含む発話ペアが発話ペア２４に格納されていない場合は、発話候補４６が生成できないため、次のモジュール（本実施の形態では関連発話選択部２６）による発話候補４６の生成を行うために、ステップＳ１１２へ進む。一方、入力されたユーザ発話に一致するユーザ発話を含む発話ペアが発話ペア２４に格納されている場合は、ステップＳ１０４へ進む。
【００５１】
ステップＳ１０４では、対話制御部１４から入力された対話行為が有るか否か判断する。対話行為が有る場合は、ステップＳ１０６へ進み、入力されたユーザ発話と対話行為と一致する発話ペアから発話候補４６を生成した後、ステップＳ１１０へ進む。具体的には、発話ペア２４から、入力されたユーザ発話を含み、かつ入力された対話行為が付与された発話ペアを抽出し、抽出した発話ペアの応答を発話候補４６として生成する。一方、対話行為が無い場合は、ステップＳ１０４からステップＳ１０８へ進む。ステップＳ１０８では、入力されたユーザ発話と一致する発話ペアから発話候補４６を生成した後、ステップＳ１１０へ進む。具体的には、発話ペア２４から、入力されたユーザ発話と一致するユーザ発話を含む発話ペアを抽出し、抽出した発話ペアの応答を発話候補４６として生成する。
【００５２】
ステップＳ１１０では、次のモジュールで発話候補４６を生成するか否か判断する。本実施の形態では、上述したように、第１モジュール（発話ペア選択部２２）から第５モジュール（新規話題発話選択部４２）の順で順次、発話候補４６を生成するが、全てのモジュールで発話候補４６を生成しないようにしてもよい。例えば、一つ以上のモジュールをスキップしてもよいし、予め定められた数以上の応答や発話を含む発話候補４６を生成した時点で、後段のモジュールによる発話候補４６の生成を行わないようにしてもよい。これらの場合は、予め発話候補生成装置２０内に発話候補４６の生成について設定しておき、設定に応じて、各モジュールで発話候補４６の生成を行うか否か判断するようにすればよい。
【００５３】
また、本実施の形態では、発話ペア選択部２２で、対話行為として「相槌」が付与されている応答のみを発話候補４６として生成した場合は、次のモジュールで発話候補４６を生成するように判断している。
【００５４】
ステップＳ１１０では、設定等に応じて、次のモジュールで発話候補４６を生成しない場合は、ステップＳ１６２へ進む。一方、次のモジュールで発話候補４６を生成する場合は、ステップＳ１１２へ進む。なお、本実施の形態の発話候補生成装置２０では、順次、後段のモジュールで発話候補４６を生成するため次の番号のモジュールで発話候補４６を生成するようにしているが、上述したようにモジュールをスキップするように設定されている場合は、設定先のモジュールで発話候補４６を生成するようにする。
【００５５】
次に、関連発話選択部２６が、発話候補４６の生成を行う。そのため、ステップＳ１１２では、関連発話選択部２６にユーザ発話が入力される。次のステップＳ１１４では、関連発話選択部２６によりユーザ発話の形態素解析を行い、入力されたユーザ発話から、話題を示す単語を抽出する。
【００５６】
次のステップＳ１１６では、抽出した単語と一致する単語に対応した発話が単語−発話ペア３０に有るか否か判断する。抽出した単語と一致する単語に対応した発話が単語−発話ペア３０に無い場合は、ステップＳ１２６へ進む。一方、抽出した単語と一致する単語に対応した発話が単語−発話ペア３０に有る場合は、ステップＳ１１８へ進む。
【００５７】
ステップＳ１１８では、対話制御部１４から入力された対話行為が有るか否か判断する。対話行為が有る場合は、ステップＳ１２０へ進み、抽出した単語と入力された対話行為とに一致する発話から発話候補４６を生成した後、ステップＳ１２４へ進む。具体的には、単語−発話ペア３０から、抽出された単語と一致する単語に対応し、かつ入力された対話行為と一致する対話行為が付与された発話を抽出し、抽出した発話を発話候補４６として生成する。一方、対話行為が無い場合は、ステップＳ１１８からステップＳ１２２へ進む。ステップＳ１２２では、抽出した単語と一致する単語に対する発話から発話候補４６を生成した後、ステップＳ１２４へ進む。具体的には、単語−発話ペア３０から、抽出された単語と一致する単語に対応する発話を抽出し、抽出した発話により発話候補４６として生成する。
【００５８】
次のステップＳ１２４では、上述したステップＳ１１０と同様に、次のモジュールで発話候補４６を生成するか否か判断する。次のモジュールで発話候補４６を生成しない場合は、ステップＳ１６２へ進む。一方、次のモジュールで発話候補４６を生成する場合は、ステップＳ１２６へ進む。
【００５９】
次に、発話サーチ部３２が、発話候補４６の生成を行う。そのため、ステップＳ１２６では、発話サーチ部３２にユーザ発話が入力される。次のステップＳ１２８では、発話サーチ部３２によりユーザ発話の形態素解析を行い、ユーザ発話から単語を抽出する。
【００６０】
次のステップＳ１３０では、対話制御部１４から入力された対話行為が有るか否か判断する。対話行為が有る場合は、ステップＳ１３２へ進み、ステップＳ１３２では、抽出した単語と入力された対話行為とにより検索クエリを構成する。一方、対話制御部１４から入力された対話行為が無い場合は、ステップＳ１３４へ進み、ステップＳ１３４では、抽出した単語により検索クエリを構成する。さらに次のステップＳ１３６では、当該検索クエリを用いて、発話データベース３６を検索し、検索結果を取得する。
【００６１】
次のステップＳ１３８では、検索結果に発話が含まれているか否か判断する。検索結果に発話が含まれていない場合、すなわち検索結果が０件であった場合は、ステップＳ１４４へ進む。一方、検索結果に発話が含まれている場合、すなわち検索結果が０件で無い場合は、ステップＳ１４０へ進む。ステップＳ１４０では、検索結果に含まれる発話からなる発話リストから、発話候補４６を生成した後、ステップＳ１４２へ進む。
【００６２】
ステップＳ１４２では、上述したステップＳ１１０と同様に、次のモジュールで発話候補４６を生成するか否か判断する。次のモジュールで発話候補４６を生成しない場合は、ステップＳ１６２へ進む。一方、次のモジュールで発話候補４６を生成する場合は、ステップＳ１４４へ進む。
【００６３】
次に、バーサタイル発話選択部３８が、発話候補４６の生成を行う。そのため、ステップＳ１４４では、バーサタイル発話選択部３８にユーザ発話が入力される。次のステップＳ１４６では、対話制御部１４から入力された対話行為が有るか否か判断する。対話行為が有る場合は、ステップＳ１４８へ進み、ステップＳ１４８では、発話リスト４０と入力された対話行為とから発話候補４６を生成する。具体的には、発話リスト４０から、入力された対話行為と一致する対話行為が付与された発話を選択して発話候補４６を生成する。一方、対話制御部１４から入力された対話行為が無い場合は、ステップＳ１５０へ進み、発話リスト４０から発話候補４６を生成する。
【００６４】
次のステップＳ１５２では、上述したステップＳ１１０と同様に、次のモジュールで発話候補４６を生成するか否か判断する。次のモジュールで発話候補４６を生成しない場合は、ステップＳ１６２へ進む。一方、次のモジュールで発話候補４６を生成する場合は、ステップＳ１５４へ進む。
【００６５】
次に、新規話題発話選択部４２が、発話候補４６の生成を行う。そのため、ステップＳ１５４では、新規話題発話選択部４２にユーザ発話が入力される。次のステップＳ１５６では、対話制御部１４から入力された対話行為が有るか否か判断する。対話行為が有る場合は、ステップＳ１５８へ進み、ステップＳ１５８では、発話リスト４４と入力された対話行為とから発話候補４６を生成する。具体的には、発話候補４６から、入力された対話行為と一致する対話行為が付与された発話を選択して発話候補４６を生成する。一方、対話制御部１４から入力された対話行為が無い場合は、ステップＳ１６０へ進み、発話リスト４４から発話候補４６を生成する。
【００６６】
次のステップＳ１６２では、各モジュールにより生成された発話候補４６を出力部１８へ出力した後、本処理を終了する。なお、本実施の形態では、このように各モジュールで生成された発話候補４６をまとめて出力部１８に出力しているがこれに限らず、各モジュールで生成された発話候補４６を順次、出力部１８に出力するようにしてもよい。
【００６７】
出力部１８は、発話候補生成装置２０で生成され、出力された発話候補４６から発話を選択しユーザに対して応答する。
【００６８】
また、本実施の形態の対話システム１０では、内容がない発話（応答）のみを応答しないように、対話としての内容が不十分であるとみなされる「相槌」等の対話行為が付与された発話（応答）のみを用いた応答をしないようにしている。具体的には、本実施の形態の対話システム１０の出力部１８により、対話行為として「相槌」が付与されている発話（応答）を発話候補４６から選択してユーザに対して応答した場合は、続けて別の発話を発話候補４６から選択してユーザに対して応答するようにする。なお、対話システム１０において、「相槌」等の対話行為が付与された発話のみを応答しないようにする方法としては、特に限定されないが、例えば、このような発話（応答）に対してフラグを付与して発話候補４６を生成しておき、出力部１８は、当該フラグが付与された発話を発話候補４６から選択してユーザに対して応答した場合は、続けて別の発話を発話候補４６から選択してユーザに対して応答すればよい。
【００６９】
対話システム１０によって、図１１に示した対話例のような対話が行われる。
【００７０】
図１１には、ユーザと対話システム１０との間で実現できる対話の具体例を示す。図１１に示した対話例では、まず、対話システム１０（system）が、システムのプロンプト（初期発話）である、「こんにちは」をユーザに提示する。
【００７１】
当該提示に応じて、ユーザ（you）が、「どうも」とユーザ発話を行うと、当該ユーザ発話入力部１２から発話候補生成装置２０に入力される。当該ユーザ発話に応じて、当該ユーザ発話に応じて発話ペア選択部２２が発話ペア２４から選択された応答により生成された発話候補４６から出力部１８が選択した「いえいえ」をユーザに対して発話する。
【００７２】
さらに、当該応答に対して、ユーザが「イタリア行きたいな」とユーザ発話を行うと、当該ユーザ発話が入力部１２から発話候補生成装置２０に入力される。このようにユーザが発話を行うと、順次、ユーザ発話が入力部１２から発話候補生成装置２０に入力され、各モジュールで、上述したように入力されたユーザ発話や対話履歴を参照して、発話候補４６が生成される。出力部１８は、生成された発話候補４６から発話を選択してユーザに対して応答する。
【００７３】
図１１に示した対話例では、「イタリア行きたいな」というユーザ発話に対して、出力部１８は、関連発話選択部２６（第２モジュール）が生成した発話候補４６から選択した「イタリア行くの？」を応答する。また、「行きたい」というユーザ発話に対して、出力部１８は、発話ペア選択部２２（第１モジュール）が生成した発話候補４６から選択した「行きたい」を応答する。また、「だね」というユーザ発話に対して、出力部１８は、発話ペア選択部２２（第１モジュール）が生成した発話候補４６から選択した「うん」を応答する。この場合、「うん」には、対話行為として「相槌」が付与されているため、出力部１８は、続けて、関連発話選択部２６（第２モジュール）及び発話サーチ部３２（第３モジュール）が生成した発話候補４６の中から選択した発話サーチ部３２が生成した発話候補４６による「イタリアワインいいなぁ」を応答する。また、「美味しいよね」というユーザ発話に対して、出力部１８は、発話ペア選択部２２（第１モジュール）が生成した発話候補４６から選択した「うん」を応答する。この場合、「うん」には、対話行為として「相槌」が付与されているため、出力部１８は、続けて、関連発話選択部２６（第２モジュール）及び発話サーチ部３２（第３モジュール）が生成した発話候補４６の中から選択した発話サーチ部３２が生成した発話候補４６による「イタリア料理美味しい」を応答する。また、「パスタも」というユーザ発話に対して、出力部１８は、関連発話選択部２６（第２モジュール）及び発話サーチ部３２（第３モジュール）が生成した発話候補４６の中から選択した発話サーチ部３２が生成した発話候補４６による「イタリアのアイテムはやはりパスタになるんですかね」を応答する。また、「だと思うよ」というユーザ発話に対して、出力部１８は、バーサタイル発話選択部３８（第４モジュール）が生成した発話候補４６から選択した「なるほど」を応答する。さらに、「何がなるほどなの？」というユーザ発話に対して、出力部１８は、新規話題発話選択部４２（第５モジュール）が生成した発話候補４６から選択した「ところで今日は何を食べましたか」を応答する。
【００７４】
上記図１１では、ユーザ発話が行われる度に、入力部１２から発話候補生成装置２０にユーザ発話が入力され、各モジュールで発話候補４６を生成し、生成された発話候補４６から選択した発話により出力部１８がユーザに対して応答を行っている。なお、出力部１８は、ユーザとの対話における所定のタイミング（例えば、話題が変わったとみなせるタイミング）まで、発話候補生成装置２０が生成した発話候補４６から発話を繰り返し選択してユーザに対して応答するようにしてもよい。
【００７５】
以上説明したように、本実施の形態の対話システム１０では、ユーザとの対話において、入力部１２からユーザ発話が発話候補生成装置２０に入力される。また、対話制御部１４がユーザ発話の対話行為を対話行為推定器１６により推定し、推定した結果に応じて決定した対話システム１０の対話行為を発話候補生成装置２０に出力する。発話候補生成装置２０では、発話ペア選択部２２、関連発話選択部２６、発話サーチ部３２、バーサタイル発話選択部３８、及び新規話題発話選択部４２が、順次、入力されたユーザ発話及び対話行為に応じた発話候補４６を生成する。発話ペア選択部２２は、入力されたユーザ発話に応じて発話ペア２４から選択された応答により発話候補４６を生成する。関連発話選択部２６は、入力されたユーザ発話を形態素解析器２８により形態素解析して、話題を示す単語を抽出し、抽出した単語に対応し、かつ入力された対話行為が付与された発話を単語−発話ペア３０から取得して発話候補４６を生成する。発話サーチ部３２は、入力されたユーザ発話を形態素解析器３４により形態素解析して、単語を抽出し、抽出した単語及び入力された対話行為を検索クエリとして発話データベース３６を検索して、検索結果に基づいて発話候補４６を生成する。バーサタイル発話選択部３８は、入力された対話行為と一致する対話行為が付与された発話を発話リスト４０から選択して、発話候補４６を生成する。新規話題発話選択部４２は、入力された対話行為と一致する対話行為が付与された発話を発話リスト４４から選択して、発話候補４６を生成する。出力部１８は、発話候補生成装置２０で生成され、出力された発話候補４６から発話を選択しユーザに対して応答する。
【００７６】
このように、本実施の形態の対話システム１０の発話候補生成装置２０では、ユーザ発話に対応し、ユーザ発話に対してより適切な発話候補４６を生成するモジュールから順に、発話候補４６を生成することができる。また、発話候補生成装置２０では、複数のモジュールを備えることで、発話の質が異なる発話候補４６を生成することができる。従って、対話システム１０においてユーザ発話に応じて適切な応答を行うことができる。
【００７７】
これにより、質の高い応答を行う対話システム１０を実現することができる。雑談等の対話は人間同士では会話の潤滑油として用いられる。質の高い対話を実現可能にすることによって、人間と対話システムとのやりとりがより円滑になり、コンピュータとユーザの共同作業の効率を高めることができる。
【００７８】
なお、本実施の形態では、５つのモジュール（発話ペア選択部２２、関連発話選択部２６、発話サーチ部３２、バーサタイル発話選択部３８、及び新規話題発話選択部４２）を備えているがこれに限らず、これらのうち、少なくとも２つ以上備えて入ればよい。
【００７９】
また、本実施の形態に限らず、発話ペア２４、単語−発話ペア３０、発話データベース３６、発話リスト４０、及び発話リスト４４は、発話候補生成装置２０の外部に備えられていてもよい。
【００８０】
また、本実施の形態について図面を参照して詳述に説明したが、本実施の形態は一例であり、具体的な構成は本実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計等も含まれ、状況に応じて変更可能であることは言うまでもない。
【符号の説明】
【００８１】
１０  対話システム
２２  発話ペア選択部
２４  発話ペア
２６  関連発話選択部
３０  単語-発話ペア
３２  発話サーチ部
３６  発話データベース
３８  バーサタイル発話選択部
４０  発話リスト
４２  新規話題発話選択部
４４  発話リスト
【図１】
2014222402.tif 000003
【図２】
2014222402.tif 000004
【図３】
2014222402.tif 000005
【図４】
2014222402.tif 000006
【図５】
2014222402.tif 000007
【図６】
2014222402.tif 000008
【図７】
2014222402.tif 000009
【図８】
2014222402.tif 000010
【図９】
2014222402.tif 000011
【図１０】
2014222402.tif 000012
【図１１】
2014222402.tif 000013