説明

データ抽出装置、データ抽出方法、及びプログラム

【課題】機械学習方式にかかわらず、特定の記号列の組み合わせと関連性がある記号列の組み合わせを精度よく収集する。
【解決手段】正例集合から選択された要素をスパイ素性列とし、機械学習によってどのような素性から構成される素性列の場合にどのようなラベルが表す集合に属することになり易いかということを機械学習して識別モデルを生成し、スパイ素性列を識別モデルに適用して得られた結果から閾値を決定する。そして、ラベルなし集合に属する各素性列を識別モデルに与えて得られる指標と閾値を比較し、ラベルなし集合に属する各素性列が正例集合に属するか負例集合に属するかを判定する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、特定の記号列の組み合わせと関連性がある記号列の組み合わせをテキストから収集するためのデータ抽出技術に関する。
【背景技術】
【0002】
現在様々な自然言語処理技術の研究開発が進み、WEBのような膨大な知識源から必要な情報を抽出する手法が多く存在している。情報を抽出する上で或る関係に基づいた語の集合をまとめることは有益である。例えば「X=NTT」と「Y=通信」といった語のペアX−Yは、「業態」に対応する集合に属すると考える。以下では、何らかの関係を持った記号列をそれぞれエンティティeX,eYと呼び、それらの組み合わせであるエンティティペアeX,Yの抽出を行う。
【0003】
このようなエンティティペアの抽出問題を、或る文に含まれる任意のエンティティペアが、特定のエンティティペアと関係を持つか(ω=1)持たないか(ω=0)という識別問題として捉え、最大エントロピー原理(ME)に基づいて任意のエンティティペアがω=1またはω=0のどちらの集合に属するかを識別するための識別モデルを学習することにより、識別問題を解く手法が知られている(非特許文献1)。
【0004】
具体的には、ω=1の集合に属するエンティティペア(正例)とω=0の集合に属するエンティティペア(負例)とを教師ありデータとし、どちらの集合に属するか分かっていないエンティティペアを教師なしデータとする。そして、(1)まず、最初に与えられた教師ありデータを用いた機械学習によって識別モデルを生成して識別器を構成する。(2)次に、上記(1)で得られた識別器を用いて教師なしデータを識別し、正例に対応する集合、負例に対応する集合、又はどちらにも判別できない集合(ラベルなし集合)に振り分ける。(3)次に、上記(2)の振り分けで得られた新たな正例集合、負例集合、及びラベルなし集合を用いた機械学習によって識別モデルを生成して、識別器を更新する。(4)そして、上記(3)で得られた識別器を用いて、上記ラベルなし集合の要素を再度識別して、正例集合、負例集合、及びラベルなし集合を更新する。そして、(3)(4)の処理を学習結果が収束するまで(正例集合と負例集合への振り分け結果が変化しなくなるまで)繰り返し、識別モデルの更新と、正例集合、負例集合、及びラベルなし集合の更新とを行う。
【0005】
なお、複数の正例集合を考慮する場合は、ω={1,2,…,c, N}のように、c(cは2以上の整数)個の正例集合(ω=1〜cのc個の集合)と1個の負例集合(ω=Nの1クラス)との合計c+1個の集合への識別問題(マルチクラス識別問題)へ拡張でき、複数の正例集合についてのエンティティペアを抽出することが可能となる。
【0006】
上述のような識別問題とみなした場合、特定のエンティティペアと関係を持たないエンティティペアが属する集合(負例集合)をも考慮することになる。この場合、特定のエンティティペアと関係を持つエンティティペアが属する集合(正例集合)のみに基づいて機械学習を行う場合のように意図しない学習方向へ偏向することを抑えることができるが、負例集合に属するエンティティペアの与え方が新たな課題となる。
【0007】
非特許文献1では、2単語間の関係が記述された巨大な辞書を用いることで、その関係中に存在しない単語を全て負例として用いている。
【0008】
また、非特許文献2では、スパイアルゴリズムというヒューリスティクスを用いて負例を作成する技術も提案されている。スパイアルゴリズムとは、少量の正例とラベルなし集合の要素とを識別器に与えることで負例の閾値を得る方法である。閾値を得ることができればその閾値を用いて信頼のある負例を選択でき、さらに信頼度の高い識別モデルを学習することができる。
【0009】
一方、非特許文献3では、互いの関係の薄い集合をペアとして、それらの集合にそれぞれ属するエンティティペアのエンティティを交換することで負例を作成する方法が提案されている。例えば、「NTT-通信」という「業態クラス」と、「バラ-赤」という「花の色」クラスがあった場合、それらのエンティティペアのエンティティを交換し、「NTT-赤」と「バラ-通信」という新たな無関係のエンティティペアを作り、これを負例として用いる。
【先行技術文献】
【非特許文献】
【0010】
【非特許文献1】Distant supervision for relation extraction without labeled data (Mintz, M., Bills, S., Snow, R. and Jurafsky, D. 2009)
【非特許文献2】Partially Supervised Classification of Text Documents (Liu, B., Lee, W., Yu, P. and Li, X. 2002)
【非特許文献3】Lightly-Supervised Attribute Extraction (Bellare, K. , Talukdar, P. , Kumaran, G. , Pereira, F. , Liberman, M. , McCallum, A. and Dredze, M. 2007)
【発明の概要】
【発明が解決しようとする課題】
【0011】
非特許文献1はMEを用いて関係抽出を行うシステムであるが、負例の生成には巨大な辞書が必要となるため、その作成にはコストがかかってしまう。少量のシードで大量のエンティティが抽出できることを目的とする本目的にあって、この辞書作成コストは大きな課題となる。また、非特許文献1の識別モデルは、識別結果の信頼度の高い/低いに関わらず、教師なしデータを何れかの集合に振り分けてしまうため、信頼度の低い識別結果にひきずられ、間違った方向へ識別モデルの学習が進み、識別の精度が低下してしまう可能性がある。この問題を解決するためには、予め定めた信頼度の閾値を超えないエンティティペアについては正例集合(又は負例集合)に割り振らないといった対策を採ることも考えられる。しかし、上述のように、非特許文献1では、学習が収束するまで繰り返し識別モデルを更新していくので、繰り返し毎に識別モデルが変化し、識別結果の信頼度も変わってくる。そのため、閾値も識別モデルに合わせて変化させるべきであるが、各繰り返しでどのくらい識別モデルの信頼度が変化するかは予測できないため、それ考慮して予め繰り返し毎に閾値を与えておくことは難しい。そのため、非特許文献1の方式では、特定の記号列の組み合わせと関連性がある記号列の組み合わせをテキストから精度よく収集することは困難である。
【0012】
また、非特許文献2は、学習の初期の負例生成方法としてスパイアルゴリズムを用いた先行技術である。これにより、学習の初期の負例集合を作成する際の恣意性やノイズなどの問題は解決できる。また、非特許文献2はEMアルゴリズムの枠組みを用いているため、信頼度がアルゴリズム内部で確率として反映されており、信頼度の低い識別結果にひきずられて間違った方向へ学習が進む問題を解決することができる。しかしながら、非特許文献2の方式には、学習データとして使用可能な素性が単語のみに制限されるという問題がある。例えば「eX,“の”,<PSN>(人物名),“社長”,品詞=助詞(は,が等),eY,“事業”,品詞=助詞」というやや複雑な組成列からなるパターンのように、非特許文献2の方式を、複数の素性から構成される素性列を学習データとする方式に拡張することは難しい。このような複雑な素性列を学習データとし、直接的にEMアルゴリズムの枠組みを用いて識別モデルを求めることは困難だからである。そのため、非特許文献2の方式を用い、多用なテキストから特定の記号列の組み合わせと関連性がある記号列の組み合わせを収集することは困難である。
一方、非特許文献3は、最初に明示的な負例をエンティティの交換によって与えている。このような負例の付与は少なからず恣意的であり、ノイズを含む可能性や、網羅性に欠ける可能性がある。例えば、互いの関係の薄い集合にそれぞれ属するエンティティペアであっても、それらの片方のエンティティが同一である場合がある。このような場合にエンティティペアの片方のエンティティを交換することで負例を作成する方法を採ると再び正例が生成されてしまう。具体例を挙げると、「業態」に対応する集合に属するエンティティペア「NTT-通信」と、「親子会社関係」に対応する集合に属するエンティティペア「NTT-NTT西日本」とのエンティティ「NTT」を交換しても同じものしか得られない。これは似たようなエンティティからなるエンティティペアと関係を持つエンティティペアを集める際にクリティカルな問題となる。
【0013】
非特許文献1での初期の負例集合の生成に、非特許文献2のスパイアルゴリズムを用いれば、初期の負例集合作成時の恣意性やノイズ、網羅性などの問題は緩和できる。また、非特許文献2の使用できる素性が制限されるという課題は、EMアルゴリズムの代わりに非特許文献1のMEに基づく学習を用いることで解決できる。しかしながら、単に非特許文献1の方式と非特許文献2の方式とを組み合わせただけの方式では、MEに基づく学習結果の信頼度が負例集合の更新処理に反映されないため、学習が誤った方向へ進むという非特許文献1の方式の問題点は解決しない。
【0014】
本発明はこのような点に鑑みてなされたものであり、機械学習方式にかかわらず、特定の記号列の組み合わせと関連性がある記号列の組み合わせを精度よく収集することが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【0015】
本発明では、シードエンティティの組み合わせを含むテキストに対応する複数の素性からなる素性列を正例集合の初期要素とし、母集合から正例集合の初期要素を除いた差集合の少なくとも一部の要素をラベルなし集合の初期要素とし、正例集合から選択された要素を初期スパイ素性列とする。また、正例集合に属する素性列と当該素性列が正例集合に属することを表すラベルとの組、及び、ラベルなし集合に属する素性列と当該素性列が負例集合に属することを表すラベルとの組を学習データとして用い、どのような素性から構成される素性列の場合にどのようなラベルが表す集合に属することになり易いかということを機械学習し、与えられた素性列及びラベルに対して当該与えられた素性列が当該与えられたラベルの表す集合に属することになり易いかということを表す指標を出力する初期識別モデルを生成する。また、ラベルなし集合を表すラベルと初期スパイ素性列とを初期識別モデルに与え、初期スパイ素性列がラベルなし集合に属することになり易いかということを表す指標である第1基準指標を生成し、当該第1基準指標に対応する第1閾値を決定する。そして、ラベルなし集合を表すラベルとラベルなし集合に属する各素性列とを初期識別モデルに与え、当該ラベルなし集合に属する各素性列がラベルなし集合に属することになり易いかということを表す指標である第1指標を当該ラベルなし集合に属する各素性列に対してそれぞれ生成し、当該第1指標と第1閾値とを比較することで当該ラベルなし集合に属する各素性列が負例集合に属するか否かを識別し、負例集合に属すると識別された素性列を負例集合の要素とし、母集合から当該負例集合と正例集合とを除いた差集合に相当する集合をラベルなし集合の要素とする。
【0016】
ここで、第1閾値は初期識別モデルの信頼度を表す指標となるため、第1閾値と第1指標とを比較して負例集合の要素を選択することは、初期識別モデルの信頼度を考慮して負例集合の要素を選択することになる。これにより、機械学習方式にかかわらず、初期識別モデルの信頼度を考慮した負例集合の要素の選択が可能となる。
【0017】
また、本発明において好ましくは、正例集合から選択された要素を正例スパイ素性列とし、負例集合から選択された要素を負例スパイ素性列とする。また、正例集合に属する素性列と当該素性列が正例集合に属することを表すラベルとの組、及び、負例集合に属する素性列と当該素性列が負例集合に属することを表すラベルとの組を学習データとして用い、どのような素性から構成される素性列の場合にどのようなラベルが表す集合に属することになり易いかということを機械学習し、与えられた素性列及びラベルに対して当該与えられた素性列が当該与えられたラベルの表す集合に属することになり易いかということを表す指標を出力する識別モデルを生成する。また、正例集合を表すラベルと正例スパイ素性列とを識別モデルに与え、正例スパイ素性列が正例集合に属することになり易いかということを表す指標である正例基準指標を生成し、当該正例基準指標に対応する正例閾値を決定し、さらに、負例集合を表すラベルと負例スパイ素性列とを識別モデルに与え、負例スパイ素性列が負例集合に属することになり易いかということを表す指標である負例基準指標を生成し、当該負例基準指標に対応する負例閾値を決定する。さらに、正例集合を表すラベルとラベルなし集合に属する各素性列とを識別モデルに与え、当該ラベルなし集合に属する各素性列が当該ラベルによって表される正例集合に属することになり易いかということを表す指標である正例指標を当該ラベルなし集合に属する各素性列に対してそれぞれ生成し、当該正例指標と正例閾値とを比較することで当該ラベルなし集合に属する各素性列が当該ラベルによって表される正例集合に属するか否かを識別し、当該ラベルによって表される正例集合に属すると識別された素性列を当該ラベルによって表される正例集合の要素に追加し、負例集合を表すラベルとラベルなし集合に属する各素性列とを識別モデルに与え、当該ラベルなし集合に属する各素性列が負例集合に属することになり易いかということを表す指標である負例指標を当該ラベルなし集合に属する各素性列に対してそれぞれ生成し、当該負例指標と負例閾値とを比較することで当該ラベルなし集合に属する各素性列が負例集合に属するか否かを識別し、負例集合に属すると識別された素性列を負例集合の要素に追加し、母集合から当該負例集合と正例集合とを除いた差集合に相当する集合を新たなラベルなし集合とする。
【0018】
ここで、正例閾値や負例閾値は識別モデルの信頼度を表す指標となるため、正例閾値と正例指標とを比較して正例集合の要素を選択し、負例閾値と負例指標とを比較して負例集合の要素を選択することは、識別モデルの信頼度を考慮して負例集合や正例集合の要素を選択することになる。これにより、機械学習方式にかかわらず、識別モデルの信頼度を考慮した負例集合や正例集合の要素の選択が可能となる。
【発明の効果】
【0019】
以上により、本発明では、機械学習方式にかかわらず、特定の記号列の組み合わせと関連性がある記号列の組み合わせを精度よく収集することが可能となる。
【図面の簡単な説明】
【0020】
【図1】図1は、第1実施形態のデータ抽出装置の構成を説明するための図である。
【図2】図2は、図1の識別学習部の詳細を説明するための図である。
【図3】図3は、図1の識別学習部の詳細を説明するための図である。
【図4】図4は、第1実施形態のデータ抽出方法を説明するための図である。
【図5】図5Aは、テキストを例示するための図である。図5Bは、エンティティペアを例示するための図である。
【図6】図6は、素性列を説明するための図である。
【図7】図7は、第2実施形態のデータ抽出装置の構成を説明するための図である。
【図8】図7は、図7の識別学習部の詳細を説明するための図である。
【図9】図8は、図7の識別学習部の詳細を説明するための図である。
【図10】図10は、第2実施形態のデータ抽出方法を説明するための図である。
【発明を実施するための形態】
【0021】
以下、図面を参照して本発明の実施形態を説明する。
【0022】
〔定義〕
まず、本形態で使用する用語を定義する。
【0023】
[テキスト]テキストとは2以上の記号からなる記号列を意味する。テキストの具体例は、文などの文字列、プログラムコード列、遺伝子の塩基配列を表す記号列などである。以下では、テキストとして文を取り扱う場合を例示する。
【0024】
[エンティティ]エンティティとは記号列を意味する。エンティティの具体例は、単語や固有名詞などの文字列、プログラムコード、塩基を表す記号などである。以下では、エンティティとして固有名詞を取り扱う場合を例示する。
【0025】
[エンティティの組み合わせ]エンティティの組み合わせとは、2以上のエンティティの組み合わせを意味する。以下では、エンティティの組み合わせとして2つのエンティティの組み合わせであるエンティティペアを取り扱う場合を例示する。
【0026】
[シードエンティティ]シードエンティティとは、予め定められた特定のエンティティ(記号列)を意味する。
【0027】
[シードエンティティの組み合わせ]シードエンティティの組み合わせとは、2以上のシードエンティティの組み合わせを意味する。以下では、シードエンティティの組み合わせとして2つのシードエンティティの組み合わせであるシードエンティティペアを取り扱う場合を例示する。
【0028】
[素性]素性とは、解析に用いられる最小単位である。素性はテキストを素性変換して得られ、テキストは複数の素性に対応する。各素性はテキストを構成する各記号列に対応する。素性の具体例は、テキストが含む各単語のエンティティからの相対位置をそれぞれ表す表層素性、テキストが含む各単語の品詞情報を表す品詞素性、テキストが含む各固有名詞情報を表す固有名詞素性、テキストが含む各単語の構文情報を表す構文素性、テキストのエンティティの出現回数を表す素性、エンティティの組み合わせ(エンティティペアなど)の共起回数を表す素性などである。
【0029】
例えば、エンティティペアを(eX, eY)=(NTT, 通信)とするテキスト「NTT/は/通信/業務/を/主体/と/する/」を素性変換した場合、以下のような素性が得られる。
【0030】
・表層素性の場合:「eX−1=EOS」,「eX+1=“は”」,「eX+2=eY
ここで、ex-mはエンティティexのm単語前の単語、ex+mはエンティティexのm単語後ろの単語、EOSはその部分に単語が存在しない(文の先頭を越えている)ことを表す。
【0031】
・品詞素性:「eX+1=助詞」,「eX+3=名詞」
・固有名詞素性:「eX=組織名」
・構文素性:「eXの階層=eYの階層」(両方とも「する」に係る)
以下では、表層素性を用いる場合を例にとって説明する。
【0032】
[素性列]:素性列とは、或るテキストに対応する複数の素性からなる情報を意味する。
【0033】
[母集合]母集合とは、素性列を要素とする集合を意味する。以下では、コーパスが含む各テキストに対応する複数の素性からなる素性列を要素とする集合を母集合とする場合を例示する。
【0034】
[正例集合]正例集合とは、母集合のうち、シードエンティティの組み合わせと関連性があると識別された素性列を要素とする集合を意味する。
【0035】
[負例集合]負例集合とは、シードエンティティの組み合わせと関連性がないと識別された素性列を要素とする集合を意味する。
【0036】
[ラベルなし集合]ラベルなし集合とは、シードエンティティの組み合わせとの関連性が識別されていない素性列を要素とする集合を意味する。
【0037】
[クラス]クラスとは、集合に対応する分類を意味する。
【0038】
〔第1実施形態〕
本発明の第1実施形態を説明する。
【0039】
<構成>
図1に例示するように、本形態のデータ抽出装置1は、記憶部110,120,130と識別学習部140,150と停止条件判定部160と選択部170を有する。図2に例示するように、識別学習部140は、初期正例集合作成部141と初期ラベルなし集合作成部142とスパイ作成部143と学習部144と閾値決定部145とクラス識別部146とを有する。図3に例示するように、識別学習部150は、スパイ作成部151と、学習部152と、閾値決定部153と、クラス識別部154とを有する。
【0040】
なお、本形態のデータ抽出装置1は、例えば、CPU(central processing unit)、RAM(random-access memory)などから構成される公知又は専用のコンピュータに所定のプログラムが読み込まれて実行されることで構成される特別な装置である。すなわち、記憶部110,120,130は、例えば、ハードディスク装置、半導体メモリなどの公知の記憶手段からなり、識別学習部140,150や停止条件判定部160や選択部170は、例えば、CPUに所定のプログラムが読み込まれて実行されることで構成される処理手段からなる。また、識別学習部140,150や停止条件判定部160や選択部170の少なくとも一部が集積回路などのハードウェアによって構成されてもよい。
【0041】
<処理>
次に、本形態の処理を説明する。
【0042】
[前提]
本形態では、1又は複数のクラスが設定され、クラスごとに正例集合が対応するものとする。クラスからなる集合をC={1,2,…,c}と表す。cはクラスの総数を表す1以上の整数であり、j=1,...,cは各クラスを表すラベル(クラスID)である。ラベルは整数値に限られるものではなく、各クラスを識別できるものであれば文字列や記号などでも良い。なお、「ラベルがjのクラス」のことを「クラスj」と表現する。また、負例集合に対応するラベルをNで表す。また、正例集合に対応するラベルと負例集合に対応するラベルとの集合をC'={1,2,…,c,N}で表す。
【0043】
予め形態素解析、固有表現抽出、係り受け解析が行われた文区切りのテキストの集合であるコーパスが記憶部110(図1)に格納される。本形態のコーパスを構成する各テキストは予め素性変換されており、当該コーパスは、テキストに対応する素性列を要素とする母集合Dとされる。前述のように、本形態では素性として表層素性を用いる。本形態の素性列は、対応するエンティティペアに対応付けられているものとする。このような母集合Dは、予め記憶部110(図1)に格納される。
【0044】
また、本形態では、シードエンティティの組み合わせであるシードエンティティペア(eX, eY)がクラスjごとに設定され、シードエンティティペアの集合をPS={PS1,...,PSc}と表現する。ここで、PSjは、クラスjにおけるシードエンティティペアの集合を表す。シードエンティティペアの集合PSは、予め記憶部120に格納される。
【0045】
[データ抽出処理]
まず、識別学習部140の初期正例集合作成部141(図2)が、記憶部120から抽出したシードエンティティペアの集合PSを用い、記憶部110に格納された母集合Dから抽出した素性列を初期要素とする正例集合RP0j (j=1,...,c)を生成する。なお、正例集合RPijはi回更新されたクラスjに対応する正例集合を表し、正例集合RPijの集合をRPi={RPi1,...,RPij}と表す。ステップS111ではi=0であり、正例集合RP0jの集合RP0が生成される。例えば、本形態の初期正例集合作成部141は、各正例クラスj∈Cについて、シードエンティティペアの集合Psj中のシードエンティティペアに含まれる2エンティティ(eX,eY)を両方含むテキストに対応する素性列を母集合Dから抽出し、それを正例集合RPijの初期要素とし、正例集合RP0jの集合RP0={RP01,...,RP0j}を生成する。
【0046】
本形態では、各RP0j(j=1,2,…,c)及びRP0は以下の(A)及び(B)の条件を満たすものとする。
【0047】
(A) 各RP0j(j=1,2,…,c)には1以上の素性列が含まれていること。
【0048】
(B) RP0に含まれる素性列の総数はc+1以上であること。
【0049】
条件(A)を満たしていない場合、初期正例集合作成部141は、以下のいずれかの方法によって、条件(A)を満たすように調整を行う。
【0050】
(方法1)初期正例集合作成部141は、RP0jに1つも素性列が含まれていないクラスjについて、新しいシードエンティティペアの追加を要求し、追加されたシードエンティティペアをP0jに追加して記憶部120に格納する。初期正例集合作成部141は、追加されたシードエンティティペアに含まれる2エンティティ(eX,eY)を両方含むテキストに対応する素性列を母集合Dから抽出し、それを正例集合RP0jの要素に加える。このような処理が、各クラスjにそれぞれ対応するRP0jに含まれる素性列がそれぞれ1以上になるまで繰り返される。
【0051】
(方法2)RP0jに1つも文が含まれていないクラスjを削除し、(A)の条件を満たすクラスのみが存在するものとして、以下の処理を進める。
【0052】
条件(B)を満たしていない場合、初期正例集合作成部141は、何れかのクラスj∈Cについての新しいシードエンティティペアの追加を要求し、追加されたシードエンティティペアP0jに追加して記憶部120に格納する。初期正例集合作成部141は、追加されたシードエンティティペアに含まれる2エンティティ(eX,eY)を両方含むテキストに対応する素性列を母集合Dから抽出し、それを正例集合RP0jの要素に加える。このような処理が条件(B)を満たすまで繰り返される。
【0053】
初期正例集合作成部141は、以上の処理によって生成した正例集合RP0jの集合RP0={RP01,...,RP0j}を記憶部130に格納する(ステップS111)。
【0054】
次に、初期ラベルなし集合作成部142(図2)が、記憶部110に格納された母集合Dから記憶部130に格納された正例集合RP0jの集合RP0の要素を除いた差集合D-RP0の少なくとも一部の要素を、ラベルなし集合U0の初期要素とする。例えば、初期ラベルなし集合作成部142は、集合RP0が含む何れか素性列と素性が1個以上マッチする素性列を差集合D-RP0から抽出し、抽出した素性列をラベルなし集合U0の初期要素とする(ステップS112)。
【0055】
次に、スパイ作成部143(図2)が、記憶部130に格納された正例集合RP0jの集合RP0から選択された要素を初期スパイ素性列とする。例えば、スパイ作成部143は、記憶部130に記憶された正例集合RP0jの集合RP0全体から、予め定めた任意の割合rに従ってランダムに選択した要素を初期スパイ素性列の集合spy0={spy01,…,spy0c}とし、記憶部130に格納する。ここでspy0jは、クラスjに対応する初期スパイ素性列の集合である。ただし、本形態では、正例集合RP0全体から最低でも1つの要素が初期スパイ素性列として選択されるものとする。また、本形態の場合、要素が1つしか存在しない正例集合RP0jについては初期スパイ素性列が抽出されないものとする。以下のように、本形態では正例集合RP0jから初期スパイ素性列の集合spy0jを除いたものを学習データとして用いるからである。
【0056】
スパイ作成部143は、生成した初期スパイ素性列の集合spy0={spy01,…,spy0c}を記憶部130に格納する(ステップS113)。
【0057】
次に、学習部144が、各正例集合RP0j (j=1,...,c)に属する素性列と当該素性列が正例集合RP0jに属することを表すラベルjとの組、及び、初期ラベルなし集合作成部142で生成されたラベルなし集合U0に属する素性列と当該素性列がラベルなし集合U0に属することを表すラベルUとの組を学習データとして用い、どのような素性から構成される素性列の場合にどのようなラベルが表す集合に属することになり易いかということを機械学習し、与えられた素性列及びラベルに対して当該与えられた素性列が当該与えられたラベルの表す集合に属することになり易いかということを表す指標を出力する初期識別モデルME0を生成する。本形態では、機械学習方式として、例えば、最大エントロピー原理に基づく識別学習(ME学習)方式を用いる(参考文献1参照)。この場合、与えられた素性列及びラベルに対して当該与えられた素性列が当該与えられたラベルの表す集合に属することになり易いかということを表す指標は、条件付確率で与えられる。
【0058】
[参考文献1]A maximum entropy approach to natural language processing (Berger, A. L., Pietra, V. J. D. and Pietra, S. A. D. 1996)
【0059】
この例の場合、学習部144は、例えば、各クラスj(j∈C)における各正例集合RP0j (j=1,...,c)から、当該クラスjに対応する初期スパイ素性列の集合spy0jを差し引いた差集合(RP0j−spy0j)とラベルjとの組、及び、ラベルなし集合U0と初期スパイ素性列の集合spy0との和集合(U0+spy0)とラベルUとの組を学習データとして用い、最大エントロピー原理に基づく識別学習により、差集合(RP0j−spy0j)の要素をxとした場合の条件付確率p(j|x)と和集合(U0+spy0)の要素をxとした場合の条件付確率p(U|x)とに対応するエントロピーを最大化する初期識別モデルME0を生成する。すなわち、学習部144は、例えば、x∈(RP0j−spy0j)とy=j (j=1,...,c)との組、及び、x∈(U0+spy0)とy=Uとの組を学習データとして用い、条件付確率
【0060】
【数1】

に対するエントロピー
【0061】
【数2】

を最大化する各パラメータλqに対応するPλ(y|x)であるP(y|x)を初期識別モデルME0とする。ただし、
【0062】
【数3】

であり、qは各学習データ(x,y)の組にそれぞれ対応するラベルであり、p'(x)は学習データ(x,y)におけるxの出現頻度であり、fq(x,y)はqに対応する素性関数(feature function)である。
【0063】
なお、上述学習処理の変形例として、x∈(U0+spy0)とy=Uとの組の代わりにx∈U0とy=Uとの組を学習データとして用いてもよい。
【0064】
学習部144は、生成した初期識別モデルME0を記憶部130に格納する(ステップS114)。
【0065】
次に、閾値決定部145(図2)が、ラベルなし集合U0に対応するラベルUと記憶部130に格納された初期スパイ素性列の集合spy0に属する初期スパイ素性列とを初期識別モデルME0に与え、初期スパイ素性列がラベルなし集合U0に属することになり易いか、逆に言うと正例集合RP0に属しにくいかということを表す指標である第1基準指標を生成し、当該第1基準指標に対応する第1閾値t0Nを決定する。本形態の閾値決定部145は、例えば、初期識別モデルME0を用い、初期スパイ素性列の集合spy0に属する初期スパイ素性列spyとラベルUとに対する条件付確率P(U|spy)の最大値
【0066】
【数4】

を第1閾値t0Nとする。
【0067】
また、式(4)の代わりに、初期スパイ素性列の集合spy0に属する初期スパイ素性列spyとラベルUとに対する条件付確率P(U|spy)の平均値
【0068】
【数5】

を第1閾値t0Nとしてもよい。
【0069】
さらに、第1閾値t0Nに加えて、初期スパイ素性列の集合spy0に属する初期スパイ素性列spyとラベルjとに対する条件付確率P(j|spy)の平均値
【0070】
【数6】

を閾値t0jとして求めてもよい。
【0071】
閾値決定部145は、以上のように生成した第1閾値t0N(及び閾値t0j)を記憶部130に格納する(ステップS115)。
【0072】
次に、クラス識別部146(図2)が、ラベルなし集合U0を表すラベルUとラベルなし集合U0に属する各素性列とを初期識別モデルME0に与え、当該ラベルなし集合U0に属する各素性列がラベルなし集合に属することになり易いかということを表す指標である第1指標を当該ラベルなし集合U0に属する各素性列に対してそれぞれ生成し、当該第1指標と第1閾値t0Nとを比較することで当該ラベルなし集合U0に属する各素性列が負例集合RN1に属するか否かを識別し、負例集合RN1に属すると識別された素性列を負例集合RN1の要素とし、母集合Dから当該負例集合RN1と正例集合RP0j (j=1,...,c)とを除いた差集合(D-RN1-RP0j) (j=1,...,c)に相当する集合をラベルなし集合U1の要素とする。例えば、クラス識別部146は、閾値決定部145で決定された各閾値と学習部144で生成された初期識別モデルME0とを用い、ラベルなし文集合U0に含まれる素性列uのうち、
p(U|u)>t0N …(7)
を満たすものを負例集合RN1に属すると識別し、負例集合RN1に属すると識別された素性列を負例集合RN1の要素とする。また、例えば、クラス識別部146は、正例集合RP0j (j=1,...,c)をそのまま正例集合RP1j (j=1,...,c)とし、RP1={RP11,…,RP1C}とする。また、例えば、クラス識別部146は、ラベルなし集合U0に含まれる素性列のうち負例集合RN1の要素と識別されなかった素性列の集合U0−RN1と、ラベルなし文集合検索部142において、母集合Dに含まれる素性列のうちラベルなし集合U0として検索されなかった素性列の集合D−RP0−U0の和、すなわちD−RP1−RN1を新たなラベルなし文集合U1として作成する。
【0073】
なお、閾値決定部145で閾値t0j (j=1,...,c)が生成される場合には、正例集合RP0j (j=1,...,c)をそのまま正例集合RP1j (j=1,...,c)とする代わりに、ラベルなし文集合U0に含まれる素性列uのうち、
p(j|u)>t0j …(8)
を満たすものを正例集合RP1j (j=1,...,c)に属すると識別し、正例集合RP1j (j=1,...,c)に属すると識別された素性列をそれぞれ正例集合RP1j (j=1,...,c)の要素としてもよい(ステップS116)。
【0074】
次に、停止条件判定部160(図1)がi=1に設定する(ステップS121)。
【0075】
次に、識別学習部150のスパイ作成部151(図3)が、正例集合RPij(j=1,...,c)から選択された要素を正例スパイ素性列とし、負例集合RNiから選択された要素を負例スパイ素性列とする。ラベルjに対応する正例スパイ素性列の集合をspyijで表し、負例スパイ素性列の集合をspyiNで表す。例えば、スパイ作成部151は、正例集合RPij(j=1,...,c)及び負例集合RNi中から,予め定めた任意の割合rに従ってランダムに正例スパイ素性列及び負例スパイ素性列を選択し、スパイ素性列の集合spyi={spyi1,…,spyic,spyiN}を生成する。スパイ作成部151は、生成したスパイ素性列の集合spyiを記憶部130に格納する(ステップS122)。
【0076】
次に、学習部152(図3)が、正例集合RPij (j=1,...,c)に属する素性列と当該素性列が正例集合に属することを表すラベルjとの組、及び、負例集合RN1に属する素性列と当該素性列が負例集合RNiに属することを表すラベルNとの組を学習データとして用い、どのような素性から構成される素性列の場合にどのようなラベルが表す集合に属することになり易いかということを機械学習し、与えられた素性列及びラベルに対して当該与えられた素性列が当該与えられたラベルの表す集合に属することになり易いかということを表す指標を出力する識別モデルMEiを生成する。ここでの機械学習は、前述のステップS114と同様に行う。この場合、与えられた素性列及びラベルに対して当該与えられた素性列が当該与えられたラベルの表す集合に属することになり易いかということを表す指標は、条件付確率で与えられる。
【0077】
例えば、学習部152は、各クラスj(j∈C)における各正例集合RPij (j=1,...,c)から、当該クラスjに対応する正例スパイ素性列の集合spyijを差し引いた差集合(RPij−spyij)(j=1,...,c)とラベルj(j=1,...,c)との組、負例集合RNiから負例スパイ素性列の集合spyiNを差し引いた差集合(RNi−spyiN)とラベルNとの組、及び、ラベルなし集合Uiとスパイ素性列の集合spyiとの和集合(Ui+spyi)とラベルUとの組を学習データとして用い、前述した最大エントロピー原理に基づく識別学習により(式(1)-(3))、前述したようなP(y|x)を求め、これを識別モデルMEiとする。なお、ラベルUはラベルなし集合Uiを表すラベルである。
【0078】
また、上述学習処理の変形例として、和集合(Ui+spyi)とラベルUとの組との代わりにUiとラベルUとの組を学習データとして用いてもよい。また、和集合(Ui+spyi)とラベルUとの組やUiとラベルUを学習データとして用いないことにしてもよい。
【0079】
学習部152は、生成した識別モデルMEiを記憶部130に格納する(ステップS123)。
【0080】
次に、閾値決定部153(図3)が、少なくとも、正例集合RPijを表すラベルj(j=1,...,c)と記憶部130に格納された正例スパイ素性列(spyijの要素)とを識別モデルMEiに与え、正例スパイ素性列が正例集合RPijに属することになり易いかということを表す指標である正例基準指標を生成し、当該正例基準指標に対応する正例閾値tij(j=1,...,c)を決定する。さらに、閾値決定部153は、負例集合RNiを表すラベルNと記憶部130に格納された負例スパイ素性列(spyijの要素)とを識別モデルMEiに与え、負例スパイ素性列が負例集合に属することになり易いかということを表す指標である負例基準指標を生成し、当該負例基準指標に対応する負例閾値tiNを決定する。本形態の閾値決定部153は、例えば、識別モデルMEiを用い、スパイ素性列の集合spy0に属するスパイ素性列spyとラベルj=1,2,…,cとNとUとを用い、以下のように正例閾値tij(j=1,...,c)と負例閾値tiNとラベルなし閾値tiUとを生成する。なお、minαはαの最小値を表す。
【0081】
クラスjに対する正例閾値tij:
【0082】
【数7】

クラスNに対する負例閾値tiN
【0083】
【数8】

ラベルなしクラスに対する閾値:
【0084】
【数9】

なお、式(9)(10)の代わりに以下のように正例閾値tijと負例閾値tiNとが生成されてもよい。
【0085】
クラスjに対する正例閾値tij:
【0086】
【数10】

クラスNに対する負例閾値tiN
【0087】
【数11】

また、ラベルなし閾値tiUを用いないことにしてもよい(ステップS124)。
【0088】
次に、クラス識別部154(図3)が、正例集合RPijを表すラベルjとラベルなし集合Uiに属する各素性列とを識別モデルMEiに与え、当該ラベルなし集合Uiに属する各素性列が当該ラベルjによって表される正例集合RPijに属することになり易いかということを表す指標である正例指標を当該ラベルなし集合Uiに属する各素性列に対してそれぞれ生成し、当該正例指標と正例閾値とを比較することで当該ラベルなし集合Uiに属する各素性列が当該ラベルjによって表される正例集合RPi+1jに属するか否かを識別し、当該ラベルjによって表される正例集合RPi+1jに属すると識別された素性列を当該ラベルjによって表される正例集合RPi+1jの要素に追加する。また、クラス識別部154は、負例集合RNiを表すラベルNとラベルなし集合Uiに属する各素性列とを識別モデルMEiに与え、当該ラベルなし集合Uiに属する各素性列が負例集合RNiに属することになり易いかということを表す指標である負例指標を当該ラベルなし集合に属する各素性列に対してそれぞれ生成し、当該負例指標と負例閾値とを比較することで当該ラベルなし集合Uiに属する各素性列が負例集合RNi+1に属するか否かを識別し、負例集合RNi+1に属すると識別された素性列を負例集合RNi+1の要素に追加する。さらに、クラス識別部154は、母集合Dから当該負例集合RNiと正例集合RPij(j=1,...,c)とを除いた差集合に相当する集合を新たなラベルなし集合Ui+1とする。本形態のクラス識別部154は、例えば、閾値決定部153で決定された各閾値と学習部152で生成された識別モデルMEiとを用い、以下のような識別処理を行う。
【0089】
ラベルなし集合Uiに含まれる素性列xについて、
(I) p(U|x)<tiU である。
【0090】
(II)全てのj'∈C'(C'={1,...,c,N})のうちp(j'|x)を最大にするクラスj'についてp(j'|x)>tijである。
の両方の条件を満たす場合には当該素性列xがクラスj'に対応する正例集合RPi+1j又は負例集合RNi+1に属すると識別し、当該素性列xを正例集合RPi+1j又は負例集合RNi+1の要素とする。一方、(I)(II)の少なくとも一方を満たさない場合には、当該素性列xがラベルなし集合Ui+1に属すると識別し、当該素性列xをラベルなし集合Ui+1の要素とする。ラベルなし集合Uiに含まれる各素性列xは、新たな正例集合RPi+1j、負例集合RNi+1又はラベルなし集合Ui+1のいずれかに識別される。
【0091】
クラス識別部154は、更新した正例集合RPi+1j、負例集合RNi+1及びラベルなし集合Ui+1を記憶部130に格納する(ステップS125)。
【0092】
次に、停止条件判定部160(図1)が、予め定められた停止条件を満たすか否かを判定する。本形態の停止条件判定部160は、例えば、ラベルなし集合Ui中の素性列が新たに正例集合RPi+1j若しくは負例集合RNi+1に割り当てられなかった場合、又は、ラベルなし集合Uiが空集合となった場合には停止条件を満たさないと判定し、そうでない場合には停止条件を満たすと判定する(ステップS126)。ここで、停止条件を満たさないと判定された場合、停止条件判定部160は、i+1を新たなiとおき(ステップS127)、処理をステップS122に戻す。これにより、停止条件判定部160は、スパイ作成部151の処理と学習部152の処理と閾値決定部153の処理とクラス識別部154の処理とを再び実行させる。一方、停止条件を満たすと判定された場合、以下のステップS128の処理に進む。
【0093】
ステップS128では、選択部170(図1)が、記憶部130に格納された正例集合RPi+1jと最後の識別モデルMEiとを用い、正例集合RPi+1jから素性列を選択する。本形態の選択部170は、正例集合RPi+1jを表すラベルjと正例集合RPi+1jに属する素性列とを識別モデルMEiに与え、正例集合RPi+1jに属する素性列がラベルjに対応する正例集合RPi+1jに属することになり易いかということを表す指標を生成し、当該指標を基準として正例集合RPi+1jから素性列を選択する。例えば、選択部170は、最後に得られた識別モデルMEiを各クラスjにおける正例集合RPi+1jに属する各素性列xに適用し、条件付確率p(j|x)の高い順に正例集合RPi+1jに属する各素性列xをソートし、ソートした各素性列xのうち上位K個(Kは予め定められたクラスごとに抽出すべきエンティティペアの数)の素性列を選択する。選択部170は、選択した素性列に対応するエンティティペアを出力する。ただし、出力しようとするエンティティペアがそれまでに出力したものと重複する場合には、そのような重複するエンティティペアを出力しないことにしてもよい。
【0094】
また、このような処理の代わりに、選択部170が、正例集合RPi+1jを表すラベルjと正例集合RPi+1jに属する素性列が含む素性の組み合わせとを識別モデルMEiに与え、当該素性の組み合わせが正例集合RPi+1jに属することになり易いかということを表す指標を生成し、当該基準として、正例集合RPi+1jに属する素性列から素性の組み合わせを選択してもよい。例えば、選択部170が、条件付確率p(j|x)を基準として素性列単位でソートを行う代わりに、最後に得られた識別モデルMEiを各クラスjにおける正例集合RPi+1jに属する各素性列xに対応するエンティティペアeに適用し、条件付確率p(j|e)の高い順に正例集合RPi+1jに属する各素性列x対応するエンティティペアeをソートし、ソートした各エンティティペアeのうち上位K個(Kは予め定められたクラスごとに抽出すべきエンティティペアの数)のエンティティペアを選択してもよい。この場合、選択部170は、選択したエンティティペアを出力する(ステップS128)。
【0095】
<具体例>
次に、具体例を用いて本形態の処理を説明する。
【0096】
以下では、母集合Dに含まれる素性列を図5Aに例示するu1,...,u11とする。なお、図5Aでは、各u1,...,u11とそれらに対応する各テキストとが対応付けられている。また、図5Aのテキストを構成する単語のうち下線で示した単語はエンティティである。また、業態クラス(j=1)〉及び〈社長クラス(j=2)〉の2クラスにそれぞれ対応する2つの正例集合RPi+1jが存在し、シードエンティティペアの集合PS={PS1,PS2}として図5BのPs1とPs2が与えられているとする。また、素性列u1,...,u11は、それぞれ、対応するテキストに対して図6のような素性変換(簡単のためexの表層素性のみに注目している)を行って得られたものであるとする。
【0097】
この場合、ステップS111では、初期正例集合作成部141が、図5BのPs1,Ps2に対して図5Aのu1,...,u11に対応する各テキストを検索するので、以下の正例集合RP0={RP01, RP02}が生成される。
【0098】
RP01={u1, u3} …(14)
RP02={u5, u6, u9} …(15)
また、ステップS112では、上記RP0に含まれる素性列と、母集合Dの残りの素性列(D-RP0)について
u1と素性値が1つ以上一致する素性列:u2, u4, u7, u8, u10
u3と素性値が1つ以上一致する素性列:u2, u4, u7, u8, u10
u5と素性値が1つ以上一致する素性列:u4, u11
u6と素性値が1つ以上一致する素性列:u2, u4, u7, u8
u9と素性値が1つ以上一致する素性列:u2, u4, u7, u8, u11
であるため、初期ラベルなし集合作成部142が、ラベルなし集合
U0={u2, u4, u7, u8,u10,u11}
を生成する。
【0099】
また、ステップS113では、スパイ作成部143が、
spy01={u1}
spy02={u6}
を初期スパイ素性列の集合として選択したと仮定する。
【0100】
すると、ステップS114では、学習部144が、
RP01-spy01={u3}
RP02-spy02={u5, u9}
U0+spy0={u1, u2, u4, u6, u7, u8,u10,u11}
を用いて機械学習を行い、識別モデルME0を作成する。
【0101】
作成した識別モデルME0に基づいて、各初期スパイ素性列u1,u6のラベルUへの条件付確率を計算した結果が
p(U|u1)=0.15
p(U|u6)=0.3
であるとすると、ステップS115で閾値決定部145が決定する閾値t0Nはmax[p(U|u1),p(U|u6)]=0.3となる。
【0102】
次に、ステップS116において、クラス識別部146が、U0={u2, u4, u7, u8,u10,u11}の各素性列の識別を行う。各素性列u3, u4, u7, u11のラベルUへの条件付確率を計算した結果が
p(U|u2)=0.1
p(U|u4)=0.2
p(U|u7)=0.2
p(U|u8)=0.25
p(U|u10)=0.7
p(U|u11)=0.8
とすると、閾値t0N=0.3を超えるu10, u11が負例集合に識別されるので、
RN1={u10, u11}
となり、
U1={u2, u4, u7, u8}
RP1={u1, u3, u5, u6, u9}
となる。
【0103】
次に、ステップS122で、スパイ作成部151が、i=1に対して
spy11={u3}
spy12={u9}
spy1N={u10}
をスパイ素性列として選択したとする。
【0104】
続いて、ステップS123で、学習部152が、RP11-spy11,RP12-spy12,RN1-spy1N, U1+spy1を用いて識別モデルME1を学習する。
【0105】
クラスj=1, j=2及びクラスNについてはスパイ素性列が1つずつしか存在しないため、ステップS124で、閾値決定部153が、
t1j=1=p(j=1|u3)=0.55
t1j=2=p(j=2|u9)=0.6
t1N=p(N|u10)=0.6
を設定する。
【0106】
また、閾値tUはp(U|u3) , p(U|u9), p(U|u10)のうちの最大値を取り、tU=0.3だったと仮定する。
【0107】
次のステップS125において、クラス識別部154が、U1={u2, u4, u7, u8}が含む各素性列の識別を行う。素性列u2について条件付確率を計算した結果が以下のようになっているとする。
【0108】
p(j=1|u2)=0.7
p(j=2|u2)=0.05
p(N|u2)=0.1
p(U|u2)=0.15
ここで、p(U|u2)はtU=0.6より小さく、argmaxj∈C p(j|u2)とするクラスj=1において、p(j=1|u2)=0.7 > t1(=0.55)なので、素性列u2はクラス1の正例集合RP21に識別される。
【0109】
同様に素性列u4,u7, u8∈U1について条件付確率を計算した結果を
p(j=1|u4)=0.1
p(j=2|u4)=0.7
p(N|u4)=0.1
p(U|u4)=0.1
p(j=1|u7)=0.7
p(j=2|u7)=0.1
p(N|u7)=0.15
p(U|u7)=0.05
p(j=1|u8)=0.25
p(j=2|u8)=0.4
p(N|u8)=0.15
p(U|u8)=0.2
とすると、素性列u4はクラス2の正例集合RP22に、素性列u7はクラス1の正例集合RP21に識別される。一方、素性列u8はargmaxj∈C p(j|u8)となるクラスはj=2であるが、p(c2|u8)=0.4 > t2(=0.6)であるため、PR22には識別されず、ラベルなし集合U2へ識別される。このように閾値を設けることで、学習部152で作成した識別モデルME1に基づく識別結果を訂正することができる。よって、
RP21={u1, u2, u3, u7}
RP22={u4, u5, u6, u9}
RN2={u10, u11}
U2={u8}
となる。
【0110】
ここでは、新たにU1中の文u2,u4,u7がRP21, RP22又はRN2に割り当てられているため、ステップS126で停止条件判定部160は、i+1を新たなiとおいて(ステップS127)、ステップS122の処理に戻すように制御する。それにより、新たにRP2,RN2,U2に対してステップS122〜S126の処理が繰り返される。
【0111】
〔第2実施形態〕
次に、本発明の第2実施形態を説明する。本形態では、各クラスに対応する各正例集合、負例集合及びラベルなし集合をそれぞれV個(Vは予め設定された2以上の整数)の部分集合に分割し、部分集合ごとに閾値を定めてラベルなし集合の要素を識別し、その識別結果を統合して各正例集合、負例集合及びラベルなし集合の更新処理を行う。以下では、第1実施形態との相違点を中心に説明、第1実施形態と共通する部分については説明を省略する。また、第1実施形態と同一の処理部やステップについては、第1実施形態と同じ参照番号を付して説明を省略する。
【0112】
<構成>
図7に例示するように、本形態のデータ抽出装置2は、記憶部110,120,130と識別学習部240,250と停止条件判定部160と選択部170を有する。図8に例示するように、識別学習部240は、初期正例集合作成部241と初期ラベルなし集合作成部142とスパイ作成・分割部243と学習部244と閾値決定部245とクラス識別部246とを有する。クラス識別部246は、閾値判定部246Aと統合部246Bとを有する。図9に例示するように、識別学習部250は、スパイ作成・分割部251と、学習部252と、閾値決定部253と、クラス識別部254とを有する。また、クラス識別部254は、閾値判定部254Aと統合部254Bとを有する。
【0113】
なお、本形態のデータ抽出装置2は、例えば、CPU、RAMなどから構成される公知又は専用のコンピュータに所定のプログラムが読み込まれて実行されることで構成される特別な装置である。また、識別学習部240,250や停止条件判定部160や選択部170の少なくとも一部が集積回路などのハードウェアによって構成されてもよい。
【0114】
<処理>
次に、本形態の処理を説明する。
【0115】
[前提]
第1実施形態と同じである。
【0116】
[データ抽出処理]
まず、識別学習部240の初期正例集合作成部241(図8)が、記憶部120から抽出したシードエンティティペアの集合PSを用い、記憶部110に格納された母集合Dから抽出した素性列を初期要素とする正例集合RPijの集合をRPi={RPi1,...,RPij}を生成する。ただし、第1実施形態と異なり、各RP0j(j=1,2,…,c)及びRP0は以下の(A)及び(B)の条件を満たすものとする。
【0117】
(A-2) 各RP0j(j=1,2,…,c)にはV以上の素性列が含まれていること。
【0118】
(B-2) RP0に含まれる素性列の総数はVc+V以上であること。
【0119】
条件(A-2)を満たしていない場合、初期正例集合作成部241は、以下のいずれかの方法によって、条件(A-2)を満たすように調整を行う。
【0120】
(方法1-2)初期正例集合作成部241は、RP0jに含まれる素性列の数がV未満のクラスjについて、新しいシードエンティティペアの追加を要求し、追加されたシードエンティティペアをP0jに追加して記憶部120に格納する。初期正例集合作成部241は、追加されたシードエンティティペアに含まれる2エンティティ(eX,eY)を両方含むテキストに対応する素性列を母集合Dから抽出し、それを正例集合RP0jの要素に加える。このような処理が、各クラスjにそれぞれ対応するRP0jに含まれる素性列がそれぞれV以上になるまで繰り返される。
【0121】
(方法2-2)RP0jに含まれる素性列がV未満のクラスjを削除し、(A-2)の条件を満たすクラスのみが存在するものとして、以下の処理を進める。
【0122】
条件(B-2)を満たしていない場合の処理は第1実施形態と同様である。
【0123】
初期正例集合作成部241は、以上の処理によって生成した正例集合RP0jの集合RP0={RP01,...,RP0j}を記憶部130に格納する(ステップS211)。
【0124】
次に、第1実施形態のステップS112で説明したように、初期ラベルなし集合作成部142(図8)が、ラベルなし集合U0を生成する(ステップS112)。
【0125】
次に、スパイ作成・分割部243(図8)が、記憶部130に格納された各クラスjに対応する正例集合RP0jをそれぞれV個の部分集合に分割し、各部分集合からそれぞれ選択された要素を初期スパイ素性列とする。すなわち、本形態では、クラスjに対応する正例集合RP0jをV個の部文集合に分割したものを
RP0j={spy0j(1),…,spy0j(V)} …(16)
とし、初期スパイ素性列の集合spy0
spy0={spy0(1),…,spy0(V)} …(17)
のようにV個の部分集合からなるものとし、これらの各部文集合を
spy0(v)={spy01(v),…,spy0c(v)} (v=1,2,3,…,V) …(18)
とする。
【0126】
スパイ作成・分割部243は、生成した初期スパイ素性列の集合spy0を記憶部130に格納する(ステップS213)。
【0127】
次に、学習部244が、部分集合v(v=1,2,3,…,V)ごとに独立に、各正例集合RP0j (j=1,...,c)に属する素性列と当該素性列が正例集合正例集合RP0jに属することを表すラベルjとの組、及び、初期ラベルなし集合作成部142で生成されたラベルなし集合U0に属する素性列と当該素性列がラベルなし集合U0に属することを表すラベルUとの組を学習データとして用い、どのような素性から構成される素性列の場合にどのようなラベルが表す集合に属することになり易いかということを機械学習し、与えられた素性列及びラベルに対して当該与えられた素性列が当該与えられたラベルの表す集合に属することになり易いかということを表す指標を出力する初期識別モデルME0(v)を生成する。本形態では、第1実施形態と同様な機械学習方式を用いる。この場合、与えられた素性列及びラベルに対して当該与えられた素性列が当該与えられたラベルの表す集合に属することになり易いかということを表す指標は、条件付確率で与えられる。
【0128】
例えば、学習部244は、部分集合v(v=1,2,3,…,V)ごとに独立に、差集合(RP0j−spy0j(v))とラベルjとの組、及び、ラベルなし集合U0とラベルUとの組を学習データとして用い、最大エントロピー原理に基づく識別学習により、差集合(RP0j−spy0j(v))の要素をxとした場合の条件付確率p(j|x)とラベルなし集合U0の要素をxとした場合の条件付確率p(U|x)とに対応するエントロピーを最大化する初期識別モデルME0(v) (v=1,2,3,…,V)を生成する。なお、部分集合v(v=1,2,3,…,V)ごとに独立に機械学習を行うのではなく、第1実施形態と同様にV個の分割を一度無視して機械学習を行って初期識別モデルをME0を得た後に,ME0をME0 (v) (v=1,2,3,…,V)とみなして用いてもよい。
【0129】
学習部244は、生成した初期識別モデルME0(v) (v=1,2,3,…,V)を記憶部130に格納する(ステップS214)。
【0130】
次に、閾値決定部245(図8)が、部分集合v(v=1,2,3,…,V)ごとに独立に、ラベルなし集合U0に対応するラベルUと記憶部130に格納された初期スパイ素性列の集合spy0(v)に属する初期スパイ素性列とを初期識別モデルME0(v)に与え、初期スパイ素性列がラベルなし集合U0に属することになり易いか,逆に言えば正例集合RP0に属することになりにくいか,ということを表す指標である第1基準指標を生成し、当該第1基準指標に対応する第1閾値t0N(v)を決定する。本形態の閾値決定部245は、例えば、初期識別モデルME0(v)を用い、初期スパイ素性列の集合spy0(v)に属する初期スパイ素性列spyとラベルUとに対する条件付確率P(U|spy)の最大値
【0131】
【数12】

を第1閾値t0N(v)とする。
【0132】
また、式(19)の代わりに、初期スパイ素性列の集合spy0(v)に属する初期スパイ素性列spyとラベルUとに対する条件付確率P(U|spy)の平均値
【0133】
【数13】

を第1閾値t0N(v)としてもよい。
【0134】
さらに、第1閾値t0N(v)に加えて、初期スパイ素性列の集合spy0(v)に属する初期スパイ素性列spyとラベルjとに対する条件付確率P(j|spy)の平均値
【0135】
【数14】

を閾値t0j(v)として求めてもよい。
【0136】
閾値決定部245は、以上のように生成した第1閾値t0N(v)(及び閾値t0j(v))を記憶部130に格納する(ステップS215)。
【0137】
次に、クラス識別部246(図8)の閾値判定部246Aが、各部分集合v(v=1,2,3,…,V)について、ラベルなし集合U0を表すラベルUとラベルなし集合U0に属する各素性列とを初期識別モデルME0(v)に与え、当該ラベルなし集合U0に属する各素性列がラベルなし集合に属することになり易いかということを表す指標である第1指標を当該ラベルなし集合U0に属する各素性列に対してそれぞれ生成し、当該第1指標と第1閾値t0N(v)とを比較する。閾値判定部246Aは、当該比較結果に基づき、各部分集合v(v=1,2,3,…,V)について、当該ラベルなし集合U0に属する各素性列が負例集合RN1(v)に属するか否かを識別し、負例集合RN1(v)に属すると識別された素性列を負例集合RN1(v)の要素とする。例えば、閾値判定部246Aは、閾値決定部245で決定された各閾値と学習部244で生成された初期識別モデルME0(v)とを用い、
pv(U|u)>t0N(v) …(22)
を満たすか否かを判定し、これを満たす素性列uを負例集合RN1(v)の要素とする。なお、pv(U|u)は、初期識別モデルME0(v)を用いて生成された条件付確率を表す。
【0138】
また、例えば、閾値判定部246Aは、記憶部130から読み出した各クラスjに対応する正例集合RP0j (j=1,...,c)をそれぞれV個の部分集合に分割し、それらをRP1j(1),…,RP1j(V)とし、RP1j(v) (v=1,...,V)を正例集合RN1(v)の要素とする。
【0139】
なお、閾値決定部245で閾値t0j(v)(j=1,...,c)が生成される場合には、正例集合RP0j(v)(j=1,...,c)を正例集合RP1j(v)とする代わりに、ラベルなし文集合U0に含まれる素性列uのうち、
pv(j|u)>t0j(v) …(23)
を満たすものを正例集合RP1j(v)に属すると識別し、正例集合RP1j(v)に属すると識別された素性列をそれぞれ正例集合RP1j(v)の要素としてもよい(ステップS216)。
【0140】
次に、統合部246BがRN1(1),...,RN1(V)とRP1j(1),...,RP1j(V)(j=1,...,c)とを入力とし、統合部246Bは、第1判定閾値個以上の第1閾値t0N(v)に対して第1判定条件を満たすと判定された第1指標に対応する素性列を負例集合RN1の要素とする。すなわち、統合部246Bは、第1判定閾値個以上のRN1(1),...,RN1(V)が含む同一の素性列を負例集合RN1の要素とする。また、統合部246Bは、第1判定閾値個以上のRP1j(1),...,RP1j(V)が含む同一の素性列を正例集合RP1jの要素とする。
【0141】
ここで、第1判定閾値の例は、V/2, V, 1などの値から選択可能である。例えば、Vを選択した場合は、V/2を選択した場合よりも精度の高い正例及び負例を集めることができるが、正例や負例の数が少なくなってしまう危険性がある。1を選択した場合は、精度が他の第1判定閾値の場合よりも低くなる可能性があるものの、より多くの正例及び負例を集めることができると言える。これらの第1判定閾値のうちV/2は、システムが出力する正例や負例の精度(適合率)との網羅性(再現率)のバランスを取った平均的な閾値といえる。このように、本形態では、第1判定閾値の選択に応じて、抽出できる正例及び負例の精度や数を調整することができる。さらに、統合部246Bは、D−RP1−RN1(RP1={RP11,…,RP1C})を新たなラベルなし文集合U1として作成する(ステップS217)。
【0142】
次に、停止条件判定部160(図7)がi=1に設定する(ステップS121)。
【0143】
次に、識別学習部250のスパイ作成・分割部251(図9)が、記憶部130に格納された各クラスjに対応する正例集合RPijをそれぞれV個の部分集合に分割し、各部分集合からそれぞれ選択された要素を正例スパイ素性列する。また、スパイ作成・分割部251は、記憶部130に格納された負例集合RNiをそれぞれV個の部分集合に分割し、各部分集合からそれぞれ選択された要素を負例スパイ素性列とする。本形態のスパイ作成・分割部251は、例えば、RPij (j=1,2,…,c)およびRNiをそれぞれV個の部分集合に分割し、スパイ文集合spyi={spyi(1),…,spyi(V)}を作成する。ここで、
spyi(v)={spyi1(v),…,spyic(v),spyiN(v)} v=1,2,3,…,V
spyij={spyij(1),…,spyij(V)}, spyi={spyi(1),…,spyi(V)}
である。
【0144】
スパイ作成・分割部251は、生成したスパイ文集合spyi={spyi(1),…,spyi(V)}を記憶部130に格納する(ステップS222)。
【0145】
次に、学習部252(図3)が、部分集合v(v=1,2,3,…,V)ごとに独立に、正例集合RPij (j=1,...,c)に属する素性列と当該素性列が正例集合に属することを表すラベルjとの組、及び、負例集合RN1に属する素性列と当該素性列が負例集合RNiに属することを表すラベルNとの組を学習データとして用い、どのような素性から構成される素性列の場合にどのようなラベルが表す集合に属することになり易いかということを機械学習し、与えられた素性列及びラベルに対して当該与えられた素性列が当該与えられたラベルの表す集合に属することになり易いかということを表す指標を出力する識別モデルMEi(v)を生成する。ここでの機械学習は、前述のステップS214と同様に行う。この場合、与えられた素性列及びラベルに対して当該与えられた素性列が当該与えられたラベルの表す集合に属することになり易いかということを表す指標は、条件付確率で与えられる。
【0146】
例えば、学習部252は、部分集合v(v=1,2,3,…,V)ごとに独立に、各クラスj(j∈C)における各正例集合RPij (j=1,...,c)から、当該クラスjに対応する正例スパイ素性列の集合spyij(v)を差し引いた差集合(RPij−spyij(v))(j=1,...,c)とラベルj(j=1,...,c)との組、負例集合RNiから負例スパイ素性列の集合spyiN(v)を差し引いた差集合(RNi−spyiN(v))とラベルNとの組、及び、ラベルなし集合Uiとスパイ素性列の集合spyiとの和集合(Ui+spyi(v))とラベルUとの組を学習データとして用い、前述した最大エントロピー原理に基づく識別学習により、識別モデルMEi(v)を求める。なお、部分集合v(v=1,2,3,…,V)ごとに独立に機械学習を行うのではなく、第1実施形態と同様にV個の分割を一度無視して機械学習を行って初期識別モデルをMEiを得た後に、MEiをMEi (v) (v=1,2,3,…,V)とみなして用いてもよい。
【0147】
学習部252は、生成した識別モデルMEi(v)を記憶部130に格納する(ステップS223)。
【0148】
次に、閾値決定部253(図9)が、部分集合v(v=1,2,3,…,V)ごとに独立に、正例集合RPijを表すラベルj(j=1,...,c)と記憶部130に格納された正例スパイ素性列(spyij(v)の要素)とを識別モデルMEi(v)に与え、正例スパイ素性列が正例集合RPijに属することになり易いかということを表す指標である正例基準指標を生成し、当該正例基準指標に対応する正例閾値tij(v) (j=1,...,c)を決定する。さらに、閾値決定部253は、負例集合RNiを表すラベルNと記憶部130に格納された負例スパイ素性列(spyij(v)の要素)とを識別モデルMEi(v)に与え、負例スパイ素性列が負例集合に属することになり易いかということを表す指標である負例基準指標を生成し、当該負例基準指標に対応する負例閾値tiNを決定する。本形態の閾値決定部253は、例えば、識別モデルMEi(v)を用い、スパイ素性列の集合spy0(v)に属するスパイ素性列spyとラベルj=1,2,…,cとNとを用い、以下のように正例閾値tij(v) (j=1,...,c)と負例閾値tiN(v)とを生成する。
【0149】
クラスjに対する正例閾値tij(v):
【0150】
【数15】

クラスNに対する負例閾値tiN(v):
【0151】
【数16】

なお、式(25)(26)の代わりに以下のように正例閾値tijと負例閾値tiNとが生成されてもよい。
【0152】
クラスjに対する正例閾値tij(v):
【0153】
【数17】

クラスNに対する負例閾値tiN(v):
【0154】
【数18】

閾値決定部253は、生成した正例閾値tij(v)と負例閾値tiN(v)とを出力する(ステップS224)。
【0155】
次に、クラス識別部254(図9)が、部分集合v(v=1,2,3,…,V)ごとに独立に、正例集合RPijを表すラベルjとラベルなし集合Uiに属する各素性列とを識別モデルMEi(v)に与え、当該ラベルなし集合Uiに属する各素性列が当該ラベルjによって表される正例集合RPijに属することになり易いかということを表す指標である正例指標を当該ラベルなし集合Uiに属する各素性列に対してそれぞれ生成し、当該正例指標と正例閾値tij(v)とを比較する。また、クラス識別部254は、部分集合v(v=1,2,3,…,V)ごとに独立に、負例集合RNiを表すラベルNとラベルなし集合Uiに属する各素性列とを識別モデルMEi(v)に与え、当該ラベルなし集合Uiに属する各素性列が負例集合RNiに属することになり易いかということを表す指標である負例指標tiN(v)を当該ラベルなし集合に属する各素性列に対してそれぞれ生成し、当該負例指標と負例閾値とを比較する。クラス識別部254は、これらの比較結果に応じて、部分集合v(v=1,2,3,…,V)ごとに独立に、ラベルなし集合Uiに属する各素性列を正例集合RPi+1jと負例集合RNi+1jとに振り分ける。例えば、クラス識別部254は、各v=1,2,…,Vについて、RPi(v), RNi(v), Uiに含まれる素性列xのうち、argmaxj'∈C'p(j'|x)となるクラスj'∈C'がp(j'|x)>tij'(v)を満たす場合に、素性列xをクラスj'に対応する集合に識別する。つまり、j'が正例集合に対応するのであれば正例集合RPi+1j(v)、負例集合に対応するのであれば負例集合RNi(v)に識別される(ステップS225)。
【0156】
次に、統合部254BがRNi(1),...,RNi(V)とRPij(1),...,RPij(V)(j=1,...,c)とを入力とし、統合部254Bは、第2判定閾値個以上の正例閾値tij(v)に対して第2判定条件を満たすと判定された指標に対応する素性列を正例集合RPi+1の要素の要素とする。また、統合部254Bは、第3判定閾値個以上の負例閾値tiN(v)に対して第3判定条件を満たすと判定された指標に対応する素性列を負例集合RNi+1の要素とする。第2、3判定閾値は、例えば、第1判定閾値と同様に設定される。本形態では、判定閾値の選択に応じて、抽出できる正例及び負例の精度や数を調整することができる。また,RPi+1j (j=1,2,…,c)及びRNi+1のいずれにも識別されなかったものが、新たなラベルなし集合Ui+1の要素とされる(ステップS226)。
【0157】
その後、第1実施形態と同様にステップS126、S127、S128の処理が実行される。
【0158】
〔本形態の特徴〕
以上説明したように、第1、2実施形態では、繰り返し処理ごとに識別モデルとスパイ素性列とから閾値を決定し、決定した閾値を用いた判断基準に従って、正例集合、負例集合及びラベルなし集合を更新する。
【0159】
これにより、繰り返し処理ごとに変化する識別モデルに応じて適切な閾値を自動的に定めることができ、生成された閾値を用いて正例集合、負例集合及びラベルなし集合を更新することで、信頼度の低い識別結果にひきずられ、間違った方向へ学習が進む問題を解消し、高精度な関係抽出を行うことが可能となる。
【0160】
また、広範囲な機械学習方式を利用できるため、単語以外の一般的な識別に有用と思われる素性を利用して識別(関係抽出)を行うことができる。
【0161】
さらに、スパイアルゴリズムをマルチクラスへ拡張した手法を利用することにより、負例作成時の恣意性や網羅性、ノイズの問題を削減できる。
【0162】
〔変形例等〕
なお、本発明は上述の実施の形態に限定されるものではない。例えば、上述の実施形態では、コーパスが予め素性変換されている例を示したが、正例集合の初期要素を生成した後など、その他のタイミングでコーパスを素性変換してもよい。
【0163】
また、上記の実施形態では、最大エントロピー法を用いて学習を行ったが、サポートベクトルマシンなどその他の周知の機械学習方式が用いられてもよい。なお、最大エントロピー法を用いた場合の「与えられた素性列及びラベルに対して当該与えられた素性列が当該与えられたラベルの表す集合に属することになり易いかということを表す指標」は条件付確率であったが、サポートベクトルマシンを用いた場合の同様の指標は距離となる。
【0164】
また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【0165】
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【0166】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【0167】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0168】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0169】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【0170】
1,2 データ抽出装置

【特許請求の範囲】
【請求項1】
テキストに対応する複数の素性からなる素性列を要素とする母集合のうち、特定の記号列であるシードエンティティの組み合わせと関連性があると識別された素性列を要素とする集合を正例集合とし、前記シードエンティティの組み合わせと関連性がないと識別された素性列を要素とする集合を負例集合とし、前記シードエンティティの組み合わせとの関連性が識別されていない素性列を要素とする集合をラベルなし集合とした場合における、前記シードエンティティの組み合わせを含むテキストに対応する複数の素性からなる素性列を前記正例集合の初期要素とする初期正例集合作成部と、
前記母集合から前記正例集合の初期要素を除いた差集合の少なくとも一部の要素を前記ラベルなし集合の初期要素とする初期ラベルなし集合作成部と、
前記正例集合から選択された要素を初期スパイ素性列とする第1スパイ作成部と、
前記正例集合に属する素性列と当該素性列が前記正例集合に属することを表すラベルとの組、及び、前記ラベルなし集合に属する素性列と当該素性列が前記負例集合に属することを表すラベルとの組を学習データとして用い、どのような素性から構成される素性列の場合にどのようなラベルが表す集合に属することになり易いかということを機械学習し、与えられた素性列及びラベルに対して当該与えられた素性列が当該与えられたラベルの表す集合に属することになり易いかということを表す指標を出力する初期識別モデルを生成する第1学習部と、
前記ラベルなし集合を表すラベルと前記初期スパイ素性列とを前記初期識別モデルに与え、前記初期スパイ素性列が前記ラベルなし集合に属することになり易いかということを表す指標である第1基準指標を生成し、当該第1基準指標に対応する第1閾値を決定する第1閾値決定部と、
前記ラベルなし集合を表すラベルと前記ラベルなし集合に属する各素性列とを前記初期識別モデルに与え、当該ラベルなし集合に属する各素性列が前記ラベルなし集合に属することになり易いかということを表す指標である第1指標を当該ラベルなし集合に属する各素性列に対してそれぞれ生成し、当該第1指標と前記第1閾値とを比較することで当該ラベルなし集合に属する各素性列が前記負例集合に属するか否かを識別し、前記負例集合に属すると識別された素性列を前記負例集合の要素とし、前記母集合から当該負例集合と前記正例集合とを除いた差集合に相当する集合を前記ラベルなし集合の要素とする第1クラス識別部と、
を有するデータ抽出装置。
【請求項2】
請求項1のデータ抽出装置であって、
前記正例集合から選択された要素を正例スパイ素性列とし、前記負例集合から選択された要素を負例スパイ素性列とする第2スパイ作成部と、
前記正例集合に属する素性列と当該素性列が前記正例集合に属することを表すラベルとの組、及び、前記負例集合に属する素性列と当該素性列が前記負例集合に属することを表すラベルとの組を学習データとして用い、どのような素性から構成される素性列の場合にどのようなラベルが表す集合に属することになり易いかということを機械学習し、与えられた素性列及びラベルに対して当該与えられた素性列が当該与えられたラベルの表す集合に属することになり易いかということを表す指標を出力する識別モデルを生成する第2学習部と、
前記正例集合を表すラベルと前記正例スパイ素性列とを前記識別モデルに与え、前記正例スパイ素性列が前記正例集合に属することになり易いかということを表す指標である正例基準指標を生成し、当該正例基準指標に対応する正例閾値を決定し、さらに、前記負例集合を表すラベルと前記負例スパイ素性列とを前記識別モデルに与え、前記負例スパイ素性列が前記負例集合に属することになり易いかということを表す指標である負例基準指標を生成し、当該負例基準指標に対応する負例閾値を決定する第2閾値決定部と、
前記正例集合を表すラベルと前記ラベルなし集合に属する各素性列とを前記識別モデルに与え、当該ラベルなし集合に属する各素性列が当該ラベルによって表される正例集合に属することになり易いかということを表す指標である正例指標を当該ラベルなし集合に属する各素性列に対してそれぞれ生成し、当該正例指標と前記正例閾値とを比較することで当該ラベルなし集合に属する各素性列が当該ラベルによって表される正例集合に属するか否かを識別し、当該ラベルによって表される正例集合に属すると識別された素性列を当該ラベルによって表される正例集合の要素に追加し、前記負例集合を表すラベルと前記ラベルなし集合に属する各素性列とを前記識別モデルに与え、当該ラベルなし集合に属する各素性列が前記負例集合に属することになり易いかということを表す指標である負例指標を当該ラベルなし集合に属する各素性列に対してそれぞれ生成し、当該負例指標と前記負例閾値とを比較することで当該ラベルなし集合に属する各素性列が前記負例集合に属するか否かを識別し、前記負例集合に属すると識別された素性列を前記負例集合の要素に追加し、前記母集合から当該負例集合と前記正例集合とを除いた差集合に相当する集合を新たなラベルなし集合とする第2クラス識別部と、
を有するデータ抽出装置。
【請求項3】
請求項2のデータ抽出装置であって、
1又は複数のクラスが設定され、前記シードエンティティの組み合わせは前記クラスごとに設定され、前記正例集合は前記クラスごとに対応し、素性列が前記正例集合に属することを表すラベルは、素性列が特定のクラスに対応する前記正例集合に属することを表す情報である、
ことを特徴とするデータ抽出装置。
【請求項4】
請求項3のデータ抽出装置であって、
前記初期スパイ素性列と前記正例スパイ素性列とは、それぞれ、前記クラスごとに生成される、
ことを特徴とするデータ抽出装置。
【請求項5】
請求項3のデータ抽出装置であって、
前記クラスごとに存在する前記正例集合はそれぞれ複数の部分集合に分割され、
前記初期スパイ素性列と前記正例スパイ素性列と前記負例スパイ素性列とは、それぞれ、前記部分集合ごとに生成され、
前記第1閾値決定部は、前記部分集合ごとに前記第1閾値を決定し、
前記第1クラス識別部は、前記第1指標と前記部分集合ごとに決定された複数の前記第1閾値とをそれぞれ比較して前記第1閾値ごとに前記第1指標が第1判定条件を満たすか否かを判定し、第1判定閾値個以上の前記第1閾値に対して前記第1判定条件を満たすと判定された前記第1指標に対応する素性列を前記負例集合の要素とし、
前記第2閾値決定部は、前記部分集合ごとに前記正例閾値及び前記負例閾値を決定し、
前記第2クラス識別部は、前記正例指標と前記部分集合ごとに決定された複数の前記正例閾値とをそれぞれ比較して前記正例閾値ごとに前記正例指標が正例判定条件を満たすか否かを判定し、第2判定閾値個以上の前記正例閾値に対して前記正例判定条件を満たすと判定された前記正例指標に対応する素性列を前記正例集合の要素に追加し、前記負例指標と前記部分集合ごとに決定された複数の前記負例閾値とをそれぞれ比較して前記負例閾値ごとに前記負例指標が負例判定条件を満たすか否かを判定し、第3判定閾値個以上の前記負例閾値に対して前記負例判定条件を満たすと判定された前記負例指標に対応する素性列を前記負例集合の要素に追加する、
ことを特徴とするデータ抽出装置。
【請求項6】
請求項2から5の何れかのデータ抽出装置であって、
予め定められた停止条件を満たすか否かを判定し、停止条件を満たさないと判定した場合に、前記第2スパイ作成部の処理と前記第2学習部の処理と前記第2閾値決定部の処理と前記第2クラス識別部の処理とを再び実行させる停止条件判定部と、
前記停止条件判定部が予め定められた停止条件を満たすと判定した場合、前記正例集合を表すラベルと前記正例集合に属する素性列とを前記識別モデルに与えることで得られる、前記正例集合に属する前記素性列が前記正例集合に属することになり易いかということを表す指標を基準として前記正例集合から素性列を選択する選択部と、
を有するデータ抽出装置。
【請求項7】
請求項2から5の何れかのデータ抽出装置であって、
予め定められた停止条件を満たすか否かを判定し、停止条件を満たさないと判定した場合に、前記第2スパイ作成部の処理と前記第2学習部の処理と前記第2閾値決定部の処理と前記第2クラス識別部の処理とを再び実行させる停止条件判定部と、
前記停止条件判定部が予め定められた停止条件を満たすと判定した場合、前記正例集合を表すラベルと前記正例集合に属する素性列が含む素性の組み合わせとを前記識別モデルに与えることで得られる、当該素性の組み合わせが前記正例集合に属することになり易いかということを表す指標を基準として、前記正例集合に属する素性列から素性の組み合わせを選択する選択部と、
を有するデータ抽出装置。
【請求項8】
初期正例集合作成部が、テキストに対応する複数の素性からなる素性列を要素とする母集合のうち、特定の記号列であるシードエンティティの組み合わせと関連性があると識別された素性列を要素とする集合を正例集合とし、前記シードエンティティの組み合わせと関連性がないと識別された素性列を要素とする集合を負例集合とし、前記シードエンティティの組み合わせとの関連性が識別されていない素性列を要素とする集合をラベルなし集合とした場合における、前記シードエンティティの組み合わせを含むテキストに対応する複数の素性からなる素性列を前記正例集合の初期要素とするステップと、
初期ラベルなし集合作成部が、前記母集合から前記正例集合の初期要素を除いた差集合の少なくとも一部の要素を前記ラベルなし集合の初期要素とするステップと、
第1スパイ作成部が、前記正例集合から選択された要素を初期スパイ素性列とするステップと、
第1学習部が、前記正例集合に属する素性列と当該素性列が前記正例集合に属することを表すラベルとの組、及び、前記ラベルなし集合に属する素性列と当該素性列が前記負例集合に属することを表すラベルとの組を学習データとして用い、どのような素性から構成される素性列の場合にどのようなラベルが表す集合に属することになり易いかということを機械学習し、与えられた素性列及びラベルに対して当該与えられた素性列が当該与えられたラベルの表す集合に属することになり易いかということを表す指標を出力する初期識別モデルを生成するステップと、
第1閾値決定部が、前記ラベルなし集合を表すラベルと前記初期スパイ素性列とを前記初期識別モデルに与え、前記初期スパイ素性列が前記ラベルなし集合に属することになり易いかということを表す指標である第1基準指標を生成し、当該第1基準指標に対応する第1閾値を決定するステップと、
第1クラス識別部が、前記ラベルなし集合を表すラベルと前記ラベルなし集合に属する各素性列とを前記初期識別モデルに与え、当該ラベルなし集合に属する各素性列が前記ラベルなし集合に属することになり易いかということを表す指標である第1指標を当該ラベルなし集合に属する各素性列に対してそれぞれ生成し、当該第1指標と前記第1閾値とを比較することで当該ラベルなし集合に属する各素性列が前記負例集合に属するか否かを識別し、前記負例集合に属すると識別された素性列を前記負例集合の要素とし、前記母集合から当該負例集合と前記正例集合とを除いた差集合に相当する集合を前記ラベルなし集合の要素とするステップと、
を有するデータ抽出方法。
【請求項9】
請求項8のデータ抽出方法であって、
第2スパイ作成部が、前記正例集合から選択された要素を正例スパイ素性列とし、前記負例集合から選択された要素を負例スパイ素性列とするステップと、
第2学習部が、前記正例集合に属する素性列と当該素性列が前記正例集合に属することを表すラベルとの組、及び、前記負例集合に属する素性列と当該素性列が前記負例集合に属することを表すラベルとの組を学習データとして用い、どのような素性から構成される素性列の場合にどのようなラベルが表す集合に属することになり易いかということを機械学習し、与えられた素性列及びラベルに対して当該与えられた素性列が当該与えられたラベルの表す集合に属することになり易いかということを表す指標を出力する識別モデルを生成するステップと、
第2閾値決定部が、前記正例集合を表すラベルと前記正例スパイ素性列とを前記識別モデルに与え、前記正例スパイ素性列が前記正例集合に属することになり易いかということを表す指標である正例基準指標を生成し、当該正例基準指標に対応する正例閾値を決定し、さらに、前記負例集合を表すラベルと前記負例スパイ素性列とを前記識別モデルに与え、前記負例スパイ素性列が前記負例集合に属することになり易いかということを表す指標である負例基準指標を生成し、当該負例基準指標に対応する負例閾値を決定するステップと、
第2クラス識別部が、前記正例集合を表すラベルと前記ラベルなし集合に属する各素性列とを前記識別モデルに与え、当該ラベルなし集合に属する各素性列が当該ラベルによって表される正例集合に属することになり易いかということを表す指標である正例指標を当該ラベルなし集合に属する各素性列に対してそれぞれ生成し、当該正例指標と前記正例閾値とを比較することで当該ラベルなし集合に属する各素性列が当該ラベルによって表される正例集合に属するか否かを識別し、当該ラベルによって表される正例集合に属すると識別された素性列を当該ラベルによって表される正例集合の要素に追加し、前記負例集合を表すラベルと前記ラベルなし集合に属する各素性列とを前記識別モデルに与え、当該ラベルなし集合に属する各素性列が前記負例集合に属することになり易いかということを表す指標である負例指標を当該ラベルなし集合に属する各素性列に対してそれぞれ生成し、当該負例指標と前記負例閾値とを比較することで当該ラベルなし集合に属する各素性列が前記負例集合に属するか否かを識別し、前記負例集合に属すると識別された素性列を前記負例集合の要素に追加し、前記母集合から当該負例集合と前記正例集合とを除いた差集合に相当する集合を新たなラベルなし集合とするステップと、
停止条件判定部が、予め定められた停止条件を満たすか否かを判定し、停止条件を満たさないと判定した場合に、前記第2スパイ作成部の処理と前記第2学習部の処理と前記第2閾値決定部の処理と前記第2クラス識別部の処理とを再び実行させるステップと、
を有するデータ抽出方法。
【請求項10】
請求項1から7の何れかのデータ抽出装置としてコンピュータを機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate