(57)【要約】【課題】マークアップ言語を用いて記述された文書の文書構造を解釈してブロックの適切な抽出を可能にすること。【解決手段】マークアップ言語を用いて記述された第１形式の文書を取得するステップと、前記マークアップ言語の少なくとも２種類のタグについての文書構造上の上下関係を定義した定義データに基づいて、前記第１形式の文書から、少なくとも前記タグ及び前記タグに関連するテキストをノードとするツリー構造を表現する第２形式の文書を生成するステップと、を含む情報処理方法が提供される。【選択図】図６
2010165272.tif 000002
【特許請求の範囲】
【請求項１】
マークアップ言語を用いて記述された第１形式の文書を取得するステップと；
前記マークアップ言語の少なくとも２種類のタグについての文書構造上の上下関係を定義した定義データに基づいて、前記第１形式の文書から、少なくとも前記タグ及び前記タグに関連するテキストをノードとするツリー構造を表現する第２形式の文書を生成するステップと；
を含む、情報処理方法。
【請求項２】
前記定義データは、前記第１形式の文書に使用されるタグのうち少なくとも見出しに関連するタグについての文書構造上の上下関係を定義したデータである、請求項１に記載の情報処理方法。
【請求項３】
前記ノードには、前記タグによりマークアップされた見出しに対応するノードが含まれる、請求項２に記載の情報処理方法。
【請求項４】
さらに、前記第２形式の文書により表現されるツリー構造から、指定された抽出条件を満たすノードの集合を特定するステップ、を含む、請求項１〜３のいずれかに記載の情報処理方法。
【請求項５】
さらに、特定された前記ノードの集合に対応するブロックを前記第１形式の文書から抽出するステップ、を含む、請求項４に記載の情報処理方法。
【請求項６】
前記抽出条件は、指定された抽出キーに適合する見出しをマークアップするタグに対応するノード以下のノードの集合を抽出可能な条件である、請求項４に記載の情報処理方法。
【請求項７】
前記抽出条件は、指定された抽出キーに適合する見出しをマークアップするタグに対応するノードの親ノード以下のノードの集合を抽出可能な条件である、請求項４に記載の情報処理方法。
【請求項８】
前記マークアップ言語はＨＴＭＬ（ハイパーテキストマークアップ言語）であって、
前記定義データは、少なくともＨＴＭＬにおける“ｈ”タグについての文書構造上の上下関係を定義したデータである、請求項２に記載の情報処理方法。
【請求項９】
マークアップ言語を用いて記述された第１形式の文書を取得する文書取得部と；
前記マークアップ言語の少なくとも２種類のタグについての文書構造上の上下関係を定義した定義データに基づいて、前記第１形式の文書から、少なくとも前記タグ及び前記タグに関連するテキストをノードとするツリー構造を表現する第２形式の文書を生成する文書解析部と；
を備える情報処理装置。
【請求項１０】
情報処理装置を制御するコンピュータを：
マークアップ言語を用いて記述された第１形式の文書を取得する文書取得部と；
前記マークアップ言語の少なくとも２種類のタグについての文書構造上の上下関係を定義した定義データに基づいて、前記第１形式の文書から、少なくとも前記タグ及び前記タグに関連するテキストをノードとするツリー構造を表現する第２形式の文書を生成する文書解析部と；
として機能させるための、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理方法、情報処理装置、及びプログラムに関する。
【背景技術】
【０００２】
インターネットの普及に伴い、インターネットを通して公開されるＷｅｂページは多様なデジタル情報を包含するようになってきている。これらデジタル情報には、ユーザにとって有用な情報と不要な情報が混在している。そこで、従来、Ｗｅｂページから所望の情報を自動的に抽出する手法の開発が進められている。
【０００３】
例えば、下記特許文献１では、ＨＴＭＬ（HyperText  Markup  Language）文書のタグの前後関係から所望の情報を抽出するLR  Wrapperと呼ばれる手法が提案されている。LR  Wrapperでは、タグの前後関係をテンプレートとして予め保持しておき、そのテンプレートを各Ｗｅｂページとマッチングさせることで、所望の情報が抽出される。しかし、LR  Wrapperではマッチングの対象がＷｅｂページの全体であることから、ページ内に複数の異なる分野の情報が含まれる場合には、意図しない情報が抽出されてしまうという欠点がある。これに対し、例えば、下記特許文献１又は下記特許文献２は、Ｗｅｂページを複数のブロックに分割した後、ブロックごとにキーワードとのマッチングを行う手法を提案している。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Nicholas  Kushmerick,  “Wrapper  induction:   efficiency  and  expressiveness”,  Artificial  Intelligence,  2000,  vol.118,  p15-68
【特許文献】
【０００５】
【特許文献１】特開２００７−２７９９６４号公報
【特許文献２】特開２００４−７０４０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、Ｗｅｂページなどを記述する際に一般的に使用されるマークアップ言語を用いて、デジタル情報が必ずしも構造的に記述されているとは限らない。例えば、ＨＴＭＬを用いる場合には、タグを構造的に使用しなくてもよい（例えば、終了タグの省略などが許容される）ため、文書構造上で意味的に上下関係のある事項が単純に並列に記述される場合が多い。それ故、例えば所望の情報が記述されたブロックをＨＴＭＬ文書から抽出しようとしても、適切なブロックの範囲をＨＴＭＬタグを手がかりに容易に決定することができない。また、例えばＸＭＬ（eXtensible  Markup  Language）のサブセットであるＸＨＴＭＬ（eXtensible  HyperText  Markup  Language）を使用すればＷｅｂページを構造的に記述できるものの、今後も継続してＨＴＭＬが使用される可能性は高く、また既存の多くのＨＴＭＬ文書を全てＸＭＬ文書やＸＨＴＭＬ文書に置き換えることは困難である。
【０００７】
そこで、本発明は、ＨＴＭＬ文書に代表されるマークアップ言語を用いて記述された文書の文書構造を解釈してブロックの適切な抽出を可能にする、新規かつ改良された情報処理方法、情報処理装置、及びプログラムを提供しようとするものである。
【課題を解決するための手段】
【０００８】
本発明のある実施形態によれば、マークアップ言語を用いて記述された第１形式の文書を取得するステップと、前記マークアップ言語の少なくとも２種類のタグについての文書構造上の上下関係を定義した定義データに基づいて、前記第１形式の文書から、少なくとも前記タグ及び前記タグに関連するテキストをノードとするツリー構造を表現する第２形式の文書を生成するステップと、を含む情報処理方法が提供される。
【０００９】
また、前記定義データは、前記第１形式の文書に使用されるタグのうち少なくとも見出しに関連するタグについての文書構造上の上下関係を定義したデータであってもよい。
【００１０】
また、前記ノードには、前記タグによりマークアップされた見出しに対応するノードが含まれてもよい。
【００１１】
さらに、前記情報処理方法は、前記第２形式の文書により表現されるツリー構造から、指定された抽出条件を満たすノードの集合を特定するステップ、を含んでもよい。
【００１２】
さらに、前記情報処理方法は、特定された前記ノードの集合に対応するブロックを前記第１形式の文書から抽出するステップ、を含んでもよい。
【００１３】
また、前記抽出条件は、指定された抽出キーに適合する見出しをマークアップするタグに対応するノード以下のノードの集合を抽出可能な条件であってもよい。
【００１４】
また、前記抽出条件は、指定された抽出キーに適合する見出しをマークアップするタグに対応するノードの親ノード以下のノードの集合を抽出可能な条件であってもよい。
【００１５】
また、前記マークアップ言語はＨＴＭＬ（ハイパーテキストマークアップ言語）であって、前記定義データは、少なくともＨＴＭＬにおける“ｈ”タグについての文書構造上の上下関係を定義したデータであってもよい。
【００１６】
また、本発明の別の実施形態によれば、マークアップ言語を用いて記述された第１形式の文書を取得する文書取得部と、前記マークアップ言語の少なくとも２種類のタグについての文書構造上の上下関係を定義した定義データに基づいて、前記第１形式の文書から、少なくとも前記タグ及び前記タグに関連するテキストをノードとするツリー構造を表現する第２形式の文書を生成する文書解析部と、を備える情報処理装置が提供される。
【００１７】
また、本発明の別の実施形態によれば、情報処理装置を制御するコンピュータを、マークアップ言語を用いて記述された第１形式の文書を取得する文書取得部と、前記マークアップ言語の少なくとも２種類のタグについての文書構造上の上下関係を定義した定義データに基づいて、前記第１形式の文書から、少なくとも前記タグ及び前記タグに関連するテキストをノードとするツリー構造を表現する第２形式の文書を生成する文書解析部と、として機能させるためのプログラムが提供される。
【発明の効果】
【００１８】
以上説明したように、本発明に係る情報処理方法、情報処理装置、及びプログラムによれば、マークアップ言語を用いて記述された文書の文書構造を解釈してブロックの適切な抽出を可能とすることができる。
【図面の簡単な説明】
【００１９】
【図１】第１形式の文書をブラウザに表示させた表示内容の一例を示す説明図である。
【図２】図１の文書をテキスト形式で示す説明図である。
【図３】図１の文書のタグの入れ子関係をツリー構造で示す説明図である。
【図４】一実施形態に係る情報処理装置の概要を示す模式図である。
【図５】一実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。
【図６】一実施形態に係る情報処理装置の論理的な構成を示すブロック図である。
【図７】“ｈ”タグが使用されている第１形式の文書の一例を示す説明図である。
【図８】図７の文書のタグの入れ子関係をツリー構造で示す説明図である。
【図９】図７の文書をブラウザに表示させた表示内容を示す説明図である。
【図１０】タグの上下関係を定義した定義データの一例を示す説明図である。
【図１１】一実施形態に係る文書解析処理の流れを示すフローチャートである。
【図１２】文書解析部から出力される第２形式の文書の一例を示す説明図である。
【図１３】一実施形態に係るブロック抽出処理の流れの一例を示すフローチャートである。
【図１４】図１３に示したブロック抽出処理により特定されるノードの集合を例示する説明図である。
【図１５】図１３に示したブロック抽出処理により抽出されるブロックを例示する説明図である。
【図１６】一実施形態に係るブロック抽出処理の流れの他の例を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００２１】
また、以下の順序にしたがって当該「発明を実施するための最良の形態」を説明する。
１．一実施形態において取り扱う文書の例
２．一実施形態に係る情報処理装置の説明
２−１．情報処理装置の概要
２−２．ハードウェア構成例
２−３．機能構成例
３．まとめ
【００２２】
＜１．一実施形態において取り扱う文書の例＞
図１は、本発明の一実施形態において取り扱う文書の一例であるＨＴＭＬ文書をＷｅｂブラウザを通して表示させた画面の一例を示す説明図である。図１を参照すると、タイトルバーに“企業情報”と書かれたＷｅｂページ１２が示されている。
【００２３】
Ｗｅｂページ１２には、文字サイズの大きい“沿革”及び“製品情報”の２つの大見出しが含まれている。そして、見出し“沿革”の下には、文字列“＃ｔｅｘｔ１”が表示されている。また、見出し“製品情報”の下には、文字列”＃ｔｅｘｔ２”と、中間的な文字サイズの“ＴＶ”及び“ＰＣ”という２つの中見出しとが表示されている。さらに、見出し“ＴＶ”の下には、文字列“＃ｔｅｘｔ２”及び製品のサイズに対応する２項目のリスト（“５２  Ｉｎｃｈ”、“４８  Ｉｎｃｈ”）が表示されている。また、見出し“ＰＣ”の下には、文字列“＃ｔｅｘｔ３”が表示されている。
【００２４】
このようなＷｅｂページ１２を見た閲覧者は、例えば、当該Ｗｅｂページ１２により紹介されている企業が製品として“ＴＶ”と“ＰＣ”とを有しており、製品情報が画面領域２２ａに記述されていることを理解することができる。また、例えば、“ＴＶ”に関する製品情報が画面領域２２ｂに記述されていることも理解され得る。
【００２５】
これに対し、図２は、図１に示したＨＴＭＬ文書の内容をＷｅｂブラウザを通すことなくテキスト形式で示した説明図である。
【００２６】
図２を参照すると、ＨＴＭＬタグでマークアップされたＨＴＭＬ文書３２が示されている。ＨＴＭＬ文書３２の内容は、開始タグと終了タグを用いた入れ子構造で記述されている。このうち、文書の一部分であるブロック２６ａは、図１の画面領域２２ａに対応する部分である。また、ブロック２６ｂは、図１の画面領域２２ｂに対応する部分である。
【００２７】
図３は、図２に示したＨＴＭＬ文書３２の入れ子構造を、ＨＴＭＬタグ及びＨＴＭＬタグによりマークアップされたテキストをノードとしてツリー構造で可視化した説明図である。
【００２８】
図３を参照すると、ＨＴＭＬ文書３２は、ｎ１〜ｎ２１の２１個のノードにより構成されている。このうち、ノードｎ１（“ｈｔｍｌ”タグ）の配下には、ノードｎ２（“ｈｅａｄ”タグ）及びノードｎ５（“ｂｏｄｙ”タグ）が位置している。また、ノードｎ２の配下にはノードｎ３（“ｔｉｔｌｅ”タグ）、ノードｎ３の配下にはノードｎ４（テキスト“企業情報”）が位置している。一方、ノードｎ５の配下には、ノードｎ６、ｎ８、ｎ９、ｎ１１、ｎ１３、ｎ１４、ｎ１９、及びｎ２１の８つのノードが並列に位置しており、８つのノードの配下にさらに下位のノードが位置している。このうち、図２のブロック２６ａに対応するノードは、ノードｎ９〜ｎ２１である。また、図２のブロック２６ｂに対応するノードは、ノードｎ１１〜ｎ１８である。
【００２９】
ここで、例えば、ＨＴＭＬ文書３２から企業の製品情報を自動的に取得しようとして“製品情報”というキーワードでマッチングを行った場合、図３のノードｎ１０がキーワードに一致する。しかし、上述したように、製品情報に対応するノードｎ９〜ｎ２１は並列に位置するノードｎ６〜ｎ２１の一部分でしかないため、マッチングにより特定されたノードｎ１０から適切に製品情報に対応するノードを決定することは難しい。また、例えば、製品“ＴＶ”に関する情報や製品“ＰＣ”に関する情報など、その他の任意の情報を自動的に取得しようとする場合も同様である。
【００３０】
そこで、次節より詳しく説明する本発明の一実施形態により、ＨＴＭＬに代表されるマークアップ言語を用いて記述された文書の形式をより情報の抽出に適したツリー構造に変換し、適切なブロックの抽出を容易にする。
【００３１】
＜２．一実施形態に係る情報処理装置の説明＞
［２−１．情報処理装置の概要］
図４は、本発明の一実施形態に係る情報処理装置１００の概要を示す模式図である。
【００３２】
図４を参照すると、情報処理装置１００には、任意の種類のマークアップ言語を用いて記述された第１形式の文書１０が入力される。文書１０に使用されるマークアップ言語は、例えば、ＳＧＭＬ（Standard  Generalized  Markup  Language）、ＳＧＭＬのサブセットであるＸＭＬ、ＨＴＭＬ、又はＴｅｘなどであってよい。文書１０においては、文章の構成（段落分け、リストなど）や見た目などが、文章をマークアップするタグ又はコマンドを用いて指定される。
【００３３】
その後、情報処理装置１００による処理を経て、第２形式の文書２０が出力される。第２形式の文書２０は、少なくとも文書１０に使用されるマークアップ言語のタグ及びタグに関連するテキストをノードとするツリー構造で文書１０の内容を表現する。文書２０は、実質的には、ツリー構造を表現可能な任意のデータの集合であってよい。即ち、文書２０は、例えば、ＸＭＬ形式などのデータファイルであってもよく、又はデータベースに記憶される一群のデータであってもよい。情報処理装置１００による文書１０から文書２０への変換処理については、後により詳しく説明する。
【００３４】
なお、情報処理装置１００は、例えば、図４に示したようなＰＣ（Personal  Computer）やワークステーションなどの汎用コンピュータであってよい。また、情報処理装置１００は、例えば、携帯情報端末や携帯電話などの端末装置、又はテレビジョン受像機などの家電機器であってもよい。さらに、情報処理装置１００は、例えば、ネットワークを介して端末装置へサービスを提供するサーバ装置であってもよい。
【００３５】
［２−２．ハードウェア構成例］
図５は、情報処理装置１００のハードウェア構成の一例を示すブロック図である。図５において、ＣＰＵ（Central  Processing  Unit）５２は、情報処理装置１００の動作全般を制御する。ＲＯＭ（Read  Only  Memory）５４には、一連の処理の一部又は全部を記述したプログラム又はデータが格納される。ＲＡＭ（Random  Access  Memory）５６には、処理の実行時にＣＰＵ５２により用いられるプログラムやデータなどが一時的に記憶される。
【００３６】
ＣＰＵ５２、ＲＯＭ５４、及びＲＡＭ５６は、バス６０を介して相互に接続される。バス６０にはさらに、入出力インタフェース６２が接続される。入出力インタフェース６２は、ＣＰＵ５２、ＲＯＭ５４、及びＲＡＭ５６と、入力装置７０、出力装置７２、記憶装置７４、通信装置７６、及びドライブ８０とを接続するためのインタフェースである。
【００３７】
入力装置７０は、例えばマウスやキーボード、タッチパネル、ボタン、又はスイッチなどの入力装置を介して、ユーザからの指示や情報入力を受け付ける。出力装置７２は、例えばＣＲＴ（Cathode  Ray  Tube）、液晶ディスプレイ、ＯＬＥＤ（Organic  Light  Emitting  Diode）などの表示装置、又はスピーカなどの音声出力装置を介してユーザに情報を出力する。
【００３８】
記憶装置７４は、例えばハードディスクドライブ又はフラッシュメモリなどにより構成され、プログラムやデータを記憶する。通信装置７６は、ＬＡＮ（Local  Area  Network）又はインターネットなどのネットワークを介する通信処理を行う。ドライブ８０は、必要に応じて汎用コンピュータに設けられ、例えばドライブ８０にはリムーバブルメディア８２が装着される。
【００３９】
［２−３．機能構成例］
図６は、情報処理装置１００の論理的な機能配置の一例を示すブロック図である。図６を参照すると、情報処理装置１００は、文書取得部１１０、文書解析部１２０、記憶部１３０、及びブロック抽出部１４０を備える。
【００４０】
［２−３−１．文書の取得と解析］
文書取得部１１０は、マークアップ言語を用いて記述された第１形式の文書を取得する。第１形式の文書は、例えば、図５に示した入力装置７０を用いてユーザにより作成された後、文書取得部１１０へ入力されてもよい。また、第１形式の文書は、例えば、図５に示した記憶装置７４若しくはリムーバブルメディア８２、又は通信装置７６を介して接続された他の装置から、文書取得部１１０により取得されてもよい。
【００４１】
上述したように、第１形式の文書は、ＳＧＭＬ、ＸＭＬ、ＨＴＭＬ、又はＴｅｘなどの任意の種類のマークアップ言語を用いて記述された文書である。文書取得部１１０は、第１形式の文書を取得すると、例えば、タグ（以下、コマンドを含む）の入れ子関係をツリー状に表したツリー構造を生成する。かかる処理は、例えば第１形式の文書がＨＴＭＬ文書である場合には、公知のＨＴＭＬパーサを用いて行うことができる。以下、本明細書において、文書取得部１１０によりタグの入れ子関係に応じて生成されるツリー構造を第１ツリー構造という。なお、本実施形態では、文書取得部１１０が第１形式の文書から第１ツリー構造を生成した後、後述する文書解析部１２０が第１ツリー構造から第２ツリー構造を生成する。しかしながら、他の実施形態として、例えば、文書取得部１１０による第１ツリー構造の生成処理が省略されてもよい。
【００４２】
文書解析部１２０は、マークアップ言語の少なくとも２種類のタグについての文書構造上の上下関係を定義した定義データに基づいて、第１形式の文書から、適切なブロックを抽出することが容易な第２形式の文書を生成する。第２形式の文書とは、図４を用いて説明した文書２０に相当する文書であって、少なくともタグ及びタグに関連するテキストをノードとする第２ツリー構造を表現することができる。
【００４３】
文書解析部１２０により使用される上述した定義データとは、例えば、第１形式の文書に使用されるタグのうち、少なくとも見出しに関連するタグについての文書構造上の上下関係を定義したデータであってよい。見出しに関連するタグとは、例えば、ＨＴＭＬにおける“ｈ”タグに相当する。
【００４４】
図７〜図９は、“ｈ”タグに関連する文書構造上の上下関係について説明するための説明図である。
【００４５】
まず、図７を参照すると、“ｈ１”、“ｈ２”及び“ｈ３”の各タグを用いて記述された第１形式の文書１０の一例が示されている。図７において、文書１０のｂｏｄｙ部には、“ｈ１”タグによりマークアップされた１つの大見出し、大見出しの下の本文、“ｈ２”タグによりマークアップされた２つの中見出し、及び“ｈ３”タグによりマークアップされた２つの小見出しが含まれている。
【００４６】
図８は、図７に示した文書１０をＨＴＭＬパーサを用いて構文解析することにより得られる第１ツリー構造のうち、“ｂｏｄｙ”タグ以下の部分を示している。図８において、“ｈ１”、“ｈ２”及び“ｈ３”の３種類の“ｈ”タグに対応するタグノード、及び“本文”に対応するノードは、いずれも“ｂｏｄｙ”タグの１階層下に並列に位置している。そして、各“ｈ”タグのノードの下位に、各“ｈ”タグによりマークアップされた見出し文字列のノードが位置している。
【００４７】
図９は、図７に示した文書１０をＷｅｂブラウザを通して表示させた表示例を示している。図９を参照すると、“大見出し”は、“本文”及び他の全ての見出しを見出しの対象範囲に含んでいることが理解される。同様に、“中見出し１”は“小見出し１”を、“中見出し２”は“小見出し２”をそれぞれの見出しの対象範囲に含んでいることも理解され得る。即ち、ＨＴＭＬにおける“ｈ”タグを図８の第１ツリー構造のように並列に用いた場合でも、マークアップされたテキストの文書構造上の包含−被包含の関係、即ち上下関係が少なくとも視覚的には表現されている。これに対し、本実施形態では、まず、図１０に一例として示したような“ｈ”タグについての文書構造上の上下関係を定義する定義データを設ける。
【００４８】
図１０を参照すると、定義データ４０において、“ｈ”タグについての上下関係が、“ｂｏｄｙ”＞“ｈ１”＞“ｈ２”＞“ｈ３”＞“ｈ４”＞“ｈ５”＞“ｈ６”というように定義されている。定義データ４０における不等号（“＞”）は、左側のタグの方が右側のタグの上位に位置することを表している。定義データ４０においては、“ｈ１”〜“ｈ６”までの“ｈ”タグの上下関係が数字の順に定義され、さらに“ｂｏｄｙ”タグが全ての“ｈ”タグの上位に定義されている。こうした定義データは、例えば、図６に示した記憶部１３０などに予め記憶される。そして、文書解析部１２０は、かかる定義データを使用して、上述した第１形式の文書から第２形式の文書を生成する。
【００４９】
なお、定義データは、“ｂｏｄｙ”タグ及び“ｈ”タグに関連する文書構造上の上下関係について定義したデータに限定されない。例えば、定義データにより上下関係を定義されるタグには、ＨＴＭＬにおいてテキストのフォントサイズを指定する“ｆｏｎｔ”タグが含まれていてもよい。また、定義データにより上下関係を定義されるタグには、スタイルシートにおいて規定される特定のクラスを属性を用いて指定するタグなど、その他の任意のタグが含まれていてもよい。
【００５０】
図１１は、文書解析部１２０による文書解析処理の流れの一例を示すフローチャートである。
【００５１】
図１１を参照すると、文書解析部１２０は、まず“ｂｏｄｙ”タグに対応する“ｂｏｄｙ”ノードを作成し、第２ツリー構造の開始ノードとする。そして、文書解析部１２０は、“ｂｏｄｙ”ノードを注目ノードＰとする。
【００５２】
次に、文書解析部１２０は、第１ツリー構造において未だ処理されていないノードが残っているか否かを判定する（Ｓ１０４）。ここで、未処理のノードが残っていれば、処理はＳ１０６へ進む。一方、未処理のノードが残っていなければ、処理は終了する。
【００５３】
Ｓ１０６では、文書解析部１２０は、第１ツリー構造において未だ処理されていないノードのうち、最先のノードを比較ノードＸとする（Ｓ１０６）。ここで、最先のノードとは、例えば、第１文書内で最も先に記載されたタグ又はテキストに対応するノードであってもよい。また、最先のノードとは、例えば、第１ツリー構造内での縦型探索において最も早く参照されるノードであってもよい。例えば、図８に示した第１ツリー構造において、“ｂｏｄｙ”ノードまで処理済みである場合には、“ｈ１”ノードが未処理の最先のノードとなる。また、“ｈ１”ノードまで処理済みである場合には、“大見出し”ノードが未処理の最先のノードとなる。
【００５４】
次に、文書解析部１２０は、比較ノードＸが上述した定義データにおいて文書構造上の上下関係を定義されたタグに対応するタグノードであるか否かを判定する（Ｓ１０８）。例えば、図１０に示した定義データ４０が定義されている場合には、比較ノードＸが“ｂｏｄｙ”タグ又は“ｈ１”〜“ｈ６”までの“ｈ”タグに対応するノードであれば、処理はＳ１１２へ進む。一方、比較ノードＸが上記以外のノード（例えばタグにマークアップされた見出し文字列や本文に対応するノードなど）であれば、処理はＳ１１０へ進む。
【００５５】
Ｓ１１０では、注目ノードＰの子ノードに、Ｓ１０６で設定された比較ノードＸが追加される（Ｓ１１０）。例えば、注目ノードＰが図８に示した第１ツリー構造における“ｈ１”ノードであって、比較ノードＸが“本文”ノードである場合には、第２ツリー構造において“ｈ１”ノードの下位に“本文”ノードが追加される。また、例えば、注目ノードＰが図８に示した第１ツリー構造における“ｈ２”ノードであって、比較ノードＸが“中見出し１”ノードである場合には、第２ツリー構造において“ｈ２”ノードの下位に“中見出し１”ノードが追加される。その後、処理はＳ１０４へ戻り、未処理のノードの有無が再度判定される。
【００５６】
一方、比較ノードＸが文書構造上の上下関係を定義されたタグに対応するタグノードである場合には、Ｓ１１２において、注目ノードＰと比較ノードＸとの上下関係が比較される（Ｓ１１２）。例えば、図１０に示した定義データ４０が定義されている場合に、注目ノードＰが“ｂｏｄｙ”ノードであって、比較ノードＸが“ｈ”タグに対応するタグノードである場合には、比較ノードＸ＜注目ノードＰと判定される。また、例えば、注目ノードＰが“ｈ１”ノードであって、比較ノードＸも“ｈ１”ノードである場合には、比較ノードＸ＝注目ノードＰと判定される。また、例えば、注目ノードＰが“ｈ２”ノードであって、比較ノードＸが“ｈ１”ノードである場合には、比較ノードＸ＞注目ノードＰと判定される。ここで、比較ノードＸ＞注目ノードＰである場合には、処理はＳ１１４へ進む。また、比較ノードＸ＝注目ノードＰである場合には、処理はＳ１１６へ進む。また、比較ノードＸ＜注目ノードＰである場合には、処理は１１８へ進む。
【００５７】
次に、比較ノードＸ＞注目ノードＰである場合には、Ｓ１１４において、注目ノードＰの親ノードが新たな注目ノードＰとされる（Ｓ１１４）。例えば、注目ノードＰが図８に示した第１ツリー構造における１つ目の“ｈ３”ノードであって、比較ノードＸが２つ目“ｈ２”ノードである場合には、１つ目の“ｈ３”ノードの親の１つ目の“ｈ２”ノードが注目ノードＰとして再設定される。そして、処理はＳ１１２へ戻り、注目ノードＰと比較ノードＸとの上下関係が再度比較される。
【００５８】
また、比較ノードＸ＝注目ノードＰである場合には、Ｓ１１６において、第２ツリー構造での注目ノードＰの親ノードの子ノード（即ち、兄弟ノード）として比較ノードＸが追加される。例えば、注目ノードＰが図８に示した第１ツリー構造における１つ目の“ｈ２”ノードであって、比較ノードＸが２つ目の“ｈ２”ノードである場合には、１つ目の“ｈ２”ノードの親ノードである“ｈ１”ノードの子ノードとして２つ目の“ｈ２”ノードが追加される。そして、追加された２つ目の“ｈ２”ノードが新たな注目ノードＰとなる。その後、処理はＳ１０４へ戻り、未処理のノードの有無が再度判定される。
【００５９】
また、比較ノードＸ＜注目ノードＰである場合には、Ｓ１１８において、第２ツリー構造での注目ノードＰの子ノードとして比較ノードＸが追加される。例えば、注目ノードＰが図８に示した第１ツリー構造における１つ目の“ｈ２”ノードであって、比較ノードＸが１つ目の“ｈ３”ノードである場合には、１つ目の“ｈ２”ノードの子ノードとして“ｈ３”ノードが追加される。そして、追加された“ｈ３”ノードが新たな注目ノードＰとなる。その後、処理はＳ１０４へ戻り、未処理のノードの有無が再度判定される。
【００６０】
このような文書解析部１２０による文書解析処理の結果、図８に一例として示した第１ツリー構造から、図１２に示す第２ツリー構造を表す第２形式の文書が生成される。
【００６１】
図１２を参照すると、“ｂｏｄｙ”ノードの１つ下の階層に“ｈ１”ノードが位置し、さらに“ｈ１”ノードの１つ下の階層に“大見出し”、“本文”、１つ目の“ｈ２”ノード、及び２つ目の“ｈ２”ノードが位置している。また、各“ｈ２”ノードの１つ下の階層には、“中見出し１”ノード又は“中見出し２”ノード、及び各“ｈ３”ノードがそれぞれ位置している。さらに、各“ｈ３”ノードの１つ下の階層には、“小見出し１”ノード又は“小見出し２”ノードがそれぞれ位置している。この第２ツリー構造は、図９において視覚的に表現されていた文書１０の文書構造上の包含−被包含の関係に対応している。文書解析部１２０は、かかる第２ツリー構造を表す第２形式の文書を、例えば、ＸＭＬ形式のデータファイル、又はデータベースに記憶される一群のデータなどとして記憶部１３０へ出力する。
【００６２】
さらに、本実施形態において、文書解析部１２０は、後述するブロック抽出部１４０によるブロック抽出処理に使用される見出し文字列のリストを記憶部１３０へ出力する。例えば、図１２における見出し文字列は、“大見出し”、“中見出し１”、“小見出し１”、“中見出し２”、及び“小見出し２”の５つである。文書解析部１２０から出力される見出し文字列のリストにおいては、見出し文字列に対応するノードへのポインタが、各見出し文字列と対応付けて保持される。
【００６３】
記憶部１３０は、例えば、図５を用いて説明した記憶装置７４により構成され、文書解析部１２０から出力される上述した第２形式の文書、及び見出し文字列のリストを記憶する。
【００６４】
［２−３−２．ブロックの抽出］
ブロック抽出部１４０は、上述した第２形式の文書により表される第２ツリー構造から、例えばユーザにより指定された抽出条件を満たすノードの集合を特定する。また、ブロック抽出部１４０は、特定されたノードの集合に対応するブロックを、第１形式の文書から抽出する。
【００６５】
（抽出条件例１）
抽出条件とは、例えば、指定された抽出キー（抽出のためのキーワード）に適合する見出しをマークアップするタグに対応するタグノード以下のノードの集合を抽出可能な条件であってもよい。以下、かかる抽出条件を抽出条件例１とする。
【００６６】
図１３は、ブロック抽出部１４０による抽出条件例１を用いたブロック抽出処理の流れの一例を示すフローチャートである。
【００６７】
図１３を参照すると、まず、ブロック抽出部１４０は、例えばユーザにより入力された抽出キーを、記憶部１３０に記憶されている上述した見出し文字列リストと照合する（Ｓ２０２）。ここでの照合処理は、例えば、完全一致、部分一致、又は曖昧検索などといった任意の基準での照合処理であってよい。
【００６８】
次に、ブロック抽出部１４０は、照合の結果として抽出キーに適合する見出しが存在するか否かを判定する（Ｓ２０４）。ここで、抽出キーに適合する見出しが存在しない場合には、処理は終了する。一方、抽出キーに適合する見出しが存在している場合には、処理はＳ２０６へ進む。
【００６９】
Ｓ２０６では、抽出キーに適合した見出しをマークアップするタグノードが注目ノードＰとされる（Ｓ２０６）。より具体的には、ブロック抽出部１４０により、まず、抽出キーに適合した見出しに対応するノードへのポインタが見出し文字列リストから取得される。そして、取得されたポインタにより指定される見出しノードの親ノードであるタグノードが注目ノードＰとされる。例えば、図１２における“中見出し１”の文字列に抽出キーが適合した場合には、“中見出し１”ノードの親ノードである１つ目の“ｈ２”ノードが注目ノードＰとなる。
【００７０】
次に、注目ノードＰが、ノードの集合を保持しておく変数Ｎに追加される（Ｓ２０８）。さらに、ブロック抽出部１４０により、注目ノードＰが下位のノードを有するか否かが判定される（Ｓ２１０）。ここで、注目ノードＰが下位のノードを有している場合には、処理はＳ２１２へ進む。一方、注目ノードＰが下位のノードを有していない場合には、Ｓ２１２はスキップされ、処理はＳ２１４へ進む。
【００７１】
Ｓ２１２では、注目ノードＰの下位の全てのノード（注目ノードＰの子ノード及び存在する場合には孫ノードなど）が、ノードの集合Ｎに追加される（Ｓ２１２）。例えば、図１２における１つ目の“ｈ２”ノードが注目ノードＰである場合には、“中見出し１”、１つ目の“ｈ３”、及び“小見出し１”の各ノードがノードの集合Ｎに追加される。この時点で、ノードの集合Ｎに保持されているノードが、指定された抽出条件を満たすノードとしてブロック抽出部１４０により特定されたこととなる。
【００７２】
そして、ブロック抽出部１４０は、特定したノードの集合Ｎに対応するブロックを、関連する第１形式の文書１０から抽出する（Ｓ２１４）。その後、ブロック抽出処理は終了する。
【００７３】
なお、抽出条件例１に、例えば抽出されるノードの種類（例えば、特定の種類のタグノードなど）やノードの数などを限定する付加的な条件が加えられてもよい。例えば、ノードの種類を“ｈ１”及び“ｈ２”タグに対応するタグノードに限定する場合には、図１３のフローチャートのＳ２０２において、親ノードが“ｈ１”ノード又は“ｈ２”ノードである見出しのみが照合の対象としてもよい。また、Ｓ２１２において、注目ノードＰの下位のノードのうち、“ｈ１”ノード及び“ｈ２”ノードのみがノードの集合Ｎに追加されてもよい。この場合、抽出キーの文字列に加えて、ノードの種類を指定する指定子（例えば、“ｈ１  ｏｒ  ｈ２”など）がユーザにより入力される。
【００７４】
図１４及び図１５は、抽出条件例１により抽出されるブロックの一例を説明するための説明図である。
【００７５】
図１４を参照すると、図１２を用いて説明した第２文書により表される第２ツリー構造の一例があらためて示されている。かかる第２ツリー構造において、例えば、ユーザにより入力された抽出キーＫ１が見出し文字列“大見出し”に適合したと想定する。その場合、まず、“大見出し”ノードの親ノードである“ｈ１”ノード及び当該“ｈ１”ノードの下位のノードの集合Ｎ１が、ブロック抽出部１４０により特定される。そして、ブロック抽出部１４０は、特定したノードの集合Ｎ１に対応するブロックである図１５に示したブロックＢ１を、第１文書の中から抽出する。
【００７６】
また、図１４に示した第２ツリー構造において、例えば、ユーザにより入力された抽出キーＫ２が見出し文字列“中見出し２”に適合すると共に、ユーザによりノードの種類を限定する付加的な条件“ｈ１  ｏｒ  ｈ２”が指定されていたと想定する。その場合、まず、“中見出し２”ノードの親ノードである２つ目の“ｈ２”ノード及び下位の“中見出し２”ノードを含むノード集合Ｎ２が、ブロック抽出部１４０により特定される。そして、ブロック抽出部１４０は、特定したノードの集合Ｎ２に対応するブロックである図１５に示したブロックＢ２を、第１文書の中から抽出する。
【００７７】
かかる抽出条件例１の使用例として、企業の製品情報をＷｅｂページから自動的に収集する場合に、“製品情報”という抽出キーを指定して、“製品情報”という見出しの対象とされる内容を適切に含むブロックを抽出することができる。例えば、図２に示したブロック２６ａは、そうしたブロックの一例である。なお、本実施形態に係る情報処理装置１００を用いて抽出されるブロックは、企業の製品情報に対応するブロックに限定されないことは言うまでもない。
【００７８】
（抽出条件例２）
また、抽出条件とは、例えば、指定された抽出キーに適合する見出しをマークアップするタグに対応するタグノードの親ノード以下のノードの集合を抽出可能な条件であってもよい（以下、抽出条件例２とする）。
【００７９】
図１６は、ブロック抽出部１４０による抽出条件例２を用いたブロック抽出処理の流れの一例を示すフローチャートである。
【００８０】
図１６を参照すると、まず、ブロック抽出部１４０は、例えばユーザにより入力された抽出キーを、記憶部１３０に記憶されている見出し文字列リストと照合する（Ｓ３０２）。ここでの照合処理は、抽出条件例１の場合と同様、例えば、完全一致、部分一致、又は曖昧検索などといった任意の基準での照合処理であってよい。
【００８１】
次に、ブロック抽出部１４０は、照合の結果として抽出キーに適合する見出しが存在するか否かを判定する（Ｓ３０４）。ここで、抽出キーに適合する見出しが存在しない場合には、処理は終了する。一方、抽出キーに適合する見出しが存在している場合には、処理はＳ３０６へ進む。
【００８２】
Ｓ３０６では、抽出キーに適合した見出しをマークアップするタグノードの親ノードが注目ノードＰとされる（Ｓ３０６）。より具体的には、ブロック抽出部１４０により、まず、抽出キーに適合した見出しに対応するノードへのポインタが見出し文字列リストから取得される。そして、取得されたポインタにより指定される見出しノードの親ノードであるタグノードのさらに親ノードが、注目ノードＰとされる。例えば、図１２における“中見出し１”の文字列に抽出キーが適合した場合には、“中見出し１”ノードの親ノードである１つ目の“ｈ２”ノードのさらに親ノードである“ｈ１”ノードが、注目ノードＰとなる。
【００８３】
次に、注目ノードＰが、ノードの集合を保持しておく変数Ｎに追加される（Ｓ３０８）。さらに、注目ノードＰの下位の全てのノードが、ノードの集合Ｎに追加される（Ｓ３１０）。この時点で、ノードの集合Ｎに保持されているノードが、指定された抽出条件を満たすノードとしてブロック抽出部１４０により特定されたこととなる。
【００８４】
そして、ブロック抽出部１４０は、特定したノードの集合Ｎに対応するブロックを、関連する第１形式の文書１０から抽出する（Ｓ３１２）。その後、ブロック抽出処理は終了する。なお、抽出条件例２についても、例えば抽出されるノードの種類やノードの数などを限定する付加的な条件が加えられてもよい。
【００８５】
かかる抽出条件例２の使用例として、企業の製品情報をＷｅｂページから自動的に収集する場合に、製品の種類や具体的な製品名等に相当する抽出キーを指定して、製品情報に類する見出しを付して記述されたＷｅｂページ内のブロックを抽出することができる。例えば、図２に示したＨＴＭＬ文書３２を対象として、“ＴＶ”という抽出キーを使用して、製品情報について記述したブロック２６ａが抽出され得る。
【００８６】
なお、本明細書では、ブロック抽出処理において、抽出キーを見出し文字列と照合させる例について説明したが、例えば、抽出キーを見出し文字列以外の文字列（例えば本文など）と照合させてもよい。
【００８７】
＜３．まとめ＞
ここまで、図４〜図１６を用いて、本発明の一実施形態に係る情報処理装置１００について説明した。本実施形態によれば、マークアップ言語を用いて記述された第１形式の文書から、所定の定義データに基づいて、タグ及びタグに関連するテキストをノードとするツリー構造を表現する第２形式の文書が生成される。かかる定義データは、マークアップ言語の少なくとも２種類のタグについての文書構造上の上下関係を定義したデータである。それにより、視覚的に把握され得る文書構造上の上下関係を反映したツリー構造のデータが利用可能となり、例えば、所望の情報を収集するためにＷｅｂページから適切なブロックを抽出することが容易となる。即ち、例えば、図２に示したＨＴＭＬ文書３２において、“製品情報”という抽出キーを指定してブロック２６ａを抽出し、当該ブロック２６ａに上述したLR  Wrapperを適用してブロック内のデータを自動的にデータベース化することなどが可能となる。
【００８８】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【００８９】
例えば、図１１、図１３及び図１６を用いて説明した一連の処理を、必ずしもフローチャートに記載された順序に沿って実行しなくてもよい。各処理ステップは、並列的あるいは個別に独立して実行される処理を含んでもよい。
【符号の説明】
【００９０】
１０      第１形式の文書
２０      第２形式の文書
４０      定義データ
１００    情報処理装置
１１０    文書取得部
１２０    文書解析部
１３０    記憶部
１４０    ブロック抽出部
【図１】
2010165272.tif 000003
【図２】
2010165272.tif 000004
【図３】
2010165272.tif 000005
【図４】
2010165272.tif 000006
【図５】
2010165272.tif 000007
【図６】
2010165272.tif 000008
【図７】
2010165272.tif 000009
【図８】
2010165272.tif 000010
【図９】
2010165272.tif 000011
【図１０】
2010165272.tif 000012
【図１１】
2010165272.tif 000013
【図１２】
2010165272.tif 000014
【図１３】
2010165272.tif 000015
【図１４】
2010165272.tif 000016
【図１５】
2010165272.tif 000017
【図１６】
2010165272.tif 000018