(57)【要約】  テンプレート検出およびラッパー生成を協同して最適化することによって階層的に編成された文書のラッパーを生成する方法およびシステムを提供する。ラッパー生成システムは、文書ツリーのクラスタを識別することと、クラスタのラッパーツリーを生成することとによって、類似するテンプレートを有する文書のラッパーを生成する。ラッパーツリーは、クラスタのテンプレートと一致する文書のラッパーを定義する。ラッパー生成システムは、初期文書ツリーに基づいてクラスタのラッパーツリーを生成することによって、文書ツリーをクラスタ化する。ラッパー生成システムは、次に、任意の他の文書ツリーがクラスタのラッパーツリーと一致しまたはほぼ一致するかどうかを繰り返して判定し、そうである場合には、その文書ツリーをクラスタに追加し、適当にラッパーツリーを調整し、その結果、新たに追加された文書ツリーを含むすべての文書ツリーがラッパーツリーと一致するようにする。
2010501096.tif 000002
【特許請求の範囲】
【請求項１】
階層的に編成された文書のラッパーを生成するコンピューティング装置での方法であって、各文書は、文書ツリーを有し、前記方法は、
文書ツリーのラッパーツリーを作成すること（５３５）と、
前記ラッパーツリーへのその距離がしきい値以内である文書ツリーを選択すること（５３７）と、
前記文書ツリーに基づいて前記ラッパーツリーを調整すること（５３９）と
を含み、前記ラッパーは、前記調整されたラッパーツリーに基づくことを特徴とする方法。
【請求項２】
前記ラッパーツリーの前記調整は、前記選択された文書ツリーのラッパーツリーおよび前記作成されたラッパーツリーをマージすることを含むことを特徴とする請求項１に記載の方法。
【請求項３】
文書ツリーのラッパーツリーの前記作成は、前記文書ツリー内のノードの連続するサブフォレストを組み合わせることを含むことを特徴とする請求項２に記載の方法。
【請求項４】
複数の文書ツリーについて前記選択および調整を実行することを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記ラッパーツリーは、前記ラッパーツリーがそれに関して作成される前記文書ツリーおよび前記ラッパーツリーがそれに関して調整される前記文書ツリーを含む文書ツリーのクラスタに関することを特徴とする請求項１に記載の方法。
【請求項６】
前記ラッパーツリーが生成された後に、文書ツリーのもう１つのクラスタについてもう１つのラッパーツリーを生成することを含むことを特徴とする請求項５に記載の方法。
【請求項７】
文書ツリーとラッパーツリーとの間の距離は、文書ノードと一致しないラッパーノードの個数およびラッパーノードと一致しない文書ノードの個数に基づくことを特徴とする請求項１に記載の方法。
【請求項８】
前記距離は、前記文書ツリーおよび前記ラッパーツリーの重さに基づいて正規化されることを特徴とする請求項７に記載の方法。
【請求項９】
複数のラッパーツリーが生成された時に、文書ツリーと前記ラッパーツリーとの間の距離に基づいて前記文書ツリーからデータを抽出するのに使用すべきラッパーを識別することを特徴とする請求項１に記載の方法。
【請求項１０】
前記しきい値は、適応式であることを特徴とする請求項１に記載の方法。
【請求項１１】
前記しきい値は、増やされたしきい値のゆえに選択される文書に基づく前記ラッパーツリーの前記調整が前記ラッパーツリーの有効性を下げるまで増やされることを特徴とする請求項１０に記載の方法。
【請求項１２】
階層的に編成された文書とラッパーツリーとの間の類似性を判定するコンピューティングシステムであって、前記文書は、文書ツリーを有し、前記システムは、
前記文書ツリーのノードを前記ラッパーツリーのノードに位置合せするコンポーネント（１１０１）と、
位置合せされないノードの個数からメトリックを生成するコンポーネント（１１０２〜１１０６）であって、前記メトリックは、前記文書ツリーと前記ラッパーツリーとの間の類似性を示す、コンポーネント（１１０２〜１１０６）と
を含むことを特徴とするコンピューティングシステム。
【請求項１３】
前記メトリックは、前記ラッパーツリーのノードと位置合せされない前記文書ツリーのノードの個数および前記文書ツリーのノードと位置合せされない前記ラッパーツリーのノードの個数に基づくことを特徴とする請求項１２に記載のコンピューティングシステム。
【請求項１４】
位置合せされないノードの個数は、前記ツリーの重さに基づいて正規化されることを特徴とする請求項１３に記載のコンピューティングシステム。
【請求項１５】
前記メトリックは、次式
【数１】
2010501096.tif 000045
によって表されることを特徴とする請求項１２に記載のコンピューティングシステム。
【請求項１６】
ラッパーツリーごとに、
以前に選択されたことがない文書ツリーを選択すること（６０３）と、
前記選択された文書ツリーの前記ラッパーツリーを作成すること（６０４）と、
前記ラッパーからのその距離がしきい値未満である選択されていない文書ツリーが存在する時に、前記文書ツリーを選択し（６０６、６０７）、前記選択された文書ツリーに基づいて前記ラッパーツリーを調整することと
を含む方法によって、文書ツリーのラッパーツリーを生成するためにコンピューティングシステムを制御する命令を含むことを特徴とするコンピュータ可読媒体。
【請求項１７】
前記距離が０である時に、前記ラッパーツリーを調整せずに前記文書ツリーを選択することを特徴とする請求項１６に記載のコンピュータ可読媒体。
【請求項１８】
ラッパーツリーの前記選択された文書ツリーは、文書ツリーのクラスタを形成することを特徴とする請求項１７に記載のコンピュータ可読媒体。
【請求項１９】
前記距離は、前記文書ツリーと前記ラッパーツリーとの間の位置合せされないノードの個数に基づくことを特徴とする請求項１６に記載のコンピュータ可読媒体。
【請求項２０】
文書の文書ツリーからのその距離が最小である前記ラッパーツリーを識別することと、前記識別されたラッパーツリーを前記文書からデータを抽出するためのテンプレートとして使用することとによって、前記文書からデータを抽出することを含むことを特徴とする請求項１６に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
ワールドワイドウェブ（「ウェブ」）は、ウェブページを介してアクセス可能な膨大な量の情報を提供する。ウェブページは、スタティックコンテンツまたはダイナミックコンテンツを含むことができる。スタティックコンテンツは、一般に、ウェブページの多数のアクセスにまたがって同一のままであることができる情報を指す。ダイナミックコンテンツは、一般に、ウェブデータベース内に格納され、検索要求に応答してウェブページに追加される情報を指す。ダイナミックコンテンツは、ディープウェブまたは隠しウェブと呼ばれてきたものを表す。
【０００２】
多くの検索エンジンサービスは、ユーザがウェブのスタティックコンテンツを検索することを可能にする。ユーザが、検索用語を含む検索要求またはクエリをサブミットした後に、検索エンジンサービスは、これらの検索用語に関連する可能性があるウェブページを識別する。これらのウェブページが、検索結果である。関連するウェブページをすばやく識別するために、検索エンジンサービスは、ウェブページへのキーワードのマッピングを維持する場合がある。このマッピングは、各ウェブページのキーワードを識別するためにウェブを「クロール」することによって生成することができる。ウェブをクロールするために、検索エンジンサービスは、ルートウェブページを介してアクセス可能なすべてのウェブページを識別するためにルートウェブページのリストを使用する場合がある。特定のウェブページのキーワードは、見出しとしての単語の識別、ウェブページのメタデータ内で供給される単語、強調表示される単語など、さまざまな周知の情報検索技法を使用して識別することができる。
【０００３】
しかし、これらの検索エンジンサービスは、一般に、非クロール可能コンテンツとも考えられるダイナミックコンテンツの検索を提供しない。多くのウェブページは、構造化されたソース（たとえば、リレーショナルデータベース）から生成されたダイナミックページを含む。そのようなダイナミックコンテンツを含むウェブページが生成される時に、基礎になる構造化されたソースの構造化データは、構造化されない形または半構造化された形でウェブページ内においてエンコードされる。そのようなダイナミックコンテンツの検索に関連する１つの問題は、ウェブページから対応する構造化されたソースのスキーマを識別することが難しいことである。スキーマは、基礎になる構造化ソースに格納された情報または属性を定義する。この問題のゆえに、そのようなダイナミックコンテンツを有するウェブページの照会は、しばしば、不満足な結果をもたらす。
【０００４】
ウェブページのダイナミックコンテンツのスキーマを識別する試みが行われ、その結果、検索を容易にするためにより構造化されたフォーマットにコンテンツを変換できるようになってきた。構造化されたフォーマットでのウェブページからの情報およびその編成の抽出は、「ラッパー」と呼ばれるプログラムによって実行される。ウェブサイトのウェブページ用のラッパーを手作業で生成するのは、時間がかかる可能性がある。したがって、ダイナミックコンテンツを提供する数千個のウェブサイトの数百万個のウェブページのラッパーを手作業で生成するのは、非実用的である。
【０００５】
いくつかの自動ラッパー「誘導」システムまたは自動ラッパー生成システムが開発されてきた。ラッパー誘導は、ウェブページのダイナミックコンテンツのスキーマを学習することと、そのウェブページからデータを抽出し、抽出されたデータをスキーマによって識別される構造化フォーマットで格納するラッパーを生成することというプロセスである。これらの自動ラッパー誘導システムは、ラッパーの表現力に対して有効性をトレードオフするものである。有効性とは、ラッパー誘導プロセスには使用されないが、同一の「テンプレート」を共有するウェブページからコンテンツを抽出する際にラッパーがどれほど正確であるかを指す。ラッパー誘導システムは、ウェブページのトレーニングセットを使用してテンプレートに関してラッパーを生成する。次に、ラッパーは、同一のテンプレートを共有するウェブページからデータを抽出するのに使用される。表現力は、ラッパーのテンプレートによって識別されるラッパーによって処理できるウェブページの範囲を指す。ラッパーをより表現力のあるものにするために、ラッパー誘導システムは、一般に、ラッパーにワイルドカード（たとえば、「＊」）を導入し、その結果、より多くのウェブページがラッパーの範囲に含まれるようにする。しかし、一般に、ラッパーの表現力が高まるほど、その有効性が下がり、逆も同様である。
【０００６】
有効性と表現力との間の受け入れられるトレードオフを提供するために、通常のラッパー誘導システムは、トレーニングウェブページを、ウェブページ上のダイナミックコンテンツの編成を表すテンプレートに従ってクラスタ化する。したがって、類似する編成を用いる（たとえば、同一のテンプレートを有する）ウェブページは、一緒にクラスタ化される。これらのラッパー誘導システムは、あるクラスタ内のウェブページのラッパーを自動的に生成することができる。クラスタのウェブページが類似するので、そのようなラッパーは、表現力を高めながら許容できる有効性を達成するために、限られたワイルドカードを使用する可能性がある。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Liu, B., Grossman, R., and Zhai, Y., “Mining Data Records in Web Pages,” Proceedings of the 9th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, 2003, pp. 601-606
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、そのような通常のラッパー誘導システムによって生成されるラッパーの正確さは、大部分、同一のテンプレートを有するウェブページを正しくクラスタ化することの正確さに依存する。一部のラッパー誘導システムは、単純に、ウェブページのＵＲＬの間の類似性に基づいてウェブページをクラスタ化する。このクラスタ化の単純な手法は、ウェブサイトが、そのウェブサイトの同一のサブディレクトリ内の同一のテンプレートを使用するウェブページを格納する場合には適当である。その場合に、それらのＵＲＬは、サブディレクトリの位置を示すために同一のプレフィックスを有する。しかし、多くのウェブサイトは、ウェブページのＵＲＬを定義する時に、はるかにより複雑な手法を使用する。その結果、類似するＵＲＬを有するウェブページが、非常に異なるテンプレートを有する可能性があり、非常に異なるＵＲＬを有するウェブページが、非常に類似するテンプレートを有する場合がある。したがって、ウェブページの編成の類似性に基づいてウェブページを正確にクラスタ化することは、非常に難しい可能性があり、有効性と表現力との間の許容できないトレードオフを有するラッパーがもたらされる。
【課題を解決するための手段】
【０００９】
テンプレート検出とラッパー生成とを協同して最適化することによって階層的に編成された文書のラッパーを生成する方法およびシステムを提供する。ラッパー生成システムは、文書のテンプレートを検出すると同時に、文書のラッパーを動的に生成する。ラッパー生成システムは、ラベル付き葉ノードを有する文書ツリーとして文書を表す。ラッパー生成システムは、文書ツリーのクラスタを識別することと、クラスタのラッパーツリーを生成することとによって、類似するテンプレートを有する文書のラッパーを生成する。ラッパーツリーは、クラスタのテンプレートと一致する文書のラッパーを定義する。ラッパー生成システムは、初期文書ツリーに基づいてクラスタのラッパーツリーを生成することによって文書ツリーをクラスタ化する。次に、ラッパー生成システムは、他の文書ツリーがそのクラスタのラッパーツリーと一致しまたはほぼ一致するかどうかを繰り返して判定し、そうである場合には、その文書ツリーをクラスタに追加し、新たに追加された文書ツリーを含むすべての文書ツリーがラッパーツリーと一致するようにするために、適当にラッパーツリーを調整する。ラッパーツリーと一致するかほぼ一致する文書ツリーがもうない時には、そのクラスタのラッパーツリーの生成が完了する。次に、ラッパー生成システムは、このプロセスを繰り返して、文書ツリーの新しいクラスタを形成し、そのラッパーツリーを生成する。次に、ラッパー生成システムは、これらのラッパーツリーを使用して、ラッパーを定義する。新しい文書のデータを抽出するために、新しい文書の文書ツリーが生成され、最もよく一致するラッパーツリーが識別され、その識別されたラッパーツリーのラッパーが、データを抽出するのに使用される。
【００１０】
この「課題を解決するための手段」は、下の「発明を実施するための形態」でさらに説明する概念の選択物を単純化された形で導入するために提供されたものである。この「課題を解決するための手段」は、請求される主題の主要な特徴または本質的特徴を識別することを意図されたものではなく、請求される主題の範囲を判定する際の助けとして使用されることを意図されたものでもない。
【図面の簡単な説明】
【００１１】
【図１】一実施形態のラッパー生成システムの動作の高水準概要を示すブロック図である。
【図２】文書ツリーのラッパーツリーへの変換を示す図である。
【図３】一実施形態でのラッパーツリーのマージを示す図である。
【図４】ラッパーツリーと文書ツリーとの位置合わせを示す図である。
【図５】一実施形態でのラッパー生成システムのコンポーネントを示すブロック図である。
【図６】一実施形態でのラッパー生成システムのラッパー生成コンポーネントの処理を示す流れ図である。
【図７】一実施形態でのラッパー生成システムのラッパーへの文書変換コンポーネントの処理を示す流れ図である。
【図８】一実施形態でのラッパー生成システムのクラスタへの一致する文書の移動コンポーネントの処理を示す流れ図である。
【図９】一実施形態でのラッパー生成システムのクラスタへのほぼ一致する文書の移動コンポーネントの処理を示す流れ図である。
【図１０】一実施形態でのラッパー生成システムのほぼ一致する文書のチェックコンポーネントの処理を示す流れ図である。
【図１１】一実施形態でのラッパー生成システムの距離計算コンポーネントの処理を示す流れ図である。
【図１２】一実施形態でのラッパー生成システムのラッパー調整コンポーネントの処理を示す流れ図である。
【図１３】一実施形態でのラッパー生成システムのラッパー位置合わせコンポーネントの処理を示す流れ図である。
【発明を実施するための形態】
【００１２】
テンプレート検出およびラッパー生成を協同して最適化することによって階層的に編成された文書のラッパーを生成する方法およびシステムを提供する。一実施形態で、ラッパー生成システムは、文書のテンプレートを検出すると同時に文書のラッパーを動的に生成する。ラッパー生成システムは、ウェブページなど、それぞれが文書ツリーと称するその階層のツリー構造によって表される、階層的に編成された文書のコレクションを与えられる。たとえば、ウェブページが、ドキュメントオブジェクトモデル（「ＤＯＭ」）に準拠する場合に、文書ツリーは、ＤＯＭ文書のタグに対応するノードを含む。ラッパー生成システムは、文書ツリーの葉ノードのラベルをも与えられる。これらのラベルは、基礎になる構造化データの識別子、フィールド、または属性に対応する。たとえば、自動車に関する情報を含むウェブページは、「メーカー」、「モデル」、「年式」、「色」、「価格」などとしてラベル付けされた葉ノードを有する可能性がある。ラッパー生成システムは、コレクションの文書ツリーを選択し、その文書ツリーに対応するラッパーツリーを生成することによって、類似するテンプレートを有する文書のラッパーを生成する。ラッパーツリーは、検出されたテンプレートと一致する文書のラッパーを定義する。ラッパー生成システムは、コレクションの任意の他の文書ツリーがラッパーツリーとほぼ一致するかどうかを判定する。そうである場合には、ラッパー生成システムは、文書ツリーが、ラッパーを生成するのに使用された文書ツリーと同一のテンプレートを共有すると考える。ラッパー生成システムは、ほぼ一致する文書ツリーについてラッパーツリーを調整し、その結果、両方の文書ツリーがそのラッパーツリーと一致するようにする。文書ツリーが、たまたまラッパーツリーと正確に一致する場合には、ラッパー生成システムは、ラッパーツリーを調整する必要がない。次に、ラッパー生成システムは、コレクションの任意の他の文書ツリーが調整されたラッパーツリーとほぼ一致するかどうかの判定およびラッパーツリーの調整を、調整されたラッパーツリーとほぼ一致するコレクション内の文書ツリーがなくなるまで繰り返す。ラッパーツリーの生成および調整に使用される文書ツリーを、類似するテンプレートを有し、ラッパーツリーと一致する文書ツリーの「クラスタ」と称する。次に、ラッパー生成システムは、新しいクラスタを形成するための文書ツリーの選択、その文書ツリーのラッパーツリーの生成、およびクラスタに追加されるほぼ一致するツリーに関するラッパーツリーの動的調整というプロセスを繰り返す。この形で、ラッパー生成システムは、動的に生成されるラッパーツリーに基づいてテンプレートを検出し、動的に識別されたテンプレートに基づいてラッパーツリーを生成する。次に、ラッパー生成システムは、ラッパーツリーを使用してラッパーを定義する。
【００１３】
一実施形態で、ラッパー生成システムは、距離メトリックを使用して、文書ツリーがラッパーツリーと一致し、またはほぼ一致するかどうかを判定する。ラッパーツリーは、類似するテンプレートを有する文書ツリーを定義するラッパーノードの階層であり、テンプレートを有する文書ツリーからデータを抽出するのに使用されるラッパーを表す。ラッパーツリーのラッパーノードは、ラッパーのノードと一致する文書ツリーの対応する文書ノードを定義するタグ、ラベル、またはワイルドカードを含むことができる。文書ツリーとラッパーツリーとの間の距離を判定するために、ラッパー生成システムは、文書ノードをラッパーノードに位置合せする。次に、ラッパー生成システムは、ラッパーノードと位置合せされないツリーノードの個数と、ツリーノードと位置合せされないラッパーノードの個数とをカウントする。ラッパー生成システムは、これらの位置合せされないノードの個数に基づいて距離メトリックを計算する。ラッパー生成は、距離メトリックを正規化し、その結果、同一の距離しきい値を、そのサイズに関わりなく文書ツリーとラッパーツリーとの間のほぼ一致を定義するのに使用できるようにすることもできる。たとえば、５つの位置合せされないノードを有する文書ツリーは、１００個のノードを有するラッパーツリーとほぼ一致するが、１０個のノードのみを有するラッパーツリーとほぼ一致はしないものとすることができる。
【００１４】
一実施形態で、ラッパー生成システムは、固定しきい値または適応しきい値のいずれかを使用して、文書ツリーがラッパーツリーとほぼ一致するかどうかを判定することができる。固定しきい値を使用する時には、ラッパー生成システムは、ラッパー生成プロセス全体を通じて、文書ツリーがラッパーツリーとほぼ一致するかどうかを判定するのに同一のしきい値を使用する。適応しきい値を使用する時には、ラッパー生成システムは、当初に、文書ツリーをクラスタ化する時に小さいしきい値を使用することができる。クラスタのラッパーツリーとほぼ一致する文書ツリーがもうない場合に、ラッパー生成システムは、しきい値を増やし、その後、増やされたしきい値を使用し、ラッパーツリーを適当に調整することによって、ラッパーツリーとほぼ一致する文書ツリーをクラスタに追加することができる。その後、ラッパー生成システムは、増やされたしきい値に基づいて調整されたラッパーツリーが、以前のしきい値を用いるラッパーツリーよりよく動作するかどうかをテストする。ラッパー生成システムは、新たに調整されたラッパーツリーに基づくラッパーを使用してクラスタの文書ツリーからデータを抽出することによって、性能をテストすることができる。この性能が、大幅によりよいものではない場合には、ラッパー生成システムは、増やされたしきい値のゆえに追加された文書ツリーを除外するように最終的なクラスタをセットすることと、最終的なラッパーツリーに、増やされたしきい値のゆえに調整される前のラッパーツリーをセットすることとによって、増やされたしきい値の影響をロールバックする。しかし、調整されたラッパーツリーの性能の方がよい場合には、ラッパー生成システムは、もう一度しきい値を増やし、ほぼ一致する文書ツリーをクラスタに追加する。ラッパー生成システムは、増やされたしきい値に基づいて調整されたラッパーツリーが以前のしきい値を用いるラッパーツリーよりよくまたは大幅によりよく動作しなくなるまで、このプロセスを継続する。
【００１５】
図１は、一実施形態のラッパー生成システムの動作の高水準概要を示すブロック図である。このラッパー生成システムは、ウェブページなどの文書のトレーニングセットを与えられる１０１。このラッパー生成システムは、次に、ウェブページを解析して１０２、文書ツリーを生成し、その葉ノードのラベルを入力する。このラッパー生成システムは、テンプレートを協同して検出し１０３、動的に調整されるラッパーツリーに基づいて文書ツリーをクラスタ化することによってラッパーを生成する１０３。次に、このラッパー生成システムは、ラッパーツリーに基づいて定義されたラッパーを出力する１０４。次に、このラッパー生成システムは、ラッパーを使用してウェブページからデータを抽出することができる。このラッパー生成システムは、新しいウェブページを受け取る１０５時に、新しいウェブページを解析して１０６、文書ツリーを生成する。次に、このラッパー生成システムは、距離メトリックに基づいて、生成された文書ツリーに最も近いラッパーツリーを選択し１０７、選択されたラッパーツリーに対応するラッパーを使用してツリーからデータを抽出する１０８。一実施形態で、文書は、ＸＭＬフォーマットで表すことができる。
【００１６】
ラッパー生成システムは、「括弧」ノードを含めることができる各ラッパーノードに割り当てられた記号を有する修正ＤＯＭツリー（ｍｏｄｉｆｉｅｄ  ＤＯＭ  ｔｒｅｅ）としてラッパーツリーを表す。ラッパー生成システムは、ラッパーノードの記号を使用して、文書ツリーとラッパーツリーとの間の距離を計算する時に、文書ノードおよびラッパーノードが位置合せされているかどうかを判定する。ラッパー生成システムは、ラッパーノードσの記号Ｓ（σ）が、１、整数Ｎ（Ｎ≧２）、またはワイルドカードすなわち？、＋、および＊のうちの１つになるように定義する。１の記号は、ラッパーノードが１つのツリーノードだけと一致することができることを意味する。Ｎの記号は、ラッパーノードがＮ個の連続するツリーノードだけと一致することができることを意味する。？の記号は、ラッパーノードが０個または１個のツリーノードだけと一致することができることを意味する。＋の記号は、ラッパーノードが連続するＮ個のツリーノードと一致することができ、Ｎ≧１であることを意味する。＊の記号は、ラッパーノードが０個または連続するＮ個のツリーノードと一致することができ、Ｎ≧１であることを意味する。？または＊の記号を有するラッパーノードは、ツリーノードと一致しない可能性があるので、「ソフト」ノードと考えられる。他のすべてのラッパーノードは、「ハード」ノードと考えられる。ラッパーツリーには、「ブロック」ノードと称する特殊なノードを含めることができる。括弧ノードは、タグを有しておらず、括弧の対のように振る舞い、したがって、葉ノードになることはできない。ラッパーツリーの他のすべてのノードは、「タグ」ノードと呼ばれる。
【００１７】
一実施形態で、ラッパー生成システムは、文書ツリーとラッパーツリーとの間の距離メトリックを、文書ツリーおよびラッパーツリーの重さに基づいて正規化する。ラッパー生成システムは、ツリーノードσのツリーノード重さＷ（σ）を、σをルートとするサブツリーのノード数と等しくなるように定義する。そのルートノードがτであるツリーＴｄの文書ツリー重さＷ（Ｔｄ）は、Ｗ（τ）である。ラッパー生成システムは、ラッパーノードσのラッパーノード重さＷ（σ）を、そのラッパーノードがソフトノードである時には０になり、そのラッパーノードがハードノードである時にはその子ノードの重さの合計になり、そのラッパーノードがハード葉タグノードである。時には１になり、そのラッパーノードがハード非葉タグノードである時には１にその子ノードの重さの合計を加えたものになるように定義する。ラッパーツリー重さは、ラッパーツリーＴｗのＷ（Ｔｗ）は、Ｔｗが文書ツリーＴｄによって生成される時にはＷ（Ｔｄ）であり、ラッパーツリーＴｗがラッパーツリー
【００１８】
【数１】
2010501096.tif 000003
【００１９】
および
【００２０】
【数２】
2010501096.tif 000004
【００２１】
の組合せによって生成される時には
【００２２】
【数３】
2010501096.tif 000005
【００２３】
である。
【００２４】
ラッパー生成システムは、ラッパーツリーを生成するのに使用される文書ツリーの個数として「ラッパーレベル」を定義する。レベル１ラッパーツリーは、文書ツリーをラッパーツリーに変換することによって生成されるラッパーツリーである。文書ツリーのラッパーツリーへの変換は、次の式によって表される。
Ｔｄ→Ｔｗ
ここで、Ｔｄは、文書ｄの文書ツリーを表し、Ｔｗは、ラッパーｗのラッパーツリーを表す。定義により、レベル１ラッパーの重さは、それがそこから生成された文書ツリーの重さである。文書ツリーをラッパーツリーに変換する時に、ラッパー生成システムは、反復パターン組合せアルゴリズムを実行して、ＴｗをＴｄより簡潔にする。一実施形態で、ラッパー生成システムは、参照によって本明細書に組み込まれている非特許文献１に記載のアルゴリズムに類似するアルゴリズムを使用する。このアルゴリズムが、文書ノードの同一の連続するサブツリーを検出する場合に、このアルゴリズムは、それらをラッパーツリーの１つのラッパーノードにマージし、その記号に同一のサブツリーの個数をセットする。このアルゴリズムが、文書ノードの同一の連続するサブフォレストを識別する場合に、このアルゴリズムは、ラッパーツリー内のブロックノードの下の１つのサブフォレストとしてそれらをマージし、その記号に同一のサブフォレストの個数をセットする。このアルゴリズムは、文書ツリーをラッパーツリーに変換する時に、葉ノードのラベルを検討する。図２に、文書ツリーのラッパーツリーへの変換を示す。文書ツリー２１０が、ラッパーツリー２２０に変換される。文書ツリーのルートノードＡは、ＢノードおよびＣノードの反復サブフォレストを含むので、ラッパー生成システムは、括弧ノードＸをラッパーツリーに追加し、その記号に２をセットする。各Ｂノードは、連続するノードＤ１を含む（添字は、ノードのラベルを表す）ので、ラッパー生成システムは、これらのノードをラッパーツリー内で組み合わせ、その記号に２をセットする。
【００２５】
ラッパー生成システムは、２つの低水準ラッパーツリーの位置合わせに基づいて高水準ラッパーツリーを生成する。ラッパー生成システムは、トップダウンの順序でレイヤごとに２つのラッパーツリー
【００２６】
【数４】
2010501096.tif 000006
【００２７】
および
【００２８】
【数５】
2010501096.tif 000007
【００２９】
を位置合せする。ルートノードから同一の深さにあるノードは、同一レイヤに含まれ、ブロックノードは、１つのレイヤに含まれるとは考えられない。ラッパー生成システムは、同一レイヤ内のノードだけを位置合せする。ラッパー生成システムは、ラッパーノード
【００３０】
【数６】
2010501096.tif 000008
および
【００３１】
【数７】
2010501096.tif 000009
が次の条件を満足する時に、これらのノードが一致すると考える。
【００３２】
【数８】
2010501096.tif 000010
【００３３】
および
【００３４】
【数９】
2010501096.tif 000011
【００３５】
が、両方とも非葉ノードであるか、両方とも葉ノードであり、
【００３６】
【数１０】
2010501096.tif 000012
【００３７】
であり、
【００３８】
【数１１】
2010501096.tif 000013
【００３９】
および
【００４０】
【数１２】
2010501096.tif 000014
【００４１】
が両方とも葉ノードである場合に
【００４２】
【数１３】
2010501096.tif 000015
【００４３】
である。
ここで、Ｔ（σ）は、ノードσのタグを表し、Ｌ（σ）は、ノードσのラベルを表す。各レイヤで、ラッパー生成システムは、位置合わせ関数
【００４４】
【数１６】
2010501096.tif 000016
【００４５】
を呼び出すことによって表されるように、サブツリーのアレイ
【００４６】
【数１４】
2010501096.tif 000017
【００４７】
と
【００４８】
【数１５】
2010501096.tif 000018
【００４９】
との間のシーケンス位置合わせを実行する。ラッパー生成システムは、最小コスト位置合わせを入手するために動的計画法を使用する。
【００５０】
【数１７】
2010501096.tif 000019
【００５１】
および
【００５２】
【数１８】
2010501096.tif 000020
【００５３】
内のすべての不一致のルートノードは、その重みをコストとして
【００５４】
【数１９】
2010501096.tif 000021
【００５５】
に寄与する。非葉ノードである一致するノードの対
【００５６】
【数２０】
2010501096.tif 000022
【００５７】
および
【００５８】
【数２１】
2010501096.tif 000023
【００５９】
について、ラッパー生成システムは、
【００６０】
【数２２】
2010501096.tif 000024
【００６１】
を再帰的に呼び出し、ここで、
【００６２】
【数２３】
2010501096.tif 000025
【００６３】
および
【００６４】
【数２４】
2010501096.tif 000026
【００６５】
は、
【００６６】
【数２５】
2010501096.tif 000027
【００６７】
および
【００６８】
【数２６】
2010501096.tif 000028
【００６９】
の子ノードをルートとするサブツリーからなるサブフォレストである。ラッパー生成システムは、関数
【００７０】
【数２７】
2010501096.tif 000029
【００７１】
を呼び出すことによって計算されたコストを
【００７２】
【数２８】
2010501096.tif 000030
【００７３】
のコストに加算する。ラッパー生成システムは、ラッパーノードをトップダウンの再帰的な形で位置合せするので、２つのラッパー内のノードの両方がルートノードであるか、その親ノードが互いに位置合せされている場合に限って、それらのノードの位置合わせを試みる。
【００７４】
図３は、一実施形態でのラッパーツリーのマージを示す図である。ラッパーツリー３１０および３２０がマージされて、ラッパーツリー３３０を形成する。影付きのノードＤおよびＧは、他方のラッパーツリー内に一致するノードを有しない。その結果、マージされたラッパーツリーの対応するラッパーノードは、ソフトノードである。ラッパー生成システムは、当初に、これらのラッパーツリーのルートノードを渡して、Ａ（Ａ，Ａ）として位置合わせ関数を呼び出す。この関数は、第２レイヤのラッパーノードを渡してＡ（Ｂ（Ｃ３ＤＥ＊）？，ＢＣ３Ｅ）としてそれ自体を再帰的に呼び出す。ワイルドカード？はソフトなので、この関数は、Ａ（ＢＣ３ＤＥ＊，ＢＣ３Ｅ）およびＡ（Ｂ，ＢＣ３Ｅ）としてそれ自体を再帰的に呼び出す。前者が、より低いコスト（すなわち、よりよい一致）をもたらすので、この関数は、前者を位置合わせとして選択する。関数Ａ（Ｂ（Ｃ３ＤＥ＊）？，ＢＣ３Ｅ）の動的計画法プロセス中に、関数Ａ（Ｆ２，ＦＧ＋）が、Ａ（ＢＣ３ＤＥ＊，ＢＣ３Ｅ）とＡ（Ｂ，ＢＣ３Ｅ）との両方によって再帰的に呼び出されて、この２つの解のコストを計算する。位置合わせが、２つのラッパーツリーの間の最適解を入手した後に、ラッパー生成システムは、次の記号生成関数Ｆを使用して新しいラッパーツリーを構築する。
Ｆ（１，ＮＵＬＬ）  ＝  ？    ｜Ｆ（？，Ｎ）    ＝  ＊
Ｆ（？，ＮＵＬＬ）  ＝  ？    ｜Ｆ（？，＋）    ＝  ＊
Ｆ（ｎ，ＮＵＬＬ）  ＝  ＊    ｜Ｆ（１，＊）    ＝  ＊
Ｆ（＋，ＮＵＬＬ）  ＝  ＊    ｜Ｆ（Ｎ，＊）    ＝  ＊
Ｆ（＊，ＮＵＬＬ）  ＝  ＊    ｜Ｆ（？，＊）    ＝  ＊
Ｆ（１，１）        ＝  １    ｜Ｆ（＋，＊）    ＝  ＊      （１）
Ｆ（Ｎ，Ｎ）        ＝  Ｎ    ｜Ｆ（１，Ｎ）    ＝  ＋
Ｆ（＋，＋）        ＝  ＋    ｜Ｆ（Ｎ，＋）    ＝  ＋
Ｆ（？，？）        ＝  ？    ｜Ｆ（１，＋）    ＝  ＋
Ｆ（＊，＊）        ＝  ＊    ｜Ｆ（Ｎ１，Ｎ２）  ＝  ＋
Ｆ（１，？）        ＝  ？    ｜
ここで、ＮＵＬＬは、ラッパーノードの不一致を表す。たとえば、Ｆ（１，ＮＵＬＬ）は、その記号が１であるラッパーノードの不一致を示す。
【００７５】
ラッパー生成システムは、次を除いて、ラッパーツリーが位置合せされる方法に似た形で文書ツリーおよびラッパーツリーを位置合せする。ラッパーツリーは、１対１の形で位置合せされるが、その記号が＋または＊であるラッパーノード（タグノードのみ）を、複数の文書ノードと位置合わせすることができる。また、２つのラッパーノードを位置合せできるかどうかを判定する時には、ラッパー生成システムは、ノードのラベルを考慮に入れない。ラッパーツリーＴｗと文書ツリーＴｄとの間の位置合わせについて、ラッパー生成システムは、不一致の文書ノードによって寄与される総コストを示すためにＣｄ（Ｔｗ，Ｔｄ）を使用する。Ｃｄは、ラッパーノードと一致しない文書ツリーＴｄのノードのカウントを表し、Ｃｗは、文書ノードと一致しないラッパーツリーＴｗのノードを表す。
【００７６】
【数２９】
2010501096.tif 000031
【００７７】
の場合には、すべての文書ツリーＴｄについて、
【００７８】
【数３０】
2010501096.tif 000032
【００７９】
とＴｄとの間の位置合わせは、少なくとも
【００８０】
【数３１】
2010501096.tif 000033
【００８１】
とＴｄとの間ならびに
【００８２】
【数３２】
2010501096.tif 000034
【００８３】
とＴｄとの間と同数の一致する対を作る。というのは、
【００８４】
【数３３】
2010501096.tif 000035
が、少なくとも
【００８５】
【数３４】
2010501096.tif 000036
【００８６】
および
【００８７】
【数３５】
2010501096.tif 000037
【００８８】
と同数のワイルドカードを有するからである。また、
【００８９】
【数３６】
2010501096.tif 000038
【００９０】
に現れるが
【００９１】
【数３７】
2010501096.tif 000039
【００９２】
と
【００９３】
【数３８】
2010501096.tif 000040
【００９４】
との両方には存在しないラッパーノードは、ソフトノードであり、したがって、コストには寄与しない。したがって、すべての文書ツリーＴｄについて、次の条件が満足される。
【００９５】
【数３９】
2010501096.tif 000041
【００９６】
ラッパー生成システムは、次の式によってラッパーツリーＴｗと文書ツリーＴｄとの間の距離を定義する。
【００９７】
【数４０】
2010501096.tif 000042
【００９８】
この式は、すべてのラッパーツリーＴｗおよび文書ツリーＴｄについて、０≦Ψ（Ｔｗ，Ｔｄ）≦１であるという特性を有する。また、すべての文書ツリーＴｄについて、次の条件が満足される。
【００９９】
【数４１】
2010501096.tif 000043
【０１００】
図４は、ラッパーツリーと文書ツリーとの位置合わせを示す図である。ラッパーノードおよび文書ノードは、破線によって示されているように位置合せされる。
【０１０１】
一実施形態で、ラッパー生成システムは、文書ツリーがラッパーツリーとほぼ一致するかどうかを判定する時に、適応しきい値を使用する。ラッパー生成システムは、当初に、小さいしきい値から開始する。文書ツリーが現在のしきい値内にない時には、ラッパー生成システムは、小さい量だけしきい値を増やす。ラッパー生成システムは、増やされたしきい値がラッパーツリーによって表されるラッパーの性能を大きくは高めなくなるまで、クラスタ化を繰り返す。ラッパー生成システムは、対応するクラスタ化された文書ツリーをテストすることによって、増やされたしきい値の下で生成されたラッパーツリーＴｗ’の性能を評価する。ラッパー生成システムは、次に、前のラッパーツリーおよび現在のラッパーツリーの精度ｐ、リコールｒ、およびＦ１  ｆを計算する。ラッパー生成システムは、次の式によって、大きい改善を表すことができる。
【０１０２】
【数４２】
2010501096.tif 000044
【０１０３】
ここで、λは、しきい値増加が生成されるラッパーのリコールの大きい改善につながることを保証するのに使用される小さい値（たとえば、０．００５）である。ラッパー生成システムは、初期しきい値と１との間になるように定義される停止値に達する時に、しきい値の増加を終了することもできる。
【０１０４】
図５は、一実施形態でのラッパー生成システムのコンポーネントを示すブロック図である。ラッパー生成システム５３０は、通信リンク５２０を介してウェブサイト５１０に接続される。ラッパー生成システムは、ウェブページ収集コンポーネント５３１および文書ツリーストア５３２を含む。ウェブページ収集コンポーネントは、さまざまなウェブサイトをクロールして、ラッパー生成用のトレーニングデータとしてウェブページを収集する。ウェブページ収集コンポーネントは、各ウェブページのドキュメントオブジェクトモデル（「ＤＯＭ」）表現を生成し、その表現を文書ツリーとして文書ツリーストア内に格納する。ラッパー生成システムは、ユーザが文書ツリーの葉ノードに手作業でラベルを付けるためのユーザインターフェースをも提供することができる。ラッパー生成システムは、これらのラベルを文書ツリーストア内に格納する。したがって、ラッパー生成用のトレーニングデータは、葉ノードのラベルと一緒に文書ツリーを含む。ラッパー生成システムは、ラッパー生成コンポーネント５３３およびラッパーストア５３４をも含む。ラッパー生成コンポーネントは、類似するテンプレートを共有するウェブページをクラスタ化し、ツリーストアのトレーニングデータのラッパーツリーを生成し、そのラッパーツリーをラッパーストアに格納する。ラッパー生成コンポーネントは、類似するテンプレートを共有するウェブページを動的にクラスタ化し、クラスタ化中にラッパーツリーを動的に調整する。したがって、クラスタのウェブページは、それらがクラスタのラッパーツリーとどれほどよく一致するかに基づいて選択され、ラッパーツリーは、クラスタの選択されたウェブページに基づいて調整される。ラッパー生成コンポーネントは、ラッパーへの文書変換コンポーネント５３５、クラスタへの一致する文書の移動コンポーネント５３６、クラスタへのほぼ一致する文書の移動コンポーネント５３７、距離計算コンポーネント５３８、およびラッパー調整コンポーネント５３９を呼び出す。ラッパーへの文書変換コンポーネントは、トレーニングデータの文書ツリーをラッパーツリーに変換する。クラスタへの一致する文書の移動コンポーネントは、クラスタの現在のラッパーツリーと一致するトレーニングデータの文書ツリーを識別し、これらの識別された文書ツリーをクラスタに移動する。クラスタへのほぼ一致する文書の移動コンポーネントは、クラスタの現在のラッパーツリーとほぼ一致するトレーニングデータの文書ツリーを識別し、これらの識別された文書ツリーをクラスタに移動し、これらの識別された文書ツリーに基づいてクラスタのラッパーツリーを調整する。距離計算コンポーネントは、文書ツリーとラッパーツリーとの間の距離を計算して、文書ツリーがどれほどよく一致するかを判定する。ラッパー調整コンポーネントは、新しい文書ツリーがクラスタに追加される時のクラスタのラッパーツリーの動的調整をもたらすために、２つのラッパーツリーをマージする。ラッパー生成コンポーネントがウェブページをクラスタ化した後に、ラッパー生成コンポーネントは、各クラスタの動的に生成されたラッパーツリーをラッパーストアに格納する。ラッパー生成システムは、ラッパー選択コンポーネント５４０をも含む。ラッパー選択コンポーネントは、ウェブページを受け取り、そのウェブページの文書ツリーを生成し、そのツリーに最も近いラッパーストアのラッパーツリーを識別し、識別されたラッパーツリーのラッパーを使用してウェブページからデータを抽出する。
【０１０５】
ラッパー生成システムを実施できるコンピューティング装置は、中央処理装置、メモリ、入力装置（たとえば、キーボードおよびポインティング装置）、出力装置（たとえば、ディスプレイ装置）、およびストレージ装置（たとえば、ディスクドライブ）を含むことができる。物理メモリおよびストレージ装置は、ラッパー生成システムを実施する命令およびデータ構造を含むことができるコンピュータ可読媒体である。さらに、このデータ構造および命令を、格納するか、通信リンク上の信号などのデータ伝送媒体を介して伝送することができる。インターネット、ローカルエリアネットワーク、広域ネットワーク、ポイントツーポイントダイヤルアップネットワーク、セル電話網など、さまざまな通信リンクを使用して、システムのコンポーネントを接続することができる。
【０１０６】
ラッパー生成システムの実施形態は、パーソナルコンピュータ、サーバコンピュータ、マルチプロセッサシステム、マイクロプロセッサベースのシステム、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたは装置のいずれかを含む分散コンピューティング環境などを含むさまざまなオペレーティング環境で実施し、使用することができる。ユーザコンピューティング装置は、セル電話機、携帯情報端末、スマートホン、パーソナルコンピュータ、プログラマブル消費者エレクトロニクス、ディジタルカメラなどを含むことができる。
【０１０７】
ラッパー生成システムは、１つまたは複数のコンピュータまたは他の装置によって実行される、プログラムモジュールなどのコンピュータ実行可能命令の全体的な文脈で説明することができる。一般に、プログラムモジュールは、特定のタスクを実行するか特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。通常、プログラムモジュールの機能性は、さまざまな実施形態で望み通りに組み合わせるか分散させることができる。ラッパー生成システムによって使用される文書には、ウェブページ、ＸＭＬベースの文書、ＨＴＭＬベースの文書など、すべての階層的に編成された文書を含めることができる。
【０１０８】
図６は、一実施形態でのラッパー生成システムのラッパー生成コンポーネントの処理を示す流れ図である。このコンポーネントは、類似するテンプレートを有するウェブページを動的にクラスタ化し、ウェブページの各クラスタのラッパーツリーを動的に生成する。このコンポーネントは、当初に、トレーニングコレクションＤ内にトレーニングデータのすべての文書ツリーを有する状態で開始する。ブロック６０１〜６０９では、このコンポーネントは、ウェブページのクラスタを識別し、クラスタのラッパーツリーを動的に調整しながらループする。判断ブロック６０１で、トレーニングコレクションが空の場合には、このコンポーネントは完了し、そうでない場合には、このコンポーネントはブロック６０２で継続する。ブロック６０２では、このコンポーネントは、新しいクラスタＴＰを作成する。ブロック６０３で、このコンポーネントは、コレクションからの文書ツリーＴｄをクラスタの最初の文書ツリーとして選択する。一実施形態で、このコンポーネントは、文書ツリーをランダムに選択する。ブロック６０４で、このコンポーネントは、ラッパーへの文書変換コンポーネントを呼び出して、選択された文書ツリーＴｄを新しいクラスタＴＰの初期ラッパーツリーＴｗに変換する。ブロック６０５で、このコンポーネントは、コレクションＤからの選択された文書ツリーＴｄを新しいクラスタＴＰに移動する。ブロック６０６で、このコンポーネントは、クラスタへの一致する文書の移動コンポーネントを呼び出して、初期ラッパーツリーと一致する文書ツリーをコレクションＤから新しいクラスタＴＰに移動する。ブロック６０７で、このコンポーネントは、クラスタへのほぼ一致する文書の移動コンポーネントを呼び出して、調整されたラッパーツリーとほぼ一致する文書ツリーをコレクションＤから新しいクラスタＴＰに移動し、移動された文書に基づいてラッパーツリーを調整する。ブロック６０８で、このコンポーネントは、クラスタＴＰをクラスタのコレクションＲに追加する。ブロック６０９で、このコンポーネントは、ラッパーツリーＴｗをラッパーツリーのコレクションＷに追加する。その後、このコンポーネントは、ブロック６０１にループして、クラスタの識別を継続する。
【０１０９】
図７は、一実施形態でのラッパー生成システムのラッパーへの文書変換コンポーネントの処理を示す流れ図である。このコンポーネントは、文書ツリーのルートノードを渡され、ラッパーツリーを生成するためにこのコンポーネント自体を再帰的に呼び出す。このコンポーネントは、再帰的であるものとして図示されているが、当業者は、このコンポーネントを、その代わりに非再帰的な形で実施できることを了解するであろう。判断ブロック７０１で、渡されたノードが葉ノードである場合には、このコンポーネントはリターンし、そうでない場合には、このコンポーネントはブロック７０２で継続する。ブロック７０２〜７０４では、このコンポーネントは、渡されたノードの各子ノードを選択し、このコンポーネントを再帰的に呼び出しながらループする。ブロック７０２で、このコンポーネントは、渡されたノードの次の子ノードを選択する。判断ブロック７０３で、すべての子ノードを既に選択し終えている場合に、このコンポーネントは、ブロック７０５で継続し、そうでない場合には、このコンポーネントは、ブロック７０４で継続する。ブロック７０４で、このコンポーネントは、選択されたノードを渡して、ラッパーへの文書変換コンポーネントを再帰的に呼び出し、その後、ブロック７０２にループして、次の子ノードを選択する。ブロック７０５で、このコンポーネントは、渡されたノードの連続するサブツリーを組み合わせる。ブロック７０６で、このコンポーネントは、渡されたノードの連続するサブフォレストを組み合わせる。その後、このコンポーネントは、リターンする。
【０１１０】
図８は、一実施形態でのラッパー生成システムのクラスタへの一致する文書の移動コンポーネントの処理を示す流れ図である。このコンポーネントは、ラッパーツリーＴｗと一致するコレクションＤのすべての文書ツリーＴｄをクラスタＴＰに移動する。ブロック８０１で、このコンポーネントは、コレクションＤの次の文書ツリーＴｄを選択する。判断ブロック８０２で、すべての文書ツリーが既に選択済みである場合には、このコンポーネントは、リターンし、そうでない場合には、このコンポーネントは、ブロック８０３で継続する。ブロック８０３では、このコンポーネントは、距離計算コンポーネントを呼び出して、選択された文書ツリーＴｄとラッパーツリーＴｗとの間の距離を計算する。判断ブロック８０４で、距離が０である場合には、選択された文書ツリーは、ラッパーツリーと一致し、このコンポーネントは、ブロック８０５で継続し、そうでない場合には、このコンポーネントは、ブロック８０１にループして、次の文書ツリーを選択する。ブロック８０５で、このコンポーネントは、選択された文書ツリーＴｄをクラスタＴＰに移動し、その後、ブロック８０１にループして、次の文書ツリーを選択する。
【０１１１】
図９は、一実施形態でのラッパー生成システムのクラスタへのほぼ一致する文書の移動コンポーネントの処理を示す流れ図である。このコンポーネントは、ラッパーツリーＴｗとほぼ一致するコレクションＤの文書ツリーをクラスタＴＰに移動し、ラッパーツリーを動的に調整する。このコンポーネントは、コレクション内のどの文書も、調整されたラッパーツリーとほぼ一致しなくなるまでこの処理を繰り返す。ブロック９０１〜９０６では、このコンポーネントは、ほぼ一致する文書ツリーをクラスタに移動しながらループする。ブロック９０１で、このコンポーネントは、文書ツリーＴｄがラッパーツリーＴｗとほぼ一致するかどうかを判定するために、ほぼ一致する文書のチェックコンポーネントを呼び出す。判断ブロック９０２で、ほぼ一致する文書ツリーが見つかった場合には、このコンポーネントは、ブロック９０３で継続し、そうでない場合には、このコンポーネントは、ブロック９０７で継続する。ブロック９０３で、このコンポーネントは、ラッパーへの文書の変換コンポーネントを呼び出して、ほぼ一致する文書ツリーをラッパーツリーＴｗ’に変換する。ブロック９０４で、このコンポーネントは、ラッパー調整コンポーネントを呼び出して、クラスタに追加される文書ツリーから生成されたラッパーツリーＴｗ’に基づいて、ラッパーツリーＴｗを調整する。ブロック９０５で、このコンポーネントは、文書ツリーＴｄをコレクションＤからクラスタＴＰに移動する。ブロック９０６で、このコンポーネントは、クラスタへの一致する文書の移動コンポーネントを呼び出して、調整されたラッパーツリーと一致するコレクションのすべての文書ツリーをクラスタに移動する。その後、このコンポーネントは、ブロック９０１にループして、調整されたラッパーツリーとほぼ一致するさらなる文書ツリーをチェックする。
【０１１２】
ブロック９０７〜９１１で、このコンポーネントは、クラスタへの文書ツリーの移動に関する適応しきい値を実施する。このコンポーネントが固定しきい値を使用した場合には、このコンポーネントは、ブロック９０７で継続するのではなく、リターンする。ブロック９０７では、このコンポーネントは、現在のしきい値が、前のしきい値を使用して生成されたラッパーツリーより改善されたラッパーツリーをもたらしたかどうかを判定する。判断ブロック９０８で、改善が大きい場合には、このコンポーネントは、ブロック９０９でしきい値を増やし、ブロック９０１にループして、増やされたしきい値に基づいて文書ツリーをクラスタに移動する。しかし、改善が大きくはない場合には、このコンポーネントは、ブロック９１０で継続する。判断ブロック９１０では、改善がある場合に、このコンポーネントは、リターンし、そうでない場合には、このコンポーネントは、ブロック９１１で継続する。ブロック９１１で、このコンポーネントは、改善をもたらさなかった現在のしきい値に関する文書ツリー移動の影響をロールバックし、その後、リターンする。
【０１１３】
図１０は、一実施形態でのラッパー生成システムのほぼ一致する文書のチェックコンポーネントの処理を示す流れ図である。このコンポーネントは、ほぼ一致である文書ツリーが見つかるか、一致する文書ツリーがないと判定されるまで、コレクションＤの文書ツリーとラッパーツリーＴｗとの間の距離をチェックしながらループする。ブロック１００１で、このコンポーネントは、コレクションＤの次の文書ツリーＴｄを選択する。判断ブロック１００２で、コレクションの文書ツリーのすべてが既に選択済みである場合には、ほぼ一致である文書ツリーはなく、このコンポーネントは、ほぼ一致がないことを示してリターンし、そうでない場合には、このコンポーネントは、ブロック１００３で継続する。ブロック１００３で、このコンポーネントは、ラッパーツリーＴｗおよび文書ツリーＴｄを渡して距離計算コンポーネントを呼び出して、文書ツリーとラッパーツリーとの間の距離を計算する。判断ブロック１００４で、距離がしきい値未満である場合に、このコンポーネントは、ほぼ一致を示して文書ツリーを返し、そうでない場合には、このコンポーネントは、ブロック１００１にループして、コレクションの次の文書ツリーを選択する。代替案では、このコンポーネントは、最も近いほぼ一致するが同一ではない文書ツリー、最も遠いほぼ一致する文書ツリー、またはランダムに選択されたほぼ一致する文書ツリーを返すことができる。
【０１１４】
図１１は、一実施形態でのラッパー生成システムの距離計算コンポーネントの処理を示す流れ図である。このコンポーネントは、ラッパーツリーＴｗおよび文書ツリーＴｄを渡され、そのラッパーツリーとその文書ツリーとの間の距離を計算する。ブロック１１０１で、このコンポーネントは、文書ツリーをラッパーツリーに位置合せする。ブロック１１０２で、このコンポーネントは、ラッパーツリーの位置合せされないノードの個数Ｃｗをカウントする。ブロック１１０３で、このコンポーネントは、ラッパーツリーの重さＷ（Ｔｗ）を計算する。ブロック１１０４で、このコンポーネントは、文書ツリーの位置合せされないノードの個数Ｃｄをカウントする。ブロック１１０５で、このコンポーネントは、文書ツリーの重さＷ（Ｔｄ）を計算する。ブロック１１０６で、このコンポーネントは、式５を使用して距離を計算する。その後、このコンポーネントは、リターンする。
【０１１５】
図１２は、一実施形態でのラッパー生成システムのラッパー調整コンポーネントの処理を示す流れ図である。このコンポーネントは、ラッパーツリーの対を渡され、これらを単一のラッパーツリーにマージする。ブロック１２０１で、このコンポーネントは、ラッパー位置合わせコンポーネントを呼び出して、ラッパーツリーのノードを位置合せする。ラッパー位置合わせコンポーネントは、ラッパーツリーのサブツリーのすべての可能な位置合わせをテストする再帰コンポーネントである。このコンポーネントは、動的計画法技法を使用して、以前にテストされた解の再テストを防ぐことができる。ブロック１２０２で、このコンポーネントは、ラッパーツリーのルートノードの次の解を選択する。判断ブロック１２０３で、すべての解が既に選択済みである場合には、このコンポーネントは、ブロック１２０５で継続し、そうでない場合には、このコンポーネントは、ブロック１２０４で継続する。ブロック１２０４で、このコンポーネントは、解のコストを集計し、その後、ブロック１２０２にループして、次の解を選択する。ブロック１２０５で、このコンポーネントは、最小のコストを有する解を選択し、その後、リターンする。
【０１１６】
図１３は、一実施形態でのラッパー生成システムのラッパー位置合わせコンポーネントの処理を示す流れ図である。このコンポーネントは、すべての可能な解のコストを判定するために再帰的に呼び出される。判断ブロック１３０１で、両方のラッパーツリーのレイヤがまだある場合には、このコンポーネントは、ブロック１３０２で継続し、そうでない場合には、このコンポーネントは、リターンする。ブロック１３０２〜１３０５では、このコンポーネントは、新しい解を選択し、ラッパー位置合わせコンポーネントを再帰的に呼び出しながらループする。ブロック１３０２で、このコンポーネントは、現在のレイヤの次の解を選択する。判断ブロック１３０３で、すべての解が既に選択済みである場合には、このコンポーネントは、リターンし、そうでない場合には、このコンポーネントは、ブロック１３０４で継続する。ブロック１３０４で、このコンポーネントは、ラッパーツリーの次のレイヤのノードを位置合せするために、ラッパー位置合わせコンポーネントを再帰的に呼び出す。ブロック１３０５で、このコンポーネントは、レイヤの選択された解のコストをセットし、その後、ブロック１３０２にループして、次の解を選択する。
【０１１７】
本主題を、構造的特徴および／または方法論的動作に固有の言葉で説明してきたが、添付の特許請求の範囲で定義される本主題が、必ずしも上で説明した特定の特徴または動作に限定されないことを理解されたい。そうではなく、上で説明した特定の特徴および動作は、特許請求の範囲を実施する例の形として開示されたものである。したがって、本発明は、添付の特許請求の範囲によるものを除いて限定されない。
【図１】
2010501096.tif 000046
【図２】
2010501096.tif 000047
【図３】
2010501096.tif 000048
【図４】
2010501096.tif 000049
【図５】
2010501096.tif 000050
【図６】
2010501096.tif 000051
【図７】
2010501096.tif 000052
【図８】
2010501096.tif 000053
【図９】
2010501096.tif 000054
【図１０】
2010501096.tif 000055
【図１１】
2010501096.tif 000056
【図１２】
2010501096.tif 000057
【図１３】
2010501096.tif 000058
【国際調査報告】
2010501096.tif 000059
2010501096.tif 000060