(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-14
(45)【発行日】2022-04-22
(54)【発明の名称】対話応答システム、モデル学習装置および対話装置
(51)【国際特許分類】
G06F 16/90 20190101AFI20220415BHJP
G06F 40/56 20200101ALI20220415BHJP
G06N 20/00 20190101ALI20220415BHJP
【FI】
G06F16/90 100
G06F40/56
G06N20/00 130
(21)【出願番号】P 2017192845
(22)【出願日】2017-10-02
【審査請求日】2020-09-25
(31)【優先権主張番号】P 2017160329
(32)【優先日】2017-08-23
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】301022471
【氏名又は名称】国立研究開発法人情報通信研究機構
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】阿部 憲幸
(72)【発明者】
【氏名】大西 可奈子
(72)【発明者】
【氏名】鳥澤 健太郎
(72)【発明者】
【氏名】木俵 豊
【審査官】松尾 真人
(56)【参考文献】
【文献】特開2017-037588(JP,A)
【文献】特開2013-190985(JP,A)
【文献】特開2000-339314(JP,A)
【文献】米国特許出願公開第2016/0283491(US,A1)
【文献】米国特許出願公開第2016/0026629(US,A1)
【文献】特開2006-252381(JP,A)
【文献】守時 理裕,音声対話システムにおけるユーザ適応技術の統合手法の提案,言語処理学会第13回年次大会発表論文集,言語処理学会,2007年03月19日,pp.1018~1021
【文献】樋口 真介,Webを利用した連想単語及びモダリティ表現による雑談システム,言語処理学会第14回年次大会発表論文集,言語処理学会,2008年03月17日,pp.175~178
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 40/20-40/58
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
学習用の発話文と、テキストデータベースの文を検索することによって取得された前記学習用の発話文に関連する学習用の関連文と、前記学習用の関連文が対話の応答として適切な形式に修正された学習用の応答文とを含む学習用コーパスを記憶するコーパス記憶部と、
前記学習用コーパスを用いて、関連文を入力に含み、
応答文を出力とする応答文生成モデルを学習する学習処理部とを備えたモデル学習装置と、
対話実行用の発話文が入力される発話文入力部と、
テキストデータベースの文を検索することによって、前記対話実行用の発話文に関連する対話実行用の関連文を取得する関連文取得部と、
発話文に関連する関連文を入力として含み、前記入力に応答して前記応答文を出力とするように学習された応答文生成モデルに前記対話実行用の関連文を入力することによって、対話実行用の応答文を生成する応答文生成部とを備えた対話装置とよりなる対話応答システム。
【請求項2】
発話文に対して応答文を自動生成する対話装置で使用される応答文生成モデルを学習するモデル学習装置であって、
学習用の発話文と、テキストデータベースの文を検索することによって取得された前記学習用の発話文に関連する学習用の関連文と、前記学習用の関連文が対話の応答として適切な形式に修正された学習用の応答文とを含む学習用コーパスを記憶するコーパス記憶部と、
前記学習用コーパスを用いて、関連文を入力に含み、前記応答文を出力とする応答文生成モデルを学習する学習処理部とを備えた、モデル学習装置。
【請求項3】
前記コーパス記憶部は、前記学習用の発話文と、一又は複数の前記学習用の関連文と、前記学習用の応答文とを含む学習用コーパスを記憶し、
前記学習処理部は、前記学習用コーパスを用いて、前記発話文および前記関連文を入力に含み、前記応答文を出力とする応答文生成モデルを学習する、請求項2記載のモデル学習装置。
【請求項4】
発話文に対して応答文を自動生成する対話装置であって、
対話実行用の発話文が入力される発話文入力部と、
テキストデータベースの文を検索することによって、前記対話実行用の発話文に関連する対話実行用の関連文を取得する関連文取得部と、
前記発話文に関連する関連文を入力として含み、前記入力に応答して前記応答文を出力とするように学習された応答文生成モデルに前記対話実行用の関連文を入力することによって、対話実行用の応答文を生成する応答文生成部とを備えた対話装置。
【請求項5】
前記応答文生成モデルは、前記発話文および前記関連文を前記入力として含み、
前記応答文生成部は、前記対話実行用の発話文および一又は複数の前記対話実行用の関連文を前記応答文生成モデルに入力することによって、前記
対話実行用の応答文を生成する、請求項4記載の対話装置。
【請求項6】
ユーザ発話文とユーザ応答文からなる対話データの前記ユーザ応答文に含まれる少なくとも一つの名詞及びもしくは少なくとも1つの述語が含まれる文を前記学習用の関連文として取得し、前記ユーザ応答文から前記学習用の関連文に含まれる名詞及びもしくは述語に関連する箇所を抽出して、前記学習用の応答文とするコーパス生成部を備える、請求項2記載のモデル学習装置。
【請求項7】
モデル学習装置と対話装置とからなる対話応答システムであって、
前記モデル学習装置は、
学習用の発話文と、テキストデータベースの文を検索することによって取得された前記学習用の発話文に関連する関連文と、前記関連文の適合度とを含む学習用コーパスを記憶するコーパス記憶部と、
前記学習用コーパスを用いて、発話文および関連文を入力に含み、適合度を出力とする適合性判定モデルを学習する第1の学習処理部とを備え、
前記対話装置は、
対話実行用の発話文が入力される発話文入力部と、
テキストデータベースの文を検索することによって、前記対話実行用の発話文に関連する
対話実行用の関連文を取得する関連文取得部と、
前記発話文と前記関連文を入力に含み、前記入力に応答して前記関連文の適合度を出力するように学習された適合性判定モデルに、前記対話実行用の発話文および前記取得した
前記対話実行用の関連文を入力することによって、適合度を生成する関連文適合性判定部とを備え
、
前記コーパス記憶部は、さらに、前記関連文の適合度が高い学習用の関連文が対話の応答として適切な形式に修正された学習用の応答文とを含む学習用コーパスを記憶し、
前記モデル学習装置は、さらに、
前記学習用の関連文と前記学習用の応答文を用いて、関連文を入力に含み、応答文を出力とする応答文生成モデルを学習する第2の学習処理部を備え、
前記対話装置は、さらに、
前記発話文に関連する関連文を入力として含み、前記入力に応答して前記応答文を出力とするように学習された応答文生成モデルに前記対話実行用の関連文を入力することによって、対話実行用の応答文を生成する応答文生成部を備える、対話応答システム。
【請求項8】
ユーザ発話文とユーザ応答文からなる対話データの前記ユーザ応答文に含まれる少なくとも一つの名詞及びもしくは少なくとも1つの述語が含まれる文を適合度の高い前記関連文として取得し、
前記ユーザ応答文に含まれる1つの名詞と、前記ユーザ応答文に含まれない少なくとも1つの名詞とを含む文を適合度の低い前記関連文として取得するコーパス生成部を備える、請求項7記載の対話応答システム。
【請求項9】
モデル学習装置と対話装置とからなる対話応答システムであって、
前記モデル学習装置は、
学習用の発話文と、前記学習用の発話文に関連する関連文を取得するためにテキストデータベースの文を検索するときに用いられる検索トピックと、前記検索トピックの適合度とを含む学習用コーパスを記憶するコーパス記憶部と、
前記学習用コーパスを用いて、発話文および検索トピックを入力に含み、適合度を出力とする適合性判定モデルを学習する第1の学習処理部とを備え、
前記対話装置は、
対話実行用の発話文が入力される発話文入力部と、
前記対話実行用の発話文に基づいて、前記対話実行用の発話文に関連する関連文を取得するためにテキストデータベースの文を検索するときに用いられる検索トピックを生成する第1のトピック生成部と、
前記発話文と前記検索トピックを入力に含み、前記入力に応答して前記検索トピックの適合度を出力するように学習された適合性判定モデルに、前記対話実行用の発話文および前記生成した検索トピックを入力することによって、適合度を生成するトピック適合性判定部と、
前記トピック適合性判定部で生成された適合度に基づいて、複数の検索トピックの中から1つの検索トピックを選択する選択部と、
前記選択された検索トピックを用いて、テキストデータベースの文を検索することによって、前記対話実行用の発話文に関連する
対話実行用の関連文を取得する第1の関連文取得部とを備え
、
前記コーパス記憶部は、テキストデータベースの文を検索することによって取得された前記学習用の発話文に関連する学習用の関連文と、前記学習用の関連文が対話の応答として適切な形式に修正された学習用の応答文とを含む学習用コーパスを記憶し、
前記モデル学習装置は、さらに、
前記学習用の関連文と前記学習用の応答文とを用いて、関連文を入力に含み、応答文を出力とする応答文生成モデルを学習する第2の学習処理部を備え、
前記対話装置は、さらに、
前記発話文に関連する関連文を入力として含み、前記入力に応答して前記応答文を出力とするように学習された応答文生成モデルに前記対話実行用の関連文を入力することによって、対話実行用の応答文を生成する応答文生成部を備える、対話応答システム。
【請求項10】
前記モデル学習装置は、
前記学習用の発話文に基づいて、前記検索トピックを生成する第2のトピック生成部と、
前記生成された検索トピックを用いて、テキストデータベースの文を検索することによって、前記学習用の発話文に関連する関連文を取得する第2の関連文取得部とを備え、
前記第1のトピック生成部および前記第2のトピック生成部は、主トピックと副トピックとからなる検索トピックを生成し、
前記第1の関連文取得部および前記第2の関連文取得部は、前記検索トピックが前記主トピックと前記副トピックからなる場合には、述部に直接係る主トピックを含み、かつ述部に直接係らない副トピックを含む関連文を取得する、請求項
9記載の対話応答システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、対話応答システム、モデル学習装置および対話装置に関する。
【背景技術】
【0002】
近年、人と対話可能なコンピュータ(対話応答システム)が数多く出現してきたが、そのほとんどは、人手で書かれた応答文またはテンプレートを用いて人手で作成された応答文を、ユーザ発話に応じて出力しているに過ぎない。Webから取得できる文(以下、Web取得文)を対話に用いることできれば、対話応答システム開発において大幅なコストダウンとなるが、現状では、Web取得文は、対話応答システム開発に有効に利用されていない。その理由は、Web取得文は、対話において応答文としては不完全または不自然で違和感を生じさせることが多いからである。たとえば、Web取得文には、ニュースのタイトルに多い「自動車、タイでエンジンの生産を開始」のような名詞で終わる文、「こうしたブランドのメガネフレームは深い輝きを持つ」のような前後の文脈がないと成り立たない文、または発話に対しては不適切な部分または冗長な部分を含んでいる文などがある。Web取得文は、文自体としては、おかしくないけれども、発話に対する応答としては違和感を生じさせることが多い。したがって、Web取得文を対話応答システムで用いるためには、応答文として適切な形に変換することが必要となる。
【0003】
従来から、語尾を変換することにより対話応答システムのキャラクタを表現したり、文意を変えたりする技術が知られている。たとえば、語尾変換によるキャラクタ表現技術として、語尾の「です・ます」を「だ・である」に変換する技術、および語尾を関西弁風に変換する技術が知られている。文意を変える技術として、たとえば「今夜はハンバーグを食べる」という文を「今夜はハンバーグを食べましょう」と提案風の語尾に変換する技術、および「今夜はハンバーグを食べるの?」と疑問系に変換する技術が知られている。しかしながら、これらの技術では、ユーザ発話に対する応答として適切な形に変換することができない。たとえば、発話文「冬越しの貯食をすることで知られている野鳥にヤマガラがいます。」に対する応答文が「良い天気で雲も少なく、湖の周辺ではヤマガラ、ツグミなど野鳥見ることもできた。」である場合、応答文の語尾を変換したとしても、応答文は、発話に対して適切とはいえない。なぜなら、応答文に含まれる「良い天気で雲も少なく、」が意味を成していないため、少なくともこの「良い天気で雲も少なく、」は削除する必要があるからである。
【0004】
特許文献1には、敬体表現を常態表現に精度良く変換する方法が記載されている。この方法によって、例えば、語尾の「です」または「ます」を「だ」に変換することができる。
【0005】
特許文献2には、対話者の知識量に応じた表現に言い換える方法が記載されている。この方法によって、例えばワインに詳しくない相手に応答する場合は、「ボジョレーが好きです」を「赤ワインが好きです」に言い換えることができる。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2017-68879号公報
【文献】特開2017-91368号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1では、敬体表現を常態表現に変換することができるが、変換できるのは語尾に限られる。また、いつどの語尾に変換することが適切なのかを見極めることもできない。特許文献2では、対話者の知識量に応じた表現に言い換えるが、知識レベルが一致しても応答文として適切でない場合は多々ある。たとえば、特許文献2では、前述のような応答文における「良い天気で雲も少なく、」のような不要な箇所を削除することができない。
【0008】
それゆえに、本発明の目的は、発話に対して、対話らしく応答することを可能にする対話応答システム、モデル学習装置および対話装置を提供することである。
【課題を解決するための手段】
【0009】
本発明の対話応答システムは、モデル学習装置と、対話装置とを備える。モデル学習装置は、学習用の発話文と、テキストデータベースの文を検索することによって取得された学習用の発話文に関連する学習用の関連文と、学習用の関連文が対話の応答として適切な形式に修正された学習用の応答文とを含む学習用コーパスを記憶するコーパス記憶部と、学習用コーパスを用いて、関連文を入力に含み、応答文を出力とする応答文生成モデルを学習するモデル学習部とを備える。対話装置は、対話実行用の発話文が入力される発話文入力部と、テキストデータベースの文を検索することによって、対話実行用の発話文に関連する対話実行用の関連文を取得する関連文取得部と、発話文に関連する関連文を入力として含み、入力に応答して応答文を出力とするように学習された応答文生成モデルに対話実行用の関連文を入力することによって、対話実行用の応答文を生成する応答文生成部とを備える。
【0010】
本発明の対話応答システムは、モデル学習装置と対話装置とからなる対話応答システムである。モデル学習装置は、学習用の発話文と、テキストデータベースの文を検索することによって取得された学習用の発話文に関連する関連文と、関連文の適合度とを含む学習用コーパスを記憶するコーパス記憶部と、学習用コーパスを用いて、発話文および関連文を入力に含み、適合度を出力とする適合性判定モデルを学習する第1の学習処理部とを備える。対話装置は、対話実行用の発話文が入力される発話文入力部と、テキストデータベースの文を検索することによって、対話実行用の発話文に関連する関連文を取得する関連文取得部と、発話文と関連文を入力に含み、入力に応答して関連文の適合度を出力するように学習された適合性判定モデルに、対話実行用の発話文および取得した関連文を入力することによって、適合度を生成する関連文適合性判定部とを備える。
【0011】
本発明の対話応答システムは、モデル学習装置と対話装置とからなる対話応答システムである。モデル学習装置は、学習用の発話文と、学習用の発話文に関連する関連文を取得するためにテキストデータベースの文を検索するときに用いられる検索トピックと、検索トピックの適合度とを含む学習用コーパスを記憶するコーパス記憶部と、学習用コーパスを用いて、発話文および検索トピックを入力に含み、適合度を出力とする適合性判定モデルを学習する第1の学習処理部とを備える。対話装置は、対話実行用の発話文が入力される発話文入力部と、対話実行用の発話文に基づいて、対話実行用の発話文に関連する関連文を取得するためにテキストデータベースの文を検索するときに用いられる検索トピックを生成する第1のトピック生成部と、発話文と検索トピックを入力に含み、入力に応答して検索トピックの適合度を出力するように学習された適合性判定モデルに、対話実行用の発話文および生成した検索トピックを入力することによって、適合度を生成するトピック適合性判定部と、トピック適合性判定部で生成された適合度に基づいて、複数の検索トピックの中から1つの検索トピックを選択する選択部と、選択された検索トピックを用いて、テキストデータベースの文を検索することによって、対話実行用の発話文に関連する関連文を取得する第1の関連文取得部とを備える。
【発明の効果】
【0012】
本発明によれば、テキストデータベースから取得したデータを質の良い応答文として利用することが可能となる。その結果、対話応答システムの利用範囲が大幅に広がる。
【図面の簡単な説明】
【0013】
【
図1】第1の実施形態の対話応答システム1の構成を表わす図である。
【
図2】第1の実施形態の学習用発話文、学習用関連文、および学習用応答文の例を表わす図である。
【
図3】第1の実施形態の対話実行用発話文、対話実行用関連文、および対話実行用応答文の例を表わす図である。
【
図4】第1の実施形態の応答生成学習処理部6の構成を表わす図である。
【
図5】第1の実施形態の応答文生成部9の構成を表わす図である。
【
図6】第1の実施形態のモデル学習装置2の動作手順を表わすフローチャートである。
【
図7】第1の実施形態の対話装置3の動作手順を表わすフローチャートである。
【
図8】第2の実施形態の対話応答システム21の構成を表わす図である。
【
図9】第2の実施形態の学習用発話文、学習用関連文、および学習用応答文の例を表わす図である。
【
図10】第2の実施形態の対話実行用発話文、対話実行用関連文、および対話実行用応答文の例を表わす図である。
【
図11】第2の実施形態の応答生成学習処理部26の構成を表わす図である。
【
図12】第2の実施形態の応答文生成部29の構成を表わす図である。
【
図13】第2の実施形態のモデル学習装置22の動作手順を表わすフローチャートである。
【
図14】第2の実施形態の対話装置23の動作手順を表わすフローチャートである。
【
図15】第3の実施形態の対話応答システム31の構成を表わす図である。
【
図16】第3の実施形態の対話データ、学習用発話文、学習用関連文、および学習用応答文の例を表わす図である。
【
図17】第3の実施形態のモデル学習装置32の動作手順を表わすフローチャートである。
【
図18】第4の実施形態の対話応答システム41の構成を表わす図である。
【
図19】データベース1054に記憶されている元文の例を表わす図である。
【
図20】モデル学習装置42の関連文取得部42によって用いられる文の例を表わす図である。
【
図21】対話装置43の関連文取得部48によって用いられる文の例を表わす図である。
【
図22】第4の実施形態のモデル学習装置42の動作手順を表わすフローチャートである。
【
図23】第4の実施形態の対話装置43の動作手順を表わすフローチャートである。
【
図24】第5の実施形態の対話応答システム81の構成を表わす図である。
【
図25】第5の実施形態の応答生成学習処理部86の構成を表わす図である。
【
図26】第6の実施形態の対話応答システム91の構成を表わす図である。
【
図27】第6の実施形態の応答生成学習処理部96の構成を表わす図である。
【
図28】第7の実施形態の対話応答システム551の構成を表わす図である。
【
図29】第8の実施形態の対話応答システム1100の構成を表わす図である。
【
図30】不適合関連文の例を説明するための図である。
【
図31】コーパス記憶部1108に記憶されている学習用コーパスの例を表わす図である。
【
図32】第8の実施形態の適合判定学習処理部1105および関連文適合性判定部1101で用いられる適合性判定モデルX1を実現するニューラルネットワークを表わす図である。
【
図33】畳み込みニューラルネットワークCNN1における畳み込み演算の詳細を表わす図である。
【
図34】畳み込みニューラルネットワークCNN2における畳み込み演算の詳細を表わす図である。
【
図35】第8の実施形態のモデル学習装置1120の動作手順を表わすフローチャートである。
【
図36】第8の実施形態の対話装置1130の動作手順を表わすフローチャートである。
【
図37】第9の実施形態の対話応答システム1200の構成を表わす図である。
【
図38】第9の実施形態の対話データ、学習用発話文、学習用関連文、および学習用応答文の例を表わす図である。
【
図39】第9の実施形態のモデル学習装置1220の動作手順を表わすフローチャートである。
【
図40】第10の実施形態の対話応答システム1300の構成を表わす図である。
【
図41】学習用発話文、検索トピック、関連文、適合度の例を表わす図である。
【
図42】(a)は、コーパス記憶部1308に記憶されている学習用コーパスのうちの学習用関連文と学習用応答文の複数のセットの例を表わす図である。(b)は、コーパス記憶部1308に記憶されている学習用コーパスのうちの学習用発話文と検索トピックと適合度の複数のセットの例を表わす図である。
【
図43】第10の実施形態の適合判定学習処理部1305およびトピック適合性判定部1312で用いられる適合性判定モデルX2を実現するニューラルネットワークを表わす図である。
【
図44】畳み込みニューラルネットワークCNN3における畳み込み演算の詳細を表わす図である。
【
図45】畳み込みニューラルネットワークCNN4における畳み込み演算の詳細を表わす図である。
【
図46】第10の実施形態のモデル学習装置1320の動作手順を表わすフローチャートである。
【
図47】第10の実施形態の対話装置1330の動作手順を表わすフローチャートである。
【
図48】モデル学習装置または対話装置の内部構成を表わす図である。
【発明を実施するための形態】
【0014】
以下、実施の形態について、図面を用いて説明する。
[第1の実施形態]
図1は、第1の実施形態の対話応答システム1の構成を表わす図である。対話応答システム1は、モデル学習装置2と、対話装置3とを備える。
【0015】
モデル学習装置2は、コーパス生成部4と、コーパス記憶部5と、応答生成学習処理部6と、パラメータ記憶部14とを備える。コーパス生成部4は、発話文入力部11と、関連文取得部12と、学習用応答文入力部13と、コーパス出力部64とを備える。
【0016】
発話文入力部11は、開発側の人員によって作成された学習用発話文の入力を受ける。
関連文取得部12は、テキストデータベースを検索することによって、学習用発話文に関連する文を取得して、学習用関連文とする。たとえば、関連文取得部12は、テキストデータベースの1種であるWeb1000上に掲載された文を検索することによって、学習用発話文に関連する文を取得して、学習用関連文とする。関連文取得部12は、たとえば、Web1000上に掲載された文を検索することによって、学習用発話文に含まれる名詞を最も多く含む1つの文を学習用関連文として取得する。関連文取得部12は、検索エンジンなどを利用することによって、人手または自動でWeb1000上のデータを検索することによって、学習用関連文を取得する。
【0017】
Web1000上に掲載された文とは、関連文取得の時点でWeb1000上に掲載されている文(第1のケース)、または関連文取得の時点よりも前にWeb1000上に掲載された後、データベースに取り込まれた文(第2のケース)である。第1のケースでは、関連文取得部12は、Web1000を直接検索する。第2のケースでは、関連文取得部12は、データベースを検索する。
【0018】
学習用応答文入力部13は、学習用応答文の入力を受ける。学習用応答文は、開発側の人員によって、発話に対して対話の応答として適切になるように予め定められた規則に従って、学習用関連文を修正することによって生成される。発話に対して対話の応答として適切とは、たとえば、対話の応答として重要な部分を維持する、対話の応答らしい語尾を含む、対話の応答として冗長な部分を含まない、前後の文脈がないと成立しない部分を含まない、または対話の応答らしい助詞を含む、対話の応答らしい語順である、などである。開発側の人員によって学習用応答文が作成されるので、質の良い学習用応答文が得られる。
【0019】
コーパス出力部64は、学習用関連文と学習用応答文のセットを複数含む学習用コーパスを生成して、コーパス記憶部5に書込む。コーパス記憶部5は、学習用コーパスを記憶する。
【0020】
応答生成学習処理部6は、学習用コーパスを用いて、関連文を入力とし、応答文を出力とする応答文生成モデルAを学習する。応答文生成モデルAは、深層学習のニューラルネットワークと、そのパラメータとからなる。
【0021】
パラメータ記憶部14は、応答生成学習処理部6による応答文生成モデルAの学習後のパラメータを記憶する。パラメータ記憶部14は、ニューラルネットワークの学習後のパラメータ(重み行列など)を記憶する。パラメータ記憶部14に記憶されている応答文生成モデルAの学習後のパラメータは、入出力ポートなどを介して外部へ取り出されることができる。
【0022】
図2は、第1の実施形態の学習用発話文、学習用関連文、および学習用応答文の例を表わす図である。
図2に示すように、学習用発話文「ぽつぽつしてきたから、洗濯物取り込まなきゃね。」に含まれる名詞「洗濯物」を含む文がWeb1000から検索されて、学習用関連文「浴槽温暖機で洗濯物を乾かす早さベストアンサー」が取得される。そして、学習用関連文に含まれる対話の応答として冗長な部分「早さベストアンサー」が削除されるとともに、対話らしくない語尾「乾かす」が対話らしい語尾「乾かそう」に置き換えられることによって、学習用応答文「浴槽温暖機で洗濯物を乾かそう。」が作成される。このような学習用関連文と学習用応答文とを用いた学習によって、関連文から、対話として適切な応答文を生成する応答文生成モデルAが生成される。
【0023】
対話装置3は、発話文入力部7と、関連文取得部8と、パラメータ記憶部15と、応答文生成部9とを備える。
【0024】
発話文入力部7は、ユーザからの対話実行用発話文の入力を受ける。
関連文取得部8は、テキストデータベースを検索することによって、対話実行用発話文に関連する文を取得して、対話実行用関連文とする。たとえば、関連文取得部8は、テキストデータベースの1種であるWeb1000上に掲載された文を検索することによって、対話実行用発話文に関連する文を取得して、対話実行用関連文とする。関連文取得部8は、たとえば、Web1000上に掲載された文を検索することによって、対話実行用発話文に含まれる名詞を含む1つの文を対話実行用関連文として取得する。関連文取得部8は、検索エンジンなどを利用することによって、ユーザの操作または自動でWeb1000上のデータを検索することによって、対話実行用関連文を取得する。
【0025】
パラメータ記憶部15は、モデル学習装置2による応答文生成モデルAの学習後のパラメータを記憶する。たとえば、パラメータ記憶部15は、ニューラルネットワークの学習後のパラメータ(重み行列など)を記憶する。モデル学習装置2から外部に取り出された応答文生成モデルAの学習後のパラメータが対話装置3に入力され、パラメータ記憶部15に記憶される。これらのパラメータは、対話装置3の機能を実現するプログラムとともに、ユーザに頒布されるものとしてもよい。
【0026】
応答文生成部9は、対話実行用関連文を学習後の応答文生成モデルAに入力することによって、対話実行用応答文を生成する。たとえば、応答文生成部9は、学習後のニューラルネットワークに対話実行用関連文を入力して、ニューラルネットワークの出力を対話実行用応答文とすることができる。
【0027】
図3は、第1の実施形態の対話実行用発話文、対話実行用関連文、および対話実行用応答文の例を表わす図である。
図3に示すように、対話実行用発話文「やっぱり、ブランドの眼鏡フレームは、いいですね。」に含まれる「眼鏡フレーム」を含む文がWeb1000から検索されて、対話実行用関連文「こうしたブランドの眼鏡フレームは深い輝きを持つ。」が取得される。そして、対話実行用関連文に含まれる前後の文脈がないと成立しない部分「こうした」が削除されるとともに、対話らしくない語尾「持つ」が対話らしい語尾「持ちますね」に置き換えられた対話実行用応答文「ブランドの眼鏡フレームは深い輝きを持ちますね。」が生成される。
【0028】
図4は、第1の実施形態の応答生成学習処理部6の構成を表わす図である。応答生成学習処理部6は、エンコーダ151と、デコーダ152とを備える。応答生成学習処理部6は、応答文生成モデルAの一例であるSequence to Sequence モデルを学習する。
【0029】
エンコーダ151は、時間軸(t=1~m)に沿って展開されたリカレントニューラルネットワークを備える。時刻tの入力ベクトルをx1(t)、隠れ層のベクトルをh1(t)とする。
【0030】
時刻tの隠れ層は、時刻tの入力層に入力された学習用関連文の単語を表わす入力ベクトルx1(t)を受け取るとともに、時刻(t-1)の隠れ層のベクトルh1(t-1)を受け、ベクトルh1(t)を時刻(t+1)の隠れ層に出力する。ただし、時刻1の隠れ層は、入力ベクトルx1(1)のみを受け取る。たとえば、時刻1の入力ベクトルx1(1)は、「京都」を表わすベクトルであり、時刻2の入力ベクトルx1(2)は、「で」を表わすベクトルである。なお、本実施の形態では、単語を表すベクトルとしていわゆる単語埋め込みベクトル(例えばword2vectorにより得られるもの)等を用いてもよい。
【0031】
時刻tの重み行列をU1(t)、W1(t)とし、バイアスをb、活性化関数をfとしたときに、以下の式が成り立つ。
【0032】
h1(t)=f(U1(1)x1(1)+b)…(1)
h1(t)=f(U1(t)x1(t)+W1(t)h1(t-1)+b)(t=1以外) …(2)
デコーダ152は、時間軸(t=1~n)に沿って展開されたリカレントニューラルネットワークを備える。時刻tの入力ベクトルをx3(t)、隠れ層のベクトルをh3(t)、出力ベクトルをy3(t)とする。
【0033】
時刻tの隠れ層は、時刻tの入力層に入力された学習用応答文の単語を表わす入力ベクトルx3(t)を受け取るとともに、時刻(t-1)の隠れ層のベクトルh3(t-1)を受け、ベクトルh3(t)を出力層および時刻(t+1)の隠れ層に出力する。ただし、時刻1の隠れ層は、入力ベクトルx3(1)と、エンコーダ151の最後の時刻mの隠れ層のベクトルh1(m)を受ける。たとえば、時刻1の入力ベクトルx3(1)は、ダミーワード(<s>)を表わすベクトルであり、時刻2の入力ベクトルx3(2)は、単語「京都」を表わすベクトルである。時刻tの出力層は、時刻tの隠れ層からベクトルh3(t)を受け、出力ベクトルy3(t)を出力する。出力ベクトルy3(t)は、時刻(t+1)の入力ベクトルx3(t+1)を予測したものである。
【0034】
時刻tの重み行列をU3(t)、W3(t)、V3(t)とし、バイアスをb、c、活性化関数をf、gとしたときに、以下の式が成り立つ。
【0035】
h3(1)=f(U3(1)x3(1)+W3(1)h1(m)+b)…(3)
h3(t)=f(U3(t)x3(t)+W3(t)h3(t-1)+b)(t=1以外)…(4)
y3(t)=g(V3(t)h3(t)+c)…(5)
デコーダ152では、出力ベクトルy3(1)~y3(n)で構成される出力文とx3(1)~x3(n)で構成される学習用応答文(教師データ)との誤差が求められる。時刻tの出力ベクトルy3(t)と、入力ベクトルx3(t+1)との誤差E(t)が求められる。ただし、時刻t=nでは、出力ベクトルy3(n)と、時刻1の入力ベクトルx3(1)(ダミーワード(<s>))との誤差E(n)が求められる。これらの誤差は、デコーダ152内の時刻tよりも前の隠れ層、およびエンコーダ151内の隠れ層(時刻t=1~m)に逆伝搬される。デコーダ152内の時刻tの隠れ層に逆伝搬されてきた誤差の和を最小化するように重み行列W3(t)、U3(t)、V3(t)が更新される。エンコーダ151内の時刻tの隠れ層に逆伝搬されてきた誤差の和を最小化するようにW1(t)、U1(t)が更新される。学習後の応答文生成モデルAのパラメータである重み行列W3(t)、U3(t)、V3(t)、W1(t)、U1(t)は、パラメータ記憶部14に記憶される。
【0036】
図5は、第1の実施形態の応答文生成部9の構成を表わす図である。応答文生成部9は、エンコーダ153と、デコーダ154とを備える。応答文生成部9は、学習後の応答文生成モデルAの一例である学習後のSequence to Sequence モデルを用いて、対話実行用応答文を生成する。
【0037】
図5において、応答文生成モデルAの学習後のパラメータである重み行列W3(t)、U3(t)、V3(t)、W1(t)、U1(t)がパラメータ記憶部15から読み出されて設定される。これらは、
図4の応答生成学習処理部6による学習(更新)によって得られたものが用いられる。
【0038】
エンコーダ153は、エンコーダ151と同様の時間軸(t=1~m)に沿って展開されたリカレントニューラルネットワークを備える。ただし、時刻tの入力層に入力される入力ベクトルx1(t)は、学習用関連文の単語ではなく、対話実行用関連文の単語である。
【0039】
デコーダ154は、時間軸(t=1~n)に沿って展開されたリカレントニューラルネットワークを備える。時刻tの入力ベクトルをx3(t)、隠れ層のベクトルをh3(t)、出力ベクトルをy3(t)とする。
【0040】
時刻tの隠れ層は、時刻(t-1)の出力ベクトルy3(t-1)を受け取るとともに、時刻(t-1)の隠れ層のベクトルh3(t-1)を受け、ベクトルh3(t)を出力層および時刻(t+1)の隠れ層に出力する。ただし、時刻1の隠れ層は、ダミーワードを表わすベクトルDと、エンコーダ151の最後の時刻mの隠れ層のベクトルh1(m)を受ける。時刻tの出力層は、時刻tの隠れ層からベクトルh3(t)を受け、出力ベクトルy3(t)を出力する。
【0041】
時刻tの重み行列をU3(t)、W3(t)、V3(t)とし、バイアスをb、c、活性化関数をf、gとしたときに、以下の式が成り立つ。
【0042】
h3(1)=f(D+W3(1)h1(m)+b)…(6)
h3(t)=f(U3(t)y3(t-1)+W3(t)h3(t-1)+b)(t=1以外)…(7)
y3(t)=g(V3(t)h3(t)+c)…(8)
図6は、第1の実施形態のモデル学習装置2の動作手順を表わすフローチャートである。
【0043】
ステップS101において、発話文入力部11は、学習用発話文の入力を受ける。
ステップS102において、関連文取得部12は、学習用発話文に関連する学習用関連文をテキストデータベースの1種であるWeb1000から取得する。
【0044】
ステップS103において、学習用応答文入力部13は、学習用関連文を対話の応答として適切になるように、開発側の人員の操作によって学習用関連文を修正することによって生成された学習用応答文の入力を受ける。
【0045】
ステップS104において、ステップS101~S103がすべての入力が完了するまで繰り返されることによって、複数セットの学習用関連文と学習用応答文とが得られる。コーパス出力部64は、学習用関連文と学習用応答文のセットを複数を含む学習用コーパスを生成して、コーパス記憶部5に書込む。コーパス記憶部5は、学習用コーパスを記憶する。
【0046】
ステップS105において、応答生成学習処理部6は、学習用コーパスを用いて、関連文を入力とし、応答文を出力とする応答文生成モデルAを学習する。
【0047】
ステップS106において、パラメータ記憶部14は、応答生成学習処理部6による応答文生成モデルAの学習後のパラメータを記憶する。
【0048】
図7は、第1の実施形態の対話装置3の動作手順を表わすフローチャートである。
ステップS201において、応答文生成部9は、パラメータ記憶部15に記憶されているモデル学習装置2による応答文生成モデルAの学習後のパラメータを読み出す。
【0049】
ステップS202において、発話文入力部7は、ユーザから対話実行用発話文の入力を受ける。
【0050】
ステップS203において、関連文取得部8は、対話実行用発話文に関連する対話実行用関連文をテキストデータベースの1種であるWeb1000から取得する。
【0051】
ステップS204において、応答文生成部9は、読み出したパラメータを用いることによって得られる学習後の応答文生成モデルAに対話実行用関連文を入力することによって、対話実行用応答文を生成する。
【0052】
以上のように、本実施の形態によれば、発話に基づいて得られる応答候補である関連文を適切な応答文に変換することができる。これにより、Webで取得することができる膨大な数の文を対話応答システムの応答として利用することができる。
【0053】
[第2の実施形態]
図8は、第2の実施形態の対話応答システム21の構成を表わす図である。対話応答システム21は、モデル学習装置22と、対話装置23とを備える。本実施の形態のモデル学習装置22が、第1の実施形態のモデル学習装置2と相違する点は、コーパス生成部24に含まれる学習用応答文入力部38およびコーパス出力部74と、コーパス記憶部25と、応答生成学習処理部26とである。
【0054】
学習用応答文入力部38は、学習用応答文の入力を受ける。学習用応答文は、開発側の人員の操作によって、今回の発話に対する対話の応答として適切になるように予め定められた規則に従って、学習用関連文を修正することによって作成される。今回の発話に対する対話の応答として適切とは、第1の実施形態で説明したような一般的な対話の応答として適切(対話らしい語尾を含む、対話として冗長な部分を含まない、前後の文脈がないと成立しない部分を含まない、または対話らしい助詞を含むなど)であるだけではなく、今回入力された発話文に対する応答として適切である(たとえば不自然な部分を含まないなど)ことである。
【0055】
コーパス出力部74は、学習用発話文と学習用関連文と学習用応答文のセットを複数含む学習用コーパスを生成して、コーパス記憶部25に書込む。コーパス記憶部25は、学習用コーパスを記憶する。
【0056】
応答生成学習処理部26は、学習用コーパスを用いて、発話文および関連文を入力とし、応答文を出力とする応答文生成モデルBを学習する。応答文生成モデルBは、発話文も入力とする点において、応答文生成モデルAと異なる。応答文生成モデルBは、深層学習のニューラルネットワークと、そのパラメータとからなる。
【0057】
図9は、第2の実施形態の学習用発話文、学習用関連文、および学習用応答文の例を表わす図である。
図9に示すように、学習用発話文「冬越しの貯食をすることで知られている野鳥にヤマガラがいます。」に含まれる「ヤマガラ」を含む文がWeb1000から検索されて、学習用関連文「良い天気で雲も少なく、湖の周辺ではヤマガラ、ツグミなど野鳥見ることもできた。」が取得される。そして、学習用関連文から、今回の学習用発話文に対する応答として不自然な部分「良い天気で雲も少なく、」が削除されるとともに、対話らしくない語尾「できた」が応答として相応しい語尾「できますよ」に置き換えられることによって、学習用応答文「湖の周辺ではヤマガラ、ツグミなど野鳥を見ることもできますよ。」が作成される。このような学習用発話文と学習用関連文と学習用応答文とを用いた学習によって、発話文と関連文から、発話に対する応答として適切な応答文を生成する応答文生成モデルBが生成される。
【0058】
本実施の形態の対話装置23が、第1の実施形態の対話装置3と相違する点は、応答文生成部29である。応答文生成部29は、対話実行用発話文および対話実行用関連文を学習後の応答文生成モデルBに入力することによって、対話実行用応答文を生成する。
【0059】
図10は、第2の実施形態の対話実行用発話文、対話実行用関連文、および対話実行用応答文の例を表わす図である。
図10に示すように、対話実行用発話文「花粉が飛び始めたようだ。」に含まれる「花粉」を含む文がWeb1000から検索されて、対話実行用関連文「花粉で肌がヒリヒリそろそろ、紫外線も強くなってきたので恐々使用することに。」が取得される。そして、対話実行用関連文から、対話実行用発話文に対する応答として不自然な部分「ので恐々使用することに」が削除されるとともに、対話の応答らしくない語尾「なってきた」が対話の応答らしい語尾「なってきましたね」に置き換えられた対話実行用応答文「花粉で肌がヒリヒリそろそろ、紫外線も強くなってきましたね。」が生成される。
【0060】
図11は、第2の実施形態の応答生成学習処理部26の構成を表わす図である。応答生成学習処理部26は、第1の実施形態と同様に、エンコーダ151と、デコーダ152とを備え、さらに、エンコーダ157と、合成部155とを備える。応答生成学習処理部26は、応答文生成モデルBの一例であるSequence to Sequence モデルを学習する。
【0061】
エンコーダ157は、時間軸(t=1~s)に沿って展開されたリカレントニューラルネットワークを備える。エンコーダ157には、学習用発話文が入力される。時刻tの入力ベクトルをx2(t)、隠れ層のベクトルをh2(t)とする。
【0062】
時刻tの隠れ層は、時刻tの入力層に入力された学習用発話文の単語を表わす入力ベクトルx2(t)を受け取るとともに、時刻(t-1)の隠れ層のベクトルh2(t-1)を受け、ベクトルh2(t)を時刻(t+1)の隠れ層に出力する。ただし、時刻1の隠れ層は、入力ベクトルx2(1)のみを受け取る。たとえば、時刻1の入力ベクトルx2(1)は、「京都」を表わすベクトルであり、時刻2の入力ベクトルx2(2)は、「に」を表わすベクトルである。
【0063】
時刻tの重み行列をU2(t)、W2(t)とし、バイアスをb、活性化関数をfとしたときに、以下の式が成り立つ。
【0064】
h2(1)=f(U2(1)x2(1)+b)…(9)
h2(t)=f(U2(t)x2(t)+W2(t)h2(t-1)+b) (t=1以外)…(10)
合成部155は、エンコーダ151の最後の時刻mの隠れ層のベクトルh1(m)と、エンコーダ157の最後の時刻sの隠れ層のベクトルh2(s)とから1つのベクトルhhを生成する。ベクトルhhは、たとえば、h1(m)とh2(s)を加算したベクトル、重みづけ加算したベクトル、h1(m)の要素とh2(s)の要素をすべて含むベクトルとすることができる。
【0065】
デコーダ152は、時刻1の隠れ層が、エンコーダ151の最後の時刻mの隠れ層のベクトルh1(m)に代えて、ベクトルhhを受けること以外は、第1の実施形態と同様である。
【0066】
第1の実施形態と同様に、デコーダ152では、出力ベクトルy3(1)~y3(n)で構成される出力文とx3(1)~x3(n)で構成される学習用応答文(教師データ)との誤差が求められる。これらの誤差は、デコーダ152内の時刻tよりも前の隠れ層、エンコーダ151内の隠れ層(時刻t=1~m)、およびエンコーダ157内の隠れ層(時刻t=1~s)に逆伝搬される。デコーダ152内の時刻tの隠れ層に逆伝搬されてきた誤差の和を最小化するように重み行列W3(t)、U3(t)、V3(t)が更新される。エンコーダ151内の時刻tの隠れ層に逆伝搬されてきた誤差の和を最小化するようにW1(t)、U1(t)が更新される。エンコーダ157内の時刻tの隠れ層に逆伝搬されてきた誤差の和を最小化するようにW2(t)、U2(t)が更新される。学習後の応答文生成モデルBのパラメータである重み行列W3(t)、U3(t)、V3(t)、W1(t)、U1(t)、W2(t)、U2(t)は、パラメータ記憶部14に記憶される。
【0067】
図12は、第2の実施形態の応答文生成部29の構成を表わす図である。応答文生成部29は、第1の実施形態と同様にエンコーダ153と、デコーダ154とを備えるとともに、エンコーダ158と、合成部156とを備える。応答文生成部29は、学習後の応答文生成モデルBの一例である学習後のSequence to Sequence モデルを用いて、対話実行用応答文を生成する。
【0068】
図12において、応答文生成モデルBの学習後のパラメータである重み行列W3(t)、U3(t)、V3(t)、W1(t)、U1(t)、W2(t)、U2(t)がパラメータ記憶部15から読み出されて設定される。これらは、
図11の応答生成学習処理部26による学習(更新)によって得られたものが用いられる。
【0069】
エンコーダ158は、エンコーダ157と同様の時間軸(t=1~s)に沿って展開されたリカレントニューラルネットワークを備える。ただし、時刻tの入力層に入力される入力ベクトルx2(t)は、学習用関連文の単語ではなく、対話実行用発話文の単語である。
【0070】
合成部156は、エンコーダ153の最後の時刻mの隠れ層のベクトルh1(m)と、エンコーダ158の最後の時刻sの隠れ層のベクトルh2(s)とから1つのベクトルhhを生成する。ベクトルhhは、たとえば、h1(m)とh2(s)を加算したベクトル、重みづけ加算したベクトル、h1(m)の要素とh2(s)の要素をすべて含むベクトルとすることができる。
【0071】
デコーダ154は、時刻1の隠れ層が、エンコーダ151の最後の時刻mの隠れ層のベクトルh1(m)に代えて、ベクトルhhを受けること以外は、第1の実施形態と同様である。
【0072】
図13は、第2の実施形態のモデル学習装置22の動作手順を表わすフローチャートである。
【0073】
ステップS301において、発話文入力部11は、学習用発話文の入力を受ける。
ステップS302において、関連文取得部12は、学習用発話文に関連する学習用関連文をテキストデータベースの1種であるWeb1000から取得する。
【0074】
ステップS303において、学習用応答文入力部13は、学習用関連文を対話の応答として適切になるように、開発側の人員の操作によって学習用関連文を修正することによって生成された学習用応答文の入力を受ける。
【0075】
ステップS304において、ステップS301~S303がすべての入力が完了するまで繰り返されることによって、複数セットの学習用発話文と学習用関連文と学習用応答文とが得られる。コーパス出力部74は、学習用発話文と学習用関連文と学習用応答文のセットを複数含む学習用コーパスを生成して、コーパス記憶部25に書込む。コーパス記憶部25は、学習用コーパスを記憶する。
【0076】
ステップS305において、応答生成学習処理部26は、学習用コーパスを用いて、発話文および関連文を入力とし、応答文を出力とする応答文生成モデルBを学習する。
【0077】
ステップS306において、パラメータ記憶部14は、応答生成学習処理部26による応答文生成モデルBの学習後のパラメータを記憶する。
【0078】
図14は、第2の実施形態の対話装置23の動作手順を表わすフローチャートである。
ステップS401において、応答文生成部29は、パラメータ記憶部15に記憶されているモデル学習装置22による応答文生成モデルBの学習後のパラメータを読み出す。
【0079】
ステップS402において、発話文入力部7は、ユーザから対話実行用発話文の入力を受ける。
【0080】
ステップS403において、関連文取得部8は、対話実行用発話文に関連する対話実行用関連文をテキストデータベースの1種であるWeb1000から取得する。
【0081】
ステップS404において、応答文生成部29は、読み出したパラメータを用いることによって得られる学習後の応答文生成モデルBに対話実行用発話文および対話実行用関連文を入力することによって、対話実行用応答文を生成する。
【0082】
以上のように、本実施の形態によれば、モデル学習装置は、関連文だけでなく発話文も入力に含むモデルを学習するので、対話装置は、そのときの発話文に対して、より適切な応答文を生成することができる。
【0083】
[第3の実施形態]
図15は、第3の実施形態の対話応答システム31の構成を表わす図である。対話応答システム31は、モデル学習装置32と、対話装置23とを備える。
【0084】
本実施の形態の対話装置23は、第2の実施形態の対話装置23と同一である。本実施の形態のモデル学習装置32が、第2の実施形態のモデル学習装置22と相違する点は、コーパス生成部34である。
【0085】
コーパス生成部34は、対話データ取得部39と、関連文取得部45と、学習用応答文生成部63と、コーパス出力部84とを備える。
【0086】
対話データ取得部39は、twitterなどの対話データをテキストデータベースの1種であるWeb1000から取得する。対話データは、ユーザ発話文と、ユーザ応答文とからなる。
【0087】
関連文取得部45は、対話データに含まれるユーザ発話文に関連する文をテキストデータベースの1種であるWeb1000から取得して、学習用関連文とする。具体的には、関連文取得部45は、たとえば、Web1000上のデータからユーザ応答文に含まれる少なくとも1つの名詞及びもしくは少なくとも1つの述語が含まれる文を関連文として取得する。すなわち、少なくとも1つの名詞が含まれる文、少なくとも1つの述語が含まれる文、または少なくとも1つの名詞と少なくとも1つの述語が含まれる文が関連文として取得される。つまり、本実施の形態では、学習用関連文は、ユーザ発話文から直接ではなく、ユーザ発話文に対する応答であるユーザ応答文を経由して検索される。
【0088】
学習用応答文生成部63は、学習用関連文を対話らしい文に変換した学習用応答文を生成する。具体的には、学習用応答文生成部63は、対話データを構成するユーザ応答文と学習用関連文とで内容が共通する箇所を抽出することによって、学習用応答文を生成する。学習用応答文生成部63は、ユーザ応答文から学習用関連文に含まれる名詞及びもしくは述語に関連する箇所を抽出して、学習用応答文とすることができる。すなわち、ユーザ応答文から、学習用関連文に含まれる名詞に関連する箇所、学習用関連文に含まれる述語に関連する箇所、または学習用関連文に含まれる名詞と述語に関連する箇所が抽出される。ここで生成された学習用応答文は、Web1000から取得した学習用関連文を対話らしい文に変換したものとみることができる。
【0089】
コーパス出力部84は、対話データに含まれるユーザ発話文を学習用発話文とする。コーパス出力部84は、学習用発話文(
図16参照)と学習用関連文と学習用応答文のセットを複数含む学習用コーパスを生成して、コーパス記憶部25に書込む。
【0090】
図16は、第3の実施形態の対話データ、学習用発話文、学習用関連文、および学習用応答文の例を表わす図である。
図16に示すように、ユーザ発話文「今朝のコスモス!」とユーザ応答文「ありがとうございます。コスモスはなんとなく秋の気配を感じさせてくれますね。」とからなる対話データが取得される。ユーザ応答文に含まれる名詞「コスモス」、名詞「秋の気配」、述語「感じさせ」を含む文がWeb1000から検索されて、学習用関連文「コスモスが秋の気配を感じさせる。」が取得される。そして、ユーザ応答文の中から学習用関連文に含まれる名詞「コスモス」、名詞「秋の気配」、述語「感じさせる」に関連する箇所が抽出されることによって、学習用応答文「コスモスは秋の気配を感じさせてくれますね。」が生成される。このように、対話データのユーザ応答文の一部を学習用応答文とすることによって、学習用関連文を学習用発話文に対する応答として適切な形に変形した学習用応答文が得られる。このような学習用発話文と学習用関連文と学習用応答文とを用いた学習によって、発話文と関連文から、発話に対する応答として適切な応答文を生成する応答文生成モデルBが生成される。
【0091】
図17は、第3の実施形態のモデル学習装置32の動作手順を表わすフローチャートである。
【0092】
ステップS501において、対話データ取得部39は、twitterなどのユーザ発話文とユーザ応答文から構成される対話データをテキストデータベースの1種であるWeb100から取得する。ユーザ発話文が学習用発話文となる。
【0093】
ステップS502において、関連文取得部45は、対話データに含まれるユーザ発話文に関連する文をテキストデータベースの1種であるWeb1000から取得して、学習用関連文とする。
【0094】
ステップS503において、学習用応答文生成部63は、学習用関連文を対話らしい文に変換した学習用応答文を生成する。
【0095】
ステップS504において、ステップS501~S503が繰り返されることによって、複数セットの学習用発話文と学習用関連文と学習用応答文とが得られる。コーパス出力部84は、学習用発話文と学習用関連文と学習用応答文のセットを複数含む学習用コーパスを生成して、コーパス記憶部25に書込む。コーパス記憶部25は、学習用コーパスを記憶する。
【0096】
ステップS505において、応答生成学習処理部26は、学習用コーパスを用いて、発話文および関連文を入力とし、応答文を出力とする応答文生成モデルBを学習する。
【0097】
ステップS506において、パラメータ記憶部14は、応答生成学習処理部6による応答文生成モデルBの学習後のパラメータを記憶する。
【0098】
以上のように、本実施の形態によれば、自動で学習用コーパスを生成できるので、大量の学習データを用いて、高精度な応答文生成モデルBの学習が可能となる。
【0099】
[第4の実施形態]
図18は、第4の実施形態の対話応答システム41の構成を表わす図である。
【0100】
対話応答システム41は、モデル学習装置42と、対話装置43とを備える。本実施の形態のモデル学習装置42が、第3の実施形態のモデル学習装置32と相違する点は、コーパス生成部44である。
【0101】
コーパス生成部44は、対話データ取得部39と、関連文取得部28と、学習用応答文生成部63と、コーパス出力部84とを備える。
【0102】
対話データ取得部39、学習用応答文生成部63、およびコーパス出力部84は、第3の実施形態と同一なので、説明を繰り返さない。
【0103】
関連文取得部28は、バイナリトリプル生成部51と、元文取得部52と、元文ランキング部53とを備える。関連文取得部28は、質問・応答システム1051のデータベース1054に記憶されている文の中から学習用関連文を選択する。
【0104】
質問・応答システム1051のデータベース1054には、Web1000から取得された後、パターン別に整理された元文が記憶されている。
【0105】
図19は、データベース1054に記憶されている元文の例を表わす図である。
図20は、モデル学習装置42の関連文取得部28によって用いられる文の例を表わす図である。
【0106】
図19に示すように、元文を整理するパターンとして、バイナリトリプルが用いられる。バイナリトリプルは、「AでBに行く」のように、2つの変数(A、B)および述部とからなるバイナリパターンと、(A、B)=(お正月、初詣)のように変数A及びBに相当する単語のペアとを含む。
【0107】
バイナリトリプル生成部51は、対話データに基づいて、バイナリトリプルを生成する。具体的には、バイナリトリプル生成部51は、対話データのユーザ発話文に含まれるすべての名詞と、対話データのユーザ応答文に含まれるすべての名詞および動詞とに基づいて、バイナリトリプルを生成する。たとえば、
図20に示すように、ユーザ発話文の「お正月でしたね」から名詞「お正月」が抽出され、ユーザ応答文「昨年は初めて京都に初詣に行ったよ!」から名詞「昨年」、名詞「京都」、名詞「初詣」および動詞「行く」が抽出される。バイナリトリプル生成部51は、バイナリトリプル「AはBに行く、(A、B)=(お正月、初詣)」、および「AはBに行く、(A、B)=(お正月、京都)」を生成する。
【0108】
元文取得部52は、質問・応答システム1051のデータベース1054にアクセスして、生成されたバイナリトリプルのパターンに一致する複数個の元文を取得する。たとえば、
図20に示すように、バイナリトリプル「AはBに行く、(A、B)=(お正月、初詣)」または「AはBに行く、(A、B)=(お正月、京都)」のパターンに一致する3つの元文(元文1、元文2、元文3)が取得される。
【0109】
元文ランキング部53は、予め定められた基準に従って、取得した複数個の元文にランクを付け、ランキングが1位の元文を学習用関連文として出力する。具体的には、元文ランキング部53は、対話データのユーザ応答文に含まれるトピックワードと述語を多く含む元文ほど、ランクを高く設定する。たとえば、トピックワードは、予め定められたワード以外のワードとすることができる。予め定められたワードは、対話において使用される頻度が高い一般的なワード、言い換えると対話において特徴的な部分でないワードとすることができる。たとえば、
図20に示すように、対話データのユーザ応答文に含まれるトピックワード「京都」および「初詣」と、述語「行ったよ」を最も多く含む元文「お正月は、初詣に京都に行きました」がランキング1位に決定され、学習用関連文として出力される。
【0110】
本実施の形態の対話装置43が、第3の実施形態の対話装置33と相違する点は、関連文取得部48である。関連文取得部48は、質問文生成部55と、回答及び元文取得部56と、元文ランキング部57とを備える。
【0111】
図21は、対話装置43の関連文取得部48によって用いられる文の例を表わす図である。ここでは、説明の便宜のため、対話装置43において、モデル学習装置42で用いられる例文と同じ例文が用いられる場合について説明する。
【0112】
質問文生成部55は、予め定められた規則に従って、対話実行用発話文を質問形式に変換することによって質問文を生成する。たとえば、
図21に示すように、対話実行用発話文「お正月でしたね」から質問文「お正月は何に行く」が生成される。
【0113】
回答及び元文取得部56は、質問・応答システム1051に質問文を送信する。質問・応答システム1051は、質問文をバイナリトリプルの形式に変換し、このバイナリトリプルの形式に一致する複数の元文をデータベース1054から取り出す。たとえば、質問文「お正月は何に行く」がバイナリトリプル「AはBに行く、(A、B)=(お正月、*)」(*は任意の名詞)に変換される。
図21に示すように、データベース1054からバイナリトリプル「AはBに行く、(A、B)=(お正月、*)」のパターンに一致する3つの元文(元文1、元文2、元文3)が取得される。さらに、質問・応答システム1051は、複数の元文に基づいて、質問文に対する回答を生成する。たとえば、複数の元文に含まれるBのうち、最も多く含まれるものを回答とすることができる。
図21では、3つの元文は、すべてBとして「初詣」を含むので、「初詣」が回答として生成される。
【0114】
質問・応答システム1051は、回答と複数の元文を対話装置43に送信する。回答及び元文取得部56は、質問・応答システム1051から送られる回答および複数の元文を取得する。たとえば、
図21に示すように、回答「初詣」と、3つの元文が取得される。
【0115】
元文ランキング部57は、予め定められた基準に従って、取得した複数個の元文にランクを付け、ランキングが1位の元文を対話実行用関連文として出力する。具体的には、元文ランキング部57は、トピックワードを多く含む元文ほど、ランクを高く設定する。たとえば、
図21に示すように、トピックワード「お正月」、「初詣」、「京都」を最も多く含む元文「お正月は、初詣に京都に行きました」がランキングが1位の元文に選ばれる。
【0116】
図22は、第4の実施形態のモデル学習装置42の動作手順を表わすフローチャートである。
【0117】
ステップS601において、対話データ取得部39は、twitterなどのユーザ発話文とユーザ応答文から構成される対話データをテキストデータベースの1種であるWeb1000から取得する。対話データに含まれるユーザ発話文が学習用発話文となる。
【0118】
ステップS602において、バイナリトリプル生成部51は、対話データに基づいて、バイナリトリプルを生成する。
【0119】
ステップS603において、元文取得部52は、質問・応答システム1051のデータベース1054にアクセスして、生成されたバイナリトリプルのパターンに一致する複数個の元文を取得する。
【0120】
ステップS604において、元文ランキング部53は、予め定められた基準に従って、取得した複数個の元文にランクを付け、ランキングが1位の元文を学習用関連文として出力する。
【0121】
ステップS605において、学習用応答文生成部63は、学習用関連文を対話らしい文に変換した学習用応答文を生成する。
【0122】
ステップS606において、ステップS601~S605が繰り返されることによって複数セットの学習用発話文と学習用関連文と学習用応答文とが得られる。コーパス出力部84は、学習用発話文と学習用関連文と学習用応答文のセットを複数含む学習用コーパスを生成して、コーパス記憶部25に書込む。コーパス記憶部25は、学習用コーパスを記憶する。
【0123】
ステップS607において、応答生成学習処理部26は、学習用コーパスを用いて、発話文および関連文を入力とし、応答文を出力とする応答文生成モデルBを学習する。
【0124】
ステップS608において、パラメータ記憶部14は、応答生成学習処理部26による応答文生成モデルBの学習後のパラメータを記憶する。
【0125】
図23は、第4の実施形態の対話装置43の動作手順を表わすフローチャートである。
ステップS701において、応答文生成部29は、パラメータ記憶部15に記憶されているモデル学習装置42による応答文生成モデルBの学習後のパラメータを読み出す。
【0126】
ステップS702において、発話文入力部7は、ユーザから対話実行用発話文の入力を受ける。
【0127】
ステップS703において、質問文生成部55は、予め定められた規則に従って、対話実行用発話文を質問形式に変換することによって質問文を生成する。
【0128】
ステップS704において、回答及び元文取得部56は、質問・応答システム1051から送られる回答および複数の元文を取得する。
【0129】
ステップS705において、元文ランキング部57は、予め定められた基準に従って、取得した複数個の元文にランクを付け、ランキングが1位の元文を対話実行用関連文として出力する。
【0130】
ステップS706において、応答文生成部29は、読み出したパラメータを用いることによって得られる学習後の応答文生成モデルBに対話実行用発話文および対話実行用関連文を入力することによって、対話実行用応答文を生成する。
【0131】
以上のように、本実施の形態によれば、既存の質問・応答システムを利用することによって、発話に対する応答文の質を上げることができる。
【0132】
[第5の実施形態]
図24は、第5の実施形態の対話応答システム81の構成を表わす図である。対話応答システム81は、モデル学習装置78と、対話装置77とを備える。
【0133】
本実施の形態のモデル学習装置78が、第4の実施形態のモデル学習装置42と相違する点は、元文ランキング49と、学習用応答文生成部83と、コーパス出力部85と、コーパス記憶部87と、応答生成学習処理部86である。
【0134】
元文ランキング49は、予め定められた基準に従って、取得した複数個の元文にランクを付け、ランキングが1位から所定順位までの複数個の元文を複数個の学習用関連文として出力する。
【0135】
学習用応答文生成部83は、複数個の学習用関連文から1つの学習用応答文を生成する。たとえば、学習用応答文生成部83は、対話データに含まれるユーザ応答文からランキングが1位の学習用関連文に含まれる名詞と動詞に係る箇所のみを抽出して、学習用応答文としてもよい。あるいは、学習用応答文生成部83は、複数個の学習用関連文を重複部分が繰り返されない形で連結することによって、1つの学習用応答文を生成してもよい。
【0136】
コーパス出力部85は、学習用発話文と複数個の学習用関連文と学習用応答文のセットを複数含む学習用コーパスを生成して、コーパス記憶部87に書込む。コーパス記憶部87は、学習用コーパスを記憶する。
【0137】
応答生成学習処理部86は、学習用コーパスを用いて、発話文および複数個の関連文を入力とし、応答文を出力とするモデルCを学習する。モデルCは、発話文および複数個の関連文を入力とする点で、応答文生成モデルAおよびBと異なる。
【0138】
本実施の形態の対話装置77が、第4の実施形態の対話装置43と相違する点は、応答文生成部89である。応答文生成部89は、対話実行用発話文および複数の対話実行用関連文をモデルCに入力することによって、対話実行用応答文を生成する。
【0139】
図25は、第5の実施形態の応答生成学習処理部86の構成を表わす図である。応答文生成部89の構成も同様である。
【0140】
図25に示すように、応答生成学習処理部86は、第2の実施形態と同様に、エンコーダ151,157と、デコーダ152とを備え、さらに、エンコーダ351,352と、合成部353とを備える。
【0141】
エンコーダ151には、複数の関連文のうちの第1関連文が入力される。エンコーダ351には、複数の関連文のうちの第2関連文が入力される。エンコーダ352には、複数の関連文のうちの第3関連文が入力される。合成部353は、エンコーダ151,351,352,157のそれぞれの最後の時刻の隠れ層のベクトルから、1つのベクトルhhを生成して、デコーダ152の時刻1の隠れ層に供給する。エンコーダ151,351,352,117と、デコーダ152の構成および動作は、第1および第2の実施形態で説明したものと同様なので、説明を繰り返さない。
【0142】
以上のように、本実施の形態によれば、本実施の形態によれば、モデル学習装置は、複数の関連文を入力に含むモデルを学習するので、対話装置は、発話文に対して、より適切な応答文を生成することができる。
【0143】
[第6の実施形態]
図26は、第6の実施形態の対話応答システム91の構成を表わす図である。
【0144】
対話応答システム91は、モデル学習装置75と、対話装置76とを備える。
本実施の形態のモデル学習装置75が、第4の実施形態のモデル学習装置42と相違する点は、質問文生成部94と、学習用応答文生成部93と、コーパス出力部95と、コーパス記憶部97と、応答生成学習処理部96である。
【0145】
質問文生成部94は、ユーザ発話文から学習用質問文を生成する。学習用応答文生成部93は、学習用関連文を対話らしい文に変換した学習用応答文を生成する。具体的には、学習用応答文生成部93は、学習用発話文(ユーザ発話文)と、元文ランキング部53から出力される学習用関連文と、質問文生成部94から出力される学習用質問文と、元文ランキング部53から出力されるトピックワードに基づいて、学習用応答文を生成する。たとえば、学習用応答文生成部93は、対話データに含まれるユーザ応答文から、学習用質問文に含まれる名詞、学習用関連文に含まれる名詞と動詞、およびトピックワードに関係する部分を抽出して、学習用応答文としてもよい。
【0146】
コーパス出力部95は、学習用発話文と、学習用関連文と、学習用質問文と、学習用トピックワードと学習用応答文のセットを複数含む学習用コーパスを生成して、コーパス記憶部97に書込む。コーパス記憶部97は、学習用コーパスを記憶する。
【0147】
応答生成学習処理部96は、学習用コーパスを用いて、発話文、関連文、質問文、およびトピックワードを入力とし、応答文を出力とするモデルDを学習する。モデルDは、発話文、関連文、質問文、およびトピックワードを入力とする点において、その他のモデルと異なる。
【0148】
本実施の形態の対話装置76が、第4の実施形態の対話装置43と相違する点は、応答文生成部99である。応答文生成部99は、対話実行用発話文、対話実行用関連文、質問文生成部55から出力される対話実行用質問文、および元文ランキング部57から出力される対話実行用トピックワードをモデルDに入力することによって、対話実行用応答文を生成する。
【0149】
図27は、第6の実施形態の応答生成学習処理部96の構成を表わす図である。応答文生成部99の構成も同様である。
【0150】
図27に示すように、応答生成学習処理部96は、第2の実施形態と同様に、エンコーダ151、157と、デコーダ152とを備え、さらに、エンコーダ451、452と、合成部453を備える。
【0151】
エンコーダ451には、質問文が入力される。エンコーダ451には、トピックワードが入力される。合成部453は、エンコーダ151、157、451、452のそれぞれの最後の時刻の隠れ層のベクトルから、1つのベクトルhhを生成して、デコーダ152の時刻1の隠れ層に供給する。エンコーダ151、157、451、452、デコーダ152の構成および動作は、第1および第2の実施形態で説明したものと同様なので、説明を繰り返さない。
【0152】
以上のように、本実施の形態によれば、モデル学習装置は、質問文およびトピックワードを入力に含むモデルを学習するので、対話装置は、発話文に対して、より適切な応答文を生成することができる。
【0153】
[第7の実施形態]
図28は、第7の実施形態の対話応答システム551の構成を表わす図である。コーパス記憶部5には今までの実施例における処理により得られた学習のためのコーパスが記憶されている。また、関連文取得部8については、例えば
図1におけるそれ以前の構成が省略されている。この対話応答システム551は、1つの装置がモデルの学習と実際の対話の両方を実行する。対話応答システムは、コーパス記憶部5と、学習制御部552と、応答文生成モデルAと、関連文取得部8とを備える。
【0154】
コーパス記憶部5は、第1の実施形態で説明したコーパス記憶部5と同様である。
学習制御部552は、応答文生成モデルAに学習データを与えることによって、応答文生成モデルAを学習させる。学習データは、コーパス記憶部5に記憶されている学習用関連文(入力)と、学習用応答文(出力)である。学習が完了すると、応答文生成モデルAのネットワークと、パラメータが保存される。
【0155】
関連文取得部8は、第1の実施形態で説明した関連文取得部8と同様である。
対話処理時に、関連文取得部8で取得された対話実行用関連文が学習後の応答文生成モデルAに入力されることによって、学習結果に基づく対話実行用応答文が生成される。
【0156】
図28の構成によれば、対話を実行するときのデータを利用して、学習を動的に継続実行することができる。すなわち、応答文生成モデルAから出力される対話実行用応答文を学習用データとしても用いることができる。
【0157】
第2~第6の実施形態も、同様に、1つのモデル学習および対話装置が、モデルの学習と実際の対話の両方を実行するものとしてもよい。
【0158】
[第8の実施形態]
図29は、第8の実施形態の対話応答システム1100の構成を表わす図である。
【0159】
対話応答システム1100は、モデル学習装置1120と、対話装置1130とを備える。
【0160】
本実施の形態のモデル学習装置1130が、第1の実施形態のモデル学習装置2と相違する点は、関連文適合性入力部1103と、コーパス出力部1104と、適合判定学習処理部1105と、パラメータ記憶部1106である。
【0161】
関連文適合性入力部1103は、取得された関連文の適合性を表わす適合度の入力を受ける。たとえば、開発側の人員は、取得された関連文が学習用発話文と話題が同一または類似している場合には、取得された関連文が適合していることを表わす適合度(たとえば、数値「1」)を入力する。開発側の人員は、取得された関連文が学習用発話文と話題が異なる場合には、取得された関連文が適合していないことを表わす適合度(たとえば、数値「0」)を入力する。
【0162】
関連文適合性入力部1103によって、適合していないことを表わす適合度が入力された関連文(以下、不適合関連文)は、コーパス出力部1104に送られる。
【0163】
図30は、不適合関連文の例を説明するための図である。
学習用発話文「修学旅行で奈良に行くんだ」の「修学旅行」および「奈良」を含む文「奈良市内の中学では多くが沖縄への修学旅行を実施。」が関連文として取得される。この文では、「修学旅行」の行先が「沖縄」であると記載しており、学習用発話文と話題がずれている。このような場合に、取得された関連文が不適合関連文と判断される。
【0164】
関連文適合性入力部1103によって、適合していることを表わす適合度が入力された関連文(以下、適合関連文)は学習用関連文として、学習用応答文入力部13に送られる。第1の実施形態と同様に、学習用応答文入力部13が、学習用関連文が対話の応答として適切な形式に修正された学習用応答文の入力を受けて、学習用応答文がコーパス出力部1104に送られる。
【0165】
コーパス出力部1104は、学習用発話文と、関連文と、関連文の適合度の複数のセットを含み、さらに、関連文のうちの適合関連文である学習用関連文と学習用応答文の複数のセットを含む学習用コーパスを生成して、コーパス記憶部1108に書込む。
【0166】
コーパス記憶部1108は、学習用コーパスを記憶する。
図31は、コーパス記憶部1108に記憶されている学習用コーパスの例を表わす図である。
【0167】
適合判定学習処理部1105は、コーパス記憶部1108に記憶されている学習用発話文と、関連文と、適合度を用いて、発話文および関連文を入力に含み、適合度を出力とする適合性判定モデルX1を学習する。適合性判定モデルX1は、深層学習のニューラルネットワークと、そのパラメータとからなる。
【0168】
パラメータ記憶部1106は、適合判定学習処理部1105による適合性判定モデルX1の学習後のパラメータを記憶する。パラメータ記憶部1106は、ニューラルネットワークの学習後のパラメータ(重み行列など)を記憶する。パラメータ記憶部1106に記憶されている適合性判定モデルX1の学習後のパラメータは、図示しない入出力ポートなどを介して外部へ取り出されることができる。
【0169】
本実施の形態の対話装置1130が、第1の実施形態の対話装置3と相違する点は、パラメータ記憶部1107と、関連文適合性判定部1101と、関連文選択部1102である。
【0170】
パラメータ記憶部1107は、モデル学習装置1120による適合性判定モデルX1の学習後のパラメータを記憶する。たとえば、パラメータ記憶部1107は、ニューラルネットワークの学習後のパラメータ(重み行列など)を記憶する。モデル学習装置1120から外部に取り出された適合性判定モデルX1の学習後のパラメータが対話装置1130に入力され、パラメータ記憶部1107に記憶される。これらのパラメータは、対話装置1130の機能を実現するプログラムとともに、ユーザに頒布されるものとしてもよい。
【0171】
関連文適合性判定部1101は、学習された適合性判定モデルX1に、対話実行用発話文および取得した関連文を入力することによって、適合度を生成する。たとえば、関連文としての適合度が高い場合に、生成される適合度が「1」に近い値となり、関連文として適合度が低い場合に、生成される適合度が「0」に近い値となる。
【0172】
関連文選択部1102は、適合度に従って、関連文取得部8で取得された複数の関連文の中から対話実行用関連文を選択して、応答文生成部9へ出力する。たとえば、適合度が最も「1」に近い関連文が対話実行用関連文として選択される。
【0173】
応答文生成部9は、第1の実施形態と同様に、選択された対話実行用関連文を学習後の応答文生成モデルAに入力することによって、対話実行用応答文を生成する。
【0174】
図32は、第8の実施形態の適合判定学習処理部1105および関連文適合性判定部1101で用いられる適合性判定モデルX1を実現するニューラルネットワークを表わす図である。
【0175】
畳み込みニューラルネットワークCNN1は、第1の入力データである学習用発話文を受ける。畳み込みニューラルネットワークCNN1は、畳み込み層C11と、プーリング層C12とを備える。
【0176】
第1の入力データである学習用発話文「京都に行きます」がN×4の大きさのデータで表される。
【0177】
学習用発話文と複数のフィルタとの演算結果によって、畳み込み層C11において、M個の1×3の大きさの第1の畳み込み演算結果と、M個の1×2の大きさの第2の畳み込み演算結果と、M個の1×1の大きさの第3の畳み込み演算結果が得られる。
【0178】
第1の演算結果、第2の演算結果、第3の演算結果のMAXプーリングによって、プーリング層C12において、M個の第1のプーリング結果、M個の第2のプーリング結果、M個の第3のプーリング結果が得られる。MAXプーリングでは、最大値のみが出力される。
【0179】
畳み込みニューラルネットワークCNN2は、第2の入力データである関連文を受ける。畳み込みニューラルネットワークCNN2は、畳み込み層C21と、プーリング層C22とを備える。
【0180】
第2の入力データである関連文「京都で花火を楽しむ」がN×5の大きさのデータで表される。
【0181】
関連文と複数のフィルタとの演算結果によって、畳み込み層C21において、M個の1×4の大きさの第4の畳み込み演算結果と、M個の1×3の大きさの第5の畳み込み演算結果と、M個の1×2の大きさの第6の畳み込み演算結果が得られる。
【0182】
第4の演算結果、第5の演算結果、第6の演算結果のMAXプーリングによって、プーリング層C22において、M個の第4のプーリング結果、M個の第5のプーリング結果、M個の第6のプーリング結果が得られる。
【0183】
結合部COE1は、第1~第6のプーリング結果を結合して、6M次元の結合ベクトルを生成する。
【0184】
多層パーセプトロン500は、入力層501と、中間層502と、出力層503とを備える。
【0185】
6M次元の結合ベクトルのデータは、入力層501に送られる。入力層501、中間層502及び出力層503の演算によって、関連文の適合度が出力される。
【0186】
図33は、畳み込みニューラルネットワークCNN1における畳み込み演算の詳細を表わす図である。
【0187】
畳み込みニューラルネットワークCNN1では、M個のN×2の大きさのフィルタと、M個のN×3の大きさのフィルタと、M個のN×4の大きさのフィルタとが用いられる。
【0188】
N×4の大きさの学習用発話文と、M個のN×2の大きさのフィルタとの畳み込み演算によって、M個の1×3の大きさの第1の畳み込み演算結果が得られる。
【0189】
N×4の大きさの学習用発話文と、M個のN×3の大きさのフィルタとの畳み込み演算によって、M個の1×2の大きさの第2の畳み込み演算結果が得られる。
【0190】
N×4の大きさの学習用発話文と、M個のN×4の大きさのフィルタとの畳み込み演算によって、M個の1×1の大きさの第3の畳み込み演算結果が得られる。
【0191】
図34は、畳み込みニューラルネットワークCNN2における畳み込み演算の詳細を表わす図である。
【0192】
畳み込みニューラルネットワークCNN2では、M個のN×2の大きさのフィルタと、M個のN×3の大きさのフィルタと、M個のN×4の大きさのフィルタとが用いられる。
【0193】
N×5の大きさの関連文と、M個のN×2の大きさのフィルタとの畳み込み演算によって、M個の1×4の大きさの第4の畳み込み演算結果が得られる。
【0194】
N×5の大きさの関連文と、M個のN×3の大きさのフィルタとの畳み込み演算によって、M個の1×3の大きさの第5の畳み込み演算結果が得られる。
【0195】
N×5の大きさの関連文と、M個のN×4の大きさのフィルタとの畳み込み演算によって、M個の1×3の大きさの第6の畳み込み演算結果が得られる。
【0196】
学習時には、教師データとして、関連文適合性入力部1103に入力された適合度が用いられる。誤差逆伝搬法によって、教師データとの誤差が最小となるように、多層パーセプトロン500の重み、およびフィルタの係数が更新される。学習後の多層パーセプトロン500の重み、およびフィルタの係数がパラメータ記憶部1106に記憶される。パラメータ記憶部1106に記憶された学習後の多層パーセプトロン500の重み、およびフィルタの係数がパラメータ記憶部1107に転送される。
【0197】
対話応答時には、パラメータ記憶部1107に記憶されている学習後の多層パーセプトロン500の重み、およびフィルタの係数が読み出されて、利用される。多層パーセプトロン500の出力層503から出力される適合度が、関連文選択部1102に送られて、関連文の選択に利用される。
【0198】
図35は、第8の実施形態のモデル学習装置1120の動作手順を表わすフローチャートである。
【0199】
ステップS1101において、発話文入力部11は、学習用発話文の入力を受ける。
ステップS1102において、関連文取得部12は、学習用発話文に関連する学習用関連文をテキストデータベースの1種であるWeb1000から取得する。
【0200】
ステップS1103において、関連文適合性入力部1103は、取得された関連文の適合性を表わす適合度の入力を受ける。
【0201】
ステップS1104において、入力された適合度が適合していることを表わす値であった場合には(S1104:YES)、処理がステップS1105に進み、入力された適合度が適合していることを表わす値でなかった場合には(S1104;NO)、処理がステップS1106に進む。
【0202】
ステップS1105において、学習用応答文入力部13は、適合関連文(学習用関連文)を対話の応答として適切になるように、開発側の人員の操作によって学習用関連文を修正することによって生成された学習用応答文の入力を受ける。
【0203】
ステップS1106において、ステップS1101~S1105がすべての入力が完了するまで繰り返される。コーパス出力部1104は、学習用発話文と、関連文と、関連文の適合度の複数のセットを含み、さらに、関連文のうちの適合関連文である学習用関連文と学習用応答文の複数のセットを含む学習用コーパスを生成して、コーパス記憶部1108に書込む。
【0204】
ステップS1107において、適合判定学習処理部1105は、学習用コーパスに含まれる学習用発話文と関連文と適合度とを用いて、発話文および関連文を入力とし、適合度を出力とする適合性判定モデルX1を学習する。
【0205】
ステップS1108において、パラメータ記憶部1106は、適合判定学習処理部1105よる適合性判定モデルX1の学習後のパラメータを記憶する。
【0206】
ステップS1109において、応答生成学習処理部6は、学習用コーパスに含まれる学習用関連文と学習用応答文を用いて、関連文を入力とし、応答文を出力とする応答文生成モデルAを学習する。
【0207】
ステップS1110において、パラメータ記憶部14は、応答生成学習処理部6による応答文生成モデルAの学習後のパラメータを記憶する。
【0208】
図36は、第8の実施形態の対話装置1130の動作手順を表わすフローチャートである。
【0209】
ステップS1201において、応答文生成部9は、パラメータ記憶部15に記憶されているモデル学習装置1130による応答文生成モデルAの学習後のパラメータを読み出す。
【0210】
ステップS1202において、関連文適合性判定部1101は、パラメータ記憶部1107に記憶されているモデル学習装置1130による適合性判定モデルX1の学習後のパラメータを読み出す。
【0211】
ステップS1203において、発話文入力部7は、ユーザから対話実行用発話文の入力を受ける。
【0212】
ステップS1204において、関連文取得部8は、対話実行用発話文に関連する複数の関連文をテキストデータベースの1種であるWeb1000から取得する。
【0213】
ステップS1205において、関連文適合性判定部1101は、読み出したパラメータを用いることによって得られる学習後の適合性判定モデルX1に、対話実行用発話文および取得した関連文を入力することによって、適合度を生成する。
【0214】
ステップS1206において、関連文選択部1102は、適合度に従って、関連文取得部8で取得された複数の関連文の中から対話実行用関連文を選択して、応答文生成部9へ出力する。
【0215】
ステップS1207において、応答文生成部9は、読み出したパラメータを用いることによって得られる学習後の応答文生成モデルAに対話実行用関連文を入力することによって、対話実行用応答文を生成する。
【0216】
以上のように、本実施の形態によれば、関連文取得部で取得した関連文の話題が発話文の話題がずれている場合に、そのような関連文を応答文の生成に利用しないようにすることができる。
【0217】
なお、本実施の形態では、第1の実施の形態の対話応答システムに、話題が相違する関連文から応答文が生成されるのを防止する機能を追加するものとしたが、これに限定するものではない。第2~第7の実施形態の対話応答システムにも同様に追加することができる。
【0218】
また、本実施の形態では、適合関連文から応答文を生成することとしたが、これに限定するものではない。発話文に対する応答文として適合関連文を直接用いるものとしてもよい。
【0219】
[第9の実施形態]
図37は、第9の実施形態の対話応答システム1200の構成を表わす図である。
【0220】
対話応答システム1200は、モデル学習装置1220と、対話装置1230とを備える。
【0221】
本実施の形態のモデル学習装置1220が、第3の実施形態のモデル学習装置32と相違する点は、関連文取得部1201と、適合度付与部1203と、コーパス出力部1104と、コーパス記憶部1108と、適合判定学習処理部1105と、パラメータ記憶部1106である。
【0222】
関連文取得部1201は、対話データに含まれるユーザ発話文に関連する文をテキストデータベースの1種であるWeb1000から取得する。具体的には、関連文取得部1201は、たとえば、Web1000上のデータからユーザ応答文に含まれる少なくとも1つの名詞及びもしくは少なくとも1つの述語が含まれる文を適合関連文(学習用関連文)として取得する。関連文取得部1201は、たとえば、Web1000上のデータからユーザ応答文に含まれる1つの名詞を含み、ユーザ応答文に含まれない少なくとも1つの名詞を含む文を不適合関連文として取得する。
【0223】
図38は、第9の実施形態の対話データ、学習用発話文、学習用関連文、および学習用応答文の例を表わす図である。
図38に示すように、ユーザ発話文「今朝のコスモス!」とユーザ応答文「ありがとうございます。コスモスはなんとなく秋の気配を感じさせてくれますね。」とからなる対話データが取得される。
【0224】
ユーザ応答文に含まれる名詞「コスモス」、名詞「秋の気配」、述語「感じさせ」を含む文がWeb1000から検索されて、適合関連文(学習用関連文)「コスモスが秋の気配を感じさせる。」が取得される。
【0225】
また、ユーザ応答文に含まれる名詞「コスモス」を含み、ユーザ応答文に含まれない名詞「育て方」を含む文がWeb1000から検索されて、不適合関連文「コスモスの育て方は難しい。」が取得される。
【0226】
適合度付与部1203は、取得された関連文の適合性を表わす適合度を付与する。適合度付与部1203は、取得された適合関連文に対して、適合していることを表わす適合度(たとえば、数値「1」)を付与する。適合度付与部1203は、取得された不適合関連文に対して、適合していないことを表わす適合度(たとえば、数値「0」)を付与する。
【0227】
適合していないことを表わす適合度が付与された不適合関連文は、コーパス出力部1104に送られる。
【0228】
適合していることを表わす適合度が付与された適合関連文は学習用関連文として、学習用応答文生成部63に送られる。第3の実施形態と同様に、学習用応答文生成部63が、学習用関連文が対話の応答として適切な形式に修正された学習用応答文を生成して、学習用応答文がコーパス出力部1104に送られる。
【0229】
コーパス出力部1104と、コーパス記憶部1108と、適合判定学習処理部1105と、パラメータ記憶部1106は、第8の実施形態で説明したものと同様なので説明を繰り返さない。
【0230】
本実施の形態の対話装置1230が、第3の実施形態の対話装置23と相違する点は、対話装置1230が、関連文適合性判定部1101と、関連文選択部1102とを備える点である。
【0231】
関連文適合性判定部1101と、関連文選択部1102は、第8の実施形態で説明したものと同様なので説明を繰り返さない。
【0232】
図39は、第9の実施形態のモデル学習装置1220の動作手順を表わすフローチャートである。
【0233】
ステップS1301において、対話データ取得部39は、twitterなどのユーザ発話文とユーザ応答文から構成される対話データをテキストデータベースの1種であるWeb1000から取得する。ユーザ発話文が学習用発話文となる。
【0234】
ステップS1302において、関連文取得部1302は、Web1000上のデータから適合関連文(学習用関連文)と不適合関連文とを取得する。
【0235】
ステップS1303において、適合度付与部1203は、取得された関連文(適合関連文と不適合関連文)の適合性を表わす適合度を付与する。
【0236】
ステップS1304において、付与された適合度が適合していることを表わす値であった場合には(S1304:YES)、処理がステップS1305に進み、付与された適合度が適合していることを表わす値でなかった場合には(S1304;NO)、処理がステップS1306に進む。
【0237】
ステップS1305において、学習用応答文生成部63は、学習用関連文を対話らしい文に変換した学習用応答文を生成する。
【0238】
ステップS1306において、ステップS1301~S1305がすべての入力が完了するまで繰り返される。コーパス出力部1104は、学習用発話文と、関連文と、関連文の適合度のセットを複数含み、さらに、関連文のうちの適合関連文である学習用関連文と学習用応答文のセットを複数含む学習用コーパスを生成して、コーパス記憶部1108に書込む。
【0239】
ステップS1307において、適合判定学習処理部1105は、学習用コーパスに含まれる学習用発話文と関連文と適合度とを用いて、発話文および関連文を入力とし、適合度を出力とする適合性判定モデルX1を学習する。
【0240】
ステップS1308において、パラメータ記憶部1106は、適合判定学習処理部1105よる適合性判定モデルX1の学習後のパラメータを記憶する。
【0241】
ステップS1309において、応答生成学習処理部26は、学習用コーパスに含まれる学習用発話文と学習用関連文と学習用応答文を用いて、発話文と関連文を入力とし、応答文を出力とする応答文生成モデルBを学習する。
【0242】
ステップS1310において、パラメータ記憶部14は、応答生成学習処理部26による応答文生成モデルBの学習後のパラメータを記憶する。
【0243】
以上のように、本実施の形態では、人手によらずに自動で、応答文を生成し、関連文の適合度を設定することができる。
【0244】
[第10の実施形態]
図40は、第10の実施形態の対話応答システム1300の構成を表わす図である。
【0245】
対話応答システム1300は、モデル学習装置1320と、対話装置1330とを備える。
【0246】
本実施の形態のモデル学習装置1320が、第1の実施形態のモデル学習装置2と相違する点は、トピック生成部1338と、関連文取得部1309と、トピック適合性入力部1303と、コーパス出力部1304と、コーパス記憶部1308と、適合判定学習処理部1305と、パラメータ記憶部1306である。本実施の形態の対話装置1330が、第1の実施形態の対話装置3との相違する点は後ほど説明する。
【0247】
図41は、学習用発話文、検索トピック、関連文、適合度の例を表わす図である。以下、
図41を参照して、トピック生成部1338、関連文取得部1309、トピック適合性入力部1303の動作を説明する。
【0248】
トピック生成部1338は、学習用発話文に含まれ、かつ予め定められた除外名詞以外の名詞を抽出して、複数の検索トピックを生成する。
【0249】
図41に示すように、トピック生成部1338は、学習用発話文「修学旅行で奈良に行くんだ」から名詞「修学旅行」と「奈良」を抽出する。トピック生成部1338は、第1検索トピックとして、トピック「修学旅行」を生成する。トピック生成部1338は、第2検索トピックとして、トピック「奈良」を生成する。トピック生成部1338は、第3検索トピックとして、主トピック「修学旅行」、および副トピック「奈良」を生成する。トピック生成部1338は、第4検索トピックとして、主トピック「奈良」、および副トピック「修学旅行」を生成する。
【0250】
関連文取得部1309は、トピック生成部1338で生成された各検索トピックを用いて、テキストデータベースの1種であるWeb1000から関連文を取得する。
【0251】
図41に示すように、関連文取得部1309は、第1検索トピックを用いて、「修学旅行」を含む複数の関連文を取得する。たとえば、関連文1-1~関連文1-4の4個の関連文が取得される。
【0252】
関連文取得部1309は、第2検索トピックを用いて、「奈良」を含む複数の関連文を取得する。たとえば、たとえば、関連文2-1~関連文2-4の4個の関連文が取得される。
【0253】
関連文取得部1309は、第3検索トピックを用いて、述部に直接係る主トピック「修学旅行」を含み、かつ述部に直接係らない副トピック「奈良」を含む複数の関連文を取得する。たとえば、関連文3-1~関連文3-4の4個の関連文が取得される。述部に直接係るとは、述部と格助詞によって結ばれていることを意味する。
【0254】
関連文取得部1309は、第4検索トピックを用いて、述部に直接係る主トピック「奈良」を含み、かつ述部に直接係らない副トピック「修学旅行」を含む複数の関連文を取得する。たとえば、関連文4-1~関連文4-4の4個の関連文が取得される。
【0255】
トピック適合性入力部1303は、関連文の取得に用いた検索トピックの適合性を表わす適合度の入力を受ける。開発側の人員は、各検索トピックを用いて取得された関連文が学習用発話文と話題が同一または類似している場合には、その検索トピックが適合していることを表わす適合度(たとえば、数値「1」)を入力し、話題が異なる場合には、その検索トピックが適合していないことを表わす適合度(たとえば、数値「0」)を入力する。
【0256】
図41に示すように、第1検索トピックを用いて検索された関連文1-1が学習用発話文と話題が同一または類似し、かつ第1検索トピックを用いて検索された関連文1-2、1-3、1-4が学習用発話文と話題が異なるときには、第1検索トピックの適合度として「1」、「0」、「0」、「0」が入力される。
【0257】
トピック適合性入力部1303によって生成された学習用発話文と、検索トピックと、適合度との関係は、コーパス出力部1304に送られる。
【0258】
トピック適合性入力部1303によって、適合していないことを表わす適合度が入力された関連文(以下、不適合関連文)は、学習用応答文入力部13に送られない。
【0259】
トピック適合性入力部1303によって、適合していることを表わす適合度が入力された関連文(以下、適合関連文)は学習用関連文として、学習用応答文入力部13に送られる。第1の実施形態と同様に、学習用応答文入力部13が、学習用関連文が対話の応答として適切な形式に修正された学習用応答文の入力を受けて、学習用応答文がコーパス出力部1304に送られる。
図41の例では、関連文1-1、関連文2-2、関連文3-1、関連文3-2、関連文3-3、関連文4-2、関連文4-3が学習用応答文入力部13に送られる。
【0260】
コーパス出力部1304は、学習用発話文と検索トピックと適合度の複数のセット、および学習用関連文と学習用応答文の複数のセットを含む学習用コーパスを生成して、コーパス記憶部1308に書込む。
【0261】
コーパス記憶部1308は、学習用コーパスを記憶する。
図42(a)は、コーパス記憶部1308に記憶されている学習用コーパスのうちの学習用関連文と学習用応答文の複数のセットの例を表わす図である。
図42(b)は、コーパス記憶部1308に記憶されている学習用コーパスのうちの学習用発話文と検索トピックと適合度の複数のセットの例を表わす図である。
【0262】
適合判定学習処理部1305は、学習用発話文と、検索トピックと、適合度を用いて、発話文および、検索トピックを入力に含み、適合度を出力とする適合性判定モデルX2を学習する。適合性判定モデルX2は、深層学習のニューラルネットワークと、そのパラメータとからなる。
【0263】
図41の例では、たとえば、「修学旅行で奈良に行くんだ」および「修学旅行」を入力とし、「1」を出力とする学習1、「修学旅行で奈良に行くんだ」および「修学旅行」を入力とし、「0」を出力とする学習2、「修学旅行で奈良に行くんだ」および「修学旅行」を入力とし、「0」を出力とする学習3、「修学旅行で奈良に行くんだ」および「修学旅行」を入力とし、「0」を出力とする学習4が行われる。他の検索トピックについても同様である。
【0264】
パラメータ記憶部1306は、は、適合判定学習処理部1305による適合性判定モデルX2の学習後のパラメータを記憶する。パラメータ記憶部1306は、ニューラルネットワークの学習後のパラメータ(重み行列など)を記憶する。パラメータ記憶部1306に記憶されている適合性判定モデルX2の学習後のパラメータは、図示しない入出力ポートなどを介して外部へ取り出されることができる。
【0265】
本実施の形態の対話装置1330が、第1の実施形態の対話装置3と相違する点は、パラメータ記憶部1307と、トピック生成部1368と、トピック適合性判定部1312と、検索トピック選択部1349と、関連文取得部1341である。
【0266】
パラメータ記憶部1307は、モデル学習装置1320による適合性判定モデルX2の学習後のパラメータを記憶する。たとえば、パラメータ記憶部1307は、ニューラルネットワークの学習後のパラメータ(重み行列など)を記憶する。モデル学習装置1320から外部に取り出された適合性判定モデルX2の学習後のパラメータが対話装置1330に入力され、パラメータ記憶部1307に記憶される。これらのパラメータは、対話装置1330の機能を実現するプログラムとともに、ユーザに頒布されるものとしてもよい。
【0267】
トピック生成部1368は、トピック生成部1338と同様に、対話実行用発話文に含まれ、かつ予め定められた除外名詞以外の名詞を抽出して、複数の検索トピックを生成する。仮に、対話実行用発話文が、
図39の学習用発話文「修学旅行で奈良に行くんだ」と同じ場合には、トピック生成部1368は、名詞「修学旅行」と「奈良」を抽出する。トピック生成部1368は、第1検索トピックとして、トピック「修学旅行」を生成する。トピック生成部1368は、第2検索トピックとして、トピック「奈良」を生成する。トピック生成部1368は、第3検索トピックとして、主トピック「修学旅行」、および副トピック「奈良」を生成する。トピック生成部1368は、第4検索トピックとして、主トピック「奈良」、および副トピック「修学旅行」を生成する。
【0268】
トピック適合性判定部1312は、生成された複数の検索トピックの適合性を判定する。すなわち、トピック適合性判定部1312は、学習された適合性判定モデルX2に、対話実行用発話文および各検索トピックを入力することによって、適合度を生成する。たとえば、出力される適合度は、検索トピックの適合度が高い場合に、「1」に近い値となり、検索トピックの適合度が低い場合に「0」に近い値となる。
【0269】
検索トピック選択部1349は、複数の検索トピックの中から適合度が最も高い検索トピックを選択して、関連文取得部1341へ出力する。
【0270】
関連文取得部1341は、選択された検索トピックを用いて、テキストデータベースの1種であるWeb1000から1つの関連文を取得する。関連文取得部1341は、適合度が最も高い検索トピックが主トピックと副トピックから構成される場合には、述部に直接係る主トピックを含み、かつ述部に直接係らない副トピックを含む1つの関連文を取得する。
【0271】
図43は、第10の実施形態の適合判定学習処理部1305およびトピック適合性判定部1312で用いられる適合性判定モデルX2を実現するニューラルネットワークを表わす図である。
【0272】
畳み込みニューラルネットワークCNN3は、第1の入力データである学習用発話文を受ける。畳み込みニューラルネットワークCNN3は、畳み込み層C31と、プーリング層C32とを備える。
【0273】
第1の入力データである学習用発話文「修学旅行で奈良に行くんだ」がN×6の大きさのデータで表される。
【0274】
学習用発話文と複数のフィルタとの演算結果によって、畳み込み層C31において、M個の1×5の大きさの第1の畳み込み演算結果と、M個の1×4の大きさの第2の畳み込み演算結果と、M個の1×3の大きさの第3の畳み込み演算結果が得られる。
【0275】
第1の演算結果、第2の演算結果、第3の演算結果のMAXプーリングによって、プーリング層C32において、M個の第1のプーリング結果、M個の第2のプーリング結果、M個の第3のプーリング結果が得られる。
【0276】
畳み込みニューラルネットワークCNN4は、第2の入力データである検索トピックを受ける。畳み込みニューラルネットワークCNN4は、畳み込み層C41と、プーリング層C42とを備える。
【0277】
第2の入力データである検索トピック「修学旅行 奈良」がN×2の大きさのデータで表される。
【0278】
検索トピックと複数のフィルタとの演算結果によって、畳み込み層C41において、M個の1×2の大きさの第4の畳み込み演算結果と、M個の1×1の大きさの第5の畳み込み演算結果が得られる。
【0279】
第4の演算結果、第5の演算結果のMAXプーリングによって、プーリング層C42において、M個の第4のプーリング結果、M個の第5のプーリング結果が得られる。
【0280】
結合部COE2は、第1~第5のプーリング結果を結合して、5M次元の結合ベクトルを生成する。
【0281】
多層パーセプトロン600は、入力層601と、中間層602と、出力層603とを備える。
【0282】
5M次元の結合ベクトルのデータは、入力層601に送られる。入力層601、中間層602及び出力層603の演算によって、検索トピックの適合度が出力される。
【0283】
図44は、畳み込みニューラルネットワークCNN3における畳み込み演算の詳細を表わす図である。
【0284】
畳み込みニューラルネットワークCNN3では、M個のN×2の大きさのフィルタと、M個のN×3の大きさのフィルタと、M個のN×4の大きさのフィルタとが用いられる。
【0285】
N×6の大きさの学習用発話文と、M個のN×2の大きさのフィルタとの畳み込み演算によって、M個の1×5の大きさの第1の畳み込み演算結果が得られる。
【0286】
N×6の大きさの学習用発話文と、M個のN×3の大きさのフィルタとの畳み込み演算によって、M個の1×4の大きさの第2の畳み込み演算結果が得られる。
【0287】
N×6の大きさの学習用発話文と、M個のN×4の大きさのフィルタとの畳み込み演算によって、M個の1×3の大きさの第3の畳み込み演算結果が得られる。
【0288】
図45は、畳み込みニューラルネットワークCNN4における畳み込み演算の詳細を表わす図である。
【0289】
畳み込みニューラルネットワークCNN4では、M個のN×1の大きさのフィルタと、M個のN×2の大きさのフィルタとが用いられる。
【0290】
N×2の大きさの検索用トピックと、M個のN×1の大きさのフィルタとの畳み込み演算によって、M個の1×2の大きさの第4の畳み込み演算結果が得られる。
【0291】
N×2の大きさの検索用トピックと、M個のN×2の大きさのフィルタとの畳み込み演算によって、M個の1×1の大きさの第5の畳み込み演算結果が得られる。
【0292】
学習時には、教師データとして、トピック適合性入力部1303に入力された適合度が用いられる。誤差逆伝搬法によって、教師データとの誤差が最小となるように、多層パーセプトロン600の重み、およびフィルタの係数が更新される。学習後の多層パーセプトロン600の重み、およびフィルタの係数がパラメータ記憶部1306に記憶される。パラメータ記憶部1306に記憶された学習後の多層パーセプトロン600の重み、およびフィルタの係数がパラメータ記憶部1307に転送される。
【0293】
対話応答時には、パラメータ記憶部1307に記憶されている学習後の多層パーセプトロン600の重み、およびフィルタの係数が読み出されて、利用される。多層パーセプトロン600の出力層603から出力される適合度が、検索トピック選択部1349に送られて、検索トピックの選択に利用される。
【0294】
図46は、第10の実施形態のモデル学習装置1320の動作手順を表わすフローチャートである。
【0295】
ステップS1401において、発話文入力部11は、学習用発話文の入力を受ける。
ステップS1402において、トピック生成部1338は、学習用発話文に含まれ、かつ予め定められた除外名詞以外の名詞を抽出して、複数の検索トピックを生成する。
【0296】
ステップS1403において、関連文取得部1309は、トピック生成部1338で生成された各検索トピックを用いて、テキストデータベースの1種であるWeb1000から関連文を取得する。
【0297】
ステップS1404において、トピック適合性入力部1303は、関連文の取得に用いた検索トピックの適合性を表わす適合度の入力を受ける。
【0298】
ステップS1405において、入力された適合度が適合していることを表わす値であった場合には(S1405:YES)、処理がステップS1406に進み、入力された適合度が適合していることを表わす値でなかった場合には(S1405;NO)、処理がステップS1407に進む。
【0299】
ステップS1406において、学習用応答文入力部13は、適合関連文(学習用関連文)を対話の応答として適切になるように、開発側の人員の操作によって学習用関連文を修正することによって生成された学習用応答文の入力を受ける。
【0300】
ステップS1407において、ステップS1401~S1406がすべての入力が完了するまで繰り返される。コーパス出力部1304は、学習用発話文と検索トピックと適合度の複数のセット、および学習用関連文と学習用応答文の複数のセットを含む学習用コーパスを生成して、コーパス記憶部1308に書込む。
【0301】
ステップS1408において、適合判定学習処理部1305は、学習用コーパスに記憶されている学習用発話文と、検索トピックと、適合度を用いて、発話文および検索トピックを入力に含み、適合度を出力とする適合性判定モデルX2を学習する。
【0302】
ステップS1409において、パラメータ記憶部1306は、適合判定学習処理部1305よる適合性判定モデルX2の学習後のパラメータを記憶する。
【0303】
ステップS1410において、応答生成学習処理部6は、学習用コーパスに記憶されている学習用関連文と学習用応答文とを用いて、関連文を入力とし、応答文を出力とする応答文生成モデルAを学習する。
【0304】
ステップS1411において、パラメータ記憶部14は、応答生成学習処理部6による応答文生成モデルAの学習後のパラメータを記憶する。
【0305】
図47は、第10の実施形態の対話装置1330の動作手順を表わすフローチャートである。
【0306】
ステップS1501において、応答文生成部9は、パラメータ記憶部15に記憶されているモデル学習装置1330による応答文生成モデルAの学習後のパラメータを読み出す。
【0307】
ステップS1502において、トピック適合性判定部1312は、パラメータ記憶部1307に記憶されているモデル学習装置1330による適合性判定モデルX2の学習後のパラメータを読み出す。
【0308】
ステップS1503において、発話文入力部7は、ユーザから対話実行用発話文の入力を受ける。
【0309】
ステップS1504において、トピック生成部1368は、対話実行用発話文に含まれ、かつ予め定められた除外名詞以外の名詞を抽出して、複数種の検索トピックを生成する。
【0310】
ステップS1505において、トピック適合性判定部1312は、読み出したパラメータを用いることによって得られる学習後の適合性判定モデルX2に、対話実行用発話文および各検索トピックを入力することによって、適合度を生成する。
【0311】
ステップS1506において、検索トピック選択部1349は、適合度に従って、複数の検索トピックの中から1つの検索トピックを選択して、関連文取得部1341へ出力する。
【0312】
ステップS1507において、関連文取得部1341は、選択した検索トピックを用いて検索することによって、対話実行用発話文に関連する1つの関連文をテキストデータベースの1種であるWeb1000から取得する。
【0313】
ステップS1508において、応答文生成部9は、読み出したパラメータを用いることによって得られる学習後の応答文生成モデルAに対話実行用関連文を入力することによって、対話実行用応答文を生成する。
【0314】
以上のように、本実施の形態によれば、関連文取得部で取得する際に用いる検索トピックが不適切な場合に、そのような検索トピックを用いて関連文が取得されないようにすることができる。
【0315】
なお、本実施の形態では、第1の実施の形態の対話応答システムに、不適切な検索トピックから関連文が取得されるのを防止する機能を追加するものとしたが、これに限定するものではない。第2~第8の実施形態の対話応答システムにも同様に追加することができる。
【0316】
また、本実施の形態では、適合度が高い検索トピックを用いて取得した関連文から応答文を生成することとしたが、これに限定するものではない。発話文に対する応答文としてて、適合度が高い検索トピックを用いて取得した関連文を直接用いるものとしてもよい。
【0317】
[第11の実施形態]
上述の実施形態に係るモデル学習装置および対話装置の構成要素は、コンピュータハードウェアと、そのコンピュータハードウェア上で実行されるコンピュータプログラムとにより実現できる。
【0318】
図48は、モデル学習装置または対話装置の内部構成を表わす図である。
図48を参照して、モデル学習装置または対話装置は、バス3300と、CPU(Central Processing Unit)3301と、ROM(Read Only Memory)3302と、RAM(Random Access Memory)3303と、HDD(Hard Disk Drive)3304と、DVD(Digital Versatile Disk)3307が接続されたDVDドライブ3306と、ネットワークI/F3309と、キーボード3310と、マウス3311と、リムーバブルメモリ3313が接続されるメモリポート3312と、ディスプレイ3308とを備える。
【0319】
キーボード3310およびマウス3311は、開発側の人員またはユーザからの入力を受け付ける。上述の実施形態で説明した機能をコンピュータで実現するためのモデル学習プログラムまたは対話プログラムは、DVD3307、リムーバブルメモリ3313、ネットワークI/F3309からHDD3304に転送される。ROM3302は、たとえば起動プログラム等を記憶する。RAM3303は、実行中のプログラムやその作業データなどを記憶する。ネットワークI/F3309は、インターネット3400に接続され、Web1000上のデータを取得することができる。
【0320】
[変形例]
本発明は、上記の実施形態に限定されるものではない。本発明は、以下のような変形例も含まれる。
【0321】
(1)上記の実施形態では、関連文検索部は、Webに掲載された文を検索することとしたが、これに限定されるものではない。モデル学習装置の関連文検索部は、モデル学習装置で利用する目的以外の目的で作成され、かつ公衆が利用可能なデータに含まれる文を検索することとしてもよい。対話装置の関連文検索部は、対話で利用する目的以外の目的で作成され、かつ公衆が利用可能なデータに含まれる文を検索することとしてもよい。これによって、Webではなく、DVDまたCDに記録されて頒布される新聞データなどに含まれる文も関連文として利用することができる。
【0322】
(2)パラメータ記憶部14,15には、重み行列だけでなく、バイアスb、c、活性化関数f、gのようなパラメータも記憶されるものとしてもよい。
【0323】
(3)応答文を出力するモデルの一例として、リカレントニューラルネットワークで構成されるモデルを用いたが、これに限定されるものではなく、リカレントニューラルネットワーク以外のニューラルネットワークを用いたモデルを用いてもよい。関連文および検検索トピックを判定するモデルの一例として、畳み込みニューラルネットワークと多層パーセプトロンで構成されるモデルを用いたが、これに限定されるものではない。
【0324】
(4)元文に対して、例えばエモーションに関するタグを付すなどの前処理を施して、タグ情報とともに学習を実行することもできる。これにより、感情に基づいた出力を行う対話応答システムを構築することもできる。
【0325】
(5)質問文を入力とし、その質問文に対するアドバイスおよび回答を表す応答文を出力とするモデルを学習し、質問文に対してアドバイスおよび回答を出力する対話応答システムを構築することもできる。
【0326】
(6)第1~第6の実施形態では、モデル学習装置がモデル(ニューラルネットワーク)の学習後のパラメータを対話装置に供給するものとしたが、これに限定するものではない。モデル学習装置が、モデル自体を表わすデータ、すなわちエンコーダおよびデコーダを構成するニューラルネットワークの構成、およびそのニューラルネットワークの学習後のパラメータを対話装置に供給するものとしてもよい。対話装置は、供給されたモデル自体を表わすデータに基づいて、モデルを構築することによって、対話実行用応答文を生成する。第8~10の実施形態でも同様である。
【0327】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0328】
1,21,31,41,81,91,551,1100,1200,1300 対話応答システム、2,22,32,42,75,78,1120,1220,1320 モデル学習装置、3,23,43,76,77,1130,1230,1330 対話装置、4,24,34,44,82,92,1140,1240,1340 コーパス生成部、5,25,87,97,1108,1308 コーパス記憶部、6,26,86 応答生成学習処理部、7,11 発話文入力部、8,12,28,45,48,1201,1341 関連文取得部、9,29,89 応答文生成部、13,38 学習用応答文入力部、14,15,1106,1107,1306,1307 パラメータ記憶部、39 対話データ取得部、33,63,83,93 学習用応答文生成部、 49,53,57 元文ランキング部、51 バイナリトリプル生成部、52 元文取得部、55 質問文生成部、56 回答及び元文取得部、64,74,84,85,95,1104,1304 コーパス出力部、151,153,157,158,351,352,451,452 エンコーダ、152,154 デコーダ、552 学習制御部、1000 Web、1051 質問・応答システム、1054 データベース、1101 関連文適合性判定部、1102 関連文選択部、1103 関連文適合性入力部、1105,1305 適合判定学習処理部、1202 適合度付与部、1303 トピック適合性入力部、1338,1368 トピック生成部、1312 トピック適合性判定部、1349 検索トピック選択部、3300 バス、3301 CPU、3302 ROM、3303 RAM、3304 HDD、3306 DVDドライブ、3307 DVD、3308 ディスプレイ、3309 ネットワークI/F、3310 キーボード、3311 マウス、3312 メモリポート、3313 リムーバブルメモリ、3400 インターネット、500,600 多層パーセプトロン、501,601 入力層、502,602 中間層、503,603 出力層、CNN1,CNN2,CNN3,CNN4 畳み込みニューラルネットワーク、C11,C21 畳み込み層、C12,C22 プーリング層、COE1,COE2 結合部。