【新規性喪失の例外の表示】特許法第30条第2項適用 頒布日 2013年8月22日 開催日 2013年8月22日〜2013年8月24日 集会名 「SIGDIAL 2013」 開催場所 メッス,フランス(Metz,France) 刊行物名 「Proceedings of the SIGDIAL 2013 Conference」 発表題目 「Open−domain Utterance Generation for Conversational Dialogue Systems using Web−scale Dependency Structures」 公開者 杉山弘晃、東中竜一郎、目黒豊美、南泰浩
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
以下、この発明の実施の形態を図面を参照して説明する。複数の図面中同一のものには同じ参照符号を付し、説明は繰り返さない。
【実施例1】
【0014】
図1に、この発明の発話文生成装置100の機能構成例を示す。その動作フローを
図2に示す。発話文生成装置100は、話題抽出部110と、発話文生成部120と、制御部130と、を具備する。発話文生成装置100は、例えばROM、RAM、CPU等で構成されるコンピュータに所定のプログラムが読み込まれて、CPUがそのプログラムを実行することで実現されるものである。以下説明する各装置についても同じである。
【0015】
発話文生成装置100は、ユーザ発話を音声認識した結果の形態素列、若しくはユーザ発話のテキスト文を、形態素解析部140で形態素解析した形態素列を入力とする。
図1に破線で示す形態素解析部140、若しくは図示しない音声認識部を、発話文生成装置100に含めても良い。
【0016】
話題抽出部110は、発話文の形態素列を入力として、当該発話文の内容を表す単語又は当該単語と係り受け構造を抽出する(ステップS110)。つまり、話題とは、発話文の内容を表す単語と係り受け構造のことである。発話文とは、対話システムにおけるユーザ発話であり、ユーザの発話音声そのものであっても良いし、ユーザ発話を音声認識した結果のテキスト文であっても良い。発話文は、1〜3文程度で構成される比較的短い文章である。
【0017】
以降の説明において、発話文の内容を表す単語を焦点語と定義して説明を行う。焦点語の抽出には、例えば参考文献1(Barbara J. Grosz, Scott Weinstein, and Aravind K. Joshi. 1995. Centering: A Framework for Modeling the Local Coherence of Discourse. Computational linguistics,21(2):203-225.)や参考文献2(Marilyn A. Walker, 1998. Centering, Anaphora Resolution, and Discourse Structure Oxford University Press on Demand.)に記載された従来技術を用いる。なお、発話文の内容を表す単語と係り受け構造を抽出して対話発話文を生成する実施例については、実施例5以降において説明する。
【0018】
発話文生成部120は、話題抽出部110で抽出した焦点語を入力として、当該焦点語をテンプレートに代入することで対話発話文を生成する(ステップS120)。テンプレートとは、焦点語が組み込まれる(代入される)定型文のことである。具体例は後述する。
【0019】
ユーザ発話文を例えば「今日は豊洲の映画館で映画Aを見ました。」とした場合、話題の焦点を表す単語は、固有名詞の「豊洲の映画館」と「映画A」の2つの単語である。「豊洲の映画館」は、「豊洲」という地名を表す固有名詞と、助詞の「の」と、一般名詞の「映画館」と、から成る文節であるが、この実施例では固有名詞として扱う。
【0020】
テンプレートとしては、例えば、「いいですね。」や「好きですか。」等が用意されていると仮定する。テンプレートは、各焦点語について、発話意図ごとに複数種類分類して用意しておく。発話意図とは、「質問」、「自己開示」、「相槌」、などである。上記した「いいですね。」は相槌に、「好きですか」は質問に、それぞれ分類される。このように発話意図ごとにテンプレートを分類しておくことで、テンプレート間の関係性の見通しが良くなる。つまり、テンプレートの不要な重複を防止することができる。
【0021】
発話文生成部120は、その前提において、固有名詞数×テンプレート数の数の「豊洲の映画館」+「いいですね。」、「豊洲の映画館」+「好きですか。」、「映画A」+「いいですね。」、「映画A」+「好きですか。」、の4つの対話発話文を生成する。この対話発話文の生成を繰り返す処理の制御は、制御部130が行う。制御部130は、発話文生成装置100の各部の時系列動作を制御する一般的なものであり、特別な処理を行うものではない。他の実施例についても同様であり、以降、制御部の説明は省略する。対話システムでは、この複数の対話発話文の内、ユーザ発話に対応する1つが、図示しない発話文選択装置によって選択されて用いられる。
【0022】
このように発話文生成装置100によれば、ユーザ発話文の形態素列中に含まれる単語から話題の焦点を表す複数の焦点語を抽出し、その焦点語をテンプレートに代入することで対話発話文を生成するので、バリエーション豊富な対話発話文を生成することができる。
【実施例2】
【0023】
図3に、この発明の発話生成装置200の機能構成例を示す。その動作フローを
図4に示す。発話生成装置200は、関連語推定部250を備える点と、発話文生成部220の作用が、発話生成装置100(
図1)と異なる。
【0024】
関連語推定部250は、焦点語抽出部110で抽出した焦点語を入力として、当該焦点語の類義語を関連語として推定する(ステップS250)。焦点語の類義語を推定する方法としては、シソーラス辞書を用いる方法や、LDA(参考文献3:「David M. Blei, et al., Latent Dirichlet Allocation, the Journal of Machine Learning Research, vol. 3, pp. 993-1022, 2003)などの単語間の共起関係によって類義語を推定するトピックモデル(Topic Model)を用いる方法が知られている。シソーラス辞書やトピックモデルは周知である。
【0025】
関連語推定部250は、焦点語の「映画A」を入力として、例えばトピックモデルを用いて「○○○○」や「△△△△」など映画Aに関連する単語や、「映画B」のような類似したジャンルの映画や、「○○」などの略語・表記ゆれを関連語として抽出する。
【0026】
発話文生成部220は、焦点語抽出部110で抽出した焦点語と関連語推定部250で推定した関連語を入力として、当該焦点語と当該関連語をテンプレートに代入することで対話発話文を生成する(ステップS220)。この例では、「○○○○」+「いいですね。」や、「△△△△」+「いいですね。」や、「○○」+「いいですね。」などが対話発話文として追加される。
【0027】
発話生成装置200は、発話生成装置100に対して、関連語推定部250で推定した関連語が追加されるので、対話発話文のバリエーションを更に豊富にすることができる。
【実施例3】
【0028】
図5に、この発明の発話文生成装置300の機能構成例を示す。その動作フローを
図6に示す。発話文生成装置300は、係り受け関係解析部360を備える点と、焦点語抽出部310の作用が、発話文生成装置200(
図3)と異なる。関連語推定部250と発話文生成部220は、参照符号から明らかなように発話文生成装置200(
図3)と同じものである。
【0029】
係り受け関係解析部360は、形態素列を入力として、当該形態素列の係り受け解析を行って、文節の係り受け関係を出力する(ステップS360)。係り受け解析は、一般的な日本語係り受け解析手法を用いる。
【0030】
例えば、ユーザ発話文を「今日は豊洲の映画館で映画Aを見ました。」とした場合の形態素列と係り受けの関係を、
図7に示す。
図7の1行目は形態素列、2行目は文節の係り受け関係である。表1に、その係り受け関係を示す。
【0031】
【表1】
焦点語抽出部310は、ユーザ発話文の形態素列と係り受け関係解析部360で解析した係り受け関係を入力として、当該形態素列中に含まれる話題の焦点を表す固有名詞、一般名詞、述語、の複数の焦点語を抽出する(ステップS310)。述語とは、事態性名詞、動詞、形容詞、形容動詞、のことである。なお、事態性名詞とは特定の事態を喚起する名詞であり、少なくとも以下の4タイプがある(参考文献4:「黒田航、「事態性名詞の項構造と動詞の項構造の統合・PMAを使った日本語の支援動詞構文の分析とその合意」、言語処理学会年次大会,2008」)。A:動詞の連用形、B:サ変名詞、C:非連用形/非サ変の抽象名詞(支援動詞を要求)、D:非連用形/非サ変の具象名詞(特定の動詞と組み合わされて事態名詞化する)。
【0032】
例えば、ユーザ発話文を「今日は映画の○△□○を見ました。」とした場合、焦点語抽出部310は、ユーザ発話文に含まれる固有名詞の「○△□○」を焦点語として抽出する。固有名詞が複数含まれるユーザ発話文の場合、焦点語抽出部310は、最も発話末尾に近いものから任意のN個(Nは自然数)の固有名詞を焦点語として抽出する。
【0033】
また、焦点語抽出部310は、ユーザ発話文に含まれる一般名詞の内、出現数が少ないものを焦点語として抽出する。出現数がすくないものを焦点語にする理由は、一般的で話題を表現しない例えば「こと」などの名詞を抽出しないようにするためである。この例では、「映画」を抽出する。
【0034】
また、焦点語抽出部310は、最も上位で係られている述語を焦点語として抽出する。なお、日本語では、前から後ろの単語に係る場合が多いため、文末に最も近い述語を焦点語として抽出するようにしても良い。
【0035】
発話文生成部220は、焦点語が固有名詞の場合、固有名詞は関連する形容詞・動詞は、対話発話文として適切に当てはまる事が多いため、テンプレートを、「[固有名詞]は[形容詞]らしいですねー」とした場合、「○△□○は面白いらしいですねー」を対話発話文として生成する。ここで用いる形容詞・動詞は、関連語推定部250において例えばトピックモデルを用いて推定した関連語に含まれるものである。
【0036】
また、焦点語が一般名詞の場合、一般名詞に関連する形容詞・動詞は、文脈に依存したものが出現する場合が多い。そのため、発話文生成部220は、関連する形容詞・動詞をそのまま用いて対話発話文を生成する。例えば、関連する形容詞・動詞を、「面白い」、「楽しい」等と仮定し、テンプレートを「どんな[一般名詞]が[形容詞・動詞]ですか?」とした場合、「どんな映画が面白いですか?」を発話文として生成する。このように1つのテンプレートに2つの異なる単語を代入して対話発話文を生成する場合は、焦点語と関連語の全ての組み合わせの対話発話文が生成される(
図6:ステップS330)。
【0037】
なお、関連する形容詞・動詞をそのまま用いると対話の文脈に合わない不適切な対話発話文になる場合も考えられる。その場合は、形容詞のポジティブ/ネガティブを日本語評価表現辞書を用いて推定し、それに合わせて「好き」、「苦手」のように話題によらずに適用可能な評価表現を付与して対話発話文を生成するようにしても良い。例えば、テンプレートとして「どんな[一般名詞]が好きですか?」や「どんな[一般名詞]が苦手ですか?」などを用意しておいて、一般名詞を当てはめても良い。
【0038】
また、焦点語が述語の場合、発話文生成部220は、述語(事態性名詞・動詞)に係る名詞と表層格を利用して対話発話文を生成する。係り受け関係にある名詞をそのまま用いるとYes/Noで答える対話発話文となり話題が広がらないため、名詞の語義をワードネット(Wordnet)のような語彙体系から推定して、ロケーションに対応するどこで(Where)、何時(Time)に対応する5W1H型の質問を生成する。ただし、時制の一致は扱いが難しいため、特に「ロケーション」を尋ねるWhereを優先的に生成する。例えば、テンプレートを「どこ[表層格][述語]んですか?」とした場合、「どこで見たんですか?」を対話発話文として生成する。
【0039】
発話文生成装置300によれば、係り受け関係にある単語群をテンプレートに代入するので、幅広い話題に対応可能で、且つ、意味の通った対話発話文を生成することができる。なお、係り受け関係解析部360の構成を発話文生成装置200に追加する形で説明したが、係り受け関係解析部360を発話文生成装置100に追加した構成、つまり関連語推定部250を省略した構成の発話文生成装置も考えられる。
【実施例4】
【0040】
図8に、この発明の発話文生成装置400の機能構成例を示す。発話文生成装置400は、係り受け関係辞書470を備える点と、関連語推定部450の作用が、発話文生成装置200(
図3)と異なる。話題抽出部110と発話文生成部220は、参照符号から明らかなように発話文生成装置200(
図3)と同じものである。発話文生成装置400の動作フローは、発話文生成装置200の動作フロー(
図4)と同じである。
【0041】
係り受け関係辞書470は、大量の自然文から所定の単語に対する係り受け関係として出現した単語群をその回数と共に記録したものである。係り受け関係辞書470は、例えば参考文献3(竹内孔一他、「意味の包含関係に基づく動詞項構造の細分類」、言語処理学会年次大会,2008.)に記載されているものであり、別途構築されたものである。
【0042】
係り受け関係辞書470は、口語調の表現が大量に含まれるマイクロブログ等の記事から自然文を収集し単語間の関係性を抽出して構築したものとする。マイクロブログは、主観的な文章を大量に含むことから、ある単語に対する主観的な表現が抽出されることが期待される。新聞記事などの書き言葉の文章から単語間の関係性を抽出するよりも対話システムに好適な係り受け関係辞書とすることができる。例えば、「映画A」を含むマイクロブログからは「面白い」や「好き」、「恐ろしい」などの形容詞を、関連語として抽出できる可能性が高いと仮定する。
【0043】
関連語推定部450は、話題抽出部110が抽出した焦点語を入力として、係り受け関係辞書470を参照して当該焦点語の関連語を抽出する。焦点語を、例えば「映画A」とした場合、関連語推定部450は「面白い」や「好き」、「恐ろしい」などの形容詞を関連語として、係り受け関係辞書470から抽出する。
【0044】
発話文生成部220は、話題抽出部110で抽出した焦点語と関連語推定部250で抽出した関連語を入力として、当該焦点語と当該関連語をテンプレートに代入することで対話発話文を生成する(ステップS220)。テンプレートを例えば、「[固有名詞]は[形容詞]らしいですねー」としておけば、発話文生成部220は、「映画Aは面白いらしいですねー」の対話発話文を生成する。
【0045】
発話文生成装置400は、発話文生成装置200(
図3)に係り受け関係辞書470を加えた構成で説明したが、発話文生成装置300(
図5)に係り受け関係辞書470を加えて発話文生成装置を構成しても良い。
【0046】
また、係り受け関係辞書470は、別途構築されたものを用いる例で説明を行ったが、係り受け関係辞書の内容を逐次更新するように構成しても良い。
図9に、話題抽出部110に入力される形態素列を用いて逐次、係り受け関係辞書を更新するように構成した発話文生成装置500の機能構成例を示す。
【0047】
発話文生成装置500の係り受け関係辞書570は、係り受け関係解析部360が出力する文節の係り受け関係と表層格を記録し、同一種類の係り受け関係と表層格についてその出現回数を更新して記録する。このように、係り受け関係辞書670を、逐次入力される形態素列で更新するように構成しても良い。
【0048】
また、発話文生成装置内部で係り受け関係辞書を作成するようにしても良い。
図10に、発話文生成装置内部で係り受け関係辞書を構築するように構成した発話文生成装置600の機能構成例を示す。
【0049】
発話文生成装置600の係り受け関係辞書670は、自然文一時記憶部671と、形態素解析部672と、係り受け関係解析部673と、係り受け関係記録部674と、で構成される。自然文一時記憶部671は、外部から収集した自然文を記憶する。外部とは、例えばインターネット等のネットワーク環境であり、Web上のブログ記事などを定期的に受信して記憶する。
【0050】
形態素解析部672は、自然文一時記憶部671に記憶されたテキスト情報を形態素解析して形態素列を出力する。係り受け関係解析部673は、形態素解析部672が出力する形態素列から単語間の係り受け関係を推定し、係り受け関係と表層格を抽出する。例えば、
図7に示す係り受け関係の「今日」は「は」格と共に「動詞」「見ました。」に接続されているとしてその関係を出力する。
【0051】
係り受け関係記録部674は、係り受け関係解析部673が出力する係り受け関係と表層格を記録する。この時、同じ係り受け関係と表層格は、その出現回数を更新して記録する。このように、係り受け関係辞書670を自動的に構築するように構成しても良い。
【実施例5】
【0052】
図11に、この発明の発話文生成装置700の機能構成例を示す。発話文生成装置700は、話題抽出部710と、係り受け関係解析部360と、関連話題抽出部780と、発話文生成部720と、を備える。係り受け関係解析部360は、参照符号から明らかなように発話文生成装置300(
図5)と同じものである。
【0053】
話題抽出部710は、形態素列と、係り受け関係解析部360が出力する係り受け関係を入力として、形態素列中に含まれる発話文の話題を表す単語と係り受け構造を抽出する。ここで、係り受け構造とは、係り受け関係を持つ2つの文節からなる組のことである。
【0054】
発話文を例えば「かなりお腹が空きました。」とした場合、その発話文を形態素解析した結果を
図12に示す。1行目は発話文、2行目は形態素解析結果、3行目は係り受け解析結果、4行目以降に係り受け構造、を示す。
【0055】
係り受け関係解析部360が出力する係り受け関係のうち、ストップワードを含まないものを全て話題とする。単語は固有名詞のみを話題として用いる。ストップワードには、代名詞と、「する、いう、なる、ある、いる」などの特定の意味を伴わず使われる補助的な動詞と、「こと、の」などの抽象名詞と、時間に関する単語である例えば「今日」、「先日」、「○時○分」などの単語を用いる。ストップワードは、使用頻度が高く特定の意味を持たない単語である。例えば、「〜みたいな」等の話事が特有の語尾などもストップワードに含まれる。
【0056】
つまり、発話文抽出部710は、ストップワードを含む係り受け構造及び単語を発話文の話題から除外する処理を行う。ただし、このように単語の意味で決める方法以外に、出現数でフィルタする方法も有用である。フィルタとは、例えばTFIDFのような考えを導入することである。
【0057】
なお、単語と係り受け構造(話題)を抽出する際、文節の先頭単語の標準形、POSタグ、文節の一意性を表す文節ID、簡単な意味属性(場所、動作、質問、…)、文節の内容語句の表記、内容語句の標準形、格情報、を同時に抽出するようにしても良い。
【0058】
関連話題抽出部780は、発話文の話題を表す単語及び係り受け構造を入力として当該単語と係り受け構造と関連の深い関連単語と関連係り受け構造を出力する。ここで、関連の深いとは、文節間で同一若しくは類義の単語が共起すること、文節間で係り受け関係が存在すること、コーパス中で強い共起関係がある単語の組が、対となる2文節内に1つずつ含まれることを意味する。なお、文節間での係り受け関係とは、係り受け構造A中の文節のうち少なくとも1つが係り受け構造B中の文節と係り受け関係にある状態である。
図13にその状態を例示する。「お腹・空いた」の「空いた」に係る「空いて・きつい」の「きつい」に係る文節である「だいぶ・きつい」が、当該単語と係り受け構造に係る係り受け構造となる。
【0059】
ここで、関連単語と関連係り受け構造は、関連話題ということになる。この「だいぶ・きつい」の関連係り受け構造は、発話文の話題を表す単語及び係り受け構造に、上記した定義を参考に予め決めたルールを適用することで生成される。最も単純な方法としては、「お腹・空いた」の係り受け構造に対応する「だいぶ・きつい」の文節を、関連話題抽出部780に用意しておく。なお、ルール以外に関連係り受け構造を生成する方法として、単語の共起関係のある文節や、類義語を含む文節、係り受け関係のある文節、コーパス中で共起関係が強い単語を持つ文節を関連話題としてもよい。
【0060】
発話文生成部720は、話題抽出部710が出力する発話文の話題を表す単語及び係り受け構造と、関連話題抽出部780が出力する関連単語と関連係り受け構造を入力として、それらの単語と係り受け構造をテンプレートに入力することで対話発話文を生成する。テンプレートは、上記したものと同じである。例えば、テンプレートとして「ですよね」や「ですか?」を用意しておき、抽出した係り受け構造を代入することで、「だいぶきついですよね」や「だいぶきついですか?」等の対話発話文を生成する。
【0061】
発話文生成装置700によれば、入力された発話文の話題を表す単語と係り受け構造(話題)と、その係り受け構造と係り受け関係にある関連単語と関連係り受け構造(関連話題)と、に対応する対話発話文を生成するので、発話文生成装置300よりも更に幅広い話題に対応した意味の通った対話発話文を生成することができる。
【実施例6】
【0062】
図14に、この発明の発話文生成装置800の機能構成例を示す。発話文生成装置800は、発話文生成装置700に対して、係り受け関係データベース890を備える点と、関連話題抽出部880の機能の点で、異なる。
【0063】
係り受け関係データベース890は、或る係り受け構造が与えられた場合に、その係り受け構造に係る係り受け構造を検索することのできるデータベースである。例えば、「お腹・が・空く」という構造から、この構造に係る係り受け構造を検索すると、
図15に示す結果が得られるデータベースである。また、この検索を多段に行えるようにすると、「お腹が空く」に係る「飯・食う」を検索し、更に「飯・食う」に係る係り受け構造、というように検索することも可能である。この実施例では、大量の自然文から出現した係り受け構造を、その係り受け構造が出現した自然文を表す一意な番号(文番号)と共に記憶することで、係り受け関係データベース890を構築する。その構築方法の具体例は後述する。
【0064】
関連話題抽出部880は、発話文の話題を表す単語及び係り受け構造を入力とし、係り受け関係データベース890を参照して関連単語と関連係り受け構造を抽出して出力する。抽出に当たって、発話文の話題を表す単語及び係り受け構造(話題)がどのような品詞を持つか分からないと、関連する単語と関連する係り受け構造が何を表すか分からないうえに、テンプレートに上手く合致しない関連単語と関連係り受け構造が抽出され得る。そのため、抽出したい話題の種類ごとに入力される話題の品詞と抽出対象の話題の品詞によって制約される条件を設定する。条件を設定することで話題の種類が明確で、且つテンプレートに合致し易い話題を抽出することができる。
【0065】
条件例として、入力される係り受け構造が(単語A・格F・単語B)で構成され、抽出対象の関連する係り受け構造が(単語C・格G・単語D)で構成されるものとして説明する。更に、動詞、形容詞、動名詞、形容動詞のような述語になり易い品詞を指して「述語」、動詞・動名詞のような動作を表現する品詞を指して「動作詞」、形容詞・形容動詞のような評価表現になり易い品詞を指して「評価詞」と定義する。
【0066】
評価表現を含む関連単語と関連係り受け構造を抽出するためには、単語A:一般・固有名詞、単語B:動作詞、単語D:評価詞、単語B→単語Dへの係り受け、の制約条件の元で係り受け関係データベース890を検索する。以降において大文字のアルファベットは単語を意味するが、「単語」の文言を省略する場合もある。例えば、入力される係り受け構造を、単語A:「お腹」→B:「空いて」とすると、
図16(a)に示す関連単語と関連係り受け構造を抽出することができる。このように入力される係り受け構造中の文節のうち少なくとも1つと係り受け関係(B:空いて→D:きつい)を持つ関連単語と関連係り受け構造(C:だいぶ→Dきつい)を抽出することができる。
【0067】
(名詞・F・動作詞)で構成される係り受け構造は、いわゆる述語項構造に似た構造を持ち、何らかの出来事を表現される構造と想定される。この制約条件によって、その出来事に対する評価表現を含む話題(関連単語と関連係り受け構造)を抽出できる。
【0068】
原因表現を含む関連単語と関連係り受け構造を抽出するためには、単語A:一般・固有名詞、単語B:動作詞、単語D→Bに(D・H=「ので・から」・B)の構造を持つ係り受け、単語D:動作詞、の制約条件で係り受け関係データベース890を検索する。入力される係り受け構造を、上記した例とすると、
図16(b)に示すように(C・G・D)+「から」+(A・F・B)という関連係り受け構造を取り出すことができ、(A・F・B)が発生した理由を抽出できる。
【0069】
疑問詞表現を含む関連単語と関連係り受け構造を抽出するためには、単語A:一般・固有名詞、単語B:動作詞、単語D=単語B、単語C:疑問詞、の制約条件とする。入力される係り受け構造を、上記した例とすると、
図16(c)に示すように疑問詞+(A・F・B)という関係係り受け構造を取り出すことができ、(A・F・B)について問う際に用いる疑問詞を抽出できる。
【0070】
自己開示表現を含む関連単語と関連係り受け構造を抽出するためには、単語A:一般・固有名詞、格F:「は」、単語B:名詞、「自分・の」→単語Aの係り受け数大、単語C=単語A,格G:「は」、単語D:名詞、単語D≠単語B、の制約条件とする。ここで係り受け数大は、例えば上位3つくらいに絞る数である。入力される係り受け構造を、上記した例とすると、
図16(d)に示すように、相手の(A・はB)に対して、対応する「自分・の」+(A・は・D)の関連係り受け構造を抽出できる。
【0071】
上記したように制約条件を設けて抽出した関連係り受け構造を用いて対話発話文を生成する場合の発話文生成部720の好ましいテンプレートの用意の仕方について説明する。
【0072】
上記した発話文生成部720のテンプレートを、係り受け関係データベース890から関連単語と関連係り受け構造を抽出する際の制約条件ごとに作成することで、テンプレート間の関係性の見通しを良くすることができる。 評価表現を抽出した場合は、例えば、「単語C+格G+単語Dですよね」や「単語C+格G+単語Dですか?」のテンプレートを用意して、単語C+格G+単語Dですよね、や、単語C+格G+単語Dですか?の対話発話文を生成する。
図17(a)にその例を示す。発話意図(自己開示_評価)の対話発話文「だいぶきついですよね」、(質問_評価)の対話発話文「だいぶきついですか?」を生成することができる。
【0073】
原因表現を抽出した場合は、例えば、「単語C+格G+単語Dの?」のテンプレートを用意して、
図17(b)に示すように発話意図(質問_事実)の「もしや何も食べていないの?」や「何も食べていないの?」の対話発話文を生成することができる。
【0074】
疑問詞表現を抽出した場合は、例えば、「単語C+格G?」や「単語C+格G+単語B?」のテンプレートを用意して、
図17(c)に示すように発話意図(質問_事実)の対話発話文「どうして?」や「どうして空く?」の対話発話文を生成することができる。ただし、単語Cが「どうして」など理由を問う疑問詞の場合には、対話発話文が不適切になる恐れがあるので、テンプレートを例えば次のように変更する。「単語C+格G+こうも単語A+単語Bかなあ」、とテンプレートを用意すると「どうしてこうもお腹がすくかな」といった対話発話文を生成することができる。
【0075】
自己開示表現を抽出した場合は、例えば、「私の(単語C)は(単語D)です」や{自分は(単語D)が(単語A)です}のテンプレートを用意して、
図17(d)に示すように発話意図(自己開示_事実)の「私のお腹はブラックホールです」の対話発話文を生成することができる。
【0076】
制約条件なしに抽出した関連係り受け構造の出現数が上位のものをテンプレートに代入することで対話発話文を生成するようにしても良い。もちろん、抽出するための入力係り受け構造もテンプレートに代入する。
【0077】
これらの係り受け構造に含まれる単語のみを用いて発話を生成する場合、各単語をどのような表現と共に用いれば良いかを適切に定める必要がある。そこで、検索された関連係り受け構造が属する文で使われている用例を、そのまま利用して対話発話文を生成する。例えば、後ろ方向の係り受け関係から対話発話文を生成する場合、入力係り受け構造から直接検索された係り受け構造xの表記(例えば「お腹空いたから」)の後段に関連係り受け構造zの表記(例えば「ご飯食べる」)を並べたものを単位として出現数を調べ、出現数が上位のものについて最後の部分のみ「○○ですね」のような簡易なテンプレートに合致するように変換して接続することで、「お腹すいたからご飯たべるんですね」のように対話発話文を生成する。
【0078】
出現数が1回の場合は、その文脈固有の表現であることが多いので除外する。以上の方法により、入力係り受け構造と関連係り受け構造の接続や、それぞれが含む機能表現などを活かし、文法的に不自然になり難い対話発話文を得ることができる。
【0079】
上記した係り受け関係データベース890の作成方法について
図18を参照して説明する。
図18に示す方法では、一つの係り元と係り先とから成るフラットな係り受け構造を記録したデータベースから、先ず、入力された係り受け構造i中の2つの文節s
1i,s
2iから、各文節の先頭単語の標準形を取りだし、入力係り受け構造に含まれる順で出現する係り受け構造群Xを検索する。
【0080】
次に、得られた係り受け構造x∈Xごとに、構成する文節s
1x,s
2x∈s
xの何れかを含む係り受け構造yを、文IDと文節IDを利用して検索する。係り受け構造yはx中の文節s
1x,s
2xの何れかを含むため、yはxと一部の文節が重複した関連係り受け構造と考えることができる。
【0081】
更に、yを構成する文節s
1y,s
2y∈s
yを含みs
xを含まないものを同様に検索しzとすると「お腹→空いた」に対する「ごはん→食べる」のような文節が重複しない関連係り受け構造を得ることができる。このようにして得られた関連係り受け構造は、入力された係り受け構造に対して理由や結果、限定など特定の関連する性質を持っている。入力される係り受け構造に対する出現位置と係る格によって、その性質が異なると考えられる。
このようにして得られた関連係り受け構造をデータベース化したものが係り受け関係データベース890である。係り受け関係データベース890を備えた発話文生成装置800は、フラットな係り受け構造から、当該係り受け構造に係る関連係り受け構造をシステマチックに抽出したデータベースを用いるので、発話文生成装置700に対して更に幅広い対話発話文を生成することができる。フラットな係り受け構造とは、一つの係り元と係り先とから成る係り受け構造のことである。
【0082】
また、係り受け関係データベース890は、
図18に示した方法で一つの係り元と係り先とから成るフラットな係り受け構造を記録した係り受け関係データベース890′から作成する関係にあるが、関連係り受け構造を検索する処理を、その都度行う構成も考えられる。つまり、関連係り受け構造を予めデータベース化しておくのではなく、関連係り受け構造を毎回検索するようにしても良い。
【0083】
その場合の関連話題抽出部880′は、
図18で説明した方法で関連単語と関連係り受け構造を検索する。検索には、品詞情報や格、単語情報などを用いても良い。この関連係り受け構造を毎回検索方法は、計算量は増加するが、係り受けの深さを自由に変えることができるので、多様な対話発話文を生成するのに有利な方法である。
【実施例7】
【0084】
図19に、この発明の発話文生成装置900の機能構成例を示す。発話文生成装置900は、発話文生成装置800に対して、自然文記憶部995を備える点と、発話文生成部920の機能の点で、異なる。
【0085】
自然文記憶部995は、係り受け関係データベース890に記憶された係り受け構造と格に対応する文番号に対応した自然文を記憶したものである。発話文生成部920は、話題抽出部310から入力される単語と係り受け構造を表す文番号と、関連話題抽出部880から入力される関連単語と関連係り受け構造を表す文番号とに、文番号で対応する自然文を、自然文記憶部995から読み出して対話発話文を生成する。対話発話文は、自然文記憶部995から読み出した自然文そのままでも良いし、その文末を「です」「ます」に変える等の変更を行っても良い。
【0086】
発話文生成装置900によれば、テンプレートを用いずに大量の自然文から対話発話文を生成するので、幅広い話題の発話文に対する対話発話文を生成することが可能である。自然文記憶部995に記憶する自然文は、上記した係り受け関係辞書470と同様に、口語調の対話発話文を生成する目的では、主観的な発言を大量に含むマイクロブログから収集すると好ましい。
【0087】
なお、自然文記憶部995は、上記した実施例の全てに設けても良い。例えば、自然文記憶部995を備えた発話文生成装置100′は、話題抽出部110が出力する焦点語をクエリとして、自然文記憶部995から類義語を検索して対話発話文を生成するようにしても良い。
【0088】
以上説明した発話文生成装置100によれば、ユーザ発話文から話題の焦点を表す複数の焦点語を抽出し、その複数の焦点語をテンプレートに代入して対話発話文を生成するので、バリエーション豊富な対話発話文の生成が可能である。また、発話文生成装置200によれば、焦点語の類義語である関連語を推定し、焦点語と関連語とを用いて発話文を生成するので、より幅広い話題に対応できる対話発話文を生成することが可能である。
【0089】
また、発話文生成装置300によれば、係り受け関係にある単語群をテンプレートに代入するので、幅広い話題に対応可能で、且つ、意味の通った対話発話文を生成することができる。また、発話文生成装置300,400,500,600は、焦点語と関連語との関連性の推定に、マイクロブログ等の大量の自然文に含まれる係り受け関係を利用するので、ユーザ発話文に対する対話発話文のバリエーションを豊富にすることができる。
【0090】
また、発話文生成装置700は、発話文の内容を表す単語と係り受け構造と当該単語と係り受け構造に係る関連単語と関連係り受け構造を、テンプレートに代入するので更に幅広い話題に対応可能で、意味の通った対話発話文を生成することができる。また、発話文生成装置800は、係り受け関係データベース890を用いるので、より幅の広い対話発話文を生成することができる。また、発話文生成装置900は、テンプレートを用いずに大量の自然文から対話発話文を生成するので、幅広い話題に対応した自然な表現の対話発話文を生成することができる。
【0091】
上記装置における処理手段をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、各装置における処理手段がコンピュータ上で実現される。
【0092】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記録装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0093】
また、各手段は、コンピュータ上で所定のプログラムを実行させることにより構成することにしてもよいし、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。