【文献】
佐藤 岳文、外1名,Webマイニングを用いた因果ネットワークの自動構築手法の開発,社会技術研究論文集, [online],日本,社会技術研究会,2007年12月28日,第2006巻,第4号,p.66−74,[平成28年 2月16日検索], インターネット<https://www.jstage.jst.go.jp/article/sociotechnica/4/0/4_0_66/_pdf>
【文献】
青野 壮志、外1名,要因検索による因果関係ネットワークの構築,情報処理学会研究報告 平成21年度(4),日本,社団法人情報処理学会,2010年 1月18日,p.1−8
(58)【調査した分野】(Int.Cl.,DB名)
前記述語テンプレートには予め極性が割当てられており、前記連鎖手段は、前記因果的一貫性を持つフレーズペアを、各フレーズに含まれる述語テンプレートの極性を用いて前記フレーズペア記憶手段から検索する、請求項1に記載のシナリオ生成装置。
前記連結情報生成手段は、前記多数の因果関係フレーズペアの各々について、当該因果関係フレーズペアの結果フレーズと同一性のある名詞を共有する原因フレーズであって、かつ極性が同じ述語テンプレートを持つ原因フレーズを持つ因果関係フレーズペアを前記フレーズペア記憶手段内で検索し、検索された因果関係フレーズペアへの、元の因果関係フレーズペアからの連結情報を生成する手段を含む、請求項2に記載のシナリオ生成装置。
前記連結情報生成手段は、前記多数の因果関係フレーズペアの各々について、当該因果関係フレーズペアの結果フレーズと同一性のある名詞を共有し、かつフレーズ全体の評価極性が同じ原因フレーズを持つ因果関係フレーズペアを前記フレーズペア記憶手段内で検索し、検索された因果関係フレーズペアへの、元の因果関係フレーズペアからの連結情報を生成する手段を含む、請求項2に記載のシナリオ生成装置。
【発明を実施するための形態】
【0016】
以下の説明及び図面では、同一の部品には同一の参照番号を付してある。したがって、それらについての詳細な説明は繰返さない。
【0017】
以下の説明では、最初に本実施の形態で使用される基本概念を示す。さらに、それらを用いてどのようにして因果関係表現を認識できるかを述べる。続いて、認識した因果関係を組合せることによりいかにして社会シナリオを生成するかを示す。
【0018】
なお、以下の説明は日本語についてのものであるが、日本語以外の言語であっても、その言語の特性を考慮したうえで、以下の説明と同様の考え方で単純述語テンプレート及び複雑述語テンプレートの収集を行なうことができる。
【0019】
[基本概念]
《述語テンプレート》
述語テンプレートとは、因果関係を構成する文の要素である。本実施の形態では、述語テンプレートは、単純述語テンプレートと複雑述語テンプレートとに分類される。以下の説明では、単純述語テンプレートと複雑述語テンプレートとを総称して述語テンプレートと呼ぶ。述語テンプレートには後述するように極性が付与される。
【0020】
《単純述語テンプレート》
日本語において、助詞と述語との組合せ(例:<を、食べる>)のように1つの助詞と1つの述語とを結び付けたものを「単純述語テンプレート」と呼ぶ。例えば「が進行する。」、「を防ぐ。」、「が顕現する。」等である。この場合、文中では、単純述語テンプレートを構成する助詞の直前には、述語の主語、目的語等が配置される。
【0021】
《複雑述語テンプレート》
日本語の場合、助詞「の」と、1つの名詞と、単純述語テンプレートとを結び付けたものを「複雑述語テンプレート」と呼ぶ。本実施の形態では、名詞はいわゆるサ変名詞と、後述するような「トラブル名詞」と、数量名詞とからなる。例えば「の減少が進行する。」、「の抑制を防ぐ。」、「の事故を防ぐ。」、「の欠点が顕現する。」、「の台数を増やす。」等である。
【0022】
《フレーズ》
日本語の場合、フレーズとは、名詞+述語テンプレートの形式を持つ文字列のことを言う。フレーズはまとまりのある1つの事柄を言い表していると考えられる。
【0023】
《因果関係》
因果関係とは、本実施の形態では、原因となる事柄を述べたフレーズ(原因フレーズ)とその結果となる事柄を述べたフレーズ(結果フレーズ)との組からなる。
【0024】
《極性》
以下では、述語テンプレートの極性について説明する。次に、単純述語テンプレート及び複雑述語テンプレートの極性の自動獲得手法について述べる。最後に、分類された述語テンプレートのアプリケーションについて述べる。
【0025】
(1) 述語テンプレートの極性
本実施の形態では、全体のシステムの入力となるテキストに現れる述語テンプレートを以下のテーブル1に示す3種に分類する。
【0026】
【表1】
本実施の形態では、以上の述語テンプレートの分類はその述語テンプレートを含むテキストから自動的に行なわれる。その際、活性述語テンプレートには正の活性値を、不活性述語テンプレートには負の活性値を、それぞれ割当てる。活性値の具体的な計算法は単純述語テンプレートと複雑述語テンプレートとで異なるが、それらについては後述する。中立動詞とは、計算の結果得られた活性値の絶対値があるしきい値以下のもののことをいう。本明細書では、上述の「活性」、「不活性」及び「中立」に関する分類と、各述語テンプレートに付された活性値との両者を総称して述語テンプレートの「極性」と呼ぶ。
【0027】
否定の助動詞「ない」等が述語に続く場合には、述語と否定の助動詞を併せたものを1つの述語と考え、その活性値として、元の述語の活性値の正負を逆転させたものを用いる。
【0028】
(2)単純述語テンプレートへの極性の割当
単純述語テンプレートへの極性の割当は自動的に計算される。極性割当の手がかりとして以下のような言語学的性質、制約を考える。まず、名詞の対を考え、対を成す名詞の間の因果関係という概念を導入する。
【0029】
因果関係を持つ名詞の対には以下のテーブル2に示す2種類の関係がある
【0030】
【表2】
これら名詞の対と、単純述語テンプレートの活性値を掛け合わせた値(積)の極性(符号)との間には以下のような関係がある。すなわち、(1)順接の接続詞、接続助詞、又はその他の接続表現(以下、単に「接続詞等」と呼ぶ。)(〜ので、〜ため、〜て、等)で結ばれた2つの単純述語テンプレートについては、その活性値の積の極性は、正の因果関係を持つ名詞句が2つの単純述語テンプレートと係り受けを持つ場合には、正になる。(2)逆に、順接の接続詞等で結ばれた2つの単純述語テンプレートと、負の因果関係を持つ名詞句が係り受けを持っている場合には積の極性は負になる。(3)逆接の接続詞等(〜が、〜にもかかわらず等)で2つの動詞が結ばれている場合には積の極性は(1)(2)と逆になる。
【0031】
これらの関係について例を挙げると以下のテーブル3のとおり。なお、名詞の対<地震、津波>は正の因果関係を持ち、<抗がん剤、ガン>は負の因果関係を持つ。
【0032】
【表3】
なお、同義/含意の関係を持つ単純述語テンプレートの組は同じ極性を持つ。例えば「(ワクチン)を処方する」と「(ワクチン)を注射する」とは両方とも極性は正であり、「(地震)が発生する」と「(地震)が起きる」についても極性は両方とも正である。ただし、活性値が同一であるとは限らない。
【0033】
具体的な活性値の計算においては、以上に例示したようなテキスト、つまり、各々名詞と結び付き、かつ互いに順接の接続詞等で連結された2つの単純述語テンプレートからなる表現をインターネットなどのコーパスから大量に収集する。それら単純述語テンプレート間、及び同義/含意関係を持つ単純述語テンプレートの対の間でリンクをはることにより、単純述語テンプレートのネットワークを作る。リンクには上で述べたような、単純述語テンプレートの極性が同一かどうかの情報を属性として付与する。このネットワーク上の少数の単純述語テンプレートには、あらかじめ、人手で+1又は−1の活性値を付与する。そのネットワーク上で、後述するように量子力学での電子スピンのエネルギーに類似したエネルギーを定義する事が可能である。そのエネルギーを最適化(ここでは最小化)する計算を行ない、一種の制約解消をすることで、単純述語テンプレートの極性及び名詞ペアの因果関係の極性をブートストラップ的かつ大局的に決定及び計算できる。この活性値の算出手法については非特許文献1を参照されたい。
【0034】
なお、後述の活性値の割当てアルゴリズムはあくまで一例であり、上記言語学的制約を考慮したエネルギー関数に基づいて具体的な活性値を求める手法は他にも存在する可能性がある。
【0035】
(3)複雑述語テンプレートの極性の割当
複雑述語テンプレートの出現頻度は単純述語テンプレートに比べて低い。そのため、従来のように統計的情報のみに基づいて複雑述語テンプレートの極性を判定しようとすると、高い信頼性を得ることはかなり難しいことが予測される。しかし、以下に述べる実施の形態では以下のようにして複雑述語テンプレートの極性を自動的に割当てる。
【0036】
すなわち、以下に述べる実施の形態では、活性を+1、不活性を−1と表現し、複雑述語テンプレートを構成する名詞及び単純述語の活性の積をその複雑述語テンプレートの極性とみなす。具体的に、「の減少が進行する」という複雑述語テンプレートの極性は以下のようにして決定する。「減少」という名詞の極性は不活性(−1)、「が進行する」という単純述語テンプレートの極性は活性(+1)、したがって「の減少が進行する」という複雑述語テンプレートの極性は−1×(+1)=−1となる。
【0037】
ただし、全ての名詞について極性を示す情報を予め準備することは難しい。そこで、本実施の形態では、サ変名詞とトラブル名詞との場合には、以下のようにして各名詞について予め極性を示す情報を準備しなくても判定できるようにした。もっとも、これらの極性の判定には以下に述べるように注意が必要である。
【0038】
《サ変名詞》
サ変名詞の極性については基本的には以下のようにして単純述語テンプレートから判定する。すなわち、サ変名詞については、基本的には、そのサ変名詞に対応する単純述語テンプレートの極性を付与する。サ変名詞に対応する単純述語テンプレートとは、サ変名詞の直前に存在する助詞が「ハ、ヲ、ガ、ニ、デ」となっている場合に、その助詞+サ変名詞の形で始まるものをいう。例えば「減少」については、直前の助詞が「が」であれば対応する単純述語テンプレートは「が減少する」(不活性)、「を」であれば「を減少する」(不活性)となり、いずれの場合も不活性である。したがってこれらの場合はいずれも「減少」の極性は不活性となる。一方、「抑制」の場合にはやや複雑である。例えば複雑テンプレート中で「抑制」の直前の助詞が「が」であれば、対応する単純述語テンプレートは「が抑制する」(活性)となって「抑制」の極性は活性となる。しかし、直前の助詞が「を」であれば、対応する単純述語テンプレートは「を抑制する」(不活性)となって、「抑制」の極性は不活性となる。したがって、複雑述語内のサ変名詞については、単純述語テンプレートとしてどのような助詞を伴うものを採用すべきかを文脈により決定する必要がある。これを決定するためには、複雑述語テンプレートが使用されている文脈の情報が必要である。複雑述語テンプレートの極性は複雑述語テンプレートだけでは決定できない。
【0039】
複雑述語テンプレートとは「名詞+『の』+{サ変名詞|トラブル名詞|数量名詞}+単純述語テンプレート」という形式である。これを利用して、以下に述べる実施の形態では、以下のようにしてサ変名詞の極性を決定できるようにする。まず、サ変名詞の直前の助詞(「の」など)の直前に存在する名詞が、サ変名詞を動詞化したもの(サ変動詞)と格助詞を伴って共起する頻度を各助詞についてコーパス上で調べる。この結果、特定の名詞と特定のサ変動詞との組合せと最も高い頻度で共起する格助詞が何かを知ることができる。また、その格助詞とサ変動詞との組合せは単純述語テンプレートであるから、その極性も簡単に判定できる。複雑述語テンプレートの極性としては、その極性を用いればよい。ただし、どの助詞が特定の名詞及び特定のサ変動詞と最もよく共起するかは、名詞及びサ変名詞が特定されないと決定できない。そこで、本実施の形態では、文脈依存のサ変名詞の複雑述語テンプレートについて、その極性を複雑述語テンプレートの抽出時に特定することはしない。実際のアプリケーションで、複雑述語テンプレートが出現する文脈が分かった時点で、サ変名詞の直前に現れる名詞と、サ変名詞から得られるサ変動詞との組合せにより、その間を結ぶ格助詞を決定する。その格助詞とサ変動詞とを先頭に持つ単純述語テンプレートを調べれば、その極性から元のサ変名詞の極性を判定できる。
【0040】
本実施の形態では、サ変名詞に対応する単純述語テンプレートが文脈依存の場合に備え、名詞と、サ変名詞との組合せごとに、両者を結ぶ格助詞としてコーパス上で最も頻度が高かったものを予め調べる。そして、単純述語テンプレートの中で、その格助詞を先頭に持ち、サ変名詞から得られるサ変動詞を持つ単純述語テンプレートを探し、その極性をサ変名詞の極性とする。この極性を名詞とサ変動詞との組合せごとに辞書に保持する。
【0041】
《トラブル名詞》
トラブル名詞の場合には、その名詞の前にノ格でとる名詞がそのトラブルの被害者(物)と解釈できれば不活性、それ以外の場合には活性と判定する。例えば以下のようなものがある。以下の例では、「事故」及び「汚れ」がトラブル名詞である。
【0042】
−「(列車の)事故」は不活性
−「(台所の)汚れ」は不活性
−「(排油の)汚れ」は活性
こうした判定方法を採用する場合、トラブル名詞の極性を判定するためには、その直前のノ格の名詞がトラブル名詞とどのような関係にあるかを判定する必要がある。以下に述べる実施の形態では、この極性を判定するために、トラブル名詞と、そのトラブル名詞の前にノ格を伴って共起する名詞との組合せごとに、極性を判定するためのパターン辞書を準備する。すなわち、トラブル名詞と、その直前の「ノ」格の名詞と、それらが共起するパターンとの組合せごとに、トラブル名詞の極性を予め定める。そして、ノ格で現れる名詞とトラブル名詞との具体的な組合せがどのようなパターンを伴ってコーパス内で実際に共起しているかをチェックすることで、トラブル名詞の極性を決定する。
【0043】
例えば「(トラブル名詞A)で(名詞a)が大破する」(不活性)、「(名詞b)が(トラブル名詞B)で動かない」(不活性)等のパターンで、名詞「列車」とトラブル名詞「事故」が共起しているならば、「(列車の)事故」というときの「事故」は不活性であると判定できる。逆に、ある名詞とトラブル名詞とが共起するパターンが活性パターンであれば、その名詞+「の」+トラブル名詞の形でのトラブル名詞の極性は活性となる。
【0044】
《数量名詞》
数量名詞については、全て活性とみなしてよい。
【0045】
(4) 可能なアプリケーション
こうした分類極性を使う事で以下のようなアプリケーションが可能となる。
【0046】
(A)フレーズ間の因果関係の自動認識手法
活性値の積が正で、活性値の絶対値が大きい述語テンプレートの対が正の因果関係を持つ名詞と共起し、順接の接続詞等で結ばれた場合には因果関係を表している可能性が高い。活性値の積が負で、活性値の絶対値が大きい述語テンプレートの対が負の因果関係を持つ名詞と共起し、順接の接続詞等で結ばれた場合にも因果関係を表している可能性が高い。この性質を利用して、テーブル4に示すように、因果関係を表す2つの述語テンプレート及び正負の因果関係を持つ名詞ペアを含む表現をテキスト中で自動的に認識し、取得できる。
【0047】
【表4】
注意すべきこととして、例えば上に挙げた接続助詞「…て」は、因果関係を表すとは限らない。「…て」が因果関係以外を表す表現は無数に存在する。例えば、「風呂に入って、食事をする」の場合、風呂と食事との間には、因果関係は通常認められない。本実施の形態により、このような、因果関係ではないフレーズペアをうまく除外し、因果関係のみを精度高く取得できる。なお、因果関係を表す可能性がある日本語の接続詞等として、「…て」のほかに、「したがって」、「ゆえに」、「…ので」、「…ば」、「…と」、「…で」、「…から」、「…ため」、「…ために」等がある。
【0048】
このような順接の接続詞等を用いる表現の集合の中から、上記制約を考慮することで、フレーズ間の因果関係を高精度に獲得することが可能となる。因果関係が得られると、例えば、「地震が起きた」という情報から、「津波に襲われる可能性がある」という予測ができる。こうして取得された因果関係は、フレーズ間の意味的関係の自動獲得という非常に重要な技術にとって大きなファクターとなる。
【0049】
(B)フレーズ間の因果関係を組合せた仮説生成
上記フレーズ間の因果関係の自動認識を併せ用いる事で、元となるテキストに「陽」に記載されていない因果関係を自動取得する事が可能となる。その手法の概略は以下のとおりである。
【0050】
まず、基となるテキストから、パターンによる名詞間の意味的関係の獲得(これには既存技術を利用できる)によって、例えば材料関係を自動的に獲得できる。すなわち、製品Bと材料Aとの間の関係が「AでBを作る」というようなパターンによって自動獲得できる。この自動獲得の結果、製品「超硬工具」の材料が「タングステン」であるという情報が取得出来たとする。次いで、この材料関係という意味的関係を持つことが分かった名詞の対、すなわち「超硬工具」と「タングステン」とからなる名詞の対とそれぞれ頻繁に共起する述語テンプレートで、互いの活性値の積が正であり、かつその活性値の絶対値が大きいものを選ぶ。選ばれた述語テンプレートを、それぞれ対となる名詞と並べる。すると、例えば、「タングステンを輸入して(活性値正)、超硬工具を製造する(活性値正)」というような、述語(動詞)と名詞とからなる動詞句の間の(広い意味での)因果関係が獲得できる。ここでの因果関係とは、「タングステンを輸入する」のは「超硬工具を製造する」ためである、というものである。
【0051】
このようにして獲得された因果関係自体が、テキスト中に「陽」に書かれていない場合もある。そのような場合には、上記した方法で因果関係に関する仮説が生成されたことになる。なお、この際、「輸入する」「製造する」といった動詞単体がよく一文内で共に出現する等の制約を用いてもよい。
【0052】
もっとも、WEB上の文書を大量に収集したとしても、そこに世の中の全ての因果関係が書かれている可能性はあり得ない。個人の限られた知識及び想像力を補い、あらゆるリスクとチャンスとを考慮した、バランスのとれた適切な意思決定を人々が下すことを支援するためには、因果関係を網羅的に収集することが必要である。そこで、以下に述べる実施の形態では、WEBに明示的には記載されていないような因果関係の仮説を大量に生成し、それらをフィルタリングすることで、世の中の全ての因果関係に対するカバー率と精度とを向上させる。
【0053】
具体的には、以下の実施の形態では次に述べるような4つの手法を用いて因果関係の仮説を生成する。
【0054】
(1)意味的関係に基づく因果関係仮説フレーズペア生成
既に述べたとおり、名詞間の意味的関係を取得できる。この意味的関係を用いて、取得済の因果関係から多数の因果関係仮説を生成できる。
【0055】
具体的には、ある因果関係の原因フレーズに含まれる名詞と、結果フレーズに含まれる名詞との間に、ある意味的関係が存在するものとする。すると、同じ意味的関係を持つ別の名詞ペアについても、その因果関係が成立する可能性が高い。したがって、基になった因果関係の原因フレーズの名詞と、結果フレーズの名詞とを、同じ意味的関係を持つ名詞ペアで置換することにより新たな因果関係仮説を生成できる。
【0056】
意味的関係としては、例えば以下のようなものがある。
【0057】
−材料関係(例:<AでBを生産する>、(トウモロコシ、バイオ燃料)等)
−必要関係(例:<AはBに必須だ>、(日光、光合成)等)
−使用関係(例:<AをBに使う>、(iPS細胞、再生医療)、等)
−予防関係(例:<AでBを防ぐ>、(ワクチン、インフルエンザ)、等)
−因果関係(例:<AがBを引き起こす>、(糖尿病、脳こうそく)、等)
このような意味的関係については、後述するように自動的に取得できる。
【0058】
(2)論理的関係(裏)による因果関係仮説フレーズペア生成
ある因果関係が妥当である場合、その因果関係の裏も妥当な因果関係である可能性が高い。例えば「ストレスが増加する(原因)」→「不眠が続く(結果)」という因果関係が妥当である場合、その意味的な裏の因果関係、すなわち「ストレスが減少する(原因)」→「不眠が改善される」も妥当である可能性が高い。このような裏の表現を得るために、予め互いに矛盾する表現のデータベースを作成しておいてもよい。矛盾表現は、インターネットから因果関係と同様の手順で収集できる。
【0059】
以上のような方法で大量の因果関係及びその仮説を取得し、データベースにしておくことによって、実際に新たな情報が来た際に、その後の可能な状況を推論することが可能となる。例えば、「タングステンが輸入禁止されたため、超硬工具を販売中止される」という因果関係の仮説がデータベース化されていたとする。そこに、「タングステンが輸入禁止」というニュース記事が出現したとする。すると、上記したデータベースを検索することにより、「タングステンが輸入禁止された」ことの帰結として、「超硬工具が販売中止される」可能性があるという推論を行なえる。すなわち、その分野に関する詳しい知識を持たない人間にとっては未知の仮説が自動的に生成できる。
【0060】
以上のような仮説生成は、当初の「超硬工具をタングステンで作る」といった単純で頻出するパターンで記載された情報のみから始まるものである。一方で、超硬工具ともタングステンとも関係を持たないテキストから述語テンプレートの活性/不活性に関する情報を抽出する。これらを組合せることにより、因果関係の仮説が生成される。すなわち、入力されるテキスト中に、超硬工具及びタングステンに関する言及が「超硬工具をタングステンで作る」という表現のみしかなかったとしても、上に述べたような仮説の生成が可能になる。その結果、非常に乏しい情報量から、「超硬工具が製造禁止になる可能性がある」という非常に高度な仮説を得ることができる。したがってこの技術は、広い適用範囲があるとともに、情報の高度な活用のためのコア技術となる。
【0061】
(C)同義、含意関係を持つ表現の自動獲得の精度向上
従来の同義、含意関係の自動獲得技術では、注目している表現の周辺に出現する語の出現確率の分布の類似により、同義、含意を認識している。しかしこの手法によると、往々にして、ある単語Aに対する反義の単語Bが、単語Aと同義又は含意という関係を持つと誤認識されるケースがあった。これは、反義語の出現するコンテキストが類似することが多いことに起因する。これに対して本実施の形態によれば、例えば、「を引き起こす」の活性値が正、「を防ぐ」の活性値が負であることを自動的に計算できる。これらの情報を用いると、従来技術を用いることで抽出された同義表現の候補の中で、述語テンプレートの極性が異なっているか否かにより同義か否かを見分けることができる。この結果、上記した技術を用いて、単語の同義及び含意の自動獲得の精度が向上する。
【0062】
(D)文をまたがった因果関係の自動獲得
上記した(A)及び(B)の技術によって多数の因果関係を取得できる。それら多数の因果関係をデータベース化すると、それら因果関係の表現中に頻出する述語テンプレートの対が獲得できる。例えば、「が起きた」と「に襲われた」という述語テンプレートの対が、データベース中の因果関係に多数出現するものとする。そうした述語テンプレートは、テキスト中で文をまたがって(別の文の中で)出現した場合でも、互いの間の文数、単語数又は文字数等、「距離」が近い場合には因果関係を表す可能性が高い。例えば、「昨日、地震が起きた。津波に襲われたとの報告が寄せられている。」といったように、「地震が起きた」という表現と「津波に襲われた」という表現とが2文に分かれて出現した場合を考える。この場合でも、「地震が起きた」と「津波に襲われた」との2つのフレーズで記述される出来事の間には因果関係がある。また、そこに出現している名詞の対、すなわち「地震」と「津波」の間にも因果関係がある。こうした性質を利用し、複数文にまたがって記載されている因果関係を、フレーズ間及び単語間の双方について、自動的に取得できる。
【0063】
以下、上記した考え方に基づく本発明の実施の形態のシステムの構成及び動作について説明する。以下に説明する実施の形態の内、第1の実施の形態は、上記したフレーズ対の抽出技術及び仮説の生成技術を用いて、因果関係フレーズ対を収集し、さらにそれらを連鎖させることで社会シナリオを生成する技術に関する。第2の実施の形態は、第1の実施の形態の変形例であり、社会シナリオ候補のスコアリング技術に関する。
【0064】
<第1の実施の形態>
[構成]
〈全体構成〉
図1を参照して、この発明の第1の実施の形態に係る社会シナリオ生成システム30は、前述した述語テンプレートのうち、テンプレートネットワーク構築の際の核となる単純述語テンプレート(これを「シードテンプレート」と呼ぶ)を記憶するためのシードテンプレートDB32と、述語テンプレートの間を連結する、順接及び逆接の接続詞等を記憶する接続詞DB34と、シードテンプレートDB32、接続詞DB34、及びインターネット40から収集した文書のコーパスであるWEBアーカイブ44から、接続詞DB34に記憶された接続詞等により結び付けられた2つのフレーズからなる原因と結果との関係にある因果関係フレーズ対を大量に獲得し、さらに因果関係フレーズ対を様々な知識に基づいて拡張し連鎖させて社会シナリオを生成するための社会シナリオDB構築装置36と、社会シナリオDB構築装置36により生成された社会シナリオを記憶するための社会シナリオDB38と、社会シナリオDB38に記憶された社会シナリオを、外部からの要求にしたがって加工して出力する社会シナリオ出力部48とを含む。
【0065】
なお、この実施の形態に係る社会シナリオ生成システム30は、WEBアーカイブ44に記憶されたWEB上の文書を使用して社会シナリオを生成する。WEBアーカイブ44は、インターネット40からWEBクローラ42により収集されたWEB文書からなる。
【0066】
〈社会シナリオDB構築装置36〉
図1を参照して、社会シナリオDB構築装置36は、シードテンプレートDB32、接続詞DB34及びWEBアーカイブ44に接続され、WEBアーカイブ44から大量のフレーズ対を収集し、それらの中から大量の単純述語テンプレートを取出して単純述語テンプレートDB62を構築するための単純述語テンプレート収集部60と、単純述語テンプレート収集部60により構築された単純述語テンプレートDB62を用い、WEBアーカイブ44から複雑述語テンプレートを獲得するための複雑述語テンプレート収集部64とを含む。なお、シードテンプレートDB32に記憶された単純述語テンプレートには、それらテンプレートの活性・不活性にしたがって予め正又は負の活性値が与えられている。以下に述べる処理の最初には、これらの値はそれぞれ+1及び−1である。
【0067】
社会シナリオDB構築装置36はさらに、複雑述語テンプレート収集部64により収集された複雑述語テンプレートを記憶する複雑述語テンプレートDB66と、複雑述語テンプレートDB66に記憶された複雑述語テンプレート及び単語クラスDB46に記憶された各単語に関するクラス情報とを用い、WEBアーカイブ44から互いに原因及び結果の関係にある2つのフレーズペアを収集する因果関係フレーズペア収集部68と、因果関係フレーズペア収集部68により収集された因果関係フレーズペアを記憶する因果関係フレーズペアDB70と、因果関係フレーズペアDB70に記憶された因果関係フレーズペアと、WEBアーカイブ44に記憶された文書と、単語クラスDB46とを参照して因果関係が連鎖した社会シナリオを多数生成する社会シナリオ生成部72とを含む。
【0068】
なお、単語のクラス情報は、単語が属するクラス(単語クラス)を表す情報であり、通常は、単語と、その単語が属するクラスを表すクラス識別子との組である。単語クラスは、本実施の形態では意味的に類似した単語の集合のこと(意味クラス)をいう。単語クラスを自動的に取得する手法として、単語が、同一の動詞と共起する頻度を用い、共起頻度(又は共起割合)がしきい値以上の単語を同一クラスとする手法がある。単語が同一の動詞及び助詞の組合せと共起する頻度を用いるものでもよい。
【0069】
〈単純述語テンプレート収集部60〉
図2を参照して、単純述語テンプレート収集部60は、シードテンプレートDB32と接続詞DB34とに接続され、シードテンプレートDB32に記憶された全ての単純述語テンプレートと、接続詞DB34に記憶された全ての接続詞等とを用い、2つの単純述語テンプレートが接続詞等で結び付けられた組合せの全てを生成する初期テンプレートペア生成部90と、初期テンプレートペア生成部90により生成された単純述語テンプレートのペアを記憶するための初期テンプレートペアDB92とを含む。初期テンプレートペア生成部90により生成される単純述語テンプレートのペアの例を以下のテーブル5に示す。
【0070】
【表5】
単純述語テンプレート収集部60はさらに、初期テンプレートペアDB92に記憶された単純述語テンプレートのペアの各々について、そのペアと共起する名詞ペアをWEBアーカイブ44から収集するための名詞ペア収集部94と、名詞ペア収集部94により収集された名詞ペアを記憶するための名詞ペアDB96と、名詞ペアDB96に接続され、名詞ペアDB96に記憶された名詞ペアの各々に含まれる名詞の間の関係を、それら名詞と共起している単純述語テンプレートの極性、及び接続詞DB34に記憶されている接続詞等の種別に基づいて判定し、各名詞ペアにその関係を示すタグ(関係タグ)を付す処理を行なうための名詞ペア極性判定部98とを含む。
【0071】
ここでは、名詞ペア極性判定部98は、以下のテーブル6に示す方法にしたがって名詞ペアを構成する名詞の間の関係を判定する。
【0072】
【表6】
すなわち、2つの単純述語テンプレートと共起している名詞ペアの関係は、次のようにして判定できる。
【0073】
(1)2つの単純述語テンプレートの極性が同じで、これらが順接の接続詞等で接続されていると、これらと共起している名詞ペアの関係は正
(2)2つの単純述語テンプレートの極性が同じで、これらが逆接の接続詞等で接続されていると、これらと共起している名詞ペアの関係は負
(3)2つの単純述語テンプレートの極性が反対で、これらが順接の接続詞等で接続されていると、これらと共起している名詞ペアの間の負
(4)2つの単純述語テンプレートの極性が反対で、これらが逆接の接続詞等で接続されていると、これらと共起している名詞ペアの間の正
単純述語テンプレート収集部60はさらに、名詞ペアDB96に接続され、名詞ペア極性判定部98により関係タグが付された名詞ペアの各々について、それらと共起する単純述語テンプレートペアをインターネット40から収集するためのテンプレートペア収集部100と、テンプレートペア収集部100が収集した単純述語テンプレートペアを、それらと共起した名詞ペアと関係付けて記憶するためのテンプレートペアDB102と、テンプレートペアDB102に記憶された単純述語テンプレートペアの各々について、その単純述語テンプレートペアを構成する単純述語テンプレートの活性/不活性が同じか否か(マッチするか否か)を、その単純述語テンプレートペアと共起する名詞ペアの関係(正/負)と、単純述語テンプレートを連結している接続詞等が順接か逆接かに基づいて判定し、各単純述語テンプレートペアにその結果をタグとして付与するためのテンプレート活性マッチ判定部104とを含む。
【0074】
単純述語テンプレートペアの活性/不活性が同じか否かは以下のテーブル7に例を示す方法により判定できる。なお、テーブル6に示すように、名詞ペア<地震、津波>の関係は正、名詞ペア<唾液分泌、口渇>の関係は負、名詞ペア<アセトアルデヒド、肝障害>の関係は正である。
【0075】
【表7】
すなわち、以下のような条件で単純述語テンプレートペアの活性/不活性が同じか反対かを判定できる。
【0076】
(1)関係が正である名詞ペアと共起し、順接の接続詞等により接続される単純述語テンプレートペアの活性は同じ
(2)関係が正である名詞ペアと共起し、逆接の接続詞等により接続される単純述語テンプレートペアの活性は反対
(3)関係が負である名詞ペアと共起し、順接の接続詞等により接続される単純述語テンプレートペアの活性は反対
(4)関係が負である名詞ペアと共起し、逆接の接続詞等により接続される単純述語テンプレートペアの活性は同じ
単純述語テンプレート収集部60はさらに、テンプレートペアDB102に記憶された単純述語テンプレートペアとそのマッチ判定結果とに基づいて、単純述語テンプレート間にネットワークを構築するためのテンプレートネットワーク構築部106と、テンプレートネットワーク構築部106が、ネットワークの構築時に単純述語テンプレート間のリンクを追加するために使用する同義・含意関係辞書108とを含む。このネットワークを本明細書では「テンプレートネットワーク」と呼ぶ。
【0077】
図3を参照して、例えばテンプレートネットワーク140は、各々が1つの単純述語テンプレートに対応する複数個のノードと、それらノード間に定義されるリンクとを含む。リンクは、テーブル6により示されるマッチ判定が行なわれた単純述語テンプレートに対応するノード間に張られる。各リンクには、その両端のノードの単純述語テンプレート間に対するマッチ判定の結果(テーブル6)に応じ、同一極性又は反対極性という属性が割当てられる。
図3において、同一極性が割当てられたリンクは実線で示し、反対極性が割当てられたリンクは点線で示してある。後述するように、このリンクを用いて各単純述語テンプレートの活性値が算出される。活性値の算出のため、テンプレートネットワーク140のノードのうち、シードテンプレートDB32に記憶されたシードテンプレート(例えば
図3の「を引き起こす」、「を発生させる」、「を抑制する」等のノード)については、予め+1又は−1の値が手作業により与えられている。これらの値と、ノード間のリンク及びそのリンクの属性とを用いて、各ノード(単純述語テンプレート)の活性値が計算される。計算方法の具体的内容については後述する。
【0078】
再び
図2を参照して、単純述語テンプレート収集部60はさらに、テンプレートネットワーク構築部106に接続され、テンプレートネットワーク構築部106により構築されたテンプレートネットワーク140を記憶するためのテンプレートネットワークDB110と、テンプレートネットワークDB110に記憶されたテンプレートネットワーク140の各ノードについて、シードテンプレートに予め付されていた+1又は−1の活性値を基にして、各ノード(単純述語テンプレート)の活性値を算出し、各ノード(単純述語テンプレート)にそれら活性値を付すためのテンプレート活性値算出部112と、テンプレートネットワークDB110に記憶されたテンプレートネットワーク140の各ノード(単純述語テンプレート)のうち、テンプレート活性値算出部112により算出された活性値の絶対値が大きなもののみを抽出し、抽出した単純述語テンプレートにより単純述語テンプレートDB62を構築するための高活性度テンプレート抽出部114と、テンプレートDB構築のために予め決められた終了条件が成立したか否かを判定するための終了判定部116と、終了判定部116により終了条件が成立していないと判定されたことに応答して、単純述語テンプレートDB62に記憶された単純述語テンプレートを新たなシードテンプレートとしてシードテンプレートDB32を更新し、再度、単純述語テンプレート収集部60によるテンプレートDB構築の処理を実行させるためのシードテンプレート更新部118とを含む。終了判定部116により終了条件が成立したと判定されたときには、単純述語テンプレート収集部60の動作は終了し、複雑述語テンプレート収集部64が起動する。
【0079】
後述するように、社会シナリオ生成システム30の各部は、コンピュータハードウェアと、当該コンピュータハードウェアにより実行されるコンピュータプログラムとにより実現可能である。
【0080】
初期テンプレートペア生成部90が生成する単純述語テンプレートペアの典型例は、「(名詞1)を引き起こす」「ので」「(名詞2)を発生させる」のようなものである。
【0081】
名詞ペア収集部94は、以下のような処理を行なう。上記した単純述語テンプレートペア+接続詞等の組合せと一文中で共起する名詞ペアを考えることができる。そのような名詞ペアは、以下に例示するように互いに正の関係にあるものと互いに負の関係にあるものとに分けられる。名詞ペアの正/負は、テーブル8に示すように、その名詞ペアと共起する単純述語テンプレートペアの活性/不活性と接続詞等との組合せによって決まる。すなわち、ある名詞ペアと共起するテンプレートペアが順接の接続詞等で接続されており、かつそれらのテンプレートペアの極性が一致していればその名詞ペアは正の関係にあり、テンプレートペアの極性が反対であればその名詞ペアは負の関係にある。また、ある名詞ペアと共起するテンプレートペアが逆接の接続詞等で接続されており、かつそれらのテンプレートペアの極性が一致していればその名詞ペアは負の関係にあり、テンプレートペアの極性が反対であればその名詞ペアは正の関係にある。
【0082】
【表8】
テンプレートペア収集部100は以下のような処理を行なう。上記名詞ペア極性判定部98により正の関係としてのみWEBアーカイブ44上に出現していると判定された名詞ペアを考える。テンプレートペア収集部100は、それらのうち、出現頻度が所定回数以上の名詞ペアだけを正の関係名詞ペアとして残す。同様に、負の関係としてのみWEBアーカイブ44上に出現している名詞ペアについても、出現回数が所定回数以上の名詞ペアだけを負の関係名詞ペアとして残す。ここでのしきい値としての所定回数は、正の関係名詞ペアを選択するときと負の関係名詞ペアを選択するときとで異なっていても一致していてもよい。
【0083】
テンプレート活性マッチ判定部104は、残された正/負の関係の名詞ペア+接続詞等と一文中で共起する単純述語テンプレートペアを、以下のテーブル9に基づく判定方法にしたがい、単純述語テンプレートの活性/不活性が同じもの(一致)と反対のもの(反対)とに分類する。このとき、ある単純述語テンプレートペアについて、WEBアーカイブ44中で単純述語テンプレートの活性が一致して出現したり、反対の活性で出現していたりするものがある。これらについては、一致しているものと反対のものとの出現回数を比較し、多数決で決定する。
【0084】
【表9】
図4を参照して、
図2に示すテンプレートネットワーク構築部106を実現するためのプログラムは、テンプレートペアDB102に単純述語テンプレートペアが記憶され、テンプレート活性マッチ判定部104により各単純述語テンプレートペアについての活性マッチ判定が終了すると起動される。このプログラムは、メモリ上に所定の記憶領域を確保したり、それら記憶領域のうち、所定の変数のための領域に初期値を代入したり、初期の空のテンプレートネットワーク140を構築したりする初期化を行なうステップ150と、テンプレートペアDB102に記憶された全ての単純述語テンプレートペアに対し、処理154を実行するステップ152とを含む。処理154は、当該単純述語テンプレートペアを構成する単純述語テンプレートとその間のリンクとをテンプレートネットワーク140に追加する処理を行なうためのものである。なお、ステップ150では、テンプレートネットワーク140として空のネットワークが予め構築されているものとする。
【0085】
処理154は、処理対象の単純述語テンプレートペアに含まれる単純述語テンプレートの各々について、対応するノードがテンプレートネットワーク140にあるか否か、すなわちそのノードをテンプレートネットワーク140に追加すべきか否かを判定するステップ180と、ステップ180の判定が肯定的のときに実行され、テンプレートネットワーク140に追加すべきと判定されたノード(1個又は2個)をテンプレートネットワーク140に追加する処理を行なうステップ182と、ステップ180及び182の後に実行され、処理対象の単純述語テンプレートペアに対応するノード間に既に同一リンクがあるか否かを判定するステップ184と、ステップ184の判定が否定的であるときに、当該リンクをテンプレートネットワーク140に追加する処理を行なって処理154を終了するステップ186とを含む。ステップ184の判定が肯定的であるときも、この単純述語テンプレートペアに対する処理154の実行は終了する。
【0086】
テンプレートネットワーク構築部106を実現するプログラムはさらに、ステップ152による処理の完了後、構築されたテンプレートネットワーク140に、同義・含意関係辞書108を参照することによってリンクを追加するステップ164と、ステップ164の結果得られたテンプレートネットワーク140において、他のノードとの間のリンク数が所定のしきい値以下のノードを削除するステップ166と、各ノードがリンクしているノードの数に基づいて各リンクの重みを算出し(計算方法については後述する)、各リンクに付与して処理を終了するステップ168とを含む。
【0087】
図5を参照して、
図4のステップ164で実行されるプログラム(ルーチン)は、テンプレートネットワーク140内のノードのうち、互いにリンクを持たないノードの対の全てに対して以下の処理202を実行するステップ200を含む。
【0088】
処理202は、処理対象のノード対の間に、特定の関係があるか否かを判定するステップ210と、ステップ210の判定が肯定的であるときに、処理対象のノード対の間に「同一」という属性を持つリンクを追加して処理202を終了するステップ212とを含む。ステップ210の判定が否定的である場合にも処理202を終了する。ここでいう特定の関係があるか否かに関する判定では、以下のテーブル10に示すように、動詞の文法的情報、及び
図2に示す同義・含意関係辞書108に格納された単語の同義・含意関係が使用される。
【0089】
【表10】
図4を参照して、ステップ168では、各リンクの重みが算出されるが、単純述語テンプレートiと単純述語テンプレートjとの間のリンクに付与される重みをw
ijとすると、重みw
ijは以下の式(1)により算出される。
【0090】
【数1】
ただし、d(i)は単純述語テンプレートiとリンクされている単純述語テンプレートの数を示す。SAME(i,j)は、単純述語テンプレートiと単純述語テンプレートjとの間のリンクに「一致」属性が付されていることを示す。OPPOSITE(i,j)は、単純述語テンプレートiと単純述語テンプレートjとの間のリンクに「反対」属性が付されていることを示す。すなわち、単純述語テンプレートiと単純述語テンプレートjとに一致属性が付与されていれば、重みは正の値となり、反対属性が付与されていれば、重みの符号は逆転し、負となる。
【0091】
図2に示すテンプレート活性値算出部112は、テンプレートネットワークDB110に記憶されたテンプレートネットワーク140の各ノードについて、以下に述べるような方法で各ノードの活性値を算出する。
図6を参照して、テンプレート活性値算出部112を実現するコンピュータプログラムは、テンプレートネットワークDB110にテンプレートネットワーク140が記憶され、各リンクにそれぞれ重みが付されたことに応答して実行を開始する。このプログラムは、テンプレートネットワーク140内のノードのうち、シードテンプレートに対応するノードに、それらシードテンプレートに対して予め付与されていた活性値(活性シードテンプレートには+1、不活性シードテンプレートには−1)を設定し、他のノードには所定の初期値を設定するステップ240と、ステップ240の後、以下の式により定義される値E(x,W)の値を最適化(ここでは極小化)することにより各ノードの活性値を推定するステップ242とを含む。
【0092】
【数2】
ただしx
i及びx
jはそれぞれ単純述語テンプレートi、jの符号付の活性値、xはそれら活性値からなるベクトル、Wはリンクの重みw
ijからなる行列を、それぞれ表す。この値Eは、ちょうど量子力学における電子のスピンエネルギーの計算式に類似しており、量子力学におけるエネルギーの最小化の計算と同様に行なうことができる。この式のシグマの各項において、x
ix
jの値は、エネルギー最小化計算の後、x
i及びx
jの極性が同じときには正の値、異なるときには負の値となる傾向がある。重みw
ijの符号は、既に述べたように、x
i及びx
jの極性が同じときには正の値、異なるときには負の値となる。したがってシグマの各項の値は必ず正の値となる傾向があり、これを最大化することで一種の制約解消が行なわれる。なお、式(2)において、シグマの前に係数「−1/2」があることから、シグマの中を最大化することによりE(x,W)の値が極小化される。
【0093】
〈複雑述語テンプレート収集部64〉
一方、
図7を参照して、
図1に示す複雑述語テンプレート収集部64は、単純述語テンプレートDB62及びWEBアーカイブ44から複雑述語テンプレートDB66を生成するためのものである。複雑述語テンプレート収集部64は、複雑述語テンプレートの対象となる名詞を記憶した対象名詞辞書260と、単純述語テンプレートDB62及び対象名詞辞書260を参照しながら、WEBアーカイブ44から複雑述語テンプレートの候補を抽出し、それらをその名詞部分にしたがってサ変名詞テンプレートと、数量名詞テンプレートと、トラブル名詞テンプレートとに分類するための複雑述語テンプレート候補抽出部268とを含む。複雑述語テンプレート候補抽出部268はコンピュータプログラムにより実現される。その構成については
図8を参照して後述する。
【0094】
複雑述語テンプレート収集部64はさらに、予めWEBアーカイブ44に出現するサ変名詞の極性を判定することで構築され、サ変名詞の極性が定まる場合にはその極性を、サ変名詞の極性が文脈に依存するときには文脈依存を示す値を出力するサ変名詞極性判定部264と、サ変名詞極性判定部264により出力された極性の値をそのサ変名詞とともに記憶するサ変名詞極性辞書262と、複雑述語テンプレート候補抽出部268により分類されたサ変名詞の複雑述語テンプレート候補を記憶するサ変名詞テンプレート候補DB270と、数量名詞テンプレート候補を記憶するための数量名詞テンプレート候補DB272と、トラブル名詞を含む複雑述語テンプレートの候補を記憶するトラブル名詞テンプレート候補DB274とを含む。サ変名詞の極性が文脈に依存するときには、複雑述語テンプレートにはそれを示す情報が付与されることになり、実際に複雑述語テンプレートが出現する文脈に応じてサ変名詞の極性が決定される。
【0095】
複雑述語テンプレート収集部64はさらに、サ変名詞テンプレート候補DB270に記憶されたサ変名詞テンプレート候補のサ変名詞に、サ変名詞極性辞書262を参照して極性又は極性が文脈依存であることを示す情報を付与するためのサ変名詞極性付与部276と、数量名詞テンプレート候補DB272に記憶された数量名詞テンプレート候補の数量名詞に対して極性として活性を付与する数量名詞極性付与部278と、トラブル名詞テンプレート候補DB274に記憶されたトラブル名詞の極性を判定するためのパターンを予め記憶したトラブル名詞極性判定用辞書266とを含む。トラブル名詞の極性も、予め定まる場合と、文脈に依存する場合とがある。トラブル名詞極性判定用辞書266は、トラブル名詞の極性が予め定まる場合にはその極性を出力し、文脈に依存するときにはそれを示す情報を出力するよう構築される。
【0096】
複雑述語テンプレート収集部64はさらに、トラブル名詞テンプレート候補DB274に記憶されたトラブル名詞テンプレート候補の各々のトラブル名詞に、トラブル名詞極性判定用辞書266を参照して極性又は極性が文脈依存であることを示す情報を付与するトラブル名詞極性付与部280と,サ変名詞極性付与部276,数量名詞極性付与部278、及びトラブル名詞極性付与部280の出力する複雑述語テンプレート候補の極性を、それらの名詞の極性と単純述語テンプレートの極性との積として計算し付与したうえで複雑述語テンプレートDB66に蓄積する複雑述語テンプレート極性算出部282とを含む。複雑述語テンプレート極性算出部282は、サ変名詞極性付与部276から与えられるサ変名詞複雑述語テンプレート候補のサ変名詞の極性が文脈依存であることを示す値のときは、複雑述語テンプレート候補にサ変名詞の極性が文脈依存であることを示すタグを付して出力する。したがってこの場合には、複雑述語テンプレートの極性自体は決定していないことになる。トラブル名詞の場合も同様である。
【0097】
《複雑述語テンプレート候補抽出部268》
図8を参照して、
図7に示す複雑述語テンプレート候補抽出部268を実現するコンピュータプログラムは以下のような制御構造を持つ。すなわち、このプログラムは、WEBアーカイブ44に記憶された全文書の全文に対して以下の処理を繰返すステップ300を含む。ステップ300で繰返される処理は、対象となる文に対して形態素解析を行なって形態素列を出力するステップ302と、ステップ302で得られた形態素列に対して係り受け解析を行ない、係り受け木を出力するステップ304と、この係り受け木に含まれる全ノードに対して以下の処理を実行するステップ306とを含む。
【0098】
ステップ306で実行される処理は、処理対象のノードに対し、そのノードの形態素が
図7に示す対象名詞辞書260に記憶された対象名詞(サ変名詞、数量名詞又はトラブル名詞)のいずれかであるかを判定し、結果が否定的である場合には次のノードに処理を移すステップ308と、ステップ308の判定が肯定的であるときに、そのノードの係り先が単純述語テンプレートか否かを判定し、判定結果が否定的であるときに次のノードに処理を移すステップ310と、ステップ310の判定が肯定的であるときに、処理中のノードに係るノードの末尾の助詞と、処理中のノード(現ノード)の文節と、係り先の単純述語テンプレートとをくみあわせて複雑述語テンプレート候補を生成するステップ312と、ステップ312で生成された複雑述語テンプレート候補を、その対象名詞の種類(サ変名詞、数量名詞、トラブル名詞)によって分類してサ変名詞テンプレート候補DB270、数量名詞テンプレート候補DB272、又はトラブル名詞テンプレート候補DB274に記憶させて処理を次のノードに移動させるステップ314とを含む。
【0099】
《サ変名詞極性付与部276》
図7に示すサ変名詞極性付与部276は
図9に示すコンピュータプログラムにより実現される。
図9を参照して、このプログラムは、サ変名詞テンプレート候補DB270に記憶された全てのサ変名詞テンプレート候補に対して以下の処理を実行するステップ340を含む。
【0100】
ステップ340は、複雑述語テンプレート候補のサ変名詞を含む見出しがサ変名詞極性辞書262に1つだけ存在するか否かを判定するステップ342と、ステップ342の判定が肯定的であるときに、その見出しに対応して辞書に示されている極性をサ変名詞に付与して次のサ変名詞の処理に移るステップ344と、ステップ342の判定が否定的であるときに、サ変名詞の極性が文脈に依存していることを示す情報をサ変名詞に付与して次のサ変名詞の処理に移るステップ346とを含む。
【0101】
《トラブル名詞極性付与部280》
図10を参照して、
図7に示すトラブル名詞極性付与部280は、以下のような制御構造を持つプログラムにより実現できる。このプログラムは、トラブル名詞テンプレート候補DB274に記憶された全てのトラブル名詞テンプレート候補について以下の処理を実行するステップ370を含む。
【0102】
ステップ370で実行される処理は、そのトラブル名詞テンプレート候補に対応するトラブル名詞の見出しが1つだけトラブル名詞極性判定用辞書266にあるか否かを判定するステップ372と、ステップ372の判定が肯定的であればその見出しに記載されている極性をトラブル名詞に付与して次の候補の処理に移るステップ374と、ステップ372での判定が否定的であるときに、そのトラブル名詞の極性が文脈依存であることを示す情報をトラブル名詞に付与して次のトラブル名詞の処理に移るステップ376とを含む。
【0103】
〈因果関係フレーズペア収集部68〉
図11を参照して、
図1に示す因果関係フレーズペア収集部68は、単純述語テンプレートDB62、複雑述語テンプレートDB66、単語クラスDB46、名詞の極性辞書420、トラブル名詞極性判定用辞書266、サ変名詞極性辞書262、及び矛盾表現辞書422を参照して、WEBアーカイブ44から因果関係の原因フレーズ及び結果フレーズの関係にあるフレーズペアを抽出し、因果関係フレーズペアDB70に記憶する機能を持つ。矛盾表現辞書422は、互いに矛盾する単純述語テンプレートからなる単純述語テンプレートペアを収集して作成したものである。
【0104】
因果関係フレーズペア収集部68は、単純述語テンプレートDB62、複雑述語テンプレートDB66、名詞の極性辞書420、トラブル名詞極性判定用辞書266、及びサ変名詞極性辞書262を参照して、WEBアーカイブ44から、因果関係をなすフレーズペアであって、後の因果関係仮説を生成する元となるシードペアを収集する因果関係シードペア収集部408と、因果関係シードペア収集部408により収集された因果関係シードペアを記憶する因果関係シードペアDB410とを含む。ここでいう「シードペア」とは、WEBアーカイブ44に実際に存在するフレーズのペアのことをいう。
【0105】
因果関係フレーズペア収集部68はさらに、予め準備された意味的関係パターンを記憶する意味的関係パターンDB400と、ある意味的関係を充足する単語対を記憶する単語対DB402と、意味的関係パターンDB400及び単語対DB402を用い、因果関係シードペアDB410に記憶された因果関係シードペアDBを元に、そのシードペアに含まれる単語(名詞)対の意味的関係と同じ意味的関係を満たす単語対で元の因果関係シードペア内の単語対を置換することにより、新たな因果関係仮説を生成する処理と、因果関係シードペア内の単純述語テンプレートをいずれもそれらの矛盾表現に置換することにより、新たな因果関係仮説を生成する処理とを実行する因果関係仮説生成部412と、因果関係仮説生成部412により生成された因果関係仮説を記憶する因果関係仮説DB416と、因果関係仮説DB416に記憶された多数の因果関係仮説の中から、妥当な因果関係を抽出し因果関係仮説をフィルタリングして因果関係フレーズペアDB70に追加する因果関係仮説フィルタリング部418とを含む。
【0106】
意味的関係パターンDB400及び単語対DB402も、本実施の形態では予め因果関係フレーズペア収集部68により準備される。そのために因果関係フレーズペア収集部68は、意味的関係パターンを抽出する際の元となる、特定のパターン(これをシードパターンと呼ぶ。)のグループを記憶するシードパターンDB404と、シードパターンDB404及び単語クラスDB46を参照し、WEBアーカイブ44から、シードパターンDB404に記憶されたシードパターンと類似したパターンを抽出することで意味的関係パターンDB400を構築し、同時にそれらの意味的関係パターンを充足する単語対を特定して単語対DB402を構築するための単語対抽出部406とを含む。本実施の形態では、シードパターンは、後述するようにいくつかの意味的関係を表す別々のシードパターン群に分類されており、単語対の意味的関係もシードパターン群別となっている。
【0107】
《因果関係シードペア収集部408》
因果関係シードペア収集部408は、コンピュータプログラムにより実現可能である。
図12を参照して、このコンピュータプログラムは、一文中で順接の接続詞等により接続された形でWEBアーカイブ44内において共起しているフレーズペア(「名詞+述語テンプレート」(単純述語テンプレートと複雑述語テンプレートとの双方を含む。)のペア)をWEBアーカイブ44から収集し、あわせてそれらの共起頻度も算出するステップ440と、ステップ440で収集されたフレーズペアの各々に対して以下に述べる処理を実行するステップ442とを含む。ここで、個々のフレーズペアを構成するフレーズの名詞で形成されるペアを名詞ペア、述語テンプレートで形成されるペアを述語テンプレートペアと呼ぶ。
【0108】
続いて、このようにして得られた各フレーズペアに対して、以下の処理を実行する(ステップ442)。ステップ442で実行される処理は、処理対象のフレーズペア内の名詞ペアが正の関係にあるか否かを判定するステップ444と、判定が肯定的な場合に、さらに、述語テンプレートペアの極性が同じか否かを判定するステップ446とを含む。ステップ446の判定が否定的ならこのフレーズのペアは捨てる。すなわちこの場合は何もせず次の述語テンプレートの処理に移る。ステップ446の判定が肯定的ならこのフレーズペアを因果関係シードペア群に追加する(ステップ448)。
【0109】
一方、ステップ444の判定が否定的なら、ステップ450でテンプレートペアの極性が互いに反対か否かを判定する。判定が否定的ならこのフレーズペアは捨てる。判定が肯定的ならこのフレーズペアを因果関係シードペア群に追加する(ステップ448)。
【0110】
以上の処理が全てのフレーズペアに対して終了すると、結果として得られた因果関係シードペア群内の全ての因果関係シードペアに対してステップ454の処理を実行する
。ステップ454で各因果関係フレーズペアに対して行なわれる処理は、因果関係強度のスコアC
s(p
1,p
2)を以下の式により算出する処理である。
【0111】
【数3】
ただしp
1,p
2はそれぞれ、因果関係シードペアを構成するフレーズ、s
1及びs
2はそれぞれ、フレーズp
1,p
2を構成するテンプレートの活性値、記号|s
1|は活性値s
1の絶対値、n
1,n
2はそれぞれ、フレーズp
1,p
2に含まれる名詞、npfreq(n
1,n
2)は、n
1,n
2が正の関係なら、n
1,n
2が活性/不活性の同じテンプレートペアと一文中で共起する頻度、n
1,n
2が負の関係なら、n
1,n
2が活性/不活性の異なるテンプレートペアと一文中で共起する頻度を、それぞれ表す。
【0112】
このようにして全ての因果関係シードペアに対し因果関係強度のスコアを算出した後、ステップ456で因果関係シードペアをスコアの降順でソートし、出力する。
【0113】
このような処理を実行することにより、因果関係を表すフレーズのペアを大量に、かつ自動的にWEBアーカイブ44から収集できる。
【0114】
なお、因果関係シードペアの取得方法はこれには限定されない。例えば、次の条件を全て満たすフレーズペアを因果関係シードペアとして獲得するようにしてもよい。
【0115】
(1)両フレーズとも、1つの名詞と1つの述語テンプレートとからなる。例えば、「(地震)を起こす」と「(津波)が発生する」のようなフレーズペアである。
【0116】
(2)両フレーズは、順接接続詞等、例えば「〜て」で結ばれる形で、一文中に共起している。例えば、「断層が地震を起こして、津波が発生した。」のようなペア。
【0117】
具体的には、WEBアーカイブ44から、順接接続詞等とともに一文で共起している述語テンプレートペアと、その一文で共起している名詞ペアとを取得する。これらが因果関係フレーズペアの原型と考えられる。
【0118】
こうして得られた因果関係シードペアについて、前述の式(3)により因果関係強度スコアを算出する。そして全ての因果関係シードペアを、因果関係強度スコアの降順にソートして出力する。
【0119】
上記したスコア算出に、式(3)ではなく次の式(4)を用いるようにしても良い。
【0121】
《因果関係仮説生成部412》
図13を参照して、
図11に示す因果関係仮説生成部412は、因果関係シードペアDB410及び単語クラスDB46と、意味的関係パターンDB400及び単語対DB402に接続され、因果関係シードペアDB410に記憶された因果関係シードペアに含まれる名詞ペアの意味的関係のパターンを意味的関係パターンDB400とマッチングする意味的関係パターンマッチング部470と、単語対DB402に記憶された単語対のうち、意味的関係パターンマッチング部470により因果関係シードペアの意味的関係パターンとマッチすると判定された意味的関係にある単語対を単語対DB402から読み出し、元の因果関係シードペア内の名詞ペアと置換することにより、新たな因果関係仮説を生成する単語対置換部472と、因果関係シードペアDB410に格納された因果関係シードペアの各々について、矛盾表現辞書422を参照して、因果関係シードペアの各フレーズの単純述語テンプレートをそれぞれ矛盾表現に置換することで新たな因果関係仮説を生成するテンプレート置換部476と、単語対置換部472及びテンプレート置換部476により新たに生成された因果関係仮説の因果関係強度のスコアを算出し、そのスコアを因果関係仮説に付して因果関係仮説DB416に追加するスコア算出部474とを含む。テンプレート置換部476による新たな因果関係仮説生成の根拠としては、元の因果関係フレーズのペアが妥当である場合には、その裏(各フレーズの述部を否定したペア)も妥当である可能性が高いためである。例えば「ストレスが増加する→不眠が続く」が妥当である場合、その裏に相当する「ストレスが減少する→不眠が改善される」も妥当と考えられる、等である。
【0122】
図13に示す意味的関係パターンDB400及び単語対DB402はどのような手段で準備してもよい。本実施の形態では、
図11に示すように、意味的関係パターンDB400及び単語対DB402を準備するために、意味的関係パターンの元となるフレーズであるいくつかのシードパターン群に分類されたシードパターンを記憶したシードパターンDB404と、シードパターンDB404及び単語クラスDB46に接続され、これらに記憶された情報に基づいてWEBアーカイブ44からシードパターンDB404に記憶されたシードパターンと類似した意味的関係にある表現のパターンとそれら表現に出現する単語対とを抽出し、意味的関係パターンDB400及び単語対DB402にそれぞれ追加する単語対抽出部406を設けている。
【0123】
ここでいうシードパターンとは、前述したとおり、材料関係、必要関係、使用関係、予防関係、又は因果関係を表すパターンであり、それぞれ別々のシードパターン群に分類される。パターンの例は、材料関係なら「AでBを生産する」、必要関係なら「AはBに必須だ」、使用関係なら「AをBに使う」、予防関係なら「AでBを防ぐ」、因果関係なら「AがBを引き起こす」のようなものである。パターンとは変数に相当する部分を含むフレーズのことをいう。上記した例ではA及びBが変数に相当する。A及びBを別の単語で置換することにより、様々なフレーズが生成できる。ただし、A及びBがある意味的関係を持っていないとそれらは無意味なフレーズとなってしまう。単語対抽出部406は、特定の意味的関係にある単語対を抽出する機能を持つ。単語対抽出部406はさらに、シードパターンDB404に記憶されたシードパターンだけでなく、WEBアーカイブ44から抽出されたパターンの中で、シードパターンと類似したパターンをシードパターンに追加する機能も持つ。
【0124】
《単語対抽出部406》
図14を参照して、本実施の形態で採用した単語対抽出部406は、WEBアーカイブ44及びシードパターンDB404に接続され、WEBアーカイブ44から特定のパターンを抽出するパターン抽出部490と、パターン抽出部490により抽出されたパターンを記憶するパターンDB492と、シードパターンDB404に記憶されたシードパターン及びパターンDB492に記憶されたパターンを参照し、WEBアーカイブ44から各パターンに合致する(上記したA及びBの関係にある)単語対を取得する単語対候補取得部494と、単語対候補取得部494により抽出された単語対を記憶する単語対候補DB496と、パターンDB492に記憶されたパターンのうち、シードパターンDB404に記憶されたシードパターンのいずれかと類似したパターンを、それらパターンから抽出された単語対の集合の類似度に基づいて特定し、シードパターンDB404に新たなシードパターンとしてマージするパターンマージ部518とを含む。パターンマージ部518は、このようにして追加されたシードパターンには、その新たなシードパターンと最も類似していたシードパターンの属するシードパターン群の意味的関係のラベルを付してシードパターンDB404に追加する。
【0125】
単語対抽出部406はさらに、単語クラスDB46に保持されている任意の2つの単語クラス間における適合度を示す指標であるクラス対適合度を、クラス対ごとに、単語対候補DB496、WEBアーカイブ44、及びシードパターンDB404を参照して算出するためのクラス対適合度算出部502と、算出されたクラス対適合度をクラス対ごとに記憶するクラス対適合度DB504と、パターンDB492に記憶されたパターンとシードパターンDB404に記憶されたシードパターン群との組合せごとにパターン類似度を算出するパターン類似度算出部506と、パターン類似度算出部506により算出されたパターン類似度をパターンDB492に記憶されたパターンとシードパターンDB404に記憶されたシードパターン群との組合せごとに記憶するためのパターン類似度DB508と、単語対と、パターンDB492に記憶された各パターン及びシードパターンDB404に記憶されたシードパターン群との親和性情報を算出する親和性情報算出部510と、親和性情報算出部510により算出された親和性情報を単語対とパターンとの組合せごとに記憶する親和性情報DB512と、単語クラスDB46に記憶されている単語のクラス対ごとに、WEBアーカイブ44での各クラスに属する単語の出現頻度の差がしきい値以上か否かを判定し、差がしきい値以上のクラス対を最終的な出力対象から除外するために特定する除外クラス対特定部514と、除外クラス対特定部514により特定された除外クラス対を記憶する除外クラス対DB516とを含む。クラス対適合度算出部502、パターン類似度算出部506、親和性情報算出部510及び除外クラス対特定部514の機能の詳細については後述する。
【0126】
単語対抽出部406はさらに、単語対候補DB496に記憶されている単語対の各々について、除外クラス対特定部514により特定されるクラス対に属するものを除外し、さらにクラス対適合度DB504、パターン類似度DB508、親和性情報DB512を参照してシードパターンと共起する単語対としてのふさわしさを表すスコアを算出する単語対スコアリング部498と、単語対スコアリング部498によりスコアリングされた単語対のうち、しきい値以上のスコアを持つ単語対のみを選択して単語対DB402に出力するための単語対選択部500とを含む。
【0127】
以下、単語対抽出部406の主要な構成部についてさらに詳細に説明する。
【0128】
−パターン抽出部490
パターン抽出部490は、以下のような工程を経てWEBアーカイブ44に記憶された文書からパターンを抽出する。すなわちパターン抽出部490は、WEBアーカイブ44に記憶された各文書の各文について、形態素解析し、さらに係り受け解析を行なう。この結果、各文について係り受け木(を表すデータ)が得られる。パターン抽出部490は、この係り受け木の各名詞を起点とし、別の名詞を終点とする係り受け木上のパスを1つのパターン候補として、その経路に存在する形態素列を抽出する。そしてこの形態素列上の名詞をそれぞれ変数に置換する。この際、単語クラスDB46を参照して、各名詞が属するクラスを調べ、各変数にその変数の属するクラス情報として付加する。これにより1つのパターンが得られる。1つの文からは複数個のパターンが得られることがある。さらに、1つの名詞にかかっている名詞が2つとは限らないので、同一の名詞に対応する変数を含んだ複数個のパターンが得られることもある。
【0129】
パターン抽出部490は、このようにして得たパターンについて、変数のクラスも含めて同じパターンが何回出現したかを示す頻度情報を算出しながら、新たなパターンが得られるたびにそれをパターンDB492に追加する。
【0130】
−単語対候補取得部494
単語対候補取得部494は、WEBアーカイブ44に含まれる全文書の全文を対象に、シードパターンDB404に記憶されているシードパターンと共起する単語対を調べ、取得する。この場合、単語対がシードパターンと共起する、とは、文書内に存在する、ある単語対を含む文字列であって、その単語対をそれぞれの単語クラスに置換したものが、シードパターンと一致する、ということである。単語対候補取得部494は、このようにして得られた単語対を、一致したシードパターンの識別情報とともに単語対候補DB496に格納する。単語対候補取得部494はまた、シードパターンが単語対と共起した頻度をシードパターン及び単語クラス対の組合せごとに計数し、単語対候補DB496に記憶する。
【0131】
−クラス対適合度算出部502
クラス対適合度とは、2つの単語クラスがあるシードパターン群に属するシードパターンのいずれかと共起する頻度(程度)を表す指標である。クラス対適合度算出部502は、各クラス対のクラス対適合度を算出する。本実施の形態では、2つのクラス対に属する単語が、シードパターン群Pに属するいずれかのシードパターンpと共起する頻度が高いほど、そのクラス対のクラス対適合度は高くなるようにクラス対適合度を定義する。例えば単語クラス対c
i及びc
jの、シードパターン群Pに対するクラス対適合度C(c
i,c
j,P)を以下のように定義できる。なお次式においてn
i及びn
jはそれぞれ単語クラスc
i及びc
jに属する単語を表す。*は任意のパターンを表す。
【0132】
【数5】
この式において、「||(n
i,P,n
j)||」は、名詞n
iとn
jとがシードパターン群P中のいずれかのシードパターンpと共起する頻度インスタンスからなる集合の要素の数である。したがって、「||(n
i,*,n
j)||」は、WEBアーカイブ44に格納されている文書群(これを文書集合Mとする。)の中で名詞n
iとn
jとが任意のパターンと共起する頻度であり、次の式で表される。
【0133】
【数6】
この値は、パターンにかかわらず単語ni及びnjが共起する頻度と等しい。
【0134】
条件αは例えば、単語クラス対c
i及びc
jが共起するシードパターンの種類が所定数以上である、という条件である。これを式で表せば、所定数をβとして以下のようになる。
【0135】
【数7】
クラス対適合度算出部502は、単語対候補DB496に格納された単語対と、その単語対が共起したシードパターンの識別情報とを集計することによりクラス対の適合度をクラス対ごとに算出し、クラス対適合度DB504に格納する。
【0136】
−パターン類似度算出部506
パターン類似度算出部506は、パターンDB492に格納されている各パターンと、シードパターンDB404に記憶されている各シードパターン群との類似度を算出し、パターン類似度DB508にパターン群とパターンとの組合せごとに格納する。本実施の形態では、あるシードパターン群とパターンとの間のパターン類似度とは、シードパターン群に属するシードパターンと共起するクラス対と、対象となるパターンと共起するクラス対との重なりの程度を示すものとして定義する。すなわち、あるシードパターン群に属するシードパターンの集合Pと、対象となるパターンpとの間のパターン類似度S(P,p)は、集合Pに属するシードパターンと共起する単語クラスci及び単語クラスcjからなる単語クラス対(ci×cj)の集合をI(P
ci×cj)、パターンと共起する単語クラス対(ci×cj)の集合をI(p
ci×cj)とすると、例えば以下の式により定義される。
【0137】
【数8】
なお、右辺の分母及び分子を囲む2本の線は、その中の式により表される集合に属する要素の数を表す。
【0138】
パターン類似度の定義としては、これ以外にも考えることができる。例えば、次のようにベクトルによる比較を行なうこともできる。例えば、可能な単語クラス対の全てを要素とするベクトルを考える。WEBアーカイブ44においてあるシードパターン群Pと共起する単語クラス対の数を計数し、その値を上記ベクトルのその単語クラス対に対応する要素の値として、シードパターン群Pの特徴ベクトルV
Pを計算する。同様に、あるパターンpと共起する単語クラス対の数を計数し、その値を上記ベクトルのその単語クラス対に対応する要素の値として、パターンpの特徴ベクトルV
pを計算する。この2つのベクトルV
P及びV
pの間の角度を計算することにより、シードパターン群Pとパターンpとの類似度が得られる。なお、このベクトルの計算においては、パターン群Pともパターンpとも共起しないクラス対をベクトルの要素から除外してもよい。
【0139】
−親和性情報算出部510
親和性情報とは、ある単語対とあるパターンとが共起する頻度が高いほど値が高くなる、その単語対とそのパターンとの親和性を表す指標である。本実施の形態では、この頻度はWEBアーカイブ44内における単語対とパターンとの共起頻度を表すものとする。本実施の形態において、単語対(n
1,n
2)とパターンpとの親和性情報Assoc(p,n
1,n
2)は以下の式により定義される。なお、以下の式で(n
1,p,n
2)は、単語対(n
1,n
2)がパターンpと共起しているインスタンスの集合を示し、「*」はその位置により、任意のパターン又は単語を示す。
【0140】
【数9】
この式から分かるように、単語対単語対(n
1,n
2)とパターンpとが共起する頻度が高いほど親和性情報Assoc(p,n
1,n
2)の値は大きくなる。一定の単語対(n
1,n
2)に対しては、親和性情報Assoc(p,n
1,n
2)はパターンpの出現頻度||(*,p,*)||が高くなるほど小さくなる。同様に、一定のパターンpに対しては、親和性情報Assoc(p,n
1,n
2)は単語対(n
1,n
2)の出現頻度||(n
1,n
2)||の出現頻度が高くなるほど小さくなる。
【0141】
親和性情報Assoc(p,n
1,n
2)も、単語対候補DB496に記録された単語対とパターンの識別情報とを集計することにより、任意の単語対と任意のパターンとの組合せに対して算出できる。
【0142】
−除外クラス対特定部514
除外クラス対特定部514は、最終的に出力される単語対の集合から除外される単語のクラス対を特定する。本実施の形態では、各単語クラス対に対して、そのクラス対にそれぞれ属する単語からなる単語対の平均出現頻度を算出し、その値の差が大きな単語クラス対を除外クラスとする。すなわち、出現頻度が大きく異なる単語対は単語対として適切でないものとして除外する。ここでは、出現頻度が小さな単語クラスの出現頻度に対する、出現頻度が大きな単語クラスの出現頻度の比率がしきい値を超えた場合に、その単語クラス対を除外する。しきい値は事前の実験により適切な値に設定する必要がある。本実施の形態では、この値を25程度に設定する。
【0143】
−単語対スコアリング部498
単語対スコアリング部498は、クラス対適合度DB504に記憶された単語クラスのクラス適合度、パターン類似度DB508に記憶されたパターン類似度、親和性情報DB512に記憶された親和性情報、及び除外クラス対DB516に記憶された除外クラス対情報に基づいて、単語対候補DB496に記録された各単語対のうち、除外対象となっていない単語対とその単語対と最も適合したシードパターンとの組合せの各々について所定のスコアを計算し、単語対選択部500に出力する。このスコアは、本実施の形態では、クラス適合度、パターン類似度、及び親和性情報のいずれに対しても正の相関を以て変化するように定義する。
【0144】
例えば、単語対(n
1,n
2)とシードパターンPとの組合せに対するスコアScore(n
1,n
2,P)は、最も単純には、次の式で表される。
【0146】
−単語対選択部500
単語対選択部500は、ソートされた単語対とシードパターン群との組合せのうち、上位所定個数を選択して単語対DB402に出力する。このとき、単語対選択部500は、各単語対に、組となっているシードパターン群の識別子を付す。選択する単語対の個数は実験により予め決定しておく。
【0147】
−パターンマージ部518
パターンマージ部518は、パターンDB492に記憶されたパターンの各々とシードパターンDB404に記憶されたパターン群の各々とについて、パターン類似度算出部506により算出されたパターン類似度をパターン類似度DB508から読み出し、パターン類似度がしきい値より高いパターンを新たなシードパターンとして、そのシードパターン群に追加する。
【0148】
単語対抽出部406は、シードパターンDB404を更新しながら上記した処理を繰返し、所定の終了条件が充足されたときに得られている単語対DB402を最終的な単語対として出力し、またそのときのシードパターンDB404に記憶されているシードパターン群を意味的関係パターンDB400に出力する。意味的関係パターンDB400に記憶されるシードパターン群の各々には、もともとのシードパターン群の種類を示す識別子が付されている。したがって、意味的関係パターンDB400に記憶された意味的関係パターンの識別子を調べることにより、その意味的関係パターンが前述した材料関係、必要関係、使用関係、予防関係、及び因果関係のいずれを表すかを知ることができる。また、単語対DB402に格納された単語対には、その単語対とよく共起するシードパターン群の識別子が付与されている。したがって、その識別子を調べることにより、その単語対がどのような意味的関係を充足するかを知ることができる。
【0149】
≪意味的関係パターンマッチング部470、単語対置換部472及びスコア算出部474≫
図13に示す因果関係仮説生成部412を構成する意味的関係パターンマッチング部470、単語対置換部472、スコア算出部474及びテンプレート置換部476は、いずれもコンピュータプログラムにより実現できる。本実施の形態におけるそのためのプログラムの制御構造について説明する。
【0150】
図15を参照して、このプログラムは、
図13に示す因果関係シードペアDB410から、因果関係シードペアを順次読み出し、それらの全てに対して以下の処理を実行するステップ520を含む。
【0151】
ステップ520で実行される処理は、処理対象である因果関係シードペアの原因フレーズ及び結果フレーズの名詞からなる単語クラス対と、意味的関係パターンDB400に格納された意味的関係パターンとをマッチングし、単語クラス対がマッチする意味的関係パターンがあるか否かを判定するステップ522と、ステップ522でマッチする意味的関係パターンがあると判定されたときに、マッチした全パターンの全てに対して、以下に説明する処理を実行するステップ524とを含む。ステップ522でマッチする意味的関係パターンがないと判定されたときには処理対象の因果関係シードペアに対する処理は終了し、次の因果関係シードペアの処理に移る。
【0152】
ステップ524で実行される処理は、マッチした意味的関係パターンの識別子を持つ単語対を単語対DB402から全て読み出すステップ526と、ステップ526で読み出された単語対の各々に対して、以下の処理を実行するステップ528とを含む。
【0153】
ステップ528は、処理対象となっている因果関係シードペアの原因フレーズと結果フレーズとの名詞部分を、読み出された単語対に含まれる単語を用いてそれぞれ置換することで新たな因果関係仮説を生成するステップ530と、ステップ530で生成された因果関係仮説に対して、
図12のステップ454で実行する処理と同様の処理で因果関係強度のスコアを算出するステップ532と、ステップ530で生成された因果関係仮説に、ステップ532で算出された因果関係強度のスコアを付して因果関係仮説DB416(
図13参照)に出力するステップ534とを含む。ステップ522の判定がYESだった場合、以上の処理をマッチしたパターンの全てに対して実行する。
【0154】
このプログラムはさらに、ステップ522の判定がNOの場合、及びステップ522の判定がYESで、処理中の因果関係シードペアに対してステップ524の処理が全て完了した後に実行され、処理中の因果関係シードペアに対して、その原因フレーズと結果フレーズとのそれぞれの矛盾表現を全て矛盾表現辞書422から読み出すステップ536と、ステップ536で読み出された原因フレーズの矛盾表現と結果フレーズの矛盾表現との組合せの各々について、それらを用いて因果関係シードペアの原因フレーズと結果フレーズとを書き換えて新たな因果関係仮説を生成するステップ538と、ステップ538で生成された全ての因果関係仮説について、因果関係強度を算出するステップ540と、ステップ538で生成された全ての因果関係仮説にステップ540でそれぞれ算出されたスコアを付して因果関係仮説DB416に出力するステップ542とを含む。
【0155】
以上の処理が全ての因果関係シードペアに対して完了するとこのプログラムの実行は終了する。
【0156】
≪因果関係仮説フィルタリング部418≫
以上のようにして生成された因果関係仮説には、正しいものも含まれるが、誤ったものも含まれる。そこで、正しい因果関係のみを選択することが必要である。因果関係仮説フィルタリング部418はそうしたフィルタリングの処理を実行する。
【0157】
図16を参照して、因果関係仮説フィルタリング部418は、因果関係仮説DB416から因果関係仮説を順次読み出し、その各々について因果関係の一貫性を検証することにより因果関係仮説をフィルタリングする一貫性検証フィルタリング部550と、一貫性検証フィルタリング部550によるフィルタリングを経て残った因果関係仮説に対し、因果関係仮説を構成するフレーズペアの名詞ペアの関連度に基づくフィルタリングを行なう関連度によるフィルタリング部552と、関連度によるフィルタリング部552によるフィルタリングを経て残った因果関係仮説に対し、その原因フレーズ及び結果フレーズがWEBアーカイブ44内において、文内でどのような順序で出現しているかによってフィルタリングを行なう出現順序検証によるフィルタリング部554と、出現順序検証によるフィルタリング部554によるフィルタリングを経て残った因果関係仮説に対して、その原因フレーズ又は結果フレーズに含まれる名詞が非常に多くの因果関係仮説で用いられているために意味があまりに広く漠然としていると考えられるものを含む因果関係仮説を除外する、名詞の出現頻度によるフィルタリング部556と、因果関係仮説の構成要素である名詞に対し、WEBアーカイブ44上で特定の形の修飾句を伴っているか否かを判定することで、同じく漠然とした意味しか持っていない名詞を含む因果関係仮説を除外し、最終的な因果関係フレーズペアを因果関係フレーズペアDB70に出力する除外単語によるフィルタリング部566とを含む。
【0158】
因果関係仮説フィルタリング部418はさらに、名詞の出現頻度によるフィルタリング部556での処理に用いるために、因果関係仮説DB416に記録された因果関係仮説における名詞の出現頻度を算出するための名詞の出現頻度算出部558と、名詞の出現頻度算出部558により算出された名詞の出現頻度を記憶する名詞の出現頻度DB560と、WEBアーカイブ44の全体を検索して、「AのB」という形で他の句により修飾して用いられている名詞(「B」に相当する。)を抽出する被修飾名詞の抽出部562と、被修飾名詞の抽出部562により抽出された名詞を、除外単語によるフィルタリング部566での因果関係の除外に用いるために記憶する除外単語DB564とを含む。以下因果関係仮説フィルタリング部418を構成する5つのフィルタリング部等について、詳細を説明する。
【0159】
《一貫性検証フィルタリング部550》
一貫性検証フィルタリング部550は、因果関係の原因フレーズ及び結果フレーズに含まれる名詞ペアに着目し、ある因果関係仮説が、他の因果関係仮説と一貫しているか否かを判断して一貫しているもののみを残す処理を行なう。ここで、例えば「海面が上昇する→干ばつが続く」という因果関係仮説があったとすれば、この因果関係仮説の名詞ペアは「海面」及び「干ばつ」となる。
【0160】
一貫性検証フィルタリング部550は、名詞ペア(n
1,n
2)を含む因果関係仮説と名詞ペア(n
2,n
1)を含む因果関係仮説とが存在する場合、それらの因果関係仮説を候補から除外する。例えば「海面が上昇する→干ばつが続く」という因果関係仮説と、「干ばつが続く→海面が上昇する」という因果関係仮説との双方が存在するときには、双方の因果関係仮説を除外する。
【0161】
このように、ある因果関係仮説の原因フレーズと結果フレーズとが他の因果関係仮説の原因フレーズ及び結果フレーズと逆の関係になっている場合、これら因果関係フレーズの両者とも因果関係としては相当でないと考えられるためである。
【0162】
《関連度によるフィルタリング部552》
関連度によるフィルタリング部552は、因果関係仮説の名詞ペアについて、相互の関連度が低いものを除外する。関連度としては、例えば相互情報量(PMI)、DICE係数、Jaccard係数、χ二乗値などを使用できる。具体的な計算方法は以下のとおりである。
【0163】
PMI
PMIは名詞x、yの関連度を表す指標である。PMI(x,y)は以下の式で算出される。以下の式でP(x)は名詞xの出現確率、P(y)は名詞yの出現確率P(x,y)は名詞x、yの共起確率を表す。
【0164】
【数11】
なお、名詞x,yの共起確率を計算する際に名詞x,yの共起頻度を数える必要がある。共起頻度は、例えば、名詞x,yの1文書での共起頻度を数えたり、1文での共起頻度を数えたりすることで得ることができる。
【0165】
DICE係数
DICE係数は、2つの単語間の共起関係を定量化するために使用される。単語xが出現する文書数をdf(x)、単語yが出現する文書数をdf(y)とし、単語x,yの共起頻度をdf(x、y)とすると、単語x,yに対するダイス係数DICE(x、y)は以下の式で計算される。
【0167】
Jaccard係数
Jaccard係数は、2つの集合の類似度を表す尺度である。例えば名詞xが出現する文又は文書の集合をS(x),名詞yが出現する文又は文書の集合をS(y)としたときに、名詞x,yの間の類似度は、以下のように集合S(x)及びS(y)の間のJaccard係数J(S(x),S(y))で表すことができる。
【0169】
χ二乗値
χ二乗値はχ二乗検定で使用されるが、2つの単語が無関係か否かを調べる際に使用できる。例えば、2つの単語x,yに関するχ二乗値は、多数の文書において単語x,yがそれぞれ出現するか否かに基づいて、例えば縦軸に単語x、横軸に単語yの出現の有無をそれぞれラベルとする2×2のクロス表を作成することで、次の式により算出される。
【0170】
【数14】
ここで、N
11は単語x、yの双方が出現する文書数、N
10は単語xが出現し、単語yが出現しない文書数、N
01は単語xが出現せず、単語yが出現する文書数、N
00は単語x、yがいずれも出現しない単語数を表す。E
11は、単語xと単語yとが独立であると仮定したときの文書数N
11の期待度数を示し、以下E
10,E
01,E
00はそれぞれN
10,N
01,N
00に対応する期待度数である。単語x,yの関係が無関係に近ければχ二乗値は大きくなり、関係が深ければχ二乗値は小さくなる。
【0171】
《出現順序検証によるフィルタリング部554》
出現順序検証によるフィルタリング部554は、因果関係仮説の構成要素の出現順序に基づいて因果関係仮説をフィルタリングする。例えば、WEBアーカイブ44のある文において、ある因果関係仮説の結果フレーズの名詞が原因フレーズの名詞より先に出現している場合、その因果関係を除外するという方法が考えられる。
【0172】
例を挙げると、因果関係仮説が「エネルギー産生を高める→循環系を抑える」(名詞ペアは「エネルギー産生」と「循環系」)である場合、WEBアーカイブ44の中のある文において、「グルココルチコイドは循環系を賦活し、エネルギー産生を高め、不要な合成系は抑える。」という表現があった場合、この因果関係を除外する。元の「エネルギー産生」と「循環系」という名詞が、逆の順序で出現している文が存在しているためである。
【0173】
《名詞の出現頻度によるフィルタリング部556》
名詞の出現頻度によるフィルタリング部556は、異なる多数の因果関係仮説に出現する名詞ペアを含む因果関係仮説を除外する。例えば以下のような例が考えられる
−「地球温暖化が進行する→被害を被る」
−「株安になる→被害が発生する」
−「被害が出る→計画を中止する」
この例では、多数出現する「被害」という名詞を含むため、これら因果関係仮説を全て除外する。このように異なる多数の因果関係仮説に出現する名詞は、そもそも意味が漠然としており、因果関係として採用するのは避けた方がよいためである。
【0174】
このために因果関係仮説フィルタリング部418は、名詞の出現頻度算出部558と名詞の出現頻度DB560とを含んでいる。
【0175】
《名詞の出現頻度算出部558》
名詞の出現頻度算出部558は、因果関係仮説DB416に格納されている因果関係仮説フレーズペアの原因フレーズ内の名詞と結果フレーズ内の名詞との各々について、予め因果関係仮説DB416の全ての因果関係仮説における出現頻度を計算する。
【0176】
《名詞の出現頻度DB560》
名詞の出現頻度DB560は、名詞の出現頻度算出部558により計算された、各名詞の出現頻度を格納するためのものである。名詞の出現頻度DB560は、名詞が与えられるとその出現頻度を返すことができる。名詞の出現頻度によるフィルタリング部556はこの機能を用いて因果関係仮説のフィルタリングを行なう。
【0177】
《除外単語によるフィルタリング部566》
除外単語によるフィルタリング部566は、WEBアーカイブ44において「AのB」における「B」のように、修飾句により修飾された名詞(「被修飾名詞」と呼ぶ。)を含む因果関係仮説を除外する。このように修飾句が名詞に付されている場合、フレーズの意味はむしろ修飾句により表されており、被修飾名詞そのものの意味は特定的でなく漠然としていると考えられるためである。すなわち、被修飾名詞を含む因果関係仮説も、因果関係として採用することが妥当とは言えないためである。このようにして得られた被修飾名詞を、ここでは除外単語と呼ぶ。因果関係仮説フィルタリング部418は、このために、被修飾名詞の抽出部562及び除外単語DB564を含む。
【0178】
《被修飾名詞の抽出部562》
被修飾名詞の抽出部562は、WEBアーカイブ44から被修飾名詞の集合を抽出する。この処理はいつでも可能である。
【0179】
《除外単語DB564》
除外単語DB564は、被修飾名詞の抽出部562により抽出された被修飾名詞を、除外単語として記憶する。除外単語DB564は、名詞が与えられると、その名詞が除外単語か否かを表す情報を出力する機能を持つ。典型的には、除外単語DB564は、除外単語によるフィルタリング部566から名詞が与えられると、その名詞が除外単語として記憶されているか否かを示す情報を除外単語によるフィルタリング部566に返す。除外単語DB564に名詞が記憶されていれば除外単語によるフィルタリング部566はその単語を含む因果関係仮説を除外する。なければその因果関係仮説は採用され、因果関係フレーズペアDB70に記憶される。
【0180】
〈社会シナリオ生成部72〉
図17を参照して、社会シナリオ生成部72は、因果関係フレーズペアDB70に記憶された因果関係フレーズペアを連鎖させることにより社会シナリオ候補を生成する社会シナリオ候補生成部580と、社会シナリオ候補生成部580により生成された社会シナリオ候補を所定のスコアでランキングして社会シナリオDB38に出力する社会シナリオランキング部582とを含む。因果関係フレーズペアが多数ある場合、それらから適切なものを適切な順序で連鎖させることにより、因果関係で結ばれた長い因果関係フレーズ列が得られる。本実施の形態では、このフレーズ列を社会シナリオと呼ぶ。この社会シナリオは、人間が考えないような関係で多くの因果関係を結び付け、ある原因フレーズから、思いもよらない結果フレーズを導き出すことができる。ただし、そのためには、因果関係を連鎖させるために適切な因果関係フレーズペアのペアを選び、これらを連鎖させていく必要がある。社会シナリオ候補生成部580はそのためのものである。ただし、このようにして生成された社会シナリオであっても、その原因と結果との間の関係が適切なものと、それほど適切ではないものとが存在するはずである。社会シナリオの適切さを表すスコアを各社会シナリオに付し、スコアの高い社会シナリオとそうでない社会シナリオとを判別できるようにするのが社会シナリオランキング部582である。
【0181】
このような因果関係の連鎖を行なう場合、単純にはある因果関係フレーズペアの結果フレーズと、他の因果関係フレーズペアの原因フレーズとが同一であれば分かり易い。しかし、現実には文字上では異なっていても、2つの因果関係フレーズペアを連鎖させることができるようなフレーズ間の関係がある。それらを見落とすと、生成される社会シナリオの範囲が狭くなってしまう危険性がある。そこで、2つの因果関係フレーズペアの連結部となりうる、ある因果関係フレーズペアの結果フレーズと、別の因果関係フレーズペアの原因フレーズとについて、文字列上で同一でなくても両者を実質的に同一視できる関係を見出すことが重要である。
【0182】
本実施の形態では、このように文字列上で同一でなくても両者を実質的に同一視することを、両者が因果的一貫性を有する、ということにする。この因果的一貫性は、言い換え及び含意を包含する新しい概念であり、従来の自然言語処理技術のみでは実現できない。社会シナリオ候補生成部580は、2つの因果関係フレーズペアについて、一方の結果フレーズと他方の原因フレーズとの因果的一貫性を評価することにより、因果的一貫性を持つ因果関係フレーズペアを連鎖させる。
【0183】
〈社会シナリオ候補生成部580〉
図18を参照して、社会シナリオ候補生成部580は、単純述語テンプレートDB62、因果関係フレーズペアDB70、及び単語クラスDB46を参照し、因果関係フレーズペアDB70内において、名詞が同じで単純述語テンプレートの極性が同じフレーズを、因果的一貫性を持つ同義のフレーズとみなしてその組合せを表す情報(連鎖情報)を生成し出力する第1の同義関係生成部600を含む。この連鎖情報は、因果的一貫性を持つと判定された2つのフレーズの識別子をペアにしたものである。
【0184】
社会シナリオ候補生成部580はさらに、単語クラスDB46と因果関係フレーズペアDB70とを参照し、因果関係フレーズペアDB70内において、名詞が同じでフレーズ全体の評価極性が同じフレーズを因果的一貫性のある同義のフレーズとみなして、その連鎖情報を生成し出力する第2の同義関係生成部602と、単語クラスDB46を参照し、因果関係フレーズペアDB70内において、名詞が同じで、大量文書中での出現文脈が類似しているテンプレートを持つフレーズの対を、因果的一貫性のある同義のフレーズとみなして選択し、その連鎖情報を生成し出力する第3の同義関係生成部604とを含む。
【0185】
社会シナリオ候補生成部580はさらに、第3の同義関係生成部604での判定に用いるテンプレートの分布類似度を予め記憶するテンプレート分布類似度DB614を含む。テンプレート分布類似度DB614はどのような手法により作成してもよいが、本実施の形態では、社会シナリオ候補生成部580は、このテンプレート分布類似度DB614を予め作成するために、WEBアーカイブ44及び複雑述語テンプレートDB66を参照して、WEBアーカイブ44における各テンプレートの分布類似度を算出し、その結果をテンプレート分布類似度DB614に格納する分布類似度算出部616を含んでいる。
【0186】
なお、因果関係フレーズペアを連結するための手法としては、上記したように2つのフレーズの因果的一貫性を用いることだけには限定されない。例えば、2つのフレーズの間で因果的一貫性はないものの、意味的に考えてあるフレーズから別のフレーズへの因果関係を橋渡しする関係が存在する場合がある。たとえば、一方のフレーズが「日光がさえぎられる」というものであり、他方のフレーズが「光合成が妨げられる」というものである場合、両者をつなぐリンクとして例えば「日光が光合成に必要だ」というフレーズを考えることができる。すると、このフレーズを媒介にして「日光がさえぎられる」という結果フレーズを持つ因果関係フレーズペアと「光合成が妨げられる」という原因フレーズを持つ因果関係フレーズペアとを連鎖させることができる。しかしこの場合、新たに挿入された「日光が光合成に必要だ」というフレーズは、社会シナリオに挿入する必要はない。因果関係の先頭と末尾とが分かれば十分だからである。したがってこのようにして因果関係フレーズペアを連鎖させる場合にも、フレーズの識別子のペアを記憶しておけばよい。この場合には連鎖には順序が必要になってくるので、順序付のフレーズ識別子ペアを記憶する必要がある。
【0187】
このような処理を行なって順序付フレーズ識別子ペアを生成するのが
図18に示す連結関係生成部606である。どのようにしてこうしたリンクを形成するフレーズ間の関係を見出すかが問題である。ここでは、2つのフレーズが含む名詞間の意味的関係に着目してこの問題を解決した。すなわち、ある2つの名詞の間に特定の関係が成立しているときに、両者の間にその関係が成立するものとして、フレーズ間にリンクがあるように処理する。ここでの関係としては、
図11に示した単語対抽出部406により抽出され、単語対DB402に記録された単語対を形成する単語間の関係、すなわち意味的関係パターンDB400に記録された意味的関係パターンにより表される意味的関係を用いることができる。単語対抽出部406は、必要関係、材料関係、使用関係、予防関係、及び因果関係を持つ単語対を抽出し、そうした単語対を単語対DB402に、そうした関係を表すパターンを意味的関係パターンDB400に、それぞれ記録している。したがって、これらを用いることにより、フレーズ間に特定の関係が成立しているか否かを調べ、成立している場合には両者の間に因果関係があるものとして、フレーズ間を連結する。このようにある因果関係フレーズペアの結果フレーズと、他の因果関係フレーズペアの原因フレーズとの間にある意味的関係が成立し、そのために両者の間に因果関係が成立すると考えられる場合を、「意味的関係によるリンク」と呼ぶ。
【0188】
連結関係生成部606は、あるフレーズに含まれる名詞の単語と、他のフレーズに含まれる名詞の単語が、単語対DB402に単語対として記憶されていれば両者の間にはその単語対により表される関係が成立するものと判定する。通常、この場合の因果関係は一方向のみなので、連結関係生成部606は、双方のフレーズの識別子を順序付の識別子対として生成し連結情報生成部608に出力する。
【0189】
社会シナリオ候補生成部580はさらに、第1の同義関係生成部600、第2の同義関係生成部602、及び第3の同義関係生成部604が出力するフレーズの識別子対、及び連結関係生成部606が出力するフレーズの順序付の識別子対を用い、ある因果関係フレーズペアと、その因果関係フレーズペアと因果関係で結ばれる因果関係フレーズペアの組とからなるツリーを因果関係フレーズペアごとに生成する連結情報生成部608と、連結情報生成部608の出力するツリーを記憶する連結関係DB610とを含む。このツリーを用いることで、因果関係フレーズペアから次の因果関係フレーズペアへ、さらにその次の因果関係フレーズペアへ、因果関係を連鎖させていくことができる。
【0190】
社会シナリオ候補生成部580はさらに、因果関係フレーズペアDB70に記憶された連結情報を用い、因果関係フレーズペアDB70に記憶された任意の因果関係フレーズペアを起点に因果関係フレーズペアを順次たどって連結していくことにより、社会シナリオ候補を生成する因果関係連結部612と、因果関係連結部612が生成する社会シナリオ候補を記憶する社会シナリオ候補DB618とを含む。
【0191】
因果関係連結部612は、例えば連結する因果関係の数の上限が与えられると、その範囲で可能な全ての社会シナリオを形成したり、ある因果関係フレーズペアが指定されると、その因果関係フレーズペアに続く因果関係フレーズペアを複数個表示し、さらにその中からいずれかの因果関係フレーズペアが指定されると、新たに指定された因果関係フレーズペアに続く因果関係フレーズペアを複数個表示し、という処理を対話的に繰返すことにより社会シナリオを生成したりすることもできる。
【0192】
〈社会シナリオランキング部582〉
図19を参照して、本実施の形態に係る社会シナリオランキング部582(
図17参照)は、社会シナリオ候補DB618に記憶された社会シナリオに、それらを構成する全ての因果関係フレーズペアの因果関係としての強さに基づくスコアを付与する。本実施の形態では、社会シナリオランキング部582は、ある社会シナリオ候補に含まれる因果関係フレーズペアの各々について、
図12を参照して説明した因果関係強度のスコアを付与する。社会シナリオランキング部582はさらに、それらを全て乗算することで社会シナリオ候補にスコアを付与する。
【0193】
すなわち、社会シナリオランキング部582は、社会シナリオ候補DB618に記憶された社会シナリオ候補の各々について、それらを構成する因果関係強度を因果関係フレーズペアに付された因果関係強度スコアを参照して計算し、さらにそれらを乗算することでスコアを付与して出力する全体因果関係スコア算出部640と、全体因果関係スコア算出部640の出力するスコア付き社会シナリオ候補を記憶するスコア付き社会シナリオ候補DB642と、スコア付き社会シナリオ候補DB642に記憶されたスコア付き社会シナリオ候補をそのスコアの降順でソートする社会シナリオソート部644と、ソートされた社会シナリオ候補を記憶するソート済社会シナリオ候補DB646と、ソート済社会シナリオ候補DB646に記憶された社会シナリオ候補の中からスコアがしきい値以上のものを選択して社会シナリオDB38に出力する社会シナリオ選択部648とを含む。
【0194】
[動作]
この第1の実施の形態に係る社会シナリオ生成システム30は、以下のように動作する。
図1を参照して、シードテンプレートDB32には予め少数のシードテンプレートが格納される。各シードテンプレートが活性か否かについても予め判断されており、各テンプレートにそのタグが付されている。一方、接続詞DB34には、日本語の順接接続詞等及び逆接接続詞等が格納され、それらの種類も記憶されている。また、矛盾表現辞書422(
図11、
図13)には、予め収集された、互いに矛盾する表現からなるペアが多数記憶されている。
【0195】
〈準備工程〉
図7に示すトラブル名詞極性判定用辞書266については、予めWEBアーカイブ44を参照してトラブル名詞の極性を判定するために必要なパターンを収集し、極性とともに記憶しておく。
【0196】
さらに、
図11に示す意味的関係パターンDB400及び単語対DB402も予め準備しておく。そのために、シードパターンDB404に単語間の所定の関係を表すシードパターンをいくつか格納しておく。単語クラスDB46についても予め準備しておく。シードパターンDB404及び単語クラスDB46はどのようにして準備してもよい。
【0197】
意味的関係パターンDB400及び単語対DB402の準備をするために、単語対抽出部406は以下のように動作する。
図14を参照して、単語対抽出部406のパターン抽出部490は、
図14に示すようにWEBアーカイブ44から様々な単語間の関係を抽出する。この処理のためにパターン抽出部490は、WEBアーカイブ44から2つの名詞を含むフレーズを多数抽出する。これらのフレーズに含まれる名詞を、単語クラスDB46から読み出した対応するクラスの変数で置換することで多数のパターンを生成する。これらパターンをさらに集約し、集約されたユニークなパターンをパターンDB492に格納する。
【0198】
単語対候補取得部494は、シードパターンDB404を参照しながら、WEBアーカイブ44から、シードパターンのいずれかに合致する形で出現する単語対を単語対候補として取得し、単語対候補DB496に蓄積する。これら単語対には、対応するシードパターンが属するシードパターン群の識別子(又はシードパターンそのものの識別子でもよい)が付される。
【0199】
一方、クラス対適合度算出部502は、単語対候補DB496に記憶された単語対に基づき、任意の2つの単語クラス間におけるクラス対適合度をクラス対ごとに算出し、クラス対適合度DB504に記憶させる。パターン類似度算出部506は、パターンDB492に記憶されたパターンとシードパターンDB404に記憶されたシードパターン群との組合せごとにパターン類似度を算出し、それらの組合せごとにパターン類似度DB508に記憶させる。親和性情報算出部510は、単語対と、パターンDB492に記憶された各パターン及びシードパターンDB404に記憶されたシードパターン群との親和性情報を算出し、単語対とシードパターン等との組合せごとに親和性情報DB512に記憶させる。除外クラス対特定部514は、単語クラスDB46に記憶されている単語のクラス対ごとに、WEBアーカイブ44での各クラスに属する単語の出現頻度の差がしきい値以上か否かを判定する。除外クラス対特定部514はさらに、差がしきい値以上のクラス対を特定し、除外クラス対DB516に格納する。
【0200】
単語対スコアリング部498は、クラス対適合度DB504に記憶されたクラス対適合度、パターン類似度DB508に記憶されたパターン類似度、親和性情報DB512に記憶された親和性情報を用い、単語対候補DB496に格納された単語対ごとに前述したスコアScoreを算出する。
【0201】
単語対選択部500は、単語対スコアリング部498によりスコアリングされた単語対のうち、上位の所定個数を選択し、単語対DB402に格納する。このとき、各単語対には、シードパターンDB404に記憶されたシードパターン群のうち、その単語対の取得時にマッチしたシードパターンを含むものの識別子が付与されている。
【0202】
一方、以上のような処理を1度だけで済ますよりは、新たに得られたシードパターンをシードパターンDB404に追加しながら上記した処理を繰返すと、単語対DB402の数も精度も高めることができる。そのためにパターンマージ部518は、パターン類似度DB508に記憶されたパターン及びシードパターン群の間の類似度を用い、あるシードパターン群との類似度がしきい値より高いパターンを、シードパターンDB404のそのシードパターン群に追加する。シードパターンDB404がこのようにして更新されると、この更新されたシードパターン群を用いて上記した処理を繰返す。この処理を所定の終了条件が成立するまで繰返すことで、精度の高い単語対DB402と、様々な意味的関係に分類された、シードパターン群とを得ることができる。シードパターンの数は最初に準備したものより大幅に増加することが通常であり、その結果、幅広い範囲の表現について、その表現がどのような意味的関係に合致するかを判定できるようになる。
【0203】
〈単純述語テンプレートの収集〉
単純述語テンプレート収集部60は以下のように動作して単純述語テンプレートDB62を構築する。
図2を参照して、初期テンプレートペア生成部90は、シードテンプレートDB32に記憶された全シードテンプレートの全ての組合せと、接続詞DB34に記憶された接続詞等との可能な組合せを全て生成し、これらを全てテンプレートペアとして初期テンプレートペアDB92に記憶させる。名詞ペア収集部94は、初期テンプレートペアDB92に記憶されたテンプレートペアの各々について、そのテンプレートペアと共起する名詞ペアをWEBアーカイブ44から収集し、名詞ペアDB96に記憶させる。名詞ペア極性判定部98は、これら名詞ペアの各々について、その名詞ペアと共起するテンプレートペア内のテンプレートの活性/不活性と、テンプレートペアを結び付ける接続詞DB34からの接続詞等の種類とに応じて、その名詞ペアが正の関係か負の関係かを判定し、各名詞ペアに極性タグを付与する。
【0204】
続いて、テンプレートペア収集部100が、各名詞ペアについて、WEBアーカイブ44からその名詞ペアと共起するテンプレートペアを収集し、テンプレートペアDB102に格納する。
【0205】
これらテンプレートペアの各々について、テンプレート活性マッチ判定部104が、共起する名詞ペアの正/負と、接続詞等の種類(順接、逆接)とに応じ、テンプレートペアを構成するテンプレートの活性/不活性が互いに同じか、反対かを決定する。このとき、あるテンプレートペアについて、それらの活性が同じとなるものと反対となるものとが存在する場合には、同じものと反対のものとを出現回数を比較し、多数決により同じか反対かを決定する。テンプレート活性マッチ判定部104は、テンプレートペアDB102に記憶されたテンプレートペアの各々について、それらの活性/不活性が同じか反対かを示すタグを付与する。
【0206】
テンプレートネットワーク構築部106は、テンプレートペアDB102に記憶されたテンプレートペアに基づいて、テンプレートネットワーク140(
図3)を構築する。テンプレートネットワーク構築部106は、テンプレートペアを構成する2つのテンプレートに対応するノードがもしネットワークになければネットワークに追加し、そのリンクがなければそれも追加する。この処理を全てのテンプレートペアについて実行することで、テンプレートネットワーク140の原型を構築する。テンプレートネットワーク構築部106はさらに、ネットワーク内で互いにリンクのないノードの対全てについて、同義・含意関係辞書108を参照して、それらノードに対応するテンプレートの間にテーブル10に示すような特定の関係があるか否かを判定し、あれば互いの間に「同一」というリンクを張る。さらにテンプレートネットワーク構築部106は、このようにして構築されたネットワークの各リンクに対し、式(1)によって算出される重みを付与する。このようにしてリンクが追加されたテンプレートネットワーク140はテンプレートネットワークDB110に記憶される。
【0207】
テンプレート活性値算出部112は、
図6に示す処理を実行する。すなわち、最初にシードテンプレートに、その活性/不活性に応じて+1又は−1の活性値を付与する(ステップ240)。さらに、電子スピンのエネルギーに類似した量として式(2)により定義された値E(x,W)を最小化する処理を実行することにより(ステップ242)、各テンプレートの活性値を推定し、各テンプレートにその活性値を付与する。これら活性値の値には、負のものもあるし正のものもある。高活性度テンプレート抽出部114は、このようにして活性値が推定されたテンプレートの内、活性値の絶対値が所定のしきい値よりも大きなものを選択し、それらテンプレートを用いて単純述語テンプレートDB62を構築する。なお、ここでは、しきい値により選択するのではなく、活性値の絶対値の大きさにしたがって順位をつけるようにしてもよい。
【0208】
図2に示す終了判定部116は、単純述語テンプレートDB62が構築された時点で、所定の終了条件が充足されたか否かを判定する。終了条件としては、例えば繰返し数が所定数を超えた、又は、テンプレート数が所定数を超えた、というような条件を想定できる。もしも終了条件が成立していれば、単純述語テンプレートDB62が完成したものとされる。もしも終了条件が成立していなければ、シードテンプレート更新部118は、単純述語テンプレートDB62に含まれるテンプレートを新たなシードテンプレートとして、シードテンプレートDB32を更新する。これらシードテンプレートには、以上の処理により計算された活性値が付与されているので、以後の処理ではこれらの活性値を使用してこれまで記載したのと同様の処理を実行する。
【0209】
以上の処理を繰返し、終了条件が充足されたところで単純述語テンプレートDB62が完成したことになる。以後、複雑述語テンプレート収集部64がこの単純述語テンプレートDB62を使用して、インターネット40から複雑述語テンプレートを獲得する処理を実行する。
【0210】
〈複雑述語テンプレートの収集〉
具体的には複雑述語テンプレート収集部64の複雑述語テンプレート候補抽出部268は、以下のようにしてサ変名詞テンプレート候補DB270、数量名詞テンプレート候補DB272、及びトラブル名詞テンプレート候補DB274を構築する(
図7)。すなわち、
図8を参照して、複雑述語テンプレート候補抽出部268は、WEBアーカイブ44の全文書の全文に対して(ステップ300)、形態素解析(ステップ302)及び係り受け解析(ステップ304)を実行し、係り受け木を生成する。続いて、各ノードに対して、次のような処理を実行する(ステップ306)。
【0211】
まず、そのノードの単語が対象名詞か否かを判定する(ステップ308)。ここでの判定には、
図7に示す対象名詞辞書260を利用する。単語が対象名詞でなければ(ステップ308でNO)次のノードの処理に移る。単語が対象名詞であれば(ステップ308でYES)、その係り先がいずれかの単純述語テンプレートか否かを判定する(ステップ310)。単純述語テンプレートでなければ(ステップ310でNO)次のノードの処理に移る。単純述語テンプレートであれば(ステップ310でYES)、処理対象のノードの係り受け元のノード末尾の助詞と、処理対象のノードの形態素と、係り先の単純述語テンプレートとを連結して複雑述語テンプレート候補を生成し(ステップ312)、その複雑述語テンプレートの対象名詞の種類に応じ、
図7に示すサ変名詞テンプレート候補DB270、数量名詞テンプレート候補DB272、又はトラブル名詞テンプレート候補DB274に分類して格納する(ステップ314)。ここまでの処理が終了したら、係り受け木の次のノードに対する処理を行なう。
【0212】
単純述語テンプレートDB62が得られた後、
図7に示すサ変名詞極性判定部264は、サ変名詞極性付与部276によるサ変名詞テンプレートの極性付与に先立って、次のようにしてサ変名詞極性辞書262を構築する。具体的には、サ変名詞極性判定部264は各サ変名詞テンプレートに対して以下のような処理を行なう。
【0213】
すなわち、サ変名詞極性判定部264は、そのサ変名詞テンプレート候補に対し、そのサ変名詞に対応するサ変動詞を特定し、単純述語テンプレートDB62においてこのサ変動詞を含む単純述語テンプレートを検索する。検索された全ての単純述語テンプレートの極性が一致していれば、サ変名詞極性判定部264はその極性を処理中のサ変名詞テンプレートの極性とし判定し、サ変名詞極性辞書262にサ変名詞と極性との組合せを見出しとして記憶する。
【0214】
検索された単純述語テンプレートの極性が一致していないとき、典型的には単純述語テンプレートの先頭の助詞に応じて極性が変化しているときには、複雑述語テンプレートの極性を単純に決めることはできない。したがってこの場合、サ変名詞極性判定部264は以下のような処理を行なう。
【0215】
すなわち、サ変名詞極性判定部264は、サ変名詞テンプレート候補のサ変名詞にWEBアーカイブ44において「ノ」格でかかっている名詞を全て特定する。このようにして特定した名詞が、どのような助詞を伴って上記したサ変動詞と共起しているか、その頻度を調べる。サ変名詞極性判定部264は、このようにして調べた結果、最も頻度が高かった助詞と、上記したサ変動詞とからなる単純述語テンプレートを特定し、その単純述語テンプレートの極性を、上記した「ノ」で係る名詞との組合せにおけるサ変名詞テンプレート候補の極性とする。この処理を、「ノ」でサ変名詞テンプレート候補に係る名詞との組合せの全てに対して行なうことで、そのサ変名詞テンプレート候補の、各名詞との組合せにおける極性を特定できる。
【0216】
サ変名詞極性判定部264は、この情報をサ変名詞極性辞書262に記憶する。したがって、サ変名詞テンプレートが与えられたとき、そのサ変動詞を含む単純述語テンプレートの極性がサ変名詞極性辞書262に単一の極性として記憶されているときはその極性をもってサ変名詞テンプレートの極性とし、そうでないときには、そのサ変名詞テンプレートに係る「ノ」格の名詞が分かれば、サ変名詞極性辞書262を参照することでそのサ変名詞テンプレートの極性も判定できる。逆に言うと、サ変名詞テンプレートの一部については、その前に「ノ」格で出現する名詞が分からないと極性を判定できず、文脈に依存する。
【0217】
図9を参照して、
図7に示すサ変名詞極性付与部276は、サ変名詞テンプレート候補DB270に記憶されたサ変名詞テンプレート候補の各々に対し以下の処理を実行する(ステップ340)。すなわち、サ変名詞極性付与部276はサ変名詞極性辞書262を参照して、各サ変名詞テンプレート候補が含むサ変名詞の見出しが1つか否かを判定し(ステップ342)、見出しが1つであれば(ステップ342でYES)その極性を処理対象のサ変名詞テンプレート候補に極性として付与し(ステップ344)、次のサ変名詞テンプレート候補の処理に移る。ステップ342の判定が否定的であれば、極性が文脈依存であることを示す値をサ変名詞テンプレート候補に極性として付与し、次のサ変名詞テンプレート候補の処理に移る。全てのサ変名詞テンプレートに対してこの処理が完了すると、親ルーチンに復帰する。
【0218】
図7に示す数量名詞極性付与部278は、数量名詞テンプレート候補記憶部に記憶された数量名詞テンプレート中の数量名詞に活性の極性を付与し、複雑述語テンプレート極性算出部282に与える。
【0219】
図7に示すトラブル名詞極性付与部280は、
図10を参照して、トラブル名詞テンプレート候補DB274に記憶されたトラブル名詞テンプレート候補の各々について、以下の処理を実行する(ステップ370)。ステップ370では、まず、トラブル名詞極性判定用辞書266を参照して、そのトラブル名詞に対する見出しが1つだけあるか否かを判定する(ステップ372)。判定がYESなら、その極性をトラブル名詞の極性として付与し(ステップ374)、複雑述語テンプレート極性算出部282に出力して次のトラブル名詞テンプレート候補の処理に移る。ステップ372の判定がNOなら、トラブル名詞の極性が文脈依存であることを示す値を極性としてトラブル名詞に付与し(ステップ376)、複雑述語テンプレート極性算出部282に出力して次のトラブル名詞テンプレート候補の処理に移る。全てのトラブル名詞テンプレート候補に対してこの処理が完了すると、処理を終了する。
【0220】
複雑述語テンプレート極性算出部282は、各複雑述語テンプレート候補の名詞(サ変名詞、数量名詞、トラブル名詞)に付与された極性の値と、各候補の単純述語テンプレート部分の極性とを乗算することで複雑述語テンプレートの極性を算出し、その極性付の複雑述語テンプレートを複雑述語テンプレートDB66に格納する。このとき、複雑述語テンプレート極性算出部282は、サ変名詞テンプレート候補のサ変名詞及びトラブル名詞テンプレート候補のトラブル名詞の極性が文脈依存である場合には、複雑述語テンプレートの極性を上記のように算出することはせず、極性が文脈依存であることを示す値を複雑述語テンプレートに付与する。
【0221】
〈因果関係フレーズペアの収集〉
図1に示す因果関係フレーズペア収集部68は、複雑述語テンプレートDB66が生成された後、以下のようにして因果関係フレーズペアDB70を構築する。なおこの処理に先立って、意味的関係パターンDB400、単語対DB402、及び名詞の極性辞書420(
図11)を準備しておく必要がある。
【0222】
図11に示す因果関係シードペア収集部408は、以下のようにして因果関係シードペアを収集する。
図12を参照して、まず、ステップ440において、一文中で互いに順接接続詞等で接続されてWEBアーカイブ44内で共起している述語テンプレートペアと、その述語テンプレートペアに係る名詞からなる名詞ペアとをWEBアーカイブ44から因果関係シードペア候補として収集する。ここでの述語テンプレートは、単純述語テンプレートDB62に格納された単純述語テンプレートと、複雑述語テンプレートDB66に格納された複雑述語テンプレートペアとの双方を含む。各単純述語テンプレートには極性が付されている。複雑述語テンプレートのうち、数量名詞を含むものと、サ変名詞を含むものの一部と、トラブル名詞を含むものの一部にも同様に極性が付されている。複雑述語テンプレートのうち、サ変名詞テンプレートとトラブル名詞テンプレートとについては、名詞の極性が文脈依存を示す値である場合がある。そうした場合、因果関係シードペア収集部408はその直前に「ノ」格でかかっている名詞と複雑述語テンプレート内のサ変名詞との組合せでサ変名詞極性辞書262を検索する。サ変名詞極性辞書262からその組合せに対するサ変名詞の極性を得たうえで複雑述語テンプレート内の単純述語テンプレートの極性と乗算して複雑述語テンプレートの極性を判定する。
【0223】
続いて、このようにして得られた全ての候補に対して、以下のステップ442を実行する。すなわち、ステップ442では、処理対象である候補内の名詞ペアの関係が正の関係か否かを判定する(ステップ444)。判定が肯定的な場合には、さらに、その候補の述語テンプレートペアの活性/不活性が同じか反対かを判定する(ステップ446)。ステップ446の判定が否定的ならこの候補は捨てる。すなわち、この候補に対しては何もしない。ステップ446の判定が肯定的ならこの候補を因果関係シードペア群に追加する(ステップ448)。この後、次の候補の処理に移る。
【0224】
一方、ステップ444の判定が否定的なら、ステップ450でこの候補の述語テンプレートペアの活性/不活性が互いに反対か否かを判定する。判定が否定的ならこの候補は捨てる。判定が肯定的ならこの候補を因果関係シードペア群に追加する(ステップ448)。この後、次の候補の処理に移る。
【0225】
以上の処理が全ての因果関係シードペア候補に対して終了すると、結果として得られた因果関係シードペア群内の全ての因果関係シードペアに対してステップ452の処理を実行する。すなわち、因果関係シードペア収集部408は、ステップ454で、各因果関係シードペアに対し、因果関係強度のスコアC
s(p
1,p
2)を既に示した式(3)により算出する。式(3)を以下に再掲する。
【0226】
【数15】
ただしp
1,p
2はそれぞれ、因果関係シードペアを構成するフレーズ、s
1及びs
2はそれぞれ、フレーズp
1,p
2を構成する述語テンプレートの活性値、記号|s
1|は活性値s
1の絶対値、n
1,n
2はそれぞれ、フレーズp
1,p
2に含まれる名詞、npfreq(n
1,n
2)は、n
1,n
2が正の関係なら、n
1,n
2が活性/不活性の同じテンプレートペアと一文中で共起する頻度、n
1,n
2が負の関係なら、n
1,n
2が活性/不活性の異なる述語テンプレートペアと一文中で共起する頻度を、それぞれ表す。
【0227】
このようにして全ての因果関係シードペアに対し因果関係強度のスコアを算出した後、ステップ456で因果関係シードペアをスコアと関連付けて因果関係シードペアDB410に出力する。
【0228】
このような処理を実行することにより、因果関係を表すフレーズのペアであって、単純述語テンプレート又は複雑述語テンプレートを含むペアを大量に、かつ自動的にWEBアーカイブ44から収集できる。なお、上記した式(3)に代えて式(4)を使用できることは前述したとおりである。
【0229】
〈因果関係仮説の生成〉
因果関係シードペアDB410に記憶された因果関係シードペアは大量ではあるものの、考えられる全ての因果関係を網羅したものではない。そこで、これら因果関係シードペアから、合理的な範囲でより多くの因果関係の仮説を生成し、最終的に得られる社会シナリオがカバーする範囲を広げることが必要である。そのために
図11に示す因果関係仮説生成部412は、因果関係シードペアDB410に記憶された因果関係シードペアから次のようにさらに多数の因果関係仮説を生成し、因果関係仮説DB416に格納する。なお、本実施の形態では、この処理に先立って、既に説明したように、意味的関係パターンDB400、単語対DB402、及び互いに矛盾する表現からなる述語テンプレートペアを矛盾表現辞書422に記憶しておくことが必要である。
【0230】
意味的関係パターンDB400は、互いに特定の意味的関係にある単語クラスが共起するパターンを、意味的関係ごとに意味的関係パターン群として記憶している。単語対DB402は、意味的関係パターンDB400に記憶されたパターンに適合する、特定の意味的関係を持つ単語対を予め記憶している。単語対DB402に記憶された単語対には、意味的関係パターンDB400に記憶された意味的関係パターン群のうち、その単語対が適合するパターン群の識別子が付されている。
【0231】
矛盾表現を使用して因果関係仮説を生成しない場合には、矛盾表現辞書422は必要ない。
【0232】
図13及び
図15を参照して、因果関係仮説生成部412の意味的関係パターンマッチング部470は、因果関係シードペアDB410に格納された因果関係シードペアの各々について、そのシードペアを構成するフレーズペア内の名詞ペアが属する単語クラスを単語クラスDB46から読み出し、以下の処理(
図15のステップ520)を行なう。すなわち、意味的関係パターンマッチング部470は、読み出した単語クラス対が意味的関係パターンDB400に格納された意味的関係パターンのいずれとマッチするか否かを判定し(
図15のステップ522)、マッチした意味的関係パターンの属する意味的関係パターン群の識別子を因果関係シードペアとともに単語対置換部472に与える。マッチした意味的パターンがない場合には、この因果関係シードペアに関して矛盾表現を用いて書き換えた新たな因果関係仮説を生成するために、
図13に示すテンプレート置換部476の処理を開始する。テンプレート置換部476の動作については後述する。
【0233】
マッチした意味的パターンがある場合、単語対置換部472は、マッチした全パターンに対して以下の処理を実行する(
図15のステップ524)。すなわち、マッチした意味的関係パターンが属する意味的関係パターン群の識別子が与えられた単語対を単語対DB402から全て読み出す(
図15のステップ526)。読み出した単語対の各々を用い、以下の処理を実行する(
図15のステップ528)。まず、因果関係シードペアを構成する原因フレーズと結果フレーズとの双方の名詞ペアを、読み出された単語対で置換する(
図15のステップ530)。
【0234】
スコア算出部474は、
図12のステップ454で行なわれるものと同様の手法により因各因果関係仮説に対する因果関係強度スコアを算出し(
図15のステップ532)、因果関係仮説に付して因果関係仮説DB416に出力する(
図15のステップ534)。以上の処理を、ステップ526で読み出された全ての単語対について実行する。以上の処理が完了すると、テンプレート置換部476の処理を開始する(ステップ536)。
【0235】
テンプレート置換部476は、処理中の因果関係シードペアを構成する原因フレーズと結果フレーズの矛盾表現を全て矛盾表現辞書422から読み出す(
図15のステップ536)。テンプレート置換部476はさらに、処理中の因果関係シードペアの原因フレーズと結果フレーズを、それらの矛盾表現を用いて置換する処理を、原因フレーズの矛盾表現と結果フレーズの矛盾表現との組合せを全て用いて行なうことで新たな因果関係仮説を生成し(
図15のステップ538)、スコア算出部474に与える。スコア算出部474は、
図12のステップ454で行なわれるものと同様の手法により各因果関係仮説に対する因果関係強度スコアを算出し(
図15のステップ540)、各因果関係仮説にそれぞれの因果関係強度スコアを付して因果関係仮説DB416に出力し(
図15のステップ542)、次の因果関係シードペアの処理に移る。
【0236】
因果関係仮説生成部412が以上の処理を全ての因果関係シードペアに対して実行することで、因果関係シードペアに基づいて新たなスコア付の因果関係仮説が多数生成され、因果関係仮説DB416に追加される。
【0237】
〈因果関係仮説のフィルタリング〉
上のようにして生成された因果関係仮説には、妥当でないものも多く含まれる。そこで、そうした誤った因果関係仮説を除去する必要がある。
図11に示す因果関係仮説フィルタリング部418はその処理を行なう。
【0238】
図16を参照して、因果関係仮説フィルタリング部418の名詞の出現頻度算出部558は、因果関係仮説DB416に記憶された因果関係仮説内における名詞の出現頻度を名詞別に算出し、名詞の出現頻度DB560に格納する。これは名詞の出現頻度によるフィルタリング部556によるフィルタリング処理のための準備である。一方、被修飾名詞の抽出部562は、WEBアーカイブ44を検索し、「AのB」という形で修飾句により修飾された被修飾名詞(「AのB」における「B」に相当する名詞)を抽出し、除外単語DB564に格納する。これは、除外単語によるフィルタリング部566によるフィルタリング処理のための準備である。
【0239】
本実施の形態では、因果関係仮説フィルタリング部418は、まず一貫性検証フィルタリング部550によるフィルタリングを行なう。一貫性検証フィルタリング部550は、因果関係仮説の各々について、仮説を構成するフレーズペアの名詞ペア(n
1,n
2)の名詞n
1及びn
2のいずれも、他の因果関係において原因フレーズにも結果フレーズにも表れているか否かを判定する。いずれの名詞もこの条件に合致している場合には、一貫性検証フィルタリング部550はこの因果関係仮説を除去する。一貫性検証フィルタリング部550は、これ以外の因果関係仮説を関連度によるフィルタリング部552に与える。
【0240】
本実施の形態では、関連度によるフィルタリング部552は、因果関係仮説を構成するフレーズ対の名詞ペアの関連度を算出し、関連度がしきい値より低い因果関係仮説を除去し、それ以外の因果関係仮説を出現順序検証によるフィルタリング部554に与える。関連度として、本実施の形態では、名詞ペアの相互情報量(PMI)を用いる。前述したとおり、名詞ペアの関連度としてこれ以外の指標を用いてもよい。
【0241】
出現順序検証によるフィルタリング部554は、関連度によるフィルタリング部552から与えられる因果関係仮説を構成するフレーズペアの各々について、それらがWEBアーカイブ44中で出現する順序に基づいて因果関係仮説をフィルタリングする。具体的には、出現順序検証によるフィルタリング部554は、因果関係仮説を構成するフレーズペアが、WEBアーカイブ44中のある文で共起しており、かつ結果フレーズが原因フレーズより前に出現している因果関係仮説を除外し、それ以外を名詞の出現頻度によるフィルタリング部556に出力する。
【0242】
名詞の出現頻度によるフィルタリング部556は、関連度によるフィルタリング部552から与えられる因果関係仮説の各々について、それらを構成するフレーズペアの名詞ペアの、WEBアーカイブ44における出現頻度に基づくフィルタリングを行なう。具体的には、名詞の出現頻度によるフィルタリング部556は、因果関係仮説について、その因果関係を構成するフレーズペアの名詞ペアのいずれかが、因果関係仮説中においてしきい値を超える頻度で出現している場合、その因果関係仮説を除外する。名詞の出現頻度によるフィルタリング部556は、それ以外の因果関係仮説を除外単語によるフィルタリング部566に与える。
【0243】
除外単語によるフィルタリング部566は、名詞の出現頻度によるフィルタリング部556から与えられる因果関係仮説について、除外単語DB564に記憶された除外単語を含むか否かを判定し、除外単語を含むものを除外する。除外単語によるフィルタリング部566は、除外単語を含まない因果関係仮説のみを因果関係フレーズペアDB70に格納する。
【0244】
このようにして因果関係仮説フィルタリング部418によるフィルタリングが完了した時点で、因果関係フレーズペアDB70には多数の因果関係フレーズペアが格納されていることになる。
【0245】
なお、本実施の形態では、一貫性検証フィルタリング部550、関連度によるフィルタリング部552、出現順序検証によるフィルタリング部554、名詞の出現頻度によるフィルタリング部556、及び除外単語によるフィルタリング部566によるフィルタリングをこの順序で行なっている。しかし本発明はそのような実施の形態には限定されない。例えば処理の順番を入れ替えてもよい。一部の処理を除外してもよい。又は、これらの処理を互いに並列して実行し、それぞれの目的に合致したスコアを各因果関係仮説に付与して、それらの積又は合計がしきい値をこえたか否かで因果関係仮説の採用/除外を判定してもよい。
【0246】
〈社会シナリオの生成〉
上記した処理で構築された因果関係フレーズペアDB70を用いると、多くの社会シナリオを生成できる。社会シナリオの生成を行なうのが
図1に示す社会シナリオ生成部72である。
【0247】
図17を参照して、社会シナリオ候補生成部580は、因果関係フレーズペアDB70に記憶されたある因果関係フレーズペアのあるフレーズと、別の因果関係フレーズペアのあるフレーズとの間に因果的一貫性が成立するか、又は意味的関係によるリンクが成立する場合に、前者を結果フレーズに、後者を原因フレーズに持つ因果関係フレーズペア同士を連鎖させることで社会シナリオを生成する。このようにして生成された社会シナリオをさらに別の因果関係と連鎖させることでさらに長い社会シナリオを生成できる。本実施の形態では、社会シナリオ候補生成部580は、連鎖させる因果関係の数が一定以下となるようにするが、例えば対話的に社会シナリオを生成する場合には、そのような制限は必要ない。
【0248】
図18を参照して、社会シナリオ候補生成部580の第1の同義関係生成部600は、因果関係フレーズペアDB70に格納された因果関係フレーズペアの各々について以下の処理を行なう。すなわち、その因果関係フレーズペアの結果フレーズ(これを第1のフレーズとする。)の名詞を特定する。因果関係フレーズペアDB70に記憶された因果関係フレーズペアのうち、原因フレーズにこの名詞と一致する名詞を持つ因果関係フレーズを収集する。さらに、収集された因果関係フレーズペアの原因フレーズ(これを第2のフレーズとする。)の述語テンプレートの極性が、第1のフレーズに属する述語テンプレートの極性と一致しているか否かを判定する。両者が一致していれば、第1のフレーズと第2のフレーズとは同義であると判定し、第1のフレーズを含む因果関係と、第2のフレーズを含む因果関係とに対する連結情報を生成し、連結情報生成部608に出力する。ここでいう連結情報とは第1のフレーズを含む因果関係フレーズペアの識別子と第2のフレーズを含む因果関係フレーズペアの識別子との順序対である。
【0249】
第2の同義関係生成部602は、フレーズの評価極性に基づく因果的一貫性を判定し、その結果にしたがって2つの因果関係フレーズペアを連鎖させる連結情報を生成し、連結情報生成部608に出力する。具体的には、第2の同義関係生成部602は、任意の因果関係フレーズペアの結果フレーズについて、以下の処理を行なう。
【0250】
すなわち、その因果関係フレーズペアの結果フレーズ(第1のフレーズとする。)の名詞と同じ名詞を含む原因フレーズを持つ因果関係フレーズペアを収集する。収集された因果関係フレーズペアの原因フレーズ(第2のフレーズとする。)について、そのフレーズ全体の極性が同じであれば、第1のフレーズを結果フレーズに持つ因果関係フレーズペアと、第2のフレーズを原因フレーズに持つ因果関係フレーズペアとを連鎖させる。そのために、連結情報として前者の識別子と後者の識別子とからなる順序対を連結情報生成部608に与える。
【0251】
第3の同義関係生成部604は、大量文書中におけるフレーズの出現文脈の類似性に基づき、因果的一貫性を判定し、2つの因果関係フレーズペアの連結情報を出力する。第3の同義関係生成部604は具体的には以下のような処理を実行する。なお、このために、分布類似度算出部616は、因果関係仮説DB416とWEBアーカイブ44とを参照し、因果関係仮説DB416に出現するフレーズの各組合せについて、WEBアーカイブ44における分布類似度を算出し、テンプレート分布類似度DB614に格納している。
【0252】
第3の同義関係生成部604は、因果関係フレーズペアDB70に記憶された因果関係フレーズペアのフレーズについて、同じ名詞を持ち、かつフレーズ全体の極性が同じフレーズペアの各々について、テンプレート分布類似度DB614から分布類似度を読み出す。この分布類似度がしきい値未満であればそのフレーズペアは捨てる。分布類似度がしきい値以上であれば、その一方を結果フレーズに持つ因果関係フレーズペアと、他方を原因フレーズに持つ因果関係フレーズペアとを連鎖させることができる。第3の同義関係生成部604は、そのような因果関係フレーズペアの識別子の順序対を連結情報生成部608に与える。
【0253】
連結関係生成部606は、意味的関係によるリンクによって2つの因果関係フレーズペアを連鎖させるための連結情報を出力する。具体的には連結関係生成部606は、以下のような処理を実行する。
【0254】
連結関係生成部606は、ある因果関係フレーズペアの結果フレーズに含まれる名詞(第1の名詞)と、他の因果関係フレーズペアの原因フレーズに含まれる名詞(第2の名詞)とからなる順序付の単語対が、単語対DB402に記憶されているか否かを判定する。単語対DB402にこの単語対が記憶されている場合、第1の名詞を含む結果フレーズと、第2の名詞を含む原因フレーズとの間には、この単語対の持つ意味的関係を表すリンクが成立しているものと考えられる。そこで連結関係生成部606は、そのような因果関係フレーズペアのペアについて、一方から他方への連結情報を生成し、連結情報生成部608に出力する。この場合の連結情報は、上記した第1の名詞を持つ結果フレーズを持つ因果関係フレーズペアの識別子と、第2の名詞を持つ原因フレーズを持つ因果関係フレーズペアの識別子とからなる順序対である。
【0255】
連結情報生成部608は、第1の同義関係生成部600、第2の同義関係生成部602、第3の同義関係生成部604及び連結関係生成部606から受けた連結情報に基づいて、各因果関係フレーズペアを第1層のノードとし、各ノードの因果関係フレーズペアから連鎖可能な因果関係フレーズペアをそのノードから分岐する第2層のノードとするツリーを生成し、連結情報生成部608の出力するツリーを記憶する連結関係DB610に格納する。このツリーの第1層のノードから第2層のノードをたどり、さらにその第2層のノードにより表される因果関係フレーズペアに相当する第1層のノードからさらに第2層のノードをたどる処理を繰返すことにより、任意の因果関係フレーズペアから任意の長さの社会シナリオ候補を生成できる。
【0256】
因果関係連結部612はこの操作を行なって所定の長さ以下の社会シナリオ候補を生成し、社会シナリオ候補DB618に出力する。
【0257】
図17に示す社会シナリオランキング部582は、社会シナリオ候補生成部580により生成された社会シナリオに対して、それを構成する因果関係の各々の強度に基づいてその社会シナリオのスコアを算出し、そのスコアがしきい値以上である社会シナリオを選択して社会シナリオDB38に出力する。
【0258】
図19を参照して、社会シナリオランキング部582は具体的には以下のような処理を行なう。まず社会シナリオランキング部582は、各社会シナリオについて、そのシナリオを構成する個々の因果関係の因果関係強度スコアを互いに乗算することによってその社会シナリオのスコアを算出する。ここでいう因果関係強度スコアとは、
図12のステップ454及び
図13のスコア算出部474により算出されるスコアである。このとき、
図18に示す第1の同義関係生成部600、第2の同義関係生成部602、第3の同義関係生成部604、及び連結関係生成部606による処理で連結された2つのフレーズ間には、ある定数を与える。これらは全て同じでもよいし、異なる値であってもよい。例えば因果的一貫性による連結の場合の因果関係強度スコアを、意味的関係によるリンクによる連結の場合のスコアより高くすることが考えられる。全体因果関係スコア算出部640は、このようにして社会シナリオごとに算出したスコアを付して社会シナリオをスコア付き社会シナリオ候補DB642に格納する。
【0259】
社会シナリオソート部644は、スコア付き社会シナリオ候補DB642に記憶された社会シナリオ候補を、そのスコアの降順にソートし、ソート後の社会シナリオ候補をソート済社会シナリオ候補DB646に格納する。
【0260】
社会シナリオ選択部648は、ソート済社会シナリオ候補DB646に記憶された社会シナリオのうち、スコアがしきい値以上のもののみを選択して社会シナリオDB38に出力する。
【0261】
以上のようにして、この社会シナリオ生成システム30により、WEBアーカイブ44に存在する因果関係フレーズのみでなく、単語対の意味的関係も含めた非常に多くのフレーズを因果関係により連鎖させた多数の社会シナリオを生成できる。その数を非常に多くできることはもちろん、上記した単語対の意味的関係により生成した因果関係仮説も社会シナリオの生成に用いるので、WEBアーカイブ44上に存在するフレーズだけではなく、現実にはWEBアーカイブ44に見出せないようなフレーズも含めた多様な社会シナリオを生成できる。その結果、あらゆるリスク及びチャンスを考慮に入れて判断を下す際に参考にできる多くの社会シナリオを提供できる。
【0262】
<第2の実施の形態>
上記第1の実施の形態では、社会シナリオのスコアを社会シナリオの生成過程で得られた各因果関係フレーズペアについて算出されたスコアの乗算で算出している。しかし、社会シナリオのランキング手法は、上記した実施の形態の手法には限定されない。この手法と異なる様々なランキング手法を採用できる。以下に述べる第2の実施の形態は、社会シナリオのスコアを、社会シナリオ又はその一部(「部分シナリオ」と呼ぶ。)がインターネット40のいくつの文書に掲載されているか、文書に掲載されている箇所と社会シナリオにおける部分シナリオとの一致度がどの程度かに基づいて社会シナリオのスコアを算出する。
【0263】
図20に示す社会シナリオランキング部670は、上のような処理により社会シナリオをランキングするためのものである。社会シナリオランキング部670は、
図17及び
図19に示す社会シナリオランキング部582に替えて使用できる。
【0264】
図20を参照して、本実施の形態に係る社会シナリオランキング部670は、
図19に示す全体因果関係スコア算出部640に代えて、インターネット40のどの文書に社会シナリオを構成する部分シナリオがどのように記述されているかに基づいて部分シナリオのスコアを算出する部分シナリオスコア算出部700と、部分シナリオスコア算出部700が算出する部分シナリオを社会シナリオごとに部分シナリオと関係付けて記憶する部分シナリオスコア記憶部702と、社会シナリオ候補DB618に記憶された社会シナリオ候補の各々に対して部分シナリオスコア算出部700による部分シナリオの算出が完了したことに応答して、それら部分シナリオスコアの乗算又は加算等、部分シナリオに対する増加関数として社会シナリオのスコアを算出し、社会シナリオに付してスコア付き社会シナリオ候補DB642に出力する全体因果関係スコア算出部704とを含む。なお、本実施の形態では、社会シナリオを構成する部分シナリオと全く同文のフレーズだけでなく、名詞を同じ単語クラスの他の名詞に置換したものを含むフレーズも、社会シナリオのフレーズと同一視してインターネット40を検索する。さらにこの実施の形態では、フレーズの名詞だけでなく、述語テンプレートも、極性が同じ他のテンプレートで置換したものを含むフレーズも、社会シナリオのフレーズと同一視してインターネット40を検索する。
【0265】
社会シナリオランキング部670は、他の多くの機能部と同様、コンピュータハードウェアと、そのコンピュータハードウェア上で実行されるコンピュータプログラムとにより実現できる。
図21に、そのためのコンピュータプログラムの制御構造をフローチャート形式で示す。なお、このプログラムは、ある社会シナリオに対して上記した処理を実行するためのものである。
【0266】
図21を参照して、部分シナリオスコア算出部700で実行されるプログラムは、処理対象の社会シナリオの全フレーズに対して以下の処理を実行するステップ740を含む。すなわち、ステップ740では、そのフレーズの名詞を、同じクラスの単語(同義語)で置換してそれぞれ新たなフレーズを生成するステップ742と、そのフレーズのテンプレートを、同じ極性の他のテンプレートで置換することにより、ステップ742で生成された新たなフレーズと組合せてさらに多くのフレーズを生成するステップ744と、ステップ744で生成された新たなフレーズ(以下、「言い換え句」)と、元のフレーズとを全て図示しない記憶装置に保存するステップ746とを含む。ステップ742、744及び746までがステップ740で各フレーズに対して実行される処理である。
【0267】
このプログラムはさらに、ステップ740が完了した後、得られるフレーズを組合せることで得られる部分シナリオの全てに対して以下の処理を実行するステップ748を含む。
【0268】
ステップ748は、インターネット40上の全文書に対して、以下の処理を実行するステップ750を含む。なお、ここでの全文書とは、インターネット40上の所定のサイト上に存在する文書のみに限定してもよい。
【0269】
ステップ750は、処理対象となっている文書が、処理対象となっている社会シナリオの部分シナリオのフレーズ又は言い換え句(ステップ746で保存されたもの)を全て含むか否かを判定し、結果に応じて制御を分岐させるステップ752と、ステップ752の判定が肯定的であるときに、その文書に出現しているフレーズ又は言い換え句が、その部分シナリオ内での元のフレーズと同一順で出現しているか否かを判定するステップ754と、ステップ754の判定が肯定的であるときに、その部分シナリオの出現数を1加算するステップ758と、ステップ754で否定的であるときに、処理対象の文書に現れているフレーズ又は言い換え句が、隣接するN文内にあるか否かを判定するステップ756とを含む。ステップ756でYESの場合、制御はステップ758に進む。ステップ756でNOの場合、及びステップ752でNOの場合、制御は次の文書に対する処理に進む。
【0270】
ステップ750の処理が全文書に対して終了すると制御はステップ760に進む。ステップ760では、処理中の部分シナリオに対するスコアが、ステップ758で計算された出現数に対する関数で、かつ出現数が多くなればなるほど結果が高くなるようなスコア算出関数によって算出される。
【0271】
ステップ748の処理が全ての部分シナリオに対して終了すると、制御はステップ762に進む。ステップ762では、処理中の社会シナリオのスコアが、その社会シナリオに含まれる部分シナリオのスコアの関数であり、かつ部分シナリオのスコアが高くなるほど値が高くなるようなスコア算出関数により算出され、処理中の社会シナリオにスコアとして付与される。
【0272】
<変形例>
上記した実施の形態については多くの変形が考えられる。以下、それらについて列挙する。
【0273】
例えば、社会シナリオのスコアリングについては、次のような手法を個別に、又はこれらを組合せて採用することが考えられる。
【0274】
(1)WEBアーカイブ44の文書に記述されている部分シナリオの最大長さが長いほど、社会シナリオのスコアが高くなるようにする。
【0275】
(2)同じ部分シナリオを記述している文書間にハイパーリンクが張られている場合、それら部分シナリオを含む社会シナリオのスコアをより高くする。
【0276】
(3)同じ部分シナリオを記述している2つの文書間にハイパーリンクが直接張られていなくても、別の1又は複数の文書を介してハイパーリンクが間接的に張られている場合に、社会シナリオのスコアを高くする。
【0277】
(4)文書に重要性のスコアをつけ、部分シナリオを記述している文書のスコアに応じて社会シナリオのスコアを増減させてもよい。この場合、文書の重要性のスコアとしては、例えばいわゆるPageRankの値などを用いることができる。また、文書が掲載されているサイトのドメインの種類により、その文書の重要性の軽重をつけるようにしてもよい。例えば政府系、教育機関系、国際機関系などのドメインのサイトに掲載された文書については、それ以外の文書より重要性のスコアを高めるようにしてもよい。匿名のブログなどについては、重要性のスコアを他より低くしてもよい。
【0278】
(5)文書に記述されている複数の部分シナリオが、1つの社会シナリオにおいて重なる部分を持っていれば、それらの部分シナリオのスコアを高くし、それらを含む社会シナリオのスコアをそれに伴って高くするようにしてもよい。この場合、重なる部分が広いほど、スコアが高くなるようにしてもよい。
【0279】
例えば、生成されたある社会シナリオ「a→b→c→d→e→f→g→…」を考える。この社会シナリオの第1の部分シナリオ「a→b→c→d」と第2の部分シナリオ「c→d→e→f」とを考えると、これら2つの部分シナリオは「c→d」を重複箇所として持つ。この場合、第1の部分シナリオは、第1のWEB文書に記述されており、第2の部分シナリオは第2及び第3のWEB文書に記述されているものとする。第1のWEB文書は1つのWEB文書に記述されているので、そのスコアを高くする。第2の部分シナリオは、2つの文書に記述されているので、第1の部分シナリオよりさらにスコアを高くする。両部分シナリオは重複する部分を持つので、これらはいずれもさらに重複箇所の広さ(2か所)に応じてスコアを高くする。
【0280】
(6)第2の実施の形態では、フレーズ中の名詞及び述語テンプレートを言い換えた言い換え句も含めて文書での部分シナリオの出現回数を計数している。しかし、本発明はそのような実施の形態には限定されない。名詞又は述語テンプレート若しくはその双方の言い換えを行なわない実施の形態も可能である。
【0281】
(7)他の社会シナリオと矛盾する内容の社会シナリオのスコアを下げるようにしてもよい。そのために、同じ原因フレーズから導かれる2つの社会シナリオにおいて、その一部に含まれる結果フレーズが互いに矛盾していたら、それら社会シナリオは矛盾しているとみなすことができる。矛盾するフレーズは、予め手作業により辞書形式で準備しておいてもよいし、第1の実施の形態で述べた因果関係フレーズペアと同様の手法で、自動的に収集することもできる。矛盾するフレーズペア(矛盾ペア)を収集する場合には、
図12に示す処理に代えて、以下のような条件でフレーズペアを収集する。
【0282】
(1)両フレーズとも、1つの名詞と1つの活性又は不活性テンプレートからなる。例えば「(風邪)に罹る」と「(風邪)を予防する」のようなものである。
【0283】
(2)両フレーズに含まれる2つの名詞は、互いに同義(又は同一)である。例えば<風邪、感冒>又は<風邪、風邪>のような組合せである。
【0284】
(3)両フレーズに含まれる2つのテンプレートは、一方が活性で他方が不活性である。例えば「に罹る」(活性)と「を予防する」(不活性)というペアである。
【0285】
(4)2つのテンプレートは、インターネット上で共起する(係り受け関係を結ぶ)名詞を多く共有する。すなわち、これら2つのテンプレートは、分布類似度が高い。例えば、「に罹る」と共起する名詞として風邪、感冒、肺炎、…等が考えられるのに対し、「を予防する」と共起する名詞としては、風邪、感冒、肺炎、火事、災害等が考えられ、両者の間の分布類似度は高い。
【0286】
(5)各フレーズは、インターネット上で所定のしきい値以上の出現頻度を持つ。すなわち、各フレーズの名詞とテンプレートとは、このしきい値以上の頻度でもって係り受け関係を結ぶ。例えば、「(風邪)に罹る」の出現頻度≧しきい値、及び「(風邪)を予防する」の出現頻度≧しきい値がともに成立する必要がある。
【0287】
さらに、述語テンプレートが同義又は類義であっても、名詞が反義語であるようなフレーズペアを矛盾関係フレーズペアとしてもよい。テンプレートの同義、類義の判定には、大量の文書コーパス(例えばWEBアーカイブ44)における両者の分布類似度を指標として用いることもできるし、人手で検証したデータベース等を用いることもできる。名詞の反義の判定にも同様の手法を用いることができる。
【0288】
(8)ある1つの社会シナリオに、互いに矛盾するフレーズが含まれている場合には、その社会シナリオのスコアを下げるようにしてもよい。例えば「…→クーデターが起きる→治安が悪化する→…→治安が良くなる」等である。
【0289】
[コンピュータによる実現]
上記実施の形態に係るシステムは、コンピュータハードウェアと、そのコンピュータハードウェア上で実行されるコンピュータプログラムとにより実現できる。
図22はこのコンピュータシステム930の外観を示し、
図23はコンピュータシステム930の内部構成を示す。
【0290】
図22を参照して、このコンピュータシステム930は、メモリポート952及びDVD(Digital Versatile Disc)ドライブ950を有するコンピュータ940と、キーボード946と、マウス948と、モニタ942とを含む。
【0291】
図23を参照して、コンピュータ940は、メモリポート952及びDVDドライブ950に加えて、CPU(中央処理装置)956と、CPU956、メモリポート952及びDVDドライブ950に接続されたバス966と、ブートアッププログラム等を記憶する読出専用メモリ(ROM)958と、バス966に接続され、プログラム命令、システムプログラム、及び作業データ等を記憶するランダムアクセスメモリ(RAM)960とを含む。コンピュータシステム930はさらに、他端末との通信を可能とするネットワークへの接続を提供するネットワークインターフェイス(I/F)944を含む。
【0292】
コンピュータシステム930を上記した各実施の形態のシステムを構成する各機能部として機能させるためのコンピュータプログラムは、DVDドライブ950又はメモリポート952に装着されるDVD962又はリムーバブルメモリ964に記憶され、さらにハードディスク954に転送される。又は、プログラムは図示しないネットワークを通じてコンピュータ940に送信されハードディスク954に記憶されてもよい。プログラムは実行の際にRAM960にロードされる。DVD962から、リムーバブルメモリ964から、又はネットワークを介して、直接にRAM960にプログラムをロードしてもよい。
【0293】
このプログラムは、コンピュータ940を、上記実施の形態に係るシステムの各機能部として機能させるための複数の命令を含む。この動作を行なわせるのに必要な基本的機能のいくつかはコンピュータ940上で動作するオペレーティングシステム(OS)若しくはサードパーティのプログラム、又は、コンピュータ940にインストールされる各種プログラミングツールキットのモジュールにより提供される。したがって、このプログラムはこの実施の形態のシステム及び方法を実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令のうち、所望の結果が得られるように制御されたやり方で適切な機能又はプログラミングツールキット内の適切なプログラムツールを呼出すことにより、上記したシステムとしての機能を実現する命令のみを含んでいればよい。コンピュータシステム930の動作は周知である。したがってここでは繰返さない。
【0294】
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内での全ての変更を含む。