(57)【特許請求の範囲】
【請求項１】
入力されたユーザ発話およびその対話状態のラベル値から、ユーザ発話に対する応答文を生成する応答文生成装置であって、
前記ユーザ発話に含まれるキーワードおよび前記キーワードを含む文書データを記憶する発話状態記憶部と、
ユーザ発話とその応答文とからなる発話対におけるユーザ発話それぞれに、前記ユーザ発話の種別およびその応答文の種別の組み合わせにより識別される対話状態のラベル値を付与した対話コーパスを記憶する対話コーパス記憶部と、
前記対話コーパス記憶部から、前記入力されたユーザ発話の対話状態のラベル値と同じラベル値を持つユーザ発話に対する応答文を抽出する応答文抽出部と、
前記抽出された各応答文に含まれる語のうち、前記対話コーパス中での出現頻度が所定の閾値よりも低い語の位置を、修正箇所として決定する修正箇所決定部と、
前記決定された各修正箇所の単語の種類に関する情報の類似度が高いものから所定数の単語を置換候補の語として、前記発話状態記憶部の文書データおよび前記対話コーパスのうち少なくとも一方に含まれる語から選択する置換候補決定部と、
前記抽出された各応答文の前記修正箇所に、前記選択された置換候補の語を置換した応答候補文を作成する応答候補文作成部と、
前記作成された応答候補文のうち、前記発話状態記憶部に記憶されるキーワードを最も多く含む応答候補文を選択する応答文選択部と、
前記選択された応答候補文を出力する応答文出力部と、
を備えることを特徴とする応答文生成装置。
【請求項２】
前記応答文抽出部は、
前記対話コーパスから、前記入力されたユーザ発話の対話状態のラベル値と同じラベル値を持つユーザ発話と、そのユーザ発話に対する応答文とを検索し、前記入力されたユーザ発話と、前記検索されたユーザ発話の類似度を算出し、前記検索したユーザ発話のうち前記算出した類似度が最も高いものから所定数選択し、前記選択した所定数のユーザ発話に対する応答文を、前記対話コーパスから抽出すること
を特徴とする請求項１に記載の応答文生成装置。
【請求項３】
前記対話状態のラベル値は、
前記ユーザ発話およびその応答文がそれぞれ、質問文であるか否と、質問文であるなら、ＹＥＳ／ＮＯ型質問文、ＷＨ型質問文、複数の回答を列挙すべき列挙型質問文およびそれ以外の質問文のいずれの文に分類されるかにより決定すること
を特徴とする請求項１または請求項２に記載の応答文生成装置。
【請求項４】
入力されたユーザ発話およびその対話状態のラベル値から、ユーザ発話に対する応答文を生成する応答文生成方法であって、
前記ユーザ発話に含まれるキーワードおよび前記キーワードを含む文書データを記憶する発話状態記憶部と、ユーザ発話とその応答文とからなる発話対におけるユーザ発話それぞれに、前記ユーザ発話の種別およびその応答文の種別の組み合わせにより識別される対話状態のラベル値を付与した対話コーパスを記憶する対話コーパス記憶部とを備える応答文生成装置が、
前記対話コーパス記憶部から、前記入力されたユーザ発話の対話状態のラベル値と同じラベル値を持つユーザ発話に対する応答文を抽出するステップと、
前記抽出された各応答文に含まれる語のうち、前記対話コーパス中での出現頻度が所定の閾値よりも低い語の位置を、修正箇所として決定するステップと、
前記決定された各修正箇所の単語の種類に関する情報の類似度が高いものから所定数の単語を置換候補の語として、前記発話状態記憶部の文書データおよび前記対話コーパスのうち少なくとも一方に含まれる語から選択するステップと、
前記抽出された各応答文の前記修正箇所に、前記選択された置換候補の語を置換した応答候補文を作成するステップと、
前記作成された応答候補文のうち、前記発話状態記憶部に記憶されるキーワードを最も多く含む応答候補文を選択するステップと、
前記選択された応答候補文を出力するステップと、
を実行することを特徴とする応答文生成方法。
【請求項５】
請求項４に記載の応答文生成方法を、前記応答文生成装置であるコンピュータに実行させるための応答文生成プログラム。
【請求項６】
請求項５に記載の応答文生成プログラムを記録したコンピュータに読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対話システムにおける応答文生成技術に関する。
【背景技術】
【０００２】
自然言語による対話システムは、人と機械との自然なコミュニケーションを実現する手段として広く使われている。電話による自動応答サービスやＷｅｂ（World Wide Web）を利用した対話型サービス等はその一例である（非特許文献１等参照）。
【０００３】
従来の対話システムでは、データベースやオントロジといった構造化されたバックエンドを用いていた(非特許文献２〜非特許文献４参照)。
例えば、バックエンドのデータベースに「出発停留所名」、「到着停留所名」、「曜日」、「時刻」というフィールドを持つようなバス情報案内システム（システム）において、「本厚木から通信研究所前まで」というユーザからの入力があったとする。
この場合、システムは、バックエンドのデータベースを参照して、「出発停留所名」は「本厚木」であり、「到着停留所名」は「通信研究所前」であると判断できる。また、システムユーザからの入力内容と、バックエンドのデータベースに設定されたフィールドに基づき、この質問で何の情報が欠けているかが分かる。
つまり、システムは、ユーザからの入力内容には「曜日」と「時刻」とが欠けていることが分かる。したがって、システムは、次に「曜日」と「時刻」とに関する質問を行えばよいと判断できる。
【非特許文献１】“音声処理応用システム・音声インタフェース”、［online］、［平成17年9月1日検索]、インターネット<URL:http://www.icot.or.jp/FTS/REPORTS/H10-reports/AITEC9903Re2＿Folder/AITEC9903R2-sec3-2.htm>
【非特許文献２】A.Rundnicky and X.Wu,An Agenda-Based Dialog Management Architecture for Spoken Language Systems,Proceedings of the Workshop on Automatic Speech Recognition and Understanding,1999
【非特許文献３】M.Denecke and A.h.Waibel,Dialogue Strategies Guiding Users to their Commnucative Goals, Proceedings of Eurospeech,Rohdos,Greece,1997
【非特許文献４】A.Ferrieux and M.D.Sadek,An Efficient Date-Driven Model for Cooperative SpokenDialogue,Proceedings of International Conference on Spoken Language Proceedings,Yokohama,Japan,1994
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、対話システムにおいて、前記したようなバックエンドに用いるルールを作成するのは手間がかかる。特に、ユーザの質問が広範なものである場合、バックエンドもそれに応じて複雑なルールを設定する必要があるので、バックエンドの作成には非常に手間がかかるという問題がある。つまり、従来技術では対話型質問応答システム等の対話システムを構築する際に、構築コストが高くなるという問題がある。
そこで、本発明は、前記した課題を解決し、対話システムの構築コストを低減する応答文生成装置等を提供することを目的とする。
【課題を解決するための手段】
【０００５】
前記した課題を解決するため、本発明の応答文生成装置は、複雑なルールを持つバックエンドを用いるかわりに、ユーザ発話とその応答文との発話対、およびその発話対における対話状態のラベル値を付与した対話コーパスを用いる構成とした。すなわち、応答文生成装置は入力されたユーザ発話およびその対話状態のラベル値から、対話コーパスからこの対話状態に類似するユーザ発話を探し、このユーザ発話に対する応答文を検索する。つまり、入力されたユーザ発話の応答文として最も適切な応答候補文を対話コーパスから検索する。そして、この検索した応答候補文に修正を行い、入力されたユーザ発話に対する応答文として出力する構成とした。
【０００６】
すなわち、本発明は、入力されたユーザ発話およびその対話状態のラベル値から、ユーザ発話に対する応答文を生成する応答文生成装置であって、前記ユーザ発話に含まれるキーワードおよび前記キーワードを含む文書データを記憶する発話状態記憶部と、ユーザ発話とその応答文とからなる発話対におけるユーザ発話それぞれに、前記ユーザ発話の種別およびその応答文の種別の組み合わせにより識別される対話状態のラベル値を付与した対話コーパスを記憶する対話コーパス記憶部と、前記対話コーパス記憶部から、前記入力されたユーザ発話の対話状態のラベル値と同じラベル値を持つユーザ発話に対する応答文を抽出する応答文抽出部と、前記抽出された各応答文に含まれる語のうち、前記対話コーパス中での出現頻度が所定の閾値よりも低い語の位置を、修正箇所として決定する修正箇所決定部と、前記決定された各修正箇所の単語の種類に関する情報の類似度が高いものから所定数の単語を置換候補の語として、前記発話状態記憶部の文書データおよび前記対話コーパスのうち少なくとも一方に含まれる語から選択する置換候補決定部と、前記抽出された各応答文の前記修正箇所に、前記選択された置換候補の語を置換した応答候補文を作成する応答候補文作成部と、前記作成された応答候補文のうち、前記発話状態記憶部に記憶されるキーワードを最も多く含む応答候補文を選択する応答文選択部と、前記選択された応答候補文を出力する応答文出力部とを備える構成とした。
【０００７】
この構成によれば、応答文生成装置は、ユーザ発話の対話状態のラベル値をキーとして、対話コーパスからこのユーザ発話に対する応答候補文を選択するので、複雑なルールを用いなくても応答文を生成することができる。また、応答候補文は対話コーパスや、検索された文書データに含まれる語で置換し、置換した応答候補文の中から発話状態記憶部に記憶されるキーワードを最も多く含む応答候補文を選択するので、ユーザ発話の応答文としてより適切な文を生成することができる。また、この構成によれば、対話コーパスから抽出した応答文のうち、頻繁に用いられる語の集合（雛形に相当する文）が残り、その他の語（あまり頻繁に用いられない語）を置換して修正することになるので、応答文生成装置は、ユーザ発話の応答文としてより適切な応答文を生成することができる。
【０００８】
また、本発明の応答文生成装置の前記応答文抽出部は、前記対話コーパスから、前記入力されたユーザ発話の対話状態のラベル値と同じラベル値を持つユーザ発話と、そのユーザ発話に対する応答文とを検索し、前記入力されたユーザ発話と、前記検索されたユーザ発話の類似度を算出し、前記検索したユーザ発話のうち前記算出した類似度が最も高いものから所定数選択し、前記選択した所定数のユーザ発話に対する応答文を、前記対話コーパスから抽出する構成とした。
【０００９】
この構成によれば、応答文生成装置の演算処理能力に応じて、応答文の抽出数の絞り込みをすることができる。また、応答文生成装置は、対話コーパスから様々な応答文を抽出するので、より適切な応答文を生成できる。
【００１６】
本発明の応答文生成装置において前記対話状態のラベル値は、前記ユーザ発話およびその応答文がそれぞれ、質問文であるか否と、質問文であるなら、ＹＥＳ／ＮＯ型質問文、ＷＨ型質問文、複数の回答を列挙すべき列挙型質問文およびそれ以外の質問文のいずれの文に分類されるかにより決定する構成とした。
【００１７】
この構成によれば、応答文生成装置は、少ない分類数で的確に対話状態を分類できるので、応答文生成の処理負荷を軽減することができる。
【発明の効果】
【００１８】
本発明によれば、対話型質問応答システム等の対話システムを構築する際に、複雑なルールを作成する必要がなくなる。つまり、本発明を対話システムに実装することで、対話システムの構築のコストを低減することができる。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照しながら、本発明を実施するための最良の形態（以下、実施の形態という）を説明する。
図１は、本実施の形態の応答文生成装置の構成を示すブロック図である。
応答文生成装置１００は、各種演算処理を行うＣＰＵ（Central Processing Unit）１０と、このＣＰＵ１０が演算処理を行う際に用いる記憶手段であるメインメモリ２０と、各種データの入出力を司る入出力インターフェース５０と、各種プログラムおよびデータを格納する記憶部１３０とを含んで構成される。この記憶部１３０は、例えばハードディスク装置等により構成される。ＣＰＵ１０は、この記憶部１３０に格納される各種プログラムおよびデータをメインメモリ２０に読み出し、演算処理を行うことにより後記する各機能を実現する。
【００２０】
記憶部１３０には、ＣＰＵ１０が、入力されたユーザ発話に基づき応答文を生成するための応答文生成プログラム１０１を格納し、所定領域に、発話状態記憶部１３１と、文書コーパスを記憶する文書コーパス記憶部１３２と、対話コーパスを記憶する対話コーパス記憶部１３３とを備える。
【００２１】
文書コーパスは、新聞記事等の様々な文書データの集合である。また、対話コーパスは、ユーザ発話とその応答文（発話対）を書き起こしたテキストに、この発話対の対話アクションラベル（後記）を付与したものである。発話状態記憶部１３１は、入力されたユーザ発話に含まれるキーワードと、このキーワードを含む文書データとを記憶する。このキーワードを含む文書データは、文書コーパス記憶部１３２から検索された文書データである。
【００２２】
応答文生成プログラム１０１は、対話状態管理モジュール１４１と、応答文生成モジュール１５８とを備える。
この対話状態管理モジュール１４１は、ＣＰＵ１０が、入力されたユーザ発話から、そのユーザ発話の対話状態を推測（判断）するためのモジュールである。
応答文生成モジュール１５８は、ＣＰＵ１０が、入力されたユーザ発話および推測された当該ユーザ発話の対話状態に基づき、そのユーザ発話に続く応答文を生成するためのモジュールである。
各モジュールの機能および、各記憶部に格納されるデータの詳細は、図２のブロック図を用いて詳細に説明する。
【００２３】
図２は、図１の応答文生成装置を機能展開して示したブロック図である。図１を参照しつつ図２を用いて応答文生成装置１００の機能を説明する。
【００２４】
応答文生成装置１００は、ユーザ発話の入力を受け付けるユーザ発話入力部１１０と、入力されたユーザ発話から、そのユーザ発話の対話状態（対話アクションラベル）を判断する対話状態管理部１４０と、入力されたユーザ発話および判断された当該ユーザ発話の対話状態に基づき、そのユーザ発話に続く応答文を生成する応答文生成部１５０と、生成された応答文を出力する応答文出力部１６０と、記憶部１３０とを備える。
【００２５】
＜対話状態管理部＞
対話状態管理部１４０は、図１のＣＰＵ１０が対話状態管理モジュール１４１を実行することにより実現される。また、応答文生成部１５０は、ＣＰＵ１０が応答文生成モジュール１５８を実行することにより実現される。
さらに、ユーザ発話入力部１１０および応答文出力部１６０は、図１の入出力インターフェース５０およびＣＰＵ１０による応答文生成プログラム１０１の実行処理により実現される。記憶部１３０は、前記したとおり発話状態記憶部１３１と、文書コーパス記憶部１３２と、対話コーパス記憶部１３３とを備える。
【００２６】
なお、本実施の形態において、ユーザ発話入力部１１０に入力されるユーザ発話は、テキストデータであり、例えば、図示しない音声処理部が音声データから変換したものである。また、この音声処理部は、応答文生成装置１００の内部に備えるようにしてもよいし、外部に接続するようにしてもよい。さらに、応答文生成装置１００は、ユーザ発話の音声の入力を受け付ける音声入力部（マイクロホン）や、応答文生成装置１００で生成（選択）された応答文を音声として出力する音声出力部（スピーカ）等を備えるようにしてもよい。
【００２７】
対話状態管理部１４０は、キーワード抽出部１４２と、キーワード追加部１４３と、文書検索部１４４と、発話状態更新部１４５と、対話状態推測部１４６とを備える。
【００２８】
キーワード抽出部１４２は、ユーザ発話入力部１１０から出力されたユーザ発話に含まれるキーワードを抽出する。このときのキーワードの抽出は公知の技術を用いることで可能である。
【００２９】
キーワード追加部１４３は、ユーザ発話から抽出されたキーワードを発話状態記憶部１３１に追加する。
【００３０】
文書検索部１４４は、発話状態記憶部１３１に蓄積されたキーワードを読み出し、このキーワードを含む文書データを文書コーパス記憶部１３２から検索する。
【００３１】
発話状態更新部１４５は、検索された文書データを発話状態記憶部１３１に出力し、発話状態記憶部１３１の発話状態を更新する。ここで、発話状態記憶部１３１に記憶される発話状態（発話状態情報）は、今までのユーザ発話から抽出されたキーワードと、そのキーワードを含む文書データとを示したものである。この発話状態を表１に例示する。
【００３２】
【表１】
0004755478.tif 000002
【００３３】
例えば、表１の発話状態には、ユーザ発話には「横浜」、「観光」、「施設」および「教える」というキーワードがそれぞれ１回ずつ出現し、これらのキーワードを含む文書データとして文書コーパス記憶部１３２から「横浜の観光施設を教えるガイドが〇〇に派遣されることになりました。」という文書データが検索されたことを示している。また、文書コーパス記憶部１３２から検索された文書データには、各キーワードの出現回数（スコア）を示すようにしてもよい。
【００３４】
なお、例えば、ユーザ発話入力部１１０が、現在のユーザ発話の次のユーザ発話として「家族で楽しめるところを。」という発話の入力を受け、キーワード抽出部１４２が「家族」および「楽しめる」がキーワードとして抽出したときには、キーワード追加部１４３は、前記した発話状態に「家族」および「楽しめる」というキーワードを追加登録する。また、文書検索部１４４は、「横浜」、「観光」、「施設」、「家族」および「楽しめる」というキーワードを含む文書データを文書コーパス記憶部１３２から検索する。そして、発話状態更新部１４５は、発話状態に登録された文書データを、検索された文書データに置き換えて発話状態を更新する。
【００３５】
対話状態推測部１４６は、発話状態記憶部１３１に記憶された発話状態に基づき、ユーザ発話の対話状態を推測し、このユーザ発話に推測結果を示すラベル値（対話アクションラベル）を付与する。この対話状態の推測には、例えば、統計的な分類器であるサポートベクトルマシン（V.N.Vapnic.The Nature of Statistical Learning Theory,Springer 1995）を用いる。
このサポートベクトルマシンは、対話コーパスのユーザ発話に含まれるキーワードおよびユーザ発話に付された対話アクションラベルに基づき、発話状態記憶部１３１に記憶されたキーワードおよび検索された文書データから算出されたユーザ発話の特徴量（ベクトルで記述）の入力を受けると、このユーザ発話の対話アクションラベルを出力するよう学習されているものとする。
【００３６】
ここで、このサポートベクトルマシンに入力されるベクトルの作成方法を説明する。ここでは、ユーザ発話の特徴量として（１）ユーザ発話に含まれるキーワードと、（２）発話状態（表１参照）における各キーワードの出現回数と、（３）検索された文書データにおける各キーワードの出現回数とをベクトルで記述したものを用いるものとする。
発話状態記憶部１３１の発話状態として登録されたキーワードおよび各キーワードの出現回数が以下の表２に示すようなものであるものとして説明する。
【００３７】
【表２】
0004755478.tif 000003
【００３８】
また、各キーワードに割り当てる番号を決めておく。例えば、以下の表３に示すように割り当て番号を決める。この割り当て番号は、ベクトルにおいて各キーワードの出現回数の数値を書き込む位置を示す。この情報は、予め応答文生成装置１００の管理者等が設定し、記憶部１３０に格納される。なお、ベクトル作成の際、各キーワードの、発話状態における出現回数を書き込むフィールドと、検索された文書データにおける出現回数を書き込むフィールドとは別個のものとする。図３は、本実施の形態のサポートベクトルマシンに入力されるベクトルを例示した図である。例えば、発話状態における出現回数は符号７０１に示すフィールドに書き込み、検索された文書データにおける出現回数は符号７０２に示すフィールドに書き込むようにする。
【００３９】
【表３】
0004755478.tif 000004
【００４０】
対話状態推測部１４６は、これらの情報をもとにサポートベクトルマシンに入力するベクトルを作成する（図３参照）。すなわち、例えば、キーワード「横浜」の割り当て番号は「２」であり、出現回数は「３」なので、左から数えて２番目の位置に「３」を書き込む。他のキーワードについても同様に出現回数を書き込む。また、割り当て番号２,３,５,８以外のキーワードは出現していないので、０とする。同様に、対話状態推測部１４６は、検索された文書データにおける各キーワードの出現回数も書き込む（符号７０２参照）。なお、符号７０２における各キーワードの割り当て番号は、ユーザ発話における出現回数の割り当て番号（表３）とは別個のものを用意する。
【００４１】
対話状態推測部１４６は、このようにして作成したベクトルをサポートベクトルマシンに入力し、ユーザ発話の対話状態を推測する。そして、この推測結果である対話アクションラベルと、入力されたユーザ発話とを応答文生成部１５０に出力する。
【００４２】
対話状態推測部１４６が付与する対話アクションラベルについて説明する。対話アクションラベルは、ユーザ発話とその応答文（ウィザード発話）との対に対して付与されるラベルである。本実施の形態では、ユーザ発話および応答文の種別が、（１）質問か、質問でないかと、（２）質問であるなら、どのような種類の質問か、により以下の表４に示す８種類に分類し、対話アクションラベルを付与する。
【００４３】
【表４】
0004755478.tif 000005
【００４４】
表４において、ＵＴはユーザ発話を示し、ＷＴはウィザード発話（応答文）を示す。また、ＷＨ型質問とは、Ｗｈｏ（誰）、Ｗｈｉｃｈ（どの）、Ｗｈａｔ（何）、Ｗｈｅｎ（いつ）、Ｗｈｅｒｅ（どこ）、Ｈｏｗ（どのように）に関する質問である。例えば、ユーザ発話がＹＥＳ／ＮＯ型質問であり、これに対するウィザード発話が質問でなければ対話アクションラベルは「１」となる。
【００４５】
次に、対話コーパス記憶部１３３に格納される対話コーパスについて説明する。この対話コーパスは、ユーザ発話とその応答文（ウィザード発話）とからなる発話対を書き起こしたテキストデータに、前記した対話アクションラベルを付与したものである。なお、このときの対話アクションラベルの判断は人手により行われる。
以下に、対話コーパスに含まれる発話対の一例を示す。
【００４６】
ＵＴ：５：箱根でホテルに泊まって、温泉でもゆっくりつかりながら休日を楽しみたいんですが、予算が１人２００００円で、その範囲内でいいホテルに、いいホテルがあったら泊まりたいんですが、どういったところがありますか
ＷＴ：：はい温泉の場所にご希望がございますか
【００４７】
前記した例では、ウィザード発話が質問なので、「１から４」の対話アクションラベルは候補から外れる。そして、ウィザード発話がＹＥＳ／ＮＯ型質問なので、「５」の対話アクションラベルが付与される。
【００４８】
なお、この対話コーパスは、既存の形態素解析技術を用いて対話コーパス中の発話を句と単語の単位に分割し、各単語には品詞情報を付与しておく。品詞が名詞、動詞および形容詞のいずれかであるような単語については、文書コーパス記憶部１３２の文書コーパス中での出現回数を付与する。また、固有表現抽出技術（例えば、Hideki Isozaki, Hideto Kazawa: Efficient Support Vector Classifiers for Named Entity Recognition , Proceedings of COLING-2002, pp.390-396, 2002）を用いて固有表現の抽出および固有表現の種類（例えば、人名、地名等）を付与する。また、この対話コーパスにおける発話対は充分多くの数を備えているものとする。
【００４９】
＜応答文生成部＞
応答文生成部１５０は、対話コーパス記憶部１３３の対話コーパスから、応答候補文を抽出する応答文抽出部１５１と、この抽出した応答候補文に修正を加え、修正した応答候補文の中から１つの文を選択する応答文修正部１５２とを含んで構成される。
【００５０】
応答文抽出部１５１は、対話状態推測部１４６から、ユーザ発話と、このユーザ発話の対話アクションラベルとを受け取ると、これらの情報に基づき、このユーザ発話と対話状態が類似しているユーザ発話を対話コーパス記憶部１３３から抽出する。そして、このユーザ発話に対する応答文（ウィザード発話）を応答候補文として抽出し、応答文修正部１５２に受け渡す。つまり、対話コーパスから、入力されたユーザ発話に続く応答文（ウィザード発話）としてふさわしい応答文を応答候補文として抽出する。なお、この応答文抽出部１５１の詳細は、フローチャートを用いて後記する。
【００５１】
ここで、図４を用いて応答文修正部１５２の構成を説明する（適宜図２参照）。図４は、図２の応答文修正部の構成を示すブロック図である。
図４に示すように応答文修正部１５２は、応答文抽出部１５１から出力された各応答候補文における修正箇所を決定する修正箇所決定部１５３と、この各修正箇所における置換候補の語を決定する置換候補決定部１５４と、各応答候補文の修正箇所の語を置換候補の語に置き換えた応答候補文を作成する応答候補文作成部１５５と、作成した応答候補文にスコアを付与するスコア付与部１５６と、作成した応答候補文のうち、最もスコアが高い応答候補文を選択する応答文選択部１５７とを含んで構成される。
これらの各構成要素の詳細は、図７のフローチャートを用いて後記する。
【００５２】
＜処理手順＞
次に、適宜図１〜図４を参照しつつ、図５を用いて応答文生成装置１００の処理手順の概要を説明する。図５は、図２の応答文生成装置の処理手順の概要を示すフローチャートである。
【００５３】
まず、応答文生成装置１００（図２参照）は、システムの初期化を行う（Ｓ４０１）。そして、ユーザ発話入力部１１０は、ユーザ発話の入力を受け付け（Ｓ４０２）、対話状態管理部１４０は、入力されたユーザ発話の対話状態管理を行う（Ｓ４０３）。すなわち、対話状態管理部１４０は、ユーザ発話に含まれるキーワードを抽出し、このキーワードを含む文書データを検索する。次に、キーワードおよびこのキーワードを含む文書データから、このユーザ発話の対話アクションラベルを付与する。そして、応答文生成部１５０は、応答文を生成する（Ｓ４０４）。つまり、応答文生成部１５０はユーザ発話とこのユーザ発話の対話アクションラベルに基づき、対話コーパス記憶部１３３から応答候補文を抽出し、この抽出した応答候補文に修正を加える。そして、この修正した応答候補文にスコアを付与し、最もスコアが高い応答候補文を応答文として選択する。次に、応答文出力部１６０は、選択した応答文を出力し（Ｓ４０５）、Ｓ４０２へ戻る。つまり、次のユーザ発話の入力を受け付ける。
このようにして、応答文生成装置１００は、入力されたユーザ発話に対する応答文を生成し、出力する。
【００５４】
次に、図１〜図４を参照しつつ、図６を用いて図５のＳ４０３の対話状態管理について詳細に説明する。図６は、図５のＳ４０３の対話状態管理の詳細を説明するフローチャートである。
【００５５】
キーワード抽出部１４２は、ユーザ発話入力部１１０から入力されたユーザ発話のテキストデータを形態素解析し、このテキストデータに含まれるキーワードを抽出する（Ｓ５０１）。例えば、キーワード抽出部１４２は、「横浜の観光施設を教えてください」というユーザ発話を形態素解析し、「横浜」、「観光」、「施設」および「教える」というキーワードを抽出する。
【００５６】
次に、キーワード追加部１４３は、ユーザ発話に含まれるキーワードを発話状態記憶部１３１に追加する（Ｓ５０２）。例えば、前記した例でいうと、「横浜」、「観光」、「施設」および「教える」というキーワードを発話状態記憶部１３１に追加登録する。
【００５７】
そして、文書検索部１４４は、発話状態記憶部１３１のすべてのキーワードを含む文書データを文書コーパス記憶部１３２から検索する（Ｓ５０３）。例えば、文書検索部１４４は、発話状態記憶部１３１に「横浜」、「観光」、「施設」および「教える」というキーワードが登録されていれば、このキーワードを含む文書データを検索する。
【００５８】
発話状態更新部１４５は、検索された文書データを発話状態記憶部１３１に出力し（Ｓ５０４）、発話状態を更新する。
【００５９】
対話状態推測部１４６は、発話状態記憶部１３１に記憶された発話状態に基づき、ユーザ発話の対話状態を推測し、このユーザ発話に推測結果を示す対話アクションラベルを付与する（Ｓ５０５）。例えば、ユーザ発話「横浜の観光地を教えてください」の対話アクションラベルとして「３」を付与する。そして、このユーザ発話と、対話アクションラベルを応答文抽出部１５１に受け渡す。
【００６０】
次に、図１〜図６を参照しつつ、図７を用いて図５のＳ４０４の応答文生成について詳細に説明する。図７は、図５のＳ４０４の応答文生成の詳細を説明するフローチャートである。
【００６１】
まず、応答文抽出部１５１は、対話状態推測部１４６からユーザ発話およびこのユーザ発話の対話アクションラベルを受け取ると、これらの情報に基づき対話コーパス（対話コーパス記憶部１３３）から、このユーザ発話に最も近いユーザ発話を検索する（Ｓ６０１）。
【００６２】
つまり、まず応答文抽出部１５１は、対話状態推測部１４６から受け取った対話アクションラベルと同じラベルを持つユーザ発話を検索する。そして、この検索した発話対におけるユーザ発話と、対話状態推測部１４６から受け取ったユーザ発話との類似度を求め、例えば類似度が高いものからＮ個（所定数）のユーザ発話を選択する。なお、ここでのユーザ発話の選択は、類似度が所定の閾値を超えるものを選択するようにしてもよい。
【００６３】
また、ここでの類似度は、例えば距離尺度を用いるようにしてもよい。この距離尺度としては、２つの文字列を入力として、類似度を返すようなもの（Vapnic95のカーネル等）を用いることができる。
例えば、「奈良で温泉旅館を探しています」という発話と「京都で温泉旅館を探しています」という発話とは、「奈良で温泉旅館を探しています」という発話と「週末のパッケージツアーを探しています」という発話よりも類似しているので、距離尺度は後者の対よりも、前者の対の方が小さい値となる。したがって、Ｓ６０１において応答文抽出部１５１が類似度として前記した距離尺度を用いるときには、対話距離尺度が最も小さいものからＮ個のユーザ発話を選択する。
そして、応答文抽出部１５１は、このユーザ発話に対する応答文を対話コーパス記憶部１３３から読み出す。
【００６４】
次に、修正箇所決定部１５３が、Ｓ６０１で選択したユーザ発話の応答文の修正箇所（Pi1,…,Pimi）を決定する（Ｓ６０２）。そして、決定した応答文の修正箇所をメインメモリ２０（図１参照）等に記憶しておく。
【００６５】
ここで、図７において
mi：ｉ番目の応答文での修正箇所の数
Pij：ｉ番目の応答文でのｊ番目の修正箇所
ｉ：発話のインデックス
ｊ：修正箇所のインデックス
である。
まず、修正箇所決定部１５３は、ｉ＝１を代入して修正箇所を決める。
【００６６】
なお、ここでの修正箇所の決定は、まず、応答文の品詞が名詞、動詞および形容詞であるような単語の位置を求め、その単語の対話コーパス中での出現回数（出現頻度）が、所定の閾値よりも低いような単語の位置とする。もし、この単語が対話コーパス中に出現しない単語であれば、文書コーパス（文書コーパス記憶部１３２）における出現回数（出現頻度）を用いるようにする。つまり、修正箇所決定部１５３は、応答文として頻繁に用いられる単語（文）は残し、あまり頻繁に用いられない単語は、修正対象（置換対象）とする。
例えば、対話コーパスから「どういった観光施設をお探しですか」という応答文が抽出されたとき、「観光施設」という単語の出現回数（出現頻度）が所定の閾値よりも低ければ、この単語を修正箇所として決定する。つまり「どういった〜をお探しですか」という頻繁に使われる語の集合（文）を残すようにする。
【００６７】
次に、置換候補決定部１５４は、Ｓ６０２で決定した修正箇所（Pij）の置換候補（Sij1 , … ,Sijl）を選択する（Ｓ６０３）。すなわち、Ｓ６０２で決定した応答文の修正箇所の単語の品詞や、その単語が固有表現（固有名詞や数を表す名詞）であるか否か、固有表現の場合はその種類に関する情報を利用して、発話状態記憶部１３１の発話情報のキーワードから、これらの情報が最も似た単語を置換候補として選択する。そして、この置換候補の単語をメインメモリ２０に記憶しておく。まず、修正箇所決定部１５３はｊ＝１を代入して置換候補を選択する。
【００６８】
次に、ｊ＜miであるとき（Ｓ６０４のＹｅｓ）、つまりｉ番目の応答文のすべての修正箇所（１番目からmi番目）について置換候補を選択していないとき、置換候補決定部１５４はｊの値をインクリメントして（Ｓ６０５）、Ｓ６０３の処理を実行する。そして、ｊ＝miのとき（Ｓ６０４のＮｏ）、つまり置換候補決定部１５４がｉ番目の応答文のすべての修正箇所について置換候補を選択したとき、Ｓ６１１へ進む。Ｓ６１１では、ｉ＜Ｎであるとき（Ｓ６１１のＹｅｓ）、つまり修正箇所決定部１５３が、Ｓ６０１で選択したＮ個のユーザ発話の応答文のうち、まだ修正箇所を決定しない応答文があるとき、ｉの値をインクリメントして（Ｓ６１２）、Ｓ６０２の処理を実行する。そして、ｉ＝Ｎのとき（Ｓ６１１のＮｏ）、つまりＳ６０１で選択したＮ個のユーザ発話の応答文のすべての修正箇所を決定したとき、応答候補文作成部１５５はメインメモリ２０に記憶された各応答文の修正箇所と、その修正箇所に置換する置換候補の単語を読み出し、読み出した内容にしたがって各応答文の修正を行う（Ｓ６２１）。このようにして、応答候補文作成部１５５は、各応答文の修正箇所に各置換候補の単語に置換した応答候補文のリストを作成する。
【００６９】
次に、スコア付与部１５６は、応答候補文作成部１５５が作成した各応答候補文にスコアを付与する（Ｓ６２２）。このときのスコアは、各応答候補文にキーワード（発話状態記憶部１３１に登録されているキーワード）がいくつ含まれているかによって決定する。そして、最もスコアの高い応答候補文を応答文として出力する（Ｓ６２３）。つまり、応答文選択部１５７は、このスコアが最も高い応答候補文を応答文として選択し、応答文出力部１６０は、この選択された応答文を出力する。すなわち、応答文出力部１６０は、今までのユーザ発話に含まれているキーワードを、より多く含んでいる応答文を出力する。
【００７０】
応答文生成装置１００は、以上のような手順により、入力されたユーザ発話に対する応答文を生成し、出力する。
このように本実施の形態の応答文生成装置１００は、従来技術のように複雑なルールを備えるバックエンドを用いなくても、ユーザ発話に対する応答文を作成し、出力することができる。
【００７１】
本実施の形態に係る応答文生成装置１００は、前記したような処理を実行させる応答文生成プログラム１０１によって実現することができ、このプログラムをコンピュータによる読み取り可能な記憶媒体（ＣＤ−ＲＯＭ等）に記憶して提供することが可能である。また、そのプログラムを、インターネット等のネットワークを通して提供することも可能である。
【図面の簡単な説明】
【００７２】
【図１】本実施の形態の応答文生成装置の構成を示すブロック図である。
【図２】図１の応答文生成装置を機能展開して示したブロック図である。
【図３】本実施の形態のサポートベクトルマシンに入力されるベクトルを例示した図である。
【図４】図２の応答文修正部の構成を示すブロック図である。
【図５】図２の応答文生成装置の処理手順の概要を示すフローチャートである。
【図６】図５のＳ４０３の対話状態管理の詳細を説明するフローチャートである。
【図７】図５のＳ４０４の応答文生成の詳細を説明するフローチャートである。
【符号の説明】
【００７３】
１０    ＣＰＵ（Central Processing Unit）
２０    メインメモリ
５０    入出力インターフェース
１００  応答文生成装置
１０１  応答文生成プログラム
１１０  ユーザ発話入力部
１３０  記憶部
１３１  発話状態記憶部
１３２  文書コーパス記憶部
１３３  対話コーパス記憶部
１４０  対話状態管理部
１４１  対話状態管理モジュール
１４２  キーワード抽出部
１４３  キーワード追加部
１４４  文書検索部
１４５  発話状態更新部
１４６  対話状態推測部
１５０  応答文生成部
１５１  応答文抽出部
１５２  応答文修正部
１５３  修正箇所決定部
１５４  置換候補決定部
１５５  応答候補文作成部
１５６  スコア付与部
１５７  応答文選択部
１５８  応答文生成モジュール
１６０  応答文出力部
【図１】
0004755478.tif 000006
【図２】
0004755478.tif 000007
【図３】
0004755478.tif 000008
【図４】
0004755478.tif 000009
【図５】
0004755478.tif 000010
【図６】
0004755478.tif 000011
【図７】
0004755478.tif 000012