(57)【要約】【課題】自動対話において、利用者が目的とする特定の話題の対話に円滑に入れるようにする。【解決手段】目的とする特定の話題の対話を行うための導入となる対話で発話される第１の発話文を出力する第１の対話処理部と、特定の話題の対話で発話される第２の発話文を出力する第２の対話処理部と、を有する。第１の対話処理部は、発話候補文の集合から、特定の話題との関連性に基づいて単数または複数の第１の発話文を選択して出力し、第２の対話処理部は、第１の対話処理部が第１の発話文を出力した後に、第２の発話文を出力する。【選択図】図１
2020190585.tif 000002
【特許請求の範囲】
【請求項１】
利用者と対話を行う自動対話装置であって、
目的とする特定の話題の対話を行うための導入となる対話で発話される第１の発話文を出力する第１の対話処理部と、
前記特定の話題の対話で発話される第２の発話文を出力する第２の対話処理部と、を有し、
前記第１の対話処理部は、発話候補文の集合から、前記特定の話題との関連性に基づいて単数または複数の前記第１の発話文を選択して出力し、
前記第２の対話処理部は、前記第１の対話処理部が前記第１の発話文を出力した後に、前記第２の発話文を出力する、自動対話装置。
【請求項２】
請求項１の自動対話装置であって、
前記発話候補文の集合は、個人的な内容を問う質問を表す質問文と、前記質問に対する回答を表す回答文と、の組を含み、
前記第１の発話文のそれぞれは、前記質問文と前記回答文との組を含む、自動対話装置。
【請求項３】
請求項１または２の自動対話装置であって、
前記特定の話題の対話は、前記特定の話題に関する質問と回答とを複数回繰り返すことで前記利用者の考えを導き出すための対話である、自動対話装置。
【請求項４】
請求項２の自動対話装置であって、
前記特定の話題の対話は、前記特定の話題に関する議論である、自動対話装置。
【請求項５】
請求項１から４の何れかの自動対話装置であって、
対話管理部をさらに有し、
前記第１の対話処理部は、前記発話候補文の集合から、前記特定の話題との関連性に基づいて複数の前記第１の発話文を選択し、
前記対話管理部は、複数の前記第１の発話文を前記特定の話題との関連性の低い順に出力し、すべての前記第１の発話文を出力した後に、前記第２の発話文を出力する、自動対話装置。
【請求項６】
利用者と対話を行う自動対話方法であって、
目的とする特定の話題の対話を行うための導入となる対話で発話される第１の発話文を出力する第１の対話処理ステップと、
前記特定の話題の対話で発話される第２の発話文を出力する第２の対話処理ステップと、を有し、
前記第１の対話処理ステップは、発話候補文の集合から、前記特定の話題との関連性に基づいて単数または複数の前記第１の発話文を選択して出力するステップであり、
前記第２の対話処理ステップは、前記第１の対話処理部が前記第１の発話文を出力した後に、前記第２の発話文を出力するステップである、自動対話方法。
【請求項７】
請求項１から５の何れかの自動対話装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、利用者と対話を行う自動対話技術に関し、特に、特定の話題について対話を行うための技術に関する。
【背景技術】
【０００２】
議論は根拠や反論の提示を通して合意形成を行う手続きである（非特許文献１）。近年、コンピュータ上で議論を扱うための議論のモデル化や、主張とその根拠となる文をテキストから自動で抽出する技術の開発が進められている。一方、議論構造と呼ばれる、ある話題に関する議論のデータベースを用いて、利用者と議論を行う議論対話システムの開発も進められている（非特許文献２）。この議論対話システムでは、利用者の各発話に対し、議論構造から当該発話に対する支持・不支持を表す発話を選択していくことでシステム側の発話を決定する。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Toulmin, S. E. The uses of argument. Cambridge university press, 1958.
【非特許文献２】R. Higashinaka, K. Sakai, H. Sugiyama, H. Narimatsu, T. Arimoto, T. Fukutomi, K. Matsui, Y. Ijima, H. Ito, S. Araki, Y. Yoshikawa, H. Ishiguro, and Y. Matsuo., "Argumentative dialogue system based on argumentation structures," In Proceedings of the 21st Workshop on the Semantics and Pragmatics of Dialogue, pp. 154-155, 2017.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の対話システムは、対話開始時に唐突に目的とする特定の話題の対話を始めるため、利用者がいきなり対話相手や話題についていくことが難しいという問題がある。
【０００５】
本発明はこのような点に鑑みてなされたものであり、利用者が目的とする特定の話題の対話に円滑に入っていくことを可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
利用者と対話を行う自動対話装置は、目的とする特定の話題の対話を行うための導入となる対話で発話される第１の発話文を出力する第１の対話処理部と、特定の話題の対話で発話される第２の発話文を出力する第２の対話処理部と、を有する。第１の対話処理部は、発話候補文の集合から、特定の話題との関連性に基づいて単数または複数の第１の発話文を選択して出力し、第２の対話処理部は、第１の対話処理部が第１の発話文を出力した後に、第２の発話文を出力する。
【発明の効果】
【０００７】
これにより、利用者が目的とする特定の話題の対話に円滑に入っていくことができる。
【図面の簡単な説明】
【０００８】
【図１】図１は実施形態の自動対話装置の機能構成を説明するためのブロック図である。
【図２】図２は実施形態の自動対話装置の処理を説明するためのフロー図である。
【図３】図３は実施形態の発話候補文の集合であるＰＤＢ（Person DataBase）を例示した図である。
【図４】図４は議論構造を例示した図である。
【図５】図５は分類器の教師有り学習に使用する発話文と対話行為ラベルとの組からなる学習データを例示した図である。
【図６】図６は入力発話文とそれらを分類器で分類して得られる対話行為ラベルとの関係を例示した図である。
【図７】図７は議論の特定の話題とＰＤＢの質問文との類似度を例示した図である。
【図８】図８は議論構造からのノードの選択処理を例示するための図である。
【図９】図９は挨拶対話フェーズ、質問対話フェーズ、および議論対話フェーズでの対話内容を例示するための図である。
【図１０】図１０は挨拶対話フェーズでの対話内容を例示するための図である。
【図１１】図１１は質問対話フェーズでの対話内容を例示するための図である。
【図１２】図１２は議論対話フェーズでの対話内容を例示するための図である。
【図１３】図１３は実施形態の変形例の自動対話装置の機能構成を説明するためのブロック図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して本発明の実施形態を説明する。
［第１実施形態］
まず本発明の第１実施形態を説明する。
第１実施形態では、「目的とする特定の話題の対話」が、特定の話題に関する議論であり、「発話候補文の集合」が、個人的な内容を問う質問を表す質問文と、該質問に対する回答文と、の組を含むＰＤＢである場合を例示する。しかしながら、これは本発明を限定するものではない。「該質問への回答文」とは、特定の質問に対して本自動対話装置が回答する際に、回答として用いる事が可能な文を表す。例えば、自動対話装置からの質問に対し、利用者が回答し、それに対して更に自動対話装置が回答する内容を表す文が「該質問への回答文」である。しかし、自動対話装置が回答する内容は利用者がどう答えるかに関わりなく定められていてもよい。例えば、利用者の回答はあってもなくてもよく、特定の質問（ある種の話題のようなもの）に関して、自動対話装置が回答する（つまり自己開示する）だけでもよい。
【００１０】
＜構成＞
図１に例示するように、本実施形態の自動対話装置１は、対話処理部１１（第１の対話処理部）、対話処理部１２（第２の対話処理部）、単語ベクトル辞書記憶部１３、対話管理部１４、および発話文生成部１５を有する。自動対話装置１は、さらに対話処理部１０を有していてもよいし、有していなくてもよい。対話処理部１１は、発話候補文ＤＢ記憶部１１１および発話生成部１１２を有する。対話処理部１２は、議論構造記憶部１２１、議論管理部１２２、対話行為推定部１２３、および議論発話推定部１２４を有する。なお、以下では説明を省略するが、各処理部（対話処理部１１，１２、対話管理部１４、および発話文生成部１５）に入力されたデータや各処理部で得られたデータはメモリ（図示せず）に格納され、必要に応じてそこから読み出されて他の処理に利用される。
【００１１】
＜事前処理＞
本実施形態では、対話処理前に行われる事前処理で予め発話候補文ＤＢ記憶部１１１に発話候補文データベース（ＤＢ）が格納され、議論構造記憶部１２１に議論構造が格納され、単語ベクトル辞書記憶部１３に単語ベクトル辞書が格納される例を示す。しかしこれは本発明を限定するものではなく、対話処理が開始されてから、発話候補文ＤＢ記憶部１１１、議論構造記憶部１２１、単語ベクトル辞書記憶部１３の一部または全部で上述の格納が行われてもよいし、発話候補文ＤＢ記憶部１１１、議論構造記憶部１２１、単語ベクトル辞書記憶部１３の一部または全部に格納されていた情報が更新されてもよい。また、入力された発話内容を表すテキストである入力発話文がどのような対話行為を表しているかを推定する分類器が構築される。以下、発話候補文ＤＢ、議論構造、単語ベクトル辞書、および分類器を例示する。
【００１２】
≪発話候補文ＤＢ（発話候補文の集合）の例示≫
本実施形態で例示する発話候補文ＤＢは、対話中に行われる個人的な内容を問う質問を表す質問文と、該質問に対する回答（回答例）を表す回答文と、の組を含むＰＤＢである。個人的な内容を問う質問の例は、個人の属性を問う質問、個人の好みを問う質問、個人の行動を問う質問、個人の日常を問う質問、個人のキャラクタを問う質問などである。ＰＤＢについては、例えば参考文献１等参照。
参考文献１：H. Sugiyama, T. Meguro, and R. Higashinaka., "Large-scale collection and analsis of personal question-answer pairs for conversational agents," In Proceedings of Intelligent Virtual Agents, pp. 420 - 433, 2014.
例えば、対話中に問われる個人的な内容に関する質問を表す質問文と、該質問に対する回答例を表す回答文と、の組のデータが大量に収集され、それらの組のうち対話においてよく問われる質問に対応する組を用いてＰＤＢが生成される。データの収集過程では、データ作成を行う作業者は、性別や年齢などの属性が異なる対話の相手に対して対話中に問う質問を作成する。生成された大量の質問は分析され、複数の対象に対して問われる頻度の高い質問が抽出され、抽出された質問を表す質問文と該質問に対する回答例を表す回答文との組がＰＤＢとして構築される。また、質問の作成時に質問のカテゴリや話題といった情報も生成されてもよく、その場合にはそれらの情報も付与されてもよい。図３にＰＤＢの一例を示す。図３に例示したＰＤＢでは、質問を表す質問文と、該質問に対する回答例を表す回答文と、当該質問のカテゴリである質問カテゴリとが対応付けられている。
【００１３】
≪議論構造の例示≫
本実施形態で例示する議論構造は、従来の議論モデル（例えば、参考文献２等参照）を拡張したグラフ構造であり、議論の階層構造を特定するデータである。
参考文献２：Walton, D., "Methods of argumentation," Cambridge University Press. 2013.
図４に例示するように、本実施形態で例示する議論構造は、議論を構成する階層構造の各命題の文章（発話テキスト）を表す複数のノードと、二つのノードに対応する二つの命題の間の「支持」／「不支持」の関係を表すリンクとを有する。リンクは矢印で表され、その向きが各命題の支持（不支持）方向を表す。すなわち、第１のノード（例えば「自動運転はすでに事故を起こしている」という命題を表すノード）から第２のノード（例えば「自動運転は危険だ」という命題を表すノード）へ向かう「支持」を表すリンクが設定されている場合、第１のノードが表す命題（例えば「自動運転はすでに事故を起こしている」という命題）は、第２のノードが表す命題（例えば「自動運転は危険だ」という命題）を支持している命題となる。また、第３のノード（例えば「自動運転は危険だ」という命題を表すノード）から第４のノード（例えば「自動運転に賛成」という命題を表すノード）へ向かう「不支持」を表すリンクが設定されている場合、第３のノードが表す命題（例えば「自動運転は危険だ」という命題）は、第４のノードが表す命題（例えば「自動運転に賛成」という命題）を支持していない命題となる。リンクで繋がれた二つのノードの一方を親ノードとすると他方は子ノードである。リンクの向きは子ノードから親ノードに向かう方向に設定されている。また、議論構造を対話処理に利用するために、各ノードには内部状態を表す３種類のフラグ（主張行為の有無を表すフラグｆ１、質問行為の有無を表すフラグｆ２、主張が受け入れられたか、打ち負かされたか、未定かを表すフラグｆ３）の情報が付加されている。フラグｆ１は２値を取り得、フラグｆ２は２値を取り得、フラグｆ３は３値を取り得る。このような議論構造は、例えば次の手順で構築される。初めにあるノード（例えば「自動運転に賛成」）が決定される。次に作業者がそのノードに対して「支持」／「不支持」の関係を持つノードを階層的に追加し、これらの関係を表す「支持」／「不支持」を表すリンクを設定していく。ノードが一層追加されるたびに、作業者が、リンクの設定された２つのノード間の論理的関係の整合性をチェックする。議論構造記憶部１２１には、特定の話題の１個の議論構造のみが格納されてもよいし、議論の話題の異なる複数個の議論構造が格納されてもよい。例えば、図４に例示した議論構造の話題は「自動運転に賛成か反対か」であるが、それ以外に「住むなら田舎か都会か」「旅行にいくなら北海道か沖縄か」「朝食ならごはんかパンか」「遊ぶなら遊園地か動物園か」などの話題の議論構造も設定され、議論構造記憶部１２１に格納されてもよい。また、議論構造記憶部１２１に格納される議論構造は、それぞれに対応する話題が特定可能とされている。例えば、何れかのノードが表す主張が話題を表していてもよいし、議論構造と当該議論構造に対応する話題とが対応付けられて議論構造記憶部１２１に格納されてもよい。
【００１４】
≪単語ベクトル辞書の例示≫
単語ベクトル辞書は単語をベクトルに変換するための辞書であり、ｗｏｒｄ２ｖｅｃ等の公知の自然言語のベクトル化手法に用いることのできるものであれば、どのようなものであってもよい。
【００１５】
≪分類器の例示≫
本実施形態の分類器は、与えられた入力発話文がどのような対話行為を表しているかを推定し、推定した対話行為を表すラベルである対話行為ラベルを出力する。すなわち、本実施形態の分類器は、入力発話文を対話行為ごとに分類して当該入力発話文に対応する対話行為ラベルを出力するものである。対話行為とは、対話中の発話が意味する行為を表す。対話行為の種別に限定はないが、本実施形態では、発話者の主張を行う（意思を伝える）主張行為（Inform）、発話者が質問を行う質問行為（Question）、発話者が同意する同意行為（Agree）、発話者が異議を唱える異議行為（Disagree）、その他の行為（Other）の５種類の対話行為を定義する例を示す。対話行為ラベルは、各対話行為を識別するラベルである。主張行為、質問行為、同意行為、異議行為、およびその他の行為に対応する対話行為ラベルを、それぞれ、Inform、Question、Agree、Disagree、およびOtherと定義する。分類器は、図５に例示するような、発話文と当該発話文に対応する対話行為ラベルとの組を含む学習データを用いた教師有り学習によって生成される。分類器の一例はＳＶＭ（support vector machine）であり、その学習方法も周知である。その他、周知の確率モデルや、ニューラルネットワーク等を用い、与えられた入力発話文に対応する対話行為ラベルを得て出力する分類器を用いてもよい。
【００１６】
＜初期処理＞
対話処理を開始する前に、議論（対話）の特定の話題を表す文である話題文と、当該特定の話題の議論を行うための導入となる対話の回数を特定する１以上の整数Ｍと、目的とする特定の話題の議論の回数（対話の回数）を特定する１以上の整数Ｎとが、対話管理部１４に入力される。
【００１７】
＜対話処理＞
図２を用いて本実施形態の対話処理を説明する。対話管理部１４は本実施形態の対話処理を管理する。自動対話装置１が対話処理部１０を有しない場合、対話管理部１４は、対話処理部１１による質問対話フェーズ（ＰＨ１）を実行した後に、対話処理部１２による議論対話フェーズ（ＰＨ２）を実行する。自動対話装置１が対話処理部１０を有する場合、対話管理部１４は、対話処理部１０による挨拶対話フェーズ（ＰＨ０）を実行した後に、対話処理部１１による質問対話フェーズを実行し、質問対話フェーズの後、対話処理部１２による議論対話フェーズを実行する。なお、自動対話装置１が対話処理部１０を有する場合であっても、挨拶対話フェーズの実行の有無を選択可能であってもよい。以下に、挨拶対話フェーズ（ＰＨ０）、質問対話フェーズ（ＰＨ１）、および議論対話フェーズ（ＰＨ２）の詳細を説明する。
【００１８】
≪挨拶対話フェーズ（ＰＨ０）≫
挨拶対話フェーズ（ＰＨ０）では、自動対話装置１が利用者に対して簡単な挨拶発話を行う。挨拶発話の例は、「こんにちは」などの挨拶、「私は〇〇です」などの自己紹介、「あなたのお名前はなんですか」などの名前の質問などである。自動対話装置１は、挨拶発話を１回のみ行ってもよいし、複数回行ってもよい。自動対話装置１が挨拶発話を行う場合、対話処理部１０が自動対話装置１の挨拶発話の内容を対話管理部１４に送り、対話管理部１４はその挨拶発話の内容を発話文生成部１５に送る。発話文生成部１５は、この挨拶発話の内容を表すテキストである出力発話文を生成して出力する。発話文生成部１５は、受け取った挨拶発話の内容を表す文章をそのまま出力発話文としてもよいし、対話が不自然とならないように、受け取った挨拶発話の内容を追加修正したものを出力発話文としてもよい。挨拶発話は自動対話装置１のみが行ってもよいし、自動対話装置１と利用者とが交互に行ってもよい。後者の場合、自動対話装置１が挨拶発話を行った後に利用者が挨拶発話を行ってもよいし、利用者が挨拶発話を行った後に自動対話装置１が挨拶発話を行ってもよい。利用者が挨拶発話を行った場合、その内容を表す入力発話文が対話管理部１４に入力され、対話処理部１０に送られる。これに対して自動対話装置１が挨拶発話を行う場合、対話処理部１０は自動対話装置１の挨拶発話の内容を対話管理部１４に送り、上述のように挨拶発話が行われる。対話処理部１０は、予め定められた自動対話装置１の挨拶発話の内容を出力してもよいし、入力された利用者の挨拶発話に応じて自動対話装置１の挨拶発話の内容を決定して出力してもよい（ステップＳ１０）。
【００１９】
≪質問対話フェーズ（ＰＨ１）≫
挨拶対話フェーズが実行された場合にはその終了後に質問対話フェーズ（ＰＨ１）が実行される。挨拶対話フェーズが実行されない場合には最初に質問対話フェーズが実行される。質問対話フェーズでは、対話処理部１１が、議論対話フェーズ（ＰＨ２）での特定の話題に関する議論（目的とする特定の話題の対話）を行うための導入となる対話で発話される発話文（第１の発話文）を対話管理部１４に出力する。対話管理部１４は発話文（第１の発話文）を発話文生成部１５に送り、発話文生成部１５は発話文（第１の発話文）に対応する出力発話文を出力する。以下詳細に説明する。
【００２０】
対話管理部１４は、初期処理で入力された議論の話題を表す話題文と整数Ｍとを対話処理部１１の発話生成部１１２に送る。これらを受け取った発話生成部１１２は、発話候補文ＤＢ記憶部１１１に記憶された発話候補文ＤＢ（発話候補文の集合）から、話題文（特定の話題）との関連性に基づいてＭ個（単数または複数）の発話文（第１の発話文）を選択して出力する。例えば、発話生成部１１２は、話題文との類似度が高い順に発話候補文ＤＢからＭ個の発話文を選択する。本実施形態の発話文（第１の発話文）それぞれは、質問文と回答文との組を含む。以下にこの処理の一例を示す。
（ステップ１−Ｉ）発話生成部１１２は、発話候補文ＤＢ記憶部１１１に記憶された発話候補文ＤＢ（例えば、図３）からすべての質問文を取得し、すべての質問文と話題文とについて単語ごとに形態素解析を行う。形態素解析には一例として出願人の開発した形態素解析器ＪＴＡＧを用いるが、ＭｅＣａｂなど一般的な周知技術を用いてもよい。
（ステップ１−ＩＩ）発話生成部１１２は、上述の形態素解析結果および単語ベクトル辞書記憶部１３に格納された単語ベクトル辞書を用い、Ｗｏｒｄ２ｖｅｃのような単語をベクトル化する公知の手法を用いて質問文と話題文の各単語をベクトル化して単語ベクトルを得、質問文および話題文のテキストごとに当該単語ベクトルを用いて文ベクトルを得る。単語ベクトルから文ベクトルを得る際、本実施形態においては当該単語ベクトルの平均をとる。ただし、平均を取る替わりにリカレントニューラルネットワーク等を用いて、当該単語ベクトルから文のベクトルを得るなど、別の方法を用いてもよい。質問文に対応する文ベクトルを「質問文ベクトル」と呼び、話題文に対応する文ベクトルを「話題文ベクトル」と呼ぶことにする。
（ステップ１−ＩＩＩ）発話生成部１１２は、各質問文ベクトルと話題文ベクトルとの類似度を計算し、質問文ベクトルを類似度が高い順にソートする。次に発話生成部１１２は、類似度が高い順にＭ個の質問文ベクトルを選択し、当該Ｍ個の質問文ベクトルに対応するＭ個の質問文とそれらに対応するＭ個の回答文とを得る。発話生成部１１２は、これらのＭ個の質問文と回答文との組を発話文として出力する。なお、類似度としては、ベクトル間の類似度としてよく用いられているコサイン類似度を用いることができるが、これは本発明を限定するものではなく、ベクトル間の類似度を示す他の類似度が用いられてもよい。
【００２１】
図７に議論の話題を表す話題文が「自動運転に賛成か反対か」である場合にステップ１−Ｉ，ＩＩで得られる質問文ベクトルと話題文ベクトルとの類似度を例示する。Ｍ＝３とすると、発話生成部１１２は、ステップ１−ＩＩＩで類似度の高い順に３個の質問文「車を運転しますか？」「自動車の運転は好きですか？」「通勤は電車を利用されていますか？」を選択し、これらとこれらに対応する回答文とを出力する。
【００２２】
発話生成部１１２は、Ｍが２以上の場合、Ｍ個の発話文（第１の発話文）それぞれと話題文（特定の話題）との関連性の高さの順位付けが可能なようにＭ個の発話文を出力してもよい。例えば、発話生成部１１２は、Ｍ個の発話文を話題文との関連性が高い順序で出力してもよいし、関連性が低い順序で出力してもよいし、各発話文の話題文との関連性の高さを表す情報を出力してもよい。例えば、関連性として類似度を用いる場合、発話生成部１１２は、Ｍ個の発話文を、上述の類似度の高い順序で出力してもよいし、上述の類似度の低い順序で出力してもよいし、各発話文に対応する類似度を出力してもよい（ステップＳ１１ａ）。
【００２３】
発話生成部１１２から出力されたＭ個の発話文（第１の発話文）は、対話管理部１４に入力される。対話管理部１４は、発話文が有する質問文および回答文を所定の順序で発話文生成部１５に送り、発話文生成部１５は送られた質問文および回答文の内容をそれぞれ表す出力発話文を生成して出力する。発話文生成部１５は、受け取った内容を表す文章をそのまま出力発話文としてもよいし、対話が不自然とならないように、受け取った発話文（質問文又は回答文）の内容を追加修正したものを出力発話文としてもよい。例えば、利用者の発話に対する反応を表現するために、回答文の内容を表す文章の文頭に「そうなんだ」などの相槌表現を付加してもよい。以下に詳細に説明する。
【００２４】
対話管理部１４は、上述のＭ個の発話文のうち、まだ選択されていない１個の発話文を選択する。例えば、Ｍ個の発話文それぞれと話題文との関連性の高さの順位付けが可能な場合、対話管理部１４は、話題文との関連性の低い順（特定の話題との関連性の低い順）で未選択の１個の発話文を選択する。例えば、対話管理部１４は、上述の類似度の低い順で未選択の１個の発話文を選択する。その他、対話管理部１４がランダムな順序で未選択の１個の発話文を選択してもよい（ステップＳ１１ｂ）。
【００２５】
対話管理部１４は、ステップＳ１１ｂで選択した発話文が有する質問文を発話文生成部１５に送り、発話文生成部１５は当該質問文の内容を表す出力発話文を生成して出力する（ステップＳ１１ｃ）。
【００２６】
ステップＳ１１ｃで出力された出力発話文に対して行われた利用者の発話内容は入力発話文として対話管理部１４に入力される。この入力発話文は破棄されてもよいし、図示していないメモリに保存されてもよい（ステップＳ１１ｄ）。
【００２７】
ステップＳ１１ｄの後、対話管理部１４は、ステップＳ１１ｂで選択した発話文が有する回答文を発話文生成部１５に送り、発話文生成部１５は当該回答文の内容を表す出力発話文を生成して出力する（ステップＳ１１ｅ）。
【００２８】
ステップＳ１１ｅで出力された出力発話文に対して行われた利用者の発話内容は入力発話文として対話管理部１４に入力される。この入力発話文は破棄されてもよいし、図示していないメモリに保存されてもよい（ステップＳ１１ｆ）。
【００２９】
対話管理部１４は、ステップＳ１１ｂからＳ１１ｆまでの処理がＭ回繰り返され、上述のＭ個の発話文がすべて選択されたかを判定する（ステップＳ１１ｇ）。ステップＳ１１ｂからＳ１１ｆまでの処理がＭ回繰り返されていない場合には、処理がステップＳ１１ｂに戻る。一方、ステップＳ１１ｂからＳ１１ｆまでの処理がＭ回繰り返された場合には、以下の議論対話フェーズ（ＰＨ２）に進む。
【００３０】
≪議論対話フェーズ（ＰＨ２）≫
質問対話フェーズ（ＰＨ１）ですべての発話文に対応する出力発話文が出力された後、議論対話フェーズ（ＰＨ２）が行われる。議論対話フェーズで自動対話装置１が発話を行う場合、対話処理部１２が、目的の議論（特定の話題の対話）で発話される発話文（第２の発話文）を対話管理部１４に出力する。対話管理部１４は発話文（第２の発話文）を発話文生成部１５に送り、発話文生成部１５は発話文（第２の発話文）に対応する出力発話文を出力する。これに対し、利用者が発話を行う場合、その内容は入力発話文として対話管理部１４に入力され、その内容に応じて次の自動対話装置１の発話内容が決定される。以下に詳細に説明する。
【００３１】
自動対話装置１が発話を行う場合（ステップＳ１２ａ）：
議論管理部１２２は、議論構造記憶部１２１に格納された議論構造に基づいて、自動対話装置１が行う発話内容を表す発話文（第２の発話文）を選択して出力する。例えば、議論構造記憶部１２１に１個の議論構造のみが格納されている場合、議論管理部１２２は、その議論構造に基づいて発話文（第２の発話文）を選択して出力する。例えば、議論構造記憶部１２１で複数個の議論構造と当該議論構造に対応する話題とが対応付けられて格納されている場合、議論管理部１２２は、対話管理部１４から話題文（議論の特定の話題を表す文）を取得し、当該話題文に対応する話題に対応付けられている議論構造に基づいて発話文（第２の発話文）を選択して出力する。本実施形態の場合、議論管理部１２２は、議論構造記憶部１２１に格納された議論構造から、所定の規則に従い、次に自動対話装置１が発話する内容を表す文章（発話テキスト）を表すノードを選択し、その対話行為を選択し、選択したノードの内部状態のフラグを選択した対話行為に対応する値に更新し（対話行為に対応する値のフラグを立て）、選択したノードの発話テキストおよび更新したフラグの情報を出力する。例えば、議論対話フェーズで利用者による発話が行われていない場合（例えば、議論対話フェーズの開始時点）、議論管理部１２２は、上記の議論構造の予め決められたノードを選択し、その対話行為として主張行為（Inform）を選択し、当該ノードのフラグｆ１を「主張行為が有ったこと」を表す値に更新し、選択したノードの発話テキストおよび更新したフラグｆ１の情報を出力する。この「予め決められたノード」の例はルートノード（例えば、図４の「自動運転に賛成」という主張を表すノード）である。例えば、議論対話フェーズで利用者による発話や自動対話装置１による発話が行われていた場合、議論管理部１２２は、最後に更新されたノードから定まるノードを選択し、その対話行為を選択し、選択したノードの内部状態のフラグを選択した対話行為に対応する値に更新し、選択したノードの発話テキストおよび更新したフラグの情報を出力する。例えば、議論管理部１２２は、最後に更新されたノードの子ノードを選択し、その対話行為として主張行為（Inform）を選択し、選択したノードの内部状態のフラグｆ１を「主張行為が有ったこと」を表す値に更新し、選択した子ノードの発話テキストおよび更新したフラグｆ１の情報を出力する。あるいは、例えば、議論管理部１２２は、最後に更新されたノードを選択し、その対話行為として質問行為（Question）を選択し、選択したノードの内部状態のフラグｆ２を「質問行為が有ったこと」を表す値に更新し、選択したノードの発話テキストおよび更新したフラグｆ２の情報を出力する。議論管理部１２２から出力されたノードの発話テキストおよび更新したフラグの情報は、対話管理部１４に送られ、さらに発話文生成部１５に送られる。発話文生成部１５は、例えば、送られた発話テキストおよびフラグの情報から、正規表現による変換規則を用いて出力発話文を生成して出力する。ただし、これは本発明を限定するものではなく、発話文生成部１５は、正規表現に限らず、例えば、何らかのIF-Thenルールに基づいた書き換え規則に従い、送られた発話テキストおよびフラグの情報から出力発話文を生成してもよい。例えば、フラグの情報が「質問行為が有ったこと」を表しており、発話テキストが肯定文あるとき、発話文生成部１５は、発話テキストを疑問形に変換した出力発話文を生成して出力する。また、直前の利用者の発話のフラグと自動対話装置１の発話のフラフ情報がともに「主張行為が有ったこと」を表しており、それらの発話テキストが表す立場が同じであれば、発話文生成部１５は、発話テキストの冒頭に順接を表す接続詞（例えば、「それに」など）を付与したものを出力発話文としてもよい。直前の利用者の発話のフラグと自動対話装置１の発話のフラフ情報がともに「主張行為が有ったこと」を表しており、それらの発話テキストが表す立場が異なる場合は発話テキストの文頭に逆接を表す接続詞（例えば、「でも」など）を付与したものを出力発話文としてもよい（ステップＳ１２ａ）。
【００３２】
利用者が発話を行う場合（ステップＳ１２ｂ）：
利用者が発話を行った場合、その発話内容は入力発話文として対話管理部１４に入力される。対話管理部１４は入力発話文を議論管理部１２２に送り、議論管理部１２２は入力発話文を対話行為推定部１２３および議論発話推定部１２４に送る。さらに議論管理部１２２は、ステップＳ１２ａで用いた議論構造を議論構造記憶部１２１から抽出して議論発話推定部１２４に送る。
【００３３】
対話行為推定部１２３は、送られた入力発話文を前述した分類器に入力し、当該入力発話文がどのような対話行為を表しているかを推定し、推定した対話行為を表すラベルである対話行為ラベルを出力する。図６に、分類器が与えられた各入力発話文に対して出力する対話行為ラベルを例示する。対話行為ラベルは議論管理部１２２に入力される。
【００３４】
議論発話推定部１２４は、送られた入力発話文と議論構造とを受け取り、当該議論構造のノードによって表される発話テキストの中で、入力発話文と最も意味的類似度が近いものを特定し、その発話テキストを表すノードを識別するノードＩＤを出力する。ノードＩＤは議論管理部１２２に入力される。以下にこの処理の一例を示す。
（ステップ２−Ｉ）議論発話推定部１２４は、入力発話文および議論構造のノードによって表される発話テキストについて単語ごとに形態素解析を行う。形態素解析にはＭｅＣａｂやＪＴＡＧなどを用いればよい。
（ステップ２−ＩＩ）議論発話推定部１２４は、上述の形態素解析結果および単語ベクトル辞書記憶部１３に格納された単語ベクトル辞書を用い、Ｗｏｒｄ２ｖｅｃのような単語をベクトル化する公知の手法を用いて、入力発話文および各発話テキストの各単語をベクトル化して単語ベクトルを得、入力発話文および各発話テキストのテキストごとに当該単語ベクトルを用いて文ベクトルを得る。入力発話文に対応する文ベクトルを「入力発話文ベクトル」と呼び、発話テキストに対応する文ベクトルを「発話テキストベクトル」と呼ぶことにする。
（ステップ２−ＩＩＩ）議論発話推定部１２４は、入力発話文ベクトルと各発話テキストベクトルとの類似度を計算し、入力発話文ベクトルとの類似度が最も大きな発話テキストベクトルを特定し、それに対応するノードのノードＩＤを出力する。類似度としてはコサイン類似度を用いることができるが、これは本発明を限定するものではない。
【００３５】
議論管理部１２２は、対話行為ラベルおよびノードＩＤを入力とし、議論構造記憶部１２１に格納された議論構造からノードＩＤによって識別されるノードを選択し、当該ノードの内部状態のフラグを対話行為ラベルが示す値に更新する。例えば、対話行為ラベルがInformならノードＩＤによって識別されるノードのフラグｆ１を「主張行為が有ったこと」を表す値に更新し、対話行為ラベルがQuestionならノードＩＤによって識別されるノードのフラグｆ２を「質問行為が有ったこと」を表す値に更新する（ステップＳ１２ｂ）。
【００３６】
次に、対話管理部１４は、ステップＳ１２ａおよびＳ１２ｂの処理がＮ回繰り返されたかを判断する（ステップＳ１２ｃ）。ここで、当該処理がＮ回繰り返されていないと判断された場合には、処理をステップＳ１２ａに戻す。一方、当該処理がＮ回繰り返されたと判断されたときには処理を終了する。この際、発話文生成部１５は、対話の終了を付ける発話（例えば「これで終わりです」など）を表す出力発話文を出力して対話を終了してもよい。
【００３７】
＜挨拶対話フェーズ（ＰＨ０），質問対話フェーズ（ＰＨ１），議論対話フェーズ（ＰＨ２）の具体例＞
図９から図１２に、本実施形態の自動対話技術で行われた挨拶対話フェーズ（ＰＨ０），質問対話フェーズ（ＰＨ１），議論対話フェーズ（ＰＨ２）の具体例を示す。ここで「Ｓ」は自動対話装置１が行った発話の内容を表す発話文（出力発話文）を表し、「Ｕ」は利用者が行った発話の内容を表す発話文（入力発話文）を表す。
【００３８】
＜本実施形態の特徴＞
従来の自動対話技術では、対話開始時に唐突に目的とする特定の話題の対話を始めるため、利用者がいきなりその話題についていくことが難しいという問題があった。一方、本実施形態で説明した自動対話技術では、目的とする特定の話題の議論（議論対話フェーズ）を開始する前に、発話候補文の集合から、当該特定の話題との関連性に基づいて単数または複数の発話文（第１の発話文）を選択し、議論の導入となる対話（質問対話フェーズ）を行うこととした。そのため、本実施形態では、唐突に目的とする特定の話題の議論の対話を始める場合に比べ、利用者を円滑に議論に導入させることができ、利用者が議論についていきやすいという利点がある。
【００３９】
また従来の自動対話技術では、対話開始時に議論対話システムと利用者との間の関係構築がされておらず、利用者はそのような相手に対して好き嫌い以上の議論をいきなり行わないといけないため、対話が円滑に進まないという問題があった。また関係構築がなされていない、例えば初対面での対話のような場面において、利用者は好き嫌い以上の考え方や価値観に関わるような発言を受けても、それがどのような背景のもとに出された発言なのか理解することが難しい。さらに、利用者は関係構築されていない相手に対して、その人の考え方や価値観を知ろうとする高いモチベーションを持ちづらく、そのため利用者が積極的に対話を進めることが難しい。これに対し、本実施形態では、目的とする特定の話題の議論（議論対話フェーズ）を開始する前に、議論の導入となる対話（質問対話フェーズ）を行うため、目的の議論が開始される前の質問対話フェーズで自動対話装置１と利用者との間の関係構築がある程度見込まれるといる利点がある。特に、発話候補文の集合がＰＤＢなどの個人的な内容を問う質問を表す質問文と、質問に対する回答を表す回答文と、の組を含み、質問対話フェーズでの発話文（第１発話文）のそれぞれが当該質問文と回答文との組を含む場合には、自動対話装置１と利用者との間の関係構築がより築き易いという利点がある。すなわち、利用者の個人的な内容を問う対話では利用者が自身のパーソナリティについて発話するため、利用者は自動対話装置１に対して親密さを感じ易い。このように目的とする特定の話題の議論を行う前に、利用者がパーソナリティに関する質問や自己開示を行うことで、対話の相手である自動対話装置１との親密性や関心を高め、初めて対話を円滑に行うことができる。またそれにより、利用者が相手（自動対話装置１）のことを知りたいという関心が増し、利用者の議論に対する動機付けが行われる。さらに、質問対話フェーズで複数の発話文（第１発話文）を特定の話題との関連性の低い順に出力し、すべての発話文（第１発話文）を出力した後に、議論対話フェーズでの発話文（第２の発話文）を出力こととした場合、対話内容が徐々に議論の話題に近づいていくため、議論の話題が唐突なものでなくなり、利用者がより円滑に議論を開始することができる。
【００４０】
また本実施形態では、目的とする「特定の話題の対話」が、特定の話題に関する議論である場合を例示したが、「特定の話題の対話」が議論以外の対話であってもよい。ただし、「特定の話題の対話」が、特定の話題に関する質問と回答とを複数回繰り返すことで利用者の考えを導き出すための対話である方が、質問対話フェーズを実行することによって得られる上述の効果が大きくなる。このような「特定の話題の対話」の例は、「特定の話題の深堀のための対話」、または「好き嫌い以上の、考え方や価値観に対する対話」などである。このような対話としては、例えば、インタビュー対話、カウンセリング、タスク指向型対話などを例示できる。なお、タスク指向型対話とは、特定のタスクの達成を目的とする対話を指す。例えば、「利用者にお薦めの音楽をかける」というタスクの達成を目的とする対話がタスク指向型対話である。より具体的には、例えば、利用者の「お勧めの音楽をかけて」という発話に対し、自動対話装置１が利用者のパーソナリティを知るための対話を行い、それによって取得した利用者のパーソナリティを考慮して音楽を選択して「○○はどうですか？」と返答する対話がタスク指向型対話の一例である。第２の対話処理部による、特定の話題の対話で発話される第２の発話文の選択方法も上述の実施形態に限定されるものではなく、その他の公知の自動対話技術（例えば、非特許文献２等）で用いられる方法を用いてもよい。
【００４１】
本実施形態では、「発話候補文の集合」が、個人的な内容を問う質問を表す質問文と、質問に対する回答を表す回答文と、の組を含むＰＤＢであり、対話処理部１１（第１の対話処理部）が、ＰＤＢ（発話候補文の集合）から、特定の話題との関連性に基づいて単数または複数の発話文（第１の発話文）を選択して出力することとした。しかしながら、第１の対話処理部として公知の雑談対話システムなどを用いてもよい。
【００４２】
前述のように、対話処理部（第１の対話処理部）が導入のための発話文（第１の発話文）を出力した後に、対話処理部１２（第２の対話処理部）が目的とする特定の話題の対話のための発話文（第２の発話文）を出力するが、この切り替えの制御方法は本実施形態のものに限定されない。すなわち、本実施形態では、質問対話フェーズ（ＰＨ１）での対話をＭ回行い、議論対話フェーズ（ＰＨ２）での対話をＮ回行うといったように（Ｍ，Ｎは１以上の任意の整数）、それぞれの対話の繰り返し回数を条件としてこの切り替えの制御を行った（図２）。ただし、この切り替えの制御は一例であり、その他の制御によってこの切り替えが行われてもよい。例えば、第１の対話処理部による第１の発話文の出力回数が繰り返し回数Ｍに達したかや、第２の対話処理部による第２の発話文の出力回数が繰り返し回数Ｎに達したかを判断するのではなく、第１の発話文を選択する際の基準となる「目的とする特定の話題」と第１の発話文との関連性の高さまたは類似度を基準として、第１の対話処理部による第１の発話文の出力を行うフェーズから、第２の対話処理部による第２の発話文の出力を行うフェーズへ遷移する時点が決定されてもよい。また、入力発話文と任意条件とのパタンマッチによって、第１の対話処理部による第１の発話文の出力を行うフェーズから、第２の対話処理部による第２の発話文の出力を行うフェーズへ遷移する時点や、第２の対話処理部による第２の発話文の出力を行うフェーズの終了時点が決定されてもよい。例えば、以下のような制御が行われてもよい。
・選択された第１の発話文と「目的とする特定の話題」との類似度が閾値以下になったときに第１の対話処理部による第１の発話文の出力を行うフェーズを終了する。
・第２の対話処理部による第２の発話文に対応する発話に対して利用者が納得したときに（例えば、入力発話文に対応する対話行為ラベルがDisagreeからAgreeになったとき）、第２の対話処理部による第２の発話文を出力するフェーズを終了する。
・議論管理部１２２で選択されるノードが議論構造の特定のノードに達したときに、第２の対話処理部による第２の発話文を出力するフェーズを終了する。
【００４３】
［第１実施形態の変形例］
第１実施形態では、第２の対話処理部による第２の発話文の出力を行うフェーズである議論対話フェーズ（ＰＨ２）においてのみ、対話行為推定部が入力発話文を分類器に入力し、当該入力発話文がどのような対話行為を表しているかを推定して対話行為ラベルを得た。しかしながら、第１の対話処理部による第１の発話文の出力を行うフェーズである質問対話フェーズ（ＰＨ１）やその前の挨拶対話フェーズ（ＰＨ０）でも対話行為推定部が入力発話文を分類器に入力し、当該入力発話文がどのような対話行為を表しているかを推定して対話行為ラベルを得てもよい。以下では、第１実施形態との相違点を中心に説明し、第１実施形態と共通する部分については同じ参照番号を用いて説明を省略する。
【００４４】
図１３に例示するように、この変形例の自動対話装置２は、対話処理部１１（第１の対話処理部）、対話処理部２２（第２の対話処理部）、単語ベクトル辞書記憶部２３、対話管理部１４、発話文生成部１５、対話行為推定部１２３を有する。自動対話装置２は、さらに対話処理部１０を有していてもよいし、有していなくてもよい。対話処理部２２は、議論構造記憶部１２１、議論管理部１２２、および議論発話推定部１２４を有する。
【００４５】
第１実施形態との相違点は、議論対話フェーズ（ＰＨ２）で入力された入力発話文だけではなく、質問対話フェーズ（ＰＨ１）で入力された入力発話文も対話行為推定部２２３に入力され、当該入力発話文を分類器に入力して、当該入力発話文がどのような対話行為を表しているかを推定して対話行為ラベルが得られる点である。さらに挨拶対話フェーズ（ＰＨ０）で入力された入力発話文も対話行為推定部２２３に入力され、当該入力発話文がどのような対話行為を表しているかを推定して対話行為ラベルが得られてもよい。議論対話フェーズ（ＰＨ２）で得られた対話行為ラベルの使用方法は第１実施形態で説明した通りである。例えば、質問対話フェーズ（ＰＨ１）で得られた対話行為ラベルは、対話処理部１１に送られ、対話処理部１１がそれを用いて質問対話フェーズ（ＰＨ１）での自動対話装置２の発話内容を特定してもよい。同様に、挨拶対話フェーズ（ＰＨ０）で得られた対話行為ラベルは、対話処理部１０に送られ、対話処理部１０がそれを用いて挨拶対話フェーズ（ＰＨ０）での自動対話装置２の発話内容を特定してもよい。
【００４６】
［その他の変形例等］
なお、本発明は上述の実施形態に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【００４７】
上記の各装置は、例えば、ＣＰＵ（central processing unit）等のプロセッサ（ハードウェア・プロセッサ）およびＲＡＭ（random-access memory）・ＲＯＭ（read-only memory）等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される。このコンピュータは１個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めＲＯＭ等に記録されていてもよい。また、ＣＰＵのようにプログラムが読み込まれることで機能構成を実現する電子回路（circuitry）ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。１個の装置を構成する電子回路が複数のＣＰＵを含んでいてもよい。
【００４８】
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な（non-transitory）記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
【００４９】
このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００５０】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。
【００５１】
コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されるのではなく、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
【符号の説明】
【００５２】
１，２  自動対話装置
１０，１１，１１，２２  対話処理部
【図１】
2020190585.tif 000003
【図２】
2020190585.tif 000004
【図３】
2020190585.tif 000005
【図４】
2020190585.tif 000006
【図５】
2020190585.tif 000007
【図６】
2020190585.tif 000008
【図７】
2020190585.tif 000009
【図８】
2020190585.tif 000010
【図９】
2020190585.tif 000011
【図１０】
2020190585.tif 000012
【図１１】
2020190585.tif 000013
【図１２】
2020190585.tif 000014
【図１３】
2020190585.tif 000015