【文献】
伊藤 潤 外2名,係り受け木を用いた日本語文書の重要部分抽出,情報処理学会研究報告,日本,社団法人情報処理学会,2003年11月 7日,第2003巻第108号,p.19-24
【文献】
平尾 努 外3名,談話構造に基づく単一文書要約,言語処理学会第19回年次大会 発表論文集 [online],日本,言語処理学会,2013年 3月 4日,p.492-495
(58)【調査した分野】(Int.Cl.,DB名)
前記予め定めた条件は、要約の長さが前記最大長以下で、前記修辞構造木が表す修辞関係及び前記係り受け木が表す係り受け関係を損なわず、かつ要約に含まれる単語の重要度の和が最大になることである請求項1記載の文書要約装置。
前記予め定めた条件は、下記(1)式〜(12)式に示す制約の下、下記(13)式に示す目的関数を最大化することである請求項1記載の文書要約装置。
【数1】
ただし、iは文の識別番号、Nは文書に含まれる文の総数、jは単語の識別番号、M(i)は識別番号iの文に含まれる単語の総数、x
iは識別番号iの文が要約に含まれるとき1となる決定変数、z
ijは識別番号iの文の識別番号jの単語が要約に含まれるとき1となる決定変数、w
ijは識別番号iの文の識別番号jの単語の重要度、r
ijは識別番号iの文の識別番号jの単語が部分木の根である場合に1となる決定変数、L
maxは最大長、parent(i)は、修辞構造木における識別番号iの文の親の文の識別番号を返す関数、parent(i,j)は、識別番号iの文を表す係り受け木における識別番号jの単語の親の単語の識別番号を返す関数、aは所定の係数、R
c(i)は識別番号iの文を表す係り受け木において、根の候補となる単語の識別番号の集合を返す関数、root(i)は、識別番号iの文を表す係り受け木における真の根である単語の識別番号を返す関数、sub(i)は、識別番号iの文から主語である単語の識別番号の集合を返す関数、及びobj(i)は、識別番号iの文から目的語である単語の識別番号の集合を返す関数である。
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来の要約技術では、文や節等の文法的な要素を予め決定しておき、文書をそれらの要素間の親子関係を表した修辞構造木として表現することで、原文書の論理構造を捉えた要約を生成できる。この場合、予め定義した文や節といった文書中の連続した単語列を抽出することで要約を生成する。文法的な要素を文とする場合、要約は、原文書に含まれる文から要約に含める文を抽出することで生成される。しかし、要約の長さの制約L
maxが厳しい(小さい)場合、抽出することのできる文の数が極端に少なくなり、要約としての情報の被覆率が低下するという問題がある。一方、文法的な要素を節とする場合、要約は、原文書に含まれる節から要約に含める節を抽出することで生成される。この場合、節は文よりも小さい単位であることから、文法的な要素を文とする場合に比べ、要約としての情報の被覆率は高くなるが、読み易さが損なわれるという問題がある。
【0006】
本発明は、上記の事情を鑑みてなされたもので、読み易さを確保しつつ、要約としての情報の被覆率を向上させることができる文書要約装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明に係る文書要約装置は、複数の文を含む文書における文間の修辞関係に基づいて、前記文書を表す修辞構造木を生成する修辞構造解析部と、前記複数の文の各々における単語間の係り受け関係に基づいて、前記文の各々を表す係り受け木の各々を生成する係り受け解析部と、予め定めた要約の最大長、前記単語の各々の重要度、前記修辞構造木、及び前記係り受け木の各々に基づいて、予め定めた条件を満たすように、前記係り受け木の各々から多くとも一つの部分木を抽出し、抽出した部分木に基づいて、前記文書の要約を生成する生成部と、を含んで構成されている。
【0008】
本発明に係る文書要約装置によれば、修辞構造解析部が、複数の文を含む文書における文間の修辞関係に基づいて、文書を表す修辞構造木を生成する。また、係り受け解析部が、複数の文の各々における単語間の係り受け関係に基づいて、文の各々を表す係り受け木の各々を生成する。そして、生成部が、予め定めた要約の最大長、単語の各々の重要度、修辞構造木、及び係り受け木の各々に基づいて、予め定めた条件を満たすように、係り受け木の各々から多くとも一つの部分木を抽出し、抽出した部分木に基づいて、文書の要約を生成する。
【0009】
このように、修辞構造木と係り受け木との入れ子構造で文書を表現し、係り受け木の各々から多くとも一つの部分木を抽出して要約を生成することで、読み易さを確保しつつ、要約としての情報の被覆率を向上させることができる。
【0010】
また、前記予め定めた条件を、要約の長さが前記最大長以下で、前記修辞構造木が表す修辞関係及び前記係り受け木が表す係り受け関係を損なわず、かつ要約に含まれる単語の重要度の和が最大になるように定めることができる。これにより、文書の論理構造、及び文としての文法性が損なわれないため、より読み易さを確保した要約を生成することができる。
【0011】
また、前記予め定めた条件を、下記(1)式〜(12)式に示す制約の下、下記(13)式に示す目的関数を最大化するように定めることができる。これにより、文書要約の問題を定式化することができる。
【0012】
【数1】
【0013】
ただし、iは文の識別番号、Nは文書に含まれる文の総数、jは単語の識別番号、M(i)は識別番号iの文に含まれる単語の総数、x
iは識別番号iの文が要約に含まれるとき1となる決定変数、z
ijは識別番号iの文の識別番号jの単語が要約に含まれるとき1となる決定変数、w
ijは識別番号iの文の識別番号jの単語の重要度、r
ijは識別番号iの文の識別番号jの単語が部分木の根である場合に1となる決定変数、L
maxは最大長、parent(i)は、修辞構造木における識別番号iの文の親の文の識別番号を返す関数、parent(i,j)は、識別番号iの文を表す係り受け木における識別番号jの単語の親の単語の識別番号を返す関数、aは所定の係数、R
c(i)は識別番号iの文を表す係り受け木において、根の候補となる単語の識別番号の集合を返す関数、root(i)は、識別番号iの文を表す係り受け木における真の根である単語の識別番号を返す関数、sub(i)は、識別番号iの文から主語である単語の識別番号の集合を返す関数、及びobj(i)は、識別番号iの文から目的語である単語の識別番号の集合を返す関数である。
【0014】
また、本発明に係る文書要約方法は、修辞構造解析部と、係り受け解析部と、生成部とを含む文書要約装置における文書要約方法であって、前記修辞構造解析部が、複数の文を含む文書における文間の修辞関係に基づいて、前記文書を表す修辞構造木を生成するステップと、前記係り受け解析部が、前記複数の文の各々における単語間の係り受け関係に基づいて、前記文の各々を表す係り受け木の各々を生成するステップと、前記生成部が、予め定めた要約の最大長、前記単語の各々の重要度、前記修辞構造木、及び前記係り受け木の各々に基づいて、予め定めた条件を満たすように、前記係り受け木の各々から多くとも一つの部分木を抽出し、抽出した部分木に基づいて、前記文書の要約を生成するステップと、を含む方法である。
【0015】
また、本発明に係る文書要約プログラムは、コンピュータを、上記の文書要約装置を構成する各部として機能させるためのプログラムである。
【発明の効果】
【0016】
以上説明したように、本発明の文書要約装置、方法、及びプログラムによれば、予め定めた要約の最大長、単語の各々の重要度、文間の修辞関係に基づいて文書を表した修辞構造木、及び単語間の係り受け関係に基づいて文の各々を表した係り受け木の各々に基づいて、予め定めた条件を満たすように、係り受け木の各々から多くとも一つの部分木を抽出して要約を生成する。これにより、読み易さを確保しつつ、要約としての情報の被覆率を向上させることができる、という効果が得られる。
【発明を実施するための形態】
【0018】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【0019】
図1は、本発明の実施の形態に係る文書要約装置10を示すブロック図である。文書要約装置10は、CPUと、RAMと、後述する文書要約処理ルーチンを実行するためのプログラムを記憶したROMとを備えたコンピュータで構成することができる。
【0020】
文書要約装置10を構成するコンピュータは、機能的には、
図1に示すように、入力された文書を文毎に分割する文分割部12と、分割された各文を単語毎に分割する単語分割部14と、各単語に重要度を付与する単語重要度付与部16と、文間の修辞関係を解析して、文書を表す修辞構造木を生成する修辞構造解析部18と、単語間の係り受け関係を解析して、文の各々を表す係り受け木の各々を生成する係り受け解析部20と、要約の長さ、各単語の重要度、修辞構造木、及び係り受け木の各々に基づいて、文書の要約を生成する生成部22とを含んだ構成で表すことができる。以下、各部について詳述する。
【0021】
文分割部12は、文書要約装置10に入力された、複数の文を含む文書(テキストデータ)を受け取り、文書に文の区切りを与え、文書を文毎に分割する。文の区切りの認定には、既存の文分割器を利用することができる。また、単純に、句点を手がかりとして文の区切りを与えてもよい。
【0022】
単語分割部14は、文分割部12で分割された各文を入力として受け取り、各文に単語区切りを与え、各文を単語毎に分割する。単語区切りの認定には、既存の形態素解析器を利用することができる。また、英文などのように、単語区切りが明示的に与えられている文書が入力された場合には、その明示的な単語区切りに従って単語分割を行ってもよい。
【0023】
単語重要度付与部16は、単語分割部14で分割された各単語を入力として受け取り、単語重要度データベース(DB)30を参照し、入力された文書に含まれる各単語に重要度を付与する。単語重要度DB30には、複数の単語の各々と、その単語の重要度とが対応付けて記憶されている。単語重要度DB30に記憶しておく各単語の重要度は、例えば情報検索システムなどで一般的に用いられるtf−idf(term frequency - inverse document frequency)法などを用いて定義しておくことができる。
【0024】
修辞構造解析部18は、文分割部12で分割された各文を入力として受け取り、文間の修辞関係を解析する。例えば、修辞構造解析器(参考文献「duVerle, D. and Prendinger, H, "A Novel Discourse Parser Based on Support Vector Machine Classication", Proc of the 47th ACL, pp. 665-675, 2009.」)を用いてRST(Rhetorical Structure Theory)ツリーを生成した後、例えば、非特許文献1に記載されているルールを適用することで、文間の修辞関係を解析することができる。また、必ずしもRSTツリーを生成する必要はなく、文間の修辞関係を表した修辞構造木のデータを用いて学習した解析器を利用して、文間の修辞関係を解析してもよい。
【0025】
修辞構造解析部18は、解析した文間の修辞関係に基づいて、各文をノードで表し、修辞関係にある文間に対応するノード間を接続した修辞構造木を生成する。修辞関係にある二つの文は、一方が親で他方が子の関係にあるため、親の文に対応するノードが親ノード、子の文に対応するノードが子ノードとなるように、ノード間を接続する。修辞構造木の一例を
図2左図に示す。
図2左図は、入力された文書に含まれる文s
1、文s
2、・・・、文s
8の各々を、ノードs
1、ノードs
2、・・・、ノードs
8(図中○印)で表している。また、親子関係がある文間に対応するノード間を、始点側が子ノード、終点側の親ノードとなるように矢印(エッジ)で接続している。
【0026】
係り受け解析部20は、単語分割部14で分割された各単語を入力として受け取り、単語間の係り受け関係を解析する。係り受け関係の解析には、既存の係り受け解析器を利用することができる。係り受け解析部20は、解析した単語間の係り受け関係に基づいて、各単語をノードで表し、係り受け関係にある単語間に対応するノード間を接続した係り受け木を生成する。係り受け関係にある二つの単語は、一方が親で他方が子の関係にあるため、親の単語に対応するノードが親ノード、子の単語に対応するノードが子ノードとなるように、ノード間を接続する。係り受け木の一例を
図2右図に示す。
図2右図は、
図2左図に示す修辞構造木に含まれるノードs
8に対応する文s
8に含まれる単語w
1、単語w
2、・・・、単語w
12の各々を、ノードw
1、ノードw
2、・・・、ノードw
12(図中○印)で表している。また、親子関係がある単語間に対応するノード間を、始点側が子ノード、終点側の親ノードとなるように矢印(エッジ)で接続している。
【0027】
生成部22は、入力された要約長L
maxを受け取る。要約長は、要約の長さを制約するパラメタであり、ここでは、要約長L
maxを、要約に含まれる単語の最大数とする。なお、要約長は文字数としてもよい。また、入力された要約長L
maxを受け取る場合に限定されず、ROMなどに予め記憶しておいた要約長L
maxを読み出してもよい。また、生成部22は、修辞構造解析部18で生成された修辞構造木、及び係り受け解析部20で生成された係り受け木の各々を受け取る。さらに、生成部22は、単語重要度付与部16で各単語に付与された重要度を受け取る。
【0028】
生成部22は、要約長L
max、各単語の重要度、修辞構造木、及び係り受け木の各々に基づいて、要約に含まれる単語数がL
max以下で、単語間の親子関係及び文間の親子関係を損なわないように、かつ要約に含まれる単語の重要度の和が最大となるように、各係り受け木から部分木を抽出する。そして、生成部22は、抽出した部分木の各々を構成するノードに対応する単語集合から要約を生成する。
【0029】
ここで、単語間の親子関係を損なわない、とは、要約に含まれる単語間の親子関係が、係り受け解析部20で生成された係り受け木の対応する部分の構造を維持していることを意味する。また、文間の親子関係を損なわない、とは、要約に含まれる文間の親子関係が、修辞構造解析部18で生成された修辞構造木の対応する部分の構造を維持していることを意味する。すなわち、文に着目して要約を見ると、その文間の構造は、修辞構造解析部18で生成された修辞構造木の一部に表れている。また、単語に着目して要約を見ると、その単語間の構造は、係り受け解析部20で生成された係り受け木の一部に表れている。
【0030】
また、生成部22は、各係り受け木から部分木を抽出する際、各係り受け木から多くとも一つの部分木を抽出する。多くとも一つの部分木を抽出するとは、一つの文から2つ以上の部分木を抽出しないこと、また、部分木を抽出しない係り受け木も存在することを意味する。例えば、
図2右図に示す文s
8を表す係り受け木から、(ノードw
1,ノードw
2,ノードw
3)という部分木を抽出した場合、文s
8を表す係り受け木からは、これ以上の部分木は抽出しない。これは、複文や重文などを表す係り受け木からは複数の部分木が抽出され得るが、一つの文は一つの意味を持つものとして扱い、一つの係り受け木から複数の部分木を抽出することを制限するものである。これにより、要約長L
maxの制限の下、より多くの文から部分木を抽出することができ、要約としての情報の被覆率を向上させることができる。
【0031】
また、生成部22は、修辞構造木において、部分木が抽出された係り受け木に対応するノードの親ノードに対応する係り受け木からも部分木を抽出する。修辞構造木に含まれる各ノードの親ノードを辿ると、最終的には根ノードに辿り着くため、部分木が抽出された係り受け木に対応するノード集合は、修辞構造木における根付き部分木となる。このように、要約に含まれる単語を含む文集合が、修辞構造木において根付き部分木となるようにすることで、文書の持つ論理構造(例えば、起承転結のような構造)を要約に反映させることができ、要約としての情報の被覆率及び精度が向上する。
【0032】
つまり、生成部22により生成される要約は、要約を構成する文集合は、修辞構造木の根付き部分木で表され、要約を構成する各文に含まれる単語列は、係り受け木の部分木で表される。
【0033】
上記のような要約生成の問題は、下記(1)式〜(12)式に示す制約の下、下記(13)式に示す目的関数を最大化する整数計画問題として定式化される。
【0035】
ここで、iは入力された文書における文の位置(文書の先頭から何番目の文か)を表す変数であり、各文の識別番号(文id)である。Nは文書に含まれる文の総数である。jはi番目の文における単語の位置(文の先頭から何番目の単語か)を表す変数であり、単語の識別番号(単語id)である。M(i)はi番目の文に含まれる単語の総数である。x
iはi番目の文が要約に含まれるとき1となる決定変数である。z
ijはi番目の文のj番目の単語が要約に含まれるとき1となる決定変数である。w
ijはi番目の文のj番目の単語の重要度であり、単語重要度付与部16で付与される値である。r
ijはi番目の文のj番目の単語に対応するノードが、係り受け木から抽出される部分木の根ノードである場合に1となる決定変数である。
【0036】
(1)式は、要約に含まれる単語の数がL
max以下になることを保証する制約式である。(2)式は、文間の親子関係に関する制約であり、i番目の文を要約として抽出する場合は、その親の文も要約に含まれることを保証する制約式である。parent(i)は、修辞構造木において、i番目の文に対応するノードの親ノードに対応する文の文idを返す関数である。
【0037】
(3)式は、単語間の親子関係に関する制約であり、i番目の文のj番目の単語を要約に含める場合は、その親の単語も要約に含まれることを保証する制約式である。parent(i,j)は、i番目の文を表す係り受け木において、j番目の単語に対応するノードの親ノードに対応する単語の単語idを返す関数である。ただし、ここでr
ijの項は、(9)式に示す制約式と併せて記述することで、i番目の文のj番目の単語に対応するノードを根ノードとする部分木を抽出する場合に限り、その親ノードに対応する単語は要約に含めないことを保証する。
【0038】
(4)式は、i番目の文のj番目の単語を要約に含める場合、i番目の文が要約に含まれることを保証するための制約式である。(5)式は、単語を抽出せずに文だけが抽出されることを防ぐための制約式である。ここで、a(i)は以下の式で定める。
【0040】
len(i)は、i番目の文の単語数を返す関数である。aを導入することで、短い文(ここでは10単語以下)からは、部分的に単語を抽出せず、原文そのままを要約に含めるように抽出する。これは、短い文から部分的に単語を抽出すると著しく可読性が低下するため、これを防ぐためである。
【0041】
(6)式〜(9)式は、任意のノードを根ノードとする部分木の抽出を可能にするための制約式である。(6)式は、一つの文を表す一つの係り受け木からは、多くとも一つの部分木を抽出することを保証する制約式である。(7)式は、事前に定められた根ノードの候補以外のノードを根ノードとする部分木を抽出しないことを保証する制約式である。ここで、R
c(i)はi番目の文を表す係り受け木において、根ノードの候補となるノードに対応する単語の単語idの集合を返す関数である。根ノードの候補は、例えば、文中の品詞が動詞である単語に対応するノードとすることができる。(8)式は、ある単語に対応するノードが、部分木の根ノードとして抽出された場合には、必ずその単語を要約に含めることを保証する制約式である。(9)式は、抽出した部分木の根ノードに対応する単語の親の単語は要約に含めないことを保証する制約式である。
【0042】
(10)式は、係り受け木の真の根ノードを部分木の根ノードとして抽出しない場合、真の根ノードに対応する単語を要約に含めないことを保証する制約式である。真の根ノードとは、係り受け木全体における根ノードであり、部分木における根ノードと区別するため、「真の根ノード」と呼ぶ。
図2右図の例では、ノードw
12が真の根ノードである。ここで、root(i)は、i番目の文を表す係り受け木における真の根ノードに対応する単語の単語idを返す関数である。
【0043】
(11)式は、文に主語(SUB)が含まれる場合、文に含まれる主語のうち一つ以上を要約に含めるという制約式である。ここで、sub(i)は、i番目の文から、単語間の親子関係に基づいて、主語である単語の単語idの集合を返す関数である。(12)式は、文に目的語(OBJ)が含まれる場合、文に含まれる目的語のうち一つ以上を要約に含めるという制約式である。ここで、obj(i)は、i番目の文から、単語間の親子関係に基づいて、目的語である単語の単語idの集合を返す関数である。
【0044】
次に、本実施の形態の文書要約装置10の作用について説明する。要約生成の対象となる文書、及びパラメタである要約長L
maxが文書要約装置10に入力されると、文書要約装置10において、
図3に示す文書要約処理ルーチンが実行される。
【0045】
ステップS10で、文分割部12が、入力された文書を受け取り、文書に文の区切りを与え、文書を文毎に分割する。次に、ステップS12で、単語分割部14が、文分割部12で分割された各文を入力として受け取り、各文に単語区切りを与え、各文を単語毎に分割する。次に、ステップS14で、単語重要度付与部16が、単語分割部14で分割された各単語を入力として受け取り、単語重要度DB30を参照し、各単語に重要度を付与する。
【0046】
次に、ステップS16で、修辞構造解析部18が、文分割部12で分割された各文を入力として受け取り、例えば既知の修辞構造解析器を利用して、文間の修辞関係を解析する。そして、修辞構造解析部18は、各文をノードで表し、文間の修辞関係に基づいて、親子関係にある文間に対応するノード間を接続して、文書を表す修辞構造木を生成する。
【0047】
次に、ステップS18で、係り受け解析部20が、単語分割部14で分割された各単語を入力として受け取り、例えば既知の係り受け解析器を利用して、単語間の係り受け関係を解析する。そして、係り受け解析部20は、各単語をノードで表し、単語間の係り受け関係に基づいて、親子関係にある単語間に対応するノード間を接続して、文の各々を表す係り受け木の各々を生成する。
【0048】
次に、ステップS20で、生成部22が、入力された要約長L
max、単語重要度付与部16で付与された各単語の重要度、修辞構造解析部18で生成された修辞構造木、及び係り受け解析部20で生成された係り受け木の各々に基づいて、要約に含まれる単語数がL
max以下で、単語間の親子関係及び文間の親子関係を損なわず、かつ要約に含まれる単語の重要度の和が最大となるように、各係り受け木から多くとも一つの部分木を抽出する。次に、ステップS22で、生成部22が、各係り受け木から抽出した部分木集合から要約を生成し、生成した要約を出力して、要約生成処理ルーチンを終了する。
【0049】
ここで、以下の文1〜文4を含む文書について、本実施の形態に係る文書要約装置10により生成した要約の一例について説明する。
【0050】
文1:A Japanese apple is cropping up in orchards the way Hondas did on U.S. roads .
文2:It is called the Fuji.
文3:Some fruit visionaries say the Fuji could someday tumble the Red Delicious.
文4:But the apple industry is ripe for change .
【0051】
図4に示すように、文書は、文1に対応するノードを根ノード、文2及び文3の各々に対応するノードが文1に対応するノードの子ノード、文4に対応するノードが文3に対応するノードの子ノードである修辞構造木で表される。さらに、各文は、その文に含まれる各単語をノードとする係り受け木で表される。
図4の例では、各文に対応するノード内に、その文を表す係り受け木を示している。
【0052】
ここから、単語の長さの制約の下、文間の親子関係及び単語間の親子関係を損なわず、かつ単語の重要度の和が最大となるように部分木を抽出する。
図4では、抽出された部分木を構成するノード、及び抽出された部分木を含む文に対応するノードを太線の枠で示している。そして、抽出された部分木から、下記に示すような要約が生成される。
【0053】
A Japanese apple is cropping up in orchards. The Fuji could someday tumble the Red Delicious. But the apple industry is ripe for change.
【0054】
以上説明したように、本実施の形態に係る文書要約装置によれば、文書を文間の修辞関係を表す修辞構造木として表現し、文を単語間の係り受け関係を表す係り受け木として表現することで、文をノードとする木、単語をノードとする木の入れ子構造として文書を捉える。そして、要約に含まれる単語の数がL
max以下で、要約に含まれる単語の重要度の和が最大となるように、修辞構造木が表す文書の修辞構造を損なうことなく、係り受け木から多くとも一つの部分木を抽出し、抽出した部分木から要約を生成する。これにより、文書の論理構造、文としての文法性が損なわれないため、読み易さを確保できる。また、1つの係り受け木から多くとも一つの部分木を抽出することで、要約としての情報の被覆率を向上させることができる。
【0055】
なお、文区切り及び単語区切りが与えられた文書が文書要約装置に入力される場合には、文分割部12及び単語分割部14の各構成は省略してもよい。
【0056】
上述の文書要約装置は、内部にコンピュータシステムを有しているが、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
【0057】
また、本願明細書中において、プログラムが予めインストールされている実施の形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。