特許第6239344号(P6239344)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社東芝の特許一覧 ▶ 東芝ソリューション株式会社の特許一覧

特許6239344テキスト処理装置、テキスト処理方法およびプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6239344
(24)【登録日】2017年11月10日
(45)【発行日】2017年11月29日
(54)【発明の名称】テキスト処理装置、テキスト処理方法およびプログラム
(51)【国際特許分類】
   G06F 17/30 20060101AFI20171120BHJP
【FI】
   G06F17/30 419A
   G06F17/30 170A
   G06F17/30 210A
【請求項の数】14
【全頁数】27
(21)【出願番号】特願2013-227557(P2013-227557)
(22)【出願日】2013年10月31日
(65)【公開番号】特開2015-88061(P2015-88061A)
(43)【公開日】2015年5月7日
【審査請求日】2016年9月23日
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(73)【特許権者】
【識別番号】301063496
【氏名又は名称】東芝デジタルソリューションズ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】浜田 伸一郎
(72)【発明者】
【氏名】清水 歩
(72)【発明者】
【氏名】加納 敏行
(72)【発明者】
【氏名】田中 史郎
(72)【発明者】
【氏名】多田 知存
【審査官】 吉田 誠
(56)【参考文献】
【文献】 特開2005−122510(JP,A)
【文献】 特開2003−162525(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/20−17/30
(57)【特許請求の範囲】
【請求項1】
入力されたテキストを解析して、前記テキストに含まれる複数の話題間の従属関係を示す情報と、前記テキストに含まれる複数の話題間の前後関係を示す情報と、を含む話題構造情報を生成する生成部と、
前記話題構造情報に基づき、各々が前記テキストに含まれる話題に対応した複数のノードであって、各ノードが当該ノードに対応する話題と他の話題との従属関係を表したラベルを持つ複数のノードを、各ノードに対応する話題間の前後関係に従って配列した話題構造リストをディスプレイに表示させるリスト表示部と、を備え
前記生成部は、前記テキストに含まれる2つの話題を話題Aおよび話題Bとしたときに、前記テキストにおける予め定めたテキスト単位を処理単位として、前記テキストにおいて話題Aに関する記述が最初に出現したテキスト単位を検知し、検知したテキスト単位において、話題Aに関する記述よりも前方に話題Bに関する記述が存在する場合に、話題Aは話題Bに従属する話題であると判定する、テキスト処理装置。
【請求項2】
前記話題構造リストに含まれる各ノードは、当該ノードに対応する話題が他の話題に従属する話題である場合、当該ノードに対応する話題を表す話題名と、当該ノードに対応する話題の従属先の他の話題を表す話題名とを所定の記号を挟んで並べることで、当該ノードに対応する話題と他の話題との従属関係を表した前記ラベルを持つ、請求項1に記載のテキスト処理装置。
【請求項3】
前記リスト表示部は、前記ディスプレイに表示されている前記話題構造リスト内のノードであって、他の話題が従属されている話題に対応するノードを対象として第1の操作が行われた場合、当該第1の操作の対象となったノードを削除するとともに、当該第1の操作の対象となったノードに対応する話題に従属する他のすべての話題に各々対応するすべてのノードを追加した新たな前記話題構造リストを前記ディスプレイに表示させる、請求項1または2に記載のテキスト処理装置。
【請求項4】
前記リスト表示部は、前記ディスプレイに表示されている前記話題構造リスト内のノードであって、他の話題に従属している話題に対応するノードを対象とした第2の操作が行われた場合、当該第2の操作の対象となったノードを含め、当該第2の操作の対象となったノードの従属先である他の話題に従属するすべての話題に各々対応するすべてのノードを削除するとともに、当該第2の操作の対象となったノードの従属先である他の話題に対応するノードを追加した新たな前記話題構造リストを前記ディスプレイに表示させる、請求項1乃至3のいずれか一項に記載のテキスト処理装置。
【請求項5】
前記生成部は、前記テキストに含まれる2つの話題を話題Aおよび話題Bとしたときに、前記テキストにおいて話題Aに関する記述が最初に出現した位置と、前記テキストにおいて話題Bに関する記述が最初に出現した位置とを比較することで、話題Aと話題Bの前後関係を判定する、請求項1乃至4のいずれか一項に記載のテキスト処理装置。
【請求項6】
前記生成部は、前記テキストに含まれる複数の話題のそれぞれについて、前記テキスト内において当該話題に関する記述が最初に現れた位置から最後に現れた位置までの範囲である話題分布範囲を検出し、
前記話題構造情報は、前記テキストに含まれる複数の話題それぞれの前記話題分布範囲を示す情報をさらに含む、請求項1乃至5のいずれか一項に記載のテキスト処理装置。
【請求項7】
前記生成部は、前記話題分布範囲の大きさが予め定めた上限を超えている話題を、前記上限以下の大きさの前記話題分布範囲を持つ複数の話題に分割する、請求項に記載のテキスト処理装置。
【請求項8】
前記生成部は、前記話題分布範囲の中に当該話題に関する記述を含まない文が所定数以上連続するブランクを含む話題を、前記ブランクよりも前方の前記話題分布範囲を持つ話題と、前記ブランクよりも後方の前記話題分布範囲を持つ話題とに分割する、請求項6または7に記載のテキスト処理装置。
【請求項9】
前記ディスプレイに表示されている前記話題構造リスト内の任意のノードを対象とした第3の操作が行われた場合に、当該第3の操作の対象となったノードに対応する話題の前記話題分布範囲を要約対象として前記テキストを要約し、要約結果である要約テキストを前記ディスプレイにさらに表示させる要約表示部をさらに備える、請求項6乃至8のいずれか一項に記載のテキスト処理装置。
【請求項10】
前記要約表示部は、前記ディスプレイに表示されている前記要約テキストの中で任意の位置および要約率を指定する第4の操作が行われた場合、指定された位置を前記話題分布範囲に含むすべての話題の前記話題分布範囲を合成した合成範囲、または、指定された位置を前記話題分布範囲に含むすべての話題の前記話題分布範囲のうち予め定めた規則に従って選択された選択範囲を新たな要約対象として前記テキストを指定された要約率で要約し、前記ディスプレイに表示させる前記要約テキストを更新する、請求項に記載のテキスト処理装置。
【請求項11】
前記要約表示部は、前記テキストにおける予め定めたテキスト単位を処理単位とし、前記テキスト内の要約対象に含まれるテキスト単位のそれぞれについて、文に含まれる話題に関する記述をすべて検出して、検出した記述に対応する各話題の重要度に応じて当該テキスト単位の重要度を判定し、判定したテキスト単位の重要度に応じて要約対象に含まれるテキスト単位の中で削除または追加するテキスト単位を選択することで、前記テキストを要約する、請求項9または10に記載のテキスト処理装置。
【請求項12】
話題の重要度は、当該話題に従属する他の話題の数が多いほど高い重要度となる、請求項11に記載のテキスト処理装置。
【請求項13】
テキスト処理装置において実行されるテキスト処理方法であって、
前記テキスト処理装置の生成部が、入力されたテキストを解析して、前記テキストに含まれる複数の話題間の従属関係を示す情報と、前記テキストに含まれる複数の話題間の前後関係を示す情報と、を含む話題構造情報を生成する工程と、
前記テキスト処理装置のリスト表示部が、前記話題構造情報に基づき、各々が前記テキストに含まれる話題に対応した複数のノードであって、各ノードが当該ノードに対応する話題と他の話題との従属関係を表したラベルを持つ複数のノードを、各ノードに対応する話題間の前後関係に従って配列した話題構造リストをディスプレイに表示させる工程と、を含み、
前記テキスト処理装置の生成部は、前記テキストに含まれる2つの話題を話題Aおよび話題Bとしたときに、前記テキストにおける予め定めたテキスト単位を処理単位として、前記テキストにおいて話題Aに関する記述が最初に出現したテキスト単位を検知し、検知したテキスト単位において、話題Aに関する記述よりも前方に話題Bに関する記述が存在する場合に、話題Aは話題Bに従属する話題であると判定する、テキスト処理方法。
【請求項14】
コンピュータに、
入力されたテキストを解析して、前記テキストに含まれる複数の話題間の従属関係を示す情報と、前記テキストに含まれる複数の話題間の前後関係を示す情報と、を含む話題構造情報を生成する生成部の機能と、
前記話題構造情報に基づき、各々が前記テキストに含まれる話題に対応した複数のノードであって、各ノードが当該ノードに対応する話題と他の話題との従属関係を表したラベルを持つ複数のノードを、各ノードに対応する話題間の前後関係に従って配列した話題構造リストをディスプレイに表示させるリスト表示部の機能と、を実現させ
前記生成部は、前記テキストに含まれる2つの話題を話題Aおよび話題Bとしたときに、前記テキストにおける予め定めたテキスト単位を処理単位として、前記テキストにおいて話題Aに関する記述が最初に出現したテキスト単位を検知し、検知したテキスト単位において、話題Aに関する記述よりも前方に話題Bに関する記述が存在する場合に、話題Aは話題Bに従属する話題であると判定する、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、テキスト処理装置、テキスト処理方法およびプログラムに関する。
【背景技術】
【0002】
従来、テキストに対する探求的なアクセスを可能にする技術として、アウトライナと呼ばれるソフトウェアを利用してテキストを処理することが知られている。アウトライナは、テキストの骨格構造を表示し、さらにユーザがその構造の任意要素を選ぶと、テキストの該当箇所を開くことのできるソフトウェアの総称である。
【0003】
ただし、従来のアウトライナは、テキストに対して予め与えられた章や節などの論理構造を、テキストの骨格構造として扱うものが一般的である。このため、論理構造を持たないテキストに対する処理を行うことが困難であり、改善が求められている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】OmniOutliner PRO Manual Version3.0、[online]、The Omni Group、[平成25年10月25日検索]、インターネット<URL:http://downloads2.omnigroup.com/software/MacOSX/Manuals/OmniOutliner-3.0-Manual.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明が解決しようとする課題は、論理構造を持たないテキストに対する探求的なアクセスを可能にするテキスト処理装置、テキスト処理方法およびプログラムを提供することである。
【課題を解決するための手段】
【0006】
実施形態のテキスト処理装置は、生成部と、リスト表示部と、を備える。生成部は、入力されたテキストを解析して、前記テキストに含まれる複数の話題間の従属関係を示す情報と、前記テキストに含まれる複数の話題間の前後関係を示す情報と、を含む話題構造情報を生成する。リスト表示部は、前記話題構造情報に基づき、各々が前記テキストに含まれる話題に対応した複数のノードであって、各ノードが当該ノードに対応する話題と他の話題との従属関係を表したラベルを持つ複数のノードを、各ノードに対応する話題間の前後関係に従って配列した話題構造リストをディスプレイに表示させる。生成部は、前記テキストに含まれる2つの話題を話題Aおよび話題Bとしたときに、前記テキストにおける予め定めたテキスト単位を処理単位として、前記テキストにおいて話題Aに関する記述が最初に出現したテキスト単位を検知し、検知したテキスト単位において、話題Aに関する記述よりも前方に話題Bに関する記述が存在する場合に、話題Aは話題Bに従属する話題であると判定する。
【図面の簡単な説明】
【0007】
図1図1は、テキスト処理装置の出力としてディスプレイに表示される表示画面の画面構成例を示す図である。
図2-1】図2−1は、サンプルテキストを示す図である。
図2-2】図2−2は、サンプルテキストを示す図である。
図3図3は、テキスト処理装置の全体構成を示すブロック図である。
図4図4は、話題構造モデルの一例を示す図である。
図5図5は、話題構造モデル生成器の処理手順の一例を示すフローチャートである。
図6図6は、話題構造モデルに基づいて生成した話題構造リストの初期状態を示す図である。
図7図7は、初期状態生成部の処理手順の一例を示すフローチャートである。
図8図8は、任意のGUIノードに対して開く操作が行われた場合における話題構造操作部の処理手順の一例を示すフローチャートである。
図9図9は、任意のGUIノードに対して閉じる操作が行われた場合における話題構造操作部の処理手順の一例を示すフローチャートである。
図10図10は、GUIノードの開閉操作が行われた場合におけるアウトライナウィンドウの画面遷移の一例を示す図である。
図11図11は、要約要求部の処理手順の一例を示すフローチャートである。
図12図12は、本文ウィンドウに表示されるテキストの要約率を変更する操作方法をまとめた図である。
図13図13は、最密優先アルゴリズムに基づく適用範囲調整を行う場合の適用範囲調整部の処理手順の一例を示すフローチャートである。
図14図14は、重み付き合成アルゴリズムに基づく適用範囲調整を行う場合の適用範囲調整部の処理手順の一例を示すフローチャートである。
図15図15は、文削除処理を行う場合の重要文選択部の処理手順の一例を示すフローチャートである。
図16図16は、文追加処理を行う場合の重要文選択部の処理手順の一例を示すフローチャートである。
図17図17は、文のスコアを計算する場合の重要文選択部の処理手順の一例を示すフローチャートである。
図18図18は、話題構造モデル生成器の処理手順の変形例を示すフローチャートである。
図19図19は、テキスト処理装置のハードウェア構成を説明する図である。
【発明を実施するための形態】
【0008】
以下、実施形態のテキスト処理装置、テキスト処理方法およびプログラムを、図面を参照して詳細に説明する。以下で示す実施形態は、主に、コールセンターでの通話応対や会議の経過などを記録したテキストを処理対象とする例である。
【0009】
コールセンターでの通話応対において、同じ顧客との通話応対が複数回にわたることがある。この場合、同じ顧客に応対するオペレータがいつも同じであるとは限らないが、顧客は「この前教えてもらったミルクアレルギーの話だけど・・・」など、それまでの通話内容の文脈に基づく質問をすることがある。この場合、コールセンター側では、顧客満足度の観点から、このような質問に対しても適切に応答することが求められる。そのためには、顧客に応対するオペレータに、それまでの応対内容を理解させておく必要がある。
【0010】
このような状況と類似する例として、例えば企業の開発定例会議など、複数回にわたって開催される会議がある。2回目以降の会議では、前回までの会議で交わされた議論の内容を踏まえて議論が展開されることが多い。しかし、それまでの会議に参加していない人や、会議に参加はしていたが議論の内容をはっきりと思い出せない人などが出てくることがある。これらの人を救済するには、やはり、それまでの会議で交わされた議論の内容をこれらの人に理解させておく必要がある。
【0011】
これらの課題に対し、過去のやり取りをテキスト化して記録(以下、この記録を過去ログという。)し、コールセンターでの通話応対中や会議中に、オペレータあるいは会議参加者が、いつでも過去ログを読めるように提示しておくというアプローチが考えられる。この場合、過去ログは、通話応対や会議の進行の妨げにならないように、オペレータあるいは会議参加者が必要なポイントをすばやく理解できるようになっていることが望まれる。
【0012】
しかし、どこがポイントとなるかは、通話応対や会議進行の展開や、情報を必要とするオペレータあるいは会議参加者の知識などによっても異なるため、必要となるポイントを事前に予見することはできない。したがって、情報を必要とするオペレータあるいは会議参加者自身が、過去ログの中から必要なポイントをすばやく見つけ出し、その内容をすばやく理解できるようにする仕組みが求められる。
【0013】
本実施形態では、テキストの話題構造を用いたアウトライナによる解決方法を提案する。アウトライナは、テキストの骨格構造を表示し、さらにユーザがその構造の任意要素を選ぶと、テキストの該当箇所を開くことのできるソフトウェアの総称である。既存ソフトウェアの例として、OmniOutlinerやMicrosoft(R)Wordなどがある。ただし、これらのアウトライナは、テキストに対して予め与えられた章や節などの論理構造に基づいて処理を行う。それに対して実施形態では、コールセンターや会議などでの人間のやりとりをテキスト化したものを処理の対象とするため、章や節などの予め与えられた論理構造は存在しない。その代わりにテキストの話題構造を用いる。
【0014】
話題構造は目に見えないものである。本実施形態では、仮説に基づいて検出した話題間の従属関係と前後関係に基づいて構成する話題構造モデルと、この話題構造モデルを用いたアウトライナを備えたテキスト処理装置を提案する。
【0015】
まず、本実施形態のテキスト処理装置の出力としてディスプレイに表示される表示画面の一例について、図1を参照して説明する。
【0016】
図1は、本実施形態のテキスト処理装置の出力としてディスプレイに表示される表示画面の画面構成例を示す図である。図1(a)に例示する表示画面100は、アウトライナウィンドウ101と本文ウィンドウ102とから構成される。アウトライナウィンドウ101は、入力されたテキストの話題構造を示す話題構造リストを表示し、さらにテキストの本文に探求的アクセスができるインタラクティブな操作を提供する。本文ウィンドウ102は、入力されたテキストの本文を表示する。この本文ウィンドウ102を用いて、テキストの要約を表示することが可能である。
【0017】
例えば、図1(a)に示すように、テキストの話題構造を示すものとしてアウトライナウィンドウ101に表示された話題構造リストの項目群(以下、これらの各項目をGUIノードという。)のいずれかを選択すると、選択されたGUIノード(図1(a)の105)で示される話題に関するテキストの本文が、本文ウィンドウ102に表示される。この際、そのGUIノードで示される話題に関するテキストの本文の文量が本文ウィンドウ102のサイズに比べて大きければ、テキストの本文が要約されて本文ウィンドウ102に表示される。図1(a)の本文ウィンドウ102は、入力されたテキストの[アレルギー]に関する文のうち、重要でない文が除去された要約テキストを表示した例を示している。また、本文ウィンドウ102に表示するテキストの要約率は、例えば、本文ウィンドウ102の右上に設けられた「+」ボタン103や「−」ボタン104の操作、あるいはマウスホイール操作などによって、変更することができる。
【0018】
図1(a)に示した表示画面100は、アウトライナウィンドウ101と本文ウィンドウ102の2つのウィンドウを同時に表示可能なサイズのディスプレイを使用することを想定している。しかし、例えば携帯端末のディスプレイのように、画面サイズが小さいためにウィンドウ領域を1つしか確保できないような小型のディスプレイを用いる場合もある。そのような場合には、図1(b)に例示する表示画面200のように、話題構造リストのGUIノード間に、テキストの本文をインラインで表示するような画面構成とすることも考えられる。ただし、以下では、図1(a)に例示する表示画面100の画面構成例が採用されているものとして説明を続ける。
【0019】
図2−1および図2−2は、本実施形態での入力例として用いるサンプルテキストを示す図である。このサンプルテキストは、コールセンターでのオペレータと顧客との間のやり取りを題材としている。図の左端に示した数字は、テキスト内でそれぞれの文が出現する順番を示す行番号である。このサンプルテキストの例では、オペレータや顧客によるひとまとまりの発話と捉えることができるテキスト範囲を1つの行としており、行番号1〜44の順番で対話が続いていることを示している。なお、テキストにおける行の定義はこの例に限られるものではない。例えば、段落の区切りのあるテキストであれば、1つの段落に含まれるテキスト範囲を1つの行としてもよい。また、行の終わりを示す記号を含むテキストであれば、その記号で区切られるテキスト範囲を1つの行としてもよい。
【0020】
また、図2−1および図2−2に示すサンプルテキストにおいて、行番号の右に付されたA,Bは、その発話の話者を示しており、Aがオペレータの発話であることを示し、Bが顧客の発話であることを示している。以下では、この図2−1および図2−2に示すサンプルテキストを適宜利用して具体例を例示しながら、本実施形態のテキスト処理装置について説明する。
【0021】
図3は、本実施形態のテキスト処理装置の全体構成を示すブロック図である。本実施形態のテキスト処理装置は、図3に示すように、話題構造モデル生成器10(生成部)と、話題アウトライナ20(リスト表示部)と、インタラクティブ要約器30(要約表示部)と、を備える。話題アウトライナ20は、図1(a)に例示した表示画面100におけるアウトライナウィンドウ101に対応する処理モジュールである。インタラクティブ要約器30は、図1(a)に例示した表示画面100における本文ウィンドウ102に対応する処理モジュールである。話題構造モデル生成器10は、話題アウトライナ20での処理およびインタラクティブ要約器30での処理に用いられる話題構造モデルM(話題構造情報)を生成する処理モジュールである。
【0022】
話題構造モデル生成器10は、入力されたテキストTを解析して話題構造モデルMを生成する。
【0023】
話題構造モデルMは、テキストTの全体を読まなくても、テキストTの意味的な話題の構造を理解しやすくするために導入するモデルである。本実施形態の話題構造モデルMは、特に、話題間の従属関係と、話題間の前後関係とが分かることを重視する。話題間の従属関係とは、ある話題は別のある話題の一部であるという関係である。話題間の前後関係とは、どのような話題がどのような順序で現れたかを示す情報である。
【0024】
話題間の従属関係は、テキストTの効率的な読み飛ばしに有効である。話題間の従属関係によって話題Yが話題Xの一部であるということがユーザに示されているとき、ユーザは、話題Xに興味がないと判断できた時点で、話題Yに関する記述も読む必要がないことが確定できるからである。また、話題間の従属関係は、話題が生じた理由を理解する上で有効である。話題間の従属関係によって話題Yが話題Xの一部であるということがユーザに示されているとき、ユーザは話題Yは話題Xから派生したものであるということが理解できるからである。話題が生じた理由が理解できれば、アウトライナなどでテキストTを途中から読む場合に文脈を理解しやすくなる。
【0025】
話題間の前後関係は、テキストTにおける話題の流れを把握する上で有効である。一般的に、従属関係ほど明確な関係を持たない独立的な話題同士であっても、弱い影響を与えあって、流れを作っている。話題間の前後関係を示すことで、ユーザは、この話題の流れを感じ取ることができるようになる。これもアウトライナなどでテキストTを途中から読む場合に、ユーザが文脈を理解する助けになる。
【0026】
本実施形態では、実際のテキストTにおける話題間の従属関係と前後関係とを、以下のように定義する。
【0027】
まず、テキストTに出現する事物それぞれを「話題」とし、話題の事物を表す文字列(主に単語であるが、複数の単語を持つフレーズや文であってもよい)を「話題語」とする。異なる文字列が同じ事物を表している場合、それらは共参照関係にある話題語となる。その中で、最も端的な表現を持つ話題語を、その話題に対応する「話題名」とする。なお、後述する「子話題」に属する話題語は、「親話題」に属する話題語でもあるものとみなす。
【0028】
また、テキストTにおいて、ある話題に属する話題語が最初に出現した位置から、同じ話題に属する話題語が最後に出現した位置までの範囲を、その話題がアクティブであった範囲とみなす。この範囲を特に「話題分布範囲」と呼ぶ。
【0029】
テキストTにおいて、ある話題に属する話題語が最初に出現した文の先行位置に、他の話題に属する話題語が存在する場合、ある話題は、直前に存在する話題語が属する他の話題に従属するものとみなす。例えば、図2−1に示したサンプルテキストの行番号7の「・・・粉ミルクとしては、レギュラーミルクと・・・」では、話題「レギュラーミルク」が、話題「粉ミルク」に従属するものとみなす。ただし、直前の話題語が属する他の話題が並列構造の関係にある場合は、従属対象としない。例えば、図2−1に示したサンプルテキストの行番号7の「・・・粉ミルクとしては、レギュラーミルクとペプチドミルクが・・・」では、話題「ペプチドミルク」は、話題「レギュラーミルク」には従属せず、話題「粉ミルク」に従属する。なお、話題同士が並列構造の関係にあるか否かを判断する方法としては、例えば、別途用意された知識辞書などを参照して判断する方法などがある。
【0030】
なお、本実施形態では、テキストTにおける文を処理単位として話題間の従属関係を判定しているが、話題間の従属関係を判定するための処理単位は、文に限らない。そのほかにも、例えばフレーズやパラグラフなど、予め定めたテキスト単位を処理単位として話題間の従属関係を判定すればよい。
【0031】
他の話題に従属する話題を、他の話題に対する「子話題」と呼び、他の話題を従属させる話題を、他の話題に対する「親話題」と呼ぶ。また、同じ親話題に従属する話題同士は「兄弟話題」と呼ぶ。上記の例では、話題「レギュラーミルク」と話題「ペプチドミルク」とが兄弟話題である。また、親話題に複数の子話題が直列で従属する場合、それらの子話題群を親話題の「子孫話題」と呼ぶ。
【0032】
テキストTにおける話題間の前後関係は、各話題の話題分布範囲を用い、話題分布範囲の前方の端部が出現する位置に基づいて決定する。すなわち、ある話題の話題分布範囲の前方端部が、他の話題の話題分布範囲の前方端部よりも、テキストTにおける先行位置にある場合、ある話題は他の話題よりも前の話題であるとみなす。
【0033】
図4は、以上の定義のもと、図2−1および図2−2に示したサンプルテキストを解析して生成した話題構造モデルMの一例を示す図である。図4に示すように、話題構造モデルMは、話題従属関係モデルM1と話題前後関係モデルM2とからなる。図4の例では、話題従属関係モデルM1を図の上部に示し、話題前後関係モデルM2(の一部)を図の下部に図示している。
【0034】
話題従属関係モデルM1は、話題間の従属関係を木構造によって示している。話題前後関係モデルM2は、話題間の前後関係をリスト構造(リストの左ほどテキストの前方で出現することを示す)によって示している。話題を示す各ノード内には、話題名と、行番号を用いた話題分布範囲が表記されている。なお、図4の例では、子孫話題の話題語を除いたときの話題分布範囲を、参考までにノードの直下に併記してある。
【0035】
図5は、話題構造モデル生成器10の処理手順の一例を示すフローチャートである。話題構造モデル生成器10は、入力されたテキストTを受け取り、例えば図5のステップS101〜ステップS112の処理を行うことで、話題構造モデルMを生成する。
【0036】
ステップS101:話題構造モデル生成器10は、入力されたテキストTに対して共参照解析を行い、共参照クラスタ群(メンバ数1のクラスタを含む)を獲得する。得られた共参照クラスタ群の各クラスタがそれぞれ1つの話題を示し、そのメンバーが話題語である。ただし、共参照解析の対象は、テキストTに含まれる単語だけでなく、フレーズや文も含むとする。例えば、図2−1に示したサンプルテキストの行番号12の「ナッツ系を食べさせると、肌にぶつぶつが出来ます」と行番号13の「食物アレルギー」は、共参照関係にある。
【0037】
ステップS102:話題構造モデル生成器10は、各話題の話題語の中から話題名を選択する。ここでは、各話題の話題語のうち「TFIDF値が最大(単語数が2個以上の話題語ならその平均値)」かつ「単語数が最少」の話題語を話題名として選択するものとする。例えば、図2−1に示したサンプルテキストの行番号10の「3歳の男の子」と、行番号11の「お兄ちゃん」と、行番号13の「上のお子様」は、同じ話題の話題語であるが、これらのTFIDF値が同じであるなら、単語数が最も少ない「お兄ちゃん」を話題名として選択する。ただし、上記2つの条件が矛盾する場合は、どちらを優先してもよい。
【0038】
ステップS103:話題構造モデル生成器10は、各話題の重要度を算出する。ここでは、各話題に属する話題語のTFIDF値の平均値を重要度とする。そして、話題構造モデル生成器10は、求めた重要度が所定の閾値を下回っている話題は破棄し、残った話題については、話題名と話題語群のペアを話題辞書15(図3参照)に登録する。
【0039】
ステップS104:話題構造モデル生成器10は、入力されたテキストTの先頭から順に、話題辞書15に登録されている話題語を1つ取り出す。以下、このステップS104で取り出した話題語が属する話題を話題Xと呼ぶ。
【0040】
ステップS105:話題構造モデル生成器10は、話題Xがこれまでに出現していない話題か否かを判定する。そして、判定の結果がYesであればステップS106に進み、判定の結果がNoであればステップS112に進む。
【0041】
ステップS106:話題構造モデル生成器10は、話題Xの話題名および話題分布範囲を取得して、話題前後関係モデルM2のノードとしてリストの末尾に追加する。
【0042】
ステップS107:話題構造モデル生成器10は、ステップS104で取り出した話題語が出現する文を前方に遡り、他の話題(以下、これを話題Yと呼ぶ。)の話題語が存在するか否かを判定する。そして、判定の結果がNoであればステップS108に進み、判定の結果がYesであればステップS109に進む。
【0043】
ステップS108:話題構造モデル生成器10は、話題Xの話題名および話題分布範囲を取得して、話題従属関係モデルM1における他のノードに従属しない独立したルートノードとして、話題従属関係モデルM1に追加する。
【0044】
ステップS109:話題構造モデル生成器10は、話題Xと話題Yとが並列関係か否かを判定する。そして、判定の結果がNoであればステップS110に進み、判定の結果がYesであればステップS111に進む。
【0045】
ステップS110:話題構造モデル生成器10は、話題Xを話題Yの子話題とし、話題Xの話題名および話題分布範囲を取得して、話題従属関係モデルM1における話題Yのノードに従属する子ノードとして、話題従属関係モデルM1に追加する。
【0046】
ステップS111:話題構造モデル生成器10は、話題Xを話題Yの兄弟話題とし、話題Xの話題名および話題分布範囲を取得して、話題従属関係モデルM1における話題Yのノードが従属している親ノードに従属する子ノードとして、話題従属関係モデルM1に追加する。
【0047】
ステップS112:話題構造モデル生成器10は、入力されたテキストTから、話題辞書15に登録されている話題語をすべて取り出したか否かを判定する。そして、判定の結果がNoであればステップS104に戻って以降の処理を繰り返し、判定の結果がYesであれば一連の処理を終了する。
【0048】
話題アウトライナ20は、図3に示すように、初期状態生成部21、話題構造操作部22、および要約要求部23の3つのサブモジュールを含む。以下、これらの各サブモジュールにおける処理を順に説明する。
【0049】
初期状態生成部21は、話題構造モデル生成器10が生成した話題構造モデルMに基づき、以下に示す仕様に従って、アウトライナウィンドウ101に表示させる話題構造リストの初期状態を生成する。
【0050】
本実施形態では、アウトライナウィンドウ101には、「GUIノード」をリスト状に配列した話題構造リストを表示させるものとする。そして、話題構造リストにおけるGUIノードの上下関係によって、話題の前後関係が示される。つまり、アウトライナウィンドウ101に表示される話題構造リストにおいて、上側に配置されるGUIノードが示す話題は、それよりも下側に配置されるGUIノードが示す話題よりも、テキストTにおいて前方に出現する話題であることを示している。
【0051】
また、話題構造リストに含まれる各GUIノードのラベルとして、そのGUIノードが示す話題の話題名が用いられる。GUIノードが示す話題が他の話題(親話題)に従属する場合は、そのGUIノードが示す話題の話題名の前方に親話題の話題名が表記され、ファイルシステムのパス表記と同様のスラッシュ区切りのパス表記によって、2つの話題名が示す話題間の従属関係が示される。GUIノードが示す話題の親話題がさらに他の話題に従属する場合は、親話題の話題名のさらに前方に他の話題の話題名が表記され、スラッシュ区切りのパス表記によって、それらの話題間の従属関係が示される。つまり、直系の祖先を複数持つ話題を示すGUIノードのラベルは、スラッシュで区切られた複数の話題名を含み、最後尾の話題名が、そのGUIノードが示す話題の話題名となる。
【0052】
図6は、図4に示した話題構造モデルMに基づいて生成した話題構造リストの初期状態を示す図であり、アウトライナウィンドウ101に最初に表示される話題構造リストを示している。話題構造リストの初期状態は、図6に示すように、話題従属関係モデルM1のルートノードとなる話題に対応するGUIノードが、話題前後関係モデルM2のリスト内における順序に従って列挙された状態である。図6の例では、図4に示した話題構造モデルMにおいて、話題従属関係モデルM1のルートノードとなる話題の話題名「粉ミルク」、「お兄さん」、「アレルギー」、「試供品」をそれぞれラベルとする4つのGUIノードが、この順に列挙されている。
【0053】
図7は、初期状態生成部21の処理手順の一例を示すフローチャートである。初期状態生成部21は、話題構造モデルMを受け取り、例えば図7のステップS201〜ステップS203の処理を行うことで、話題構造の初期状態を生成する。
【0054】
ステップS201:初期状態生成部21は、話題構造モデルMの話題従属関係モデルM1に含まれるすべてのルートノードの話題の話題名を取得する。図4に示した話題構造モデルMの例では、「粉ミルク」、「お兄さん」、「アレルギー」、「試供品」の4つの話題名が取得される。
【0055】
ステップS202:初期状態生成部21は、話題構造モデルMの話題前後関係モデルM2で示される順序に基づき、ステップS201で得られた話題名を、話題間の前後関係に従って並べ替える。図4に示した話題構造モデルMの例では、ステップS201で取得された「粉ミルク」、「お兄さん」、「アレルギー」、「試供品」の4つの話題名が、この順序に並べ替えられる。
【0056】
ステップS203:初期状態生成部21は、ステップS201で得られた話題名をそれぞれラベルとする各GUIノードを、ステップS202で並べ替えた順序で配列した話題構造リストを、アウトライナウィンドウ101に表示させる。これにより、図6に示したような話題構造リストの初期状態が、アウトライナウィンドウ101に表示される。
【0057】
話題構造操作部22は、話題構造モデル生成器10が生成した話題構造モデルMに基づき、以下に示す仕様に従って、GUIノードの開閉操作に応じた新たな話題構造リストを生成し、アウトライナウィンドウ101に表示させる。この話題構造操作部22の処理により、アウトライナウィンドウ101に表示される話題構造リストは、初期状態生成部21が生成した初期状態から変化する。なお、GUIノードの開閉とは、話題従属関係モデルM1に従ってGUIノードを子話題のGUIノードに展開(開)したり、GUIノードを親話題のGUIノードに収束(閉)させたりすることをいう。
【0058】
本実施形態では、初期状態として、図6に示したように、話題従属関係モデルM1のルートノードとなる話題に対応するGUIノードのみを配列した話題構造リストがアウトライナウィンドウ101に表示される。その後、話題構造リストに含まれる任意のGUIノードを対象としたユーザ操作により、そのGUIノードの開閉状態をトグルさせることができる。
【0059】
ユーザによって話題構造リストに含まれる任意のGUIノードを開く操作(第1の操作)が行われると、そのGUIノードが表示対象から除去され、代わりに、そのGUIノードが示す話題の子話題を示すGUIノード群が表示対象として追加された新たな話題構造リストが生成され、アウトライナウィンドウ101に表示される。この際、話題構造リストに追加されるGUIノード群は、話題構造モデルMの話題前後関係モデルM2で示される順序に従って、新たな話題構造リスト内において、話題の前後関係に応じた位置に挿入される。
【0060】
一方、ユーザによって話題構造リストに含まれる任意のGUIノードを閉じる操作(第2の操作)が行われると、そのGUIノードと、そのGUIノードが示す話題の兄弟話題を示すすべてのGUIノードとが表示対象から除去され、代わりに、そのGUIノードが示す話題の親話題を示すGUIノードが表示対象として追加された新たな話題構造リストが生成され、アウトライナウィンドウ101に表示される。この際、話題構造リストに追加されるGUIノードは、話題構造モデルMの話題前後関係モデルM2で示される順序に従って、新たな話題構造リスト内において、話題の前後関係に応じた位置に挿入される。
【0061】
図8は、任意のGUIノードに対して開く操作が行われた場合における話題構造操作部22の処理手順の一例を示すフローチャートである。話題構造操作部22は、アウトライナウィンドウ101に表示されている話題構造リスト内の任意のGUIノードに対して開く操作が行われると、例えば図8のステップS301〜ステップ305の処理を行うことで、アウトライナウィンドウ101に表示させる話題構造リストを変化させる。
【0062】
ステップS301:話題構造操作部22は、ユーザが例えば任意のGUIノードに対してマウスカーソルを合わせてクリックするなどの予め定められた操作(第1の操作)を行うと、この操作を受け付ける。ただし、操作対象のGUIノードのラベルにスラッシュ区切りで複数の話題名が表記されている場合は、どの話題名が操作されたかを区別し、操作された話題名が、当該GUIノードが示す話題の話題名(つまり、ラベルの最後尾に表記された話題名)である場合に限り、以下の処理を実行する。
【0063】
ステップS302:話題構造操作部22は、操作されたGUIノードが示す話題に従属する子話題があるか否かを判定する。そして、判定の結果がYesであればステップS303に進み、Noであれば処理を終了する。
【0064】
ステップS303:話題構造操作部22は、操作されたGUIノードを話題構造リストから削除する。
【0065】
ステップS304:話題構造操作部22は、操作されたGUIノードが示す話題に従属するすべての子話題のGUIノードを話題構造リストに追加する。子話題のGUIノードのラベルには、当該GUIノードが示す話題(子話題)の話題名の前方に、操作されたGUIノードが示す話題(親話題)の話題名が、スラッシュ区切りのパス表記によって従属関係が示された状態で表記されている。
【0066】
ステップS305:話題構造操作部22は、話題構造モデルMの話題前後関係モデルM2で示される順序に基づき、話題構造リストに含まれるすべてのGUIノードを話題間の前後関係に従って並べ替えて、アウトライナウィンドウ101に表示させる。
【0067】
図9は、任意のGUIノードに対して閉じる操作が行われた場合における話題構造操作部22の処理手順の一例を示すフローチャートである。話題構造操作部22は、アウトライナウィンドウ101に表示されている話題構造リスト内の任意のGUIノードに対して閉じる操作が行われると、例えば図9のステップS401〜ステップ404の処理を行うことで、アウトライナウィンドウ101に表示させる話題構造リストを変化させる。
【0068】
ステップS401:話題構造操作部22は、ユーザが例えば任意のGUIノードに対してマウスカーソルを合わせてクリックするなどの予め定められた操作(第2の操作)を行うと、この操作を受け付ける。ただし、閉じる操作の対象となるGUIノードは、ラベルにスラッシュ区切りで複数の話題名が表記されたものである。話題構造操作部22は、GUIノードのラベルに表記された複数の話題名のうち、どの話題名が操作されたかを区別し、操作された話題名が、当該GUIノードが示す話題の親話題の話題名(つまり、ラベルの最後尾に表記された話題名よりも1つ前の話題名)である場合に限り、以下の処理を実行する。
【0069】
ステップS402:話題構造操作部22は、操作されたGUIノードが示す話題の親話題のGUIノードを話題構造リストに追加する。
【0070】
ステップS403:話題構造操作部22は、操作されたGUIノードと、そのGUIノードが示す話題の兄弟話題を示すすべてのGUIノードを話題構造リストから削除する。
【0071】
ステップS404:話題構造操作部22は、話題構造モデルMの話題前後関係モデルM2で示される順序に基づき、話題構造リストに含まれるすべてのGUIノードを、話題間の前後関係に従って並べ替えて、アウトライナウィンドウ101に表示させる。
【0072】
図10は、GUIノードの開閉操作が行われた場合におけるアウトライナウィンドウ101の画面遷移の一例を示す図である。
【0073】
例えば、図10(a)の状態から、ユーザが[粉ミルク]のGUIノードをクリックすると、[粉ミルク]のGUIノードが展開されて、図10(b)に示すように、[お兄さん]のGUIノードの上方に[粉ミルク/母乳]、[粉ミルク/レギュラーミルク]、[粉ミルク/ペプチドミルク]の3つのGUIノードが配置される。さらに、図10(b)の状態から、ユーザが[粉ミルク/ペプチドミルク]のGUIノードの“ペプチドミルク”の部分をクリックすると、[粉ミルク/ペプチドミルク]のGUIノードが展開されて、図10(c)に示すように、[お兄さん]のGUIノードの上方に、[粉ミルク/ペプチドミルク/低アレルゲン]のGUIノードが配置され、[お兄さん]のGUIノードと[アレルギー]のGUIノードとの間に[粉ミルク/ペプチドミルク/味]、[粉ミルク/ペプチドミルク/価格]、[粉ミルク/ペプチドミルク/量]、[粉ミルク/ペプチドミルク/成分]の4つのGUIノードが配置され、[アレルギー]のGUIノードの下方に[粉ミルク/ペプチドミルク/タンパク質]のGUIノードが配置される。
【0074】
一方、図10(c)の状態から、ユーザが例えば[粉ミルク/ペプチドミルク/味]のGUIノードの“ペプチドミルク”の部分をクリックすると、[粉ミルク/ペプチドミルク/味]のGUIノードおよび兄弟話題のすべてのGUIノードが[粉ミルク/ペプチドミルク]のGUIノードに収束されて、図10(b)に示す状態に戻る。さらに、図10(b)の状態から、ユーザが[粉ミルク/ペプチドミルク]のGUIノードの“粉ミルク”の部分をクリックすると、[粉ミルク/ペプチドミルク]のGUIノードおよび兄弟話題のすべてのGUIノードが[粉ミルク]のGUIノードに収束されて、図10(a)の状態に戻る。
【0075】
要約要求部23は、アウトライナウィンドウ101に表示された話題構造リストを通じてユーザが指定した話題に関して、その話題分布範囲の全体が本文ウィンドウ102に過不足なく収まるように、テキストTの要約をインタラクティブ要約器30に対して要求する。テキストTを要約する処理自体は、要約要求部23からの要求に応じてインタラクティブ要約器30が実行し、その結果が、本文ウィンドウ102に表示される。
【0076】
図11は、要約要求部23の処理手順の一例を示すフローチャートである。要約要求部23は、例えば図11のステップS501〜ステップS502の処理を行うことで、インタラクティブ要約器30に対してテキストTの要約を要求する。
【0077】
ステップS501:要約要求部23は、例えば、ユーザがコントロールキーを押しながら、話題構造リスト内の任意のGUIノードのラベルに含まれる話題名のいずれかに対してマウスカーソルを合わせてクリックするなど、ある話題に関するテキストTの要約を指示する操作として予め定められた操作(第3の操作)を行うと、この操作を受け付ける。
【0078】
ステップS502:要約要求部23は、ステップS501で受け付けた操作で指定された話題の話題分布範囲を要約適用範囲Rとして指定するとともに、本文ウィンドウ102に収まる文量(文字数または文数)を目標サイズとして指定し、インタラクティブ要約器30に対してテキストTの要約を要求する。
【0079】
インタラクティブ要約器30は、話題構造モデル生成器10によって生成された話題構造モデルMを活用しながら、入力されたテキストTをインタラクティブに要約して本文ウィンドウ102に表示させる。本実施形態のインタラクティブ要約器30は、特に以下の(1)〜(4)に示す特徴を持つ。
(1)話題アウトライナ20の要約要求部23の要求に従って本文ウィンドウ102にテキストTの要約を表示させつつ、その要約率をユーザ操作に応じて動的に変更することができる。
(2)要約率を変更する操作に関しては、テキストT全体の要約率を変更する「大域モード」と、テキストTの中で興味がある部分を中心として局所的な領域だけ要約率を変更する「局所モード」とがある。
(3)局所モードでは、話題構造モデルMを用いて、なるべく話題が続いている途中で要約率が切り替わらないように、同じ要約率を適用する範囲を自動調整する。
(4)要約処理の文やフレーズの重要文選択の際に、話題構造モデルMを用いて話題構造に即した重要性評価を行う。
【0080】
図12は、本文ウィンドウ102に表示されるテキストTの要約率を変更する操作方法をまとめた図である。なお、図12に示す操作方法は、操作デバイスとしてマウスを用いた場合の例である。操作デバイスとしてマウス以外のものを利用する場合には、その操作デバイスに適した操作方法を予め定めておけばよい。
【0081】
ユーザが本文ウィンドウ102の右上に設けられた「+」ボタン103にマウスカーソルを合わせてクリックすると、大域モードでの文追加コマンドが発行される。また、ユーザが本文ウィンドウ102の右上に設けられた「−」ボタン104にマウスカーソルを合わせてクリックすると、大域モードでの文削除コマンドが発行される。なお、これらのユーザ操作は、図3に示した「+」「−」ボタン操作op2に相当する。
【0082】
また、ユーザが本文ウィンドウ102上の注目するテキスト位置にマウスカーソルを合わせて、上向きのマウスホイール操作を行うと、カーソルの位置を中心とした局所モードでの文追加コマンドが発行される。また、ユーザが本文ウィンドウ102上の注目するテキスト位置にマウスカーソルを合わせて、下向きのマウスホイール操作を行うと、カーソルの位置を中心とした局所モードでの文削除コマンドが発行される。なお、これらのユーザ操作(第4の操作)は、図3に示したマウスホイール操作op1に相当する。
【0083】
なお、本実施形態では、説明を簡易化するため、テキストTに対する要約処理として、自動要約処理において最も基本的な処理である文選択処理のみを行うものとする。しかし、フレーズ選択やフレーズ言い換え、文短縮など、自動要約の様々な既存技術を用いてテキストTの要約を行うことも可能である。なお、文選択に基づく自動要約の代表的な例は、下記の参考文献に開示されている。
参考文献:H.P.Luhn.The automatic creation of literature abstracts.IBM Journal of Research and Development,Vol.2,No.2,pp159-165,1958.
【0084】
インタラクティブ要約器30は、図3に示したように、適用範囲調整部31および重要文選択部32の2つのサブモジュールを含む。以下、これらの各サブモジュールにおける処理を順に説明する。
【0085】
適用範囲調整部31は、ユーザにより本文ウィンドウ102上でマウスホイール操作op1(第4の操作)が行われたときに、要約対象にすべき適切なテキスト範囲を決定するサブモジュールである。
【0086】
同じ話題が続いている途中の位置から異なる要約率で要約処理を開始すると、可読性が低下して話の流れが追いにくくなる。このため、理想的には、話題が切り替わる位置と、要約率を切り替える位置とが一致していることが望ましい。そこで、適用範囲調整部31は、話題構造モデルMを参照して、操作に応じた要約率を適用する範囲(要約適用範囲)を話題分布範囲と一致させる調整処理を行う。
【0087】
ただし、マウスカーソルが置かれたテキスト位置を話題分布範囲に含む話題は複数あるため、要約適用範囲をどの話題分布範囲と一致させるかについて判断が必要である。これについて、本実施形態では、要約適用範囲に一致させる話題分布範囲をどれにするかをユーザに選択させる「手動」と、要約適用範囲に一致させる話題分布範囲をどれにするかをテキスト処理装置が自動選択する「自動」との2種類の方法を用意している。
【0088】
これらの方法のうち、手動による方法の場合は、例えば、候補となる話題をメニューで表示して、その中からユーザに選択させればよい。一方、自動による方法の場合は、最密優先アルゴリズムに基づく適用範囲調整と、重み付き合成アルゴリズムに基づく適用範囲調整の2種類がある。以下では、これら最密優先アルゴリズムに基づく適用範囲調整と、重み付き合成アルゴリズムに基づく適用範囲調整について、個別に説明する。
【0089】
図13は、最密優先アルゴリズムに基づく適用範囲調整を行う場合の適用範囲調整部31の処理手順の一例を示すフローチャートである。適用範囲調整部31は、最密優先アルゴリズムに基づく適用範囲調整を行う場合、例えば図13のステップS601〜ステップS605の処理を行うことで、要約適用範囲を調整する。
【0090】
ステップS601:適用範囲調整部31は、本文ウィンドウ102上のマウスカーソルが置かれた位置を話題分布範囲に含む話題をすべてリストアップする。
【0091】
ステップS602:適用範囲調整部31は、ステップS601でリストアップした話題を順に1つ取り出す。
【0092】
ステップS603:適用範囲調整部31は、マウスカーソルが置かれた位置を中心に前後N語(Nは定数)以内のテキスト範囲(以下、密度測定範囲という。)において、ステップS602で取り出した話題に属する話題語の個数をカウントする。この個数を話題密度と呼ぶ。
【0093】
ステップS604:適用範囲調整部31は、ステップS601でリストアップした話題のすべてに対して、話題密度のカウントが終了したか否かを判定する。そして、判定の結果がYesであればステップS605に進み、NoであればステップS602に戻って以降の処理を繰り返す。
【0094】
ステップS605:適用範囲調整部31は、ステップS603でカウントした話題密度が最大となる話題を選択し、その話題の話題分布範囲を要約適用範囲とする。
【0095】
図14は、重み付き合成アルゴリズムに基づく適用範囲調整を行う場合の適用範囲調整部31の処理手順の一例を示すフローチャートである。適用範囲調整部31は、重み付き合成アルゴリズムに基づく適用範囲調整を行う場合、例えば図14のステップS701〜ステップS705の処理を行うことで、要約適用範囲を調整する。
【0096】
ステップS701:適用範囲調整部31は、本文ウィンドウ102上のマウスカーソルが置かれた位置を話題分布範囲に含む話題をすべてリストアップする。
【0097】
ステップS702:適用範囲調整部31は、ステップS701でリストアップした話題を順に1つ取り出す。
【0098】
ステップS703:適用範囲調整部31は、図13のステップS603と同様に、ステップS702で取り出した話題についての話題密度をカウントする。
【0099】
ステップS704:適用範囲調整部31は、ステップS701でリストアップした話題のすべてに対して、話題密度のカウントが終了したか否かを判定する。そして、判定の結果がYesであればステップS705に進み、NoであればステップS702に戻って以降の処理を繰り返す。
【0100】
ステップS705:適用範囲調整部31は、ステップS701でリストアップした各話題の話題分布範囲を、ステップS703でカウントした話題密度を用いて重み付き合成して合成範囲を求め、求めた合成範囲を要約適用範囲とする。具体的には、マウスカーソルが置かれた位置から合成範囲の前方境界までの距離をf、後方境界までの距離をbとすると、合成範囲は、下記式(1)〜(3)で示されるfからbの範囲となる。
f=Σ・w・f ・・・(1)
b=Σ・w・b ・・・(2)
=d/Σ・d ・・・(3)
ただし、i,jは話題番号、fはマウスカーソルが置かれた位置から話題iの話題分布範囲の前方境界までの距離、bはマウスカーソルが置かれた位置から話題iの話題分布範囲の後方境界までの距離、dは話題iの話題密度、dは話題jの話題密度である。
【0101】
重要文選択部32は、要約要求部23からの要求に応じて要約テキストT図3参照)を生成して本文ウィンドウ102に表示させるとともに、ユーザにより本文ウィンドウ102上でマウスホイール操作op1、あるいは「+」「−」ボタン操作op2が行われたときに、文を削除または追加する処理を行って要約テキストTを更新するサブモジュールである。
【0102】
重要文選択部32は、マウスホイール操作op1をきっかけとして要約テキストTを更新する場合は、適用範囲調整部31によって決定された要約適用範囲のテキストを操作量に応じた要約率で要約して、新たな要約テキストTとする。また、重要文選択部32は、「+」「−」ボタン操作op2をきっかけとして要約テキストTを更新する場合は、テキストTの全体を操作量に応じた要約率で要約して、新たな要約テキストTとする。
【0103】
本実施形態の重要文選択部32は、特に、話題構造モデルMを用いて文の重要性を判定する。これにより、例えば、子孫話題を多く抱える話題は重要であるなどの判定が可能となる。
【0104】
以下では、重要文選択部32による文削減処理、文追加処理、およびこれらの処理で用いられるスコアの計算方法について、個別に説明する。
【0105】
文削除処理は、大域モードでの文削除コマンドや局所モードでの文削除コマンドが発行されたときに実行される。また、要約要求部23による要求が、本文ウィンドウ102に表示されているテキストを結果的に減らす要求であった場合にも、文削除処理は実行される。
【0106】
図15は、文削除処理を行う場合の重要文選択部32の処理手順の一例を示すフローチャートである。重要文選択部32は、例えば図15のステップS801〜ステップS805の処理を行うことで、本文ウィンドウ102に表示される要約テキストTを更新する。
【0107】
ステップS801:重要文選択部32は、テキストTにおける要約適用範囲を決定する。具体的には、重要文選択部32は、適用範囲調整部31から呼び出された場合は、適用範囲調整部31の処理結果を要約適用範囲とする。また、重要文選択部32は、要約要求部23から呼び出された場合は、要約要求部23の要求で指定された要約適用範囲R(図3参照)を要約適用範囲とする。また、重要文選択部32は、要約適用範囲が特に指定されていない場合は、テキストTの全体を要約適用範囲とする。
【0108】
ステップS802:重要文選択部32は、要約テキストTの目標サイズ(文字数または文数)を決定する。具体的には、重要文選択部32は、大域モードでの文削除コマンドや局所モードでの文削除コマンドが発行された場合は、例えば、本文ウィンドウ102に現在表示されているテキストの文字数または文数から所定数を減算した数を目標サイズにすればよい。また、重要文選択部32は、要約要求部23から呼び出された場合は、要約要求部23により指定された目標サイズ、すなわち、本文ウィンドウ102に収まる文字数または文数を目標サイズにすればよい。
【0109】
ステップS803:重要文選択部32は、ステップS801で決定した要約適用範囲に含まれる文のうち、後述する方法によって計算されるスコアが最も低い文を除去する。
【0110】
ステップS804:重要文選択部32は、ステップS803で除去されずに残った文全体のサイズが、ステップS802で決定した目標サイズに収まるか否かを判定する。そして、判定の結果がYesであればステップS805に進み、NoであればステップS803に戻って以降の処理を繰り返す。
【0111】
ステップS805:重要文選択部32は、除去されずに残った文全体を新たな要約テキストTとして、本文ウィンドウ102の表示を更新する。
【0112】
文追加処理は、大域モードでの文追加コマンドや局所モードでの文追加コマンドが発行されたときに実行される。また、要約要求部23による要求が、本文ウィンドウ102に表示されているテキストを結果的に増やす要求であった場合にも、文追加処理は実行される。
【0113】
図16は、文追加処理を行う場合の重要文選択部32の処理手順の一例を示すフローチャートである。重要文選択部32は、例えば図16のステップS901〜ステップS905の処理を行うことで、本文ウィンドウ102に表示される要約テキストTを更新する。
【0114】
ステップS901:重要文選択部32は、テキストTにおける要約適用範囲を決定する。具体的には、重要文選択部32は、適用範囲調整部31から呼び出された場合は、適用範囲調整部31の処理結果を要約適用範囲とする。また、重要文選択部32は、要約要求部23から呼び出された場合は、要約要求部23の要求で指定された要約適用範囲R(図3参照)を要約適用範囲とする。また、重要文選択部32は、要約適用範囲が特に指定されていない場合は、テキストTの全体を要約適用範囲とする。
【0115】
ステップS902:重要文選択部32は、要約テキストTの目標サイズ(文字数または文数)を決定する。具体的には、重要文選択部32は、大域モードでの文追加コマンドや局所モードでの文追加コマンドが発行された場合は、例えば、本文ウィンドウ102に現在表示されているテキストの文字数または文数に所定数を加算した数を目標サイズにすればよい。また、重要文選択部32は、要約要求部23から呼び出された場合は、要約要求部23により指定された目標サイズ、すなわち、本文ウィンドウ102に収まる文字数または文数を目標サイズにすればよい。
【0116】
ステップS903:重要文選択部32は、ステップS901で決定した要約適用範囲に含まれる文であって、文削除処理によって除去された文のうち、後述する方法によって計算されるスコアが最も高い文を、元の位置に追加する。
【0117】
ステップS904:重要文選択部32は、ステップS903で追加した文を含む文全体のサイズが、ステップS902で決定した目標サイズに収まるか否かを判定する。そして、判定の結果がYesであればステップS905に進み、NoであればステップS903に戻って以降の処理を繰り返す。
【0118】
ステップS905:重要文選択部32は、追加した文を含む文全体を新たな要約テキストTとして、本文ウィンドウ102の表示を更新する。
【0119】
上述した文削除処理や文追加処理で用いる文のスコアは、子孫話題を多く抱える話題は重要な話題である、という観点で計算されたスコアである。以下では、このスコアの計算方法の一例を説明する。
【0120】
文の重要度を表すスコアを計算する従来の方法としては、例えば、文の位置(テキスト先頭文やパラグラフ先頭文は重要と考える)や、文に含まれる単語のTFIDF値、「まとめると」などの手がかり表現など、文の重要度を示す何らかの手がかりを用いるものがある。本実施形態のスコア計算方法は、話題構造モデルMを文の重要度を示す手がかりとして用いる方法である。この方法は、従来のスコア計算方法と組み合わせる(例えば和を取るなど)ことが可能である。ただし、以下では説明を簡単にするため、本実施形態に特徴的な話題構造モデルMのみを用いたスコアの計算方法を説明する。
【0121】
図17は、文のスコアを計算する場合の重要文選択部32の処理手順の一例を示すフローチャートである。重要文選択部32は、例えば図17のステップS1001〜ステップS1006の処理を行うことで、テキストTに含まれる各文のスコアを計算する。
【0122】
ステップS1001:重要文選択部32は、スコア計算の対象となる文に含まれる話題語をすべてリストアアップする。
【0123】
ステップS1002:重要文選択部32は、ステップS1001でリストアップした話題語を順に1つ取り出す。
【0124】
ステップS1003:重要文選択部32は、話題辞書15(図3参照)を用いて、ステップS1002で取り出した話題語が属する話題を特定する。
【0125】
ステップS1004:重要文選択部32は、ステップS1003で特定した話題およびその子孫話題の重要度の合計を計算する。なお、話題の重要度としては、例えば、上述したように、その話題に属する話題語のTFIDF値の平均値を用いる。
【0126】
ステップS1005:重要文選択部32は、ステップS1004で得られた重要度の合計値を、文のスコアに加算する。
【0127】
ステップS1006:重要文選択部32は、ステップS1001でリストアップした話題語のすべてに対して、ステップS1003〜ステップS1005の処理を行ったか否かを判定する。そして、判定の結果がNoであればステップS1002に戻って以降の処理を繰り返し、Yesであれば、ステップS1005で得られたスコアを文のスコアとして、一連の処理を終了する。
【0128】
なお、本実施形態では、重要文選択部32がテキストTにおける文を処理単位として上述した文削除処理や文追加処理を行っているが、文に限らず、フレーズやパラグラフなど、予め定めたテキスト単位を処理単位として、削除や追加の処理を行うようにしてもよい。
【0129】
以上、具体的な例を挙げながら詳細に説明したように、本実施形態のテキスト処理装置は、入力されたテキストTを解析して話題構造モデルMを生成し、この話題構造モデルMに基づいて、テキストTに含まれる話題間の従属関係と前後関係とを端的に表した話題構造リストをディスプレイに表示させる。そして、話題構造リストに対するユーザの操作に応じて話題構造リストに含まれるGUIノードの展開や収束を行い、任意のGUIノードを指定したユーザの操作に応じて、そのGUIノードで示される話題に関する要約テキストTをディスプレイに表示させる。このように、本実施形態のテキスト処理装置によれば、入力されたテキストTの話題構造に基づいて処理を行うため、論理構造を持たないテキストに対して探求的なアクセスが可能となる。
【0130】
なお、以上説明した例では、話題構造モデル生成器10が、図5に示した処理手順に従って、入力されたテキストTから話題構造モデルMを生成するようにしている。しかし、以下に示す点を考慮して、話題構造モデルMを生成する処理手順に変形を加えるようにしてもよい。
【0131】
ある話題について、話題語が出現した後にしばらく出現せず、その後に出現するというように、ある話題の話題分布範囲の中に大きなブランクが含まれていることがある。このように、話題分布範囲の中に大きなブランクがある話題は、ブランクの前の話題と後の話題とを異なる話題として取り上げていることが多く、ブランクの前後を別々の話題として扱ったほうが分かり易くなることが多い。そこで、話題分布範囲の中に大きなブランクが含まれている場合は、そのブランクの前後を別の話題として分割するようにしてもよい。
【0132】
また、話題によっては話題分布範囲が極端に広大となる場合がある。このような話題をアウトライナで扱う場合、その話題を子話題に展開する操作を行うと、膨大な数の子話題に展開されて操作の妨げになるなどの問題が生じる虞がある。そこで、話題分布範囲の大きさに上限を設けて、話題分布範囲が大きすぎる話題については、その話題を複数に分割するようにしてもよい。
【0133】
図18は、以上の変形を加えた場合の話題構造モデル生成器10の処理手順を示すフローチャートであり、図5のステップS101とステップS102との間に追加される処理を示したものである。本例の場合、話題構造モデル生成器10は、図5のステップS101の処理の後に、図18に示すステップS1101〜ステップS1107の処理を行った上で、図5のステップS102の処理を行うことになる。
【0134】
ステップS1101:話題構造モデル生成器10は、図5のステップS101で獲得した共参照クラスタを順に1つ取り出す。
【0135】
ステップS1102:話題構造モデル生成器10は、テキストTの文ごとにステップS1101で取り出した共参照クラスタのメンバーが出現する頻度を表したヒストグラムを作成する。
【0136】
ステップS1103:話題構造モデル生成器10は、ステップS1102で作成したヒストグラムにおいて、出現頻度0の文が所定数以上連続するブランク箇所があるか否かを判定する。そして、判定の結果がYesであればステップS1104に進み、NoであればステップS1105に進む。
【0137】
ステップS1104:話題構造モデル生成器10は、ステップS1101で取り出した共参照クラスタを、ブランク箇所よりも前に出現しているメンバーで構成される共参照クラスタと、ブランク箇所よりも後に出現しているメンバーで構成される共参照クラスタとに分割する。
【0138】
ステップS1105:話題構造モデル生成器10は、ステップS1101で取り出した共参照クラスタのメンバー数が所定数を超えているか否かを判定する。そして、判定の結果がYesであればステップS1106に進み、NoであればステップS1107に進む。
【0139】
ステップS1106:話題構造モデル生成器10は、共参照クラスタのメンバー数が所定数以下となるように、メンバーの出現位置に沿ってステップS1101で取り出した共参照クラスタを分割する。なお、本ステップでは、共参照クラスタのメンバー数と話題分布範囲の大きさが、ほぼ比例する関係にあるとの仮定のもと、共参照クラスタのメンバー数を所定数以下に制限することで、話題分布範囲の大きさを制限している。ただし、このステップに代えて、例えばステップS1102で生成したヒストグラムを用いて話題分布範囲の大きさが上限を超えているか否かを判定し、上限を超えている場合に、その話題を上限以下の話題分布範囲を持つ複数の話題に分割する処理を行うようにしてもよい。
【0140】
ステップS1107:話題構造モデル生成器10は、図5のステップS101で獲得した共参照クラスタのすべてに対して、ステップS1102〜ステップS1106の処理を行ったか否かを判定する。そして、判定の結果がNoであればステップS1101に戻って以降の処理を繰り返し、Yesであれば図5のステップS102に進む。
【0141】
以上説明した本実施形態のテキスト処理装置における上述した各機能は、例えば、テキスト処理装置において所定のプログラムを実行することにより実現することができる。この場合、テキスト処理装置は、例えば図19に示すように、CPU(Central Processing Unit)51などの制御装置、ROM(Read Only Memory)52やRAM(Random Access Memory)53などの記憶装置、表示器や各種操作デバイスが接続される入出力I/F54、ネットワークに接続して通信を行う通信I/F55、各部を接続するバス56などを備えた、通常のコンピュータを利用したハードウェア構成とすることができる。
【0142】
本実施形態のテキスト処理装置で実行されるプログラムは、例えば、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disc)等のコンピュータで読み取り可能な記録媒体に記録されてコンピュータプログラムプロダクトとして提供される。
【0143】
また、本実施形態のテキスト処理装置で実行されるプログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態のテキスト処理装置で実行されるプログラムをインターネットなどのネットワーク経由で提供または配布するように構成してもよい。
【0144】
また、本実施形態のテキスト処理装置で実行されるプログラムを、ROM52などに予め組み込んで提供するように構成してもよい。
【0145】
本実施形態のテキスト処理装置で実行されるプログラムは、テキスト処理装置の各処理部(話題構造モデル生成器10、話題アウトライナ20(初期状態生成部21、話題構造操作部22、要約要求部23)、およびインタラクティブ要約器30(適用範囲調整部31、重要文選択部32))を含むモジュール構成となっており、実際のハードウェアとしては、例えば、CPU51(プロセッサ)が上記記録媒体からプログラムを読み出して実行することにより、上述した各処理部がRAM53(主記憶)上にロードされ、上述した各処理部がRAM53(主記憶)上に生成されるようになっている。なお、本実施形態のテキスト処理装置は、上述した各処理部の一部または全部を、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などの専用のハードウェアを用いて実現することも可能である。
【0146】
以上、本発明の実施形態を説明したが、ここで説明した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。ここで説明した新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。ここで説明した実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0147】
10 話題構造モデル生成器
15 話題辞書
20 話題アウトライナ
21 初期状態生成部
22 話題構造操作部
23 要約要求部
30 インタラクティブ要約器
31 適用範囲調整部
32 重要文選択部
T テキスト
要約テキスト
M 話題構造モデル
M1 話題従属関係モデル
M2 話題前後関係モデル
図1
図2-1】
図2-2】
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19