(57)【要約】ドキュメント索引付けおよびドキュメントクエリーシステムの一部として、フリーテキスト検索の結果を順位付けるためのドキュメント区分応じかつ関連性順位付けシステムが開示される。上記システムは、構造化、準構造化、または非構造化ドキュメントを受け付け、上記ドキュメントの容易に検索可能な索引を作成するドキュメントインデクサをもつ。次に、ドキュメントクエリーシステムはフリーテキストクエリーを入力し（図７の７４０）、上記ドキュメントの索引に対してクエリーを実行し（図７の７６０）、結果のドキュメントのリストを作成する。次に、本設定可能な関連性順位付けシステムは、上記ドキュメント結果リスト内の個々のドキュメントを、予測される関連性の順序に順位付ける（図７の７７０）。
2005525655.tif 000002
【特許請求の範囲】
【請求項１】
ドキュメントリポジトリのフリーテキストクエリーからの結果を順位付ける方法であって、
ドキュメントリポジトリのテキストドキュメントの中でドキュメント領域を特徴付ける１組の関連性順位付けパラメータを生成し；
上記ドキュメントリポジトリのフリーテキストクエリーから結果を作成し；
上記関連性順位付けパラメータにしたがって上記結果を順位付ける
方法。
【請求項２】
上記生成することが、スコア計算領域を定義することを含む請求項１に記載の方法。
【請求項３】
上記生成することが、準構造化テキストドキュメント内でスコア計算領域を定義することを含む請求項２に記載の方法。
【請求項４】
上記生成することが、スコア計算領域をＸＭＬドキュメントのタグで区切られた領域として定義することを含む請求項３に記載の方法。
【請求項５】
上記生成することが、一致する検索語の間の単語距離を特徴付ける近接性スコアの関連性順位付けパラメータを生成することを含む請求項１に記載の方法。
【請求項６】
上記生成することが、調和平均近接性スコアの関連性順位付けパラメータを生成することを含む請求項５に記載の方法。
【請求項７】
上記生成することが、指定された検索語がドキュメント内に現れる回数を特徴付ける、一致する語の頻度スコアの関連性順位付けパラメータを生成することを含む請求項１に記載の方法。
【請求項８】
上記生成することが、絶対頻度で表した一致語頻度スコアを生成することを含む請求項７に記載の方法。
【請求項９】
上記生成することが、相対頻度で表した一致語頻度スコアを生成することを含む請求項７に記載の方法。
【請求項１０】
上記生成することが、正規化頻度で表した一致頻度スコアを生成することを含む請求項７に記載の方法。
【請求項１１】
上記生成することが、調整済重み基準を用いて関連性順位付けパラメータを生成することを含む請求項１に記載の方法。
【請求項１２】
上記作成することが、上記ドキュメントリポジトリのドキュメント内で単語位置を指定する単語索引に対してフリーテキストクエリーを実行することを含む請求項１に記載の方法。
【請求項１３】
ドキュメントリポジトリのテキストドキュメント内のドキュメント領域を特徴付ける１組の関連性順位付けパラメータを生成する実行可能命令；
上記ドキュメントリポジトリのフリーテキストクエリーから結果を作成する実行可能命令；および
上記関連性順位付けパラメータにしたがって上記結果を順位付ける実行可能命令
を含むプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１４】
１組の関連性順位付けパラメータを生成する上記実行可能命令が、スコア計算領域を定義する実行可能命令を含む請求項１３に記載の記録媒体。
【請求項１５】
１組の関連性順位付けパラメータを生成する上記実行可能命令が、準構造化テキストドキュメント内でスコア計算領域を定義する実行可能命令を含む請求項１４に記載の記録媒体。
【請求項１６】
１組の関連性順位付けパラメータを生成する上記実行可能命令が、スコア計算領域をＸＭＬドキュメントのタグで区切られた領域として定義する実行可能命令を含む請求項１５に記載の記録媒体。
【請求項１７】
１組の関連性順位付けパラメータを生成する上記実行可能命令が、一致する検索語の間の単語距離を特徴付ける近接性スコアの関連性順位付けパラメータを生成する実行可能命令を含む請求項１３に記載の記録媒体。
【請求項１８】
１組の関連性順位付けパラメータを生成する上記実行可能命令が、調和平均近接性スコアの関連性順位付けパラメータを生成する実行可能命令を含む請求項１７に記載の記録媒体。
【請求項１９】
１組の関連性順位付けパラメータを生成する上記実行可能命令が、指定された検索語がドキュメント内に現れる回数を特徴付ける一致する語の頻度スコアの関連性順位付けパラメータを生成する実行可能命令を含む請求項１３に記載の記録媒体。
【請求項２０】
１組の関連性順位付けパラメータを生成する上記実行可能命令が、絶対頻度で表した一致語頻度スコアを生成する実行可能命令を含む請求項１９に記載の記録媒体。
【請求項２１】
１組の関連性順位付けパラメータを生成する上記実行可能命令が、相対頻度で表した一致語頻度スコアを生成する実行可能命令を含む請求項１３に記載の記録媒体。
【請求項２２】
１組の関連性順位付けパラメータを生成する上記実行可能命令が、正規化頻度で表した一致頻度スコアを生成する実行可能命令を含む請求項１３に記載の記録媒体。
【請求項２３】
１組の関連性順位付けパラメータを生成する上記実行可能命令が、調整済重み基準を用いて関連性順位付けパラメータを生成する実行可能命令を含む請求項１３に記載の記録媒体。
【請求項２４】
上記結果を順位付ける上記実行可能命令が、上記ドキュメントリポジトリのドキュメント内で単語位置を指定する単語索引に対してフリーテキストクエリーを実行する実行可能命令を含む請求項１３に記載の記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
一般的に、本発明はデータ記憶およびデータ検索の分野に関する。より詳細には、本発明は、準構造化テキスト用検索エンジンを用いて使用可能な、ドキュメント領域に応じかつ設定可能な関連性順位付けシステムに関する。
【背景技術】
【０００２】
データベースは記憶された情報の大きな集まりである。データベースから情報の一部を検索するために、データベースクエリーが生成されてデータベースに供給される。通常の上記データベースクエリーは適切に定義されている。特に、通常のデータベースクエリーは、検索対象を正確に定義する１組のパラメータを使用し、もしレコード（またはフィールド）が、適切に定義されたクエリーパラメータと一致すると、そのレコード（またはフィールド）が返される。もしどのレコードも、適切に定義されたクエリーパラメータと一致しないと、ヌルが返される。
【０００３】
フリーテキスト(論理演算子を使用しないテキスト）クエリー（フルテキストクエリーとしても知られている）は一般的にとても異なる方法で動作する。フリーテキストクエリーでは、所望のドキュメント、レコード、またはファイルを表し、それらの中に存在するらしい１組の検索語（テキスト）をユーザは入力する。次に、フリーテキストクエリーシステムはそのデータベース内のドキュメント、レコード、またはファイルを検索し、ユーザの入力した上記検索語に最も一致するドキュメント、レコード、またはファイルを見つけようとする。１つの典型的な実施の形態では、上記フリーテキストクエリーシステムは、上記ユーザにより入力されたフリーテキストクエリー内の１つ以上の検索語を含む全てのドキュメント、レコード、またはファイルを見つける。
【０００４】
フリーテキストクエリーにより返される結果は、しばしば、ユーザが詳しく調べることを望むのよりもかなり多くのドキュメント、レコード、ファイルを含む。それ故、多くのフリーテキストクエリーシステムは関連性順位付けシステムも提供して、ユーザがフリーテキストクエリーの結果を分析するのを助ける。
【０００５】
関連性順位付けシステムは、関連性の数値をフリーテキストクエリー結果内の各ドキュメントに割り当てる。次に、フリーテキストクエリー結果内のドキュメント、レコード、またはファイルが上記ユーザに表示され、最も関連性のあると計算されたドキュメント、レコード、またはファイルで始まり、最も関連性のないと計算されたドキュメント、レコード、またはファイルへ続く。この方法で、上記ユーザは、所望のドキュメント、レコード、またはファイルをすぐに見つけやすくなる。
【０００６】
関連性順位付けシステムは一般的に所望のドキュメントを見つけるのを助ける。しかし、関連性順位付けシステムは常にユーザに有利に機能するとは限らない。例えば、特定のカート・ヴォネガットの本に関するドキュメントを見つけたいユーザはフリーテキストクエリーシステムに“Ｂｒｅａｋｆａｓｔ  ｏｆ  Ｃｈａｍｐｉｏｎｓ”と入力するかもしれない。結果が返ってくると、関連性順位付けシステムはＧｅｎｅｒａｌ  Ｍｉｌｌｓ社のシリアル“Ｗｈｅａｔｉｅｓ”をリストの始めに並べるかもしれない。なぜなら、この製品はそのニックネーム“Ｔｈｅ  Ｂｒｅａｋｆａｓｔ  ｏｆ  Ｃｈａｍｐｉｏｎｓ“でしばしば呼ばれるからである。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特定の用途のためのより関連性高い結果（すなわち、カート・ヴォネガットの本に関する結果）を得るために、関連性順位付けシステムにより使用される方法を「調整する」ことを、より所望の結果を得るために、あるユーザは望むかもしれない。例えば、前の例では、ユーザは、一致する検索語（“Ｂｒｅａｋｆａｓｔ  ｏｆ  Ｃｈａｍｐｉｏｎｓ”）を作品の本文のみにもつドキュメントよりも、一致する上記検索語を題名の位置に含むドキュメントを得たいと望むかもしれない。それ故、実行時に設定可能な関連性順位付けシステムを得ることが望ましいかもしれない。
【課題を解決するための手段】
【０００８】
本発明はフリーテキスト検索の結果を順位付けるための設定可能な関連性順位付けシステムを開示する。上記設定可能な関連性順位付けシステムはドキュメント索引付けおよびドキュメントクエリーシステムの一部として動作する。特に、ドキュメント索引作成装置は構造化、準構造化、または非構造化ドキュメントを扱い、ドキュメントの容易に検索可能な索引を作成する。上記ドキュメントクエリーシステムはフリーテキストクエリーを受け付け、上記ドキュメントの索引に対しクエリーを実行し、得られたドキュメントのリストを作成する。次に、上記設定可能な関連性順位付けシステムは、ドキュメントの上記リストが関連性の推定値の順に並ぶように、ドキュメントの上記リスト内で個々のドキュメントを順位付ける。
【０００９】
上記設定可能な関連性順位付けシステムは、最初は設定可能な１組の関連性順位付けパラメータ内を読むことから動作する。１つの実施の形態では、上記関連性順位付けパラメータは管理者がドキュメント内のスコア計算領域と、ドキュメント内の調整済重みをもつ区分とを作成することを可能にする。上記スコア計算領域は、定義されたように、個々に関連性がスコア計算されたドキュメントの区分を定義する。上記調整済重みをもつ区分は、ドキュメントの中の、検索語の一致が異なって重み付けされた領域を定義する。上記関連性順位付けパラメータを読んだ後、上記設定可能な関連性順位付けシステムは、最適化された関連性スコア計算を可能にする１組のデータ構造を作成する。
【００１０】
次に上記関連性順位付けシステムは、上記ドキュメントクエリーシステムからのドキュメントの処理結果リスト内のドキュメントをスコア計算する。特に、上記関連性順位付けシステムは、各ドキュメントに関する関連性スコアを生成する管理者設定関連性順位付けパラメータを使用して、特定の１組の関連性順位付けのためのヒューリスティックスを、ドキュメントの上記処理結果リストに適用する。次にドキュメントの上記処理結果リストは、ドキュメント関連性スコアを使用して順序付けられる。
【発明を実施するための最良の形態】
【００１１】
以下、添付の図を参照して発明の実施の形態を説明する。
【００１２】
ドキュメント領域に応じかつ設定可能な関連性順位付けシステムが開示される。以下の説明において、説明の目的のために、特定の用語が、本発明の完全な理解を提供するために説明される。しかし、これらの詳細は本発明を実施するために必要とされないことは当業者には明らかである。例えば、本発明は語索引により支援されたフリーテキストクエリー応答システムを参照して説明されてきた。しかし、本発明の技術および教示は、他の種類の索引付けシステムを備えた、または、索引付けシステムを全く備えないフリーテキストクエリーシステムに容易に適用できる。
【００１３】
本発明の教示は、上述の方法を実行する１組のコンピュータ命令を用いて実行可能である。当業界によく知られているように、上記コンピュータ命令は、それらのコンピュータ命令が送れるように、または、アーカイブに保管できるように、磁気ディスク、磁気テープ、光媒体、または任意の他のコンピュータの読み取り可能な形式のコンピュータ読み取り可能な媒体に格納可能である。
【００１４】
フリーテキストクエリーシステムは、所望のドキュメントまたはレコードの中に存在し、または、それを記述しそうなテキスト語を入力することにより、ユーザが上記ドキュメントまたはレコードを見つけることを可能にする。フリーテキストクエリーシステムが検索結果を返すとき、上記フリーテキストクエリーシステムは、検索を要求したユーザのために関連性順位付けシステムを使用可能である。上記関連性順位付けシステムは、全検索結果内のドキュメントまたはレコードのあり得る関連性を順位付けることを試みる。
【００１５】
関連性順位付けシステムは、ユーザが何を求めているのか、実際には正確に知らない。それ故、たいていの関連性順位付けシステムは種々のヒューリスティックスを使い、ユーザにとって何がより関連性がありそうかを決定する。例えば、多くの一致する検索語をもったドキュメントは、全ての検索語に一致しないドキュメントよりも一般的に高く順位付けされる。同様に、ユーザにより入力されたのと同じ順序の所望の検索語をもつドキュメントは、異なる順序の検索語よりも高く順位付けられる。これらのヒューリスティックスは、関連性順位付けシステム内に静的にコーディングされて、変更できない。
【００１６】
より良い関連性順位付けを提供するために、本発明は実行時に設定可能な関連性順位付けシステムを導入する。本発明の設定可能な関連性順位付けシステムにより、管理者は、関連性順位付けシステムが特定のアプリケーションに最も合う方法で動作するように、関連性順位付けシステムを調整できる。例えば、電子メールアプリケーションは、検索語の一致が電子メールメッセージの本文内に見つかったときよりも、検索語の一致が電子メールメッセージの件名内に見つかったときの方がかなり高く順位付けされれば、改善できる。
【００１７】
関係データベースは構造化データの例である。関係データベースでは、データはテーブルに記憶され、各テーブルは多くのエントリを備える。各テーブルは、各テーブルエントリの列（または行）に格納されたデータの型を同定する所定の列すなわちフィールドをもつ。１つのテーブル内のフィールドはもう１つのテーブル内のエントリを参照し、それ故に「関係」データベースという用語である。テーブルの複雑な組織、テーブルエントリ内のフィールド、およびテーブル間の関係はデータベース「スキーマ」という。
【００１８】
関係データベース内に記憶された構造化データが、いくつかのアプリケーション内のデータを組織化し、検索する効率的な手段を提供するが、全てのデータが所定のデータフィールドに配置されねばならないので、データベースはとても融通が利かない。さらに、構造化データベースは困難な計画および装備の処理を必要とする。例えば、データベーススキーマが定義されねばならず、ユーザインターフェイスが作成されねばならず、データベースクエリーが書かれていなければならないなどである。
【００１９】
完全なデータベースを作成する代わりに、多くの人は、一般的なテキストエディタまたはワードプロセッサを使用して、簡単なデータベースを即席で作る。例えば、名前および電話番号のリストを含む簡単なテキストファイルは、簡単なデータベースと考えることが可能である。ユーザがテキストファイルを体系化する方法が、上記テキストファイルデータベースが非構造化テキスト、準構造化テキスト、または構造化テキストかを決定する。
【００２０】
もしユーザが無秩序に名前および番号をでたらめに入力し、住所などの他の情報を混ぜると、テキストファイルデータベースは非構造化テキストになる。利用可能な、上記テキストファイルに対し、認識できる構造はない。
【００２１】
もしユーザが、常に厳格に上記名前および番号を正確に同じ方法で特定の形式に体系化すると、そのユーザのテキストファイルデータベースは「構造化テキスト」データベースである。例えば、テキストドキュメントの各および全ての行が「姓  名  電話番号」で体系化されていると、上記テキストドキュメントは構造化テキストドキュメントである。そのような構造化テキストドキュメントにより、アプリケーションは既知のファイル構造をナビゲーション、検索、インポート、エクスポートまたは他のデータ操作のために使用可能である。
【００２２】
もしユーザがドキュメントを厳格に体系化せずに、情報が明確な規則を使用して常に抽出可能なようなあるパターンに従えば、テキストデータベースは「準構造化テキスト」データベースとなる。例えば、準構造化テキストドキュメントは、名前および電話番号が上記ドキュメントから容易に抽出できるように、各名前の前に“ｎａｍｅ：”および各電話番号の前に“ｐｈｏｎｅ：”を置ける。しかし、上記ドキュメントは種々の人々に関する記録などの他の情報も含む。そのような実施の形態では、「文字列‘ｎａｍｅ：’の後のテキストを名前として選択する」ルールおよび「文字列‘ｐｈｏｎｅ：’の後のテキストを電話番号として選択する」ルールは、たとえ準構造化テキストファイルが非構造化テキストの他の領域を含んでも、分析システムが準構造化テキストファイルから名前と電話番号を抽出することを可能にする。
【００２３】
本発明の設定可能な関連性順位付けシステムは、非構造化テキストドキュメント、準構造化テキストドキュメント、または構造化テキストドキュメントに対して使用可能である。上記設定可能な関連性順位付けシステムが非構造化テキストに対して使用されたとき、特定のテキスト領域に基づいて順位付けシステムを調整することは不可能である。しかし、上記設定可能な関連性順位付けシステムが準構造化テキストまたは構造化テキストに対して使用されたとき、上記設定可能な関連性順位付けシステムは利用可能なドキュメント構造を利用する。例えば、本発明の設定可能な関連性順位付けシステムは、準構造化または構造化テキストドキュメント内の特定の領域を同定するため、および上記設定可能な関連性順位付けシステムの関連性順位付け動作を同定された領域に調節するために設定可能である。この方法で、準構造化または構造化テキストドキュメントと関連する特別に設定された関連性順位付けシステムの組み合わせは、これらのドキュメント内の特定のドキュメントまたは特定の情報を即座に見つけるために使用可能である。
【００２４】
１つの実施の形態では、準構造化または構造化テキストドキュメントは、業界標準のＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）を使用して作成可能である。ＸＭＬドキュメントはよく知られているマークアップ言語のタグ付けを特定の目的のために使用するテキストドキュメントである。ＸＭＬに関する詳しい情報はウェブサイトｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＸＭＬ／で見つけることができる。
【００２５】
ＸＭＬドキュメントを作成、編集、並びに分析する多くのソフトウェアおよびその簡単であるが強力な性質のために、ＸＭＬはインターネット商取引の共通語となった。ＸＭＬドキュメントは発注書からカルテまでの全てを表すために使用されるようになった。本発明は準構造化および構造化データ用のＸＭＬフォーマットを参照して開示されるが、本発明の教示は他の準構造化または構造化テキストデータフォーマットに容易に適用可能である。
【００２６】
設定可能な関連性順位付けシステムは、ドキュメント索引付けシステムの１つの実施の形態を参照して開示される。しかし、本発明の教示は、他のドキュメント索引付けシステムの実装によりまたは索引付けシステムを備えないシステムを用いて容易に実行可能である。索引付けシステムの使用は、フリーテキストクエリーを実行したときの応答時間を著しく改善する。
【００２７】
図１はドキュメント索引付けおよびクエリー応答システム１００の１つの実施の形態を示す。上記ドキュメント索引付けおよびクエリー応答システム１００は下記の２つの主な目的を提供する。（１）外部から新しいドキュメントを受け付け、ドキュメントインデクサ１２０によりそれらの新しいドキュメントを索引に加える。また、（２）クエリー実行モジュール１４０によりクエリー要求に応答する。（１つの実施の形態では、上記ドキュメント索引付けおよびクエリー応答システム１００はクエリー内に指定されたドキュメントを扱う。）。
【００２８】
他のエンティティと通信するために、上記ドキュメント索引付けおよびクエリー応答システム１００は通信層１１０をもつ。図１の実施の形態では、上記通信層１１０は、上記ドキュメント索引付けおよびクエリー応答システム１００が他のエンティティ（コンピュータネットワーク１９０に組み込まれた）から新しいドキュメントおよびクエリー要求を入力できるように、上記コンピュータネットワーク１９０に組み込まれている。
【００２９】
ドキュメントインデクサ１２０は新しいドキュメントを上記ドキュメント索引付けおよびクエリー応答システム１００に受け入れねばならない。上記ドキュメントインデクサ１２０が新しいドキュメントを入力して索引付けするとき、上記ドキュメントインデクサ１２０は、第１に、一意の識別子を上記新しいドキュメントへ割り当てる。
【００３０】
次に、上記ドキュメントインデクサ１２０は索引マネージャ１３０から使用可能な索引を取得する。上記索引マネージャ１３０は、索引の集まり１５０から索引を選択し、上記索引を上記ドキュメントインデクサへ提供する。次に上記ドキュメントインデクサ１２０は、入力したドキュメントの索引を生成し、索引マネージャ１３０から入力した上記索引内の情報を記憶する。１つの索引の例に関する詳しい情報は本明細書の後の部分で説明される。
【００３１】
上記ドキュメントを索引付けした後、変更された上記索引が索引マネージャ１３０へ返される。１つの実施の形態では、最後に、上記ドキュメントインデクサ１２０が上記ドキュメントの変更バージョンをドキュメントリポジトリ１６０に記憶する。ドキュメントリポジトリがないバージョンでは、上記ドキュメントは通常のファイルサーバに記憶可能である。
【００３２】
上記ドキュメントインデクサ１２０が多くのドキュメントを索引付けした後、上記ドキュメント索引付けクエリー応答システム１００はクエリー要求のサービスを提供し始めることが可能である。上記ドキュメント索引付けおよびクエリー応答システム１００は上記コンピュータネットワーク１９０経由でクエリー要求を入力可能である。上記ドキュメント索引付けおよびクエリー応答システム１００の上記通信層１１０はクエリー要求をクエリー実行モジュール１４０へ送信する。
【００３３】
１つの実施の形態では、上記クエリー実行モジュール１４０はＸＭＬクエリー言語（“ＸＱｕｅｒｙ”としても知られている）にフォーマットされたクエリーを入力する。ＸＱｕｅｒｙに関する詳しい情報はワールドワイドウェブコンソーシアム（Ｗ３Ｃ）のウェブサイトｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＸＭＬ／Ｑｕｅｒｙで見つけることができる。上記クエリー実行モジュール１４０は、まず、入力したＸＱｕｅｒｙを分析する。もしＸＱｕｅｒｙがフリーテキスト検索を含まなければ、上記クエリー実行モジュール１４０は簡単にクエリーに応答し、関連性順位付けの必要性は全くない。
【００３４】
ＸＱｕｅｒｙがフリーテキストクエリーのためのフリーテキスト検索文字列を含むと、上記クエリー実行モジュール１４０はフリーテキスト検索文字列を分析する。１つの実施の形態では、上記クエリー実行モジュール１４０はフリーテキスト検索文字列から木構造を作成する。例えば、上記クエリー実行モジュール１４０はフリーテキスト検索文字列“（Superman  ＯＲ  Batman）ＡＮＤ（Playstation2  ＯＲ  PS2）を分析して、図２に示されている、分析された木構造を作成する。
【００３５】
フリーテキスト検索文字列を分析した後で、上記クエリー実行モジュール１４０は上記フリーテキストクエリーを、索引付けされたドキュメントへ適用する。クエリーを開始するために、上記クエリー実行モジュール１４０は、まず、索引マネージャ１３０から１つ以上の「イテレータ（反復子）」オブジェクトを要求する。イテレータオブジェクトは索引の集まり１５０内で索引を操作するために使用される。上記索引マネージャは、上記イテレータオブジェクトを適切な時間に上記クエリー実行モジュール１４０に提供することにより上記イテレータの要求に応答する。この技術は、上記索引マネージャ１３０がクエリーをする要求および上記索引１５０を更新する要求の間の調停をすることを可能にする。
【００３６】
図２に戻ると、１つの実施の形態では、探索木の各ノードは検索要求の一部を扱うオブジェクトである。Supermanオブジェクト２５１、Batmanオブジェクト２５３、Playstation2オブジェクト２６１、およびPS2オブジェクト２６３は、各々、単語“Superman”“Batman”“Playstation2”および“PS2”をもつドキュメントを見つける。ＯＲオブジェクト２２０は、Supermanオブジェクト２５１およびBatmanオブジェクト２５３の検索結果をブーリアンの“ＯＲ”演算を用いて組み合わせる。同様にＯＲオブジェクト２３０は、Playstation2オブジェクト２６１およびPS2オブジェクト２６３の検索結果をブーリアンの“ＯＲ”演算を用いて組み合わせる。最後に、ＡＮＤオブジェクト２１０はＯＲオブジェクト２２０およびＯＲオブジェクト２３０をブーリアンの“ＡＮＤ”演算で組み合わせ、最終的な検索結果を生成する。上記クエリー実行モジュール１４０は上記最終的な検索結果を、クエリーを要求したエンティティに返す。
【００３７】
効率的に上記ドキュメントの特定のテキスト項目（単語または他の英数字テキスト項目）を検索するために、上記ドキュメント索引付けおよび応答システム１００は索引１５０を構築する。図３は索引構造の１つの可能な実施の形態を示す。図３の索引構造は、図４に示されているＸＭＬドキュメントを参照して説明される。
【００３８】
図３の実施の形態では、上記索引付けシステムは各ドキュメントを分割して、個別の単語およびＸＭＬタグのリストを作成する。次に、図４を参照すると、各々の単語およびＸＭＬタグは、上付き数字で示される連続した数を与えられる。例えば、ＸＭＬタグ“<book>”は単語位置“1”が割り当てられて、タイトルの最初の単語“The”は単語位置“3”が割り当てられる。次に全ての単語およびＸＭＬタグの、番号の付された位置は、図３に示される索引構造に記録される。
【００３９】
図３の左側を参照すると、上記索引付けシステムは一意の単語リスト３１０を作成し、上記一意の単語リスト３１０は、索引付けされたドキュメント内に見つかった各一意の単語のエントリをもつ。（１つの好ましい実施の形態では、上記単語リストは実際の単語を記憶せず、ハッシュされた単語を記憶する。しかし、図３は説明を簡単にするため、実際の単語を示している。）
【００４０】
一意の単語リスト３１０内の単語を含むドキュメントのリストは各単語に関連する。例えば、図４のＸＭＬドキュメントはＸＭＬタグ“<body>”を含む。このように、上記一意の単語リスト３１０は“<body>”に関するエントリ３１１を含む。各一意の単語エントリは、その一意の単語を含むドキュメントの関連するリストをもつ。図４に示されたドキュメントはドキュメント識別番号１（DocID=1）をもつドキュメントとして参照される。上記ドキュメントが上記タグ“<body>”を含むので、上記一意の単語リスト３１０は一意の単語<body>エントリ３１１をもち、その一意の単語<body>エントリ３１１は関連するドキュメントリストを指し、その関連するドキュメントリストは図４のドキュメントに関して“DocID=1”を指定するエントリ３２１を含む（一意の単語<body>エントリ３１１に関する上記関連するドキュメントリストは、別のドキュメントの別のエントリ“DocID=4”も含む。）。
【００４１】
図３を参照すると、一意の単語に関する、上記関連ドキュメントのリスト内の各ドキュメントエントリは、さらに、上記一意の単語がドキュメント内で現れる全ての位置のリストを含む。図４に示されているように、<body>タグは上記ドキュメント内の１５番目のテキスト項目である。それ故、DocID=1に関する単語位置リストは、WordLoc=15を指定する単語位置エントリを含み、<body>が１５番目（“15”）の単語位置に位置することを示す。図４のドキュメント内において、各単語の単語位置は、各単語の後ろの上付き数字で与えられる。
【００４２】
ＸＭＬ（ｅＸｔｅｎｄｅｄ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）タグに関して、図３の索引内の上記単語位置エントリは、どこに関連する「終了」タグが存在するかを指定する。この場合、終了タグは</book>であって、上記終了タグの位置は語EndLoc=40で指定される。通常のテキスト語は、単語位置のみが提供されるように、関連する「終了」タグをもたない。例えば、一意の単語エントリ３１３“Baseball”は、単語位置６、２４、２９、および３８の単語“Baseball”の位置を指定する４つの関連単語位置エントリをもつ。
【００４３】
ある単語またはタグは、索引システム内に記憶された追加の情報をもってもよい。例えば、関連する値をもつタグは、索引内に記憶されたそれらの値をもってもよい。図４を参照すると、<book>ドキュメントがタグ<publishinfo>を１３番目の単語として含む。この<publishinfo>タグは、１９９８に設定された(year=1998)属性“year”を含む。本発明の１つの実施の形態では、一意の単語リスト３１０内の上記単語位置エントリはそのような属性値も指定する。それ故、一意の<publishinfo>単語３１５に関する、ドキュメント１に関連する上記単語位置エントリ３３５は、年属性が１９９８である(year=1998)と指定する。
【００４４】
関連性順位付けシステムの動作において、フリーテキストクエリー実行後、一致する語をもつ上記ドキュメントを解析して、ある仮定を使用してそれらの一致の「質」を判断する。これらの仮定は、一致の質を判断する１組のヒューリスティックスを作成するために使用される。以下のリストは、検索語一致品質を判断するために使用可能な多くのヒューリスティックスからなる。
・多くの一致検索語を含むドキュメントは、より少ない一致検索語をもつドキュメントよりも高く順位付けされる。
・近接した一致検索語をもつドキュメントは、互いに離れて位置する一致検索語をもつドキュメントよりも高く順位付けされる。
・より多くの検索語の一致を含むドキュメントは、より少ない検索語の一致を含むドキュメントよりも高く順位付けされる。
・検索クエリー内のまれな検索語の一致をもつドキュメントは、一般的な検索語のみに一致するドキュメントよりも高く順位付けされる。
【００４５】
他の関連性順位付けヒューリスティックスも適用可能である。さらに、本発明の実施の形態は上に挙げたヒューリスティックス全てを実装する必要はない。
【００４６】
本発明の１つの実施の形態では、上記関連性順位付けシステムが、ドキュメントの異なる領域に関する関連性スコアを作成し、次に、それらの領域内の関連性スコアを組み合わせて、全体としてのドキュメント関連性スコアを生成する。例えば、典型的なＨＴＭＬ（Ｈｙｐｅｒ−Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）ドキュメントはｔｉｔｌｅ領域とｂｏｄｙ領域を含む。個々の関連性スコアは上記ｔｉｔｌｅ領域と上記ｂｏｄｙ領域に関して別々に計算可能である。続いて、上記ｔｉｔｌｅ領域の関連性スコアおよび上記ｂｏｄｙ領域の関連性スコアは組み合わされ、そのドキュメントに関する全体の関連性スコアを生成する。
【００４７】
あるドキュメントに関する全体の関連性スコアは、異なる領域に関する関連性順位付けスコアをまとめて合計することにより計算可能である。その代わりに、あるドキュメントに関する上記全体の関連性スコアは、単純に上記ドキュメントの全ての異なる領域に関して見つかる最大スコアに設定されてもよい。１つの好ましい実施の形態では、個々の領域関連性スコアは、上記ドキュメントの１つの領域が上記ドキュメントの他の領域を支配するのを防ぐため、まとめて平均をとる。さらに、領域影響制限パラメータは、いずれかの特定のドキュメント領域が全体のドキュメント関連性スコアに影響を与える可能性のある影響の量を制限できる。
【００４８】
ドキュメントの中の異なる領域をスコア計算するために、本発明の１つの実施の形態は、領域内に見つかる検索語の一致の種々の異なる定量的尺度を解析する。１つの実施の形態では、一致する語の近接性および一致する語の出現回数は上記ドキュメント領域の上記関連性スコアの計算における使用のために定量化される。
【００４９】
上記関連性順位付けシステムは、一致する検索語の間の距離に相関する近接性スコアを生成する。一致する検索語が互いに近ければ近いほど近接性スコアが高い。それ故、もしユーザが検索文字列“ｔｏｍ  ｃｒｕｉｓｅ”を入力すると、上記関連性順位付けシステムは、俳優Ｔｏｍ  Ｃｒｕｉｓｅの名前を含むドキュメントを文“Ｔｏｍ  ａｓｋｅｄ  ｔｈｅ  ａｕｔｏｍｏｂｉｌｅ  ｓａｌｅｓｍａｎ  ｉｆ  ｔｈｅ  ａｕｔｏｍｏｂｉｌｅ  ｗａｓ  ｅｑｕｉｐｐｅｄ  ｗｉｔｈ  ａ  ｃｒｕｉｓｅ  ｃｏｎｔｒｏｌ  ｓｙｓｔｅｍ．”を含むドキュメントよりも高く順位付ける。
【００５０】
１つの実施の形態では、関連性順位付けシステムは、隣接する一致する語の間の距離の調和平均を計算することにより、近接性スコアを生成する。例えば、もしフリーテキストクエリーが、語Ａ、Ｂ、およびＣを検索（フリーテキストクエリー文字列“Ａ  Ｂ  Ｃ”）して、そのドキュメントのテキストが“ｘ  Ａ  ｘ  ｘ  ｘ  Ｂ  ｘ  ｘ  Ｃ  ｘ  ｘ  ｘ  ｘ  ｘ  ｘ  Ａ  ｘ  ｘ”である（ここで各“ｘ”は単語を表す）と、上記調和平均は第１のＡならびにＢの間の距離（単語距離４）、ＢならびにＣの間の距離（単語距離３）、およびＣならびに最後のＡの間の距離（単語距離７）として計算される。それ故、
【数１】
2005525655.tif 000003
である。
【００５１】
上記調和平均は、１つの大きな値が平均計算値に偏って影響しないという有用な特性を持つ。
【００５２】
上記近接性スコアの生成は、種々の調整を使用して変更可能である。例えば、もし２つの連続した検索語が元々のフリーテキストクエリーと同じ順序でなければ、罰金量が、２つの隣接した語の間の距離に加算されてもよい。さらに「ドロップギャップ」距離があってもよい。ドロップギャップ距離とは、隣接した検索語の間の最大可能距離のことである。もしドロップギャップ距離が超過されると、新しい隣接した対の距離は、次にヒットするマッチした検索語から始まる。
【００５３】
語の存在または不在は、関連性スコアに影響させるために使用可能である。１つの実施の形態では、語の存在または不在は、近接性スコアを変更するために使用される。そのような実施の形態において、フリーテキストクエリー内にｎ語あって、そのｎ語のうちｍ語が１つのドキュメント内にあると、もし上記ドキュメント内に全ての上記語が見つからないなら、近接性スコアを下げるために、近接性スコアに（ｍ−１）／（ｎ−１）をかけてもよい。例えば、もしフリーテキストクエリーが４つの検索語Ａ、Ｂ、ＣおよびＤ（フリーテキストクエリー文字列“Ａ  Ｂ  Ｃ  Ｄ”）をもち、上記ドキュメントが語ＡＢおよびＢＣのみを含むと、近接性スコアに（ｍ−１）／（ｎ−１）＝（３−１）／（４−１）＝２／３の値をかける。
【００５４】
ある検索語が１つのドキュメント内に現れる回数（検索語の「頻度」）は、その関連性の決定を助ける。１つの実施の形態では、上記関連性順位付けシステムは、各検索語に関し２つの異なる型の頻度、すなわち、絶対頻度と相対頻度を計算する。検索語の絶対頻度（ＦA）とは、特定の領域で検索語が現れる回数である。検索語の相対頻度とは、特定の領域で検索語が現れる回数を領域の長さ（Ｌ）で割ったものである。それ故、相対頻度は絶対頻度（ＦA）および領域の長さ（Ｌ）に関して以下のように表せる。
【数２】
2005525655.tif 000004
ここで、
ＦA＝絶対頻度
Ｌ＝領域の長さ（単語数で表す）
である。
【００５５】
ドキュメント領域内の１つの検索語の上記絶対頻度および上記ドキュメント領域内の上記検索語の相対頻度は、上記ドキュメント領域内の上記検索語の正規化頻度を計算するために組み合わされてもよい。１つの実施の形態では、上記絶対頻度を相対頻度と組み合わせて正規化頻度とするために、定数が使用される。特に、上記正規化頻度は以下のように表される。
【数３】
2005525655.tif 000005
ここで、
ＫA＝絶対頻度の一定の乗数（０から１の範囲）を指定する値
ＦA＝絶対頻度
ＫR＝相対頻度の一定の乗数（０から１の範囲）
Ｌ＝領域の長さ（単語数で表す）
である。
【００５６】
次に、上記ドキュメントの各領域に関する正規化頻度値は、そのドキュメントの全体の正規化頻度のために組み合わされる。しかし、１つの領域からの上記正規化頻度値はもう１つの領域に関する頻度値を圧倒するかもしれない。それ故、１つの実施の形態は、各領域が組み合わされた正規化頻度に関して持ちうる影響量を制限する。
【００５７】
最後に、上記システムは、異なる検索語に関する正規化頻度を組み合わせて、ドキュメントの正確なスコアにする。上記正確なスコアは、まれな検索語を含むドキュメントに高いスコアが与えられるように、特定の検索語がまれな程度を考慮に入れてもよい。１つの実施の形態は、検索語のまれさを指定する各検索語の逆ドキュメント頻度（ＩＤＦ）スコアを計算することによりこれを実行する。検索語の上記ＩＤＦスコアは正確なスコアを調整するために使用される。上記ＩＤＦスコアは、上記検索語を含むドキュメント数の対数をとり、索引付けされたドキュメントの全体数（Ｄ）で割ることにより計算される。上記正確なスコアは、一致した検索語の数を考慮に入れてもよい。１つの実施の形態では、これは、一致した数の計測値を正確なスコアに加えることにより実行される。
【００５８】
１つの実施の形態では正確なスコアは以下のように計算される。
【数４】
2005525655.tif 000006
ここで、
Ｍ＝このドキュメント内の一致語の数
ＦM＝正規化頻度
Ｗi＝現在の検索語ｉに一致するドキュメント数
Ｄ＝ドキュメントリポジトリ内の全ドキュメント数
ＫIDF＝単語の逆ドキュメント頻度（ＩＤＦ）が正確なスコアを増加させる程度を調整するために使用される乗数
Ｋmatching＝一致するドキュメントの数を調整する乗数
である。
【００５９】
もしＫmatchingが十分に大きければ、関連性スコアにより分類された、返されるドキュメントは、一致した検索語の数により複数のドキュメントの複数の集団に分割される。特に、ドキュメントの第１の集団は、全ての検索語に一致するドキュメントを含み、ドキュメントの第２の集団は１つを除く全ての検索語に一致するドキュメントを含み、以下同様である。
【００６０】
上記関連性順位付けシステムは、上記近接性スコアと上記正確なスコアを組み合わせることによりドキュメントに関する全体の関連性スコアを生成する。１つの実施の形態では、上記近接性スコアは上記正確なスコアに加えられ、最終的なドキュメント関連性スコアを生成する。
【００６１】
本発明は、設定可能な関連性順位付けシステムを導入する。上記設定可能な関連性順位付けシステムは、上記関連性順位付けシステムを特定のアプリケーションに適応可能な特定の方法で、人が関連性順位付けシステムを設定することを可能にする。上記設定可能な関連性順位付けシステムは、関連性順位付けを調整する多くの異なる方法を提供可能である。１つの実施の形態では、２つの重要な設定可能な概念は、（１）ドキュメント内の“フリーテキストスコア計算領域”；および（２）ドキュメント内の調整済重みをもつ区分である。
【００６２】
上に説明したように、関連性順位付けシステムは構造化ドキュメントを明確な個々の領域に分割可能である。例えば、ＨＴＭＬ（Ｈｙｐｅｒ−Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）ドキュメントはＴｉｔｌｅ領域、Ｂｏｄｙ領域、およびメタ記述領域に分割可能である。本発明はこれらの異なる領域を、個々におよびフリーテキストスコア計算領域を作成することにより異なる方法でスコア計算することを可能にする。これらの３つの異なるフリーテキストスコア計算領域に関する関連性スコアは、個々に計算され組み合わされる。本発明の上記設定可能な関連性順位付けシステムにより、管理者は１組のスコア計算領域を定義可能であり、どのように新しく作成されたスコア計算領域がスコア計算されるかを定義する種々のパラメータを設定可能である。個々に定義されたフリーテキストスコア計算領域に加えて、デフォルトのスコア計算領域が定義されてもよい。上記デフォルトのスコア計算領域は、個々に定義されたスコア計算領域の中に含まれない任意のドキュメント領域が上記デフォルトのスコア計算領域のパラメータを使用してスコア計算されるように、全ドキュメントを包む。
【００６３】
さらに、調整済重みをもつ区分が、関連性スコア計算システムを制御するために使用される。調整済重みをもつ区分は、同じスコア計算領域内にある他のテキストとは異なって扱われるテキストの区分である。例えば、管理者は、スコア計算中、太字のテキストをより多くの重みが与えられる区分として定義可能である。例えば太字の領域内の一致するテキストは３倍重要にスコア計算してもよい。
【００６４】
１つの実施の形態では、上記関連性順位付けシステムは、管理者が１組の明確なフリーテキストスコア計算領域を作成することを可能にする。次に、上記管理者は、これらの新しく定義されたフリーテキストスコア計算領域に関しどのように関連性スコアが計算されるかを指定可能である。１つの実施の形態では、上記管理者は単に１組の関連性スコア計算パラメータを指定する。
【００６５】
全てのドキュメントは、ドキュメント全体に及ぶデフォルトスコア計算領域に割り当てられてもよい。上記デフォルトスコア計算領域はそれ自体の関連性計算パラメータの組をもつ。管理者が定義するフリーテキストスコア計算領域の１つに含まれない任意のテキストは、上記デフォルトスコア計算領域の関連性スコア計算パラメータを使用して計算されるそのテキストの関連性をもつ。
【００６６】
作成されたスコア計算領域は、ドキュメント関連性順位付け計算に影響する。関連性順位付けが実行されると、上記関連性順位付けシステムは、管理者が定義したスコア計算領域に関する関連性スコアおよび上記デフォルトスコア計算領域に関する（もしデフォルトスコア計算領域が定義されていれば）関連性スコアを計算する。次に、これらの個々に計算されたスコア計算制領域関連性スコアはまとめて組み合わされて、上記ドキュメントに関する全体の関連性スコアが作成される。１つの実施の形態では、上記個々のスコア計算領域関連性スコアは、全ての管理者が定義した領域（もしデフォルトのスコア計算領域が定義されていれば、上記デフォルトのスコア計算領域を含む）に関して累積スコアの対数をとることにより組み合わされる。
【００６７】
本発明の設定可能な関連性順位付けシステムにおいて、管理者は、まず、上記スコア計算領域が適用するスキーマまたはドキュメントの型を特定し、次に上記スコア計算領域を定義するパラメータの値を設定することにより、カスタマイズされたscoring-regionを定義する。１つの実施の形態では、管理者は各々の新しいスコア計算領域に関して４つのパラメータを定義する。query、match_weight、absFreqCoeff、およびmaxContribPctである。他の実装では追加のあるいはより少ない関連性スコア計算パラメータを使用してもよい。これらの属性およびパラメータは、上記ドキュメント索引付けおよびクエリー応答システム１００によりロードされる設定ファイル内で設定される。以下のテーブルリストは、新しいスコア計算領域を定義する実例となる構文を並べたものである。
【００６８】
表１−スコア計算領域定義
/xdb/query/scoring/n/param string doc-class scoring-region
/xdb/query/scoring/n/query string query
/xdb/query/scoring/n/weight float weight
/xdb/query/scoring/n/absFreqCoeff float coeff
/xdb/query/scoring/n/maxContribPct float pct
【００６９】
上記スコア計算領域定義内の各エントリを詳細に説明する。（注：パス部分のscoringのすぐ後のnはスコア計算設定数である。）このスコア計算設定数はサーバ設定ファイル内の全てのスコア計算設定のリスト内のスコア計算設定の各組の位置を同定する。上記スコア計算設定数は１から始まり、サーバ設定ファイル内のスコア計算設定の各組ごとに１ずつ増加せねばならない。
【００７０】
管理者は、まず、新しいscoring-regionが適用されるドキュメントのスキーマまたはタイプを指定する。１つの実施の形態では、上記管理者はdoc-classの値をドキュメントクラスの最上位の要素の名前に設定する。例えば、管理者は、“book”のdoc-classを以下のように指定することにより、図４に示されるドキュメントのように、<book>クラスドキュメントに関するスコア計算領域を生成してもよい。
/xdb/query/scoring/n/param string book scoring-region
【００７１】
この方法で、このスコア計算領域は<book>クラスドキュメントへ適用するのみである。それ故、異なる関連性順位付けシステムは、異なるタイプのドキュメントに関して独立して作成可能である。このscoring-regionに関して設定された上記スコア計算設定数の値nは、サーバ設定ファイル内で次に続く４行の設定行内のnに関しても設定されねばならない値である。
【００７２】
次に、上記管理者は、カスタマイズされたスコア計算アルゴリズムが適用されるドキュメント内の領域を定義する。１つの実施の形態では、上記スコア計算領域は、ノード集合まで評価せねばならないＸＭＬパス言語（Ｘｐａｔｈ）の表現により明確に定義される。ＸｐａｔｈはＸＭＬドキュメントのアドレス指定部分のための言語である。Ｘｐａｔｈに関する詳しい情報はワールドワードウェブサイトｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／ｘｐａｔｈで見つけられる。例えば図４のbookの“title”をスコア計算領域として定義するために、上記管理者は以下の設定行を使用する。
/xdb/query/scoring/n/query string//title
【００７３】
スコア計算領域は、上記クエリーが上記ドキュメント内の１より多いノードまで評価する場合のように、互いに離れていてもよい。
【００７４】
新しく定義されたスコア計算領域は、以前定義されたスコア計算領域と重ることがある。その場合、新しく定義されたスコア計算領域は以前定義されたスコア計算領域を２つ以上の部分へ分割する。最も内側のスコア計算領域（例えばドキュメントオブジェクトモジュール（ＤＯＭ）ツリーの最深ノード）が優先される。
【００７５】
管理者は、スコア計算領域内の一致の重要性を指定する重みパラメータを定義する。特に、重み属性は、上記スコア計算領域内で発生する単語または語句の各一致に関する関連性スコアに加算される数である。１つの実施の形態では、デフォルトのスコア計算領域は重み１．０が割り当てられる。もしスコア計算領域の重み値が２．０ならば、そのスコア計算領域内での１つの単語または語句の一致は、重み１．０のスコア計算領域内の２つの一致と同じ量を関連性スコアに与える。スコア計算領域の重みを２．０に設定するために、上記管理者は以下の設定行を使用する。
/xdb/query/scoring/n/weight float 2.0
【００７６】
関連性順位付けに関して前に説明したように、上記関連性順位付けシステムは、フリーテキストクエリー内の各単語または各語句に関して、正規化頻度と呼ばれるスコア計算因子を計算する。上記正規化頻度は絶対頻度（ある領域内での上記単語または上記語句の出現回数）および相対頻度（ある領域の長さで正規化した領域内での上記単語または上記語句の出現回数）の項で定義される。
【００７７】
１つの実施の形態では、管理者はAbsFreqCoeff値を０．０から１．０の範囲の数に設定可能である。このAbsFreqCoeff値は、絶対頻度が正規化頻度全体に寄与している程度を決定する値である。上記相対頻度は残りの部分（１−AbsFreqCoeff）に寄与すると見なされる。それ故、１つの実施の形態では、正規化頻度を求める式は以下のように表される。
【数５】
2005525655.tif 000007
ここで、
ＦA＝検索語の絶対頻度
ＬAVG＝全てのドキュメントにわたるスコア計算領域の平均長を表す定数
Ｌ＝領域の長さ（単語数で表す）
AbsFreqCoeff＝絶対頻度が正規化頻度に寄与する割合
である。
【００７８】
AbsFreqCoeffを１．０に設定することは、上記絶対頻度が全て正規化頻度に寄与し、上記相対頻度が上記正規化頻度に全く寄与しないことになり、一方、AbsFreqCoeffを０．０に設定することは、上記絶対頻度が正規化頻度に全く寄与せず、上記相対頻度が上記正規化頻度に全て寄与することになる。AbsFreqCoeffを０．５に設定することは、両方から等しく寄与することになる。
【００７９】
maxContribPctパラメータはこのscoring-regionの全体スコアに対する最大寄与度を制御する。maxContribPctパラメータを使用することは、故意のまたは故意でない過使用語の、結果への強い影響を防止する。例えば、積極的な不動産業者が、ドキュメント内のtitle内の単語が検索中より大きな重みを与えられる事実を悪用しようとするかもしれない。そのような業者はアリゾナ州内のリストにした不動産に関するドキュメントをまとめ、そのドキュメントのtitle内に語句“ＵＮＩＸ  ｐｒｏｇｒａｍｍｉｎｇ”を５０回挿入するかもしれない。後に、不運なプログラマがＵＮＩＸ  ｐｒｏｇｒａｍｍｉｎｇに関する情報を探しているとき、検索結果リストの中にポップアップされる最初の検索結果は、アリゾナ州内の不動産に関するドキュメントである。title領域に関するmaxContribPctの値を制限することにより、タイトル領域の寄与度は他のドキュメントを完全には圧倒しない。それ故、所望の検索語“ＵＮＩＸ  ｐｒｏｇｒａｍｍｉｎｇ”をドキュメントのtitle内に含みbody内に含まない上記不動産に関するドキュメントはドキュメントリストの上部には現れない。maxContribPctは１から１００のパーセントである。
【００８０】
時には検索者は、ＸＭＬドキュメントのある要素または属性内に現れる複数の単語に、同じ領域内の他の単語よりも関連性スコアに対してより高い寄与度を与えることを望むかもしれない。例えば、ＨＴＭＬドキュメント内では、管理者は、太字のテキスト区分に含まれる単語に、通常のテキスト区分に含まれる単語よりも関連性スコアに対してより高いスコアを与えることを望むかもしれない。本発明は太字のテキスト区分に調整済重みをもつ区分を設定することにより、管理者がこの目標を達成することを可能にしている。
【００８１】
１つの実施の形態では、管理者はドキュメントクラス、スコア設定数値を指定し、調整済重みをもつ区分の２つの属性値、クエリーおよび重みを設定することにより上記調整済重みをもつ区分を定義する。上記管理者は、上記調整済重みをもつ区分に関するこれらの値およびその属性を、サーバ設定ファイル内の３行の設定行で設定可能である。
【００８２】
設定済重み区分の定義
/xdb/query/scoring/n/param string doc-class weight-region
/xdb/query/scoring/n/query string query
/xdb/query/scoring/n/weight float weight
【００８３】
パス部分のscoringのすぐ後のnはスコア計算設定数である。このスコア計算設定数はサーバ設定ファイル内の全てのスコア計算設定のリスト内のスコア計算設定の各組の位置を同定する。上記スコア計算設定数は１から始まり、サーバ設定ファイル内のスコア計算設定の各組ごとに１ずつ増加せねばならない。
【００８４】
調整済重みをもつ区分を定義するために、管理者は、まず、調整済重みをもつ区分が適用されるドキュメントのタイプまたはスキーマを定義する。特に、上記管理者は、doc-classを、調整済重みをもつ区分により影響を受けるドキュメントクラスの最上位の要素の名前に設定する。特定のドキュメントクラスのドキュメントのみが、作成された調整済重みをもつ区分により影響を受ける。それ故、本発明のシステムは、異なる調整済重みをもつ区分を異なるドキュメントタイプ用に作成可能にする。
【００８５】
上記管理者は、上記のクエリーのパラメータを、カスタマイズされたスコア計算の重みが適用されるドキュメント内の実際の区分を定義するために使用する。１つの実施の形態では、上記調整済重みをもつ区分は、ノード集合を評価せねばならないＸｐａｔｈ表現を使用して定義される。上記調整済重みをもつ区分は、上記クエリーが上記ドキュメント内の１より多いノードまで評価したときの場合のように互いに離れていてもよい。例えば、クエリー//bはｈｔｍｌドキュメント内の全ての異なる互いに離れた太字のテキスト区分を見つける。１つの調整済重みをもつ区分はそれより前の調整済重みをもつ区分と重なり、その場合、上記１つの調整済重みをもつ区分はそれより前に定義された領域を２つ以上の部分に分割する。最も内側の領域（例えばドキュメントオブジェクトモデル（ＤＯＭ）ツリーの最深ノード）が優先される。
【００８６】
上記重み属性は、調整済重みをもつ区分内で単語または語句の一致が発生したときに上記スコアに加算される数値である。１つの一致により寄与を受けるデフォルトの重みは、一致が発生したスコア領域用に指定された重みにより決定される。１つの実施の形態では、上記関連性順位付けシステムは調整済重みまたはスコア計算領域用に指定された重みの大きい方を選択する。例えば図４を参照すると、もし<title>スコア計算領域が定義され、太字（<b>）の調整済重みをもつ区分が定義されると、単語“Best”（単語５）に関するヒットをスコア計算するとき、関連性順位付けシステムは、上記<title>スコア計算領域の重みパラメータの大部分または上記太字（<b>）の調整済重みをもつ区分用の調整済重みを選択する。
【００８７】
図５は、本発明の１つの実施の形態の動作方法を説明するフローチャートである。図５を参照すると、本システムは、まず、クエリー実行モジュールから始まる（５１０）。次に上記クエリー実行モジュールは、カスタマイズされた関連性順位付けパラメータをロードする（５２０）。前の説明で、カスタマイズされた上記関連性順位付けパラメータが設定ファイルに保存される１つの実施の形態を説明している。上記クエリー実行モジュールはそれらのパラメータをロードする。
【００８８】
ブロック（５３０）において、上記クエリー実行モジュールは、速やかな関連性順位付けの実行を助ける特化した構造を作成可能である。本明細書に記載の実施の形態では、上記クエリー実行モジュールはＸｐａｔｈノード集合を使用してスコア計算領域および調整済重みをもつ区分を同定するが、上記索引付けシステムは単語の数字による位置付けを使用して単語およびタグの位置を同定する。
【００８９】
１つの実施の形態では、上記クエリー実行モジュールは、ノード集合の定義されたスコア計算領域および調整済重みをもつ区分を単語の位置に変換することにより、１対の１次元配列を作成可能である。次に上記１次元配列は、ある単語が１つのスコア計算領域または１つの調整済重みをもつ区分に含まれるか否かを即座に同定するために使用可能である。特に上記１対の１次元配列は、その単語の番号により索引付けされ、どのスコア計算領域または調整済重みをもつ区分の中にその単語が含まれるかを指定する。例えば、図６Ａは、単語位置により索引付けされる１次元配列を示し、デフォルトのスコア計算領域では“０”を返し、<title>スコア計算領域では”１”を返し、<Body>スコア計算領域では“２”を返し、<meta>スコア計算領域では“３”を返す。同様に図６Ｂは、単語位置により索引付けされる１次元配列を示し、デフォルトの重み領域では“０”を返し、太字（<b>）の重み領域では”１”を返し、ヘッダ１（<h1>）の重み領域では“２”を返す。図５を参照すると、ブロック（５３０）が選択自由であることが点線で示されている。
【００９０】
ブロック（５４０）では、上記クエリー実行モジュールはクエリーの受け付けを開始する。クエリーが入力されると、上記クエリー実行モジュールは、まず、そのクエリーを分析する（５５０）。次に、その分析されたクエリーは、結果を得るために実行される（５６０）。次に上記クエリー実行モジュールは、管理者が定義した関連性順位付けパラメータを使用して、各ドキュメントに関する関連性順位付けスコアを計算する（５７０）。最後に、上記クエリー実行モジュールは、結果を、上記クエリーを要求したエンティティに返す（５８０）。
【００９１】
図７は、関連性順位付けパラメータをセッションごとに設定可能である別の実施の形態を示す。このように、個人的な関連性順位付けシステムをもつことを望むユーザは、特定の検索セッション用にそのようなカスタム関連性順位付けシステムを作成可能である。
【００９２】
図７を参照すると、本システムは、クエリー実行モジュールから始まる（７１０）。上記クエリー実行モジュールは、中断されるかユーザがクエリーセッションを開始するのを待つ（７１５）。ユーザがクエリーを開始したとき、上記クエリー実行モジュールはそのユーザの関連性順位付けパラメータを読み込む（７２）。上記ユーザの関連性順位付けパラメータは、クエリーセッションを開始するときの引数、設定ファイル、または他の適切な方法により提供可能である。
【００９３】
上記ユーザの関連性順位付けパラメータを読み込んだ後で、本システムは、速やかに関連性スコアを計算するために、データ構造を作成する（７３０）。例えば、上記クエリー実行モジュールは、スコア計算領域および調整済重みをもつ区分を決定するために、各々図６Ａおよび図６Ｂに示されているような１次元配列を生成可能である。
【００９４】
次に、上記クエリー実行モジュールは、上記ユーザからクエリーを受け付ける準備をする（７４０）。もし上記ユーザが上記クエリーセッションを中断すると、上記クエリー実行モジュール（７１５）に戻り、中断または開始される他のクエリーセッションを待つ。クエリーを入力したとき、上記クエリー実行モジュール１４０は上記クエリーを分析する（７５０）。次に、上記クエリー実行モジュールは上記クエリーを実行して、ドキュメントの得られた１組を決定する（７６０）。
【００９５】
上記クエリー実行モジュール１４０は、順位付けパラメータを使用して関連性スコアを計算する（７７０）。最後に上記クエリー実行モジュール１４０は、各関連性順位付けスコアと共に、得られたドキュメントのリストを返す（７８０）。
【図面の簡単な説明】
【００９６】
【図１】本発明の実施の形態によって設定されたドキュメント索引付けおよびクエリー応答システムのブロック図
【図２】フリーテキストクエリー“（SupermanＯＲBatman）ＡＮＤ（Playstation2ＯＲPS2）”から作成される木構造を表す図
【図３】本発明の実施の形態にしたがって使用可能なドキュメント索引付け構造の１つの実施の形態を示す図
【図４】図３のドキュメント索引構造内で索引付けされたいくつかのＸＭＬドキュメントの語をもつＸＭＬドキュメントの例を示す図
【図５】本発明の実施の形態を説明するフローチャート
【図６Ａ】本発明の実施の形態にしたがって語の位置により索引付けされてスコア計算領域コードを指定する１次元配列を示す図
【図６Ｂ】本発明の実施の形態による、語の位置により索引付けされて重み領域コードを指定する１次元配列を示す図
【図７】本発明の代わりの実施の形態を説明するフローチャート
【図１】
2005525655.tif 000008
【図２】
2005525655.tif 000009
【図３】
2005525655.tif 000010
【図４】
2005525655.tif 000011
【図５】
2005525655.tif 000012
2005525655.tif 000013
【図７】
2005525655.tif 000014
【国際調査報告】
2005525655.tif 000015
2005525655.tif 000016