(57)【要約】  情報検索システムは語句を利用して文書を索引付け、検索、整理、説明する。文書において他の語句の存在を予測する語句を特定する。文書は、それらに含まれている語句に応じて索引付けされる。文書の索引は、一次索引および二次索引を含む複数の索引に分割される。一次索引は、関連性で順位付けされた文書を含む語句登録リストを記憶する。二次索引は前記登録リストに入らなかった文書を文書順に索引付けする。【選択図】  図１
2008529138.tif 000002
【特許請求の範囲】
【請求項１】
或る語句に関して複数の文書を索引付けするためにコンピュータによって実行される方法であって、各文書は文書識別子を有し、前記方法は、
当該語句を含む文書のリストを作成することと、
関連性スコアによって前記リスト内の文書を順位付けすることと、
高い順位がつけられた文書から成る前記リストの第１部分を、一次索引において前記関連性スコア順に記憶することと、
低い順位がつけられた文書から成る前記リストの第２部分を、二次索引において前記文書識別子の番号順に記憶することと
で構成されることを特徴とする方法。
【請求項２】
請求項１に記載された方法であって、前記関連スコアはページ順位に基づくスコアから成ることを特徴とする方法。
【請求項３】
請求項１に記載された方法であって、更に、各文書に対して該文書の関連性属性を前記一次索引に記憶することを特徴とする方法。
【請求項４】
請求項３に記載された方法であって、前記関連性属性は、文書における前記語句の総出現回数、前記語句を含み前記文書を示すアンカー文書を順位付けしたリスト、前記文書における各語句出現位置、前記出現語句のフォーマットの一部を示す１以上のフラグ、前記出現語句を含む文書の一部のうち、少なくとも１つを含むことを特徴とする方法。
【請求項５】
請求項３に記載された方法であって、前記リストの第２部分を二次索引に記憶する際、実質的に文書識別情報のみを記憶することを特徴とする方法。
【請求項６】
請求項１に記載された方法であって、前記リストの第１部分を一次索引に記憶する際、物理的記憶装置上に前記リストの第１部分を関連性スコアの順に記憶することを特徴とする方法。
【請求項７】
請求項１に記載された方法であって、前記リストの第２部分を二次索引に記憶する際、物理的記憶装置上に前記リストの第2部分を文書識別子の番号順に記憶することを特徴とする方法。
【請求項８】
請求項１に記載された方法であって、文書の各リストの前記第１部分は、列挙されている各文書が第１の複数の関連性属性を含む第１区分と、列挙されている各文書が前記第１の関連性属性の一部である第２の複数の関連性属性を含む第２区分とを有し、前記第１区分に列挙されている文書には前記第１区分に列挙されている文書よりも高い順位が付けられていることを特徴とする方法。
【請求項９】
請求項８に記載された方法であって、文書の各リストの前記第１部分は、列挙されている各文書が前記第２の関連性属性の一部である第３の複数の関連性属性を含む第３区分を有し、前記第２区分に列挙されている文書には前記第３区分に列挙されている文書よりも高い順位が付けられていることを特徴とする方法。
【請求項１０】
請求項８に記載された方法であって、各リストの前記第１部分はｎ個のエントリを含み、該リストの第2部分はｍ＊ｎ個のエントリを含み、ｍ＞ｎであり、該リストの第３部分はＩ＊ｎ個のエントリを含み、Ｉ＞４であることを特徴とする方法。
【請求項１１】
情報検索システムを提供するための方法であって、
一次語句登録リストを含む一次索引を記憶するステップと、ここで、各登録リストは語句に関連付けられるとともに該語句を含む最大数までの文書を含み、該文書は各関連性スコアによって順位付けされており、
二次語句登録リストを含む二次索引を記憶するステップと、ここで、各登録リストは一次索引の一次語句登録リストに関連付けられるとともに、該語句を含み、かつ該語句に対する一次登録リストで最下位に順位付けされた文書の関連性スコアよりも低い関連性スコアを有する文書を含み、該文書は各関連性スコアによって順位付けされており、
少なくとも１の語句から成る検索クエリを受け取るステップと、
一次登録リスト及び二次登録リストを有する第１語句及び一次登録リストのみを有する第２語句を含む前記検索クエリに応答して、前記第１語句の一次登録リストを前記第２語句の一次登録リストと交差させて共通文書の第1の集合を得て、前記第１語句の二次登録リストを前記第２語句の一次登録リストと交差させて共通文書の第２の集合を得て、前記共通文書の第１の集合及び第2の集合を統合するステップと、
前記共通文書を順位付けするステップと
を具備することを特徴とする方法。
【請求項１２】
一次語句登録リストを含む一次索引であって、各登録リストは語句に関連付けられるとともに該語句を含む最大数までの文書を含み、該文書は各関連性スコアによって順位付けされる一次索引と、
二次語句登録リストを含む二次索引であって、各登録リストは一次索引の一次語句登録リストに関連付けられるとともに、該語句を含み、かつ該語句に対する一次登録リストで最下位に順位付けされた文書の関連性スコアよりも低い関連性スコアを有する文書を含み、該文書は各関連性スコアによって順位付けされる二次索引と
を具備する情報検索システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターネット等上の文書の膨大な集積における文書を索引（index:インデックス）、検索（search:サーチ）、及び分類（classify:クラシファイ）するための情報検索（retrieval:リトリーバル）システムに係る。
【０００２】
関連出願の相互参照
本出願は、この参照より開示に含まれる２００５年１月２５日付特許出願第１１／０４３，６９５号「多重索引に基づく情報検索システム」に基づく優先権を主張する。また、本出願は、この参照より開示に含まれる２００４年７月２６日に提出された出願第１０／９００，０２１号の一部継続出願であり、出願人が共通する。
【背景技術】
【０００３】
現在、一般に検索エンジンと呼ばれる情報検索システムは、インターネット等、多岐にわたり年々拡大する膨大な文書の集積において情報を見つけ出すのに不可欠なツールである。一般に、検索エンジンは、文書（あるいは「ページ」）を各文書における個々の単語に関連付ける索引を作成する。文書は多数の検索語を含む検索に応じて、通常は該文書中に検索語がいくつか含まれていることに基づき検索される。そして、検索された文書は他の統計的な尺度、例えば検索語の出現頻度、ホスト・ドメイン、リンク解析等に応じて順位付けされる。そして、検索された文書は、通常は順位付けされた順序で、更にグループ分けされたり階層に分けたりされずに、ユーザに示される。ユーザが文書の内容を垣間見ることできるよう、文書のテキストのうち選択された部分がユーザに示される場合もある。
【０００４】
検索語の直接的な「ブール」検索には、よく知られている制約があり、特に、検索語を含まないが関連語を含む文書を割り出すことができない。例えば、通常のブール・システムにおいて、「オーストラリアンシェパード」についての検索では、ボーダー・コリーのような他の牧畜犬についての文書であって検索語を含まない文書は返されない。むしろ、このようなシステムは、また、オーストラリアに関する（犬とは関係ない）文書や一般的な「シェパード」に関する文書を検索し、上位に順位付けする可能性がある。
【０００５】
ここで問題となるのは、従来のシステムが概念ではなく個々の単語に基づいて文書を索引付けしていることである。概念は、「オーストラリアンシェパード」、「合衆国の大統領」、「サンダンス映画祭」等、一連の語句で表されることが多い。せいぜい、一般に人間のオペレータによって選択される所定の限られた一連の「既知の」語句に関して文書を索引付けする従来のシステムがいくらかあるだけである。３つ、４つ、５つ、あるいは６つ以上の単語から成る全ての可能性がある語句を特定するために必要とされる演算・記憶領域のため、語句の索引付けを行うことは通常避けられる。例えば、ある５つの単語が１つの語句を構成し、文書の膨大な集積が少なくとも２００，０００個の固有の単語を含むと仮定すると、およそ３．２ラ１０26個の可能性がある語句が存在することになるが、これは既存のシステムが記憶領域に記憶できる数、またはプログラムで操作できる数よりも明らかに多い。更に問題となるのは、個々の新しい単語が作り出されるよりもはるかに頻繁に、語句が使用頻度によって連続的に用語集に出たり入ったりすることである。技術、芸術、世界情勢、及び法律等のソースから新しい語句は常に作り出されている。その他の語句は時とともに廃れていく。
【０００６】
個々の単語の共出現パターンを利用し概念の検索を試みる既存の情報検索システムも存在する。これらのシステムでは、「大統領」のような1つの単語の検索で、「大統領」と共に頻繁に出現する他の単語、例えば「ホワイト」や「ハウス」等を含む文書が検索される。この方法では、個々の単語レベルで概念的に関連する文書を含む検索結果が作成されるが、通常、共に出現する語句間に内在するトピックの関連性を把握するものではない。
【０００７】
従って、文書の膨大な集積において語句を包括的に特定し、語句に応じて文書を索引付けし、語句に応じて文書を検索し順位付けし、該文書についてまとまった記述的な情報を更に提供することができる情報検索システム及び方法が必要とされる。
【０００８】
従来の情報検索システムのその他の問題は、インターネット上で入手可能な文書のうち比較的小さい部分しか索引付けできないことである。今日、インターネット上には２，０００億以上のページが存在すると推定されている。しかしながら、最良の検索エンジンでも６０〜８０億ページを検索できるのみであり、入手可能なページの大部分を見逃してしまうことになる。従来のシステムに限られた索引付け能力しかないのにはいくつかの理由がある。最大の理由は、通常のシステムは、（上で述べたように）各語句に対して該語句が出現する全ページのリストを保持するある種の逆索引、及びページ上における該語句の正確な各出現位置を特定する位置情報に依存していることである。個々の語句の索引付けと位置情報の索引付けとを組み合わせて行うには、膨大な記憶領域が必要である。
【０００９】
インターネット検索に用いられる多くの情報検索システムに関する更なる問題は、時間とともに変化するページをアーカーブできないことである。従来、殆どのインターネット検索エンジンは、特定のページの現在のインスタンス（あるいはバージョン）に対して関連性情報を記憶し、該ページが再度索引付けされるたびに該情報を更新するのみである。その結果、ユーザは、ページの以前のインスタンスや、特定の日付間隔に存在していたページを検索することができない。同様に、これらの検索エンジンは、検索クエリを調べて検索結果を提供する際に、バージョンあるいは日付に関連した関連性情報を利用しない。
【００１０】
従って、既存のシステムのように膨大な記憶容量を必要とせず、数百億ページの内容、最終的には１，０００億ページ以上の内容を効果的に索引付けすることができる情報検索システムを提供することが望ましい。
【発明の開示】
【００１１】
情報検索システム及び方法は、語句（phrase:フレーズ）を利用して、文書集合における文書を索引付け、検索、順位付け、説明する。本システムは、文書集合において十分に頻繁に、及び／あるいは目立った外観で使用されている語句を特定し、それらが「有効な」あるいは「良い」語句であることを示す。このように、複数の単語から成る語句、例えば、４つ、５つ、あるいはそれ以上の単語から成る語句を特定することができる。これにより、ある数の単語から成るシーケンスの全てに由来する全ての可能性がある単語を特定して索引付けする必要があるという問題が回避できる。
【００１２】
本システムは、更に、文書のおける他の語句の存在を予測する能力が語句にあるかどうかに基づいて、相互に関連する語句を特定する。より具体的には、２つの語句の実際の共出現率を該２つの語句の予測共出現率に関連付ける予測尺度を用いる。実際の共出現率と予測共出現率との比率としての情報ゲインが、そのような予測尺度である。予測尺度が所定の閾値を超えている場合、２つの語句には関連性がある。この場合、第２の語句は、第１の語句に対して大きな情報ゲインを持つ。意味論的に、関連語句は、例えば、「合衆国の大統領」と「ホワイトハウス」のように、あるトピックや概念について述べたり説明したりするために一般的に用いられる語句をいう。任意の語句に対し、関連語句はその関連性及び重要性によって、各予測尺度に基づき、順位付けすることができる。
【００１３】
本情報検索システムは、文書集合における文書を、有効あるいは良い語句によって索引付け（インデックス）する。各語句について、登録リストは該語句を含む文書を特定する。更に、任意の語句に対し、第２のリスト、ベクトル、あるいはその他の構造を利用して、該任意の語句の関連語句のうち何れの語句が、該任意の語句を含む各文書に存在しているか示すデータを記憶する。このように、本システムは、検索クエリに対し、どの文書がどの語句を含むかを直ちに特定するだけでなく、クエリ語句に関連する語句を含み、そのためクエリ語句に表されているトピックや概念に特に関連する可能性が最も高い文書をも特定する。
【００１４】
本情報検索システムは、更に、クエリに対して文書を検索する際に語句を利用するように構成されている。クエリ語句の関連登録リスト及び連語句情報を検索するため、上記クエリは、該クエリ中に存在するあらゆる語句を特定するように処理される。更に、あるインスタンスにおいて、ユーザが検索クエリに不完全語句、例えば「President of」を入力する場合がある。このような不完全語句は、「President of the United States」等、延長した語句によって特定されて置き換えられる。これにより、ユーザによる最も可能性が高い検索が実際に実行される。
【００１５】
本発明の別の態様では、多重索引構造によって約１，０００億以上という膨大な数の文書を索引付けすることができる。一実施例では、一次索引及び二次索引が設けられる。一次索引は、各語句に対して索引付けされた限られた数の文書とともに、語句の索引データを記憶する。ある特定の語句について、該語句に対する文書の関連性の順に、文書の索引データが記憶される。この記憶装置は論理的及び物理的であることが好ましい（つまり、基礎となる記憶装置上にデータがどのように記憶されるか）。上記限られた数よりも多い数の文書が特定の語句を含む場合、その余った文書の索引データは二次索引に記憶されるが、ここでは関連性の順ではなく文書番号によって順位付けされ、例えばスキャッタ・ギャザー（scatter-gather）法で検索される。
【００１６】
例えば、一次索引は、各語句に対して３２，０００個の文書エントリを記憶するように構成することができ、二次索引は該語句を含む３２，０００個よりも多い数の文書に対する文書エントリを記憶するように構成することができる。一次索引の文書エントリを得るには、語句への関連性に対して文書にスコア（点数）を付与し、その関連性スコアによって順位付けする。または、関連性の解析に有用な様々な文書の特徴によって文書を順位付けしてもよい。文書エントリに対する順位付けを利用して、該エントリを一次索引と二次索引との間で分割する。語句を含む文書が限られた数よりも少ない場合、全エントリが一次索引に記憶され、ここでも関連性の順に記憶される。このような索引付けによって、索引の記憶容量を１０〜１５倍に増加させ、最適化された索引情報のお陰でサーバの性能を１０倍に増加させることができる。
【００１７】
本発明の別の態様では、アーカイブするために文書の複数バージョンあるいはインスタンスを索引付けすることができる。これにより、ユーザが特定の日付範囲内における文書を検索することが可能になり、検索クエリに対して文書を評価する際、及び検索結果を整理する際に日付やバージョンに関連する関連性情報を用いることが可能になる。一実施例において、ある文書は１以上の日付範囲に関連付けられる。各日付範囲は該文書から導き出され該日付範囲内で有効であると考えられる関連性データに関連付けられる。現在の日付範囲は、文書の現在のインスタンスに関連付けられ、文書が直前に索引付けされた日付から開始する。索引付けパスにおいて文書が見つかった場合、該文書は前のバージョンと照合され、文書に変更があったかどうか判断される。文書に変更がなかった場合には、索引付けされた関連性データが保持される。文書に変更があった場合、該文書に対する現在の日付範囲がクローズされ、文書は再度索引付けされ、新しい現在の日付範囲が設定され、現在の関連性データに関連付けられる。
【００１８】
本発明は、更に、システム及びソフトウェアの構造、コンピュータプログラム製品及びコンピュータで実行可能な方法、及びコンピュータで生成されるユーザインターフェース及び表示の点において他の実施例を有する。
【００１９】
上述の内容は、語句に基づく情報検索システム及び方法の特徴のいくつかを説明しただけのものである。情報検索分野の当業者は、語句情報の一般性の自由度により、索引付け、文書注記、検索、順位付け、その他の文書解析及び処理における多種多様な使用及び応用が可能であることを理解するであろう。
【００２０】
【００２１】
【００２２】
【００２３】
【００２４】
【００２５】
【００２６】
上記図面は本発明の好適な実施例を例示しただけである。当業者であれば、ここで説明する発明の原則から逸脱せずに、ここに例示されている構造及び方法について他の実施例を用いることが可能であることを以下の説明から容易に理解するであろう。
【発明を実施するための最良の形態】
【００２７】
Ｉ. システムの概要
図１には、本発明の一実施例に係る検索システム１００の実施例のソフトウェア構造が示される。本実施例において、システムは索引システム１００、検索システム１２０、表示システム１３０、及びフロントエンド・サーバ１４０を備える。
【００２８】
索引システム１１０は、各種ウェブサイト１９０及びその他の文書集合にアクセスすることにより、文書内の語句を特定し、該語句に応じて文書の索引付けを行う役割を果たす。フロントエンド・サーバ１４０は、クライアント１７０のユーザからクエリを受け取り、該クエリを検索システム１２０に送る。検索システム１２０は、検索クエリに関連する文書（検索結果）を検索し、検索クエリにおける何れかの語句を特定し、順位に影響する語句の存在に応じて索結果において文書を順位付けする役割を果たす。検索システム１２０は、検索結果を表示システム１３０に送る。表示システム１３０は、検索結果に変更を加え、重複する文書を削除し、文書のトピック別の説明を作成し、変更を加えた検索結果をフロントエンド・サーバ１４０に送り、フロントエンド・サーバ１４０は該結果をクライアント１７０に送る。システム１００は、更に、一次索引１５０、文書に関連する索引情報を記憶する二次索引１５２、語句及び関連する統計情報を記憶する語句データ記憶部１６０を備える。一次索引１５０は、多数のプライマリサーバ１・・・Ｍ１に分散される、同様に、二次索引１５２も多数のプライマリサーバ１・・・Ｍ２に分散される。
【００２９】
本出願の文脈の中で、「文書」とは、ウェブ文書、画像、マルチメディア・ファイル、テキスト文書、ＰＤＦあるいはその他の画像フォーマットされたファイル等、検索システムによって索引付け及び検索することが可能な任意の媒体とする。文書は、その内容及び種類に応じて、１あるいは2以上のページ、区分、セグメントあるいはその他の構成要素により構成することができる。「文書」という総称を用いることで、本発明の範囲に対する制限が示唆されることはない。検索システム１００は、膨大な文書の集積、例えばインターネットやワールドワイドウェブにわたって作業を行うが、図書館や民間企業の文書集合等、より限られた集合で用いることもできる。どちらの場合でも、当然のことながら、文書は通常多数の異なるコンピュータシステム及びサイトにわたって分散される。そして、一般性を欠くことなく、文書は、その形式あるいは位置（例えば、どのウェブサイトあるいはデータベースか）に関わらずまとめて文書の集積あるいは文書集合と呼ぶことにする。各文書は該文書を一意に特定する対応識別子を有し、該識別子はＵＲＬであることが好ましいが、その他の識別子（例えば、文書番号）を用いることもできる。本開示では、文書を特定するためにＵＲＬを用いるものとする。
【００３０】
II．索引システム
一実施例において、索引システム１１０は、次の３つの主な機能的作用を提供する：1）語句及びそれに関連する語句の特定、２）語句に関する文書の索引付け、及び、３）語句に基づく分類の作成及び保持。当業者は索引システム１１０が従来の索引機能を支援するために他の機能を実行できることを理解できるだろう。よって、該他の機能についてはここで更に説明をしない。索引システム１１０は、一次索引１５０、二次索引１５２、語句データのデータ・リポジトリ１６０上で動作する。これらのデータ・リポジトリについて更に以下で説明する。
【００３１】
１.語句の特定
索引システム１１０の語句特定作業では、文書集合において文書を索引付け及び検索するのに有用な「良い」語句と「悪い」語句を特定する。１の形態において、良い語句とは文書集合において一定の割合以上の文書で出現する傾向がある語句、及び／あるいは、そのような文書において外観が目立っている語句、例えばマークアップ・タグやその他の形態学的、形式、文法的マーカーによって区切られている語句として示される。別の形態において、良い語句とは他の良い語句を予測するものであり、単に語彙の集まりにおいて現れる一連の単語ではない。例えば、「合衆国の大統領」は、「ジョージ・ブッシュ」や「ビル・クリントン」等、他の語句を予測する語句である。しかしながら、「階段から落ちた」、「ご機嫌いかがですか」、「前触れもなく」等の語句は他の単語を予測するものではない。何故なら、このような慣用句や口語は他の様々な無関係の語句と一緒に出現する傾向があるためである。従って、語句の特定では、どの語句が良い語句で、どの語句が悪い語句（即ち、予測性に欠ける語句）か決定する。
【００３２】
次に図２を参照すると、語句特定処理は以下の機能的段階から成る。
【００３３】
２００：可能性がある語句及び良い語句を、その頻度と出現回数の統計値と共に収集する。
【００３４】
２０２：可能性がある語句を、出現頻度の統計値に基づいて良い語句あるいは悪い語句に分類する。
【００３５】
２０４：共出現頻度の統計値から導き出された予測尺度に基づき良い語句のリストから不要な語句を除く。
【００３６】
これらの段階についてそれぞれ更に詳細に説明する。
【００３７】
第１段階２００は、索引システム１１０が文書集合における一組の文書を巡回し、時間の経過とともに文書集合の区分を繰り返し作成する。１つの区分はパス毎に処理される。パス毎に巡回される文書の数は変更できるが、１区分につき約１，０００，０００個であることが好ましい。全文書が処理されるまで、あるいは他の終了条件が満たされるまで、各区分において、未巡回の文書のみを処理するのが好ましい。実際には、新しい文書が文書集合に連続的に追加されている間、巡回が継続する。巡回される各文書に対して、索引システム１１０は以下の工程を行う。
【００３８】
語句ウィンドウの長さがｎであり、ｎは所望の最大語句長さである文書の単語を横断する。ウィンドウの長さは、通常少なくとも２語であり、好ましくは、４あるいは５語（単語）である。好ましくは、語句には語句ウィンドウ内の全単語が含まれ、それ以外の場合ではストップワードと性格付けられるようなもの、例えば、「a」や「the」等も含まれる。語句ウィンドウは、列の末尾、パラグラフリターン、マークアップ・タグ、又はその他の内容や形式の変化を示すもので終わらせることができる。
【００３９】
図３は、横断中の文書３００の一部分を示す図であり、「stock」という単語から始まり、右側に５語延びる語句ウィンドウ３０２を示す。ウィンドウ３０２内における第1番目の単語は、候補語句ｉであり、同様に、一連の語であるｉ+1、ｉ＋２、ｉ＋３、ｉ＋４、ｉ＋５もそれぞれ候補語句である。よって、この例において、候補語句は、「stock」、「stock dogs」、「stock dogs for」、「stock dogs for the」、「stock dogs for the Basque」、「stock dogs for the Basque shepherdsｓ」である。
【００４０】
各語句ウィンドウ３０２において、各候補語句を順にチェックして、良い語句のリスト２０８又は可能性がある語句のリスト２０６に既に入っているかどうかを判断する。候補語句が、良い語句のリスト２０８及び可能性がある語句のリスト２０６のいずれにも入っていない場合、その候補語句は「悪い」と判断し、スキップする。
【００４１】
候補語句が、良い語句のリスト２０８にエントリｇjとして入っている場合、語句ｇiに対する索引１５０のエントリを更新して文書（例えば、そのＵＲＬやその他の文書識別子）を入れることにより、この候補語句ｇjが当該文書に出現していることを示す。語句ｇj（あるいは語）に対する索引１５０のエントリは、語句ｇjの登録リストと呼ばれる。登録リストには、語句が出現する文書のリスト（文書番号あるいはＵＲＬ等の文書識別子ごとの）含まれるが含まれる。一実施例において、文書番号は、例えばＭＤ５を用いて、ＵＲＬの一方向性ハッシュにより導き出される。
【００４２】
加えて、以下で更に説明するように共出現マトリクス２１２が更新される。第一番目のパスでは、良いリスト及び悪いリストが空であるため、大部分の語句が可能性のある語句のリスト２０６に加えられる傾向がある。
【００４３】
候補語句が良い語句のリスト２０８に入っていない場合、該語句は可能性のある語句のリスト２０６に既に入っている場合を除き追加される。可能性のある語句のリスト２０６上の各エントリｐには以下の３つの数が対応付けられている。
【００４４】
Ｐ（ｐ）：  可能性のある語句が出現する文書の数、
【００４５】
Ｓ（ｐ）：可能性のある語句の全インスタンスの数、及び
【００４６】
Ｍ（Ｐ）：可能性のある語句の興味を引くインスタンスの数。可能性のある語句の一例は、「interesting」であり、該可能性のある語句は文書中の隣接する内容から文法的あるいは形式的マーカー、例えば、ボールド体、下線、ハイパーリンクにおけるアンカーテキスト、引用符によって目立たせる。このような（及びその他の）目立つ外観は、各種ＨＴＭＬマークアップ言語タグ及び文法的マーカーによって示される。語句が良い語句のリスト２０８に置かれる際、これらの統計値が該語句のために保持される。
【００４７】
各種リストに加えて、良い語句に対応する共出現マトリクス２１２（Ｇ）が保持される。マトリクスＧは、ｍラｍの大きさを有し、ここでｍは良い語句の数を示す。マトリックス内の各エントリＧ（ｊ、ｋ）は、一対の良い語句（ｇj，ｇk）を表す。共出現マトリクス２１２は、当該単語ｉを中心とし ＋／SYMBOL 45 \f "Symbol" \s 12 ｈ語にわたるを二次ウィンドウ３０４について、論理的に（必ずしも物理的ではなく）、良い語句の各対（ｇj，ｇk）に対し３つの異なる数を保持する。例えば図３に示すような一実施例において、二次ウィンドウ３０４は３０語にわたっている。よって、共出現マトリクス２１２は、以下を保持する：
【００４８】
Ｒ（ｊ，ｋ）：生の共出現カウント数。語句ｇkとともに二次ウィンドウ３０４に語句ｇjが出現する回数。
【００４９】
Ｄ（ｊ，ｋ）：分離的な興味深い語句のカウント数。語句ｇj及び語句ｇkのどちらかが二次ウィンドウ内に目立つテキストとして出現する回数。
【００５０】
Ｃ（ｊ，ｋ）：接続的な興味深い語句のカウント数。語句ｇj及び語句ｇkの両方が二次ウィンドウ内に目立つテキストとして出現する回数。接続的な興味深い語句のカウント数を使用することは、語句（例えば、著作権表示）がサイドバー、フッター、あるいはヘッダーに頻繁に出現し、よって実際には他のテキストを予測するものではないという状況を避ける上で特に有効である。
【００５１】
図３の例を参照し、「stock dogs」とともに「Australian shepherds」及び「Australian Shepard Club of America」が良い語句のリスト２０８上にあると仮定する。後者の２つの語句は、両方とも二次ウィンドウ３０４内であって「stock dogs」という語句の周辺に出現している。しかしながら、「Australian Shepard Club of America」という語は、ウェブサイトへのハイパーリンク（下線で示される）のアンカーテキストとして出現している。よって、｛"stock dogs”, "Australian shepherd”｝という対に対する生の共出現カウント数がインクリメントされ、{"stock dogs”, "Australian Shepherds of America”｝に対する生の出現カウント数及び分離的な興味深い語句のカウント数は、後者が目立つテキストとして出現しているため、両方ともインクリメントされる。
【００５２】
シーケンス・ウィンドウ３０２及び二次ウィンドウ３０４を有する各文書を横断する方法は、区分の各文書に対して繰り返される。
【００５３】
区分内の文書が横断されると、索引付け作業の次の段階では、２０２において良い語句のリスト２０８を可能性のある語句のリスト２０６から更新する。可能性のある語句のリスト２０６上の可能性のある語句ｐは、該語句の出現回数及び該語句が出現する文書の数が十分な意味を持つ語句として使用されていることを示す場合、良い語句のリスト２０８に移動される。
【００５４】
一実施例において、これは以下のようにテストされる。可能性のある語句ｐは、以下の場合に、可能性のある語句のリスト２０６から削除され、良い語句のリスト２０８上に置かれる：
【００５５】
ａ）Ｐ（p）>１０及びＳ（Ｐ）＞２０（語句ｐを含む文書の数が１０より大きく、語句ｐの出現回数が２０より大きい）、または
【００５６】
ｂ）Ｍ（ｐ）＞５（語句ｐの興味深い例の数が１０より大きい）
【００５７】
これらの閾値は区分内の文書の数によって変動する。例えば、２，０００，０００個の文書を１区分内で巡回する場合、閾値はほぼ２倍になる。勿論、当業者は閾値の具体的数値あるいはそれらをテストするロジックは任意に変更可能であるを理解するであろう。
【００５８】
語句ｐが良い語句リスト２０８に適格でない場合には、該語句が悪い語句として適しているかどうか確認する。語句ｐは以下の場合に悪い語句となる：
【００５９】
ａ）語句を含む文書の数、Ｐ（ｐ）＜２
【００６０】
ｂ）語句の興味深いインスタンスの数、Ｍ（ｐ）＝０
【００６１】
これらの条件は、該語句が頻繁に出現せず、意味のある内容を示すものとして使用されているものではないことを示しており、また、これらの閾値は区分内の文書の数によって変更可能である。
【００６２】
なお、良い語句のリスト２０８は、当然、上述のように複数の単語から成る語句に加えて個々の単語を語句として含める。何故なら、語句ウィンドウ３０２の第1番目の単語は常に候補語句であり、適当なインスタンスのカウント数がインクリメントされる。したがって、索引システム１１０は自動的に個々の単語（即ち、単一の語から成る語句）及び複数の語から成る語句の両方を索引付けする。また、良い語句のリスト２０８は、ｍ個の語句について考えられる全ての組み合わせに基づく理論上の最大長さよりはるかに短くなる。システムは可能性のある語句及び良い語句を把握していればよいため、悪い語句のリストは保存する必要がない。
【００６３】
文書集合を最後に通過するまで、文書の膨大な集積における語句の使用の期待分布により、可能性のある語句のリストは比較的短くなる。よって、例えば、１０番目のパス（例えば、１０，０００，０００個の文書）までに、語句が初めて出現する場合、その時点でその語句が良い語句である可能性は少ない。該語句は使われ始めたばかりの新しい語句であり、そのため、その後の巡回中に次第に多く使われるようになる可能性がある。この場合、その各回数は増えていき、最終的に良い語句であるための閾値を満たすことがある。
【００６４】
索引付けの最終段階では、共出現マトリクス２１２から導き引き出された予測尺度を用い、２０４で良い語句のリスト２０８から不要な語句を除く。不要な語句を除かない場合、良い語句のリスト２０８は、語彙集に出現するものの、それ自体は他の語句の存在を十分に予測するものではない、あるいはそれ自体はより長い語句に続くものである多数の語句を含む可能性がある。これらのあまり良くない語句を削除する結果、良い語句が非常に強固に得られる。良い語句を識別するため、別の語句の存在を前提とした文書において１の語句が出現する可能性がより高いことを表す予測尺度を用いる。一実施例において、これは以下のように行われる：
【００６５】
上記のように、共出現マトリクス２１２は、良い語句に関連するデータを記憶したｍラｍのマトリクスである。マトリクスにおける生のｊはそれぞれ良い語句ｇjを表し、各列ｋは良い語句ｇkを表す。良い語句ｇjのそれぞれに対し、期待値E(ｇj)が算出される。期待値Eは、ｇjを含むと期待される文書集合中の文書の割合である。これは、例えば、ｇjを含む文書の数と巡回された文書集合における文書の総数Tの割合として算出される：P(j)／T。
【００６６】
上記のように、ｇjが文書に出現する毎に、ｇjを含む文書の数が更新される。E（ｇj）の値は、ｇjのカウント数がインクリメントされる毎に、あるいはこの第3段階において更新される。
【００６７】
次に、他の良い語句ｇk（例えば、マトリクスの列）のそれぞれに対して、ｇjがｇkを予測するか否か判断する。ｇjに対する予測尺度は以下のように決定される：
【００６８】
i）期待値Ｅ（ｇk）を算出する。ｇj及びｇkの期待共出現率Ｅ（ｊ，ｋ）は、これらの語句に相互の関連性がない場合、Ｅ（ｇi）＊E(ｇk)となる。
【００６９】
ii）ｇj及びｇkの実際の共出現率Ａ（ｊ，ｋ）を算出する。これは、文書の総数Ｔで生の共出現回数Ｒ（ｊ，ｋ）を除算したものである。
【００７０】
iii）実際の共出現率Ａ（ｊ，ｋ）が期待共出現率Ｅ（ｊ，ｋ）より閾値の分だけ大きい場合、ｇjはｇkを予測するものといえる。
【００７１】
一実施例において、予測尺度は情報ゲインである。よって、ｇjが存在する場合にｇkの情報ゲインIが閾値より大きい場合に語句ｇjは語句ｇkを予測する。一実施例において、これは以下のように算出される：
【００７２】
Ｉ（ｊ，ｋ）＝  Ａ（ｊ，ｋ）／Ｅ（ｊ，ｋ）
【００７３】
そして、以下の場合に語句ｇjは語句ｇkを予測する：
【００７４】
Ｉ（ｊ，ｋ）＞情報ゲイン閾値
【００７５】
一実施例において情報ゲイン閾値は１．５であり、１．１〜１．７であることが好ましい。閾値を１．０より大きくすることにより、本来なら無関係な２つの語句が任意に予測したよりも多い回数で共出現する可能性が少なくなる。
【００７６】
上記のように、任意の行ｊに対し、マトリクスGの各列ｋについて情報ゲインの算出が繰り返される。行が完了すると、良い語句ｇkのいずれについても情報ゲインが情報ゲイン閾値を超えない場合は、語句ｇjが他の良い語句を予測するものではないことを意味する。その場合、ｇjが良い語句のリスト２０８から削除され、基本的には悪い語句となる。なお、語句ｇjに対する列ｊは、該語句そのものは他の良い語句によって予測されるかもしれないため削除されない。
【００７７】
共出現マトリクス２１２の全行について解析が終了すると、本工程が終了する。
【００７８】
本段階の最終工程では、不完全な語句を削除するために良い語句のリスト２０８を切り取る。不完全な語句とは、その語句の延長しか予測しない語句であり、語句の一番左側（即ち、語句の頭の部分）から始まる語句である。語句ｐの「語句延長」は語句ｐで始まるスーパーシーケンスである。例えば、「President of」という語句は「President of the United States」、「President of Mexico」、「President of AT&T」等を予測する。後者の語句の全ては、「President of」で始まり、そのスーパーシーケンスであるため、「President of」という語句の延長である。
【００７９】
したがって、良い語句のリスト２０８に残っている各語句ｇjは、上述した情報ゲイン閾値に基づき、他のいくつかの語句を予測する。ところで、各語句ｇjに対して、索引付けシステム１１０は予測される各語句ｇkとの文字列照合を行う。文字列照合では、各予測される語句ｇkが語句ｇjの延長であるかどうか調べる。予測される語句ｇkの全てが語句ｇjの延長である場合、語句ｇjは不完全であり、良い語句のリスト２０８から削除され、不完全語句リスト２１６に追加される。よって、語句ｇjの延長ではない少なくとも１の語句ｇkがある場合、該語句ｇkは完全な語句であり、良い語句のリスト２０８に保持される。例えば、「President of the United」は、それが予測する語句は延長である「President of the United states」のみであるため、不完全な語句である。
【００８０】
実際の検索において不完全語句リスト２１６自体は非常に有用である。検索クエリを受け取ると、該クエリを不完全語句リスト２１６と照合する。クエリ（あるいはその一部）がリスト中のエントリと一致する場合、検索システム１２０は該不完全な語句の最も可能性が高い延長語句（不完全な語句に対して最も大きい情報ゲインを有する延長語句）を検索し、その延長語句をユーザに示したり、あるいは、延長語句を対象に検索することができる。例えば、検索クエリが「President of the United」である場合、検索システム１２０はユーザに自動的に「President of the United States」を検索クエリとして示す。
【００８１】
索引付け処理の最終段階が終了すると、良い語句のリスト２０８は、文書の集積において発見された多数の良い語句を含むことになる。これらの良い語句はそれぞれ少なくとも１の他の語句であって、該良い語句の延長部分ではない語句を予測する。つまり、良い語句はそれぞれ十分な頻度で独立して使用され、文書の集積において意味のある概念や考えを表す。所定の、あるいは手動で選択された語句を用いる従来のシステムと異なり、良い語句のリストは文書の集積において実際に使用されている語句を反映する。更に、新しい文書が文書集合に追加される際に上述の巡回・索引付け処理が周期的に繰り返されるため、索引付けシステム１１０は新しい語句が語彙に追加されると自動的に該新しい語句を検出する。
【００８２】
２．関連語句及び関連語句のクラスタの特定
図４に示すように、関連語句特定処理は以下の機能動作を含む。
【００８３】
４００：情報ゲイン値が大きい関連語句を特定する。
【００８４】
４０２：関連語句のクラスタを特定する。
【００８５】
４０４：クラスタ・ビットベクトル及びクラスタ番号を記憶する。
【００８６】
これらの動作について、それぞれ以下で詳細に説明する。
【００８７】
まず、共出現マトリクス２１２が、それぞれが情報ゲイン閾値よりも大きい情報ゲインを有する少なくとも１の他の語句を予測する良い語句ｇkを含む場合を想定する。そして４００で関連語句を特定するために、良い語句（ｇj、ｇk）の各組に対して、情報ゲインを関連語句閾値、例えば１００と照合する。つまり、ｇj及びｇkは以下の場合に関連語句となる：
【００８８】
Ｉ(ｇj，ｇk)＞１００
【００８９】
この大きい閾値によって、統計上期待される率よりも十分に大きい良い語句の共出現回数を特定する。統計上、これは語句ｇj及びｇkは期待される共出現率よりも多く１００回共出現することを意味する。例えば、「Monica Lewinsky」という語が文書中にあると仮定すると、「Bill Clinton」  という語は同じ文書に１００回以上出現する可能性があり、更に、「Bill Clilnton 」という語は、任意に選択された文書に出現する可能性がある。言い換えると、出現率が１００：１であるため、予測の精度は９９．９９９％である。
【００９０】
従って、関連語句閾値よりも小さいエントリ（ｇj、ｇk）はいずれも消去し、語句ｇj、ｇkは関連性がないことを示す。共出現マトリクス２１２に残されたエントリは全て関連語句である。
【００９１】
そして、共出現マトリクス２１２の各行ｇjにおける列ｇkが情報ゲイン値Ｉ（ｇj，ｇk）ごとにソートされ、最大情報ゲイン値を有する関連語句ｇkがリストの第1番目にくる。よって、このソートにより、任意のｇjに対して最も関連性の高い語句を識別する。
【００９２】
次の工程では、４０２でどの関連語句が共に関連語句のクラスタを構成するか判断する。クラスタとは、各語句が少なくとも１の他の語句に対して大きい情報ゲインを有する関連語句のグループである。一実施例において、クラスタは以下のように特定される：
【００９３】
マトリクスの各行ｇjには、語句ｇjに関連する１以上の他の語句がある。これは関連語句のグループＲjであり、ここでＲ＝｛ｇk，ｇl，．．．ｇm｝とする。
【００９４】
Ｒjにおける各関連語句に対し、索引システム１１０はRのその他の各関連語句もｇjに関連するかどうか判断する。よって、（ｇj、ｇk）がゼロではない場合、ｇj、ｇk及びｇlはクラスタの一部である。このクラスタ検査はＲの各組（ｇl、ｇm）について繰り返し行われる。
【００９５】
例えば、「Bill Clinton」という良い語句が、該語句に対するそれぞれの情報ゲインが関連語句閾値より大きいという理由で「President」及び「Monica Lewinsky」という語句と関連性があると仮定する。更に、「Monica Lewinsky」という語句が「purse designer」という語句に関連すると仮定する。そして、これらの語句はグループＲを構成する。クラスタを特定するために、索引システム１１０は、これらの語句の他の語句に対するそれぞれの情報ゲインを、該他の語句の情報ゲインを求めることにより確認する。よって、索引システム１１０は、Ｒの全ての組に対して、情報ゲインI（「President」、「Monica Lewinsky）、I（「Presidnet」、「purse designer」）等を確認する。この例では、「Bill Clinton」、「President」及び「Monica Lewinsky」が１つのクラスタを構成し、「Bill Clinton」及び「President」が第２のクラスタを構成し、「Monica Lewinsky」及び「purse designer」が第３のクラスタを構成し、「Monica Lewinsky」、「Bill Clinton」及び「purse designer」が第４のクラスタを構成する。何故なら、「Bill Clinton」は「purse desiner」を十分な情報ゲインで予測しない一方、「Monica Lewinsky」はこれら２つの語句を両方とも予測しないからである。
【００９６】
４０４でクラスタ情報を記録するために、各クラスタに固有のクラスタ番号（クラスタＩＤ）を付与する。そして、この情報を各良い語句ｇjと一緒に記録する。
【００９７】
一実施例において、クラスタ番号は、語句間の直交関係を示すクラスタ・ビットベクトルによって決定される。クラスタ・ビットベクトルは、長さｎのビットのシーケンスであり、ｎは良い語句のリスト２０８に含まれる良い語句の数である。任意の良い語句ｇjに対し、ビット位置はソートされたｇjの関連語句Ｒに対応する。Ｒの関連語句ｇkが語句ｇjと同じクラスタにある場合、ビットがセットされる。一般に、これは、ｇjとｇkとの間の何れかの方向に情報ゲインがある場合、クラスタ・ビットベクトル中の対応ビットがセットされることを意味する。
【００９８】
クラスタ番号は、結果として得られるビット列の値である。これには、複数あるいは１方向の情報ゲインを有する関連語句が同じクラスタに現れるという特徴がある。
【００９９】
上記語句を用いたクラスタ・ビットベクトルの例を以下に挙げる。
【表１】
2008529138.tif 000003
【０１００】
要約すると、本処理の終了後、各良い語句ｇjに対し、一組の関連語句Rが特定され、該関連語句は情報ゲインＩ（ｇj、ｇk）の高い方から順に記憶される。更に、各良い語句ｇjに対して、その値が語句ｇjが構成要素である主クラスタを識別するクラスタ番号であるクラスタ・ビットベクトル、及び、Rにおける関連語句のうち何れがgjと共通のクラスタにあるかを示す直交値（各ビット位置に対して１あるいは０）がある。よって、上記例では、「Bill Clinton」という語句の行におけるビットの値に基づき、「Bill Clinton」、「President」及び「Monica Lewinsky」がクラスタ１４に含まれる。
【０１０１】
この情報を記憶するには、２つの基本的な表現を利用することができる。まず、上記のように、情報は以下の共出現マトリクス２１２に記憶することができる：
【０１０２】
エントリＧ［行ｊ、列ｋ］＝  （Ｉ（ｊ，ｋ），  クラスタ番号、クラスタ・ビットベクトル）  
【０１０３】
あるいは、マトリクス表現を使用せず、各行が以下のように良い語句を表す良い語句のリスト２０８に全情報を記憶してもよい：
【０１０４】
語句行ｊ＝リスト［語句ｇk，（Ｉ（ｊ，ｋ）、クラスタ番号、クラスタ・ビットベクトル）］
【０１０５】
この方法によって、クラスタに有用な構成が実現される。まず、厳格に--多くの場合恣意的に--定義されたトピック及び概念の階層の代わりに、この方法では、語句によって示されるトピックが、いくつかの語句が他の多数の語句に関連し、いくつかの語句がより限られた範囲を有するという複雑な関係の図式を形成すると認識され、該関係は相互（各語句が他の語句を予測する）でも一方向（１の語句が他の語句を予測するが逆はない）の関係でもよい。その結果、クラスタは各良い語句に対して「局所的」であると特徴付けることができ、いくつかのクラスタは１以上の良い語句を共通して含むことによって一部重複する。
【０１０６】
任意の良い語句ｇｊに対して、関連語句を情報ゲインによって順位付けするこで、語句のクラスタを命名するための分類法が実現される：クラスタ名は、クラスタにおける最大情報ゲインを有する関連語句の名である。
【０１０７】
上述の方法によって、文書集合に出現する重要な語句を特定するための非常に強固な方法が提供され、また実際の実務ではこれらの関連語句が自然な「クラスタ」において共に使用される方法が提供されるため有益である。その結果、関連語句をデータ駆動によりクラスタリングする方法により、多くのシステムで一般的に行われている関連用語及び概念について手動で行なう「編集上の」選別に固有な偏りが回避される。
【０１０８】
３．語句及び関連語句を含む文書の索引付け
良い語句のリスト２０８が関連語句及びクラスタに関連する情報を含むと仮定すると、索引システム１１０の次の機能的動作は、文書集合における文書を良い語句及びクラスタについて索引付けし、更新された情報を一次索引１５０及び二次索引１５２に記憶することである。図５は、文書を索引付けする以下の機能的段階から成る処理を示す：
【０１０９】
５００：文書を、該文書内で見つけられた良い語句のリストに登録する。
【０１１０】
５０２：関連語句及び二次関連語句のインスタンス数及び関連するビットベクトルを更新する。
【０１１１】
５０４：索引のエントリを登録リストのサイズに応じて並べ替える。
【０１１２】
５０６：  情報検索スコアあるいは特徴値によって各登録リストの索引エントリを順位付けする。
【０１１３】
５０８：各登録リストをプライマリサーバ１５０とセカンダリサーバ１５２との間で区切る。
【０１１４】
以下、これらの段階について更に詳しく説明する。
【０１１５】
前述同様、一組の文書を横断あるいは巡回するが、該一組の文書は同一の文書でも違う文書でも良い。任意の文書ｄに対して、上述の方法により５００において長さｎのシーケンス・ウィンドウ３０２で単語毎に位置ｉから横断する。
【０１１６】
任意の語句ウィンドウ３０２において、該ウィンドウにおける全ての良い語句を位置ｉから特定する。良い語句はそれぞれｇiと表される。よって、ｇ１が第1番目の良い語句であり、ｇ２は第2番目の良い語句であり、以下同様である。
【０１１７】
各良い語句ｇi（例えば、ｇ１「President」及びｇ４「President of ATT」）に対して、文書識別子（例えば、ＵＲＬ）を索引１５０における良い語句ｇiの登録リストに書き込む。この更新により、良い語句ｇiが特定の文書に出現していることが確認される。
【０１１８】
一実施例では良い語句ｇjの登録リストは以下の論理形式をとる：
【０１１９】
語句ｇj：リスト：（文書ｄ、［リスト：関連語句数］［関連語句情報］）
【０１２０】
各良い語句ｇjに対して、該語句が出現する文書ｄのリストが存在する。各文書に対して、文書ｄに出現する語句ｇjの関連語句Ｒの出現回数のカウントのリストが存在する。
【０１２１】
一実施例において、関連語句情報は関連語句ビットベクトルである。このビットベクトルは、「バイナリビット」ベクトルと特徴付けることができ、該ベクトルでは各関連語句ｇkに対して２つのビット位置ｇk−１及びｇk−２が存在する。第1のビット位置には、関連語句ｇkが文書ｄに存在するか否かを示すフラグが記憶される（即ち、文書ｄにおけるｇkのカウントは０より大きい）。第２のビット位置には、ｇkの関連語句ｇlもまた文書ｄに存在するか否かを示すフラグが記憶される。ここでは、語句ｇjの関連語句ｇkの関連語句ｇlを「ｇjの二次関連語句」と称する。カウントとビット位置は、（情報ゲインが大きい方から順にソートされた）Ｒにおける語句の正規順序に対応する。このソート順序には、ｇjによって最も予測されやすい関連語句ｇkを関連語句ビットベクトルの最上位ビットに関連させ、ｇjによって最も予測されにくいｇlを最下位ビットに関連付ける効果がある。
【０１２２】
なお、所定の語句ｇに対し、関連語句ビットベクトルの長さ、及びベクトルの各ビットに対する関連語句の対応付けは、ｇを含む全ての文書に関して同様である。これにより、システムがｇを含む何れかの（あるいは全ての）文書について関連語句ビットベクトルを容易に比較し、どの文書が所定の関連語句を含むか確認することができる。これは、検索クエリに対して文書を特定する検索処理を容易にするために有益である。従って、所定の文書は多数の異なる語句の登録リストに出現し、該文書の関連語句ベクトルは登録リストを持つ語句に固有のものである。この側面により、個々の語句及び文書に対する関連語句ビットベクトルの局所性が維持される。
【０１２３】
従って、次の段階５０２では、文書における現在の索引位置の二次ウィンドウ３０４（前述同様、＋／SYMBOL 45 \f "Symbol" \s 12Ｋ個の単語、例えば３０個の単語から成る二次ウィンドウ）を、例えばｉ−Ｋからｉ＋Ｋまで横断する。二次ウィンドウ３０４に出現するｇiの各関連語句ｇkに対し、索引システム１１０は、関連語句カウントにおける文書ｄに関するｇkのカウントをインクリメントする。ｇiが該文書の更に後方の箇所に出現し、後の二次ウィンドウ内から関連語句が再び見つけ出される場合、カウントが更にインクリメントされる。
【０１２４】
上で述べたように、関連語句ビットマップにおいて対応する第1ビットｇk−１は、カウントに基づいて設定され、ｇkのカウントが０より大きい場合はビットが１に設定され、カウントが０である場合はビットが０に設定される。
【０１２５】
次に、索引１５０で関連語句ｇkを検索し、ｇkの登録リストにおいて文書ｄのエントリを特定し、ｇkの二次関連語句カウント（あるいはビット）をいずれの関連語句についてもチェックすることにより、第２ビットｇk−２が設定される。これらの二次関連語句カウント／ビットの何れかが設定される場合、ｇjの二次関連語句もまた文書ｄに存在することを示す。
【０１２６】
上記方法により文書ｄの処理が終了すると、索引システム１１０は以下に挙げるものを特定していることになる：
【０１２７】
i)  文書ｄにおける各良い語句ｇj
【０１２８】
ii)  各良い語句ｇjについて、その関連語句ｇkのうち何れが文書ｄに存在するか
【０１２９】
iii)    文書ｄに存在する各良い語句ｇkについて、その関連語句ｇk（ｇjの二次関連語句）のうち何れがまた文書ｄに存在するか
【０１３０】
a）索引の分割
索引１５０の各語句には、文書の集積における出現回数に基づき語句番号が付与される。語句の出現回数が多ければ多いほど、索引で付与される語句番号は小さくなる。そして、索引システム１１０は５０４において一次索引１５０の登録リスト２１４全てを、各登録リストにおいて列挙されている文書の数に応じて多いものから順にソートするため、最も出現頻度の高い語句が最も小さい語句番号を持ち、一次索引１５０の第１番目にくる。上で述べたように、一次索引１５０はＭ１台のプライマリサーバに分散される。ディスクの競合を減らすため、語句は、ハッシュ機能、例えばhash_number MOD M1 によりこれらの機器に分散する。
【０１３１】
システムにより索引付け可能な文書の数を著しく増加させるため、一次索引１５０は、更に、登録リスト２１４の各々を選択的に分割するように処理される。上で述べたように、各語句の登録リストは文書のリストを含む。登録リストにおける各文書は、５０６において該語句に関して情報検索型スコアが付与される。ただし、該スコアは算出され、登録リストにおける文書はこのスコアによって大きい方から順に順位付けされ、最も高い順位を付けられた文書が登録リストの第1番目にくるようにする。このように文書を予め順位付けすることは、検索クエリに対して文書を検索する際の性能の向上に特に有効である。
【０１３２】
文書を予め順位付けするためのスコアリング・アルゴリズムは、検索システム１２０において関連性スコアを生成するために使用される同様の基本的関連性スコアリング・アルゴリズムとすることができる。一実施例において、米国特許第６，２８５，９９９号で説明されているように、ＩＲスコアはページ順位アルゴリズムに基づいている。あるいは、もしくは更に、文書のＩＲ関連の属性の数についての統計値、例えば内リンク数、外リンク数、文書の長さ等も記憶することができ、単独で、あるいは組み合わせて使用することにより文書を順位付けすることができる。例えば、内リンク数によって多い方から順に文書を順位付けすることができる。一次索引１５０からの可能な限り一番速い情報検索を更に容易にするためには、各登録リスト２１４のエントリを、ＩＲ型スコアによる順位付けにおいて適当なプライマリサーバ上に物理的に記憶してもよい。
【０１３３】
ここで、任意に語句に対して最も高いスコアが付けられた文書が登録リストの第一番目にくると仮定した場合、登録リスト２１４は５０８で一次索引１５０と二次索引１５２に分割される。最初のＫ個の文書に対する登録リストのエントリはプライマリサーバ１５０に記憶されたままである一方、残りのｎ＞Ｋ個の文書に対する登録リストのエントリは二次索引１５２に記憶され、一次索引１５０の登録リストの末尾から削除される。一実施例において、Ｋは３２，７６８（３２ｋ）に設定されるが、それより大きい値あるいは小さい値をＫとすることもできる。登録リストが一次索引と二次索引に分割されている語句を「一般」語句と呼び、登録リストが分割されていない語句を「希少」語句と呼ぶ。一次索引１５０に記憶された登録リストの部分は主登録リストと呼ばれ、主エントリを含み、二次索引１５２に記憶された登録リストの部分は二次登録リストと呼ばれ二次エントリを含む。所定の登録リスト２１４の二次エントリは、語句番号、例えば語句番号ＭＯＤ  Ｍ２の別のハッシュ機能に応じてセカンダリサーバに割り当てられる。セカンダリサーバＩＤはプライマリサーバ上の登録リストに記憶され、これにより検索システム１２０は必要に応じて適当なセカンダリサーバに直ちにアクセスできるようになる。セカンダリサーバの１つに記憶されている各語句登録リストに対して、（一次索引１５０における関連性順位付けとは対照的に）二次エントリが文書番号の小さいものから順に物理的に記憶される。好ましくは、二次エントリには関連性についての情報が記憶されず、そのため例えば文書番号及び文書の場所を示すコード（例えば、ＵＲＬ）のような最小限のデータのみがエントリに含まれる。順位付け・分割工程は、各語句に対して順次実行することができ、あるいは全ての（あるいは多くの）語句を最初に順位付けし、次に分割することもでき、アルゴリズム設計は設計上の選択に過ぎず、上記変更例は均等なものであると考えられる。順位付け・分割工程は、一組の文書に対する各索引付け操作の間に行われるため、索引付け操作において新しい文書によって更新された語句は再順位付け・再分割される。また、その他の最適化及び動作も可能である。
【０１３４】
一実施例において登録リスト２１４の各文書に対する一次索引１５０に記憶された文書属性の選択は変更可能であり、特に、一次索引の登録リスト２１４の末尾に向かうにつれて減らすことができる。言い換えると、関連性スコア（あるいはその他の関連性に基づく属性）に基づき登録リストにおいて高い順位が付けられた文書は、登録リストの文書エントリに記憶された文書属性の全てあるいは殆どを持つ。一次索引の登録リスト２１４の末尾近くの文書は、そのような記憶された属性をより限られた数しか持たない。
【０１３５】
一実施例において、一次索引１５０の各登録リスト２１４は、それぞれ長さｍ、３ｍ、５ｍの３つの部分（あるいは段）を有し、ここでｍは文書エントリの数を示す。本実施例において、各部分は上で述べたようにｍ＝Ｋである長さＫを有し、一次索引全体は９Ｋ個のエントリを有することが望ましく、二次索引はｎ＞９Ｋである二次エントリを有する。
【０１３６】
第一の部分（最初のｍ個のエントリ）には、所定の語句の登録リストにおける各文書エントリに対して以下の関連性の属性が記憶される。
１．文書の関連性スコア（例えば、ページ順位）
２.  文書における上記語句の総出現回数
３．上記語句を含む最大１０，０００個のアンカー文書の順位付けリスト、及び各アンカー文書に対して、その関連性スコア（例えば、ページ順位）、及びアンカーテキスト自体
４．各語句の出現位置、及び各出現語句について、該出現語句がタイトル、ボールド体、標題であるか、ＵＲＬ、本文、サイドバー、フッター、広告にあるか、大文字になっているか、あるいはその他のＨＴＭＬマークアップにあるかを示す一組のフラグ
【０１３７】
第2の部分（次の３ｍ個のエントリ）には、項目１〜３が記憶される。
【０１３８】
第３の部分（最後の５ｍ個のエントリ）には、項目１のみが記憶される。
【０１３９】
各登録リスト２１４の末尾近くの文書は特定の語句に対する関連性がより低いものである（より低い関連性スコア）と既に判断されているため、各登録リスト２１４における後ろの箇所に記憶される文書属性は故意に減らしても構わない。よって、関連性に関する特徴の全てを記憶する必要はない。
【０１４０】
上述の記憶方法により、従来の技術に比較して、ハードディスクにおける所定の記憶容量で、はるかに多くのエントリを記憶することができるようになる。第一に、各文書の各語句に対する語句位置情報を削除することにより、所定の一組の文書に必要な記憶容量を５０％削減することができ、そのため記憶可能な文書の数を実質的に２倍にすることができる。第二に、登録リストを一次索引及び二次索引で分割し、一次索引のみに関連情報を記憶することで更に節約できる。多くの語句は、１００，０００個、更に１，０００，０００個を超える文書をその登録リストに含む。限られた数のエントリのみに対する関連情報を一次索引に記憶することにより、検索で返される可能性が低い文書に必要な記憶容量分をなくすことができる。これにより、記憶できる文書の数を約１０倍に増加できる。最後に、各登録リスト２１４におけるより関連性の低い（より順位が低い）文書に対して索引１５０により関連性が低い情報を選択的に記憶することにより、更なる節約（必要な記憶容量の２５〜５０％の削減）が達成できる。
【０１４１】
ｂ）文書のトピックの決定
文書を語句により索引付けし、クラスタ情報を利用することにより、索引システム１１０に更にもう一つの利点が提供されるが、該利点とは、関連語句情報に基づき文書が関連するトピックを決定する機能である。
【０１４２】
所定の良い語句ｇj及び所定の文書ｄに対して、登録リストのエントリが以下のようになっていると仮定する：
【０１４３】
ｇj：文書ｄ：関連語句カウント＝｛３，４，３，０，０，３，１，１，０｝
【０１４４】
関連語句ビットベクトル＝｛１１  １１  １０  ００  ００  １０  １０  １０  ０１｝
【０１４５】
ここで、関連語句ビットベクトルはバイナリビットの対で表される。
【０１４６】
関連語句ビットベクトルから、文書ｄの一次トピック及び二次トピックが決定できる。一次トピックはビット対（１，１）で示され、二次トピックはビット対（１、０）で示される。関連語句ビット対（１,１）は、該ビット対に対する関連語句ｇkが、関連語句ｇjとともに文書ｄに存在することを示す。これにより、文書ｄの作成者が文書を作成する際にいくつかの関連語句ｇj、ｇk及びｇlを一緒に使用したことを意味すると考えられる。ビット対（１，0）は、ｇj及びｇkの両方が存在するが、ｇkの二次関連語句は存在しないため、重要性がより低いトピックであることを示す。
【０１４７】
ｃ）アーカーブ検索のための文書のインスタンスの索引付け
本発明の別の実施例では、索引に履歴文書を記憶し保持する機能が実現されるため、個々の文書あるいはページのデータ特有のインスタンス（バージョン）のアーカーブ検索が可能になる。この機能には各種有効な用途があり、例えば、ユーザがある特定の日付範囲内で文書を検索できるようにしたり、検索システム１２０が検索クエリに対して文書を評価する際及び検索結果を整理する際にデータあるいはバージョンに関連する関連性情報を使用することができるようにしたりする。
【０１４８】
本実施例において、文書識別子は、日付間隔に関する文書の同一性を符号化する。文書が索引システム１１０によって初めて巡回されると、文書識別子が文書のＵＲＬ及び文書の日付印のハッシュ、例えばＭＤ５（ＵＲＬ、最初の日付）として記憶される。文書インスタンスが有効であると思われる日付範囲から成る日付範囲フィールドが文書の特定のインスタンスに関連付けられる。日付範囲は、文書が有効だと思われる最初の日付（索引付けの日付）、及び文書が有効だと思われる最後の日付から成る一組の日付（例えば、１１−０１−０４、１２−１５−０４）として記載することができる。あるいは、日付範囲は、最初の日付及び該最初の日付に続く日数を示す数として記載することもできる（例えば、１１−０１−０４、４５）。日付は、任意の便利なフォーマット、一連の日付あるいは日数番号で記載することができる。文書が現在有効な文書である期間において、第二の値は状態フラグあるいはトークン（ヌル値を含む）であり、該状態を示す。これを現在の期間と呼ぶ。例えば、（１１−０１−０４、“open”）は、文書が現在有効であることを示す。これは、最初の日付後に日数制限がある検索に文書が適合することを示す。実施態様に関わらず、所定の日付間隔の最後の日付は、「open date」と呼び、所定の間隔の最後の日付は「closed date」と呼ぶことができる。
【０１４９】
続く索引システム１１０による索引付け操作において、索引システム１１０は文書が変更されたか否か判断する。文書に変更がない場合、索引システム１１０は文書に何も操作を行わない。文書に変更があった場合（文書の新しいインスタンスあるいはバージョン）、索引システム１１０は文書を再度索引付けする。再度の索引付け次第、索引システム１１０は、現在の日付から１日を引いた日付にオープン状態フラグを変更することにより、現在の期間をクローズする。例えば、索引システム１１０が１２／１６／０４に文書を索引付けし、文書が変更されたと判断した場合、現在の間隔（11−０１−０４，１２−１５−０４）はクローズされ、新しい現在の間隔、例えば（１２−１６−０４、"open"）が作成される。索引システム１１０は、文書に対する各日付範囲を、それに対応する索引付けされた日付範囲の関連性データ（例えば、語句、関連性統計値、文書ページ内リンク等）と一緒に保持する。よって、各日付範囲及び一組の関連性データは、文書の特定のインスタンスあるいはバージョンに関連付けられる。所定の文書に対する日付期間について、索引システムが固有の文書識別子、例えばＭＤ５（ＵＲＬ、最初の日付）を保持することにより、適当なキャッシュ文書インスタンスを検索できるようにする。一次索引及び二次索引を用いる実施例では、索引付け操作が完了すると、一次索引の登録リスト２１４にスコアが再度付けられ、再順位付けされ、再分割される。
【０１５０】
前回の索引付け操作後に所定の文書に変更があったか否かについての判断は、統計的法則、文法上の規則、あるいは同様の経験則を用いる等、あらゆる方法で行われる。一実施例において、索引システム１１０は、文書に変更があったか否かを判断するために文書の語句を利用する。文書が索引付される度に、日付範囲情報に関連して上からＮ個のトピックが、例えば、日付範囲（１１−０４−０４、１２−１５−０４）に対しては上から２０個のトピックがリストとして示され、保持される。そして、索引付けされているインスタンスのトピックリストが先の文書インスタンス、好ましくは直前にクローズされた日付範囲と照合される。トピックのＭ％以上が変更された場合（例えば、５％）、文書に変更があったものと考えられ、全ての語句に対して再度索引付けされる。なお、文書に変更があったか否かについての判断を別の方法で行うこともでき、語句に基づいた索引付けは必ずしも行わなくてよい。例えば、文書の長さの変更、どの単語が最も頻繁に出現するかという点に関する変更、用語の出現頻度の変更、ＨＴＭＬマークアップの種類数の変更、またはその他の文書の構造や内容の尺度に基づいて一連の統計的法則を用いることができる。
【０１５１】
III.  検索システム
検索システム１２０はクエリを受け取り、該クエリに関連する文書を検索する機能を有し、一組の検索結果における該文書のリスト（該文書へのリンクを含む）を提供する。図６は、検索システム１２０の以下の主な機能動作を示す：
【０１５２】
６００：クエリにおける語句を特定する
【０１５３】
６０２：クエリの語句に関連する文書を検索する
【０１５４】
６０４：検索結果の文書を語句に従って順位付けする
【０１５５】
上記段階の各々について以下で詳細に説明する。
【０１５６】
１．クエリ及びクエリ延長における語句の特定
１．検索システム１２０の第1段階６００では、効果的に索引を検索するためにクエリに存在する語句を特定する。この項では以下の専門用語を用いる：
【０１５７】
ｑ：  入力され、検索システム１２０によって受け取られたクエリ  
【０１５８】
Ｑｐ：クエリに存在する語句
【０１５９】
Ｑｒ：  Ｑｐの関連語句
【０１６０】
Ｑｅ：  Ｑｐの語句拡張部分
【０１６１】
Ｑ：  ＱｐとＱｒの集合
【０１６２】
クライアント１９０から、ある最大数までの文字あるいは単語を含むクエリｑを受け取る。
【０１６３】
検索システム１２０はサイズＮ（例えば、５）の語句ウィンドウを用いてクエリｑの単語を横断する。語句ウィンドウは、クエリの最初の単語から始まり、右に向かって単語Ｎ個分だけ伸びる。そして、Ｍがクエリにおける単語数を示す場合、このウィンドウは右にＭ−Ｎ回シフトされる。
【０１６４】
各ウィンドウ位置には、ウィンドウ内にＮ個（あるいはそれよりも少ない数の）単語がある。これらの単語は、クエリの語句である可能性があるものを構成する。この可能性がある語句を良い語句のリスト２０８において検索し、それが良い語句であるか否か判断する。この可能性がある語句が良い語句のリスト２０８にある場合には、語句番号を語句に対して返し、該語句は候補語句となる。
【０１６５】
各ウィンドウにおける全ての可能性のある語句を調べて、それらが良い候補語句であるか否か決定した後は、検索システム１２０はクエリの対応語句に対して一組の語句番号を有することになる。そして、これらの語句番号が（降順に）ソートされる。
【０１６６】
第1候補となる語句としての最も大きい語句番号から、検索システム１２０は、ソートされたリストにおいて一定の数値距離内に別の候補語句があるか、即ち、語句番号の差が閾値、例えば２０，０００以内であるか否かについて判断する。もし、そうである場合には、クエリにおいて一番左の語句が有効なクエリ語句Ｑｐとして選択される。このクエリ語句及びその二次語句の全ては候補リストから削除され、該リストは再ソートされ処理が繰り返される。本処理の結果、一組の有効なクエリ語句Ｑｐが得られる。
【０１６７】
例えば、検索クエリが「Hillary Rodham Clinton Bill on the Senater Floor」であると仮定する。検索システム１２０は以下の候補語句を特定する：「Hillary Rodham Clinto Bill on」、「Hillary Rodham Clinton Bill」及び「Hillary Rodham Clinton」。最初の２つは捨てられ、最後の１つが有効なクエリ語句として残される。次に、検索システム１２０は、「Bill on the Senater Floor」及び副語句「Bill on the Senater」、「Bill on the」、「Bill on」、「Bill」を特定し、「Bill」を有効なクエリ語句Ｑｐとして選択する。最後に、検索システム１２０は、「on the Senater Floor」を解析し、「Senater Floor」を有効なクエリ語句として特定する。
【０１６８】
次に、検索システム１２０は有効な語句Ｑｐを調整して大文字表記を行う。クエリを解析する際、検索システム１２０は各有効な語句において大文字で始められそうなものを特定する。これは、「united states」を「United States of America」とするような周知の大文字表を用いて、あるいは文法に基づく大文字表記アルゴリズムを用いて行われる。これにより、正しく大文字表記された一組のクエリ語句が生成される。
【０１６９】
次に、検索システム１２０は、大文字表記された語句に対して2回目の横断を行い、語及びその副語句が一組のクエリ語句において存在する場合、一番左に位置し、かつ大文字表記される語句のみを選択する。例えば、「president of the United States」の検索は、「President of the United States」として大文字表記される。
【０１７０】
次の段階において、検索システム１２０は６２０でクエリ語句Ｑに関連する文書を特定する。そして、検索語句１２０はクエリ語句Ｑの登録リストを検索し、必要に応じて、該リストを横断することにより、クエリ語句に対する登録リストの全てにどの文書が出現するか判断する。クエリにおける語句Ｑが一組の語句拡張部分Ｑｅ（以下で更に詳しく説明する）を有する場合、検索システム１２０は。登録リストを横断する前に、まず該語句拡張部分の登録リストの集合を作成する。検索システム１２０は、上で述べたように、不完全な語句のリスト１２６において各クエリ語句Ｑを検索することにより語句拡張部分を特定する。
【０１７１】
一次索引１５０及び二次索引１５２を用いて、検索システム１２０は更に横断作業を最適化することができる。クエリ語句が一般語句であるか希少語句であるかに基づいて検索システム１２０が行う必要がある横断解析には４つの一般的な場合がある。
【０１７２】
第１の場合は、単一のクエリ語句に対するものであり、該語句は一般語句でも希少語句でもよい。この場合、検索システム１２０は、語句の登録リストの最初のエントリのうち選択された限られた数（例えば、１００や１，０００）を一次索引１５０から順位付け段階６０４に渡し、最終的な順位付けを行う。順位付け段階では、文書が既に順位付けされているため、順位付け作業を最適化することができる。あるいは、文書が語句に対する関連性によって予め順位付けされているため、一組の文書を検索結果として直接提供することができ、実質的に瞬時の結果をユーザに提供することができる。
【０１７３】
第２の場合は、２つの一般語句であるクエリ語句がある場合である。ここで、検索システム１２０は一次索引１５０の各語句に対する登録リスト２１４にアクセスし、これらのリストを横断して最終的な文書リストを作成し、該文書リストは順位付け段階６０４に渡され、文書に関連付けられた一組の関連性の属性に基づき関連性のスコアが付される。各登録リストには少なくともＫ個の文書が含まれるため、十分な数の文書が両方の語句を含む可能性が非常に高く、よって、二次索引１５２の二次エントリを横断する必要はない。これにより、検索に要する時間が更に短縮される。
【０１７４】
第３の場合は、２つの生のクエリ語句がある場合である。この場合は、各語句に対する登録リスト全体が一次索引に記憶されるため、第2のケアと同様に処理が行われる。
【０１７５】
最後の場合は、有効なクエリ語句が一般語句及び希少語句から成る場合である。この場合、検索システム１２０は、まず、両方の語句に対する一次索引１５０から登録リスト２１４を横断し、第１の組あるいは共通する文書を作成する。次に、検索システム１２０は、希少な語句に対する登録リストを一般語句に対する二次エントリ（既に文書番号の順に記憶されている）とともに横断し、共通する文書の第2組を作成する。この２つの組は統合され、順位付け段階に渡される。
【０１７６】
２以上のクエリ語句がある全ての場合は、上に述べた方法により１回の連続的な横断によって還元的に対処することができる。
【０１７７】
２．順位付け
a)  含まれる語句に基づく文書の順位付け
【０１７８】
検索システム１２０は、各文書の関連語句ビットベクトルにおける語句情報及びクエリ語句に対するクラスタ・ビットベクトルとともに関連性情報及び文書属性を利用して検索結果における文書を順位付けする順位付け段階６０４を提供する。この方法では、文書に含まれる語句、砕けた言い方では「ボディ・ヒット」に応じて文書を順位付けする。
【０１７９】
上で述べたように、ある所定の語句ｇjに対し、該ｇｊの登録リストにおける各文書ｄは、どの関連語句ｇk及びどの二次関連語句ｇlが文書ｄに存在するかを特定する対応関連語句ビットベクトルを有する。所定の文書に存在する関連語句及び二次関連語句が多ければ多いほど、該語句に対する文書の関連語句ビットベクトルに設定されるビットが多くなる。設定されるビットが多ければ多いほど、関連語句ビットベクトルの数値は大きくなる。
【０１８０】
従って、一実施例において、検索システム１２０は検索結果の文書をその関連語句ビットベクトルに応じてソートする。クエリ語句Ｑに対する関連性が最も高い語句を含む文書は最も高い関連語句ビットベクトルを有し、これらの文書は検索結果において最も高い順位が付けられた文書となる。
【０１８１】
この方法は、意味論的にこれらの文書はクエリ語句に対してトピックの点で最も高い関連性を有するため、望ましい。なお、この方法では、入力されたクエリ語句ｑが頻繁に出現しない文書であっても、関連文書を特定し該文書を順位付けするために関連語句情報を利用しているので、高い関連性を持つ文書を提供できる。入力されたクエリ語句が頻繁に出現しない文書は、クエリ語句に関連する多数の語句を含むため、クエリ単語及び語句だけは頻繁に出現するが関連語句は含まれない文書よりも高い関連性を有する場合がある。
【０１８２】
第２の実施例において、検索システム１２０は、文書がクエリ語句Ｑのどの関連語句を含むかに応じて検索結果の各文書にスコアを付与する。これは以下のように行われる。
【０１８３】
各クエリ語句Ｑを想定すると、語句特定処理において特定されるように、ある数Ｎの関連語句Ｑｒが存在する。上で述べたように、関連クエリ語句Ｑｒはクエリ語句Ｑからの情報ゲインに応じて順位付けされる。そして、これらの関連語句には点数が付与され、第１の関連語句Ｑｒ１（即ち、Ｑからの情報ゲインが最も高い関連語句Ｑｒ）にはＮ点が付与され、次の関連語句Ｑｒ２にはＮ−１点が付与され、Ｑｒ３にはＮ−２点が付与され、以下同様に続き、最後の関連語句ＱｒＮには１点が付与される。
【０１８４】
次に、クエリ語句Ｑのどの関連語句Ｑｒが存在するかを判断し、そのような関連語句Ｑｒの各々に付与された点数を文書に付与することにより、検索結果の各文書に点数が付けられる。そして、文書は点数の高いほうから順にソートされる。
【０１８５】
更に改良した方法として、検索結果１２０は検索結果から特定の文書を選択することができる。文書が多数の異なるトピックに関連している場合があるが、これは特に文書が比較的長い場合である。多くの場合、ユーザは、多数の異なるトピックに関連する文書よりも、クエリに表された単一のトピックにポイントが置かれている文書を好む。
【０１８６】
後者のような文書を選択するために、検索システム１２０はクエリ語句のクラスタ・ビットベクトルにおけるクラスタ情報を利用し、文書に閾値より大きい数のクラスタが含まれている文書があれば削除する。例えば、検索システム１２０は３以上のクラスタを含む文書があれば削除することができる。このクラスタ閾値は予め設定することができ、あるいはユーザが検索パラメータとして設定することもできる。
【０１８７】
ｂ）アンカー語句に基づく文書の順位付け
１の文書におけるクエリ語句のボディ・ヒットに基づき検索結果の文書を順位付けすることに加えて、一実施例においては、検索システム１２０が他文書へのアンカーにおけるクエリ語句Ｑ及び関連クエリ語句Ｑｒの出現に基づき文書を順位付けする。一実施例において、検索システム１２０は、ボディ・ヒット・スコア及びアンカー・ヒット・スコアという２つのスコアの関数（例えば、一時結合）であるスコアを各文書に対して算出する。
【０１８８】
例えば、所定の文書に対する文書スコアは以下のように算出できる：
【０１８９】
スコア＝０．３０＊(ボディ・ヒット・スコア)＋０．７０＊(アンカー・ヒット・スコア)
【０１９０】
０．３０及び０．７０という重みは任意で調整できる。１の文書に対するボディ・ヒット・スコアは、クエリ語句Ｑｐを想定した場合、上で述べたように、該文書に対する最も高い値の関連語句ビットベクトルの数値である。あるいは、この値は、索引１５０で各クエリ語句Ｑを検索し、該クエリ語句Ｑの登録リストから文書にアクセスし、関連ビットベクトルにアクセスすることにより、検索システム１２０が直接的に得ることもできる。
【０１９１】
文書ｄのアンカー・ヒット・スコアは、クエリ語句Ｑの関連語句ビットベクトルの関数であり、Ｑは文書ｄを参照する文書におけるアンカー語句である。文書集合の文書を索引付けする際、索引システム１１０は、各語句に対して、該語句が外リンクのアンカーテキストである文書のリストを保持し、また、各文書に対して、他の文書からのリンクのリスト（及び関連するアンカーテキスト）を保持する。１の文書に対するリンクは、他の文書（参照文書）からある文書への参照（例えば、ハイパーリンク）である。
【０１９２】
そして、所定の文書ｄに対してアンカー・ヒット・スコアを決定するために、検索システム１２０は、アンカー語句Ｑごとに索引に列挙された一組の参照文書Ｒ（ｉ＝１は参照文書の数）について繰り返し、以下の積を求める：
【０１９３】
Ｒi．Ｑ.関連語句ビットベクトル＊Ｄ．Ｑ.関連語句ビットベクトル
【０１９４】
積の値は、アンカー語句Ｑが文書Ｄに対してどの程度トピックを表しているかを示すスコアである。このスコアをここでは「インバウンドスコア要素」と呼ぶ。この積は、現在の文書Ｄの関連ビットベクトルを参照文書Ｒのアンカー語句の関連ビットベクトルで実質上重み付けするものである。参照文書Ｒ自体がクエリ語句Ｑに関連する場合（よって、より大きい値の関連語句ビットベクトルを有する場合、現在の文書Ｄのスコアの重要性が増加する。そして、ボディ・ヒット・スコア及びアンカー・ヒット・スコアを合計して、上述のように文書スコアを作成する。
【０１９５】
次に、参照文書Ｒの各々に対して、各アンカー語句Ｑの関連語句ビットベクトルを得る。これは、アンカー語句Ｑが文書Ｒに対してどの程度トピックを表しているかを示す尺度である。この値をここでは「アウトバウンドスコア要素」と呼ぶ。
【０１９６】
そして、索引１５０から、アンカー語句Ｑについて全ての対（参照する文書、参照された文書）が取り出される。そして、これらの対は、関連付けられた値（アウトバウンドスコア要素、インバウンドスコア要素）によってソートされる。実施態様によっては、これら要素の一方を一次ソートキーとし、他方を二次キーとすることができる。そして、ソート結果がユーザに提供される。アウトバウンドスコア要素で文書をソートすると、クエリに対する多数の関連語句をアンカー・ヒットとして有する文書が最上位に順位付けられるため、これらの文書を「エキスパート」文書として提供する。インバウンド文書スコアに基づいて文書をソートすると、アンカー語句によって頻繁に参照される文書が最上位に順位づけられる。
【０１９７】
ｃ）日付範囲の関連性に基づく文書の順位付け
検索システム１２０は、検索・順位付け作業においていくつかの方法で日付範囲情報を利用することができる。まず、検索システム１２０は日付範囲を明示的な検索デリミタとして利用することができる。例えば、「United States Patent and Trademark Office 12/04/04」のように、単語や語句及び日付を含む。検索システム１２０は日付条件を特定し、所望の語句を含み、かつクエリの日付条件を含む日付範囲に対して索引付けされた文書を選択する。そして、選択された文書から、検索システム１２０は、日付範囲に対応する索引付けされた関連性データを利用して、各文書に対する関連性スコアを得る。この方法で、検索クエリにより近い場合は、文書の古いあるいは前回のインスタンスが現在のインスタンスの代わりに検索される。これは、頻繁に変更される情報を含むニュースサイトや他のサイトのホームページ等、頻繁に変更される文書及びページについて特に有効である。
【０１９８】
第２に、検索クエリに日付条件が含まれていない場合、検索システム１２０は、文書関連性スコアを古さによって重み付けし、古い文書ほど関連性スコアに低い重みを課す（あるいは文書が新しいほど高い重みを課す）ことによって、することにより、関連性の順位付けの際に索引の日付情報を利用することができる。一方、あるトピックに対する関連性が最も高いのは、文書の最新のバージョンではなく、文書の古いバージョンである場合がある。例えば、歴史的事件の際に同時に作成されたニュースポータルサイトは、その事件に関する特定のクエリに対する関連性が高く、そして新しいポータルの現在のインスタンス。この場合、検索システム１２０は、例えば文書のインスタンス全てに対する文書関連性スコアが何れかの歴史的日付付近で増加している場合、古い文書インスタンスに高い重みを課し、文書の最近のインスタンスの関連性スコアを低くする。
【０１９９】
１以上の日付条件が検索クエリに含まれている場合、上記のように、日付条件と文書の日付範囲との差に応じて、文書の関連性スコアに低い重みを課し、日付範囲（開始日あるいは終了日から計算される）よりも古い文書あるいは所望の日付条件よりもはるかに新しい文書の関連性スコアには低い重みが課されるようにすることができる。逆に、文書の日付範囲が所望の日付に近い場合、関連性スコアに低い重みを課す代わりに高い重みを課すこともできる。
【０２００】
第３に、検索システム１２０は、日付情報を、検索結果を順位付けするための一次あるいは二次要素として利用することができる。例えば、文書を逆年代順にグループ分けすることができ（例えば、月ごとのグループ）、各グループにおいて、検索クエリに対する関連性が高い方から低い方へ順に列挙することができる。
【０２０１】
日付範囲情報の別の使用例では、更新される頻度に基づいて文書を順位付けする。検索システム１２０は、一定の期間にわたって特定の文書のインスタンス数（例えば、別個の日付範囲の数）を決定することができる（この回数は索引付けの間保持される）。そして、インスタンス数を用いて最も更新頻度の高い文書に高い重みを課す。
【図面の簡単な説明】
【０２０２】
【図１】本発明の一実施例のソフトウェア構造を示すブロック図である。
【図２】文書中の語句を特定する方法を示す。
【図３】語句ウィンドウ及び二次ウィンドウを有する文書を示す。
【図４】関連語句を特定する方法を示す。
【図５】関連語句に対して文書を索引付けする方法を示す。
【図６】語句に基づいて文書を索引付けする方法を示す。
【図１】
2008529138.tif 000004
【図２】
2008529138.tif 000005
【図３】
2008529138.tif 000006
【図４】
2008529138.tif 000007
【図５】
2008529138.tif 000008
【図６】
2008529138.tif 000009
【国際調査報告】
2008529138.tif 000010