(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-22
(45)【発行日】2022-03-30
(54)【発明の名称】対話システム補強装置及びコンピュータプログラム
(51)【国際特許分類】
G06F 16/90 20190101AFI20220323BHJP
G06F 16/903 20190101ALI20220323BHJP
【FI】
G06F16/90 100
G06F16/903
(21)【出願番号】P 2018088218
(22)【出願日】2018-05-01
【審査請求日】2021-04-13
(73)【特許権者】
【識別番号】301022471
【氏名又は名称】国立研究開発法人情報通信研究機構
(74)【代理人】
【識別番号】100099933
【氏名又は名称】清水 敏
(72)【発明者】
【氏名】阿部 憲幸
(72)【発明者】
【氏名】大西 可奈子
(72)【発明者】
【氏名】鳥澤 健太郎
(72)【発明者】
【氏名】木俵 豊
【審査官】甲斐 哲雄
(56)【参考文献】
【文献】特開2017-107078(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 40/20-40/58
G10L 15/00-15/34
(57)【特許請求の範囲】
【請求項1】
対話システムとともに動作し、前記対話システムによる対話に特徴を与える対話システム補強装置であって、
前記対話システムに与えられる入力を受け、前記対話システムに代わって当該入力に対する応答を出力すべきか否かを判定する第1の判定手段と、
前記第1の判定手段による判定が肯定であることに応答して、前記入力に基づいて予め準備された応答生成方法により応答を生成するための第1の応答生成手段と、
前記第1の応答生成手段の出力と、前記対話システムの出力とを受けるように接続され、前記第1の判定手段の判定結果が肯定か否かにしたがって、前記第1の応答生成手段の出力と、前記対話システムの出力とを選択的に出力する第1の選択手段とを含む、対話システム補強装置。
【請求項2】
前記第1の判定手段は、
単語をキーとして当該単語に関連する応答文候補を検索できるように複数の応答文候補を記憶した応答文候補記憶手段と、
前記入力から当該入力に含まれる単語を抽出する単語抽出手段と、
前記単語抽出手段により抽出された前記単語をキーとして前記応答文候補記憶手段から応答文候補を検索し取出すための応答文候補取出手段と、
前記応答文候補取出手段により取出された応答文候補があったか否かにしたがって、前記対話システムに代わって前記入力に対する応答を出力すべきか否かを判定するための手段とを含む、請求項1に記載の対話システム補強装置。
【請求項3】
前記第1の応答生成手段は、
前記応答文候補取出手段により取出された応答文候補の各々について、前記特徴を表している程度を示す特徴スコアを算出するためのスコア算出手段と、
前記応答文候補取出手段により取出された応答文候補の内で、前記スコア算出手段により最も高い特徴スコアが算出された応答文候補を選択し前記第1の選択手段に出力するための手段とを含む、請求項2に記載の対話システム補強装置。
【請求項4】
前記第1の応答生成手段は、
単語をキーとして当該単語に関連する応答文候補を検索できるように複数の応答文候補を記憶した応答文候補記憶手段と、
前記入力から当該入力に含まれる単語を抽出する単語抽出手段と、
前記単語抽出手段により抽出された前記単語をキーとして前記応答文候補記憶手段から応答文候補を検索し取出すための応答文候補取出手段と、
前記応答文候補取出手段により取出された応答文候補の各々について、前記特徴を表している程度を示す特徴スコアを算出するためのスコア算出手段と、
前記応答文候補取出手段により取出された応答文候補の内で、前記スコア算出手段により最も高い前記特徴スコアが算出された応答文候補を選択し前記第1の選択手段に出力するための手段とを含む、請求項1に記載の対話システム補強装置。
【請求項5】
前記第1の応答生成手段は、
複数の特定対話データ項目を記憶した特定対話データ項目記憶手段を含み、
前記特定対話データ項目の各々は、第1の応答文と、当該第1の応答文の後に出力が予定される第2の応答文と、少なくとも前記第1の応答文に含まれる第1の単語とを含み、
前記第1の応答生成手段はさらに、
前記入力に対する前記対話システムの出力するシステム応答文を受信するよう前記対話システムに接続され、当該システム応答文に含まれる単語を抽出するための単語抽出手段と、
前記単語抽出手段により抽出された前記単語を前記第1の単語として含む特定対話データ項目を前記特定対話データ項目記憶手段から取出すためのデータ項目取出手段と、
前記データ項目取出手段により取出された特定対話データ項目に含まれる前記第1の応答文を出力して前記第1の選択手段に入力するための手段と、
前記データ項目取出手段により前記特定対話データ項目が取出されたか否かを判定する第2の判定手段と、
前記第1の応答文を出力したことを示す出力履歴を記憶するための履歴記憶手段とを含み、
前記第1の判定手段は、前記対話システムに入力が与えられたことに応答して、前記履歴記憶手段を参照し、当該入力が前記第1の応答文の出力された直後の入力であるか否かにしたがって、前記対話システムに代わって当該入力に対する応答を出力すべきか否かを判定する第3の判定手段を含み、
前記対話システム補強装置はさらに、前記第2の判定手段により、前記対話システムに与えられた前記入力が前記第1の応答文の出力された直後の入力であると判定されたことに応答して、前記第1の応答文と同じ前記特定対話データ項目内の前記第2の応答文に基づいて応答を生成し、出力するための第2の応答生成手段を含み、
前記第1の選択手段は、前記第1の応答生成手段の出力と、前記対話システムの出力と、前記第2の応答生成手段の出力とを受けるように接続され、前記第2の判定手段の判定結果と前記第3の判定手段による判定結果との組合せにしたがって、前記第1の応答生成手段の出力と、前記第2の応答生成手段の出力と、前記対話システムの出力とを選択的に出力する第2の選択手段を含む、請求項1に記載の対話システム補強装置。
【請求項6】
請求項1~請求項5のいずれか1項に記載の対話システム補強装置の各手段としてコンピュータを機能させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は対話システムに関し、特に、既存の対話システムと協調動作して、既存の対話システムに特徴を与える技術に関する。
【背景技術】
【0002】
近年、機械学習及び深層学習等の技術の発達により、対話システムの開発が盛んに行なわれている。すでに様々な対話システムが利用可能となっている。例えばスマートフォン、パーソナルコンピュータ等、既存のシステムでこれらが利用可能になっているだけでなく、実体はパーソナルコンピュータと同様でありながら、モニタもキーボードも持たず、音声の入出力のみでユーザとの対話を行うようにした装置も市販されている。
【0003】
これらの対話システムは、用途を限っていないことから、どんな発言に対してもそれなりの応答を返すことができる。しかし、特定の用途に使用することを考えると改善の余地が多分にある。
【0004】
例えば子供に使って欲しい対話システムについて考える。そうしたシステムは、ただ漫然と子供と対話を行うだけでなく、対話をする中で、例えば両親、学校の先生のように、様々な知識を子供に伝えられるものであることが望ましい。すなわち、教育向けに特化した対話システムがあると望ましい。
【0005】
このような教育向けの対話システムを開発する場合、既存の汎用的な対話システムがあったとしても、データベースを入れ替える等して応答の内容を大幅に変更したり、対話システム自体を開発し直したりする必要がある。対話システム自体を開発し直すためには高コストが必要となる。また既存の対話システムにおいて応答の内容を大幅に変更したりすると、せっかく開発した対話システムの良さを捨てることにもなりかねない。
【0006】
したがって、既存の対話システムを用いて、教育向け等の特定のシーンに合致するような対話を可能にする技術が必要である。
【0007】
既存の対話システムを利用して特定のシーンに合う対話を可能とする新たな対話システムを開発する従来技術が後掲の特許文献1に開示されている。特許文献1は、予め複数の特定のシーンにそれぞれ対応する複数のデータベースを準備し、人間からの指示に基づいて対話のシーンを選択する対話システムを開示している。この対話システムは、選択されたシーンに応じたデータベースを用いて、そのシーンに即した自然対話を構成する応答文を作成し、それを音声合成して出力する。
【0008】
また後掲の特許文献2には、内部構成が明らかでないものを含む複数の対話システムを含む対話応答装置において、発話入力に適した対話システムから出力される応答候補を適切に選択するものが開示されている。
【先行技術文献】
【特許文献】
【0009】
【文献】特開2004-219714号公報
【文献】特開2016-212541号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかし、従来技術には解決すべき以下のような問題が残っている。特許文献1に開示された技術の場合、既存のシステムがあっても利用できないという問題が有る。既存の対話システムが活用できないため、ゼロから各シーンに適した対話が可能な対話システムを開発する必要がある。既に対話システムを保有しているもの、又は既存の対話システムを活用したいものにとっては、対話システムの開発コストが高すぎるため、特許文献1の手法は採用できない。また、既存の対話システムで既にサービスの提供を開始している場合には、全く新しい対話システムを投入することはコスト面の問題を引き起こすだけでなく、ユーザから見たときの対話システムの動作に大きな変化が生じやすく、ユーザにとって使いにくくなるという問題もある。
【0011】
一方、特許文献2は、既存の対話システムを活用する有用な方法を提案している。しかし、特許文献2では、既存の対話システムが再利用できる範囲は、その既存の対話システムがもともと目的としている活用範囲内に止まっているという問題がある。例えば、既存の対話システムにとって目的外のジャンルにその対話システムを特化させることはできない。
【0012】
したがって本発明の目的は、既存のシステムを、特定の目的に沿った特徴にしたがって動作するように補強できる対話システム補強装置及びそのためのプログラムを提供することである。
【課題を解決するための手段】
【0013】
本発明の第1の局面に係る対話システム補強装置は、対話システムとともに動作し、対話システムによる対話に特徴を与える対話システム補強装置であって、対話システムに与えられる入力を受け、対話システムに代わって当該入力に対する応答を出力すべきか否かを判定する第1の判定手段と、第1の判定手段による判定が肯定であることに応答して、入力に基づいて予め準備された応答生成方法により応答を生成するための第1の応答生成手段と、第1の応答生成手段の出力と、対話システムの出力とを受けるように接続され、第1の判定手段の判定結果が肯定か否かにしたがって、第1の応答生成手段の出力と、対話システムの出力とを選択的に出力する第1の選択手段とを含む。
【0014】
好ましくは、第1の判定手段は、単語をキーとして当該単語に関連する応答文候補を検索できるように複数の応答文候補を記憶した応答文候補記憶手段と、入力から当該入力に含まれる単語を抽出する単語抽出手段と、単語抽出手段により抽出された単語をキーとして応答文候補記憶手段から応答文候補を検索し取出すための応答文候補取出手段と、応答文候補取出手段により取出された応答文候補があったか否かにしたがって、対話システムに代わって入力に対する応答を出力すべきか否かを判定するための手段とを含む。
【0015】
より好ましくは、第1の応答生成手段は、応答文候補取出手段により取出された応答文候補の各々について、特徴を表している程度を示す特徴スコアを算出するためのスコア算出手段と、応答文候補取出手段により取出された応答文候補の内で、スコア算出手段により最も高い特徴スコアが算出された応答文候補を選択し第1の選択手段に出力するための手段とを含む。
【0016】
さらに好ましくは、第1の応答生成手段は、単語をキーとして当該単語に関連する応答文候補を検索できるように複数の応答文候補を記憶した応答文候補記憶手段と、入力から当該入力に含まれる単語を抽出する単語抽出手段と、単語抽出手段により抽出された単語をキーとして応答文候補記憶手段から応答文候補を検索し取出すための応答文候補取出手段と、応答文候補取出手段により取出された応答文候補の各々について、特徴を表している程度を示す特徴スコアを算出するためのスコア算出手段と、応答文候補取出手段により取出された応答文候補の内で、スコア算出手段により最も高い特徴スコアが算出された応答文候補を選択し第1の選択手段に出力するための手段とを含む。
【0017】
好ましくは、第1の応答生成手段は、複数の特定対話データ項目を記憶した特定対話データ項目記憶手段を含み、特定対話データ項目の各々は、第1の応答文と、当該第1の応答文の後に出力が予定される第2の応答文と、少なくとも第1の応答文に含まれる第1の単語とを含み、第1の応答生成手段はさらに、入力に対する対話システムの出力するシステム応答文を受信するよう対話システムに接続され、当該システム応答文に含まれる単語を抽出するための単語抽出手段と、単語抽出手段により抽出された単語を第1の単語として含む特定対話データ項目を特定対話データ項目記憶手段から取出すためのデータ項目取出手段と、データ項目取出手段により取出された特定対話データ項目に含まれる第1の応答文を出力して第1の選択手段に入力するための手段と、データ項目取出手段により特定対話データ項目が取出されたか否かを判定する第2の判定手段と、第1の応答文を出力したことを示す出力履歴を記憶するための履歴記憶手段とを含み、第1の判定手段は、対話システムに入力が与えられたことに応答して、履歴記憶手段を参照し、当該入力が第1の応答文の出力された直後の入力であるか否かにしたがって、対話システムに代わって当該入力に対する応答を出力すべきか否かを判定する第3の判定手段を含み、対話システム補強装置はさらに、第2の判定手段により、対話システムに与えられた入力が第1の応答文の出力された直後の入力であると判定されたことに応答して、第1の応答文と同じ特定対話データ項目内の第2の応答文に基づいて応答を生成し、出力するための第2の応答生成手段を含み、第1の選択手段は、第1の応答生成手段の出力と、対話システムの出力と、第2の応答生成手段の出力とを受けるように接続され、第2の判定手段の判定結果と第3の判定手段による判定結果との組合せにしたがって、第1の応答生成手段の出力と、第2の応答生成手段の出力と、対話システムの出力とを選択的に出力する第2の選択手段を含む。
【0018】
本発明の第2の局面に係るコンピュータプログラム(以下単に「プログラム」という。)は、コンピュータを、上記したいずれかの装置の各手段として機能させる。
【0019】
上記した本願発明の技術的範囲及びその均等範囲は、以下の実施の形態の説明と図面とにより一層明らかになる。
【図面の簡単な説明】
【0020】
【
図1】
図1は、本願発明の第1の実施の形態に係る対話システム補強装置の概略ブロック図である。
【
図2】
図2は、第1の実施の形態で使用されるニュースDBの構成を示す模式図である。
【
図3】
図3は、第1の実施の形態に係る対話システム補強装置としてコンピュータを機能させるプログラムの制御構造を示すフローチャートである。
【
図4】
図4は、第1の実施の形態において各応答候補のニュースらしさを示すスコアを算出するための判定モデルの学習システムを示すブロック図である。
【
図5】
図5は、
図4に示す判定モデルを構成するマルチカラム畳み込みニューラルネットワーク(Multi Column Convolutional Neural Network:MCNN)の概略構造を示す図である。
【
図6】
図6は、
図5に示すMCNNの1カラムの概略構成及び動作原理を説明する模式図である。
【
図7】
図7は、
図5及び
図6に示す判定モデルに入力される素性である第2の単語ベクトル列の生成方法を示す模式図である。
【
図8】
図8は、
図5及び
図6に示す判定モデルに入力される素性である第3の単語ベクトル列の生成方法を示す模式図である。
【
図9】
図9は、
図5及び
図6に示す判定モデルに入力される素性である第4の単語ベクトル列の生成方法を示す模式図である。
【
図10】
図10は、コンピュータを、本発明の第1の実施の形態に係る対話システムにおけるニュースタイトルのスコアリング部として機能させるプログラムのフローチャートである。
【
図11】
図11は、コンピュータを第1の実施の形態に係る対話システムにおける応答生成部として機能させるプログラムのフローチャートである。
【
図12】
図12は、本発明の第2の実施の形態に係る対話システム補強装置である質問回答システムの概略構成を示すブロック図である。
【
図17】
図17は、コンピュータを
図12に示す質問処理部として機能させるプログラムの制御構造を示すフローチャートである。
【
図18】
図18は、コンピュータを
図12に示す状態判定部及び回答処理部として機能させるプログラムの制御構造を示すフローチャートである。
【
図19】
図19は、第1及び第2の実施の形態を実現するコンピュータシステムの外観を示す図である。
【発明を実施するための形態】
【0021】
以下の説明及び図面では、同一の部品には同一の参照番号を付してある。したがって、それらについての詳細な説明は繰返さない。
【0022】
<第1の実施の形態>
[概要]
第1の実施の形態に係る対話システム補強装置は、既存の対話システムと協調動作することにより、既存の対話システムがニュースに特化した対話を行うようにする。具体的には、この対話システム補強装置は、ユーザの発話がニュースで使われているような話題だった場合に、ニュースの情報を与え、同時にそのニュースに関する応答文を出力する。これを実現するために、まず入力された発話文から話題となる語を抽出する。その語が予め準備したニュース情報が入ったデータベース又はそれに類するもの(以下単に「データベース」と呼ぶ。)に含まれている場合には、そのデータベースから関連する情報を取得する。例えば入力に「テロ」という話題が含まれていた場合、「仏財務相:テロ資金の監視、日本と協力確認」というニュースタイトルを取得できる。この文を、ユーザの発話文とみなして既存の対話システムへ入力し、応答文を取得する。取得された応答文と、データベースから取得した文とを用いて、例えば「『仏財務相:テロ資金の監視、日本と協力確認』っていうニュースがあるみたい。テロ組織に対する監視を一層強化し、捜査当局は、ロンドンやマドリードで起きたような無差別テロを食い止めるらしい。」という応答文を生成し出力する。その結果、既存の対話システムがニュースに特化した対話システムとして利用できる。
【0023】
[構成]
《全体構成》
図1を参照して、第1の実施の形態に係る対話システム補強装置50は、既存の対話システム52と協調動作し、対話システム52をニュースに特化した対話システムとして機能させる。対話システム補強装置50は、ニュースDB66と、対話履歴DB68とを含む。ニュースDB66の構成については後述するが、単語を検索キーとして、その単語を含むニュースタイトルが取り出せるように予め準備したデータベースである。ニュースDB66にはニュースタイトルが多数格納されている。
【0024】
対話システム補強装置50はさらに、自然言語文からなる入力54を受けて、入力54からトピックを抽出するためのトピック抽出部60と、トピック抽出部60が抽出したトピックと一致する単語を持つニュースタイトルをニュースDB66から取得するためのニュースタイトル取得部62と、ニュースタイトル取得部62によるニュースタイトルの取得結果に基づいて、入力54に対して対話システム補強装置50の機能を用いて応答するか、対話システム52に応答させるかを示す選択信号76を出力するための応答可否判定部64とを含む。本実施の形態では、選択信号76は対話システム補強装置50の機能を用いて応答すべきときには第1の値をとり、そうでないときには第2の値をとるものとする。応答可否判定部64は、対話システム補強装置50の機能を用いて応答すべきときには、ニュースタイトル取得部62により選択されたニュースタイトル78を出力する。
【0025】
なお、トピックとは、入力54に含まれる名詞のことを言い、会話中に頻繁に出現するような名詞を除いた、トピックを特定するのにふさわしい名詞のことを言う。1つの入力54から複数のトピックを抽出してもよい。その場合には、ニュースDB66からそれらトピックの各々をキーとしてニュースタイトルを取得し、それらの和集合を使用する。またニュースタイトルを取得する代わりに、ニュース本文を取得し、それらの和集合を使用しても良い。
【0026】
対話システム補強装置50はさらに、選択信号76に応答して、選択信号76が第1の値のときには応答可否判定部64が出力するニュースタイトル78を選択し、第2の値のときには入力54を選択して対話システム52に選択後の入力80として入力するための選択部70と、選択信号76が第1の値のときには対話システム52が出力する応答82と応答可否判定部64が出力するニュースタイトル78とを用いて応答84を生成し出力するための応答生成部72と、選択信号76が第1の値のときには応答84を、選択信号76が第2の値のときには対話システム52の出力する応答82を、それぞれ選択してこの対話システムの応答56として出力するための選択部74とを含む。
【0027】
《ニュースDB66》
図2を参照して、ニュースDB66は、複数のレコードを含む。各レコードは、キーと、そのキーを検索のためのキーとして取出可能なニュースタイトルとを含む。各レコードのキーは、対応するニュースタイトル中の単語(トピック)からなる。1つのレコードは複数のキーを持つことが可能であり、何れかのキーが検索のためのキーワードと一致すればそのレコードをニュースDB66から取出すことができる。
【0028】
《プログラム構成》
コンピュータをこの対話システム補強装置50として機能させるためのプログラムは以下のような制御構造を持つ。
図3を参照して、このプログラムは、入力54からトピックである単語を抽出するステップ90と、ステップ90で抽出したトピックを検索キーとしてニュースDB66を検索することにより、そのトピックをキーに持つレコードのニュースタイトルをニュースDB66から取得するステップ92と、ステップ92において取得されたニュースタイトルの各々に対して以下の処理96を実行するステップ94とを含む。なお、ステップ92において1つもレコードが見つからなかった場合には、処理96は1回も実行されず制御はステップ94の次(後述するステップ98)に進む。
【0029】
処理96は、対話履歴DB68を参照することにより、処理対象のニュースタイトルが最近の履歴にあるか否かを判定し、結果に応じて制御の流れを分岐させるステップ130と、ステップ130の判定が否定であるときに、処理対象のニュースタイトルのニュースらしさを示すスコアを算出するステップ132と、ステップ130の判定が肯定であるときに、処理対象のニュースタイトルのニュースらしさスコアを0とするステップ134とを含む。ステップ132又はステップ134が終了すると処理対象のニュースタイトルに対する処理96が終了する。なお、ステップ92で取得されたニュースタイトルがない場合には、前述の通り処理96は1回も実行されず、したがってスコアがついたニュースタイトルは得られない。
【0030】
このプログラムはさらに、ステップ94の結果、ニュースらしさスコア>0であるニュースレコードがあるか否かを判定し、結果にしたがって判定結果を示す選択信号76を出力し、制御の流れを分岐させるステップ98を含む。判定結果が肯定であれば選択信号76は第1の値となり、そうでなければ選択信号76は第2の値となる。このプログラムはさらに、ステップ98の判定が肯定であるときに、スコア最大のニュースタイトルを選択して
図1に示すニュースタイトル78として選択部70に出力するステップ100と、ステップ98の判定結果が肯定であるときに、対話システム52が出力する応答82と、ニュースタイトル78とを組合せることにより応答84を生成し選択部74に出力するステップ102と、ステップ98の判定が否定であるときに、入力54を選択して対話システム52に与え、その出力である応答82を得るステップ104とを含む。
【0031】
このプログラムはさらに、ステップ98での判定が肯定のときにはステップ102で生成された応答を、そうでないときにはステップ104で得られた応答を、それぞれ選択して応答56として出力するステップ106と、入力54、応答56、及びニュースタイトル78を対話履歴DB68に履歴として登録するステップ108とを含む。応答可否判定部64での判定が否定であるときにはニュースタイトル78はない。したがってこの場合、対話履歴DB68には入力54、応答56、及び空の文字列、又はニュースタイトルが選択されなかったことを示すシンボルが履歴として登録される。
【0032】
《ニュースらしさの算出のためのモデル学習》
図3のステップ132におけるスコアの算出は、
図4に示すニュースらしさ判定モデル168を使用して行われる。このニュースらしさ判定モデル168として、本実施の形態では、いわゆるディープニューラルネットワークの一種である畳み込みニューラルネットワーク、より具体的には、マルチカラム畳み込みニューラルネットワーク(Multicolumn Convolutional Neural Network:MCNN)を用いる。
【0033】
〈モデル学習部162〉
図4にこのニュースらしさ判定モデル168の学習を行うためのモデル学習装置150の構成を示す。また
図5にはニュースらしさ判定モデル168の概略構成を示す。
図6にはニュースらしさ判定モデル168の1カラムの構成を示す。
図7、
図8及び
図9には、このニュースらしさ判定モデル168の各カラムへの入力となる素性の導出方法を説明するための図を示す。
【0034】
図4を参照して、モデル学習装置150は、ニュース用語辞書164及び接続語辞書166と、これらを参照して、大規模テキストデータベース160から接続語辞書166に記憶された接続語のいずれかと、ニュース用語辞書164に記憶されたニュース用語のいずれかが連続して現れるテキストを抽出して各テキストにそのテキストが含むニュース用語をラベルとして付して出力し、あわせて、接続語とニュース用語とが連続したものが何も含まれないテキストをラベルを付さずに抽出するテキスト抽出・分類部190と、テキスト抽出・分類部190から出力されるラベル付きのテキスト及びラベルなしのテキストをニュースらしさ判定モデル168の学習用として記憶する学習用テキスト記憶部192と、学習用テキスト記憶部192に記憶された学習用テキストを用いてニュースらしさ判定モデル168の学習を行う学習処理部194とを含む。テキストにラベルが付いている場合にはそのテキストはニュースタイトルであり、ラベルが付されていない場合にはそのテキストはニュースタイトルではない。学習用テキスト記憶部192に記憶される学習用テキストでは、これらはそれぞれニュースタイトルを含むテキストの正例及び負例としてのラベルが付される。例えばこのラベルは、正例は(1,0)であり、負例が(0,1)である。学習処理部194によるニュースらしさ判定モデル168の学習は、モデルがマルチカラム畳み込みニューラルネットワークである点、及び素性として何を使用するかという点を除き、通常のニューラルネットワークと同様、誤差逆伝搬法により行われる。
【0035】
図4を参照して、
図3に示すステップ132は、
図3のステップ92で取出されたニュースタイトルを記憶するためのニュースタイトル記憶部170と、ニュースらしさ判定モデル168を使用して各ニュースタイトルのニュースらしさスコアを算出しスコア付ニュースタイトル174を出力するためのニュースタイトルスコアリング部172とを用いて行われる。
【0036】
本実施の形態では、テキスト抽出・分類部190は、プログラムにより実現される。このプログラムは、接続語辞書166に記憶された接続語のいずれかの後にニュース用語辞書164に記憶されたニュース用語のいずれかが現れる単語列を含むテキストを大規模テキストデータベース160において検索するための検索式を生成し、この検索式を用いて大規模テキストデータベース160から条件を満たすテキストを全て抽出するステップと、抽出されたテキストの各々に対し、そのテキストの内、接続語の前までを抽出し、検索されたニュース用語をラベルとして付したテキストを学習データとして学習用テキスト記憶部192に格納するステップとを含む。
【0037】
図5を参照して、ニュースらしさ判定モデル168を構成するMCNN220は、第1~第4の畳み込みニューラルネットワーク群260、262、264、266からなるニューラルネットワーク層230と、ニューラルネットワーク層230内の各ニューラルネットワークの出力を線形に連結する連結層232と、連結層232の出力するベクトルに対してSoftmax関数を適用して、ニュースタイトル候補が真のニュースタイトルか否かを0~1の間のスコアで評価し出力するSoftmax層234とを含む。
【0038】
第1の畳み込みニューラルネットワーク群260は、後述する第1の単語ベクトル列を受ける第1カラムのサブネットワークを含む。第2の畳み込みニューラルネットワーク群262は、後述する3つの第2の単語ベクトル列をそれぞれ受ける第2、第3及び第4カラムのサブネットワークを含む。第3の畳み込みニューラルネットワーク群264は、後述する4つの第3の単語ベクトル列をそれぞれ受ける第5、第6、第7、及び第8カラムのサブネットワークを含む。第4の畳み込みニューラルネットワーク群266は、後述する3つの第4の単語ベクトル列を受ける第9、第10、及び第11カラムのサブネットワークを含む。これらサブネットワークは、いずれも畳み込みニューラルネットワークである。
【0039】
ニューラルネットワーク層230の各畳み込みニューラルネットワークの出力は連結層232で単純に線形に連結され、Softmax層234への入力ベクトルとなる。
【0040】
MCNN220についてその機能をより詳細に説明する。
図6に、代表として第3の畳み込みニューラルネットワーク群264の1カラムを構成するサブネットワーク280の構成を示す。第3の畳み込みニューラルネットワーク群264内の他のカラム及び他の畳み込みニューラルネットワーク群260、262、及び266に含まれる各カラムも、
図6に示すものと同じ構造を持つ。ここでは、説明を分かりやすくするために、サブネットワーク280が、入力層290、畳み込み層292、及びプーリング層294のみからなっているものとするが、この3つの層を複数個備えているものでもよい。
【0041】
入力層290には、学習データの内、ニュースタイトルから得られた素性の各単語を単語ベクトルに変換して得られた単語ベクトル列X1、X2、…、X|t|が入力される。この単語ベクトル列X1、X2、…、X|t|は、行列T=[X1、X2、…、X|t|]Tとして表される。この行列Tに対して、M個の素性マップが適用される。素性マップはベクトルであって、各素性マップの要素であるベクトルOは連続する単語ベクトルからなるNグラムに対してfj(1≦j≦M)で示されるフィルタを適用しながらNグラム310を移動させることにより計算される。Nは任意の自然数だが、本実施の形態ではN=3とする。すなわちOは次の式により表される。
【0042】
【数1】
なお、素性マップの全体にわたりNを等しくしてもよいし、異なるものがあってもよい。Nとしては、2、3、4及び5程度が適当である。本実施の形態では、重み行列は各カラムセット内の畳み込みニューラルネットワークにおいて等しくしてある。これらは互いに異なっていても良いが、実際、このように等しくした方が、各重み行列を独立に学習する場合より精度が高くなる。なお、畳み込みニューラルネットワークで使用するフィルタとしては、どのようなものを用いることもできる。画像処理で用いるフィルタを流用してもよい。
【0043】
この素性マップの各々について、次のプーリング層294は、いわゆるマックスプーリングを行う。すなわち、プーリング層294は、例えば素性マップfMの要素の内、最大の要素320を選択し、要素330として取出す。これを素性マップの各々に対して行うことによって、要素330、…、332を取出し、これらをf1からfMの順番に連接して連結層232にベクトル342として出力する。各畳み込みニューラルネットワークからはこのようにして得られたベクトル340、…、342、…、344が連結層232に出力される。連結層232は、ベクトル340、…、342、…、344を単純に線形に連結してSoftmax層234に与える。なお、プーリング層294としてはマックスプーリングを行うものの方が平均値を採用するものよりも精度が高いと言われている。しかし、もちろん平均値を採用するようにしてもよいし、下位の層の性質をよく表現するものであれば、他の代表値を用いるようにしてもよい。
【0044】
〈学習のための単語ベクトル列〉
学習データは、上記した11種類の単語ベクトル列と、その単語ベクトル列が得られたテキストが正例か負例かを示すラベルとからなる。
【0045】
MCNNへの入力となる単語列は以下のとおりである。ただしこの表で、TNPはニュースタイトル候補に含まれる名詞を含む文節を表し、PREDはニュースタイトル候補に含まれる述語テンプレートの述語を含む文節を表す。述語テンプレートとは、名詞と結び付いてフレーズを構成する言語単位のことをいう。具体例は後述する。なお、負例の場合には、ニュース用単語に相当するものに代えて例えば文の主語を使用して単語ベクトル列を生成する。
【0046】
【表1】
これら単語列はいずれも、文全体から抽出される。なお、本実施の形態では、ニュースタイトル候補のテキストは所定の複数文という場合もある。したがってTNPとPREDが別文に存在することもあり得る。本実施の形態では、そうした場合でも上記した単語列が得られるようにするために、これら複数文の全ての係り受け木のルートを仮想的なルートノードで互いに結合し、1つの係り受け木を用いて上記単語列を得るようにした。
【0047】
図7を参照して、第1の単語列は、ニュースタイトル候補360から抽出されたニュース用語の名詞を含む文節370と述語テンプレートの述語372との対からなる。本実施の形態では、単語の出現順序を保存し、かつ演算量を少なくするために以下の全ての単語ベクトルとして単語埋め込みベクトルを使用する。
【0048】
図7を参照して、第2の種類の単語ベクトル列であるカラム番号2-4の単語ベクトル列は、ニュースタイトル候補360中での単語列の出現順序に基づき、文頭からニュースタイトル候補の名詞を含む文節370の直前までの単語列380、文節370と述語372の間の単語列382、及び述語372の後の単語から文末までの単語列384を含む。したがって、第2の単語ベクトル列は3つの単語埋め込みベクトル列として得られる。
【0049】
図8を参照して、第3の単語ベクトル列であるカラム5-8の単語ベクトル列は、ニュースタイトル候補360の係り受け木に基づき、ニュースタイトル候補の名詞を含む文節370に係る部分木420、述語372の係り先の部分木410、文節370と述語372の間の係り受けパス422、及びその他424からそれぞれ得られる単語列を含む。したがってこの例では第3の単語ベクトル列は4つの単語埋め込みベクトル列として得られる。
【0050】
図9を参照して、第4の単語ベクトル列であるカラム9-11の単語ベクトル列は、ニュースタイトル候補360において、述語372を含む文節内の単語列と、述語372の前の単語列440と、後の単語列442とを含む。したがってこの場合、第4の単語ベクトル列は3つの単語埋め込みベクトル列として得られる。
【0051】
学習時には、MCNN220の各カラムにはそれぞれの各カラムへの入力ベクトルが与えられ、MCNN220の出力がそのテキストのラベルと比較され、通常の誤差逆伝播方式によって、誤差関数の値が小さくなる方向にMCNN220を構成する各ウェイトとバイアスの値が修正される。
【0052】
なお、本実施の形態では、MCNN220の出力は2つである。出力はSoftMax関数により実装されているため、第1の出力は、ニュースタイトル候補がニュースタイトルである確率を表し、第2の出力はニュースタイトル候補がニュースタイトルでない確率を表す。本実施の形態では、ニュースタイトルである確率を各ニュースタイトルのスコアとして用いる。
【0053】
図3に示すステップ132、すなわち
図4に示すニュースタイトルスコアリング部172は、コンピュータと協働するプログラムにより実現される。
図10を参照して、このプログラムは、ニュースタイトル記憶部170に記憶された各ニュースタイトルに対して以下の処理462を実行するステップ460を含む。
【0054】
処理462は、ニュースらしさ判定モデル168への入力パラメータ(第1~第4の単語ベクトル列)を生成するステップ470、これらパラメータをニュースらしさ判定モデル168に入力するステップ472、及びニュースらしさ判定モデル168の出力するラベル(ニュースタイトルである確率)をニュースタイトルにスコアとして付すステップ474を含む。
【0055】
《応答生成部72》
図1に示す応答生成部72もコンピュータとの協働によりコンピュータを応答生成部72として機能させるプログラムにより実現される。
図11を参照して、このプログラムは、予め準備されている応答のための応答フォームのいずれかをランダムに選択するステップ500を含む。この応答フォームは、例えば「[第1スロット]というニュースがありますよ。[第2スロット]」のようなものである。第1スロットにはニュースタイトルが代入され、第2スロットには対話システム52の出力が代入される。
【0056】
このプログラムはさらに、応答フォームの第1スロットにニュースタイトルを代入するステップ502、及び応答フォームの第2スロットに対話システム52の出力した応答を代入するステップ504を含む。
【0057】
[動作]
第1の実施の形態に係る対話システム補強装置50は以下の様に動作する。対話システム補強装置50は、入力54のトピックに適合するニュースタイトルがニュースDB66に格納されているとき(適合時)とそうでないとき(非適合時)とで異なる。以下、最初に適合時、次に非適合時の対話システム補強装置50の動作を説明する。なお、この動作に先立ち、
図4に示すニュースらしさ判定モデル168の学習は完了しているものとする。
【0058】
《適合時の対話システム補強装置50の動作》
図1を参照して、適合時には対話システム補強装置50は以下のように動作する。入力54が入力されると、トピック抽出部60は入力54からトピックを抽出しニュースタイトル取得部62に与える(
図3(以下同様)のステップ90)。ニュースタイトル取得部62は、トピック抽出部60が抽出したトピックと一致する単語を持つニュースタイトルをニュースDB66から取得し応答可否判定部64に与える(ステップ92)。応答可否判定部64は、ニュースタイトル取得部62によるニュースタイトルの取得結果に基づいて、入力54に対して対話システム補強装置50の機能を用いて応答するか、対話システム52に応答させるかを示す選択信号76を出力する。
【0059】
応答可否判定部64はこのとき、以下のように動作する。
図3を参照して、応答可否判定部64は、ニュースタイトル取得部62から与えられたニュースタイトルの各々について、そのニュースタイトルを含む履歴が対話履歴DB68にあるか否かを判定する(ステップ130)。もしあれば(ステップ130でYES)そのニュースタイトルのニュースらしさスコアを0とする(ステップ134)。もしなければ(ステップ130でNO)、そのニュースタイトルのニュースらしさスコアを
図4に示すニュースらしさ判定モデル168及びニュースタイトルスコアリング部172を用いて算出し、そのニュースタイトルに付して出力する。
【0060】
再び
図3を参照して、スコア>0のニュースタイトルがあれば(ステップ98でYES)、スコア最大のニュースタイトルを対話システム52に入力する(ステップ100)。適合時にはステップ98の判定はYESとなり、ステップ100が実行される。このとき、
図1に示す選択信号76は第1の値となる。選択部70は入力54ではなくニュースタイトル78を選択して選択後の入力80として対話システム52に与える。対話システム52は選択後の入力80に応答して応答82を出力する。
【0061】
図3のステップ102において、応答生成部72はランダムに選択した応答フォームの第1スロットにニュースタイトル78を、第2スロットに応答82を、それぞれ代入して応答84を生成し選択部74に与える。選択部74は選択信号76の値が第1の値なので応答82ではなく応答84を選択し、応答56として出力する。
【0062】
すなわち適合時には、入力54に対する対話システム52の応答が出力されるのではない。そうではなく、入力54に含まれるトピックに適合するニュースタイトルがニュースDB66から選択され、そのニュースタイトル78が入力54の代わりに対話システム52に与えられる。このときの対話システム52の応答が応答生成部72に与えられ、ニュースタイトル78と組合されて応答84が生成され、出力される。
【0063】
例えば入力54が「テロは怖いね」というものであり、ニュースタイトルに「仏財務相:テロ資金の監視、日本と協力確認」というものである場合を想定する。また、ランダムに選択された応答フォームが「[第1スロット]っていうニュースがあるみたい。[第2スロット]」というものであり、このときの対話システム52からの応答82が「テロ組織に対する監視を一層強化し、捜査当局は、ロンドンやマドリードで起きたような無差別テロを食い止めるらしい。」というものである場合を想定する。すると、最終的に得られる応答は「『仏財務相:テロ資金の監視、日本と協力確認』っていうニュースがあるみたい。テロ組織に対する監視を一層強化し、捜査当局は、ロンドンやマドリードで起きたような無差別テロを食い止めるらしい。」となる。
【0064】
《非適合時の対話システム補強装置50の動作》
非適合時には、対話システム補強装置50は以下のように動作する。入力54が入力されてから応答可否判定部64の動作までは上記適合時と同様である。しかし非適合時には、
図3のステップ98の判定がNOとなり、
図1に示す選択信号76は第2の値となる。その結果、選択部70はニュースタイトル78ではなく入力54を選択し、選択後の入力80として対話システム52に入力する。選択信号76が第2の値なので応答生成部72は何も動作しない。同様に選択信号76が第2の値なので選択部74は応答84ではなく応答82を選択し、応答56として出力する。
【0065】
すなわちこの場合には、仮に関連したニュースタイトルが見つからない場合には、「テロ組織に対する監視を一層強化し、捜査当局は、ロンドンやマドリードで起きたような無差別テロを食い止めるらしい。」という応答が出力されることになる。
【0066】
以上のようにこの実施の形態に係る対話システム補強装置50によれば、既存の対話システムに対話システム補強装置50を追加することにより、ニュースのような特定の分野での応答に特徴を持つ対話システムを実現できる。ここではニュースについての実施の形態を挙げたが、例えばスポーツ関係のニュース、芸能関係のニュース、科学技術分野のニュース、政治関係のニュース等、さらにニュースの分野を細分化したものにも本実施の形態を適用できる。さらに、ニュースに限らず、特定の地域・時代に関してニュースタイトル的にまとめた電子データが利用可能であれば、そうした情報に特化した対話システムとして既存の対話システムを動作させることもできる。この際、既存の対話システムを改造したり、新たに作ったりする必要はない。
【0067】
<第2の実施の形態>
[概要]
本願発明の第2の実施の形態に係る対話システム補強装置は、既存の対話システムと協調動作して、既存の対話システムが教育に特化した対話を行うようにする。具体的には、対話の最中に教育的に重要な単語が出現した際に、それに関する問題を出題し、ユーザに回答させる。問題を出題可能とするため、予め教科書データを用いて質問回答データベースを作成しておく。ユーザの発話から話題(トピック)を抽出する。トピックに含まれる名詞が質問回答データベースにキーとして含まれる場合、その単語に関連する質問文を質問回答データベースから抽出する。ユーザの発話文自体は既存の対話システムへ入力し、応答文を取得する。質問回答データベースから抽出した質問文と、対話システムからの応答文を組合せて応答文を生成し、出力する。質問文を出力した後のユーザの入力に対しては、トピックとなる単語を抽出し、その単語が直前に出題した問題(質問文)の回答かどうかを質問回答データベースで確認し、正解か不正解に応じて文を生成する。また、質問回答データベースから該当の回答文も抽出する。正解か不正解かに応じた文と、質問回答データベースから抽出した回答文を組合せて応答文を生成し、出力する。
【0068】
[構成]
《全体構成》
図12を参照して、第2の実施の形態に係る対話システム補強装置530は、既存の対話システム52への入力54及びこの入力54に対する対話システム52の出力(応答)を受けるように接続され、対話システム52による対話の最中に教育的に重要な単語が出現した際に、それに関する問題をユーザに対して出題し、ユーザに回答させる処理を行う。さらに対話システム補強装置530は、この出題の直後にユーザから入力された入力54が直前の問題に対して正しい回答か否かを判定し、正解か不正解かに応じた文と、質問に対する回答文を組合せて応答文を生成し、出力する。すなわち、第1の実施の形態に係る対話システム補強装置50と異なり、この第2の実施の形態に係る対話システム補強装置530は、ユーザとの2回の対話により、ユーザに対して何らかの教育的な知識を伝えるよう既存の対話システム52の機能を補強する。
【0069】
対話システム補強装置530は、入力54が与えられたことに応答して、入力54が質問に対する回答か否かを判定し、判定信号560を出力する状態判定部542を含む。判定信号560は入力54が質問に対する回答であるときには第1の値、そうでないときには第2の値であるものとする。対話システム補強装置530はさらに、対話システム52による対話の履歴を保存している対話履歴DB544と、教科書データ等から作成した、質問とその回答との対を多数記憶する質問回答DB548と、判定信号560に応答して、判定信号560が第1の値のときには入力54を入力564に、そうでないときには入力562に、それぞれ分岐させるための分岐部540とを含む。
【0070】
対話システム補強装置530はさらに、判定信号560の値が第2の値であるときに、対話システム52が入力562に対して出力する応答566を受け、対話履歴DB544及び質問回答DB548を用いて、ユーザに対して入力54に関連した質問を提示することが可能か否かを判定し、可能なときには質問570を生成するとともに判定信号572(第1の値)を出力し、可能でないときには判定信号(第2の値)を出力するための質問処理部550と、判定信号560が第1の値のときに分岐部540から入力564を受けたことに応答して、対話履歴DB544及び質問回答DB548を用いて直前に対話システム補強装置530が出力した質問に対する回答576を生成し出力するための回答処理部574と、対話システム52からの応答566、質問処理部550からの応答(質問)570、及び回答処理部574からの回答576を受け、判定信号560と判定信号572との値の組合せに応じてこれらのいずれかを選択し応答532として出力する選択部554とを含む。
【0071】
図13を参照して、質問回答DB548は、複数のレコードを含む。各レコードは、質問文と、その質問文に対する回答と、その質問文のトピックと、その質問文に対する回答文とを含む。本実施の形態では、各レコードは、美術・歴史に関する質問文と回答文とを含んでいる。回答は、質問文に対する回答を端的に名詞で示したものである。トピックは、質問文に含まれる名詞のことを指す。この実施の形態でも、トピックとしては、使用頻度が高い単語は使用せず、トピックとして使用するにふさわしい単語のみをトピックとして使用する。回答文は、質問文に対する回答文としてユーザに提示するのに適した形式となっている。
【0072】
例えば1番目のレコードは、「誰がモナ・リザを描いたか知っていますか?」であり、回答文は「ダ・ビンチがモナ・リザを描きました。」である。このレコードの回答は「ダ・ビンチ」であり、トピックは「モナ・リザ」である。2番目以下のレコードの構成も同様である。なお、この質問回答DB548の各レコードは、例えば教科書のテキストデータから適切なパターンの文を抽出することで容易に生成できる。もちろん、これらレコードを手作業により準備してもよい。
【0073】
対話履歴DB544には、例えば直近の複数個の質問文及びユーザ入力が蓄積されている。この対話履歴DB544は、直前の応答532が質問文だったか否かに関する判定に使用される。対話履歴DB544はまた、同じ質問を過去に行ったか否かに関する判定を行うためにも使用される。過去に行った質問と同じ質問が対話システム補強装置530により生成された場合には、その質問は出力しないようにする。同じ質問を繰返すことで対話システムの動作が堂々巡りになることを避けるためである。ただしこの機能については本願発明と直接の関係がないのでその細部についてはここでは説明しない。しかしこの機能はいわゆる当業者であれば容易に実現できる筈である。
【0074】
《質問処理部550》
図14を参照して、質問処理部550は、応答566からトピックとしての単語を抽出するためのトピック抽出部600と、質問処理部550が抽出した単語をトピックに含む質問回答のレコードを質問回答DB548から取得するための質問回答取得部602と、質問回答取得部602が抽出した質問回答のレコードに基づいて、対話システム補強装置530が質問を生成して出力すべきか、対話システム52の応答を出力するべきかを判定するための応答可否判定部604と、応答可否判定部604により質問を生成すべきと判定されたときに、質問回答取得部602により取得された質問回答のレコードに基づいて対話システム補強装置530による応答(質問)570を生成するための応答生成部606とを含む。
【0075】
《状態判定部542》
図15を参照して、状態判定部542は、入力54からトピックを表す単語を抽出するためのトピック抽出部630と、トピック抽出部630により抽出された単語をトピックとして持つ質問回答のレコードを質問回答DB548から取得し、対話履歴DB544に保存された対話履歴と、取得された質問回答のレコードとに基づいて、対話システム補強装置530による応答(質問)の生成を行うべきか否かを示す判定信号560を出力する回答判定部632とを含む。回答判定部632は、対話履歴DB544により、直前の対話システム補強装置530の出力が質問でないとき、又は直前の対話システム補強装置530の出力が質問であったが、そのトピックと入力54からトピック抽出部630が抽出したトピックとが一致しないときには、入力54が質問に対する回答ではないと判定し、判定信号560を第2の値とする。直前の対話システム補強装置530の出力が質問であり、そのトピックと入力54からトピック抽出部630が抽出したトピックとが一致したときには判定信号560を第1の値とする。すなわち、判定信号560は、対話システム補強装置530による質問を生成すべきと判定されたときには第1の値となり、そうでないときには第2の値となる。
【0076】
《回答処理部574》
図16を参照して、回答処理部574は、入力564が与えられたことに応答して、対話履歴DB544及び質問回答DB548を参照して直前に対話システム補強装置530が生成した質問と対になっている回答文を質問回答DB548から抽出するための回答文抽出部660と、回答文抽出部660により抽出された回答文と対話履歴DB544に記憶された前回の質問とを対比することで回答が正しいか否かを判定し、判定結果に応じた適切な形で回答576を生成する応答生成部662とを含む。
【0077】
《選択部554》
選択部554は、判定信号560の値が第2の値であり、判定信号572の値が第2の値であるときには応答566を選択する。選択部554は、判定信号560の値が第2の値であり、判定信号572の値が第1の値であるときには応答(質問)570を選択する。選択部554は、判定信号560の値が第1の値であるときには、判定信号572の値にかかわらず回答576を選択する。
【0078】
《コンピュータによる質問処理部550の実現》
図14に示した質問処理部550は、コンピュータとの協働によりコンピュータを質問処理部550として機能させるプログラムにより実現される。
図17を参照して、このプログラムは、対話システム52の出力する応答566(
図12を参照)を取得するステップ690と、応答566からトピックを表す単語を抽出するステップ692と、ステップ692で取得されたトピックを検索キーとして質問回答DB548を検索し該当するレコードを取出すステップ694と、ステップ694で取出されたレコードがあるか否かを判定して制御の流れを分岐させるステップ696とを含む。
【0079】
このプログラムはさらに、ステップ696の判定が肯定のときに実行され、ステップ694で取出された各レコードの質問文のスコアを計算するステップ698と、対話履歴DB544に対話履歴が保存されていない質問文で、かつステップ698で計算されたスコアが最高である質問文を選択するステップ700と、対話システム52からの応答566とステップ700で選択された質問文とを用いて応答文を生成し出力するステップ702と、ステップ696の判定が否定のときに、対話システム52の応答566を選択して出力するステップ704とを含む。なお、ステップ698での質問文のスコアは、第1の実施の形態におけるニュースらしさのスコアの算出と同様の手法により算出できる。したがってここではその詳細は繰返さない。
【0080】
《コンピュータによる状態判定部542及び回答処理部574の実現》
図15及び
図16に示した状態判定部542及び回答処理部574は、コンピュータとの協働によりコンピュータを状態判定部542及び回答処理部574として機能させるプログラムにより実現される。
【0081】
図18を参照して、このプログラムは、対話履歴DB544から対話履歴を取得するステップ740と、ステップ740で取得した対話履歴に基づき、直前の応答が質問文だったか否かを判定し制御の流れを分岐させるステップ742と、ステップ742の判定が否定のときに、対話システム52に入力54を入力するステップ758と、ステップ758の処理の結果、対話システム52から得られる応答を取得するステップ760とを含む。
【0082】
このプログラムはさらに、ステップ742の判定が肯定のときに、分岐部540からの入力564の、質問に対する回答らしさを示すスコアを算出するステップ744と、ステップ744で算出されたスコアがしきい値より大きいか否かを判定し、判定にしたがって制御の流れを分岐させるステップ746とを含む。ステップ744のスコア算出は、第1の実施の形態におけるニュースらしさのスコアと同様の手法で計算できる。ステップ746での判定が否定のときには制御は上記したステップ758に進む。
【0083】
このプログラムはさらに、ステップ746の判定が肯定のときに入力564からトピックとして単語を抽出するステップ748と、ステップ748で抽出されたトピックを持つレコードを質問回答DB548から読出しその回答文を取出すステップ750を含む。
【0084】
このプログラムはさらに、ステップ750で抽出されたトピックが、直前に対話システム補強装置530が出力した質問のトピックと一致するか否かを判定し、判定結果にしたがって制御を分岐させるステップ752と、ステップ752の判定が肯定のときに、入力54が質問に対する正解である旨の応答をステップ750で抽出された回答文を用いて生成するステップ754と、ステップ752の判定が否定であるときに、入力54が質問に対する誤答であり、正解はステップ750で抽出された回答文である旨の応答を生成するステップ756と、ステップ760、ステップ754、及びステップ756の後にこれらステップで生成された応答を
図12に示す応答(質問)570として出力するステップ762とを含む。
【0085】
[動作]
この第2の実施の形態に係る対話システム補強装置530は、大きく分けて以下の3通りのいずれかにより動作する。第1は、入力54に対して特に質問を行うことなく応答する場合である(通常時)。第2は、入力54に対して何らかの質問を行う場合である(質問時)。第3は、質問を行った直後の入力54に対して回答となる応答を行う場合である(回答時)。以下、これら3つの場合について説明する。
【0086】
《通常時》
通常時、入力54が状態判定部542と分岐部540とに与えられる。このとき、状態判定部542の出力する判定信号560の値は第2の値となる。すなわち、
図15を参照して、トピック抽出部630が入力54からトピックを抽出する。回答判定部632はこのトピックに合致する質問回答レコードを質問回答DB548から読出す。通常時には対話システム補強装置530が直前に出力した応答は質問ではない。したがって回答判定部632は判定信号560を第2の値とする。
【0087】
したがって分岐部540は入力54を入力562として対話システム52に与える。対話システム52はこの入力562に対して何らかの応答566を出力する。この応答566は質問処理部550及び選択部554に与えられる。
【0088】
図14を参照して、トピック抽出部600が応答566からトピックを表す単語を抽出する。質問回答取得部602は、トピック抽出部600が抽出した単語をトピックに含む質問回答のレコードを質問回答DB548から取得する。応答可否判定部604は、質問回答取得部602が抽出した質問回答のレコードに基づいて、対話システム補強装置530が質問を生成して出力すべきか、対話システム52の応答を出力するべきかを判定する。この例は通常時であるため、応答可否判定部604は対話システム52の応答を出力すべきと判定する。この結果、応答可否判定部604の出力する判定信号572の値は第2の値となる。
【0089】
判定信号560の値が第2の値、判定信号572の値が第2の値なので、選択部554は応答566を選択して応答532として出力する。
【0090】
《質問時》
質問時にも状態判定部542の動作は通常時と同様に動作する。
【0091】
したがって入力54は入力562として対話システム52に与えられ、対話システム52は応答566を出力する。応答566は質問処理部550に与えられる。
【0092】
図14を参照して、トピック抽出部600が応答566からトピックを表す単語を抽出する。質問回答取得部602は、トピック抽出部600が抽出した単語をトピックに含む質問回答のレコードを質問回答DB548から取得する。ここでは、対話履歴DB544に保存された対話履歴により、直前の対話システム補強装置530の出力は質問ではないことが分かる。また、質問回答DB548から質問回答レコードが抽出されたものとする。すると、応答可否判定部604は、質問回答取得部602が抽出した質問回答のレコードに基づいて、対話システム補強装置530が質問を生成して出力すべきと判定する。したがって判定信号572が第1の値となる。応答生成部606は、質問回答取得部602により質問回答DB548から抽出した質問回答レコードと入力54とから質問文を生成し、応答(質問)570として出力する。
【0093】
例えば入力54が「そういえばモナ・リザがみたいな」というものであったと想定する。これに対する対話システム52の応答566が「モナ・リザの周りにはいつも人が多くいて見るのが大変なようですよ。」というものであったとする。一方、トピックとして「モナ・リザ」が抽出される。この結果、質問回答取得部602により抽出された質問回答レコードの質問文が「誰がモナ・リザを描いたか知っていますか。」というものであったとする。この場合、例えば応答生成部606は応答566とこの質問文との間を「ところで」等の接続語でつなぎ、「モナ・リザの周りにはいつも人が多くいて見るのが大変なようですよ。ところで、誰がモナ・リザを描いたか知っていますか。」という質問文を生成し応答(質問)570として出力する。
【0094】
選択部554において、判定信号560が第2の値、判定信号572が第1の値となる。判定信号560の値が第2の値であり、判定信号572の値が第1の値であるときには選択部554は応答(質問)570を選択する。入力54と、この応答(質問)570と、その際に使用された質問応答レコードを特定する情報とが対話履歴DB544に記録される。
【0095】
《回答時》
回答時には、直前の質問に関する情報が対話履歴DB544に記録されている。
図15と
図18を参照して、回答判定部632は、入力54が与えられると、対話履歴DB544を参照して、直前の対話システム補強装置530の応答が質問文であったか否かを判定する(
図18の(以下同じ)ステップ742)。この例の場合には直前の応答が質問であったと判定される(ステップ742でYES)。さらに回答判定部632は、入力54が質問文に対する回答か否かを判定する(ステップ744及び746)。この設例ではステップ746の判定はYESとなる。したがってトピック抽出部630は入力54からトピックを表す単語を抽出する(ステップ748)。回答判定部632は、トピック抽出部630が抽出したトピックを検索キーに質問回答DB548から質問回答レコードを取出し、回答文を抽出する(ステップ750)。この回答文のトピックが直前の質問文のトピックと一致するか否かを判定する(ステップ752)。両者が一致すればステップ752の判定はYESとなる。ステップ754で正解時の応答を回答文から生成しステップ762で出力する。両者が一致しないときには誤答時の応答を回答文から生成しステップ762で出力する。
【0096】
<実施の形態の効果>
以上のように上記各実施の形態によれば、既存の対話システムには手を加えることなく、教育及びニュースのような、あるカテゴリに特化した対話システムに変換できる。既存の対話システムを改造したり、新たな対話システムを開発したりする必要がない。そのため、開発コストを低くできる。また、ユーザは基本的には既存の対話システムと対話をすることになり、ある条件が充足されたときにだけ特化した応答を受け取るようになる。そのため、既存の対話システムをそのまま使用していたときと比較して対話システムの動作が変化したという感覚を持つ可能性を小さくできる。その結果、既存の対話システムを利用していたユーザに違和感を生じさせることなく、既存のシステムに特定の新たな機能を追加できる。
【0097】
なお、上記第2の実施の形態では、問題を美術・歴史から採用しているが本発明はその様な実施の形態には限定されない。一般的に教育に関するものであればどのような学科に対してもこの実施の形態の対話システム補強装置が有効であることは言うまでもない。また教育に関するものだけでなく、いわゆる豆知識的な問題を対話において提供することもできる。さらに、上記実施の形態では回答も文の形式で与えた。しかし本発明はその様な実施の形態には限定されない。例えばいわゆる3択、4択等の形式の問題を出すこともできるし、YES・NO形式の問題を出すようにすることもできる。
【0098】
<コンピュータによる実現>
上記した各実施の形態に係る対話システム補強装置50及び対話システム補強装置530の各機能部は、それぞれコンピュータハードウェアと、そのハードウェア上でCPU(中央演算処理装置)及びGPU(Graphics Processing Unit)により実行される、対話システムに対するアドオンとして準備されるプログラムとにより実現できる。
図19及び
図20に上記各装置及びシステムを実現するコンピュータハードウェアを示す。GPUは通常は画像処理を行うために使用されるが、このようにGPUを画像処理ではなく通常の演算処理に使用する技術をGPGPU(General-purpose computing on graphics processing units)と呼ぶ。GPUは同種の複数の演算を同時並列的に実行できる。一方、ニューラルネットワークの訓練時及び動作時には、各ノードの重み演算は単純な積和演算であり、しかもそれらは同時に実行できることが多い。したがって、
図4~
図6に示すMCNN220、並びに
図17に示す質問文のスコア計算及び
図18の回答らしさのスコア計算に使用される図示しないMCNN等の訓練と動作にはGPGPUが適している。
【0099】
図19を参照して、このコンピュータシステム830は、メモリポート852及びDVD(Digital Versatile Disk)ドライブ850を有するコンピュータ840と、キーボード846と、マウス848と、モニタ842とを含む。
【0100】
図20を参照して、コンピュータ840は、メモリポート852及びDVDドライブ850に加えて、CPU856及びGPU858と、CPU856、GPU858、メモリポート852及びDVDドライブ850に接続されたバス866と、ブートプログラム等を記憶する読出専用メモリであるROM860と、バス866に接続され、プログラム命令、システムプログラム及び作業データ等を記憶するコンピュータ読出可能な記憶媒体であるランダムアクセスメモリ(RAM)862と、ハードディスク854を含む。コンピュータ840はさらに、いずれもバス866に接続され、他端末との通信を可能とするネットワーク868への接続を提供するネットワークインターフェイス(I/F)844と、外部との音声信号の入出力を行うための音声I/F870とを含む。
【0101】
コンピュータシステム830を上記した実施の形態に係る各装置及びシステムの各機能部として機能させるためのプログラムは、DVDドライブ850又はメモリポート852に装着される、いずれもコンピュータ読出可能な記憶媒体であるDVD872又はリムーバブルメモリ864に記憶され、さらにハードディスク854に転送される。又は、プログラムはネットワーク868を通じてコンピュータ840に送信されハードディスク854に記憶されてもよい。プログラムは実行の際にRAM862にロードされる。DVD872から、リムーバブルメモリ864から又はネットワーク868を介して、直接にRAM862にプログラムをロードしてもよい。また、上記処理に必要なデータは、ハードディスク854、RAM862、CPU856又はGPU858内のレジスタ等の所定のアドレスに記憶され、CPU856又はGPU858により処理され、プログラムにより指定されるアドレスに格納される。最終的に訓練が終了したMCNNのパラメータは、例えばハードディスク854に格納されたり、DVDドライブ850及びメモリポート852をそれぞれ介してDVD872又はリムーバブルメモリ864に格納されたりする。又は、ネットワークI/F844を介してネットワーク868に接続された他のコンピュータ又は記憶装置に送信される。
【0102】
このプログラムは、コンピュータ840を、上記実施の形態に係る各装置及びシステムとして機能させるための複数の命令からなる命令列を含む。上記各装置及びシステムにおける数値演算処理は、CPU856及びGPU858を用いて行う。CPU856のみを用いてもよいがGPU858を用いる方が高速である。コンピュータ840にこの動作を行わせるのに必要な基本的機能のいくつかはコンピュータ840上で動作するオペレーティングシステム若しくはサードパーティのプログラム又はコンピュータ840にインストールされる、ダイナミックリンク可能な各種プログラミングツールキット又はプログラムライブラリにより提供される。したがって、このプログラム自体はこの実施の形態のシステム、装置及び方法を実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令の内、所望の結果が得られるように制御されたやり方で適切な機能又はプログラミングツールキット又はプログラムライブラリ内の適切なプログラムを実行時に動的に呼出すことにより、上記したシステム、装置又は方法としての機能を実現する命令のみを含んでいればよい。もちろん、プログラムのみで必要な機能を全て提供してもよい。
【0103】
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内での全ての変更を含む。
【符号の説明】
【0104】
50、530 対話システム補強装置
52 対話システム
60、600、630 トピック抽出部
62 ニュースタイトル取得部
64、604 応答可否判定部
66 ニュースDB
68、544 対話履歴DB
70、74、554 選択部
72、606、662 応答生成部
78 ニュースタイトル
150 モデル学習装置
160 大規模テキストデータベース
162 モデル学習部
164 ニュース用語辞書
166 接続語辞書
168 ニュースらしさ判定モデル
170 ニュースタイトル記憶部
172 ニュースタイトルスコアリング部
174 スコア付ニュースタイトル
190 テキスト抽出・分類部
192 学習用テキスト記憶部
194 学習処理部
220 MCNN
260、262、264、266 畳み込みニューラルネットワーク群
280 サブネットワーク
360 ニュースタイトル候補
540 分岐部
542 状態判定部
548 質問回答DB
550 質問処理部
574 回答処理部
602 質問回答取得部
632 回答判定部
660 回答文抽出部