本発明に係る実施の形態は、インターネットサイトへの柔軟なアクセスを提供するシステムに用いられるデータベースの作成方法、そのデータベースを用いるシステム及びそのシステムにおける処理をコンピュータに実行させるためのプログラムに関する。たとえば、下記のように、一実施の形態で、このシステムは、インターネットサイトへのアクセスを単純に許可または拒否するのではない。ユーザに、カテゴリ化されたデータベース内で見つかったサイトへのアクセスに関する複数のオプションを与えることができる。
たとえば、一実施の形態では、ユーザに、その日の別の時刻まで所望のサイトへのアクセスを延期するというオプションを提示する。ユーザが、アクセスの延期を選択する場合には、要求されたURLおよびページのコピーが、インターネットサーバ上のデータベースにコピーされる。ユーザは、その後、その日の後の時刻にこのデータベースへのアクセスを許可される。このシステムでは、たとえばスポーツサイトへのアクセスを、昼食時間中または勤務時間後に限ってユーザに提供する能力を使用者に与える。
もう1つの実施の形態では、ユーザが特定のサイトにアクセスする時間の長さまたは回数を追跡する。したがって、ユーザが、特定のサイトで所定の量を超える時間を費やす場合に、そのユーザは、その日の残りについてそのサイトへのアクセスを禁止される。もちろん、タイムスケジュールには、どのようなものであっても、使用者の好む時間の組合せをセットすることができる。さらに、ユーザが特定のカテゴリ内のサイトにアクセスする最大回数も、制御することができる。したがって、ユーザに、どの24時間の期間内であっても、スポーツサイトへの10回だけのアクセスを許可することができる。
また、本明細書で説明するシステムは、特定のカテゴリ内のインターネットサイトへのアクセスを提供する。ただし、選択されたサイトへのアクセスが再検討のために記録されることをユーザに通知した後に限って提供される。したがって、ユーザが、そのサイトにアクセスする正当な理由を有する場合には、そのユーザはブロックされない。しかし、所望のサイトにアクセスする正当な理由を有しないユーザは、サイト要求をキャンセルすることを許され、そのサイトを要求したものとしては記録されない。
カテゴリ化されたインターネットサイトのデータベースの作成
このシステムの実施の形態では、インターネットページを自動的にカテゴリ化して、カテゴリ化されたサイトのデータベースを作成し、更新する方法も提供される。このカテゴリ化されたデータベースは、その後、インターネットアクセス制御システム内で、あるカテゴリ内のインターネットサイトへのユーザのアクセスを制御するのに使用される。たとえば、本明細書に記載のシステムが、特定のインターネットページを「スポーツ」カテゴリに割り当てる場合に、インターネット上のスポーツページを見ることを制限されたユーザは、要求されたサイトへのアクセスを許可されない。一実施の形態では、このシステムが、ユーザからインターネットへのトラフィックを制御するインターネットゲートウェイコンピュータ内にインストールされる。本明細書に記載のシステムは、スコアリングされる各ページに関してより正確になるので、ページをカテゴリに割り当てるのに、最小限のユーザ介入が必要である。
以下詳細に説明するように、このシステムの実施の形態には、特定のカテゴリに強く関連する、インターネットサイトに現れる字句要素の分析によって作成されるトレーニングデータベースが含まれる。これに関して、字句要素とは、分析されるサイトに現れる1つまたは複数の単語である。字句要素の例には、個々の単語、単語対、近接する単語および単語の3つ組が含まれる。したがって、たとえば「スポーツ」カテゴリをトレーニングするために、フットボールチームに関するサイトが、システムに供給される。
第1ステップとして、スポーツなどの各カテゴリが、そのカテゴリに特に関係する単語、単語対、および単語近接を認識するためにトレーニングされる。本明細書で使用される、単語対は、ページのどこかに現れる2つの単語を意味する。対照的に、単語近接は、お互いのとなりに現れる2つの単語である。したがって、単語近接「フットボールチーム」は、スポーツカテゴリに対する強い関連性スコアを与えるはずである。しかし、同一の単語近接が、インターネット商取引カテゴリに対しては低い関連性スコアしか与えないはずである。
トレーニングデータベースを、単語対および単語近接から、その事前定義のカテゴリのそれぞれに関する関連性スコアと共に作成した後に、インターネットに現れる新しいページを、新しいページに現れる単語対/近接の関連性に基づいて分析することができる。たとえば、単語近接「フットボールチーム」を有する新しいインターネットページは、スポーツカテゴリについては高いスコアが与えられるが、インターネット商取引カテゴリに対しては低い関連性しか与えられない。
さらに、特定のカテゴリに含まれることが確認されたページを用いて各カテゴリをトレーニングし続けることによって、システムをますます正確にすることができる。各トレーニングセッションでは、各ページ内の字句要素の関連性スコアが、カテゴリへのより高い関連性を示すために増やされるか、カテゴリへのより低い関連性を示すために減らされる。
自動インターネットサイト取出プログラムを使用することによって、このシステムに係る実施の形態は、新しいインターネットページがワールドワイドウェブに現れた時に、そのページは新しいインターネットページに継続的に更新される、カテゴリ化されたインターネットサイトおよびページのデータベースを提供する。したがって、このシステムの実施の形態は、インターネットページのスコアリングおよびカテゴリ化のための効率的なシステムを提供する。
カテゴリ化プロセスの概要
以下で説明する自動カテゴリ化システムには、コンピュータ命令が含まれ、このコンピュータ命令は、実行される時に、インターネットサイトのソースページを評価し、与えられたURLを複数のカテゴリのうちの1つにカテゴリ化する。このシステムには、下記についてスコアリングする3つの式が含まれる。
1.単一単語関連性 例:カテゴリ2で、「セックス」=4040。
2.単語対関連性 例:カテゴリ2で、「セックス」と「ポルノ」=6005。
3.単語近接関連性 例:カテゴリ2で、「ハードコアセックス」=8050。
さらに、別の実施の形態で、単語対、単語近接、高い度合の組合せ(3つ組、4つ組など)などの複数単語関連に関してスコアリングする式を、実施することができる。
カテゴリ化システムは、まず、与えられたカテゴリのさまざまな面を最もよく表す、代表的な複数のインターネットサイトを収集することによってトレーニングされる。これらのサイトを、トレーニングアルゴリズムにかけ、このトレーニングアルゴリズムが、選択されたカテゴリに対する、インターネットサイト内で見つかった単語、単語対および単語近接への関連性スコアを割り当てる。トレーニング処理の結果が、「カテゴリプロトタイプ」と称するインターネットサイトの合成物である。カテゴリプロトタイプは、単一単語、単語対および単語近接の関連性スコアの集合である。
カテゴリプロトタイプが各カテゴリについて生成された後に、新しいインターネットサイトからの単語、単語対および単語近接が、カテゴリプロトタイプに対してテストされて、新しいページを特定のカテゴリ内にカテゴリ化しなければならないかどうかが判定される。たとえば、単語「セックス」がソースページに現れる場合に、コンピュータは、カテゴリプロトタイプを検査し、カテゴリ2(セックス)内のこの単語の4040という関連性スコアを取り出す。単語対「セックス、ポルノ」がソースページに現れる場合に、コンピュータは、カテゴリプロトタイプを検査し、カテゴリ2(セックス)内の単語対「セックス、ポルノ」の6005という関連性スコアを取り出す。この処理を、取り出されたページのすべての単語対および単語近接について繰り返す。その後、これらのスコアを使用して、取り出されたページのカテゴリレーティングを計算する。
カテゴリレーティングは、あるページを与えられたカテゴリに配置しなければならない確率を評価するのに使用される。たとえば、あるURLが、カテゴリ2内で5000のカテゴリレーティングを有する場合に、そのURLがそのカテゴリ内にあることの、それに関連する確率は、0.99である可能性がある。これは、それぞれが5000のカテゴリ2レーティングを有する100個のサイトがある場合に、これらのサイトのうちの99個が、カテゴリ2に属することを意味する。一般に、カテゴリレーティングが高くなるにつれて、対応するサイトがそのカテゴリに属する確率も高まる。その結果、この特徴を使用して、99%の精度(または他の精度)を維持するカットオフ点を確立することが可能である。
この処理の目的の1つが、各カテゴリ内の2つのカットオフ点すなわち、アルファ点およびベータ点を得ることである。この2つの点によって、サイトのカテゴリ化に関する決定をそれに対して行うことができるベンチマークが作成される。アルファ点は、たとえば99%のソーティング精度を維持するように選択される。既知の通り、ソーティング精度は、単に、コンピュータがサイトを特定のカテゴリに正しくソートする能力である。アルファ点は、次式を使用することによって、どのカテゴリについても計算することができる。
Ap=M7+4(SD7)
ただし、Ap=アルファ点、M7=特定のカテゴリ内で誤ってソートされたサイトの平均カテゴリレーティング、SD7=特定のカテゴリ内で誤ってソートされたサイトのカテゴリレーティングの標準偏差である。これによって、99%のソーティング精度が保証される。というのは、平均スコアから4標準偏差離れた点を計算しており、与えられたカテゴリについてインターネット全体を一般化しなければならないからである。
ベータ点のソーティング精度は、確実にカテゴリの間で変化する。しかし、一般に、75%から85%の範囲の間のソーティング精度を維持することができる。ベータ点は、次式を使用して得ることができる。
Bp=M7+1(SD7)
ここで、Bp=ベータ点、M7=特定のカテゴリ内で誤ってソートされたサイトの平均カテゴリレーティング、SD7=特定のカテゴリ内の誤ってソートされたサイトのカテゴリレーティングの標準偏差である。ベータ点とアルファ点との間に含まれるサイトは、ウェブアナリストまたは技術者が見ることができるように、提案データベースに配置される。各カテゴリに、それ自体の独自のアルファ点およびベータ点が割り当てられることに留意されたい。
以下で述べるように、本システムの実施の形態に、1つまたは複数のモジュールが含まれる。これらのモジュールには、コンピュータシステム内のプロセッサ上で実行されるソフトウェア命令が含まれる。モジュールには、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、電気的消去可能プログラマブル読取専用メモリ(EEPROM)、ハードディスクまたは他のコンピュータストレージデバイスなどのストレージも含めることができる。
図1に、インターネット上の特定のサイトへのアクセスを制御するシステム10の概要を示す。図から分かるように、複数のワークステーション12A〜12Cが、ローカルエリアネットワーク15を介してインターネットゲートウェイシステム20に接続される。ワークステーション12A〜12Cは、マイクロソフトウインドウズオペレーティングシステムの下で動作するインテルペンティアムクラスのパーソナルコンピュータであることが好ましい。もちろん、アップル、IBM、コンパック、デル、ディジタルイクウィップメントコーポレイテッド(DEC)などによって製造されるものまたは他のシステムなどの、すべての従来のパーソナルコンピュータを使用できることを理解されたい。
ローカルエリアネットワーク15は、イーサネット10ベースTトポロジであることが好ましいが、無線ネットワーク、トークンリングネットワークおよび類似物を含む、周知のネットワークプロトコルに基づくものとすることができる。ローカルエリアネットワーク15は、インターネット35上のサイトへのTCP/IP通信をワークステーション12A〜12Cに提供するために、インターネットゲートウェイシステム20と通信する。そのようなゲートウェイは、当技術分野で周知であり、通常は、インターネットのTCP/IPプロトコルをローカルエリアネットワーク15上の通信のための適当なプロトコルに変換するルータまたは他のデータパケットスイッチング技術を介して通信する。
インターネットゲートウェイシステム20内に、インターネット35との間で流れるデータパケットを監視するインターネットファイヤウォールモジュール24がある。ファイヤウォールモジュール24は、ワークステーション12A〜12Cとインターネットとの間のアクセスを制御し、その結果、許可されないユーザが、ローカルエリアネットワーク15上のコンピュータリソースへのアクセスを獲得できないようにする。したがって、インターネットとネットワークサーバ15との間のすべての通信が、まず、ファイヤウォール24を通過する。ファイヤウォール−1(チェックポイントソフトウェア、米国カリフォルニア州レッドウッドシティ)などの多数のファイヤウォールソフトウェアプログラムが利用可能である。しかし、図1に示した実施の形態では、インターネットとワークステーション12A〜12Cとの間のデータパケットのアクセスを制御するのにファイヤウォールに頼っているが、他の類似するアクセス制御システムが使用可能であることを理解されたい。たとえば、マイクロソフトプロキシサーバ(マイクロソフトコーポレイテッド、米国ワシントン州レッドウッドシティ)、ネットスケーププロキシサーバ(ネットスケープコーポレイテッド)およびシスコ(Cisco)のピックスファイアウォールのオープンサーバインプリメンテーション(シスココーポレイテッド)が、現在入手可能であり、ファイヤウォール24の代わりに実施することができる。
インターネットゲートウェイシステム20内で、ファイヤウォール24と通信するのが、カテゴリ化されたサイト管理モジュール26であり、カテゴリ化されたサイト管理モジュール26には、ワークステーション12A〜12Cからのインターネットサイト要求を分析し、これらのインターネットサイト要求をカテゴリ化されたサイト/ページデータベース30と比較する命令が含まれる。要求されたページがデータベース30内で見つかる場合には、そのページに対しては、管理モジュール26内でユーザに与えられるアクセス権に応じて、ブロックまたは許可のいずれかが行われる。図から分かるように、カテゴリ化されたサイト管理モジュール26は、ファイヤウォール24と通信して、インターネット35へのアクセスを許可または制御する。
カテゴリ化システム40もインターネット35に接続されている。カテゴリ化システム40は、下記のように、カテゴリ化されたサイトデータベース30を作成するために、ウェブサイトおよびページをカテゴリ化する。インターネット上のサイトが、カテゴリ化システム40によってカテゴリ化された後に、データベース更新システム42が、その後、更新されたデータベースをカテゴリ化システム40からインターネットゲートウェイシステム20に日常的にコピーする。想像できるように、このシステムに、数百台のゲートウェイシステムを含めることができ、そのゲートウェイシステムのそれぞれが、データベース更新システム42によって定期的に更新されて、ブロックされるインターネットサイトの更新されたデータベースが提供される。さらに、データベース更新システム42は、ゲートウェイシステム20にデータベースの一部だけを転送でき、その結果、データベース全体を送信する必要がなくなることが好ましい。
延期管理システム44もインターネット35と通信するが、この延期管理システム44は、後に図4に関して説明するように、ユーザによる延期されたアクセスのために保存されたインターネットサイトを管理する。次に説明するように、このシステムは、後で再検討するために所望のインターネットサイトを保存する能力をユーザに提供する。
図1には、インターネットへのワークステーションコンピュータの制御されたアクセスを提供するシステム全体の一実施の形態が示されている。インターネットアドレス(たとえばページまたはサイト)に関するワークステーションからの要求のそれぞれが、まず、インターネットアドレスのカテゴリ化されたデータベースと比較される。要求されたアドレスが、カテゴリ化されたデータベース内で見つかる場合には、管理モジュールが、ユーザ許可テーブルにアクセスして、要求元のユーザが要求されたページに関連するカテゴリ内のサイトを見る権利を有するかどうかを判定する。ユーザがカテゴリ内のページを見るアクセス権を有する場合には、ページ要求がインターネットに送信される。しかし、ユーザがアクセス権を有しない場合には、そのユーザは、要求したページをインターネットから受信することをブロックされる。
図2は、カテゴリ化システム40(図1)を詳細に示すブロック図である。図に示されているように、インターネットページ100Aおよび100Bとインターネットサイト100Cが、サイト/ページ取出モジュール110によって検索され取り出される。サイト/ページ取出モジュール110内には、インターネットからインターネットページおよびサイトを検索し、取り出す命令がある。そのようなサイトを取り出す1つの例示的な方法を、後に図7により説明する。
インターネットサイトまたはページは、取出モジュール110によって検索され取り出された後に、どのカテゴリ(1つまたは複数)が取り出されたサイトに最も強く関連するかを判定するために、分析モジュール120に転送される。1つまたは複数のカテゴリへの関連性についてインターネットページを分析するプロセスを、後に図5により詳細に説明する。
図から分かるように、分析モジュール120は、カテゴリ化されたデータベースのコピー30’およびトレーニングデータベース125にリンクされる。分析モジュール120は、ページ内の単語対および単語近接を分析することによって、所定のカテゴリのそれぞれに対する、取り出されたインターネットページの関連性を計算する。この分析を提供するために、以下で説明するトレーニングデータベース125には、ページで見つかる可能性がある単語対および単語近接のそれぞれのカテゴリ関連性スコアが含まれる。したがって、検索されたページ内の単語対および単語近接を、トレーニングデータベース内の単語対および単語近接のスコアと比較することによって、各カテゴリ内のページの総関連性スコアを決定することができる。ページ関連性スコアが各カテゴリ内でページについて計算された後に、各カテゴリの関連性スコアが、検索されたスコアのカテゴリへの割当を保証するのに十分に高いかどうかを判定する。
次に述べるように、取り出されたページを特定のカテゴリに割り当てるかどうかの判定は、特定のカテゴリに関するページの関連性スコアと、所定のアルファ値とを比較することによって行われる。ページ関連性スコアが、カテゴリのアルファ値より高い場合には、そのページが、そのカテゴリに割り当てられる。スコアがアルファ値より低いが、ベータ値より大きい場合には、そのページが手動スコアリングシステムに転送され、この手動スコアリングシステムで、技術者が取り出されたページを見て、そのページをカテゴリに含めるか否かを判定する。カテゴリに関するページの関連性がベータ値より低い場合には、ページアドレスが、分析されたサイトのデータベースに保存され、システムは、追加のアドレスのスコアリングを継続する。
トレーニングデータベース125内のデータは、図示のように、トレーニングデータ130をトレーニングモジュール135に供給することによって作成される。トレーニングデータ130には、トレーニングされる各カテゴリに強く関連するインターネットページが含まれる。たとえば、スポーツカテゴリをトレーニングするために、トレーニングデータに、スポーツフランチャイズまたは他のスポーツウェブサイトのインターネットアドレスを含めることができる。その後、トレーニングモジュール135が、与えられたスポーツサイト内の各ページの単語対および単語近接を構文解析する。以下で説明するように、独自の単語対および単語近接のすべてに、トレーニングデータベース内のスポーツカテゴリで高い関連性スコアが割り当てられる。したがって、新しいページに現れる類似する単語および単語対には、スポーツカテゴリへの高い関連性スコアが与えられる。
図3には、トレーニングデータベース125の一実施の形態が示されている。トレーニングデータベース125内には、単語のリストおよび各単語の対応するID番号を含む単語識別テーブル200がある。このテーブルを用いると、データベース内で参照されるすべての単語対または単語近接を、2つの単語ではなく2つの数によって表現できるようになる。一般に、ID番号の文字数は、単語自体の文字数より少ないので、単語自体の代わりに各単語の数値表現を保存するために、トレーニングデータベース内で要求されるデータストレージスペースは、はるかに少なくなる。さらに、これらの一般的な単語を表すのに、1バイトのデータが用いられるだけであるので、「ザ(the)」および「アンド(and)」などの周知の単語は、1桁の数によって表すことができる。しかし、次に述べるように、そのような一般的な単語は、通常は、インターネットページをスコアリングする前に破棄され、その結果、各ページの字句要素が、すべての他のインターネットページからより簡単に区別されるようになる。これによって、より有利なページスコアリングシステムがもたらされる。
単語識別テーブル200の他に、システム内のカテゴリのそれぞれにカテゴリID番号を与えるカテゴリ識別テーブル205がある。カテゴリ識別テーブル205には、特定のページを選択されたカテゴリに割り当てるためのカットオフ値を提供するアルファスコアおよびベータスコアも含まれる。たとえば、図3に示されているように、スポーツカテゴリに、920のアルファスコアおよび810のベータスコアが含まれる。あるインターネットページが、スポーツカテゴリについて920を超えるページ関連性スコアを有することがわかった場合に、そのページが、スポーツカテゴリに割り当てられる。しかし、そのインターネットページが、810と920との間のページ関連性スコアを有することがわかった場合には、そのページには、スポーツカテゴリに属するか否かを判定するための技術者による手動フォローアップのフラグが立てられる。インターネットページが、スポーツカテゴリについて810未満のページ関連性スコアを有することがわかった場合には、そのページには、スポーツカテゴリに関連するものとしてのフラグが立てられない。これらの値を使用することによって、システムが、特定のページを所定のカテゴリに割り当てるか否かを判断する。
トレーニングデータベース125内には、システム内の特定のカテゴリに関する単語対および単語近接の関連性スコアを提供する単語関連性テーブル210もある。たとえば、単語「クリーブランド」(ID番号234)および単語「ブラウンズ」(ID番号198)が、カテゴリ1(スポーツ)に対する900の単語近接関連性スコアと共に示されている。この例では、最大関連性スコアが1000なので、単語近接「クリーブランドブラウンズ」は、スポーツカテゴリに非常に強く関連する。したがって、互いに近接する単語「クリーブランドブラウンズ」を有するインターネットページは、これらの単語のスポーツへの強い関連性に起因して、スポーツカテゴリ内で総ページスコアが増やされる。
単語「ダイヤモンド」(ID番号755)および「ジュエリー」(ID番号1345)は、スポーツカテゴリ内では290の関連性スコアを有するのみであることに留意されたい。しかし、単語対「ダイヤモンド」および「ジュエリー」は、カテゴリ3(ショッピング)では940の関連性スコアと共に図示されている。したがって、図から分かるように、これらの単語の両方を有するページは、ショッピングカテゴリとの関連がより強く、スポーツカテゴリとの関連はより弱い。
図4を参照して、カテゴリ化されたサイト管理モジュール26と延期管理システム44の間の対話を、より完全に説明する。図に示されているように、カテゴリ化されたサイト管理モジュール26には、延期モジュール250が含まれ、延期モジュール250には、インターネット上の特定のサイトへのアクセスを延期する能力をシステムに与える命令が含まれる。延期モジュール250内で動作するプロセスを、後に図9および10により説明する。
カテゴリ化されたサイト管理モジュール26には、クォータモジュール254もある。クォータモジュール254には、ユーザがインターネット上のサイトへのアクセスに関する特定のクォータを超過したかどうかを判定する命令およびコマンドが含まれる。ユーザがタイマクォータを超過したかどうかを判定するプロセスは、図11に示されている。このプロセスは、クォータモジュール254内のタイマモジュール256内で動作する。さらに、クォータモジュール254には、特定のユーザがあるインターネットサイトにアクセスした回数、またはユーザが特定のインターネットサイトを再検討して費やした時間を記録する、データストレージ258が含まれる。
管理モジュール26には、ユーザ許可モジュール260も含まれ、ユーザ許可モジュール260は、特定のユーザが、特定のサイトへのアクセスを制限されているか、延期モジュール250またはクォータモジュール254の要件の対象であるかどうかを判定するためのデータストレージ、コマンドおよび命令が含まれる。
管理モジュール26と通信するのが、延期管理システム44である。このシステムは、インターネット35に接続されたサーバ内で普通に実行されている。延期管理システム44には、特定のユーザによって要求されたインターネットサイトへの延期されたアクセスを提供する命令およびコマンドが含まれる。
延期管理システム44内には、クッキー分析モジュール270があり、クッキー分析モジュール270は、現在システムにアクセスしているユーザの識別を判定する命令を提供する。既知のように、「クッキー」は、特定のユーザ識別番号を含めることができる、ユーザのコンピュータ上に保存されるデータストリングである。この一意のユーザ識別番号によって、延期管理システム44が、現在システムにアクセスしているユーザの識別を知ることができる。
クッキー分析モジュール270と通信するのが、新しいユーザを延期管理システム内で登録できるようにするために設けられた登録モジュール272である。したがって、クッキーがユーザのコンピュータ上で見つからない場合には、ユーザは、延期管理システム44へのアクセスを登録するために、登録モジュール272に案内される。
延期管理システム44は、システム44内の延期されたサイトへのユーザアクセスを監督する管理モジュール276も備える。したがって、ユーザが、保存されたサイトへのアクセスを試みる時に、管理モジュール276が、適当な保存されたサイトを判定し、ユーザをその保存されたページに案内する。図から分かるように、管理モジュール276は、ユーザによって試みられた前の表示から延期された実際のページを保持するストレージ280と通信する。この延期されたページを保存し、見るプロセスを、後に図9および10を基により完全に説明する。
図5は、インターネットページまたはサイトへのアクセスの要求の全体的なプロセス300を示すフローチャートである。プロセス300は、開始ステップ302で開始され、その後、ステップ306に進み、ここで、ワークステーション12A〜12C上のインターネットブラウザが、インターネット上のアドレスを要求する。周知のブラウザに、マイクロソフトエクスプローラーおよびネットスケープナビゲータが含まれる。このブラウザ要求は、ユーザが自分のブラウザソフトウェアに所望のURLを入力した後に、普通に行われる。
その後、ユーザの要求が、ローカルエリアネットワーク15を介してインターネットゲートウェイシステム20に送られる。プロセス300は、その後、ステップ308に進み、ここで、要求されたインターネットアドレスが、カテゴリ化されたデータベース30と突き合わされる。アドレスを、インターネットサイト内の単一のページまたはサイトのデフォルトアドレス(たとえばwww.company.com)とすることができることに留意されたい。
その後、判断ステップ310で、カテゴリ化されたデータベースに保存されたアドレスのいずれかとアドレスが一致したかどうかの判定を行う。カテゴリ化されたデータベース30内で一致するアドレスが見つからなかった場合には、ステップ312で、要求されたページをインターネットから取り出し、終了ステップ314でこのプロセスを終了する。
しかし、要求されたアドレスとカテゴリ化されたデータベースの間で一致するアドレスが見つかった場合には、プロセス300は、判断ステップ315に進み、ここで、現在のユーザがインターネットページの特定のカテゴリへの制限されたアクセス権を有するかどうかを判定する。この判定は、ネットワークユーザのリストと、カテゴリ化されたデータベース内で見つかったカテゴリのそれぞれの関連する許可テーブルとを参照することによって行うことができる。したがって、1特定のユーザが、スポーツカテゴリおよびポルノグラフィカテゴリのすべてへのアクセスを制限され、インターネット商取引カテゴリまたはトラベルカテゴリへのアクセスを制限されない場合がある。インターネットカテゴリの例示的なリストを、下の表1−1及び1−2に示す。
判断ステップ315で、ユーザが制限されたカテゴリを有すると判定された後に、プロセス300は、ステップ316に進んで、この特定のユーザに関してどのカテゴリがブロックされているかを判定する。この判定は、ユーザに関連する許可リストを参照することによって行われる。
プロセス300は、その後、判断ステップ320に進んで、要求されたページが、この特定のユーザに関して制限されたカテゴリのいずれかに含まれるかどうかを判定する。この判定は、まずカテゴリ化されたデータベースから要求されたアドレスのカテゴリを判定し、その後、その結果とユーザに対して制限されたカテゴリとを比較することによって行われる。要求されたページがユーザに対して制限されたカテゴリに含まれないと判定された場合には、ステップ324で改訂されたページを取り出し、終了ステップ314でこのプロセスを終了する。
判断ステップ320で、要求されたページがユーザに対して制限されたカテゴリの1つに含まれると判定された場合には、プロセス300は、ステップ340に進み、ここで、ページへのアクセスをブロックする。このブロックは、ユーザからインターネットへのパケット要求を破棄するか、要求されたページへのインターネットブラウザによって要求された接続を単純にクローズすることによって、行うことができる。プロセス300は、適当なページに戻って、要求が拒否されたことをユーザに通知する。その後、プロセス300は、終了ステップ314で終了する。
したがって、図5は、要求されたページがカテゴリ化されたデータベース30内に現れるかどうかに基づいて、特定のインターネットアドレスへのアクセスを要求し、ブロックする1つのプロセスの概要を提供する。図5は、インターネットページ内の単語対および単語近接の内容を分析することによって、カテゴリ化されたデータベース30を作成する方法を提供する。
図6は、システムに用いられるデータベースの作成方法、特に、特定のカテゴリへの関連性を判定するためにページの単語内容を分析するプロセス328を示すフローチャートである。プロセス328は、開始ステップ400で開始され、その後、ステップ402に進み、ここで、インターネットページの第1単語を検索し取り出す。本明細書で使用される用語「単語近接」には、互いに直接に隣接する単語が含まれる。用語「単語対」には、同一のインターネットページに配置された2つの単語が含まれる。
ページからの第1単語をステップ402で検索し取り出した後に、プロセス328は、ステップ404に進み、ここで、ページ内の第1単語を含むすべての単語対の関連性を、定義されたカテゴリのそれぞれについて判定する。したがって、ページ内の第1単語と第3単語を判定し、その単語対を、トレーニングデータベース内の単語関連性テーブル210と比較して、リストされたカテゴリのそれぞれでの関連性スコアを判定する。この関連性スコアは、各単語対とそれに関連するすべてのカテゴリに対する関連性をリストした単語関連性テーブル210(図3)を参照することによって判定される。一実施の形態では、特定のカテゴリ内の単語対の関連性スコアが、0から1000まで変化し、1000が、カテゴリに完全に関連する単語対である。もちろん、カテゴリに対する特定の単語対の関連性を反映する、さまざまなスコアリングシステムを開発することができる。また、単語対の2つの単語の間の最大距離を設定することができることを理解されたい。たとえば、システムが、10、20、30、40、またはそれ以上の単語数だけ離れた単語対だけを分析し、その後、そのページの次の単語の分析の開始に移動することができる。
判定された単語対関連性スコアは、後の操作のためにメモリに格納される。その後、第1単語を、そのページの第4単語と対にして、新しい単語対の各カテゴリに対する関連性を判定する。この処理を、第1単語を含む、そのページ内の可能なすべての2単語対について繰り返す。
プロセス328は、その後、ステップ405に進み、ここで、第1単語と第2単語の単語近接の関連性を、これらの単語をトレーニングデータベース内の単語関連性テーブル210と突き合わせて、各カテゴリとの関連性を判定することによって、計算する。
取り出された単語近接の関連性スコアを、すべてのカテゴリについて判定した後に、プロセス328は、ステップ408に進み、ここで、単語対のそれぞれについてステップ404で判定された関連性スコアを、カテゴリごとの総ページスコアに加算する。
したがって、単語対「クリーブランド」および「ブラウンズ」が、スポーツカテゴリの単語関連性テーブルから900の関連性スコアを返す場合に、数値900が、カテゴリ1(スポーツ)の総ページスコアに加算される。したがって、あるカテゴリでより高い関連性スコアを有する単語対が、そのページの現在のカテゴリでのより高い総合ページ関連性スコアをもたらす。同様に、特定のカテゴリでより低い関連性スコアを有する単語対は、そのカテゴリに対する総合ページ関連性スコアを下げる。
ページの単語対関連性スコアが、総ページ関連性スコアに加算された後に、プロセス328は、ステップ409に進み、ここで、各カテゴリについてステップ405で判定された単語近接関連性を、現在のインターネットページのページ関連性カテゴリスコアに加算する。
各カテゴリのページスコアを計算したので、判断ステップ416で、ページに分析すべき単語がまだあるかどうかを判定する。取り出されたインターネットページに分析に使用可能な単語がもうないと判定された場合に、プロセス328は、ステップ420に進み、ここで、より多くの単語を有するページがより高いスコアを有するという事実を考慮に入れるために、各カテゴリの総ページ関連性スコアを正規化する。たとえば、ページスコアが、単語対および単語近接の関連性を加算することによって決定されるので、500単語を有するページは、100単語を有するページよりかなり高い、各カテゴリのスコアを有する。したがって、たとえば、各カテゴリのページ関連性スコアを、そのページの単語の総数で割ることによって、ページスコアを正規化し、その結果、異なる長さのページが、各カテゴリでほぼ同一のページスコアを有するようにする。単語対および単語近接のそれぞれについてより高い平均関連性スコアを有するカテゴリが、低い関連性スコアを有する単語対を有するカテゴリより高いページスコアを有することに留意されたい。
正規化されたページスコアが、検索されたページについて各カテゴリで判定された後に、プロセス328は、判断ステップ422に進んで、あるカテゴリのページ関連性スコアが、そのカテゴリのアルファ関連性スコアより大きいかどうかを判定する。この判定は、トレーニングデータベース125内のカテゴリIDテーブル205を参照することによって行われる。ページ関連性スコアが、アルファスコア以下の場合には、プロセス328は、判断ステップ424に進んで、ページ関連性スコアがそのカテゴリのベータスコアより大きいかどうかを判定する。ページ関連性スコアがベータスコア以下と判定された場合には、プロセス328は、ステップ426に進み、ここで、取り出されたサイトをテーブルに格納し、分析済みだがどのカテゴリにも含まれないものとしてフラグを立てる。プロセス328は、その後、終了ステップ430で終了する。
判断ステップ422で、ページ関連性スコアがカテゴリのアルファスコアより大きいと判定された場合には、プロセス328は、ステップ432に進み、ここで、取り出されたアドレスを、カテゴリ化されたデータベース30に追加する。カテゴリ化されたデータベース30には、ブロックされるインターネットアドレスのアドレスだけではなく、データベース内でカテゴリ化されているサイトであっても、そのインターネットサイトに関連するカテゴリも含まれる。その結果、特定の許可を有するユーザにサイトへのアクセスを提供しなければならないかどうかの判定を行えるようになることに留意されたい。
別の実施の形態では、ページスコアがカテゴリのアルファスコアより大きいと判定された場合に、システムが、インターネット上の現在のページにアクセスする命令を実行することができる。この命令は、その後、メインドメインアドレス(たとえばwww.company.com)に向かって移動している間に、そのサイトの階層的ページのスコアリングを開始する。サイトのより上位のノードのいずれかが、やはり同一のカテゴリのアルファスコアより大きいと判定された場合に、このサイトも、データベースに追加される。これによって、個々のページをレーティングするだけではなく、インターネットサイトの特定のノードの下に現れる複数のページもレーティングする機構が、システムに与えられる。
一実施の形態では、あるページで検討される単語の数が、所定の数に制限される。たとえば、ページの最初の100、250、500または1000個の単語だけを検討するようにシステムを制限することができる。所定の数の後の単語は、すべて検討されない。
判断ステップ424で、ページ関連性スコアがベータスコアより大きいが、アルファスコア以下と判定された場合には、プロセス328は、ステップ434に進み、ここで、このアドレスに、技術者によるさらなる分析のためのフラグを立てる。このプロセスは、その後、終了ステップ430で終了する。
判断ステップ416で、取り出されたページに分析すべき単語がまだ残っていると判定された場合には、プロセス328は、ステップ436に進み、ここで、ページの次の単語を各単語対および単語近接の第1単語として選択する。この形で、システムが、ページ内の各単語を他のすべての単語と共に分析することによって、ページを「ウォーク」する。これによって、ページ内のすべての可能な単語対および単語近接の完全な分析が行われる。
図6に示されたプロセス328により、新たに取り出されたインターネットページが、スコアリングされ、システム内の1つまたは複数のカテゴリと関連付けられる。あるカテゴリ内でそのカテゴリのアルファスコアより大きい関連性スコアを有することがわかったページのそれぞれが、それに関連付けられるカテゴリについて、カテゴリ化されたデータベース30に追加される。さらに、より厳しさの低いベータスコアより高い関連性スコアを有することがわかったすべてのページに対して、技術者による分析のためのフラグが立てられ、その結果、そのページを、必要であればカテゴリ化されたデータベースに手動で追加できるようになる。この機構により、新しいインターネットページが、定期的にシステムに追加される。
図7は、トレーニングデータベース125内で単語関連性テーブル210を作成するプロセス500を示すフローチャートである。プロセス500は、開始ステップ502で開始され、その後、ステップ504に進み、ここで、最初にトレーニングするカテゴリを選択する。カテゴリは、たとえば、スポーツカテゴリとすることができる。プロセス500は、その後、ステップ508に進み、ここで、選択されたカテゴリ(たとえばスポーツ)内にあることが事前に判定されているウェブページを取り出す。したがって、これらのページは、ステップ504で選択されたカテゴリ内にあることが既知なので、選択されたページ内の各単語対および単語近接の関連性を、現在のカテゴリへの高い関連性に割り当てることができる。
選択されたカテゴリ内のウェブページを取り出した後に、プロセス500は、ステップ510に進み、ここで、現在選択されているページに関してターゲットページスコアを判定する。通常、特定のカテゴリに強く関連するページには、たとえば1000のスコアが与えられる。しかし、単語をカテゴリに関係付けるのに使用される類似するタイプのスコアリングスケールのどのようなタイプでも同様に実施できることを理解されたい。ステップ510でターゲットページスコアを判定した後に、プロセス500は、ステップ516に進み、ここで、取り出されたページの第1ページを分析のために選択する。
その後、ステップ520で、選択されたページの単語数をカウントし、その後、プロセスはステップ526に進み、ここで、特有の単語対の数が、ターゲットページスコア(1000)で割られて、その結果、単語対が再スコアリングされる場合に、総ページ関連性スコアが1000になるようにする。同様に、ターゲットページスコア(1000)は、一意の単語近接の数で割られて、合計された場合に1000のページ関連性スコア(トレーニングされたカテゴリに対する極端に高い関連性)をもたらす単語近接スコアとなる。処理時間を最小にし、スコアリング処理の精度を高めるために、「ア(a)」、「ザ(the)」、「アンド(and)」などの一般的な単語が無視されることに留意されたい。さらに、コンピュータ言語命令およびハイパーテキストヘッダも、ページのスコアリングの精度を高めるために無視される。
その後、プロセスはステップ530に進み、ここで、各単語対および単語近接の現在のスコア(1000)を、単語関連性テーブルに既に格納されている同一の単語対および単語近接を用いて平均化する。したがって、スポーツカテゴリのトレーニングを行っており、単語近接「クリーブランドブラウンズ」が現在のページ内で見つかった場合に、スポーツカテゴリ内で105の単語近接値を割り当てることができる。しかし、用語「クリーブランドブラウンズ」が、スポーツカテゴリ内で既に89の値でスコアリングされている場合には、105の値と85の値の平均をとって、スポーツカテゴリに対する単語近接スコアを正規化する。したがって、このシステムを用いると、あるカテゴリで何度も使用される単語を、「アップトレーニング」することができる。その結果、スコアリングされるより多くのページに関連性スコアが現れるので、選択されたカテゴリに関するその関連性スコアが高くなる。さらに、このシステムは、複数のサイトを同時に並列処理することができることを理解されたい。
その後、プロセス500は、ステップ534に進み、ここで、トレーニング中のカテゴリのアルファスコアおよびベータスコアを決定する。アルファスコアは、それを超える時に、選択されたページが明らかにカテゴリ内にあることを示す数値スコアである。ベータスコアは、それを超える時に、選択されたページがカテゴリ内にある可能性があることを示す数値スコアである。上で述べたように、アルファスコアは、通常は、そのスコアを有するページの99%が選択されたカテゴリに含まれるように選択される。ベータスコアは、通常は、そのスコアを有するページの75%から85%が選択されたカテゴリに含まれるように選択される。これらのスコアは、カテゴリ内でトレーニングされたページの平均スコアを分析して、新しいページのカットオフ値を判定することによって決定される。
その後、ステップ536で、単語関連性スコアを、トレーニングデータベース125内の単語関連性テーブル210に格納する。その後、判断ステップ540で、トレーニングを必要とするページがまだあるかどうかを判定する。ページがもうない場合には、プロセス500は、終了ステップ544で終了する。ページがまだあると判定された場合には、プロセス500は、ステップ550に進み、ここで、次に分析されるページを選択する。その後、ステップ520でページの単語数をカウントし、上記のように処理を継続する。
上記のプロセス500により、あるインターネットページで見つかる可能性がある単語対および単語近接のすべてに関する正規化された単語関連性を含む単語関連性テーブルが確立される。新しいページを分析し、ページ内の各単語の関連性を一緒に加算することによって、特定のページのページ関連性スコアをシステム内の所定のカテゴリのそれぞれに割り当てる自動システムが提供される。したがって、多数のページを分析することによって特定のカテゴリがトレーニングされた後に、このシステムは、所定のカテゴリのそれぞれに対する関連性に関して、新しいページを素早く分析することができる。すでに図2により説明したように、ページ取出モジュール110が、新しいインターネットページを取り出し、それらをスコアリングのために分析モジュール120に送るのに使用される。
図8は、インターネットからページを取り出すプロセス600を示すフローチャートである。プロセス600は、開始ステップ602で開始され、その後、ステップ606に進み、ここで、最初にカテゴリ化するサイトのアドレスを、カテゴリ化されたウェブデータベース30からのアドレスのランダムアクセスによって決定する。最初にカテゴリ化するサイトのアドレスをステップ606で決定した後に、プロセス600は、ステップ610に進み、ここで、インターネットサイトの最初のページを読み取る。このプロセスは、その後、ステップ612に進み、ここで、読み取られたページを分析モジュール120に転送し、その結果、ページの単語対および単語近接が、所定のカテゴリに対する関連性について分析されるようにする。
その後、プロセス600は、現在のサイトに分析すべきページがまだあるかどうかを判定するために、判断ステップ616に進む。現在のサイトにもうページがない場合には、プロセス600は、判断ステップ620に進んで、インターネットのサイトが現在分析されているサイトを参照しているかどうかを判定する。現在のサイトによって参照されているサイトがもうない場合には、プロセス600は、終了ステップ624で終了する。
判断ステップ616で、分析すべきページがまだある場合には、プロセス600は、ステップ630に進み、ここで、現在のサイトの次のページを読み取る。プロセスは、その後、ステップ612へ戻り、ここで、新しいページを分析モジュール120に送る。
判断ステップ620で、現在のサイトを参照するサイトがあると判定された場合には、プロセス600は、ステップ632に進み、ここで、システムが、最初の参照されるサイトのアドレスをポイントする。その後、プロセス600は、新たに取り出されたインターネットサイトの最初のページを読み取るためにステップ610に戻る。
図9は、延期されたインターネットサイトをストレージ280に保存するプロセス700を示すフローチャートである。プロセス700は、開始ステップ702で開始され、その後、ステップ704に進み、ここで、特定のサイトへのアクセスを延期するユーザから、延期モジュール250によって、要求を受け取る。この要求は、ユーザが、日中にブロックされるものとして指定されたカテゴリ内のサイトにアクセスする時に、普通に行われることに留意されたい。しかし、そのサイトに、たとえばログインプロシージャを介して夜にアクセスすることができる。
したがって、ユーザが日中にアクセスを試みる時には、延期モジュール250が、要求をサイトのカテゴリ化されたデータベースと比較して、そのサイトが、たとえば昼間の時間中にブロックされるものとして指定されたカテゴリに含まれるかどうかを判定する。サイトがそのようなカテゴリに含まれることがわかった場合には、システムが、そのサイトへのアクセスを延期することを望むかどうかという質問を、要求しているユーザに送る。ユーザが、サイトアクセスを延期されることを要求する場合には、プロセス700は、ステップ708に進み、ここで、クッキー分析モジュール270が、ユーザのシステム上のクッキーを検索する。もちろん、ユーザがサイトへのアクセスを止められる特定の時間を、必要に応じてプログラムできることを理解されたい。たとえば、ユーザによるあるカテゴリのインターネットサイトへのアクセスを、午前8時から正午まで止め、正午以降はフルアクセスを許可することができる。
その後、プロセス700は、判断ステップ710に進んで、ユーザ特有の識別番号を持つクッキーが、ユーザのコンピュータで見つかるかどうかを判定する。クッキーが見つかった場合には、プロセス700は、ステップ712に進み、ここで、ユーザの識別番号をクッキーから読み取る。プロセス700は、その後、ステップ716に進み、ここで、ユーザ識別番号および延期されたサイトのアドレスをストレージ280に保存する。
判断ステップ710で、クッキーがユーザのシステムで見つからないと判定された場合には、プロセス700は、ステップ722に進み、ここで、ユーザ登録情報をユーザに要求する。その後、ステップ726で特有のユーザ識別番号が生成され、プロセス700は、その後、ユーザ識別番号と延期されたサイトのアドレスをストレージ280に保存する。プロセスは、その後、終了ステップ720で終了する。
ストレージが、要求されたサイトからの実際のページをストレージ280に保存することが好ましいことを理解されたい。したがって、ユーザには、延期管理システム44に入った後に、要求されたサイトのコピーへのアクセスが提供される。そのサイトは、管理システム44に保存されるので、ユーザによるアクセスを、システム44内のアクセス設定により制御することができる。したがって、ユーザは、システム10によってまだブロックされる可能性がある、インターネットのオリジナルのサイトへのアクセスを試みる必要がない。
図10は、延期されたサイトを見るプロセス800を示すフローチャートである。このプロセス800は、開始ステップ802で開始され、その後、ステップ804に進み、ここで、ユーザが、延期管理システム44にアクセスする。その後、プロセス800は、ステップ808に進み、ここで、ユーザのシステムに保存されているクッキーからユーザの識別番号を読み取る試みが行われる。判断ステップ810で、ユーザのシステムでクッキーが見つかったかどうかを判定する。判断ステップ810で適当なクッキーが見つかった場合には、ユーザに、ストレージ280内に保存されているサイトのデータベースへのアクセスが与えられる。上述のように、保存されたサイトは、ストレージ280内に格納されている。
判断ステップ816で、要求されたユーザ識別番号に関して適当なサイトが見つかったかどうかを判定する。サイトがストレージ280内で見つかった場合には、プロセス800は、ステップ820に進み、ここで、そのユーザ識別番号に関して保存されたサイトのリストを作成する。その後、プロセス800は、終了ステップ824で終了する。
判断ステップ810で、ユーザのシステムでクッキーが見つからないと判定された場合には、プロセス800は、ステップ828に進み、ユーザに、延期されたサイトにアクセスするためのユーザ識別番号およびパスワードを入力するように促す。
判断ステップ816で、ストレージ280内でユーザに関するサイトが見つからないと判定された場合には、ステップ830でエラー処理ルーチンを実行し、プロセスはステップ804に戻る。
図11は、タイマクォータプロセス850を示すフローチャートである。タイマクォータプロセス850は、開始ステップ852で開始され、その後、ステップ854に進み、ここで、インターネットページまたはサイトに関する要求を受け取る。ステップ858で、カテゴリ化されたデータベース30を参照することによって、ページまたはサイトのカテゴリを判定する。プロセス850は、その後、ステップ860に進み、ここで、サイトの選択されたカテゴリのタイマクォータパラメータを検索し取り出す。たとえば、ユーザがスポーツカテゴリ内で、たとえば30分だけ費やすことができることを示すクォータパラメータが、ステップ860で取り出される可能性がある。
プロセス850は、その後、ステップ862に進み、ここで、ユーザがこのカテゴリ内のページまたはサイトを見て費やした時間の総量を、ストレージ258から取り出す。その後、判断ステップ864で、このユーザのタイムクォータが、ステップ860で取り出されたクォータパラメータを超えたかどうかを判定する。
タイムクォータが超えていないと判定された場合には、ステップ866で、要求されたページまたはサイトが取り出され、ステップ868でタイマが開始される。判断ステップ870で、ユーザが、要求されたサイトのアクセスを継続しているかどうかを判定する。ユーザが要求されたサイトのアクセスを継続していると判定された場合には、プロセス850は、判断ステップ864に戻って、タイムクォータを満たしたかどうかを判定する。
ユーザがもはや要求されたサイトにアクセスしていないと判定された場合には、プロセス850は、ステップ874に進む。タイマが終了される時に、プロセス850は、インターネットサイトで費やされた経過時間を、そのカテゴリのユーザの総時間に加算する。
判断ステップ864で、タイマクォータを満たしたと判定された場合には、ステップ884でその事実に関する通知をユーザに送り、プロセスは終了ステップ880で終了する。タイムクォータを満たした場合に、プロセス850が、要求されたページまたはサイトを取り出すステップ866をスキップすることに留意されたい。したがって、タイムクォータを満たした後に、ユーザは、要求されたサイトへのアクセスを禁止される。これによって、限られた時間の期間についてのみサイトにアクセスできるように、ユーザを制限する機構が提供される。
各カテゴリが、それ自体の限界を備え、その結果、あるカテゴリで時間を費やすことが、異なるカテゴリでのユーザの総クォータ時間に影響しないことに留意されたい。したがって、会社の経営者が、たとえば、スポーツカテゴリ内のサイトについて15分のクォータ、インターネット商取引カテゴリ内のサイトについて1日1時間の時間制限をセットすることができる。
図12は、ユーザが要求したサイトがブロックされるカテゴリに含まれることをユーザに通知するとともに、サイトへのアクセスを継続することを許可するプロセス900を示すフローチャートである。このプロセス900は、開始ステップ902で開始され、ステップ904に進み、ここで、サイト管理モジュール26が、インターネットサイトにアクセスする要求を受け取る。判断ステップ908で、要求されたサイトがカテゴリ化されたデータベース30内にあるかどうかを判定する。サイトがカテゴリ化されたデータベース30内にあると判定された場合には、プロセス900は、ステップ910に進み、この時に警告ページがユーザに送られる。この警告ページ内には、要求されたサイトが会社の経営者によってブロックされたことと、さらなるアクセスが記録され、ユーザの管理者に転送されるということの声明がある。
その後、プロセス900は、判断ステップ912に進み、ユーザが自分のアクセスが管理者によって追跡されるということを認識したにもかかわらず、それでもユーザがそのサイトへのアクセスを要求するかどうかを判定する。ユーザがそれでもアクセスを要求していると判定された場合には、プロセス900は、ステップ914に進み、ここで、ユーザのサイト要求、ユーザ名、日付および時刻をファイルに記録する。その後、要求されたサイトまたはページが、ステップ918でインターネットから取り出され、プロセス900は、終了ステップ920で終了する。
判断ステップ908で、サイトがカテゴリ化されたデータベース30内にないと判定された場合には、プロセス900は、直接にステップ918にスキップし、ここで、要求されたサイトまたはページをユーザのために取り出す。
判断ステップ912で、ユーザが、ステップ910で警告ページを受け取った後に、ブロックされたサイトへのアクセスを要求しないと判定された場合には、プロセス900は、要求されたサイトを取り出さずに、終了ステップ920で終了する。
図13は、クォータモジュール254内で動作する数値クォータプロセス950を示すフローチャートである。このプロセスは、ユーザがインターネット上の特定のサイトにアクセスした回数を追跡するのに使用される。したがって、プロセス950は、ステップ952で開始され、ステップ954に進み、ここで、特定のインターネットページの要求を、ユーザから受け取る。その後、プロセス950は、ステップ958に進み、ここで、要求されたサイトのカテゴリを、カテゴリ化されたデータベース30を参照することによって判定する。
その後、プロセス950は、要求されたサイトのカテゴリに関連するクォータパラメータを、クォータモジュール254から取り出す。したがって、ユーザが、スポーツカテゴリに含まれると判定されたサイトへのアクセスを要求する場合に、ステップ960で、スポーツカテゴリに関するクォータパラメータが取り出される。たとえば、クォータパラメータは、ユーザが、24時間の期間内で選択されたカテゴリ内のサイトに10回、20回、30回、40回、50回またはそれ以上のアクセスを許可されることとすることができる。
その後、プロセス950は、ステップ964に進み、ここで、このカテゴリのインターネットサイトへのアクセスの総数を、ストレージ258から取り出す。この値を、カテゴリ化されたサイト管理モジュール26内で実施されるクォータシステムに基づいて、毎日、毎週または毎月、0にセットすることができることに留意されたい。
判断ステップ968で、ユーザのクォータを超えたかどうかを判定する。ユーザのクォータを超えていない場合には、プロセス950は、ステップ970に進み、ここで、ページまたはサイトを取り出す。その後、プロセス950は、ステップ972で、ストレージ258内に保存されたカウンタに1を加算し、プロセス950は、終了ステップ974で終了する。
判断ステップ968で、このカテゴリのサイトへのアクセスの回数に関して、ユーザのクォータがその回数を超えたと判定された場合には、プロセス950は、ステップ978に進み、ここで、ユーザのクォータ最大回数を超えたという通知をユーザに送る。その後、プロセス950は、終了ステップ974で終了する。
例1
トレーニングデータの正規化
上述のように、異なるウェブサイトのソースページは、異なる数の単語を有する。これが単語対および単語近接のトレーニングプロセスに影響する可能性がある。というのは、単語数の少ないインターネットサイトが、より少数の単語を有するサイトより単語対および単語近接に対するより高い関連性を強制する可能性があるからである。たとえば、それぞれソースページに10個および500個の単語対を有する2つのページ、AおよびBを検討されたい。各サイトが、0の現在のページスコア(Sc)と1000のターゲットページスコア(St)を有すると仮定する。現在のトレーニングアルゴリズムは、次の式の形になる。
(E1) Wrn=Wrc+I
ここで、Wrnは、新しい単語対の関連性であり、Wrcは、現在の単語対の関連性であり、Iは、ページが即座に再スコアリングされる場合にそのスコアがターゲットスコアと等しくなるように、各単語対の関連性を増分しなければならない量である。Iは、現在のスコアをとり、ターゲットスコアから引き、ページの単語対の総数(Wt)で割ることによって求めることができる。その式は次のようになる。
(E2) I=(St−Sc)/Wt
新しい単語対関連性を見つけるためには、現在の関連性を増分値に加算する必要がある。新しい単語対関連性の式は、次のようになる。
(E3) Wrn=Wrc+[(St−Sc)/Wt]
上の式を使用して、サイトAおよびBの単語対関連性を計算することによって、次の結果が得られる。
(E4) Wrn(A)=0+[(1000−0)/10]=100 (注:I=100)
(E5) Wrn(B)=0+[(1000−0)/500]=2 (注:I=2)
これらの結果を解釈すると、1ラウンドのトレーニングの後に、選択されたカテゴリに対して、サイトAの10個の単語対のそれぞれが、100の関連性を有し、サイトBの500個の単語対のそれぞれが、2の関連性を有する。
これらの2つのサイトが、特定のカテゴリのトレーニングに対して、同等に「適する」と判定された場合に、論理的には、この2つのサイトが、他のページからの単語対に同一の度合まで影響しなければならない。しかし、この時点では、そうではない。そうではなく、10個の単語対を有するサイトが、500個の単語対を有するサイトより5000%ほどまで、見つかる単語の重みに影響する可能性がある。その代わりに、ページに現れる単語数に無関係に、単語対を「均等に」増分するシステムが望ましい。
各単語対が増分される量を正規化する方法が、有利である。E4およびE5の結果を使用すると、各単語対を増分することができる最小量および最大量が、それぞれ100および2になる。最小関連性スコアと最大関連性スコアが互いに近づくことが求められているので、中間点の定理を使用してこれらの平均をとることができる。
Mp=(p1+p2)/2、ただし、Mpは中間点、p1は点1、p2は点2である。
最小増分と最大増分の間の中間点が、次式であることが分かる。
(E6) Mp=[I(A)+I(B)]/2
E4およびE5式の値を使用すると、
(E7) Mp=[100+2]/2=102/2=51
になる。
したがって、各サイトについて関連性スコアを中間点に向けて調整するのに使用しなければならない「調整定数」の判定は、次の2つの式に依存する。
(E8) I(A)×AdjCon(A)=Mp または AdjCon(A)=Mp/I(A)
(E9) I(B)×AdjCon(B)=Mp または AdjCon(B)=Mp/I(B)
置換すると
(E10) AdjCon(A)=51/100=.51
(E11) AdjCon(B)=51/2=25.5
になる。
したがって、10単語では、増分に0.51をかけて、中間点値51に達しなければならない。同様に、500単語では、増分値に25.5をかけて、中間点値51に達する必要がある。この論理を使用して、トレーニング正規化定数Ntを定式化することができる。Ntを計算する式は次の通りである。
(E12) Wt(X)×Nt=AdjCon(X) または Nt=AdjCon(X)/Wt(X)
10単語の最小値(Wt(A)=10)と500単語の最大値(Wt(B)=500)について、トレーニング正規化定数は次のようになる。
(E13) Nt=AdjCon(A)/Wt(A)=0.51/10=0.051
(E14) Nt=AdjCon(B)/Wt(B)=25.5/500=0.051
10単語と500単語の間の単語の範囲を有するトレーニング正規化定数は、0.051である。この定数の重要性を、これから示すことができる。この例で1ラウンドのトレーニング後のページの総スコアSnは、次式を使用して求めることができる。
(E15) Sn=Wt×Nt×(St−Sc)/Tp
ここで、Tpは、単語組合せの可能性の総数である。
可能性の総数が、グループ化および単語をサイクルする形などに依存することに留意されたい。たとえば、ページが100単語を有する場合に、10単語のグループをとり、5の増分でサイクルすることができる。これを考慮に入れると、Tpの式が、次のようになる。
Tp=(Wt/Wi−1)×(Wg)!/[(Wg−k)!(k)!]
ここで、kは、k−セットであり、単一単語の場合にk=1、単語対の場合にk=2、単語3つ組の場合にk=3などである。Wgは、単語グループ化であり、Wtは、単語総数であり、Wiは、単語増分(またはサイクル)である。上記の例では、WtがTpと等しい。これによって、本明細書に示される例が簡約されるが、k>1の時には、必ずしもそうではない。
Wt=Tpの特殊な場合において、各単語の関連性スコアが増やされる量は、次式になる。
(E16) Nt×(St−Sc) または 0.051×(St−Sc)
これは簡約された例であるが、トレーニングプロセスでの単語スコア正規化の基本原理を示すものである。k>1(または単一単語カウント以外の何か)の場合に、WtがTpと等しくないことに留意されたい。
この正規化プロセスが、特定のサイトに関連する字句要素のトレーニング(アップトレーン)に使用可能であるだけではなく、特定のサイトに関連しない字句要素のトレーニング(ダウントレーン)にも使用できることも理解されたい。アップトレーニングセッション中に、あるページの字句要素の単語関連性スコアが、指定されたカテゴリ内で増やされて、それらがそのカテゴリにより強く関連することが示される。
ダウントレーニングセッション中に、あるページの字句要素の単語関連性スコアが減らされて、それらが選択されたカテゴリにより弱く関連することが示される。したがって、ページをダウントレーニングするために、正規化定数を計算して、各ページのスコアが、たとえば500のスコアまで、下に移動することを理解されたい。このように、ページの各字句要素は、正規化定数が掛けられて、ページ関連性スコア値が低くなる。
しかし、どちらの場合でも、各単語関連性スコアが変化する量を正規化し、その結果、より少ない字句要素を有するページが、そのページで見つかる単語関連性により大きく影響しないようにすることが好ましい。
例2
インターネットページスコアリングの正規化
単語、単語対および単語近接が、ほぼ同一の値だけ「トレーニングアップ」され、その結果、それぞれが徐々に大きくなる関連性スコアを有するようになる場合に、それがページスコアリング処理にどのような影響を及ぼすであろうか。2つのサイトAおよびBが、それぞれ10個および500個の単語を有すると仮定する。各サイトが、1ラウンドのトレーニングの前に0のスコアを有し、ターゲットスコアは1000である。単一の単語を扱うので、K=1であり、Wt=Tpである。式16を使用して、各単語を増分する量が下記であることが分かる。
(E17)0.051×(St−Sc)=0.051×(1000−0)=51
各単語が、51ポイント増やされた場合に、1ラウンドのトレーニングの後の各ページのスコアは、そのページの単語数の51倍になるはずである。各ページのスコアは、次のようになる。
(E18) Score(A)=10×51=510
(E19) Score(B)=500×51=25500
明らかに、これらのスコアは、互いに近くはない。数だけに基づいて判断すると、サイトBが、サイトAよりはるかに強くカテゴリに関連するように見える。しかし、この両方が、同一のカテゴリをトレーニングするのに使用された。その結果、これらは、1ラウンドのトレーニングの後に類似する値を有しなければならない。変化する個数の単語を有するページから作られる可能性があるスキューを考慮に入れるシステムが必要である。
達成が求められているのは、ページに現れる単語の数に基づいてページのスコアを正規化する手段を作成することである。式18および19を使用して、サイトの最大スコアおよび最小スコアを近似することができる。最大値と最小値がそれぞれ近づくことが求められているので、下記の中間点の式を使用してそれらの中間点を見つけることができる。
(E20) (510+25500)/2=13005
このデータのセットの「調整変数」を求めるためには、中間点スコアを実際のスコアで割る必要がある。
(E21) Ns(A)=13005/510=25.5 (注:Wt=10)
(E22) Ns(B)=13005/25500=0.51 (注:Wt=500)
ここで、点(10単語、25.5)および(500単語、0.51)がわかっている。さらに点(255、1)、(132、1.931818)および(378、0.674603)を求め、これらをプロットすると、次式を有する傾向線を有する順序付けられたデータセットが得られる。
(E23) y=255×x^−1
Ns(Wt)でy(単語のセット数に対するスコア正規化因子)、Wt(総単語数)でxを置換する。次式が得られる。
(E24) Ns(Wt)=255×(Wt)^−1
10単語および500単語を有するサイトAおよびBについて、
(E25) Ns(10)=255×(10)^−1=25.5
(E26) Ns(500)=255×(500)^−1=0.51
である。
一般に、スコアリングの式は、次のようになる。
(E27) 正規化されたスコア(サイトX)=Ns(Wt(サイトX))×オリジナルスコア(サイトX) 式18および19からの結果を使用すると、サイトAおよびサイトBのスコアは、それぞれ510および25500であった。正規化されたスコア技法を使用すると、1ラウンドのトレーニングの後に、これらのサイトのスコアが、次のようになる。
(E28) 正規化されたスコア(A)=Ns(Wt(A))×スコア(A)=25.5×510=13005
(E29) 正規化されたスコア(B)=Ns(Wt(B))×スコア(B)=0.51×25500=13005
これらのサイトは、トレーニングの後に同一のスコアを有する。これによって、カテゴリのトレーニングに使用されるサイトが類似するスコアを有しなければならないという論理が支持される。これらの式を、例1で示したトレーニングデータの正規化と組み合わせることによって、トレーニングセット内に異なる単語数を有するサイトを有することによって引き起こされる誤差が最小になる。
例3
ページのスコアリング
約8000サンプルが、提案データベースのカテゴリ2(またはセックス 2)からのサイトから収集された。これらの潜在的なカテゴリ2サイトは、ウェブ分析家によって事前に検査されて、それらが実際に、主に性的またはポルノグラフィ的な性質のインターネットサイトであるかどうかが判定された。セックスサイトとして検証されたサイトに、8のスコアが割り当てられ、セックスサイトでないと判定されたサイトに、7のスコアが割り当てられた。カテゴリ化システムは、全部で8000のサイトにカテゴリ2のカテゴリレーティングを割り当てた。
この調査の目的は、カテゴリ化システムが、8および7としてレーティングされたサイト、または、それぞれ許容されるサイトおよび削除されるサイトを区別できるかどうかを判定することであった。削除されるサイトが、セックスカテゴリ内にカテゴリ化されてはならないサイトであり、許容されるサイトが、このカテゴリ内であると確認されるサイトであることに留意されたい。仮定は、8としてのサイトレートの平均スコアが、7としてレーティングされたサイトの平均スコアと統計的に異なるということである。想像されるように、許容されるサイトの平均値(8)は、削除されるサイトの平均値(7)より大きく、その差は有意であった。しかし、2つのグループの間にオーバーラップがあった。この結果は、伴う誤りを最小にするために、カットオフ点を使用することができることを示している。
アルファ点=Ap=M7+4(SD7)=929+4(482)=2857
ベータ点=Bp=M7+1(SD7)=929+1(482)=1411
2857のアルファ点を使用することによって、99%以上のソーティング精度が得られることが分かった。アルファスコアを超えるがセックスカテゴリに属さないサイトは、9つだけであった。そのうちの7つは、単純な誤りであり、おそらくはカテゴリ2サイトの不十分なトレーニングに帰するものと推定された。
そのうちの2つは、意図的な策略であり、インターネットサイトが、メタタグで注意を引くためにセックス関連用語を使用したことを意味する。2857のアルファ点を使用したソーティング精度の正確なパーセンテージは、したがって、99.30%であった。このように、このテストによれば、このアルファ点を超えるスコアを有する1000個のサイトが入力された場合に、平均して、7つだけの誤りと、993個の正しくソートされたサイトがある。
しかし、アルファ点は非常に高く設定されるので、実際にはセックス指向である多くのサイトが、全くカテゴリ化されない。2857のアルファ点を使用すると、許容されるサイトの包含レベルは49.80%にすぎない。これは、カテゴリ2に含まれなければならない1000個のサイトのうちで、498個が見つかり、502個が見逃されることを意味する。
このため、このシステムでは、ベータ点の作成により、各カテゴリへのより低い関連性を有するサイトも監視する。1411のベータ点を使用すると、包含レベルが、49.80%から81.76%に上がる。見逃されるサイトの数は、502から183サイトに下がり、見つかる数が、498から817に上がる。したがって、アルファ点とベータ点の両方の使用によって、新しいサイトのより正確なスコアリングがもたらされる。
例4
増分によるトレーニングデータの正規化
トレーニングデータを正規化する方法のもう1つの実施の形態を、以下で説明する。まず、トレーニングされるページについて、Is=初期スコア、Ts=ターゲットスコアと定義する。
1)たとえば1のテスト増分値を用いて開始する。すべての字句値の関連性の値をテスト値だけ増分する(たとえば:ページに存在するすべての字句値)。
2)このテスト加算の後に、結果のページ関連性スコアを計算する。
3)新しいスコア=Msの場合に、増分値I、(すべての字句要素について)
I=(Ts−Is)/(Ms−Is)である。
したがって、ターゲットスコアと現在のスコアとの間の差を、各要素関連性が1つだけ増分される時のスコアの影響で割った値が、ターゲットスコアを達成するための、各要素を増分するのに正しい数である。
したがって、Is=500かつTs=1000の場合に、すべての関連性を1つだけ増分することによって、550のページスコアがもたらされ、
I=(1000−500)/(550−500)
になる。
したがって、1000のページスコアをもたらすためにページを増分するには、各字句要素について、10の増分値を使用する必要がある。
一般に、ある値の関連性は、増分定数(I)×ページでのその要素の出現の回数によって増分される。これは、ある要素があるページに頻繁に現れるほど、その要素がそのページにより関連するという概念の当然の結果である。しかし、この処理は、頻繁に現れるが一般的な単語でない要素の関連性の大きい変動をもたらす。このために、一実施の形態では、各値が、最大で5×増分定数(I)の増分だけが許可される。