(57)【要約】【課題】より容易に構築可能な、対話システム、対話方法、プログラム、及び記憶媒体を提供する。【解決手段】実施形態に係る対話システムは、処理部を含む。前記処理部は、ユーザにより１つ以上の単語を含む第１文章が入力されると、前記１つ以上の単語の少なくとも一部を第１クエリキーワードに設定する。前記処理部は、質問と、前記質問に対する回答と、を含む質問回答ペアを複数含む質問回答集から、前記第１クエリキーワードを含む１つ以上の前記質問回答ペアを選定する。前記処理部は、選定された前記質問回答ペアの数が１のときは、前記選定された質問回答ペアに含まれる前記回答を示す第１応答を出力し、前記数が第１閾値以上のときは、前記選定された質問回答ペアの１つに含まれる複数の質問キーワードから抽出された第１質問キーワードと、前記選定された質問回答ペアの別の１つに含まれる別の複数の質問キーワードから抽出された第２質問キーワードと、を含む第２応答を出力する。【選択図】図１
2020123131.tif 000002
【特許請求の範囲】
【請求項１】
ユーザにより１つ以上の単語を含む第１文章が入力されると、前記１つ以上の単語の少なくとも一部を第１クエリキーワードに設定し、
質問と、前記質問に対する回答と、を含む質問回答ペアを複数含む質問回答集から、前記第１クエリキーワードを含む１つ以上の前記質問回答ペアを選定し、
選定された前記質問回答ペアの数が１のときは、前記選定された質問回答ペアに含まれる前記回答を示す第１応答を出力し、前記数が第１閾値以上のときは、前記選定された質問回答ペアの１つに含まれる複数の質問キーワードから抽出された第１質問キーワードと、前記選定された質問回答ペアの別の１つに含まれる別の複数の質問キーワードから抽出された第２質問キーワードと、を含む第２応答を出力する、
処理部を備えた対話システム。
【請求項２】
前記処理部は、前記第２応答を出力した後、前記第１質問キーワード及び前記第２質問キーワードの一方を含む第２文章を受け付けると、前記第１質問キーワード及び前記第２質問キーワードの前記一方を含む前記質問回答ペアに含まれる前記回答を示す応答を出力する請求項１記載の対話システム。
【請求項３】
前記第１閾値は、３以上であり、
前記処理部は、前記数が２以上前記第１閾値未満のときには、前記選定された質問回答ペアにそれぞれ含まれる複数の前記質問を含む第３応答を出力する請求項１又は２に記載の対話システム。
【請求項４】
前記処理部は、前記質問回答ペアの選定において、
前記第１クエリキーワードと、前記質問回答集の複数の前記質問に含まれる複数の質問キーワードと、の間のそれぞれの類似度に基づき、前記第１クエリキーワードに類似する第１類似キーワードを前記複数の質問キーワードから抽出し、
前記質問回答集から、前記第１クエリキーワード及び前記第１類似キーワードの少なくともいずれかを含む１つ以上の前記質問回答ペアを選定する、
請求項１〜３のいずれか１つに記載の対話システム。
【請求項５】
前記処理部は、前記第１クエリキーワードの設定において、
前記第１文章を前記１つ以上の単語に分割し、
前記１つ以上の単語のそれぞれの品詞を推定し、
前記１つ以上の単語に含まれる動詞、名詞、及び未知語の１つを、前記第１クエリキーワードに設定する、
請求項１〜４のいずれか１つに記載の対話システム。
【請求項６】
ユーザにより複数の単語を含む第１文章が入力されると、前記複数の単語の一部を第１クエリキーワードに設定し、前記複数の単語の別の一部を第２クエリキーワードに設定し、
質問と、前記質問に対する回答と、を含む質問回答ペアを複数含む質問回答集を記憶し、複数の前記質問に含まれる複数の質問キーワードにはスコアがそれぞれ設定された第１記憶部を参照し、
前記第１クエリキーワードに対応する前記複数の質問キーワードの１つを含む１つ以上の前記質問回答ペアに、前記複数の質問キーワードの前記１つに設定されたスコアを付与し、前記第２クエリキーワードに対応する前記複数の質問キーワードの別の１つを含む１つ以上の前記質問回答ペアに、前記複数の質問キーワードの別の１つに設定されたスコアを付与し、
付与されたスコアが第２閾値を超える１つ以上の前記質問回答ペアを選定し、
選定された前記質問回答ペアの数が１のときは、前記選定された質問回答ペアに含まれる前記回答を示す第１応答を出力し、前記数が第１閾値以上のときは、前記選定された質問回答ペアの１つに含まれる複数の質問キーワードから抽出された第１質問キーワードと、前記選定された質問回答ペアの別の１つに含まれる複数の別の質問キーワードから抽出された第２質問キーワードと、を含む第２応答を出力する、
処理部を備えた対話システム。
【請求項７】
ユーザにより１つ以上の単語を含む第１文章が入力されると、前記１つ以上の単語の少なくとも一部を第１クエリキーワードに設定し、
質問と、前記質問に対する回答と、を含む質問回答ペアを複数含む質問回答集から、前記第１クエリキーワードを含む１つ以上の前記質問回答ペアを選定し、
選定された前記質問回答ペアの数が１のときは、前記選定された質問回答ペアに含まれる前記回答を示す第１応答を出力し、前記数が第１閾値以上のときは、前記選定された質問回答ペアの１つに含まれる複数の質問キーワードから抽出された第１質問キーワードと、前記選定された質問回答ペアの別の１つに含まれる別の複数の質問キーワードから抽出された第２質問キーワードと、を含む第２応答を出力する、対話方法。
【請求項８】
処理部に、
ユーザにより１つ以上の単語を含む第１文章が入力されると、前記１つ以上の単語の少なくとも一部を第１クエリキーワードに設定させ、
質問と、前記質問に対する回答と、を含む質問回答ペアを複数含む質問回答集から、前記第１クエリキーワードを含む１つ以上の前記質問回答ペアを選定させ、
選定された前記質問回答ペアの数が１のときは、前記選定された質問回答ペアに含まれる前記回答を示す第１応答を出力させ、前記数が第１閾値以上のときは、前記選定された質問回答ペアの１つに含まれる複数の質問キーワードから抽出された第１質問キーワードと、前記選定された質問回答ペアの別の１つに含まれる別の複数の質問キーワードから抽出された第２質問キーワードと、を含む第２応答を出力させる、
プログラム。
【請求項９】
請求項８記載のプログラムを記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、対話システム、対話方法、プログラム、及び記憶媒体に関する。
【背景技術】
【０００２】
ユーザとの対話を通じて、ユーザからの問い合わせに対して回答を出力する対話システムがある。この対話システムを、より容易に構築できる技術の開発が望まれている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２４８１６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の実施形態は、より容易に構築可能な、対話システム、対話方法、プログラム、及び記憶媒体を提供する。
【課題を解決するための手段】
【０００５】
実施形態に係る対話システムは、処理部を含む。前記処理部は、ユーザにより１つ以上の単語を含む第１文章が入力されると、前記１つ以上の単語の少なくとも一部を第１クエリキーワードに設定する。前記処理部は、質問と、前記質問に対する回答と、を含む質問回答ペアを複数含む質問回答集から、前記第１クエリキーワードを含む１つ以上の前記質問回答ペアを選定する。前記処理部は、選定された前記質問回答ペアの数が１のときは、前記選定された質問回答ペアに含まれる前記回答を示す第１応答を出力し、前記数が第１閾値以上のときは、前記選定された質問回答ペアの１つに含まれる複数の質問キーワードから抽出された第１質問キーワードと、前記選定された質問回答ペアの別の１つに含まれる別の複数の質問キーワードから抽出された第２質問キーワードと、を含む第２応答を出力する。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態に係る対話システムを例示する模式図である。
【図２】質問回答集を例示する表である。
【図３】シナリオテンプレートを例示する表である。
【図４】タスク用シナリオを例示する表である。
【図５】実施形態に係る対話システムの処理を例示するフローチャートである。
【図６】第１実施形態の変形例に係る対話システムを例示する模式図である。
【図７】第１実施形態の変形例に係る対話システムの処理を例示するフローチャートである。
【図８】第１実施形態の変形例に係る対話システムの処理を例示するフローチャートである。
【図９】第２実施形態に係る対話システムを例示する模式図である。
【図１０】第２実施形態に係る対話システムの処理を例示するフローチャートである。
【図１１】第２実施形態に係る対話システムの動作を示す模式図である。
【図１２】第２実施形態の変形例に係る対話システムを例示する模式図である。
【図１３】第２実施形態に係る対話システムの動作を説明する模式図である。
【図１４】実施形態に係る対話装置の構成を例示する模式図である。
【発明を実施するための形態】
【０００７】
以下に、本発明の各実施形態について図面を参照しつつ説明する。
本願明細書と各図において、既に説明したものと同様の要素には同一の符号を付して詳細な説明は適宜省略する。
【０００８】
（第１実施形態）
図１は、第１実施形態に係る対話システムを例示する模式図である。
図１に示すように、第１実施形態に係る対話システム１は、処理部１０を含む。図１に示す例では、対話システム１は、第１記憶部２１及び第２記憶部２２をさらに含む。
【０００９】
処理部１０は、ユーザから入力された文章を受け付ける。処理部１０は、入力された文章に対して応答を出力する。ユーザは、処理部１０からの応答に基づき、次の文章を処理部１０へ入力する。処理部１０は、次の文章に対する応答を、それまでのユーザとの対話に基づいて出力する。これにより、ユーザと対話システム１との間で対話が実現される。
【００１０】
第１記憶部２１は、質問回答集を記憶する。質問回答集は、複数の質問回答ペアを含む。それぞれの質問回答ペアは、質問と、その質問に対する回答と、を含む。第２記憶部２２は、処理部１０から出力される応答を生成するための汎用的なシナリオを記憶する。処理部１０は、第１記憶部２１及び第２記憶部２２を参照しながら、入力された文章に対する応答を生成する。
【００１１】
例えば、ユーザから入力される文章は、問い合わせを含む。ここでは、ユーザから処理部１０へ入力される文章を、「クエリ文章」という。処理部１０は、クエリ文章を受け付けると、第１記憶部２１の質問回答集を参照する。処理部１０は、クエリ文章と関連する質問が質問回答集にあるか調べる。処理部１０は、関連する質問を見つけると、その質問に対する回答を示す応答を、ユーザに向けて出力する。
【００１２】
処理部１０は、関連する質問が複数あるときは、それらの質問を１つに絞り込むための応答（問い返し）を出力する。ユーザは、その応答に対して、質問を絞り込むための情報（キーワード）を含む別のクエリ文章を入力する。例えば、質問が１つに絞り込まれるまで、ユーザによるクエリ文章の入力と処理部１０からの応答と、が交互に繰り返される。ユーザは、対話システムの応答に答えることで、ユーザの求める情報を含む１つの回答にたどり着くことができる。対話システム１を用いることで、ユーザが適切な検索方法を知っていなくても、ユーザは、１つの回答を得られる。
【００１３】
対話システムからユーザへ、クエリ文章に基づいた応答を出力するためには、シナリオが必要である。シナリオを自動的に生成するために、概念辞書を用いる方法がある。概念辞書は、例えば、属性、属性値、及び言い換え表現を含む。概念辞書を用いた対話システムでは、処理部は、クエリ文章が入力されると、概念辞書と回答候補の数とに基づいて、シナリオを自動的に生成する。シナリオの自動生成により、人（例えばシステム管理者）によるシナリオの作成が不要となる。
一方で、概念辞書を用いるためには、システム管理者は、質問回答集に含まれる全ての質問のそれぞれに、１つ以上の属性と、各属性の属性値と、を付与する必要がある。概念辞書を用いる場合、シナリオの作成に要する時間を削減できるが、概念辞書の作成に時間を要する。また、何を属性とし、何を属性値とするかは、システム管理者に依存する。ユーザの問い合わせにおいて、属性値が言及されたか判断する方法を決める必要もある。従って、システム管理者に専門知識が求められ、システム管理者への負担が大きい。
このため、ユーザと対話できる対話システムを、より容易に構築できる技術の開発が望まれている。
【００１４】
実施形態に係る対話システム１では、処理部１０は、ユーザにより１つ以上の単語を含むクエリ文章が入力されると、その１つ以上の単語の少なくとも一部をキーワード（クエリキーワード）に設定する。処理部１０は、質問回答集から、クエリキーワードを含む質問回答ペアを選定する。クエリキーワードを選定に用いることで、質問回答集への属性及び属性値の付与のような事前準備が不用となる。
【００１５】
さらに、処理部１０は、選定された質問回答ペアの数が１のときは、その１つの質問回答ペアの回答を示す第１応答を出力する。例えば、第１応答は、選定された質問回答ペアに含まれる質問及び回答を含む。第１応答は、回答が記載されたウェブページのＵＲＬを含んでいても良い。ユーザは、第１応答を参照することで、問い合わせに対する回答を確認できる。
処理部１０は、選定された質問回答ペアの数が２以上のときは、第２応答を出力する。第２応答は、選定された質問回答ペアの１つに含まれる複数のキーワード（質問キーワード）から抽出された質問キーワードと、選定された質問回答ペアの別の１つに含まれる別の複数の質問キーワードから抽出された別の質問キーワードと、を含む。第２応答に含まれるこれらの質問キーワードは、クエリキーワードとは異なる。ユーザは、第２応答を参照することで、質問回答ペアを絞り込むために、どのようなキーワードを次のクエリ文章に含めれば良いか知ることができる。
また、上述した選定された質問回答ペアの数に応じたシナリオは、汎用的な辞書を用いて自動的に生成できる。このため、システム管理者のシナリオ作成に要する負担を軽減できる。
【００１６】
例えば、ユーザは、第２応答に含まれるいずれかの質問キーワードを含む別のクエリ文章を処理部１０へ入力する。処理部１０は、その別のクエリ文章に含まれる１つ以上の単語の少なくとも一部を、別のクエリキーワードに設定する。処理部１０は、その別のクエリキーワードを用いて、選定された２つ以上の質問回答ペアから、その一部をさらに選定する。この結果、選定された質問回答ペアの数が１のときは、処理部１０は、第１応答を出力する。選定された質問回答ペアの数が２以上のときは、処理部１０は、第２応答を再び出力する。
【００１７】
実施形態によれば、例えば、質問回答集についてのユーザとの対話を、概念辞書を用いずに実現できる。また、実施形態によれば、２つ以上の質問回答ペアが選定されたときは、質問キーワードを含む応答を表示する。これにより、ユーザは、どのようなキーワードを含むクエリ文章を対話システム１へ入力すれば良いか知ることができる。この結果、ユーザが、求める回答によりたどり着き易くなる。対話システム１の利便性を向上させることができる。
【００１８】
処理部１０は、電気回路（処理回路）を含む中央演算処理装置を含む。第１記憶部２１及び第２記憶部２２は、記憶装置をそれぞれ含む。記憶装置は、例えば、ハードディスクドライブ（ＨＤＤ）、ネットワークアタッチストレージ（ＮＡＳ）、組み込み用マルチメディアカード（ｅＭＭＣ）、ソリッドステートドライブ（ＳＳＤ）、及びソリッドステートハイブリッドドライブ（ＳＳＨＤ）の少なくともいずれかを含む。１つの記憶装置が、第１記憶部２１及び第２記憶部２２の両方として機能しても良い。処理部１０、第１記憶部２１、及び第２記憶部２２は、１つのコンピュータに含まれても良いし、有線、無線、又はネットワークを介して相互に接続されても良い。
【００１９】
実施形態に係る対話システム１について、具体的に説明する。
図２は、質問回答集を例示する表である。
図３は、シナリオテンプレートを例示する表である。
図４は、タスク用シナリオを例示する表である。
【００２０】
第１記憶部２１は、例えば図２に示す質問回答集１１０を記憶する。質問回答集１１０は、複数の質問回答ペア１１０ａ〜１１０Ｋを含む。質問回答ペア１１０ａ〜１１０Ｋは、質問回答ペアを識別するＩＤ１１１ａ〜１１１Ｋ、質問１１２ａ〜１１２Ｋ、及び質問対する回答１１３ａ〜１１３Ｋをそれぞれ含む。
【００２１】
質問回答ペア１１０ａ〜１１０Ｋには、質問キーワード１１４ａ〜１１４Ｋがそれぞれ紐付けられる。質問キーワード１１４ａ〜１１４Ｋは、例えば、質問回答集１１０に含まれる。又は、質問キーワード１１４ａ〜１１４Ｋは、質問回答集１１０とは別に、第１記憶部２１又はその他の記憶部に記憶されても良い。
【００２２】
質問キーワード１１４ａ〜１１４Ｋは、質問１１２ａ〜１１２Ｋからそれぞれ抽出される。１つの質問から複数の質問キーワードが抽出されても良い。例えば、対話システム１の外部の処理装置により、質問１１２ａ〜１１２Ｋから、質問キーワード１１４ａ〜１１４Ｋが抽出される。又は、質問キーワード１１４ａ〜１１４Ｋは、質問１１２ａ〜１１２Ｋに対してシステム管理者により付与されても良い。
【００２３】
質問回答集は、複数の質問回答ペア及び複数の質問キーワード以外の情報を含んでいても良い。例えば、質問回答集は、対応する回答が設定されていない質問を含んでも良い。質問回答集は、１つの質問と１つの回答がペアとなっていない、１つ以上の質問と１つ以上の回答との組み合わせを含んでも良い。例えば、質問回答集は、２つの質問と、２つの質問に対する共通の回答として設定された１つの回答と、の組み合わせを含む。これらの場合、処理部１０は、例えば、複数の質問回答ペアのみに基づいてユーザとの対話を実行する。処理部１０は、複数の質問回答ペア以外の情報は、ユーザとの対話に用いない。
質問回答集において、１つの回答が、複数の条件と、各条件に対する詳細な回答と、を含んでいても良い。この場合、複数の条件と複数の詳細な回答とをまとめて１つの回答と見なすことができる。
【００２４】
第２記憶部２２は、例えば図３に示す汎用モデル１２０を記憶する。汎用モデル１２０は、複数のシナリオテンプレート１２１ａ〜１２１ｃを含む。シナリオテンプレート１２１ａ〜１２１ｃは、タスク用シナリオのベースとして用いられる。タスク用シナリオは、具体的な情報を含み、処理部１０から出力される応答として用いられる。シナリオテンプレート１２１ａ〜１２１ｃには、回答候補数１２２ａ〜１２２ｃがそれぞれ設定される。回答候補数に応じて、使用されるシナリオテンプレートが決定される。
【００２５】
シナリオテンプレート１２１ａ〜１２１ｃは、ユーザの問い合わせに依存しないように、汎用的に記述される。具体的には、シナリオテンプレート１２１ａ〜１２１ｃのそれぞれは、＜ブランク＞を含む。＜ブランク＞には、後述するように、タスク用シナリオ生成の際に、質問、回答、又は質問キーワードが当てはめられる。
【００２６】
汎用モデル１２０は、シナリオテンプレート１２１ｄのように、ブランクを含まない定型シナリオを含んでいても良い。定型シナリオは、挨拶、お礼、謝罪などに対応する。
【００２７】
処理部１０は、例えば、受付部１１、設定部１２、選定部１３、及び生成部１４を含む。
受付部１１は、ユーザから入力されたクエリ文章を受け付ける。クエリ文章は、例えば、ユーザのキーボードやタッチパネルなどの操作により入力される。又は、クエリ文章は、ユーザの発話に基づいて生成されても良い。例えば、マイクが、ユーザの発話を録音し、音声を認識する。クエリ文章は、音声認識により生成される。
【００２８】
設定部１２は、クエリ文章に基づいてクエリキーワードを設定する。例えば、設定部１２は、１つ以上の単語を含むクエリ文章全体を、１つのクエリキーワードとする。選定部１３は、質問回答集から、クエリキーワードを含む１つ以上の質問回答ペアを選定する。生成部１４は、選定された質問回答ペアの数に応じて、タスク用シナリオを生成する。生成部１４は、生成したタスク用シナリオを、モニタ、スピーカ、プリンタなどの外部の装置へ出力する。これらの装置は、タスク用シナリオを、ユーザが認識できるように出力する。
【００２９】
具体的な一例として、図３に示す汎用モデル１２０におけるＮｓを３とする。Ｎｓは、複数の質問回答ペアが選定されたときに、選定された質問回答ペアの数に応じて、対話システム１からの応答を切り替えるために設定される。例えば、ユーザは、「残高確認」と対話システム１へ入力する。受付部１１は、そのクエリ文章を受け付ける。設定部１２は、そのクエリ文章をクエリキーワードとする。すなわち、「残高確認」が、クエリキーワードとなる。選定部１３は、第１記憶部２１の質問回答集を参照し、そのクエリキーワードを含む質問回答ペアを選定する。選定された質問回答ペアに含まれる回答は、ユーザからの問い合わせに対する回答の候補である。
【００３０】
生成部１４は、選定された質問回答ペアの数をカウントする。選定された質問回答ペアの数は、回答候補の数に対応する。図２に示す質問回答集の質問１１２ａ、１１２ｂ、１１２ｃ、及び１１２Ｋのうち、質問１１２ａのみが「残高確認」の質問キーワードを含む。従って、選定された質問回答ペアの数は、１である。生成部１４は、汎用モデル１２０において、回答候補数が１に対応するシナリオテンプレート１２１ａを参照する。生成部１４は、＜ブランク１＞に、質問１１２ａの「預金口座の残高を確認したい」を代入する。生成部１４は、＜ブランク２＞に、回答１１３ａの「残高確認をするには・・・」を代入する。これにより、図４に示すように、「ご質問は『預金口座の残高確認をしたい』ですね。『残高確認をするには・・・』」のタスク用シナリオ１３１が生成される。
【００３１】
別の一例として、ユーザは、「申し込み」と対話システム１へ入力する。設定部１２は、「申し込み」をクエリキーワードとする。図２に示す質問回答集において、質問１１２ｂと質問１１２Ｋの２つの質問が、「申し込み」を含む。選定された質問回答ペアの数は、２である。生成部１４は、汎用モデル１２０において、回答候補数が２に対応するシナリオテンプレート１２１ｂを参照する。生成部１４は、＜ブランク３ａ＞に、質問１１２ｂの「預金口座を申し込みたい」を代入する。生成部１４は、＜ブランク３ｂ＞に、質問１１２Ｋの「ローンを申し込みたい」を代入する。これにより、「ご質問は『預金口座を申し込みたい』ですか？『ローンを申し込みたい』ですか？」のタスク用シナリオ１３２が生成される。
【００３２】
さらに別の一例として、ユーザは、「預金口座」と対話システム１へ入力する。図２に示す質問回答集において、質問１１２ａ、１１２ｂ、及び１１２ｃの３つの質問が、「預金口座」を含む。選定された質問回答ペアの数は、３である。生成部１４は、汎用モデル１２０において、回答候補数が３に対応するシナリオテンプレート１２１ｃを参照する。また、生成部１４は、質問１１２ａ〜１１２ｃにそれぞれ対応する質問キーワード１１４ａ〜１１４ｃから、クエリキーワードと異なる質問キーワードを抽出する。生成部１４は、＜ブランク４ａ＞に、質問１１２ａの質問キーワード「残高確認」を代入する。生成部１４は、＜ブランク４ｂ＞に、質問１１２ｂの質問キーワード「申し込み」を代入する。生成部１４は、＜ブランク４ｃ＞に、質問１１２ｃの質問キーワード「解約」を代入する。これにより、「追加のキーワードはありますか？『残高確認』について、『申し込み』について、『解約』について等。」のタスク用シナリオ１３３が生成される。
【００３３】
選定された質問回答ペアの数が０のとき、生成部１４は、汎用モデル１２０において、回答候補数が０に対応するシナリオテンプレート１２１ｄを参照する。シナリオテンプレート１２１ｄは、ブランクを含まない定型シナリオである。生成部１４は、シナリオテンプレート１２１ｄをそのままタスク用シナリオとする。
【００３４】
このように、処理部１０は、ユーザにより入力されたクエリ文章、質問回答集１１０、及び汎用モデル１２０に基づいて、タスク用シナリオを自動的に生成する。生成部１４は、生成したタスク用シナリオを、ユーザの問い合わせに対する応答として出力する。
【００３５】
図５は、実施形態に係る対話システムの処理を例示するフローチャートである。
受付部１１は、ユーザにより入力されたクエリ文章を受け付ける（ステップＳ１０１）。設定部１２は、クエリ文章の少なくとも一部をクエリキーワード（第１クエリキーワード）に設定する（ステップＳ１０２）。選定部１３は、第１クエリキーワードを含む質問回答ペアを選定する（ステップＳ１０３）。生成部１４は、選定された質問回答ペアの数Ｎをカウントする（ステップＳ１０４）。
【００３６】
生成部１４は、Ｎが０か判断する（ステップＳ１０５）。Ｎが０のとき、生成部１４は、定型応答を出力する（ステップＳ１０６）。定型応答は、定型シナリオに対応する。Ｎが０では無いとき、生成部１４は、Ｎが１か判断する（ステップＳ１０７）。Ｎが１のとき、生成部１４は、第１応答を生成する（ステップＳ１０８）。第１応答は、選定された質問回答ペアに含まれる回答を示す。第１応答は、例えば、図４に示すタスク用シナリオ１３１である。
【００３７】
Ｎが１では無いとき、生成部１４は、ＮがＮｓ以上か判断する（ステップＳ１０９）。ＮがＮｓ以上のとき、生成部１４は、選定された質問回答ペアの１つについて、第１クエリキーワードと異なる質問キーワード（第１質問キーワード）を選定する。生成部１４は、選定された質問回答ペアの別の１つについて、第１クエリキーワードと異なる別の質問キーワード（第２質問キーワード）を選定する。第１質問キーワード及び第２質問キーワードは、互いに異なる。生成部１４は、第１質問キーワード及び第２質問キーワードを含む第２応答を生成する（ステップＳ１１０）。第２応答は、例えば、図４に示すタスク用シナリオ１３３である。
【００３８】
ＮがＮｓ未満のとき、生成部１４は、Ｎ個の質問回答ペアにそれぞれ含まれるＮ個の質問を含んだ第３応答を生成する（ステップＳ１１１）。例えば、生成部１４は、Ｎ個の質問回答ペアの１つに含まれる第１質問と、Ｎ個の質問回答ペアの別の１つに含まれる第２質問と、を含む第３応答を生成する。第３応答は、例えば、図４に示すタスク用シナリオ１３２である。第１応答〜第３応答のいずれかを生成した後、生成部１４は、生成された応答を出力する（ステップＳ１１２）。
【００３９】
応答を出力した後、処理部１０は、対話が終了したか判断する（ステップＳ１１３）。例えば、処理部１０は、応答を出力した後に経過した時間を測定する。ユーザにより別のクエリ文章が入力されないまま経過時間が閾値を超えると、処理部１０は、対話が終了したと判断する。ユーザから対話システム１へ、対話が終了したことを示す文章が入力されても良い。処理部１０は、その文章を受け付けると、対話が終了したと判断する。これらの終了の条件が満たされる前に、受付部１１が次のクエリ文章を受け付けると、処理部１０は、上述した処理を再度実行する。
【００４０】
生成部１４がモニタへ応答を出力する場合、生成部１４は、モニタに表示されたグラフィカルユーザインターフェース（ＧＵＩ）上で、質問、キーワードなどを選択できるように出力しても良い。例えば、生成部１４が第２応答を生成したとき、ＧＵＩ上で、第１質問キーワード及び第２質問キーワードが選択できるように出力される。ユーザがＧＵＩ上で第１質問キーワード又は第２質問キーワードをクリックすると、クリックしたキーワードが、次のクエリ文章として処理部１０へ入力される。例えば、生成部１４が第３応答を生成したとき、ＧＵＩ上で、第１質問及び第２質問が選択できるように出力される。ユーザがＧＵＩ上で第１質問又は第２質問をクリックすると、クリックした質問が、次のクエリ文章として処理部１０へ入力される。
【００４１】
図２〜図５に示す例によれば、複数の質問回答ペアが選定されたときには、選定された質問回答ペアの数に応じて、第２応答又は第３応答が生成される。第２応答は、クエリキーワードと異なる複数の質問キーワードを含む。このため、ユーザは、次のクエリ文章に、どのようなキーワードを含めれば良いか知ることができる。第３応答は、選定された質問回答ペアに含まれる複数の質問を含む。このため、ユーザは、選定された質問回答ペアに含まれる質問を直接的に確認できる。これらの応答により、ユーザが、求める回答によりたどり着き易くなる。
【００４２】
（変形例）
図６は、第１実施形態の変形例に係る対話システムを例示する模式図である。
変形例に係る対話システム１ａでは、ユーザによる問い合わせの前に、事前にタスク用モデルが生成される。タスク用モデルは、質問回答集に含まれる質問キーワード、各質問キーワードを含む質問回答ペアの数、及び複数のタスク用シナリオを含む。
【００４３】
タスク用モデルは、処理部３０によって生成される。例えば、対話システム１ａが、処理部３０を含む。処理部３０は、生成したタスク用モデルを、第３記憶部２３に記憶する。処理部３０は、電気回路を含む中央演算処理装置を含む。１つの装置が、処理部１０及び処理部３０の両方として機能しても良い。第３記憶部２３は、記憶装置を含む。記憶装置は、例えば、ＨＤＤ、ＮＡＳ、ｅＭＭＣ、ＳＳＤ、及びＳＳＨＤの少なくともいずれかを含む。１つの記憶装置が、第１記憶部２１〜第３記憶部２３として機能しても良い。
【００４４】
対話システム１ａにおいて、処理部３０は、取出部３１、抽出部３２、及び生成部３３を含む。処理部１０は、受付部１１、設定部１２、及び選定部１３を含む。
【００４５】
図７は、第１実施形態の変形例に係る対話システムの処理を例示するフローチャートである。
図７のフローチャートは、タスク用モデルを作成する際の処理を例示する。
【００４６】
取出部３１は、第１記憶部２１の質問回答集を参照し、複数の質問回答ペアから１つの質問回答ペアを取り出す（ステップＳ１２１）。抽出部３２は、その１つの質問応答ペアに対して登録された質問キーワードを抽出する（ステップＳ１２２）。生成部３３は、抽出した質問キーワードがタスク用モデルに登録されているか判断する（ステップＳ１２３）。
【００４７】
登録されていないときは、生成部３３は、第２記憶部２２の汎用モデルを参照する。生成部３３は、回答候補数が１に対応するシナリオテンプレートを検索する。生成部３３は、そのシナリオテンプレートの複数のブランクに、選択した質問回答ペアの質問及び回答をそれぞれ代入し、タスク用シナリオを生成する（ステップＳ１２４）。生成部３３は、抽出した質問キーワードと、その質問キーワードを含む質問回答ペアの数と、生成したタスク用シナリオと、を対応付け、第３記憶部２３のタスク用モデルに追加する（ステップＳ１２５）。
【００４８】
ステップＳ１２３において、抽出した質問キーワードがタスク用モデルに登録されているときは、生成部３３は、タスク用モデルを更新する（ステップＳ１２６）。具体的には、生成部３３は、タスク用モデルにおいて、抽出した質問キーワードを含む質問回答ペアの数に、１を加える。生成部３３は、１を加えた後の質問回答ペアの数と、閾値Ｎｓを比較する。
【００４９】
質問回答ペアの数がＮｓ未満のときは、生成部３３は、回答候補数が２以上Ｎｓ未満に対応するシナリオテンプレートを検索する。生成部３３は、そのシナリオテンプレートの複数のブランクに、抽出した質問キーワードを含む複数の質問回答ペアの複数の質問をそれぞれ代入し、タスク用シナリオを生成する。
【００５０】
質問回答ペアの数がＮｓ以上のときは、生成部３３は、抽出した質問キーワードを含む質問回答ペアに含まれる各質問から、別の質問キーワードを抽出する。生成部３３は、回答候補数がＮｓ以上に対応するシナリオテンプレートを検索する。生成部３３は、そのシナリオテンプレートの複数のブランクに、抽出された複数の別の質問キーワードをそれぞれ代入し、タスク用シナリオを生成する。生成部３３は、生成したタスク用シナリオと、更新した質問回答ペアの数と、をタスク用モデルに登録する。
【００５１】
ステップＳ１２５又はＳ１２６の後、処理部３０は、質問回答集から全ての質問回答ペアが取り出されたか判断する（ステップＳ１２７）。取り出されていない質問回答ペアがあるときは、処理部３０は、ステップＳ１２１を再度実行する。ステップＳ１２１において、取出部３１は、複数の質問回答ペアの別の１つを取り出す。以降は、複数の質問回答ペアの別の１つから、別の質問キーワードが抽出される。ステップＳ１２１〜Ｓ１２６の処理は、質問回答集に含まれる全ての質問回答ペアが取り出されるまで繰り返される。
【００５２】
図８は、第１実施形態の変形例に係る対話システムの処理を例示するフローチャートである。
図８のフローチャートは、クエリ文章に対して応答する際の処理を例示する。
【００５３】
受付部１１は、ユーザにより入力されたクエリ文章を受け付ける（ステップＳ１４１）。設定部１２は、クエリ文章をクエリキーワードとして設定する（ステップＳ１４２）。選定部１３は、クエリキーワードに基づき、応答を選定する（ステップＳ１４３）。具体的には、選定部１３は、第３記憶部２３にアクセスする。選定部１３は、タスク用モデルがクエリキーワードを含むか判断する。
【００５４】
タスク用モデルにクエリキーワードが含まれるときは、選定部１３は、タスク用モデルから、クエリキーワードに対応付けられたタスク用シナリオを選定する。タスク用モデルにクエリキーワードが含まれないときは、選定部１３は、第２記憶部２２の汎用モデルにおいて、回答候補数が０に対応するシナリオテンプレート（定型シナリオ）を、タスク用シナリオとして選定する。回答候補数が０に対応するシナリオテンプレートは、タスク用シナリオとして事前にタスク用モデルに登録されていても良い。選定部１３は、選定した応答を出力する（ステップＳ１４４）。処理部１０は、対話が終了したか判断する（ステップＳ１４５）。
【００５５】
変形例に係る対話システム１ａによれば、処理部１０がクエリ文章を受け付ける前に、複数のタスク用シナリオを含むタスク用モデルが生成される。このため、処理部１０は、クエリ文章を受け付けた後、そのクエリ文章に基づいてタスク用シナリオを生成する必要が無い。例えば、クエリ文章を受け付けた後の処理部１０の処理負荷を低減できる。
【００５６】
（第２実施形態）
図９は、第２実施形態に係る対話システムを例示する模式図である。
第２実施形態に係る対話システム２において、処理部１０は、応答を生成する際に、第１記憶部２１及び第２記憶部２２に加えて、第４記憶部２４を参照する。対話システム２が、第４記憶部２４を含んでも良い。第４記憶部２４は、文章からキーワードを抽出するためのモデル又は規則を記憶する。
【００５７】
対話システム２は、処理部４０をさらに含む。処理部４０は、例えば、取出部４１及び抽出部４２を含む。取出部４１は、第１記憶部２１にアクセスし、質問回答集から１つの質問回答ペアを取り出す。抽出部４２は、第４記憶部２４に記憶されたモデル又は規則に従って、質問回答ペアから質問キーワードを抽出する。抽出部４２は、抽出した質問キーワードを、例えば第１記憶部２１に記憶する。処理部４０は、電気回路を含む中央演算処理装置を含む。１つの装置が、処理部１０及び処理部４０の両方として機能しても良い。第４記憶部２４は、記憶装置を含む。記憶装置は、例えば、ＨＤＤ、ＮＡＳ、ｅＭＭＣ、ＳＳＤ、及びＳＳＨＤの少なくともいずれかを含む。１つの記憶装置が、第１記憶部２１、第２記憶部２２、及び第４記憶部２４として機能しても良い。
【００５８】
受付部１１が１つ以上の単語を含むクエリ文章を受け付けると、設定部１２は、第４記憶部２４に記憶されたモデル又は規則に従って、１つ以上の単語の一部を抽出する。設定部１２は、抽出した単語を、クエリキーワードとして設定する。すなわち、設定部１２は、クエリ文章からクエリキーワードを抽出する。複数のクエリキーワードが、クエリ文章から抽出されても良い。
【００５９】
例えば、キーワードの抽出は、文章を構成する各単語の品詞に基づく。この場合、第４記憶部２４は、形態素解析モデル又は形態素解析規則を記憶する。設定部１２は、文章を形態素解析することで、文章を複数の単語に分割し、各単語の品詞を推定する。設定部１２は、特定の品詞の単語を、キーワードとする。特定の品詞としては、例えば、名詞及び動詞が用いられる。名詞の１つである複合名詞については、設定部１２は、複合名詞中の各名詞をキーワードとして登録しても良いし、複合名詞全体で１つのキーワードとして登録しても良いし、これらを組み合わせて登録しても良い。設定部１２は、さらに、いずれの品詞にも分類できない単語（未知語）をキーワードとして抽出しても良い。
【００６０】
図１０は、第２実施形態に係る対話システムの処理を例示するフローチャートである。
図１０は、処理部４０が質問回答集から質問キーワードを抽出する際の処理を示す。図１０に示す処理は、例えば、ユーザによりクエリ文章が入力された際に実行される。
【００６１】
取出部４１は、質問回答集から、複数の質問回答ペアの１つを取り出す（ステップＳ２０１）。抽出部４２は、取り出した質問回答ペアの質問から、質問キーワードを抽出する（ステップＳ２０２）。抽出部４２は、抽出した質問キーワードを第１記憶部２１に登録する（ステップ２０３）。取出部４１は、質問回答集に含まれる全ての質問回答ペアを取り出したか判断する（ステップＳ２０４）。取り出されていない質問回答ペアがあるときは、取出部４１は、ステップＳ２０１を再度実行する。ステップＳ２０１において、取出部４１は、質問回答集から、複数の質問回答ペアの別の１つを取り出す。以降は、複数の質問回答ペアの別の１つから、別の質問キーワードが抽出される。ステップＳ２０１〜Ｓ２０３の処理は、質問回答集に含まれる全ての質問回答ペアから質問キーワードが抽出されるまで繰り返される。
【００６２】
処理部１０は、質問回答集から抽出された質問キーワードを用いて、図５に示すフローチャートと同様の処理を実行する。例えば、ステップＳ１０２において、設定部１２は、ユーザにより入力されたクエリ文章の一部を抽出し、１つ以上のクエリキーワードとして設定する。ステップＳ１０３において、選定部１３は、抽出された１つ以上のクエリキーワードの少なくとも１つを含む質問回答ペアを選定する。
【００６３】
第２実施形態によれば、クエリ文章の一部が抽出されて、クエリキーワードとして設定される。この方法によれば、クエリ文章全体が１つのクエリキーワードとして設定される場合に比べて、ユーザの問い合わせに対応する質問を含む質問回答ペアがより選定され易くなる。これにより、ユーザが、求める回答によりたどり着きやすくなる。対話システム２の利便性を向上させることができる。
【００６４】
また、第２実施形態によれば、ユーザによるクエリ文章入力の際に、質問回答集から質問キーワードが抽出される。このため、質問回答集が頻繁に更新される場合でも、最新の質問回答集に含まれる質問キーワードに基づいて、質問回答ペアが選定される。例えば、最新の質問回答集に含まれる質問キーワードを用いて応答を出力できる。これにより、ユーザが、求める回答によりたどり着きやすくなる。
【００６５】
ステップＳ１０３において、選定部１３は、クエリキーワードと同一の質問キーワードを含む質問回答ペアに加えて、クエリキーワードと類似する質問キーワードを含む質問回答ペアを選定しても良い。選定部１３は、１つ以上のクエリキーワードのそれぞれと、質問回答集から抽出された複数の質問キーワードのそれぞれと、の間の類似度を計算する。１つのクエリキーワードと１つの質問キーワードとの間の類似度が予め設定された閾値以上のとき、その１つのクエリキーワードは、その１つの質問キーワードの言い換え表現と判断される。選定部１３は、クエリキーワードに類似する質問キーワードを含む質問回答ペアを、実質的にクエリキーワードを含むと判断し、その質問回答ペアを選定する。
【００６６】
例えば、ある質問キーワードの読みは、あるクエリキーワードの読みと同じである。一例として、その質問キーワードの少なくとも一部は、ひらがな及びカタカナの一方で記載され、そのクエリキーワードの少なくとも一部は、ひらがな及びカタカナの他方で記載されている。この場合、その質問キーワードは、そのクエリキーワードの言い換え表現である。別の一例として、質問キーワード及びクエリキーワードは、同じ漢字を含むが、異なる送り仮名を含む。この場合も、その質問キーワードは、そのクエリキーワードの言い換え表現である。
質問キーワード及びクエリキーワードは、同じ漢字を含み、品詞の違いにより送り仮名が違うときも、その質問キーワードは、そのクエリキーワードの言い換え表現と判断される。例えば、質問キーワードは「振り込み」であり、クエリキーワードが「振り込む」であるとき、質問キーワードは、そのクエリキーワードの言い換え表現と判断される。
【００６７】
類似度の決定には、例えば編集距離が用いられる。選定部１３は、キーワード同士の間の編集距離を、類似度とする。
事前に作成した言い換え表現辞書を用いて、類似度が決定されても良い。言い換え表現辞書は、複数のキーワードの組を含む。各組は、複数のキーワードを含む。各組に含まれる複数のキーワードは、互いに類似する言い換え表現である。例えば、選定部１３は、１つの組に含まれるキーワード同士の間の類似度を１とし、その他のキーワード同士の間の類似度を０とする。
事前に学習した分散表現モデルを用いて、類似度が決定されても良い。分散表現モデルは、単語の分散表現が記述されている。選定部１３は、各キーワードのベクトル同士の間のコサイン類似度又は距離に基づき、類似度を決定する。
【００６８】
クエリキーワードに類似する質問キーワードを含む質問回答ペアを選定することで、ユーザの問い合わせに対応する質問を含む質問回答ペアがより選定され易くなる。これにより、ユーザが、求める回答によりたどり着きやすくなる。
【００６９】
図１１は、第２実施形態に係る対話システムの動作を示す模式図である。
図１１は、ユーザＵＳと対話システム２による対話を示す。例えば、対話システム２は、ユーザＵＳを検知すると、文章ＴＸ１「ご質問をどうぞ」を出力する。ユーザＵＳは、文章ＴＸ２「預金口座について」を対話システム２へ入力する。対話システム２は、文章ＴＸ２（クエリ文章）を複数の単語に分解し、各単語の品詞を推定する。対話システム２は、品詞に基づき、文章ＴＸ２から、「預金口座」をクエリキーワードとして抽出する。対話システム２は、質問キーワードとして「預金口座」が登録された質問回答ペアを、質問回答集から選定する。
【００７０】
一例として、対話システム２は、「預金口座」及び「申し込み」の質問キーワードを含む質問回答ペアと、「預金口座」及び「解約」の質問キーワードを含む質問回答ペアと、「預金口座」及び「残高確認」の質問キーワードを含む質問回答ペアと、の３つの質問回答ペアを選定する。対話システム２は、この選定結果に基づき、文章ＴＸ３「追加のキーワードはありますか？申し込みについて、ご解約について、残高確認について等」を出力する。文章ＴＸ３は、第２応答に対応する。
【００７１】
文章ＴＸ３において、質問キーワードに対応する単語は、他の単語と区別可能に出力されても良い。例えば、対話システム２から出力された応答がモニタに表示される場合、質問キーワードに対応する単語は、他の単語に比べて、太く、下線が付され、又は色づけされて表示される。質問キーワードに対応する単語が、クリック可能に表示されても良い。ユーザＵＳが質問キーワードに対応する単語をクリックすると、その質問キーワードを含む次の文章が自動で対話システム２へ入力されても良い。対話システム２から出力された応答が音声として出力される場合、質問キーワードに対応する単語は、他の単語に比べて、ボリュームが大きく、又はゆっくり読み上げられる。
【００７２】
ユーザＵＳは、文章ＴＸ３に基づき、文章ＴＸ４「申込」を対話システム２へ入力する。対話システム２は、文章ＴＸ４に基づき、「申込」をクエリキーワードに設定する。対話システム２は、文章ＴＸ４に基づくクエリキーワードを用いて、先に選定された質問回答ペアの一部をさらに選定する。例えば、文章ＴＸ４に基づくクエリキーワード「申込」は、質問キーワード「申し込み」と類似する。対話システム２は、上記の３つの質問回答ペアから、「預金口座」及び「申し込み」の質問キーワードを含む質問回答ペアを選定する。質問回答ペアの数が１つに絞り込まれたため、対話システム２は、その質問回答ペアに含まれる回答を示す文章ＴＸ５「ご質問は『預金口座を申し込みたい』ですね。『口座のお申込みは…』」を出力する。文章ＴＸ５は、第１応答に対応する。
【００７３】
抽出部４２は、質問回答集から質問キーワードを抽出する際に、各質問キーワードの重要性を表すスコアを決定しても良い。選定部１３は、スコアに基づいて質問回答ペアを選定する。
【００７４】
質問キーワードのスコアは、その質問キーワードを含む質問回答ペアの数が少ないほど、高く設定される。スコアの高いキーワードは、質問回答集にあまり含まれておらず、質問回答ペアの選定に有用である。設定部１２は、各質問キーワードのスコアを、質問回答集における出現頻度、質問回答集における逆文書頻度、又はｂｍ２５などの手法により決定する。例えば、設定部１２は、質問回答集に含まれる質問回答ペアの総数に対する、その質問キーワードを含む質問回答ペアの数の割合を算出する。設定部１２は、その割合の逆数（逆文書頻度）を、スコアとする。又は、設定部１２は、その割合に基づいて設定された数値を、スコアとしても良い。例えば、設定部１２は、割合の逆数を対数関数により変換し、得られた数値をスコアとしても良い。
【００７５】
具体的な一例として、質問回答集が、図２に示すように、４つの質問回答ペア１１０ａ、１１０ｂ、１１０ｃ、及び１１０Ｋから構成されているとする。この質問回答集において、「預金口座」を含む質問回答ペアは、３つである。「預金口座」のスコアは、３／４の逆数である４／３に設定される。同様に、「残高確認」のスコアは、１／４の逆数である４／１に設定される。「申し込み」のスコアは、２／４の逆数である４／２に設定される。
【００７６】
選定部１３は、クエリキーワードを含む質問回答ペアを選定すると、選定された各質問回答ペアについて、クエリキーワードに対応する質問キーワードのスコアを参照する。クエリキーワードに対応する質問キーワードを含む質問回答ペアには、その質問キーワードに設定されたスコアを付与する。選定部１３は、質問回答ペアごとに、スコアの合計を算出する。選定部１３は、クエリキーワードを含む質問回答ペアから、スコアの合計が閾値（第２閾値）を超えた質問回答ペアを選定する。生成部１４は、スコアの合計が閾値を超えた質問回答ペアの数に応じて、応答を生成する。
【００７７】
例えば、設定部１２は、ユーザにより入力されたクエリ文章の一部を第１クエリキーワードに設定し、クエリ文章の別の一部を第２クエリキーワードに設定する。選定部１３は、第１クエリキーワードに対応する質問キーワードを含む１つ以上の質問回答ペアに、その質問キーワードに設定されたスコアを付与する。選定部１３は、第２クエリキーワードに対応する別の質問キーワードを含む１つ以上の質問回答ペアに、その別の質問キーワードに設定されたスコアを付与する。選定部１３は、付与されたスコアが閾値を超える１つ以上の質問回答ペアを選定する。
【００７８】
スコアに基づいて質問回答ペアを選定することで、質問回答ペアの数を絞り込むことができる。また、スコアに基づく選定により、ユーザの求める回答が選定から外れることを抑制できる。このため、ユーザが、求める回答によりたどり着き易くなる。
【００７９】
処理部１０は、クエリ文章が否定文か判断しても良い。例えば、設定部１２は、クエリキーワードを設定する際、クエリ文章が否定文か判断する。設定部１２によりクエリ文章が否定文と判断されると、選定部１３は、そのクエリキーワードを含まない質問回答ペアを選定する。
【００８０】
例えば、対話システム３が文章ＴＸ３を出力した後、ユーザは、「解約と残高確認ではない」とクエリ文章を入力する。設定部１２は、このクエリ文章から「解約」及び「残高確認」をクエリキーワードとして抽出する。さらに、設定部１２は、このクエリ文章を否定文と判断する。選定部１３は、この判断結果に基づき、先に選定された３つの質問回答ペアから、「解約」及び「残高確認」の質問キーワードを含まない質問回答ペアを選定する。この結果、対話システム２は、文章ＴＸ５を出力する。
【００８１】
クエリ文章が否定文か判断するために、設定部１２は、例えば、事前に作成された規則を参照する。一例として、規則は、「クエリ文章に『ではない』、『じゃない』、又は『以外』が含まれているとき、クエリ文章は否定文である」などのように記述される。設定部１２は、クエリ文章が規則に記述された条件を満たすか判断することで、クエリ文章が否定文か判断する。
設定部１２は、事前に作成されたモデルを参照しても良い。例えば、モデルは、人工ニューラルネットワークモデル又は再帰ニューラルネットワークモデルである。モデルは、事前に学習データを用いて学習される。学習データは、複数のペアデータを含む。各ペアデータは、文章と、その文章が否定形であることを示す情報と、を含む。モデルは、否定文が入力されたときに、否定文であることを示す情報を出力するように、学習される。
【００８２】
（変形例）
図１２は、第２実施形態の変形例に係る対話システムを例示する模式図である。
変形例に係る対話システム２ａでは、ユーザによる問い合わせの前に、事前にタスク用モデルが生成される。タスク用モデルは、処理部４０によって生成される。例えば、対話システム２ａが、処理部４０を含む。処理部４０は、生成したタスク用モデルを、第３記憶部２３に記憶する。
【００８３】
対話システム２ａにおいて、処理部４０は、取出部４１、抽出部４２、及び生成部４３を含む。処理部１０は、受付部１１、設定部１２、及び選定部１３を含む。
【００８４】
取出部４１は、第１記憶部２１にアクセスし、質問回答集から１つの質問回答ペアを取り出す。抽出部４２は、第４記憶部２４に記憶されたモデル又は規則に従って、質問回答ペアから質問キーワードを抽出する。抽出部４２は、抽出した質問キーワードを、例えば第１記憶部２１に記憶する。生成部４３は、抽出した質問キーワードに基づいてタスク用シナリオを生成し、タスク用モデルを更新する。生成部４３による処理は、図７に示すフローチャートのステップＳ１２３〜Ｓ１２６と同様である。
【００８５】
処理部１０は、タスク用モデルを用いて、ユーザにより入力されたクエリ文章に対する応答を出力する。対話システム２ａにおける処理部１０の処理は、図８に示すフローチャートと同様である。
【００８６】
変形例に係る対話システム２ａによれば、対話システム１ａと同様に、処理部１０がクエリ文章を受け付ける前に、複数のタスク用シナリオを含むタスク用モデルが生成される。このため、例えば、クエリ文章を受け付けた後の処理部１０の処理負荷を低減できる。
【００８７】
対話システム２ａにおいて、抽出部４２は、質問回答集から質問キーワードを抽出する際に、各質問キーワードの重要度を表すスコアを決定しても良い。選定部１３は、スコアに基づいて、タスク用モデルからタスク用シナリオを選定する。
【００８８】
一例として、設定部１２は、ユーザにより入力されたクエリ文章から、２つのクエリキーワード（第１クエリキーワード及び第２クエリキーワード）を抽出する。タスク用モデルは、第１クエリキーワードに対応する第１質問キーワードを含むタスク用シナリオと、第２クエリキーワードに対応する第２質問キーワードを含むタスク用シナリオと、を含む。タスク用モデルには、第１質問キーワード及び第２質問キーワードの両方を含むタスク用シナリオが含まれていない。
この例において、選定部１３は、１つのタスク用シナリオを選定する際、第１質問キーワードのスコアと、第２質問キーワードのスコアと、を比較する。選定部１３は、よりスコアの高い質問キーワードを含むタスク用シナリオを選定する。選定部１３は、選定したタスク用シナリオを応答として出力する。
【００８９】
図１３は、第２実施形態に係る対話システムの動作を説明する模式図である。
図１３の上段は、ユーザと対話システムの対話を例示している。図１３の中段は、質問回答集を例示している。図１３の下段は、タスク用モデルを例示している。
【００９０】
質問回答集は、例えば図１３に示す６つの質問回答ペアから構成される。各質問は、「インターネットバンキング」、「海外」、及び「送金」のいずれかの質問キーワードを含む。質問回答集には、「インターネットバンキング」、「海外」、及び「送金」の全てを含む質問は含まれていない。この場合、処理部４０は、「インターネットバンキング」の質問キーワードに対応するタスク用シナリオと、「海外」の質問キーワードに対応するタスク用シナリオと、「送金」の質問キーワードに対応するタスク用シナリオと、を生成する。
【００９１】
タスク用シナリオを生成するために質問回答集から質問キーワードを抽出した際、抽出部４２は、各質問キーワードのスコアを決定する。図１３の例では、「インターネットバンキング」を含む質問（回答候補）は、２つである。「海外」を含む質問は、３つである。「送金」を含む質問は、１つである。選定された質問回答ペアの数（６）に対する各クエリキーワードを含む質問の数を、スコアとする。「インターネットバンキング」のスコアは、６／２となる。「海外」のスコアは、６／３となる。「送金」のスコアは、６／１となる。
【００９２】
ユーザＵＳは、図１３に示すように、「インターネットバンキングで海外へ送金できますか？」と対話システム２ａへ入力する。設定部１２は、このクエリ文章から、「インターネットバンキング」、「海外」、及び「送金」をクエリキーワードとして抽出する。選定部１３は、「インターネットバンキング」、「海外」、及び「送金」のいずれかの質問キーワードに対応して生成されたタスク用シナリオを、タスク用モデルから抽出する。
【００９３】
選定部１３は、複数のタスク用シナリオの１つを応答として出力する。選定部１３は、複数のタスク用シナリオから１つのタスク用シナリオを選定するため、各タスク用シナリオに対応する質問キーワードのスコアを比較する。スコアの比較の結果、「送金」のスコアが最も高いと判断される。選定部１３は、「送金」に対応するタスク用シナリオを応答として出力する。
【００９４】
図１４は、実施形態に係る対話装置の構成を例示する模式図である。
上述した各実施形態に係る対話システムは、例えば、図１４に示した対話装置３により実現される。対話装置３は、一例として、一般のコンピュータ（情報処理装置）と同様のハードウェア構成により実現される。対話装置３は、ＣＰＵ（Central  Processing  Unit）９１と、入力部９２と、出力部９３と、ＲＯＭ（Read  Only  Memory）９４と、ＲＡＭ（Random  Access  Memory）９５と、記憶部９６と、通信装置９７と、バス９８とを含む。各部は、バス９８により接続される。
【００９５】
ＣＰＵ９１は、ＲＯＭ９４または記憶部９６に予め記憶された各種プログラムと協働して各種処理を実行し、対話装置３を構成する各部の動作を統括的に制御する。ＣＰＵ９１は、処理において、ＲＡＭ９５の所定領域を作業領域として用いる。ＣＰＵ９１は、ＲＯＭ９４または記憶部９６に予め記憶されたプログラムと協働して、入力部９２、出力部９３、及び通信装置９７等を実現させる。
【００９６】
入力部９２は、例えば、キーボード、マイクロフォン、及びタッチパネルの少なくともいずれかからを含む。入力部９２は、ユーザから入力された情報を指示信号として受け付け、その指示信号をＣＰＵ９１に出力する。出力部９３は、例えば、モニタ、スピーカ、及びプリンタの少なくともいずれかを含む。出力部９３は、ＣＰＵ９１から出力された信号に基づいて、各種情報を出力する。
【００９７】
ＲＯＭ９４は、対話装置３の制御に用いられるプログラムおよび各種設定情報等を書き換え不可能に記憶する。ＲＡＭ９５は、ＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）等の揮発性の記憶媒体である。ＲＡＭ９５は、ＣＰＵ９１の作業領域として機能する。具体的には、対話装置３が用いる各種変数およびパラメータ等を一時記憶するバッファ等として機能する。
【００９８】
記憶部９６は、フラッシュメモリ等の半導体による記憶媒体、磁気的または光学的に記録可能な記憶媒体等の書き換え可能な記録装置である。記憶部９６は、対話装置３の制御に用いられるプログラムおよび各種設定情報等を記憶する。記憶部９６は、第１記憶部２１〜第４記憶部２４として機能する。通信装置９７は、外部の機器と通信して情報の送受信を行うために用いられる。
【００９９】
以上で説明した各実施形態によれば、ユーザと対話できる対話システムを、より容易に構築できる。各実施形態によれば、ユーザが、求める回答によりたどり着き易い、対話システム、対話方法、プログラム、及び記憶媒体を提供できる。
【０１００】
上記の種々のデータの処理は、例えば、プログラム（ソフトウェア）に基づいて実行される。例えば、コンピュータが、このプログラムを記憶し、このプログラムを読み出すことにより、上記の種々の情報の処理が行われる。
【０１０１】
上記の種々の情報の処理は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フレキシブルディスク及びハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ±Ｒ、ＤＶＤ±ＲＷなど）、半導体メモリ、または、他の記録媒体に記録されても良い。
【０１０２】
例えば、記録媒体に記録された情報は、コンピュータ（または組み込みシステム）により読み出されることが可能である。記録媒体において、記録形式（記憶形式）は任意である。例えば、コンピュータは、記録媒体からプログラムを読み出し、このプログラムに基づいてプログラムに記述されている指示をＣＰＵで実行させる。コンピュータにおいて、プログラムの取得（または読み出し）は、ネットワークを通じて行われても良い。
【０１０３】
記録媒体からコンピュータ（または組み込みシステム）にインストールされたプログラムに基づいてコンピュータ上で稼働している種々のソフトウェアにおいて、上記の情報の処理の少なくとも一部が実施されても良い。このソフトウェアは、例えば、ＯＳ（オペレーティングシステム）などを含む。このソフトウェアは、例えば、ネットワーク上で動作するミドルウェアなどを含んでも良い。
【０１０４】
実施形態に係る記録媒体は、上記の種々の情報の処理をコンピュータに実行させることのできるプログラムを記憶している。実施形態に係る記録媒体には、プログラムをＬＡＮまたはインターネットなどによりダウンロードして記憶された記録媒体も含まれる。複数の記録媒体に基づいて、上記の処理が行われても良い。
【０１０５】
実施形態に係るコンピュータは、１つ又は複数の装置（例えばパーソナルコンピュータなど）を含む。実施形態に係るコンピュータは、ネットワークにより接続された複数の装置を含んでも良い。
【０１０６】
以上、具体例を参照しつつ、本発明の実施の形態について説明した。しかし、本発明の実施形態は、これらの具体例に限定されるものではない。例えば、対話システムに含まれる処理部、記憶部などの各要素の具体的な構成に関しては、当業者が公知の範囲から適宜選択することにより本発明を同様に実施し、同様の効果を得ることができる限り、本発明の範囲に包含される。
【０１０７】
また、各具体例のいずれか２つ以上の要素を技術的に可能な範囲で組み合わせたものも、本発明の要旨を包含する限り本発明の範囲に含まれる。
【０１０８】
その他、本発明の実施の形態として上述した対話システム、対話方法、プログラム、及び記憶媒体を基にして、当業者が適宜設計変更して実施し得る全ての対話システム、対話方法、プログラム、及び記憶媒体も、本発明の要旨を包含する限り、本発明の範囲に属する。
【０１０９】
その他、本発明の思想の範疇において、当業者であれば、各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の範囲に属するものと了解される。
【０１１０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１１】
１、１ａ、２、２ａ 対話システム、  ３ 対話装置、  １０ 処理部、  １１ 受付部、  １２ 設定部、  １３ 選定部、  １４ 生成部、  ２１ 第１記憶部、  ２２ 第２記憶部、  ２３ 第３記憶部、  ２４ 第４記憶部、  ３０ 処理部、  ３１ 取出部、  ３２ 抽出部、  ３３ 生成部、  ４０ 処理部、  ４１ 取出部、  ４２ 抽出部、  ４３ 生成部、  ９１ ＣＰＵ、  ９２ 入力部、  ９３ 出力部、  ９４ ＲＯＭ、  ９５ ＲＡＭ、  ９６ 記憶部、  ９７ 通信装置、  ９８ バス、  １１０ 質問回答集、  １１０ａ〜１１０Ｋ 質問回答ペア、  １１１ａ〜１１１Ｋ ＩＤ、  １１２ａ〜１１２Ｋ 質問、  １１３ａ〜１１３Ｋ 回答、  １１４ａ〜１１４Ｋ 質問キーワード、  １２０ 汎用モデル、  １２１ａ〜１２１ｄ シナリオテンプレート、  １２２ａ〜１２２ｄ 回答候補数、  １３１〜１３３ タスク用シナリオ、  Ｎｓ 閾値、  ＴＸ１〜ＴＸ６ 文章、  ＵＳ ユーザ
【図１】
2020123131.tif 000003
【図２】
2020123131.tif 000004
【図３】
2020123131.tif 000005
【図４】
2020123131.tif 000006
【図５】
2020123131.tif 000007
【図６】
2020123131.tif 000008
【図７】
2020123131.tif 000009
【図８】
2020123131.tif 000010
【図９】
2020123131.tif 000011
【図１０】
2020123131.tif 000012
【図１１】
2020123131.tif 000013
【図１２】
2020123131.tif 000014
【図１３】
2020123131.tif 000015
【図１４】
2020123131.tif 000016