(57)【特許請求の範囲】
【請求項１】
検索結果のランク付けを表現するコンピュータが実施する方法であって、
プロセッサが、複数の文書にインデックスを提供するステップであって、前記インデックスは、前記文書のそれぞれに含まれる１以上の用語の頻度を前記文書のそれぞれに関連付けるメインインデックスと、前記文書のそれぞれを参照するソース文書内のアンカーテキストに含まれる１以上の用語のアンカーテキスト頻度を前記文書のそれぞれに関連付けるアンカーテキストインデックスとを含む、ステップと、
プロセッサが、少なくとも１つのクエリ用語を含むクエリを受信するステップと、
プロセッサが、前記少なくとも１つのクエリ用語を含む１以上の前記文書を識別する前記クエリの結果を得るために前記インデックスに前記クエリを適用するステップと、
プロセッサが、前記クエリの前記結果に含まれる１以上の文書のそれぞれにスコアを生成するためにスコアリング関数を適用するステップであって、前記スコアリング関数（スコア）は、
ｓｃｏｒｅ＝Σ［（ｗｔｆ＋ｗｔｆAnchor）（ｋ１＋１）／｛ｋ１（（１−ｂ）＋ｂ（ｗｄｌ／ａｖｗｄｌ））＋（ｗｔｆ＋ｗｔｆAnchor）｝］×ｌｏｇ（Ｎ／ｎ）、及び、
ｓｃｏｒｅ＝Σ［｛（ｗｔｆ／Ｂ＋ｗｔｆAnchor／ＢAnchor）（ｋ１＋１）｝／｛ｋ１＋（ｗｔｆ／Ｂ＋ｗｔｆAnchor／ＢAnchor）｝］×ｌｏｇ（Ｎ／ｎ）
のうちのいずれか１つにより与えられ、
ここで、
ｗｔｆは、所与のクエリ用語が前記文書に含まれる頻度に重み付けを適用した重み付け用語頻度であり、
ｗｔｆAnchorは、所与のクエリ用語が前記文書を参照しているアンカーテキストに含まれる頻度に重み付けを適用した重み付け用語頻度であり、
ｋ１およびｂは、定数であり、
ｗｄｌは、スコアリングされる前記文書の長さに重み付けを適用した重み付け文書長であり、
ａｖｗｄｌは、スコアリングされる全ての文書の平均重み付け文書長であり、
Ｎは、ネットワーク上の文書の数であり、
ｎは、所与のクエリ用語が少なくとも１つ出現した文書の数である、ステップと、
プロセッサがユーザに表示される前記クエリのランク付けされた結果の出力を生成するステップと
を含むことを特徴とするコンピュータが実施する方法。
【請求項２】
プロセッサが、前記文書に含まれる前記１以上の用語の頻度を決定するために前記複数の文書のそれぞれを処理することにより、前記インデックスを構築するステップをさらに含む請求項１に記載のコンピュータが実施する方法。
【請求項３】
プロセッサが、それぞれ別の文書を参照する１以上のアンカーテキスト入力を識別するために、前記複数の文書のそれぞれを処理することにより前記インデックスを構築するステップをさらに含む請求項２に記載のコンピュータが実施する方法。
【請求項４】
プロセッサが、アンカーテキストテーブルを生成するステップであって、前記テーブルの項目は、前記アンカーテキスト入力を含む前記文書のそれぞれについて作成され、前記アンカーテキスト入力を含む前記文書を示すソース識別子、前記アンカーテキスト入力が参照するターゲット文書を示すターゲット識別子、及び、前記アンカーテキスト入力の内容に含まれる１以上の用語、のうち１以上を含むことができる、ステップをさらに含む請求項３に記載のコンピュータが実施する方法。
【請求項５】
プロセッサが、前記文書のそれぞれについて、前記文書に含まれる１以上の用語の頻度を収集することにより、および、前記文書が前記ターゲット識別子の前記ターゲット文書としてリストされている前記アンカーテーブルの項目のそれぞれについて、前記アンカーテキスト入力の内容にリストされている用語の頻度を収集することによりインデックスを生成するステップをさらに含む請求項４に記載のコンピュータが実施する方法。
【請求項６】
重み付けアンカーテキスト用語頻度（ｗｔｆAnchor）、および、重み付け文書長（ｗｄｌ）と、平均重み付け文書長（ａｖｗｄｌ）から引き出されるアンカーテキスト長正規化成分ＢAnchorを含む用語に基づいて判定されるスコアリング関数（スコア）に従って文書をランク付けするステップをさらに含むことを特徴とする請求項１に記載のコンピュータが実施する方法。
【請求項７】
前記文書がアンカーテキストデータと関係付けられていないとき、前記スコアリング関数（スコア）は、
ｓｃｏｒｅ＝Σ［ｗｔｆ（ｋ１＋１）／｛ｋ１（（１−ｂ）＋ｂ（ｗｄｌ／ａｖｗｄｌ））＋（ｗｔｆ）｝］×ｌｏｇ（Ｎ／ｎ）
により得られることを特徴とする請求項１に記載のコンピュータが実施する方法。
【請求項８】
前記ＢAnchorによりもたらされる前記長さ正規化の強度はＢAnchorに関連した異なる定数値を選択することにより調整されることを特徴とする請求項１に記載のコンピュータが実施する方法。
【請求項９】
コンピュータシステム上で実行可能な命令を記録するコンピュータ可読記録媒体であって、前記命令は、
プロセッサが、ネットワーク上の複数の文書のそれぞれの内容を評価するステップであって、
プロセッサが、前記文書内に含まれる用語の頻度を記録するステップと、
プロセッサが、別の文書を参照するそれぞれのアンカーテキスト入力のためのアンカーテキストテーブル内に項目を作成するステップとを含むステップと、
プロセッサが、インデックスを編集するステップであって、
プロセッサが、前記文書に含まれる１以上の用語の頻度を前記文書のそれぞれに関連付けるメインインデックスを生成するステップと、
プロセッサが、前記文書を参照するアンカーテキストテーブル内のアンカーテキスト入力にリストされた用語の頻度を前記文書のそれぞれに関連付けるアンカーテキストインデックスを生成するステップとを含むステップと、
プロセッサが、少なくとも１つのクエリ用語を含むクエリを受信するステップと、
プロセッサが、前記少なくとも１つのクエリ用語を含む１以上の前記文書を識別する前記クエリの結果を得るために前記インデックスに前記クエリを適用するステップと、
プロセッサが、前記クエリの前記結果に含まれる１以上の文書のそれぞれにスコアを生成するためにスコアリング関数を適用するステップであって、前記スコアリング関数（スコア）は、
ｓｃｏｒｅ＝Σ［（ｗｔｆ＋ｗｔｆAnchor）（ｋ１＋１）／｛ｋ１（（１−ｂ）＋ｂ（ｗｄｌ／ａｖｗｄｌ））＋（ｗｔｆ＋ｗｔｆAnchor）｝］×ｌｏｇ（Ｎ／ｎ）、及び、
ｓｃｏｒｅ＝Σ［｛（ｗｔｆ／Ｂ＋ｗｔｆAnchor／ＢAnchor）（ｋ１＋１）｝／｛ｋ１＋（ｗｔｆ／Ｂ＋ｗｔｆAnchor／ＢAnchor）｝］×ｌｏｇ（Ｎ／ｎ）
のうちのいずれか１つにより与えられ、
ここで、
ｗｔｆは、所与のクエリ用語が前記文書に含まれる頻度に重み付けを適用した重み付け用語頻度であり、
ｗｔｆAnchorは、所与のクエリ用語が前記文書を参照しているアンカーテキストに含まれる頻度に重み付けを適用した重み付け用語頻度であり、
ｋ１およびｂは、定数であり、
ｗｄｌは、スコアリングされる前記文書の長さに重み付けを適用した重み付け文書長であり、
ａｖｗｄｌは、スコアリングされる全ての文書の平均重み付け文書長であり、
Ｎは、ネットワーク上の文書の数であり、
ｎは、所与のクエリ用語が少なくとも１つ出現した文書の数である、ステップと、
プロセッサがユーザに表示される前記クエリのランク付けされた結果の出力を生成するステップと
を含むことを特徴とするコンピュータ可読記録媒体。
【請求項１０】
前記文書のそれぞれのためにアンカーテキストテーブルの項目を生成するステップは、
プロセッサが、前記アンカーテキスト入力を含む前記文書を示すソース識別子を記録するステップと
プロセッサが、前記アンカーテキスト入力が参照するターゲット文書を示すターゲット識別子を記録するステップと、
前記アンカーテキスト入力の内容に含まれる１以上の用語を記録するステップと
を含むことを特徴とする請求項９に記載のコンピュータ可読記録媒体。
【請求項１１】
前記文書がアンカーテキストデータと関係付けられていないとき、前記スコアリング関数（スコア）は、
ｓｃｏｒｅ＝Σ［ｗｔｆ（ｋ１＋１）／｛ｋ１（（１−ｂ）＋ｂ（ｗｄｌ／ａｖｗｄｌ））＋（ｗｔｆ）｝］×ｌｏｇ（Ｎ／ｎ）
により得られることを特徴とする請求項９に記載のコンピュータ可読記録媒体。
【請求項１２】
前記ＢAnchorによりもたらされる前記長さ正規化の強度はＢAnchorに関連した異なる定数値を選択することにより調整されることを特徴とする請求項９に記載のコンピュータ可読記録媒体。
【請求項１３】
プロセッサが前記クエリのランク付けされた結果の出力をユーザに表示させるステップをさらに含む請求項９に記載のコンピュータ可読記録媒体。
【請求項１４】
検索エンジンシステムであって、
複数の文書のためのインデックスであって、
前記文書のそれぞれに含まれる１以上の用語の頻度を前記文書のそれぞれに関連付けるメインインデックスと、
前記文書のそれぞれを参照するソース文書内のアンカーテキストに含まれる１以上の用語のアンカーテキスト頻度を前記文書のそれぞれに関連付けるアンカーテキストインデックスとを含む、インデックスと、
ランク付けシステムであって、
少なくとも１つのクエリ用語を含むクエリを受信し、前記少なくとも１つのクエリ用語を含む１以上の前記文書を識別するために前記インデックスに前記クエリを適用するように構成されたクエリインターフェースと、
前記クエリの前記結果に含まれる１以上の文書のそれぞれにスコアを生成するためにスコアリング関数であって、前記スコアリング関数（スコア）は、
ｓｃｏｒｅ＝Σ［｛（ｗｔｆ／Ｂ＋ｗｔｆAnchor／ＢAnchor）（ｋ１＋１）｝／｛ｋ１＋（ｗｔｆ／Ｂ＋ｗｔｆAnchor／ＢAnchor）｝］×ｌｏｇ（Ｎ／ｎ）
により与えられ、
ここで、
ｗｔｆは、所与のクエリ用語が前記文書に含まれる頻度に重み付けを適用した重み付け用語頻度であり、
ｗｔｆAnchorは、所与のクエリ用語が前記文書を参照しているアンカーテキストに含まれる頻度に重み付けを適用した重み付け用語頻度であり、
ｋ１は、定数であり、
ｗｄｌは、スコアリングされる前記文書の長さに重み付けを適用した重み付け文書長であり、
ａｖｗｄｌは、スコアリングされる全ての文書の平均重み付け文書長であり、
Ｂは、Ｂ＝｛（１−ｂ）＋ｂ（ｗｄｌ／ａｖｗｄｌ）｝（ｂは定数）で定義される文書長正規化成分であり、
ＢAnchorは、Ｂ＝｛（１−ｂ）＋ｂ（ｗｄｌ／ａｖｗｄｌ）｝（ｂは定数）で定義されるアンカーテキスト長正規化成分であり、
Ｎは、ネットワーク上の文書の数であり、
ｎは、所与のクエリ用語が少なくとも１つ出現した文書の数である、
スコアリング関数とを備え、
前記クエリの前記結果に含まれる前記文書のそれぞれについて生成されたスコアに基づいて前記クエリの前記結果をランク付けするように構成されるランク付けシステムと
を備えることを特徴とするシステム。
【請求項１５】
前記文書に含まれる前記１以上の用語の頻度を決定するために前記複数の文書のそれぞれを処理することにより、前記メインインデックスを構築するように構成されたクローラをさらに備えることを特徴とする請求項１４に記載のシステム。
【請求項１６】
前記クローラが、それぞれ別の文書を参照する１以上のアンカーテキスト入力を識別するために、前記複数の文書のそれぞれを処理することにより前記アンカーテキストインデックスを構築するようにさらに構成されることを特徴とする請求項１５に記載のシステム。
【請求項１７】
前記クローラが、アンカーテキストテーブルを生成するようにさらに構成され、前記テーブルの項目は、前記アンカーテキスト入力を含む前記文書のそれぞれについて作成され、前記アンカーテキスト入力を含む前記文書を示すソース識別子、前記アンカーテキスト入力が参照するターゲット文書を示すターゲット識別子、及び、前記アンカーテキスト入力の内容に含まれる１以上の用語、のうち１以上を含むことができることを特徴とする請求項１６に記載のシステム。
【請求項１８】
前記クローラが、前記文書のそれぞれについて、前記文書に含まれる１以上の用語の頻度を収集し、前記文書が前記ターゲット識別子の前記ターゲット文書としてリストされている前記アンカーテーブルの項目のそれぞれについて、前記アンカーテキスト入力の内容にリストされている用語の頻度を収集することによりインデックスを生成するようにさらに構成されることを特徴とする請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索結果のランク付けへのアンカーテキストの組込みシステムおよび方法に関する。
【背景技術】
【０００２】
テキスト文書検索では、典型的にユーザはクエリを検索エンジンに入力する。検索エンジンはインデックス付け文書のデータベースに対してクエリを評価し、クエリを最も良く満足する文書のランク付けリストを返す。検索エンジンは、どれほど文書がクエリを十分満足するかの尺度を表すスコアをアルゴリズム的に生成する。一般に使用されるスコアリングアルゴリズムはクエリの検索用語への分割および検索すべきテキスト文書の本体での個別用語の生起についての統計情報の使用に依存している。文書はそれらの対応するスコアによる順序でリストアップされ、これによりユーザが検索結果リストの最上部に最も一致する検索結果を見ることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
多くのこのようなスコアリングアルゴリズムは、各文書がテキストの単一の未分化の文字列であるということを前提にしている。検索用語のクエリはテキスト文字列(または、より正確には、各文書を表す未分化のテキスト文字列から生成された統計)に適用される。ただし、文書はいくつかの内部構造(例えば、タイトルを含むフィールド、セクションの見出し、メタデータフィールドなど)を有する場合が多く、このような文書を未分化のテキスト文字列に低減することによりこのような構造情報により提供されたいずれかの検索の利点が失われる。
【０００４】
いくつかの既存の取り組みは、個別文書フィールドに対する統計および個別フィールドに対するスコアを生成することにより、文書の内部構造を検索に組込むことを試みている。その後、個別文書に対するスコアがそのフィールドに対するスコアの重み付け加算して計算される。いくつかの既存のアプローチが文書の内部構造を組込むことを試みているが、他の文書に含まれたその文書に関するテキストを考慮に入れることは試みていない。
【課題を解決するための手段】
【０００５】
本発明の実施形態は、アンカーテキスト構成要素を組込むスコアリング関数を使用する検索結果のランク付けシステムおよび方法に関係している。アンカーテキストは別の文書を指すＵＲＬ（ユニフォームリソースロケータ）および添付の原文記述（ｔｅｘｔｕａｌ  ｄｅｓｃｒｉｐｔｉｏｎ）から成る。このテキストはターゲット文書に直接関連し、本発明ではターゲット文書の関連性の尺度を提供するため使用される。例えば、文書Ａは文書Ｂを指すいくつかのアンカーテキストを有する。アンカーテキストが文書Ｂにない言葉を含む場合、この言葉を含むクエリは本発明により提供された追加機能性がなければリンクされた文書を返さない。文書Ａだけを返すが、文書Ｂは返さない。文書Ａにおける記述を使用してリンクされた文書Ｂを記述するため、このテキストはリンクされた文書の正確な要約／記述になる可能性が極めて高い。本発明はアンカーテキストをターゲット文書のランク付けに組込むことによりこの欠陥を修正する。
【０００６】
本発明の一態様では、ネットワークはまず「クロールされ」、ネットワークのリンクおよびページに関連したプロパティのテーブルを生成する。「クローリング」とはいくつかの文書(または、情報の類似個別単位)をインデックスと呼ばれるデータベースの中に自動的に収集することを指す。クローリングはある一定の文書内の文書参照リンクに従うことによりネットワークの複数の文書をトラバースし、その後見出されたものとして各文書を処理する。文書は文書のキーワードまたは一般的なテキストを識別してインデックスを作成することにより処理される。本発明のインデックスは個々のアンカーテキストインデックスパーティションを含む。本発明がインデックス付けするテキストはＵＲＬを伴うアンカーテキストに制限されない。アンカーテキストはいずれかの他の対象に関するテキストを含むことができる。例えば、人々、カテゴリー、ディレクトリなどもインデックス付けされる。
【０００７】
本発明の別の態様では、アンカーテキストがインデックス付けされかつ適切なターゲット文書に関連付けられると、アンカーテキストは文書ランク付けを促進するため使用される。コンテントおよびアンカーテキスト両方に存在する用語の用語頻度が組合わされ、その結果、文書における用語の総体的生起が促進される。ターゲット文書の長さもその特定ターゲット文書を指すソース文書からのアンカーテキストにより長くなる。これらの因子の両方とも文書の関連尺度を判定するスコアリング関数で使用される。
【発明を実施するための最良の形態】
【０００８】
次に、この明細書の一部を形成し、かつ説明図により本発明を実施する特定の例示的実施形態を示す添付図面を参照して以下でより完全に本発明を説明する。ただし、本発明は多くの異なる形態で実施され、本明細書において述べられた実施形態に制限されるように構成されるものではなく、むしろこれらの実施形態を、この開示が完璧かつ完全であり、かつ当業者に本発明の範囲を十分に伝達するために提供するものである。特に、本発明は方法またはデバイスとして実施される。従って、本発明は完全にハードウエアの実施形態、完全にソフトウエアの実施形態またはソフトウエアおよびハードウエア態様の組合せの実施形態の形を取り得る。従って、次の詳細な説明は限られた意味で理解されるものではない。
【０００９】
実例的動作環境
図１において、本発明を実施する例示的システムのひとつはコンピューティングデバイス１００などのコンピューティングデバイスを含む。コンピューティングデバイス１００はクライアント、サーバ、モバイル機器、または他のコンピューティングデバイスのいずれかとして構成される。非常に基本的な構成では、コンピューティングデバイス１００は少なくともひとつの処理ユニット１０２およびシステムメモリ１０４を含むのが典型的である。コンピューティングデバイスの厳密な構成およびタイプに依って、システムメモリ１０４は（ＲＡＭなどの）揮発性、（ＲＯＭ、フラッシュメモリ、他などの）不揮発性、または２つのある種の組合せのいずれかである。システムメモリ１０４はオペレーティングシステム１０５、１または複数のアプリケーション１０６を含むのが典型的であり、かつプログラムデータ１０７を含んでもよい。一実施形態においては、アプリケーション１０６は本発明の機能を実施する検索ランク付けアプリケーション１２０を含む。この基本的構成を破線１０８内の構成要素により図１に示す。
【００１０】
コンピューティングデバイス１００は追加機構または機能性を有することができる。例えば、コンピューティングデバイス１００は、例えば磁気ディスク、光ディスク、またはテープなどの追加データストレージデバイス（取外し可能および／または固定）を含むこともできる。このような追加ストレージを取外し可能ストレージ１０９および取外し不可能ストレージ１１０により図１に示す。コンピュータストレージ媒体はコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納する任意の方法または技術で実装された揮発性および不揮発性、取外し可能および固定媒体を含むことができる。システムメモリ１０４、取外し可能ストレージ１０９および取外し不可能ストレージ１１０はすべてコンピュータストレージ媒体の例である。コンピュータストレージ媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ストレージ、磁気カセット、磁気テープ、磁気デイスクストレージまたは他の磁気ストレージデバイス、または所望情報を格納するため使用されかつコンピューティングデバイス１００によりアクセスされる任意の他の媒体を含むが、それに限定するものではない。このようなコンピュータストレージ媒体は装置１００の一部である。コンピューティングデバイス１００はキーボード、マウス、ペン、音声入力装置、タッチ入力装置などの入力装置１１２も有する。ディスプレイ、スピーカ、プリンタなどの出力装置１１４を含むこともできる。
【００１１】
コンピューティングデバイス１００は、例えばネット上で、他のコンピューティングデバイス１１８との通信を可能にする通信接続１１６も含む。通信接続１１６は通信媒体の一例である。通信媒体は通常コンピュータ可読命令、データ構造、プログラムモジュール、または搬送波または他のトランスポート機構などの被変調データ信号における他のデータにより実施することができ、かつ情報配信媒体を含む。用語「被変調データ信号」は信号の情報を符号化するというような方法で設定または変更された１または複数の特性を有する信号を意味する。一例として、通信媒体は有線ネットワークまたは直接有線接続などの有線媒体、および音声、ＲＦ、赤外線および他の無線媒体などの無線媒体を含むが、これらに限定するものではない。本明細書において使用されるような用語「コンピュータ可読媒体」はストレージデバイスおよび通信媒体両方を含む。
【００１２】
アンカーテキストの検索ランク付けへの組込みの実施形態
本発明の実施形態は検索エンジンに用いるランク付け機能に関する。検索エンジンの品質をランク付け機能により割り当てられたランクによる文書の妥当性により典型的に判定する。アンカーテキストはHTML(<Ahref=http://example>Example Web</A>)のアンカータグ内のテキストとして定義される。アンカーテキストはターゲットＵＲＬ（ユニフォームリソースロケータ）の短い高品質記述をしばしば含み、かつ所与の文書を指すアンカータグのコンテントをその文書用のランク付け機能に組込むことはランク付け機能にとって利点である。
【００１３】
図２に本発明によるインデックスキーを使用する概観検索の例示的システムの機能ブロック図を示す。システム２００はインデックス２１０、パイプライン２２０、文書インターフェース２３０、クライアントインターフェース２４０、アンカーテキストプラグイン２５０、インデックス付けグプラグイン２６０、およびアンカーテキストテーブル２７０を含む。
【００１４】
インデックス２１０はアンカーテキスト用のメインパーティションおよび別のパーティションを含む別々のインデックスパーティションを含むように構成される。インデックス２１０の構造については下記図３を参照して、より詳細に記述する。クライアントのクエリに対する結果をもたらす上でこれらのインデックスの記録が使用される。一実施形態において、インデックス２１０はインデックス記録用のストレージを集合的に備える複数のデータベースに対応する。
【００１５】
パイプライン２２０はインデックス用の文書または文書の記録を得るための集合機構の実例的表現である。パイプライン２２０は、データに対応する記録がインデックス２１０に入る前に各種プラグイン（例えば、アンカーテキストプラグイン２５０）によるデータのフィルタリングを可能にする。
【００１６】
文書インターフェース２３０は複数のデータベースおよびネットワークロケーションにまたがって文書を検索するためのプロトコル、ネットワークアクセスポイント、およびデータベースアクセスポイントを提供する。例えば、文書インターフェース２３０はインターネットへのアクセスをもたらす一方で、ローカルサーバのデータベースへのアクセスおよび現在のコンピューティングデバイスのデータベースへのアクセスももたらすことができる。他の実施形態では、本発明の精神および範囲から逸脱することなく多様なプロトコルを使用して他の文書ロケーションにアクセスすることができる。
【００１７】
クライアントインターフェース２４０はクライアントによるアクセスを提供し検索を定義しかつ開始する。検索はキーワードおよびまたは範囲キーにより定義される。検索クエリを処理する例示的方法は、下記図７を参照してより詳細に説明する。
【００１８】
アンカーテキストプラグイン２５０はいくつかの収集装置パイプラインプラグインのひとつである。アンカーテキストプラグイン２５０はアンカーテキストおよび文書に含まれるその関連プロパティを識別する。文書インターフェース２３０によりもたらされた文書をクロールするに伴って、アンカープロパティはアンカーテキストプラグイン２５０により集められる。一実施形態においては、アンカーテキストプラグイン２５０の機能性は別々のプラグインとして提供されるのではなく実際にはプロパティプラグインに含まれる。プロパティプラグインは文書のフィールドおよびアンカープロパティを含むそれらの関連プロパティすべてを識別する。一実施形態においては、アンカーテキストはターゲット文書に関連するため、クロールが完了するまでターゲット文書のアンカーテキストとの関連付けは延期される。例えば、文書Ａがインデックス付けられかつ文書Ａが文書Ｂを指すアンカーテキストを有する場合、アンカーテキストが文書Ｂに適用される。しかし、文書Ａは目下インデックス付けられるため、このプロセスは延期される。さらに、複数のアンカーが、文書Ｂが正確にインデックス付けられる前にそれらが発見されるべき文書Ｂに適用される場合がある。クロールが完了するまでターゲット文書のインデックス付けを延期することにより、インデックス付けの結果がより正確なものとなる。
【００１９】
インデックス付けプラグイン２６０はパイプライン２２０へ接続された別のプラグインである。インデックス付けプラグインはインデックス２１０を生成し、区分しかつ更新する機構を提供する。一実施形態においては、これらの結果をインデックス２１０にフラッシュする前に、インデックス付けプラグイン２６０がクロール文書から生成されたキーワードおよびアンカーテキストキーを一時的にキャッシュするワードリストをもたらす。インデックス２１０の記録はこれらのワードリストに含まれたクロール結果からポピュレートされる。
【００２０】
アンカーテキストテーブル２７０はアンカーテキストプラグイン２５０により集められたアンカープロパティを含む。文書におけるアンカーテキストの例として、アンカーテキストテーブル２７０はアンカーテキストに関連するプロパティを含むアンカーテキストの記録を含む。例えば、アンカーテキストテーブル２７０の記録がリンクのターゲット文書を識別するターゲットＩＤ、現在の文書、アンカーテキストそれ自体、および別々のフィールドのリンクを識別するソースＩＤを含んでもよい。他の実施形態においては、他のフィールドを２つの文書間のリンクに関係のあるアンカーテキストテーブル２７０に含んでもよい。一実施形態においては、クロールから集められたアンカーおよびリンクプロパティを使用して、文書に対応するノードおよびリンクに対応する分岐を備えたネットワークの表記を生成する（図４を参照）。次に、このネットワークグラフはメモリに取り込まれ、アンカーテキストにより参照されたターゲット文書に対するターゲットＩＤを解決するため使用される。
【００２１】
機能ブロック間の一方向および双方向通信のシステム２００における説明にもかかわらず、本発明の精神および範囲から逸脱することなくこれらの通信タイプを別のタイプに変更することがある。（例えば、すべての通信は一方向通信よりむしろ双方向通信を必要とする確認メッセージを有してもよい）。
【００２２】
図３に本発明によるインデックスの例示的構造の機能ブロック図を示す。インデックス３００はメインインデックス３１０およびアンカーテキストインデックス３２０を含む。
【００２３】
メインインデックス３１０は文書のクロールに対応して返されるキーワードおよび他のインデックスキーに対応する記録を含む。メインインデックス３１０は文書の他のプロパティに関する他のインデックスパーティションも含む。アンカーテキストに対応するための記録がアンカーテキストインデックス３２０に転送され入力される。
【００２４】
アンカーテキストインデックス３２０はネットワークの文書に含まれたアンカーテキストのターゲット文書に対応する記録を含む。これらのターゲット文書はターゲット文書に関連したアンカーテキストまたはＵＲＬに含まれた言葉と関連してリストアップされたターゲット文書ＩＤを備えた逆インデックスとして構成される。アンカーテキストインデックス３２０はクロールが完了した後アンカーテキストテーブルから生成される。各ターゲット文書に対応するアンカーテキストは、用語用の各ターゲット文書を評価し、かつターゲット文書をアンカーテキストインデックス３２０に入力するためにともに連結される。アンカーテキスト用の別々のインデックスパーティションを含むことにより、ひとつの因子としてアンカーテキストを文書のスコアリング関数に組込む前に関連計算をアンカーテキストに基づいて行うことが可能になる。文書をランク付けするためのスコアリング関数へのアンカーテキストの組込みについては下記図６を参照してより十分に説明する。
【００２５】
図４は本発明による例示的ネットワークグラフを示す。ネットワークグラフはノード(例えば、４１０)およびエッジまたはリンク(例えば、４２０)から成る。ノード (例えば、４１０)は検索クエリに対する結果として返されるネットワーク上にあるページおよび他のリソースを表す。リンク(例えば、４２０)がページにリストアップされたナビゲーションリンクの使用を通してこれらのページの各々を接続する。一組のリンク情報が特定ページ用のアンカーテキストに関するプロパティを判定する上で使用される各ページのため集められる場合がある。
【００２６】
一実施形態においては、ノード４３０はノード４４０に対応するターゲット文書用のアンカータグを含む現在の文書である。例えば、アンカータグはHTML(<Ahref=http://example>Sample Web</A>)のアンカータグに対応してもよい。現在の文書のＩＤもまた、通常、文書のHTMLに含まれることが知られている。アンカーテキストテーブル（図２を参照）をポピュレートするため、アンカーテキストに関連するターゲット文書ＩＤを解決する必要がそれでもなお存在する。ネットワークグラフ４００は未知のプロパティを解決するため移動（ｗａｌｋ）することができるネットワークの表記を提供することによりターゲット文書ＩＤの解決を支援する。 
図５に本発明による文書ランク付けにアンカーテキストを含むようにアンカーテキストを取扱う例示的プロセスの論理フロー図を示す。プロセス５００は文書のコーパスへのアクセスを提供するブロック５０２で開始する。処理はブロック５０４に続く。
【００２７】
ブロック５０４で、文書のコーパスがクロールされそれらの文書に関連するプロパティ（例えば、ファイルタイプ）並びに存在する文書を判定する。次に、文書およびそれらの関連プロパティの各々に対する識別子またはＩＤがクロールの結果として転送される。処理はブロック５０６に続く。
【００２８】
ブロック５０６で、アンカーテキストに結びつく文書に関連したプロパティがアンカーテキストプラグインにより得られる。アンカーテキストプロパティはソース文書の識別子、およびターゲット文書の識別子、アンカーテキストそれ自体、およびリンクのＵＲＬを含んでもよい。これらのアンカープロパティが集められると、処理はブロック５０８へ進む。
【００２９】
ブロック５０８で、アンカーテキストテーブルを生成する。アンカーテキストテーブルはアンカーテキストの各インスタンスに関連したアンカーテキストプロパティを含む。 アンカーテキストの各インスタンスのプロパティはテーブルに記録として格納される。テーブルが作成されると、処理はブロック５１０に続く。
【００３０】
ブロック５１０で、メインインデックスおよびアンカーテキストインデックスを含むインデックスを生成する。一実施形態においては、インデックスをアンカーテキストテーブルが構築された後生成する。アンカーテキストテーブルはアンカーテキストキーに関連した文書の逆リストを含む。それらはアンカーテキストまたはアンカータグのターゲット文書のＵＲＬに含まれたキーワードであるという点で、アンカーテキストキーはアンカーテキストに対応する。従って、アンカーテキストキーのターゲット文書は文書の逆リストである。インデックスがインスタンス化されると、処理はブロック５１２に続く。
【００３１】
ブロック５１２で、メインインデックスおよびアンカーテキストインデックスはアンカーテキストテーブルとともに照会され、アンカーテキストに基づく関連値をスコアリング関数に組込む。スコアリング関数は文書用の関連スコアを判定する。次に、文書をそれらのスコアに従ってランク付けすることができる。アンカーテキスト文書のランク付けへの組込みについては下記図６を参照して、より詳細に記述する。アンカーテキストがランク付けに組込まれると、処理はプロセス５００を終了するブロック５１４へ進む。
【００３２】
プロセス５００が完了した後、ランク付けされた文書は検索エンジンによる結果の送信および表示に関連した各種操作によりユーザへ返される。次に、より高精度な結果に対応する文書がユーザの判断で選択されかつ見られる。
【００３３】
図６に本発明によりランク付け検索結果にアンカーテキストを組込む例示的プロセスの論理フロー図を示す。図５のプロセス５００がブロック５１２に入りかつクエリがクライアントによりすでに行われているとき、プロセス６００がブロック６０２で開始する。処理は決定ブロック６０４に続く。
【００３４】
決定ブロック６０４で、最新のスコアが計算されている文書がクエリされる言葉のアンカーテキストインデックスに含まれるかどうかの判定が行われる。文書がアンカーテキストインデックスにリストアップされていない場合、処理はブロック６０８へ進む。ただし、文書がアンカーテキストインデックスにリストアップされている場合、処理はブロック６０６へ進む。
【００３５】
ブロック６０６で、文書の関連スコアを判定するスコアリング関数がアンカーテキストの考慮および重み付けを組込むように調整される。一実施形態においては、スコアリング関数は「テキスト文書検索におけるフィールド重み付け（Field Weighting in Text Document Searching）」と題し、２００４年３月１８日に出願され参照により本明細書に組込まれた米国特許出願番号第１０／８０４，３２６号に記載されたフィールド重み付けスコアリング関数に対応する。米国特許出願番号第１０／８０４、３２６号により示されているように、フィールド重み付けスコアリング関数は次の通りに表現される。
Σ［ｗｔｆ（ｋ１＋１）／｛ｋ１（（１−ｂ）＋ｂ（ｗｄｌ／ａｖｗｄｌ））
＋（ｗｔｆ）｝］×ｌｏｇ（Ｎ／ｎ）                                    
（１）
ここで、用語は次のように定義される。ｗｔｆは、すべてのプロパティ全体にわたる重みにより乗算された所与の用語の用語頻度の総和の重み付け用語頻度、ｗｄｌは重み付け文書長、ａｖｗｄｌは平均重み付け文書長、Ｎはネットワーク上の文書の数、ｎはすべてのクエリ用語全体にわたって積算された、所与のクエリ用語を含む文書の数、ｋ１およびｂは定数である。これらの専門用語および上記方程式は米国特許出願番号第１０／８０４，３２６号に詳細に記載されている。
【００３６】
基本的な説明として、重み付け用語頻度（ｗｔｆ）がこの文書における異なるフィールド上で重み付けされた文書における用語頻度に対応する。平均重み付け文書長全体にわたる重み付け文書長は、現在の文書長が平均文書長にいかに接近しているかの尺度を与え、スコアリング関数における正規化項である。所与のクエリ用語（ｎ）を含む文書の数を超えるネットワーク上の文書の数（Ｎ）の対数は文書頻度の尺度を与える。これらの量はコンテンツインデックスから発見可能でありかつ検索される。
【００３７】
一実施形態においては、スコアリング関数はアンカーテキストにおける用語の頻度に対応する追加重み付け用語頻度値（ｗｔｆAnchor）を含めることによりアンカーテキストを組込むように調整され、その結果、新しいスコアリング関数は
Σ［（ｗｔｆ＋ｗｔｆAnchor）（ｋ１＋１）／｛ｋ１（（１−ｂ）＋ｂ（ｗｄｌ／ａｖｗｄｌ））＋（ｗｔｆ＋ｗｔｆAnchor）｝］×ｌｏｇ（Ｎ／ｎ）
（２）
となる。
【００３８】
従って、スコアリング関数の用語頻度構成要素はアンカーテキストの用語の頻度とともに更新される。ただし、スコアリング関数の他の用語は影響を受けない。クエリはメインインデックスおよびアンカーテキストインデックスを別々に単に調べるだけで、スコアリング関数（２）に対する用語頻度を得ることができる。
【００３９】
別の実施形態においては、重み付け用語頻度を追加する前に、長さ正規化を文書の各フィールドの重み付け用語頻度に適用するようにスコアリング関数を調整することにより、アンカーテキストを説明するための文書長正規化が調整される。アンカーテキストを文書長正規化に組込むため、新しい項（Ｂ）が
Ｂ＝｛（１−ｂ）＋ｂ（ｗｄｌ／ａｖｗｄｌ）｝            （３）
と定義される。
【００４０】
次に、方程式（１）が新しい項に従って再整理され次式を作成する。
Σ［（ｗｔｆ／Ｂ）（ｋ１＋１）／｛ｋ１＋（ｗｔｆ／Ｂ）｝］×ｌｏｇ（Ｎ／ｎ）
（４）
【００４１】
次に、アンカーテキストに関連した重み付け用語頻度（ｗｔｆAnchor）はアンカーテキストに関連した長さ正規化に対応する新しいＢAnchor用語とともに 方程式に追加することができ、その結果、方程式（４）は
Σ［（ｗｔｆ／Ｂ＋ｗｔｆAnchor／ＢAnchor）（ｋ１＋１）／｛ｋ１＋（ｗｔｆ／Ｂ＋ｗｔｆAnchor／ＢAnchor）｝］×ｌｏｇ（Ｎ／ｎ）              （５）
となる。
【００４２】
従って、一実施形態においてはＢAnchorはアンカーテキストフィールドからＢAnchorのｗｄｌAnchorおよびａｖｗｄｌAnchor成分を取ることによりＢとは異なる。別の実施形態においては、長さ正規化の強度はアンカーテキストフィールドための異なるｂAnchorを選択することによっても調整される。スコアリング関数がアンカーテキストとみなすように調整されると、処理はブロック６０８へ進む。
【００４３】
ブロック６０８で、スコアリング関数を現在の文書のスコアを計算する変数でポピュレートする。先に述べたように、クエリはメインインデックスおよびアンカーテキストインデックスを別々に単に調べるだけで、スコアリング関数をポピュレートする用語頻度を得ることができる。
【００４４】
ブロック６１０で、スコアリング関数が実行され、かつ文書用の関連スコアが計算される。関連スコアが計算されると、関連スコアがメモリに格納されかつその特定文書に関連付けられる。その後、処理は決定ブロック６１２へ進む。
【００４５】
決定ブロック６１２で、文書すべてに対する関連スコアがスコアリング関数（２）により計算されたかどうかが判定される。スコアは示されたように直列または並列で計算することができる。すべてのスコアが計算されていない場合、処理はブロック６０４へ戻り次の文書に対するスコアの計算が開始される。ただし、スコアが計算されている場合、処理はブロック６１４へ続く。
【００４６】
ブロック６１４で、クエリの検索結果がそれらの関連スコアに従ってランク付けされる。ここでは、スコアは各々の文書のアンカーテキストを考慮に入れる。従って、アンカーテキストにおいて参照された文書がその参照を反映するように、文書のランク付けが細かくされている。検索結果がランク付けられると、処理はブロック６１４へ進み、ここで、プロセス６００が図５のプロセス５００のブロック５１４へ戻る。
【００４７】
上記明細事項、実施例およびデータは本発明の構成物の製造および使用の完全な説明を提供する。本発明の多くの実施形態が本発明の精神と範囲から逸脱することなくなされ得るため、本発明は本明細書に添付された特許請求の範囲に属するものである。
【図面の簡単な説明】
【００４８】
【図１】本発明の一例示的実施形態で使用される例示的コンピュータデバイスの図である。
【図２】本発明によるインデックスキーを使用する概観検索の例示的システムの機能ブロック図である。
【図３】本発明によるインデックスの例示的構造の機能ブロック図である。
【図４】本発明による例示的ネットワーク図である。
【図５】本発明による文書ランク付けにアンカーテキストを含むようにアンカーテキストを取扱う例示的プロセスの論理フロー図である。
【図６】本発明によりランク付け検索結果にアンカーテキストを組込む例示的プロセスの論理フロー図である。
【符号の説明】
【００４９】
２１０  インデックス
２２０  パイプライン
２３０  文書インターフェース
２４０  クライアントインターフェース
２５０  アンカーテキストプラグイン
２６０  インデックス付けグプラグイン
２７０  アンカーテキストテーブル
３１０  メインインデックス
３２０  アンカーテキストインデックス
【図１】
0004763354.tif 000002
【図２】
0004763354.tif 000003
【図３】
0004763354.tif 000004
【図４】
0004763354.tif 000005
【図５】
0004763354.tif 000006
【図６】
0004763354.tif 000007