(57)【特許請求の範囲】
【請求項１】
音声認識処理によって談話の内容がテキスト化された談話データを入力とし、前記談話データにおける前記談話の構造の解析を行って、前記談話全体の意味内容を把握するための情報である談話セマンティクスを出力する談話構造解析システムであって、
前記談話データにおける各ステートメントの意味内容を示すフローの情報を判断するための第１の正規表現であるフロー表現と、前記フロー表現にマッチする表現を有する前記ステートメントに対して前記ステートメントのコンテキストに応じて設定する前記フローを指定したフロー定義との対応のリストからなるフロー解析ルールと、
前記談話データにおける前記各ステートメントに対して、前記フロー解析ルールにおける前記各フロー表現とのマッチングを行い、マッチした前記フロー表現における、前記ステートメントの前記コンテキストに対応する前記フロー定義にて指定された前記フローを、前記ステートメントに対して設定し、前記各ステートメントと前記各ステートメントに設定された前記フローとの対応からなるフロー情報を出力するフロー解析部と、
前記談話データに対して、前記談話データにおける話者毎の一連の前記ステートメントからなるブロックのうち、前記談話における内容の切り替わりが推測される所定の前記フローが設定された前記ステートメントが属する前記ブロックにおいて前記談話データをセグメントに分割する分割処理と、前記所定の前記フローが設定された前記各ステートメントにおいて、該ステートメントが属する前記セグメントと以前の前記セグメントとの内容の継続が推測される所定の条件に該当する場合に、該ステートメントが属する前記セグメントと直前の前記セグメントとを統合する統合処理とを行い、前記各ブロックと前記各ブロックが属する前記セグメントとの対応からなる結束性情報を出力する結束性解析部とを有し、
前記フロー解析部から出力された前記フロー情報、および前記結束性解析部から出力された前記結束性情報を前記談話セマンティクスとして出力することを特徴とする談話構造解析システム。
【請求項２】
請求項１に記載の談話構造解析システムにおいて、
前記フロー解析部は、前記ステートメントの前記コンテキストとして、前記ステートメントが属する前記ブロックの、話者が異なる直前の前記ブロックにおける最後の前記ステートメントに設定された前記フローを設定することを特徴とする談話構造解析システム。
【請求項３】
請求項１または２に記載の談話構造解析システムにおいて、
さらに、前記談話データにおける前記各ステートメントに対して、形態素に分割して品詞を判別する形態素解析を行い、前記各ステートメントと前記各ステートメントの形態素列との対応からなる形態素情報を出力する形態素解析部を有し、
出力する前記談話セマンティクスに前記形態素情報を含むことを特徴とする談話構造解析システム。
【請求項４】
請求項３に記載の談話構造解析システムにおいて、
さらに、前記談話データにおける前記各ステートメント中の固有表現を特定するための、前記形態素の情報を考慮した第２の正規表現と、前記第２の正規表現とマッチする部分の前記形態素列から前記固有表現を特定して抽出するための固有表現規則との対応のリストからなる固有表現解析ルールと、
前記談話データにおける前記各ステートメントに対して、前記固有表現解析ルールにおける前記第２の正規表現とのマッチングを行い、マッチした前記第２の正規表現における前記固有表現規則に基づいて、対応する前記形態素列を抽出して前記固有表現として特定し、前記各ステートメントと前記各ステートメントにおいて特定された前記固有表現のリストとの対応からなる固有表現情報を出力する固有表現解析部とを有し、
出力する前記談話セマンティクスに前記固有表現情報を含むことを特徴とする談話構造解析システム。
【請求項５】
請求項１に記載の談話構造解析システムにおいて、
前記結束性解析部は、前記統合処理における前記所定の条件として、前記所定の前記フローが設定された前記ステートメントに、直前の前記所定の前記フローが設定された前記ステートメントと共通する固有名詞を有する場合、および／または指示詞を有する場合を含むことを特徴とする談話構造解析システム。
【請求項６】
請求項１または２に記載の談話構造解析システムにおいて、
さらに、前記談話データにおける前記各ステートメントに対して、前記フローが不要表現に該当する所定のものであるか否かを判定し、不要表現に該当しない前記ステートメントのみを示す簡約情報を出力する対話簡約部を有し、
出力する前記談話セマンティクスに前記簡約報を含むことを特徴とする談話構造解析システム。
【請求項７】
請求項６に記載の談話構造解析システムにおいて、
前記対話簡約部は、前記ステートメントが挨拶文もしくは相槌であることを示す前記フロー、もしくは前記談話の内容と直接の関わりなく使用される定型的な表現であることを示す前記フローを、不要表現に該当する前記フローとすることを特徴とする談話構造解析システム。
【請求項８】
音声認識処理によって談話の内容がテキスト化された談話データを入力とし、前記談話データにおける前記談話の構造の解析を行って、前記談話全体の意味内容を把握するための情報である談話セマンティクスを出力する談話構造解析システムとしてコンピュータを機能させる談話構造解析プログラムであって、
前記談話データにおける各ステートメントの意味内容を示すフローの情報を判断するための第１の正規表現であるフロー表現と、前記フロー表現にマッチする表現を有する前記ステートメントに対して前記ステートメントのコンテキストに応じて設定する前記フローを指定したフロー定義との対応のリストからなるフロー解析ルールと、
前記談話データにおける前記各ステートメントに対して、前記フロー解析ルールにおける前記各フロー表現とのマッチングを行い、マッチした前記フロー表現における、前記ステートメントの前記コンテキストに対応する前記フロー定義にて指定された前記フローを、前記ステートメントに対して設定し、前記各ステートメントと前記各ステートメントに設定された前記フローとの対応からなるフロー情報を出力するフロー解析部と、
前記談話データに対して、前記談話データにおける話者毎の一連の前記ステートメントからなるブロックのうち、前記談話における内容の切り替わりが推測される所定の前記フローが設定された前記ステートメントが属する前記ブロックにおいて前記談話データをセグメントに分割する分割処理と、前記所定の前記フローが設定された前記各ステートメントにおいて、該ステートメントが属する前記セグメントと以前の前記セグメントとの内容の継続が推測される所定の条件に該当する場合に、該ステートメントが属する前記セグメントと直前の前記セグメントとを統合する統合処理とを行い、前記各ブロックと前記各ブロックが属する前記セグメントとの対応からなる結束性情報を出力する結束性解析部とを有し、
前記フロー解析部から出力された前記フロー情報、および前記結束性解析部から出力された前記結束性情報を前記談話セマンティクスとして出力することを特徴とする談話構造解析プログラム。
【請求項９】
請求項８に記載の談話構造解析プログラムにおいて、
前記フロー解析部は、前記ステートメントの前記コンテキストとして、前記ステートメントが属する前記ブロックの、話者が異なる直前の前記ブロックにおける最後の前記ステートメントに設定された前記フローを設定することを特徴とする談話構造解析プログラム。
【請求項１０】
請求項８または９に記載の談話構造解析プログラムにおいて、
さらに、前記談話データにおける前記各ステートメントに対して、形態素に分割して品詞を判別する形態素解析を行い、前記各ステートメントと前記各ステートメントの形態素列との対応からなる形態素情報を出力する形態素解析部を有し、
出力する前記談話セマンティクスに前記形態素情報を含むことを特徴とする談話構造解析プログラム。
【請求項１１】
請求項１０に記載の談話構造解析プログラムにおいて、
さらに、前記談話データにおける前記各ステートメント中の固有表現を特定するための、前記形態素の情報を考慮した第２の正規表現と、前記第２の正規表現とマッチする部分の前記形態素列から前記固有表現を特定して抽出するための固有表現規則との対応のリストからなる固有表現解析ルールと、
前記談話データにおける前記各ステートメントに対して、前記固有表現解析ルールにおける前記第２の正規表現とのマッチングを行い、マッチした前記第２の正規表現における前記固有表現規則に基づいて、対応する前記形態素列を抽出して前記固有表現として特定し、前記各ステートメントと前記各ステートメントにおいて特定された前記固有表現のリストとの対応からなる固有表現情報を出力する固有表現解析部とを有し、
出力する前記談話セマンティクスに前記固有表現情報を含むことを特徴とする談話構造解析プログラム。
【請求項１２】
請求項８に記載の談話構造解析プログラムにおいて、
前記結束性解析部は、前記統合処理における前記所定の条件として、前記所定の前記フローが設定された前記ステートメントに、直前の前記所定の前記フローが設定された前記ステートメントと共通する固有名詞を有する場合、および／または指示詞を有する場合を含むことを特徴とする談話構造解析プログラム。
【請求項１３】
請求項８または９に記載の談話構造解析プログラムにおいて、
さらに、前記談話データにおける前記各ステートメントに対して、前記フローが不要表現に該当する所定のものであるか否かを判定し、不要表現に該当しない前記ステートメントのみを示す簡約情報を出力する対話簡約部を有し、
出力する前記談話セマンティクスに前記簡約報を含むことを特徴とする談話構造解析プログラム。
【請求項１４】
請求項１３に記載の談話構造解析プログラムにおいて、
前記対話簡約部は、前記ステートメントが挨拶文もしくは相槌であることを示す前記フロー、もしくは前記談話の内容と直接の関わりなく使用される定型的な表現であることを示す前記フローを、不要表現に該当する前記フローとすることを特徴とする談話構造解析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自然言語処理の技術に関し、特に、音声認識処理により得られた談話データの構造を解析する談話構造解析システムおよび談話構造解析プログラムに適用して有効な技術に関するものである。
【背景技術】
【０００２】
例えば、コールセンター業務において、オペレータやコミュニケータは、電話応対後に応対記録を作成して応対管理システム等へ保存するという一連の業務を行う必要がある。このとき、オペレータ等は、自身の記憶を頼りにして応対記録を作成するため作成に時間がかかるという問題がある。
【０００３】
また、各オペレータ等のスキルに応じて品質（内容、統一性、網羅性、簡潔性等）にバラツキが生じる。このように応対記録の品質にバラツキがあったり品質が低かったりすることにより、顧客の声を正確に把握することができなかったり、応対記録の蓄積からテキストマイニング等の技術を利用して新たな知見を得るというようなことができなかったりなどの問題も生じる。
【０００４】
このような問題を解決するため、音声認識の技術を活用した解決策が検討されている。音声認識の技術によって応対の音声情報をテキスト化して保存することにより、応対記録の網羅性を確保することができる。また、テキスト化したデータに対して自然言語処理の技術を適用して内容を要約することで応対記録を自動作成することも可能であり、応対記録作成にかかるコストを削減して、統一性、簡潔性を確保することで応対記録の活用性を向上させることも可能と考えられる。
【０００５】
このような技術として、例えば、非特許文献１には、コールセンターにおける音声対話において、音声データをテキスト化し、過去の対話内容とその営業日報から帰納的学習により再帰的に規則獲得を行い、それらの規則を用いて未知の対話内容に対して重要箇所を決定・抽出し、文体変換を行うことで営業日報を自動生成する技術が記載されている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】矢野純司、荒木健治、“コールセンターにおける音声対話を対象とした帰納的学習を用いた営業日報生成手法の性能評価”、情報処理学会研究報告  ２００７−ＮＬ−１７８、２００７年３月２８日、ｐ．２１−２８
【発明の概要】
【発明が解決しようとする課題】
【０００７】
人の談話を音声認識によりテキスト化したデータ（以下では「談話データ」と記載する場合がある）を活用する場合、談話データ内の文章は通常は話し言葉で記録されているため、正しい文法に則った日本語文や、書き言葉を前提とした既存の自然言語処理の技術ではうまく対応できない場合がある。また、現状の音声認識エンジンの精度では認識ミスを排除することはできず、誤認識による誤字・脱字などのノイズが多い。従って、談話データについて自然言語処理を利用して有効活用するのは困難である。
【０００８】
一方、非特許文献１の技術では、帰納的学習処理によって得た規則に基づいて対話文書から重要文を抽出し、話し言葉から書き言葉への文体変換を行って営業日報を自動生成することができる。しかしながら、非特許文献１の技術では対話文書から最初に重要文を抽出してしまうため、対話文書の要約を得ることはできるが、例えば、談話データからテキストマイニング等によって他の有用な知見を得るというように、談話データの蓄積を多様な用途に有効活用するというようなことは想定していないと思われる。
【０００９】
そこで本発明の目的は、話し言葉やノイズといった談話データの特性に強く、談話データの構造を解析して、多様な用途に利用可能な談話構造のセマンティクスに係る情報（以下では「談話セマンティクス」と記載する場合がある）を生成する談話構造解析システムおよび談話構造解析プログラムを提供することにある。
【００１０】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【００１２】
本発明の代表的な実施の形態による談話構造解析システムは、談話構造解析プログラムによって機能し、音声認識処理によって談話の内容がテキスト化された談話データを入力とし、前記談話データにおける前記談話の構造の解析を行って、前記談話全体の意味内容を把握するための情報である談話セマンティクスを出力するものであって、以下の特徴を有する。
【００１３】
すなわち、談話構造解析システムおよび談話構造解析プログラムは、前記談話データにおける各ステートメントの意味内容を示すフローの情報を判断するための第１の正規表現であるフロー表現と、前記フロー表現にマッチする表現を有する前記ステートメントに対して前記ステートメントのコンテキストに応じて設定する前記フローを指定したフロー定義との対応のリストからなるフロー解析ルールを有する。
【００１４】
さらに、前記談話データにおける前記各ステートメントに対して、前記フロー解析ルールにおける前記各フロー表現とのマッチングを行い、マッチした前記フロー表現における、前記ステートメントの前記コンテキストに対応する前記フロー定義にて指定された前記フローを、前記ステートメントに対して設定し、前記各ステートメントと前記各ステートメントに設定された前記フローとの対応からなるフロー情報を出力するフロー解析部とを有し、前記フロー解析部から出力された前記フロー情報を前記談話セマンティクスとして出力することを特徴とするものである。
【発明の効果】
【００１５】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１６】
本発明の代表的な実施の形態によれば、ルールベースの解析により一部の文字列や形態素から意味を推測して談話セマンティクスを生成するため、話し言葉やノイズといった談話データの特性に強い解析を行うことが可能となる。また、一部の重要なステートメントのみに限らず談話全体についてフローや結束性、固有表現、対話簡約などの談話構造の解析を行って談話セマンティクスを生成するため、応対記録の作成等に限らず、生成した談話セマンティクスに含まれる有用な知見を活用する種々のアプリケーション等によって利用することが可能となる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施の形態である談話構造解析システムの構成例の概要について示したブロック図である。
【図２】本発明の一実施の形態における談話の例および談話セマンティクスの概念について示した図である。
【図３】本発明の一実施の形態における談話データにおけるフローとコンテキストの例について示した図である。
【図４】本発明の一実施の形態におけるフロー解析ルールの例について示した図である。
【図５】本発明の一実施の形態におけるフロー解析部でのフロー解析処理の流れの例を示したフローチャートである。
【図６】本発明の一実施の形態における固有表現解析ルールの例について示した図である。
【図７】本発明の一実施の形態における固有表現解析部での固有表現解析処理の流れの例を示したフローチャートである。
【図８】本発明の一実施の形態における結束性解析の例について示した図である。
【図９】本発明の一実施の形態における結束性解析部での結束性解析処理の流れの例を示したフローチャートである。
【図１０】本発明の一実施の形態における対話簡約の例について示した図である。
【図１１】本発明の一実施の形態における対話簡約部での対話簡約処理の流れの例を示したフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１９】
本発明の一実施の形態である談話構造解析システムは、ルールベースでの解析により、話し言葉を含む談話データについて、その一部の文字列や形態素から意味を推測して、談話データ全体についてフロー、さらには結束性（談話のセグメント）、固有表現などの談話構造の解析を行って談話セマンティクス（談話全体の意味内容を把握するための談話構造に係る情報）を生成するシステムである。ここで、本実施の形態の談話構造解析システムによる談話構造の解析は、日本語の文章としての内容や構造の厳密な解析ではなく、例えば、応対記録やＦＡＱ（Frequently Asked Questions）の作成などの一般的な業務を行う種々のアプリケーション等によって利用可能な、実用上支障のないレベルの精度での解析を行うものである。
【００２０】
なお、本明細書において、「談話」とは１人以上の話者による発話行為を指し、例えば、１人で話す講演会でのスピーチ等や、上述したようなコールセンターのオペレータ等と顧客とのやり取り、複数人での電話会議やテレビ会議、その他の複数人での会話・対話が含まれる。
【００２１】
図２は、本実施の形態における談話の例および談話セマンティクスの概念について示した図である。図２の例では、コールセンターのオペレータと顧客とのやり取りからなる談話の例を示している。左側の発話はオペレータの発話であり、右側は顧客の発話を示している。本実施の形態では、各話者の発話１文を「ステートメント」と呼ぶものとする。また、話者毎の連続したステートメントのまとまりを「ブロック」と呼ぶものとする（同一話者の連続したステートメントでも時間的に間隔が空いた場合は別のブロックとなる）。
【００２２】
図２において、「フロー」とは、各ステートメントの意味内容を端的に示す情報である。この情報をトレースすることによって談話の流れを把握することができる。例えば、図２のオペレータのステートメントにおいて、最初の“はい。”はフローが“挨拶”になっているのに対し、次の“はい。”ではフローが“相槌”となっている。このように、談話の状況（コンテキスト）に応じて、同じ文言のステートメントであってもフローが異なるものとなる場合がある。
【００２３】
また、図２において、「固有表現」とは、談話の内容を個別に特徴付ける表現であり、例えば、図２のコールセンターでのやり取りの談話では、ＩＤや人名、企業名、電話番号、所在地などの固有名詞等が該当する。また、「セグメント」とは、ブロック毎の談話の内容が共通する（結束する）ものをまとめてセグメント化したものである。上記の「フロー」、「固有表現」、「セグメント」についての情報は、談話構造の解析結果として「談話セマンティクス」の構成要素となる。
【００２４】
［システム構成］
図１は、本発明の一実施の形態である談話構造解析システムの構成例の概要について示したブロック図である。談話構造解析システム１は、サーバやＰＣ（Personal Computer）等のコンピュータシステムによって構成され、例えば、ソフトウェアプログラムによって実装される前処理部１０、フロー解析部２０、形態素解析部３０、固有表現解析部４０、結束性解析部５０、および対話簡約部６０の各部と、フロー解析ルール２２、および固有表現解析ルール４２の各テーブルを有し、音声認識エンジン２によって談話の内容がテキスト化された談話データ１００を入力として、談話構造の解析を行って談話セマンティクス２００を出力する。
【００２５】
なお、音声認識エンジン２には既存のものを利用することができる。本実施の形態の談話構造解析システム１は、上述したように、談話データ１００のノイズ（音声認識エンジン２による認識ミス等）に強いという特徴を有するが、音声認識エンジン２の認識率が高いほうがより精度の高い談話構造の解析を行うことが可能であることはいうまでもない。
【００２６】
談話構造解析システム１の前処理部１０は、談話データ１００の入力を受けて、必要に応じて、他の各部での処理が可能なようにデータのレイアウト変換などの前処理を行う機能を有する。ここでは、例えば、話者毎に連続したステートメントをブロックとしてまとめて、各ブロックおよび各ステートメントに順序を示すシーケンス番号（ＩＤ）を割り振ったり、各ブロックの話者のデータを抽出・設定したりなどの処理を行う。なお、談話データ１００は、例えば、ＸＭＬ（eXtended Markup Language）などを利用したデータ構造として表される。
【００２７】
フロー解析部２０は、前処理部１０による前処理後の談話データ１００に対して、フロー解析ルール２２に基づくルールベースでのフローの解析を行い、解析結果としてフロー情報２１を出力する機能を有する。フロー情報２１は、談話データ１００内の各ステートメントのＩＤとこれに対応するフローの情報を保持し、例えば、ＸＭＬなどを利用したデータ構造として表される。
【００２８】
このフロー情報２１は、談話構造解析システム１の出力として談話セマンティクス２００に含まれ、必須の構成要素となる。すなわち、談話セマンティクス２００には、少なくとも談話データ１００についてのフローの解析結果としてフロー情報２１が含まれる。なお、フロー解析ルール２２の内容、およびフロー解析部２０での処理の詳細については後述する。
【００２９】
形態素解析部３０は、前処理部１０による前処理後の談話データ１００に対して、形態素（言語における意味を持つ最小の単位）の列に分割して品詞を判別するいわゆる形態素解析を行い、解析結果として形態素情報３１を出力する機能を有する。形態素情報３１は、談話データ１００内の各ステートメントのＩＤとこれに対応する形態素列の情報を保持し、例えば、ＸＭＬなどを利用したデータ構造として表される。
【００３０】
この形態素情報３１は、フロー情報２１と同様に、談話構造解析システム１の出力として談話セマンティクス２００に含まれるとともに、後述する固有表現解析部４０や結束性解析部５０に対する入力となる。すなわち、固有表現解析部４０による固有表現の解析や、結束性解析部５０による結束性の解析（セグメント化）を行わない場合は、形態素解析部３０による形態素解析は不要な場合がある。なお、形態素解析部３０には既存の形態素解析エンジン（例えば、ＭｅＣａｂ（和布蕪）やＣｈａＳｅｎ（茶筌）など）を利用することができる。
【００３１】
固有表現解析部４０は、前処理部１０による前処理後の談話データ１００と、形態素解析部３０から出力された形態素情報３１とに基づいて、固有表現解析ルール４２に基づくルールベースでの固有表現の解析を行い、解析結果として固有表現情報４１を出力する機能を有する。すなわち、固有表現解析部４０での解析処理は、少なくとも形態素解析部３０による形態素解析が行われていることが前提となる。固有表現情報４１は、談話データ１００内の各ステートメントＩＤとこれに対応する固有表現のリストの情報を保持し、例えば、ＸＭＬなどを利用したデータ構造として表される。
【００３２】
この固有表現情報４１は、フロー情報２１と同様に、談話構造解析システム１の出力として談話セマンティクス２００に含まれるが、その後の談話セマンティクス２００を利用するアプリケーション等による利用形態や、求められる談話セマンティクス２００の精度などによっては必要ではない場合もあり得る。従って、固有表現情報４１の出力は必須ではなく、出力の有無をユーザが選択可能としてもよい。なお、固有表現解析ルール４２の内容、および固有表現解析部４０での処理の詳細については後述する。
【００３３】
結束性解析部５０は、前処理部１０による前処理後の談話データ１００と、フロー解析部２０から出力されたフロー情報２１および形態素解析部３０から出力された形態素情報３１に基づいて、各ブロックの結束性の解析を行ってセグメント化し、解析結果として結束性情報５１を出力する機能を有する。すなわち、固有表現解析部４０での解析処理は、少なくとも形態素解析部３０による形態素解析、およびフロー解析部２０によるフローの解析が行われていることが前提となる。結束性情報５１は、談話データ１００内の各ブロックＩＤと対応するセグメントＩＤの情報を保持し、例えば、ＸＭＬなどを利用したデータ構造として表される。
【００３４】
この結束性情報５１は、固有表現情報４１と同様に、談話構造解析システム１の出力として談話セマンティクス２００に含まれるが、その後の談話セマンティクス２００を利用するアプリケーション等による利用形態や、求められる談話セマンティクス２００の精度などによっては必要ではない場合もあり得る。従って、結束性情報５１の出力は必須ではなく、出力の有無をユーザが選択可能としてもよい。なお、結束性解析部５０での処理の詳細については後述する。
【００３５】
対話簡約部６０は、前処理部１０による前処理後の談話データ１００と、フロー解析部２０から出力されたフロー情報２１とに基づいて、談話データ１００から不要表現を削除して談話における意味のある部分を抽出し（以下では抽出された談話データ１００を「簡約」と記載する場合がある）、処理結果として簡約情報６１を出力する機能を有する。すなわち、対話簡約部６０での簡約処理は、少なくともフロー解析部２０によるフローの解析が行われていることが前提となる。簡約情報６１は、例えば、談話データ１００から簡約として抽出された各ステートメントのＩＤと、新たに構成されたブロックや、そのＩＤの情報を保持し、例えば、ＸＭＬなどを利用したデータ構造として表される。
【００３６】
この簡約情報６１は、フロー情報２１と同様に、談話構造解析システム１の出力として談話セマンティクス２００に含まれるが、その後の談話セマンティクス２００を利用するアプリケーション等による利用形態や、求められる談話セマンティクス２００の精度などによっては必要ではない場合もあり得る。従って、簡約情報６１の出力は必須ではなく、出力の有無をユーザが選択可能としてもよい。なお、対話簡約部６０での処理の詳細については後述する。
【００３７】
談話構造解析システム１による解析結果として出力される談話セマンティクス２００は、上述したように、フロー情報２１や、形態素情報３１、固有表現情報４１、結束性情報５１を含んで構成される。このとき、単にこれらのデータの集合を談話セマンティクス２００として取り扱ってもよいし、例えば、これらのデータをＸＭＬを利容した１つのデータ構造に結合してもよい。
【００３８】
［フロー解析］
以下では、フロー解析部２０によるフロー解析の処理の詳細について説明する。図３は、談話データ１００におけるフローとコンテキストの例について示した図である。本実施の形態では、コンテキストは談話の各ブロックに対して設定される。図３の例では、最初のブロック（話者：オペレータ）のコンテキストは“開始”であり、次のブロック（話者：顧客）およびその次のブロック（話者：オペレータ）はともに“陳述”となっている。
【００３９】
図３の例に示すように、本実施の形態では、原則として、対象のブロックのコンテキストとして、異なる話者の直前のブロックの最後のステートメントに設定されたフローを設定する。なお、談話データ１００の先頭のブロックについては直前のブロックがないため、コンテキストとして常に“開始”を設定するものとする。このようにコンテキストを判断することによって、同じ文言のステートメントであっても談話のコンテキストに沿ったフローの解析が可能となる。
【００４０】
図４は、フロー解析ルール２２の例について示した図である。フロー解析ルール２２は、ファイルやデータベース等に保持されており、ステートメント中におけるフローを判断するための表現（以下では「フロー表現」と記載する場合がある）と、当該フロー表現とマッチする表現を有するステートメントに対してそのコンテキストに応じて設定するフローのパターン（以下では「フロー定義」と記載する場合がある）との対応について予め指定したリストを保持するテーブルである。
【００４１】
図４の例に示すように、フロー表現は、フローを判断するための手掛かりとなる文字列の正規表現（例えば、“/はい。/”や“/ですか。/”）によって指定する。従って、フロー解析部２０もしくは談話構造解析システム１は、例えば、既存の正規表現ライブラリなどを導入することにより正規表現に必要な処理を行うことができるようにしておく必要がある。
【００４２】
なお、フロー表現として指定する文字列は、例えば、話し言葉において談話の流れ上特徴的となる文頭の挨拶、返事や、助詞、接続詞、文末表現などを指定するのが望ましく、これらを適用の優先度が高い順に指定する。優先度については、例えば、所定の条件により正規表現の複雑度を計算し、複雑度の降順で優先度を設定するようにしてもよい。なお、指定するフロー表現のパターンは、談話構造解析システム１が対象とする談話の種類（例えば、コールセンターでのやり取りや、企業における定例会議など）に応じて異なる場合がある。
【００４３】
各フロー表現に対しては、例えば“flow”のラベルによって、フロー定義を指定する。フロー定義では、対象のステートメントのコンテキストと、当該ステートメントに設定するフロー（例えば、“/はい。/”のフロー表現とマッチするステートメントにおいて、コンテキストが“開始”の場合はフローとして“挨拶”を設定する）を指定する。“flow”のラベルによるフロー定義は、各フロー表現において想定されるコンテキストの種類に応じて複数指定することができる。
【００４４】
また、例えば“default”のラベルによって、対象のステートメントのコンテキストがいずれの“flow”のラベルにも該当しなかった場合に設定するフローであるデフォルトフロー（例えば、“/はい。/”のフロー表現とマッチするステートメントにおいて、当該ステートメントのコンテキストがいずれの“flow”のラベルにもマッチしない場合はフローとして“相槌”を設定する）を指定する。なお、デフォルトフローは、各フロー表現において必ず１つ設定するものとする。
【００４５】
フロー定義の指定は、談話構造解析システム１が対象とする談話の種類に応じて、一般的な談話の流れのパターンとして主要なものを指定するのが望ましい。例えば、コールセンターでのやり取りにおいては、顧客が“苦情”を発した場合はオペレータは“謝罪”する、などのパターンに基づいて、フロー定義を指定することができる。
【００４６】
フロー解析ルール２２では、上述のように、指定するフロー表現や対応するフロー定義の内容が談話構造解析システム１が対象とする談話の種類に応じて異なる場合があるため、談話の種類に応じて適用するフロー解析ルール２２を複数保持して、ユーザが切り換えられるようにするなど、談話の特性に応じて柔軟に対応することも可能である。
【００４７】
なお、上述のように、本実施の形態では、フロー解析ルール２２において品詞の指定は行っていない。すなわち、フロー解析部２０においては品詞の判断を行わないため、フロー解析部２０での解析処理に際して、事前に形態素解析部３０による形態素解析を行う必要はない。なお、より精度を上げるために形態素情報３１を利用して、例えば、フロー解析ルール２２のフロー表現における正規表現を、後述するように形態素情報３１の形態素列（品詞の情報も含む）に対して適用するようにして、より詳細な条件でマッチングを行うようすることも可能である。
【００４８】
図５は、フロー解析部２０におけるフロー解析処理の流れの例を示したフローチャートである。フロー解析部２０は、フロー解析処理を開始すると、まず、前処理部１０による前処理後の談話データ１００の各ステートメントについて処理を繰り返すループ処理を開始する（Ｓ１０１）。各ステートメントについてのループ処理を開始すると、フロー解析ルール２２の各フロー表現について処理を繰り返すループ処理を開始する（Ｓ１０２）。
【００４９】
各フロー表現についてのループ処理を開始すると、対象のステートメントと対象のフロー表現とがマッチするか否かを判定する（Ｓ１０３）。マッチしない場合は次のフロー表現の処理に移る（Ｓ１０８、Ｓ１０２）。一方、マッチする場合は、まず、対象のステートメントについて、当該ステートメントが属するブロックの直前のブロックにおける最終ステートメントに設定されているフローをコンテキストとして設定する（Ｓ１０４）。このとき、図３で示したように、当該ステートメントが属するブロックが談話データ１００の最初のブロックである場合には、コンテキストに“開始”を設定する。
【００５０】
次に、ステップＳ１０４で設定したコンテキストについて、対象のフロー表現におけるフロー定義の”flow”ラベルで指定されたコンテキストとマッチするものがあるか否かを判定する（Ｓ１０５）。マッチするものがある場合には、マッチするフロー定義におけるコンテキストに対応するフローを、対象のステートメントのフローとして設定する（Ｓ１０６）。一方、マッチするものがない場合は、デフォルトフローを対象のステートメントのフローとして設定する（Ｓ１０７）。その後、各フロー表現についてのループ処理を抜ける。
【００５１】
各フロー表現についてのループ処理が終了すると、対象のステートメントにフローが設定されているか否かを判定する（Ｓ１０９）。フローが設定されている場合は何も行わず、また、フローが設定されていない場合は、対象のステートメントに“陳述”のフローを設定して（Ｓ１１０）、次のステートメントの処理に移る（Ｓ１１１、Ｓ１０１）。各ステートメントについてのループ処理が全て終了した場合は、各ステートメントのＩＤとこれに対応するフローの情報をフロー情報２１として出力してフロー解析処理を終了する。
【００５２】
このように、話し言葉を考慮したフロー表現によって各ステートメントとマッチングし、マッチしたステートメントのコンテキストに応じて適切なフローを設定することで、談話データ１００の全体について話し言葉やノイズに影響されにくいフロー解析を行うことができる。
【００５３】
［固有表現解析］
以下では、固有表現解析部４０による固有表現解析の処理の詳細について説明する。図６は、固有表現解析ルール４２の例について示した図である。固有表現解析ルール４２は、ファイルやデータベース等に保持されており、ステートメント中の固有表現を特定するための正規表現と、当該正規表現とマッチする部分から固有表現を特定して抽出するための規則（以下では「固有表現規則」と記載する場合がある）との対応について予め指定したリストを保持するテーブルである。
【００５４】
図６の例に示すように、ステートメント中の固有表現は正規表現によって特定する。従って、固有表現解析部４０もしくは談話構造解析システム１は、例えば、既存の正規表現ライブラリなどを導入することにより正規表現に必要な処理を行うことができるようにしておく必要がある。なお、固有表現解析においては、通常の文字列に対する正規表現だけではなく、形態素情報３１に保持された各ステートメントの形態素列の表現についても判断する必要があるため、正規表現の処理機能を形態素列の情報を判断することができるよう拡張しておく。
【００５５】
例えば、図６の例では、各正規表現中で形態素列の範囲を“（  ）”で指定しており、この部分については文字列ではなく形態素列の情報とマッチングするようにする。１つ目の正規表現の例では、“（＜ｆ：組織＞＋）”の部分は、品詞（ｆ）が“組織”であると解析された１つ以上の形態素列を示しており、“（？：の）？”の部分は、表層形が“の”であると解析された０以上１つ以下の品詞を示している。また、“（＜ｆ：人名，姓＞）”の部分は、品詞が“人名，姓”であると解析された１つの形態素列を示している。この正規表現は、例えば、“ＡＡＡ商事の鈴木”や、“ＡＡＡ商事鈴木”などの表現とマッチする。なお、形態素列の表現については、形態素解析部３０における形態素解析エンジン等の出力仕様によって異なる場合がある。
【００５６】
このとき、対応する固有表現規則において、当該形態素列における１番目の要素（品詞が“組織”の形態素列、例えば“ＡＡＡ商事”）を“企業名”という属性を有する固有表現として特定し、形態素列における２番目の要素（品詞が“人名，姓”の形態素列、例えば“鈴木”）を“人名”という属性を有する固有表現として特定するよう指定している。なお、“（？：  ）”で囲われた部分（例えば、“の”）については対象の形態素列の要素に含まれないものとして取り扱う。
【００５７】
図６の２つ目の正規表現の例では、品詞は特に考慮せずに通常の正規表現によって指定しており、“０３−１２３４−５６７８”などの電話番号の表現にマッチする。このとき、対応する固有表現規則において、当該形態素列における１番目の要素（この例で要素は“０３−１２３４−５６７８”等の１つしかない）を“電話番号”という属性を有する固有表現として特定するよう指定している。
【００５８】
なお、正規表現によって特定される固有表現の文字列は、例えば、談話の内容を個別に特徴付ける固有名詞や、数値等からなる文字列などを指定するのが望ましい。また、解析結果として、ある文字列が複数の固有表現に含まれるという場合もあり得る。
【００５９】
固有表現解析ルール４２には、上述のように、固有表現を特定するための正規表現と固有表現規則との対応のリストを予め指定しておくが、フロー解析ルール２２と同様に、指定する正規表現や対応する固有表現規則については、談話構造解析システム１が対象とする談話の種類に応じて異なるものを設定したり、談話の種類に応じて適用する固有表現解析ルール４２をユーザが切り換えたりなど、談話の特性に応じて柔軟に対応することが可能である。
【００６０】
図７は、固有表現解析部４０における固有表現解析処理の流れの例を示したフローチャートである。固有表現解析部４０は、固有表現解析処理を開始すると、まず、談話データ１００の各ステートメントについて処理を繰り返すループ処理を開始する（Ｓ２０１）。各ステートメントについてのループ処理を開始すると、固有表現解析ルール４２の固有表現を特定するための各正規表現について処理を繰り返すループ処理を開始する（Ｓ２０２）。
【００６１】
各正規表現についてのループ処理を開始すると、対象のステートメントに対応する形態素情報３１内の各形態素列と、対象の正規表現とがマッチするか否かを判定する（Ｓ２０３）。マッチしない場合は次の正規表現の処理に移る（Ｓ２０５、Ｓ２０２）。一方、マッチする場合は、対象の正規表現に対応する固有表現規則を適用して固有表現を特定して抽出し（Ｓ２０４）、次の正規表現の処理に移る（Ｓ２０５、Ｓ２０２）。
【００６２】
各正規表現についてのループ処理が全て終了した場合は、次のステートメントの処理に移る（Ｓ２０６、Ｓ２０１）。各ステートメントについてのループ処理が全て終了した場合は、各ステートメントのＩＤとこれに対応する固有表現のリストの情報を固有表現情報４１として出力して固有表現解析処理を終了する。
【００６３】
このように、形態素列の品詞を考慮した正規表現によるマッチングと形態素列の抽出を行うことで、例えば助詞の省略などの話し言葉特有の文法を考慮した固有表現解析を行うことができる。
【００６４】
［結束性解析］
以下では、結束性解析部５０による結束性解析の処理の詳細について説明する。図８は、結束性解析の例について示した図である。結束性解析処理では、まず、上段の図に示すように、談話データ１００における全てのブロックを１つのセグメントとして設定する。
【００６５】
その後、まず、セグメントの分割処理を行う。分割処理では、各ステートメントについてフロー情報２１において特定の種別のフローが設定されているものを判別し、当該ステートメントが属するブロックにおいてセグメントを分割する。ここで、判別するフローの種別は、談話の切れ目や内容が切り替わる際に出現すると推測されるフローであることが望ましい。
【００６６】
例えば、コールセンターにおけるやり取りを始めとする複数人の談話の場合は、質問とそれに対する回答等の応答によって談話が進む場合が多いため、フローが“質問”のステートメントにおいて内容が切り替わることが多いと考えられる。従って、本実施の形態では、フロー情報２１に基づいてフローが“質問”のステートメント（以下では“質問ステートメント”と記載する場合がある）を判別し、図８の中段の図に示すように、質問ステートメントが出現するたびにセグメントを分割するものとする。
【００６７】
その後、セグメントの統合処理を行う。統合処理では、各セグメントについて予め定められた統合条件に該当する質問ステートメントを有する場合に、当該質問ステートメントを有するセグメントを直前のセグメントと統合する。ここで、統合条件は、当該質問ステートメントを有するセグメントについて以前のセグメントから内容が継続している（以前のセグメントと結束性が高い）と推測させる表現の指定である。
【００６８】
統合条件としては、例えば、当該質問ステートメントについて、直前の質問ステートメントと共通する単語（固有名詞）がある場合や、指示詞を含む場合などが挙げられる。これらの統合条件に該当する質問ステートメントを有するセグメントは以前のセグメントと結束性が高いと判断し、図８の下段の図に示すように、直前のセグメントと統合する。なお、統合処理については、統合可能なセグメントがなくなるまで繰り返すものとする。
【００６９】
図９は、上記の結束性解析部５０における結束性解析処理の流れの例を示したフローチャートである。結束性解析部５０は、結束性解析処理を開始すると、まず、談話データ１００の全てのブロックを１つのセグメントに設定する（Ｓ３０１）。具体的には、例えば、全てのブロックにセグメントＩＤの初期値を割り当てるなどによって設定する。その後、セグメントの分割処理として、談話データ１００の各ブロックについて処理を繰り返すループ処理を開始する（Ｓ３０２）。
【００７０】
各ブロックについてのループ処理を開始すると、対象のブロックに質問ステートメントが含まれているか否か（フローが“質問”のステートメントがあるか否か）を判定する（Ｓ３０３）。質問ステートメントが含まれている場合は、対象のブロックと直前のブロックとの間でセグメントを分割する（Ｓ３０４）。具体的には、例えば、対象のブロック以降の全てのブロックに次のセグメントＩＤを割り当てるなどによって分割する。その後、次のブロックの処理に移る（Ｓ３０５、Ｓ３０２）。
【００７１】
各ブロックについてのループ処理（分割処理）が終了した場合は、次に、セグメントの結合処理として、上記の分割処理で分割した各セグメントについて処理を繰り返すループ処理を開始する（Ｓ３０６）。各セグメントについてのループ処理を開始すると、対象のセグメントに上記の統合条件に該当する質問ステートメントがあるか否かを判定する（Ｓ３０７）。
【００７２】
統合条件に該当する質問ステートメントがある場合は、対象のセグメントと直前のセグメントとを統合する（Ｓ３０８）。具体的には、例えば、対象のセグメントに含まれる各ブロックのセグメントＩＤを直前のセグメントのセグメントＩＤに更新するなどによって統合する。このとき、以降の各セグメントに含まれる各ブロックのセグメントＩＤを順次繰り上げてもよい。その後、次のセグメントの処理に移る（Ｓ３０９、Ｓ３０６）。各セグメントについてのループ処理（統合処理）が終了した場合は、各ブロックのＩＤと対応する（各ブロックが含まれる）セグメントのＩＤのリストの情報を結束性情報５１として出力して、結束性解析処理を終了する。
【００７３】
これにより、フロー解析によって得られたフロー情報２１に基づいて談話データ１００内の各ステートメントをセグメント化し、談話セマンティクス２００を利用する種々のアプリケーションに対する有用な情報とすることができる。
【００７４】
［対話簡約］
以下では、対話簡約部６０による対話簡約の処理の詳細について説明する。図１０は、対話簡約の例について示した図である。対話簡約処理では、フロー解析部２０によって解析された各ステートメントのフローの情報に基づいて、談話データ１００から相槌や挨拶等の不要表現を削除し、その他の部分を談話における本質的な部分として抽出する。
【００７５】
図１０の例に示すように、上段のフロー解析が行われた談話データ１００に対して、フローが“挨拶”、“相槌”、“定型”と判定されたステートメントを不要表現として削除し、さらに、同じ発話者が続くブロックを連結して１つのブロックに再構成することによって、下段に示すような簡約を得ることができる。なお、本実施の形態では不要表現であると判断するフローを“挨拶”、“相槌”、“定型（談話の内容と直接の関わりなく使用される定型的な表現を示すフロー）” と定義しているが、談話の種類に応じて不要表現と判断するフローの定義を適宜変更してもよい。
【００７６】
図１１は、上記の対話簡約部６０における対話簡約処理の流れの例を示したフローチャートである。対話簡約部６０は、対話簡約処理を開始すると、まず、談話データ１００の各ステートメントについて処理を繰り返すループ処理を開始する（Ｓ４０１）。各ステートメントについてのループ処理を開始すると、対象のステートメントについてフロー情報２１を参照し、フローが“挨拶”、“相槌”、“定型”のいずれかに該当するか否かを判定する（Ｓ４０２）。
【００７７】
フローがいずれにも該当しない場合は、対象のステートメントは不要表現ではないとして、この情報を識別するため対象のステートメントに対して簡約フラグを設定する（Ｓ４０３）。本実施の形態では不要表現ではないステートメントに簡約フラグを設定するものとしているが、逆に、ステップＳ４０２において対象のステートメントがいずれかのフローに該当する場合に、不要表現であるとして不要表現フラグを設定するようにしてもよい。その後、次のステートメントの処理に移る（Ｓ４０４、Ｓ４０１）。
【００７８】
各ステートメントについてのループ処理が終了した場合は、簡約フラグが設定されたステートメント（不要表現を削除した残りのステートメント）によってブロックを再構成する（Ｓ４０５）。ここでは、不要表現が削除されたことにより同じ発話者のブロックが連続することになる場合に、これらを結合して１つのブロックとする（例えば、図１０の下段の談話データ１００における最終ブロック）。このとき例えば、結合したブロックが所定の長さよりも長くなる場合は、分割して適当な長さの複数のブロックとしてもよい。ブロックを再構成した後、ブロックＩＤを採番し直すようにしてもよい。その後、簡約フラグが設定された各ステートメントのＩＤと、再構成したブロックの情報を簡約情報６１として出力して対話簡約処理を終了する。
【００７９】
これにより、談話データ１００の内容をできるだけ忠実に、かつ本質的な部分を漏らさずに圧縮してデータ量を削減することができ、その後の談話セマンティクス２００を利用する種々のアプリケーションにおける分析効率や利用効率を向上させることができる。
【００８０】
なお、上述の各処理によって出力された談話セマンティクス２００に含まれるフロー情報２１、固有表現情報４１、結束性情報５１、簡約情報６１については、ユーザが内容を参照して適宜修正することが可能なインタフェースを設けてもよい。
【００８１】
以上に説明したように、本実施の形態の談話構造解析システム１によれば、フロー解析ルール２２や固有表現解析ルール４２などによるルールベースでの解析により、話し言葉を含む談話データ１００について、その一部の文字列や形態素から意味を推測して、談話データ１００のステートメント全体について、フロー解析、固有表現解析、結束性解析、対話簡約などを行って、種々のアプリケーション等によって利用可能な談話セマンティクス２００を生成することが可能となる。
【００８２】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００８３】
本発明は、音声認識処理により得られた談話データの構造を解析する談話構造解析システムおよび談話構造解析プログラムに利用可能である。
【符号の説明】
【００８４】
１…談話構造解析システム、２…音声認識エンジン、
１０…前処理部、
２０…フロー解析部、２１…フロー情報、２２…フロー解析ルール、
３０…形態素解析部、３１…形態素情報、
４０…固有表現解析部、４１…固有表現情報、４２…固有表現解析ルール、
５０…結束性解析部、５１…結束性情報、
６０…対話簡約部、６１…簡約情報、
１００…談話データ、２００…談話セマンティクス。
【図１】
0005495968.tif 000002
【図２】
0005495968.tif 000003
【図３】
0005495968.tif 000004
【図４】
0005495968.tif 000005
【図５】
0005495968.tif 000006
【図６】
0005495968.tif 000007
【図７】
0005495968.tif 000008
【図８】
0005495968.tif 000009
【図９】
0005495968.tif 000010
【図１０】
0005495968.tif 000011
【図１１】
0005495968.tif 000012