(57)【要約】【課題】対話システムにおいて、発話文の形態素列から発話文の話題を表す単語と係り受け構造を抽出してバリエーションの豊富な対話発話文を生成する発話文生成装置を提供する。【解決手段】発話文の形態素列を入力として、当該発話文の内容を表す単語を抽出する話題抽出部と、上記発話文の内容を表す単語を入力として、当該単語の関連語を推定する関連語推定部と、上記発話文の内容を表す単語と上記関連語を入力として、当該単語と当該関連語をテンプレートに代入することで対話発話文を生成する発話文生成部と、を具備する発話文生成装置であって、上記関連語は、上記発話文の内容を表す単語が名詞である場合、当該名詞に関連する形容詞または動詞である。【選択図】図３
2018195330.tif 000002
【特許請求の範囲】
【請求項１】
発話文の形態素列を入力として、当該発話文の内容を表す単語を抽出する話題抽出部と、
上記発話文の内容を表す単語を入力として、当該単語の関連語を推定する関連語推定部と、
上記発話文の内容を表す単語と上記関連語を入力として、当該単語と当該関連語をテンプレートに代入することで対話発話文を生成する発話文生成部と、
を具備する発話文生成装置であって、
上記関連語は、上記発話文の内容を表す単語が名詞である場合、当該名詞に関連する形容詞または動詞である、
ことを特徴とする発話文生成装置。
【請求項２】
請求項１に記載した発話文生成装置において、
上記発話文生成部は、上記関連語が形容詞である場合、当該形容詞がポジティブ表現であるかネガティブ表現であるかに合わせて、予め定めた評価表現を、当該関連語の代わりに、テンプレートに代入することで上記対話発話文を生成する、
ことを特徴とする発話文生成装置。
【請求項３】
話題抽出部は、発話文の形態素列を入力として、当該発話文の内容を表す単語を抽出する話題抽出過程と、
関連語推定部は、上記発話文の内容を表す単語を入力として、当該単語の関連語を推定する関連語推定過程と、
発話文生成部は、上記発話文の内容を表す単語と上記関連語を入力として、当該単語と当該関連語をテンプレートに代入することで対話発話文を生成する発話文生成過程と、
を備える発話文生成方法であって、
上記関連語は、上記発話文の内容を表す単語が名詞である場合、当該名詞に関連する形容詞または動詞である、
ことを特徴とする発話文生成方法。
【請求項４】
請求項１または２に記載した発話文生成装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザ（利用者）と自然言語を用いて対話するシステム（以下、対話システム）における発話文生成装置とその方法と、プログラムに関する。
【背景技術】
【０００２】
近年、特定のタスクを持たないオープンドメインな雑談を行う雑談対話システムへのニーズが高まっている。こうした雑談対話は、それ自体がセラピー的な性質を持つ可能性があるとともに、タスク指向対話システムにおいても、ユーザ自身が気づいていない要求の顕在化に応用できる可能性があり、非常に重要である。しかし、オープンドメインな雑談対話システムでは、ユーザ発話のバリエーションが格段に広がるため、適切に応答するための知識源を予め人手で構築し切ることは極めて困難である。
【０００３】
この問題に対する従来からのアプローチとして、人が興味を持ちそうな話題について予めルールで応答パターンを記述しておく方法や、どのようなユーザ発話にも合致する無難な発話や質問を繰り返す方法（非特許文献１）などが知られている。
【０００４】
しかし、ルールで記述する方法では新語への対応が困難である。また、テープレコーダのように一定の条件で再生するのみであるため、対話が一問一答で終わり易く発展性がないことなどが問題である。非特許文献１に記載されたような文脈非依存アプローチでは、ユーザの発話をやり過ごすような発話になりがちなため、すぐに飽きられてしまう。
【０００５】
このような新語対応の困難さや単調さを克服するため、近年、Ｗｅｂ上の大規模な文章を利用する動きが広まっている。例えば、非特許文献２又は３では、Ｗｅｂ上の記事やマイクロブログ中のユーザ発話と類似した文を選択して発話文とする方法が開示されている。
【０００６】
しかし、類似文が出現した文脈は、ユーザ発話が現れた文脈とは異なるため、不要な発話文を含む課題があった。この課題を解決する目的で、ユーザ発話中に含まれる単語から話題の焦点を表す焦点語を推定し、焦点語をテンプレートに代入することで発話文を生成する方法が検討されている（非特許文献４）。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】J. Weizenbaum, “ELIZA-A Computer Program For the Study of Natural Language Communication Between Man and Machine”, Communications of the ACM. ACM 9[1] 36-45(1966).
【非特許文献２】柴田雅博ほか、「雑談自由対話を実現するためのＷＷＷ上の文書からの妥当な候補文選択手法」、人工知能学会論文誌,vol.24,no.6,pp.507-519,2009.
【非特許文献３】Alan Ritter, Colin Cherry, and William.B. Dolan. 2011. Data-Driven Response Generation in Social Media. In Proceedings of the 20111 Conference on Empirical Methods in Natural Language Processing, pages 588-593.
【非特許文献４】小林優佳ほか、「高齢者対話インターフェース−ユーザの聴き手になる音声対話インターフェース−」、情報処理学会インタラクション2011.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、従来の焦点語を用いる技術では焦点語を名詞に限定しており、その数も１個としていたことから、バリエーションの豊富な発話文を生成できない課題があった。
【０００９】
本発明は、この課題に鑑みてなされたものであり、バリエーション豊富な発話文の生成を可能にした発話文生成装置とその方法と、プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一態様は、発話文の形態素列を入力として、当該発話文の内容を表す単語を抽出する話題抽出部と、上記発話文の内容を表す単語を入力として、当該単語の関連語を推定する関連語推定部と、上記発話文の内容を表す単語と上記関連語を入力として、当該単語と当該関連語をテンプレートに代入することで対話発話文を生成する発話文生成部と、を具備する発話文生成装置であって、上記関連語は、上記発話文の内容を表す単語が名詞である場合、当該名詞に関連する形容詞または動詞である。
【発明の効果】
【００１１】
本発明の発話文生成装置によれば、ユーザ発話の話題を利用した適切な発話文生成が可能になる。大量の自然文から話題に関連する係り受け構造を収集するため、幅広い話題のユーザ発話に対する発話文を生成することが可能になる。
【図面の簡単な説明】
【００１２】
【図１】本発明の発話文生成装置１００の機能構成例を示す図。
【図２】発話文生成装置１００の動作フローを示す図。
【図３】本発明の発話文生成装置２００の機能構成例を示す図。
【図４】発話文生成装置２００の動作フローを示す図。
【図５】本発明の発話文生成装置３００の機能構成例を示す図。
【図６】発話文生成装置３００の動作フローを示す図。
【図７】ユーザ発話文の形態素列と係り受けの関係を示す図。
【図８】本発明の発話文生成装置４００の機能構成例を示す図。
【図９】本発明の発話文生成装置５００の機能構成例を示す図。
【図１０】本発明の発話文生成装置６００の機能構成例を示す図。
【図１１】本発明の発話文生成装置７００の機能構成例を示す図。
【図１２】発話文を形態素解析した結果の一例を示す図。
【図１３】係り受け構造中の文節のうち少なくとも１つが他の係り受け構造中の文節と係り受け関係にある状態を例示する図。
【図１４】本発明の発話文生成装置８００の機能構成例を示す図。
【図１５】係り受け関係データベース８９０を検索することで得られる係り受け構造を例示する図。
【図１６】関連単語と関連係り受け構造の例を示す図。
【図１７】対話発話文の例を示す図。
【図１８】関連係り受け構造を検索する概要を示す図。
【図１９】本発明の発話文生成装置９００の機能構成例を示す図。
【発明を実施するための形態】
【００１３】
以下、この発明の実施の形態を図面を参照して説明する。複数の図面中同一のものには同じ参照符号を付し、説明は繰り返さない。
【実施例１】
【００１４】
図１に、この発明の発話文生成装置１００の機能構成例を示す。その動作フローを図２に示す。発話文生成装置１００は、話題抽出部１１０と、発話文生成部１２０と、制御部１３０と、を具備する。発話文生成装置１００は、例えばＲＯＭ、ＲＡＭ、ＣＰＵ等で構成されるコンピュータに所定のプログラムが読み込まれて、ＣＰＵがそのプログラムを実行することで実現されるものである。以下説明する各装置についても同じである。
【００１５】
発話文生成装置１００は、ユーザ発話を音声認識した結果の形態素列、若しくはユーザ発話のテキスト文を、形態素解析部１４０で形態素解析した形態素列を入力とする。図１に破線で示す形態素解析部１４０、若しくは図示しない音声認識部を、発話文生成装置１００に含めても良い。
【００１６】
話題抽出部１１０は、発話文の形態素列を入力として、当該発話文の内容を表す単語又は当該単語と係り受け構造を抽出する（ステップＳ１１０）。つまり、話題とは、発話文の内容を表す単語と係り受け構造のことである。発話文とは、対話システムにおけるユーザ発話であり、ユーザの発話音声そのものであっても良いし、ユーザ発話を音声認識した結果のテキスト文であっても良い。発話文は、１〜３文程度で構成される比較的短い文章である。
【００１７】
以降の説明において、発話文の内容を表す単語を焦点語と定義して説明を行う。焦点語の抽出には、例えば参考文献１（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.）や参考文献２（Marilyn A. Walker, 1998. Centering, Anaphora Resolution, and Discourse Structure  Oxford University Press on Demand.）に記載された従来技術を用いる。なお、発話文の内容を表す単語と係り受け構造を抽出して対話発話文を生成する実施例については、実施例５以降において説明する。
【００１８】
発話文生成部１２０は、話題抽出部１１０で抽出した焦点語を入力として、当該焦点語をテンプレートに代入することで対話発話文を生成する（ステップＳ１２０）。テンプレートとは、焦点語が組み込まれる（代入される）定型文のことである。具体例は後述する。
【００１９】
ユーザ発話文を例えば「今日は豊洲の映画館で映画Ａを見ました。」とした場合、話題の焦点を表す単語は、固有名詞の「豊洲の映画館」と「映画Ａ」の２つの単語である。「豊洲の映画館」は、「豊洲」という地名を表す固有名詞と、助詞の「の」と、一般名詞の「映画館」と、から成る文節であるが、この実施例では固有名詞として扱う。
【００２０】
テンプレートとしては、例えば、「いいですね。」や「好きですか。」等が用意されていると仮定する。テンプレートは、各焦点語について、発話意図ごとに複数種類分類して用意しておく。発話意図とは、「質問」、「自己開示」、「相槌」、などである。上記した「いいですね。」は相槌に、「好きですか」は質問に、それぞれ分類される。このように発話意図ごとにテンプレートを分類しておくことで、テンプレート間の関係性の見通しが良くなる。つまり、テンプレートの不要な重複を防止することができる。
【００２１】
発話文生成部１２０は、その前提において、固有名詞数×テンプレート数の数の「豊洲の映画館」＋「いいですね。」、「豊洲の映画館」＋「好きですか。」、「映画Ａ」＋「いいですね。」、「映画Ａ」＋「好きですか。」、の４つの対話発話文を生成する。この対話発話文の生成を繰り返す処理の制御は、制御部１３０が行う。制御部１３０は、発話文生成装置１００の各部の時系列動作を制御する一般的なものであり、特別な処理を行うものではない。他の実施例についても同様であり、以降、制御部の説明は省略する。対話システムでは、この複数の対話発話文の内、ユーザ発話に対応する１つが、図示しない発話文選択装置によって選択されて用いられる。
【００２２】
このように発話文生成装置１００によれば、ユーザ発話文の形態素列中に含まれる単語から話題の焦点を表す複数の焦点語を抽出し、その焦点語をテンプレートに代入することで対話発話文を生成するので、バリエーション豊富な対話発話文を生成することができる。
【実施例２】
【００２３】
図３に、この発明の発話生成装置２００の機能構成例を示す。その動作フローを図４に示す。発話生成装置２００は、関連語推定部２５０を備える点と、発話文生成部２２０の作用が、発話生成装置１００（図１）と異なる。
【００２４】
関連語推定部２５０は、焦点語抽出部１１０で抽出した焦点語を入力として、当該焦点語の類義語を関連語として推定する（ステップＳ２５０）。焦点語の類義語を推定する方法としては、シソーラス辞書を用いる方法や、ＬＤＡ（参考文献３：「David M. Blei, et al., Latent Dirichlet Allocation, the Journal of Machine Learning Research, vol. 3, pp. 993-1022, 2003）などの単語間の共起関係によって類義語を推定するトピックモデル（Topic Model）を用いる方法が知られている。シソーラス辞書やトピックモデルは周知である。
【００２５】
関連語推定部２５０は、焦点語の「映画Ａ」を入力として、例えばトピックモデルを用いて「○○○○」や「△△△△」など映画Ａに関連する単語や、「映画Ｂ」のような類似したジャンルの映画や、「○○」などの略語・表記ゆれを関連語として抽出する。
【００２６】
発話文生成部２２０は、焦点語抽出部１１０で抽出した焦点語と関連語推定部２５０で推定した関連語を入力として、当該焦点語と当該関連語をテンプレートに代入することで対話発話文を生成する（ステップＳ２２０）。この例では、「○○○○」＋「いいですね。」や、「△△△△」＋「いいですね。」や、「○○」＋「いいですね。」などが対話発話文として追加される。
【００２７】
発話生成装置２００は、発話生成装置１００に対して、関連語推定部２５０で推定した関連語が追加されるので、対話発話文のバリエーションを更に豊富にすることができる。
【実施例３】
【００２８】
図５に、この発明の発話文生成装置３００の機能構成例を示す。その動作フローを図６に示す。発話文生成装置３００は、係り受け関係解析部３６０を備える点と、焦点語抽出部３１０の作用が、発話文生成装置２００（図３）と異なる。関連語推定部２５０と発話文生成部２２０は、参照符号から明らかなように発話文生成装置２００（図３）と同じものである。
【００２９】
係り受け関係解析部３６０は、形態素列を入力として、当該形態素列の係り受け解析を行って、文節の係り受け関係を出力する（ステップＳ３６０）。係り受け解析は、一般的な日本語係り受け解析手法を用いる。
【００３０】
例えば、ユーザ発話文を「今日は豊洲の映画館で映画Ａを見ました。」とした場合の形態素列と係り受けの関係を、図７に示す。図７の１行目は形態素列、２行目は文節の係り受け関係である。表１に、その係り受け関係を示す。
【００３１】
【表１】
2018195330.tif 000003
【００３２】
焦点語抽出部３１０は、ユーザ発話文の形態素列と係り受け関係解析部３６０で解析した係り受け関係を入力として、当該形態素列中に含まれる話題の焦点を表す固有名詞、一般名詞、述語、の複数の焦点語を抽出する（ステップＳ３１０）。述語とは、事態性名詞、動詞、形容詞、形容動詞、のことである。なお、事態性名詞とは特定の事態を喚起する名詞であり、少なくとも以下の４タイプがある（参考文献４：「黒田航、「事態性名詞の項構造と動詞の項構造の統合・ＰＭＡを使った日本語の支援動詞構文の分析とその合意」、言語処理学会年次大会,2008」）。Ａ：動詞の連用形、Ｂ：サ変名詞、Ｃ：非連用形／非サ変の抽象名詞（支援動詞を要求）、Ｄ：非連用形／非サ変の具象名詞（特定の動詞と組み合わされて事態名詞化する）。
【００３３】
例えば、ユーザ発話文を「今日は映画の○△□○を見ました。」とした場合、焦点語抽出部３１０は、ユーザ発話文に含まれる固有名詞の「○△□○」を焦点語として抽出する。固有名詞が複数含まれるユーザ発話文の場合、焦点語抽出部３１０は、最も発話末尾に近いものから任意のＮ個（Ｎは自然数）の固有名詞を焦点語として抽出する。
【００３４】
また、焦点語抽出部３１０は、ユーザ発話文に含まれる一般名詞の内、出現数が少ないものを焦点語として抽出する。出現数がすくないものを焦点語にする理由は、一般的で話題を表現しない例えば「こと」などの名詞を抽出しないようにするためである。この例では、「映画」を抽出する。
【００３５】
また、焦点語抽出部３１０は、最も上位で係られている述語を焦点語として抽出する。なお、日本語では、前から後ろの単語に係る場合が多いため、文末に最も近い述語を焦点語として抽出するようにしても良い。
【００３６】
発話文生成部２２０は、焦点語が固有名詞の場合、固有名詞は関連する形容詞・動詞は、対話発話文として適切に当てはまる事が多いため、テンプレートを、「［固有名詞］は［形容詞］らしいですねー」とした場合、「○△□○は面白いらしいですねー」を対話発話文として生成する。ここで用いる形容詞・動詞は、関連語推定部２５０において例えばトピックモデルを用いて推定した関連語に含まれるものである。
【００３７】
また、焦点語が一般名詞の場合、一般名詞に関連する形容詞・動詞は、文脈に依存したものが出現する場合が多い。そのため、発話文生成部２２０は、関連する形容詞・動詞をそのまま用いて対話発話文を生成する。例えば、関連する形容詞・動詞を、「面白い」、「楽しい」等と仮定し、テンプレートを「どんな［一般名詞］が［形容詞・動詞］ですか？」とした場合、「どんな映画が面白いですか？」を発話文として生成する。このように１つのテンプレートに２つの異なる単語を代入して対話発話文を生成する場合は、焦点語と関連語の全ての組み合わせの対話発話文が生成される（図６：ステップＳ３３０）。
【００３８】
なお、関連する形容詞・動詞をそのまま用いると対話の文脈に合わない不適切な対話発話文になる場合も考えられる。その場合は、形容詞のポジティブ/ネガティブを日本語評価表現辞書を用いて推定し、それに合わせて「好き」、「苦手」のように話題によらずに適用可能な評価表現を付与して対話発話文を生成するようにしても良い。例えば、テンプレートとして「どんな［一般名詞］が好きですか？」や「どんな［一般名詞］が苦手ですか？」などを用意しておいて、一般名詞を当てはめても良い。
【００３９】
また、焦点語が述語の場合、発話文生成部２２０は、述語（事態性名詞・動詞）に係る名詞と表層格を利用して対話発話文を生成する。係り受け関係にある名詞をそのまま用いるとＹｅｓ/Ｎｏで答える対話発話文となり話題が広がらないため、名詞の語義をワードネット（Wordnet）のような語彙体系から推定して、ロケーションに対応するどこで（Where）、何時（Time）に対応する５Ｗ１Ｈ型の質問を生成する。ただし、時制の一致は扱いが難しいため、特に「ロケーション」を尋ねるWhereを優先的に生成する。例えば、テンプレートを「どこ［表層格］［述語］んですか？」とした場合、「どこで見たんですか？」を対話発話文として生成する。
【００４０】
発話文生成装置３００によれば、係り受け関係にある単語群をテンプレートに代入するので、幅広い話題に対応可能で、且つ、意味の通った対話発話文を生成することができる。なお、係り受け関係解析部３６０の構成を発話文生成装置２００に追加する形で説明したが、係り受け関係解析部３６０を発話文生成装置１００に追加した構成、つまり関連語推定部２５０を省略した構成の発話文生成装置も考えられる。
【実施例４】
【００４１】
図８に、この発明の発話文生成装置４００の機能構成例を示す。発話文生成装置４００は、係り受け関係辞書４７０を備える点と、関連語推定部４５０の作用が、発話文生成装置２００（図３）と異なる。話題抽出部１１０と発話文生成部２２０は、参照符号から明らかなように発話文生成装置２００（図３）と同じものである。発話文生成装置４００の動作フローは、発話文生成装置２００の動作フロー（図４）と同じである。
【００４２】
係り受け関係辞書４７０は、大量の自然文から所定の単語に対する係り受け関係として出現した単語群をその回数と共に記録したものである。係り受け関係辞書４７０は、例えば参考文献３（竹内孔一他、「意味の包含関係に基づく動詞項構造の細分類」、言語処理学会年次大会,2008.）に記載されているものであり、別途構築されたものである。
【００４３】
係り受け関係辞書４７０は、口語調の表現が大量に含まれるマイクロブログ等の記事から自然文を収集し単語間の関係性を抽出して構築したものとする。マイクロブログは、主観的な文章を大量に含むことから、ある単語に対する主観的な表現が抽出されることが期待される。新聞記事などの書き言葉の文章から単語間の関係性を抽出するよりも対話システムに好適な係り受け関係辞書とすることができる。例えば、「映画Ａ」を含むマイクロブログからは「面白い」や「好き」、「恐ろしい」などの形容詞を、関連語として抽出できる可能性が高いと仮定する。
【００４４】
関連語推定部４５０は、話題抽出部１１０が抽出した焦点語を入力として、係り受け関係辞書４７０を参照して当該焦点語の関連語を抽出する。焦点語を、例えば「映画Ａ」とした場合、関連語推定部４５０は「面白い」や「好き」、「恐ろしい」などの形容詞を関連語として、係り受け関係辞書４７０から抽出する。
【００４５】
発話文生成部２２０は、話題抽出部１１０で抽出した焦点語と関連語推定部２５０で抽出した関連語を入力として、当該焦点語と当該関連語をテンプレートに代入することで対話発話文を生成する（ステップＳ２２０）。テンプレートを例えば、「[固有名詞]は[形容詞]らしいですねー」としておけば、発話文生成部２２０は、「映画Ａは面白いらしいですねー」の対話発話文を生成する。
【００４６】
発話文生成装置４００は、発話文生成装置２００（図３）に係り受け関係辞書４７０を加えた構成で説明したが、発話文生成装置３００（図５）に係り受け関係辞書４７０を加えて発話文生成装置を構成しても良い。
【００４７】
また、係り受け関係辞書４７０は、別途構築されたものを用いる例で説明を行ったが、係り受け関係辞書の内容を逐次更新するように構成しても良い。図９に、話題抽出部１１０に入力される形態素列を用いて逐次、係り受け関係辞書を更新するように構成した発話文生成装置５００の機能構成例を示す。
【００４８】
発話文生成装置５００の係り受け関係辞書５７０は、係り受け関係解析部３６０が出力する文節の係り受け関係と表層格を記録し、同一種類の係り受け関係と表層格についてその出現回数を更新して記録する。このように、係り受け関係辞書６７０を、逐次入力される形態素列で更新するように構成しても良い。
【００４９】
また、発話文生成装置内部で係り受け関係辞書を作成するようにしても良い。図１０に、発話文生成装置内部で係り受け関係辞書を構築するように構成した発話文生成装置６００の機能構成例を示す。
【００５０】
発話文生成装置６００の係り受け関係辞書６７０は、自然文一時記憶部６７１と、形態素解析部６７２と、係り受け関係解析部６７３と、係り受け関係記録部６７４と、で構成される。自然文一時記憶部６７１は、外部から収集した自然文を記憶する。外部とは、例えばインターネット等のネットワーク環境であり、Ｗｅｂ上のブログ記事などを定期的に受信して記憶する。
【００５１】
形態素解析部６７２は、自然文一時記憶部６７１に記憶されたテキスト情報を形態素解析して形態素列を出力する。係り受け関係解析部６７３は、形態素解析部６７２が出力する形態素列から単語間の係り受け関係を推定し、係り受け関係と表層格を抽出する。例えば、図７に示す係り受け関係の「今日」は「は」格と共に「動詞」「見ました。」に接続されているとしてその関係を出力する。
【００５２】
係り受け関係記録部６７４は、係り受け関係解析部６７３が出力する係り受け関係と表層格を記録する。この時、同じ係り受け関係と表層格は、その出現回数を更新して記録する。このように、係り受け関係辞書６７０を自動的に構築するように構成しても良い。
【実施例５】
【００５３】
図１１に、この発明の発話文生成装置７００の機能構成例を示す。発話文生成装置７００は、話題抽出部７１０と、係り受け関係解析部３６０と、関連話題抽出部７８０と、発話文生成部７２０と、を備える。係り受け関係解析部３６０は、参照符号から明らかなように発話文生成装置３００（図５）と同じものである。
【００５４】
話題抽出部７１０は、形態素列と、係り受け関係解析部３６０が出力する係り受け関係を入力として、形態素列中に含まれる発話文の話題を表す単語と係り受け構造を抽出する。ここで、係り受け構造とは、係り受け関係を持つ２つの文節からなる組のことである。
【００５５】
発話文を例えば「かなりお腹が空きました。」とした場合、その発話文を形態素解析した結果を図１２に示す。１行目は発話文、２行目は形態素解析結果、３行目は係り受け解析結果、４行目以降に係り受け構造、を示す。
【００５６】
係り受け関係解析部３６０が出力する係り受け関係のうち、ストップワードを含まないものを全て話題とする。単語は固有名詞のみを話題として用いる。ストップワードには、代名詞と、「する、いう、なる、ある、いる」などの特定の意味を伴わず使われる補助的な動詞と、「こと、の」などの抽象名詞と、時間に関する単語である例えば「今日」、「先日」、「○時○分」などの単語を用いる。ストップワードは、使用頻度が高く特定の意味を持たない単語である。例えば、「〜みたいな」等の話事が特有の語尾などもストップワードに含まれる。
【００５７】
つまり、発話文抽出部７１０は、ストップワードを含む係り受け構造及び単語を発話文の話題から除外する処理を行う。ただし、このように単語の意味で決める方法以外に、出現数でフィルタする方法も有用である。フィルタとは、例えばＴＦＩＤＦのような考えを導入することである。
【００５８】
なお、単語と係り受け構造（話題）を抽出する際、文節の先頭単語の標準形、ＰＯＳタグ、文節の一意性を表す文節ＩＤ、簡単な意味属性（場所、動作、質問、…）、文節の内容語句の表記、内容語句の標準形、格情報、を同時に抽出するようにしても良い。
【００５９】
関連話題抽出部７８０は、発話文の話題を表す単語及び係り受け構造を入力として当該単語と係り受け構造と関連の深い関連単語と関連係り受け構造を出力する。ここで、関連の深いとは、文節間で同一若しくは類義の単語が共起すること、文節間で係り受け関係が存在すること、コーパス中で強い共起関係がある単語の組が、対となる２文節内に１つずつ含まれることを意味する。なお、文節間での係り受け関係とは、係り受け構造Ａ中の文節のうち少なくとも１つが係り受け構造Ｂ中の文節と係り受け関係にある状態である。図１３にその状態を例示する。「お腹・空いた」の「空いた」に係る「空いて・きつい」の「きつい」に係る文節である「だいぶ・きつい」が、当該単語と係り受け構造に係る係り受け構造となる。
【００６０】
ここで、関連単語と関連係り受け構造は、関連話題ということになる。この「だいぶ・きつい」の関連係り受け構造は、発話文の話題を表す単語及び係り受け構造に、上記した定義を参考に予め決めたルールを適用することで生成される。最も単純な方法としては、「お腹・空いた」の係り受け構造に対応する「だいぶ・きつい」の文節を、関連話題抽出部７８０に用意しておく。なお、ルール以外に関連係り受け構造を生成する方法として、単語の共起関係のある文節や、類義語を含む文節、係り受け関係のある文節、コーパス中で共起関係が強い単語を持つ文節を関連話題としてもよい。
【００６１】
発話文生成部７２０は、話題抽出部７１０が出力する発話文の話題を表す単語及び係り受け構造と、関連話題抽出部７８０が出力する関連単語と関連係り受け構造を入力として、それらの単語と係り受け構造をテンプレートに入力することで対話発話文を生成する。テンプレートは、上記したものと同じである。例えば、テンプレートとして「ですよね」や「ですか？」を用意しておき、抽出した係り受け構造を代入することで、「だいぶきついですよね」や「だいぶきついですか？」等の対話発話文を生成する。
【００６２】
発話文生成装置７００によれば、入力された発話文の話題を表す単語と係り受け構造（話題）と、その係り受け構造と係り受け関係にある関連単語と関連係り受け構造（関連話題）と、に対応する対話発話文を生成するので、発話文生成装置３００よりも更に幅広い話題に対応した意味の通った対話発話文を生成することができる。
【実施例６】
【００６３】
図１４に、この発明の発話文生成装置８００の機能構成例を示す。発話文生成装置８００は、発話文生成装置７００に対して、係り受け関係データベース８９０を備える点と、関連話題抽出部８８０の機能の点で、異なる。
【００６４】
係り受け関係データベース８９０は、或る係り受け構造が与えられた場合に、その係り受け構造に係る係り受け構造を検索することのできるデータベースである。例えば、「お腹・が・空く」という構造から、この構造に係る係り受け構造を検索すると、図１５に示す結果が得られるデータベースである。また、この検索を多段に行えるようにすると、「お腹が空く」に係る「飯・食う」を検索し、更に「飯・食う」に係る係り受け構造、というように検索することも可能である。この実施例では、大量の自然文から出現した係り受け構造を、その係り受け構造が出現した自然文を表す一意な番号（文番号）と共に記憶することで、係り受け関係データベース８９０を構築する。その構築方法の具体例は後述する。
【００６５】
関連話題抽出部８８０は、発話文の話題を表す単語及び係り受け構造を入力とし、係り受け関係データベース８９０を参照して関連単語と関連係り受け構造を抽出して出力する。抽出に当たって、発話文の話題を表す単語及び係り受け構造（話題）がどのような品詞を持つか分からないと、関連する単語と関連する係り受け構造が何を表すか分からないうえに、テンプレートに上手く合致しない関連単語と関連係り受け構造が抽出され得る。そのため、抽出したい話題の種類ごとに入力される話題の品詞と抽出対象の話題の品詞によって制約される条件を設定する。条件を設定することで話題の種類が明確で、且つテンプレートに合致し易い話題を抽出することができる。
【００６６】
条件例として、入力される係り受け構造が（単語Ａ・格Ｆ・単語Ｂ）で構成され、抽出対象の関連する係り受け構造が（単語Ｃ・格Ｇ・単語Ｄ）で構成されるものとして説明する。更に、動詞、形容詞、動名詞、形容動詞のような述語になり易い品詞を指して「述語」、動詞・動名詞のような動作を表現する品詞を指して「動作詞」、形容詞・形容動詞のような評価表現になり易い品詞を指して「評価詞」と定義する。
【００６７】
評価表現を含む関連単語と関連係り受け構造を抽出するためには、単語Ａ：一般・固有名詞、単語Ｂ：動作詞、単語Ｄ：評価詞、単語Ｂ→単語Ｄへの係り受け、の制約条件の元で係り受け関係データベース８９０を検索する。以降において大文字のアルファベットは単語を意味するが、「単語」の文言を省略する場合もある。例えば、入力される係り受け構造を、単語Ａ：「お腹」→Ｂ：「空いて」とすると、図１６（ａ）に示す関連単語と関連係り受け構造を抽出することができる。このように入力される係り受け構造中の文節のうち少なくとも１つと係り受け関係（Ｂ：空いて→Ｄ：きつい）を持つ関連単語と関連係り受け構造（Ｃ：だいぶ→Ｄきつい）を抽出することができる。
【００６８】
（名詞・Ｆ・動作詞）で構成される係り受け構造は、いわゆる述語項構造に似た構造を持ち、何らかの出来事を表現される構造と想定される。この制約条件によって、その出来事に対する評価表現を含む話題（関連単語と関連係り受け構造）を抽出できる。
【００６９】
原因表現を含む関連単語と関連係り受け構造を抽出するためには、単語Ａ：一般・固有名詞、単語Ｂ：動作詞、単語Ｄ→Ｂに（Ｄ・Ｈ＝「ので・から」・Ｂ）の構造を持つ係り受け、単語Ｄ：動作詞、の制約条件で係り受け関係データベース８９０を検索する。入力される係り受け構造を、上記した例とすると、図１６（ｂ）に示すように（Ｃ・Ｇ・Ｄ）＋「から」＋（Ａ・Ｆ・Ｂ）という関連係り受け構造を取り出すことができ、（Ａ・Ｆ・Ｂ）が発生した理由を抽出できる。
【００７０】
疑問詞表現を含む関連単語と関連係り受け構造を抽出するためには、単語Ａ：一般・固有名詞、単語Ｂ：動作詞、単語Ｄ＝単語Ｂ、単語Ｃ：疑問詞、の制約条件とする。入力される係り受け構造を、上記した例とすると、図１６（ｃ）に示すように疑問詞＋（Ａ・Ｆ・Ｂ）という関係係り受け構造を取り出すことができ、（Ａ・Ｆ・Ｂ）について問う際に用いる疑問詞を抽出できる。
【００７１】
自己開示表現を含む関連単語と関連係り受け構造を抽出するためには、単語Ａ：一般・固有名詞、格Ｆ：「は」、単語Ｂ：名詞、「自分・の」→単語Ａの係り受け数大、単語Ｃ＝単語Ａ，格Ｇ：「は」、単語Ｄ：名詞、単語Ｄ≠単語Ｂ、の制約条件とする。ここで係り受け数大は、例えば上位３つくらいに絞る数である。入力される係り受け構造を、上記した例とすると、図１６（ｄ）に示すように、相手の（Ａ・はＢ）に対して、対応する「自分・の」＋（Ａ・は・Ｄ）の関連係り受け構造を抽出できる。
【００７２】
上記したように制約条件を設けて抽出した関連係り受け構造を用いて対話発話文を生成する場合の発話文生成部７２０の好ましいテンプレートの用意の仕方について説明する。
【００７３】
上記した発話文生成部７２０のテンプレートを、係り受け関係データベース８９０から関連単語と関連係り受け構造を抽出する際の制約条件ごとに作成することで、テンプレート間の関係性の見通しを良くすることができる。  評価表現を抽出した場合は、例えば、「単語Ｃ＋格Ｇ＋単語Ｄですよね」や「単語Ｃ＋格Ｇ＋単語Ｄですか？」のテンプレートを用意して、単語Ｃ＋格Ｇ＋単語Ｄですよね、や、単語Ｃ＋格Ｇ＋単語Ｄですか？の対話発話文を生成する。図１７（ａ）にその例を示す。発話意図（自己開示＿評価）の対話発話文「だいぶきついですよね」、（質問＿評価）の対話発話文「だいぶきついですか？」を生成することができる。
【００７４】
原因表現を抽出した場合は、例えば、「単語Ｃ＋格Ｇ＋単語Ｄの？」のテンプレートを用意して、図１７（ｂ）に示すように発話意図（質問＿事実）の「もしや何も食べていないの？」や「何も食べていないの？」の対話発話文を生成することができる。
【００７５】
疑問詞表現を抽出した場合は、例えば、「単語Ｃ＋格Ｇ？」や「単語Ｃ＋格Ｇ＋単語Ｂ？」のテンプレートを用意して、図１７（ｃ）に示すように発話意図（質問＿事実）の対話発話文「どうして？」や「どうして空く？」の対話発話文を生成することができる。ただし、単語Ｃが「どうして」など理由を問う疑問詞の場合には、対話発話文が不適切になる恐れがあるので、テンプレートを例えば次のように変更する。「単語Ｃ＋格Ｇ＋こうも単語Ａ＋単語Ｂかなあ」、とテンプレートを用意すると「どうしてこうもお腹がすくかな」といった対話発話文を生成することができる。
【００７６】
自己開示表現を抽出した場合は、例えば、「私の（単語Ｃ）は（単語Ｄ）です」や｛自分は（単語Ｄ）が（単語Ａ）です｝のテンプレートを用意して、図１７（ｄ）に示すように発話意図（自己開示＿事実）の「私のお腹はブラックホールです」の対話発話文を生成することができる。
【００７７】
制約条件なしに抽出した関連係り受け構造の出現数が上位のものをテンプレートに代入することで対話発話文を生成するようにしても良い。もちろん、抽出するための入力係り受け構造もテンプレートに代入する。
【００７８】
これらの係り受け構造に含まれる単語のみを用いて発話を生成する場合、各単語をどのような表現と共に用いれば良いかを適切に定める必要がある。そこで、検索された関連係り受け構造が属する文で使われている用例を、そのまま利用して対話発話文を生成する。例えば、後ろ方向の係り受け関係から対話発話文を生成する場合、入力係り受け構造から直接検索された係り受け構造ｘの表記（例えば「お腹空いたから」）の後段に関連係り受け構造ｚの表記（例えば「ご飯食べる」）を並べたものを単位として出現数を調べ、出現数が上位のものについて最後の部分のみ「○○ですね」のような簡易なテンプレートに合致するように変換して接続することで、「お腹すいたからご飯たべるんですね」のように対話発話文を生成する。
【００７９】
出現数が１回の場合は、その文脈固有の表現であることが多いので除外する。以上の方法により、入力係り受け構造と関連係り受け構造の接続や、それぞれが含む機能表現などを活かし、文法的に不自然になり難い対話発話文を得ることができる。
【００８０】
上記した係り受け関係データベース８９０の作成方法について図１８を参照して説明する。図１８に示す方法では、一つの係り元と係り先とから成るフラットな係り受け構造を記録したデータベースから、先ず、入力された係り受け構造ｉ中の２つの文節ｓ１ｉ,ｓ２ｉから、各文節の先頭単語の標準形を取りだし、入力係り受け構造に含まれる順で出現する係り受け構造群Ｘを検索する。
【００８１】
次に、得られた係り受け構造ｘ∈Ｘごとに、構成する文節ｓ１ｘ,ｓ２ｘ∈ｓｘの何れかを含む係り受け構造ｙを、文ＩＤと文節ＩＤを利用して検索する。係り受け構造ｙはｘ中の文節ｓ１ｘ,ｓ２ｘの何れかを含むため、ｙはｘと一部の文節が重複した関連係り受け構造と考えることができる。
【００８２】
更に、ｙを構成する文節ｓ１ｙ,ｓ２ｙ∈ｓｙを含みｓｘを含まないものを同様に検索しｚとすると「お腹→空いた」に対する「ごはん→食べる」のような文節が重複しない関連係り受け構造を得ることができる。このようにして得られた関連係り受け構造は、入力された係り受け構造に対して理由や結果、限定など特定の関連する性質を持っている。入力される係り受け構造に対する出現位置と係る格によって、その性質が異なると考えられる。
このようにして得られた関連係り受け構造をデータベース化したものが係り受け関係データベース８９０である。係り受け関係データベース８９０を備えた発話文生成装置８００は、フラットな係り受け構造から、当該係り受け構造に係る関連係り受け構造をシステマチックに抽出したデータベースを用いるので、発話文生成装置７００に対して更に幅広い対話発話文を生成することができる。フラットな係り受け構造とは、一つの係り元と係り先とから成る係り受け構造のことである。
【００８３】
また、係り受け関係データベース８９０は、図１８に示した方法で一つの係り元と係り先とから成るフラットな係り受け構造を記録した係り受け関係データベース８９０′から作成する関係にあるが、関連係り受け構造を検索する処理を、その都度行う構成も考えられる。つまり、関連係り受け構造を予めデータベース化しておくのではなく、関連係り受け構造を毎回検索するようにしても良い。
【００８４】
その場合の関連話題抽出部８８０′は、図１８で説明した方法で関連単語と関連係り受け構造を検索する。検索には、品詞情報や格、単語情報などを用いても良い。この関連係り受け構造を毎回検索方法は、計算量は増加するが、係り受けの深さを自由に変えることができるので、多様な対話発話文を生成するのに有利な方法である。
【実施例７】
【００８５】
図１９に、この発明の発話文生成装置９００の機能構成例を示す。発話文生成装置９００は、発話文生成装置８００に対して、自然文記憶部９９５を備える点と、発話文生成部９２０の機能の点で、異なる。
【００８６】
自然文記憶部９９５は、係り受け関係データベース８９０に記憶された係り受け構造と格に対応する文番号に対応した自然文を記憶したものである。発話文生成部９２０は、話題抽出部３１０から入力される単語と係り受け構造を表す文番号と、関連話題抽出部８８０から入力される関連単語と関連係り受け構造を表す文番号とに、文番号で対応する自然文を、自然文記憶部９９５から読み出して対話発話文を生成する。対話発話文は、自然文記憶部９９５から読み出した自然文そのままでも良いし、その文末を「です」「ます」に変える等の変更を行っても良い。
【００８７】
発話文生成装置９００によれば、テンプレートを用いずに大量の自然文から対話発話文を生成するので、幅広い話題の発話文に対する対話発話文を生成することが可能である。自然文記憶部９９５に記憶する自然文は、上記した係り受け関係辞書４７０と同様に、口語調の対話発話文を生成する目的では、主観的な発言を大量に含むマイクロブログから収集すると好ましい。
【００８８】
なお、自然文記憶部９９５は、上記した実施例の全てに設けても良い。例えば、自然文記憶部９９５を備えた発話文生成装置１００′は、話題抽出部１１０が出力する焦点語をクエリとして、自然文記憶部９９５から類義語を検索して対話発話文を生成するようにしても良い。
【００８９】
以上説明した発話文生成装置１００によれば、ユーザ発話文から話題の焦点を表す複数の焦点語を抽出し、その複数の焦点語をテンプレートに代入して対話発話文を生成するので、バリエーション豊富な対話発話文の生成が可能である。また、発話文生成装置２００によれば、焦点語の類義語である関連語を推定し、焦点語と関連語とを用いて発話文を生成するので、より幅広い話題に対応できる対話発話文を生成することが可能である。
【００９０】
また、発話文生成装置３００によれば、係り受け関係にある単語群をテンプレートに代入するので、幅広い話題に対応可能で、且つ、意味の通った対話発話文を生成することができる。また、発話文生成装置３００，４００，５００，６００は、焦点語と関連語との関連性の推定に、マイクロブログ等の大量の自然文に含まれる係り受け関係を利用するので、ユーザ発話文に対する対話発話文のバリエーションを豊富にすることができる。
【００９１】
また、発話文生成装置７００は、発話文の内容を表す単語と係り受け構造と当該単語と係り受け構造に係る関連単語と関連係り受け構造を、テンプレートに代入するので更に幅広い話題に対応可能で、意味の通った対話発話文を生成することができる。また、発話文生成装置８００は、係り受け関係データベース８９０を用いるので、より幅の広い対話発話文を生成することができる。また、発話文生成装置９００は、テンプレートを用いずに大量の自然文から対話発話文を生成するので、幅広い話題に対応した自然な表現の対話発話文を生成することができる。
【００９２】
上記装置における処理手段をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、各装置における処理手段がコンピュータ上で実現される。
【００９３】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記録装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００９４】
また、各手段は、コンピュータ上で所定のプログラムを実行させることにより構成することにしてもよいし、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
2018195330.tif 000004
【図２】
2018195330.tif 000005
【図３】
2018195330.tif 000006
【図４】
2018195330.tif 000007
【図５】
2018195330.tif 000008
【図６】
2018195330.tif 000009
【図７】
2018195330.tif 000010
【図８】
2018195330.tif 000011
【図９】
2018195330.tif 000012
【図１０】
2018195330.tif 000013
【図１１】
2018195330.tif 000014
【図１２】
2018195330.tif 000015
【図１３】
2018195330.tif 000016
【図１４】
2018195330.tif 000017
【図１５】
2018195330.tif 000018
【図１６】
2018195330.tif 000019
【図１７】
2018195330.tif 000020
【図１８】
2018195330.tif 000021
【図１９】
2018195330.tif 000022