JP2019012439A - 生成装置、生成方法及び生成プログラム - Google Patents

生成装置、生成方法及び生成プログラム Download PDF

Info

Publication number
JP2019012439A
JP2019012439A JP2017129056A JP2017129056A JP2019012439A JP 2019012439 A JP2019012439 A JP 2019012439A JP 2017129056 A JP2017129056 A JP 2017129056A JP 2017129056 A JP2017129056 A JP 2017129056A JP 2019012439 A JP2019012439 A JP 2019012439A
Authority
JP
Japan
Prior art keywords
response
utterance
user
generation
model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017129056A
Other languages
English (en)
Other versions
JP6408080B1 (ja
Inventor
伸裕 鍜治
Nobuhiro Kaji
伸裕 鍜治
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yahoo Japan Corp
Original Assignee
Yahoo Japan Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yahoo Japan Corp filed Critical Yahoo Japan Corp
Priority to JP2017129056A priority Critical patent/JP6408080B1/ja
Application granted granted Critical
Publication of JP6408080B1 publication Critical patent/JP6408080B1/ja
Publication of JP2019012439A publication Critical patent/JP2019012439A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】応答の出力精度を向上させる生成装置、生成方法及び生成プログラムを提供する。
【解決手段】本生成装置は、受付部と、選択部と、生成部とを備える。受付部は、発話の入力をユーザから受け付ける。選択部は、発話が属する分野に応じて選択されるモデルであって、発話への応答の生成に用いられるモデルである応答モデルとして、受付部によって受け付けられた発話の内容に応じた複数の応答モデルを選択する。生成部は、選択部によって選択された複数の応答モデルを用いて、受付部によって受け付けられた発話に対する応答を生成する。
【選択図】図3

Description

本発明は、生成装置、生成方法及び生成プログラムに関する。
従来、ユーザの発話に対して応答を出力する技術が知られている。このような対話に関する技術では、対話データを学習することにより対話モデルを生成する。例えば、対話モデルは、ユーザから発話を受け付けた場合に、発話や応答の内容に応じた分野(ドメイン)を推定する。そして、対話モデルは、推定されたドメインにおいてユーザの意図に応じた内容の応答を出力する。具体的には、対話モデルは、ユーザから問われた質問の内容を解析し、ユーザの意図に沿った回答を出力する。
なお、ユーザの意図に沿った回答を出力する技術としては、例えば、検索結果(すなわち、ユーザに対して出力した回答)に対するユーザのクリックログに基づいて、ユーザに出力した検索結果の正否を判定する技術が知られている。
特開2013−196315号公報
しかしながら、応答の出力精度を向上させるための情報処理には改善の余地がある。例えば、上記の従来技術は、検索結果に対してクリックログ等のフィードバックを得ることで応答の出力精度を向上させるものであるが、対話処理等ではユーザからのフィードバックを得ることが難しい場合がある。このため、必ずしもユーザからのフィードバックを得られなくとも、ユーザの意図に沿った応答を出力できることが望ましい。
本願は、上記に鑑みてなされたものであって、応答の出力精度を向上させる生成装置、生成方法及び生成プログラムを提供することを目的とする。
本願に係る生成装置は、発話の入力をユーザから受け付ける受付部と、発話が属する分野に応じて選択されるモデルであって、発話への応答の生成に用いられるモデルである応答モデルとして、前記受付部によって受け付けられた発話の内容に応じた複数の応答モデルを選択する選択部と、前記選択部によって選択された複数の応答モデルを用いて、前記受付部によって受け付けられた発話に対する応答を生成する生成部と、を備えたことを特徴とする。
実施形態の一態様によれば、応答の出力精度を向上させることができるという効果を奏する。
図1は、実施形態に係る生成装置が実行する処理の一例を示す図である。 図2は、実施形態に係る生成処理システムの構成例を示す図である。 図3は、実施形態に係る生成装置の構成例を示す図である。 図4は、実施形態に係るモデルデータベースの一例を示す図である。 図5は、実施形態に係る辞書データの一例を示す図である。 図6は、実施形態に係る対応付けデータの一例を示す図である。 図7は、実施形態に係るQ&Aデータの一例を示す図である。 図8は、実施形態に係る処理手順を示すフローチャート(1)である。 図9は、実施形態に係る処理手順を示すフローチャート(2)である。 図10は、生成装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
以下に、本願に係る生成装置、生成方法及び生成プログラムを実施するための形態(以下、「実施形態」と記載する。)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る生成装置、生成方法及び生成プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略する。
〔1.生成処理の一例〕
まず、図1を用いて、本願に係る生成装置である生成装置100が実行する生成処理の一例について説明する。図1は、実施形態に係る生成装置100が実行する処理の一例を示す図である。なお、以下の説明では、生成装置100が実行する処理として、ユーザU1の発話に対する応答を生成する生成処理の一例について説明する。すなわち、実施形態では、生成装置100は、ユーザU1との対話を実現する対話処理に関する処理を行う。
〔1−1.生成装置及び生成装置と通信する装置〕
図1に示す生成装置100は、インターネット等の所定のネットワークを介して、ユーザ端末10と通信可能な情報処理装置であり、例えば、サーバ装置である。なお、生成装置100は、ネットワークを介して、任意の数のユーザ端末10と通信可能であってよい。
ユーザ端末10は、対話システムで対話を行うユーザが使用する情報処理装置であり、スマートフォン、タブレット端末、PC(Personal Computer)といった情報処理装置により実現される。図1に示した例では、ユーザ端末10は、ユーザの一例であるユーザU1によって利用される。ユーザ端末10は、ユーザU1が発話した音声の入力を受け付ける。そして、ユーザ端末10は、入力された音声を生成装置100に送信する。なお、ユーザ端末10は、発話の代替として、ユーザU1が入力した文字列(テキストデータ)を生成装置100へ送信してもよい。
ユーザ端末10から発話を受け付けた生成装置100は、受け付けた発話を解析し、発話の内容(すなわち、ユーザU1の意図)を推定する。そして、生成装置100は、推定した内容に応じて、ユーザU1に応答するテキストを生成し、生成したテキストデータや、テキストデータを音声として出力するための音声データをユーザ端末10へと送信する。ユーザ端末10は、応答された内容を画面に表示したり、各種テキストの読み上げ技術や音声データを再生したりすることによって、ユーザU1との対話を実現する。なお、生成装置100は、ユーザへの応答を生成するため、図1に図示しない外部サーバ装置から辞書データ等の知識データの提供を受けてもよい。例えば、生成装置100は、外部サーバ装置が提供するAPI(Application Programming Interface)を利用して、所定の知識データを検索したり、取得したりしてもよい。
〔1−2.スロット抽出処理〕
ここで、生成装置100が実行する対話処理の基本的な流れについて説明する。なお、以下の説明は、実施形態を限定するものではなく、生成装置100は、以下に説明するスロットフィリングの技術を用いてユーザU1の発話に対する応答を生成するのであれば、以下に説明する対話処理以外にも、任意の態様で応答の生成を行ってよい。
例えば、生成装置100は、ユーザU1の発話を受け付けると、発話の内容が経路検索に関する内容であるか、天気に関する内容であるかというように、発話の内容が属するドメイン(分野)を推定する。そして、生成装置100は、推定結果の尤度に基づいて、発話が属するドメインを判定する。例えば、生成装置100は、発話のパターンを学習した学習器(モデル)を利用して、発話がどのようなドメインに属するかの尤度を出力し、出力した結果に基づいてドメインを判定する。
続いて、生成装置100は、判定したドメインに応じたユーザの発話の内容を推定する言語理解処理を実行する。例えば、生成装置100は、言語理解処理として、発話が示すユーザU1の意図を推定し、推定した意図を示す文字列を意図情報として生成する。そして、生成装置100は、生成した意図情報を用いて、発話に対する応答を生成し、生成した応答をユーザ端末10からユーザU1に提供する。実施形態では、生成装置100は、ドメインごとに生成された所定の応答モデルを利用して、ユーザU1に対する応答を生成するものとする。
生成装置100は、いわゆるスロットフィリングの技術を用いて、ユーザU1に対する応答を生成する。例えば、生成装置100は、所定の条件を有する意図情報がスロット値として格納される1つ以上のスロットを含むモジュールを記憶する。そして、生成装置100は、発話から生成した意図情報を対応するスロットに格納し、全てのスロットに意図情報が格納されたモジュールが存在する場合は、かかるモジュールと対応する処理を実行し、実行結果を示す応答の生成を行う。すなわち、実施形態では、応答モデルとは、モジュールが有するスロット値を対話から抽出する処理や、応答を生成可能なようにスロット値を埋める処理や、スロット値が整ったモジュールに設定された処理を実行することや、かかる処理を経てユーザU1への応答を生成する処理を行うためのモデルを意味する。なお、応答モデルは、複数のモデル(エンジン)により実現されてもよい。例えば、応答モデルは、対話の内容に適したモジュールを判定するモデルや、スロット値を抽出するためのモデルや、対話として自然な言語を選択するためのモデル等の複数のモデルによって実現されてもよい。
上述のように、生成装置100は、ドメインごとに異なる対話モジュールを有する。例えば、生成装置100は、出発地(地名)を示す文字列がスロット値として登録される第1スロットと、到着地(地名)を示す文字列がスロット値として登録される第2スロットとを有する経路検索モジュールを有する。この場合、生成装置100は、発話の文字列から地名を示す文字列をスロット値(すなわち、ユーザU1の意図を示す意図情報)として抽出する。言い換えれば、生成装置100は、発話の文字列から、所定の条件を満たす文字列をスロット値として抽出する。このような文字列の抽出は、例えば、形態素解析や辞書データとの比較による単語の意味特定技術等により実現可能である。そして、生成装置100は、モジュールに入力されたスロット値に基づいて、ユーザU1の対話に関する応答を生成する。なお、生成装置100は、ユーザU1が発した任意の語句をスロット値として登録し、登録された語句の意味を検索する語句検索モジュールや、ユーザU1の質問をウェブ検索して検索結果を回答するQ&Aモジュール等を有してもよい。
また、生成装置100は、ユーザU1との対話を随時進めることで、モジュールに含まれる各スロットに対応するスロット値を格納してもよい。例えば、生成装置100は、ユーザU1の発話内に到着地と推定できる文字列が含まれていない場合には、「到着地はどこですか」といった応答を生成し、ユーザU1に送信する。そして、生成装置100は、ユーザU1の再度の発話から取得される文字列を取得し、取得した文字列からスロット値(この例では、到着地に対応する地名)を抽出する。すなわち、生成装置100は、ユーザU1から受け付けた複数の発話から、所定の条件を満たす文字列をスロット値として抽出してもよい。そして、生成装置100は、経路検索モジュールに含まれる全てのスロットにスロット値が格納された場合に、格納されたスロット値を用いて経路検索モジュールに予め設定された情報処理を実行し、ユーザU1への応答を生成する。
例えば、生成装置100は、経路検索モジュールに、出発地(地名)を示すスロット値「東京」と到着地(地名)を示すスロット値「渋谷」とが格納された場合は、予めモジュールに設定されている処理に従い、「東京」から「渋谷」までの経路をウェブ検索する。具体的には、生成装置100は、東京駅から渋谷駅までの交通機関の乗換案内や、東京から渋谷までの経路を示すナビ情報等を検索する。そして、生成装置100は、検索した情報に基づいてユーザU1への応答を生成して、ユーザ端末10に送信する。
〔1−3.実施形態に係る生成処理〕
上記のような対話応答処理は、例えば、属性情報がラベル付けされた語句を学習データとして学習したモデルにより実現される。具体的には、生成装置100は、「東京」や「渋谷」が、「地名」や「駅名」であるという属性情報が対応付けられた(ラベル付けされた)学習データを学習することで、モジュールに設定された処理を実行することや、ユーザU1への応答を生成することのできるモデルを生成することができる。
ここで、ユーザU1から受け付けた発話には、属性情報が不明な語句(文字列)が含まれる場合がある。この場合、生成装置100は、発話のパターンからドメインを判定することができたとしても、適切な応答ができない場合がある。例えば、生成装置100は、パターンマッチング等を学習したドメイン判定モデルにより、「地名から、地名までの行き方」という発話を受け付けた場合、ユーザU1が経路検索を意図していると推定し、経路検索モジュールを選択することは可能である。しかし、生成装置100は、スロット値として抽出する地名が判別できない場合には、ユーザU1の意図した回答内容を応答として生成できない。上記のように、生成装置100は、不明なスロット値を再度ユーザU1に問い合わせることはできるものの、再度の発話を行う必要が生じるため、ユーザU1としては煩雑な手間が発生することになる。
そこで、実施形態に係る生成装置100は、以下の生成処理を実行する。具体的には、生成装置100は、発話の入力をユーザU1から受け付けた場合に、発話が属する分野に応じて選択されるモデルであって、発話への応答の生成に用いられるモデルである応答モデルのうち、受け付けられた発話の内容に応じて、複数の応答モデルを選択する。そして、生成装置100は、選択された複数の応答モデルを用いて、受け付けられた発話に対する応答を生成する。
すなわち、生成装置100は、一つのドメインに対応する応答モデル(モジュール)を利用するのではなく、複数の応答モデルを使用して応答を生成する。具体的には、生成装置100は、ある任意のドメインに対応するモジュール(以下、「第1モジュール」と表記する場合がある)にスロット値が埋まらなかった場合や、適切な応答が生成できないと判定する場合に、第1モジュールとは異なるモジュール(以下、「第2モジュール」と表記する場合がある)を選択する。そして、生成装置100は、第2モジュールにおいて取得された情報を利用して、再度第1モジュールにおける応答を生成する。
これにより、生成装置100は、第1モジュールのみでは適切な回答が得られない発話に対しても、ユーザU1に対する問い合わせ(再度の発話)を発生させることなく、適切な応答を生成することができる。以下、図1を用いて、実施形態に係る生成処理の流れについて説明する。なお、以下で説明する生成処理には、種々の既知の技術が用いられてもよい。例えば、発話のドメイン判定や、対話におけるスロット値の抽出処理は、任意の分類技術により実現可能である。例えば、生成装置100は、SVM(Support Vector Machine)やDNN(Deep Neural Network)等、任意の学習器又は分類器等のモデルを用いて実施形態に係る処理を行ってもよい。
図1の例において、まず、ユーザ端末10は、ユーザU1から発話を受け付ける。そして、ユーザ端末10は、受け付けた発話を生成装置100に送信する(ステップS01)。例えば、ユーザ端末10は、「東京駅から日本一高い山への行き方」といったユーザU1の発話を送信する。
生成装置100は、ユーザ端末10から発話を受け付け、受け付けた発話に対する応答の生成処理を開始する(ステップS02)。
まず、生成装置100は、発話を解析し、発話が属するドメインを判定する。一例として、生成装置100は、発話を形態素解析し、各語句に対応付けられた属性情報に基づいて、発話のドメインを判定する。例えば、生成装置100は、「行き方」や「乗り換え」や「どうやって行くの」等、発話のドメインを判定するための属性情報が設定された語句が発話に含まれるか否かに応じて、ドメインを判定する。あるいは、生成装置100は、ユーザU1の発話のパターンがどのようなドメインに属するかを学習したドメイン判定モデルの出力結果に応じて、ユーザU1の発話が属するドメインを判定する。そして、生成装置100は、判定されたドメインに基づいて、当該発話に対する応答を生成するための第1モジュールを判定する(ステップS03)。
図1の例では、生成装置100は、「東京駅」「から」「日本一」「高い」「山」「への」「行き方」といったように解析された発話(文字列)のパターンから、当該発話が経路検索モジュールに属すると判定したものとする。
この場合、生成装置100は、経路検索モジュールにおけるスロットを埋めるため、発話からスロット値の抽出を試みる。例えば、生成装置100は、スロット抽出処理に対応するモデルに発話を入力することによりスロット値を抽出する。具体的には、生成装置100は、「から」という語句の前の文字列を「出発地」と推定し、「への」という語句の前の文字列を「到着地」と推定して、スロット値を抽出する。図1の例では、生成装置100は、「東京駅」を「出発地」として抽出し、「日本一高い山」を「到着地」として抽出するものとする。
上記のように、生成装置100は、ユーザU1の発話から第1モジュールにおけるスロット値を判定する(ステップS04)。このとき、生成装置100は、第1モジュールのみを用いてユーザU1の発話に対する応答を生成することが可能であるか否かを判定する。具体的には、生成装置100は、第1モジュールのスロット値として判定された文字列によって、第1モジュールによる応答が生成可能か否かを判定する。例えば、生成装置100は、第1モジュールのスロット値として判定された文字列が、当該スロットに設定された属性情報と一致しているか否かを判定する。
図1の例では、生成装置100は、出発地のスロット値として抽出された「東京駅」は、「地名」もしくは「駅名」の属性情報を有する文字列と判定する。かかる判定は、例えば、生成装置100が有する辞書データ等の知識データベースとの照合により行われる。
一方で、生成装置100は、到着地のスロット値として抽出された「日本一高い山」は、「地名」もしくは「駅名」の属性情報を有する文字列と判定できなかったものとする。例えば、生成装置100は、「日本一高い山」に対応付けられる属性情報が辞書データに存在しておらず、「日本一高い山」が「地名」もしくは「駅名」であるかを判定することができなかったものとする。この場合、生成装置100は、第1モジュールのみではユーザU1への適切な応答を生成することができる度合い(以下、「適性度」と表記する場合がある)が低いことから、第1モジュールのスロット値として抽出される文字列を変換させる処理を行う。
ここで、生成装置100は、現時点で第1モジュールのスロット値として抽出された文字列(図1の例では、「日本一高い山」)に基づいて、第2モジュールを判定する(ステップS05)。具体的には、生成装置100は、「日本一高い山」という文字列を新たな発話として取り扱い、「日本一高い山」という発話が受け付けられた場合のドメインを判定する。例えば、生成装置100は、上述のドメイン判定モデルを再度用いて、「日本一高い山」が発話として入力された場合に、当該発話が属するドメインを判定する。
図1の例では、生成装置100は、対象を問われた際の発話パターン(「日本一高い山(は、何か?)」)の類似性に基づいて、当該発話が「Q&Aモジュール」に属すると判定する。Q&Aモジュールは、例えばユーザ間の相互の質問回答をデータベース化しておき、質問が入力された場合に当該質問に対応する回答を出力するAPIである。
生成装置100は、第2モジュールであるQ&Aモジュールの処理を実行する(ステップS06)。具体的には、生成装置100は、「日本一高い山」という発話から、Q&Aモジュールのスロットを埋めるスロット値を抽出する。例えば、Q&Aモジュールは、「条件#1」「条件#2」といったスロットを有し、各スロットには、例えばQ&Aのデータベース上で設定されている文字列が入力されるものとする。図1の例では、Q&Aモジュールには、「条件#1」として「日本一」が、「条件#2」として「高い山」が抽出される。この場合、生成装置100は、Q&Aモジュールに対応するAPIを利用して、「日本一」という条件と「高い山」という条件とを満たす回答を検索する。そして、生成装置100は、第2モジュールであるQ&Aモジュールから出力される応答を取得する(ステップS07)。具体的には、生成装置100は、Q&Aモジュールから「富士山」という応答を取得する。かかる応答は、例えば、ユーザU1が「日本一高い山」という発話を生成装置100に送信した場合に、生成装置100から送信される応答と一致するものである。
生成装置100は、第2モジュールによって生成された応答を新たな文字列として、第1モジュールに入力する(ステップS08)。図1の例では、生成装置100は、「日本一高い山」が抽出されていた到着地のスロットに、第2モジュールの応答で得られた「富士山」を入力する。図1の例では、「富士山」が「地名」又は「駅名」の属性情報を有するので、生成装置100は、かかるスロット値に基づいて第1モジュールの処理を実行することができると判定する。具体的には、生成装置100は、第1モジュールの応答の適性度が所定の閾値よりも高くなったと判定して、第1モジュールによって適切な応答が生成可能であると判定する。そして、生成装置100は、第1モジュールの応答を生成する(ステップS09)。
例えば、生成装置100は、「東京駅」から「富士山」までのナビ上の経路を検索したり、「東京駅」から「富士山」に対応付けられた駅(例えば、「富士山」の最寄駅)までの乗換案内を検索したりする。そして、生成装置100は、得られた検索結果に基づいて、ユーザU1の応答を生成する。
続けて、生成装置100は、生成した応答をユーザ端末10に送信する。なお、その後、ユーザ端末10は、所定のフィードバックを生成装置100に送信してもよい。例えば、ユーザ端末10は、「今の応答により正しい回答が得られましたか?」といった内容の質問をユーザU1に行い、提示された検索結果が正解であったか否かの反応を受け付け、かかる反応を生成装置100に送信してもよい。この場合、生成装置100は、生成した応答が正解(正例)であったことを学習してもよい。あるいは、ユーザ端末10は、生成装置100から送信された応答を提示した直後に、ユーザU1から異なる内容の発話を受け付けたこと等を生成装置100に送信してもよい。この場合、ユーザU1は自身が意図していた内容と異なる応答を提示されたため、さらに異なる発話をユーザ端末10に入力したと推定される。言い換えれば、生成装置100の応答は、不正解であったと推定される。この場合、生成装置100は、生成した応答を不正解(負例)と学習してもよい。
上記のようなドメイン判定、スロット抽出、応答の生成、及びフィードバックの受信を経て、生成装置100は、応答の生成に関する学習を行う。例えば、生成装置100は、学習処理を経て、スロット抽出や応答の生成に係る応答モデルを更新してもよい。また、生成装置100は、一連の処理によって得られた情報(例えば、「日本一高い山」が「富士山」であること等)をキャッシュとして自身の記憶部に保持してもよい。
このように、実施形態に係る生成装置100は、発話の入力をユーザU1から受け付け、当該発話が属する分野に応じて選択されるモデルであって、発話への応答の生成に用いられるモデルである応答モデルのうち、受け付けられた発話の内容に応じて、複数の応答モデルを選択する。そして、生成装置100は、選択された複数の応答モデルを用いて、受け付けられた発話に対する応答を生成する。
言い換えれば、生成装置100は、一つの会話に対して、複数のドメインに属する応答モデル(すなわち、対話生成に係るモジュール)を選択する。これにより、生成装置100は、第1のドメインでは適切な応答を生成できないような対話が受け付けられた場合であっても、他のドメインによる応答を利用することができるため、応答の出力精度を向上させることができる。さらに、実施形態に係る生成処理によれば、ユーザU1への再度の問い合わせを発生させることなく、一度の対話で適切な応答を生成することができる。これにより、生成装置100は、ユーザU1の手間を軽減させることができるので、ユーザビリティに優れた対話処理を実現することができる。
なお、生成装置100は、ユーザU1の発話からスロット値を抽出する処理において、発話に対応する文字列に関する情報のみならず、ユーザU1に関する他の情報を考慮した生成処理を行ってもよい。例えば、生成装置100は、ユーザ端末10が所在する位置情報や、ユーザU1との過去の対話、ユーザU1のデモグラフィック属性やバイオグラフィック属性等を考慮して、ユーザU1の発話に含まれる語句の属性情報を推定する処理や、スロット抽出に関する処理を行ってもよい。
また、上述した発話の文章は、あくまで一例であり、生成装置100は、任意の発言の内容に基づいて、スロット値の候補からスロット値を選択してよい。例えば、生成装置100は、「腰が痛い」といった発話を受け付けた場合は、検索する施設の候補の中から「整体病院」等といったスロット値、すなわち、発話の内容と連想関係を有するスロット値を選択し、選択したスロット値「整体病院」を用いて、ユーザU1の近傍にある整体病院の情報を応答として提供してもよい。なお、このようなスロット値の選択は、連想関係を学習させたモデルにより実現可能である。
また、生成装置100は、発話の内容と、ユーザU1の属性とに基づいて、スロット値を選択してもよい。一例として、生成装置100は、ユーザU1からレストラン検索に関する発話を受け付けた場合、発話を行ったユーザU1が男性である場合には、比較的ボリュームが多い食事を提供するレストランを検索し、ユーザU1が女性である場合は、カフェなどの雰囲気が良いレストランの検索を行ってもよい。
また、生成装置100は、上述した情報以外にも、ユーザU1の住所や年齢等といったデモグラフィック属性や趣味趣向等のサイコグラフィック属性に基づいて、生成処理を行ってもよい。例えば、生成装置100は、ユーザU1の各種属性に基づいて、ユーザU1の意図をより強く示すと推定される候補を優先的に選択するように、スロット抽出を行う際の重みづけを設定してもよい。また、生成装置100は、ユーザU1が発話した時間帯等、他の情報を考慮して、スロット値の抽出を行ってもよい。
また、生成装置100は、上述した処理以外にも、任意の処理を合わせて実行してもよい。例えば、上述した説明では、生成装置100は、発話の文字列からスロット値の抽出や選択を行った。しかしながら、実施形態は、これに限定されるものではない。例えば、生成装置100は、発話の文字列を作成するような音声認識を実行せず、音声の波形データから直接スロット値の抽出や選択を行ってもよい。例えば、生成装置100は、スロット値として登録される波形の特徴をスロット値の条件として保持し、発話の音声の波形から、スロット値の条件として保持した特徴を有する波形部分を抽出し、抽出した波形部分をスロット値としてもよい。また、生成装置100は、音声の波形と、文字列または音声の波形により実現されるスロット値の候補との間の関係性の特徴を学習したDNN等を用いて、発話の音声波形から、スロット値の選択を行ってもよい。
また、生成装置100は、発話からスロット値を抽出可能であるか否かを判定する処理と、発話からスロット値を抽出可能である場合に、発話からスロット値を抽出する処理と、発話からスロット値を抽出できない場合に、スロット値の候補の中からスロット値を選択する処理とを実行するように、DNN等のモデルの学習を行い、学習したモデルを用いて、上述した処理を実行してもよい。また、生成装置100は、モデルがスロット値を抽出できなかった場合には、所定の応答をユーザU1に送信し、新たな発話をユーザU1から受け付ける処理を行ってもよい。
また、上記で説明した各モジュールの処理は例示であり、生成装置100が実行する処理内容は、図1で示した処理に限られない。例えば、生成装置100が有するQ&Aモジュールは、上記のようなスロットを有さずに以下のような処理を実行してもよい。具体的には、Q&Aモジュールは、まずユーザの発話が「山」に関するものであることを認識し、その後、所定の知識データベースに問い合わせを行い、「日本一」や、「高い」といったキーワードを含むスニペットを抽出する。そして、Q&Aモジュールは、上記のキーワードの近傍に出現する山の名前を検索し、検索した結果を出力する。この場合、Q&Aモジュールは、例えば「質問文」という一つのスロットを有し、そのスロット値は「日本一高い山」である。
〔2.生成処理システムの構成〕
次に、図2を用いて、実施形態に係る生成装置100が含まれる生成処理システム1の構成について説明する。図2は、実施形態に係る生成処理システム1の構成例を示す図である。図2に例示するように、実施形態に係る生成処理システム1には、ユーザ端末10と、生成装置100が含まれる。これらの各種装置は、ネットワークN(例えば、インターネット)を介して、有線又は無線により通信可能に接続される。なお、図2に示した生成処理システム1には、複数台のユーザ端末10が含まれてもよい。
ユーザ端末10は、例えば、スマートフォンや、デスクトップ型PCや、ノート型PCや、タブレット型端末や、携帯電話機、PDA(Personal Digital Assistant)、ウェアラブルデバイス(Wearable Device)等の情報処理装置である。ユーザ端末10は、ユーザから発話を受け付けたり、受け付けた発話のデータを生成装置100に送信したりする。なお、本明細書中においては、ユーザとユーザ端末10とを同一視する場合がある。例えば、「ユーザに応答を送信する」とは、実際には、「ユーザが利用するユーザ端末10に応答を送信する」ことを意味する場合がある。
生成装置100は、実施形態に係る生成処理を行うサーバ装置である。実施形態では、生成装置100は、複数の応答モデルを用いて対話の応答を生成する処理を行う。
なお、図2では図示していないが、生成処理システム1には、生成装置100が対話の応答を生成するに際して、対話に含まれる文字列に対応付けられた属性情報を提供する知識データベースを有するデータサーバや、各種情報を検索する検索サーバや、各種APIを提供する外部サーバ等が含まれてもよい。すなわち、実施形態に係る生成処理は、全ての処理を生成装置100自身が行ってもよいし、ネットワーク上に点在する複数のサーバが連携して行ってもよい。
〔3.生成装置の構成〕
次に、図3を用いて、実施形態に係る生成装置100の構成について説明する。図3は、実施形態に係る生成装置100の構成例を示す図である。図3に示すように、生成装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、生成装置100は、生成装置100を利用する管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
(通信部110について)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。かかる通信部110は、ネットワークNと有線又は無線で接続され、ネットワークNを介して、ユーザ端末10との間で情報の送受信を行う。
(記憶部120について)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。図3に示すように、記憶部120は、モデルデータベース121と、知識データベース123と、キャッシュデータベース124とを有する。
(モデルデータベース121について)
モデルデータベース121は、各種モデルを記憶する。ここで、図4に、実施形態に係るモデルデータベース121の一例を示す。図4は、実施形態に係るモデルデータベース121の一例を示す図である。図4に示した例では、モデルデータベース121は、「モデル種別」、「ドメイン」、「実行処理」、「スロット名」、「属性情報」といった項目を有する。
「モデル種別」は、モデルの種別を示す。具体的には、モデル種別は、対話処理のうち、どのような処理に用いられるモデルであるかを示した情報である。「ドメイン」は、モデルに対応するドメイン(すなわち、対話の分野)を示す情報である。
「実行処理」は、モデルが実行する処理を示す。「スロット名」は、応答モデルが有するスロットの名称を示す。「属性情報」は、対応付けられたスロットにスロット値として格納される文字列等の属性情報、言い換えれば、スロット値として格納される文字列の条件を示す情報である。
すなわち、図4では、モデルデータベース121に格納される情報の一例として、モデル種別「音声認識モデル」は、対応するドメインが「ALL」(すなわち、全てのドメイン)であり、実行処理が「音声認識」であることを示す。また、モデル種別「応答モデル」の一例は、対応するドメインが「経路検索」であり、実行処理が「経路検索、応答生成」であり、その処理は経路検索モジュールによって実行されることを示している。また、当該応答モデルは、スロット名「出発地」や「到着地」を有しており、かかるスロットに入力される文字列として抽出される文字列は、属性情報「地名」や「駅名」を有する文字列であることを示している。
なお、図4での図示は省略したが、モデルデータベース121は、各モデルを構成する各パラメータ等のデータを記憶してもよい。
(知識データベース123について)
知識データベース123は、各種知識データを記憶する。図3に示すように、知識データベース123は、辞書データ123A、対応付けデータ123B、Q&Aデータ123Cといったデータテーブルを有する。
(辞書データ123Aについて)
辞書データ123Aは、生成装置100が有する辞書データの情報を記憶する。ここで、図5に、実施形態に係る辞書データ123Aの一例を示す。図5は、実施形態に係る辞書データ123Aの一例を示す図である。図5に示した例では、辞書データ123Aは、「知識データ種別」、「語句ID」、「語句」、「品詞」、「属性情報」といった項目を有する。
「知識データ種別」は、データテーブルが有する知識データの種別を示す。「語句ID」は、語句(文字列)を識別する識別情報を示す。「語句」は、辞書データに登録されている具体的な語句を示す。「品詞」は、辞書データに登録されている品詞を示す。「属性情報」は、辞書データに登録されている属性情報を示す。なお、図5に示す例では、「語句#1」、「品詞#1」、「属性情報#1」等といった概念的な値を記載したが、実際には、各項目には、具体的な語句の文字列や、具体的な品詞の種類や、具体的な属性情報の種別等が記憶される。
すなわち、図5では、辞書データ123Aに格納される情報は、知識データ種別が「辞書データ」であり、格納される情報の一例として、語句IDが「W01」である語句は、「語句#1」という文字列からなる語句であり、その品詞は「品詞#1」であり、属性情報が「属性情報#1」であることを示している。
(対応付けデータ123Bについて)
対応付けデータ123Bは、生成装置100が有する対応付けデータの情報を記憶する。対応付けデータとは、ある語句に対して予め対応付けされたデータを示す。例えば、ユーザが有名なランドマークを発話した場合には、生成装置100は、対応付けデータ123Bを参照し、かかるランドマークに対応付けされた情報を取得し、取得した情報に基づいて生成処理を行うことができる。
ここで、図6に、実施形態に係る対応付けデータ123Bの一例を示す。図6は、実施形態に係る対応付けデータ123Bの一例を示す図である。図6に示した例では、対応付けデータ123Bは、「知識データ種別」、「カテゴリ」、「語句」、「位置情報」、「最寄駅」といった項目を有する。
「知識データ種別」は、データテーブルが有する知識データの種別を示す。「カテゴリ」は、対応付けデータを有する語句のカテゴリを示す。「語句」は、対応付けデータに登録されている具体的な語句を示す。「位置情報」は、語句に対応する対象(図6の例では、ランドマークの一例である富士山)の位置情報を示す。「最寄駅」は、語句に対応する対象の最寄駅を示す。なお、図6に示す例では、「位置情報#1」、「駅名#1」等といった概念的な値を記載したが、実際には、各項目には、具体的な緯度経路等の数値や、具体的な駅名等が記憶される。
すなわち、図6では、対応付けデータ123Bに格納される情報は、知識データ種別が「対応付けデータ」であり、格納される情報の一例として、カテゴリが「ランドマーク」であり、「富士山」という文字列からなる語句は、位置情報が「位置情報#1」であり、最寄駅が「最寄駅#1」に対応付けられていることを示している。
(Q&Aデータ123Cについて)
Q&Aデータ123Cは、生成装置100が有するQ&Aデータの情報を記憶する。Q&Aデータとは、質問と回答とのペアである。Q&Aデータは、例えば、生成装置100の管理者等によって入力されたり、ウェブ上の質問サイト等において、あるユーザが投稿した質問に対して任意のユーザが回答した内容に基づいて生成されたりする。例えば、ユーザが発話した文字列が自明な語句でない場合(辞書データ123A等に保持されていない文字列である場合等)には、生成装置100は、Q&Aデータ123Cを参照し、かかる文字列に対応した回答を取得し、取得した情報に基づいて生成処理を行うことができる。
ここで、図7に、実施形態に係るQ&Aデータ123Cの一例を示す。図7は、実施形態に係るQ&Aデータ123Cの一例を示す図である。図7に示した例では、Q&Aデータ123Cは、「知識データ種別」、「質問」、「回答」、「確度」といった項目を有する。
「知識データ種別」は、データテーブルが有する知識データの種別を示す。「質問」は、質問を示した文字列(テキストデータ)を示す。「回答」は、質問に対する回答を示した文字列を示す。「確度」は、回答の確からしさの度合いを示す。確度は、例えば、ユーザに示した回答に対するフィードバックに応じて、その回答が適切であったか否かを学習すること等によって算出される。生成装置100は、例えば確度が所定閾値を下回った回答に関しては、回答の内容を変更する等の学習処理を行ってもよい。なお、図7に示す例では、「質問#1」、「回答#1」、「確度#1」等といった概念的な値を記載したが、実際には、各項目には、質問や回答の具体的な内容や、確度を示す具体的な数値等が記憶される。
すなわち、図7では、Q&Aデータ123Cに格納される情報は、知識データ種別が「Q&Aデータ」であり、格納される情報の一例として、質問が「質問#1」であるデータの回答が「回答#1」であり、その確度は「確度#1」であることを示している。
(キャッシュデータベース124について)
キャッシュデータベース124は、生成装置100が取得した情報のキャッシュを記憶する。キャッシュデータベース124は、例えば、生成装置100が外部サーバ等から取得した情報や、ユーザから取得したフィードバックに関する情報等が適宜記憶する。具体的には、キャッシュデータベース124は、ユーザの発話のパターンに対して、どの複数の応答モデルを選択したかといった履歴情報や、また、選択した応答モデルが正解であったか不正解であったか等の学習データ等を記憶する。
(制御部130について)
制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、生成装置100内部の記憶装置に記憶されている各種プログラム(生成プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
図3に示すように、制御部130は、受付部131と、選択部132と、生成部133と、送信部134と、学習部135とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図3に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部130が有する各処理部の接続関係は、図3に示した接続関係に限られず、他の接続関係であってもよい。
(受付部131について)
受付部131は、各種情報を受け付ける。例えば、受付部131は、ユーザ端末10から送信される発話の入力を受け付ける。なお、受付部131は、発話に限らず、ユーザ端末10から送信される文字列(テキストデータ)を受け付けてもよい。
(選択部132について)
選択部132は、発話が属する分野に応じて選択されるモデルであって、発話への応答の生成に用いられるモデルである応答モデルとして、受付部131によって受け付けられた発話の内容に応じた複数の応答モデルを選択する。なお、図1で説明したように、選択部132は、発話を受けた時点で複数の応答モデルを選択するのではなく、以下に説明する処理の過程において、一つの応答モデルによる応答よりも適切な応答が生成可能と判定した場合に、複数の応答モデルを選択する。
まず、選択部132は、受付部131によって受け付けられた発話を文字列として認識し、当該発話が属するドメインを分類する。具体的には、選択部132は、所定の音声認識モデルを利用して、発話をテキストデータとして認識する処理を行う。選択部132は、ユーザの発話をテキストデータに変換する。なお、選択部132は、音声データをテキストデータへと変換する所定の外部サーバを介して、ユーザの発話をテキストデータに変換してもよい。そして、選択部132は、各種の文字解析技術や分類技術を用いて、当該テキストデータがどのような分野に属する内容であるかを判定する。例えば、選択部132は、SVM等により生成された任意のドメイン判定モデルを用いて、ユーザの発話がどのような分野に属する内容であるかを判定する。
さらに、選択部132は、発話に対応する文字列のパターン等を学習したドメイン判定モデルを用いて、当該発話が属すると推定されるドメインを判定し、発話をドメインごとに分類する。言い換えれば、選択部132は、発話の内容に基づいて、発話の応答の生成に用いる応答モデルを選択する。
なお、ドメインは、発話が属する分野を示すとともに、応答生成に係るサービスを示すものともなりうる。例えば、経路検索に係るドメイン(具体的には、当該ドメインに対応するモデル)では、一般に、経路検索サービスを提供するサーバのAPIが利用される。このため、選択部132は、ユーザによる所定のサービスの利用履歴等に基づいて、発話を分類してもよい。例えば、選択部132は、ユーザに対して提供される各種サービスの利用履歴を収集する。そして、選択部132は、各ドメインに対し、各ドメインに対応する種別のサービスをユーザが利用した頻度や時期に応じたスコアを付与する。さらに、選択部132は、分類モデルを用いて、発話と各ドメインの関連性を示すスコアを算出する。そして、選択部132は、サービスの利用履歴に基づくスコアと、分類モデルにより算出されたスコアとを統合的に用いて、発話の分類先となるドメインを選択してもよい。また、選択部132は、ユーザの属性(例えば、ユーザの性別や年齢や居住地等)に基づいて対話を分類してもよい。上記の処理により、選択部132は、ユーザの発話に対応する第1のドメインを選択する。すなわち、選択部132は、受付部131によって発話が受け付けられた場合、はじめから複数のドメイン(応答モデル)を選択するのではなく、発話の応答に最も適すると想定されるような第1のドメイン(応答モデル)を選択する。
続いて、選択部132は、選択した第1のドメインに対応する第1の応答モデルを用いて、発話に対する応答を生成する。具体的には、選択部132は、第1の応答モデルを用いて、第1のドメインに対応するモジュールのスロット値を抽出する処理を実行する。例えば、選択部132は、ユーザの発話にどのような属性情報が対応付けられるか(ラベル付けされるか)を判定し、判定した結果に基づいて、発話からスロット値を抽出する。
そして、選択部132は、第1の応答モデルのみを用いて受付部131によって受け付けられた発話に対する応答を生成する場合の適性度を判定し、適性度が所定の閾値を超えないと判定した場合に、第2の応答モデルを選択する。
より具体的には、選択部132は、第1の応答モデルを用いて受付部131によって受け付けられた発話に対する応答を生成した場合の生成結果、応答を生成する際に実行した検索結果、又は、生成した応答に対するユーザの反応の少なくともいずれか一つに基づいて、適性度を判定する。例えば、選択部132は、第1の応答モデルを用いて応答を生成した場合に、第1の応答モデルにおいて抽出したスロット値が適切なものでない場合、生成結果として所定のエラーを返す場合がある。具体的には、選択部132は、図1で示した経路検索モジュールの「到着地」のスロット値を「日本一高い山」として応答を生成した場合、「日本一高い山」のスロット値が示す情報が不明確であるとして、エラーを返す場合がある。このような場合、選択部132は、エラーでない応答が生成できた場合と比較して、かかる応答の適性度を低く判定する。
あるいは、選択部132は、応答を生成する際に実行した検索結果に基づいて適性度を判定してもよい。具体的には、選択部132が、経路検索モジュールの「到着地」のスロット値を「日本一高い山」として経路検索を行った場合、「出発地」と「到着地」のスロット値がともに地名や駅名である場合と比較して、少数の検索結果が出力されると推定される。これは、「日本一高い山」が検索サーバ等では認識できず、結果として、乗換案内情報や経路情報が少数しか検索されないことによる。このような場合も、選択部132は、比較的少数しか検索されなかった過程を経た応答は、比較的多数の検索結果を有する応答と比較して、かかる応答の適性度を低く判定する。
また、選択部132は、第1の応答モデルを用いて生成した応答に対するユーザの反応に基づいて適性度を判定してもよい。例えば、選択部132は、第1の応答モデルによって生成された応答を受信したユーザから、「この応答が適切でない」と明示されたフィードバックを受信したり、ユーザから即座に新たな質問を受け付けたりした場合には、第1の応答モデルによって生成された応答は、比較的好ましくない応答であったと判定する。そして、選択部132は、かかる応答は、ユーザが好ましいと判定した応答と比較して、適性度を低く判定する。
上記のような判定処理を経て、第1の応答モデルによって適切な応答が生成できないと推定される場合に、選択部132は、受付部131によって受け付けられた発話に含まれる所定の文字列であって、第1の応答モデルのスロットに入力される候補である文字列に基づいて、第2の応答モデルを選択する。
具体的には、選択部132は、受付部131によって受け付けられた発話に含まれる所定の文字列が応答モデルのスロットに入力された場合の適性度を判定し、当該所定の文字列が第1の応答モデルのスロットに入力された場合の適性度が所定の閾値よりも低い場合に、所定の文字列が入力された場合の適性度が所定の閾値よりも高くなるスロットを有する第2の応答モデルを選択する。例えば、選択部132は、スロット値として抽出された文字列が、当該スロットに設定された属性情報を有するか否かに基づいて、スロット値としての適切性を判定する。
例えば、図1に示した例では、「日本一高い山」という文字列が「地名」や「駅名」等の属性情報を有していないため、「日本一高い山」は、経路検索モジュールのスロット値としての適性度は比較的低いと想定される。具体的には、選択部132は、経路検索モジュールのスロット値として「日本一高い山」が抽出された場合、その適性度が所定の閾値より低いと判定する。一方、「日本一高い山」という文字列が「Q&Aデータ」として知識データベース123に記憶されている場合には、「日本一高い山」は、Q&Aモジュールのスロット値としての適性は比較的高いと想定される。すなわち、選択部132は、「日本一高い山」が第1の応答モデル(この例では、経路検索モジュール)のスロットに入力された場合の適性度が所定の閾値よりも低い場合に、「日本一高い山」が入力された場合の適性度が所定の閾値よりも高くなるスロットを有する第2の応答モデル(この例では、Q&Aモジュール)を選択する。
また、選択部132は、後述する生成部133によって生成された応答を受信したユーザの過去の反応に基づいて、受付部131によって受け付けられた発話の内容に応じた複数の応答モデルを選択してもよい。例えば、選択部132は、ユーザから受け付けた発話のログと、当該発話に対して選択した複数の応答モデルと、応答モデルが生成した応答に対するユーザの反応が好意的であったか否かといった情報を保持する。そして、選択部132は、次に発話が受け付けられた場合に、当該ログを利用して、よりユーザが好意的な反応を示すと想定される応答を生成することのできる応答モデルを選択する。なお、このようなユーザのフィードバックを利用した選択処理は、後述する学習部135による学習処理を経て行われる。例えば、学習部135は、選択部132が適切な応答モデルを選択するための学習を行う。
上述してきたように、選択部132は、ユーザの発話に応じて、複数の応答モデルを選択する。そして、選択部132は、選択した複数の応答モデルに関する情報を生成部133に送る。
(生成部133について)
生成部133は、選択部132によって選択された複数の応答モデルを用いて、受付部131によって受け付けられた発話に対する応答を生成する。
具体的には、生成部133は、選択部132によって選択された複数の応答モデルのうち、第2の応答モデルから出力された回答結果を第1の応答モデルに入力することで、発話に対する応答を生成する。具体的には、生成部133は、第1の応答モデルが経路検索モジュールを用いるものであり、第2の応答モデルがQ&Aモジュールを用いるものである場合、Q&Aモジュールの処理によって取得された情報(例えば、「日本一高い山」が「富士山」であるという情報)を第1の応答モデルに入力して、第1の応答モデルを用いて発話に対する応答を生成する。
この場合、生成部133は、受付部131によって受け付けられた発話が第1の応答モデルに入力された場合に出力される第1の回答の評価値に応じて、第1の回答をユーザに応答するか、あるいは、第2の応答モデルから出力された回答結果を当該第1の応答モデルに新たに入力して出力される第2の回答をユーザに応答するかを判定してもよい。この場合の評価値とは、例えば、選択部132が応答モデルを選択する際に利用する適性度と同様に算出されてもよい。
例えば、生成部133は、第1のドメインに対応する経路検索モジュールにおいて、出発地「東京駅」と到着地「日本一高い山」のスロット値に基づいて実行される処理(具体的には経路検索処理)の結果と、出発地「東京駅」は変えずに、Q&Aモジュールの処理を経て抽出された到着地「富士山」のスロット値に基づいて実行される結果とにおいて、いずれが回答結果として適切かを評価する。例えば、生成部133は、ウェブ検索される結果数や、エラーの発生の有無等に基づいて、評価値を算出する。そして、生成部133は、はじめから第1の応答モデルのみによって生成された第1の回答が適切か、あるいは、第2の応答モデルを経て生成された第2の回答が適切かを判定した上で、ユーザに送信する応答を選択する。すなわち、生成部133は、実際に出力された結果を参照して応答を判定するため、ユーザの発話に対してより適切な応答を生成することができる。
また、生成部133は、第1の回答もしくは第2の回答を受信したユーザの反応に基づいて、第1の回答もしくは第2の回答に対する評価値を更新してもよい。例えば、生成部133は、第2の応答モデルを経て応答を生成したとしても、必ずしもユーザにとって適切な応答を生成できるとは限らない。このため、生成部133は、ユーザからのフィードバックを受信し、受信した情報に基づいて評価値を更新することで、よりユーザに対して適切と想定される応答を生成できるよう学習することができる。
(送信部134について)
送信部134は、生成部133によって生成された応答をユーザに送信する。すなわち、送信部134は、生成された応答をユーザ端末10に送信し、ユーザとの対話処理を実現させる。なお、送信部134は、応答をテキストデータで送信してもよいし、音声データで送信してもよい。
(学習部135について)
学習部135は、送信部134によって送信された応答を受信したユーザからフィードバックを取得し、取得した情報に基づいて学習処理を行う。具体的には、学習部135は、応答を受信したユーザのその後の行動情報を取得し、取得した情報に基づいて応答が正例であったか負例であったかを判定することで、選択部132に係る選択処理や生成部133に係る生成処理に関する学習を行う。
例えば、学習部135は、応答を受信したユーザに対して「今の応答により正しい回答が得られましたか?」といった内容の質問を送信し、その結果に応じて学習を行ってもよい。また、学習部135は、ユーザから異なる内容の発話を更に受け付けたことや、ユーザが異なる検索サイトを訪問した情報等を取得して、その結果に応じて学習を行ってもよい。そして、学習部135は、ユーザの行動情報を正例もしくは負例に判定し、当該ユーザに対して応答を生成した選択部132や生成部133の処理過程との関係性に基づいて各モデルを学習(更新)してもよい。
〔4.処理手順〕
次に、図8及び図9を用いて、実施形態に係る生成装置100による処理の手順について説明する。図8は、実施形態に係る処理手順を示すフローチャート(1)である。
図8に示すように、生成装置100は、ユーザ端末10から発話を受け付ける(ステップS101)。続けて、生成装置100は、発話が属するドメインを判定することにより、発話の応答に用いる第1モジュールを判定する(ステップS102)。
そして、生成装置100は、第1モジュールで生成される応答の適性度が所定の閾値を超えるか否かを判定する(ステップS103)。第1モジュールで生成される応答の適性度が所定の閾値を超えないと判定した場合(ステップS103;No)、生成装置100は、第1モジュールのスロット値の候補となった文字列を抽出する(ステップS104)。
そして、生成装置100は、抽出した文字列を発話として取り扱った場合に当該文字列が属するドメインを判定することで、抽出した文字列から第2モジュールを判定する(ステップS105)。生成装置100は、例えば抽出した文字列をスロット値とすること等を経て、第2モジュールによる応答を生成する(ステップS106)。
続いて、生成装置100は、第2モジュールから得られた応答を第1モジュールに入力する(ステップS107)。その後、生成装置100は、あらためて第1モジュールによる応答を生成する(ステップS108)。生成装置100は、生成した応答をユーザに送信する(ステップS109)。
なお、生成装置100は、ステップS103において、第1モジュールで生成される応答の適性度が所定の閾値を超える場合には(ステップS103;Yes)、ステップS104〜ステップS107をスキップして、第1モジュールによる応答を生成してもよい。
次に、図9を用いて、実施形態に係る生成装置100による学習処理の手順について説明する。図9は、実施形態に係る処理手順を示すフローチャート(2)である。
生成装置100は、応答を送信したユーザからフィードバックを受け付けたか否かを判定する(ステップS201)。フィードバックを受け付けていない場合(ステップS201;No)、生成装置100は、フィードバックを受け付けるまで待機する。
フィードバックを受け付けた場合(ステップS201;Yes)、生成装置100は、フィードバックに基づいて応答を評価する(ステップS202)。そして、生成装置100は、応答モデルを更新する(ステップS203)。なお、生成装置100は、必ずしもユーザからのフィードバックを用いて学習を行うのではなく、生成装置100の管理者によって与えられる報酬や正解データに基づいて学習を行ってもよい。また、生成装置100は、応答モデルに限らず、音声認識モデルやドメイン判定モデルを更新してもよい。
〔5.変形例〕
上述した生成装置100は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、以下では、生成装置100の他の実施形態について説明する。
〔5−1.応答モデルの数〕
上記実施形態では、生成装置100が、2つの応答モデルに対応する処理を実行して、ユーザに対する応答を生成する例を示した。ここで、生成装置100は、3つ以上の応答モデルに対応する処理を実行してユーザに対する応答を生成してもよい。
例えば、生成装置100は、ユーザから「昨日、芸能人Xが着てた服で、一番安いサイトはどこ?」といった発話を受け付けたものとする。この場合、生成装置100は、対象「昨日、芸能人Xが着てた服」を扱うストアを検索するストア検索モジュールを実行する。さらに、生成装置100は、対象を示すと推定される文字列「昨日、芸能人Xが着てた服」に応答するための応答モデルを選択する。例えば、生成装置100は、「芸能人X」に関する画像データであって、「昨日」アップロードされた画像データを検索する画像検索を行うための応答モデルを選択する。
さらに、生成装置100は、画像検索を行うための応答モデルによって出力された画像データから、画像データに基づいて対象の名称を検索するための応答モデルを選択する。そして、生成装置100は、画像データに基づいて対象の名称を検索するための応答モデルから出力された結果を、第1のモジュールであるストア検索モジュールに入力する。これにより、生成装置100は、ユーザの発話に対する応答(例えば、画像によって推定された服を扱うストアを販売価格の安い順に並べた検索結果)を生成することができる。
このように、生成装置100は、3つ以上の応答モデルを経て、ユーザの応答を生成してもよい。すなわち、生成装置100は、各応答モデルにおけるスロット値の適性度に基づいて次々と異なる応答モデルを選択して出力を得ることができるので、ユーザからの複雑な対話に対しても、ユーザに対して聞き返しの処理等を発生させることなく適切な応答を生成することができる。
〔5−2.応答モデルの選択〕
上記実施形態では、生成装置100が、第1の応答モデルに入力させるための情報を得るために第2の応答モデルから出力を得る処理を例として示した。ここで、生成装置100は、必ずしも第1の応答モデルを用いてユーザへの応答を生成することを要しない。すなわち、生成装置100は、入力されたスロット値の適性度や、生成された応答の評価値によっては、第1の応答モデルによる応答ではなく、第2の応答モデルや第3の応答モデルによって応答を生成してもよい。すなわち、生成装置100は、応答を生成する応答モデルのうち、より適切な応答モデルが存在する場合には、最初の発話に基づいて選択された第1の応答モデルによって応答を生成せず、他の応答モデルを利用して応答を生成してもよい。
〔5−3.音声認識モデル〕
上述した実施形態では、生成装置100が、例えば音声認識モデルを利用して、ユーザの発話を文字列に変換して処理を行う例を示した。この場合、発話の変換に用いる音声認識モデルは、例えばドメインごとに、ある発話を入力した際に、その発話を行ったユーザの意図を出力するようにモデルの学習を行うことで実現可能であり、このような学習手法については、任意の学習技術が採用可能である。
また、生成装置100は、発話からユーザの意図を示す文字列へと変換することができるのであれば、任意の音声認識モデルを用いて発話の変換を行ってよい。例えば、生成装置100は、word2vec等、単語を単語の相対的な意味に基づくベクトル表現へと変換する技術を用いて、発話の文字列を発話の意味を示すベクトル表現に変換し、変換したベクトル表現を、ユーザの意図を示す単語のベクトル表現へと変換する音声認識モデルを用いて、発話の変換を行ってもよい。
また、生成装置100は、ユーザの属性を考慮した学習が行われた音声認識モデルを用いてもよい。例えば、生成装置100は、ある発言とその発言を行ったユーザの属性とを入力した際に、そのユーザの意図を示す文字列へと変換するように学習が行われた音声認識モデルを保持してもよい。例えば、生成装置100は、ある発言を、その発言をある属性を有するユーザが発言した際のそのユーザの意図を示す文字列へと変換するように学習が行われた音声認識モデルを、属性ごとに保持してもよい。そして、生成装置100は、ユーザの属性に応じて、使用する音声認識モデルを選択し、選択した音声認識モデルを用いて、発言の変換を行ってもよい。また、生成装置100は、ドメインとユーザの属性との組合せごとに異なる音声認識モデルを用いてもよく、また、各ユーザ専用の音声認識モデルを用いてもよい。
〔5−4.対話処理の構成〕
上述した生成装置100は、いわゆるスロットフィリングの結果を用いて応答を生成した。しかしながら、実施形態は、これに限定されるものではない。例えば、生成装置100は、ユーザの発話の意図を特定し、特定した意図からユーザとの対話の状況を判定し、判定した状況に応じた応答を生成するといった処理により、ユーザとの応答を生成するといった対話処理を実行する場合がある。このような対話処理において、生成装置100は、ユーザの発話の意図を特定する際に、上述したスロットフィリングの技術を適用し、スロットフィリングの結果に応じて、ユーザとの対話の状況を判定し、判定した状況に応じた応答を生成してもよい。すなわち、生成装置100は、ユーザの発話からユーザの意図を反映させたスロット値を得るのであれば、他の任意の処理と組み合わせて、発話に対する応答を生成してよい。
〔5−5.知識データベース〕
上述した実施形態では、生成装置100が、知識データベース123に保持された情報を用いて対話処理を行う例を示した。ここで、生成装置100は、ネットワークを介して利用されるいわゆるクラウドサーバ等を介して取得した知識データを利用して、上述した生成処理を実行してもよい。また、生成装置100は、クラウドサーバのように、必ずしもクラウドのように広域ネットワークを前提とするものでなくてもよい。例えば、ローカルネットワーク等に接続された各サーバから知識データを取得してもよい。
〔5−6.応答モデル〕
上述した実施形態では、生成装置100が、経路検索モジュールに対応した第1応答モデルと、Q&Aモジュールに対応した第2応答モデルとを利用して、ユーザに対する応答を生成する例を示した。
しかし、生成装置100は、必ずしも第1応答モデルと第2応答モデルとで異なる応答モデルを選択することを要しない。すなわち、生成装置100は、同一のモジュールを有する第1応答モデルと第2応答モデルとを選択してもよい。この場合、生成装置100は、第1応答モデルに入力されたスロット値のうち、当該スロット値の内容の確度を向上させたり、いくつかの解釈の候補のあるスロット値の内容を確定させたりするため、第2応答モデルを選択する。すなわち、生成装置100は、複数の経路検索モジュールを選択してもよいし、複数のQ&Aモジュールを選択してもよい。
また、上述した実施形態では、説明のために、発話が属するドメイン(モジュール)と、応答モデルとを各々一つずつ対応付けているが、これらは必ずしも一つずつが対応付けられなくてもよい。例えば、生成装置100は、複数ドメインを処理するための処理エンジンを有する応答モデルを用いて、ユーザからの発話に対する応答を生成してもよい。また、実施形態では、生成装置100が複数の応答モデルを用いて応答を生成するものとしているが、かかる構成は、例えば、ドメインに対応した処理を行う複数の処理エンジン(モデル)を有する一モジュールによって応答を生成する、と読み替えることも可能である。
〔6.ハードウェア構成〕
上述してきた実施形態に係る生成装置100やユーザ端末10は、例えば図10に示すような構成のコンピュータ1000によって実現される。以下、生成装置100を例に挙げて説明する。図10は、生成装置100の機能を実現するコンピュータ1000の一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
CPU1100は、ROM1300又はHDD1400に記憶されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を記憶する。
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を記憶する。通信インターフェイス1500は、通信網500(図2に示したネットワークNに対応)を介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータを、通信網500を介して他の機器へ送信する。
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、入出力インターフェイス1600を介して生成したデータを出力装置へ出力する。
メディアインターフェイス1700は、記録媒体1800に記憶されたプログラム又はデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ1000が実施形態に係る生成装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部130の機能を実現する。また、HDD1400には、記憶部120内のデータが記憶される。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置から通信網500を介してこれらのプログラムを取得してもよい。
〔7.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図3に示した受付部131と選択部132とは統合されてもよい。また、例えば、記憶部120に記憶される情報は、ネットワークNを介して、外部に備えられた所定の記憶装置に記憶されてもよい。
また、上記実施形態では、生成装置100が、例えば、発話を受け付ける受付処理と、複数の応答モデルを選択する選択処理と、応答を生成する生成処理とを行う例を示した。しかし、上述した生成装置100は、発話を受け付ける受付サーバ、複数の応答モデルを選択する選択サーバ、応答を生成する生成サーバ等が連携して動作することにより、実現されてもよい。この場合、上記の生成装置100による処理は、各サーバを含む生成処理システム1によって実現される。
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔8.効果〕
上述してきたように、実施形態に係る生成装置100は、受付部131と、選択部132と、生成部133とを有する。受付部131は、発話の入力をユーザから受け付ける。選択部132は、発話が属する分野に応じて選択されるモデルであって、発話への応答の生成に用いられるモデルである応答モデルとして、受付部131によって受け付けられた発話の内容に応じた複数の応答モデルを選択する。生成部133は、選択部132によって選択された複数の応答モデルを用いて、受付部131によって受け付けられた発話に対する応答を生成する。
このように、実施形態に係る生成装置100は、発話に対して複数の応答モデルを用いて応答を生成する。これにより、生成装置100は、単独の応答モデルでは適切な応答を生成できないような複雑な内容の発話が受け付けられた場合であっても、他の応答モデルを利用して情報を得ることで、適切な応答を生成することができる。このため、生成装置100は、応答の出力精度を向上させることができる。
また、選択部132は、第1の応答モデルのみを用いて受付部131によって受け付けられた発話に対する応答を生成する場合の適性度を判定し、適性度が所定の閾値を超えないと判定した場合に、第2の応答モデルを選択する。
このように、実施形態に係る生成装置100は、第1の応答モデルによる応答の適性度が所定の閾値を超えないと判定した場合に、第2の応答モデルを選択する。これにより、生成装置100は、第1の応答モデルによる応答の適性度が所定の閾値を超えない場合でも、ユーザへの聞き返し等の問い合わせを発生させずに、応答の生成処理を行うことができる。このため、生成装置100は、対話処理に関するユーザの手間を軽減させることができるので、ユーザビリティに優れた対話処理を実現することができる。
また、選択部132は、第1の応答モデルを用いて受付部131によって受け付けられた発話に対する応答を生成した場合の生成結果、応答を生成する際に実行した検索結果、又は、生成した応答に対するユーザの反応の少なくともいずれか一つに基づいて、適性度を判定する。
このように、実施形態に係る生成装置100は、第1の応答モデルにおける種々の処理の過程を参照して適性度を判定する。このため、生成装置100は、第1の応答モデルによる応答が適正なものであるかを精度よく判定することができる。
また、選択部132は、受付部131によって受け付けられた発話に含まれる所定の文字列であって、第1の応答モデルのスロットに入力される候補である文字列に基づいて、第2の応答モデルを選択する。
このように、実施形態に係る生成装置100は、第1の応答モデルのスロットに入力される候補、言い換えれば、第1の応答モデルの処理に影響を与えていると想定される文字列によって第2の応答モデルを選択することができる。これにより、生成装置100は、第2の応答モデルによる処理を通じて、第1の応答モデルの処理に影響を与えていると想定される文字列に関する情報を取得できる確度を高めることができる。結果として、生成装置100は、生成する応答の適切さをより高めることができる。
また、選択部132は、受付部131によって受け付けられた発話に含まれる所定の文字列が応答モデルのスロットに入力された場合の適性度を判定し、当該所定の文字列が第1の応答モデルのスロットに入力された場合の適性度が所定の閾値よりも低い場合に、当該所定の文字列が入力された場合の適性度が所定の閾値よりも高くなるスロットを有する第2の応答モデルを選択する。
このように、実施形態に係る生成装置100は、スロット抽出処理における適性度に基づいて第2の応答モデルを選択してもよい。これにより、生成装置100は、適切なスロット値を入力することのできるモデルを第2の応答モデルとして選択できるので、第2の応答モデルから適切な出力を得る確度を高めることができる。
また、生成部133は、選択部132によって選択された複数の応答モデルのうち、第2の応答モデルから出力された回答結果を第1の応答モデルに入力することで、発話に対する応答を生成する。
このように、実施形態に係る生成装置100は、第2の応答モデルから得られた情報を第1の応答モデルに入力することで応答を生成する。これにより、生成装置100は、第1の応答モデルにおいて不確定な要素であったり、適切な結果を得られなかったりした対象について、第2の応答モデルから得られた情報に置き換えて処理を行うことができるため、適切な応答を生成することができる。
また、生成部133は、受付部131によって受け付けられた発話が第1の応答モデルに入力された場合に出力される第1の回答の評価値に応じて、当該第1の回答をユーザに応答するか、あるいは、第2の応答モデルから出力された回答結果を当該第1の応答モデルに新たに入力して出力される第2の回答をユーザに応答するかを判定する。
このように、実施形態に係る生成装置100は、ユーザに対して送信する応答について、第1の応答モデルに限らず、他の応答モデルによって生成された応答を送信するようにしてもよい。これにより、生成装置100は、対話処理という多様な判断を求められる処理において、第1の応答モデルによる応答を生成するといった固定された情報処理にとらわれず、場合によっては第2の応答モデルによる応答をユーザに送信するなど、柔軟な情報処理を行うことができる。
また、生成部133は、第1の回答もしくは第2の回答を受信したユーザの反応に基づいて、当該第1の回答もしくは当該第2の回答に対する評価値を更新する。
このように、実施形態に係る生成装置100は、ユーザの反応に基づいて、応答モデルの選択や、応答の生成処理を学習してもよい。これにより、生成装置100は、ユーザの求めに応じた強化学習が可能になるため、選択処理や生成処理を最適化することができる。
また、選択部132は、生成部133によって生成された応答を受信したユーザの過去の反応に基づいて、受付部131によって受け付けられた発話の内容に応じた複数の応答モデルを選択する。
このように、実施形態に係る生成装置100は、ユーザからのフィードバックに応じて選択するモデルを判定してもよい。これにより、生成装置100は、ユーザにとって適切な対話が成立するような応答を生成することのできる応答モデルを優先的に選択することができる。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上記してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、生成部は、生成手段や生成回路に読み替えることができる。
1 生成処理システム
10 ユーザ端末
100 生成装置
110 通信部
120 記憶部
121 モデルデータベース
123 知識データベース
124 キャッシュデータベース
130 制御部
131 受付部
132 選択部
133 生成部
134 送信部
135 学習部

Claims (11)

  1. 発話の入力をユーザから受け付ける受付部と、
    発話が属する分野に応じて選択されるモデルであって、発話への応答の生成に用いられるモデルである応答モデルとして、前記受付部によって受け付けられた発話の内容に応じた複数の応答モデルを選択する選択部と、
    前記選択部によって選択された複数の応答モデルを用いて、前記受付部によって受け付けられた発話に対する応答を生成する生成部と、
    を備えたことを特徴とする生成装置。
  2. 前記選択部は、
    第1の応答モデルのみを用いて前記受付部によって受け付けられた発話に対する応答を生成する場合の適性度を判定し、適性度が所定の閾値を超えないと判定した場合に、第2の応答モデルを選択する、
    ことを特徴とする請求項1に記載の生成装置。
  3. 前記選択部は、
    前記第1の応答モデルを用いて前記受付部によって受け付けられた発話に対する応答を生成した場合の生成結果、応答を生成する際に実行した検索結果、又は、生成した応答に対するユーザの反応の少なくともいずれか一つに基づいて、前記適性度を判定する、
    ことを特徴とする請求項2に記載の生成装置。
  4. 前記選択部は、
    前記受付部によって受け付けられた発話に含まれる所定の文字列であって、第1の応答モデルのスロットに入力される候補である文字列に基づいて、第2の応答モデルを選択する、
    ことを特徴とする請求項1〜3のいずれか一つに記載の生成装置。
  5. 前記選択部は、
    前記受付部によって受け付けられた発話に含まれる所定の文字列が応答モデルのスロットに入力された場合の適性度を判定し、当該所定の文字列が前記第1の応答モデルのスロットに入力された場合の適性度が所定の閾値よりも低い場合に、当該所定の文字列が入力された場合の適性度が所定の閾値よりも高くなるスロットを有する前記第2の応答モデルを選択する、
    ことを特徴とする請求項2〜4のいずれか一つに記載の生成装置。
  6. 前記生成部は、
    前記選択部によって選択された複数の応答モデルのうち、第2の応答モデルから出力された回答結果を前記第1の応答モデルに入力することで、前記発話に対する応答を生成する、
    ことを特徴とする請求項2〜5のいずれか一つに記載の生成装置。
  7. 前記生成部は、
    前記受付部によって受け付けられた発話が前記第1の応答モデルに入力された場合に出力される第1の回答の評価値に応じて、当該第1の回答をユーザに応答するか、あるいは、前記第2の応答モデルから出力された回答結果を当該第1の応答モデルに新たに入力して出力される第2の回答をユーザに応答するかを判定する、
    ことを特徴とする請求項2〜6のいずれか一つに記載の生成装置。
  8. 前記生成部は、
    前記第1の回答もしくは前記第2の回答を受信したユーザの反応に基づいて、当該第1の回答もしくは当該第2の回答に対する評価値を更新する、
    ことを特徴とする請求項7に記載の生成装置。
  9. 前記選択部は、
    前記生成部によって生成された応答を受信したユーザの過去の反応に基づいて、前記受付部によって受け付けられた発話の内容に応じた複数の応答モデルを選択する、
    ことを特徴とする請求項1〜8のいずれか一つに記載の生成装置。
  10. コンピュータが実行する生成方法であって、
    発話の入力をユーザから受け付ける受付工程と、
    発話が属する分野に応じて選択されるモデルであって、発話への応答の生成に用いられるモデルである応答モデルとして、前記受付工程によって受け付けられた発話の内容に応じた複数の応答モデルを選択する選択工程と、
    前記選択工程によって選択された複数の応答モデルを用いて、前記受付工程によって受け付けられた発話に対する応答を生成する生成工程と、
    を含んだことを特徴とする生成方法。
  11. 発話の入力をユーザから受け付ける受付手順と、
    発話が属する分野に応じて選択されるモデルであって、発話への応答の生成に用いられるモデルである応答モデルとして、前記受付手順によって受け付けられた発話の内容に応じた複数の応答モデルを選択する選択手順と、
    前記選択手順によって選択された複数の応答モデルを用いて、前記受付手順によって受け付けられた発話に対する応答を生成する生成手順と、
    をコンピュータに実行させることを特徴とする生成プログラム。
JP2017129056A 2017-06-30 2017-06-30 生成装置、生成方法及び生成プログラム Active JP6408080B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017129056A JP6408080B1 (ja) 2017-06-30 2017-06-30 生成装置、生成方法及び生成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017129056A JP6408080B1 (ja) 2017-06-30 2017-06-30 生成装置、生成方法及び生成プログラム

Publications (2)

Publication Number Publication Date
JP6408080B1 JP6408080B1 (ja) 2018-10-17
JP2019012439A true JP2019012439A (ja) 2019-01-24

Family

ID=63855294

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017129056A Active JP6408080B1 (ja) 2017-06-30 2017-06-30 生成装置、生成方法及び生成プログラム

Country Status (1)

Country Link
JP (1) JP6408080B1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020101610A (ja) * 2018-12-20 2020-07-02 トヨタ自動車株式会社 制御装置、音声対話装置、音声認識サーバ及びプログラム
WO2020261944A1 (ja) * 2019-06-27 2020-12-30 ソニー株式会社 情報処理装置および情報処理方法
WO2021079597A1 (ja) * 2019-10-23 2021-04-29 ソプラ株式会社 情報出力装置、情報出力方法、及び情報出力プログラム
CN114610845A (zh) * 2022-03-02 2022-06-10 北京百度网讯科技有限公司 基于多系统的智能问答方法、装置和设备
JP2023121087A (ja) * 2022-02-18 2023-08-30 ヤフー株式会社 情報処理装置、情報処理方法および情報処理プログラム
US12038953B2 (en) 2019-06-27 2024-07-16 Sony Group Corporation Information processing apparatus and information processing method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014229275A (ja) * 2013-05-27 2014-12-08 株式会社Nttドコモ 質問応答装置、及び質問応答方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014229275A (ja) * 2013-05-27 2014-12-08 株式会社Nttドコモ 質問応答装置、及び質問応答方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020101610A (ja) * 2018-12-20 2020-07-02 トヨタ自動車株式会社 制御装置、音声対話装置、音声認識サーバ及びプログラム
WO2020261944A1 (ja) * 2019-06-27 2020-12-30 ソニー株式会社 情報処理装置および情報処理方法
US12038953B2 (en) 2019-06-27 2024-07-16 Sony Group Corporation Information processing apparatus and information processing method
WO2021079597A1 (ja) * 2019-10-23 2021-04-29 ソプラ株式会社 情報出力装置、情報出力方法、及び情報出力プログラム
JP2021068399A (ja) * 2019-10-23 2021-04-30 ソプラ株式会社 情報出力装置、情報出力方法、及び情報出力プログラム
CN114586021A (zh) * 2019-10-23 2022-06-03 聪丰罗株式会社 信息输出装置、信息输出方法以及信息输出程序
CN114586021B (zh) * 2019-10-23 2022-12-09 聪丰罗株式会社 信息输出装置、信息输出方法以及记录介质
US11599536B2 (en) 2019-10-23 2023-03-07 Soppra Corporation Information output device, information output method, and information output program
JP2023121087A (ja) * 2022-02-18 2023-08-30 ヤフー株式会社 情報処理装置、情報処理方法および情報処理プログラム
JP7372372B2 (ja) 2022-02-18 2023-10-31 ヤフー株式会社 情報処理装置、情報処理方法および情報処理プログラム
CN114610845A (zh) * 2022-03-02 2022-06-10 北京百度网讯科技有限公司 基于多系统的智能问答方法、装置和设备
CN114610845B (zh) * 2022-03-02 2024-05-14 北京百度网讯科技有限公司 基于多系统的智能问答方法、装置和设备

Also Published As

Publication number Publication date
JP6408080B1 (ja) 2018-10-17

Similar Documents

Publication Publication Date Title
JP6408080B1 (ja) 生成装置、生成方法及び生成プログラム
US10909969B2 (en) Generation of language understanding systems and methods
JP6960914B2 (ja) ダイアログ・システムにおけるパラメータ収集および自動ダイアログ生成
CN112270925B (zh) 用于创建可定制对话系统引擎的平台
CN107330120B (zh) 询问应答方法、询问应答装置及计算机可读存储介质
US9711141B2 (en) Disambiguating heteronyms in speech synthesis
US20200098352A1 (en) Techniques for model training for voice features
JP6370962B1 (ja) 生成装置、生成方法および生成プログラム
US10963495B2 (en) Automated discourse phrase discovery for generating an improved language model of a digital assistant
US10698654B2 (en) Ranking and boosting relevant distributable digital assistant operations
US10929613B2 (en) Automated document cluster merging for topic-based digital assistant interpretation
JP2019503526A5 (ja)
US20190139537A1 (en) Dialogue system and dialogue method
JP6224857B1 (ja) 分類装置、分類方法および分類プログラム
US10176171B1 (en) Language agnostic command-understanding digital assistant
US10854189B2 (en) Techniques for model training for voice features
JP7058574B2 (ja) 情報処理装置、情報処理方法、およびプログラム
US11043215B2 (en) Method and system for generating textual representation of user spoken utterance
JP6884722B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP2020187282A (ja) 情報処理装置、情報処理方法、およびプログラム
JP6205039B1 (ja) 情報処理装置、情報処理方法、およびプログラム
JP6462784B2 (ja) 学習装置、情報処理装置、学習方法及び学習プログラム
WO2021098876A1 (zh) 一种基于知识图谱的问答方法及装置
US10490189B2 (en) Support system, support method, and memory medium
JP6898064B2 (ja) 対話決定システム、対話決定方法、対話決定プログラム、及び端末装置

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180821

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180919

R150 Certificate of patent or registration of utility model

Ref document number: 6408080

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250