(57)【要約】【課題】  分野別に分けられたデータを備える、リモートに配置されたデータソースを含むことができる複数のデータソースに対してクエリを実行するためのシステムを提供する。【解決手段】  データソースは、小売り、旅行、娯楽などに関係するデータを含むことが可能である。データソースは、所定のコミュニティまたはコミュニティのグループのローカルデータのみを格納することもできる。本システムは、入力クエリを受け付け、そのフォームを修正して結果としてのクエリを出力するプリプロセッサを備える。この修正は、例えばスペルの訂正を含む。本システムは、クラシファイアタームおよび前回送信されたクエリまたはクエリ内の認識されたパターンからのユーザ指定分類データの存在に基いて、結果としてのクエリを分類する。本システムは、このクエリ分類に基づきクエリの実行対象となるデータソースのサブセットを選択する。【選択図】  図２
2005182817.tif 000002
【特許請求の範囲】
【請求項１】
ユーザからのクエリを解析し、前記クエリに応答するシステムであって、
ａ）入力されたクエリを評価し、前記クエリの修正されたフォームをデータソースに送信し、前記クエリの修正フォームへの応答を作成するクエリプロセッサと、
ｂ）前記クエリまたは前記クエリの修正フォームを評価し、前記クエリ内のデータを識別する複数のクエリレコグナイザと
を備え、
ｃ）前記クエリプロセッサは、前記複数のレコグナイザのうちの指定された１つまたは複数のレコグナイザに対して前記クエリを送信するためにレコグナイザブローカを備える、
ことを特徴とするシステム。
【請求項２】
前記レコグナイザブローカは、前記クエリを、ある確実性の程度が設定されている特定タイプのクエリとして分類する、ことを特徴とする請求項１に記載のシステム。
【請求項３】
前記クエリレコグナイザは、情報を付加することにより、前記クエリ内で識別されたデータに基づいて前記入力されたクエリの修正フォームを作成する、ことを特徴とする請求項１に記載のシステム。
【請求項４】
前記クエリレコグナイザは、前記入力されたクエリにカテゴリを付加する、ことを特徴とする請求項３に記載のシステム。
【請求項５】
前記クエリレコグナイザは、前記入力されたクエリに含まれる情報に関連した情報を付加する、ことを特徴とする請求項３に記載のシステム。
【請求項６】
ドキュメントを検索して前記ドキュメントを分類するウェブクローラと、前記クエリプロセッサからの入力に基づいた結果を供給するデータベースと、をさらに備える、ことを特徴とする請求項１に記載のシステム。
【請求項７】
前記クエリプロセッサは、前記修正クエリをデータソースに送信する前に、前記クエリを修正してカテゴリを含ませる、ことを特徴とする請求項１に記載のシステム。
【請求項８】
前記クエリプロセッサは、前記クエリ内のスペルが間違っているワードについてスペルを変更する、ことを特徴とする請求項１に記載のシステム。
【請求項９】
前記レコグナイザのうちの１つは、クエリ入力ワードをデータベースに格納されているワードと照合し、前記ワードをある信頼度レベルで分類する、ことを特徴とする請求項１に記載のシステム。
【請求項１０】
前記データベースは、前記信頼度レベルを設定する際に使用するユーザ格付けの履歴を含む、ことを特徴とする請求項９に記載のシステム。
【請求項１１】
前記ユーザ格付けの履歴は、すでに送信されたクエリに基づいて提示されている前回結果に対するユーザの選択に基づく、ことを特徴とする請求項９に記載のシステム。
【請求項１２】
前記データベースは、ワードのインデックス、および、前記ワードについて複数のカテゴリが存在する場合に前記ワードのクエリのカテゴリを示す指標を含む、ことを特徴とする請求項１０に記載のシステム。
【請求項１３】
前記クエリを分類するため入力されたクエリ内のキャラクタパターンを認識するパターンレコグナイザを備える、ことを特徴とする請求項１に記載のシステム。
【請求項１４】
１つまたは複数の前記パターンレコグナイザは、該レコグナイザで識別するための指定言語におけるタームのデータベースを備える、ことを特徴とする請求項１３に記載のシステム。
【請求項１５】
ユーザからのクエリを解析し、データを有する前記クエリに応答するシステムであって、
ａ）前記クエリを評価し、前記クエリのフォームをデータソースに送信し、前記クエリの修正フォームに対する応答を作成するクエリプロセッサと、
ｂ）前記クエリまたは前記クエリの修正フォームを評価し、前記クエリで識別されたトークンに基づいてクエリタイプを識別するクエリレコグナイザと、
ｃ）トークンを格納し、前記トークンを含むあるタイプのクエリについて信頼度レベルを対応付け、入力されたクエリ内のトークンと前記データベース内のトークンとの一致が確認された場合に、前記クエリレコグナイザに対して信頼度レベルを与えるデータベースと、
を具備したことを特徴とするシステム。
【請求項１６】
前記クエリプロセッサは、前記クエリのフォームを修正してから、クエリインジケータのカテゴリを含む修正フォームを前記データソースに送信する、ことを特徴とする請求項１５に記載のシステム。
【請求項１７】
クエリを評価する方法であって、
ａ）入力されたクエリを評価し、前記クエリの修正フォームをデータソースに送信し、前記クエリ内のトークンを評価して前記クエリの修正フォームを生成する複数のクエリレコグナイザのうちの、指定された１つまたは複数のクエリレコグナイザを使用することによって前記クエリの評価することにより、前記クエリの修正フォームに対する応答を作成する、
ことを特徴とする方法。
【請求項１８】
前記入力されたクエリは、ある確実性の程度が設定されている特定タイプのクエリとして識別される、ことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記入力されたクエリ内で識別されたデータに基づいて前記入力されたクエリの修正フォームを作成するために、情報を付加すること、を含むことを特徴とする請求項１７に記載の方法。
【請求項２０】
前記入力されたクエリに対してカテゴリを付加すること、を含むことを特徴とする請求項１７に記載の方法。
【請求項２１】
前記入力されたクエリに含まれる情報に関連する情報を付加する、ことを含むことを特徴とする請求項１７に記載の方法。
【請求項２２】
ドキュメントを検索し、前記ドキュメントを分類し、前記入力されたクエリの内容に基づいて前記クエリプロセッサから導かれた入力に基づき確率を与えるデータベースを保持すること、をさらに含むことを特徴とする請求項１７に記載の方法。
【請求項２３】
前記クエリのプロセッサは、前記入力されたクエリ内のスペルが間違っているワードのスペルを変更する、ことを特徴とする請求項１７に記載の方法。
【請求項２４】
前記クエリレコグナイザのうちの１つは、クエリ入力ワードをデータベースに格納されているワードと照合し、前記ワードをある信頼度レベルで分類する、ことを特徴とする請求項１７に記載の方法。
【請求項２５】
前記データベースは、前記信頼度レベルを設定する際に使用するユーザ格付けの履歴を含む、ことを特徴とする請求項２４に記載の方法。
【請求項２６】
前記ユーザ格付けの履歴は、すでに送信された入力クエリに基づいて提示されている前回結果に対するユーザの選択に基づく、ことを特徴とする請求項２５に記載の方法。
【請求項２７】
前記データベースは、ワードのインデックス、および、前記ワードについて複数のカテゴリが存在する場合に前記ワードのクエリのカテゴリを示す指標を含む、ことを特徴とする請求項２６に記載の方法。
【請求項２８】
前記クエリを修正するため入力されたクエリ内におけるキャラクタのパターンを認識する、ことを含むことを特徴とする請求項１７に記載の方法。
【請求項２９】
１つまたは複数のパターンレコグナイザは、前記レコグナイザで識別するための指定言語におけるタームのデータベースを備える、ことを特徴とする請求項２８に記載の方法。
【請求項３０】
複数のデータソースに対してクエリを実行するための命令を格納したコンピュータ可読媒体であって、前記命令は、
前記クエリを前処理し、結果としてのクエリを形成する命令と、
クラシファイアターム、および、前回送信されたクエリからのユーザ指定分類データの存在に基づいて前記結果としてのクエリを分類する命令と、
クエリ分類に基づいて前記クエリの実行対象となるデータソースのサブセットを選択する命令と、
を含むことを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クエリに対する回答を効率よく提示するための自動化クエリアナライザ(automated query analyzers)に関するものである。
【背景技術】
【０００２】
クエリ検索エンジンの１つの目標は、クエリに対する高速応答を実現することである。オンラインユーザは応答の遅い検索エンジンに直面すると、検索要求の再送を試みて、検索を中止し、他の検索エンジンにアクセスするか、またはたぶん、結果がすぐに見つかるように検索条件を書き換える試みをすることで対処することができる。結果がユーザに十分素早く返されれば、ユーザが急いで結果を得ようと認知されている問題に対する解決策を試さなくてすみ望ましい。
【０００３】
Ｗｅｎ氏らによる刊行物（非特許文献１）は、検索エンジンの精度を高めることを目標とするプロセスについて説明している。Ｗｅｎ氏らの論文では、予め作成されているＦＡＱ（よくある質問と回答）文書がクエリを問い合わせる人に提示されるようにクエリをクラスタ化する。例えば、クラスタ化プロセス(clustering process)で、クエリが「ｎｅｗ  ｃａｒ」について問い合わせ、その後、「ｎｅｗ  ｃａｒ」ＦＡＱ文書が「ｎｅｗ  ｃａｒ」クエリへの応答として返される。このアプローチでは、クエリクラスタ毎にＦＡＱ文書の存在を前提とし、さらに検索エンジンに送信されるすべてのクエリについて一致するクラスタの存在を前提とする。Ｗｅｂサイト www.ask.com では、ユーザがクエリ結果を問い合わせるための手段を用意し、Ｗｅｎ氏らの論文で開示されているものと似た手法を使用することができる。
【０００４】
【非特許文献１】”Clustering User Queries of a Search engine”, Wen等
【非特許文献２】RFC #791 Section 3.2
【発明の開示】
【発明が解決しようとする課題】
【０００５】
クエリ検索エンジン(query search engine)の一部を形成する解析ソフトウェア(analysis software)がそのカテゴリ分類に従ってクエリを正確に識別(identiyf)できる場合、検索エンジンはより迅速にクエリに応答することができる。
【課題を解決するための手段】
【０００６】
本発明の一実施形態によるシステムでは、ユーザからのクエリを解析(analyze)し、そのクエリに対しデータで応答する。クエリプロセッサ(query processor)は、クエリを評価(evaluate)し、クエリのフォーム(form)を他のデータソース(data source)に送信(transmit)してクエリの修正フォーム(modified form)に対する応答(response)を作成(create)する。本発明の一実施形態によるシステムでは、クエリまたはクエリの修正フォームを評価するレコグナイザコンポーネント(recognizer component)を構成(implement)し、クエリのタイプ(type)を識別(identify)する。本発明の一実施形態において、クエリプロセッサは、複数のレコグナイザ(recognizer)のうちの指定(specified)された１つまたは複数のレコグナイザに対してクエリを送信するためのレコグナイザブローカ(recognizer broker)を備えている。
【０００７】
このようなレコグナイザの１つは、ワード(word)またはトークン照合レコグナイザ(token match recognizer)である。本発明の一実施形態によるシステムは、クエリ入力ワード(query input word)またはトークン(token)をデータベースに格納されているワードと照合(match)し、それらのワードを信頼度レベル(confidence level)で分類(categorize)する。この信頼度レベルは、すでに送信されたクエリの使用についてユーザ格付け(user rating)の履歴(history)を定義(define)するデータベースレコード(database record)から求められる。
【０００８】
本発明の目的、利点、および特徴について、図面を参照して、以下に詳述する。
【発明を実施するための最良の形態】
【０００９】
図２は、本発明の一実施例により構成されるクエリアナライザの概略を例示している。クエリアナライザ１０は、ユーザからクエリ１１を受け取るとその解析を開始する。アナライザは、ネットワークを介した他のサーバまたはコンピュータとの通信接続によりさらに結合されるサーバコンピュータなどのコンピュータシステム２０（図１）上で実行するソフトウェアで構成されるのが最も一般的である。最も一般的な例では、ユーザは自分のコンピュータにログオンし、インターネットのワイドエリアネットワークを使ってサーバとして動作しているリモートコンピュータシステムと通信する。
【００１０】
サーバ２０上に実行している検索エンジンソフトウェアは、場合によっては他の検索エンジンと連携して、クエリに対する高速応答を行う。応答は、検索結果１２のフォームでユーザに送られるが、通常は、インターネットなどのネットワークを介してユーザに送り返される。この応答は、検索結果内に埋め込まれた記事またはＷｅｂサイトへのリンクを含む一連の記事またはＷｅｂサイトサマリとして形成されることができる。適当なクエリ応答コンピュータとして使用することができるコンピュータシステム２０が図１に示されており、以下で詳細に説明される。
【００１１】
コンピュータシステム２０は、クエリを評価するクエリプロセッサ１０を定義するソフトウェアを含む。クエリ１１を受信したことに対する１つの可能な応答は、クエリの修正されたフォームを、クエリの修正されたフォームに基づき検索を実行する他のサーバに再送することである。例えば、検索結果の他のソースとして、航空運賃、ホテルなどに関するデータを供給する流行Ｗｅｂサイトをホストするサーバとすることも可能である。ある国の教会のリストを保持する宗教Ｗｅｂサイトとすることも可能である。また、自動車販売店へのリンクを含む自動車情報専用のサイトとすることも可能である。他にも、ほんの一部であるが、もちろん、ニュース、ローカル、スポーツ、百科事典、歴史、本、映画、娯楽などのカテゴリがある。
【００１２】
図１に示されているサーバコンピュータシステム２０は、さらに、直接、クエリを評価し、サーバ２０により保持されているデータベースの内容に基づき応答または結果１２を送ることもできる。このデータベースは、数千ものサイトにあるインターネット上のカタログ作成ページコンテンツを検索するウェブクローラ(web crawler)によって取得されたワードのインデックスの形態の情報を格納する。このスキャニングは、定期的に実行され、サイトのコンテンツのデータ表現にかなっていることを確認する。コンピュータシステム２０がクエリ結果を検索するのか、検索要求を他のコンピュータに送信するのかに関係なく、結果１２は、サーバ２０により書式化され、ユーザに送り返されている。この結果はドキュメントまたは情報を含む他のサイトへのリンクのリストを含むため、ユーザがドキュメントをクリックすると、ユーザのＷｅｂブラウザは、そのリンクが指し示すインターネットアドレスにリダイレクトされる。
【００１３】
他の場所にある検索エンジンを効率よく利用するために、コンピュータシステム２０は複数のレコグナイザ２２０（図３）を使用して、クエリまたはクエリの修正されたフォームを評価し、入力されたクエリの種類を識別する。クエリの種類が識別された後、アナライザフェデレーションプログラム(analyzer federation program)１６は、どの代替えサイト検索エンジンにクエリを送信できるかを決定するか、またはクエリはさらに最初にクエリを受信したコンピュータシステム２０により評価されるべきであるかを交互に決定する。
【００１４】
クエリ処理
サーバ２０は、入力されたクエリに対し複数の機能を実行するクエリプロセッサコンポーネント１４を含む。図４は、クエリプロセッサ１０のオペレーションを示す流れ図である。クエリプロセッサは、入力されたクエリを受け取り（１１０）、クエリの地理的な、またインターネット（Ｗｅｂページ）上の発信源など特定のユーザに関するクエリコンテキスト情報、ユーザによって最近閲覧されたＷｅｂサイト、およびユーザによって最近入力されたクエリとユーザによって選択されたそれらのクエリへの結果にアクセスする（１２０）。クエリコンテキスト情報の一部は、クエリの発信元であるソースコンピュータのアドレスに埋め込まれた情報に含まれる。このアドレスは、複数のフィールドに分割された３２ビットのキャラクタ列である。ＩＥＴＦにより発布されているRFC #791 Section 3.2には、ＩＰアドレス指定システムの詳細が説明されている。
【００１５】
それぞれのインターネットサービスプロバイダ（または国もしくは会社）は、ＩＰ範囲クラスＡ、Ｂ、またはＣを取得し、その特有の必要条件について利用可能な３２ビットを分割する。ほとんどの場合、会社のインターネット接続場所が存在しているためＩＰを市に対応付けることが可能である。この逆ルックアップは、必ずしも正確ではなく、例えば、すべてのＡＯＬユーザのＩＰアドレスは、バージニアを発信地とする。
【００１６】
次に、クエリプロセッサは複数の機能をクエリに対し実行し、クエリの解析結果が最適になるようにクエリを修正するか、または補う。このように補うのは、この特定のユーザに最も関連性の高い結果を素早く返せるようにするためである。
【００１７】
ステージ１３０において、クエリプロセッサは、クエリに対しスペルチェックを実行し、スペルに誤りがあるクエリ内のターム(term)のスペルを変更するか、またはスペルの正しいタームでクエリを補う。クエリプロセッサは、フレーズ１３５としてグループ化すべきタームについて正しいスペルのクエリをスキャンする。クエリプロセッサは、通常実行されるクエリに関する情報を使用して、どのタームをフレーズとしてグループ化すべきかを決定する。
【００１８】
ステップ１４０において、クエリプロセッサは、場所に敏感なローカルクエリまたは購入する商品を検索しているクエリなどの特定のタイプであることを示す指標として使用されるフレーズ内のワードを識別または認識する。これらのワードまたはタームを識別することで、クエリプロセッサは、クエリの発信元である地理的発信源に基づき郵便番号または市外局番情報などのコンテキスト固有の情報でクエリを補うことが可能である。
【００１９】
このステージでは、クエリの各フレーズは、クエリパーサー(query parser)２００およびレコグナイザブローカ(recognizer broker)２１０により分解(broken)され、語幹を取り出(stemmed)され、解析(analyzed)され、コンセプト(concept)またはカテゴリの照合(category matching)が行われる。コンテンツに厳密に基づくこれらのコンセプトは、特定のユーザについて集められた過去のデータとともに、可能なフェデレーション結果(possible federation result)、つまり、最も効率のよい解析を行えるようにクエリを仲介する場所を識別する。フェデレーション(federation)とは、クエリに関係するデータを供給しクエリに対する結果を生成するためにクエリを別のサービス（内部または外部）に「ハンドオフ(handing of)」することと定義される。認識フェーズ(recognition phase)の期間中、多数のクエリレコグナイザ２２１、２２２、２２３、２２４などはクエリを評価し、クエリがレコグナイザブローカ２１０について定義済みカテゴリ群(predefined set of categories)のうちの１つに属す確率(probability)を求める。
【００２０】
クエリ前処理(query pre-processing)のパーサーレベル(parser level)で３つの別々のモジュールまたはコンポーネントが使用される。ワードブレーカ(word breaker)は、クエリの各フレーズを別々の複数のワードに分け、それらのワードを出力アレイまたはリスト内に格納する。ステマーコンポーネント(stemmer component)は、ワードブレーカの出力アレイから各ワードのルート(root)を見つけようとし、ルートワード(root word)の対応するアレイ(corresponding array)を作成(create)する。最後に、レコグナイザコンポーネント(recognizer component)は、ルートワード（またはルート(root)を持たないワードに対する実際のワード(actual word)）をデータベース２３０に格納されているインテントリスト(intent lists)と照合(match)し、ワードのインテント(intent of word)を発見(discover)する。レコグナイザコンポーネントは、さらに、アルゴリズム的クエリインテントレコグナイザ(algorithmic query intent recognizer)を使用してパターンを検索する。この解析の結果から、カテゴリ(category)および信頼度のパーセンテージ(degree of confidence as a percentage)が得られる。いまユーザによって「ｃｏｍｐａｒｅ  ｐｒｉｃｅ  Ｂｕｉｃｋ  ａｎｄ  Ｓａｔｔｕｒｎ」というフォームのクエリが入力されたとする。
【００２１】
以下の表１は、このクエリに対するレコグナイザ２２１のこの解析結果の一覧である。
【００２２】
【表１】
2005182817.tif 000003
【００２３】
ステージ１５０（図４）において、ユーザのあり得そうなインテントは、修正されたクエリに基づき、過去のクエリに照らして、決定される。例えば、ユーザが最近自動車を検索するために多数のクエリを入力した場合、またはカーポイントＷｅｂページ上のＷｅｂ検索ボックスにクエリが入力された場合、タームＳａｔｕｒｎの意味として「ｃａｒ」が最も適しており、「ｃａｒ」が結果を得るために使用される。
【００２４】
仕上げられたクエリおよび決定されたクエリタイプに基づき、クエリプロセッサはステップ１６０でクエリの実行対象となる一組のデータソースを選択する。クエリは、「ｃｏｍｐａｒｅ  ｐｒｉｃｅ  Ｓａｔｕｒｎ  ａｎｄ  Ｂｕｉｃｋ  ｃａｔ：ｃａｒｓ：８０」というフォームの修正クエリ(modified query)である。このフォームのクエリは、プリプロセッサ１４がワード「Ｓａｔｕｒｎ」のスペルを訂正し、クエリがカテゴリ「ｃａｒｓ」に関係するという８０％の信頼度レベルでクエリを補ったことを示す。
【００２５】
ステージ１７０において、クエリ（レコグナイザにより強化された）がデータソース上で同時に実行されるか、または好ましいデータソースが最初にアクセスされ、他のデータソースは好ましいデータソースが十分な結果をもたらさないか、またはオーバーロードしたかまたは技術的に困難であるため「タイムアウト(time out)」になった場合に使用されることができる。
【００２６】
データソースまたはプロバイダは、Ｗｅｂサーバ２０上で実行されている内部プロバイダまたはＥｎｃａｒｔａ、Ｅｘｐｅｄｉａ、Ｏｖｅｒｔｕｒｅ、Ｉｎｋｔｏｍｉ、Ｙｅｌｌｏｗ  Ｐａｇｅｓなどの外部プロバイダであってもよい。データソースは、米国を発信元とする英語のクエリを意味する「ｅｎ−ｕｓ」などに基づき、強化された(enhanced)クエリおよびクエリ構成(query configuration)が与えられる。可能なすべてのデータソースのリストから、２つのリストが強化されたクエリおよびクエリ構成に基づいて構築される。第１のリストは、他のデータソースに依存しないソースのリストであり、第２のリストは、他のソースに依存するソースのリストである。最初に第１のリストに載っているソースが並行して呼び出され、その後、第１のリストに載っているソースに依存するソースが呼び出される。
【００２７】
ポピュラーなクエリへの結果を高速に供給するために、クエリプロセッサ１０は結果をポピュラーなクエリにキャッシュする。結果がキャッシュされたクエリに似た結果を求めるクエリは、最初に、適切なキャッシュに送られる。キャッシュは、キャッシュされた情報の変化の速さに応じて異なる間隔で、つまり、毎日または毎時間、更新することができる。ローカルクエリとして識別されたクエリは、職業別電話帳タイプのデータソースに送られる。自動車クエリとして識別されたクエリは、自動車販売データソースに送られる。
【００２８】
返された結果(returned result)は、重複を取り除かれ(de-duplicated)、後処理コンポーネント(post processing component)１８によりランク付け(ranked)される。その結果は、コンテキスト情報およびクエリタイプに基づいてユーザに提示される。ランク付けされた結果の提示(presentation on the ranked result)は、記録されているユーザ設定に基づいて個人化されることができる。ランク付けされた結果は、さらに、元のクエリ、結果として得られたクエリ、結果、およびどの結果がユーザによって選択されたかを記録する計測データベースに記録されることもできる。計測データベースは、検索エンジンが成功したかどうかを監視するために使用される。
【００２９】
レコグナイザブローカ(recognizer broker)２１０
レコグナイザブローカ２１０に多数のポイントを返すことがハイライト表示される。多数のレコグナイザ２２１、２２２などがある。本発明の一実施形態において、ブローカ２１０は、単に、各レコグナイザがクエリの修正されたフォームを評価し、クエリの予測されたカテゴリを返すようにするだけである。他の実施形態では、ブローカ２１０は、クエリのソースから導出された他の情報に基づきレコグナイザを選択する。例えば、ユーザのアドレスが発信国を「Ｓｐａｉｎ」であると示している場合、英語ワード(English language word)のリスト照合レコグナイザ(list match recognizer)にクエリを送信するのは不効率であり、ブローカは利用可能な情報を使用して利用するレコグナイザに関して賢明な選択を行う。ブローカのいくつかは、ワードベースではなく、アルゴリズム的であり、発見的手法ルールを使用して認識されたパターンなどのインテントを検索する。例えば、５つの数字の列がクエリの中に現れた場合、郵便番号を識別するレコグナイザは、これはその国の特定の地域に関する検索に関係するローカル検索クエリであると、高い信頼度レベルで応答する。類似の方法で、レコグナイザは電話パターンも検索する。
【００３０】
本発明の実施形態では、レコグナイザは、アルゴリズム(algorithmic)タイプとリスト照合(list match)タイプの２種類がある。アルゴリズム的クエリインテントレコグナイザ(algorithmic query intent recognizer)は、発見的手法ルール(heuristic rule)を使用して、ユーザが自分のタイプしたワードで何を意味しようとしたかを判別する。一例として電話番号がある。電話番号がタイプされたかどうかを検出するルールは、３つの数字の後にセパレータがあり、その後に７つの数字もしくは３つの数字が並び、その後にセパレータが来て、その後にさらに４つの数字が並ぶ、というものである。したがって、ユーザが「（４２５）８８２−８０８０」とタイプした場合、レコグナイザブローカはこのクエリに高い信頼度で、電話番号であるというフラグを立てる。これは、どのソースまたはプロバイダとコンタクトをとるかについてフェデレーションブローカを補助することが可能である。アルゴリズム的クエリインテントレコグナイザの他の例として以下のものがある。
・  電話番号−例、「find name of (425) 880-8080」
・  郵便番号−例、「Chinese Restaurant 98052」
・  電子メールアドレス−例、「Developer mcalb@microsoft.com」
・  ＵＲＬ−例、「how to go to yahoo.com」
・  ＵＰＳ番号−「Track Z9857103753300」
【００３１】
上述のように、リスト照合クエリインテントレコグナイザ（list match query intent recognizer）は、辞書検索スキーマ(dictionary lookup schemes)に基づく。データベースは、辞書内のエントリ毎に、自動的にワードまたはフレーズを持ち、さらに候補カテゴリ(candidate category)および一致の確率(probability of a match)を格納する。データベース２３０内のエントリのある部分集合は、以下のエントリを含むことが可能である。
・  Ｐａｒｉｓ−ｃｉｔｙ（８０％）；ｈｏｔｅｌ（４０％）
・  Ｌａｓ  Ｖｅｇａｓ−ｃｉｔｙ（９０％）
・  Ｈｏｔｅｌ−ｔｒａｖｅｌ（８０％）
・  Ｊａｇｕａｒ−ｃａｒ（５０％）
・  Ｗｉｎｄｏｗ−ｃａｒ（３０％）
・  Ｊａｇｕａｒ−ａｎｉｍａｌ（５０％）
・  Ｒｅｓｔａｕｒａｎｔ−ｌｏｃａｌ（６０％）
・  Ｈａｉｒ  Ｃｕｔ−ｌｏｃａｌ（５０％）
【００３２】
ユーザが「Ｐａｒｉｓ  Ｈｏｔｅｌ  ｉｎ  Ｌａｓ  Ｖｅｇａｓ」のようなクエリを入力した場合、該当するクエリレコグナイザは、クエリの特定の部分がｃｉｔｙ（Ｐａｒｉｓ，Ｌａｓ  Ｖｅｇａｓ）を含み、ｈｏｔｅｌ（Ｐａｒｉｓ）を含み、ｔｒａｖｅｌ（Ｈｏｔｅｌ）を含むことを指示する。レコグナイザは、各ワードまたはフレーズがどのようなカテゴリに属しているかだけでなく、フレーズ上の位置をも報告する。上の例では、「Ｐａｒｉｓ  Ｈｏｔｅｌ  ｉｎ  Ｌａｓ  Ｖｅｇａｓ」というこのクエリの結果は以下のようになる。
・  キャラクタ１−５：Ｈｏｔｅｌ（４０％）
・  キャラクタ１−５：Ｃｉｔｙ（８０％）
・  キャラクタ７−１１：Ｔｒａｖｅｌ（８０％）
・  キャラクタ１６−２４：Ｃｉｔｙ（９０％）
【００３３】
レコグナイザブローカは、これをフェデレーションプロセッサに返し、クエリの割り当てに関する特定のアクションを実行させる。
【００３４】
レコグナイザ２２１、例えば英語リスト照合レコグナイザ(English language list match recognizer)によりクエリ内でワードに割り当てられた信頼度レベル(confidence level)は、前回検索の履歴に基づく。データベース２３０は、データベースに保持されている検索履歴に基づくワードのリストおよびワードのカテゴリを保持する。上記の例から、データベースは、ユーザがワード「Ｓａｔｕｒｎ」を含むクエリから結果を提示されたときにユーザがそのときの「Ｃａｒ」カテゴリ６８％に関心を持つ可能性がある、というのもユーザがワード「Ｓａｔｕｒｎ」を含むクエリの結果を提示されたときにその頻度でそのようなカテゴリへのリンクをクリックしたからである、ということを過去の経験から知る。
【００３５】
表１の結果は、クエリのワードに基づく複合信頼度レベル(combined confidence level based on the words of the query)を持つ結果として要約されている。２つのワードは、ｃａｒｓについて比較的高い信頼度レベルを持っており、２つのワードは、ｓｈｏｐｐｉｎｇについて高い信頼度レベルを持っていた。フェデレーションコンポーネント(federation component)１６は、クエリを２つの特化した検索エンジンに送信することができ、１つはｓｈｏｐｐｉｎｇに関係し、もう１つはｃａｒｓに関係する。「ｃａｒ  ｓｈｏｐｐｉｎｇ」に適した特別な検索サイトがあることも知ることができる。
【００３６】
クエリインテント認識フェーズ(Query Intent Recognition phase)の他の使い方は、クエリインテントレコグナイザを実行しているＷｅｂサーバが特定のカテゴリが出現した場合に広告を選択的に表示する（または表示しない）ようにすることが可能である場合である。例えば、サーバは、クエリのカテゴリが「ｃａｒｓ」の場合に「Ｒｅｓｕｌｔｓ」Ｗｅｂページ上に「Ｔｏｙｏｔａ  ａｄ」を表示することが可能である。他の応答は、コンテンツを表示しないという選択である。例えば、レコグナイザがクエリを解析し、それが、「ｌｉｖｅ  ｓｅｘ」などの「ａｄｕｌｔ  ｔｅｒｍ」を含んでいる場合、ソフトウェアがこの情報を使用して、特定のフェデレーション(specific federation)を抑制(suppress)するか、または検索結果ページの結果の要素を抑制することが可能である。現在では、サーバソフトウェアプレゼンテーションおよびプロモーションは、クエリの一部をキャラクタ通り抽出し、それらの抽出された部分をそのようなサービスの支払いをする広告主向けに追加することができる。レコグナイザを使用すると、クエリ内に含まれない自動的追加コンテンツを使用してそのようなサービスを強化し、さらにクエリが攻撃的な言葉を含む場合に特定の顧客に対する広告を抑制することが可能である。
【００３７】
他の実施形態は、クエリ分類(query categorization)に限定されず、クエリを補う(query augmentaion)ことに関する。以下の２つの例を考察する。
【００３８】
例１：ユーザは、自分のブラウザの検索テキストボックスを使用して「Ｒｅｓｔａｕｒａｎｔｓ  ｉｎ  Ｒｅｄｍｏｎｄ，ＷＡ」というフレーズを入力する。レコグナイザは、クエリを補い「Ｒｅｓｔａｕｒａｎｔｓ  ｉｎ  Ｒｅｄｍｏｎｄ，ＷＡ  ｚｉｐ：９８０５２：９０  ｃａｔ：ｌｏｃａｌ：６０」というフレーズを形成するが、ただし、「ｚｉｐ：９８０５２：９０」は９０％の確率でこれが郵便番号９８０５２、検索エンジンの情報の有用な断片を参照することを意味する。さらに、ｌｏｃａｌ：６０の分類は、これが６０％の信頼度で、ローカル検索内容の要求であることを意味する。
【００３９】
例２：ユーザが「Ｎｅｗｓ  ａｂｏｕｔ  Ｉｒａｑ」とタイプすると、レコグナイザは「Ｎｅｗｓ  ａｂｏｕｔ  Ｉｒａｑ  ｃａｔ：ｎｅｗｓ：８０  ｒａｎｋｉｎｇ：ｄａｔｅ：３０」と補う、つまり、「ｃａｔ：ｎｅｗｓ：８０」はニュースカテゴリである確率が８０％であることを意味し、「ｒａｎｋｉｎｇ：ｄａｔｅ：３０」はランク付け者(ranker)がこのデータフィールドに対して３０％の重みを使用すべきであることを意味する。
【００４０】
コンピュータシステム２０
図１を参照するとわかるように、本発明を実施する際に使用する代表的なコンピュータシステム２０は、１つまたは複数の処理ユニット２１、システムメモリ２２、およびシステムメモリを含むさまざまなシステムコンポーネントを処理ユニット２１に結合するシステムバス２３を備える。システムバス２３には、メモリバスまたはメモリコントローラ、周辺機器バス、およびさまざまなバスアーキテクチャを使用するローカルバスを含む数種類のバス構造がありえる。
【００４１】
システムメモリは、読み取り専用メモリ（ＲＯＭ）２４およびランダムアクセスメモリ（ＲＡＭ）２５を含む。起動時などにコンピュータ２０内の要素間の情報伝送を助ける基本ルーチンを含む基本入出力システム２６（ＢＩＯＳ）は通常、ＲＯＭ２４に格納される。
【００４２】
コンピュータ２０は、さらに、図に示されていないハードディスクへの読み書きを行うためのハードディスクドライブ２７、取り外し可能磁気ディスク２９への読み書きを行うための磁気ディスクドライブ２８、およびＣＤ−ＲＯＭまたはその他の光媒体などの取り外し可能光ディスク３１への読み書きを行うための光ディスクドライブ３０を備える。ハードディスクドライブ２７、磁気ディスクドライブ２８、および光ディスクドライブ３０は、ハードディスクドライブインターフェース３２、磁気ディスクドライブインターフェース３３、および光ドライブインターフェース３４によりそれぞれシステムバス２３に接続される。ドライブおよび関連コンピュータ可読媒体は、コンピュータ２０用のコンピュータ可読命令、データ構造体、プログラムモジュール、およびその他のデータを格納する不揮発性記憶装置を実現する。本発明で説明されている環境例ではハードディスク、取り外し可能磁気ディスク２９、および取り外し可能光ディスク３１を採用しているが、当業者であれば、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）などのコンピュータからアクセス可能なデータを格納できる他のタイプのコンピュータ可読媒体もこの動作環境で使用できることを理解するであろう。
【００４３】
オペレーティングシステム３５、１つまたは複数のアプリケーションプログラム３６、その他のプログラムモジュール３７、およびプログラムデータ３８をはじめとする、データマイニングソフトウェアコンポーネント１２を含む多くのプログラムモジュールは、ハードディスク、磁気ディスク２９、光ディスク３１、ＲＯＭ２４、またはＲＡＭ２５に格納することができる。ユーザはキーボード４０およびポインティングデバイス４２などの入力デバイスを通じてコンピュータ２０にコマンドおよび情報を入力することができる。他の入力デバイス（図に示されていない）としては、マイク、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどがある。これらの入力デバイスやその他の入力デバイスは、システムバスに結合されているシリアポートインターフェース４６を介して処理ユニット２１に接続されることが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）などの他のインターフェースにより接続することもできる。モニタ４７またはその他の種類の表示デバイスも、ビデオアダプタ４８などのインターフェースを介してシステムバス２３に接続される。パーソナルコンピュータは、通常、モニタの他に、スピーカおよびプリンタなど、他の周辺出力装置（図に示されていない）を備える。
【００４４】
コンピュータ２０は、リモートコンピュータ４９などの１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク環境で動作することもできる。リモートコンピュータ４９は、他のパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、またはその他の共通ネットワークノードでもよく、通常は、コンピュータ２０に関係する上述の要素の多くまたはすべてを含むが、メモリ記憶デバイス５０だけが図１に示されている。図１で説明されている論理接続は、ローカルエリアネットワーク（ＬＡＮ）５１とワイドエリアネットワーク（ＷＡＮ）５２を含む。このようなネットワーキング環境は、オフィス、企業全体にわたるコンピュータネットワーク、イントラネット、およびインターネットでは一般的なものである。
【００４５】
ＬＡＮネットワーキング環境で使用する場合、コンピュータ２０はネットワークインターフェースまたはアダプタ５３を介してローカルネットワーク５１に接続される。ＷＡＮネットワーキング環境で使用される場合、コンピュータ２０は、通常、モデム５４またはインターネットなどのワイドエリアネットワーク５２上で通信を確立するためのその他の手段を備える。モデム５４は、内蔵でも外付けでもよいが、シリアルポートインターフェース４６を介してシステムバス２３に接続される。ネットワーク接続環境では、コンピュータ２０またはその一部に関して示されているプログラムモジュールは、リモートメモリ記憶デバイスに格納されることができる。図に示されているネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立するのに他の手段が使用可能であることは理解されるであろう。
【００４６】
中間クエリ結果(intermediate query result)に基づいて統計情報を構築し維持すると、より効率的なクエリプラン(query plan)を作成できることは、前述の説明からわかるであろう。本発明はある程度の詳しさで説明されているが、本発明は請求項の精神または範囲に収まる開示されている設計に対するすべての修正形態および変更形態を含むことが意図されている。
【図面の簡単な説明】
【００４７】
【図１】本発明を実施するのに好適なコンピュータシステムを示すブロック構成図である。
【図２】本発明の一実施形態により構成されるクエリレコグナイザを示すブロック図である。
【図３】クエリプリプロセッサにおけるサブコンポーネントを示すブロック図である。
【図４】図２に示したクエリレコグナイザの処理手順を示す流れ図である。
【符号の説明】
【００４８】
１１  ユーザクエリ
１４  クエリ前処理
１２  結果
１８  後処理
１６  フェデレーション
２００  クエリパーサー
２１０  レコグナイザブローカ
２３０  データベース
【図１】
2005182817.tif 000004
【図２】
2005182817.tif 000005
【図３】
2005182817.tif 000006
【図４】
2005182817.tif 000007