(57)【要約】【課題】簡便な構成で所定の目的を達成するための対話処理を実現できる対話処理装置および対話処理システムを提供する。【解決手段】実施形態の対話処理装置は、１又は複数の項目別処理部と対話制御部とを備える。対話制御部は、各項目別処理部に入力情報を送る。各項目別処理部は、入力情報から自身が獲得すべき情報の候補を抽出してその候補の確からしさの度合いを示す情報とともに対話制御部に送る。対話制御部は、確からしさの度合いが第１基準を満たす候補を対応する項目の情報として確定し、情報が未確定の項目があれば、該項目の情報を問い合わせる応答をユーザに対して出力する。複数の項目別処理部の各々は、獲得すべき情報の型に応じた対話知識に基づいて候補の抽出および確からしさの度合いを算出する基本ルールを有する汎用処理部に対して、項目名と動作パラメータとが与えられることにより構築される。【選択図】図１
2019061620.tif 000002
【特許請求の範囲】
【請求項１】
ユーザとの対話を通じて、所定の動作を実行するための１又は複数の項目の情報を獲得する対話処理装置であって、
前記１又は複数の項目に対応する１又は複数の項目別処理部と、
前記１又は複数の項目別処理部と連携してユーザとの対話を制御する対話制御部と、を備え、
前記対話制御部は、ユーザの入力に応じた入力情報を前記１又は複数の項目別処理部の各々に送り、
前記１又は複数の項目別処理部の各々は、前記対話制御部から受け取った前記入力情報から自身が獲得すべき情報の候補を抽出して、抽出した候補を該候補が獲得すべき情報であることの確からしさの度合いを示す情報とともに前記対話制御部に送り、
前記対話制御部は、前記１又は複数の項目別処理部の各々から受け取った候補のうち、前記確からしさの度合いが第１基準を満たす候補を、該候補を送った項目別処理部に対応する項目の情報として確定し、情報が未確定の項目があれば、該項目の情報を問い合わせる応答をユーザに対して出力し、
前記１又は複数の項目別処理部の各々は、獲得すべき情報の型に応じた対話知識に基づいて前記候補の抽出および前記確からしさの度合いを算出する基本ルールを有する汎用処理部に対して、対応する項目の項目名と自身の動作を決定付ける動作パラメータとが与えられることにより構築される
対話処理装置。
【請求項２】
前記対話制御部は、前記１又は複数の項目別処理部のいずれかから前記確からしさの度合いが前記第１基準を満たさず、且つ、前記第１基準とは異なる第２基準を満たす候補を受け取った場合、該候補が正しいか否かを問い合わせる応答をユーザに対して出力する
請求項１に記載の対話処理装置。
【請求項３】
前記対話制御部は、前記１又は複数の項目のうち、前記所定の動作を実行するために必要な情報が確定すると、確定した項目の情報に基づいて前記所定の動作を実行する
請求項１または２に記載の対話処理装置。
【請求項４】
ユーザとの対話の履歴を蓄積する対話履歴蓄積部と、
前記履歴に基づいて、前記１又は複数の項目別処理部のいずれかに対応する項目の情報として確定すべき情報を確定できなかった事象を検出し、該情報を該項目の情報として確定できるように、該項目に対応する項目別処理部の前記対話知識を更新する更新部と、をさらに備える
請求項１乃至３のいずれか一項に記載の対話処理装置。
【請求項５】
ユーザとの対話の履歴を蓄積する対話履歴蓄積部をさらに備え、
前記対話制御部は、前記履歴に基づいて、前記１又は複数の項目のうちのいずれかの項目の情報として確定すべき情報が前記入力情報に含まれると判断した場合、該項目に対応する項目別処理部に該入力情報を送らずに、該入力情報から抽出した情報を該項目の情報として確定する
請求項１に記載の対話処理装置。
【請求項６】
ユーザとの対話の履歴を蓄積する対話履歴蓄積部をさらに備え、
前記対話制御部は、前記履歴に基づいて、前記１又は複数の項目のうちのいずれかの項目の情報として確定すべき情報が前記入力情報に含まれると判断した場合、該項目に対応する項目別処理部から受け取った候補の前記確からしさの度合いが前記第１基準を満たさず、且つ、前記第２基準を満たす場合であっても、該候補が正しいか否かを問い合わせる応答をユーザに対して出力せずに、該候補を該項目の情報として確定する
請求項２に記載の対話処理装置。
【請求項７】
ユーザの属性を取得して、取得した属性に応じて前記対話制御部がユーザとの対話を制御する制御パラメータを調整するパラメータ調整部をさらに備える
請求項１乃至６のいずれか一項に記載の対話処理装置。
【請求項８】
請求項１乃至７のいずれか一項に記載の対話処理装置であって、前記所定の動作が互いに異なる複数の前記対話処理装置と、
前記入力情報に基づいてユーザが目的とする前記所定の動作を判断し、該所定の動作に対応する前記対話処理装置を選択する選択部と、
を備える対話処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、対話処理装置および対話処理システムに関する。
【背景技術】
【０００２】
従来、対話シナリオに基づいてユーザとの対話を行う対話処理装置が知られている。この種の対話処理装置は、対話シナリオの作り込みによって目的に応じた対話処理を実現できるが、様々な対話のバリエーションに柔軟に対応するためには、必要とされる対話シナリオの量が膨大になる。また、対話シナリオは、一般的に、所定の目的を達成するための一連の対話の流れに沿って個別に作成されるため、作成された対話シナリオに汎用性を持たせることが難しい。このため、対話処理を実現するための対話シナリオの作り込みに多大な労力を要するという問題があり、より簡便な構成で所定の目的を達成するための対話処理を実現できる仕組みが望まれている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２６４１９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、簡便な構成で所定の目的を達成するための対話処理を実現できる対話処理装置および対話処理システムを提供することである。
【課題を解決するための手段】
【０００５】
実施形態の対話処理装置は、ユーザとの対話を通じて、所定の動作を実行するための１又は複数の項目の情報を獲得する対話処理装置であって、前記１又は複数の項目に対応する１又は複数の項目別処理部と、前記１又は複数の項目別処理部と連携してユーザとの対話を制御する対話制御部と、を備える。前記対話制御部は、ユーザの入力に応じた入力情報を前記１又は複数の項目別処理部の各々に送る。前記１又は複数の項目別処理部の各々は、前記対話制御部から受け取った前記入力情報から自身が獲得すべき情報の候補を抽出して、抽出した候補を該候補が獲得すべき情報であることの確からしさの度合いを示す情報とともに前記対話制御部に送る。前記対話制御部は、前記１又は複数の項目別処理部の各々から受け取った候補のうち、前記確からしさの度合いが第１基準を満たす候補を、該候補を送った項目別処理部に対応する項目の情報として確定し、情報が未確定の項目があれば、該項目の情報を問い合わせる応答をユーザに対して出力する。前記１又は複数の項目別処理部の各々は、獲得すべき情報の型に応じた対話知識に基づいて前記候補の抽出および前記確からしさの度合いの算出を行う基本ルールを有する汎用処理部に対して、対応する項目の項目名と自身の動作を決定付ける動作パラメータとが与えられることにより構築される。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態に係る対話処理装置の機能的な構成例を示すブロック図である。
【図２】図２は、スロットテーブルの一例を示す図である。
【図３】図３は、テーブル情報の一例を示す図である。
【図４】図４は、項目別処理部の詳細を説明する図である。
【図５】図５は、項目別処理部の詳細を説明する図である。
【図６】図６は、項目別処理部の詳細を説明する図である。
【図７】図７は、項目別処理部の詳細を説明する図である。
【図８】図８は、対話制御部の詳細を説明する図である。
【図９】図９は、対話処理装置の動作例を説明する図である。
【図１０】図１０は、対話制御部による処理手順の一例を示すフローチャートである。
【図１１】図１１は、項目別処理部による処理手順の一例を示すフローチャートである。
【図１２】図１２は、第２実施形態に係る対話処理システムの概要を示すブロック図である。
【図１３】図１３は、複数の項目別処理部を階層構造とした構成例を説明する図である。
【図１４】図１４は、第１実施形態に係る対話処理装置や第２実施形態に係る対話処理システムのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【０００７】
以下、実施形態の対話処理装置および対話処理システムについて、図面を参照して詳細に説明する。
【０００８】
＜実施形態の概要＞
本実施形態の対話処理装置は、ユーザが明確な目的をもって利用する目的達成型の対話処理装置であり、ユーザとの対話を通じて、その目的に応じた所定の動作を実行するための１又は複数の項目の情報を獲得する。例えば、目的が「商談記録」であれば、「訪問日時」、「訪問先」、「次回予定日」、「特記事項」などの各項目の情報を、ユーザとの対話を通じて獲得する。また、目的が「宿泊予約」であれば、「チェックイン予定日時」、「チェックアウト予定日時」、「宿泊人数」、「宿泊プラン」などの各項目の情報、目的がカーナビゲーションシステムの「経路探索」であれば、「目的地」、「有料道路利用の有無」などの各項目の情報が、それぞれ獲得すべき情報となる。なお、以下では獲得すべき情報が複数の項目の情報であるものとして説明するが、獲得すべき情報が１つの項目の情報であってもよい。
【０００９】
本実施形態の対話処理装置は、目的に応じた所定の動作を実行するために、スロットテーブルを用いる。スロットテーブルは、複数の項目の各々に対応する複数のスロットを有する。各スロットには、対話を通じて獲得される情報（項目値）が入力される。スロットテーブルのすべてのスロットが埋まると、そのスロットテーブルに基づいて、目的に応じた所定の動作が実行される。目的に応じた所定の動作は、例えば、目的が「商談記録」であれば商談記録をデータベースに登録するという動作である。また、目的が「宿泊予約」であれば宿泊予約クエリの実行、目的が「経路探索」であれば現在地から目的地までの経路の探索処理といった動作が、それぞれ目的に応じた所定の動作である。なお、スロットテーブルのすべてのスロットが埋まっていなくとも、所定の動作を実行するために必要な項目に対応するスロットが埋まった段階で所定の動作を実行してもよい。
【００１０】
本実施形態では、上述のスロットテーブルの各スロットに対応する複数の項目ごとに、その項目の情報を獲得するための処理を個別に行う小パーツ（本実施形態ではこれを「項目別処理部」と呼ぶ）を設け、複数の項目に対応する複数の項目別処理部を組み合わせて対話処理を実現することを基本とする。本実施形態の対話処理装置は、これら複数の項目別処理部と、これら複数の項目別処理部と連携してユーザとの対話を制御する対話制御部とを備えて構成される。対話制御部は、上述のスロットテーブルの各スロットに情報が入力されるように、複数の項目別処理部と連携しながらユーザとの対話を制御する。
【００１１】
本実施形態の対話処理装置が獲得すべき各項目の情報は、その項目の属性に応じた型に分類できる。例えば上述の「商談記録」を目的とする例において、項目が「訪問日時」や「次回予定日」であれば、獲得すべき情報は日時であるため日時型であり、項目が「訪問先」であれば、獲得すべき情報はいくつかの選択肢の中から選ばれる社名等であるため選択肢型である。また、項目が「特記事項」であれば、獲得すべき情報は特に制限のない任意の情報となるため自由記述型である。これらの情報を獲得するための処理は、その情報の型に応じてある程度一般化できる。そこで本実施形態では、獲得すべき情報の型に応じた汎用的な処理を定義した汎用処理部を型ごとに事前に用意しておき、これら汎用処理部をカスタマイズして上述の項目別処理部を構築する。
【００１２】
本実施形態では、以上のように、獲得すべき情報の型ごとに事前に用意された汎用処理部をカスタマイズして複数の項目別処理部を構築し、これら複数の項目別処理部を組み合わせて対話処理装置を構築する。したがって、従来の対話シナリオに基づいて対話処理を行う対話処理装置のように、達成すべき目的に応じた大量の対話シナリオを作り込むといった煩雑な作業を行うことなく適切な対話処理が可能となり、簡便な構成で所定の目的を達成するための対話処理を実現できる。以下では、達成すべき目的が「商談記録」である場合を例に挙げて、本実施形態の対話処理装置の具体的な構成例および動作を説明する。
【００１３】
＜第１実施形態＞
図１は、第１実施形態に係る対話処理装置１０の機能的な構成例を示すブロック図である。本実施形態の対話処理装置１０は、図１に示すように、対話制御部１１と複数の項目別処理部１２Ａ，１２Ｂ，１２Ｃ，１２Ｄ（以下、これらを特に区別しない場合は「項目別処理部１２」と表記する）との組み合わせを、ユーザ５０との間の対話処理を実現するための基本ユニットとして備える。この対話処理装置１０は、スロットテーブル１６の各スロットに入力する情報を獲得するために、ユーザ５０との間の対話処理を行う。
【００１４】
スロットテーブル１６の一例を図２に示す。スロットテーブル１６は、図２に示すように、項目番号（図中の０１，０２，０３，０４）により識別される複数のスロット１７Ａ，１７Ｂ，１７Ｃ，１７Ｄ（以下、これらを特に区別しない場合は「スロット１７」と表記する）を有する。これら複数のスロット１７は、達成すべき目的に応じた複数の項目に対応する。本実施形態では、達成すべき目的が「商談記録」であり、商談記録をデータベースに登録するために必要とされる情報は「訪問日時」、「訪問先」、「次回予定日」および「特記事項」の各項目の情報であるとする。このため、「訪問日時」の情報が入力される項目番号０１のスロット１７Ａと、「訪問先」の情報が入力される項目番号０２のスロット１７Ｂと、「次回予定日」の情報が入力される項目番号０３のスロット１７Ｃと、「特記事項」の情報が入力される項目番号０４のスロット１７Ｄとを有するスロットテーブル１６が作成される。
【００１５】
スロットテーブル１６は、ユーザ５０との間の対話処理を開始する際に作成され、ユーザとの対話を通じて獲得された情報が随時入力される。そして、すべてのスロット１７が埋まると目的に応じた所定の動作が実行され、そのスロットテーブル１６は削除される。つまり、スロットテーブル１６は、ユーザ５０との間で目的を達成するための一連の対話処理を行うたびに作成される一時的なテーブルである。このスロットテーブル１６は、対話処理装置１０の内部に永続的に保持されたテーブル情報に基づいて作成される。ここではスロットテーブル１６について、対話処理装置１０の内部に永続的に保持されたテーブル情報に基づいて都度作成する仕組みで説明したが、これに限らず、作成したスロットテーブル１６を削除せずテーブル形式で保持するようにしてもよい。
【００１６】
テーブル情報１８の一例を図３に示す。テーブル情報１８は、図３に示すように、目的に応じた所定の動作を実行するために情報を獲得すべき複数の項目ごとに、項目番号と、情報の型と、項目名とを定義した情報である。図３に示すテーブル情報１８は、図２に示すスロットテーブル１６の各スロット１７に入力される情報を決定付ける。すなわち、スロットテーブル１６の項目番号０１で識別されるスロット１７Ａには、項目名が「訪問日時」の項目の情報として日時型の情報が入力され、項目番号０２で識別されるスロット１７Ｂには、項目名が「訪問先」の項目の情報として選択肢型の情報が入力され、項目番号０３で識別されるスロット１７Ｃには、項目名が「次回予定日」の項目の情報として日時型の情報が入力され、項目番号０４で識別されるスロット１７Ｄには、項目名が「特記事項」の項目の情報として自由記述型の情報が入力されることが、図３に示すテーブル情報１８に基づいて決定される。
【００１７】
上述のテーブル情報１８は、例えば、目的に応じた対話処理装置１０を構築する際に装置構築者によって入力され、対話処理装置１０の内部に永続的に保持される。そして、ユーザ５０との間の対話処理を開始する際に、このテーブル情報１８を参照してスロットテーブル１６が作成される。また、テーブル情報１８は、複数の項目に対応する複数の項目別処理部１２を構築するための情報としても用いられる。さらに、対話制御部１１が後述のようにユーザ５０に対して応答を出力する場合にも、このテーブル情報１８が参照される。
【００１８】
対話制御部１１は、複数の項目別処理部１２と連携してユーザ５０との対話を制御する。対話制御部１１は、各々独立して動作する複数の項目別処理部１２を取りまとめ、ユーザ５０の入力に応じた入力テキストから、スロットテーブル１６の各スロット１７に入力する情報を獲得する役割を持つ。
【００１９】
具体的には、対話制御部１１は、ユーザ５０の入力を受け取って、ユーザ５０の入力に応じた入力情報を複数の項目別処理部１２の各々に送る。以下では、入力情報がテキスト（入力テキスト）であるものとして説明するが、これに限らない。ユーザ５０の入力に応じた入力情報がテキストの場合、ユーザ５０の入力はマイクにより取得された音声であってもよいし、キーボードなどで入力されたテキストであってもよい。ユーザ５０の入力がテキストであれば、対話制御部１１は、ユーザ５０が入力したテキストをそのまま入力テキストとして複数の項目別処理部１２の各々に送る。ユーザ５０の入力が音声の場合、対話制御部１１は、この音声を音声認識処理によりテキストに変換し、得られたテキストを入力テキストとして複数の項目別処理部１２の各々に送る。なお、ユーザ５０が入力した音声に対する音声認識処理を対話制御部１１の外部で行い、音声から変換されたテキストを対話制御部１１が受け取る構成であってもよい。音声認識処理は公知技術を利用すればよいため、詳細な説明を省略する。
【００２０】
その後、対話制御部１１は、複数の項目別処理部１２の各々から送られる後述の候補およびスコアを受け取る。そして、スコアが第１閾値以上の候補（第１基準を満たす候補）があれば、その候補を、その候補を送った項目別処理部１２に対応する項目の情報として確定し、スロットテーブル１６の対応する項目のスロット１７に入力する。例えば、項目名が「訪問日時」の項目に対応する項目別処理部１２Ａから送られた候補のスコアが第１閾値以上であれば、対話制御部１１は、項目別処理部１２Ａから送られた候補を、項目名が「訪問日時」の項目の情報として確定し、スロットテーブル１６のスロット１７Ａに入力する。なお、スコアはその候補が獲得すべき情報であることの確からしさの度合いを示す情報の一例であり、スコア以外の情報を用いてもよい。例えば、スコアのような数値化された情報に限らず、その候補が獲得すべき情報であることの確からしさの度合いを示すラベル（例えば、「確実」、「あいまい」、「非該当」などのラベル）などを用いることもできる。この場合、ラベルが「確実」の候補は第１基準を満たす候補となり、ラベルが「あいまい」の候補は第１基準を満たさず、且つ、第２基準を満たす候補となる。
【００２１】
また、対話制御部１１は、スロットテーブル１６に情報が入力されていないスロット１７がある場合、つまり、スロット１７に入力する情報が未確定の項目がある場合に、その項目の情報を問い合わせる応答をユーザ５０に対して出力する。例えば、ユーザ５０の入力がテキストであれば、対話制御部１１は、未確定の項目の情報を問い合わせる応答テキストを生成し、この応答テキストをユーザ５０が使用する表示装置に表示させる。また、ユーザ５０の入力が音声であれば、対話制御部１１は、生成した応答テキストを音声合成処理により音声に変換し、得られた音声をユーザ５０が使用するスピーカから出力させる。なお、応答テキストに対する音声合成処理を対話制御部１１の外部で行い、ユーザ５０が使用するスピーカから出力させる構成であってもよい。音声合成処理は公知技術を利用すればよいため、詳細な説明を省略する。
【００２２】
未確定の項目の情報を問い合わせる応答テキストは、例えば、「ｘｘｘは何ですか？」といったベースとなる汎用の応答テキストを用意しておき、「ｘｘｘ」の部分に情報が未確定の項目名を挿入することで生成することができる。例えば、項目名が「次回予定日」の項目の情報が未確定であれば、ベースとなる応答テキストに「次回予定日」を挿入することで、「次回予定日は何ですか？」といった応答テキストを生成することができる。また、例えば「ｘｘｘはいつですか？」といった日時型に特有のベースとなる応答テキストを個別に用意しておき、問い合わせる情報が日時型であれば、その応答テキストを選択して項目名を挿入し、「次回予定日はいつですか？」といった応答テキストを生成するようにしてもよい。情報が未確定の項目が複数ある場合には、対話制御部１１は、例えば項目番号が小さい項目から順に、その項目の情報を問い合わせる応答をユーザ５０に出力すればよい。
【００２３】
また、対話制御部１１は、複数の項目別処理部１２のいずれかから、スコアが第１閾値未満で、且つ、第２閾値以上の候補（第１基準を満たさず、且つ、第２基準を満たす候補）を受け取った場合は（ただし、第１閾値＞第２閾値）、その候補が正しいか否かを問い合わせる応答をユーザ５０に対して出力する。この場合の応答テキストは、例えば、「ｘｘｘはｙｙｙですか？」といったベースとなる汎用の応答テキストを用意しておき、「ｘｘｘ」の部分に問い合わせの対象となる項目名を挿入し、「ｙｙｙ」の部分に問い合わせの対象となる候補を挿入することで生成することができる。例えば、項目名が「訪問先」の項目に対応する項目別処理部１２Ｂから受け取った候補が「山下工業」であり、その候補のスコアが第１閾値未満で、且つ、第２閾値以上であった場合、ベースとなる応答テキストに「訪問先」と「山下工業」を挿入することで、「訪問先は山下工業ですか？」といった応答テキストを生成することができる。
【００２４】
項目別処理部１２から受け取った候補が正しいか否かを問い合わせる応答をユーザ５０に対して出力した場合、対話制御部１１は、ユーザ５０からの次の入力に応じた入力テキストが例えば「はい」、「そうです」といった肯定表現を含む場合、問い合わせの対象とした候補を、問い合わせの対象とした項目に対応する情報として確定し、スロットテーブル１６の対応する項目のスロット１７に入力する。一方、ユーザ５０からの次の入力に応じた入力テキストが例えば「いいえ」、「違います」といった否定表現を含む場合、あるいは肯定表現も否定表現も含まない場合は、対話制御部１１は、その入力テキストを問い合わせの対象とした項目に対応する項目別処理部１２に送り、この項目別処理部１２から候補およびそのスコアが再度送られてくるのを待つ。なお、入力テキストを問い合わせの対象とした項目に対応する項目別処理部１２だけでなく、全ての項目別処理部１２に入力テキストを送ってもよい。また、対話制御部１１は、複数の項目別処理部１２からスコアが第１閾値未満で、且つ、第２閾値以上の候補が送られてきた場合には、例えば項目番号が小さい項目から順に、候補が正しいか否かを問い合わせる応答をユーザ５０に出力すればよい。
【００２５】
対話制御部１１は、スロットテーブル１６の全てのスロット１７が埋まるまで以上の処理を繰り返し、スロットテーブル１６の全てのスロット１７が埋まると、スロットテーブル１６の各スロット１７に入力された情報を用いて、目的に応じた所定の動作を実行する。本実施形態では、達成すべき目的が「商談記録」であるため、スロットテーブル１６のスロット１７Ａに入力された「訪問日時」の情報と、スロット１７Ｂに入力された「訪問先」の情報と、スロット１７Ｃに入力された「次回予定日」の情報と、スロット１７Ｄに入力された「特記事項」の情報とが、１つの商談記録として、データベースに登録される。なお、対話制御部１１はスロットテーブル１６の各スロット１７に情報を入力する処理までを行い、目的に応じた所定の動作は、対話制御部１１とは別のユニットが、スロットテーブル１６の各スロット１７に入力された情報に基づいて実行する構成であってもよい。
【００２６】
複数の項目別処理部１２は、それぞれ、対話制御部１１から送られた入力テキストを受け取り、その入力テキストから自身が獲得すべき情報の候補を抽出して、抽出した候補をその候補が獲得すべき情報であることの確からしさを示すスコアとともに、対話制御部１１に送る。これら項目別処理部１２は、上述のように、情報の型ごとに事前に用意された汎用処理部のうち、自身が獲得すべき情報の型に対応する汎用処理部をカスタマイズすることで構築される。汎用処理部は、獲得すべき情報の型に応じた対話知識に基づいて候補の抽出およびスコアの算出を行う基本ルールを有し、項目名と項目別処理部１２の動作を決定づける動作パラメータとが与えられることによって、項目別処理部１２として機能する。
【００２７】
図４は、項目名が「訪問日時」の項目に対応する項目別処理部１２Ａの詳細を説明する図である。項目別処理部１２Ａは、図４に示すように、日時型汎用処理部２０Ａに対して、項目名２２Ａと動作パラメータ２３Ａとが与えられることにより構築される。日時型汎用処理部２０Ａは、日時型の情報に対応する汎用処理部である。項目名２２Ａは「訪問日時」であり、動作パラメータ２３Ａは、項目別処理部１２Ａが獲得すべき情報が過去の日時である訪問日時であるため、「過去の日時」という情報獲得の条件である。
【００２８】
日時型汎用処理部２０Ａは、対話知識２１Ａに基づいて、入力テキストから日時を表していると推定される部分を候補として抽出し、抽出した各候補が日時を表している確からしさを示すスコアを候補ごとに算出し、スコアが最も高い候補をスコアとともに出力する。対話知識２１Ａは、日時型汎用処理部２０Ａの動作フローやスコア算出のルール、日時を表す文字列のリスト、日時を表す文字列を所定形式の数値の列に変換するルールなどを含む。例えば、入力テキストに「今日の１５時」という文字列が含まれている場合、日時型汎用処理部２０Ａは対話知識２１Ａに基づき、「今日の１５時」という文字列を「２０１７／０６／２６  １５：００」といった所定形式の数値の列に変換する。また、対話知識２１Ａは、入力テキストに日時を表す文字列が項目名２２Ａとともに含まれている場合は、その文字列（候補）のスコアを最大にするといったルールが含まれていてもよい。
【００２９】
また、スコアの算出は、予め定めたスコア算出ルールに従って行うことができる。例えば、入力テキストに項目名２２Ａの一部が含まれている場合にベーススコアとして０．７を与え、更に動作パラメータ２３Ａに該当する場合、項目名２２Ａの全てが含まれる場合にそれぞれ、ベーススコアに０．１を加算するといった算出ルールに従ってスコアを算出する。例えば「今日の１５時にｘｘにｙｙを紹介しました。」が入力されると、「今日の１５時」が項目名２２Ａの一部の日時に該当するのでベーススコアとして０．７が与えられる。また、「紹介しました」という過去についての入力のため、「今日の１５時」は過去の日時を指し、動作パラメータ２３Ａに該当するため０．１が加算され、スコアは０．８となる。一方、「訪問日時は今日の１５時で・・・」や「今日の１５時にｘｘを訪問しました。」など、入力テキストに項目名２２Ａの全てが含まれている場合はさらに０．１が加算されるため、スコアは０．９となる。
【００３０】
なお、入力テキストに項目名２２Ａが含まれておらず、動作パラメータ２３Ａにも該当しない場合は、スコアをゼロとするのではなく、入力テキストの文字列から項目名２２Ａ、動作パラメータ２３Ａに設定された情報との類似度などからスコアを算出する。その場合、ベーススコアより低いスコアを設定することが望ましい。
【００３１】
日時型汎用処理部２０Ａは、項目名２２Ａと動作パラメータ２３Ａとが与えられることにより、「訪問日時」の情報を獲得するための項目別処理部１２Ａとしてカスタマイズされる。項目別処理部１２Ａは、動作パラメータ２３Ａとして与えられた「過去の日時」を情報獲得の条件として、入力テキストから「訪問日時」の候補を抽出し、その候補が「訪問日時」である確からしさを表すスコアを算出し、スコアが最も高い候補をスコアとともに対話制御部１１に送る。
【００３２】
図５は、項目名が「訪問先」の項目に対応する項目別処理部１２Ｂの詳細を説明する図である。項目別処理部１２Ｂは、図５に示すように、選択肢型汎用処理部２０Ｂに対して、項目名２２Ｂと動作パラメータ２３Ｂとが与えられることにより構築される。選択肢型汎用処理部２０Ｂは、選択肢型の情報に対応する汎用処理部である。項目名２２Ｂは「訪問先」であり、動作パラメータ２３Ｂは、項目別処理部１２Ｂが獲得すべき情報がいくつかの選択肢の中から選ばれる社名等であるため、例えば「東京商事、海山建設、山田工業・・・」といった選択肢である。
【００３３】
選択肢型汎用処理部２０Ｂは、対話知識２１Ｂに基づいて、入力テキストから動作パラメータ２３Ｂとして与えられる選択肢のいずれかに一致すると推定される部分を候補として抽出し、抽出した各候補がその選択肢を表している確からしさを示すスコアを候補ごとに算出し、スコアが最も高い候補をスコアとともに出力する。対話知識２１Ｂは、選択肢型汎用処理部２０Ｂの動作フローやスコア算出のルールなどを含む。また、対話知識２１Ｂは、入力テキストに動作パラメータ２３Ｂとして与えられた選択肢のいずれかに一致すると推定される文字列が項目名２２Ｂとともに含まれている場合は、その文字列（候補）のスコアを最大にするといったルールが含まれていてもよい。
【００３４】
また、選択肢型汎用処理部２０Ｂは、入力テキストが読みの情報を含む場合（例えば、ユーザ５０から入力された音声に対する音声認識処理によって得られる読みの情報が入力テキストに付加される場合）、動作パラメータ２３Ｂとして与えられる選択肢に読みの情報を付加しておき、入力テキストに含まれる読みの情報と選択肢の読みの情報とのマッチングにより、入力テキストから候補を抽出するようにしてもよい。
【００３５】
また、スコアの算出は、予め定めたスコア算出ルールに従って行うことができる。例えば日時型の場合と同様に、入力テキストが項目名２２Ｂや動作パラメータ２３Ｂを含むか否かに応じて算出することができる。例えば、動作パラメータ２３Ｂを含む場合にベーススコア（０．７）を与え、項目名２２Ｂも含む場合はスコアを加算する算出ルールとする。また、上述の読みの情報を用いたマッチングの結果をスコアに反映させることも可能であり、その場合、読みの情報の類似度に応じてスコアをプラスするようにするとよい。例えば、ユーザ５０が「訪問先は海山商事」や「海山商事を訪問しました」と発話し、認識結果も全て正しい場合は項目名の「訪問先」、項目名の一部である「訪問」が含まれているためスコアを加算（＋０．１）する。更に、動作パラメータ２３Ｂに設定されている選択肢である「海山商事」を含むため、更にスコアを加算（＋０．２）する。動作パラメータ２３Ｂとの関係におけるスコア評価は、例えば、選択肢との対象文字列の一致、読みの情報の類似度、項目名との距離などに基づき評価することができる。評価（スコアのプラス値）は適宜設定可能である。
【００３６】
選択肢型の場合も、日時型の場合と同様、入力テキストが項目名２２Ｂ、動作パラメータ２３Ｂに該当しない場合は、スコアをゼロとするのではなく、例えば、入力テキストの読みの情報の一部のみが項目名２２Ｂや動作パラメータ２３Ｂに設定された情報と類似する場合など、一部の情報に基づき、項目名２２Ｂ、動作パラメータ２３Ｂに設定された情報との関係からスコアを算出できるようにする。その場合、ベーススコアより低いスコアを設定することが望ましい。後述する自由記述型汎用処理部２０Ｄにおいても同様の考え方により、入力テキストが項目名、動作パラメータに該当しない場合におけるスコアを算出することが可能である。
【００３７】
選択肢型汎用処理部２０Ｂは、項目名２２Ｂと動作パラメータ２３Ｂとが与えられることにより、「訪問先」の情報を獲得するための項目別処理部１２Ｂとしてカスタマイズされる。項目別処理部１２Ｂは、入力テキストから、動作パラメータ２３Ｂとして与えられた選択肢のいずれかに一致すると推定される文字列を「訪問先」の候補として抽出し、その候補が「訪問先」である確からしさを表すスコアを算出し、スコアが最も高い候補をスコアとともに対話制御部１１に送る。
【００３８】
図６は、項目名が「次回予定日」の項目に対応する項目別処理部１２Ｃの詳細を説明する図である。項目別処理部１２Ｃは、図６に示すように、日時型汎用処理部２０Ａに対して、項目名２２Ｃと動作パラメータ２３Ｃとが与えられることにより構築される。項目名２２Ｃは「次回予定日」であり、動作パラメータ２３Ｃは、項目別処理部１２Ｃが獲得すべき情報が将来の日時である次回予定日であるため、「将来の日時」という情報獲得の条件である。
【００３９】
項目別処理部１２Ｃに用いる日時型汎用処理部２０Ａは、上述の項目別処理部１２Ａに用いた日時型汎用処理部２０Ａと共通であり、入力テキストから日時を表していると推定される部分を候補として抽出し、抽出した各候補が日時を表している確からしさを示すスコアを候補ごとに算出し、スコアが最も高い候補をスコアとともに出力する。この日時型汎用処理部２０Ａは、項目名２２Ｃと動作パラメータ２３Ｃとが与えられることにより、「次回訪問日」の情報を獲得するための項目別処理部１２Ｃとしてカスタマイズされる。項目別処理部１２Ｃは、動作パラメータ２３Ｃとして与えられた「将来の日時」を情報獲得の条件として、入力テキストから「次回予定日」の候補を抽出し、その候補が「次回予定日」である確からしさを表すスコアを算出し、スコアが最も高い候補をスコアとともに対話制御部１１に送る。
【００４０】
図７は、項目名が「特記事項」の項目に対応する項目別処理部１２Ｄの詳細を説明する図である。項目別処理部１２Ｄは、図７に示すように、自由記述型汎用処理部２０Ｄに対して、項目名２２Ｄと動作パラメータ２３Ｄとが与えられることにより構築される。自由記述型汎用処理部２０Ｄは、自由記述型の情報に対応する汎用処理部である。項目名２２Ｄは「特記事項」であり、動作パラメータ２３Ｄは、「商談記録」に関する専門用語などを定義したユーザ辞書や、「特記事項」に対応するスロット１７Ｄに入力する情報の文字数制限などである。
【００４１】
自由記述型汎用処理部２０Ｄは、対話知識２１Ｄに基づいて、入力テキストから項目名に対応するスロット１７に入力する情報の候補を抽出し、抽出した候補が項目名に対応するスロット１７に入力する情報である確からしさを示すスコアを算出し、候補をスコアとともに出力する。対話知識２１Ｄは、自由記述型汎用処理部２０Ｄの動作フローやスコア算出のルール、入力テキストに項目名が含まれていればその項目名の後に続く文字列を候補として抽出してスコアを最大化するといったルールなどを含む。
【００４２】
また、スコアの算出は、予め定めたスコア算出ルールに従って行うことができる。例えば、項目名２２Ｄを含むか否かに応じてスコアを算出することができる。また、項目名２２Ｄを含む場合にベーススコアを与え、入力テキスト中の項目名の出現位置によりスコアを加算するといった算出ルールに従って算出することができる。例えば入力テキストが「ｘｘｘｘｘｘ、特記事項はｙｙｙ」の場合、途中に「特記事項」とあるので「特記事項」以下の「ｙｙｙ」の部分を自由記述内容として抽出して、ベーススコア（０．６）を与える。また、入力テキストが「特記事項はｙｙｙ」のように、先頭に項目名がある場合はスコアを加算（＋０．２）する。さらに自由記述型の場合も日時型や選択肢型と同様に、読みの情報をスコアに反映させることも可能であり、表記は一致していなくても読みの情報が類似していれば項目名２２Ｄを含むものとして、ベーススコアを与えるようにしてもよい。
【００４３】
自由記述型汎用処理部２０Ｄは、項目名２２Ｄと動作パラメータ２３Ｄとが与えられることにより、「特記事項」の情報を獲得するための項目別処理部１２Ｄとしてカスタマイズされる。項目別処理部１２Ｄは、入力テキストから、動作パラメータ２３Ｄとして与えられたユーザ辞書を用いて文字数制限を超えない文字列を候補として抽出し、その候補が「特記事項」である確からしさを表すスコアを算出して、候補をスコアとともに対話制御部１１に送る。
【００４４】
以上のように、本実施形態の対話処理装置１０が備える複数の項目別処理部１２は、それぞれ、自身が獲得すべき情報の型に対応する汎用処理部に対して、項目名および動作パラメータが与えられることで構築される。汎用処理部は、情報の型に応じて事前に用意されたものを利用する。したがって、本実施形態の対話処理装置１０を構築する際には、目的に応じた所定の動作を実行するために必要な項目ごとに、その情報の型に応じた汎用処理部を選択して項目名と動作パラメータを与えて項目別処理部１２を構築し、複数の項目別処理部１２を取りまとめる対話制御部１１を設けるだけで、適切な対話処理が可能な対話処理装置１０を構築できる。
【００４５】
なお、本実施形態では、達成すべき目的が「商談記録」である場合を想定するため、汎用処理部として日時型の情報に対応する日時型汎用処理部２０Ａ、選択肢型の情報に対応する選択肢型汎用処理部２０Ｂおよび自由記述型の情報に対応する自由記述型汎用処理部２０Ｄを例示した。しかし、様々な情報の型に応じた汎用処理部を事前に用意しておくことで、様々な目的に応じた項目ごとの情報を獲得する項目別処理部を容易に構築できる。
【００４６】
例えば、数値型の情報に対応する汎用処理部を事前に用意し、この汎用処理部に対して項目名として「宿泊予約」、動作パラメータとして「単位（人）、有効桁、上限下限」などを与えることで、「宿泊予約」の目的を達成するために必要な「宿泊人数」の情報を獲得する項目別処理部を構築できる。また、住所型の情報に対応する汎用処理部を事前に用意し、この汎用処理部に対して項目名として「目的地」、動作パラメータとして「住所データ、地図データ」などを与えれば、「経路探索」の目的を達成するために必要な「目的地」の情報を獲得する項目別処理部を構築できる。
【００４７】
また、上述の対話制御部１１に対しても項目別処理部１２と同様の仕組みを適用し、複数の項目別処理部１２を取りまとめる基本ルールを有する汎用対話制御部をカスタマイズすることで、対話制御部１１を構築するようにしてもよい。図８は、このように構築される対話制御部１１の詳細を説明する図である。この対話制御部１１は、図８に示すように、汎用対話制御部３０に対して動作パラメータ３２が与えられることにより構築される。
【００４８】
汎用対話制御部３０は、対話知識３１に基づき、ユーザ５０との対話を制御する。対話知識３１は、入力テキストを各項目別処理部１２に送って候補をスコアとともに受け取り、スコアが第１閾値以上の候補をスロットテーブル１６の該当するスロット１７に入力するといった動作フロー、ユーザとの対話のルール、ユーザ５０への応答に用いる上述のベースとなる汎用の応答テキストなどを含む。この汎用対話制御部３０は、動作パラメータ３２が与えられることにより、対話処理装置１０が達成すべき目的に応じた対話制御部１１にカスタマイズされる。動作パラメータ３２は、例えば、スロットテーブル１６の各スロット１７に対応する項目名や、全てのスロット１７が埋まった場合に実行する動作などである。
【００４９】
本実施形態の対話処理装置１０では、ユーザ５０との対話の履歴が対話履歴蓄積部１３に蓄積される。対話履歴蓄積部１３に蓄積された対話履歴は、例えば、項目別処理部１２の対話知識２１Ａ，２１Ｂ，２１Ｄ（以下、これらを特に区別しない場合は「対話知識２１」と表記する）を更新するために利用することができる。本実施形態の対話処理装置１０は、対話履歴を用いて対話知識２１を更新する更新部１４を備える。
【００５０】
更新部１４は、対話履歴蓄積部１３に蓄積された対話履歴に基づいて、複数の項目別処理部１２のいずれかに対応する項目の情報として確定すべき情報を確定できなかった事象を検出し、該情報を該項目の情報として確定できるように、該項目に対応する項目別処理部１２の対話知識２１を更新する。具体的には、例えば対話履歴蓄積部１３に蓄積された対話履歴を、対話処理装置１０の運用を管理する管理者に対して閲覧可能に提示する。管理者は対話履歴を確認して、入力テキストに含まれるある項目の情報が確定されずにユーザ５０に対して問い合わせを行っている場合に、その情報と項目名を対話処理装置１０に入力する。更新部１４は、この管理者からの入力をもとに上述の事象を検出し、管理者から入力された情報が管理者から入力された項目名の項目別処理部１２において適切に獲得されるように、その項目別処理部１２の対話知識２１を更新する。
【００５１】
また、更新部１４は、対話履歴蓄積部１３に蓄積された対話履歴から、対話制御部１１がユーザ５０に対して出力した、スコアが第１閾値未満で、且つ、第２閾値以上の候補が正しいか否かを問い合わせる応答と、その後の肯定表現を含む入力テキストの組み合わせの対話パターンを上述の事象として検出し、その対話パターンに含まれる候補のスコアが第１閾値以上となるように、その候補を対話制御部１１に送った項目別処理部１２の対話知識２１を更新してもよい。
【００５２】
本実施形態の対話処理装置１０では、対話制御部１１が、調整可能な制御パラメータに従ってユーザ５０との対話を制御することができる。ここで、ユーザ５０との対話を制御する制御パラメータとは、例えば、応答テキストの言葉づかい（親密、丁寧など）や、応答テキストを音声合成して出力する場合の合成音の声質やスピードなどである。こうした制御パラメータをユーザ５０の属性（年齢、性別など）に応じて適宜調整することで、ユーザ５０にとって満足度の高い対話を実現することができる。本実施形態の対話処理装置１０は、対話制御部１１がユーザ５０との対話を制御する制御パラメータを調整するパラメータ調整部１５を備える。
【００５３】
パラメータ調整部１５は、ユーザ５０の属性を取得して、取得した属性に応じて上述の制御パラメータを調整する。ユーザ５０の属性は、例えば、ユーザ５０による明示的な指定（例えば年齢や性別の入力）を受け付けることで取得できる。あるいは、ユーザ５０の顔画像をカメラで撮影し、この顔画像を解析してユーザ５０の属性を推定するようにしてもよい。また、ユーザ５０との対話履歴を解析してユーザ５０の大まかな性格（厳格、気さくなど）を推定し、これをユーザ５０の属性に含めてもよい。ユーザ５０の属性に応じた制御パラメータの値は、例えば、様々な属性のユーザ５０を対象として制御パラメータの値を変えながら対話処理を行ったときのユーザ５０の満足度などを収集して統計処理することにより、最適な値を決めることができる。
【００５４】
次に、以上のように構成される本実施形態の対話処理装置１０の動作について説明する。図９は、本実施形態の対話処理装置１０の動作例を説明する図であり、ユーザ５０が「今日の１５時に東京商事に行きました」という入力を行った場合の対話処理装置１０の動作例を示している。
【００５５】
対話制御部１１は、ユーザ５０の入力を受け取り、「今日の１５時に東京商事を訪問しました」という入力テキストを複数の項目別処理部１２の各々に送る（１）。複数の項目別処理部１２のうち、項目名が「訪問日時」の項目に対応する項目別処理部１２Ａは、対話制御部１１から受け取った「今日の１５時に東京商事を訪問しました」という入力テキストから「今日の１５時」を抽出して「２０１７／０６／２６  １５：００」に変換する。スコアとしては、入力テキストが項目名２２Ａの「訪問」を含むとともに、「訪問しました」といった過去の日時を示しており、動作パラメータ２３Ａとして与えられた過去の日時という条件に合致するため、算出ルールに基づきベーススコア０．７に０．２が加算された０．９という高い値が算出される。このように、「今日の１５時に東京商事を訪問しました。」から抽出された「今日の１５時」のスコアは０．９となり、この「今日の１５時」を変換した候補「２０１７／０６／２６  １５：００」とともに、スコア０．９を対話制御部１１に送る（２Ａ）。なお、ここではスコアの値域が０〜１．０であり、第１閾値は０．９、第２閾値は０．７であるものとする。
【００５６】
また、複数の項目別処理部１２のうち、項目名が「訪問先」の項目に対応する項目別処理部１２Ｂは、対話制御部１１から受け取った「今日の１５時に東京商事に行きました」という入力テキストから「訪問」、「東京商事」を抽出し、スコアを算出する。「訪問」は項目名２２Ｂと一致するためスコアが０．８、「東京商事」は動作パラメータ２３Ｂとして与えられた選択肢に含まれるため、スコアとして０．９という高い値が算出される。この場合、項目別処理部１２は「東京商事」を候補としてスコア：０．９とともに対話制御部１１に送る（２Ｂ）。
【００５７】
また、複数の項目別処理部１２のうち、項目名が「次回予定日」の項目に対応する項目別処理部１２Ｃは、対話制御部１１から受け取った「今日の１５時に東京商事を訪問しました」という入力テキストから「今日の１５時」を抽出して「２０１７／０６／２６  １５：００」に変換し、これを候補としてスコア：０．４５とともに対話制御部１１に送る（２Ｃ）。「今日の１５時」は動作パラメータ２３Ｃとして与えられた将来の日時という条件に合致しないため、スコアは０．４５という比較的低い値となっている。
【００５８】
また、複数の項目別処理部１２のうち、項目名が「特記事項」の項目に対応する項目別処理部１２Ｄは、対話制御部１１から受け取った「今日の１５時に東京商事を訪問しました」という入力テキストをそのまま候補として抽出し、スコア：０．１２とともに対話制御部１１に送る（２Ｄ）。この候補は「特記事項」という項目名の後に続く文字列ではないため、スコアは０．１２という低い値となっている。
【００５９】
複数の項目別処理部１２の各々から候補とスコアを受け取った対話制御部１１は、スコアが第１閾値以上の候補を、その候補を送った項目別処理部１２に対応する項目の情報として確定し、スロットテーブル１６の対応する項目のスロット１７に入力する（３）。本例では、項目別処理部１２Ａから送られた「２０１７／０６／２６  １５：００」のスコアが０．９５であり、項目別処理部１２Ｂから送られた「東京商事」のスコアが０．９２である。このため対話制御部１１は、「２０１７／０６／２６  １５：００」を「訪問日時」の情報、「東京商事」を「訪問先」の情報として確定し、スロットテーブル１６の「訪問日時」に対応するスロット１７Ａに「２０１７／０６／２６  １５：００」を入力し、「訪問先」に対応するスロット１７Ｂに「東京商事」を入力する。
【００６０】
なお、スコアが第１閾値未満で、且つ、第２閾値以上の候補を受け取った場合、対話制御部１１は、その候補が正しいか否かを問い合わせる応答をユーザ５０に対して出力するが、本例では、このような候補を受け取っていないため、候補が正しいか否かを問い合わせる応答は行わない。
【００６１】
次に、対話制御部１１は、スロットテーブル１６の全てのスロット１７が埋まったか否かを確認し、情報が未入力のスロット１７があれば、そのスロット１７に入力する情報を問い合わせる応答をユーザ５０に対して出力する（４）。本例では、「次回予定日」に対応するスロット１７Ｃと「特記事項」に対応するスロット１７Ｄが未入力であるため、項目番号が小さいスロット１７Ｃに入力する「次回予定日」の情報を問い合わせる「次回予定日は何ですか？」といった応答を、ユーザ５０に対して出力する。
【００６２】
本実施形態の対話処理装置１０は、スロットテーブル１６の全てのスロット１７が埋まるまで以上の動作を繰り返し、ユーザ５０との対話を通じて各項目の情報を獲得してスロットテーブル１６の各スロット１７に入力していく。そして、全てのスロット１７が埋まると、対話制御部１１が、スロットテーブル１６に基づいて「商談記録」などの目的に応じた動作を実行する。
【００６３】
図１０は、対話制御部１１による処理手順の一例を示すフローチャートであり、ユーザ５０からの入力を受け取るたびに対話制御部１１が実行する処理の流れを示している。
【００６４】
対話制御部１１は、ユーザ５０からの入力を受け取ると、まず、その入力に応じた入力テキストを複数の項目別処理部１２の各々に送る（ステップＳ１０１）。そして、対話制御部１１は、各項目別処理部１２から候補とスコアを受け取る（ステップＳ１０２）。
【００６５】
次に、対話制御部１１は、各項目別処理部１２から受け取った候補の中に、スコアが第１閾値以上の候補があるか否かを判定する（ステップＳ１０３）。そして、スコアが第１閾値以上の候補があれば（ステップＳ１０３：Ｙｅｓ）、その候補をスロットテーブル１６の対応するスロット１７に入力する（ステップＳ１０４）。一方、スコアが第１閾値以上の候補がなければ（ステップＳ１０３：Ｎｏ）、ステップＳ１０４の処理は行わずに次のステップＳ１０５に進む。
【００６６】
次に、対話制御部１１は、各項目別処理部１２から受け取った候補の中に、スコアが第１閾値未満で、且つ、第２閾値以上の候補があるか否かを判定する（ステップＳ１０５）。そして、スコアが第１閾値未満で、且つ、第２閾値以上の候補があれば（ステップＳ１０５：Ｙｅｓ）、対話制御部１１は、その候補が正しいか否かを問い合わせる応答をユーザ５０に対して出力し（ステップＳ１０６）、一連の処理を終了する。
【００６７】
一方、スコアが第１閾値未満で、且つ、第２閾値以上の候補がなければ（ステップＳ１０５：Ｎｏ）、対話制御部１１は、スロットテーブル１６の全てのスロット１７が埋まったか否かを判定する（ステップＳ１０７）。そして、情報が入力されていないスロットがあれば（ステップＳ１０７：Ｎｏ）、対話制御部１１は、その未確定のスロット１７に入力する情報を問い合わせる応答をユーザ５０に対して出力し（ステップＳ１０８）、一連の処理を終了する。一方、スロットテーブル１６の全てのスロット１７が埋まったら（ステップＳ１０７：Ｙｅｓ）、対話制御部１１は、スロットテーブル１６の各スロット１７に入力された情報を用いて目的に応じた所定の動作を実行し（ステップＳ１０９）、一連の処理を終了する。
【００６８】
図１１は、項目別処理部１２による処理手順の一例を示すフローチャートであり、対話制御部１１から入力テキストが送られるたびに項目別処理部１２が実行する処理の流れを示している。
【００６９】
項目別処理部１２は、対話制御部１１から送られた入力テキストを受け取ると（ステップＳ２０１）、その入力テキストから候補の抽出とスコア算出を行う（ステップＳ２０２）。次に、項目別処理部１２は、ステップＳ２０２で抽出した候補と、その候補に対して算出したスコアとともに対話制御部１１に送って（ステップＳ２０３）、一連の処理を終了する。なお、項目別処理部１２は、入力テキストを所定単位の文字列などの部分テキストに分割して処理してもよい。その場合、分割の方法としては、例えば入力テキストを意味解析して意味のまとまりを単位として入力テキストを区切るといった方法を用いることができる。また、分割の方法は獲得すべき情報の型に応じて異なっていてもよく、上述の対話知識２１に分割のルールを含めた構成としてもよい。スコアの算出は分割した各部分テキスト対して行い、算出したスコアが最も高い部分テキストを候補とし、その候補をスコアとともに対話制御部１１に送るようにするとよい。
【００７０】
以上、具体的な例を挙げながら詳細に説明したように、本実施形態の対話処理装置１０は、情報の型ごとに事前に用意された汎用処理部をカスタマイズすることで構築された複数の項目別処理部１２と、これら複数の項目別処理部１２を取りまとめる対話制御部１１との組み合わせにより、達成すべき目的に応じた対話処理を実現するようにしている。したがって、従来の対話シナリオに基づいて対話処理を行う対話処理装置のように、達成すべき目的に応じた大量の対話シナリオを作り込むといった煩雑な作業を行うことなく適切な対話処理が可能となり、簡便な構成で所定の目的を達成するための対話処理を実現できる。
【００７１】
また、本実施形態の対話処理装置１０は、対話制御部１１が入力テキストを複数の項目別処理部１２の全てに送り、項目ごとの情報を獲得するための処理は複数の項目別処理部１２の各々が独立して行う構成としているので、ユーザ５０の１回の入力から複数の項目の情報を同時に獲得することができる。つまり、従来技術ではユーザ５０の１回の入力から１つの項目の情報しか獲得できなかったが、本実施形態ではユーザ５０の１回の入力から複数の項目の情報を獲得することができ、効率のよい対話を実現することができる。
【００７２】
（第１変形例）
なお、以上の説明では、項目別処理部１２から送られた候補のスコアが第１閾値未満で、且つ、第２閾値以上の場合に、その候補が正しいか否かをユーザ５０に問い合わせるための応答テキストを対話制御部１１が作成するものとしたが、その候補を送った項目別処理部１２が応答テキストを作成してもよい。この場合、項目別処理部１２は、入力テキストから抽出した候補のスコアが第１閾値未満で、且つ、第２閾値以上の場合、その候補とスコアを対話制御部１１に送る代わりに、その候補が正しいか否かを問い合わせる応答テキストを対話制御部１１に送る。対話制御部１１は、いずれかの項目別処理部１２から応答テキストを受け取った場合、その応答テキスト、あるいは、音声合成処理によりその応答テキストから変換された合成音をユーザ５０に対して出力する。
【００７３】
（第２変形例）
また、以上の説明では、スコアが第１閾値未満で、且つ、第２閾値以上の候補のみを対象として、その候補が正しいか否かをユーザ５０に問い合わせるものとしたが、問い合わせの頻度をユーザ５０が指定できるようにしてもよい。例えば、対話処理装置１０の動作モードとして、「標準モード」と「確実モード」を設け、ユーザ５０により「標準モード」が選択された場合は、上述の例と同様にスコアが第１閾値未満で、且つ、第２閾値以上の候補のみを対象として、その候補が正しいか否かをユーザ５０に問い合わせるようにし、ユーザ５０により「確実モード」が選択された場合は、スコアが第２閾値以上の全ての候補を対象として、その候補が正しいか否かをユーザ５０に問い合わせるようにしてもよい。また、対話処理装置１０の動作モードとしてさらに「簡易モード」を追加し、ユーザ５０により「簡易モード」が選択された場合は、ユーザ５０に対する問い合わせを行わずに、スコアが第１閾値未満で、且つ、第２閾値以上の候補を対応する項目の情報として確定するようにしてもよい。また、ユーザ５０により「確実モード」が選択された場合は第１閾値の値を下げ、ユーザ５０により「簡易モード」が選択された場合は第２閾値の値を上げるといったように、ユーザ５０により選択された動作モードに応じてスコアに対する閾値を変化させる構成としてもよい。また、最後に入力された内容がこれでよいかを確認するモードや、選択したモードに関係なく、最終的に確定する内容に対して確認する仕組みを設けてもよい。
【００７４】
（第３変形例）
また、本実施形態の対話処理装置１０は、スロットテーブル１６の各スロット１７に入力する情報を獲得するための複数の項目別処理部１２だけでなく、ユーザ５０との対話を円滑に進めるための対話処理部を備えた構成としてもよい。例えば、ユーザ５０との対話処理の開始時に挨拶の応答を行う対話処理部を備えていてもよい。このような対話処理部は、項目別処理部１２と同様の仕組みで構築することもできる。すなわち、例えば一問一答型の汎用処理部に対して、様々な挨拶のパターンを示す動作パラメータを与えることで、ユーザ５０との対話処理の開始時に挨拶の応答を行う対話処理部を構築することができる。
【００７５】
＜第２実施形態＞
次に、第２実施形態について説明する。本実施形態は、達成すべき目的が互いに異なる複数の対話処理装置１０を組み合わせて、多目的型の対話処理システムを構築した例である。
【００７６】
図１２は、第２実施形態に係る対話処理システム１００の概要を示すブロック図である。対話処理システム１００は、図１２に示すように、複数の対話処理装置１０Ａ，１０Ｂ，１０Ｃ（以下、これらを特に区別しない場合は「対話処理装置１０」と表記する）と、選択部４０とを備える。複数の対話処理装置１０は、それぞれ上述の第１実施形態の対話処理装置１０と同様の構成であるが、達成すべき目的（目的に応じて実行する所定の動作）が互いに異なっている。本実施形態では、対話処理装置１０Ａは「商談記録」を目的として構築され、対話処理装置１０Ｂは「新規顧客登録」を目的として構築され、対話処理装置１０Ｃは「受注記録」を目的として構築されたものとする。
【００７７】
選択部４０は、ユーザ５０の入力に応じた入力テキストに基づいて、ユーザ５０が目的とする所定の動作を判断し、複数の対話処理装置１０の中からユーザ５０との対話を行う対話処理装置１０を選択する。例えば、ユーザ５０の入力に応じた入力テキストに「商談記録」に特有の文字列が含まれている場合、選択部４０は、ユーザ５０の目的が「商談記録」であると判断し、ユーザ５０との対話を行う対話処理装置１０として、「商談記録」に対応する対話処理装置１０Ａを選択する。また、ユーザ５０の入力に応じた入力テキストに「新規顧客登録」に特有の文字列が含まれている場合、選択部４０は、ユーザ５０の目的が「新規顧客登録」であると判断し、ユーザ５０との対話を行う対話処理装置１０として、「新規顧客登録」に対応する対話処理装置１０Ｂを選択する。また、ユーザ５０の入力に応じた入力テキストに「受注記録」に特有の文字列が含まれている場合、選択部４０は、ユーザ５０の目的が「受注記録」であると判断し、ユーザ５０との対話を行う対話処理装置１０として、「受注記録」に対応する対話処理装置１０Ｃを選択する。
【００７８】
また、選択部４０は、入力テキストに基づいてユーザ５０が目的とする所定の動作を判断できない場合（例えば、入力テキストに対話処理装置１０の目的を表す文字列が含まれていない場合）は、全ての対話処理装置１０の対話制御部１１を介して各項目別処理部１２に入力テキストを送り、各項目別処理部１２においてスコアが算出されるようにする。各対話処理装置１０の対話制御部１１は、項目別処理部１２から送られたスコアから最も高いスコアを選択して選択部４０に送る。そして、選択部４０は、各対話処理装置１０の対話制御部１１から送られたスコアに基づき、入力テキストを処理する対話処理装置１０を選択するようにするとよい。例えば、入力テキストが「１５時にｘｘを訪問しました」である場合、この入力テキストには「商談」、「新規顧客」、「受注」などの文字列は含まれないため、この入力テキストを処理すべき対話処理装置１０を判断できない。そのため、各対話処理装置１０に対して入力テキストを送って各項目別処理部１２でのスコアの算出結果に基づき、例えば「商談記録」を目的とする対話処理装置１０から「訪問先：ｘｘ」のスコア０．８５が送られ、他の対話処理装置１０からそれ以上のスコアが送られてこなければ、ユーザ５０が目的とする所定の動作は「商談記録」であると推定し、入力テキストを処理する対話処理装置１０として「商談記録」を目的とする対話処理装置１０を選択する。また、この場合、選択部４０からユーザ５０に対して、「商談記録の入力でよろしいですか？」「訪問日時がｘｘｘ、訪問先がｘｘでよろしいですか？」といった問い合わせの処理を行うようにしてもよい。
【００７９】
以上のように、本実施形態の対話処理システム１００は、達成すべき目的が互いに異なる複数の対話処理装置１０を組み合わせて構築され、各対話処理装置１０は上述の第１実施形態と同様の構成であるため、第１実施形態の対話処理装置１０と同様に、大量の対話シナリオを作り込むといった煩雑な作業を行うことなく、簡便な構成で多目的の対話処理を適切に実現することができる。
【００８０】
＜その他の変形例＞
なお、上述の各実施形態および変形例では、複数の項目別処理部１２と対話制御部１１との組み合わせにより対話処理装置１０が構成され、複数の対話処理装置１０と選択部４０との組み合わせにより対話処理システム１００が構成されるものとして説明したが、対話処理装置１０や対話処理システム１００の構成としては様々なバリエーションが考えられる。例えば、上述の項目別処理部１２、対話処理装置１０、対話処理システム１００をそれぞれ部品（以下では、項目別処理部１２を「小エージェント」、対話処理装置１０を「中エージェント」、対話処理システム１００を「大エージェント」とする）として捉え、これら小エージェント、中エージェント、大エージェントの様々な組み合わせにより、階層数も含め様々な構成とすることができる。
【００８１】
また、上述の各実施形態および変形例では、簡単な対話シナリオを例に説明したが、小エージェント、中エージェント、大エージェントの組み合わせにより、膨大な量のシナリオ作成や様々な対話のバリエーションにも対応可能である。例えば、上述の各実施形態および変形例では、中エージェントは複数の小エージェントから構成されるものとして説明しているが、目的を達成するための対話の単位に応じて、中エージェントを複数の小エージェントから構成する場合のみならず、大エージェント、中エージェント、小エージェントそれぞれ単一のエージェントの組み合わせとして実現してもよいし、ユーザ５０からの入力を小エージェントのみで処理する構成としてもよい。また、複数の小エージェントを、小エージェント群αとこの小エージェント群αのうちのいずれかにつながる小エージェント群βといったように階層で構成するなど、エージェントを自由に組み合わせて対話目的を達成する構成とすることができる。また、上述の大エージェント、中エージェント、小エージェントの組み合わせのみならず、各エージェントと他の仕組みで生成された既存の対話シナリオとのインタフェースを設けることで、各エージェントと既存の対話シナリオとを組み合わせることも可能である。
【００８２】
以下に、様々な構成のバリエーションの簡単な具体例を示す。例えば、対話目的があいさつの場合は、ユーザ５０からの入力テキスト（こんにちは）に対してエージェントは同じく「こんにちは」を返答することで対話目的が達成されるため、ユーザ５０からの入力情報を処理するエージェントして小エージェント（第１階層のみ）で構成することができる。続いて、宿泊予約が対話目的の場合を考える。この場合は、例えば「宿泊プランを聞き出す」という目的の中エージェントを設定することで実現できるが、図９に示すような中エージェント、複数の小エージェントの構成のみで細かな宿泊プラン（例えば値段や条件（禁煙、風呂付など）など）を聞き出すことができない場合もある。このような場合は、例えば図１３に示すように、階層構造の小エージェント（項目別処理部１２）群α，βを利用することで対応するこができる。小エージェント群αの中の１つがプランを選択させるための小エージェントとし、当該小エージェントから「値段と条件（禁煙、風呂付）のご希望は？」といった応答をすることで、再度、中エージェントを介してユーザ５０から選択プランに対する回答が得られ、小エージェント群βの中の小エージェントで選択されたプランを確定情報として処理することで実現できる。このように対話目的に応じて、様々なエージェントの組み合わせにより様々な目的に応じた対話処理を実現することが可能となる。
【００８３】
＜補足説明＞
上述の第１実施形態に係る対話処理装置１０や第２実施形態に係る対話処理システム１００は、例えば、一般的なコンピュータを構成するハードウェアと、コンピュータで実行されるプログラム（ソフトウェア）との協働により実現することができる。例えば、コンピュータが所定のプログラムを実行することによって、上述の対話制御部１１、項目別処理部１２Ａ〜１２Ｄ、更新部１４、パラメータ調整部１５などの対話処理装置１０を構成する機能的な構成要素や、対話処理装置１０Ａ〜１０Ｃおよび選択部４０などの対話処理システム１００を構成する機能的な構成要素を実現することができる。また、コンピュータが備える大容量記憶装置を用いて、上述の対話履歴蓄積部１３などを実現することができる。
【００８４】
図１４は、上述の第１実施形態に係る対話処理装置１０や第２実施形態に係る対話処理システム１００のハードウェア構成例を示すブロック図である。対話処理装置１０や対話処理システム１００は、例えば図１４に示すように、ＣＰＵ１０１などのハードウェアプロセッサ（プロセッサ回路）と、ＲＡＭ１０２やＲＯＭ１０３などの記憶装置と、ＳＳＤ１０４などの大容量記憶装置と、ネットワークを介して外部と通信を行う通信Ｉ／Ｆ１０５と、周辺機器を接続するための機器Ｉ／Ｆ１０６と、を備えた一般的なコンピュータとしてのハードウェア構成を用いて実現できる。
【００８５】
このとき、上記のプログラムは、例えば、磁気ディスク、光ディスク、半導体メモリ、またはこれに類する記録媒体に記録されて提供される。プログラムを記録する記録媒体は、コンピュータシステムが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。また、上記プログラムを、コンピュータに予めインストールするように構成してもよいし、ネットワークを介して配布される上記のプログラムをコンピュータに適宜インストールするように構成してもよい。
【００８６】
上記のコンピュータで実行されるプログラムは、上述の対話制御部１１、項目別処理部１２Ａ〜１２Ｄ、更新部１４、パラメータ調整部１５などの各部、あるいは、対話処理装置１０Ａ〜１０Ｃおよび選択部４０などの各部を含むモジュール構成となっており、プロセッサがこのプログラムを適宜読み出して実行することにより、上述した各部がＲＡＭ１０２などの主記憶上に生成されるようになっている。
【００８７】
なお、上述の第１実施形態に係る対話処理装置１０や第２実施形態に係る対話処理システム１００は、上述した機能的な各部の一部または全部を、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field-Programmable  Gate  Array）などの専用のハードウェアにより実現する構成であってもよい。
【００８８】
また、上述の第１実施形態に係る対話処理装置１０や第２実施形態に係る対話処理システム１００は、複数台のコンピュータを通信可能に接続したネットワークシステムとして構成し、上述した各部を複数台のコンピュータに分散して実現する構成であってもよい。また、上述の第１実施形態に係る対話処理装置１０や第２実施形態に係る対話処理システム１００は、クラウドシステム上で動作する仮想マシンであってもよい。
【００８９】
以上、本発明の実施形態を説明したが、この実施形態は例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９０】
１０（１０Ａ，１０Ｂ，１０Ｃ）  対話処理装置
１１  対話制御部
１２（１２Ａ，１２Ｂ，１２Ｃ，１２Ｄ）  項目別処理部
１３  対話履歴蓄積部
１４  更新部
１５  パラメータ調整部
２０Ａ  日時型汎用処理部
２０Ｂ  選択肢型汎用処理部
２０Ｄ  自由記述型汎用処理部
２１（２１Ａ，２１Ｂ，２１Ｄ）  対話知識
２２Ａ，２２Ｂ，２２Ｃ，２２Ｄ  項目名
２３Ａ，２３Ｂ，２３Ｃ，２３Ｄ  動作パラメータ
４０  選択部
１００  対話処理システム
【図１】
2019061620.tif 000003
【図２】
2019061620.tif 000004
【図３】
2019061620.tif 000005
【図４】
2019061620.tif 000006
【図５】
2019061620.tif 000007
【図６】
2019061620.tif 000008
【図７】
2019061620.tif 000009
【図８】
2019061620.tif 000010
【図９】
2019061620.tif 000011
【図１０】
2019061620.tif 000012
【図１１】
2019061620.tif 000013
【図１２】
2019061620.tif 000014
【図１３】
2019061620.tif 000015
【図１４】
2019061620.tif 000016