JP6370962B1 - 生成装置、生成方法および生成プログラム - Google Patents

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

Info

Publication number
JP6370962B1
JP6370962B1 JP2017095783A JP2017095783A JP6370962B1 JP 6370962 B1 JP6370962 B1 JP 6370962B1 JP 2017095783 A JP2017095783 A JP 2017095783A JP 2017095783 A JP2017095783 A JP 2017095783A JP 6370962 B1 JP6370962 B1 JP 6370962B1
Authority
JP
Japan
Prior art keywords
utterance
character string
user
response
extracted
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.)
Active
Application number
JP2017095783A
Other languages
English (en)
Other versions
JP2018194902A (ja
Inventor
伸裕 鍜治
伸裕 鍜治
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 JP2017095783A priority Critical patent/JP6370962B1/ja
Application granted granted Critical
Publication of JP6370962B1 publication Critical patent/JP6370962B1/ja
Publication of JP2018194902A publication Critical patent/JP2018194902A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】利用者の意図を反映させた応答を出力する生成装置、生成方法および生成プログラムを提供する。【解決手段】本生成装置は、利用者から受付けた発話から所定の条件を満たす文字列を抽出できるか否かを判定する判定部42と、前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出部43と、前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、当該発話の内容に基づいて、予め設定された文字列の候補の中から前記応答の生成に用いる文字列を選択する選択部44と、前記抽出部により抽出された文字列または前記選択部により選択された文字列の少なくとも一方を用いて、前記発話に対する応答を生成する生成部45と、を有する。【選択図】図2

Description

本発明は、生成装置、生成方法および生成プログラムに関する。
従来、利用者の発話に対して応答を出力する技術が知られている。このような技術の一例として、発話や応答の内容に応じたドメインを特定し、特定したドメインにおける発話の意図を解析し、解析結果に応じて、応答として出力する情報を検索する技術が知られている。
特開2016−99381号公報
しかしながら、上述した従来技術では、適切な応答を出力することができない恐れがある。
例えば、特定したドメインにおける発話の意図を解析する技術として、スロットフィリングと呼ばれる技術が知られている。このようなスロットフィリングの技術においては、発話文から利用者の意図を示す単語等を応答の生成に用いる情報として抽出し、抽出した情報を用いて応答の生成を行う。しかしながら、このような技術では、利用者の意図を示す単語が含まれない発話文、すなわち、利用者の意図を示唆するに留まるような発話文からは、応答の生成に用いる情報を抽出することができない。
本願は、上記に鑑みてなされたものであって、利用者の意図を反映させた応答を出力することを目的とする。
本願に係る生成装置は、利用者から受付けた発話から所定の条件を満たす文字列を抽出できるか否かを判定する判定部と、前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出部と、前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、当該発話の内容に基づいて、予め設定された文字列の候補の中から前記応答の生成に用いる文字列を選択する選択部と、前記抽出部により抽出された文字列、または、前記選択部により選択された文字列の少なくとも一方を用いて、前記発話に対する応答を生成する生成部とを有することを特徴とする。
実施形態の一態様によれば、利用者の意図を反映させた応答を出力することができる。
図1は、第1の実施形態に係る情報提供装置が実行する処理の一例を示す図である。 図2は、第1の実施形態に係る情報提供装置の構成例を示す図である。 図3は、第1の実施形態に係るフレームデータベースに登録される情報の一例を示す図である。 図4は、第1の実施形態に係る候補データベースに登録される情報の一例を示す図である。 図5は、第1の実施形態に係る情報提供装置が実行する決定処理の流れの一例を示すフローチャートである。 図6は、第2の実施形態に係る情報提供装置が実行する処理の一例を示す図である。 図7は、第2の実施形態に係る情報提供装置の構成例を示す図である。 図8は、第2の実施形態に係るモデルデータベースに登録される情報の一例を示す図である。 図9は、第2の実施形態に係る情報提供装置が実行する決定処理の流れの一例を示すフローチャートである。 図10は、ハードウェア構成の一例を示す図である。
以下に、本願に係る生成装置、生成方法および生成プログラムを実施するための形態(以下、「実施形態」と記載する。)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る生成装置、生成方法および生成プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略する。
[第1の実施形態]
〔1−1.第1の実施形態に係る情報提供装置の概要〕
まず、図1を用いて、生成装置の一例となる情報提供装置が実行する生成処理の一例について説明する。図1は、第1の実施形態に係る情報提供装置が実行する処理の一例を示す図である。なお、以下の説明では、情報提供装置10が実行する処理として、利用者Uの発話に対する応答を生成し、出力する処理の一例について説明する。すなわち、情報提供装置10は、利用者Uとの対話を実現する対話システムである。
情報提供装置10は、インターネット等の所定のネットワークN(例えば、図2を参照。)を介して、利用者端末100や検索サーバ200と通信可能な情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。なお、情報提供装置10は、ネットワークNを介して、任意の数の利用者端末100や検索サーバ200と通信可能であってよい。
利用者端末100は、対話システムで対話を行う利用者Uが使用する情報処理装置であり、PC(Personal Computer)、サーバ装置、スマートデバイスといった情報処理装置により実現される。例えば、利用者端末100は、利用者Uが発話した音声を取得すると、所定の外部サーバ(図示は、省略)に音声データを出力し、利用者Uの発話のテキストデータを取得する。そして、利用者端末100は、テキストデータを発話として情報提供装置10へと送信する。なお、利用者端末100は、利用者Uが入力した文字列を発話として情報提供装置10へと送信してもよい。
このような場合、情報提供装置10は、発話として受信したテキストデータを解析し、内容を推定する。そして、情報提供装置10は、推定した内容に応じて応答となるテキストを生成し、生成したテキストデータやテキストデータを音声として出力するための音声データを利用者端末100へと送信する。この結果、利用者端末100は、各種テキストの読み上げ技術や、受信した音声データを再生することで、利用者Uとの対話を実現する。
検索サーバ200は、各種のウェブ検索等を行う情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。例えば、検索サーバ200は、検索対象となる施設の種別を示す文字列(例えば、「レストラン」や「ジム」等)、および施設の位置を示す文字列(例えば、「東京」や「大阪」等)を受付けると、受付けた文字列を用いたウェブ検索を行い、検索結果を情報提供装置10へと提供する。
なお、検索サーバ200は、天気予報に関する情報を配信するサービス等、任意のサービスを提供するサーバ装置であってもよい。また、検索サーバ200は、それぞれ異なる複数のサービスを提供する複数のサーバ装置によって実現されてもよい。また、検索サーバ200は、例えば、API(Application Programming Interface)を介して、情報提供装置10から受付けた各種文字列に応じた情報を生成し、生成した情報を情報提供装置10へと提供してもよい。このような情報提供装置10から受付けた各種の情報を用いて、情報提供装置10は、利用者Uに対する応答を生成することとなる。
〔1−2.情報提供装置が実行するスロットフィリングについて〕
以下、情報提供装置10が実行する対話処理の基本的な流れについて説明する。なお、以下の説明は、実施形態を限定するものではなく、情報提供装置10は、以下に説明するスロットフィリングの技術を用いて利用者Uの発話に対する応答を生成するのであれば、以下に説明する対話処理以外にも、任意の態様で応答の生成を行ってよい。
例えば、情報提供装置10は、利用者Uの発話を受付けると、発話の内容が天気に関する内容であるか、時計に関する内容であるかというように、発話の内容が属するドメインを推定するドメイン推定処理を実行する。続いて、情報提供装置10は、発話のドメインを推定した場合には、推定したドメインに応じた利用者の発話の内容を推定する言語理解処理を実行する。例えば、情報提供装置10は、言語理解処理として、発話が示す利用者Uの意図を推定し、推定した意図を示す文字列を意図情報として生成する。そして、情報提供装置10は、生成した意図情報を用いて、発話に対する応答を生成し、生成した応答を利用者端末100から利用者Uに提供する。なお、このようなドメインの推定、意図情報の生成および応答の生成は、それぞれ個別のモデルにより実現されてもよい。
ここで、情報提供装置10は、所謂スロットフィリングの技術を用いて、利用者Uに対する応答を生成する。例えば、情報提供装置10は、所定の条件を有する意図情報がスロット値として格納される1つ以上のスロットを含むフレームを複数記憶する。そして、情報提供装置10は、発話から生成した意図情報を対応するスロットに格納し、全てのスロットに意図情報が格納されたフレームが存在する場合は、かかるフレームと対応する処理を実行し、実行結果を示す応答の生成を行う。
例えば、情報提供装置10は、場所を示す文字列がスロット値として登録されるスロットと、施設のタイプを示す文字列がスロット値として登録されるスロットとを有するフレーム#1を記憶する。このような場合、情報提供装置10は、発話の文字列から場所を示す文字列や施設の対応を示す文字列をスロット値(すなわち、利用者Uの意図を示す意図情報)として検索する。すなわち、情報提供装置10は、発話の文字列から、所定の条件を満たす文字列をスロット値として抽出する。このような文字列の抽出は、例えば、形態素解析や辞書データとの比較による単語の意味特定技術等により実現可能である。
また、情報提供装置10は、利用者Uとの対話を随時進めることで、フレームに含まれる各スロットに対応するスロット値を格納する。すなわち、情報提供装置10は、利用者Uから受付けた複数の発話から、所定の条件を満たす文字列をスロット値として抽出する。そして、情報提供装置10は、フレーム#1に含まれる全てのスロットにスロット値が格納された場合は、格納されたスロット値を用いて、フレーム#1と対応する処理を実行し、実行結果を示す応答を生成する。
例えば、情報提供装置10は、施設の検索処理と対応するフレーム#1に、場所を示すスロット値「東京」と、施設のタイプを示すスロット値「レストラン」とが格納された場合は、「東京」にある施設のうち、タイプが「レストラン」である施設のウェブ検索を実行する。例えば、情報提供装置10は、スロット値を検索サーバ200に検索クエリとして出力することで、ウェブ検索の結果を取得する。そして、情報提供装置10は、取得したウェブ検索の結果を示す応答を生成する。
〔1−3.生成処理について〕
ここで、従来技術では、応答に含まれる文字列から所定の条件を満たす文字列を意図情報、すなわちスロット値として抽出する。しかしながら、このような技術では、利用者の意図を示す単語が含まれない発話文、すなわち、利用者の意図を示唆するに留まるような発話文からは、応答の生成に用いる情報を抽出することができない。この結果、意図を示すスロット値を適切に抽出できず、利用者Uの所望に応じた応答を生成することができなくなる恐れがある。
そこで、第1の実施形態に係る情報提供装置10は、以下の生成処理を実行する。まず、情報提供装置10は、利用者Uから受付けた発話が所定の条件を満たすか否かを判定する。例えば、情報提供装置10は、発話から所定の条件を満たす文字列を抽出できるか否かを判定する。より具体的には、情報提供装置10は、発話の文字列に利用者の意図を示す文字列が含まれているか否か、すなわち、発話から利用者の意図を示すスロット値を抽出可能であるか否かを判定する。そして、情報提供装置10は、発話から所定の条件を満たす文字列を抽出できると判定した場合には、応答の生成に用いる文字列を発話から抽出する。すなわち、情報提供装置10は、スロット値となる文字列を発話の文字列の中から抽出する。
一方、情報提供装置10は、発話が所定の条件を満たさないと判定された場合、すなわち、発話から所定の条件を満たす文字列を抽出できない場合には、当該発話の内容に基づいて、予め設定された文字列の候補の中から応答の生成に用いる文字列を選択する。例えば、情報提供装置10は、場所や施設タイプ等といった所定の条件を満たすスロット値として格納されうる文字列の候補を記憶する。そして、情報提供装置10は、利用者Uから受付けた発話の内容に基づいて、各候補が利用者Uの意図を示す確度の算出を行う。例えば、情報提供装置10は、発言とその発言が示す利用者Uの意図との間の関係性を学習した学習器を用いて、利用者Uの発言に基づき、スロット値の候補が利用者Uの発言の意図を示す確度を推定する。
そして、情報提供装置10は、確度が所定の条件を満たすスロット値の候補を選択する。例えば、情報提供装置10は、確度の値が所定の閾値(例えば、「80」)を超えたスロット値の候補を選択してもよい。また、例えば、情報提供装置10は、あるスロットに格納されうる文字列のうち、確度の値が最も高い候補を選択してもよい。そして、情報提供装置10は、選択した候補を対応するスロットのスロット値として格納する。
その後、情報提供装置10は、抽出された文字列、または、選択された文字列を用いて、発話に対する応答を生成する。例えば、情報提供装置10は、あるフレームに含まれる全てのスロットにスロット値が格納された場合は、そのスロット値を用いて、フレームと対応する内容の情報検索を実行する。そして、情報提供装置10は、情報検索の結果を示す応答を生成し、生成した応答を利用者端末100へと送信する。
例えば、情報提供装置10は、天候情報の検索と対応するフレームの全てのスロットにスロット値が格納された場合は、格納された全てのスロット値と対応する天候情報を検索する。このようなスロット値は、例えば、日時や地域を示す文字列が対応する。また、例えば、情報提供装置10は、施設の検索と対応するフレームの全てのスロットにスロット値が格納された場合は、格納された全てのスロット値と対応する施設の情報を検索する。このようなスロット値は、例えば、日時、地域、施設の種別等を示す文字列が対応する。
このように、情報提供装置10は、発話が利用者Uの意図を直接的に示さない場合や発話にスロット値となる文字列が含まれない場合等、発話がスロット値の抽出に適するか否かを判定する。そして、情報提供装置10は、発話がスロット値の抽出に適する場合は、発話からスロット値の抽出を行い、適さない場合には、スロット値の候補の中から、応答の生成に用いるスロット値の選択を行う。例えば、情報提供装置10は、発話の内容に基づいて、スロット値の候補の中から、利用者Uのニーズを満たす確度が最も高い候補をスロット値として選択する。この結果、情報提供装置10は、利用者Uの意図を間接的に示す発話や、スロット値となる文字列が含まれない発話からも、適切に応答を生成することができる。
〔1−4.生成処理の一例について〕
以下、図1を用いて、情報提供装置10が実行する生成処理の流れの一例について説明する。まず、情報提供装置10は、利用者端末100から発話#1を受付ける。このような場合、情報提供装置10は、発話#1が属するドメインを推定する(ステップS2)。例えば、情報提供装置10は、発話#1が天気に関するドメイン#1に属するものであるか、レストランやジム等の施設に関するドメイン#2に属するものであるか等を判定する。なお、このようなドメイン推定処理は、任意の分類技術により実現可能である。例えば、情報提供装置10は、SVM(Support Vector Machine)やDNN(Deep Neural Network)等、任意の学習器又は分類器等のモデルを用いて、発話が属するドメインの推定を行ってよい。
続いて、情報提供装置10は、発話から意図情報、すなわちスロット値を抽出可能か否かを判定する(ステップS3)。例えば、情報提供装置10は、発話#1の文字列にスロット値としての所定の条件を満たす文字列が含まれているか否かを判定しても良い。また、情報提供装置10は、意図情報を抽出可能な文字列の特徴を学習したモデルを用いて、発話#1から意図情報を抽出可能であるか否かを判定してもよい。また、例えば、情報提供装置10は、スロット値としての条件を満たす文字列が所定の数以上含まれる場合は、発話#1から意図情報を抽出可能であると判定してもよい。なお、情報提供装置10は、特定されたドメインと対応するモデルを用いて、意図情報を抽出可能であるか否かを判定してもよく、特定されたドメインと対応する意図情報が抽出可能であるか否かを判定してもよい。
そして、情報提供装置10は、発話#1から意図情報を抽出可能であると判定した場合には、発話#1の文字列から所定の条件を満たす文字列を意図情報として抽出する(ステップS4)。例えば、情報提供装置10は、発話#1が「東京駅近くにレストランある?」などといった文章、すなわち、利用者Uの意図を明確に示す文字列(例えば、場所を示す文字列や施設を示す文字列)が含まれている場合には、意図情報を抽出可能であると判定する。そして、情報提供装置10は、発話#1から意図情報の抽出を行う。例えば、情報提供装置10は、フレーム#1に格納されるスロット値の条件が、場所を示す文字列、および、施設タイプを示す文字列である場合は、発話#1に含まれる文字列から、場所を示す文字列および施設タイプを示す文字列を抽出する。
この結果、情報提供装置10は、例えば、場所を示す文字列「東京」と、施設タイプを示す文字列「レストラン」とをスロット値として発話#1から抽出する。この結果、情報提供装置10は、フレーム#1に各スロット値を格納することとなる。なお、このような文字列の抽出については、ステップS2にて特定したドメインごとに異なるモデルや抽出ルールを採用することにより実現されてもよい。また、情報提供装置10は、ドメインと対応するフレームのスロット値を抽出してもよい。
一方、情報提供装置10は、発話#1から意図情報を抽出できないと判定した場合は、発話に基づいて、所定の条件を満たす文字列の候補から意図情報を選択する(ステップS5)。例えば、情報提供装置10は、発話#1が「おなかへったなー」等といった文章、すなわち、利用者Uの意図を示唆する文字列である場合には、意図情報を抽出できないと判定する。このような場合、情報提供装置10は、あらかじめ登録された文字列の中から、利用者Uの意図を示す確度が高い文字列を選択する。
より具体的には、情報提供装置10は、フレームのスロット値として登録されうる文字列、すなわち、フレームのスロット値としての条件を満たす文字列の候補の中から、応答の生成に用いる文字列の選択を行う。例えば、情報提供装置10は、フレーム#1に格納されるスロット値の条件が、場所を示す文字列、および、施設タイプを示す文字列である場合は、場所を示す文字列の複数の候補(以下、「場所候補」と記載する。)と、施設タイプを示す文字列の複数の候補(以下、「施設タイプ候補」と記載する。)とを記憶する。より具体的な例を挙げると、図1に示す例では、情報提供装置10は、場所候補として「東京」および「大阪」を記憶する。また、情報提供装置10は、施設タイプ候補として、「レストラン」および「ジム」を記憶する。
このような場合、情報提供装置10は、利用者Uの発話#1に基づいて、各候補の中から利用者Uの意図を示す確度が高い候補を選択する。例えば、情報提供装置10は、各候補と発話#1の「おなかへったなー」という発話との間の関係性を示すスコアをそれぞれ算出し、算出したスコアの値に基づいて各候補の確度を算出する。
なお、このようなスコアおよび確度の算出に空いては、任意の意図推定技術が採用可能である。例えば、情報提供装置10は、DNN等の各種分類器や学習器等といったモデルを用いて、スコアや確度の算出を行ってもよく、連想記憶等の技術を用いて、スコアや確度の算出を行ってよい。すなわち、情報提供装置10は、各候補が、発話#1を受付けた際の利用者Uの意図を示す確度を算出するのであれば、任意の手法により確度の算出を行ってよい。また、情報提供装置10は、特定した発話#1のドメインと対応する候補の中から、スロット値の選択を行ってもよい。すなわち、情報提供装置10は、特定されたドメインに応じた条件を満たすスロット値の候補の中から、スロット値の選択を行ってもよい。
また、情報提供装置10は、利用者Uの発話のみならず、利用者Uに関する他の情報を考慮して、各候補が利用者Uの意図を示す確度の算出を行ってもよい。例えば、情報提供装置10は、利用者端末100がGPS(Global Positioning System)等の位置測位システムを用いて特定した利用者端末100の位置を示す位置情報等を取得し、取得した位置情報との関連性を考慮して、各候補の確度の算出を行ってもよい。なお、情報提供装置10は、位置情報以外にも、利用者Uとの過去の対話、利用者Uのデモグラフィック属性やバイオグラフィック属性等を考慮して、各候補の確度の算出を行ってもよい。例えば、情報提供装置10は、発話#1に先立って取得した発話の内容に基づいて、各候補の確度の算出を行ってもよい。
例えば、施設タイプ候補である「レストラン」と「ジム」とでは、「レストラン」の方が「おなかへったなー」といった発話#1と関係性が高いと考えられる。また、利用者端末100の位置情報が「東京駅」を示す場合、場所候補である「東京」と「大阪」とでは、「東京」の方が位置情報「東京駅」との関係性が高いと考えられる。この結果、例えば、情報提供装置10は、候補「東京」の確度「80」、候補「大阪」の確度「10」、候補「レストラン」の確度「80」、および候補「ジム」の確度「10」を算出する。
そして、情報提供装置10は、例えば、確度の値が所定の閾値を超えた候補のうち、確度の値が最も高い確度をスロット値として選択する。例えば、情報提供装置10は、場所を示す文字列「東京」と、施設タイプを示す文字列「レストラン」とをスロット値として選択する。この結果、情報提供装置10は、フレーム#1に各スロット値を格納することとなる。
このように、フレーム#1の各スロットにスロット値が格納された場合は、情報提供装置10は、フレーム#1に対応する処理を、格納されたスロット値を用いて実行する。例えば、情報提供装置10は、スロット値を用いて、応答を生成するための情報を検索する(ステップS6)。より具体的な例を挙げると、情報提供装置10は、場所を示すスロット値「東京」と、施設タイプを示すスロット値「レストラン」とを用いて、東京にあるレストランの情報を検索サーバ200に検索させる。そして、情報提供装置10は、検索結果として、東京にあるレストランの情報を取得する(ステップS7)。
このような場合、情報提供装置10は、検索サーバ200から取得した情報を用いて、応答の生成を行う(ステップS8)。例えば、情報提供装置10は、東京にあるレストランを利用者Uの紹介する内容の応答を生成する。そして、情報提供装置10は、応答を利用者端末100に出力する。この結果、利用者端末100は、利用者Uに対して、利用者Uの発話の意図に基づく応答を出力することができる(ステップS9)。
なお、上述したスロット値の候補から、利用者Uの発言に基づいてスロット値を選択する処理は、例えば、発話に含まれる文字列から短縮語等の文字列を特定し、特定した文字列を正規化辞書等でスロット値へと変換する処理や、過去の発話との組合せに基づいて、スロット値の抽出を行う処理とは異なるものである。すなわち、情報提供装置10は、予め準備されたスロット値の候補の中から、発言に応じてスロット値の選択を行うので、短縮語すら含まれない発言を受付けた場合や、過去の発話が存在しない場合等にも、適切に応答を出力することができる。
また、上述した発話の文章は、あくまで一例であり、情報提供装置10は、任意の発言の内容に基づいて、スロット値の候補からスロット値を選択してよい。例えば、情報提供装置10は、「腰が痛い」といった発話を受付けた場合は、施設タイプの候補の中から「整体病院」等といったスロット値、すなわち、発話の内容と連想関係を有するスロット値を選択し、選択したスロット値「整体病院」を用いて、利用者Uの近傍にある整体病院の情報を応答として提供してもよい。なお、このようなスロット値の選択は、連想関係を学習させたモデルにより実現可能である。
〔1−5.候補を選択する処理について〕
ここで、情報提供装置10は、文字列の候補の中からスロット値を選択する際に、各種の情報を用いて、選択を行ってよい。例えば、情報提供装置10は、発話#1の内容と、発話#1よりも前に利用者Uから受付けた発話の内容とに基づいて、応答の生成に用いる文字列、すなわち、スロット値を選択してもよい。例えば、情報提供装置10は、利用者Uが発話#1よりも前の所定の期間内に、酒類に関する発言を行っており、発話#1で「おなかがへったなー」といった飲食に関連する発話を行った場合には、候補「レストラン」よりも、候補「バー」の確度が高くなるように、各候補の確度を算出してもよい。また、情報提供装置10は、利用者Uの発話を受付ける度に、発話と関連する候補の確度を徐々に上昇させ、確度が所定の閾値を超えた候補から、スロット値として選択してもよい。
また、情報提供装置10は、発話の内容と、利用者Uの属性とに基づいて、スロット値を選択してもよい。例えば、情報提供装置10は、「おなかへったなー」といった発話をおこなった利用者Uが男性である場合には、比較的ボリュームが多い食事を提供するレストランを検索し、利用者Uが女性である場合は、カフェなどの雰囲気が良いレストランの検索を行ってもよい。
また、情報提供装置10は、上述した情報以外にも、利用者Uの住所や年齢等といったデモグラフィック属性や趣味趣向等のサイコグラフィック属性に基づいて、確度の算出を行ってもよい。例えば、情報提供装置10は、利用者Uの各種属性に基づいて、利用者Uの意図をより強く示すと推定される候補を優先的に選択するように、確度を算出する際の重みづけを設定してもよい。また、情報提供装置10は、利用者Uが発話#1を発言した時間帯等、他の情報を考慮して、スロット値の選択を行ってもよい。
また、情報提供装置10は、確度の算出対象となるスロット値の候補を発話に応じて動的に変化させてもよい。例えば、情報提供装置10は、発話の履歴に基づいて、確度の選択対象となる候補の絞り込みを行う。より具体的な例を挙げると、情報提供装置10は、発話#1を受付けた場合は、発話#1よりも前に受け付けた発話との関係性が所定の閾値を超える候補(確度が所定の閾値を超える候補)のみを第1選択対象として選択する。また、情報提供装置10は、発話#1が属するドメインを特定し、第1選択対象のうち特定したドメインと関連する候補を第2選択対象として選択する。
そして、情報提供装置10は、選択した第2選択対象と発話#1との関係性に基づいて、第2選択対象の確度を算出してもよい。このように、選択対象となる候補を絞り込むことにより、確度の算出やスロット値の選択に計算量が大きくなるような場合にも、現実的な時間内にスロット値の選択を行うことができる。なお、情報提供装置10は、例えば、第1選択対象の数が所定の閾値を下回る場合は、第1選択対象の中からスロット値の選択を行ってもよい。また、情報提供装置10は、発言#1が属するドメインと対応するスロット値の候補を第1選択対象とし、第1選択対象の中から、過去の発話に基づいて、第2選択対象の選択を行ってもよい。
なお、情報提供装置10は、利用者Uの各種属性や位置情報に基づいて、スロット値の候補の絞り込みを行ってもよい。
〔1−6.フレームについて〕
ここで、情報提供装置10は、複数のフレームについて上述した処理を実行し、全てのスロット値が格納されたフレームと対応する処理を実行すればよい。ここで、情報提供装置10は、情報検索と対応するフレームのみならず、所定の内容の応答を出力するフレームを記憶し、そのフレームのスロット値が全て格納された場合は、予め定められた所定の内容の応答を出力してもよい。
また、情報提供装置10は、発話#1からスロット値を抽出した際や、候補の選択を行った際に、全てのスロット値が格納されたフレームが存在しない場合は、利用者Uにさらなる発話を求める応答を出力してもよい。例えば、情報提供装置10は、格納されていないスロット値の数が最も少ないフレームや、最も確度が高い候補がスロット値として登録されたフレームを特定し、特定したフレームのスロット値の発言を誘導する内容の応答を出力してもよい。
また、情報提供装置10は、利用者Uの発話が示す意図と関連する格納性が所定の閾値を超える候補が存在しない場合、すなわち、利用者Uの発話から各候補の確度を算出した際に、算出する前と後とで確度の変化が所定の閾値を超える候補が存在しなかった場合には、発話の意図を利用者Uに対して問い合わせる内容の応答(以下、「問合せ」と記載する。)を出力してもよい。また、情報提供装置10は、発話が示す利用者Uの意図と関連する可能性が所定の閾値を超える候補の数が所定の数を超える場合には、発話の意図を絞り込むための問い合わせを出力してもよい。例えば、情報提供装置10は、発話#1を受付けた際に、候補「レストラン」と候補「カフェ」との確度が所定の閾値を超えた場合は、「レストランにしますか?カフェにしますか?」等といった問い合わせを出力してもよい。
〔1−7.候補について〕
ここで、情報提供装置10は、利用者Uとの対話を通じて、随時スロット値の候補の登録を行ってもよい。例えば、情報提供装置10は、発話からスロット値を抽出可能であると判定した場合、発話からスロット値となる文字列を抽出する。また、情報提供装置10は、抽出した文字列をスロット値としてフレームのスロットに格納するとともに、抽出した文字列が、予め登録されたスロット値の候補の中に含まれているか否かを判定する。そして、情報提供装置10は、抽出した文字列が、予め登録されたスロット値の候補の中に含まれていないと判定した場合は、抽出した文字列をスロット値の新たな候補として登録してもよい。例えば、情報提供装置10は、場所を示す文字列であるか、施設タイプを示す文字列であるか等、抽出した文字列の種別を特定し、特定した種別と対応するスロット値の候補として登録してもよい。
なお、必ずしも必要な処理ではないものの、過去の対話履歴が存在する場合、情報提供装置10は、過去の対話履歴に含まれる文字列をスロット値の候補として登録してもよい。例えば、情報提供装置10は、過去の発話の中から、スロット値としての条件を満たす文字列の検索を行い、スロット値としての条件を満たす文字列を特定した場合は、特定した文字列をスロット値の候補として登録してもよい。かかる処理は、過去の発話の履歴からスロット値となる文字列を抽出する処理とは異なり、過去の発話の履歴からスロット値となりえる文字列を抽出して保持しておくことで、候補の数を拡充し、利用者の意図の推定精度を向上させるものである。
また、情報提供装置10は、SNS(Social Networking Service)に投稿された各種の文字列からスロット値の候補となる文字列を特定してもよい。例えば、情報提供装置10は、「腰」と「整体」等といった同一の投稿内に含まれる文字列同士の共起情報から、文字列の属性を推定し、推定した属性を有するスロット値の候補として登録してもよい。また、このような投稿内における文字列同士の共起情報は、発話と各候補との関係性を学習する際の学習データとして採用されてもよい。すなわち、情報提供装置10は、同一の投稿内に含まれる文字列同士の共起性の特徴を学習した学習器を用いて、発話からスロット値の確保の確度の算出を行ってもよい。
また、情報提供装置10は、スロット値を抽出可能であると判定された発話の文字列を解析し、解析結果から、スロット値として抽出されやすい文字列と抽出されにくい文字列とを特定する。そして、情報提供装置10は、スロット値の候補のうち、スロット値として抽出されやすい文字列については、優先的に選択されるようにし、スロット値として抽出されにくい文字列については、選択されにくくする若しくは候補から除外してもよい。
〔1−8.その他〕
なお、情報提供装置10は、上述した処理以外にも、任意の処理を合わせて実行してもよい。例えば、上述した説明では、情報提供装置10は、発話の文字列からスロット値の抽出や選択を行った。しかしながら、実施形態は、これに限定されるものではない。例えば、情報提供装置10は、発話の文字列を作成するような音声認識を実行せず、音声の波形データから直接スロット値の抽出や選択を行ってもよい。例えば、情報提供装置10は、スロット値として登録される波形の特徴をスロット値の条件として保持し、発話の音声の波形から、スロット値の条件として保持した特徴を有する波形部分を抽出し、抽出した波形部分をスロット値としてもよい。また、情報提供装置10は、音声の波形と、文字列または音声の波形により実現されるスロット値の候補との間の関係性の特徴を学習したDNN等を用いて、発話の音声波形から、スロット値の選択を行ってもよい。
また、情報提供装置10は、発話#1からスロット値を抽出可能であるか否かを判定する処理と、発話#1からスロット値を抽出可能である場合に、発話#1からスロット値を抽出する処理と、発話#1からスロット値を抽出できない場合に、スロット値の候補の中からスロット値を選択する処理とを実行するように、DNN等のモデルの学習を行い、学習したモデルを用いて、上述した処理を実行してもよい。また、情報提供装置10は、発話#1からスロット値を抽出可能であるか否かを判定する処理と、発話#1からスロット値を抽出可能である場合に、発話#1からスロット値を抽出する処理とを実行するモデルの学習を行い、学習したモデルを用いて、上述した処理を実行してもよい。このようなモデルを用いる場合、情報提供装置10は、モデルがスロット値を抽出できなかった場合に、スロット値の候補の中から発話に基づく選択を実行することとなる。
〔2.情報提供装置の構成〕
以下、上記した情報提供装置10が有する機能構成の一例について説明する。図2は、第1の実施形態に係る情報提供装置の構成例を示す図である。図2に示すように、情報提供装置10は、通信部20、記憶部30、および制御部40を有する。
通信部20は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部20は、ネットワークNと有線または無線で接続され、利用者端末100との間で情報の送受信を行う。
記憶部30は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部30は、フレームデータベース31および候補データベース32を記憶する。
フレームデータベース31には、各フレームの情報が登録されている。例えば、図3は、第1の実施形態に係るフレームデータベースに登録される情報の一例を示す図である。図3に示す例では、フレームデータベースには、「フレームID(Identifier)」、「実行処理」、「スロット名」および「属性情報」といった項目を有する情報が登録される。
ここで、「フレームID」とは、フレームの識別子である。また、「実行処理」とは、対応付けられた「フレームID」が示すフレームの全てのスロットにスロット値が格納された場合に実行する処理の内容を示す情報である。また、「スロット名」とは、対応付けられた「フレームID」が示すフレームのスロットを示す情報である。また、「属性情報」とは、対応付けられた「スロット名」が示すスロットにスロット値として格納される文字列等の情報の属性、すなわち、条件を示す情報である。
例えば、図3に示す例では、フレームデータベース31には、フレームID「フレーム#1」、実行処理「処理#1」、スロット名「場所」および属性情報「属性情報#場所」等といった情報が対応付けて登録されている。このような情報は、フレームID「フレーム#1」が示すフレームに、スロット名「場所」が示すスロットが含まれており、そのスロットに属性情報「属性情報#場所」が示す条件を満たす文字列がスロット値として登録される旨を示す。また、このような情報は、フレームID「フレーム#1」が示すフレームの全てのスロットにスロット値が登録された場合には、実行処理「処理#1」が示す処理の実行結果が応答として出力される旨を示す。
なお、図3に示す例では、「フレーム#1」、「処理#1」、「属性情報#場所」等といった概念的な値を記載したが、実際には、フレームデータベース31には、フレームを識別する文字列、実行処理の内容を示す情報やスクリプト等のプログラム、スロット値となる情報の条件を示す情報等が登録されることとなる。
図2に戻り、説明を続ける。候補データベース32には、スロット値の候補が登録される。例えば、図4は、第1の実施形態に係る候補データベースに登録される情報の一例を示す図である。図4に示すように、候補データベース32には、「属性情報」および「候補」といった項目を有する情報が登録される。
ここで、「属性情報」とは、対応付けられた候補が満たす条件、すなわち、対応付けられた候補の属性を示す情報である。また、「候補」とは、スロット値として選択される情報の候補である。例えば、図4に示す例では、属性情報「属性情報#場所」と候補「東京、大阪」が対応付けて登録されている。このような情報は、候補データベース32が、属性情報「属性情報#場所」が示す条件を満たすスロット値の候補として、候補「東京、大阪」を記憶している旨を示す。
図2に戻り、説明を続ける。制御部40は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等のプロセッサによって、情報提供装置10内部の記憶装置に記憶されている各種プログラムがRAM等を作業領域として実行されることにより実現される。また、制御部40は、コントローラ(controller)であり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。図2に示すように、制御部40は、分類部41、判定部42、抽出部43、選択部44、生成部45、および提供部46を有する。
分類部41は、利用者Uの発話を対応するドメインに分類する。すなわち、分類部41は、利用者Uの発話が属するドメインを特定する。例えば、分類部41は、利用者端末100から、利用者Uが発声した音声を変換したテキストデータを受付ける。なお、例えば、分類部41は、利用者端末100から利用者Uが発声した音声データを受付け、受付けた音声データをテキストデータに変換してもよい。また、分類部41は、音声データをテキストデータへと変換する所定の外部サーバを介して、利用者端末100から利用者Uが発声した音声のテキストデータを受付けてもよい。
このような場合、分類部41は、利用者Uの発話の内容と対応するドメインを特定する。例えば、分類部41は、各種の文字解析技術や分類技術を用いて、利用者Uの発話の内容やどのような分野に属する内容であるかを判定する。なお、分類部41は、発話の分類処理を、SVM等の任意の分類モデルにより実現してよい。
判定部42は、利用者Uから受付けた発話が所定の条件を満たすか否かを判定する。より具体的には、例えば、判定部42は、利用者Uから受付けた発話から、スロット値を抽出することができるか否かを判定する。なお、このような判定処理は、発話のドメインを分類する際と同様に、各種任意の分類モデルにより実現可能である。
抽出部43は、発話が所定の条件を満たすと判定された場合には、発話に対する応答の生成に用いる文字列を発話から抽出する。より具体的には、抽出部43は、応答の生成に用いる文字列として、発話から所定の条件を満たす文字列を抽出する。例えば、抽出部43は、フレームデータベース31に格納された属性情報を参照することで、スロット値として格納されうる文字列が満たす属性を特定する。そして、抽出部43は、特定した属性を有する文字列を、発話の中から抽出する。その後、抽出部43は、抽出した文字列をスロット値としてフレームに格納する。例えば、抽出部43は、フレームIDと、スロット名と、抽出したスロット値とを対応付けて所定のメモリに格納する。
選択部44は、発話が所定の条件を満たさないと判定された場合には、発話の内容に基づいて、予め設定された文字列の候補の中から応答の生成に用いる文字列を選択する。例えば、選択部44は、候補のうち、発話が示す利用者の意図と関連する可能性が所定の閾値を超える候補を、応答の生成に用いる文字列、すなわちスロット値として選択する。そして、選択部44は、フレームIDと、スロット名と、選択したスロット値とを対応付けて所定のメモリに格納する。
例えば、選択部44は、発話と、利用者Uの意図との間の関係性を学習したモデルを用いて、候補データベース32に格納された各候補と、発話との間の関係性を示すスコアを算出し、算出したスコアの値に基づいて、各候補が、利用者Uの意図を示す確度を算出する。そして、選択部44は、確度が所定の閾値を超えた候補をスロット値として選択する。また、選択部44は、選択したスロット値の属性情報を候補データベース32から特定し、特定した属性情報を有するスロット値として、各フレームのスロットに選択したスロット値を格納する。すなわち、選択部44は、所定の条件を満たす文字列の候補の中から、応答の生成に用いる文字列を選択する。
なお、スロット値を格納したフレームに対応する処理の内容が、スロット値を用いた検索であった場合、スロット値は、検索対象の属性を示す検索クエリとなる。このため、選択部44は、所定の条件として、検索対象の属性を示す文字列の候補の中から、応答の生成に用いる文字列、すなわちスロット値の選択を行うこととなる。
また、選択部44は、分類部41によって発話が分類された分野に応じた条件を満たす文字列の候補の中から、応答の生成に用いる文字列を選択してもよい。例えば、選択部44は、分類部41によって発話が分類されたドメインと対応する候補を選択し、選択した候補の中から、発話に基づいて、利用者Uの意図を示す確度が高い候補をスロット値として選択してもよい。
また、選択部44は、発話の内容と、その発話よりも前に利用者Uから受付けた発話の内容とに基づいて、応答の生成に用いる文字列を候補の中から選択してもよい。すなわち、選択部44は、利用者Uとの過去の対話に基づいて、スロット値の候補の絞り込みを行い、絞り込んだスロット値の候補の中から、最後の発話に基づいて、スロット値の選択を行ってもよい。また、選択部44は、発話の内容と、利用者Uの属性とに基づいて、応答の生成に用いる文字列を候補から選択してもよい。例えば、選択部44は、利用者Uの属性に基づいて、スロット値の候補の絞り込みを行ってもよい。
なお、選択部44は、抽出部43によってスロット値として抽出された文字列や、過去の発話の中からスロット値としての所定の条件を満たす文字列を抽出し、抽出した文字列がスロット値の候補として候補データベース32に登録されているか否かを判定する。そして、選択部44は、抽出した文字列がスロット値の候補として候補データベース32に登録されていない場合は、かかる文字列を新たなスロット値の候補として候補データベース32に登録する。この結果、選択部44は、あらかじめ登録された文字列、抽出された文字列の履歴、または過去の対話履歴に含まれる文字列のうち少なくともいずれか1つを含む文字列の候補の中から、応答の生成に用いる文字列を選択することとなる。
生成部45は、抽出された文字列、または、選択された文字列を用いて、発話に対する応答を生成する。例えば、生成部45は、抽出部43がスロット値を抽出する度に、若しくは、選択部44がスロット値を選択し、各フレームの全てのスロットにスロット値が格納されたか否かを判定する。そして、生成部45は、いずれかのフレームの全てのスロットにスロット値が格納された場合は、係るフレームと対応する実行処理の処理内容をフレームデータベース31から特定し、特定した処理内容の処理を実行する。例えば、生成部45は、処理対象となるフレームの各スロットのスロット名とスロット値とを対応付けた検索クエリを生成し、生成した検索クエリを検索サーバ200に出力することで、利用者Uの発話に基づく検索処理を実行する。そして、生成部45は、検索サーバ200から検索結果を取得すると、取得した検索結果を利用者Uに対して説明する内容の応答を生成する。すなわち、生成部45は、選択された文字列を検索クエリとする検索処理の結果に基づいて、発話に対する応答を生成する。
なお、生成部45は、全てのスロットにスロット値が格納されたフレームが存在しない場合、もしくは、全てのスロットにスロット値が格納されたフレームが複数存在する場合は、発話の意図を問い合わせる内容の応答を生成してもよい。また、生成部45は、発話が示す利用者Uの意図と関連する可能性が所定の閾値を超える候補が存在しない場合、もしくは、発話が示す利用者Uの意図と関連する可能性が所定の閾値を超える候補の数が所定の数を超える場合には、発話の意図を利用者Uに対して問い合わせる内容の応答を生成してもよい。
提供部46は、生成部45が生成した応答を利用者Uに対して提供する。例えば、提供部46は、生成部45が生成した応答を利用者端末100が読み上げるためのデータを生成し、生成したデータを利用者端末100へと送信する。
〔3.情報提供装置が実行する処理の流れの一例〕
続いて、図5を用いて、情報提供装置10が実行する処理の流れの一例を説明する。図5は、第1の実施形態に係る情報提供装置が実行する決定処理の流れの一例を示すフローチャートである。例えば、情報提供装置10は、発話を受付けた場合は、発話が属するドメインを特定する(ステップS101)。続いて、情報提供装置10は、発話から利用者の意図を示す意図情報、すなわちスロット値を抽出可能か否かを判定する(ステップS102)。
そして、情報提供装置10は、スロット値を抽出可能であると判定した場合は(ステップS103:Yes)、発話に含まれる文字列のうち所定の条件を満たす文字列を意図情報として抽出する(ステップS104)。一方、情報提供装置10は、スロット値を抽出できないと判定した場合は(ステップS103:No)、所定の条件を満たす文字列の候補の中から、発話に基づいて意図情報となる文字列を選択する(ステップS105)。そして、情報提供装置10は、抽出あるいは選択した意図情報を用いて応答を生成し、生成した応答を利用者Uに提供し(ステップS106)、処理を終了する。
[第2の実施形態]
〔1−1.情報提供装置の概要〕
上述した第1の実施形態は、利用者Uの発話が利用者Uの意図を明確に示していない場合にも、利用者Uの意図を反映させた応答を生成するため、予め準備されたスロット値の候補の中から、利用者Uの意図を示す確度が高いスロット値の選択を行った。しかしながら、実施形態は、これに限定されるものではない。
例えば、利用者Uの発話を利用者の意図を示す文字列へと変換する処理を考えた場合、かかる処理は、各種の翻訳技術やシーケンス2シーケンス(Seq2Seq)等といった学習技術により実現可能である。このように、ある発話をその発話を行った利用者Uの意図を示す文字列へと変換するように学習が行われたモデルを用いて、利用者Uの発話を変換した場合、スロット値となりえる文字列や正規化辞書を用いることでスロット値となりえる文字列が発話の中に含まれなかったとしても、利用者Uの意図を示す文字列、すなわち、利用者Uの意図を反映させたスロット値を得ることができると考えられる。
そこで、以下に説明する第2の実施形態に係る情報提供装置10aは、利用者Uから受付けた発話が所定の条件を満たすか否かを判定し、所定の条件を満たすと判定された場合には、発話に対する応答の生成に用いる文字列を発話から抽出する。また、情報提供装置10aは、発話が所定の条件を満たさないと判定された場合には、発話を発話が示す利用者の意図を示す文字列へと変換するように学習が行われた学習器を用いて、利用者から受付けた発話を利用者の意図を示す文字列へと変換する。そして、情報提供装置10aは、抽出された文字列、または、発話から変換された文字列を用いて、発話に対する応答を生成する。
以下、図6を用いて、第2の実施形態に係る情報提供装置10aが実行する生成処理の一例について説明する。図6は、第2の実施形態に係る情報提供装置が実行する処理の一例を示す図である。なお、図6にステップS1〜ステップS9として示す処理のうち、ステップS1〜ステップS4、ステップS6〜ステップS9については、図1に示したステップS1〜ステップS4、ステップS6〜ステップS9と同様の処理であるものとして、説明を省略する。
例えば、情報提供装置10aは、発話#1から意図情報を抽出することができないと判定された場合は、発話から発話の意図を示す文字列に変換する処理を翻訳処理と見做して、発話を、発話の意図を示す文字列へと変換する(ステップS5)。より具体的には、情報提供装置10aは、発話を、その発話が示す利用者Uの意図を示す文字列であって、特定されたドメインに応じた文字列へと変換するように学習が行われた学習器を用いて、利用者Uから受付けた発話を利用者の意図を示す文字列へと変換する。
例えば、情報提供装置10aは、あるドメインに属する発話#Aを、利用者Uの意図を示す文字列や利用者Uのニーズを示す文字列へと変換するように学習が行われた変換モデルをドメインごとに保持する。そして、情報提供装置10aは、ステップS2にて特定された発話#1と対応するドメインの変換モデルを選択し、「おなかへったなー」等といった発話#1を選択した変換モデルに入力することで、利用者Uの意図を示す文字列、例えば、「レストラン」等といったスロット値の文字列へと変換する。すなわち、情報提供装置10aは、利用者Uから受付けた発話を利用者Uの意図を示す文字列であって、スロット値としての所定の条件を満たす文字列へと変換する。
その後、情報提供装置10aは、変換後の文字列「レストラン」の属性等を特定し、各フレームの対応するスロットへと格納することで、利用者Uの意図を反映させたスロット値を用いた応答の生成を実現することができる。なお、第1の実施例と同様に、応答を生成する際にスロット値を用いた検索処理が実行される場合、情報提供装置10aは、利用者Uの発話を検索対象の属性を示す文字列へと変換し、変換された文字列を検索クエリとする検索処理の結果に基づいて、発話に対する応答を生成することとなる。
〔1−2.変換モデルについて〕
上述した発話の変換に用いる変換モデルは、ドメインごとに、ある発話を入力した際に、その発話を行った利用者Uの意図を出力するようにモデルの学習を行うことで実現可能であり、このような学習手法については、任意の学習技術が採用可能である。
また、情報提供装置10aは、発話から利用者Uの意図を示す文字列へと変換することができるのであれば、任意の変換モデルを用いて発話の変換を行ってよい。例えば、情報提供装置10aは、word2vec等、単語を単語の相対的な意味に基づくベクトル表現へと変換する技術を用いて、発話の文字列を発話の意味を示すベクトル表現に変換し、変換したベクトル表現を、利用者Uの意図を示す単語のベクトル表現へと変換する変換モデルを用いて、発話の変換を行ってもよい。
また、情報提供装置10aは、LSTM(Long short-term memory)のレイヤを含むDNNに対して発話の文字列を先頭から一文字ずつ入力し、DNNが一文字づつ出力した文字列をスロット値としてもよい。また、情報提供装置10は、発話の文字列の画像や発話の音声波形等をそのまま変換モデルに入力し、スロット値となる文字列、文字列の画像、もしくは文字列の音声波形等へと変換してもよい。また、情報提供装置10aは、発話の文字列を作成するような音声認識を実行せず、音声の波形データから直接スロット値への変換を行ってもよい。
また、情報提供装置10aは、利用者Uの属性を考慮した学習が行われた変換モデルを用いてもよい。例えば、情報提供装置10aは、ある発言とその発言を行った利用者の属性とを入力した際に、その利用者Uの意図を示すスロット値へと変換するように学習が行われた変換モデルを保持し、係る変換モデルに利用者Uの発言と属性とを入力することで、利用者Uの意図を推定してもよい。また、情報提供装置10aは、利用者Uの属性ごとに学習が行われた変換モデルを用いてもよい。例えば、情報提供装置10は、ある発言を、その発言をある属性を有する利用者Uが発言した際のその利用者Uの意図を示すスロット値へと変換するように学習が行われた変換モデルを属性ごとに保持する。そして、情報提供装置10は、利用者Uの属性に応じて、使用する変換モデルを選択し、選択した変換モデルを用いて、発言の変換を行ってもよい。また、情報提供装置10aは、ドメインと利用者Uの属性との組合せごとに、異なる変換モデルを用いてもよく、各利用者専用の変換モデルを用いてもよい。
〔1−3.その他〕
また、情報提供装置10aは、発話#1からスロット値を抽出可能であるか否かを判定する処理と、発話#1からスロット値を抽出可能である場合に、発話#1からスロット値を抽出する処理と、発話#1からスロット値を抽出できない場合に、発話#1をスロット値へと変換する処理とを実行するように、DNN等のモデルの学習を行い、学習したモデルを用いて、上述した処理を実行してもよい。また、情報提供装置10aは、発話#1からスロット値を抽出可能であるか否かを判定する処理と、発話#1からスロット値を抽出可能である場合に、発話#1からスロット値を抽出する処理とを実行するモデルの学習を行い、学習したモデルを用いて、上述した処理を実行してもよい。このようなモデルを用いる場合、情報提供装置10aは、モデルがスロット値を抽出できなかった場合に、変換モデルを用いて、発話からスロット値の変換を行うこととなる。
〔2.情報提供装置の構成〕
以下、上記した第2の実施形態に係る情報提供装置10aが有する機能構成の一例について説明する。図7は、第2の実施形態に係る情報提供装置の構成例を示す図である。なお、図7に示す機能構成のうち、図2に示す機能構成と同様の機能を発揮するものについては、同一の符号を付し、以下の説明を省略する。図7に示すように、情報提供装置10aは、通信部20、記憶部30a、および制御部40aを有する。
記憶部30aは、記憶部30と同様に、例えば、RAM、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部30aは、フレームデータベース31およびモデルデータベース33を記憶する。
モデルデータベース33には、ドメインごとに発話を利用者Uの意図を示す意図情報、すなわち、スロット値へと変換する変換モデルが登録されている。例えば、図8は、第2の実施形態に係るモデルデータベースに登録される情報の一例を示す図である。図8に示す例では、フレームデータベースには、「モデルID」、「ドメイン」、および「モデルデータ」といった項目を有する情報が登録される。
ここで、「モデルID」とは、変換モデルの識別子である。また、「ドメイン」とは、対応付けられた「モデルID」が示す変換モデルと対応するドメインを示す情報である。また、「モデルデータ」とは、対応付けられた「モデルID」が示す変換モデルのデータである。例えば、図8に示す例では、モデルID「モデル#1」、ドメイン「ドメイン#1」、およびモデルデータ「モデルデータ#1」等といった情報が対応付けて登録されている。このような情報は、モデルID「モデル#1」が示す変換モデルがドメイン「ドメイン#1」が示すドメインに対応する変換モデルであり、データがモデルデータ「モデルデータ#1」である旨を示す。
なお、図8に示す例では、「モデル#1」、「ドメイン#1」、「モデルデータ#1」等といった概念的な値を記載したが、実際には、変換モデルを識別する文字列、ドメインを識別する文字列や数値、変換モデルの各種パラメータやノード間の接続係数等を示す情報が登録されることとなる。
図7に戻り、説明を続ける。制御部40aは、コントローラであり、例えば、CPU、MPU等のプロセッサによって、情報提供装置10a内部の記憶装置に記憶されている各種プログラムがRAM等を作業領域として実行されることにより実現される。また、制御部40aは、コントローラであり、例えば、ASICやFPGA等の集積回路により実現されてもよい。図7に示すように、制御部40aは、図2に示した制御部40が有する選択部44に代えて、および変換部47を有する。なお、以下の説明では、分類部41、判定部42、抽出部43、生成部45、および提供部46は、図2に示す分類部41、判定部42、抽出部43、生成部45、および提供部46と同様の機能を発揮するものとして、詳細な説明を省略する。
変換部47は、発話が所定の条件を満たさないと判定された場合には、発話を発話が示す利用者Uの意図を示す文字列へと変換するように学習が行われた学習器を用いて、利用者Uから受付けた発話を利用者Uの意図を示す文字列へと変換する。また、変換部47は、利用者Uから受付けた発話を利用者Uの意図を示す文字列であって、スロット値となる所定の条件を満たす文字列へと変換する。例えば、変換部47は、フレームと対応する処理がスロット値を用いた検索である場合、所定の条件として、検索対象の属性を示す文字列へと変換する。
例えば、変換部47は、発話が所定の条件を満たさないと判定された場合には、分類部41によって特定された発話が属するドメインと対応する変換モデルをモデルデータベース33から読み出す。そして、変換部47は、読み出した変換モデルに対し、発話を入力することで、利用者Uの意図を示す文字列をスロット値を取得する。すなわち、変換部47は、発話を利用者の意図を示す文字列であって、発話が属する分野に応じた文字列へと変換するように学習が行われた変換モデルを用いて、利用者Uから受付けた発話を利用者Uの意図を示す文字列へと変換する。
この結果、生成部45は、抽出部43によって抽出されたスロット値あるいは変換部47によって発話を変換したスロット値を用いて、利用者Uに対する応答を生成する。この結果、情報提供装置10aは、利用者Uの発話が利用者Uの意図を明確に示していない場合にも、利用者Uの意図を反映させた応答を提供することができる。
〔3.情報提供装置が実行する処理の流れの一例〕
続いて、図9を用いて、情報提供装置10aが実行する処理の流れの一例を説明する。図9は、第2の実施形態に係る情報提供装置が実行する決定処理の流れの一例を示すフローチャートである。なお、図9中ステップS201〜ステップS204、ステップS206は、図5に示すステップS101〜ステップS104、ステップS106と同様の処理であるものとして、詳細な説明を省略する。
例えば、情報提供装置10は、スロット値を抽出できないと判定した場合は(ステップS203:No)、発話を利用者Uの意図を示す文字列に変換する学習器を用いて、受付けた発話の文字列を意図情報の文字列、すなわち、スロット値へと変換する(ステップS205)。この結果、情報提供装置10は、抽出あるいは発話を変換することで得られた意図情報を用いて応答を生成し、生成した応答を利用者Uに提供し(ステップS206)、処理を終了する。
[変形例]
上記では、情報提供装置10、10a(以下、単に「情報提供装置10」と総称する。)による生成処理の一例について説明した。しかしながら、実施形態は、これに限定されるものではない。以下、情報提供装置10が実行する提供処理や決定処理のバリエーションについて説明する。
〔1.選択処理および変換処理の実行について〕
情報提供装置10は、スロット値の候補の中から発話に基づいて選択する選択処理、または、発話をスロット値へと変換する変換処理を実行した。ここで、情報提供装置10は、選択処理および変換処理の両方を実行してもよい。
例えば、情報提供装置10は、発話が第1条件、第2条件、または第3条件のいずれを満たすかを判定する。より具体的には、情報提供装置10は、発話からスロット値を抽出することができる場合には、発話が第1条件を満たすと判定する。また、情報提供装置10は、発話が第1条件を満たさない場合は、発話がスロット値の選択に適しているか否かを判定し、発話がスロット値の選択に適している場合には、発話が第2条件を満たすと判定し、発話がスロット値の選択に適していないと判定した場合は、発話が第3条件を満たすと判定する。なお、情報提供装置10は、発話がスロット値への変換に適しているか否かを判定し、適していると判定した場合は、発話が第3条件を満たすと判定し、適していないと判定した場合は、発話が第2条件を満たすと判定してもよい。
そして、情報提供装置10は、発話が第1条件を満たすと判定された場合は、発話に対する応答の生成に用いる文字列を発話から抽出する。また、情報提供装置10は、発話が第2条件を満たすと判定された場合は、発話の内容に基づいて、予め設定された文字列の候補の中から応答の生成に用いる文字列を選択する。また、情報提供装置10は、第3条件を満たすと判定された場合は、発話を利用者Uの意図を示す文字列へと変換するように学習が行われた学習器を用いて、利用者Uから受付けた発話を利用者Uの意図を示す文字列へと変換する。そして、情報提供装置10は、抽出された文字列、選択された文字列、または発話から変換された文字列を用いて、発話に対する応答を生成する。
例えば、情報提供装置10は、利用者Uの発話からスロット値を抽出できるか否かを判定し、スロット値を抽出できると判定した場合は、発話からスロット値の抽出を行う抽出処理を実行する。一方、情報提供装置10は、スロット値を抽出できないと判定した場合は、発話がスロット値の選択に適しているか、若しくは、発話がスロット値への変換に適しているか否かを判定する。このような判定は、例えば、スロット値へと変換するよりもスロット値の選択を行った方が、利用者Uの意図をより適切に反映させることができる発話の特徴を学習した学習器等により実現可能である。そして、情報提供装置10は、発話がスロット値の選択に適していると判定した場合は、上述した選択処理を実行し、発話がスロット値への変換に適していると判定した場合は、上述した変換処理を実行することで、利用者Uの意図を反映させたスロット値を得る。
このように、情報提供装置10は、発話が満たす条件に応じて抽出処理、選択処理および変換処理を動的に切り替えてもよい。なお、このような情報提供装置10は、例えば、図2に示す機能構成と、図7に示す機能構成とを組み合わせることで、実現可能である。
なお、上述した例では、情報提供装置10は、発話から抽出された文字列、または、候補の中から選択された文字列を用いて、応答を生成した。また、情報提供装置10aは、発話から抽出された文字列、または、発話を変換することで生成された文字列を用いて、応答を生成した。しかしながら、実施形態は、これに限定されるものではない。
例えば、情報提供装置10は、発話から所定の条件を満たす文字列が抽出可能か否かの判定結果に係らず、文字列の抽出および候補の選択を行い、発話から抽出された文字列と、候補の中から選択された文字列とを両方用いて、応答の生成を行ってもよい。すなわち、情報提供装置10は、発話から抽出された文字列と、候補の中から選択された文字列との少なくともいずれか一方を用いて、応答の生成を行えばよい。
また例えば、情報提供装置10aは、文字列の抽出および発話の変換を行い、発話から抽出された文字列と、変換後の文字列とを両方用いて、応答の生成を行ってもよい。すなわち、情報提供装置10aは、発話から抽出された文字列と、変換後の文字列との少なくともいずれか一方を用いて、応答の生成を行えばよい。
〔2.強化学習について〕
情報提供装置10は、発話の分類に用いるモデルや、発話からスロット値を選択するモデル、発話をスロット値へと変換する変換モデルを、利用者Uとの対話を通した強化学習により学習してもよい。例えば、情報提供装置10は、応答を出力した後で利用者Uから受付けた発話の内容から、利用者Uの応答に対する反応が好意的であるか否かを判定し、判定結果に基づく報酬を設定することで、各モデルの強化学習を実現してもよい。
〔3.対話処理の構成について〕
上述した情報提供装置10は、スロットフィリングの結果を用いて応答を生成した。しかしながら、実施形態は、これに限定されるものではない。例えば、情報提供装置10は、利用者Uの発話の意図を特定し、特定した意図から利用者Uとの対話の状況を判定し、判定した状況に応じた応答を生成するといった処理により、利用者Uとの応答を生成するといった対話処理を実行する場合がある。このような対話処理において、情報提供装置10は、利用者Uの発話の意図を特定する際に、上述したスロットフィリングの技術を適用し、スロットフィリングの結果に応じて、利用者Uとの対話の状況を判定し、判定した状況に応じた応答を生成してもよい。すなわち、情報提供装置10は、利用者Uの発話から利用者Uの意図を反映させたスロット値を得るのであれば、他の任意の処理と組み合わせて、発話に対する応答を生成してよい。
〔4.装置構成〕
記憶部30、30aに登録された各データベース31〜33は、外部のストレージサーバに保持されていてもよい。また、情報提供装置10は、発話を分類する分類サーバ、発話からスロット値を抽出できるか否かを判定する判定サーバ、発話からスロット値を抽出する抽出サーバ、スロット値の候補から発話に基づいてスロット値を選択する選択サーバ、発話をスロット値へと変換する変換サーバ、スロット値から応答を生成する生成サーバ等が連携して動作することにより、実現されてもよい。
このような場合、分類サーバには、分類部41が配置され、判定サーバには、判定部42が配置され、抽出サーバには、抽出部43が配置され、選択サーバには、選択部44が配置され、変換サーバには、変換部47が設置され、生成サーバには、生成部45および提供部46が設置されていてもよい。また、ドメインに対応する複数の抽出サーバ、選択サーバ、変換サーバが設置されていてもよい。
〔5.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、逆に、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔6.プログラム〕
また、上述した実施形態に係る情報提供装置10は、例えば図10に示すような構成のコンピュータ1000によって実現される。図10は、ハードウェア構成の一例を示す図である。コンピュータ1000は、出力装置1010、入力装置1020と接続され、演算装置1030、一次記憶装置1040、二次記憶装置1050、出力IF(Interface)1060、入力IF1070、ネットワークIF1080がバス1090により接続された形態を有する。
演算装置1030は、一次記憶装置1040や二次記憶装置1050に格納されたプログラムや入力装置1020から読み出したプログラム等に基づいて動作し、各種の処理を実行する。一次記憶装置1040は、RAM等、演算装置1030が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置1050は、演算装置1030が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ等により実現される。
出力IF1060は、モニタやプリンタといった各種の情報を出力する出力装置1010に対し、出力対象となる情報を送信するためのインタフェースであり、例えば、USB(Universal Serial Bus)やDVI(Digital Visual Interface)、HDMI(登録商標)(High Definition Multimedia Interface)といった規格のコネクタにより実現される。また、入力IF1070は、マウス、キーボード、およびスキャナ等といった各種の入力装置1020から情報を受信するためのインタフェースであり、例えば、USB等により実現される。
なお、入力装置1020は、例えば、CD(Compact Disc)、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等から情報を読み出す装置であってもよい。また、入力装置1020は、USBメモリ等の外付け記憶媒体であってもよい。
ネットワークIF1080は、ネットワークNを介して他の機器からデータを受信して演算装置1030へ送り、また、ネットワークNを介して演算装置1030が生成したデータを他の機器へ送信する。
演算装置1030は、出力IF1060や入力IF1070を介して、出力装置1010や入力装置1020の制御を行う。例えば、演算装置1030は、入力装置1020や二次記憶装置1050からプログラムを一次記憶装置1040上にロードし、ロードしたプログラムを実行する。
例えば、コンピュータ1000が情報提供装置10として機能する場合、コンピュータ1000の演算装置1030は、一次記憶装置1040上にロードされたプログラムを実行することにより、制御部40の機能を実現する。
[効果]
上述したように、情報提供装置10は、利用者Uから受付けた発話から所定の条件を満たす文字列を抽出できるか否かを判定する。また、情報提供装置10は、発話から所定の条件を満たす文字列を抽出できると判定された場合には、その発話に対する応答の生成に用いる文字列をその発話から抽出する。一方、情報提供装置10は、発話から所定の条件を満たす文字列を抽出できないと判定された場合には、その発話の内容に基づいて、予め設定された文字列の候補の中から応答の生成に用いる文字列を選択する。そして、情報提供装置10は、抽出された文字列、または、選択された文字列の少なくとも一方を用いて、発話に対する応答を生成する。
この結果、情報提供装置10は、利用者の意図を示す単語が含まれない発話文、すなわち、利用者の意図を示唆するに留まるような発話文からも、利用者Uの意図を反映させた応答を生成することができるので、利用者の意図を反映させた応答を出力することができる。
また、情報提供装置10は、候補のうち、発話が示す利用者Uの意図と関連する可能性が所定の閾値を超える候補を、応答の生成に用いる文字列として選択する。このため、情報提供装置10は、利用者の意図をより反映させたスロット値に基づく応答を生成できるので、利用者Uの意図をより反映させた応答を出力することができる。
また、情報提供装置10は、発話の内容と、その発話よりも前に利用者Uから受付けた発話の内容とに基づいて、応答の生成に用いる文字列を候補から選択する。また、情報提供装置10は、発話の内容と、利用者Uの属性とに基づいて、応答の生成に用いる文字列を候補から選択する。このため、情報提供装置10は、利用者Uの意図をより反映させる可能性が高いスロット値から応答を生成するので、利用者Uの意図をより反映させた応答を出力することができる。
また、情報提供装置10は、発話が示す利用者Uの意図と関連する可能性が所定の閾値を超える候補が存在しない場合、または、発話が示す利用者Uの意図と関連する可能性が所定の閾値を超える候補の数が所定の数を超える場合には、発話の意図を利用者Uに対して問い合わせる内容の応答を生成する。このため、情報提供装置10は、誤った応答の出力を防ぐとともに、利用者Uの意図を反映させた応答を出力するように、利用者Uの発話を誘導することができる。
また、情報提供装置10は、応答の生成に用いる文字列として、発話から所定の条件を満たす文字列を抽出し、所定の条件を満たす文字列の候補の中から、応答の生成に用いる文字列を選択する。例えば、情報提供装置10は、所定の条件として、検索対象の属性を示す文字列の候補の中から、応答の生成に用いる文字列を選択し、選択された文字列を検索クエリとする検索処理の結果に基づいて、発話に対する応答を生成する。このため、情報提供装置10は、例えば、ある処理に対応するフレームのスロット値として適切なスロット値の候補から、応答の生成に用いるスロット値を選択するので、適切な応答を生成することができる。
また、情報提供装置10は、利用者Uから受付けた発話が属する分野を特定し、特定された分野に応じた条件を満たす文字列の候補の中から、応答の生成に用いる文字列を選択する。このため、情報提供装置10は、より適切な応答を生成することができる。
また、情報提供装置10は、あらかじめ登録された文字列、抽出された文字列の履歴、または、過去の対話履歴に含まれる文字列のうち少なくともいずれか1つを含む文字列の候補の中から、応答の生成に用いる文字列を選択する。このため、情報提供装置10は、利用者Uとの対話を通して、スロット値の候補を拡充するので、利用者Uとの対話が進むにつれて、より適切な応答を生成することができる。
また、情報提供装置10aは、発話が所定の条件を満たさないと判定された場合には、発話を利用者Uの意図を示す文字列へと変換するように学習が行われた学習器を用いて、利用者Uから受付けた発話をその利用者Uの意図を示す文字列へと変換する。そして、情報提供装置10aは、抽出された文字列、または、発話から変換された文字列の少なくとも一方を用いて、発話に対する応答を生成する。このため、情報提供装置10aは、利用者の意図を示唆するに留まるような発話文からも、利用者の意図を反映させた応答を出力することができる。
また、情報提供装置10aは、利用者Uから受付けた発話を利用者Uの意図を示す文字列であって、所定の条件を満たす文字列へと変換する。また、情報提供装置10aは、所定の条件として、検索対象の属性を示す文字列へと変換し、変換された文字列を検索クエリとする検索処理の結果に基づいて、発話に対する応答を生成する。また、情報提供装置10aは、利用者Uから受付けた発話が属する分野を特定する。そして、情報提供装置10aは、利用者Uの意図を示す文字列であって、特定された分野に応じた文字列へと変換するように学習が行われた学習器を用いて、利用者Uから受付けた発話をその利用者Uの意図を示す文字列へと変換する。このため、情報提供装置10aは、利用者の意図を反映させた応答を出力することができる。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上記してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、推定部は、推定手段や推定回路に読み替えることができる。
10 情報提供装置
20 通信部
30 記憶部
31 フレームデータベース
32 候補データベース
33 モデルデータベース
40 制御部
41 分類部
42 判定部
43 抽出部
44 選択部
45 生成部
46 提供部
47 変換部
100 利用者端末
200 検索サーバ

Claims (20)

  1. 利用者から受付けた発話から所定の条件を満たす文字列であって当該発話の内容が属するドメインと対応する文字列を抽出できるか否かを判定する判定部と、
    前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出部と、
    前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、当該発話の内容に基づいて、予め設定された文字列の候補の中から前記応答の生成に用いる文字列を選択する選択部と、
    前記抽出部により抽出された文字列、または、前記選択部により選択された文字列の少なくとも一方を用いて、前記発話に対する応答を生成する生成部と
    を有することを特徴とする生成装置。
  2. 利用者から受付けた発話から所定の条件を満たす文字列を抽出できるか否かを判定する判定部と、
    前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出部と、
    前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、当該発話の内容に基づいて、予め設定された複数の文字列の候補の中から検索を行うための文字列を選択する選択部と、
    前記抽出部により抽出された文字列、または、前記選択部により選択された文字列の少なくとも一方を用いて、前記応答の生成に用いる情報の検索を行い、当該検索の結果に基づいて前記発話に対する応答を生成する生成部と
    を有することを特徴とする生成装置。
  3. 前記選択部は、前記候補のうち、前記発話が示す前記利用者の意図と関連する可能性が所定の閾値を超える候補を、前記応答の生成に用いる文字列として選択する
    ことを特徴とする請求項1または2に記載の生成装置。
  4. 前記選択部は、前記発話の内容と、当該発話よりも前に前記利用者から受付けた発話の内容とに基づいて、前記応答の生成に用いる文字列を前記候補から選択する
    ことを特徴とする請求項1〜3のうちいずれか1つに記載の生成装置。
  5. 前記選択部は、前記発話の内容と、前記利用者の属性とに基づいて、前記応答の生成に用いる文字列を前記候補から選択する
    ことを特徴とする請求項1〜のうちいずれか1つに記載の生成装置。
  6. 前記生成部は、前記発話が示す前記利用者の意図と関連する可能性が所定の閾値を超える候補が存在しない場合、または、前記発話が示す前記利用者の意図と関連する可能性が所定の閾値を超える候補の数が所定の数を超える場合には、前記発話の意図を前記利用者に対して問い合わせる内容の応答を生成する
    ことを特徴とする請求項1〜のうちいずれか1つに記載の生成装置。
  7. 前記抽出部は、前記応答の生成に用いる文字列として、前記発話から前記所定の条件を満たす文字列を抽出し、
    前記選択部は、前記所定の条件を満たす文字列の候補の中から、前記応答の生成に用いる文字列を選択する
    ことを特徴とする請求項1〜のうちいずれか1つに記載の生成装置。
  8. 前記選択部は、前記所定の条件として、検索対象の属性を示す文字列の候補の中から、前記応答の生成に用いる文字列を選択し、
    前記生成部は、前記選択部により選択された文字列を検索クエリとする検索処理の結果に基づいて、前記発話に対する応答を生成する
    ことを特徴とする請求項に記載の生成装置。
  9. 前記利用者から受付けた発話が属する分野を特定する特定部
    を有し、
    前記選択部は、前記特定部により特定された分野に応じた条件を満たす文字列の候補の中から、前記応答の生成に用いる文字列を選択する
    ことを特徴とする請求項1〜のうちいずれか1つに記載の生成装置。
  10. 前記選択部は、あらかじめ登録された文字列、前記抽出部により抽出された文字列の履歴、または、過去の対話履歴に含まれる文字列のうち少なくともいずれか1つを含む文字列の候補の中から、前記応答の生成に用いる文字列を選択する
    ことを特徴とする請求項1〜のうちいずれか1つに記載の生成装置。
  11. 利用者から受付けた発話から所定の条件を満たす文字列であって当該発話の内容が属するドメインと対応する文字列を抽出できるか否かを判定する判定部と、
    前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出部と、
    前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、発話を利用者の意図を示す文字列へと変換するように学習が行われた学習器を用いて、前記利用者から受付けた発話を当該利用者の意図を示す文字列へと変換する変換部と、
    前記抽出部により抽出された文字列、または、前記変換部により変換された文字列の少なくとも一方を用いて、前記発話に対する応答を生成する生成部と
    を有することを特徴とする生成装置。
  12. 前記変換部は、前記利用者から受付けた発話を前記利用者の意図を示す文字列であって、前記所定の条件を満たす文字列へと変換する
    ことを特徴とする請求項11に記載の生成装置。
  13. 前記変換部は、前記所定の条件として、検索対象の属性を示す文字列へと変換し、
    前記生成部は、前記変換部により変換された文字列を検索クエリとする検索処理の結果に基づいて、前記発話に対する応答を生成する
    ことを特徴とする請求項12に記載の生成装置。
  14. 前記利用者から受付けた発話が属する分野を特定する特定部
    を有し、
    前記変換部は、利用者の意図を示す文字列であって、前記特定部により特定された分野に応じた文字列へと変換するように学習が行われた学習器を用いて、前記利用者から受付けた発話を当該利用者の意図を示す文字列へと変換する
    ことを特徴とする請求項1113のうちいずれか1つに記載の生成装置。
  15. 生成装置が実行する生成方法であって、
    利用者から受付けた発話から所定の条件を満たす文字列であって当該発話の内容が属するドメインと対応する文字列を抽出できるか否かを判定する判定工程と、
    前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出工程と、
    前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、当該発話の内容に基づいて、予め設定された文字列の候補の中から前記応答の生成に用いる文字列を選択する選択工程と、
    前記抽出工程により抽出された文字列、または、前記選択工程により選択された文字列の少なくとも一方を用いて、前記発話に対する応答を生成する生成工程と
    を含むことを特徴とする生成方法。
  16. 利用者から受付けた発話から所定の条件を満たす文字列であって当該発話の内容が属するドメインと対応する文字列を抽出できるか否かを判定する判定手順と、
    前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出手順と、
    前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、当該発話の内容に基づいて、予め設定された文字列の候補の中から前記応答の生成に用いる文字列を選択する選択手順と、
    前記抽出手順により抽出された文字列、または、前記選択手順により選択された文字列の少なくとも一方を用いて、前記発話に対する応答を生成する生成手順と
    をコンピュータに実行させることを特徴とする生成プログラム。
  17. 生成装置が実行する生成方法であって、
    利用者から受付けた発話から所定の条件を満たす文字列を抽出できるか否かを判定する判定工程と、
    前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出工程と、
    前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、当該発話の内容に基づいて、予め設定された複数の文字列の候補の中から検索を行うための文字列を選択する選択工程と、
    前記抽出工程により抽出された文字列、または、前記選択工程により選択された文字列の少なくとも一方を用いて、前記応答の生成に用いる情報の検索を行い、当該検索の結果に基づいて前記発話に対する応答を生成する生成工程と
    を含むことを特徴とする生成方法。
  18. 利用者から受付けた発話から所定の条件を満たす文字列を抽出できるか否かを判定する判定手順と、
    前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出手順と、
    前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、当該発話の内容に基づいて、予め設定された複数の文字列の候補の中から検索を行うための文字列を選択する選択手順と、
    前記抽出手順により抽出された文字列、または、前記選択手順により選択された文字列の少なくとも一方を用いて、前記応答の生成に用いる情報の検索を行い、当該検索の結果に基づいて前記発話に対する応答を生成する生成手順と
    をコンピュータに実行させることを特徴とする生成プログラム。
  19. 生成装置が実行する生成方法であって、
    利用者から受付けた発話から所定の条件を満たす文字列であって当該発話の内容が属するドメインと対応する文字列を抽出できるか否かを判定する判定工程と、
    前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出工程と、
    前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、発話を当該発話が示す利用者の意図を示す文字列へと変換するように学習が行われた学習器を用いて、前記利用者から受付けた発話を当該利用者の意図を示す文字列へと変換する変換工程と、
    前記抽出工程により抽出された文字列、または、前記変換工程により変換された文字列の少なくとも一方を用いて、前記発話に対する応答を生成する生成工程と
    を含むことを特徴とする生成方法。
  20. 利用者から受付けた発話から所定の条件を満たす文字列であって当該発話の内容が属するドメインと対応する文字列を抽出できるか否かを判定する判定手順と、
    前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出手順と、
    前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、発話を当該発話が示す利用者の意図を示す文字列へと変換するように学習が行われた学習器を用いて、前記利用者から受付けた発話を当該利用者の意図を示す文字列へと変換する変換手順と、
    前記抽出手順により抽出された文字列、または、前記変換手順により変換された文字列の少なくとも一方を用いて、前記発話に対する応答を生成する生成手順と
    をコンピュータに実行させることを特徴とする生成プログラム。
JP2017095783A 2017-05-12 2017-05-12 生成装置、生成方法および生成プログラム Active JP6370962B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017095783A JP6370962B1 (ja) 2017-05-12 2017-05-12 生成装置、生成方法および生成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017095783A JP6370962B1 (ja) 2017-05-12 2017-05-12 生成装置、生成方法および生成プログラム

Publications (2)

Publication Number Publication Date
JP6370962B1 true JP6370962B1 (ja) 2018-08-08
JP2018194902A JP2018194902A (ja) 2018-12-06

Family

ID=63104324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017095783A Active JP6370962B1 (ja) 2017-05-12 2017-05-12 生成装置、生成方法および生成プログラム

Country Status (1)

Country Link
JP (1) JP6370962B1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020087352A (ja) * 2018-11-30 2020-06-04 富士通株式会社 対話制御方法、対話制御プログラム、対話制御装置、情報提示方法および情報提示装置
JP2020135689A (ja) * 2019-02-25 2020-08-31 株式会社コトバデザイン モデル学習システム、意図解釈システム、モデル学習方法およびモデル学習用プログラム
JP2022515005A (ja) * 2018-10-10 2022-02-17 華為技術有限公司 人間とコンピュータとの相互作用方法および電子デバイス

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112597754B (zh) * 2020-12-23 2023-11-21 北京百度网讯科技有限公司 文本纠错方法、装置、电子设备和可读存储介质
CN112632251B (zh) 2020-12-24 2023-12-29 北京百度网讯科技有限公司 回复内容的生成方法、装置、设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01233619A (ja) * 1988-03-15 1989-09-19 A T R Jido Honyaku Denwa Kenkyusho:Kk 自然言語対話処理装置
JP3212618B2 (ja) * 1996-09-26 2001-09-25 三菱電機株式会社 対話処理装置
WO2007088877A1 (ja) * 2006-01-31 2007-08-09 Honda Motor Co., Ltd. 会話システムおよび会話ソフトウェア
JP2007272534A (ja) * 2006-03-31 2007-10-18 Advanced Telecommunication Research Institute International 省略語補完装置、省略語補完方法、及びプログラム
JP2017049471A (ja) * 2015-09-03 2017-03-09 カシオ計算機株式会社 対話制御装置、対話制御方法及びプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01233619A (ja) * 1988-03-15 1989-09-19 A T R Jido Honyaku Denwa Kenkyusho:Kk 自然言語対話処理装置
JP3212618B2 (ja) * 1996-09-26 2001-09-25 三菱電機株式会社 対話処理装置
WO2007088877A1 (ja) * 2006-01-31 2007-08-09 Honda Motor Co., Ltd. 会話システムおよび会話ソフトウェア
JP2007272534A (ja) * 2006-03-31 2007-10-18 Advanced Telecommunication Research Institute International 省略語補完装置、省略語補完方法、及びプログラム
JP2017049471A (ja) * 2015-09-03 2017-03-09 カシオ計算機株式会社 対話制御装置、対話制御方法及びプログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022515005A (ja) * 2018-10-10 2022-02-17 華為技術有限公司 人間とコンピュータとの相互作用方法および電子デバイス
JP7252327B2 (ja) 2018-10-10 2023-04-04 華為技術有限公司 人間とコンピュータとの相互作用方法および電子デバイス
US11636852B2 (en) 2018-10-10 2023-04-25 Huawei Technologies Co., Ltd. Human-computer interaction method and electronic device
JP2020087352A (ja) * 2018-11-30 2020-06-04 富士通株式会社 対話制御方法、対話制御プログラム、対話制御装置、情報提示方法および情報提示装置
JP7115265B2 (ja) 2018-11-30 2022-08-09 富士通株式会社 対話制御方法、対話制御プログラム、対話制御装置、情報提示方法および情報提示装置
JP2020135689A (ja) * 2019-02-25 2020-08-31 株式会社コトバデザイン モデル学習システム、意図解釈システム、モデル学習方法およびモデル学習用プログラム

Also Published As

Publication number Publication date
JP2018194902A (ja) 2018-12-06

Similar Documents

Publication Publication Date Title
US11568855B2 (en) System and method for defining dialog intents and building zero-shot intent recognition models
JP6370962B1 (ja) 生成装置、生成方法および生成プログラム
US10811006B2 (en) Information processing method, information processing apparatus, and non-transitory recording medium
JP7132090B2 (ja) 対話システム、対話装置、対話方法、及びプログラム
US11586689B2 (en) Electronic apparatus and controlling method thereof
JP6408080B1 (ja) 生成装置、生成方法及び生成プログラム
JP6224857B1 (ja) 分類装置、分類方法および分類プログラム
JP2016513269A (ja) 音響言語モデルトレーニングのための方法およびデバイス
JPWO2016151700A1 (ja) 意図理解装置、方法およびプログラム
JP6199517B1 (ja) 決定装置、決定方法および決定プログラム
WO2019159986A1 (ja) 情報提供装置、情報提供方法、およびプログラム
JP7058574B2 (ja) 情報処理装置、情報処理方法、およびプログラム
US11043215B2 (en) Method and system for generating textual representation of user spoken utterance
CN110998719A (zh) 信息处理设备和信息处理方法
JPWO2018123139A1 (ja) 応答装置、応答装置の制御方法、および制御プログラム
JP2017125921A (ja) 発話選択装置、方法、及びプログラム
JP7096199B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP6824795B2 (ja) 修正装置、修正方法および修正プログラム
JP2020016784A (ja) 認識装置、認識方法及び認識プログラム
KR20170048008A (ko) 질의의도를 분석하기 위한 장치 및 방법
US12002460B2 (en) Information processing device, information processing system, and information processing method, and program
JP2018180459A (ja) 音声合成システム、音声合成方法、及び音声合成プログラム
JP6983729B2 (ja) 抽出装置、評価装置、抽出方法および抽出プログラム
JP6205039B1 (ja) 情報処理装置、情報処理方法、およびプログラム
JP6462784B2 (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: 20180612

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180711

R150 Certificate of patent or registration of utility model

Ref document number: 6370962

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