説明

対話形サーチクエリーを改良するためシステム及び方法

【課題】ユーザの好みにより近いサーチ結果をもたらすために、サーチクエリーをより絞り込んで定義されたクエリーに改良する際にユーザへの支援を提供する。
【解決手段】受信クエリーは、該受信クエリーに対応するランク付けされた文書の初期グループを作成するように処理される。ランク付けされた文書の初期グループ内の文書の全部又は一部の各文書は、ランク付けされた候補用語のそれぞれのセットの各候補用語が文書内に組み込まれるように、ランク付けされた候補用語のそれぞれのセットに関連付けられる。ランク付けされた候補用語の各それぞれのセットは、受信クエリーの処理の前の時点で識別される。選択関数に従って、候補用語のそれぞれのセットの1つ又はそれ以上内の候補用語のサブセットが選択される。受信クエリーに応答して、ランク付けされた文書の初期グループと候補用語のサブセットとが提示される。

【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2003年3月21日に出願した代理人整理番号10130−044−888の名称が「対話形サーチクエリー改良のためのシステム及び方法」の米国特許出願番号第60/456,905号に対する優先権を主張し、その全体が引用により本明細書に組み込まれる。本発明は、データベース内の文書、或いはインターネット又はイントラネットに結合されたサーバ上に格納された文書を探し出すためのサーチエンジンなどのサーチエンジン分野に関し、詳細には、本発明は、ユーザにとって関心のある文書を探し出すためにそのサーチクエリーを改良する際にサーチエンジンのユーザを支援するためのシステム及び方法に関する。
【背景技術】
【0002】
ユーザの情報のニーズを伝え、該ニーズが目標文書の語彙内で表現される方法と一致する検索式を作ることは、テキストサーチエンジンのユーザにとって困難な認知タスクとして長い間認識されてきた。サーチエンジンユーザの大多数は、1つ又は2つの語だけのクエリーを用いて文書のサーチを始め、次いで、サーチエンジンによって得られた最初の10位の結果の中にユーザが求める文書又は複数の文書が見つからないと失望する。少なくとも幾つかのサーチでは、結果をランク付けする方法を改善することによってユーザの満足度を向上させることができるが、極めて広範なサーチクエリーでは、多くの様々なサーチエンジンユーザのより具体的な情報要求を満たすことはできない。ユーザがクエリー式を改良するのを助ける1つの方法は、丁度司書が情報を探している人と対面した会話で行うように、用語の提案を提供することである。しかしながら、システムでは、概念的にクエリーに関係する可能性のある何百の中から、サーチを行っているユーザに最も関係がありそうな用語がどれであるかを「推測」しなければならないので、これを自動的に行うことは全く別のことである。関連する用語を選択するための一般的な方法には、オンラインシソーラス又は以前のログに記録されたクエリーのデータベース(現在のクエリー内の1つ又はそれ以上の語を含む以前のクエリーを見つけるためにサーチすることができる)に照会することが含まれる。このような方法の欠点は、このようにして得られた関連用語が文書自体のコーパス内で使用される内容又は語彙を実際に反映している保証がないことである。この理由により、関連用語をクエリーの実際の結果から動的に収集しようと試みる代替方法が多くの関心を集めている。
【0003】
改良提案を生成するためにサーチ結果セットを使用する幾つかの従来方法には、用語関連性フィードバック(例えば、「Fast and Effective Query Refinement」, Velez他, SIGIR’97会報 p6−p15)、ハイパーインデックス(「Query Reformulation on the Internet:Empirical Data and the Hyperindex Search Engine」, Bruza及びDennis, RIAO’97会報 p500−p509)、パラフレーズ(「The Paraphrase Search Assistant:Terminological Feedback for Iterative Information Seeking」, Anick及びTipirneni,SIGIR’99会報、p153−p159)、及びクラスタリング(「Web Document Clustering:A Feasibility Demonstration」, Zamir及びEtzioni, SIGIR’98会報 p46−p54)がある。ほとんどの関連性フィードバック法は、部分一致サーチエンジン用に設計されており、通常、ユーザによって関連するもの或いは関連しないものとして明示的にタグ付けされた検索文書のサブセット全体にわたる計算から得られた複数の重み付けされた用語を付加することによって、クエリー式を展開することを伴う。ハイパーインデックスは、サーチエンジンによって返された断片の全体にわたり構文解析器を作動させて、クエリー用語を包含する名詞句を抽出する。パラフレーズは、結果として得られたセット文書から名詞句を抽出し、語句拡散に基づいて表示するためのフィードバック用語を選択する。クラスタリング法は、結果のセット断片をクラスタ化し、それぞれのクラスタ内に出現してくる用語から代表的なクエリー用語を得ようとするものである。これらの方法の多くは機能的であるが、生成されたフィードバック用語のランタイム性能又は関連性のいずれかの原因により、巨大なウェブサーチエンジンでも多少不十分である。サーチを向上させるための関連のサーチ用語の識別において、ユーザを支援する効率的な方法に対する当該技術分野における必要性がある。
【0004】
従来技術の限界をよく理解するためには、「Fast and Effective Query Refinement」, Velez他, SIGIR’97会報 p6−p15を綿密に調べることで保証される。Velez他は、初期クエリーを改良するために、自動的な提案からの用語を初期クエリーに付加するクエリー改良のシステム及び方法を提供する。Velez他の文献では、一般的なクエリー改良プログラムDMをベースに構成されている。Velez他文献で示されるように、DMは以下のステップを有する:
C=文書コーパス
q=ユーザクエリー
r=検討するマッチング文書の数
fcn(S)=アルゴリズム特定重み用語セットS
とすると、
1.クエリーqにマッチする文書のセットD(q)∈Cを計算する。
2.文書にマッチするトップrのサブセットDr(q)を選択する。
3.dが文書、tが用語である場合に、T(q)={t|∃d∈Dr(q):t∈d}であるような文書Dr(q)から用語のセットT(q)を計算する。
4.最も高い重みWfcn(S)でT(q)からn個の用語のサブセットSを計算する。
5.Sを用語提案のセットとしてユーザに提示する。
Velez他文献で示されるように、この方法は、高コストのランタイム技法であるので満足できるものではない。言い換えると、文書データベース(コーパス)が大きい場合において、DMを使用して用語提案のセットSを計算するために不満足な時間量を取ることになる。
【0005】
Velez他は、DMによって動的に実行される作業のかなりの量を事前計算することによってDMの速度を向上させようとしている。この事前計算段階では、Velez他は、コーパスの各単語の用語tを、単一の用語クエリーtを所与としてDMアルゴリズムが提案する用語のそれぞれのセットmにマップするデータ構造を作成する。次に、ランタイムにおいて、ユーザから任意のクエリーが受信される。クエリーは通常、用語のセットを含む。クエリーに応答して、Velez他は、クエリーの用語の各々に対応する用語のそれぞれのセットmを収集し、これらのセットの各々を単一のセットにマージし、次いで、これが改良されたサーチのための提案としてユーザに戻される。例えば、ユーザがクエリー「スペースシャトル」を入力する場合を考える。この事例では、Velez他は、語「スペース」に対して事前計算されている用語のセットmと、語「シャトル」に対して事前計算されている用語のセットmとを取得することができ、これらを一緒にマージしてクエリー「スペースシャトル」に対して提案される用語のセットを得るようにする。
【0006】
この方法は、オフラインで用語の関連性のサブセットを事前計算することによってランタイム性能を向上させるが、Velez他の方法には欠点がある。第1に、文脈の問題がある。Velez他の方法は、用語tがそれ自体で或いは複数用語クエリーの一部として現れるかどうかに関わらず、所与の用語tに関連する用語のセットmが同じであるという仮定に依存する。しかしながら、この仮定は常に真であるとは限らない。複数用語句内に現れる用語は、ある事例においては、それ自体が現れている用語に対して完全に異なる意味を表すことがある。Velez他でのベースとなる仮定により、この方法は幾つかの事例では不適切なサーチ用語提案を潜在的にもたらす可能性があり、或いは、クエリー全体の文脈内でより関連性があるはずの他の提案を見逃す可能性がある。第2に、コーパス(文書データベース)が変わると、Velez他の方法は、用語の各セットmが、場合によってはコーパスに最近加えられたファイルを含むコーパスの複数のファイルのコンテンツに依存するので、コーパスの用語tにそれぞれ関連する用語のセットmを再計算することが必要となる。
【0007】
Xu及びCroft,SIGIR’97、p4−p11は、幾つかの概念(サーチ用語)を含むことができるサーチクエリーが受け取られる前に、所与の概念に関係する用語のセットが事前計算される別の方法を説明している。Velez他の方法と同様に、Xu及びCroftの方法は、コーパスが時間につれて変化するときに概念に関連する用語の広範な再計算を必要とする、静的クロス文書データ構造及び統計の構成に依存する。従って、Xu及びCroftの計算要求は、極めて大きな動的文書データベースにとっては不満足なものである。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】米国特許出願番号第60/456,905号公報
【非特許文献】
【0009】
【非特許文献1】「Fast and Effective Query Refinement」, Velez他, SIGIR’97会報 p6−p15
【非特許文献2】「Query Reformulation on the Internet:Empirical Data and the Hyperindex Search Engine」, Bruza及びDennis, RIAO’97会報 p500−p509
【非特許文献3】「The Paraphrase Search Assistant:Terminological Feedback for Iterative Information Seeking」, Anick及びTipirneni,SIGIR’99会報、p153−p159
【非特許文献4】「Web Document Clustering:A Feasibility Demonstration」, Zamir及びEtzioni, SIGIR’98会報 p46−p54
【発明の概要】
【0010】
上記従来技術から、ユーザの好みにより近いサーチ結果をもたらすために、サーチクエリーをより絞り込んで定義されたクエリーに改良する際にユーザへの支援を提供することが望まれる。
本発明は、文書インデックスから文書を検索するよう設計されたサーチクエリーを改良するための改善された方法を提供する。本発明は、コーパスが更新される度に再計算しなければならないクロス文書データ構造又はグローバル統計に依存しないので有利である。更に本発明は、句のミックス、単語用語、及び特殊化(クエリー用語を含む句)を含む関連のある提案の短いリストを作成するために、周知の方法に比べてランタイムでフェッチする必要のある結果が少ないので、クエリー時(ランタイム)にI/O資源を必要とすることが著しく少ない。本発明において、文書インデックスでの各文書は、例えば文書インデックスの作成中にクエリーに先立つある時間に処理される。この処理では、文書インデックスでの各文書は、文書がその文書に対するランク付けされた候補用語のセット内に含むのに何らかの適切な用語を含むかどうかを判定するために調べられる。文書がこのような用語を含む場合、文書への文書インデックスの入力は、文書と関連付けられた用語のセットを含むよう構成される。この用語のセットは、ランク付けされた候補用語のセットと呼ばれる。
【0011】
クエリーが受け取られると、文書の初期グループが文書インデックスから検索される。文書の初期グループは、クエリーに対する関連性によってランク付けされる。文書の「初期グループ」は、クエリーに対して潜在的に関係があるものとして識別された文書のフルセットのうちのセブセットとすることができる。1つの実施形態において、初期グループでの文書の数は、クエリーに潜在的に関係があるものとして識別された全文書より少なく、パラメータ値は通常20と200の間(例えば50)である。次に、重み付け関数は、ランク付けされた文書の初期グループでの文書に関連するランク付けされた候補用語のいずれかのセットに現れる各候補用語に加えられる。トップスコアリング候補用語は、クエリーに応答してランク付けされた文書の初期グループと共に提示される。提示された候補用語の1つをユーザが選択することにより、オリジナルのサーチクエリーへ用語を付加することになる。
【0012】
本発明の1つの態様は、受信クエリーを改良する方法を提供する。受信クエリーは、受信クエリーに対応するランク付けされた文書の初期グループを作成するように処理される。ランク付けされた文書の初期グループでの文書の全部又は一部の各文書は、ランク付けされた候補用語のそれぞれのセットに関連付けられる。候補用語の種々のそれぞれのセットにおける各候補用語は、ランク付けされた文書の初期グループの文書内に組み込まれる。各候補用語は、語又は句とすることができる。更に、好ましい実施形態において、候補用語の種々のそれぞれのセットは受信クエリーを処理する前の時点で構成される。この方法は、続いて、ランク付けされた候補用語の種々のそれぞれのセットの1つまたはそれ以上内にある候補用語のサブセットを選択する。選択関数は、この候補用語のサブセットを選択するのに使用される。次に受信クエリーに応答して、ランク付けされた文書の初期グループと候補用語のサブセットとが提示される。幾つかの実施形態において、処理、選択、及び提示が、オリジナルの受信クエリーと候補用語のサブセットからの候補用語とを含む変更されたクエリーを使用して繰り返される。
【0013】
幾つかの実施形態において、文書と関連付けられた候補用語のセットは、文書の用語を候補用語のマスターリストと比較することによって構成される。用語が候補用語のマスターリストに存在する場合、その用語は、候補用語として文書と関連付けられた候補用語のセットに加えられる。幾つかの実施形態において、候補用語のマスターリストは、10,000,000より多い候補用語を含む。この比較は、文書内の用語の最大数が検討されるか或いは固有の用語の閾値数が検討されるまで繰り返される。次に重み付け及び/又は選択関数が、ランク付けされた候補用語のセットを作成するために候補用語のセットに加えられる。一般的に、この重み付け及び/又は選択関数は、候補用語をランク付けし、次いで、高くランク付けされた用語だけが保持されるカットオフを適用する。幾つかの実施形態において、候補用語のマスターリストは、特定の言語(例えば、英語、スペイン語、フランス語、ドイツ語、ポルトガル語、イタリア語、ロシア語、中国語、又は日本語)について最適化される。幾つかの実施形態において、ランク付けされた文書の初期グループにおける文書の全部又は一部の各文書は、候補用語のマスターリストが最適化された言語と同じ言語である。
【0014】
幾つかの実施形態において、文書インデックスの各文書は、クエリープロセスの前(例えば初期文書インデックス中)の時点で分類される。幾つかの実施形態において、2つの可能なクラス、すなわち第1の家族向けクラスと第2の非家族向けクラスがある。文書の分類の指定は、文書インデックスに含まれる。
【0015】
幾つかの実施形態において、実際には、ランク付けされた候補用語のセットのより複雑な用語のサブセット(サブストリング)であるランク付けされた候補用語のセット内の単語候補用語が廃棄される。更に、より複雑な用語は、ランク付けされた候補用語のセットに関連する文書の全部或いは上位部分において単純な用語が現れた事例の回数に対してクレジットが与えられる。この廃棄及びクレジットは、ランク付けされた候補用語のセットにおけるより複雑な候補用語のサブセットである単語候補用語が無くなるまで繰り返される。更に、同じ手順をより複雑な用語のサブセットである複数語候補用語に適用できる。
【0016】
幾つかの実施形態において、ランク付けされた候補用語のセット内の第2用語の正字の異形又は屈折異形であるランク付けされた候補用語のセットにおける候補用語が廃棄される。更に、第2用語は、ランク付けされた候補用語のセットに関連する文書の全部又は上位部分において正字の異形又は屈折異形用語が現れた事例の回数に対してクレジットが与えられる。この廃棄及びクレジットは、ランク付けされた候補用語のセット内の別の用語の正字の異形又は屈折異形である用語が無くなるまで繰り返される。幾つかの事例では、第2用語は、両方の(例えば複数の)正字の異形又は屈折異形を含む結合用語として候補セット内に上書きされ、関連する文書の全部或いは上位部分に最も現れた異形が結合用語に最初に現れる。幾つかの実施形態において、結合用語が提示された候補用語のサブセットに含めるために選択される場合、結合用語の第1部分のみがユーザに提示される。
【0017】
本発明の幾つかの実施形態は、クエリーに応答して提示されることになる候補用語のサブセットを選択するのに使用される種々の選択関数を提供する。幾つかの実施形態において、この選択関数は、ランク付けされた文書の初期グループ内のトップランクの文書と関連付けられた候補用語のセットにおいて見つけられた情報を利用する。この情報は、ランキングの2つの形式を含む。最初に、文書がランク付けされる。次に、ランク付けされた文書の初期グループ内の文書と関連するランク付けされた候補用語の各セット内の各候補用語がランク付けされる。
【0018】
1つの実施形態において、選択関数は、(i)ランク付けされた文書の初期グループ内のトップランクの文書に関連するランク付けされた候補用語の各それぞれのセット内の各候補用語に対して重み付け関数を適用することを含む。本明細書で使用されるランク付けされた文書の初期グループの各トップランクの文書は、ある閾値ランキングよりも数値的に小さいランク(例えば50、すなわちトップランクの文書がクエリーに戻されたランク付けされた文書の初期グループのトップ50の文書内にある)を有する文書である。例えば、ランク付けされた文書の初期グループが100の文書を含み、閾値ランキングが50である場合を考える。このとき、最初の50の文書はトップランクの文書とみなすことになる。最も高い重みを受け取っているこれらの候補用語は、クエリー結果と共に提示される候補用語のサブセット内に含まれる。幾つかの実施形態において、重み付け関数によって候補用語に加えられる重みは、候補用語が現れるトップランクの文書と関連付けられた候補用語のセットの数に応じて、ランク付けされた候補用語の各こうしたセット内の候補用語の平均位置に応じて、受信クエリーの用語が候補用語内に存在するかどうかによって、候補用語内の文字数によって、或いは候補用語の関連するセット内に用語を含むトップランクの文書の平均ランク位置によって決定される。幾つかの実施形態において、重み付け関数によって候補用語に加えられる重みは、TermCount、TermPosition、ResultPosition、TermLength、及びQueryInclusionのいずれかの組合せ又はいずれかの重み付けサブセットに応じて決定され、ここで、
TermCountは、(i)候補用語を含み、且つ(ii)トップランクの文書にそれぞれ関連するランク付けされた候補用語のセットの数であり、
TermPositionは、(i)候補用語を含み、且つ(ii)トップランクの文書にそれぞれ関連するランク付けされた候補用語のこれらのセットにおける候補用語の位置の関数(例えば平均)であり、
ResultPositionは、候補用語を含むランク付けされた候補用語のセットに関連付けられるこれらのトップランクの文書のランクの関数(例えば平均)であり、
TermLengthは、候補用語の文字の数(候補用語の複雑性)であり、
QueryInclusionは、受信クエリーの用語が候補用語内に存在するかどうかを示す値である。
幾つかの実施形態において、重み付け関数によって候補用語に加えられる重みは、次式に応じて決定される。
TermCount+TermPosition+ResultPosition+TermLength+QueryInclusion
【0019】
幾つかの実施形態において、TermCount、TermPosition、ResultPosition、TermLength、及びQueryInclusionは各々、別々に重み付けされる。幾つかの実施形態において、重み付け関数によって候補用語に加えられる重みは、次式に応じて決定される。
(TermCount*1)+
(TermPosition*(w2+(RefinementDepth*2´)))+
(ResultPosition*3)+
(TermLength*(w4+(RefinementDepth*4´)))+
(QueryInclusion*(w5+(RefinementDepth*5´)))
ここで、w1、w2、w3、w4、w5、w2´、w4´、及びw5´は別々の重みであり、RefinementDepthは受信クエリーに対して処理が行われた回数である。
【0020】
幾つかの実施形態において、選択関数は、ランク付けされた文書の初期グループ内の各文書について文書の分類を決定する段階を含む。次いで、文書のセットの閾値パーセンテージが第1分類(例えば、家族向けカテゴリー)に属する場合には、第2分類(例えば、非家族向けカテゴリー)のメンバーである文書に属するランク付けされた候補用語の全セットは、候補用語のサブセットを形成するのには使用されない。
【0021】
本発明の別の態様は、コンピュータシステムと共に使用するコンピュータプログラム製品を提供する。コンピュータプログラム製品は、コンピュータ可読記憶媒体とこれに組み込まれたコンピュータプログラム機構とを含む。コンピュータプログラム機構は、受信クエリーを改良するためのクエリー改良提案エンジンを含む。このエンジンは、受信クエリーに対応するランク付けされた文書の初期グループを作成するように受信クエリーを処理する命令を含む。ランク付けされた文書の初期グループ内の文書の全部又は一部の各文書は、ランク付けされた候補用語のそれぞれのセットの各候補用語が文書内に組み込まれるように、ランク付けされた候補用語のそれぞれのセットに関連付けられる。ランク付けされた候補用語の各それぞれのセットは、受信クエリーの処理の前の時点で識別される。エンジンは更に、選択関数に従って、候補用語のそれぞれのセットの1つ又はそれ以上内にある候補用語のサブセットを選択する命令を含む。更に、エンジンは、受信クエリーに応答して、ランク付けされた文書の初期グループと候補用語のサブセットとを提示する命令を含む。
【0022】
本発明の更に別の態様は、複数のユニフォームリソースロケータ(URL)から構成される文書インデックスデータ構造を提供する。各URLはそれぞれの文書を指定する。複数のURLによって指定されたそれぞれの文書の全部又は一部の各文書は、ランク付けされた候補用語のそれぞれのセットに関連付けられる。ランク付けされた候補用語のそれぞれのセットの各候補用語は、ランク付けされた候補用語のセットに関連する文書に組み込まれる候補用語を含む。更に、これらの候補用語は、重み付け関数によってランク付けされる。幾つかの実施形態において、ランク付けされた候補用語のそれぞれのセットは、
(A)ランク付けされた候補用語のそれぞれのセットに関連する文書内の用語を候補用語のマスターリストと比較し、ここで、その用語が候補用語のマスターリスト内に存在する場合には、その用語をランク付けされた候補用語のそれぞれのセットに候補用語として加え、
(B)文書内の用語の最大数が検討されるまで比較を繰り返し、
(C)重み付け関数に従って候補用語をランク付けし、これによりランク付けされた候補用語を形成する、
ことによって生成される。
【図面の簡単な説明】
【0023】
【図1】サーチエンジンにクエリーを依頼しているクライアントコンピュータを示す図である。
【図2】本発明の実施形態に従って作り出される、クエリー改良提案を含むサーチ結果ページを示す図である。
【図3】サーチエンジンサーバのブロック図である。
【図4】サーチエンジンインデックスのブロック図である。
【図5】文書インデックス方法のフローチャートである。
【図6】ユーザによって提出されたクエリーを処理するための手順のフローチャートである。
【発明を実施するための形態】
【0024】
本発明の上述の特徴及び利点、並びに本発明の付加的な特徴及び利点は、図面を併用しながら本発明の好ましい実施形態の詳細な説明の結果として以下でより明確に理解されるであろう。
同じ参照符号は、幾つかの図面全体を通して対応する要素を示す。
【0025】
典型的な実施形態において、本発明は、効率的な方法でユーザのクエリーに潜在的により高度に関連し、且つ目標文書の語彙を反映するクエリー改良提案(候補用語のサブセット)の小さなセット(10−20)を作成する。
【0026】
図1に示されるように、サーチクエリーは、クライアントコンピュータ100によってサーチエンジンサーバ110に提出される。サーチエンジンサーバ110は、サーチクエリーを受信すると、該サーチクエリーに関連する文書インデックス120において文書を識別する。更に、サーチエンジンサーバ110は、例えば他のランキング要因のうちでサーチクエリーに対するこれらの関連性によって関連する文書をランク付けする。次いで、このランク付けされた文書のグループの記述(サーチ結果)は、ランク付けされた文書のグループとしてクライアントコンピュータ100に戻される。本発明においては、候補用語のサブセットの形式(サーチ改良提案)での付加的な情報は、ランク付けされた文書の初期グループと共にクライアントコンピュータに戻される。
【0027】
サーバ110が候補用語のサブセットを作成する方法の詳細に移る前に、本発明の利点をより良く理解できるように、サーチエンジンサーバ110の実施形態によって戻されたサーチ結果及びサーチ改良提案のスクリーンショットが図2に提供されている。図2で、ユーザは初期クエリー(受信クエリー)132を提供する。検索ボタン134が押されると、クエリー132がクライアントコンピュータ100からサーチエンジンサーバ110に送られる。クエリー132が受信されると、サーチエンジンサーバ110は、受信クエリー132を処理し、サーチ結果及びサーチ改良提案をランク付けされた文書の初期グループ及び候補用語のサブセットの形式でクライアントコンピュータ100に送り返す。候補用語のサブセットは、インターフェース180のパネル140に表示される。具体的には、候補用語のサブセットの各用語136が、タグ138と共に領域140内に表示される。同時に、サーチ結果のリスティング(ランク付けされた文書の初期リストのトップランクの文書)がパネル142に表示される。本発明のシステム及び方法は、オリジナルのクエリー132を絞り込み、変更し、又は改善することができる用語136を識別することに関する。ユーザがタグ138を押すと、タグ138に対応する用語136が初期クエリー132に付加され、新しいクエリーに関してプロセス全体が繰り返される。ユーザが別のタグ139を押すと、タグ138に対応する用語136は初期クエリー132を更新し、サーチエンジンサーバは、当該用語136を新しいクエリーとして処理する。図示されていない実施形態において、各用語136に対応する1つ又はそれ以上の付加的なタグは、パネル140に追加することができる。1つの実施例では、対応する用語136を例外リストに付加するのに使用されるタグが存在する。例えば、オリジナルクエリーを「A」とし、ユーザが用語「B」の排他タグを押すと、新しいクエリーが「A」になり「B」ではなくなる。パネル140に表示された用語のサブセットに加えて、ランク付けされた文書の初期グループがパネル140に表示される。コンピュータ100とサーバ110との間の帯域幅を節約するために、典型的な実施形態では、ランク付けされた文書の初期グループは通常、ランク付けされた文書の初期グループの各文書の標識を含み、ユーザが初期のランク付けされた文書における該文書の各々の性質を判断できるようにする。このような標識(indicia)は更に、本明細書ではランク付けされた文書の初期グループと呼ばれる。
【0028】
本発明のシステム及び方法の概要が開示されてきた。この概要から、本発明の多くの利点及び特徴が明らかにされる。本発明の新しいアルゴリズムは、初期クエリーの改良に使用することができる提案された用語136のリストをユーザに自動的に提供する。例えば図2において、初期クエリー132は「スペースシャトル」である。この初期クエリーに応答して、本発明の実施形態は、「チャレンジャー大事故」のような用語136を含む候補用語のサブセットを提供する。初期クエリーへの用語「チャレンジャー大事故」の追加、或いは初期クエリーの用語「チャレンジャー大事故」への置換は、ユーザの関心事に恐らくはより近接して一致するクエリーをユーザに提供する。候補用語の新しいサブセットを使用することによって、ユーザは、ランク付けされた文書の初期グループ内の文書(又はその標識(indicia))を分析することなく改善されたクエリーを構築することができる。従って、本発明を使用すると、多すぎる(又は少なすぎる)結果、或いはユーザの情報の必要性に直接関係しない結果を初期クエリーが生成する理由を識別する必要性がもはやなくなる。
【0029】
本発明の概要及び利点を提示してきたので、次に本発明のシステム及び方法の更に詳細な説明を開示する。この目的のために、図3は、本発明の1つの実施形態によるサーチエンジンサーバ110を示している。好ましい実施形態において、サーチエンジンサーバ110は、図3に概略的に示すように1つ又はそれ以上のコンピュータシステム300を使用して実施される。大量のクエリーを処理するよう設計されたサーチエンジンは、図3に示されるものよりも更に複雑なコンピュータアーキテクチャを使用することができることは当業者には理解されるであろう。例えば、サーバのフロントエンドセットを用いて、実際にクエリーを処理するバックエンドサーバのセット間でクエリーを受信及び分散することができる。このようなシステムでは、図3に示されたシステム300は、バックエンドサーバの1つとなる。
【0030】
コンピュータシステム300は通常、ユーザインターフェース304(ディスプレイ306及びキーボード308を含む)、1つ又はそれ以上の処理ユニット(CPU)302、ネットワーク又は他の通信インターフェース310、メモリ314、及びこれらの構成要素を相互接続するための1つ又はそれ以上の通信バス312を有することになる。メモリ314は、高速ランダムアクセスメモリを含むことができ、また、1つ又はそれ以上の磁気ディスク記憶装置(図示せず)などの不揮発性メモリを含むことができる。メモリ314は、(1つ又は複数の)中央処理ユニット302から遠隔に設置される大容量記憶装置を含むことができる。メモリ314は、
・ 種々の基本システムサービスを扱い、且つハードウェア従属タスクを実行するための手順を含むオペレーティングシステム316と、
・ インターネット、他のワイドエリアネットワーク、ローカルエリアネットワーク(例えば、ローカル無線ネットワークはクライアントコンピュータ100をコンピュータ300に接続できる)、メトロポリタンエリアネットワークなどの1つ又はそれ以上の通信ネットワークを介して種々のクライアントコンピュータ100(図1)及び場合によっては他のサーバ又はコンピュータにシステム300を接続するのに使用されるネットワーク通信モジュール318と、
・ クライアントコンピュータ100からクエリーを受信するためのクエリーハンドラ320と、
・ クエリーに関係のある文書の文書インデックス352をサーチして、クエリーに関係のあるランク付けされた文書の初期グループを形成するためのサーチエンジン322と、
・ 本発明の多くの態様を実施するためのクエリー改良提案エンジン324と、
を記憶することが好ましい。
【0031】
クエリー改良提案エンジン324は、実行可能な手順、サブモジュール、テーブル、及び他のデータ構造を含むことができる。1つの実施形態において、改良提案エンジン324は、
・ ランク付けされた文書の初期グループと共に提示するための候補用語のサブセットを識別するための選択関数326と、
・ 提示のために候補用語のサブセットとランク付けされた文書の初期グループとをフォーマッティングするための結果フォーマッティングモジュール328と、
を含む。
【0032】
本発明の方法は、クエリー132が文書インデクサ344の動作でクエリーハンドラ320によって受信される前に始まる。文書インデクサ344は、ウェブクローリング及びインデキシング技術を使用して文書インデックス352を構築する。しかしながら、この従来の機能に加えて、文書インデクサ344は、文書インデックス352の文書を更に処理する新しいプログラムモジュールを含む。例えば、文書インデクサ344は、「候補用語セットのコンストラクタ」346を含む。好ましい実施形態において、コンストラクタ346は、文書インデックス352の各文書を調べる。他の実施形態において、予め定められた基準を満たしている文書(例えば、予め定められた言語のセットのうちの1つのテキストが含まれている文書)だけがコンストラクタ346によって調べられる。
【0033】
調べられる各文書について、コンストラクタ346は、文書に埋め込まれた何らかの候補用語を該文書が含むかどうかを判定する。このタスクをコンストラクタ346が達成することができる多くの異なる方法が存在し、全てのこのような方法は本発明の範囲内に含まれる。1つの実施形態において、タスクは、文書からの用語を候補用語のマスターリスト342に一致させることによって達成される。候補用語のマスターリスト342は、全ての可能性のある候補用語を含む。幾つかの実施形態において、リスト342は、有効な候補用語のリストを備えるUnixスタイルのテキストファイルである。リスト342の代表的なフォーマットは、1行につき1つの候補用語があり、リスト342固有の各候補用語は、全てのコンマ、タブ、エンドライン、及び@記号が省略されてUTF−8で符号化される。幾つかの実施形態において、マスターリストは、名詞及び名詞句(クエリー用語として有用となる可能性が最も高い用語の種類)に限定され、制限されたクエリー改良値のどのような名詞句も明示的に取り除かれる。
【0034】
典型的な実施形態では、文書インデックス352の各文書の第1部分のみが候補用語について調べられる。例えば、幾つかの事例では、文書インデックス352の各文書の最初の100,000バイトのみがコンストラクタ346によって調べられる。幾つかの実施形態において、コンストラクタ346は、文書の用語の最大数(例えば、100、1000、5000など)が検討されるまで文書インデックス352の文書を調べる。幾つかの実施形態において、文書の候補用語のサーチは、文書の固有の用語の閾値数がマスターリスト342(例えば100用語)内で発生したことが判明した時点で終了する。
【0035】
本発明の幾つかの実施形態は、1つより多い候補用語のマスターリスト342を提供する。各マスターリスト342は、種々の言語について最適化される。例えば、第1リスト342は英語について最適化され、第2リスト342はスペイン語について最適化される。従って、英語リスト342は英語の文書において見られる情報用語を含むことになり、スペイン語リスト342はスペイン語の文書において見られる情報用語を含むことになる。同様に、本発明の幾つかの実施形態は、フランス語、ドイツ語、ポルトガル語、イタリア語、ロシア語、中国語、又は日本語について最適化されたリストを含む。本発明の幾つかの実施形態において、リスト342は、カテゴリーの他のタイプについて最適化される。例えば、幾つかの実施形態において、リスト342は、科学用語、ファッション用語、光学用語、又は旅行用語を含めるように最適化される。しかしながら、好ましい実施形態において、各マスターリスト342は、情報用語を可能な限り含む。実際に、マスターリスト342は、10,000,000より多い用語を含むことができ、通常は1,000,000よりかなり多い用語を含む。これらの用語の各々は、語又は句とすることができる。理解しやすいように、代表的な句は「チャレンジャー大事故」である。
【0036】
文書で使用される主たる言語を決定する方法は、当該技術分野で公知である。従って、本発明の幾つかの実施形態においては、コンストラクタ346は、(i)調べられている文書の言語を決定し、及び(ii)文書と同じ言語について最適化されたマスターリスト342を使用するためにこうした方法を用いる。
【0037】
マスターリスト342にある1つ又はそれ以上の候補用語がインデックス352の文書の上位部分(例えば、最初の100キロバイト)に組み込まれている場合、コンストラクタ346による文書の調査の最終結果は、これらの用語の識別である。こうした用語がコンストラクタ346によって識別されると、これらはランク付けされた形式で文書と関連付けられたデータ構造に付加される。このデータ構造は、候補用語のセットと呼ばれる。インデックス352がコンストラクタ346によって調べられた後、その上位部分に候補用語を組み込んだインデックス352内の各文書は、こうした用語を含む候補用語のそれぞれのセットに関連付けられることになる。従って、例えば、インデックス352において候補用語を含む2つの文書AとBがある場合、候補用語の第1セットが文書Aに関連付けられ、候補用語の第2セットは文書Bに関連付けられる。候補用語の第1セットは、文書Aの上位部分に組み込まれた各候補用語を含むことになり、ランク付けされた候補用語の第2セットは、文書Bの上位部分に組み込まれた各用語を含むことになる。実際には、候補用語の各セットは、以下に更に詳細に開示されるように内部的にランク付けされて、候補用語のそれぞれのランク付けされたセットを形成するようにする。
【0038】
図4は、コンストラクタ346による文書インデックス352での文書402の調査が文書インデックス352の修正をどのように生じさせるかを示している。コストラクター346がインデックス352の文書を調べる前に、インデックス352の各文書402は、文書402のユニフォームリソースロケーション(URL)406並びに特徴値のセット408を含む。特徴値408は、文書に関連付けられたメタデータを含み、更に、ランキング文書がクエリーに潜在的に関係するものとして識別されたときにサーチエンジンを支援する値を含む。特徴値は、文書のファイルフォーマット、文書の長さ、文書への周知のインバウンドリンク(他の文書からの)の数、文書のタイトル(例えば、クエリーに応答するものとして文書が選択された時間を表示するための)などの指標を含むことができる。文書402がコンストラクタ346(図3)によって調べられた後で、候補用語のセット410は文書402に関連付けられる。
【0039】
本発明の幾つかの実施形態において、文書内の用語をリスト342の候補用語と一致させる方法は、その用語をリスト342の可能性のある最も複雑な候補用語と確実に一致させる方式で実行される。例えば、AとBを各語とするときに用語「AB」がインデックス352の文書に組み込まれる場合を考える。更に、リスト342は、「A」、「B」、及び「AB」を含むと仮定する。これが起こる場合、文書の用語「AB」は、リスト342の「AB」と一致することになり、「A」又は「B」とは一致しない。このようなマッチングを行うことができる幾つかの方法が存在し、全てのこのようなマッチング手法は本発明の範囲内にある。1つのこのようなマッチング方法は、以下の論理を有する「左−右貪欲アルゴリズム」を使用する:
調べられる文書の形式「ABCD...」の各文について:
Aはリスト342の候補用語の接頭辞であるか?
○はい:「AB」はリスト342の候補用語の接頭辞であるか?
■はい:「ABC」はリスト342の候補用語の接頭辞であるか?
●はい−>同じ方式で文全体のドリリングを続ける
●いいえ:文書と関連付けられた候補用語のセット410に「AB」を加え、Cに移り、「CDEF...」を検討する
■いいえ:文書と関連付けられた候補用語のセット410に「A」を加え、Bに移り、「BCDE...」を検討する
○いいえ:Bに移り、「BCDE...」の検討を始める
このようなアルゴリズムは、「文」が行のような文書のある任意の量であるか、或いは2つの句の境界又は他の区切り点の間の文書の部分であり、及び「ABCD...」が用語の各語である場合、リスト342の最も複雑な用語を文書の用語に確実に一致させる。関連する方法では、コンストラクタ346は、第1候補用語が候補用語のセットにおける第2候補用語のサブセットである場合、候補用語のセット410の第1候補用語を廃棄する。
【0040】
本発明の幾つかの実施形態において、、セット410に関連付けられた文書の全部又は上位部分(例えば最初の100キロバイト)においてランク付けされた用語のセット410の各候補用語が現れる回数が追跡される。例えば、セット410の候補用語「A」がセット410と関連付けられた文書の上位部分に12回現れる場合には、用語「A」が文書に12回現れるという指示が示され、どの候補用語がランク付けされた候補用語の最終セットに残ることになるかを判定するよう設計された重み付け方式で使用される。
【0041】
幾つかの実施形態において、関連する文書に用語が現れる回数の表示は、用語が文書の語の第1閾値数内に現れる事例毎に重みが追加される。例えば、第1閾値の値が15語である場合を考えてみる。更に、この例示的な場合において、候補用語「A」は正確に二度現れる。句「A」の第1の出現は、15語限界の前であり、「A」の第2の出現は15語限界の後である。この例示的な場合に使用される重み付け方式において、最初の15語内に現れている語は、二倍の重みを受け取る。従って、文書と関連付けられる候補用語のセット402では、候補用語「A」は、用語が文書の上位部分において(2*1+1)、すなわち3回出現する指示と共にリストされることになる。最初の閾値のより複雑な形式が可能であることは、当業者であれば理解するであろう。例えば、候補用語カウントに加えられた重みは、文書の候補用語の位置の関数とすることができる。例えば、これは、文書の始めに最大値を有し、且つ文書の最後に最小値を有する線形関数(又は非線形関数、もしくは区分線形関数)とすることができる。代替えとして重みをバスケットに加えることができ、この場合、文書の始め(第1バスケット)に大きな重みがあり、文書の第2部分(第2バスケット)に低い重みがあり、文書の第3部分(第3バスケット)に更に低い重みなどがある。
【0042】
(i)候補用語の回数の指示が関連する文書に現れ、且つ(ii)コンストラクタ346がランク付けされた候補用語のセット410の第1候補用語を廃棄する実施形態では、第1候補用語がランク付けされた候補用語のセットの第2候補用語のサブセットである場合には、第2候補用語は、第1候補用語がコンストラクタ346によって文書内で識別された回数でクレジットされる。
【0043】
コンストラクタ346に加えて、インデクサ344は冗長フィルタ348を含む。フィルタ348は、正字の異形又は屈折異形を取り除いて最後に候補用語のセットとなることができるよう設計されている。用語の正字の異形は、用語についての他の正しいスペル(綴り)を有する。用語の屈折異形は、別の接尾辞、又は用語のアクセント形式を有する。幾つかの実施形態において、正字の異形及び/又は屈折異形は、異形リスト360に記憶される(図3)。従って、冗長フィルタ348の仕事は、候補用語のセット410の候補用語のペアが異形リスト360に確実に存在しないようにすることである。候補用語のセット410の候補用語のペアが異形リスト360に存在するときには、ペアに由来する1つの用語は、フィルタ348によってセット410から廃棄される。幾つかの実施形態において、ペアの第1用語がセット410から効率的に廃棄され、ペアの第2用語は保存されることになる。しかしながら、幾つかの実施形態において、第2用語は、廃棄された第1用語と結合されるように修正されることになる。例えば、用語A及びBが屈折異形又は正字の異形である場合、用語の1つ、すなわちAは廃棄され、別の用語Bが保存される。更に、用語BはA,Bとして上書きされる。この特徴は、クエリー改良提案エンジン324のような本発明のより高レベルのモジュールによって使用可能な基礎となる文書についての有用な情報を保存するので有利である。通常、エンジン324は、これらのマージされた正字の異形又は屈折異形の候補用語が現れる場合の第1(廃棄されなかった)用語だけを提示することになる。例えば、上書きされた用語A、Bの場合、用語「A」だけがパネル140に提示された候補用語のサブセットに含まれる。通常、リスト360に現れている用語のペアで廃棄された用語は、関連する文書においてあまり頻繁には現れない用語である。幾つかの実施形態において、ある種のノイズワード(例えば、a、the、who、what、whereなど)の有無だけが相違する候補用語は、正字の異形又は屈折異形を含む候補用語が共にフォールドされるのと同じ方式でフォールドされる。同様に、幾つかの実施形態において、候補用語の所与のセットの2つの用語の違いが句読点の有無だけである場合、2つの用語は、正字の異形又は屈折異形を含む候補用語が共にフォールドされるのと同じ方式で共にフォールドされる。幾つかの実施形態において、候補用語のセットの各句は、同じケース(例えば小文字)に変換される。この規則の例外は、6つ又はこれより少ない大文字の単語であるこれらの用語が、こうした用語が頭辞語になる可能性がある理由から小文字には変換されないことである。
【0044】
(i)候補用語の回数の指示が関連する文書に現れ、(ii)候補用語のセットの第1候補用語が候補用語のセットの第2候補用語の正字の異形又は屈折異形であるために、候補用語のセットの第1候補用語をフィルタ348が廃棄する両方の実施形態において、第2候補用語は、第1候補用語がコンストラクタ346によって文書で識別された回数でクレジットされる。言い換えると、2つの候補用語の間の違いが、候補用語の一方が他方の候補用語の対応する語の屈折異形又は正字の異形である単語を含むだけである場合に、候補用語の一方が廃棄される。この実施例は、候補用語「tow truck」と「tow trucks」の場合に起こる。この実施例では、2つの候補用語の間の違いは、第1用語の「truck」の列挙と第2用語での「trucks」の列挙だけである。
【0045】
文書インデクサ344についての多くの詳細が開示されてきた。このステージでは、インデクサ344の幾つかの実施形態によって用いられるステップを開示する図5のフロー線図を検証することが有益である。他のインデキシングデューティ(例えば、ウェブクローラによって見出される文書の中の語の従来のインデキシング)の全部又は一部の後で、インデクサ344はコンストラクタ346に制御をわたし、該コンストラクタ346はインデックスされた文書を選択する(図5のステップ502)。
【0046】
ステップ504で、文書中の用語が候補用語のマスターリスト342と比較される。用語がマスターリスト342にある(506−はい)の場合、用語は、文書に関連付けられた候補用語のセット402に加えられる(510)。ステップ504が、上記に説明された左−右貪欲アルゴリズムなどのより複雑なマッチング方式を包含できる点に留意されたい。
【0047】
幾つかの実施形態において、比較されることになる文書はウェブページである。従って、マスターリスト342に対する比較に適した有効な語を構成するものに関して幾つかの決定を行う必要がある。1つの方法では、実際にはウェブページである文書を構文解析して句抽出のためのテキストを見出す。1つの実施形態において、句マッチングは、全ての「ビジブル」テキストプラスメタページ記述を使用してステップ504で実行され、このような句は、HTMLコード、ジャバスクリプトなどを含まない。有効な句を得るために、ウェブページ内の「句境界」(例えばテーブルタグ)が、リスト342との比較のために文書から抽出された表現が句境界を跨がないように保存される。本発明の幾つかの実施形態に使用される句境界の付加的な実施例は、限定ではないが「,」、「?」のような句読点、空行などを含む。
【0048】
本発明の幾つかの実施形態において、マスターリスト342は、幾つかの異種ソースから集められた用語の極めて大きなセットである。従って、ステップ504で、情報の候補用語だけが確実に選択されて候補用語のセットに含まれるように付加的なフィルタリングを実行することができる。幾つかの実施形態において、マスターリスト342内の用語と比較される文書内の用語は、比較の前に処理される。例えば、幾つかの実施形態において、句読点マークはリスト342との比較の前に用語から取り除かれる。幾つかの実施形態において、句読点文字は、リスト342との比較の前にスペースに置き換えられる。幾つかの実施形態において、ノイズ用語のリスト354がメモリ314に記憶される。代表的なノイズ用語は、限定ではないが、「a」、「the」、「who」、「what」、及び「where」などの語を含む。従って、ノイズ用語のリスト354がメモリ314に記憶される実施形態において、比較ステップ504では、マスターリスト342と比較されることになる用語がノイズ用語のリスト354内に存在するかどうかが最初に判定されることになる。存在する場合には、用語は無視され、リスト342とは比較されない。幾つかの実施形態において、ステップ504で文字の少なくともある最小閾値を包含する用語だけが比較される。例えば、幾つかの実施形態では、ステップ504で少なくとも4つの文字を包含する用語だけを比較する。
【0049】
決定506の結果に関わらず、コンストラクタ346によって文書内の他のいずれかの用語をマスターリスト342と比較する必要があるかどうかに関して判定508が行われる。決定508の結果を判定するために使用できる多くの種々の条件(例えば、用語カットオフの最大数、固有用語カットオフの最大数、セット410内に既に存在する候補用語の最大数など)が開示されている。
【0050】
図5のフローチャートに続くのは任意選択のステップである。任意選択のステップ512で、冗長用語は、文書に関連付けられた候補用語のセットにフォールドされる。任意選択のステップ514で、インデックス352内の文書が分類される(例えば第1及び第2クラスに)。
【0051】
分類ステップ514を行うことができる幾つかの異なる方法があり、全てのこのような方法は本発明の範囲内に含まれる。例えば、幾つかの実施形態において、各文書402は第1又は第2クラスに分類される。好ましい実施形態において、第1クラスは家族向けクラスであり、第2クラスは非家族向けクラスである。文書402は、性的に露骨な、不快な、或いは暴力的な言葉を含む場合には第2クラスに分類される。それ以外は、第1クラスに分類される。幾つかの実施形態において、分類モジュール350(図3)は、このような分類を行うために使用される。一般的に分類モジュール350は、文書が、性的に露骨な、不快な、或いは暴力を含む傾向があるかどうか判定することによって働く。このような傾向がある場合には、該文書は非家族向けと指定される。この指定は、分類されたセット410に関連付けられる文書に対応する特徴値408(図4)に記憶される。
【0052】
この段階では、通常候補用語のセット内に多数の候補用語が存在する。例えば、1000もの数の候補用語を候補用語のセットに加えることができる実施形態では、候補用語のセットはこの段階で1000の用語を含むことができる。各候補用語セット内の候補用語の数に関わらず、これらはランク付けされない。従って、ステップ516において候補用語がランク付けされ、ランク付けされた候補用語のN番目までの最も高い数が、候補セットに残ることが許可され、全ての他の候補用語が取り除かれて、ランク付けされたセット(516)のN番目(例えば20)までの最も代表的な用語だけを保持するようにする。従って、ステップ516の有効作用は、候補用語のセットからランク付けされた候補用語のセットを作り出すことである。更にステップ516で、トップランクの用語(例えばトップ20)だけがランク付けされた候補用語のセットに残ることが許可される。
【0053】
ランク付け関数によって使用される基準又はパラメータは、各用語が文書に現れる回数、用語が文書の予め定義された初期部分に現れるかどうか、文書での用語の最初の位置、及び用語の文字数のうちの1つ又はそれ以上を含むことができる。これらのパラメータに基づいて、ランクが各候補用語に割り当てられ、次いで、最も高いランクを有するN番目までの用語だけがランク付け候補用語のセット内に保持される。他の用語は、そのセットから削除される。各文書と関連付けられた候補用語の数を制限することは、文書インデックスが過剰に大きくなるのを防ぐのに役立ち、処理の速度を最優先する場合にクエリー時に考慮する必要のある用語の量を低減する。ある文書についてランク付けされた候補用語のセットは、文書のインデックスエントリー(図4の410を参照)、候補用語を表わしているストリングのセット(任意選択的に圧縮される)又はインデックスに記憶することによって文書と関連付けることができ、ここでは各インデックス値は、候補用語のマスターリスト342における用語を示す。関係する値は、ランキングプロセスで使用される用語スコアが文書及び/又は文書の用語の第1位置に現れるように、文書と関連付けられた各候補用語(又は候補用語へのポインタ)と共に文書の文書インデックス352エントリーに記憶することができる。しかしながら、好ましい実施形態において、このような付加的な値は文書インデックス352には記憶されない。
【0054】
ランク付けされた候補用語のセット410が文書インデックス352の文書に関連付けられるプロセスを説明してきた。次に、本発明の1つの実施形態に従って、このようなセット410が提示用の候補用語のサブセットを構成するのに使用される方法を説明する図6に注目されたい。ステップ602で、クエリーはクエリーハンドラ320によって受信される。ステップ604で、クエリーは、文書インデックス352からランク付けされた文書の初期グループを検索することによって処理される。幾つかの実施形態において、ランク付けされた文書の初期グループがその文書自体以外の文書の標識(indicia)のみを包含できる点は理解されるであろう。しかしながら、この標識(indicia)は、文書の初期セットの各文書に対するユニフォームリソースロケータ(URL)を含むことになる。従って、各文書は、ユーザによって引き続き要求される場合にはインターネット(又はネットワークの他のある形態)から検索することができる。幾つかの実施形態において、文書の初期セットは、サーバ300(図3)のメモリ314にサーチ結果340として記憶される。再び図6を参照すると、提案されたクエリー改良のリスト(候補用語のサブセット)がサーチ結果340を使用して作成される(606)。
【0055】
提案されたクエリー改良のリスト(候補用語のサブセット)が作成される方法は、クエリーが家族向けサーチであるかどうかに依存することになる。任意選択のステップ608で、サーチ結果340(ランク付けされた文書の初期グループ)の各トップランクの文書(例えば最初の50文書)について文書の分類が行われる。サーチ結果340でのトップランクの文書の閾値パーセンテージが、第1分類(家族向け分類)に属する場合、第1分類に属さないトップランクの文書と関連付けられた候補用語の全てのセット410は、図6の後続のあらゆるステップにおいても使用されない。幾つかの実施形態において、家族向け以外の分類はインデキシング(図5)中に文書を分類するのに使用される。このような実施形態では、このような分類を使用して、ランク付けされた候補用語のどのセットが候補用語のサブセットを構成するのに使用されるかをステップ608で判定することができる。例示的な実施形態において、M個のトップランクの文書(例えば、サーチ結果340からの10個のトップランクの文書)のみの分類は、ステップ608で判定を行うのに使用される。例えば、10個のトップランクの文書の少なくとも8つが家族向けであると分類される場合、非家族向け文書からの候補用語は、提案されたクエリー改良のリストを作成するのに使用されるランク付けされた候補用語のセットから除外される。
【0056】
ステップ610で、サーチ結果340の文書に関連するランク付けされた候補用語のそれぞれのセットの1つ又はそれ以上内に存在する候補用語のサブセットが選択される。1つの実施形態において、この選択関数は、ランク付けされた文書の初期グループ(サーチ結果340)のトップランクの文書に関連するランク付けされた候補用語の各それぞれのセット410における各候補用語に重み付け関数を適用する段階を含む。ランク付けされた文書の初期グループ内の各トップランクの文書は、閾値ランキングより数値的に小さいランキングを有する。幾つかの実施形態において、トップランクの文書は、Tを50などの予め定義された数(及び好ましくは5から200までの範囲、更に好ましくは20から100までの範囲にある)とすると、T個のトップランクの文書である。ステップ610では、関係する用語をユーザに提示される候補用語のサブセットに集める機会を最大にするために、トップランクの文書だけが検討される。種々の実施形態において、トップ5、10、15、20、50、又は100の文書だけが検討される。最も高い重みを受け取るこれらの候補用語は、候補用語のサブセットに含まれる。幾つかの実施形態において、候補用語のサブセットの用語の数は、25より少ない数に制限される。
【0057】
幾つかの実施形態において、サーチ結果340の初期グループに文書のカットオフ数より少ない文書がある場合、候補用語のサブセットは構築されず、候補用語のサブセットはユーザに提示されない。例えば、1つの実施形態において、サーチ結果340の初期グループにおいて35より少ない文書がある場合には候補用語のサブセットは構築されない。
【0058】
本発明は、サーチ結果340のトップランクの文書に関連付けられたセット410の各々において候補用語をスコアするための幾つかの異なる重み付け関数を提供する。これらの異なる重み付け関数は、エンジン322(図3)の選択関数324の種々の実施形態で使用される。
【0059】
幾つかの実施形態において、関数324(重み付け関数)によって候補用語に加えられる重みは、(i)候補用語を含むもの、及び(ii)トップランクの文書にそれぞれ関連付けられるものの両方であるランク付けされた候補用語のセットの数に応じて決定される。例えば、50のトップランクの文書があり、候補用語「スペースシャトル」がトップランクの文書にそれぞれ関連するランク付けされた候補用語のセットの3つにおいて現れる場合を考える。この場合、3の重みが、候補用語「スペースシャトル」に加えられることになる。
【0060】
幾つかの実施形態において、選択関数326によって候補用語に加えられる重みは、(i)候補用語を含み(ii)トップランクの文書にそれぞれ関連するランク付けされた候補用語のこれらのセットの候補用語の関数(例えば平均)に応じて決定される。幾つかの実施形態は、用語を含むセットと用語を含まないセットの両方を考慮する。用語を含まないセットは、用語がセット内に存在しないことを示す平均化のための数値を割り当てられる。このような重み付け係数は、ランク付けされた候補用語の各セットが実際にはランク付けされた順序リストであることを利用する。従って、候補用語「スペースシャトル」がトップランク文書にそれぞれ関連付けられた候補用語の多くのセットのランク付けリストのトップに現れる場合には、この重み付け方式では比較的高い重みを受け取ることになる。逆に、用語「スペースシャトル」が、これが現れるランク付けされた候補用語の各セットの最終用語の間にある場合、該用語はこの重み付け方式で比較的低い重みを受け取ることになる。
【0061】
幾つかの実施形態において、関数324によって候補用語に加えられる重みは、受信クエリーの用語が候補用語内に存在するかどうかに応じて決定される。例えば、クエリー用語が「シャトル」であって候補用語が「スペースシャトル」である場合、候補用語は全重みが与えられ、これ以外は重みを与えられない。
【0062】
幾つかの実施形態において、関数324(重み付け関数)によって候補用語に加えられる重みは、候補用語の文字数に応じて決定される。例えば、候補用語「スペースシャトル」は、候補用語「犬」よりもより大きな重みを受け取ることになる。
【0063】
幾つかの実施形態において、関数324によって候補用語に加えられる重みは、候補用語を含むランク付けされた候補用語のセットに関連付けられたトップランクの文書のランクの関数(例えば平均)に応じて決定される。このような重み付け方式は、サーチエンジン322によってサーチ結果の初期セットに既に加えられているランキングを活用する。このような重み付け方式では、より高いランクの文書と関連付けられたセット410からの候補用語は、より低いランクの文書と関連付けられた候補用語よりも高い優先度が与えられる。例えば、候補用語「スペースシャトル」が、ランク付けされた文書の初期グループ内のトップランクの文書の文書2、4、及び6に関連するランク付けされた候補用語のそれぞれのセットに現れる場合を考える。すなわち、この重み付け方式では、用語「スペースシャトル」は値4の関数である重みを受け取ることになる。ここで、用語「スペースシャトル」が、ランク付けされた文書の初期グループのトップランク文書におくる文書10、20、及び30に関連するランク付けされた候補用語のそれぞれのセットに現れると仮定する。すなわち、この重み付け方式では、用語「スペースシャトル」は値20の関数である重みを受け取ることになる。この重み付け方式では、値4は値20で作られた重みに比べてより良好な重みを作り出すことになる(候補用語の重みを上げることになる)。幾つかの実施形態において、候補用語を含まないセットがこの重み付け関数で考慮される。これらは平均するための数値を割り当てられる。
【0064】
幾つかの実施形態において、語が最初に候補用語として生じる文書のランクは重み付け関数に使用される。
【0065】
選択関数326の種々の実施形態によって使用される特定の重み付け係数を、このような係数を導入するために概説してきた。しかしながら、好ましい実施形態において、幾つかのこのような係数は望ましい結果をもたらすために組み合わされる。以下は、選択関数326の幾つかの好ましい実施形態である。
【0066】
幾つかの実施形態において、関数324によって候補用語に加えられる重みは、TermCount、TermPosition、ResultPosition、TermLength、及びQueryInclusionのいずれかの組合せ(又はいずれかの重み付けの組合せ)に応じて決定され、ここで、
TermCountは、(i)候補用語を含み、且つ(ii)トップランクの文書にそれぞれ関連するランク付けされた候補用語のセットの数であり、
TermPositionは、(i)候補用語を含み、且つ(ii)トップランクの文書にそれぞれ関連するランク付けされた候補用語のセットにおける候補用語の位置の関数(例えば平均)であり、
ResultPositionは、候補用語を含むランク付けされた候補用語のセットに関連付けられたトップランクの文書のランクの関数(例えば平均)であり、
TermLengthは、候補用語の文字数(候補用語の複雑性)であり、
QueryInclusionは、受信クエリーの用語が候補用語内に存在するかどうかを示す値である。
【0067】
本明細書で使用されるQueryInclusionの適用(例えば、QueryInclusionが1のような非ゼロ値である場合)は、受信クエリーの用語が候補用語内に存在する場合に候補用語の重みが増やされることを意味する。更に、QueryInclusionの非適用(例えば、QueryInclusionがゼロに等しく設定される場合)は、受信クエリーの用語が候補用語内に存在しい場合に候補用語の重みが増やされないことを意味する。幾つかの実施形態において、候補用語はノイズ用語(例えば、a、the、who、what、whereなど)に対してクレジットされない。従って、クエリーがノイズワード「for」を含み、且つ候補用語がワード「for」を含む場合には、クレジットは候補用語に与えられず、QueryInclusionは重みが増やされない。
【0068】
幾つかの実施形態において、関数324によって候補用語に加えられる重みは次式に従って求められる。
TermCount+TermPosition+ResultPosition+TermLength+QueryInclusion
ここで、重みTermCount、TermPosition、ResultPosition、TermLength、及びQueryInclusionは、上記に定義されたものと同じである。幾つかの実施形態において、TermCount、TermPosition、ResultPosition、TermLength、及びQueryInclusionは、各々別々に重み付けされる。
【0069】
幾つかの実施形態において、関数324によって候補用語に加えられる重みは、次式に従って求められる。
(TermCount*1)+
(TermPosition*(w2+(RefinementDepth*2´)))+
(ResultPosition*3)+
(TermLength*(w4+(RefinementDepth*4´)))+
(QueryInclusion*(w5+(RefinementDepth*5´)))
ここで、w1、w2、w3、w4、w5、w2´、w4´、及びw5´は別々の重みである。更に、RefinementDepthは、受信クエリーについて処理が行われた回数である。言い換えると、RefinementDepthは、ユーザがオリジナルのサーチクエリーに候補用語のサブセットからの用語を加える任意選択のステップ614の実行操作によってステップ602から612が繰り返される回数である。1つの実施形態において、 w1=100
2=15
2´=15
3=1
4=1
4´=0
5=100、及び
5´=50である。
【0070】
本発明の幾つかの実施形態において、選択関数610はランク付けされた候補用語のセットの幾つかの候補用語を取り除くことになる。例えば、幾つかの実施形態において、ある接頭辞又は接尾辞だけが異なるランク付けされた候補用語のセットの候補用語は、共にフォールドされる。例えば、幾つかの実施形態において、接頭辞のリスト及び接尾辞のリストはメモリ314に記憶される。2つの候補用語の違いが、候補用語の一方が他方の候補用語の対応する語に対して語の最初にある接頭辞、又は語の最後にある接尾辞が異なる語を含むだけの場合、2つの候補用語は共にフォールドされる。幾つかの実施形態において、接頭辞の3つのクラス(及び接尾辞の3つの類似のクラス)がある。候補用語が第1クラスに属している接頭辞を含む場合、その語は廃棄される。候補用語が第2クラスに属する接頭辞を含む場合、その接頭辞は取り除かれる。候補用語が第3クラスに属する接頭辞を含む場合、評価が行われる。この評価において、トップランクの文書と関連するランク付けされた候補用語のセットの各々は、接頭辞を含まない同じ用語の事例についてサーチされる。このような事例が見つからない場合、接頭辞はストリップされない。このような事例が見つかった場合、接頭辞はストリップされる。このタイプの接頭辞(及び接尾辞)処理は、多くの事例で有用である。例えば、候補用語が「the cars」である場合を考える。通常、接頭辞「the」は、ストリップすべき接頭辞であると考えられる。しかしながら、候補用語が名称「the cars」で一般的に呼ばれている有名な音楽グループを意味する場合がある。従って、サーチは、接頭辞「the」のない用語「cars」がトップランクの文書と関連するランク付けされた候補用語の他のセットのいずれかに見つかるかどうかを確実に調べる。このような事例が現れない場合には、接頭辞はストリップされない。この実施例では、本明細書で使用される接頭辞を上述の接辞(例えば、un−、non−など)或いは上述の語又は句(例えば、the、of、to goなど)とすることができる点に留意されたい。
【0071】
ステップ612で、候補用語のサブセットがユーザに提示される。ステップ614で、ユーザは、候補用語のサブセットの用語136(図2)を任意選択的に選択し、オリジナル(受信された)クエリーとパネル140(図2)に表示された候補用語のサブセットから選択された候補用語136とを含む変更されたクエリーで、処理(ステップ604)、選択(ステップ606)、及び提示(ステップ612)が繰り返される。上記に説明されたように、幾つかの実施形態では、ユーザは、以前に提出されたクエリーに追加するため、以前に提出されたクエリーと置き換えるため、又は以前に提出されたクエリーと共に排他的な用語として使用するために用語136を選択することができる。
【0072】
本明細書で引用される全ての引例は、全体的に、及び各個々の出版物又は特許もしくは特許出願が具体的であり且つ全ての目的のためその全てにおいて本明細書に組み込まれることが個々に示される程度まで全ての目的のために本明細書に組み込まれる。
【0073】
本発明は、コンピュータ可読記憶媒体に組み込まれたコンピュータプログラム機構を含むコンピュータプログラム製品として実施することができる。例えば、このコンピュータプログラム製品は、図3に示されたプログラムモジュールを包含できる。これらのプログラムモジュールは、CD−ROM、磁気ディスク記憶製品、或いは他の何らかのコンピュータ可読データ又はプログラム記憶製品に記憶できる。コンピュータプログラム製品のソフトウェアモジュールもまた、インターネット又は他の方法を介して、搬送波上のコンピュータデータ信号(これにソフトウェアモジュールが組み込まれる)の伝送によって電気的に配信することができる。
【0074】
本発明の多くの修正及び変形は、当業者には明らかなように本発明の精神及び範囲から逸脱することなく行うことができる。本明細書で説明された特定の実施形態は、例証としてのみ提供される。実施形態は、本発明の原理、及びその実際的応用を正しく説明するために選ばれて説明されたが、これによって当業者は企図される特定の用途に適する種々の修正により本発明及び種々の実施形態をより良好に利用することができる。本発明は、添付の請求項が与える均等物の全範囲と共にこれらの請求項によってのみ限定されるものとする。
【符号の説明】
【0075】
100 クライアントコンピュータ
110 サーチエンジンサーバ
120 文書インデックス

【特許請求の範囲】
【請求項1】
受信クエリーを改良するための方法であって、サーチサーバに送信されたクエリーに応じて、前記サーチサーバは、
前記受信クエリーに対応するトップランク付けされた文書の初期グループを作成するように該受信クエリーを処理するステップと、
前記初期グループ内の文書の全部又は一部の各文書を事前計算済みのランク付けされた候補用語の各セットに関連付けて、前記ランク付けされた候補用語の各セットの各候補用語が、前記各文書内に組み込まれるようにするステップと、
前記初期グループ内の1以上のトップランク付けされた文書のために、前記1以上のトップランク付けされた文書の分類を決定するステップと、
選択関数に従って、前記1以上のトップランク付けされた文書の分類に対応する前記ランク付けされた候補用語の各セット内にある候補用語のサブセットを選択するステップであって、前記サーチサーバは、前記選択関数において、
(i)前記トップランク付けされた文書の初期グループ内の文書に関連する前記ランク付けされた候補用語の各セット内の各候補用語に重み付け関数を適用し、前記ランク付けされた文書の初期グループ内の各トップランクの文書が閾値ランキングより数値的に小さいランキングを有し、(ii)前記候補用語のサブセットについて、最も高い重みを受け取る候補用語を選択し、さらに、(iii)前記重み付け関数によって候補用語に加えられる重みに対して、(a)前記候補用語を含み、且つ(b)トップランクの文書にそれぞれ関連するランク付けされた候補用語のセットの数に応じて決定される重みを適用する当該ステップを実行し、
前記受信クエリーに応答して、前記トップランク付けされた文書の初期グループと前記候補用語のサブセットとを提示するステップとを実行する、ことを特徴とする方法。
【請求項2】
前記トップランク付けされた文書の初期グループ内の文書の全部又は一部について、当該各文書と関連する前記ランク付けされた候補用語の各セットが、
(A)前記トップランク付けされた文書の用語を候補用語のマスターリストと比較し、前記用語が前記候補用語のマスターリスト内にある場合に該用語を前記候補用語のセットに加え、
(B)前記文書の用語と前記候補用語のマスターリストとの比較を繰り返し、
(C)前記候補用語のセット内の候補用語をランク付けして、これにより前記ランク付けされた候補用語の各セットを形成する、
ことによって識別される、請求項1に記載の方法。
【請求項3】
前記比較ステップ(A)の処理によって候補用語が識別される回数が、前記ランキング(C)によって使用されて、前記ランク付けされた候補用語のセット内の前記候補用語をランク付ける、請求項2に記載の方法。
【請求項4】
前記ステップ(iii)に代って、前記重み付け関数によって候補用語に加えられる前記重みが、(a)前記候補用語を含み、且つ(b)前記トップランクの文書にそれぞれ関連するランク付けされた候補用語のセット内の前記候補用語の平均位置に応じて決定されることを特徴とする請求項1に記載の方法。
【請求項5】
前記ステップ(iii)に代って、前記重み付け関数によって候補用語に加えられる前記重みが、前記候補用語の文字数に応じて決定されることを特徴とする請求項1に記載の方法。
【請求項6】
前記ステップ(iii)に代って、前記重み付け関数によって候補用語に加えられる前記重みが、前記候補用語を含む前記トップランク付けされた文書の初期グループ内の文書の位置に応じて決定されることを特徴とする請求項1に記載の方法。
【請求項7】
前記ステップ(iii)に代って、前記重み付け関数によって候補用語に加えられる前記重みが、前記候補用語を含むランク付けされた候補用語のセットに関連付けられた前記トップランクの文書の平均ランクに応じて決定されることを特徴とする請求項1に記載の方法。
【請求項8】
前記ステップ(iii)に代って、前記重み付け関数によって候補用語に加えられる前記重みが、TermCount+TermPosition+ResultPosition+TermLength+QueryInclusionに応じて決定され、ここで、
TermCountは、(i)前記候補用語を含み、且つ(ii)前記トップランクの文書にそれぞれ関連するランク付けされた候補用語のセットの数であり、
TermPositionは、(i)前記候補用語を含み、且つ(ii)前記トップランクの文書にそれぞれ関連するランク付けされた候補用語のセットにおける候補用語のランク位置の関数であり、
ResultPositionは、前記候補用語を含むランク付けされた候補用語のセットに関連付けられるトップランクの文書のランクの関数であり、
TermLengthは、前記候補用語の文字数(候補用語の複雑性)であり、
QueryInclusionは、前記受信クエリーの用語が前記ランク付けされた候補用語のセット内に存在するかどうかを示す値であることを特徴とする請求項1に記載の方法。
【請求項9】
TermCount、TermPosition、ResultPosition、TermLength、及びQueryInclusionは、各々別々に重み付けされることを特徴とする請求項8に記載の方法。
【請求項10】
前記サーチサーバは更に、前記受信クエリーと前記候補用語のサブセットからの候補用語とを含む変更されたクエリーを使用して、任意選択的に前記受信クエリーを処理するステップ、選択するステップ、及び提示するステップの繰り返しを実行する請求項8に記載の方法。
【請求項11】
前記重み付け関数によって候補用語に加えられる前記重みが、次式に応じて決定されることを特徴とする請求項10に記載の方法。
(TermCount*1)+
(TermPosition*(w2+(RefinementDepth*2´)))+
(ResultPosition*3)+
(TermLength*(w4+(RefinementDepth*4´)))+
(QueryInclusion*(w5+(RefinementDepth*5´)))
ここで、w1、w2、w3、w4、w5、w2´、w4´、及びw5´は別々の重みであり、RefinementDepthは前記受信クエリーに対して前記処理が行われた回数である。
【請求項12】
コンピュータシステムと共に使用されるコンピュータ読み取り可能な記録媒体であって、受信クエリーを改良するためのクエリー改良提案エンジンに、
前記受信クエリーに対応するトップランク付けされた文書の初期グループを作成するように前記受信クエリーを処理させ、
前記トップランク付けされた文書の初期グループ内の文書の全部又は一部の各文書を、事前計算済みのランク付けされた候補用語の各セットに関連付けて、前記ランク付けされた候補用語の各セットの各候補用語が前記各文書内に組み込まれるように処理させ、
前記初期グループ内の1以上のトップランク付けされた文書のために、前記1以上のトップランク付けされた文書の分類を決定するように処理させ、
選択関数に従って、前記1以上のトップランク付けされた文書の分類に対応する前記候補用語の各セット内にある候補用語のサブセットを選択させ、ここで、前記選択関数は、
(i)前記トップランク付けされた文書の初期グループ内の文書に関連するランク付けされた候補用語の各セット内の各候補用語に重み付け関数を適用する命令であって、前記トップランク付けされた文書の初期グループ内の各文書が閾値ランキングより数値的に小さいランキングを有する命令と、(ii)前記候補用語のサブセットについて、最も高い重みを受け取る候補用語を選択する命令とを含み、さらに、(iii)前記重み付け関数によって候補用語に加えられる重みに対して、(a)前記候補用語を含み、且つ(b)トップランクの文書にそれぞれ関連するランク付けされた候補用語のセットの数に応じて決定される重みを適用することを含み、
前記受信クエリーに応答して、前記トップランク付けされた文書の初期グループ及び前記候補用語のサブセットを提示させる、
プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項13】
前記トップランク付けされた文書の初期グループ内の文書の全部又は一部について、当該各文書と関連する前記ランク付けされた候補用語の各セットが、
(A)前記トップランク付けされた文書の用語を候補用語のマスターリストと比較し、前記用語が前記候補用語のマスターリスト内にある場合に、前記文書の用語を候補用語として前記文書と関連する前記ランク付けされた候補用語の各セットに加え、
(B)前記文書内の用語の最大数が検討されるまで、前記文書の用語と前記候補用語のマスターリストとの比較を再実行する、
ことによって識別される、請求項12に記載のコンピュータ読み取り可能な記録媒体。
【請求項14】
前記(A)の比較によって候補用語が識別される回数が、前記文書に関連する前記ランク付けされた候補用語の各セットに含まれる、請求項13に記載の方法。
【請求項15】
前記(iii)に代って、前記重み付け関数によって候補用語に加えられる重みが、(a)前記候補用語を含み、且つ(b)トップランクの文書にそれぞれ関連するランク付けされた候補用語のセット内の前記候補用語の平均位置に応じて決定されることを特徴とする請求項12に記載のコンピュータ読み取り可能な記録媒体。
【請求項16】
前記(iii)に代って、前記重み付け関数によって候補用語に加えられる重みが、前記候補用語の文字数に応じて決定されることを特徴とする請求項12に記載のコンピュータ読み取り可能な記録媒体。
【請求項17】
前記(iii)に代って、前記重み付け関数によって候補用語に加えられる重みが、前記候補用語を含む前記トップランク付けされた文書の初期グループ内の文書の位置に応じて決定されることを特徴とする請求項12に記載のコンピュータ読み取り可能な記録媒体。
【請求項18】
前記(iii)に代って、前記重み付け関数によって候補用語に加えられる重みが、前記候補用語を含むランク付けされた候補用語のセットに関連付けられた前記トップランクの文書の平均ランクに応じて決定されることを特徴とする請求項12に記載のコンピュータ読み取り可能な記録媒体。
【請求項19】
前記(iii)に代って、前記重み付け関数によって候補用語に加えられる重みが、TermCount+TermPosition+ResultPosition+TermLength+QueryInclusionに応じて決定され、ここで、
TermCountは、各トップランクの文書の上位部分に前記候補用語が現れる回数であり、
TermPositionは、前記候補用語が現れる各トップランクの文書内の前記候補用語の位置の関数であり、
ResultPositionは、前記候補用語を含む前記トップランク付けされた文書の初期グループにおける文書の位置の関数であり、
TermLengthは、前記候補用語の文字数であり、
QueryInclusionは、前記受信クエリーの用語が前記候補用語内に存在する場合はゼロではなく、QueryInclusionは、前記受信クエリーの用語が前記候補用語内に存在しない場合はゼロであることを特徴とする請求項12に記載のコンピュータ読み取り可能な記録媒体。
【請求項20】
TermCount、TermPosition、ResultPosition、TermLength、及びQueryInclusionは、各々別々に重み付けされることを特徴とする請求項19に記載のコンピュータ読み取り可能な記録媒体。
【請求項21】
前記クエリー改良提案エンジンは更に、前記受信クエリーと前記候補用語のサブセットからの候補用語とを含む変更されたクエリーを使用して、任意選択的に前記受信クエリーを処理すること、選択すること、及び提示することの繰り返しを実行する請求項19に記載のコンピュータ読み取り可能な記録媒体。
【請求項22】
前記重み付け関数によって候補用語に加えられる重みが、次式に応じて決定されることを特徴とする請求項21に記載のコンピュータ読み取り可能な記録媒体。
(TermCount*1)+
(TermPosition*(w2+(RefinementDepth*2´)))+
(ResultPosition*3)+
(TermLength*(w4+(RefinementDepth*4´)))+
(QueryInclusion*(w5+(RefinementDepth*5´)))
ここで、w1、w2、w3、w4、w5、w2´、w4´、及びw5´は別々の重みであり、RefinementDepthは前記受信クエリーに対して前記処理が行われた回数である。
【請求項23】
受信クエリーを改良するためのコンピュータシステムであって、
中央処理ユニットと、
前記中央処理ユニットに結合された、クエリー改良提案エンジンを記憶するメモリと、を含み、
前記クエリー改良提案エンジンが、
前記受信クエリーに対応するトップランク付けされた文書の初期グループを作成するように前記受信クエリーを処理し、ここで、前記トップランク付けされた文書の初期グループ内の文書の全部又は一部の各文書が、事前計算済みのランク付けされた候補用語の各セットに関連付けられ、その結果、前記ランク付けされた候補用語の各セットの各候補用語が前記文書内に組み込まれ、
前記初期グループ内の1以上のトップランク付けされた文書のために、前記1以上のトップランク付けされた文書の分類を決定し、
選択関数に従って、前記1以上のトップランク付けされた文書の分類に対応する前記ランク付けされた候補用語の各セット内にある候補用語のサブセットを選択し、ここで、前記選択関数は、(i)前記トップランク付けされた文書の初期グループ内の文書に関連するランク付けされた候補用語の各セット内の各候補用語に重み付け関数を適用する命令であって、前記トップランク付けされた文書の初期グループ内の各文書が閾値ランキングより数値的に小さいランキングを有する命令と、(ii)前記候補用語のサブセットについて、最も高い重みを受け取る候補用語を選択する命令とを含み、さらに、(iii)前記重み付け関数によって候補用語に加えられる重みに対して、(a)前記候補用語を含み、且つ(b)トップランクの文書にそれぞれ関連するランク付けされた候補用語のセットの数に応じて決定される重みが適用され、
前記受信クエリーに応答して、前記トップランク付けされた文書の初期グループ及び前記候補用語のサブセットを提示する、
ことを特徴とするコンピュータシステム。
【請求項24】
前記トップランク付けされた文書の初期グループ内の文書の全部又は一部について、当該各文書と関連する前記ランク付けされた候補用語の各セットが、
(A)前記トップランク付けされた文書の用語を候補用語のマスターリストと比較し、前記用語が前記候補用語のマスターリスト内にある場合に、前記文書の用語を候補用語として前記文書と関連するランク付けされた候補用語の各セットに加え、
(B)前記文書内の用語の最大数が検討されるまで、前記文書の用語と前記候補用語のマスターリストとの比較を再実行する、
ことによって識別される、請求項23に記載のコンピュータシステム。
【請求項25】
前記トップランク付けされた文書の初期グループ内の文書の全部又は一部について、前記(A)の比較ための命令によって候補用語が識別される回数が、前記文書と関連する前記ランク付けされた候補用語の各セットに含まれる、請求項24に記載のコンピュータシステム。
【請求項26】
前記(iii)に代って、前記重み付け関数によって候補用語に加えられる重みが、(a)前記候補用語を含み、且つ(b)トップランクの文書にそれぞれ関連するランク付けされた候補用語のセット内の前記候補用語の平均位置に応じて決定されることを特徴とする請求項23に記載のコンピュータシステム。
【請求項27】
前記(iii)に代って、前記重み付け関数によって候補用語に加えられる重みが、前記候補用語の文字数に応じて決定されることを特徴とする請求項23に記載のコンピュータシステム。
【請求項28】
前記(iii)に代って、前記重み付け関数によって候補用語に加えられる重みが、前記候補用語を含む前記トップランク付けされた文書の初期グループ内の文書の位置に応じて決定されることを特徴とする請求項23に記載のコンピュータシステム。
【請求項29】
前記(iii)に代って、前記重み付け関数によって候補用語に加えられる重みが、前記候補用語を含むランク付けされた候補用語のセットに関連付けられた前記トップランクの文書の平均ランクに応じて決定されることを特徴とする請求項23に記載のコンピュータシステム。
【請求項30】
前記(iii)に代って、前記重み付け関数によって候補用語に加えられる重みが、TermCount+TermPosition+ResultPosition+TermLength+QueryInclusionに応じて決定され、ここで、
TermCountは、各トップランクの文書の上位部分に前記候補用語が現れる回数であり、
TermPositionは、前記候補用語が現れる各トップランクの文書内の前記候補用語の位置の関数であり、
ResultPositionは、前記候補用語を含む前記トップランク付けされた文書の初期グループにおける文書の位置の関数であり、
TermLengthは、前記候補用語の文字数であり、
QueryInclusionは、前記受信クエリーの用語が前記候補用語内に存在する場合適用され、QueryInclusionは、前記受信クエリーの用語が前記候補用語内に存在しない場合に適用されないことを特徴とする請求項23に記載のコンピュータシステム。
【請求項31】
TermCount、TermPosition、ResultPosition、TermLength、及びQueryInclusionは、各々別々に重み付けされることを特徴とする請求項30に記載のコンピュータシステム。
【請求項32】
前記クエリー改良提案エンジンは更に、前記受信クエリーと前記候補用語のサブセットからの候補用語とを含む変更されたクエリーを使用して、任意選択的に前記受信クエリーを処理すること、選択すること、及び提示することの繰り返しを実行する請求項30に記載のコンピュータシステム。
【請求項33】
前記重み付け関数によって候補用語に加えられる重みが、次式に応じて決定されることを特徴とする請求項32に記載のコンピュータシステム。
(TermCount*1)+
(TermPosition*(w2+(RefinementDepth*2´)))+
(ResultPosition*3)+
(TermLength*(w4+(RefinementDepth*4´)))+
(QueryInclusion*(w5+(RefinementDepth*5´)))
ここで、w1、w2、w3、w4、w5、w2´、w4´、及びw5´は別々の重みであり、RefinementDepthは前記受信クエリーに対して前記処理が行われた回数である。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2013−109781(P2013−109781A)
【公開日】平成25年6月6日(2013.6.6)
【国際特許分類】
【出願番号】特願2013−31890(P2013−31890)
【出願日】平成25年2月21日(2013.2.21)
【分割の表示】特願2006−507450(P2006−507450)の分割
【原出願日】平成16年3月22日(2004.3.22)
【出願人】(501438485)ヤフー! インコーポレイテッド (200)