JP5718407B2 - 対話パターン抽出装置、対話装置、方法、及びプログラム - Google Patents

対話パターン抽出装置、対話装置、方法、及びプログラム Download PDF

Info

Publication number
JP5718407B2
JP5718407B2 JP2013101631A JP2013101631A JP5718407B2 JP 5718407 B2 JP5718407 B2 JP 5718407B2 JP 2013101631 A JP2013101631 A JP 2013101631A JP 2013101631 A JP2013101631 A JP 2013101631A JP 5718407 B2 JP5718407 B2 JP 5718407B2
Authority
JP
Japan
Prior art keywords
pattern
utterance
word
pair
data
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
JP2013101631A
Other languages
English (en)
Other versions
JP2014222413A (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
Priority to JP2013101631A priority Critical patent/JP5718407B2/ja
Publication of JP2014222413A publication Critical patent/JP2014222413A/ja
Application granted granted Critical
Publication of JP5718407B2 publication Critical patent/JP5718407B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Machine Translation (AREA)

Description

本発明は、対話パターン抽出装置、対話装置、方法、及びプログラムに係り、特に、応答関係にある発話データのペアにおけるパターンを抽出する対話パターン抽出装置、方法、及びプログラム、並びに、応答関係にある発話データのペアにおけるパターンを用いて、ユーザの発話に対して応答する対話装置、方法、及びプログラムに関する。
人間同士が対話を行う場合、定型のやりとりというものがある。たとえば、「こんにちは」に対して「こんにちは」と返したり、「ありがとう」に対して「どういたしまして」と返したり、「こら」に対して「ごめんなさい」と返すようなやりとりのことである。これらの定型やりとりは人間同士の対話で頻出し、人間はごく自然に行っている。ただ、人間が常識的に行うこれらの定型やりとりは、常識の工学的な扱いの難しさから、計算機が苦手とするところである。このような定型やりとりを対話システムが実現するためには、上記のような応答を実現するための発話ペア(ユーザ入力発話(入力部)とそれに対応するシステム出力発話(出力部);たとえばユーザ入力発話「こんにちは」とシステム出力発話「こんにちは」)をデータベースとして保持する必要がある。たとえば、米国の対話システムとして有名なALICE(非特許文献1)はこのような発話ペアを手書きで大量に作成し、定型やりとりを実現している。
手書きのコストを避けるため、入力部に対する出力部を自動的にデータから求める研究もある。たとえば、別所らはユーザの入力発話を元に、マイクロブログであるツイッター(R)を検索し、関連ツイートを得る。そして、そのツイートに対し応答しているツイートを取得し応答に用いている(非特許文献2)。
Richard S. Wallace, "The Anatomy of A.L.I.C.E.," A.L.I.C.E. Artificial Intelligence Foundation, Inc, 2004. Bessho, F., Harada, T., and Kuniyoshi, Y. (2012) . "Dialog System Using Real-Time Crowdsourcing and Twitter Large-Scale Corpus." In Proc. SIGDIAL, pp. 227-231.
上記の非特許文献1の手法では、網羅的な発話ペアを作成するには多大な手作業のコストがかかる。また、上記の非特許文献2の手法では、入力発話を元に検索するだけであり、定型やりとりとしての応答が適切に返せる保証はない。定型やりとりは人間にとっては極めて自然なやりとりであり、確実に行うことができないと、人間とシステムのスムーズなやりとりは実現できない。
本発明は、上記の事情を鑑みてなされたもので、応答関係にある発話データのペアのパターンを抽出することができる対話パターン抽出装置、方法、及びプログラムを提供することを目的とする。
また、応答関係にある発話データのペアのパターンに従って、ユーザの発話に対して応答することができる対話装置、方法、及びプログラムを提供することを目的とする。
上記の目的を達成するために第1の発明に係る対話パターン抽出装置は、複数の発話データを含む対話データから、応答関係にある発話データのペアを各々抽出する発話ペア抽出部と、前記発話ペア抽出部によって抽出された前記発話データのペアの各々について、前記ペアの先に発話された発話データを表す単語列と後に発話された発話データを表す単語列とのペアである単語パターン、及び前記ペアの先に発話された発話データの意味情報を含む文字列と後に発話された発話データを表す単語列とのペアである抽象化パターンの少なくとも一方を取得するパターン取得部と、前記パターン取得部によって取得された単語パターンのうちの、前記対話データにおける前記単語パターンの出現頻度が閾値以上となる単語パターン、又は前記パターン取得部によって取得された抽象化パターンのうちの、前記対話データにおける前記抽象化パターンの出現頻度が閾値以上となる抽象化パターンを出力するパターン出力部と、を含んで構成されている。
第2の発明に係る対話パターン抽出方法は、発話ペア抽出部によって、複数の発話データを含む対話データから、応答関係にある発話データのペアを各々抽出し、パターン取得部によって、前記発話ペア抽出部によって抽出された前記発話データのペアの各々について、前記ペアの先に発話された発話データを表す単語列と後に発話された発話データを表す単語列とのペアである単語パターン、及び前記ペアの先に発話された発話データの意味情報を含む文字列と後に発話された発話データを表す単語列とのペアである抽象化パターンの少なくとも一方を取得し、パターン出力部によって、前記パターン取得部によって取得された単語パターンのうちの、前記対話データにおける前記単語パターンの出現頻度が閾値以上となる単語パターン、又は前記パターン取得部によって取得された抽象化パターンのうちの、前記対話データにおける前記抽象化パターンの出現頻度が閾値以上となる抽象化パターンを出力する。
第3の発明に係る対話装置は、応答関係にある発話データのペアの各々について予め取得された、前記ペアの先に発話された発話データを表す単語列と後に発話された発話データを表す単語列とのペアである、複数の単語パターン、及び前記発話データのペアの各々について予め取得された、前記ペアの前記先に発話された発話データの意味情報を含む文字列と前記後に発話された発話データを表す単語列とのペアである、複数の抽象化パターンの少なくとも一方を記憶した記憶部と、入力されたユーザの発話データに基づいて、前記発話データを表す単語列及び前記発話データの意味情報を含む文字列の少なくとも一方を取得する取得部と、前記取得部によって取得された前記発話データを表す単語列と、前記ペアの前記先に発話された発話データを表す単語列とが一致すると判断される前記単語パターンを、前記記憶部に記憶された前記複数の単語パターンから検索する、又は前記取得部によって取得された前記発話データの意味情報を含む文字列と、前記ペアの前記先に発話された発話データの意味情報を含む文字列とが一致すると判断される前記抽象化パターンを、前記記憶部に記憶された前記複数の抽象化パターンから検索する検索部と、前記検索部によって検索された前記単語パターン又は前記抽象化パターンの、前記後に発話された発話データを表す単語列を、前記ユーザの発話データに対する応答として出力する応答部と、を含んで構成されている。
第4の発明に係る対話方法は、応答関係にある発話データのペアの各々について予め取得された、前記ペアの先に発話された発話データを表す単語列と後に発話された発話データを表す単語列とのペアである、複数の単語パターン、及び前記発話データのペアの各々について予め取得された、前記ペアの前記先に発話された発話データの意味情報を含む文字列と前記後に発話された発話データを表す単語列とのペアである、複数の抽象化パターンの少なくとも一方を記憶した記憶部を含む対話装置における対話方法であって、取得部によって、入力されたユーザの発話データに基づいて、前記発話データを表す単語列及び前記発話データの意味情報を含む文字列の少なくとも一方を取得し、検索部によって、前記取得部によって取得された前記発話データを表す単語列と、前記ペアの前記先に発話された発話データを表す単語列とが一致すると判断される前記単語パターンを、前記記憶部に記憶された前記複数の単語パターンから検索し、又は前記取得部によって取得された前記発話データの意味情報を含む文字列と、前記ペアの前記先に発話された発話データの意味情報を含む文字列とが一致すると判断される前記抽象化パターンを、前記記憶部に記憶された前記複数の抽象化パターンから検索し、応答部によって、前記検索部によって検索された前記単語パターン又は前記抽象化パターンの、前記後に発話された発話データを表す単語列を、前記ユーザの発話データに対する応答として出力する。
第5の発明に係る対話装置は、応答関係にある発話データのペアの各々について予め取得された、前記ペアの先に発話された発話データを表す単語列と後に発話された発話データを表す単語列とのペアである、複数の単語パターン、及び前記発話データのペアの各々について予め取得された、前記ペアの前記先に発話された発話データの意味情報を含む文字列と前記後に発話された発話データを表す単語列とのペアである、複数の抽象化パターンを記憶した記憶部と、入力されたユーザの発話データに基づいて、前記発話データを表す単語列、及び前記発話データの意味情報を含む文字列を取得する取得部と、前記取得部によって取得された前記発話データを表す単語列と、前記ペアの前記先に発話された発話データを表す単語列とが一致すると判断される前記単語パターンを、前記記憶部に記憶された前記複数の単語パターンから検索し、前記取得部によって取得された、前記発話データの意味情報を含む文字列と、前記ペアの前記先に発話された発話データの意味情報を含む文字列とが一致すると判断される前記抽象化パターンを、前記記憶部に記憶された前記複数の抽象化パターンから検索する検索部と、前記検索部によって前記単語パターンが検索された場合には、前記単語パターンの、前記後に発話された発話データを表す単語列を、前記ユーザの発話データに対する応答として出力し、前記検索部によって前記単語パターンが検索されなかった場合であって、かつ、前記検索部によって前記抽象化パターンが検索された場合には、前記抽象化パターンの、前記後に発話された発話データを表す単語列を、前記ユーザの発話データに対する応答として出力する応答部と、を含んで構成されている。
第6の発明に係る対話方法は、応答関係にある発話データのペアの各々について予め取得された、前記ペアの先に発話された発話データを表す単語列と後に発話された発話データを表す単語列とのペアである、複数の単語パターン、及び前記発話データのペアの各々について予め取得された、前記ペアの前記先に発話された発話データの意味情報を含む文字列と前記後に発話された発話データを表す単語列とのペアである、複数の抽象化パターンを記憶した記憶部を含む対話装置の対話方法であって、取得部によって、入力されたユーザの発話データに基づいて、前記発話データを表す単語列、及び前記発話データの意味情報を含む文字列を取得し、検索部によって、前記取得部によって取得された前記発話データを表す単語列と、前記ペアの前記先に発話された発話データを表す単語列とが一致すると判断される前記単語パターンを、前記記憶部に記憶された前記複数の単語パターンから検索し、前記取得部によって取得された、前記発話データの意味情報を含む文字列と、前記ペアの前記先に発話された発話データの意味情報を含む文字列とが一致すると判断される前記抽象化パターンを、前記記憶部に記憶された前記複数の抽象化パターンから検索し、応答部によって、前記検索部によって前記単語パターンが検索された場合には、前記単語パターンの、前記後に発話された発話データを表す単語列を、前記ユーザの発話データに対する応答として出力し、前記検索部によって前記単語パターンが検索されなかった場合であって、かつ、前記検索部によって前記抽象化パターンが検索された場合には、前記抽象化パターンの、前記後に発話された発話データを表す単語列を、前記ユーザの発話データに対する応答として出力する。
第7の発明に係るプログラムは、コンピュータを、上記の対話パターン抽出装置の各部として機能させるためのプログラムである。
第8の発明に係るプログラムは、コンピュータを、上記の対話装置の各部として機能させるためのプログラムである。
以上説明したように、本発明の対話パターン抽出装置、方法、及びプログラムによれば、応答関係にある発話データのペアについて、ペアの先に発話された発話データを表す単語列と後に発話された発話データを表す単語列とのペアである単語パターン、及びペアの先に発話された発話データの意味情報を含む文字列と後に発話された発話データを表す単語列とのペアである抽象化パターンの少なくとも一方を取得し、出現頻度が閾値以上となる単語パターン、又は抽象化パターンを抽出することにより、応答関係にある発話データのペアのパターンを抽出することができる、という効果が得られる。
本発明の対話装置、方法、及びプログラムによれば、入力されたユーザの発話データを表す単語列及び発話データの意味情報を含む文字列の少なくとも一方を取得し、取得された発話データを表す単語列と、ペアの先に発話された発話データを表す単語列とが一致すると判断される単語パターンを検索し、又は取得された発話データの意味情報を含む文字列と、ペアの先に発話された発話データの意味情報を含む文字列とが一致すると判断される抽象化パターンを検索し、検索された単語パターン又は抽象化パターンの、後に発話された発話データを表す単語列を、応答として出力することにより、応答関係にある発話データのペアのパターンに従って、ユーザの発話に対して応答することができる、という効果が得られる。
本発明の実施の形態に係る対話システムの対話パターン抽出装置の構成を示す概略図である。 ツイートデータの一例を示す図である。 1対話のツイートデータの一例を示す図である。 単語パターンの一例を示す図である。 抽象化パターンの一例を示す図である。 本発明の実施の形態に係る対話システムの対話装置の構成を示す概略図である。 対話システムとユーザの対話例を示す図である。 本発明の実施の形態に係る対話パターン抽出装置におけるパターン抽出処理ルーチンの内容を示すフローチャートである。 本発明の実施の形態に係る対話装置における対話処理ルーチンの内容を示すフローチャートである。
以下、図面を参照して本発明の実施の形態を詳細に説明する。
<発明の概要>
大量の対話データから定型やりとりを抽出して、対話システムが用いる発話ペアを獲得する。また、対応できるユーザ入力を拡充するために、発話ペアにおける先の発話を抽象化する。さらに、対話システムがユーザ発話に対して応答するとき、抽象化されていない発話ペア、抽象化された発話ペアを順に用いることで、入力に対して、適切な応答を行う。
<システム構成>
以下では、対話システムに本発明を適用した場合を例に説明する。
図1に示すように、本発明の実施の形態に係る対話システムの対話パターン抽出装置100は、対話データが入力され、発話ペアの定型やりとりのパターンを抽出する。この対話パターン抽出装置100は、CPUと、RAMと、後述するパターン抽出処理ルーチンを実行するためのプログラムを記憶したROMとを備えたコンピュータで構成され、機能的には次に示すように構成されている。図1に示すように、対話パターン抽出装置100は、入力部10と、演算部20とを備えている。
入力部10は、複数の発話データを含む対話データの入力を受け付ける。例えば、マイクロブログサービスであるツイッター(R)から収集したツイートデータの集合が、対話データとして入力される。本実施の形態では、ツイートデータうち、一定期間について、in_reply_toフィールドを保持する、または、他のツイートに返信を受けているツイートデータのみを、ツイッター(R)のサイトからクロールすることで、ツイートデータの集合を収集する。これによって、図2に示すようなデータができる。
上記図2で、各行はツイートを表し、status_idがツイートのID、in_reply_to_status_idが、当該ツイートが返信関係にあるツイートのIDを示す。ここでは、101番のツイートと102番のツイートが、100番のツイートに返信していることが分かる。
演算部20は、対話データ記憶部21、発話ペア抽出部22、単語パターン取得部23、抽象化パターン取得部24、パターン登録部25、単語パターンデータベース26、及び抽象化パターンデータベース27を備えている。パターン登録部25は、パターン出力部の一例である。
対話データ記憶部21は、入力部10により受け付けた対話データを記憶する。
発話ペア抽出部22は、対話データ記憶部21に記憶された対話データから、応答関係にある発話データのペアを各々抽出する。例えば、上記図2に示すような、ツイートデータの集合から、in_reply_toで関係づけられた一連のツイートをひとまとめにする作業を行う。
具体的には、対話データ記憶部21に記憶された各ツイートデータを、in_reply_to_status_idで親ノードを表すような木構造のノードとして扱い、全ツイートデータを木構造となるように内部で変換する。ここで、根ノードは、in_reply_to_status_idで指す先が無いようなツイートデータであり、葉ノードはどこからもin_reply_to_status_id で指されていないツイートデータである。そして、葉ノードから根ノードまでたどり、そのパス中のノードを表すツイートデータを根ノードから葉ノードの順で、1対話として出力することを行う。この過程により、図3に示すようなデータが構築できる。
上記図3に示すデータの形式は疑似XML形式となっている。各対話は<conversation>というタグで括られ、idとthreadという属性を持つ。idはルートのstatus_idごとにユニークに決定されるID番号であり、threadは同じルートを持つ対話を識別するためのスレッド番号である。</conversation>までは、一行一文のツイートであり、発話、ユーザ、日付を表している。なお、ツイッター(R)に特有の書式(@、RTなど)をこの段階で手動のルールに従って除外して、発話の本文だけを抽出しておく。以降、このデータをツイート対話データと呼ぶことにする。
発話ペア抽出部22は、このツイート対話データにおける各対話(conversation)について、連続した発話を取り出す。対話にN発話あれば、N-1個のペアが抽出される。上記図3の例であれば各対話には2つの発話ずつしかないため、それぞれから、1つずつ発話ペアが抽出される。すなわち、「あけましておめでとう」と「おめでとー」のペアと、「あけましておめでとう」と「今年もよろしく」のペアである。
単語パターン取得部23は、発話ペア抽出部22が抽出した発話ペアの各々について、単語を用いて表される単語パターンを作成する。具体的には、発話ペアのうちの先に発話された発話データと後に発話された発話データをそれぞれA、Bとすると、発話データAと発話データBのそれぞれについて、形態素解析し、不要な単語(空白、句点、読点、記号など)を除去した上で、その単語列を取得する。たとえば、発話データが「帰宅した」であれば、「帰宅 し た」という単語列が得られる。発話ペアの発話データAと発話データBを処理し、発話データAから得られた単語列と発話データBから得られた単語列とをペアにし、単語パターンとして取得する。本実施の形態では、形態素解析エンジンとして、出願人が開発している、JTAGを用いているが、他の形態素解析エンジンであるChaSenやMecabを用いてもよい。
抽象化パターン取得部24は、発話ペア抽出部22が抽出した発話ペアの各々について、意味情報と単語とを用いて表される抽象化パターンを作成する。例えば、発話ペアのうちの先に発話された発話データと後に発話された発話データをそれぞれA、Bとすると、発話データAについては、形態素解析し、不要な単語を除去した上、単語それぞれについて、語彙大系の意味属性が付与された単語であれば、予め用意した語彙大系から意味属性の先頭のものを取得し、意味属性がなければ、単語そのものを取得し、各単語について取得した意味属性又は単語を、文字列として連結する。
たとえば、発話データ「帰宅した」であれば、「帰宅」には2175という意味属性が付与されており、「し」には2050という意味属性が付与されており、「た」には意味属性がない。そのため、発話データ「帰宅した」から、「N-2175 N-2050 た」という文字列が得られる。ここで「N-」は名詞の意味属性であることを表す接頭辞である。また、本実施の形態では、抽象化パターン取得部24でも形態素解析にはJTAGを用いる。JTAGは、一般的な形態素解析器が出力する品詞情報などのほか、意味属性と呼ばれる、単語についての意味情報も出力する。なお、各単語の意味情報を取得する際、市中のオンラインのシソーラスを用いて得られる意味情報を用いてもよい。たとえば、WordNetのSynsetIDやEDR辞書における概念識別子を用いてもよい。この結果得られる文字列(たとえば、「N-2175 N-2050 た」)を抽象化された文字列と呼ぶ。
発話データBについては、単語パターン取得部23における処理と同様の処理を行う。すなわち、発話データBを形態素解析し、不要な単語(空白、句点、読点、記号など)を除去した上、その単語列を取得する。発話データAの抽象化された文字列と発話データBの単語列をペアにして、抽象化パターンとする。
パターン登録部25は、単語パターン取得部23によって取得した単語パターンの各々と、抽象化パターン取得部24によって取得した抽象化パターンの各々とに基づいて、対話データ記憶部21に記憶されているツイート対話データ全体における、各単語パターンの頻度、及び各抽象化パターンの頻度を計算し、単語パターンのうち、所定の頻度以上出現した単語パターンを各々選択し、発話ペアとして単語パターンデータベース26に登録する。また、パターン登録部25は、抽象化パターンのうち、所定の頻度以上出現した抽象化パターンを各々選択し、発話ペアとして抽象化パターンデータベース27に登録する。たとえば、所定の頻度とは10である。
なお、パターン登録部25は、単語パターンデータベース26及び抽象化パターンデータベース27に登録する単語パターン及び抽象化パターンの、後の発話データBの単語列について、単語間の空白を削除する。この空白の除去は、対話システムの対話装置150で、ユーザ発話に対する応答としてそのまま出力できるようにするためである。なお、登録されたパターンの質の向上のため、以下の工夫も行う。
固有名詞、数値などが単語パターン及び抽象化パターンの、後の発話データBの単語列に存在することがまれにある。このようなパターンにおける後の発話データBの単語列は、具体的な内容を含んでいると考えられ、いつでも使える定型やりとりとしては妥当ではない可能性が高い。そこで、後の発話データBの単語列について形態素解析を行い、固有名詞や数値が含まれていると判断される場合は、パターン登録部25は、頻度に関係なく、当該後の発話データBの単語列を有する単語パターン及び抽象化パターンを、単語パターンデータベース26及び抽象化パターンデータベース27に登録しない。また、後の発話データBの単語列に含まれている意味属性を確認し、7番から45番までの意味属性(人物を指す表現に相当)が含まれている場合は、特定の人物に対する応答である可能性があるため、パターン登録部25は、当該後の発話データBの単語列を有する単語パターン及び抽象化パターンを、単語パターンデータベース26及び抽象化パターンデータベース27に登録しない。また、先の発話データAの単語列及び後の発話データBの単語列の少なくとも一方の文字列長が長すぎる場合にも複雑な内容が含まれるなど、定型やりとりではない可能性が高いため、パターン登録部25は、当該単語列を有する単語パターン及び抽象化パターンを、単語パターンデータベース26及び抽象化パターンデータベース27に登録しない。たとえば、20文字を超える場合は登録しない。
例えば、数千万のconversationからなるツイート対話データから、上記で説明したパターン抽出処理を経て、19375の単語パターンが単語パターンデータベース26に登録される。また、19790の抽象化パターンが抽象化パターンデータベース27に登録される。図4は、登録された単語パターンの抜粋であり、図5は、登録された抽象化パターンの抜粋である。3つのカラムからなっており、パターンのID番号、ユーザ入力発話(前の発話データAの単語列又は抽象化された文字列)、システム出力発話(後の発話データBの単語列)である。2カラム目、3カラム目の組がいわゆる発話ペアである。
図6に示すように、本発明の実施の形態に係る対話システムの対話装置150は、ユーザ発話が入力され、ユーザ発話に対する応答を出力する。この対話装置150は、CPUと、RAMと、後述する対話処理ルーチンを実行するためのプログラムを記憶したROMとを備えたコンピュータで構成され、機能的には次に示すように構成されている。図6に示すように、対話装置150は、入力部50と、演算部60と、出力部70とを備えている。
入力部50は、入力されたユーザ発話を受け付ける。
演算部60は、単語パターンデータベース61、抽象化パターンデータベース62、及び応答部63を備えている。
単語パターンデータベース61には、対話パターン抽出装置100の単語パターンデータベース26と同じ単語パターンが記憶されている。
抽象化パターンデータベース62には、対話パターン抽出装置100の抽象化パターンデータベース27と同じ抽象化パターンが記憶されている。
応答部63は、入力部50により入力されたユーザ発話を受け付けると、ユーザ発話の入力文字列に対して、単語パターン取得部23による単語パターンの前の発話データAの単語列を取得する処理と同様の処理を行って、単語列を取得すると共に、抽象化パターン取得部24による抽象化パターンの前の発話データAの抽象化された文字列を取得する処理と同様の処理を行って、抽象化された文字列を取得する。
そして、応答部63は、単語パターンデータベース61に記憶された単語パターンから、前の発話データAの単語列が、上記取得した単語列と一致すると判断される単語パターンを検索する。一致すると判断される単語パターンが検索されると、応答部63は、検索された単語パターンの後の発話データBの単語列を用いて出力部70により応答する。一致する単語パターンが複数検索された場合には、そのうち一つの単語パターンをランダムに選択して出力部70により応答する。一致すると判断される単語パターンが検索されなかった場合には、抽象化パターンデータベース62に記憶された抽象化パターンから、前の発話データAの抽象化された文字列が、上記取得した抽象化された文字列と一致すると判断される抽象化パターンを検索する。一致すると判断される抽象化パターンが検索されると、応答部63は、検索された抽象化パターンの後の発話データBの単語列を用いて出力部70により応答する。一致すると判断される抽象化パターンが複数検索された場合には、そのうち一つの抽象化パターンをランダムに選択して出力部70により応答する。
なお、本実施の形態では、応答部63は、完全一致のみではなく、一致するとみなされる単語パターンや抽象化パターンを検索している。具体的には、例えば、編集距離や単語の重複率などを用いて、予め設けておいた閾値に基づいて当該閾値を超えるか否かにより、一致するか否かを判断して、単語パターンや抽象化パターンを検索している。このように応答部63は、上記取得した単語列と完全に一致する単語パターンのみではなく、一致すると判断される単語パターンを検索し、上記取得した抽象化された文字列と完全に一致する抽象化パターンのみではなく、一致すると判断される抽象化パターンを検索することが好ましい。
このように、単語パターンとのマッチを優先し、意味情報を用いた抽象化パターンとの緩やかなマッチを後段に行うことで、単語列が一致するパターンによる応答ができる場合にはそれを行い、単語列として一致しないような入力であるが、意味的には近い入力についても、定型やりとりを実現することができる。なお、一致すると判断される単語パターン及び抽象化パターンの何れも検索されなかった場合には、定型やりとりの範疇ではないと判断し、別途用意した発話ペア又は別途人手で作成した応答ルールに基づいて、応答すればよい。別途用意した発話ペアに基づいて応答する方法、別途人手で作成した応答ルールを用いて応答する方法については、例えば、上記の非特許文献1に記載のALICEなどの従来既知の方法を用いればよいため、説明を省略する。
図7に、本実施の形態に係る対話装置150を用いた対話システムとユーザとの対話例を示す。人間同士がよく行うような定型やりとりを用いることで、自然な対話を実現できていることが分かる。なお、最初のシステムの「こんにちは」は対話システムのプロンプト(初期発話)であり、取得したパターンを用いて発話しているわけではない点に注意する。
<対話システムの作用>
次に、本実施の形態に係る対話システムの作用について説明する。まず、予め用意されたツイート対話データが対話パターン抽出装置100に入力されると、対話パターン抽出装置100によって、入力されたツイート対話データが、対話データ記憶部21へ格納される。そして、対話パターン抽出装置100によって、図8に示すパターン抽出処理ルーチンが実行される。
まず、ステップS101において、対話データ記憶部21から、ツイート対話データを取得し、ステップS102において、上記ステップS101で取得したツイート対話データから、発話ペアを各々抽出する。
次のステップS103では、上記ステップS102で抽出された発話ペアの各々について、当該発話ペアの発話データAから得られた単語列と発話データBから得られた単語列とをペアにして、単語パターンとして取得する。
そして、ステップS104において、上記ステップS102で抽出された発話ペアの各々について、当該発話ペアの発話データAの各単語の意味属性を求めることにより得られた抽象化された文字列と発話データBから得られた単語列とをペアにして、抽象化パターンとして取得する。
次のステップS105では、上記ステップS103で取得した単語パターンから、ツイート対話データ全体における出現頻度が所定の頻度以上となる単語パターンを選択し、単語パターンデータベース26に登録する。そして、ステップS106において、上記ステップS104で取得した抽象化パターンから、ツイート対話データ全体における出現頻度が所定の頻度以上となる抽象化パターンを選択し、抽象化パターンデータベース27に登録し、パターン抽出処理ルーチンを終了する。
そして、単語パターンデータベース26に登録された単語パターンが、対話装置150の単語パターンデータベース61に記憶される。また、抽象化パターンデータベース27に登録された単語パターンが、対話装置150の抽象化パターンデータベース62に記憶される。
ユーザ発話が対話装置150に入力されると、対話装置150によって、図9に示す対話処理ルーチンが実行される。
ステップS111において、入力されたユーザ発話を受け付ける。ステップS112では、上記ステップS111で受け付けたユーザ発話から、単語列を取得し、単語パターンデータベース26から、上記で取得した単語列と、前の発話データAの単語列とが一致すると判断される単語パターンを検索する。
ステップS113では、上記ステップS112で単語パターンが検索されたか否かを判定する。単語パターンが検索された場合には、ステップS114で、上記ステップS112で検索された単語パターンの、後の発話データBの単語列を用いて、上記ステップS111で入力されたユーザ発話に対する応答を生成する。
一方、単語パターンが検索されなかった場合には、ステップS115において、上記ステップS111で受け付けたユーザ発話から、抽象化された文字列を取得し、抽象化パターンデータベース27から、上記で取得した抽象化された文字列と、前の発話データAの抽象化された文字列とが一致すると判断される抽象化パターンを検索する。
ステップS116では、上記ステップS115で抽象化パターンが検索されたか否かを判定する。抽象化パターンが検索された場合には、ステップS117で、上記ステップS115で検索された抽象化パターンの、後の発話データBの単語列を用いて、上記ステップS111で入力されたユーザ発話に対する応答を生成する。
一方、抽象化パターンが検索されなかった場合には、ステップS118において、予め用意した発話ペアに基づいて、入力されたユーザ発話に対する応答を生成する。
ステップS119では、上記ステップS114、S117、又はS118で生成された応答を、出力部70により出力し、対話処理ルーチンを終了する。
以上説明したように、本実施の形態に係る対話システムの対話パターン抽出装置によれば、対話データから抽出された発話ペアの各々について、ペアの先に発話された発話データを表す単語列と後に発話された発話データを表す単語列とのペアである単語パターン、及びペアの先に発話された発話データの意味情報を含む抽象化された文字列と後に発話された発話データを表す単語列とのペアである抽象化パターンを取得し、出現頻度が閾値以上となる単語パターン及び抽象化パターンを抽出することにより、応答関係にある発話データのペアのパターンを抽出することができる。
また、対話システムの対話装置によれば、入力されたユーザの発話データを表す単語列及び当該発話データの意味情報を含む抽象化された文字列を取得し、取得された発話データを表す単語列と、ペアの先に発話された発話データを表す単語列とが一致すると判断される単語パターンを検索し、取得された発話データの抽象化された文字列と、ペアの先に発話された発話データの抽象化された文字列とが一致すると判断される抽象化パターンを検索し、検索された単語パターン又は抽象化パターンの、後に発話された発話データを表す単語列を、応答として出力することにより、応答関係にある発話データのペアのパターンに従って、ユーザの発話に対して応答することができる。
また、対話パターン抽出装置は、大規模な対話コーパスである対話データから、高頻度に出現する発話ペアを単語パターンとして抽出すると共に、パターン中の単語を意味情報に抽象化することによって、より汎用的な抽象化パターンを抽出することができる。さらに、対話装置は、抽象化されていない単語パターンと抽象化されたパターンを順に利用することで、ユーザに適切な応答を返すことができる。
また、人間が日常的に行うようなやりとりを対話システムが実現できるようになり、人間とシステムの間のやりとりがスムーズになる。その結果、コンピュータと人間の共同作業の効率が高まる。
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
例えば、対話パターン抽出装置と対話装置とを一つの装置で実現するようにしてもよい。
また、対話パターン抽出装置は、単語パターンのみを抽出し、単語パターンデータベースに登録するようにしてもよい。この場合には、対話装置は、単語パターンデータベースのみを備え、入力されたユーザ発話の単語列と一致すると判断される単語パターンを単語パターンデータベースから検索して、応答を生成する。
また、対話パターン抽出装置は、抽象化パターンのみを抽出し、抽象化パターンデータベースに登録するようにしてもよい。この場合には、対話装置は、抽象化パターンデータベースのみを備え、入力されたユーザ発話の抽象化された文字列と一致すると判断される抽象化パターンを抽象化パターンデータベースから検索して、応答を生成する。
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
10、50 入力部
20、60 演算部
21 対話データ記憶部
22 発話ペア抽出部
23 単語パターン取得部
24 抽象化パターン取得部
25 パターン登録部
26、61 単語パターンデータベース
27、62 抽象化パターンデータベース
63 応答部
70 出力部
100 対話パターン抽出装置
150 対話装置

Claims (6)

  1. 複数の発話データを含む対話データから、応答関係にある発話データのペアを各々抽出する発話ペア抽出部と、
    前記発話ペア抽出部によって抽出された前記発話データのペアの各々について、前記ペアの先に発話された発話データを表す単語列の各単語に対して予め用意された前記単語の意味情報、及び意味情報がない単語からなる文字列と、後に発話された発話データを表す単語列とのペアである抽象化パターンを取得するパターン取得部と、
    前記パターン取得部によって取得された抽象化パターンのうちの、前記対話データにおける前記抽象化パターンの出現頻度が閾値以上となる抽象化パターンを出力するパターン出力部と、
    を含む対話パターン抽出装置。
  2. 前記パターン取得部は、
    前記発話ペア抽出部によって抽出された前記発話データのペアの各々について、前記ペアの前記先に発話された発話データの形態素解析結果に基づいて得られる単語の各々の意味情報、及び意味情報がない単語からなる文字列と前記後に発話された発話データの形態素解析結果に基づいて得られる単語列とのペアを、前記抽象化パターンとして取得する請求項1記載の対話パターン抽出装置。
  3. 前記パターン取得部は、前記発話ペア抽出部によって抽出された前記発話データのペアの各々について、前記ペアの先に発話された発話データを表す単語列と後に発話された発話データを表す単語列とのペアである単語パターン、及び前記ペアの抽象化パターンを取得し、
    前記パターン出力部は、前記パターン取得部によって取得された単語パターンのうちの、前記対話データにおける前記単語パターンの出現頻度が閾値以上となる単語パターン、及び前記パターン取得部によって取得された抽象化パターンのうちの、前記対話データにおける前記抽象化パターンの出現頻度が閾値以上となる抽象化パターンを出力する請求項1又は2記載の対話パターン抽出装置。
  4. 前記パターン取得部は、
    前記発話ペア抽出部によって抽出された前記発話データのペアの各々について、前記ペアの前記先に発話された発話データの形態素解析結果に基づいて得られる単語列と前記後に発話された発話データの形態素解析結果に基づいて得られる単語列とのペアを、前記単語パターンとして取得する請求項3記載の対話パターン抽出装置。
  5. 発話ペア抽出部によって、複数の発話データを含む対話データから、応答関係にある発話データのペアを各々抽出し、
    パターン取得部によって、前記発話ペア抽出部によって抽出された前記発話データのペアの各々について、前記ペアの先に発話された発話データを表す単語列の各単語に対して予め用意された前記単語の意味情報、及び意味情報がない単語からなる文字列と後に発話された発話データを表す単語列とのペアである抽象化パターンを取得し、
    パターン出力部によって、前記パターン取得部によって取得された抽象化パターンのうちの、前記対話データにおける前記抽象化パターンの出現頻度が閾値以上となる抽象化パターンを出力する
    対話パターン抽出方法。
  6. コンピュータを、請求項1記載の対話パターン抽出装置を構成する各部として機能させるためのプログラム。
JP2013101631A 2013-05-13 2013-05-13 対話パターン抽出装置、対話装置、方法、及びプログラム Active JP5718407B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013101631A JP5718407B2 (ja) 2013-05-13 2013-05-13 対話パターン抽出装置、対話装置、方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013101631A JP5718407B2 (ja) 2013-05-13 2013-05-13 対話パターン抽出装置、対話装置、方法、及びプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014221444A Division JP5964924B2 (ja) 2014-10-30 2014-10-30 対話装置、方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2014222413A JP2014222413A (ja) 2014-11-27
JP5718407B2 true JP5718407B2 (ja) 2015-05-13

Family

ID=52121915

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013101631A Active JP5718407B2 (ja) 2013-05-13 2013-05-13 対話パターン抽出装置、対話装置、方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP5718407B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020177366A (ja) * 2019-04-16 2020-10-29 日本電信電話株式会社 発話ペア獲得装置、発話ペア獲得方法、およびプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5117744B2 (ja) * 2007-03-13 2013-01-16 日本電信電話株式会社 単語意味タグ付与装置および方法、プログラム並びに記録媒体

Also Published As

Publication number Publication date
JP2014222413A (ja) 2014-11-27

Similar Documents

Publication Publication Date Title
CN109241538B (zh) 基于关键词和动词依存的中文实体关系抽取方法
CN104636466B (zh) 一种面向开放网页的实体属性抽取方法和系统
JP6596517B2 (ja) 口語語義解析システム及び方法
JP6466952B2 (ja) 文章生成システム
CN102693279B (zh) 一种快速计算评论相似度的方法、装置及系统
CN110765235B (zh) 训练数据的生成方法、装置、终端及可读介质
JP2018028752A (ja) 対話システム及びそのためのコンピュータプログラム
CN110046351A (zh) 规则驱动下基于特征的文本关系抽取方法
CN103593412B (zh) 一种基于树形结构问题的应答方法及系统
Ljubešić et al. Standardizing tweets with character-level machine translation
CN108319583A (zh) 从中文语料库提取知识的方法与系统
JP6427466B2 (ja) 同義語ペア獲得装置、方法、及びプログラム
JP2015045833A (ja) 発話文生成装置とその方法とプログラム
JP5718405B2 (ja) 発話選択装置、方法、及びプログラム、対話装置及び方法
JP5964924B2 (ja) 対話装置、方法、及びプログラム
US20120096028A1 (en) Information retrieving apparatus, information retrieving method, information retrieving program, and recording medium on which information retrieving program is recorded
KR101333485B1 (ko) 온라인 사전을 이용한 개체명 사전 구축 방법 및 이를 실행하는 장치
Jain et al. Text independent root word identification in Hindi language using natural language processing
JP5291351B2 (ja) 評価表現抽出方法、評価表現抽出装置、および、評価表現抽出プログラム
JP4005343B2 (ja) 情報検索システム
Shen et al. Dependency parse reranking with rich subtree features
JP5718407B2 (ja) 対話パターン抽出装置、対話装置、方法、及びプログラム
JP5911931B2 (ja) 述語項構造抽出装置、方法、プログラム、及びコンピュータ読取り可能な記録媒体
JP6126965B2 (ja) 発話生成装置、方法、及びプログラム
JP5718406B2 (ja) 発話文生成装置、対話装置、発話文生成方法、対話方法、発話文生成プログラム、及び対話プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140902

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141125

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150123

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: 20150217

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150318

R150 Certificate of patent or registration of utility model

Ref document number: 5718407

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150