(57)【要約】      （修正有）【課題】ユーザの質問に未知のキーワードが含まれている場合にも、ユーザとのやり取りが続くような応答を出力できる対話システムを提供する。【解決手段】対話システムにおいて対話装置１０１は、ユーザからの入力文を解析するテキスト解析部と、入力文から、質問応答知識を参照しても回答の候補を得ることができないキーワードである未知キーワードを検出する未知キーワード検出部と、未知キーワードが検出されたことに応答して、所定のキーワードから、未知キーワードと近い意味を持つ関連キーワードの候補を取得する関連キーワード推定部と、未知キーワードが検出された場合に、関連キーワードの候補に基づいて、入力文に対する応答を生成する応答生成部と、を備える。【選択図】図２
2020077159.tif 000002
【特許請求の範囲】
【請求項１】
ユーザからの入力文を解析するテキスト解析部と、
前記テキスト解析部による前記入力文の解析結果で質問応答知識を参照することにより、前記入力文に対する回答の候補を得る知識参照部と、
前記入力文から、前記質問応答知識を参照しても回答の候補を得ることができないキーワードである未知キーワードを検出する未知キーワード検出部と、
前記未知キーワードが検出されたことに応答して、所定のキーワードから、前記未知キーワードと近い意味を持つ関連キーワードの候補を取得する関連キーワード推定部と、
前記未知キーワードが検出されない場合に、前記回答の候補に基づいて、前記入力文に対する応答を生成し、前記未知キーワードが検出された場合に、前記関連キーワードの候補に基づいて、前記入力文に対する前記応答を生成する応答生成部と、
を備える対話システム。
【請求項２】
前記未知キーワード検出部は、単語又は単語列の周辺の言い回しに基づいて、前記単語又は単語列を前記未知キーワードとして検出するか否かを判定する、請求項１に記載の対話システム。
【請求項３】
前記未知キーワード検出部は、正解であることを示すラベルが付与された第１の単語又は単語列を含む第１の文章と、前記第１の単語又は単語列を第２の単語又は単語列に置き換えることで生成される第２の文章と、を含む学習データで学習されたモデルを用いて、前記入力文から前記未知キーワードを検出する、請求項２に記載の対話システム。
【請求項４】
前記関連キーワード推定部は、前記未知キーワードと前記所定のキーワードとの編集距離と、前記未知キーワードを分割することで得られる部分語と前記所定のキーワードを分割することで得られる部分語との一致度と、前記未知キーワードの周辺の言い回しと、前記回答の候補に含まれる情報と、の少なくとも１つに基づいて、前記所定のキーワードから、前記関連キーワードの候補を選択する、請求項１乃至３のいずれか一項に記載の対話システム。
【請求項５】
前記関連キーワード推定部は、前記未知キーワードと前記関連キーワードの候補との意味の近さを測定する、請求項１乃至４のいずれか一項に記載の対話システム。
【請求項６】
前記関連キーワード推定部は、前記未知キーワードと前記関連キーワードの候補との編集距離と、前記未知キーワードを分割することで得られる部分語と前記関連キーワードの候補を分割することで得られる部分語との一致度と、前記未知キーワードの周辺の言い回しと、前記回答の候補に含まれる情報と、の少なくとも１つに基づいて、前記未知キーワードと前記関連キーワードの候補との前記意味の近さを測定する、請求項５に記載の対話システム。
【請求項７】
前記応答生成部は、前記関連キーワードの候補の数と、前記未知キーワードと前記関連キーワードの候補との意味の近さと、の少なくとも１つに基づいて、前記入力文に対する前記応答を生成する、請求項１乃至６のいずれか一項に記載の対話システム。
【請求項８】
前記応答生成部は、前記未知キーワードと前記関連キーワードの候補との意味の近さと、前記関連キーワードの候補に付与されている属性が同じか否かと、の少なくとも１つに基づいて、前記関連キーワードの候補の中から、前記ユーザに提示する関連キーワードの候補を選択し、前記選択した関連キーワードの候補を用いて前記未知キーワードの意味を問い合わせる応答を生成する、請求項１乃至７のいずれか一項に記載の対話システム。
【請求項９】
前記応答生成部は、第１の属性が付与されている関連キーワードの候補を用いて前記未知キーワードの意味を問い合わせる応答を生成し、前記未知キーワードの意味を問い合わせる前記応答に対して、前記未知キーワードが前記第１の属性が付与されている前記関連キーワードの候補のどれにも該当しないという内容が前記ユーザから入力された場合に、前記第１の属性とは異なる第２の属性が付与されている関連キーワードの候補を用いて前記未知キーワードの意味を問い合わせる応答を生成する、請求項８に記載の対話システム。
【請求項１０】
ユーザからの入力文を解析するテキスト解析部と、
前記テキスト解析部による前記入力文の解析結果で質問応答知識を参照することにより、前記入力文に対する回答の候補を得る知識参照部と、
前記入力文から、前記質問応答知識を参照しても回答の候補を得ることができないキーワードである未知キーワードを検出する未知キーワード検出部と、
前記未知キーワードが検出されたことに応答して、所定のキーワードから、前記未知キーワードと近い意味を持つ関連キーワードの候補を取得する関連キーワード推定部と、
前記未知キーワードが検出されない場合に、前記回答の候補に基づいて、前記入力文に対する応答を生成し、前記未知キーワードが検出された場合に、前記関連キーワードの候補に基づいて、前記入力文に対する前記応答を生成する応答生成部と、
を備える対話装置。
【請求項１１】
ユーザからの入力文を解析することと、
前記入力文の解析結果で質問応答知識を参照することにより、前記入力文に対する回答の候補を得ることと、
前記入力文から、前記質問応答知識を参照しても回答の候補を得ることができないキーワードである未知キーワードを検出することと、
前記未知キーワードが検出されたことに応答して、所定のキーワードから、前記未知キーワードと近い意味を持つ関連キーワードの候補を取得することと、
前記未知キーワードが検出されない場合に、前記回答の候補に基づいて、前記入力文に対する応答を生成し、前記未知キーワードが検出された場合に、前記関連キーワードの候補に基づいて、前記入力文に対する前記応答を生成することと、
を備える対話方法。
【請求項１２】
コンピュータを、
ユーザからの入力文を解析するテキスト解析手段と、
前記入力文の解析結果で質問応答知識を参照することにより、前記入力文に対する回答の候補を得る知識参照手段と、
前記入力文から、前記質問応答知識を参照しても回答の候補を得ることができないキーワードである未知キーワードを検出する未知キーワード検出手段と、
前記未知キーワードが検出されたことに応答して、所定のキーワードから、前記未知キーワードと近い意味を持つ関連キーワードの候補を取得する関連キーワード推定手段と、
前記未知キーワードが検出されない場合に、前記回答の候補に基づいて、前記入力文に対する応答を生成し、前記未知キーワードが検出された場合に、前記関連キーワードの候補に基づいて、前記入力文に対する前記応答を生成する応答生成手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対話システム、対話装置、対話方法、及びプログラムに関する。
【背景技術】
【０００２】
ユーザと音声又はテキストで対話するものであって、ユーザの質問に回答する対話装置は、多くの場面での活用が期待されている。対話装置においては、ユーザの質問が複雑又は曖昧なものであっても、適切な回答をユーザに提示できることが重要である。
【０００３】
対話装置には、複雑又は曖昧な質問に適切に回答するために、ユーザに問い合わせを行うものがある。しかしながら、ユーザの質問に未知のキーワード（システムが知らないキーワード、すなわち、対話装置が参照する辞書に登録されていないキーワード）が含まれる場合には、対話装置は、ユーザへの問い合わせを行ったとしても、適切に回答できないことがある。例えば、銀行関係の対話装置に対してユーザが「あんしんローンへの申し込み方法を教えて」と入力したとする。「あんしんローン」が未知キーワードであった場合、対話装置は、「申し込み方法を教えて」あたりの理解できる文字列に基づいて、「何への申し込みでしょうか？」という応答文を生成し、ユーザに提示する。これに対してユーザは「あんしんローン」と入力する可能性がある。その場合、対話装置は同じ応答文しか出力できず、対話がループしてしまうため、ユーザに不快感を与える対話となってしまう。
【０００４】
対話装置においては、ユーザの質問に未知のキーワードが含まれている場合にも、ユーザとのやり取りが続くような応答を出力できることが求められている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−２５０９２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、ユーザの質問に未知のキーワードが含まれている場合にも、ユーザとのやり取りが続くような応答を出力することができる対話システム、対話装置、対話方法、及びプログラムを提供することである。
【課題を解決するための手段】
【０００７】
一実施形態に係る対話システムは、ユーザからの入力文を解析するテキスト解析部と、前記テキスト解析部による前記入力文の解析結果で質問応答知識を参照することにより、前記入力文に対する回答の候補を得る知識参照部と、前記入力文から、前記質問応答知識を参照しても回答の候補を得ることができないキーワードである未知キーワードを検出する未知キーワード検出部と、前記未知キーワードが検出されたことに応答して、所定のキーワードから、前記未知キーワードと近い意味を持つ関連キーワードの候補を取得する関連キーワード推定部と、前記未知キーワードが検出されない場合に、前記回答の候補に基づいて、前記入力文に対する応答を生成し、前記未知キーワードが検出された場合に、前記関連キーワードの候補に基づいて、前記入力文に対する前記応答を生成する応答生成部と、を備える。
【図面の簡単な説明】
【０００８】
【図１】一実施形態に係る対話システムを例示するブロック図。
【図２】一実施形態に係る対話装置を例示するブロック図。
【図３】一実施形態に係る未知キーワードを検出する方法を説明する図。
【図４】図２に示した対話装置の動作例を例示するフローチャート。
【図５】図２に示した対話装置とユーザとの対話の例を示す図。
【図６】図２に示した対話装置とユーザとの対話の例を示す図。
【図７】図２に示した対話装置とユーザとの対話の例を示す図。
【図８】一実施形態に係る応答の提示例を示す図。
【図９】一実施形態に係る関連キーワードの候補から得られる情報に応じて応答生成方法を切り替える処理を示すフローチャート。
【図１０】一実施形態に係る対話装置のハードウェア構成を例示するブロック図。
【発明を実施するための形態】
【０００９】
以下、図面を参照しながら実施形態を説明する。
【００１０】
図１は、一実施形態に係る対話システム１００を概略的に示している。図１に示すように、対話システム１００は、対話装置１０１及び端末装置１０２を備える。対話装置１０１及び端末装置１０２は、インターネットなどの通信ネットワークＮＷに接続され、通信ネットワークＮＷを介して互いに通信することができる。
【００１１】
端末装置１０２は、例えばパーソナルコンピュータやスマートフォンなどのコンピュータであり得る。端末装置１０２は、入力装置としてマイクロフォン、出力装置として表示装置及びスピーカを含む。端末装置１０２は、マイクロフォンでユーザの発話（ユーザが発した音声）を受信し、ユーザの発話を示す発話信号を生成する。そして、端末装置１０２は、通信ネットワークＮＷを介して対話装置１０１に発話信号を送信する。
【００１２】
他の実施形態では、端末装置１０２は、発話信号に対して音声認識を行うことにより発話信号に応じたテキストを得て、このテキストを示すテキストデータを対話装置１０１に送信してよい。さらなる実施形態では、端末装置１０２は、入力装置としてキーボード又はタッチスクリーンを備え、ユーザがキーボード又はタッチスクリーンを用いて入力したテキストを示すテキストデータを対話装置１０１に送信してよい。
【００１３】
対話装置１０１は、通信ネットワークＮＷを介して端末装置１０２から発話信号を受信する。対話装置１０１は、受信した発話信号を処理し、通信ネットワークＮＷを介して端末装置１０２に、ユーザの発話に対する応答を含む応答信号を送信する。応答信号は、端末装置１０２のスピーカから出力される発話信号を含み得るが、これに限定されない。例えば、応答信号はテキストデータを含んでよい。端末装置１０２は、対話装置１０１から受信したテキストデータを表示装置に表示してよい。また、端末装置１０２は、対話装置１０１から受信したテキストデータを音声合成し、テキストデータに応じた音声をスピーカから出力してよい。
【００１４】
図１に示した対話システム１００は例示に過ぎない。例えば、対話装置１０１及び端末装置１０２は１台の装置として構成されてよい。
【００１５】
図２は、対話装置１０１の構成例を概略的に示している。図２に示すように、対話装置１０１は、入力文取得部２０１、テキスト解析部２０２、知識参照部２０３、応答生成部２０４、未知キーワード検出部２０５、関連キーワード推定部２０６、応答送信部２０７、及び質問応答知識２０８を備える。
【００１６】
入力文取得部２０１は、ユーザからの入力文を取得する。例えば、入力文取得部２０１は、端末装置１０２（図１）から発話信号を受信し、受信した発話信号に対して音声認識を行い、それにより得られたテキストを入力文として取得する。端末装置１０２が対話装置１０１にテキストデータを送信する実施形態では、入力文取得部２０１は、端末装置１０２から受信したテキストデータにより示されるテキストを入力文として取得する。入力文取得部２０１は、入力文をテキスト解析部２０２及び未知キーワード検出部２０５に送る。
【００１７】
テキスト解析部２０２は、入力文取得部２０１から入力文を受け取り、受け取った入力文を解析する。例えば、テキスト解析部２０２は、入力文から質問応答に必要な情報を抽出する。質問応答に必要な情報は、それで質問応答知識２０８を参照することにより回答の候補を得ることが可能な情報である。質問応答に必要な情報は、入力文内の重要なキーワード若しくはその特徴量ベクトル、又は入力文の意味を推定した結果若しくは入力文の意味をベクトルで表現したものなどを含む。テキスト解析部２０２は、質問応答に必要な情報を知識参照部２０３に送る。
【００１８】
重要なキーワード又はその特徴量ベクトルを抽出する解析方法としては、重要キーワードのリスト（以下、重要キーワードリストと称する）をあらかじめ用意しておき、重要キーワードリストを用いた単純なマッチングで入力文から重要キーワードを抽出する方法、重要キーワードリスト内の重要キーワードと入力文内のキーワードとの意味の近さを単語の分散表現などから測定し、意味の近いキーワードを抽出する方法、文章中の重要キーワードがどれであるかの正解がラベル付けされたデータで学習されたモデルを用いて入力文中の重要キーワードを特定する方法などを使用することができる。入力文の意味又はそのベクトルを求める方法としては、文章とその意味が紐付けられたデータで学習されたモデルを用いて入力文の意味を推定する方法、文章の分散表現を用いる方法などを使用することができる。ここで挙げた方法以外の既存の方法も適用可能である。
【００１９】
知識参照部２０３は、テキスト解析部２０２から質問応答に必要な情報を受け取り、受け取った情報で質問応答知識２０８を参照し、入力文に対する回答の候補を取得する。質問応答知識２０８は、質問、回答、及びテキスト解析部２０２で得られた情報に対応する情報を紐付けて格納する。本実施形態では、テキスト解析部２０２が入力文から重要キーワードを抽出し、質問応答知識２０８は、質問、回答、及び重要キーワードを紐付けて格納する。テキスト解析部２０２が入力文の意味を推定する実施形態では、質問応答知識２０８は、質問、回答、及び質問の意味を紐付けて格納する。知識参照部２０３は、テキスト解析部２０２で得られた情報と近い情報を持つ回答を回答候補として、質問応答知識２０８から抽出する。知識参照部２０３は、回答候補を応答生成部２０４に送る。回答候補は、回答とともに、回答に紐付けられている質問、重要キーワードなどの質問応答知識２０８から取得された情報を含んでよい。
【００２０】
応答生成部２０４は、知識参照部２０３から回答の候補を受け取り、受け取った回答の候補に基づいて、入力文に対する応答を生成する。応答生成部２０４は、応答を応答送信部２０７に送る。応答送信部２０７は、応答生成部２０４から応答を受け取り、その応答を含む応答信号を端末装置１０２に送信する。
【００２１】
応答を生成する方法は様々なバリエーションがある。回答の候補の中で最もユーザの質問に合う回答を提示する方法、ユーザに選択してもらうために回答の候補それぞれに紐付けられた質問文をユーザに提示する方法、回答の候補を絞り込むために回答の候補それぞれに紐付けられた重要キーワードなどを用いてユーザから追加の情報を聞き出す応答を提示する方法などが挙げられる。応答の提示方法は、応答文を出力するだけでなく、回答の候補に紐付けられた質問文又は重要キーワードをユーザインタフェース画面上に表示して、ユーザがユーザインタフェース上で選択できるようにしてもよい。
【００２２】
未知キーワード検出部２０５は、入力文取得部２０１から入力文を受け取り、入力文から、未知キーワードを検出する。未知キーワードは、対話装置１０１が参照する辞書（例えば重要キーワードリスト及び質問応答知識２０８など）に登録されていないキーワードであるため、質問応答知識２０８を参照しても回答の候補を得ることができないキーワードである。未知キーワード検出部２０５は、未知キーワードを関連キーワード推定部２０６に送る。
【００２３】
未知キーワードを検出する方法としては、単語又は単語列の周辺の言い回しを用いる方法を使用することができる。あらかじめ用意されたキーワードリストを用いる方法は、新しい未知キーワードが増えていくことを考えると現実的ではない。また、例えば名詞である単語又は単語列を全て抽出する方法など、品詞情報のみを用いる方法は、不要な単語又は単語列を抽出してしまう可能性が高い。そこで、あらかじめ用意された文法ルールを用いて特定の言い回しに付随する単語又は単語列を未知キーワードとして抽出する方法、或いは、学習データの重要キーワードの部分を同じ単語又はランダムに選択された単語に置き換えてモデルを学習することで未知キーワードを抽出する方法が使用される。
【００２４】
重要キーワードに対応する単語又は単語列を他の単語又は単語列に置き換えることで得られた文章で未知キーワード検出用のモデルを学習する方法について図３を参照して説明する。学習データは、重要キーワード（対話装置１０１が重要だともともと知っているキーワード）に正解ラベルが付与された文章の集合であり、この学習データには未知キーワードは含まれていない。この学習データでモデルを学習した場合、文章に含まれる単語又は単語列が重要であるか否かを推定することは可能になるが、未知キーワードを検出することはできない。本実施形態では、図３に示すように、文章中の重要キーワードを他の単語に置き換えることで得られる文章を生成し、これらの文章を含む学習データでモデルを学習する。こうすることで、モデルは、重要だとラベル付けされている単語そのものの情報から、なぜこの単語が重要キーワードなのかを推測するのが困難になる。一方、学習データ内の重要キーワードの周辺の言い回しにはある程度の規則性があると考えられる。そのため、学習済みモデルは、特定の言い回しがある場合にどの単語又は単語列が重要キーワードであるかを推測するようになる。言い回しを参照するので、その単語又は単語列が学習データに含まれているか否かにかかわらず、抽出することが可能となり、未知キーワードの検出も可能となる。
【００２５】
図３の例では、重要キーワードに正解ラベルが付与された文章として、「ネットバンキングの申し込み方法を教えて」と「普通預金と定期預金の違いはなんですか」の２つの文章が示されている。前者の文章では、「ネットバンキング」が重要キーワードであり、「ネットバンキング」の部分を他の単語又は単語列に置き換えた文章が生成される。例えば、「保険の申し込み方法を教えて」、「みかんの申し込み方法を教えて」、「社長の申し込み方法を教えて」などの文章が生成される。後者の文章では、「普通預金」及び「定期預金」が重要キーワードであり、これらを他の単語又は単語列に置き換えた文章が生成される。例えば、「東京と動物園の違いは何ですか」、「牛乳とゲームの違いは何ですか」「神社と犬の違いは何ですか」などの文章が生成される。これらの文章でモデルを学習する。これにより、学習済みモデルを用いて「ＡＡＡの申し込み方法を教えて」を含む文章に対する推定を行うと、キーワードとして「ＡＡＡ」が抽出される。ここで、ＡＡＡは任意の単語又は単語列である。また、学習済みモデルを用いて「ＢＢＢとＣＣＣの違いは何ですか」を含む文章に対する推定を行うと、キーワードとして「ＢＢＢ」及び「ＣＣＣ」が抽出される。ここで、ＢＢＢ及びＣＣＣは任意の単語又は単語列である。
【００２６】
上述した方法で抽出されたキーワードは、未知キーワードでなく、重要キーワードである可能性もある。このため、例えば、抽出されたキーワードが重要キーワードリストに含まれるか否かが判断される。重要キーワードリストに含まれない場合、抽出されたキーワードは未知キーワードに決定される。
【００２７】
上述した方法では、未知キーワードと重要キーワードの両方を検出することが可能である。そのため、図２に示す構成例では、テキスト解析部２０２及び未知キーワード検出部２０５が個別に示されているが、テキスト解析部２０２及び未知キーワード検出部２０５が１つの構成要素として構成されてもよい。
【００２８】
他の実施形態では、テキスト解析部２０２が、未知キーワード検出部２０５の機能を含み、上述した方法で未知キーワード及び重要キーワードの検出を行う。具体的には、テキスト解析部２０２は、上述した方法に従って入力文からキーワードを抽出し、重要キーワードリストを参照して、抽出したキーワードが重要キーワードか未知キーワードかを判定する。重要キーワード又はその特徴量ベクトルを含む質問応答に必要な情報は知識参照部２０３に送られる。未知キーワードは関連キーワード推定部２０６に送られる。
【００２９】
関連キーワード推定部２０６は、未知キーワード検出部２０５から未知キーワードを受け取り、所定のキーワード（システムが知っているキーワード）から、未知キーワードと近い意味を持つ関連キーワードの候補を取得する。関連キーワード推定部２０６は、関連キーワードの候補を応答生成部２０４に送る。関連キーワードの候補を取得する方法については後述する。
【００３０】
応答生成部２０４は、関連キーワード推定部２０６から関連キーワードの候補を受け取り、関連キーワードの候補に基づいて、入力文に対する応答を生成する。応答生成部２０４は、関連キーワードの候補に加えて、知識参照部２０３から受け取った回答の候補に基づいて、入力文に対する応答を生成してよい。
【００３１】
本実施形態では、対話装置１０１が１つの装置として構成されている。対話装置１０１は複数の装置で構成されてもよい。例えば、質問応答知識２０８が対話装置１０１とは別の装置（図示せず）に設けられていてもよい。
【００３２】
次に、対話装置１０１の動作例について説明する。
【００３３】
図４は、対話装置１０１が入力文に対する応答を生成する処理手順の一例を概略的に示している。図４に示すように、まず、入力文取得部２０１は、ユーザの入力文を取得する（ステップＳ１０１）。
【００３４】
テキスト解析部２０２は、取得された入力文から質問応答に必要な情報を抽出する（ステップＳ１０２）。未知キーワード検出部２０５は、取得された入力文から未知キーワードを検出する（ステップＳ１０３）。図４に示す例では、ステップＳ１０２の処理の後にステップＳ１０３の処理が実行される。なお、ステップＳ１０３の処理は、ステップＳ１０２の処理と並行して実行されてもよく、又は、ステップＳ１０２の処理の前に実行されてよい。
【００３５】
未知キーワードが検出されたか否かが判断される（ステップＳ１０４）。未知キーワードが検出されなかった場合（ステップＳ１０４：Ｎｏ）、処理はステップＳ１０５に進む。知識参照部２０３は、ステップＳ１０２で得られた質問応答に必要な情報と質問応答知識２０８とに基づいて、入力文（ユーザの質問）に対する回答の候補を取得する（ステップＳ１０５）。応答生成部２０４は、知識参照部２０３により取得された回答の候補に基づいて、入力文に対する応答を生成する（ステップＳ１０６）。応答送信部２０７が応答を端末装置１０２に送信した後は、処理はステップＳ１０１に戻る。
【００３６】
未知キーワードが検出された場合（ステップＳ１０４：Ｙｅｓ）、処理はステップＳ１０７に進む。関連キーワード推定部２０６は、所定のキーワードの中から、検出されたキーワードと近い意味を持つ関連キーワードの候補を取得する（ステップＳ１０７）。応答生成部２０４は、関連キーワード推定部２０６により推定された関連キーワードの候補に基づいて、応答を生成する（ステップＳ１０８）。応答送信部２０７が応答を端末装置１０２に送信した後は、処理はステップＳ１０１に戻る。
【００３７】
ステップＳ１０７における関連キーワードの候補を推定する方法としては、以下の方法を使用することができる。第１の方法は、所定のキーワードと未知キーワードとの編集距離を用いるものである。編集距離とは、２つの文字列があったときに、何文字置換、挿入、又は削除を行うと同じ文字列になるかを表す指標である。例えば、「自動車用のローン」と「自動車ローン」との編集距離を考える。「自動車用のローン」から「用」及び「の」の２文字を削除すると「自動車用のローン」は「自動車ローン」になることから、編集距離は２である。編集距離が小さいものは、ユーザの言い誤り若しくは入力誤り、又は音声認識誤りの可能性があるため、未知キーワードに対する関連キーワードの候補の可能性が高いと言える。編集距離が閾値以下であるキーワードが関連キーワードの候補と推定される。
【００３８】
第２の方法は、キーワードの部分語によるマッチングを用いるものである。具体的には、第２の方法は、各キーワード及び未知キーワードを単語単位に分割し、キーワードを分割することで得られた部分語と未知キーワードを分割することで得られた部分語との一致度に基づいて、キーワードが未知キーワードに近いか否かを判断する。例えば、未知キーワードが「スペシャル預金」であり、キーワードが「特別普通預金」である場合、それぞれを分割すると「スペシャル／預金」、「特別／普通／預金」が得られ、「預金」が一致する。この場合、一致度は１である。なお、単語の分散表現などで近い意味の単語同士を一致とみなしてもよい。その場合、「スペシャル」及び「特別」を一致とみなし、一致度が２となる。単語の分散表現で取得した単語同士の一致度は、分散表現の単語ベクトルの距離など意味の近さを用いてもよい。例えば一致度が閾値以上であるキーワードが関連キーワードの候補と推定される。
【００３９】
第３の方法は、単語又は単語列の周辺の言い回しに基づいて推定を行う方法である。例えば、「スペシャル預金の金利を教えて」という入力文において、「スペシャル預金」が未知キーワードとして検出された場合、第３の方法は、「ＸＸＸの金利」という言い回しから、「スペシャル預金」が金融商品を示すキーワードであると判断し、カテゴリが金融商品であるキーワードを関連キーワードの候補と推定する。第３の方法は、文法ルール又は学習済みモデルを用いて、未知キーワードの周辺の言い回しから未知キーワードのカテゴリ（例えば金融商品）を推定し、キーワードそれぞれに付与されているカテゴリと照合することにより実現可能である。文法ルール又は学習済みモデルでカテゴリを推定するのではなく、直接に関連キーワードの候補を推定してもよい。
【００４０】
第４の方法は、重要キーワードで質問応答知識２０８を参照した結果を用いるものである。例えば「どこでも送金サービスの手数料を教えて」という入力文において、「どこでも送金サービス」が未知キーワード、「手数料」が重要キーワードとして抽出されたとする。このとき、「手数料」で質問応答知識２０８を参照し、その結果、「振込にかかる手数料は？」及び「海外送金の手数料は？」という質問文とマッチしたとする。質問文「振込にかかる手数料は？」は、「振込」及び「手数料」という２つの重要キーワードに紐付けられている。質問文「海外送金の手数料は？」は、「海外送金」及び「手数料」という２つの重要キーワードに紐付けられている。この場合、「振込」及び「海外送金」という２つの重要キーワードが「どこでも送金サービス」に対する関連キーワードの候補と推定される。第４の方法を使用する場合、未知キーワードが検出されても、知識参照部２０３は、ステップＳ１０５の処理を実行し、回答の候補を関連キーワード推定部２０６に送る。
【００４１】
関連キーワードの候補を推定する方法として、上述した４つの方法のいずれかを用いてもよく、上述した方法の組み合わせを用いてもよい。この場合、４つの方法それぞれで推定した候補を組み合わせるだけでなく、推定に用いる編集距離や一致度を統合的に判断して候補を推定してもよい。
【００４２】
応答生成部２０４は、関連キーワードの候補から得られる情報に応じて、応答を生成する方法を切り替える。関連キーワードの候補から得られる情報としては、関連キーワードの候補の数、関連キーワードの候補それぞれと未知キーワードとの意味の近さなどを使用することができる。関連キーワードの候補と未知キーワードとの意味の近さを用いる場合、関連キーワード推定部２０６は、ステップＳ１０７とステップＳ１０８との間で関連キーワードの候補それぞれと未知キーワードと意味の近さを算出し、関連キーワードの候補とともに算出した意味の近さを応答生成部２０４に送る。意味の近さを表す指標としては、未知キーワードに対する関連キーワードの候補を求めるときに用いた判断基準をそのまま利用可能である。
【００４３】
次に、図５から図７を参照して、ユーザと対話装置１０１との間の対話の例について説明する。図６及び図７は、ユーザからの入力文に未知キーワードが含まれていた場合における対話装置１０１の応答例を示し、入力文に未知キーワードが含まれていた場合にも対話を円滑に続けることができることを示す。
【００４４】
ここでは、対話システム１００は、銀行において使用される、よくある質問に回答する対話システムであるとする。対話システム１００は、あらかじめ用意された辞書（重要キーワードリスト）に登録されている単語とのキーワードマッチングにより、入力文から重要キーワードを抽出する。質問応答知識２０８は、質問文、回答、及び質問文から抽出された重要キーワードを紐付けて記憶している。対話システムは、キーワードレベルで入力文と質問文との対応付けを行うことにより、回答候補を得る。ただし、前述した通り、これ以外の手法で質問応答に必要な情報及び回答候補を得てもよい。
【００４５】
図５は、未知キーワードが検出されることなく対話が行われる場合の対話例を示している。図５に示す例では、ユーザが「預金の解約をしたい」と入力する。辞書に登録されている単語とのキーワードマッチングにより、「預金」及び「解約」が重要キーワードとして抽出される。これらの重要キーワードを質問応答知識２０８と照合した結果、「普通預金の解約の方法を教えてください」、「定期預金の解約はどうすればよいですか？」という質問文が含まれるデータが回答候補として得られる。対話装置１０１は、回答候補のそれぞれの重要キーワードを参照し、回答候補間で「普通預金」と「定期預金」が異なる重要キーワードであることを認識する。この場合、対話装置１０１は、ユーザが「普通預金」と「定期預金」のいずれを意図しているかを確認する応答を生成する。例えば、対話装置１０１は、「普通預金ですか？定期預金ですか？」という応答文を出力する。それに対してユーザが「普通預金です」と入力すると、対話装置１０１は、それまでに得られている重要キーワードに「普通預金」を加え、それらの重要キーワードで質問応答知識２０８を参照する。その結果として、「普通預金の解約の方法を教えてください」という質問文が含まれるデータが回答候補として得られる。得られた回答候補が１つであるため、対話装置１０１は、この回答候補に含まれる回答「解約には・・」を出力する。
【００４６】
このように、ユーザから与えられた情報が不足していたり曖昧だったりした場合に、対話装置１０１がユーザに対して問い合わせを行い、それによりユーザの質問に対して正確に回答することが可能である。なお、ユーザと対話装置１０１との間で複数回のやり取りを行う場合、テキスト解析部２０２又は知識参照部２０３は、ユーザから与えられた情報を蓄積する必要がある。
【００４７】
図６は、入力文に未知キーワードが含まれている場合の対話例を示している。図６に示す例では、ユーザが端末装置１０２に「車のローンに申し込みたいのですが」と入力している。対話装置１０１は、キーワードマッチングにより「申し込み」を重要キーワードとして抽出し、文脈情報に基づいて「車のローン」を未知キーワードとして抽出する。対話装置１０１は、「車のローン」と近い意味を持つ関連キーワードの候補を得る。さらに、対話装置１０１は、未知キーワードと関連キーワードの候補との意味の近さを求める。この例では、「カーローン」が関連キーワードの候補として抽出され、意味の近さは「大」（非常に近い）と求まる。対話装置１０１は、未知キーワード「車のローン」と非常に意味が近い関連キーワードの候補が１つだけ得られたため、関連キーワードの候補「カーローン」を、「車のローン」に関連する関連キーワードとみなす。そして、対話装置１０１は、「カーローン」及び「申し込み」で質問応答知識２０８を参照し、それにより得られた回答「カーローンでは・・」を応答として出力する。この際、対話装置１０１は、ユーザが入力した「車のローン」を「カーローン」に置き換えたことをユーザに伝えるために、「カーローンのことですね」といった文章を応答の最初に付与している。このように、対話装置１０１は、未知キーワードと意味の近い関連キーワードの候補が１つであった場合に、関連キーワードの候補を関連キーワードと決定し、関連キーワードを用いて応答を生成する。
【００４８】
上述した動作を実現するために、関連キーワード推定部２０６は、関連キーワードと決定した「カーローン」を知識参照部２０３に送り、知識参照部２０３は、関連キーワード推定部２０６から受け取った「カーローン」とテキスト解析部２０２から受け取った「申し込み」とで質問応答知識２０８を参照する。さらに、未知キーワードである「車のローン」を「カーローン」に置き換えたことを示す情報を応答に含ませるために、未知キーワード検出部２０５は、検出した未知キーワードを応答生成部２０４に送る。
【００４９】
図７は、入力文に未知キーワードが含まれている場合の対話例を示している。図７に示す例では、ユーザが「どこでも送金サービスは手数料がかかりますか？」と入力している。対話装置１０１は、「手数料」を重要キーワードとして抽出し、「どこでも送金サービス」を未知キーワードとして抽出する。「どこでも送金サービス」に対する関連キーワードの候補として、「口座振込」及び「海外送金」が得られ、意味の近さはどちらも「中」（近い）である。対話装置１０１は、「どこでも送金サービスとは、口座振込ですか？海外送金ですか？」といったように、未知キーワードの意味を関連キーワードの候補を提示しつつユーザに問い合わせを行う。これに対してユーザが「口座振込です」と入力すると、対話装置１０１は、「口座振込」を関連キーワードと決定し、「口座振込」及び「手数料」で質問応答知識２０８を参照し、それにより得られた回答候補を用いて応答を行う。具体的には、対話装置１０１は、回答「振込をする度に・・」を出力する。このように、未知キーワードの意味をシステムが知っている単語で問い合わせをすることにより、対話を円滑に続けることが可能になる。
【００５０】
図７の例では、２つの関連キーワードの候補が得られているが、３以上の関連キーワードの候補が得られることもある。その場合、関連キーワードの候補すべてを応答に含めることが困難な場合もある。例えば、対話装置１０１は、意味が近い順に所定個の候補を選択し、選択した候補を用いて応答を生成してよい。また、対話装置１０１は、カテゴリ（属性）が同じ候補を選択し、選択した候補を用いて応答を生成してよい。カテゴリが同じ候補が多数ある場合は、対話装置１０１は、それらから意味が近い順に所定個の候補を選択してよい。関連キーワード推定部２０６が参照する辞書（キーワードリスト）に登録されている各キーワードにカテゴリがあらかじめ付与される。
【００５１】
関連キーワードの候補を用いて未知キーワードの意味をユーザに問い合わせた後で、ユーザが「違います」又は「どれでもない」などと、未知キーワードが提示した関連キーワードの候補のどれにも該当しないという内容を入力することもある。そういった場合には、残っている関連キーワードの候補を提示することになる。対話装置１０１は、残っている関連キーワードの候補の中から、意味が近い順に候補を選択してよい。また、対話装置１０１は、直前に提示した関連キーワードの候補のカテゴリと異なるカテゴリが付与された候補を選択してよい。これは、ユーザが入力した情報と近いカテゴリのキーワードが提示されていれば、ユーザは何らかのキーワードを入力する可能性が高いが、ユーザが「違います」と入力するということは違うカテゴリの情報を希望している可能性が高いと考えられるためである。他のカテゴリの候補を提示することで、ユーザが希望している条件をシステムが知っているキーワードで入力してくれる可能性が高くなるため、ユーザにとっても使いやすいシステムになると考えられる。
【００５２】
図７に示す対話例では、図８に示すように、ユーザが選択できるように、端末装置１０２の表示装置の画面上に関連キーワードの候補を表示してもよい。この場合、関連キーワードの候補が多い場合でも、それらをすべてユーザに提示することが可能である。
【００５３】
図６及び図７では、関連キーワードの候補の数又は未知キーワードとの意味の近さで応答が切り替わる例を示したが、それ以外にも応答の種類は考えられる。
【００５４】
図９は、関連キーワードの候補から得られる情報に応じて応答生成方法を切り替える処理を概略的に示している。
【００５５】
意味の近さが大の候補があるか否かが判断される（ステップＳ２０１）。意味の近さが大の候補がある場合（ステップＳ２０１：Ｙｅｓ）、処理はステップＳ２０２に進む。意味の近さが大の候補の数が１つか否かが判断される（ステップＳ２０２）。意味の近さが大の候補の数が１つである場合（ステップＳ２０２：Ｙｅｓ）、処理はステップＳ２０３に進む。対話装置１０１は、意味の近さが大の候補を関連キーワードと決定し、関連キーワードを用いて質問応答処理を実施する。この質問応答処理は、図６を参照して説明した処理に対応する。例えば、未知キーワード「あんしん口座」に対して「貯蓄預金」が関連キーワードとして得られた場合、対話装置１０１は、「貯蓄預金のことですね。貯蓄預金は・・」という応答文をユーザに提示する。
【００５６】
意味の近さが大の候補の数が２以上である場合（ステップＳ２０２：Ｎｏ）、処理はステップＳ２０４に進む。対話装置１０１は、意味の近さが大の候補を用いて、未知キーワードの意味をユーザに問い合わせる（ステップＳ２０４）。この問い合わせは、図７を参照して説明した処理に対応する。例えば、未知キーワード「あんしん口座」に対して「貯蓄預金」及び「定期預金」が関連キーワードとして得られた場合、対話装置１０１は、「あんしん口座とは、貯蓄預金ですか？定期預金ですか？」という応答文をユーザに提示する。
【００５７】
意味の近さが大の候補がない場合（ステップＳ２０１：Ｎｏ）、処理はステップＳ２０５に進む。意味の近さが中の候補があるか否かが判断される（ステップＳ２０５）。意味の近さが中の候補がある場合（ステップＳ２０５：Ｙｅｓ）、処理はステップＳ２０６に進む。意味の近さが中の候補の数が１つか否かが判断される（ステップＳ２０６）。意味の近さが中の候補の数が１つである場合（ステップＳ２０６：Ｙｅｓ）、処理はステップＳ２０７に進む。対話装置１０１は、意味の近さが中の候補を関連キーワードと決定し、未知キーワードの意味が関連キーワードで正しいかをユーザに問い合わせる（ステップＳ２０７）。例えば、未知キーワード「あんしん口座」に対して「貯蓄預金」が関連キーワードとして得られた場合、対話装置１０１は、「あんしん口座とは、貯蓄預金のことですか？」という応答文をユーザに提示する。
【００５８】
意味の近さが中の候補の数が２つ以上である場合（ステップＳ２０６：Ｎｏ）、処理はステップＳ２０４に進む。対話装置１０１は、意味の近さが中の候補を用いて、未知キーワードの意味をユーザに問い合わせる（ステップＳ２０４）。この問い合わせは、図７を参照して説明した処理に対応する。例えば、未知キーワード「あんしん口座」に対して「貯蓄預金」及び「定期預金」が関連キーワードとして得られた場合、対話装置１０１は、「あんしん口座とは、貯蓄預金ですか？定期預金ですか？」という応答文をユーザに提示する。
【００５９】
意味の近さが中の候補がない場合（ステップＳ２０５：Ｎｏ）、処理はステップＳ２０８に進む。対話装置１０１は、未知キーワードを用いずに、質問応答処理を行う（ステップＳ２０８）。例えば、対話装置１０１は、「もう一度お願いします」という応答文をユーザに提示する。
【００６０】
図９に示すフローチャートは一例であり、場合分けのバリエーションは他にも考えられる。また、意味の近さを大、中、小と離散的な値で表現しているが、連続的な値で表現し、応答生成方法を切り替える際には閾値との比較で判断を行ってもよい。例えば、ステップＳ２０１において、意味の近さが閾値を超える候補があるか否かが判断されてよい。また、応答生成方法切り替えのフローチャートを人手で作成することに限らず、強化学習などによってデータから自動的に生成してもよい。
【００６１】
図１０は、対話装置１０１のハードウェア構成例を概略的に示している。図１０に示すように、対話装置１０１は、ＣＰＵ（Central Processing Unit）１００１、ＲＡＭ（Random Access Memory）１００２、ＲＯＭ（Read Only Memory）１００３、補助記憶装置１００４、入力装置１００５、出力装置１００６、及び通信インタフェース１００７を備える。
【００６２】
対話装置１０１の上述した機能は、ＣＰＵ１００１がＲＯＭ１００３又は補助記憶装置１００４に記憶されたプログラムをＲＡＭ１００２に展開し、このプログラムを実行することにより実現される。ＣＰＵ１００１はハードウェアプロセッサの一例である。ハードウェアプロセッサは、ＣＰＵ１００１などの汎用プロセッサに限らず、ＡＳＩＣ（Application Specific Integrated Circuit）又はＦＰＧＡ（Field-Programmable Gate Array）などの専用プロセッサであってもよい。
【００６３】
補助記憶装置１００４は、データを不揮発的に記憶するコンピュータ読み取り可能な記憶媒体を備えたものであり、例えば、ＨＤＤ（Hard Disk Drive）又はＳＤＤ（Solid State Drive）であり得る。入力装置１００５は、例えば、キーボード及びマウスを備える。出力装置１００６は、表示装置及びスピーカを備える。
【００６４】
通信インタフェース１００７は、外部の装置（例えば端末装置１０２）と通信するためのインタフェースである。通信インタフェース１００７は、例えば、ＬＡＮ（Local Area Network）ポートを備え、例えばＬＡＮケーブルを用いて通信ネットワークＮＷに接続され、通信ネットワークＮＷを介して外部の装置との間でデータを送受信する。なお、通信インタフェース１００７は、例えば無線ＬＡＮモジュール又はBluetooth（登録商標）モジュールなどの無線モジュールを備えてよい。
【００６５】
以上のように、本実施形態に係る対話装置によれば、ユーザの入力文から未知キーワードを検出し、未知キーワードと近い意味を持つ関連キーワードの候補を求め、関連キーワードの候補から得られる情報に基づいて応答を生成することで、未知キーワードが含まれる入力文に対しても円滑に対話を進められるような応答を生成することが可能となる。
【００６６】
上述の実施形態の中で示した処理手順に示された指示は、ソフトウェアであるプログラムに基づいて実行されることが可能である。汎用の計算機システムが、このプログラムを予め記憶しておき、このプログラムを読み込むことにより、上述した対話装置による効果と同様な効果を得ることも可能である。上述の実施形態で記述された指示は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フレキシブルディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ±Ｒ、ＤＶＤ±ＲＷ、Ｂｌｕ−ｒａｙ（登録商標）Ｄｉｓｃなど）、半導体メモリ、又はこれに類する記録媒体に記録される。コンピュータまたは組み込みシステムが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。コンピュータは、この記録媒体からプログラムを読み込み、このプログラムに基づいてプログラムに記述されている指示をＣＰＵで実行させれば、上述した実施形態の対話装置と同様な動作を実現することができる。もちろん、コンピュータがプログラムを取得する場合又は読み込む場合はネットワークを通じて取得又は読み込んでもよい。
【００６７】
また、記録媒体からコンピュータや組み込みシステムにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワーク等などのＭＷ（ミドルウェア）等などが本実施形態を実現するための各処理の一部を実行してもよい。  
さらに、本実施形態における記録媒体は、コンピュータあるいは組み込みシステムと独立した媒体に限らず、ＬＡＮやインターネット等などにより伝達されたプログラムをダウンロードして記憶または一時記憶した記録媒体も含まれる。  
また、記録媒体は１つに限られず、複数の媒体から本実施形態における処理が実行される場合も、本実施形態における記録媒体に含まれ、媒体の構成は何れの構成であってもよい。
【００６８】
なお、本実施形態におけるコンピュータまたは組み込みシステムは、記録媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するためのものであって、パソコン、マイコン等などの１つからなる装置、複数の装置がネットワーク接続されたシステム等などの何れの構成であってもよい。  
また、本実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等なども含み、プログラムによって本実施形態における機能を実現することが可能な機器、装置を総称している。
【００６９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７０】
１００…対話システム、１０１…対話装置、１０２…端末装置、２０１…入力文取得部、２０２…テキスト解析部、２０３…知識参照部、２０４…応答生成部、２０５…未知キーワード検出部、２０６…関連キーワード推定部、２０７…応答送信部、２０８…質問応答知識、１００１…ＣＰＵ、１００２…ＲＡＭ、１００３…ＲＯＭ、１００４…補助記憶装置、１００５…入力装置、１００６…出力装置、１００７…通信インタフェース。
【図１】
2020077159.tif 000003
【図２】
2020077159.tif 000004
【図３】
2020077159.tif 000005
【図４】
2020077159.tif 000006
【図５】
2020077159.tif 000007
【図６】
2020077159.tif 000008
【図７】
2020077159.tif 000009
【図８】
2020077159.tif 000010
【図９】
2020077159.tif 000011
【図１０】
2020077159.tif 000012