FAQ候補抽出システムおよびFAQ候補抽出プログラム
【課題】話し言葉やノイズといった談話データの特性に強く、談話の文章構造の枠組みを規定せずに、談話データの構造を解析した結果からQ&A対を抽出するFAQ候補抽出システムを提供する。
【解決手段】談話データ101および談話セマンティクス200を入力とし、談話データ101からFAQ候補300となる質問−回答対を抽出して出力するFAQ候補抽出システム1であって、談話セマンティクス200は各ステートメントのフロー情報21を含み、質問文であることを示すフローが設定された第1のステートメントを同定し、さらに第1のステートメントの後に最初に現れ、かつ話者が異なり、談話に固有の事項について具体的な内容を述べているものであることを示すフローが設定された第2のステートメントを同定し、第1のステートメントと第2のステートメントとを質問−回答対として抽出するQ&A対抽出部60を有する。
【解決手段】談話データ101および談話セマンティクス200を入力とし、談話データ101からFAQ候補300となる質問−回答対を抽出して出力するFAQ候補抽出システム1であって、談話セマンティクス200は各ステートメントのフロー情報21を含み、質問文であることを示すフローが設定された第1のステートメントを同定し、さらに第1のステートメントの後に最初に現れ、かつ話者が異なり、談話に固有の事項について具体的な内容を述べているものであることを示すフローが設定された第2のステートメントを同定し、第1のステートメントと第2のステートメントとを質問−回答対として抽出するQ&A対抽出部60を有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自然言語処理の技術に関し、特に、音声認識処理により得られた談話データの構造を解析した結果からFAQ(Frequently Asked Questions)の候補を抽出するFAQ候補抽出システムおよびFAQ候補抽出プログラムに適用して有効な技術に関するものである。
【背景技術】
【0002】
例えば、コールセンター業務において、オペレータやコミュニケータは、電話応対後に応対記録を作成して応対管理システム等へ保存するという一連の業務を行う必要がある。このとき、オペレータ等は、自身の記憶を頼りにして応対記録を作成するため作成に時間がかかるという問題がある。
【0003】
また、各オペレータ等のスキルに応じて品質(内容、統一性、網羅性、簡潔性等)にバラツキが生じる。このように応対記録の品質にバラツキがあったり品質が低かったりすることにより、顧客の声を正確に把握することができなかったり、応対記録の蓄積からテキストマイニング等の技術を利用して新たな知見を得るというようなことができなかったりなどの問題も生じる。
【0004】
このような問題を解決するため、音声認識の技術を活用した解決策が検討されている。音声認識の技術によって応対の音声情報をテキスト化して保存することにより、応対記録の網羅性を確保することができる。また、テキスト化したデータに対して自然言語処理の技術を適用して内容を要約することで応対記録を自動作成することも可能であり、応対記録作成にかかるコストを削減して、統一性、簡潔性を確保することで応対記録の活用性を向上させることも可能と考えられる。
【0005】
このような技術として、例えば、非特許文献1には、コールセンターにおける音声対話において、音声データをテキスト化し、過去の対話内容とその営業日報から帰納的学習により再帰的に規則獲得を行い、それらの規則を用いて未知の対話内容に対して重要箇所を決定・抽出し、文体変換を行うことで営業日報を自動生成する技術が記載されている。
【0006】
一方で、テキスト化した音声データの蓄積からテキストマイニング等による分析などにより新たな知見を得る技術としては、音声データの対話の種類により種々のものが想定されるが、例えば、上述したコールセンターにおける電話応対の内容からは、よく行われる質問とそれに対する回答からなる質問−回答対(以下では「Q&A対」と記載する場合がある)を抽出して、FAQ(Frequently Asked Questions)を自動生成するという技術が想定される。
【0007】
従来では、テキスト化された音声対話等の文章データから、統計的な処理によってよく行われる質問を抽出するということは行われていたが、これに対する回答を合わせて統計的に抽出するということは困難であり、回答については別途作成してQ&A対を作成することが一般的に行われていた。
【0008】
これに対して、例えば、非特許文献2には、近年増えてきたクローズドキャプション付きのテレビ番組を対象として、テレビ番組内のクローズドキャプションの中から、CRF(Conditional Random Fields)を用いて質問文を同定し、これに対応する解答文の中心を推定し、さらにCRFを用いて解答文の導入・補足となる情報も合わせて同定することにより、質問−解答対を抽出する技術が記載されている。
【先行技術文献】
【非特許文献】
【0009】
【非特許文献1】矢野純司、荒木健治、“コールセンターにおける音声対話を対象とした帰納的学習を用いた営業日報生成手法の性能評価”、情報処理学会研究報告 2007−NL−178、2007年3月28日、p.21−28
【非特許文献2】河野将弘、他6名、“CRFを用いたテレビ番組クローズドキャプションからの質問−解答対自動抽出”、言語処理学会第14回年次大会 発表論文集、2008年3月20日、p.915−918
【発明の概要】
【発明が解決しようとする課題】
【0010】
人の談話を音声認識によりテキスト化したデータ(以下では「談話データ」と記載する場合がある)を活用する場合、談話データ内の文章は通常は話し言葉で記録されているため、正しい文法に則った日本語文や、書き言葉を前提とした既存の自然言語処理の技術ではうまく対応できない場合がある。また、現状の音声認識エンジンの精度では認識ミスを排除することはできず、誤認識による誤字・脱字などのノイズが多い。従って、談話データについて自然言語処理を利用して解析し、有効活用するのは困難である。
【0011】
一方、テキスト化した音声データの蓄積から、例えば、FAQの候補となるようなQ&A対などの新たな知見を得る技術として、上述の非特許文献2の技術では、テレビ番組のクローズドキャプションからQ&A対を抽出することができるが、ここでは、対象のクローズドキャプションの内容はスキーマにアノテーションされる、すなわち、あらかじめ規定された文章構造の枠組みに当てはめられ、これに基づいて質問と回答の抽出を行うものである。
【0012】
しかしながら、例えば、コールセンターにおける電話応対をテキスト化したデータなど、決められた文章構造の枠組みやスキーマに当てはめることができない、もしくは困難であるような談話データからQ&A対を抽出することは、非特許文献2の技術では困難であり、また、そのような技術は従来存在しなかった。
【0013】
そこで本発明の目的は、話し言葉やノイズといった談話データの特性に強く、談話の文章構造の枠組みを規定せずに、談話データの構造を解析した結果からFAQの候補となるQ&A対を抽出するFAQ候補抽出システムおよびFAQ候補抽出プログラムを提供することにある。
【0014】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0015】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【0016】
本発明の代表的な実施の形態によるFAQ候補抽出システムは、FAQ候補抽出プログラムによって機能し、音声認識処理によって談話の内容がテキスト化された談話データ、および前記談話データにおける前記談話の構造の解析結果である、前記談話全体の意味内容を把握するための情報である談話セマンティクスを入力とし、前記談話データからFAQ候補となる質問−回答対を抽出して出力するFAQ候補抽出システムであって、以下の特徴を有するものである。
【0017】
すなわち、FAQ候補抽出システムにおいて、前記談話セマンティクスは、前記談話データにおける各ステートメントの意味内容を示すフローの情報を含むフロー情報を含み、FAQ候補抽出システムは、前記談話セマンティクスにおいて、前記ステートメントが相手の話者に対する質問文であることを示す前記フローが設定された第1のステートメントを同定し、さらに、前記談話データにおいて前記第1のステートメントの後に最初に現れ、かつ前記第1のステートメントと話者が異なり、前記ステートメントが前記談話に固有の事項について具体的な内容を述べているものであることを示す前記フローが設定された第2のステートメントを同定し、前記第1のステートメントと前記第2のステートメントとを前記質問−回答対として抽出する質問−回答対抽出部を有することを特徴とするものである。
【発明の効果】
【0018】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【0019】
本発明の代表的な実施の形態によれば、談話構造の解析結果である、談話データの各ステートメントについてのフローの情報を利用することにより、談話の文章構造の枠組みを規定せずに、談話データからQ&A対を抽出することができる。また、談話データの内容および談話構造の解析結果から必要な部分のみを参照してQ&A対を抽出するため、他の部分にノイズやノイズによる誤った解析結果が含まれている場合でも、これらからの影響を極小化してQ&A対を抽出することができる。
【図面の簡単な説明】
【0020】
【図1】本発明の一実施の形態であるFAQ候補抽出システムの構成例の概要について示したブロック図である。
【図2】本発明の一実施の形態における談話構造解析システムの構成例の概要について示したブロック図である。
【図3】本発明の一実施の形態における談話の例および談話セマンティクスの概念について示した図である。
【図4】本発明の一実施の形態における談話データにおけるフローとコンテキストの例について示した図である。
【図5】本発明の一実施の形態における談話構造解析システムのフロー解析ルールの例について示した図である。
【図6】本発明の一実施の形態における談話構造解析システムのフロー解析部におけるフロー解析処理の流れの例を示したフローチャートである。
【図7】本発明の一実施の形態における談話構造解析システムの固有表現解析ルールの例について示した図である。
【図8】本発明の一実施の形態における談話構造解析システムの固有表現解析部における固有表現解析処理の流れの例を示したフローチャートである。
【図9】本発明の一実施の形態における談話構造解析システムでの結束性解析の例について示した図である。
【図10】本発明の一実施の形態における談話構造解析システムの結束性解析部における結束性解析処理の流れの例を示したフローチャートである。
【図11】本発明の一実施の形態におけるFAQ候補抽出システムでのQ&A対抽出の例について示した図である。
【図12】本発明の一実施の形態におけるFAQ候補抽出システムのQ&A対抽出部におけるQ&A対抽出処理の流れの例を示したフローチャートである。
【発明を実施するための形態】
【0021】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0022】
本発明の一実施の形態であるFAQ候補抽出システムは、話し言葉を含む談話データについての談話構造の解析結果である談話セマンティクス(談話全体の意味内容を把握するための談話構造に係る情報)に基づいて、談話データからQ&A対を抽出する。さらに、これらに対して、予め設定したキーワードの出現頻度に基づいて類似度を算出してグループ化することによりクラスタリングし、さらにクラスタ毎にスコアリングすることによりランキングを行って、FAQ候補として出力するシステムである。
【0023】
ここで、談話セマンティクスとは、例えば、談話データにおける文字列や形態素から意味内容を推測して、談話データ全体について後述するようなフロー、さらには結束性(談話のセグメント)、固有表現などの談話構造の解析を行って得られた解析結果である。この談話セマンティクスは、例えば、後述する談話構造解析システムを用いることによって談話データから生成してもよいし、他の自然言語処理を利用した文章構造の解析システム等を利用して生成してもよい。また、人手によって談話データにタグ付け等を行って作成することも可能である。本実施の形態では、後述する談話構造解析システムを用いて生成するものとして説明する。
【0024】
本実施の形態における談話セマンティクスは、日本語の文章としての内容や構造の厳密な解析結果である必要はなく、例えば、コールセンターにおける応対記録の作成などの実用上支障のないレベルの精度のものであればよい。なお、本明細書において、「談話」とは1人以上の話者による発話行為を指し、例えば、1人で話す講演会でのスピーチ等や、上述したようなコールセンターのオペレータ等と顧客とのやり取り、複数人での電話会議やテレビ会議、その他の複数人での会話・対話が含まれる。
【0025】
図3は、本実施の形態における談話の例および談話セマンティクスの概念について示した図である。図3の例では、コールセンターのオペレータと顧客とのやり取りからなる談話の例を示している。左側の発話はオペレータの発話であり、右側は顧客の発話を示している。本実施の形態では、各話者の発話1文を「ステートメント」と呼ぶものとする。また、話者毎の連続したステートメントのまとまりを「ブロック」と呼ぶものとする(同一話者の連続したステートメントでも時間的に間隔が空いた場合は別のブロックとなる)。
【0026】
図3において、「フロー」とは、各ステートメントの意味内容を端的に示す情報である。この情報をトレースすることによって談話の流れを把握することができる。例えば、図3のオペレータのステートメントにおいて、最初の“はい。”はフローが“挨拶”になっているのに対し、次の“はい。”ではフローが“相槌”となっている。このように、談話の状況(コンテキスト)に応じて、同じ文言のステートメントであってもフローが異なるものとなる場合がある。
【0027】
また、図3において、「固有表現」とは、談話の内容を個別に特徴付ける表現であり、例えば、図3のコールセンターでのやり取りの談話では、話者のIDや人名、企業名、電話番号、所在地などの固有名詞等が該当する。また、「セグメント」とは、ブロック毎の談話の内容が共通する(結束する)ものをまとめてセグメント化したものである。上記の「フロー」、「固有表現」、「セグメント」についての情報は、談話構造の解析結果として「談話セマンティクス」の構成要素となる。
【0028】
[システム構成(談話構造解析システム)]
図2は、本発明の一実施の形態における談話構造解析システムの構成例の概要について示したブロック図である。談話構造解析システム2は、サーバやPC(Personal Computer)等のコンピュータシステムによって構成され、例えば、ソフトウェアプログラムによって実装される前処理部10、フロー解析部20、形態素解析部30、固有表現解析部40、結束性解析部50の各部と、フロー解析ルール22、および固有表現解析ルール42の各テーブルを有し、音声認識エンジン3によって談話の内容がテキスト化された談話データ100を入力として、談話構造の解析を行って談話セマンティクス200を出力する。
【0029】
なお、音声認識エンジン3には既存のものを利用することができる。本実施の形態の談話構造解析システム2は、上述したように、談話データ100のノイズ(音声認識エンジン3による認識ミス等)に強いという特徴を有するが、音声認識エンジン3の認識率が高いほうがより精度の高い談話構造の解析を行うことが可能であることはいうまでもない。
【0030】
談話構造解析システム2の前処理部10は、談話データ100の入力を受けて、必要に応じて、他の各部での処理が可能なようにデータのレイアウト変換などの前処理を行う機能を有する。ここでは、例えば、話者毎に連続したステートメントをブロックとしてまとめて、各ブロックおよび各ステートメントに順序を示すシーケンス番号(ID)を割り振ったり、各ブロックの話者のデータを抽出・設定したりなどの処理を行う。なお、談話データ100は、例えば、XML(eXtended Markup Language)などを利用したデータ構造として表される。
【0031】
フロー解析部20は、前処理部10による前処理後の談話データ100に対して、フロー解析ルール22に基づくルールベースでのフローの解析を行い、解析結果としてフロー情報21を出力する機能を有する。フロー情報21は、談話データ100内の各ステートメントのIDとこれに対応するフローの情報を保持し、例えば、XMLなどを利用したデータ構造として表される。
【0032】
このフロー情報21は、談話構造解析システム2の出力として談話セマンティクス200に含まれ、必須の構成要素となる。すなわち、談話セマンティクス200には、少なくとも談話データ100についてのフローの解析結果としてフロー情報21が含まれる。なお、フロー解析ルール22の内容、およびフロー解析部20での処理の詳細については後述する。
【0033】
形態素解析部30は、前処理部10による前処理後の談話データ100に対して、形態素(言語における意味を持つ最小の単位)の列に分割して品詞を判別するいわゆる形態素解析を行い、解析結果として形態素情報31を出力する機能を有する。形態素情報31は、談話データ100内の各ステートメントのIDとこれに対応する形態素列の情報を保持し、例えば、XMLなどを利用したデータ構造として表される。
【0034】
この形態素情報31は、フロー情報21と同様に、談話構造解析システム2の出力として談話セマンティクス200に含まれるとともに、後述する固有表現解析部40や結束性解析部50に対する入力となる。すなわち、固有表現解析部40による固有表現の解析や、結束性解析部50による結束性の解析(セグメント化)を行わない場合は、形態素解析部30による形態素解析は不要な場合がある。本実施の形態では、後述するFAQ候補抽出システムにおいて、結束性解析部50による解析結果や形態素情報31自体を利用する場合があるため、これらの必要に応じて形態素情報31を出力するようにしてもよい。なお、形態素解析部30には既存の形態素解析エンジン(例えば、MeCab(和布蕪)やChaSen(茶筌)など)を利用することができる。
【0035】
固有表現解析部40は、前処理部10による前処理後の談話データ100と、形態素解析部30から出力された形態素情報31とに基づいて、固有表現解析ルール42に基づくルールベースでの固有表現の解析を行い、解析結果として固有表現情報41を出力する機能を有する。すなわち、固有表現解析部40での解析処理は、少なくとも形態素解析部30による形態素解析が行われていることが前提となる。固有表現情報41は、談話データ100内の各ステートメントIDとこれに対応する固有表現のリストの情報を保持し、例えば、XMLなどを利用したデータ構造として表される。
【0036】
この固有表現情報41は、フロー情報21と同様に、談話構造解析システム2の出力として談話セマンティクス200に含まれるが、その後の談話セマンティクス200を利用するアプリケーション等による利用形態や、求められる談話セマンティクスの精度などによって不要な場合もあり得る。従って、固有表現情報41の出力は必須ではなく、出力の有無をユーザが選択可能としてもよい。なお、固有表現解析ルール42の内容、および固有表現解析部40での処理の詳細については後述する。
【0037】
結束性解析部50は、前処理部10による前処理後の談話データ100と、フロー解析部20から出力されたフロー情報21および形態素解析部30から出力された形態素情報31に基づいて、各ブロックの結束性の解析を行ってセグメント化し、解析結果として結束性情報51を出力する機能を有する。すなわち、固有表現解析部40での解析処理は、少なくとも形態素解析部30による形態素解析、およびフロー解析部20によるフローの解析が行われていることが前提となる。結束性情報51は、談話データ100内の各ブロックIDと対応するセグメントIDの情報を保持し、例えば、XMLなどを利用したデータ構造として表される。
【0038】
この結束性情報51は、固有表現情報41と同様に、談話構造解析システム2の出力として談話セマンティクス200に含まれるが、その後の談話セマンティクス200を利用するアプリケーション等による利用形態や、求められる談話セマンティクスの精度などによっては不要な場合もあり得る。従って、結束性情報51の出力は必須ではなく、出力の有無をユーザが選択可能としてもよい。本実施の形態では、後述するFAQ候補抽出システムにおいて結束性情報51を利用する場合があり、その状況に応じて結束性情報51を出力するようにしてもよい。なお、結束性解析部50での処理の詳細については後述する。
【0039】
談話構造解析システム2による解析結果として出力される談話セマンティクス200は、上述したように、フロー情報21や、形態素情報31、固有表現情報41、結束性情報51を含んで構成される。このとき、単にこれらのデータの集合を談話セマンティクス200として取り扱ってもよいし、例えば、これらのデータをXMLを利用した1つのデータ構造に結合してもよい。
【0040】
[システム構成(FAQ候補抽出システム)]
図1は、本発明の一実施の形態であるFAQ候補抽出システムの構成例の概要について示したブロック図である。FAQ候補抽出システム1は、談話構造解析システム2と同様に、サーバやPC等のコンピュータシステムによって構成され、例えば、ソフトウェアプログラムによって実装されるQ&A対抽出部60、クラスタリング部70およびスコアリング部80の各部と、キーワード辞書72のテーブルを有し、談話の内容がテキスト化された談話データ101と、談話データ101についての談話構造の解析結果である談話セマンティクス200の全部または一部(特にフロー情報21、結束性情報51、および形態素情報31)とを入力として、談話データ101からQ&A対を抽出してFAQ候補300として出力するシステムである。
【0041】
なお、談話データ101は、上述した談話構造解析システム2の前処理部10によって前処理されたものと同等のもの、すなわち、例えば、話者毎に連続したステートメントがブロックとしてまとめられ、各ブロックおよび各ステートメントに順序を示すシーケンス番号(ID)が割り振られ、各ブロックの話者のデータが設定されている状態のものである。また、談話セマンティクス200は、例えば、上述した談話構造解析システム2等によって、談話データ101について談話構造(特にフロー、結束性、および形態素)の解析が行われた結果として出力されたものである。
【0042】
なお、本実施の形態では、談話構造解析システム2によって出力された談話構造の解析結果をFAQ候補抽出システム1に入力する構成としているが、例えば、これらのシステムを1つのコンピュータシステム上に構成し、談話構造の解析処理からFAQ候補300の抽出までの処理を連続的に実行するようにしてもよい。
【0043】
FAQ候補抽出システム1のQ&A対抽出部60は、談話データ101と、談話セマンティクス200のフロー情報21および結束性情報51とに基づいて、談話データ101内のQ&A対の抽出を行い、Q&A対情報61を出力する機能を有する。Q&A対情報61は、質問のステートメントもしくはステートメントIDと、これに対する回答のステートメントもしくはステートメントIDのリストの情報を保持する。Q&A対抽出部60での処理の詳細については後述する。
【0044】
クラスタリング部70は、Q&A対情報61内の各Q&A対について、談話セマンティクス200の形態素情報31に基づいて、キーワード辞書72に含まれる単語(キーワード)によって単語ベクトルを生成して各Q&A対の間の類似度を算出し、算出した類似度に基づいて各Q&A対をグループ化してクラスタリングを行う機能を有する。
【0045】
また、スコアリング部80は、クラスタリング部70によってクラスタリングされた各クラスタについてスコアリングを行い、スコアリング結果に基づいて、例えば上位の所定の数のクラスタ(Q&A対)を抽出して、FAQ候補300として出力する機能を有する。クラスタリング部70およびスコアリング部80での処理の詳細については後述する。
【0046】
[フロー解析]
以下では、図2に示した談話構造解析システム2のフロー解析部20によるフロー解析の処理の詳細について説明する。図4は、談話データ100におけるフローとコンテキストの例について示した図である。本実施の形態では、コンテキストは談話の各ブロックに対して設定される。図4の例では、最初のブロック(話者:オペレータ)のコンテキストは“開始”であり、次のブロック(話者:顧客)およびその次のブロック(話者:オペレータ)はともに“陳述”となっている。
【0047】
図4の例に示すように、本実施の形態では、原則として、対象のブロックのコンテキストとして、異なる話者の直前のブロックの最後のステートメントに設定されたフローを設定する。なお、談話データ100の先頭のブロックについては直前のブロックがないため、コンテキストとして常に“開始”を設定するものとする。このようにコンテキストを判断することによって、同じ文言のステートメントであっても談話のコンテキストに沿ったフローの解析が可能となる。
【0048】
図5は、談話構造解析システム2のフロー解析ルール22の例について示した図である。フロー解析ルール22は、ファイルやデータベース等に保持されており、ステートメント中におけるフローを判断するための表現(以下では「フロー表現」と記載する場合がある)と、当該フロー表現とマッチする表現を有するステートメントに対してそのコンテキストに応じて設定するフローのパターン(以下では「フロー定義」と記載する場合がある)との対応について予め指定したリストを保持するテーブルである。
【0049】
図5の例に示すように、フロー表現は、フローを判断するための手掛かりとなる文字列の正規表現(例えば、“/はい。/”や“/ですか。/”)によって指定する。従って、フロー解析部20もしくは談話構造解析システム2は、例えば、既存の正規表現ライブラリなどを導入することにより正規表現に必要な処理を行うことができるようにしておく必要がある。
【0050】
なお、フロー表現として指定する文字列は、例えば、話し言葉において談話の流れ上特徴的となる文頭の挨拶、返事や、助詞、接続詞、文末表現などを指定するのが望ましく、これらを適用の優先度が高い順に指定する。優先度については、例えば、所定の条件により正規表現の複雑度を計算し、複雑度の降順で優先度を設定するようにしてもよい。なお、指定するフロー表現のパターンは、談話構造解析システム2が対象とする談話の種類(例えば、コールセンターでのやり取りや、企業における定例会議など)に応じて異なる場合がある。
【0051】
各フロー表現に対しては、例えば“flow”のラベルによって、フロー定義を指定する。フロー定義では、対象のステートメントのコンテキストと、当該ステートメントに設定するフロー(例えば、“/はい。/”のフロー表現とマッチするステートメントにおいて、コンテキストが“開始”の場合はフローとして“挨拶”を設定する)を指定する。“flow”のラベルによるフロー定義は、各フロー表現において想定されるコンテキストの種類に応じて複数指定することができる。
【0052】
また、例えば“default”のラベルによって、対象のステートメントのコンテキストがいずれの“flow”のラベルにも該当しなかった場合に設定するフローであるデフォルトフロー(例えば、“/はい。/”のフロー表現とマッチするステートメントにおいて、当該ステートメントのコンテキストがいずれの“flow”のラベルにもマッチしない場合はフローとして“相槌”を設定する)を指定する。なお、デフォルトフローは、各フロー表現において必ず1つ設定するものとする。
【0053】
フロー定義の指定は、談話構造解析システム2が対象とする談話の種類に応じて、一般的な談話の流れのパターンとして主要なものを指定するのが望ましい。例えば、コールセンターでのやり取りにおいては、顧客が“苦情”を発した場合はオペレータは“謝罪”する、などのパターンに基づいて、フロー定義を指定することができる。
【0054】
フロー解析ルール22では、上述のように、指定するフロー表現や対応するフロー定義の内容が談話構造解析システム2が対象とする談話の種類に応じて異なる場合があるため、談話の種類に応じて適用するフロー解析ルール22を複数保持して、ユーザが切り換えられるようにするなど、談話の特性に応じて柔軟に対応することも可能である。
【0055】
なお、上述のように、本実施の形態では、フロー解析ルール22において品詞の指定は行っていない。すなわち、フロー解析部20においては品詞の判断を行わないため、フロー解析部20での解析処理に際して、事前に形態素解析部30による形態素解析を行う必要はない。なお、より精度を上げるために形態素情報31を利用して、例えば、フロー解析ルール22のフロー表現における正規表現を、後述するように形態素情報31の形態素列(品詞の情報も含む)に対して適用するようにして、より詳細な条件でマッチングを行うようすることも可能である。
【0056】
図6は、談話構造解析システム2のフロー解析部20におけるフロー解析処理の流れの例を示したフローチャートである。フロー解析部20は、フロー解析処理を開始すると、まず、前処理部10による前処理後の談話データ100の各ステートメントについて処理を繰り返すループ処理を開始する(S101)。各ステートメントについてのループ処理を開始すると、フロー解析ルール22の各フロー表現について処理を繰り返すループ処理を開始する(S102)。
【0057】
各フロー表現についてのループ処理を開始すると、対象のステートメントと対象のフロー表現とがマッチするか否かを判定する(S103)。マッチしない場合は次のフロー表現の処理に移る(S108、S102)。一方、マッチする場合は、まず、対象のステートメントについて、当該ステートメントが属するブロックの直前のブロックにおける最終ステートメントに設定されているフローをコンテキストとして設定する(S104)。このとき、図4で示したように、当該ステートメントが属するブロックが談話データ100の最初のブロックである場合には、コンテキストに“開始”を設定する。
【0058】
次に、ステップS104で設定したコンテキストについて、対象のフロー表現におけるフロー定義の”flow”ラベルで指定されたコンテキストとマッチするものがあるか否かを判定する(S105)。マッチするものがある場合には、マッチするフロー定義におけるコンテキストに対応するフローを、対象のステートメントのフローとして設定する(S106)。一方、マッチするものがない場合は、デフォルトフローを対象のステートメントのフローとして設定する(S107)。その後、各フロー表現についてのループ処理を抜ける。
【0059】
各フロー表現についてのループ処理が終了すると、対象のステートメントにフローが設定されているか否かを判定する(S109)。フローが設定されている場合は何も行わず、また、フローが設定されていない場合は、対象のステートメントに“陳述”のフローを設定して(S110)、次のステートメントの処理に移る(S111、S101)。
【0060】
ここで、“陳述”のフローは、対象のステートメントについて、フロー解析ルール22に指定されたフロー表現にマッチする文言を含まない場合に設定されるものである。すなわち、談話の枠組みの中における所定のパターンや定型的なパターン等に該当するステートメント(フロー表現を含むステートメント)ではなく、一般的に談話に固有の事項について具体的な内容を述べているステートメントであると考えられる。
【0061】
各ステートメントについてのループ処理が全て終了した場合は、各ステートメントのIDとこれに対応するフローの情報をフロー情報21として出力してフロー解析処理を終了する。
【0062】
このように、話し言葉を考慮したフロー表現によって各ステートメントとマッチングし、マッチしたステートメントのコンテキストに応じて適切なフローを設定することで、談話データ100の全体について話し言葉やノイズに影響されにくいフロー解析を行うことができる。
【0063】
[固有表現解析]
以下では、図2に示した談話構造解析システム2の固有表現解析部40による固有表現解析の処理の詳細について説明する。図7は、談話構造解析システム2の固有表現解析ルール42の例について示した図である。固有表現解析ルール42は、ファイルやデータベース等に保持されており、ステートメント中の固有表現を特定するための正規表現と、当該正規表現とマッチする部分から固有表現を特定して抽出するための規則(以下では「固有表現規則」と記載する場合がある)との対応について予め指定したリストを保持するテーブルである。
【0064】
図7の例に示すように、ステートメント中の固有表現は正規表現によって特定する。従って、固有表現解析部40もしくは談話構造解析システム2は、例えば、既存の正規表現ライブラリなどを導入することにより正規表現に必要な処理を行うことができるようにしておく必要がある。なお、固有表現解析においては、通常の文字列に対する正規表現だけではなく、形態素情報31に保持された各ステートメントの形態素列の表現についても判断する必要があるため、正規表現の処理機能を形態素列の情報を判断することができるよう拡張しておく。
【0065】
例えば、図7の例では、各正規表現中で形態素列の範囲を“( )”で指定しており、この部分については文字列ではなく形態素列の情報とマッチングするようにする。1つ目の正規表現の例では、“(<f:組織>+)”の部分は、品詞(f)が“組織”であると解析された1つ以上の形態素列を示しており、“(?:の)?”の部分は、表層形が“の”であると解析された0以上1つ以下の品詞を示している。また、“(<f:人名,姓>)”の部分は、品詞が“人名,姓”であると解析された1つの形態素列を示している。この正規表現は、例えば、“AAA商事の鈴木”や、“AAA商事鈴木”などの表現とマッチする。なお、形態素列の表現については、形態素解析部30における形態素解析エンジン等の出力仕様によって異なる場合がある。
【0066】
このとき、対応する固有表現規則において、当該形態素列における1番目の要素(品詞が“組織”の形態素列、例えば“AAA商事”)を“企業名”という属性を有する固有表現として特定し、形態素列における2番目の要素(品詞が“人名,姓”の形態素列、例えば“鈴木”)を“人名”という属性を有する固有表現として特定するよう指定している。なお、“(?: )”で囲われた部分(例えば、“の”)については対象の形態素列の要素に含まれないものとして取り扱う。
【0067】
図7の2つ目の正規表現の例では、品詞は特に考慮せずに通常の正規表現によって指定しており、“03−1234−5678”などの電話番号の表現にマッチする。このとき、対応する固有表現規則において、当該形態素列における1番目の要素(この例で要素は“03−1234−5678”等の1つしかない)を“電話番号”という属性を有する固有表現として特定するよう指定している。
【0068】
なお、正規表現によって特定される固有表現の文字列は、例えば、談話の内容を個別に特徴付ける固有名詞や、数値等からなる文字列などを指定するのが望ましい。また、例えば、話者(顧客等)の感情を示す表現(例えば、苦情の表現や感謝の表現など)からなる文字列を指定して、対応する感情の属性を有する固有表現として特定するようにしてもよい。なお、解析結果として、ある文字列が複数の固有表現に含まれるという場合もあり得る。
【0069】
固有表現解析ルール42には、上述のように、固有表現を特定するための正規表現と固有表現規則との対応のリストを予め指定しておくが、フロー解析ルール22と同様に、指定する正規表現や対応する固有表現規則については、談話構造解析システム2が対象とする談話の種類に応じて異なるものを設定したり、談話の種類に応じて適用する固有表現解析ルール42をユーザが切り換えたりなど、談話の特性に応じて柔軟に対応することが可能である。
【0070】
図8は、談話構造解析システム2の固有表現解析部40における固有表現解析処理の流れの例を示したフローチャートである。固有表現解析部40は、固有表現解析処理を開始すると、まず、談話データ100の各ステートメントについて処理を繰り返すループ処理を開始する(S201)。各ステートメントについてのループ処理を開始すると、固有表現解析ルール42の固有表現を特定するための各正規表現について処理を繰り返すループ処理を開始する(S202)。
【0071】
各正規表現についてのループ処理を開始すると、対象のステートメントに対応する形態素情報31内の各形態素列と、対象の正規表現とがマッチするか否かを判定する(S203)。マッチしない場合は次の正規表現の処理に移る(S205、S202)。一方、マッチする場合は、対象の正規表現に対応する固有表現規則を適用して固有表現を特定して抽出し(S204)、次の正規表現の処理に移る(S205、S202)。
【0072】
各正規表現についてのループ処理が全て終了した場合は、次のステートメントの処理に移る(S206、S201)。各ステートメントについてのループ処理が全て終了した場合は、各ステートメントのIDとこれに対応する固有表現のリストの情報を固有表現情報41として出力して固有表現解析処理を終了する。
【0073】
このように、形態素列の品詞を考慮した正規表現によるマッチングと形態素列の抽出を行うことで、例えば助詞の省略などの話し言葉特有の文法を考慮した固有表現解析を行うことができる。
【0074】
[結束性解析]
以下では、図2に示した談話構造解析システム2の結束性解析部50による結束性解析の処理の詳細について説明する。図9は、談話構造解析システム2での結束性解析の例について示した図である。結束性解析処理では、まず、上段の図に示すように、談話データ100における全てのブロックを1つのセグメントとして設定する。
【0075】
その後、まず、セグメントの分割処理を行う。分割処理では、各ステートメントについてフロー情報21において特定の種別のフローが設定されているものを判別し、当該ステートメントが属するブロックにおいてセグメントを分割する。ここで、判別するフローの種別は、談話の切れ目や内容が切り替わる際に出現すると推測されるフローであることが望ましい。
【0076】
例えば、コールセンターにおけるやり取りを始めとする複数人の談話の場合は、質問とそれに対する回答等の応答によって談話が進む場合が多いため、フローが“質問”のステートメントにおいて内容が切り替わることが多いと考えられる。従って、本実施の形態では、フロー情報21に基づいてフローが“質問”のステートメント(以下では“質問ステートメント”と記載する場合がある)を判別し、図9の中段の図に示すように、質問ステートメントが出現するたびにセグメントを分割するものとする。
【0077】
ここで、質問ステートメントは、談話構造解析システム1のフロー解析部20において、相手の話者に対する質問文を示すフロー表現を有するものとして特定されたステートメントである。質問ステートメントを特定するフロー表現としては、例えば、“/ですか。/”などの疑問文の文末表現や、“/知りたい/”などの動作を表す表現などが考えられる。
【0078】
セグメントを分割した後、セグメントの統合処理を行う。統合処理では、各セグメントについて予め定められた統合条件に該当する質問ステートメントを有する場合に、当該質問ステートメントを有するセグメントを直前のセグメントと統合する。ここで、統合条件は、当該質問ステートメントを有するセグメントについて以前のセグメントから内容が継続している(以前のセグメントと結束性が高い)と推測させる表現の指定である。
【0079】
統合条件としては、例えば、当該質問ステートメントについて、直前の質問ステートメントと共通する単語(固有名詞)がある場合や、指示詞を含む場合などが挙げられる。これらの統合条件に該当する質問ステートメントを有するセグメントは以前のセグメントと結束性が高いと判断し、図9の下段の図に示すように、直前のセグメントと統合する。なお、統合処理については、統合可能なセグメントがなくなるまで繰り返すものとする。
【0080】
図10は、談話構造解析システム2の結束性解析部50における結束性解析処理の流れの例を示したフローチャートである。結束性解析部50は、結束性解析処理を開始すると、まず、談話データ100の全てのブロックを1つのセグメントに設定する(S301)。具体的には、例えば、全てのブロックにセグメントIDの初期値を割り当てるなどによって設定する。その後、セグメントの分割処理として、談話データ100の各ブロックについて処理を繰り返すループ処理を開始する(S302)。
【0081】
各ブロックについてのループ処理を開始すると、対象のブロックに質問ステートメントが含まれているか否か(フローが“質問”のステートメントがあるか否か)を判定する(S303)。質問ステートメントが含まれている場合は、対象のブロックと直前のブロックとの間でセグメントを分割する(S304)。具体的には、例えば、対象のブロック以降の全てのブロックに次のセグメントIDを割り当てるなどによって分割する。その後、次のブロックの処理に移る(S305、S302)。
【0082】
各ブロックについてのループ処理(分割処理)が終了した場合は、次に、セグメントの結合処理として、上記の分割処理で分割した各セグメントについて処理を繰り返すループ処理を開始する(S306)。各セグメントについてのループ処理を開始すると、対象のセグメントに上記の統合条件に該当する質問ステートメントがあるか否かを判定する(S307)。
【0083】
統合条件に該当する質問ステートメントがある場合は、対象のセグメントと直前のセグメントとを統合する(S308)。具体的には、例えば、対象のセグメントに含まれる各ブロックのセグメントIDを直前のセグメントのセグメントIDに更新するなどによって統合する。このとき、以降の各セグメントに含まれる各ブロックのセグメントIDを順次繰り上げてもよい。その後、次のセグメントの処理に移る(S309、S306)。各セグメントについてのループ処理(統合処理)が終了した場合は、各ブロックのIDと対応する(各ブロックが含まれる)セグメントのIDのリストの情報を結束性情報51として出力して、結束性解析処理を終了する。
【0084】
これにより、フロー解析によって得られたフロー情報21に基づいて談話データ100内の各ステートメントをセグメント化し、談話セマンティクス200を利用する種々のアプリケーションに対する有用な情報とすることができる。
【0085】
なお、上述のフロー解析、固有表現解析、結束性解析の各処理によって出力された談話セマンティクス200に含まれるフロー情報21、固有表現情報41、結束性情報51については、談話構造解析システム2において、ユーザが内容を参照して適宜修正することが可能なインタフェースを設けてもよい。
【0086】
[Q&A対抽出]
以下では、図1に示したFAQ候補抽出システム1のQ&A対抽出部60によるQ&A対抽出の処理の詳細について説明する。図11は、FAQ候補抽出システム1でのQ&A対抽出の例について示した図である。図11は、談話データ101についての談話構造解析の結果の例を示しており、談話データ101の各ステートメントに対して、談話セマンティクス200におけるフロー情報21の内容(各ステートメントのフロー)を示している。
【0087】
本実施の形態のFAQ候補抽出システム1では、図11の例に示すような談話構造の解析結果から質問ステートメントを特定してこれを“質問”として同定し、さらに、当該質問ステートメントの後に最初に現れる、フローが“陳述”のステートメント(以下では“陳述ステートメント”と記載する場合がある)であり、かつ話者が異なるステートメントを特定してこれを“回答”として同定し、“質問”と“回答”のステートメントの対をQ&A対とする。
【0088】
ここで、陳述ステートメントは、図6における談話構造解析システム2のフロー解析部20の処理にて説明したように、当該ステートメントについて、フロー解析ルール22に指定されたフロー表現にマッチする文言を含まない場合に“陳述”のフローが設定されたものである。すなわち、談話の枠組みの中における所定のパターンや定型的なパターン等に該当するステートメントではなく、一般的に談話に固有の事項について具体的な内容を述べているステートメントであると考えられる。従って、このような陳述ステートメントが“質問”のコンテキストにおいて発せられた場合は、これを当該“質問”に対する“回答”であると判断することができる。
【0089】
図12は、FAQ候補抽出システム1のQ&A対抽出部60におけるQ&A対抽出処理の流れの例を示したフローチャートである。Q&A対抽出部60は、Q&A対抽出処理を開始すると、まず、談話データ101の各ステートメントについて処理を繰り返すループ処理を開始する(S401)。各ステートメントについてのループ処理を開始すると、談話セマンティクス200のフロー情報21に基づいて、対象のステートメントが質問ステートメントであるか否かを判定する(S402)。質問ステートメントではない場合は、次のステートメントの処理に移る(S407、S401)。
【0090】
ステップS402において対象のステートメントが質問ステートメントである場合は、当該質問ステートメント以降の各ステートメントについて処理を繰り返すループ処理を開始する(S403)。質問ステートメント以降の各ステートメントについてのループ処理を開始すると、フロー情報21に基づいて、対象のステートメントが質問ステートメントと話者が異なる陳述ステートメントであるか否かを判定する(S404)。該当する陳述ステートメントではない場合は、次のステートメントの処理に移る(S406、S403)。
【0091】
ステップS404において対象のステートメントが該当する陳述ステートメントである場合は、当該質問ステートメントと当該陳述ステートメントとをQ&A対として抽出し(S405)、当該質問ステートメント以降の各ステートメントについてのループ処理を抜けて、当該質問ステートメントの次のステートメントの処理に移る(S407、S401)。当該質問ステートメント以降の各ステートメントについてのループ処理が終了した場合も、当該質問ステートメントの次のステートメントの処理に移る(S407、S401)。各ステートメントについてのループ処理が終了した場合は、ステップS405で抽出したQ&A対のリストをQ&A対情報61として出力して、Q&A対抽出処理を終了する。
【0092】
図12の例では、談話データ101全体の各ステートメントを対象として処理を行っているが、談話セマンティクス200の結束性情報51に基づいて、談話データ101のセグメント単位で所定のセグメント内の各ステートメントを対象として処理を行うことで、例えば、“回答”を同定する際の対象となるステートメントの範囲を絞るようにしてもよい。また、このとき、質問ステートメントが属するセグメントとは異なるセグメントを対象として“回答”のステートメントを同定するようにしてもよい。
【0093】
このように、談話データ101の各ステートメントに設定されたフローの情報に基づいてQ&A対を同定して抽出することで、談話データ101を決められた文章構造の枠組みやスキーマに当てはめるという処理を要さずに、多様な談話の流れを有する談話データ101からQ&A対を抽出することができる。
【0094】
[クラスタリング〜スコアリング]
以下では、図1に示したFAQ候補抽出システム1のクラスタリング部70およびスコアリング部80によるQ&A対情報61内のQ&A対のクラスタリングおよびスコアリングの処理の詳細について説明する。本実施の形態では、Q&A対情報61内の各Q&A対について、まず、クラスタリング部70が、予め設定したキーワードに基づいて単語ベクトルを算出し、算出した単語ベクトルに基づいて各Q&A対を類似するものにグループ化してクラスタリングする。さらに、スコアリング部80が、各クラスタ(もしくはクラスタの代表となるQ&A対)を所定の基準によりスコアリングして、スコアリング結果に基づいて、例えば上位の所定の数のQ&A対をFAQ候補300として出力する。
【0095】
クラスタリング部70では、上記の単語ベクトルを算出する際に、Q&A情報61内の各Q&A対について、それぞれ、キーワード辞書72に予め設定されたキーワード毎に当該キーワードとの関連度を示す指標を算出し、算出した各指標を要素とする単語ベクトルを算出する。すなわち、キーワード辞書72に設定されたキーワードの個数がn個の場合、n次元の単語ベクトルを算出する。なお、キーワード辞書72としては、例えば、FAQ候補抽出システム1を利用する企業における商品マスター等から生成した商品辞書などを用いることができる。
【0096】
ここで、各Q&A対についての各キーワードとの関連度を示す指標としては、数値としての評価が可能なものであれば種々のものを用いることができる。本実施の形態では、例えば、一般的に用いられている指標である、文章(Q&A対)における対象の単語(キーワード)の出現頻度であるTF(Term Frequency)値と、全ての文章(Q&A対)の中で対象の単語(キーワード)が出現する文章(Q&A対)の数の逆数であるIDF(Inverse Document Frequency)値との積であるTF−IDF値を用いる。これにより、TF−IDF値が大きいキーワードは、Q&A対における重要度が高い単語であると判断することができる。
【0097】
クラスタリング部70は、さらに、各Q&A対について算出した単語ベクトルに基づいて類似するものにグループ化してクラスタリングする際に、例えば、一般的に行われている手法である、ベクトル空間における各単語ベクトルの代数的な距離(もしくは単語ベクトル間のなす角)によって類似の程度を判断し、所定の距離より近いもの(もしくは所定の角よりなす角が小さいもの)を類似するものとしてクラスタリングする手法を用いる。クラスタリングする際の基準についても上記の単語ベクトル間の距離等に限らず他の基準を利用してもよい。また、例えば、談話データ101におけるQ&A対同士の時間的な離散度を考慮して、各Q&A対の質問ステートメントのIDの差分が小さいもの(時間的に近い質問ステートメント)の類似の程度を高くするなどの重み付けを行ってもよい。
【0098】
上記の手法によってクラスタリングされた各Q&A対について、図1に示したFAQ候補抽出システム1のスコアリング部80によるスコアリング処理によって各クラスタをスコアリングし、スコアリング結果に基づいて、例えば上位の所定の数のクラスタ(もしくはクラスタの代表となるQ&A対)をFAQ候補300として出力する。
【0099】
スコアリングの際には、例えば、クラスタ内の各Q&A対の単語ベクトルの代数的な大きさや、キーワード辞書72内の各キーワードの含有数、クラスタの大きさ(Q&A対の含有数)など、種々の基準に基づいてスコアを算出することができる。また、各クラスタの代表となるQ&A対についても、例えば、クラスタ内で単語ベクトルの大きさが最大のQ&A対を選択するなどの手法により決定することができる。なお、FAQ候補300の形式等については特に限定されず、XMLなどを利用したデータ構造や単純なテキスト形式など種々の形式とすることができる。
【0100】
このように、Q&A対抽出部60から出力されたQ&A対情報61に含まれる各Q&A対について、クラスタリングおよびスコアリングの処理を行うことによって、FAQ候補300となるQ&A対を絞り込んで出力するようにしてもよい。
【0101】
以上に説明したように、本実施の形態のFAQ候補抽出システム1によれば、談話構造の解析結果である、談話データ101の各ステートメントについてのフロー情報21を利用することにより、談話の文章構造の枠組みを規定せずに、談話データ101からQ&A対を抽出することができる。また、抽出したQ&A対からキーワードの出現頻度に基づいて類似度を算出してクラスタリングし、各クラスタをスコアリングすることにより、Q&A対から効果的にFAQ候補300を抽出して出力することができる。
【0102】
また、Q&A対の抽出に際して、談話データ101の内容および談話構造の解析結果から必要な部分のみを参照してQ&A対を抽出するため、他の部分にノイズやノイズによる誤った解析結果が含まれている場合でも、これらからの影響を極小化してQ&A対を抽出することができる。
【0103】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【0104】
本発明は、音声認識処理により得られた談話データの構造を解析した結果からFAQの候補を抽出するFAQ候補抽出システムおよびFAQ候補抽出プログラムに利用可能である。
【符号の説明】
【0105】
1…FAQ候補抽出システム、2…談話構造解析システム、3…音声認識エンジン、
10…前処理部、
20…フロー解析部、21…フロー情報、22…フロー解析ルール、
30…形態素解析部、31…形態素情報
40…固有表現解析部、41…固有表現情報、42…固有表現解析ルール、
50…結束性解析部、51…結束性情報、
60…Q&A対抽出部、61…Q&A対情報、
70…クラスタリング部、72…キーワード辞書、
80…スコアリング部、
100、101…談話データ、200…談話セマンティクス、300…FAQ候補。
【技術分野】
【0001】
本発明は、自然言語処理の技術に関し、特に、音声認識処理により得られた談話データの構造を解析した結果からFAQ(Frequently Asked Questions)の候補を抽出するFAQ候補抽出システムおよびFAQ候補抽出プログラムに適用して有効な技術に関するものである。
【背景技術】
【0002】
例えば、コールセンター業務において、オペレータやコミュニケータは、電話応対後に応対記録を作成して応対管理システム等へ保存するという一連の業務を行う必要がある。このとき、オペレータ等は、自身の記憶を頼りにして応対記録を作成するため作成に時間がかかるという問題がある。
【0003】
また、各オペレータ等のスキルに応じて品質(内容、統一性、網羅性、簡潔性等)にバラツキが生じる。このように応対記録の品質にバラツキがあったり品質が低かったりすることにより、顧客の声を正確に把握することができなかったり、応対記録の蓄積からテキストマイニング等の技術を利用して新たな知見を得るというようなことができなかったりなどの問題も生じる。
【0004】
このような問題を解決するため、音声認識の技術を活用した解決策が検討されている。音声認識の技術によって応対の音声情報をテキスト化して保存することにより、応対記録の網羅性を確保することができる。また、テキスト化したデータに対して自然言語処理の技術を適用して内容を要約することで応対記録を自動作成することも可能であり、応対記録作成にかかるコストを削減して、統一性、簡潔性を確保することで応対記録の活用性を向上させることも可能と考えられる。
【0005】
このような技術として、例えば、非特許文献1には、コールセンターにおける音声対話において、音声データをテキスト化し、過去の対話内容とその営業日報から帰納的学習により再帰的に規則獲得を行い、それらの規則を用いて未知の対話内容に対して重要箇所を決定・抽出し、文体変換を行うことで営業日報を自動生成する技術が記載されている。
【0006】
一方で、テキスト化した音声データの蓄積からテキストマイニング等による分析などにより新たな知見を得る技術としては、音声データの対話の種類により種々のものが想定されるが、例えば、上述したコールセンターにおける電話応対の内容からは、よく行われる質問とそれに対する回答からなる質問−回答対(以下では「Q&A対」と記載する場合がある)を抽出して、FAQ(Frequently Asked Questions)を自動生成するという技術が想定される。
【0007】
従来では、テキスト化された音声対話等の文章データから、統計的な処理によってよく行われる質問を抽出するということは行われていたが、これに対する回答を合わせて統計的に抽出するということは困難であり、回答については別途作成してQ&A対を作成することが一般的に行われていた。
【0008】
これに対して、例えば、非特許文献2には、近年増えてきたクローズドキャプション付きのテレビ番組を対象として、テレビ番組内のクローズドキャプションの中から、CRF(Conditional Random Fields)を用いて質問文を同定し、これに対応する解答文の中心を推定し、さらにCRFを用いて解答文の導入・補足となる情報も合わせて同定することにより、質問−解答対を抽出する技術が記載されている。
【先行技術文献】
【非特許文献】
【0009】
【非特許文献1】矢野純司、荒木健治、“コールセンターにおける音声対話を対象とした帰納的学習を用いた営業日報生成手法の性能評価”、情報処理学会研究報告 2007−NL−178、2007年3月28日、p.21−28
【非特許文献2】河野将弘、他6名、“CRFを用いたテレビ番組クローズドキャプションからの質問−解答対自動抽出”、言語処理学会第14回年次大会 発表論文集、2008年3月20日、p.915−918
【発明の概要】
【発明が解決しようとする課題】
【0010】
人の談話を音声認識によりテキスト化したデータ(以下では「談話データ」と記載する場合がある)を活用する場合、談話データ内の文章は通常は話し言葉で記録されているため、正しい文法に則った日本語文や、書き言葉を前提とした既存の自然言語処理の技術ではうまく対応できない場合がある。また、現状の音声認識エンジンの精度では認識ミスを排除することはできず、誤認識による誤字・脱字などのノイズが多い。従って、談話データについて自然言語処理を利用して解析し、有効活用するのは困難である。
【0011】
一方、テキスト化した音声データの蓄積から、例えば、FAQの候補となるようなQ&A対などの新たな知見を得る技術として、上述の非特許文献2の技術では、テレビ番組のクローズドキャプションからQ&A対を抽出することができるが、ここでは、対象のクローズドキャプションの内容はスキーマにアノテーションされる、すなわち、あらかじめ規定された文章構造の枠組みに当てはめられ、これに基づいて質問と回答の抽出を行うものである。
【0012】
しかしながら、例えば、コールセンターにおける電話応対をテキスト化したデータなど、決められた文章構造の枠組みやスキーマに当てはめることができない、もしくは困難であるような談話データからQ&A対を抽出することは、非特許文献2の技術では困難であり、また、そのような技術は従来存在しなかった。
【0013】
そこで本発明の目的は、話し言葉やノイズといった談話データの特性に強く、談話の文章構造の枠組みを規定せずに、談話データの構造を解析した結果からFAQの候補となるQ&A対を抽出するFAQ候補抽出システムおよびFAQ候補抽出プログラムを提供することにある。
【0014】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0015】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【0016】
本発明の代表的な実施の形態によるFAQ候補抽出システムは、FAQ候補抽出プログラムによって機能し、音声認識処理によって談話の内容がテキスト化された談話データ、および前記談話データにおける前記談話の構造の解析結果である、前記談話全体の意味内容を把握するための情報である談話セマンティクスを入力とし、前記談話データからFAQ候補となる質問−回答対を抽出して出力するFAQ候補抽出システムであって、以下の特徴を有するものである。
【0017】
すなわち、FAQ候補抽出システムにおいて、前記談話セマンティクスは、前記談話データにおける各ステートメントの意味内容を示すフローの情報を含むフロー情報を含み、FAQ候補抽出システムは、前記談話セマンティクスにおいて、前記ステートメントが相手の話者に対する質問文であることを示す前記フローが設定された第1のステートメントを同定し、さらに、前記談話データにおいて前記第1のステートメントの後に最初に現れ、かつ前記第1のステートメントと話者が異なり、前記ステートメントが前記談話に固有の事項について具体的な内容を述べているものであることを示す前記フローが設定された第2のステートメントを同定し、前記第1のステートメントと前記第2のステートメントとを前記質問−回答対として抽出する質問−回答対抽出部を有することを特徴とするものである。
【発明の効果】
【0018】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【0019】
本発明の代表的な実施の形態によれば、談話構造の解析結果である、談話データの各ステートメントについてのフローの情報を利用することにより、談話の文章構造の枠組みを規定せずに、談話データからQ&A対を抽出することができる。また、談話データの内容および談話構造の解析結果から必要な部分のみを参照してQ&A対を抽出するため、他の部分にノイズやノイズによる誤った解析結果が含まれている場合でも、これらからの影響を極小化してQ&A対を抽出することができる。
【図面の簡単な説明】
【0020】
【図1】本発明の一実施の形態であるFAQ候補抽出システムの構成例の概要について示したブロック図である。
【図2】本発明の一実施の形態における談話構造解析システムの構成例の概要について示したブロック図である。
【図3】本発明の一実施の形態における談話の例および談話セマンティクスの概念について示した図である。
【図4】本発明の一実施の形態における談話データにおけるフローとコンテキストの例について示した図である。
【図5】本発明の一実施の形態における談話構造解析システムのフロー解析ルールの例について示した図である。
【図6】本発明の一実施の形態における談話構造解析システムのフロー解析部におけるフロー解析処理の流れの例を示したフローチャートである。
【図7】本発明の一実施の形態における談話構造解析システムの固有表現解析ルールの例について示した図である。
【図8】本発明の一実施の形態における談話構造解析システムの固有表現解析部における固有表現解析処理の流れの例を示したフローチャートである。
【図9】本発明の一実施の形態における談話構造解析システムでの結束性解析の例について示した図である。
【図10】本発明の一実施の形態における談話構造解析システムの結束性解析部における結束性解析処理の流れの例を示したフローチャートである。
【図11】本発明の一実施の形態におけるFAQ候補抽出システムでのQ&A対抽出の例について示した図である。
【図12】本発明の一実施の形態におけるFAQ候補抽出システムのQ&A対抽出部におけるQ&A対抽出処理の流れの例を示したフローチャートである。
【発明を実施するための形態】
【0021】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0022】
本発明の一実施の形態であるFAQ候補抽出システムは、話し言葉を含む談話データについての談話構造の解析結果である談話セマンティクス(談話全体の意味内容を把握するための談話構造に係る情報)に基づいて、談話データからQ&A対を抽出する。さらに、これらに対して、予め設定したキーワードの出現頻度に基づいて類似度を算出してグループ化することによりクラスタリングし、さらにクラスタ毎にスコアリングすることによりランキングを行って、FAQ候補として出力するシステムである。
【0023】
ここで、談話セマンティクスとは、例えば、談話データにおける文字列や形態素から意味内容を推測して、談話データ全体について後述するようなフロー、さらには結束性(談話のセグメント)、固有表現などの談話構造の解析を行って得られた解析結果である。この談話セマンティクスは、例えば、後述する談話構造解析システムを用いることによって談話データから生成してもよいし、他の自然言語処理を利用した文章構造の解析システム等を利用して生成してもよい。また、人手によって談話データにタグ付け等を行って作成することも可能である。本実施の形態では、後述する談話構造解析システムを用いて生成するものとして説明する。
【0024】
本実施の形態における談話セマンティクスは、日本語の文章としての内容や構造の厳密な解析結果である必要はなく、例えば、コールセンターにおける応対記録の作成などの実用上支障のないレベルの精度のものであればよい。なお、本明細書において、「談話」とは1人以上の話者による発話行為を指し、例えば、1人で話す講演会でのスピーチ等や、上述したようなコールセンターのオペレータ等と顧客とのやり取り、複数人での電話会議やテレビ会議、その他の複数人での会話・対話が含まれる。
【0025】
図3は、本実施の形態における談話の例および談話セマンティクスの概念について示した図である。図3の例では、コールセンターのオペレータと顧客とのやり取りからなる談話の例を示している。左側の発話はオペレータの発話であり、右側は顧客の発話を示している。本実施の形態では、各話者の発話1文を「ステートメント」と呼ぶものとする。また、話者毎の連続したステートメントのまとまりを「ブロック」と呼ぶものとする(同一話者の連続したステートメントでも時間的に間隔が空いた場合は別のブロックとなる)。
【0026】
図3において、「フロー」とは、各ステートメントの意味内容を端的に示す情報である。この情報をトレースすることによって談話の流れを把握することができる。例えば、図3のオペレータのステートメントにおいて、最初の“はい。”はフローが“挨拶”になっているのに対し、次の“はい。”ではフローが“相槌”となっている。このように、談話の状況(コンテキスト)に応じて、同じ文言のステートメントであってもフローが異なるものとなる場合がある。
【0027】
また、図3において、「固有表現」とは、談話の内容を個別に特徴付ける表現であり、例えば、図3のコールセンターでのやり取りの談話では、話者のIDや人名、企業名、電話番号、所在地などの固有名詞等が該当する。また、「セグメント」とは、ブロック毎の談話の内容が共通する(結束する)ものをまとめてセグメント化したものである。上記の「フロー」、「固有表現」、「セグメント」についての情報は、談話構造の解析結果として「談話セマンティクス」の構成要素となる。
【0028】
[システム構成(談話構造解析システム)]
図2は、本発明の一実施の形態における談話構造解析システムの構成例の概要について示したブロック図である。談話構造解析システム2は、サーバやPC(Personal Computer)等のコンピュータシステムによって構成され、例えば、ソフトウェアプログラムによって実装される前処理部10、フロー解析部20、形態素解析部30、固有表現解析部40、結束性解析部50の各部と、フロー解析ルール22、および固有表現解析ルール42の各テーブルを有し、音声認識エンジン3によって談話の内容がテキスト化された談話データ100を入力として、談話構造の解析を行って談話セマンティクス200を出力する。
【0029】
なお、音声認識エンジン3には既存のものを利用することができる。本実施の形態の談話構造解析システム2は、上述したように、談話データ100のノイズ(音声認識エンジン3による認識ミス等)に強いという特徴を有するが、音声認識エンジン3の認識率が高いほうがより精度の高い談話構造の解析を行うことが可能であることはいうまでもない。
【0030】
談話構造解析システム2の前処理部10は、談話データ100の入力を受けて、必要に応じて、他の各部での処理が可能なようにデータのレイアウト変換などの前処理を行う機能を有する。ここでは、例えば、話者毎に連続したステートメントをブロックとしてまとめて、各ブロックおよび各ステートメントに順序を示すシーケンス番号(ID)を割り振ったり、各ブロックの話者のデータを抽出・設定したりなどの処理を行う。なお、談話データ100は、例えば、XML(eXtended Markup Language)などを利用したデータ構造として表される。
【0031】
フロー解析部20は、前処理部10による前処理後の談話データ100に対して、フロー解析ルール22に基づくルールベースでのフローの解析を行い、解析結果としてフロー情報21を出力する機能を有する。フロー情報21は、談話データ100内の各ステートメントのIDとこれに対応するフローの情報を保持し、例えば、XMLなどを利用したデータ構造として表される。
【0032】
このフロー情報21は、談話構造解析システム2の出力として談話セマンティクス200に含まれ、必須の構成要素となる。すなわち、談話セマンティクス200には、少なくとも談話データ100についてのフローの解析結果としてフロー情報21が含まれる。なお、フロー解析ルール22の内容、およびフロー解析部20での処理の詳細については後述する。
【0033】
形態素解析部30は、前処理部10による前処理後の談話データ100に対して、形態素(言語における意味を持つ最小の単位)の列に分割して品詞を判別するいわゆる形態素解析を行い、解析結果として形態素情報31を出力する機能を有する。形態素情報31は、談話データ100内の各ステートメントのIDとこれに対応する形態素列の情報を保持し、例えば、XMLなどを利用したデータ構造として表される。
【0034】
この形態素情報31は、フロー情報21と同様に、談話構造解析システム2の出力として談話セマンティクス200に含まれるとともに、後述する固有表現解析部40や結束性解析部50に対する入力となる。すなわち、固有表現解析部40による固有表現の解析や、結束性解析部50による結束性の解析(セグメント化)を行わない場合は、形態素解析部30による形態素解析は不要な場合がある。本実施の形態では、後述するFAQ候補抽出システムにおいて、結束性解析部50による解析結果や形態素情報31自体を利用する場合があるため、これらの必要に応じて形態素情報31を出力するようにしてもよい。なお、形態素解析部30には既存の形態素解析エンジン(例えば、MeCab(和布蕪)やChaSen(茶筌)など)を利用することができる。
【0035】
固有表現解析部40は、前処理部10による前処理後の談話データ100と、形態素解析部30から出力された形態素情報31とに基づいて、固有表現解析ルール42に基づくルールベースでの固有表現の解析を行い、解析結果として固有表現情報41を出力する機能を有する。すなわち、固有表現解析部40での解析処理は、少なくとも形態素解析部30による形態素解析が行われていることが前提となる。固有表現情報41は、談話データ100内の各ステートメントIDとこれに対応する固有表現のリストの情報を保持し、例えば、XMLなどを利用したデータ構造として表される。
【0036】
この固有表現情報41は、フロー情報21と同様に、談話構造解析システム2の出力として談話セマンティクス200に含まれるが、その後の談話セマンティクス200を利用するアプリケーション等による利用形態や、求められる談話セマンティクスの精度などによって不要な場合もあり得る。従って、固有表現情報41の出力は必須ではなく、出力の有無をユーザが選択可能としてもよい。なお、固有表現解析ルール42の内容、および固有表現解析部40での処理の詳細については後述する。
【0037】
結束性解析部50は、前処理部10による前処理後の談話データ100と、フロー解析部20から出力されたフロー情報21および形態素解析部30から出力された形態素情報31に基づいて、各ブロックの結束性の解析を行ってセグメント化し、解析結果として結束性情報51を出力する機能を有する。すなわち、固有表現解析部40での解析処理は、少なくとも形態素解析部30による形態素解析、およびフロー解析部20によるフローの解析が行われていることが前提となる。結束性情報51は、談話データ100内の各ブロックIDと対応するセグメントIDの情報を保持し、例えば、XMLなどを利用したデータ構造として表される。
【0038】
この結束性情報51は、固有表現情報41と同様に、談話構造解析システム2の出力として談話セマンティクス200に含まれるが、その後の談話セマンティクス200を利用するアプリケーション等による利用形態や、求められる談話セマンティクスの精度などによっては不要な場合もあり得る。従って、結束性情報51の出力は必須ではなく、出力の有無をユーザが選択可能としてもよい。本実施の形態では、後述するFAQ候補抽出システムにおいて結束性情報51を利用する場合があり、その状況に応じて結束性情報51を出力するようにしてもよい。なお、結束性解析部50での処理の詳細については後述する。
【0039】
談話構造解析システム2による解析結果として出力される談話セマンティクス200は、上述したように、フロー情報21や、形態素情報31、固有表現情報41、結束性情報51を含んで構成される。このとき、単にこれらのデータの集合を談話セマンティクス200として取り扱ってもよいし、例えば、これらのデータをXMLを利用した1つのデータ構造に結合してもよい。
【0040】
[システム構成(FAQ候補抽出システム)]
図1は、本発明の一実施の形態であるFAQ候補抽出システムの構成例の概要について示したブロック図である。FAQ候補抽出システム1は、談話構造解析システム2と同様に、サーバやPC等のコンピュータシステムによって構成され、例えば、ソフトウェアプログラムによって実装されるQ&A対抽出部60、クラスタリング部70およびスコアリング部80の各部と、キーワード辞書72のテーブルを有し、談話の内容がテキスト化された談話データ101と、談話データ101についての談話構造の解析結果である談話セマンティクス200の全部または一部(特にフロー情報21、結束性情報51、および形態素情報31)とを入力として、談話データ101からQ&A対を抽出してFAQ候補300として出力するシステムである。
【0041】
なお、談話データ101は、上述した談話構造解析システム2の前処理部10によって前処理されたものと同等のもの、すなわち、例えば、話者毎に連続したステートメントがブロックとしてまとめられ、各ブロックおよび各ステートメントに順序を示すシーケンス番号(ID)が割り振られ、各ブロックの話者のデータが設定されている状態のものである。また、談話セマンティクス200は、例えば、上述した談話構造解析システム2等によって、談話データ101について談話構造(特にフロー、結束性、および形態素)の解析が行われた結果として出力されたものである。
【0042】
なお、本実施の形態では、談話構造解析システム2によって出力された談話構造の解析結果をFAQ候補抽出システム1に入力する構成としているが、例えば、これらのシステムを1つのコンピュータシステム上に構成し、談話構造の解析処理からFAQ候補300の抽出までの処理を連続的に実行するようにしてもよい。
【0043】
FAQ候補抽出システム1のQ&A対抽出部60は、談話データ101と、談話セマンティクス200のフロー情報21および結束性情報51とに基づいて、談話データ101内のQ&A対の抽出を行い、Q&A対情報61を出力する機能を有する。Q&A対情報61は、質問のステートメントもしくはステートメントIDと、これに対する回答のステートメントもしくはステートメントIDのリストの情報を保持する。Q&A対抽出部60での処理の詳細については後述する。
【0044】
クラスタリング部70は、Q&A対情報61内の各Q&A対について、談話セマンティクス200の形態素情報31に基づいて、キーワード辞書72に含まれる単語(キーワード)によって単語ベクトルを生成して各Q&A対の間の類似度を算出し、算出した類似度に基づいて各Q&A対をグループ化してクラスタリングを行う機能を有する。
【0045】
また、スコアリング部80は、クラスタリング部70によってクラスタリングされた各クラスタについてスコアリングを行い、スコアリング結果に基づいて、例えば上位の所定の数のクラスタ(Q&A対)を抽出して、FAQ候補300として出力する機能を有する。クラスタリング部70およびスコアリング部80での処理の詳細については後述する。
【0046】
[フロー解析]
以下では、図2に示した談話構造解析システム2のフロー解析部20によるフロー解析の処理の詳細について説明する。図4は、談話データ100におけるフローとコンテキストの例について示した図である。本実施の形態では、コンテキストは談話の各ブロックに対して設定される。図4の例では、最初のブロック(話者:オペレータ)のコンテキストは“開始”であり、次のブロック(話者:顧客)およびその次のブロック(話者:オペレータ)はともに“陳述”となっている。
【0047】
図4の例に示すように、本実施の形態では、原則として、対象のブロックのコンテキストとして、異なる話者の直前のブロックの最後のステートメントに設定されたフローを設定する。なお、談話データ100の先頭のブロックについては直前のブロックがないため、コンテキストとして常に“開始”を設定するものとする。このようにコンテキストを判断することによって、同じ文言のステートメントであっても談話のコンテキストに沿ったフローの解析が可能となる。
【0048】
図5は、談話構造解析システム2のフロー解析ルール22の例について示した図である。フロー解析ルール22は、ファイルやデータベース等に保持されており、ステートメント中におけるフローを判断するための表現(以下では「フロー表現」と記載する場合がある)と、当該フロー表現とマッチする表現を有するステートメントに対してそのコンテキストに応じて設定するフローのパターン(以下では「フロー定義」と記載する場合がある)との対応について予め指定したリストを保持するテーブルである。
【0049】
図5の例に示すように、フロー表現は、フローを判断するための手掛かりとなる文字列の正規表現(例えば、“/はい。/”や“/ですか。/”)によって指定する。従って、フロー解析部20もしくは談話構造解析システム2は、例えば、既存の正規表現ライブラリなどを導入することにより正規表現に必要な処理を行うことができるようにしておく必要がある。
【0050】
なお、フロー表現として指定する文字列は、例えば、話し言葉において談話の流れ上特徴的となる文頭の挨拶、返事や、助詞、接続詞、文末表現などを指定するのが望ましく、これらを適用の優先度が高い順に指定する。優先度については、例えば、所定の条件により正規表現の複雑度を計算し、複雑度の降順で優先度を設定するようにしてもよい。なお、指定するフロー表現のパターンは、談話構造解析システム2が対象とする談話の種類(例えば、コールセンターでのやり取りや、企業における定例会議など)に応じて異なる場合がある。
【0051】
各フロー表現に対しては、例えば“flow”のラベルによって、フロー定義を指定する。フロー定義では、対象のステートメントのコンテキストと、当該ステートメントに設定するフロー(例えば、“/はい。/”のフロー表現とマッチするステートメントにおいて、コンテキストが“開始”の場合はフローとして“挨拶”を設定する)を指定する。“flow”のラベルによるフロー定義は、各フロー表現において想定されるコンテキストの種類に応じて複数指定することができる。
【0052】
また、例えば“default”のラベルによって、対象のステートメントのコンテキストがいずれの“flow”のラベルにも該当しなかった場合に設定するフローであるデフォルトフロー(例えば、“/はい。/”のフロー表現とマッチするステートメントにおいて、当該ステートメントのコンテキストがいずれの“flow”のラベルにもマッチしない場合はフローとして“相槌”を設定する)を指定する。なお、デフォルトフローは、各フロー表現において必ず1つ設定するものとする。
【0053】
フロー定義の指定は、談話構造解析システム2が対象とする談話の種類に応じて、一般的な談話の流れのパターンとして主要なものを指定するのが望ましい。例えば、コールセンターでのやり取りにおいては、顧客が“苦情”を発した場合はオペレータは“謝罪”する、などのパターンに基づいて、フロー定義を指定することができる。
【0054】
フロー解析ルール22では、上述のように、指定するフロー表現や対応するフロー定義の内容が談話構造解析システム2が対象とする談話の種類に応じて異なる場合があるため、談話の種類に応じて適用するフロー解析ルール22を複数保持して、ユーザが切り換えられるようにするなど、談話の特性に応じて柔軟に対応することも可能である。
【0055】
なお、上述のように、本実施の形態では、フロー解析ルール22において品詞の指定は行っていない。すなわち、フロー解析部20においては品詞の判断を行わないため、フロー解析部20での解析処理に際して、事前に形態素解析部30による形態素解析を行う必要はない。なお、より精度を上げるために形態素情報31を利用して、例えば、フロー解析ルール22のフロー表現における正規表現を、後述するように形態素情報31の形態素列(品詞の情報も含む)に対して適用するようにして、より詳細な条件でマッチングを行うようすることも可能である。
【0056】
図6は、談話構造解析システム2のフロー解析部20におけるフロー解析処理の流れの例を示したフローチャートである。フロー解析部20は、フロー解析処理を開始すると、まず、前処理部10による前処理後の談話データ100の各ステートメントについて処理を繰り返すループ処理を開始する(S101)。各ステートメントについてのループ処理を開始すると、フロー解析ルール22の各フロー表現について処理を繰り返すループ処理を開始する(S102)。
【0057】
各フロー表現についてのループ処理を開始すると、対象のステートメントと対象のフロー表現とがマッチするか否かを判定する(S103)。マッチしない場合は次のフロー表現の処理に移る(S108、S102)。一方、マッチする場合は、まず、対象のステートメントについて、当該ステートメントが属するブロックの直前のブロックにおける最終ステートメントに設定されているフローをコンテキストとして設定する(S104)。このとき、図4で示したように、当該ステートメントが属するブロックが談話データ100の最初のブロックである場合には、コンテキストに“開始”を設定する。
【0058】
次に、ステップS104で設定したコンテキストについて、対象のフロー表現におけるフロー定義の”flow”ラベルで指定されたコンテキストとマッチするものがあるか否かを判定する(S105)。マッチするものがある場合には、マッチするフロー定義におけるコンテキストに対応するフローを、対象のステートメントのフローとして設定する(S106)。一方、マッチするものがない場合は、デフォルトフローを対象のステートメントのフローとして設定する(S107)。その後、各フロー表現についてのループ処理を抜ける。
【0059】
各フロー表現についてのループ処理が終了すると、対象のステートメントにフローが設定されているか否かを判定する(S109)。フローが設定されている場合は何も行わず、また、フローが設定されていない場合は、対象のステートメントに“陳述”のフローを設定して(S110)、次のステートメントの処理に移る(S111、S101)。
【0060】
ここで、“陳述”のフローは、対象のステートメントについて、フロー解析ルール22に指定されたフロー表現にマッチする文言を含まない場合に設定されるものである。すなわち、談話の枠組みの中における所定のパターンや定型的なパターン等に該当するステートメント(フロー表現を含むステートメント)ではなく、一般的に談話に固有の事項について具体的な内容を述べているステートメントであると考えられる。
【0061】
各ステートメントについてのループ処理が全て終了した場合は、各ステートメントのIDとこれに対応するフローの情報をフロー情報21として出力してフロー解析処理を終了する。
【0062】
このように、話し言葉を考慮したフロー表現によって各ステートメントとマッチングし、マッチしたステートメントのコンテキストに応じて適切なフローを設定することで、談話データ100の全体について話し言葉やノイズに影響されにくいフロー解析を行うことができる。
【0063】
[固有表現解析]
以下では、図2に示した談話構造解析システム2の固有表現解析部40による固有表現解析の処理の詳細について説明する。図7は、談話構造解析システム2の固有表現解析ルール42の例について示した図である。固有表現解析ルール42は、ファイルやデータベース等に保持されており、ステートメント中の固有表現を特定するための正規表現と、当該正規表現とマッチする部分から固有表現を特定して抽出するための規則(以下では「固有表現規則」と記載する場合がある)との対応について予め指定したリストを保持するテーブルである。
【0064】
図7の例に示すように、ステートメント中の固有表現は正規表現によって特定する。従って、固有表現解析部40もしくは談話構造解析システム2は、例えば、既存の正規表現ライブラリなどを導入することにより正規表現に必要な処理を行うことができるようにしておく必要がある。なお、固有表現解析においては、通常の文字列に対する正規表現だけではなく、形態素情報31に保持された各ステートメントの形態素列の表現についても判断する必要があるため、正規表現の処理機能を形態素列の情報を判断することができるよう拡張しておく。
【0065】
例えば、図7の例では、各正規表現中で形態素列の範囲を“( )”で指定しており、この部分については文字列ではなく形態素列の情報とマッチングするようにする。1つ目の正規表現の例では、“(<f:組織>+)”の部分は、品詞(f)が“組織”であると解析された1つ以上の形態素列を示しており、“(?:の)?”の部分は、表層形が“の”であると解析された0以上1つ以下の品詞を示している。また、“(<f:人名,姓>)”の部分は、品詞が“人名,姓”であると解析された1つの形態素列を示している。この正規表現は、例えば、“AAA商事の鈴木”や、“AAA商事鈴木”などの表現とマッチする。なお、形態素列の表現については、形態素解析部30における形態素解析エンジン等の出力仕様によって異なる場合がある。
【0066】
このとき、対応する固有表現規則において、当該形態素列における1番目の要素(品詞が“組織”の形態素列、例えば“AAA商事”)を“企業名”という属性を有する固有表現として特定し、形態素列における2番目の要素(品詞が“人名,姓”の形態素列、例えば“鈴木”)を“人名”という属性を有する固有表現として特定するよう指定している。なお、“(?: )”で囲われた部分(例えば、“の”)については対象の形態素列の要素に含まれないものとして取り扱う。
【0067】
図7の2つ目の正規表現の例では、品詞は特に考慮せずに通常の正規表現によって指定しており、“03−1234−5678”などの電話番号の表現にマッチする。このとき、対応する固有表現規則において、当該形態素列における1番目の要素(この例で要素は“03−1234−5678”等の1つしかない)を“電話番号”という属性を有する固有表現として特定するよう指定している。
【0068】
なお、正規表現によって特定される固有表現の文字列は、例えば、談話の内容を個別に特徴付ける固有名詞や、数値等からなる文字列などを指定するのが望ましい。また、例えば、話者(顧客等)の感情を示す表現(例えば、苦情の表現や感謝の表現など)からなる文字列を指定して、対応する感情の属性を有する固有表現として特定するようにしてもよい。なお、解析結果として、ある文字列が複数の固有表現に含まれるという場合もあり得る。
【0069】
固有表現解析ルール42には、上述のように、固有表現を特定するための正規表現と固有表現規則との対応のリストを予め指定しておくが、フロー解析ルール22と同様に、指定する正規表現や対応する固有表現規則については、談話構造解析システム2が対象とする談話の種類に応じて異なるものを設定したり、談話の種類に応じて適用する固有表現解析ルール42をユーザが切り換えたりなど、談話の特性に応じて柔軟に対応することが可能である。
【0070】
図8は、談話構造解析システム2の固有表現解析部40における固有表現解析処理の流れの例を示したフローチャートである。固有表現解析部40は、固有表現解析処理を開始すると、まず、談話データ100の各ステートメントについて処理を繰り返すループ処理を開始する(S201)。各ステートメントについてのループ処理を開始すると、固有表現解析ルール42の固有表現を特定するための各正規表現について処理を繰り返すループ処理を開始する(S202)。
【0071】
各正規表現についてのループ処理を開始すると、対象のステートメントに対応する形態素情報31内の各形態素列と、対象の正規表現とがマッチするか否かを判定する(S203)。マッチしない場合は次の正規表現の処理に移る(S205、S202)。一方、マッチする場合は、対象の正規表現に対応する固有表現規則を適用して固有表現を特定して抽出し(S204)、次の正規表現の処理に移る(S205、S202)。
【0072】
各正規表現についてのループ処理が全て終了した場合は、次のステートメントの処理に移る(S206、S201)。各ステートメントについてのループ処理が全て終了した場合は、各ステートメントのIDとこれに対応する固有表現のリストの情報を固有表現情報41として出力して固有表現解析処理を終了する。
【0073】
このように、形態素列の品詞を考慮した正規表現によるマッチングと形態素列の抽出を行うことで、例えば助詞の省略などの話し言葉特有の文法を考慮した固有表現解析を行うことができる。
【0074】
[結束性解析]
以下では、図2に示した談話構造解析システム2の結束性解析部50による結束性解析の処理の詳細について説明する。図9は、談話構造解析システム2での結束性解析の例について示した図である。結束性解析処理では、まず、上段の図に示すように、談話データ100における全てのブロックを1つのセグメントとして設定する。
【0075】
その後、まず、セグメントの分割処理を行う。分割処理では、各ステートメントについてフロー情報21において特定の種別のフローが設定されているものを判別し、当該ステートメントが属するブロックにおいてセグメントを分割する。ここで、判別するフローの種別は、談話の切れ目や内容が切り替わる際に出現すると推測されるフローであることが望ましい。
【0076】
例えば、コールセンターにおけるやり取りを始めとする複数人の談話の場合は、質問とそれに対する回答等の応答によって談話が進む場合が多いため、フローが“質問”のステートメントにおいて内容が切り替わることが多いと考えられる。従って、本実施の形態では、フロー情報21に基づいてフローが“質問”のステートメント(以下では“質問ステートメント”と記載する場合がある)を判別し、図9の中段の図に示すように、質問ステートメントが出現するたびにセグメントを分割するものとする。
【0077】
ここで、質問ステートメントは、談話構造解析システム1のフロー解析部20において、相手の話者に対する質問文を示すフロー表現を有するものとして特定されたステートメントである。質問ステートメントを特定するフロー表現としては、例えば、“/ですか。/”などの疑問文の文末表現や、“/知りたい/”などの動作を表す表現などが考えられる。
【0078】
セグメントを分割した後、セグメントの統合処理を行う。統合処理では、各セグメントについて予め定められた統合条件に該当する質問ステートメントを有する場合に、当該質問ステートメントを有するセグメントを直前のセグメントと統合する。ここで、統合条件は、当該質問ステートメントを有するセグメントについて以前のセグメントから内容が継続している(以前のセグメントと結束性が高い)と推測させる表現の指定である。
【0079】
統合条件としては、例えば、当該質問ステートメントについて、直前の質問ステートメントと共通する単語(固有名詞)がある場合や、指示詞を含む場合などが挙げられる。これらの統合条件に該当する質問ステートメントを有するセグメントは以前のセグメントと結束性が高いと判断し、図9の下段の図に示すように、直前のセグメントと統合する。なお、統合処理については、統合可能なセグメントがなくなるまで繰り返すものとする。
【0080】
図10は、談話構造解析システム2の結束性解析部50における結束性解析処理の流れの例を示したフローチャートである。結束性解析部50は、結束性解析処理を開始すると、まず、談話データ100の全てのブロックを1つのセグメントに設定する(S301)。具体的には、例えば、全てのブロックにセグメントIDの初期値を割り当てるなどによって設定する。その後、セグメントの分割処理として、談話データ100の各ブロックについて処理を繰り返すループ処理を開始する(S302)。
【0081】
各ブロックについてのループ処理を開始すると、対象のブロックに質問ステートメントが含まれているか否か(フローが“質問”のステートメントがあるか否か)を判定する(S303)。質問ステートメントが含まれている場合は、対象のブロックと直前のブロックとの間でセグメントを分割する(S304)。具体的には、例えば、対象のブロック以降の全てのブロックに次のセグメントIDを割り当てるなどによって分割する。その後、次のブロックの処理に移る(S305、S302)。
【0082】
各ブロックについてのループ処理(分割処理)が終了した場合は、次に、セグメントの結合処理として、上記の分割処理で分割した各セグメントについて処理を繰り返すループ処理を開始する(S306)。各セグメントについてのループ処理を開始すると、対象のセグメントに上記の統合条件に該当する質問ステートメントがあるか否かを判定する(S307)。
【0083】
統合条件に該当する質問ステートメントがある場合は、対象のセグメントと直前のセグメントとを統合する(S308)。具体的には、例えば、対象のセグメントに含まれる各ブロックのセグメントIDを直前のセグメントのセグメントIDに更新するなどによって統合する。このとき、以降の各セグメントに含まれる各ブロックのセグメントIDを順次繰り上げてもよい。その後、次のセグメントの処理に移る(S309、S306)。各セグメントについてのループ処理(統合処理)が終了した場合は、各ブロックのIDと対応する(各ブロックが含まれる)セグメントのIDのリストの情報を結束性情報51として出力して、結束性解析処理を終了する。
【0084】
これにより、フロー解析によって得られたフロー情報21に基づいて談話データ100内の各ステートメントをセグメント化し、談話セマンティクス200を利用する種々のアプリケーションに対する有用な情報とすることができる。
【0085】
なお、上述のフロー解析、固有表現解析、結束性解析の各処理によって出力された談話セマンティクス200に含まれるフロー情報21、固有表現情報41、結束性情報51については、談話構造解析システム2において、ユーザが内容を参照して適宜修正することが可能なインタフェースを設けてもよい。
【0086】
[Q&A対抽出]
以下では、図1に示したFAQ候補抽出システム1のQ&A対抽出部60によるQ&A対抽出の処理の詳細について説明する。図11は、FAQ候補抽出システム1でのQ&A対抽出の例について示した図である。図11は、談話データ101についての談話構造解析の結果の例を示しており、談話データ101の各ステートメントに対して、談話セマンティクス200におけるフロー情報21の内容(各ステートメントのフロー)を示している。
【0087】
本実施の形態のFAQ候補抽出システム1では、図11の例に示すような談話構造の解析結果から質問ステートメントを特定してこれを“質問”として同定し、さらに、当該質問ステートメントの後に最初に現れる、フローが“陳述”のステートメント(以下では“陳述ステートメント”と記載する場合がある)であり、かつ話者が異なるステートメントを特定してこれを“回答”として同定し、“質問”と“回答”のステートメントの対をQ&A対とする。
【0088】
ここで、陳述ステートメントは、図6における談話構造解析システム2のフロー解析部20の処理にて説明したように、当該ステートメントについて、フロー解析ルール22に指定されたフロー表現にマッチする文言を含まない場合に“陳述”のフローが設定されたものである。すなわち、談話の枠組みの中における所定のパターンや定型的なパターン等に該当するステートメントではなく、一般的に談話に固有の事項について具体的な内容を述べているステートメントであると考えられる。従って、このような陳述ステートメントが“質問”のコンテキストにおいて発せられた場合は、これを当該“質問”に対する“回答”であると判断することができる。
【0089】
図12は、FAQ候補抽出システム1のQ&A対抽出部60におけるQ&A対抽出処理の流れの例を示したフローチャートである。Q&A対抽出部60は、Q&A対抽出処理を開始すると、まず、談話データ101の各ステートメントについて処理を繰り返すループ処理を開始する(S401)。各ステートメントについてのループ処理を開始すると、談話セマンティクス200のフロー情報21に基づいて、対象のステートメントが質問ステートメントであるか否かを判定する(S402)。質問ステートメントではない場合は、次のステートメントの処理に移る(S407、S401)。
【0090】
ステップS402において対象のステートメントが質問ステートメントである場合は、当該質問ステートメント以降の各ステートメントについて処理を繰り返すループ処理を開始する(S403)。質問ステートメント以降の各ステートメントについてのループ処理を開始すると、フロー情報21に基づいて、対象のステートメントが質問ステートメントと話者が異なる陳述ステートメントであるか否かを判定する(S404)。該当する陳述ステートメントではない場合は、次のステートメントの処理に移る(S406、S403)。
【0091】
ステップS404において対象のステートメントが該当する陳述ステートメントである場合は、当該質問ステートメントと当該陳述ステートメントとをQ&A対として抽出し(S405)、当該質問ステートメント以降の各ステートメントについてのループ処理を抜けて、当該質問ステートメントの次のステートメントの処理に移る(S407、S401)。当該質問ステートメント以降の各ステートメントについてのループ処理が終了した場合も、当該質問ステートメントの次のステートメントの処理に移る(S407、S401)。各ステートメントについてのループ処理が終了した場合は、ステップS405で抽出したQ&A対のリストをQ&A対情報61として出力して、Q&A対抽出処理を終了する。
【0092】
図12の例では、談話データ101全体の各ステートメントを対象として処理を行っているが、談話セマンティクス200の結束性情報51に基づいて、談話データ101のセグメント単位で所定のセグメント内の各ステートメントを対象として処理を行うことで、例えば、“回答”を同定する際の対象となるステートメントの範囲を絞るようにしてもよい。また、このとき、質問ステートメントが属するセグメントとは異なるセグメントを対象として“回答”のステートメントを同定するようにしてもよい。
【0093】
このように、談話データ101の各ステートメントに設定されたフローの情報に基づいてQ&A対を同定して抽出することで、談話データ101を決められた文章構造の枠組みやスキーマに当てはめるという処理を要さずに、多様な談話の流れを有する談話データ101からQ&A対を抽出することができる。
【0094】
[クラスタリング〜スコアリング]
以下では、図1に示したFAQ候補抽出システム1のクラスタリング部70およびスコアリング部80によるQ&A対情報61内のQ&A対のクラスタリングおよびスコアリングの処理の詳細について説明する。本実施の形態では、Q&A対情報61内の各Q&A対について、まず、クラスタリング部70が、予め設定したキーワードに基づいて単語ベクトルを算出し、算出した単語ベクトルに基づいて各Q&A対を類似するものにグループ化してクラスタリングする。さらに、スコアリング部80が、各クラスタ(もしくはクラスタの代表となるQ&A対)を所定の基準によりスコアリングして、スコアリング結果に基づいて、例えば上位の所定の数のQ&A対をFAQ候補300として出力する。
【0095】
クラスタリング部70では、上記の単語ベクトルを算出する際に、Q&A情報61内の各Q&A対について、それぞれ、キーワード辞書72に予め設定されたキーワード毎に当該キーワードとの関連度を示す指標を算出し、算出した各指標を要素とする単語ベクトルを算出する。すなわち、キーワード辞書72に設定されたキーワードの個数がn個の場合、n次元の単語ベクトルを算出する。なお、キーワード辞書72としては、例えば、FAQ候補抽出システム1を利用する企業における商品マスター等から生成した商品辞書などを用いることができる。
【0096】
ここで、各Q&A対についての各キーワードとの関連度を示す指標としては、数値としての評価が可能なものであれば種々のものを用いることができる。本実施の形態では、例えば、一般的に用いられている指標である、文章(Q&A対)における対象の単語(キーワード)の出現頻度であるTF(Term Frequency)値と、全ての文章(Q&A対)の中で対象の単語(キーワード)が出現する文章(Q&A対)の数の逆数であるIDF(Inverse Document Frequency)値との積であるTF−IDF値を用いる。これにより、TF−IDF値が大きいキーワードは、Q&A対における重要度が高い単語であると判断することができる。
【0097】
クラスタリング部70は、さらに、各Q&A対について算出した単語ベクトルに基づいて類似するものにグループ化してクラスタリングする際に、例えば、一般的に行われている手法である、ベクトル空間における各単語ベクトルの代数的な距離(もしくは単語ベクトル間のなす角)によって類似の程度を判断し、所定の距離より近いもの(もしくは所定の角よりなす角が小さいもの)を類似するものとしてクラスタリングする手法を用いる。クラスタリングする際の基準についても上記の単語ベクトル間の距離等に限らず他の基準を利用してもよい。また、例えば、談話データ101におけるQ&A対同士の時間的な離散度を考慮して、各Q&A対の質問ステートメントのIDの差分が小さいもの(時間的に近い質問ステートメント)の類似の程度を高くするなどの重み付けを行ってもよい。
【0098】
上記の手法によってクラスタリングされた各Q&A対について、図1に示したFAQ候補抽出システム1のスコアリング部80によるスコアリング処理によって各クラスタをスコアリングし、スコアリング結果に基づいて、例えば上位の所定の数のクラスタ(もしくはクラスタの代表となるQ&A対)をFAQ候補300として出力する。
【0099】
スコアリングの際には、例えば、クラスタ内の各Q&A対の単語ベクトルの代数的な大きさや、キーワード辞書72内の各キーワードの含有数、クラスタの大きさ(Q&A対の含有数)など、種々の基準に基づいてスコアを算出することができる。また、各クラスタの代表となるQ&A対についても、例えば、クラスタ内で単語ベクトルの大きさが最大のQ&A対を選択するなどの手法により決定することができる。なお、FAQ候補300の形式等については特に限定されず、XMLなどを利用したデータ構造や単純なテキスト形式など種々の形式とすることができる。
【0100】
このように、Q&A対抽出部60から出力されたQ&A対情報61に含まれる各Q&A対について、クラスタリングおよびスコアリングの処理を行うことによって、FAQ候補300となるQ&A対を絞り込んで出力するようにしてもよい。
【0101】
以上に説明したように、本実施の形態のFAQ候補抽出システム1によれば、談話構造の解析結果である、談話データ101の各ステートメントについてのフロー情報21を利用することにより、談話の文章構造の枠組みを規定せずに、談話データ101からQ&A対を抽出することができる。また、抽出したQ&A対からキーワードの出現頻度に基づいて類似度を算出してクラスタリングし、各クラスタをスコアリングすることにより、Q&A対から効果的にFAQ候補300を抽出して出力することができる。
【0102】
また、Q&A対の抽出に際して、談話データ101の内容および談話構造の解析結果から必要な部分のみを参照してQ&A対を抽出するため、他の部分にノイズやノイズによる誤った解析結果が含まれている場合でも、これらからの影響を極小化してQ&A対を抽出することができる。
【0103】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【0104】
本発明は、音声認識処理により得られた談話データの構造を解析した結果からFAQの候補を抽出するFAQ候補抽出システムおよびFAQ候補抽出プログラムに利用可能である。
【符号の説明】
【0105】
1…FAQ候補抽出システム、2…談話構造解析システム、3…音声認識エンジン、
10…前処理部、
20…フロー解析部、21…フロー情報、22…フロー解析ルール、
30…形態素解析部、31…形態素情報
40…固有表現解析部、41…固有表現情報、42…固有表現解析ルール、
50…結束性解析部、51…結束性情報、
60…Q&A対抽出部、61…Q&A対情報、
70…クラスタリング部、72…キーワード辞書、
80…スコアリング部、
100、101…談話データ、200…談話セマンティクス、300…FAQ候補。
【特許請求の範囲】
【請求項1】
音声認識処理によって談話の内容がテキスト化された談話データ、および前記談話データにおける前記談話の構造の解析結果である、前記談話全体の意味内容を把握するための情報である談話セマンティクスを入力とし、前記談話データからFAQ候補となる質問−回答対を抽出して出力するFAQ候補抽出システムであって、
前記談話セマンティクスは、前記談話データにおける各ステートメントの意味内容を示すフローの情報を含むフロー情報を含み、
前記談話セマンティクスにおいて、前記ステートメントが相手の話者に対する質問文であることを示す前記フローが設定された第1のステートメントを同定し、さらに、前記談話データにおいて前記第1のステートメントの後に最初に現れ、かつ前記第1のステートメントと話者が異なり、前記ステートメントが前記談話に固有の事項について具体的な内容を述べているものであることを示す前記フローが設定された第2のステートメントを同定し、前記第1のステートメントと前記第2のステートメントとを前記質問−回答対として抽出する質問−回答対抽出部を有することを特徴とするFAQ候補抽出システム。
【請求項2】
請求項1に記載のFAQ候補抽出システムにおいて、
さらに、複数のキーワードを保持するキーワード辞書と、
前記質問−回答対抽出部から出力された前記各質問−回答対に対して、前記キーワード辞書に保持された前記各キーワードに基づいて単語ベクトルを算出し、前記単語ベクトルの距離に基づいて前記各質問−回答対の類似の程度を判断して前記各質問−回答対をクラスタ毎にグループ化するクラスタリング部と、
前記各クラスタに対して、所定の基準によりスコアリングし、上位の所定の数の前記各クラスタの代表となる前記質問−回答対をFAQ候補として出力するスコアリング部とを有することを特徴とするFAQ候補抽出システム。
【請求項3】
請求項2に記載のFAQ候補抽出システムにおいて、
前記クラスタリング部は、前記単語ベクトルを算出する際に、前記各質問−回答対について、前記キーワード毎に、TF値とIDF値とを算出し、前記TF値と前記IDF値との積に基づいてTF−IDF値を算出し、前記TF−IDF値を要素とした前記単語ベクトルを算出することを特徴とするFAQ候補抽出システム。
【請求項4】
請求項1〜3のいずれか1項に記載のFAQ候補抽出システムにおいて、
前記談話セマンティクスは、さらに、前記談話データを内容の切り替わりが推測される単位で分割したセグメントの情報を含む結束性情報を有し、
前記質問−回答抽出部は、所定の前記セグメントに含まれる前記ステートメントを対象として、前記第1のステートメントおよび前記第2のステートメントを同定することを特徴とするFAQ候補抽出システム。
【請求項5】
音声認識処理によって談話の内容がテキスト化された談話データ、および前記談話データにおける前記談話の構造の解析結果である、前記談話全体の意味内容を把握するための情報である談話セマンティクスを入力とし、前記談話データからFAQ候補となる質問−回答対を抽出して出力するFAQ候補抽出システムとしてコンピュータを機能させるFAQ候補抽出プログラムであって、
前記談話セマンティクスは、前記談話データにおける各ステートメントの意味内容を示すフローの情報を含むフロー情報を含み、
前記談話セマンティクスにおいて、前記ステートメントが相手の話者に対する質問文であることを示す第1のフローが設定された第1のステートメントを同定し、さらに、前記談話データにおいて前記第1のステートメントの後に最初に現れ、かつ前記第1のステートメントと話者が異なり、前記ステートメントが前記談話に固有の事項について具体的な内容を述べているものであることを示す第2のフローが設定された第2のステートメントを同定し、前記第1のステートメントと前記第2のステートメントとを前記質問−回答対として抽出する質問−回答対抽出部を有することを特徴とするFAQ候補抽出プログラム。
【請求項6】
請求項5に記載のFAQ候補抽出プログラムにおいて、
さらに、複数のキーワードを保持するキーワード辞書と、
前記質問−回答対抽出部から出力された前記各質問−回答対に対して、前記キーワード辞書に保持された前記各キーワードに基づいて単語ベクトルを算出し、前記単語ベクトルの距離に基づいて前記各質問−回答対の類似の程度を判断して前記各質問−回答対をクラスタ毎にグループ化するクラスタリング部と、
前記各クラスタに対して、所定の基準によりスコアリングし、上位の所定の数の前記各クラスタの代表となる前記質問−回答対をFAQ候補として出力するスコアリング部とを有することを特徴とするFAQ候補抽出プログラム。
【請求項7】
請求項6に記載のFAQ候補抽出プログラムにおいて、
前記クラスタリング部は、前記単語ベクトルを算出する際に、前記各質問−回答対について、前記キーワード毎に、TF値とIDF値とを算出し、前記TF値と前記IDF値との積に基づいてTF−IDF値を算出し、前記TF−IDF値を要素とした前記単語ベクトルを算出することを特徴とするFAQ候補抽出プログラム。
【請求項8】
請求項5〜7のいずれか1項に記載のFAQ候補抽出プログラムにおいて、
前記談話セマンティクスは、さらに、前記談話データを内容の切り替わりが推測される単位で分割したセグメントの情報を含む結束性情報を有し、
前記質問−回答抽出部は、所定の前記セグメントに含まれる前記ステートメントを対象として、前記第1のステートメントおよび前記第2のステートメントを同定することを特徴とするFAQ候補抽出プログラム。
【請求項1】
音声認識処理によって談話の内容がテキスト化された談話データ、および前記談話データにおける前記談話の構造の解析結果である、前記談話全体の意味内容を把握するための情報である談話セマンティクスを入力とし、前記談話データからFAQ候補となる質問−回答対を抽出して出力するFAQ候補抽出システムであって、
前記談話セマンティクスは、前記談話データにおける各ステートメントの意味内容を示すフローの情報を含むフロー情報を含み、
前記談話セマンティクスにおいて、前記ステートメントが相手の話者に対する質問文であることを示す前記フローが設定された第1のステートメントを同定し、さらに、前記談話データにおいて前記第1のステートメントの後に最初に現れ、かつ前記第1のステートメントと話者が異なり、前記ステートメントが前記談話に固有の事項について具体的な内容を述べているものであることを示す前記フローが設定された第2のステートメントを同定し、前記第1のステートメントと前記第2のステートメントとを前記質問−回答対として抽出する質問−回答対抽出部を有することを特徴とするFAQ候補抽出システム。
【請求項2】
請求項1に記載のFAQ候補抽出システムにおいて、
さらに、複数のキーワードを保持するキーワード辞書と、
前記質問−回答対抽出部から出力された前記各質問−回答対に対して、前記キーワード辞書に保持された前記各キーワードに基づいて単語ベクトルを算出し、前記単語ベクトルの距離に基づいて前記各質問−回答対の類似の程度を判断して前記各質問−回答対をクラスタ毎にグループ化するクラスタリング部と、
前記各クラスタに対して、所定の基準によりスコアリングし、上位の所定の数の前記各クラスタの代表となる前記質問−回答対をFAQ候補として出力するスコアリング部とを有することを特徴とするFAQ候補抽出システム。
【請求項3】
請求項2に記載のFAQ候補抽出システムにおいて、
前記クラスタリング部は、前記単語ベクトルを算出する際に、前記各質問−回答対について、前記キーワード毎に、TF値とIDF値とを算出し、前記TF値と前記IDF値との積に基づいてTF−IDF値を算出し、前記TF−IDF値を要素とした前記単語ベクトルを算出することを特徴とするFAQ候補抽出システム。
【請求項4】
請求項1〜3のいずれか1項に記載のFAQ候補抽出システムにおいて、
前記談話セマンティクスは、さらに、前記談話データを内容の切り替わりが推測される単位で分割したセグメントの情報を含む結束性情報を有し、
前記質問−回答抽出部は、所定の前記セグメントに含まれる前記ステートメントを対象として、前記第1のステートメントおよび前記第2のステートメントを同定することを特徴とするFAQ候補抽出システム。
【請求項5】
音声認識処理によって談話の内容がテキスト化された談話データ、および前記談話データにおける前記談話の構造の解析結果である、前記談話全体の意味内容を把握するための情報である談話セマンティクスを入力とし、前記談話データからFAQ候補となる質問−回答対を抽出して出力するFAQ候補抽出システムとしてコンピュータを機能させるFAQ候補抽出プログラムであって、
前記談話セマンティクスは、前記談話データにおける各ステートメントの意味内容を示すフローの情報を含むフロー情報を含み、
前記談話セマンティクスにおいて、前記ステートメントが相手の話者に対する質問文であることを示す第1のフローが設定された第1のステートメントを同定し、さらに、前記談話データにおいて前記第1のステートメントの後に最初に現れ、かつ前記第1のステートメントと話者が異なり、前記ステートメントが前記談話に固有の事項について具体的な内容を述べているものであることを示す第2のフローが設定された第2のステートメントを同定し、前記第1のステートメントと前記第2のステートメントとを前記質問−回答対として抽出する質問−回答対抽出部を有することを特徴とするFAQ候補抽出プログラム。
【請求項6】
請求項5に記載のFAQ候補抽出プログラムにおいて、
さらに、複数のキーワードを保持するキーワード辞書と、
前記質問−回答対抽出部から出力された前記各質問−回答対に対して、前記キーワード辞書に保持された前記各キーワードに基づいて単語ベクトルを算出し、前記単語ベクトルの距離に基づいて前記各質問−回答対の類似の程度を判断して前記各質問−回答対をクラスタ毎にグループ化するクラスタリング部と、
前記各クラスタに対して、所定の基準によりスコアリングし、上位の所定の数の前記各クラスタの代表となる前記質問−回答対をFAQ候補として出力するスコアリング部とを有することを特徴とするFAQ候補抽出プログラム。
【請求項7】
請求項6に記載のFAQ候補抽出プログラムにおいて、
前記クラスタリング部は、前記単語ベクトルを算出する際に、前記各質問−回答対について、前記キーワード毎に、TF値とIDF値とを算出し、前記TF値と前記IDF値との積に基づいてTF−IDF値を算出し、前記TF−IDF値を要素とした前記単語ベクトルを算出することを特徴とするFAQ候補抽出プログラム。
【請求項8】
請求項5〜7のいずれか1項に記載のFAQ候補抽出プログラムにおいて、
前記談話セマンティクスは、さらに、前記談話データを内容の切り替わりが推測される単位で分割したセグメントの情報を含む結束性情報を有し、
前記質問−回答抽出部は、所定の前記セグメントに含まれる前記ステートメントを対象として、前記第1のステートメントおよび前記第2のステートメントを同定することを特徴とするFAQ候補抽出プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2011−123565(P2011−123565A)
【公開日】平成23年6月23日(2011.6.23)
【国際特許分類】
【出願番号】特願2009−278812(P2009−278812)
【出願日】平成21年12月8日(2009.12.8)
【出願人】(000155469)株式会社野村総合研究所 (1,067)
【Fターム(参考)】
【公開日】平成23年6月23日(2011.6.23)
【国際特許分類】
【出願日】平成21年12月8日(2009.12.8)
【出願人】(000155469)株式会社野村総合研究所 (1,067)
【Fターム(参考)】
[ Back to top ]