(57)【要約】      （修正有）【課題】利用者の意図を反映させた応答を出力する生成装置、生成方法および生成プログラムを提供する。【解決手段】本生成装置は、利用者から受付けた発話から所定の条件を満たす文字列を抽出できるか否かを判定する判定部４２と、前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出部４３と、前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、当該発話の内容に基づいて、予め設定された文字列の候補の中から前記応答の生成に用いる文字列を選択する選択部４４と、前記抽出部により抽出された文字列または前記選択部により選択された文字列の少なくとも一方を用いて、前記発話に対する応答を生成する生成部４５と、を有する。【選択図】図２
2018194902.tif 000002
【特許請求の範囲】
【請求項１】
利用者から受付けた発話から所定の条件を満たす文字列を抽出できるか否かを判定する判定部と、
前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出部と、
前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、当該発話の内容に基づいて、予め設定された文字列の候補の中から前記応答の生成に用いる文字列を選択する選択部と、
前記抽出部により抽出された文字列、または、前記選択部により選択された文字列の少なくとも一方を用いて、前記発話に対する応答を生成する生成部と
を有することを特徴とする生成装置。
【請求項２】
前記選択部は、前記候補のうち、前記発話が示す前記利用者の意図と関連する可能性が所定の閾値を超える候補を、前記応答の生成に用いる文字列として選択する
ことを特徴とする請求項１に記載の生成装置。
【請求項３】
前記選択部は、前記発話の内容と、当該発話よりも前に前記利用者から受付けた発話の内容とに基づいて、前記応答の生成に用いる文字列を前記候補から選択する
ことを特徴とする請求項１または２に記載の生成装置。
【請求項４】
前記選択部は、前記発話の内容と、前記利用者の属性とに基づいて、前記応答の生成に用いる文字列を前記候補から選択する
ことを特徴とする請求項１〜３のうちいずれか１つに記載の生成装置。
【請求項５】
前記生成部は、前記発話が示す前記利用者の意図と関連する可能性が所定の閾値を超える候補が存在しない場合、または、前記発話が示す前記利用者の意図と関連する可能性が所定の閾値を超える候補の数が所定の数を超える場合には、前記発話の意図を前記利用者に対して問い合わせる内容の応答を生成する
ことを特徴とする請求項１〜４のうちいずれか１つに記載の生成装置。
【請求項６】
前記抽出部は、前記応答の生成に用いる文字列として、前記発話から前記所定の条件を満たす文字列を抽出し、
前記選択部は、前記前記所定の条件を満たす文字列の候補の中から、前記応答の生成に用いる文字列を選択する
ことを特徴とする請求項１〜５のうちいずれか１つに記載の生成装置。
【請求項７】
前記選択部は、前記所定の条件として、検索対象の属性を示す文字列の候補の中から、前記応答の生成に用いる文字列を選択し、
前記生成部は、前記選択部により選択された文字列を検索クエリとする検索処理の結果に基づいて、前記発話に対する応答を生成する
ことを特徴とする請求項６に記載の生成装置。
【請求項８】
前記利用者から受付けた発話が属する分野を特定する特定部
を有し、
前記選択部は、前記特定部により特定された分野に応じた条件を満たす文字列の候補の中から、前記応答の生成に用いる文字列を選択する
ことを特徴とする請求項１〜７のうちいずれか１つに記載の生成装置。
【請求項９】
前記選択部は、あらかじめ登録された文字列、前記抽出部により抽出された文字列の履歴、または、過去の対話履歴に含まれる文字列のうち少なくともいずれか１つを含む文字列の候補の中から、前記応答の生成に用いる文字列を選択する
ことを特徴とする請求項１〜８のうちいずれか１つに記載の生成装置。
【請求項１０】
利用者から受付けた発話から所定の条件を満たす文字列を抽出できるか否かを判定する判定部と、
前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出部と、
前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、発話を利用者の意図を示す文字列へと変換するように学習が行われた学習器を用いて、前記利用者から受付けた発話を当該利用者の意図を示す文字列へと変換する変換部と、
前記抽出部により抽出された文字列、または、前記変換部により変換された文字列の少なくとも一方を用いて、前記発話に対する応答を生成する生成部と
を有することを特徴とする生成装置。
【請求項１１】
前記変換部は、前記利用者から受付けた発話を前記利用者の意図を示す文字列であって、前記所定の条件を満たす文字列へと変換する
ことを特徴とする請求項１０に記載の生成装置。
【請求項１２】
前記変換部は、前記所定の条件として、検索対象の属性を示す文字列へと変換し、
前記生成部は、前記変換部により変換された文字列を検索クエリとする検索処理の結果に基づいて、前記発話に対する応答を生成する
ことを特徴とする請求項１１に記載の生成装置。
【請求項１３】
前記利用者から受付けた発話が属する分野を特定する特定部
を有し、
前記変換部は、利用者の意図を示す文字列であって、前記特定部により特定された分野に応じた文字列へと変換するように学習が行われた学習器を用いて、前記利用者から受付けた発話を当該利用者の意図を示す文字列へと変換する
ことを特徴とする請求項１０〜１２のうちいずれか１つに記載の生成装置。
【請求項１４】
生成装置が実行する生成方法であって、
利用者から受付けた発話から所定の条件を満たす文字列を抽出できるか否かを判定する判定工程と、
前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出工程と、
前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、当該発話の内容に基づいて、予め設定された文字列の候補の中から前記応答の生成に用いる文字列を選択する選択工程と、
前記抽出工程により抽出された文字列、または、前記選択工程により選択された文字列の少なくとも一方を用いて、前記発話に対する応答を生成する生成工程と
を含むことを特徴とする生成方法。
【請求項１５】
利用者から受付けた発話から所定の条件を満たす文字列を抽出できるか否かを判定する判定手順と、
前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出手順と、
前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、当該発話の内容に基づいて、予め設定された文字列の候補の中から前記応答の生成に用いる文字列を選択する選択手順と、
前記抽出手順により抽出された文字列、または、前記選択手順により選択された文字列の少なくとも一方を用いて、前記発話に対する応答を生成する生成手順と
をコンピュータに実行させることを特徴とする生成プログラム。
【請求項１６】
生成装置が実行する生成方法であって、
利用者から受付けた発話から所定の条件を満たす文字列を抽出できるか否かを判定する判定工程と、
前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出工程と、
前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、発話を当該発話が示す利用者の意図を示す文字列へと変換するように学習が行われた学習器を用いて、前記利用者から受付けた発話を当該利用者の意図を示す文字列へと変換する変換工程と、
前記抽出工程により抽出された文字列、または、前記変換工程により変換された文字列の少なくとも一方を用いて、前記発話に対する応答を生成する生成工程と
を含むことを特徴とする生成方法。
【請求項１７】
利用者から受付けた発話から所定の条件を満たす文字列を抽出できるか否かを判定する判定手順と、
前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出手順と、
前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、発話を当該発話が示す利用者の意図を示す文字列へと変換するように学習が行われた学習器を用いて、前記利用者から受付けた発話を当該利用者の意図を示す文字列へと変換する変換手順と、
前記抽出手順により抽出された文字列、または、前記変換手順により変換された文字列の少なくとも一方を用いて、前記発話に対する応答を生成する生成手順と
をコンピュータに実行させることを特徴とする生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生成装置、生成方法および生成プログラムに関する。
【背景技術】
【０００２】
従来、利用者の発話に対して応答を出力する技術が知られている。このような技術の一例として、発話や応答の内容に応じたドメインを特定し、特定したドメインにおける発話の意図を解析し、解析結果に応じて、応答として出力する情報を検索する技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−９９３８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来技術では、適切な応答を出力することができない恐れがある。
【０００５】
例えば、特定したドメインにおける発話の意図を解析する技術として、スロットフィリングと呼ばれる技術が知られている。このようなスロットフィリングの技術においては、発話文から利用者の意図を示す単語等を応答の生成に用いる情報として抽出し、抽出した情報を用いて応答の生成を行う。しかしながら、このような技術では、利用者の意図を示す単語が含まれない発話文、すなわち、利用者の意図を示唆するに留まるような発話文からは、応答の生成に用いる情報を抽出することができない。
【０００６】
本願は、上記に鑑みてなされたものであって、利用者の意図を反映させた応答を出力することを目的とする。
【課題を解決するための手段】
【０００７】
本願に係る生成装置は、利用者から受付けた発話から所定の条件を満たす文字列を抽出できるか否かを判定する判定部と、前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出部と、前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、当該発話の内容に基づいて、予め設定された文字列の候補の中から前記応答の生成に用いる文字列を選択する選択部と、前記抽出部により抽出された文字列、または、前記選択部により選択された文字列の少なくとも一方を用いて、前記発話に対する応答を生成する生成部とを有することを特徴とする。
【発明の効果】
【０００８】
実施形態の一態様によれば、利用者の意図を反映させた応答を出力することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、第１の実施形態に係る情報提供装置が実行する処理の一例を示す図である。
【図２】図２は、第１の実施形態に係る情報提供装置の構成例を示す図である。
【図３】図３は、第１の実施形態に係るフレームデータベースに登録される情報の一例を示す図である。
【図４】図４は、第１の実施形態に係る候補データベースに登録される情報の一例を示す図である。
【図５】図５は、第１の実施形態に係る情報提供装置が実行する決定処理の流れの一例を示すフローチャートである。
【図６】図６は、第２の実施形態に係る情報提供装置が実行する処理の一例を示す図である。
【図７】図７は、第２の実施形態に係る情報提供装置の構成例を示す図である。
【図８】図８は、第２の実施形態に係るモデルデータベースに登録される情報の一例を示す図である。
【図９】図９は、第２の実施形態に係る情報提供装置が実行する決定処理の流れの一例を示すフローチャートである。
【図１０】図１０は、ハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本願に係る生成装置、生成方法および生成プログラムを実施するための形態（以下、「実施形態」と記載する。）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る生成装置、生成方法および生成プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略する。
【００１１】
［第１の実施形態］
〔１−１．第１の実施形態に係る情報提供装置の概要〕
まず、図１を用いて、生成装置の一例となる情報提供装置が実行する生成処理の一例について説明する。図１は、第１の実施形態に係る情報提供装置が実行する処理の一例を示す図である。なお、以下の説明では、情報提供装置１０が実行する処理として、利用者Ｕの発話に対する応答を生成し、出力する処理の一例について説明する。すなわち、情報提供装置１０は、利用者Ｕとの対話を実現する対話システムである。
【００１２】
情報提供装置１０は、インターネット等の所定のネットワークＮ（例えば、図２を参照。）を介して、利用者端末１００や検索サーバ２００と通信可能な情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。なお、情報提供装置１０は、ネットワークＮを介して、任意の数の利用者端末１００や検索サーバ２００と通信可能であってよい。
【００１３】
利用者端末１００は、対話システムで対話を行う利用者Ｕが使用する情報処理装置であり、ＰＣ（Personal  Computer）、サーバ装置、スマートデバイスといった情報処理装置により実現される。例えば、利用者端末１００は、利用者Ｕが発話した音声を取得すると、所定の外部サーバ（図示は、省略）に音声データを出力し、利用者Ｕの発話のテキストデータを取得する。そして、利用者端末１００は、テキストデータを発話として情報提供装置１０へと送信する。なお、利用者端末１００は、利用者Ｕが入力した文字列を発話として情報提供装置１０へと送信してもよい。
【００１４】
このような場合、情報提供装置１０は、発話として受信したテキストデータを解析し、内容を推定する。そして、情報提供装置１０は、推定した内容に応じて応答となるテキストを生成し、生成したテキストデータやテキストデータを音声として出力するための音声データを利用者端末１００へと送信する。この結果、利用者端末１００は、各種テキストの読み上げ技術や、受信した音声データを再生することで、利用者Ｕとの対話を実現する。
【００１５】
検索サーバ２００は、各種のウェブ検索等を行う情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。例えば、検索サーバ２００は、検索対象となる施設の種別を示す文字列（例えば、「レストラン」や「ジム」等）、および施設の位置を示す文字列（例えば、「東京」や「大阪」等）を受付けると、受付けた文字列を用いたウェブ検索を行い、検索結果を情報提供装置１０へと提供する。
【００１６】
なお、検索サーバ２００は、天気予報に関する情報を配信するサービス等、任意のサービスを提供するサーバ装置であってもよい。また、検索サーバ２００は、それぞれ異なる複数のサービスを提供する複数のサーバ装置によって実現されてもよい。また、検索サーバ２００は、例えば、ＡＰＩ（Application  Programming  Interface）を介して、情報提供装置１０から受付けた各種文字列に応じた情報を生成し、生成した情報を情報提供装置１０へと提供してもよい。このような情報提供装置１０から受付けた各種の情報を用いて、情報提供装置１０は、利用者Ｕに対する応答を生成することとなる。
【００１７】
〔１−２．情報提供装置が実行するスロットフィリングについて〕
以下、情報提供装置１０が実行する対話処理の基本的な流れについて説明する。なお、以下の説明は、実施形態を限定するものではなく、情報提供装置１０は、以下に説明するスロットフィリングの技術を用いて利用者Ｕの発話に対する応答を生成するのであれば、以下に説明する対話処理以外にも、任意の態様で応答の生成を行ってよい。
【００１８】
例えば、情報提供装置１０は、利用者Ｕの発話を受付けると、発話の内容が天気に関する内容であるか、時計に関する内容であるかというように、発話の内容が属するドメインを推定するドメイン推定処理を実行する。続いて、情報提供装置１０は、発話のドメインを推定した場合には、推定したドメインに応じた利用者の発話の内容を推定する言語理解処理を実行する。例えば、情報提供装置１０は、言語理解処理として、発話が示す利用者Ｕの意図を推定し、推定した意図を示す文字列を意図情報として生成する。そして、情報提供装置１０は、生成した意図情報を用いて、発話に対する応答を生成し、生成した応答を利用者端末１００から利用者Ｕに提供する。なお、このようなドメインの推定、意図情報の生成および応答の生成は、それぞれ個別のモデルにより実現されてもよい。
【００１９】
ここで、情報提供装置１０は、所謂スロットフィリングの技術を用いて、利用者Ｕに対する応答を生成する。例えば、情報提供装置１０は、所定の条件を有する意図情報がスロット値として格納される１つ以上のスロットを含むフレームを複数記憶する。そして、情報提供装置１０は、発話から生成した意図情報を対応するスロットに格納し、全てのスロットに意図情報が格納されたフレームが存在する場合は、かかるフレームと対応する処理を実行し、実行結果を示す応答の生成を行う。
【００２０】
例えば、情報提供装置１０は、場所を示す文字列がスロット値として登録されるスロットと、施設のタイプを示す文字列がスロット値として登録されるスロットとを有するフレーム＃１を記憶する。このような場合、情報提供装置１０は、発話の文字列から場所を示す文字列や施設の対応を示す文字列をスロット値（すなわち、利用者Ｕの意図を示す意図情報）として検索する。すなわち、情報提供装置１０は、発話の文字列から、所定の条件を満たす文字列をスロット値として抽出する。このような文字列の抽出は、例えば、形態素解析や辞書データとの比較による単語の意味特定技術等により実現可能である。
【００２１】
また、情報提供装置１０は、利用者Ｕとの対話を随時進めることで、フレームに含まれる各スロットに対応するスロット値を格納する。すなわち、情報提供装置１０は、利用者Ｕから受付けた複数の発話から、所定の条件を満たす文字列をスロット値として抽出する。そして、情報提供装置１０は、フレーム＃１に含まれる全てのスロットにスロット値が格納された場合は、格納されたスロット値を用いて、フレーム＃１と対応する処理を実行し、実行結果を示す応答を生成する。
【００２２】
例えば、情報提供装置１０は、施設の検索処理と対応するフレーム＃１に、場所を示すスロット値「東京」と、施設のタイプを示すスロット値「レストラン」とが格納された場合は、「東京」にある施設のうち、タイプが「レストラン」である施設のウェブ検索を実行する。例えば、情報提供装置１０は、スロット値を検索サーバ２００に検索クエリとして出力することで、ウェブ検索の結果を取得する。そして、情報提供装置１０は、取得したウェブ検索の結果を示す応答を生成する。
【００２３】
〔１−３．生成処理について〕
ここで、従来技術では、応答に含まれる文字列から所定の条件を満たす文字列を意図情報、すなわちスロット値として抽出する。しかしながら、このような技術では、利用者の意図を示す単語が含まれない発話文、すなわち、利用者の意図を示唆するに留まるような発話文からは、応答の生成に用いる情報を抽出することができない。この結果、意図を示すスロット値を適切に抽出できず、利用者Ｕの所望に応じた応答を生成することができなくなる恐れがある。
【００２４】
そこで、第１の実施形態に係る情報提供装置１０は、以下の生成処理を実行する。まず、情報提供装置１０は、利用者Ｕから受付けた発話が所定の条件を満たすか否かを判定する。例えば、情報提供装置１０は、発話から所定の条件を満たす文字列を抽出できるか否かを判定する。より具体的には、情報提供装置１０は、発話の文字列に利用者の意図を示す文字列が含まれているか否か、すなわち、発話から利用者の意図を示すスロット値を抽出可能であるか否かを判定する。そして、情報提供装置１０は、発話から所定の条件を満たす文字列を抽出できると判定した場合には、応答の生成に用いる文字列を発話から抽出する。すなわち、情報提供装置１０は、スロット値となる文字列を発話の文字列の中から抽出する。
【００２５】
一方、情報提供装置１０は、発話が所定の条件を満たさないと判定された場合、すなわち、発話から所定の条件を満たす文字列を抽出できない場合には、当該発話の内容に基づいて、予め設定された文字列の候補の中から応答の生成に用いる文字列を選択する。例えば、情報提供装置１０は、場所や施設タイプ等といった所定の条件を満たすスロット値として格納されうる文字列の候補を記憶する。そして、情報提供装置１０は、利用者Ｕから受付けた発話の内容に基づいて、各候補が利用者Ｕの意図を示す確度の算出を行う。例えば、情報提供装置１０は、発言とその発言が示す利用者Ｕの意図との間の関係性を学習した学習器を用いて、利用者Ｕの発言に基づき、スロット値の候補が利用者Ｕの発言の意図を示す確度を推定する。
【００２６】
そして、情報提供装置１０は、確度が所定の条件を満たすスロット値の候補を選択する。例えば、情報提供装置１０は、確度の値が所定の閾値（例えば、「８０」）を超えたスロット値の候補を選択してもよい。また、例えば、情報提供装置１０は、あるスロットに格納されうる文字列のうち、確度の値が最も高い候補を選択してもよい。そして、情報提供装置１０は、選択した候補を対応するスロットのスロット値として格納する。
【００２７】
その後、情報提供装置１０は、抽出された文字列、または、選択された文字列を用いて、発話に対する応答を生成する。例えば、情報提供装置１０は、あるフレームに含まれる全てのスロットにスロット値が格納された場合は、そのスロット値を用いて、フレームと対応する内容の情報検索を実行する。そして、情報提供装置１０は、情報検索の結果を示す応答を生成し、生成した応答を利用者端末１００へと送信する。
【００２８】
例えば、情報提供装置１０は、天候情報の検索と対応するフレームの全てのスロットにスロット値が格納された場合は、格納された全てのスロット値と対応する天候情報を検索する。このようなスロット値は、例えば、日時や地域を示す文字列が対応する。また、例えば、情報提供装置１０は、施設の検索と対応するフレームの全てのスロットにスロット値が格納された場合は、格納された全てのスロット値と対応する施設の情報を検索する。このようなスロット値は、例えば、日時、地域、施設の種別等を示す文字列が対応する。
【００２９】
このように、情報提供装置１０は、発話が利用者Ｕの意図を直接的に示さない場合や発話にスロット値となる文字列が含まれない場合等、発話がスロット値の抽出に適するか否かを判定する。そして、情報提供装置１０は、発話がスロット値の抽出に適する場合は、発話からスロット値の抽出を行い、適さない場合には、スロット値の候補の中から、応答の生成に用いるスロット値の選択を行う。例えば、情報提供装置１０は、発話の内容に基づいて、スロット値の候補の中から、利用者Ｕのニーズを満たす確度が最も高い候補をスロット値として選択する。この結果、情報提供装置１０は、利用者Ｕの意図を間接的に示す発話や、スロット値となる文字列が含まれない発話からも、適切に応答を生成することができる。
【００３０】
〔１−４．生成処理の一例について〕
以下、図１を用いて、情報提供装置１０が実行する生成処理の流れの一例について説明する。まず、情報提供装置１０は、利用者端末１００から発話＃１を受付ける。このような場合、情報提供装置１０は、発話＃１が属するドメインを推定する（ステップＳ２）。例えば、情報提供装置１０は、発話＃１が天気に関するドメイン＃１に属するものであるか、レストランやジム等の施設に関するドメイン＃２に属するものであるか等を判定する。なお、このようなドメイン推定処理は、任意の分類技術により実現可能である。例えば、情報提供装置１０は、ＳＶＭ（Support  Vector  Machine）やＤＮＮ（Deep  Neural  Network）等、任意の学習器又は分類器等のモデルを用いて、発話が属するドメインの推定を行ってよい。
【００３１】
続いて、情報提供装置１０は、発話から意図情報、すなわちスロット値を抽出可能か否かを判定する（ステップＳ３）。例えば、情報提供装置１０は、発話＃１の文字列にスロット値としての所定の条件を満たす文字列が含まれているか否かを判定しても良い。また、情報提供装置１０は、意図情報を抽出可能な文字列の特徴を学習したモデルを用いて、発話＃１から意図情報を抽出可能であるか否かを判定してもよい。また、例えば、情報提供装置１０は、スロット値としての条件を満たす文字列が所定の数以上含まれる場合は、発話＃１から意図情報を抽出可能であると判定してもよい。なお、情報提供装置１０は、特定されたドメインと対応するモデルを用いて、意図情報を抽出可能であるか否かを判定してもよく、特定されたドメインと対応する意図情報が抽出可能であるか否かを判定してもよい。
【００３２】
そして、情報提供装置１０は、発話＃１から意図情報を抽出可能であると判定した場合には、発話＃１の文字列から所定の条件を満たす文字列を意図情報として抽出する（ステップＳ４）。例えば、情報提供装置１０は、発話＃１が「東京駅近くにレストランある？」などといった文章、すなわち、利用者Ｕの意図を明確に示す文字列（例えば、場所を示す文字列や施設を示す文字列）が含まれている場合には、意図情報を抽出可能であると判定する。そして、情報提供装置１０は、発話＃１から意図情報の抽出を行う。例えば、情報提供装置１０は、フレーム＃１に格納されるスロット値の条件が、場所を示す文字列、および、施設タイプを示す文字列である場合は、発話＃１に含まれる文字列から、場所を示す文字列および施設タイプを示す文字列を抽出する。
【００３３】
この結果、情報提供装置１０は、例えば、場所を示す文字列「東京」と、施設タイプを示す文字列「レストラン」とをスロット値として発話＃１から抽出する。この結果、情報提供装置１０は、フレーム＃１に各スロット値を格納することとなる。なお、このような文字列の抽出については、ステップＳ２にて特定したドメインごとに異なるモデルや抽出ルールを採用することにより実現されてもよい。また、情報提供装置１０は、ドメインと対応するフレームのスロット値を抽出してもよい。
【００３４】
一方、情報提供装置１０は、発話＃１から意図情報を抽出できないと判定した場合は、発話に基づいて、所定の条件を満たす文字列の候補から意図情報を選択する（ステップＳ５）。例えば、情報提供装置１０は、発話＃１が「おなかへったなー」等といった文章、すなわち、利用者Ｕの意図を示唆する文字列である場合には、意図情報を抽出できないと判定する。このような場合、情報提供装置１０は、あらかじめ登録された文字列の中から、利用者Ｕの意図を示す確度が高い文字列を選択する。
【００３５】
より具体的には、情報提供装置１０は、フレームのスロット値として登録されうる文字列、すなわち、フレームのスロット値としての条件を満たす文字列の候補の中から、応答の生成に用いる文字列の選択を行う。例えば、情報提供装置１０は、フレーム＃１に格納されるスロット値の条件が、場所を示す文字列、および、施設タイプを示す文字列である場合は、場所を示す文字列の複数の候補（以下、「場所候補」と記載する。）と、施設タイプを示す文字列の複数の候補（以下、「施設タイプ候補」と記載する。）とを記憶する。より具体的な例を挙げると、図１に示す例では、情報提供装置１０は、場所候補として「東京」および「大阪」を記憶する。また、情報提供装置１０は、施設タイプ候補として、「レストラン」および「ジム」を記憶する。
【００３６】
このような場合、情報提供装置１０は、利用者Ｕの発話＃１に基づいて、各候補の中から利用者Ｕの意図を示す確度が高い候補を選択する。例えば、情報提供装置１０は、各候補と発話＃１の「おなかへったなー」という発話との間の関係性を示すスコアをそれぞれ算出し、算出したスコアの値に基づいて各候補の確度を算出する。
【００３７】
なお、このようなスコアおよび確度の算出に空いては、任意の意図推定技術が採用可能である。例えば、情報提供装置１０は、ＤＮＮ等の各種分類器や学習器等といったモデルを用いて、スコアや確度の算出を行ってもよく、連想記憶等の技術を用いて、スコアや確度の算出を行ってよい。すなわち、情報提供装置１０は、各候補が、発話＃１を受付けた際の利用者Ｕの意図を示す確度を算出するのであれば、任意の手法により確度の算出を行ってよい。また、情報提供装置１０は、特定した発話＃１のドメインと対応する候補の中から、スロット値の選択を行ってもよい。すなわち、情報提供装置１０は、特定されたドメインに応じた条件を満たすスロット値の候補の中から、スロット値の選択を行ってもよい。
【００３８】
また、情報提供装置１０は、利用者Ｕの発話のみならず、利用者Ｕに関する他の情報を考慮して、各候補が利用者Ｕの意図を示す確度の算出を行ってもよい。例えば、情報提供装置１０は、利用者端末１００がＧＰＳ（Global  Positioning  System）等の位置測位システムを用いて特定した利用者端末１００の位置を示す位置情報等を取得し、取得した位置情報との関連性を考慮して、各候補の確度の算出を行ってもよい。なお、情報提供装置１０は、位置情報以外にも、利用者Ｕとの過去の対話、利用者Ｕのデモグラフィック属性やバイオグラフィック属性等を考慮して、各候補の確度の算出を行ってもよい。例えば、情報提供装置１０は、発話＃１に先立って取得した発話の内容に基づいて、各候補の確度の算出を行ってもよい。
【００３９】
例えば、施設タイプ候補である「レストラン」と「ジム」とでは、「レストラン」の方が「おなかへったなー」といった発話＃１と関係性が高いと考えられる。また、利用者端末１００の位置情報が「東京駅」を示す場合、場所候補である「東京」と「大阪」とでは、「東京」の方が位置情報「東京駅」との関係性が高いと考えられる。この結果、例えば、情報提供装置１０は、候補「東京」の確度「８０」、候補「大阪」の確度「１０」、候補「レストラン」の確度「８０」、および候補「ジム」の確度「１０」を算出する。
【００４０】
そして、情報提供装置１０は、例えば、確度の値が所定の閾値を超えた候補のうち、確度の値が最も高い確度をスロット値として選択する。例えば、情報提供装置１０は、場所を示す文字列「東京」と、施設タイプを示す文字列「レストラン」とをスロット値として選択する。この結果、情報提供装置１０は、フレーム＃１に各スロット値を格納することとなる。
【００４１】
このように、フレーム＃１の各スロットにスロット値が格納された場合は、情報提供装置１０は、フレーム＃１に対応する処理を、格納されたスロット値を用いて実行する。例えば、情報提供装置１０は、スロット値を用いて、応答を生成するための情報を検索する（ステップＳ６）。より具体的な例を挙げると、情報提供装置１０は、場所を示すスロット値「東京」と、施設タイプを示すスロット値「レストラン」とを用いて、東京にあるレストランの情報を検索サーバ２００に検索させる。そして、情報提供装置１０は、検索結果として、東京にあるレストランの情報を取得する（ステップＳ７）。
【００４２】
このような場合、情報提供装置１０は、検索サーバ２００から取得した情報を用いて、応答の生成を行う（ステップＳ８）。例えば、情報提供装置１０は、東京にあるレストランを利用者Ｕの紹介する内容の応答を生成する。そして、情報提供装置１０は、応答を利用者端末１００に出力する。この結果、利用者端末１００は、利用者Ｕに対して、利用者Ｕの発話の意図に基づく応答を出力することができる（ステップＳ９）。
【００４３】
なお、上述したスロット値の候補から、利用者Ｕの発言に基づいてスロット値を選択する処理は、例えば、発話に含まれる文字列から短縮語等の文字列を特定し、特定した文字列を正規化辞書等でスロット値へと変換する処理や、過去の発話との組合せに基づいて、スロット値の抽出を行う処理とは異なるものである。すなわち、情報提供装置１０は、予め準備されたスロット値の候補の中から、発言に応じてスロット値の選択を行うので、短縮語すら含まれない発言を受付けた場合や、過去の発話が存在しない場合等にも、適切に応答を出力することができる。
【００４４】
また、上述した発話の文章は、あくまで一例であり、情報提供装置１０は、任意の発言の内容に基づいて、スロット値の候補からスロット値を選択してよい。例えば、情報提供装置１０は、「腰が痛い」といった発話を受付けた場合は、施設タイプの候補の中から「整体病院」等といったスロット値、すなわち、発話の内容と連想関係を有するスロット値を選択し、選択したスロット値「整体病院」を用いて、利用者Ｕの近傍にある整体病院の情報を応答として提供してもよい。なお、このようなスロット値の選択は、連想関係を学習させたモデルにより実現可能である。
【００４５】
〔１−５．候補を選択する処理について〕
ここで、情報提供装置１０は、文字列の候補の中からスロット値を選択する際に、各種の情報を用いて、選択を行ってよい。例えば、情報提供装置１０は、発話＃１の内容と、発話＃１よりも前に利用者Ｕから受付けた発話の内容とに基づいて、応答の生成に用いる文字列、すなわち、スロット値を選択してもよい。例えば、情報提供装置１０は、利用者Ｕが発話＃１よりも前の所定の期間内に、酒類に関する発言を行っており、発話＃１で「おなかがへったなー」といった飲食に関連する発話を行った場合には、候補「レストラン」よりも、候補「バー」の確度が高くなるように、各候補の確度を算出してもよい。また、情報提供装置１０は、利用者Ｕの発話を受付ける度に、発話と関連する候補の確度を徐々に上昇させ、確度が所定の閾値を超えた候補から、スロット値として選択してもよい。
【００４６】
また、情報提供装置１０は、発話の内容と、利用者Ｕの属性とに基づいて、スロット値を選択してもよい。例えば、情報提供装置１０は、「おなかへったなー」といった発話をおこなった利用者Ｕが男性である場合には、比較的ボリュームが多い食事を提供するレストランを検索し、利用者Ｕが女性である場合は、カフェなどの雰囲気が良いレストランの検索を行ってもよい。
【００４７】
また、情報提供装置１０は、上述した情報以外にも、利用者Ｕの住所や年齢等といったデモグラフィック属性や趣味趣向等のサイコグラフィック属性に基づいて、確度の算出を行ってもよい。例えば、情報提供装置１０は、利用者Ｕの各種属性に基づいて、利用者Ｕの意図をより強く示すと推定される候補を優先的に選択するように、確度を算出する際の重みづけを設定してもよい。また、情報提供装置１０は、利用者Ｕが発話＃１を発言した時間帯等、他の情報を考慮して、スロット値の選択を行ってもよい。
【００４８】
また、情報提供装置１０は、確度の算出対象となるスロット値の候補を発話に応じて動的に変化させてもよい。例えば、情報提供装置１０は、発話の履歴に基づいて、確度の選択対象となる候補の絞り込みを行う。より具体的な例を挙げると、情報提供装置１０は、発話＃１を受付けた場合は、発話＃１よりも前に受け付けた発話との関係性が所定の閾値を超える候補（確度が所定の閾値を超える候補）のみを第１選択対象として選択する。また、情報提供装置１０は、発話＃１が属するドメインを特定し、第１選択対象のうち特定したドメインと関連する候補を第２選択対象として選択する。
【００４９】
そして、情報提供装置１０は、選択した第２選択対象と発話＃１との関係性に基づいて、第２選択対象の確度を算出してもよい。このように、選択対象となる候補を絞り込むことにより、確度の算出やスロット値の選択に計算量が大きくなるような場合にも、現実的な時間内にスロット値の選択を行うことができる。なお、情報提供装置１０は、例えば、第１選択対象の数が所定の閾値を下回る場合は、第１選択対象の中からスロット値の選択を行ってもよい。また、情報提供装置１０は、発言＃１が属するドメインと対応するスロット値の候補を第１選択対象とし、第１選択対象の中から、過去の発話に基づいて、第２選択対象の選択を行ってもよい。
【００５０】
なお、情報提供装置１０は、利用者Ｕの各種属性や位置情報に基づいて、スロット値の候補の絞り込みを行ってもよい。
【００５１】
〔１−６．フレームについて〕
ここで、情報提供装置１０は、複数のフレームについて上述した処理を実行し、全てのスロット値が格納されたフレームと対応する処理を実行すればよい。ここで、情報提供装置１０は、情報検索と対応するフレームのみならず、所定の内容の応答を出力するフレームを記憶し、そのフレームのスロット値が全て格納された場合は、予め定められた所定の内容の応答を出力してもよい。
【００５２】
また、情報提供装置１０は、発話＃１からスロット値を抽出した際や、候補の選択を行った際に、全てのスロット値が格納されたフレームが存在しない場合は、利用者Ｕにさらなる発話を求める応答を出力してもよい。例えば、情報提供装置１０は、格納されていないスロット値の数が最も少ないフレームや、最も確度が高い候補がスロット値として登録されたフレームを特定し、特定したフレームのスロット値の発言を誘導する内容の応答を出力してもよい。
【００５３】
また、情報提供装置１０は、利用者Ｕの発話が示す意図と関連する格納性が所定の閾値を超える候補が存在しない場合、すなわち、利用者Ｕの発話から各候補の確度を算出した際に、算出する前と後とで確度の変化が所定の閾値を超える候補が存在しなかった場合には、発話の意図を利用者Ｕに対して問い合わせる内容の応答（以下、「問合せ」と記載する。）を出力してもよい。また、情報提供装置１０は、発話が示す利用者Ｕの意図と関連する可能性が所定の閾値を超える候補の数が所定の数を超える場合には、発話の意図を絞り込むための問い合わせを出力してもよい。例えば、情報提供装置１０は、発話＃１を受付けた際に、候補「レストラン」と候補「カフェ」との確度が所定の閾値を超えた場合は、「レストランにしますか？カフェにしますか？」等といった問い合わせを出力してもよい。
【００５４】
〔１−７．候補について〕
ここで、情報提供装置１０は、利用者Ｕとの対話を通じて、随時スロット値の候補の登録を行ってもよい。例えば、情報提供装置１０は、発話からスロット値を抽出可能であると判定した場合、発話からスロット値となる文字列を抽出する。また、情報提供装置１０は、抽出した文字列をスロット値としてフレームのスロットに格納するとともに、抽出した文字列が、予め登録されたスロット値の候補の中に含まれているか否かを判定する。そして、情報提供装置１０は、抽出した文字列が、予め登録されたスロット値の候補の中に含まれていないと判定した場合は、抽出した文字列をスロット値の新たな候補として登録してもよい。例えば、情報提供装置１０は、場所を示す文字列であるか、施設タイプを示す文字列であるか等、抽出した文字列の種別を特定し、特定した種別と対応するスロット値の候補として登録してもよい。
【００５５】
なお、必ずしも必要な処理ではないものの、過去の対話履歴が存在する場合、情報提供装置１０は、過去の対話履歴に含まれる文字列をスロット値の候補として登録してもよい。例えば、情報提供装置１０は、過去の発話の中から、スロット値としての条件を満たす文字列の検索を行い、スロット値としての条件を満たす文字列を特定した場合は、特定した文字列をスロット値の候補として登録してもよい。かかる処理は、過去の発話の履歴からスロット値となる文字列を抽出する処理とは異なり、過去の発話の履歴からスロット値となりえる文字列を抽出して保持しておくことで、候補の数を拡充し、利用者の意図の推定精度を向上させるものである。
【００５６】
また、情報提供装置１０は、ＳＮＳ（Social  Networking  Service）に投稿された各種の文字列からスロット値の候補となる文字列を特定してもよい。例えば、情報提供装置１０は、「腰」と「整体」等といった同一の投稿内に含まれる文字列同士の共起情報から、文字列の属性を推定し、推定した属性を有するスロット値の候補として登録してもよい。また、このような投稿内における文字列同士の共起情報は、発話と各候補との関係性を学習する際の学習データとして採用されてもよい。すなわち、情報提供装置１０は、同一の投稿内に含まれる文字列同士の共起性の特徴を学習した学習器を用いて、発話からスロット値の確保の確度の算出を行ってもよい。
【００５７】
また、情報提供装置１０は、スロット値を抽出可能であると判定された発話の文字列を解析し、解析結果から、スロット値として抽出されやすい文字列と抽出されにくい文字列とを特定する。そして、情報提供装置１０は、スロット値の候補のうち、スロット値として抽出されやすい文字列については、優先的に選択されるようにし、スロット値として抽出されにくい文字列については、選択されにくくする若しくは候補から除外してもよい。
【００５８】
〔１−８．その他〕
なお、情報提供装置１０は、上述した処理以外にも、任意の処理を合わせて実行してもよい。例えば、上述した説明では、情報提供装置１０は、発話の文字列からスロット値の抽出や選択を行った。しかしながら、実施形態は、これに限定されるものではない。例えば、情報提供装置１０は、発話の文字列を作成するような音声認識を実行せず、音声の波形データから直接スロット値の抽出や選択を行ってもよい。例えば、情報提供装置１０は、スロット値として登録される波形の特徴をスロット値の条件として保持し、発話の音声の波形から、スロット値の条件として保持した特徴を有する波形部分を抽出し、抽出した波形部分をスロット値としてもよい。また、情報提供装置１０は、音声の波形と、文字列または音声の波形により実現されるスロット値の候補との間の関係性の特徴を学習したＤＮＮ等を用いて、発話の音声波形から、スロット値の選択を行ってもよい。
【００５９】
また、情報提供装置１０は、発話＃１からスロット値を抽出可能であるか否かを判定する処理と、発話＃１からスロット値を抽出可能である場合に、発話＃１からスロット値を抽出する処理と、発話＃１からスロット値を抽出できない場合に、スロット値の候補の中からスロット値を選択する処理とを実行するように、ＤＮＮ等のモデルの学習を行い、学習したモデルを用いて、上述した処理を実行してもよい。また、情報提供装置１０は、発話＃１からスロット値を抽出可能であるか否かを判定する処理と、発話＃１からスロット値を抽出可能である場合に、発話＃１からスロット値を抽出する処理とを実行するモデルの学習を行い、学習したモデルを用いて、上述した処理を実行してもよい。このようなモデルを用いる場合、情報提供装置１０は、モデルがスロット値を抽出できなかった場合に、スロット値の候補の中から発話に基づく選択を実行することとなる。
【００６０】
〔２．情報提供装置の構成〕
以下、上記した情報提供装置１０が有する機能構成の一例について説明する。図２は、第１の実施形態に係る情報提供装置の構成例を示す図である。図２に示すように、情報提供装置１０は、通信部２０、記憶部３０、および制御部４０を有する。
【００６１】
通信部２０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。そして、通信部２０は、ネットワークＮと有線または無線で接続され、利用者端末１００との間で情報の送受信を行う。
【００６２】
記憶部３０は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部３０は、フレームデータベース３１および候補データベース３２を記憶する。
【００６３】
フレームデータベース３１には、各フレームの情報が登録されている。例えば、図３は、第１の実施形態に係るフレームデータベースに登録される情報の一例を示す図である。図３に示す例では、フレームデータベースには、「フレームＩＤ（Identifier）」、「実行処理」、「スロット名」および「属性情報」といった項目を有する情報が登録される。
【００６４】
ここで、「フレームＩＤ」とは、フレームの識別子である。また、「実行処理」とは、対応付けられた「フレームＩＤ」が示すフレームの全てのスロットにスロット値が格納された場合に実行する処理の内容を示す情報である。また、「スロット名」とは、対応付けられた「フレームＩＤ」が示すフレームのスロットを示す情報である。また、「属性情報」とは、対応付けられた「スロット名」が示すスロットにスロット値として格納される文字列等の情報の属性、すなわち、条件を示す情報である。
【００６５】
例えば、図３に示す例では、フレームデータベース３１には、フレームＩＤ「フレーム＃１」、実行処理「処理＃１」、スロット名「場所」および属性情報「属性情報＃場所」等といった情報が対応付けて登録されている。このような情報は、フレームＩＤ「フレーム＃１」が示すフレームに、スロット名「場所」が示すスロットが含まれており、そのスロットに属性情報「属性情報＃場所」が示す条件を満たす文字列がスロット値として登録される旨を示す。また、このような情報は、フレームＩＤ「フレーム＃１」が示すフレームの全てのスロットにスロット値が登録された場合には、実行処理「処理＃１」が示す処理の実行結果が応答として出力される旨を示す。
【００６６】
なお、図３に示す例では、「フレーム＃１」、「処理＃１」、「属性情報＃場所」等といった概念的な値を記載したが、実際には、フレームデータベース３１には、フレームを識別する文字列、実行処理の内容を示す情報やスクリプト等のプログラム、スロット値となる情報の条件を示す情報等が登録されることとなる。
【００６７】
図２に戻り、説明を続ける。候補データベース３２には、スロット値の候補が登録される。例えば、図４は、第１の実施形態に係る候補データベースに登録される情報の一例を示す図である。図４に示すように、候補データベース３２には、「属性情報」および「候補」といった項目を有する情報が登録される。
【００６８】
ここで、「属性情報」とは、対応付けられた候補が満たす条件、すなわち、対応付けられた候補の属性を示す情報である。また、「候補」とは、スロット値として選択される情報の候補である。例えば、図４に示す例では、属性情報「属性情報＃場所」と候補「東京、大阪」が対応付けて登録されている。このような情報は、候補データベース３２が、属性情報「属性情報＃場所」が示す条件を満たすスロット値の候補として、候補「東京、大阪」を記憶している旨を示す。
【００６９】
図２に戻り、説明を続ける。制御部４０は、コントローラ（controller）であり、例えば、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等のプロセッサによって、情報提供装置１０内部の記憶装置に記憶されている各種プログラムがＲＡＭ等を作業領域として実行されることにより実現される。また、制御部４０は、コントローラ（controller）であり、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されてもよい。図２に示すように、制御部４０は、分類部４１、判定部４２、抽出部４３、選択部４４、生成部４５、および提供部４６を有する。
【００７０】
分類部４１は、利用者Ｕの発話を対応するドメインに分類する。すなわち、分類部４１は、利用者Ｕの発話が属するドメインを特定する。例えば、分類部４１は、利用者端末１００から、利用者Ｕが発声した音声を変換したテキストデータを受付ける。なお、例えば、分類部４１は、利用者端末１００から利用者Ｕが発声した音声データを受付け、受付けた音声データをテキストデータに変換してもよい。また、分類部４１は、音声データをテキストデータへと変換する所定の外部サーバを介して、利用者端末１００から利用者Ｕが発声した音声のテキストデータを受付けてもよい。
【００７１】
このような場合、分類部４１は、利用者Ｕの発話の内容と対応するドメインを特定する。例えば、分類部４１は、各種の文字解析技術や分類技術を用いて、利用者Ｕの発話の内容やどのような分野に属する内容であるかを判定する。なお、分類部４１は、発話の分類処理を、ＳＶＭ等の任意の分類モデルにより実現してよい。
【００７２】
判定部４２は、利用者Ｕから受付けた発話が所定の条件を満たすか否かを判定する。より具体的には、例えば、判定部４２は、利用者Ｕから受付けた発話から、スロット値を抽出することができるか否かを判定する。なお、このような判定処理は、発話のドメインを分類する際と同様に、各種任意の分類モデルにより実現可能である。
【００７３】
抽出部４３は、発話が所定の条件を満たすと判定された場合には、発話に対する応答の生成に用いる文字列を発話から抽出する。より具体的には、抽出部４３は、応答の生成に用いる文字列として、発話から所定の条件を満たす文字列を抽出する。例えば、抽出部４３は、フレームデータベース３１に格納された属性情報を参照することで、スロット値として格納されうる文字列が満たす属性を特定する。そして、抽出部４３は、特定した属性を有する文字列を、発話の中から抽出する。その後、抽出部４３は、抽出した文字列をスロット値としてフレームに格納する。例えば、抽出部４３は、フレームＩＤと、スロット名と、抽出したスロット値とを対応付けて所定のメモリに格納する。
【００７４】
選択部４４は、発話が所定の条件を満たさないと判定された場合には、発話の内容に基づいて、予め設定された文字列の候補の中から応答の生成に用いる文字列を選択する。例えば、選択部４４は、候補のうち、発話が示す利用者の意図と関連する可能性が所定の閾値を超える候補を、応答の生成に用いる文字列、すなわちスロット値として選択する。そして、選択部４４は、フレームＩＤと、スロット名と、選択したスロット値とを対応付けて所定のメモリに格納する。
【００７５】
例えば、選択部４４は、発話と、利用者Ｕの意図との間の関係性を学習したモデルを用いて、候補データベース３２に格納された各候補と、発話との間の関係性を示すスコアを算出し、算出したスコアの値に基づいて、各候補が、利用者Ｕの意図を示す確度を算出する。そして、選択部４４は、確度が所定の閾値を超えた候補をスロット値として選択する。また、選択部４４は、選択したスロット値の属性情報を候補データベース３２から特定し、特定した属性情報を有するスロット値として、各フレームのスロットに選択したスロット値を格納する。すなわち、選択部４４は、所定の条件を満たす文字列の候補の中から、応答の生成に用いる文字列を選択する。
【００７６】
なお、スロット値を格納したフレームに対応する処理の内容が、スロット値を用いた検索であった場合、スロット値は、検索対象の属性を示す検索クエリとなる。このため、選択部４４は、所定の条件として、検索対象の属性を示す文字列の候補の中から、応答の生成に用いる文字列、すなわちスロット値の選択を行うこととなる。
【００７７】
また、選択部４４は、分類部４１によって発話が分類された分野に応じた条件を満たす文字列の候補の中から、応答の生成に用いる文字列を選択してもよい。例えば、選択部４４は、分類部４１によって発話が分類されたドメインと対応する候補を選択し、選択した候補の中から、発話に基づいて、利用者Ｕの意図を示す確度が高い候補をスロット値として選択してもよい。
【００７８】
また、選択部４４は、発話の内容と、その発話よりも前に利用者Ｕから受付けた発話の内容とに基づいて、応答の生成に用いる文字列を候補の中から選択してもよい。すなわち、選択部４４は、利用者Ｕとの過去の対話に基づいて、スロット値の候補の絞り込みを行い、絞り込んだスロット値の候補の中から、最後の発話に基づいて、スロット値の選択を行ってもよい。また、選択部４４は、発話の内容と、利用者Ｕの属性とに基づいて、応答の生成に用いる文字列を候補から選択してもよい。例えば、選択部４４は、利用者Ｕの属性に基づいて、スロット値の候補の絞り込みを行ってもよい。
【００７９】
なお、選択部４４は、抽出部４３によってスロット値として抽出された文字列や、過去の発話の中からスロット値としての所定の条件を満たす文字列を抽出し、抽出した文字列がスロット値の候補として候補データベース３２に登録されているか否かを判定する。そして、選択部４４は、抽出した文字列がスロット値の候補として候補データベース３２に登録されていない場合は、かかる文字列を新たなスロット値の候補として候補データベース３２に登録する。この結果、選択部４４は、あらかじめ登録された文字列、抽出された文字列の履歴、または過去の対話履歴に含まれる文字列のうち少なくともいずれか１つを含む文字列の候補の中から、応答の生成に用いる文字列を選択することとなる。
【００８０】
生成部４５は、抽出された文字列、または、選択された文字列を用いて、発話に対する応答を生成する。例えば、生成部４５は、抽出部４３がスロット値を抽出する度に、若しくは、選択部４４がスロット値を選択し、各フレームの全てのスロットにスロット値が格納されたか否かを判定する。そして、生成部４５は、いずれかのフレームの全てのスロットにスロット値が格納された場合は、係るフレームと対応する実行処理の処理内容をフレームデータベース３１から特定し、特定した処理内容の処理を実行する。例えば、生成部４５は、処理対象となるフレームの各スロットのスロット名とスロット値とを対応付けた検索クエリを生成し、生成した検索クエリを検索サーバ２００に出力することで、利用者Ｕの発話に基づく検索処理を実行する。そして、生成部４５は、検索サーバ２００から検索結果を取得すると、取得した検索結果を利用者Ｕに対して説明する内容の応答を生成する。すなわち、生成部４５は、選択された文字列を検索クエリとする検索処理の結果に基づいて、発話に対する応答を生成する。
【００８１】
なお、生成部４５は、全てのスロットにスロット値が格納されたフレームが存在しない場合、もしくは、全てのスロットにスロット値が格納されたフレームが複数存在する場合は、発話の意図を問い合わせる内容の応答を生成してもよい。また、生成部４５は、発話が示す利用者Ｕの意図と関連する可能性が所定の閾値を超える候補が存在しない場合、もしくは、発話が示す利用者Ｕの意図と関連する可能性が所定の閾値を超える候補の数が所定の数を超える場合には、発話の意図を利用者Ｕに対して問い合わせる内容の応答を生成してもよい。
【００８２】
提供部４６は、生成部４５が生成した応答を利用者Ｕに対して提供する。例えば、提供部４６は、生成部４５が生成した応答を利用者端末１００が読み上げるためのデータを生成し、生成したデータを利用者端末１００へと送信する。
【００８３】
〔３．情報提供装置が実行する処理の流れの一例〕
続いて、図５を用いて、情報提供装置１０が実行する処理の流れの一例を説明する。図５は、第１の実施形態に係る情報提供装置が実行する決定処理の流れの一例を示すフローチャートである。例えば、情報提供装置１０は、発話を受付けた場合は、発話が属するドメインを特定する（ステップＳ１０１）。続いて、情報提供装置１０は、発話から利用者の意図を示す意図情報、すなわちスロット値を抽出可能か否かを判定する（ステップＳ１０２）。
【００８４】
そして、情報提供装置１０は、スロット値を抽出可能であると判定した場合は（ステップＳ１０３：Ｙｅｓ）、発話に含まれる文字列のうち所定の条件を満たす文字列を意図情報として抽出する（ステップＳ１０４）。一方、情報提供装置１０は、スロット値を抽出できないと判定した場合は（ステップＳ１０３：Ｎｏ）、所定の条件を満たす文字列の候補の中から、発話に基づいて意図情報となる文字列を選択する（ステップＳ１０５）。そして、情報提供装置１０は、抽出あるいは選択した意図情報を用いて応答を生成し、生成した応答を利用者Ｕに提供し（ステップＳ１０６）、処理を終了する。
【００８５】
［第２の実施形態］
〔１−１．情報提供装置の概要〕
上述した第１の実施形態は、利用者Ｕの発話が利用者Ｕの意図を明確に示していない場合にも、利用者Ｕの意図を反映させた応答を生成するため、予め準備されたスロット値の候補の中から、利用者Ｕの意図を示す確度が高いスロット値の選択を行った。しかしながら、実施形態は、これに限定されるものではない。
【００８６】
例えば、利用者Ｕの発話を利用者の意図を示す文字列へと変換する処理を考えた場合、かかる処理は、各種の翻訳技術やシーケンス２シーケンス（Ｓｅｑ２Ｓｅｑ）等といった学習技術により実現可能である。このように、ある発話をその発話を行った利用者Ｕの意図を示す文字列へと変換するように学習が行われたモデルを用いて、利用者Ｕの発話を変換した場合、スロット値となりえる文字列や正規化辞書を用いることでスロット値となりえる文字列が発話の中に含まれなかったとしても、利用者Ｕの意図を示す文字列、すなわち、利用者Ｕの意図を反映させたスロット値を得ることができると考えられる。
【００８７】
そこで、以下に説明する第２の実施形態に係る情報提供装置１０ａは、利用者Ｕから受付けた発話が所定の条件を満たすか否かを判定し、所定の条件を満たすと判定された場合には、発話に対する応答の生成に用いる文字列を発話から抽出する。また、情報提供装置１０ａは、発話が所定の条件を満たさないと判定された場合には、発話を発話が示す利用者の意図を示す文字列へと変換するように学習が行われた学習器を用いて、利用者から受付けた発話を利用者の意図を示す文字列へと変換する。そして、情報提供装置１０ａは、抽出された文字列、または、発話から変換された文字列を用いて、発話に対する応答を生成する。
【００８８】
以下、図６を用いて、第２の実施形態に係る情報提供装置１０ａが実行する生成処理の一例について説明する。図６は、第２の実施形態に係る情報提供装置が実行する処理の一例を示す図である。なお、図６にステップＳ１〜ステップＳ９として示す処理のうち、ステップＳ１〜ステップＳ４、ステップＳ６〜ステップＳ９については、図１に示したステップＳ１〜ステップＳ４、ステップＳ６〜ステップＳ９と同様の処理であるものとして、説明を省略する。
【００８９】
例えば、情報提供装置１０ａは、発話＃１から意図情報を抽出することができないと判定された場合は、発話から発話の意図を示す文字列に変換する処理を翻訳処理と見做して、発話を、発話の意図を示す文字列へと変換する（ステップＳ５）。より具体的には、情報提供装置１０ａは、発話を、その発話が示す利用者Ｕの意図を示す文字列であって、特定されたドメインに応じた文字列へと変換するように学習が行われた学習器を用いて、利用者Ｕから受付けた発話を利用者の意図を示す文字列へと変換する。
【００９０】
例えば、情報提供装置１０ａは、あるドメインに属する発話＃Ａを、利用者Ｕの意図を示す文字列や利用者Ｕのニーズを示す文字列へと変換するように学習が行われた変換モデルをドメインごとに保持する。そして、情報提供装置１０ａは、ステップＳ２にて特定された発話＃１と対応するドメインの変換モデルを選択し、「おなかへったなー」等といった発話＃１を選択した変換モデルに入力することで、利用者Ｕの意図を示す文字列、例えば、「レストラン」等といったスロット値の文字列へと変換する。すなわち、情報提供装置１０ａは、利用者Ｕから受付けた発話を利用者Ｕの意図を示す文字列であって、スロット値としての所定の条件を満たす文字列へと変換する。
【００９１】
その後、情報提供装置１０ａは、変換後の文字列「レストラン」の属性等を特定し、各フレームの対応するスロットへと格納することで、利用者Ｕの意図を反映させたスロット値を用いた応答の生成を実現することができる。なお、第１の実施例と同様に、応答を生成する際にスロット値を用いた検索処理が実行される場合、情報提供装置１０ａは、利用者Ｕの発話を検索対象の属性を示す文字列へと変換し、変換された文字列を検索クエリとする検索処理の結果に基づいて、発話に対する応答を生成することとなる。
【００９２】
〔１−２．変換モデルについて〕
上述した発話の変換に用いる変換モデルは、ドメインごとに、ある発話を入力した際に、その発話を行った利用者Ｕの意図を出力するようにモデルの学習を行うことで実現可能であり、このような学習手法については、任意の学習技術が採用可能である。
【００９３】
また、情報提供装置１０ａは、発話から利用者Ｕの意図を示す文字列へと変換することができるのであれば、任意の変換モデルを用いて発話の変換を行ってよい。例えば、情報提供装置１０ａは、ｗｏｒｄ２ｖｅｃ等、単語を単語の相対的な意味に基づくベクトル表現へと変換する技術を用いて、発話の文字列を発話の意味を示すベクトル表現に変換し、変換したベクトル表現を、利用者Ｕの意図を示す単語のベクトル表現へと変換する変換モデルを用いて、発話の変換を行ってもよい。
【００９４】
また、情報提供装置１０ａは、ＬＳＴＭ（Long  short-term  memory）のレイヤを含むＤＮＮに対して発話の文字列を先頭から一文字ずつ入力し、ＤＮＮが一文字づつ出力した文字列をスロット値としてもよい。また、情報提供装置１０は、発話の文字列の画像や発話の音声波形等をそのまま変換モデルに入力し、スロット値となる文字列、文字列の画像、もしくは文字列の音声波形等へと変換してもよい。また、情報提供装置１０ａは、発話の文字列を作成するような音声認識を実行せず、音声の波形データから直接スロット値への変換を行ってもよい。
【００９５】
また、情報提供装置１０ａは、利用者Ｕの属性を考慮した学習が行われた変換モデルを用いてもよい。例えば、情報提供装置１０ａは、ある発言とその発言を行った利用者の属性とを入力した際に、その利用者Ｕの意図を示すスロット値へと変換するように学習が行われた変換モデルを保持し、係る変換モデルに利用者Ｕの発言と属性とを入力することで、利用者Ｕの意図を推定してもよい。また、情報提供装置１０ａは、利用者Ｕの属性ごとに学習が行われた変換モデルを用いてもよい。例えば、情報提供装置１０は、ある発言を、その発言をある属性を有する利用者Ｕが発言した際のその利用者Ｕの意図を示すスロット値へと変換するように学習が行われた変換モデルを属性ごとに保持する。そして、情報提供装置１０は、利用者Ｕの属性に応じて、使用する変換モデルを選択し、選択した変換モデルを用いて、発言の変換を行ってもよい。また、情報提供装置１０ａは、ドメインと利用者Ｕの属性との組合せごとに、異なる変換モデルを用いてもよく、各利用者専用の変換モデルを用いてもよい。
【００９６】
〔１−３．その他〕
また、情報提供装置１０ａは、発話＃１からスロット値を抽出可能であるか否かを判定する処理と、発話＃１からスロット値を抽出可能である場合に、発話＃１からスロット値を抽出する処理と、発話＃１からスロット値を抽出できない場合に、発話＃１をスロット値へと変換する処理とを実行するように、ＤＮＮ等のモデルの学習を行い、学習したモデルを用いて、上述した処理を実行してもよい。また、情報提供装置１０ａは、発話＃１からスロット値を抽出可能であるか否かを判定する処理と、発話＃１からスロット値を抽出可能である場合に、発話＃１からスロット値を抽出する処理とを実行するモデルの学習を行い、学習したモデルを用いて、上述した処理を実行してもよい。このようなモデルを用いる場合、情報提供装置１０ａは、モデルがスロット値を抽出できなかった場合に、変換モデルを用いて、発話からスロット値の変換を行うこととなる。
【００９７】
〔２．情報提供装置の構成〕
以下、上記した第２の実施形態に係る情報提供装置１０ａが有する機能構成の一例について説明する。図７は、第２の実施形態に係る情報提供装置の構成例を示す図である。なお、図７に示す機能構成のうち、図２に示す機能構成と同様の機能を発揮するものについては、同一の符号を付し、以下の説明を省略する。図７に示すように、情報提供装置１０ａは、通信部２０、記憶部３０ａ、および制御部４０ａを有する。
【００９８】
記憶部３０ａは、記憶部３０と同様に、例えば、ＲＡＭ、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部３０ａは、フレームデータベース３１およびモデルデータベース３３を記憶する。
【００９９】
モデルデータベース３３には、ドメインごとに発話を利用者Ｕの意図を示す意図情報、すなわち、スロット値へと変換する変換モデルが登録されている。例えば、図８は、第２の実施形態に係るモデルデータベースに登録される情報の一例を示す図である。図８に示す例では、フレームデータベースには、「モデルＩＤ」、「ドメイン」、および「モデルデータ」といった項目を有する情報が登録される。
【０１００】
ここで、「モデルＩＤ」とは、変換モデルの識別子である。また、「ドメイン」とは、対応付けられた「モデルＩＤ」が示す変換モデルと対応するドメインを示す情報である。また、「モデルデータ」とは、対応付けられた「モデルＩＤ」が示す変換モデルのデータである。例えば、図８に示す例では、モデルＩＤ「モデル＃１」、ドメイン「ドメイン＃１」、およびモデルデータ「モデルデータ＃１」等といった情報が対応付けて登録されている。このような情報は、モデルＩＤ「モデル＃１」が示す変換モデルがドメイン「ドメイン＃１」が示すドメインに対応する変換モデルであり、データがモデルデータ「モデルデータ＃１」である旨を示す。
【０１０１】
なお、図８に示す例では、「モデル＃１」、「ドメイン＃１」、「モデルデータ＃１」等といった概念的な値を記載したが、実際には、変換モデルを識別する文字列、ドメインを識別する文字列や数値、変換モデルの各種パラメータやノード間の接続係数等を示す情報が登録されることとなる。
【０１０２】
図７に戻り、説明を続ける。制御部４０ａは、コントローラであり、例えば、ＣＰＵ、ＭＰＵ等のプロセッサによって、情報提供装置１０ａ内部の記憶装置に記憶されている各種プログラムがＲＡＭ等を作業領域として実行されることにより実現される。また、制御部４０ａは、コントローラであり、例えば、ＡＳＩＣやＦＰＧＡ等の集積回路により実現されてもよい。図７に示すように、制御部４０ａは、図２に示した制御部４０が有する選択部４４に代えて、および変換部４７を有する。なお、以下の説明では、分類部４１、判定部４２、抽出部４３、生成部４５、および提供部４６は、図２に示す分類部４１、判定部４２、抽出部４３、生成部４５、および提供部４６と同様の機能を発揮するものとして、詳細な説明を省略する。
【０１０３】
変換部４７は、発話が所定の条件を満たさないと判定された場合には、発話を発話が示す利用者Ｕの意図を示す文字列へと変換するように学習が行われた学習器を用いて、利用者Ｕから受付けた発話を利用者Ｕの意図を示す文字列へと変換する。また、変換部４７は、利用者Ｕから受付けた発話を利用者Ｕの意図を示す文字列であって、スロット値となる所定の条件を満たす文字列へと変換する。例えば、変換部４７は、フレームと対応する処理がスロット値を用いた検索である場合、所定の条件として、検索対象の属性を示す文字列へと変換する。
【０１０４】
例えば、変換部４７は、発話が所定の条件を満たさないと判定された場合には、分類部４１によって特定された発話が属するドメインと対応する変換モデルをモデルデータベース３３から読み出す。そして、変換部４７は、読み出した変換モデルに対し、発話を入力することで、利用者Ｕの意図を示す文字列をスロット値を取得する。すなわち、変換部４７は、発話を利用者の意図を示す文字列であって、発話が属する分野に応じた文字列へと変換するように学習が行われた変換モデルを用いて、利用者Ｕから受付けた発話を利用者Ｕの意図を示す文字列へと変換する。
【０１０５】
この結果、生成部４５は、抽出部４３によって抽出されたスロット値あるいは変換部４７によって発話を変換したスロット値を用いて、利用者Ｕに対する応答を生成する。この結果、情報提供装置１０ａは、利用者Ｕの発話が利用者Ｕの意図を明確に示していない場合にも、利用者Ｕの意図を反映させた応答を提供することができる。
【０１０６】
〔３．情報提供装置が実行する処理の流れの一例〕
続いて、図９を用いて、情報提供装置１０ａが実行する処理の流れの一例を説明する。図９は、第２の実施形態に係る情報提供装置が実行する決定処理の流れの一例を示すフローチャートである。なお、図９中ステップＳ２０１〜ステップＳ２０４、ステップＳ２０６は、図５に示すステップＳ１０１〜ステップＳ１０４、ステップＳ１０６と同様の処理であるものとして、詳細な説明を省略する。
【０１０７】
例えば、情報提供装置１０は、スロット値を抽出できないと判定した場合は（ステップＳ２０３：Ｎｏ）、発話を利用者Ｕの意図を示す文字列に変換する学習器を用いて、受付けた発話の文字列を意図情報の文字列、すなわち、スロット値へと変換する（ステップＳ２０５）。この結果、情報提供装置１０は、抽出あるいは発話を変換することで得られた意図情報を用いて応答を生成し、生成した応答を利用者Ｕに提供し（ステップＳ２０６）、処理を終了する。
【０１０８】
［変形例］
上記では、情報提供装置１０、１０ａ（以下、単に「情報提供装置１０」と総称する。）による生成処理の一例について説明した。しかしながら、実施形態は、これに限定されるものではない。以下、情報提供装置１０が実行する提供処理や決定処理のバリエーションについて説明する。
【０１０９】
〔１．選択処理および変換処理の実行について〕
情報提供装置１０は、スロット値の候補の中から発話に基づいて選択する選択処理、または、発話をスロット値へと変換する変換処理を実行した。ここで、情報提供装置１０は、選択処理および変換処理の両方を実行してもよい。
【０１１０】
例えば、情報提供装置１０は、発話が第１条件、第２条件、または第３条件のいずれを満たすかを判定する。より具体的には、情報提供装置１０は、発話からスロット値を抽出することができる場合には、発話が第１条件を満たすと判定する。また、情報提供装置１０は、発話が第１条件を満たさない場合は、発話がスロット値の選択に適しているか否かを判定し、発話がスロット値の選択に適している場合には、発話が第２条件を満たすと判定し、発話がスロット値の選択に適していないと判定した場合は、発話が第３条件を満たすと判定する。なお、情報提供装置１０は、発話がスロット値への変換に適しているか否かを判定し、適していると判定した場合は、発話が第３条件を満たすと判定し、適していないと判定した場合は、発話が第２条件を満たすと判定してもよい。
【０１１１】
そして、情報提供装置１０は、発話が第１条件を満たすと判定された場合は、発話に対する応答の生成に用いる文字列を発話から抽出する。また、情報提供装置１０は、発話が第２条件を満たすと判定された場合は、発話の内容に基づいて、予め設定された文字列の候補の中から応答の生成に用いる文字列を選択する。また、情報提供装置１０は、第３条件を満たすと判定された場合は、発話を利用者Ｕの意図を示す文字列へと変換するように学習が行われた学習器を用いて、利用者Ｕから受付けた発話を利用者Ｕの意図を示す文字列へと変換する。そして、情報提供装置１０は、抽出された文字列、選択された文字列、または発話から変換された文字列を用いて、発話に対する応答を生成する。
【０１１２】
例えば、情報提供装置１０は、利用者Ｕの発話からスロット値を抽出できるか否かを判定し、スロット値を抽出できると判定した場合は、発話からスロット値の抽出を行う抽出処理を実行する。一方、情報提供装置１０は、スロット値を抽出できないと判定した場合は、発話がスロット値の選択に適しているか、若しくは、発話がスロット値への変換に適しているか否かを判定する。このような判定は、例えば、スロット値へと変換するよりもスロット値の選択を行った方が、利用者Ｕの意図をより適切に反映させることができる発話の特徴を学習した学習器等により実現可能である。そして、情報提供装置１０は、発話がスロット値の選択に適していると判定した場合は、上述した選択処理を実行し、発話がスロット値への変換に適していると判定した場合は、上述した変換処理を実行することで、利用者Ｕの意図を反映させたスロット値を得る。
【０１１３】
このように、情報提供装置１０は、発話が満たす条件に応じて抽出処理、選択処理および変換処理を動的に切り替えてもよい。なお、このような情報提供装置１０は、例えば、図２に示す機能構成と、図７に示す機能構成とを組み合わせることで、実現可能である。
【０１１４】
なお、上述した例では、情報提供装置１０は、発話から抽出された文字列、または、候補の中から選択された文字列を用いて、応答を生成した。また、情報提供装置１０ａは、発話から抽出された文字列、または、発話を変換することで生成された文字列を用いて、応答を生成した。しかしながら、実施形態は、これに限定されるものではない。
【０１１５】
例えば、情報提供装置１０は、発話から所定の条件を満たす文字列が抽出可能か否かの判定結果に係らず、文字列の抽出および候補の選択を行い、発話から抽出された文字列と、候補の中から選択された文字列とを両方用いて、応答の生成を行ってもよい。すなわち、情報提供装置１０は、発話から抽出された文字列と、候補の中から選択された文字列との少なくともいずれか一方を用いて、応答の生成を行えばよい。
【０１１６】
また例えば、情報提供装置１０ａは、文字列の抽出および発話の変換を行い、発話から抽出された文字列と、変換後の文字列とを両方用いて、応答の生成を行ってもよい。すなわち、情報提供装置１０ａは、発話から抽出された文字列と、変換後の文字列との少なくともいずれか一方を用いて、応答の生成を行えばよい。  
【０１１７】
〔２．強化学習について〕
情報提供装置１０は、発話の分類に用いるモデルや、発話からスロット値を選択するモデル、発話をスロット値へと変換する変換モデルを、利用者Ｕとの対話を通した強化学習により学習してもよい。例えば、情報提供装置１０は、応答を出力した後で利用者Ｕから受付けた発話の内容から、利用者Ｕの応答に対する反応が好意的であるか否かを判定し、判定結果に基づく報酬を設定することで、各モデルの強化学習を実現してもよい。
【０１１８】
〔３．対話処理の構成について〕
上述した情報提供装置１０は、スロットフィリングの結果を用いて応答を生成した。しかしながら、実施形態は、これに限定されるものではない。例えば、情報提供装置１０は、利用者Ｕの発話の意図を特定し、特定した意図から利用者Ｕとの対話の状況を判定し、判定した状況に応じた応答を生成するといった処理により、利用者Ｕとの応答を生成するといった対話処理を実行する場合がある。このような対話処理において、情報提供装置１０は、利用者Ｕの発話の意図を特定する際に、上述したスロットフィリングの技術を適用し、スロットフィリングの結果に応じて、利用者Ｕとの対話の状況を判定し、判定した状況に応じた応答を生成してもよい。すなわち、情報提供装置１０は、利用者Ｕの発話から利用者Ｕの意図を反映させたスロット値を得るのであれば、他の任意の処理と組み合わせて、発話に対する応答を生成してよい。
【０１１９】
〔４．装置構成〕
記憶部３０、３０ａに登録された各データベース３１〜３３は、外部のストレージサーバに保持されていてもよい。また、情報提供装置１０は、発話を分類する分類サーバ、発話からスロット値を抽出できるか否かを判定する判定サーバ、発話からスロット値を抽出する抽出サーバ、スロット値の候補から発話に基づいてスロット値を選択する選択サーバ、発話をスロット値へと変換する変換サーバ、スロット値から応答を生成する生成サーバ等が連携して動作することにより、実現されてもよい。
【０１２０】
このような場合、分類サーバには、分類部４１が配置され、判定サーバには、判定部４２が配置され、抽出サーバには、抽出部４３が配置され、選択サーバには、選択部４４が配置され、変換サーバには、変換部４７が設置され、生成サーバには、生成部４５および提供部４６が設置されていてもよい。また、ドメインに対応する複数の抽出サーバ、選択サーバ、変換サーバが設置されていてもよい。
【０１２１】
〔５．その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、逆に、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【０１２２】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１２３】
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【０１２４】
〔６．プログラム〕
また、上述した実施形態に係る情報提供装置１０は、例えば図１０に示すような構成のコンピュータ１０００によって実現される。図１０は、ハードウェア構成の一例を示す図である。コンピュータ１０００は、出力装置１０１０、入力装置１０２０と接続され、演算装置１０３０、一次記憶装置１０４０、二次記憶装置１０５０、出力ＩＦ（Interface）１０６０、入力ＩＦ１０７０、ネットワークＩＦ１０８０がバス１０９０により接続された形態を有する。
【０１２５】
演算装置１０３０は、一次記憶装置１０４０や二次記憶装置１０５０に格納されたプログラムや入力装置１０２０から読み出したプログラム等に基づいて動作し、各種の処理を実行する。一次記憶装置１０４０は、ＲＡＭ等、演算装置１０３０が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置１０５０は、演算装置１０３０が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ＲＯＭ(Read  Only  Memory)、ＨＤＤ（Hard  Disk  Drive）、フラッシュメモリ等により実現される。
【０１２６】
出力ＩＦ１０６０は、モニタやプリンタといった各種の情報を出力する出力装置１０１０に対し、出力対象となる情報を送信するためのインタフェースであり、例えば、ＵＳＢ（Universal  Serial  Bus）やＤＶＩ（Digital  Visual  Interface）、ＨＤＭＩ（登録商標）（High  Definition  Multimedia  Interface）といった規格のコネクタにより実現される。また、入力ＩＦ１０７０は、マウス、キーボード、およびスキャナ等といった各種の入力装置１０２０から情報を受信するためのインタフェースであり、例えば、ＵＳＢ等により実現される。
【０１２７】
なお、入力装置１０２０は、例えば、ＣＤ（Compact  Disc）、ＤＶＤ（Digital  Versatile  Disc）、ＰＤ（Phase  change  rewritable  Disk）等の光学記録媒体、ＭＯ（Magneto-Optical  disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等から情報を読み出す装置であってもよい。また、入力装置１０２０は、ＵＳＢメモリ等の外付け記憶媒体であってもよい。
【０１２８】
ネットワークＩＦ１０８０は、ネットワークＮを介して他の機器からデータを受信して演算装置１０３０へ送り、また、ネットワークＮを介して演算装置１０３０が生成したデータを他の機器へ送信する。
【０１２９】
演算装置１０３０は、出力ＩＦ１０６０や入力ＩＦ１０７０を介して、出力装置１０１０や入力装置１０２０の制御を行う。例えば、演算装置１０３０は、入力装置１０２０や二次記憶装置１０５０からプログラムを一次記憶装置１０４０上にロードし、ロードしたプログラムを実行する。
【０１３０】
例えば、コンピュータ１０００が情報提供装置１０として機能する場合、コンピュータ１０００の演算装置１０３０は、一次記憶装置１０４０上にロードされたプログラムを実行することにより、制御部４０の機能を実現する。
【０１３１】
［効果］
上述したように、情報提供装置１０は、利用者Ｕから受付けた発話から所定の条件を満たす文字列を抽出できるか否かを判定する。また、情報提供装置１０は、発話から所定の条件を満たす文字列を抽出できると判定された場合には、その発話に対する応答の生成に用いる文字列をその発話から抽出する。一方、情報提供装置１０は、発話から所定の条件を満たす文字列を抽出できないと判定された場合には、その発話の内容に基づいて、予め設定された文字列の候補の中から応答の生成に用いる文字列を選択する。そして、情報提供装置１０は、抽出された文字列、または、選択された文字列の少なくとも一方を用いて、発話に対する応答を生成する。
【０１３２】
この結果、情報提供装置１０は、利用者の意図を示す単語が含まれない発話文、すなわち、利用者の意図を示唆するに留まるような発話文からも、利用者Ｕの意図を反映させた応答を生成することができるので、利用者の意図を反映させた応答を出力することができる。
【０１３３】
また、情報提供装置１０は、候補のうち、発話が示す利用者Ｕの意図と関連する可能性が所定の閾値を超える候補を、応答の生成に用いる文字列として選択する。このため、情報提供装置１０は、利用者の意図をより反映させたスロット値に基づく応答を生成できるので、利用者Ｕの意図をより反映させた応答を出力することができる。
【０１３４】
また、情報提供装置１０は、発話の内容と、その発話よりも前に利用者Ｕから受付けた発話の内容とに基づいて、応答の生成に用いる文字列を候補から選択する。また、情報提供装置１０は、発話の内容と、利用者Ｕの属性とに基づいて、応答の生成に用いる文字列を候補から選択する。このため、情報提供装置１０は、利用者Ｕの意図をより反映させる可能性が高いスロット値から応答を生成するので、利用者Ｕの意図をより反映させた応答を出力することができる。
【０１３５】
また、情報提供装置１０は、発話が示す利用者Ｕの意図と関連する可能性が所定の閾値を超える候補が存在しない場合、または、発話が示す利用者Ｕの意図と関連する可能性が所定の閾値を超える候補の数が所定の数を超える場合には、発話の意図を利用者Ｕに対して問い合わせる内容の応答を生成する。このため、情報提供装置１０は、誤った応答の出力を防ぐとともに、利用者Ｕの意図を反映させた応答を出力するように、利用者Ｕの発話を誘導することができる。
【０１３６】
また、情報提供装置１０は、応答の生成に用いる文字列として、発話から所定の条件を満たす文字列を抽出し、所定の条件を満たす文字列の候補の中から、応答の生成に用いる文字列を選択する。例えば、情報提供装置１０は、所定の条件として、検索対象の属性を示す文字列の候補の中から、応答の生成に用いる文字列を選択し、選択された文字列を検索クエリとする検索処理の結果に基づいて、発話に対する応答を生成する。このため、情報提供装置１０は、例えば、ある処理に対応するフレームのスロット値として適切なスロット値の候補から、応答の生成に用いるスロット値を選択するので、適切な応答を生成することができる。
【０１３７】
また、情報提供装置１０は、利用者Ｕから受付けた発話が属する分野を特定し、特定された分野に応じた条件を満たす文字列の候補の中から、応答の生成に用いる文字列を選択する。このため、情報提供装置１０は、より適切な応答を生成することができる。
【０１３８】
また、情報提供装置１０は、あらかじめ登録された文字列、抽出された文字列の履歴、または、過去の対話履歴に含まれる文字列のうち少なくともいずれか１つを含む文字列の候補の中から、応答の生成に用いる文字列を選択する。このため、情報提供装置１０は、利用者Ｕとの対話を通して、スロット値の候補を拡充するので、利用者Ｕとの対話が進むにつれて、より適切な応答を生成することができる。
【０１３９】
また、情報提供装置１０ａは、発話が所定の条件を満たさないと判定された場合には、発話を利用者Ｕの意図を示す文字列へと変換するように学習が行われた学習器を用いて、利用者Ｕから受付けた発話をその利用者Ｕの意図を示す文字列へと変換する。そして、情報提供装置１０ａは、抽出された文字列、または、発話から変換された文字列の少なくとも一方を用いて、発話に対する応答を生成する。このため、情報提供装置１０ａは、利用者の意図を示唆するに留まるような発話文からも、利用者の意図を反映させた応答を出力することができる。
【０１４０】
また、情報提供装置１０ａは、利用者Ｕから受付けた発話を利用者Ｕの意図を示す文字列であって、所定の条件を満たす文字列へと変換する。また、情報提供装置１０ａは、所定の条件として、検索対象の属性を示す文字列へと変換し、変換された文字列を検索クエリとする検索処理の結果に基づいて、発話に対する応答を生成する。また、情報提供装置１０ａは、利用者Ｕから受付けた発話が属する分野を特定する。そして、情報提供装置１０ａは、利用者Ｕの意図を示す文字列であって、特定された分野に応じた文字列へと変換するように学習が行われた学習器を用いて、利用者Ｕから受付けた発話をその利用者Ｕの意図を示す文字列へと変換する。このため、情報提供装置１０ａは、利用者の意図を反映させた応答を出力することができる。
【０１４１】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０１４２】
また、上記してきた「部（section、module、unit）」は、「手段」や「回路」などに読み替えることができる。例えば、推定部は、推定手段や推定回路に読み替えることができる。
【符号の説明】
【０１４３】
１０  情報提供装置
２０  通信部
３０  記憶部
３１  フレームデータベース
３２  候補データベース
３３  モデルデータベース
４０  制御部
４１  分類部
４２  判定部
４３  抽出部
４４  選択部
４５  生成部
４６  提供部
４７  変換部
１００  利用者端末
２００  検索サーバ
【図１】
2018194902.tif 000003
【図２】
2018194902.tif 000004
【図３】
2018194902.tif 000005
【図４】
2018194902.tif 000006
【図５】
2018194902.tif 000007
【図６】
2018194902.tif 000008
【図７】
2018194902.tif 000009
【図８】
2018194902.tif 000010
【図９】
2018194902.tif 000011
【図１０】
2018194902.tif 000012
【手続補正書】
【提出日】平成30年3月8日(2018.3.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
利用者から受付けた発話から所定の条件を満たす文字列であって当該発話の内容が属するドメインと対応する文字列を抽出できるか否かを判定する判定部と、
前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出部と、
前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、当該発話の内容に基づいて、予め設定された文字列の候補の中から前記応答の生成に用いる文字列を選択する選択部と、
前記抽出部により抽出された文字列、または、前記選択部により選択された文字列の少なくとも一方を用いて、前記発話に対する応答を生成する生成部と
を有することを特徴とする生成装置。
【請求項２】
利用者から受付けた発話から所定の条件を満たす文字列を抽出できるか否かを判定する判定部と、
前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出部と、
前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、当該発話の内容に基づいて、予め設定された複数の文字列の候補の中から検索を行うための文字列を選択する選択部と、
前記抽出部により抽出された文字列、または、前記選択部により選択された文字列の少なくとも一方を用いて、前記応答の生成に用いる情報の検索を行い、当該検索の結果に基づいて前記発話に対する応答を生成する生成部と
を有することを特徴とする生成装置。
【請求項３】
前記選択部は、前記候補のうち、前記発話が示す前記利用者の意図と関連する可能性が所定の閾値を超える候補を、前記応答の生成に用いる文字列として選択する
ことを特徴とする請求項１または２に記載の生成装置。
【請求項４】
前記選択部は、前記発話の内容と、当該発話よりも前に前記利用者から受付けた発話の内容とに基づいて、前記応答の生成に用いる文字列を前記候補から選択する
ことを特徴とする請求項１〜３のうちいずれか１つに記載の生成装置。
【請求項５】
前記選択部は、前記発話の内容と、前記利用者の属性とに基づいて、前記応答の生成に用いる文字列を前記候補から選択する
ことを特徴とする請求項１〜４のうちいずれか１つに記載の生成装置。
【請求項６】
前記生成部は、前記発話が示す前記利用者の意図と関連する可能性が所定の閾値を超える候補が存在しない場合、または、前記発話が示す前記利用者の意図と関連する可能性が所定の閾値を超える候補の数が所定の数を超える場合には、前記発話の意図を前記利用者に対して問い合わせる内容の応答を生成する
ことを特徴とする請求項１〜５のうちいずれか１つに記載の生成装置。
【請求項７】
前記抽出部は、前記応答の生成に用いる文字列として、前記発話から前記所定の条件を満たす文字列を抽出し、
前記選択部は、前記所定の条件を満たす文字列の候補の中から、前記応答の生成に用いる文字列を選択する
ことを特徴とする請求項１〜６のうちいずれか１つに記載の生成装置。
【請求項８】
前記選択部は、前記所定の条件として、検索対象の属性を示す文字列の候補の中から、前記応答の生成に用いる文字列を選択し、
前記生成部は、前記選択部により選択された文字列を検索クエリとする検索処理の結果に基づいて、前記発話に対する応答を生成する
ことを特徴とする請求項７に記載の生成装置。
【請求項９】
前記利用者から受付けた発話が属する分野を特定する特定部
を有し、
前記選択部は、前記特定部により特定された分野に応じた条件を満たす文字列の候補の中から、前記応答の生成に用いる文字列を選択する
ことを特徴とする請求項１〜８のうちいずれか１つに記載の生成装置。
【請求項１０】
前記選択部は、あらかじめ登録された文字列、前記抽出部により抽出された文字列の履歴、または、過去の対話履歴に含まれる文字列のうち少なくともいずれか１つを含む文字列の候補の中から、前記応答の生成に用いる文字列を選択する
ことを特徴とする請求項１〜９のうちいずれか１つに記載の生成装置。
【請求項１１】
利用者から受付けた発話から所定の条件を満たす文字列であって当該発話の内容が属するドメインと対応する文字列を抽出できるか否かを判定する判定部と、
前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出部と、
前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、発話を利用者の意図を示す文字列へと変換するように学習が行われた学習器を用いて、前記利用者から受付けた発話を当該利用者の意図を示す文字列へと変換する変換部と、
前記抽出部により抽出された文字列、または、前記変換部により変換された文字列の少なくとも一方を用いて、前記発話に対する応答を生成する生成部と
を有することを特徴とする生成装置。
【請求項１２】
前記変換部は、前記利用者から受付けた発話を前記利用者の意図を示す文字列であって、前記所定の条件を満たす文字列へと変換する
ことを特徴とする請求項１１に記載の生成装置。
【請求項１３】
前記変換部は、前記所定の条件として、検索対象の属性を示す文字列へと変換し、
前記生成部は、前記変換部により変換された文字列を検索クエリとする検索処理の結果に基づいて、前記発話に対する応答を生成する
ことを特徴とする請求項１２に記載の生成装置。
【請求項１４】
前記利用者から受付けた発話が属する分野を特定する特定部
を有し、
前記変換部は、利用者の意図を示す文字列であって、前記特定部により特定された分野に応じた文字列へと変換するように学習が行われた学習器を用いて、前記利用者から受付けた発話を当該利用者の意図を示す文字列へと変換する
ことを特徴とする請求項１１〜１３のうちいずれか１つに記載の生成装置。
【請求項１５】
生成装置が実行する生成方法であって、
利用者から受付けた発話から所定の条件を満たす文字列であって当該発話の内容が属するドメインと対応する文字列を抽出できるか否かを判定する判定工程と、
前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出工程と、
前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、当該発話の内容に基づいて、予め設定された文字列の候補の中から前記応答の生成に用いる文字列を選択する選択工程と、
前記抽出工程により抽出された文字列、または、前記選択工程により選択された文字列の少なくとも一方を用いて、前記発話に対する応答を生成する生成工程と
を含むことを特徴とする生成方法。
【請求項１６】
利用者から受付けた発話から所定の条件を満たす文字列であって当該発話の内容が属するドメインと対応する文字列を抽出できるか否かを判定する判定手順と、
前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出手順と、
前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、当該発話の内容に基づいて、予め設定された文字列の候補の中から前記応答の生成に用いる文字列を選択する選択手順と、
前記抽出手順により抽出された文字列、または、前記選択手順により選択された文字列の少なくとも一方を用いて、前記発話に対する応答を生成する生成手順と
をコンピュータに実行させることを特徴とする生成プログラム。
【請求項１７】
生成装置が実行する生成方法であって、
利用者から受付けた発話から所定の条件を満たす文字列を抽出できるか否かを判定する判定工程と、
前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出工程と、
前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、当該発話の内容に基づいて、予め設定された複数の文字列の候補の中から検索を行うための文字列を選択する選択工程と、
前記抽出工程により抽出された文字列、または、前記選択工程により選択された文字列の少なくとも一方を用いて、前記応答の生成に用いる情報の検索を行い、当該検索の結果に基づいて前記発話に対する応答を生成する生成工程と
を含むことを特徴とする生成方法。
【請求項１８】
利用者から受付けた発話から所定の条件を満たす文字列を抽出できるか否かを判定する判定手順と、
前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出手順と、
前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、当該発話の内容に基づいて、予め設定された複数の文字列の候補の中から検索を行うための文字列を選択する選択手順と、
前記抽出手順により抽出された文字列、または、前記選択手順により選択された文字列の少なくとも一方を用いて、前記応答の生成に用いる情報の検索を行い、当該検索の結果に基づいて前記発話に対する応答を生成する生成手順と
をコンピュータに実行させることを特徴とする生成プログラム。
【請求項１９】
生成装置が実行する生成方法であって、
利用者から受付けた発話から所定の条件を満たす文字列であって当該発話の内容が属するドメインと対応する文字列を抽出できるか否かを判定する判定工程と、
前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出工程と、
前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、発話を当該発話が示す利用者の意図を示す文字列へと変換するように学習が行われた学習器を用いて、前記利用者から受付けた発話を当該利用者の意図を示す文字列へと変換する変換工程と、
前記抽出工程により抽出された文字列、または、前記変換工程により変換された文字列の少なくとも一方を用いて、前記発話に対する応答を生成する生成工程と
を含むことを特徴とする生成方法。
【請求項２０】
利用者から受付けた発話から所定の条件を満たす文字列であって当該発話の内容が属するドメインと対応する文字列を抽出できるか否かを判定する判定手順と、
前記発話から前記所定の条件を満たす文字列を抽出できると判定された場合には、当該発話に対する応答の生成に用いる文字列を当該発話から抽出する抽出手順と、
前記発話から前記所定の条件を満たす文字列を抽出できないと判定された場合には、発話を当該発話が示す利用者の意図を示す文字列へと変換するように学習が行われた学習器を用いて、前記利用者から受付けた発話を当該利用者の意図を示す文字列へと変換する変換手順と、
前記抽出手順により抽出された文字列、または、前記変換手順により変換された文字列の少なくとも一方を用いて、前記発話に対する応答を生成する生成手順と
をコンピュータに実行させることを特徴とする生成プログラム。