説明

文生成装置及びプログラム

【課題】文生成に用いるテンプレートの再利用性を向上させ、条件や参照先の値に応じてきめ細かな文を生成することができる文生成装置及びプログラムを提供する。
【解決手段】本発明の文生成装置は、概念や概念間の関係を示すドメイン知識を体系的に表現したオントロジーと、概念及び概念間の関係に関連付けられたものであって、少なくとも、生成する文の変数とする参照先情報の参照先と所定の文字列とを含む1又は複数の可変部を有する文テンプレートとを格納するオントロジー格納手段と、文を生成する際、オントロジー格納手段から生成する文に関する概念に関連する文テンプレートを選択する文テンプレート選択手段と、選択された文テンプレートの各可変部に含まれている参照先に基づいて取得した参照先情報を展開し、参照先情報の直前及び又は直後に文字列を合成して出力文を生成する文生成手段を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文生成装置及びプログラムに関し、例えば、条件に応じて様々な文を生成する文生成装置及びプログラムに適用し得るものである。
【背景技術】
【0002】
例えば、対話システムや文書作成システム等では、ユーザに対する出力文を生成することが必要となる。従来、文生成には予め設定したテンプレートが用いられている。従来のテンプレートは、予め用意された語や文章等のテキストが設定された固定部と、語等が変数として設定される可変部とから構成されている。
【0003】
テンプレートの可変部には、変数として設定される値(以降、参照先情報ともいう)を設定するために、その参照先を示すポインタが指定される。そして、文生成の際に、そのポインタを辿り、参照先にある参照先情報を取得し、この可変部に参照先情報を設定する。参照先情報としては、例えば、ユーザとの対話から得られた情報や、ユーザIDに関連付けられたユーザプロフィールその他データベースに格納されている各種情報がある。そして、固定部のテキストと可変部の参照先情報とが合成されて文が生成されて出力される。
【0004】
特許文献1には、雛形データと電子メールアドレスに基づいて、データベースから抽出した情報を組み合わせて、電子メール文を自動作成する文書生成装置について記載されている。
【0005】
また、本願発明者らは、参考文献(特願2009−222300号)にて、対象者個別のデータを参考にして、事前に用意したテンプレートやメッセージに、対象者個別のデータを取り込んだり、事前に用意したメッセージや、対象者個別のデータ以外の情報を、関連度のデータを用いて出力文書に取り込んだりする文書生成装置を提案している。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2000−222300号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、従来の文生成方法では、次のような問題が生じ得る。
【0008】
まず、テンプレートの再利用性が低いという問題が生じ得る。一般的に、テンプレートは、文を生成する場所や目的等に合わせて固定的に定義される。つまり、1つのテンプレートは、1つの用途にしか利用できない。そのため、その場所や目的等が異なれば、当該テンプレートを他の用途に利用できず、再利用性が低い。
【0009】
また、文生成能力が低いという問題も生じ得る。これは、文生成の際に、参照先に指定した値(参照先情報)が存在しない場合を考慮していないからである。参照先に値が存在しない場合、従来、参照先情報が欠けた状態の文を生成するか、又は生成文全体を出力しない、のいずれかにほかならない。また、条件や参照先の値に応じて文を出し分ける仕組みがないので、きめ細かな文生成が行えない。
【0010】
そこで、本発明は、テンプレートの再利用性を向上させ、条件や参照先の値に応じてきめ細かな文を生成することができる文生成装置及びプログラムを提供する。
【課題を解決するための手段】
【0011】
かかる課題を解決するために、第1の本発明の文生成装置は、(1)概念や概念間の関係を示すドメイン知識を体系的に表現したオントロジーと、概念及び概念間の関係に関連付けられたものであって、少なくとも、生成する文の変数とする参照先情報の参照先と所定の文字列とを含む1又は複数の可変部を有する文テンプレートとを格納するオントロジー格納手段と、(2)文を生成するときに、オントロジー格納手段から生成する文に関する概念に関連する上記文テンプレートを選択する文テンプレート選択手段と、(3)文テンプレート選択手段により選択された文テンプレートの各可変部に含まれている参照先に基づいて取得した参照先情報を展開し、参照先情報の直前及び又は直後に文字列を合成して出力文を生成する文生成手段とを備えることを特徴とする。
【0012】
第2の本発明の文生成プログラムは、コンピュータが、概念や概念間の関係を示すドメイン知識を体系的に表現したオントロジーと、概念及び概念間の関係に関連付けられたものであって、少なくとも、生成する文の変数とする参照先情報の参照先と所定の文字列とを含む1又は複数の可変部を有する文テンプレートとを格納するオントロジー格納手段を有するものであり、コンピュータを、(1)文を生成するときに、オントロジー格納手段から生成する文に関する概念に関連する文テンプレートを選択する文テンプレート選択手段、(2)文テンプレート選択手段により選択された文テンプレートの各可変部に含まれている参照先に基づいて取得した参照先情報を展開し、参照先情報の直前及び又は直後に文字列を合成して出力文を生成する文生成手段として機能させることを特徴とする。
【発明の効果】
【0013】
本発明によれば、テンプレートの再利用性を向上させ、条件や参照先の値に応じてきめ細かな自然な文を生成することができる。
【図面の簡単な説明】
【0014】
【図1】実施形態の対話システムの構成を示す構成図である。
【図2】実施形態のユーザデータの構成を示す構成図である。
【図3】実施形態のプロパティ定義の構成を示す構成図である。
【図4】実施形態のクラス定義の構成を示す構成図である。
【図5】実施形態のテンプレートの構成を示す構成図である。
【図6】実施形態の対話システムの対話処理の動作を示すフローチャートである。
【図7】実施形態の文解析部による文解析結果を説明する説明図である。
【図8】実施形態の文生成処理の動作を示すフローチャートである。
【図9】実施形態の変数指定部に指定する変数の一例を説明する説明図である。
【図10】実施形態のクラス定義の構成例を示す構成図である。
【図11】実施形態により生成された文を示す図である。
【図12】変形実施形態の変数記述部の構成を示す構成図である。
【発明を実施するための形態】
【0015】
(A)実施形態
以下では、本発明の文生成装置の実施形態について、図面を参照しながら説明する。この実施形態では、例えば、対話システムにおいて用いられる文生成装置に、本発明を適用する場合の実施形態を一例として説明する。
【0016】
(A−1)実施形態の構成
(A−1−1)対話システムの構成
図1は、この実施形態に係る対話システムの構成を示す構成図である。図1において、実施形態の対話システム5は、入出力装置1、対話エンジン2、記憶装置3を少なくとも有して構成される。
【0017】
入出力装置1は、入力部11と出力部12とを有する。入力部11は、ユーザにより入力されたテキストや音声等の情報を取り込み、入力情報を対話エンジン2に与えるものである。入力部11は、例えば、キーボード、マウス、音声入力装置(例えばマイク等)などが該当する。また、出力部12は、対話エンジン2からの生成された文を出力するものであり、例えば、ディスプレイ、音声出力装置(例えばスピーカ等)などが該当する。なお、入出力装置1は、音声合成・認識部等を備えるようにしてもよい。
【0018】
記憶装置3は、所定のデータを記憶する記憶領域である。記録装置3は、対話エンジン2の制御の下、ユーザとの対話で得られたユーザ情報であるユーザデータ31と、対話に必要なドメイン知識であるオントロジー32とを記憶するものである。
【0019】
図2は、ユーザデータ31の一例を示す構成図である。図2に示すように、ユーザデータ31は、対話に係る項目と、その項目についてユーザから得られた情報(値)とを対応付けられたものである。例えば、図2において、ユーザとの対話の中で、ユーザに年齢を問い合わせ、ユーザから36歳との回答が得られると対話エンジン2による処理を受けて、「項目:年齢」に「36歳」を対応付けて格納する。
【0020】
オントロジー33とは、特定の領域についての知識(ドメイン知識)、複数の領域にまたがる知識、あるいは、汎用の知識を定義し、体系化したものである。領域とは、医学、工学、不動産等の分野であり、知識とは、用語・語彙とその意味、他の用語・語彙との関係を示す。オントロジー33は、プロパティ定義321とクラス定義322とを格納する。
【0021】
プロパティ定義321とは、対話の流れ(シナリオ)を記述したものである。プロパティ定義321は、対話エンジン2がどのような質問をどの順序で行うかを規定するものである。
【0022】
図3は、プロパティ定義321の構成例を示す構成図である。図3に示すように、プロパティ定義321は、定義域、プロパティ、値域、オプション情報を項目として有する。
【0023】
図3は、例えば「人間」を頂点とした各クラスのプロパティ関係を示したものである。例えば、定義域「人間」と値域「年齢」とのクラス間のプロパティ関係が「年齢」という関係であることを示す。
【0024】
オプション情報には、必須の質問かどうかを決定する度合いを示す重要度、質問の順序を決定する度合いを示す優先度が設定されている。例えば、重要度が「1」の場合には、ユーザに対して行う必須の質問とする。また例えば、優先度は、「1」が最も優先度が高いものであり、優先度が高いものから順に質問を行う。
【0025】
また、オプション情報には、対話エンジン2が生成する質問文や、質問文の前に出力するつなぎ文等が設定されている。なお、図3には図示しないが、質問文、つなぎ文以外に、オプション情報は、ユーザからの回答文を解析し、その文解析結果に基づいて生成する受け止め文、対話エンジンが円滑に対話を進行するための各種機能を設けるようにしてもよい。
【0026】
クラス定義322とは、用語・語彙の概念を規定したものである。クラス定義322は、各クラスの上位下位関係と、クラスに付随する各種情報(オプション情報)とを設定することができる。
【0027】
図4は、クラス定義322の構成を示す構成図である。図4において、クラス定義322は、上位クラス、クラス、受け止め文を項目とする場合を例示する。なお、受け止め文は、クラスに付随するオプション情報の一例である。
【0028】
「上位クラス」には、「クラス」に定義される値に対して、上位の関係にある値が規定される。例えば、「クラス:リストラ」に対して上位の関係にある値として「上位クラス:転職理由」が規定される。また、「受け止め文」は、後述するように、ユーザからの回答文を解析し、その文解析結果から「クラス:リストラ」を取得した場合に、その「リストラ」に関するユーザ回答に対して、システムが出力する文が規定されている。
【0029】
対話エンジン2は、記憶装置3に記憶されるオントロジー32を用いて対話処理を実行するものである。対話エンジン2は、対話制御部21、文解析部22、文生成部23を少なくとも有する。
【0030】
対話制御部21は、プロパティ定義321を参照して、文解析部22、文生成部23とのやり取りを介して、対話の進行を管理・制御するものである。また、対話制御部21は、対話により取得したユーザ情報をユーザデータ31に格納するものである。
【0031】
文解析部22は、オントロジー32を参照して、ユーザ発話文を解析し、発話文中のクラスやユーザの意図、感情、その他の情報を取得するものである。
【0032】
文生成部23は、プロパティ定義321に規定されている質問文やつなぎ文など、又クラス定義322に規定されている受け止め文などに基づき変数の展開などを行い、システム出力文を生成するものである。
【0033】
(A−1−2)テンプレートの構成
次に、文生成処理の対象となるテンプレートの構成について図面を参照しながら説明する。なお、この実施形態のテンプレートは、対話システム5が出力するすべての文(例えば、質問文、つなぎ文、受け止め文等)に適用することができる。
【0034】
図5は、この実施形態のテンプレートの構成を説明する説明図である。図5(A)に示すように、テンプレートは、文字列記述部61と変数記述部62とを有して構成される。
【0035】
なお、図5(A)では、テンプレートが文字列記述部61及び変数記述部62を有する場合を例示するが、テンプレートは、文字列記述部61のみ、変数記述部62のみとしてもよい。
【0036】
テンプレートは、可変部である変数記述部62に、参照先へのポインタだけでなく、参照先とともに出力する文字列(テキスト)を記述できるようにする。また、変数記述部62で合成する文字列を生成するために、条件を指定し、その条件に合わせて文を出し分ける仕組みを導入する。これにより、参照先が存在しない場合でも、不自然な文が生成されなくなる。また、条件に合わせて文を出し分けることが容易におこなえるようになる。
【0037】
また、可変部である変数記述部62の参照先に、別のテンプレートも指定できるようにする。参照先には、値へのポインタだけでなく、別途定義したテンプレートへのポインタを指定することができる。これにより、複数のテンプレートを組み合わせたテンプレートも定義可能で、テンプレート記述の自由度が増すほか、テンプレートの有効活用が可能になる。
【0038】
文字列記述部61には、語や文章等の文字列が記述される。変数記述部62には、変数の参照先や条件等が記述される。変数記述部62には、例えば、ユーザデータ31、オントロジー32など、参照先情報へのポインタを記述することができる。また、変数記述部62には、他のテンプレートを記述するようにしてもよい。つまり、テンプレート内に、1又は複数のテンプレートが記述されるようにしてもよい。
【0039】
図5(B)に示すように、変数記述部62は、変数指定部621、変数前文字列指定部622、変数後文字列指定部623、条件指定部624を有して構成される。
【0040】
変数指定部621は、参照先のポインタが設定される。例えば、ユーザデータ31に格納されるユーザ情報を参照先情報とする場合には、ユーザデータ31に格納される値の参照先が設定される。
【0041】
変数前文字列指定部622は、変数を展開した文字列の前に出力する必要な文字列が設定される。また、変数後文字列指定部623は、変数を展開した文字列の後に出力する必要な文字列が設定される。
【0042】
なお、変数前文字列指定部622、変数後文字列指定部623には、必ず文字列が指定されるわけではなく、変数を展開して設定される文字列に応じて必要なものが指定される。従って、変数前文字列指定部622、変数後文字列指定部623の双方に文字列を指定してもよいし、いずれかのみに文字列を指定するようにしてもよい。
【0043】
また、変数指定部621で指定された参照先情報が参照先にない場合、変数指定部621に変数は設定されず、さらに、変数前文字列指定部622、変数後文字列指定部623にも文字列が生成されない。
【0044】
条件指定部624には、変数記述部62のテキストを生成する条件が記述される。条件指定部624には、必ず条件が設定されるというのではなく、必要に応じて設定することができる。例えば、変数指定部621で指定される値や対話の状況等についての条件を指定し、その条件に合致した場合のみ、変数、変数前文字列、変数後文字列を生成する。
【0045】
図5(C)は、テンプレートの一例を示す構成図である。図5(C)において、実線下線部が文字列記述部61であり、点線下線部が変数記述部62である。
【0046】
例えば、文字列記述部61の「なるほど。」に続いて、変数記述部62が設定され、更にこれに続いて文字列記述部61の「不安な気持ちになるのは当然だと思います。」が設定されている。
【0047】
図5(C)に例示する変数記述部62は、「{/User/年齢,,”ということで”,/User/年齢>35}」が記述される。条件指定部624に設定されている条件は、「/User/年齢>35」である。これは、ユーザデータ31に格納されているユーザ情報より、当該ユーザの年齢が35歳を超えるときに、変数記述部62に変数を展開した文字列を生成するという条件である。
【0048】
変数指定部621には、変数「/User/年齢」が設定されている。従って、文生成部23は、この「/User/年齢」を参照先として値を取得する。そして、文生成部23は、取得した値が、条件指定部624に設定される条件を満たしているか否かを判断する。
【0049】
変数前文字列指定部622の指定がない「空文字列」であるので、変数前文字列は生成しない。変数後文字列指定部623には「ということで」という文字列が指定されているので、変数指定部621の値の文字列の後に「ということで」という文字列を生成する。
【0050】
なお、変数指定部621には、直近の対話から文解析で取得した値のほか、ユーザデータ31に格納されている特定のデータの値や段落作成クラスで定義されている文テンプレートを指定することができる。
【0051】
(A−2)実施形態の動作
次に、実施形態の対話システム5における処理の動作について図面を参照しながら説明する。以下では、ユーザとの対話により転職先等を紹介するシステムに、実施形態の対話システム5を利用する場合を例示する。
【0052】
(A−2−1)全体処理の動作
まず、対話システム5における対話処理の全体的な処理について図6を参照しながら説明する。図6は、実施形態の対話システム5における対話処理の動作を示すフローチャートである。
【0053】
図6において、対話システム5が起動すると、対話エンジン2がプロパティ定義321を参照して、システム開始の質問文を出力する(S101)。
【0054】
このとき、対話エンジン2において、対話制御部21は、プロパティ定義321を参照して、現在のポインタを定義域に持つプロパティの中で優先度が最も高いものを選択する。例えば、初期動作の場合、クラスの頂点が定義域となるようにポインタを設定したり、初期動作専用の定義域にポインタを設定したりしてもよい。文生成部23は、対話制御部21により選択されたプロパティのオプション情報として格納されている質問文を出力文として出力する。
【0055】
対話エンジン2から出力された質問文に対してユーザは回答(例えば発話)する(S102)。入出力装置1は、そのユーザからの入力情報を入力する。入出力装置1は、ユーザ入力情報に基づくユーザ回答文を対話エンジン2に与える。
【0056】
ここで、ユーザ回答は、例えば、ユーザが、キーボードやマウス等の入力部11を介してテキスト入力をしたり、またマイク等の入力部11を介して音声入力したりすることができる。なお、入出力装置1は音声認識機能を有するものとしてもよく、入力された音声を認識し、その認識結果をテキスト情報に変換して対話エンジン2に与えるようにしてもよい。さらに、ユーザ入力の方法は、特に限定されるものではなく、種々の方法を広く適用することができ、例えば、質問文に対する回答として選択肢や番号などを選ぶ形式であってもよい。このような場合でも、対話システム5全体で統一する必要はなく、質問の種類によって自由に設定できる。
【0057】
対話エンジン2では、文解析部22が、ユーザ回答文の文解析を行う(S103)。文解析部22は、ユーザ回答文に対して、文を構成する単語の解析を行う形態素解析、文の係り受け構造を解析する構文解析等を行う。なお、形態素解析、構文解析の方法は、既存の技術を広く適用することができ、例えば、文解析部22は、形態素解析辞書や構文解析辞書(図1に図示しない)を用いて、オントロジー32に登録されたクラスを示す表現が、適切な構文木のノードとして出現していれば、その表現をクラスとして抽出する。
【0058】
さらに、文解析部22は、意図解析機能を有しており、意図解析辞書(図1に図示しない)を参照し、文解析結果に基づいてユーザの意図を同時に解析する。例えば、文解析部22は、意図解析によって、極性(肯定/否定)、優先度(感情の強さ)、確度(意志の強さ)などの判定を行い、その情報をクラスに関連付けて抽出する。
【0059】
図7は、文解析部22による文解析結果を説明する説明図である。図7において、例えば、「営業がいいです。」というユーザ回答文1101が入力されたものとする。文解析部22は、このユーザ回答文1101を形態素解析して、「営業/が/いい/です/。」という結果1102を得る。
【0060】
また、文解析部22は、形態素解析結果1102を用いて、単語の係り受けを解析して、構文解析結果1103を得る。このとき、「私」はユーザ回答文に含まれていないが、文解析部22が構文解析時に補ったものである。
【0061】
文解析部22は、図示しない意図解析辞書を参照し、構文解析結果から得られるクラスに対するユーザの意図を解析する。例えば、構文解析結果1103から得られるクラス「営業」に対して「いい」が係り受けの関係にあるから、意図解析辞書を参照して、「確度=確実」、「極性=肯定」、「優先度=普通」の意図解析結果1104が得られる。
【0062】
ほかの例の場合、例えば、ユーザ回答文1105「営業は絶対いやです。」の場合、「営業/は/絶対/いや/です/。」の形態素解析結果1106及び構文解析結果1107が得られる。この場合、クラス「営業」に対して、「いやだ」が係り受けるので「確度=確実」、「極性=否定」が解析され、さらに「絶対」が「いやだ」に係り受けるので、「確度=確実」、「優先度=高」の意図解析結果1108が得られる。
【0063】
文解析部22による文解析結果に基づいてクラス及び意図が抽出されると(S104))、そのクラス及び意図がユーザデータ31に格納される(S105)。例えば、図7のユーザ回答文1101の場合、クラス「営業」及び意図として「確度=確実」、「極性=肯定」、「優先度=普通」がユーザデータ31に格納される。
【0064】
なお、クラス及び意図が抽出されない場合、対話制御部21は、S108に移行し、プロパティ定義321から次のプロパティを選択する。
【0065】
対話制御部21は、クラス定義322を参照して、ユーザ回答文から取得したクラスに関連付けられた文(受け止め文)があるか否かを判断する(S106)。
【0066】
そして、受け止め文がある場合、文生成部23は、受け止め文を作成して入出力装置1に対して出力する(S107)。一方、クラスに関連付けられた受け止め文がない場合、S108に移行して、次の質問文を選択する。なお、クラス定義322を参照して文生成部23が文を生成する詳細の方法については後述する。
【0067】
また、対話制御部21は、1つのユーザ回答文から、複数のクラスを取得することもできる。その場合、対話制御部21は、クラス定義322を参照して、複数のクラスのそれぞれについて、すべての受け止め文を順番に出力するようにしてもよい。例えば、受け止め文を出力する順番は、特に限定されないが、例えば、プロパティ定義321に定義されているプロパティの優先度の順としてもよい。
【0068】
また、すべての受け止め文を出力する場合に限らず、例えば、文中の最初に出現するクラスの受け止め文のみを出力するようにしてもよいし、また、例えば分野ごとの語彙分析により別途定義したものを利用して、重要度の高いクラスの受け止め文を出現するようにしてもよい。
【0069】
対話制御部21は、プロパティ定義321を参照して、次に優先度の高いプロパティを選択し(S108)、文生成部23が選択されたプロパティのオプション情報に定義された新たな質問文を出力する(S109)。次の質問がなければ、処理を終了する。
【0070】
(A−2−2)文生成処理
次に、実施形態の対話システム5における文生成部23による文生成処理の動作について、図面を参照しながら詳細に説明する。
【0071】
図8は、この実施形態の対話システム5における文生成処理の動作を示すフローチャートである。
【0072】
まず、文生成部23は、対話制御部21により指定されたプロパティのオプション情報に定義された文のテンプレートを受け取る(S801)。
【0073】
ここで、文は、例えば、質問文、つなぎ文、受け止め文など全ての文のテンプレートを適用することができる。文のテンプレートについては、図5の例を用いて説明する。
【0074】
次に、文生成部23は、文のテンプレートの構成に基づいて、当該テンプレートに変数記述部62が設定されているか否かを判断し(S802)、変数記述部62が設定されていない場合、S808に移行し、文生成部232は、文字列記述部61の文を生成し、処理を終了する。
【0075】
一方、変数記述部62が設定されている場合、S803に移行する。S803では、文生成部23が、変数記述部62の条件指定部624の条件を調べ、対話の状況やユーザデータの内容が条件指定部624の条件に合致するか否かを判断する(S803)。
【0076】
ここで、条件指定部624は、条件に応じて変数、変数前文字列、変数後文字列の出力の制御をするために記述されるものであるが、例えば、条件に関係なく全ての場合に、変数等を出力する場合、この条件指定部624において条件の指定をしないようにしてもよい。
【0077】
S803において、条件指定部624の条件に合致しない場合、変数指定部621の値を削除し(S809)、S807に移行し、次の変数記述部62の処理へ進む。
【0078】
一方、S803において、条件指定部624の条件に合致する場合、又は、条件指定部624に条件が設定されていない場合、変数指定部621の参照先にアクセスし、参照先の値を展開する(S804)。
【0079】
ここで、参照先の値としては、例えば、直近の対話から得られた文解析結果で取得した値、ユーザデータ31のパスに格納されたユーザ情報(データ)、変数指定部621で指定された段落作成クラスの文テンプレート等を適用することができる。変数指定部621で指定された段落作成クラスの文テンプレートについては、後述するが、当該テンプレート中に、更に条件が指定されたテンプレートを参照先として指定するようにしてもよい。
【0080】
変数指定部621の変数の参照先が別のテンプレートの場合(S805)、再帰的に文生成部23の文生成処理を呼び出し、参照先のテンプレートの文生成処理を行う(S810)。
【0081】
S806では、文生成部23は、変数記述部62の要素(すなわち、参照先の値、変数前文字列、変数後文字列)を合成し、変数記述部62の文字列を生成する(S806)。
【0082】
ここで、要素の生成順序は、変数前文字列指定部622の文字列、変数指定部621の文字列、変数後文字列指定部623の文字列の順である。変数指定部621の文字列が空の場合は、変数前文字列、変数後文字列ともに生成しない。
【0083】
文生成部23は、テンプレート中のすべての変数記述部62に対して、S802〜S806、S809〜S810の処理を繰り返し行い、すべての変数記述部62の処理が終えると(S807)、文字列記述部61のテキストと変数記述部62のテキストを合成して、文を生成する(S808)。
【0084】
例えば、図5(C)の例の場合、条件指定部624に指定されている条件は、「/User/年齢>35」である。これは、ユーザの年齢が35歳を超えていることを条件とする。
【0085】
文生成部23は、ユーザデータ31を参照してユーザの年齢を判断する。このとき、例えば、図2に例示するユーザデータであるとすれば、ユーザの年齢は「36歳」であるから条件指定部624に指定された条件を満たすと判断する。
【0086】
文生成部23は、変数指定部621に指定されている変数「/User/年齢」を参照先として、ユーザデータ31から「36歳」という値(参照先情報)を取得する。
【0087】
次に、図5(C)の例では、変数前文字列指定部622の指定がないので、文生成部23は変数前文字列を生成しない。また、変数後文字列指定部623には、「“ということで”」という文字列が指定されているので、変数指定部621の値「36歳」の後に、「ということで」という文字列を生成する。
【0088】
これにより、文生成部23は、変数記述部62の文字列として、「なるほど。36歳ということで不安な気持ちになるのは当然だと思います。」を生成する。
【0089】
なお、ユーザ年齢が「35歳」以下である場合、条件指定部624の条件に合致しないので、文生成部23は、変数指定部621、変数前文字列指定部622、変数後文字列指定部623で指定された文字列を生成しない。その結果、文生成部23は、「なるほど。不安な気持ちになるのは当然だと思います。」を生成する。
【0090】
ここで、上述したように、変数指定部621で指定する値は、例えば、直近の対話から得られた文解析結果で取得した値、ユーザデータ31のパスに格納されたユーザ情報(データ)、変数指定部621で指定された段落作成クラスの文テンプレート等を適用することができる。これは、変数指定部621で設定する変数によりどの変数を指定するかを決定することができる。
【0091】
図9は、変数指定部621に指定する変数の一例を説明する説明図である。図9では、変数名として、VALUE701、MATCHED_COUNT702、ユーザデータパス703、段落作成クラス704の4種類を例示する。変数名は、これに限定されるものではなく、システムの用途によって設定することができる。
【0092】
VALUE701は、直前の対話で取得したクラスである。例えば、転職理由を聞くシステム質問に対して、ユーザが「リストラにあいました」と回答した場合、VALUE=「リストラ」となる。
【0093】
MATCHED_COUNT702は、現在のユーザデータ31で検索対象のデータベース(図1では図示しない)を検索した結果、マッチしたデータの数である。主に、マッチするデータの数によって生成する文を変えたい場合に、条件指定部624に記載する。
【0094】
ユーザデータのパス703は、ユーザデータ31に格納された特定のデータの値を参照するパスである。例えば、図2のユーザデータ31で転職の理由を参照したい場合は、変数指定部621に「/User/転職のきっかけ」と記述すれば、参照先の値である「リストラ」が生成される。
【0095】
段落作成クラス704は、文テンプレートを定義するクラスである。段落作成クラスは一般のクラスとは異なり、回答文からのクラス抽出の対象とはならない。例えば図4では、段落作成クラスおよび段落作成クラスのサブクラスについては、文テンプレートを定義していることを明確にする目的でクラス名の先頭に「%」をつける(以下同様とする)。
【0096】
次に、図2、図3、図4、図10を用いて、テンプレートを用いた文の生成処理の動作の一例を説明する。なお、文生成処理は、図8に例示するフローチャートによる。
【0097】
ここでは、図3の405の「転職のきっかけ」の質問文に対する回答としてユーザから「リストラ」が取得された場合の受け止め文を生成する場合を例示する。
【0098】
図10は、クラス定義の構成例を示す構成図である。図10は、図4に例示したクラス定義の構成と同じであるが、その内容が異なる。つまり、図4及び図10のクラス定義は、上位クラス、クラス、クラスに対応付けられた文テンプレートから構成される。クラスの上位下位関係はオントロジー32内のクラス定義322全体で体系化されているものとする。
【0099】
「転職のきっかけ」の質問文に対する回答文が、入出力装置1から対話エンジン2に与えられる。対話エンジン2では、文解析部22が文解析を行う。その文解析結果から、「リストラ」クラスが取得される。
【0100】
文解析部22から「リストラ」クラスを取得すると、対話制御部21は、ユーザデータ31の「転職のきっかけ」の値として、「リストラ」を格納する。また、対話制御部21は、図4に例示するクラス定義の「リストラ」のデータ501を参照し、受け止め文のテンプレート「{%いたわりの受け止め文}」を取得する(S801)。
【0101】
「リストラ」のデータ501のテンプレートは、変数記述部62のみで構成されており(S802)、条件指定部624には何も記述がない(S803)。
【0102】
そのため、文生成部23は、変数指定部621で指定された参照先「%いたわりの受け止め文」のクラス定義901(図10のクラス定義)を参照する(S804)。
【0103】
この場合、受け止め文は、4個の変数記述部62「{%うなづき}」「{%いたわり}」「{%年齢ごとのキャリア状況の引用節}」「{/User/ライフイベント,””,”もあり”}」と、文字列記述部61「ご不安や悩みも大きいとお察しします。」から構成されている。
【0104】
また、クラス定義901の受け止め文は、参照先がテンプレートであるから(S805)、文生成部23は文生成処理を呼び出し(S810)、それぞれの変数記述部62に対して文生成処理を繰り返し行う。
【0105】
例えば、「{%うなづき}」、「{%いたわり}」のそれぞれについては、文生成部23は、図10のクラス定義903、904を参照する(S801)。クラス定義903、904の受け止め文は、「なるほど。」、「それは大変でしたね。」であり、変数記述部62がないので、この「なるほど。」、「それは大変でしたね。」を、変数「{%うなづき}」、「{%いたわり}」と置き換える(S806)。
【0106】
「{%年齢ごとのキャリア状況の引用節}」について、文生成部23は図10のクラス定義906を参照し、受け止め文テンプレートには、以下の3個の変数記述部62が定義されている(S801〜S802)。
【0107】
{%29歳以下のキャリア状況,“”,“”,/User/年齢<=29}…(1)
{%30−45歳のキャリア状況,“”,“”,/User/年齢>=30&&User/年齢<=45}…(2)
{%46歳以上のキャリア状況,“”,“”,/User/年齢>=46}…(3)
上記(1)〜(3)の変数記述部62は、下線で示す条件指定部624の条件が異なっている。これは、条件(ユーザの年齢)に応じて、生成するテキストを変えられるようになっている。
【0108】
例えば、図2のユーザデータ31の場合、ユーザの年齢は「36歳」であるので、上記(1)及び(3)の条件には合致しないので出力しない(S803、S809)。
【0109】
一方、上記(2)の条件には合致するので(S803)、文生成部23は、「%30−45歳のキャリア状況」のクラス定義907を参照し、受け止め文のテンプレート「そろそろ方向性を定めなければならない時期」を変数と置き換える。
【0110】
また、このテンプレートには変数前文字列指定部622、および、変数後文字列指定部623に文字列の指定部がないので、生成される文字列は、受け止め文のテンプレートのみである(S806)。
【0111】
「{/User/ライフイベント,””,”もあり”}」については、図2のユーザデータ31の「ライフイベント」の値304を参照する(S804)と空であるから、変数指定部621は空となる。変数後文字列指定部623に文字列の指定があるが、変数指定部621の値が削除されるので(S809)、変数前文字列、変数後文字列とともに出力されない(S806)。
【0112】
以上のプロセスによりすべての変数記述部62の処理が終了したら(S807)、901の文テンプレートに定義されたすべての文字列記述部61、および、変数記述部62のテキストを合成し(S808)、図11の文「なるほど。それは大変でしたね。そろそろ方向性を定めなければならない時期ですし、ご不安や悩みも大きいと察します。」が生成されることになる。
【0113】
以上が、回答として「リストラ」が取得された場合の受け止め文生成処理の流れである。
【0114】
なお、上記では、受け止め文の場合を例示して説明したが、質問文、つなぎ文についても、対話制御部21から指定されたプロパティの質問文に対して、文生成部23が同様の処理を行うことによりシステム質問文、つなぎ文を生成する。
【0115】
(A−3)実施形態の効果
以上のように、実施形態によれば、システム発話文を構成する要素をそれぞれ別のテンプレートとして定義し、それを組み合わせて利用することで、テンプレートを効率的に利用することが可能になる。
【0116】
また、実施形態によれば、条件を記述することによりユーザの情報や対話の流れに合わせて文を出し分けることができるようになる。
【0117】
さらに、実施形態によれば、参照先のデータが存在しない場合でも、参照部分だけでなく参照部分の欠落が影響を及ぼす範囲を指定して出力しないようにできるため、不自然な文が生成されるという問題が起こらない。
【0118】
(B)他の実施形態
(B−1)本発明は、コンピュータと人間とが対話を行う対話システムや、プロフィール情報をもとに履歴書やメール文を作成する文作成、文書作成システムにおいて、あらかじめ用意されたテキストと、データベースなどを参照して得られた情報とを組み合わせて文章を生成する際に利用可能である。本発明は、また対話システムに限定されるものではなく、自然言語生成処理のシステムであれば広く適用することができる。
【0119】
(B−2)上述した実施形態では、システムとの対話中に、対話によって得られたユーザ情報を参照して文を生成する例を示したが、本発明の文生成は対話中に限らず、対話完了後にまとめて文を生成するような形態にも適用可能である。このような利用形態としては、例えば、蓄積されたユーザデータをもとに、履歴書や議事録、要約文を生成する文書生成システムがある。
【0120】
(B−3)上述した実施形態では、文テンプレートの変数記述部62が、変数指定部621、変数前文字列指定部622、変数後文字列指定部623、条件指定部624からなる場合を例示した。
【0121】
しかし、変数記述部62の構成は、上述した実施形態で例示したものに限定されるものではなく、変数記述部62として合成する文字列の生成に種々の機能をもつ指定部を有することができる。例えば、変数記述部62は、活用指定部625を含むようにしてもよい。
【0122】
図12は、変数記述部62が、変数指定部621、変数前文字列指定部622、変数後文字列指定部623、条件指定部624、活用指定部625を有する場合の変数記述部62の構成を示す構成図である。なお、図12では、条件指定部624の指定が「空」である。
【0123】
活用指定部625は、変数指定部621で参照する値と変数後文字列指定部623の文字列をつなぐ際に、変数指定部621の値を活用させるためのものである。
【0124】
図12において、変数指定部621「%今したいこと」の値が「休む」という動詞であった場合を考える。
【0125】
この場合、S801〜S805およびS807〜S808は、第1の実施形態で説明した内容と同じであるが、S806で変数記述部621の要素を合成させる際に、文生成部23は、活用指定部625が「仮定形」であるので、「休む」を仮定形の「休め」に変化させる。
【0126】
これは、変数記述部62の文字列は、変数前文字列指定部622の文字列「それなら」、変数指定部621の文字列「休め」、変数後文字列指定部623の文字列「ばよいのではないでしょうか。」となるので、それらを合成した「それなら休めばよいのではないでしょうか。」が変数記述部62の文字列として生成される。
【0127】
このように、変数として展開される値の語形を変化させることで、変数後文字列との間のつなぎがよくなり、自然な文の生成を図ることができる。なお、図12の例では、変数を仮定形に変化させる場合を例示したが、変数後文字列に応じて、他の活用形にするようにしてもよい。
【0128】
(B−4)また例えば、変数記述部62として合成される文を生成するために必要な機能の別の例として、変数指定部621の文字列の示す語を、他の語に変換するような語変換指定部を有するようにしてもよい。例えば、語変換指定部が「英語」と指定されている場合、変数指定部621の文字列が「びっくり」であるとき、文生成部は、対訳辞書等を用いて、「びっくり」を「Surprise」に変化するようにしてもよい。誤変換指定部は、言語の変換だけでなく、変数とする語の関連する語への変換(言い換え)等としてもよい。
【0129】
(B−5)変数指定部の参照先は、指定のデータに対して数値演算、データベース検索など何らかの処理を実行した結果得られた値であるとしてもよい。
【0130】
(B−6)上述した実施形態では、日本語の文を生成する場合を例示したが、言語は特に限定されるものではなく、本発明は、中国語、英語、韓国語、スペイン語など幅広く適用することができる。
【符号の説明】
【0131】
1…入出力装置、11…入力部、12…出力部、2…対話エンジン、21…対話制御部、22…文解析部、23…文生成部、3…記憶装置、31…ユーザデータ、32…オントロジー、321…プロパティ定義、322…クラス定義。

【特許請求の範囲】
【請求項1】
概念や概念間の関係を示すドメイン知識を体系的に表現したオントロジーと、概念及び概念間の関係に関連付けられたものであって、少なくとも、生成する文の変数とする参照先情報の参照先と所定の文字列とを含む1又は複数の可変部を有する文テンプレートとを格納するオントロジー格納手段と、
文を生成するときに、上記オントロジー格納手段から生成する文に関する概念に関連する上記文テンプレートを選択する文テンプレート選択手段と、
上記文テンプレート選択手段により選択された上記文テンプレートの上記各可変部に含まれている上記参照先に基づいて取得した上記参照先情報を展開し、上記参照先情報の直前及び又は直後に上記文字列を合成して出力文を生成する文生成手段と
を備えることを特徴とする文生成装置。
【請求項2】
上記文テンプレートの上記各可変部が、上記参照先情報の参照先を設定する変数指定部と、上記参照先情報の直前に生成する文字列を設定する変数前文字列指定部及び又は上記参照先情報の直後に生成する文字列を設定する変数後文字列指定部とを有することを特徴とする請求項1に記載の文生成装置。
【請求項3】
上記文テンプレートの上記各可変部が、当該可変部の文字列を生成する条件が設定された条件指定部を有するものであり、
上記文生成手段は、上記条件指定部の上記条件に合致する場合に、上記各可変部の文字列を生成する
ことを特徴とする請求項1又は2に記載の文生成装置。
【請求項4】
上記文テンプレートの上記可変部が、上記参照先から取得した上記参照先情報である文字列を、直後に配置される上記文字列に合わせて活用形に変形させる活用設定をする活用指定部を有するものであり、
上記文生成手段が、上記出力文を生成する際、上記活用指定部に設定される活用形に従って上記参照先情報の文字列を変形し、変形後の上記参照先情報の文字列に直後に配置する上記文字列を合成して出力文を生成する
ことを特徴とする請求項1〜3のいずれかに記載の文生成装置。
【請求項5】
入力された入力文を解析する文解析手段を備え、
上記各可変部の上記変数指定部が、上記文解析手段により解析された文解析結果に含まれる文字列を上記参照先と指定するものであり、
上記文生成手段が、上記出力文を生成する際、上記入力文の上記文解析結果から上記参照先に基づく文字列を取得し、この取得した文字列を用いて上記出力文を生成する
ことを特徴とする請求項2〜4のいずれかに記載の文生成装置。
【請求項6】
上記各可変部の上記変数指定部が、上記参照先情報を用いてデータベース検索により得られた検索結果を参照先と指定するものであり、
上記文生成手段が、上記出力文の生成の際に、上記参照先に基づくデータベース検索で得られた検索結果を用いて上記出力文を生成する
ことを特徴とする請求項2〜5のいずれかに記載の文生成装置。
【請求項7】
上記各可変部の上記変数指定部が、別の文テンプレートに関連付けられた概念を参照先とし、当該可変部の中に上記別の文テンプレートを含むものであることを特徴とする請求項2〜6のいずれかに記載の文生成装置。
【請求項8】
コンピュータが、概念や概念間の関係を示すドメイン知識を体系的に表現したオントロジーと、概念及び概念間の関係に関連付けられたものであって、少なくとも、生成する文の変数とする参照先情報の参照先と所定の文字列とを含む1又は複数の可変部を有する文テンプレートとを格納するオントロジー格納手段を有するものであり、
上記コンピュータを、
文を生成するときに、上記オントロジー格納手段から生成する文に関する概念に関連する上記文テンプレートを選択する文テンプレート選択手段、
上記文テンプレート選択手段により選択された上記文テンプレートの上記各可変部に含まれている上記参照先に基づいて取得した上記参照先情報を展開し、上記参照先情報の直前及び又は直後に上記文字列を合成して出力文を生成する文生成手段
として機能させることを特徴とする文生成プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2012−99032(P2012−99032A)
【公開日】平成24年5月24日(2012.5.24)
【国際特許分類】
【出願番号】特願2010−248055(P2010−248055)
【出願日】平成22年11月5日(2010.11.5)
【出願人】(000000295)沖電気工業株式会社 (6,645)
【Fターム(参考)】