JP2004054631A - 情報検索システム、情報検索方法、html文書の構造解析方法及びプログラム - Google Patents

情報検索システム、情報検索方法、html文書の構造解析方法及びプログラム Download PDF

Info

Publication number
JP2004054631A
JP2004054631A JP2002211634A JP2002211634A JP2004054631A JP 2004054631 A JP2004054631 A JP 2004054631A JP 2002211634 A JP2002211634 A JP 2002211634A JP 2002211634 A JP2002211634 A JP 2002211634A JP 2004054631 A JP2004054631 A JP 2004054631A
Authority
JP
Japan
Prior art keywords
importance
information
html document
website
web page
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002211634A
Other languages
English (en)
Inventor
Hiroshi Nomiyama
野美山 浩
Toshitaka Iwao
岩男 俊孝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2002211634A priority Critical patent/JP2004054631A/ja
Priority to US10/621,474 priority patent/US7496581B2/en
Publication of JP2004054631A publication Critical patent/JP2004054631A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】コンピュータを用いた情報検索において、情報の使用目的に応じて多様な戦略による柔軟な情報検索を効果的に実現する。
【解決手段】所定のウェブページにおける意味を考慮してHTML文書の構造を解析する文書構造解析部12と、この解析結果に基づき、予め定められた戦略にしたがって、このウェブページからリンクされる他のウェブサイトの重要度を計算する重要度計算部13と、この重要度計算部13により計算された重要度に応じてウェブサイトをクロールするクローリング実行部14とを備える。
【選択図】    図2

Description

【0001】
【発明の属する技術分野】
本発明は、ネットワークを介して所望の情報を自動的に取得する技術に関し、特にインターネット上で提供されているウェブコンテンツを検索し、リンクを辿りながら取得(クローリング)する技術に関する。
【0002】
【従来の技術】
今日、インターネットに代表されるコンピュータのネットワーク環境が広く普及したことにより、ネットワーク上で提供されている膨大な情報の中から検索エンジンを用いて所望の情報を検索し取得することが一般的に行われている。この検索エンジンには多くの種類が存在するが、予め情報を検索して取得しておき、検索要求に応じて保持している情報を返す静的な検索エンジンを用いた場合は、膨大な情報源(ウェブページ等)を対象としなければならないため、最新の情報を獲得することが困難である。また、基本的に検索エンジンを持つサーバが全ての処理を行うことが前提となっているため、サーバの負担が大きい。
【0003】
そこで、静的な検索エンジンで集めたキーワード検索結果の集合を初期集合として用い、これを起点に関連するサイトを動的に検索する手法が提案されている。この種の従来技術としては、例えば、下記文献1に開示されたShark−Searchと呼ばれる検索技術がある。
文献1:Michael Herscovici, Michal Jacovi, Yoelle S. Maarek, Dan Pelleg,Menachem Shtalhaim, Sigalit Ur. ”The Shark−Search Algorithm: An Application: Tailored Web SiteMapping” In the Proceedings of WWW7, the 7th International World Wide Web Conference, Brisbane, April 1998. Also appearedin the Journal of Computer Networks and ISDN 30 (1998), pp 317−326.HYPERLINK ”http://www7.scu.edu.au/programme/fullpapers/1849/com1849.htm” http://www7.scu.edu.au/programme/fullpapers/1849/com1849.htm
【0004】
同文献に開示された技術は、インターネット上で、指定されたURL(Uniform Resource Locator)とキーワードとに基づき、当該URLのウェブサイトから当該キーワードに関連するウェブサイト(重要度の高いウェブサイト)を動的に検索する。このシステムは、初期集合を求めるためのキーワード(domain query)と動的にウェブサイトをクロールする際にクロール対象であるウェブサイトの重要度の計算に用いるキーワード(focused query)の2つを用いることによって精度の向上を図っている。
【0005】
【発明が解決しようとする課題】
上述したように、ネットワーク上で提供される膨大な最新の情報を効率よく検索するために、検索要求があった場合に動的に情報検索を行うことが求められる。
しかし、上述した従来の動的な検索エンジンは、基本的に、ユーザが指定したトピック(キーワード等)に近い情報という1つの判断基準(relevance())で検索を行う。そのため、情報の使用目的に応じて多様な戦略で柔軟に検索を行うことができなかった。
【0006】
また、情報を効率的に検索するためには、取得対象である情報(ウェブページ等)の重要度を判断し、これに基づいて情報の取得順や取得範囲を決める必要がある。しかし、インターネット上でURL及びトピックに基づいてウェブサイトをクロールする従来技術では、この重要度を効果的に判断することができなかった。すなわち、情報の重要度を判断するために限られた情報、例えばウェブページにおける、指定されたキーワードや、アンカーに近い位置に記載されているテキストなどしか用いておらず、所望の情報を効率的に検索することができなかった。例えば、上記文献1に開示された従来技術の場合、文献1には、アンカーの重要性を判断するために当該アンカーの近傍のテキスト(anchor_text_context)を考慮するとの記述があるが、どのようにしてこの anchor_text_contextを得るかについて明確な記述はない。
【0007】
そこで、本発明は、情報の使用目的に応じて多様な戦略による柔軟な情報検索を可能とすることを目的とする。
また、本発明は、ウェブサイトのクローリングにおいて、この多様な戦略による情報検索を実現するために、ウェブページに含まれる情報を有効に活用して検索を行うことを目的とする。
【0008】
【課題を解決するための手段】
上記の目的を達成する本発明は、ネットワークを介してウェブサイトのクローリングを行う、次のように構成された情報検索システムとして実現される。すなわち、この情報検索システムは、所定のウェブページにおける意味を考慮してソースコードの構造を解析する構造解析部と、この構造解析部の解析結果に基づいて、このウェブページからリンクされる他のウェブサイトの重要度を計算する重要度計算部と、この重要度計算部により計算された重要度に応じてウェブサイトをクロールするクローリング実行部とを備えることを特徴とする。
より詳しくは、この重要度計算部は、ウェブサイトの重要度を計算するための戦略を、予め用意された戦略の中から選択的に用いて重要度の計算を行う。さらに好ましくは、この重要度計算部は、複数の戦略を選択し、各々重みを付けて用いる。
【0009】
また、本発明による他の情報検索システムは、HTML文書の文書構造を意味を考慮して解析し、解析によって得られた情報要素を対応するアンカーに付加する文書構造解析部と、この文書構造解析部の解析により得られた情報要素に基づいて計算されたアンカーの重要度に応じて、このアンカーにてリンクされるウェブサイトをクロールするクローリング実行部とを備えることを特徴とする。
ここで詳細には、この文書構造解析部は、HTML文書を構成する各情報要素を、この情報要素が持つ意味のまとまりごとにブロック化し、各ブロック内の情報要素を付加情報として同一ブロック内のアンカーに付加する。
この情報検索システムは、文書構造解析部の解析により得られた情報要素に基づき、予め選択された所定の戦略にしたがってアンカーの重要度を計算する重要度計算部をさらに備えることができる。これにより、クローリング実行部は、重要度計算部にて所定の戦略にしたがって計算されたアンカーの重要度に応じてウェブサイトをクロールすることができる。
【0010】
また、上記の目的を達成する本発明は、コンピュータを用いネットワークを介してウェブサイトのクローリングを行う、次のような情報検索方法として実現される。この情報検索方法は、初期情報となるウェブページを取得してソースコードを記憶装置に格納するステップと、この記憶装置からウェブページのソースコードを読み出し、このウェブページにおける意味を考慮して構造解析を行うステップと、この構造解析の結果に基づいて、このウェブページからリンクされる他のウェブサイトの重要度を計算するステップと、計算された重要度に応じてウェブサイトにアクセスし、コンテンツを取得するステップとを含むことを特徴とする。
【0011】
さらに、本発明は、この情報検索方法などで用いられる、次のようなHTML文書の構造解析方法としても実現される。すなわち、このHTML文書の構造解析方法は、処理対象であるHTML文書を構成する各情報要素を、このHTML文書のタグに基づいてブロック化するステップと、ブロック化された前記HTML文書の構造データにおいて、意味的に相互に関連する情報要素を対応付けることにより、このHTML文書のブロック構造を更新するステップとを含む。
より詳細には、このHTML文書のブロック構造を更新するステップは、文書構造解析の目的に鑑みて不要な情報要素を識別するステップと、構造的に意味のないブロックを削除するステップと、この情報要素の内容に基づいて、情報要素のマージあるいはブロックの分割を行うステップと、各ブロックに含まれる情報に基づいて、ブロック構造をマージするステップとを含む。
【0012】
また、本発明は、コンピュータを制御して上述した情報検索システムとして機能させるプログラムや、上述した情報検索方法またはHTML文書の構造解析方法における各ステップに対応する処理をコンピュータに実行させるプログラムとして実現することができる。このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより、提供することができる。
【0013】
【発明の実施の形態】
以下、添付図面に示す実施の形態に基づいて、この発明を詳細に説明する。
図1は、本実施の形態による情報検索システムを実現するのに好適なコンピュータ装置のハードウェア構成の例を模式的に示した図である。
図1に示すコンピュータ装置は、演算手段であるCPU(Central ProcessingUnit:中央処理装置)101と、M/B(マザーボード)チップセット102及びCPUバスを介してCPU101に接続されたメインメモリ103と、同じくM/Bチップセット102及びAGP(Accelerated Graphics Port)を介してCPU101に接続されたビデオカード104と、PCI(Peripheral Component Interconnect)バスを介してM/Bチップセット102に接続されたハードディスク105、ネットワークインターフェイス106及びUSBポート107と、さらにこのPCIバスからブリッジ回路108及びISA(Industry Standard Architecture)バスなどの低速なバスを介してM/Bチップセット102に接続されたフロッピーディスクドライブ109及びキーボード/マウス110とを備える。
なお、図1は本実施の形態を実現するコンピュータ装置のハードウェア構成を例示するに過ぎず、本実施の形態を適用可能であれば、他の種々の構成を取ることができる。例えば、ビデオカード104を設ける代わりに、ビデオメモリのみを搭載し、CPU101にてイメージデータを処理する構成としても良いし、ATA(AT Attachment)などのインターフェイスを介してCD−ROM(CompactDisc Read Only Memory)やDVD−ROM(Digital Versatile Disc Read Only Memory)のドライブを設けても良い。
【0014】
本実施の形態では、情報としてインターネット上で提供される各種のウェブコンテンツ(ウェブページやそのオブジェクト)を検索し獲得する場合を例として説明する。したがって、本実施の形態において図1に示すコンピュータ装置は、プログラム制御されたCPU101にて実現される通信制御手段及びネットワークインターフェイス106を介して、インターネットに接続し、ウェブサイトにアクセスする。
図2は、図1に示したコンピュータ装置にて実現される本実施の形態による情報検索システムの構成を示す図である。
図2に示すように、本実施の形態による情報検索システムは、インターネット上のウェブサイトからリンクを辿り所望の情報に関連のあるウェブサイトを検索する情報取得手段であるクローラ10と、クローラ10にて検索されたウェブサイトに対して所定の条件に基づく選別を行うウェブサイト選別部20と、ウェブサイト選別部20による選別にて選ばれたウェブサイトに基づいて、種々の戦略に基づくレポートを作成するレポート作成部30とを備えている。
【0015】
上述したクローラ10、ウェブサイト選別部20及びレポート作成部30は、図1に示したメインメモリ103に展開されたプログラムにてCPU101を制御することにより実現される仮想的なソフトウェアブロックである。CPU101を制御してこれらの機能を実現させる当該プログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記憶媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供される。本実施の形態では、図1に示したネットワークインターフェイス106やフロッピーディスクドライブ108、図示しないCD−ROMドライブなどを介して当該プログラムを入力し、ハードディスク105に格納する。そして、ハードディスク105に格納されたプログラムをメインメモリ103に読み込んで展開し、CPU101にて実行することにより、図2に示した各構成要素の機能を実現する。
【0016】
図3は、本実施の形態の情報検索システムによる情報検索の概略的な流れを示すフローチャートである。
図3に示すように、本実施の形態の情報検索システムは、図2に示したクローラ10により、初期サイトを獲得し(ステップ301)、ユーザによって任意に選択された種々の戦略にしたがって動的にウェブサイトのクローリングを行う(ステップ302)。
ここで、初期サイトとは、ウェブサイトのクローリングを開始するために初期的に設定されるウェブサイトもしくはその集合である。これをインデックスとして用いて次のクローリングを行う。また、戦略とは、ウェブサイトのクローリングを行う上での基準となる方針を意味し、具体的には検索条件等として設定される。本実施の形態で採られる戦略については38段落以下で詳述する。
次に、情報検索システムは、ウェブサイト選別部20により、クローリングで検索されたウェブサイトの集合の中から、検索条件であるトピックとの関連性や時間的条件に基づいて、有効なウェブサイトを選択する(ステップ303)。そして最後に、ウェブサイト選別部20にて選択されたウェブサイトに対し、上記の戦略に基づいて評価を行い、レポートを作成する(ステップ304)。作成されたレポートはウェブページ等の形でディスプレイ装置に表示され、あるいはハードディスク105等の記憶装置に保存される。
【0017】
本実施の形態において、クローラ10は、図2に示したように、初期サイトを取得する初期サイト獲得部11と、当該初期サイトに対応するウェブページに対して文書構造解析を行う文書構造解析部12と、文書構造解析部12による解析結果に基づいてクローリングによる取得対象であるウェブサイトの重要度を計算する重要度計算部13と、クローリングによるウェブサイトの取得処理を実行するクローリング実行部14とを備える。
初期サイト獲得部11における初期サイトの獲得には、例えば次のような方法を採ることができる。
・情報を収集しようとする特定のウェブサイト(例えば企業サイト)のホームページ(トップページ)のURLを指定。
・任意のキーワードに対して既存の検索エンジンを用いて検索。
既存の検索エンジンとしては、インターネット上で提供される一般的な検索サービスを利用することができる。検索エンジンを用いて初期サイトを取得した場合は、検索によって取得されたウェブサイトの集合が初期サイト(初期サイト集合)となる。
【0018】
ウェブサイトのクローリングは、初期サイトを起点として、そこからアンカータグなどの情報に基づいて参照されているウェブサイトを獲得し、その中から指定された戦略に一致するウェブサイトを獲得する処理である。この処理は、獲得されたウェブサイトの数の上限、深さの上限、クロールの時間制限などの終了条件を予め設定しておき、この終了条件を満たすまで再帰的に適用される。ユーザは、初期集合から動的にクロールを進めるためのヒントとして、個々のサイトとユーザが指定したトピックとの関連性を計算するために用いられるキーワードを指定する。クローラ10は、文書構造解析部12により初期サイト(初期サイト集合)に対応するウェブページの文書構造解析を行い、重要度計算部13によりクローリングの際の戦略に応じたウェブサイト(HTML(Hypertext Markup Language)文書の記述上ではアンカータグ)の重要度を計算した上で、これらの情報を用いてクローリング実行部14によりウェブサイトを検索し取得する。
【0019】
本実施の形態の文書構造解析部12による文書構造解析は、ウェブページのソースコードであるHTML文書においてブロックを識別する。
ここでブロックとは、特定の意味を持つ情報要素のまとまりであり、ウェブページを記述するHTMLにおけるブロックレベルとは必ずしも一致しない。このブロックに含まれる情報要素は、ブロックの属性(OBJECT_LIST)に、情報要素のリストとして登録され、メインメモリ103やCPU101のキャッシュメモリに保存される。このブロック化により、HTML文書に含まれる情報要素のうち、相互に関連する情報要素が対応付けられることとなる。
情報要素には、単一要素と複数の単一要素をマージして構成された複合要素とがある。解析の最初の時点では、全ての情報要素は単一要素として識別され、解析を進めることによって複数の情報要素が複合要素としてマージされる。この情報要素は、以下の属性を持つ。
・TYPE:情報要素のタイプ。
OBJECT_ANCHOR:アンカー。
OBJECT_TEXT_BLOCK:テキスト。
OBJECT_IMAGE:メディアのタイプ。他にAUDIO、VIDEOなどが定義可能。以降の説明では、全てのメディアタイプを代表してOBJECT_IMAGEを記述する。
OBJECT_DELIMITER:情報要素のTYPEによらず区切り記号としての役割であると解析された場合に指定される。
・URL:URL。
OBJECT_ANCHORの場合は、HREFで指定された値。
OBJECT_IMAGE などの場合は、SRCなどで指定された値。
・TITLE:タイトル。
OBJECT_ANCHOR の場合は、A(アンカー)タグで囲まれたテキスト部分。
OBJECT_IMAGE などの場合は、ALTなどで指定されたテキスト部分。
・DESCRIPTION :記述。
OBJECT_TEXT_BLOCK の場合は、そのテキスト部分。
OBJECT_ANCHOR の場合は、関連するテキストが得られた場合、それらをマージする際にテキスト記述として追加される。
・REFERRER:参照情報。
OBJECT_ANCHOR, OBJECT_TEXT_BLOCK の場合、それに関連する OBJECT_IMAGEなどの他のメディアタイプの情報要素が追加される。
・EMPHASIS:強調表現。
その情報要素が強調的な表現をされているかどうかが指定される。
【0020】
図4は、文書構造解析部12によるブロック化のアルゴリズムであるウェブページの文書構造解析処理の手順を説明するフローチャートである。
図4を参照すると、文書構造解析部12は、まず解析対象のウェブページのHTML文書を読み込み、そのタグの記述に基づいて暫定的なブロック解析を行う(ステップ401)。ここでは、HTML文書において、一般的に意味が区切られる箇所に記述されることの多いタグを手掛かりにして、処理対象のHTML文書を仮にブロックごとに区分する。このブロック解析に用いられるタグの例としては、例えば“BLOCKQUOTE”、“DD”、“DIV”、“DL”、“FORM”、“H1”、“H2”、“H3”、“H4”、“H5”、“HR”、“LI”、“P”、“TABLE”、“TD”、“TH”、“TR”、“UL”などが挙げられる。すなわち、これらのタグが出現した場合、ブロックの開始とする。そして、それぞれのタグに対応する終了タグ(</TABLE>など)が出現した場合は、そのブロックの終了とする。
また、上記のようにして決定されたブロック内に、次のようなタグ、あるいは、テキストが出現した場合は、そのブロック中に上述した情報要素を作成する。A(アンカー)タグ:OBJECT_ANCHORを生成する。URLとして、HREFで指定された値。TITLEとして、Aタグで囲まれたテキストを指定する。
タグで囲まれていないテキスト部分:OBJECT_TEXT_BLOCKを生成する。TITLEとして当該テキストを指定する。IMGなどメディアを指定するタグ:OBJECT_IMAGEなどを生成する。IMGタグの場合、URLに、SRCで指定された値を、TITLEとして、ALTで指定された値を指定する。
さらに、これら個々の情報要素を作成する際に、その情報要素が強調表現であるかどうかを判断し、そうであれば、属性EMPHASISにその強さを指定する。強調表現であるかどうかは、例えば、“B”、“CENTER”、“EM”、“STRONG”、“TH”、“U”のようなタグによってその情報要素が囲まれているかどうかによって判断する。
以上のようにして得られたHTML文書の構造データは、図1に示したメインメモリ103やCPU101のキャッシュメモリに一時的に格納される。
【0021】
次に、文書構造解析部12は、ステップ401で作成された構造データをメインメモリ103等から読み出し、この構造データに含まれる情報要素のうちで不要な情報要素を識別する(ステップ402)。URLが同じであるOBJECT_IMAGE、あるいは、同じTITLEを持つOBJECT_ANCHOR、あるいは、同じDESCRIPTIONを持つOBJECT_TEXT_BLOCKが複数出現されている場合は、情報を運ぶという意味合いは弱く、単なる区切り記号的な役割を担う。したがって、不要な情報要素といえる。例えば、図5(A)に示すようなイメージタグは、LIタグと同様の区切りの役割を果たしている。また、図5(B)に示すようなアンカータグは、情報を運ぶ意味合いは少ない。
HTML文書中に出現する情報要素の数を数えながら、このような情報を運ぶ意味合いの少ない情報要素を識別し、そのタイプをOBJECT_DELIMITERとしてマークする。具体的には、不要イメージに関しては、以下のアルゴリズムによってマークを行う。なお、イメージの同一性は、URLが同じかどうかで判断する。
・1つのブロックが1つのイメージのみを含む場合は、OBJECT_DELIMITERの候補とする。
・1つのブロックが複数の同一イメージのみを含む場合は、OBJECT_DELIMITERの候補とする。
・文書全体において、複数のブロックで候補となっているものに対し、OBJECT_DELIMITERをマークする。
また、不要なOBJECT_ANCHOR、及びOBJECT_TEXT_BLOCKに関しては、同じタイトルを持つ要素が予め設定された所定の閾値以上あれば、それらをOBEJCT_DELIMITERとしてマークする。かかる閾値を用いた判断としては、例えば、テキスト長が、比較的短く(12バイト以下)、かつ、出現回数が3回以上などであれば不要な要素とみなす。また、同じ文書内に非常に多く出現した(例えば10回以上)全く同じOBJECT_ANCHOR, OBJECT_TEXT_BLOCKも不要な要素とみなす。これらの閾値は、システムの動作環境や用途などに応じて、経験的にあるいは適当な回数の実験を経て好ましい値を求めることができる。上記の例では、テキスト長は、実際のインターネット上のウェブページを対象として観察した結果から経験的に求めたものである(例えば、“先頭に戻る”、“戻る”、“キャッシュ”などがこの例に相当する)。また、出現回数の閾値も同様に実際に観察した結果から経験的に求めたものである(例えば、購買サイトの“購入はこちら”などのアンカー)。
以上のようにして不要と判断されたアンカーは、クロールの対象とならない。
【0022】
次に、文書構造解析部12は、構造的に意味のないブロックを削除する(ステップ403)。例えば、所定のブロックについて、そのブロック自身が情報要素を持たず、かつ内包するブロック(子ブロック)が1つの場合は、当該ブロックを下位ブロック(すなわち当該子ブロック)とマージする。
【0023】
次に、文書構造解析部12は、情報要素リストのマージ、ブロック分割及びリストタイプの識別を行う(ステップ404)。まず、同一ブロック内の情報要素をマージする。情報要素のマージにより、関連する複数の要素が1つの複合要素とされる。以下、具体例を挙げる。
OBJECT_ANCHORは、OBJECT_ANCHOR、OBJECT_TEXT_BLOCK及びOBJECT_IMAGEとのマージが可能であり、以下に示すような操作にてマージする。
・OBJECT_ANCHORとOBJECT_ANCHORとのマージ:
2つの情報要素のURLが同一の場合のみ行う。EMPHASIS属性が付与されている方を重要とみなし、そのTITLEを採用する。そして、EMPHASIS属性が付与されていない方は、そのTITLEをDESCRIPTIONに追加する。
・OBJECT_ANCHORとOBJECT_TEXT_BLOCKとのマージ:
OBJECT_ANCHORのDESCRIPTIONにOBJECT_TEXT_BLOCKのDESCRIPTIONを追加する。
・OBJECT_ANCHORとOBJECT_IMAGEとのマージ:
OBJECT_ANCHORのREFERRERにOBJECT_IMAGEを設定する。OBJECT_ANCHORのDESCIPRTIONにOBJECT_IMAGEのTITLEを追加する。
また、OBJECT_TEXT_BLOCKは、OBJECT_ANCHOR、OBJECT_TEXT_BLOCK及びOBJECT_IMAGEとのマージが可能である。なお、OBJECT_ANCHORとのマージの場合の操作は上述したOBJECT_ANCHORどうしの場合と同様であり、OBJECT_IMAGEとのマージの場合の操作は上述したOBJECT_ANCHORとOBJECT_IMAGEとのマージの場合と同様である。OBJECT_TEXT_BLOCKとOBJECT_TEXT_BLOCKとのマージの場合は、次に示すような操作にてマージする。
・OBJECT_TEXT_BLOCKとOBJECT_TEXT_BLOCKとのマージ:
一方のOBJECT_TEXT_BLOCKのDESCRIPTIONに他方のOBJECT_TEXT_BLOCKのDESCRIPTIONを追加する。
基本的には、OBJECT_ANCHOR、OBJECT_TEXT_BLOCK、OBJECT_IMAGE が同一ブロック内に存在すれば、それらをまとめられるものと判断する。OBJECT_ANCHORに関しては、同じURLを参照している要素が近くにあれば、その中に含まれる要素をマージして1つの複合要素とする。
【0024】
また、同一ブロックに情報要素が3つ以下(OBJECT_DELIMITERを含む場合は4つ以下)の場合、どのようにマージさせるかは容易に判断できるが、複数の情報要素がリストで並んでいるような場合は、情報要素リスト内の構造解析を行い、要素のマージ、あるいは、ブロックの分割を行う。情報要素リスト内の構造解析は、原則的にはNグラム統計を用いて次のように行う。
すなわち、1グラムから解析を行い、それぞれのグラム数において、同一ブロック内で支配的な要素の並びが見つかった場合、その並びで分割を行う。例えば、3グラム統計を行った場合、OBJECT_DELIMITER、OBJECT_ANCHOR、OBJECT_TEXT_BLOCKの当該ブロック図全体に対する割合(カバー率)が一定の閾値より大きい場合(例えば80%以上)は、その並びを分割し、情報要素をマージする。具体的には、図6に示す例では、2つの複合要素が作成される(bullet.gif(破線で囲んだ箇所)はOBJECT_DELIMITERとして解析されている)。閾値を必ずしも100%としないのは、ブロック内に要素が列挙して書かれている場合でも、個々の要素に関しては、イメージがあったりなかったりするなどの揺れがあり、それを吸収するために経験的に閾値を決める必要があるためである(図6の例では、OBJECT_DELIMITER、OBJECT_ANCHOR、OBJECT_TEXT_BLOCKの並びは2回出現しており、それは全体をカバーしているので、カバー率はこの場合100%である)。
【0025】
ただし、Nグラム解析だけでは、解析できない場合がある。例えば、図7に示す例のように、参考情報(破線で囲んだ箇所)が指定されている場合である。このような場合は、特にOBJECT_ANHOR、OBJECT_TEXT_BLOCKに関する対応付けがNグラム統計では行うことができない。よって、情報要素に付与されているTITLE、DESCRIPTIONのテキスト部分からキーワードを抽出し、複数の情報要素間のキーワードリストの一致度(割合や数)を調べ、一致度が一定の閾値以上である場合は当該情報要素をマージする。例えば、双方のタイトルから抽出されたキーワードの一致する割合が、共に70%以上であるならば、マージする。一致度の計算の際にはキーワードの分類を考慮して、人名、組織名などの重みをより重くして一致度を計算することも可能である。例えば、ニュースなどの情報であれば特に人名、組織名が一致している場合その関連度は強い場合が多い。
【0026】
また、図8に示す例では、複数の意味的なまとまりが1つのブロック内に存在する。破線で囲まれた各部分(“IBM関連リンク”、“日本IBM関連リンク”)がそれぞれ意味的なまとまりを構成している。このような場合は、タイトルとなる情報要素を区切りとして情報要素リストをブロックに分割する。タイトルとなる情報要素を識別するために、EMPHASIS属性を用いる。すなわち、一定の閾値以上の長さの情報要素リスト内にEMPHASIS属性が指定されているものが複数あり、その後の情報要素が類似した並びを持っている場合は、それを複数に分割する。この際、分割されたブロックのタイトルとして、EMPHASIS属性のタイトルを指定する。このような処理によって、図8のHTML文書に対して、図9に示すようなブロック分割がなされる。
一般に、情報要素リストの先頭の情報要素にEMPHASIS属性が付与されており、情報要素リスト中のOBJECT_ANCHORが一定の閾値以上の割合である場合(例えば80%以上)は、当該EMPHASIS属性のタイトルをブロックのタイトルとして指定する。あるいは、先頭のみがOBJECT_TEXT_BLOCKであり、他の要素が一定の閾値以上(例えば80%以上)のOBJECT_ANCHORである場合も同様に、先頭のOBJECT_TEXT_BLOCKのDESCRIPTIONをブロックのタイトルとする。これらの閾値は、システムの動作環境や用途などに応じて、経験的にあるいは適当な回数の実験を経て好ましい値を求めることができる。
【0027】
このようにして抽出されたブロックのタイトルは、個々の情報要素に対する重要度の計算に用いられる。例えば図8、9に示した例で、トピックが“日本IBM”であった場合、そのブロックに含まれる3つのアンカー“Home”、“プロダクト&サービス”、“サポート&ダウンロード”は、文字列“日本IBM”を含まないが、ブロックのタイトルに含まれることによって関連する情報要素として判断される。このように文書構造を詳細かつ正確に解析することによって、単に位置的に近傍のテキストのみからでなく、離れた位置の要素間の依存関係を利用することが可能となる。
また、抽出されたブロックの情報要素リストにおいて、OBJECT_ANCHORの割合が多い場合は、当該ブロックのリストタイプを次のように決める。
・SITE_MAP:リンク総数に対して、OBJECT_ANCHORのホスト名が異なるリンクの数の割合が所定の閾値より小さい(例えば50%以下)場合。それ以外の場合は、ホスト名に対して固有組織名を識別するための最小の文字列を求め、その文字列の異なるリンクの割合が所定の閾値より小さい場合(例えば10%以下)は、SITE_MAP とする。これらの閾値は、例えば、インターネット上の実際のウェブページに基づいて経験的に求められる。厳密にホスト名の一致を取るだけでは、たとえ同じ会社が提供しているページであっても異なる場合がある。ページの機能によって個別のホストを用いている場合があるからである。例えば、Yahoo! Japan(http:///www.yahoo.co.jp) は、オークションには auctions.yahoo.co.jp,旅行関連は、travel.yahoo.co.jp などホスト名を分けている。この場合は、固有組織を識別するための最小の文字列(yahoo.co.jp)の一致度によって、閾値に基づく判断を行うことができる。
・LINK_LIST:SITE_MAPの条件を満たさない場合。
【0028】
次に、文書構造解析部12は、以上のようにして得られたブロックごとの情報に基づいて、ブロック構造のマージを行う(ステップ405)。
関連する情報要素は、必ずしもブロック内に連続して出現するわけではない。すなわち、ステップ401やステップ404の処理でブロックの設定を細かくし過ぎてしまう場合がある。そこで例えば、所定のブロックの子ブロックにおいて並列構造があるならば、それを当該所定のブロック(親ブロック)の情報要素リストとすることにより、構造をマージする。マージする方法は、ステップ404で説明した情報要素リストに対するマージのアルゴリズムと同様である。
【0029】
文書構造解析部12は、以上説明したステップ403乃至ステップ405の動作を、処理対象のHTML文書に対して適用が可能である限り繰り返して適用し、解析結果である構造データの構造が変更されなくなったならば、当該構造データをメインメモリ103やCPU101のキャッシュメモリに格納して構造解析の処理を終了する(ステップ406)。
以上のようにして、HTML文書の文書構造が意味のまとまりごとにブロック化され、HTML文書から抽出された情報要素がブロックの属性として記述されることにより、相互に関連する情報要素が対応付けられて当該ブロック内のアンカーに付加されることとなる。
【0030】
次に、重要度計算部13によるクローリング先のウェブサイト(すなわちHTML文書におけるアンカータグ)の重要度の計算について説明する。
図10、11は、重要度計算部13により重要度を計算し、クローリング実行部14によりウェブサイトのコンテンツを取得する動作を説明するフローチャートである。
本実施の形態において、重要度計算部13の重要度の計算に用いられる基本的なアルゴリズム(図10、11にて説明されるアルゴリズム)は、下記文献2に開示されたFish−Searchと呼ばれる手法や、上述した文献1に開示されたShark−Searchと呼ばれる手法に基づく。
文献2:P. De Bra, G.−J Houben, Y. Kornatzkt, and R. Post, Information retrieval in distributed hypertexts, in Proceedins of RIAO’94, Intelligent Multimedia, information Retrieval systems and managements, New York, NY, 1994.
ただし、本実施の形態による手法は、ユーザにより指定された戦略及び文書構造解析部12により解析されてアンカーに付加された情報要素に基づいて検索対象であるウェブサイトのスコア(重要度)を計算し、このスコアに応じてクロールの対象を動的に決定する点、及びユーザに対してキーワードリストを提示することによって、よりユーザの目的にあったウェブサイトを収集するためのインタラクションを可能にした点が拡張されている。
また、クロールの候補となるのは、文書構造解析部12による解析の結果として抽出された、意味のある複合情報要素のうち、他の文書への参照を持つもののみである。
【0031】
図10、11を参照すると、まず、ユーザが本実施の形態による情報検索システムを構成するコンピュータ装置の入力手段を操作することにより、パラメータの設定及び初期設定が行われる(ステップ1001)。具体的には、初期ノード集合(初期サイト、以下、クロールするウェブサイトをノードと称す)、探索幅(width)、探索の深さ(D、depth)、初期ノード集合のサイズ(S)、時間制限、探索用のキーワード(Domain Query、Focused Query)、戦略(STSET)などを設定する。戦略の設定においては複数の戦略を選択することが可能であり、各戦略に対して重み付けを行うことができる。また、クローリングの回数として0(crawlingCount = 0;)がセットされる。
次に、重要度計算部13が、初期ノード集合の個々のノードの深さをパラメータDにセットし、それらを空のリスト(以下、ノードリスト)に挿入する(ステップ1002)。また、メインメモリ103等から文書構造解析部12による解析結果である構造データを読み出す。そして、ノードリストが空でなく、処理されたノードの数がパラメータSより小さく、かつ時間制限内である間、次の処理を繰り返し実行する(ステップ1003)。
【0032】
まず、クローリングの回数を1加算(crawlingCount += 1;)する(ステップ1004)。ここで、crawlingCountが一定の増分を越えた場合(例えば100サイトごと)、かつstrategicScoreの計算が大域的である場合に、strategicScoreの再計算を行い、ノードリスト中のスコア(個々のノードのスコア、すなわち各ノードであるウェブサイトにリンクするアンカーの重要度)の値を置き換える(ステップ1005)。また、後述するように関係するキーワードが抽出されるものに関しては、それらのキーワードリストを提示してユーザによる選択を促す。ユーザがキーワードの選択を行った場合は、選択されたキーワードに応じてトピックを更新する。この間、クロールは一旦中断しても構わないが、続けることも可能である。
次に、ノードリストから先頭のノードを取り出し、カレントノードとする。このカレントノードは、図1に示したメインメモリ103やCPU101のキャッシュメモリに保持され、クローリング実行部14にて読み出される。そして、クローリング実行部14がネットワークインターフェイス106を介してインターネットにアクセスし、当該カレントノードのURLを持つコンテンツ(ウェブページや種々のデータ等)を取得する(ステップ1006)。取得したコンテンツは、図1に示したメインメモリ103やハードディスク105などの記憶装置に格納される。
【0033】
次に、重要度計算部13は、カレントノードに関する探索の深さ(パラメータD)を調べ、If  depth  >  0ならば、以下の手順でカレントノードの関連性を計算する(ステップ1007)。
まず、カレントノードからリンクされているノード(以下、子ノードと称す)のスコア(child_node.inherited_score)を計算する(図11、ステップ1008)。この計算手順は以下の通りである。
If  relevance(current_node)  >  0
Then  child_node.inherited_score  =  d  * strategicScoreForPage(STSET, current_node)
dは、予め定義された減衰定数。0より大きく1より小さい。
Else  child_node.inherited_score  =  d  * current_node.inherited_score
次に、child_node.anchor_scoreを計算する(ステップ1009)。
child_node.anchor_score  =  (relevance(anchor) + strategicScoreForAnchor(STSET, anchor))/2
そして、子ノードのpotential scoreを計算する(ステップ1010)。
child_node.potential_score  =  g  * child_node.inherited_score + (1 − g) * child_node.anchor_score
gは、予め定義された定数。0より大きく1より小さい。
【0034】
次に、重要度計算部13は、カレントノードの全ての子ノードに対して以下の計算を行う(ステップ1011〜1013)。
If  子ノードが優先リスト中に存在しているか。
Then
i)そのノードに対するリスト中の値と今計算されたpotential_scoreの大きい方を求める。
ii)スコアを最大値で置き換える。
iii)子ノードをリスト中の適切な位置に移動する。
Else  child_nodeにpotential_scoreを付け、リスト中の適切な位置(スコア順)に挿入する。
【0035】
さらに、重要度計算部13は、カレントノードの全ての子ノードに対して以下の計算を行う(ステップ1014)。
深さ(child_node.depth)を計算する。
If  カレントノードが関連がある場合
Then  child_node.depth  =  D
Else  child_node.depth  =  current_node.depth − 1
If  子ノードが優先リスト中に存在している。
Then
そのノードに対するリスト中の値と今計算された深さの大きい方を求める。
その値で置き換える。
【0036】
ステップ1014までの処理が終了した後、またはステップ1007で、If  depth  >  0でない場合は、ステップ1003に戻り、各条件を満足する限り、クローリングの回数を1加算してステップ1004以降の処理を繰り返す。そして、ステップ1003のいずれかの条件を満足しない場合は、重要度計算部13及びクローリング実行部14による処理を終了する。
【0037】
次に、上述したアルゴリズムにおける個々の計算方法について説明する。
・relevance(current_node)の計算方法
Domain QueryとFocused Queryは、ベクトル(トピックベクトル)で表現される。そして、これらのQuery(キーワード)とテキストの一致度は、ベクトル間の距離(内積など)で計算される。current_nodeは、そのテキスト部分をベクトルに変換し、その類似度を計算する。ユーザの指定によって、関連がないと判断されたキーワードは、トピックベクトルにおいてマイナスの重要度を持つ。これらは、以下の式で計算される。
relevance(current_node) = Similarity(current_node, Domain Query) + Similarity(current_node, Focused Query)
・relevance(anchor)の計算方法
relevance(current_node) = Similarity(TITLE, Domain Query) + Similarity(DESCRIPTION, Focused Query)
・strategicScoreForPage(STSET, current_node)の計算方法
ユーザによって指定された戦略ごとのスコアの重み付き総和によって決定される。値は0から1の間に正規化する。個々の戦略に対するスコアの計算方法(strategicScoreForPage(ST, current_node))は後述する。
・strategicScoreForAnchor(STSET, anchor) の計算方法
ユーザによって指定された戦略ごとのスコアの重み付き総和によって決定される。値は0から1の間に正規化する。個々の戦略に対するスコアの計算方法(strategicScoreForPage(ST, current_node))は後述する。
【0038】
次に、本実施の形態によるクローリングで用いられる戦略とそのタイプ、及びstrategicScoreForPage(ST, current_node), strategicScoreForAnchor(ST, anchor)の計算方法について、例を挙げて説明する。
本実施の形態で用いられる戦略には、局所的なものと大局的なものの2つのタイプがある。局所的な戦略は、ウェブページ内の情報のみで重要度を決定できるが、大局的な戦略は、複数のウェブページを解析することによって重要度を計算する。
・ユーザが指定したトピックに近いウェブサイトを検索(局所的戦略)
この戦略は、relevance(current_node), relevance(anchor)によって計算されるものであり、図10、11に示した基本的なアルゴリズム内に組み込まれている。
【0039】
・重要なウェブサイトを検索(大局的戦略)
これは、多くのウェブサイトで同じ情報が提供されていれば、その情報は重要だと見なす戦略である。同じ情報があるかどうかを複数のサイト内で調べる必要があるので大局的である。複数のウェブサイトで同じ情報が提供されているかどうかは、例えば次の文献3に開示されているような、ウェブページからヘッドライン(見出し)を抽出する公知技術を用いることによって、知ることができる。
文献3:武田、野美山、”サイト・アウトライニング−インターネットからの情報収集と可視化技術−”, 情報処理, Vol. 42, No.8, 2001.
この方法では、結果として同じ事柄を言及した情報要素の集合のみを返す。例えば、図12に示すようなヘッドラインを持つウェブサイトが検索されることとなる。なお、図12において、Site2〜4はSite 1の子ノードである。またこの方法では、抽出されたヘッドラインを構成する情報要素のテキスト部分からキーとなるキーワードとその重みを抽出して特徴キーワードリストを生成する。図12の例では、主要な要素となるキーワード“ロータス”、“チボリ”、“日本IBM”、“統合”とその重みとが特徴リストにリストアップされる。
ヘッドラインに含まれる新しい情報要素に対しては、対応ノードのテキスト部分から抽出されたキーワードリストと、ヘッドラインの特徴キーワードリストの距離(内積などで求められる)を計算し、その距離を重要度とする。
この方法において、strategicScoreForPage(ST, current_node)は、カレントノードのウェブページに含まれるヘッドラインの重要度の総数に基づいて計算される。そして当該ウェブページのアンカーの総数で割ることによって正規化する。
また、strategicScoreForAnchor(ST, anchor)は、現在抽出されているヘッドライン集合の全ての特徴ベクトルとの距離の最大値とする。
【0040】
・関連するイメージなどを多く含むウェブサイトを検索(局所的戦略)
HTML文書の文書構造を解析することによって、テキストと関連する他のメディアタイプ(Image、Audio、VideoあるいはMIME(Multipurpose InternetMail Extensions)タイプに定義されているドキュメントファイル(例えばPDF(Portable Document Format))など)を対応付けることが可能となる。テキスト部分がトピックと関連性を持つかどうかに基づいて重要度が計算される。
この方法において、strategicScoreForPage(ST,current_node)は、カレントノードのウェブページに含まれる関連イメージの総数であり、当該ウェブページのイメージの総数で割ることによって正規化する。
また、strategicScoreForAnchor(ST,anchor)は、関連するイメージであれば、重要度を1とし、そうでない場合は重要度を0とする。
【0041】
・重要なキーワードを含む情報に基づく検索(大局的戦略)
テキストの情報から抽出されたキーワードに基づいてクラスタリングを行い、各クラスタで重要と判断されたキーワードを多く含むかどうかによって重要度を判断する。この方法については、特開2001−325272公報に詳細に開示されている。
この方法において、strategicScoreForPage(ST,current_node)は、カレントノードのウェブページに含まれるホットワードを含む要素の重要度の総数に基づいて計算される。そして当該ウェブページのアンカーの総数で割ることによって正規化する。
また、strategicScoreForAnchor(ST,anchor)は、所定の要素がホットワードを含むのであれば、その重要度(0以上1以下)の値に設定し、そうでない場合は0とする。
【0042】
・アンカーの数に基づく検索(局所的戦略)
カレントノードのウェブページ内に存在するアンカーの総数によって重要度を判断する。
この方法において、strategicScoreForPage(ST,current_node)は、カレントノードのウェブページに含まれるアンカーの総数に基づいて計算される。局所的に重要度を計算するには、例えば、リンクの数を11段階に分け(0、1、2、3、4、5、6、7、8、9以上)、それぞれにスコア(0から1までの値)を与える。大局的に計算する場合は、検索されたウェブサイトの集合において、最大数のアンカーを含むウェブページの当該アンカーの数で正規化する。
また、strategicScoreForAnchor(ST,anchor)は、全て0とする。
【0043】
・期間の限定に基づく検索(局所的戦略)
ウェブページ内に出現する情報の発信された期間を限定する。HTTPプロトコルで得られる最終更新日付が、限定された期限内であれば、重要度を1とし、そうでなければ、期限からの超過日数を正規化した値を重要度とする。
・リンク集に基づく検索(局所的戦略)
HTML文書の文書構造解析によって得られたリンク集に含まれるリンクの数を重要度とする。
・被参照リンクの数に基づく検索(大局的戦略)
他のウェブサイトから参照されている数を重要度とする。
・被参照リンクの参照の数(大局的戦略)
カレントノードのウェブページを参照しているリンク数を重要度とする。
【0044】
上記のようにして、クローラ10は、ユーザにより選択された任意の戦略を用いてウェブサイトのクロールを行い、検索されたウェブサイトの集合(以下、サイト集合)を得る。得られたサイト集合は、ステップ1006で個々に取得されたコンテンツと共に、メインメモリ103やハードディスク105等の記憶装置に格納される。
【0045】
ウェブサイト選別部20は、メインメモリ103等の記憶装置に格納されているサイト集合の中から不要なウェブサイトを選別し、選別されたウェブサイト及びそのコンテンツを削除する。不要なウェブサイトとしては、トピックとの関連がないウェブサイト、時間条件を満たさないウェブサイトが挙げられる。
クローラ10はユーザにて指定されたトピックを表すキーワードに基づき所定の戦略に従ってクローリングを行うのであるが、得られたサイト集合には、ユーザが指定したトピックと関連が低い、あるいは関連のないウェブサイトが含まれる可能性がある。そこで、クローリングにより得られたサイト集合に対してトピックとの一致度を求め、関連のないウェブサイトはサイト集合から削除する。ただし、クロール時に得られる参照構造で関連すると判定された複数のウェブサイトの中間に位置するウェブサイト(当該ウェブサイトを介してリンクされる場合)は、中間位置の当該ウェブサイト自体にトピックとの関連性がない場合でも削除しない。
また、サイト集合には、ユーザが指定した時間に一致しないウェブサイト(指定期限内に検索されていないウェブサイトなど)が含まれる可能性がある。そこで、クローリングにより得られたサイト集合に対してHTTPプロトコルで得られるLAST_MODIFIED属性とユーザが指定した時間条件とを比較し、一致しないウェブサイトはサイト集合から削除する。
【0046】
レポート作成部30は、クローラ10にて検索され、ウェブサイト選別部20にて選別されたサイト集合に対して、個々の戦略に対するスコアの総得点を計算し、それらを正規化したレポートを作成し、メインメモリ103やハードディスク105等の記憶装置に格納する。例えば、イメージに関しては、1サイト当たりの関連イメージの数などが情報としてレポートに含まれることとなる。レポートは、例えばHTML文書として作成し、ウェブブラウザを用いて閲覧できるようにすることができる。
複数のトピックに対する戦略のスコアと比較する(平均値との比較、あるいは標準偏差を求める)ことにより、そのトピックがどのような戦略に一致しているのか(例えば、イメージが多い、情報が多い(掲示板などが多く含まれる))などの傾向を知ることができる。
【0047】
以上のようにして、本実施の形態の情報検索システムによれば、最適な戦略を組み合わせることによって、ユーザの目的により適したサイト集合を獲得することができる。
また、クローリングするために用いられるアンカーが独立でなく、対応するテキストに対して適切に対応付けられるため、トピックとの関連性をより正確に判断することができる。
さらに、文書構造解析を行って、HTML文書内で意味のないアンカーを排除するため、不要なウェブサイトをクロールする無駄を防ぐことができる。
そして、文書構造解析によって得られたブロックを利用することにより、位置的に離れた要素の依存関係をクローリングに利用できる。
このブロックを認識することによって、ウェブページ中のリンク集を特定することができるため、高品質なリンク集を収集し抽出することもできる。
この他、クロール中に(例えば図10のステップ1005の段階で)ユーザに対して関連キーワードを提示することによって、指定されたトピックの曖昧性を解消できる。例えば、トピック「ジャガー」は、「車」「動物」「ミック・ジャガー(ロック歌手)」などの曖昧性を持つが、クラスタリングなどによって、関連キーワードが表示し、ユーザがこの関連キーワードを指定することにより、クロール対象を絞り込むことができる。具体的には、車の「ジャガー」を検索したい場合は、「ミック・ジャガー」、「ライブ」などの関連キーワードを指定してマイナスの重要度を与えることによって、これらの関連キーワードを含むウェブサイトをクロール対象から外すことができ、結果としてトピックの曖昧性を解消することができる。
【0048】
図13、14、15は、具体的なウェブページのHTML文書に対して文書構造解析を行った様子を示す図である。図13はウェブページを表示した様子を示し、図14は、図13のウェブページのHTML文書に対して図4のステップ401におけるタグによるブロック解析を行った状態の構造データを示し、図15は、ステップ402以降の解析処理により整理されたブロック列の状態の構造データを示す。なお、図14、15にはHTML文書の解析結果の一部のみを記載している。
図13を参照すると、対象であるHTML文書は、レイアウトを揃えるためにテーブル(TABLE)タグを多用していることがわかる。そのため、これらのオブジェクト1401〜1406は、表示上はまとまって見えるとしても内部構造上は離れている場合がある。例えば、画面の下部中央にある「ニュース」オブジェクトは、図13に示すように表示上はまとまっているが、実際の構造は図14に示すようにテーブルタグを用いて位置揃えがなされており、意味的には余分なタグが多数挿入されている。本実施の形態の文書構造解析を行うことにより、図15に示すように、これらのオブジェクトが1つの要素1501として解析され、さらにそのタイトルとして「ニュース」が付与される。
図14におけるdotted_rule_197px.gifのイメージオブジェクト1407は、区切りとして利用されているが、これも正しく認識されており、解析中は区切りの意味合いを持つ情報として利用されるが、図15に示す解析後の構造には含まれない。
また、e−business hosting( HYPERLINK ”http://www.ibm.com/services/jp/webhosting/” http://www.ibm.com/services/jp/webhosting/)のオブジェクト1408〜1410などのように、同じURLを指している情報要素は、本実施の形態の文書構造解析により、図15に示すように1つの要素1502にまとめられる。
【0049】
このように、文書構造解析部12による解析の結果、HTML文書の構造が意味のあるまとまりごとにブロック化されるため、この構造に基づいてアンカーのリンク先へ遷移し、ウェブサイトをクロールすることにより、無駄のない適切なクローリングを行うことができる。
【0050】
【発明の効果】
以上説明したように、本発明によれば、情報の使用目的に応じて多様な戦略による柔軟な情報検索を可能とすることができる。
また、本発明によれば、ウェブページのクローリングにおいて、この多様な戦略による情報検索を実現するために、ウェブページに含まれる情報を有効に活用して検索を行うことができる。
【図面の簡単な説明】
【図1】本実施の形態による情報検索システムを実現するのに好適なコンピュータ装置のハードウェア構成の例を模式的に示した図である。
【図2】図1に示したコンピュータ装置にて実現される本実施の形態による情報検索システムの構成を示す図である。
【図3】本実施の形態の情報検索システムによる情報検索の概略的な流れを示すフローチャートである。
【図4】本実施の形態の文書構造解析部によるウェブページの文書構造解析処理の手順を説明するフローチャートである。
【図5】本実施の形態の文書構造解析処理により解析される不要な情報要素の例を示す図である。
【図6】本実施の形態の文書構造解析処理による情報要素のマージの例を説明する図である。
【図7】本実施の形態の文書構造解析処理による情報要素のマージの他の例を説明する図である。
【図8】本実施の形態の文書構造解析処理による情報要素のマージのさらに他の例を説明する図であり、マージを行う前の状態を示す図である。
【図9】図8の例における情報要素のマージを行った状態を説明する図である。
【図10】本実施の形態の重要度計算部により重要度を計算し、クローリング実行部によりウェブサイトのコンテンツを取得する動作を説明するフローチャートである。
【図11】本実施の形態の重要度計算部により重要度を計算し、クローリング実行部によりウェブサイトのコンテンツを取得する動作を説明するフローチャートである。
【図12】同じ事柄を言及したウェブサイトのサイト集合の例を示す図である。
【図13】ブラウザにて表示されたウェブページの例を示す図である。
【図14】図13のウェブページのHTML文書をタグによりブロック解析した状態の構造データを示す図である。
【図15】図14の状態からさらに文書構造解析を行った状態の構造データを示す図である。
【符号の説明】
10…クローラ、11…初期サイト獲得部、12…文書構造解析部、13…重要度計算部、14…クローリング実行部、20…ウェブサイト選別部、30…レポート作成部、101…CPU、102…M/Bチップセット、103…メインメモリ、105…ハードディスク、106…ネットワークインターフェイス

Claims (16)

  1. ネットワークを介してウェブサイトのクローリングを行う情報検索システムにおいて、
    所定のウェブページにおける意味を考慮してソースコードの構造を解析する構造解析部と、
    前記構造解析部の解析結果に基づいて、前記所定のウェブページからリンクされる他のウェブサイトの重要度を計算する重要度計算部と、
    前記重要度計算部により計算された重要度に応じてウェブサイトをクロールするクローリング実行部と
    を備えることを特徴とする情報検索システム。
  2. 前記構造解析部は、前記ソースコードに含まれる情報要素のうち、相互に関連する情報要素を対応付けることを特徴とする請求項1に記載の情報検索システム。
  3. 前記重要度計算部は、前記ウェブサイトの重要度を計算するための戦略を、予め用意された戦略の中から選択的に用いて重要度の計算を行うことを特徴とする請求項1に記載の情報検索システム。
  4. 前記重要度計算部は、前記ウェブサイトの重要度を計算するための戦略として、複数の戦略を選択し、各々重みを付けて用いることを特徴とする請求項3に記載の情報検索システム。
  5. HTML文書の文書構造を意味を考慮して解析し、解析によって得られた情報要素を対応するアンカーに付加する文書構造解析部と、
    前記文書構造解析部の解析により得られた前記情報要素に基づいて計算された前記アンカーの重要度に応じて当該アンカーにてリンクされるウェブサイトをクロールするクローリング実行部と
    を備えることを特徴とする情報検索システム。
  6. 前記文書構造解析部は、前記HTML文書を構成する各情報要素を、当該情報要素が持つ意味のまとまりごとにブロック化し、各ブロック内の情報要素を付加情報として同一ブロック内のアンカーに付加することを特徴とする請求項5に記載の情報検索システム。
  7. 前記文書構造解析部の解析により得られた前記情報要素に基づき、予め選択された所定の戦略にしたがって前記アンカーの重要度を計算する重要度計算部をさらに備え、
    前記クローリング実行部は、前記重要度計算部にて計算された前記アンカーの重要度に応じてウェブサイトをクロールすることを特徴とする請求項5に記載の情報検索システム。
  8. コンピュータを用いて、ネットワークを介してウェブサイトのクローリングを行う情報検索方法であって、
    初期情報となるウェブページを取得してソースコードを記憶装置に格納するステップと、
    前記記憶装置から前記ウェブページのソースコードを読み出し、当該ウェブページにおける意味を考慮して構造解析を行い、解析結果を前記記憶装置に格納するステップと、
    前記記憶装置に格納された前記構造解析の結果に基づいて、前記ウェブページからリンクされる他のウェブサイトの重要度を計算するステップと、
    計算された重要度に応じてウェブサイトにアクセスし、コンテンツを取得して前記記憶装置に格納するステップと
    を含むことを特徴とする情報検索方法。
  9. メモリから処理対象であるHTML文書を読み出し、当該HTML文書を構成する各情報要素を、当該HTML文書のタグに基づいてブロック化し、ブロック化された当該HTML文書の構造データをメモリに格納する第1のステップと、
    前記メモリからブロック化された前記HTML文書の構造データを読み出し、意味的に相互に関連する情報要素を対応付けることにより、当該HTML文書のブロック構造を更新し、更新された当該構造データをメモリに格納する第2のステップと
    を含むことを特徴とするコンピュータを用いたHTML文書の構造解析方法。
  10. ネットワークに接続されたコンピュータを制御して、ウェブサイトのクローリングを行うプログラムであって、
    初期情報となるウェブページを取得してソースコードを記憶装置に格納する処理と、
    前記記憶装置から前記ウェブページのソースコードを読み出し、当該ウェブページにおける意味を考慮して構造解析を行い、解析結果を前記記憶装置に格納する処理と、
    前記記憶装置に格納された前記構造解析の結果に基づいて、前記ウェブページからリンクされる他のウェブサイトの重要度を計算する処理と、
    計算された重要度に応じてウェブサイトにアクセスし、コンテンツを取得して前記記憶装置に格納する処理と
    を前記コンピュータに実行させることを特徴とするプログラム。
  11. 前記プログラムは、前記ソースコードに含まれる情報要素のうち、相互に関連する情報要素を対応付けることにより、前記構造解析を前記コンピュータに実行させることを特徴とする請求項10に記載のプログラム。
  12. 前記プログラムによる前記ウェブサイトの重要度を計算する処理では、前記ウェブサイトの重要度を計算するための戦略として、複数の戦略を各々重みを付けて用いることを特徴とする請求項10に記載のプログラム。
  13. コンピュータを制御して、HTML文書の文書構造を解析するプログラムであって、
    メモリから処理対象であるHTML文書を読み出し、当該HTML文書を構成する各情報要素を、当該HTML文書のタグに基づいてブロック化し、ブロック化された当該HTML文書の構造データをメモリに格納する第1の処理と、
    前記メモリからブロック化された前記HTML文書の構造データを読み出し、意味的に相互に関連する情報要素を対応付けることにより、当該HTML文書のブロック構造を更新し、更新された当該構造データをメモリに格納する第2の処理と
    を前記コンピュータに実行させることを特徴とするプログラム。
  14. 前記プログラムによる前記第2の処理では、
    文書構造解析の目的に鑑みて不要な情報要素を識別する処理と、
    構造的に意味のないブロックを削除する処理と、
    前記情報要素の内容に基づいて、情報要素のマージあるいはブロックの分割を行う処理と、
    各ブロックに含まれる情報に基づいて、ブロック構造をマージする処理と
    を前記コンピュータに実行させることを特徴とする請求項13に記載のプログラム。
  15. ネットワークに接続されたコンピュータを制御してウェブサイトのクローリングを行うプログラムを、当該コンピュータが読み取り可能に記録した記録媒体において、
    前記プログラムは、
    初期情報となるウェブページを取得してソースコードを記憶装置に格納する処理と、
    前記記憶装置から前記ウェブページのソースコードを読み出し、当該ウェブページにおける意味を考慮して構造解析を行い、解析結果を前記記憶装置に格納する処理と、
    前記記憶装置に格納された前記構造解析の結果に基づいて、前記ウェブページからリンクされる他のウェブサイトの重要度を計算する処理と、
    計算された重要度に応じてウェブサイトにアクセスし、コンテンツを取得して前記記憶装置に格納する処理と
    を前記コンピュータに実行させることを特徴とする記録媒体。
  16. コンピュータを制御してHTML文書の文書構造を解析するプログラムを、当該コンピュータが読み取り可能に記録した記録媒体において、
    前記プログラムは、
    メモリから処理対象であるHTML文書を読み出し、当該HTML文書を構成する各情報要素を、当該HTML文書のタグに基づいてブロック化し、ブロック化された当該HTML文書の構造データをメモリに格納する第1の処理と、
    前記メモリからブロック化された前記HTML文書の構造データを読み出し、意味的に相互に関連する情報要素を対応付けることにより、当該HTML文書のブロック構造を更新し、更新された当該構造データをメモリに格納する第2の処理と
    を前記コンピュータに実行させることを特徴とする記録媒体。
JP2002211634A 2002-07-19 2002-07-19 情報検索システム、情報検索方法、html文書の構造解析方法及びプログラム Pending JP2004054631A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002211634A JP2004054631A (ja) 2002-07-19 2002-07-19 情報検索システム、情報検索方法、html文書の構造解析方法及びプログラム
US10/621,474 US7496581B2 (en) 2002-07-19 2003-07-17 Information search system, information search method, HTML document structure analyzing method, and program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002211634A JP2004054631A (ja) 2002-07-19 2002-07-19 情報検索システム、情報検索方法、html文書の構造解析方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2004054631A true JP2004054631A (ja) 2004-02-19

Family

ID=31934813

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002211634A Pending JP2004054631A (ja) 2002-07-19 2002-07-19 情報検索システム、情報検索方法、html文書の構造解析方法及びプログラム

Country Status (2)

Country Link
US (1) US7496581B2 (ja)
JP (1) JP2004054631A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010140087A (ja) * 2008-12-09 2010-06-24 Nec Corp 情報収集装置、情報収集方法及びプログラム
JP2012247834A (ja) * 2011-05-25 2012-12-13 Nippon Telegr & Teleph Corp <Ntt> 文書分割スコアリング装置、方法、及びプログラム
JP2013506913A (ja) * 2009-10-02 2013-02-28 ムスルリ,アラビンド 視覚的要素をブロック分割し、識別し、インデクスを付けて、ドキュメントを検索するためのシステムおよび方法
US8972842B2 (en) 2011-05-18 2015-03-03 Kabushiki Kaisha Toshiba Method of processing data for an information processing apparatus

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004310691A (ja) * 2003-04-10 2004-11-04 Mitsubishi Electric Corp 文章情報処理装置
US7610190B2 (en) * 2003-10-15 2009-10-27 Fuji Xerox Co., Ltd. Systems and methods for hybrid text summarization
US7853871B2 (en) * 2005-06-10 2010-12-14 Nokia Corporation System and method for identifying segments in a web resource
US7979417B1 (en) * 2005-06-30 2011-07-12 Google Inc. Embedded communication of link information
US8370342B1 (en) 2005-09-27 2013-02-05 Google Inc. Display of relevant results
US8005825B1 (en) * 2005-09-27 2011-08-23 Google Inc. Identifying relevant portions of a document
US9529903B2 (en) * 2006-04-26 2016-12-27 The Bureau Of National Affairs, Inc. System and method for topical document searching
US7672943B2 (en) * 2006-10-26 2010-03-02 Microsoft Corporation Calculating a downloading priority for the uniform resource locator in response to the domain density score, the anchor text score, the URL string score, the category need score, and the link proximity score for targeted web crawling
US7844602B2 (en) * 2007-01-19 2010-11-30 Healthline Networks, Inc. Method and system for establishing document relevance
WO2010027324A1 (en) * 2008-09-08 2010-03-11 Scalado Ab Method for indexing images and for reading an index of an image
US8620929B2 (en) * 2009-08-14 2013-12-31 Google Inc. Context based resource relevance
US9032067B2 (en) * 2010-03-12 2015-05-12 Fujitsu Limited Determining differences in an event-driven application accessed in different client-tier environments
US8380722B2 (en) * 2010-03-29 2013-02-19 Microsoft Corporation Using anchor text with hyperlink structures for web searches
WO2011123981A1 (en) * 2010-04-07 2011-10-13 Google Inc. Detection of boilerplate content
KR20120042529A (ko) * 2010-10-25 2012-05-03 삼성전자주식회사 웹 페이지 크롤링 방법 및 장치
US8880588B2 (en) 2010-10-29 2014-11-04 Fujitsu Limited Technique for stateless distributed parallel crawling of interactive client-server applications
US9400962B2 (en) 2010-10-29 2016-07-26 Fujitsu Limited Architecture for distributed, parallel crawling of interactive client-server applications
US20120109929A1 (en) * 2010-10-29 2012-05-03 Fujitsu Limited Technique for efficient partial crawling of interactive client-server applications in a parallel, distributed environment
US8832065B2 (en) 2010-10-29 2014-09-09 Fujitsu Limited Technique for coordinating the distributed, parallel crawling of interactive client-server applications
US9208054B2 (en) 2011-02-14 2015-12-08 Fujitsu Limited Web service for automated cross-browser compatibility checking of web applications
US8880951B2 (en) 2012-04-06 2014-11-04 Fujitsu Limited Detection of dead widgets in software applications
CN103886020B (zh) * 2014-02-21 2017-04-05 杭州电子科技大学 一种房地产信息快速搜索方法
US9742792B2 (en) * 2014-10-01 2017-08-22 Whitehat Security, Inc. Site security monitor
CN104331512B (zh) * 2014-11-25 2017-10-20 南京烽火星空通信发展有限公司 一种bbs页面自动采集方法
RU2634228C1 (ru) * 2017-01-23 2017-10-24 Владимир Сергеевич Талала Способ поиска информации (варианты)
US11223960B2 (en) 2020-05-13 2022-01-11 T-Mobile Usa, Inc. Network planning tool for forecasting in telecommunications networks
US10880754B1 (en) 2020-05-13 2020-12-29 T-Mobile Usa, Inc. Network planning tool for retention analysis in telecommunications networks

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001060165A (ja) * 1999-08-20 2001-03-06 Nec Corp 情報セット重要度判定システム及びその判定方法、及び情報セット重要度判定プログラムを記録した記録媒体

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3108015B2 (ja) * 1996-05-22 2000-11-13 松下電器産業株式会社 ハイパーテキスト検索装置
US6163779A (en) * 1997-09-29 2000-12-19 International Business Machines Corporation Method of saving a web page to a local hard drive to enable client-side browsing
US6271840B1 (en) * 1998-09-24 2001-08-07 James Lee Finseth Graphical search engine visual index
US6704722B2 (en) * 1999-11-17 2004-03-09 Xerox Corporation Systems and methods for performing crawl searches and index searches
US7047033B2 (en) * 2000-02-01 2006-05-16 Infogin Ltd Methods and apparatus for analyzing, processing and formatting network information such as web-pages
US20030046276A1 (en) * 2001-09-06 2003-03-06 International Business Machines Corporation System and method for modular data search with database text extenders

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001060165A (ja) * 1999-08-20 2001-03-06 Nec Corp 情報セット重要度判定システム及びその判定方法、及び情報セット重要度判定プログラムを記録した記録媒体

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010140087A (ja) * 2008-12-09 2010-06-24 Nec Corp 情報収集装置、情報収集方法及びプログラム
JP2013506913A (ja) * 2009-10-02 2013-02-28 ムスルリ,アラビンド 視覚的要素をブロック分割し、識別し、インデクスを付けて、ドキュメントを検索するためのシステムおよび方法
US8972842B2 (en) 2011-05-18 2015-03-03 Kabushiki Kaisha Toshiba Method of processing data for an information processing apparatus
JP2012247834A (ja) * 2011-05-25 2012-12-13 Nippon Telegr & Teleph Corp <Ntt> 文書分割スコアリング装置、方法、及びプログラム

Also Published As

Publication number Publication date
US7496581B2 (en) 2009-02-24
US20040054654A1 (en) 2004-03-18

Similar Documents

Publication Publication Date Title
US7496581B2 (en) Information search system, information search method, HTML document structure analyzing method, and program product
US7809710B2 (en) System and method for extracting content for submission to a search engine
US7653623B2 (en) Information searching apparatus and method with mechanism of refining search results
US8745039B2 (en) Method and system for user guided search navigation
Yi et al. Web page cleaning for web mining through feature weighting
CN1104696C (zh) 自动添加信息的超级文本链接接收文件的系统和方法
US6338059B1 (en) Hyperlinked search interface for distributed database
US8452766B1 (en) Detecting query-specific duplicate documents
JP5727512B2 (ja) 検索提案のクラスタ化及び提示
JP4976666B2 (ja) 情報検索システムにおけるフレーズ識別方法
JP3665480B2 (ja) 文書整理装置および方法
JP3717808B2 (ja) 情報検索システム
US20030221163A1 (en) Using web structure for classifying and describing web pages
US20110082868A1 (en) System and method for block segmenting, identifying and indexing visual elements, and searching documents
KR20060017765A (ko) 개념 네트워크
JP2006048686A (ja) フレーズに基づく文書説明の生成方法
JP2006048685A (ja) 情報検索システムにおけるフレーズに基づくインデックス化方法
CN1175035A (zh) 利用软超连接的超媒体导引
JP2006048684A (ja) 情報検索システムにおけるフレーズに基づく検索方法
KR100485321B1 (ko) 검색 엔진에서 등록된 웹사이트를 관리하기 위한 방법 및그 시스템
Kao et al. Entropy-based link analysis for mining web informative structures
KR20040017008A (ko) 검색엔진을 활용한 정보 제공 시스템 및 그 방법
Patil et al. Search engine optimization technique importance
Chau et al. Comparison of two approaches to building a vertical search tool: a case study in the nanotechnology domain
JP2003271648A (ja) 検索装置、検索方法、ならびに、プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050519

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050906

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20051007