(57)【要約】【課題】  検索クエリ文字列の反復変換を、検索クエリログおよび／またはウェブデータから抽出された統計と共に活用し、検索クエリ文字列のための可能な代替スペリングを提供する。【解決手段】  各ユーザに対して個別化された提案を提供するために影響を受けることができるスペルチェック手段を提供する。本発明は、検索クエリログを利用することにより、レキシコン内で発見されないがなお関心のある検索クエリとして受け入れ可能な部分文字列を明らかにする。レキシコンの内容を超えて、より高い品質の代替スペリングの提案が可能となる。一例では、クエリログから抽出された単語ユニグラムおよび／またはバイグラム統計を反復検索と組み合わせて利用することにより、部分文字列レベルで動作する。所与のクエリに対して、部分文字列マッチングのみを使用するよりも実質的に良いスペリング代替案を提供する。検索クエリ入力以外のソースから入力データの受信ができる。【選択図】  図１
2005267638.tif 000002
【特許請求の範囲】
【請求項１】
スペルチェックを容易にするシステムであって、
テキストを含む入力データを受信するコンポーネントと、
前記テキスト内で潜在的にスペルミスされた部分文字列の一式を識別し、前記部分文字列の一式のための少なくとも１つの代替スペリングを少なくとも１つのクエリログに基づいて提案するスペルチェックコンポーネントであって、前記クエリログは、ユーザによってある期間にわたってデータの集まりをクエリするために利用されたデータを含むことと、
を備えることを特徴とするシステム。
【請求項２】
前記スペルチェックコンポーネントは、少なくとも１つの代替スペリングを提案するときに、ユーザ依存情報をさらに利用することを特徴とする請求項１に記載のシステム。
【請求項３】
前記部分文字列の一式のための前記代替スペリングは、少なくとも１つの信頼されたレキシコンにさらに基づき、前記信頼されたレキシコンは、コンテンツを有する信頼されたレキシコンおよびコンテンツのない信頼されたレキシコンからなるグループから選択された少なくとも１つを含むことを特徴とする請求項１に記載のシステム。
【請求項４】
前記スペルチェックコンポーネントはストップワードのリストをさらに使用し、前記ストップワードのリストは、コンテンツを有するストップワードのリストおよびコンテンツのないストップワードのリストからなるグループから選択された少なくとも１つを含むことを特徴とする請求項３に記載のシステム。
【請求項５】
前記コンテンツを有するストップワードのリストは、高頻度語および機能語を含むストップワードリスト、およびそれらの頻出スペルミスを含むことを特徴とする請求項４に記載のシステム。
【請求項６】
前記スペルチェックコンポーネントは反復的プロセスを使用して、代替スペリングのスペースを検索することを特徴とする請求項４に記載のシステム。
【請求項７】
前記スペルチェックコンポーネントは、提案された代替スペリングを決定するために利用される検索スペースに制限を課すために、少なくとも部分的には、経験則（Ｈｅｕｒｉｓｔｉｃｓ）を使用することを特徴とする請求項６に記載のシステム。
【請求項８】
前記経験則は、前記検索スペースを制限するために、少なくとも部分的には、少なくとも１つのフリンジを利用することを特徴とする請求項７に記載のシステム。
【請求項９】
前記クエリログは、ある期間にわたって尋ねられたクエリのヒストグラムを含むことを特徴とする請求項４に記載のシステム。
【請求項１０】
前記尋ねられたクエリのヒストグラムは前記ユーザのサブセットに関係し、前記サブセットは少なくとも１人のユーザを含むことを特徴とする請求項９に記載のシステム。
【請求項１１】
前記クエリログはサーバコンピュータ上に存在することを特徴とする請求項９に記載のシステム。
【請求項１２】
前記クエリログはクライアントコンピュータ上に存在することを特徴とする請求項９に記載のシステム。
【請求項１３】
前記スペルチェックコンポーネントは、少なくとも１つのクエリログからの部分文字列発生および共出現頻度統計を利用することを特徴とする請求項９に記載のシステム。
【請求項１４】
部分文字列は、少なくとも１つの信頼されたレキシコン内のエントリ、ストップワードリスト内のエントリ、事前定義された区切り文字のセットのない一連の文字からなるグループから選択された、少なくとも１つを含むことを特徴とする請求項１３に記載のシステム。
【請求項１５】
前記部分文字列の共出現頻度統計は、部分文字列バイグラムカウントを備え、部分文字列バイグラムは、テキスト内の部分文字列のペアを含むことを特徴とする請求項１３に記載のシステム。
【請求項１６】
前記部分文字列バイグラムは、テキスト内の隣接する部分文字列のペアを含むことを特徴とする請求項１５に記載のシステム。
【請求項１７】
前記コンテンツを有するストップワードのリストのための前記部分文字列の共出現頻度統計は、ストップワードシーケンススキップカウントを有する部分文字列バイグラムをさらに含むことを特徴とする請求項１６に記載のシステム。
【請求項１８】
前記クエリログからの前記部分文字列発生および前記共出現頻度統計は、同じ検索可能データ構造内に格納されることを特徴とする請求項１３に記載のシステム。
【請求項１９】
前記データ構造はトライを備えることを特徴とする請求項１８に記載のシステム。
【請求項２０】
連結および／または分割された部分文字列を、個々の部分文字列を処理する方法と同じ方法で処理することを特徴とする請求項１８に記載のシステム。
【請求項２１】
前記スペルチェックコンポーネントは、少なくとも１つのクエリログおよび少なくとも１つのレキシコンからなるグループから選択された少なくとも１つにおける部分文字列である代替スペリングの一式を、生成することを特徴とする請求項２０に記載のシステム。
【請求項２２】
前記代替スペリングの一式は、反復的訂正プロセスを介して決定された代替スペリングの一式を含むことを特徴とする請求項２１に記載のシステム。
【請求項２３】
前記反復的訂正プロセスは、少なくとも１つの部分文字列を別の部分文字列へ代替スペリングとして変更する複数の反復を含み、前記反復的訂正プロセスは、すべての可能な代替スペリングが現在の代替スペリングの一式よりも適切でないときに停止することを特徴とする請求項２２に記載のシステム。
【請求項２４】
前記代替スペリングおよびそれらの適切性は、確率的な文字列間距離および統計的な文脈モデルに基づいて計算されることを特徴とする請求項２３に記載のシステム。
【請求項２５】
前記確率的な文字列間距離は、ポイント変更として文字の挿入、削除、置換、入れ換え、および長距離移動を可能にする、修正されたコンテキスト依存加重Ｄａｍｅｒａｕ−Ｌｅｖｅｎｓｈｔｅｉｎ編集機能を含むことを特徴とする請求項２４に記載のシステム。
【請求項２６】
各反復内において、部分文字列に対する前記代替スペリングの一式は、少なくとも１つのクエリログおよび少なくとも１つの信頼されたレキシコンから抽出された検索可能な部分文字列データ構造を利用して生成されることを特徴とする請求項２４に記載のシステム。
【請求項２７】
各反復内において、各部分文字列に対する前記代替スペリングの一式は、入力部分文字列からの確率的距離δ内に制限され、前記反復的訂正プロセスを全体として制限することなく、各反復内において前記制限が課されることを特徴とする請求項２６に記載のシステム。
【請求項２８】
各反復内において、前記反復的訂正プロセスは、統計的な文脈モデルの利用を介して代替スペリングの最適な一式を検索することを特徴とする請求項２７に記載のシステム。
【請求項２９】
前記統計的な文脈モデルは、少なくとも１つのクエリログから抽出された部分文字列発生および共出現頻度統計を含むことを特徴とする請求項２８に記載のシステム。
【請求項３０】
各反復内において、前記文脈モデルに従って、前記代替スペリングの最適な一式を決定するのを容易にするために、ビタビ探索が使用されることを特徴とする請求項２９に記載のシステム。
【請求項３１】
前記ビタビ探索はフリンジを使用して反復内における代替スペリングの検索を制限し、隣接する部分文字列のあらゆるペアについて、前記部分文字列のいずれかが少なくとも１つの信頼されたレキシコン内にある場合、前記部分文字列の１つのみがその反復内において変化することを許可することを特徴とする請求項３０に記載のシステム。
【請求項３２】
スペルチェックを容易にする方法であって、
テキストを含む入力データを受信するステップと、
前記テキスト内で潜在的にスペルミスされた部分文字列の一式を識別するステップと、
前記部分文字列の一式のための少なくとも１つの代替スペリングを少なくとも１つのクエリログに基づいて提案するステップであって、前記クエリログは、ユーザによってある期間にわたってデータの集まりをクエリするために利用されたデータを含むことと、
を備えることを特徴とする方法。
【請求項３３】
前記部分文字列セットのための前記代替スペリングはさらに少なくとも１つの信頼されたレキシコンに基づき、前記信頼されたレキシコンは、コンテンツを有する信頼されたレキシコンおよびコンテンツのない信頼されたレキシコンからなるグループから選択された少なくとも１つを含むことを特徴とする請求項３２に記載の方法。
【請求項３４】
少なくとも１つの代替スペリングを決定することを容易にするために、ストップワードのリストを少なくとも部分的に使用ステップであって、前記ストップワードのリストは、コンテンツを有するストップワードのリストおよびコンテンツのないストップワードのリストからなるグループから選択された少なくとも１つを含むことと、
少なくとも１つのクエリログからの部分文字列発生および共出現頻度統計を利用するステップであって、前記クエリログは、ある期間にわたって尋ねられたクエリのヒストグラムを含み、前記クエリログからの前記部分文字列発生および前記共出現頻度統計は、検索可能な同じデータ構造内に格納されることと、
連結および／または分割された部分文字列を、個々の部分文字列を処理する方法と同じ方法で処理するステップと、
少なくとも１つのクエリログおよび少なくとも１つのレキシコンからなるグループから選択された少なくとも１つにおける部分文字列である代替スペリングの一式を生成するステップであって、前記代替スペリングの一式は、反復的訂正プロセスを介して決定された代替スペリングの一式を含むことと、
をさらに備えることを特徴とする請求項３３に記載の方法。
【請求項３５】
前記反復的訂正プロセスは、
少なくとも１つの部分文字列を別の部分文字列へ代替スペリングとして変更するステップと、
すべての可能な代替スペリングが現在の代替スペリングの一式よりも適切でないとき、前記反復的訂正プロセスを停止するステップであって、前記代替スペリングおよびそれらの適切性は、確率的な文字列間距離および統計的な文脈モデルに基づいて計算されることと、
を含むことを特徴とする請求項３４に記載の方法。
【請求項３６】
前記反復的訂正プロセスの各反復内において、
部分文字列に対する前記代替スペリングの一式を生成するために、少なくとも１つのクエリログおよび少なくとも１つの信頼されたレキシコンから抽出された検索可能な部分文字列データ構造を利用するステップと、
各部分文字列に対する前記代替スペリングの一式を、入力部分文字列からの確率的距離δ内に制限するステップであって、前記反復的訂正プロセスを全体として制限することなく、前記制限が各反復内において課されることと、
代替スペリングの最適な一式を、統計的な文脈モデルの利用を介して検索するステップであって、前記統計的な文脈モデルは、少なくとも１つのクエリログから抽出された部分文字列発生および共出現頻度統計を含むことと、
をさらに含むことを特徴とする請求項３５に記載の方法。
【請求項３７】
前記代替スペリングの最適な一式を決定することを容易にするために、前記文脈モデルに従って、各反復内においてビタビ探索を使用するステップであって、前記ビタビ探索はフリンジを使用して反復内の代替スペリングの検索を制限し、隣接する部分文字列のあらゆるペアについて、前記部分文字列のいずれかが少なくとも１つの信頼されたレキシコン内にある場合、前記部分文字列の１つのみがその反復内において変化することを許可されることを、さらに含むこと特徴とする請求項３６に記載の方法。
【請求項３８】
検索エンジンへのクエリをスペルチェックするのを容易にするシステムであって、
テキストを含む入力データを受信する手段と、
前記テキスト内で潜在的にスペルミスされた部分文字列の一式を識別し、前記部分文字列の一式のための少なくとも１つの代替スペリングを少なくとも１つのクエリログに基づいて提案する手段であって、前記クエリログは、ユーザによってある期間にわたってデータの集まりをクエリするために利用されたデータを含むことと、
を備えることを特徴とするシステム。
【請求項３９】
２つ以上のコンピュータコンポーネントの間で送信された、スペルチェックを容易にするデータパケットであって、前記データパケットは、少なくとも部分的には、少なくとも１つのクエリログに基づいて、少なくとも部分的には、文字列の一式のための少なくとも１つの代替スペリングを提供するスペルチェックシステムに関係する情報を、少なくとも部分的に備えていることを特徴とするデータパケット。
【請求項４０】
請求項１に記載のシステムのコンピュータ実行可能コンポーネントをその上に格納していることを特徴とするコンピュータ読取り可能媒体。
【請求項４１】
請求項３２に記載の方法を使用する装置であって、コンピュータ、サーバおよびハンドへルド電子デバイスからなるグループの中から選択された少なくとも１つを備えることを特徴とする装置。
【請求項４２】
請求項１に記載のシステムを使用する装置であって、コンピュータ、サーバおよびハンドへルド電子装置からなるグループの中から選択された少なくとも１つを備えることを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にスペルチェッカに関し、より詳細には、クエリログの利用を介してスペルチェックを改善するためのシステムおよび方法に関する。
【背景技術】
【０００２】
自動プログラム、システム、およびサービスとの対話は、特にインターネットの出現によって、ほとんどの人々の生活の日常的な部分になってきている。例えば、ウェブサーフィンまたはブラウズは、一部の人々にとっては「新しい」国民的娯楽でさえある。このようなシステムによれば、ワープロなどのアプリケーションは、友人への手紙または電子メールを入力するなど、多数の人々がその各仕事においてまたはその私生活において、より効率的になる手助けとなっている。多数の自動機能がこれらのアプリケーションに追加されている。例えば、実質的に所望のどんなフォント、色、形状または形式でもドキュメントをフォーマットするツールなどの機能である。多数のユーザによって受け入れられ、評判の高いツールの１つは、スペルチェックアプリケーションである。各ドキュメントの全部または一部分をチェックするために、ユーザによってワープロから呼び出され、かつ／または、ユーザが入力中にスペリングをチェックするのにバックグラウンドで実行するため、呼び出される。一般に、正確なスペルチェックを実行するために、「有効な文字列」の辞書がスペルチェックアプリケーションによって使用される場合がある。スペルチェッカは、辞書にない文字列に出会う場合、この文字列がスペリングの誤りであると仮定し、スペルミスされた文字列に対して辞書において「最も近い」文字列を発見しようと試みることができる。大部分のスペルチェッカは可能なマッチ（ｍａｔｃｈ）のリストをユーザに提供する。これにより、マッチがリスト上にある場合、ユーザは、訂正されたスペリングを有する語をそのリストから選択することができる。他のスペルチェック機能は、ユーザによって構成された場合には、自動訂正を実行する場合がある。
【０００３】
しかし、ワープロ用のスペルチェックは、情報をファイルまたはドキュメントに入力するときにユーザを支援するために適用可能な潜在的なエリアの、部分的なビューのみを提示する。例えば、使用可能なすべての潜在的なウェブサイトおよびサービスにより、サイト名の全部または一部を明示的に入力することによって、あるいは、ウェブページのタイトルおよび本文に現れる語または句における検索を実行することによって、ユーザはしばしば複数のサイトの間をナビゲートする。多数の人々が気づくようになったように、サイト情報または検索クエリが不正確に入力される場合、再びナビゲートするための時間に関するコストは非常に高くなる可能性がある。検索エンジンまたは他のアプリケーションで使用される言語プロセッサは、しばしばユーザクエリを処理し、実際のユーザコマンドと不正確に入力された情報とを区別しようと試みることができる。
【０００４】
【特許文献１】米国特許出願公開第２００３／００３７０７７Ａ１号明細書
【特許文献２】米国特許商標局第０９／６８１７７１号明細書
【非特許文献１】McIlroy, M.D.; Development of a Spelling List; In J-IEEE-TRANS-COMM, 30(1); 91-99; 1982
【非特許文献２】Wittgenstein, L.; Philosophical Investigations; Macmillan, New York, third edition; 1968
【非特許文献３】Kukich, K; Techniques for Automatically Correcting Words in Text; In ACM Computing Surveys, 24(4): 377-439; 1992
【非特許文献４】Golding, A.R.; A Bayesian Hybrid Method for Context-Sensitive Spelling Correction; In Proceedings of the Workshop on Very Large Corpora, pages 39-53; 1995
【非特許文献５】Golding, A.R. and D. Roth; Applying Winnow to Context-Sensitive Spelling Correction; In Proceedings of the 13th International Conference on Machine Learning, pages 182-190; 1996
【非特許文献６】Mangu, L. and Brill, E.; Automatic Rule Acquisition for Spelling Correction: In Proceedings of the 14th International Conference on Machine Learning, pages 734-741; 1997
【非特許文献７】Cucerzan, S. and Yarowsky, D.; Augmented Mixture Models for Lexical Disambiguation; In Proceedings of EMNLP 2002, pages 33-40; 2002
【非特許文献８】Damerau, F.J.; A Technique for Computer Detection and Correction of Spelling Errors; In Communications of ACM, 7(3): 171-176; 1964
【非特許文献９】Levenshtein, V.I.; Binary Codes Capable of Correcting Deletions, Insertions and Reversals; Doklady Akademii Nauk SSSR; 163(4) p845-848; 1965
【非特許文献１０】Cherkassky, V.; Vassilas, N.; Brodt, G.L.; Wagner, R. A.; and Fisher, M.J.; The String to String Correction Problem; In Journal of ACM, 21(1): 168-178; 1974
【非特許文献１１】Kernighan, M.; Church, K.; and Gale, W.; A Spelling Correction Program Based on a Noisy Channel Model; In Proceedings of COLING 1990
【非特許文献１２】Brill, E.; Chandrasekar, R.: and R. Rounthwaite, R.; Spelling Correction System and Method for Phrasal Strings Using Dictionary Looping
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、理解できるように、検索エンジンへのクエリのために入力することができる情報のタイプは、ワープロアプリケーションで通常使用されるものとは構造または形式において非常に異なる場合がある。したがって、ワープロアプリケーションにおいて少々個別的に他に類しない基準によって語をチェックするツールは、汎用クエリデータから生成された情報に適用されるとき、ほとんどあるいはまったく実用性がない可能性がある。
【０００６】
しばしば、クエリは、アーティスト、製品または会社名など、標準のスペルチェック辞書で発見されない可能性のある語からなるので、情報についてのブラウザまたは他の検索クエリにおいては、スペルチェックアプリケーションに関して独特の問題が生じる。もう１つの問題は、クエリ内の語が不正確に入力されているが、不正確なスペリングではない場合があることである（例えば、「ａｍｄ  ｐｒｏｃｅｓｓｏｒｓ」の代わりに「ａｎｄ  ｐｒｏｃｅｓｓｏｒｓ」）。このように、人々が、例えば検索エンジンへの入力ボックスなどのタイプインラインにテキストを入力する方法は、しばしば、ワープロ用の入力とは大変異なる。入力されるもの、および、人々がクエリ入力に関して起こすエラーのタイプもまた、性質が大変異なる。さらに、ウェブデータおよび検索クエリは大変動的な性質を持っており、多数の適切な名詞を含む。例えば、新しい製品、人々、機関、場所および出来事は、日々、一般的になる。したがって、標準辞書はワープロとの関連においてはスペルチェックに適切であるが、タイプインラインおよび検索クエリのスペルチェックには適切ではない場合がある。
【０００７】
辞書（すなわち、レキシコン）は、いかなるスペルチェッカにおいても重要なコンポーネントである。これはその中に含まれた情報が、不正確なスペリングを決定するための基礎を提供するからである。しかし、スペルチェックが望まれる多数のアプリケーション（例えば、入力ボックスに備えられたテキスト入力）においては、標準的な辞書はこの問題に最適ではない。例えば、検索エンジンの入力ボックスへのテキスト入力をスペルチェックするには、関心のある可能性のある、より最近のイベントまたは情報をチェックするために、辞書は「ｈａｎｇｉｎｇ  ｃｈａｄ」および「Ａｐｏｌｏ  Ａｎｔｏｎ  Ｏｈｎｏ」などの文字列を含むべきである。理解できるように、これらおよび複数の他のタイプの文字列は標準辞書に現れない。１つの可能な手法は、検索エンジンまたは言語プロセッサなど、ユーザが特定の場所に入力中であるもののログにおいて、部分文字列マッチング技術を利用することである。残念なことに、この手法による問題は、クエリログもまた一般に多数の入力エラーを含むようになり、ユーザの望む検索に関連しない部分文字列マッチを返すようになることである。
【０００８】
加えて、スペルチェックのために利用される辞書および検索の文脈は、常に変化している。これらの動的な振る舞いを、従来の辞書および検索クエリ処理を利用して明らかにすることはできない。例えば、現在、Ｌｉｍｐ  Ｂｉｚｋｉｔと呼ばれる人気のあるバンドがある場合、「ｂｉｚｋｉｔ  ｐｉｃｔｕｒｅｓ」の検索は、「ｂｉｓｃｕｉｔ」のスペルミスではなくこのバンドを指している可能性が高い。突然このバンドの人気がなくなり、ビスケットの写真についてのベストセラーの本がある場合、「ｂｉｚｋｉｔ  ｐｉｃｔｕｒｅｓ」は「ｂｉｓｃｕｉｔ  ｐｉｃｔｕｒｅｓ」のスペルミスである可能性がより高い。同様に、政治の現状を考えてみれば、彼が現在有名なカリフォルニア州知事である場合、「ｇｏｖｅｎｏｒ  ａｎｌｄ」はおそらくは「ｇｏｖｅｒｎｏｒ  ａｒｎｏｌｄ」を指す。このように、検索クエリの文脈はスペルチェックに著しく影響を与える。
【課題を解決するための手段】
【０００９】
以下に、本発明のいくつかの態様の基本的理解を与えるために、本発明の簡単な概要を提示する。この概要は、本発明の広範な概観ではない。本発明の主要／重要な要素を特定すること、または、本発明の範囲を線引きすることは意図されない。その唯一の目的は、本発明のいくつかの概念を簡単な形態で、後に提示されるより詳細な説明への前置きとして提示することである。
【００１０】
本発明は一般にスペルチェッカに関し、より詳細には、クエリログの利用を介してスペルチェックを改善するためのシステムおよび方法に関する。
【００１１】
検索クエリ文字列の反復的な変換が、検索クエリログおよび／またはウェブデータから抽出された統計と共に活用されて、検索クエリ文字列のための可能な代替スペリングが提供される。これは、各ユーザに対して個別化された提案を与えるために影響を受けることができる、優れたスペルチェック手段を提供する。検索クエリログを利用することによって、本発明は、レキシコン内で発見されないがなお関心のある検索クエリとして受け入れ可能な部分文字列を明らかにすることができる。これにより、レキシコンの内容を超えて、より高い品質の代替的なスペリングの提案を与えるための手段が可能となる。本発明の一例は、反復的な検索と共にクエリログから抽出された単語ユニグラムおよびバイグラム統計を利用することによって、部分文字列レベルで動作する。これは実質的に、所与のクエリに対して正確な文字列マッチングのみを使用するよりも、より良いスペリングの選択肢を与える。したがって、本発明は例えば、その与えられた選択肢を、最近の一般的な概念／クエリの履歴に基づいて調整することができる。本発明はまた、その訂正を、対応する以前のクエリログに基づいて所与のユーザに合わせて調整し、はるかにより関連のあるスペリング選択肢を与えるのを可能とすることもできる。本発明の他の例では、検索クエリ入力以外のソースから入力データを受信することができる。これは、通常のワープロなどとの関連において、クエリログで容易化されたスペルチェックを利用する方法を提供する。
【００１２】
前述および関連する目的の実施のために、以下の説明および添付の図面に関連して、本明細書において、本発明のある例示的な態様を説明する。しかし、これらの態様は、本発明の原理を使用することができる様々な方法のほんの数例を示し、本発明は、すべてのこのような態様およびそれらの等価物を含むように意図される。図面と共に考慮されることにより、以下の本発明の詳細な説明から、本発明の他の利点および新規な特徴は明らかになるであろう。
【発明を実施するための最良の形態】
【００１３】
次に、図面を参照しながら本発明を説明する。図面においては、同じ参照番号は全体で同じ要素を指すために使用される。以下の説明では、説明のため、本発明の十分な理解を与えるために多数の特定の詳細を述べる。しかし、これらの特定の詳細によってではなくても、本発明を実施することができることは明らかになるであろう。他の場合では、本発明の説明を容易にするために、周知の構造およびデバイスをブロック図の形態で示す。
【００１４】
本出願で使用されるとき、「コンポーネント」という語はコンピュータ関連エンティティを指すように意図されている。このエンティティは、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれでもよい。例えば、コンポーネントは、それだけに限定されないが、プロセッサ上で実行するプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラムおよび／またはコンピュータであってもよい。例示として、サーバ上で実行するアプリケーションおよびサーバの両方がコンピュータコンポーネントである可能性がある。１つまたは複数のコンポーネントはプロセスおよび／または実行のスレッド内に存在することができ、コンポーネントは１つのコンピュータ上でローカライズされるか、および／または２つ以上のコンピュータの間で分散される場合がある。「スレッド」は、オペレーティングシステムカーネルが実行のためにスケジュールするプロセス内のエンティティである。当技術分野で周知のように、各スレッドは、スレッドの実行に関連付けられた揮発性データである、関連付けられた「コンテキスト」を有する。スレッドのコンテキストには、システムレジスタのコンテンツ、および、スレッドのプロセスに属する仮想アドレスが含まれる。したがって、スレッドのコンテキストを備える実際のデータは、実行時に変わる。
【００１５】
本発明は、検索エンジンへのクエリをスペルチェックするための、改善されたシステムおよび方法を提供する。本発明の一例は、信頼されたレキシコン（言語における有効な語のリストである）およびクエリログをデータのソースとして利用する。本発明は、クエリログから抽出された単語ユニグラムおよびバイグラム（ストップワードのスキップを有する）統計、およびまた、ただ１つの文字列マッチングを使用する場合を超えて、所与のクエリのより良いスペリング選択肢のための革新的タイプの反復検索を利用することによって、部分文字列レベルで動作する。本発明のもう１つの例は、少なくとも部分的には、低カウントの単語ｎグラム（ｎ個の連続語のシーケンスとして定義され、具体的には、ユニグラムは個々の語であり、バイグラムは２つの連続語のシーケンスである）についてのウェブ統計を利用する。
【００１６】
従来の語のスペリング訂正は、テキストが書かれる言語の信頼されたレキシコンＬおよび距離関数ｄに頼っている。レキシコン内のスペリング選択肢の一式｛ｗ１，ｗ２，．．．，ｗｋ｝が、テキスト内の各レキシコン外の語の形態に対して提案される。このとき、このような有効な選択肢は、通常は１つまたは２つの編集（ｅｄｉｔ）の隔たり（編集距離）である所与の固定距離しきい値δ内に存在している（すなわち、ｄｉｓｔ（ｗ，ｗ１）≦δ）。選択肢は通常、従来の尤度関数Ｐ（ｗｉ｜ｗ）によって順序付けられ、この関数は、言語内の語の確率（通常、目標言語内の大きいコーパスからの最尤推定値を通じて計算される）および複数の語の間の距離を考慮に入れる。
【００１７】
実際の距離関数ｄおよびしきい値δは、スペルチェッカの精度のために重要である。ある極端な例では、制限的すぎた関数／しきい値の組み合わせを利用すると、所与のクエリに対して最良の訂正を発見できない結果となる可能性がある。反対の極端な例では、それほど制限しない関数を利用すると、結果として、非常に可能性の低い訂正を含んだ結果となってしまう。本発明は、修正された制限検索を選択肢の文字列レベルで利用するが、選択肢の検索を語レベルでは実質的に制限しないことによって、実行可能な妥協点を与える。本発明の一例では、文字列の各語のための代替案の一式を識別するための距離として、文脈依存加重（ｃｏｎｔｅｘｔ−ｄｅｐｅｎｄｅｎｔ  ｗｅｉｇｈｔｅｄ）Ｌｅｖｅｎｓｈｔｅｉｎ距離を利用し、これは、基本的編集として文字の挿入、削除、置換、即時入れ換え、および長距離移動を可能にする。しきい値自体は変数であり、各語の特性（主に、語がレキシコン内にあるかどうか）および反復回数に依存する。
【００１８】
図１は、本発明の一態様による検索クエリ評価システム１００のブロック図を示す。検索クエリ評価システム１００は、検索クエリ評価コンポーネント１０２からなる。検索クエリ評価コンポーネント１０２は検索クエリ入力１０４を受信し、代替クエリ提案データ１０６を出力する。検索クエリ評価コンポーネント１０２はレキシコンならびに検索クエリログを利用して、各検索クエリを評価する。本発明の他の例はまたウェブ統計を利用して、検索クエリ入力１０４を評価する。一般に、反復的プロセスが利用されて、最適な提案が得られるまで各代替提案がさらに精緻化される。検索クエリログは統計情報を提供し、この情報を検索クエリ評価コンポーネント１０２が活用して、通常のユーザまたは所与のユーザのための最良の解を発見することができる。本発明のさらにもう１つの例では、検索クエリログは、タイミングパターンを使用して検索クエリの評価を容易にすることができるように、処理される。タイミングパターンは、それだけに限定されないが、年度パターン、日付パターン（例えば、毎週水曜日、休日など）、および、時刻パターンなどにすることができる。したがって、本発明の一例では、現在の年の１０月の月、および、前年の１０月の月についてのクエリログを得ることができる。このタイプの時間パターン認識により、より良い検索クエリ提案データ１０６の生成を容易にすることができる。同様に他のタイプのパターン認識を本発明によって利用することができ、例えば、ユーザの検索パターン、ユーザの趣味および関心、ユーザの好みなどである。本発明によって、所与のユーザのこれらの特定の側面に関係して、検索クエリログおよび／またはウェブデータを得ることができ、検索クエリ評価をさらに容易にすることができる。
【００１９】
本発明の範囲には、検索クエリ入力以外のソースから導出された入力データが含まれることは、当業者には理解されよう。したがって、本発明の例を利用して、ワープロ、電子メールプログラム、インスタントメッセージプログラム、およびチャットルームプログラムなどからのデータ入力を受け入れることができる。このように、クエリログをさらに、検索クエリプログラム以外の環境で活用することができる。したがって、「検索クエリ」という語の様々な形態は、本発明との関連で利用されるとき、「入力データ」の様々な形態と同じ意味である。したがって、入力データは、本発明の例へのスペルチェックのために提示されるいかなるデータをも指す。
【００２０】
図２を参照して、本発明の一態様による検索クエリ評価システム２００のもう１つのブロック図を示す。検索クエリ評価システムは、検索クエリデータ２０４を受信して代替クエリ提案データ２０６を出力する検索クエリ評価コンポーネント２０２からなる。検索クエリ評価コンポーネント２０２は、部分文字列プロセッサコンポーネント２０８および反復クエリ評価コンポーネント２１０からなる。部分文字列プロセッサコンポーネント２０８は検索クエリデータ２０４を受信し、これを、反復クエリ評価コンポーネント２１０によって利用することができるレベルにトークン化する。反復クエリ評価コンポーネント２１０はクエリログデータ２１４を利用し、また、レキシコンデータ２１２および／またはオプションのウェブ統計データ２１６など、追加のデータソースを利用することもできる。このデータが活用されて検索クエリデータ２０４の強化された評価が提供さる。これをさらに以下に詳述する。反復クエリ評価コンポーネント２１０は、トークン化されたクエリ語を処理し、代替的な検索クエリ部分文字列２１８の新しい一式を、部分文字列処理コンポーネント２０８へトークン化のために戻すように送信する。この反復的プロセスは、反復クエリ評価コンポーネント２１０が最適な提案に到達した判断するまで継続され、この情報を代替クエリ提案データ２０６として出力する。
【００２１】
本発明をよりよく理解するには、そこから本発明が使用される状況およびその目的を理解することが役に立つ。ユーザによってウェブ検索エンジンに送信されたほぼ１０％のクエリは、スペルミスのエラーによって損なわれている。したがって、ウェブ検索における重要な問題は、スペルミスされたクエリを検出および訂正することである。検索エンジンへのクエリのスペルチェックは、従来のドキュメントのスペルチェック（例えば、通常のワープロのスペルチェッカ）とは根本的に異なる問題である。従来のドキュメントのスペリング訂正との違いを示しているこのプロセスの重要な特性のいくつかは、以下の通りである。
【００２２】
・各スペルミスされた語の選択肢の一式を提案することができる従来の単語スペラとは異なり、ウェブクエリスペルチェッカは、ウェブクエリのためのただ１つのスペリング代替案を提案することができ、これは、従来のスペラが提供するものよりはるかに高い精度が必要とされることを意味する。
【００２３】
・従来のスペルチェッカは、信頼されたレキシコンを使用し、レキシコン外の語に注目する。ウェブクエリでは、未知語（このようなレキシコンによる）はスペリングミスを表していない場合があり、未知語がウェブ検索では有効である場合がある（例えば、ｌｉｍｐ  ｂｉｚｋｉｔ）。クエリ語のリストは固定したターゲットではなく、急速に変化している。また、連語情報に基づいて、レキシコン内の語が他のレキシコン内またはレキシコン外の語にさえ変化さられるべきである場合がある（例えば、ｆｏｏｄ  ｅｘｐｌｏｒｅｒ→ｆｏｒｄ  ｅｘｐｌｏｒｅｒ、ｌｉｍｐ  ｂｉｚ  ｋｉｔ→ｌｉｍｐ  ｂｉｚｋｉｔ）。
【００２４】
・ウェブ検索においては、スペルミスされた語は、所期の語から多数の編集距離分隔たっている可能性があり、これは特に、少々例を挙げれば、このような語が、人物、会社、技術、または製品の名前を表すときである。
【００２５】
・ウェブクエリスペリング訂正は、信頼されたレキシコンおよび／またはコーパスデータに加えて、本発明によって提供されるようなクエリログの存在からメリットを得ることができる。このようなクエリログは、語の頻度、語の文脈について、およびスペルミスのエラーについての、ほぼリアルタイムの重要な情報を含む。このようなリソースは従来のスペリングで利用されていない。
【００２６】
本発明は、ウェブクエリログおよびウェブデータから抽出された統計に従って、クエリ文字列のより可能性の高いクエリを表す他の文字列への反復的変換として、ウェブクエリをスペル訂正する問題を公式化する。汎用スペリング訂正のタスクには長い歴史があり、従来は、文字の挿入、削除、置換および入れ換えなど、誤字を解決することに焦点を合わせている（例えば、非特許文献１参照。）。通常のスペルチェッカは各未知語（すなわち、言語の信頼されたレキシコン内で発見されない語）について、可能な訂正として提案されるべきレキシコン内の代替案の小さい一式を計算する。このようなシステムは一般に文脈を無視し、レキシコン内の語の頻度（大きいコーパスから推定されるものなど）、ならびに、語レベル（例えば、ａｃｃｅｐｔａｂｌｅの代わりにａｃｃｅｐｔｉｂｌｅの使用）および文字レベル（例えば、ｐｈの代わりにｆの誤用）において最も一般的なミスにのみに依存している。
【００２７】
本発明によるウェブクエリスペリング訂正のタスクは、従来のスペルチェックとは多数の点で異なり、したがって、異なる課題を提示する。クエリの妥当性を、単純なレキシコンの検査によって、またはその文法性をチェックすることによって、決定することはできない。大部分のウェブクエリは、正当であるがレキシコン外の語を何度も含む、１つの概念または概念の列挙からなる。ウェブクエリ訂正器は、ｌｅｇｏ  ｔｏｓに対してｌｅｇｏ  ｔｏｙｓへの訂正という、他の人々が何を検索するかについての情報に基づいておそらく間違いなく最良な取りうる訂正を、提案することができるべきである。たとえ、例えば、文字ベースのエラーモデル（通常のワープロのスペルチェッカなど）が、スペルミスをしたｔｏｓに対して、ｔｏｓｓ、ｔｏｅｓ、ｔｏｐｓ、ｔｏｎｓおよびｌｏｇｓを、より確からしい代替案として予測するであろうという事実、および、ｌｅｇｏという語は多数の英語のレキシコン内には現れない可能性があるという事実があるにもかかわらずである。
【００２８】
何が有効なウェブクエリであるかを単に定義することは、非常に困難な試みに相当する。明らかに、信頼されたレキシコンだけを使用することはできない。これは多数の新しい名称および概念が、日々、一般的になるからであり、広い範囲のレキシコンを維持することは、不可能でない場合があっても極めて困難となる。実行可能な代替的な方法は、ウェブおよびウェブ検索エンジンを利用する何百万の人々の専門的知識を収集および活用することである。したがって、「語の意味は言語におけるその使用である」というＷｉｔｔｇｅｎｓｔｅｉｎの観測（例えば、非特許文献２参照。）に類似して、レキシコンによってではなく、人々が何を問い合わせて（クエリして）いるかにおけるその頻度によって、語の妥当性が与えられる。しかし、このような手法はそれ自体の警告を含んでいる。ウェブクエリログから、その頻度があるしきい値より上であるすべてのクエリを有効として単に抽出することは、誤りとなり得る。例えば、ｂｒｉｔｎｙ  ｓｐｅａｒｓのスペルミスは、正確にスペルされるものよりもはるかに一般的なクエリであるが、場合によってはレキシコン外の語を含み、これは例えば、ｂａｙｅｓｉａｎ  ｎｅｔｓまたはａｍｄ  ｐｒｏｃｅｓｓｏｒｓのクエリである。同じことは、クエリ語を含むウェブドキュメントの数をカウントすることについても当てはまる。非常に一般的な語のスペルミスは、完全に正しいがスペルだが、それほど一般的でない語よりも、はるかに高い頻度を有する。
【００２９】
ウェブクエリで発見されたエラーの多数は、有効な語の文脈で不適切な置換に相当し（例えば、ｐｒｉｎｃｉｐａｌおよびｐｒｉｎｃｉｐｌｅ）、レキシコンの検査によって、または個々の語の頻度に基づいて検出することはできない。現代のドキュメントで発見されたエラーの約２５〜５０％は実際にこのような置換であるという、Ｋｕｋｉｃｈの観測（例えば、非特許文献３参照。）は、さらに大きい測定内ではないにしても、クエリログデータにも当てはまるように思われることは、予想できることである。このような置換エラーの解決は、文脈依存スペリング訂正（ＣＳＳＣ）のフレームワークにおける、様々な以前のＮＬＰ（自然言語処理）研究の目的であった（例えば、非特許文献４、非特許文献５、非特許文献６、および非特許文献７参照）。有望な結果が得られても（９２〜９５％の精度）、以前の研究の範囲は非常に制限されており（２つまたは３つの代替案を有する多くても１８個の混同セット、例えば、｛ｐｅａｃｅ，ｐｉｅｃｅ｝）、調査されたアルゴリズムは注釈付きデータの存在に強く依拠し、このようなデータから抽出された多数の文脈的な特徴を利用する。ウェブクエリスペリング訂正の場合、注釈付きデータは存在しないが、大量の注釈なしのデータがクエリログの形態で使用可能である（ある期間にわたって検索エンジンに送信されたクエリのヒストグラムである）。ウェブクエリのもう１つの特性は、大変短い（平均で２．２語）ことであり、比較的幅広い文脈ウィンドウに基づいて多数の特徴を利用する技術を適用することが困難である。また、ＣＳＳＣで利用される通常のデータは、一般に他の文脈スペルミスおよび置換エラーがないと見なされる可能性があり、これはウェブクエリにとって現実的なシナリオではない。
【００３０】
他の内容および性能は、ウェブクエリスペリング訂正システムの設計における計算集中的なアルゴリズムの利用をさらに制限する。例えば、サーバベースのアーキテクチャでは、このようなシステムは非常に制限された時間的な性能要件を満たさなければならないが、スペース要件は緩和される可能性がある。これらの制約のいくつかを以下に提供するが、これらの制約の徹底的な解析は提供しない。「古典的な」スペリング訂正手法の例は、タスクの一連の形式的定義を利用すること、および、各状況に対応する強度および制限を示す具体的な例を提示することによって、簡単に解析される。この問題は反復的に再定義され、信頼されたレキシコンに純粋に基づいた手法で開始して、信頼されたレキシコンの役割が大幅に縮小される手法で終了する。そのように行う間、有効なウェブクエリの実行可能な定義を提供するために、具体的な前進が行われる。
【００３１】
Σを言語のアルファベットとし、Ｌ⊂Σ＊を言語の幅広い範囲のレキシコンとする。次いで、スペリング訂正の最も単純な定義を以下のようにすることができる。
【００３２】
ｗ∈Σ＊＼Ｌが与えられると、
【００３３】
【数１】
2005267638.tif 000003
【００３４】
となるようにｗ’∈Ｌを発見する。
【００３５】
すなわち、テキスト内のいかなるレキシコン外の語についても、使用可能なレキシコン内で最も近い語を発見し、それを正確なスペリング代替案として仮定する。ｄｉｓｔはいかなる文字列ベースの関数であってもよく、例えば、２つの語が共通して有していない文字の数と、２つの語が共有する文字の数の間の比率にすることができる。スペリング訂正において２つの最も使用された距離のクラスは、Ｄａｍｅｒａｕ（例えば、非特許文献８参照。）およびＬｅｖｅｎｓｈｔｅｉｎ（例えば、非特許文献９参照。）によって提案されるような編集距離、および、相関行列距離（例えば、非特許文献１０参照。）である。本発明の一例は、以下で提示するような、修正されたバージョンのＤａｍｅｒａｕ−Ｌｅｖｅｎｓｈｔｅｉｎ編集距離を使用する。
【００３６】
前の公式化は、言語内の語の頻度を考慮に入れていない。この問題の簡単な解決法は、目標言語Ｌ内の語の確率を、Ｌを超えて大きいコーパスＣにわたる最尤推定値（ＭＬＥ）として計算することである。汎用スペリング訂正問題を、以下のように再公式化することができる。
【００３７】
ｗ∈Σ＊＼Ｌが与えられると、ｄｉｓｔ（ｗ，ｗ’）≦δかつ
【００３８】
【数２】
2005267638.tif 000004
【００３９】
となるようにｗ’∈Ｌを発見する。
【００４０】
この公式化では、未知語のある「妥当」な距離δ内にあるすべてのレキシコン内の語は良い候補と見なされ、それらの候補の最良のものがその事前確率Ｐ（・）に基づいて選択される。
【００４１】
当然の次のステップは、雑音のあるチャネルモデルフレームワーク内で、事後確率を目的関数として使用することである（例えば、非特許文献１１参照。）。目的関数は、元のスペリングにおいて調整された相関の確率Ｐ（ｖ｜ｗ）となり、言語内の語の事前確率Ｐ（ｖ）、および、語形ｖをｗとしてスペルミスする確率Ｐ（ｗ｜ｖ）を組み込むようになる。簡単にするために、本明細書で説明するすべての公式化は事前確率を目的関数として使用するが、実際には、これらを事後確率で置き換えることができる。
【００４２】
これまで考察した公式化は文脈を考慮に入れておらず、未知語は分離して訂正される。下記の例に例示するように、文脈は非常に多くの場合においてスペリング訂正のために極めて重要であるので、これは問題である。
ｐｏｗｅｒ  ｃｒｄ→ｐｏｗｅｒ  ｃｏｒｄ
ｖｉｄｅｏ  ｃｒｄ→ｖｉｄｅｏ  ｃａｒｄ
【００４３】
スペルミスされた語形ｃｒｄは、そのコンテキストに応じて２つの異なる語に訂正されるべきである（ｖｉｄｅｏ  ｃｄなど、他の有効な代替案が存在し、これらはこの考察では有用でないので意図的に無視される）。従来のスペルチェッカ（例えば、通常のワープロのスペルチェッカ）によって提案された訂正は、両方の場合で同一であり、この順序でｃａｒｄ、ｃｏｒｄ、ｃｒｕｄ、ｃｕｒｄ、ｃｕｄである。ただ１つの提案のみが許可されるとき（ウェブクエリスペリング訂正においては標準的）、常にこのようなリストから最初の提案を採用することは、多数の誤りを生じる可能性がある。
【００４４】
文脈を考慮に入れる問題の可能な公式化は以下の通りである。
【００４５】
ｓ∈Σ＊、ｓ＝ｃｌｗｃｒが、ｗ∈Σ＊＼Ｌおよびｃｌ，ｃｒ∈Ｌ＊と共に与えられると、ｄｉｓｔ（ｗ，ｗ’）≦δかつ
【００４６】
【数３】
2005267638.tif 000005
【００４７】
となるようにｗ’∈Ｌを発見する。
【００４８】
スペースおよび他の単語区切り文字は、簡単にするためにこの公式化において無視される。後続の問題の公式化もまた単語区切り文字を無視するようになるが、語のトークン化は、スペリング訂正プロセスの重要な部分として見なされる可能性がある。
【００４９】
上記の定義に基づいた従来のスペリング訂正システムは、他の有効語による有効語の置換を処理しない。ウェブ検索の場合、訂正が元のクエリよりも「有意味（ｍｅａｎｉｎｇｆｕｌ）」であるとき、有効語のための訂正提案を提供することは重要であり、例えば以下の通りである。
ｆｏｏｄ  ｅｘｐｌｏｒｅｒ→ｆｏｒｄ  ｅｘｐｌｏｒｅｒ
ｇｏｌｆ  ｗａｒ→ｇｕｌｆ  ｗａｒ
【００５０】
以下の例は、従来のスペリング訂正、文脈依存訂正および有効語置換によって処理されない２つの問題の組み合わせを示す。
ｃｈｉｃｋｅｎ  ｓｏｐ→ｃｈｉｃｋｅｎ  ｓｏｕｐ
ｓｏｐ  ｏｐｅｒａ→ｓｏａｐ  ｏｐｅｒａ
【００５１】
これらの問題は部分的には、ＮＬＰ資料において定義されるように、ＣＳＳＣのタスクによって対処され、以下のように公式化することができる。
【００５２】
言語内の混同可能な有効語形のセットＷ＝｛ｗ１，ｗ２，．．．，ｗｎ｝および文字列ｓ＝ｃｌｗｉｃｒが与えられると、
【００５３】
【数４】
2005267638.tif 000006
【００５４】
となるようにｗｊ∈Ｗを選択する。
【００５５】
公式化したように、ＣＳＳＣのタスクは、従来の汎用スペリング訂正よりも語義の曖昧性解消（ＷＳＤ）により関係している。それにもかかわらず、スペルチェックのときにテキスト内の各語について混同可能なものの一式を、ｄｉｓｔ（ｗ，ｗ’）≦δであるすべての語ｗ’として構成することによって、このタスクをスペリング訂正に結び付けることができる。句のスペリング訂正の汎化された問題を、以下のように公式化することができる。
【００５６】
ｓ∈Σ＊が与えられると、ｄｉｓｔ（ｓ，ｓ’）≦δかつ
【００５７】
【数５】
2005267638.tif 000007
【００５８】
となるようにｓ’∈Ｌ＊を発見する。
【００５９】
通常、スペリング訂正は、
【００６０】
【数６】
2005267638.tif 000008
【００６１】
である（すなわち、少なくとも１つの成分語が未知である）ときに望ましいが、上記に示すように、有効語形のシーケンスが他の有効語形のシーケンスに変更されるべきであるとき、ｓｏｐ  ｏｐｅｒａなど、頻繁な場合がある。語境界はこの後者の公式化で隠されており、この公式化がより汎用になり、この公式化がウェブクエリ訂正のための他の重要なスペリングのエラー、すなわち連結および分割をカバーすることが可能になることを注意されたい。例えば、以下の通りである。
ｐｏｗｅｒ  ｐｏｉｎｔ  ｓｌｉｄｅｓ→ｐｏｗｅｒｐｏｉｎｔ  ｓｌｉｄｅｓ
ｗａｌｔｄｉｓｎｅｙ→ｗａｌｔ  ｄｉｓｎｅｙ
ｃｈａｔ  ｉｎｓｐａｎｉｃｈ→ｃｈａｔ  ｉｎ  ｓｐａｎｉｓｈ
この公式化はなお、実際には所与の文脈内で有効な形である未知語によって表現された（したがって、
【００６２】
【数７】
2005267638.tif 000009
【００６３】
）、ウェブクエリスペリング訂正システムによって処理されなければならない、スペリング訂正の重要なクラスをカバーせず、これは例えば以下の通りである。
ａｍｄ  ｐｒｏｃｅｓｓｏｒｓ→ａｍｄ  ｐｒｏｃｅｓｓｏｒｓ
【００６４】
通常のワープロはａｍｄをスペルミスされた語として強調表示し、ｍａｄ、ａｍｉｄ、ａｍ、ａｎｄおよびａｄなど、訂正の提案を与える。ウェブクエリスペリング訂正の場合、システムはスペリング訂正を提案するべきではなく、これは、上記の句が未知語を含むという事実にもかかわらず、上記の句は正当なクエリを表現するからである。
【００６５】
後者の公式化で処理されないさらにより興味深いいくつかの場合は、有効語が未知語（すなわち、信頼されたレキシコン内にない）に変化されるべきであるという場合であり、以下の例のように、２つの有効語が１つの未知語に連結されるべきである。
ｇｕｎ  ｄａｍ  ｐｌａｎｅｔ→ｇｕｎｄａｍ  ｐｌａｎｅｔ
ｌｉｍｐ  ｂｉｚ  ｋｉｔ→ｌｉｍｐ  ｂｉｚｋｉｔ
これは、以下のように、スペリング訂正問題のさらにより汎用な公式化につながる。
【００６６】
ｓ∈Σ＊が与えられると、ｄｉｓｔ（ｓ，ｓ’）≦δかつ
【００６７】
【数８】
2005267638.tif 000010
【００６８】
となるようにｓ’∈Σ＊を発見する。
【００６９】
この公式化は、言語のレキシコンの明示的な利用を行わないが、レキシコンはなお、文字列の尤度Ｐ（ｓ）の推定で利用される場合がある。これは、ウェブクエリ訂正の場合、クエリが書かれる実際の言語は、そこから文字列の確率を推定することができる注釈なしのクエリログトレーニングデータよりも、重要ではなくなることを意味する。したがって、この確率モデルを、ウェブクエリとしての文字列の有意味性の尺度の代用物にすることができる。このように、ｓａｄ  ｔｏｍａｔｏｅｓ（音楽バンドの名称）など、従来のコーパスのいずれにおいてもありそうにないランダムな名詞句は、ウェブ検索の文脈において有意味となる。
【００７０】
従来の語のスペリング訂正は、信頼されたレキシコンおよび文字列間距離関数に依存する。上記で与えられたスペリング訂正の公式化は、このような文字列間距離およびしきい値を利用して、代替スペリングが検索されるスペースを制限した。様々な以前の研究は、適切な文字列間距離関数を選択する問題に対処している。本発明の一例は、修正された文脈依存加重されたＬｅｖｅｎｓｈｔｅｉｎ距離を使用し、これは、ポイント変更として、文字の挿入、削除、置換、即時入れ換え、および長距離移動を可能にする。
【００７１】
実際の文字列間距離関数ｄおよびしきい値δは、スペラの精度のために重要である。制限的すぎる関数／しきい値の組み合わせの利用は、所与のクエリに対して最良の訂正を発見できない結果に終わる可能性がある。例えば、標準のＬｅｖｅｎｓｈｔｅｉｎ距離（文字列を別の文字列に変換するために必要とされた最小数のポイント変更として定義され、ポイント変更は、以下のオペレーション、すなわち、文字の挿入、文字の削除、および、別の文字によるある文字の置換のうち１つである）、および、δ＝１のしきい値を利用すると、ｄｏｎａｄｌ  ｄｕｃｋ→ｄｏｎａｌｄ  ｄｕｃｋの訂正は可能にならない。しかし、それほど制限しない関数の利用は結果として、非常に可能性の低い訂正の提案を含む場合がある。例えば、同じ古典的なＬｅｖｅｎｓｈｔｅｉｎ距離およびδ＝２を利用すると、文字列ｄｏｎａｄｌ  ｄｕｃｋの訂正は可能となるが、また、ｌｏｇ  ｗｏｏｄ→ｄｏｇ  ｆｏｏｄなどの悪い訂正（Ｐ（ｓ）に組み込まれたようなクエリの頻度に基づく）にもつながるようになる。しかし、大きい距離の訂正はなお、例えば以下のような状況の多様性において望ましい。
例１：  ｐｌａｔｎｕｉｎ  ｒｉｎｇｓ→ｐｌａｔｉｎｕｍ  ｒｉｎｇｓ
例２：  ｄｉｔｒｏｉｔｉｇｅｒｓ→ｄｅｔｒｏｉｔ  ｔｉｇｅｒｓ
【００７２】
第１の例においては、通常のワープロのスペルチェッカはｐｌａｎｔａｉｎおよびｐｌａｎｔａｉｎｓのみを、スペルミスされた語ｐｌａｔｎｕｉｎのための訂正として提案する可能性がある。第２の例では、通常のワープロのスペルチェッカはｄｉｔｒｏｉｔｉｇｅｒｓの語をスペルミスとして強調表示するが、訂正の提案を提供しない。従来の信頼されたレキシコンおよびコーパスの手法は、このタイプの問題を解決することができない場合があるが、この問題には本発明により、大きいクエリログを利用することによって対処することができる。
【００７３】
ｄｉｔｒｏｉｔｉｇｅｒｓなどのスペルミスが、選択の距離およびしきい値に従って正しい代替案からあまりにも離れている場合、正しい代替案は１ステップでは発見されない可能性がある。それにもかかわらず、本発明の一例を使用すると、ｄｉｔｒｏｉｔｉｇｅｒｓ→ｄｅｔｒｏｉｔｔｉｇｅｒｓ→ｄｅｔｒｏｉｔ  ｔｉｇｅｒｓなど、中間の有効訂正ステップを可能にすることによって、正しい代替案に到達することができる。この問題の最後の公式化は、言語のレキシコンを明示的に利用しなかった。むしろ、トレーニングのために利用されたクエリログに現れるいかなる部分文字列もが有効な訂正と見なされる可能性があり、クエリの相対頻度および代替スペリングに基づいて、現在のウェブクエリの代替案として提案される可能性がある。実際に、ワープロによって使用される通常のスペルチェッカとは反対に、本発明のベーススペルチェッカ（本発明の基本スペルチェッカは非反復システムである）の一例はｄｅｔｒｏｉｔｔｉｇｅｒｓを提案し、これは、この代替案がクエリログ内で頻繁に発生するからである。他方では、ｄｅｔｒｏｉｔｔｉｇｅｒｓ自体は、本発明の反復的訂正手法のための基礎である、類似のクエリログ頻度の事実を使用することによって、スタンドアロンクエリとしてベーススペルチェッカに提示される場合、ｄｅｔｒｏｉｔ  ｔｉｇｅｒｓに訂正されることが可能である。このような手法に不可欠なものは、クエリログの３つの通常のプロパティである。すなわち（１）クエリログ内の語は、比較的訂正が容易なスペルミスから、ユーザの意図を認識することがほぼ不可能となる大きいエラーのスペルミスまで、様々な方法でスペルミスされること、（２）スペルミスが悪くはないほど、そのスペルミスは頻繁に起こること、および（３）正しいスペリングはスペルミスよりも頻度が高くなる傾向があることである。Ａｌｂｅｒｔ  Ｅｉｎｓｔｅｉｎに関係する検索クエリの統計の一例を表１に示す。
【００７４】
【表１】
2005267638.tif 000011
【００７５】
この状況においては、スペリング訂正問題に以下の反復公式化を与えることができる。
【００７６】
ｓ０∈Σ＊が与えられると、ｄｉｓｔ（ｓｉ，ｓｉ＋１）≦δかつ
【００７７】
【数９】
2005267638.tif 000012
【００７８】
、∀ｉ∈０．．ｎ−１、かつ
【００７９】
【数１０】
2005267638.tif 000013
【００８０】
となるように数列ｓ１，ｓ２，．．．ｓｎ∈Σ＊を発見する。
【００８１】
本発明の基本スペルチェッカを反復的に適用することによって行うことができる訂正の一例は、以下の通りである。
ａｎｏｌ  ｓｃｗａｒｔｅｇｇｅｒ→ａｒｎｏｌｄ  ｓｃｈｗａｒｚｅｎｅｇｇｅｒ
スペルミスされたクエリ：  ａｎｏｌ  ｓｃｗａｒｔｅｇｇｅｒ
第１の反復：  ａｒｎｏｌｄ  ｓｃｈｗａｒｔｎｅｇｇｅｒ
第２の反復：  ａｒｎｏｌｄ  ｓｃｈｗａｒｚｎｅｇｇｅｒ
第３の反復：  ａｒｎｏｌｄ  ｓｃｈｗａｒｚｅｎｅｇｇｅｒ
第４の反復：さらなる訂正はなし、したがって、第３の反復の結果が出力される。
【００８２】
この時点まで、スペルチェック問題に与えられた公式化における文字列の概念は、仕様が曖昧にされていた。Ｂｒｉｌｌ他（例えば、非特許文献１２、特許文献１、特許文献２参照。）によって検討された１つの可能性は、クエリ全体を、訂正される文字列として見なすことである。彼らの手法は、統計的文字エラーモデルを構築し、ログされたクエリを他のログされたクエリに、文字エラーモデルとのそれらの相対的頻度の一致に基づいた訂正としてマップすることである。彼らはクエリログのこの訂正プロセスを反復し、最終的に、別のクエリのスペルミスとして識別されたログ内の各クエリをログ内に格納する。クエリレベルで作業することには、少数の大きい欠点がある。この手法は、ウェブクエリログで使用可能な膨大な情報を活用するが、これらのログで現れる、比較的低い範囲を有する正確な句のマッチのみをカバーする。ｂｒｉｔｎｅｔ  ｓｐｅａｒ  ｉｎｃｏｎｃｅｒｔなどのクエリを訂正することはできず、これは、その正しいバージョンであるｂｒｉｔｎｅｙ  ｓｐｅａｒｓ  ｉｎ  ｃｏｎｃｅｒｔがクエリログ内に現れないからであるが、例えば以下のように、その部分文字列を分離して訂正することができる。
【００８３】
ｂｒｉｔｎｅｔ  ｓｐｅａｒ→ｂｒｉｔｎｅｙ  ｓｐｅａｒｓ
本発明は上記の手法による問題を克服して、クエリのスペルチェックのための効果的な方法を創り出す。本発明は以下の公式化を利用する。
【００８４】
ｓ０∈Σ＊が与えられると、各ｉ∈０．．ｎ−１について、分解
【００８５】
【数１１】
2005267638.tif 000014
【００８６】
が存在するように数列ｓ１，ｓ２，．．．ｓｎ∈Σ＊を発見し、ただし、
【００８７】
【数１２】
2005267638.tif 000015
【００８８】
は、
【００８９】
【数１３】
2005267638.tif 000016
【００９０】
、ｉ＝０．．ｎ−１、ｋ＝１．．．１ｉであり、かつ、各ｉ＝０．．ｎ−１について、
【００９１】
【数１４】
2005267638.tif 000017
【００９２】
であり、かつ、
【００９３】
【数１５】
2005267638.tif 000018
【００９４】
であるような、複数の語または語のグループである。
【００９５】
例えば以下のように、文字列分解の長さは反復ごとに変わる可能性があることを注意されたい。
【００９６】
【数１６】
2005267638.tif 000019
【００９７】
反復的プロセスは、他のタイプの問題になりやすい。短いクエリは他の無関係のクエリに反復的に変換される可能性がある。したがって、本発明の一例では、このようなクエリの変更には追加の制限がある。トレーニングのため、本発明は、使用可能なレキシコン情報（例えば、ｍｕｌｔｉ−ｍｏｄａｌなどのレキシコンエントリは３つの部分に分割されないようになる）に加えて、非常に基本的なスペースおよび単語区切り文字情報を利用して、使用されたウェブクエリログ内のすべてのクエリをトークン化し、ユニグラムおよびバイグラム統計を収集する。
【００９８】
入力クエリは、クエリログを処理するために利用されたような使用可能なレキシコン情報に加えて、同じスペースおよび単語区切り文字情報を利用してトークン化される。上記の文字列間距離関数（本発明の一例では、これは前述の加重Ｌｅｖｅｎｓｈｔｅｉｎ関数である）を利用し、レキシコン内の語およびレキシコン外のトークンについて異なるしきい値を可能にして、各トークンについて代替案の一式が計算される。レキシコンに加えて、クエリログから抽出された単語／トークンのユニグラムおよびバイグラムのスペースにおいて、マッチが検索される。本発明の一例では、ユニグラムおよびバイグラムは共に同じデータ構造内に格納され、システムは語の連結および分割を、１語の未知の形を処理する方法とまったく同じ方法で処理するようになる。
【００９９】
すべての可能な代替案の一式がクエリ内の各語形について計算された後、修正されたビタビ探索（遷移確率が、バイグラムおよびユニグラムクエリログ統計を利用して計算され、出力確率が、語の間の逆の文字列間距離で置き換えられる）が使用されて、以下の制約の下で入力クエリの最良の可能な代替文字列が発見され、この制約はすなわち（例えば）、２つの隣接する語彙内の語が同時に変化することを許可しないことである。この制約は、ｌｏｇ  ｗｏｏｄ→ｄｏｇ  ｆｏｏｄなどの変化を防止する。この制約のアルゴリズムの結果は、トレリス内のすべての可能なパス（すなわち、クエリ内のあらゆるトークンについての訂正候補のすべての可能な組み合わせ）を検索する必要がないことであり、これにより、さらに後述するように、訂正された検索手順が非常に高速になる。各語のための代替案のリストはランダムにソートされるが、入力語形が信頼されたレキシコン内にある場合にその入力語はリスト内の最初の位置にあるというプロパティを有すると仮定すると、検索されたパスは「フリンジ」を形成する。図３は、修正されたビタビ探索の例示３００において、ｗ１、ｗ２およびｗ３がレキシコン内の語形と推定されるトレリスのこのような一例を提示する。ｗ１およびｗ２に対応する代替案の間のｋ１×ｋ２個の可能なパスのコストを計算するのではなく、ｋ１＋ｋ２個のパスのコストを計算することのみが必要であることに注意されたい。
【０１００】
本発明は単語バイグラム統計を使用するので、ストップワード（前置詞および接続詞など）は何度も最良のパス検索に悪い方向に干渉する可能性がある。例えば、ｐｌａｔｕｎｕｍ  ａｎｄ  ｒｉｇｓなどのクエリの訂正においては、単語バイグラムに基づいた言語モデルは、語形ｒｉｇｓについて関連のある文脈を使用しないようになる。このタイプの問題を回避するため、ストップワードおよびそれらの最も可能性の高いスペルミスは別々に処理され、検索は、説明図３００におけるように最初にそれらを無視することによって行われ、ｗ４はこのような語であると推定される。制限されたトレリス内の最良のパスが発見された後、ストップワード（またはそれらのスペルミス）のための最良の代替案が、先端が固定されるフリンジにより第２のビタビ探索によって計算される。これを、図４のストップワード処理の修正されたビタビ探索の説明図４００において提示する。フリンジによる検索の手法は、検索スペースを大幅に制限しすぎることによって、精度に対して場合によっては否定的な影響を有するように見えるが、このような手法は、スペリング訂正の反復プロセスと結合されるとき、大変強力である。
【０１０１】
本発明はクエリログおよびウェブインデックスを、提案されたフリンジ方法を有するビタビ探索によって必要とされたウェブクエリ内のｎグラムの確率の推定における貴重なリソースとして使用することができる。しかし、これらのいずれも、単独で利用された場合、他方よりも良いリソースと見なされる可能性はない。一方で、ウェブ頻度は、反復訂正手法にはあまり有用でない場合があり、これは、ウェブドキュメントのミスはウェブクエリのミスよりも頻度が低く（ウェブクエリの約１０〜１５％はスペルミスを含む）、ウェブページの作者によって行われたミスは、ウェブをクエリする人々によって行われたミスを十分にモデリングしない場合があるからである。また、ウェブ頻度は必ずしも、クエリスペリング訂正のためにいくつかの語の重要性を反映するとは限らない場合がある。ウェブ上に現れるバイグラムの数は、スペースおよび速度の制限のために、スペリング訂正システムが利用することができるバイグラムの数よりはるかに大きい。したがって、所与のしきい値より高いカウントを有するバイグラムのみを格納および利用することは、最適でない場合がある。ｍａｉｌ  ｏｘなど、ウェブ上に何百回も発生するがクエリログでは発生しないバイグラムは、ｏｘ  ｐｉｃｔｕｒｅなど、より低いウェブカウントを有するが実際にクエリログ内で現れる単語バイグラムよりも、クエリ訂正について関連が少ない可能性がある。
【０１０２】
他方では、クエリログは、低カウントのユニグラムおよびバイグラムに対して非常に信頼できない可能性がある。例えば、サンプルクエリログ内の２０個のクエリは、バイグラムｃａｔｆｉｓｈ  ｓｏａｐを含んでいるが、ただ３個のみがバイグラムｃａｔｆｉｓｈ  ｓｏｕｐを含んでいるとする。これらの統計に基づくと、ｃａｔｆｉｓｈ  ｓｏｐなどのクエリは、語ｓｏａｐを含む不正確な代替案に関連付けられるようになる（簡単にするため、この例では、ｄｉｓｔ（ｓｏｐ，ｓｏａｐ）＝ｄｉｓｔ（ｓｏｐ，ｓｏｕｐ）であると仮定する）。本発明の一例では、クエリログ内に現れる単語ユニグラムおよびバイグラムが使用されるが、それらのクエリログ頻度はそれらのウェブ頻度に従って調整される。このように、ウェブ上では発生しない大変低い頻度のｎグラムを、クエリログからフィルタリングして除くことができる（これを、ランタイムに利用されるデータのサイズを制限するために行うことができる）が、大変低い頻度のｎグラムは、より信頼できる単語ｎグラム統計を得ながら、反復的な訂正のために役立つより高い頻度のクエリスペルミスを失うことはない。図５は、本発明の一態様による情報の流れの構造５００の説明図を示す。情報の流れの構造５００はウェブインデックス５０２を示しており、ウェブインデックス５０２は、クエリログトライ５０４のためのユニグラムおよびバイグラム統計を再推定するために利用される。
【０１０３】
本発明の他の例では、信頼されたレキシコンに、例えばａｍｄなど、スペリング訂正を常にパスする語を追加することによって、（特に英語以外の言語のための）信頼されたレキシコンを豊富にすることによってレキシコン開発を強化することができる。
ａｍｄ  ｐｒｏｃｅｓｓｏｒｓ→ａｍｄ  ｐｒｏｃｅｓｓｏｒｓ
ａｍｄ  ｗａｒｒａｎｔｙ→ａｍｄ  ｗａｒｒａｎｔｙ
ａｍｄ  ｏｖｅｒｃｌｏｃｋｉｎｇ→ａｍｄ  ｏｖｅｒｃｌｏｃｋｉｎｇ
【０１０４】
本発明のさらにもう１つの例では、クエリログ語ヒストグラムにおいて未知語が与えられると、本発明を利用して、その語を含むすべてのクエリを発見すること、および、語が訂正されるクエリの数を、語が訂正されないまま残されるクエリの数に対して計算することができる。本発明のさらに他の例では、異なる文脈によりミススペルがどのように訂正されるかを観察することによって、ユーザの知識がクエリログから抽出される。本発明の他の例は、複数の言語にわたる同系辞書（機械翻訳で橋渡し要素として使用されるもの）を構築すること、および／または、言語翻訳者を手助けするために反復スペリング訂正器を使用することを含む。
【０１０５】
図示し上述した例示的なシステムおよびプロセスに鑑みて、本発明によって実施することができる方法は、図６〜図８のフロー図を参照することにより、より良く理解されるであろう。説明を簡単にするため、これらの方法を一連のブロックとして示し、説明するが、本発明はこのブロックの順序によって限定されない。本発明によれば、いくつかのブロックは本明細書に示し、説明するのとは異なる順序で、かつ／または、他のブロックと同時に発生することができるからであることを理解されたい。また、例示されたブロックのすべてが、本発明による方法を実施するために必要であるとは限らない場合がある。
【０１０６】
本発明を一般に、プログラムモジュールなど、１つまたは複数のコンポーネントによって実行されるコンピュータ実行可能命令に関連して説明することができる。一般に、プログラムモジュールには、ルーチン、プログラム、オブジェクト、データ構造などが含まれ、これらは特定のタスクを実行するか、あるいは特定の抽象データ型を実装する。通常、プログラムモジュールの機能性を、本発明の様々な実施例で望まれるように結合させまたは分散させることができる。
【０１０７】
図６は、本発明の一態様による検索クエリを容易にする方法６００のフロー図を示す。方法６００はステップ６０２で開始し、入力検索クエリを得る６０４。クエリは通常、ユーザによってウェブ検索アプリケーションに入力される。次いでステップ６０６で、検索クエリは本発明によってトークン化されて、処理のためにバイグラムおよびユニグラムに分割される。次いでステップ６０８で、トークン化されたクエリが利用されて、少なくとも部分的には、少なくとも１つのクエリログを使用して代替クエリ提案が計算される。クエリログは、少なくとも部分的には、ユーザによって行なわれた以前の検索に関係する統計情報を提供する。頻度のような統計情報および／または訂正提案などを本発明によって使用して、代替クエリ提案を提供することができる。本発明の他の例では、信頼されたレキシコンをまた追加のウェブ統計と共に利用して、低カウントの単語ｎグラムを改善することもできる。ウェブ統計をまた、レキシコン情報なしで使用することもできる。本発明はまた、修正された文脈依存加重Ｌｅｖｅｎｓｈｔｅｉｎ距離を利用することもでき、これはポイント変更として、文字の挿入、削除、置換、即時入れ換え、および長距離移動などを可能にする。代替クエリ提案の計算中に、本発明はまた、２つの隣接する語彙内の語が同時に変化することを許可しないという制約を使用することもできる。この制約のアルゴリズムの結果、トレリス内のすべての可能なパスを検索する必要がなくなり、これにより、修正された検索手順が大幅により高速になる。加えて、これは、クエリが代替クエリ提案のための完全に誤った句にならないようにする。代替クエリ提案が計算された後、ステップ６１０でユーザおよび／またはシステムに出力され、フローはステップ６１２で終了する。
【０１０８】
図７を参照して、本発明の一態様による検索クエリを容易にする方法７００のもう１つのフロー図を示す。方法７００はステップ７０２で開始し、ステップ７０４で入力検索クエリを得る。次いでステップ７０６で、入力クエリは、使用可能なレキシコン情報に加えて、クエリログを処理するために利用されたものと同じスペースおよび単語区切り文字情報を利用して、トークン化される。各トークンについて、ステップ７０８で、加重Ｌｅｖｅｎｓｈｔｅｉｎ距離関数を利用し、レキシコン内の語およびレキシコン外のトークンについて異なるしきい値を可能にして、代替案の一式が計算される。本発明は従来のスペリング訂正とは対照的であり、これは、レキシコンに加えて、クエリログから抽出された単語／トークンユニグラムおよびバイグラムのスペース内でマッチが検索されるためである。本発明の一例では、ユニグラムおよびバイグラムは共に同じデータ構造内に格納され、システムは語の連結および分割を、１語の未知の形を処理する方法とまったく同じ方法で処理するようになる。すべての可能な代替案の一式がクエリ内の各語形について計算された後、ステップ７１０で、修正されたビタビ探索（遷移確率が、バイグラムおよびユニグラムクエリログ統計を利用して計算され、出力確率が、語の間の逆距離で置き換えられる）が使用されて、以下の制約の下で入力クエリの最良の可能な代替文字列が発見される。この制約はすなわち、２つの隣接する語彙内の語が同時に変化することを許可しないことである。この制約のアルゴリズムの結果、トレリス内のすべての可能なパスを検索する必要がなくなり、これにより、さらに後述するように、修正された検索手順が大変高速になる。次いでステップ７１２で、最適な代替クエリ提案が発見されているかどうかについての判断が行われる。そうである場合、ステップ７１４で最適な代替クエリ提案が出力され、フローはステップ７１６で終了する。そうでない場合、ステップ７０６で再度、反復プロセス内で、最適な代替クエリ提案が発見されるまで、最良の部分文字列の代替クエリ提案がトークン化される。
【０１０９】
図８を見ると、本発明の一態様による検索クエリを容易にする方法８００のさらにもう１つのフロー図を示す。方法８００はステップ８０２で開始し、ステップ８０４において、低カウントのクエリログｎグラムのためのウェブ統計を、逆ウェブインデックスから得る。これは、はるかに大きいデータベースからの情報を組み込むことによって、ｎグラムのための統計情報を強化する。次いでステップ８０６で、ウェブ統計が、低カウントのクエリログｎグラムの反復処理のために、少なくとも部分的にはｎグラムのための統計として利用され、フローはステップ８０８で終了する。本発明の一例では、クエリログ内に現れる単語ユニグラムおよびバイグラムが使用されるが、それらのクエリログ頻度はそれらのウェブ頻度に従って調整される。このように、ウェブ上で発生しない大変低い頻度のｎグラムを、クエリログからフィルタリングして除くことができる（これを、ランタイムに利用されるデータのサイズを制限するために行うことができる）が、大変低い頻度のｎグラムは、より信頼できる単語ｎグラム統計を得ながら、反復訂正のために役立つより高い頻度のクエリスペルミスを失わない。
【０１１０】
本発明の様々な態様を実施するための追加の状況を提供するために、図９および以下の考察は、本発明の様々な態様を実施することができる適切なコンピューティング環境９００の簡単な全体的説明を提供するように意図されている。本発明を一般に、ローカルコンピュータおよび／またはリモートコンピュータ上で実行するコンピュータプログラムのコンピュータ実行可能命令との関連で上述したが、本発明をまた、他のプログラムモジュールと組み合わせて実施することもできることは、当業者には理解されよう。一般に、プログラムモジュールには、ルーチン、プログラム、コンポーネント、データ構造などが含まれ、これらは特定のタスクを実行し、および／または特定の抽象データ型を実装する。また、本発明の方法を他のコンピュータシステム構成により実施することができ、これらの構成には、シングルプロセッサまたはマルチプロセッサコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、ならびに、パーソナルコンピュータ、ハンドヘルドコンピューティングデバイス、マイクロプロセッサベースおよび／またはプログラマブルコンシューマエレクトロニクスなどが含まれ、これらの構成の各々は１つまたは複数の関連デバイスと動作可能に通信することができることは、当業者には理解されよう。本発明の例示した態様をまた分散コンピューティング環境で実施することもでき、この環境ではあるタスクが、通信ネットワークを通じてリンクされるリモート処理デバイスによって実行される。しかし、本発明の、全部でないにしてもいくつかの態様を、スタンドアロンコンピュータ上で実行することができる。分散コンピューティング環境では、プログラムモジュールはローカルおよび／またはリモートのメモリストレージデバイス内に位置することができる。
【０１１１】
本出願で使用されるとき、「コンポーネント」という語は、コンピュータ関連エンティティを指すように意図され、このエンティティは、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれでもよい。例えば、コンポーネントは、それだけに限定されないが、プロセッサ上で実行するプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラムおよびコンピュータであってもよい。例示として、サーバ上で実行するアプリケーションおよび／またはサーバがコンポーネントである可能性がある。加えて、コンポーネントには、１つまたは複数のサブコンポーネントが含まれる場合がある。
【０１１２】
図９を参照すると、本発明の様々な態様を実施するための例示的システム環境９００には従来のコンピュータ９０２が含まれ、コンピュータ９０２には、処理装置９０４、システムメモリ９０６、および、システムメモリを含む様々なシステムコンポーネントを処理装置９０４に結合するシステムバス９０８が含まれる。処理装置９０４は、いかなる市販またはメーカ独自のプロセッサであってもよい。加えて、処理装置は、並列で接続することができるものなど、複数のプロセッサで形成されるマルチプロセッサとして実装することができる。
【０１１３】
システムバス９０８を、いくつかのタイプのバス構造のいずれにすることもでき、これらのバス構造には、２、３例を挙げると、ＰＣＩ、ＶＥＳＡ、マイクロチャネル、ＩＳＡおよびＥＩＳＡなど、様々な従来のバスアーキテクチャのいずれかを利用する、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスが含まれる。システムメモリ９０６には、読み取り専用メモリ（ＲＯＭ）９１０およびランダムアクセスメモリ（ＲＡＭ）９１２が含まれる。基本入出力システム（ＢＩＯＳ）９１４は、起動中など、コンピュータ９０２内の複数の要素の間で情報を転送する助けとなる基本ルーチンを含み、ＲＯＭ９１０に格納される。
【０１１４】
コンピュータ９０２にはまた例えば、ハードディスクドライブ９１６、例えば、リムーバブルディスク９２０に対する読み書きを行うための磁気ディスクドライブ９１８、および、例えば、ＣＤ−ＲＯＭディスク９２４または他の光メディアに対する読み書きを行うための光ディスクドライブ９２２が含むことができる。ハードディスクドライブ９１６、磁気ディスクドライブ９１８、および光ディスクドライブ９２２はシステムバス９０８に、それぞれハードディスクドライブインターフェイス９２６、磁気ディスクドライブインターフェイス９２８、および光ドライブインターフェイス９３０によって接続される。ドライブ９１６〜９２２およびそれらの関連付けられたコンピュータ読取り可能メディアは、コンピュータ９０２のためのデータ、データ構造、コンピュータ実行可能命令などの不揮発性ストレージを提供する。上記のコンピュータ読取り可能メディアの説明は、ハードディスク、リムーバブル磁気ディスクおよびＣＤに言及するが、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジなど、コンピュータによって可読である他のタイプのメディアもまた例示的オペレーティング環境９００内で使用することができること、およびさらに、いかなるこのようなメディアも、本発明の方法を実行するためのコンピュータ実行可能命令を含むことができることは、当業者には理解されよう。
【０１１５】
いくつかのプログラムモジュールをドライブ９１６〜９２２およびＲＡＭ９１２に格納することができ、これらのプログラムモジュールには、オペレーティングシステム９３２、１つまたは複数のアプリケーションプログラム９３４、他のプログラムモジュール９３６およびプログラムデータ９３８が含まれる。オペレーティングシステム９３２は、いかなる適切なオペレーティングシステムまたは複数のオペレーティングシステムの組み合わせであってもよい。例として、アプリケーションプログラム９３４およびプログラムモジュール９３６には、本発明の一態様による検索クエリスペルチェックスキームが含まれる場合がある。
【０１１６】
ユーザはコマンドおよび情報をコンピュータ９０２へ、キーボード９４０およびポインティングデバイス（例えば、マウス９４２）など、１つまたは複数のユーザ入力デバイスを通じて入力することができる。他の入力デバイス（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、ワイヤレスリモート、スキャナなどが含まれる可能性がある。これらおよび他の入力デバイスはしばしば処理装置９０４へ、システムバス９０８に結合されるシリアルポートインターフェイス９４４を通じて接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）など、他のインターフェイスによって接続することができる。モニタ９４６または他のタイプの表示デバイスもまたシステムバス９０８へ、ビデオアダプタ９４８などのインターフェイスを介して接続される。モニタ９４６に加えて、コンピュータ９０２には、スピーカ、プリンタなど、他の周辺出力デバイス（図示せず）が含まれる場合がある。
【０１１７】
コンピュータ９０２はネットワーク環境において、１つまたは複数のリモートコンピュータ９６０への論理接続を使用して動作することができる。リモートコンピュータ９６０は、ワークステーション、サーバコンピュータ、ルータ、ピアデバイスまたは他の共通ネットワークノードにすることができ、通常は、コンピュータ９０２に関連して上述した要素の多数またはすべてを含むが、簡潔にするため、メモリストレージデバイス９６２のみが図９に例示される。図９に示す論理接続には、ローカルエリアネットワーク（ＬＡＮ）９６４およびワイドエリアネットワーク（ＷＡＮ）９６６が含まれる可能性がある。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネットおよびインターネットにおいて一般的である。
【０１１８】
ＬＡＮネットワーキング環境において使用するとき、例えば、コンピュータ９０２はローカルネットワーク９６４へ、ネットワークインターフェイスまたはアダプタ９６８を通じて接続される。ＷＡＮネットワーキング環境において使用するとき、コンピュータ９０２は通常、モデム（例えば、電話、ＤＳＬ、ケーブルなど）９７０を含み、あるいはＬＡＮ上の通信サーバに接続されるか、あるいはインターネットなどのＷＡＮ９６６を介して通信を確立するための他の手段を有する。モデム９７０は、コンピュータ９０２に対して内部であっても外部であってもよく、システムバス９０８へ、シリアルポートインターフェイス９４４を介して接続される。ネットワーク環境では、プログラムモジュール（アプリケーションプログラム９３４を含む）および／またはプログラムデータ９３８を、リモートメモリストレージデバイス９６２に格納することができる。図示のネットワーク接続は例示的であり、本発明の一態様を実行するとき、コンピュータ９０２および９６０の間で通信リンクを確立する他の手段（例えば、有線または無線）を使用することができることは理解されよう。
【０１１９】
コンピュータプログラミングの技術分野の当業者の慣習によって、本発明を、特に断りのない限り、コンピュータ９０２またはリモートコンピュータ９６０など、コンピュータによって実行される動作、および、オペレーションの記号表現を参照して説明した。このような動作およびオペレーションは時として、コンピュータにより実行されるものとして呼ばれる。これらの動作、および、記号表現されたオペレーションには、処理装置９０４による、データビットを表現する電気信号の操作が含まれ、この操作は、結果として生じる電子信号表現の変換または低減、および、メモリシステム（システムメモリ９０６、ハードドライブ９１６、フロッピー（登録商標）ディスク９２０、ＣＤ−ＲＯＭ９２４およびリモートメモリ９６２）内のメモリロケーションでのデータビットの保存を引き起こして、それによりコンピュータシステムのオペレーションならびに他の信号の処理を再構成するか、そうでない場合は変更することを理解されたい。このようなデータビットが保存されるメモリロケーションは、データビットに対応する特定の電気、磁気または光特性を有する物理的ロケーションである。
【０１２０】
図１０は、本発明が対話することができるサンプルコンピューティング環境１０００のもう１つのブロック図である。システム１０００はさらに、１つまたは複数のクライアント１００２を含むシステムを例示する。クライアント１００２をハードウェアおよび／またはソフトウェア（例えば、スレッド、プロセス、コンピューティングデバイス）にすることができる。システム１０００にはまた、１つまたは複数のサーバ１００４もが含まれる。サーバ１００４もまた、ハードウェアおよび／またはソフトウェア（例えば、スレッド、プロセス、コンピューティングデバイス）にすることができる。サーバ１００４は、例えば、本発明を使用することによって、変換を実行するためのスレッドを収容することができる。クライアント１００２とサーバ１００４の間の１つの可能な通信は、２つ以上のコンピュータプロセスの間で送信されるように適合されたデータパケットの形態であってもよい。システム１０００には、クライアント１００２とサーバ１００４の間の通信を容易にするために使用することができる、通信フレームワーク１００８が含まれる。クライアント１００２は、クライアント１００２にローカルで情報を格納するために使用することができる、１つまたは複数のクライアントデータストア１０１０に接続される。同様に、サーバ１００４は、サーバ１００４にローカルで情報を格納するために使用することができる、１つまたは複数のサーバデータストア１００６に接続される。
【０１２１】
本発明の一例では、２つ以上のコンピュータコンポーネントの間で送信された、検索クエリスペルチェックを容易にするデータパケットは、少なくとも部分的には、少なくとも１つのクエリログに基づいたクエリ文字列セットのための、少なくとも部分的には、少なくとも１つの代替スペリングを提供する、検索クエリスペルチェックシステムに関係する情報からなる。
【０１２２】
本発明のシステムおよび／または方法を、検索クエリスペルチェックを容易にするコンピュータコンポーネントおよび非コンピュータ関連コンポーネントにおいて同様に利用することができることを理解されたい。さらに、本発明のシステムおよび／または方法は、それだけに限定されないが、コンピュータ、サーバおよび／またはハンドヘルド電子デバイスなどを含む、ありとあらゆる電子関連技術において使用可能であることは、当業者には理解されよう。
【０１２３】
上述したものには本発明の実施例が含まれる。言うまでもなく、本発明を説明するためのコンポーネントまたは方法のあらゆる考えられる組み合わせを説明することは可能ではないが、本発明の多数のさらなる組み合わせおよび置換が可能であることは、当業者には理解されよう。したがって、本発明は、付属の特許請求の範囲の精神および範囲内に入るこのようなすべての変更、修正および変形形態を包含するように意図される。さらに、「含む」という用語が詳細な説明または特許請求の範囲において使用される範囲で、このような用語は、「備える」という用語が、特許請求の範囲内の移行語として使用されるときに解釈されるときの「備える」と同様に、包含的であるように意図される。
【図面の簡単な説明】
【０１２４】
【図１】本発明の一態様による検索クエリ評価システムのブロック図である。
【図２】本発明の一態様による検索クエリ評価システムのもう１つのブロック図である。
【図３】本発明の一態様による検索プロセスの説明図である。
【図４】本発明の一態様による検索プロセスのもう１つの説明図である。
【図５】本発明の一態様による情報の流れの構造の説明図である。
【図６】本発明の一態様による検索クエリを容易にする方法のフロー図である。
【図７】本発明の一態様による検索クエリを容易にする方法のもう１つのフロー図である。
【図８】本発明の一態様による検索クエリを容易にする方法のさらにもう１つのフロー図である。
【図９】本発明が機能する一実施例のオペレーティング環境を説明する図である。
【図１０】本発明が機能するもう１つの実施例のオペレーティング環境を説明する図である。
【符号の説明】
【０１２５】
１００，２００  検索クエリ評価システム
９０２  コンピュータ
９１８  磁気ディスクドライブ
９２２  光ディスクドライブ
９４０  キーボード
９４２  マウス
【図１】
2005267638.tif 000020
【図２】
2005267638.tif 000021
【図３】
2005267638.tif 000022
【図４】
2005267638.tif 000023
【図５】
2005267638.tif 000024
【図６】
2005267638.tif 000025
【図７】
2005267638.tif 000026
【図８】
2005267638.tif 000027
【図９】
2005267638.tif 000028
【図１０】
2005267638.tif 000029
【外国語明細書】
2005267638000001.pdf