Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5225331B2 - データ抽出装置及び方法 - Google Patents
[go: Go Back, main page]

JP5225331B2 - データ抽出装置及び方法 - Google Patents

データ抽出装置及び方法 Download PDF

Info

Publication number
JP5225331B2
JP5225331B2 JP2010150011A JP2010150011A JP5225331B2 JP 5225331 B2 JP5225331 B2 JP 5225331B2 JP 2010150011 A JP2010150011 A JP 2010150011A JP 2010150011 A JP2010150011 A JP 2010150011A JP 5225331 B2 JP5225331 B2 JP 5225331B2
Authority
JP
Japan
Prior art keywords
node
path
extraction
common
search path
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010150011A
Other languages
English (en)
Other versions
JP2012014412A (ja
Inventor
圭吾 町永
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yahoo Japan Corp
Original Assignee
Yahoo Japan Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yahoo Japan Corp filed Critical Yahoo Japan Corp
Priority to JP2010150011A priority Critical patent/JP5225331B2/ja
Publication of JP2012014412A publication Critical patent/JP2012014412A/ja
Application granted granted Critical
Publication of JP5225331B2 publication Critical patent/JP5225331B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データ抽出装置及び方法に関する。
近年、インターネット等の普及により、ユーザは、端末からインターネット等にアクセスし、様々なウェブページを容易に閲覧することができる。ウェブページは、HTML(HyperText Markup Language)等で記述された文書と画像データとで構成され、ウェブブラウザによって閲覧される。このようなウェブページを閲覧し、検索することによって、ユーザは、求めている情報を容易に取得することができる。
ウェブページから情報を検索する技術には、HTML等の記述フォーマットを利用して、特定の情報を抽出する技術等が存在する。これらの技術は、HTML等におけるタグ構造を利用し、タグ構造の共通性等を利用して情報を抽出する。例えば、特許文献1から3が知られている。
特許文献1には、WWW上で提供される情報の中から本文部分のみを特定することが可能な抽出規則を作成するシステムが開示されている。特許文献1に開示されたシステムは、予め収集されたウェブページデータから本文部分を抽出する本文抽出手段と、ウェブページデータを解析して、本文抽出手段によって抽出された本文部分が現れる箇所をデータ構造で表現した抽出規則を作成する抽出規則作成手段と、抽出規則作成手段によって作成した同一の抽出規則が適用される複数のURLをグループ化し、このグループ化されたURLと抽出規則とを関連付ける適用抽出規則作成手段とを備える。
特許文献2には、タグの解析や抽出ルールの作成をしないでも、一般のユーザが、有益な情報を持つテキストコンテンツを容易に取り出して活用することができるシステムが開示されている。特許文献2に開示されたシステムは、正規表現を持つパターンフォーマットを記憶する記憶部と、HTMLページからパターンフォーマットと一致するテキストコンテンツを取り出す抽出ルールを生成する抽出ルール生成部と、抽出ルールから所定のフォーマットに変換するフォーマット変換部を有する。
特許文献3には、不特定のウェブサイトのページから、ある検索語に関する特定の情報をブロック単位で抽出する情報抽出装置が開示されている。特許文献1に開示された情報抽出装置は、HTML等で記述された半構造化情報における検索語と検索語に関する特定情報との間の構造的位置関係を表すパターンからなるパターン集合に基づいて、ウェブページの集合から検索語に関する特定情報の候補をブロック単位で抽出し、抽出された特定情報の候補の中から情報分類技術を用いて特定情報を選択する。例えば、情報抽出装置は、取得したウェブページにおける、検索語とその検索語に関する特定情報との構造的位置関係(タグ構造に基づく木構造)から、学習処理によってパターン(パターン木、ノード間の距離等)を生成する。そして、情報抽出装置は、パターンをウェブページに当てはめ、パターン木と、ノード間の距離が制限以内であるターゲットノードとにマッチしたノードを根とする部分木に含まれる情報を抽出し、特定情報の候補とし、情報分類技術を用いて特定情報を選択する。
特開2004−220251号公報 特開2006−236262号公報 特開2007−47974号公報
しかしながら、特許文献1に開示された発明は、ウェブページデータから本文部分のみを特定し、抽出するので、ユーザが所望して指定したデータと同様のデータを抽出することができない。特許文献2に開示された発明は、HTMLページからパターンフォーマットと一致するテキストコンテンツを取り出すので、ユーザは所望するデータを取得するために、パターンフォーマットを理解して指定する必要がある。特許文献3に開示された発明は、ウェブページから、ノード間の距離が制限以内であるノードをもマッチするノードとして抽出するので、ユーザが所望して指定したデータと異なる意味合いのデータをも抽出してしまう。さらに、特許文献3に開示された発明は、抽出した情報を候補として情報分類技術を用いて特定情報を選択するので、抽出までの時間がかかることが予想される。
そこで、ユーザが所望するデータを、容易、かつ、高速にHTML文書から抽出することができるデータ抽出装置及び方法が求められている。
本発明は、ユーザが所望するデータを、容易、かつ、高速にHTML文書から抽出することができるデータ抽出装置及び方法を提供することを目的とする。
本発明では、以下のような解決手段を提供する。
(1) HTML文書を記憶するHTML文書記憶手段と、前記HTML文書記憶手段に記憶された前記HTML文書を構成するノードのうち、二つ以上の目的ノードの指定を受け付ける目的ノード受付手段と、前記目的ノード受付手段によって受け付けられた全ての前記目的ノードに共通の上位ノードである共通祖先ノードを特定する祖先ノード特定手段と、前記祖先ノード特定手段によって特定された前記共通祖先ノードから指定された前記目的ノードまでの全てのパスを抽出するパス抽出手段と、前記パス抽出手段によって抽出された前記パス及び前記HTML文書を構成するノードの繰り返し構造に基づき、抽出対象となる抽出目的ノードの抽出ルールを示す、前記共通祖先ノードから当該抽出目的ノードまでの検索パスを生成する検索パス生成手段と、前記共通祖先ノードを含む前記HTML文書から、前記検索パス生成手段によって生成された前記検索パスに従って抽出される前記抽出目的ノードを抽出するデータ抽出手段と、を含むデータ抽出装置。
(1)の構成によれば、本発明に係るデータ抽出装置は、HTML文書を記憶するHTML文書記憶手段を有する。そして、データ抽出装置は、HTML文書記憶手段に記憶されたHTML文書を構成するノードのうち、二つ以上の目的ノードの指定を受け付け、受け付けた全ての目的ノードに共通の上位ノードである共通祖先ノードを特定する。次に、データ抽出装置は、特定した共通祖先ノードから指定された目的ノードまでの全てのパスを抽出し、抽出したパス及びHTML文書を構成するノードの繰り返し構造に基づき、抽出対象となる抽出目的ノードの抽出ルールを示す、共通祖先ノードから当該抽出目的ノードまでの検索パスを生成する。そして、データ抽出装置は、共通祖先ノードを含むHTML文書から、生成した検索パスに従って抽出される抽出目的ノードを抽出する。
すなわち、本発明に係るデータ抽出装置は、指定を受け付けた全ての目的ノードの共通祖先ノードを特定し、特定した共通祖先ノードから抽出目的ノードまでの検索パスを生成し、生成した検索パスに従って抽出される抽出目的ノードを抽出する。したがって、本発明に係るデータ抽出装置は、ユーザからヒントとなる目的ノードの指定を受け付けて、当該ヒントに基づいてユーザが所望するデータを、容易、かつ、高速にHTML文書から抽出することができる。
(2) 前記検索パス生成手段は、前記パス抽出手段が抽出した前記全てのパスに基づいて、複数のパターンにマッチするワイルドカードを一部に含む表現を有する前記検索パスを生成する(1)に記載のデータ抽出装置。
したがって、(2)に係るデータ抽出装置は、抽出した全てのパスに基づいて、複数のパターンにマッチするワイルドカードを一部に含む表現を有する検索パスを生成する。これによりHTML文書の繰り返し構造に揺らぎを含んでいる場合においても、ユーザが所望するデータを、容易にHTML文書から抽出することができる。
(3) 前記検索パス生成手段は、前記パス抽出手段が抽出した前記全てのパスについてDP(Dynamic Programming)マッチングを行って、前記ワイルドカードを一部に含む表現を有する検索パスを生成する(2)に記載のデータ抽出装置。
したがって、(3)に係るデータ抽出装置は、複数の抽出されたパスが完全に一致していない場合であっても、これらのパスのDPマッチングを行ってワイルドカードを一部に含む表現を有する検索パスを推定し生成する。これによりHTML文書の繰り返し構造に揺らぎを含んでいる場合においても、ユーザが所望するデータを、さらに容易にHTML文書から抽出することができる。
(4) 前記祖先ノード特定手段は、前記指定を受け付けた二つ以上の前記目的ノードのうちの前記HTML文書の下位の前記目的ノードから順に組み合わせて、二つの前記目的ノードの共通上位ノードである第1の共通ノードを求める手段と、二つの前記第1の共通ノードの共通上位ノードである第2の共通ノードを求める手段と、前記共通上位ノードが一つになるまでこれを繰り返し、当該一つの共通上位ノードを前記共通祖先ノードとして特定する手段と、を含み、前記パス抽出手段は、前記共通祖先ノードから一段下位の共通上位ノードまでのパスを抽出する手段と、前記一段下位の前記共通上位ノードが前記抽出目的ノードでない場合には、前記一段下位の共通上位ノードからさらに一段下位の共通上位ノードまでのパスを抽出する手段と、さらに、これを繰り返し、前記抽出目的ノードまでのパスを抽出する繰り返し手段と、を含み、前記検索パス生成手段は、前記共通祖先ノードから一段下位の共通上位ノードまでの検索パスを、前記抽出されたパスのDPマッチングを行って生成する手段と、前記一段下位の共通上位ノードが前記抽出目的ノードでない場合には、前記一段下位の共通上位ノードからさらに一段下位の共通上位ノードまでの検索パスを、前記抽出された前記パスのDPマッチングを行って、生成する手段と、さらに、これを繰り返し、前記抽出目的ノードまでの検索パスを生成する手段と、を含む、(1)に記載のデータ抽出装置。
(4)の構成によれば、(4)に係るデータ抽出装置は、(1)において、指定を受け付けた二つ以上の目的ノードのうちのHTML文書の下位の目的ノードから順に組み合わせて、二つの目的ノードの共通上位ノードである第1の共通ノードを求め、二つの第1の共通ノードの共通上位ノードである第2の共通ノードを求め、共通上位ノードが一つになるまでこれを繰り返し、当該一つの共通上位ノードを共通祖先ノードとして特定する。次に、(4)に係るデータ抽出装置は、共通祖先ノードから一段下位の共通上位ノードまでのパスを抽出し、一段下位の共通上位ノードが抽出目的ノードでない場合には、一段下位の共通上位ノードからさらに一段下位の共通上位ノードまでのパスを抽出し、さらに、これを繰り返し、抽出目的ノードまでのパスを抽出する。そして、(4)に係るデータ抽出装置は、共通祖先ノードから一段下位の共通上位ノードまでの検索パスを、抽出されたパスのDPマッチングを行って生成し、一段下位の共通上位ノードが抽出目的ノードでない場合には、一段下位の共通上位ノードからさらに一段下位の共通上位ノードまでの検索パスを、抽出されたパスのDPマッチングを行って、生成し、さらに、これを繰り返し、抽出目的ノードまでの検索パスを生成する。
すなわち、(4)に係るデータ抽出装置は、指定を受け付けた全ての目的ノードの共通祖先ノードを特定し、特定した共通祖先ノードから抽出目的ノードまでの検索パスを、一段ごとに生成し、生成した一段ごとの検索パスによって、生成した検索パスに従って抽出される抽出目的ノードを抽出する。したがって、(4)に係るデータ抽出装置は、ユーザからヒントとなる目的ノードの指定を受け付けて、当該ヒントに基づいてユーザが所望するデータを、さらに、容易、かつ、高速にHTML文書から抽出することができる。
(5) HTML文書を記憶するHTML文書記憶手段を有するデータ抽出装置が実行する方法であって、前記HTML文書記憶手段に記憶された前記HTML文書を構成するノードのうち、二つ以上の目的ノードの指定を受け付ける目的ノード受付ステップと、前記目的ノード受付ステップにおいて受け付けられた全ての前記目的ノードに共通の上位ノードである共通祖先ノードを特定する祖先ノード特定ステップと、前記祖先ノード特定ステップにおいて特定された前記共通祖先ノードから指定された前記目的ノードまでの全てのパスを抽出するパス抽出ステップと、前記パス抽出ステップにおいて抽出された前記パス及び前記HTML文書を構成するノードの繰り返し構造に基づき、抽出対象となる抽出目的ノードの抽出ルールを示す、前記共通祖先ノードから当該抽出目的ノードまでの検索パスを生成する検索パス生成ステップと、前記共通祖先ノードを含む前記HTML文書から、前記検索パス生成ステップにおいて生成された前記検索パスに従って抽出される前記抽出目的ノードを抽出するデータ抽出ステップと、を含む方法。
したがって、(1)と同様に、本発明に係る方法は、ユーザからデータを受け付けて、ユーザが所望するデータを、容易、かつ、高速にHTML文書から抽出することができる。
本発明によれば、ユーザが所望するデータを、容易、かつ、高速にHTML文書から抽出することができる。
本発明の特徴を説明するためのHTML文書データの例を示す図である。 本発明の一実施形態に係るデータ抽出装置の機能構成を示す機能ブロック図である。 本発明の一実施形態に係るデータ抽出装置のHTML文書データの別の例を示す図である。 本発明の一実施形態に係るデータ抽出装置の検索パスの生成においてDPマッチングを行う例を示す図である。 一実施形態に係るデータ抽出装置の処理内容を示すフローチャートである。 一実施形態に係るデータ抽出装置の共通祖先ノード特定処理を示すフローチャートである。 一実施形態に係るデータ抽出装置の検索パス生成処理を示すフローチャートである。 本発明の一実施形態に係るデータ抽出装置のデータ抽出例を示す図である。
以下、本発明の実施形態について図を参照しながら説明する。
本実施形態のデータ抽出装置10は、コンピュータ及びその周辺装置に適用される。本実施形態における各部は、コンピュータ及びその周辺装置が備えるハードウェア並びに該ハードウェアを制御するソフトウェアによって構成される。
上記ハードウェアには、制御部としてのCPU(Central Processing Unit)の他、記憶部、通信装置、表示装置及び入力装置が含まれる。記憶部としては、例えば、メモリ(RAM:Random Access Memory、ROM:Read Only Memory等)、ハードディスクドライブ(HDD:Hard Disk Drive)及び光ディスク(CD:Compact Disk、DVD:Digital Versatile Disk等)ドライブが挙げられる。通信装置としては、例えば、各種有線及び無線インターフェース装置が挙げられる。表示装置としては、例えば、液晶ディスプレイやプラズマディスプレイ等の各種ディスプレイが挙げられる。入力装置としては、例えば、キーボード及びポインティング・デバイス(マウス、トラッキングボール等)が挙げられる。
上記ソフトウェアには、上記ハードウェアを制御するコンピュータ・プログラムやデータが含まれる。コンピュータ・プログラムやデータは、記憶部により記憶され、制御部により適宜実行、参照される。また、コンピュータ・プログラムやデータは、通信回線を介して配布されることも可能であり、CD−ROM等のコンピュータ可読媒体に記録して配布されることも可能である。
図1は、本発明の特徴を説明するためのHTML文書データの例を示す図である。図1(a)は、「カレーライスの作り方」における素材等を具体例としたHTML文書データの例を示す図である。図1(b)は、図1(a)のHTML文書データの例を木構造で示した図である。この例において、データ抽出装置10は、データ抽出の目的となる抽出目的ノードのヒントである目的ノードの指定を受け付ける。具体的には、図1(a)の例では、詳しくは図8において後述するように、データ抽出装置10はマウスポインタ等によって表示画面のクリック操作を受け付けることにより、「カレーライスの作り方」、「牛肉」、「200g」、「カレールー」及び「1/2パック」を、抽出目的ノードのヒントである目的ノードとして受け付ける。そして、データ抽出装置10は、当該HTML文書を構成するノードの繰り返し構造に基づき、「カレーライスの作り方」、「牛肉」、「200g」等のヒントとして直接指定を受け付けた目的ノードに加えて、例えば「ニンジン」、「1本」等を抽出目的ノードとして自動的に抽出する。
すなわち、データ抽出装置10は、HTML文書の中で、ユーザの所望するデータ(抽出目的ノード)を抽出するためのヒントである目的ノードとして、例えば、「カレーライスの作り方」、「牛肉」、「200g」、「カレールー」及び「1/2パック」の指定を受け付ける。次に、データ抽出装置10は、当該HTML文書の下位の目的ノードから順に組み合わせて、指定を受け付けた「牛肉」に対応する目的ノードと、「200g」に対応する目的ノードとを第1グループとする。さらに、データ抽出装置10は、これらと並列の目的ノードである「カレールー」に対応する目的ノードと、「1/2パック」に対応する目的ノードとを第2グループとする。さらに、データ抽出装置10は、これらより上位の目的ノードである「カレーライスの作り方」に対応するノードを第3グループとする。ここで、データ抽出装置10は、第1グループと第2グループとの共通上位ノードである<dl>を抽出し、第1グループと第2グループとを合わせて第4グループとする。次に、データ抽出装置10は、合わせた第4グループと、第3グループとの共通上位ノードである<body>を抽出し、第4グループと第3グループとを合わせて第5グループとする。そして、データ抽出装置10は、他に上位ノードを抽出するためのグループがないので<body>を共通祖先ノードとして特定する。
次に、データ抽出装置10は、特定した共通祖先ノード<body>から、上記の処理の逆順に逐次、抽出対象となる抽出目的ノードの抽出ルールを示す、当該抽出目的ノードまでの検索パスを推定していく。すなわち、データ抽出装置10は、第5グループとして特定した共通祖先ノード<body>から、一段下位の第3グループの「カレーライスの作り方」に対応する目的ノードまでのパス<body>−<h1>と、第4グループに対応する共通上位ノードまでのパス<body>−<dl>とから、検索パス<body>−<h1>−<dl>を推定して生成する。次に、データ抽出装置10は、第4グループに対応する共通上位ノードである<dl>からさらに一段下位の第1グループの「牛肉」に対応する目的ノードまでのパス<dl>−<dt>及び同じく第1グループの「200g」に対応する目的ノードまでのパス<dl>−<dd>、並びに、第2グループの「カレールー」に対応する目的ノードまでのパス<dl>−<dt>及び同じく第2グループの「1/2パック」に対応する目的ノードまでのパス<dl>−<dd>から、抽出目的ノードまでの検索パス<body>−<h1>−<dl>−<dt>−<dd>を推定して生成する。ここで、「牛肉」、「200g」、「カレールー」及び「1/2パック」は、指定を受け付けたヒント(目的ノード)であるので、データ抽出装置10は、ここで検索パスの推定・生成処理を完了する。
そして、データ抽出装置10は、共通祖先ノードを含むHTML文書から、推定・生成した検索パスに従って特定される抽出目的ノードに対応する「ニンジン」、「1本」、「タマネギ」、「2個」、「ジャガイモ」及び「2個」を抽出する。したがって、データ抽出装置10は、ユーザから、例えば、「カレーライスの作り方」、「牛肉」、「200g」、「カレールー」及び「1/2パック」を受け付けて、ユーザが所望するカレーライスを作るための素材及び素材の量を、容易、かつ、高速にHTML文書から抽出することができる。
図2は、本発明の一実施形態に係るデータ抽出装置10の機能構成を示す機能ブロック図である。データ抽出装置10は、インターネット70を介して接続されているウェブサーバ50から取得したウェブデータを格納するウェブデータ記憶手段としてのウェブデータDB31と、目的ノード受付手段としての目的ノード受付部11と、祖先ノード特定手段としての祖先ノード特定部12と、パス抽出手段としてのパス抽出部13と、検索パス生成手段としての検索パス生成部14と、データ抽出手段としてのデータ抽出部15とを備える。このようなデータ抽出装置10の機能について、各部ごとに詳述する。
ウェブデータDB31は、HTML文書を含むウェブデータを記憶する。例えば、HTML文書の記述フォーマットは、タグから構成されるタグ構造を有する(図1(a)を参照)。本発明において、タグと、タグに含まれるテキストとを、ノードに対応させ、HTML文書に木構造を適用する。
目的ノード受付部11は、ウェブデータDB31に記憶されたウェブデータに含まれるHTML文書を構成するノードのうち、二つ以上の目的ノードの指定を受け付ける。例えば、目的ノード受付部11は、ユーザの所望するデータ(抽出目的ノード)を抽出するための目的ノードとして、例えば、「カレーライスの作り方」、「牛肉」、「200g」、「カレールー」及び「1/2パック」の指定を受け付ける。
祖先ノード特定部12は、目的ノード受付部11によって受け付けられた全ての目的ノードに共通の上位ノードである共通祖先ノードを特定する。すなわち、祖先ノード特定部12は、目的ノード受付部11によって受け付けられた二つ以上の目的ノードのうち、HTML文書の下位の目的ノードから順に組み合わせて、二つの目的ノードの共通上位ノードである第1の共通ノードを求める。次に、祖先ノード特定部12は、二つの第1の共通ノードの共通上位ノードである第2の共通ノードを求める。そして、祖先ノード特定部12は、共通上位ノードが一つになるまで上位ノードの抽出を繰り返し、当該一つの共通上位ノードを共通祖先ノードとして特定する。
例えば、図1のようにタグの種類によって木構造を構成するHTML文書において、祖先ノード特定部12は、目的ノードである「カレーライスの作り方」、「牛肉」、「200g」、「カレールー」及び「1/2パック」のうち、HTML文書の下位の目的ノードから順に組み合わせて、「牛肉」と、「200g」とを第1グループとし、「カレールー」と、「1/2パック」とを第2グループとし、これらより上位の目的ノードである「カレーライスの作り方」を第3グループとする。次に、祖先ノード特定部12は、第1グループと第2グループとの共通上位ノードである<dl>を抽出し、第1グループと第2グループとを合わせて第4グループとする。次に、データ抽出装置10は、合わせた第4グループと、第3グループとの共通上位ノードである<body>を抽出し、第4グループと第3グループとを合わせて第5グループとする。そして、祖先ノード特定部12は、一つになった共通上位ノード<body>を共通祖先ノードとして特定する。
パス抽出部13は、祖先ノード特定部12によって特定された共通祖先ノードから指定された目的ノードまでの全てのパスを抽出する。すなわち、パス抽出部13は、共通祖先ノードから一段下位の共通上位ノードまでのパスを抽出する。次に、パス抽出部13は、一段下位の共通上位ノードが抽出対象となる抽出目的ノードでない場合には、一段下位の共通上位ノードからさらに一段下位の共通上位ノードまでのパスを抽出する。そして、パス抽出部13は、一段下位の共通上位ノードが抽出目的ノードになるまで、一段下位の共通上位ノードまでのパスの抽出を繰り返し、抽出目的ノードまでのパスを推定して抽出する。
例えば、パス抽出部13は、共通祖先ノード<body>から、祖先ノード特定部12の処理の逆順に、抽出目的ノードまでのパスを抽出する。すなわち、パス抽出部13は、共通祖先ノード<body>から、一段下位の第3グループの「カレーライスの作り方」までのパス<body>−<h1>と、第4グループに対応する共通上位ノードである<dl>までのパス<body>−<dl>を抽出する。次に、パス抽出部13は、第4グループからさらに一段下位の第1グループの「牛肉」までのパス<dl>−<dt>及び「200g」までのパス<dl>−<dd>、並びに、第2グループの「カレールー」までのパス<dl>−<dt>及び「1/2パック」までのパス<dl>−<dd>を抽出する。
検索パス生成部14は、パス抽出部13によって抽出されたパス及びHTML文書を構成するノードの繰り返し構造に基づき、抽出対象となる抽出目的ノードの抽出ルールを示す、共通祖先ノードから当該抽出目的ノードまでの検索パスを生成する。例えば、検索パス生成部14は、パス抽出部13が抽出した全てのパスについてDP(Dynamic Programming)マッチング(後述する図4参照)を行って、複数のパターンにマッチするワイルドカードを一部に含む表現を有する検索パスを生成する。すなわち、検索パス生成部14は、共通祖先ノードから一段下位の共通上位ノードまでの検索パスを、抽出されたパスのDPマッチングを行って生成する。次に、検索パス生成部14は、一段下位の共通上位ノードが抽出目的ノードでない場合には、一段下位の共通上位ノードからさらに一段下位の共通上位ノードまでの検索パスを、抽出されたパスのDPマッチングを行って、生成する。このように、検索パス生成部14は、一段ごとの検索パスの生成を繰り返し、抽出目的ノードまでの検索パスを推定して生成する。
例えば、検索パス生成部14は、共通祖先ノード<body>から一段下位の共通上位ノード<h1>及び<dl>までの検索パスとして、抽出されたパスである<body>−<h1>と、<body>−<dl>とのDPマッチングを行って、検索パス<body>−<h1>−<dl>を生成する。次に、検索パス生成部14は、一段下位の共通上位ノード<dl>が抽出目的ノードでないので、一段下位の共通上位ノード<dl>からさらに一段下位の共通上位ノード<dt>及び<dd>までの検索パスとして、抽出されたパスである<dl>−<dt>と、<dl>−<dd>とのDPマッチングを行って、<body>−<h1>−<dl>−<dt>−<dd>を生成する。検索パス生成部14は、パスのDPマッチングを行うことにより、複数の抽出されたパスが完全には一致していない場合(例えば、後述する図3の場合)であっても、複数のパターンにマッチするワイルドカードとして表現し、最適な検索パスを推定して生成する。パスのDPマッチングは、図3及び図4において詳述する。
データ抽出部15は、共通祖先ノードを含むHTML文書から、検索パス生成部14によって生成された検索パスに従って抽出される抽出目的ノードを抽出する。例えば、データ抽出部15は、生成した検索パス<body>−<dl>−<dt>に従って検索されたノードに対応する「ニンジン」や、<body>−<dl>−<dt>−<dd>に従って検索されたノードに対応する「1本」(図1参照)を抽出する。
図3は、本発明の一実施形態に係るデータ抽出装置10のHTML文書データの別の例を示す図である。図3(a)は、HTML文書データにおいて<img>を有するデータの例を示す図である。
図3の例において、データ抽出装置10は、特定した共通祖先ノード<body>から、抽出目的ノードである「カレーライスの作り方」、「牛肉」、「200g」、「カレールー」及び「1/2カップ」までの検索パスである<body>−<dl>−<dt>−<img>?−<dd>を生成する。<img>?は、「?」直前の<img>が出現する場合もあるし、出現しない場合もあることを示すワイルドカードとしての表現である。
すなわち、データ抽出装置10は、「200g」までの検索パス<body>−<dl>−<dt>−<dd>と、「1/2カップ」までの検索パス<body>−<dl>−<dt>−<img>−<dd>とから検索パスの併合を行い、<body>−<dl>−<dt>−<img>?−<dd>を生成する。データ抽出装置10は、例えば、DPマッチングを用いて、この検索パスの併合を行う。
図4は、本発明の一実施形態に係るデータ抽出装置10の検索パスの生成においてDPマッチングを行う例を示す図である。図4の例は、「1/2カップ」のように目的ノードに到達するまでに、<img>が存在する入力1<body>−<dl>−<dt>−<img>−<dd>と、「200g」のように<img>が存在しない入力2<body>−<dl>−<dt>−<dd>とにおいて、目的ノードに達するまでのパスを示す例である。
図4の例において、データ抽出装置10は、入力1と入力2とが合致(マッチ)するパスをスコア+1とし、入力1を省略するパスをスコア−1、入力2を省略するパスをスコア−1とする。ここで、データ抽出装置10は、入力1と入力2とが合致(マッチ)しないパス533を、経路とすることができない。データ抽出装置10は、目的ノードに到達するパスのスコアを算出し、算出したスコアが最も高いパスを最適経路とする。
例えば、開始ノード901から目的ノード902までの検索パスにおいて、検索パスAと、検索パスBとについてスコアを算出する。検索パスAは、パス511(スコア+1)、パス522(スコア+1)、パス5033(入力1の省略:スコア−1)、パス5304(入力2の省略:スコア−1)、パス5404(入力2の省略:スコア−1)、パス554(スコア+1)、パス565(スコア+1)によって目的ノード902に達するので、算出したスコアは+1である。検索パスBは、パス511(スコア+1)、パス522(スコア+1)、パス5303(入力2の省略:スコア−1)、パス543(スコア+1)、パス554(スコア+1)、パス565(スコア+1)によって目的ノード902に達するので、算出したスコアは+3である。よって、データ抽出装置10は、検索パスBを検索パスAより優れたパスと判定する。同様にして、データ抽出装置10は、他のパスのスコアを算出し、検索パスBとの比較によって検索パスBを最適経路と判定し、複数のパターンにマッチするワイルドカードとして表現した、<dl>−<dt>−<img>?−<dd>を生成する。
図5は、一実施形態に係るデータ抽出装置10の処理内容を示すフローチャートである。
ステップS101において、CPU(目的ノード受付部11)は、ユーザの所望するデータを抽出するための目的ノードを受け付ける。その後、CPUは、処理をステップS102に移す。
ステップS102において、CPU(祖先ノード特定部12)は、共通祖先ノード特定処理を行い、ステップS101において受け付けた目的ノードの共通祖先ノードを特定する。その後、CPUは、処理をステップS103に移す。
ステップS103において、CPU(パス抽出部13、検索パス生成部14)は、検索パス生成処理を行い、抽出対象となる抽出目的ノードの抽出ルールを示す、共通祖先ノードから抽出目的ノードまでの検索パスを生成する。その後、CPUは、処理をステップS104に移す。
ステップS104において、CPU(データ抽出部15)は、ステップS103において生成した検索パスによりデータを抽出する。その後、CPUは、処理を終了する。
図6は、一実施形態に係るデータ抽出装置10の共通祖先ノード特定処理を示すフローチャートである。
ステップS201において、CPU(祖先ノード特定部12)は、受け付けた目的ノードをグループ化する。より具体的には、CPUは、ウェブデータDB31から取得したHTML文書の木構造に基づいて下位のノードから順に組み合わせて、目的ノードをグループ化する。その後、CPUは、処理をステップS202に移す。
ステップS202において、CPU(祖先ノード特定部12)は、グループ同士の共通上位ノードを抽出する。より具体的には、CPUは、グループ化したグループを、タグの種類によって位置付け、位置付けられたグループのうち最も下位に位置付けられたグループと、そのグループと同じ又は次の上位に位置付けられたグループとの共通上位ノードを抽出する。その後、CPUは、処理をステップS203に移す。
ステップS203において、CPU(祖先ノード特定部12)は、抽出した共通上位ノードに対応付けて、一段下位のグループを記憶する。より具体的には、CPUは、抽出した共通上位ノードに対応付けて、その共通上位ノードを上位ノードとするグループを記憶する。その後、CPUは、処理をステップS204に移す。
ステップS204において、CPU(祖先ノード特定部12)は、共通上位ノードを抽出したグループ同士を一つとする。その後、CPUは、処理をステップS205に移す。
ステップS205において、CPU(祖先ノード特定部12)は、2以上のグループが存在するか否かを判断する。すなわち、CPUは、グループ同士を一つにした結果、グループが2以上存在するか否かを判断する。この判断がYESの場合、CPUは、処理をステップS202に移し、NOの場合、CPUは、処理をステップS206に移す。
ステップS206において、CPU(祖先ノード特定部12)は、最後に抽出した共通上位ノードを共通祖先ノードとして特定する。その後、CPUは、処理を終了し、本処理に移るステップの次のステップに処理を移す。
図7は、一実施形態に係るデータ抽出装置10の検索パス生成処理を示すフローチャートである。
ステップS301において、CPU(パス抽出部13)は、特定した共通祖先ノードを開始ノードとする。より具体的には、CPUは、ステップS206において特定した共通祖先ノードを開始ノードとする。その後、CPUは、処理をステップS302に移す。
ステップS302において、CPU(パス抽出部13)は、抽出目的ノードへのパスにおいて、開始ノードを共通上位ノードとする一段下位のグループを取得する。より具体的には、CPUは、ステップS203において、共通上位ノードに対応付けて記憶したグループのうち、開始ノードを共通上位ノードとするグループを取得する。その後、CPUは、処理をステップS303に移す。
ステップS303において、CPU(検索パス生成部14)は、取得したグループ同士に基づいて、DPマッチングにより、グループへの最適経路を求める(図4参照)。その後、CPUは、処理をステップS304に移す。
ステップS304において、CPU(検索パス生成部14)は、求めた最適経路に基づいて共通祖先ノードからグループまでの、複数のパターンにマッチするワイルドカードとしての表現を含む最適経路を生成する。その後、CPUは、処理をステップS305に移す。
ステップS305において、CPU(検索パス生成部14)は、グループを構成するノードが抽出目的ノードか否かを判断する。この判断がYESの場合、CPUは、処理をステップS307に移し、NOの場合、CPUは、処理をステップS306に移す。
ステップS306において、CPU(検索パス生成部14)は、グループを構成するノードを開始ノードとする。その後、CPUは、処理をステップS302に移す。
ステップS307において、CPU(検索パス生成部14)は、生成した最適経路を検索パスとする。その後、CPUは、処理を終了し、本処理に移るステップの次のステップに処理を移す。
図8は、本発明の一実施形態に係るデータ抽出装置10のデータ抽出例を示す図である。図8の例において、HTML文書は、「カレーライスの作り方」と、「牛肉のおろし大根ソースの作り方」とから次のように構成されている。
<html>
<head>
<title>牛肉を使った料理</title>
</head>
<body>
<h1>カレーライスの作り方</h1>
<dl>
<dt>牛肉</dt><dd>200g</dd>
<dt><img src=“curry.jpg”>カレールー</dt><dd>1/2パック</dd>
<dt>ニンジン</dt><dd>1本</dd>
<dt>タマネギ</dt><dd>2個</dd>
<dt>ジャガイモ</dt><dd>2個</dd>
</dl>
</body>
<body>
<h1>牛肉のおろし大根ソースの作り方</h1>
<dl>
<dt><img src=“tokusan_gyuu.jpg”>牛肩ロース肉</dt><dd>400g</dd>
<dt>大根</dt><dd>150g</dd>
<dt>もやし</dt><dd>200g</dd>
<dt>ピーマン</dt><dd>2個</dd>
</dl>
</body>
</html>
図8(a)の例は、データ抽出装置10の表示装置に表示された画像において、抽出目的ノードを抽出するためのヒントである目的ノードとして、例えば、「カレーライスの作り方」、「牛肉」、「200g」、「カレールー」及び「1/2パック」が、マウスポインタ601によって指定され、受け付けられたことを示す例である。そして、図8(a)の例は、抽出ボタン610によって、データ抽出処理を開始することを示している例である。
図8(b)の例は、データ抽出装置10が受け付けたヒントである目的ノードによって、HTML文書から抽出すべき項目を推定して、さらに「ニンジン」及び「1本」〜「ジャガイモ」及び「2個」と、「牛肉のおろし大根ソースの作り方」と、「牛肩ロース肉」及び「400g」〜「ピーマン」及び「2個」とを、画像データ611(“curry.jpg”)及び画像データ612(“tokusan_gyuu.jpg”)の有無に関わらず抽出したことを示す例である。
本実施形態によれば、データ抽出装置10は、HTML文書を記憶するウェブデータDB31を有する。そして、データ抽出装置10は、ユーザから、ウェブデータDB31に記憶されたHTML文書を構成するノードのうち、二つ以上の目的ノードの指定を受け付け、受け付けた全ての目的ノードに共通の上位ノードである共通祖先ノードを特定する。次に、データ抽出装置10は、特定した共通祖先ノードから指定された目的ノードまでの全てのパスを抽出し、抽出したパス及びHTML文書を構成するノードの繰り返し構造に基づき、DPマッチングを行って、抽出対象となる抽出目的ノードの抽出ルールを示す、共通祖先ノードから当該抽出目的ノードまでの、複数のパターンにマッチするワイルドカードを一部に含む表現を有する検索パスを推定して生成する。そして、データ抽出装置10は、共通祖先ノードを含むHTML文書から、生成した検索パスに従って検索される抽出目的ノードを抽出する。したがって、データ抽出装置10は、ユーザからヒントとなる目的ノードの指定を受け付けて、ユーザが所望するデータを、容易、かつ、高速にHTML文書から抽出することができる。
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
10 データ抽出装置
11 目的ノード受付部
12 祖先ノード特定部
13 パス抽出部
14 検索パス生成部
15 データ抽出部
31 ウェブデータDB
50 ウェブサーバ
70 インターネット

Claims (5)

  1. HTML文書を記憶するHTML文書記憶手段と、
    前記HTML文書記憶手段に記憶された前記HTML文書を構成するノードのうち、二つ以上の目的ノードの指定を受け付ける目的ノード受付手段と、
    前記目的ノード受付手段によって受け付けられた全ての前記目的ノードに共通の上位ノードである共通祖先ノードを特定する祖先ノード特定手段と、
    前記祖先ノード特定手段によって特定された前記共通祖先ノードから指定された前記目的ノードまでの全てのパスを抽出するパス抽出手段と、
    前記パス抽出手段によって抽出された前記パス及び前記HTML文書を構成するノードの繰り返し構造に基づき、抽出対象となる抽出目的ノードの抽出ルールを示す、前記共通祖先ノードから当該抽出目的ノードまでの検索パスを生成する検索パス生成手段と、
    前記共通祖先ノードを含む前記HTML文書から、前記検索パス生成手段によって生成された前記検索パスに従って抽出される前記抽出目的ノードを抽出するデータ抽出手段と、
    を含むデータ抽出装置。
  2. 前記検索パス生成手段は、前記パス抽出手段が抽出した前記全てのパスに基づいて、複数のパターンにマッチするワイルドカードを一部に含む表現を有する前記検索パスを生成する請求項1に記載のデータ抽出装置。
  3. 前記検索パス生成手段は、前記パス抽出手段が抽出した前記全てのパスについてDP(Dynamic Programming)マッチングを行って、前記ワイルドカードを一部に含む表現を有する検索パスを生成する請求項2に記載のデータ抽出装置。
  4. 前記祖先ノード特定手段は、
    前記指定を受け付けた二つ以上の前記目的ノードのうちの前記HTML文書の下位の前記目的ノードから順に組み合わせて、二つの前記目的ノードの共通上位ノードである第1の共通ノードを求める手段と、
    二つの前記第1の共通ノードの共通上位ノードである第2の共通ノードを求める手段と、
    前記共通上位ノードが一つになるまでこれを繰り返し、当該一つの共通上位ノードを前記共通祖先ノードとして特定する手段と、を含み、
    前記パス抽出手段は、
    前記共通祖先ノードから一段下位の共通上位ノードまでのパスを抽出する手段と、
    前記一段下位の前記共通上位ノードが前記抽出目的ノードでない場合には、前記一段下位の共通上位ノードからさらに一段下位の共通上位ノードまでのパスを抽出する手段と、
    さらに、これを繰り返し、前記抽出目的ノードまでのパスを抽出する繰り返し手段と、を含み、
    前記検索パス生成手段は、
    前記共通祖先ノードから一段下位の共通上位ノードまでの検索パスを、前記抽出されたパスのDPマッチングを行って生成する手段と、
    前記一段下位の共通上位ノードが前記抽出目的ノードでない場合には、前記一段下位の共通上位ノードからさらに一段下位の共通上位ノードまでの検索パスを、前記抽出された前記パスのDPマッチングを行って、生成する手段と、
    さらに、これを繰り返し、前記抽出目的ノードまでの検索パスを生成する手段と、を含む、
    請求項1に記載のデータ抽出装置。
  5. HTML文書を記憶するHTML文書記憶手段を有するデータ抽出装置が実行する方法であって、
    前記HTML文書記憶手段に記憶された前記HTML文書を構成するノードのうち、二つ以上の目的ノードの指定を受け付ける目的ノード受付ステップと、
    前記目的ノード受付ステップにおいて受け付けられた全ての前記目的ノードに共通の上位ノードである共通祖先ノードを特定する祖先ノード特定ステップと、
    前記祖先ノード特定ステップにおいて特定された前記共通祖先ノードから指定された前記目的ノードまでの全てのパスを抽出するパス抽出ステップと、
    前記パス抽出ステップにおいて抽出された前記パス及び前記HTML文書を構成するノードの繰り返し構造に基づき、抽出対象となる抽出目的ノードの抽出ルールを示す、前記共通祖先ノードから当該抽出目的ノードまでの検索パスを生成する検索パス生成ステップと、
    前記共通祖先ノードを含む前記HTML文書から、前記検索パス生成ステップにおいて生成された前記検索パスに従って抽出される前記抽出目的ノードを抽出するデータ抽出ステップと、を含む方法。
JP2010150011A 2010-06-30 2010-06-30 データ抽出装置及び方法 Active JP5225331B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010150011A JP5225331B2 (ja) 2010-06-30 2010-06-30 データ抽出装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010150011A JP5225331B2 (ja) 2010-06-30 2010-06-30 データ抽出装置及び方法

Publications (2)

Publication Number Publication Date
JP2012014412A JP2012014412A (ja) 2012-01-19
JP5225331B2 true JP5225331B2 (ja) 2013-07-03

Family

ID=45600770

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010150011A Active JP5225331B2 (ja) 2010-06-30 2010-06-30 データ抽出装置及び方法

Country Status (1)

Country Link
JP (1) JP5225331B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5820770B2 (ja) * 2012-05-21 2015-11-24 日本電信電話株式会社 本文抽出装置及び方法及びプログラム
SG11201703829SA (en) * 2014-11-14 2017-06-29 Fujitsu Ltd Recording medium, data acquisition method, and data acquisition device
KR102862253B1 (ko) 2022-12-28 2025-09-22 주식회사 레인보우브레인 온라인 마켓 상에서의 판매 정보 수집 시스템 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4267336B2 (ja) * 2003-01-30 2009-05-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 構造パターン候補を生成する方法、システムおよびプログラム
JP2007047974A (ja) * 2005-08-09 2007-02-22 Hokkaido Univ 情報抽出装置および情報抽出方法
JP4593580B2 (ja) * 2007-03-05 2010-12-08 株式会社エヌジェーケー Xmlデータ用操作ボタンの生成方法

Also Published As

Publication number Publication date
JP2012014412A (ja) 2012-01-19

Similar Documents

Publication Publication Date Title
JP4437500B2 (ja) データをタグ情報に対応付けて管理する技術
JP5497022B2 (ja) 入力文字列からのリソースロケータの提案
JP5469244B2 (ja) 選択的なコンテンツ抽出
JP6462970B1 (ja) 分類装置、分類方法、生成方法、分類プログラム及び生成プログラム
US20130339840A1 (en) System and method for logical chunking and restructuring websites
TW201514845A (zh) 從網頁擷取標題及主體
JP2015225371A (ja) 関連ノードを探索する方法、並びに、そのコンピュータ、及びコンピュータ・プログラム
TWI433028B (zh) 顯示螢幕上促進物件選擇之方法、裝置及程式
JP5989170B2 (ja) 代表者の信頼度を用いた検索結果順位化装置および方法
RU2562397C2 (ru) Способ и устройство для добавления адреса гиперссылки в закладку
JP5225331B2 (ja) データ抽出装置及び方法
JP5056133B2 (ja) 情報抽出システム、情報抽出方法および情報抽出用プログラム
US9875298B2 (en) Automatic generation of a search query
JP2009086944A (ja) 情報処理装置および情報処理プログラム
JP5881937B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP5196569B2 (ja) コンテンツ検索装置、コンテンツ検索方法及びプログラム
JP2016045552A (ja) 特徴抽出プログラム、特徴抽出方法、および特徴抽出装置
JP2010117941A (ja) Web文書主要コンテンツ抽出装置及びプログラム
KR100907709B1 (ko) 블록 그룹핑을 이용한 정보 추출 장치 및 그 방법
JP2020091607A (ja) 検索システム、及び検索方法
JP6696119B2 (ja) 変換装置、変換方法、及び変換プログラム
KR101421819B1 (ko) 온라인 환경에서의 벌룬을 이용한 키워드 검색 결과 제공 방법
JP5068356B2 (ja) ブログ本文特定装置及びブログ本文特定方法
CN115203605A (zh) 网页主内容列表识别方法和装置
JP6707410B2 (ja) 文献検索装置、文献検索方法およびコンピュータプログラム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120312

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130312

R150 Certificate of patent or registration of utility model

Ref document number: 5225331

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160322

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250