(57)【要約】      （修正有）【課題】HTML文書内に記述された表構造部分データを自動的にXML形式データに変換する。【解決手段】HTML文書をXHTML化し、XHTML文書化された文書中の表構造部分データを抽出し、自動的に表の方向とデータ項目領域および値領域を検出し、検出結果に基づき表構造部分データをXML化する。XML化処理は、同一のテータ項目に属するデータの属性や形式は変化しないという根拠に基づき、表構造部分データの表方向を統一し、表構造部分データのテータ項目を表す範囲と値を表す範囲を自動的に分類する。【選択図】図１
2004348450.tif 000002
【特許請求の範囲】
【請求項１】
入力ＨＴＭＬ文書をＸＨＴＭＬ化するＸＨＴＭＬ化処理と、ＸＨＴＭＬ文書中から表構造部分データを抽出する表構造部分データ抽出処理と、抽出表構造部分データをＸＭＬ化するＸＭＬ化処理と、から成るＨＴＭＬ文書中の表構造部分データの自動ＸＭＬ化方法。
【請求項２】
前記表構造部分データ抽出処理は、ＨＴＭＬ文書の作成者が構造情報を表として定義したと考えられる特徴を有する表構造部分データに限定して抽出することを特徴とする、請求項１記載の自動ＸＭＬ化方法。
【請求項３】
前記ＸＭＬ化処理は、同一のデータ項目に属するデータの属性や形式は変化しないという根拠に基づき、ＨＴＭＬ文書から抽出した表構造部分データの表方向を統一化する処理を含むことを特徴とする、請求項１又は２記載の自動ＸＭＬ化方法。
【請求項４】
前記ＸＭＬ化処理は、同一のデータ項目に属するデータの属性や形式は変化しないという根拠に基づき、ＨＴＭＬ文書から抽出した表構造部分データのデータ項目を表す範囲と値を表す範囲を自動的に分類することを特徴とする、請求項１、２又は３記載の自動ＸＭＬ化方法。
【請求項５】
入力ＨＴＭＬ文書をＸＨＴＭＬ化するＸＨＴＭＬ化手順と、ＸＨＴＭＬ文書中から表構造部分データを抽出する表構造部分データ抽出手順と、抽出表構造部分データをＸＭＬ化するＸＭＬ化手順とをコンピュータに実行させるための、ＨＴＭＬ文書中の表構造部分データの自動ＸＭＬ化プログラム。
【請求項６】
前記表構造部分データ抽出手順は、ＨＴＭＬ文書の作成者が構造情報を表として定義したと考えられる特徴を有する表構造部分データに限定して抽出することを特徴とする、請求項５記載の自動ＸＭＬ化プログラム。
【請求項７】
前記ＸＭＬ化手順は、同一のデータ項目に属するデータの属性や形式は変化しないという根拠に基づき、ＨＴＭＬ文書から抽出した表構造部分データの表方向を統一化することを含むことを特徴とする、請求項５又は６記載の自動ＸＭＬ化プログラム。
【請求項８】
前記ＸＭＬ化手順は、同一のデータ項目に属するデータの属性や形式は変化しないという根拠に基づき、ＨＴＭＬ文書から抽出した表構造部分データのデータ項目を表す範囲と値を表す範囲を自動的に分類することを特徴とする、請求項４、５又は６記載の自動ＸＭＬ化プログラム。
【請求項９】
請求項５、６，７又は８に記載の自動ＸＭＬ化プログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＨＴＭＬ文書内に記述された表構造部分でを自動的にＸＭＬ化する自動ＸＭＬ化方法、自動ＸＭＬ化プログラム、および該自動ＸＭＬ化プログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
ネットワーク上に存在する異種情報源の統合に対するニーズが高まってきている。組織内の複数のデータベースの統合による情報共有や、インターネット上で公開されているカタログ情報の統合による商品比較など、ニーズの形態は様々である。このニーズに対して、特許文献１、「異種半構造化情報源統合検索装置（および方法・媒体）（出願準備中）」などの異種情報源統合技術を適用することができる。これらの適用により、リレーショナルデータベース（以降ＲＤＢ）やＸＭＬ文書など、様々な形式で管理されるデータを統合し、検索することが可能になる。
【０００３】
インターネット上で公開されている情報源について、現在最も普及しているデータ形式はＨＴＭＬである。しかしＨＴＭＬでは情報を意味的に構造化することはできない。したがって情報を調べる場合は、全文検索により指定キーワードの含まれるＨＴＭＬ文書を取得し、文書中から所望の情報を利用者が判読しなければならない。例えば、ある商品の価格を調べる場合、商品名をキーワードに指定した全文検索を実施し、キーワードの含まれるＨＴＭＬ文書中から、利用者が価格情報を読み取らなければならない。
【０００４】
これに対して、ＲＤＢやＸＭＬ文書では情報が構造化されているため、ＳＱＬやＸＰａｔｈ等の問い合わせインターフェースを用いた意味的な情報検索が可能である。したがって、ネットワーク上に存在する異種情報源を統合する場合にも、意味的な情報検索機能は必然的に要求されると考えられる。
【０００５】
そこで、ＨＴＭＬ文書を対象に含む異種情報源統合を実現するために、ＨＴＭＬ文書内の情報を構造化する必要が生じる。これに対して、特許文献２に示される構造化技術などを適用することができる。これにより、ＨＴＭＬ文書内に記述された情報は構造化され、他の異種情報源で管理される情報と共に、意味的な情報検索が可能になる。
【０００６】
【特許文献１】特開平１０−１４３５３９号公報
【特許文献２】特開２０００−３４８０６１号公報。
【０００７】
【発明が解決しようとする課題】
ＨＴＭＬ文書内に記述された情報を構造化する上記の従来技術では、文書中に出現するタグ構造の繰り返しパターンを抽出し、パターンに合致する各文中の同一部分に記述された情報を、同一項目の情報として抽出する。しかし、抽出された情報が属する項目の項目名はシステム管理者が設定しなければならない。これは、意味的情報検索に必要なＨＴＭＬ文書の判読をシステム管理者が代行していることを意味する。この手法の問題点を以下に挙げる。
（１）システム管理者の負担が大きい
（２）動的自動登録ができない
（３）わずかなページデザイン（例えば表における項目の並び）の変更にも耐えられない。
【０００８】
したがって、ＨＴＭＬ文書を対象に含む異種情報源統合においては、ＨＴＭＬ文書内に記述された情報の構造化に対して、記述情報が属する項目までもが自動的に抽出される自動構造化手法が要求される。
【０００９】
本発明の目的は、ＨＴＭＬ文書内に記述された表構造部分データに対する自動構造化手法を実現することである。
【００１０】
【課題を解決するための手段】
請求項１にかかる発明は、入力ＨＴＭＬ文書をＸＨＴＭＬ化するＸＨＴＭＬ化処理と、ＸＨＴＭＬ文書中から表構造部分データを抽出する表構造部分データ抽出処理と、抽出表構造部分データをＸＭＬ化するＸＭＬ化処理と、から成るＨＴＭＬ文書中の表構造部分データの自動ＸＭＬ化方法とした。
【００１１】
請求項２にかかる発明は、前記表構造部分データ抽出処理は、ＨＴＭＬ文書の作成者が構造情報を表として定義したと考えられる特徴を有する表構造部分データに限定して抽出することを特徴とする、請求項１記載の自動ＸＭＬ化方法とした。
【００１２】
請求項３にかかる発明は、前記ＸＭＬ化処理は、同一のデータ項目に属するデータの属性や形式は変化しないという根拠に基づき、ＨＴＭＬ文書から抽出した表構造部分データの表方向を統一化する処理を含むことを特徴とする、請求項１又は２記載の自動ＸＭＬ化方法とした。
【００１３】
請求項４にかかる発明は、前記ＸＭＬ化処理は、同一のデータ項目に属するデータの属性や形式は変化しないという根拠に基づき、ＨＴＭＬ文書から抽出した表構造部分データのデータ項目を表す範囲と値を表す範囲を自動的に分類することを特徴とする、請求項１、２又は３記載の自動ＸＭＬ化方法とした。
【００１４】
請求項５にかかる発明は、入力ＨＴＭＬ文書をＸＨＴＭＬ化するＸＨＴＭＬ化手順と、ＸＨＴＭＬ文書中から表構造部分データを抽出する表構造部分データ抽出手順と、抽出表構造部分データをＸＭＬ化するＸＭＬ化手順とをコンピュータに実行させるための、ＨＴＭＬ文書中の表構造部分データの自動ＸＭＬ化プログラムとした。
【００１５】
請求項６にかかる発明は、前記表構造部分データ抽出手順は、ＨＴＭＬ文書の作成者が構造情報を表として定義したと考えられる特徴を有する表構造部分データに限定して抽出することを特徴とする、請求項５記載の自動ＸＭＬ化プログラムとした。
【００１６】
請求項７にかかる発明は、前記ＸＭＬ化手順は、同一のデータ項目に属するデータの属性や形式は変化しないという根拠に基づき、ＨＴＭＬ文書から抽出した表構造部分データの表方向を統一化することを含むことを特徴とする、請求項５又は６記載の自動ＸＭＬ化プログラムとした。
【００１７】
請求項８にかかる発明は、前記ＸＭＬ化手順は、同一のデータ項目に属するデータの属性や形式は変化しないという根拠に基づき、ＨＴＭＬ文書から抽出した表構造部分データのデータ項目を表す範囲と値を表す範囲を自動的に分類することを特徴とする、請求項４、５又は６記載の自動ＸＭＬ化プログラムとした。
【００１８】
請求項９にかかる発明は、請求項５、６，７又は８に記載の自動ＸＭＬ化プログラムを記録したコンピュータ読取可能な記録媒体とした。
【００１９】
【発明の実施の形態】
図１に、コンピュータで実行されるＨＴＭＬ表データ自動構造化処理の概要を示す。まず、入力ＨＴＭＬ文書を読み込み、ＨＴＭＬ化する（ステップＳ１０）。ＸＨＴＭＬとは、ＨＴＭＬの表示用タグ構成をＸＭＬに基づき厳密化した形式である。これにより、ＨＴＭＬ文書中に記述された各データの所在が確実になる。次に、ＸＨＴＭＬ化された文書中から表データを抽出する（ステップＳ２０）。ＨＴＭＬ仕様では表が＜ｔａｂｌｅ＞タグで表されるが、＜ｔａｂｌｅ＞タグは文章の段組などの視覚効果を表す用途にも使用されることが多い。そこで、表データ抽出では、＜ｔａｂｌｅ＞タグで示されるすべての要素の中から、文書作成者が構造情報を表として定義したと考えられるものを抽出する。最後に、抽出されたＸＨＴＭＬ形式の表データを構造化する（ステップＳ３０）。ここでは、＜ｔａｂｌｅ＞タグ内の＜ｔｈ＞および＜ｔｄ＞タグに示される各要素を、データ項目を示している要素とデータ値を示している要素に分類する。データ値を示す要素については、要素名を属するデータ項目の項目名に変換する。これにより、ＨＴＭＬ文書中に記述された表データは、自動的に構造化される。
【００２０】
図２に、ＨＴＭＬ表データ自動構造化処理の入出力に関する具体例を示す。入力ＨＴＭＬ文書１の中にはｎｅｃｋｔｉｅのｄｅｓｉｇｎとｐｒｉｃｅが記述された表が指定されている。ＨＴＭＬブラウザを使用することでこの表は表示２に示すように視覚化され、利用者は視覚的に「ｎｅｃｋｔｉｅ０１のｃｏｌｏｒはｓｉｌｖｅｒであり、Ｐａｔｔｅｒｎはａｒｇｙｌｅであり、Ｐｒｉｃｅは＄８５である」ということを認識できる。しかし、実際のＨＴＭＬ文書１の中では、上記の「ｓｉｌｖｅｒ」や「ａｒｇｙｌｅ」、「＄８５」という情報はすべて＜ｔｄ＞タグで示されており、これらが何の情報であるかを直接認識することはできない。
【００２１】
このようなＨＴＭＬ文書１に対して、本発明のＨＴＭＬ表データ自動構造化処理を適用すると、まずＨＴＭＬ文書１がステップＳ１０でＸＨＴＭＬ化され、文書中から＜ｔａｂｌｅ＞タグで示される表データが抽出される。そして、表データ中で＜ｔｄ＞タグで示される各情報が項目か値に分類され、値を示している＜ｔｄ＞要素は、タグ名が属するデータ項目の項目名に変換される。図２では、適用結果をＸＭＬ文書３として出力した例を示している。このＸＭＬ文書３では、「ｓｉｌｖｅｒ」は＜ｃｏｌｏｒ＞タグ、「ａｒｇｙｌｅ」は＜ｐａｔｔｅｒｎ＞タグ、「＄８５」は＜Ｐｒｉｃｅ＞タグで示されており、それぞれが何の情報であるかを認識できる。これにより、「ｎｅｃｋｔｉｅ０１のｐｒｉｃｅを調べる」というような意味的な検索が可能になる。
【００２２】
上記のように、本発明により、ＨＴＭＬ文書中に記述された表データを自動的にＸＭＬ化できる。これにより、システム管理者によるＸＭＬ化定義を必要とせず、ＨＴＭＬ文書中に表形式で記述されたデータに対して、意味的な検索を実施することが可能になり、ＸＱｕｅｒｙに代表されるＸＭＬ照会文によるＨＴＭＬ文書内の情報の意味的検索や、ＨＴＭＬ文書の、ＸＭＬ形式でデータを出力する他の情報源との統合検索が実現される。
【００２３】
【実施例】
図面を用いて、本発明の実施例を説明する。図１は、本発明によるＨＴＭＬ表データ自動構造化処理のフローチャートを示す。本発明は、ステップＳ１０で入力ＨＴＭＬ文書をＸＨＴＭＬ化し、ステップＳ２０で文書中から表構造部分データを抽出し、表データを構造化するという処理で構成される。ステップＳ３０におけるＨＴＭＬ文書のＸＨＴＭＬ化には、Ｔｉｄｙ（ｈｔｔｐ：／／ｗｅｂ３．ｗ３．ｏｒｇ／Ｐｅｏｐｌｅ／Ｒａｇｇｅｔｔ／ｔｉｄｙ／）などの既存技術を適用することができる。
【００２４】
図３に示すフローチャートを用いて、本発明の表構造部分データ抽出処理のステップＳ２０の実施例を説明する。まず、ＸＨＴＭＬ化された文書をＸＭＬとして扱い、＜ｂｏｄｙ＞ノードを抽出し（Ｓ２０１）、抽出した＜ｂｏｄｙ＞ノード内のすべての＜ｔａｂｌｅ＞ノードを抽出する（Ｓ２０２）。次に、抽出された各＜ｔａｂｌｅ＞ノードに対して順次以下の処理を適用し、各＜ｔａｂｌｅ＞ノードが表（文書作成者が構造情報を表として記述したと考えられるもの）であるかどうかを判断する。まず、ステップ２０４において、＜ｔａｂｌｅ＞要素の属性「ｂｏｒｄｅｒ」（表の罫線の太さ）が１以上に設定されていた場合、ＨＴＭＬブラウザ上では表の各セルが罫線で囲まれ、表が視覚的に示されることから、該＜ｔａｂｌｅ＞ノードは表であると判断する。＜ｔａｂｌｅ＞要素の属性「ｂｏｒｄｅｒ」（背景色）が０に設定されていた場合、次にＸＨＴＭＬ文書の＜ｂｏｄｙ＞要素、および該＜ｔａｂ１ｅ＞ノードの＜ｔａｂｌｅ＞、＜ｔｒ＞、＜ｔｈ＞、＜ｔｄ＞要素それぞれの属性「ｂｇｃｏｌｏｒ」を確認する。各要素の属性「ｂｇｃｏｌｏｒ」が、その背景となる要素の属性「ｂｇｃｏｌｏｒ」と異なる場合、そのセルが他の部分と区別して表示されることから、該＜ｔａｂｌｅ＞ノードは表であると判断する（ステップＳ２０５）。具体的には、表の背景色（＜ｔａｂｌｅ＞要素の属性「ｂｇｃｏｌｏｒ」）がＨＴＭＬ文書の背景色（＜ｂｏｄｙ＞要素の属性「ｂｇｃｏｌｏｒ」と異なる場合、表中の行の背景色（＜ｔｒ＞要素の属性「ｂｇｃｏｌｏｒ」）が表の背景色と異なる場合、などである。上記の二つの条件をどちらも満たさない場合は、該＜ｔａｂｌｅ＞ノードは段組などの視覚効果を示すために使用されていると判断する。なお、＜ｔａｂｌｅ＞ノード内に入れ子で存在する＜ｔａｂｌｅ＞ノードについても、表であるか否かを判断する。以上の処理により、ＸＨＴＭＬ文書中の表データを抽出する。
【００２５】
次に、図４に示すフローチャートを用いて、本発明の表構造データのＸＭＬ化処理のステップＳ３０の実施例を説明する（ステップＳ３０１〜３１１）。抽出されたＸＨＴＭＬ形式の各表データについて、本処理を適用する。まず、データ内で属性「ｃｏｌｓｐａｎ」や属性「ｒｏｗｓｐａｎ」が２以上に設定された結合＜ｔｈ＞要素および結合＜ｔｄ＞要素を分解し、表データを完全な二次元配列にする。例えば、＜ｔｒ＞ノードの中に、属性「ｃｏｌｓｐａｎ」が２に設定された＜ｔｄ＞要素があれば、これを同じ＜ｔｄ＞要素の２度の繰り返しに変換する。また属性「ｒｏｗｓｐａｎ」が２に設定された＜ｔｄ＞要素があれば、次の＜ｔｒ＞ノード中に同じ＜ｔｄ＞要素を生成する。
【００２６】
次に、表方向統一化処理（ステップＳ３０３）を実施する。ここでは、上位の行がデータ項目を表し、下位の各行がデータを表す表を「横方向の表」と呼び、左側の列がデータ項目を表し、右側の各列がデータを表す表を「縦方向の表」と呼ぶ。この処理は、表の方向を自動的に検出して、方向を揃えることで、どちら向きの表に対しても後続の処理を適用し、ＸＭＬ化を実現するための処理である。表方向の自動検出方法としては、行および列それぞれにおける＜ｔｈ＞要素または＜ｔｄ＞要素の属性、またはデータ形式に関する変化数の平均値を求め、行における平均値が少ない場合は「横方向の表」、列における平均値が少ない場合は「縦方向の表」とする方法が考えられる。これは、同一のデータ項目に属するデータの属性や形式は変化しない、という根拠に基づく。＜ｔｈ＞要素または＜ｔｄ＞要素の、属性としては「ｂｇｃｏｌｏｒ」属性が、データ形式としては数値か否かという情報が、変化の基となる値として考えられる。
【００２７】
図５には、「ｂｇｃｏｌｏｒ」属性に基づく表方向統一化処理のフローチャート（ステップＳ３２１〜Ｓ３２６）を、図６には、データ形式が数値か否かという情報に基づく表方向統一化処理のフローチャート（ステップＳ３３１〜Ｓ３３６）を示す。図６は、厳密には「値における数字の割合」に基づく処理を示している。これは、数値を表すデータに単位を表す文字が含まれる場合を想定したものである。数値を表す割合に閾値を設定し、該データが数値か否かを判定する。本処理では、表の方向を横方向に統一化する。
【００２８】
次に、データ項目範囲決定処理を実施する（ステップＳ３０５）。この処理は、横方向に統一化された表において、データ項目を表す行の範囲を決定する処理である。ここでは、各列における＜ｔｈ＞要素または＜ｔｄ＞要素の属性またはデータ形式が、最初に変化するまでの行数をカウントし、最も少ないカウントまでの行を、データ項目を表す行として決定する方法が考えられる。
【００２９】
次に、値範囲行数分の行対応ノードを作成する（ステップＳ３０６）。これは出力するＸＭＬ形式データのノードであり、表における１行のデータを１つの行対応ノードで表す。実施例として、ここでは＜ｔｒ＞ノードを作成するとする。
【００３０】
次に、表の各行を構成する＜ｔｈ＞要素または＜ｔｄ＞要素から、対応するデータ項目を要素名とするノードを生成する（ステップＳ３０７〜Ｓ３１０）。図７は、この要素対応ノード生成処理のフローチャート（ステップＳ３４１〜Ｓ３４６）を示す。行を構成する１つの＜ｔｈ＞要素又は＜ｔｄ＞要素について、以下の処理を実施する。まず、データ項目範囲の最後の行をノード生成行とする（ステップＳ３４１）。ノード生成行において、＜ｔｈ＞要素又は＜ｔｄ＞要素に対応する列の値を名前とするノードを生成し、その値を該＜ｔｈ＞要素又は＜ｔｄ＞要素の値とする。次に、ノード生成行を１行前に移し、該＜ｔｈ＞要素又は＜ｔｄ＞要素の対応する列の値と、その前に生成したノードの名前を比較する（ステップＳ３４２〜Ｓ３４６）。比較の結果、異なる名前である場合には、さらにそのノード生成行における＜ｔｈ＞要素又は＜ｔｄ＞要素に対応する列の値を名前とするノードを生成し、その前に生成したノードを子ノードとしてそこに追加する。この処理を、ノード生成行がデータ項目範囲の最初の行になるまで繰り返す。この処理を、行を構成するすべての＜ｔｈ＞要素又は＜ｔｄ＞要素に対して実施する。
【００３１】
次に、生成した各要素対応ノードについて、親ノードとして生成したノードが同一名であるものを併合し、生成した併合ノードを行対応のに追加する（ステップＳ３０９〜Ｓ３１０）。
【００３２】
図８に以上のＸＭＬ化処理（ステップＳ３０）の具体的な処理イメージを示す。これにより、ＨＴＭＬ文書から抽出した表構造部分データを、自動的にＸＭＬ形式に変換できる。４はＨＴＭＬによる表のイメージ、５はイメージ４の表を分解したもの、６は生成した要素対応ノードによるＸＭＬ形式の表データ、７は同名親ノードを併合したＸＭＬ形式の表データである。
【００３３】
なお、本実施例においては、図１の処理、図３〜図７の処理を実行するプログラムを作成して、これをコンピュータ読取可能な記録媒体に記録して、この記録媒体をコンピュータに読み込ませ実行することより、ＨＴＭＬ文書内に記述された表構造部分データを自動的にＸＭＬ形式データに変換することができる。また、本発明は上記実施例に限定されるものではなく、特許請求項の範囲を逸脱しない範囲で変更可能である。
【００３４】
【発明の効果】
上記のように、本発明により、ＨＴＭＬ文書中に記述された表データを自動的にＸＭＬ化できる。これにより、システム管理者によるＸＭＬ化定義を必要とせず、ＨＴＭＬ文書中に表形式で記述されたデータに対して、意味的な検索を実施することが可能になり、ＸＱｕｅｒｙに代表されるＸＭＬ照会文によるＨＴＭＬ文書内の情報の意味的検索や、ＨＴＭＬ文書の、ＸＭＬ形式でデータを出力する他の情報源との統合検索が実現される。
【図面の簡単な説明】
【図１】本発明の概要を説明するための、ＨＴＭＬ表構造データ自動構造化処理のフローチャートである。
【図２】本発明の概要を説明するための、入力となるＨＴＭＬ文書と、ＨＴＭＬ文書の表の表示と、出力となるＸＭＬ形式データの例を示す図である。
【図３】本発明の表構造部分データ抽出処理を説明するためのフローチャートである。
【図４】本発明のＸＭＬ化処理を説明するためのフローチャートである。
【図５】本発明のＸＭＬ化処理における、表方向統一化処理について、「ｂｇｃｏｌｏｒ」属性に基づく処理の実施例を示すフローチャートである。
【図６】本発明のＸＭＬ化処理における、表方向統一化処理について、データ形式が数値か否かという情報に基づく処理の実施例を示すフローチャートである。
【図７】本発明のＸＭＬ化処理における、要素対応ノード生成処理の概要を示すフローチャートである。
【図８】本発明のＸＭＬ化処理の、具体的処理イメージの例を示す図である。
【図１】
2004348450.tif 000003
【図２】
2004348450.tif 000004
【図３】
2004348450.tif 000005
【図４】
2004348450.tif 000006
【図５】
2004348450.tif 000007
【図６】
2004348450.tif 000008
【図７】
2004348450.tif 000009
【図８】
2004348450.tif 000010