JP6676110B2 - 発話文生成装置とその方法とプログラム - Google Patents

発話文生成装置とその方法とプログラム Download PDF

Info

Publication number
JP6676110B2
JP6676110B2 JP2018136790A JP2018136790A JP6676110B2 JP 6676110 B2 JP6676110 B2 JP 6676110B2 JP 2018136790 A JP2018136790 A JP 2018136790A JP 2018136790 A JP2018136790 A JP 2018136790A JP 6676110 B2 JP6676110 B2 JP 6676110B2
Authority
JP
Japan
Prior art keywords
dependency
utterance sentence
word
dependency structure
utterance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018136790A
Other languages
English (en)
Other versions
JP2018195331A (ja
Inventor
弘晃 杉山
弘晃 杉山
東中 竜一郎
竜一郎 東中
豊美 目黒
豊美 目黒
南 泰浩
泰浩 南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JP2018195331A publication Critical patent/JP2018195331A/ja
Application granted granted Critical
Publication of JP6676110B2 publication Critical patent/JP6676110B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、ユーザ(利用者)と自然言語を用いて対話するシステム(以下、対話システム)における発話文生成装置とその方法と、プログラムに関する。
近年、特定のタスクを持たないオープンドメインな雑談を行う雑談対話システムへのニーズが高まっている。こうした雑談対話は、それ自体がセラピー的な性質を持つ可能性があるとともに、タスク指向対話システムにおいても、ユーザ自身が気づいていない要求の顕在化に応用できる可能性があり、非常に重要である。しかし、オープンドメインな雑談対話システムでは、ユーザ発話のバリエーションが格段に広がるため、適切に応答するための知識源を予め人手で構築し切ることは極めて困難である。
この問題に対する従来からのアプローチとして、人が興味を持ちそうな話題について予めルールで応答パターンを記述しておく方法や、どのようなユーザ発話にも合致する無難な発話や質問を繰り返す方法(非特許文献1)などが知られている。
しかし、ルールで記述する方法では新語への対応が困難である。また、テープレコーダのように一定の条件で再生するのみであるため、対話が一問一答で終わり易く発展性がないことなどが問題である。非特許文献1に記載されたような文脈非依存アプローチでは、ユーザの発話をやり過ごすような発話になりがちなため、すぐに飽きられてしまう。
このような新語対応の困難さや単調さを克服するため、近年、Web上の大規模な文章を利用する動きが広まっている。例えば、非特許文献2又は3では、Web上の記事やマイクロブログ中のユーザ発話と類似した文を選択して発話文とする方法が開示されている。
しかし、類似文が出現した文脈は、ユーザ発話が現れた文脈とは異なるため、不要な発話文を含む課題があった。この課題を解決する目的で、ユーザ発話中に含まれる単語から話題の焦点を表す焦点語を推定し、焦点語をテンプレートに代入することで発話文を生成する方法が検討されている(非特許文献4)。
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). 柴田雅博ほか、「雑談自由対話を実現するためのWWW上の文書からの妥当な候補文選択手法」、人工知能学会論文誌,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.
しかし、従来の焦点語を用いる技術では焦点語を名詞に限定しており、その数も1個としていたことから、バリエーションの豊富な発話文を生成できない課題があった。
本発明は、この課題に鑑みてなされたものであり、バリエーション豊富な発話文の生成を可能にした発話文生成装置とその方法と、プログラムを提供することを目的とする。
本発明の一態様は、発話文の形態素列を入力として、当該発話文の内容を表す係り受け構造を抽出する話題抽出部と、上記係り受け構造を入力として、当該係り受け構造を構成する文節のいずれかを含み当該係り受け構造とは異なる第1の関連係り受け構造を出力する関連話題抽出部と、上記係り受け構造と上記第1の関連係り受け構造を入力として、上記係り受け構造と上記第1の関連係り受け構造をテンプレートに代入することで対話発話文を生成する発話文生成部と、を具備する。
本発明の一態様は、発話文の形態素列を入力として、当該発話文の内容を表す係り受け構造を抽出する話題抽出部と、Nを1以上の整数、上記係り受け構造を第0の関連係り受け構造とし、上記第0の関連係り受け構造を入力として、当該第0の関連係り受け構造を構成する文節のいずれかを含み当該第0の関連係り受け構造とは異なる第1の関連係り受け構造を得、i=1,…,Nについて、第iの関連係り受け構造を構成する文節のいずれかを含み、かつ、第i-1の関連係り受け構造を構成する文節のいずれも含まない第i+1の関連係り受け構造を得、第kの関連係り受け構造(k=1,…,N+1)を出力する関連話題抽出部と、上記第jの関連係り受け構造(j=0,…,N+1)を入力として、上記第jの関連係り受け構造(j=0,…,N+1)をテンプレートに代入することで対話発話文を生成する発話文生成部と、を具備する。
本発明の発話文生成装置によれば、ユーザ発話の話題を利用した適切な発話文生成が可能になる。大量の自然文から話題に関連する係り受け構造を収集するため、幅広い話題のユーザ発話に対する発話文を生成することが可能になる。
本発明の発話文生成装置100の機能構成例を示す図。 発話文生成装置100の動作フローを示す図。 本発明の発話文生成装置200の機能構成例を示す図。 発話文生成装置200の動作フローを示す図。 本発明の発話文生成装置300の機能構成例を示す図。 発話文生成装置300の動作フローを示す図。 ユーザ発話文の形態素列と係り受けの関係を示す図。 本発明の発話文生成装置400の機能構成例を示す図。 本発明の発話文生成装置500の機能構成例を示す図。 本発明の発話文生成装置600の機能構成例を示す図。 本発明の発話文生成装置700の機能構成例を示す図。 発話文を形態素解析した結果の一例を示す図。 係り受け構造中の文節のうち少なくとも1つが他の係り受け構造中の文節と係り受け関係にある状態を例示する図。 本発明の発話文生成装置800の機能構成例を示す図。 係り受け関係データベース890を検索することで得られる係り受け構造を例示する図。 関連単語と関連係り受け構造の例を示す図。 対話発話文の例を示す図。 関連係り受け構造を検索する概要を示す図。 本発明の発話文生成装置900の機能構成例を示す図。
以下、この発明の実施の形態を図面を参照して説明する。複数の図面中同一のものには同じ参照符号を付し、説明は繰り返さない。
図1に、この発明の発話文生成装置100の機能構成例を示す。その動作フローを図2に示す。発話文生成装置100は、話題抽出部110と、発話文生成部120と、制御部130と、を具備する。発話文生成装置100は、例えばROM、RAM、CPU等で構成されるコンピュータに所定のプログラムが読み込まれて、CPUがそのプログラムを実行することで実現されるものである。以下説明する各装置についても同じである。
発話文生成装置100は、ユーザ発話を音声認識した結果の形態素列、若しくはユーザ発話のテキスト文を、形態素解析部140で形態素解析した形態素列を入力とする。図1に破線で示す形態素解析部140、若しくは図示しない音声認識部を、発話文生成装置100に含めても良い。
話題抽出部110は、発話文の形態素列を入力として、当該発話文の内容を表す単語又は当該単語と係り受け構造を抽出する(ステップS110)。つまり、話題とは、発話文の内容を表す単語と係り受け構造のことである。発話文とは、対話システムにおけるユーザ発話であり、ユーザの発話音声そのものであっても良いし、ユーザ発話を音声認識した結果のテキスト文であっても良い。発話文は、1〜3文程度で構成される比較的短い文章である。
以降の説明において、発話文の内容を表す単語を焦点語と定義して説明を行う。焦点語の抽出には、例えば参考文献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以降において説明する。
発話文生成部120は、話題抽出部110で抽出した焦点語を入力として、当該焦点語をテンプレートに代入することで対話発話文を生成する(ステップS120)。テンプレートとは、焦点語が組み込まれる(代入される)定型文のことである。具体例は後述する。
ユーザ発話文を例えば「今日は豊洲の映画館で映画Aを見ました。」とした場合、話題の焦点を表す単語は、固有名詞の「豊洲の映画館」と「映画A」の2つの単語である。「豊洲の映画館」は、「豊洲」という地名を表す固有名詞と、助詞の「の」と、一般名詞の「映画館」と、から成る文節であるが、この実施例では固有名詞として扱う。
テンプレートとしては、例えば、「いいですね。」や「好きですか。」等が用意されていると仮定する。テンプレートは、各焦点語について、発話意図ごとに複数種類分類して用意しておく。発話意図とは、「質問」、「自己開示」、「相槌」、などである。上記した「いいですね。」は相槌に、「好きですか」は質問に、それぞれ分類される。このように発話意図ごとにテンプレートを分類しておくことで、テンプレート間の関係性の見通しが良くなる。つまり、テンプレートの不要な重複を防止することができる。
発話文生成部120は、その前提において、固有名詞数×テンプレート数の数の「豊洲の映画館」+「いいですね。」、「豊洲の映画館」+「好きですか。」、「映画A」+「いいですね。」、「映画A」+「好きですか。」、の4つの対話発話文を生成する。この対話発話文の生成を繰り返す処理の制御は、制御部130が行う。制御部130は、発話文生成装置100の各部の時系列動作を制御する一般的なものであり、特別な処理を行うものではない。他の実施例についても同様であり、以降、制御部の説明は省略する。対話システムでは、この複数の対話発話文の内、ユーザ発話に対応する1つが、図示しない発話文選択装置によって選択されて用いられる。
このように発話文生成装置100によれば、ユーザ発話文の形態素列中に含まれる単語から話題の焦点を表す複数の焦点語を抽出し、その焦点語をテンプレートに代入することで対話発話文を生成するので、バリエーション豊富な対話発話文を生成することができる。
図3に、この発明の発話生成装置200の機能構成例を示す。その動作フローを図4に示す。発話生成装置200は、関連語推定部250を備える点と、発話文生成部220の作用が、発話生成装置100(図1)と異なる。
関連語推定部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)を用いる方法が知られている。シソーラス辞書やトピックモデルは周知である。
関連語推定部250は、焦点語の「映画A」を入力として、例えばトピックモデルを用いて「○○○○」や「△△△△」など映画Aに関連する単語や、「映画B」のような類似したジャンルの映画や、「○○」などの略語・表記ゆれを関連語として抽出する。
発話文生成部220は、焦点語抽出部110で抽出した焦点語と関連語推定部250で推定した関連語を入力として、当該焦点語と当該関連語をテンプレートに代入することで対話発話文を生成する(ステップS220)。この例では、「○○○○」+「いいですね。」や、「△△△△」+「いいですね。」や、「○○」+「いいですね。」などが対話発話文として追加される。
発話生成装置200は、発話生成装置100に対して、関連語推定部250で推定した関連語が追加されるので、対話発話文のバリエーションを更に豊富にすることができる。
図5に、この発明の発話文生成装置300の機能構成例を示す。その動作フローを図6に示す。発話文生成装置300は、係り受け関係解析部360を備える点と、焦点語抽出部310の作用が、発話文生成装置200(図3)と異なる。関連語推定部250と発話文生成部220は、参照符号から明らかなように発話文生成装置200(図3)と同じものである。
係り受け関係解析部360は、形態素列を入力として、当該形態素列の係り受け解析を行って、文節の係り受け関係を出力する(ステップS360)。係り受け解析は、一般的な日本語係り受け解析手法を用いる。
例えば、ユーザ発話文を「今日は豊洲の映画館で映画Aを見ました。」とした場合の形態素列と係り受けの関係を、図7に示す。図7の1行目は形態素列、2行目は文節の係り受け関係である。表1に、その係り受け関係を示す。
Figure 0006676110
焦点語抽出部310は、ユーザ発話文の形態素列と係り受け関係解析部360で解析した係り受け関係を入力として、当該形態素列中に含まれる話題の焦点を表す固有名詞、一般名詞、述語、の複数の焦点語を抽出する(ステップS310)。述語とは、事態性名詞、動詞、形容詞、形容動詞、のことである。なお、事態性名詞とは特定の事態を喚起する名詞であり、少なくとも以下の4タイプがある(参考文献4:「黒田航、「事態性名詞の項構造と動詞の項構造の統合・PMAを使った日本語の支援動詞構文の分析とその合意」、言語処理学会年次大会,2008」)。A:動詞の連用形、B:サ変名詞、C:非連用形/非サ変の抽象名詞(支援動詞を要求)、D:非連用形/非サ変の具象名詞(特定の動詞と組み合わされて事態名詞化する)。
例えば、ユーザ発話文を「今日は映画の○△□○を見ました。」とした場合、焦点語抽出部310は、ユーザ発話文に含まれる固有名詞の「○△□○」を焦点語として抽出する。固有名詞が複数含まれるユーザ発話文の場合、焦点語抽出部310は、最も発話末尾に近いものから任意のN個(Nは自然数)の固有名詞を焦点語として抽出する。
また、焦点語抽出部310は、ユーザ発話文に含まれる一般名詞の内、出現数が少ないものを焦点語として抽出する。出現数がすくないものを焦点語にする理由は、一般的で話題を表現しない例えば「こと」などの名詞を抽出しないようにするためである。この例では、「映画」を抽出する。
また、焦点語抽出部310は、最も上位で係られている述語を焦点語として抽出する。なお、日本語では、前から後ろの単語に係る場合が多いため、文末に最も近い述語を焦点語として抽出するようにしても良い。
発話文生成部220は、焦点語が固有名詞の場合、固有名詞は関連する形容詞・動詞は、対話発話文として適切に当てはまる事が多いため、テンプレートを、「[固有名詞]は[形容詞]らしいですねー」とした場合、「○△□○は面白いらしいですねー」を対話発話文として生成する。ここで用いる形容詞・動詞は、関連語推定部250において例えばトピックモデルを用いて推定した関連語に含まれるものである。
また、焦点語が一般名詞の場合、一般名詞に関連する形容詞・動詞は、文脈に依存したものが出現する場合が多い。そのため、発話文生成部220は、関連する形容詞・動詞をそのまま用いて対話発話文を生成する。例えば、関連する形容詞・動詞を、「面白い」、「楽しい」等と仮定し、テンプレートを「どんな[一般名詞]が[形容詞・動詞]ですか?」とした場合、「どんな映画が面白いですか?」を発話文として生成する。このように1つのテンプレートに2つの異なる単語を代入して対話発話文を生成する場合は、焦点語と関連語の全ての組み合わせの対話発話文が生成される(図6:ステップS330)。
なお、関連する形容詞・動詞をそのまま用いると対話の文脈に合わない不適切な対話発話文になる場合も考えられる。その場合は、形容詞のポジティブ/ネガティブを日本語評価表現辞書を用いて推定し、それに合わせて「好き」、「苦手」のように話題によらずに適用可能な評価表現を付与して対話発話文を生成するようにしても良い。例えば、テンプレートとして「どんな[一般名詞]が好きですか?」や「どんな[一般名詞]が苦手ですか?」などを用意しておいて、一般名詞を当てはめても良い。
また、焦点語が述語の場合、発話文生成部220は、述語(事態性名詞・動詞)に係る名詞と表層格を利用して対話発話文を生成する。係り受け関係にある名詞をそのまま用いるとYes/Noで答える対話発話文となり話題が広がらないため、名詞の語義をワードネット(Wordnet)のような語彙体系から推定して、ロケーションに対応するどこで(Where)、何時(Time)に対応する5W1H型の質問を生成する。ただし、時制の一致は扱いが難しいため、特に「ロケーション」を尋ねるWhereを優先的に生成する。例えば、テンプレートを「どこ[表層格][述語]んですか?」とした場合、「どこで見たんですか?」を対話発話文として生成する。
発話文生成装置300によれば、係り受け関係にある単語群をテンプレートに代入するので、幅広い話題に対応可能で、且つ、意味の通った対話発話文を生成することができる。なお、係り受け関係解析部360の構成を発話文生成装置200に追加する形で説明したが、係り受け関係解析部360を発話文生成装置100に追加した構成、つまり関連語推定部250を省略した構成の発話文生成装置も考えられる。
図8に、この発明の発話文生成装置400の機能構成例を示す。発話文生成装置400は、係り受け関係辞書470を備える点と、関連語推定部450の作用が、発話文生成装置200(図3)と異なる。話題抽出部110と発話文生成部220は、参照符号から明らかなように発話文生成装置200(図3)と同じものである。発話文生成装置400の動作フローは、発話文生成装置200の動作フロー(図4)と同じである。
係り受け関係辞書470は、大量の自然文から所定の単語に対する係り受け関係として出現した単語群をその回数と共に記録したものである。係り受け関係辞書470は、例えば参考文献3(竹内孔一他、「意味の包含関係に基づく動詞項構造の細分類」、言語処理学会年次大会,2008.)に記載されているものであり、別途構築されたものである。
係り受け関係辞書470は、口語調の表現が大量に含まれるマイクロブログ等の記事から自然文を収集し単語間の関係性を抽出して構築したものとする。マイクロブログは、主観的な文章を大量に含むことから、ある単語に対する主観的な表現が抽出されることが期待される。新聞記事などの書き言葉の文章から単語間の関係性を抽出するよりも対話システムに好適な係り受け関係辞書とすることができる。例えば、「映画A」を含むマイクロブログからは「面白い」や「好き」、「恐ろしい」などの形容詞を、関連語として抽出できる可能性が高いと仮定する。
関連語推定部450は、話題抽出部110が抽出した焦点語を入力として、係り受け関係辞書470を参照して当該焦点語の関連語を抽出する。焦点語を、例えば「映画A」とした場合、関連語推定部450は「面白い」や「好き」、「恐ろしい」などの形容詞を関連語として、係り受け関係辞書470から抽出する。
発話文生成部220は、話題抽出部110で抽出した焦点語と関連語推定部250で抽出した関連語を入力として、当該焦点語と当該関連語をテンプレートに代入することで対話発話文を生成する(ステップS220)。テンプレートを例えば、「[固有名詞]は[形容詞]らしいですねー」としておけば、発話文生成部220は、「映画Aは面白いらしいですねー」の対話発話文を生成する。
発話文生成装置400は、発話文生成装置200(図3)に係り受け関係辞書470を加えた構成で説明したが、発話文生成装置300(図5)に係り受け関係辞書470を加えて発話文生成装置を構成しても良い。
また、係り受け関係辞書470は、別途構築されたものを用いる例で説明を行ったが、係り受け関係辞書の内容を逐次更新するように構成しても良い。図9に、話題抽出部110に入力される形態素列を用いて逐次、係り受け関係辞書を更新するように構成した発話文生成装置500の機能構成例を示す。
発話文生成装置500の係り受け関係辞書570は、係り受け関係解析部360が出力する文節の係り受け関係と表層格を記録し、同一種類の係り受け関係と表層格についてその出現回数を更新して記録する。このように、係り受け関係辞書670を、逐次入力される形態素列で更新するように構成しても良い。
また、発話文生成装置内部で係り受け関係辞書を作成するようにしても良い。図10に、発話文生成装置内部で係り受け関係辞書を構築するように構成した発話文生成装置600の機能構成例を示す。
発話文生成装置600の係り受け関係辞書670は、自然文一時記憶部671と、形態素解析部672と、係り受け関係解析部673と、係り受け関係記録部674と、で構成される。自然文一時記憶部671は、外部から収集した自然文を記憶する。外部とは、例えばインターネット等のネットワーク環境であり、Web上のブログ記事などを定期的に受信して記憶する。
形態素解析部672は、自然文一時記憶部671に記憶されたテキスト情報を形態素解析して形態素列を出力する。係り受け関係解析部673は、形態素解析部672が出力する形態素列から単語間の係り受け関係を推定し、係り受け関係と表層格を抽出する。例えば、図7に示す係り受け関係の「今日」は「は」格と共に「動詞」「見ました。」に接続されているとしてその関係を出力する。
係り受け関係記録部674は、係り受け関係解析部673が出力する係り受け関係と表層格を記録する。この時、同じ係り受け関係と表層格は、その出現回数を更新して記録する。このように、係り受け関係辞書670を自動的に構築するように構成しても良い。
図11に、この発明の発話文生成装置700の機能構成例を示す。発話文生成装置700は、話題抽出部710と、係り受け関係解析部360と、関連話題抽出部780と、発話文生成部720と、を備える。係り受け関係解析部360は、参照符号から明らかなように発話文生成装置300(図5)と同じものである。
話題抽出部710は、形態素列と、係り受け関係解析部360が出力する係り受け関係を入力として、形態素列中に含まれる発話文の話題を表す単語と係り受け構造を抽出する。ここで、係り受け構造とは、係り受け関係を持つ2つの文節からなる組のことである。
発話文を例えば「かなりお腹が空きました。」とした場合、その発話文を形態素解析した結果を図12に示す。1行目は発話文、2行目は形態素解析結果、3行目は係り受け解析結果、4行目以降に係り受け構造、を示す。
係り受け関係解析部360が出力する係り受け関係のうち、ストップワードを含まないものを全て話題とする。単語は固有名詞のみを話題として用いる。ストップワードには、代名詞と、「する、いう、なる、ある、いる」などの特定の意味を伴わず使われる補助的な動詞と、「こと、の」などの抽象名詞と、時間に関する単語である例えば「今日」、「先日」、「○時○分」などの単語を用いる。ストップワードは、使用頻度が高く特定の意味を持たない単語である。例えば、「〜みたいな」等の話事が特有の語尾などもストップワードに含まれる。
つまり、発話文抽出部710は、ストップワードを含む係り受け構造及び単語を発話文の話題から除外する処理を行う。ただし、このように単語の意味で決める方法以外に、出現数でフィルタする方法も有用である。フィルタとは、例えばTFIDFのような考えを導入することである。
なお、単語と係り受け構造(話題)を抽出する際、文節の先頭単語の標準形、POSタグ、文節の一意性を表す文節ID、簡単な意味属性(場所、動作、質問、…)、文節の内容語句の表記、内容語句の標準形、格情報、を同時に抽出するようにしても良い。
関連話題抽出部780は、発話文の話題を表す単語及び係り受け構造を入力として当該単語と係り受け構造と関連の深い関連単語と関連係り受け構造を出力する。ここで、関連の深いとは、文節間で同一若しくは類義の単語が共起すること、文節間で係り受け関係が存在すること、コーパス中で強い共起関係がある単語の組が、対となる2文節内に1つずつ含まれることを意味する。なお、文節間での係り受け関係とは、係り受け構造A中の文節のうち少なくとも1つが係り受け構造B中の文節と係り受け関係にある状態である。図13にその状態を例示する。「お腹・空いた」の「空いた」に係る「空いて・きつい」の「きつい」に係る文節である「だいぶ・きつい」が、当該単語と係り受け構造に係る係り受け構造となる。
ここで、関連単語と関連係り受け構造は、関連話題ということになる。この「だいぶ・きつい」の関連係り受け構造は、発話文の話題を表す単語及び係り受け構造に、上記した定義を参考に予め決めたルールを適用することで生成される。最も単純な方法としては、「お腹・空いた」の係り受け構造に対応する「だいぶ・きつい」の文節を、関連話題抽出部780に用意しておく。なお、ルール以外に関連係り受け構造を生成する方法として、単語の共起関係のある文節や、類義語を含む文節、係り受け関係のある文節、コーパス中で共起関係が強い単語を持つ文節を関連話題としてもよい。
発話文生成部720は、話題抽出部710が出力する発話文の話題を表す単語及び係り受け構造と、関連話題抽出部780が出力する関連単語と関連係り受け構造を入力として、それらの単語と係り受け構造をテンプレートに入力することで対話発話文を生成する。テンプレートは、上記したものと同じである。例えば、テンプレートとして「ですよね」や「ですか?」を用意しておき、抽出した係り受け構造を代入することで、「だいぶきついですよね」や「だいぶきついですか?」等の対話発話文を生成する。
発話文生成装置700によれば、入力された発話文の話題を表す単語と係り受け構造(話題)と、その係り受け構造と係り受け関係にある関連単語と関連係り受け構造(関連話題)と、に対応する対話発話文を生成するので、発話文生成装置300よりも更に幅広い話題に対応した意味の通った対話発話文を生成することができる。
図14に、この発明の発話文生成装置800の機能構成例を示す。発話文生成装置800は、発話文生成装置700に対して、係り受け関係データベース890を備える点と、関連話題抽出部880の機能の点で、異なる。
係り受け関係データベース890は、或る係り受け構造が与えられた場合に、その係り受け構造に係る係り受け構造を検索することのできるデータベースである。例えば、「お腹・が・空く」という構造から、この構造に係る係り受け構造を検索すると、図15に示す結果が得られるデータベースである。また、この検索を多段に行えるようにすると、「お腹が空く」に係る「飯・食う」を検索し、更に「飯・食う」に係る係り受け構造、というように検索することも可能である。この実施例では、大量の自然文から出現した係り受け構造を、その係り受け構造が出現した自然文を表す一意な番号(文番号)と共に記憶することで、係り受け関係データベース890を構築する。その構築方法の具体例は後述する。
関連話題抽出部880は、発話文の話題を表す単語及び係り受け構造を入力とし、係り受け関係データベース890を参照して関連単語と関連係り受け構造を抽出して出力する。抽出に当たって、発話文の話題を表す単語及び係り受け構造(話題)がどのような品詞を持つか分からないと、関連する単語と関連する係り受け構造が何を表すか分からないうえに、テンプレートに上手く合致しない関連単語と関連係り受け構造が抽出され得る。そのため、抽出したい話題の種類ごとに入力される話題の品詞と抽出対象の話題の品詞によって制約される条件を設定する。条件を設定することで話題の種類が明確で、且つテンプレートに合致し易い話題を抽出することができる。
条件例として、入力される係り受け構造が(単語A・格F・単語B)で構成され、抽出対象の関連する係り受け構造が(単語C・格G・単語D)で構成されるものとして説明する。更に、動詞、形容詞、動名詞、形容動詞のような述語になり易い品詞を指して「述語」、動詞・動名詞のような動作を表現する品詞を指して「動作詞」、形容詞・形容動詞のような評価表現になり易い品詞を指して「評価詞」と定義する。
評価表現を含む関連単語と関連係り受け構造を抽出するためには、単語A:一般・固有名詞、単語B:動作詞、単語D:評価詞、単語B→単語Dへの係り受け、の制約条件の元で係り受け関係データベース890を検索する。以降において大文字のアルファベットは単語を意味するが、「単語」の文言を省略する場合もある。例えば、入力される係り受け構造を、単語A:「お腹」→B:「空いて」とすると、図16(a)に示す関連単語と関連係り受け構造を抽出することができる。このように入力される係り受け構造中の文節のうち少なくとも1つと係り受け関係(B:空いて→D:きつい)を持つ関連単語と関連係り受け構造(C:だいぶ→Dきつい)を抽出することができる。
(名詞・F・動作詞)で構成される係り受け構造は、いわゆる述語項構造に似た構造を持ち、何らかの出来事を表現される構造と想定される。この制約条件によって、その出来事に対する評価表現を含む話題(関連単語と関連係り受け構造)を抽出できる。
原因表現を含む関連単語と関連係り受け構造を抽出するためには、単語A:一般・固有名詞、単語B:動作詞、単語D→Bに(D・H=「ので・から」・B)の構造を持つ係り受け、単語D:動作詞、の制約条件で係り受け関係データベース890を検索する。入力される係り受け構造を、上記した例とすると、図16(b)に示すように(C・G・D)+「から」+(A・F・B)という関連係り受け構造を取り出すことができ、(A・F・B)が発生した理由を抽出できる。
疑問詞表現を含む関連単語と関連係り受け構造を抽出するためには、単語A:一般・固有名詞、単語B:動作詞、単語D=単語B、単語C:疑問詞、の制約条件とする。入力される係り受け構造を、上記した例とすると、図16(c)に示すように疑問詞+(A・F・B)という関係係り受け構造を取り出すことができ、(A・F・B)について問う際に用いる疑問詞を抽出できる。
自己開示表現を含む関連単語と関連係り受け構造を抽出するためには、単語A:一般・固有名詞、格F:「は」、単語B:名詞、「自分・の」→単語Aの係り受け数大、単語C=単語A,格G:「は」、単語D:名詞、単語D≠単語B、の制約条件とする。ここで係り受け数大は、例えば上位3つくらいに絞る数である。入力される係り受け構造を、上記した例とすると、図16(d)に示すように、相手の(A・はB)に対して、対応する「自分・の」+(A・は・D)の関連係り受け構造を抽出できる。
上記したように制約条件を設けて抽出した関連係り受け構造を用いて対話発話文を生成する場合の発話文生成部720の好ましいテンプレートの用意の仕方について説明する。
上記した発話文生成部720のテンプレートを、係り受け関係データベース890から関連単語と関連係り受け構造を抽出する際の制約条件ごとに作成することで、テンプレート間の関係性の見通しを良くすることができる。 評価表現を抽出した場合は、例えば、「単語C+格G+単語Dですよね」や「単語C+格G+単語Dですか?」のテンプレートを用意して、単語C+格G+単語Dですよね、や、単語C+格G+単語Dですか?の対話発話文を生成する。図17(a)にその例を示す。発話意図(自己開示_評価)の対話発話文「だいぶきついですよね」、(質問_評価)の対話発話文「だいぶきついですか?」を生成することができる。
原因表現を抽出した場合は、例えば、「単語C+格G+単語Dの?」のテンプレートを用意して、図17(b)に示すように発話意図(質問_事実)の「もしや何も食べていないの?」や「何も食べていないの?」の対話発話文を生成することができる。
疑問詞表現を抽出した場合は、例えば、「単語C+格G?」や「単語C+格G+単語B?」のテンプレートを用意して、図17(c)に示すように発話意図(質問_事実)の対話発話文「どうして?」や「どうして空く?」の対話発話文を生成することができる。ただし、単語Cが「どうして」など理由を問う疑問詞の場合には、対話発話文が不適切になる恐れがあるので、テンプレートを例えば次のように変更する。「単語C+格G+こうも単語A+単語Bかなあ」、とテンプレートを用意すると「どうしてこうもお腹がすくかな」といった対話発話文を生成することができる。
自己開示表現を抽出した場合は、例えば、「私の(単語C)は(単語D)です」や{自分は(単語D)が(単語A)です}のテンプレートを用意して、図17(d)に示すように発話意図(自己開示_事実)の「私のお腹はブラックホールです」の対話発話文を生成することができる。
制約条件なしに抽出した関連係り受け構造の出現数が上位のものをテンプレートに代入することで対話発話文を生成するようにしても良い。もちろん、抽出するための入力係り受け構造もテンプレートに代入する。
これらの係り受け構造に含まれる単語のみを用いて発話を生成する場合、各単語をどのような表現と共に用いれば良いかを適切に定める必要がある。そこで、検索された関連係り受け構造が属する文で使われている用例を、そのまま利用して対話発話文を生成する。例えば、後ろ方向の係り受け関係から対話発話文を生成する場合、入力係り受け構造から直接検索された係り受け構造xの表記(例えば「お腹空いたから」)の後段に関連係り受け構造zの表記(例えば「ご飯食べる」)を並べたものを単位として出現数を調べ、出現数が上位のものについて最後の部分のみ「○○ですね」のような簡易なテンプレートに合致するように変換して接続することで、「お腹すいたからご飯たべるんですね」のように対話発話文を生成する。
出現数が1回の場合は、その文脈固有の表現であることが多いので除外する。以上の方法により、入力係り受け構造と関連係り受け構造の接続や、それぞれが含む機能表現などを活かし、文法的に不自然になり難い対話発話文を得ることができる。
上記した係り受け関係データベース890の作成方法について図18を参照して説明する。図18に示す方法では、一つの係り元と係り先とから成るフラットな係り受け構造を記録したデータベースから、先ず、入力された係り受け構造i中の2つの文節s ,s から、各文節の先頭単語の標準形を取りだし、入力係り受け構造に含まれる順で出現する係り受け構造群Xを検索する。
次に、得られた係り受け構造x∈Xごとに、構成する文節s ,s ∈sの何れかを含む係り受け構造yを、文IDと文節IDを利用して検索する。係り受け構造yはx中の文節s ,s の何れかを含むため、yはxと一部の文節が重複した関連係り受け構造と考えることができる。
更に、yを構成する文節s ,s ∈sを含みsを含まないものを同様に検索しzとすると「お腹→空いた」に対する「ごはん→食べる」のような文節が重複しない関連係り受け構造を得ることができる。このようにして得られた関連係り受け構造は、入力された係り受け構造に対して理由や結果、限定など特定の関連する性質を持っている。入力される係り受け構造に対する出現位置と係る格によって、その性質が異なると考えられる。
このようにして得られた関連係り受け構造をデータベース化したものが係り受け関係データベース890である。係り受け関係データベース890を備えた発話文生成装置800は、フラットな係り受け構造から、当該係り受け構造に係る関連係り受け構造をシステマチックに抽出したデータベースを用いるので、発話文生成装置700に対して更に幅広い対話発話文を生成することができる。フラットな係り受け構造とは、一つの係り元と係り先とから成る係り受け構造のことである。
また、係り受け関係データベース890は、図18に示した方法で一つの係り元と係り先とから成るフラットな係り受け構造を記録した係り受け関係データベース890′から作成する関係にあるが、関連係り受け構造を検索する処理を、その都度行う構成も考えられる。つまり、関連係り受け構造を予めデータベース化しておくのではなく、関連係り受け構造を毎回検索するようにしても良い。
その場合の関連話題抽出部880′は、図18で説明した方法で関連単語と関連係り受け構造を検索する。検索には、品詞情報や格、単語情報などを用いても良い。この関連係り受け構造を毎回検索方法は、計算量は増加するが、係り受けの深さを自由に変えることができるので、多様な対話発話文を生成するのに有利な方法である。
図19に、この発明の発話文生成装置900の機能構成例を示す。発話文生成装置900は、発話文生成装置800に対して、自然文記憶部995を備える点と、発話文生成部920の機能の点で、異なる。
自然文記憶部995は、係り受け関係データベース890に記憶された係り受け構造と格に対応する文番号に対応した自然文を記憶したものである。発話文生成部920は、話題抽出部310から入力される単語と係り受け構造を表す文番号と、関連話題抽出部880から入力される関連単語と関連係り受け構造を表す文番号とに、文番号で対応する自然文を、自然文記憶部995から読み出して対話発話文を生成する。対話発話文は、自然文記憶部995から読み出した自然文そのままでも良いし、その文末を「です」「ます」に変える等の変更を行っても良い。
発話文生成装置900によれば、テンプレートを用いずに大量の自然文から対話発話文を生成するので、幅広い話題の発話文に対する対話発話文を生成することが可能である。自然文記憶部995に記憶する自然文は、上記した係り受け関係辞書470と同様に、口語調の対話発話文を生成する目的では、主観的な発言を大量に含むマイクロブログから収集すると好ましい。
なお、自然文記憶部995は、上記した実施例の全てに設けても良い。例えば、自然文記憶部995を備えた発話文生成装置100′は、話題抽出部110が出力する焦点語をクエリとして、自然文記憶部995から類義語を検索して対話発話文を生成するようにしても良い。
以上説明した発話文生成装置100によれば、ユーザ発話文から話題の焦点を表す複数の焦点語を抽出し、その複数の焦点語をテンプレートに代入して対話発話文を生成するので、バリエーション豊富な対話発話文の生成が可能である。また、発話文生成装置200によれば、焦点語の類義語である関連語を推定し、焦点語と関連語とを用いて発話文を生成するので、より幅広い話題に対応できる対話発話文を生成することが可能である。
また、発話文生成装置300によれば、係り受け関係にある単語群をテンプレートに代入するので、幅広い話題に対応可能で、且つ、意味の通った対話発話文を生成することができる。また、発話文生成装置300,400,500,600は、焦点語と関連語との関連性の推定に、マイクロブログ等の大量の自然文に含まれる係り受け関係を利用するので、ユーザ発話文に対する対話発話文のバリエーションを豊富にすることができる。
また、発話文生成装置700は、発話文の内容を表す単語と係り受け構造と当該単語と係り受け構造に係る関連単語と関連係り受け構造を、テンプレートに代入するので更に幅広い話題に対応可能で、意味の通った対話発話文を生成することができる。また、発話文生成装置800は、係り受け関係データベース890を用いるので、より幅の広い対話発話文を生成することができる。また、発話文生成装置900は、テンプレートを用いずに大量の自然文から対話発話文を生成するので、幅広い話題に対応した自然な表現の対話発話文を生成することができる。
上記装置における処理手段をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、各装置における処理手段がコンピュータ上で実現される。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記録装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
また、各手段は、コンピュータ上で所定のプログラムを実行させることにより構成することにしてもよいし、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

Claims (4)

  1. 発話文の形態素列を入力として、当該発話文の内容を表す係り受け構造を抽出する話題抽出部と、
    上記係り受け構造を入力として、当該係り受け構造を構成する文節のいずれかを含み当該係り受け構造とは異なる第1の関連係り受け構造を出力する関連話題抽出部と、
    上記係り受け構造と上記第1の関連係り受け構造を入力として、上記係り受け構造と上記第1の関連係り受け構造をテンプレートに代入することで対話発話文を生成する発話文生成部と、
    を具備する発話文生成装置。
  2. 請求項1に記載した発話文生成装置において、
    更に、係り受け関係データベースを備え、
    上記係り受け関係データベースは、ある係り受け構造が与えられた場合に、当該係り受け構造に係る係り受け構造を検索することができるデータベースであり、
    上記関連話題抽出部は、上記係り受け構造を入力とし、上記係り受け関係データベースを参照して上記第1の関連係り受け構造を出力する、
    ことを特徴とする発話文生成装置。
  3. 話題抽出部は、発話文の形態素列を入力として、当該発話文の内容を表す係り受け構造を抽出する話題抽出過程と、
    関連話題抽出部は、上記係り受け構造を入力として、当該係り受け構造を構成する文節のいずれかを含み当該係り受け構造とは異なる第1の関連係り受け構造を出力する関連話題抽出過程と、
    発話文生成部は、上記係り受け構造と上記第1の関連係り受け構造を入力として、上記係り受け構造と上記第1の関連係り受け構造をテンプレートに代入することで対話発話文を生成する発話文生成過程と、
    を備える発話文生成方法。
  4. 請求項1または2に記載した発話文生成装置としてコンピュータを機能させるためのプログラム。
JP2018136790A 2013-07-31 2018-07-20 発話文生成装置とその方法とプログラム Active JP6676110B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013159507 2013-07-31
JP2013159507 2013-07-31

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2017085934A Division JP2017174443A (ja) 2013-07-31 2017-04-25 発話文生成装置とその方法とプログラム

Publications (2)

Publication Number Publication Date
JP2018195331A JP2018195331A (ja) 2018-12-06
JP6676110B2 true JP6676110B2 (ja) 2020-04-08

Family

ID=52671367

Family Applications (4)

Application Number Title Priority Date Filing Date
JP2013254771A Active JP6225012B2 (ja) 2013-07-31 2013-12-10 発話文生成装置とその方法とプログラム
JP2017085934A Pending JP2017174443A (ja) 2013-07-31 2017-04-25 発話文生成装置とその方法とプログラム
JP2018136790A Active JP6676110B2 (ja) 2013-07-31 2018-07-20 発話文生成装置とその方法とプログラム
JP2018136789A Active JP6676109B2 (ja) 2013-07-31 2018-07-20 発話文生成装置とその方法とプログラム

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2013254771A Active JP6225012B2 (ja) 2013-07-31 2013-12-10 発話文生成装置とその方法とプログラム
JP2017085934A Pending JP2017174443A (ja) 2013-07-31 2017-04-25 発話文生成装置とその方法とプログラム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2018136789A Active JP6676109B2 (ja) 2013-07-31 2018-07-20 発話文生成装置とその方法とプログラム

Country Status (1)

Country Link
JP (4) JP6225012B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6697373B2 (ja) * 2016-12-06 2020-05-20 カシオ計算機株式会社 文生成装置、文生成方法及びプログラム
JP6790791B2 (ja) * 2016-12-14 2020-11-25 トヨタ自動車株式会社 音声対話装置および対話方法
JP7078244B2 (ja) * 2017-03-08 2022-05-31 株式会社Spectee データ処理装置、データ処理方法、データ処理システム及びプログラム
JP6842095B2 (ja) * 2017-03-10 2021-03-17 日本電信電話株式会社 対話方法、対話システム、対話装置、およびプログラム
KR102509821B1 (ko) * 2017-09-18 2023-03-14 삼성전자주식회사 Oos 문장을 생성하는 방법 및 이를 수행하는 장치
JP7214719B2 (ja) * 2017-09-28 2023-01-30 オラクル・インターナショナル・コーポレイション 質問と要求とを自律エージェントが区別できるようにすること
JP2018198097A (ja) * 2018-09-20 2018-12-13 カシオ計算機株式会社 文生成装置、文生成方法及びプログラム
JP7096172B2 (ja) * 2019-01-16 2022-07-05 Kddi株式会社 キャラクタ性に応じた形容発話を含む対話シナリオを生成する装置、プログラム及び方法
CN111666405B (zh) * 2019-03-06 2023-07-07 百度在线网络技术(北京)有限公司 用于识别文本蕴含关系的方法和装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0683809A (ja) * 1992-08-31 1994-03-25 Fuji Xerox Co Ltd 文書処理装置
JP4006323B2 (ja) * 2001-12-28 2007-11-14 富士通株式会社 対話方法、対話装置、対話プログラム及びこれを記録したコンピュータ読み取り可能な記録媒体
JP4826275B2 (ja) * 2006-02-16 2011-11-30 株式会社豊田中央研究所 応答生成装置、方法及びプログラム
JP2008152637A (ja) * 2006-12-19 2008-07-03 Toyota Central R&D Labs Inc 応答生成装置及び応答生成プログラム
JP2009134701A (ja) * 2007-10-30 2009-06-18 Atsushi Yaginuma 自然言語処理装置と自然言語処理プログラム
JP5974444B2 (ja) * 2011-10-05 2016-08-23 富士通株式会社 情報処理システム、情報処理方法、情報処理プログラム、記録媒体
WO2013080406A1 (ja) * 2011-11-28 2013-06-06 Necソフト株式会社 対話システム、冗長メッセージ排除方法および冗長メッセージ排除プログラム

Also Published As

Publication number Publication date
JP6225012B2 (ja) 2017-11-01
JP2017174443A (ja) 2017-09-28
JP6676109B2 (ja) 2020-04-08
JP2018195330A (ja) 2018-12-06
JP2018195331A (ja) 2018-12-06
JP2015045833A (ja) 2015-03-12

Similar Documents

Publication Publication Date Title
JP6676110B2 (ja) 発話文生成装置とその方法とプログラム
Nandwani et al. A review on sentiment analysis and emotion detection from text
RU2509350C2 (ru) Способ семантической обработки естественного языка с использованием графического языка-посредника
KR20110009205A (ko) 컴퓨터와의 자연어 의사소통 시스템 및 방법
Davydov et al. Mathematical method of translation into Ukrainian sign language based on ontologies
Eisman et al. A multi-agent conversational system with heterogeneous data sources access
US20220245353A1 (en) System and method for entity labeling in a natural language understanding (nlu) framework
Grif et al. Development of computer sign language translation technology for deaf people
Qudar et al. A survey on language models
US20220245361A1 (en) System and method for managing and optimizing lookup source templates in a natural language understanding (nlu) framework
McGillivray et al. Applying language technology in humanities research: Design, application, and the underlying logic
Lee et al. Speech2Mindmap: testing the accuracy of unsupervised automatic mindmapping technology with speech recognition
Tran et al. Webnlg 2020 challenge: Semantic template mining for generating references from rdf
US20220229986A1 (en) System and method for compiling and using taxonomy lookup sources in a natural language understanding (nlu) framework
US20220229990A1 (en) System and method for lookup source segmentation scoring in a natural language understanding (nlu) framework
Lee Natural Language Processing: A Textbook with Python Implementation
Jebbor et al. Overview of knowledge extraction techniques in five question-answering systems
Ledeneva et al. Recent advances in computational linguistics
Arumugam Processing the textual information using open natural language processing (NLP)
Jenkins Designing Service-Oriented Chatbot Systems Using a Construction Grammar-Driven Natural Language Generation System
Rudrappa et al. HiTEK Pre-processing for Speech and Text: NLP
Aliero et al. Systematic Review on Text Normalization Techniques and its Approach to Non-Standard Words
Canales et al. Innovative semi-automatic methodology to annotate emotional corpora
Maalaoui et al. Deriving Service-Oriented Dynamic Product Lines Knowledge from Informal User-Requirements: AI Based Approach
US20220229987A1 (en) System and method for repository-aware natural language understanding (nlu) using a lookup source framework

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190910

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191016

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200310

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200311

R150 Certificate of patent or registration of utility model

Ref document number: 6676110

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150