(57)【特許請求の範囲】
【請求項１】
ユーザの発話に対して応答する対話システムに用いられる対話方法であって、
前記ユーザの発話に対して応答文を生成するタスクを実行するために必要な複数のノードをそれぞれ関連付けて記憶し、
前記ユーザの発話内容を示す発話情報を取得し、
前記複数のノードの中から前記発話情報に対応する第１のノードを特定し、
特定された前記第１のノードに関連付けられている複数の第２のノードの中から、前記複数の第２のノードのそれぞれに対応付けられた重み値に基づいて、１の第２のノードを選択し、
選択された前記１の第２のノードに応じた応答文を生成し、
前記重み値は、前記複数の第２のノードが過去に前記ユーザによって選択された確率を表し、
前記複数の第２のノードのうち、前記確率が所定の値より大きい第２のノードを選択する、
対話方法。
【請求項２】
ユーザの発話に対して応答する対話システムに用いられる対話方法であって、
前記ユーザの発話に対して応答文を生成するタスクを実行するために必要な複数のノードをそれぞれ関連付けて記憶し、
前記ユーザの発話内容を示す発話情報を取得し、
前記複数のノードの中から前記発話情報に対応する第１のノードを特定し、
特定された前記第１のノードに関連付けられている複数の第２のノードの中から、前記複数の第２のノードのそれぞれに対応付けられた重み値に基づいて、１の第２のノードを選択し、
選択された前記１の第２のノードに応じた応答文を生成し、
前記重み値は、前記複数の第２のノードが過去に前記ユーザによって選択された確率を表し、
前記複数の第２のノードのうち、前記確率が所定の値より大きい第２のノードが存在しない場合、前記複数の第２のノードのいずれかを前記ユーザに選択させるための応答文を生成する、
対話方法。
【請求項３】
ユーザの発話に対して応答する対話システムに用いられる対話方法であって、
前記ユーザの発話に対して応答文を生成するタスクを実行するために必要な複数のノードをそれぞれ関連付けて記憶し、
前記ユーザの発話内容を示す発話情報を取得し、
前記複数のノードの中から前記発話情報に対応する第１のノードを特定し、
特定された前記第１のノードに関連付けられている複数の第２のノードの中から、前記複数の第２のノードのそれぞれに対応付けられた重み値に基づいて、１の第２のノードを選択し、
選択された前記１の第２のノードに応じた応答文を生成し、
前記応答文に対する前記ユーザの回答を示す情報を取得し、
前記ユーザの回答が前記複数の第２のノードのうち１の第２のノードを選択する回答であるか否かに応じて、前記重み値を更新する、
対話方法。
【請求項４】
ユーザの発話に対して応答する対話システムに用いられる対話方法であって、
前記ユーザの発話に対して応答文を生成するタスクを実行するために必要な複数のノードをそれぞれ関連付けて記憶し、
前記ユーザの発話内容を示す発話情報を取得し、
前記複数のノードの中から前記発話情報に対応する第１のノードを特定し、
特定された前記第１のノードに関連付けられている複数の第２のノードの中から、前記複数の第２のノードのそれぞれに対応付けられた重み値に基づいて、１の第２のノードを選択し、
選択された前記１の第２のノードに応じた応答文を生成し、
複数の第１のノードのうちの１の第１のノードに関連付けられている複数の第２のノードのうちの１の第２のノードと、前記複数の第１のノードのうちの他の第１のノードに関連付けられている複数の第２のノードのそれぞれとの組合せに対して前記重み値が対応付けられており、
前記１の第２のノードが特定されたか否かを判断し、
前記１の第２のノードが特定された場合、前記１の第２のノードと、前記他の第１のノードに関連付けられている複数の第２のノードのそれぞれとの組合せに対して対応付けられた重み値に基づいて、前記他の第１のノードに関連付けられている前記複数の第２のノードの中から１の第２のノードを選択する、
対話方法。
【請求項５】
ユーザの発話に対して応答する対話プログラムであって、
前記ユーザの発話に対して応答文を生成するタスクを実行するために必要な複数のノードをそれぞれ関連付けて記憶する記憶部と、
前記ユーザの発話内容を示す発話情報を取得する取得部と、
前記複数のノードの中から前記発話情報に対応する第１のノードを特定する特定部と、
前記特定部によって特定された前記第１のノードに関連付けられている複数の第２のノードの中から、前記複数の第２のノードのそれぞれに対応付けられた重み値に基づいて、１の第２のノードを選択する選択部と、
前記選択部によって選択された前記１の第２のノードに応じた応答文を生成する生成部としてコンピュータを機能させ、
前記重み値は、前記複数の第２のノードが過去に前記ユーザによって選択された確率を表し、
前記選択部は、前記複数の第２のノードのうち、前記確率が所定の値より大きい第２のノードを選択する、
対話プログラム。
【請求項６】
ユーザの発話に対して応答する対話システムであって、
前記ユーザの発話に対して応答文を生成するタスクを実行するために必要な複数のノードをそれぞれ関連付けて記憶する記憶部と、
前記ユーザの発話内容を示す発話情報を取得する取得部と、
前記複数のノードの中から前記発話情報に対応する第１のノードを特定する特定部と、
前記特定部によって特定された前記第１のノードに関連付けられている複数の第２のノードの中から、前記複数の第２のノードのそれぞれに対応付けられた重み値に基づいて、１の第２のノードを選択する選択部と、
前記選択部によって選択された前記１の第２のノードに応じた応答文を生成する生成部と、
を備え、
前記重み値は、前記複数の第２のノードが過去に前記ユーザによって選択された確率を表し、
前記選択部は、前記複数の第２のノードのうち、前記確率が所定の値より大きい第２のノードを選択する、
対話システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ユーザの発話に対して応答する対話システムにおける対話方法、ユーザの発話に対して応答する対話プログラム及びユーザの発話に対して応答する対話システムに関するものである。
【背景技術】
【０００２】
近年、ユーザの好みを表したモデルを作成することにより、システムとユーザとのやり取りを効率よく行う技術が提案されている。
【０００３】
例えば、特許文献１に示す音声対話システムは、認識対象となっているキーワードに対して、それらを応答文中に含める場合に使用する言い換え語と、応答文の種類を表す応答タイプと、言い換え語と応答タイプとが選択される条件と、を記録し、言い換え語と応答タイプとが選択される条件に基づいて、認識されたキーワードに対する言い換え語と応答文テンプレートを決定し、決定された応答文テンプレートに言い換え語を挿入することにより応答文を生成している。
【０００４】
また、特許文献２に示す従来の音声理解システムは、電子番組ガイド（ＥＰＧ）の情報を受信し、ＥＰＧ情報を処理して、番組データベースを形成する知識抽出部と、口述リクエストを受け、口述リクエストを複数の単語からなる一連のテキスト情報に翻訳する音声認識部と、一連のテキスト情報を受け、口述リクエストの語義内容を解釈するように単語を処理する自然言語プロセッサと、十分な数のキーワードスロットが入力されたかどうかを判断するためにタスクフレームを分析し、空のスロットに入力するためにユーザに対して追加的情報を質問する会話制御部とを備えている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−３９９２８号公報
【特許文献２】特開２０００−２５０５７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の音声理解システムでは、タスクフレームのスロットに入力する値をユーザに直接質問し、ユーザから得られた回答に対して再度確認し、スロットの値を決定している。そのため、システムとユーザとの対話時間が長くなるとともに、システムの処理時間が長くなる。
【０００７】
本開示は、上記の問題を解決するためになされたもので、対話システムとユーザとの対話時間を短縮することができるとともに、対話システムの処理時間を短縮することができる対話方法、対話プログラム及び対話システムを提供することを目的とするものである。
【課題を解決するための手段】
【０００８】
本開示の一局面に係る対話方法は、ユーザの発話に対して応答する対話システムに用いられる対話方法であって、前記ユーザの発話に対して応答文を生成するタスクを実行するために必要な複数のノードをそれぞれ関連付けて記憶し、前記ユーザの発話内容を示す発話情報を取得し、前記複数のノードの中から前記発話情報に対応する第１のノードを特定し、特定された前記第１のノードに関連付けられている複数の第２のノードの中から、前記複数の第２のノードのそれぞれに対応付けられた重み値に基づいて、１の第２のノードを選択し、選択された前記１の第２のノードに応じた応答文を生成する。
【０００９】
この構成によれば、ユーザの発話に対して応答文を生成するタスクを実行するために必要な複数のノードがそれぞれ関連付けて記憶されている。ユーザの発話内容を示す発話情報が取得される。複数のノードの中から発話情報に対応する第１のノードが特定される。特定された第１のノードに関連付けられている複数の第２のノードの中から、複数の第２のノードのそれぞれに対応付けられた重み値に基づいて、１の第２のノードが選択される。そして、選択された１の第２のノードに応じた応答文が生成される。
【００１０】
したがって、複数の第２のノードの中から１の第２のノードをユーザに選択させるための質問文を生成する必要がなく、複数の第２のノードのそれぞれに対応付けられた重み値に基づいて選択された１の第２のノードに応じた応答文が生成されるので、対話システムとユーザとの対話時間を短縮することができるとともに、対話システムの処理時間を短縮することができる。
【００１１】
また、上記の対話方法において、前記重み値は、前記複数の第２のノードが過去に前記ユーザによって選択された確率を表してもよい。
【００１２】
この構成によれば、重み値は、複数の第２のノードが過去にユーザによって選択された確率を表すので、簡単に重み値を算出することができる。
【００１３】
また、上記の対話方法において、前記複数の第２のノードのうち、前記確率が所定の値より大きい第２のノードを選択してもよい。
【００１４】
この構成によれば、複数の第２のノードのうち、確率が所定の値より大きい第２のノードが選択されるので、簡単に１の第２のノードを選択することができる。
【００１５】
また、上記の対話方法において、前記複数の第２のノードのうち、前記確率が所定の値より大きい第２のノードが存在しない場合、前記複数の第２のノードのいずれかを前記ユーザに選択させるための応答文を生成してもよい。
【００１６】
この構成によれば、複数の第２のノードのうち、確率が所定の値より大きい第２のノードが存在しない場合、複数の第２のノードのいずれかをユーザに選択させるための応答文が生成されるので、１の第２のノードを選択することができない場合であっても、ユーザに選択させることができる。
【００１７】
また、上記の対話方法において、前記応答文に対する前記ユーザの回答を示す情報を取得し、前記ユーザの回答が前記複数の第２のノードのうち１の第２のノードを選択する回答であるか否かに応じて、前記重み値を更新してもよい。
【００１８】
この構成によれば、応答文に対するユーザの回答を示す情報が取得される。ユーザの回答が複数の第２のノードのうち１の第２のノードを選択する回答であるか否かに応じて、重み値が更新される。
【００１９】
したがって、ユーザがシステムを利用する毎に重み値が更新されるので、ユーザの利用状況に応じた１の第２のノードを選択することができる。
【００２０】
また、上記の対話方法において、複数の第１のノードのうちの１の第１のノードに関連付けられている複数の第２のノードのうちの１の第２のノードと、前記複数の第１のノードのうちの他の第１のノードに関連付けられている複数の第２のノードのそれぞれとの組合せに対して前記重み値が対応付けられており、前記１の第２のノードが特定されたか否かを判断し、前記１の第２のノードが特定された場合、前記１の第２のノードと、前記他の第１のノードに関連付けられている複数の第２のノードのそれぞれとの組合せに対して対応付けられた重み値に基づいて、前記他の第１のノードに関連付けられている前記複数の第２のノードの中から１の第２のノードを選択してもよい。
【００２１】
この構成によれば、複数の第１のノードのうちの１の第１のノードに関連付けられている複数の第２のノードのうちの１の第２のノードと、複数の第１のノードのうちの他の第１のノードに関連付けられている複数の第２のノードのそれぞれとの組合せに対して重み値が対応付けられている。１の第２のノードが特定されたか否かが判断される。１の第２のノードが特定された場合、１の第２のノードと、他の第１のノードに関連付けられている複数の第２のノードのそれぞれとの組合せに対して対応付けられた重み値に基づいて、他の第１のノードに関連付けられている複数の第２のノードの中から１の第２のノードが選択される。
【００２２】
したがって、複数の第１のノードのうちの１の第１のノードに関連付けられている複数の第２のノードのうちの１の第２のノードと、複数の第１のノードのうちの他の第１のノードに関連付けられている複数の第２のノードのそれぞれとの組合せに応じた１の第２のノードを選択することができる。
【００２３】
本開示の他の局面に係る対話プログラムは、ユーザの発話に対して応答する対話プログラムであって、前記ユーザの発話に対して応答文を生成するタスクを実行するために必要な複数のノードをそれぞれ関連付けて記憶する記憶部と、前記ユーザの発話内容を示す発話情報を取得する取得部と、前記複数のノードの中から前記発話情報に対応する第１のノードを特定する特定部と、前記特定部によって特定された前記第１のノードに関連付けられている複数の第２のノードの中から、前記複数の第２のノードのそれぞれに対応付けられた重み値に基づいて、１の第２のノードを選択する選択部と、前記選択部によって選択された前記１の第２のノードに応じた応答文を生成する生成部としてコンピュータを機能させる。
【００２４】
この構成によれば、ユーザの発話に対して応答文を生成するタスクを実行するために必要な複数のノードがそれぞれ関連付けて記憶されている。ユーザの発話内容を示す発話情報が取得される。複数のノードの中から発話情報に対応する第１のノードが特定される。特定された第１のノードに関連付けられている複数の第２のノードの中から、複数の第２のノードのそれぞれに対応付けられた重み値に基づいて、１の第２のノードが選択される。そして、選択された１の第２のノードに応じた応答文が生成される。
【００２５】
したがって、複数の第２のノードの中から１の第２のノードをユーザに選択させるための質問文を生成する必要がなく、複数の第２のノードのそれぞれに対応付けられた重み値に基づいて選択された１の第２のノードに応じた応答文が生成されるので、対話システムとユーザとの対話時間を短縮することができるとともに、対話システムの処理時間を短縮することができる。
【００２６】
本開示の他の局面に係る対話システムは、ユーザの発話に対して応答する対話システムであって、前記ユーザの発話に対して応答文を生成するタスクを実行するために必要な複数のノードをそれぞれ関連付けて記憶する記憶部と、前記ユーザの発話内容を示す発話情報を取得する取得部と、前記複数のノードの中から前記発話情報に対応する第１のノードを特定する特定部と、前記特定部によって特定された前記第１のノードに関連付けられている複数の第２のノードの中から、前記複数の第２のノードのそれぞれに対応付けられた重み値に基づいて、１の第２のノードを選択する選択部と、前記選択部によって選択された前記１の第２のノードに応じた応答文を生成する生成部と、を備える。
【００２７】
この構成によれば、ユーザの発話に対して応答文を生成するタスクを実行するために必要な複数のノードがそれぞれ関連付けて記憶されている。ユーザの発話内容を示す発話情報が取得される。複数のノードの中から発話情報に対応する第１のノードが特定される。特定された第１のノードに関連付けられている複数の第２のノードの中から、複数の第２のノードのそれぞれに対応付けられた重み値に基づいて、１の第２のノードが選択される。そして、選択された１の第２のノードに応じた応答文が生成される。
【００２８】
したがって、複数の第２のノードの中から１の第２のノードをユーザに選択させるための質問文を生成する必要がなく、複数の第２のノードのそれぞれに対応付けられた重み値に基づいて選択された１の第２のノードに応じた応答文が生成されるので、対話システムとユーザとの対話時間を短縮することができるとともに、対話システムの処理時間を短縮することができる。
【発明の効果】
【００２９】
本開示によれば、対話システムとユーザとの対話時間を短縮することができるとともに、対話システムの処理時間を短縮することができる。
【図面の簡単な説明】
【００３０】
【図１】本実施の形態における音声対話システムの概要を説明するための図である。
【図２】本実施の形態における音声対話システムの構成を示す図である。
【図３】判断条件テーブルの一例を示す図である。
【図４】本実施の形態における音声対話システムの音声対話処理について説明するためのフローチャートである。
【図５】本実施の形態における音声対話システムの重み値更新処理について説明するためのフローチャートである。
【図６】本実施の形態における音声対話システムの音声対話処理と、従来の音声対話システムの音声対話処理との差異を説明するための図である。
【図７】本実施の形態の変形例における音声対話システムの意味ネットワークの一例を示す図である。
【図８】本実施の形態の変形例における音声対話システムの音声対話処理について説明するためのフローチャートである。
【図９Ａ】従来例の音声対話システムにおいて用いられる対話方法による対話文の一例を表す図である。
【図９Ｂ】本開示に係る音声対話システムにおいて用いられる対話方法による対話文の一例を表す図である。
【発明を実施するための形態】
【００３１】
以下添付図面を参照しながら、本発明の実施の形態について説明する。なお、以下の実施の形態は、本発明を具体化した一例であって、本発明の技術的範囲を限定するものではない。
【００３２】
図１は、本実施の形態における音声対話システムの概要を説明するための図である。
【００３３】
図１に示す例は、ドリンクを販売する際に用いられる意味ネットワークの一例を示している。図１に示す意味ネットワークは、ユーザの発話に対して応答文を生成するタスクを実行するために必要な複数のノードを含む。複数のノードは、それぞれ関連付けられている。関連付けられている２つのノードに対しては、２つのノードの関係性を示す関係情報が付与されている。関係情報は、一方のノードが他方のノードに対して下位概念の関係にあることを示す情報、一方のノードが他方のノードに含まれるコンセプトに係るタスクを実行するために必須の項目であることを示す情報、一方のノードが他方のノードに含まれるコンセプトに係るタスクに対して任意に設定される項目であることを示す情報、及び一方のノードが他方のノードの値であることを示す情報を含む。
【００３４】
例えば、“ｃｏｆｆｅｅ”を示すノード１１と“ｄｒｉｎｋ”を示すノード１２とには、“ｃｏｆｆｅｅ”を示すノード１１が“ｄｒｉｎｋ”を示すノード１２に対して下位概念である（ｉｓ−ａ関係である）ことを示す関係情報が対応付けられている。なお、“ｃｏｆｆｅｅ”を示すノード１１は、ドメインとも呼ばれる。
【００３５】
また、“ｓｉｚｅ”を示すノード１４と“ｄｒｉｎｋ”を示すノード１２とには、“ｓｉｚｅ”を示すノード１４が“ｄｒｉｎｋ”を示すノード１２に対して必須の項目であることを示す関係情報が対応付けられている。“ｑｕａｎｔｉｔｙ”を示すノード１５と“ｄｒｉｎｋ”を示すノード１２とには、“ｑｕａｎｔｉｔｙ”を示すノード１５が“ｄｒｉｎｋ”を示すノード１２に対して任意に設定される項目であり、ユーザが通知する場合に決められるノードであることを示す関係情報が対応付けられている。
【００３６】
また、“ｓｕｇａｒ”を示すノード１７と“ｃｏｆｆｅｅ”を示すノード１１とには、“ｓｕｇａｒ”を示すノード１７が“ｃｏｆｆｅｅ”を示すノード１１に対してタスクを実行するために必須の項目であることを示す関係情報が対応付けられている。“ｔｅｍｐｅｒａｔｕｒｅ”を示すノード１８と“ｃｏｆｆｅｅ”を示すノード１１とには、“ｔｅｍｐｅｒａｔｕｒｅ”を示すノード１８が“ｃｏｆｆｅｅ”を示すノード１１に対してタスクを実行するために必須の項目であることを示す関係情報が対応付けられている。“ｓｕｇａｒ”を示すノード１７及び“ｔｅｍｐｅｒａｔｕｒｅ”を示すノード１８は、必須スロット又は単にスロットと呼ぶ。
【００３７】
“ｈｏｔ”を示すノード１９と“ｔｅｍｐｅｒａｔｕｒｅ”を示すノード１８とには、“ｈｏｔ”を示すノード１９が“ｔｅｍｐｅｒａｔｕｒｅ”を示すノード１８の値であることを示す関係情報が対応付けられている。“ｃｏｌｄ”を示すノード２０と“ｔｅｍｐｅｒａｔｕｒｅ”を示すノード１８とには、“ｃｏｌｄ”を示すノード２０が“ｔｅｍｐｅｒａｔｕｒｅ”を示すノード１８の値であることを示す関係情報が対応付けられている。“ｈｏｔ”を示すノード１９及び“ｃｏｌｄ”を示すノード２０は、“ｔｅｍｐｅｒａｔｕｒｅ”を示すノード１８に対していずれかが選択されるノードである。“ｈｏｔ”を示すノード１９及び“ｃｏｌｄ”を示すノード２０は、スロット値と呼ぶ。
【００３８】
ユーザがドリンクを購入する際に、コーヒーを選択した場合、砂糖が必要であるか否か、ホット及びコールドのいずれであるかは、必ず決定する必要があり、これらが決定されない場合、ドリンクを提供する際のユーザの発話に対して応答文を生成するタスクを実行することができない。すなわち、温度は、タスクを達成するために必須のノード（スロット）であり、システムは、スロットの値（この場合、コールド又はホット）を決定する必要がある。
【００３９】
従来のシステムでは、コーヒーの温度について、システムがユーザに対し、ホット及びコールドのいずれにするかを質問し、ユーザの回答を音声認識により判断していた。ユーザがホットを選択した場合、システムは、ホットでよいか否かを再度質問し、ユーザの回答を音声認識により判断し、コーヒーの温度を決定していた。
【００４０】
これに対し、本開示のシステムでは、コーヒーの温度について、システムがユーザに対し、ホット及びコールドのいずれにするかを質問することなく、過去に複数のユーザがホット及びコールドのいずれを選択したかに応じてそれぞれに重み値を付与し、重み値に応じて、ホットにするか否か又はコールドにするか否かを質問する。例えば、過去にコールドが６０％の確率で選択され、ホットが４０％の確率で選択された場合、システムは、ユーザに対してコールドにするか否かを質問し、ユーザの回答を音声認識により判断し、コーヒーの温度を決定する。この場合、従来のシステムに比べて温度を再度確認する必要がなく、システムとユーザとの対話時間を短縮することができるとともに、システムの処理時間を短縮することができる。
【００４１】
また、具体的かつ正しい内容の質問が生成できれば、ユーザから、タスクを実行するために必要な情報を獲得することが容易となる。例えば、ユーザがコーヒーを注文した場合、システムが「ホットコーヒーでよろしいですね？」と問いかけることによって、ユーザの回答を「はい」又は「いいえ」などの肯定的な表現又は否定的な表現に限定することができる。
【００４２】
また、別のケースとして、例えば、ユーザが「チーズバーガーセット」を指定するセットメニューの注文を行った場合について考える。このとき、システムがユーザにセットメニューにおけるドリンクの種類を尋ねる場合には、確率に基づいて、例えば、「コークとオレンジジュースのどちらですか？」という択一的な質問をする。これにより、ユーザの回答を、「コークです。」又は「オレンジジュースです。」など、システムが受理できる内容を含む回答に誘導しやすくなる。すなわち、システムが択一的な質問をすることによって、ユーザが想定外の回答を行わないよう促す。これにより、システムが受理できる表現をユーザが用いる可能性が従来技術を適用した場合よりも高まり、ユーザからより確実に情報を獲得することができる。
【００４３】
図２は、本実施の形態における音声対話システムの構成を示す図である。音声対話システムは、音声認識部１０１、自然言語プロセッサ１０２、メモリ１０３、会話管理部１０４及び音声合成部１０５を備える。
【００４４】
メモリ１０３は、意味ネットワーク記憶部１１１、重み値管理テーブル記憶部１１２及び判断条件テーブル記憶部１１３を備える。
【００４５】
意味ネットワーク記憶部１１１は、複数のノードを繋げた意味ネットワークを予め記憶している。意味ネットワーク記憶部１１１は、ユーザの発話に対して応答文を生成するタスクを実行するために必要な複数のノードをそれぞれ関連付けて記憶する。
【００４６】
重み値管理テーブル記憶部１１２は、意味ネットワークに含まれるスロットの値と、重み値とを対応付けて記憶している。
【００４７】
判断条件テーブル記憶部１１３は、選択可能なスロット値の数と、スロット値が選択される条件と、条件を満たす際に得られるスロット値と、応答文を表すテンプレートとを対応付けて記憶している。
【００４８】
音声認識部１０１は、マイク（不図示）によって取得された入力音声をテキスト情報に変換する。音声認識部１０１は、ユーザの発話を認識してテキスト情報に変換する。
【００４９】
自然言語プロセッサ１０２は、ユーザの発話内容を示す発話情報（テキスト情報）を取得する。自然言語プロセッサ１０２は、複数のノードの中から発話情報に対応する第１のノード（スロット）を特定する。自然言語プロセッサ１０２は、音声認識部１０１によって出力される一連のテキスト情報を分析して、語義内容及びユーザの発話の意図を理解する。自然言語プロセッサ１０２は、例えば、言語理解用データベース（不図示）に記憶されている言語理解用知識を用いて発話内容を理解する。自然言語プロセッサ１０２は、テキスト情報から、意味のある単語を抽出する。自然言語プロセッサ１０２は、意味ネットワーク記憶部１１１に記憶されている意味ネットワーク内を検索し、意味ネットワーク内に抽出した単語が存在する場合、抽出した単語によって特定されるタスクに関係するスロット及びスロットに対応付けられている複数のスロット値を意味ネットワークから抽出する。
【００５０】
自然言語プロセッサ１０２は、構文解析部１３１及びメモリアクセス部１３２を備える。構文解析部１３１は、テキスト化されたユーザの発話内容から単語を抽出する処理を行う。メモリアクセス部１３２は、構文解析部１３１にて抽出された単語について、メモリ１０３に格納された意味ネットワーク内を検索し、スロット等を抽出し、抽出したスロットを会話管理部１０４（会話生成部１２１）へ出力する。
【００５１】
なお、メモリアクセス部１３２は、会話管理部１０４が備えていてもよい。自然言語プロセッサ１０２は、テキスト化されたユーザの発話内容から、単語を抽出して会話管理部１０４のメモリアクセス部へ出力し、会話管理部１０４のメモリアクセス部は、意味ネットワークからスロット等を抽出してもよい。
【００５２】
会話管理部１０４は、会話生成部１２１及び重み値更新部１２２を備える。会話生成部１２１は、自然言語プロセッサ１０２によって特定された第１のノード（スロット）に関連付けられている複数の第２のノード（スロット値）の中から、複数の第２のノードのそれぞれに対応付けられた重み値に基づいて、１の第２のノードを選択する。なお、重み値は、複数の第２のノードが過去にユーザによって選択された確率を表す。会話生成部１２１は、複数の第２のノードのうち、確率が所定の値より大きい第２のノードを選択する。会話生成部１２１は、選択された１の第２のノード（スロット値）に応じた応答文を生成する。会話生成部１２１は、複数の第２のノードのうち、確率が所定の値より大きい第２のノードが存在しない場合、複数の第２のノードのいずれかをユーザに選択させるための応答文を生成する。
【００５３】
会話生成部１２１は、自然言語プロセッサ１０２によって抽出された複数のスロット値のそれぞれに対応付けられている重み値を、重み値管理テーブルから取得し、取得した重み値に基づいて、１のスロット値を決定する。会話生成部１２１は、決定したスロット値に応じた応答文を生成する。このとき、会話生成部１２１は、判断条件テーブル記憶部１１３に記憶されている判断条件テーブルを参照し、あるスロットに対して選択可能なスロット値の数に対応する判断条件を満たすか否かを判断する。判断条件を満たす場合には、会話生成部１２１は、スロット値を予め用意された応答文のテンプレートに挿入し、応答文を生成する。
【００５４】
図３は、判断条件テーブルの一例を示す図である。
【００５５】
図３に示すように、判断条件テーブルは、選択可能なスロット値の数と、スロット値が選択される条件と、条件を満たす際に得られるスロット値と、応答文を表すテンプレートとを対応付けている。
【００５６】
例えば、会話生成部１２１は、選択可能なスロット値が“ｖ１”及び“ｖ２”の２つであり、ｖ１が５０％より大きく、ｖ２が５０％より小さい場合、ｖ１をスロット値として選択する。また、会話生成部１２１は、選択可能なスロット値が“ｖ１”及び“ｖ２”の２つであり、ｖ１が５０％より小さく、ｖ２が５０％より大きい場合、ｖ２をスロット値として選択する。そして、ｖ１がスロット値として選択された場合、会話生成部１２１は、“ｖ１が欲しいですか？（Ｄｏ  ｙｏｕ  ｗａｎｔ  ｖ１？）”という応答文を生成する。一方、ｖ２がスロット値として選択された場合、会話生成部１２１は、“ｖ２が欲しいですか？（Ｄｏ  ｙｏｕ  ｗａｎｔ  ｖ２？）”という応答文を生成する。
【００５７】
また、会話生成部１２１は、選択可能なスロット値が“ｖ１”及び“ｖ２”の２つであり、ｖ１及びｖ２が５０％である場合、ｖ１及びｖ２をスロット値として選択する。そして、ｖ１及びｖ２がスロット値として選択された場合、会話生成部１２１は、“ｖ１又はｖ２のどちらにしますか？（Ｈｏｗ  ａｂｏｕｔ  ｖ１  ｏｒ  ｖ２？）”という応答文を生成する。
【００５８】
また、会話生成部１２１は、選択可能なスロット値が“ｖ１”、“ｖ２”、・・・、“ｖｘ”の複数であり、いずれかのスロット値ｖｉが５０％より大きい場合、ｖｉをスロット値として選択する。そして、ｖｉがスロット値として選択された場合、会話生成部１２１は、“ｖｉが欲しいですか？（Ｄｏ  ｙｏｕ  ｗａｎｔ  ｖｉ？）”という応答文を生成する。
【００５９】
また、会話生成部１２１は、選択可能なスロット値が“ｖ１”、“ｖ２”、・・・、“ｖｘ”の複数であり、いずれか１つのスロット値ｖｉが４０％より大きく、スロット値ｖｉとは異なるいずれか１つのスロット値ｖｊが４０％より大きい場合、ｖｉ及びｖｊをスロット値として選択する。そして、ｖｉ及びｖｊがスロット値として選択された場合、会話生成部１２１は、“ｖｉ又はｖｊのどちらにしますか？（Ｈｏｗ  ａｂｏｕｔ  ｖｉ  ｏｒ  ｖｊ？）”という応答文を生成する。
【００６０】
また、会話生成部１２１は、選択可能なスロット値が“ｖ１”、“ｖ２”、・・・、“ｖｘ”の複数であり、いずれのスロット値ｖｉも４０％より小さい場合、スロット値を選択しない。そして、スロット値が選択されない場合、会話生成部１２１は、“どのＸＸ（スロット名）が欲しいですか？（Ｗｈａｔ  ＸＸ（ｓｌｏｔ  ｎａｍｅ）  ｄｏ  ｙｏｕ  ｗａｎｔ？）”という応答文を生成する。
【００６１】
また、自然言語プロセッサ１０２は、応答文に対するユーザの回答を示すテキスト情報を取得する。自然言語プロセッサ１０２は、テキスト情報が例えば“はい”などの肯定的な回答であるか、又は回答情報が例えば“いいえ”などの否定的な回答であるかを判断する。自然言語プロセッサ１０２は、ユーザの回答が肯定的であるか否定的であるかを示す階乙情報を重み値更新部１２２へ出力する。重み値更新部１２２は、ユーザの回答が複数の第２のノードのうち１の第２のノードを選択する回答であるか否かに応じて、重み値を更新する。すなわち、回答情報が肯定的な回答である場合、重み値更新部１２２は、選択可能な複数のスロット値に対応付けられている確率を再計算して更新する。一方、回答情報が否定的な回答である場合、会話生成部１２１は、複数のスロット値のいずれかをユーザに選択させるための応答文を生成する。
【００６２】
音声合成部１０５は、会話管理部１０４によって生成された応答文を音声に変換する。音声合成部１０５によって変換された音声は、スピーカ（不図示）から出力される。
【００６３】
なお、図２に示す音声対話システムにおいて、１つの装置が、音声認識部１０１、自然言語プロセッサ１０２、メモリ１０３、会話管理部１０４及び音声合成部１０５を備えてもよい。また、音声認識部１０１、自然言語プロセッサ１０２、メモリ１０３、会話管理部１０４及び音声合成部１０５は、複数の装置に分散されていてもよい。例えば、端末装置が、音声認識部１０１及び音声合成部１０５を備え、端末装置とネットワークを介して通信可能に接続されたサーバが、自然言語プロセッサ１０２、メモリ１０３及び会話管理部１０４を備えてもよい。
【００６４】
続いて、本実施の形態における音声対話システムの音声対話処理について説明する。
【００６５】
図４は、本実施の形態における音声対話システムの音声対話処理について説明するためのフローチャートである。
【００６６】
まず、ステップＳ１において、自然言語プロセッサ１０２は、ユーザの発話内容を示す発話情報から、単語を取得する。
【００６７】
次に、ステップＳ２において、自然言語プロセッサ１０２は、意味ネットワーク記憶部１１１に記憶されている意味ネットワーク内を検索し、各ノード間に対応付けられている関係情報に基づいて、抽出した単語によって特定されるタスクに関係するノード（スロット及びスロット値）を意味ネットワークから抽出する。
【００６８】
次に、ステップＳ３において、会話生成部１２１は、タスクを実行するために値を入力する必要があるスロットを決定する。
【００６９】
次に、ステップＳ４において、会話生成部１２１は、決定したスロットに対応付けられている複数のスロット値の重み値を、重み値管理テーブルから取得する。
【００７０】
次に、ステップＳ５において、会話生成部１２１は、判断条件テーブル記憶部１１３に記憶されている判断条件テーブルを参照し、判断条件を満たす重み値があるか否かを判断する。ここで、判断条件を満たす重み値があると判断された場合（ステップＳ５でＹＥＳ）、ステップＳ６において、会話生成部１２１は、スロット値を、判断条件を満たす重み値に対応するスロット値に決定する。
【００７１】
次に、ステップＳ７において、会話生成部１２１は、決定したスロット値を用いて確認応答文を生成する。確認応答文とは、決定したスロット値でよいかをユーザに確認する応答文である。
【００７２】
一方、判断条件を満たす重み値がないと判断された場合（ステップＳ５でＮＯ）、ステップＳ８において、会話生成部１２１は、要求応答文を生成する。要求応答文とは、複数の選択可能なスロット値の中から所望のスロット値の選択をユーザに対して要求する応答文である。
【００７３】
続いて、本実施の形態における音声対話システムの重み値更新処理について説明する。
【００７４】
図５は、本実施の形態における音声対話システムの重み値更新処理について説明するためのフローチャートである。
【００７５】
まず、ステップＳ１１において、重み値更新部１２２は、会話生成部１２１によって生成された応答文に含まれるスロット値を確認する。
【００７６】
次に、ステップＳ１２において、重み値更新部１２２は、応答文に対するユーザの回答が肯定的であるか否かを示す回答情報を自然言語プロセッサ１０２から取得する。
【００７７】
次に、ステップＳ１３において、重み値更新部１２２は、回答情報が肯定的な回答であるか否かを判断する。ここで、回答情報が肯定的な回答であると判断された場合（ステップＳ１３でＮＯ）、ステップＳ１４において、重み値更新部１２２は、新たなスロット値を取得する。このとき、選択可能なスロット値が２つである場合、重み値更新部１２２は、ユーザに提示されなかったスロット値を新たなスロット値として取得する。また、選択可能なスロット値が３つ以上ある場合、重み値更新部１２２は、ユーザによって選択されたスロット値を新たなスロット値として取得する。
【００７８】
一方、回答情報が肯定的な回答であると判断された場合（ステップＳ１３でＹＥＳ）、ステップＳ１５において、重み値更新部１２２は、重み値を再計算する。
【００７９】
ここで、重み値の計算方法について説明する。まず、重み値更新部１２２によって重み値が計算される前の重み値管理テーブルには、重み値の初期値が格納される。あるスロットに対してｘ個のスロット値ｖ１，ｖ２，・・・，ｖｘが選択可能であり、ユーザの人数がｎ人であり、各スロット値を選択したユーザの人数をＮ１，Ｎ２，・・・，Ｎｘとすると、各スロット値の重み値（確率）は、Ｎ１／ｎ，Ｎ２／ｎ，・・・，Ｎｘ／ｎで表される。このとき、ユーザの人数ｎ及び各スロット値を選択したユーザの人数Ｎ１，Ｎ２，・・・，Ｎｘには、任意の数が代入される。例えば、過去の統計的なデータに基づいて、人数Ｎ１，Ｎ２，・・・，Ｎｘが設定されてもよい。また、重み値の初期値は、全て同じ値に設定されてもよく、例えば、２つのスロット値が選択可能である場合、各スロット値の重み値（確率）の初期値は、それぞれ５０％に設定されてもよい。
【００８０】
また、重み値更新部１２２によって重み値が再計算される場合、重み値更新部１２２は、ユーザの人数ｎに１を加算するとともに、選択されたスロット値の人数Ｎｘに１を加算し、選択可能な全てのスロット値の重み値を再計算する。例えば、スロット値ｖ２が選択された場合、各スロット値ｖ１，ｖ２，・・・，ｖｘの重み値（確率）は、Ｎ１／（ｎ＋１），（Ｎ２＋１）／（ｎ＋１），・・・，Ｎｘ／（ｎ＋１）となる。
【００８１】
次に、ステップＳ１６において、重み値更新部１２２は、再計算した重み値を重み値管理テーブル記憶部１１２に記憶し、重み値管理テーブルの重み値を更新する。
【００８２】
図６は、本実施の形態における音声対話システムの音声対話処理と、従来の音声対話システムの音声対話処理との差異を説明するための図である。図６は、ハンバーガー店においてユーザがハンバーガーセットを注文する際の音声対話処理の一例を示している。
【００８３】
まず、ユーザは、音声対話システムに対し、“ハンバーガーセットを下さい。”と発話する。
【００８４】
従来の音声対話システムでは、ユーザの発話から“ハンバーガーセット”という単語を抽出し、抽出した単語に対応するタスクフレームを特定する。この場合、ハンバーガーセットを提供するタスクフレームが特定される。次に、従来の音声対話システムは、特定したタスクフレームを実行するのに必要なスロットを特定し、特定したスロットに対応する複数のスロット値のうちどのスロット値にするのかをユーザに質問する。図６に示す例では、スロットは、ドリンクであり、スロット値は、コーク、お茶、オレンジジュースなどである。従来の音声対話システムは、“ドリンクは何にしますか？”という応答文４０５を作成して音声出力する。これに対し、ユーザは、“コークを下さい。”と回答する。さらに、従来の音声対話システムは、ユーザによって発話された内容を確認するため、“ドリンクはコークでよいですか？”という応答文を作成して音声出力する。そして、ユーザは、“はい。”と回答する。ユーザから肯定する回答を取得すると、従来の音声対話システムは、タスクフレームのスロット値を設定し、タスクフレームを実行する。このとき、タスクフレーム内の必須スロットの全てに値が入力された場合、タスクフレームに対応したタスクが実行される。必須スロットの全てに値が入力されていない場合は、ユーザに対して、値の入力を促すような質問等が行われる。
【００８５】
一方、本実施の形態における音声対話システムでは、ユーザの発話から“ハンバーガーセット”という単語を抽出し、抽出した単語によって特定されるタスクに関係するノード（ドメイン、スロット及びスロット値）を意味ネットワークから抽出する。図６に示す例では、ドメイン４００は、“ハンバーガーセット”であり、スロット４０１は、“ドリンク”であり、スロット値４０２，４０３，４０４は、“コーク”、“お茶”及び“オレンジジュース”などである。
【００８６】
次に、本実施の形態における音声対話システムは、タスクを実行するために値を入力する必要があるスロットを決定する。ここで、決定されるスロットは、ドリンクである。次に、本実施の形態における音声対話システムは、決定したスロットに対応付けられている複数のスロット値の重み値を、重み値管理テーブルから取得する。図６に示す例では、スロット値であるコークの重み値は６０％であり、スロット値であるお茶の重み値は２０％であり、スロット値であるオレンジジュースの重み値は５％である。
【００８７】
次に、本実施の形態における音声対話システムは、判断条件を満たす重み値があるか否かを判断する。この場合、コークの重み値が６０％であるため、本実施の形態における音声対話システムは、判断条件を満たす重み値があると判断する。次に、本実施の形態における音声対話システムは、スロット値を“コーク”に決定する。そして、本実施の形態における音声対話システムは、“コークにしますか？”という応答文４０６を作成して音声出力する。これに対し、ユーザは、“はい。”と回答する。ユーザから肯定する回答を取得すると、本実施の形態における音声対話システムは、ハンバーガーセットを提供する際のユーザの発話に対して応答文を生成するタスクを実行する。
【００８８】
上記のように、従来のシステムでは、システムがユーザに対し、ドリンクを何にするかを質問し、ユーザの回答を音声認識により判断していた。ユーザがコークを選択した場合、従来のシステムは、コークでよいか否かを再度質問し、ユーザの回答を音声認識により判断し、ドリンクを決定していた。
【００８９】
これに対し、本開示のシステムでは、システムがユーザに対し、ドリンクを何にするかを質問することなく、過去にユーザがいずれのドリンクを選択したかに応じてそれぞれに重み値を付与し、重み値に応じて、コークにするか否かを質問する。例えば、過去にコークが６０％の確率で選択された場合、本開示のシステムは、ユーザに対してドリンクはコークでよいかを確認する。そして、本開示のシステムは、ユーザの回答を音声認識により判断し、ユーザから肯定する回答が得られれば、ドリンクをコークに決定する。
【００９０】
この場合、本開示のシステムは、従来のシステムに比べてドリンクを再度確認する必要がなく、システムとユーザとの対話時間を短縮することができるとともに、システムの処理時間を短縮することができる。
【００９１】
続いて、本実施の形態における音声対話システムの変形例について説明する。
【００９２】
図７は、本実施の形態の変形例における音声対話システムの意味ネットワークの一例を示す図である。図７に示す意味ネットワークは、レストランを検索する際に用いられる意味ネットワークの一例を示している。
【００９３】
図７において、“レストラン”を示すノード２１は、“地域（ａｒｅａ）”を示すノード２２と、“種類（ｔｙｐｅ）”を示すノード２３とにリンクしている。“地域”を示すノード２２及び“種類（ｔｙｐｅ）”を示すノード２３は、必須のスロットである。“地域”を示すノード２２は、“北”を示すノード２４と“南”を示すノード２５とにリンクしている。“北”を示すノード２４及び“南”を示すノード２５は、“地域”を示すノード（スロット）２２のスロット値である。また、“種類”を示すノード２３は、“インド料理”を示すノード２６と“中華料理”を示すノード２７と“アメリカ料理”を示すノード２８とにリンクしている。“インド料理”を示すノード２６、“中華料理”を示すノード２７及び“アメリカ料理”を示すノード２８は、“種類”を示すノード（スロット）２３のスロット値である。
【００９４】
さらに、図７に示す変形例では、異なるスロットのスロット値がリンクしており、“北”を示すノード（スロット値）２４は、“インド料理”を示すノード（スロット値）２６と“中華料理”を示すノード（スロット値）２７と“アメリカ料理”を示すノード（スロット値）２８とにリンクしている。“北”を示すノード２４と“インド料理”を示すノード２６との接続には、例えば３０％の重み値が付与されている。また、“北”を示すノード２４と“中華料理”を示すノード２７との接続には、例えば６０％の重み値が付与されている。さらに、“北”を示すノード２４と“アメリカ料理”を示すノード（スロット値）２８との接続には、例えば１０％の重み値が付与されている。つまり、過去に、北の地域が選択された後インド料理が選択された確率は、３０％であり、北の地域が選択された後中華料理が選択された確率は、６０％であり、北の地域が選択された後アメリカ料理が選択された確率は１０％である。
【００９５】
本開示のシステムでは、ユーザが“町の北部にあるレストランを探している。（Ｉ’ｍ  ｌｏｏｋｉｎｇ  ｆｏｒ  ａ  ｒｅｓｔａｕｒａｎｔ  ａｔ  ｔｈｅ  ｎｏｒｔｈ  ｐａｒｔ  ｏｆ  ｔｏｗｎ．）”と発話した場合、ユーザに対して中華料理店にするか否かを確認し、ユーザの回答を音声認識により判断し、レストランを決定する。
【００９６】
重み値管理テーブル記憶部１１２は、複数の第１のノードのうちの１の第１のノードに関連付けられている複数の第２のノードのうちの１の第２のノードと、前記複数の第１のノードのうちの他の第１のノードに関連付けられている複数の第２のノードのそれぞれとの組合せに対して重み値を対応付けて記憶している。ここで、第１のノードは、スロットであり、第２のノードは、スロット値である。
【００９７】
自然言語プロセッサ１０２は、１の第２のノードが特定されたか否かを判断する。会話生成部１２１は、１の第２のノードが特定された場合、１の第２のノードと、他の第１のノードに関連付けられている複数の第２のノードのそれぞれとの組合せに対して対応付けられた重み値に基づいて、他の第１のノードに関連付けられている複数の第２のノードの中から１の第２のノードを選択する。
【００９８】
続いて、本実施の形態の変形例における音声対話システムの音声対話処理について説明する。
【００９９】
図８は、本実施の形態の変形例における音声対話システムの音声対話処理について説明するためのフローチャートである。
【０１００】
ステップＳ２１及びステップＳ２２の処理は、図４に示すステップＳ１及びステップＳ２の処理と同じであるので、説明を省略する。
【０１０１】
次に、ステップＳ２３において、自然言語プロセッサ１０２は、意味ネットワーク内の任意のスロットが特定されたか否かを判断する。例えば、図７に示す例では、ユーザの発話内容から“地域”を示すスロットが特定されることになる。ここで、任意のスロットが特定されたと判断された場合（ステップＳ２３でＹＥＳ）、ステップＳ２４において、自然言語プロセッサ１０２は、特定されたスロットを選択する。
【０１０２】
次に、ステップＳ２５において、自然言語プロセッサ１０２は、特定されたスロットにリンクしている次のスロットを選択する。例えば、図７に示す例では、“地域”を示すスロットにリンクしている“種類”を示すスロットが選択されることになる。
【０１０３】
次に、ステップＳ２６において、会話生成部１２１は、特定されたスロットのスロット値と、選択された次のスロットの複数のスロット値とに対応付けられている重み値を、重み値管理テーブルから取得する。なお、重み値管理テーブルは、複数のスロットのうちの１のスロットに関連付けられている複数のスロット値のうちの１のスロット値と、複数のスロットのうちの他のスロットに関連付けられている複数のスロット値のそれぞれとの組合せに対して重み値を対応付けて記憶している。
【０１０４】
次に、ステップＳ２７において、会話生成部１２１は、判断条件テーブル記憶部１１３に記憶されている判断条件テーブルを参照し、判断条件を満たす重み値があるか否かを判断する。ここで、判断条件を満たす重み値があると判断された場合（ステップＳ２７でＹＥＳ）、ステップＳ２８において、会話生成部１２１は、スロット値を、判断条件を満たす重み値に対応するスロット値に決定する。例えば、図７に示す例では、“中華料理”を示すスロット値が決定されることになる。
【０１０５】
次に、ステップＳ２９において、会話生成部１２１は、決定したスロット値を用いて確認応答文を生成する。確認応答文とは、決定したスロット値でよいかをユーザに確認する応答文である。例えば、図７に示す例では、“中華料理店はどうですか？（Ｈｏｗ  ａｂｏｕｔ  ａ  ｃｈｉｎｅｓｅ  ｒｅｓｔａｕｒａｎｔ？）という確認応答文が生成されることになる。
【０１０６】
一方、任意のスロットが特定されていないと判断された場合（ステップＳ２３でＮＯ）、又は、判断条件を満たす重み値がないと判断された場合（ステップＳ２７でＮＯ）、ステップＳ３０において、会話生成部１２１は、要求応答文を生成する。要求応答文とは、複数の選択可能なスロット値の中から所望のスロット値の選択をユーザに対して要求する応答文である。例えば、図７に示す例において、ユーザが“レストランを探している。”と発話した場合、音声対話システムは、“地域”及び“種類”を示すスロットを決定する必要がある。そのため、会話生成部１２１は、地域”及び“種類”のいずれかのスロットのスロット値を選択するための要求応答文を生成する。例えば、会話生成部１２１は、“北部と南部のどちらですか？”という要求応答文、又は“インド料理、中華料理及びアメリカ料理のどれにしますか？”という要求応答文を生成する。
【０１０７】
なお、ステップ２３において、任意のスロットが特定されていないと判断された場合、音声対話処理を終了してもよい。
【０１０８】
また、本実施の形態における重み値は、選択可能なスロット値のそれぞれが過去にユーザによって選択された確率を表しているが、本開示は特にこれに限定されず、選択可能なスロット値のそれぞれに対して値を付与してもよい。例えば、重み値更新部１２２は、スロット値がユーザによって選択された場合、選択されたスロット値の重み値に対して１を加算してもよい。
【０１０９】
また、音声対話システムは、スロット値に対して任意の重み値を設定してもよい。例えば、販売店が特に販売したい商品のスロット値の重み値を他の商品のスロット値の重み値より高くすることにより、特に販売したい商品をユーザに勧めることができる。
【０１１０】
また、音声対話システムは、時期（季節）によって、任意の重み値を設定してもよい。参照される頻度が時期によって大きく変わるスロットについては、それまで更新処理によって更新されてきた重み値を、その時期が訪れる際に、時期の影響を考慮して任意の値に設定してもよい。また、時期毎に対応する重み値の情報を予め用意し、その時期が訪れた際に、全てのスロットの重み値を任意の値へ変更してもよい。このとき、変更した値は、その時期が過ぎるまで固定とせず、設定した後には重み値の更新処理を適用してもよい。
【０１１１】
また、本実施の形態では、ユーザの音声から変換されたテキスト情報を用いているが、本開示は特にこれに限定されず、キーボード又はタッチパネルなどの入力デバイスにより直接入力されたテキスト情報を用いてもよい。
【０１１２】
また、本実施の形態の音声対話システムは、発話したユーザを特定する話者特定部を備えてもよい。この場合、重み値管理テーブルは、特定されたユーザ毎にスロット値と重み値とを対応付けて記憶する。これにより、個々のユーザに応じた応答文を生成することができ、システムとユーザとの対話時間をより短縮することができる。
【０１１３】
また、本実施の形態の音声対話システムにおいて、重み値を更新する期間又は回数を設定してもよい。この場合、音声対話システムは、重み値の更新を開始してから所定の期間が経過した場合、重み値の更新を停止させてもよい。また、音声対話システムは、重み値の更新回数が所定の回数に達した場合、重み値の更新を停止させてもよい。重み値の更新回数が増えるにつれて、重み値はある一定の値に収束する可能性がある。そこで、重み値を更新する期間又は回数を設定することにより、音声対話システムの処理負担を軽減することができる。
【０１１４】
また、所定の季節又は所定の期間のみ販売される商品なども存在するため、本実施の形態の音声対話システムは、所定の季節又は所定の期間のみ選択可能なスロット値を設定し、所定の季節又は所定の期間のみ重み値を更新してもよい。
【０１１５】
本発明の効果を定量的に確認するために、シミュレーション実験を行った。図９Ａと図９Ｂは、それぞれ２つの異なる条件において実行された対話例を示す図である。図９Ａと図９Ｂともに、ハンバーガーショップにおける同一の状況において、店員と客との間で行われる対話の一例を示している。
【０１１６】
図９Ａに示す対話例では、従来の音声対話システムが用いる質問の仕方（条件）によって店員側の質問文が生成され、それに対して客側の応答が行われている。図９Ｂに示す対話例では、本開示における音声対話システムが用いる質問の仕方（条件）によって店員側の質問文が生成され、それに対して客側の応答が行われている。以下、これら２つの質問の仕方（条件）を比較しながら説明を行う。
【０１１７】
図９Ａと図９Ｂにおいて、“Would you like side salad or French fries?”（会話文１００１）と、“Would you like French fries?”（会話文２００１）とが対応している。このとき、会話文２００１の示す内容が質問として音声対話システムから出力されるとき、「meal side」として「french fries」が注文される確率が閾値以上であるという判断がなされている。それに対する客の発話は、それぞれ会話文１００２の“French fries”と会話文２００２の“Yes”となり、質問と回答のどちらも、図９Ｂに示す例の方が短くなっており、効率がよい。また、同様に、会話文１００５の“Would you like large, small or medium?”に対応する会話文２００５では、「medium」の注文確率が高いという統計に基づき、会話文１００５から“Would you like medium?”という効率のよい聞き方へ変更しており、それに対する客の回答も、従来例においては、会話文１００６の“medium”であるのに対して、本開示における音声対話システムの例では、会話文２００６の“Yes”となり、応答内容が短くなっている。
【０１１８】
一方で、従来例の会話文１００７の“What kind of meal drink would you like?”に対して、本開示に係る音声対話システムの例では、会話文２００７の“Would you like coke?”が提案型の質問として出力されており、従来例に対して短い質問となっている。しかし、これに対する客の応答は、従来例では会話文１００８の“Hi-orange lavaburst”であるのに対して、本開示の音声対話システムの例では、会話文２００８の“No. Hi-orange lavaburst”という回答となり、本開示の音声対話システムの例の方が、部分的に会話文が長くなっている。複数の特に高確率が期待される選択肢がない場合は、会話文１００３と会話文２００３、会話文１００４と会話文２００４のように、質問と回答に大きな違いはない。図９Ａと図９Ｂにおいて示される会話例によって受け付けられた注文の内容は、それぞれ、注文受付内容１０１０と注文内容２０１０であり、全く同じ結果となる。
【０１１９】
このようにして行われた２つの対話の総文字数をカウントすると、それぞれ、３３０文字（１００９）と２７３文字（２００９）となり、本開示の音声対話システムが用いる質問の仕方（条件）によって店員側の質問文が生成された方が、会話の文字数が少ない、すなわち会話が短いことが分かる。ここでは、文字数を用いて両者を比較したが、文字数に所定の係数を掛け算することで、会話に要した時間を推定することができる。上述のとおり、店側の提案型の質問に対する客の回答が否定的であった場合には、会話に要する時間が部分的に長くなるが、店側の提案型の質問に対する客の回答が高確率で肯定的であることが期待できる場合のみ、Ｙｅｓ／Ｎｏタイプの質問を行うため、このように、従来例の質問よりも、提案型の質問を出力する場合の方が会話に要する時間が長くなるケースが起こるのは稀（低確率）であると言える。
【０１２０】
この一例と同様にして、１００例のオーダーについてシミュレーションしたところ、総文字数は、従来の方法で２８７４６文字、本開示にかかる方法で２６１６８文字となった。本開示にかかる方法では、トータルの対話の長さは、従来例と比較して１１．４％削減されており、本開示の音声対話システムにおける対話方法の効果が大きいことが確認された。
【産業上の利用可能性】
【０１２１】
本開示に係る対話方法、対話プログラム及び対話システムは、対話システムとユーザとの対話時間を短縮することができるとともに、対話システムの処理時間を短縮することができ、ユーザの発話に対して応答する対話システムにおける対話方法、ユーザの発話に対して応答する対話プログラム及びユーザの発話に対して応答する対話システムとして有用である。
【符号の説明】
【０１２２】
１０１    音声認識部
１０２    自然言語プロセッサ
１０３    メモリ
１０４    会話管理部
１０５    音声合成部
１１１    意味ネットワーク記憶部
１１２    重み値管理テーブル記憶部
１１３    判断条件テーブル記憶部
１２１    会話生成部
１２２    重み値更新部
１３１    構文解析部
１３２    メモリアクセス部
【図１】
0006604542.tif 000002
【図２】
0006604542.tif 000003
【図３】
0006604542.tif 000004
【図４】
0006604542.tif 000005
【図５】
0006604542.tif 000006
【図６】
0006604542.tif 000007
【図７】
0006604542.tif 000008
【図８】
0006604542.tif 000009
【図９Ａ】
0006604542.tif 000010
【図９Ｂ】
0006604542.tif 000011