特許第5834883号(P5834883)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

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

▶ 日本電気株式会社の特許一覧
特許5834883因果関係要約方法、因果関係要約装置及び因果関係要約プログラム
<>
  • 特許5834883-因果関係要約方法、因果関係要約装置及び因果関係要約プログラム 図000002
  • 特許5834883-因果関係要約方法、因果関係要約装置及び因果関係要約プログラム 図000003
  • 特許5834883-因果関係要約方法、因果関係要約装置及び因果関係要約プログラム 図000004
  • 特許5834883-因果関係要約方法、因果関係要約装置及び因果関係要約プログラム 図000005
  • 特許5834883-因果関係要約方法、因果関係要約装置及び因果関係要約プログラム 図000006
  • 特許5834883-因果関係要約方法、因果関係要約装置及び因果関係要約プログラム 図000007
  • 特許5834883-因果関係要約方法、因果関係要約装置及び因果関係要約プログラム 図000008
  • 特許5834883-因果関係要約方法、因果関係要約装置及び因果関係要約プログラム 図000009
  • 特許5834883-因果関係要約方法、因果関係要約装置及び因果関係要約プログラム 図000010
  • 特許5834883-因果関係要約方法、因果関係要約装置及び因果関係要約プログラム 図000011
  • 特許5834883-因果関係要約方法、因果関係要約装置及び因果関係要約プログラム 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5834883
(24)【登録日】2015年11月13日
(45)【発行日】2015年12月24日
(54)【発明の名称】因果関係要約方法、因果関係要約装置及び因果関係要約プログラム
(51)【国際特許分類】
   G06F 17/30 20060101AFI20151203BHJP
【FI】
   G06F17/30 210D
   G06F17/30 419B
   G06F17/30 320D
【請求項の数】10
【全頁数】15
(21)【出願番号】特願2011-278431(P2011-278431)
(22)【出願日】2011年12月20日
(65)【公開番号】特開2013-130929(P2013-130929A)
(43)【公開日】2013年7月4日
【審査請求日】2014年11月7日
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103090
【弁理士】
【氏名又は名称】岩壁 冬樹
(74)【代理人】
【識別番号】100124501
【弁理士】
【氏名又は名称】塩川 誠人
(72)【発明者】
【氏名】楠村 幸貴
(72)【発明者】
【氏名】村岡 優輔
(72)【発明者】
【氏名】水口 弘紀
(72)【発明者】
【氏名】久寿居 大
【審査官】 野崎 大進
(56)【参考文献】
【文献】 特開2008−203964(JP,A)
【文献】 特開2011−003156(JP,A)
【文献】 特開2011−138306(JP,A)
【文献】 特開2011−186780(JP,A)
【文献】 特開2006−215717(JP,A)
【文献】 特開2008−084203(JP,A)
【文献】 米国特許出願公開第2009/0055684(US,A1)
【文献】 特開2000−288877(JP,A)
【文献】 国際公開第2007/144804(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
(57)【特許請求の範囲】
【請求項1】
コンピュータが、記憶部に記憶されたプログラムをCPUに実行させることにより実現する因果関係要約方法であって、
コンピュータが、
文の集合を入力し、各文をノードとして、前記集合中の2つの文の間に因果関係または前記集合中の2つの文の間の類似度の高さに応じた重みが添えられたエッジを前記ノード間に生成し、
前記ノード及び前記エッジを有する前記グラフデータ中のノード集合を、切断される前記エッジの重みの和が最も小さくなるように、予め指定した数のクラスタに分解し、
各クラスタ内で因果関係を持たないようにノードを統合する縮約処理を実行する
ことを特徴とする因果関係要約方法。
【請求項2】
コンピュータが、
2つの文の間の類似度を記憶部に記憶されたシソーラスを用いて算出する
請求項1記載の因果関係要約方法。
【請求項3】
コンピュータが、
記憶部に記憶された上位語辞書または同義語辞書を用いて、一方の文の単語の上位語または同義語が他方の文に存在するかどうかを調べ、当該他方の文に存在する当該上位語または当該同義語の数に応じた類似度を算出する
請求項2記載の因果関係要約方法。
【請求項4】
コンピュータが、
縮約処理が施されたグラフデータを対象として、当該グラフデータのクラスタ内のノードに共通する単語、または、記憶部に記憶された辞書において当該クラスタ内の単語の共通の上位語のうち最も低い位置にある単語をラベルとして出力する
請求項1から請求項3のうちのいずれか1項に記載の因果関係要約方法。
【請求項5】
文の集合を入力し、各文をノードとして、前記集合中の2つの文の間に因果関係または前記集合中の2つの文の間の類似度の高さに応じた重みが添えられたエッジを前記ノード間に生成するグラフ作成部と、
前記ノード及び前記エッジを有する前記グラフデータ中のノード集合を、切断される前記エッジの重みの和が最も小さくなるように、予め指定した数のクラスタに分解するグラフカット処理部と、
各クラスタ内で因果関係を持たないようにノードを統合する縮約処理を実行するグラフ縮約部とを備えた
ことを特徴とする因果関係要約装置。
【請求項6】
グラフ作成部は、2つの文の間の類似度をシソーラスを用いて算出する
請求項5記載の因果関係要約装置。
【請求項7】
縮約処理が施されたグラフデータを対象として、当該グラフデータのクラスタ内のノードに共通する単語、または、当該クラスタ内の単語の共通の上位語のうち最も低い位置にある単語をラベルとして出力するラベル作成部を備えた
請求項5または請求項6記載の因果関係要約装置。
【請求項8】
記憶部に記憶された因果関係要約プログラムであって、
コンピュータのCPUに、
文の集合を入力し、各文をノードとして、前記集合中の2つの文の間に因果関係または前記集合中の2つの文の間の類似度の高さに応じた重みが添えられたエッジを前記ノード間に生成する処理と、
前記ノード及び前記エッジを有する前記グラフデータ中のノード集合を、切断される前記エッジの重みの和が最も小さくなるように、予め指定した数のクラスタに分解する処理と、
各クラスタ内で因果関係を持たないようにノードを統合する縮約処理と
を実行させるための因果関係要約プログラム。
【請求項9】
コンピュータのCPUに、
2つの文の間の類似度を記憶部に記憶されたシソーラスを用いて算出させる
請求項8記載の因果関係要約プログラム。
【請求項10】
コンピュータのCPUに、
縮約処理が施されたグラフデータを対象として、当該グラフデータのクラスタ内のノードに共通する単語、または、記憶部に記憶された辞書において当該クラスタ内の単語の共通の上位語のうち最も低い位置にある単語をラベルとして出力させる
請求項8または請求項9記載の因果関係要約プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、因果関係を表現した複数の自然言語文を入力し、複数の因果関係を要約するグラフ構造を出力する因果関係要約方法、因果関係要約装置及び因果関係要約プログラムに関する。
【背景技術】
【0002】
自然言語には因果関係に関する記述が多く含まれる。因果関係は、一つの文章にまとまっていないことも多く、人間が、ある事象に関する因果関係を把握するためには、複数の文章を注意深く読む必要がある。そこで、人間が複数の文章に含まれる因果関係を把握するために、因果関係をグラフ構造として可視化し要約する装置が開発されている。
【0003】
例えば、特許文献1には、格フレームを用いて自然言語文の入力文書群から事象を抽出し、事象同士に挟まれた接続詞を手がかりに事象間の因果関係を抽出することが記載されている。さらに、特許文献1に記載された発明によれば、予め因果関係の構成要素となるオブジェクトの階層関係を人手で構築しておくことによって、同一とみなすべき事象をまとめることができる。例えば、自動車の構成部品を「燃料系統」と「電気系統」に分け、さらに「電気系統」の構成要素として「ヘッドライト」「車幅ランプ」という包含関係を事前に階層構造として与えておく。「ヘッドライトの破損」と「車幅ランプの減灯」はいずれも「電気系統の故障」であるとまとめることができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2004−126641号公報
【非特許文献】
【0005】
【非特許文献1】On spectral clustering: Analysis and an algorithm. A. Y. Ng, M. I. Jordan, and Y. Weiss. In T. Dietterich, S. Becker and Z. Ghahramani, Advances in Neural Information Processing Systems (NIPS) 14, 2002.
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、特許文献1に記載された発明は、因果関係を考慮したまとめ上げをしていない。そのため、間違った因果関係が生成されてしまう可能性があるという問題点がある。他の一般的な技術においても、予め事象文同士を上位語などでまとめ上げる際に、因果関係を考慮していない。このため、事象文同士をまとめ上げる時点では、事象文間の因果関係を考慮しておらず、間違った粒度のまとめ上げが行われることがあるという問題点がある。
【0007】
上記の問題点を、図10の因果関係データの例を用いて説明する。図10は、因果関係データの例を示す説明図である。図10には、4つの原因文と4つの結果文の例が示されている。各行が、1つの因果関係を表す。このとき、結果文R1〜R4をまとめ上げることを考える。4つの結果文をどこまでまとめ上げるかは固定的ではない。例えば、R1〜R4を一つのまとまりとし、「家電の売上げが上昇」という意味粒度でまとめ上げてもよい。または、R1とR2のみをまとめ「エアコンの売上げが上昇」「扇風機の売上げが上昇」「液晶TVの売上げが上昇」の三つのまとまりを作ってもよい。また、R1〜R3をまとめて、「冷房機器の売上げが上昇」と「液晶TVの売上げが上昇」という2つのまとまりを作ってもよい。これらのまとめ上げのどれが正しいかは不明である。
【0008】
図11は、一般的手法による間違ったグラフ要約結果の例を示す説明図である。図11は、図10に示すデータに基づいてR1〜R4をまとめ上げ、C1〜C3がまとめ上げた例を示す図である。図11には、「平均気温が高い」と「家電の売上げが上昇する」という関係と、「ワールドカップが開催される」と「家電の売上げが上昇する」という関係が示されている。しかし、これらの因果関係は正しい因果関係ではない。「平均気温が上昇する」こと、または、「ワールドカップが開催される」こと、によってすべての家電の売上げが上昇するとは言えないためである。
【0009】
本発明は、原因文と結果文との複数の組が与えられた場合に、原因文や結果文をまとめ上げる際に、精度の高い因果関係を生成できる因果関係要約方法、因果関係要約装置及び因果関係要約プログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明による因果関係要約方法は、コンピュータが、記憶部に記憶されたプログラムをCPUに実行させることにより実現する因果関係要約方法であって、コンピュータが、文の集合を入力し、各文をノードとして、前記集合中の2つの文の間に因果関係または前記集合中の2つの文の間の類似度の高さに応じた重みが添えられたエッジを前記ノード間に生成し、前記ノード及び前記エッジを有する前記グラフデータ中のノード集合を、切断される前記エッジの重みの和が最も小さくなるように、予め指定した数のクラスタに分解し、各クラスタ内で因果関係を持たないようにノードを統合する縮約処理を実行することを特徴とする。
【0011】
また、本発明による因果関係要約装置は、文の集合を入力し、各文をノードとして、前記集合中の2つの文の間に因果関係または前記集合中の2つの文の間の類似度の高さに応じた重みが添えられたエッジを前記ノード間に生成するグラフ作成部と、前記ノード及び前記エッジを有する前記グラフデータ中のノード集合を、切断される前記エッジの重みの和が最も小さくなるように、予め指定した数のクラスタに分解するグラフカット処理部と、各クラスタ内で因果関係を持たないようにノードを統合する縮約処理を実行するグラフ縮約部とを備えたことを特徴とする。
【0012】
また、本発明による因果関係要約プログラムは、記憶部に記憶された因果関係要約プログラムであって、コンピュータのCPUに、文の集合を入力し、各文をノードとして、前記集合中の2つの文の間に因果関係または前記集合中の2つの文の間の類似度の高さに応じた重みが添えられたエッジを前記ノード間に生成する処理と、前記ノード及び前記エッジを有する前記グラフデータ中のノード集合を、切断される前記エッジの重みの和が最も小さくなるように、予め指定した数のクラスタに分解する処理と、各クラスタ内で因果関係を持たないようにノードを統合する縮約処理とを実行させる。
【発明の効果】
【0013】
本発明によれば、原因文と結果文との複数の組が与えられた場合に、原因文や結果文をまとめ上げる際に、精度の高い因果関係を生成することができる。
【図面の簡単な説明】
【0014】
図1】本発明による因果関係要約装置の実施形態の構成を示すブロック図である。
図2】本発明による因果関係要約装置の実施形態の処理手順を示すフローチャートである。
図3】概念辞書の例を示す説明図である。
図4】統合グラフ作成部が出力する行列データの例を示す説明図である。
図5】統合グラフ作成部の出力結果の一例を示すグラフ図である。
図6】グラフ縮約部の処理の一部の処理手順を示すフローチャートである。
図7】グラフ縮約部の出力結果の1つ目の例を示すグラフ図である。
図8】グラフ縮約部の出力結果の2つ目の例を示すグラフ図である。
図9】ラベル作成部が出力するグラフ要約結果の例を示す説明図である。
図10】因果関係データの例を示す説明図である。
図11】一般的手法による間違ったグラフ要約結果の例を示す説明図である。
【発明を実施するための形態】
【0015】
実施形態.
図1は、本発明による因果関係要約装置の実施形態の構成を示すブロック図である。本実施形態の因果関係要約装置は、統合グラフ作成部1、グラフカット処理部2、グラフ縮約部3及びラベル作成部4を有する。
【0016】
統合グラフ作成部1は、因果関係を持つ原因文と結果文の集合である因果関係データ5を入力する。そして、統合グラフ作成部1は、入力した因果関係データ5の各文をノードとし、ノード間に、2文間に因果関係がある場合と、または文間に高い類似性がある場合に、因果関係又は類似度の高さに応じた重みが添えられたエッジを作成することで統合グラフを作成する。また、類似度の算出において、例えば、後述する概念辞書6を用いる。
【0017】
グラフカット処理部2は、統合グラフ作成部1によって作成された統合グラフを入力する。そして、グラフカット処理部2は、入力した統合グラフ中のノード集合を、予め指定した数(K個)のクラスタに分解するグラフカットを行い、ノードについて作成されたK個のクラスタと統合グラフを出力する。このグラフカットは、切断されるエッジの重みの和が小さくなるように行われる。
【0018】
グラフ縮約部3は、グラフカット処理部が出力したK個のクラスタと統合グラフのデータを入力する。そして、グラフ縮約部3は、K個の各クラスタ内において、因果関係を持たないように複数のノードを結合する縮約処理を行い、縮約グラフを出力する。
【0019】
ラベル作成部4は、グラフ縮約部3により縮約されたグラフデータ、原因文と結果文の集合である因果関係データ5、および概念辞書6を入力し、各ノードに対応するラベルを生成する。
【0020】
次に、本実施形態の因果関係要約装置の処理手順をフローチャートを用いて説明する。図2は、本発明による因果関係要約装置の実施形態の処理手順を示すフローチャートである。
【0021】
まず、統合グラフ作成部1に因果関係データが入力されると、統合グラフ作成部1は、因果関係データ内の各文をノードとするグラフを表現した行列データGの初期化を行う(ステップS01)。行列データGは、因果関係データ内の全文数をnとする場合にn行n列のサイズを持つ行列で表現される。i行j列目の要素g(i,j)は、文iと文jの間のエッジを表現しており、エッジが無い場合を0、エッジがある場合にはその重みを表現した値を持つ。ステップS01では、すべての値が0である行列データGが生成される。
【0022】
次に、統合グラフ作成部1は、因果関係データ内において因果関係が存在する2文を順に読み込み、エッジを作成する(ステップS02)。この処理では、行列データGに対して、文iと文jの間に因果関係がある場合、g(i,j)=1が代入される。
【0023】
次に、統合グラフ作成部1は、因果関係データ内から因果関係の無い任意の二文を抽出し、類似度を計算し、その二文の類似度が予め設定された閾値αより大きい場合に、その二文間にエッジを作成する(ステップS03)。または、ステップS03において、全ての文間の類似度のうち、類似度が高い上位N個(Nは予め定めた値とする)の文間にエッジを作成してもよい。
【0024】
類似度の算出方法を、具体的に説明する。文x、文yの間の類似度は、例えば、次の計算式(1)によって計算される。
Sim(x,y)=|W(x)∧W(y)|/|W(x)∨W(y)| ・・・式(1)
式(1)において、W(z)は文zに含まれる単語の集合を意味する。また、単語とは、文に対し、形態素解析処理やNグラムの切り出しなどにより得られる文内の部分文字列を意味する。よって|W(x)∧W(y)|は、文xと文yに共通して登場する単語の数を意味し、|W(x)∨W(y)|は文xまたは文yに登場する単語の数を意味する。なお、例えば同義語辞書を用いて、異なる単語であっても同義であれば同じ単語であるとみなし、上記の計算を行ってもよい。
【0025】
また、文間の類似度を計算する際に、例えば、シソーラスなどの単語の概念辞書6を用いる。図3は、概念辞書6の例を示す説明図である。図3に示す概念辞書6は、単語の意味の包含関係を定義した辞書を示しており、各楕円が単語、楕円間の矢印が包含関係を表現している。図3に示す関係から、例えば、エアコンおよび扇風機は冷房機器の一つであり、冷房機器は家電の一つであるという関係が読み取れる。また、液晶TVはAV機器の一つであり、AV機器は家電の一つであるという関係が読み取れる。
【0026】
このような単語の包含関係を用いた文間の類似度Sim’(x,y)の計算方法は、次の式(2)のように表される。
Sim’(x,y)=(Sim(x,y)+|A(x)∧A(y)|/|A(x)∨A(y)|)/2 ・・・式(2)
式(2)において、A(z)は文z内に登場する単語の、概念辞書上の先祖(矢印方向に繰り返し辿ることで到達できる単語)の集合を意味する。
【0027】
統合グラフ作成部1は、類似度Sim(x,y)または類似度Sim’(x,y)が、例えば、予め定めた閾値αより大きい場合に行列データGのg(x,y)にその類似度を設定する。図4は、統合グラフ作成部1が出力する行列データの例を示す説明図である。図5は、統合グラフ作成部1の出力結果の一例を示すグラフ図である。図5において、各楕円は各文を表すノードを表し、楕円間の線はエッジを表し、エッジに添えられた数はエッジの重みを表している。
【0028】
図4に示す値は、式(2)を用いた計算によって導かれた値である。一例として、図3を参照して、Sim’(R1,R3)及びSim’(R1,R4)の計算を説明する。
【0029】
Sim’(R1,R3)は、以下のように計算される。R1,R3に含まれる単語W(R1),W(R3)は、形態素解析を行い名詞を抽出する処理により、下記のように抽出される。
W(R1)={エアコン,売上げ,上昇}
W(R3)={扇風機,売上げ,上昇}
これより、
W(R1)∧W(R3)={売上げ,上昇}
W(R1)∨W(R3)={エアコン,扇風機,売上げ,上昇}
であるため、
Sim(R1,R3)=2/4=1/2
となる。
【0030】
図3に示す例では、先祖ノードA(R1),A(R3)は、
A(R1)=A(R3)={冷房機器,家電}
である。また、
|A(x)∧A(y)|/|A(x)∨A(y)|=1
となる。
以上より、
Sim’(R1,R3)=(1/2+1)/2=0.75(=約0.8)となる。
【0031】
Sim’(R1,R4)は、以下のように計算される。R4に含まれる語句W(R4)は、
W(R4)={液晶TV,売上げ,上昇}
である。
これより、
W(R1)∧W(R4)={売上げ,上昇}
W(R1)∨W(R4)={エアコン,液晶TV,売上げ,上昇}
である。よって、
Sim(R1,R4)=2/4=1/2
となる。
【0032】
図3に示す例では、先祖ノードA(R1),A(R4)は、それぞれ、
A(R1)={冷房機器,家電}
A(R4)={AV機器,家電}
である。また、
A(R1)∧A(R4)={家電}
A(R1)∨A(R4)={冷房機器,AV機器,家電}
である。よって、
|A(x)∧A(y)|/|A(x)∨A(y)|=1/3となる。
以上より、
Sim’(R1,R4)=(1/2+1/3)/2=5/12(=約0.4)
となる。
【0033】
なお、シソーラスのうち、上位語辞書を用いてSim’(x,y)の類似度計算が行われたが、同義語辞書を用いて類似度計算を行ってもよい。同義語辞書は、各単語について同義の語を定義したものである。例えば、「エアコン」について、「エアーコンディショナー」、「Air Conditioner」、「クーラー」などの語が記載される。例えば、同義語を用いた計算式の例としては次の式が挙げられる。
Sim_synonym(x,y)=|S(x)∧S(y)|/|S(x)∨S(y)| ・・・式(3)
S(x)は、文xに含まれる単語について同義語辞書から得られる同義語の集合である。また、同義語辞書と上位語辞書とを併用してもよい。
【0034】
次に、グラフカット処理部2は、統合グラフ作成部1が作成した行列データGを元に、グラフを予め定められた数(K個)に分解するグラフカット処理を行う(ステップS04)。グラフカット処理は、グラフ中のノードをK個に分ける処理である。グラフカット処理として、例えば、非特許文献1のSpectralClusteringアルゴリズムを用いることができる。SpectralClusteringアルゴリズムは、次のようにグラフ分割処理を行う。
【0035】
1.行列データGより、次数行列Dを求める。
次数行列Dとは対角行列であり、各i行i列目の要素D(i,i)が文iの次数(エッジの数)になっている行列である。D(i,i)は、行列データGのi行目の非ゼロ要素の数を数えることによって計算される。
【0036】
2.分解用行列Xを計算する。
Xは、次の式(4)によって計算される行列である。
X=I−D−1/2GD−1/2 ・・・式(4)
式(4)において、Iは単位行列を示す。因果関係データ内の全文数をnとした場合、Iは、n行n列の単位行列となる。
【0037】
3.行列Xに対して、K個の固有値と固有ベクトルを計算する。
【0038】
4.固有値が0以外の値を持つK−1個の固有ベクトルを元に、各文に対してK−1次元の縮約ベクトルYを作成する。文iの縮約ベクトルYiはK−1個の固有ベクトルのi番目の値の要素を持つベクトルである。
【0039】
5.文の集合を縮約ベクトルYを用いてクラスタリングする。クラスタリング手法として、例えばK−means法を用いる。そして、クラスタリングした結果得られた文のクラスタを出力する。
【0040】
SpectralClusteringアルゴリズムは、グラフを分割する際に、疎なエッジ(重みが少ないエッジ)を切断するアルゴリズムである。このため、クラスタ間に因果関係や類似度を示すエッジが少なく、クラスタ内に因果関係や類似度を示すエッジが多く含まれるように、統合グラフをK個に分解することが可能である。
【0041】
グラフカット処理部2は、K個のノードのリストを出力する。例えば、図4に示すデータを元にK=4として分割したノードのリストは、{C1,C2,C3}、{C4}、{R1,R2,R3}、{R4}の4つのリストになる。また、C1,C2,C3とR1,R2との間に因果関係があるので、{C1,C2,C3,R1,R2}、{C4}、{R3}、{R4}の4つのリストになる場合がある。
【0042】
いずれの場合であっても、グラフカット処理部2の出力したリスト内には同一内容のノード、所定の条件を満たし類似するノード又は因果関係のあるノードしか含まれないので、例えば{C1,C2,C3,R1,R2,R3,R4}というような間違ったまとめ上げがされることはない。
【0043】
次に、グラフ縮約部3は、グラフカット処理部2が出力したノードのリストを元にグラフの縮約処理を行う(ステップS05)。グラフの縮約処理は、グラフカット処理部2が出力したノードのリストを調べ、因果関係を持たないノード同士をまとめ上げる処理である。ここでは、あるリストlist内にM個のノードが含まれるとして、グラフの縮約処理の処理手順を説明する。
【0044】
グラフ縮約部3は、まず、入力のリスト内に因果関係が一つでもあるかどうかを調べる。因果関係が一つも無い場合、そのリストを一つのクラスタとしてそのまま出力する。例えば、入力のリストが{C1,C2,C3}である場合、これらは一つにまとめられるため、{C1−C2−C3}が一つのノードとしてまとめられるべきとして出力される。
【0045】
図6は、グラフ縮約部3の処理の一部の処理手順を示すフローチャートである。図6を参照し、因果関係が一つでもある場合の処理の手順を説明する。グラフ縮約部3は、まずM個のbuffer配列を空の状態に初期化して、変数Pを0で初期化する(ステップS051)。次に、list内が空であるかどうかを調べる(ステップS052)。空である場合、グラフ縮約部3は、その時点でのbuffer配列を調べ、空でないbufferをクラスタとして出力する(ステップS053)。
【0046】
list内が空でない場合、グラフ縮約部3は、listから先頭のノードを取り出し、xとする(ステップS054)。さらに、グラフ縮約部3は、buffer配列の0番目からP−1番目を調べ、xが因果関係を持たないbufferを探す(ステップS055)。そのようなbufferが見つかった場合には、グラフ縮約部3は、そのbufferにノードを追加する(ステップS056)。その後、ステップS052に戻る。
【0047】
ステップS055において、xが因果関係を持たないbufferがもし見つからない場合には、グラフ縮約部3は、P番目のbufferに新たにxを追加し、Pを1増加させる(ステップS057)。その後、処理S052に戻る。
【0048】
図6に示されるグラフ縮約部3の処理を、具体例を用いて説明する。例えば、{C1,C2,C3,R1,R2}がlist内にある場合、ステップS052において、listは空ではないと判定されるので、ステップS054に進む。そして、ステップS054において、listからC1が取り出されxとされる。P=0であるため、ステップS055及びS056の処理がスキップされる。そして、ステップS057でbuffer[0]にx(C1)が追加され、P=1となる。
【0049】
ステップS052に戻り、listは空ではないので、ステップS054に進み、listからC2が取り出されxとされる。そして、ステップS055の判定において、x(C2)がbuffer[0]内の全ノード(C1)と因果関係がないと判定され、buffer[0]にx(C2)が追加されて(ステップS056)、buffer[0]が{C1,C2}となる。
【0050】
ステップS052に戻り、listは空ではないので、ステップS054に進み、listからC3が取り出されxとされる。そして、ステップS055の判定において、x(C3)がbuffer[0]内の全ノード(C1,C2)と因果関係がないと判定され、buffer[0]にx(C3)が追加されて(ステップS056)、buffer[0]が{C1,C2,C3}となる。
【0051】
ステップS052に戻り、listは空ではないので、ステップS054に進み、listからR1が取り出されxに代入される。そして、ステップS055では、x(R1)がbuffer[0]内の全ノード(C1,C2,C3)と因果関係があると判定され、ステップS057に進む。ステップS057でbuffer[1]にx(R1)が追加され、P=1であるので、Pに1加算されてP=2となる。この時点で、buffer[0]が{C1,C2,C3}であり、buffer[1]が{R1}となる。
【0052】
ステップS052に戻り、listは空ではないので、ステップS054に進み、listからR2が取り出されxとされる。そして、ステップS055の判定において、x(R2)がbuffer[1]内の全ノード(R1)と因果関係がないと判定され、buffer[1]にx(R2)が追加される。(ステップS056)。この時点で、buffer[0]が{C1,C2,C3}であり、buffer[1]が{R1,R2}となる。
【0053】
ステップS052に戻り、listは空となっているので、ステップS053に進み、buffer[0]に格納されている{C1,C2,C3}と、buffer[1]に格納されている{R1,R2}が出力される。
【0054】
このように、{C1,C2,C3,R1,R2}内のまとめ上げでは、C1とR1との間に因果関係があり、C2とR2の間に因果関係があるため、{C1−C2−C3}と、{R1−R2}の2つのクラスタが出力される。これにより、各クラスタ内には因果関係のないノードのみが統合された状態となる。
【0055】
さらに、グラフ縮約部3は、統合グラフ作成部1が作成したグラフデータを入力し、グラフデータの因果関係に基づき、クラスタ間のエッジを出力する。クラスタ間のエッジは、次の手順により作成される。クラスタA内の任意のノードとクラスタB内の任意のノードが因果関係を持つ場合、グラフ縮約部3は、クラスタAとクラスタBとの間にエッジを作成する。
【0056】
図7は、グラフ縮約部3の出力結果の1つ目の例を示すグラフ図である。例えば、グラフ縮約部3が{C1,C2,C3}、{C4}、{R1,R2,R3}、{R4}の4つのリストを入力する。この場合、グラフ縮約部3は、図6に示した処理において、C1−C2−C3、C4、R1−R2−R3、R4の四つのクラスタを出力する。さらに、グラフ縮約部3は、クラスタ間のエッジとして、クラスタC1−C2−C3からクラスタR1−R2−R3へのエッジと、クラスタC4からクラスタR4へのエッジを作成する。図7に示すグラフは、この結果をグラフで表現したものである。
【0057】
図8は、グラフ縮約部3の出力結果の2つ目の例を示すグラフ図である。例えば、グラフ縮約部3が{C1,C2,C3,R1,R2}、{C4}、{R3}、{R4}の4つのリストを入力する。この場合、{C1,C2,C3,R1,R2}内のまとめ上げ処理では、C1とR1との間に因果関係があり、C2とR2との間に因果関係があるため、C1−C2−C3と、R1−R2の2つのクラスタが生成される。よって、この四つのリストからC1−C2−C3、R1−R2、C4、R3、R4の5つのクラスタが作成される。さらに、グラフ縮約部3は、クラスタ間のエッジとして、クラスタC1−C2−C3からクラスタR1−R2及びR3へのエッジと、クラスタC4からクラスタR4へのエッジを作成する。図8に示すグラフは、この結果をグラフで表現したものである。
【0058】
最後に、ラベル作成部4は、グラフ縮約部3により作成されたクラスタと因果関係データ5とを元に各クラスタのラベルを作成する(図2のステップS06)。ラベルの作成は、クラスタ内の各文に対して形態素解析などで名詞や自立語を抽出した上で、クラスタ内の文に共通して登場する語、または概念辞書6のシソーラス上の先祖ノードを取り出すことで行われる。
【0059】
ラベル作成部4は、グラフ縮約部3により作成されたクラスタ内の複数のノード内に、共通する単語があれば、それをラベルとして出力する。また、単語の包含関係を示す概念辞書を用いて、当該クラスタ内の単語の共通の上位語があれば、その上位後のうち、より低い位置にある単語をラベルとして出力する。
【0060】
図9は、ラベル作成部4が出力するグラフ要約結果の例を示す説明図である。図9に示す要約結果は、図7に示されたグラフ構造に基づくものである。例えば、ラベル作成部4は、C1−C2−C3で構成されるクラスタに対して、共通する単語を用いて「平均気温、高い」というラベルを生成する。また、ラベル作成部4は、R1−R2−R3で構成されるクラスタに対して、共通の上位語である「冷房機器」と、共通の単語である「売上げ、上昇」とを用いて、「冷房機器、売上げ、上昇」というラベルを生成する。また、ラベル作成部4は、C4で構成されるクラスタに対して、「ワールドカップ、開催」というラベルを生成する。また、ラベル作成部4は、R4で構成されるクラスタに対して、「液晶TV、売上げ、上昇」というラベルを生成する。なお、仮に、R1−R2でクラスタが構成された場合、ラベル作成部4は、共通の単語を用いて「エアコン、売上げ、上昇」というラベルを生成する。
【0061】
次に、本実施形態の因果関係要約装置を実現する具体的なハードウェア構成例を説明する。本実施形態の因果関係要約装置を実現するハードウェア構成は、例えば、CPU(Central Processing Unit)、主記憶部、出力部、入力部及び補助記憶部を含む構成である。主記憶部は、例えばRAM(Random Access Memory)等のメインメモリであって、データの作業領域やデータの一時退避領域として用いられる。出力部は、例えば液晶ディスプレイ装置等の表示装置、又はプリンタ等の印刷装置であり、データを出力する機能を有する。入力部は、例えばキーボードやマウス等の入力デバイスであり、データを入力する機能を有する。補助記憶部は、例えばROM(Read Only Memory)やハードディスク装置等である。
【0062】
補助記憶部は、統合グラフ作成部1、グラフカット処理部2、グラフ縮約部3及びラベル作成部をそれぞれ実現するプログラム、因果関係データ5、並びに概念辞書6を記憶する。入力部は、各プログラム、因果関係データ5及び概念辞書6等を入力するために用いられる。CPUは、各プログラムを実行する際に、主記憶部に一時的にプログラムを読み込み、主記憶部内の各プログラムを実行することで上記の処理を実現する。そして、出力部は、各プログラムの処理結果を出力する。
【0063】
次に、具体的な実施例を用いて本実施形態の因果関係要約装置の動作を説明する。因果関係データとして図10に示す例を用いる。図10に示す因果関係データが統合グラフ作成部1に入力されると、統合グラフ作成部1は、その因果関係に基づき、C1とR1の間のエッジ、C2とR2の間のエッジ、C3とR3の間のエッジおよびC4とR4の間のエッジを生成する。さらに、統合グラフ作成部1は、これらの8つの文間の類似度を計算し、類似度に応じてノード間にエッジを作成する。また、各エッジには因果関係又は類似度の高さに応じた重みが添えられる。統合グラフ作成部1が出力するグラフの例は、図5に示されている。また、このグラフを表現した行列データは、図4に示されている。
【0064】
次に、グラフカット処理部2は、図4に示すデータを元に、切断されるエッジの重みの和が小さくなるようグラフを分割するグラフカット処理を行う。クラスタの個数としてK=4が設定されている場合、グラフカット処理部2は、グラフを4つに分割することにより、{C1,C2,C3}、{C4}、{R1,R2,R3}、{R4}の4つのクラスタを出力する。
【0065】
次に、グラフ縮約部3は、{C1,C2,C3}、{C4}、{R1,R2,R3}、{R4}の4つのクラスタを元にグラフの縮約を行う。この例では、グラフ縮約部3は、入力したクラスタをそのままC1−C2−C3、C4、R1−R2−R3、R4の四つのクラスタに変換する。また、グラフ縮約部3は、{C1,C2,C3,R1,R2}、{C4}、{R3}、{R4}の4つのクラスタを入力した場合であっても図6に示す処理により、C1−C2−C3、C4、R1−R2−R3、R4の四つのクラスタに変換する。これにより、クラスタ内に因果関係を持つノードが存在しない状態となる。
【0066】
さらに、グラフ縮約部3は、クラスタ間のエッジとして、クラスタC1−C2−C3からクラスタR1−R2−R3へのエッジと、クラスタC4からクラスタR4へのエッジを作成する。この結果をグラフで表現すると、図7に示すように表現される。
【0067】
最後にラベル作成部4は、これらの4つのクラスタに対して、因果関係データ5と概念辞書6とを参照することで、下記の4つのラベルを作成する。
・C1−C2−C3:"平均気温、高い"
・C4:"ワールドカップ、開催"
・R1−R2−R3:"冷房機器、売上げ、上昇"
・R4:"液晶TV、売上げ、上昇"
以上の処理により、ラベル作成部4は、図9に示すグラフ要約結果を出力する。
【0068】
本実施形態の因果関係要約装置は、類似度のエッジと因果関係のエッジを組み合わせた統合グラフを作成し、類似度及び因果関係を考慮したグラフカット処理と因果関係を考慮した縮約処理を行う。そのため、類似度と因果関係をまとめて扱うことができ、因果関係が強く、類似度の高い部分を全体最適化の観点でまとめ上げることができる。また、原因文が似た結果文や結果文が似た原因文をうまくまとめ上げることができ、その結果、要約結果に誤った因果関係が生成されにくい。
【0069】
なお、上記の各実施形態では、以下の(1)から(3)に示すような因果関係要約装置も開示されている。
【0070】
(1)文の集合中の2つの文の間の類似度をシソーラスを用いて算出する因果関係要約装置。
【0071】
(2)因果関係要約装置において、予め用意された上位語辞書または同義語辞書(例えば、概念辞書6)を用いて、一方の文の単語の上位語または同義語が他方の文に存在するかどうかを調べ、当該他方の文に存在する当該上位語または当該同義語の数に応じた類似度を算出するように構成されていてもよい。
【0072】
(3)因果関係要約装置において、縮約処理が施されたグラフデータを対象として、当該グラフデータのクラスタ内のノードに共通する単語、または、当該クラスタ内の単語の共通の上位語のうち最も低い位置にある単語をラベルとして出力するラベル作成部(例えば、ラベル作成部4)を備えるように構成されていてもよい。
【産業上の利用可能性】
【0073】
本発明によれば、故障診断などの原因を検索するような作業を行う際に、ユーザに文書集合のグラフ要約を提供することができ、ユーザの情報探索作業を効率化することができる。
【符号の説明】
【0074】
1 統合グラフ作成部
2 グラフカット処理部
3 グラフ縮約部
4 ラベル作成部
5 因果関係データ
6 概念辞書
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11