プログラム及び情報抽出装置
【課題】複数の木構造情報に頻出する木構造パターンを伸張しながら探索する過程でその木構造パターンの内部に要素を追加した場合に冗長な探索を招く木構造パターンを判定する。
【解決手段】情報抽出装置10は、複数の木構造情報に共通して含まれる木構造のパターンを保持し、保持された木構造のパターンから予め定められた条件に基づいて選択されたパスに要素を追加して木構造のパターンを伸張する伸張箇所を選択し、木構造のパターンにおける検査対象要素と伸張箇所とに基づいて定められる検査範囲から、木構造のパターンにおける検査対象要素とその子要素との間に要素を追加した共通のパターンが検出される場合に、木構造のパターンの伸張箇所に新たな要素を追加したパターンの探索を行わないと判定する。
【解決手段】情報抽出装置10は、複数の木構造情報に共通して含まれる木構造のパターンを保持し、保持された木構造のパターンから予め定められた条件に基づいて選択されたパスに要素を追加して木構造のパターンを伸張する伸張箇所を選択し、木構造のパターンにおける検査対象要素と伸張箇所とに基づいて定められる検査範囲から、木構造のパターンにおける検査対象要素とその子要素との間に要素を追加した共通のパターンが検出される場合に、木構造のパターンの伸張箇所に新たな要素を追加したパターンの探索を行わないと判定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム及び情報抽出装置に関する。
【背景技術】
【0002】
多量のデータを分析して有意な情報を引き出すデータマイニングという技術がある。こうしたデータマイニングでは扱うデータ量が増加すると計算コストが指数関数的に増加するため、冗長な処理を省略することが行われている。例えば下記の特許文献1には、冗長となるパターンを省略して処理する枝刈処理が記載されている。
【0003】
また、XML等の木構造情報(ツリーデータ)群に頻出する木構造のパターンを抽出するサブツリーマイニングに関し、要素の親子関係が厳密に一致する木構造のパターンを得るInduced Subtree Miningでは、木構造のパターンを伸張する際に既に探索した範囲から木構造のパターンの末端に共通する要素を追加できる場合(すなわち、新たなリーフノードを追加できる場合)には、上記木構造のパターンの伸張探索処理を省略しているものがある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平10−301942号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
要素間の親子関係が厳密に保たれていなくとも先祖子孫関係が保たれていれば同じ木構造のパターンとして抽出するEmbedded Subtree Miningでは、木構造のパターンの末端だけではなく内部にも要素が追加された場合を考慮して冗長な探索を招くか否かを判定する必要がある。
【0006】
本発明の目的は、複数の木構造情報に頻出する木構造パターンを伸張しながら探索する過程でその木構造パターンの内部に要素を追加した場合に冗長な探索を招く木構造パターンを判定するプログラム及び情報抽出装置を提供することにある。
【課題を解決するための手段】
【0007】
上記目的を達成するために、請求項1に記載の発明は、コンピュータを、複数の木構造情報の中から予め定められた数の木構造情報に共通して含まれる木構造のパターンを保持する保持手段、前記保持手段に保持された木構造のパターンから予め定められた条件に基づいてパスを選択するとともに、当該選択されたパスに要素を追加して前記木構造のパターンを伸張する伸張箇所を選択する選択手段、及び、前記木構造のパターンに含まれるいずれかの要素を検査対象要素とし、前記木構造のパターンにおける前記検査対象要素と前記伸張箇所とに基づいて前記複数の木構造情報のそれぞれについて定められる検査範囲から、前記木構造のパターンにおける前記検査対象要素とその子要素との間に要素を追加した共通のパターンが検出される場合に、前記木構造のパターンの前記伸張箇所に新たな要素を追加したパターンの探索を行わないと判定する判定手段として機能させるためのプログラムである。
【0008】
また、請求項2に記載の発明は、請求項1に記載のプログラムにおいて、前記判定手段は、前記定められる検査範囲から、前記木構造のパターンにおける前記検査対象要素とその1つの子要素との間に要素を追加した共通のパターンが検出される場合に、前記木構造のパターンの前記伸張箇所に新たな要素を追加したパターンの探索を行わないと判定することを特徴とする。
【0009】
また、請求項3に記載の発明は、請求項1又は2に記載のプログラムにおいて、前記判定手段は、前記定められる検査範囲から、前記木構造のパターンにおける前記検査対象要素とその複数の子要素とのそれぞれに接続する要素を追加した共通のパターンが検出される場合に、前記木構造のパターンの前記伸張箇所に新たな要素を追加したパターンの探索を行わないと判定することを特徴とする。
【0010】
また、請求項4に記載の発明は、請求項1から3のいずれかに記載のプログラムにおいて、前記判定手段はさらに、前記定められる検査範囲から、前記木構造のパターンにおける前記検査対象要素に新たな子要素を追加した共通のパターンが検出される場合に、前記木構造のパターンの前記伸張箇所に新たな要素を追加したパターンの探索を行わないと判定することを特徴とする。
【0011】
また、請求項5に記載の発明は、請求項1から4のいずれかに記載のプログラムにおいて、前記コンピュータをさらに、前記木構造のパターンにおける前記検査対象要素と前記伸張箇所とに基づいて、前記複数の木構造情報のそれぞれについて前記検査対象要素とその子要素との間に追加された要素の候補を検出する基準位置を設定する設定手段として機能させるためのプログラムである。
【0012】
また、請求項6に記載の発明は、請求項1から5のいずれかに記載のプログラムにおいて、前記コンピュータをさらに、前記判定手段により前記木構造のパターンの前記伸張箇所に新たな要素を追加した伸張パターンの探索を行うと判定した場合に、当該伸張パターンの候補を前記複数の木構造情報の中から探索する探索手段、前記探索手段により探索された前記伸張パターンの候補に基づいて生成した木構造のパターンを前記保持手段に保持させる手段、前記保持手段に保持された木構造のパターンを前記選択手段、前記判定手段、前記探索手段により伸張する処理を再帰的に実行する手段として機能させるためのプログラムである。
【0013】
また、請求項7に記載の発明は、複数の木構造情報の中から予め定められた数の木構造情報に共通して含まれる木構造のパターンを保持する保持手段と、前記保持手段に保持された木構造のパターンから予め定められた条件に基づいてパスを選択するとともに、当該選択されたパスに要素を追加して前記木構造のパターンを伸張する伸張箇所を選択する選択手段と、前記木構造のパターンに含まれるいずれかの要素を検査対象要素とし、前記木構造のパターンにおける前記検査対象要素と前記伸張箇所とに基づいて前記複数の木構造情報のそれぞれについて定められる検査範囲から、前記木構造のパターンにおける前記検査対象要素とその子要素との間に要素を追加した共通のパターンが検出される場合に、前記木構造のパターンの前記伸張箇所に新たな要素を追加したパターンの探索を行わないと判定する判定手段と、を含むことを特徴とする情報抽出装置である。
【発明の効果】
【0014】
請求項1及び7に記載の発明によれば、複数の木構造情報に頻出する木構造パターンを伸張しながら探索する過程でその木構造パターンの内部に要素を追加した場合に冗長な探索を招く木構造パターンを判定できる。
【0015】
請求項2に記載の発明によれば、木構造パターンにおける検査対象要素とその1つの子要素との間に要素を追加したパターンと探索されるパターンが重複する場合に伸張探索を省略できる。
【0016】
請求項3に記載の発明によれば、木構造パターンにおける検査対象要素とその複数の子要素との間に設けられる分岐要素を追加したパターンと探索されるパターンが重複する場合に伸張探索を省略できる。
【0017】
請求項4に記載の発明によれば、木構造パターンにおける検査対象要素に新たな子要素を追加したパターンと探索されるパターンが重複する場合に伸張探索を省略できる。
【0018】
請求項5に記載の発明によれば、本構成を有しない場合と比較して、冗長な探索となるか否かの判定を効率化できる。
【0019】
請求項6に記載の発明によれば、複数の木構造情報に頻出する木構造パターンがより多くの要素を有するように伸張する際に冗長な伸張探索処理のステップ数を低減できる。
【図面の簡単な説明】
【0020】
【図1】本実施形態に係る情報抽出装置の機能ブロック図である。
【図2】ツリーデータの一例を示した図である。
【図3】探索される木構造パターンの一例を示した図である。
【図4】RMP上に設定された伸張箇所の一例を示した図である。
【図5】第1冗長性判定部における、検査対象ノードに関する検査範囲を示した図である。
【図6】第2冗長性判定部における、検査対象ノードに関する検査範囲を示した図である。
【図7】1エッジ上ノードと分岐点ノードとが共に含まれるツリーデータの一例を示す図である。
【図8】伸張箇所の上位に検査対象ノードがある場合に設定される集計基準位置の一例を示した図である。
【図9】伸張箇所、検査対象ノードが一致する場合に設定される集計基準位置の一例を示した図である。
【図10】伸張箇所の下位に検査対象ノードが位置する場合に設定される集計基準位置の一例を示した図である。
【図11】ツリーデータから探索されるパターンの例を示した図である。
【図12】情報抽出処理のフローチャートである。
【図13】伸張探索処理のフローチャートである。
【図14】冗長性判定処理のフローチャートである。
【発明を実施するための形態】
【0021】
以下、本発明を実施するための実施の形態(以下、実施形態という)を、図面に従って説明する。
【0022】
図1には、本実施形態に係る情報抽出装置10の機能ブロック図を示した。図1に示されるように、情報抽出装置10は、ツリーデータ保持部12、パターン候補探索部14、パターン情報保持部16、パターン出現情報保持部18、パターン伸張箇所選択部20、伸張パターン存在範囲管理部22、及び冗長性判定部24を含む。上記の各部の機能は、CPU等の制御手段、メモリ等の記憶手段、外部デバイスとデータを送受信する入出力手段等を備えたコンピュータが、コンピュータ読み取り可能な情報記憶媒体に格納されたプログラムを読み込み実行することで実現されるものとしてよい。なお、プログラムは情報記憶媒体によってコンピュータたる情報抽出装置10に供給されることとしてもよいし、インターネット等のデータ通信手段を介して供給されることとしてもよい。以下、情報抽出装置10が有する各部の機能について詳細に説明する。
【0023】
ツリーデータ保持部12は、半導体メモリや磁気ディスク装置等の記憶装置を含み構成され、複数の木構造情報(以下、ツリーデータ)を保持するものである。ツリーデータは、複数の要素(以下、ノード)をその親子関係に基づいて接続したデータである。なお、ツリーデータにおいて頂点に位置するノードをルートノード、末端に位置するノードをリーフノード、ノード間を接続する線をエッジ、ルートノードからリーフノードへと辿る経路をパス、各ノードに該当する具体的情報をラベルと呼称する。ツリーデータ保持部12に保持されるツリーデータは、図示しない入力デバイスを介してユーザーから入力されてもよいし、他のデバイスからのデータ転送により取得することとしてもよい。
【0024】
図2には、ツリーデータ保持部12に保持されるツリーデータの一例を示した。図2に示されたツリーデータは、ツリーデータ保持部12に保持される複数のツリーデータの一部である。本実施形態では、ツリーデータ保持部12に保持される複数のツリーデータのうち予め定められた条件を満たす木構造のパターンを抽出する処理を行う。上記条件は、例えば複数のツリーデータの中から予め定められた数(又は割合)のツリーデータに共通した、先祖子孫関係が一致する木構造のパターンであること(すなわちEmbedded Subtree Miningを用いる)としてよい。木構造のパターンを抽出する対象とするツリーデータは、ツリーデータ保持部12に保持されるツリーデータのすべてとしてもよいし、その一部を選択することとしてもよい。
【0025】
パターン候補探索部14は、ツリーデータ保持部12に保持される複数のツリーデータの中から指定されたパターンに合致する候補を探索するものである。具体的には、パターン候補探索部14は、処理時点で得られている木構造のパターンに要素を加えて伸張したパターンに該当する候補を各ツリーデータから探索し、探索された候補が予め定められた条件(例えば予め定められた数以上あること)を満たせば、当該候補を上記の木構造のパターンに加えていく探索処理を行うものである。なお、パターン候補探索部14は、伸張パターンの探索を、伸張箇所の候補となるノードを各ツリーデータから探索することにより行うこととしてよい。また、パターン候補探索部14は、各ツリーデータに頻出する木構造のパターンについて指定された初期パターンが存在する場合には当該初期パターンに基づいて探索処理を開始することとしてよく、指定された初期パターンが存在しない場合には1ノードを初期パターンとして探索処理を開始することとしてよい。
【0026】
パターン情報保持部16は、パターン候補探索部14により探索された木構造パターンを保持するものである。パターン情報保持部16は、パターン候補探索部14により順次探索された木構造パターンをすべて保持することとしてもよいし、その一部を選択的に保持することとしてもよい。
【0027】
パターン出現情報保持部18は、パターン候補探索部14により探索された木構造パターンがツリーデータ保持部12に保持される各ツリーデータのどこに出現しているかを示すパターン出現情報を保持するものである。
【0028】
パターン伸張箇所選択部20は、パターン情報保持部16に保持される木構造パターンにノードを追加して伸張する箇所を選択するものである。本実施形態では木構造パターンを深さ優先により探索する(深さ優先探索)こととし、パターン伸張箇所選択部20は、伸張対象とする木構造パターンの右端のパス(以下、RMP(Right Most Path))を選択し、当該選択したRMPのノード又はエッジを新たなノードを追加する伸張箇所として選択することとしてよい。なお、深さ優先探索とは、探索を開始するノードから下方向にパスを辿っていき、複数のパスに分岐するノードでは左側のノードを選択してリーフノードに至るまで探索し、リーフノードに至ると、他のパスとの分岐点まで戻り、分岐点からは当該他のパスを辿り、ここでも分岐点では左側のノードを選択してリーフノードに至るまで探索する、という処理を繰り返す探索である。
【0029】
図3には、探索される木構造パターンの一例を、図4にはRMP上に設定された伸張箇所の一例を示した。図3は、ツリーデータに共通して含まれる木構造パターンの一例であり、右端のパスがRMPとなる。
【0030】
図4に示されるように、RMPへのノードの追加は、図4(A)のようにRMPの各ノードの新たな子ノードとして追加することとしてもよいし、図4(B)のようにノードとノード間のエッジ上にノードを入れ込むものも含むこととしてもよい。
【0031】
伸張パターン存在範囲管理部22は、パターン伸張箇所選択部20により選択された伸張箇所にノードを追加した部分木構造が存在するツリーデータ上の存在範囲を管理するものである。伸張パターン存在範囲管理部22は、伸張ノードを追加する前の木構造パターンのツリーデータ上における出現箇所に基づいて、上記存在範囲を特定し管理することとしてよい。伸張パターン存在範囲管理部22において管理される情報は、伸張箇所が選択された際に伸張パターンの存在範囲を絞り込む際に用いられるとともに、伸張パターンの候補を探索する際にも用いられることとしてよい。
【0032】
冗長性判定部24は、検査対象ノード選択部26、第1冗長性判定部28、第2冗長性判定部30、第3冗長性判定部32、集計基準位置設定部34を含み、パターン伸張箇所選択部20により選択された伸張箇所にノードを追加したパターンが冗長な探索となるか否かを判定するものである。冗長な探索となると判定された場合にはそのパターンについての探索処理は省略される。以下、冗長性判定部24による判定処理の詳細について説明する。
【0033】
検査対象ノード選択部26は、伸張箇所が選択されたパターンに含まれるノードの1つを検査対象ノードとして順次選択するものである。検査対象ノード選択部26による検査対象ノードの選択順序は特に限定されるものではなく、例えば左側のパスの上位ノードから順に選択することとしてもよいし、伸張箇所の兄弟ノード、親ノード、子ノード等の周囲にあるノードから順に選択することとしてもよい。後者の方法により、XMLデータのように構造が定義されているデータにおいて伸張箇所と同じラベルが出現し易い伸張箇所の周囲のノードから検査を行うことで、他の部分から検査を行う場合に比べて枝刈処理の効率が向上する。
【0034】
第1冗長性判定部28は、検査対象ノード選択部26により選択された検査対象ノードに新たなリーフノードを追加したパターンが冗長な探索となるか否かを判定するものである。具体的には、第1冗長性判定部28は、パターン伸張箇所と、検査対象ノードとに基づいて定められた、パターンの探索がすでに行われているか、パターンを包含する他のパターンの探索範囲となる範囲に、検査対象ノードについてラベルが共通する新たなリーフノードが存在する場合には、冗長性ありと判定する。
【0035】
図5には、第1冗長性判定部28における、検査対象ノードに関する検査範囲を示した。図5においては、パターンにおける検査対象ノードとその子ノードをツリーデータ上で対応させた例を示している。図5に示されるように、検査対象ノードに関する検査範囲は、まず、検査対象ノードに接続する各子ノードの左側の領域が選ばれ、そして検査対象ノードがRMPにあるか否か、そして伸張箇所と検査対象ノードとの位置関係に応じて右端の子ノードの右側の領域も検査範囲に選ばれる。そして、各ツリーデータについて定めた検査範囲から同じラベルのノードが検出された場合には冗長性ありと判定される。また、第1冗長性判定部28は、検査対象ノードがルートノードである場合に、当該ルートノードに新たなルートノードを追加したパターンが冗長な探索となるか否かについても判定することとしてよい。
【0036】
第2冗長性判定部30は、検査対象ノード選択部26により選択された検査対象ノードとその1つの子ノードとの間に新たなノード(1エッジ上ノード)を追加したパターンが冗長な探索となるか否かを判定するものである。具体的には、第2冗長性判定部30は、パターン伸張箇所と、検査対象ノードとに基づいて定められた、パターンの探索がすでに行われているか、パターンを包含する他のパターンの探索範囲となる範囲に、検査対象ノードについてラベルが共通する新たな1エッジ上ノードが存在する場合には、冗長性ありと判定する。なお、検査対象ノードに子ノードがない場合には1エッジ上ノードは存在しないため、第2冗長性判定部30による冗長性判定を省略してよい。
【0037】
図6には、第2冗長性判定部30における、検査対象ノードに関する検査範囲を示した。図6においては、パターンにおける検査対象ノードとその子ノードをツリーデータ上で対応させた例を示している。図6に示されるように、検査対象ノードに関する検査範囲は、検査対象ノードとその子ノードとの間の領域となる。そして、各ツリーデータについて定めた検査範囲から同じラベルのノードが検出された場合には冗長性ありと判定される。ただし、図7に例示されるように、検査対象ノードに複数の子ノードがあり、検査対象ノードとその一部の子ノードの分岐点ノードとなるノードは1エッジ上ノードには該当しないため、こうしたノードはラベルの検出対象から除外する。
【0038】
第3冗長性判定部32は、検査対象ノード選択部26により選択された検査対象ノードとその複数の子ノードとの間に各ノードに接続する新たなノード(分岐点ノード)を追加したパターンが冗長な探索となるか否かを判定するものである。具体的には、第3冗長性判定部32は、パターン伸張箇所と、検査対象ノードに基づいて定められた、パターンの探索がすでに行われているか、パターンを包含する他のパターンの探索範囲となる範囲に、検査対象ノードについてラベルが共通する新たな分岐点ノードが存在する場合には、冗長性ありと判定する。分岐点ノードは、図7におけるノードLaに相当し、当該ノードLaが検査範囲となる。なお、検査対象ノードに複数の子ノードがない場合には分岐点ノードは存在しないため、第3冗長性判定部32による冗長性判定を省略してよい。
【0039】
なお、第3冗長性判定部32は、検査対象ノードの子ノードに関して取り得る組み合わせの各々について検査範囲を定め、ラベルが共通する分岐点ノードの存在を検査することとする。
【0040】
集計基準位置設定部34は、検査対象ノードと伸張箇所とに基づいて、伸張箇所を伸張させたパターンが冗長な探索となるか否かを判定する際にラベルが共通する新リーフノード、1エッジ上ノード、又は分岐点ノードの存在を集計する基準となるツリーデータ上の位置(集計基準位置)を設定するものである。集計基準位置設定部34は、ツリーデータ上において、パターンの伸張箇所に該当するノードが複数存在する場合に、検査対象ノード、伸張箇所に基づいて、集計基準位置を設定する。例えば集計基準位置は、検査対象ノードが存在するパス上から、検査対象ノードと伸張箇所と検査対象パターンの子ノードとの関係に応じて選択した位置としてよい。この集計基準位置の設定の具体例については以下に述べる。
【0041】
図8には、伸張箇所の上位に検査対象ノードがある場合に設定される集計基準位置の一例を示した。図8(A)に示されるように、ツリーデータ上において伸張箇所に該当するノードが複数あり、さらに検査対象ノードの出現箇所も複数ある場合に、集計基準位置となり得るノードのうち最上位にあるものを集計基準位置として設定することとしてよい。
【0042】
また、図8(B)に示されるように、ツリーデータ上において伸張箇所に該当するノードが複数あり、伸張箇所とは異なるパス上に検査対象ノードの出現箇所が複数ある場合には、伸張箇所、検査対象ノードがそれぞれ存在するパスが上位側で交わる位置を集計基準位置として設定することとしてよい。
【0043】
図9には、伸張箇所、検査対象ノードが一致する場合に設定される集計基準位置の一例を示した。図9に例示されるように、伸張箇所と検査対象ノードが一致する場合であって、ツリーデータ上において伸張箇所に該当するノードが複数ある場合に、集計基準位置は伸張箇所の最上位の位置として設定することとしてよい。
【0044】
図10には、伸張箇所の下位に検査対象ノードが位置する場合に設定される集計基準位置の一例を示した。図10に示されるように、ツリーデータ上において伸張箇所の子ノードのうちより下位に位置するものの位置に応じて集計基準位置を設定することとしてよい。
【0045】
冗長性の判定は、各ツリーデータについて設定した集計基準位置について他のツリーデータとの共通ラベルがあったか否かのフラグを記録し、すべての集計基準位置について他のツリーデータとの共通ラベルがあったとのフラグが記録された場合に冗長性があると判定し、そうでない場合には冗長性がないと判定することで行うこととしてよい。そして、冗長性判定部24は、第1乃至第3冗長性判定部32のいずれかにより冗長性があると判定された場合に冗長性ありと判定することとする。
【0046】
パターン候補探索部14は、処理対象とするパターンの伸張箇所について冗長性判定部24により冗長性があると判定された場合にはその伸張箇所を伸張したパターンについての探索処理は行わないこととし、冗長性がないと判定されたパターンについてのみ探索処理を行うこととする。パターン候補探索部14により伸張されたパターンに基づいて探索された新たな木構造パターンはパターン情報保持部16に格納される。そして情報抽出装置10は、パターンの探索、探索されたパターンの伸張箇所の選択、選択された伸張箇所の冗長性判定、冗長性がない伸張パターンに基づくパターンの探索という処理を再帰的に繰り返すことで、より要素数の多い木構造パターンを抽出する。
【0047】
図11には、図2に示したツリーデータから探索されるパターンの例を示した。拡張パターンの探索される順序により、図11に示されるパターンP1とパターンP1を拡張したパターンが既に探索された後に、他のパターンP2〜P4を伸張しようとする際には、以下の冗長性判定が行われる。
【0048】
まず、パターンP2のラベルAのノードを伸張箇所、ラベルBのノードを検査対象ノードとすると、第1冗長性判定部28により検査対象ノードの子ノードであるラベルDのノードが検査範囲から共通して見つかるため、このパターンP2の上記伸張箇所にノードを追加した伸張パターンは冗長な探索となると判定される。
【0049】
次に、パターンP3のラベルCのノードを伸張箇所、ラベルAのノードを検査対象ノードとすると、第2冗長性判定部30により検査対象ノードとその子ノードKとの間に設けられる1エッジ上ノードにラベルJのノードが共通して見つかるため、このパターンP3の上記伸張箇所にノードを追加した伸張パターンは冗長な探索となると判定される。
【0050】
さらに、パターンP4のラベルCのノードを伸張箇所、ラベルAのノードを検査対象ノードとすると、第3冗長性判定部32により検査対象ノードとその子ノードD,Eとの間に設けられる分岐点ノードにラベルBのノードが共通して見つかるため、このパターンP4の上記伸張箇所にノードを追加した伸張パターンは冗長な探索となると判定される。
【0051】
次に、図12,図13,図14に示したフローチャートを参照しながら、情報抽出装置10により行われる処理の流れの例を説明する。
【0052】
図12は、情報抽出装置10により行われる情報抽出処理の例を示すフローチャートを示している。図12に示されるように、情報抽出装置10はツリーデータ保持部12に保持されるツリーデータについて頻出するノード(頻出ノード)を探索し(S101)、未処理の頻出ノードが残っている場合には(S102:Y)、未処理の頻出ノードを選択して(S103)、パターンデータを作成して(S104)、パターンの伸張探索処理を行う(S105)。パターンの伸張探索処理の詳細については後述する。パターンの伸張探索処理が終了するとS102に戻り、未処理の頻出ノードが残っていない場合には(S102:N)、処理を終了する。
【0053】
図13は、パターンの伸張探索処理の例を示すフローチャートを示している。図13に示されるように、情報抽出装置10は、パターンからRMPを選定し(S201)、選定したRMP上に未処理の伸張箇所があるか否かを判断する(S202)。ここで、情報抽出装置10は、未処理の伸張箇所があると判断する場合には(S202:Y)、未処理の伸張箇所の1つを選択し(S203)、伸張箇所にノードを追加した伸張パターンの冗長性判定処理を行う(S204)。冗長性判定処理の詳細については後述する。
【0054】
情報抽出装置10は、冗長性判定処理により冗長性があると判定された場合には(S205:Y)、その判定結果を記録し、処理S202に戻ってそれ以降の処理を繰り返す。一方で、情報抽出装置10は、冗長性判定処理により冗長性がないと判定された場合には(S205:N)、伸張箇所にノードを追加した伸張パターンの候補をツリーデータから探索する(S206)。
【0055】
情報抽出装置10は、探索されたパターンの候補について未処理のものがある場合には(S207:Y)、未処理のパターン候補を1つ選択し(S208)、パターンの伸張探索処理を再帰的に実行する(S209)。そして、情報抽出装置10は、未処理のパターン候補がなくなると(S207:N)、S202に戻りそれ以降の処理を繰り返す。なお、S202において未処理の伸張箇所がないと判断された場合には(S202:N)、親プロセスにリターンする。
【0056】
図14には、冗長性判定処理の例を示すフローチャートを示した。図14に示されるように、情報抽出装置10は、伸張箇所が選定されたパターンの中から未処理の検査対象ノードがある場合には(S301:Y)、未処理の検査対象ノードを1つ選択する(S302)。
【0057】
情報抽出装置10は、検査対象ノードに対する新たなリーフノードを追加したパターンが冗長な探索となるか否かを判定(第1冗長性判定)し(S303)、冗長な探索となると判定した場合には(S303:Y)、冗長性ありと記録して(S306)、リターンする。また、情報抽出装置10は、第1冗長性判定により冗長性が判定されない場合には(S303:N)、検査対象ノードとその子ノードとの間に設けられる1エッジ上ノードを追加したパターンが冗長な探索となるか否かを判定(第2冗長性判定)し(S304)、冗長な探索となると判定した場合には(S304:Y)、冗長性ありと記録して(S306)、リターンする。さらに、情報抽出装置10は、第2冗長性判定により冗長性が判定されない場合には(S304:N)、検査対象ノードとその複数の子ノードとの間に設けられる分岐点ノードを追加したパターンが冗長な探索となるか否かを判定(第3冗長性判定)し(S305)、冗長な探索となると判定した場合には(S304:Y)、冗長性ありと記録して(S306)、リターンする。情報抽出装置10は、未処理の検査対象ノードがなくなった場合には(S301:N)、冗長性なしと記録して(S307)、リターンする。
【0058】
なお、上記の冗長性判定処理では、第1冗長性判定から第3冗長性判定の順に実行することとしたが、冗長性判定の順序はこれに限定されない。また、上記の冗長性判定処理において、検査対象ノードの子ノードの有無及び子ノードの数に応じて第1冗長性判定から第3冗長性判定の中から不要な冗長性判定処理を省略することとしてよい。
【0059】
上記の実施形態に係る情報抽出装置10では、Embedded Subtree Miningにおいて、探索されたパターンを伸張した伸張パターンについての探索を開始する前に、パターンの内部にノードを埋め込んだ場合に他のパターンとの関係で冗長な探索となるか否かを判別し、冗長と判別された伸張パターンについての探索を行わないようにしたことで、こうした構成を有さない場合に比べて、ツリーデータに頻出する木構造パターンを抽出するのに要する処理ステップの数が低減される。
【0060】
本発明は上記の実施形態に限定されるものではなく、例えば上記の実施形態では伸張箇所をRMPから選択しているが、パターン探索のアルゴリズムを適切に設定すれば左端のパス(LMP)や他の条件に基づいて選択されたパスから選択することとしても構わない。
【符号の説明】
【0061】
10 情報抽出装置、12 ツリーデータ保持部、14 パターン候補探索部、16 パターン情報保持部、18 パターン出現情報保持部、20 パターン伸張箇所選択部、22 伸張パターン存在範囲管理部、24 冗長性判定部、26 検査対象ノード選択部、28 第1冗長性判定部、30 第2冗長性判定部、32 第3冗長性判定部、34 集計基準位置設定部。
【技術分野】
【0001】
本発明は、プログラム及び情報抽出装置に関する。
【背景技術】
【0002】
多量のデータを分析して有意な情報を引き出すデータマイニングという技術がある。こうしたデータマイニングでは扱うデータ量が増加すると計算コストが指数関数的に増加するため、冗長な処理を省略することが行われている。例えば下記の特許文献1には、冗長となるパターンを省略して処理する枝刈処理が記載されている。
【0003】
また、XML等の木構造情報(ツリーデータ)群に頻出する木構造のパターンを抽出するサブツリーマイニングに関し、要素の親子関係が厳密に一致する木構造のパターンを得るInduced Subtree Miningでは、木構造のパターンを伸張する際に既に探索した範囲から木構造のパターンの末端に共通する要素を追加できる場合(すなわち、新たなリーフノードを追加できる場合)には、上記木構造のパターンの伸張探索処理を省略しているものがある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平10−301942号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
要素間の親子関係が厳密に保たれていなくとも先祖子孫関係が保たれていれば同じ木構造のパターンとして抽出するEmbedded Subtree Miningでは、木構造のパターンの末端だけではなく内部にも要素が追加された場合を考慮して冗長な探索を招くか否かを判定する必要がある。
【0006】
本発明の目的は、複数の木構造情報に頻出する木構造パターンを伸張しながら探索する過程でその木構造パターンの内部に要素を追加した場合に冗長な探索を招く木構造パターンを判定するプログラム及び情報抽出装置を提供することにある。
【課題を解決するための手段】
【0007】
上記目的を達成するために、請求項1に記載の発明は、コンピュータを、複数の木構造情報の中から予め定められた数の木構造情報に共通して含まれる木構造のパターンを保持する保持手段、前記保持手段に保持された木構造のパターンから予め定められた条件に基づいてパスを選択するとともに、当該選択されたパスに要素を追加して前記木構造のパターンを伸張する伸張箇所を選択する選択手段、及び、前記木構造のパターンに含まれるいずれかの要素を検査対象要素とし、前記木構造のパターンにおける前記検査対象要素と前記伸張箇所とに基づいて前記複数の木構造情報のそれぞれについて定められる検査範囲から、前記木構造のパターンにおける前記検査対象要素とその子要素との間に要素を追加した共通のパターンが検出される場合に、前記木構造のパターンの前記伸張箇所に新たな要素を追加したパターンの探索を行わないと判定する判定手段として機能させるためのプログラムである。
【0008】
また、請求項2に記載の発明は、請求項1に記載のプログラムにおいて、前記判定手段は、前記定められる検査範囲から、前記木構造のパターンにおける前記検査対象要素とその1つの子要素との間に要素を追加した共通のパターンが検出される場合に、前記木構造のパターンの前記伸張箇所に新たな要素を追加したパターンの探索を行わないと判定することを特徴とする。
【0009】
また、請求項3に記載の発明は、請求項1又は2に記載のプログラムにおいて、前記判定手段は、前記定められる検査範囲から、前記木構造のパターンにおける前記検査対象要素とその複数の子要素とのそれぞれに接続する要素を追加した共通のパターンが検出される場合に、前記木構造のパターンの前記伸張箇所に新たな要素を追加したパターンの探索を行わないと判定することを特徴とする。
【0010】
また、請求項4に記載の発明は、請求項1から3のいずれかに記載のプログラムにおいて、前記判定手段はさらに、前記定められる検査範囲から、前記木構造のパターンにおける前記検査対象要素に新たな子要素を追加した共通のパターンが検出される場合に、前記木構造のパターンの前記伸張箇所に新たな要素を追加したパターンの探索を行わないと判定することを特徴とする。
【0011】
また、請求項5に記載の発明は、請求項1から4のいずれかに記載のプログラムにおいて、前記コンピュータをさらに、前記木構造のパターンにおける前記検査対象要素と前記伸張箇所とに基づいて、前記複数の木構造情報のそれぞれについて前記検査対象要素とその子要素との間に追加された要素の候補を検出する基準位置を設定する設定手段として機能させるためのプログラムである。
【0012】
また、請求項6に記載の発明は、請求項1から5のいずれかに記載のプログラムにおいて、前記コンピュータをさらに、前記判定手段により前記木構造のパターンの前記伸張箇所に新たな要素を追加した伸張パターンの探索を行うと判定した場合に、当該伸張パターンの候補を前記複数の木構造情報の中から探索する探索手段、前記探索手段により探索された前記伸張パターンの候補に基づいて生成した木構造のパターンを前記保持手段に保持させる手段、前記保持手段に保持された木構造のパターンを前記選択手段、前記判定手段、前記探索手段により伸張する処理を再帰的に実行する手段として機能させるためのプログラムである。
【0013】
また、請求項7に記載の発明は、複数の木構造情報の中から予め定められた数の木構造情報に共通して含まれる木構造のパターンを保持する保持手段と、前記保持手段に保持された木構造のパターンから予め定められた条件に基づいてパスを選択するとともに、当該選択されたパスに要素を追加して前記木構造のパターンを伸張する伸張箇所を選択する選択手段と、前記木構造のパターンに含まれるいずれかの要素を検査対象要素とし、前記木構造のパターンにおける前記検査対象要素と前記伸張箇所とに基づいて前記複数の木構造情報のそれぞれについて定められる検査範囲から、前記木構造のパターンにおける前記検査対象要素とその子要素との間に要素を追加した共通のパターンが検出される場合に、前記木構造のパターンの前記伸張箇所に新たな要素を追加したパターンの探索を行わないと判定する判定手段と、を含むことを特徴とする情報抽出装置である。
【発明の効果】
【0014】
請求項1及び7に記載の発明によれば、複数の木構造情報に頻出する木構造パターンを伸張しながら探索する過程でその木構造パターンの内部に要素を追加した場合に冗長な探索を招く木構造パターンを判定できる。
【0015】
請求項2に記載の発明によれば、木構造パターンにおける検査対象要素とその1つの子要素との間に要素を追加したパターンと探索されるパターンが重複する場合に伸張探索を省略できる。
【0016】
請求項3に記載の発明によれば、木構造パターンにおける検査対象要素とその複数の子要素との間に設けられる分岐要素を追加したパターンと探索されるパターンが重複する場合に伸張探索を省略できる。
【0017】
請求項4に記載の発明によれば、木構造パターンにおける検査対象要素に新たな子要素を追加したパターンと探索されるパターンが重複する場合に伸張探索を省略できる。
【0018】
請求項5に記載の発明によれば、本構成を有しない場合と比較して、冗長な探索となるか否かの判定を効率化できる。
【0019】
請求項6に記載の発明によれば、複数の木構造情報に頻出する木構造パターンがより多くの要素を有するように伸張する際に冗長な伸張探索処理のステップ数を低減できる。
【図面の簡単な説明】
【0020】
【図1】本実施形態に係る情報抽出装置の機能ブロック図である。
【図2】ツリーデータの一例を示した図である。
【図3】探索される木構造パターンの一例を示した図である。
【図4】RMP上に設定された伸張箇所の一例を示した図である。
【図5】第1冗長性判定部における、検査対象ノードに関する検査範囲を示した図である。
【図6】第2冗長性判定部における、検査対象ノードに関する検査範囲を示した図である。
【図7】1エッジ上ノードと分岐点ノードとが共に含まれるツリーデータの一例を示す図である。
【図8】伸張箇所の上位に検査対象ノードがある場合に設定される集計基準位置の一例を示した図である。
【図9】伸張箇所、検査対象ノードが一致する場合に設定される集計基準位置の一例を示した図である。
【図10】伸張箇所の下位に検査対象ノードが位置する場合に設定される集計基準位置の一例を示した図である。
【図11】ツリーデータから探索されるパターンの例を示した図である。
【図12】情報抽出処理のフローチャートである。
【図13】伸張探索処理のフローチャートである。
【図14】冗長性判定処理のフローチャートである。
【発明を実施するための形態】
【0021】
以下、本発明を実施するための実施の形態(以下、実施形態という)を、図面に従って説明する。
【0022】
図1には、本実施形態に係る情報抽出装置10の機能ブロック図を示した。図1に示されるように、情報抽出装置10は、ツリーデータ保持部12、パターン候補探索部14、パターン情報保持部16、パターン出現情報保持部18、パターン伸張箇所選択部20、伸張パターン存在範囲管理部22、及び冗長性判定部24を含む。上記の各部の機能は、CPU等の制御手段、メモリ等の記憶手段、外部デバイスとデータを送受信する入出力手段等を備えたコンピュータが、コンピュータ読み取り可能な情報記憶媒体に格納されたプログラムを読み込み実行することで実現されるものとしてよい。なお、プログラムは情報記憶媒体によってコンピュータたる情報抽出装置10に供給されることとしてもよいし、インターネット等のデータ通信手段を介して供給されることとしてもよい。以下、情報抽出装置10が有する各部の機能について詳細に説明する。
【0023】
ツリーデータ保持部12は、半導体メモリや磁気ディスク装置等の記憶装置を含み構成され、複数の木構造情報(以下、ツリーデータ)を保持するものである。ツリーデータは、複数の要素(以下、ノード)をその親子関係に基づいて接続したデータである。なお、ツリーデータにおいて頂点に位置するノードをルートノード、末端に位置するノードをリーフノード、ノード間を接続する線をエッジ、ルートノードからリーフノードへと辿る経路をパス、各ノードに該当する具体的情報をラベルと呼称する。ツリーデータ保持部12に保持されるツリーデータは、図示しない入力デバイスを介してユーザーから入力されてもよいし、他のデバイスからのデータ転送により取得することとしてもよい。
【0024】
図2には、ツリーデータ保持部12に保持されるツリーデータの一例を示した。図2に示されたツリーデータは、ツリーデータ保持部12に保持される複数のツリーデータの一部である。本実施形態では、ツリーデータ保持部12に保持される複数のツリーデータのうち予め定められた条件を満たす木構造のパターンを抽出する処理を行う。上記条件は、例えば複数のツリーデータの中から予め定められた数(又は割合)のツリーデータに共通した、先祖子孫関係が一致する木構造のパターンであること(すなわちEmbedded Subtree Miningを用いる)としてよい。木構造のパターンを抽出する対象とするツリーデータは、ツリーデータ保持部12に保持されるツリーデータのすべてとしてもよいし、その一部を選択することとしてもよい。
【0025】
パターン候補探索部14は、ツリーデータ保持部12に保持される複数のツリーデータの中から指定されたパターンに合致する候補を探索するものである。具体的には、パターン候補探索部14は、処理時点で得られている木構造のパターンに要素を加えて伸張したパターンに該当する候補を各ツリーデータから探索し、探索された候補が予め定められた条件(例えば予め定められた数以上あること)を満たせば、当該候補を上記の木構造のパターンに加えていく探索処理を行うものである。なお、パターン候補探索部14は、伸張パターンの探索を、伸張箇所の候補となるノードを各ツリーデータから探索することにより行うこととしてよい。また、パターン候補探索部14は、各ツリーデータに頻出する木構造のパターンについて指定された初期パターンが存在する場合には当該初期パターンに基づいて探索処理を開始することとしてよく、指定された初期パターンが存在しない場合には1ノードを初期パターンとして探索処理を開始することとしてよい。
【0026】
パターン情報保持部16は、パターン候補探索部14により探索された木構造パターンを保持するものである。パターン情報保持部16は、パターン候補探索部14により順次探索された木構造パターンをすべて保持することとしてもよいし、その一部を選択的に保持することとしてもよい。
【0027】
パターン出現情報保持部18は、パターン候補探索部14により探索された木構造パターンがツリーデータ保持部12に保持される各ツリーデータのどこに出現しているかを示すパターン出現情報を保持するものである。
【0028】
パターン伸張箇所選択部20は、パターン情報保持部16に保持される木構造パターンにノードを追加して伸張する箇所を選択するものである。本実施形態では木構造パターンを深さ優先により探索する(深さ優先探索)こととし、パターン伸張箇所選択部20は、伸張対象とする木構造パターンの右端のパス(以下、RMP(Right Most Path))を選択し、当該選択したRMPのノード又はエッジを新たなノードを追加する伸張箇所として選択することとしてよい。なお、深さ優先探索とは、探索を開始するノードから下方向にパスを辿っていき、複数のパスに分岐するノードでは左側のノードを選択してリーフノードに至るまで探索し、リーフノードに至ると、他のパスとの分岐点まで戻り、分岐点からは当該他のパスを辿り、ここでも分岐点では左側のノードを選択してリーフノードに至るまで探索する、という処理を繰り返す探索である。
【0029】
図3には、探索される木構造パターンの一例を、図4にはRMP上に設定された伸張箇所の一例を示した。図3は、ツリーデータに共通して含まれる木構造パターンの一例であり、右端のパスがRMPとなる。
【0030】
図4に示されるように、RMPへのノードの追加は、図4(A)のようにRMPの各ノードの新たな子ノードとして追加することとしてもよいし、図4(B)のようにノードとノード間のエッジ上にノードを入れ込むものも含むこととしてもよい。
【0031】
伸張パターン存在範囲管理部22は、パターン伸張箇所選択部20により選択された伸張箇所にノードを追加した部分木構造が存在するツリーデータ上の存在範囲を管理するものである。伸張パターン存在範囲管理部22は、伸張ノードを追加する前の木構造パターンのツリーデータ上における出現箇所に基づいて、上記存在範囲を特定し管理することとしてよい。伸張パターン存在範囲管理部22において管理される情報は、伸張箇所が選択された際に伸張パターンの存在範囲を絞り込む際に用いられるとともに、伸張パターンの候補を探索する際にも用いられることとしてよい。
【0032】
冗長性判定部24は、検査対象ノード選択部26、第1冗長性判定部28、第2冗長性判定部30、第3冗長性判定部32、集計基準位置設定部34を含み、パターン伸張箇所選択部20により選択された伸張箇所にノードを追加したパターンが冗長な探索となるか否かを判定するものである。冗長な探索となると判定された場合にはそのパターンについての探索処理は省略される。以下、冗長性判定部24による判定処理の詳細について説明する。
【0033】
検査対象ノード選択部26は、伸張箇所が選択されたパターンに含まれるノードの1つを検査対象ノードとして順次選択するものである。検査対象ノード選択部26による検査対象ノードの選択順序は特に限定されるものではなく、例えば左側のパスの上位ノードから順に選択することとしてもよいし、伸張箇所の兄弟ノード、親ノード、子ノード等の周囲にあるノードから順に選択することとしてもよい。後者の方法により、XMLデータのように構造が定義されているデータにおいて伸張箇所と同じラベルが出現し易い伸張箇所の周囲のノードから検査を行うことで、他の部分から検査を行う場合に比べて枝刈処理の効率が向上する。
【0034】
第1冗長性判定部28は、検査対象ノード選択部26により選択された検査対象ノードに新たなリーフノードを追加したパターンが冗長な探索となるか否かを判定するものである。具体的には、第1冗長性判定部28は、パターン伸張箇所と、検査対象ノードとに基づいて定められた、パターンの探索がすでに行われているか、パターンを包含する他のパターンの探索範囲となる範囲に、検査対象ノードについてラベルが共通する新たなリーフノードが存在する場合には、冗長性ありと判定する。
【0035】
図5には、第1冗長性判定部28における、検査対象ノードに関する検査範囲を示した。図5においては、パターンにおける検査対象ノードとその子ノードをツリーデータ上で対応させた例を示している。図5に示されるように、検査対象ノードに関する検査範囲は、まず、検査対象ノードに接続する各子ノードの左側の領域が選ばれ、そして検査対象ノードがRMPにあるか否か、そして伸張箇所と検査対象ノードとの位置関係に応じて右端の子ノードの右側の領域も検査範囲に選ばれる。そして、各ツリーデータについて定めた検査範囲から同じラベルのノードが検出された場合には冗長性ありと判定される。また、第1冗長性判定部28は、検査対象ノードがルートノードである場合に、当該ルートノードに新たなルートノードを追加したパターンが冗長な探索となるか否かについても判定することとしてよい。
【0036】
第2冗長性判定部30は、検査対象ノード選択部26により選択された検査対象ノードとその1つの子ノードとの間に新たなノード(1エッジ上ノード)を追加したパターンが冗長な探索となるか否かを判定するものである。具体的には、第2冗長性判定部30は、パターン伸張箇所と、検査対象ノードとに基づいて定められた、パターンの探索がすでに行われているか、パターンを包含する他のパターンの探索範囲となる範囲に、検査対象ノードについてラベルが共通する新たな1エッジ上ノードが存在する場合には、冗長性ありと判定する。なお、検査対象ノードに子ノードがない場合には1エッジ上ノードは存在しないため、第2冗長性判定部30による冗長性判定を省略してよい。
【0037】
図6には、第2冗長性判定部30における、検査対象ノードに関する検査範囲を示した。図6においては、パターンにおける検査対象ノードとその子ノードをツリーデータ上で対応させた例を示している。図6に示されるように、検査対象ノードに関する検査範囲は、検査対象ノードとその子ノードとの間の領域となる。そして、各ツリーデータについて定めた検査範囲から同じラベルのノードが検出された場合には冗長性ありと判定される。ただし、図7に例示されるように、検査対象ノードに複数の子ノードがあり、検査対象ノードとその一部の子ノードの分岐点ノードとなるノードは1エッジ上ノードには該当しないため、こうしたノードはラベルの検出対象から除外する。
【0038】
第3冗長性判定部32は、検査対象ノード選択部26により選択された検査対象ノードとその複数の子ノードとの間に各ノードに接続する新たなノード(分岐点ノード)を追加したパターンが冗長な探索となるか否かを判定するものである。具体的には、第3冗長性判定部32は、パターン伸張箇所と、検査対象ノードに基づいて定められた、パターンの探索がすでに行われているか、パターンを包含する他のパターンの探索範囲となる範囲に、検査対象ノードについてラベルが共通する新たな分岐点ノードが存在する場合には、冗長性ありと判定する。分岐点ノードは、図7におけるノードLaに相当し、当該ノードLaが検査範囲となる。なお、検査対象ノードに複数の子ノードがない場合には分岐点ノードは存在しないため、第3冗長性判定部32による冗長性判定を省略してよい。
【0039】
なお、第3冗長性判定部32は、検査対象ノードの子ノードに関して取り得る組み合わせの各々について検査範囲を定め、ラベルが共通する分岐点ノードの存在を検査することとする。
【0040】
集計基準位置設定部34は、検査対象ノードと伸張箇所とに基づいて、伸張箇所を伸張させたパターンが冗長な探索となるか否かを判定する際にラベルが共通する新リーフノード、1エッジ上ノード、又は分岐点ノードの存在を集計する基準となるツリーデータ上の位置(集計基準位置)を設定するものである。集計基準位置設定部34は、ツリーデータ上において、パターンの伸張箇所に該当するノードが複数存在する場合に、検査対象ノード、伸張箇所に基づいて、集計基準位置を設定する。例えば集計基準位置は、検査対象ノードが存在するパス上から、検査対象ノードと伸張箇所と検査対象パターンの子ノードとの関係に応じて選択した位置としてよい。この集計基準位置の設定の具体例については以下に述べる。
【0041】
図8には、伸張箇所の上位に検査対象ノードがある場合に設定される集計基準位置の一例を示した。図8(A)に示されるように、ツリーデータ上において伸張箇所に該当するノードが複数あり、さらに検査対象ノードの出現箇所も複数ある場合に、集計基準位置となり得るノードのうち最上位にあるものを集計基準位置として設定することとしてよい。
【0042】
また、図8(B)に示されるように、ツリーデータ上において伸張箇所に該当するノードが複数あり、伸張箇所とは異なるパス上に検査対象ノードの出現箇所が複数ある場合には、伸張箇所、検査対象ノードがそれぞれ存在するパスが上位側で交わる位置を集計基準位置として設定することとしてよい。
【0043】
図9には、伸張箇所、検査対象ノードが一致する場合に設定される集計基準位置の一例を示した。図9に例示されるように、伸張箇所と検査対象ノードが一致する場合であって、ツリーデータ上において伸張箇所に該当するノードが複数ある場合に、集計基準位置は伸張箇所の最上位の位置として設定することとしてよい。
【0044】
図10には、伸張箇所の下位に検査対象ノードが位置する場合に設定される集計基準位置の一例を示した。図10に示されるように、ツリーデータ上において伸張箇所の子ノードのうちより下位に位置するものの位置に応じて集計基準位置を設定することとしてよい。
【0045】
冗長性の判定は、各ツリーデータについて設定した集計基準位置について他のツリーデータとの共通ラベルがあったか否かのフラグを記録し、すべての集計基準位置について他のツリーデータとの共通ラベルがあったとのフラグが記録された場合に冗長性があると判定し、そうでない場合には冗長性がないと判定することで行うこととしてよい。そして、冗長性判定部24は、第1乃至第3冗長性判定部32のいずれかにより冗長性があると判定された場合に冗長性ありと判定することとする。
【0046】
パターン候補探索部14は、処理対象とするパターンの伸張箇所について冗長性判定部24により冗長性があると判定された場合にはその伸張箇所を伸張したパターンについての探索処理は行わないこととし、冗長性がないと判定されたパターンについてのみ探索処理を行うこととする。パターン候補探索部14により伸張されたパターンに基づいて探索された新たな木構造パターンはパターン情報保持部16に格納される。そして情報抽出装置10は、パターンの探索、探索されたパターンの伸張箇所の選択、選択された伸張箇所の冗長性判定、冗長性がない伸張パターンに基づくパターンの探索という処理を再帰的に繰り返すことで、より要素数の多い木構造パターンを抽出する。
【0047】
図11には、図2に示したツリーデータから探索されるパターンの例を示した。拡張パターンの探索される順序により、図11に示されるパターンP1とパターンP1を拡張したパターンが既に探索された後に、他のパターンP2〜P4を伸張しようとする際には、以下の冗長性判定が行われる。
【0048】
まず、パターンP2のラベルAのノードを伸張箇所、ラベルBのノードを検査対象ノードとすると、第1冗長性判定部28により検査対象ノードの子ノードであるラベルDのノードが検査範囲から共通して見つかるため、このパターンP2の上記伸張箇所にノードを追加した伸張パターンは冗長な探索となると判定される。
【0049】
次に、パターンP3のラベルCのノードを伸張箇所、ラベルAのノードを検査対象ノードとすると、第2冗長性判定部30により検査対象ノードとその子ノードKとの間に設けられる1エッジ上ノードにラベルJのノードが共通して見つかるため、このパターンP3の上記伸張箇所にノードを追加した伸張パターンは冗長な探索となると判定される。
【0050】
さらに、パターンP4のラベルCのノードを伸張箇所、ラベルAのノードを検査対象ノードとすると、第3冗長性判定部32により検査対象ノードとその子ノードD,Eとの間に設けられる分岐点ノードにラベルBのノードが共通して見つかるため、このパターンP4の上記伸張箇所にノードを追加した伸張パターンは冗長な探索となると判定される。
【0051】
次に、図12,図13,図14に示したフローチャートを参照しながら、情報抽出装置10により行われる処理の流れの例を説明する。
【0052】
図12は、情報抽出装置10により行われる情報抽出処理の例を示すフローチャートを示している。図12に示されるように、情報抽出装置10はツリーデータ保持部12に保持されるツリーデータについて頻出するノード(頻出ノード)を探索し(S101)、未処理の頻出ノードが残っている場合には(S102:Y)、未処理の頻出ノードを選択して(S103)、パターンデータを作成して(S104)、パターンの伸張探索処理を行う(S105)。パターンの伸張探索処理の詳細については後述する。パターンの伸張探索処理が終了するとS102に戻り、未処理の頻出ノードが残っていない場合には(S102:N)、処理を終了する。
【0053】
図13は、パターンの伸張探索処理の例を示すフローチャートを示している。図13に示されるように、情報抽出装置10は、パターンからRMPを選定し(S201)、選定したRMP上に未処理の伸張箇所があるか否かを判断する(S202)。ここで、情報抽出装置10は、未処理の伸張箇所があると判断する場合には(S202:Y)、未処理の伸張箇所の1つを選択し(S203)、伸張箇所にノードを追加した伸張パターンの冗長性判定処理を行う(S204)。冗長性判定処理の詳細については後述する。
【0054】
情報抽出装置10は、冗長性判定処理により冗長性があると判定された場合には(S205:Y)、その判定結果を記録し、処理S202に戻ってそれ以降の処理を繰り返す。一方で、情報抽出装置10は、冗長性判定処理により冗長性がないと判定された場合には(S205:N)、伸張箇所にノードを追加した伸張パターンの候補をツリーデータから探索する(S206)。
【0055】
情報抽出装置10は、探索されたパターンの候補について未処理のものがある場合には(S207:Y)、未処理のパターン候補を1つ選択し(S208)、パターンの伸張探索処理を再帰的に実行する(S209)。そして、情報抽出装置10は、未処理のパターン候補がなくなると(S207:N)、S202に戻りそれ以降の処理を繰り返す。なお、S202において未処理の伸張箇所がないと判断された場合には(S202:N)、親プロセスにリターンする。
【0056】
図14には、冗長性判定処理の例を示すフローチャートを示した。図14に示されるように、情報抽出装置10は、伸張箇所が選定されたパターンの中から未処理の検査対象ノードがある場合には(S301:Y)、未処理の検査対象ノードを1つ選択する(S302)。
【0057】
情報抽出装置10は、検査対象ノードに対する新たなリーフノードを追加したパターンが冗長な探索となるか否かを判定(第1冗長性判定)し(S303)、冗長な探索となると判定した場合には(S303:Y)、冗長性ありと記録して(S306)、リターンする。また、情報抽出装置10は、第1冗長性判定により冗長性が判定されない場合には(S303:N)、検査対象ノードとその子ノードとの間に設けられる1エッジ上ノードを追加したパターンが冗長な探索となるか否かを判定(第2冗長性判定)し(S304)、冗長な探索となると判定した場合には(S304:Y)、冗長性ありと記録して(S306)、リターンする。さらに、情報抽出装置10は、第2冗長性判定により冗長性が判定されない場合には(S304:N)、検査対象ノードとその複数の子ノードとの間に設けられる分岐点ノードを追加したパターンが冗長な探索となるか否かを判定(第3冗長性判定)し(S305)、冗長な探索となると判定した場合には(S304:Y)、冗長性ありと記録して(S306)、リターンする。情報抽出装置10は、未処理の検査対象ノードがなくなった場合には(S301:N)、冗長性なしと記録して(S307)、リターンする。
【0058】
なお、上記の冗長性判定処理では、第1冗長性判定から第3冗長性判定の順に実行することとしたが、冗長性判定の順序はこれに限定されない。また、上記の冗長性判定処理において、検査対象ノードの子ノードの有無及び子ノードの数に応じて第1冗長性判定から第3冗長性判定の中から不要な冗長性判定処理を省略することとしてよい。
【0059】
上記の実施形態に係る情報抽出装置10では、Embedded Subtree Miningにおいて、探索されたパターンを伸張した伸張パターンについての探索を開始する前に、パターンの内部にノードを埋め込んだ場合に他のパターンとの関係で冗長な探索となるか否かを判別し、冗長と判別された伸張パターンについての探索を行わないようにしたことで、こうした構成を有さない場合に比べて、ツリーデータに頻出する木構造パターンを抽出するのに要する処理ステップの数が低減される。
【0060】
本発明は上記の実施形態に限定されるものではなく、例えば上記の実施形態では伸張箇所をRMPから選択しているが、パターン探索のアルゴリズムを適切に設定すれば左端のパス(LMP)や他の条件に基づいて選択されたパスから選択することとしても構わない。
【符号の説明】
【0061】
10 情報抽出装置、12 ツリーデータ保持部、14 パターン候補探索部、16 パターン情報保持部、18 パターン出現情報保持部、20 パターン伸張箇所選択部、22 伸張パターン存在範囲管理部、24 冗長性判定部、26 検査対象ノード選択部、28 第1冗長性判定部、30 第2冗長性判定部、32 第3冗長性判定部、34 集計基準位置設定部。
【特許請求の範囲】
【請求項1】
コンピュータを、
複数の木構造情報の中から予め定められた数の木構造情報に共通して含まれる木構造のパターンを保持する保持手段、
前記保持手段に保持された木構造のパターンから予め定められた条件に基づいてパスを選択するとともに、当該選択されたパスに要素を追加して前記木構造のパターンを伸張する伸張箇所を選択する選択手段、及び、
前記木構造のパターンに含まれるいずれかの要素を検査対象要素とし、前記木構造のパターンにおける前記検査対象要素と前記伸張箇所とに基づいて前記複数の木構造情報のそれぞれについて定められる検査範囲から、前記木構造のパターンにおける前記検査対象要素とその子要素との間に要素を追加した共通のパターンが検出される場合に、前記木構造のパターンの前記伸張箇所に新たな要素を追加したパターンの探索を行わないと判定する判定手段
として機能させるためのプログラム。
【請求項2】
前記判定手段は、前記定められる検査範囲から、前記木構造のパターンにおける前記検査対象要素とその1つの子要素との間に要素を追加した共通のパターンが検出される場合に、前記木構造のパターンの前記伸張箇所に新たな要素を追加したパターンの探索を行わないと判定する
ことを特徴とする請求項1に記載のプログラム。
【請求項3】
前記判定手段は、前記定められる検査範囲から、前記木構造のパターンにおける前記検査対象要素とその複数の子要素とのそれぞれに接続する要素を追加した共通のパターンが検出される場合に、前記木構造のパターンの前記伸張箇所に新たな要素を追加したパターンの探索を行わないと判定する
ことを特徴とする請求項1又は2に記載のプログラム。
【請求項4】
前記判定手段はさらに、前記定められる検査範囲から、前記木構造のパターンにおける前記検査対象要素に新たな子要素を追加した共通のパターンが検出される場合に、前記木構造のパターンの前記伸張箇所に新たな要素を追加したパターンの探索を行わないと判定する
ことを特徴とする請求項1から3のいずれかに記載のプログラム。
【請求項5】
前記コンピュータをさらに、
前記木構造のパターンにおける前記検査対象要素と前記伸張箇所とに基づいて、前記複数の木構造情報のそれぞれについて前記検査対象要素とその子要素との間に追加された要素の候補を検出する基準位置を設定する設定手段
として機能させるための請求項1から4のいずれかに記載のプログラム。
【請求項6】
前記コンピュータをさらに、
前記判定手段により前記木構造のパターンの前記伸張箇所に新たな要素を追加した伸張パターンの探索を行うと判定した場合に、当該伸張パターンの候補を前記複数の木構造情報の中から探索する探索手段、
前記探索手段により探索された前記伸張パターンの候補に基づいて生成した木構造のパターンを前記保持手段に保持させる手段、
前記保持手段に保持された木構造のパターンを前記選択手段、前記判定手段、前記探索手段により伸張する処理を再帰的に実行する手段
として機能させるための請求項1から5のいずれかに記載のプログラム。
【請求項7】
複数の木構造情報の中から予め定められた数の木構造情報に共通して含まれる木構造のパターンを保持する保持手段と、
前記保持手段に保持された木構造のパターンから予め定められた条件に基づいてパスを選択するとともに、当該選択されたパスに要素を追加して前記木構造のパターンを伸張する伸張箇所を選択する選択手段と、
前記木構造のパターンに含まれるいずれかの要素を検査対象要素とし、前記木構造のパターンにおける前記検査対象要素と前記伸張箇所とに基づいて前記複数の木構造情報のそれぞれについて定められる検査範囲から、前記木構造のパターンにおける前記検査対象要素とその子要素との間に要素を追加した共通のパターンが検出される場合に、前記木構造のパターンの前記伸張箇所に新たな要素を追加したパターンの探索を行わないと判定する判定手段と、
を含むことを特徴とする情報抽出装置。
【請求項1】
コンピュータを、
複数の木構造情報の中から予め定められた数の木構造情報に共通して含まれる木構造のパターンを保持する保持手段、
前記保持手段に保持された木構造のパターンから予め定められた条件に基づいてパスを選択するとともに、当該選択されたパスに要素を追加して前記木構造のパターンを伸張する伸張箇所を選択する選択手段、及び、
前記木構造のパターンに含まれるいずれかの要素を検査対象要素とし、前記木構造のパターンにおける前記検査対象要素と前記伸張箇所とに基づいて前記複数の木構造情報のそれぞれについて定められる検査範囲から、前記木構造のパターンにおける前記検査対象要素とその子要素との間に要素を追加した共通のパターンが検出される場合に、前記木構造のパターンの前記伸張箇所に新たな要素を追加したパターンの探索を行わないと判定する判定手段
として機能させるためのプログラム。
【請求項2】
前記判定手段は、前記定められる検査範囲から、前記木構造のパターンにおける前記検査対象要素とその1つの子要素との間に要素を追加した共通のパターンが検出される場合に、前記木構造のパターンの前記伸張箇所に新たな要素を追加したパターンの探索を行わないと判定する
ことを特徴とする請求項1に記載のプログラム。
【請求項3】
前記判定手段は、前記定められる検査範囲から、前記木構造のパターンにおける前記検査対象要素とその複数の子要素とのそれぞれに接続する要素を追加した共通のパターンが検出される場合に、前記木構造のパターンの前記伸張箇所に新たな要素を追加したパターンの探索を行わないと判定する
ことを特徴とする請求項1又は2に記載のプログラム。
【請求項4】
前記判定手段はさらに、前記定められる検査範囲から、前記木構造のパターンにおける前記検査対象要素に新たな子要素を追加した共通のパターンが検出される場合に、前記木構造のパターンの前記伸張箇所に新たな要素を追加したパターンの探索を行わないと判定する
ことを特徴とする請求項1から3のいずれかに記載のプログラム。
【請求項5】
前記コンピュータをさらに、
前記木構造のパターンにおける前記検査対象要素と前記伸張箇所とに基づいて、前記複数の木構造情報のそれぞれについて前記検査対象要素とその子要素との間に追加された要素の候補を検出する基準位置を設定する設定手段
として機能させるための請求項1から4のいずれかに記載のプログラム。
【請求項6】
前記コンピュータをさらに、
前記判定手段により前記木構造のパターンの前記伸張箇所に新たな要素を追加した伸張パターンの探索を行うと判定した場合に、当該伸張パターンの候補を前記複数の木構造情報の中から探索する探索手段、
前記探索手段により探索された前記伸張パターンの候補に基づいて生成した木構造のパターンを前記保持手段に保持させる手段、
前記保持手段に保持された木構造のパターンを前記選択手段、前記判定手段、前記探索手段により伸張する処理を再帰的に実行する手段
として機能させるための請求項1から5のいずれかに記載のプログラム。
【請求項7】
複数の木構造情報の中から予め定められた数の木構造情報に共通して含まれる木構造のパターンを保持する保持手段と、
前記保持手段に保持された木構造のパターンから予め定められた条件に基づいてパスを選択するとともに、当該選択されたパスに要素を追加して前記木構造のパターンを伸張する伸張箇所を選択する選択手段と、
前記木構造のパターンに含まれるいずれかの要素を検査対象要素とし、前記木構造のパターンにおける前記検査対象要素と前記伸張箇所とに基づいて前記複数の木構造情報のそれぞれについて定められる検査範囲から、前記木構造のパターンにおける前記検査対象要素とその子要素との間に要素を追加した共通のパターンが検出される場合に、前記木構造のパターンの前記伸張箇所に新たな要素を追加したパターンの探索を行わないと判定する判定手段と、
を含むことを特徴とする情報抽出装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2011−123619(P2011−123619A)
【公開日】平成23年6月23日(2011.6.23)
【国際特許分類】
【出願番号】特願2009−279784(P2009−279784)
【出願日】平成21年12月9日(2009.12.9)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】
【公開日】平成23年6月23日(2011.6.23)
【国際特許分類】
【出願日】平成21年12月9日(2009.12.9)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】
[ Back to top ]