(57)【要約】【課題】安定して、ユーザの発話に対する自然な発話候補を生成することができるようにする。【解決手段】入力部７によって、対話の話題を示す単語と、ユーザの発話とを受け付ける。述語項構造検索部１１２によって、述語項構造データベースから、対話の話題を示す単語に対応する格要素を検索し、述語項構造を抽出する。文生成部１１４によって、抽出された述語項構造の各々に基づいて、発話文を各々生成する。文判定部１１６によって、生成された発話文の各々から、自然な文でない発話文を除去し、除去されなかった発話文の各々を、受け付けたユーザの発話に対する発話候補として出力する。発話検索部１１８によって、文判定部１１６によって発話候補が出力されなかった場合に、発話データベースから、発話を検索し、発話が検索された場合に当該発話を発話候補として出力し、発話が検索されなかった場合に発話不可であることを示す情報を出力する。【選択図】図５
2015075952.tif 000002
【特許請求の範囲】
【請求項１】
対話の話題を示す単語と、ユーザの発話とを受け付ける入力部と、
前記入力部によって受け付けた前記対話の話題を示す単語に基づいて、述語と前記述語に対応する格の要素である格要素との組み合わせである述語項構造を複数記憶した述語項構造データベースから、前記対話の話題を示す単語に対応する前記格要素を含む前記述語項構造を検索する述語項構造検索部と、
前記述語項構造検索部によって検索された前記述語項構造の各々に基づいて、発話文を各々生成する文生成部と、
前記文生成部によって生成された前記発話文の各々から、自然な文である否かを判定するための予め定められたルールに基づいて、自然な文でない発話文を除去し、除去されなかった前記発話文の各々を、前記入力部によって受け付けた前記ユーザの発話に対する発話候補として出力する文判定部と、
前記文判定部によって前記発話候補が出力されなかった場合に、前記ユーザの発話に基づいて、複数の発話を記憶した発話データベースから、前記ユーザの発話に対応する前記発話を検索し、前記発話が検索された場合に前記検索された発話を前記発話候補として出力し、前記発話が検索されなかった場合に発話不可であることを示す情報を出力する発話検索部と、
を含む発話生成装置。
【請求項２】
前記入力部は、発話の意図を表す対話行為を更に受け付け、
前記文生成部は、前記述語、前記格要素、及び前記格要素の格について予め定められた順番に従って、前記述語項構造検索部によって検索された前記述語項構造の述語、前記格要素、及び前記格要素の格を並べた平叙文を生成し、前記入力部で受け付けた前記対話行為に対して予め定められた、前記対話行為を表現する文に変換するための変換ルールに基づいて、前記生成した平叙文を、前記対話行為を表現する文に変換して、前記発話文を生成する
請求項１記載の発話生成装置。
【請求項３】
前記文判定部は、前記文生成部によって生成された前記発話文の各々について、予め求められたＮ−ｇｒａｍ言語モデルに基づいて、文の生成されにくさを示すパープレキシティ値を算出し、前記パープレキシティ値が閾値以下であれば自然な文であると判定する前記ルールに基づいて、前記発話文の各々から、自然な文でない発話文を除去し、除去されなかった前記発話文の各々を前記発話候補として出力する
請求項１又は２に記載の発話生成装置。
【請求項４】
入力部、述語項構造検索部、文生成部、文判定部、及び発話検索部を含む発話生成装置における発話生成方法であって、
前記入力部によって、対話の話題を示す単語と、ユーザの発話とを受け付けるステップと、
前記述語項構造検索部によって、前記入力部によって受け付けた前記対話の話題を示す単語に基づいて、述語と前記述語に対応する格の要素である格要素との組み合わせである述語項構造を複数記憶した述語項構造データベースから、前記対話の話題を示す単語に対応する前記格要素を検索し、検索された格要素に対応する前記述語項構造を抽出するステップと、
前記文生成部によって、前記述語項構造検索部によって抽出された前記述語項構造の各々に基づいて、発話文を各々生成するステップと、
前記文判定部によって、前記文生成部によって生成された前記発話文の各々から、自然な文である否かを判定するための予め定められたルールに基づいて、自然な文でない発話文を除去し、除去されなかった前記発話文の各々を、前記入力部によって受け付けた前記ユーザの発話に対する発話候補として出力するステップと、
前記発話検索部によって、前記文判定部によって前記発話候補が出力されなかった場合に、前記ユーザの発話に基づいて、複数の発話を記憶した発話データベースから、前記ユーザの発話に対応する前記発話を検索し、前記発話が検索された場合に前記検索された発話を前記発話候補として出力し、前記発話が検索されなかった場合に発話不可であることを示す情報を出力するステップと、
を含む発話生成方法。
【請求項５】
コンピュータを、請求項１〜請求項３の何れか１項に記載の発話生成装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、発話生成装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
対話システムは大きく分けて二種類あり、タスク指向型対話システムと非タスク指向型対話システムに分けられる。前者は特定のタスクをシステムとの対話により達成するものであり、たとえば、フライトの予約システムや天気情報検索システムに用いられている。これらのシステムでは、予め話される内容が想定できるため、手作業で作り込んだ発話のデータベースを保持したり、データベースから抽出される天気情報などを手作業によるテンプレートに当てはめて、システムは発話を生成する（非特許文献１）。
【０００３】
非タスク指向型対話システムでは、目的のない対話を扱い、対話の内容はいわゆる雑談である。雑談はさまざまな話題が話されるため、予め話される内容を想定できない。そのため発話生成は非常に難しい課題である。ユーザの幅広い入力に対応するために、近年の従来技術では、ウェブやツイッターなどの文章をデータベース化しておき、ユーザ発話に類似するものを選択することでシステム発話とするものがある（非特許文献２）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ryuichiro Higashinaka、Katsuhito Sudoh、Mikio Nakano、「Incorpo-rating Discourse Features into Con_dence Scoring of Intention Recognition Results in Spoken Dialogue Systems」、Speech Communication、2006、Volume 48、Issues 3-4、p.417-436
【０００５】
【非特許文献２】Shibata, M.、Nishiguchi, T.、and Tomiura, Y、「Dialog system for open-ended conversation using web documents.」、Infomatica、 (2009)、33 (3)、p.277-284
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、雑談対話において、ウェブやツイッターなどから構築した発話のデータベースから発話を選択する方式で発話生成を行うと、システムの発話意図に沿った発話が行えない可能性がある。たとえば、ある話題についてシステムがユーザに質問すべきと判断される状況において、ウェブやツイッターにその話題の質問文がなければ質問はできない。システムは状況に応じて質問をしたり相槌を打ったりする必要があることから、状況に応じた発話を生成できないことは対話の質を低くする。
【０００７】
この対応策として、システムが発話を自ら生成する発話生成の技術を用いて、発話意図に応じた発話をその場で生成することが考えられる。たとえば、文の構成要素（何がどうしたといった情報）をデータベースとして保持しておき、現在の話題に即した構成要素を抽出した上、その構成要素をシステムの発話意図に即する形で文に変換して発話することが考えられる。しかしながら、現在の話題に即した構成要素が見つかるとは限らず、また、文の変換が常に成功するとは限らない。
【０００８】
本発明は、上記の事情に鑑みてなされたものであり、安定して、ユーザの発話に対する自然な発話候補を生成することができる発話生成装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成するために本発明に係る発話生成装置は、対話の話題を示す単語と、ユーザの発話とを受け付ける入力部と、前記入力部によって受け付けた前記対話の話題を示す単語に基づいて、述語と前記述語に対応する格の要素である格要素との組み合わせである述語項構造を複数記憶した述語項構造データベースから、前記対話の話題を示す単語に対応する前記格要素を含む前記述語項構造を検索する述語項構造検索部と、前記述語項構造検索部によって検索された前記述語項構造の各々に基づいて、発話文を各々生成する文生成部と、前記文生成部によって生成された前記発話文の各々から、自然な文である否かを判定するための予め定められたルールに基づいて、自然な文でない発話文を除去し、除去されなかった前記発話文の各々を、前記入力部によって受け付けた前記ユーザの発話に対する発話候補として出力する文判定部と、前記文判定部によって前記発話候補が出力されなかった場合に、前記ユーザの発話に基づいて、複数の発話を記憶した発話データベースから、前記ユーザの発話に対応する前記発話を検索し、前記発話が検索された場合に前記検索された発話を前記発話候補として出力し、前記発話が検索されなかった場合に発話不可であることを示す情報を出力する発話検索部と、を含んで構成されている。
【００１０】
本発明に係る発話生成方法は、入力部、述語項構造検索部、文生成部、文判定部、及び発話検索部を含む発話生成装置における発話生成方法であって、前記入力部によって、対話の話題を示す単語と、ユーザの発話とを受け付けるステップと、前記述語項構造検索部によって、前記入力部によって受け付けた前記対話の話題を示す単語に基づいて、述語と前記述語に対応する格の要素である格要素との組み合わせである述語項構造を複数記憶した述語項構造データベースから、前記対話の話題を示す単語に対応する前記格要素を検索し、検索された格要素に対応する前記述語項構造を抽出するステップと、前記文生成部によって、前記述語項構造検索部によって抽出された前記述語項構造の各々に基づいて、発話文を各々生成するステップと、前記文判定部によって、前記文生成部によって生成された前記発話文の各々から、自然な文である否かを判定するための予め定められたルールに基づいて、自然な文でない発話文を除去し、除去されなかった前記発話文の各々を、前記入力部によって受け付けた前記ユーザの発話に対する発話候補として出力するステップと、前記発話検索部によって、前記文判定部によって前記発話候補が出力されなかった場合に、前記ユーザの発話に基づいて、複数の発話を記憶した発話データベースから、前記ユーザの発話に対応する前記発話を検索し、前記発話が検索された場合に前記検索された発話を前記発話候補として出力し、前記発話が検索されなかった場合に発話不可であることを示す情報を出力するステップと、を含む。
【００１１】
また、前記入力部は、発話の意図を表す対話行為を更に受け付け、前記文生成部は、前記述語、前記格要素、及び前記格要素の格について予め定められた順番に従って、前記述語項構造検索部によって検索された前記述語項構造の述語、前記格要素、及び前記格要素の格を並べた平叙文を生成し、前記入力部で受け付けた前記対話行為に対して予め定められた、前記対話行為を表現する文に変換するための変換ルールに基づいて、前記生成した平叙文を、前記対話行為を表現する文に変換して、前記発話文を生成するようにすることができる。
【００１２】
また、前記文判定部は、前記文生成部によって生成された前記発話文の各々について、予め求められたＮ−ｇｒａｍ言語モデルに基づいて、文の生成されにくさを示すパープレキシティ値を算出し、前記パープレキシティ値が閾値以下であれば自然な文であると判定する前記ルールに基づいて、前記発話文の各々から、自然な文でない発話文を除去し、除去されなかった前記発話文の各々を前記発話候補として出力するようにすることができる。
【００１３】
本発明に係るプログラムは、コンピュータを、本発明に係る発話生成装置の各部として機能させるためのプログラムである。
【発明の効果】
【００１４】
以上説明したように、本発明の発話生成装置、方法、及びプログラムによれば、述語項構造を複数記憶した述語項構造データベースから、対話の話題を示す単語に対応する格要素を含む述語項構造を検索し、述語項構造の各々に基づいて生成された発話文の各々のうちの自然な文を、ユーザの発話に対する発話候補として出力し、発話候補が出力されなかった場合に、ユーザの発話に基づいて、複数の発話を記憶した発話データベースから、ユーザの発話に対応する発話を検索し、発話が検索された場合に当該発話を発話候補として出力することにより、安定して、ユーザの発話に対する自然な発話候補を生成することができる、という効果が得られる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態に係る発話データベース構築装置の一構成例を示すブロック図である。
【図２】対話行為の一覧の例を示す説明図である。
【図３】本発明の実施の形態に係る述語項構造データベース構築装置の一構成例を示すブロック図である。
【図４】述語項構造のテーブルデータの一例を示す説明図である。
【図５】本発明の実施の形態に係る発話生成装置の一構成例を示すブロック図である。
【図６】述語項構造が検索された一例を示す図である。
【図７】文が自然な文であるか否かを判定するためのパープレキシティ値を説明するための図である。
【図８】発話が検索された一例を示す図である。
【図９】本発明の実施の形態に係る発話データベース構築処理ルーチンの内容を示すフローチャートである。
【図１０】本発明の実施の形態に係る述語項構造データベース構築処理ルーチンの内容を示すフローチャートである。
【図１１】本発明の実施の形態に係る発話生成処理ルーチンの内容を示すフローチャートである。
【発明を実施するための形態】
【００１６】
＜概要＞
まず、本発明の実施の形態の概要について説明する。
【００１７】
本発明の実施の形態では、二種類のデータベースを併用する。一つはツイッター（登録商標）などのマイクロブログにおける発話から構築した発話データベースであり、もう一つは大規模なテキストデータを解析することで得られる述語項構造データベースである。発話データベースはマイクロブログ中の大量の発話について、自動的に推定された発話の意図を表す対話行為を付与し、発話と対話行為とをペアとして格納したものである。述語項構造データベースは大量のテキストデータについて述語項構造解析を行い、その結果得られる述語項構造を格納したものである。述語項構造とは、文の構成要素である、述語と当該述語に対応する格要素との組み合わせを表す構造のことであり、参考文献（平博順、永田昌明、「構造学習を用いた述語項構造解析」、言語処理学会第１４回年次大会発表論文集、2008、p.556-559）に述語項構造解析の処理例が記載されている。
【００１８】
発話データベースにはマイクロブログのユーザが書き込んだ発話が格納されているため、自然な発話が多く格納されている。しかし、システムが話したいような対話行為に対応する発話が多いとは限らない。
【００１９】
一方、述語項構造データベースには文の構成要素（述語項構造）が格納されており、さまざまな対話行為に対応する文を生成することができる。しかし、自動的に生成される文は単純であったり、不自然であったり、非文となる可能性がある。どちらのデータベースも一長一短あることから、これら二つを相補的に用いることで、システムの対話行為に即し、また、自然な発話を生成することが可能となる。
【００２０】
対話の話題を示す単語（以下、焦点と称する。）と、対話システムにおける上位モジュールから与えられるシステムの対話行為とについて発話を生成する場合、まず、述語項構造データベースから述語項構造を検索し、所定のテンプレートにしたがって文を生成するが、文が生成できない、もしくは、生成された文が所定の条件を満たさない場合、発話データベースを検索し、該当する発話があればそれを用いて発話する。もしくは、発話データベースを検索し該当する発話が見つからない場合、述語項構造データベースから述語項構造を検索し、述語項構造が見つかれば所定のテンプレートにしたがって文を生成し、発話する。
【００２１】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００２２】
＜発話データベース構築装置のシステム構成＞
図１は、本発明の実施の形態に係る発話データベース構築装置１００を示すブロック図である。この発話データベース構築装置１００は、ＣＰＵと、ＲＡＭと、後述する発話データベース構築処理ルーチンを実行するためのプログラムを記憶したＲＯＭとを備えたコンピュータで構成され、機能的には次に示すように構成されている。
【００２３】
本実施の形態に係る発話データベース構築装置１００は、図１に示すように、発話データ入力部１と、発話データベース構築部２と、発話データベース３とを備えている。
【００２４】
発話データ入力部１は、マイクロブログサイトから取得された、複数の発話を含む発話集合の入力を受け付ける。本実施の形態では、約数百万の発話をマイクロブログサイトからクロールし、発話集合とした。
【００２５】
発話データベース構築部２は、発話データ入力部１によって受け付けた発話集合に含まれる複数の発話の各々について、後述する対話行為推定部２２によって、対話行為を付与する。そして、発話データベース構築部２は、発話と対話行為とのペアを１つのレコードとして、後述する発話データベース３に登録する。この発話データベース３の構築には一般的な全文検索エンジンのデータベースを構築する手順を踏めばよく、フリーソフトのＬｕｃｅｎｅやＮａｍａｚｕなどを用いて構築すればよい。本実施例ではＬｕｃｅｎｅを用いる。なお、発話データベース構築部２は、発話候補データベース２０と、対話行為推定部２２とを備えている。
【００２６】
発話候補データベース２０には、発話データ入力部１によって受け付けた発話集合が格納される。
【００２７】
対話行為推定部２２は、発話候補データベース２０に格納された発話集合に含まれる複数の発話の各々について、当該発話の対話行為を推定し、当該発話に、推定された対話行為を付与して、発話データベース３に格納する。具体的には、対話行為推定部２２は、発話の各々について、当該発話と対話行為とをペアにした後、発話データベース３に格納する。本実施の形態で扱う対話行為は全部で３３種類である。対話行為の一覧を、図２に示す。
【００２８】
対話行為推定部２２は、発話内の単語に基づいて、特徴量を抽出し、その特徴量から、対話行為を推定する推定器を用いればよく、推定器は、機械学習の手法で予め構築しておけばよい。例えば、文書分類で一般的に用いられる手法である、サポートベクトルマシンなどを用いて構築できる。特徴量としては、たとえば発話内の単語の頻度ベクトルなどを用いればよい。本実施の形態においては、別途用意した約数万の発話について人手で対話行為を付与し、このデータを学習データとして、サポートベクトルマシンによって、発話からその対話行為を推定する多クラス分類器を学習した。
【００２９】
対話行為推定部２２は、例えば、発話「こんにちは」に対して、対話行為「挨拶」を推定し、発話「私はラーメンが好きです」に対して、対話行為「自己開示評価+」を推定する。
【００３０】
発話データベース３には、発話と、対話行為推定部２２によって当該発話について推定された対話行為とのペアが複数格納される。また、発話データベース３には、各ペアについて、全文検索が可能なように転置インデックスが保持されている。
【００３１】
＜述語項構造データベース構築装置のシステム構成＞
図３は、本発明の実施の形態に係る述語項構造データベース構築装置２００を示すブロック図である。この述語項構造データベース構築装置２００は、ＣＰＵと、ＲＡＭと、後述する述語項構造データベース構築処理ルーチンを実行するためのプログラムを記憶したＲＯＭとを備えたコンピュータで構成され、機能的には次に示すように構成されている。
【００３２】
本実施の形態に係る述語項構造データベース構築装置２００は、図３に示すように、テキストデータ入力部４と、述語項構造データベース構築部５と、述語項構造データベース６とを備えている。
【００３３】
テキストデータ入力部４は、複数のテキストを含む大規模テキスト集合の入力を受け付ける。本実施の形態では、大規模テキスト集合として、ブログサイトから収集したテキストを用いる。なお、本実施の形態では、ブログサイトからテキストを収集したが、これに限らず、テキストであれば何でもよい。
【００３４】
述語項構造データベース構築部５は、テキストデータ入力部４によって受け付けた大規模テキスト集合に含まれる複数のテキストの各々について、当該テキストから述語項構造を抽出し、述語項構造データベース６に格納する。なお、述語項構造データベース構築部５は、大規模テキストデータベース５０と、形態素解析部５２と、係り受け解析部５４と、述語項構造抽出部５６とを備えている。
【００３５】
大規模テキストデータベース５０には、テキストデータ入力部４によって受け付けた大規模テキスト集合が格納される。
【００３６】
形態素解析部５２は、大規模テキストデータベース５０に格納された大規模テキスト集合に含まれる複数のテキストの各文について、形態素解析を行う。
【００３７】
係り受け解析部５４は、大規模テキスト集合に含まれる複数のテキストの各文について、形態素解析部５２によって解析された形態素解析結果に基づいて、係り受け解析を行い、文節を同定し、文節間の係り受け構造を決定する。
【００３８】
なお、形態素解析部５２による形態素解析や、係り受け解析部５４による係り受け解析には、フリーで用いられているものを用いればよい。例えば、ＣｈａＳｅｎやＣａｂｏＣｈａである。本実施の形態では、出願人が開発したＪＴＡＧとＪＤＥＰとをそれぞれ形態素解析と係り受け解析に用いる。
【００３９】
述語項構造抽出部５６は、大規模テキスト集合に含まれる複数のテキストの各文について、係り受け解析部５４によって決定された係り受け構造に基づいて、当該文の述語と当該述語に対応する格の要素である格要素とを同定し、述語項構造として抽出する。そして、述語項構造抽出部５６は、複数のテキストの各文について抽出された述語項構造を、述語項構造データベース６へ格納する。なお、本実施の形態では、述語項構造抽出部５６は、文中の述語の各々について、当該述語の格要素としてガ格、ヲ格、ニ格、デ格、ト格、カラ格、及びマデ格の各々を抽出し、述語と１つ以上の格要素との組み合わせをひとまとまりとして抽出する。そして、述語項構造抽出部５６は、抽出された同じ述語項構造についてはひとまとめにし、頻度と共に述語項構造データベース６に登録する。
【００４０】
上記の述語項構造データベース構築部５について、具体例を挙げて説明する。例えば、「太郎が花子に会う」であれば、「会う」が述語であり、当該述語の文節に係っている文節から、ガ格の要素が「太郎」、ニ格の要素が「花子」だと分かる。そして、ここから「述語：会う  ガ格：太郎  ニ格：花子」という述語項構造が抽出される。このような述語項構造を、大規模テキスト集合に含まれるテキストのすべての文から抽出する。
【００４１】
述語項構造データベース６には、述語項構造抽出部５６によって抽出された複数の述語項構造が格納される。なお、述語項構造データベース６に格納される述語項構造のデータはテーブルデータであるので、述語項構造データベース６は、一般的なＲＤＢ（Relational database）とすればよい。また、述語項構造データベース６として、全文検索可能なデータベースを用いてもよい。本実施の形態では、ＲＤＢを用い、実装としてはＰｏｓｔｇｒｅＳＱＬを用いた。
【００４２】
図４に、述語項構造データベース６に格納される述語項構造のテーブルデータの一例を示す。上記図４の「ＩＤ」は述語項構造の連番であり、最後のカラムは頻度である。たとえば、最初のデータは、「セキレイが餌を探す」という文に対応する述語項構造である。
【００４３】
＜発話生成装置のシステム構成＞
図５は、本発明の実施の形態に係る発話生成装置３００を示すブロック図である。この発話生成装置３００は、ＣＰＵと、ＲＡＭと、後述する発話生成処理ルーチンを実行するためのプログラムを記憶したＲＯＭとを備えたコンピュータで構成され、機能的には次に示すように構成されている。
【００４４】
本実施の形態に係る発話生成装置３００は、図５に示すように、入力部７と、述語項構造データベース８と、変換ルールデータベース９と、言語モデルデータベース１０と、発話データベース１１と、演算部１２と、出力部１３とを備えている。
【００４５】
入力部７は、焦点と、ユーザの発話と、対話行為とを受け付ける。
【００４６】
述語項構造データベース８には、上記述語項構造データベース構築装置２００の述語項構造データベース６に格納されている述語項構造のテーブルデータと同じ述語項構造のテーブルデータが格納されている。
【００４７】
変換ルールデータベース９には、対話行為毎に、平叙文を、当該対話行為を表現する文に変換するための変換ルールが予め格納されている。
【００４８】
言語モデルデータベース１０には、予め求められたＮ−ｇｒａｍ言語モデルが格納されている。
【００４９】
発話データベース１１には、上記発話データベース構築装置１００の発話データベース３に格納されている発話及び対話行為の複数ペアと同じ、発話及び対話行為の複数ペアが格納されている。
【００５０】
演算部１２は、述語項構造データベース８をまず選択し、発話候補（一つ以上の発話）の取得を試みる。そして、発話候補が取得できない場合は、発話データベース１１を参照し発話候補の取得を試みる。それでも発話が取得できない場合は発話不可を表す情報を出力部１３に返す。発話候補の取得ができていたら、発話候補を出力部１３に返す。なお、演算部１２は、制御部１１０と、述語項構造検索部１１２と、文生成部１１４と、文判定部１１６と、発話検索部１１８とを備えている。
【００５１】
制御部１１０には、述語項構造データベース８から優先して発話に用いる発話候補を検索するという情報が設定値として記録されている。制御部１１０は、当該設定値に従って、述語項構造データベース８を選択する。本実施の形態では、述語項構造データベース８から優先して発話候補の検索をする場合について説明する。
【００５２】
述語項構造検索部１１２は、入力部７によって受け付けた焦点に基づいて、述語項構造データベース８から、焦点と一致する格要素を含む述語項構造を検索する。
この際、検索された述語項構造を、頻度の降順でソートし、その上位Ｊ件を出力してもよい。なお、ユーザの発話を入力とし、全文検索可能な述語項構造データベース８を検索してもよい。その場合は、ユーザ発話の単語をなるべく多く含む述語項構造を、述語項構造データベース８から検索してもよい。また、後述する発話検索部１１８と同様のベクトル空間モデルを用いてランキングを行い、上位Ｊ件を出力すればよい。
【００５３】
図６は「ミスチル」が焦点として入力され、当該焦点に基づいて検索された述語項構造である。頻度の降順で順位が付けられている。上記図６では、述語や格要素に０や１という番号を付与している。当該番号は、本実施の形態で用いる述語項構造の簡易な記法であり、述語は０番、ガ格、ヲ格、ニ格、デ格、ト格、カラ格、マデ格の要素はそれぞれ１番〜７番の番号で表す。すなわち、このデータでは、「０＿歌う」は述語が「歌う」であること、「２＿主題歌」はヲ格が「主題歌」であることを表している。また、述語項構造検索部１１２は、述語項構造についての検索結果の上位Ｊ件を文生成部１１４へ出力する。
【００５４】
文生成部１１４は、述語項構造検索部１１２によって検索された述語項構造の各々について、述語、格要素、及び格要素の格について予め定められた順番に従って、当該述語項構造の述語、前記格要素、及び格要素の格を並べた平叙文を生成する。また、文生成部１１４は、述語項構造の各々について、入力部７で受け付けた対話行為に対応して変換ルールデータベース９に格納された変換ルールに基づいて、当該述語構造に基づいて生成された平叙文を、当該対話行為を表現する文に変換して、発話文を生成する。
【００５５】
例えば、まず、文生成部１１４は、述語をｐｒｅｄ、格をｃａｓｅ、格要素をａｒｇとして、「ａｒｇ ｃａｓｅ ｐｒｅｄ」という語順で平叙文を生成する。述語項構造が「０＿歌う２＿曲」であれば、「曲を歌う」という平叙文を生成する。なお、日本語の特性から、ヲ格、ニ格、ガ格、デ格、ト格、マデ格、カラ格の順で述語に近くなるように格要素を並べて配置する。複数の格要素があれば、「ｃａｓｅ ｐｒｅｄ」の部分を繰り返す。述語項構造が「０＿歌う２＿曲４＿テレビ」であれば、「テレビで曲を歌う」という平叙文を生成する。
【００５６】
次に、文生成部１１４は、生成された平叙文について、変換ルールデータベース９に格納された対話行為に対応する変換ルールとして、文末の単語系列及び品詞系列に基づく書き換えルールを用いて、当該対話行為を表す文に変換する。
【００５７】
例えば、平叙文「ミスチルが好き」のように形容動詞が最後の単語で、対話行為が「質問評価」の場合、「ミスチルが好きですか？」のように「ですか」を付与することにより、対話行為「質問評価」を表す文に変換する。平叙文「ミスチルが歌う」のように最後の単語が動詞で、対話行為が「質問＿情報提供要求」であれば、「のですか？」を追加し、「ミスチルは歌うのですか？」に変換する。もしくは、所与の活用辞書を参照し、最後の動詞を連用形（「歌い」）にし、「ますか？」を付与することで「ミスチルは歌いますか？」という文に変換する。対話行為を表す文の変換候補が複数ある場合はランダムにいずれかを選択し、変換結果とする。対話行為のそれぞれについて変換ルールを準備しておくことで、変換ルールに合致する平叙文であれば、所与の対話行為を表す文に変換することができる。
【００５８】
もし、生成した平叙文に合致する変換ルールが見つからない場合は、当該平叙文を棄却する。変換ルールに従って変換できた場合は変換済みの文を、発話文として文判定部１１６に送る。入力がＪ発話であれば、Ｍ件（Ｍ＜＝Ｊ）の変換済み発話文が文判定部１１６に送られる。
【００５９】
ここで、文生成部１１４によって生成された発話文は、自動で生成された文であるため、人間が発話したものよりも不自然になっている可能性がある。例えば、述語項構造によっては文生成部１１４が決定した語順が不自然になることがある。例えば、「ラーメンに興味がある」という文の方が「興味がラーメンにある」よりも自然であろう。また、対話行為に沿うよう変換ルールによって変換した結果の文が不自然になる場合もある。例えば、平叙文「桜が咲く」を、対話行為「提案」を表す文に変換すると「〜しましょう」という文末を付与するため「桜が咲きましょう」となるが、この文は不自然な文である。
【００６０】
このような不自然な文を除外するため、本実施の形態では、Ｎ−ｇｒａｍ言語モデルを用いたパープレキシティによるフィルタリングを行う。
【００６１】
すなわち、文判定部１１６は、文生成部１１４によって生成された発話文の各々について、言語モデルデータベース１０に格納されたＮ−ｇｒａｍ言語モデルに基づいて、文の生成されにくさを示すパープレキシティ値を算出し、当該パープレキシティ値が閾値以下であれば自然な文であると判定するルールに基づいて、発話文の各々から、自然な文でない発話文を除去し、除去されなかった発話文の各々を発話候補として出力部１３に出力する。
【００６２】
具体的には、大規模なテキストデータからＮ−ｇｒａｍ言語モデルを構築しておく。例えば、Ｎは５である。５−ｇｒａｍ言語モデルには、与えられた５つの単語の並びがどの程度テキストデータに現れるかという確率が含まれている。当該言語モデルに照らし合わせたとき、ある文がどれほど出現しにくいかを示す値がパープレキシティである。パープレキシティは言語の複雑さ（生成されにくさ）を表す言語処理で一般的な指標である。パープレキシティ値が閾値未満の発話文が複数ある場合には、複数の発話文を発話候補として出力部１３に送る。
【００６３】
図７は、システムが生成した発話文についてパープレキシティを計算した結果である。最初の文のパープレキシティは５００ 以上であり非常に高い。実際に文を読むと日本語として不自然だと考えられるものである。最後の文はパープレキシティが非常に低く日本語としても自然な文であることが分かる。
【００６４】
制御部１１０は、文判定部１１６によって発話候補が出力されなかった場合に、発話データベース１１を選択する。
【００６５】
発話検索部１１８は、制御部１１０によって発話データベース１１が選択された場合に、入力部７によって受け付けたユーザの発話及び対話行為に基づいて、発話データベース１１から、対話行為が一致し、かつ、当該ユーザの発話に対応する発話を検索し、該当する発話が検索された場合に検索された発話を発話候補として出力し、該当する発話が検索されなかった場合に発話不可であることを示す情報を出力する。
【００６６】
例えば、発話検索部１１８は、入力部７によって受け付けた対話行為と対話行為が一致し、かつ、ユーザの発話中の単語をなるべく多く含むような発話を、発話データベース１１から検索する。なお、発話検索部１１８は、入力部７によって受け付けた、対話行為と焦点とに基づいて、発話データベース１１を検索し、対話行為が一致し、かつ、焦点の単語を含む発話を検索してもよい。
【００６７】
発話検索部１１８での検索結果のランキングでは、全文検索エンジンでよく用いられる単語のＴＦ・ＩＤＦで重み付けをしたベクトル空間モデルを用いてもよいし、同じくよく用いられるＯＫＡＰＩ／ＢＭ２５などを用いてもよい。本実施の形態では、Ｌｕｃｅｎｅのデフォルトである、ＴＦ・ＩＤＦで重み付けをしたベクトル空間モデルによるランキングを用いる。該当する発話が検索されたら、上位Ｋ件を発話候補として出力部１３へ出力する。該当する発話が検索されなかったら検索結果が空の旨の情報を出力部１３へ出力する。
【００６８】
例えば、図８は対話行為として「自己開示評価+」、焦点として「ラーメン」を入力としたときの検索結果である。スコアはベクトル空間モデルに基づく検索結果のスコアである。
【００６９】
出力部１３は、文判定部１１６又は発話検索部１１８から出力された発話候補を出力する。出力された発話候補は、対話システム等の上位モジュールによって発話に使用される。上位モジュールでは、たとえば、複数発話候補があればその中からランダムに一つを発話する。
【００７０】
＜発話データベース構築装置の作用＞
次に、本実施の形態に係る発話データベース構築装置１００の作用について説明する。まず、マイクロブログサイトから取得された、複数の発話を含む発話集合が発話データベース構築装置１００に入力されると、発話データベース構築装置１００によって、図９に示す発話データベース構築処理ルーチンが実行される。
【００７１】
まず、ステップＳ１００において、発話データ入力部１によって、入力された発話集合を受け付け、発話候補データベース２０に格納する。
【００７２】
ステップＳ１０２において、対話行為推定部２２によって、上記ステップＳ１００で発話候補データベース２０に格納された発話集合に含まれる複数の発話のうち、１つの発話を設定する。
【００７３】
ステップＳ１０４において、対話行為推定部２２によって、上記ステップＳ１０２で設定された発話について、当該発話の対話行為を推定し、当該発話に、推定された対話行為を付与する。
【００７４】
ステップＳ１０６において、対話行為推定部２２によって、上記ステップＳ１０２で設定された発話について、当該発話と、上記ステップＳ１０４で付与された対話行為とのペアを、発話データベース３に格納する。
【００７５】
ステップＳ１０８において、発話候補データベース２０に格納された全ての発話について、上記ステップＳ１０２〜Ｓ１０６の処理を実行したか否かを判定する。上記ステップＳ１０２〜Ｓ１０６の処理を実行していない発話が存在する場合には、ステップＳ１０２へ戻る。一方、発話候補データベース２０に格納された全ての発話について、上記ステップＳ１０２〜Ｓ１０６の処理を実行した場合には、発話データベース構築処理ルーチンを終了する。
【００７６】
＜述語項構造データベース構築装置の作用＞
次に、本実施の形態に係る述語項構造データベース構築装置２００の作用について説明する。まず、複数のテキストを含む大規模テキスト集合が述語項構造データベース構築装置２００に入力されると、述語項構造データベース構築装置２００によって、図１０に示す述語項構造データベース構築処理ルーチンが実行される。
【００７７】
まず、ステップＳ２００において、テキストデータ入力部４によって、大規模テキスト集合を受け付け、大規模テキストデータベース５０に格納する。
【００７８】
ステップＳ２０２において、述語項構造データベース構築部５によって、上記ステップＳ２００で大規模テキストデータベース５０に格納された大規模テキスト集合に含まれる複数のテキストのうち、１つのテキストを設定する。
【００７９】
ステップＳ２０４において、上記ステップＳ２０２で設定されたテキストに含まれる文のうち、１つの文を設定する。
【００８０】
ステップＳ２０６において、形態素解析部５２によって、上記ステップＳ２０４で設定された文について、形態素解析を行う。
【００８１】
ステップＳ２０８において、係り受け解析部５４によって、上記ステップＳ２０４で設定された文について、上記ステップＳ２０６によって解析された形態素解析結果に基づいて、係り受け解析を行い、文節を同定し、文節間の係り受け構造を決定する。
【００８２】
ステップＳ２１０において、述語項構造抽出部５６によって、上記ステップＳ２０４で設定された文について、上記ステップＳ２０８で決定された係り受け構造に基づいて、上記ステップＳ２０４で設定された文の述語と当該述語に対応する格の要素である格要素とを同定し、述語項構造として抽出する。そして、ステップＳ２１０において、抽出された述語項構造を、メモリ（図示省略）に一時的に格納する。
【００８３】
ステップＳ２１２において、上記ステップＳ２０２で設定されたテキストに含まれる全ての文について、上記ステップＳ２０４〜Ｓ２１０の処理を実行したか否かを判定する。上記ステップＳ２０４〜Ｓ２１０の処理を実行していない文が存在する場合には、ステップＳ２０４へ戻る。一方、上記ステップＳ２０２で設定されたテキストに含まれる全ての文について、上記ステップＳ２０４〜Ｓ２１０の処理を実行した場合には、ステップＳ２１４へ進む。
【００８４】
ステップＳ２１４において、大規模テキストデータベース５０に格納された全てのテキストについて、上記ステップＳ２０２〜Ｓ２１２の処理を実行したか否かを判定する。上記ステップＳ２０２〜Ｓ２１２の処理を実行していないテキストが存在する場合には、ステップＳ２０２へ戻る。一方、大規模テキストデータベース５０に格納された全てのテキストについて、上記ステップＳ２０２〜Ｓ２１２の処理を実行した場合には、ステップＳ２１６へ進む。
【００８５】
ステップＳ２１６において、上記ステップＳ２１０でメモリ（図示省略）に格納された述語項構造と、当該述語項構造の頻度とを述語項構造データベース６へ格納する。
【００８６】
＜発話生成装置の作用＞
次に、本実施の形態に係る発話生成装置３００の作用について説明する。まず、発話データベース構築装置１００の発話データベース３に記憶されている発話及び対話行為の複数ペアが、発話生成装置３００に入力されると、発話データベース１１に格納される。次に、述語項構造データベース構築装置２００の述語項構造データベース６に記憶されている述語項構造のテーブルデータが、発話生成装置３００に入力されると、述語項構造データベース８に格納される。そして、対話システム等の上位モジュールから、ユーザの発話と、焦点と、対話行為とが発話生成装置３００に入力されると、発話生成装置３００によって、図１１に示す発話生成処理ルーチンが実行される。
【００８７】
まず、ステップＳ３００において、入力部７によって、焦点と、ユーザの発話と、対話行為とを受け付ける。
【００８８】
ステップＳ３０１において、制御部１１０によって、述語項構造データベース８を選択する。
【００８９】
ステップＳ３０２において、述語項構造検索部１１２によって、上記ステップＳ３００で受け付けた焦点に基づいて、述語項構造データベース８から、焦点と一致する格要素を含む述語項構造を検索する。
【００９０】
ステップＳ３０４において、文生成部１１４によって、上記ステップＳ３０２で検索された述語項構造の各々について、述語、格要素、及び格要素の格について予め定められた順番に従って、当該述語項構造の述語、前記格要素、及び格要素の格を並べた平叙文を生成する。
【００９１】
ステップＳ３０６において、文生成部１１４によって、述語項構造の各々について、上記ステップＳ３００で受け付けた対話行為に対応して変換ルールデータベース９に格納された変換ルールに基づいて、上記ステップＳ３０４で当該述語構造に基づいて生成された平叙文を、当該対話行為を表現する文に変換して、発話文を生成する。
【００９２】
ステップＳ３０８において、文判定部１１６によって、上記ステップＳ３０６で生成された発話文の各々について、言語モデルデータベース１０に格納されたＮ−ｇｒａｍ言語モデルに基づいて、パープレキシティ値を算出し、当該パープレキシティ値が閾値以下であれば自然な文であると判定するルールに基づいて、上記ステップＳ３０６で生成された発話文の各々から、不自然な文を除去し、残った自然な発話文があるか否かを判定する。そして、上記ステップＳ３０６で生成された発話文の各々から、自然な発話文が少なくとも１つ残った場合には、ステップＳ３１４へ進む。一方、上記ステップＳ３０６で生成された発話文の全てが、不自然な文として除去された場合には、ステップＳ３０９へ進む。
【００９３】
ステップＳ３０９において、制御部１１０によって、発話データベース１１を選択する。
【００９４】
ステップＳ３１０において、発話検索部１１８によって、上記ステップＳ３００で受け付けたユーザの発話及び対話行為に基づいて、発話データベース１１から、対話行為が一致し、かつ、当該ユーザの発話に対応する発話を検索する。
【００９５】
ステップＳ３１２において、上記ステップＳ３１０で対話行為が一致し、かつ、当該ユーザの発話に対応する発話が検索されたか否かを判定する。該当する発話が検索された場合には、ステップＳ３１４へ進む。一方、該当する発話が検索されなかった場合には、ステップＳ３１６へ進む。
【００９６】
ステップＳ３１４において、出力部１３によって、上記ステップＳ３０８で自然な文であると判定された発話文の各々、又は上記ステップＳ３１２で検索された該当する発話の各々を、発話候補として出力して、発話生成処理ルーチンを終了する。
【００９７】
ステップＳ３１６において、出力部１３によって、発話不可であることを示す情報を出力して、発話生成処理ルーチンを終了する。
【００９８】
なお、ステップＳ３１４において出力された発話候補は、対話システム等の上位モジュールによって発話に使用される。上位モジュールでは、たとえば、複数発話候補があればその中からランダムに一つを発話する。
【００９９】
以上説明したように、本実施の形態に係る発話生成装置によれば、述語項構造を複数記憶した述語項構造データベースから、焦点と一致する格要素を含む述語項構造を検索し、述語項構造の各々に基づいて生成された発話文の各々のうちの自然な文を、ユーザの発話に対する発話候補として出力し、発話候補が出力されなかった場合に、ユーザの発話に基づいて、複数の発話と対話行為のペアを記憶した発話データベースから、対話行為が一致し、かつ、ユーザの発話中の単語を含む発話を検索し、発話が検索された場合に当該発話を発話候補として出力することにより、安定して、ユーザ発話に対する自然な発話候補を生成することができる。
【０１００】
また、上位モジュールである対話システムが、対話システム自身の対話行為（発話意図）に沿った自然な発話を行うことができるようになり、システムの情報伝達の正確性が高まる。
【０１０１】
また、ユーザとの意思疎通がしやすくなり、システムとユーザとのインタラクションが円滑になる。
【０１０２】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０１０３】
例えば、本実施の形態の発話生成装置３００では、述語項構造データベースを優先して検索し、述語項構造データベースの検索結果に基づいて発話候補が生成されなかった場合に、発話データベースを検索する場合について説明したが、これに限定されるものではなく、発話データベースを優先して検索し、発話データベースで発話候補が検索されなかった場合に、述語項構造データベースを検索するように構成してもよい。
【０１０４】
また、上述の発話データベース構築装置１００は、発話候補データベース２０及び発話データベース３を備えている場合について説明したが、例えば発話候補データベース２０及び発話データベース３が発話データベース構築装置１００の外部装置に設けられ、発話データベース構築装置１００は、外部装置と通信手段を用いて通信することにより、発話候補データベース２０及び発話データベース３を参照するようにしてもよい。
【０１０５】
また、上述の述語項構造データベース構築装置２００についても、外部装置に設けられた、大規模テキストデータベース５０及び述語項構造データベース６と通信手段を用いて通信することにより、大規模テキストデータベース５０及び述語項構造データベース６を参照するようにしてもよい。
【０１０６】
また、上述の発話生成装置３００についても、外部装置に設けられた、述語項構造データベース８、変換ルールデータベース９、言語モデルデータベース１０、及び発話データベース１１と通信手段を用いて通信することにより、述語項構造データベース８、変換ルールデータベース９、言語モデルデータベース１０、及び発話データベース１１を参照するようにしてもよい。
【０１０７】
また、上記実施の形態では、発話データベース構築装置１００と述語項構造データベース構築装置２００と発話生成装置３００とを別々の装置として構成する場合を例に説明したが、発話データベース構築装置１００、述語項構造データベース構築装置２００、及び発話生成装置３００の少なくとも２つを１つの装置として構成してもよい。
【０１０８】
上述の発話データベース構築装置１００、述語項構造データベース構築装置２００、及び発話生成装置３００は、内部にコンピュータシステムを有しているが、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【０１０９】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
【符号の説明】
【０１１０】
１     発話データ入力部
２     発話データベース構築部
３     発話データベース
４     テキストデータ入力部
５     述語項構造データベース構築部
６     述語項構造データベース
７     入力部
８     述語項構造データベース
９     変換ルールデータベース
１０   言語モデルデータベース
１１   発話データベース
１２   演算部
１３   出力部
２０   発話候補データベース
２２   対話行為推定部
５０   大規模テキストデータベース
５２   形態素解析部
５４   係り受け解析部
５６   述語項構造抽出部
１００ 発話データベース構築装置
１１０ 制御部
１１２ 述語項構造検索部
１１４ 文生成部
１１６ 文判定部
１１８ 発話検索部
２００ 述語項構造データベース構築装置
３００ 発話生成装置
【図１】
2015075952.tif 000003
【図３】
2015075952.tif 000004
【図５】
2015075952.tif 000005
【図６】
2015075952.tif 000006
【図９】
2015075952.tif 000007
【図１０】
2015075952.tif 000008
【図１１】
2015075952.tif 000009
【図２】
2015075952.tif 000010
【図４】
2015075952.tif 000011
【図７】
2015075952.tif 000012
【図８】
2015075952.tif 000013