(57)【要約】【課題】  ユーザの対話による要求に対して自動応答からオペレータがその応答を引き継いだ場合に、次回の同様な要求に対して自動応答を可能にする。【解決手段】  対話システムは、予め登録されたシナリオの中からユーザの発話に適合するシナリオを選択し、そのシナリオに従って自動応答する。これに用いられる対話システム構築支援装置において、失敗判断部は、自動応答の失敗の有無を予め決められた条件に従って判断する。応答切替部は、自動応答が失敗したと判断された場合に、オペレータにユーザとの対話を引き継いで応答させる。応答認識部は、オペレータが応答した処理内容を認識する。学習処理部は、失敗判断部で失敗したと判断した要因と応答認識部で認識したオペレータの応答処理内容との関係を学習する。シナリオ更新部は、学習結果に基づいてシナリオの修正、追加を行う。【選択図】図１３
2018159729.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」の組みとが得られる。
【００３１】
なお、対話抽出部１０５は、確認の発話とこの発話と対をなす発話とに出現する同じ単語をシナリオ共通語として抽出する上記例に限らず、質問と回答の対などのオペレータの発話とユーザの発話の対に出現する同じ単語をシナリオ共通語として抽出してもよい。
【００３２】
対話抽出部１０５は、オペレータのアクションを検出すると、アクション内容を取得する（ステップＳ２０５−８）。アクション内容は、オペレータがシステムに対して実際に行った操作を含む。アクション内容は、レンタカーの受け取り場所を示した地図を送付するものである。
【００３３】
対話抽出部１０５は、質問、回答、及びアクションに関連する発話のいずれでもない発話から意図タグを取得する（ステップ２０５−７）。この発話は対話の目的遂行に貢献しない意図を有する発話として対話ログ記憶部１１１に記録される。
発話及びアクションに関する情報は、対話開始ラベル及び対話終了ラベル間に記録されている。発話のログは、コロン区切りで、発話の対象者：発話の種類：発話内容：意図タグのように、記述されている。発話内容は、音声認識結果、単語、その意味クラスを含む。意味クラスは単語の直後の括弧内に記載されている。また、アクションのログは、コロン区切りで、アクションの対象者：アクション内容のように、記述されている。
【００３４】
図８は、対話ログからシナリオを構築する処理手順を概略的に示している。図８のステップＳ３０１では、シナリオ構築部１０６は、対話ログ記憶部１１１から対話ログを読み込み、読み込んだ対話ログからシナリオ構築の対象となる対話に関する対話開始ラベル及び対話終了ラベルを抽出する。ステップＳ３０２では、シナリオ構築部１０６は、対話開始ラベル及び対話終了ラベル間のログを読み込む。ステップＳ３０３では、シナリオ構築部１０６は、「入力」、「動作」、及び「状態」をシナリオの構成単位として生成する。
【００３５】
ステップＳ３０４では、シナリオ構築部１０６は、種類が質問である発話と種類が回答である発話とに共通の意味クラス及びその意味クラスの単語を取得する。ここで、「共通」は、「同じ」又は「包含関係にある」という意味を持つ用語として用いている。シナリオ構築部１０６は、取得した単語（又は意味クラス）を入力の属性として使用する。
【００３６】
ステップＳ３０４の処理をより詳細に説明する。ステップＳ３０４−１では、シナリオ構築部１０６は、種類が質問である発話から単語を属性候補として取得し、メモリ上に保持する。ステップＳ３０４−２では、シナリオ構築部１０６は、その次の発話の種類が回答である場合、その発話から単語を属性候補として取得し、メモリ上に保持する。ステップＳ３０４−３では、ステップＳ３０４−１及びステップＳ３０４−２で取得した単語の意味クラスを比較し、共通の意味クラスを持つ単語を属性であるとする。例えば、オペレータの発話「空港はどちらでしょうか？」とユーザの発話「○○空港です。」の対からは空港が属性として取得される。なお、属性の取得方法は、ステップＳ２０５−３の処理に関して説明したものと同様のものであってもよい。
【００３７】
ステップＳ３０４−３で属性が得られた場合、ステップＳ３０４−５に進む。ステップＳ３０４−５では、シナリオ構築部１０６は、ステップＳ３０４−３で得られた属性を用いて入力条件を生成する。具体的には、シナリオ構築部１０６は、属性を、種類が要求である直近の発話の意図タグに対応する入力属性としてシナリオに登録する。
【００３８】
質問の発話の次の発話が回答でない場合のように属性が得らなかった場合、ステップＳ３０４−４に進む。ステップＳ３０４−４では、シナリオ構築部１０６は、オペレータの質問に対してユーザが質問で返したか否かを判断する。例えば、図９に示される対話例では、オペレータの質問「ターミナルはどちらですか？」に対してユーザが「えっ？わかりません。」と応答している。このように質問に対する発話の種類が回答でない場合、シナリオ構築部１０６は、シナリオの冗長応答と判定し（他の応答の種類として判定してもよい）、すなわち、効率が悪いと判断し、構築中のシナリオの評価を低く設定する。ステップＳ３０４−６では、シナリオ構築部１０６は、種類が回答である発話を待つ。シナリオ構築部１０６は、種類が回答である発話を検出すると、質問の発話と回答の発話の対から属性を取得し、その属性に基づいて入力条件を生成する。
【００３９】
ステップＳ３０４−４において質問の発話の次の発話の種類が質問でない場合、ステップＳ３０４−７に進む。Ｓ３０４−７では、意図理解部１０２により意図タグを取得し、Ｓ３０４−５で生成した入力条件と合わせて「入力」を生成する。
ステップＳ３０５では、シナリオ構築部１０６は対話ログの読み込みを終了する。ステップＳ３０６では、シナリオ構築部１０６は、アクション内容に含まれる単語を意味クラスで置き換えて変数とする。ステップＳ３０７では、シナリオ構築部１０６は、構築したシナリオをシナリオ記憶部１１０に保存する。シナリオは、シナリオ特徴語によって検索可能なように、シナリオ特徴語と関連付けて保存される。
【００４０】
なお、シナリオは、ユーザとオペレータとの対話を忠実に再現するように構築されてもよく、必要な属性を一度に受け付けるように構築されてもよい。
シナリオ更新部１０７は、シナリオ記憶部１１０に記憶されたシナリオを対話制御部１０３が実行できるオブジェクトに変換し、シナリオオブジェクトＤＢ１１４に追加する。更新のタイミングは、自動でもよく、管理者による操作に基づいていてもよい。複数のオペレータに関して同時に同じようなシナリオが構築される可能性がある。シナリオ記憶部１１０は、図１０に示すように、シナリオを、シナリオ特徴語、状態数、応答ステップ数、応答失敗数に関連付けて格納する。応答失敗数は、オペレータの質問に対してユーザが回答以外の発話をした場合などの応答に失敗した回数を示す。状態数、応答ステップ数、応答失敗数は、対話システム１００の管理者がシナリオをシナリオオブジェクトＤＢ１１１に追加するか否かを決定する際に使用される、シナリオを評価するための評価データの例である。シナリオ更新部１０７は、対話システム１００の管理者がシナリオオブジェクトＤＢ１１４に追加するシナリオを選択できるように、シナリオとともに評価データを表示することができる。
【００４１】
図１１は、応答中のオペレータに、実行すべきアクションの候補を提示する手順を示している。図１１のステップＳ４０１では、シナリオ検索部１１３は、オペレータの応答中にユーザとオペレータとの対話からシナリオ特徴語を抽出する。具体的には、シナリオ検索部１１３は、種類が確認である発話とそれと対になる発話とに共通する単語をシナリオ特徴語として抽出する。
【００４２】
ステップＳ４０２では、シナリオ検索部１１３は、シナリオ特徴語を検索キーとして用いてシナリオ記憶部１１０を検索する。ステップＳ４０３では、シナリオ特徴語の全て又は一部が一致したシナリオである類似シナリオがあるか否かが判断される。類似シナリオがある場合、ステップＳ４０４に進み、そうでなければ処理終了となる。
【００４３】
ステップＳ４０４では、シナリオ検索部１１３は、類似シナリオに含まれるアクション内容を取得する。ステップＳ４０５では、シナリオ検索部１１３は、対話状態表示部１１２を通じて、取得したアクション内容をアクション候補として表示する。オペレータは、表示されたアクション候補を参考にして、実行するアクションを決定する。  
このようにアクション候補を表示することにより、オペレータを補助することができる。
【００４４】
図１２は、対話状態表示部１１２が表示する内容例を示している。対話状態表示部１１２は、会話モニタ、意図理解モニタ、及び操作モニタを備える。会話モニタは、音声認識部１０１によるユーザとオペレータとの対話に対する音声認識結果を表示する。意図理解モニタは、意図理解部１０２によるユーザとオペレータとの対話に対する意図理解結果を表示する。操作モニタは、シナリオ検索部１１３によって取得されたアクション候補を表示する。図１２の例では、３つのアクション候補が表示されている。
【００４５】
対話状態表示部１１２を備えることにより、オペレータがユーザの要求を視覚的に確認することができる。音声認識結果及び意図理解結果に不備がある場合、有用なシナリオを構築するためには、音声認識結果及び意図理解結果を修正する必要がある。図１２の例では、音声認識において誤認識が発生したために、意図理解が失敗している。応答中に音声認識結果及び意図理解結果をオペレータに提示することで、オペレータが音声認識結果及び意図理解結果を修正することが可能になる。
【００４６】
上記実施形態では、オペレータとユーザとの対話に基づいてシナリオを構築、更新する場合について説明したが、対話システムの運用中に自動応答による対話が失敗（破綻）した場合に、シナリオを修正、追加しておくことで、同じ内容での自動応答の失敗を回避する支援処理を説明する。
【００４７】
図１３は、自動応答による対話破綻時の支援処理を示すフローチャートである。図１３において、ユーザの発話を検出すると（ステップＳ５０１）、予め登録されたシナリオの中からユーザの発話に適合するシナリオを選択し、そのシナリオに従って自動応答が開始される（ステップＳ５０２）。ここで、自動応答の内容を監視して、予め決められた条件に従って応答の失敗の有無を判断する（ステップＳ５０３）。応答の失敗を判断する条件としては、例えば、予め登録されたシナリオの中にユーザの発話に適合するシナリオがなかった場合、ユーザの発話から指定するシナリオを理解できなかった場合、ユーザの発話が同一内容を繰り返す場合等がある。
【００４８】
上記ステップＳ５０３で自動応答の失敗が認められた場合、オペレータ応答に切り替え（ステップＳ５０４）、オペレータにユーザとの対話を引き継がせ、応答させる。このとき、オペレータが応答した処理内容を認識し保存する（ステップＳ５０５）。続いて、ステップＳ５０３で得られた失敗判断要因とオペレータの応答処理内容との関係を学習し（ステップＳ５０６）、学習結果に基づいて、同じ要求・要因が生じた場合に自動応答が可能となるように、シナリオの修正・追加（更新処理）を行う（ステップＳ５０７）。
【００４９】
ここで、ステップＳ５０５において、オペレータが応答した内容の認識処理は、オペレータとユーザとの対話を認識し、その対話とオペレータが実行したアクションとを関連付ける。また、ステップＳ５０７のシナリオ更新では、学習処理で得られた失敗判断要因と応答処理内容との関係からシナリオの更新内容を推定し、その推定結果をオペレータに提示することで、シナリオ更新内容が適切か否かをチェックさせることができる。
【００５０】
以上のように、本実施形態によれば、自動応答に際してユーザとの対話が失敗した場合に、ユーザとオペレータとの対話の分析結果及びオペレータのアクションを含む対話ログに基づいてシナリオを構築することにより、必要なシナリオの修正、追加を対話システムに容易に追加することができる。
なお、本実施形態においてはシナリオの更新を例に説明したが、シナリオ自体を更新せずに、意図理解の再学習によってもよい。
【００５１】
具体的には、図１４にあるように、あるシチュエーションにおいて、お客様が「大人と子供２枚のチケットをください」といった場合を想定する。自動応答のシステムにおいて、「大人１枚、子供１枚ですね？」と確認したが、実際のお客様の意図は「大人１枚、子供２枚」だった場合の例である。この場合、対話構築システムでは、「大人１枚、子供１枚」の場合と「大人１枚、子供２枚」の場合の両方の意図があることを再学習する。
仮に、この対話においてオペレータへの切り替えが行われ、「大人１枚、子供２枚」であることが分かった場合には、オペレータの操作モニタに、正しい意図を入力してもらってもよい。また、操作モニタに「対話ログを保存しますか？」や、「新たな意図として追加しますか？」など、意図理解に失敗した結果と、正解の組を作るように促してもよい。これらによって、より簡単に意図の多様性の組を生成することができるようになる。また、意図理解の多様性に対応することで、シナリオの大幅な変更が必要ないため、より簡単に対話システムを構築することができる。
【００５２】
なお、実施形態の支援装置を含む対話システム１００は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。すなわち、音声認識部１０１、意図理解部１０２、対話制御部１０３、応答生成部１０４、対話抽出部１０５、シナリオ構築部１０６、シナリオ更新部１０７、対話状態表示部１１２、シナリオ検索部１１３は、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することができる。
【００５３】
このような支援装置を含む対話システムに適用可能なコンピュータ装置は、図１５に示すように、ＣＰＵ（Central Processing Unit）２０１などの制御装置と、ＲＯＭ（Read Only Memory）２０２やＲＡＭ（Random Access Memory）２０３などの記憶装置と、マイクロホン、操作入力装置、表示装置等が接続される入出力Ｉ／Ｆ２０４と、ネットワークに接続して通信を行う通信Ｉ／Ｆ２０５と、各部を接続するバス２０６を備えている。上記のプログラムをコンピュータ装置に予めインストールすることで実現してもよいし、ＣＤ−ＲＯＭなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現してもよい。また、対話ログ記憶部、シナリオ記憶部、辞書記憶部、及び意図記憶部は、上記のコンピュータ装置に内蔵あるいは外付けされたメモリ、ハードディスク若しくはＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒなどの記憶媒体などを適宜利用して実現することができる。
【００５４】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００５５】
１００…対話システム、１０１…音声認識部、１０２…意図理解部、１０３…対話制御部、１０４…応答生成部、１０５…対話抽出部、１０６…シナリオ構築部、１０７…シナリオ更新部、１０８…辞書記憶部、１０９…意図モデル記憶部、１１０…シナリオ記憶部、１１１…対話ログ記憶部、１１２…対話状態表示部、１１３…シナリオ検索部、１１４…シナリオオブジェクトデータベース、２０１…ＣＰＵ、２０２…ＲＯＭ、２０３…ＲＡＭ、２０４…入出力Ｉ／Ｆ、２０５…通信Ｉ／Ｆ、２０６…バス。
【図１】
2018159729.tif 000003
【図２】
2018159729.tif 000004
【図３】
2018159729.tif 000005
【図４】
2018159729.tif 000006
【図５】
2018159729.tif 000007
【図６】
2018159729.tif 000008
【図７】
2018159729.tif 000009
【図８】
2018159729.tif 000010
【図９】
2018159729.tif 000011
【図１０】
2018159729.tif 000012
【図１１】
2018159729.tif 000013
【図１２】
2018159729.tif 000014
【図１３】
2018159729.tif 000015
【図１４】
2018159729.tif 000016
【図１５】
2018159729.tif 000017