(57)【要約】【課題】幅広い話題に対応した議論が可能な発話文を生成するための発話文生成モデルを学習することができるようにする。【解決手段】議論データ記憶部１００に、議論のテーマを示す議論発話文と、当該議論発話文に対する支持を示す支持発話文と、当該議論発話文に対する不支持を示す不支持発話文とのペアである議論データが複数格納され、学習部１３０が、複数の議論データに含まれる議論発話文及び支持発話文に基づいて、発話文を入力として発話文に対する支持発話文を生成する支持発話文生成モデルを学習すると共に、複数の議論データに含まれる議論発話文及び不支持発話文に基づいて、発話文を入力として発話文に対する不支持発話文を生成する不支持発話文生成モデルを学習する。【選択図】図１
2020106905.tif 000002
【特許請求の範囲】
【請求項１】
議論のテーマを示す議論発話文と、前記議論発話文に対する支持を示す支持発話文と、前記議論発話文に対する不支持を示す不支持発話文とのペアである議論データであって、前記議論発話文、前記支持発話文、及び前記不支持発話文の形式が同一である議論データが複数格納された議論データ記憶部と、
前記複数の議論データに含まれる前記議論発話文及び前記支持発話文に基づいて、発話文を入力として前記発話文に対する支持発話文を生成する支持発話文生成モデルを学習すると共に、前記複数の議論データに含まれる前記議論発話文及び前記不支持発話文に基づいて、発話文を入力として前記発話文に対する不支持発話文を生成する不支持発話文生成モデルを学習する学習部と、
を含む発話文生成モデル学習装置。
【請求項２】
前記議論発話文、前記支持発話文、及び前記不支持発話文の形式は、名詞相当語句、助詞相当語句、及び述語相当語句を連結した形式である
請求項１記載の発話文生成モデル学習装置。
【請求項３】
議論のテーマを示す議論発話文をワーカーに入力させるための画面を提示する議論発話文入力画面提示部と、
入力された前記議論発話文を受け付ける議論発話文入力部と、
入力された前記議論発話文に対する支持を示す支持発話文と、前記議論発話文に対する不支持を示す不支持発話文とを前記ワーカーに入力させるための画面を提示する支持発話文・不支持発話文入力画面提示部と、
入力された前記支持発話文及び不支持発話文を受け付ける支持発話文・不支持発話文入力部と、
入力された前記議論発話文と、前記議論発話文に対する支持発話文と、前記議論発話文に対する不支持発話文とのペアである議論データを記憶する議論データ記憶部と、
を含み、
前記議論発話文、前記支持発話文、及び前記不支持発話文の形式が同一である
発話文収集装置。
【請求項４】
議論データ記憶部に、議論のテーマを示す議論発話文と、前記議論発話文に対する支持を示す支持発話文と、前記議論発話文に対する不支持を示す不支持発話文とのペアである議論データが複数格納され、
学習部が、前記複数の議論データに含まれる前記議論発話文及び前記支持発話文に基づいて、発話文を入力として前記発話文に対する支持発話文を生成する支持発話文生成モデルを学習すると共に、前記複数の議論データに含まれる前記議論発話文及び前記不支持発話文に基づいて、発話文を入力として前記発話文に対する不支持発話文を生成する不支持発話文生成モデルを学習する
発話文生成モデル学習方法。
【請求項５】
議論発話文入力画面提示部が、議論のテーマを示す議論発話文をワーカーに入力させるための画面を提示し、
議論発話文入力部が、入力された前記議論発話文を受け付け、
支持発話文・不支持発話文入力画面提示部が、入力された前記議論発話文に対する支持を示す支持発話文と、前記議論発話文に対する不支持を示す不支持発話文とを前記ワーカーに入力させるための画面を提示し、
支持発話文・不支持発話文入力部が、入力された前記支持発話文及び不支持発話文を受け付け、
議論データ記憶部が、入力された前記議論発話文と、前記議論発話文に対する支持発話文と、前記議論発話文に対する不支持発話文とのペアである議論データを記憶し、
前記議論発話文、前記支持発話文、及び前記不支持発話文の形式が同一である
発話文収集方法。
【請求項６】
コンピュータを、請求項１若しくは２記載の発話文生成モデル学習装置、又は請求項３記載の発話文収集装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、発話文生成モデル学習装置、発話文収集装置、発話文生成モデル学習方法、発話文収集方法、及びプログラムに係り、特に、対話システムにおける発話文を生成するための発話文生成モデル学習装置、発話文収集装置、発話文生成モデル学習方法、発話文収集方法、及びプログラムに関する。
【背景技術】
【０００２】
対話システムにおいて、人間はコンピュータと対話を行い、種々の情報を得たり、要望を満たしたりする。
【０００３】
また、所定のタスクを達成するだけではなく、日常会話を行う対話システムも存在し、これらによって、人間は精神的な安定を得たり、承認欲を満たしたり、信頼関係を築いたりする。
【０００４】
このような対話システムの類型については非特許文献１に詳述されている。
【０００５】
一方、タスク達成や日常会話ではなく、議論をコンピュータによって実現するための研究も進められている。議論は人間の価値判断を変えたり、思考を整理したりする働きがあり、人間にとって重要な役割を果たす。
【０００６】
例えば、非特許文献２では、意見をノードとするグラフデータを用いて、ユーザ発話文をノードにマッピングし、マッピングされたノードと接続関係にあるノードをシステム発話文としてユーザに返すことで議論を行う。
【０００７】
グラフデータはあらかじめ設定した議論のテーマ（例えば、「永住するなら田舎よりも都会がよい」）に基づき、人手で作成する。人手で作成した議論のデータを用いることで、特定の話題についての議論が可能となる。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】河原達也，"音声対話システムの進化と淘汰-歴史と最近の技術動向-"，人工知能学会誌，Vol. 28，No. 1，2013，p45-51.
【非特許文献２】Ryuichiro Higashinaka 他，"Argumentative dialogue system based on argu-mentation structures"，Proceedings of The 21st Workshop on the Semantics and Pragmaticsof Dialogue，2017，p154-155.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、非特許文献２で提案されているような対話システムは、特定の話題（クローズドドメイン）について深い議論が可能である一方で、あらかじめ設定された特定の議論テーマを逸脱するユーザ発話文には適切に応答することができない、という問題があった。
【００１０】
この問題を解決するために、任意の話題について議論のためのグラフデータをあらかじめ作成しておくアプローチが考えられるが、議論のテーマは無数に存在するため現実的ではない。
【００１１】
本発明は上記の点に鑑みてなされたものであり、幅広い話題に対応した議論が可能な発話文を生成するための発話文生成モデルを学習することができる発話文生成モデル学習装置、発話文生成モデル学習方法、及びプログラムを提供することを目的とする。
【００１２】
また、本発明は、幅広い話題に対応した議論が可能な発話文を生成する発話文生成モデルを学習するための議論データを効率的に収集することができる発話文収集装置、発話文収集方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明に係る発話文生成モデル学習装置は、議論のテーマを示す議論発話文と、前記議論発話文に対する支持を示す支持発話文と、前記議論発話文に対する不支持を示す不支持発話文とのペアである議論データであって、前記議論発話文、前記支持発話文、及び前記不支持発話文の形式が同一である議論データが複数格納された議論データ記憶部と、前記複数の議論データに含まれる前記議論発話文及び前記支持発話文に基づいて、発話文を入力として前記発話文に対する支持発話文を生成する支持発話文生成モデルを学習すると共に、前記複数の議論データに含まれる前記議論発話文及び前記不支持発話文に基づいて、発話文を入力として前記発話文に対する不支持発話文を生成する不支持発話文生成モデルを学習する学習部と、を備えて構成される。
【００１４】
また、本発明に係る発話文生成モデル学習方法は、議論データ記憶部に、議論のテーマを示す議論発話文と、前記議論発話文に対する支持を示す支持発話文と、前記議論発話文に対する不支持を示す不支持発話文とのペアである議論データが複数格納され、学習部が、前記複数の議論データに含まれる前記議論発話文及び前記支持発話文に基づいて、発話文を入力として前記発話文に対する支持発話文を生成する支持発話文生成モデルを学習すると共に、前記複数の議論データに含まれる前記議論発話文及び前記不支持発話文に基づいて、発話文を入力として前記発話文に対する不支持発話文を生成する不支持発話文生成モデルを学習する。
【００１５】
本発明に係る発話文生成モデル学習装置及び発話文生成モデル学習方法によれば、議論データ記憶部に、議論のテーマを示す議論発話文と、当該議論発話文に対する支持を示す支持発話文と、当該議論発話文に対する不支持を示す不支持発話文とのペアである議論データが複数格納され、学習部が、複数の議論データに含まれる議論発話文及び支持発話文に基づいて、発話文を入力として発話文に対する支持発話文を生成する支持発話文生成モデルを学習すると共に、複数の議論データに含まれる議論発話文及び不支持発話文に基づいて、発話文を入力として発話文に対する不支持発話文を生成する不支持発話文生成モデルを学習する。
【００１６】
このように、議論のテーマを示す議論発話文と、当該議論発話文に対する支持を示す支持発話文と、当該議論発話文に対する不支持を示す不支持発話文とのペアである議論データが複数格納され、複数の議論データに含まれる議論発話文及び支持発話文に基づいて、発話文を入力として発話文に対する支持発話文を生成する支持発話文生成モデルを学習すると共に、複数の議論データに含まれる議論発話文及び不支持発話文に基づいて、発話文を入力として発話文に対する不支持発話文を生成する不支持発話文生成モデルを学習することにより、幅広い話題に対応した議論が可能な発話文を生成するための発話文生成モデルを学習することができる。
【００１７】
また、本発明に係る発話文生成モデル学習装置の前記議論発話文、前記支持発話文、及び前記不支持発話文の形式は、名詞相当語句、助詞相当語句、及び述語相当語句を連結した形式であるとすることができる。
【００１８】
本発明に係る発話文収集装置は、議論のテーマを示す議論発話文をワーカーに入力させるための画面を提示する議論発話文入力画面提示部と、入力された前記議論発話文を受け付ける議論発話文入力部と、入力された前記議論発話文に対する支持を示す支持発話文と、前記議論発話文に対する不支持を示す不支持発話文とを前記ワーカーに入力させるための画面を提示する支持発話文・不支持発話文入力画面提示部と、入力された前記支持発話文及び不支持発話文を受け付ける支持発話文・不支持発話文入力部と、入力された前記議論発話文と、前記議論発話文に対する支持発話文と、前記議論発話文に対する不支持発話文とのペアである議論データを記憶する議論データ記憶部と、を含み、前記議論発話文、前記支持発話文、及び前記不支持発話文の形式が同一であるとすることができる。
【００１９】
また、本発明に係る発話文収集方法は、議論発話文入力画面提示部が、議論のテーマを示す議論発話文をワーカーに入力させるための画面を提示し、議論発話文入力部が、入力された前記議論発話文を受け付け、支持発話文・不支持発話文入力画面提示部が、入力された前記議論発話文に対する支持を示す支持発話文と、前記議論発話文に対する不支持を示す不支持発話文とを前記ワーカーに入力させるための画面を提示し、支持発話文・不支持発話文入力部が、入力された前記支持発話文及び不支持発話文を受け付け、議論データ記憶部が、入力された前記議論発話文と、前記議論発話文に対する支持発話文と、前記議論発話文に対する不支持発話文とのペアである議論データを記憶し、前記議論発話文、前記支持発話文、及び前記不支持発話文の形式が同一である。
【００２０】
本発明に係る発話文収集装置及び発話文収集方法によれば、議論発話文入力画面提示部が、議論のテーマを示す議論発話文をワーカーに入力させるための画面を提示し、議論発話文入力部が、入力された議論発話文を受け付け、支持発話文・不支持発話文入力画面提示部が、入力された議論発話文に対する支持を示す支持発話文と、当該議論発話文に対する不支持を示す不支持発話文とを当該ワーカーに入力させるための画面を提示し、支持発話文・不支持発話文入力部が、入力された支持発話文及び不支持発話文を受け付ける。
【００２１】
そして、議論データ記憶部が、入力された議論発話文と、当該議論発話文に対する支持発話文と、当該議論発話文に対する不支持発話文とのペアである議論データを記憶し、当該議論発話文、当該支持発話文、及び当該不支持発話文の形式が同一である。
【００２２】
このように、議論のテーマを示す議論発話文をワーカーに入力させるための画面を提示し、入力された議論発話文を受け付け、入力された議論発話文に対する支持を示す支持発話文と、当該議論発話文に対する不支持を示す不支持発話文とを当該ワーカーに入力させるための画面を提示し、入力された支持発話文及び不支持発話文を受け付け、入力された議論発話文と、当該議論発話文に対する支持発話文と、当該議論発話文に対する不支持発話文とのペアである議論データを記憶し、当該議論発話文、当該支持発話文、及び当該不支持発話文の形式が同一であることにより、幅広い話題に対応した議論が可能な発話文を生成する発話文生成モデルを学習するための議論データを効率的に収集することができる。
【００２３】
本発明に係るプログラムは、上記の発話文生成モデル学習装置又は発話文収集装置の各部として機能させるためのプログラムである。
【発明の効果】
【００２４】
本発明の発話文生成モデル学習装置、発話文生成モデル学習方法、及びプログラムによれば、幅広い話題に対応した議論が可能な発話文を生成するための発話文生成モデルを学習することができる。
【００２５】
また、本発明の発話文収集装置、発話文収集方法、及びプログラムによれば、幅広い話題に対応した議論が可能な発話文を生成する発話文生成モデルを学習するための議論データを効率的に収集することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施の形態に係る発話文生成装置の構成を示す概略図である。
【図２】本発明の実施の形態に係る発話文収集装置の構成を示す概略図である。
【図３】本発明の実施の形態に係る収集する発話の一例を示す図である。
【図４】本発明の実施の形態に係るクラウドソーシングの各作業者が作成する発話とその手順の一例を示すイメージ図である。
【図５】本発明の実施の形態に係る議論発話を列挙したファイルの一例を示す図である。
【図６】本発明の実施の形態に係る支持発話を列挙したファイルの一例を示す図である。
【図７】本発明の実施の形態に係る議論発話を列挙したファイル（分かち書き済み）の一例を示す図である。
【図８】本発明の実施の形態に係る支持発話を列挙したファイル（分かち書き済み）の一例を示す図である。
【図９】本発明の実施の形態に係る発話文生成モデルの作成コマンドの一例を示す図である。
【図１０】本発明の実施の形態に係る作成される支持発話文生成モデルの一例を示す図である。
【図１１】本発明の実施の形態に係る入力されるユーザ発話の一例を示す図である。
【図１２】本発明の実施の形態に係る入力されたユーザ発話を分かち書きした一例を示す図である。
【図１３】本発明の実施の形態に係る支持発話及び不支持発話を生成するためのコマンドの一例を示す図である。
【図１４】本発明の実施の形態に係る支持発話文生成モデルの出力の一例を示す図である。
【図１５】本発明の実施の形態に係る不支持発話文生成モデルの出力の一例を示す図である。
【図１６】本発明の実施の形態に係る不支持発話文生成モデルの出力の一例を示す図である。
【図１７】本発明の実施の形態に係る発話文収集装置の発話文収集処理ルーチンを示すフローチャートである。
【図１８】本発明の実施の形態に係る発話文生成装置の発話文生成モデル学習処理ルーチンを示すフローチャートである。
【図１９】本発明の実施の形態に係る発話文生成装置の発話文生成処理ルーチンを示すフローチャートである。
【発明を実施するための形態】
【００２７】
以下、本発明の実施の形態について図面を用いて説明する。
【００２８】
＜本発明の実施の形態に係る発話文生成装置の概要＞
本発明の実施の形態に係る発話文生成装置は、入力として、任意のユーザ発話文をテキストとして受け取り、ユーザ発話文の支持を表す支持発話文、及びユーザ発話文の不支持を表す不支持発話文を、システム発話文としてテキストとして出力する。
【００２９】
出力は支持発話文、不支持発話文のそれぞれについて、確信度付きで上位Ｍ件（Ｍは任意の数）を出力することができる。
【００３０】
発話文生成装置は、クラウドソーシングで収集した議論データを用いて、発話文生成モデルを学習し、学習された発話文生成モデルを元に、発話文を生成する。
【００３１】
＜本発明の実施の形態に係る発話文生成装置の構成＞
図１を参照して、本発明の実施の形態に係る発話文生成装置１０の構成について説明する。図１は、本発明の実施の形態に係る発話文生成装置１０の構成を示すブロック図である。
【００３２】
発話文生成装置１０は、ＣＰＵと、ＲＡＭと、後述する発話文生成処理ルーチンを実行するためのプログラムを記憶したＲＯＭとを備えたコンピュータで構成され、機能的には次に示すように構成されている。
【００３３】
図１に示すように、本実施形態に係る発話文生成装置１０は、議論データ記憶部１００と、形態素解析部１１０と、分割部１２０と、学習部１３０と、発話文生成モデル記憶部１４０と、入力部１５０と、形態素解析部１６０と、発話文生成部１７０と、整形部１８０と、出力部１９０とを備えて構成される。
【００３４】
議論データ記憶部１００には、議論のテーマを示す議論発話文と、議論発話文に対する支持を示す支持発話文と、議論発話文に対する不支持を示す不支持発話文とのペアである議論データであって、議論発話文、支持発話文、及び不支持発話文の形式が同一である議論データが複数格納される。
【００３５】
具体的には、議論発話文、支持発話文、及び不支持発話文の形式を、「名詞相当語句」と「助詞相当語句」と「述語相当語句」とを連結した形式に限定して収集したものが、議論データ記憶部１００に記憶される。議論で扱う必要がある発話文は多岐にわたるためである。
【００３６】
収集する発話文の形式を限定することで、議論で扱われる話題を網羅的に効率良く収集することが可能となる。
【００３７】
当該形式において、「名詞相当語句」は議論の対象（テーマ）を表し、「助詞相当語句」と「述語相当語句」との連結は議論の対象に対する意見（支持や不支持）を表す。
【００３８】
名詞相当語句や述語相当語句は入れ子の構造（例えば、「汗を流すこと」、「ストレス解消に良い」）になってもよいため、幅広い発話文を表現可能になっている。
【００３９】
図２に収集対象の発話文の例を示す。図２では、説明のため名詞・助詞・述語の間に「＋」を記載しているが、発話文のデータを収集する際には不要である。
【００４０】
名詞や述語は、内部に助詞を含んでも、複数の単語から構成されてもよい。
【００４１】
発話文生成時の表現を統一するため、文末の表現は「ですます調」に揃えることが望ましい。
【００４２】
上記の形式に従って、クラウドソーシング２０（図１）により議論データが収集され、議論データ記憶部１００に議論データが複数格納される。
【００４３】
ここで、クラウドソーシング２０を用いて議論データを収集することについて説明する。図３は、クラウド上に設置された発話文収集装置３０の構成を示す概略図である。
【００４４】
発話文収集装置３０は、クラウド上のワーカー（議論データの入力を行う作業者）から、上記形式に従った議論データの入力を受け付け、議論データ記憶部１００に議論データを格納する。なお、通信に関しての説明は省略する。
【００４５】
発話文収集装置３０は、ＣＰＵと、ＲＡＭと、後述する発話文収集処理ルーチンを実行するためのプログラムを記憶したＲＯＭとを備えたコンピュータで構成され、機能的には次に示すように構成されている。
【００４６】
図３に示すように、本実施形態に係る発話文収集装置３０は、議論データ記憶部１００と、議論発話文入力画面提示部３００と、議論発話文入力部３１０と、支持発話文・不支持発話文入力画面提示部３２０と、支持発話文・不支持発話文入力部３３０とを備えて構成される。
【００４７】
議論発話文入力画面提示部３００は、議論発話文をワーカーに入力させるための画面を提示する。
【００４８】
図４は、クラウドソーシングの各ワーカーが作成する発話文とその手順を示すイメージ図である。
【００４９】
具体的には、議論発話文入力画面提示部３００は、３文の議論発話文をワーカーに入力させるための画面を提示する。これにより、各ワーカーは、まず議論のテーマとなる議論発話文を３文作成する。議論発話文は上記の発話文の形式に沿って作成する。
【００５０】
収集する３文に含まれる議論のテーマ（名詞相当語句）は異なるように指示するメッセージを画面に表示し、収集する発話文の網羅性を高める。
【００５１】
ワーカーには、議論のテーマを決める際には好きなもの・嫌いなもの・興味があるもの・問題だと思っているものなどを自由に考えてもらい、ワーカーは思い付いたものを使って議論発話文を作成する。
【００５２】
そして、ワーカーは、議論発話文をワーカーに入力させるための画面を経由して、作成した議論発話文を入力する。
【００５３】
議論発話文入力部３１０は、複数の議論発話文の入力を受け付ける。
【００５４】
そして、議論発話文入力部３１０は、受け付けた複数の議論発話文を、議論データ記憶部１００に格納する。
【００５５】
支持発話文・不支持発話文入力画面提示部３２０は、入力された議論発話文に対する支持を示す支持発話文と、当該議論発話文に対する不支持を示す不支持発話文とをワーカーに入力させるための画面を提示する。
【００５６】
具体的には、支持発話文・不支持発話文入力画面提示部３２０は、３文の議論発話文の各々について、支持発話文及び不支持発話文をワーカーに入力させるための画面を提示する。
【００５７】
これにより、ワーカーは、作成した議論発話文の各々に対し、議論発話文と同様の形式により議論発話文に対する賛成の理由を表す支持発話文、及び議論発話文に対する反対の理由を表す不支持発話文を１文ずつ作成する。
【００５８】
支持発話文と不支持発話文を作成することで、議論発話文に対する支持と不支持の発話文を収集することができる。
【００５９】
そして、ワーカーは、入力された議論発話文に対する支持を示す支持発話文と、当該議論発話文に対する不支持を示す不支持発話文とをワーカーに入力させるための画面を経由して、作成した支持発話文及び不支持発話文を入力する。
【００６０】
支持発話文・不支持発話文入力部３３０は、支持発話文及び不支持発話文の入力を受け付ける。
【００６１】
そして、支持発話文・不支持発話文入力部３３０は、受け付けた支持発話文及び不支持発話文を、これらに対する議論発話文に紐づけて議論データとして議論データ記憶部１００に格納する。
【００６２】
ワーカーは、議論発話文３文に対して支持発話文及び不支持発話文の作成を行うため、議論データ記憶部１００には各ワーカーにより作成された計９文（議論発話文３文＋支持発話文３文＋不支持発話文３文）の発話文が格納されることとなる。
【００６３】
このように発話文収集装置３０を用いて、この作業を複数のワーカーが行うことで、特定のワーカーに依存しない、網羅性の高い議論発話文と、それに対する支持発話文・不支持発話文を効率的に収集することができる。
【００６４】
データ数として、数万規模の議論発話文が収集されることが望ましいため、１万人以上が作業を行うことが望ましい。以下、１．５万人のワーカーが作業を行うことにより収集した議論データが議論データ記憶部１００に格納されているものである場合を例に説明を行う。
【００６５】
形態素解析部１１０は、議論データに含まれる各発話文に対して形態素解析を行う。
【００６６】
具体的には、形態素解析部１１０は、まず、議論データ記憶部１００から、収集した議論発話文と支持発話文のペアを複数取得し、図５及び図６に示すように、議論発話文を１行１発話文として列挙した議論発話テキストファイル、及び指示発話文を１行１発話文として列挙した支持発話テキストファイルを生成する。
【００６７】
このとき、議論発話文と指示発話文のペアが同じ行に列挙されるようにし、１行目は１ペア目、２行目は２ペア目、・・・となるようにする。
【００６８】
次に、形態素解析部１１０は、議論発話文・支持発話文を列挙したファイルの各発話文に形態素解析を行い、図７及び図８に示すようなスペース区切りの分かち書きファイルに変換する。
【００６９】
分かち書きには日本語の形態素解析が可能な任意のツールを使用することができるが、例えば形態素解析器としてＪＴＡＧ（参考文献１）を用いる。
［参考文献１］T. Fuchi and S. Takagi，Japanese Morphological Analyzer using Word Cooc-currence JTAG，Proc. of COLING-ACL，1998，p409-413.
【００７０】
同様に、形態素解析部１１０は、議論データ記憶部１００から収集した議論発話文と不支持発話文のペアを複数取得し、議論発話テキストファイル、及び１行１発話文として列挙した不支持発話テキストファイルを生成し、形態素解析を行い、スペース区切りの分かち書きファイルに変換する。
【００７１】
そして、形態素解析部１１０は、複数の分かち書きファイルを、分割部１２０に渡す。
【００７２】
分割部１２０は、複数の分かち書きファイルを、発話文生成モデルの学習に用いる訓練用データとチューニング用データとに分ける。
【００７３】
具体的には、分割部１２０は、複数の分かち書きファイルを所定の割合で訓練用データとチューニング用データとに分割する。分割部１２０は、例えば、訓練用データとなった分かち書きファイルには、ファイル名に“ｔｒａｉｎ”を付し、チューニング用データとなった分かち書きファイルには、ファイル名に“ｄｅｖ”を付すことで分割を明示する。
【００７４】
また、分割の比率は任意の値を設定可能であるが、ここでは９対１とする。
【００７５】
そして、分割部１２０は、訓練用データとチューニング用データとを学習部１３０に渡す。
【００７６】
学習部１３０は、複数の議論データに含まれる議論発話文及び支持発話文に基づいて、発話文を入力として当該発話文に対する支持発話文を生成する支持発話文生成モデルを学習すると共に、複数の議論データに含まれる当該議論発話文及び不支持発話文に基づいて、発話文を入力として当該発話文に対する不支持発話文を生成する不支持発話文生成モデルを学習する。
【００７７】
ここで、支持発話文生成モデル・不支持発話文生成モデルの学習方法は同様であるため、支持発話分生成モデルの学習について説明を行う．
【００７８】
具体的には、学習部１３０は、支持発話文生成モデルの学習には、テキストをテキストに変換するモデルを学習する機械翻訳等で使用される任意のアルゴリズムを使用することができる。例えば、参考文献２で提案されたｓｅｑ２ｓｅｑアルゴリズムを使用することができる。
［参考文献２］Vinyals O.，Le Q.，A neural conversational model，Proceedings of the In-ternational Conference on Machine Learning，Deep Learning Workshop，2015.
【００７９】
ここで、参考文献２のｓｅｑ２ｓｅｑは、入力されたシンボルの系列をベクトル化して１つのベクトルに統合した後、そのベクトルを用いて所望の系列を出力するモデルを学習するアルゴリズムである。
【００８０】
実装として様々なツールが存在するが、ここではオープンソースソフトウェアであるＯｐｅｎＮＭＴ−ｐｙ（参考文献３）を用いて説明を行う。
［参考文献３］Guillaume Klein et al.，OpenNMT: Open-Source Toolkit for Neural MachineTranslation，Proc. ACL，2017.
【００８１】
図９にそのコマンド例を示す。
【００８２】
ファイル名が“ｔｒａｉｎ”で始まるテキストファイルは訓練データを表し、“ｄｅｖ”で始まるテキストファイルはチューニング用データを表す。また、ファイル名に“ｓｒｃ”を含むテキストファイルは議論発話文データを表し、“ｔｇｔ”を含むデータは支持発話文データを表す。
【００８３】
“ｔｍｐ”は一時ファイルに対応し、“ｍｏｄｅｌ”は作成される発話文生成モデルに対応する。
【００８４】
図１０に作成されるモデルの例を示す。
【００８５】
“ｅ”、“ａｃｃ”、“ｐｐｌ”はそれぞれ、エポック数（学習ループの回数）、学習されたモデルの訓練データ中の正解率、及び、パープレキシティ（訓練データが学習されたモデルによってどの程度生成されやすいかを表す指標）に対応する。
【００８６】
ここで、学習部１３０は、正解率が最も高い１３エポック目のモデルを支持発話文生成モデルとして採用する。
【００８７】
学習部１３０は、支持発話文生成モデルと同様に、不支持発話文生成モデルを学習する。
【００８８】
そして、学習部１３０は、正解率が最も高い支持発話文生成モデル及び不支持発話文生成モデルを、発話文生成モデル記憶部１４０に格納する。
【００８９】
発話文生成モデル記憶部１４０には、学習済みの支持発話文生成モデル及び不支持発話文生成モデルが格納されている。
【００９０】
入力部１５０は、ユーザ発話文の入力を受け付ける。
【００９１】
具体的には、入力部１５０は、テキスト形式のユーザ発話文を入力として受け付ける。図１１に入力されるユーザ発話文の例を示す。各行が、入力されたユーザ発話文に対応している。
【００９２】
そして、入力部１５０は、受け付けたユーザ発話文を、形態素解析部１６０に渡す。
【００９３】
形態素解析部１６０は、入力部１５０が受け付けたユーザ発話文に対して形態素解析を行う。
【００９４】
具体的には、形態素解析部１６０は、ユーザ発話文に形態素解析を行い、図１２に示すようなスペース区切りの分かち書き文に変換する。
【００９５】
ここでは、ユーザ発話文を分かち書き文に変換するには、形態素解析部１１０と同じ形態素解析器（例えば、ＪＴＡＧ（参考文献１））を用いる。
【００９６】
図１２に複数のユーザ発話文が分かち書き文に変換された分かち書きファイルの例を示す。分かち書きファイルの各行に示す分かち書き文が、各ユーザ発話文に対応している。
【００９７】
そして、形態素解析部１６０は、分かち書き文を、発話文生成部１７０に渡す。
【００９８】
発話文生成部１７０は、分かち書き文を入力として、支持発話文生成モデル及び不支持発話文生成モデルを用いて、支持発話文及び不支持発話文を生成する。
【００９９】
具体的には、発話文生成部１７０は、まず、発話文生成モデル記憶部１４０から、学習済みの支持発話文生成モデル及び不支持発話文生成モデルを取得する。
【０１００】
次に、発話文生成部１７０は、支持発話文生成モデル及び不支持発話文生成モデルに分かち書き文を入力して、支持発話文及び不支持発話文を生成する。
【０１０１】
図１３に発話文生成のコマンド例を示す。“ｔｅｓｔ．ｓｒｃ．ｔｘｔ”は分かち書き文に変換されたユーザ発話文が記述されたファイル（図１２）である。
【０１０２】
図１３上部の１つ目のコマンドは、支持発話文を生成するためのコマンドであり、図１３下部の２つ目のコマンドは不支持発話文を生成するためのコマンドである。なお、これらのコマンドのオプションの意味については、参考文献３に記述されている。
【０１０３】
ここでは、支持発話文及び不支持発話文は、それぞれ上位５件出力するコマンドが記述されているが、任意の件数を指定することができる。
【０１０４】
発話文生成部１７０は、このような１つ目のコマンド及び２つ目のコマンドを実行することにより、複数の支持発話文及び不支持発話文を生成する。
【０１０５】
図１４に支持発話文の生成結果の例、図１５に不支持発話文の生成結果の例を示す。入力されたユーザ発話文に対して、適切な支持発話文及び不支持発話文が生成されていることが確認できる。
【０１０６】
そして、発話文生成部１７０は、生成した複数の支持発話文及び不支持発話文を、整形部１８０に渡す。
【０１０７】
整形部１８０は、発話文生成部１７０により生成された支持発話文及び不支持発話文を、所定の形式に整形する。
【０１０８】
具体的には、整形部１８０は、生成された複数の支持発話文及び不支持発話文を任意の形式（フォーマット）に整形する。
【０１０９】
形式は任意のものを使用可能であるが、例えば、ＪＳＯＮ形式を採用することができる。本実施形態では、ＪＳＯＮ形式を用いることとする。
【０１１０】
図１６は、入力されたユーザ発話文が「ペットを飼いたいと思っています。」の場合に発話文生成部１７０により生成され、整形部１８０により整形された支持発話文・不支持発話文の例である。
【０１１１】
図１６に示すように、発話文生成部１７０が生成した上位５件（Ｍ＝５の場合）の支持発話文及び不支持発話文とそのスコアが順に並べられている。また、“ｓｕｐｐｏｒｔ”、“ｓｃｏｒｅ  ｓｕｐｐｏｒｔ”、“ｎｏｎｓｕｐｐｏｒｔ”、“ｓｃｏｒｅ  ｎｏｎｓｕｐｐｏｒｔ”は、それぞれ支持発話文、支持発話文のスコア（生成確率の対数）、不支持発話文、不支持発話文のスコア（生成確率の対数）となっている。
【０１１２】
そして、整形部１８０は、整形した複数の支持発話文及び不支持発話文を、出力部１９０に渡す。
【０１１３】
出力部１９０は、整形部１８０により整形された複数の支持発話文及び不支持発話文を出力する。
【０１１４】
この出力を用いることで、対話システム（図示しない）は、ユーザの「ペットを飼いたいと思っています」という発話文に対し、例えば、「犬はかわいいですからね」という支持発話文を出力したり、「世話が大変です」という不支持の発話文を出力したりすることができる。
【０１１５】
＜本発明の実施の形態に係る発話文収集装置の作用＞
図１７は、本発明の実施の形態に係る発話文収集処理ルーチンを示すフローチャートである。発話文収集装置３０において、発話文収集処理ルーチンが実行される。
【０１１６】
ステップＳ１００において、議論発話文入力画面提示部３００は、議論発話文をワーカーに入力させるための画面を提示する。
【０１１７】
ステップＳ１１０において、議論発話文入力部３１０は、複数の議論発話文の入力を受け付ける。
【０１１８】
ステップＳ１２０において、発話文収集装置３０は、ｗに１を設定する。ここで、ｗは、カウンタである。
【０１１９】
ステップＳ１３０において、支持発話文・不支持発話文入力画面提示部３２０は、入力されたｗ番目の議論発話文に対する支持を示す支持発話文と、ｗ番目の議論発話文に対する不支持を示す不支持発話文とをワーカーに入力させるための画面を提示する。
【０１２０】
ステップＳ１４０において、支持発話文・不支持発話文入力部３３０は、支持発話文及び不支持発話文の入力を受け付ける。
【０１２１】
ステップＳ１５０において、発話文収集装置３０は、ｗ≧Ｎか否かを判定する（Ｎは入力された議論発話文の数であり、例えば、３である。）。
【０１２２】
ｗ≧Ｎでない場合（上記ステップＳ１５０のＮＯ）、ステップＳ１６０において、発話文収集装置３０は、ｗに１を加算し、ステップＳ１３０に戻る。
【０１２３】
一方、ｗ≧Ｎである場合（上記ステップＳ１５０のＹＥＳ）、ステップＳ１７０において、支持発話文・不支持発話文入力部３３０は、上記ステップＳ１４０により受け付けたＮ個の支持発話文及び不支持発話文を、これらに対する議論発話文に紐づけて議論データとして議論データ記憶部１００に格納する。
【０１２４】
＜本発明の実施の形態に係る発話文生成装置の作用＞
図１８は、本発明の実施の形態に係る発話文生成モデル学習処理ルーチンを示すフローチャートである。
【０１２５】
学習処理が開始されると、発話文生成装置１０において、図１８に示す発話文生成処理ルーチンが実行される。
【０１２６】
ステップＳ２００において、発話文生成装置１０は、ｔに１を設定する。ここで、ｔは、カウンタである。
【０１２７】
ステップＳ２１０において、形態素解析部１１０は、まず、議論データ記憶部１００から、収集した議論発話文と支持発話文のペアを複数取得する。
【０１２８】
ステップＳ２２０において、形態素解析部１１０は、議論発話文・支持発話文を列挙したファイルの各発話文に形態素解析を行う。
【０１２９】
ステップＳ２３０において、形態素解析部１１０は、上記ステップＳ２３０により形態素解析を行った議論発話文・支持発話文を列挙したファイルの各発話文を、スペース区切りの分かち書きファイルに変換する。
【０１３０】
ステップＳ２４０において、分割部１２０は、複数の分かち書きファイルを、発話文生成モデルの学習に用いる訓練用データとチューニング用データとに分ける。
【０１３１】
ステップＳ２５０において、学習部１３０は、複数の議論データに含まれる議論発話文及び支持発話文に基づいて、発話文を入力として当該発話文に対する支持発話文を生成する支持発話文生成モデルを学習する。
【０１３２】
ステップＳ２６０において、発話文生成装置１０は、ｔ≧所定数か否かを判定する。ここで、所定数は、学習を繰り返す回数である。
【０１３３】
ｔ≧所定数でない場合（上記ステップＳ２６０のＮＯ）、ステップＳ２７０において、発話文生成装置１０は、ｔに１を加算し、ステップＳ２１０に戻る。
【０１３４】
一方、ｔ≧所定数である場合（上記ステップＳ２６０のＹＥＳ）、ステップＳ２８０において、学習部１３０は、正解率が最も高い支持発話文生成モデルを、発話文生成モデル記憶部１４０に格納する。
【０１３５】
同様に、不支持発話文について上記ステップＳ２００〜Ｓ２８０の処理を行うことにより、学習部１３０は、複数の議論データに含まれる当該議論発話文及び不支持発話文に基づいて、発話文を入力として当該発話文に対する不支持発話文を生成する不支持発話文生成モデルを学習し、正解率が最も高い不支持発話文生成モデルを、発話文生成モデル記憶部１４０に格納する。
【０１３６】
図１９は、本発明の実施の形態に係る発話文生成処理ルーチンを示すフローチャートである。
【０１３７】
入力部１５０にユーザ発話が入力されると、発話文生成装置１０において、図１９に示す発話文生成処理ルーチンが実行される。
【０１３８】
ステップＳ３００において、入力部１５０は、ユーザ発話文の入力を受け付ける。
【０１３９】
ステップＳ３１０において、形態素解析部１６０は、上記ステップＳ３００により受け付けたユーザ発話文に対して形態素解析を行う。
【０１４０】
ステップＳ３２０において、形態素解析部１６０は、上記ステップＳ３１０により形態素解析されたユーザ発話文を、スペース区切りの分かち書き文に変換する。
【０１４１】
ステップＳ３３０において、発話文生成モデル記憶部１４０から、学習済みの支持発話文生成モデル及び不支持発話文生成モデルを取得する。
【０１４２】
ステップＳ３４０において、発話文生成部１７０は、支持発話文生成モデル及び不支持発話文生成モデルに分かち書き文を入力して、支持発話文及び不支持発話文を生成する。
【０１４３】
ステップＳ３５０において、上記ステップＳ３４０により生成された支持発話文及び不支持発話文を所定の形式に整形する。
【０１４４】
ステップＳ３６０において、出力部１９０は、上記ステップＳ３５０により整形された複数の支持発話文及び不支持発話文を出力する。
【０１４５】
以上説明したように、本発明の実施形態に係る発話文生成装置によれば、議論のテーマを示す議論発話文と、当該議論発話文に対する支持を示す支持発話文と、当該議論発話文に対する不支持を示す不支持発話文とのペアである議論データが複数格納され、複数の議論データに含まれる議論発話文及び支持発話文に基づいて、発話文を入力として発話文に対する支持発話文を生成する支持発話文生成モデルを学習すると共に、複数の議論データに含まれる議論発話文及び不支持発話文に基づいて、発話文を入力として発話文に対する不支持発話文を生成する不支持発話文生成モデルを学習することにより、幅広い話題に対応した議論が可能な発話文を生成するための発話文生成モデルを学習することができる。
【０１４６】
また、本発明の実施形態に係る発話文収集装置によれば、議論のテーマを示す議論発話文をワーカーに入力させるための画面を提示し、入力された議論発話文を受け付け、入力された議論発話文に対する支持を示す支持発話文と、当該議論発話文に対する不支持を示す不支持発話文とを当該ワーカーに入力させるための画面を提示し、入力された支持発話文及び不支持発話文を受け付け、入力された議論発話文と、当該議論発話文に対する支持発話文と、当該議論発話文に対する不支持発話文とのペアである議論データを記憶し、当該議論発話文、当該支持発話文、及び当該不支持発話文の形式が同一であることにより、幅広い話題に対応した議論が可能な発話文を生成する発話文生成モデルを学習するための議論データを効率的に収集することができる。
【０１４７】
すなわち、収集する議論のデータの形式を制限し、クラウドソーシングを利用することで、幅広い話題に対応可能な議論のデータを効率的に収集することができる。
【０１４８】
さらに、対話システムの構築において、議論のデータの形式が制限されていることで、Ｄｅｅｐ  Ｌｅａｒｎｉｎｇを用いた生成ベースの発話文生成が適用でき、単語や言い回しに影響されにくい頑健な議論対話システムを構築することができる。
【０１４９】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０１５０】
例えば、上記の実施の形態では、１台の発話文生成装置が、支持発話文生成モデル及び不支持発話文生成モデルの学習と発話文の生成とを行うように構成される場合を例に説明したが、これに限定されるものではなく、発話文の生成を行う発話文生成装置と支持発話文生成モデル及び不支持発話文生成モデルの学習を行う発話文生成モデル学習装置とが別々の装置となるように構成されてもよい。
【０１５１】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
【符号の説明】
【０１５２】
１０   発話文生成装置
２０   クラウドソーシング
３０   発話文収集装置
１００ 議論データ記憶部
１１０ 形態素解析部
１２０ 分割部
１３０ 学習部
１４０ 発話文生成モデル記憶部
１５０ 入力部
１６０ 形態素解析部
１７０ 発話文生成部
１８０ 整形部
１９０ 出力部
３００ 議論発話文入力画面提示部
３１０ 議論発話文入力部
３２０ 支持発話文・不支持発話文入力画面提示部
３３０ 支持発話文・不支持発話文入力部
【図１】
2020106905.tif 000003
【図２】
2020106905.tif 000004
【図３】
2020106905.tif 000005
【図４】
2020106905.tif 000006
【図５】
2020106905.tif 000007
【図６】
2020106905.tif 000008
【図７】
2020106905.tif 000009
【図８】
2020106905.tif 000010
【図９】
2020106905.tif 000011
【図１０】
2020106905.tif 000012
【図１１】
2020106905.tif 000013
【図１２】
2020106905.tif 000014
【図１３】
2020106905.tif 000015
【図１４】
2020106905.tif 000016
【図１５】
2020106905.tif 000017
【図１６】
2020106905.tif 000018
【図１７】
2020106905.tif 000019
【図１８】
2020106905.tif 000020
【図１９】
2020106905.tif 000021