(57)【要約】【課題】文書間の関係を抽出する際に、様々な関係を抽出できるようにする。【解決手段】キーワード対生成部は、２つの文書からそれぞれ抽出された２つのキーワードの対に関して、単語間関係辞書記憶部から読み出した単語間の関係に基づいて、キーワードの対が直接の関係を有する場合、またはキーワードの対が共通の他の単語との間で直接の関係を有する場合に、そのキーワードの対をキーワード対として出力する。キーワード間関係抽出部は、キーワード対生成部が出力したキーワード対に関して、単語間関係辞書記憶部から読み出した単語間の関係に基づいて、キーワード対が直接の関係を有する場合には当該関係を出力するとともに、キーワード対が共通の他の単語との間で直接の関係を有する場合には当該他の単語および当該キーワード対に含まれるキーワードから当該他の単語への関係を出力する【選択図】図１
2015200962.tif 000002
【特許請求の範囲】
【請求項１】
入力された文書から前記文書の複数のキーワードを抽出するとともに前記文書における各々の前記キーワードの重要度を示すスコアを出力するキーワード抽出部と、
２つの前記文書からそれぞれ抽出された２つのキーワードの対に関して、単語の対と前記単語間の関係とを表すデータを保持する単語間関係辞書記憶部から読み出した単語間の関係に基づいて、前記キーワードの対が直接の関係を有する場合、または前記キーワードの対が共通の他の単語との間で直接の関係を有する場合に、そのキーワードの対をキーワード対として出力するキーワード対生成部と、
前記キーワード対生成部が出力した前記キーワード対に関して、前記単語間関係辞書記憶部から読み出した単語間の関係に基づいて、前記キーワード対が直接の関係を有する場合には当該関係を出力するとともに、前記キーワード対が共通の他の単語との間で直接の関係を有する場合には当該他の単語および当該キーワード対に含まれる前記キーワードから当該他の単語への関係を出力する、キーワード間関係抽出部と、
を具備することを特徴とする文書間関係抽出装置。
【請求項２】
前記キーワード間関係抽出部は、前記キーワード対が有する関係のうち、前記単語間関係辞書記憶部に出現する数が最も少ない関係を、最適な関係として出力する、
ことを特徴とする請求項１に記載の文書間関係抽出装置。
【請求項３】
前記キーワード対生成部によって生成されたキーワード対と、前記キーワード対に関して前記キーワード間関係抽出部によって出力される前記関係と、を含む説明文データを生成する説明生成部、
をさらに具備することを特徴とする請求項１または２のいずれか一項に記載の文書間関係抽出装置。
【請求項４】
コンピューターを、
入力された文書から前記文書の複数のキーワードを抽出するとともに前記文書における各々の前記キーワードの重要度を示すスコアを出力するキーワード抽出部、
２つの前記文書からそれぞれ抽出された２つのキーワードの対に関して、単語の対と前記単語間の関係とを表すデータを保持する単語間関係辞書記憶部から読み出した単語間の関係に基づいて、前記キーワードの対が直接の関係を有する場合、または前記キーワードの対が共通の他の単語との間で直接の関係を有する場合に、そのキーワードの対をキーワード対として出力するキーワード対生成部、
前記キーワード対生成部が出力した前記キーワード対に関して、前記単語間関係辞書記憶部から読み出した単語間の関係に基づいて、前記キーワード対が直接の関係を有する場合には当該関係を出力するとともに、前記キーワード対が共通の他の単語との間で直接の関係を有する場合には当該他の単語および当該キーワード対に含まれる前記キーワードから当該他の単語への関係を出力する、キーワード間関係抽出部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自然言語処理の技術分野に属するものであり、文書間関係抽出装置およびそのプログラムに関する。
【背景技術】
【０００２】
文書間の関係を抽出する技術において、従来は、文書に含まれる単語を手掛かりとして、文書間に「同等」の関係があるか否かを判定したり、文書間に「推移」の関係かあるか否かを判定したりする技術が提案されている。非特許文献１には、文書を横断して、文間の「同等」を特定するモデルと、文間の「推移」を特定するモデルとが記載されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】宮部泰成，高村大也，奥村学，「文書横断文間関係の特定」，言語処理学会第１２回年次大会，２００６年３月，ｐｐ．４９６−４９９．
【発明の概要】
【発明が解決しようとする課題】
【０００４】
文書間の関係については、「同等」関係や「推移」関係だけではなく、他の様々な関係を抽出できるようにすることが望まれる。本発明は、このような事情を考慮してなされたものであり、文書間における、「同等」関係や「推移」関係以外の関係も抽出することのできる文書間関係抽出装置およびプログラムを提供するものである。
【課題を解決するための手段】
【０００５】
上記の課題を解決するための手段として、文書間関係抽出装置およびプログラムは、２つの文書のそれぞれから、重要な複数のキーワードを抽出し、大量の文書集合から自動獲得した単語間関係辞書を利用してキーワード間の最適な関係を推定する。これにより、２つの文書間の関係を推定する。
【０００６】
［１］本発明の一態様による文書間関係抽出装置は、入力された文書から前記文書の複数のキーワードを抽出するとともに前記文書における各々の前記キーワードの重要度を示すスコアを出力するキーワード抽出部と、２つの前記文書からそれぞれ抽出された２つのキーワードの対に関して、単語の対と前記単語間の関係とを表すデータを保持する単語間関係辞書記憶部から読み出した単語間の関係に基づいて、前記キーワードの対が直接の関係を有する場合、または前記キーワードの対が共通の他の単語との間で直接の関係を有する場合に、そのキーワードの対をキーワード対として出力するキーワード対生成部と、前記キーワード対生成部が出力した前記キーワード対に関して、前記単語間関係辞書記憶部から読み出した単語間の関係に基づいて、前記キーワード対が直接の関係を有する場合には当該関係を出力するとともに、前記キーワード対が共通の他の単語との間で直接の関係を有する場合には当該他の単語および当該キーワード対に含まれる前記キーワードから当該他の単語への関係を出力する、キーワード間関係抽出部と、を具備する。
【０００７】
［２］また、本発明の一態様は、上記の文書間関係抽出装置において、前記キーワード間関係抽出部は、前記キーワード対が有する関係のうち、前記単語間関係辞書記憶部に出現する数が最も少ない関係を、最適な関係として出力する、ことを特徴とする。
【０００８】
［３］また、本発明の一態様は、上記の文書間関係抽出装置において、前記キーワード対生成部によって生成されたキーワード対と、前記キーワード対に関して前記キーワード間関係抽出部によって出力される前記関係と、を含む説明文データを生成する説明生成部、をさらに具備する。
【０００９】
［４］また、本発明の一態様は、コンピューターを、入力された文書から前記文書の複数のキーワードを抽出するとともに前記文書における各々の前記キーワードの重要度を示すスコアを出力するキーワード抽出部、２つの前記文書からそれぞれ抽出された２つのキーワードの対に関して、単語の対と前記単語間の関係とを表すデータを保持する単語間関係辞書記憶部から読み出した単語間の関係に基づいて、前記キーワードの対が直接の関係を有する場合、または前記キーワードの対が共通の他の単語との間で直接の関係を有する場合に、そのキーワードの対をキーワード対として出力するキーワード対生成部、前記キーワード対生成部が出力した前記キーワード対に関して、前記単語間関係辞書記憶部から読み出した単語間の関係に基づいて、前記キーワード対が直接の関係を有する場合には当該関係を出力するとともに、前記キーワード対が共通の他の単語との間で直接の関係を有する場合には当該他の単語および当該キーワード対に含まれる前記キーワードから当該他の単語への関係を出力する、キーワード間関係抽出部、として機能させるためのプログラムである。
【発明の効果】
【００１０】
本発明によれば、２つの文書がどのような関係を持つかを推定し、出力できる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態による文書間関係抽出装置の概略機能構成を示すブロック図である。
【図２】同実施形態による文書間関係抽出装置の全体的な処理の流れを示すフローチャートである。
【図３】同実施形態によるキーワード対生成部によるキーワード対生成処理の手順を示すフローチャートである。
【図４】同実施形態によるキーワード間関係抽出部がキーワード間の関係を抽出する処理の手順を示すフローチャートである。
【図５】同実施形態による文書間関係抽出装置が処理結果を出力した例を示す概略図である。
【図６】同実施形態による単語間関係辞書記憶部が記憶する単語間関係辞書の構成を示す概略図である。
【図７】同実施形態による単語共起辞書記憶部が記憶する単語共起辞書の構成を示す概略図である。
【発明を実施するための形態】
【００１２】
次に、本発明の一実施形態について、図面を参照しながら説明する。
図１は、本実施形態による文書間関係抽出装置の概略機能構成を示すブロック図である。図示するように、文書間関係抽出装置１は、文書取得部１０と、キーワード抽出部１１と、キーワード対生成部１２と、キーワード間関係抽出部１３と、説明生成部１４と、単語間関係辞書記憶部２１と、単語共起辞書記憶部２２と、を含んで構成される。
【００１３】
文書取得部１０は、外部から文書データを取得する。文書取得部１０は、少なくとも２つの文書データを取得する。後の処理では、それらの２つの文書間での関係を表す情報が抽出される。文書データは、例えば、いわゆるテキストファイルの形式を有している。
キーワード抽出部１１は、入力された文書から、その文書の複数のキーワードを抽出するとともに、その文書における各キーワードの重要度を示すスコアを出力するものである。具体的には、キーワード抽出部１１は、文書取得部１０が取得した文書データのうちの２つの文書データそれぞれから、複数のキーワードを抽出する。そして、キーワード抽出部１１は、各文書に対応して、キーワード集合のデータを出力する。
【００１４】
キーワード対生成部１２は、２つの文書からそれぞれ抽出された２つのキーワードの対に関して、単語間関係辞書記憶部２１から読み出した単語間の関係に基づいて、キーワードの対が直接の関係を有する場合、またはキーワードの対が共通の他の単語との間で直接の関係を有する場合に、そのキーワードの対をキーワード対として出力する。つまり、キーワード対生成部１２は、キーワード抽出部１１によって抽出された、２つの文書データに対応するキーワード集合のそれぞれから、１つずつキーワードを取り出し、両文書間のキーワード対のデータを生成する。
【００１５】
キーワード間関係抽出部１３は、キーワード対生成部１２が出力したキーワード対に関して、単語間関係辞書記憶部２１から読み出した単語間の関係に基づいて、そのキーワード対が直接の関係を有する場合には当該関係を出力するとともに、そのキーワード対が共通の他の単語との間で直接の関係を有する場合には当該他の単語および当該キーワード対に含まれるキーワードから当該他の単語への関係を出力するものである。つまり、キーワード間関係抽出部１３は、キーワード対生成部１２が生成したキーワード対に対して、その対をなすキーワード間の関係を抽出する処理を行う。なお、キーワード間関係抽出部１３は、この処理の際に、単語間関係辞書記憶部２１のほかに、単語共起辞書記憶部２２を参照する。
【００１６】
説明生成部１４は、キーワード対抽出部によって抽出されたキーワード対と、キーワード対に関してキーワード間関係抽出部によって出力される関係と、を含む説明文データを生成する。言い換えれば、説明生成部１４は、キーワード間関係抽出部１３が抽出した関係と、そのキーワードとを利用して、元の２つの文書データ間の関係を説明する文を生成する処理を行う。
【００１７】
単語間関係辞書記憶部２１は、単語の対とその２つの単語間の関係とを表すデータを保持するものである。ここで、単語間の関係とは、例えば、類似関係、因果関係、上位下位関係、属性関係などである。単語間の関係を表す辞書データは、ウェブにおけるテキストデータを元に予め獲得しておく。テキストデータを元に単語間の関係を自動的に獲得するためには、既存技術に属するものである単語間関係獲得ツールなどを利用することができる。
単語間関係辞書のデータについては、後で図６を参照しながら説明する。
なお、単語間関係辞書記憶部２１を文書間関係抽出装置１内に設ける代わりに、文書間関係抽出装置１の外部の装置として単語間関係辞書記憶部２１の機能を有する装置を設けても良い。この場合には、文書間関係抽出装置１と単語間関係記憶部２１との間で、有線または無線の通信媒体を介した通信を行えるようにする。これにより、文書間関係抽出装置１は、単語間関係辞書記憶部２１から必要なデータを取得する。
【００１８】
単語共起辞書記憶部２２は、単語間の共起関係を辞書データとして保持するものである。ここで、共起関係のデータとは、２単語の共起頻度に基づく類似性を表すデータであり、一例としては、Ｄｉｃｅ係数などである。このような共起頻度のデータを得るためには、例えば、ウェブにおけるテキストデータなどを対象として、２つの単語が同一文中で共起した回数をカウントし、カウント結果に基づいてＤｉｃｅ係数等の値を予め算出しておくようにする。また、既に公開されている単語共起頻度データベースのデータなどを利用することもできる。
単語共起辞書のデータについては、後で図７を参照しながら説明する。
【００１９】
次に、文書間関係抽出装置１の全体の処理手順について説明する。
図２は、文書間関係抽出装置１の全体的な処理の流れを示すフローチャートである。以下では、このフローチャートに沿って、説明する。このフローチャートでは、２つの文書データ（文書１および文書２）を入力し、それらの文書の間の関係を抽出する処理を示している。なお、３つ以上の文書データを入力し、それらのうちの２つの文書の間の関係を抽出するようにしても良い。
【００２０】
まずステップＳ１−１において、キーワード抽出部１１は、文書１および文書２のそれぞれからｎ個（ｎは正整数）のキーワードを抽出する。文書１および文書２は、予め文書取得部１０によって取得されているものである。キーワード抽出部１１は、それぞれの文書にとって重要なｎ個の単語をキーワードとして抽出する。文書から重要なキーワードを抽出する処理自体は、従来技術を用いて実施することができる。キーワード抽出部１１が抽出するキーワード集合は、元の文書の特徴をよく表すキーワードの集合である。そのためには、キーワード抽出部１１は、例えばＴＦＩＤＦの値を基準として、各文書から上位ｎ個のキーワードを抽出する。ＴＦＩＤＦは、単語の出現頻度（Term Frequency）と逆文書頻度（Inverse Document Frequency）との積である。なお、キーワード抽出部１１は、各文書につきｎ個のキーワードを出力するとともに、各キーワードの重要さを表す重みの値を出力する。この重みの値としては、ＴＦＩＤＦ値そのものを用いても良いし、ＴＦＩＤＦ値と順序関係が整合するような他の重み値を用いても良い。
【００２１】
次にステップＳ１−２において、キーワード対生成部１２は、キーワード抽出部１１によって抽出された１文書あたりｎ個のキーワードと、各キーワードに関連付けられた重み値とに基づいて、キーワード対を生成する処理を行う。
その処理の結果、キーワード対生成部１２は、Ｎ個（Ｎは正整数）のキーワード対を生成する。Ｎの値は予め設定可能とする。一例として、Ｎ＝４を予め設定しておく。また、キーワード対生成部１２は、各々のキーワード対のランクスコアを算出する。なお、このキーワード対生成部１２による処理の詳細な手順については後述する（図３参照）。
【００２２】
次にステップＳ１−３において、キーワード間関係抽出部１３は、キーワード対生成部１２によって生成されたＮ個のキーワード対のそれぞれに対して、キーワード間の関係を抽出する処理を行う。このとき、キーワード間関係抽出部１３は、キーワード対生成部１２の処理において算出された各キーワード対のランクスコアを用いる。
【００２３】
ここで、キーワード間関係抽出部１３による出力は、次の２パターンのうちのいずれかである。第１のパターンは、キーワード対を構成する２つのキーワードが直接的な関係を有する場合であり、このとき、キーワード間関係抽出部１３は、そのキーワード対と、その関係名を出力する。第２のパターンは、キーワード対を構成する２つのキーワードのそれぞれが、ある共通単語と直接的な関係を有する場合であり、このとき、キーワード間関係抽出部１３は、そのキーワード対と、その共通単語と、そのキーワードとその共通単語とをつなぐ関係名とを出力する。
【００２４】
重要な（ランクの高い）キーワード対を元に、キーワード間関係抽出部１３によって抽出され、出力される関係が、２つの文書の関係を表す。
【００２５】
次にステップＳ１−４において、説明生成部１４は、各々のキーワード対に対応する説明文を生成する。
【００２６】
具体的には、説明生成部１４は、各関係について、「○○つながり」というパターンによる文言を出力する。また、スコアを出力する。キーワード対を構成する２つのキーワードを直接つなぐ関係名が得られる場合には、説明生成部１４は、「○○つながり」という出力パターンの「○○」をその関係名で置換する。キーワード対を構成する２つのキーワードのそれぞれと同一の関係を持つ共通単語がえら得る場合には、説明生成部１４は、「○○つながり」という出力パターンの「○○」をその共通単語で置換する。
【００２７】
さらに、説明生成部１４は、あらかじめ記述して記憶しておいたテンプレートデータを用いて、補助的な説明となる文を生成する。
【００２８】
例えば、キーワード間関係抽出部１３からの出力が、キーワード対と、それらのキーワードを直接つなぐ関係名である場合は、説明生成部１４が用いるテンプレートは、「＜キーワードｂ＞は＜キーワードａ＞の＜関係名＞」というものである。このテンプレートにおいて、＜キーワードｂ＞と＜キーワードａ＞と＜関係名＞とは、適宜、具体的な単語や関係名で置き換えられる部分である。
具体的には、例えば、キーワードａが「脳卒中」であり、キーワードｂが「動脈硬化」であり、それらを直接つなぐ関係名が「原因」の場合、説明生成部１４は、「原因つながり。動脈硬化は脳卒中の原因。」という出力を生成する。
【００２９】
また、キーワード間関係抽出部１３からの出力が、キーワード対と、共通単語と、そのキーワードとその共通単語との間の関係名である場合は、説明生成部１４が用いるテンプレートは、その関係名に依り異なるものである。
具体的には、例えば、キーワードａが「脳卒中」であり、キーワードｂが「心不全」であり、これらのキーワードと関係を有する共通単語が「疾患」であり、キーワードと共通単語の関係名がともに「上位語」の場合は、説明生成部１４は、「疾患つながり。脳卒中
は心不全と同じ上位語（疾患）を持つ。」と出力する。
なお、説明生成部１４による出力の例は、後で、図５を参照しながら、説明する。
【００３０】
次に、装置内の主要な処理部の処理について説明する。
図３は、キーワード対生成部１２がキーワード対を生成する処理の詳細を示すフローチャートである。ここでは、キーワード対生成の処理の元となる文書のペアを、文書ａおよび文書ｂと呼ぶ。そして、キーワード対を生成する処理を行うための、キーワード対生成部１２への入力は、文書ａから抽出したキーワード集合｛ｗａ１，ｗａ２，・・・ｗａｎ｝とその重みのデータ、および文書ｂから抽出したキーワード集合｛ｗｂ１，ｗｂ２，・・・ｗｂｎ｝とその重みのデータである。これらの入力データは、キーワード抽出部１１の処理の結果として得られる。
【００３１】
まずステップＳ２−１において、キーワード対生成部１２は、文書ａから抽出したキーワード集合と文書ｂから抽出したキーワード集合から、それぞれ１個のキーワードｗａｉとｗｂｊとを抽出し、これらによるキーワード対候補（ｗａｉ，ｗｂｊ）を生成する。このとき、各々のキーワード集合からのキーワードの選択のしかたは任意である。
【００３２】
次にステップＳ２−２において、キーワード対生成部１２は、キーワードｗａｉとｗｂｊの各々に付与された重みにより文書中でのランクを求め、このランクの和をキーワード対候補（ｗａｉ，ｗｂｊ）の重みｒａｎｋ＿ｓｃｏｒｅ（ｉ，ｊ）とする。つまり、ｒａｎｋ＿ｓｃｏｒｅ（ｉ，ｊ）＝ｒａｎｋａ（ｉ）＋ｒａｎｋｂ（ｊ）である。ここで、ｒａｎｋａ（ｉ）は、文書ａにおけるキーワードｗａｉのランクである。また、ｒａｎｋｂ（ｊ）は、文書ｂにおけるキーワードｗｂｊのランクである。例えば、キーワードｗａｉが文書ａにおいて最も大きな重みを持つキーワードであり、且つ、キーワードｗｂｊが文書ｂにおいて最も大きな重みを持つキーワードである場合、ｒａｎｋａ（ｉ）＝１、且つ、ｒａｎｋｂ（ｊ）＝１である。この場合、ｒａｎｋ＿ｓｃｏｒｅ（ｉ，ｊ）＝ｒａｎｋａ（ｉ）＋ｒａｎｋｂ（ｊ）＝１＋１＝２である。
【００３３】
次にステップＳ２−３において、キーワード対生成部１２は、生成するキーワード対をカウントするための変数ｃｏｕｎｔＡを１にセットする。この変数のためには、例えば、半導体メモリの所定の領域を割り当てる。
【００３４】
次にステップＳ２−４において、キーワード対生成部１２は、ステップＳ２−１で生成したキーワード対候補をすべて処理したか否かを判定する。すべて処理し終えている場合（ステップＳ２−４：ＹＥＳ）には、このフローチャート全体の処理を終了する。すべてを処理し終えていない場合（ステップＳ２−４：ＮＯ）には、次のステップＳ２−５に移る。
【００３５】
ステップＳ２−５に進んだ場合には、同ステップにおいてキーワード対生成部１２は、残っているキーワード対の中から１つのキーワード対を処理対象として選択する。このとき、キーワード対生成部１２は、ｒａｎｋ＿ｓｃｏｒｅ（ｉ，ｊ）の昇順に選択する。つまり、キーワード対生成部１２は、ｒａｎｋ＿ｓｃｏｒｅ（ｉ，ｊ）の値の小さいものを優先して（言い換えれば、ランクの高いキーワード対を優先して）、処理対象のキーワード対を処理対象として選択する。なお、同じランクスコア値のキーワード対が複数存在する場合、キーワード間関係抽出部１３は、下に列挙する優先順（ａ）〜（ｅ）のいずれかにより、処理対象となるキーワード対を決定する。優先順とは即ち、（ａ）キーワード対を構成する２個のキーワードのうちのいずれか一方の元の文書におけるランクの値が小さい順、言い換えれば、キーワード対を構成する２個のキーワードのそれぞれの元の文書におけるランクの、最小値の値が小さい順。（ｂ）キーワード対を構成する２個のキーワードのそれぞれの元の文書におけるランクの差の絶対値が小さい順。（ｃ）疑似乱数等によりランダムに決定される順。（ｄ）上記（ａ）と上記（ｃ）の組み合わせ。（ｅ）上記（ｂ）と上記（ｃ）の組み合わせ。
【００３６】
次にステップＳ２−６において、キーワード対生成部１２は、処理対象のキーワード対の両者が直接関係を持つか、または、キーワード対の両者がある共通の単語との間で関係を持つかを判定する。そのいずれかの条件に該当する場合（ステップＳ２−６：ＹＥＳ）には、次のステップＳ２−７に進む。処理対象のキーワード対がいずれの条件にも該当しない場合（ステップＳ２−６：ＹＥＳ）には、次のキーワード対候補の処理のために、ステップＳ２−４に戻る。なお、本ステップにおいて単語と単語とが関係を有するか否かを判定するために、キーワード対生成部１２は、単語間関係辞書記憶部２１を参照する。単語間関係辞書記憶部２１は、ある単語と別の単語とがどのような関係を有するかを表す情報を記憶する。関係とは、例えば、類似関係、因果関係、上位下位関係、属性関係などである。
【００３７】
例えば、単語間関係辞書記憶部２１は、下の（１）および（２）のような関係を表すデータを含んでいる。
（１）脳卒中  −  ［関係：因果関係］  −  動脈硬化
（２）心筋梗塞  −  ［関係：因果関係］  −  動脈硬化
つまり、「脳卒中」と「動脈硬化」とが「因果関係」を有しており、且つ、「心筋梗塞」と「動脈硬化」とが「因果関係」を有している。このとき、次の通りである。即ち、例えば、「脳卒中」と「動脈硬化」とは直接関係を有する。また、例えば、「脳卒中」と「心筋梗塞」とは、それぞれ、「動脈硬化」という共通の単語との間で関係（因果関係）を有する。
【００３８】
次にステップＳ２−７に進んだ場合、同ステップおいて、キーワード対生成部１２は、現在処理中のキーワード対の候補を、キーワード対の一つとして出力に追加する。言い換えれば、キーワード対生成部１２は、候補であるキーワードの対が、直接の関係を有する場合、または、共通の単語との間で関係を有する場合に、その対を、キーワード対の一つとして生成する。
【００３９】
そして、ステップＳ２−８において、キーワード対生成部１２は、変数ｃｏｕｎｔＡの値に１を加算することによって、この変数を更新する。
前述の通り、この変数ｃｏｕｎｔＡは生成するキーワード対をカウントするためのものであり、ここで１を加算することは、上のステップＳ２−７においてキーワード対が１つ生成されることに対応している。
次にステップＳ２−９において、キーワード対生成部１２は、変数ｃｏｕｎｔＡの値がＮより大きいか否かを判定する。つまり、ｃｏｕｎｔＡ＞Ｎの不等式が成立するか否かを判定する。Ｎの値は、前述の通りである。変数ｃｏｕｎｔＡの値がＮより大きい場合（ステップＳ２−９：ＹＥＳ）には、このフローチャート全体の処理を終了する。その時点で、キーワード対生成部１２は、Ｎ個のキーワード対を出力済である。変数ｃｏｕｎｔＡの値がＮ以下である場合（ステップＳ２−９：ＮＯ）には、次のキーワード対候補の処理のために、ステップＳ２−４に戻る。
【００４０】
上記の一連の処理により、キーワード対生成部１２は、キーワード対候補の中から、ランクのより高いキーワード対を優先して、且つ、所定の関係（ステップＳ２−６の判定がＹＥＳとなるような関係）を満たすＮ個のキーワード対を出力する。ただし、そのようなキーワード対候補がＮ個に満たない場合には、キーワード対生成部１２は、Ｎ個未満のキーワード対を出力する（ステップＳ２−４における判定結果がＹＥＳの場合）。また、キーワード対生成部１２は、出力したキーワード対にそれぞれ対応するランクスコアｒａｎｋ＿ｓｃｏｒｅ（ｉ，ｊ）の値を出力する。
【００４１】
図４は、キーワード間関係抽出部１３がキーワード間の関係を抽出する処理の詳細を示すフローチャートである。この処理の前提として、キーワード間関係抽出部１３は、キーワード対生成部１２が出力したキーワード対集合と、キーワード対のランクスコアを取得する。以下、フローチャートに沿って説明する。
【００４２】
まずステップＳ３−１において、キーワード間関係抽出部１３は、関係の出力数をカウントするための変数ｃｏｕｎｔＢを１にセットする。この変数のために、例えば、半導体メモリの所定の領域を割り当てておく。
【００４３】
次にステップＳ３−２において、キーワード間関係抽出部１３は、取得したキーワード対の中から１つのキーワード対を処理対象として抽出する。このとき、キーワード間関係抽出部１３は、未処理のキーワード対の集合の中から、ランクスコアの値の昇順に、キーワード対を選択して抽出する。つまり、キーワード間関係抽出部１３は、ランクの高い順に、キーワード対を処理する。
【００４４】
次にステップＳ３−３において、キーワード間関係抽出部１３は、前述の単語間関係辞書記憶部２１を参照することにより、処理対象のキーワード対が直接関係を持つかどうかを判定する。そのキーワード対が直接関係を持つ場合（ステップＳ３−３：ＹＥＳ）にはステップＳ３−４に進む。そのキーワード対が直接関係を持たない場合（ステップＳ３−３：ＮＯ）にはステップＳ３−５に進む。
【００４５】
次にステップＳ３−４に進んだ場合、同ステップにおいて、キーワード間関係抽出部１３は、処理対象のキーワード対に関する関係名のランキングを行い、最適な関係名を選択する。対象としているキーワード対が１個だけの関係を有する場合には、その関係名が最適な関係名である。一方で、対象としているキーワード対が複数の関係を持つ場合がある。一例として、「ターミネーター２」という単語と「ジェームズ・キャメロン」という単語との間には、２つの関係が存在する。第１の関係は映画作品と監督との関係である。第２の関係は映画監督と脚本家（ライター）との関係である。これらの関係は、単語間関係辞書のエントリーとして単語間関係辞書記憶部２１が保持しているものである。ここで、特定のキーワード対に複数の関係名が存在するとき、キーワード間関係抽出部１３は、それらの関係名のうち、単語間関係辞書全体に出現する数が最も少ない関係名を、最適な関係名として選択する。
【００４６】
ただし、予め設定した数値Ｌよりも出現数が少ない関係名については、エラーとみなして、その関係名を選択しないようにしても良い。Ｌは、正の数であり、例えば、Ｌ＝１０とする。このように、出現数が少なすぎる関係名を除外するのは、そのような関係名が誤りによって単語間関係辞書に含まれている場合を考慮しているためである。
【００４７】
次にステップＳ３−５に進んだ場合、対象のキーワード対は直接の関係を持たないものであるので、その対に含まれる２つのキーワードのそれぞれは、ある共通の単語との間で関係を有するものである。また、そのような共通単語が複数存在する場合もあり得る。同ステップにおいて、キーワード間関係抽出部１３は、最適な関係名を選択する。例えば、キーワード「脳卒中」とキーワード「心筋梗塞」は、他の単語との間で、次に列挙する関係を持つ。
（１）脳卒中  −  ［関係：因果関係］  −  動脈硬化
（２）心筋梗塞  −  ［関係：因果関係］  −  動脈硬化
（３）脳卒中  −  ［関係：上位下位関係］  −  病気
（４）心筋梗塞  −  ［関係：上位下位関係］  −  病気
このとき、キーワード対「脳卒中」および「心筋梗塞」は、「因果関係」という関係を持つ「動脈硬化」という共通の単語を有する。また、同キーワード対は、「上位下位関係」という関係を持つ「病気」という共通の単語を有する。
【００４８】
上の（１）から（４）までの単語間関係は単語間関係辞書に登録されているため、キーワード間関係抽出部１３は、キーワード「脳卒中」とキーワード「心筋梗塞」とが関係をもつ共通の単語として「動脈硬化」と「病気」を抽出する。
そして、キーワード間関係抽出部１３は、対象のキーワード対に対する関係名をランキングし、最もふさわしい関係名を選択する。
【００４９】
例えば、キーワード間関係抽出部１３は、文書ａからのキーワードと共通単語との間の類似度と、文書ｂからのキーワードと共通単語との間の類似度との和を計算する。つまり、キーワード間関係抽出部１３は、次の式に表す計算を行い、Ｓｃｏｒｅ（脳卒中，心筋梗塞｜動脈硬化）、および、Ｓｃｏｒｅ（脳卒中，心筋梗塞｜病気）の２つのスコアの値を得る。
【００５０】
Ｓｃｏｒｅ（脳卒中，心筋梗塞｜動脈硬化）＝
ｄｉｃｅ（脳卒中，動脈硬化）＋ｄｉｃｅ（心筋梗塞，動脈硬化）  ・・・式１
Ｓｃｏｒｅ（脳卒中，心筋梗塞｜病気）＝
ｄｉｃｅ（脳卒中，病気）＋ｄｉｃｅ（心筋梗塞，病気）  ・・・式２
これら２つの式のうちの前者は、「脳卒中」と「心筋梗塞」という単語ペアに関して、「動脈硬化」を共通単語としたときの関係名のスコアを表す。また、後者は、「脳卒中」と「心筋梗塞」という単語ペアに関して、「病気」を共通単語としたときの関係名のスコアを表す。また、ｄｉｃｅ（単語１，単語２）は、単語１と単語２との間のＤｉｃｅ係数である。
【００５１】
そして、上の式１および式２による計算を行った結果として、例えば、
Ｓｃｏｒｅ（脳卒中，心筋梗塞｜動脈硬化）＞Ｓｃｏｒｅ（脳卒中，心筋梗塞｜病気）
である場合、キーワード間関係抽出部１３は、スコアの値が高いほうの「動脈硬化」を、「病気」よりも上位の共通単語としてランクする。共通単語が３つ以上ある場合にも、最もスコアの値が高い共通単語を、最上位にランクする。つまり、キーワード間関係抽出部１３は、スコアの値の降順に共通単語をランキングする。
【００５２】
次に、キーワード間関係抽出部１３は、キーワードと共通単語との関係名を特定する。最適な関係名を特定するためには、ステップＳ３−４における処理と同様に、キーワード間関係抽出部１３は、単語間関係辞書における出現数が少ないほど適切な関係名であると判断する。つまり、キーワード間関係抽出部１３は、最も高いランクの共通単語に関する、最も高いランクの関係名を選択する。ここにおいても、例外的に、単語間関係辞書における出現数がＬ個より少ない関係名は、選択から除外するようにしても良い。
【００５３】
なお、このステップＳ３−５の処理において、キーワード間関係抽出部１３は、単語共起辞書記憶部２２を参照する。単語共起辞書記憶部２２は、単語の共起頻度による類似度のデータを保持している。類似度のデータの一例は、Ｄｉｃｅ係数である。上記の式１や式２で示すスコアを計算する際に、キーワード間関係抽出部１３は、単語共起辞書記憶部２２からＤａｃｅ係数のデータを読みだして使用する。
なお、単語共起辞書記憶部２２の構成については、後で図７を参照しながら、説明する
【００５４】
ステップＳ３−４またはＳ３−５の処理の後、ステップＳ３−７に移る。このステップＳ３−７おいて、キーワード間関係抽出部１３は、全キーワード対の処理が完了したか否かを判定する。全キーワード対を処理済みの場合（ステップＳ３−７：ＹＥＳ）には、このフローチャート全体の処理を終了する。残っているキーワード対がある場合（ステップＳ３−７：ＮＯ）には、次のステップＳ３−８に進む。
【００５５】
次にステップＳ３−８において、キーワード間関係抽出部１３は、ステップＳ３−４またはＳ３−５で処理した関係数を、変数ｃｏｕｎｔＢに加算する。
【００５６】
そしてステップＳ３−９において、キーワード間関係抽出部１３は、変数ｃｏｕｎｔＢの値が予め設定された数値Ｍ以上であるか否かを判定する。ｃｏｕｎｔＢ≧Ｍである場合（ステップＳ３−９：ＹＥＳ）には、このフローチャート全体の処理を終了する。ｃｏｕｎｔＢ＜Ｍである場合（ステップＳ３−９：ＮＯ）には、次のキーワード対を処理するためにステップＳ３−２に戻る。
【００５７】
つまり、このフローチャートに示す処理の結果、キーワード間関係抽出部１３は、キーワード対とそれらのキーワードを直接つなぐ関係名を出力し（ステップＳ３−４による処理の場合）、またはキーワード対と、関係する共通単語と、キーワードと共通単語とをつなぐ関係名とを出力する（ステップＳ３−５による処理の場合）。キーワード間関係抽出部１３は、それらをキーワード対ごとに出力する。
また、キーワード間関係抽出部１３は、与えられた全キーワード対の処理を終えた場合には、それらのキーワード対に対応する関係名をすべて出力して、このフローチャートに示す処理を終了する（ステップＳ３−７：ＹＥＳ）。また、キーワード間関係抽出部１３は、処理した関係数が（Ｍ−１）個以上になったときには、与えられたキーワード対が残っていても、このフローチャートに示す処理を終了する（ステップＳ３−９：ＹＥＳ）
【００５８】
図５は、文書間関係抽出装置１による処理結果の出力例を示す概略図である。図示するように、この例では、まず、抽出された上位１０個の関係（関係１から関係１０まで）を、そのスコアの降順に出力している。その後に、参考情報として、入力概要文のペア（入力概要文１と入力概要文２）と、それぞれの入力文から抽出されたキーワードの集合（キーワード１とキーワード２）とを出力している。関係１から関係１０までの各々では、説明生成部１４が生成した「○○つながり」というパターンの文言と、スコアと、補助的な説明文が、出力されている。図示する例では、関係１においては、「原因結果」という関係名を用いて「原因つながり」という文言が出力されている。また、関係２においては、「疾患」という共通単語（ここでは、上位語）を用いて「疾患つながり」という文言が出力されている。
【００５９】
図６は、単語間関係辞書記憶部２１が記憶する単語間関係辞書の構成を示す概略図である。図示するように、単語間関係辞書は、ある単語（単語１）と他の単語（単語２）とがどのような関係を有するかを表すデータである。図示する例では、データの１行目は、単語１「脳卒中」と単語２「動脈硬化」とが因果関係を有することを表す。また、データの２行目は、単語１「心筋梗塞」と単語２「動脈硬化」とが因果関係を有することを表す。なお、この「因果関係」の例では、単語１と単語２とは非可換であり、単語１が結果を表し、単語２が原因を表す。データの３行目は、単語１「脳卒中」と単語２「病気」とが上位下位関係を有することを表す。データの４行目は、単語１「心筋梗塞」と単語２「病気」とが上位下位関係を有することを表す。この「上位下位関係」においても、単語１と単語２とは非可換であり、単語１が下位概念を表し、単語２が上位概念を表す。一実施形態として、単語間関係辞書記憶部２１は、リレーショナルモデルによるテーブル（表）としてこのデータを記憶する。単語間の関係の種類としては、「因果関係」や「上位下位関係」のほかに、「類似関係」、「属性関係」などの各種があり得る。
また、単語間関係辞書は、データ項目として、説明文生成用の関係名をも有している。これは、説明生成部１４がテンプレートに関係名をあてはめて説明文を生成するときに用いることを目的として保持しているデータである。図示する例では、単語間関係辞書は、「因果関係」に対応する説明文生成用の関係名として「原因」を保持している。また、単語間関係辞書は、「上位下位関係」に対応する説明文生成用の関係名として「上位語」を保持している。
【００６０】
同図では４行のデータのみを示しているが、実際には、膨大な数の行のデータがこの単語間関係辞書に含まれる。なお、この単語間関係辞書にエントリーされていない単語ペアについて、両単語は直接の関係を有しないと言える。
【００６１】
なお、単語間関係辞書のデータは、予め人手で作成するようにしても良いし、既存技術を用いて大量のテキストから自動的に抽出するようにしても良い。
単語間関係を抽出する既存技術については、例えば、次の参考文献に記載されている。この技術では、例えばインターネットを通して獲得可能な事典データを元に、機械学習を用いて特定の関係を有する単語対を抽出する。
［参考文献：上位下位関係抽出ツール Version1.0,  ＵＲＬ：http://alaginrc.nict.go.jp/hyponymy/，ダウンロード年月日：２０１３年１２月２７日］
【００６２】
図７は、単語共起辞書記憶部２２が記憶する単語共起辞書の構成を示す概略図である。図示するように、単語間関係辞書は、ある単語（単語１）と他の単語（単語２）との類似度の数値を表すデータである。ここでは、類似度としてＤｉｃｅ係数の値を用いる。Ｄｉｃｅ係数は、大量の文書データを元に統計的な処理をすることにより自動的に求めることができる。単語共起辞書記憶部２２は、リレーショナルモデルによるテーブル（表）としてこのデータを記憶するが、他のデータ形式で表現するようにしても良い。
【００６３】
なお、単語共起頻度についての既存のデータベースについては、例えば、下の参考文献に記載されている。このデータベースを構築するためには、ウェブページのテキストを元に、２つの単語対が共起する回数をカウントして、共起に関するスコアが算出されている。そのスコアとは、共起頻度、Ｄｉｃｅ係数、ディスカウンティング相互情報量である。なお、共起の条件はさまざまに設定されている。例えば、文書内の共起、近接４文内の共起、１文内の共起という条件で頻度がカウントされている。
［参考文献：（Ａ−５）単語共起頻度データベース，ＵＲＬ：https://alaginrc.nict.go.jp/resources/nictmastar/li-resource-info/li-resource-outline.html，ダウンロード年月日：２０１３年１２月２７日］
【００６４】
なお、上述した実施形態における文書間関係抽出装置の機能をコンピューターで実現するようにしても良い。その場合、この機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００６５】
本実施形態によれば、文書間の関係を抽出することができるため、ある文書との間で特定の関係を有する他の文書を特定することができる。よって、ある文書に関連した他の文書を推薦することができる。また、関係名が特定されるため、その推薦理由を明示することができる。文書がテレビ等の番組に対応付いているときには、ある番組に関連付いた他の番組を推薦することができる。文書が販売されている商品に対応づいているときには、ある商品に関連付いた他の商品を推薦することができる。また、それらの推薦の理由（関係名）を明示的に出力することができる。
【００６６】
（変形例）なお、上記実施形態の変形例として、下記の態様による文書間関係抽出装置１を構成しても良い。つまり、上記実施形態では、キーワード対生成部１２がＮ個のキーワード対を生成する処理（図３で説明した処理）をまず行い、その後に、生成されたキーワード対の集合を対象としてキーワード間関係抽出部１３がキーワード間の関係を抽出する処理（図４で説明した処理）を行った。一方、本変形例では、キーワード対生成部１２が、ｒａｎｋ＿ｓｃｏｒｅ（ｉ，ｊ）の順に従って１個のキーワード対を生成する都度、そのキーワード対を対象として、キーワード間関係抽出部１３がキーワード間の関係を抽出する。
具体的には、図３におけるステップＳ２−７の処理の箇所で、キーワード間関係抽出部１３が、図４におけるステップＳ３−３、Ｓ３−４、Ｓ３−５に相当する処理を行う。また、それとともに、文書間関係抽出装置１の全体としての終了条件の判断および制御を行う。即ち、処理するキーワード対の数（変数ｃｏｕｎｔＡでカウントする数）が上限値Ｎを超えたか否か、また、出力する関係数（変数ｃｏｕｎｔＢでカウントする数）が上限値Ｍ以上になったか否かを、判断し、いずれかの上限に達した時点で、全体の処理を終了する。
【００６７】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【００６８】
本発明は、文書間の関係を抽出することができるため、ある文書との間で特定の関係を有する他の文書を特定することができる。したがって、ある文書との間で特定の関係を有する他の文書を検索するために利用することができる。さらに、例えばテレビ放送やラジオ放送やネット配信等の番組と文書とが対応づいている場合に、ある番組と特定の関係を有する他の番組を検索するためなどに利用することができる。したがって、本発明は、コンテンツ提供サービスにおけるコンテンツ推薦などに利用することができる。また、例えば通販サイトなどで販売されている商品等と文書とが対応づいている場合に、ある商品等と特定の関係を有する他の商品等を検索するためなどに利用することができる。したがって、本発明は、通販サイトなどにおける商品推薦などに利用することができる。
【符号の説明】
【００６９】
１  文書間関係抽出装置
１０  文書取得部
１１  キーワード抽出部
１２  キーワード対生成部
１３  キーワード間関係抽出部
１４  説明生成部
２１  単語間関係辞書記憶部
２２  単語共起辞書記憶部
【図１】
2015200962.tif 000003
【図２】
2015200962.tif 000004
【図３】
2015200962.tif 000005
【図４】
2015200962.tif 000006
【図５】
2015200962.tif 000007
【図６】
2015200962.tif 000008
【図７】
2015200962.tif 000009