JP2018159729A - 対話システム構築支援装置、方法、及びプログラム - Google Patents
対話システム構築支援装置、方法、及びプログラム Download PDFInfo
- Publication number
- JP2018159729A JP2018159729A JP2017055427A JP2017055427A JP2018159729A JP 2018159729 A JP2018159729 A JP 2018159729A JP 2017055427 A JP2017055427 A JP 2017055427A JP 2017055427 A JP2017055427 A JP 2017055427A JP 2018159729 A JP2018159729 A JP 2018159729A
- Authority
- JP
- Japan
- Prior art keywords
- scenario
- operator
- response
- user
- dialogue
- 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.)
- Pending
Links
Images
Abstract
【課題】 ユーザの対話による要求に対して自動応答からオペレータがその応答を引き継いだ場合に、次回の同様な要求に対して自動応答を可能にする。【解決手段】 対話システムは、予め登録されたシナリオの中からユーザの発話に適合するシナリオを選択し、そのシナリオに従って自動応答する。これに用いられる対話システム構築支援装置において、失敗判断部は、自動応答の失敗の有無を予め決められた条件に従って判断する。応答切替部は、自動応答が失敗したと判断された場合に、オペレータにユーザとの対話を引き継いで応答させる。応答認識部は、オペレータが応答した処理内容を認識する。学習処理部は、失敗判断部で失敗したと判断した要因と応答認識部で認識したオペレータの応答処理内容との関係を学習する。シナリオ更新部は、学習結果に基づいてシナリオの修正、追加を行う。【選択図】図13
Description
本発明の実施形態は、対話システム構築支援装置、方法、及びプログラムに関する。
コールセンター、お問い合わせ窓口等のユーザ応対サービスでは、オペレータの負荷を軽減しつつ、ユーザに適切な情報を提供する自動応答サービスが始まっている。この自動応答サービスには、ユーザの発話に対して自動応答する対話システムが利用される。
このような対話システムは、ユーザから発話による要求があると、その要求を音声認識して、事前に構築されたシナリオに従って自動応答し、シナリオがユーザの要求に適合していない場合には、オペレータが引き継いでユーザの要求に応答するようにしている。ところが、ユーザの要求は次第に多様化され、事前に全ての要求を推定してシナリオを構築しておくことは困難になってきており、オペレータの負担が増大している。
以上のように、従来の対話システムでは、ユーザの要求は次第に多様化され、事前に全ての要求を推定してシナリオを構築しておくことは困難になってきており、オペレータの負担が増大しているという課題があった。
本実施形態は上記課題に鑑みなされたもので、ユーザの対話による要求に対して自動応答からオペレータがその応答を引き継いだ場合に、次回の同様な要求に対して自動応答を可能にする対話システム構築支援装置、方法及びプログラムを提供することを目的とする。
本実施形態は上記課題に鑑みなされたもので、ユーザの対話による要求に対して自動応答からオペレータがその応答を引き継いだ場合に、次回の同様な要求に対して自動応答を可能にする対話システム構築支援装置、方法及びプログラムを提供することを目的とする。
一実施形態に係る対話システムは、予め登録されたシナリオの中からユーザの発話に適合するシナリオを選択し、そのシナリオに従って自動応答する。これに用いられる対話システム構築支援装置において、失敗判断部は、自動応答の失敗の有無を予め決められた条件に従って判断する。応答切替部は、自動応答が失敗したと判断された場合に、オペレータにユーザとの対話を引き継いで応答させる。応答認識部は、オペレータが応答した処理内容を認識する。学習処理部は、失敗判断部で失敗したと判断した要因と応答認識部で認識したオペレータの応答処理内容との関係を学習する。シナリオ更新部は、学習結果に基づいてシナリオの修正、追加を行う。
以下、本発明に係る実施形態について、図面を参照して説明する。
(第1の実施形態)
以下、図面を参照しながら実施形態を説明する。実施形態は、ユーザの発話に対して自動応答する対話システムに関する。この対話システムは、例えばコンタクトセンターで利用される。対話システムは、予め登録されたシナリオ(対話シナリオ)の中からユーザの発話に適合するシナリオを選択し、そのシナリオに従って自動応答する。対話システムが自動応答に失敗した場合には、オペレータがユーザとの対話を引き継いで応答する。
(第1の実施形態)
以下、図面を参照しながら実施形態を説明する。実施形態は、ユーザの発話に対して自動応答する対話システムに関する。この対話システムは、例えばコンタクトセンターで利用される。対話システムは、予め登録されたシナリオ(対話シナリオ)の中からユーザの発話に適合するシナリオを選択し、そのシナリオに従って自動応答する。対話システムが自動応答に失敗した場合には、オペレータがユーザとの対話を引き継いで応答する。
上記構成による対話システムにおいて、本実施形態に係る対話システム構築支援装置は、自動応答に失敗した原因、ユーザとオペレータとの対話及びオペレータのアクション(行動)を学習し、その学習結果に基づいてシナリオの修正、追加を行う。その結果、対話システムは、その後に同様の要求を受けた場合にうまく自動応答することが可能になる。さらに、シナリオ構築コストを削減することができる。また、必要なオペレータの人数を低減させることができる。
図1は、実施形態に係る対話システム100を概略的に示している。対話システム100は、図1に示されるように、音声認識部101、意図理解部102、対話制御部103、応答生成部104、対話抽出部105、シナリオ構築部106、シナリオ更新部107、辞書記憶部108、意図モデル記憶部109、シナリオ記憶部110、対話ログ記憶部(対話情報記憶部ともいう)111、対話状態表示部112、シナリオ検索部113、及びシナリオオブジェクトデータベース(DB)114を備える。
まず、対話システム100の自動応答処理について簡単に説明する。一例では、ユーザは、携帯電話やスマートフォンなどの端末を用いて、ネットワークを介して対話システム100と通信する。対話システム100は、自動応答処理によって、ネットワークを介して端末にサービスを提供する。例えば、対話システム100は、後述する例のように、ユーザの目的地が示された地図のデータを端末に送信する。
対話システム100は、音声認識部101、意図理解部102、対話制御部103、応答生成部104、辞書記憶部108、意図モデル記憶部109、及びシナリオオブジェクトDB114を用いて、自動応答処理を実行する。音声認識部101は、ユーザの発話に対して音声認識を行い、その発話に対応する自然言語テキスト(以下、単にテキストと記載する。)を生成する。意図理解部102は、辞書記憶部108及び意図モデル記憶部109を参照してテキストを分析することで発話の意図を理解し、意図理解結果を出力する。対話制御部103は、シナリオオブジェクトDB114から意図理解結果に対応するシナリオを選択し、選択したシナリオに規定されたアクション(例えば地図データの送信)を実行する。応答生成部104は、対話制御部103が実行するアクションに対応する応答文を生成する。応答文は、音声合成技術によって音声に変換され出力される。
次に、対話システム100のシナリオ構築処理について説明する。
対話システム100では、ユーザの要求に適合するシナリオがシナリオオブジェクトDB114中に存在しないなどの理由により、ユーザとの対話に失敗することがある。ユーザとの対話に失敗した場合には、対話制御部103は、ユーザとのコネクションをオペレータに転送する。さらに、規定の条件が応答中に発生した場合にも、対話制御部103は、ユーザとのコネクションをオペレータに転送することができる。それにより、オペレータとユーザとの対話が開始する。
対話システム100では、ユーザの要求に適合するシナリオがシナリオオブジェクトDB114中に存在しないなどの理由により、ユーザとの対話に失敗することがある。ユーザとの対話に失敗した場合には、対話制御部103は、ユーザとのコネクションをオペレータに転送する。さらに、規定の条件が応答中に発生した場合にも、対話制御部103は、ユーザとのコネクションをオペレータに転送することができる。それにより、オペレータとユーザとの対話が開始する。
対話システム100は、ユーザとオペレータとの対話を分析する。対話システム100は、その後に同様の要求を受けた場合にうまく応答することができるように、分析結果に基づいて新たなシナリオを構築する。シナリオ構築処理には、音声認識部101、意図理解部102、対話抽出部105、シナリオ構築部106、シナリオ更新部107、辞書記憶部108、意図モデル記憶部109、シナリオ記憶部110、対話ログ記憶部111、対話状態表示部112、及びシナリオ検索部113が使用される。シナリオ構築処理に関連するこれらの要素を含む部分を対話システム構築支援部と称する。対話システム構築支援部は、図1に示されるように、対話システム100に組み入れられてもよく、対話システム100の外部に設けられていてもよい。対話システム構築支援部が対話システム100に組み入れられている場合、音声認識部101、意図理解部102、辞書記憶部108、及び意図モデル記憶部109は、自動応答処理及びシナリオ構築処理において共用することができる。
音声認識部101は、ユーザとオペレータとの発話に含まれる複数の発話に対して音声認識を行い、複数の発話それぞれに対応する複数のテキストを生成する。すなわち、音声認識部101は、音声認識技術によって、複数の発話を複数のテキストにそれぞれ変換する。
意図理解部102は、音声認識部101によって生成された各テキストに基づいて、そのテキストに対応する発話の意図を理解する。具体的には、意図理解部102は、テキストに対して形態素解析を行うことによりそのテキストを形態素単位の単語に分解する。続いて、意図理解部102は、辞書記憶部108に記憶されている辞書を参照して、固有表現抽出技術によって、名詞、固有名詞、動詞、未知語の単語それぞれに対して、単語の意味を表す意味クラスを割り当てる。辞書には、複数の単語が意味クラスに関連付けて登録されている。
意図理解部102は、形態素や単語の意味クラスや単語の表記などの素性を用いて意図モデル記憶部109に記憶されている意図モデルを参照することにより発話の意図を理解し、意図理解結果を出力する。意図モデルは、多数の発話サンプルから意味クラス及び単語などを素性とした学習により予め生成される。意図理解の方法は、ここで説明した例に限定されない。
対話抽出部105は、意図理解部102から意図理解結果を受け取り、オペレータが応答中に対話システム100に対して行った操作をオペレータのアクションとして検出する。アクションの検出は、オペレータが操作するコンピュータ端末から受け取る情報に基づくことができる。具体的には、対話抽出部105は、オペレータが実行したアクションの内容を示す情報をコンピュータ端末から受け取ることができる。対話抽出部105は、ユーザとオペレータとの対話の分析結果及びオペレータのアクションを互いに関連付けて対話ログ記憶部111に記録する。対話の分析結果は、ユーザの発話に関する音声認識結果及び意図理解結果、並びに、オペレータの発話に関する音声認識結果及び意図理解結果を含む。
シナリオ構築部106は、対話ログ記憶部111を参照してシナリオを構築し、そのシナリオをシナリオ記憶部110に格納する。シナリオ更新部107は、シナリオ記憶部110を参照してシナリオオブジェクトDB114を更新する。具体的には、シナリオ更新部107は、シナリオ記憶部110に格納されているシナリオを対話制御部103が実行することが可能なオブジェクトに変換し、シナリオオブジェクトDB114に任意のタイミングで追加する。一例では、シナリオ記憶部110に格納されているシナリオはテキストベースのシナリオであり、シナリオオブジェクトDB114に格納されているシナリオはオブジェクトベースのシナリオである。なお、シナリオオブジェクトDB114に格納されているシナリオはテキストベースのシナリオであってもよい。
シナリオ検索部113は、ユーザとオペレータとの対話からシナリオ特徴語を抽出し、シナリオ記憶部110からそのシナリオ特徴語に関連付けられているシナリオを類似シナリオとして選択する。シナリオ特徴語については後述する。対話状態表示部112は、類似シナリオを表示する。また、対話状態表示部112は、ユーザとオペレータとの対話の分析結果を表示する。
次に、対話システム100の動作について説明する。
図2は、対話システム100の対話ログ記録の手順を概略的に示している。ここでは、図3に示す対話を例に挙げて具体的に説明する。図2のステップS201では、ユーザとオペレータとの対話が開始する。このとき、対話抽出部105は、対話の開始を示す対話開始ラベルを対話ログ記憶部111に記録する。
図2は、対話システム100の対話ログ記録の手順を概略的に示している。ここでは、図3に示す対話を例に挙げて具体的に説明する。図2のステップS201では、ユーザとオペレータとの対話が開始する。このとき、対話抽出部105は、対話の開始を示す対話開始ラベルを対話ログ記憶部111に記録する。
ステップS202では、ユーザ又はオペレータが発話する。図3の対話例では、最初にユーザが「この前予約したレンタカーはどこで受け取るんだったっけ。」と発話する。ステップS203では、音声認識部101は、ステップS202で入力された発話に対して音声認識を行う。図3の対話例では、音声認識結果としてテキスト「この前予約したレンタカーはどこで受け取るんだったっけ。」が得られる。
ステップS204では、意図理解部102は、音声認識結果から発話の意図を理解し、意図理解結果を出力する。意図理解結果は、発話の種類、意図タグ、及び意味クラスを含む。発話の種類は、対話における発話の役割を示す。発話の種類には、図4に示すように、「要求」、「挨拶」、「質問」、「応答」、「提案」、「確認」、「回答」などがある。発話の種類は、機械が理解できる形態で、例えば、発話種類IDとして出力される。意図タグは、図5に示すような「フライト時刻表表示」、「レンタカー検索」、「レンタカー場所表示」、「ホテル料金検索」、「ホテル予約」などの意図を示す情報である。意図タグは、機械が理解できる形態で、例えば、意図タグIDとして出力される。
ステップS205では、対話抽出部105は、ステップS202で入力された発話から、意図タグ、属性、属性値、及びアクション内容のいずれかの情報を抽出し、音声認識結果、意図認識結果、抽出した情報を関連付けて対話ログ記憶部111に記録する。ステップS205の処理については後述する。
ステップS206では、対話が終了したか否かが判断される。例えば、対話終了を示す発話が検出された場合やオペレータがアクションを実行した場合に、対話が終了したと判断される。対話が続く場合、ステップS202に戻る。ステップS202に戻ると、次の発話が生じる。図3の対話例では、オペレータが「レンタカーの受け取り場所ですね?」と発話する。この発話についてステップS203、S204、S205の処理が実行される。同様にして、オペレータの発話「空港はどちらでしょうか?」、ユーザの発話「○○空港です。」、オペレータの発話「どちらの航空会社をお使いですか?」、ユーザの発話「××航空です。」、オペレータの発話「レンタカーの受け取り場所の地図を送付します。」が順次に処理される。オペレータは、「レンタカーの受け取り場所の地図を送付します。」と発話するとともに、コンピュータ端末を操作して地図データをユーザの端末に送信する。対話抽出部105は、発話「レンタカーの受け取り場所の地図を送付します。」の意図理解結果に基づいてオペレータのアクションを検出する。対話抽出部105は、オペレータが応答中に実行したアクションの内容を取得し対話ログ記憶部111に記録する。アクションとしては、例えば、図6に示すように、「レンタカー係り転送」、「フライト時刻表表示」、「空港施設情報表示」、「レンタカー検索」などがある。アクションはアクションIDに対応付けられている。
対話が終了すると、ステップS207に進む。ステップS207では、対話抽出部105は、ユーザとオペレータとの対話が終了したとして、対話の終了を示す対話終了ラベルを対話ログ記憶部111に記録する。対話ログ記憶部111では、1つの対話に関するログは対話開始ラベル及び対話終了ラベル間に記録される。1つの対話に関する対話ログには、対話の分析結果、シナリオ特徴語、意図タグ、属性及びその意味クラス、属性値及びその意味クラス、並びに、アクション内容が含まれている。
ステップS205の処理をより詳細に説明する。
ステップS205−1では、対話抽出部105は、ステップS202で入力された発話の種類が確認である場合、この発話及びそれと対になる発話からシナリオ特徴語を抽出する。具体的には、対話抽出部105は、一方(例えばオペレータ)の確認の発話とその直前の他方(例えばユーザ)の発話とに共通する単語をシナリオ特徴語として抽出する。図3の対話例では、確認の発話はオペレータの発話「レンタカーの受け取り場所ですね?」である。この発話と対になる発話は、直前のユーザの発話「この前予約したレンタカーはどこで受け取るんだったっけ。」である。共通の単語は、「レンタカー」及び「受け取る」である。従って、「レンタカー」及び「受け取る」がシナリオ特徴語として抽出される。
ステップS205−1では、対話抽出部105は、ステップS202で入力された発話の種類が確認である場合、この発話及びそれと対になる発話からシナリオ特徴語を抽出する。具体的には、対話抽出部105は、一方(例えばオペレータ)の確認の発話とその直前の他方(例えばユーザ)の発話とに共通する単語をシナリオ特徴語として抽出する。図3の対話例では、確認の発話はオペレータの発話「レンタカーの受け取り場所ですね?」である。この発話と対になる発話は、直前のユーザの発話「この前予約したレンタカーはどこで受け取るんだったっけ。」である。共通の単語は、「レンタカー」及び「受け取る」である。従って、「レンタカー」及び「受け取る」がシナリオ特徴語として抽出される。
ステップS205−2では、対話抽出部105は、発話の種類が質問であるか否かを判定する。発話の種類が質問である場合、ステップS205−3に進み、そうでなければステップS205−4に進む。ステップS205−4では、対話抽出部105は、発話の種類が回答であるか否かを判定する。発話の種類が回答である場合、ステップS205−5に進み、そうでなければステップS205−6に進む。ステップS205−6では、対話抽出部105は、発話がオペレータのアクションに関連するか否かを判定する。発話がアクションに関連する場合、ステップS205−8に進み、そうでなければステップS205−7に進む。
対話抽出部105は、質問の発話から属性を取得し(ステップS205−3)、その質問の発話と対をなす回答の発話から属性値を取得する(ステップS205−5)。意味クラスは、図7に示すように、階層的に意味を分類したものであり得る。なお、意味クラスは階層構造で表現されなくてもよい。属性値は意図タグによって示される意図を遂行するための引数である。
具体的には、対話抽出部105は、質問の発話と回答の発話とに共通の意味クラスを持つ単語のうち、質問の発話中の単語を属性として取得し、回答の発話中の単語を属性値として取得する。図3の対話例では、オペレータの質問「空港はどちらでしょうか?」に対するユーザの回答は「○○空港です。」であり、これらの発話に共通する意味クラスは「Location_STATION_AIR」である。オペレータの発話「空港はどちらでしょうか?」において意味クラスが「Location_STATION_AIR」である単語は「空港」であり、「空港」が属性として抽出される。ユーザの発話「○○空港です。」において意味クラス「Location_STATION_AIR」を持つ単語は「○○空港」であり、「○○空港」が属性値として抽出される。
さらに、オペレータの質問「どちらの航空会社をお使いですか?」に対するユーザの回答は「××航空です。」であり、これらの発話に共通する意味クラスは「Organization_COMPANEY_AIR」である。オペレータの発話「どちらの航空会社をお使いですか?」において意味クラスが「Organization_COMPANEY_AIR」である単語は「航空会社」であり、「航空会社」が属性として抽出される。ユーザの発話「××航空です。」において意味クラスが「Organization_COMPANEY_AIR」である単語は「××航空」であり、「××航空」が属性値として抽出される。図3の対話例からは、属性「空港」、属性値「○○空港」、意味クラス「Location_STATION_AIR」の組みと、属性「航空会社」、属性値「××航空」、意味クラス「Organization_COMPANEY_AIR」の組みとが得られる。
さらに、オペレータの質問「どちらの航空会社をお使いですか?」に対するユーザの回答は「××航空です。」であり、これらの発話に共通する意味クラスは「Organization_COMPANEY_AIR」である。オペレータの発話「どちらの航空会社をお使いですか?」において意味クラスが「Organization_COMPANEY_AIR」である単語は「航空会社」であり、「航空会社」が属性として抽出される。ユーザの発話「××航空です。」において意味クラスが「Organization_COMPANEY_AIR」である単語は「××航空」であり、「××航空」が属性値として抽出される。図3の対話例からは、属性「空港」、属性値「○○空港」、意味クラス「Location_STATION_AIR」の組みと、属性「航空会社」、属性値「××航空」、意味クラス「Organization_COMPANEY_AIR」の組みとが得られる。
なお、対話抽出部105は、確認の発話とこの発話と対をなす発話とに出現する同じ単語をシナリオ共通語として抽出する上記例に限らず、質問と回答の対などのオペレータの発話とユーザの発話の対に出現する同じ単語をシナリオ共通語として抽出してもよい。
対話抽出部105は、オペレータのアクションを検出すると、アクション内容を取得する(ステップS205−8)。アクション内容は、オペレータがシステムに対して実際に行った操作を含む。アクション内容は、レンタカーの受け取り場所を示した地図を送付するものである。
対話抽出部105は、質問、回答、及びアクションに関連する発話のいずれでもない発話から意図タグを取得する(ステップ205−7)。この発話は対話の目的遂行に貢献しない意図を有する発話として対話ログ記憶部111に記録される。
発話及びアクションに関する情報は、対話開始ラベル及び対話終了ラベル間に記録されている。発話のログは、コロン区切りで、発話の対象者:発話の種類:発話内容:意図タグのように、記述されている。発話内容は、音声認識結果、単語、その意味クラスを含む。意味クラスは単語の直後の括弧内に記載されている。また、アクションのログは、コロン区切りで、アクションの対象者:アクション内容のように、記述されている。
発話及びアクションに関する情報は、対話開始ラベル及び対話終了ラベル間に記録されている。発話のログは、コロン区切りで、発話の対象者:発話の種類:発話内容:意図タグのように、記述されている。発話内容は、音声認識結果、単語、その意味クラスを含む。意味クラスは単語の直後の括弧内に記載されている。また、アクションのログは、コロン区切りで、アクションの対象者:アクション内容のように、記述されている。
図8は、対話ログからシナリオを構築する処理手順を概略的に示している。図8のステップS301では、シナリオ構築部106は、対話ログ記憶部111から対話ログを読み込み、読み込んだ対話ログからシナリオ構築の対象となる対話に関する対話開始ラベル及び対話終了ラベルを抽出する。ステップS302では、シナリオ構築部106は、対話開始ラベル及び対話終了ラベル間のログを読み込む。ステップS303では、シナリオ構築部106は、「入力」、「動作」、及び「状態」をシナリオの構成単位として生成する。
ステップS304では、シナリオ構築部106は、種類が質問である発話と種類が回答である発話とに共通の意味クラス及びその意味クラスの単語を取得する。ここで、「共通」は、「同じ」又は「包含関係にある」という意味を持つ用語として用いている。シナリオ構築部106は、取得した単語(又は意味クラス)を入力の属性として使用する。
ステップS304の処理をより詳細に説明する。ステップS304−1では、シナリオ構築部106は、種類が質問である発話から単語を属性候補として取得し、メモリ上に保持する。ステップS304−2では、シナリオ構築部106は、その次の発話の種類が回答である場合、その発話から単語を属性候補として取得し、メモリ上に保持する。ステップS304−3では、ステップS304−1及びステップS304−2で取得した単語の意味クラスを比較し、共通の意味クラスを持つ単語を属性であるとする。例えば、オペレータの発話「空港はどちらでしょうか?」とユーザの発話「○○空港です。」の対からは空港が属性として取得される。なお、属性の取得方法は、ステップS205−3の処理に関して説明したものと同様のものであってもよい。
ステップS304−3で属性が得られた場合、ステップS304−5に進む。ステップS304−5では、シナリオ構築部106は、ステップS304−3で得られた属性を用いて入力条件を生成する。具体的には、シナリオ構築部106は、属性を、種類が要求である直近の発話の意図タグに対応する入力属性としてシナリオに登録する。
質問の発話の次の発話が回答でない場合のように属性が得らなかった場合、ステップS304−4に進む。ステップS304−4では、シナリオ構築部106は、オペレータの質問に対してユーザが質問で返したか否かを判断する。例えば、図9に示される対話例では、オペレータの質問「ターミナルはどちらですか?」に対してユーザが「えっ?わかりません。」と応答している。このように質問に対する発話の種類が回答でない場合、シナリオ構築部106は、シナリオの冗長応答と判定し(他の応答の種類として判定してもよい)、すなわち、効率が悪いと判断し、構築中のシナリオの評価を低く設定する。ステップS304−6では、シナリオ構築部106は、種類が回答である発話を待つ。シナリオ構築部106は、種類が回答である発話を検出すると、質問の発話と回答の発話の対から属性を取得し、その属性に基づいて入力条件を生成する。
ステップS304−4において質問の発話の次の発話の種類が質問でない場合、ステップS304−7に進む。S304−7では、意図理解部102により意図タグを取得し、S304−5で生成した入力条件と合わせて「入力」を生成する。
ステップS305では、シナリオ構築部106は対話ログの読み込みを終了する。ステップS306では、シナリオ構築部106は、アクション内容に含まれる単語を意味クラスで置き換えて変数とする。ステップS307では、シナリオ構築部106は、構築したシナリオをシナリオ記憶部110に保存する。シナリオは、シナリオ特徴語によって検索可能なように、シナリオ特徴語と関連付けて保存される。
ステップS305では、シナリオ構築部106は対話ログの読み込みを終了する。ステップS306では、シナリオ構築部106は、アクション内容に含まれる単語を意味クラスで置き換えて変数とする。ステップS307では、シナリオ構築部106は、構築したシナリオをシナリオ記憶部110に保存する。シナリオは、シナリオ特徴語によって検索可能なように、シナリオ特徴語と関連付けて保存される。
なお、シナリオは、ユーザとオペレータとの対話を忠実に再現するように構築されてもよく、必要な属性を一度に受け付けるように構築されてもよい。
シナリオ更新部107は、シナリオ記憶部110に記憶されたシナリオを対話制御部103が実行できるオブジェクトに変換し、シナリオオブジェクトDB114に追加する。更新のタイミングは、自動でもよく、管理者による操作に基づいていてもよい。複数のオペレータに関して同時に同じようなシナリオが構築される可能性がある。シナリオ記憶部110は、図10に示すように、シナリオを、シナリオ特徴語、状態数、応答ステップ数、応答失敗数に関連付けて格納する。応答失敗数は、オペレータの質問に対してユーザが回答以外の発話をした場合などの応答に失敗した回数を示す。状態数、応答ステップ数、応答失敗数は、対話システム100の管理者がシナリオをシナリオオブジェクトDB111に追加するか否かを決定する際に使用される、シナリオを評価するための評価データの例である。シナリオ更新部107は、対話システム100の管理者がシナリオオブジェクトDB114に追加するシナリオを選択できるように、シナリオとともに評価データを表示することができる。
シナリオ更新部107は、シナリオ記憶部110に記憶されたシナリオを対話制御部103が実行できるオブジェクトに変換し、シナリオオブジェクトDB114に追加する。更新のタイミングは、自動でもよく、管理者による操作に基づいていてもよい。複数のオペレータに関して同時に同じようなシナリオが構築される可能性がある。シナリオ記憶部110は、図10に示すように、シナリオを、シナリオ特徴語、状態数、応答ステップ数、応答失敗数に関連付けて格納する。応答失敗数は、オペレータの質問に対してユーザが回答以外の発話をした場合などの応答に失敗した回数を示す。状態数、応答ステップ数、応答失敗数は、対話システム100の管理者がシナリオをシナリオオブジェクトDB111に追加するか否かを決定する際に使用される、シナリオを評価するための評価データの例である。シナリオ更新部107は、対話システム100の管理者がシナリオオブジェクトDB114に追加するシナリオを選択できるように、シナリオとともに評価データを表示することができる。
図11は、応答中のオペレータに、実行すべきアクションの候補を提示する手順を示している。図11のステップS401では、シナリオ検索部113は、オペレータの応答中にユーザとオペレータとの対話からシナリオ特徴語を抽出する。具体的には、シナリオ検索部113は、種類が確認である発話とそれと対になる発話とに共通する単語をシナリオ特徴語として抽出する。
ステップS402では、シナリオ検索部113は、シナリオ特徴語を検索キーとして用いてシナリオ記憶部110を検索する。ステップS403では、シナリオ特徴語の全て又は一部が一致したシナリオである類似シナリオがあるか否かが判断される。類似シナリオがある場合、ステップS404に進み、そうでなければ処理終了となる。
ステップS404では、シナリオ検索部113は、類似シナリオに含まれるアクション内容を取得する。ステップS405では、シナリオ検索部113は、対話状態表示部112を通じて、取得したアクション内容をアクション候補として表示する。オペレータは、表示されたアクション候補を参考にして、実行するアクションを決定する。
このようにアクション候補を表示することにより、オペレータを補助することができる。
このようにアクション候補を表示することにより、オペレータを補助することができる。
図12は、対話状態表示部112が表示する内容例を示している。対話状態表示部112は、会話モニタ、意図理解モニタ、及び操作モニタを備える。会話モニタは、音声認識部101によるユーザとオペレータとの対話に対する音声認識結果を表示する。意図理解モニタは、意図理解部102によるユーザとオペレータとの対話に対する意図理解結果を表示する。操作モニタは、シナリオ検索部113によって取得されたアクション候補を表示する。図12の例では、3つのアクション候補が表示されている。
対話状態表示部112を備えることにより、オペレータがユーザの要求を視覚的に確認することができる。音声認識結果及び意図理解結果に不備がある場合、有用なシナリオを構築するためには、音声認識結果及び意図理解結果を修正する必要がある。図12の例では、音声認識において誤認識が発生したために、意図理解が失敗している。応答中に音声認識結果及び意図理解結果をオペレータに提示することで、オペレータが音声認識結果及び意図理解結果を修正することが可能になる。
上記実施形態では、オペレータとユーザとの対話に基づいてシナリオを構築、更新する場合について説明したが、対話システムの運用中に自動応答による対話が失敗(破綻)した場合に、シナリオを修正、追加しておくことで、同じ内容での自動応答の失敗を回避する支援処理を説明する。
図13は、自動応答による対話破綻時の支援処理を示すフローチャートである。図13において、ユーザの発話を検出すると(ステップS501)、予め登録されたシナリオの中からユーザの発話に適合するシナリオを選択し、そのシナリオに従って自動応答が開始される(ステップS502)。ここで、自動応答の内容を監視して、予め決められた条件に従って応答の失敗の有無を判断する(ステップS503)。応答の失敗を判断する条件としては、例えば、予め登録されたシナリオの中にユーザの発話に適合するシナリオがなかった場合、ユーザの発話から指定するシナリオを理解できなかった場合、ユーザの発話が同一内容を繰り返す場合等がある。
上記ステップS503で自動応答の失敗が認められた場合、オペレータ応答に切り替え(ステップS504)、オペレータにユーザとの対話を引き継がせ、応答させる。このとき、オペレータが応答した処理内容を認識し保存する(ステップS505)。続いて、ステップS503で得られた失敗判断要因とオペレータの応答処理内容との関係を学習し(ステップS506)、学習結果に基づいて、同じ要求・要因が生じた場合に自動応答が可能となるように、シナリオの修正・追加(更新処理)を行う(ステップS507)。
ここで、ステップS505において、オペレータが応答した内容の認識処理は、オペレータとユーザとの対話を認識し、その対話とオペレータが実行したアクションとを関連付ける。また、ステップS507のシナリオ更新では、学習処理で得られた失敗判断要因と応答処理内容との関係からシナリオの更新内容を推定し、その推定結果をオペレータに提示することで、シナリオ更新内容が適切か否かをチェックさせることができる。
以上のように、本実施形態によれば、自動応答に際してユーザとの対話が失敗した場合に、ユーザとオペレータとの対話の分析結果及びオペレータのアクションを含む対話ログに基づいてシナリオを構築することにより、必要なシナリオの修正、追加を対話システムに容易に追加することができる。
なお、本実施形態においてはシナリオの更新を例に説明したが、シナリオ自体を更新せずに、意図理解の再学習によってもよい。
なお、本実施形態においてはシナリオの更新を例に説明したが、シナリオ自体を更新せずに、意図理解の再学習によってもよい。
具体的には、図14にあるように、あるシチュエーションにおいて、お客様が「大人と子供2枚のチケットをください」といった場合を想定する。自動応答のシステムにおいて、「大人1枚、子供1枚ですね?」と確認したが、実際のお客様の意図は「大人1枚、子供2枚」だった場合の例である。この場合、対話構築システムでは、「大人1枚、子供1枚」の場合と「大人1枚、子供2枚」の場合の両方の意図があることを再学習する。
仮に、この対話においてオペレータへの切り替えが行われ、「大人1枚、子供2枚」であることが分かった場合には、オペレータの操作モニタに、正しい意図を入力してもらってもよい。また、操作モニタに「対話ログを保存しますか?」や、「新たな意図として追加しますか?」など、意図理解に失敗した結果と、正解の組を作るように促してもよい。これらによって、より簡単に意図の多様性の組を生成することができるようになる。また、意図理解の多様性に対応することで、シナリオの大幅な変更が必要ないため、より簡単に対話システムを構築することができる。
仮に、この対話においてオペレータへの切り替えが行われ、「大人1枚、子供2枚」であることが分かった場合には、オペレータの操作モニタに、正しい意図を入力してもらってもよい。また、操作モニタに「対話ログを保存しますか?」や、「新たな意図として追加しますか?」など、意図理解に失敗した結果と、正解の組を作るように促してもよい。これらによって、より簡単に意図の多様性の組を生成することができるようになる。また、意図理解の多様性に対応することで、シナリオの大幅な変更が必要ないため、より簡単に対話システムを構築することができる。
なお、実施形態の支援装置を含む対話システム100は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。すなわち、音声認識部101、意図理解部102、対話制御部103、応答生成部104、対話抽出部105、シナリオ構築部106、シナリオ更新部107、対話状態表示部112、シナリオ検索部113は、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することができる。
このような支援装置を含む対話システムに適用可能なコンピュータ装置は、図15に示すように、CPU(Central Processing Unit)201などの制御装置と、ROM(Read Only Memory)202やRAM(Random Access Memory)203などの記憶装置と、マイクロホン、操作入力装置、表示装置等が接続される入出力I/F204と、ネットワークに接続して通信を行う通信I/F205と、各部を接続するバス206を備えている。上記のプログラムをコンピュータ装置に予めインストールすることで実現してもよいし、CD−ROMなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現してもよい。また、対話ログ記憶部、シナリオ記憶部、辞書記憶部、及び意図記憶部は、上記のコンピュータ装置に内蔵あるいは外付けされたメモリ、ハードディスク若しくはCD−R、CD−RW、DVD−RAM、DVD−Rなどの記憶媒体などを適宜利用して実現することができる。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
100…対話システム、101…音声認識部、102…意図理解部、103…対話制御部、104…応答生成部、105…対話抽出部、106…シナリオ構築部、107…シナリオ更新部、108…辞書記憶部、109…意図モデル記憶部、110…シナリオ記憶部、111…対話ログ記憶部、112…対話状態表示部、113…シナリオ検索部、114…シナリオオブジェクトデータベース、201…CPU、202…ROM、203…RAM、204…入出力I/F、205…通信I/F、206…バス。
Claims (10)
- 予め登録されたシナリオの中からユーザの発話に適合するシナリオを選択し、そのシナリオに従って自動応答する対話システムに用いられ、
前記自動応答の失敗の有無を予め決められた条件に従って判断する失敗判断手段と、
前記自動応答が失敗したと判断された場合に、オペレータに前記ユーザとの対話を引き継いで応答させる応答切替手段と
前記オペレータが応答した処理内容を認識する応答認識手段と、
前記自動応答が失敗したと判断された要因と前記オペレータの応答処理内容との関係を学習する学習手段と、
前記学習の結果に基づいて前記シナリオの修正、追加を行うシナリオ更新手段と
を具備する対話システム構築支援装置。 - 前記失敗判断手段は、前記予め登録されたシナリオの中に前記ユーザの発話に適合するシナリオがなかった場合、前記ユーザの発話から指定するシナリオを理解できなかった場合、前記ユーザの発話が同一内容を繰り返す場合のいずれかである請求項1記載の対話システム構築支援装置。
- 前記応答認識手段は、前記オペレータと前記ユーザとの対話を認識し、その対話と前記オペレータが実行したアクションとを関連付ける請求項1記載の対話システム構築支援装置。
- 前記シナリオ更新手段は、前記学習手段で学習した失敗判断要因と応答処理内容との関係からシナリオ更新内容を推定する請求項1記載の対話システム構築支援装置。
- 予め登録されたシナリオに従って自動応答する対話システムに用いられ、
前記シナリオの中からユーザの発話に応じた対話のシナリオを選択する対話選択手段と、
前記選択されたシナリオに従って自動応答する途中で、オペレータに前記ユーザとの対話を引き継いで応答させる応答切替手段と、
前記オペレータに応答を切り替える前の自動応答の内容と前記オペレータの処理内容との関係を学習する学習手段と、
前記学習手段の学習結果に基づいて前記シナリオの修正を行う更新手段と
を具備する対話システム構築支援装置。 - 前記応答切替手段は、前記自動応答が失敗したと判断された場合に、前記オペレータに前記ユーザとの対話を引き継いで応答させるように切替制御し、
さらに、前記オペレータに応答を切り替えるまでのシナリオに含まれる対話の意図を提示し、前記オペレータに適切な意図の入力を促す表示部を備え、
前記学習手段は、前記オペレータの入力に基づいて前記シナリオに関して再学習を行う請求項5記載の対話システム構築支援装置。 - 予め登録されたシナリオの中からユーザの発話に適合するシナリオを選択し、そのシナリオに従って自動応答する対話システムに用いられ、
前記自動応答の失敗の有無を予め決められた条件に従って判断し、
前記自動応答が失敗したと判断された場合に、オペレータに前記ユーザとの対話を引き継いで応答させ、
前記自動応答が失敗したと判断された要因と前記オペレータが応答した処理内容との関係を学習し、
前記学習の結果に基づいて前記シナリオの修正、追加を行う対話システム構築支援方法。 - 予め登録されたシナリオに従って自動応答する対話システムに用いられ、
前記シナリオの中からユーザの発話に応じた対話のシナリオを選択し、
前記選択されたシナリオに従って自動応答する途中で、オペレータに前記ユーザとの対話を引き継いで応答させ、
前記オペレータに応答を切り替える前の自動応答の内容と前記オペレータの処理内容との関係を学習し、
前記学習の結果に基づいて前記シナリオの修正を行う更新手段と
を具備する対話システム構築支援方法。 - 予め登録されたシナリオの中からユーザの発話に適合するシナリオを選択し、そのシナリオに従って自動応答する対話システムに用いられ、前記対話システムの構築を支援する処理をコンピュータに実行させるための対話システム構築支援プログラムであって、
前記自動応答の失敗の有無を予め決められた条件に従って判断する判断ステップと、
前記自動応答が失敗したと判断された場合に、オペレータに前記ユーザとの対話を引き継いで応答させる応答切替ステップと、
前記オペレータが応答した処理内容を認識する応答認識ステップと、
前記自動応答が失敗したと判断された要因と前記オペレータの応答処理内容との関係を学習する学習ステップと、
前記学習の結果に基づいて前記シナリオの修正、追加を行うシナリオ更新ステップと
を具備する対話システム構築支援プログラム。 - 予め登録されたシナリオに従って自動応答する対話システムに用いられ、前記対話システムの構築を支援する処理をコンピュータに実行させるための対話システム構築支援プログラムであって、
前記シナリオの中からユーザの発話に応じた対話のシナリオを選択する対話選択ステップと、
前記選択されたシナリオに従って自動応答する途中で、オペレータに前記ユーザとの対話を引き継いで応答させる応答切替ステップと、
前記オペレータに応答を切り替える前の自動応答の内容と前記オペレータの処理内容との関係を学習する学習ステップと、
前記学習の結果に基づいて前記シナリオの修正を行う更新ステップと
を具備する対話システム構築支援プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017055427A JP2018159729A (ja) | 2017-03-22 | 2017-03-22 | 対話システム構築支援装置、方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017055427A JP2018159729A (ja) | 2017-03-22 | 2017-03-22 | 対話システム構築支援装置、方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018159729A true JP2018159729A (ja) | 2018-10-11 |
Family
ID=63796654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017055427A Pending JP2018159729A (ja) | 2017-03-22 | 2017-03-22 | 対話システム構築支援装置、方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018159729A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109473100A (zh) * | 2018-11-12 | 2019-03-15 | 四川驹马科技有限公司 | 基于语音识别的业务场景语音人机交互方法及其系统 |
US11509609B2 (en) | 2019-11-18 | 2022-11-22 | Wingarc1St Inc. | Chat system, chat control apparatus and chat program |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009087172A (ja) * | 2007-10-02 | 2009-04-23 | Pronet Corp | プログラムの作製方法 |
JP2010073192A (ja) * | 2008-08-20 | 2010-04-02 | Universal Entertainment Corp | 会話シナリオ編集装置、ユーザ端末装置、並びに電話取り次ぎシステム |
JP2013225036A (ja) * | 2012-04-23 | 2013-10-31 | Scsk Corp | 自動対話シナリオ作成支援装置及び自動対話シナリオ作成支援プログラム |
JP2015176099A (ja) * | 2014-03-18 | 2015-10-05 | 株式会社東芝 | 対話システム構築支援装置、方法、及びプログラム |
-
2017
- 2017-03-22 JP JP2017055427A patent/JP2018159729A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009087172A (ja) * | 2007-10-02 | 2009-04-23 | Pronet Corp | プログラムの作製方法 |
JP2010073192A (ja) * | 2008-08-20 | 2010-04-02 | Universal Entertainment Corp | 会話シナリオ編集装置、ユーザ端末装置、並びに電話取り次ぎシステム |
JP2013225036A (ja) * | 2012-04-23 | 2013-10-31 | Scsk Corp | 自動対話シナリオ作成支援装置及び自動対話シナリオ作成支援プログラム |
JP2015176099A (ja) * | 2014-03-18 | 2015-10-05 | 株式会社東芝 | 対話システム構築支援装置、方法、及びプログラム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109473100A (zh) * | 2018-11-12 | 2019-03-15 | 四川驹马科技有限公司 | 基于语音识别的业务场景语音人机交互方法及其系统 |
US11509609B2 (en) | 2019-11-18 | 2022-11-22 | Wingarc1St Inc. | Chat system, chat control apparatus and chat program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102297394B1 (ko) | 적절한 에이전트의 자동화된 어시스턴트 호출 | |
US10776580B2 (en) | Method for providing dialogue service with chatbot assisted by human agents | |
WO2015141700A1 (en) | Dialogue system construction support apparatus and method | |
JP4680691B2 (ja) | 対話システム | |
US9484034B2 (en) | Voice conversation support apparatus, voice conversation support method, and computer readable medium | |
US20190172444A1 (en) | Spoken dialog device, spoken dialog method, and recording medium | |
US11030400B2 (en) | System and method for identifying and replacing slots with variable slots | |
US11915693B2 (en) | System and method for rule based modifications to variable slots based on context | |
JP2000339314A (ja) | 自動応答方法及び対話解析方法並びに応答文生成方法、その装置、そのプログラムを記録した媒体 | |
JP2017037588A (ja) | 情報処理装置及び情報処理プログラム | |
CN108877792B (zh) | 用于处理语音对话的方法、装置、电子设备以及计算机可读存储介质 | |
US20200074342A1 (en) | Question answering system, question answering processing method, and question answering integrated system | |
WO2016136207A1 (ja) | 音声対話装置、音声対話システム、音声対話装置の制御方法、および、プログラム | |
CN116737908A (zh) | 知识问答方法、装置、设备和存储介质 | |
US20220050968A1 (en) | Intent resolution for chatbot conversations with negation and coreferences | |
CN111309876A (zh) | 一种服务请求的处理方法、装置、电子设备及存储介质 | |
JPWO2019035373A1 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
JP2018159729A (ja) | 対話システム構築支援装置、方法、及びプログラム | |
JP3795350B2 (ja) | 音声対話装置、音声対話方法及び音声対話処理プログラム | |
KR102102287B1 (ko) | 챗봇을 위한 대화 모델의 데이터 크라우드소싱 방법 | |
JP2010054897A (ja) | 音声認識装置、音声認識プログラム、受付装置および受付プログラム | |
CN109035896B (zh) | 一种口语训练方法及学习设备 | |
US11755652B2 (en) | Information-processing device and information-processing method | |
WO2016136208A1 (ja) | 音声対話装置、音声対話システム、および、音声対話装置の制御方法 | |
CN115577092B (zh) | 用户话句处理方法、装置、电子设备及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20181218 |