JP2005228343A - 決定理論的ウェブクローリングおよびウェブページ変更予測 - Google Patents

決定理論的ウェブクローリングおよびウェブページ変更予測 Download PDF

Info

Publication number
JP2005228343A
JP2005228343A JP2005036827A JP2005036827A JP2005228343A JP 2005228343 A JP2005228343 A JP 2005228343A JP 2005036827 A JP2005036827 A JP 2005036827A JP 2005036827 A JP2005036827 A JP 2005036827A JP 2005228343 A JP2005228343 A JP 2005228343A
Authority
JP
Japan
Prior art keywords
page
web
crawling
pages
url
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.)
Granted
Application number
JP2005036827A
Other languages
English (en)
Other versions
JP4806201B2 (ja
JP2005228343A5 (ja
Inventor
Carl M Kadie
エム.カディエ カール
Christopher A Meek
エー.ミーク クリストファー
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005228343A publication Critical patent/JP2005228343A/ja
Publication of JP2005228343A5 publication Critical patent/JP2005228343A5/ja
Application granted granted Critical
Publication of JP4806201B2 publication Critical patent/JP4806201B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B23MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
    • B23QDETAILS, COMPONENTS, OR ACCESSORIES FOR MACHINE TOOLS, e.g. ARRANGEMENTS FOR COPYING OR CONTROLLING; MACHINE TOOLS IN GENERAL CHARACTERISED BY THE CONSTRUCTION OF PARTICULAR DETAILS OR COMPONENTS; COMBINATIONS OR ASSOCIATIONS OF METAL-WORKING MACHINES, NOT DIRECTED TO A PARTICULAR RESULT
    • B23Q1/00Members which are comprised in the general build-up of a form of machine, particularly relatively large fixed members
    • B23Q1/72Auxiliary arrangements; Interconnections between auxiliary tables and movable machine elements
    • B23Q1/76Steadies; Rests
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

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)
  • Mechanical Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】 コンピュータ環境における予測的ウェブクローリングを円滑に行うシステムおよび方法を提供する。
【解決手段】 ウェブページのサブセットにおける変更の、予測的、ユーティリティに基づく、且つ決定理論確率の算定をもたらし、ウェブクローリングの性能を高め、ウェブページ情報が新鮮な状態に保たれるようにする。さらに、変更された確率が高いページを選択的にクローリングできるようにする。102はWEBクローラ・コンポーネント、104はバンドリング・コンポーネント、106は検索サーバ、108はマネージング・コンポーネントである。
【選択図】 図1

Description

本発明は、データ分析に関し、より詳細には、分散型ウェブクローラ(distributed web-crawler)を使って、ネットワーク接続されたシステム(networked system)から情報を取得するシステムおよび方法に関する。
高コスト、低性能のデータ処理システムから、低コスト、高性能の通信システム、問題解決システム、および娯楽システムへの、コンピュータおよびネットワーク技術の発展は、書簡のやり取り、請求書の支払い、買物、予算の立案、および情報収集など、日常業務を行うための負担を軽減する、コスト効率が高く時間を節約する手段をもたらした。たとえば、有線またはワイヤレス技術を介してインターネットとインターフェイスをとる計算機システムは、世界中にあるウェブサイトおよびサーバのリポジトリにある大量の情報に、ユーザが指一本で、ほぼ瞬時に近いアクセスをするためのチャネルをユーザに提供する。
一般に、ウェブサイトおよびサーバを介して利用可能な情報は、ウェブクライアント(たとえばコンピュータ)上で実行されるウェブブラウザを介してアクセスされる。たとえば、ウェブユーザは、ウェブブラウザを展開し、ウェブサイトのURL(ユニフォームリソースロケータ)(たとえば、ウェブアドレスおよび/またはインターネットアドレス)をウェブブラウザのアドレスバーに入力し、キーボード上のエンターキーを押下しまたはマウスで「go」ボタンをクリックすることによって、ウェブサイトにアクセスすることができる。URLは通常、アクセスを容易にする4つの情報を含む。すなわち、情報交換のための1組の規則および標準を示すプロトコル(互いに通信するためのコンピュータ用言語)と、ウェブサイトまでの場所指定と、ウェブサイトを維持する組織名と、組織のタイプを識別する添字(たとえば、com、org、net、gov、およびedu)である。
いくつかの場合において、ユーザは、自分がアクセスしたいと望むサイトもしくはサーバの名称、および/またはサイトもしくはサーバへのURLを先験的に知っている。このような状況において、ユーザは、上述したように、アドレスバーにURLを入力しサイトに接続することによって、サイトにアクセスすることができる。しかし、多くの場合、ユーザは、URLもサイト名も知らない。代わりに、ユーザは、検索エンジンを利用して、自分が提供したキーワードに基づいてサイトの発見を円滑に行う。概して、検索エンジンは、キーワードを求めてウェブサイトおよびサーバのコンテンツを検索するとともに、キーワードが発見されたウェブサイトおよびサーバへのリンクの一覧を返す、実行可能なアプリケーションまたはプログラムからなる。基本的に、検索エンジンは、(たとえば、ドキュメントに関連づけられたURLを取得することによって)できるだけ多くのドキュメントを取得するウェブ「クローラ(crawler)」(別名、「スパイダー(spider)」または「ロボット(robot)」)を組み込む。この情報は次いで、インデクサが、取得されたデータを処理することができるように格納される。インデクサは、ドキュメントを読み出し、各ドキュメントに含まれるキーワードおよびドキュメントの他の属性に基づいて、優先順位つきの索引を作成する。それぞれの検索エンジンは概して、独自のアルゴリズムを利用して、クエリに対して有意義な結果が返されるように、索引を作成する。
したがって、ウェブクローラ(web-crawler)は、検索エンジン(search engine)の動作にとって重要である。現在および最新の検索結果(search result)を提供するために、クローラは、ウェブを絶えず検索して、新しいウェブページを見つけ、古いウェブページ情報をアップデートし、消去されたページを削除しなければならない。インターネット上に見られるウェブページの数は天文学的である。したがって、ウェブクローラは、極度に高速であることが要求される。ほとんどのウェブクローラは、ウェブページを提供するサーバにポーリングを行うことによってデータを集めるので、クローラは、ある特定のサーバにアクセスするとき、できるだけ目立たないようにもしなければならない。極端な場合、クローラは、サーバの資源すべてを非常に高速に吸収し、サーバをシャットダウンさせてしまう場合がある。概して、クローラは、サーバのウェブページにアクセスする前に、サーバに対してそれ自体を識別し、アクセス許可を求める。この時点で、サーバは、サーバの資源すべてを盗む不正クローラに対して、アクセスを拒否することができる。ウェブページをホストするサーバは一般に、検索エンジンがユーザにウェブページをより容易に見つけさせるので、検索エンジンから利益を受ける。したがって、ほとんどのサーバは、サーバの資源(server's resource)を使い過ぎない限りクローラを受け入れるので、ユーザは、サーバのコンテンツを活用することができにくくなり得る。
今日、インターネット上の莫大な量の情報は、効率的なウェブクローリング(web-crawling)にとって、克服し難いほどの障害をもたらしている。たとえば、インターネット上のすべてのページをカタログしようと試みる一般的なウェブクローラは、そうしたページを1つずつたどるのに、数週間または数カ月もかかる場合がある。クロールされた直後にアップデートされるページは、数カ月の間再クロールされないであろうから、この場合、そのページに関連づけられた情報は、正確にカタログされず、その結果、ユーザが検索に関連した情報を受け取る効率を低下させることになる。
したがって、こういった分野において、ウェブクローリングの速度および効率を向上させるシステムおよび方法に対する、まだ対処されていない必要性がある。
以下では、本発明のいくつかの態様の基本的な理解をもたらすために、本発明の簡略な要約を提示する。この要約は、本発明の包括的な概要ではない。本発明の主要な/重大な要素を明らかにすることも、本発明の範囲を詳述することも意図されていない。後で提示するより詳細な説明の前置きとして、本発明のいくつかの概念を簡略な形で提示することだけを目的としている。
本発明は、クロールされるウェブページに優先順位をつける決定理論手法(decision-theoretic approach)を介して、ウェブページの予測分析(predictive analysis)を円滑に行うシステムおよび方法を提供する。本発明の態様によると、ウェブページがいつ変更されるかを予測する統計的手法(statistical approach)が適用され得る。決定理論的(decision-theoretic)なウェブクローリング手法(web-crawling approach)は、期待される成果を最大限にするように、ダウンロードするページを選択的に選ぶことができる。この決定理論手法は、1組の行われ得るアクション(a set of possible actions to be taken)、そのアクションについて1組の起こり得る結果(a set of possible outcomes of the actions)、ある特定の結果(particular outcome)がある特定のアクション(particular action)から生じる確率(probability)、および、結果の値(value of the outcome)を取り込んでいる、各結果(outcome)に対するユーティリティ・ファクター(utility factor)に基づいて、クローリングのためのページ選択(page selection)を円滑に行うアルゴリズムを含む。このようなアルゴリズムは、最大期待(maximum expected)ユーティリティ原理を適用することにより、最良のアクション(best action)を選択するために利用される。
本発明の関連態様によると、ウェブページの変更(web page change)は、ページクローリングの優先度(page crawling priority)に関する判定(determination)を円滑に行うために予測(predict)することができる。最後にクロールされたときからウェブページが変更された確率は、たとえば、対象となっている特定のページ(群)(specific page(s))に関連する変更履歴情報(historical change information)、ならびに他のページに関する変更履歴データの分析によって判定することができる。さらに、ページの様々な特徴(feature)が、ページがいつ変更されるかを予測するのに利用され得る。たとえば、ページのURLは、「.html」、「.com」などで終わるか否か判定するために分析される。同様に、ドキュメントまたはHTMLの特徴(たとえば、テーブル、写真を含むか否かなど)は、ページ変更(page change)を予測するために評価(assess)される。さらに、ページのダウンロード中に取得される、ページおよび/またはHTTPステータス情報における単語の特徴は、ページがいつ変更されるかを予測するのに利用され得る。
本発明の別の態様によると、ウェブページの変更予測(web page change prediction)を強化するために、フィードバック/フィードフォワードループが提供され。この態様は、URLのサンプルセット(a sample set of URLs)を作成し、確率プレディクタ(probability predictor)、クロール方針(crawl strategy)の調整パラメータ(tuning parameter)などを学習(learn)するためのトレーニングデータを集めるために、変更確率に関わらず定期的にサンプルセットをクロールすることを可能にする。サンプルは、たとえば、ユーザ検索に対する結果セット(a result set)にURLが現れた回数、検索に対する結果セットとしてURLを受け取ったユーザによってそのURLがクリックされた頻度、などによって決定されるような値によって重みづけされる。サンプルセットは、個々のURLまたはURLのサブセットが、サンプルセットの中のものと交換され得るように、定期的にアップデートされることができ、そうすることによって、一定の期間(たとえば、1カ月、2カ月など)の後、サンプルセットが全く新しいものになり得る。あるいは、サンプルセットは、予め定められたスケジュールに従って、完全に交換されてもよい。
上記の目的および関連する目的を達成するために、本発明の例示的な態様が、本明細書において、以下の記述および添付の図面に関連して説明される。ただし、こうした態様は本発明の原理が利用され得る様々な方法のごくわずかを示すに過ぎず、本発明は、このようなすべての態様およびその等価物を含むことを意図する。本発明の他の利点および新規の特徴は、本発明の以下の詳細な説明を図面と併せ読むことにより、明らかになるであろう。
以下、図面を参照して本発明を説明していく。同じ参照番号は、全体を通して同じ要素を指すのに使われる。以下の記述では、説明のために、多くの具体的な詳細が、本発明の完全な理解をもたらすために述べられる。ただし、こうした具体的な詳細なしでも本発明が実施され得ることが明らかであろう。他の例では、本発明の説明を円滑にするために、公知の構造およびデバイスがブロック図の形で示される。
本出願において使用される「コンポーネント(component)」という用語は、コンピュータ関連のエンティティ、すなわちハードウェア、ハードウェアおよびソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかを指すことを意図している。たとえば、コンポーネントは、プロセッサ上で実行されている処理、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータでよいが、それに限定されない。例として、サーバ上で実行されているアプリケーションおよびそのサーバ両方がコンピュータコンポーネントとなることができる。1つまたは複数のコンポーネントが実行の処理および/またはスレッド中に常駐することができ、コンポーネントは、1台のコンピュータに配置されることも、かつ/または2台以上のコンピュータの間に分散されることもできる。「スレッド(thread)」とは、オペレーティングシステムの核が実行のためにスケジュールする処理におけるエンティティである。当該分野において公知であるように、各スレッドは、スレッドの実行に関連づけられた揮発性データである、関連する「コンテキスト(context)」を有する。スレッドのコンテキストは、システムレジスタのコンテンツおよびスレッドの処理に属す仮想アドレスを含む。したがって、スレッドのコンテキストを含む実際のデータは、実行時に変化する。
本発明は、ウェブドキュメントの索引を維持する、改良されたシステムおよび方法を提供する。索引は、他のタイプの情報のデータを取り出し維持するのにも利用することができる。従来のウェブクローラは、本発明によって軽減される特定の欠点を有する。各クライアント(たとえば、ウェブにアクセスする任意の人のマシン)は、ローカルな情報を格納し、したがって、クライアントが最後に訪れたときから、ウェブページが変更されているか否かを知ることができる。変更されている場合、クライアントは、この情報を検索エンジンに伝達することができる。同様に、サーバは、クライアントが訪れたウェブページについての情報を用いて、現時点でサーバにとって未知であるページを見つけることができる。ドキュメントを効率よく見つけ、そうしたドキュメントについての現時点での知識を維持することは、イントラネットおよびインターネット検索両方にとって、非常に重要なタスクである。本発明は、イントラネット検索などの状況でも利用されることができ、その場合、ページをクロールし、サーバ上でページ情報を新鮮に保つことは、さらに重要な挑戦課題である。
検索エンジンの(インターネット、イントラネット、またはそれ以外にとって)重要なコンポーネントは、データクローラまたはドキュメントクローラである。ウェブクローラは、2つの主要タスクを実施する。すなわち、検索エンジンによって索引づけられるべき未知のドキュメントを見つけること、および、そのドキュメントが、既知の各ドキュメントについての最新の知識を有することを保証しようと試みることである。こうしたタスクは両方とも、困難であり、(ページ順位の質とともに)検索エンジンにおいて最も重要であり目に見える品質差別化要因に属する。ドキュメントクローラは一般に、サーバモデルに基づく。検索エンジンは、トポロジ検索によってウェブをクロールする。既知のウェブページからなるシードセットから始まり、クローラは、そうしたページからのリンクをたどり、そうすることによって、シードセットからのパス(URL参照の組)を介してつながれているすべてのウェブページを見つけることができる。検索エンジンがドキュメントの集合体についての最新の知識をもつようにするために、クロールは、頻繁に繰り返されなければならない。クローラは、クロールを行う度にウェブページを再訪するので、どの程度頻繁にページ(またはサブページ)が変更されるかを知ることができ、たとえば過去の変更頻度、予測される今後の変更(群)などに基づいて、特定のページを他のページより頻繁に再クロールする。
現在の、サーバベースのクローリングパラダイムには、いくつかの脆弱性がある。たとえば、検索エンジンは、クローラがページを再訪したときに、ドキュメントに対する変更(たとえば、コンテンツの変更や、既に存在しないページなど)を知ることしかできない。従来のシステムは一般に、頻繁に変更されるページをクロールする頻度を、それ程効率よく調節することができない。本発明は、上述した脆弱性を改善するやり方で、既知のドキュメントについての最新の知識を保持するシステムおよび方法を提供する。
本明細書で使用する、「推論(inference)」という用語は概して、イベントおよび/またはデータを介して獲得された1組の観察結果から、システム、環境、および/またはユーザの状態について論理的に判断しまたは推論する処理を指す。推論は、ある特定のコンテキストまたはアクションを識別するのに利用されることもでき、たとえば状態に関する確率分布を生成することもできる。推論は、確率に基づくことができる。つまり、データおよびイベントの検討に基づく、対象となる状態に関する確率分布の計算である。推論は、1組のイベントおよび/またはデータからより高レベルのイベントを構成するのに利用される技術も指し得る。このような推論の結果として、イベントが時間的な近接性において相関しているか否か、およびイベントおよびデータが1つまたは複数のイベントおよびデータソースからのものであるか否かに関わらず、1組の観察されたイベントデータおよび/または格納されたイベントデータから新たなイベントまたはアクションが構築される。
図1は、クロールするページに優先順位をつけるための予測的な手法をもたらすシステム100の例である。システム100は、起こり得る検索結果からなるカタログ中でウェブページを発見しアップデートするためにページをクロールするウェブクローリング・コンポーネント(web-crawling component)102を備える。ウェブクローリング・コンポーネント102は、ページのユーティリティ(utility of pages)に基づいてウェブページに優先順位をつけて組(set)、または「チャンク(chunk)」に分けるバンドリング・コンポーネント(bundling component)104に動作可能に関連づけられる。バンドリング・コンポーネント104はさらに、URLなど、アイテムのサブセットを含む検索サーバ106に動作可能に関連づけられ、こうしたサブセットは、クローリング・コンポーネント102によるクローリングのために、マネージング・コンポーネント(managing component)108によって選択される。このようにして、検索サーバ106は、クローリング・コンポーネント102によってクロールされ、バンドリング・コンポーネント104によって繰り返し優先順位をつけ直されることができる。
システム100は、変更が起きたときにウェブページのクローリングを促進するために、ウェブページがいつ変更されるかという予測を円滑に行い、そうすることによって、検索サーバは、それ程遅れることなくアップデートされ得るようになる。このような予測は、ページが最後にクロールされたときから変更されている確率を算定することによって行われ得る。ウェブページが変更されている確率を判定するために、問題となっている特定のページに関連する履歴情報(たとえば、これまでにページが変更された回数、変更(群)の規模など)、ならびに他のページの変更に関係する履歴データが評価され得る。さらに、ページのURLの特徴(たとえばURLが「.html」、「.com」などで終わるか否か)、ドキュメントもしくはHTMLの特徴(たとえば、テーブル、写真を含むか否か、など)、ページで使われている単語の特徴、および/またはページをダウンロードするときに取得されるHTTPステータス情報を利用することもできる。
マネージング・コンポーネント108は、ウェブページの変更に関する確率を予測するための統計モデルを構築することができる。このような統計モデルは、たとえば、ロジスティック回帰、サポートベクトルマシンの確率バージョンなどでよい。統計モデルを構築するために、マネージング・コンポーネント108は、1組のページに関する、ウェブページの変更タイミング(および、より一般的な意味では、たとえばページの閲覧回数、変更の程度など、起こり得る結果を記述する他の特徴)に密接に関係するトレーニングデータ、ならびに各ページがいつ変更されたかという具体的な履歴を収集することができる。マネージング・コンポーネント108はさらに、ページのコンテンツ、ページの変更履歴、ページのURL、ページのダウンロードに関連づけられたHTTPステータスメッセージなど、各ページの特徴を抽出することによって、トレーニングセットを組み立てることができる。「新規ページ(new page)」というシナリオに対する予測の場合(たとえば履歴情報が利用できない場合)、マネージング・コンポーネント108は、この情報のサブセットを使うことができる。
本発明の別の態様によると、システム100は、変更されたウェブページを発見しアップデートする際のクローリング・コンポーネント102の効率を最大限にするための、ページを選択的にダウンロードする決定理論をサポートするために、ウェブページがいつ変更されるかという予測を用いることができる。ある特定のページをクロールするのに適したときについての決定理論選択を円滑に行うために、様々な因子が利用され得る。たとえば、このような因子は、1組の起こり得るアクションA、1組の起こり得る結果O、ある特定の結果が起こる確率Pr、および、特定の結果の値を取り込む、各結果に関連づけられたユーティリティ・ファクターUtility(O)を含み得る。このような因子は、最大期待ユーティリティ原理の適用により、最良のアクションを選択するのに使うことができる。たとえば、
Figure 2005228343
の値を最大にする、a∈Aであるアクションが選択される。
すべてのアクションの組Aは、検索サーバ106からダウンロードされることができるページからなる、可能なすべてのサブセットを含むことができる。各単一ページは、アクションの選択を容易にするために他のページとは独立して検討されることができ、ページ(群)の組は、その個々の順位づけに基づいて選ばれることができる。この手法は、当期間においてどのページをアップデートするかという決定を円滑に行い、数週間または数カ月にもなり得る、すべてのページをクロールするのに要する時間に関連する問題を軽減する。
選ばれた各アクションに対して、いくつかの結果Oが起こり得る。たとえば、結果は、ページをダウンロードしないという判断、ページをダウンロードする試みの失敗、変更されていないページのダウンロード、および/または変更されたページのダウンロードでよい。起こり得る結果の変形体は、たとえば、近いうち(たとえば、1日、一週間、1カ月など)にページが閲覧され得る回数、ページの変更(群)の規模など、他の特徴を含むように拡張されてもよい。
ユーティリティ関数(utility function)は、各結果の値を重みづけし、そうすることによって、ページの値は、ページの重要性、ページが所与の期間に閲覧される回数、ページがクリックされる回数、ページ上でクリックされた特定のリンク、変更されたページの変更程度、様々なビジネスルール(たとえば、4週間ごとにすべてのページを一度クロールする、多くとも1日に一度ページをクロールする、など)、および/またはページの重要性に関連づけられた他のいずれかの適切な特徴の関数になり得る。
所与の結果が起こる確率の判定は、最も重要である。ウェブクローリングの基本的な目的は、ページが、最後にクロールされたときから変更されている確率を算定することである。ある特定の結果が起こる確率を正確に予測するために、マネージング・コンポーネントは、閲覧中の特定のページに関係する履歴データ、ならびに他のページの変更履歴などを利用することができる。
このような広大なページを選択的にクロールするには、現在および今後の期間において、どのページをクロールするかを決定する方針が必要である。たとえば、閲覧中のページが新しいページである場合、ページ変更の確率予測の基となる、マネージング・コンポーネント108にとって利用可能な履歴データがない。この例によると、マネージング・コンポーネントは、ページのコンテンツ、ページのURLなどに依拠することができる。ページが新しくない場合、マネージング・コンポーネントは、新しいページを参照して上述した情報に加え、ページの利用可能な変更履歴も調べることができる。さらに、決定理論は、ページが変更されるレートについての情報を増やし、かつ/または取得するために、新しいページをより頻繁にクロールすることも円滑に行うことができる。たとえば、確率予測因子が、ページがいつ変更されるかという予測が不確かであることを指す場合、決定理論は、慎重になることを選ぶとともにそのページを頻繁にクロールすることができ、そうすることによって、ページが、容認できないほど古くなる危険を低下させ、今後の確率予測の正確さを高め得るより多くの履歴データを提供する。
さらに、マネージング・コンポーネント108は、クローリングコンポーネント102に、たとえば、「野球」、「株価」などのカテゴリを利用してカテゴリ特有のクローリングを実施するよう命令することができる。このようにして、クローリングコンポーネント102は、ある特定のカテゴリの印を含むページを選択的にクロールすることができる。同様に、マネージング・コンポーネント108は、クローリングコンポーネント102に、クエリ特有のクローリング(たとえば、「全豪オープン」、「株X」など)を実施するよう命令することができる。このような例は、情報が頻繁に変更される対象を表し、したがって、そうした対象に関連するウェブページ(たとえば、スコア、価格など)は、頻繁にアップデートされる。このようなクエリ特有のクローリングは、ウェブページの変更予測の効率を上げる。さらに、結果空間は、ページが今後閲覧される回数、ページの変更の数および/または規模などを含むように拡張されることができる。
図2は、本発明の態様に従って、URLをそのユーティリティによってバンドルするシステム200の例示である。マネージング・コンポーネント202は、検索サーバ204から、ウェブページのチャンクをダウンロードすることができる。チャンクとは、たとえば、65,536ページ、32,768ページ、またはグループ化された他のウェブページ数でよい。マネージング・コンポーネント202は、ダウンロードしたチャンクのサブセットから情報を集め、各サブセットは、少なくとも1つのウェブページを含む。マネージング・コンポーネント202によって集められた情報は、たとえば、ページのコンテンツ、URL、HTTPヘッダ情報、履歴情報などを含むことができる。マネージング・コンポーネント202は次いで、ある特定のページまたはページのサブセットが、前回のクロール時から変更された、または予定されている次回のクロール前に変更される確率の予測をたて、ウェブクローラ206に、所望の結果を円滑にもたらすためのアクションをとる(たとえば、変更が差し迫っている場合はそのページをクロールし、変更が起こりそうにないので予定されているクロールまでそのページを無視する、など)よう命令することができる。さらに、ページ変更のタイミングおよび/またはページが、ある特定の日に変更され、またはある特定の過去の日に実際に変更された確率に関して、予測が行われることもできる。このような予測は、いくつかの日付のうちのある1日にページが変更される確率を表す分布曲線をもたらすのに利用されることができる。このような予測は、ページが、どのチャンクの部分であるかを明確にすることができる。
選択されたページがクロールされ、関連情報がアップデートされると、バンドリング・コンポーネント208が、ウェブクローラ206からURL情報を受け取り、たとえば、いつページ(群)が変更されるかという予測に基づいて、URLを新しいチャンク(チャンク*)にパッケージし直すことができる。バンドリング・コンポーネント208は次いで、パッケージし直されたチャンク*を、検索サーバ204に戻すことができる。
図3は、本発明の態様による、本明細書において述べられるウェブクローラのコンポーネントの例示である。ラウンドロビン・コンポーネント302は、列挙されたページ1〜nを、垂直下方向の破線矢印で示されるように上から下まで1つずつクロールするものとして示される。ラウンドロビン・コンポーネントはこのように、指定されたクローリング期間(たとえば28日)以内にすべてのページがクロールされるようにし、そうすることによって、どのページも28日より前のものにならないことを保証する。クローリング期間は、検索サーバをクロールするのに十分などの期間でもよく、28日という期間に限定されないことが理解されるべきである。
図3によると、ラウンドロビン・コンポーネント302は、チャンク1をクロール済みであり(チャンク1の左下隅の「RR」という印で示される)、チャンク2のクロールを処理中である。チャンク2のクロールが完了すると、ラウンドロビン・コンポーネント302は、チャンク3のクロールに進んで、そのコンテンツを判定することができる。しかし、貪欲(Greedy)コンポーネント304が、チャンク3のクロール処理中であり、したがって、ラウンドロビン・コンポーネント302は、チャンク3はクローリングを必要としないという指示を受け取ることができる。したがって、ラウンドロビン・コンポーネント302がクロールする次のチャンクはチャンク4である。貪欲コンポーネント304は、チャンクNをクロール済みであり、貪欲コンポーネントに関連づけられた破線垂直矢印は、貪欲コンポーネント304が、クロールする際にチャンクの順序に束縛されていないことを示すために、組の中のチャンクのリストに沿って両方向に伸びていることに留意されたい。チャンクの順序に束縛されるのではなく、貪欲コンポーネント304は、たとえば、予測スコア(たとえば、最後のクロールのときから変更されている最大平均確率)、ユーティリティスコア(たとえば最大平均ユーティリティ)、および/または決定理論スコア(たとえば最大期待ユーティリティ)などのベストスコアに基づいて、クロールするチャンク(個々のページでよい)を選択することができる。このようにして、ラウンドロビン・コンポーネント302は、規定の期間内にすべてのチャンクがクロールされるようにすることができ、貪欲コンポーネントは、ユーティリティスコアおよび/または変更が起こり得るスコアが最も高いチャンクが、スコアが低いものの前に検索されるようにする。さらに、ラウンドロビン・コンポーネント302が、現在のクローリング期間内に貪欲コンポーネント304によってチャンクがクロールされたことを認識できることによって、チャンク、検索サーバなどをクロールするのに要する時間が削減される。ラウンドロビン・コンポーネント302および貪欲コンポーネント304が協同で作用する方法を記述するアルゴリズムは、図7〜図9を参照して後に説明する。
図4は、本発明の態様による、本明細書において述べられるウェブクローラのコンポーネントの例示である。この図は、ラウンドロビン・コンポーネント402によって実施される、チャンクの順序づけられたクローリングを例示するために、チャンク(たとえば、アイテムまたはページなどのサブセット)の周辺にあるラウンドロビン・コンポーネント402を示している。図に示すように、ラウンドロビン・コンポーネント402は、チャンク1をクロール済みであり、チャンク2のクロール処理中である。チャンク1および2は、各チャンクが、ラウンドロビン・コンポーネント402によって既にクロールされており、または現在クロールされていることを示すように、左下隅に「RR」と示されている。貪欲コンポーネント404は、ラウンドロビンの順序に関わらず、貪欲コンポーネント404がすべてのチャンクにアクセスできることをより明確に示すために、チャンクの中心に示されている。たとえば、貪欲コンポーネント(Greedy component)は、貪欲コンポーネント404をチャンク3に接続する通信リンクによって示されるように、チャンク3を現在クロールしている。しかし、チャンク5は、チャンク3の後に配置されているにも関わらず、貪欲コンポーネント404によって既にクロールされていることに留意されたい。この例によると、貪欲コンポーネント404は、(たとえば、予測、ユーティリティ、および/または決定理論などの)スコアがチャンク3より高いチャンクを判定し、したがってチャンク3の前にチャンク5をクロールしている。ラウンドロビン・コンポーネント402は、チャンク2を完了するとチャンク3のクロールを試みることができるが、チャンク3が貪欲コンポーネント404によってクロールされていることを認識し得る。したがって、ラウンドロビン・コンポーネントがクロールする次のチャンクは、チャンク4となる。
説明を簡単にするために、本明細書においてたとえばフローチャートの形で示される1つまたは複数の方法は、一連の作用として示され説明されるが、本発明は作用の順序によって限定されないことを理解されたい。というのは、いくつかの作用は、本発明に従って異なる順序で起こることもでき、かつ/または本明細書において示され説明される他の作用と同時に起こることもできるからである。たとえば、方法は、状態図でのように、相関する一連の状態またはイベントとしても表され得ることが当業者には理解されよう。さらに、例示したすべての作用が、本発明による方法の実施に必要とされ得るわけではない。
図5は、本発明の態様による貪欲アルゴリズムによる予測的ウェブクローリングの方法の例示である。502において、チャンクが、クロールされる検索サーバからダウンロードされる。504において、どのチャンクをクロールするかという判定を円滑に行うために、チャンクスコアが決定される。たとえば、チャンクスコアは、予測スコア(たとえば、最後にクロールされたときから変更されている、最大平均確率など)、ユーティリティスコア(たとえば、最大平均ユーティリティなど)、および/または決定理論スコア(たとえば、最大期待ユーティリティなど)でよい。506において、チャンクスコアに関して、所与のチャンクのスコアが貪欲クロールを認可するか否か(たとえば、クローラが予定より早くクロールを行うべきか、など)、判定が行われ得る。所与のチャンクのスコアが貪欲クロールを認可しない場合、そのチャンクは、すぐにはクロールされない。チャンクのスコアが、貪欲クロールを認可するのに十分なほど高い場合、508において、十分なスコアをもつチャンクがクロールされることができる。
図6は、クローリングのために選ばれるチャンクの数が、たとえばクローリング容量に基づくことができる、本発明の態様による方法を示す。602において、ウェブクローラのクローリング容量が判定される(たとえば、クロールされ得るチャンクの最大数Mが算定される)。604において、起こり得るクローリングのために、チャンクが検索サーバからダウンロードされることができる。606において、どのチャンクをクロールするかという判定を円滑に行うために、(たとえば、予測的、ユーティリティに基づく、および/または決定理論)チャンクスコアが決定されることができる。608において、チャンクスコアに関して、および所与のチャンクのスコアが貪欲クロールを認可するか否か(たとえば、クローラが予定より早くクロールを行うべきか、など)、判定が行われ得る。所与のチャンクのスコアが貪欲クロールを認可しない場合、そのチャンクは、すぐにはクロールされない。チャンクのスコアが、貪欲クロールを認可するのに十分なほど高い場合、610において、ベストスコアをもつチャンクがクロールされることができる。
図7は、貪欲アルゴリズムが、ラウンドロビンアルゴリズムとともに利用される、本発明の態様による方法700の例示である。本発明のこの態様は、予測的、ユーティリティに基づく、および/または決定理論スコアを使ってチャンクを選ぶとともに、すべてのチャンクがD日間よりも古くならないように、(今後)クロールされ得ることを保証する貪欲アルゴリズムを利用する。702において、どのURLもD日間より古くならないことを保証する(たとえば、すべてのページが少なくともD日に一度クロールされることを保証する)ために、ラウンドロビンによってクローリング容量(crawling capacity)の何パーセント(rr%)が必要とされるかに関して、判定が行われる。たとえば、利用可能なクローリング容量の50%が、ラウンドロビンアルゴリズムを用いて、どのチャンクも28日より古くならないことを保証することができる場合、ラウンドロビンアルゴリズムは、その期限に従ってチャンクをクロールすることができる。期限は、たとえば、チャンクが最後にクロールされた日を算定することによって決定することができる。たとえば、チャンクAが14日前にクロールされた場合、その期限は14日後である。チャンクBが7日前にクロールされた場合、その期限は21日後である。したがって、チャンクAは、チャンクBの前にクロールされる。この例によると、704において、クローリング容量の50%が、ラウンドロビンに割り当てられ得る。
706において、残りのクローリング容量(1−rr%)が、貪欲クローリングのために、貪欲アルゴリズムに割り当てられる(g%)。次いで708において、クローリング速度は既知の値であるが、たとえば、選択されたチャンクのサイズおよび期間の長さを算定することによって、期間中にクロールされ得るチャンクの最大数(M)が決定される。710において、どの特定のチャンクがクロールされるべきか(TBC)に関して、判定が行われ得る。次に、712において、TBCに追加される、ベストスコアをもつチャンクの数に対して、公式g%*Mを用いてフロア(floor)が選択される。たとえば、g%が55%であり、Mが5に等しい場合、g%*Mは、2.75に等しく、フロア(floor)は2となる。最後に、714において、公式(formula)M−sizeによって最も古いチャンク(TBC)の選択が行われ、こうしたチャンクは、TBCに追加される。このようにして、貪欲クローリングのためにチャンクが選択され、ラウンドロビンアルゴリズムは、すべてのチャンクが所与の期間内にクロールされるようにする。
図8は、貪欲アルゴリズムが、ラウンドロビン・アルゴリズムとともに利用される、本発明の態様による方法800の例示である。802において、どのURLもD日より古くならないことを保証する(たとえば、すべてのページが少なくともD日に一度クロールされることを保証する)ために、ラウンドロビンによってクローリング容量の何パーセント(rr%)が必要とされるかに関して、判定が行われる。次に804において、ラウンドロビンにクローリング容量が割り当てられることができる。806において、残りのクローリング容量(1−rr%)が、貪欲クローリングのために、貪欲アルゴリズムに割り当てられることができる(g%)。次に808において、クローリング速度は既知の値であるが、たとえば、選択されるチャンクのサイズおよび期間の長さを算定することによって、期間中にクロールされ得るチャンクの最大数(M)が決定されることができる。810において、どの特定のチャンクがクロールされるべきか(TBC)に関して、判定が行われ得る。
812において、TBCに追加されるチャンクの数に対して、公式rr%*Mに基づいてシーリング(ceiling)が選択される。たとえば、rr%が53%に等しく、Mが10に等しい場合、rr%*Mは5.3に等しく、その結果、シーリングの値は6となる。814において、(たとえば、予測的、ユーティリティ、および/または決定理論などの)ベストスコアを有する、M−size分の最も古い(TBC)チャンクが選択され、TBCに追加される。このようにして、貪欲クローリングのためにチャンクが選択され、ラウンドロビン・アルゴリズムは、すべてのチャンクが所与の期間内にクロールされるようにする。
図9は、貪欲アルゴリズムが、ラウンドロビン・アルゴリズムとともに利用される、本発明の態様による方法900の例示である。ラウンドロビンは、上述した方法を利用するとき、チャンクすべてをクロールし終える必要があるとすぐにクロールし終えることができる。このことは、貪欲アルゴリズムもチャンクをクロールしているので起こり得る。たとえば、チャンクすべてが28日以内にクロールされる必要がある場合、方法700または800を利用すると、ページすべては実際には20日間でクロールされ得る。こうしたことが起こり得る理由を説明するために、以下のアルゴリズムが詳細に説明される。
Cをチャンクの組とし、C0、C1、...、Cnは、Cjがjという期間を期限とするチャンクである場合のCの区分であり、NjをCj中のチャンクの数とする。Cの区分中のメンバ数(たとえばn)は、最大期限切れ許容度の関数である。Lを、(たとえば、どのチャンクもD日より古くならないように保証するために)ある期間中にクロールされることが望まれるチャンクの最大数とし、Mを、ある期間中にクロールされ得るチャンクの最大数とし、ここで、MはL以上である。TBCを、当期間中にクロールされるチャンクの組とする。以下の「for」ループにおいて、Rは、期日<jである当日以降にクロールされる必要があるチャンク数を格納するのに用いられ、PQは、チャンクに対するスコアによって優先順位をつけられる、チャンクからなる優先キューであることに留意されたい。
Figure 2005228343
引き続き図9を参照すると、902において、各チャンクC0...Cnは、本明細書において上で説明されたように、(たとえば予測的、ユーティリティ、および/または決定理論)スコアを割り当てられる。904において、チャンクは、期日に従ってソートされる(たとえば、jという時間にクロールされることになっているチャンクは、Nj個のチャンクを有する組Cjで構成される)。906において、Cj中のチャンクが、優先キュー(PQ)に追加される。次いで、908において、PQのサイズの判定が、値j*Lに関して行われ、ここで、Lは、クロールされるチャンクの望ましい最大数である。PQがj*Lより小さい場合、このような情報は、フィードバックを提供するのに利用されることができ、方法は、チャンクをさらに追加するために906に戻り得る。PQがj*Lより大きい場合、910において、PQ中のトップチャンクは、クロールされるチャンク(TBC)の組に移動され得る。912において、Mに対するTBCのサイズに関して判定が行われ、ここで、Mは、期間中にクロールされ得るチャンクの最大数である。TBCがMより小さい(たとえば、TBC中に、より多くのチャンクのための余地がある、などの)場合、方法は、PQ中の次のトップチャンクをTBCに移動するために、910に戻り得る。912において、TBCのサイズがMより小さくないと判定された場合、914において、TBCは、クローリングのためにウェブクローラに戻され得る。このようにして、チャンク状況およびクローリング期限は、ラウンドロビンおよび貪欲アルゴリズムが、必要とされるよりも短い時間でクロールを協同で実施する機会を利用するために、連続してアップデートされることができる。
本発明は、ウェブページの変更予測とともにフィードバックループ(群)を利用し得ることが理解されるべきである。たとえば、上述したレギュラーのクローリングに加え、URLのサンプルが、確率プレディクタを学習しクローリング方針を調整するためのトレーニングデータをもたらすために、変更の確率に関わらず、定期的に選択されクロールされることができる。このようにすることにより、クローリング方針のテスト、このようなテストのための基準の構築、およびクローリング方法の確認を円滑に行うことができるデータも提供することができる。たとえば、64,000個のURLというサンプルサイズは、実用的であるのに十分に大きい可能性があり、サンプルは、すべてのURLにおいて一様である必要はなく、値によって重みづけられてよい。一態様によると、サンプル値は、所与の検索エンジンを使ってユーザに送られる結果セットからURLを選ぶことによって判定することができる。さらに、利用可能なクリックスルー情報が、結果セット中の他のサンプルよりも、提示されたURLを重みづけするためにユーザがクリックするこのようなURLの判定を円滑に行うのに利用することができる。
クローリング間隔(crawling interval)は、制作環境においてクローリングが発現する最大頻度(たとえば、毎日、一時間ごと、など)に適合されることができる。本発明は、このような間隔によって限定されないことが理解されるべきである。さらに、クロール方針の制作に依存しないので、ランダムなクローリングも有用であり得る。
サンプル中のページも、正常にクロールすることができる。この態様によると、URLは、このサンプルに移動される必要はなく、このサンプルにコピーされることができる。周期的(たとえば、毎月、2カ月ごと、など)に、新しいサンプルが入手され得る。あるいは、1カ月(または2カ月など)の間、サンプルが前の月と新たに比較されるように、URLが円滑に交換されてもよい。この態様によると、レギュラーのクローリングの場合よりも、各URLについての大量のデータが保持され得る。例として、レギュラーのクローリングは、ウェブページが変更された回数、ページが同じである回数、および/またはウェブページのクロールの平均間隔の保持のみを許可し得るであろう。ただし、本明細書において説明したフィードバックプロトコルは、たとえば、ウェブページが所与の日に変更されたか否かに関する情報の保持を許可することができる。さらに、サンプル中の各URLごとに、その初期状態に関する記録(たとえば、通常のクロール中に集められた、ある特定のページについての情報)が維持されることができる。したがって、ウェブクローリングのシミュレーションは、サンプル中の各URLが新しいURLであると仮定する必要はない。このようにして、ウェブクローリング方針は、変更頻度の低いページと比較して高い頻度で変更を行うことによってページの新鮮さを高めるように強化されることができ、そうすることによって、はるかに少ないマシンを利用してはるかに新鮮な結果を生じるようにさせる。
本発明の様々な態様を実施する状況をさらに提供するために、図10および以下の説明では、本発明の様々な態様が実施され得る適切な計算機環境1000の、簡潔な全体説明を提供することを意図している。これまでは、ローカルコンピュータおよび/またはリモートコンピュータ上で実行されるコンピュータプログラムのコンピュータ実行可能命令という一般的な状況において本発明が説明されたが、本発明は他のプログラムモジュールとの組合せでも実施され得ることが当業者には理解されよう。概して、プログラムモジュールは、特定のタスクを実施し、かつ/または特定の抽象データタイプを実施するルーチン、プログラム、コンポーネント、データ構造などを含む。さらに、本発明の方法は、他のコンピュータシステム構成とともに実施され得ることが当業者には理解されよう。他のコンピュータシステム構成には、シングルプロセッサコンピュータシステムまたはマルチプロセッサコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、ならびにパーソナルコンピュータ、可搬型計算装置、マイクロプロセッサベースの家電製品および/またはプログラム可能な家電製品などがあり、それぞれが1つまたは複数の関連するデバイスと動作可能に通信することができる。図示した本発明の態様は、通信ネットワークを介してリンクされるリモート処理ユニットによって特定のタスクが実施される分散型計算機環境でも実施されることができる。ただし、すべてではなくともいくつかの本発明の態様は、独立型のコンピュータにおいても実施されることができる。分散型計算機環境では、プログラムモジュールは、ローカルメモリ記憶装置および/またはリモートメモリ記憶装置内に配置されることができる。
本明細書において使用する「コンポーネント」という用語は、ハードウェア、ハードウェアおよびソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかであるコンピュータ関連エンティティを指すことを意図している。たとえば、コンポーネントは、プロセッサで実行中の処理、プロセッサ、オブジェクト、実行ファイル、実行のスレッド、プログラム、およびコンピュータでよいが、それに限定されない。実例として、サーバ上で実行中のアプリケーションおよび/またはそのサーバがコンポーネントとなり得る。さらに、コンポーネントは、1つまたは複数の下位コンポーネントを含むことができる。
図10を参照すると、本発明の様々な態様を実施する例示的なシステム環境1000は、従来のコンピュータ1002を含み、このコンピュータは、処理ユニット1004、システムメモリ1006、およびシステムメモリなどの様々なシステムコンポーネントを処理ユニット1004に結合するシステムバス1008を含む。処理ユニット1004は、市販されているどのプロセッサでも、固有のどのプロセッサでもよい。さらに、この処理ユニットは、並列に接続され得るような複数のプロセッサから形成されるマルチプロセッサとして実施されることができる。
システムバス1008は、従来の様々なバスアーキテクチャ、たとえばいくつか例を挙げると、PCI、VESA、マイクロチャネル、ISA、およびEISAのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスなどいくつかのタイプのバス構造のいずれでもよい。システムメモリ1006は、ROM(読出し専用メモリ)1010およびRAM(ランダムアクセスメモリ)1012を含む。BIOS(基本入出力システム)は、たとえば起動中にコンピュータ1002内部の要素間の情報の転送を助ける基本ルーチンを含み、ROM1010に格納される。
コンピュータ1002は、たとえば、ハードディスクドライブ1014、たとえば取外し可能ディスク1018からの読出しまたはそこへの書込みを行うための磁気ディスクドライブ1016、および、たとえばCD−ROMディスク1022または他の光学媒体からの読出しまたはそこへの書込みを行う光ディスクドライブ1020を含むこともできる。ハードディスクドライブ1014、磁気ディスクドライブ1016、および光ディスクドライブ1020は、それぞれハードディスクドライブインターフェイス1024、磁気ディスクドライブインターフェイス1026、および光ドライブインターフェイス1028によって、システムバス1008に接続される。ドライブ1014〜1020およびそれに関連するコンピュータ可読媒体は、データ、データ構造、コンピュータ実行可能命令などを含む不揮発性の記憶をコンピュータ1002に提供する。上記のコンピュータ可読媒体の説明では、ハードディスク、取外し可能な磁気ディスク、およびCDに言及したが、コンピュータ可読な他のタイプの媒体、たとえば磁気カセット、フラッシュメモリカード、デジタル映像ディスク、ベルヌーイカートリッジなども、例示的な動作環境1000において使われることができ、さらに、このようなどの媒体も、本発明の方法を実施するコンピュータ実行可能命令を含むことができることが当業者には理解されよう。
オペレーティングシステム1030、1つまたは複数のアプリケーションプログラム1032、他のプログラムモジュール1034、およびプログラムデータ1036などいくつかのプログラムモジュールは、ドライブ1014〜1020およびRAM1012に格納されることができる。オペレーティングシステム1030は、適切などのオペレーティングシステムでも、オペレーティングシステムの組合せでもよい。一例として、アプリケーションプログラム1032およびプログラムモジュール1034が、本発明の態様によるクライアントベースのウェブクローリングを円滑に行うことを含むことができる。
ユーザは、キーボード1038およびポインティングデバイス(たとえばマウス1040)など1つまたは複数のユーザ入力デバイスを介して、コマンドおよび情報をコンピュータ1002に入力することができる。他の入力デバイス(図示せず)には、マイクロホン、ジョイスティック、ゲーム用パッド、衛星パラボラアンテナ、ワイヤレスリモコン、スキャナなどがあり得る。こうしたおよび他の入力デバイスはしばしば、システムバス1008に結合されるシリアルポートインターフェイス1042を介して処理ユニット1004に接続されるが、他のインターフェイス、たとえば並列ポート、ゲームポート、またはUSB(ユニバーサルシリアルバス)によって接続されることもできる。モニタ1044または他のタイプの表示デバイスも、ビデオアダプタ1046などのインターフェイスを介してシステムバス1008に接続される。モニタ1044に加えて、コンピュータ1002は、他の周辺出力デバイス(図示せず)、たとえばスピーカ、プリンタなども含むことができる。
コンピュータ1002は、1つまたは複数のリモートコンピュータ1048への論理接続を使用してネットワーク接続された環境において動作できることを理解されたい。リモートコンピュータ1048は、ワークステーション、サーバコンピュータ、ルータ、ピア装置、または他の共通ネットワークノードでよく、通常、コンピュータ1002に関連して説明した要素の多くまたはすべてを含むが、簡潔にするために、メモリ記憶装置1050のみを図10に示した。図10に示した論理接続は、LAN(ローカルエリアネットワーク)1052およびWAN(ワイドエリアネットワーク)1054を含むことができる。このようなネットワーク環境は、会社、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいてよく見られる。
LANネットワーク環境において使われる場合、たとえば、コンピュータ1002は、ネットワークインターフェイスまたはアダプタ1056を介してローカルネットワーク1048に接続される。WANネットワーク環境において使われる場合、コンピュータ1002は通常、(たとえば、電話、DSL、ケーブルなどの)モデム1058を含み、またはLAN上の通信サーバに接続され、あるいは、たとえばインターネットなどのWAN1054を介した通信を確立する他の手段を有する。モデム1058は、コンピュータ1002の内部にあっても外部にあってもよく、シリアルポートインターフェイス1042を介してシステムバス1008に接続される。ネットワーク接続された環境では、プログラムモジュール(アプリケーションプログラム1032など)および/またはプログラムデータ1036は、リモートメモリ記憶装置1050に格納されることができる。図示したネットワーク接続は例示的なものであり、本発明の態様を実施する際に、コンピュータ1002と1048の間の通信リンクを確立する他の手段(たとえば、有線またはワイヤレス)も使われ得ることが理解されよう。
他の指示がない限り、コンピュータプログラミングの当業者による実施に従って、コンピュータ、たとえばコンピュータ1002またはリモートコンピュータ1048によって実施される作用および象徴的に表した動作を参照して本発明が説明された。このような作用および動作は、ときにはコンピュータに実行されるものとして言及される。こうした作用および象徴的に表した動作は、処理ユニット1004による、データビットを表す電気信号の処理を含み、その結果、電気信号表現を変換または減少させ、メモリシステム(システムメモリ1006、ハードドライブ1014、フロッピー(登録商標)ディスク1018、CD−ROM1022、およびリモートメモリ1050など)内のメモリロケーションにデータビットを保持させ、そうすることによって、コンピュータシステムの動作、ならびに他の信号処理を再構成し、あるいは変更することが理解されよう。このようなデータビットが保持されるメモリロケーションは、データビットに対応する特定の電気属性、磁気属性、または光学属性を有する物理的な場所である。
図11は、本発明と相互作用する一例である計算機環境1100の別のブロック図である。システム1100はさらに、1つまたは複数のクライアント(群)1102を含むシステムを示す。クライアント(群)1102は、ハードウェアおよび/またはソフトウェア(たとえば、スレッド、処理、計算装置)でよい。システム1100は、1つまたは複数のサーバ(群)1104も含む。サーバ(群)1104は、ハードウェアおよび/またはソフトウェア(たとえば、スレッド、処理、計算装置)でよい。サーバ1104は、たとえば、本発明を利用して変換を実施するためのスレッドを収容することができる。クライアント1102とサーバ1104の間の可能な1つの通信形体は、2つ以上のコンピュータ処理の間で伝送されるように適合されたデータパケットの形をとることができる。システム1100は、クライアント(群)1102とサーバ(群)1104の間の通信を円滑に行うのに利用され得る通信フレームワーク1106を含む。クライアント(群)1102は、クライアント(群)1102にローカルな情報を格納するのに利用され得る、1つまたは複数のクライアントデータストア(群)1108に動作可能に接続される。同様に、サーバ(群)1104は、サーバ1104にローカルな情報を格納するのに利用され得る、1つまたは複数のサーバデータストア(群)1110に動作可能に接続される。
本発明の一例では、ウェブクローリングを円滑に行う、2つ以上のコンピュータコンポーネントの間で伝送されるデータパケットは、少なくとも部分的には、ウェブクローリング用の分散型システムを少なくとも部分的に使用するウェブクローリングに関する情報からなる。
本発明の別の例では、ウェブクローリングを円滑に行うシステムの、コンピュータ実行可能なコンポーネントを格納するコンピュータ可読媒体は、少なくとも部分的には、ウェブクローリング用の分散システムによって編集される、ウェブページに関連する情報を少なくとも部分的に判定するウェブクローリングシステムからなる。
本発明のシステムおよび/または方法は、コンピュータコンポーネント、および非コンピュータ関連コンポーネントを同様に支援するウェブクローリングシステムにおいて利用され得ることを理解されたい。さらに、本発明のシステムおよび/または方法は、有線および/またはワイヤレスなどでよい、コンピュータ、サーバ、および/または可搬型電子装置などを含むがそれに限定されない広範囲の電子関連技術において利用可能であることが当業者には理解されよう。
本発明は、サーバ−クライアントベースのクローリングシステムだけでなく、ピアツーピアのクローリングシステムにも利用され得ることも当業者には理解されよう。クライアントは、一般に「サーバ」行動に関連づけられたタスクを実施することができ、したがって、本発明のいくつかの例において、サーバに関連づけられたいくつかの特性をクライアントに転送することも可能である。本発明の一事例として、クライアントは、他のクライアントに対して「部分クロール(sub-crawl)」を実施して、サーバに送信するための情報を確認し、かつ/または取り出す。この例は、たとえば、特定のクライアントとサーバの間のボトルネックを有するネットワークにおいて有益であり得る。データは、サーバへの最高のアクセス権を有するクライアントに転送されることができる。本発明の他の例では、クライアントは、イントラネットシステムにおいて部分クロールを開始することによってサーバの行動を示すことができ、したがって、イントラネット上に存在する唯一の、および/または大幅に削減された数のクライアントから、サーバに情報を報告する。このようにして、検索サーバは、クライアントにおいて複数の部分クロールを開始して、サーバのクロール用資源を拡張することができる。
上記の説明内容は、本発明のいくつかの例を含む。当然ながら、本発明を説明するためのコンポーネントまたは方法のあらゆる組合せを説明することはできないが、本発明のさらに多くの組合せおよび入替えが可能であることが当業者には理解できよう。したがって、本発明は、特許請求の範囲の精神および範囲内であるこのようなすべての変更形態、修正形態、および変形形態を包含することを意図したものである。
本発明の実施形態によるウェブクローリングシステム100を示す図である。 本発明の実施形態によるウェブクローリングシステム200を示す図である。 共働ウェブクローリング・コンポーネントを列挙した実施形態によるウェブクローリング・システム300を示す図である。 共働ウェブクローリング・コンポーネントを列挙した実施形態によるウェブクローリングシステム400を示す図である。 本発明の実施形態による方法500を示す図である。 本発明の実施形態による方法600を示す図である。 本発明の実施形態による方法700を示す図である。 本発明の実施形態による方法800を示す図である。 本発明の実施形態による方法900を示す図である。 本発明の実施形態による例示的な計算機環境1000を示す図である。 本発明の実施形態による例示的な計算機環境1100を示す図である。
符号の説明
102 WEBクローラ・コンポーネント
104 バンドリング・コンポーネント
106 検索サーバ
108 マネージング・コンポーネント
202 マネージング・コンポーネント
204 検索サーバ
206 WEBクローラ
208 バンドリング・コンポーネント
302 ラウンドロビン・クローラ
304 貪欲(グリーディ)・クローラ
402 ラウンドロビン・クローラ
404 貪欲(グリーディ)クローラ
1004 処理ユニット
1006 システムメモリ
1008 バス
1018 ディスク
1020 CDドライブ
1022 ディスク
1024 インターフェイス
1026 インターフェイス
1028 インターフェイス
1030 オペレーティングシステム
1032 アプリケーション
1034 モジュール
1036 データ
1038 キーボード
1040 マウス
1042 入力デバイスインターフェイス
1044 モニタ
1046 ビデオアダプタ
1048 リモートコンピュータ(群)
1050 メモリ/ストレージ
1056 ネットワークアダプタ
1058 モデム
1102 クライアント(群)
1104 サーバ(群)
1106 通信フレームワーク
1108 クライアントデータストア(群)
1110 サーバデータストア(群)

Claims (37)

  1. ウェブクローリングを行うシステムであって、
    ウェブクローリングを実施するか否か、いつウェブクローリングを実施するか、さらに、どのようにしてウェブクローリングを実施するかという判定に関して、予測分析を行うマネージングコンポーネントと、
    前記予測分析に応じてウェブページのサブセットをクロールするウェブクローリングコンポーネントと、
    を具備したことを特徴とするシステム。
  2. 少なくとも1つのウェブページにおける変更に関連した予測を行うことにより、前記少なくとも1つのウェブページをクロールするのに適した時を判定する決定理論コンポーネントを、
    さらに備えることを特徴とする請求項1に記載のシステム。
  3. 前記決定理論コンポーネントは、少なくとも部分的には、
    前記少なくとも1つのウェブページに対して実施される、1組の起こり得るアクションAと、
    1組の起こり得る結果Oと、
    ある特定の結果が起こる確率Prと、
    各結果に関連づけられたユーティリティファクターUtility(O)と、
    に基づいて前記少なくとも1つのウェブページにおける変更を行う、ことを特徴とする請求項2に記載のシステム。
  4. 前記決定理論コンポーネントは、前記1組の起こり得るアクションAから、
    Figure 2005228343
    (ここで、oは、前記起こり得る結果の全ての組Oにおける結果)
    の値が最大になるアクションaを選択することによって、前記少なくとも1つのウェブページにおける変更に関連した予測を行う、ことを特徴とする請求項3に記載のシステム。
  5. 前記予測分析は、前記少なくとも1つのウェブページの前記ユーティリティに少なくとも部分的には基づく、ことを特徴とする請求項1に記載のシステム。
  6. 前記予測分析は、前記少なくとも1つのウェブページに関連した履歴データに少なくとも部分的には基づく、ことを特徴とする請求項1に記載のシステム。
  7. 前記予測分析は、前記少なくとも1つのウェブページに含まれるコンテンツに少なくとも部分的には基づく、ことを特徴とする請求項1に記載のシステム。
  8. 前記ウェブページの前記ユーティリティに従って、クロールしたウェブページを新たなサブセットに並び替えるバンドリングコンポーネントを、さらに備えることを特徴とする請求項1に記載のシステム。
  9. 前記ウェブクローリングコンポーネントは、
    サブセット中のウェブページを順次クロールし、すべてのウェブページがクローリング期間内にクロールされるようにするラウンドロビン・クローリングコンポーネントと、
    各ページに関連づけられたスコアに従って非順次にページをクロールする貪欲クローリングコンポーネントと、
    を備えることを特徴とする請求項1に記載のシステム。
  10. クローリングのためにウェブページに優先順位をつける方法であって、
    複数のページからなる少なくとも1つのサブセット中の変更を予測するステップと、
    複数のウェブページからなる前記少なくとも1つのサブセットにスコアを割り当てるステップと、
    スコアが高いページのサブセットを、スコアが低いページのサブセットに先だって選択的にクロールするステップと、
    クロールされていないすべてのページを順次非選択的にクロールするステップと、
    を含むことを特徴とする方法。
  11. 前記サブセット内における個々のページの認識されたユーティリティに従って、複数のページからなる少なくとも1つのサブセットを分割するステップを、さらに含むことを特徴とする請求項10に記載の方法。
  12. 前記分割されたページの前記認識されたユーティリティに従って、分割されたページを新たなサブセットにバンドルし直すステップを、さらに含むことを特徴とする請求項11に記載の方法。
  13. 少なくとも1つのウェブページに対して実施される、1組の起こり得るアクションAと、
    1組の起こり得る結果Oと、
    ある特定の結果が起こる確率Prと、
    各結果に関連づけられたユーティリティファクターUtility(O)と、
    に基づいて、ページをいつクロールするかを決定するための決定理論分析を行うステップを、さらに含むことを特徴とする請求項10に記載の方法。
  14. 前記1組の起こり得るアクションAから、
    Figure 2005228343
    (ここで、oは、前記起こり得る結果の全ての組Oにおける結果)
    の値が最大になるアクションaを選択するステップを、さらに含むことを特徴とする請求項13に記載の方法。
  15. 以前にクロールしたページに少なくとも部分的には基づいて、ウェブページがいつ変更されるかに関する予測を行うステップを、さらに含むことを特徴とする請求項10に記載の方法。
  16. 前記ページが以前にクロールされたことがない場合、前記予測は、前記ページのURL(ユニバーサル・リソース・ロケータ)および前記ページの前記URLを指すウェブサイトの少なくとも一方に基づく、ことを特徴とする請求項10に記載の方法。
  17. 前記ページが以前に一度だけクロールされたことがある場合、前記予測は、前記ページのURLと、前記ページの前記URLを指すウェブサイトと、前記ページのHTTP(ハイパーテキスト転送プロトコル)ヘッダと、前記ページのコンテンツとの少なくとも1つに基づく、ことを特徴とする請求項10に記載の方法。
  18. 前記ページが以前に複数回クロールされたことがある場合、前記予測は、前記ページのURLと、前記ページの前記URLを指すウェブサイトと、前記ページのHTTPヘッダと、前記ページのコンテンツと、前記ページに対する変更履歴と、前記ページに関連したデルタ情報との少なくとも1つに基づく、ことを特徴とする請求項10に記載の方法。
  19. 前記デルタ情報は、あるクロールと次のクロールの間の前記ページにおける違いを判定するために、前記ページのコンテキストの分析を含むことを特徴とする請求項18に記載の方法。
  20. クロールされていないすべてのページが非選択的にクロールされる順序は、最後にクロールされた時に基づく、ことを特徴とする請求項10に記載の方法。
  21. 所定の時間を超えて、どのウェブページも、クロールされていない状態にならないようにするステップを、さらに含むことを特徴とする請求項20に記載の方法。
  22. 前記スコアは、予測スコア、ユーティリティスコア、および決定理論スコアの少なくとも1つである、ことを特徴とする請求項10に記載の方法。
  23. 変更されている確率、最大平均ユーティリティ、および最大期待ユーティリティの少なくとも1つに基づいて、少なくとも1つのウェブページのスコアを重みづけするステップをさらに含む、ことを特徴とする請求項10に記載の方法。
  24. どのウェブページも、D日より古いものにならないようにするステップをさらに含み、前記Dは実数である、ことを特徴とする請求項10に記載の方法。
  25. フィードバックループによって、ウェブページにおける変更を予測する方法であって、
    サーバ上のウェブページのサブセットから、URLのサンプルセットを選択するステップと、
    前記サンプルセットを定期的にクロールするステップと、
    を含むことを特徴とする方法。
  26. 前記クロールされたサンプルセットから集められたデータを利用することにより、確率プレディクタを学習するためのトレーニングデータ、および/または、クローリング方針を調整するためのトレーニングデータを提供するステップを、さらに含むことを特徴とする請求項25に記載の方法。
  27. 前記クロールされたサンプルセットから集められたデータを利用することにより、クローリング方針をテストし、かつ/あるいは、クローリング方針をテストする基準を構築するステップを、さらに含むことを特徴とする請求項25に記載の方法。
  28. 前記URLのサンプルセットは、検索エンジンを用いてユーザに送られるURLの結果セットから選択される、ことを特徴とする請求項25に記載の方法。
  29. ユーザによってクリックされた前記結果セット中のURLを、ユーザによってクリックされていないURLよりも重く重みづけするステップをさらに含む、ことを特徴とする請求項28に記載の方法。
  30. 前記URLのサンプルセットの選択に先立って、ウェブページの前記サブセットに対してレギュラークロールを実施するステップを、さらに含むことを特徴とする請求項25に記載の方法。
  31. 前記レギュラークロール中に判定された前記サンプルURLの初期状態を記録するステップを、さらに含むことを特徴とする請求項30に記載の方法。
  32. 新たなURLのサンプルセットを周期的に選択するステップをさらに含む、ことを特徴とする請求項25に記載の方法。
  33. 少なくとも1つのサンプルURLを一度に置き換えて、前記URLのサンプルセットを周期的にアップデートすることにより、新たなURLのサンプルセットを徐々に作成するステップを、さらに含むことを特徴とする請求項25に記載の方法。
  34. ウェブページの変更を予測する方法であって、
    ウェブサーバ上にあるウェブページの少なくとも1つのサブセットにおける変更を予測する手段と、
    ある期間内にページのサブセット全体をクロールする手段と、
    各ページに関連づけられたスコアを決定する手段と、
    より高いスコアを有すると判定されたページを選択的にクロールする手段と、
    を備えたことを特徴とする方法。
  35. 変更されている確率、最大平均ユーティリティ、および最大期待ユーティリティの少なくとも1つに基づいて、少なくとも1つのウェブページのスコアを重みづけする手段を、さらに含むことを特徴とする請求項34に記載の方法。
  36. どのウェブページもD日より古いものにならないようにする手段をさらに含み、Dは実数である、ことを特徴とする請求項34に記載の方法。
  37. サーバ上におけるウェブページの少なくとも1つのサブセット中の少なくとも1つのウェブページにおける変更を予測し、
    前記少なくとも1つのサブセット中の前記少なくとも1つのウェブページにスコアを割り当て、
    前記少なくとも1つのウェブページに割り当てられた前記スコアが所定の最小値より大きい場合、前記少なくとも1つのウェブページを選択的にクロールするためのコンピュータ実行可能命令を、
    格納していることを特徴とするコンピュータ可読媒体。
JP2005036827A 2004-02-12 2005-02-14 決定理論的ウェブクローリングおよびウェブページ変更予測 Expired - Fee Related JP4806201B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/777,365 2004-02-12
US10/777,365 US7310632B2 (en) 2004-02-12 2004-02-12 Decision-theoretic web-crawling and predicting web-page change

Publications (3)

Publication Number Publication Date
JP2005228343A true JP2005228343A (ja) 2005-08-25
JP2005228343A5 JP2005228343A5 (ja) 2008-03-21
JP4806201B2 JP4806201B2 (ja) 2011-11-02

Family

ID=34701376

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005036827A Expired - Fee Related JP4806201B2 (ja) 2004-02-12 2005-02-14 決定理論的ウェブクローリングおよびウェブページ変更予測

Country Status (10)

Country Link
US (1) US7310632B2 (ja)
EP (1) EP1564661A3 (ja)
JP (1) JP4806201B2 (ja)
KR (1) KR101213930B1 (ja)
CN (1) CN100492358C (ja)
AU (1) AU2005200231B2 (ja)
BR (1) BRPI0500357A (ja)
CA (1) CA2492348C (ja)
MX (1) MXPA05001675A (ja)
RU (1) RU2405197C2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008243021A (ja) * 2007-03-28 2008-10-09 Nippon Telegr & Teleph Corp <Ntt> 符号列生成装置、符号列入力装置、符号列生成プログラムおよび符号列入力プログラム
JP2010140087A (ja) * 2008-12-09 2010-06-24 Nec Corp 情報収集装置、情報収集方法及びプログラム
JP2012099105A (ja) * 2010-10-29 2012-05-24 Fujitsu Ltd 対話的クライアント‐サーバー・アプリケーションの分散式並列クロールを協調させる技法

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6594662B1 (en) * 1998-07-01 2003-07-15 Netshadow, Inc. Method and system for gathering information resident on global computer networks
US6883135B1 (en) * 2000-01-28 2005-04-19 Microsoft Corporation Proxy server using a statistical model
JP4283466B2 (ja) * 2001-10-12 2009-06-24 富士通株式会社 リンク関係に基づく文書整理方法
US20040264677A1 (en) * 2003-06-30 2004-12-30 Horvitz Eric J. Ideal transfer of call handling from automated systems to human operators based on forecasts of automation efficacy and operator load
US8042112B1 (en) 2003-07-03 2011-10-18 Google Inc. Scheduler for search engine crawler
US7725452B1 (en) * 2003-07-03 2010-05-25 Google Inc. Scheduler for search engine crawler
US7584221B2 (en) * 2004-03-18 2009-09-01 Microsoft Corporation Field weighting in text searching
US7475067B2 (en) * 2004-07-09 2009-01-06 Aol Llc Web page performance scoring
US7567959B2 (en) 2004-07-26 2009-07-28 Google Inc. Multiple index based information retrieval system
US7702618B1 (en) 2004-07-26 2010-04-20 Google Inc. Information retrieval system for archiving multiple document versions
US7711679B2 (en) 2004-07-26 2010-05-04 Google Inc. Phrase-based detection of duplicate documents in an information retrieval system
US7987172B1 (en) 2004-08-30 2011-07-26 Google Inc. Minimizing visibility of stale content in web searching including revising web crawl intervals of documents
JP4719684B2 (ja) * 2004-09-07 2011-07-06 インターマン株式会社 情報検索提供装置および情報検索提供システム
US7606793B2 (en) 2004-09-27 2009-10-20 Microsoft Corporation System and method for scoping searches using index keys
US8065296B1 (en) * 2004-09-29 2011-11-22 Google Inc. Systems and methods for determining a quality of provided items
US7761448B2 (en) 2004-09-30 2010-07-20 Microsoft Corporation System and method for ranking search results using click distance
US7827181B2 (en) 2004-09-30 2010-11-02 Microsoft Corporation Click distance determination
US7739277B2 (en) 2004-09-30 2010-06-15 Microsoft Corporation System and method for incorporating anchor text into ranking search results
US7716198B2 (en) 2004-12-21 2010-05-11 Microsoft Corporation Ranking search results using feature extraction
US7536389B1 (en) 2005-02-22 2009-05-19 Yahoo ! Inc. Techniques for crawling dynamic web content
US7792833B2 (en) 2005-03-03 2010-09-07 Microsoft Corporation Ranking search results using language types
US8386459B1 (en) * 2005-04-25 2013-02-26 Google Inc. Scheduling a recrawl
US8666964B1 (en) 2005-04-25 2014-03-04 Google Inc. Managing items in crawl schedule
US7509315B1 (en) 2005-06-24 2009-03-24 Google Inc. Managing URLs
US7610267B2 (en) * 2005-06-28 2009-10-27 Yahoo! Inc. Unsupervised, automated web host dynamicity detection, dead link detection and prerequisite page discovery for search indexed web pages
EP1938214A1 (en) * 2005-10-11 2008-07-02 Taptu Ltd. Search using changes in prevalence of content items on the web
US8095565B2 (en) * 2005-12-05 2012-01-10 Microsoft Corporation Metadata driven user interface
US20070143300A1 (en) * 2005-12-20 2007-06-21 Ask Jeeves, Inc. System and method for monitoring evolution over time of temporal content
US7599931B2 (en) * 2006-03-03 2009-10-06 Microsoft Corporation Web forum crawler
US7475069B2 (en) * 2006-03-29 2009-01-06 International Business Machines Corporation System and method for prioritizing websites during a webcrawling process
US20070260586A1 (en) * 2006-05-03 2007-11-08 Antonio Savona Systems and methods for selecting and organizing information using temporal clustering
WO2008030568A2 (en) * 2006-09-07 2008-03-13 Feedster, Inc. Feed crawling system and method and spam feed filter
US20080104257A1 (en) * 2006-10-26 2008-05-01 Yahoo! Inc. System and method using a refresh policy for incremental updating of web pages
US8745183B2 (en) * 2006-10-26 2014-06-03 Yahoo! Inc. System and method for adaptively refreshing a web page
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
US20080104502A1 (en) * 2006-10-26 2008-05-01 Yahoo! Inc. System and method for providing a change profile of a web page
WO2008070415A2 (en) * 2006-11-14 2008-06-12 Deepdive Technologies Inc. Networked information collection apparatus and method
US7886042B2 (en) * 2006-12-19 2011-02-08 Yahoo! Inc. Dynamically constrained, forward scheduling over uncertain workloads
US7979458B2 (en) * 2007-01-16 2011-07-12 Microsoft Corporation Associating security trimmers with documents in an enterprise search system
US8725719B2 (en) * 2007-02-13 2014-05-13 Microsoft Corporation Managing web page links using structured data
US20080215541A1 (en) * 2007-03-01 2008-09-04 Microsoft Corporation Techniques for searching web forums
US20090013068A1 (en) * 2007-07-02 2009-01-08 Eaglestone Robert J Systems and processes for evaluating webpages
US20090024583A1 (en) * 2007-07-18 2009-01-22 Yahoo! Inc. Techniques in using feedback in crawling web content
US20090070346A1 (en) * 2007-09-06 2009-03-12 Antonio Savona Systems and methods for clustering information
US8117223B2 (en) 2007-09-07 2012-02-14 Google Inc. Integrating external related phrase information into a phrase-based indexing information retrieval system
US8041704B2 (en) * 2007-10-12 2011-10-18 The Regents Of The University Of California Searching for virtual world objects
US9348912B2 (en) 2007-10-18 2016-05-24 Microsoft Technology Licensing, Llc Document length as a static relevance feature for ranking search results
US7840569B2 (en) 2007-10-18 2010-11-23 Microsoft Corporation Enterprise relevancy ranking using a neural network
US7984000B2 (en) 2007-10-31 2011-07-19 Microsoft Corporation Predicting and using search engine switching behavior
WO2009059480A1 (en) * 2007-11-08 2009-05-14 Shanghai Hewlett-Packard Co., Ltd Url and anchor text analysis for focused crawling
US8886660B2 (en) * 2008-02-07 2014-11-11 Siemens Enterprise Communications Gmbh & Co. Kg Method and apparatus for tracking a change in a collection of web documents
US8812493B2 (en) 2008-04-11 2014-08-19 Microsoft Corporation Search results ranking using editing distance and document information
JP2009282738A (ja) 2008-05-22 2009-12-03 Nec Electronics Corp 自動更新装置、自動更新方法、及びプログラム
US8321793B1 (en) * 2008-07-02 2012-11-27 Amdocs Software Systems Limited System, method, and computer program for recommending web content to a user
KR100975510B1 (ko) * 2008-07-17 2010-08-11 엔에이치엔(주) 웹 페이지 색인 업데이트 방법 및 시스템
US8805861B2 (en) * 2008-12-09 2014-08-12 Google Inc. Methods and systems to train models to extract and integrate information from data sources
US20100205168A1 (en) * 2009-02-10 2010-08-12 Microsoft Corporation Thread-Based Incremental Web Forum Crawling
US20100211533A1 (en) * 2009-02-18 2010-08-19 Microsoft Corporation Extracting structured data from web forums
US8712992B2 (en) * 2009-03-28 2014-04-29 Microsoft Corporation Method and apparatus for web crawling
US20100287148A1 (en) * 2009-05-08 2010-11-11 Cpa Global Patent Research Limited Method, System, and Apparatus for Targeted Searching of Multi-Sectional Documents within an Electronic Document Collection
US8484180B2 (en) * 2009-06-03 2013-07-09 Yahoo! Inc. Graph-based seed selection algorithm for web crawlers
US9213780B2 (en) * 2009-06-26 2015-12-15 Microsoft Technology Licensing Llc Cache and index refreshing strategies for variably dynamic items and accesses
US20110016471A1 (en) * 2009-07-15 2011-01-20 Microsoft Corporation Balancing Resource Allocations Based on Priority
US8352852B2 (en) * 2009-08-14 2013-01-08 Red Hat, Inc. Portal replay and foresee
US9135261B2 (en) 2009-12-15 2015-09-15 Emc Corporation Systems and methods for facilitating data discovery
US8156240B2 (en) * 2010-03-01 2012-04-10 Yahoo! Inc. Mechanism for supporting user content feeds
US8738635B2 (en) 2010-06-01 2014-05-27 Microsoft Corporation Detection of junk in search result ranking
US8433700B2 (en) * 2010-09-17 2013-04-30 Verisign, Inc. Method and system for triggering web crawling based on registry data
CN102480524B (zh) * 2010-11-26 2014-09-10 中国科学院声学研究所 一种网页爬虫协作方法
US8793706B2 (en) 2010-12-16 2014-07-29 Microsoft Corporation Metadata-based eventing supporting operations on data
CN102567407B (zh) * 2010-12-22 2014-07-16 北大方正集团有限公司 一种论坛回帖增量采集方法及系统
US8255385B1 (en) 2011-03-22 2012-08-28 Microsoft Corporation Adaptive crawl rates based on publication frequency
US8600968B2 (en) 2011-04-19 2013-12-03 Microsoft Corporation Predictively suggesting websites
CN102890692A (zh) 2011-07-22 2013-01-23 阿里巴巴集团控股有限公司 一种网页信息抽取方法及抽取系统
US8782031B2 (en) 2011-08-09 2014-07-15 Microsoft Corporation Optimizing web crawling with user history
AU2012316283B2 (en) * 2011-09-27 2016-01-14 Amazon Technologies, Inc. Historical browsing session management
US9495462B2 (en) 2012-01-27 2016-11-15 Microsoft Technology Licensing, Llc Re-ranking search results
US9881101B2 (en) 2012-11-16 2018-01-30 International Business Machines Corporation Dynamic file retrieving for web page loading
US9122992B2 (en) * 2012-12-12 2015-09-01 Lenovo (Singapore) Pte. Ltd. Predicting web page
US10114804B2 (en) 2013-01-18 2018-10-30 International Business Machines Corporation Representation of an element in a page via an identifier
RU2592390C2 (ru) * 2013-07-15 2016-07-20 Общество С Ограниченной Ответственностью "Яндекс" Система, способ и устройство для оценки сеансов просмотра
CN104657391B (zh) * 2013-11-21 2018-08-03 阿里巴巴集团控股有限公司 页面的处理方法及装置
CN105024870A (zh) * 2014-04-24 2015-11-04 中国移动通信集团公司 一种实现拨测的方法及系统
RU2589310C2 (ru) * 2014-09-30 2016-07-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ расчета интервала повторного определения категорий сетевого ресурса
US9160680B1 (en) 2014-11-18 2015-10-13 Kaspersky Lab Zao System and method for dynamic network resource categorization re-assignment
US10216694B2 (en) * 2015-08-24 2019-02-26 Google Llc Generic scheduling
US10210255B2 (en) * 2015-12-31 2019-02-19 Fractal Industries, Inc. Distributed system for large volume deep web data extraction
CN108780446B (zh) * 2015-10-28 2022-08-19 维尔塞特公司 时间依赖的机器生成的提示
RU2632143C1 (ru) * 2016-04-11 2017-10-02 Общество С Ограниченной Ответственностью "Яндекс" Способ обучения модуля ранжирования с использованием обучающей выборки с зашумленными ярлыками
WO2018124757A1 (ko) * 2016-12-30 2018-07-05 (주)엠더블유스토리 크롤러 원격 관리 시스템 및 그 관리 방법
US10491622B2 (en) * 2017-01-04 2019-11-26 Synack, Inc. Automatic webpage change detection
CN108062368B (zh) * 2017-12-08 2021-05-07 北京百度网讯科技有限公司 全量数据翻译方法、装置、服务器及存储介质
US10671371B2 (en) 2018-06-12 2020-06-02 International Business Machines Corporation Alerting an offline user of a predicted computer file update
EP3467740A1 (en) * 2018-06-20 2019-04-10 DataCo GmbH Method and system for generating reports
US11379539B2 (en) 2019-05-22 2022-07-05 Microsoft Technology Licensing, Llc Efficient freshness crawl scheduling
CN111444412B (zh) * 2020-04-03 2023-06-16 北京明朝万达科技股份有限公司 网络爬虫任务的调度方法及装置
KR102563125B1 (ko) * 2021-02-01 2023-08-03 (주)레몬클라우드 최저가제공장치 및 최저가제공방법
US20230216913A1 (en) * 2021-12-31 2023-07-06 Tangoe Us, Inc. Robotic Process Automation For Telecom Expense Management Information Change Detection And Notification
WO2023211304A1 (ru) * 2022-04-29 2023-11-02 Публичное Акционерное Общество "Сбербанк России" Система и способ сбора и обработки новостей в сети интернет

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091638A (ja) * 1996-09-17 1998-04-10 Toshiba Corp 検索システム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040225644A1 (en) * 2003-05-09 2004-11-11 International Business Machines Corporation Method and apparatus for search engine World Wide Web crawling

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091638A (ja) * 1996-09-17 1998-04-10 Toshiba Corp 検索システム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNB200800102001, Pierre Baldi、外2名原著,水田正弘、外2名共訳, 確率モデルによるWebデータ解析法(原題:Modeling the Internet and the Web), 20070531, 第1版, p.163−186, 森北出版株式会社 *
CSNH200300223004, 野上宏康、外2名, "自然言語処理エンジン", 東芝レビュー, 20011201, 第56巻,第12号, p.23−26, 株式会社東芝 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008243021A (ja) * 2007-03-28 2008-10-09 Nippon Telegr & Teleph Corp <Ntt> 符号列生成装置、符号列入力装置、符号列生成プログラムおよび符号列入力プログラム
JP4668942B2 (ja) * 2007-03-28 2011-04-13 日本電信電話株式会社 符号列生成装置、符号列入力装置、符号列生成プログラムおよび符号列入力プログラム
JP2010140087A (ja) * 2008-12-09 2010-06-24 Nec Corp 情報収集装置、情報収集方法及びプログラム
JP2012099105A (ja) * 2010-10-29 2012-05-24 Fujitsu Ltd 対話的クライアント‐サーバー・アプリケーションの分散式並列クロールを協調させる技法

Also Published As

Publication number Publication date
EP1564661A2 (en) 2005-08-17
US20050192936A1 (en) 2005-09-01
JP4806201B2 (ja) 2011-11-02
RU2405197C2 (ru) 2010-11-27
KR20060041874A (ko) 2006-05-12
US7310632B2 (en) 2007-12-18
AU2005200231B2 (en) 2011-02-17
EP1564661A3 (en) 2007-02-07
BRPI0500357A (pt) 2005-09-27
AU2005200231A1 (en) 2005-09-01
KR101213930B1 (ko) 2012-12-18
CA2492348C (en) 2013-12-31
CN100492358C (zh) 2009-05-27
MXPA05001675A (es) 2005-08-16
CN1680938A (zh) 2005-10-12
RU2005103705A (ru) 2006-07-20
CA2492348A1 (en) 2005-08-12

Similar Documents

Publication Publication Date Title
JP4806201B2 (ja) 決定理論的ウェブクローリングおよびウェブページ変更予測
US11620296B2 (en) Online machine learning algorithm for a data intake and query system
US11620157B2 (en) Data ingestion pipeline anomaly detection
US11663176B2 (en) Data field extraction model training for a data intake and query system
Menczer Complementing search engines with online web mining agents
US11704490B2 (en) Log sourcetype inference model training for a data intake and query system
Dhenakaran et al. Web crawler-an overview
US11687438B1 (en) Adaptive thresholding of data streamed to a data processing pipeline
WO2013055776A2 (en) Systems and methods for prediction-based crawling of social media network
US11663219B1 (en) Determining a set of parameter values for a processing pipeline
US7769749B2 (en) Web page categorization using graph-based term selection
US20230385288A1 (en) User interface for customizing data streams and processing pipelines
WO2022026984A1 (en) Data field extraction model training for a data intake and query system
Sethi An optimized crawling technique for maintaining fresh repositories
Santos et al. A genetic programming framework to schedule webpage updates
CN112347394A (zh) 网页信息的获取方法、装置、计算机设备和存储介质
US20200089714A1 (en) Method and server for indexing web page in index
US11714698B1 (en) System and method for machine-learning based alert prioritization
Tsai et al. Information services for novelty mining

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080130

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101022

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110301

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110531

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110701

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110805

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110812

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140819

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees