(57)【要約】      （修正有）【課題】ユーザとオペレータとの対話及びオペレータのアクションからシナリオを構築できる対話システム構築支援装置を提供する。【解決手段】対話システム１００において、音声認識部１０１は、ユーザとオペレータとの対話に含まれる発話に対して音声認識を行い、発話に対応するテキストを含む音声認識結果を生成する。意図理解部１０２は、テキストに基づいて発話の意図を理解し、発話の種類、発話の意図、単語、及び単語の意味クラスを含む意図理解結果を得る。対話情報記憶部は、音声認識結果、意図理解結果、及びオペレータが対話に関連して実行したアクションを記憶する。シナリオ構築部１０６は、対話に含まれる質問の発話と回答の発話とに共通の意味クラスを持つ単語を属性として取得し、属性及びアクションを用いてシナリオを構築する。【選択図】図１
2015176099.tif 000002
【特許請求の範囲】
【請求項１】
ユーザとオペレータとの対話に含まれる複数の発話に対して音声認識を行い、前記複数の発話それぞれに対応する複数のテキストを含む音声認識結果を生成する音声認識部と、
前記複数のテキストそれぞれに基づいて前記複数の発話それぞれの意図を理解し、前記複数の発話それぞれの種類と、前記複数の発話それぞれの意図と、前記複数のテキストに含まれる単語と、前記単語の意味クラスと、を含む意図理解結果を得る意図理解部と、
前記音声認識結果、前記意図理解結果、及び前記オペレータが前記対話に関連して実行したアクションを関連付けて記憶する対話情報記憶部と、
前記対話に含まれる質問の発話と回答の発話とに共通の意味クラスを持つ単語を属性として取得し、前記属性及び前記アクションを用いてシナリオを構築するシナリオ構築部と、
を具備する対話システム構築支援装置。
【請求項２】
前記対話に含まれる前記オペレータの発話と前記ユーザの発話の対に出現する同じ単語をシナリオ特徴語として抽出する対話抽出部をさらに具備する請求項１に記載の対話システム構築支援装置。
【請求項３】
前記対話抽出部は、前記対話に含まれる確認の発話と該確認の発話と対をなす発話とに共通の単語を前記シナリオ特徴語として抽出する請求項２に記載の対話システム構築支援装置。
【請求項４】
前記シナリオを前記シナリオ特徴語に関連付けて記憶するシナリオ記憶部と、
前記シナリオ記憶部を検索して、前記対話抽出部によって抽出されたシナリオ特徴語に関連付けられたシナリオを類似シナリオとして取得するシナリオ検索部と、
前記類似シナリオに含まれるアクションを表示する表示部と、をさらに具備する請求項２に記載の対話システム構築支援装置。
【請求項５】
前記音声認識結果及び前記意図認識結果を表示する表示部をさらに具備する請求項１に記載の対話システム構築支援装置。
【請求項６】
前記シナリオを対話システムのデータベースに追加するシナリオ更新部をさらに具備する請求項１に記載の対話システム構築支援装置。
【請求項７】
前記シナリオ構築部は、前記シナリオを評価するための評価データを生成し、
前記シナリオ更新部は、前記データベースに前記シナリオを追加するか否かを選択できるように、前記シナリオを前記評価データとともに表示する、請求項６に記載の対話システム構築支援装置。
【請求項８】
ユーザとオペレータとの対話に含まれる複数の発話に対して音声認識を行い、前記複数の発話それぞれに対応する複数のテキストを含む音声認識結果を生成することと、
前記複数のテキストそれぞれに基づいて前記複数の発話それぞれの意図を理解し、前記複数の発話それぞれの種類と、前記複数の発話それぞれの意図と、前記複数のテキストに含まれる単語と、前記単語の意味クラスと、を含む意図理解結果を得ることと、
前記音声認識結果、前記意図理解結果、及び前記オペレータが前記対話に関連して実行したアクションを関連付けて記憶することと、
前記対話に含まれる質問の発話と回答の発話とに共通の意味クラスを持つ単語を属性として取得し、前記属性及び前記アクションを用いてシナリオを構築することと、
を具備する対話システム構築支援方法。
【請求項９】
コンピュータを、
ユーザとオペレータとの対話に含まれる複数の発話に対して音声認識を行い、前記複数の発話それぞれに対応する複数のテキストを含む音声認識結果を生成する音声認識手段と、
前記複数のテキストそれぞれに基づいて前記複数の発話それぞれの意図を理解し、前記複数の発話それぞれの種類と、前記複数の発話それぞれの意図と、前記複数のテキストに含まれる単語と、前記単語の意味クラスと、を含む意図理解結果を得る意図理解手段と、
前記音声認識結果、前記意図理解結果、及び前記オペレータが前記対話に関連して実行したアクションを関連付けて記憶する記憶手段と、
前記対話に含まれる質問の発話と回答の発話とに共通の意味クラスを持つ単語を属性として取得し、前記属性及び前記アクションを用いてシナリオを構築するシナリオ構築手段として機能させるための対話システム構築支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、対話システム構築支援装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
音声自動応答装置などのユーザの発話に対して自動応答する対話システムがある。このような対話システムは、事前に構築されたシナリオに従って応答する。対話システムは、シナリオがユーザの要求に適合していないために、応答に失敗することがある。その場合、オペレータがユーザに応答することになる。その後に同様の要求を受けた場合にうまく応答することができるように、新たなシナリオを対話システムに追加する必要がある。
【０００３】
対話システムが応答に失敗した件に関するユーザとオペレータとの対話からシナリオを構築できることが求められている。引用文献１には、エージェント及びユーザ間の会話セットを用いて学習を行う自動化応答システムが開示されている。しかしながら、オペレータが応答中に行ったアクション（行動）を考慮してユーザとオペレータとの対話からシナリオを構築する技術はない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４９０１７３８号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、ユーザとオペレータとの対話及びオペレータのアクションからシナリオを構築することができる対話システム構築支援装置、方法、及びプログラムを提供することである。
【課題を解決するための手段】
【０００６】
一実施形態に係る対話システム構築支援装置は、音声認識部、意図理解部、対話情報記憶部、及びシナリオ構築部を備える。音声認識部は、ユーザとオペレータとの対話に含まれる複数の発話に対して音声認識を行い、前記複数の発話それぞれに対応する複数のテキストを含む音声認識結果を生成する。意図理解部は、前記複数のテキストそれぞれに基づいて前記複数の発話それぞれの意図を理解し、前記複数の発話それぞれの種類と、前記複数の発話それぞれの意図と、前記複数のテキストに含まれる単語と、前記単語の意味クラスと、を含む意図理解結果を得る。対話情報記憶部は、前記音声認識結果、前記意図理解結果、及び前記オペレータが前記対話に関連して実行したアクションを関連付けて記憶する。シナリオ構築部は、前記対話に含まれる質問の発話と回答の発話とに共通の意味クラスを持つ単語を属性として取得し、前記属性及び前記アクションを用いてシナリオを構築する。
【図面の簡単な説明】
【０００７】
【図１】実施形態に係る対話システムを概略的に示すブロック図。
【図２】実施形態に係る対話ログ記録の手順例を示すフローチャート。
【図３】ユーザとオペレータとの対話の一例を示す図。
【図４】発話の種類の例を示す図。
【図５】意図タグの例を示す図。
【図６】アクションの例を示す図。
【図７】意味クラスの例を示す図。
【図８】アクション内容の例を示す図。
【図９】図３に示した対話に関する対話ログを示す図。
【図１０】実施形態に係るシナリオ構築の手順例を示すフローチャート。
【図１１Ａ】図９に示した対話ログから構築されるシナリオの一例を示す図。
【図１１Ｂ】図９に示した対話ログから構築されるシナリオの他の例を示す図。
【図１２】ユーザとオペレータとの対話の例であって、オペレータの質問に対してユーザが回答以外の発話をする例を示す図。
【図１３】図１に示したシナリオ構築部がシナリオを評価するための評価データを示す図。
【図１４】実施形態に係るアクション候補表示の手順例を示すフローチャート。
【図１５】図１に示した対話状態表示部が表示する内容の一例を示す図。
【発明を実施するための形態】
【０００８】
以下、図面を参照しながら実施形態を説明する。実施形態は、ユーザの発話に対して自動応答する対話システムに関する。この対話システムは、例えばコンタクトセンターで利用される。対話システムは、予め登録されたシナリオ（対話シナリオ）の中からユーザの発話に適合するシナリオを選択し、そのシナリオに従って応答する。対話システムが応答に失敗した場合には、オペレータがユーザとの対話を通じて応答する。対話システムは、ユーザとオペレータとの対話及びオペレータのアクション（行動）に基づいて新たなシナリオを構築することができる。その結果、対話システムは、その後に同様の要求を受けた場合にうまく応答することが可能になる。さらに、シナリオ構築コストを削減することができる。また、必要なオペレータの人数を低減させることができる。
【０００９】
図１は、実施形態に係る対話システム１００を概略的に示している。対話システム１００は、図１に示されるように、音声認識部１０１、意図理解部１０２、対話制御部１０３、応答生成部１０４、対話抽出部１０５、シナリオ構築部１０６、シナリオ更新部１０７、辞書記憶部１０８、意図モデル記憶部１０９、シナリオ記憶部１１０、対話ログ記憶部（対話情報記憶部ともいう）１１１、対話状態表示部１１２、シナリオ検索部１１３、及びシナリオオブジェクトデータベース（ＤＢ）１１４を備える。
【００１０】
まず、対話システム１００の自動応答処理について簡単に説明する。一例では、ユーザは、携帯電話やスマートフォンなどの端末を用いて、ネットワークを介して対話システム１００と通信する。対話システム１００は、自動応答処理によって、ネットワークを介して端末にサービスを提供する。例えば、対話システム１００は、後述する例のように、ユーザの目的地が示された地図のデータを端末に送信する。
【００１１】
対話システム１００は、音声認識部１０１、意図理解部１０２、対話制御部１０３、応答生成部１０４、辞書記憶部１０８、意図モデル記憶部１０９、及びシナリオオブジェクトＤＢ１１４を用いて、自動応答処理を実行する。音声認識部１０１は、ユーザの発話に対して音声認識を行い、その発話に対応する自然言語テキスト（以下、単にテキストと記載する。）を生成する。意図理解部１０２は、辞書記憶部１０８及び意図モデル記憶部１０９を参照してテキストを分析することで発話の意図を理解し、意図理解結果を出力する。対話制御部１０３は、シナリオオブジェクトＤＢ１１４から意図理解結果に対応するシナリオを選択し、選択したシナリオに規定されたアクション（例えば地図データの送信）を実行する。応答生成部１０４は、対話制御部１０３が実行するアクションに対応する応答文を生成する。応答文は、音声合成技術によって音声に変換され出力される。
【００１２】
次に、対話システム１００のシナリオ構築処理について説明する。  
対話システム１００では、ユーザの要求に適合するシナリオがシナリオオブジェクトＤＢ１１４中に存在しないなどの理由により、ユーザとの対話に失敗することがある。ユーザとの対話に失敗した場合には、対話制御部１０３は、ユーザとのコネクションをオペレータに転送する。さらに、規定の条件が応答中に発生した場合にも、対話制御部１０３は、ユーザとのコネクションをオペレータに転送することができる。それにより、オペレータとユーザとの対話が開始する。
【００１３】
対話システム１００は、ユーザとオペレータとの対話を分析する。対話システム１００は、その後に同様の要求を受けた場合にうまく応答することができるように、分析結果に基づいて新たなシナリオを構築する。シナリオ構築処理には、音声認識部１０１、意図理解部１０２、対話抽出部１０５、シナリオ構築部１０６、シナリオ更新部１０７、辞書記憶部１０８、意図モデル記憶部１０９、シナリオ記憶部１１０、対話ログ記憶部１１１、対話状態表示部１１２、及びシナリオ検索部１１３が使用される。シナリオ構築処理に関連するこれらの要素を含む部分を対話システム構築支援部と称する。対話システム構築支援部は、図１に示されるように、対話システム１００に組み入れられてもよく、対話システム１００の外部に設けられていてもよい。対話システム構築支援部が対話システム１００に組み入れられている場合、音声認識部１０１、意図理解部１０２、辞書記憶部１０８、及び意図モデル記憶部１０９は、自動応答処理及びシナリオ構築処理において共用することができる。
【００１４】
音声認識部１０１は、ユーザとオペレータとの発話に含まれる複数の発話に対して音声認識を行い、複数の発話それぞれに対応する複数のテキストを生成する。すなわち、音声認識部１０１は、音声認識技術によって、複数の発話を複数のテキストにそれぞれ変換する。
【００１５】
意図理解部１０２は、音声認識部１０１によって生成された各テキストに基づいて、そのテキストに対応する発話の意図を理解する。具体的には、意図理解部１０２は、テキストに対して形態素解析を行うことによりそのテキストを形態素単位の単語に分解する。続いて、意図理解部１０２は、辞書記憶部１０８に記憶されている辞書を参照して、固有表現抽出技術によって、名詞、固有名詞、動詞、未知語の単語それぞれに対して、単語の意味を表す意味クラスを割り当てる。辞書には、複数の単語が意味クラスに関連付けて登録されている。
【００１６】
意図理解部１０２は、形態素や単語の意味クラスや単語の表記などの素性を用いて意図モデル記憶部１０９に記憶されている意図モデルを参照することにより発話の意図を理解し、意図理解結果を出力する。意図モデルは、多数の発話サンプルから意味クラス及び単語などを素性とした学習により予め生成される。意図理解の方法は、ここで説明した例に限定されない。
【００１７】
対話抽出部１０５は、意図理解部１０２から意図理解結果を受け取り、オペレータが応答中に対話システム１００に対して行った操作をオペレータのアクションとして検出する。アクションの検出は、オペレータが操作するコンピュータ端末から受け取る情報に基づくことができる。具体的には、対話抽出部１０５は、オペレータが実行したアクションの内容を示す情報をコンピュータ端末から受け取ることができる。対話抽出部１０５は、ユーザとオペレータとの対話の分析結果及びオペレータのアクションを互いに関連付けて対話ログ記憶部１１１に記録する。対話の分析結果は、ユーザの発話に関する音声認識結果及び意図理解結果、並びに、オペレータの発話に関する音声認識結果及び意図理解結果を含む。
【００１８】
シナリオ構築部１０６は、対話ログ記憶部１１１を参照してシナリオを構築し、そのシナリオをシナリオ記憶部１１０に格納する。シナリオ更新部１０７は、シナリオ記憶部１１０を参照してシナリオオブジェクトＤＢ１１４を更新する。具体的には、シナリオ更新部１０７は、シナリオ記憶部１１０に格納されているシナリオを対話制御部１０３が実行することが可能なオブジェクトに変換し、シナリオオブジェクトＤＢ１１４に任意のタイミングで追加する。一例では、シナリオ記憶部１１０に格納されているシナリオはテキストベースのシナリオであり、シナリオオブジェクトＤＢ１１４に格納されているシナリオはオブジェクトベースのシナリオである。なお、シナリオオブジェクトＤＢ１１４に格納されているシナリオはテキストベースのシナリオであってもよい。
【００１９】
シナリオ検索部１１３は、ユーザとオペレータとの対話からシナリオ特徴語を抽出し、シナリオ記憶部１１０からそのシナリオ特徴語に関連付けられているシナリオを類似シナリオとして選択する。シナリオ特徴語については後述する。対話状態表示部１１２は、類似シナリオを表示する。また、対話状態表示部１１２は、ユーザとオペレータとの対話の分析結果を表示する。
【００２０】
次に、対話システム１００の動作について説明する。  
図２は、対話システム１００の対話ログ記録の手順を概略的に示している。ここでは、図３に示す対話を例に挙げて具体的に説明する。図２のステップＳ２０１では、ユーザとオペレータとの対話が開始する。このとき、対話抽出部１０５は、対話の開始を示す対話開始ラベルを対話ログ記憶部１１１に記録する。
【００２１】
ステップＳ２０２では、ユーザ又はオペレータが発話する。図３の対話例では、最初にユーザが「この前予約したレンタカーはどこで受け取るんだったっけ。」と発話する。ステップＳ２０３では、音声認識部１０１は、ステップＳ２０２で入力された発話に対して音声認識を行う。図３の対話例では、音声認識結果としてテキスト「この前予約したレンタカーはどこで受け取るんだったっけ。」が得られる。
【００２２】
ステップＳ２０４では、意図理解部１０２は、音声認識結果から発話の意図を理解し、意図理解結果を出力する。意図理解結果は、発話の種類、意図タグ、及び意味クラスを含む。発話の種類は、対話における発話の役割を示す。発話の種類には、図４に示すように、「要求」、「挨拶」、「質問」、「応答」、「提案」、「確認」、「回答」などがある。発話の種類は、機械が理解できる形態で、例えば、発話種類ＩＤとして出力される。意図タグは、図５に示すような「フライト時刻表表示」、「レンタカー検索」、「レンタカー場所表示」、「ホテル料金検索」、「ホテル予約」などの意図を示す情報である。意図タグは、機械が理解できる形態で、例えば、意図タグＩＤとして出力される。
【００２３】
ステップＳ２０５では、対話抽出部１０５は、ステップＳ２０２で入力された発話から、意図タグ、属性、属性値、及びアクション内容のいずれかの情報を抽出し、音声認識結果、意図認識結果、抽出した情報を関連付けて対話ログ記憶部１１１に記録する。ステップＳ２０５の処理については後述する。
【００２４】
ステップＳ２０６では、対話が終了したか否かが判断される。例えば、対話終了を示す発話が検出された場合やオペレータがアクションを実行した場合に、対話が終了したと判断される。対話が続く場合、ステップＳ２０２に戻る。ステップＳ２０２に戻ると、次の発話が生じる。図３の対話例では、オペレータが「レンタカーの受け取り場所ですね？」と発話する。この発話についてステップＳ２０３、Ｓ２０４、Ｓ２０５の処理が実行される。同様にして、オペレータの発話「空港はどちらでしょうか？」、ユーザの発話「○○空港です。」、オペレータの発話「どちらの航空会社をお使いですか？」、ユーザの発話「××航空です。」、オペレータの発話「レンタカーの受け取り場所の地図を送付します。」が順次に処理される。オペレータは、「レンタカーの受け取り場所の地図を送付します。」と発話するとともに、コンピュータ端末を操作して地図データをユーザの端末に送信する。対話抽出部１０５は、発話「レンタカーの受け取り場所の地図を送付します。」の意図理解結果に基づいてオペレータのアクションを検出する。対話抽出部１０５は、オペレータが応答中に実行したアクションの内容を取得し対話ログ記憶部１１１に記録する。アクションとしては、例えば、図６に示すように、「レンタカー係り転送」、「フライト時刻表表示」、「空港施設情報表示」、「レンタカー検索」などがある。アクションはアクションＩＤに対応付けられている。
【００２５】
対話が終了すると、ステップＳ２０７に進む。ステップＳ２０７では、対話抽出部１０５は、ユーザとオペレータとの対話が終了したとして、対話の終了を示す対話終了ラベルを対話ログ記憶部１１１に記録する。対話ログ記憶部１１１では、１つの対話に関するログは対話開始ラベル及び対話終了ラベル間に記録される。１つの対話に関する対話ログには、対話の分析結果、シナリオ特徴語、意図タグ、属性及びその意味クラス、属性値及びその意味クラス、並びに、アクション内容が含まれている。
【００２６】
ステップＳ２０５の処理をより詳細に説明する。  
ステップＳ２０５−１では、対話抽出部１０５は、ステップＳ２０２で入力された発話の種類が確認である場合、この発話及びそれと対になる発話からシナリオ特徴語を抽出する。具体的には、対話抽出部１０５は、一方（例えばオペレータ）の確認の発話とその直前の他方（例えばユーザ）の発話とに共通する単語をシナリオ特徴語として抽出する。図３の対話例では、確認の発話はオペレータの発話「レンタカーの受け取り場所ですね？」である。この発話と対になる発話は、直前のユーザの発話「この前予約したレンタカーはどこで受け取るんだったっけ。」である。共通の単語は、「レンタカー」及び「受け取る」である。従って、「レンタカー」及び「受け取る」がシナリオ特徴語として抽出される。
【００２７】
ステップＳ２０５−２では、対話抽出部１０５は、発話の種類が質問であるか否かを判定する。発話の種類が質問である場合、ステップＳ２０５−３に進み、そうでなければステップＳ２０５−４に進む。ステップＳ２０５−４では、対話抽出部１０５は、発話の種類が回答であるか否かを判定する。発話の種類が回答である場合、ステップＳ２０５−５に進み、そうでなければステップＳ２０５−６に進む。ステップＳ２０５−６では、対話抽出部１０５は、発話がオペレータのアクションに関連するか否かを判定する。発話がアクションに関連する場合、ステップＳ２０５−８に進み、そうでなければステップＳ２０５−７に進む。
【００２８】
対話抽出部１０５は、質問の発話から属性を取得し（ステップＳ２０５−３）、その質問の発話と対をなす回答の発話から属性値を取得する（ステップＳ２０５−５）。意味クラスは、図７に示すように、階層的に意味を分類したものであり得る。なお、意味クラスは階層構造で表現されなくてもよい。属性値は意図タグによって示される意図を遂行するための引数である。
【００２９】
具体的には、対話抽出部１０５は、質問の発話と回答の発話とに共通の意味クラスを持つ単語のうち、質問の発話中の単語を属性として取得し、回答の発話中の単語を属性値として取得する。図３の対話例では、オペレータの質問「空港はどちらでしょうか？」に対するユーザの回答は「○○空港です。」であり、これらの発話に共通する意味クラスは「Location_STATION_AIR」である。オペレータの発話「空港はどちらでしょうか？」において意味クラスが「Location_STATION_AIR」である単語は「空港」であり、「空港」が属性として抽出される。ユーザの発話「○○空港です。」において意味クラス「Location_STATION_AIR」を持つ単語は「○○空港」であり、「○○空港」が属性値として抽出される。さらに、オペレータの質問「どちらの航空会社をお使いですか？」に対するユーザの回答は「××航空です。」であり、これらの発話に共通する意味クラスは「Organization_COMPANEY_AIR」である。オペレータの発話「どちらの航空会社をお使いですか？」において意味クラスが「Organization_COMPANEY_AIR」である単語は「航空会社」であり、「航空会社」が属性として抽出される。ユーザの発話「××航空です。」において意味クラスが「Organization_COMPANEY_AIR」である単語は「××航空」であり、「××航空」が属性値として抽出される。図３の対話例からは、属性「空港」、属性値「○○空港」、意味クラス「Location_STATION_AIR」の組みと、属性「航空会社」、属性値「××航空」、意味クラス「Organization_COMPANEY_AIR」の組みとが得られる。
【００３０】
なお、対話抽出部１０５は、確認の発話とこの発話と対をなす発話とに出現する同じ単語をシナリオ共通語として抽出する上記例に限らず、質問と回答の対などのオペレータの発話とユーザの発話の対に出現する同じ単語をシナリオ共通語として抽出してもよい。
【００３１】
対話抽出部１０５は、オペレータのアクションを検出すると、アクション内容を取得する（ステップＳ２０５−８）。アクション内容は、オペレータがシステムに対して実際に行った操作を含む。図８に、図３に示した対話例に関連してオペレータがアプリケーションを操作した場合に得られるアクション内容の例を示す。図８に示されるアクション内容は、レンタカーの受け取り場所を示した地図を送付するものである。
【００３２】
対話抽出部１０５は、質問、回答、及びアクションに関連する発話のいずれでもない発話から意図タグを取得する（ステップ２０５−７）。この発話は対話の目的遂行に貢献しない意図を有する発話として対話ログ記憶部１１１に記録される。
【００３３】
図９は、図３に示した対話例に関連する対話ログを示している。図９において、「START OPERATOR」が対話開始ラベルであり、「END OPERATOR」が対話終了ラベルである。発話及びアクションに関する情報は、対話開始ラベル及び対話終了ラベル間に記録されている。図９の例では、発話のログは、コロン区切りで、発話の対象者：発話の種類：発話内容：意図タグのように、記述されている。発話内容は、音声認識結果、単語、その意味クラスを含む。意味クラスは単語の直後の括弧内に記載されている。また、アクションのログは、コロン区切りで、アクションの対象者：アクション内容のように、記述されている。
【００３４】
図１０は、対話ログからシナリオを構築する処理手順を概略的に示している。図１０のステップＳ３０１では、シナリオ構築部１０６は、対話ログ記憶部１１１から対話ログを読み込み、読み込んだ対話ログからシナリオ構築の対象となる対話に関する対話開始ラベル及び対話終了ラベルを抽出する。ステップＳ３０２では、シナリオ構築部１０６は、対話開始ラベル及び対話終了ラベル間のログを読み込む。ステップＳ３０３では、シナリオ構築部１０６は、「入力」、「動作」、及び「状態」をシナリオの構成単位として生成する。図１１Ａ及び１１Ｂは、図９の対話ログに基づいて構築されたシナリオの例を示す。図１１Ａに示されるシナリオは、３つの状態を含む。図１１Ｂに示されるシナリオは１つの状態を含む。入力は意図タグ及び属性を含む。動作は動作タグを含む。
【００３５】
ステップＳ３０４では、シナリオ構築部１０６は、種類が質問である発話と種類が回答である発話とに共通の意味クラス及びその意味クラスの単語を取得する。ここで、「共通」は、「同じ」又は「包含関係にある」という意味を持つ用語として用いている。シナリオ構築部１０６は、取得した単語（又は意味クラス）を入力の属性として使用する。
【００３６】
ステップＳ３０４の処理をより詳細に説明する。ステップＳ３０４−１では、シナリオ構築部１０６は、種類が質問である発話から単語を属性候補として取得し、メモリ上に保持する。ステップＳ３０４−２では、シナリオ構築部１０６は、その次の発話の種類が回答である場合、その発話から単語を属性候補として取得し、メモリ上に保持する。ステップＳ３０４−３では、ステップＳ３０４−１及びステップＳ３０４−２で取得した単語の意味クラスを比較し、共通の意味クラスを持つ単語を属性であるとする。例えば、オペレータの発話「空港はどちらでしょうか？」とユーザの発話「○○空港です。」の対からは空港が属性として取得される。なお、属性の取得方法は、ステップＳ２０５−３の処理に関して説明したものと同様のものであってもよい。図９の対話ログからは、２つの属性「空港」及び「航空会社」が得られる。
【００３７】
ステップＳ３０４−３で属性が得られた場合、ステップＳ３０４−５に進む。ステップＳ３０４−５では、シナリオ構築部１０６は、ステップＳ３０４−３で得られた属性を用いて入力条件を生成する。具体的には、シナリオ構築部１０６は、属性を、種類が要求である直近の発話の意図タグに対応する入力属性としてシナリオに登録する。
【００３８】
質問の発話の次の発話が回答でない場合のように属性が得らなかった場合、ステップＳ３０４−４に進む。ステップＳ３０４−４では、シナリオ構築部１０６は、オペレータの質問に対してユーザが質問で返したか否かを判断する。例えば、図１２に示される対話例では、オペレータの質問「ターミナルはどちらですか？」に対してユーザが「えっ？わかりません。」と応答している。このように質問に対する発話の種類が回答でない場合、シナリオ構築部１０６は、シナリオの冗長応答と判定し（他の応答の種類として判定してもよい）、すなわち、効率が悪いと判断し、構築中のシナリオの評価を低く設定する。ステップＳ３０４−６では、シナリオ構築部１０６は、種類が回答である発話を待つ。シナリオ構築部１０６は、種類が回答である発話を検出すると、質問の発話と回答の発話の対から属性を取得し、その属性に基づいて入力条件を生成する。
【００３９】
ステップＳ３０４−４において質問の発話の次の発話の種類が質問でない場合、ステップＳ３０４−７に進む。Ｓ３０４−７では、意図理解部１０２により意図タグを取得し、Ｓ３０４−５で生成した入力条件と合わせて「入力」を生成する。
【００４０】
ステップＳ３０５では、シナリオ構築部１０６は対話ログの読み込みを終了する。ステップＳ３０６では、シナリオ構築部１０６は、アクション内容に含まれる単語を意味クラスで置き換えて変数とする。ステップＳ３０７では、シナリオ構築部１０６は、構築したシナリオをシナリオ記憶部１１０に保存する。シナリオは、シナリオ特徴語によって検索可能なように、シナリオ特徴語と関連付けて保存される。
【００４１】
なお、シナリオは、図１１Ａの例のように、ユーザとオペレータとの対話を忠実に再現するように構築されてもよく、図１１Ｂの例のように、必要な属性を一度に受け付けるように構築されてもよい。
【００４２】
シナリオ更新部１０７は、シナリオ記憶部１１０に記憶されたシナリオを対話制御部１０３が実行できるオブジェクトに変換し、シナリオオブジェクトＤＢ１１４に追加する。更新のタイミングは、自動でもよく、管理者による操作に基づいていてもよい。複数のオペレータに関して同時に同じようなシナリオが構築される可能性がある。シナリオ記憶部１１０は、図１３に示すように、シナリオを、シナリオ特徴語、状態数、応答ステップ数、応答失敗数に関連付けて格納する。応答失敗数は、オペレータの質問に対してユーザが回答以外の発話をした場合などの応答に失敗した回数を示す。状態数、応答ステップ数、応答失敗数は、対話システム１００の管理者がシナリオをシナリオオブジェクトＤＢ１１１に追加するか否かを決定する際に使用される、シナリオを評価するための評価データの例である。シナリオ更新部１０７は、対話システム１００の管理者がシナリオオブジェクトＤＢ１１４に追加するシナリオを選択できるように、シナリオとともに評価データを表示することができる。
【００４３】
図１４は、応答中のオペレータに、実行すべきアクションの候補を提示する手順を示している。図１４のステップＳ４０１では、シナリオ検索部１１３は、オペレータの応答中にユーザとオペレータとの対話からシナリオ特徴語を抽出する。具体的には、シナリオ検索部１１３は、種類が確認である発話とそれと対になる発話とに共通する単語をシナリオ特徴語として抽出する。
【００４４】
ステップＳ４０２では、シナリオ検索部１１３は、シナリオ特徴語を検索キーとして用いてシナリオ記憶部１１０を検索する。ステップＳ４０３では、シナリオ特徴語の全て又は一部が一致したシナリオである類似シナリオがあるか否かが判断される。類似シナリオがある場合、ステップＳ４０４に進み、そうでなければ処理終了となる。
【００４５】
ステップＳ４０４では、シナリオ検索部１１３は、類似シナリオに含まれるアクション内容を取得する。ステップＳ４０５では、シナリオ検索部１１３は、対話状態表示部１１２を通じて、取得したアクション内容をアクション候補として表示する。オペレータは、表示されたアクション候補を参考にして、実行するアクションを決定する。  
このようにアクション候補を表示することにより、オペレータを補助することができる。
【００４６】
図１５は、対話状態表示部１１２が表示する内容例を示している。対話状態表示部１１２は、会話モニタ、意図理解モニタ、及び操作モニタを備える。会話モニタは、音声認識部１０１によるユーザとオペレータとの対話に対する音声認識結果を表示する。意図理解モニタは、意図理解部１０２によるユーザとオペレータとの対話に対する意図理解結果を表示する。操作モニタは、シナリオ検索部１１３によって取得されたアクション候補を表示する。図１５の例では、３つのアクション候補が表示されている。
【００４７】
対話状態表示部１１２を備えることにより、オペレータがユーザの要求を視覚的に確認することができる。音声認識結果及び意図理解結果に不備がある場合、有用なシナリオを構築するためには、音声認識結果及び意図理解結果を修正する必要がある。図１５の例では、音声認識において誤認識が発生したために、意図理解が失敗している。応答中に音声認識結果及び意図理解結果をオペレータに提示することで、オペレータが音声認識結果及び意図理解結果を修正することが可能になる。
【００４８】
以上のように、本実施形態によれば、ユーザとオペレータとの対話の分析結果及びオペレータのアクションを含む対話ログに基づいてシナリオを構築することにより、必要なシナリオを対話システムに容易に追加することができる。
【００４９】
なお、実施形態の対話システム１００は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。すなわち、音声認識部１０１、意図理解部１０２、対話制御部１０３、応答生成部１０４、対話抽出部１０５、シナリオ構築部１０６、シナリオ更新部１０７、対話状態表示部１１２、シナリオ検索部１１３は、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することができる。このとき、対話システムは、上記のプログラムをコンピュータ装置に予めインストールすることで実現してもよいし、ＣＤ−ＲＯＭなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現してもよい。また、対話ログ記憶部、シナリオ記憶部、辞書記憶部、及び意図記憶部は、上記のコンピュータ装置に内蔵あるいは外付けされたメモリ、ハードディスク若しくはＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒなどの記憶媒体などを適宜利用して実現することができる。
【００５０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５１】
１００…対話システム、１０１…音声認識部、１０２…意図理解部、１０３…対話制御部、１０４…応答生成部、１０５…対話抽出部、１０６…シナリオ構築部、１０７…シナリオ更新部、１０８…辞書記憶部、１０９…意図モデル記憶部、１１０…シナリオ記憶部、１１１…対話ログ記憶部、１１２…対話状態表示部、１１３…シナリオ検索部、１１４…シナリオオブジェクトデータベース。
【図１】
2015176099.tif 000003
【図２】
2015176099.tif 000004
【図３】
2015176099.tif 000005
【図４】
2015176099.tif 000006
【図５】
2015176099.tif 000007
【図６】
2015176099.tif 000008
【図７】
2015176099.tif 000009
【図８】
2015176099.tif 000010
【図９】
2015176099.tif 000011
【図１０】
2015176099.tif 000012
【図１１Ａ】
2015176099.tif 000013
【図１１Ｂ】
2015176099.tif 000014
【図１２】
2015176099.tif 000015
【図１３】
2015176099.tif 000016
【図１４】
2015176099.tif 000017
【図１５】
2015176099.tif 000018