(57)【要約】【課題】既存のシステムを、特定の目的に沿った特徴にしたがって動作するように補強できる対話システム補強装置を提供する。【解決手段】対話システム５２とともに動作し、対話システム５２による対話に特徴を与える対話システム補強装置５０は、対話システム５２に与えられる入力５４を受け、対話システム５２に代わって当該入力に対する応答を出力すべきか否かを判定する応答可否判定部６４と、応答可否判定部６４による判定が肯定であることに応答して、入力に基づいて予め準備された応答生成方法により応答を生成するための応答生成部７２と、応答生成部７２の出力と、対話システム５２の出力とを受けるように接続され、応答可否判定部６４の判定結果が肯定か否かにしたがって、応答生成部７２の出力と、対話システム５２の出力とを選択的に出力する選択部７４とを含む。【選択図】図１
2019194759.tif 000002
【特許請求の範囲】
【請求項１】
対話システムとともに動作し、前記対話システムによる対話に特徴を与える対話システム補強装置であって、
前記対話システムに与えられる入力を受け、前記対話システムに代わって当該入力に対する応答を出力すべきか否かを判定する第１の判定手段と、
前記第１の判定手段による判定が肯定であることに応答して、前記入力に基づいて予め準備された応答生成方法により応答を生成するための第１の応答生成手段と、
前記第１の応答生成手段の出力と、前記対話システムの出力とを受けるように接続され、前記第１の判定手段の判定結果が肯定か否かにしたがって、前記第１の応答生成手段の出力と、前記対話システムの出力とを選択的に出力する第１の選択手段とを含む、対話システム補強装置。
【請求項２】
前記第１の判定手段は、
単語をキーとして当該単語に関連する応答文候補を検索できるように複数の応答文候補を記憶した応答文候補記憶手段と、
前記入力から当該入力に含まれる単語を抽出する単語抽出手段と、
前記単語抽出手段により抽出された前記単語をキーとして前記応答文候補記憶手段から応答文候補を検索し取出すための応答文候補取出手段と、
前記応答文候補取出手段により取出された応答文候補があったか否かにしたがって、前記対話システムに代わって前記入力に対する応答を出力すべきか否かを判定するための手段とを含む、請求項１に記載の対話システム補強装置。
【請求項３】
前記第１の応答生成手段は、
前記応答文候補取出手段により取出された応答文候補の各々について、前記特徴を表している程度を示す特徴スコアを算出するためのスコア算出手段と、
前記応答文候補取出手段により取出された応答文候補の内で、前記スコア算出手段により最も高い特徴スコアが算出された応答文候補を選択し前記第１の選択手段に出力するための手段とを含む、請求項２に記載の対話システム補強装置。
【請求項４】
前記第１の応答生成手段は、
単語をキーとして当該単語に関連する応答文候補を検索できるように複数の応答文候補を記憶した応答文候補記憶手段と、
前記入力から当該入力に含まれる単語を抽出する単語抽出手段と、
前記単語抽出手段により抽出された前記単語をキーとして前記応答文候補記憶手段から応答文候補を検索し取出すための応答文候補取出手段と、
前記応答文候補取出手段により取出された応答文候補の各々について、前記特徴を表している程度を示す特徴スコアを算出するためのスコア算出手段と、
前記応答文候補取出手段により取出された応答文候補の内で、前記スコア算出手段により最も高い前記特徴スコアが算出された応答文候補を選択し前記第１の選択手段に出力するための手段とを含む、請求項１に記載の対話システム補強装置。
【請求項５】
前記第１の応答生成手段は、
複数の特定対話データ項目を記憶した特定対話データ項目記憶手段を含み、
前記特定対話データ項目の各々は、第１の応答文と、当該第１の応答文の後に出力が予定される第２の応答文と、少なくとも前記第１の応答文に含まれる第１の単語とを含み、
前記第１の応答生成手段はさらに、
前記入力に対する前記対話システムの出力するシステム応答文を受信するよう前記対話システムに接続され、当該システム応答文に含まれる単語を抽出するための単語抽出手段と、
前記単語抽出手段により抽出された前記単語を前記第１の単語として含む特定対話データ項目を前記特定対話データ項目記憶手段から取出すためのデータ項目取出手段と、
前記データ項目取出手段により取出された特定対話データ項目に含まれる前記第１の応答文を出力して前記第１の選択手段に入力するための手段と、
前記データ項目取出手段により前記特定対話データ項目が取出されたか否かを判定する第２の判定手段と、
前記第１の応答文を出力したことを示す出力履歴を記憶するための履歴記憶手段とを含み、
前記第１の判定手段は、前記対話システムに入力が与えられたことに応答して、前記履歴記憶手段を参照し、当該入力が前記第１の応答文の出力された直後の入力であるか否かにしたがって、前記対話システムに代わって当該入力に対する応答を出力すべきか否かを判定する第３の判定手段を含み、
前記対話システム補強装置はさらに、前記第２の判定手段により、前記対話システムに与えられた前記入力が前記第１の応答文の出力された直後の入力であると判定されたことに応答して、前記第１の応答文と同じ前記特定対話データ項目内の前記第２の応答文に基づいて応答を生成し、出力するための第２の応答生成手段を含み、
前記第１の選択手段は、前記第１の応答生成手段の出力と、前記対話システムの出力と、前記第２の応答生成手段の出力とを受けるように接続され、前記第２の判定手段の判定結果と前記第３の判定手段による判定結果との組合せにしたがって、前記第１の応答生成手段の出力と、前記第２の応答生成手段の出力と、前記対話システムの出力とを選択的に出力する第２の選択手段を含む、請求項１に記載の対話システム補強装置。
【請求項６】
請求項１〜請求項５のいずれか１項に記載の対話システム補強装置の各手段としてコンピュータを機能させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は対話システムに関し、特に、既存の対話システムと協調動作して、既存の対話システムに特徴を与える技術に関する。
【背景技術】
【０００２】
近年、機械学習及び深層学習等の技術の発達により、対話システムの開発が盛んに行なわれている。すでに様々な対話システムが利用可能となっている。例えばスマートフォン、パーソナルコンピュータ等、既存のシステムでこれらが利用可能になっているだけでなく、実体はパーソナルコンピュータと同様でありながら、モニタもキーボードも持たず、音声の入出力のみでユーザとの対話を行うようにした装置も市販されている。
【０００３】
これらの対話システムは、用途を限っていないことから、どんな発言に対してもそれなりの応答を返すことができる。しかし、特定の用途に使用することを考えると改善の余地が多分にある。
【０００４】
例えば子供に使って欲しい対話システムについて考える。そうしたシステムは、ただ漫然と子供と対話を行うだけでなく、対話をする中で、例えば両親、学校の先生のように、様々な知識を子供に伝えられるものであることが望ましい。すなわち、教育向けに特化した対話システムがあると望ましい。
【０００５】
このような教育向けの対話システムを開発する場合、既存の汎用的な対話システムがあったとしても、データベースを入れ替える等して応答の内容を大幅に変更したり、対話システム自体を開発し直したりする必要がある。対話システム自体を開発し直すためには高コストが必要となる。また既存の対話システムにおいて応答の内容を大幅に変更したりすると、せっかく開発した対話システムの良さを捨てることにもなりかねない。
【０００６】
したがって、既存の対話システムを用いて、教育向け等の特定のシーンに合致するような対話を可能にする技術が必要である。
【０００７】
既存の対話システムを利用して特定のシーンに合う対話を可能とする新たな対話システムを開発する従来技術が後掲の特許文献１に開示されている。特許文献１は、予め複数の特定のシーンにそれぞれ対応する複数のデータベースを準備し、人間からの指示に基づいて対話のシーンを選択する対話システムを開示している。この対話システムは、選択されたシーンに応じたデータベースを用いて、そのシーンに即した自然対話を構成する応答文を作成し、それを音声合成して出力する。
【０００８】
また後掲の特許文献２には、内部構成が明らかでないものを含む複数の対話システムを含む対話応答装置において、発話入力に適した対話システムから出力される応答候補を適切に選択するものが開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開2004-219714号公報
【特許文献２】特開2016-212541号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、従来技術には解決すべき以下のような問題が残っている。特許文献１に開示された技術の場合、既存のシステムがあっても利用できないという問題が有る。既存の対話システムが活用できないため、ゼロから各シーンに適した対話が可能な対話システムを開発する必要がある。既に対話システムを保有しているもの、又は既存の対話システムを活用したいものにとっては、対話システムの開発コストが高すぎるため、特許文献１の手法は採用できない。また、既存の対話システムで既にサービスの提供を開始している場合には、全く新しい対話システムを投入することはコスト面の問題を引き起こすだけでなく、ユーザから見たときの対話システムの動作に大きな変化が生じやすく、ユーザにとって使いにくくなるという問題もある。
【００１１】
一方、特許文献２は、既存の対話システムを活用する有用な方法を提案している。しかし、特許文献２では、既存の対話システムが再利用できる範囲は、その既存の対話システムがもともと目的としている活用範囲内に止まっているという問題がある。例えば、既存の対話システムにとって目的外のジャンルにその対話システムを特化させることはできない。
【００１２】
したがって本発明の目的は、既存のシステムを、特定の目的に沿った特徴にしたがって動作するように補強できる対話システム補強装置及びそのためのプログラムを提供することである。
【課題を解決するための手段】
【００１３】
本発明の第１の局面に係る対話システム補強装置は、対話システムとともに動作し、対話システムによる対話に特徴を与える対話システム補強装置であって、対話システムに与えられる入力を受け、対話システムに代わって当該入力に対する応答を出力すべきか否かを判定する第１の判定手段と、第１の判定手段による判定が肯定であることに応答して、入力に基づいて予め準備された応答生成方法により応答を生成するための第１の応答生成手段と、第１の応答生成手段の出力と、対話システムの出力とを受けるように接続され、第１の判定手段の判定結果が肯定か否かにしたがって、第１の応答生成手段の出力と、対話システムの出力とを選択的に出力する第１の選択手段とを含む。
【００１４】
好ましくは、第１の判定手段は、単語をキーとして当該単語に関連する応答文候補を検索できるように複数の応答文候補を記憶した応答文候補記憶手段と、入力から当該入力に含まれる単語を抽出する単語抽出手段と、単語抽出手段により抽出された単語をキーとして応答文候補記憶手段から応答文候補を検索し取出すための応答文候補取出手段と、応答文候補取出手段により取出された応答文候補があったか否かにしたがって、対話システムに代わって入力に対する応答を出力すべきか否かを判定するための手段とを含む。
【００１５】
より好ましくは、第１の応答生成手段は、応答文候補取出手段により取出された応答文候補の各々について、特徴を表している程度を示す特徴スコアを算出するためのスコア算出手段と、応答文候補取出手段により取出された応答文候補の内で、スコア算出手段により最も高い特徴スコアが算出された応答文候補を選択し第１の選択手段に出力するための手段とを含む。
【００１６】
さらに好ましくは、第１の応答生成手段は、単語をキーとして当該単語に関連する応答文候補を検索できるように複数の応答文候補を記憶した応答文候補記憶手段と、入力から当該入力に含まれる単語を抽出する単語抽出手段と、単語抽出手段により抽出された単語をキーとして応答文候補記憶手段から応答文候補を検索し取出すための応答文候補取出手段と、応答文候補取出手段により取出された応答文候補の各々について、特徴を表している程度を示す特徴スコアを算出するためのスコア算出手段と、応答文候補取出手段により取出された応答文候補の内で、スコア算出手段により最も高い特徴スコアが算出された応答文候補を選択し第１の選択手段に出力するための手段とを含む。
【００１７】
好ましくは、第１の応答生成手段は、複数の特定対話データ項目を記憶した特定対話データ項目記憶手段を含み、特定対話データ項目の各々は、第１の応答文と、当該第１の応答文の後に出力が予定される第２の応答文と、少なくとも第１の応答文に含まれる第１の単語とを含み、第１の応答生成手段はさらに、入力に対する対話システムの出力するシステム応答文を受信するよう対話システムに接続され、当該システム応答文に含まれる単語を抽出するための単語抽出手段と、単語抽出手段により抽出された単語を第１の単語として含む特定対話データ項目を特定対話データ項目記憶手段から取出すためのデータ項目取出手段と、データ項目取出手段により取出された特定対話データ項目に含まれる第１の応答文を出力して第１の選択手段に入力するための手段と、データ項目取出手段により特定対話データ項目が取出されたか否かを判定する第２の判定手段と、第１の応答文を出力したことを示す出力履歴を記憶するための履歴記憶手段とを含み、第１の判定手段は、対話システムに入力が与えられたことに応答して、履歴記憶手段を参照し、当該入力が第１の応答文の出力された直後の入力であるか否かにしたがって、対話システムに代わって当該入力に対する応答を出力すべきか否かを判定する第３の判定手段を含み、対話システム補強装置はさらに、第２の判定手段により、対話システムに与えられた入力が第１の応答文の出力された直後の入力であると判定されたことに応答して、第１の応答文と同じ特定対話データ項目内の第２の応答文に基づいて応答を生成し、出力するための第２の応答生成手段を含み、第１の選択手段は、第１の応答生成手段の出力と、対話システムの出力と、第２の応答生成手段の出力とを受けるように接続され、第２の判定手段の判定結果と第３の判定手段による判定結果との組合せにしたがって、第１の応答生成手段の出力と、第２の応答生成手段の出力と、対話システムの出力とを選択的に出力する第２の選択手段を含む。
【００１８】
本発明の第２の局面に係るコンピュータプログラム（以下単に「プログラム」という。）は、コンピュータを、上記したいずれかの装置の各手段として機能させる。
【００１９】
上記した本願発明の技術的範囲及びその均等範囲は、以下の実施の形態の説明と図面とにより一層明らかになる。
【図面の簡単な説明】
【００２０】
【図１】図１は、本願発明の第１の実施の形態に係る対話システム補強装置の概略ブロック図である。
【図２】図２は、第１の実施の形態で使用されるニュースＤＢの構成を示す模式図である。
【図３】図３は、第１の実施の形態に係る対話システム補強装置としてコンピュータを機能させるプログラムの制御構造を示すフローチャートである。
【図４】図４は、第１の実施の形態において各応答候補のニュースらしさを示すスコアを算出するための判定モデルの学習システムを示すブロック図である。
【図５】図５は、図４に示す判定モデルを構成するマルチカラム畳み込みニューラルネットワーク（Multi Column Convolutional Neural Network：ＭＣＮＮ）の概略構造を示す図である。
【図６】図６は、図５に示すＭＣＮＮの１カラムの概略構成及び動作原理を説明する模式図である。
【図７】図７は、図５及び図６に示す判定モデルに入力される素性である第２の単語ベクトル列の生成方法を示す模式図である。
【図８】図８は、図５及び図６に示す判定モデルに入力される素性である第３の単語ベクトル列の生成方法を示す模式図である。
【図９】図９は、図５及び図６に示す判定モデルに入力される素性である第４の単語ベクトル列の生成方法を示す模式図である。
【図１０】図１０は、コンピュータを、本発明の第１の実施の形態に係る対話システムにおけるニュースタイトルのスコアリング部として機能させるプログラムのフローチャートである。
【図１１】図１１は、コンピュータを第１の実施の形態に係る対話システムにおける応答生成部として機能させるプログラムのフローチャートである。
【図１２】図１２は、本発明の第２の実施の形態に係る対話システム補強装置である質問回答システムの概略構成を示すブロック図である。
【図１３】図１３は、図１２に示す質問回答ＤＢの概略構成を示す模式図である。
【図１４】図１４は、図１２に示す質問処理部の構成を示すブロック図である。
【図１５】図１５は、図１２に示す状態判定部の構成を示すブロック図である。
【図１６】図１６は、図１２に示す回答処理部の構成を示すブロック図である。
【図１７】図１７は、コンピュータを図１２に示す質問処理部として機能させるプログラムの制御構造を示すフローチャートである。
【図１８】図１８は、コンピュータを図１２に示す状態判定部及び回答処理部として機能させるプログラムの制御構造を示すフローチャートである。
【図１９】図１９は、第１及び第２の実施の形態を実現するコンピュータシステムの外観を示す図である。
【図２０】図２０は、図１９に示すコンピュータの内部構成を示すブロック図である。
【発明を実施するための形態】
【００２１】
以下の説明及び図面では、同一の部品には同一の参照番号を付してある。したがって、それらについての詳細な説明は繰返さない。
【００２２】
＜第１の実施の形態＞
［概要］
第１の実施の形態に係る対話システム補強装置は、既存の対話システムと協調動作することにより、既存の対話システムがニュースに特化した対話を行うようにする。具体的には、この対話システム補強装置は、ユーザの発話がニュースで使われているような話題だった場合に、ニュースの情報を与え、同時にそのニュースに関する応答文を出力する。これを実現するために、まず入力された発話文から話題となる語を抽出する。その語が予め準備したニュース情報が入ったデータベース又はそれに類するもの（以下単に「データベース」と呼ぶ。）に含まれている場合には、そのデータベースから関連する情報を取得する。例えば入力に「テロ」という話題が含まれていた場合、「仏財務相：テロ資金の監視、日本と協力確認」というニュースタイトルを取得できる。この文を、ユーザの発話文とみなして既存の対話システムへ入力し、応答文を取得する。取得された応答文と、データベースから取得した文とを用いて、例えば「『仏財務相：テロ資金の監視、日本と協力確認』っていうニュースがあるみたい。テロ組織に対する監視を一層強化し、捜査当局は、ロンドンやマドリードで起きたような無差別テロを食い止めるらしい。」という応答文を生成し出力する。その結果、既存の対話システムがニュースに特化した対話システムとして利用できる。
【００２３】
［構成］
《全体構成》
図１を参照して、第１の実施の形態に係る対話システム補強装置５０は、既存の対話システム５２と協調動作し、対話システム５２をニュースに特化した対話システムとして機能させる。対話システム補強装置５０は、ニュースＤＢ６６と、対話履歴ＤＢ６８とを含む。ニュースＤＢ６６の構成については後述するが、単語を検索キーとして、その単語を含むニュースタイトルが取り出せるように予め準備したデータベースである。ニュースＤＢ６６にはニュースタイトルが多数格納されている。
【００２４】
対話システム補強装置５０はさらに、自然言語文からなる入力５４を受けて、入力５４からトピックを抽出するためのトピック抽出部６０と、トピック抽出部６０が抽出したトピックと一致する単語を持つニュースタイトルをニュースＤＢ６６から取得するためのニュースタイトル取得部６２と、ニュースタイトル取得部６２によるニュースタイトルの取得結果に基づいて、入力５４に対して対話システム補強装置５０の機能を用いて応答するか、対話システム５２に応答させるかを示す選択信号７６を出力するための応答可否判定部６４とを含む。本実施の形態では、選択信号７６は対話システム補強装置５０の機能を用いて応答すべきときには第１の値をとり、そうでないときには第２の値をとるものとする。応答可否判定部６４は、対話システム補強装置５０の機能を用いて応答すべきときには、ニュースタイトル取得部６２により選択されたニュースタイトル７８を出力する。
【００２５】
なお、トピックとは、入力５４に含まれる名詞のことを言い、会話中に頻繁に出現するような名詞を除いた、トピックを特定するのにふさわしい名詞のことを言う。１つの入力５４から複数のトピックを抽出してもよい。その場合には、ニュースＤＢ６６からそれらトピックの各々をキーとしてニュースタイトルを取得し、それらの和集合を使用する。またニュースタイトルを取得する代わりに、ニュース本文を取得し、それらの和集合を使用しても良い。
【００２６】
対話システム補強装置５０はさらに、選択信号７６に応答して、選択信号７６が第１の値のときには応答可否判定部６４が出力するニュースタイトル７８を選択し、第２の値のときには入力５４を選択して対話システム５２に選択後の入力８０として入力するための選択部７０と、選択信号７６が第１の値のときには対話システム５２が出力する応答８２と応答可否判定部６４が出力するニュースタイトル７８とを用いて応答８４を生成し出力するための応答生成部７２と、選択信号７６が第１の値のときには応答８４を、選択信号７６が第２の値のときには対話システム５２の出力する応答８２を、それぞれ選択してこの対話システムの応答５６として出力するための選択部７４とを含む。
【００２７】
《ニュースＤＢ６６》
図２を参照して、ニュースＤＢ６６は、複数のレコードを含む。各レコードは、キーと、そのキーを検索のためのキーとして取出可能なニュースタイトルとを含む。各レコードのキーは、対応するニュースタイトル中の単語（トピック）からなる。１つのレコードは複数のキーを持つことが可能であり、何れかのキーが検索のためのキーワードと一致すればそのレコードをニュースＤＢ６６から取出すことができる。
【００２８】
《プログラム構成》
コンピュータをこの対話システム補強装置５０として機能させるためのプログラムは以下のような制御構造を持つ。図３を参照して、このプログラムは、入力５４からトピックである単語を抽出するステップ９０と、ステップ９０で抽出したトピックを検索キーとしてニュースＤＢ６６を検索することにより、そのトピックをキーに持つレコードのニュースタイトルをニュースＤＢ６６から取得するステップ９２と、ステップ９２において取得されたニュースタイトルの各々に対して以下の処理９６を実行するステップ９４とを含む。なお、ステップ９２において１つもレコードが見つからなかった場合には、処理９６は１回も実行されず制御はステップ９４の次（後述するステップ９８）に進む。
【００２９】
処理９６は、対話履歴ＤＢ６８を参照することにより、処理対象のニュースタイトルが最近の履歴にあるか否かを判定し、結果に応じて制御の流れを分岐させるステップ１３０と、ステップ１３０の判定が否定であるときに、処理対象のニュースタイトルのニュースらしさを示すスコアを算出するステップ１３２と、ステップ１３０の判定が肯定であるときに、処理対象のニュースタイトルのニュースらしさスコアを０とするステップ１３４とを含む。ステップ１３２又はステップ１３４が終了すると処理対象のニュースタイトルに対する処理９６が終了する。なお、ステップ９２で取得されたニュースタイトルがない場合には、前述の通り処理９６は１回も実行されず、したがってスコアがついたニュースタイトルは得られない。
【００３０】
このプログラムはさらに、ステップ９４の結果、ニュースらしさスコア＞０であるニュースレコードがあるか否かを判定し、結果にしたがって判定結果を示す選択信号７６を出力し、制御の流れを分岐させるステップ９８を含む。判定結果が肯定であれば選択信号７６は第１の値となり、そうでなければ選択信号７６は第２の値となる。このプログラムはさらに、ステップ９８の判定が肯定であるときに、スコア最大のニュースタイトルを選択して図１に示すニュースタイトル７８として選択部７０に出力するステップ１００と、ステップ９８の判定結果が肯定であるときに、対話システム５２が出力する応答８２と、ニュースタイトル７８とを組合せることにより応答８４を生成し選択部７４に出力するステップ１０２と、ステップ９８の判定が否定であるときに、入力５４を選択して対話システム５２に与え、その出力である応答８２を得るステップ１０４とを含む。
【００３１】
このプログラムはさらに、ステップ９８での判定が肯定のときにはステップ１０２で生成された応答を、そうでないときにはステップ１０４で得られた応答を、それぞれ選択して応答５６として出力するステップ１０６と、入力５４、応答５６、及びニュースタイトル７８を対話履歴ＤＢ６８に履歴として登録するステップ１０８とを含む。応答可否判定部６４での判定が否定であるときにはニュースタイトル７８はない。したがってこの場合、対話履歴ＤＢ６８には入力５４、応答５６、及び空の文字列、又はニュースタイトルが選択されなかったことを示すシンボルが履歴として登録される。
【００３２】
《ニュースらしさの算出のためのモデル学習》
図３のステップ１３２におけるスコアの算出は、図４に示すニュースらしさ判定モデル１６８を使用して行われる。このニュースらしさ判定モデル１６８として、本実施の形態では、いわゆるディープニューラルネットワークの一種である畳み込みニューラルネットワーク、より具体的には、マルチカラム畳み込みニューラルネットワーク（Multicolumn Convolutional Neural Network：ＭＣＮＮ）を用いる。
【００３３】
〈モデル学習部１６２〉
図４にこのニュースらしさ判定モデル１６８の学習を行うためのモデル学習装置１５０の構成を示す。また図５にはニュースらしさ判定モデル１６８の概略構成を示す。図６にはニュースらしさ判定モデル１６８の１カラムの構成を示す。図７、図８及び図９には、このニュースらしさ判定モデル１６８の各カラムへの入力となる素性の導出方法を説明するための図を示す。
【００３４】
図４を参照して、モデル学習装置１５０は、ニュース用語辞書１６４及び接続語辞書１６６と、これらを参照して、大規模テキストデータベース１６０から接続語辞書１６６に記憶された接続語のいずれかと、ニュース用語辞書１６４に記憶されたニュース用語のいずれかが連続して現れるテキストを抽出して各テキストにそのテキストが含むニュース用語をラベルとして付して出力し、あわせて、接続語とニュース用語とが連続したものが何も含まれないテキストをラベルを付さずに抽出するテキスト抽出・分類部１９０と、テキスト抽出・分類部１９０から出力されるラベル付きのテキスト及びラベルなしのテキストをニュースらしさ判定モデル１６８の学習用として記憶する学習用テキスト記憶部１９２と、学習用テキスト記憶部１９２に記憶された学習用テキストを用いてニュースらしさ判定モデル１６８の学習を行う学習処理部１９４とを含む。テキストにラベルが付いている場合にはそのテキストはニュースタイトルであり、ラベルが付されていない場合にはそのテキストはニュースタイトルではない。学習用テキスト記憶部１９２に記憶される学習用テキストでは、これらはそれぞれニュースタイトルを含むテキストの正例及び負例としてのラベルが付される。例えばこのラベルは、正例は（１，０）であり、負例が（０，１）である。学習処理部１９４によるニュースらしさ判定モデル１６８の学習は、モデルがマルチカラム畳み込みニューラルネットワークである点、及び素性として何を使用するかという点を除き、通常のニューラルネットワークと同様、誤差逆伝搬法により行われる。
【００３５】
図４を参照して、図３に示すステップ１３２は、図３のステップ９２で取出されたニュースタイトルを記憶するためのニュースタイトル記憶部１７０と、ニュースらしさ判定モデル１６８を使用して各ニュースタイトルのニュースらしさスコアを算出しスコア付ニュースタイトル１７４を出力するためのニュースタイトルスコアリング部１７２とを用いて行われる。
【００３６】
本実施の形態では、テキスト抽出・分類部１９０は、プログラムにより実現される。このプログラムは、接続語辞書１６６に記憶された接続語のいずれかの後にニュース用語辞書１６４に記憶されたニュース用語のいずれかが現れる単語列を含むテキストを大規模テキストデータベース１６０において検索するための検索式を生成し、この検索式を用いて大規模テキストデータベース１６０から条件を満たすテキストを全て抽出するステップと、抽出されたテキストの各々に対し、そのテキストの内、接続語の前までを抽出し、検索されたニュース用語をラベルとして付したテキストを学習データとして学習用テキスト記憶部１９２に格納するステップとを含む。
【００３７】
図５を参照して、ニュースらしさ判定モデル１６８を構成するＭＣＮＮ２２０は、第１〜第４の畳み込みニューラルネットワーク群２６０、２６２、２６４、２６６からなるニューラルネットワーク層２３０と、ニューラルネットワーク層２３０内の各ニューラルネットワークの出力を線形に連結する連結層２３２と、連結層２３２の出力するベクトルに対してSoftmax関数を適用して、ニュースタイトル候補が真のニュースタイトルか否かを０〜１の間のスコアで評価し出力するSoftmax層２３４とを含む。
【００３８】
第１の畳み込みニューラルネットワーク群２６０は、後述する第１の単語ベクトル列を受ける第１カラムのサブネットワークを含む。第２の畳み込みニューラルネットワーク群２６２は、後述する３つの第２の単語ベクトル列をそれぞれ受ける第２、第３及び第４カラムのサブネットワークを含む。第３の畳み込みニューラルネットワーク群２６４は、後述する４つの第３の単語ベクトル列をそれぞれ受ける第５、第６、第７、及び第８カラムのサブネットワークを含む。第４の畳み込みニューラルネットワーク群２６６は、後述する３つの第４の単語ベクトル列を受ける第９、第１０、及び第１１カラムのサブネットワークを含む。これらサブネットワークは、いずれも畳み込みニューラルネットワークである。
【００３９】
ニューラルネットワーク層２３０の各畳み込みニューラルネットワークの出力は連結層２３２で単純に線形に連結され、Softmax層２３４への入力ベクトルとなる。
【００４０】
ＭＣＮＮ２２０についてその機能をより詳細に説明する。図６に、代表として第３の畳み込みニューラルネットワーク群２６４の１カラムを構成するサブネットワーク２８０の構成を示す。第３の畳み込みニューラルネットワーク群２６４内の他のカラム及び他の畳み込みニューラルネットワーク群２６０、２６２、及び２６６に含まれる各カラムも、図６に示すものと同じ構造を持つ。ここでは、説明を分かりやすくするために、サブネットワーク２８０が、入力層２９０、畳み込み層２９２、及びプーリング層２９４のみからなっているものとするが、この３つの層を複数個備えているものでもよい。
【００４１】
入力層２９０には、学習データの内、ニュースタイトルから得られた素性の各単語を単語ベクトルに変換して得られた単語ベクトル列Ｘ１、Ｘ２、…、Ｘ|ｔ|が入力される。この単語ベクトル列Ｘ１、Ｘ２、…、Ｘ|ｔ|は、行列Ｔ＝［Ｘ１、Ｘ２、…、Ｘ|ｔ|］Ｔとして表される。この行列Ｔに対して、Ｍ個の素性マップが適用される。素性マップはベクトルであって、各素性マップの要素であるベクトルＯは連続する単語ベクトルからなるＮグラムに対してｆj（１≦ｊ≦Ｍ）で示されるフィルタを適用しながらＮグラム３１０を移動させることにより計算される。Ｎは任意の自然数だが、本実施の形態ではＮ＝３とする。すなわちＯは次の式により表される。
【００４２】
【数１】
2019194759.tif 000003
なお、素性マップの全体にわたりＮを等しくしてもよいし、異なるものがあってもよい。Ｎとしては、２、３、４及び５程度が適当である。本実施の形態では、重み行列は各カラムセット内の畳み込みニューラルネットワークにおいて等しくしてある。これらは互いに異なっていても良いが、実際、このように等しくした方が、各重み行列を独立に学習する場合より精度が高くなる。なお、畳み込みニューラルネットワークで使用するフィルタとしては、どのようなものを用いることもできる。画像処理で用いるフィルタを流用してもよい。
【００４３】
この素性マップの各々について、次のプーリング層２９４は、いわゆるマックスプーリングを行う。すなわち、プーリング層２９４は、例えば素性マップｆＭの要素の内、最大の要素３２０を選択し、要素３３０として取出す。これを素性マップの各々に対して行うことによって、要素３３０、…、３３２を取出し、これらをｆ１からｆＭの順番に連接して連結層２３２にベクトル３４２として出力する。各畳み込みニューラルネットワークからはこのようにして得られたベクトル３４０、…、３４２、…、３４４が連結層２３２に出力される。連結層２３２は、ベクトル３４０、…、３４２、…、３４４を単純に線形に連結してSoftmax層２３４に与える。なお、プーリング層２９４としてはマックスプーリングを行うものの方が平均値を採用するものよりも精度が高いと言われている。しかし、もちろん平均値を採用するようにしてもよいし、下位の層の性質をよく表現するものであれば、他の代表値を用いるようにしてもよい。
【００４４】
〈学習のための単語ベクトル列〉
学習データは、上記した１１種類の単語ベクトル列と、その単語ベクトル列が得られたテキストが正例か負例かを示すラベルとからなる。
【００４５】
ＭＣＮＮへの入力となる単語列は以下のとおりである。ただしこの表で、ＴＮＰはニュースタイトル候補に含まれる名詞を含む文節を表し、ＰＲＥＤはニュースタイトル候補に含まれる述語テンプレートの述語を含む文節を表す。述語テンプレートとは、名詞と結び付いてフレーズを構成する言語単位のことをいう。具体例は後述する。なお、負例の場合には、ニュース用単語に相当するものに代えて例えば文の主語を使用して単語ベクトル列を生成する。
【００４６】
【表１】
2019194759.tif 000004
これら単語列はいずれも、文全体から抽出される。なお、本実施の形態では、ニュースタイトル候補のテキストは所定の複数文という場合もある。したがってＴＮＰとＰＲＥＤが別文に存在することもあり得る。本実施の形態では、そうした場合でも上記した単語列が得られるようにするために、これら複数文の全ての係り受け木のルートを仮想的なルートノードで互いに結合し、１つの係り受け木を用いて上記単語列を得るようにした。
【００４７】
図７を参照して、第１の単語列は、ニュースタイトル候補３６０から抽出されたニュース用語の名詞を含む文節３７０と述語テンプレートの述語３７２との対からなる。本実施の形態では、単語の出現順序を保存し、かつ演算量を少なくするために以下の全ての単語ベクトルとして単語埋め込みベクトルを使用する。
【００４８】
図７を参照して、第２の種類の単語ベクトル列であるカラム番号２−４の単語ベクトル列は、ニュースタイトル候補３６０中での単語列の出現順序に基づき、文頭からニュースタイトル候補の名詞を含む文節３７０の直前までの単語列３８０、文節３７０と述語３７２の間の単語列３８２、及び述語３７２の後の単語から文末までの単語列３８４を含む。したがって、第２の単語ベクトル列は３つの単語埋め込みベクトル列として得られる。
【００４９】
図８を参照して、第３の単語ベクトル列であるカラム５−８の単語ベクトル列は、ニュースタイトル候補３６０の係り受け木に基づき、ニュースタイトル候補の名詞を含む文節３７０に係る部分木４２０、述語３７２の係り先の部分木４１０、文節３７０と述語３７２の間の係り受けパス４２２、及びその他４２４からそれぞれ得られる単語列を含む。したがってこの例では第３の単語ベクトル列は４つの単語埋め込みベクトル列として得られる。
【００５０】
図９を参照して、第４の単語ベクトル列であるカラム９−１１の単語ベクトル列は、ニュースタイトル候補３６０において、述語３７２を含む文節内の単語列と、述語３７２の前の単語列４４０と、後の単語列４４２とを含む。したがってこの場合、第４の単語ベクトル列は３つの単語埋め込みベクトル列として得られる。
【００５１】
学習時には、ＭＣＮＮ２２０の各カラムにはそれぞれの各カラムへの入力ベクトルが与えられ、ＭＣＮＮ２２０の出力がそのテキストのラベルと比較され、通常の誤差逆伝播方式によって、誤差関数の値が小さくなる方向にＭＣＮＮ２２０を構成する各ウェイトとバイアスの値が修正される。
【００５２】
なお、本実施の形態では、ＭＣＮＮ２２０の出力は２つである。出力はSoftMax関数により実装されているため、第１の出力は、ニュースタイトル候補がニュースタイトルである確率を表し、第２の出力はニュースタイトル候補がニュースタイトルでない確率を表す。本実施の形態では、ニュースタイトルである確率を各ニュースタイトルのスコアとして用いる。
【００５３】
図３に示すステップ１３２、すなわち図４に示すニュースタイトルスコアリング部１７２は、コンピュータと協働するプログラムにより実現される。図１０を参照して、このプログラムは、ニュースタイトル記憶部１７０に記憶された各ニュースタイトルに対して以下の処理４６２を実行するステップ４６０を含む。
【００５４】
処理４６２は、ニュースらしさ判定モデル１６８への入力パラメータ（第１〜第４の単語ベクトル列）を生成するステップ４７０、これらパラメータをニュースらしさ判定モデル１６８に入力するステップ４７２、及びニュースらしさ判定モデル１６８の出力するラベル（ニュースタイトルである確率）をニュースタイトルにスコアとして付すステップ４７４を含む。
【００５５】
《応答生成部７２》
図１に示す応答生成部７２もコンピュータとの協働によりコンピュータを応答生成部７２として機能させるプログラムにより実現される。図１１を参照して、このプログラムは、予め準備されている応答のための応答フォームのいずれかをランダムに選択するステップ５００を含む。この応答フォームは、例えば「［第１スロット］というニュースがありますよ。［第２スロット］」のようなものである。第１スロットにはニュースタイトルが代入され、第２スロットには対話システム５２の出力が代入される。
【００５６】
このプログラムはさらに、応答フォームの第１スロットにニュースタイトルを代入するステップ５０２、及び応答フォームの第２スロットに対話システム５２の出力した応答を代入するステップ５０４を含む。
【００５７】
［動作］
第１の実施の形態に係る対話システム補強装置５０は以下の様に動作する。対話システム補強装置５０は、入力５４のトピックに適合するニュースタイトルがニュースＤＢ６６に格納されているとき（適合時）とそうでないとき（非適合時）とで異なる。以下、最初に適合時、次に非適合時の対話システム補強装置５０の動作を説明する。なお、この動作に先立ち、図４に示すニュースらしさ判定モデル１６８の学習は完了しているものとする。
【００５８】
《適合時の対話システム補強装置５０の動作》
図１を参照して、適合時には対話システム補強装置５０は以下のように動作する。入力５４が入力されると、トピック抽出部６０は入力５４からトピックを抽出しニュースタイトル取得部６２に与える（図３（以下同様）のステップ９０）。ニュースタイトル取得部６２は、トピック抽出部６０が抽出したトピックと一致する単語を持つニュースタイトルをニュースＤＢ６６から取得し応答可否判定部６４に与える（ステップ９２）。応答可否判定部６４は、ニュースタイトル取得部６２によるニュースタイトルの取得結果に基づいて、入力５４に対して対話システム補強装置５０の機能を用いて応答するか、対話システム５２に応答させるかを示す選択信号７６を出力する。
【００５９】
応答可否判定部６４はこのとき、以下のように動作する。図３を参照して、応答可否判定部６４は、ニュースタイトル取得部６２から与えられたニュースタイトルの各々について、そのニュースタイトルを含む履歴が対話履歴ＤＢ６８にあるか否かを判定する（ステップ１３０）。もしあれば（ステップ１３０でＹＥＳ）そのニュースタイトルのニュースらしさスコアを０とする（ステップ１３４）。もしなければ（ステップ１３０でＮＯ）、そのニュースタイトルのニュースらしさスコアを図４に示すニュースらしさ判定モデル１６８及びニュースタイトルスコアリング部１７２を用いて算出し、そのニュースタイトルに付して出力する。
【００６０】
再び図３を参照して、スコア＞０のニュースタイトルがあれば（ステップ９８でＹＥＳ）、スコア最大のニュースタイトルを対話システム５２に入力する（ステップ１００）。適合時にはステップ９８の判定はＹＥＳとなり、ステップ１００が実行される。このとき、図１に示す選択信号７６は第１の値となる。選択部７０は入力５４ではなくニュースタイトル７８を選択して選択後の入力８０として対話システム５２に与える。対話システム５２は選択後の入力８０に応答して応答８２を出力する。
【００６１】
図３のステップ１０２において、応答生成部７２はランダムに選択した応答フォームの第１スロットにニュースタイトル７８を、第２スロットに応答８２を、それぞれ代入して応答８４を生成し選択部７４に与える。選択部７４は選択信号７６の値が第１の値なので応答８２ではなく応答８４を選択し、応答５６として出力する。
【００６２】
すなわち適合時には、入力５４に対する対話システム５２の応答が出力されるのではない。そうではなく、入力５４に含まれるトピックに適合するニュースタイトルがニュースＤＢ６６から選択され、そのニュースタイトル７８が入力５４の代わりに対話システム５２に与えられる。このときの対話システム５２の応答が応答生成部７２に与えられ、ニュースタイトル７８と組合されて応答８４が生成され、出力される。
【００６３】
例えば入力５４が「テロは怖いね」というものであり、ニュースタイトルに「仏財務相：テロ資金の監視、日本と協力確認」というものである場合を想定する。また、ランダムに選択された応答フォームが「［第１スロット］っていうニュースがあるみたい。［第２スロット］」というものであり、このときの対話システム５２からの応答８２が「テロ組織に対する監視を一層強化し、捜査当局は、ロンドンやマドリードで起きたような無差別テロを食い止めるらしい。」というものである場合を想定する。すると、最終的に得られる応答は「『仏財務相：テロ資金の監視、日本と協力確認』っていうニュースがあるみたい。テロ組織に対する監視を一層強化し、捜査当局は、ロンドンやマドリードで起きたような無差別テロを食い止めるらしい。」となる。
【００６４】
《非適合時の対話システム補強装置５０の動作》
非適合時には、対話システム補強装置５０は以下のように動作する。入力５４が入力されてから応答可否判定部６４の動作までは上記適合時と同様である。しかし非適合時には、図３のステップ９８の判定がＮＯとなり、図１に示す選択信号７６は第２の値となる。その結果、選択部７０はニュースタイトル７８ではなく入力５４を選択し、選択後の入力８０として対話システム５２に入力する。選択信号７６が第２の値なので応答生成部７２は何も動作しない。同様に選択信号７６が第２の値なので選択部７４は応答８４ではなく応答８２を選択し、応答５６として出力する。
【００６５】
すなわちこの場合には、仮に関連したニュースタイトルが見つからない場合には、「テロ組織に対する監視を一層強化し、捜査当局は、ロンドンやマドリードで起きたような無差別テロを食い止めるらしい。」という応答が出力されることになる。
【００６６】
以上のようにこの実施の形態に係る対話システム補強装置５０によれば、既存の対話システムに対話システム補強装置５０を追加することにより、ニュースのような特定の分野での応答に特徴を持つ対話システムを実現できる。ここではニュースについての実施の形態を挙げたが、例えばスポーツ関係のニュース、芸能関係のニュース、科学技術分野のニュース、政治関係のニュース等、さらにニュースの分野を細分化したものにも本実施の形態を適用できる。さらに、ニュースに限らず、特定の地域・時代に関してニュースタイトル的にまとめた電子データが利用可能であれば、そうした情報に特化した対話システムとして既存の対話システムを動作させることもできる。この際、既存の対話システムを改造したり、新たに作ったりする必要はない。
【００６７】
＜第２の実施の形態＞
［概要］
本願発明の第２の実施の形態に係る対話システム補強装置は、既存の対話システムと協調動作して、既存の対話システムが教育に特化した対話を行うようにする。具体的には、対話の最中に教育的に重要な単語が出現した際に、それに関する問題を出題し、ユーザに回答させる。問題を出題可能とするため、予め教科書データを用いて質問回答データベースを作成しておく。ユーザの発話から話題（トピック）を抽出する。トピックに含まれる名詞が質問回答データベースにキーとして含まれる場合、その単語に関連する質問文を質問回答データベースから抽出する。ユーザの発話文自体は既存の対話システムへ入力し、応答文を取得する。質問回答データベースから抽出した質問文と、対話システムからの応答文を組合せて応答文を生成し、出力する。質問文を出力した後のユーザの入力に対しては、トピックとなる単語を抽出し、その単語が直前に出題した問題（質問文）の回答かどうかを質問回答データベースで確認し、正解か不正解に応じて文を生成する。また、質問回答データベースから該当の回答文も抽出する。正解か不正解かに応じた文と、質問回答データベースから抽出した回答文を組合せて応答文を生成し、出力する。
【００６８】
［構成］
《全体構成》
図１２を参照して、第２の実施の形態に係る対話システム補強装置５３０は、既存の対話システム５２への入力５４及びこの入力５４に対する対話システム５２の出力（応答）を受けるように接続され、対話システム５２による対話の最中に教育的に重要な単語が出現した際に、それに関する問題をユーザに対して出題し、ユーザに回答させる処理を行う。さらに対話システム補強装置５３０は、この出題の直後にユーザから入力された入力５４が直前の問題に対して正しい回答か否かを判定し、正解か不正解かに応じた文と、質問に対する回答文を組合せて応答文を生成し、出力する。すなわち、第１の実施の形態に係る対話システム補強装置５０と異なり、この第２の実施の形態に係る対話システム補強装置５３０は、ユーザとの２回の対話により、ユーザに対して何らかの教育的な知識を伝えるよう既存の対話システム５２の機能を補強する。
【００６９】
対話システム補強装置５３０は、入力５４が与えられたことに応答して、入力５４が質問に対する回答か否かを判定し、判定信号５６０を出力する状態判定部５４２を含む。判定信号５６０は入力５４が質問に対する回答であるときには第１の値、そうでないときには第２の値であるものとする。対話システム補強装置５３０はさらに、対話システム５２による対話の履歴を保存している対話履歴ＤＢ５４４と、教科書データ等から作成した、質問とその回答との対を多数記憶する質問回答ＤＢ５４８と、判定信号５６０に応答して、判定信号５６０が第１の値のときには入力５４を入力５６４に、そうでないときには入力５６２に、それぞれ分岐させるための分岐部５４０とを含む。
【００７０】
対話システム補強装置５３０はさらに、判定信号５６０の値が第２の値であるときに、対話システム５２が入力５６２に対して出力する応答５６６を受け、対話履歴ＤＢ５４４及び質問回答ＤＢ５４８を用いて、ユーザに対して入力５４に関連した質問を提示することが可能か否かを判定し、可能なときには質問５７０を生成するとともに判定信号５７２（第１の値）を出力し、可能でないときには判定信号（第２の値）を出力するための質問処理部５５０と、判定信号５６０が第１の値のときに分岐部５４０から入力５６４を受けたことに応答して、対話履歴ＤＢ５４４及び質問回答ＤＢ５４８を用いて直前に対話システム補強装置５３０が出力した質問に対する回答５７６を生成し出力するための回答処理部５７４と、対話システム５２からの応答５６６、質問処理部５５０からの応答（質問）５７０、及び回答処理部５７４からの回答５７６を受け、判定信号５６０と判定信号５７２との値の組合せに応じてこれらのいずれかを選択し応答５３２として出力する選択部５５４とを含む。
【００７１】
図１３を参照して、質問回答ＤＢ５４８は、複数のレコードを含む。各レコードは、質問文と、その質問文に対する回答と、その質問文のトピックと、その質問文に対する回答文とを含む。本実施の形態では、各レコードは、美術・歴史に関する質問文と回答文とを含んでいる。回答は、質問文に対する回答を端的に名詞で示したものである。トピックは、質問文に含まれる名詞のことを指す。この実施の形態でも、トピックとしては、使用頻度が高い単語は使用せず、トピックとして使用するにふさわしい単語のみをトピックとして使用する。回答文は、質問文に対する回答文としてユーザに提示するのに適した形式となっている。
【００７２】
例えば１番目のレコードは、「誰がモナ・リザを描いたか知っていますか？」であり、回答文は「ダ・ビンチがモナ・リザを描きました。」である。このレコードの回答は「ダ・ビンチ」であり、トピックは「モナ・リザ」である。２番目以下のレコードの構成も同様である。なお、この質問回答ＤＢ５４８の各レコードは、例えば教科書のテキストデータから適切なパターンの文を抽出することで容易に生成できる。もちろん、これらレコードを手作業により準備してもよい。
【００７３】
対話履歴ＤＢ５４４には、例えば直近の複数個の質問文及びユーザ入力が蓄積されている。この対話履歴ＤＢ５４４は、直前の応答５３２が質問文だったか否かに関する判定に使用される。対話履歴ＤＢ５４４はまた、同じ質問を過去に行ったか否かに関する判定を行うためにも使用される。過去に行った質問と同じ質問が対話システム補強装置５３０により生成された場合には、その質問は出力しないようにする。同じ質問を繰返すことで対話システムの動作が堂々巡りになることを避けるためである。ただしこの機能については本願発明と直接の関係がないのでその細部についてはここでは説明しない。しかしこの機能はいわゆる当業者であれば容易に実現できる筈である。
【００７４】
《質問処理部５５０》
図１４を参照して、質問処理部５５０は、応答５６６からトピックとしての単語を抽出するためのトピック抽出部６００と、質問処理部５５０が抽出した単語をトピックに含む質問回答のレコードを質問回答ＤＢ５４８から取得するための質問回答取得部６０２と、質問回答取得部６０２が抽出した質問回答のレコードに基づいて、対話システム補強装置５３０が質問を生成して出力すべきか、対話システム５２の応答を出力するべきかを判定するための応答可否判定部６０４と、応答可否判定部６０４により質問を生成すべきと判定されたときに、質問回答取得部６０２により取得された質問回答のレコードに基づいて対話システム補強装置５３０による応答（質問）５７０を生成するための応答生成部６０６とを含む。
【００７５】
《状態判定部５４２》
図１５を参照して、状態判定部５４２は、入力５４からトピックを表す単語を抽出するためのトピック抽出部６３０と、トピック抽出部６３０により抽出された単語をトピックとして持つ質問回答のレコードを質問回答ＤＢ５４８から取得し、対話履歴ＤＢ５４４に保存された対話履歴と、取得された質問回答のレコードとに基づいて、対話システム補強装置５３０による応答（質問）の生成を行うべきか否かを示す判定信号５６０を出力する回答判定部６３２とを含む。回答判定部６３２は、対話履歴ＤＢ５４４により、直前の対話システム補強装置５３０の出力が質問でないとき、又は直前の対話システム補強装置５３０の出力が質問であったが、そのトピックと入力５４からトピック抽出部６３０が抽出したトピックとが一致しないときには、入力５４が質問に対する回答ではないと判定し、判定信号５６０を第２の値とする。直前の対話システム補強装置５３０の出力が質問であり、そのトピックと入力５４からトピック抽出部６３０が抽出したトピックとが一致したときには判定信号５６０を第１の値とする。すなわち、判定信号５６０は、対話システム補強装置５３０による質問を生成すべきと判定されたときには第１の値となり、そうでないときには第２の値となる。
【００７６】
《回答処理部５７４》
図１６を参照して、回答処理部５７４は、入力５６４が与えられたことに応答して、対話履歴ＤＢ５４４及び質問回答ＤＢ５４８を参照して直前に対話システム補強装置５３０が生成した質問と対になっている回答文を質問回答ＤＢ５４８から抽出するための回答文抽出部６６０と、回答文抽出部６６０により抽出された回答文と対話履歴ＤＢ５４４に記憶された前回の質問とを対比することで回答が正しいか否かを判定し、判定結果に応じた適切な形で回答５７６を生成する応答生成部６６２とを含む。
【００７７】
《選択部５５４》
選択部５５４は、判定信号５６０の値が第２の値であり、判定信号５７２の値が第２の値であるときには応答５６６を選択する。選択部５５４は、判定信号５６０の値が第２の値であり、判定信号５７２の値が第１の値であるときには応答（質問）５７０を選択する。選択部５５４は、判定信号５６０の値が第１の値であるときには、判定信号５７２の値にかかわらず回答５７６を選択する。
【００７８】
《コンピュータによる質問処理部５５０の実現》
図１４に示した質問処理部５５０は、コンピュータとの協働によりコンピュータを質問処理部５５０として機能させるプログラムにより実現される。図１７を参照して、このプログラムは、対話システム５２の出力する応答５６６（図１２を参照）を取得するステップ６９０と、応答５６６からトピックを表す単語を抽出するステップ６９２と、ステップ６９２で取得されたトピックを検索キーとして質問回答ＤＢ５４８を検索し該当するレコードを取出すステップ６９４と、ステップ６９４で取出されたレコードがあるか否かを判定して制御の流れを分岐させるステップ６９６とを含む。
【００７９】
このプログラムはさらに、ステップ６９６の判定が肯定のときに実行され、ステップ６９４で取出された各レコードの質問文のスコアを計算するステップ６９８と、対話履歴ＤＢ５４４に対話履歴が保存されていない質問文で、かつステップ６９８で計算されたスコアが最高である質問文を選択するステップ７００と、対話システム５２からの応答５６６とステップ７００で選択された質問文とを用いて応答文を生成し出力するステップ７０２と、ステップ６９６の判定が否定のときに、対話システム５２の応答５６６を選択して出力するステップ７０４とを含む。なお、ステップ６９８での質問文のスコアは、第１の実施の形態におけるニュースらしさのスコアの算出と同様の手法により算出できる。したがってここではその詳細は繰返さない。
【００８０】
《コンピュータによる状態判定部５４２及び回答処理部５７４の実現》
図１５及び図１６に示した状態判定部５４２及び回答処理部５７４は、コンピュータとの協働によりコンピュータを状態判定部５４２及び回答処理部５７４として機能させるプログラムにより実現される。
【００８１】
図１８を参照して、このプログラムは、対話履歴ＤＢ５４４から対話履歴を取得するステップ７４０と、ステップ７４０で取得した対話履歴に基づき、直前の応答が質問文だったか否かを判定し制御の流れを分岐させるステップ７４２と、ステップ７４２の判定が否定のときに、対話システム５２に入力５４を入力するステップ７５８と、ステップ７５８の処理の結果、対話システム５２から得られる応答を取得するステップ７６０とを含む。
【００８２】
このプログラムはさらに、ステップ７４２の判定が肯定のときに、分岐部５４０からの入力５６４の、質問に対する回答らしさを示すスコアを算出するステップ７４４と、ステップ７４４で算出されたスコアがしきい値より大きいか否かを判定し、判定にしたがって制御の流れを分岐させるステップ７４６とを含む。ステップ７４４のスコア算出は、第１の実施の形態におけるニュースらしさのスコアと同様の手法で計算できる。ステップ７４６での判定が否定のときには制御は上記したステップ７５８に進む。
【００８３】
このプログラムはさらに、ステップ７４６の判定が肯定のときに入力５６４からトピックとして単語を抽出するステップ７４８と、ステップ７４８で抽出されたトピックを持つレコードを質問回答ＤＢ５４８から読出しその回答文を取出すステップ７５０を含む。
【００８４】
このプログラムはさらに、ステップ７５０で抽出されたトピックが、直前に対話システム補強装置５３０が出力した質問のトピックと一致するか否かを判定し、判定結果にしたがって制御を分岐させるステップ７５２と、ステップ７５２の判定が肯定のときに、入力５４が質問に対する正解である旨の応答をステップ７５０で抽出された回答文を用いて生成するステップ７５４と、ステップ７５２の判定が否定であるときに、入力５４が質問に対する誤答であり、正解はステップ７５０で抽出された回答文である旨の応答を生成するステップ７５６と、ステップ７６０、ステップ７５４、及びステップ７５６の後にこれらステップで生成された応答を図１２に示す応答（質問）５７０として出力するステップ７６２とを含む。
【００８５】
［動作］
この第２の実施の形態に係る対話システム補強装置５３０は、大きく分けて以下の３通りのいずれかにより動作する。第１は、入力５４に対して特に質問を行うことなく応答する場合である（通常時）。第２は、入力５４に対して何らかの質問を行う場合である（質問時）。第３は、質問を行った直後の入力５４に対して回答となる応答を行う場合である（回答時）。以下、これら３つの場合について説明する。
【００８６】
《通常時》
通常時、入力５４が状態判定部５４２と分岐部５４０とに与えられる。このとき、状態判定部５４２の出力する判定信号５６０の値は第２の値となる。すなわち、図１５を参照して、トピック抽出部６３０が入力５４からトピックを抽出する。回答判定部６３２はこのトピックに合致する質問回答レコードを質問回答ＤＢ５４８から読出す。通常時には対話システム補強装置５３０が直前に出力した応答は質問ではない。したがって回答判定部６３２は判定信号５６０を第２の値とする。
【００８７】
したがって分岐部５４０は入力５４を入力５６２として対話システム５２に与える。対話システム５２はこの入力５６２に対して何らかの応答５６６を出力する。この応答５６６は質問処理部５５０及び選択部５５４に与えられる。
【００８８】
図１４を参照して、トピック抽出部６００が応答５６６からトピックを表す単語を抽出する。質問回答取得部６０２は、トピック抽出部６００が抽出した単語をトピックに含む質問回答のレコードを質問回答ＤＢ５４８から取得する。応答可否判定部６０４は、質問回答取得部６０２が抽出した質問回答のレコードに基づいて、対話システム補強装置５３０が質問を生成して出力すべきか、対話システム５２の応答を出力するべきかを判定する。この例は通常時であるため、応答可否判定部６０４は対話システム５２の応答を出力すべきと判定する。この結果、応答可否判定部６０４の出力する判定信号５７２の値は第２の値となる。
【００８９】
判定信号５６０の値が第２の値、判定信号５７２の値が第２の値なので、選択部５５４は応答５６６を選択して応答５３２として出力する。
【００９０】
《質問時》
質問時にも状態判定部５４２の動作は通常時と同様に動作する。
【００９１】
したがって入力５４は入力５６２として対話システム５２に与えられ、対話システム５２は応答５６６を出力する。応答５６６は質問処理部５５０に与えられる。
【００９２】
図１４を参照して、トピック抽出部６００が応答５６６からトピックを表す単語を抽出する。質問回答取得部６０２は、トピック抽出部６００が抽出した単語をトピックに含む質問回答のレコードを質問回答ＤＢ５４８から取得する。ここでは、対話履歴ＤＢ５４４に保存された対話履歴により、直前の対話システム補強装置５３０の出力は質問ではないことが分かる。また、質問回答ＤＢ５４８から質問回答レコードが抽出されたものとする。すると、応答可否判定部６０４は、質問回答取得部６０２が抽出した質問回答のレコードに基づいて、対話システム補強装置５３０が質問を生成して出力すべきと判定する。したがって判定信号５７２が第１の値となる。応答生成部６０６は、質問回答取得部６０２により質問回答ＤＢ５４８から抽出した質問回答レコードと入力５４とから質問文を生成し、応答（質問）５７０として出力する。
【００９３】
例えば入力５４が「そういえばモナ・リザがみたいな」というものであったと想定する。これに対する対話システム５２の応答５６６が「モナ・リザの周りにはいつも人が多くいて見るのが大変なようですよ。」というものであったとする。一方、トピックとして「モナ・リザ」が抽出される。この結果、質問回答取得部６０２により抽出された質問回答レコードの質問文が「誰がモナ・リザを描いたか知っていますか。」というものであったとする。この場合、例えば応答生成部６０６は応答５６６とこの質問文との間を「ところで」等の接続語でつなぎ、「モナ・リザの周りにはいつも人が多くいて見るのが大変なようですよ。ところで、誰がモナ・リザを描いたか知っていますか。」という質問文を生成し応答（質問）５７０として出力する。
【００９４】
選択部５５４において、判定信号５６０が第２の値、判定信号５７２が第１の値となる。判定信号５６０の値が第２の値であり、判定信号５７２の値が第１の値であるときには選択部５５４は応答（質問）５７０を選択する。入力５４と、この応答（質問）５７０と、その際に使用された質問応答レコードを特定する情報とが対話履歴ＤＢ５４４に記録される。
【００９５】
《回答時》
回答時には、直前の質問に関する情報が対話履歴ＤＢ５４４に記録されている。図１５と図１８を参照して、回答判定部６３２は、入力５４が与えられると、対話履歴ＤＢ５４４を参照して、直前の対話システム補強装置５３０の応答が質問文であったか否かを判定する（図１８の（以下同じ）ステップ７４２）。この例の場合には直前の応答が質問であったと判定される（ステップ７４２でＹＥＳ）。さらに回答判定部６３２は、入力５４が質問文に対する回答か否かを判定する（ステップ７４４及び７４６）。この設例ではステップ７４６の判定はＹＥＳとなる。したがってトピック抽出部６３０は入力５４からトピックを表す単語を抽出する（ステップ７４８）。回答判定部６３２は、トピック抽出部６３０が抽出したトピックを検索キーに質問回答ＤＢ５４８から質問回答レコードを取出し、回答文を抽出する（ステップ７５０）。この回答文のトピックが直前の質問文のトピックと一致するか否かを判定する（ステップ７５２）。両者が一致すればステップ７５２の判定はＹＥＳとなる。ステップ７５４で正解時の応答を回答文から生成しステップ７６２で出力する。両者が一致しないときには誤答時の応答を回答文から生成しステップ７６２で出力する。
【００９６】
＜実施の形態の効果＞
以上のように上記各実施の形態によれば、既存の対話システムには手を加えることなく、教育及びニュースのような、あるカテゴリに特化した対話システムに変換できる。既存の対話システムを改造したり、新たな対話システムを開発したりする必要がない。そのため、開発コストを低くできる。また、ユーザは基本的には既存の対話システムと対話をすることになり、ある条件が充足されたときにだけ特化した応答を受け取るようになる。そのため、既存の対話システムをそのまま使用していたときと比較して対話システムの動作が変化したという感覚を持つ可能性を小さくできる。その結果、既存の対話システムを利用していたユーザに違和感を生じさせることなく、既存のシステムに特定の新たな機能を追加できる。
【００９７】
なお、上記第２の実施の形態では、問題を美術・歴史から採用しているが本発明はその様な実施の形態には限定されない。一般的に教育に関するものであればどのような学科に対してもこの実施の形態の対話システム補強装置が有効であることは言うまでもない。また教育に関するものだけでなく、いわゆる豆知識的な問題を対話において提供することもできる。さらに、上記実施の形態では回答も文の形式で与えた。しかし本発明はその様な実施の形態には限定されない。例えばいわゆる３択、４択等の形式の問題を出すこともできるし、ＹＥＳ・ＮＯ形式の問題を出すようにすることもできる。
【００９８】
＜コンピュータによる実現＞
上記した各実施の形態に係る対話システム補強装置５０及び対話システム補強装置５３０の各機能部は、それぞれコンピュータハードウェアと、そのハードウェア上でＣＰＵ（中央演算処理装置）及びＧＰＵ（Graphics  Processing  Unit）により実行される、対話システムに対するアドオンとして準備されるプログラムとにより実現できる。図１９及び図２０に上記各装置及びシステムを実現するコンピュータハードウェアを示す。ＧＰＵは通常は画像処理を行うために使用されるが、このようにＧＰＵを画像処理ではなく通常の演算処理に使用する技術をＧＰＧＰＵ（General-purpose  computing  on  graphics  processing  units）と呼ぶ。ＧＰＵは同種の複数の演算を同時並列的に実行できる。一方、ニューラルネットワークの訓練時及び動作時には、各ノードの重み演算は単純な積和演算であり、しかもそれらは同時に実行できることが多い。したがって、図４〜図６に示すＭＣＮＮ２２０、並びに図１７に示す質問文のスコア計算及び図１８の回答らしさのスコア計算に使用される図示しないＭＣＮＮ等の訓練と動作にはＧＰＧＰＵが適している。
【００９９】
図１９を参照して、このコンピュータシステム８３０は、メモリポート８５２及びＤＶＤ（Digital  Versatile  Disk）ドライブ８５０を有するコンピュータ８４０と、キーボード８４６と、マウス８４８と、モニタ８４２とを含む。
【０１００】
図２０を参照して、コンピュータ８４０は、メモリポート８５２及びＤＶＤドライブ８５０に加えて、ＣＰＵ８５６及びＧＰＵ８５８と、ＣＰＵ８５６、ＧＰＵ８５８、メモリポート８５２及びＤＶＤドライブ８５０に接続されたバス８６６と、ブートプログラム等を記憶する読出専用メモリであるＲＯＭ８６０と、バス８６６に接続され、プログラム命令、システムプログラム及び作業データ等を記憶するコンピュータ読出可能な記憶媒体であるランダムアクセスメモリ（ＲＡＭ）８６２と、ハードディスク８５４を含む。コンピュータ８４０はさらに、いずれもバス８６６に接続され、他端末との通信を可能とするネットワーク８６８への接続を提供するネットワークインターフェイス（Ｉ／Ｆ）８４４と、外部との音声信号の入出力を行うための音声Ｉ／Ｆ８７０とを含む。
【０１０１】
コンピュータシステム８３０を上記した実施の形態に係る各装置及びシステムの各機能部として機能させるためのプログラムは、ＤＶＤドライブ８５０又はメモリポート８５２に装着される、いずれもコンピュータ読出可能な記憶媒体であるＤＶＤ８７２又はリムーバブルメモリ８６４に記憶され、さらにハードディスク８５４に転送される。又は、プログラムはネットワーク８６８を通じてコンピュータ８４０に送信されハードディスク８５４に記憶されてもよい。プログラムは実行の際にＲＡＭ８６２にロードされる。ＤＶＤ８７２から、リムーバブルメモリ８６４から又はネットワーク８６８を介して、直接にＲＡＭ８６２にプログラムをロードしてもよい。また、上記処理に必要なデータは、ハードディスク８５４、ＲＡＭ８６２、ＣＰＵ８５６又はＧＰＵ８５８内のレジスタ等の所定のアドレスに記憶され、ＣＰＵ８５６又はＧＰＵ８５８により処理され、プログラムにより指定されるアドレスに格納される。最終的に訓練が終了したＭＣＮＮのパラメータは、例えばハードディスク８５４に格納されたり、ＤＶＤドライブ８５０及びメモリポート８５２をそれぞれ介してＤＶＤ８７２又はリムーバブルメモリ８６４に格納されたりする。又は、ネットワークＩ／Ｆ８４４を介してネットワーク８６８に接続された他のコンピュータ又は記憶装置に送信される。
【０１０２】
このプログラムは、コンピュータ８４０を、上記実施の形態に係る各装置及びシステムとして機能させるための複数の命令からなる命令列を含む。上記各装置及びシステムにおける数値演算処理は、ＣＰＵ８５６及びＧＰＵ８５８を用いて行う。ＣＰＵ８５６のみを用いてもよいがＧＰＵ８５８を用いる方が高速である。コンピュータ８４０にこの動作を行わせるのに必要な基本的機能のいくつかはコンピュータ８４０上で動作するオペレーティングシステム若しくはサードパーティのプログラム又はコンピュータ８４０にインストールされる、ダイナミックリンク可能な各種プログラミングツールキット又はプログラムライブラリにより提供される。したがって、このプログラム自体はこの実施の形態のシステム、装置及び方法を実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令の内、所望の結果が得られるように制御されたやり方で適切な機能又はプログラミングツールキット又はプログラムライブラリ内の適切なプログラムを実行時に動的に呼出すことにより、上記したシステム、装置又は方法としての機能を実現する命令のみを含んでいればよい。もちろん、プログラムのみで必要な機能を全て提供してもよい。
【０１０３】
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内での全ての変更を含む。
【符号の説明】
【０１０４】
５０、５３０  対話システム補強装置
５２  対話システム
６０、６００、６３０  トピック抽出部
６２  ニュースタイトル取得部
６４、６０４  応答可否判定部
６６  ニュースＤＢ
６８、５４４  対話履歴ＤＢ
７０、７４、５５４  選択部
７２、６０６、６６２  応答生成部
７８  ニュースタイトル
１５０  モデル学習装置
１６０  大規模テキストデータベース
１６２  モデル学習部
１６４  ニュース用語辞書
１６６  接続語辞書
１６８  ニュースらしさ判定モデル
１７０  ニュースタイトル記憶部
１７２  ニュースタイトルスコアリング部
１７４  スコア付ニュースタイトル
１９０  テキスト抽出・分類部
１９２  学習用テキスト記憶部
１９４  学習処理部
２２０  ＭＣＮＮ
２６０、２６２、２６４、２６６  畳み込みニューラルネットワーク群
２８０  サブネットワーク
３６０  ニュースタイトル候補
５４０  分岐部
５４２  状態判定部
５４８  質問回答ＤＢ
５５０  質問処理部
５７４  回答処理部
６０２  質問回答取得部
６３２  回答判定部
６６０  回答文抽出部
【図１】
2019194759.tif 000005
【図２】
2019194759.tif 000006
【図３】
2019194759.tif 000007
【図４】
2019194759.tif 000008
【図５】
2019194759.tif 000009
【図６】
2019194759.tif 000010
【図７】
2019194759.tif 000011
【図８】
2019194759.tif 000012
【図９】
2019194759.tif 000013
【図１０】
2019194759.tif 000014
【図１１】
2019194759.tif 000015
【図１２】
2019194759.tif 000016
【図１３】
2019194759.tif 000017
【図１４】
2019194759.tif 000018
【図１５】
2019194759.tif 000019
【図１６】
2019194759.tif 000020
【図１７】
2019194759.tif 000021
【図１８】
2019194759.tif 000022
【図１９】
2019194759.tif 000023
【図２０】
2019194759.tif 000024