(58)【調査した分野】(Int.Cl.,DB名)
前記ルートノードが探し出されるまで1つまたは複数のさらなるノードを探すために、前記ターゲットノードから開始して、前記サンプルページの前記第1のDOM構造の相対位置情報を再帰的にトラバースすることは、
前記ターゲットノードを現在のノードとしてレンダリングすることと、
前記現在のノードの最近傍のノードの相対位置情報をトラバースすることであって、前記相対位置情報は、事前に取得されたことと、
前記相対位置情報から、相対位置iに対応するBiノードを選択し、前記Biノードが前記ルートノードであるかを判定することと、
前記Biノードが前記ルートノードであるという判定に応じて、前記ターゲットノードから前記Biノードまでのパスをパスリストに追加することと、
前記Biノードが前記ルートノードではないという判定に応じて、前記Biノードを前記現在のノードとして使用し、前記ルートノードが探し出されるまで別のノードを再帰的に探し出し、そのパスを前記パスリストに追加することと、
前記パスリスト内のパスを前記パスセットとしてレンダリングすることと、
を含む、請求項1に記載の方法。
前記ルートノードが探し出されるまで1つまたは複数のさらなるノードを探すために、前記ターゲットノードから開始して、前記サンプルページの前記第1のDOM構造の相対位置情報を再帰的にトラバースすることは、
前記ターゲットノードを現在のノードとしてレンダリングすることと、
前記現在のノードの最近傍のノードの相対位置情報をトラバースすることであって、前記相対位置情報は、事前に取得されたことと、
前記相対位置情報から、相対位置iに対応するBiノードを選択し、前記Biノードが前記ルートノードであるかを判定することと、
前記Biノードが前記ルートノードであるという判定に応じて、前記ターゲットノードから前記Biノードまでのパスをパスリストに追加することと、
前記Biノードが前記ルートノードではないという判定に応じて、
信頼性判定のルールに従ってスコア減点の条件を判定し、
前記スコア減点が設定閾値以下である場合、前記Biノードを前記現在のノードとして使用し、前記ルートノードが探し出されるまで別のノードを再帰的に探し続け、そのパスを前記パスリストに追加し、
前記スコア減点が前記閾値を超える場合、前記再帰的にトラバースすることを停止して現在のパス上での検索を実行することと、
前記パスリスト内で最小のスコア減点を有する最初のNパスを前記パスセットとして記憶することと、
を含む、請求項1に記載の方法。
前記ルートノードが探し出されるまで1つまたは複数のさらなるノードを探すために、前記ターゲットノードから開始して、前記サンプルページの前記第1のDOM構造の相対位置情報を再帰的にトラバースすることは、
前記ターゲットノードを現在のノードとしてレンダリングすることと、
前記現在のノードの最近傍の相対位置情報をトラバースすることであって、前記相対位置情報は、事前に取得されたことと、
前記相対位置情報から、相対位置iに対応するBiノードを選択し、前記Biノードが前記ルートノードであるかを判定することと、
前記Biノードが前記ルートノードであるという判定に応じて、前記ターゲットノードから前記Biノードまでのパスをパスリストに追加することと
前記Biノードが前記ルートノードではないという判定に応じて、前記Biノードを前記現在のノードとして使用し、前記ルートノードが探し出されるまで別のノードを再帰的に探し続け、そのパスを前記パスリストに追加することと、
信頼性判定のルールに従って、スコア減点を前記パスリスト内にあるすべてのパスに対して行うことと、
個々のパスの合計スコア減点が閾値を超えないという判定に応じて、前記個々のパスに関連する結果を保持することと、
前記パスリスト内で最小のスコア減点を有する最初のNパスを前記パスセットとして記憶することと、
を含む、請求項1に記載の方法。
前記ノード候補セットから前記第2のノードを選択することは、前記パスセットの1つまたは複数のパスの中で最も高いスコアを有するパスに対応するノードを選択することを含む、請求項5に記載の方法。
前記信頼性判定のルールは、前記相対位置情報の少なくとも1つに関連するルール、ノードの総数に関連するルール、またはシフト位置情報に関連するルールを含む、請求項5に記載の方法。
前記繰り返し構造を有する前記兄弟ノードの前記シフト情報を用いて、前記繰り返し構造を有する複数のパスを、前記サンプルページの前記第1のDOM構造から抽出することをさらに含み、前記ノード候補セットは、前記抽出された複数のパスに少なくとも部分的に基づいて判定される、請求項11に記載の方法。
前記メモリに記憶され、前記1つまたは複数のプロセッサによって実行可能であり、前記取得されたパスセット内の兄弟ノードのパス情報に基づいて前記パスセット中の前記兄弟ノード間のパス類似性を算出する、繰り返し構造認識ユニットをさらに備える、請求項15に記載のシステム。
1つまたは複数のプロセッサによって実行されるときに、行為を行うように前記1つまたは複数のプロセッサを設定する実行可能な命令を記憶する1つまたは複数のコンピュータ可読媒体であって、前記行為が、
サンプルページの第1の文書オブジェクトモデル(DOM)構造から抽出される情報の位置を取得することと、
前記サンプルページの前記第1のDOM構造内に抽出される前記情報の前記位置に対応する第1のノードをターゲットノードとしてレンダリングすることと、
ルートノードが探し出されるまで1つまたは複数のさらなるノードを探すために、前記ターゲットノードから開始して、前記サンプルページの前記第1のDOM構造の相対位置情報を再帰的にトラバースすることによって前記ターゲットノードから前記ルートノードまでの複数の候補パスを判定することと、
前記複数の候補パスをパスセットとしてレンダリングすることと、
前記パスセットに少なくとも部分的に基づいて、ウェブページの第2のDOM構造から抽出される情報を配置することと、
前記ウェブページの前記第2のDOM構造から抽出される前記情報を前記配置することに少なくとも部分的に基づいて、ノード候補セットを決定することと、
前記ノード候補セットから第2のノードを選択することと、
前記第2のノードを用いて前記ウェブページの前記第2のDOM構造から情報を取得することと、
を含む、1つ以上のコンピュータ可読媒体。
【発明を実施するための形態】
【0034】
本開示は、ウェブページ情報を抽出する方法を開示する。当業者が本開示における技術スキームを理解するために、例示的な実施形態の技術スキームは、例示的な実施形態の添付の図を用いてより明確かつ完全に説明される。本明細書に記載の例示的な実施形態は、本開示の例示的な実施形態すべてではなく一部のみを構成する。本開示の例示的な実施形態に基づいて、当業者であれば、依然として本開示の範囲内であるすべての他の例示的な実施形態を得ることができる。
【0035】
ウェブページは、その重要な情報が通常バックエンドデータベースに記憶され、固定ページテンプレートでユーザに提示される半構造化された文書である。ウェブページ情報を抽出する一般的なプロセスは、抽出されるコンテンツの位置情報をサンプルページから取得することと、それと同一のテンプレートを用いたウェブページのデータセットの場合、位置情報を用いてコンテンツ抽出を実行することと、を含む。位置情報の正確さは、ウェブページ情報抽出の質を直接決定する。現行の科学技術において、XPATH(XPATHとは、XML文書内の情報を探し出すための言語であり、XPATHは、パス表現を用いてXML文書内のノードまたはノードセットを選択する)を自動的に生成して、ウェブページ情報の抽出を行う方法が存在する。XPATHを自動的に生成する方法は、ユーザがウェブページからの抽出のためにコンテンツを選択することと、プロセスがDOM構造内に抽出されたコンテンツの位置を記録することと、DOMルートノードからレベル毎にターゲットノードまでのタグ名情報およびシフト情報のみを含むXPATHパスを自動的に生成することと、XPATHを用いて抽出されるウェブページのセットから情報を取得することとを含む。自動的に生成されたXPATHは、概して、タグ名およびシフトの情報のみを記録し、位置決め情報を過度に単純化するため、絶え間なく変わるウェブページ構造についていくことができない。さらに、ウェブページのコンテンツが更新された後、コンテンツの配置失敗または抽出を目的としないコンテンツの配置等の問題は、XPATHパス上の要素が変更された後に生じる。同時に、XPATHの記録された情報が過度に単純化されるため、XPATHを用いて、繰り返し構造の識別問題を解決することができず、繰り返し構造の識別および抽出を実行するためにさらなる算出を要求する。
【0036】
上述のことを考慮して、本開示は、ウェブページ情報を抽出する方法を提供する。本開示によって提供される技術的提案において、サンプルページのパスセットが取得されるとき、逆位置決め方法は、ターゲットノードからルートノードまでの複数のパスを取得するために使用される。その後、複数のパスを位置決めする方法は、複数のパスによって形成されるパスセットに基づいて抽出されるページの情報を配置するために使用される。したがって、抽出されるページの情報を配置するために複数のパスが取得されるため、ページ情報が修正され、構造が変更された場合でも、抽出されるコンテンツを良好なロバスト性で正確に配置することができるが、但し、ページが実質的に再構築されていないことを条件とする。
【0037】
図1は、本開示の実施形態に従う方法のフローチャートである。本開示のウェブページ情報を抽出する方法は、添付の図と併せて以下で説明される。
【0038】
ウェブページ情報を抽出する方法は、以下の手順を含む。
【0039】
S101は、サンプルページのDOM構造を分析し、DOM構造内の抽出される情報の位置を取得する。
【0040】
S102は、DOM構造内の抽出される情報の位置に対応するノードをターゲットノードとしてレンダリングし、ターゲットノードから開始して、事前に取得された相対位置情報をトラバースしてノードを取得して、該ノードがルートノードであるかを判定し、そうでない場合、ルートノードが探し出されるまで別のノードを再帰的に探し続けて候補パスを作成し、ターゲットノードからルートノードまでの取得された候補パスをパスセットとしてレンダリングする。
【0041】
S103は、抽出されるページのDOM構造を分析し、パスセット内のルートノードから開始するパスを用いて抽出されるページのDOM構造内に抽出される情報を配置し、抽出されるページのDOM構造内の抽出される情報の位置に対応するノードを抽出されたノード候補セットとして取得する。
【0042】
S104は、最も高いロバスト性を有するノードを抽出されたノード候補セットから選択して、最後に抽出されたノードとし、抽出されたノードを用いて抽出された情報を取得する。
【実施例1】
【0043】
本開示によって提供される技術的提案において、我々は、最初に、サンプルページ内に抽出される情報の位置情報、すなわち、ターゲットノードの位置情報を取得し、ターゲットノードの位置情報を用いてターゲットノードからルートノードまでの複数のパスを取得する必要があり、ここで逆位置決め方法が使用される。サンプルページは、通常、ユーザによって提供され、抽出されるウェブページと同一のウェブページテンプレートを用いるウェブページである。該方法の考えられる実行は、抽出されることが所望される情報に基づいてユーザにウェブアドレスを入力させ、関連したウェブページをサンプルページとしてダウンロードさせることである。サンプルページは、異なるウェブサイトからダウンロードされてもよい。したがって、抽出されるウェブページは、この場合、サンプルページと同一のテンプレートを有するウェブページのセットに相当する。他の方法は、サンプルページを取得するために使用されてもよく、本開示によって限定されるものではない。
【0044】
現行の科学技術において、ユーザは、抽出されるサンプルページ内の情報を選択し、プロセスは、DOM構造内の抽出される情報の位置を記録し、バックエンドは、ルートノードからレベル毎にターゲットノードまでのパスを自動的に生成する。それらのノードのいずれかに変更が生じた場合、コンテンツの配置失敗の問題が生じ得る。本開示によって提供される技術的提案は、最近傍の相対位置情報を用いて複数のパスを取得し、抽出されるページのルートノードから開始する複数のパスを用いてターゲットノード、すなわち、抽出されるコンテンツを探し出す。
【0045】
図2を参照して、
図2は、本開示の第1の実施形態に従う方法を説明するフローチャートであり、図と併せて以下で説明される。
【0046】
S201は、サンプルページから抽出される情報を選択する。
【0047】
抽出される情報は、ユーザが目的とする情報であり、ウェブページ情報抽出に関して、ユーザがウェブページ情報抽出を介して抽出することを所望する情報の種類に相当する。抽出される情報は、概して、ユーザによって定義および提供される。本開示によって提供される実施形態において、ユーザは、抽出される情報を対話型インタフェースを介してサンプルページから選択することができる。この時に、ユーザは、ライン選択またはフレーム選択を用いてサンプルページ内に抽出される情報を示すことができる。ユーザによって示されるサンプルページ内に抽出される情報が「履歴およびソース」である場合、ユーザは、ラインまたはフレーム選択を用いて抽出される情報を選択することができる。
【0048】
S202は、サンプルページのDOM構造を分析し、DOMツリーを構築し、DOM構造内の抽出される情報の位置を取得し、ターゲットノードの位置情報を取得する。
【0049】
DOM(文書オブジェクトモデル)は、
【0050】
【0051】
と呼ばれる中国名を有する。DOMは、オブジェクト管理グループ(OMG)の規格に基づいて設計され、オブジェクト指向様式で文書モデルを説明する。DOMは、文書を表し、かつ修正するために必要とされるオブジェクト、これらのオブジェクトの挙動および属性、ならび にこれらのオブジェクト間の関係を定義する。DOMは、ノードの層によって形成される文書上に全ウェブページをマッピングする。すべてのDOM構造は、1つのルートノードのみを有し、それぞれのHTMLタグがツリー上でノードを表すツリー構造である。
【0052】
表1は、DOM構造の簡単な例を示す。
[表1]
<html>
<head>
<body id=“view”>
<div id=“usrbar”>
<div id=“wrap”>
<div id=“header”>
<div id=“page”>
<div id=“content-wrap”class=“layout grid-m0s245 w1000”>
<div id=“content”class=“col-main article”>
<div class=“main-wrap main-shadow”>
<div class=“content-hd”>
<div class=“content-bd main-body”>
<div class=“text”>
<span class=“editable-lemma”data-edit-id=“page94238”></span>
<h1 class=“title”>regular expression<h1>
<script>
<script type=“text/javascript”>
<div class=“clear”> </div>
<style type=“text/css”>
<div class=“mod-top”>
<fieldset id=“catalog-0”class=“text_dir nslog-area”>
<div class=“clear”></div>
<script type=“test/javascript”>
<div id=“lemmacontent-0 ”class=“lemma-main-content”>
<h2 class=“headline-1 first bk-sidecatalog-title”>
<span class=“text_edit editable-title”data-edit>
<a class=“nslog:1019” onclich=“bk.view.edit.Le”>
< /span/>
<a name=“1”></a>
<span class=“headline-content”>history and source</span>
</h2>
【0053】
DOM文書内の抽出される情報の位置、「履歴およびソース」は、以下である:
<span class=“headline−content”>history and source</span>
【0054】
このような方法で、DOM内の抽出される情報の位置情報、すなわち、ターゲットノードの位置情報が取得される。
【0055】
S203は、サンプルページのDOM構造をトラバースして、それぞれのノードに関連するテキストおよびスタイル属性の情報を取得する。ノードのテキストおよびスタイル情報は、主に、ノードの相対位置情報定義の準備のために取得される。本開示によって提供される技術的提案において、ターゲットノードからルートノードまでのすべてのパスは、相対位置情報を用いて取得される。相対位置情報に基づいて、ターゲットノードからルートノードまでの複数のパスが探し出される。
【0056】
我々は、以下のようにノードの情報を導入する。ノードの情報は、主に、以下のものを含む:
(1)HTMLタグ名
<span class=“headline−content”>history and source</span>において、関連したタグ名は「span」である。
(2)テキストコンテンツ
例えば、<span>price:</span>
<strong id=“J−StrPrice”>719.0</strong>
この中で、「price」は、ノードのテキスト情報である。
(3)タグスタイルID(識別子)
例えば、<span>price:</span>
<strong id=“J−StrPrice”>719.0</strong>
記録された価格に対するタグ「strong」のIDは、J_StrPriceである。
(4)タグスタイルクラス(カテゴリー)
<span class=“headline−content”>history and source</span>
タグ「span」のクラスは、class=headline−contentである。
(5)他のスタイル属性は、主に、名称、src、href、alt等を含む。
【0057】
S204は、テキストおよびスタイル情報を用いてそれぞれのノードの最近接の相対位置情報を取得する。
【0058】
本開示によって提供される実施形態において、最近接の相対位置情報を、2つの主なクラスに分けることができる。
【0059】
1つのクラスは、ターゲットノードと兄弟、親、または子関係を有するノードの情報に相当し、同一の親ノードに直接接続するノードは、兄弟ノードと呼ばれる。
【0060】
説明用の例として、Aは、ターゲットノードであり、Bは、Aに隣接したノードである。ノードAとノードBとの間のノード層関係に基づいて、ノードAと以下の関係を有するノードBを、最近傍と定義することができる:BがAの左側の兄弟であり、BがAの右側の兄弟であり、BがAの親であり、BがAの子である。それに対応して、ノードBの位置情報は、最近傍の相対位置情報と称され得る。
【0061】
もう1つのクラスは、ターゲットノードと直接層関係を有し、かつテキストおよびスタイル属性を有するノードを指す。直接層関係は、本明細書において、BがAの親、子、または子孫であると定義される。説明用の例を用いる。Aは、ターゲットノードである。Bは、Aの子孫ノードであり、スタイルIDをXXXとして有するノードである。ここで、ノードBの位置情報は、最近傍の相対位置情報と称され得る。同様に、Aの子孫ノードであり、かつスタイルクラスをXXXとして有するノードB、Aの子孫ノードであり、かつテキストをXXXとして有するノードB、ならびAの子ノードであり、かつタグをXXXとして有するノードBはすべて、最近傍の相対位置情報と定義されてもよい。ここで、Bは、Aと直接層関係を有するノードであり、例えば、Bは、Aの親、子、または子孫ノード等である。その一方で、ウェブページの構造内で、スタイルをIDまたはクラスとして有するノードは、特別な種類のノードであり、特別な意味を有するノードである。これらのノードは、ウェブページの構造の重要な要素である。したがって、本開示の実施形態において、最近傍の相対位置情報を定義するとき、ターゲットノードと直接層関係を有し、かつIDまたはクラス等のスタイル属性を有するノードは、最隣接ノードとしても定義される。具体的には、注目を集めるべき他の重要な属性を、実際のニーズに基づいて定義することもできる。本開示は、それを限定しない。
【0062】
図3は、本開示の第1の実施形態に従うDOM構造の概略図である。図中の接続線は、親子関係のみを識別し、同一の親と直接接続したノードは、兄弟ノードと呼ばれる。それぞれのノードのテキストおよびスタイル情報は、次の表に表される。
【0063】
【表1】
【0064】
図3において、「ルート」として表されるノードは、ルートノードであり、ノードDの最近傍の位置情報を、以下のように説明することができる。
(1)ターゲットノードと兄弟、親、または子関係を有するノードの情報。
Dは、Eの左側の兄弟である。
Dは、Bの子である。
Dは、Bの第1の子である。
Fは、Dの第1の子ノードである。
(2)ターゲットノードと直接層関係を有し、かつテキストまたはスタイル属性を有するノードの位置情報。
Dは、divのタグを有するBの第1の子ノードである。
Dは、abcのスタイルIDを有するBの第1の子孫ノードである。
Dは、abcのスタイルを有するルートの第1の子孫ノードである。
Dは、div−topのクラスを有するBの第1の子孫ノードである。
Dは、div−topのクラスを有するルートの第1の子孫ノードである。
Fは、aのタグを有するDの第1の子ノードである。
Fは、「google」のテキストを有するDの第1の子孫ノードである。
Fは、www.google.comのsrc属性を有するDの第1の子孫ノードである。
【0065】
それぞれのノードの最近傍の相対位置情報を取得することにより、ターゲットノードからルートノードまでのパスを、相対位置情報に基づいて探し出すことができる。
【0066】
AおよびBが2つのノードを表し、かつBがAに最隣接した位置を有するノードである表3の描写は、最近傍に関連するある特定の相対位置情報の一例である。
【0067】
[表3]
Aは、Bの左側の兄弟である。
Aは、Bの右側の兄弟である。
Aは、Bの親である(第1層より上)。
Aは、Bのn番目の子ノードである(子は、親の下の第1の層に限定されると定義される)。
Aは、XXXのタグを有するBの子のn番目のノードである(一般的)。
Aは、XXXのスタイルidを有するBの子孫間のn番目のノード(ノードB下のフォレストの全ノードセット)である。
Aは、XXXのスタイルクラスを有するBの子孫間のn番目のノードである。
Aは、XXXのテキストを有するBの子孫間のn番目のノードである。
Aは、yのスタイル属性の値xを有するBの子孫間のn番目のノードである。
Bは、Aのn番目の子ノードである。
Bは、XXXのタグを有するAの子のn番目のノードである。
Bは、XXXのスタイルIDを有するAの子孫間のn番目のノードである。
Bは、XXXのスタイルクラスを有するAの子孫間のn番目のノードである。
Bは、XXXのテキストを有するAの子孫間のn番目のノードである。
Bは、yのスタイル属性の値xを有するAの子孫間のn番目のノードである。
【0068】
「AがXXXのテキストを有するBの子孫間のn番目のノードである」という相対位置情報を定義するとき、S203で取得された関連したノードのテキスト情報が使用される。
【0069】
「BがXXXのスタイルidを有するAの子孫間のn番目のノードである」という相対位置情報を定義するとき、S203で取得された関連したノードのタグスタイルID情報が使用される。
【0070】
「BがXXXのスタイルクラスを有するAの子孫間のn番目のノードである」という相対位置情報を定義するとき、S203で取得された関連したノードのタグスタイルクラス情報が使用される。
【0071】
S205は、先に取得されたノードの位置情報を使用し、ターゲットノードから開始して、ターゲットノードからルートノードまでのすべてのパスをパスセットとして探し出す。
【0072】
S202で取得されるDOM構造内の抽出される情報の位置に対応するノードは、ターゲットノードとしてレンダリングされる。ターゲットノードから開始して、先に取得された相対位置情報がトラバースされてノードを取得し、ノードがルートノードであるかの判定が下される。そうでない場合、ルートノードが探し出されるまで別のノードが再帰的に探し出され、候補パスを形成する。ターゲットノードからルートノードまでの取得されたすべての候補パスは、パスセットを形成する。
【0073】
図4は、本開示の第1の実施形態に従うパス選択のチャートである。プロセスの詳細は、図と併せて以下で説明される。
【0074】
S251は、ターゲットノードから開始して、ターゲットノードを現在のノードとして設定する。
【0075】
S252は、現在のノードの最近傍の先に取得された相対位置情報をトラバースし、それから相対位置iに対応するノードBiを選択して、Biがルートノードであるかを判定する。
【0076】
Biがルートノードであると判定された場合、S253は、関連したパスをパスリストに追加し、そうでない場合、Biを現在のノードとして使用し、ルートノードが探し出されるまで別のノードを再帰的に探し続け、そのパスをパスリストに追加する。
【0077】
S254は、パスリスト内のパスをパスセットとしてレンダリングする。
【0078】
本開示のパス選択方法の例は、
図3および先に定義された相対位置と併せて以下で説明される。
【0079】
本開示の実施形態において、我々は、ノードの最近傍の相対位置情報を使用し、ターゲットノードから開始して、ターゲットノードからルートノードまでのパスをパスセットとして探し出し、レンダリングする。この場合、ターゲットノードからルートノードまでの探し出されたパスは、ターゲットノードからルートノードまで層毎に上に進むパスだけではなく、ホッピングパスでもある。
図3に示されるように、「ルート」ノードは、ルートノードであり、ターゲットノードは、Dである。ノードBは、ターゲットノードDの親ノードと定義され、ノードEは、Dの右側の兄弟であり、ノードFは、ノードDの第1の子ノードである。したがって、我々は、ターゲットノードDからルートノードまでの少なくとも4つのパスを探し出すことができる。
(1)ターゲットノードDからノードB、その後ルートノードまでのパス。
(2)ターゲットノードDからノードE、ノードB、その後ルートノードまでのパス。
(3)ターゲットノードDからノードB、ノードA、その後ルートノードまでのパス。
(4)Dの相対位置情報の1つが「Dは、abcのスタイルを有するルートの第1の子孫ノードである」と説明される場合、ターゲットノードDからルートノードまでの直接パスを探し出すことができる。
【0080】
上記のパスにおいて、第1のパスを、ターゲットノードからルートノードまでの層毎に上に進むパスと見なすことができる。
【0081】
第2のパスは、「DはEの左側の兄弟である」および「BはEの親である」という相対位置情報を使用して、ターゲットノードDからノードE、ノードB、その後ルートノードまでのパスを探し出す。
【0082】
第3のパスは、「DはBの第1の子である」および「AはBの右側の兄弟である」という相対位置情報を使用して、ターゲットノードDからノードB、ノードA、その後ルートノードまでのパスを探し出す。
【0083】
第4のパスは、「Dはabcのスタイルを有するルートの第1の子孫ノードである」という相対位置情報を使用して、ターゲットノードDからルートノードまでの直接パスを探し出す。パスセットを用いて抽出されるページのターゲットノードを探し出すとき、このパスを用いて、ターゲットノードをルートノードから取得することができる。
【0084】
パスリスト内の上記のパスは、パスセットとしてレンダリングされる。上記のパスのうち、第1のパスのみが、ターゲットノードからルートノードまでの層毎に上に進むパスである。他のパスは、相対位置情報およびホッピングを用いるパスである。ウェブページのコンテンツまたは構造に任意の変更が生じた場合、ターゲットノードをこれらの複数のパスに基づいて引き続き配置することができる。
【0085】
S206は、抽出されるページのDOM構造を分析する。
【0086】
抽出されるウェブページは、サンプルページと同一のウェブページテンプレートを有するページのセットに相当する。本開示によって提供される実施形態において、抽出されるページを、ネットワーククローラツールを用いて取得することができる。ネットワーククローラ(ウェブページスパイダー、ネットワークアンドロイドとも呼ばれる)は、ある特定の基準に従ってワールドワイドウェブ上で情報を自動的にクロールするプロセスまたはスクリプトである。概して、ネットワーククローラは、検索エンジンのためにワールドワイドウェブからページをダウンロードする自動ウェブページ抽出プロセスであり、検索エンジンの重要な要素である。抽出されるページを取得するとき、我々は、ネットワーククローラツールを用いてページを取得することができる。抽出される全ページのDOM構造を取得するために、抽出されるページのDOMツリーが作成される。
【0087】
S207は、パスセット内のルートノードから開始するパスを用いて抽出されるページのDOM構造内の抽出される情報の位置を配置し、抽出されるページのDOM構造内の抽出される情報の位置に対応するノードを抽出されたノード候補セットとして取得する。
【0088】
図5は、本開示の実施形態に従うパスセットを用いて抽出されるページの抽出されたノード候補セットを取得する概略図である。
図5で示されるように、パスは、インタプリタを用いてDOM内のポインティング要素の位置を配置することができる。したがって、S205で取得されたパスセットを用いて、抽出されるページの抽出されたノード候補セットを取得することができる。本明細書で使用される方法は、パスセット内の複数のパスを用いて、抽出されるページのコンテンツを配置すること、すなわち、ルートノードから開始して、抽出されるコンテンツであるターゲットノードを探し出すことである。
【0089】
微妙な違いがページ構造内に存在し得るため、パスは、抽出されるページ内の要素、例えば、
図5のAおよびBを配置するときに、異なるノードを指してもよい。図中でヌルで表される無効な位置決め等の無効な位置決めは、ページ構造の違いが原因で生じる場合もある。例えば、ページコンテンツまたはページ構造が更新されるとき、ルートノードからターゲットノードまでのパス内のある特定のノードを変更することができる。XPATHを自動的に生成する方法、すなわち、ルートノードからターゲットノードまでの層毎に上に進むパスを用いる方法が使用される場合、コンテンツを配置することができない場合がある。その一方で、相対位置情報を用いて複数のパスを取得するため、抽出されるページの要素がパスセットを用いてインタプリタによって配置されるときに、複数の異なるノードを配置することができる。
【0090】
S208は、最もロバストなノードを抽出されたノード候補セットから最後に抽出されたノードとして選択し、抽出されたノードを用いて情報を抽出する。
【0091】
本開示の実施形態において、最後に抽出されたノードを選択するとき、最もロバストなノードが最後に抽出されたノードとして選択される。最もロバストなノードは、最も正確かつロバストに位置決めされるノードセット内のノードに相当する。最もロバストなノードを選択するとき、信頼性判定のルールが使用される。具体的には、信頼性判定のルールに従って、抽出されたノード候補セット内の抽出された候補ノードに応答するパスに関連するスコアが算出され、最も高いスコアを有するパスに対応するノードは、最後の抽出されるノードとして選択される。最もロバストなノードの選択は、本開示において提供される例示の方法に限定されない。他の算出方法を用いて、最もロバストなノードを選択することができる。
【0092】
ここで、信頼性判定のルールが使用される。信頼性判定のルールは、重要性および安定性の違いに基づいて、異なる相対位置情報、パス長、およびシフト位置情報を有するノードの信頼性を判定する。我々は、信頼性判定のルールを以下のように定義する。
【0093】
(1)相対位置情報に関連するルール
完全なパスは、一連の相対位置情報から構成されており、相対位置情報の種類によって信頼性判定のルールは異なる。
【0094】
表4は、それぞれの信頼性に従う相対位置情報の降順を示す。
【0095】
【表2】
【0096】
表4は、それぞれの信頼性に従う相対位置情報の降順を示す。我々は、相対位置情報の信頼性を判定する2つの主な基準を有し、1つは、特徴的なタグの重要性の程度であり、もう1つは、それが変更される可能性である。具体的には、ウェブページ構造において、スタイルIDおよびスタイルクラスのマーカーを有するノードは、多くの場合、特別な種類のノードであり、ウェブページ情報抽出における使用に非常に好適である。さらに、これらの種類のノードは、多くの場合、ウェブページ構造が変更されるときにほとんど変更されず、安定した信頼性のあるノードである。したがって、我々は、上に列記されるそれらの信頼性を有することができる。src属性、href属性、またはalt属性を有するノードは、多くの場合、リンクに相当する。これらの種類のノードは、全体のウェブページ構造において一意性を有する場合が多い。それらの対応するコンテンツが、多くの場合、より重要または有意である一方で、変更される可能性は比較的低い。したがって、これらは、我々がパス選択を行うときにかなりの注目を集めるノードである。テキスト情報を有するノードは、多くの場合、我々が目的とする情報を直接探し出すのに役立ち、例えば、「価格」情報を有するノードは、我々が価格に関連する情報を抽出するときに目的とする情報を迅速に探し出すのに役立つ。この表において、ターゲットノードから親ノードまでの関係が1対1である一方で、ターゲットノードから子ノード(複数を含む)までの関係が多数対1であり得、したがって、より低い信頼性を有するため、親ノードは子ノードよりも信頼性が高い。
【0097】
(2)ノードの総数に関連するルール
パスの信頼性は、パス内を通過するノードの総数に基づいて判定される。通過するノードの数が多いほど、パスは長く、信頼性は低く、ロバスト性は低い。これは、ノードの総数が増加するにつれてパスの長さが長くなるためである。それらのノードのうちのいずれか1つの情報が変更される場合、ターゲットノードの不正確な位置決めが生じ得る。ノードの数が増加するにつれて、この種の危険性が増加し、したがって、信頼性が低下する。
【0098】
(3)シフト位置情報に関連するルール
ノードの位置情報を説明するとき、我々は、以下のように表現する:AはBのn番目の子ノードであり、Aは***のスタイルIDを有するn番目の子孫ノードである。ここで、シフト位置は、位置情報のシフト数(序数等)またはシフトの総数(合計数)を指す。シフト数が多いほど、シフトの総数は多く、信頼性は低い。これは、シフト位置がノード間の関係の親密さの程度を反映するためである。より大きいシフト位置は、ノード間の関係の親密性がより低く、したがって、信頼性が比較的低いことを示す。
【0099】
我々は、上記の信頼性判定のルールを用いてパスの信頼性およびロバスト性を判定し、パスの信頼性およびロバスト性を判定することによって、最も高いロバスト性を有するノードを最後に抽出されたノードとして選択する。ここで、我々は、信頼性判定のルールに従ってパスのスコアを提供し、より高い信頼性を有するパスにより高いスコアを与える。上記の3種類の信頼性判定ルールを、個別に、または組み合わせて使用することができる。判定が3種類のルールの組み合わせを用いて行われる場合、その結果は、より正確なものとなる。
【0100】
例えば、それぞれのパスに100の合計スコアを有しさせ、3つのパスをステップS208で取得された抽出されたノード候補セット内に取得させ、2つのパスがノードAを通過し、1つのパスがノードBを通過する。ノードAを通過するパスに対して減点されたスコアが、それぞれ、70および80である場合、ノードAの合計スコアは、(100−70)+(100−80)=50である。ノードBを通過するパスに対して減点されたスコアが10である場合、ノードBの合計スコアは、100−10=90である。したがって、最も高いスコアを有する抽出結果は、ノードBを指すパスである。その結果、最終的に抽出されるノードは、Bである。
【0101】
S209は、最後に抽出されたノードに対応するパスに関連する重みを設定閾値と比較し、関連した抽出が成功したかを判定する。
【0102】
本開示の実施形態において、最後に抽出されたノードの「合計ノードスコア」を「全てのパスの合計スコア」で割った後に得られた結果が設定閾値と比較され、関連した抽出が成功したかを判定する。得られた結果が設定閾値を超える場合、抽出が失敗したと判定される。得られた結果が設定閾値以下である場合、抽出が成功したと判定される。
【実施例2】
【0103】
本開示の好ましい実施形態において、ターゲットノードからルートノードまでのすべてのパスをパスセットとして取得するとき、信頼性判定のルールを用いて、最小のスコア減点を有するターゲットノードからルートノードまでの最初のNパスをパスセットとして探し出す。ロバスト性が高いほど、スコア減点は小さい。このようにして、取得されたパスは、もはやターゲットノードからルートノードまでのすべてのパスではないが、最小のスコア減点を有するパスセット内の好ましいパスである。
【0104】
本開示の第2の実施形態は、添付の図と併せて以下で説明される。
図6は、第2の例示の方法の概略図である。
【0105】
S601は、抽出される情報をサンプルページから選択する。
【0106】
S602は、サンプルページのDOM構造を分析し、DOM構造を作成し、DOM構造内の抽出される情報の位置を取得する。
【0107】
S603は、サンプルページのDOM構造をトラバースして、それぞれのノードのテキストおよびスタイル属性情報を取得する。
【0108】
S604は、S603で取得されたテキストおよびスタイル属性情報を用いて、それぞれのノードの最近傍の相対位置情報を取得する。
【0109】
S605は、相対位置情報を利用し、ターゲットノードからルートノードまでのパスを探し出す(これは、ターゲットノードから開始する)ときに、信頼性判定のルールに従ってパスのスコア減点を行い、最小のスコア減点を有する最初のNパスをパスセットとしてレンダリングする。
【0110】
ターゲットノードは、DOM構造内に抽出される情報の位置に対応するノードに相当する。パスは、一連の相対位置情報と定義される。ノードは、S604で取得された位置情報をトラバースすることによって選択される。全体のパススコア減点が算出される。閾値を超える場合、その伝播は停止される。さもなければ、次のノードがルートノードになるまで、次のノードは再帰的に探し出される。
【0111】
図7は、本開示の第2の実施形態に従うパス選択を説明するチャートである。具体的なプロセスは、添付の図と併せて以下で説明される。
【0112】
S651は、ターゲットノードから開始して、ターゲットノードを現在のノードとして設定する。
【0113】
S652は、S604で取得された現在のノードの最近傍の先に取得された相対位置情報をトラバースし、それから相対位置iに対応するノードBiを選択して、Biがルートノードであるかを判定する。
【0114】
S653は、Biがルートノードであると判定された場合、関連したパスをパスリストに追加し、そうでない場合、S654に進む。
【0115】
S654は、信頼性判定のルールに従ってスコア減点の条件を算出および判定し、スコア減点が閾値以下である場合、Biを現在のノードとして設定してS652に進み、スコア減点が閾値を超える場合、伝播を停止する。
【0116】
S655は、パスリスト内で最小のスコア減点を有する最初のNパスをパスセットとしてレンダリングする。
【0117】
S654で、現在のパスのスコア減点の条件を算出および判定するときに、信頼性判定のルールは、以下のように設計される。
【0118】
(1)位置情報のルール
完全なパスは、一連の相対位置情報から構成されており、相対位置情報の種類によって信頼性判定のルールは異なる。
【0119】
表5は、それぞれの信頼性に従う相対位置情報の降順を示す。
【0120】
【表3】
【0121】
表5は、それぞれの信頼性に従う相対位置情報の降順を示す。第1の実施形態において説明されるように、我々は、相対位置情報の信頼性を判定する2つの主な基準を有し、1つは、特徴的なタグの重要性の程度であり、もう1つは、それが変更される可能性である。
【0122】
(2)ノードの総数に関連するルール
パスの信頼性は、パス内を通過するノードの総数に基づいて判定される。通過するノードの数が多いほど、すなわち、パスが長いほど、信頼性は低い。
【0123】
(3)シフト位置情報に関連するルール
判定は、位置情報のシフト数(序数等)またはシフトの総数(合計数)を指すシフト位置に基づく。シフト数が多いほど、シフトの総数は多く、信頼性は低い。
【0124】
上記の3種類の信頼性判定ルールを、個別に、または組み合わせて使用することができる。判定が3種類のルールの組み合わせを用いて行われる場合、その結果は、より正確なものとなる。
【0125】
S606は、抽出されるページのDOM構造を分析し、抽出されるページのDOMツリーを作成し、抽出されるページの全DOM構造を取得する。
【0126】
S607は、パスセットを用いて抽出されたノード候補セットを取得する。
【0127】
図5で示されるように、パスは、インタプリタを用いてDOM内のポインティング要素を配置することができる。このようにして、S605で取得されたパスセットを用いて、抽出されるページの抽出されたノード候補セットを取得することができる。本明細書で使用される方法は、パスセット内の複数のパスを用いて、抽出されるページのコンテンツを配置すること、すなわち、ルートノードから開始して、抽出されるコンテンツであるターゲットノードを探し出すことである。
【0128】
微妙な違いがページ構造内に存在し得るため、パスセットは、抽出されるページ内の要素を配置するときに異なるノードを指し得る。
【0129】
S608は、最もロバストなノードを抽出されたノード候補セットから最後に抽出されたノードとして選択し、抽出されたノードを用いて情報を抽出する。
【0130】
S609は、最後に抽出されたノードに対応するパスに関連する重みを設定閾値と比較し、関連した抽出が成功したかを判定する。
【0131】
本開示の実施形態において、最後に抽出されたノードの「合計ノードスコア」を「全てのパスの合計スコア」で割った後に得られた結果が設定閾値と比較され、関連した抽出が成功したかを判定する。得られた結果が設定閾値を超える場合、抽出が失敗したと判定される。得られた結果が設定閾値以下である場合、抽出が成功したと判定される。
【実施例3】
【0132】
本開示の別の好ましい実施形態において、信頼性判定のルールは、最小のスコア減点を有するターゲットノードからルートノードまでのパスを探し出してパスセットを形成するためにも使用される。第3の実施形態と第2の実施形態との主な相違点は、ターゲットノードからルートノードまでのすべてのパスを探し出した後、第3の実施形態は、信頼性判定のルールに従って探し出されたパスのすべてのスコア減点を行い、それから最小の減点を有する最初のNパスを選択することである。その一方で、第2の実施形態は、伝播プロセス中に信頼性判定のルールに従ってスコア減点を行い、閾値を超えるスコア減点が発生したときに伝播を停止する。
【0133】
図8は、本開示の第3の例示の方法のフローチャートであり、添付の図と併せて以下で説明される。
【0134】
S801は、抽出される情報をサンプルページから選択する。
【0135】
本開示によって提供される実施形態において、ユーザは、抽出される情報を対話型インタフェースを介してサンプルページから選択することができる。この時点で、ユーザは、ライン選択またはフレーム選択を用いてサンプルページ内に抽出される情報を示すことができる。ユーザによって示されるサンプルページ内に抽出される情報が「履歴およびソース」である場合、ユーザは、ラインまたはフレーム選択を用いて抽出される情報を選択することができる。
【0136】
S802は、サンプルページのDOM構造を分析し、DOMツリーを構築し、DOM構造内の抽出される情報の位置を取得し、ターゲットノードの位置情報を取得する。
【0137】
S803は、サンプルページのDOM構造をトラバースして、それぞれのノードに関連するテキストおよびスタイル属性の情報を取得する。
【0138】
S804は、S803で取得されたテキストおよびスタイル情報を用いて、それぞれのノードの最近傍の相対位置情報を取得する。
【0139】
S805は、ターゲットノードから開始して、ターゲットノードからルートノードまでのすべてのパスを探し出し、信頼性判定のルールを用いてすべてのパスのスコア減点を行い、最小のスコア減点を有する最初のNパスを探し出す。
【0140】
図9は、本開示の第3の実施形態に従うパス選択のチャートである。具体的なプロセスは、添付の図と併せて以下で説明される。
【0141】
具体的なプロセスは、以下の通りである。
【0142】
S851は、ターゲットノードから開始して、ターゲットノードを現在のノードとして設定する。
【0143】
S852は、S804で取得された現在のノードの最近傍の先に取得された相対位置情報をトラバースし、それから相対位置iに対応するノードBiを選択して、Biがルートノードであるかを判定する。
【0144】
S853は、Biがルートノードであると判定された場合、関連したパスをパスリストに追加し、そうでない場合、Biを現在のノードとして設定して、ルートノードが探し出されるまでS852に進む。
【0145】
S854は、信頼性判定のルールに従ってすべての探し出されたパスのスコア減点を算出し、全体のパススコア減点が閾値を超えるかを判定し、閾値を超えない場合、そのパス結果を保持する。
【0146】
S855は、パスリスト内で最小のスコア減点を有する最初のNパスをパスセットとしてレンダリングする。
【0147】
S806は、抽出されるページのDOM構造を分析する。
【0148】
S807は、パスセットを用いて抽出されたノード候補セットを取得する。
【0149】
微妙な違いがページ構造内に存在し得るため、パスセットは、抽出されるページ内の要素を配置するときに異なるノードを指し得る。
【0150】
S808は、最もロバストなノードを抽出されたノード候補セットから最後に抽出されたノードとして選択し、抽出されたノードを用いて情報を抽出する。
【0151】
S809は、最後に抽出されたノードに対応するパスに関連する重みを設定閾値と比較し、関連した抽出が成功したかを判定する。
【0152】
本開示の実施形態において、最後に抽出されたノードの「合計ノードスコア」を「全てのパスの合計スコア」で割った後に得られた結果が設定閾値と比較され、関連した抽出が成功したかを判定する。得られた結果が設定閾値を超える場合、抽出が失敗したと判定される。得られた結果が設定閾値以下である場合、抽出が成功したと判定される。
【0153】
本開示の別の実施形態において、該方法は、繰り返し構造を識別することをさらに含む。ページ情報の抽出を、単純構造からの単一の情報の抽出、繰り返し構造からの複数の情報の抽出に分類することができる。繰り返し構造を識別することは、繰り返し構造を有する複数のパスの情報抽出を可能にする。
【0154】
繰り返し構造の抽出方法は、ノードのパス情報を用いて兄弟ノード間のパス類似性を算出することと、パス類似性を用いて繰り返し構造を有するすべての兄弟ノードを取得し、繰り返し構造を有する兄弟ノードのシフト情報を記録することと、繰り返し構造を有するすべての兄弟ノードによって所有される同等のパスを抽出中に使用されるパスセットとしてフィルタ処理することと、を含む。
【0155】
兄弟ノードは、同一の親ノードに直接接続されるノードと定義される。本開示の実施形態に従って、2つの検索結果のヘッダが、DOM内に同一の構造を有する場合、我々は、この種の同一の(または実質的に同様の)DOMツリー構造を繰り返し構造と称する。
【0156】
以下の表に示されるように、表6および7の2つの検索結果のヘッダは、繰り返しコンテンツである。
[表6]
Sister Jiang Baidu Baike
Sister Jiangは、以前にJiang Zhiweiと呼ばれた有名な殉難者Jiang Zhuyunのニックネームである。Jiang Zhuyunは、1920年8月20日に四川省自貢市で生まれ……
Baike.baidu.com/view/59656.htm−ウェブページスクリーンショット−同様の結果
[表7]
Sister Jiang全シリーズ−オンラインで高解像度で観る−Youkuビデオチャンネル
Sister Jiang、Sister Jiangをオンラインで観る、Sister Jiang全シリーズ、Sister Jiangのテレビドラマ……
www.youku.com/show_page/id_zaa64e69ada5a11de97c0.html−ウェブページスクリーンショット
【0157】
表6のウェブページに対応するDOM構造は、表8に示される。表7のウェブページに対応するDOM構造は、表9に示される。
[表8]
<li class=“g”>
<div class=“vsc”sig=“GD-”rawurl= “http://baike.baidu.com/view/59656.htm”>
<div class=“vspi”></div>
<span class=“t1”>
<h8 class=“r”>
<a class=”1” onmousedown“return clk(this.href, “”, “”, “”, “1”, “”, ’occAAFjAA’)”href=“http://baike.baidu.com/view/59656.htm”>
<em>Sister Jiang</em>
_Baidu Baike
</a>
</h3>
<button class=“vspib”></button>
</span>
<div class=“s”>
</div>
</li>
[表9]
<li class=“g”>
<div class=“vsc”sig=“6G1”rawurl=“http:// www.youku.com/show_page/id_zaa64e69ada5a11de97c0.html”>
<div class=“vspi”></div>
<span class=“t1”>
<h8 class=“r”>
<a class=”1” onmousedown“return clk(this.href, “”, “”, “”, “1”, “”, ’occ8QFjAB’)”href=“http:// www.youku.com/show_page/id_zaa64e69ada5a11de97c0.html”>
<em>Sister Jiang</em>
全シリーズ−オンラインで高解像度で観る−Youkuビデオチャンネル
</a>
</h3>
<button class=“vspib”></button>
</span>
<div class=“s”>
</div>
</li>
【0158】
表8および9に示されるように、太字斜体部分は、繰り返し構造内のヘッダである。
【0159】
同等のパスの判定:2つのパスのシフトのみが異なる場合、その2つのパスは、同等であると見なされる。
【0160】
例えば、
第1のヘッダに関連するパス:
A.第1の「li」要素の第1の「em」要素の親
B.第1の「li」要素の第1の「a」要素
C.第1の「li」要素の「1」要素のクラスを有する第1の「a」要素
第2のヘッダに関連するパス:
A‘.第2の「li」要素の第1の「em」要素の親
B‘.第2の「li」要素の第1の「a」要素
C‘.第2の「li」要素の「1」要素のクラスを有する第1の「a」要素
対応する3対のパスは、同等であると判定され、すなわち、AおよびA’、BおよびB’、ならびにCおよびC’は、それらのシフトのみが異なるため、それぞれ、同等であると判定される。
【0161】
繰り返し構造を判定し、かつノード間の類似性の程度を算出するとき、我々は、以下の算出方法を用いる。
【0162】
sim(A,B)の算出方法:
【0163】
【数2】
【0164】
式中、sim(A,B)は、ノードAとノードBとの間の類似度の度合を表し、
パス(A∩B)は、ノードAおよびBに関連する同等のパスのセットを表し、
パス(A∪B)は、ノードAおよびBに関連するすべてのパスを含むセットを表し、
スコア(x)は、パスxのスコア減点を表す。
【0165】
したがって、閾値および確立されたスコア化機能に基づいて、ノードAの繰り返し兄弟ノードを配置することができる。その後、同等のパスを有するすべての繰り返し兄弟ノードを、抽出中に使用されるパスとしてフィルタ処理することができる。繰り返し兄弟のシフト情報を記録および使用して、複数のデータを繰り返し構造から抽出することができる。
【0166】
それに対応して、XPATHセットを用いて抽出されるページを抽出するとき、パスが繰り返し構造を指す場合、繰り返し兄弟のシフト情報を記録し、複数のデータを抽出するステップを行う。前述のように、ページ情報の抽出を、単純構造からの単一の情報の抽出、繰り返し構造からの複数の情報の抽出に分類することができる。パスが繰り返し構造を指す場合、繰り返し兄弟のシフト情報を先に記録したため、我々は、繰り返し兄弟のシフト情報を用いて、繰り返し構造が抽出されるときに繰り返し構造を有する複数のデータを抽出することができる。
【0167】
例示的な実施形態の上記の説明から、当業者であれば、開示の方法およびシステムを、必須のユニバーサルハードウェアプラットフォームを使用するソフトウェアを用いて、または以前の実行アプローチが多くの状況において好ましいハードウェアを用いて実行することができることを明確に理解することができる。この理解に基づいて、本開示の技術スキームまたは現行の科学技術への貢献を、ソフトウェア製品の形態で実行することができる。ソフトウェア製品を、不揮発性記憶媒体、例えば、ROM/RAM、ディスク、コンパクトディスク等に記憶してもよく、コンピューティングデバイス(例えば、パソコン、サーバ、もしくはネットワークデバイス等)に関する命令を含み、本開示の例示的な実施形態または例示的な実施形態のある特定の箇所で説明される方法を実行する。これらの記憶媒体には、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク、または光ディスク等のプログラミングコードを記憶することができる媒体が含まれる。
【0168】
上記の例示的な方法に対応して、本開示は、ウェブページ情報を抽出するシステムをさらに提供する。
【0169】
図10は、例示的なシステム概略図であり、添付の図と併せて以下で説明される。
【0170】
サンプルページ抽出情報位置取得ユニット1001は、サンプルページのDOM構造を分析し、DOM構造内の抽出される情報の位置を取得するために使用される。
【0171】
パスセット取得ユニット1002は、DOM構造内の抽出される情報の位置に対応するノードをターゲットノードとしてレンダリングし、ターゲットノードから開始して、事前に取得された相対位置情報をトラバースしてノードを取得して、該ノードがルートノードであるかを判定し、そうでない場合、ルートノードが探し出されるまで別のノードを再帰的に探し続けて候補パスを作成し、ターゲットノードからルートノードまでの取得された候補パスをパスセットとしてレンダリングするために使用される。
【0172】
抽出されたノード候補セット取得ユニット1003は、抽出されるページのDOM構造を分析し、パスセット内のルートノードから開始するパスを用いて抽出されるページのDOM構造内に抽出される情報を配置し、抽出されるページのDOM構造内の抽出される情報の位置に対応するノードを抽出されたノード候補セットとして取得するために使用される。
【0173】
抽出された情報取得ユニット1004は、最も高いロバスト性を有するノードを抽出されたノード候補セットから選択して、最後に抽出されたノードとし、抽出されたノードを用いて抽出された情報を取得するために使用される。
【0174】
ノード位置情報取得サブユニットは、DOM構造をトラバースしてノードのテキストおよびスタイル情報を取得し、該テキストおよびスタイル情報を用いてそれぞれのノードの最近傍の相対位置情報を取得するために使用される。
【0175】
該システムは、取得されたパスセット内のノードのパス情報を用いてノード間のパス類似性を算出し、かつ繰り返し構造を有するパスを識別するために使用される繰り返し構造認識ユニットをさらに含む。
【0176】
繰り返し構造認識ユニットは、ノードのパス情報を用いて兄弟ノード間のパス類似性を算出するために使用される、パス類似性算出サブユニットと、パス類似性を用いて繰り返し構造を有するすべての兄弟ノードを取得する、繰り返し兄弟ノード取得サブユニットと、繰り返し構造を有する兄弟ノードのシフト情報を記録するために使用される、シフト情報記録サブユニットと、抽出中に使用されるパスセットとして繰り返し構造を有するすべての兄弟ノードによって所有される同等のパスをフィルタ処理するために使用される、同等のパス取得サブユニットと、を含む。
【0177】
該システムは、パスセットに対する最後に抽出されたノードに対応するパスの重みを設定閾値と比較して、関連した抽出が成功したかを判定する抽出結果判定ユニットを含む。
【0178】
図11は、上述のシステム等の例示的なシステム1100をより詳細に説明する。一実施形態において、システム1100は、1つ以上のプロセッサ1101、ネットワークインタフェース1102、メモリ1103、および入出力インタフェース1104を含むことができるが、これらに限定されない。
【0179】
メモリ1103は、ランダムアクセスメモリ(RAM)等の揮発性メモリ、および/または読み出し専用メモリ(ROM)もしくはフラッシュRAM等の不揮発性メモリの形態で、コンピュータ可読媒体を含んでもよい。メモリ1103は、コンピュータ可読媒体の一例である。
【0180】
コンピュータ可読媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータ等の、情報を記憶するための任意の方法または科学技術を用いて実装される揮発性及び不揮発性の取り外し可能および取り外し不可能な媒体が含まれる。コンピュータ記憶媒体の例には、相変化メモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、他の種類のランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能プログラム可能読み出し専用メモリ(EPROM)、フラッシュメモリ、もしくは他のメモリ技術、コンパクトディスク読み出し専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)、もしくは他の光学的記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくは他の磁気記憶デバイス、またはコンピューティングデバイスによるアクセス用に情報を記憶するために使用することができる任意の他の非伝送媒体が挙げられるが、これらに限定されない。本明細書で定義されるように、コンピュータ可読媒体には、変調データシグナルおよび搬送波等の一過性媒体は含まれない。
【0181】
メモリ1103は、プログラムユニット1105およびプログラムデータ1106を含んでもよい。一実施形態において、プログラムユニット1105は、サンプルページ抽出情報位置取得ユニット1107、パスセット取得ユニット1108、抽出されたノード候補セット取得ユニット1109、および抽出情報取得ユニット1110を含んでもよい。一実施形態において、プログラムユニット1105は、ノード位置情報取得サブユニット1111、繰り返し構造認識ユニット1112、パス類似性算出サブユニット1113、繰り返し兄弟ノード取得サブユニット1114、シフト情報記録サブユニット1115、同等のパス取得サブユニット1116、および抽出結果判定ユニット1117をさらに含んでもよい。これらのプログラムユニットおよび任意のサブユニットならびに/またはモジュールに関する詳細を、上記の実施形態において見出すことができる。
【0182】
本開示によって提供される技術的提案において、サンプルページのパスセットが取得されるとき、逆位置決め方法を用いて、DOM構造およびテキストコンテンツを分析することによって、ターゲットノードからルートノードまでの複数の厳密に順序付けられていないパスを取得する。その後、複数のパスを位置決めする方法を用いて、複数のパスによって形成されるパスセットに基づいて、抽出されるページの情報を配置する。したがって、抽出されるページの情報を配置するために複数のパスが取得されるため、ページ情報が修正され、構造が変更された場合でも、抽出されるコンテンツを良好なロバスト性で正確に配置することができるが、但し、ページが実質的に再構築されていないことを条件とする。
【0183】
さらに、信頼性判定のルールを用いて、開示の方法およびシステムは、多数の加重されているが厳密に順序付けられていないパスを取得し、複数のパスを配置することによってコンテンツを抽出し、最後の抽出結果をそれらのパスの関連した重みに基づいて選択する。多数のパスが豊富なページ情報を含むため、正確な位置決め結果は、対話コストを増加させることなくデータの正確さを維持することを前提に得られる。したがって、ウェブページのコンテンツが更新され、ウェブページの構造が変更された後の無効な位置情報の結果生じる抽出失敗または不正確な抽出結果の問題は、解決される。
【0184】
さらに、複数のパスに関連する豊富な情報およびパスの類似性の全体の程度の算出に基づいて、本開示で提供される技術スキームは、繰り返し構造の判定を完了し、したがって、繰り返し構造を識別および抽出する問題を解決する。
【0185】
上述の説明は、本開示の特定の実施例にすぎない。当業者であれば、本開示を、本開示の原理から逸脱することなく、多くの方法で変更または修正することができることに留意されたい。これらの修正点および改良点も、本開示の保護範囲内に包含されるべきである。