(57)【要約】【課題】論理構造を持たないテキストに対する探求的なアクセスを可能にするテキスト処理装置、テキスト処理方法およびプログラムを提供する。【解決手段】実施形態のテキスト処理装置は、生成部（話題構造モデル生成器１０）と、リスト表示部（話題アウトライナ２０）と、を備える。生成部は、入力されたテキストを解析して、前記テキストに含まれる複数の話題間の従属関係を示す情報と、前記テキストに含まれる複数の話題間の前後関係を示す情報と、を含む話題構造情報を生成する。リスト表示部は、前記話題構造情報に基づき、各々が前記テキストに含まれる話題に対応した複数のノードであって、各ノードが当該ノードに対応する話題と他の話題との従属関係を表したラベルを持つ複数のノードを、各ノードに対応する話題間の前後関係に従って配列した話題構造リストをディスプレイに表示させる。【選択図】図３
2015088061.tif 000002
【特許請求の範囲】
【請求項１】
入力されたテキストを解析して、前記テキストに含まれる複数の話題間の従属関係を示す情報と、前記テキストに含まれる複数の話題間の前後関係を示す情報と、を含む話題構造情報を生成する生成部と、
前記話題構造情報に基づき、各々が前記テキストに含まれる話題に対応した複数のノードであって、各ノードが当該ノードに対応する話題と他の話題との従属関係を表したラベルを持つ複数のノードを、各ノードに対応する話題間の前後関係に従って配列した話題構造リストをディスプレイに表示させるリスト表示部と、を備えるテキスト処理装置。
【請求項２】
前記話題構造リストに含まれる各ノードは、当該ノードに対応する話題が他の話題に従属する話題である場合、当該ノードに対応する話題を表す話題名と、当該ノードに対応する話題の従属先の他の話題を表す話題名とを所定の記号を挟んで並べることで、当該ノードに対応する話題と他の話題との従属関係を表した前記ラベルを持つ、請求項１に記載のテキスト処理装置。
【請求項３】
前記リスト表示部は、前記ディスプレイに表示されている前記話題構造リスト内のノードであって、他の話題が従属されている話題に対応するノードを対象として第１の操作が行われた場合、当該第１の操作の対象となったノードを削除するとともに、当該第１の操作の対象となったノードに対応する話題に従属する他のすべての話題に各々対応するすべてのノードを追加した新たな前記話題構造リストを前記ディスプレイに表示させる、請求項１に記載のテキスト処理装置。
【請求項４】
前記リスト表示部は、前記ディスプレイに表示されている前記話題構造リスト内のノードであって、他の話題に従属している話題に対応するノードを対象とした第２の操作が行われた場合、当該第２の操作の対象となったノードを含め、当該第２の操作の対象となったノードの従属先である他の話題に従属するすべての話題に各々対応するすべてのノードを削除するとともに、当該第２の操作の対象となったノードの従属先である他の話題に対応するノードを追加した新たな前記話題構造リストを前記ディスプレイに表示させる、請求項１に記載のテキスト処理装置。
【請求項５】
前記生成部は、前記テキストに含まれる２つの話題を話題Ａおよび話題Ｂとしたときに、前記テキストにおける予め定めたテキスト単位を処理単位として、前記テキストにおいて話題Ａに関する記述が最初に出現したテキスト単位を検知し、検知したテキスト単位において、話題Ａに関する記述よりも前方に話題Ｂに関する記述が存在する場合に、話題Ａは話題Ｂに従属する話題であると判定する、請求項１に記載のテキスト処理装置。
【請求項６】
前記生成部は、前記テキストに含まれる２つの話題を話題Ａおよび話題Ｂとしたときに、前記テキストにおいて話題Ａに関する記述が最初に出現した位置と、前記テキストにおいて話題Ｂに関する記述が最初に出現した位置とを比較することで、話題Ａと話題Ｂの前後関係を判定する、請求項１に記載のテキスト処理装置。
【請求項７】
前記生成部は、前記テキストに含まれる複数の話題のそれぞれについて、前記テキスト内において当該話題に関する記述が最初に現れた位置から最後に現れた位置までの範囲である話題分布範囲を検出し、
前記話題構造情報は、前記テキストに含まれる複数の話題それぞれの前記話題分布範囲を示す情報をさらに含む、請求項１に記載のテキスト処理装置。
【請求項８】
前記生成部は、前記話題分布範囲の大きさが予め定めた上限を超えている話題を、前記上限以下の大きさの前記話題分布範囲を持つ複数の話題に分割する、請求項７に記載のテキスト処理装置。
【請求項９】
前記生成部は、前記話題分布範囲の中に当該話題に関する記述を含まない文が所定数以上連続するブランクを含む話題を、前記ブランクよりも前方の前記話題分布範囲を持つ話題と、前記ブランクよりも後方の前記話題分布範囲を持つ話題とに分割する、請求項７に記載のテキスト処理装置。
【請求項１０】
前記ディスプレイに表示されている前記話題構造リスト内の任意のノードを対象とした第３の操作が行われた場合に、当該第３の操作の対象となったノードに対応する話題の前記話題分布範囲を要約対象として前記テキストを要約し、要約結果である要約テキストを前記ディスプレイにさらに表示させる要約表示部をさらに備える、請求項７に記載のテキスト処理装置。
【請求項１１】
前記要約表示部は、前記ディスプレイに表示されている前記要約テキストの中で任意の位置および要約率を指定する第４の操作が行われた場合、指定された位置を前記話題分布範囲に含むすべての話題の前記話題分布範囲を合成した合成範囲、または、指定された位置を前記話題分布範囲に含むすべての話題の前記話題分布範囲のうち予め定めた規則に従って選択された選択範囲を新たな要約対象として前記テキストを指定された要約率で要約し、前記ディスプレイに表示させる前記要約テキストを更新する、請求項１０に記載のテキスト処理装置。
【請求項１２】
前記要約表示部は、前記テキストにおける予め定めたテキスト単位を処理単位とし、前記テキスト内の要約対象に含まれるテキスト単位のそれぞれについて、文に含まれる話題に関する記述をすべて検出して、検出した記述に対応する各話題の重要度に応じて当該テキスト単位の重要度を判定し、判定したテキスト単位の重要度に応じて要約対象に含まれるテキスト単位の中で削除または追加するテキスト単位を選択することで、前記テキストを要約する、請求項１０に記載のテキスト処理装置。
【請求項１３】
話題の重要度は、当該話題に従属する他の話題の数が多いほど高い重要度となる、請求項１２に記載のテキスト処理装置。
【請求項１４】
テキスト処理装置において実行されるテキスト処理方法であって、
前記テキスト処理装置の生成部が、入力されたテキストを解析して、前記テキストに含まれる複数の話題間の従属関係を示す情報と、前記テキストに含まれる複数の話題間の前後関係を示す情報と、を含む話題構造情報を生成する工程と、
前記テキスト処理装置のリスト表示部が、前記話題構造情報に基づき、各々が前記テキストに含まれる話題に対応した複数のノードであって、各ノードが当該ノードに対応する話題と他の話題との従属関係を表したラベルを持つ複数のノードを、各ノードに対応する話題間の前後関係に従って配列した話題構造リストをディスプレイに表示させる工程と、を含むテキスト処理方法。
【請求項１５】
コンピュータに、
入力されたテキストを解析して、前記テキストに含まれる複数の話題間の従属関係を示す情報と、前記テキストに含まれる複数の話題間の前後関係を示す情報と、を含む話題構造情報を生成する機能と、
前記話題構造情報に基づき、各々が前記テキストに含まれる話題に対応した複数のノードであって、各ノードが当該ノードに対応する話題と他の話題との従属関係を表したラベルを持つ複数のノードを、各ノードに対応する話題間の前後関係に従って配列した話題構造リストをディスプレイに表示させる機能と、を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、テキスト処理装置、テキスト処理方法およびプログラムに関する。
【背景技術】
【０００２】
従来、テキストに対する探求的なアクセスを可能にする技術として、アウトライナと呼ばれるソフトウェアを利用してテキストを処理することが知られている。アウトライナは、テキストの骨格構造を表示し、さらにユーザがその構造の任意要素を選ぶと、テキストの該当箇所を開くことのできるソフトウェアの総称である。
【０００３】
ただし、従来のアウトライナは、テキストに対して予め与えられた章や節などの論理構造を、テキストの骨格構造として扱うものが一般的である。このため、論理構造を持たないテキストに対する処理を行うことが困難であり、改善が求められている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】ＯｍｎｉＯｕｔｌｉｎｅｒ  ＰＲＯ  Ｍａｎｕａｌ  Ｖｅｒｓｉｏｎ３．０、［ｏｎｌｉｎｅ］、Ｔｈｅ  Ｏｍｎｉ  Ｇｒｏｕｐ、［平成２５年１０月２５日検索］、インターネット＜ＵＲＬ：http://downloads2.omnigroup.com/software/MacOSX/Manuals/OmniOutliner-3.0-Manual.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、論理構造を持たないテキストに対する探求的なアクセスを可能にするテキスト処理装置、テキスト処理方法およびプログラムを提供することである。
【課題を解決するための手段】
【０００６】
実施形態のテキスト処理装置は、生成部と、リスト表示部と、を備える。生成部は、入力されたテキストを解析して、前記テキストに含まれる複数の話題間の従属関係を示す情報と、前記テキストに含まれる複数の話題間の前後関係を示す情報と、を含む話題構造情報を生成する。リスト表示部は、前記話題構造情報に基づき、各々が前記テキストに含まれる話題に対応した複数のノードであって、各ノードが当該ノードに対応する話題と他の話題との従属関係を表したラベルを持つ複数のノードを、各ノードに対応する話題間の前後関係に従って配列した話題構造リストをディスプレイに表示させる。
【図面の簡単な説明】
【０００７】
【図１】図１は、テキスト処理装置の出力としてディスプレイに表示される表示画面の画面構成例を示す図である。
【図２−１】図２−１は、サンプルテキストを示す図である。
【図２−２】図２−２は、サンプルテキストを示す図である。
【図３】図３は、テキスト処理装置の全体構成を示すブロック図である。
【図４】図４は、話題構造モデルの一例を示す図である。
【図５】図５は、話題構造モデル生成器の処理手順の一例を示すフローチャートである。
【図６】図６は、話題構造モデルに基づいて生成した話題構造リストの初期状態を示す図である。
【図７】図７は、初期状態生成部の処理手順の一例を示すフローチャートである。
【図８】図８は、任意のＧＵＩノードに対して開く操作が行われた場合における話題構造操作部の処理手順の一例を示すフローチャートである。
【図９】図９は、任意のＧＵＩノードに対して閉じる操作が行われた場合における話題構造操作部の処理手順の一例を示すフローチャートである。
【図１０】図１０は、ＧＵＩノードの開閉操作が行われた場合におけるアウトライナウィンドウの画面遷移の一例を示す図である。
【図１１】図１１は、要約要求部の処理手順の一例を示すフローチャートである。
【図１２】図１２は、本文ウィンドウに表示されるテキストの要約率を変更する操作方法をまとめた図である。
【図１３】図１３は、最密優先アルゴリズムに基づく適用範囲調整を行う場合の適用範囲調整部の処理手順の一例を示すフローチャートである。
【図１４】図１４は、重み付き合成アルゴリズムに基づく適用範囲調整を行う場合の適用範囲調整部の処理手順の一例を示すフローチャートである。
【図１５】図１５は、文削除処理を行う場合の重要文選択部の処理手順の一例を示すフローチャートである。
【図１６】図１６は、文追加処理を行う場合の重要文選択部の処理手順の一例を示すフローチャートである。
【図１７】図１７は、文のスコアを計算する場合の重要文選択部の処理手順の一例を示すフローチャートである。
【図１８】図１８は、話題構造モデル生成器の処理手順の変形例を示すフローチャートである。
【図１９】図１９は、テキスト処理装置のハードウェア構成を説明する図である。
【発明を実施するための形態】
【０００８】
以下、実施形態のテキスト処理装置、テキスト処理方法およびプログラムを、図面を参照して詳細に説明する。以下で示す実施形態は、主に、コールセンターでの通話応対や会議の経過などを記録したテキストを処理対象とする例である。
【０００９】
コールセンターでの通話応対において、同じ顧客との通話応対が複数回にわたることがある。この場合、同じ顧客に応対するオペレータがいつも同じであるとは限らないが、顧客は「この前教えてもらったミルクアレルギーの話だけど・・・」など、それまでの通話内容の文脈に基づく質問をすることがある。この場合、コールセンター側では、顧客満足度の観点から、このような質問に対しても適切に応答することが求められる。そのためには、顧客に応対するオペレータに、それまでの応対内容を理解させておく必要がある。
【００１０】
このような状況と類似する例として、例えば企業の開発定例会議など、複数回にわたって開催される会議がある。２回目以降の会議では、前回までの会議で交わされた議論の内容を踏まえて議論が展開されることが多い。しかし、それまでの会議に参加していない人や、会議に参加はしていたが議論の内容をはっきりと思い出せない人などが出てくることがある。これらの人を救済するには、やはり、それまでの会議で交わされた議論の内容をこれらの人に理解させておく必要がある。
【００１１】
これらの課題に対し、過去のやり取りをテキスト化して記録（以下、この記録を過去ログという。）し、コールセンターでの通話応対中や会議中に、オペレータあるいは会議参加者が、いつでも過去ログを読めるように提示しておくというアプローチが考えられる。この場合、過去ログは、通話応対や会議の進行の妨げにならないように、オペレータあるいは会議参加者が必要なポイントをすばやく理解できるようになっていることが望まれる。
【００１２】
しかし、どこがポイントとなるかは、通話応対や会議進行の展開や、情報を必要とするオペレータあるいは会議参加者の知識などによっても異なるため、必要となるポイントを事前に予見することはできない。したがって、情報を必要とするオペレータあるいは会議参加者自身が、過去ログの中から必要なポイントをすばやく見つけ出し、その内容をすばやく理解できるようにする仕組みが求められる。
【００１３】
本実施形態では、テキストの話題構造を用いたアウトライナによる解決方法を提案する。アウトライナは、テキストの骨格構造を表示し、さらにユーザがその構造の任意要素を選ぶと、テキストの該当箇所を開くことのできるソフトウェアの総称である。既存ソフトウェアの例として、OmniOutlinerやMicrosoft（R）Wordなどがある。ただし、これらのアウトライナは、テキストに対して予め与えられた章や節などの論理構造に基づいて処理を行う。それに対して実施形態では、コールセンターや会議などでの人間のやりとりをテキスト化したものを処理の対象とするため、章や節などの予め与えられた論理構造は存在しない。その代わりにテキストの話題構造を用いる。
【００１４】
話題構造は目に見えないものである。本実施形態では、仮説に基づいて検出した話題間の従属関係と前後関係に基づいて構成する話題構造モデルと、この話題構造モデルを用いたアウトライナを備えたテキスト処理装置を提案する。
【００１５】
まず、本実施形態のテキスト処理装置の出力としてディスプレイに表示される表示画面の一例について、図１を参照して説明する。
【００１６】
図１は、本実施形態のテキスト処理装置の出力としてディスプレイに表示される表示画面の画面構成例を示す図である。図１（ａ）に例示する表示画面１００は、アウトライナウィンドウ１０１と本文ウィンドウ１０２とから構成される。アウトライナウィンドウ１０１は、入力されたテキストの話題構造を示す話題構造リストを表示し、さらにテキストの本文に探求的アクセスができるインタラクティブな操作を提供する。本文ウィンドウ１０２は、入力されたテキストの本文を表示する。この本文ウィンドウ１０２を用いて、テキストの要約を表示することが可能である。
【００１７】
例えば、図１（ａ）に示すように、テキストの話題構造を示すものとしてアウトライナウィンドウ１０１に表示された話題構造リストの項目群（以下、これらの各項目をＧＵＩノードという。）のいずれかを選択すると、選択されたＧＵＩノード（図１（ａ）の１０５）で示される話題に関するテキストの本文が、本文ウィンドウ１０２に表示される。この際、そのＧＵＩノードで示される話題に関するテキストの本文の文量が本文ウィンドウ１０２のサイズに比べて大きければ、テキストの本文が要約されて本文ウィンドウ１０２に表示される。図１（ａ）の本文ウィンドウ１０２は、入力されたテキストの［アレルギー］に関する文のうち、重要でない文が除去された要約テキストを表示した例を示している。また、本文ウィンドウ１０２に表示するテキストの要約率は、例えば、本文ウィンドウ１０２の右上に設けられた「＋」ボタン１０３や「−」ボタン１０４の操作、あるいはマウスホイール操作などによって、変更することができる。
【００１８】
図１（ａ）に示した表示画面１００は、アウトライナウィンドウ１０１と本文ウィンドウ１０２の２つのウィンドウを同時に表示可能なサイズのディスプレイを使用することを想定している。しかし、例えば携帯端末のディスプレイのように、画面サイズが小さいためにウィンドウ領域を１つしか確保できないような小型のディスプレイを用いる場合もある。そのような場合には、図１（ｂ）に例示する表示画面２００のように、話題構造リストのＧＵＩノード間に、テキストの本文をインラインで表示するような画面構成とすることも考えられる。ただし、以下では、図１（ａ）に例示する表示画面１００の画面構成例が採用されているものとして説明を続ける。
【００１９】
図２−１および図２−２は、本実施形態での入力例として用いるサンプルテキストを示す図である。このサンプルテキストは、コールセンターでのオペレータと顧客との間のやり取りを題材としている。図の左端に示した数字は、テキスト内でそれぞれの文が出現する順番を示す行番号である。このサンプルテキストの例では、オペレータや顧客によるひとまとまりの発話と捉えることができるテキスト範囲を１つの行としており、行番号１〜４４の順番で対話が続いていることを示している。なお、テキストにおける行の定義はこの例に限られるものではない。例えば、段落の区切りのあるテキストであれば、１つの段落に含まれるテキスト範囲を１つの行としてもよい。また、行の終わりを示す記号を含むテキストであれば、その記号で区切られるテキスト範囲を１つの行としてもよい。
【００２０】
また、図２−１および図２−２に示すサンプルテキストにおいて、行番号の右に付されたＡ，Ｂは、その発話の話者を示しており、Ａがオペレータの発話であることを示し、Ｂが顧客の発話であることを示している。以下では、この図２−１および図２−２に示すサンプルテキストを適宜利用して具体例を例示しながら、本実施形態のテキスト処理装置について説明する。
【００２１】
図３は、本実施形態のテキスト処理装置の全体構成を示すブロック図である。本実施形態のテキスト処理装置は、図３に示すように、話題構造モデル生成器１０（生成部）と、話題アウトライナ２０（リスト表示部）と、インタラクティブ要約器３０（要約表示部）と、を備える。話題アウトライナ２０は、図１（ａ）に例示した表示画面１００におけるアウトライナウィンドウ１０１に対応する処理モジュールである。インタラクティブ要約器３０は、図１（ａ）に例示した表示画面１００における本文ウィンドウ１０２に対応する処理モジュールである。話題構造モデル生成器１０は、話題アウトライナ２０での処理およびインタラクティブ要約器３０での処理に用いられる話題構造モデルＭ（話題構造情報）を生成する処理モジュールである。
【００２２】
話題構造モデル生成器１０は、入力されたテキストＴを解析して話題構造モデルＭを生成する。
【００２３】
話題構造モデルＭは、テキストＴの全体を読まなくても、テキストＴの意味的な話題の構造を理解しやすくするために導入するモデルである。本実施形態の話題構造モデルＭは、特に、話題間の従属関係と、話題間の前後関係とが分かることを重視する。話題間の従属関係とは、ある話題は別のある話題の一部であるという関係である。話題間の前後関係とは、どのような話題がどのような順序で現れたかを示す情報である。
【００２４】
話題間の従属関係は、テキストＴの効率的な読み飛ばしに有効である。話題間の従属関係によって話題Ｙが話題Ｘの一部であるということがユーザに示されているとき、ユーザは、話題Ｘに興味がないと判断できた時点で、話題Ｙに関する記述も読む必要がないことが確定できるからである。また、話題間の従属関係は、話題が生じた理由を理解する上で有効である。話題間の従属関係によって話題Ｙが話題Ｘの一部であるということがユーザに示されているとき、ユーザは話題Ｙは話題Ｘから派生したものであるということが理解できるからである。話題が生じた理由が理解できれば、アウトライナなどでテキストＴを途中から読む場合に文脈を理解しやすくなる。
【００２５】
話題間の前後関係は、テキストＴにおける話題の流れを把握する上で有効である。一般的に、従属関係ほど明確な関係を持たない独立的な話題同士であっても、弱い影響を与えあって、流れを作っている。話題間の前後関係を示すことで、ユーザは、この話題の流れを感じ取ることができるようになる。これもアウトライナなどでテキストＴを途中から読む場合に、ユーザが文脈を理解する助けになる。
【００２６】
本実施形態では、実際のテキストＴにおける話題間の従属関係と前後関係とを、以下のように定義する。
【００２７】
まず、テキストＴに出現する事物それぞれを「話題」とし、話題の事物を表す文字列（主に単語であるが、複数の単語を持つフレーズや文であってもよい）を「話題語」とする。異なる文字列が同じ事物を表している場合、それらは共参照関係にある話題語となる。その中で、最も端的な表現を持つ話題語を、その話題に対応する「話題名」とする。なお、後述する「子話題」に属する話題語は、「親話題」に属する話題語でもあるものとみなす。
【００２８】
また、テキストＴにおいて、ある話題に属する話題語が最初に出現した位置から、同じ話題に属する話題語が最後に出現した位置までの範囲を、その話題がアクティブであった範囲とみなす。この範囲を特に「話題分布範囲」と呼ぶ。
【００２９】
テキストＴにおいて、ある話題に属する話題語が最初に出現した文の先行位置に、他の話題に属する話題語が存在する場合、ある話題は、直前に存在する話題語が属する他の話題に従属するものとみなす。例えば、図２−１に示したサンプルテキストの行番号７の「・・・粉ミルクとしては、レギュラーミルクと・・・」では、話題「レギュラーミルク」が、話題「粉ミルク」に従属するものとみなす。ただし、直前の話題語が属する他の話題が並列構造の関係にある場合は、従属対象としない。例えば、図２−１に示したサンプルテキストの行番号７の「・・・粉ミルクとしては、レギュラーミルクとペプチドミルクが・・・」では、話題「ペプチドミルク」は、話題「レギュラーミルク」には従属せず、話題「粉ミルク」に従属する。なお、話題同士が並列構造の関係にあるか否かを判断する方法としては、例えば、別途用意された知識辞書などを参照して判断する方法などがある。
【００３０】
なお、本実施形態では、テキストＴにおける文を処理単位として話題間の従属関係を判定しているが、話題間の従属関係を判定するための処理単位は、文に限らない。そのほかにも、例えばフレーズやパラグラフなど、予め定めたテキスト単位を処理単位として話題間の従属関係を判定すればよい。
【００３１】
他の話題に従属する話題を、他の話題に対する「子話題」と呼び、他の話題を従属させる話題を、他の話題に対する「親話題」と呼ぶ。また、同じ親話題に従属する話題同士は「兄弟話題」と呼ぶ。上記の例では、話題「レギュラーミルク」と話題「ペプチドミルク」とが兄弟話題である。また、親話題に複数の子話題が直列で従属する場合、それらの子話題群を親話題の「子孫話題」と呼ぶ。
【００３２】
テキストＴにおける話題間の前後関係は、各話題の話題分布範囲を用い、話題分布範囲の前方の端部が出現する位置に基づいて決定する。すなわち、ある話題の話題分布範囲の前方端部が、他の話題の話題分布範囲の前方端部よりも、テキストＴにおける先行位置にある場合、ある話題は他の話題よりも前の話題であるとみなす。
【００３３】
図４は、以上の定義のもと、図２−１および図２−２に示したサンプルテキストを解析して生成した話題構造モデルＭの一例を示す図である。図４に示すように、話題構造モデルＭは、話題従属関係モデルＭ１と話題前後関係モデルＭ２とからなる。図４の例では、話題従属関係モデルＭ１を図の上部に示し、話題前後関係モデルＭ２（の一部）を図の下部に図示している。
【００３４】
話題従属関係モデルＭ１は、話題間の従属関係を木構造によって示している。話題前後関係モデルＭ２は、話題間の前後関係をリスト構造（リストの左ほどテキストの前方で出現することを示す）によって示している。話題を示す各ノード内には、話題名と、行番号を用いた話題分布範囲が表記されている。なお、図４の例では、子孫話題の話題語を除いたときの話題分布範囲を、参考までにノードの直下に併記してある。
【００３５】
図５は、話題構造モデル生成器１０の処理手順の一例を示すフローチャートである。話題構造モデル生成器１０は、入力されたテキストＴを受け取り、例えば図５のステップＳ１０１〜ステップＳ１１２の処理を行うことで、話題構造モデルＭを生成する。
【００３６】
ステップＳ１０１：話題構造モデル生成器１０は、入力されたテキストＴに対して共参照解析を行い、共参照クラスタ群（メンバ数１のクラスタを含む）を獲得する。得られた共参照クラスタ群の各クラスタがそれぞれ１つの話題を示し、そのメンバーが話題語である。ただし、共参照解析の対象は、テキストＴに含まれる単語だけでなく、フレーズや文も含むとする。例えば、図２−１に示したサンプルテキストの行番号１２の「ナッツ系を食べさせると、肌にぶつぶつが出来ます」と行番号１３の「食物アレルギー」は、共参照関係にある。
【００３７】
ステップＳ１０２：話題構造モデル生成器１０は、各話題の話題語の中から話題名を選択する。ここでは、各話題の話題語のうち「ＴＦＩＤＦ値が最大（単語数が２個以上の話題語ならその平均値）」かつ「単語数が最少」の話題語を話題名として選択するものとする。例えば、図２−１に示したサンプルテキストの行番号１０の「３歳の男の子」と、行番号１１の「お兄ちゃん」と、行番号１３の「上のお子様」は、同じ話題の話題語であるが、これらのＴＦＩＤＦ値が同じであるなら、単語数が最も少ない「お兄ちゃん」を話題名として選択する。ただし、上記２つの条件が矛盾する場合は、どちらを優先してもよい。
【００３８】
ステップＳ１０３：話題構造モデル生成器１０は、各話題の重要度を算出する。ここでは、各話題に属する話題語のＴＦＩＤＦ値の平均値を重要度とする。そして、話題構造モデル生成器１０は、求めた重要度が所定の閾値を下回っている話題は破棄し、残った話題については、話題名と話題語群のペアを話題辞書１５（図３参照）に登録する。
【００３９】
ステップＳ１０４：話題構造モデル生成器１０は、入力されたテキストＴの先頭から順に、話題辞書１５に登録されている話題語を１つ取り出す。以下、このステップＳ１０４で取り出した話題語が属する話題を話題Ｘと呼ぶ。
【００４０】
ステップＳ１０５：話題構造モデル生成器１０は、話題Ｘがこれまでに出現していない話題か否かを判定する。そして、判定の結果がＹｅｓであればステップＳ１０６に進み、判定の結果がＮｏであればステップＳ１１２に進む。
【００４１】
ステップＳ１０６：話題構造モデル生成器１０は、話題Ｘの話題名および話題分布範囲を取得して、話題前後関係モデルＭ２のノードとしてリストの末尾に追加する。
【００４２】
ステップＳ１０７：話題構造モデル生成器１０は、ステップＳ１０４で取り出した話題語が出現する文を前方に遡り、他の話題（以下、これを話題Ｙと呼ぶ。）の話題語が存在するか否かを判定する。そして、判定の結果がＮｏであればステップＳ１０８に進み、判定の結果がＹｅｓであればステップＳ１０９に進む。
【００４３】
ステップＳ１０８：話題構造モデル生成器１０は、話題Ｘの話題名および話題分布範囲を取得して、話題従属関係モデルＭ１における他のノードに従属しない独立したルートノードとして、話題従属関係モデルＭ１に追加する。
【００４４】
ステップＳ１０９：話題構造モデル生成器１０は、話題Ｘと話題Ｙとが並列関係か否かを判定する。そして、判定の結果がＮｏであればステップＳ１１０に進み、判定の結果がＹｅｓであればステップＳ１１１に進む。
【００４５】
ステップＳ１１０：話題構造モデル生成器１０は、話題Ｘを話題Ｙの子話題とし、話題Ｘの話題名および話題分布範囲を取得して、話題従属関係モデルＭ１における話題Ｙのノードに従属する子ノードとして、話題従属関係モデルＭ１に追加する。
【００４６】
ステップＳ１１１：話題構造モデル生成器１０は、話題Ｘを話題Ｙの兄弟話題とし、話題Ｘの話題名および話題分布範囲を取得して、話題従属関係モデルＭ１における話題Ｙのノードが従属している親ノードに従属する子ノードとして、話題従属関係モデルＭ１に追加する。
【００４７】
ステップＳ１１２：話題構造モデル生成器１０は、入力されたテキストＴから、話題辞書１５に登録されている話題語をすべて取り出したか否かを判定する。そして、判定の結果がＮｏであればステップＳ１０４に戻って以降の処理を繰り返し、判定の結果がＹｅｓであれば一連の処理を終了する。
【００４８】
話題アウトライナ２０は、図３に示すように、初期状態生成部２１、話題構造操作部２２、および要約要求部２３の３つのサブモジュールを含む。以下、これらの各サブモジュールにおける処理を順に説明する。
【００４９】
初期状態生成部２１は、話題構造モデル生成器１０が生成した話題構造モデルＭに基づき、以下に示す仕様に従って、アウトライナウィンドウ１０１に表示させる話題構造リストの初期状態を生成する。
【００５０】
本実施形態では、アウトライナウィンドウ１０１には、「ＧＵＩノード」をリスト状に配列した話題構造リストを表示させるものとする。そして、話題構造リストにおけるＧＵＩノードの上下関係によって、話題の前後関係が示される。つまり、アウトライナウィンドウ１０１に表示される話題構造リストにおいて、上側に配置されるＧＵＩノードが示す話題は、それよりも下側に配置されるＧＵＩノードが示す話題よりも、テキストＴにおいて前方に出現する話題であることを示している。
【００５１】
また、話題構造リストに含まれる各ＧＵＩノードのラベルとして、そのＧＵＩノードが示す話題の話題名が用いられる。ＧＵＩノードが示す話題が他の話題（親話題）に従属する場合は、そのＧＵＩノードが示す話題の話題名の前方に親話題の話題名が表記され、ファイルシステムのパス表記と同様のスラッシュ区切りのパス表記によって、２つの話題名が示す話題間の従属関係が示される。ＧＵＩノードが示す話題の親話題がさらに他の話題に従属する場合は、親話題の話題名のさらに前方に他の話題の話題名が表記され、スラッシュ区切りのパス表記によって、それらの話題間の従属関係が示される。つまり、直系の祖先を複数持つ話題を示すＧＵＩノードのラベルは、スラッシュで区切られた複数の話題名を含み、最後尾の話題名が、そのＧＵＩノードが示す話題の話題名となる。
【００５２】
図６は、図４に示した話題構造モデルＭに基づいて生成した話題構造リストの初期状態を示す図であり、アウトライナウィンドウ１０１に最初に表示される話題構造リストを示している。話題構造リストの初期状態は、図６に示すように、話題従属関係モデルＭ１のルートノードとなる話題に対応するＧＵＩノードが、話題前後関係モデルＭ２のリスト内における順序に従って列挙された状態である。図６の例では、図４に示した話題構造モデルＭにおいて、話題従属関係モデルＭ１のルートノードとなる話題の話題名「粉ミルク」、「お兄さん」、「アレルギー」、「試供品」をそれぞれラベルとする４つのＧＵＩノードが、この順に列挙されている。
【００５３】
図７は、初期状態生成部２１の処理手順の一例を示すフローチャートである。初期状態生成部２１は、話題構造モデルＭを受け取り、例えば図７のステップＳ２０１〜ステップＳ２０３の処理を行うことで、話題構造の初期状態を生成する。
【００５４】
ステップＳ２０１：初期状態生成部２１は、話題構造モデルＭの話題従属関係モデルＭ１に含まれるすべてのルートノードの話題の話題名を取得する。図４に示した話題構造モデルＭの例では、「粉ミルク」、「お兄さん」、「アレルギー」、「試供品」の４つの話題名が取得される。
【００５５】
ステップＳ２０２：初期状態生成部２１は、話題構造モデルＭの話題前後関係モデルＭ２で示される順序に基づき、ステップＳ２０１で得られた話題名を、話題間の前後関係に従って並べ替える。図４に示した話題構造モデルＭの例では、ステップＳ２０１で取得された「粉ミルク」、「お兄さん」、「アレルギー」、「試供品」の４つの話題名が、この順序に並べ替えられる。
【００５６】
ステップＳ２０３：初期状態生成部２１は、ステップＳ２０１で得られた話題名をそれぞれラベルとする各ＧＵＩノードを、ステップＳ２０２で並べ替えた順序で配列した話題構造リストを、アウトライナウィンドウ１０１に表示させる。これにより、図６に示したような話題構造リストの初期状態が、アウトライナウィンドウ１０１に表示される。
【００５７】
話題構造操作部２２は、話題構造モデル生成器１０が生成した話題構造モデルＭに基づき、以下に示す仕様に従って、ＧＵＩノードの開閉操作に応じた新たな話題構造リストを生成し、アウトライナウィンドウ１０１に表示させる。この話題構造操作部２２の処理により、アウトライナウィンドウ１０１に表示される話題構造リストは、初期状態生成部２１が生成した初期状態から変化する。なお、ＧＵＩノードの開閉とは、話題従属関係モデルＭ１に従ってＧＵＩノードを子話題のＧＵＩノードに展開（開）したり、ＧＵＩノードを親話題のＧＵＩノードに収束（閉）させたりすることをいう。
【００５８】
本実施形態では、初期状態として、図６に示したように、話題従属関係モデルＭ１のルートノードとなる話題に対応するＧＵＩノードのみを配列した話題構造リストがアウトライナウィンドウ１０１に表示される。その後、話題構造リストに含まれる任意のＧＵＩノードを対象としたユーザ操作により、そのＧＵＩノードの開閉状態をトグルさせることができる。
【００５９】
ユーザによって話題構造リストに含まれる任意のＧＵＩノードを開く操作（第１の操作）が行われると、そのＧＵＩノードが表示対象から除去され、代わりに、そのＧＵＩノードが示す話題の子話題を示すＧＵＩノード群が表示対象として追加された新たな話題構造リストが生成され、アウトライナウィンドウ１０１に表示される。この際、話題構造リストに追加されるＧＵＩノード群は、話題構造モデルＭの話題前後関係モデルＭ２で示される順序に従って、新たな話題構造リスト内において、話題の前後関係に応じた位置に挿入される。
【００６０】
一方、ユーザによって話題構造リストに含まれる任意のＧＵＩノードを閉じる操作（第２の操作）が行われると、そのＧＵＩノードと、そのＧＵＩノードが示す話題の兄弟話題を示すすべてのＧＵＩノードとが表示対象から除去され、代わりに、そのＧＵＩノードが示す話題の親話題を示すＧＵＩノードが表示対象として追加された新たな話題構造リストが生成され、アウトライナウィンドウ１０１に表示される。この際、話題構造リストに追加されるＧＵＩノードは、話題構造モデルＭの話題前後関係モデルＭ２で示される順序に従って、新たな話題構造リスト内において、話題の前後関係に応じた位置に挿入される。
【００６１】
図８は、任意のＧＵＩノードに対して開く操作が行われた場合における話題構造操作部２２の処理手順の一例を示すフローチャートである。話題構造操作部２２は、アウトライナウィンドウ１０１に表示されている話題構造リスト内の任意のＧＵＩノードに対して開く操作が行われると、例えば図８のステップＳ３０１〜ステップ３０５の処理を行うことで、アウトライナウィンドウ１０１に表示させる話題構造リストを変化させる。
【００６２】
ステップＳ３０１：話題構造操作部２２は、ユーザが例えば任意のＧＵＩノードに対してマウスカーソルを合わせてクリックするなどの予め定められた操作（第１の操作）を行うと、この操作を受け付ける。ただし、操作対象のＧＵＩノードのラベルにスラッシュ区切りで複数の話題名が表記されている場合は、どの話題名が操作されたかを区別し、操作された話題名が、当該ＧＵＩノードが示す話題の話題名（つまり、ラベルの最後尾に表記された話題名）である場合に限り、以下の処理を実行する。
【００６３】
ステップＳ３０２：話題構造操作部２２は、操作されたＧＵＩノードが示す話題に従属する子話題があるか否かを判定する。そして、判定の結果がＹｅｓであればステップＳ３０３に進み、Ｎｏであれば処理を終了する。
【００６４】
ステップＳ３０３：話題構造操作部２２は、操作されたＧＵＩノードを話題構造リストから削除する。
【００６５】
ステップＳ３０４：話題構造操作部２２は、操作されたＧＵＩノードが示す話題に従属するすべての子話題のＧＵＩノードを話題構造リストに追加する。子話題のＧＵＩノードのラベルには、当該ＧＵＩノードが示す話題（子話題）の話題名の前方に、操作されたＧＵＩノードが示す話題（親話題）の話題名が、スラッシュ区切りのパス表記によって従属関係が示された状態で表記されている。
【００６６】
ステップＳ３０５：話題構造操作部２２は、話題構造モデルＭの話題前後関係モデルＭ２で示される順序に基づき、話題構造リストに含まれるすべてのＧＵＩノードを話題間の前後関係に従って並べ替えて、アウトライナウィンドウ１０１に表示させる。
【００６７】
図９は、任意のＧＵＩノードに対して閉じる操作が行われた場合における話題構造操作部２２の処理手順の一例を示すフローチャートである。話題構造操作部２２は、アウトライナウィンドウ１０１に表示されている話題構造リスト内の任意のＧＵＩノードに対して閉じる操作が行われると、例えば図９のステップＳ４０１〜ステップ４０４の処理を行うことで、アウトライナウィンドウ１０１に表示させる話題構造リストを変化させる。
【００６８】
ステップＳ４０１：話題構造操作部２２は、ユーザが例えば任意のＧＵＩノードに対してマウスカーソルを合わせてクリックするなどの予め定められた操作（第２の操作）を行うと、この操作を受け付ける。ただし、閉じる操作の対象となるＧＵＩノードは、ラベルにスラッシュ区切りで複数の話題名が表記されたものである。話題構造操作部２２は、ＧＵＩノードのラベルに表記された複数の話題名のうち、どの話題名が操作されたかを区別し、操作された話題名が、当該ＧＵＩノードが示す話題の親話題の話題名（つまり、ラベルの最後尾に表記された話題名よりも１つ前の話題名）である場合に限り、以下の処理を実行する。
【００６９】
ステップＳ４０２：話題構造操作部２２は、操作されたＧＵＩノードが示す話題の親話題のＧＵＩノードを話題構造リストに追加する。
【００７０】
ステップＳ４０３：話題構造操作部２２は、操作されたＧＵＩノードと、そのＧＵＩノードが示す話題の兄弟話題を示すすべてのＧＵＩノードを話題構造リストから削除する。
【００７１】
ステップＳ４０４：話題構造操作部２２は、話題構造モデルＭの話題前後関係モデルＭ２で示される順序に基づき、話題構造リストに含まれるすべてのＧＵＩノードを、話題間の前後関係に従って並べ替えて、アウトライナウィンドウ１０１に表示させる。
【００７２】
図１０は、ＧＵＩノードの開閉操作が行われた場合におけるアウトライナウィンドウ１０１の画面遷移の一例を示す図である。
【００７３】
例えば、図１０（ａ）の状態から、ユーザが［粉ミルク］のＧＵＩノードをクリックすると、［粉ミルク］のＧＵＩノードが展開されて、図１０（ｂ）に示すように、［お兄さん］のＧＵＩノードの上方に［粉ミルク／母乳］、［粉ミルク／レギュラーミルク］、［粉ミルク／ペプチドミルク］の３つのＧＵＩノードが配置される。さらに、図１０（ｂ）の状態から、ユーザが［粉ミルク／ペプチドミルク］のＧＵＩノードの“ペプチドミルク”の部分をクリックすると、［粉ミルク／ペプチドミルク］のＧＵＩノードが展開されて、図１０（ｃ）に示すように、［お兄さん］のＧＵＩノードの上方に、［粉ミルク／ペプチドミルク／低アレルゲン］のＧＵＩノードが配置され、［お兄さん］のＧＵＩノードと［アレルギー］のＧＵＩノードとの間に［粉ミルク／ペプチドミルク／味］、［粉ミルク／ペプチドミルク／価格］、［粉ミルク／ペプチドミルク／量］、［粉ミルク／ペプチドミルク／成分］の４つのＧＵＩノードが配置され、［アレルギー］のＧＵＩノードの下方に［粉ミルク／ペプチドミルク／タンパク質］のＧＵＩノードが配置される。
【００７４】
一方、図１０（ｃ）の状態から、ユーザが例えば［粉ミルク／ペプチドミルク／味］のＧＵＩノードの“ペプチドミルク”の部分をクリックすると、［粉ミルク／ペプチドミルク／味］のＧＵＩノードおよび兄弟話題のすべてのＧＵＩノードが［粉ミルク／ペプチドミルク］のＧＵＩノードに収束されて、図１０（ｂ）に示す状態に戻る。さらに、図１０（ｂ）の状態から、ユーザが［粉ミルク／ペプチドミルク］のＧＵＩノードの“粉ミルク”の部分をクリックすると、［粉ミルク／ペプチドミルク］のＧＵＩノードおよび兄弟話題のすべてのＧＵＩノードが［粉ミルク］のＧＵＩノードに収束されて、図１０（ａ）の状態に戻る。
【００７５】
要約要求部２３は、アウトライナウィンドウ１０１に表示された話題構造リストを通じてユーザが指定した話題に関して、その話題分布範囲の全体が本文ウィンドウ１０２に過不足なく収まるように、テキストＴの要約をインタラクティブ要約器３０に対して要求する。テキストＴを要約する処理自体は、要約要求部２３からの要求に応じてインタラクティブ要約器３０が実行し、その結果が、本文ウィンドウ１０２に表示される。
【００７６】
図１１は、要約要求部２３の処理手順の一例を示すフローチャートである。要約要求部２３は、例えば図１１のステップＳ５０１〜ステップＳ５０２の処理を行うことで、インタラクティブ要約器３０に対してテキストＴの要約を要求する。
【００７７】
ステップＳ５０１：要約要求部２３は、例えば、ユーザがコントロールキーを押しながら、話題構造リスト内の任意のＧＵＩノードのラベルに含まれる話題名のいずれかに対してマウスカーソルを合わせてクリックするなど、ある話題に関するテキストＴの要約を指示する操作として予め定められた操作（第３の操作）を行うと、この操作を受け付ける。
【００７８】
ステップＳ５０２：要約要求部２３は、ステップＳ５０１で受け付けた操作で指定された話題の話題分布範囲を要約適用範囲Ｒとして指定するとともに、本文ウィンドウ１０２に収まる文量（文字数または文数）を目標サイズとして指定し、インタラクティブ要約器３０に対してテキストＴの要約を要求する。
【００７９】
インタラクティブ要約器３０は、話題構造モデル生成器１０によって生成された話題構造モデルＭを活用しながら、入力されたテキストＴをインタラクティブに要約して本文ウィンドウ１０２に表示させる。本実施形態のインタラクティブ要約器３０は、特に以下の（１）〜（４）に示す特徴を持つ。
（１）話題アウトライナ２０の要約要求部２３の要求に従って本文ウィンドウ１０２にテキストＴの要約を表示させつつ、その要約率をユーザ操作に応じて動的に変更することができる。
（２）要約率を変更する操作に関しては、テキストＴ全体の要約率を変更する「大域モード」と、テキストＴの中で興味がある部分を中心として局所的な領域だけ要約率を変更する「局所モード」とがある。
（３）局所モードでは、話題構造モデルＭを用いて、なるべく話題が続いている途中で要約率が切り替わらないように、同じ要約率を適用する範囲を自動調整する。
（４）要約処理の文やフレーズの重要文選択の際に、話題構造モデルＭを用いて話題構造に即した重要性評価を行う。
【００８０】
図１２は、本文ウィンドウ１０２に表示されるテキストＴの要約率を変更する操作方法をまとめた図である。なお、図１２に示す操作方法は、操作デバイスとしてマウスを用いた場合の例である。操作デバイスとしてマウス以外のものを利用する場合には、その操作デバイスに適した操作方法を予め定めておけばよい。
【００８１】
ユーザが本文ウィンドウ１０２の右上に設けられた「＋」ボタン１０３にマウスカーソルを合わせてクリックすると、大域モードでの文追加コマンドが発行される。また、ユーザが本文ウィンドウ１０２の右上に設けられた「−」ボタン１０４にマウスカーソルを合わせてクリックすると、大域モードでの文削除コマンドが発行される。なお、これらのユーザ操作は、図３に示した「＋」「−」ボタン操作ｏｐ２に相当する。
【００８２】
また、ユーザが本文ウィンドウ１０２上の注目するテキスト位置にマウスカーソルを合わせて、上向きのマウスホイール操作を行うと、カーソルの位置を中心とした局所モードでの文追加コマンドが発行される。また、ユーザが本文ウィンドウ１０２上の注目するテキスト位置にマウスカーソルを合わせて、下向きのマウスホイール操作を行うと、カーソルの位置を中心とした局所モードでの文削除コマンドが発行される。なお、これらのユーザ操作（第４の操作）は、図３に示したマウスホイール操作ｏｐ１に相当する。
【００８３】
なお、本実施形態では、説明を簡易化するため、テキストＴに対する要約処理として、自動要約処理において最も基本的な処理である文選択処理のみを行うものとする。しかし、フレーズ選択やフレーズ言い換え、文短縮など、自動要約の様々な既存技術を用いてテキストＴの要約を行うことも可能である。なお、文選択に基づく自動要約の代表的な例は、下記の参考文献に開示されている。
参考文献：H．P．Luhn．The  automatic  creation  of  literature  abstracts．IBM  Journal  of  Research  and  Development，Vol.2，No.2，pp159-165，1958．
【００８４】
インタラクティブ要約器３０は、図３に示したように、適用範囲調整部３１および重要文選択部３２の２つのサブモジュールを含む。以下、これらの各サブモジュールにおける処理を順に説明する。
【００８５】
適用範囲調整部３１は、ユーザにより本文ウィンドウ１０２上でマウスホイール操作ｏｐ１（第４の操作）が行われたときに、要約対象にすべき適切なテキスト範囲を決定するサブモジュールである。
【００８６】
同じ話題が続いている途中の位置から異なる要約率で要約処理を開始すると、可読性が低下して話の流れが追いにくくなる。このため、理想的には、話題が切り替わる位置と、要約率を切り替える位置とが一致していることが望ましい。そこで、適用範囲調整部３１は、話題構造モデルＭを参照して、操作に応じた要約率を適用する範囲（要約適用範囲）を話題分布範囲と一致させる調整処理を行う。
【００８７】
ただし、マウスカーソルが置かれたテキスト位置を話題分布範囲に含む話題は複数あるため、要約適用範囲をどの話題分布範囲と一致させるかについて判断が必要である。これについて、本実施形態では、要約適用範囲に一致させる話題分布範囲をどれにするかをユーザに選択させる「手動」と、要約適用範囲に一致させる話題分布範囲をどれにするかをテキスト処理装置が自動選択する「自動」との２種類の方法を用意している。
【００８８】
これらの方法のうち、手動による方法の場合は、例えば、候補となる話題をメニューで表示して、その中からユーザに選択させればよい。一方、自動による方法の場合は、最密優先アルゴリズムに基づく適用範囲調整と、重み付き合成アルゴリズムに基づく適用範囲調整の２種類がある。以下では、これら最密優先アルゴリズムに基づく適用範囲調整と、重み付き合成アルゴリズムに基づく適用範囲調整について、個別に説明する。
【００８９】
図１３は、最密優先アルゴリズムに基づく適用範囲調整を行う場合の適用範囲調整部３１の処理手順の一例を示すフローチャートである。適用範囲調整部３１は、最密優先アルゴリズムに基づく適用範囲調整を行う場合、例えば図１３のステップＳ６０１〜ステップＳ６０５の処理を行うことで、要約適用範囲を調整する。
【００９０】
ステップＳ６０１：適用範囲調整部３１は、本文ウィンドウ１０２上のマウスカーソルが置かれた位置を話題分布範囲に含む話題をすべてリストアップする。
【００９１】
ステップＳ６０２：適用範囲調整部３１は、ステップＳ６０１でリストアップした話題を順に１つ取り出す。
【００９２】
ステップＳ６０３：適用範囲調整部３１は、マウスカーソルが置かれた位置を中心に前後Ｎ語（Ｎは定数）以内のテキスト範囲（以下、密度測定範囲という。）において、ステップＳ６０２で取り出した話題に属する話題語の個数をカウントする。この個数を話題密度と呼ぶ。
【００９３】
ステップＳ６０４：適用範囲調整部３１は、ステップＳ６０１でリストアップした話題のすべてに対して、話題密度のカウントが終了したか否かを判定する。そして、判定の結果がＹｅｓであればステップＳ６０５に進み、ＮｏであればステップＳ６０２に戻って以降の処理を繰り返す。
【００９４】
ステップＳ６０５：適用範囲調整部３１は、ステップＳ６０３でカウントした話題密度が最大となる話題を選択し、その話題の話題分布範囲を要約適用範囲とする。
【００９５】
図１４は、重み付き合成アルゴリズムに基づく適用範囲調整を行う場合の適用範囲調整部３１の処理手順の一例を示すフローチャートである。適用範囲調整部３１は、重み付き合成アルゴリズムに基づく適用範囲調整を行う場合、例えば図１４のステップＳ７０１〜ステップＳ７０５の処理を行うことで、要約適用範囲を調整する。
【００９６】
ステップＳ７０１：適用範囲調整部３１は、本文ウィンドウ１０２上のマウスカーソルが置かれた位置を話題分布範囲に含む話題をすべてリストアップする。
【００９７】
ステップＳ７０２：適用範囲調整部３１は、ステップＳ７０１でリストアップした話題を順に１つ取り出す。
【００９８】
ステップＳ７０３：適用範囲調整部３１は、図１３のステップＳ６０３と同様に、ステップＳ７０２で取り出した話題についての話題密度をカウントする。
【００９９】
ステップＳ７０４：適用範囲調整部３１は、ステップＳ７０１でリストアップした話題のすべてに対して、話題密度のカウントが終了したか否かを判定する。そして、判定の結果がＹｅｓであればステップＳ７０５に進み、ＮｏであればステップＳ７０２に戻って以降の処理を繰り返す。
【０１００】
ステップＳ７０５：適用範囲調整部３１は、ステップＳ７０１でリストアップした各話題の話題分布範囲を、ステップＳ７０３でカウントした話題密度を用いて重み付き合成して合成範囲を求め、求めた合成範囲を要約適用範囲とする。具体的には、マウスカーソルが置かれた位置から合成範囲の前方境界までの距離をｆ、後方境界までの距離をｂとすると、合成範囲は、下記式（１）〜（３）で示されるｆからｂの範囲となる。
ｆ＝Σｉ・ｗｉ・ｆｉ  ・・・（１）
ｂ＝Σｉ・ｗｉ・ｂｉ  ・・・（２）
ｗｉ＝ｄｉ／Σｊ・ｄｊ  ・・・（３）
ただし、ｉ，ｊは話題番号、ｆｉはマウスカーソルが置かれた位置から話題ｉの話題分布範囲の前方境界までの距離、ｂｉはマウスカーソルが置かれた位置から話題ｉの話題分布範囲の後方境界までの距離、ｄｉは話題ｉの話題密度、ｄｊは話題ｊの話題密度である。
【０１０１】
重要文選択部３２は、要約要求部２３からの要求に応じて要約テキストＴａ（図３参照）を生成して本文ウィンドウ１０２に表示させるとともに、ユーザにより本文ウィンドウ１０２上でマウスホイール操作ｏｐ１、あるいは「＋」「−」ボタン操作ｏｐ２が行われたときに、文を削除または追加する処理を行って要約テキストＴａを更新するサブモジュールである。
【０１０２】
重要文選択部３２は、マウスホイール操作ｏｐ１をきっかけとして要約テキストＴａを更新する場合は、適用範囲調整部３１によって決定された要約適用範囲のテキストを操作量に応じた要約率で要約して、新たな要約テキストＴａとする。また、重要文選択部３２は、「＋」「−」ボタン操作ｏｐ２をきっかけとして要約テキストＴａを更新する場合は、テキストＴの全体を操作量に応じた要約率で要約して、新たな要約テキストＴａとする。
【０１０３】
本実施形態の重要文選択部３２は、特に、話題構造モデルＭを用いて文の重要性を判定する。これにより、例えば、子孫話題を多く抱える話題は重要であるなどの判定が可能となる。
【０１０４】
以下では、重要文選択部３２による文削減処理、文追加処理、およびこれらの処理で用いられるスコアの計算方法について、個別に説明する。
【０１０５】
文削除処理は、大域モードでの文削除コマンドや局所モードでの文削除コマンドが発行されたときに実行される。また、要約要求部２３による要求が、本文ウィンドウ１０２に表示されているテキストを結果的に減らす要求であった場合にも、文削除処理は実行される。
【０１０６】
図１５は、文削除処理を行う場合の重要文選択部３２の処理手順の一例を示すフローチャートである。重要文選択部３２は、例えば図１５のステップＳ８０１〜ステップＳ８０５の処理を行うことで、本文ウィンドウ１０２に表示される要約テキストＴａを更新する。
【０１０７】
ステップＳ８０１：重要文選択部３２は、テキストＴにおける要約適用範囲を決定する。具体的には、重要文選択部３２は、適用範囲調整部３１から呼び出された場合は、適用範囲調整部３１の処理結果を要約適用範囲とする。また、重要文選択部３２は、要約要求部２３から呼び出された場合は、要約要求部２３の要求で指定された要約適用範囲Ｒ（図３参照）を要約適用範囲とする。また、重要文選択部３２は、要約適用範囲が特に指定されていない場合は、テキストＴの全体を要約適用範囲とする。
【０１０８】
ステップＳ８０２：重要文選択部３２は、要約テキストＴａの目標サイズ（文字数または文数）を決定する。具体的には、重要文選択部３２は、大域モードでの文削除コマンドや局所モードでの文削除コマンドが発行された場合は、例えば、本文ウィンドウ１０２に現在表示されているテキストの文字数または文数から所定数を減算した数を目標サイズにすればよい。また、重要文選択部３２は、要約要求部２３から呼び出された場合は、要約要求部２３により指定された目標サイズ、すなわち、本文ウィンドウ１０２に収まる文字数または文数を目標サイズにすればよい。
【０１０９】
ステップＳ８０３：重要文選択部３２は、ステップＳ８０１で決定した要約適用範囲に含まれる文のうち、後述する方法によって計算されるスコアが最も低い文を除去する。
【０１１０】
ステップＳ８０４：重要文選択部３２は、ステップＳ８０３で除去されずに残った文全体のサイズが、ステップＳ８０２で決定した目標サイズに収まるか否かを判定する。そして、判定の結果がＹｅｓであればステップＳ８０５に進み、ＮｏであればステップＳ８０３に戻って以降の処理を繰り返す。
【０１１１】
ステップＳ８０５：重要文選択部３２は、除去されずに残った文全体を新たな要約テキストＴａとして、本文ウィンドウ１０２の表示を更新する。
【０１１２】
文追加処理は、大域モードでの文追加コマンドや局所モードでの文追加コマンドが発行されたときに実行される。また、要約要求部２３による要求が、本文ウィンドウ１０２に表示されているテキストを結果的に増やす要求であった場合にも、文追加処理は実行される。
【０１１３】
図１６は、文追加処理を行う場合の重要文選択部３２の処理手順の一例を示すフローチャートである。重要文選択部３２は、例えば図１６のステップＳ９０１〜ステップＳ９０５の処理を行うことで、本文ウィンドウ１０２に表示される要約テキストＴａを更新する。
【０１１４】
ステップＳ９０１：重要文選択部３２は、テキストＴにおける要約適用範囲を決定する。具体的には、重要文選択部３２は、適用範囲調整部３１から呼び出された場合は、適用範囲調整部３１の処理結果を要約適用範囲とする。また、重要文選択部３２は、要約要求部２３から呼び出された場合は、要約要求部２３の要求で指定された要約適用範囲Ｒ（図３参照）を要約適用範囲とする。また、重要文選択部３２は、要約適用範囲が特に指定されていない場合は、テキストＴの全体を要約適用範囲とする。
【０１１５】
ステップＳ９０２：重要文選択部３２は、要約テキストＴａの目標サイズ（文字数または文数）を決定する。具体的には、重要文選択部３２は、大域モードでの文追加コマンドや局所モードでの文追加コマンドが発行された場合は、例えば、本文ウィンドウ１０２に現在表示されているテキストの文字数または文数に所定数を加算した数を目標サイズにすればよい。また、重要文選択部３２は、要約要求部２３から呼び出された場合は、要約要求部２３により指定された目標サイズ、すなわち、本文ウィンドウ１０２に収まる文字数または文数を目標サイズにすればよい。
【０１１６】
ステップＳ９０３：重要文選択部３２は、ステップＳ９０１で決定した要約適用範囲に含まれる文であって、文削除処理によって除去された文のうち、後述する方法によって計算されるスコアが最も高い文を、元の位置に追加する。
【０１１７】
ステップＳ９０４：重要文選択部３２は、ステップＳ９０３で追加した文を含む文全体のサイズが、ステップＳ９０２で決定した目標サイズに収まるか否かを判定する。そして、判定の結果がＹｅｓであればステップＳ９０５に進み、ＮｏであればステップＳ９０３に戻って以降の処理を繰り返す。
【０１１８】
ステップＳ９０５：重要文選択部３２は、追加した文を含む文全体を新たな要約テキストＴａとして、本文ウィンドウ１０２の表示を更新する。
【０１１９】
上述した文削除処理や文追加処理で用いる文のスコアは、子孫話題を多く抱える話題は重要な話題である、という観点で計算されたスコアである。以下では、このスコアの計算方法の一例を説明する。
【０１２０】
文の重要度を表すスコアを計算する従来の方法としては、例えば、文の位置（テキスト先頭文やパラグラフ先頭文は重要と考える）や、文に含まれる単語のＴＦＩＤＦ値、「まとめると」などの手がかり表現など、文の重要度を示す何らかの手がかりを用いるものがある。本実施形態のスコア計算方法は、話題構造モデルＭを文の重要度を示す手がかりとして用いる方法である。この方法は、従来のスコア計算方法と組み合わせる（例えば和を取るなど）ことが可能である。ただし、以下では説明を簡単にするため、本実施形態に特徴的な話題構造モデルＭのみを用いたスコアの計算方法を説明する。
【０１２１】
図１７は、文のスコアを計算する場合の重要文選択部３２の処理手順の一例を示すフローチャートである。重要文選択部３２は、例えば図１７のステップＳ１００１〜ステップＳ１００６の処理を行うことで、テキストＴに含まれる各文のスコアを計算する。
【０１２２】
ステップＳ１００１：重要文選択部３２は、スコア計算の対象となる文に含まれる話題語をすべてリストアアップする。
【０１２３】
ステップＳ１００２：重要文選択部３２は、ステップＳ１００１でリストアップした話題語を順に１つ取り出す。
【０１２４】
ステップＳ１００３：重要文選択部３２は、話題辞書１５（図３参照）を用いて、ステップＳ１００２で取り出した話題語が属する話題を特定する。
【０１２５】
ステップＳ１００４：重要文選択部３２は、ステップＳ１００３で特定した話題およびその子孫話題の重要度の合計を計算する。なお、話題の重要度としては、例えば、上述したように、その話題に属する話題語のＴＦＩＤＦ値の平均値を用いる。
【０１２６】
ステップＳ１００５：重要文選択部３２は、ステップＳ１００４で得られた重要度の合計値を、文のスコアに加算する。
【０１２７】
ステップＳ１００６：重要文選択部３２は、ステップＳ１００１でリストアップした話題語のすべてに対して、ステップＳ１００３〜ステップＳ１００５の処理を行ったか否かを判定する。そして、判定の結果がＮｏであればステップＳ１００２に戻って以降の処理を繰り返し、Ｙｅｓであれば、ステップＳ１００５で得られたスコアを文のスコアとして、一連の処理を終了する。
【０１２８】
なお、本実施形態では、重要文選択部３２がテキストＴにおける文を処理単位として上述した文削除処理や文追加処理を行っているが、文に限らず、フレーズやパラグラフなど、予め定めたテキスト単位を処理単位として、削除や追加の処理を行うようにしてもよい。
【０１２９】
以上、具体的な例を挙げながら詳細に説明したように、本実施形態のテキスト処理装置は、入力されたテキストＴを解析して話題構造モデルＭを生成し、この話題構造モデルＭに基づいて、テキストＴに含まれる話題間の従属関係と前後関係とを端的に表した話題構造リストをディスプレイに表示させる。そして、話題構造リストに対するユーザの操作に応じて話題構造リストに含まれるＧＵＩノードの展開や収束を行い、任意のＧＵＩノードを指定したユーザの操作に応じて、そのＧＵＩノードで示される話題に関する要約テキストＴａをディスプレイに表示させる。このように、本実施形態のテキスト処理装置によれば、入力されたテキストＴの話題構造に基づいて処理を行うため、論理構造を持たないテキストに対して探求的なアクセスが可能となる。
【０１３０】
なお、以上説明した例では、話題構造モデル生成器１０が、図５に示した処理手順に従って、入力されたテキストＴから話題構造モデルＭを生成するようにしている。しかし、以下に示す点を考慮して、話題構造モデルＭを生成する処理手順に変形を加えるようにしてもよい。
【０１３１】
ある話題について、話題語が出現した後にしばらく出現せず、その後に出現するというように、ある話題の話題分布範囲の中に大きなブランクが含まれていることがある。このように、話題分布範囲の中に大きなブランクがある話題は、ブランクの前の話題と後の話題とを異なる話題として取り上げていることが多く、ブランクの前後を別々の話題として扱ったほうが分かり易くなることが多い。そこで、話題分布範囲の中に大きなブランクが含まれている場合は、そのブランクの前後を別の話題として分割するようにしてもよい。
【０１３２】
また、話題によっては話題分布範囲が極端に広大となる場合がある。このような話題をアウトライナで扱う場合、その話題を子話題に展開する操作を行うと、膨大な数の子話題に展開されて操作の妨げになるなどの問題が生じる虞がある。そこで、話題分布範囲の大きさに上限を設けて、話題分布範囲が大きすぎる話題については、その話題を複数に分割するようにしてもよい。
【０１３３】
図１８は、以上の変形を加えた場合の話題構造モデル生成器１０の処理手順を示すフローチャートであり、図５のステップＳ１０１とステップＳ１０２との間に追加される処理を示したものである。本例の場合、話題構造モデル生成器１０は、図５のステップＳ１０１の処理の後に、図１８に示すステップＳ１１０１〜ステップＳ１１０７の処理を行った上で、図５のステップＳ１０２の処理を行うことになる。
【０１３４】
ステップＳ１１０１：話題構造モデル生成器１０は、図５のステップＳ１０１で獲得した共参照クラスタを順に１つ取り出す。
【０１３５】
ステップＳ１１０２：話題構造モデル生成器１０は、テキストＴの文ごとにステップＳ１１０１で取り出した共参照クラスタのメンバーが出現する頻度を表したヒストグラムを作成する。
【０１３６】
ステップＳ１１０３：話題構造モデル生成器１０は、ステップＳ１１０２で作成したヒストグラムにおいて、出現頻度０の文が所定数以上連続するブランク箇所があるか否かを判定する。そして、判定の結果がＹｅｓであればステップＳ１１０４に進み、ＮｏであればステップＳ１１０５に進む。
【０１３７】
ステップＳ１１０４：話題構造モデル生成器１０は、ステップＳ１１０１で取り出した共参照クラスタを、ブランク箇所よりも前に出現しているメンバーで構成される共参照クラスタと、ブランク箇所よりも後に出現しているメンバーで構成される共参照クラスタとに分割する。
【０１３８】
ステップＳ１１０５：話題構造モデル生成器１０は、ステップＳ１１０１で取り出した共参照クラスタのメンバー数が所定数を超えているか否かを判定する。そして、判定の結果がＹｅｓであればステップＳ１１０６に進み、ＮｏであればステップＳ１１０７に進む。
【０１３９】
ステップＳ１１０６：話題構造モデル生成器１０は、共参照クラスタのメンバー数が所定数以下となるように、メンバーの出現位置に沿ってステップＳ１１０１で取り出した共参照クラスタを分割する。なお、本ステップでは、共参照クラスタのメンバー数と話題分布範囲の大きさが、ほぼ比例する関係にあるとの仮定のもと、共参照クラスタのメンバー数を所定数以下に制限することで、話題分布範囲の大きさを制限している。ただし、このステップに代えて、例えばステップＳ１１０２で生成したヒストグラムを用いて話題分布範囲の大きさが上限を超えているか否かを判定し、上限を超えている場合に、その話題を上限以下の話題分布範囲を持つ複数の話題に分割する処理を行うようにしてもよい。
【０１４０】
ステップＳ１１０７：話題構造モデル生成器１０は、図５のステップＳ１０１で獲得した共参照クラスタのすべてに対して、ステップＳ１１０２〜ステップＳ１１０６の処理を行ったか否かを判定する。そして、判定の結果がＮｏであればステップＳ１１０１に戻って以降の処理を繰り返し、Ｙｅｓであれば図５のステップＳ１０２に進む。
【０１４１】
以上説明した本実施形態のテキスト処理装置における上述した各機能は、例えば、テキスト処理装置において所定のプログラムを実行することにより実現することができる。この場合、テキスト処理装置は、例えば図１９に示すように、ＣＰＵ（Central  Processing  Unit）５１などの制御装置、ＲＯＭ（Read  Only  Memory）５２やＲＡＭ（Random  Access  Memory）５３などの記憶装置、表示器や各種操作デバイスが接続される入出力Ｉ／Ｆ５４、ネットワークに接続して通信を行う通信Ｉ／Ｆ５５、各部を接続するバス５６などを備えた、通常のコンピュータを利用したハードウェア構成とすることができる。
【０１４２】
本実施形態のテキスト処理装置で実行されるプログラムは、例えば、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact  Disk  Recordable）、ＤＶＤ（Digital  Versatile  Disc）等のコンピュータで読み取り可能な記録媒体に記録されてコンピュータプログラムプロダクトとして提供される。
【０１４３】
また、本実施形態のテキスト処理装置で実行されるプログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態のテキスト処理装置で実行されるプログラムをインターネットなどのネットワーク経由で提供または配布するように構成してもよい。
【０１４４】
また、本実施形態のテキスト処理装置で実行されるプログラムを、ＲＯＭ５２などに予め組み込んで提供するように構成してもよい。
【０１４５】
本実施形態のテキスト処理装置で実行されるプログラムは、テキスト処理装置の各処理部（話題構造モデル生成器１０、話題アウトライナ２０（初期状態生成部２１、話題構造操作部２２、要約要求部２３）、およびインタラクティブ要約器３０（適用範囲調整部３１、重要文選択部３２））を含むモジュール構成となっており、実際のハードウェアとしては、例えば、ＣＰＵ５１（プロセッサ）が上記記録媒体からプログラムを読み出して実行することにより、上述した各処理部がＲＡＭ５３（主記憶）上にロードされ、上述した各処理部がＲＡＭ５３（主記憶）上に生成されるようになっている。なお、本実施形態のテキスト処理装置は、上述した各処理部の一部または全部を、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field-Programmable  Gate  Array）などの専用のハードウェアを用いて実現することも可能である。
【０１４６】
以上、本発明の実施形態を説明したが、ここで説明した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。ここで説明した新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。ここで説明した実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１４７】
１０  話題構造モデル生成器
１５  話題辞書
２０  話題アウトライナ
２１  初期状態生成部
２２  話題構造操作部
２３  要約要求部
３０  インタラクティブ要約器
３１  適用範囲調整部
３２  重要文選択部
Ｔ  テキスト
Ｔａ  要約テキスト
Ｍ  話題構造モデル
Ｍ１  話題従属関係モデル
Ｍ２  話題前後関係モデル
【図１】
2015088061.tif 000003
【図２−１】
2015088061.tif 000004
【図２−２】
2015088061.tif 000005
【図３】
2015088061.tif 000006
【図４】
2015088061.tif 000007
【図５】
2015088061.tif 000008
【図６】
2015088061.tif 000009
【図７】
2015088061.tif 000010
【図８】
2015088061.tif 000011
【図９】
2015088061.tif 000012
【図１０】
2015088061.tif 000013
【図１１】
2015088061.tif 000014
【図１２】
2015088061.tif 000015
【図１３】
2015088061.tif 000016
【図１４】
2015088061.tif 000017
【図１５】
2015088061.tif 000018
【図１６】
2015088061.tif 000019
【図１７】
2015088061.tif 000020
【図１８】
2015088061.tif 000021
【図１９】
2015088061.tif 000022