(57)【要約】【課題】構造化されたデータを適切に作成すること。【解決手段】記憶部１１は、ＷＥＢページ４０のソースコード３０を記憶する。処理部１２は、ソースコード３０に含まれるタグに対応する、ＷＥＢページ４０に配置された画像要素を特定するとともに、特定された画像要素の座標を画像要素毎に取得する。処理部１２は、ソースコード３０のうち繰り返し出現するタグのパターンを特定する。処理部１２は、特定したパターンに含まれる複数のタグに対応する複数の画像要素の座標の位置関係に基づいて、特定したパターンを構成する情報を構造化したデータを出力する。【選択図】図１
2020140422.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
ＷＥＢページのソースコードに含まれるタグに対応する、前記ＷＥＢページに配置された画像要素を特定するとともに、特定された前記画像要素の座標を画像要素毎に取得し、
前記ソースコードのうち繰り返し出現するタグのパターンを特定し、
特定した前記パターンに含まれる複数のタグに対応する複数の画像要素の座標の位置関係に基づいて、特定した前記パターンを構成する情報を構造化したデータを出力する、
構造化データ作成方法。
【請求項２】
前記画像要素の座標の取得では、前記画像要素に対応するタグに、前記画像要素の座標を追加する、
請求項１記載の構造化データ作成方法。
【請求項３】
前記データの出力では、前記複数の画像要素のうちの第１の画像要素と第２の画像要素とが前記ＷＥＢページにおいて横並びで配置される位置関係にあるか否かの判定に応じて、前記第１の画像要素に対応する第１のタグの情報と、前記第２の画像要素に対応する第２のタグの情報とを同一のレコードとするか、別個のレコードに分けるかを決定する、
請求項１または２記載の構造化データ作成方法。
【請求項４】
前記データの出力では、前記第１の画像要素と前記第２の画像要素とが横並びで配置される位置関係にある場合、第１の属性として前記第１のタグの情報を有し、かつ、第２の属性として前記第２のタグの情報を有するレコードを生成し、生成した前記レコードを含む前記データを出力する、
請求項３記載の構造化データ作成方法。
【請求項５】
前記データの出力では、前記第１の画像要素と前記第２の画像要素とが横並びで配置される位置関係にない場合、前記第１のタグの情報を有する第１のレコードと、前記第２のタグの情報を有する第２のレコードとを生成し、生成した前記第１のレコードと前記第２のレコードとを含む前記データを出力する、
請求項３記載の構造化データ作成方法。
【請求項６】
前記パターンの特定では、前記ソースコードに含まれるタグの木構造に繰り返し出現するタグの前記パターンを、前記木構造におけるタグの階層毎に特定し、
前記データの出力では、前記位置関係に基づいて、前記木構造における階層毎の前記パターンを構成する情報の関係を決定する処理を、前記木構造における最下位の階層から上位の階層へ順に実行することで、構造化した前記データを出力する、
請求項１乃至５の何れか１項に記載の構造化データ作成方法。
【請求項７】
コンピュータに、
ＷＥＢページのソースコードに含まれるタグに対応する、前記ＷＥＢページに配置された画像要素を特定するとともに、特定された前記画像要素の座標を画像要素毎に取得し、
前記ソースコードのうち繰り返し出現するタグのパターンを特定し、
特定した前記パターンに含まれる複数のタグに対応する複数の画像要素の座標の位置関係に基づいて、特定した前記パターンを構成する情報を構造化したデータを出力する、
処理を実行させる構造化データ作成プログラム。
【請求項８】
ＷＥＢページのソースコードを記憶する記憶部と、
前記ソースコードに含まれるタグに対応する、前記ＷＥＢページに配置された画像要素を特定するとともに、特定された前記画像要素の座標を画像要素毎に取得し、前記ソースコードのうち繰り返し出現するタグのパターンを特定し、特定した前記パターンに含まれる複数のタグに対応する複数の画像要素の座標の位置関係に基づいて、特定した前記パターンを構成する情報を構造化したデータを出力する処理部と、
を有する構造化データ作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は構造化データ作成方法、構造化データ作成プログラムおよび構造化データ作成装置に関する。
【背景技術】
【０００２】
コンピュータなどによって扱われるデータには、構造化されたデータ（構造化データ）や構造化されていないデータ（非構造化データ）が含まれる。構造化データの一例として関係データベース（ＲＤＢ：Relational Database）におけるテーブルがある。非構造化データの一例として、文書、画像および音声などのデータがある。非構造化データには、ＨＴＭＬ（Hyper Text Markup Language）文書のように、プレーンテキストではあるがタグなどにより、ある程度はデータが構造化されているデータ（半構造化データ）が含まれ得る。近年、こうした非構造化データに含まれる情報を構造化し、マーケティングなどの事業戦略の意思決定のための分析や機械学習などに有効活用することが考えられている。
【０００３】
例えば、オープンなネットワークに散在する複数ＨＴＭＬ文書に対し、各ＨＴＭＬ文書に内在する情報の文書構造、表現形式、表などの部分構造の構成要素が互いに異なっても、各ＨＴＭＬ文書を跨った情報検索を行う半構造化文書情報統合検索装置の提案がある。
【０００４】
また、ＷＷＷ（World Wide Web）ブラウザを介して、ＨＴＭＬ形式で作成された表データの表構造を解析し、解析した表構造に基づいて、表データを、編集プログラムにおいて表データとして認識することができる形式へ変換する情報処理装置の提案もある。
【０００５】
更に、文書（印刷文書またはインターネットウェブページ文書）を表すデジタルデータからデータを抽出するコンピュータシステムの提案がある。提案のコンピュータシステムは、オリジナルの形式または入力形式の文書のデジタルデータから単語を位置確認し、連結した単語を線に結びつける。そして、コンピュータシステムは、単語線をパラグラフとして結びつけ、連結したパラグラフから表を位置確認し、これらのパラグラフおよび表を中間形式に変換し、この情報を出力形式で出力する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−３４８０６１号公報
【特許文献２】特開２００１−２５６２２０号公報
【特許文献３】国際公開第２０００／２０９８５号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＷＥＢページを記述するＨＴＭＬ文書などは、記述に対するＷＥＢページの表示方法が多様であり、ＨＴＭＬ文書などに含まれる情報を汎用的な手法で適切に構造化することが容易でない。例えば、ＨＴＭＬでは、主に要素をリスト形式で表示させるためのタグとして、ｕｌタグやｌｉタグがあるが、ｕｌタグやｌｉタグを用いてテーブル形式での表示も可能である。また、ＨＴＭＬでは、主に要素をテーブル形式で表示させるためのタグとして、ｔａｂｌｅタグなどがあるが、ｔａｂｌｅタグなどを用いてリスト形式での表示も可能である。このため、ＨＴＭＬ文書に含まれるタグ構造を参照するだけでは、適切な構造化を行えないことがある。
【０００８】
１つの側面では、本発明は、構造化されたデータを適切に作成できる構造化データ作成方法、構造化データ作成プログラムおよび構造化データ作成装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの態様では、構造化データ作成方法が提供される。この構造化データ作成方法では、コンピュータが、ＷＥＢページのソースコードに含まれるタグに対応する、ＷＥＢページに配置された画像要素を特定するとともに、特定された画像要素の座標を画像要素毎に取得し、ソースコードのうち繰り返し出現するタグのパターンを特定し、特定したパターンに含まれる複数のタグに対応する複数の画像要素の座標の位置関係に基づいて、特定したパターンを構成する情報を構造化したデータを出力する。
【００１０】
また、１つの態様では、構造化データ作成プログラムが提供される。
また、１つの態様では、構造化データ作成装置が提供される。
【発明の効果】
【００１１】
１つの側面では、構造化されたデータを適切に作成できる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態の構造化データ作成装置を示す図である。
【図２】第２の実施の形態の情報処理システムを示す図である。
【図３】構造化データ作成装置のハードウェア例を示すブロック図である。
【図４】構造化データ作成装置の機能例を示すブロック図である。
【図５】ＨＴＭＬデータの木構造の例を示す図である。
【図６】ブラウザによるＷＥＢページの表示例を示す図である。
【図７】ＨＴＭＬデータの例を示す図である。
【図８】座標挿入後のＨＴＭＬデータの例を示す図である。
【図９】ｂｌｏｃｋタグ挿入後のＨＴＭＬデータの例を示す図である。
【図１０】構造化データの例を示す図である。
【図１１】構造化データ作成装置の処理例を示すフローチャートである。
【図１２】タグの繰り返しパターンの抽出例を示す図である。
【図１３】タグの繰り返しパターンのブロック化の例（その１）を示す図である。
【図１４】タグ要素の位置関係の検出例（その１）を示す図である。
【図１５】タグの繰り返しパターンのブロック化の例（その２）を示す図である。
【図１６】タグ要素の位置関係の検出例（その２）を示す図である。
【図１７】タグの繰り返しパターンのブロック化の例（その３）を示す図である。
【図１８】タグ要素の位置関係の検出例（その３）を示す図である。
【図１９】テーブル構造の表現例を示す図である。
【図２０】構造化データの作成例を示す図である。
【図２１】構造化データの作成例（続き）を示す図である。
【図２２】構造化の比較例を示す図である。
【図２３】表示内容に応じた構造化の例を示す図である。
【図２４】タグに対する表示例（その１）を示す図である。
【図２５】タグに対する表示例（その２）を示す図である。
【発明を実施するための形態】
【００１３】
以下、本実施の形態について図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態を説明する。
【００１４】
図１は、第１の実施の形態の構造化データ作成装置を示す図である。
構造化データ作成装置１０は、ＷＥＢページのソースコードに基づいて、ＷＥＢページに含まれる情報を構造化した構造化データを作成し、構造化データを出力する。ＷＥＢページのソースコードは、例えば、ＨＴＭＬやＸＨＴＭＬ（Extensible HTML）などのマークアップ言語により記述される。
【００１５】
構造化データ作成装置１０は、ネットワークを介して、他のコンピュータ（例えば、ＷＥＢサーバ）からＷＥＢページのソースコードを取得してもよい。構造化データ作成装置１０は、表示装置２０に接続されてもよい。構造化データ作成装置１０は、ＷＥＢページのソースコードに基づいて、表示装置２０にＷＥＢページを表示させてもよい。構造化データ作成装置１０は、記憶部１１および処理部１２を有する。
【００１６】
記憶部１１は、ＲＡＭ（Random Access Memory）などの揮発性記憶装置でもよいし、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性記憶装置でもよい。処理部１２は、ＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）などを含み得る。処理部１２はプログラムを実行するプロセッサであってもよい。ここでいう「プロセッサ」には、複数のプロセッサの集合（マルチプロセッサ）も含まれ得る。
【００１７】
記憶部１１は、ソースコード３０を記憶する。ソースコード３０は、ＷＥＢページ４０を表示するためのソースコードである。ソースコード３０は、複数の種類のタグを含む。タグは、ＷＥＢページ４０に表示される画像要素を定義する。例えば、複数の種類のタグは、ｔａｇＡ、ｔａｇＢ、ｔａｇＣ、ｔａｇＤを含む。
【００１８】
ｔａｇＡは、他の種類のタグで定義される画像要素全体の表示形式を定義する。表示形式としては、例えば、行および列の２次元構造をもつテーブル形式や、要素を縦に列挙するリスト形式などが考えられる。
【００１９】
ｔａｇＢは、見出しとして表示させるテキストの画像要素を定義する。ソースコード３０の例では、ｔａｇＢにより、「２０１８年」や「２０１９年」といった西暦が見出しとして定義されている。ｔａｇＣは、ｔａｇＢ配下で１つの段落として表示させる画像要素のグループを定義する。
【００２０】
ｔａｇＤは、ｔａｇＣで定義されたグループに属する画像要素を定義する。ソースコード３０の例では、ｔａｇＢで定義される「２０１８年」の見出しの配下のグループとして、テキスト要素「１月」、「ＡＡＡ」、「２月」、「ＢＢＢ」がｔａｇＤにより定義されている。ソースコード３０の例では、ｔａｇＢで定義される「２０１９年」の見出しの配下のグループとして、テキスト要素「３月」、「ＣＣＣ」がｔａｇＤにより定義されている。
【００２１】
第１の実施の形態の例では、ｔａｇＤの画像要素の表示形式は、ｔａｇＡによって定義されている。表示形式としては、ｔａｇＡ本来の表示形式の他にも、ｔａｇＡのクラス属性で指定されるクラス名に応じた表示形式を指定可能である。ｔａｇＡのクラス属性には、表示形式を定義するスタイルシートと呼ばれる情報に対応するクラス名を指定可能である（ソースコード３０の例ではクラス名「ＸＸＸＸ」が指定されている）。すなわち、ｔａｇＡでは、ｔａｇＡに対応する通常の表示形式（例えば、リスト形式）の他にも、例えば、クラス属性に設定されるクラス名に応じたスタイルシートにより定義された他の表示形式（例えば、テーブル形式）が指定され得る。
【００２２】
したがって、図１で例示されているソースコード３０の記述のみからでは、ｔａｇＤで表される各要素が通常の表示形式で表示されることを意図しているのか、あるいは、他の表示形式で表示されることを意図しているのかを判別することはできない。ここで、構造化では、ＷＥＢページ４０の作成者により意図されている情報の分類が、構造化後のデータに反映されていることが好ましい。このため、ＷＥＢページ４０の作成者により、各要素がどのように表示されることが意図されているかを判別することは、ＷＥＢページ４０に含まれる情報を構造化する上で重要である。ＷＥＢページ４０の作成者により意図される情報の分類はＷＥＢページ４０の各要素の表示形式に反映されるからである。
【００２３】
例えば、ソースコード３０のみに基づいて構造化を行う場合で、タグ構造に応じて、見出しを定義するタグであるｔａｇＢの情報を、当該ｔａｇＢの配下のタグの情報に分配するというルールのみを適用する場合を考える。この場合、ｔａｇＡによる表示形式がリスト形式か、テーブル形式か、ｔａｇＡの情報のみでは判別できない。このため、ソースコード３０の構造化の結果として、構造化データ候補３１または構造化データ候補３２などのように、複数の候補が考えられ、適切な結果を得られない可能性がある。ここで、構造化データ候補３１は、ソースコード３０の表示形式としてリスト形式が意図されている場合の構造化結果の例である。構造化データ候補３２は、ソースコード３０の表示形式としてテーブル形式が意図されている場合の構造化結果の例である。なお、図１では分かり易い様に、ソースコード３０に対して簡単な構造化データ候補を２つ例示しているが、ソースコード３０に対して、他の構造化データ候補（例えば、列数が４以上のもの）も考えられる。
【００２４】
そこで、処理部１２は、ソースコード３０によるＷＥＢページ４０の表示内容を考慮して、ソースコード３０の情報の構造化を行う。
処理部１２は、ソースコード３０に含まれるタグに対応する、ＷＥＢページ４０に配置された画像要素を特定するとともに、特定された画像要素の座標を画像要素毎に取得する。図１には、ＷＥＢページ４０の表示装置２０による表示例が示されている。ＷＥＢページ４０は、画像要素４１，４２，４３，４４，４５，４６，４７，４８を有する。
【００２５】
画像要素４１は、ｔａｇＢで定められる「２０１８年」という見出しのテキストである。画像要素４２，４３，４４，４５は、ｔａｇＣおよびｔａｇＤで定められる、「２０１８年」の見出しの配下の画像要素である。画像要素４２は、「１月」というテキストである。画像要素４３は、「ＡＡＡ」というテキストである。画像要素４４は、「２月」というテキストである。画像要素４４は、「ＢＢＢ」というテキストである。
【００２６】
画像要素４６は、ｔａｇＢで定められる「２０１９年」という見出しのテキストである。画像要素４７，４８は、ｔａｇＣおよびｔａｇＤで定められる、「２０１９年」の見出しの配下の画像要素である。画像要素４７は、「３月」というテキストである。画像要素４８は、「ＣＣＣ」というテキストである。
【００２７】
画像要素４１〜４８それぞれの位置は、ＷＥＢページ４０における所定の座標（ｘ，ｙ）によって表される。例えば、ＷＥＢページ４０の左上の端を原点（０，０）とし、向かって右へ向かう方向をｘ軸の正方向、下へ向かう方向をｙ軸の正方向として、ｘｙ軸を定める。すると、例えば、各画像要素を囲う矩形領域を各画像要素の表示領域として、当該矩形領域の４つの頂点の座標、または、４つの頂点のうちの１以上の頂点の座標、矩形領域の中心の座標などにより、ＷＥＢページ４０における各画像要素の位置を表せる。
【００２８】
また、ｔａｇＣのように、複数の画像要素をグループ化するタグの場合、該当のグループに属する複数の画像要素を囲う矩形領域の頂点の座標や当該矩形領域の中心の座標により、当該タグに対応するグループ化された画像要素の位置を表せる。
【００２９】
処理部１２は、ソースコード３０のタグを順次参照して、当該タグに対応する画像要素を含むＷＥＢページ４０の表示情報を作成する。このため、ＷＥＢページ４０の表示情報を作成する過程で、ソースコード３０のタグとＷＥＢページ４０の画像要素とを対応付けることができる。あるいは、処理部１２は、ソースコード３０に含まれる各タグで定められるテキストと、ＷＥＢページ４０に表示されるテキストとの文字コードの照合により、タグと画像要素とを対応付けてもよい。更に、処理部１２は、ソースコード３０に含まれる各タグで定められるテキスト画像と、ＷＥＢページ４０に表示されるテキスト画像との画像の照合により、タグと画像要素とを対応付けてもよい。
【００３０】
処理部１２は、ソースコード３０のうち繰り返し出現するタグのパターンを特定する。例えば、ソースコード３０は、ｔａｇＡ、ｔａｇＢ、ｔａｇＣ、ｔａｇＤによるタグの木構造を含む。
【００３１】
例えば、処理部１２は、ソースコード３０を参照して、木構造の最下層にｔａｇＤが繰り返し出現するというタグの第１のパターンを特定する。また、処理部１２は、ソースコード３０を参照して、最下層の１つ上の層に、ｔａｇＣおよびｔａｇＣの配下のｔａｇＤが繰り返し出現するというタグの第２のパターンを特定する。また、処理部１２は、ソースコード３０を参照して、最下層の２つ上の層（最上層の１つ下の層）に、ｔａｇＢ、ｔａｇＢの配下のｔａｇＣ、ｔａｇＣの配下のタグＤが繰り返し出現するというタグの第３のパターンを特定する。
【００３２】
処理部１２は、特定したパターンに含まれる複数のタグに対応する複数の画像要素の座標の位置関係に基づいて、特定したパターンを構成する情報を構造化したデータを出力する。
【００３３】
例えば、処理部１２は、上記の第１のパターンを形成するｔａｇＤに対応する画像要素４２〜４５，４７，４８について、次の位置関係を検出する。
第１に、処理部１２は、画像要素４２，４３のｙ座標が一致（あるいは、所定の誤差内で一致）し、画像要素４２，４３のｙ軸方向の幅が一致（あるいは、所定の誤差内で一致）することを検出する。処理部１２は、画像要素４２，４３をグループ化する。
【００３４】
第２に、処理部１２は、画像要素４４，４５のｙ座標が一致（あるいは、所定の誤差内で一致）し、画像要素４４，４５のｙ軸方向の幅が一致（あるいは、所定の誤差内で一致）することを検出する。処理部１２は、画像要素４４，４５をグループ化する。
【００３５】
第３に、処理部１２は、画像要素４７，４８のｙ座標が一致（あるいは、所定の誤差内で一致）し、画像要素４７，４８のｙ軸方向の幅が一致（あるいは、所定の誤差内で一致）することを検出する。処理部１２は、画像要素４７，４８をグループ化する。
【００３６】
ｙ軸位置およびｙ軸幅が一致（または所定の誤差内で一致）する位置関係にある画像要素同士をグループ化する理由は、各画像要素が当該位置関係にある場合、これら画像要素の情報が関係を有し、２次元構造をもつテーブル形式の１レコードに相当していると推定されるからである。ここで、「レコード」は「組」や「タプル」などと呼ばれてもよい。
【００３７】
次に、処理部１２は、上記の第２のパターンを形成するｔａｇＣおよびｔａｇＤに対応する画像要素について、次の位置関係を検出する。ここで、ＷＥＢページ４０の例では、ｔａｇＣおよびｔａｇＤに対応する画像要素は３つである。１つ目は、画像要素４２，４３をグループ化した画像要素である。２つ目は、画像要素４４，４５をグループ化した画像要素である。３つ目は、画像要素４７，４８をグループ化した画像要素である。前述のように、複数の画像要素をグループ化した画像要素の位置は、複数の画像要素を囲う矩形の座標によって表される。処理部１２は、ｔａｇＣおよびｔａｇＤに対応するこれら３つの画像要素のｘ軸座標が一致（あるいは、所定の誤差内で一致）し、ｘ軸方向の幅が一致（あるいは、所定の誤差内で一致）することを検出する。すると、処理部１２は、ｔａｇＣおよびｔａｇＤに対応するこれら３つの画像要素が縦方向に並べて表示されていると判断する。その結果、処理部１２は、画像要素４２，４４，４７が縦方向に並べて表示され、画像要素４３，４５，４８が縦方向に並べて表示されていると判断する。
【００３８】
このため、処理部１２は、ｔａｇＤで定められる画像要素４２〜４５，４７，４８の表示形式が、ソースコード３０における出現順に、２つずつ横に並べた組をもつテーブル形式であると判断する。本例では、画像要素４２，４３が１つ目の組、画像要素４４，４５が２つ目の組、画像要素４７，４８が３つ目の組である。
【００３９】
更に、処理部１２は、上記の第１のパターンを形成するｔａｇＢ、ｔａｇＣおよびｔａｇＤに対応する画像要素について、ｔａｇＢが見出しに相当することから、ｔａｇＢの情報を、ｔａｇＢの配下の各画像要素のグループに分配する。すなわち、処理部１２は、画像要素４２，４３の組、および、画像要素４４，４５の組のそれぞれに、画像要素４１の情報を加える。同様に、処理部１２は、画像要素４７，４８の組に、画像要素４６の情報を加える。
【００４０】
その結果、処理部１２は、次の３つのレコード（第１，第２，第３のレコード）を作成する。第１のレコードは、第１属性（属性＃１）が画像要素４１のテキスト情報「２０１８年」、第２属性（属性＃２）が画像要素４２のテキスト情報「１月」、第３属性（属性＃３）が画像要素４３のテキスト情報「ＡＡＡ」である。ここで、「第１属性」、「第２属性」、「第３属性」といった名称は、単に列名を識別するためのラベルであり、任意の名称でよい。第２のレコードは、第１属性が画像要素４１のテキスト情報「２０１８年」、第２属性が画像要素４４のテキスト情報「２月」、第３属性が画像要素４５のテキスト情報「ＢＢＢ」である。第３のレコードは、第１属性が画像要素４６のテキスト情報「２０１９年」、第２属性が画像要素４７のテキスト情報「３月」、第３属性が画像要素４８のテキスト情報「ＣＣＣ」である。
【００４１】
そして、処理部１２は、上記の３つのレコード（第１，第２，第３のレコード）を含む構造化データ（例えば、構造化データ候補３２に相当する情報）を出力する。構造化データは、ＲＤＢにおけるテーブルや、ＣＳＶ（Comma Separated Values）などのデータ形式で出力され得る。
【００４２】
構造化データ作成装置１０によれば、ＷＥＢページのソースコードに含まれるタグに対応する、ＷＥＢページに配置された画像要素が特定されるとともに、特定された画像要素の座標が画像要素毎に取得される。ソースコードのうち繰り返し出現するタグのパターンが特定される。特定されたパターンに含まれる複数のタグに対応する複数の画像要素の座標の位置関係に基づいて、特定したパターンを構成する情報を構造化したデータが出力される。
【００４３】
これにより、構造化されたデータを適切に作成できる。タグの構造の解析のみでは、上記のように、クラス属性などによって表示形式が変わり得る場合に、ＷＥＢページ４０の作成者の意図に応じた情報の分類を行えず、適切な構造化を行えないことがある。例えば、ソースコード３０の例では、ｔａｇＡが通常はリスト形式での表示に用いられるにも拘わらず、ＷＥＢページ４０のように、ｔａｇＤの要素を出現順に２つずつ組み合わせ、各組の要素を横に並べたテーブル形式での表示とされることがある。このような場合に、ソースコード３０におけるタグの構造の解析のみを行うことで、ｔａｇＢの見出しのテキスト情報を、その配下のｔａｇＤのテキスト情報に分配することで、構造化データ候補３１を構造化結果として出力することも考えられる。しかし、構造化データ候補３１は、列数が２つであり、ＷＥＢページ４０の表示形式（例えば、年の見出しに対して、月および月に付随する情報の提示）に対して、ソースコード３０に含まれる情報が適切に構造化されているとは言えない。
【００４４】
一方、処理部１２は、ＷＥＢページ４０における各画像要素の位置関係に基づき、ＷＥＢページ４０の当該表示形式に則って、ソースコード３０に含まれる情報を適切に分類することができる。その結果、ＷＥＢページ４０の表示形式（例えば、年の見出しに対して、月および月に付随する情報の提示）に対して、適切な構造化データ（例えば、構造化データ候補３２に相当する情報）を出力できる。
【００４５】
なお、ＷＥＢページ４０における各画像要素の表示形式を特定するために、ソースコード３０に含まれる、または、ソースコード３０とは異なるソースコードに含まれるスタイルシートの記述内容を解析することも考えられるが、当該解析には時間がかかる。一方、構造化データ作成装置１０のようにレンダリング後のＷＥＢページ４０を用いることで、構造化データの作成を高速に行える利点もある。
【００４６】
［第２の実施の形態］
次に、第２の実施の形態を説明する。
図２は、第２の実施の形態の情報処理システムを示す図である。
【００４７】
第２の実施の形態の情報の情報処理システムは、構造化データ作成装置１００およびＷＥＢサーバ２００を含む。構造化データ作成装置１００およびＷＥＢサーバ２００は、ネットワーク５０に接続されている。ネットワーク５０は、例えば、ＬＡＮ（Local Area Network）でもよいし、ＷＡＮ（Wide Area Network）やインターネットなどでもよい。
【００４８】
構造化データ作成装置１００は、ＷＥＢサーバ２００が提供するＷＥＢページに含まれる情報の構造化を支援するサーバコンピュータである。構造化の結果として得られる構造化データは、例えば、機械学習の入力データとして用いられたり、ＷＥＢページの検索用データとして用いられたり、構造化データから統計情報を抽出して事業戦略に用いられたりなど、多様な用途で利用され得る。
【００４９】
ＷＥＢサーバ２００は、ＷＥＢページを提供するサーバコンピュータである。ＷＥＢページは、ＨＴＭＬデータやＸＨＴＭＬデータ（ＨＴＭＬ文書やＸＨＴＭＬ文書と呼ばれることもある）などのデータ形式で提供される。以下では、ＷＥＢページのソースコードとして、主に、ＨＴＭＬデータを例示するが、他のデータ形式でもよい。
【００５０】
例えば、ネットワーク５０に接続されたクライアントコンピュータ（図２では図示を省略している）は、ＷＥＢブラウザ（単に、ブラウザということがある）として機能する。クライアントコンピュータは、ブラウザの機能により、ＷＥＢサーバ２００から取得したＨＴＭＬデータに基づき、当該ＨＴＭＬデータに応じたＷＥＢページを表示し、ユーザに提示する。
【００５１】
なお、図２の例では、簡単のためにＷＥＢサーバ２００を１つ例示しているが、構造化データ作成装置１００は、複数のＷＥＢサーバが提供する複数のＷＥＢページを構造化の対象とすることができる。
【００５２】
図３は、構造化データ作成装置のハードウェア例を示すブロック図である。
構造化データ作成装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ１０３、画像信号処理部１０４、入力信号処理部１０５、媒体リーダ１０６およびＮＩＣ（Network Interface Card）１０７を有する。なお、ＣＰＵ１０１は、第１の実施の形態の処理部１２に対応する。ＲＡＭ１０２またはＨＤＤ１０３は、第１の実施の形態の記憶部１１に対応する。
【００５３】
ＣＰＵ１０１は、プログラムの命令を実行するプロセッサである。ＣＰＵ１０１は、ＨＤＤ１０３に記憶されたプログラムやデータの少なくとも一部をＲＡＭ１０２にロードし、プログラムを実行する。なお、ＣＰＵ１０１は複数のプロセッサコアを含んでもよい。また、構造化データ作成装置１００は複数のプロセッサを有してもよい。以下で説明する処理は複数のプロセッサまたはプロセッサコアを用いて並列に実行されてもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」ということがある。
【００５４】
ＲＡＭ１０２は、ＣＰＵ１０１が実行するプログラムやＣＰＵ１０１が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、構造化データ作成装置１００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【００５５】
ＨＤＤ１０３は、ＯＳ（Operating System）やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、構造化データ作成装置１００は、フラッシュメモリやＳＳＤ（Solid State Drive）などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【００５６】
画像信号処理部１０４は、ＣＰＵ１０１からの命令に従って、構造化データ作成装置１００に接続されたディスプレイ１１１に画像を出力する。ディスプレイ１１１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）、プラズマディスプレイ、有機ＥＬ（ＯＥＬ：Organic Electro-Luminescence）ディスプレイなど、任意の種類のディスプレイを用いることができる。
【００５７】
入力信号処理部１０５は、構造化データ作成装置１００に接続された入力デバイス１１２から入力信号を取得し、ＣＰＵ１０１に出力する。入力デバイス１１２としては、マウス・タッチパネル・タッチパッド・トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、構造化データ作成装置１００に、複数の種類の入力デバイスが接続されていてもよい。
【００５８】
媒体リーダ１０６は、記録媒体１１３に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体１１３として、例えば、磁気ディスク、光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤが含まれる。光ディスクには、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）が含まれる。
【００５９】
媒体リーダ１０６は、例えば、記録媒体１１３から読み取ったプログラムやデータを、ＲＡＭ１０２やＨＤＤ１０３などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、ＣＰＵ１０１によって実行される。なお、記録媒体１１３は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体１１３やＨＤＤ１０３を、コンピュータ読み取り可能な記録媒体ということがある。
【００６０】
ＮＩＣ１０７は、ネットワーク５０に接続され、ネットワーク５０を介してＷＥＢサーバ２００を含む他のコンピュータと通信を行うインタフェースである。ＮＩＣ１０７は、例えば、スイッチやルータなどの通信装置とケーブルで接続される。
【００６１】
なお、ＷＥＢサーバ２００も構造化データ作成装置１００と同様のハードウェアにより実現される。
図４は、構造化データ作成装置の機能例を示すブロック図である。
【００６２】
構造化データ作成装置１００は、ＨＴＭＬデータ記憶部１２０、構造化データ記憶部１３０、ブラウザ１４０、座標生成部１５０、タグ構造判定部１６０および構造化データ作成部１７０を有する。
【００６３】
ＨＴＭＬデータ記憶部１２０および構造化データ記憶部１３０は、ＲＡＭ１０２やＨＤＤ１０３の記憶領域を用いて実現される。ブラウザ１４０、座標生成部１５０、タグ構造判定部１６０および構造化データ作成部１７０は、ＲＡＭ１０２に記憶されたプログラムがＣＰＵ１０１により実行されることで実現される。
【００６４】
ＨＴＭＬデータ記憶部１２０は、ＷＥＢサーバ２００から取得されたＨＴＭＬデータ（ＨＴＭＬファイルと呼ばれてもよい）を記憶する。例えば、構造化データ作成装置１００は、ＷＥＢサーバ２００からＨＴＭＬデータを収集し、ＨＴＭＬデータ記憶部１２０に保存する。
【００６５】
構造化データ記憶部１３０は、構造化データ作成部１７０により作成された構造化データを記憶する。構造化データは、例えば、ＷＥＢページ毎に作成される。
ブラウザ１４０は、ＨＴＭＬデータ記憶部１２０に記憶されたＨＴＭＬデータを基にレンダリングを行い、ＷＥＢページを生成する。例えば、ブラウザ１４０は、ディスプレイ１１１にＷＥＢページを表示させる。ＷＥＢページには、ＨＴＭＬデータに含まれるタグによって定義された複数の画像要素が配置される。
【００６６】
座標生成部１５０は、レンダリングされたＷＥＢページに配置された各画像要素の座標を生成する。座標生成部１５０は、ＷＥＢページのＨＴＭＬデータに含まれるタグに、当該タグに対応する画像要素の座標の情報（座標情報）を追加する。座標生成部１５０は、座標情報を追加したＨＴＭＬデータを、ＨＴＭＬデータ記憶部１２０に格納する。
【００６７】
タグ構造判定部１６０は、ＨＴＭＬデータに含まれるタグの木構造を判定し、当該木構造を示すデータ（木構造データ）を生成し、構造化データ作成部１７０に提供する。タグ構造判定部１６０は、生成した木構造データを、ＨＴＭＬデータ記憶部１２０に格納してもよい。
【００６８】
構造化データ作成部１７０は、座標情報が追加されたＨＴＭＬデータ、および、タグ構造判定部１６０により提供される木構造データに基づいて、構造化データを作成する。構造化データ作成部１７０は、タグ構造判定部１６０により判定された木構造データに基づいて、ＨＴＭＬデータ内に繰り返し出現するタグの繰り返しパターンを特定し、タグに対応する画像要素のＷＥＢページ上での配置およびタグの繰り返しパターンに基づいて、タグにより表される情報の関係を判断する。構造化データ作成部１７０は、当該関係に基づいて構造化データを作成し、作成した構造化データを構造化データ記憶部１３０に出力（格納）する。構造化データは、ＲＤＢにおけるテーブルや、ＣＳＶなどのデータ形式で出力され得る。
【００６９】
図５は、ＨＴＭＬデータの木構造の例を示す図である。
例えば、ＨＴＭＬデータＦ１は、ｄｉｖタグ、ｈ２タグ、ｕｌタグ、ｈ３タグおよびｌｉタグを含む。ＨＴＭＬデータＦ１におけるこれらのタグは、木構造Ｔ１を有する。木構造Ｔ１の最上位の階層に対応するタグは、ｄｉｖタグである。ｄｉｖタグの１つ下の階層に対応するタグは、ｈ２タグおよびｕｌタグである。ｈ２タグは見出しに相当するタグであり、本例では、それより下の階層をもたない。ただし、見出しに相当するタグについては、当該タグと同じ階層にある別のタグ（例えば、ｈ２タグに対してｕｌタグ）との関係を有する。ｕｌタグの１つ下の階層に対応するタグは、ｈ３タグおよびｌｉタグである。ｈ３タグは見出しに相当するタグであり、本例では、それより下の階層をもたない。
【００７０】
ＨＴＭＬデータＦ１の例では、各タグの記載方法に応じて、ｄｉｖタグおよびｄｉｖタグ配下のタグは２つのブロックＢ１，Ｂ２に分けられる。ブロックＢ１は、１つのｄｉｖタグ、１つのｈ２タグおよび２つのｕｌタグを含む。ブロックＢ２は、１つのｄｉｖタグ、１つのｈ２タグおよび１つのｕｌタグを含む。
【００７１】
ブロックＢ１は、ブロックＢ１１，Ｂ１２を有する。ブロックＢ１１は、１つのｕｌタグ、１つのｈ３タグ、３つのｌｉタグを含む。ブロックＢ１２は、１つのｕｌタグ、１つのｈ３タグ、２つのｌｉタグを含む。
【００７２】
ブロックＢ２は、ブロックＢ１３を有する。ブロックＢ１３は、１つのｕｌタグ、１つのｈ３タグ、１つのｌｉタグを含む。
ブロックＢ１１は、ブロックＢ１１１を有する。ブロックＢ１１１は、１つのｈ３タグ、３つのｌｉタグを有する。
【００７３】
ブロックＢ１２は、ブロックＢ１２１を有する。ブロックＢ１２１は、１つのｈ３タグ、２つのｌｉタグを有する。
ブロックＢ１３は、ブロックＢ１３１を有する。ブロックＢ１３１は、１つのｈ３タグ、１つのｌｉタグを有する。
【００７４】
ブロックＢ１１１は、ブロックＢ１１１１を有する。ブロックＢ１１１１は、３つのｌｉタグを有する。
ブロックＢ１２１は、ブロックＢ１２１１を有する。ブロックＢ１２１１は、２つのｌｉタグを有する。
【００７５】
例えば、ブロックＢ１，Ｂ２は、「ｂｌｏｃｋ：ｄｉｖ／ｈ２／．．／ｕｌ／ｈ３／．．／ｌｉ」と表記される。ここで、スラッシュ「／」記号は、「／」の左側の階層に対して、「／」の右側の階層の方が１階層下の階層であることを示す。２つのピリオド「．．」の表記は、「／」の右側に相当する階層よりも１階層上の階層を示す。例えば、「ｈ２／．．／ｕｌ」の表記は、ｕｌタグの階層がｈ２タグの階層と同じ階層であることを示す。ブロックＢ１１，Ｂ１２，Ｂ１３は、「ｂｌｏｃｋ：ｕｌ／ｈ３／．．／ｌｉ」と表記される。ブロックＢ１１１，Ｂ１２１，Ｂ１３１は、「ｂｌｏｃｋ：ｈ３／．．／ｌｉ」と表記される。ブロックＢ１１１１，Ｂ１２１１は、「ｂｌｏｃｋ：ｌｉ」と表記される。なお、図５では図示を省略しているが、ｈ２タグに相当するブロックを、「ｂｌｏｃｋ：ｈ２／．．／ｕｌ／ｈ３／．．／ｌｉ」と表記することができる。
【００７６】
図６は、ブラウザによるＷＥＢページの表示例を示す図である。
ＷＥＢページ３００は、例えば、ブラウザ１４０によりＨＴＭＬデータに基づいてレンダリングされ、ディスプレイ１１１により表示される。ＷＥＢページ３００は、複数の画像要素を有する。例えば、画像要素は、ＨＴＭＬデータに付随する画像データに基づいてＷＥＢページ３００に配置されたり、ＨＴＭＬデータに含まれるテキスト情報に基づいてＷＥＢページ３００に配置されたりする。各画像要素のＷＥＢページ３００における位置は、ＷＥＢページ３００における２次元座標（ｘｙ座標）によって表される。
【００７７】
例えば、ＷＥＢページ３００の全領域に対して、左上の端を座標の原点（０，０）とする。ＷＥＢページ３００の左側から右側へ向かう方向をｘ軸の正方向とする。ＷＥＢページ３００の上側から下側へ向かう方向をｙ軸の正方向とする。すると、各画像要素の位置を示す座標を得ることができる。画像要素の位置は、該当の画像要素を囲う矩形領域の１以上の頂点の座標や当該矩形領域の中心の座標などによって表される。図６では、一例として、「２００６（平成１８年）」というＨＴＭＬデータに含まれるテキスト情報に基づく画像要素を囲う矩形領域Ｒ１と、当該画像要素のＷＥＢページ３００における位置（矩形領域Ｒ１の左上頂点）を示す位置ベクトルＶ１とが示されている。例えば、位置ベクトルＶ１は、座標（ｘ，ｙ）＝（ｘ１，ｙ１）を示す。また、矩形領域Ｒ１の各頂点の座標を基に、矩形領域Ｒ１のｘ軸方向の長さ（例えば、ピクセル数で表される）や、ｙ軸方向の長さを、それぞれ画像要素の幅、高さとして求めることができる。
【００７８】
図７は、ＨＴＭＬデータの例を示す図である。
図７では、ＷＥＢページ３００のうちの一部を図示している。例えば、ＷＥＢページ３００は、画像３０１およびテキスト３０２を含む。前述のように、ＷＥＢページ３００は、例えば、ディスプレイ１１１に表示される。
【００７９】
ＨＴＭＬデータ４００は、ＷＥＢページ３００のレンダリングに用いられ、ＷＥＢページ３００の図７で例示した部分に対応する記述例を示している。例えば、ＨＴＭＬデータ４００は、ｌｉタグ、ｄｉｖタグ、ｉｍｇタグ、ｈ３タグ、ｐタグ、ｓｐａｎタグなどを用いて記述されている。
【００８０】
例えば、図６で例示した「２００６（平成１８年）」の画像要素については、ＨＴＭＬデータ４００のうちの「＜ｈ３  ｃｌａｓｓ＝“ｙｅａｒ”＞２００６（平成１８年）＜／ｈ３＞」の記述が対応する。
【００８１】
座標生成部１５０は、ＷＥＢページ３００に含まれる画像要素の座標および幅を特定し、当該画像要素に対応するタグに、特定した座標を挿入する。
図８は、座標挿入後のＨＴＭＬデータの例を示す図である。
【００８２】
ＨＴＭＬデータ４１０は、ＷＥＢページ３００に含まれる画像要素の座標およびスタイル情報を、画像要素に対応するタグに挿入した結果を示している。例えば、図６で例示した「２００６（平成１８年）」の画像要素については、ＨＴＭＬデータ４１０における６行目の記述が対応する。６行目の記述は、パラメータ「ｘ」、「ｙ」、「ｗｉｄｔｈ」、「ｈｅｉｇｈｔ」、「ｔｏｐ」、「ｒｉｇｈｔ」、「ｂｏｔｔｏｍ」、「ｌｅｆｔ」を含む。
【００８３】
パラメータ「ｘ」は、画像要素の左上頂点のｘ座標である。パラメータ「ｙ」は、画像要素の左上頂点のｙ座標である。パラメータ「ｗｉｄｔｈ」は、画像要素の幅である。パラメータ「ｈｅｉｇｈｔ」は、画像要素の高さである。パラメータ「ｔｏｐ」は、画像要素の上端のｙ座標である。パラメータ「ｒｉｇｈｔ」は、画像要素の右端のｘ座標である。パラメータ「ｂｏｔｔｏｍ」は、画像要素の下端のｙ座標である。パラメータ「ｌｅｆｔ」は、画像要素の左端のｘ座標である。
【００８４】
ＨＴＭＬデータ４１０では、他の画像要素に対応するタグについても同様のパラメータにより、各画像要素の位置、幅、高さなどの情報が追加されている。なお、例えば、ｐタグのように、配下に複数の画像要素を含む場合には、当該複数の画像要素を囲う矩形領域の頂点によって、当該ｐタグに対応する画像要素の位置、幅、高さが定められる。
【００８５】
なお、座標生成部１５０は、ＨＴＭＬデータ４００のタグを順次参照して、当該タグに対応する画像要素を含むＷＥＢページ３００の表示情報を作成する。このため、座標生成部１５０は、ＷＥＢページ３００をレンダリングする過程で、ＨＴＭＬデータ４００のタグとＷＥＢページ３００の画像要素とを対応付けることができる。あるいは、座標生成部１５０は、ＨＴＭＬデータ４００に含まれる各タグで定められるテキストと、ＷＥＢページ３００に表示されるテキストとの文字コードの照合により、タグと画像要素とを対応付けてもよい。更に、座標生成部１５０は、ＨＴＭＬデータ４００に含まれる各タグで定められるテキスト画像と、ＷＥＢページ３００に表示されるテキスト画像との画像の照合により、タグと画像要素とを対応付けてもよい。
【００８６】
例えば、座標生成部１５０は、ＷＥＢページ３００を読み込んだブラウザ１４０にてＪａｖａＳｃｒｉｐｔ（登録商標）などを用いて、タグに対応する画像要素の属性値や表示上の座標を、当該タグに付与することができる。
【００８７】
例えば、次のコードを実行することで、あるｄｉｖタグの画面上での幅を取得可能である。
ｄｏｃｕｍｅｎｔ．ｇｅｔＥｌｅｍｅｎｔｓＢｙＴａｇＮａｍｅ（‘ｄｉｖ’）［０］．ｇｅｔＣｌｉｅｎｔＲｅｃｔｓ（）［０］．ｗｉｄｔｈ
また、例えば、次のコードを実行することで、あるｄｉｖタグの「ｘ」という属性値の値に「ｙ」を設定できる。
【００８８】
ｄｏｃｕｍｅｎｔ．ｇｅｔＥｌｅｍｅｎｔｓＢｙＴａｇＮａｍｅ（‘ｄｉｖ’）［０］．ｓｅｔＡｔｔｒｉｂｕｔｅ（‘ｘ’，‘ｙ’）
図９は、ｂｌｏｃｋタグ挿入後のＨＴＭＬデータの例を示す図である。
【００８９】
構造化データ作成部１７０は、タグ構造判定部１６０によって判定されたＨＴＭＬデータ４２０におけるタグの木構造を基に、タグを木構造の階層毎にブロック化する。構造化データ作成部１７０は、ブロック化されたタグ、および、該当のブロックに属するタグに対応する画像要素の位置関係を示すｂｌｏｃｋタグを、ＨＴＭＬデータ４１０に挿入する。ただし、図９の例では、図８で例示した座標の情報の図示を省略している。
【００９０】
例えば、ＨＴＭＬデータ４２０における「＜ｂｌｏｃｋ  ｐａｒａｌｌｅｌ＝‘ｔｒｕｅ’＞〜＜／ｂｌｏｃｋ＞」は、その次に記載された２つのｐタグが属するブロックを示す。このうち、「ｐａｒａｌｌｅｌ＝‘ｔｒｕｅ’」は、２つのｐタグに対応する画像要素のｘ軸方向の位置が一致（あるいは所定の誤差内で一致）していることを示す。
【００９１】
また、例えば、ＨＴＭＬデータ４２０における「＜ｂｌｏｃｋ  ｖｅｒｔｉｃａｌ＝‘ｔｒｕｅ’＞〜＜／ｂｌｏｃｋ＞」は、その次に記載された２つのｓｐａｎタグが属するブロック（図９の例では当該ブロックが２つある）を示す。このうち、「ｖｅｒｔｉｃａｌ＝‘ｔｒｕｅ’」は、２つのｓｐａｎタグが属する画像要素のｙ軸方向の位置が一致（あるいは所定の誤差内で一致）していることを示す。
【００９２】
構造化データ作成部１７０は、タグに対応する画像要素の位置関係を示す情報が追加されたＨＴＭＬデータ４２０に基づいて、ＨＴＭＬデータ４２０に含まれる情報（すなわち、ＨＴＭＬデータ４００に含まれる情報）を構造化した構造化データを作成する。
【００９３】
図１０は、構造化データの例を示す図である。
構造化データ５００は、ＨＴＭＬデータ４２０に対して作成された構造化データの一例である。構造化データ５００は、属性１，２，３，４を含む。
【００９４】
例えば、構造化データ５００は、属性１が「２００６．ｊｐｇ」、属性２が「２００６（平成１８年）」、属性３が「４月」、属性４が「中国に…」というレコードを含む。また、構造化データ５００は、属性１が「２００６．ｊｐｇ」、属性２が「２００６（平成１８年）」、属性３が「１１月」、属性４が「東京都に…」というレコードを含む。
【００９５】
次に、構造化データ作成装置１００による処理手順を説明する。
図１１は、構造化データ作成装置の処理例を示すフローチャートである。
（Ｓ１）ブラウザ１４０は、ＷＥＢサーバ２００からＨＴＭＬデータ４００を取得する。
【００９６】
（Ｓ２）ブラウザ１４０は、ＨＴＭＬデータ４００を用いて、ＷＥＢページ３００のレンダリングを行う。
（Ｓ３）座標生成部１５０は、レンダリングされたＷＥＢページ３００に含まれる画像要素の位置を示す座標を生成し、該当の画像要素に対応するタグに挿入する。その結果、座標生成部１５０は、座標付きのＨＴＭＬデータ４１０を生成する。
【００９７】
（Ｓ４）タグ構造判定部１６０は、ＨＴＭＬデータ４００（または、ＨＴＭＬデータ４１０）に基づいて、タグの繰り返しパターンを抽出し、タグの繰り返しパターンを示す情報を、構造化データ作成部１７０に提供する。
【００９８】
（Ｓ５）構造化データ作成部１７０は、座標付きのＨＴＭＬデータ４１０における各タグを、タグ構造判定部１６０により抽出されたタグの繰り返しパターンに基づいてブロック化する。その結果、構造化データ作成部１７０は、ｂｌｏｃｋタグ付きのＨＴＭＬデータ４２０を生成する。ただし、この段階では、ｂｌｏｃｋタグにおけるタグ属性（ｐａｒａｌｌｅｌやｖｅｒｔｉｃａｌなど）は設定されていない。
【００９９】
（Ｓ６）構造化データ作成部１７０は、タグ要素（タグに対応する画像要素）同士の位置関係を基に構造化データの１レコードにおける属性の組み合わせを決定する。すなわち、構造化データ作成部１７０は、ＨＴＭＬデータ４２０におけるｂｌｏｃｋタグに、タグ要素同士の位置関係を表すタグ属性（ｐａｒａｌｌｅｌやｖｅｒｔｉｃａｌなど）を設定する。構造化データ作成部１７０は、当該設定に基づいて、ＨＴＭＬデータ４２０に含まれる情報を組み合わせて、構造化データ５００におけるレコードを生成する。
【０１００】
（Ｓ７）構造化データ作成部１７０は、作成した構造化データ５００を出力する。例えば、構造化データ作成部１７０は、構造化データ記憶部１３０に構造化データ５００を格納する。構造化データ作成部１７０は、ネットワーク５０に接続されたクライアントコンピュータなどに構造化データ５００を送信してもよい。そして、処理が終了する。
【０１０１】
なお、構造化データ作成装置１００による構造化には、ユーザによる所定の動作条件を設定することもできる。例えば、「構造化データに画像データを含める」や、「構造化対象のＨＴＭＬデータに含まれるリンクを辿って、他のＨＴＭＬデータをＷＥＢサーバ２００から取得し、当該他のＨＴＭＬデータについても構造化を行う」といった動作条件が設定され得る。
【０１０２】
また、座標生成部１５０は、ステップＳ３において画像要素に対応するタグに、当該画像要素の位置を示す座標を追加する。このため、構造化データ作成部１７０は、座標付きのＨＴＭＬデータ４１０に基づいて、タグに対応する画像要素の位置を示す座標を適切に特定でき、複数の画像要素の位置関係を適切に検出することができる。
【０１０３】
次に、上記のステップにおける処理の具体例を説明する。
図１２は、タグの繰り返しパターンの抽出例を示す図である。
例えば、タグ構造判定部１６０は、図８で例示した座標挿入後のＨＴＭＬデータ４１０に対して、タグの繰り返しパターン６１，６２を抽出する。繰り返しパターン６１は、ｐタグとその配下のｓｐａｎタグにより構成される。繰り返しパターン６２はｓｐａｎタグにより構成される。
【０１０４】
なお、図６で例示したＷＥＢページ３００に対するＨＴＭＬデータ４００に関して、タグの繰り返しパターンは更に上位のタグを含むもの（例えば、ｈ３タグを含む繰り返しパターンなど）が存在し得るが、ここでは、説明を簡単にするため、図７（および図８）で例示した部分に絞って説明することとする。下位の階層のタグで説明する手順は、上位の階層のタグにも適用される。また、以降の説明では、座標生成部１５０により各タグに追加された座標などの情報の図示を省略する。
【０１０５】
構造化データ作成部１７０は、タグ構造判定部１６０により判定された繰り返しパターンに基づいて、下位の階層の繰り返しパターン（例えば、繰り返しパターン６２）から上位の階層の繰り返しパターン（例えば、繰り返しパターン６１）に向かって順番に、ブロック化を行う。
【０１０６】
すなわち、タグ構造判定部１６０は、ＨＴＭＬデータ４００（ソースコード）に含まれるタグの木構造に繰り返し出現するタグのパターン（繰り返しパターン）を、木構造におけるタグの階層毎に特定する。構造化データ作成部１７０は、タグに対応する画像要素の位置関係に基づいて、木構造における階層毎の繰り返しパターンを構成する情報の関係を決定する処理を、木構造における最下位の階層から上位の階層へ順に実行することで、構造化データを出力する。これにより、ＨＴＭＬデータ４００に含まれる情報間の関係を適切に構造化データに反映させることができる。
【０１０７】
図１３は、タグの繰り返しパターンのブロック化の例（その１）を示す図である。
構造化データ作成部１７０は、繰り返しパターン６２に対応するタグのブロック化を行う。例えば、ＨＴＭＬデータ４１０は、２つのｓｐａｎタグを含む記述範囲ａ１を含む。そこで、構造化データ作成部１７０は、記述範囲ａ１の直前にｂｌｏｃｋの開始タグｔ１を挿入し、記述範囲ａ１の直後にｂｌｏｃｋの終了タグｔ２を挿入することで、ＨＴＭＬデータ４１１を生成する。これにより、記述範囲ａ１に含まれるｓｐａｎタグがブロック化される。
【０１０８】
図１４は、タグ要素の位置関係の検出例（その１）を示す図である。
ＷＥＢページ３００は、記述範囲ａ１に対応するブロック３１０に属するタグ要素３１１，３１２を含む。タグ要素３１１，３１２それぞれは、記述範囲ａ１に記述されたｓｐａｎタグに対応する画像要素である。
【０１０９】
例えば、構造化データ作成部１７０は、タグ要素３１１の中心のｙ座標と、タグ要素３１２の中心のｙ座標との比較により、タグ要素３１１，３１２のｙ座標が同じ（あるいは、所定の誤差内で同じ）であると判断する。すると、構造化データ作成部１７０は、開始タグｔ１に、タグ属性「ｖｅｒｔｉｃａｌ＝‘ｔｒｕｅ’」を追加することで、開始タグｔ１を開始タグｔ３に更新する。その結果、ＨＴＭＬデータ４１１は、ＨＴＭＬデータ４１２に更新される。これにより、ブロック３１０に属するタグ要素３１１，３１２が横並びであるという位置関係が、ＨＴＭＬデータ４１２に反映される。
【０１１０】
なお、上記の例では、横並びであるという位置関係を、タグ要素３１１，３１２の中心の座標が（所定の誤差内で）一致することとして判定するものとした。一方、例えば、構造化データ作成部１７０は、タグ要素３１１，３１２それぞれの頂点のｙ座標が一致すること、および、タグ要素３１１，３１２それぞれのｙ軸方向の幅が一致することなど、他の条件を基に、横並びであることを判定してもよい。あるいは、構造化データ作成部１７０は、ブロック内において、ｘ軸方向の幅やｙ軸方向の幅などを用いて画像要素のクラスタリングを行い、当該クラスタリングにより同一クラスタに分類される画像要素に対応するタグの情報を横並びであると判断してもよい。更に、構造化データ作成部１７０は、ＨＴＭＬデータに記述されるｄｉｓｐｌａｙ属性（例えば、「＜ｈ３  ｓｔｙｌｅ＝“ｄｉｓｐｌａｙ：ｔａｂｌｅ−ｃｅｌｌ”＞」）の記述に基づき、該当のタグの子要素の繰り返し構造が横並びであると判断してもよい。
【０１１１】
図１５は、タグの繰り返しパターンのブロック化の例（その２）を示す図である。
構造化データ作成部１７０は、繰り返しパターン６２に対応するタグのブロック化を行う。例えば、ＨＴＭＬデータ４１２は、２つのｓｐａｎタグを含む記述範囲ａ２を含む。そこで、構造化データ作成部１７０は、記述範囲ａ２の直前にｂｌｏｃｋタグの開始タグｔ４を挿入し、記述範囲ａ２の直後にｂｌｏｃｋタグの終了タグｔ５を挿入することで、ＨＴＭＬデータ４１３を生成する。これにより、記述範囲ａ２に含まれるｓｐａｎタグがブロック化される。
【０１１２】
図１６は、タグ要素の位置関係の検出例（その２）を示す図である。
ＷＥＢページ３００は、記述範囲ａ２に対応するブロック３２０に属するタグ要素３２１，３２２を含む。タグ要素３２１，３２２それぞれは、記述範囲ａ２に記述されたｓｐａｎタグに対応する画像要素である。
【０１１３】
例えば、構造化データ作成部１７０は、タグ要素３２１の中心のｙ座標と、タグ要素３２２の中心のｙ座標との比較により、タグ要素３２１，３２２のｙ座標が同じ（あるいは、所定の誤差内で同じ）であると判断する。すると、構造化データ作成部１７０は、開始タグｔ４に、タグ属性「ｖｅｒｔｉｃａｌ＝‘ｔｒｕｅ’」を追加することで、開始タグｔ４を開始タグｔ６に更新する。その結果、ＨＴＭＬデータ４１３は、ＨＴＭＬデータ４１４に更新される。これにより、ブロック３２０に属するタグ要素３２１，３２２が横並びであるという位置関係が、ＨＴＭＬデータ４１４に反映される。
【０１１４】
図１７は、タグの繰り返しパターンのブロック化の例（その３）を示す図である。
構造化データ作成部１７０は、繰り返しパターン６２に対応するタグのブロック化が終了すると、次に、繰り返しパターン６１に対応するタグのブロック化を行う。例えば、ＨＴＭＬデータ４１４は、２つのｐタグを含む記述範囲ａ３を含む。そこで、構造化データ作成部１７０は、記述範囲ａ３の直前にｂｌｏｃｋの開始タグｔ７を挿入し、記述範囲ａ３の直後にｂｌｏｃｋの終了タグｔ８を挿入することで、ＨＴＭＬデータ４１５を生成する。これにより、記述範囲ａ３に含まれるｐタグがブロック化される。
【０１１５】
図１８は、タグ要素の位置関係の検出例（その３）を示す図である。
ＷＥＢページ３００は、記述範囲ａ３に対応するブロック３３０に属するタグ要素３３１，３３２を含む。タグ要素３３１，３３２それぞれは、記述範囲ａ３に記述されたｐタグに対応する画像要素である。
【０１１６】
例えば、構造化データ作成部１７０は、タグ要素３３１の中心のｘ座標と、タグ要素３３２の中心のｘ座標との比較により、タグ要素３３１，３３２のｘ座標が同じ（あるいは、所定の誤差内で同じ）であると判断する。すると、構造化データ作成部１７０は、開始タグｔ７に、タグ属性「ｐａｒａｌｌｅｌ＝‘ｔｒｕｅ’」を追加することで、開始タグｔ７を開始タグｔ９に更新する。その結果、ＨＴＭＬデータ４１５は、ＨＴＭＬデータ４２０に更新される。これにより、ブロック３３０に属するタグ要素３３１，３３２のｘ座標が同じであるという位置関係が、ＨＴＭＬデータ４２０に反映される。
【０１１７】
構造化データ作成部１７０は、ＨＴＭＬデータ４２０に基づいて、構造化データ５００を作成する。ここで、以下の説明に用いられる、構造化データ５００のようなテーブル構造の表現例を説明する。
【０１１８】
図１９は、テーブル構造の表現例を示す図である。
配列７１は、１次元の配列が入れ子になった構造をもつ。すなわち、配列７１の１つの要素は配列で表され、当該１つの要素がテーブルの１つのレコードを示す。具体的には、配列７１は、［［ｘ１１，ｘ１２，…］，［ｘ２１，ｘ２２，…］，…］と表され、テーブル７２と等価である。例えば、配列７１のうちの１つの要素である［ｘ１１，ｘ１２，…］は、テーブル７２の１つのレコードに相当する。
【０１１９】
図２０は、構造化データの作成例を示す図である。
構造化データ作成部１７０は、タグ構造判定部１６０により判定された繰り返しパターンに基づいて、下位の階層の繰り返しパターン（例えば、繰り返しパターン６２）から上位の階層の繰り返しパターン（例えば、繰り返しパターン６１）に向かって順番に、レコードの生成を行う。
【０１２０】
構造化データ作成部１７０は、ＨＴＭＬデータ４２０における繰り返しパターン６２に対応する記述範囲４２０ａ，４２０ｂについて、次のレコードを生成する。
記述範囲４２０ａについて、構造化データ作成部１７０は、ｓｐａｎタグに含まれるテキスト群８１を抽出する。テキスト群８１は、「４月」のテキストおよび「中国に…」のテキストを含む。記述範囲４２０ａに対応するｂｌｏｃｋタグには、「ｖｅｒｔｉｃａｌ＝‘ｔｒｕｅ’」が設定されている。このため、構造化データ作成部１７０は、ＷＥＢページ３００上では、「４月」のテキストおよび「中国に…」のテキストが、同じｙ座標に横に並んで表示されると判断する。したがって、構造化データ作成部１７０は、レコード８２を生成する。レコード８２は、「［［４月，中国に…］］」と表される。
【０１２１】
記述範囲４２０ｂについて、構造化データ作成部１７０は、ｓｐａｎタグに含まれるテキスト群８３を抽出する。テキスト群８３は、「１１月」のテキストおよび「東京都に…」のテキストを含む。記述範囲４２０ｂに対応するｂｌｏｃｋタグには、「ｖｅｒｔｉｃａｌ＝‘ｔｒｕｅ’」が設定されている。このため、構造化データ作成部１７０は、ＷＥＢページ３００上では、「１１月」のテキストおよび「東京都に…」のテキストが、同じｙ座標に並んで表示されると判断する。したがって、構造化データ作成部１７０は、レコード８４を生成する。レコード８４は、「［［１１月，東京都に…］］」と表される。
【０１２２】
そして、構造化データ作成部１７０は、レコード８２，８４を要素にもつ配列８５を生成する。
図２１は、構造化データの作成例（続き）を示す図である。
【０１２３】
次に、構造化データ作成部１７０は、ＨＴＭＬデータ４２０における繰り返しパターン６１に対応する記述範囲４２０ｃについて、次のレコードを生成する。記述範囲４２０ｃに対応するｂｌｏｃｋタグには、「ｐａｒａｌｌｅｌ＝‘ｔｒｕｅ’」が設定されている。このため、構造化データ作成部１７０は、ＷＥＢページ３００上では、記述範囲４２０ｃに属するｐタグのタグ要素が、ＷＥＢページ３００では同じｘ座標に縦に並んで表示されると判断する。このため、構造化データ作成部１７０は、配列８５における要素［ｘ１１，ｘ１２，…］のうちの左からｎ（ｎは１以上の整数）番目の要素を、構造化データの左からｎ番目の属性の値とすると判断する。例えば、配列８５の［［４月，中国に…］，［１１月，東京都に…］］のうち、「４月」と「１１月」とを同じ属性とし、「中国に…」と「東京都に…」とを同じ属性とする。
【０１２４】
また、記述範囲４２０ｃには、見出しを表すｈ３タグが付されている。見出しは、その直後の記述範囲４２０ｃを括るため、構造化データ作成部１７０は、当該見出しのテキスト８６を配列８５の各レコードに分配する。図２１の例では、テキスト８６は、「２００６（平成１８年）」である。すなわち、構造化データ作成部１７０は、配列８５およびテキスト８６に基づいて、配列８７を生成する。配列８７は、［［２００６（平成１８年），４月，中国に…］，［２００６（平成１８年），１１月，東京都に…］］と表される。
【０１２５】
配列８７の各要素に更に画像の情報「２００６．ｊｐｇ」を分配した結果が、構造化データ５００に相当する。構造化データに画像の情報を含めるか否かは、前述のユーザにより入力される条件によって決定される。こうして、構造化データ作成部１７０は、構造化データ５００（あるいは配列８７に相当する構造化データ）を作成する。
【０１２６】
このように、構造化データ作成部１７０は、ＷＥＢページ３００を参照して、複数の画像要素のうちの第１の画像要素と第２の画像要素とがＷＥＢページ３００において横並びで配置される位置関係にあるか否かを判定する。そして、構造化データ作成部１７０は、当該判定に応じて、第１の画像要素に対応する第１のタグの情報と、第２の画像要素に対応する第２のタグの情報とを同一のレコードとするか、別個のレコードに分けるかを決定する。これにより、ＷＥＢページ３００における画像要素の配置を考慮して、適切な構造化を行える。
【０１２７】
特に、構造化データ作成部１７０は、第１の画像要素と第２の画像要素とが横並びで配置される位置関係にある場合、第１の属性として第１のタグの情報を有し、かつ、第２の属性として第２のタグの情報を有するレコードを生成し、生成したレコードを含む構造化データを出力する。また、構造化データ作成部１７０は、第１の画像要素と第２の画像要素とが横並びで配置される位置関係にない場合、第１のタグの情報を有する第１のレコードと、第２のタグの情報を有する第２のレコードとを生成し、生成した第１のレコードと第２のレコードとを含む構造化データを出力する。これにより、タグの情報を適切に分類したレコードを含む構造化データを作成できる。
【０１２８】
次に、ＨＴＭＬデータ４００に対する構造化の比較例を説明する。
図２２は、構造化の比較例を示す図である。
例えば、レンダリング後のＷＥＢページ３００を考慮せずに、ＨＴＭＬデータ４００のタグ構造の解析のみで、ＨＴＭＬデータ４００に含まれる情報を構造化することも考えられる。しかし、この場合、構造化データ６００のように、ＷＥＢページ３００における表示形式（例えば、テーブル形式）とは異なる形式（例えば、リスト形式）でタグ要素が分類される可能性がある。
【０１２９】
具体的には、ＷＥＢページ３００による表示では、「４月」や「中国に…」のテキストが同じｙ座標に横並びで配置されている。これは、「４月」というテキストに付随して、「中国に…」というテキストが設定されていることを示している。「１１月」および「東京都に…」の各テキストについても同様の関係にある。
【０１３０】
一方、構造化データ６００の例では、ｓｐａｎタグで定義される各テキストがそれぞれ独立して抽出されており、見出し「２００６（平成１８年）」が、ｓｐａｎタグで定義される各テキストに個別に分配されて構造化されている。すなわち、構造化データ６００では、ＷＥＢページ３００で意図されている情報の分類が適切に反映されていない。この場合、例えば、ユーザは、ＷＥＢページ３００を確認して、構造化データ６００を構造化データ５００のように修正する作業を強いられることになり、ユーザの負担が増す。タグ構造の解析のみで構造化を行うと、このような問題が生じる理由として、ＨＴＭＬなどのデータ形式では、あるタグに対して利用可能な表示形式の自由度が比較的高く、通常の表示形式以外の表示形式が選択され得る点が挙げられる。
【０１３１】
図２３は、表示内容に応じた構造化の例を示す図である。
ＨＴＭＬデータ７００は、ｕｌタグやｌｉタグを用いたリストの記述例を示す。ｕｌタグやｌｉタグは、リスト形式の表示に用いられる。例えば、ＨＴＭＬデータ７００を用いたレンダリングによりＷＥＢページ７１０が表示される。ＷＥＢページ７１０では、ｌｉタグで定義されるテキスト「ＥＬＥＭＥＮＴ  １」〜「ＥＬＥＭＥＮＴ  ４」がリスト形式で列挙して表示される。この場合、ＷＥＢページ７１０に対しては、各リスト要素に見出しのテキストを分配したレコードを含む構造化データ７２０が適正な構造化の結果と考えられる。
【０１３２】
一方、ＨＴＭＬデータ８００は、ｕｌタグやｌｉタグを用いたテーブルの記述例を示す。ＨＴＭＬデータ８００の例では、ｕｌタグのクラス属性に「ｔａｂｌｅ」が指定されることで、当該「ｔａｂｌｅ」に対応するスタイルシートによって、テーブル形式での表示方法が定義される。例えば、ＨＴＭＬデータ８００を用いたレンダリングによりＷＥＢページ８１０が表示される。ＷＥＢページ８１０では、ｌｉタグで定義されるテキスト「ＥＬＥＭＥＮＴ  １」および「ＥＬＥＭＥＮＴ  ２」を１つ目のレコード、同「ＥＬＥＭＥＮＴ  ３」および「ＥＬＥＭＥＮＴ  ４」を２つ目のレコードとしたテーブルが表示される。この場合、ＷＥＢページ８１０に対しては、各レコードに見出しのテキストを分配したレコードを含む構造化データ８２０が適正な構造化の結果と考えられる。
【０１３３】
このように、ＨＴＭＬデータ７００，８００では、ｕｌタグやｌｉタグによる同じタグ構造を有するが、異なる構造化が求められる。こうしたタグに対する表示方法のバリエーションは、ｕｌタグやｌｉタグ以外にも存在する。
【０１３４】
図２４は、タグに対する表示例（その１）を示す図である。
ＨＴＭＬデータ９１０は、ｔａｂｌｅタグ、ｔｂｏｄｙタグ、ｔｒタグおよびｔｄタグを用いたテーブルの表現例を示す。例えば、ブラウザ１４０のＨＴＭＬデータ９１０を用いたレンダリングによりテーブル表示９１１が得られる。
【０１３５】
ＨＴＭＬデータ９２０は、ｕｌタグおよびｌｉタグを用いたリストの表現例を示す。例えば、ブラウザ１４０のＨＴＭＬ９２０を用いたレンダリングによりリスト表示９２１が得られる。
【０１３６】
ＨＴＭＬデータ９３０は、ｄｉｖタグを用いた画像要素のグループの表現例を示す。例えば、ブラウザ１４０のＨＴＭＬ９３０を用いたレンダリングによりグループ表示９３１が得られる。
【０１３７】
図２４で例示した各タグの利用方法は、各タグによる通常の利用方法であり、「ｔａｂｌｅ」や、「ｕｌ」などのタグの名称を識別することで、タグ要素の表示方法を推定して構造化することも考えられる。しかし、これらの各タグを用いて通常とは異なる表示方法を定めることも可能である。
【０１３８】
図２５は、タグに対する表示例（その２）を示す図である。
ＨＴＭＬデータ９１０ａは、ｔａｂｌｅタグ、ｔｂｏｄｙタグ、ｔｒタグおよびｔｄタグを用いたリストの表現例を示す。例えば、ブラウザ１４０のＨＴＭＬデータ９１０ａを用いたレンダリングによりリスト表示９２１が得られる。
【０１３９】
ＨＴＭＬデータ９２０ａは、ｕｌタグおよびｌｉタグを用いたテーブルの表現例を示す。例えば、ブラウザ１４０のＨＴＭＬ９２０ａを用いたレンダリングによりテーブル表示９１１が得られる。
【０１４０】
ＨＴＭＬデータ９３０ａは、ｄｉｖタグを用いたテーブルの表現例を示す。例えば、ブラウザ１４０のＨＴＭＬデータ９３０ａのレンダリングによりテーブル表示９１１が得られる。
【０１４１】
ＨＴＭＬデータ９３０ｂは、ｄｉｖタグを用いたリストの表現例を示す。例えば、ブラウザ１４０のＨＴＭＬデータ９３０ｂのレンダリングによりリスト表示９２１が得られる。
【０１４２】
このように、各種のタグにより、通常の表示形式とは異なる表示形式が表現されることもある。このため、ＨＴＭＬデータ９１０ａ，９２０ａ，９３０ａ，９３０ｂなどに含まれる「ｔａｂｌｅ」や、「ｕｌ」などのタグの構造のみによって、各タグの情報を構造化すると、適切な情報の分類がなされずに、構造化データが作成される可能性がある。
【０１４３】
例えば、ＨＴＭＬデータ９１０ａに対して、ｔａｂｌｅタグの通常のテーブル形式に則って、［ＥＬＥＭＥＮＴ  １，ＥＬＥＭＥＮＴ  ２」のレコードと「ＥＬＥＭＥＮＴ  ３，ＥＬＥＭＥＮＴ  ４」のレコードとをもつ不適切な構造化データを作成してしまうことがある。ＨＴＭＬデータ９１０ａは、リスト表示９２１を表すものであり、［ＥＬＥＭＥＮＴ  １］のレコード、［ＥＬＥＭＥＮＴ  ２］のレコード、［ＥＬＥＭＥＮＴ  ３］のレコード、［ＥＬＥＭＥＮＴ  ４］のレコードをもつ構造化データが適切である。
【０１４４】
あるいは、ＨＴＭＬデータ９２０ａに対して、ｕｌタグの通常のリスト形式に則って、［ＥＬＥＭＥＮＴ  １］のレコード、［ＥＬＥＭＥＮＴ  ２］のレコード、［ＥＬＥＭＥＮＴ  ３］のレコードおよび［ＥＬＥＭＥＮＴ  ４］のレコードをもつ不適切な構造化データを作成してしまうことがある。ＨＴＭＬデータ９２０ａは、テーブル表示９１１を表すものであり、［ＥＬＥＭＥＮＴ  １，ＥＬＥＭＥＮＴ  ２」のレコードと「ＥＬＥＭＥＮＴ  ３，ＥＬＥＭＥＮＴ  ４」のレコードとをもつ構造化データが適切である。
【０１４５】
このように、ＨＴＭＬデータ内の構造では判断が難しい見た目上の横並び構造を、誤った構造で構造化してしまう可能性がある。
そこで、構造化データ作成装置１００は、レンダリング後のＷＥＢページ３００における各画像要素の位置関係を特定することで、ＷＥＢページ３００における各画像要素の表示形式に則って、ＨＴＭＬデータ４００に含まれる情報を適切に分類することができる。その結果、ＷＥＢページ３００の表示形式に対して、適切な構造化データ（例えば、構造化データ５００や配列８７に相当する構造化データ）を出力できる。すなわち、構造化データ作成装置１００は、見た目上横並びであることを考慮して構造化することで、ＨＴＭＬデータの構造化における誤りを減少させることができる。
【０１４６】
なお、ＷＥＢページ３００における各画像要素の表示形式を特定するために、ＨＴＭＬデータ４００に含まれる、または、ＨＴＭＬデータ４００とは異なるファイルに含まれるスタイルシートの記述内容を解析することも考えられるが、当該解析には時間がかかる。一方、構造化データ作成装置１００のようにレンダリング後のＷＥＢページ３００を用いることで、構造化データの作成を高速に行える利点もある。
【０１４７】
なお、第１の実施の形態の情報処理は、処理部１２にプログラムを実行させることで実現できる。また、第２の実施の形態の情報処理は、ＣＰＵ１０１にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体１１３に記録できる。
【０１４８】
例えば、プログラムを記録した記録媒体１１３を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体１１３に記録されたプログラムまたは他のコンピュータから受信したプログラムを、ＲＡＭ１０２やＨＤＤ１０３などの記憶装置に格納し（インストールし）、当該記憶装置からプログラムを読み込んで実行してもよい。
【符号の説明】
【０１４９】
１０  構造化データ作成装置
１１  記憶部
１２  処理部
２０  表示装置
３０  ソースコード
３１，３２  構造化データ候補
４０  ＷＥＢページ
４１，４２，４３，４４，４５，４６，４７，４８  画像要素
【図１】
2020140422.tif 000003
【図２】
2020140422.tif 000004
【図３】
2020140422.tif 000005
【図４】
2020140422.tif 000006
【図５】
2020140422.tif 000007
【図６】
2020140422.tif 000008
【図７】
2020140422.tif 000009
【図８】
2020140422.tif 000010
【図９】
2020140422.tif 000011
【図１０】
2020140422.tif 000012
【図１１】
2020140422.tif 000013
【図１２】
2020140422.tif 000014
【図１３】
2020140422.tif 000015
【図１４】
2020140422.tif 000016
【図１５】
2020140422.tif 000017
【図１６】
2020140422.tif 000018
【図１７】
2020140422.tif 000019
【図１８】
2020140422.tif 000020
【図１９】
2020140422.tif 000021
【図２０】
2020140422.tif 000022
【図２１】
2020140422.tif 000023
【図２２】
2020140422.tif 000024
【図２３】
2020140422.tif 000025
【図２４】
2020140422.tif 000026
【図２５】
2020140422.tif 000027