【文献】
Tsutomu Hirao et al.,Single-Document Summarization as a Tree Knapsack Problem,Proceedings of the 2013 Conference on Empirical Methods in Natural Language Processing [online],2013年10月,p.1515-1520,[2017年10月4日検索],URL,http://aclweb.org/anthology/D/D13/D13-1158.pdf
【文献】
川原 純ほか,組合せ問題の解を列挙索引化するZDD構築アルゴリズムの汎用化,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2012年 6月14日,Vol.112 No.93,p.1-7
【文献】
川原 純ほか,グラフ列挙索引化技法の種々の問題への適用,経営の科学 オペレーションズ・リサーチ,日本,公益社団法人日本オペレーションズ・リサーチ学会 株式会社日科技連出版社,2012年11月 1日,第57巻 第11号,p.10-15
(58)【調査した分野】(Int.Cl.,DB名)
入力テキストに含まれる文字列単位を表すノードの各々から構成される木構造から、許容される部分木を選択することにより、前記入力テキストを要約するテキスト要約装置であって、
前記木構造の許容される部分木の集合を表し、かつ、2つの終端ノード、及び前記木構造の各ノードに対応する、HI側子ノード及びLO側子ノードを有する根ノード又は中間ノードを含むゼロサプレス型二分決定グラフ(Zero-suppressed Binary Decision Diagrams)を構築するZDD構築部と、
前記木構造の各ノードについて入力された前記ノードのスコア及び長さと、入力された上限長さLと、前記ZDD構築部によって構築された前記ゼロサプレス型二分決定グラフとに基づいて、各ノードの順序に従って、n番目のノードについて、各長さj(0≦j≦L)に対し、n番目のノードを根ノードとする前記ゼロサプレス型二分決定グラフが表す部分木の集合のうち、各ノードの長さの和が長さjと等しくなる部分木であって、かつ、前記部分木の各ノードのスコアの和が最大となる部分木を繰り返し計算して記憶部に記憶する最適値計算部と、
前記最適値計算部によって繰り返し計算された計算過程に基づいて、前記上限長さL以下となる許容される部分木のうち、前記許容される部分木の各ノードのスコアの和が最大となる許容される部分木を、前記入力テキストの要約として出力するバックトラック部とを含み、
前記最適値計算部は、n番目のノードを根ノードとする前記ゼロサプレス型二分決定グラフが表す部分木の集合のうち、各ノードの長さの和が長さjと等しくなる部分木であって、かつ、前記部分木の各ノードのスコアの和が最大となる部分木を計算するとき、前記記憶部に記憶した、各ノードのスコアの和の最大値を呼び出して、LO側子ノードを根ノードとする前記ゼロサプレス型二分決定グラフが表す部分木の集合のうち、各ノードの長さの和が長さjと等しくなる部分木と、n番目のノードを根ノードとする前記ゼロサプレス型二分決定グラフが表す部分木の集合のうち、各ノードの長さの和が長さjと等しくなるHI側子ノードを含む前記部分木とのうち、各ノードのスコアの和が最大となる前記部分木を再帰的に計算する
テキスト要約装置。
前記ZDD構築部は、前記入力テキストに対して予め定められた複数の根候補ノードを根ノードとする、前記木構造の許容される部分木の集合を表し、かつ、2つの終端ノード、及び前記木構造の各ノードに対応する、HI側子ノード及びLO側子ノードを有する根ノード又は中間ノードを含むゼロサプレス型二分決定グラフを構築する請求項1記載のテキスト要約装置。
前記木構造は、入力テキストに含まれる第1の文字列単位を表すノードの各々から構成される木構造であって、前記第1の文字列単位を表すノードを、前記第1の文字列単位に含まれ、かつ、前記第1の文字列単位より小さい文字列単位である第2の文字列単位を表すノードの各々から構成される木構造に置き換えた、入れ子構造で表現される木構造である請求項1又は2記載のテキスト要約装置。
入力テキストに含まれる文字列単位を表すノードの各々から構成される木構造から、許容される部分木を選択することにより、前記入力テキストを要約するテキスト要約方法であって、
ZDD構築部が、前記木構造の許容される部分木の集合を表し、かつ、2つの終端ノード、及び前記木構造の各ノードに対応する、HI側子ノード及びLO側子ノードを有する根ノード又は中間ノードを含むゼロサプレス型二分決定グラフ(Zero-suppressed Binary Decision Diagrams)を構築するステップと、
最適値計算部が、前記木構造の各ノードについて入力された前記ノードのスコア及び長さと、入力された上限長さLと、前記ZDD構築部によって構築された前記ゼロサプレス型二分決定グラフとに基づいて、各ノードの順序に従って、n番目のノードについて、各長さj(0≦j≦L)に対し、n番目のノードを根ノードとする前記ゼロサプレス型二分決定グラフが表す部分木の集合のうち、各ノードの長さの和が長さjと等しくなる部分木であって、かつ、前記部分木の各ノードのスコアの和が最大となる部分木を繰り返し計算して記憶部に記憶するステップと、
バックトラック部が、前記最適値計算部によって繰り返し計算された計算過程に基づいて、前記上限長さL以下となる許容される部分木のうち、前記許容される部分木の各ノードのスコアの和が最大となる許容される部分木を、前記入力テキストの要約として出力するステップとを含み、
前記最適値計算部によって計算するステップは、n番目のノードを根ノードとする前記ゼロサプレス型二分決定グラフが表す部分木の集合のうち、各ノードの長さの和が長さjと等しくなる部分木であって、かつ、前記部分木の各ノードのスコアの和が最大となる部分木を計算するとき、前記記憶部に記憶した、各ノードのスコアの和の最大値を呼び出して、LO側子ノードを根ノードとする前記ゼロサプレス型二分決定グラフが表す部分木の集合のうち、各ノードの長さの和が長さjと等しくなる部分木と、n番目のノードを根ノードとする前記ゼロサプレス型二分決定グラフが表す部分木の集合のうち、各ノードの長さの和が長さjと等しくなるHI側子ノードを含む前記部分木とのうち、各ノードのスコアの和が最大となる前記部分木を再帰的に計算する
テキスト要約方法。
前記ZDD構築部によってゼロサプレス型二分決定グラフを構築するステップは、前記入力テキストに対して予め定められた複数の根候補ノードを根ノードとする、前記木構造の許容される部分木の集合を表し、かつ、2つの終端ノード、及び前記木構造の各ノードに対応する、HI側子ノード及びLO側子ノードを有する根ノード又は中間ノードを含むゼロサプレス型二分決定グラフを構築する請求項4記載のテキスト要約方法。
前記木構造は、入力テキストに含まれる第1の文字列単位を表すノードの各々から構成される木構造であって、前記第1の文字列単位を表すノードを、前記第1の文字列単位に含まれ、かつ、前記第1の文字列単位より小さい文字列単位である第2の文字列単位を表すノードの各々から構成される木構造に置き換えた、入れ子構造で表現される木構造である請求項4又は5記載のテキスト要約方法。
【発明を実施するための形態】
【0016】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【0018】
まず、本発明の実施の形態における概要を説明する。
【0019】
本発明の実施の形態では、部分木の選択問題を解くための動的計画法に基づく要約生成装置を用いる。本発明の実施の形態で示す要約生成装置を用いることで、部分木の選択問題において常に最適解を求められることが保証されている。また、処理時間も入力として与えられた木のノード数をN、生成する要約の最大長さをLとしたときに、O(NLlogN)となることが理論的に保証されている。
【0020】
本発明の実施の形態で示す要約生成装置では、入力により木構造が与えられた時に、部分木の集合をゼロサプレス型二分決定グラフ(Zero-suppressed Binary Decision Diagrams:以下、ZDDと記載する。)にまず変換する。ゼロサプレス型二分決定グラフは集合族を表現するためのデータ構造であり、集合族を有向非巡回グラフ(Directed Acyclic Graph:以下、DAGと記載する。)として表現する。部分木の集合をZDDとして表現したのちに、ZDDの構造を用いた動的計画法を実行することによって最適な部分木を得る。原理的には、木のノード数をN、各ノードをe
1,・・・,e
N、ノードe
iのスコアをw
i、長さをl
iとすると、以下(1)及び(2)式に示す問題を説くことに相当する。
【0022】
ここでTは部分木、Sは部分木の集合である。各部分木Tはそれに含まれるノードの集合として表現される。したがってT∈{e
1,・・・,e
N}である。
【0023】
<本発明の第1の実施の形態に係るテキスト要約装置の構成>
【0024】
次に、本発明の第1の実施の形態に係るテキスト要約装置の構成について説明する。第1の実施の形態に係るテキスト要約装置は文抽出問題を解く。
図1に示すように、本発明の第1の実施の形態に係るテキスト要約装置100は、CPUと、RAMと、後述するテキスト要約処理ルーチンを実行するためのプログラムや各種データを記憶したROMと、を含むコンピュータで構成することが出来る。このテキスト要約装置100は、機能的には
図1に示すように入力部10と、演算部20と、出力部50とを備えている。
【0025】
入力部10は、木構造として表現された入力文書、木構造の各ノードに対応付けられたスコア、長さ、及び要約の長さとして許容する上限長さLを受け付ける。木構造の各ノードは、文書を構成する構成単位に相当し、本実施の形態では、文に相当する。入力として与えられる木構造の例を
図2に示す。このような木構造は、上記非特許文献3に記載されている談話構造解析器に文書を入力することで得ることができる。
【0026】
演算部20は、ZDD構築部30と、最適値計算部32と、記憶部40とを含んで構成されている。
【0027】
ZDD構築部30は、入力部10で受け付けた、木構造として表現された入力文書に基づいて、木構造の許容される部分木の集合を表し、かつ、2つの終端ノード、及び木構造の各ノードに対応する、HI側子ノード及びLO側子ノードを有する根ノード又は中間ノードを含むZDDを構築する。
【0028】
ZDD構築部30の具体的な処理を以下に説明する。ZDD構築部30は、まず、入力部10により受け付けた、木構造として表現された入力文書を取得する。次に、ZDD構築部30は、入力部10により受け付けた、各ノードに対するスコアw
iおよび長さl
i、要約の上限長さLを取得する。スコアw
iは非負実数、長さ、及び上限長さは非負整数であるとする。スコア、及び長さの定義は任意であるが、例えば、非特許文献1と同様に、スコアを単語の出現頻度と木の構造より定め、長さは文に含まれる単語の個数で定義する。
【0029】
次に、取得した木構造に含まれる部分木のうち、取得した木構造における根ノードと同じ根ノードを持つ根付き部分木の集合を、許容される部分木の集合として表現するZDDを生成する。ここである部分木は、取得した木構造に含まれるノードの部分集合として表現されるものとする。
図3は取得した木構造、木構造の根ノードと同じ根ノードをもつ部分木、及びそれらのノードの集合を表現したZDDである。取得した木構造に基づいて、こうした木構造の根を含む部分木のすべてを、ノードの集合として列挙したのちに、列挙したノードの集合からなる集合族を表現するZDDを生成する。ZDDは、例えば非特許文献5(S. Minato, "Zero-suppressed BDDs for set manipulation in combinatorial problems", in Proceedings of the 30th conference on Design Automation,1993.)で示されているようなapply演算を繰り返し適用することで生成することができる。
【0030】
また、ZDD構築部30においてZDDを構成する際には、取得した木構造のノード間の全順序関係をあらかじめ定める必要がある。ノード間の順序を変化させるとZDDの構造も変化する。今回扱う問題では木を深さ優先で行き掛け順にたどったときの順序を採用する。例えば上記
図2の木構造に対しては、順序e
7,e
3,e
1,e
2,e
5,e
4,e
6が深さ優先の行き掛け順に対応する。上記
図3は、深さ優先の行き掛け順でノードの全順序関係を定めたときのZDDである。ZDDはDAGの形状をしており、ZDDの終端ノード以外の各中間ノードは必ず2つの子ノードをもつ。それぞれの子供をLO側子ノード(0−子)、HI側子ノード(1−子)と呼び、また子供を指すエッジをそれぞれ0−エッジ、1−エッジと呼ぶ。また、各ノードにはラベルが関連づけられている。各ラベルはZDDのノードに対応する木構造のノードを表している。1つのZDDは必ず2つの終端ノードを持ち、それらは
【0032】
と⊥のラベルが付与されている。ZDDは親ノードをもたないノードを必ず1つだけもつ。このノードを根ノードとよぶ。ZDDの根ノードから
【0034】
終端ノードまでの1つのパスが、集合族に含まれる1つの集合に対応する。具体的には、ZDDが表す集合族に含まれる1つの集合は、パス中に出現するノードのうち、1−エッジがパスに含まれているZDDのノードに対応づけられているラベルの集合に対応する。
【0035】
ZDD構築部30において、以上のようにして構築したZDDは配列として表現できる。配列はZDDのノード数に応じた個数の要素をもち、各要素はラベル、0−子のアドレス、1−子のアドレスの3つ組からなる。
図4は
図3のZDDを配列で表現したものである。i番目の要素について、ノードに対するラベルをv(i)、0−子のアドレスをlo(i)、1−子のアドレスをhi(i)とする。
【0036】
最適値計算部32は、木構造の各ノードについて入力されたノードのスコア及び長さと、入力された上限長さLと、ZDD構築部30によって構築されたZDDとに基づいて、各ノードの順序に従って、n番目のノードについて、各長さj(0≦j≦L)に対し、ZDD構築部30によって構築されたZDDの少なくとも一部のZDDであって、n番目のノードを根ノードとするZDDが表す部分木の集合のうち、各ノードの長さの和が長さjと等しくなる部分木であって、かつ、部分木の各ノードのスコアの和が最大となる部分木を繰り返し計算して記憶部40に記憶する。ここで、n番目のノードを根ノードとするZDDが表す部分木の集合のうち、各ノードの長さの和が長さjと等しくなる部分木であって、かつ、部分木の各ノードのスコアの和が最大となる部分木を計算するとき、記憶部40に記憶した、各ノードのスコアの和の最大値を呼び出して、LO側子ノードを根ノードとするZDDが表す部分木の集合のうち、各ノードの長さの和が長さjと等しくなる部分木と、n番目のノードを根ノードとするZDDが表す部分木の集合のうち、各ノードの長さの和が長さjと等しくなるHI側子ノードを含む部分木とのうち、各ノードのスコアの和が最大となる部分木を再帰的に計算する。
【0037】
最適値計算部32における具体的な処理を以下に説明する。なお、最適化処理には動的計画法アルゴリズムを用いる。
【0038】
最適値計算部32は、まず、2つのZ×(L+1)要素からなる2次元配列S、及び2次元配列Bを用意する。ZはZDD構築部30で求めたZDDのノードの個数である。配列Sの(i,j)要素(1≦i≦Z,0≦j≦Lとする)をS[i][j]と表す。1≦i≦Z,0≦j≦Lについては、S[i][j]に−∞を代入して、S[i][j]を初期化する。そして、S[Z−1][0]に0を代入する。
【0039】
配列Sの値S[i][j]を、それぞれ、i=Z−1,Z−2,・・・,1、j=0,1,・・・,L+1の順に、以下の(3)式に従って再帰的に更新する。
【0041】
ただし、上記(3)式の下段の選択肢はj−l
i≧0を満たす場合にのみ選択可能であるとする。上記(3)式に従って更新したS[i][j]は、i番目のノードを根とするZDDが表現する集合族に含まれる集合のうち、当該集合に含まれる木のノードの長さの和がjであるものを取り出したときのスコアの和の最大値となっている。
【0042】
配列B[i][j]には、上記(3)式において、S[i][j]を上段又は下段の解の候補のうちのどちらを用いて更新したかを示す記号を記録する。すなわち、上記(3)式の上段の選択肢を用いてS[i][j]にS[lo(i)][j]を代入して更新したならば、B[i][j]にLO側子ノードを表す「LO」と記録し、下段の選択肢を用いてS[i][j]にS[hi(i)][j−l
i]+w
iと代入して更新したならば、B[i][j]にHI側子ノードを表すHIと記録する。B[i][j]に記録された値は後述するバックトラック部34の処理で用いられる。そして、S[1][j](0≦j≦L)の最大値を与えるjを取り出し、j
*とする。もし最大値が−∞ならば解なしとして処理を終了する。
図5に実行途中のある時点での二次元配列S、及び二次元配列Bの値の表現を示す。
図5の例では、iに関しては下から上にN8から順に更新し、jに関しては左から右に順に更新している。
【0043】
バックトラック部34は、最適値計算部32によって繰り返し計算された計算過程に基づいて、上限長さL以下となる許容される部分木のうち、許容される部分木の各ノードのスコアの和が最大となる許容される部分木を、入力文書の要約として出力部50により出力する。
【0044】
バックトラック部34の具体的なバックトラッキング処理について以下に説明する。バックトラック部34では、
図6に示す二次元配列B[i][j]におけるバックトラッキングを実行する。バックトラック部34は、まず、
【0046】
として、sを初期化する。sは最適解となる部分木のラベルv(i)を格納する配列である。また、(i,j)に(1,j
*)を代入して、(i,j)を初期化する。次に、B[i][j]=LOならば、(i,j)に(lo(i),j)を代入して更新する。B[i][j]=HIならば、sをs∪v(i)に更新した上で、(i,j)に(hi(i),j−l
i)を代入して更新する。そして、(i,j)=(Z−1,0)ならばsに格納されたラベルによる許容される部分木を最適解として出力して処理を終了し、そうでなければバックトラッキングの処理を繰り返す。
【0047】
<本発明の第1の実施の形態に係るテキスト要約装置の作用>
【0048】
次に、本発明の第1の実施の形態に係るテキスト要約装置100の作用について説明する。入力部10において木構造として表現された入力文書、木構造の各ノードに対応付けられたスコア、長さ、及び要約の長さとして許容する上限長さLを受け付けると、テキスト要約装置100は、
図7に示すテキスト要約処理ルーチンを実行する。
【0049】
まず、ステップS100では、入力部10において受け付けた、木構造として表現された入力文書、スコア、長さ、及び要約の長さとして許容する上限長さLを取得する。
【0050】
次に、ステップS102では、ステップS100で取得した木構造として表現された入力文書に基づいて、ZDDを生成する。
【0051】
ステップS104では、ステップS100で取得したスコア、長さ、及び要約の長さとして許容する上限長さLと、ステップS102で生成したZDDとに基づいて、各ノードの長さの和が、上限長さL以下であり、かつ、各ノードのスコアの和が最大となる許容される部分木を計算する。
【0052】
ステップS106では、ステップS104で計算された、各ノードの長さの和が、上限長さL以下であり、かつ、各ノードのスコアの和が最大となる許容される部分木を、入力文書の要約として出力部50により出力し、処理を終了する。
【0053】
上記ステップS104の最適解算出処理ルーチンについて以下、詳細に説明する。
【0054】
図8に示すステップS200では、まず、2次元配列S、及び2次元配列Bを用意する。
【0055】
次に、ステップS202では、ステップS200で用意した2次元配列S、及び2次元配列Bを初期化する。
【0056】
ステップS204では、2次元配列Sを上記(3)式に従って再帰的に更新し、配列Bに上記(3)式において、S[i][j]を上段又は下段の解の候補のうちのどちらを用いて更新したかを示す記号を記録する。
【0057】
ステップS206では、ステップS204で更新したS[1][j](0≦j≦L)の最大値を与えるjを取り出し、j
*とする。
【0058】
ステップS208では、配列sを初期化する。
【0059】
ステップS210では、(i,j)に(1,j
*)を代入して、(i,j)を初期化する。
【0060】
ステップS212では、ステップS204で更新したB[i][j]に基づいて、B[i][j]=LOならば、(i,j)に(lo(i),j)を代入して更新し、B[i][j]=HIならば、sをs∪v(i)に更新した上で、(i,j)に(hi(i),j−l
i)を代入して更新する。
【0061】
ステップS214では、(i,j)=(Z−1,0)かを判定し、(i,j)=(Z−1,0)であれば最適解算出処理ルーチンを終了し、(i,j)=(Z−1,0)でなければ、ステップS212へ移行して処理を繰り返す。
【0062】
以上説明したように、第1の実施の形態に係るテキスト要約装置によれば、木構造の許容される部分木の集合を表すZDDを構築し、ノードのスコア及び長さと、入力された上限長さLと、構築されたZDDとに基づいて、各ノードの順序に従って、n番目のノードについて、各長さjに対し、n番目のノードを根ノードとするZDDが表す部分木の集合のうち、各ノードの長さの和が長さjと等しくなる部分木であって、かつ、部分木の各ノードのスコアの和が最大となる部分木を繰り返し計算して記憶部に記憶するときに、記憶部に記憶した、各ノードのスコアの和の最大値を呼び出して、LO側子ノードを根ノードとするZDDが表す部分木の集合のうち、各ノードの長さの和が長さjと等しくなる部分木と、n番目のノードを根ノードとするZDDが表す部分木の集合のうち、各ノードの長さの和が長さjと等しくなるHI側子ノードを含む部分木とのうち、各ノードのスコアの和が最大となる部分木を再帰的に計算することにより、計算時間の増大を抑制し、かつ、安定して要約の最適解を求めることができる。
【0063】
<本発明の第2の実施の形態に係るテキスト要約装置の構成>
【0064】
次に、本発明の第2の実施の形態に係るテキスト要約装置の構成について説明する。第2の実施の形態に係るテキスト要約装置は文短縮問題を解く。なお、第1の実施の形態のテキスト要約装置100と同様の構成となる部分については、同一符号を付して説明を省略する。
【0065】
上記
図1に示すように、本発明の第2の実施の形態に係るテキスト要約装置100は、CPUと、RAMと、テキスト要約処理ルーチンを実行するためのプログラムや各種データを記憶したROMと、を含むコンピュータで構成することが出来る。このテキスト要約装置100は、機能的には
図1に示すように入力部10と、演算部20と、出力部50とを備えている。
【0066】
第2の実施の形態に係る入力部10は、木構造として表現された入力文、木構造の各ノードに対応付けられたスコア、長さ、及び要約の長さとして許容する上限長さLを受け付ける。また、入力部10は、当該入力文に対して予め定められた複数の根候補ノードを受け付ける。入力文は、文に含まれる単語の依存関係を表す根つき木として表現したものである。このような依存関係を表す根つき部分木は、文を非特許文献6(D. Chen and C. D. Manning, "A fast and accurate dependency parserusing neural networks", in Proceedings of the 2014 conference on Empirical Methods, in Natural Language Processing, 2014.)に示すような依存構造解析器に入力して出力された木に対して、上記非特許文献3に示す変換処理を適用することで得ることができる。入力として与えられる文の木構造の一例を
図9に示す。
【0067】
第2の実施の形態に係る演算部20は、ZDD構築部30と、最適値計算部32と、記憶部40とを含んで構成されている。
【0068】
第2の実施の形態に係るZDD構築部30では、以下に説明するように、入力部10で受け付けた、木構造として表現された入力文書に基づいて、入力文に対して予め定められた複数の根候補ノードを根ノードとする、木構造の許容される部分木の集合を表し、かつ、2つの終端ノード、及び木構造の各ノードに対応する、HI側子ノード及びLO側子ノードを有する根ノード又は中間ノードを含むZDDを構築する。
【0069】
第2の実施の形態に係るZDD構築部30では、取得した木構造に含まれる部分木のうち、取得した木構造における根候補ノードのいずれかを根ノードとして持つ部分木の集合を、許容される部分木の集合として表現するZDDを生成する。
図10は取得した木構造を示し、
図11は、木構造の根候補ノードを根ノードとしてもつ部分木、及びそれらのノードの集合を表現したZDDの一例である。また、第2の実施の形態に係るZDD構築部30では、第1の実施の形態と同様に、取得した木構造のノード間の全順序関係をあらかじめ定める必要がある。第2の実施の形態では、ノード間の全順序については、各ノードに対して順序スコアを定義し、順序スコアが高い子ノードの順序が先になるような深さ優先行きがけ順を採用する。ここで、ノードのスコアは、当該ノードの子孫ノードからなる部分木に含まれる、最大の許容される部分木のノード数とする。
図12に示す許容される部分木であれば、例えばe
1,e
3,e
6のスコアはそれぞれ6,4,0である。
【0070】
なお、第2の実施の形態に係るテキスト要約装置の他の構成及び作用は、第1の実施の形態のテキスト要約装置100と同様であるため詳細な説明を省略する。
【0071】
以上説明したように、本発明の第2の実施の形態に係るテキスト要約装置によれば、予め定められた複数の根候補ノードを根ノードとする、木構造の許容される部分木の集合を表すZDDを構築し、ノードのスコア及び長さと、入力された上限長さLと、構築されたZDDとに基づいて、各ノードの順序に従って、n番目のノードについて、各長さjに対し、n番目のノードを根ノードとするZDDが表す部分木の集合のうち、各ノードの長さの和が長さjと等しくなる部分木であって、かつ、部分木の各ノードのスコアの和が最大となる部分木を繰り返し計算して記憶部に記憶するときに、記憶部に記憶した、各ノードのスコアの和の最大値を呼び出して、LO側子ノードを根ノードとするZDDが表す部分木の集合のうち、各ノードの長さの和が長さjと等しくなる部分木と、n番目のノードを根ノードとするZDDが表す部分木の集合のうち、各ノードの長さの和が長さjと等しくなるHI側子ノードを含む部分木とのうち、各ノードのスコアの和が最大となる部分木を再帰的に計算することにより、計算時間の増大を抑制し、かつ、安定して要約の最適解を求めることができる。
【0072】
<本発明の第3の実施の形態に係るテキスト要約装置の構成>
【0073】
次に、本発明の第3の実施の形態に係るテキスト要約装置の構成について説明する。第3の実施の形態に係るテキスト要約装置は文抽出及び文短縮を同時に行う問題を解く。なお、第1及び第2の実施の形態のテキスト要約装置100と同様の構成となる部分については、同一符号を付して説明を省略する。
【0074】
上記
図1に示すように、本発明の第3の実施の形態に係るテキスト要約装置100は、CPUと、RAMと、テキスト要約処理ルーチンを実行するためのプログラムや各種データを記憶したROMと、を含むコンピュータで構成することが出来る。このテキスト要約装置100は、機能的には
図1に示すように入力部10と、演算部20と、出力部50とを備えている。
【0075】
第3の実施の形態に係る入力部10は、木構造として表現された文書、文書に含まれる各文であって、かつ、木構造として表現された各文、木構造の各ノードに対応付けられたスコア、長さ、及び要約の長さとして許容する上限長さLを受け付ける。文書の木構造は、文書に含まれる各文をノードとし、文の木構造は、文に含まれる各単語をノードとする。
【0076】
なお、本実施の形態では、文書を表す木構造、及び各文を表す木構造を、文をノードとする木構造の各ノードを、単語のノードとする木構造で置き換えた、入れ子構造で表現される木構造で表現する(
図13参照)。
【0077】
また、文書の第1の文字列単位として、文を用い、第1の文字列単位より小さい文字列単位である第2の文字列単位として、単語を用いる場合を例に説明したが、これに限定されるものではなく、他の文字列単位を用いてもよい。
【0078】
第3の実施の形態に係る演算部20は、ZDD構築部30と、最適値計算部32と、記憶部40とを含んで構成されている。
【0079】
第3の実施の形態に係るZDD構築部30では、以下に説明するように、入力部10で受け付けた、木構造として表現された文書、及び木構造として表現された各文に基づいて、入れ子構造で表現される木構造の許容される部分木の集合を表し、かつ、2つの終端ノード、及び木構造の各ノードに対応する、HI側子ノード及びLO側子ノードを有する根ノード又は中間ノードを含むZDDを構築する。
【0080】
具体的には、入れ子構造で表現される木構造の許容される部分木の集合として、外側の木構造についての根ノードを持つ部分木と、外側の木構造における当該部分木の各ノードに対する、当該ノードの内側の木構造についての、当該文について予め定められた複数の根候補ノードの何れかを根ノードを持つ部分木とからなる根付き部分木の集合を表現するZDDを生成する。
図14は取得した入れ子構造で表現される木構造を示し、
図15は、入れ子構造で表現される木構造の許容される部分木の集合を表現したZDDである。また、第3の実施の形態に係るZDD構築部30では、第1の実施の形態と同様に、取得した、入れ子構造で表現される木構造のノード間の全順序関係をあらかじめ定める必要がある。第3の実施の形態では、ノード間の全順序については、各ノードに対して順序スコアを定義し、順序スコアが高い子ノードの順序が先になるような深さ優先行きがけ順を採用する。ここで、ノードのスコアは、当該ノードが含まれる内側の木での子孫ノードからなる部分木に含まれる、最大の許容される部分木のノード数とする。
図16に示す部分木であれば、例えばe
1,e
3,e
6,e
12のスコアは、それぞれ5,0,4,3である。
【0081】
なお、第3の実施の形態に係るテキスト要約装置の他の構成及び作用は、第1及び第2の実施の形態のテキスト要約装置100と同様であるため詳細な説明を省略する。
【0082】
以上説明したように、本発明の第3の実施の形態に係るテキスト要約装置によれば、入れ子構造で表現された木構造の許容される部分木の集合を表すZDDを構築し、ノードのスコア及び長さと、入力された上限長さLと、構築されたZDDとに基づいて、各ノードの順序に従って、n番目のノードについて、各長さjに対し、n番目のノードを根ノードとするZDDが表す部分木の集合のうち、各ノードの長さの和が長さjと等しくなる部分木であって、かつ、部分木の各ノードのスコアの和が最大となる部分木を繰り返し計算して記憶部に記憶するときに、記憶部に記憶した、各ノードのスコアの和の最大値を呼び出して、LO側子ノードを根ノードとするZDDが表す部分木の集合のうち、各ノードの長さの和が長さjと等しくなる部分木と、n番目のノードを根ノードとするZDDが表す部分木の集合のうち、各ノードの長さの和が長さjと等しくなるHI側子ノードを含む部分木とのうち、各ノードのスコアの和が最大となる部分木を再帰的に計算することにより、計算時間の増大を抑制し、かつ、安定して要約の最適解を求めることができる。
【0083】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。