説明

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

【課題】効率的にセマンティックドリフトを軽減する。
【解決手段】正例エンティティとその属性とのペアの素性と、負例エンティティとその属性とのペアの素性とを教師あり学習データとした学習処理によって識別モデルを生成し、対象エンティティと対象属性とのペアの素性を識別モデルに入力して、対象エンティティが正例エンティティを識別する。この際、対象属性が正例か否かの判定結果を出力し、人手による修正内容の入力を受け付ける。人手による修正内容を利用して正例属性を定める。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、テキストデータの集合からデータを抽出する技術に関し、特に、特定の内容と関連を持つ文字列を入力として同じような関連を持つ文字列をテキストデータの集合から抽出する技術に関する。
【背景技術】
【0002】
現在様々な自然言語処理技術の研究開発が進み、WEBのような膨大な知識源から必要な情報を抽出する手法が多く存在している。そのような手法の一つに、特定の内容と何らかの関連を持つ文字列(例えば<広島>や<阪神>など)を入力として、大量のテキストデータ(例えば文書データ)から同じような関連を持つ文字列(例えば<ヤクルト>など)を収集するものがある。このような手法を「set expansion」と呼ぶ。また、set expansionで扱われる文字列を「エンティティ」と呼び、抽出対象のエンティティを「正例エンティティ」と呼び、抽出しない(抽出対象としない)エンティティを「負例エンティティ」と呼ぶ。さらに、set expansionにおいて最初に入力されるエンティティを「シードエンティティ」と呼び、正例のシードエンティティを「正例シードエンティティ」と呼び、負例のシードエンティティを「負例シードエンティティ」と呼ぶ。
【0003】
set expansionの手法として一般的に用いられているのがブートストラップ法である。ブートストラップ法とは、一度学習したモデルに基づいて識別を行い、それを新たな学習データとして用いていく繰り返し学習の枠組みである。
【0004】
set expansionの代表的な手法として、TChai(特許文献1等参照)が知られている。このような手法により、自動的に新しいエンティティを獲得することができるが、システムのみによる完全な自動処理には限界があり、抽出対象としていないエンティティが誤って獲得されてしまうことも多い。
【0005】
そこで、システムによる識別結果(抽出対象となるエンティティ)を人手で修正し、適切なエンティティのみを新たなエンティティ集合として、繰り返し学習を行う半自動の技術(非特許文献2等参照)が提案されている。これをアクティブラーニング法と呼ぶ。この技術では、人手で修正された結果のみをそのまま修正内容として用いるのではなく、その修正により影響される可能性がある他のエンティティ候補についても自動的に修正を行うことで、できるだけ人手の介入のコストを削減し、高精度なエンティティ獲得を行う。非特許文献2の例では、SIM(Similarity Method)及びFMM(Feature Modification Method)という2つの方法が提案されている。これらの方法では、システムが正例と判断したエンティティをユーザに提示し、その判断の正しさについてユーザに確認を求める。
【0006】
SIMでは、システムが正例と識別し、ユーザに確認を求めた正例エンティティにおいて、ユーザが負例を発見した場合、ユーザが負例と判断したエンティティだけではなく、それと素性の類似度が高いエンティティも正例エンティティの集合から削除する。類似度にはコサイン類似度等が用いられ、負例と判断されたエンティティと素性の類似度が閾値以上のエンティティが、正例エンティティの集合から削除される。例えば、非特許文献2の例では、類似度としてPMI(pointwise mutual information)で重み付けされた素性のコサイン類似度が用いられる。
【0007】
FMMでは、上記と同様にユーザが負例を発見した場合、現在の正例エンティティの集合に含まれる素性に対するスコアと、当該正例エンティティの集合に含まれる素性からユーザが負例と判断したエンティティの素性に共通する要素を排除した素性に対するスコアとの間の変動量が評価され、それが所定の閾値以上となるエンティティが正例エンティティの集合から削除される。SIMではエンティティを削除しすぎる傾向があるのに対し、FMMはそれを抑える効果がある。
【先行技術文献】
【非特許文献】
【0008】
【非特許文献1】小町守,鈴木久美,「検索ログからの半教師あり意味知識獲得の改善」,人工知能学会論文誌,Vol. 23,No. 3,2008,p. 217-225.
【非特許文献2】Vishnu Vyas and Patrick Pantel, "Semi-Automatic Entity Set Refinement," NAACL/HLT 2009, 2009, pp. 290-298.
【発明の概要】
【発明が解決しようとする課題】
【0009】
従来のset expansionにはセマンティックドリフトという課題が存在する。例えば球団名を表す<広島><阪神>という正例シードエンティティに対して、従来のset expansionにより正例エンティティ<ヤクルト>が獲得できたとする。<ヤクルト>は飲料名でもあるので、<ヤクルト>を新たに正例エンティティに追加することで次のイテレーションでは<コーラ>等の飲料系のエンティティが正例エンティティとして獲得されるようになり、獲得される正例エンティティの話題がシフトしていく可能性がある。このように獲得される正例エンティティの話題がシフトしていく現象をセマンティックドリフトと呼ぶ。
【0010】
非特許文献2で述べられている手法は、セマンティックドリフトを抑制する手段として効果的である。しかしながら、非特許文献2では、ユーザによって修正されたエンティティをどのように用いるのかが効果的かという点に着目されており、どのような情報をユーザに確認させるのが効果的かという点については提案されていない。
【0011】
本発明はこのような点に鑑みてなされたものであり、人手による修正コストを小さくし、かつ、セマンティックドリフトを効率的に軽減する技術を提供することを目的とする。
【課題を解決するための手段】
【0012】
抽出対象の文字列である正例エンティティの集合から選択した第1正例エンティティと正例エンティティの属性を表す文字列である正例属性の集合から選択した第1正例属性との組である第1正例エンティティ−正例属性ペアを生成し、テキストデータの集合から、第1正例エンティティと第1正例属性との組を含む文字列を選択し、選択した当該文字列に対する第1正例エンティティ−正例属性ペアの特徴を表す情報を当該第1正例エンティティ−正例属性ペアの素性の少なくとも一部とする。第1正例エンティティ−正例属性ペアの素性を教師あり学習データとした学習処理によって、任意の文字列であるエンティティと当該エンティティの属性との組であるエンティティ−属性ペアの素性を入力として当該エンティティ−属性ペアが正例エンティティ−正例属性ペアであるかを識別するための情報を出力する関数である第1識別モデルを生成する。テキストデータの集合から何れかのテキストデータを選択し、選択した当該テキストデータが含む文字列を第1対象エンティティとして選択し、選択した当該テキストデータから当該第1対象エンティティと異なる文字列を第1対象属性として選択し、第1対象エンティティと第1対象属性との組を第1対象エンティティ−対象属性ペアとし、選択した当該テキストデータ内での第1対象エンティティ−対象属性ペアの特徴を表す情報を当該第1対象エンティティ−対象属性ペアの素性の少なくとも一部とし、当該第1対象エンティティ−対象属性ペアの素性を第1識別モデルに入力して当該第1対象エンティティ−対象属性ペアが正例エンティティ−正例属性ペアであるかを識別するための情報を得る。第1対象エンティティ−対象属性ペアが含む第1対象属性の集合の部分集合を、属性修正候補の集合として選択し、属性修正候補の集合を出力する。属性修正候補の集合の何れかの要素を特定する属性修正情報が入力され、第1対象属性の集合から属性修正情報で特定される要素を除いた補集合に含まれる要素を、正例属性の集合の要素とする。
【発明の効果】
【0013】
本発明では、属性修正候補の集合を出力し、その何れかの要素を特定する属性修正情報が入力され、属性修正情報を用いて正例属性の集合の要素とする属性を定める。これによって正例属性の集合の要素を人手によって処理できるが、属性は一以上のエンティティに対応する場合が多く、人手による属性の処理コストは人手による個々のエンティティの処理コストよりも小さい。本発明では、このように人手によって処理された正例属性の集合がエンティティの識別に反映されるため、セマンティックドリフトを効率的に軽減できる。
【図面の簡単な説明】
【0014】
【図1】図1は、実施形態のデータ抽出装置の機能構成を例示するためのブロック図である。
【図2】図2は、実施形態のデータ抽出装置の処理を例示するための図である。
【図3】図3は、実施形態のデータ抽出装置の処理を例示するための図である。
【図4】図4は、記憶部に格納されたテキストデータの集合Dを例示した図である。
【図5】図5Aは、属性識別用素性抽出部が出力する組(fPaj, <+1>)及び組(fNaj, <-1>)を例示した図である。図5Bは、エンティティ識別用素性抽出部が出力する組(fPej, <+1>)及び組(fNej, <-1>)を例示した図である。
【図6】図6は、実施形態のデータ抽出装置の機能構成を例示するためのブロック図である。
【図7】図7は、実施形態のデータ抽出装置の処理を例示するための図である。
【発明を実施するための形態】
【0015】
以下、図面を参照して本発明の実施形態を説明する。
【0016】
〔第1実施形態〕
<構成>
図1に例示するように、第1実施形態のデータ抽出装置1は、記憶部101−105、制御部106、初期属性集合生成部107、属性識別用素性抽出部108、属性識別学習部109、属性識別部110、属性修正候補選択部111、属性修正候補提示部112、属性修正情報取得部113、基準更新部114、属性修正情報反映部115、エンティティ識別用素性抽出部116、エンティティ識別学習部117、エンティティ識別部118、収束判定部119、及び出力部120を有し、制御部106の制御のもと各処理を実行する。
【0017】
なお、データ抽出装置1は、例えば、CPU(central processing unit)、RAM(random-access memory)及びROM(read-only memory)等を含む公知又は専用のコンピュータに特別なプログラムが読み込まれて構成される特別な装置である。記憶部101−105は、例えば、ハードディスクや半導体メモリなどであり、制御部106、初期属性集合生成部107、属性識別用素性抽出部108、属性識別学習部109、属性識別部110、属性修正候補選択部111、基準更新部114、属性修正情報反映部115、エンティティ識別用素性抽出部116、エンティティ識別学習部117、エンティティ識別部118、収束判定部119、及び出力部120は、例えば、特別なプログラムが読み込まれたCPUなどである。これらの少なくとも一部が集積回路などによって構成されてもよい。属性修正候補提示部112は、例えば、情報をユーザに提示するディスプレイなどのユーザインタフェース、又はそのようなユーザインタフェースに情報を出力する出力ポートなどである。属性修正情報取得部113は、例えば、ユーザからの情報の入力を受け付けるキーボード、マウスなどのユーザインタフェース、又はそのようなユーザインタフェースからの情報が入力される入力ポートなどである。また、図1に表記された矢印は情報の流れを表すが、表記の都合上一部の矢印が省略されている(以降に述べる他のブロック図も同様)。
【0018】
<前提>
記憶部101にテキストデータの集合Dが格納される。テキストデータとは、文字テキストを含むデータを意味する。テキストデータの例は、文書データ、クエリ、語句を含む図表データ、フレーズデータ、単語列データなどである。本形態では、形態素解析、固有表現抽出、係り受け解析、文境界同定などの前処理を行った後の文書データをテキストデータとした例を示す。図4はこのようなテキストデータの集合Dを例示した図である。図4のテキストデータの集合Dでは、このような前処理を行った後の文書データであるテキストデータと当該テキストデータのIDとが対応付けられている。
【0019】
なお、本形態ではテキストデータが含む文字列を「エンティティ」と呼び、抽出対象のエンティティを「正例エンティティ」と呼び、抽出しない(抽出対象としない)エンティティを「負例エンティティ」と呼ぶ。また、最初に入力されるエンティティを「シードエンティティ」と呼び、正例のシードエンティティを「正例シードエンティティ」と呼び、負例のシードエンティティを「負例シードエンティティ」と呼ぶ。
【0020】
また、エンティティの特徴を表すテキストデータ中の文字列を「属性」と呼ぶ。このような文字列の例は、名詞、単語、単語列、フレーズ、文などである。属性の具体例はエンティティの前後W単語以内に存在する名詞である。なお、Wはウィンドウサイズを表す1以上の整数である。例えば「阪神の試合速報・・・」というテキストデータ中の<阪神>がエンティティであり、ウィンドウサイズをW=3とした場合、<試合>と<速報>がエンティティ<阪神>の属性の候補とされる。互いに関連のある複数のエンティティには同一の属性が対応する。例えば、球団名であるエンティティ<広島>と同じく球団名であるエンティティ<ヤクルト>とは、同じ<試合>や<投手>などの属性が対応する。そのため、属性は探索対象となるエンティティが満たすべき制約条件となる。例えば、正例シードエンティティを球団名である<広島>とし、同じく球団名である<ヤクルト>というエンティティを獲得することを狙っていると仮定する。この場合、これらのエンティティに共通する属性は<試合>や<投手>などであり、例えば、正例シードエンティティ<広島>とその属性<試合>との組を用いてエンティティの識別が行われる。ここで、球団名である<ヤクルト>は正例エンティティであるが、<ヤクルト>には飲料名としての意味もある。よって<ヤクルト>はセマンティックドリフトが起こりやすいエンティティである。しかしながら、飲料名であるエンティティ<ヤクルト>の属性は<試合>や<投手>などではなく<乳酸菌>や<飲料>などである。エンティティとその属性との組を用いることでエンティティがどのような意味を指すかを特定でき、セマンティックドリフトを軽減できる。さらに本形態では、人手によって属性を検証し、その結果を用いて正例属性の集合の要素を定める。人手による属性の処理コストは人手による個々のエンティティの処理コストよりも小さいため、セマンティックドリフトを効率的にさらに軽減できる。
【0021】
<データ抽出処理>
図2及び3に例示するように、本形態では、エンティティと属性の更新を交互に行うco-training方式を用いる。すなわち、ステップS103−S111では正例及び負例エンティティの更新は行われず、正例及び負例属性の更新のみが行われる。一方ステップS112−S114では正例及び負例属性の更新は行われず、正例及び負例エンティティの更新のみが行われる。以下、図2及び3を用いてデータ抽出装置1のデータ抽出処理を例示する。
【0022】
《初期化:ステップS101》
制御部106がjの値をj=1に初期化する。
【0023】
《初期属性集合生成:ステップS102》
ユーザが欲するエンティティの例が正例シードエンティティRPe0として初期属性集合生成部107に入力される。例えば、<広島>などが正例シードエンティティとして入力される。また、負例シードエンティティRNe0が初期属性集合生成部107に入力される。例えば、<日本>などが負例シードエンティティとして入力される。正例シードエンティティRPe0は、ユーザによって選択されたものである。負例シードエンティティRNe0は、ユーザによって選択されたものであってもよいし、テキストデータの集合Dから半自動で生成されたものであってもよい。以下に負例シードエンティティRNe0を半自動で生成する方法を例示する。
【0024】
[負例シードエンティティRNe0の半自動生成方法の例]
負例シードエンティティ生成部(図示せず)が、テキストデータの集合Dから、何れの正例シードエンティティRPe0も後述する正例属性RPa0も含まないテキストデータを所定個数抽出し、抽出した各テキストデータから1つずつランダムに名詞を選択し、それらを負例エンティティ候補として出力する。表示部(図示せず)はこれらの負例エンティティ候補を表示し、これらから負例シードエンティティを選択するようにユーザに促す表示を行う。ユーザによる選択内容は負例シードエンティティ生成部に入力され、負例シードエンティティ生成部は、選択された負例エンティティ候補を正例シードエンティティRPe0として出力する([負例シードエンティティRNe0の半自動生成方法の例]の説明終わり)。
【0025】
初期属性集合生成部107は、入力された正例シードエンティティRPe0と負例シードエンティティRNe0と記憶部101に格納されたテキストデータの集合Dとを用い、正例シードエンティティRPe0の属性を表す文字列である正例属性RPa0の集合と、負例シードエンティティRNe0の属性を表す文字列である負例属性RNa0の集合とを生成する。
【0026】
(A)まず初期属性集合生成部107が、正例シードエンティティRPe0を含むテキストデータの集合から当該正例エンティティRPe0以外の何れかの文字列を正例属性候補として選択する。例えば、初期属性集合生成部107は、記憶部101から正例シードエンティティRPe0を含む正例テキストを所定数取得し、各正例テキストにおいて正例シードエンティティRPe0と直接又は1文節を挟む係り受け関係にある単語のみを正例属性候補として抽出する。
【0027】
(B)次に初期属性集合生成部107は、正例シードエンティティRPe0を含む文字列の集合内に当該正例属性候補が含まれる頻度とすべてのテキストデータからなる集合D内に当該正例属性候補が含まれる頻度との違いの大きさを表す指標(統計量)を求め、当該指標が大きいものから所定数の正例属性候補、つまり、これらの頻度の違いが大きい当該正例属性候補を正例属性RPa0(正例属性の初期値)とする。これらの頻度の違いが大きい正例属性候補ほど正例シードエンティティRPe0との関連が強く、正例シードエンティティRPe0の正例属性RPa0にふさわしいといえる。以下にこのような指標を例示するが、その他の統計量を用いてもかまわない。
【0028】
[指標の例]
指標の例1:
指標の例1では、以下のχ2値を指標として用いる。
【0029】
【数1】

【0030】
χ2値が高い正例属性候補αほど、正例シードエンティティRPe0と関係の深い、即ち属性としてふさわしいといえる。よって、この例の初期属性集合生成部107は、χ2値が高い正例属性候補αを正例属性RPa0として抽出する。例えば、χ2値が基準値以上となる正例属性候補αを正例属性RPa0とする。
【0031】
指標の例2:
指標の例2では、正例シードエンティティRPe0と正例属性候補αとの2項における以下のPMIを指標として用いる。
【0032】
【数2】

【0033】
ここで|RPe0, α|は正例シードエンティティRPe0の集合と正例属性候補αとの組の出現頻度を表す。また、*はRPe0又はαのワイルドカードを表す。
【0034】
PMI値が大きい正例属性候補αほど、正例シードエンティティRPe0と関係の深い、即ち属性としてふさわしいといえる。よって、この例の初期属性集合生成部107は、PMI値が大きな正例属性候補αを正例属性RPa0として抽出する。例えば、PMI値が基準値以上となる正例属性候補αを正例属性RPa0とする([指標の例]の説明終わり)。
【0035】
この方法では、まず(A)で構文情報を用いて正例属性候補を粗く絞り込むため、(B)での計算時間を大幅に削減することができる。また、上記(A),(B)により正例属性RPa0(正例属性の初期値)を抽出した後、適切な属性が選択されているか否かを人手によりチェックし、最終的な正例属性RPa0を決定してもよい。
【0036】
初期属性集合生成部107は、負例シードエンティティRNe0についても同様の処理を行い、負例属性RNa0を抽出する。すなわち、初期属性集合生成部107は、負例シードエンティティRNe0を含むテキストデータの集合から当該負例シードエンティティRNe0以外の何れかの文字列を負例属性候補として選択し、負例シードエンティティRNe0を含む文字列の集合内に当該負例属性候補が含まれる頻度とすべてのテキストデータからなる集合D内に当該負例属性候補が含まれる頻度との違いの大きさを表す指標が条件を満たす負例属性候補、つまり、これらの頻度の違いが大きな当該負例属性候補を負例属性RNa0(負例属性の初期値)とする。
【0037】
また、上述した方法の代わりに、初期属性集合生成部107が、負例シードエンティティRNe0とそれに対応する負例属性RNa0とを半自動で選択してもよい。例えば、初期属性集合生成部107は、テキストデータの集合Dから、何れの正例シードエンティティRPe0も正例属性RPa0も含まないテキストデータを所定個数抽出し、抽出した各テキストデータから2つずつランダムに名詞を選択し、一方を負例エンティティ候補、他方を負例属性候補として出力する。表示部(図示せず)はこれらを表示し、これらから負例シードエンティティRNe0とそれに対応する負例属性RNa0とを選択するようにユーザに促す表示を行う。ユーザによる選択内容は初期属性集合生成部107に入力され、初期属性集合生成部107は選択された負例シードエンティティRNe0及び負例属性RNa0の集合を出力する。
【0038】
初期属性集合生成部107は、正例シードエンティティRPe0の集合、負例シードエンティティRNe0の集合、抽出した正例属性RPa0の集合、及び負例属性RNa0の集合を出力する。例えば、初期属性集合生成部107は、図4のテキストデータの中から、正例シードエンティティRPe0を含むテキストとしてT1,T2,T10に対応するものを取得し、上記の処理によってT1,T2に対応するテキストが含む正例属性RPa0の集合{<VS>,<第1戦>,<投手>}を抽出して出力する。同様に初期属性集合生成部107は、例えば、負例シードエンティティRNe0を含むテキストとしてT7に対応するものを取得し、負例属性RNa0の集合R{<人口>}を抽出して出力する。
【0039】
《属性識別用素性抽出:ステップS103》
正例エンティティRPej-1の集合、負例エンティティRNej-1の集合、正例属性RPaj-1の集合、及び負例属性RNaj-1の集合が、属性識別用素性抽出部108に入力される。
【0040】
属性識別用素性抽出部108は、正例エンティティRPej-1の集合から選択した第1正例エンティティと正例属性RPaj-1の集合から選択した第1正例属性との組である第1正例エンティティ−正例属性ペアPP1(RPej-1,RPaj-1)と、負例エンティティRNej-1の集合から選択した第1負例エンティティと負例属性RNaj-1の集合から選択した第1負例属性との組である第1負例エンティティ−負例属性ペアPN1(RNej-1,RNaj-1)とを生成する。PP1(RPej-1,RPaj-1)やPN1(RNej-1,RNaj-1)は、RPej-1とRPaj-1やRNej-1とRNaj-1の採り得るすべての組み合わせについて生成されてもよいし、それらの一部の組み合わせのみについて生成されてもよい。
【0041】
次に属性識別用素性抽出部108は、記憶部101に格納されたテキストデータの集合Dから、PP1(RPej-1,RPaj-1)の正例エンティティRPej-1と正例属性RPaj-1との組を含む文字列である「第1正例テキスト」を選択する。第1正例テキストの例は、テキストデータが含む文、フレーズ、単語列などである。第1正例テキストは、第1正例エンティティ−正例属性ペアPP1(RPej-1,RPaj-1)とテキストデータとの組に対して1個以上抽出される。
【0042】
属性識別用素性抽出部108は、第1正例テキストに対する第1正例エンティティ−正例属性ペアPP1(RPej-1,RPaj-1)の特徴を表す情報を当該第1正例エンティティ−正例属性ペアPP1(RPej-1,RPaj-1)の素性fPajとする。この例では、第1正例テキストごとにPP1(RPej-1,RPaj-1)の素性fPajが抽出される。PP1(RPej-1,RPaj-1)の素性fPajの例は、第1正例テキスト(正例エンティティRPej-1及び正例属性RPaj-1を含む文字列であってテキストデータに含まれるもの)と当該第1正例エンティティRPej-1及び第1正例属性RPaj-1との関係を表す情報である。このような情報であればどのようなものを素性として用いてもよい。
【0043】
例えば、何れかの正例エンティティRPej-1及び正例属性RPaj-1を含むテキストデータ内における当該正例属性RPaj-1に一致する文字列(一致属性)から前後所定単語数以内(第1正例テキスト内)に位置する単語(周辺単語)の表記と当該一致属性に対する当該周辺単語の相対位置を表す情報との組(表層素性)、一致属性又は周辺単語の品詞情報(品詞素性)や固有名詞情報(固有名詞素性)や構文情報(構文素性)、テキストデータ内での一致属性の出現回数やテキストデータの集合D内での一致属性の出現回数(出現回数素性)のうち、少なくとも一つに対応する情報を素性fPajとすることができる。
【0044】
例えば、正例エンティティRPej-1がex=<阪神>であり、正例属性RPaj-1がey=<投手>であり、第1正例テキストが「阪神/は/投手/陣/が/好調」であるとすると、抽出される素性fPajの例は以下のようになる。ここでは素性抽出の範囲をエンティティ及び属性の前後2単語以内と仮定している。
【0045】
表層素性:「ex+1="は"」「ex+2=ey」「ey−2=ex」,「ey−1="は"」,「ey+1="陣"」,「ey+2="が"」
品詞素性:「ex+1=助詞」「ey−1=助詞」,「ey + 1=名詞」,「ey + 1=助詞」
固有名詞素性:「ex=ORG(組織名)」「ey−2=ORG(組織名)」
構文素性:「exの階層=eyの階層」(両方「好調」に係る)
同様に、属性識別用素性抽出部108は、記憶部101に格納されたテキストデータの集合Dから、PN1(RNej-1,RNaj-1)の負例エンティティRNej-1と負例属性RNaj-1との組を含む文字列である「第1負例テキスト」を選択する。第1負例テキストの例は、テキストデータが含む文、フレーズ、単語列などである。第1負例テキストは、第1負例エンティティ−負例属性ペアPN1(RNej-1,RNaj-1)とテキストデータとの組に対して1個以上抽出される。
【0046】
属性識別用素性抽出部108は、第1負例テキストに対する第1負例エンティティ−負例属性ペアPN1(RNej-1,RNaj-1)の特徴を表す情報を当該第1負例エンティティ−負例属性ペアPN1(RNej-1,RNaj-1)の素性fNajとする。この例では、第1負例テキストごとにPN1(RNej-1,RNaj-1)の素性fNajが抽出される。PN1(RNej-1,RNaj-1)の素性fNajの例は、第1負例テキスト(負例エンティティRNej-1及び負例属性RNaj-1を含む文字列であってテキストデータに含まれるもの)と当該第1負例エンティティRNej-1及び第1負例属性RNaj-1との関係を表す情報である。その具体例は、上述した正例に対応するPP1(RPej-1,RPaj-1)の素性fPajの場合と同様である。
【0047】
属性識別用素性抽出部108は、PP1(RPej-1,RPaj-1)の素性fPajと正例を表すラベル<+1>との組(fPaj, <+1>)、及び、PN1(RNej-1,RNaj-1)の素性fNajと負例を表すラベル<-1>との組(fNaj, <-1>)を出力する。
【0048】
図5Aは、属性識別用素性抽出部108が出力する組(fPaj, <+1>)及び組(fNaj, <-1>)を例示した図である。この例では、エンティティ(ex)と属性(ey)の前後2単語の表記を素性としている。
【0049】
《属性識別学習:ステップS104》
PP1(RPej-1,RPaj-1)の素性fPajと正例を表すラベル<+1>との組(fPaj, <+1>)、及び、PN1(RNej-1,RNaj-1)の素性fNajと負例を表すラベル<-1>との組(fNaj, <-1>)が属性識別学習部109に入力される。属性識別学習部109は、PP1(RPej-1,RPaj-1)の素性fPajとPN1(RNej-1,RNaj-1)の素性fNajとを教師あり学習データとした学習処理によって、第1識別モデルMEajを生成する。この第1識別モデルMEajは、任意の文字列であるエンティティと当該エンティティの属性との組であるエンティティ−属性ペアの素性を入力として当該ペアが正例エンティティ−正例属性ペアか負例エンティティ−負例属性ペアかを識別するための情報を出力する関数である。このような識別モデルMEajであればどのようなモデルであってもよい。
【0050】
識別モデルMEajの例は、正則化項付き最大エントロピーモデル(参考文献1「Berger, A.L. , Pietra, V.J.D. and Pietra, "A maximum entropy approach to natural language processing", S.A.D. 1996.」)、正則化項付きの条件付きランダム場(CRFs、参考文献2「Lafferty, J. and McCallum, A. and Pereira, F. "Conditional random fields: Probabilistic models for segmenting and labeling sequence data", MACHINE LEARNING, pp. 282-289, 2001.」、サポートベクタマシン(SVMs、参考文献3「Vapnik, V. N. "The nature of statistical learning theory", Springer Verlag, 1995.」)などである。各例の識別モデルMEajの学習では、教師あり学習データとして用いられたPP1(RPej-1,RPaj-1)の素性fPajとPN1(RNej-1,RNaj-1)の素性fNajとに対し、当該識別モデルMEajへの影響度の大きさを表す指標(素性に対する重み)が付され、これらが識別モデルMEajを特定するパラメータとなる。特に参考文献1−3で例示したようなモデルは、すべての素性に対して重みが付されるモデル(例えば正則化項のない最大エントロピーモデル)ではなく、識別に有効と判断された素性のみについて重みが付される。以下、正則化項付き最大エントロピーモデルの具体例を示す。
【0051】
正則化項付き最大エントロピーモデルが用いられる場合、属性識別学習部109は、(x,y)∈{(fPaj, <+1>), (fNaj, <-1>)}を学習データとして用い、条件付確率
【0052】
【数3】

【0053】
に対するエントロピー
【0054】
【数4】

【0055】
を最大化する各重み(パラメータ)λqに対応するPλ(y|x)であるP(y|x)を識別モデルMEajとする。ただし、
【0056】
【数5】

【0057】
であり、qは各学習データ(x,y)の組にそれぞれ対応するラベルであり、p'(x)は学習データ(x,y)におけるxの出現頻度であり、fq(x,y)はqに対応する素性関数(feature function)である。
【0058】
ここで、各重みλqはqに対応する学習データ(x,y)の素性fPaj又はfNajの識別モデルMEajへの影響度の大きさを表す指標となる。また、正則化項付き最大エントロピーモデルの例では、すべての学習データ(x,y)の素性fPaj又はfNajに対して重みλqが付されるわけではなく、重要度の低い素性に対応する重みλqは付されない。すなわち、重要度の低い素性に対応する重みλqは0とされる。
【0059】
学習処理によって生成された第1識別モデルMEajは記憶部102に格納される。例えば、学習処理によって生成された第1識別モデルMEajのパラメータが記憶部102に格納される。
【0060】
《属性識別:ステップS105》
属性識別部110は、記憶部101に格納されたテキストデータの集合Dから何れかのテキストデータを選択し、選択した当該テキストデータが含む文字列を第1対象エンティティRDejとして選択する。また属性識別部110は、選択した当該テキストデータから当該第1対象エンティティRDejと異なる文字列を第1対象属性RDajとして選択する。そして属性識別部110は、第1対象エンティティRDejと第1対象属性RDajとの組を第1対象エンティティ−対象属性ペアPD1(RDej,RDaj)とする。
【0061】
なお、テキストデータの集合Dからすべてのテキストデータが選択されてもよいが、すべてのテキストデータを対象とすることは計算効率上好ましくない。そのため、特定の方法で対象を限定して選択を行うことが望ましい。以下にその具体例を示す。
【0062】
[選択方法の例]
第1条件:
属性識別部110は、何れかの正例エンティティRPj-1e又は負例エンティティRNj-1eを含み、かつ当該エンティティRPj-1e又RNj-1eから任意のウィンドウサイズ内(ここでは3単語とする)に名詞を含むテキストデータを選択し、当該ウィンドウサイズ内の名詞を属性候補とする。
【0063】
第2条件:
第1条件だけでは対象の数が膨大になる場合があるため、属性識別部110は、属性識別学習部109で教師あり学習データとして用いられたPP1(RPej-1,RPaj-1)の素性fPajとPN1(RNej-1,RNaj-1)の素性fNajのうち、それらから生成された第1識別モデルMEajへの影響度の大きさを表す指標(例えば前述の重みλq)が特定の基準を満たす素性、つまり、当該第1識別モデルMEajへの影響度が大きな素性fPaj及び/又はfNajを選択する。例えば、属性識別部110は、前述の重みλqの絶対値が閾値よりも大きな素性fPaj及び/又はfNajを選択する。
【0064】
属性識別部110は、選択した素性fPaj及び/又はfNajに対応する文字列を含むテキストデータを、第1条件で選択されたテキストデータの集合から選択する。属性識別部110は、当該選択したテキストデータが含む文字列を第1対象エンティティRDej及び第1対象属性RDajとする。例えば、属性識別部110は、選択した素性fPaj及び/又はfNajから表層素性の単語を抽出し、当該表層素性の単語を含むテキストデータを第1条件で選択されたテキストデータの集合から選択し、当該選択したテキストデータが含む文字列を第1対象エンティティRDej及び第1対象属性RDajとする。
【0065】
一例を挙げると、選択された素性がエンティティexの前2単語が表層素性と品詞素性の組み合わせで成り立つ素性FNC(x−2=“POS:名詞”, x−1=“VS”)であった場合、属性識別部110は、選択した素性FNC(x−2=“POS:名詞”, x−1=“VS”)から表層素性の単語“VS”を抽出し、第1条件で選択されたテキストデータの集合から、単語“VS”を含むテキストデータを選択する([選択方法の例]の説明終わり)。
【0066】
属性識別用素性抽出部108は、記憶部101に格納されたテキストデータの集合Dから、第1対象エンティティRDejと第1対象属性RDajとの組を含む文字列である「第1対象テキスト」を選択する。第1対象テキストの例は、テキストデータが含む文、フレーズ、単語列などである。第1対象テキストは、第1対象エンティティ−対象属性ペアPD1(RDej,RDaj)とテキストデータとの組に対して1個以上抽出される。
【0067】
属性識別用素性抽出部108は、第1対象テキストに対する第1対象エンティティ−対象属性ペアPD1(RDej,RDaj)の特徴を表す情報を当該第1対象エンティティ−対象属性ペアPD1(RDej,RDaj)の素性fDajとする。この例では、第1対象テキストごとにPD1(RDej,RDaj)の素性fDajが抽出される。PD1(RDej,RDaj)の素性fDajの例は、第1対象テキスト(第1対象エンティティRDej及び第1対象属性RDaj-1を含む文字列であってテキストデータに含まれるもの)と第1対象エンティティRDej及び第1対象属性RDaj-1との関係を表す情報である。その具体例は、上述した正例に対応するPP1(RPej-1,RPaj-1)の素性fPajの場合と同様である。
【0068】
第1対象テキストに対応するPD1(RDej,RDaj)の素性fDajは、属性識別部110に入力される。属性識別部110は、PD1(RDej,RDaj)の素性fDajを記憶部102から読み出した第1識別モデルMEajに入力し、PD1(RDej,RDaj)が正例エンティティ−正例属性ペアかを識別するための情報CPaj、及び/又は、PD1(RDej,RDaj)が負例エンティティ−負例属性ペアかを識別するための情報CNajを得る。CPajの例はPD1(RDej,RDaj)が正例エンティティ−正例属性ペアである確率を表す信頼度であり、CNajの例はPD1(RDej,RDaj)が負例エンティティ−負例属性ペアである確率を表す信頼度に対応する情報CNajである。識別モデルMEajとして正則化項付き最大エントロピーモデルが用いられる場合には、例えば、x=fDajを識別モデルMEajであるP(y|x)に代入して得られる条件付確率P(1|x)及び/又はP(-1|x)がCPaj=P(1|x)及び/又はCNaj=P(-1|x)とされる。その他、例えばP(1|x)の広義単調増加関数値がCPajとされ、及び/又は、P(-1|x)の広義単調増加関数値がCNajとされてもよい。
【0069】
次の属性識別部110の処理はどのようなCPaj,CNajを用いるかによって相違する。以下、それぞれのケースについて説明する。
【0070】
[正例側に対するCPajと負例側に対するCPajとの正負符号が反転する場合]
負例側のCPajの正負符号が正例側のCPajと反対になる場合(例えば、負例側のCPajが常に負となる場合等)、属性識別部110は、PD1(RDej,RDaj)と当該PD1(RDej,RDaj)の素性fDaj及びCPajとを属性修正候補選択部111に送る。
【0071】
[正例側に対するCPajと負例側に対するCPajとの正負符号が反転するとは限らない場合]
属性識別部110は、PD1(RDej,RDaj)に対応するCPaj及び/又はCNajを用い、PD1(RDej,RDaj)が負例エンティティ−負例属性ペアかを識別する。属性識別部110は、所定の閾値とCPaj及び/又はCNajとを比較してこの識別を行う。以下に識別方法を例示する。
【0072】
例1:属性識別部110は、CPajが第1閾値以下(例えば0以下)である場合に、当該CPajに対応するPD1(RDej,RDaj)が負例エンティティ−負例属性ペアであると判定する。
【0073】
例2:属性識別部110は、CNajが第2閾値以上である場合に、当該CNajに対応するPD1(RDej,RDaj)が負例エンティティ−負例属性ペアであると判定する。
【0074】
例3:属性識別部110は、CNajが第2閾値以上であり、かつ、CPajが第1閾値以下である場合に、当該CNaj及びCPajに対応するPD1(RDej,RDaj)が負例エンティティ−負例属性ペアであると判定する。
【0075】
属性識別部110は、負例エンティティ−負例属性ペアであると判定したPD1(RDej,RDaj)の第1対象属性RDajを負例属性RNajとして記憶部103に格納し、負例属性RNajの集合に追加する。さらに属性識別部110は、負例エンティティ−負例属性ペアであると判定されなかったPD1(RDej,RDaj)と当該PD1(RDej,RDaj)の素性fDaj及びCPajとを属性修正候補選択部111に送る。
【0076】
《属性修正候補選択:ステップS106》
属性修正候補選択部111は、入力されたPD1(RDej,RDaj)が含む第1対象属性RDajの集合の部分集合を属性修正候補CRPajの集合として選択する。属性修正候補CRPajの集合の要素は正例属性の候補としてユーザに提示され、人手によるラベル修正(正例から負例への修正、又は正例からラベルなしへの修正)の候補とされる。入力されたPD1(RDej,RDaj)が含む第1対象属性RDajの集合が属性修正候補CRPajの集合とされてもよいし、当該第1対象属性RDajの集合の一部が属性修正候補CRPajの集合とされてもよい。ただ、人手による修正コストをできるだけ小さくし、かつ、セマンティックドリフトをより効率的に軽減するためには、それに適した基準で属性修正候補CRPajの集合が選択されることが望ましい。基本的には、人手によるラベル修正によって得られる情報量の多い第1対象属性RDajや、正例属性であることの信頼度がデータ抽出装置1にとって低い第1対象属性RDajが、属性修正候補CRPajの集合として有益である。有益な第1対象属性RDajを選んで属性修正候補CRPajの集合としてユーザに提示できれば、ユーザが検討するデータの数を減らすことができ(ユーザの負荷を減らし)、かつ、学習処理に有益な正例属性RPajを効率よく得ることができる。以下、有益な第1対象属性RDajの集合を属性修正候補CRPajの集合として選択するための基準を例示する。
【0077】
[属性修正候補の集合を選択する基準の例示]
属性修正候補選択部111は、例えば、第1対象属性RDajに対応するスコアSp(a)を何らかの基準(第2基準)と比較し、その基準を満たす第1対象属性RDajの集合を属性修正候補CRPajの集合とする。例えば、スコアSp(a)が閾値THp(a)以上(又は閾値THp(a)を超えること)となる第1対象属性RDajを属性修正候補CRPajの集合の要素としてもよいし、スコアSp(a)の大きい順に選択された上位M(a)個(M(a)は正整数)の第1対象属性RDajを属性修正候補CRPajの集合の要素としてもよい。
【0078】
スコアSp(a)は、人手によるラベル修正によって得られる情報量が多い(影響度が大きい)ほど大きくなるものであってもよいし、正例属性であることの信頼度がデータ抽出装置1にとって低いほど大きくなるものであってもよいし、それらの両方の特徴を備えたものであってもよい。以下、スコアSp(a)の例を示す。
【0079】
[影響度に対応するスコアの例]
この例では、属性修正候補選択部111に入力されたPD1(RDej,RDaj)の集合が含む特定の要素に対する素性についての関連性の強さが何らかの基準(第1基準)を満たす他の要素の個数に対応する情報を、当該特定の要素である第1対象エンティティ−対象属性ペアの影響度Pp(a)とし、影響度Pp(a)に対応するスコアSp(a)が用いられる。属性修正候補選択部111は、影響度Pp(a)に対応するスコアSp(a)が第2基準を満たすPD1(RDej,RDaj)が含む第1対象属性RDajの集合を属性修正候補CRPajの集合とする。影響度Pp(a)がそのままスコアSp(a)とされてもよいし、影響度Pp(a)に対する広義単調増加関数値がスコアSp(a)とされてもよい。
【0080】
影響度Pp(a)は、後述するステップS111でSIMやFMMなどに基づくアクティブラーニング法が用いられる場合に、人手によるラベル修正によって得られる情報量の大きさを表わす。すなわち、SIMやFMMに基づくアクティブラーニング法では、人手で修正された情報と素性について関連性が強い情報を自動的に修正する。よって、人手で修正された要素に対する素性について関連性の強さが何らかの基準を満たす他の要素の個数に対応する影響度Pp(a)は、人手での修正に伴って自動的に修正される要素の個数に対応する。そのため、影響度Pp(a)は人手によるラベル修正によって得られる情報量の大きさを表わす。人手での修正に伴って自動的に修正される要素の個数が影響度Pp(a)とされてもよいし、人手での修正に伴って自動的に修正される要素の個数の広義単調増加関数値などが影響度Pp(a)とされてもよい。以下に影響度Pp(a)の具体例を示す。
【0081】
影響度Pp(a)の具体例1:
影響度Pp(a)の具体例1は、後述するステップS111でSIM又はそれに類似の処理が用いられる場合に特に有効なものである。この例では、上述の「素性についての関連性の強さ」が「素性の類似度の大きさ」とされる。すなわち、属性修正候補選択部111に入力されたPD1(RDej,RDaj)の集合が含む特定の要素に対する素性の類似度の大きさが何らかの基準を満たすような他の要素の個数に対応する情報を、当該特定の要素である第1対象エンティティ−対象属性ペアの影響度Pp(a)とする。言い換えると、当該特定の要素の素性と類似する(類似度が何らかの基準を満たす)素性を持つ要素の個数に対応する情報を当該特定の要素の影響度Pp(a)とする。例えば、当該特定の要素の素性との類似度が基準値以上となる素性を持つ他の要素の個数がそのまま影響度Pp(a)とされてもよいし、この要素の個数の広義単調増加関数値などが影響度Pp(a)とされてもよい。
【0082】
類似度としてどのような尺度を用いるかについての限定はないが、コサイン類似度や、PMIで重み付けされた素性のコサイン類似度などを例示できる(例えば、非特許文献2参照)。例えば、PD1(RDej,RDaj)の集合が含む特定の要素xに対応するPMIで重み付けされた素性と、PD1(RDej,RDaj)の集合が含む他の要素yに対応するPMIで重み付けされた素性とコサイン類似度cosine(x,y)は、以下のように表わされる。
【0083】
【数6】

【0084】
ただし、fiは素性を表し、iは各素性fiの正整数インデックスを表す。φ(x, fi)は要素xの素性がfiを含むときに1を与える素性関数であり、
【0085】
【数7】

【0086】
であり、|x, fi|はテキストデータの集合Dにおいてxとfiが同時に出現する頻度を表し、*はfi又はxのワイルドカードを表す。
【0087】
影響度Pp(a)の具体例2:
影響度Pp(a)の具体例2は、後述するステップS111でFMM又はそれに類似の処理が用いられる場合に特に有効なものである。PD1(RDej,RDaj)の素性がそれぞれ複数の値の集合であることを前提とする。この例でのPD1(RDej,RDaj)の集合の特定の要素と他の要素との間での「素性についての関連性の強さ」は、当該他の要素の素性を第1識別モデルに入力して得られる情報と、当該他の要素の素性から当該特定の要素の素性と共通するものを除いたものを第1識別モデルに入力して得られる情報と、の違いの大きさ(変動量)である。例えば、PD1(RDej,RDaj)の集合の特定の要素と他の要素との間での「素性についての関連性の強さ」は、当該他の要素の素性を第1識別モデルに入力して得られる信頼度(正例であることの信頼度)と、当該他の要素の素性から当該特定の要素の素性と共通するものを除いたもの(すなわちこれらの素性のインターセクションを除去したもの)を第1識別モデルに入力して得られる信頼度(正例であることの信頼度)との変動量(特定の要素の素性を基準とした「変動量」)である。例えば、PD1(RDej,RDaj)の集合が含む特定の要素の素性がf1, f2, f3であり、他の要素の素性がf2, f3, f4, f5であり、素性f2, f3, f4, f5を第1識別モデルに入力して得られる信頼度がPAであり、素性f2, f3, f4, f5から素性f1, f2, f3と共通するものを除いた素性f4, f5を第1識別モデルに入力して得られる信頼度がPBであるとする。この例の場合、PAとPBとの間の変動量が当該特定の要素と当該他の要素との間での「素性についての関連性の強さ」となる。このような変動量が大きい当該他の要素ほど、当該特定の要素との間での素性についての関連性が強いといえる。具体例2では、当該変動量が何らかの基準を満たすような他の要素の個数に対応する情報を、当該特定の要素である第1対象エンティティ−対象属性ペアの影響度Pp(a)とする。例えば、このような変動量が基準値以上となる素性を持つ他の要素の個数がそのまま影響度Pp(a)とされてもよいし、この要素の個数の広義単調増加関数値などが影響度Pp(a)とされてもよい。
【0088】
[信頼度に対応するスコアの例]
この例では、PD1(RDej,RDaj)が正例エンティティ−正例属性ペアである確率を表す信頼度に対応するスコアSp(a)を用いる。信頼度が低いPD1(RDej,RDaj)が含む第1対象属性RDajほど人手による修正が効果的であると考えられるため、信頼度に対応するスコアSp(a)を用いることは有効である。この例では、信頼度が小さいほど大きくなるスコアSp(a)を用いる。例えば、属性修正候補選択部111に入力されるPD1(RDej,RDaj)に対応するCPajが当該PD1(RDej,RDaj)が正例エンティティ−正例属性ペアである確率を表す信頼度であるとし、CPajの逆数がスコアSp(a)とされてもよいし、CPajの広義単調減少関数値がSp(a)とされてもよい。
【0089】
[影響度及び信頼度に対応するスコアの例]
この例では、上述の影響度及び信頼度に対応するスコアSp(a)が用いられる。この例では、上述の影響度が大きいほど大きくなり、かつ、上述の信頼度が大きくなるほど小さくなるスコアSp(a)が用いられる。例えば、Sp(a)=Pp(a)/CPajとされてもよいし、Pp(a)/CPajの広義単調増加関数値がスコアSp(a)とされてもよい。
【0090】
《属性修正候補提示:ステップS107》
属性修正候補選択部111で選択された属性修正候補CRPajの集合は属性修正候補提示部112に送られる。属性修正候補提示部112は、属性修正候補CRPajの集合を出力する。例えば、属性修正候補提示部112は、属性修正候補CRPajの集合をリストとして表示する。この際、例えば、各属性修正候補CRPajに対応する第1対象エンティティRDejやスコアSp(a)などの情報も併せて属性修正候補提示部112に送られ、表示されてもよい。ユーザはこのように表示された属性修正候補CRPajの集合を閲覧する。
【0091】
《属性修正情報取得:ステップS108》
属性修正候補CRPajの集合を閲覧したユーザはそれらの要素が本当に正例であるか否かを検証し、属性修正候補CRPajの集合から正例属性として適切ではない要素を選択する。ユーザはその選択結果に基づき、属性修正候補CRPajの集合の何れかの要素を特定する属性修正情報を属性修正情報取得部113に入力する。属性修正情報は、ユーザが正例属性として適切ではないと判断した要素を特定可能な情報である。例えば、ユーザが正例属性として適切ではないと判断した属性修正候補CRPajを示す情報が属性修正情報とされてもよいし、逆にユーザが正例属性として適切であると判断した属性修正候補CRPajを示す情報が属性修正情報とされてもよい。このように属性修正情報取得部113に入力された属性修正情報は、基準更新部114及び属性修正情報反映部115に送られる。
【0092】
《条件判定:ステップS109,S110》
基準更新部114は、属性修正候補提示部112から出力された属性修正候補CRPajの集合のうち、正例属性として不適切な要素を基準個数以上特定する属性修正情報が属性修正情報取得部113に入力されたかを判定する。基準個数は、属性修正候補提示部112から出力されたすべての属性修正候補CRPajの個数であってもよいし、それ以下の個数であってもよい。すなわち、属性修正候補提示部112から出力されたすべての属性修正候補CRPajが正例属性として不適切とされたかが判定されてもよいし、属性修正候補提示部112から出力された属性修正候補CRPajのうち閾値以上の属性修正候補が正例属性として不適切とされたかが判定されてもよい(ステップS109)。
【0093】
ここで、正例属性として不適切な要素を基準個数以上特定する属性修正情報が属性修正情報取得部113に入力されたと判定された場合、基準更新部114はステップS106で属性修正候補CRPajの集合として選択される要素が増加するように、属性修正候補選択部111での基準(第2基準)を更新する。例えば、ステップS106において、スコアSp(a)が閾値THp(a)以上となる第1対象属性RDajを属性修正候補CRPajの集合の要素とされるのであれば閾値THp(a)を低くする。例えば、ステップS106において、スコアSp(a)の大きい順に選択された上位M(a)個の第1対象属性RDajを属性修正候補CRPajの集合の要素とされるのであればM(a)の値を大きくする。閾値THp(a)や値M(a)などの初期値や更新のステップ幅は自由に設定することができる(ステップS110)。その後ステップS106に戻る。これにより、属性修正候補選択部111でより多くの要素からなる属性修正候補の集合が再び選択され、属性修正候補提示部112の処理と属性修正情報取得部113の処理とがやり直される。
【0094】
一方、正例属性として不適切な要素を基準個数以上特定しない属性修正情報が属性修正情報取得部113に入力されたと判定された場合、以下の属性修正情報反映部115の処理が実行される。
【0095】
《属性修正情報反映:ステップS111》
ステップS105で負例エンティティ−負例属性ペアであると判定されなかったPD1(RDej,RDaj)の集合と、属性修正情報取得部113に入力された属性修正情報とが属性修正情報反映部115に入力される。属性修正情報反映部115は、入力されたPD1(RDej,RDaj)が含む第1対象属性RDajの集合から属性修正情報で特定される要素を除いた補集合に含まれる要素を、正例属性RPajの集合の要素とする。以下にこの処理を例示する。
【0096】
[処理例1]
この例の属性修正情報反映部115は、少なくとも、属性修正情報で特定される属性修正候補CRPajと、当該属性修正情報で特定される属性修正候補CRPajを含む第1対象エンティティ−対象属性ペアとの間での素性についての関連性の強さが何らかの基準(第3基準)を満たす他の第1対象エンティティ−対象属性ペアが含む属性修正候補CRPajとを除く、属性修正候補の集合の要素を、正例属性RPajの集合に追加する。ここで、「素性についての関連性の強さ」は、例えば、前述の影響度Pp(a)の具体例1で説明した「素性の類似度の大きさ」であってもよいし、前述の影響度Pp(a)の具体例2で説明した「変動量」であってもよい。
【0097】
「素性についての関連性の強さ」が「素性の類似度の大きさ」である場合(例えばSIMの処理)、属性修正情報反映部115は、入力されたPD1(RDej,RDaj)が含む第1対象属性RDajの集合から、以下(SIM削除-1,2)を除外したものを正例属性RPajの集合として記憶部103に格納し、当該除外した要素(SIM削除-1,2)を負例属性RNajの集合として記憶部103に格納する。
【0098】
SIM削除-1:属性修正情報によって特定された第1対象属性RDaj(正例属性として適切ではないと判断された要素)。
【0099】
SIM削除-2:SIM削除-1で除外された要素を含むPD1(RDej,RDaj)の素性と類似する(類似度が何らかの基準を満たす)素性を持つ他のPD1(RDej,RDaj)が含む第1対象属性RDaj。なお、類似度の尺度は、例えば、前述の影響度Pp(a)の具体例1で説明したものと同様である。類似度が何らかの基準を満たすとは、例えば、類似度が基準値以上となることである。この基準値は前述の影響度Pp(a)を定めるために用いたものと同一であってもよいし、異なるものであってもよい。
【0100】
一方、「素性についての関連性の強さ」が前述の影響度Pp(a)の具体例2で説明した「変動量」である場合(例えばFMMの処理)、属性修正情報反映部115は、入力されたPD1(RDej,RDaj)が含む第1対象属性RDajの集合から以下(FMM削除-1,2)を除外したものを正例属性RPajの集合として記憶部103に格納し、FMM削除-1で除外された要素を負例属性RNajの集合として記憶部103に格納する。FMM削除-2で除外された要素のラベル付け(正例・負例判定)は行われない。
【0101】
FMM削除-1:属性修正情報によって特定された第1対象属性RDaj(正例属性として適切ではないと判断された要素)。
【0102】
FMM削除-2:FMM削除-1で除外された第1対象属性RDajを含むPD1(RDej,RDaj)の素性を基準とした「変動量」が大きい(何らかの基準を満たす)他のPD1(RDej,RDaj)が含む第1対象属性RDaj
【0103】
[処理例2]
この例の属性修正情報反映部115は、入力されたPD1(RDej,RDaj)が含む第1対象属性RDajの集合から属性修正情報で特定される第1対象属性RDaj(正例属性として適切ではないと判断された要素)を除いたものを正例属性RPajの集合として記憶部103に格納する。属性修正情報で特定される第1対象属性RDajは負例属性RNajの集合として記憶部103に格納される。
【0104】
《エンティティ識別用素性抽出:ステップS112》
正例エンティティRPej-1の集合、負例エンティティRNej-1の集合、上記のように更新された正例属性RPajの集合及び負例属性RNajの集合がエンティティ識別用素性抽出部116に入力される。
【0105】
エンティティ識別用素性抽出部116は、正例エンティティRPej-1の集合から選択した第2正例エンティティと正例属性RPajの集合から選択した第2正例属性との組である第2正例エンティティ−正例属性ペアPP2(RPej-1,RPaj)と、負例エンティティRNej-1の集合から選択した第2負例エンティティと負例属性RNajの集合から選択した第2負例属性との組である第2負例エンティティ−負例属性ペアPN2(RNej-1,RNaj)とを生成する。PP2(RPej-1,RPaj)やPN2(RNej-1,RNaj)は、RPej-1とRPajやRNej-1とRNajの採り得るすべての組み合わせについて生成されてもよいし、それらの一部の組み合わせのみについて生成されてもよい。
【0106】
次にエンティティ識別用素性抽出部116は、記憶部101に格納されたテキストデータの集合Dから、PP2(RPej-1,RPaj)の正例エンティティRPej-1と正例属性RPajとの組を含む文字列である「第2正例テキスト」を選択する。第2正例テキストの例は、テキストデータが含む文、フレーズ、単語列などである。第2正例テキストは、第2正例エンティティ−正例属性ペアPP2(RPej-1,RPaj)とテキストデータとの組に対して1個以上抽出される。
【0107】
エンティティ識別用素性抽出部116は、第2正例テキストに対する第2正例エンティティ−正例属性ペアPP2(RPej-1,RPaj)の特徴を表す情報を当該第2正例エンティティ−正例属性ペアPP2(RPej-1,RPaj)の素性fPejとする。この例では、第2正例テキストごとにPP2(RPej-1,RPaj)の素性fPejが抽出される。PP2(RPej-1,RPaj)の素性fPejの例は、第2正例テキスト(正例エンティティRPej-1及び正例属性RPajを含む文字列であってテキストデータに含まれるもの)と当該第2正例エンティティRPej-1及び第2正例属性RPajとの関係を表す情報である。その具体例は、前述(ステップS103)したPP1(RPej-1,RPaj-1)の素性fPajの場合と同様である。
【0108】
同様に、エンティティ識別用素性抽出部116は、記憶部101に格納されたテキストデータの集合Dから、何れかの負例エンティティRNej-1と負例属性RNajとの組を含む文字列である「第2負例テキスト」を選択する。第2負例テキストの例は、テキストデータが含む文、フレーズ、単語列などである。第2負例テキストは、第2負例エンティティ−負例属性ペアPN2(RNej-1,RNaj)とテキストデータとの組に対して1個以上抽出される。
【0109】
エンティティ識別用素性抽出部116は、第2負例テキストに対する第2負例エンティティ−負例属性ペアPN2(RNej-1,RNaj)の特徴を表す情報を当該第2負例エンティティ−負例属性ペアPN2(RNej-1,RNaj)の素性fNejとする。この例では、第2負例テキストごとにPN2(RNej-1,RNaj)の素性fNejが抽出される。PN2(RNej-1,RNaj)の素性fNejの例は、第2負例テキスト(負例エンティティRNej-1及び負例属性RNajを含む文字列であってテキストデータに含まれるもの)と当該第2負例エンティティRNej-1及び第2負例属性RNajとの関係を表す情報である。その具体例は、前述(ステップS103)したPP1(RPej-1,RPaj-1)の素性fPajの場合と同様である。
【0110】
エンティティ識別用素性抽出部116は、PP2(RPej-1,RPaj)の素性fPejと正例を表すラベル<+1>との組(fPej, <+1>)、及び、PN2(RNej-1,RNaj)の素性fNejと負例を表すラベル<-1>との組(fNej, <-1>)を出力する。
【0111】
図5Bは、エンティティ識別用素性抽出部116が出力する組(fPej, <+1>)及び組(fNej, <-1>)を例示した図である。この例では、エンティティ(ex)と属性(ey)の前後2単語の表記を素性としている。
【0112】
《エンティティ識別学習:ステップS113》
PP2(RPej-1,RPaj)の素性fPejと正例を表すラベル<+1>との組(fPej, <+1>)、及び、PN2(RNej-1,RNaj)の素性fNejと負例を表すラベル<-1>との組(fNej, <-1>)がエンティティ識別学習部117に入力される。エンティティ識別学習部117は、PP2(RPej-1,RPaj)の素性fPejとPN2(RNej-1,RNaj)の素性fNejとを教師あり学習データとした学習処理によって、第2識別モデルMEejを生成する。この第2識別モデルMEejは、任意の文字列であるエンティティと当該エンティティの属性との組であるエンティティ−属性ペアの素性を入力として当該ペアが正例エンティティ−正例属性ペアか負例エンティティ−負例属性ペアかを識別するための情報を出力する関数である。このような第2識別モデルMEejであればどのようなモデルであってもよい。例えば、前述の識別モデルMEejと同様に第2識別モデルMEejを生成すればよい。
【0113】
学習処理によって生成された第2識別モデルMEejは記憶部104に格納される。例えば、学習処理によって生成された第2識別モデルMEejのパラメータが記憶部104に格納される。
【0114】
《エンティティ識別:ステップS114》
エンティティ識別部118は、記憶部101に格納されたテキストデータの集合Dから何れかのテキストデータを選択し、選択した当該テキストデータが含む文字列を第2対象エンティティRDejとして選択する。またエンティティ識別部118は、選択した当該テキストデータから当該第2対象エンティティRDejと異なる文字列を第2対象属性RDajとして選択する。そしてエンティティ識別部118は、第2対象エンティティRDejと第2対象属性RDajとの組を第2対象エンティティ−対象属性ペアPD2(RDej,RDaj)とする。
【0115】
なお、テキストデータの集合Dからすべてのテキストデータが選択されてもよいが、すべてのテキストデータを対象とすることは計算効率上好ましくない。そのため、特定の方法で対象を限定して選択を行うことが望ましい。以下にその具体例を示す。
【0116】
[選択方法の例]
第1条件:
エンティティ識別部118は、何れかの正例属性RPja又は負例属性RNjaを含み、かつ当該属性RPja又RNjaから任意のウィンドウサイズ内(ここでは3単語とする)に名詞を含むテキストデータを抽出し、ウィンドウサイズ内の名詞をエンティティ候補とする。
【0117】
第2条件:
第1条件だけでは対象の数が膨大になる場合があるため、エンティティ識別部118は、エンティティ識別学習部117で教師あり学習データとして用いられたPP2(RPej-1,RPaj)の素性fPejとPN2(RNej-1,RNaj)の素性fNejのうち、それらから生成された第2識別モデルMEejへの影響度の大きさを表す指標(例えば前述の重みλq)が特定の基準を満たす素性、つまり、当該第2識別モデルMEejへの影響度が大きな素性fPej及び/又はfNejを選択する。例えば、エンティティ識別部118は、前述の重みλqの絶対値が閾値よりも大きな素性fPej及び/又はfNejを選択する。
【0118】
エンティティ識別部118は、選択した素性fPej及び/又はfNejに対応する文字列を含むテキストデータを、第1条件で選択されたテキストデータの集合から選択する。エンティティ識別部118は、当該選択したテキストデータが含む文字列を第2対象エンティティRDej及び第2対象属性RDajとする。例えば、エンティティ識別部118は、選択した素性fPej及び/又はfNejから表層素性の単語を抽出し、当該表層素性の単語を含むテキストデータを第1条件で選択されたテキストデータの集合から選択する。([選択方法の例]の説明終わり)。
【0119】
エンティティ識別用素性抽出部116は、記憶部101に格納されたテキストデータの集合Dから、第2対象エンティティRDejと第2対象属性RDajとの組を含む文字列である「第2対象テキスト」を選択する。第2対象テキストの例は、テキストデータが含む文、フレーズ、単語列などである。第2対象テキストは、第2対象エンティティ−対象属性ペアPD2(RDej,RDaj)とテキストデータとの組に対して1個以上抽出される。
【0120】
エンティティ識別用素性抽出部116は、第2対象テキストに対する第2対象エンティティ−対象属性ペアPD2(RDej,RDaj)の特徴を表す情報を当該第2対象エンティティ−対象属性ペアPD2(RDej,RDaj)の素性fDejとする。この例では、第2対象テキストごとにPD2(RDej,RDaj)の素性fDejが抽出される。PD2(RDej,RDaj)の素性fDejの例は、第2対象テキスト(第2対象エンティティRDej及び第2対象属性RDaj-1を含む文字列であってテキストデータに含まれるもの)と第2対象エンティティRDej及び第2対象属性RDaj-1との関係を表す情報である。その具体例は、前述(ステップS103)したPP1(RPej-1,RPaj-1)の素性fPajの場合と同様である。
【0121】
第2対象テキストに対応するPD2(RDej,RDaj)の素性fDejは、エンティティ識別部118に入力される。エンティティ識別部118は、PD2(RDej,RDaj)の素性fDejを記憶部104から読み出した第2識別モデルMEejに入力し、PD2(RDej,RDaj)が正例エンティティ−正例属性ペアか負例エンティティ−負例属性ペアかを識別する。
【0122】
ここで、エンティティ識別部118は、PD2(RDej,RDaj)を正例エンティティ−正例属性ペアであると識別した場合、当該PD2(RDej,RDaj)の第2対象エンティティRDejを正例エンティティRPejとして記憶部105に格納し、正例エンティティRPejの集合に追加する。また、エンティティ識別部118は、PD2(RDej,RDaj)が負例エンティティ−負例属性ペアであると識別した場合、当該PD2(RDej,RDaj)の第2対象エンティティRDejを負例エンティティRNejとして記憶部105に格納し、負例エンティティRNejの集合に追加する。すなわち、ステップS112−S114では正例及び負例属性の更新は行われず、正例及び負例エンティティの更新のみが行われる。
【0123】
《収束判定:ステップS115−S117》
収束判定部119は、収束条件を満たしたかを判定する。以下に収束条件を例示する。
【0124】
[収束条件の例]
収束条件の例1:この例の収束判定部119は、正例エンティティRPejに新たに割り当てられる対象エンティティRDejが存在しない場合に、収束条件を満たしたと判断する。
【0125】
収束条件の例2:この例の収束判定部119は、ステップS103からS114のイテレーションを基準回数以上繰り返しても新たに割り当てられる対象エンティティRDej-1が存在しない場合に、収束条件を満たしたと判断する。
【0126】
収束条件の例3:この例の収束判定部119は、jの値が基準値以上となった場合に収束条件を満たしたと判断する([収束条件の例]の説明終わり/ステップS115)。
【0127】
収束判定部119が収束条件を満たしたと判断した場合、ステップS103からS114のイテレーションが終了し、出力部120が記憶部105に格納されているすべての正例エンティティRPjeを出力して処理を終了する(ステップS117)。それ以外の場合は、制御部19がj+1を新たなjの値とし(ステップS116)、記憶部105に格納されている正例エンティティRPje 及び負例エンティティRNje 、記憶部103に格納されている正例属性RPja 及び負例属性RNjaを属性識別用素性抽出部108に入力し、ステップS103からS114のイテレーションが実行される。
【0128】
<第1実施形態の特徴>
本形態では、抽出対象となるエンティティよりも少ない情報量で特徴を表し得る属性のラベル(正例か負例かを表すラベル)を人手によって修正可能とする。これにより、エンティティのラベルのみを人手によって修正する場合に比べ、少ないコストでエンティティの識別精度を向上させることができる。基本的には、1つの属性を修正する場合と1つのエンティティを修正する場合とを比べると、前者によるエンティティの識別精度の向上効果の方が大きい。例えば、球団のエンティティを獲得したい場合に、「ゴール」が正例属性の候補として得られた場合にそれを修正することで得られる効果は、「ヴェルディ」が正例エンティティの候補として得られた場合にそれを修正することで得られる効果よりも大きい。よって、本形態では、人手による修正コストを小さくし、セマンティックドリフトを効率的に抑制することができる。
【0129】
また、本形態では、エンティティとその属性との組を用いて識別を行うこととしたため、セマンティックドリフトを抑制することができる。例えばエンティティ<阪神>には曖昧性があり、エンティティ<阪神>の素性のみでは、エンティティ<阪神>が鉄道名と球団名のどちらを指すか識別できない。しかし、<試合>や<乗務員>の属性を付加した<阪神>−<試合>や<阪神>−<乗務員>を制約条件とすれば、それぞれの<阪神>が異なる意味で用いられていることを識別できる。
【0130】
また、本形態では、co-training方式を用いるため、精度の高い識別が可能となる。なお、上記では正例及び負例属性の更新(ステップS103−S111)を行った後に、正例及び負例エンティティの更新(S112−S114)を行う例を示した。しかし、正例及び負例エンティティの更新を行った後に正例及び負例属性の更新を行ってもよい。
【0131】
その他、本形態の方法はリソースであるテキストデータの種類によらず利用でき、適用範囲が広い。
【0132】
〔第2実施形態〕
第1実施形態では属性のラベルのみを人手による修正対象としたが、第2実施形態ではさらにエンティティのラベルについても人手による修正対象とする。以下では第1実施形態との相違点を中心に説明し、第1実施形態と共通する事項については説明を省略する。
【0133】
<構成>
図6は、第2実施形態のデータ抽出装置2の機能構成を例示するためのブロック図である。
【0134】
図6に例示するように、データ抽出装置2は、記憶部101−105、制御部106、初期属性集合生成部107、属性識別用素性抽出部108、属性識別学習部109、属性識別部110、属性修正候補選択部111、属性修正候補提示部112、属性修正情報取得部113、基準更新部114、属性修正情報反映部115、エンティティ識別用素性抽出部116、エンティティ識別学習部117、エンティティ識別部218、エンティティ修正候補選択部211、エンティティ修正候補提示部212、エンティティ修正情報取得部213、基準更新部214、エンティティ修正情報反映部215、収束判定部119、及び出力部120を有し、制御部106の制御のもと各処理を実行する。なお、データ抽出装置2は、例えば、CPU、RAM及びROM等を含む公知又は専用のコンピュータに特別なプログラムが読み込まれて構成される特別な装置である。
【0135】
<前提>
第1実施形態と同じである。
【0136】
<データ抽出処理>
図2及び7に例示するように、本形態でも、エンティティと属性の更新を交互に行うco-training方式を用いる。すなわち、ステップS103−S111では正例及び負例エンティティの更新は行われず、正例及び負例属性の更新のみが行われる。一方ステップS112−S211では正例及び負例属性の更新は行われず、正例及び負例エンティティの更新のみが行われる。以下、図2及び7を用いてデータ抽出装置2のデータ抽出処理を例示する。
【0137】
《ステップS101−S113》
ステップS101−S113の処理は第1実施形態と同一である。ステップS113の後、以下のステップS214の処理が実行される。
【0138】
《エンティティ識別:ステップS214》
エンティティ識別部218は、記憶部101に格納されたテキストデータの集合Dから何れかのテキストデータを選択し、選択した当該テキストデータが含む文字列を第2対象エンティティRDejとして選択する。またエンティティ識別部218は、選択した当該テキストデータから当該第2対象エンティティRDejと異なる文字列を第2対象属性RDajとして選択する。そしてエンティティ識別部218は、第2対象エンティティRDejと第2対象属性RDajとの組を第2対象エンティティ−対象属性ペアPD2(RDej,RDaj)とする。テキストデータの集合Dからすべてのテキストデータが選択されてもよいが、すべてのテキストデータを対象とすることは計算効率上好ましくない。そのため、第1実施形態のステップS114で説明したような特定の方法で対象を限定して選択を行うことが望ましい。
【0139】
エンティティ識別用素性抽出部116は、第1実施形態と同様に、記憶部101に格納されたテキストデータの集合Dから、第2対象エンティティRDejと第2対象属性RDajとの組を含む文字列である「第2対象テキスト」を選択する。エンティティ識別用素性抽出部116は、第1実施形態と同様に、第2対象テキストに対する第2対象エンティティ−対象属性ペアPD2(RDej,RDaj)の特徴を表す情報を当該第2対象エンティティ−対象属性ペアPD2(RDej,RDaj)の素性fDejとする。
【0140】
第2対象テキストに対応するPD2(RDej,RDaj)の素性fDejは、エンティティ識別部218に入力される。エンティティ識別部218は、PD2(RDej,RDaj)の素性fDejを記憶部104から読み出した第2識別モデルMEejに入力し、PD2(RDej,RDaj)が正例エンティティ−正例属性ペアかを識別するための情報CPej、及び/又は、PD2(RDej,RDaj)が負例エンティティ−負例属性ペアかを識別するための情報CNejを得る。CPejの例はPD2(RDej,RDaj)が正例エンティティ−正例属性ペアである確率を表す信頼度であり、CNejの例はPD2(RDej,RDaj)が負例エンティティ−負例属性ペアである確率を表す信頼度に対応する情報CNejである。識別モデルMEejとして正則化項付き最大エントロピーモデルが用いられる場合には、例えば、x=fDejを識別モデルMEejであるP(y|x)に代入して得られる条件付確率P(1|x)及びP(-1|x)がCPej=P(1|x)及びCNej=P(-1|x)とされる。その他、例えばP(1|x)の広義単調増加関数値がCPejとされ、P(-1|x)の広義単調増加関数値がCNejとされてもよい。
【0141】
次のエンティティ識別部218の処理はどのようなCPej,CNejを用いるかによって相違する。以下、それぞれのケースについて説明する。
【0142】
[正例側に対するCPejと負例側に対するCPejとの正負符号が反転する場合]
負例側のCPejの正負符号が正例側のCPejと反対になる場合(例えば、負例側のCPejが常に負となる場合等)、エンティティ識別部218は、PD2(RDej,RDaj)と当該PD2(RDej,RDaj)の素性fDej及びCPejとを属性修正候補選択部211に送る。
【0143】
[正例側に対するCPejと負例側に対するCPejとの正負符号が反転するとは限らない場合]
エンティティ識別部218は、PD2(RDej,RDaj)に対応するCPej及び/又はCNejを用い、PD2(RDej,RDaj)が負例エンティティ−負例属性ペアかを識別する。エンティティ識別部218は、所定の閾値とCPej及び/又はCNejとを比較してこの識別を行う。以下に識別方法を例示する。
【0144】
例1:エンティティ識別部218は、CPejが第1閾値以下(例えば0以下)である場合に、当該CPejに対応するPD2(RDej,RDaj)が負例エンティティ−負例属性ペアであると判定する。
【0145】
例2:エンティティ識別部218は、CNejが第2閾値以上である場合に、当該CNejに対応するPD2(RDej,RDaj)が負例エンティティ−負例属性ペアであると判定する。
【0146】
例3:エンティティ識別部218は、CNejが第2閾値以上であり、かつ、CPejが第1閾値以下である場合に、当該CNej及びCPejに対応するPD2(RDej,RDaj)が負例エンティティ−負例属性ペアであると判定する。
【0147】
エンティティ識別部218は、負例エンティティ−負例属性ペアであると判定したPD2(RDej,RDaj)の第2対象エンティティRDejを負例エンティティRNejとして記憶部105に格納し、負例エンティティRNejの集合に追加する。さらにエンティティ識別部218は、負例エンティティ−負例属性ペアであると判定されなかったPD2(RDej,RDaj)と当該PD2(RDej,RDaj)の素性fDej及びCPejとをエンティティ修正候補選択部211に送る。
【0148】
《エンティティ修正候補選択:ステップS206》
エンティティ修正候補選択部211は、入力されたPD2(RDej,RDaj)が含む第2対象エンティティRDejの集合の部分集合を、エンティティ修正候補CRPejの集合として選択する。エンティティ修正候補CRPejの集合の要素は正例エンティティの候補としてユーザに提示され、人手によるラベル修正(正例から負例への修正、又は正例からラベルなしへの修正)の候補とされる。入力されたPD2(RDej,RDaj)が含む第2対象エンティティRDejの集合がエンティティ修正候補CRPejの集合とされてもよいし、当該第2対象エンティティRDejの集合の一部がエンティティ修正候補CRPejの集合とされてもよい。ただ、人手による修正コストをできるだけ小さくし、かつ、セマンティックドリフトをより効率的に軽減するためには、それに適した基準でエンティティ修正候補CRPejの集合が選択されることが望ましい。基本的には、人手によるラベル修正によって得られる情報量の多い第2対象エンティティRDejや、正例エンティティであることの信頼度がデータ抽出装置2にとって低い第2対象エンティティRDejが、エンティティ修正候補CRPejの集合として有益である。有益な第2対象エンティティRDejを選んでエンティティ修正候補CRPejの集合としてユーザに提示できれば、ユーザが検討するデータの数を減らすことができ(ユーザの負荷を減らし)、かつ、学習処理に有益な正例エンティティRPejを効率よく得ることができる。以下、有益な第2対象エンティティRDejの集合をエンティティ修正候補CRPejの集合として選択するための基準を例示する。
【0149】
[エンティティ修正候補の集合を選択する基準の例示]
エンティティ修正候補選択部211は、例えば、第2対象エンティティRDejに対応するスコアSp(e)を何らかの基準と比較し、その基準を満たす第2対象エンティティRDejの集合をエンティティ修正候補CRPejの集合とする。例えば、スコアSp(e)が閾値THp(e)以上(又は閾値THp(e)を超えること)となる第2対象エンティティRDejをエンティティ修正候補CRPejの集合の要素としてもよいし、スコアSp(e)の大きい順に選択された上位M(e)個(M(e)は正整数)の第2対象エンティティRDejをエンティティ修正候補CRPejの集合の要素としてもよい。
【0150】
スコアSp(e)は、人手によるラベル修正によって得られる情報量が多い(影響度が大きい)ほど大きくなるものであってもよいし、正例エンティティであることの信頼度がデータ抽出装置2にとって低いほど大きくなるものであってもよいし、それらの両方の特徴を備えたものであってもよい。スコアSp(e)は、前述したスコアSp(a)について「属性」を「エンティティ」に置き換えたものでよい。以下、スコアSp(e)の例を具体的に示す。
【0151】
[影響度に対応するスコアの例]
この例では、エンティティ修正候補選択部211に入力されたPD2(RDej,RDaj)の集合が含む特定の要素に対する素性についての関連性の強さが何らかの基準を満たす他の要素の個数に対応する情報を、当該特定の要素である第2対象エンティティ−対象属性ペアの影響度Pp(e)とし、影響度Pp(e)に対応するスコアSp(e)が用いられる。エンティティ修正候補選択部211は、影響度Pp(e)に対応するスコアSp(e)が何らかの基準を満たすPD2(RDej,RDaj)が含む第2対象エンティティRDejの集合をエンティティ修正候補CRPejの集合とする。影響度Pp(e)がそのままスコアSp(e)とされてもよいし、影響度Pp(e)に対する広義単調増加関数値がスコアSp(e)とされてもよい。
【0152】
影響度Pp(e)は、後述するステップS211でSIMやFMMなどに基づくアクティブラーニング法が用いられる場合に、人手によるラベル修正によって得られる情報量の大きさを表わす。人手での修正に伴って自動的に修正される要素の個数が影響度Pp(e)とされてもよいし、人手での修正に伴って自動的に修正される要素の個数の広義単調増加関数値などが影響度Pp(e)とされてもよい。以下に影響度Pp(e)の具体例を示す。
【0153】
影響度Pp(e)の具体例1:
影響度Pp(e)の具体例1は、後述するステップS211でSIM又はそれに類似の処理が用いられる場合に特に有効なものである。この例では、上述の「素性についての関連性の強さ」が「素性の類似度の大きさ」とされる。すなわち、エンティティ修正候補選択部211に入力されたPD2(RDej,RDaj)の集合が含む特定の要素に対する素性の類似度の大きさが何らかの基準を満たすような他の要素の個数に対応する情報を、当該特定の要素である第2対象エンティティ−対象属性ペアの影響度Pp(e)とする。言い換えると、当該特定の要素の素性と類似する(類似度が何らかの基準を満たす)素性を持つ要素の個数に対応する情報を当該特定の要素の影響度Pp(e)とする。例えば、当該特定の要素の素性との類似度が基準値以上となる素性を持つ他の要素の個数がそのまま影響度Pp(e)とされてもよいし、この要素の個数の広義単調増加関数値などが影響度Pp(e)とされてもよい。第1実施形態と同様、類似度としてどのような尺度を用いるかについての限定はないが、コサイン類似度や、PMIで重み付けされた素性のコサイン類似度などを例示できる(例えば、非特許文献2参照)。
【0154】
影響度Pp(e)の具体例2:
影響度Pp(e)の具体例2は、後述するステップS211でFMM又はそれに類似の処理が用いられる場合に特に有効なものである。PD2(RDej,RDaj)の素性がそれぞれ複数の値の集合であることを前提とする。この例でのPD2(RDej,RDaj)の集合の特定の要素と他の要素との間での「素性についての関連性の強さ」は、当該他の要素の素性を第2識別モデルに入力して得られる情報と、当該他の要素の素性から当該特定の要素の素性と共通するものを除いたものを第2識別モデルに入力して得られる情報と、の違いの大きさ(変動量)である。具体例2では、当該変動量が何らかの基準を満たすような他の要素の個数に対応する情報を、当該特定の要素である第2対象エンティティ−対象属性ペアの影響度Pp(e)とする。例えば、このような変動量が基準値以上となる素性を持つ他の要素の個数がそのまま影響度Pp(e)とされてもよいし、この要素の個数の広義単調増加関数値などが影響度Pp(e)とされてもよい。
【0155】
[信頼度に対応するスコアの例]
この例では、PD2(RDej,RDaj)が正例エンティティ−正例属性ペアである確率を表す信頼度に対応するスコアSp(e)を用いる。この例では、信頼度が小さいほど大きくなるスコアSp(e)を用いる。例えば、エンティティ修正候補選択部211に入力されるPD2(RDej,RDaj)に対応するCPejが、当該PD2(RDej,RDaj)が正例エンティティ−正例属性ペアである確率を表す信頼度であるとし、CPejの逆数がスコアSp(e)とされてもよいし、CPejの広義単調減少関数値がSp(e)とされてもよい。
【0156】
[影響度及び信頼度に対応するスコアの例]
この例では、上述の影響度及び信頼度に対応するスコアSp(e)が用いられる。この例では、上述の影響度が大きいほど大きくなり、かつ、上述の信頼度が大きくなるほど小さくなるスコアSp(e)が用いられる。例えば、Sp(e)=Pp(e)/CPejとされてもよいし、Pp(e)/CPejの広義単調増加関数値がスコアSp(e)とされてもよい。
【0157】
《エンティティ修正候補提示:ステップS207》
エンティティ修正候補選択部211で選択されたエンティティ修正候補CRPejの集合はエンティティ修正候補提示部212に送られる。エンティティ修正候補提示部212は、エンティティ修正候補CRPejの集合を出力する。例えば、エンティティ修正候補提示部212は、エンティティ修正候補CRPejの集合をリストとして表示する。この際、例えば、各エンティティ修正候補CRPejに対応する第2対象エンティティRDejやスコアSp(e)などの情報も併せてエンティティ修正候補提示部212に送られ、表示されてもよい。ユーザはこのように表示されたエンティティ修正候補CRPejの集合を閲覧する。
【0158】
《エンティティ修正情報取得:ステップS208》
エンティティ修正候補CRPejの集合を閲覧したユーザはそれらの要素が本当に正例であるか否かを検証し、エンティティ修正候補CRPejの集合から正例エンティティとして適切ではない要素を選択する。ユーザはその選択結果に基づき、エンティティ修正候補CRPejの集合の何れかの要素を特定するエンティティ修正情報をエンティティ修正情報取得部213に入力する。エンティティ修正情報は、ユーザが正例エンティティとして適切ではないと判断した要素を特定可能な情報である。例えば、ユーザが正例エンティティとして適切ではないと判断したエンティティ修正候補CRPejを示す情報がエンティティ修正情報とされてもよいし、逆にユーザが正例エンティティとして適切であると判断したエンティティ修正候補CRPejを示す情報がエンティティ修正情報とされてもよい。このようにエンティティ修正情報取得部213に入力されたエンティティ修正情報は、基準更新部214及びエンティティ修正情報反映部215に送られる。
【0159】
《条件判定:ステップS209,S210》
基準更新部214は、エンティティ修正候補提示部212から出力されたエンティティ修正候補CRPejの集合のうち、正例エンティティとして不適切な要素を基準個数以上特定するエンティティ修正情報がエンティティ修正情報取得部213に入力されたかを判定する。前述した属性の場合と同様、基準個数は、エンティティ修正候補提示部212から出力されたすべてのエンティティ修正候補CRPejの個数であってもよいし、それ以下の個数であってもよい(ステップS209)。
【0160】
ここで、正例エンティティとして不適切な要素を基準個数以上特定するエンティティ修正情報がエンティティ修正情報取得部213に入力されたと判定された場合、基準更新部214はステップS206でエンティティ修正候補CRPejの集合として選択される要素が増加するように、エンティティ修正候補選択部211での基準を更新する。例えば、ステップS206において、スコアSp(e)が閾値THp(e)以上となる第2対象エンティティRDejをエンティティ修正候補CRPejの集合の要素とされるのであれば閾値THp(e)を低くする。例えば、ステップS206において、スコアSp(e)の大きい順に選択された上位M(e)個の第2対象エンティティRDejをエンティティ修正候補CRPejの集合の要素とされるのであればM(e)の値を大きくする。閾値THp(e)や値M(e)などの初期値や更新のステップ幅は自由に設定することができる(ステップS210)。その後ステップS206に戻る。これにより、エンティティ修正候補選択部211でより多くの要素からなるエンティティ修正候補CRPejの集合が再び選択され、エンティティ修正候補提示部212の処理とエンティティ修正情報取得部213の処理とがやり直される。
【0161】
一方、正例エンティティとして不適切な要素を基準個数以上特定しないエンティティ修正情報がエンティティ修正情報取得部213に入力されたと判定された場合、以下のエンティティ修正情報反映部215の処理が実行される。
【0162】
《エンティティ修正情報反映:ステップS211》
ステップS214で負例エンティティ−負例属性ペアであると判定されなかったPD2(RDej,RDaj)の集合と、エンティティ修正情報取得部213に入力されたエンティティ修正情報とがエンティティ修正情報反映部215に入力される。エンティティ修正情報反映部215は、入力されたPD2(RDej,RDaj)が含む第2対象エンティティRDejの集合からエンティティ修正情報で特定される要素を除いた補集合に含まれる要素を、正例エンティティRPajの集合の要素とする。この処理は、ステップS111の処理での「属性」を「エンティティ」に置き換えたものでよい。以下にこの処理を例示する。
【0163】
[処理例1]
この例のエンティティ修正情報反映部215は、少なくとも、エンティティ修正情報で特定されるエンティティ修正候補CRPejと、当該エンティティ修正情報で特定されるエンティティ修正候補CRPejを含む第2対象エンティティ−対象属性ペアとの間での素性についての関連性の強さが何らかの基準を満たす他の第2対象エンティティ−対象属性ペアが含むエンティティ修正候補CRPejとを除く、エンティティ修正候補CRPejの集合の要素を、正例エンティティRPejの集合として記憶部105に格納する。ここで、「素性についての関連性の強さ」は、例えば、前述の影響度Pp(e)の具体例1で説明した「素性の類似度の大きさ」であってもよいし、前述の影響度Pp(e)の具体例2で説明した「変動量」であってもよい。この処理は、例えばステップS111と同様にSIMやFMMに基づいて行われる。SIMの場合、正例の集合から除外されたエンティティ修正候補CRPejは負例エンティティRNejの集合として記憶部105に格納される。FMMの場合、正例の集合から除外されたエンティティ修正候補CRPejのラベル付けは行われない。
【0164】
[処理例2]
この例のエンティティ修正情報反映部215は、入力されたPD2(RDej,RDaj)が含む第2対象エンティティRDejの集合からエンティティ修正情報で特定される第2対象エンティティRDej(正例エンティティとして適切ではないと判断された要素)を除いたものを正例エンティティRPejの集合として記憶部105に格納する。エンティティ修正情報で特定される第2対象エンティティRDejは負例エンティティRNejの集合として記憶部105に格納される。
【0165】
《収束判定:ステップS115−S117》
収束判定部119は、収束条件を満たしたかを判定する(ステップS115)。収束判定部119が収束条件を満たしたと判断した場合、ステップS103からS211のイテレーションが終了し、出力部120が記憶部105に格納されているすべての正例エンティティRPjeを出力して処理を終了する(ステップS117)。それ以外の場合は、制御部19がj+1を新たなjの値とし(ステップS116)、記憶部105に格納されている正例エンティティRPje 及び負例エンティティRNje 、記憶部103に格納されている正例属性RPja 及び負例属性RNjaを属性識別用素性抽出部108に入力し、ステップS103からS211のイテレーションが実行される。
【0166】
<第2実施形態の特徴>
本形態では、属性だけではなく、エンティティについても、人手によるラベル修正が可能となった。これにより、エンティティの識別精度を向上させることができる。
【0167】
また、本形態でも、エンティティとその属性との組を用いて識別を行うこととしたため、セマンティックドリフトを抑制することができ、co-training方式を用いるため、精度の高い識別が可能となる。
【0168】
その他、本形態の方法はリソースであるテキストデータの種類によらず利用でき、適用範囲が広い。
【0169】
〔第1及び2実施形態の変形例〕
参考文献4「Andrew K. McCallum, Kamal Nigam, “Employing EM and Pool-Based Active Learning for Text Classification,” ICML'98, 1998.」などで用いられているQBC(Query By Committee)を適用してもよい。すなわち、第1及び2実施形態では、第1識別モデルMEajで得られたPD1(RDej,RDaj)が正例エンティティ−正例属性ペアである確率を表す信頼度をCPajとして用い(ステップS106)、第2識別モデルMEejで得られたPD2(RDej,RDaj)が正例エンティティ−正例属性ペアである確率を表す信頼度をCPejとして用いる例を示した(ステップS206)。しかしながら、第1識別モデルMEajや第2識別モデルMEejで得られた信頼度ではなく、QBCから得られたスコアをCPajやCPejとしてもよい。以下にこの変形例を説明する。
【0170】
まず、QBCの説明の前にEMアルゴリズムの半教師あり学習への拡張について説明する。半教師あり学習とは、少量の教師ありデータと大量の教師なしデータとの両方を学習データとして用いて行う識別モデルの学習方法である。半教師あり学習では、教師ありデータだけを用いた識別モデルに比べ、高い性能を持つ識別モデルを得ることができる。ここでは、正例・負例の2値分類を行う識別モデルを考える。
【0171】
まず、既に正例又は負例にラベル付けされているテキストデータのラベルをUM(Unigram Mixtures)(参考文献4等参照)における各隠れ変数zに割り当てる。即ち、正例・負例を各隠れ変数zとして持つ2混合のUMを想定する。この場合のUMは以下の形で定義される。
【0172】
【数8】

【0173】
ここでdはテキストデータの集合Dに属するテキストデータd∈Dを表し、p(d)はテキストデータの集合Dにおけるテキストデータdの出現確率を表す。z∈Zは隠れ変数であり、各zがテキストデータdが正例(z=1)であるか負例(z=0)であるかに対応する。Zは隠れ変数zの集合を表す。p(z)は隠れ変数zに対する確率であり、
【0174】
【数9】

【0175】
を満たす。vは文字列を表し、Vは文字列vの集合を表す。p(v|z)は隠れ変数zにおける文字列vの生成確率(隠れ変数zが与えられたときの文字列vの事後確率)であり、
【0176】
【数10】

【0177】
を満たす。ndvはテキストデータd中に文字列vが出現した回数である。
【0178】
教師ありデータとして与えられた正例又は負例のテキストデータdのラベルに従い、UMの各事後確率p(z=1|d);p(z=0|d)に0又は1が付与される。これらの事後確率が固定されたままで、教師なしデータに対しEMアルゴリズムが適用され、モデル学習が行われる。
【0179】
次に、上記半教師あり学習に拡張したEMアルゴリズムをアクティブラーニングに拡張した手法であるQBCについて説明する。
【0180】
まず、これまでのイテレーションで得られている正例・負例の属性及びエンティティをG個のグループに分ける。例えば、これまでに正例・負例エンティティが各20個得られており、正例・負例属性が各10個得られているとする。各20個の正例・負例エンティティからなる集合をそれぞれPEpre, NEpreとし、各10個の正例・負例属性からなる集合をそれぞれPApre, NApreとする。グループ数Gを2とすると、(PEpre, NEpre)(PApre, NApre)がそれぞれ2分され、(PEpre1,PEpre2,NEpre1 ,NEpre2),(PApre1, PApre2, NApre1 ,NApre2)とされる。この時必ず各グループには正例負例が両方含まれるようにする。
【0181】
それぞれのグループ(部分集合)g∈{1,…,G}ごとにデータをまとめ、グループgに対応するデータをCgとする。例えばグループ数Gが2の場合、C1={PEpre1, NEpre1, PApre1, NA pre1}, C2={PEpre2, NEpre2, PApre2, NApre2}とされる。以下では各Cgについて同じ処理が行われるが、ここでは具体的にC1の処理を追っていく。
【0182】
C1における正例の集合(PEpre1, PApre1)と負例の集合(NEpre1, NApre1)を用いて、各エンティティと属性のペアをすべての組み合わせについて作成し、これらのペアを含む各テキストデータから定まる前述の素性を正例側及び負例側の学習データCD1とする。学習データCD1に対して半教師あり学習に拡張したEMアルゴリズムを用いてUMモデルを学習するが、この際、隠れ変数zの事後確率p(z∈{1,0}|d)を各学習データCD1のラベルに合わせて1または0とする。学習の結果得られたUMモデルをM1とする。これを各グループg∈{1,…,G}について同様に行い、UMモデルMgを得る。
【0183】
次に、新たなエンティティと属性のペアに正例か負例かのラベル付けを行う状況を考える。ラベルが未知のエンティティと属性とのペアを含むテキストデータから定まる素性に対して各UMモデルMgを適用することで、各UMモデルMgに対する事後確率p(z|d; Mg)を得ることができる。QBCでは、ラベルzに対する事後確率p(z|d; Mg)の揺れがMg間で大きいものが有益なデータとみなされる。このスコアは以下で定義される。
【0184】
【数11】

【0185】
ここで、z=1はzが正例であることを表し、D(・||・)はカルバック・ライブラ距離を表し、
【0186】
【数12】

【0187】
である。
【0188】
次に、上記のQBCを識別モデルに適用した例を示す。以下の式でスコアを定義する。
【0189】
【数13】

【0190】
ここでω∈{1,0}={正例,負例}はzと同じ値域を持つが、隠れ変数ではないために新たに確率変数を与えている。また、Mg’(g∈{1,…,G})は教師ありの学習データCDgを用いて学習された識別モデルを表し、
【0191】
【数14】

【0192】
である。この点が元のQBCと異なる。すなわち、学習データCDgを用いてEMアルゴリズムによってUMが生成されるのではなく、識別モデルが構築される。識別モデルには、最大エントロピーモデルやサポートベクタマシンなど一般的に用いられる識別モデルを適用できる。
【0193】
QBCはシステムの信頼度が低いことを統計的に判断することができる。具体的には、式(10)のスコアは、グループ(部分集合)gごとの信頼度(事後確率p(z=1|d; Mg))に対応する情報のばらつきを表す。式(10)のスコアが高いエンティティと属性とのペアほど信頼度が低く、ユーザに提示してラベルの的確性を評価させることが望ましいといえる。
【0194】
そのため、前述のPD1(RDej,RDaj)に対する式(10)のスコアの広義単調減少関数値(式(10)のスコアの逆数など)をCPajとし、前述のPD2(RDej,RDaj)に対する式(10)のスコアの広義単調減少関数値(式(10)のスコアの逆数など)をCPejとすることができる。
【0195】
つまり、例えば、前述の属性識別学習部109が第1正例エンティティ−正例属性ペアの集合を第1正例エンティティ−正例属性ペアの部分集合(グループg)ごとに区分し、当該部分集合に属する第1正例エンティティ−正例属性ペアの素性を入力として当該部分集合にそれぞれ対応する第1識別モデルを生成し、属性識別部110が、第1対象エンティティ−対象属性ペアの素性を部分集合にそれぞれ対応する第1識別モデルに入力し、部分集合ごとに当該第1対象エンティティ−対象属性ペアが正例エンティティ−正例属性ペアである確率を表す信頼度を得、スコアSp(a)が、さらに部分集合ごとの信頼度に対応する情報のばらつきの大きさを表す情報(式(10)のスコア)に対応することにしてもよい。
【0196】
例えば、前述のエンティティ識別学習部117が第2正例エンティティ−正例属性ペアの集合を第2正例エンティティ−正例属性ペアの部分集合ごとに区分し、当該部分集合に属する第2正例エンティティ−正例属性ペアの素性を入力として当該部分集合にそれぞれ対応する第2識別モデルを生成し、エンティティ識別部218が、第2対象エンティティ−対象属性ペアの素性を部分集合にそれぞれ対応する第2識別モデルに入力し、部分集合ごとに当該第2対象エンティティ−対象属性ペアが正例エンティティ−正例属性ペアである確率を表す信頼度を得、スコアSp(e)が、さらに部分集合ごとの信頼度に対応する情報のばらつきの大きさを表す情報(式(10)のスコア)に対応することにしてもよい。
【0197】
〔その他の変形例等〕
なお、本発明は上述の実施の形態に限定されるものではない。
【0198】
例えば、上記の各実施形態では、正例側の属性やエンティティ(例えば、識別モデルで負例と判定されなかった対象エンティティ−対象属性ペアが含む属性やエンティティ)を人手による修正候補とした(ステップS106,S206)。一般的に負例数は正例数に比べて圧倒的に多いため、負例側の属性やエンティティを人手によって修正することは効率的ではない。しかしながら、負例側の属性やエンティティも人手による修正候補としてもよい。この場合には、正例を負例に置き換えたステップS106−S111の処理やステップS206−S211の処理や上述の変形例の処理が、さらに実行される。例えば、負例側のCPajやCPejの正負符号が正例側のCPajやCPejと反対になる場合(例えば、負例側のCPajやCPejが常に負となる場合等)には、Sp(a)=Pp(a)/-CPajやそのの広義単調増加関数値が負例側のスコアSp(a)とする。また、この場合、負例側に対する式(10)は以下のようになる。
【0199】
【数15】

【0200】
これにより、正例候補だけではなく負例候補についても、人手による修正候補とすることができる。
【0201】
また、負例を用いないこととしてもよく、第1識別モデルMEajや第2識別モデルMEejが、任意の文字列であるエンティティと当該エンティティの属性との組であるエンティティ−属性ペアの素性を入力として当該ペアが正例エンティティ−正例属性ペアかを識別するための情報を出力する関数であってもよい。
【0202】
また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【0203】
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【0204】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
【0205】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0206】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0207】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【0208】
1−2 データ抽出装置

【特許請求の範囲】
【請求項1】
抽出対象の文字列である正例エンティティの集合から選択した第1正例エンティティと前記正例エンティティの属性を表す文字列である正例属性の集合から選択した第1正例属性との組である第1正例エンティティ−正例属性ペアを生成し、テキストデータの集合から、前記第1正例エンティティと前記第1正例属性との組を含む文字列を選択し、選択した当該文字列に対する前記第1正例エンティティ−正例属性ペアの特徴を表す情報を当該第1正例エンティティ−正例属性ペアの素性の少なくとも一部とする属性識別用素性抽出部と、
前記第1正例エンティティ−正例属性ペアの素性を教師あり学習データとした学習処理によって、任意の文字列であるエンティティと当該エンティティの属性との組であるエンティティ−属性ペアの素性を入力として当該エンティティ−属性ペアが正例エンティティ−正例属性ペアであるかを識別するための情報を出力する関数である第1識別モデルを生成する属性識別学習部と、
前記テキストデータの集合から何れかの前記テキストデータを選択し、選択した当該テキストデータが含む文字列を第1対象エンティティとして選択し、選択した当該テキストデータから当該第1対象エンティティと異なる文字列を第1対象属性として選択し、前記第1対象エンティティと前記第1対象属性との組を第1対象エンティティ−対象属性ペアとし、選択した当該テキストデータ内での前記第1対象エンティティ−対象属性ペアの特徴を表す情報を当該第1対象エンティティ−対象属性ペアの素性の少なくとも一部とし、当該第1対象エンティティ−対象属性ペアの素性を前記第1識別モデルに入力して当該第1対象エンティティ−対象属性ペアが正例エンティティ−正例属性ペアであるかを識別するための情報を得る属性識別部と、
前記第1対象エンティティ−対象属性ペアが含む前記第1対象属性の集合の部分集合を、属性修正候補の集合として選択する属性修正候補選択部と、
前記属性修正候補の集合を出力する属性修正候補提示部と、
前記属性修正候補の集合の何れかの要素を特定する属性修正情報が入力される属性修正情報取得部と、
前記第1対象属性の集合から前記属性修正情報で特定される要素を除いた補集合に含まれる要素を、前記正例属性の集合の要素とする属性修正情報反映部と、
を有するデータ抽出装置。
【請求項2】
請求項1のデータ抽出装置であって、
前記属性修正候補選択部は、前記第1対象エンティティ−対象属性ペアの集合が含む特定の要素に対する素性についての関連性の強さが第1基準を満たす他の要素の個数に対応する情報を、当該特定の要素である第1対象エンティティ−対象属性ペアの影響度とし、当該影響度に対応するスコアが第2基準を満たす第1対象エンティティ−対象属性ペアが含む前記第1対象属性の集合を前記属性修正候補の集合とする、
ことを特徴とするデータ抽出装置。
【請求項3】
請求項2のデータ抽出装置であって、
前記属性修正情報反映部は、少なくとも、前記属性修正情報で特定される属性修正候補と、当該属性修正情報で特定される属性修正候補を含む第1対象エンティティ−対象属性ペアとの間での素性についての関連性の強さが第3基準を満たす他の第1対象エンティティ−対象属性ペアが含む属性修正候補とを除く、前記属性修正候補の集合の要素を、前記正例属性の集合に追加する、
ことを特徴とするデータ抽出装置。
【請求項4】
請求項2又は3のデータ抽出装置であって、
前記素性についての関連性の強さは、前記素性の類似度の大きさである、
ことを特徴とするデータ抽出装置。
【請求項5】
請求項2又は3のデータ抽出装置であって、
前記第1対象エンティティ−対象属性ペアの素性は複数の値の集合であり、
前記第1対象エンティティ−対象属性ペアの集合が含む特定の要素と他の要素との間での前記素性についての関連性の強さは、当該他の要素の素性を前記第1識別モデルに入力して得られる情報と、当該他の要素の素性から当該特定の要素の素性と共通するものを除いたものを前記第1識別モデルに入力して得られる情報との違いの大きさである、
ことを特徴とするデータ抽出装置。
【請求項6】
請求項2から5の何れかのデータ抽出装置であって、
前記エンティティ−属性ペアが正例エンティティ−正例属性ペアであるかを識別するための情報は、前記エンティティ−属性ペアが正例エンティティ−正例属性ペアである確率を表す信頼度であり、
前記スコアは、さらに前記属性識別部で得られる前記信頼度に対応する、
ことを特徴とするデータ抽出装置。
【請求項7】
請求項2から6の何れかのデータ抽出装置であって、
前記属性識別学習部は、前記第1正例エンティティ−正例属性ペアの集合を前記第1正例エンティティ−正例属性ペアの部分集合ごとに区分し、当該部分集合に属する前記第1正例エンティティ−正例属性ペアの素性を入力として当該部分集合にそれぞれ対応する前記第1識別モデルを生成し、
前記属性識別部は、前記第1対象エンティティ−対象属性ペアの素性を前記部分集合にそれぞれ対応する前記第1識別モデルに入力し、前記部分集合ごとに当該第1対象エンティティ−対象属性ペアが正例エンティティ−正例属性ペアである確率を表す信頼度を得、
前記スコアは、さらに前記部分集合ごとの前記信頼度に対応する情報のばらつきの大きさを表す情報に対応する、
ことを特徴とするデータ抽出装置。
【請求項8】
請求項1から7の何れかのデータ抽出装置であって、
前記属性修正候補提示部から出力された前記属性修正候補の集合のうち、正例属性として不適切な要素を基準個数以上特定する前記属性修正情報が前記属性修正情報取得部に入力された場合に、前記属性修正候補選択部でより多くの要素からなる属性修正候補の集合を再び選択して前記属性修正候補提示部の処理と前記属性修正情報取得部の処理とをやり直し、
前記属性修正候補提示部から出力された前記属性修正候補の集合のうち、正例属性として不適切な要素を前記基準個数以上特定しない前記属性修正情報が前記属性修正情報取得部に入力された場合に、前記属性修正情報反映部の処理を行う、
ことを特徴とするデータ抽出装置。
【請求項9】
請求項1から8の何れかのデータ抽出装置であって、
前記正例エンティティの集合から選択した第2正例エンティティと前記正例属性の集合から選択した第2正例属性との組である第2正例エンティティ−正例属性ペアを生成し、前記テキストデータの集合から、前記第2正例エンティティと前記第2正例属性との組を含む文字列を選択し、選択した当該文字列に対する前記第2正例エンティティ−正例属性ペアの特徴を表す情報を当該第2正例エンティティ−正例属性ペアの素性の少なくとも一部とするエンティティ識別用素性抽出部と、
前記第2正例エンティティ−正例属性ペアの素性を教師あり学習データとした学習処理によって、任意の文字列であるエンティティと当該エンティティの属性との組であるエンティティ−属性ペアの素性を入力として当該エンティティ−属性ペアが正例エンティティ−正例属性ペアであるかを識別するための情報を出力する関数である第2識別モデルを生成するエンティティ識別学習部と、
前記テキストデータの集合から何れかの前記テキストデータを選択し、選択した当該テキストデータが含む文字列を第2対象エンティティとして選択し、選択した当該テキストデータから当該第2対象エンティティと異なる文字列を第2対象属性として選択し、前記第2対象エンティティと前記第2対象属性との組を第2対象エンティティ−対象属性ペアとし、選択した当該テキストデータ内での前記第2対象エンティティ−対象属性ペアの特徴を表す情報を当該第2対象エンティティ−対象属性ペアの素性の少なくとも一部とし、当該第2対象エンティティ−対象属性ペアの素性を前記第2識別モデルに入力して当該第2対象エンティティ−対象属性ペアが正例エンティティ−正例属性ペアであるかを識別するための情報を得るエンティティ識別部と、
前記第2対象エンティティ−対象属性ペアが含む前記第2対象エンティティの集合の部分集合を、エンティティ修正候補の集合として選択するエンティティ修正候補選択部と、
前記エンティティ修正候補の集合を出力するエンティティ修正候補提示部と、
前記エンティティ修正候補の集合の何れかの要素を特定するエンティティ修正情報が入力される属性修正情報取得部と、
前記エンティティ修正候補の集合から前記エンティティ情報で特定される要素を除いた補集合に含まれる要素を、前記正例エンティティの集合に追加するエンティティ修正情報反映部と、
を有するデータ抽出装置。
【請求項10】
請求項9のデータ抽出装置であって、
前記第2正例エンティティ−正例属性ペアの素性は、前記第2正例エンティティ及び前記第2正例属性を含む文字列であって当該第2正例エンティティ及び当該第2正例属性を含むテキストデータに含まれるものと当該第2正例エンティティ及び当該第2正例属性との関係を表す情報を含み、
前記第2対象エンティティ−対象属性ペアの素性は、前記第2対象エンティティ及び前記第2対象属性を含む文字列であって当該第2対象エンティティ及び当該第2対象属性を含むテキストデータに含まれるものと当該第2対象エンティティ及び当該第2対象属性との関係を表す情報を含む、
ことを特徴とするデータ抽出装置。
【請求項11】
請求項1から10の何れかデータ抽出装置であって、
前記第1正例エンティティ−正例属性ペアの素性は、前記第1正例エンティティ及び前記第1正例属性を含む文字列であって当該第1正例エンティティ及び当該第1正例属性を含むテキストデータに含まれるものと当該第1正例エンティティ及び当該第1正例属性との関係を表す情報を含み、
前記第1対象エンティティ−対象属性ペアの素性は、前記第1対象エンティティ及び前記第1対象属性を含む文字列であって当該第1対象エンティティ及び当該第1対象属性を含むテキストデータに含まれるものと当該第1対象エンティティ及び当該第1対象属性との関係を表す情報を含む、
ことを特徴とするデータ抽出装置。
【請求項12】
請求項1から11の何れかのデータ抽出装置であって、
前記正例エンティティを含むテキストデータの集合から当該正例エンティティ以外の何れかの文字列を正例属性候補として選択し、前記正例エンティティを含む文字列の集合内に当該正例属性候補が含まれる頻度とすべてのテキストデータからなる集合内に当該正例属性候補が含まれる頻度との違いの大きさを表す指標が大きいものから所定数の正例属性候補を前記正例属性の初期値とする初期属性集合生成部をさらに有する、
ことを特徴とするデータ抽出装置。
【請求項13】
請求項1から12の何れかのデータ抽出装置であって、
前記属性識別部は、
前記属性識別学習部で前記教師あり学習データとして用いられた前記第1正例エンティティ−正例属性ペアの素性のうち、それらから生成された前記第1識別モデルへの影響度の大きさを表す指標が特定の基準よりも大きな素性を選択し、選択した素性に対応する文字列を含む前記テキストデータを選択し、当該選択したテキストデータが含む文字列を前記第1対象エンティティ及び前記第1対象属性とする、
ことを特徴とするデータ抽出装置。
【請求項14】
抽出対象の文字列である正例エンティティの集合から選択した第1正例エンティティと前記正例エンティティの属性を表す文字列である正例属性の集合から選択した第1正例属性との組である第1正例エンティティ−正例属性ペアを生成し、テキストデータの集合から、前記第1正例エンティティと前記第1正例属性との組を含む文字列を選択し、選択した当該文字列に対する前記第1正例エンティティ−正例属性ペアの特徴を表す情報を当該第1正例エンティティ−正例属性ペアの素性の少なくとも一部とする属性識別用素性抽出ステップと、
前記第1正例エンティティ−正例属性ペアの素性を教師あり学習データとした学習処理によって、任意の文字列であるエンティティと当該エンティティの属性との組であるエンティティ−属性ペアの素性を入力として当該エンティティ−属性ペアが正例エンティティ−正例属性ペアであるかを識別するための情報を出力する関数である第1識別モデルを生成する属性識別学習ステップと、
前記テキストデータの集合から何れかの前記テキストデータを選択し、選択した当該テキストデータが含む文字列を第1対象エンティティとして選択し、選択した当該テキストデータから当該第1対象エンティティと異なる文字列を第1対象属性として選択し、前記第1対象エンティティと前記第1対象属性との組を第1対象エンティティ−対象属性ペアとし、選択した当該テキストデータ内での前記第1対象エンティティ−対象属性ペアの特徴を表す情報を当該第1対象エンティティ−対象属性ペアの素性の少なくとも一部とし、当該第1対象エンティティ−対象属性ペアの素性を前記第1識別モデルに入力して当該第1対象エンティティ−対象属性ペアが正例エンティティ−正例属性ペアであるかを識別するための情報を得る属性識別ステップと、
前記第1対象エンティティ−対象属性ペアが含む前記第1対象属性の集合の部分集合を、属性修正候補の集合として選択する属性修正候補選択ステップと、
前記属性修正候補の集合を出力する属性修正候補提示ステップと、
前記属性修正候補の集合の何れかの要素を特定する属性修正情報が入力される属性修正情報取得ステップと、
前記第1対象属性の集合から前記属性修正情報で特定される要素を除いた補集合に含まれる要素を、前記正例属性の集合の要素とする属性修正情報反映ステップと、
を有するデータ抽出方法。
【請求項15】
請求項1から13の何れかのデータ抽出装置の各部としてコンピュータを機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate