JP2005267638A - 改善されたスペルチェックのためのシステムおよび方法 - Google Patents

改善されたスペルチェックのためのシステムおよび方法 Download PDF

Info

Publication number
JP2005267638A
JP2005267638A JP2005074980A JP2005074980A JP2005267638A JP 2005267638 A JP2005267638 A JP 2005267638A JP 2005074980 A JP2005074980 A JP 2005074980A JP 2005074980 A JP2005074980 A JP 2005074980A JP 2005267638 A JP2005267638 A JP 2005267638A
Authority
JP
Japan
Prior art keywords
query
substring
alternative
lexicon
spelling
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005074980A
Other languages
English (en)
Inventor
Eric D Brill
デー.ブリル エリック
Silviu-Petru Cucerzan
クサーザン セルビュー−ペトル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005267638A publication Critical patent/JP2005267638A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9532Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/232Orthographic correction, e.g. spell checking or vowelisation
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B63SHIPS OR OTHER WATERBORNE VESSELS; RELATED EQUIPMENT
    • B63BSHIPS OR OTHER WATERBORNE VESSELS; EQUIPMENT FOR SHIPPING 
    • B63B2221/00Methods and means for joining members or elements
    • B63B2221/08Methods and means for joining members or elements by means of threaded members, e.g. screws, threaded bolts or nuts
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B63SHIPS OR OTHER WATERBORNE VESSELS; RELATED EQUIPMENT
    • B63CLAUNCHING, HAULING-OUT, OR DRY-DOCKING OF VESSELS; LIFE-SAVING IN WATER; EQUIPMENT FOR DWELLING OR WORKING UNDER WATER; MEANS FOR SALVAGING OR SEARCHING FOR UNDERWATER OBJECTS
    • B63C5/00Equipment usable both on slipways and in dry docks
    • B63C5/02Stagings; Scaffolding; Shores or struts
    • B63C2005/022Shores or struts, e.g. individual oblique support elements for stabilizing hulls in dry-docks
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16BDEVICES FOR FASTENING OR SECURING CONSTRUCTIONAL ELEMENTS OR MACHINE PARTS TOGETHER, e.g. NAILS, BOLTS, CIRCLIPS, CLAMPS, CLIPS OR WEDGES; JOINTS OR JOINTING
    • F16B5/00Joining sheets or plates, e.g. panels, to one another or to strips or bars parallel to them
    • F16B5/02Joining sheets or plates, e.g. panels, to one another or to strips or bars parallel to them by means of fastening members using screw-thread
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3322Query formulation using system suggestions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 検索クエリ文字列の反復変換を、検索クエリログおよび/またはウェブデータから抽出された統計と共に活用し、検索クエリ文字列のための可能な代替スペリングを提供する。
【解決手段】 各ユーザに対して個別化された提案を提供するために影響を受けることができるスペルチェック手段を提供する。本発明は、検索クエリログを利用することにより、レキシコン内で発見されないがなお関心のある検索クエリとして受け入れ可能な部分文字列を明らかにする。レキシコンの内容を超えて、より高い品質の代替スペリングの提案が可能となる。一例では、クエリログから抽出された単語ユニグラムおよび/またはバイグラム統計を反復検索と組み合わせて利用することにより、部分文字列レベルで動作する。所与のクエリに対して、部分文字列マッチングのみを使用するよりも実質的に良いスペリング代替案を提供する。検索クエリ入力以外のソースから入力データの受信ができる。
【選択図】 図1

Description

本発明は、一般にスペルチェッカに関し、より詳細には、クエリログの利用を介してスペルチェックを改善するためのシステムおよび方法に関する。
自動プログラム、システム、およびサービスとの対話は、特にインターネットの出現によって、ほとんどの人々の生活の日常的な部分になってきている。例えば、ウェブサーフィンまたはブラウズは、一部の人々にとっては「新しい」国民的娯楽でさえある。このようなシステムによれば、ワープロなどのアプリケーションは、友人への手紙または電子メールを入力するなど、多数の人々がその各仕事においてまたはその私生活において、より効率的になる手助けとなっている。多数の自動機能がこれらのアプリケーションに追加されている。例えば、実質的に所望のどんなフォント、色、形状または形式でもドキュメントをフォーマットするツールなどの機能である。多数のユーザによって受け入れられ、評判の高いツールの1つは、スペルチェックアプリケーションである。各ドキュメントの全部または一部分をチェックするために、ユーザによってワープロから呼び出され、かつ/または、ユーザが入力中にスペリングをチェックするのにバックグラウンドで実行するため、呼び出される。一般に、正確なスペルチェックを実行するために、「有効な文字列」の辞書がスペルチェックアプリケーションによって使用される場合がある。スペルチェッカは、辞書にない文字列に出会う場合、この文字列がスペリングの誤りであると仮定し、スペルミスされた文字列に対して辞書において「最も近い」文字列を発見しようと試みることができる。大部分のスペルチェッカは可能なマッチ(match)のリストをユーザに提供する。これにより、マッチがリスト上にある場合、ユーザは、訂正されたスペリングを有する語をそのリストから選択することができる。他のスペルチェック機能は、ユーザによって構成された場合には、自動訂正を実行する場合がある。
しかし、ワープロ用のスペルチェックは、情報をファイルまたはドキュメントに入力するときにユーザを支援するために適用可能な潜在的なエリアの、部分的なビューのみを提示する。例えば、使用可能なすべての潜在的なウェブサイトおよびサービスにより、サイト名の全部または一部を明示的に入力することによって、あるいは、ウェブページのタイトルおよび本文に現れる語または句における検索を実行することによって、ユーザはしばしば複数のサイトの間をナビゲートする。多数の人々が気づくようになったように、サイト情報または検索クエリが不正確に入力される場合、再びナビゲートするための時間に関するコストは非常に高くなる可能性がある。検索エンジンまたは他のアプリケーションで使用される言語プロセッサは、しばしばユーザクエリを処理し、実際のユーザコマンドと不正確に入力された情報とを区別しようと試みることができる。
米国特許出願公開第2003/0037077A1号明細書 米国特許商標局第09/681771号明細書 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
しかし、理解できるように、検索エンジンへのクエリのために入力することができる情報のタイプは、ワープロアプリケーションで通常使用されるものとは構造または形式において非常に異なる場合がある。したがって、ワープロアプリケーションにおいて少々個別的に他に類しない基準によって語をチェックするツールは、汎用クエリデータから生成された情報に適用されるとき、ほとんどあるいはまったく実用性がない可能性がある。
しばしば、クエリは、アーティスト、製品または会社名など、標準のスペルチェック辞書で発見されない可能性のある語からなるので、情報についてのブラウザまたは他の検索クエリにおいては、スペルチェックアプリケーションに関して独特の問題が生じる。もう1つの問題は、クエリ内の語が不正確に入力されているが、不正確なスペリングではない場合があることである(例えば、「amd processors」の代わりに「and processors」)。このように、人々が、例えば検索エンジンへの入力ボックスなどのタイプインラインにテキストを入力する方法は、しばしば、ワープロ用の入力とは大変異なる。入力されるもの、および、人々がクエリ入力に関して起こすエラーのタイプもまた、性質が大変異なる。さらに、ウェブデータおよび検索クエリは大変動的な性質を持っており、多数の適切な名詞を含む。例えば、新しい製品、人々、機関、場所および出来事は、日々、一般的になる。したがって、標準辞書はワープロとの関連においてはスペルチェックに適切であるが、タイプインラインおよび検索クエリのスペルチェックには適切ではない場合がある。
辞書(すなわち、レキシコン)は、いかなるスペルチェッカにおいても重要なコンポーネントである。これはその中に含まれた情報が、不正確なスペリングを決定するための基礎を提供するからである。しかし、スペルチェックが望まれる多数のアプリケーション(例えば、入力ボックスに備えられたテキスト入力)においては、標準的な辞書はこの問題に最適ではない。例えば、検索エンジンの入力ボックスへのテキスト入力をスペルチェックするには、関心のある可能性のある、より最近のイベントまたは情報をチェックするために、辞書は「hanging chad」および「Apolo Anton Ohno」などの文字列を含むべきである。理解できるように、これらおよび複数の他のタイプの文字列は標準辞書に現れない。1つの可能な手法は、検索エンジンまたは言語プロセッサなど、ユーザが特定の場所に入力中であるもののログにおいて、部分文字列マッチング技術を利用することである。残念なことに、この手法による問題は、クエリログもまた一般に多数の入力エラーを含むようになり、ユーザの望む検索に関連しない部分文字列マッチを返すようになることである。
加えて、スペルチェックのために利用される辞書および検索の文脈は、常に変化している。これらの動的な振る舞いを、従来の辞書および検索クエリ処理を利用して明らかにすることはできない。例えば、現在、Limp Bizkitと呼ばれる人気のあるバンドがある場合、「bizkit pictures」の検索は、「biscuit」のスペルミスではなくこのバンドを指している可能性が高い。突然このバンドの人気がなくなり、ビスケットの写真についてのベストセラーの本がある場合、「bizkit pictures」は「biscuit pictures」のスペルミスである可能性がより高い。同様に、政治の現状を考えてみれば、彼が現在有名なカリフォルニア州知事である場合、「govenor anld」はおそらくは「governor arnold」を指す。このように、検索クエリの文脈はスペルチェックに著しく影響を与える。
以下に、本発明のいくつかの態様の基本的理解を与えるために、本発明の簡単な概要を提示する。この概要は、本発明の広範な概観ではない。本発明の主要/重要な要素を特定すること、または、本発明の範囲を線引きすることは意図されない。その唯一の目的は、本発明のいくつかの概念を簡単な形態で、後に提示されるより詳細な説明への前置きとして提示することである。
本発明は一般にスペルチェッカに関し、より詳細には、クエリログの利用を介してスペルチェックを改善するためのシステムおよび方法に関する。
検索クエリ文字列の反復的な変換が、検索クエリログおよび/またはウェブデータから抽出された統計と共に活用されて、検索クエリ文字列のための可能な代替スペリングが提供される。これは、各ユーザに対して個別化された提案を与えるために影響を受けることができる、優れたスペルチェック手段を提供する。検索クエリログを利用することによって、本発明は、レキシコン内で発見されないがなお関心のある検索クエリとして受け入れ可能な部分文字列を明らかにすることができる。これにより、レキシコンの内容を超えて、より高い品質の代替的なスペリングの提案を与えるための手段が可能となる。本発明の一例は、反復的な検索と共にクエリログから抽出された単語ユニグラムおよびバイグラム統計を利用することによって、部分文字列レベルで動作する。これは実質的に、所与のクエリに対して正確な文字列マッチングのみを使用するよりも、より良いスペリングの選択肢を与える。したがって、本発明は例えば、その与えられた選択肢を、最近の一般的な概念/クエリの履歴に基づいて調整することができる。本発明はまた、その訂正を、対応する以前のクエリログに基づいて所与のユーザに合わせて調整し、はるかにより関連のあるスペリング選択肢を与えるのを可能とすることもできる。本発明の他の例では、検索クエリ入力以外のソースから入力データを受信することができる。これは、通常のワープロなどとの関連において、クエリログで容易化されたスペルチェックを利用する方法を提供する。
前述および関連する目的の実施のために、以下の説明および添付の図面に関連して、本明細書において、本発明のある例示的な態様を説明する。しかし、これらの態様は、本発明の原理を使用することができる様々な方法のほんの数例を示し、本発明は、すべてのこのような態様およびそれらの等価物を含むように意図される。図面と共に考慮されることにより、以下の本発明の詳細な説明から、本発明の他の利点および新規な特徴は明らかになるであろう。
次に、図面を参照しながら本発明を説明する。図面においては、同じ参照番号は全体で同じ要素を指すために使用される。以下の説明では、説明のため、本発明の十分な理解を与えるために多数の特定の詳細を述べる。しかし、これらの特定の詳細によってではなくても、本発明を実施することができることは明らかになるであろう。他の場合では、本発明の説明を容易にするために、周知の構造およびデバイスをブロック図の形態で示す。
本出願で使用されるとき、「コンポーネント」という語はコンピュータ関連エンティティを指すように意図されている。このエンティティは、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれでもよい。例えば、コンポーネントは、それだけに限定されないが、プロセッサ上で実行するプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラムおよび/またはコンピュータであってもよい。例示として、サーバ上で実行するアプリケーションおよびサーバの両方がコンピュータコンポーネントである可能性がある。1つまたは複数のコンポーネントはプロセスおよび/または実行のスレッド内に存在することができ、コンポーネントは1つのコンピュータ上でローカライズされるか、および/または2つ以上のコンピュータの間で分散される場合がある。「スレッド」は、オペレーティングシステムカーネルが実行のためにスケジュールするプロセス内のエンティティである。当技術分野で周知のように、各スレッドは、スレッドの実行に関連付けられた揮発性データである、関連付けられた「コンテキスト」を有する。スレッドのコンテキストには、システムレジスタのコンテンツ、および、スレッドのプロセスに属する仮想アドレスが含まれる。したがって、スレッドのコンテキストを備える実際のデータは、実行時に変わる。
本発明は、検索エンジンへのクエリをスペルチェックするための、改善されたシステムおよび方法を提供する。本発明の一例は、信頼されたレキシコン(言語における有効な語のリストである)およびクエリログをデータのソースとして利用する。本発明は、クエリログから抽出された単語ユニグラムおよびバイグラム(ストップワードのスキップを有する)統計、およびまた、ただ1つの文字列マッチングを使用する場合を超えて、所与のクエリのより良いスペリング選択肢のための革新的タイプの反復検索を利用することによって、部分文字列レベルで動作する。本発明のもう1つの例は、少なくとも部分的には、低カウントの単語nグラム(n個の連続語のシーケンスとして定義され、具体的には、ユニグラムは個々の語であり、バイグラムは2つの連続語のシーケンスである)についてのウェブ統計を利用する。
従来の語のスペリング訂正は、テキストが書かれる言語の信頼されたレキシコンLおよび距離関数dに頼っている。レキシコン内のスペリング選択肢の一式{w,w,...,w}が、テキスト内の各レキシコン外の語の形態に対して提案される。このとき、このような有効な選択肢は、通常は1つまたは2つの編集(edit)の隔たり(編集距離)である所与の固定距離しきい値δ内に存在している(すなわち、dist(w,w)≦δ)。選択肢は通常、従来の尤度関数P(w|w)によって順序付けられ、この関数は、言語内の語の確率(通常、目標言語内の大きいコーパスからの最尤推定値を通じて計算される)および複数の語の間の距離を考慮に入れる。
実際の距離関数dおよびしきい値δは、スペルチェッカの精度のために重要である。ある極端な例では、制限的すぎた関数/しきい値の組み合わせを利用すると、所与のクエリに対して最良の訂正を発見できない結果となる可能性がある。反対の極端な例では、それほど制限しない関数を利用すると、結果として、非常に可能性の低い訂正を含んだ結果となってしまう。本発明は、修正された制限検索を選択肢の文字列レベルで利用するが、選択肢の検索を語レベルでは実質的に制限しないことによって、実行可能な妥協点を与える。本発明の一例では、文字列の各語のための代替案の一式を識別するための距離として、文脈依存加重(context−dependent weighted)Levenshtein距離を利用し、これは、基本的編集として文字の挿入、削除、置換、即時入れ換え、および長距離移動を可能にする。しきい値自体は変数であり、各語の特性(主に、語がレキシコン内にあるかどうか)および反復回数に依存する。
図1は、本発明の一態様による検索クエリ評価システム100のブロック図を示す。検索クエリ評価システム100は、検索クエリ評価コンポーネント102からなる。検索クエリ評価コンポーネント102は検索クエリ入力104を受信し、代替クエリ提案データ106を出力する。検索クエリ評価コンポーネント102はレキシコンならびに検索クエリログを利用して、各検索クエリを評価する。本発明の他の例はまたウェブ統計を利用して、検索クエリ入力104を評価する。一般に、反復的プロセスが利用されて、最適な提案が得られるまで各代替提案がさらに精緻化される。検索クエリログは統計情報を提供し、この情報を検索クエリ評価コンポーネント102が活用して、通常のユーザまたは所与のユーザのための最良の解を発見することができる。本発明のさらにもう1つの例では、検索クエリログは、タイミングパターンを使用して検索クエリの評価を容易にすることができるように、処理される。タイミングパターンは、それだけに限定されないが、年度パターン、日付パターン(例えば、毎週水曜日、休日など)、および、時刻パターンなどにすることができる。したがって、本発明の一例では、現在の年の10月の月、および、前年の10月の月についてのクエリログを得ることができる。このタイプの時間パターン認識により、より良い検索クエリ提案データ106の生成を容易にすることができる。同様に他のタイプのパターン認識を本発明によって利用することができ、例えば、ユーザの検索パターン、ユーザの趣味および関心、ユーザの好みなどである。本発明によって、所与のユーザのこれらの特定の側面に関係して、検索クエリログおよび/またはウェブデータを得ることができ、検索クエリ評価をさらに容易にすることができる。
本発明の範囲には、検索クエリ入力以外のソースから導出された入力データが含まれることは、当業者には理解されよう。したがって、本発明の例を利用して、ワープロ、電子メールプログラム、インスタントメッセージプログラム、およびチャットルームプログラムなどからのデータ入力を受け入れることができる。このように、クエリログをさらに、検索クエリプログラム以外の環境で活用することができる。したがって、「検索クエリ」という語の様々な形態は、本発明との関連で利用されるとき、「入力データ」の様々な形態と同じ意味である。したがって、入力データは、本発明の例へのスペルチェックのために提示されるいかなるデータをも指す。
図2を参照して、本発明の一態様による検索クエリ評価システム200のもう1つのブロック図を示す。検索クエリ評価システムは、検索クエリデータ204を受信して代替クエリ提案データ206を出力する検索クエリ評価コンポーネント202からなる。検索クエリ評価コンポーネント202は、部分文字列プロセッサコンポーネント208および反復クエリ評価コンポーネント210からなる。部分文字列プロセッサコンポーネント208は検索クエリデータ204を受信し、これを、反復クエリ評価コンポーネント210によって利用することができるレベルにトークン化する。反復クエリ評価コンポーネント210はクエリログデータ214を利用し、また、レキシコンデータ212および/またはオプションのウェブ統計データ216など、追加のデータソースを利用することもできる。このデータが活用されて検索クエリデータ204の強化された評価が提供さる。これをさらに以下に詳述する。反復クエリ評価コンポーネント210は、トークン化されたクエリ語を処理し、代替的な検索クエリ部分文字列218の新しい一式を、部分文字列処理コンポーネント208へトークン化のために戻すように送信する。この反復的プロセスは、反復クエリ評価コンポーネント210が最適な提案に到達した判断するまで継続され、この情報を代替クエリ提案データ206として出力する。
本発明をよりよく理解するには、そこから本発明が使用される状況およびその目的を理解することが役に立つ。ユーザによってウェブ検索エンジンに送信されたほぼ10%のクエリは、スペルミスのエラーによって損なわれている。したがって、ウェブ検索における重要な問題は、スペルミスされたクエリを検出および訂正することである。検索エンジンへのクエリのスペルチェックは、従来のドキュメントのスペルチェック(例えば、通常のワープロのスペルチェッカ)とは根本的に異なる問題である。従来のドキュメントのスペリング訂正との違いを示しているこのプロセスの重要な特性のいくつかは、以下の通りである。
・各スペルミスされた語の選択肢の一式を提案することができる従来の単語スペラとは異なり、ウェブクエリスペルチェッカは、ウェブクエリのためのただ1つのスペリング代替案を提案することができ、これは、従来のスペラが提供するものよりはるかに高い精度が必要とされることを意味する。
・従来のスペルチェッカは、信頼されたレキシコンを使用し、レキシコン外の語に注目する。ウェブクエリでは、未知語(このようなレキシコンによる)はスペリングミスを表していない場合があり、未知語がウェブ検索では有効である場合がある(例えば、limp bizkit)。クエリ語のリストは固定したターゲットではなく、急速に変化している。また、連語情報に基づいて、レキシコン内の語が他のレキシコン内またはレキシコン外の語にさえ変化さられるべきである場合がある(例えば、food explorer→ford explorer、limp biz kit→limp bizkit)。
・ウェブ検索においては、スペルミスされた語は、所期の語から多数の編集距離分隔たっている可能性があり、これは特に、少々例を挙げれば、このような語が、人物、会社、技術、または製品の名前を表すときである。
・ウェブクエリスペリング訂正は、信頼されたレキシコンおよび/またはコーパスデータに加えて、本発明によって提供されるようなクエリログの存在からメリットを得ることができる。このようなクエリログは、語の頻度、語の文脈について、およびスペルミスのエラーについての、ほぼリアルタイムの重要な情報を含む。このようなリソースは従来のスペリングで利用されていない。
本発明は、ウェブクエリログおよびウェブデータから抽出された統計に従って、クエリ文字列のより可能性の高いクエリを表す他の文字列への反復的変換として、ウェブクエリをスペル訂正する問題を公式化する。汎用スペリング訂正のタスクには長い歴史があり、従来は、文字の挿入、削除、置換および入れ換えなど、誤字を解決することに焦点を合わせている(例えば、非特許文献1参照。)。通常のスペルチェッカは各未知語(すなわち、言語の信頼されたレキシコン内で発見されない語)について、可能な訂正として提案されるべきレキシコン内の代替案の小さい一式を計算する。このようなシステムは一般に文脈を無視し、レキシコン内の語の頻度(大きいコーパスから推定されるものなど)、ならびに、語レベル(例えば、acceptableの代わりにacceptibleの使用)および文字レベル(例えば、phの代わりにfの誤用)において最も一般的なミスにのみに依存している。
本発明によるウェブクエリスペリング訂正のタスクは、従来のスペルチェックとは多数の点で異なり、したがって、異なる課題を提示する。クエリの妥当性を、単純なレキシコンの検査によって、またはその文法性をチェックすることによって、決定することはできない。大部分のウェブクエリは、正当であるがレキシコン外の語を何度も含む、1つの概念または概念の列挙からなる。ウェブクエリ訂正器は、lego tosに対してlego toysへの訂正という、他の人々が何を検索するかについての情報に基づいておそらく間違いなく最良な取りうる訂正を、提案することができるべきである。たとえ、例えば、文字ベースのエラーモデル(通常のワープロのスペルチェッカなど)が、スペルミスをしたtosに対して、toss、toes、tops、tonsおよびlogsを、より確からしい代替案として予測するであろうという事実、および、legoという語は多数の英語のレキシコン内には現れない可能性があるという事実があるにもかかわらずである。
何が有効なウェブクエリであるかを単に定義することは、非常に困難な試みに相当する。明らかに、信頼されたレキシコンだけを使用することはできない。これは多数の新しい名称および概念が、日々、一般的になるからであり、広い範囲のレキシコンを維持することは、不可能でない場合があっても極めて困難となる。実行可能な代替的な方法は、ウェブおよびウェブ検索エンジンを利用する何百万の人々の専門的知識を収集および活用することである。したがって、「語の意味は言語におけるその使用である」というWittgensteinの観測(例えば、非特許文献2参照。)に類似して、レキシコンによってではなく、人々が何を問い合わせて(クエリして)いるかにおけるその頻度によって、語の妥当性が与えられる。しかし、このような手法はそれ自体の警告を含んでいる。ウェブクエリログから、その頻度があるしきい値より上であるすべてのクエリを有効として単に抽出することは、誤りとなり得る。例えば、britny spearsのスペルミスは、正確にスペルされるものよりもはるかに一般的なクエリであるが、場合によってはレキシコン外の語を含み、これは例えば、bayesian netsまたはamd processorsのクエリである。同じことは、クエリ語を含むウェブドキュメントの数をカウントすることについても当てはまる。非常に一般的な語のスペルミスは、完全に正しいがスペルだが、それほど一般的でない語よりも、はるかに高い頻度を有する。
ウェブクエリで発見されたエラーの多数は、有効な語の文脈で不適切な置換に相当し(例えば、principalおよびprinciple)、レキシコンの検査によって、または個々の語の頻度に基づいて検出することはできない。現代のドキュメントで発見されたエラーの約25〜50%は実際にこのような置換であるという、Kukichの観測(例えば、非特許文献3参照。)は、さらに大きい測定内ではないにしても、クエリログデータにも当てはまるように思われることは、予想できることである。このような置換エラーの解決は、文脈依存スペリング訂正(CSSC)のフレームワークにおける、様々な以前のNLP(自然言語処理)研究の目的であった(例えば、非特許文献4、非特許文献5、非特許文献6、および非特許文献7参照)。有望な結果が得られても(92〜95%の精度)、以前の研究の範囲は非常に制限されており(2つまたは3つの代替案を有する多くても18個の混同セット、例えば、{peace,piece})、調査されたアルゴリズムは注釈付きデータの存在に強く依拠し、このようなデータから抽出された多数の文脈的な特徴を利用する。ウェブクエリスペリング訂正の場合、注釈付きデータは存在しないが、大量の注釈なしのデータがクエリログの形態で使用可能である(ある期間にわたって検索エンジンに送信されたクエリのヒストグラムである)。ウェブクエリのもう1つの特性は、大変短い(平均で2.2語)ことであり、比較的幅広い文脈ウィンドウに基づいて多数の特徴を利用する技術を適用することが困難である。また、CSSCで利用される通常のデータは、一般に他の文脈スペルミスおよび置換エラーがないと見なされる可能性があり、これはウェブクエリにとって現実的なシナリオではない。
他の内容および性能は、ウェブクエリスペリング訂正システムの設計における計算集中的なアルゴリズムの利用をさらに制限する。例えば、サーバベースのアーキテクチャでは、このようなシステムは非常に制限された時間的な性能要件を満たさなければならないが、スペース要件は緩和される可能性がある。これらの制約のいくつかを以下に提供するが、これらの制約の徹底的な解析は提供しない。「古典的な」スペリング訂正手法の例は、タスクの一連の形式的定義を利用すること、および、各状況に対応する強度および制限を示す具体的な例を提示することによって、簡単に解析される。この問題は反復的に再定義され、信頼されたレキシコンに純粋に基づいた手法で開始して、信頼されたレキシコンの役割が大幅に縮小される手法で終了する。そのように行う間、有効なウェブクエリの実行可能な定義を提供するために、具体的な前進が行われる。
Σを言語のアルファベットとし、L⊂Σを言語の幅広い範囲のレキシコンとする。次いで、スペリング訂正の最も単純な定義を以下のようにすることができる。
w∈Σ\Lが与えられると、
Figure 2005267638
となるようにw’∈Lを発見する。
すなわち、テキスト内のいかなるレキシコン外の語についても、使用可能なレキシコン内で最も近い語を発見し、それを正確なスペリング代替案として仮定する。distはいかなる文字列ベースの関数であってもよく、例えば、2つの語が共通して有していない文字の数と、2つの語が共有する文字の数の間の比率にすることができる。スペリング訂正において2つの最も使用された距離のクラスは、Damerau(例えば、非特許文献8参照。)およびLevenshtein(例えば、非特許文献9参照。)によって提案されるような編集距離、および、相関行列距離(例えば、非特許文献10参照。)である。本発明の一例は、以下で提示するような、修正されたバージョンのDamerau−Levenshtein編集距離を使用する。
前の公式化は、言語内の語の頻度を考慮に入れていない。この問題の簡単な解決法は、目標言語L内の語の確率を、Lを超えて大きいコーパスCにわたる最尤推定値(MLE)として計算することである。汎用スペリング訂正問題を、以下のように再公式化することができる。
w∈Σ\Lが与えられると、dist(w,w’)≦δかつ
Figure 2005267638
となるようにw’∈Lを発見する。
この公式化では、未知語のある「妥当」な距離δ内にあるすべてのレキシコン内の語は良い候補と見なされ、それらの候補の最良のものがその事前確率P(・)に基づいて選択される。
当然の次のステップは、雑音のあるチャネルモデルフレームワーク内で、事後確率を目的関数として使用することである(例えば、非特許文献11参照。)。目的関数は、元のスペリングにおいて調整された相関の確率P(v|w)となり、言語内の語の事前確率P(v)、および、語形vをwとしてスペルミスする確率P(w|v)を組み込むようになる。簡単にするために、本明細書で説明するすべての公式化は事前確率を目的関数として使用するが、実際には、これらを事後確率で置き換えることができる。
これまで考察した公式化は文脈を考慮に入れておらず、未知語は分離して訂正される。下記の例に例示するように、文脈は非常に多くの場合においてスペリング訂正のために極めて重要であるので、これは問題である。
power crd→power cord
video crd→video card
スペルミスされた語形crdは、そのコンテキストに応じて2つの異なる語に訂正されるべきである(video cdなど、他の有効な代替案が存在し、これらはこの考察では有用でないので意図的に無視される)。従来のスペルチェッカ(例えば、通常のワープロのスペルチェッカ)によって提案された訂正は、両方の場合で同一であり、この順序でcard、cord、crud、curd、cudである。ただ1つの提案のみが許可されるとき(ウェブクエリスペリング訂正においては標準的)、常にこのようなリストから最初の提案を採用することは、多数の誤りを生じる可能性がある。
文脈を考慮に入れる問題の可能な公式化は以下の通りである。
s∈Σ、s=cwcが、w∈Σ\Lおよびc,c∈Lと共に与えられると、dist(w,w’)≦δかつ
Figure 2005267638
となるようにw’∈Lを発見する。
スペースおよび他の単語区切り文字は、簡単にするためにこの公式化において無視される。後続の問題の公式化もまた単語区切り文字を無視するようになるが、語のトークン化は、スペリング訂正プロセスの重要な部分として見なされる可能性がある。
上記の定義に基づいた従来のスペリング訂正システムは、他の有効語による有効語の置換を処理しない。ウェブ検索の場合、訂正が元のクエリよりも「有意味(meaningful)」であるとき、有効語のための訂正提案を提供することは重要であり、例えば以下の通りである。
food explorer→ford explorer
golf war→gulf war
以下の例は、従来のスペリング訂正、文脈依存訂正および有効語置換によって処理されない2つの問題の組み合わせを示す。
chicken sop→chicken soup
sop opera→soap opera
これらの問題は部分的には、NLP資料において定義されるように、CSSCのタスクによって対処され、以下のように公式化することができる。
言語内の混同可能な有効語形のセットW={w,w,...,w}および文字列s=cが与えられると、
Figure 2005267638
となるようにw∈Wを選択する。
公式化したように、CSSCのタスクは、従来の汎用スペリング訂正よりも語義の曖昧性解消(WSD)により関係している。それにもかかわらず、スペルチェックのときにテキスト内の各語について混同可能なものの一式を、dist(w,w’)≦δであるすべての語w’として構成することによって、このタスクをスペリング訂正に結び付けることができる。句のスペリング訂正の汎化された問題を、以下のように公式化することができる。
s∈Σが与えられると、dist(s,s’)≦δかつ
Figure 2005267638
となるようにs’∈Lを発見する。
通常、スペリング訂正は、
Figure 2005267638
である(すなわち、少なくとも1つの成分語が未知である)ときに望ましいが、上記に示すように、有効語形のシーケンスが他の有効語形のシーケンスに変更されるべきであるとき、sop operaなど、頻繁な場合がある。語境界はこの後者の公式化で隠されており、この公式化がより汎用になり、この公式化がウェブクエリ訂正のための他の重要なスペリングのエラー、すなわち連結および分割をカバーすることが可能になることを注意されたい。例えば、以下の通りである。
power point slides→powerpoint slides
waltdisney→walt disney
chat inspanich→chat in spanish
この公式化はなお、実際には所与の文脈内で有効な形である未知語によって表現された(したがって、
Figure 2005267638
)、ウェブクエリスペリング訂正システムによって処理されなければならない、スペリング訂正の重要なクラスをカバーせず、これは例えば以下の通りである。
amd processors→amd processors
通常のワープロはamdをスペルミスされた語として強調表示し、mad、amid、am、andおよびadなど、訂正の提案を与える。ウェブクエリスペリング訂正の場合、システムはスペリング訂正を提案するべきではなく、これは、上記の句が未知語を含むという事実にもかかわらず、上記の句は正当なクエリを表現するからである。
後者の公式化で処理されないさらにより興味深いいくつかの場合は、有効語が未知語(すなわち、信頼されたレキシコン内にない)に変化されるべきであるという場合であり、以下の例のように、2つの有効語が1つの未知語に連結されるべきである。
gun dam planet→gundam planet
limp biz kit→limp bizkit
これは、以下のように、スペリング訂正問題のさらにより汎用な公式化につながる。
s∈Σが与えられると、dist(s,s’)≦δかつ
Figure 2005267638
となるようにs’∈Σを発見する。
この公式化は、言語のレキシコンの明示的な利用を行わないが、レキシコンはなお、文字列の尤度P(s)の推定で利用される場合がある。これは、ウェブクエリ訂正の場合、クエリが書かれる実際の言語は、そこから文字列の確率を推定することができる注釈なしのクエリログトレーニングデータよりも、重要ではなくなることを意味する。したがって、この確率モデルを、ウェブクエリとしての文字列の有意味性の尺度の代用物にすることができる。このように、sad tomatoes(音楽バンドの名称)など、従来のコーパスのいずれにおいてもありそうにないランダムな名詞句は、ウェブ検索の文脈において有意味となる。
従来の語のスペリング訂正は、信頼されたレキシコンおよび文字列間距離関数に依存する。上記で与えられたスペリング訂正の公式化は、このような文字列間距離およびしきい値を利用して、代替スペリングが検索されるスペースを制限した。様々な以前の研究は、適切な文字列間距離関数を選択する問題に対処している。本発明の一例は、修正された文脈依存加重されたLevenshtein距離を使用し、これは、ポイント変更として、文字の挿入、削除、置換、即時入れ換え、および長距離移動を可能にする。
実際の文字列間距離関数dおよびしきい値δは、スペラの精度のために重要である。制限的すぎる関数/しきい値の組み合わせの利用は、所与のクエリに対して最良の訂正を発見できない結果に終わる可能性がある。例えば、標準のLevenshtein距離(文字列を別の文字列に変換するために必要とされた最小数のポイント変更として定義され、ポイント変更は、以下のオペレーション、すなわち、文字の挿入、文字の削除、および、別の文字によるある文字の置換のうち1つである)、および、δ=1のしきい値を利用すると、donadl duck→donald duckの訂正は可能にならない。しかし、それほど制限しない関数の利用は結果として、非常に可能性の低い訂正の提案を含む場合がある。例えば、同じ古典的なLevenshtein距離およびδ=2を利用すると、文字列donadl duckの訂正は可能となるが、また、log wood→dog foodなどの悪い訂正(P(s)に組み込まれたようなクエリの頻度に基づく)にもつながるようになる。しかし、大きい距離の訂正はなお、例えば以下のような状況の多様性において望ましい。
例1: platnuin rings→platinum rings
例2: ditroitigers→detroit tigers
第1の例においては、通常のワープロのスペルチェッカはplantainおよびplantainsのみを、スペルミスされた語platnuinのための訂正として提案する可能性がある。第2の例では、通常のワープロのスペルチェッカはditroitigersの語をスペルミスとして強調表示するが、訂正の提案を提供しない。従来の信頼されたレキシコンおよびコーパスの手法は、このタイプの問題を解決することができない場合があるが、この問題には本発明により、大きいクエリログを利用することによって対処することができる。
ditroitigersなどのスペルミスが、選択の距離およびしきい値に従って正しい代替案からあまりにも離れている場合、正しい代替案は1ステップでは発見されない可能性がある。それにもかかわらず、本発明の一例を使用すると、ditroitigers→detroittigers→detroit tigersなど、中間の有効訂正ステップを可能にすることによって、正しい代替案に到達することができる。この問題の最後の公式化は、言語のレキシコンを明示的に利用しなかった。むしろ、トレーニングのために利用されたクエリログに現れるいかなる部分文字列もが有効な訂正と見なされる可能性があり、クエリの相対頻度および代替スペリングに基づいて、現在のウェブクエリの代替案として提案される可能性がある。実際に、ワープロによって使用される通常のスペルチェッカとは反対に、本発明のベーススペルチェッカ(本発明の基本スペルチェッカは非反復システムである)の一例はdetroittigersを提案し、これは、この代替案がクエリログ内で頻繁に発生するからである。他方では、detroittigers自体は、本発明の反復的訂正手法のための基礎である、類似のクエリログ頻度の事実を使用することによって、スタンドアロンクエリとしてベーススペルチェッカに提示される場合、detroit tigersに訂正されることが可能である。このような手法に不可欠なものは、クエリログの3つの通常のプロパティである。すなわち(1)クエリログ内の語は、比較的訂正が容易なスペルミスから、ユーザの意図を認識することがほぼ不可能となる大きいエラーのスペルミスまで、様々な方法でスペルミスされること、(2)スペルミスが悪くはないほど、そのスペルミスは頻繁に起こること、および(3)正しいスペリングはスペルミスよりも頻度が高くなる傾向があることである。Albert Einsteinに関係する検索クエリの統計の一例を表1に示す。
Figure 2005267638
この状況においては、スペリング訂正問題に以下の反復公式化を与えることができる。
∈Σが与えられると、dist(s,si+1)≦δかつ
Figure 2005267638
、∀i∈0..n−1、かつ
Figure 2005267638
となるように数列s,s,...s∈Σを発見する。
本発明の基本スペルチェッカを反復的に適用することによって行うことができる訂正の一例は、以下の通りである。
anol scwartegger→arnold schwarzenegger
スペルミスされたクエリ: anol scwartegger
第1の反復: arnold schwartnegger
第2の反復: arnold schwarznegger
第3の反復: arnold schwarzenegger
第4の反復:さらなる訂正はなし、したがって、第3の反復の結果が出力される。
この時点まで、スペルチェック問題に与えられた公式化における文字列の概念は、仕様が曖昧にされていた。Brill他(例えば、非特許文献12、特許文献1、特許文献2参照。)によって検討された1つの可能性は、クエリ全体を、訂正される文字列として見なすことである。彼らの手法は、統計的文字エラーモデルを構築し、ログされたクエリを他のログされたクエリに、文字エラーモデルとのそれらの相対的頻度の一致に基づいた訂正としてマップすることである。彼らはクエリログのこの訂正プロセスを反復し、最終的に、別のクエリのスペルミスとして識別されたログ内の各クエリをログ内に格納する。クエリレベルで作業することには、少数の大きい欠点がある。この手法は、ウェブクエリログで使用可能な膨大な情報を活用するが、これらのログで現れる、比較的低い範囲を有する正確な句のマッチのみをカバーする。britnet spear inconcertなどのクエリを訂正することはできず、これは、その正しいバージョンであるbritney spears in concertがクエリログ内に現れないからであるが、例えば以下のように、その部分文字列を分離して訂正することができる。
britnet spear→britney spears
本発明は上記の手法による問題を克服して、クエリのスペルチェックのための効果的な方法を創り出す。本発明は以下の公式化を利用する。
∈Σが与えられると、各i∈0..n−1について、分解
Figure 2005267638
が存在するように数列s,s,...s∈Σを発見し、ただし、
Figure 2005267638
は、
Figure 2005267638
、i=0..n−1、k=1...1であり、かつ、各i=0..n−1について、
Figure 2005267638
であり、かつ、
Figure 2005267638
であるような、複数の語または語のグループである。
例えば以下のように、文字列分解の長さは反復ごとに変わる可能性があることを注意されたい。
Figure 2005267638
反復的プロセスは、他のタイプの問題になりやすい。短いクエリは他の無関係のクエリに反復的に変換される可能性がある。したがって、本発明の一例では、このようなクエリの変更には追加の制限がある。トレーニングのため、本発明は、使用可能なレキシコン情報(例えば、multi−modalなどのレキシコンエントリは3つの部分に分割されないようになる)に加えて、非常に基本的なスペースおよび単語区切り文字情報を利用して、使用されたウェブクエリログ内のすべてのクエリをトークン化し、ユニグラムおよびバイグラム統計を収集する。
入力クエリは、クエリログを処理するために利用されたような使用可能なレキシコン情報に加えて、同じスペースおよび単語区切り文字情報を利用してトークン化される。上記の文字列間距離関数(本発明の一例では、これは前述の加重Levenshtein関数である)を利用し、レキシコン内の語およびレキシコン外のトークンについて異なるしきい値を可能にして、各トークンについて代替案の一式が計算される。レキシコンに加えて、クエリログから抽出された単語/トークンのユニグラムおよびバイグラムのスペースにおいて、マッチが検索される。本発明の一例では、ユニグラムおよびバイグラムは共に同じデータ構造内に格納され、システムは語の連結および分割を、1語の未知の形を処理する方法とまったく同じ方法で処理するようになる。
すべての可能な代替案の一式がクエリ内の各語形について計算された後、修正されたビタビ探索(遷移確率が、バイグラムおよびユニグラムクエリログ統計を利用して計算され、出力確率が、語の間の逆の文字列間距離で置き換えられる)が使用されて、以下の制約の下で入力クエリの最良の可能な代替文字列が発見され、この制約はすなわち(例えば)、2つの隣接する語彙内の語が同時に変化することを許可しないことである。この制約は、log wood→dog foodなどの変化を防止する。この制約のアルゴリズムの結果は、トレリス内のすべての可能なパス(すなわち、クエリ内のあらゆるトークンについての訂正候補のすべての可能な組み合わせ)を検索する必要がないことであり、これにより、さらに後述するように、訂正された検索手順が非常に高速になる。各語のための代替案のリストはランダムにソートされるが、入力語形が信頼されたレキシコン内にある場合にその入力語はリスト内の最初の位置にあるというプロパティを有すると仮定すると、検索されたパスは「フリンジ」を形成する。図3は、修正されたビタビ探索の例示300において、w、wおよびwがレキシコン内の語形と推定されるトレリスのこのような一例を提示する。wおよびwに対応する代替案の間のk×k個の可能なパスのコストを計算するのではなく、k+k個のパスのコストを計算することのみが必要であることに注意されたい。
本発明は単語バイグラム統計を使用するので、ストップワード(前置詞および接続詞など)は何度も最良のパス検索に悪い方向に干渉する可能性がある。例えば、platunum and rigsなどのクエリの訂正においては、単語バイグラムに基づいた言語モデルは、語形rigsについて関連のある文脈を使用しないようになる。このタイプの問題を回避するため、ストップワードおよびそれらの最も可能性の高いスペルミスは別々に処理され、検索は、説明図300におけるように最初にそれらを無視することによって行われ、wはこのような語であると推定される。制限されたトレリス内の最良のパスが発見された後、ストップワード(またはそれらのスペルミス)のための最良の代替案が、先端が固定されるフリンジにより第2のビタビ探索によって計算される。これを、図4のストップワード処理の修正されたビタビ探索の説明図400において提示する。フリンジによる検索の手法は、検索スペースを大幅に制限しすぎることによって、精度に対して場合によっては否定的な影響を有するように見えるが、このような手法は、スペリング訂正の反復プロセスと結合されるとき、大変強力である。
本発明はクエリログおよびウェブインデックスを、提案されたフリンジ方法を有するビタビ探索によって必要とされたウェブクエリ内のnグラムの確率の推定における貴重なリソースとして使用することができる。しかし、これらのいずれも、単独で利用された場合、他方よりも良いリソースと見なされる可能性はない。一方で、ウェブ頻度は、反復訂正手法にはあまり有用でない場合があり、これは、ウェブドキュメントのミスはウェブクエリのミスよりも頻度が低く(ウェブクエリの約10〜15%はスペルミスを含む)、ウェブページの作者によって行われたミスは、ウェブをクエリする人々によって行われたミスを十分にモデリングしない場合があるからである。また、ウェブ頻度は必ずしも、クエリスペリング訂正のためにいくつかの語の重要性を反映するとは限らない場合がある。ウェブ上に現れるバイグラムの数は、スペースおよび速度の制限のために、スペリング訂正システムが利用することができるバイグラムの数よりはるかに大きい。したがって、所与のしきい値より高いカウントを有するバイグラムのみを格納および利用することは、最適でない場合がある。mail oxなど、ウェブ上に何百回も発生するがクエリログでは発生しないバイグラムは、ox pictureなど、より低いウェブカウントを有するが実際にクエリログ内で現れる単語バイグラムよりも、クエリ訂正について関連が少ない可能性がある。
他方では、クエリログは、低カウントのユニグラムおよびバイグラムに対して非常に信頼できない可能性がある。例えば、サンプルクエリログ内の20個のクエリは、バイグラムcatfish soapを含んでいるが、ただ3個のみがバイグラムcatfish soupを含んでいるとする。これらの統計に基づくと、catfish sopなどのクエリは、語soapを含む不正確な代替案に関連付けられるようになる(簡単にするため、この例では、dist(sop,soap)=dist(sop,soup)であると仮定する)。本発明の一例では、クエリログ内に現れる単語ユニグラムおよびバイグラムが使用されるが、それらのクエリログ頻度はそれらのウェブ頻度に従って調整される。このように、ウェブ上では発生しない大変低い頻度のnグラムを、クエリログからフィルタリングして除くことができる(これを、ランタイムに利用されるデータのサイズを制限するために行うことができる)が、大変低い頻度のnグラムは、より信頼できる単語nグラム統計を得ながら、反復的な訂正のために役立つより高い頻度のクエリスペルミスを失うことはない。図5は、本発明の一態様による情報の流れの構造500の説明図を示す。情報の流れの構造500はウェブインデックス502を示しており、ウェブインデックス502は、クエリログトライ504のためのユニグラムおよびバイグラム統計を再推定するために利用される。
本発明の他の例では、信頼されたレキシコンに、例えばamdなど、スペリング訂正を常にパスする語を追加することによって、(特に英語以外の言語のための)信頼されたレキシコンを豊富にすることによってレキシコン開発を強化することができる。
amd processors→amd processors
amd warranty→amd warranty
amd overclocking→amd overclocking
本発明のさらにもう1つの例では、クエリログ語ヒストグラムにおいて未知語が与えられると、本発明を利用して、その語を含むすべてのクエリを発見すること、および、語が訂正されるクエリの数を、語が訂正されないまま残されるクエリの数に対して計算することができる。本発明のさらに他の例では、異なる文脈によりミススペルがどのように訂正されるかを観察することによって、ユーザの知識がクエリログから抽出される。本発明の他の例は、複数の言語にわたる同系辞書(機械翻訳で橋渡し要素として使用されるもの)を構築すること、および/または、言語翻訳者を手助けするために反復スペリング訂正器を使用することを含む。
図示し上述した例示的なシステムおよびプロセスに鑑みて、本発明によって実施することができる方法は、図6〜図8のフロー図を参照することにより、より良く理解されるであろう。説明を簡単にするため、これらの方法を一連のブロックとして示し、説明するが、本発明はこのブロックの順序によって限定されない。本発明によれば、いくつかのブロックは本明細書に示し、説明するのとは異なる順序で、かつ/または、他のブロックと同時に発生することができるからであることを理解されたい。また、例示されたブロックのすべてが、本発明による方法を実施するために必要であるとは限らない場合がある。
本発明を一般に、プログラムモジュールなど、1つまたは複数のコンポーネントによって実行されるコンピュータ実行可能命令に関連して説明することができる。一般に、プログラムモジュールには、ルーチン、プログラム、オブジェクト、データ構造などが含まれ、これらは特定のタスクを実行するか、あるいは特定の抽象データ型を実装する。通常、プログラムモジュールの機能性を、本発明の様々な実施例で望まれるように結合させまたは分散させることができる。
図6は、本発明の一態様による検索クエリを容易にする方法600のフロー図を示す。方法600はステップ602で開始し、入力検索クエリを得る604。クエリは通常、ユーザによってウェブ検索アプリケーションに入力される。次いでステップ606で、検索クエリは本発明によってトークン化されて、処理のためにバイグラムおよびユニグラムに分割される。次いでステップ608で、トークン化されたクエリが利用されて、少なくとも部分的には、少なくとも1つのクエリログを使用して代替クエリ提案が計算される。クエリログは、少なくとも部分的には、ユーザによって行なわれた以前の検索に関係する統計情報を提供する。頻度のような統計情報および/または訂正提案などを本発明によって使用して、代替クエリ提案を提供することができる。本発明の他の例では、信頼されたレキシコンをまた追加のウェブ統計と共に利用して、低カウントの単語nグラムを改善することもできる。ウェブ統計をまた、レキシコン情報なしで使用することもできる。本発明はまた、修正された文脈依存加重Levenshtein距離を利用することもでき、これはポイント変更として、文字の挿入、削除、置換、即時入れ換え、および長距離移動などを可能にする。代替クエリ提案の計算中に、本発明はまた、2つの隣接する語彙内の語が同時に変化することを許可しないという制約を使用することもできる。この制約のアルゴリズムの結果、トレリス内のすべての可能なパスを検索する必要がなくなり、これにより、修正された検索手順が大幅により高速になる。加えて、これは、クエリが代替クエリ提案のための完全に誤った句にならないようにする。代替クエリ提案が計算された後、ステップ610でユーザおよび/またはシステムに出力され、フローはステップ612で終了する。
図7を参照して、本発明の一態様による検索クエリを容易にする方法700のもう1つのフロー図を示す。方法700はステップ702で開始し、ステップ704で入力検索クエリを得る。次いでステップ706で、入力クエリは、使用可能なレキシコン情報に加えて、クエリログを処理するために利用されたものと同じスペースおよび単語区切り文字情報を利用して、トークン化される。各トークンについて、ステップ708で、加重Levenshtein距離関数を利用し、レキシコン内の語およびレキシコン外のトークンについて異なるしきい値を可能にして、代替案の一式が計算される。本発明は従来のスペリング訂正とは対照的であり、これは、レキシコンに加えて、クエリログから抽出された単語/トークンユニグラムおよびバイグラムのスペース内でマッチが検索されるためである。本発明の一例では、ユニグラムおよびバイグラムは共に同じデータ構造内に格納され、システムは語の連結および分割を、1語の未知の形を処理する方法とまったく同じ方法で処理するようになる。すべての可能な代替案の一式がクエリ内の各語形について計算された後、ステップ710で、修正されたビタビ探索(遷移確率が、バイグラムおよびユニグラムクエリログ統計を利用して計算され、出力確率が、語の間の逆距離で置き換えられる)が使用されて、以下の制約の下で入力クエリの最良の可能な代替文字列が発見される。この制約はすなわち、2つの隣接する語彙内の語が同時に変化することを許可しないことである。この制約のアルゴリズムの結果、トレリス内のすべての可能なパスを検索する必要がなくなり、これにより、さらに後述するように、修正された検索手順が大変高速になる。次いでステップ712で、最適な代替クエリ提案が発見されているかどうかについての判断が行われる。そうである場合、ステップ714で最適な代替クエリ提案が出力され、フローはステップ716で終了する。そうでない場合、ステップ706で再度、反復プロセス内で、最適な代替クエリ提案が発見されるまで、最良の部分文字列の代替クエリ提案がトークン化される。
図8を見ると、本発明の一態様による検索クエリを容易にする方法800のさらにもう1つのフロー図を示す。方法800はステップ802で開始し、ステップ804において、低カウントのクエリログnグラムのためのウェブ統計を、逆ウェブインデックスから得る。これは、はるかに大きいデータベースからの情報を組み込むことによって、nグラムのための統計情報を強化する。次いでステップ806で、ウェブ統計が、低カウントのクエリログnグラムの反復処理のために、少なくとも部分的にはnグラムのための統計として利用され、フローはステップ808で終了する。本発明の一例では、クエリログ内に現れる単語ユニグラムおよびバイグラムが使用されるが、それらのクエリログ頻度はそれらのウェブ頻度に従って調整される。このように、ウェブ上で発生しない大変低い頻度のnグラムを、クエリログからフィルタリングして除くことができる(これを、ランタイムに利用されるデータのサイズを制限するために行うことができる)が、大変低い頻度のnグラムは、より信頼できる単語nグラム統計を得ながら、反復訂正のために役立つより高い頻度のクエリスペルミスを失わない。
本発明の様々な態様を実施するための追加の状況を提供するために、図9および以下の考察は、本発明の様々な態様を実施することができる適切なコンピューティング環境900の簡単な全体的説明を提供するように意図されている。本発明を一般に、ローカルコンピュータおよび/またはリモートコンピュータ上で実行するコンピュータプログラムのコンピュータ実行可能命令との関連で上述したが、本発明をまた、他のプログラムモジュールと組み合わせて実施することもできることは、当業者には理解されよう。一般に、プログラムモジュールには、ルーチン、プログラム、コンポーネント、データ構造などが含まれ、これらは特定のタスクを実行し、および/または特定の抽象データ型を実装する。また、本発明の方法を他のコンピュータシステム構成により実施することができ、これらの構成には、シングルプロセッサまたはマルチプロセッサコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、ならびに、パーソナルコンピュータ、ハンドヘルドコンピューティングデバイス、マイクロプロセッサベースおよび/またはプログラマブルコンシューマエレクトロニクスなどが含まれ、これらの構成の各々は1つまたは複数の関連デバイスと動作可能に通信することができることは、当業者には理解されよう。本発明の例示した態様をまた分散コンピューティング環境で実施することもでき、この環境ではあるタスクが、通信ネットワークを通じてリンクされるリモート処理デバイスによって実行される。しかし、本発明の、全部でないにしてもいくつかの態様を、スタンドアロンコンピュータ上で実行することができる。分散コンピューティング環境では、プログラムモジュールはローカルおよび/またはリモートのメモリストレージデバイス内に位置することができる。
本出願で使用されるとき、「コンポーネント」という語は、コンピュータ関連エンティティを指すように意図され、このエンティティは、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれでもよい。例えば、コンポーネントは、それだけに限定されないが、プロセッサ上で実行するプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラムおよびコンピュータであってもよい。例示として、サーバ上で実行するアプリケーションおよび/またはサーバがコンポーネントである可能性がある。加えて、コンポーネントには、1つまたは複数のサブコンポーネントが含まれる場合がある。
図9を参照すると、本発明の様々な態様を実施するための例示的システム環境900には従来のコンピュータ902が含まれ、コンピュータ902には、処理装置904、システムメモリ906、および、システムメモリを含む様々なシステムコンポーネントを処理装置904に結合するシステムバス908が含まれる。処理装置904は、いかなる市販またはメーカ独自のプロセッサであってもよい。加えて、処理装置は、並列で接続することができるものなど、複数のプロセッサで形成されるマルチプロセッサとして実装することができる。
システムバス908を、いくつかのタイプのバス構造のいずれにすることもでき、これらのバス構造には、2、3例を挙げると、PCI、VESA、マイクロチャネル、ISAおよびEISAなど、様々な従来のバスアーキテクチャのいずれかを利用する、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスが含まれる。システムメモリ906には、読み取り専用メモリ(ROM)910およびランダムアクセスメモリ(RAM)912が含まれる。基本入出力システム(BIOS)914は、起動中など、コンピュータ902内の複数の要素の間で情報を転送する助けとなる基本ルーチンを含み、ROM910に格納される。
コンピュータ902にはまた例えば、ハードディスクドライブ916、例えば、リムーバブルディスク920に対する読み書きを行うための磁気ディスクドライブ918、および、例えば、CD−ROMディスク924または他の光メディアに対する読み書きを行うための光ディスクドライブ922が含むことができる。ハードディスクドライブ916、磁気ディスクドライブ918、および光ディスクドライブ922はシステムバス908に、それぞれハードディスクドライブインターフェイス926、磁気ディスクドライブインターフェイス928、および光ドライブインターフェイス930によって接続される。ドライブ916〜922およびそれらの関連付けられたコンピュータ読取り可能メディアは、コンピュータ902のためのデータ、データ構造、コンピュータ実行可能命令などの不揮発性ストレージを提供する。上記のコンピュータ読取り可能メディアの説明は、ハードディスク、リムーバブル磁気ディスクおよびCDに言及するが、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジなど、コンピュータによって可読である他のタイプのメディアもまた例示的オペレーティング環境900内で使用することができること、およびさらに、いかなるこのようなメディアも、本発明の方法を実行するためのコンピュータ実行可能命令を含むことができることは、当業者には理解されよう。
いくつかのプログラムモジュールをドライブ916〜922およびRAM912に格納することができ、これらのプログラムモジュールには、オペレーティングシステム932、1つまたは複数のアプリケーションプログラム934、他のプログラムモジュール936およびプログラムデータ938が含まれる。オペレーティングシステム932は、いかなる適切なオペレーティングシステムまたは複数のオペレーティングシステムの組み合わせであってもよい。例として、アプリケーションプログラム934およびプログラムモジュール936には、本発明の一態様による検索クエリスペルチェックスキームが含まれる場合がある。
ユーザはコマンドおよび情報をコンピュータ902へ、キーボード940およびポインティングデバイス(例えば、マウス942)など、1つまたは複数のユーザ入力デバイスを通じて入力することができる。他の入力デバイス(図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、ワイヤレスリモート、スキャナなどが含まれる可能性がある。これらおよび他の入力デバイスはしばしば処理装置904へ、システムバス908に結合されるシリアルポートインターフェイス944を通じて接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)など、他のインターフェイスによって接続することができる。モニタ946または他のタイプの表示デバイスもまたシステムバス908へ、ビデオアダプタ948などのインターフェイスを介して接続される。モニタ946に加えて、コンピュータ902には、スピーカ、プリンタなど、他の周辺出力デバイス(図示せず)が含まれる場合がある。
コンピュータ902はネットワーク環境において、1つまたは複数のリモートコンピュータ960への論理接続を使用して動作することができる。リモートコンピュータ960は、ワークステーション、サーバコンピュータ、ルータ、ピアデバイスまたは他の共通ネットワークノードにすることができ、通常は、コンピュータ902に関連して上述した要素の多数またはすべてを含むが、簡潔にするため、メモリストレージデバイス962のみが図9に例示される。図9に示す論理接続には、ローカルエリアネットワーク(LAN)964およびワイドエリアネットワーク(WAN)966が含まれる可能性がある。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネットおよびインターネットにおいて一般的である。
LANネットワーキング環境において使用するとき、例えば、コンピュータ902はローカルネットワーク964へ、ネットワークインターフェイスまたはアダプタ968を通じて接続される。WANネットワーキング環境において使用するとき、コンピュータ902は通常、モデム(例えば、電話、DSL、ケーブルなど)970を含み、あるいはLAN上の通信サーバに接続されるか、あるいはインターネットなどのWAN966を介して通信を確立するための他の手段を有する。モデム970は、コンピュータ902に対して内部であっても外部であってもよく、システムバス908へ、シリアルポートインターフェイス944を介して接続される。ネットワーク環境では、プログラムモジュール(アプリケーションプログラム934を含む)および/またはプログラムデータ938を、リモートメモリストレージデバイス962に格納することができる。図示のネットワーク接続は例示的であり、本発明の一態様を実行するとき、コンピュータ902および960の間で通信リンクを確立する他の手段(例えば、有線または無線)を使用することができることは理解されよう。
コンピュータプログラミングの技術分野の当業者の慣習によって、本発明を、特に断りのない限り、コンピュータ902またはリモートコンピュータ960など、コンピュータによって実行される動作、および、オペレーションの記号表現を参照して説明した。このような動作およびオペレーションは時として、コンピュータにより実行されるものとして呼ばれる。これらの動作、および、記号表現されたオペレーションには、処理装置904による、データビットを表現する電気信号の操作が含まれ、この操作は、結果として生じる電子信号表現の変換または低減、および、メモリシステム(システムメモリ906、ハードドライブ916、フロッピー(登録商標)ディスク920、CD−ROM924およびリモートメモリ962)内のメモリロケーションでのデータビットの保存を引き起こして、それによりコンピュータシステムのオペレーションならびに他の信号の処理を再構成するか、そうでない場合は変更することを理解されたい。このようなデータビットが保存されるメモリロケーションは、データビットに対応する特定の電気、磁気または光特性を有する物理的ロケーションである。
図10は、本発明が対話することができるサンプルコンピューティング環境1000のもう1つのブロック図である。システム1000はさらに、1つまたは複数のクライアント1002を含むシステムを例示する。クライアント1002をハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティングデバイス)にすることができる。システム1000にはまた、1つまたは複数のサーバ1004もが含まれる。サーバ1004もまた、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティングデバイス)にすることができる。サーバ1004は、例えば、本発明を使用することによって、変換を実行するためのスレッドを収容することができる。クライアント1002とサーバ1004の間の1つの可能な通信は、2つ以上のコンピュータプロセスの間で送信されるように適合されたデータパケットの形態であってもよい。システム1000には、クライアント1002とサーバ1004の間の通信を容易にするために使用することができる、通信フレームワーク1008が含まれる。クライアント1002は、クライアント1002にローカルで情報を格納するために使用することができる、1つまたは複数のクライアントデータストア1010に接続される。同様に、サーバ1004は、サーバ1004にローカルで情報を格納するために使用することができる、1つまたは複数のサーバデータストア1006に接続される。
本発明の一例では、2つ以上のコンピュータコンポーネントの間で送信された、検索クエリスペルチェックを容易にするデータパケットは、少なくとも部分的には、少なくとも1つのクエリログに基づいたクエリ文字列セットのための、少なくとも部分的には、少なくとも1つの代替スペリングを提供する、検索クエリスペルチェックシステムに関係する情報からなる。
本発明のシステムおよび/または方法を、検索クエリスペルチェックを容易にするコンピュータコンポーネントおよび非コンピュータ関連コンポーネントにおいて同様に利用することができることを理解されたい。さらに、本発明のシステムおよび/または方法は、それだけに限定されないが、コンピュータ、サーバおよび/またはハンドヘルド電子デバイスなどを含む、ありとあらゆる電子関連技術において使用可能であることは、当業者には理解されよう。
上述したものには本発明の実施例が含まれる。言うまでもなく、本発明を説明するためのコンポーネントまたは方法のあらゆる考えられる組み合わせを説明することは可能ではないが、本発明の多数のさらなる組み合わせおよび置換が可能であることは、当業者には理解されよう。したがって、本発明は、付属の特許請求の範囲の精神および範囲内に入るこのようなすべての変更、修正および変形形態を包含するように意図される。さらに、「含む」という用語が詳細な説明または特許請求の範囲において使用される範囲で、このような用語は、「備える」という用語が、特許請求の範囲内の移行語として使用されるときに解釈されるときの「備える」と同様に、包含的であるように意図される。
本発明の一態様による検索クエリ評価システムのブロック図である。 本発明の一態様による検索クエリ評価システムのもう1つのブロック図である。 本発明の一態様による検索プロセスの説明図である。 本発明の一態様による検索プロセスのもう1つの説明図である。 本発明の一態様による情報の流れの構造の説明図である。 本発明の一態様による検索クエリを容易にする方法のフロー図である。 本発明の一態様による検索クエリを容易にする方法のもう1つのフロー図である。 本発明の一態様による検索クエリを容易にする方法のさらにもう1つのフロー図である。 本発明が機能する一実施例のオペレーティング環境を説明する図である。 本発明が機能するもう1つの実施例のオペレーティング環境を説明する図である。
符号の説明
100,200 検索クエリ評価システム
902 コンピュータ
918 磁気ディスクドライブ
922 光ディスクドライブ
940 キーボード
942 マウス

Claims (42)

  1. スペルチェックを容易にするシステムであって、
    テキストを含む入力データを受信するコンポーネントと、
    前記テキスト内で潜在的にスペルミスされた部分文字列の一式を識別し、前記部分文字列の一式のための少なくとも1つの代替スペリングを少なくとも1つのクエリログに基づいて提案するスペルチェックコンポーネントであって、前記クエリログは、ユーザによってある期間にわたってデータの集まりをクエリするために利用されたデータを含むことと、
    を備えることを特徴とするシステム。
  2. 前記スペルチェックコンポーネントは、少なくとも1つの代替スペリングを提案するときに、ユーザ依存情報をさらに利用することを特徴とする請求項1に記載のシステム。
  3. 前記部分文字列の一式のための前記代替スペリングは、少なくとも1つの信頼されたレキシコンにさらに基づき、前記信頼されたレキシコンは、コンテンツを有する信頼されたレキシコンおよびコンテンツのない信頼されたレキシコンからなるグループから選択された少なくとも1つを含むことを特徴とする請求項1に記載のシステム。
  4. 前記スペルチェックコンポーネントはストップワードのリストをさらに使用し、前記ストップワードのリストは、コンテンツを有するストップワードのリストおよびコンテンツのないストップワードのリストからなるグループから選択された少なくとも1つを含むことを特徴とする請求項3に記載のシステム。
  5. 前記コンテンツを有するストップワードのリストは、高頻度語および機能語を含むストップワードリスト、およびそれらの頻出スペルミスを含むことを特徴とする請求項4に記載のシステム。
  6. 前記スペルチェックコンポーネントは反復的プロセスを使用して、代替スペリングのスペースを検索することを特徴とする請求項4に記載のシステム。
  7. 前記スペルチェックコンポーネントは、提案された代替スペリングを決定するために利用される検索スペースに制限を課すために、少なくとも部分的には、経験則(Heuristics)を使用することを特徴とする請求項6に記載のシステム。
  8. 前記経験則は、前記検索スペースを制限するために、少なくとも部分的には、少なくとも1つのフリンジを利用することを特徴とする請求項7に記載のシステム。
  9. 前記クエリログは、ある期間にわたって尋ねられたクエリのヒストグラムを含むことを特徴とする請求項4に記載のシステム。
  10. 前記尋ねられたクエリのヒストグラムは前記ユーザのサブセットに関係し、前記サブセットは少なくとも1人のユーザを含むことを特徴とする請求項9に記載のシステム。
  11. 前記クエリログはサーバコンピュータ上に存在することを特徴とする請求項9に記載のシステム。
  12. 前記クエリログはクライアントコンピュータ上に存在することを特徴とする請求項9に記載のシステム。
  13. 前記スペルチェックコンポーネントは、少なくとも1つのクエリログからの部分文字列発生および共出現頻度統計を利用することを特徴とする請求項9に記載のシステム。
  14. 部分文字列は、少なくとも1つの信頼されたレキシコン内のエントリ、ストップワードリスト内のエントリ、事前定義された区切り文字のセットのない一連の文字からなるグループから選択された、少なくとも1つを含むことを特徴とする請求項13に記載のシステム。
  15. 前記部分文字列の共出現頻度統計は、部分文字列バイグラムカウントを備え、部分文字列バイグラムは、テキスト内の部分文字列のペアを含むことを特徴とする請求項13に記載のシステム。
  16. 前記部分文字列バイグラムは、テキスト内の隣接する部分文字列のペアを含むことを特徴とする請求項15に記載のシステム。
  17. 前記コンテンツを有するストップワードのリストのための前記部分文字列の共出現頻度統計は、ストップワードシーケンススキップカウントを有する部分文字列バイグラムをさらに含むことを特徴とする請求項16に記載のシステム。
  18. 前記クエリログからの前記部分文字列発生および前記共出現頻度統計は、同じ検索可能データ構造内に格納されることを特徴とする請求項13に記載のシステム。
  19. 前記データ構造はトライを備えることを特徴とする請求項18に記載のシステム。
  20. 連結および/または分割された部分文字列を、個々の部分文字列を処理する方法と同じ方法で処理することを特徴とする請求項18に記載のシステム。
  21. 前記スペルチェックコンポーネントは、少なくとも1つのクエリログおよび少なくとも1つのレキシコンからなるグループから選択された少なくとも1つにおける部分文字列である代替スペリングの一式を、生成することを特徴とする請求項20に記載のシステム。
  22. 前記代替スペリングの一式は、反復的訂正プロセスを介して決定された代替スペリングの一式を含むことを特徴とする請求項21に記載のシステム。
  23. 前記反復的訂正プロセスは、少なくとも1つの部分文字列を別の部分文字列へ代替スペリングとして変更する複数の反復を含み、前記反復的訂正プロセスは、すべての可能な代替スペリングが現在の代替スペリングの一式よりも適切でないときに停止することを特徴とする請求項22に記載のシステム。
  24. 前記代替スペリングおよびそれらの適切性は、確率的な文字列間距離および統計的な文脈モデルに基づいて計算されることを特徴とする請求項23に記載のシステム。
  25. 前記確率的な文字列間距離は、ポイント変更として文字の挿入、削除、置換、入れ換え、および長距離移動を可能にする、修正されたコンテキスト依存加重Damerau−Levenshtein編集機能を含むことを特徴とする請求項24に記載のシステム。
  26. 各反復内において、部分文字列に対する前記代替スペリングの一式は、少なくとも1つのクエリログおよび少なくとも1つの信頼されたレキシコンから抽出された検索可能な部分文字列データ構造を利用して生成されることを特徴とする請求項24に記載のシステム。
  27. 各反復内において、各部分文字列に対する前記代替スペリングの一式は、入力部分文字列からの確率的距離δ内に制限され、前記反復的訂正プロセスを全体として制限することなく、各反復内において前記制限が課されることを特徴とする請求項26に記載のシステム。
  28. 各反復内において、前記反復的訂正プロセスは、統計的な文脈モデルの利用を介して代替スペリングの最適な一式を検索することを特徴とする請求項27に記載のシステム。
  29. 前記統計的な文脈モデルは、少なくとも1つのクエリログから抽出された部分文字列発生および共出現頻度統計を含むことを特徴とする請求項28に記載のシステム。
  30. 各反復内において、前記文脈モデルに従って、前記代替スペリングの最適な一式を決定するのを容易にするために、ビタビ探索が使用されることを特徴とする請求項29に記載のシステム。
  31. 前記ビタビ探索はフリンジを使用して反復内における代替スペリングの検索を制限し、隣接する部分文字列のあらゆるペアについて、前記部分文字列のいずれかが少なくとも1つの信頼されたレキシコン内にある場合、前記部分文字列の1つのみがその反復内において変化することを許可することを特徴とする請求項30に記載のシステム。
  32. スペルチェックを容易にする方法であって、
    テキストを含む入力データを受信するステップと、
    前記テキスト内で潜在的にスペルミスされた部分文字列の一式を識別するステップと、
    前記部分文字列の一式のための少なくとも1つの代替スペリングを少なくとも1つのクエリログに基づいて提案するステップであって、前記クエリログは、ユーザによってある期間にわたってデータの集まりをクエリするために利用されたデータを含むことと、
    を備えることを特徴とする方法。
  33. 前記部分文字列セットのための前記代替スペリングはさらに少なくとも1つの信頼されたレキシコンに基づき、前記信頼されたレキシコンは、コンテンツを有する信頼されたレキシコンおよびコンテンツのない信頼されたレキシコンからなるグループから選択された少なくとも1つを含むことを特徴とする請求項32に記載の方法。
  34. 少なくとも1つの代替スペリングを決定することを容易にするために、ストップワードのリストを少なくとも部分的に使用ステップであって、前記ストップワードのリストは、コンテンツを有するストップワードのリストおよびコンテンツのないストップワードのリストからなるグループから選択された少なくとも1つを含むことと、
    少なくとも1つのクエリログからの部分文字列発生および共出現頻度統計を利用するステップであって、前記クエリログは、ある期間にわたって尋ねられたクエリのヒストグラムを含み、前記クエリログからの前記部分文字列発生および前記共出現頻度統計は、検索可能な同じデータ構造内に格納されることと、
    連結および/または分割された部分文字列を、個々の部分文字列を処理する方法と同じ方法で処理するステップと、
    少なくとも1つのクエリログおよび少なくとも1つのレキシコンからなるグループから選択された少なくとも1つにおける部分文字列である代替スペリングの一式を生成するステップであって、前記代替スペリングの一式は、反復的訂正プロセスを介して決定された代替スペリングの一式を含むことと、
    をさらに備えることを特徴とする請求項33に記載の方法。
  35. 前記反復的訂正プロセスは、
    少なくとも1つの部分文字列を別の部分文字列へ代替スペリングとして変更するステップと、
    すべての可能な代替スペリングが現在の代替スペリングの一式よりも適切でないとき、前記反復的訂正プロセスを停止するステップであって、前記代替スペリングおよびそれらの適切性は、確率的な文字列間距離および統計的な文脈モデルに基づいて計算されることと、
    を含むことを特徴とする請求項34に記載の方法。
  36. 前記反復的訂正プロセスの各反復内において、
    部分文字列に対する前記代替スペリングの一式を生成するために、少なくとも1つのクエリログおよび少なくとも1つの信頼されたレキシコンから抽出された検索可能な部分文字列データ構造を利用するステップと、
    各部分文字列に対する前記代替スペリングの一式を、入力部分文字列からの確率的距離δ内に制限するステップであって、前記反復的訂正プロセスを全体として制限することなく、前記制限が各反復内において課されることと、
    代替スペリングの最適な一式を、統計的な文脈モデルの利用を介して検索するステップであって、前記統計的な文脈モデルは、少なくとも1つのクエリログから抽出された部分文字列発生および共出現頻度統計を含むことと、
    をさらに含むことを特徴とする請求項35に記載の方法。
  37. 前記代替スペリングの最適な一式を決定することを容易にするために、前記文脈モデルに従って、各反復内においてビタビ探索を使用するステップであって、前記ビタビ探索はフリンジを使用して反復内の代替スペリングの検索を制限し、隣接する部分文字列のあらゆるペアについて、前記部分文字列のいずれかが少なくとも1つの信頼されたレキシコン内にある場合、前記部分文字列の1つのみがその反復内において変化することを許可されることを、さらに含むこと特徴とする請求項36に記載の方法。
  38. 検索エンジンへのクエリをスペルチェックするのを容易にするシステムであって、
    テキストを含む入力データを受信する手段と、
    前記テキスト内で潜在的にスペルミスされた部分文字列の一式を識別し、前記部分文字列の一式のための少なくとも1つの代替スペリングを少なくとも1つのクエリログに基づいて提案する手段であって、前記クエリログは、ユーザによってある期間にわたってデータの集まりをクエリするために利用されたデータを含むことと、
    を備えることを特徴とするシステム。
  39. 2つ以上のコンピュータコンポーネントの間で送信された、スペルチェックを容易にするデータパケットであって、前記データパケットは、少なくとも部分的には、少なくとも1つのクエリログに基づいて、少なくとも部分的には、文字列の一式のための少なくとも1つの代替スペリングを提供するスペルチェックシステムに関係する情報を、少なくとも部分的に備えていることを特徴とするデータパケット。
  40. 請求項1に記載のシステムのコンピュータ実行可能コンポーネントをその上に格納していることを特徴とするコンピュータ読取り可能媒体。
  41. 請求項32に記載の方法を使用する装置であって、コンピュータ、サーバおよびハンドへルド電子デバイスからなるグループの中から選択された少なくとも1つを備えることを特徴とする装置。
  42. 請求項1に記載のシステムを使用する装置であって、コンピュータ、サーバおよびハンドへルド電子装置からなるグループの中から選択された少なくとも1つを備えることを特徴とする装置。
JP2005074980A 2004-03-16 2005-03-16 改善されたスペルチェックのためのシステムおよび方法 Pending JP2005267638A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/801,968 US7254774B2 (en) 2004-03-16 2004-03-16 Systems and methods for improved spell checking

Publications (1)

Publication Number Publication Date
JP2005267638A true JP2005267638A (ja) 2005-09-29

Family

ID=34838898

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005074980A Pending JP2005267638A (ja) 2004-03-16 2005-03-16 改善されたスペルチェックのためのシステムおよび方法

Country Status (5)

Country Link
US (3) US7254774B2 (ja)
EP (1) EP1577793A3 (ja)
JP (1) JP2005267638A (ja)
KR (1) KR20060043682A (ja)
CN (1) CN100517301C (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011023007A (ja) * 2009-07-17 2011-02-03 Nhn Corp 統計データに基づくユーザクエリ校正システムおよび方法
US8321471B2 (en) 2004-03-16 2012-11-27 Microsoft Corporation Error model formation
JP2014106982A (ja) * 2012-11-28 2014-06-09 Estsoft Corp 自動完成質疑語提供システム、検索システム、自動完成質疑語提供方法並びに記録媒体
JP2014194774A (ja) * 2013-03-28 2014-10-09 Estsoft Corp 誤打校正システム及び誤打校正方法
JP2015501457A (ja) * 2011-06-27 2015-01-15 アマデウス エス.アー.エス.Amadeus S.A.S. 検索要求を処理する方法及びシステム
JP2017059216A (ja) * 2015-09-14 2017-03-23 ネイバー コーポレーションNAVER Corporation クエリ校正システムおよび方法

Families Citing this family (192)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7750891B2 (en) * 2003-04-09 2010-07-06 Tegic Communications, Inc. Selective input system based on tracking of motion parameters of an input device
US7286115B2 (en) 2000-05-26 2007-10-23 Tegic Communications, Inc. Directional input system with automatic correction
US7030863B2 (en) 2000-05-26 2006-04-18 America Online, Incorporated Virtual keyboard system with automatic correction
US7821503B2 (en) 2003-04-09 2010-10-26 Tegic Communications, Inc. Touch screen and graphical user interface
US7149970B1 (en) * 2000-06-23 2006-12-12 Microsoft Corporation Method and system for filtering and selecting from a candidate list generated by a stochastic input method
US7644076B1 (en) * 2003-09-12 2010-01-05 Teradata Us, Inc. Clustering strings using N-grams
US7617205B2 (en) 2005-03-30 2009-11-10 Google Inc. Estimating confidence for query revision models
US7836044B2 (en) 2004-06-22 2010-11-16 Google Inc. Anticipated query generation and processing in a search engine
US7487145B1 (en) * 2004-06-22 2009-02-03 Google Inc. Method and system for autocompletion using ranked results
US9223868B2 (en) 2004-06-28 2015-12-29 Google Inc. Deriving and using interaction profiles
US7664748B2 (en) * 2004-07-12 2010-02-16 John Eric Harrity Systems and methods for changing symbol sequences in documents
US8051096B1 (en) * 2004-09-30 2011-11-01 Google Inc. Methods and systems for augmenting a token lexicon
US7478081B2 (en) * 2004-11-05 2009-01-13 International Business Machines Corporation Selection of a set of optimal n-grams for indexing string data in a DBMS system under space constraints introduced by the system
US7895218B2 (en) 2004-11-09 2011-02-22 Veveo, Inc. Method and system for performing searches for television content using reduced text input
US7499940B1 (en) 2004-11-11 2009-03-03 Google Inc. Method and system for URL autocompletion using ranked results
US20060106769A1 (en) 2004-11-12 2006-05-18 Gibbs Kevin A Method and system for autocompletion for languages having ideographs and phonetic characters
US20060167676A1 (en) * 2005-01-26 2006-07-27 Research In Motion Limited Method and apparatus for correction of spelling errors in text composition
US7493578B1 (en) * 2005-03-18 2009-02-17 Xilinx, Inc. Correlation of data from design analysis tools with design blocks in a high-level modeling system
US20060230005A1 (en) * 2005-03-30 2006-10-12 Bailey David R Empirical validation of suggested alternative queries
US7870147B2 (en) * 2005-03-29 2011-01-11 Google Inc. Query revision using known highly-ranked queries
US7565345B2 (en) * 2005-03-29 2009-07-21 Google Inc. Integration of multiple query revision models
US7636714B1 (en) 2005-03-31 2009-12-22 Google Inc. Determining query term synonyms within query context
CN101366024B (zh) * 2005-05-16 2014-07-30 电子湾有限公司 用于处理数据搜索请求的方法和***
CN101194258B (zh) * 2005-05-31 2011-09-14 美国西门子医疗解决公司 用于患者人口统计学记录查询的数据敏感过滤的***以及方法
US8548799B2 (en) * 2005-08-10 2013-10-01 Microsoft Corporation Methods and apparatus to help users of a natural language system formulate queries
US7321892B2 (en) * 2005-08-11 2008-01-22 Amazon Technologies, Inc. Identifying alternative spellings of search strings by analyzing self-corrective searching behaviors of users
US7788266B2 (en) * 2005-08-26 2010-08-31 Veveo, Inc. Method and system for processing ambiguous, multi-term search queries
US7779011B2 (en) 2005-08-26 2010-08-17 Veveo, Inc. Method and system for dynamically processing ambiguous, reduced text search queries and highlighting results thereof
US7496869B1 (en) 2005-10-04 2009-02-24 Xilinx, Inc. Method and apparatus for implementing a program language description of a circuit design for an integrated circuit
US7363599B1 (en) 2005-10-04 2008-04-22 Xilinx, Inc. Method and system for matching a hierarchical identifier
US8249871B2 (en) * 2005-11-18 2012-08-21 Microsoft Corporation Word clustering for input data
US7644054B2 (en) 2005-11-23 2010-01-05 Veveo, Inc. System and method for finding desired results by incremental search using an ambiguous keypad with the input containing orthographic and typographic errors
US8010523B2 (en) 2005-12-30 2011-08-30 Google Inc. Dynamic search box for web browser
US7786979B2 (en) 2006-01-13 2010-08-31 Research In Motion Limited Handheld electronic device and method for disambiguation of text input and providing spelling substitution
US7664343B2 (en) * 2006-01-23 2010-02-16 Lockheed Martin Corporation Modified Levenshtein distance algorithm for coding
US20070198514A1 (en) * 2006-02-10 2007-08-23 Schwenke Derek L Method for presenting result sets for probabilistic queries
US7844603B2 (en) * 2006-02-17 2010-11-30 Google Inc. Sharing user distributed search results
US8122019B2 (en) * 2006-02-17 2012-02-21 Google Inc. Sharing user distributed search results
US8862572B2 (en) * 2006-02-17 2014-10-14 Google Inc. Sharing user distributed search results
EP1826692A3 (en) * 2006-02-22 2009-03-25 Copernic Technologies, Inc. Query correction using indexed content on a desktop indexer program.
US8195683B2 (en) 2006-02-28 2012-06-05 Ebay Inc. Expansion of database search queries
US9177124B2 (en) 2006-03-01 2015-11-03 Oracle International Corporation Flexible authentication framework
US8005816B2 (en) * 2006-03-01 2011-08-23 Oracle International Corporation Auto generation of suggested links in a search system
US7941419B2 (en) * 2006-03-01 2011-05-10 Oracle International Corporation Suggested content with attribute parameterization
US8875249B2 (en) 2006-03-01 2014-10-28 Oracle International Corporation Minimum lifespan credentials for crawling data repositories
US8214394B2 (en) 2006-03-01 2012-07-03 Oracle International Corporation Propagating user identities in a secure federated search system
US8433712B2 (en) * 2006-03-01 2013-04-30 Oracle International Corporation Link analysis for enterprise environment
US8332430B2 (en) 2006-03-01 2012-12-11 Oracle International Corporation Secure search performance improvement
US8027982B2 (en) * 2006-03-01 2011-09-27 Oracle International Corporation Self-service sources for secure search
US8868540B2 (en) * 2006-03-01 2014-10-21 Oracle International Corporation Method for suggesting web links and alternate terms for matching search queries
US8707451B2 (en) 2006-03-01 2014-04-22 Oracle International Corporation Search hit URL modification for secure application integration
US7676460B2 (en) * 2006-03-03 2010-03-09 International Business Machines Corporation Techniques for providing suggestions for creating a search query
US7792815B2 (en) 2006-03-06 2010-09-07 Veveo, Inc. Methods and systems for selecting and presenting content based on context sensitive user preferences
US8402409B1 (en) 2006-03-10 2013-03-19 Xilinx, Inc. Method and apparatus for supporting run-time reconfiguration in a programmable logic integrated circuit
US7380232B1 (en) 2006-03-10 2008-05-27 Xilinx, Inc. Method and apparatus for designing a system for implementation in a programmable logic device
US7761272B1 (en) 2006-03-10 2010-07-20 Xilinx, Inc. Method and apparatus for processing a dataflow description of a digital processing system
JP4734155B2 (ja) * 2006-03-24 2011-07-27 株式会社東芝 音声認識装置、音声認識方法および音声認識プログラム
US8073860B2 (en) 2006-03-30 2011-12-06 Veveo, Inc. Method and system for incrementally selecting and providing relevant search engines in response to a user query
US9135238B2 (en) * 2006-03-31 2015-09-15 Google Inc. Disambiguation of named entities
US7797629B2 (en) * 2006-04-05 2010-09-14 Research In Motion Limited Handheld electronic device and method for performing optimized spell checking during text entry by providing a sequentially ordered series of spell-check algorithms
WO2007124436A2 (en) 2006-04-20 2007-11-01 Veveo, Inc. User interface methods and systems for selecting and presenting content based on relationships between the user and other members of an organization
WO2007129316A2 (en) 2006-05-07 2007-11-15 Varcode Ltd. A system and method for improved quality management in a product logistic chain
US7562811B2 (en) 2007-01-18 2009-07-21 Varcode Ltd. System and method for improved quality management in a product logistic chain
EP1855210B1 (en) * 2006-05-11 2018-01-03 Dassault Systèmes Spell checking
US7558725B2 (en) * 2006-05-23 2009-07-07 Lexisnexis, A Division Of Reed Elsevier Inc. Method and apparatus for multilingual spelling corrections
US7849078B2 (en) * 2006-06-07 2010-12-07 Sap Ag Generating searchable keywords
US7533089B2 (en) * 2006-06-27 2009-05-12 International Business Machines Corporation Hybrid approach for query recommendation in conversation systems
US8856145B2 (en) * 2006-08-04 2014-10-07 Yahoo! Inc. System and method for determining concepts in a content item using context
US7818332B2 (en) * 2006-08-16 2010-10-19 Microsoft Corporation Query speller
US9552349B2 (en) * 2006-08-31 2017-01-24 International Business Machines Corporation Methods and apparatus for performing spelling corrections using one or more variant hash tables
US8564544B2 (en) 2006-09-06 2013-10-22 Apple Inc. Touch screen device, method, and graphical user interface for customizing display of content category icons
US8024173B1 (en) 2006-09-11 2011-09-20 WordRake Holdings, LLC Computer processes for detecting and correcting writing problems associated with nominalizations
EP2062171A4 (en) 2006-09-14 2010-10-06 Veveo Inc METHOD AND SYSTEMS FOR THE DYNAMIC REORGANIZATION OF SEARCH RESULTS IN HIERARCHICALLY ORGANIZED CLAUSE CLUSTERS
US7925986B2 (en) 2006-10-06 2011-04-12 Veveo, Inc. Methods and systems for a linear character selection display interface for ambiguous text input
US7590626B2 (en) * 2006-10-30 2009-09-15 Microsoft Corporation Distributional similarity-based models for query correction
WO2008063987A2 (en) 2006-11-13 2008-05-29 Veveo, Inc. Method of and system for selecting and presenting content based on user identification
CN101206659B (zh) 2006-12-15 2013-09-18 谷歌股份有限公司 自动搜索查询校正
US8201086B2 (en) * 2007-01-18 2012-06-12 International Business Machines Corporation Spellchecking electronic documents
US8201087B2 (en) * 2007-02-01 2012-06-12 Tegic Communications, Inc. Spell-check for a keyboard system with automatic correction
US8225203B2 (en) 2007-02-01 2012-07-17 Nuance Communications, Inc. Spell-check for a keyboard system with automatic correction
US7991609B2 (en) * 2007-02-28 2011-08-02 Microsoft Corporation Web-based proofing and usage guidance
US20080256057A1 (en) * 2007-04-12 2008-10-16 Soren Riise Optimizing a query using fuzzy matching
US7917493B2 (en) * 2007-04-19 2011-03-29 Retrevo Inc. Indexing and searching product identifiers
JP2010526386A (ja) 2007-05-06 2010-07-29 バーコード リミティド バーコード標識を利用する品質管理のシステムと方法
US8549424B2 (en) 2007-05-25 2013-10-01 Veveo, Inc. System and method for text disambiguation and context designation in incremental search
US7996392B2 (en) 2007-06-27 2011-08-09 Oracle International Corporation Changing ranking algorithms based on customer settings
US8316007B2 (en) * 2007-06-28 2012-11-20 Oracle International Corporation Automatically finding acronyms and synonyms in a corpus
CN101802812B (zh) * 2007-08-01 2015-07-01 金格软件有限公司 使用互联网语料库的自动的上下文相关的语言校正和增强
US20120239834A1 (en) 2007-08-31 2012-09-20 Google Inc. Automatic correction of user input using transliteration
US8046355B2 (en) * 2007-09-04 2011-10-25 Google Inc. Word decompounder
US20090083255A1 (en) * 2007-09-24 2009-03-26 Microsoft Corporation Query spelling correction
WO2009040790A2 (en) * 2007-09-24 2009-04-02 Robert Iakobashvili Method and system for spell checking
CN101131706B (zh) * 2007-09-28 2010-10-13 北京金山软件有限公司 一种查询修正方法及***
WO2009063464A2 (en) 2007-11-14 2009-05-22 Varcode Ltd. A system and method for quality management utilizing barcode indicators
US8667004B2 (en) * 2007-11-30 2014-03-04 Microsoft Corporation Providing suggestions during formation of a search query
US7953746B1 (en) * 2007-12-07 2011-05-31 Google Inc. Contextual query revision
US8176419B2 (en) * 2007-12-19 2012-05-08 Microsoft Corporation Self learning contextual spell corrector
US8244590B2 (en) * 2007-12-21 2012-08-14 Glyde Corporation Software system for decentralizing ecommerce with single page buy
US20090164339A1 (en) * 2007-12-21 2009-06-25 Glyde Corporation 3d product display on internet with content or transaction data on back of image
US8630923B2 (en) * 2007-12-21 2014-01-14 Glyde Corporation Virtual shelf with single-product choice and automatic multiple-vendor selection
US7899716B2 (en) * 2007-12-21 2011-03-01 Glyde Corporation System and method for integrated payment and shipping information
US8447645B2 (en) * 2007-12-21 2013-05-21 Glyde Corporation System and method for dynamic product pricing
US7831584B2 (en) 2007-12-21 2010-11-09 Glyde Corporation System and method for providing real-time search results on merchandise
US20090164273A1 (en) * 2007-12-21 2009-06-25 Glyde Corporation Product distribution system and method thereof
US9454516B2 (en) * 2008-01-14 2016-09-27 Blackberry Limited Method and handheld electronic device employing a touch screen for ambiguous word review or correction
WO2009094649A1 (en) * 2008-01-24 2009-07-30 Sra International, Inc. System and method for variant string matching
JP2009245308A (ja) * 2008-03-31 2009-10-22 Fujitsu Ltd 文書校正支援プログラム、文書校正支援方法および文書校正支援装置
JP5474933B2 (ja) * 2008-04-16 2014-04-16 ジンジャー ソフトウェア、インコーポレイティッド ユーザーの過去のライティングに基づいて、ライティングを指導するためのシステム
US8090669B2 (en) * 2008-05-06 2012-01-03 Microsoft Corporation Adaptive learning framework for data correction
US11704526B2 (en) 2008-06-10 2023-07-18 Varcode Ltd. Barcoded indicators for quality management
CN101625678B (zh) * 2008-07-11 2011-01-19 英业达股份有限公司 拼写检查***及其方法
US8301437B2 (en) * 2008-07-24 2012-10-30 Yahoo! Inc. Tokenization platform
US9092517B2 (en) * 2008-09-23 2015-07-28 Microsoft Technology Licensing, Llc Generating synonyms based on query log data
US8423353B2 (en) * 2009-03-25 2013-04-16 Microsoft Corporation Sharable distributed dictionary for applications
WO2010141429A1 (en) 2009-06-01 2010-12-09 Sean Christopher Timm Providing suggested web search queries based on click data of stored search queries
CN102483752A (zh) 2009-06-03 2012-05-30 谷歌公司 用于部分输入的查询的自动完成
US20110035375A1 (en) * 2009-08-06 2011-02-10 Ron Bekkerman Building user profiles for website personalization
US9166714B2 (en) 2009-09-11 2015-10-20 Veveo, Inc. Method of and system for presenting enriched video viewing analytics
US8515975B1 (en) 2009-12-07 2013-08-20 Google Inc. Search entity transition matrix and applications of the transition matrix
KR101301534B1 (ko) * 2009-12-14 2013-09-04 한국전자통신연구원 이형태 자동 구축 방법 및 장치
US8868402B2 (en) * 2009-12-30 2014-10-21 Google Inc. Construction of text classifiers
US8549018B1 (en) * 2010-01-21 2013-10-01 Symantec Corporation Systems and methods for predictive responses to internet object queries
US8386239B2 (en) * 2010-01-25 2013-02-26 Holovisions LLC Multi-stage text morphing
EP2531930A1 (en) 2010-02-01 2012-12-12 Ginger Software, Inc. Automatic context sensitive language correction using an internet corpus particularly for small keyboard devices
US20110191330A1 (en) 2010-02-04 2011-08-04 Veveo, Inc. Method of and System for Enhanced Content Discovery Based on Network and Device Access Behavior
US8782556B2 (en) * 2010-02-12 2014-07-15 Microsoft Corporation User-centric soft keyboard predictive technologies
US9002866B1 (en) 2010-03-25 2015-04-07 Google Inc. Generating context-based spell corrections of entity names
US8161073B2 (en) 2010-05-05 2012-04-17 Holovisions, LLC Context-driven search
US9600566B2 (en) 2010-05-14 2017-03-21 Microsoft Technology Licensing, Llc Identifying entity synonyms
US20110314337A1 (en) * 2010-06-18 2011-12-22 International Business Machines Corporation Method and Apparatus for Locating Input-Model Faults Using Dynamic Tainting
US20110313756A1 (en) * 2010-06-21 2011-12-22 Connor Robert A Text sizer (TM)
US8769516B2 (en) * 2010-08-19 2014-07-01 International Business Machines Corporation Systems and methods for automated support for repairing input model errors
US8812734B2 (en) * 2010-09-01 2014-08-19 Microsoft Corporation Network feed content
KR101378162B1 (ko) * 2010-11-10 2014-03-27 (주)아이티버스 오류단어 자동 정정시스템 및 그 자동 정정방법
US8713024B2 (en) 2010-11-22 2014-04-29 Microsoft Corporation Efficient forward ranking in a search engine
US8620907B2 (en) * 2010-11-22 2013-12-31 Microsoft Corporation Matching funnel for large document index
US9424351B2 (en) 2010-11-22 2016-08-23 Microsoft Technology Licensing, Llc Hybrid-distribution model for search engine indexes
US8478704B2 (en) 2010-11-22 2013-07-02 Microsoft Corporation Decomposable ranking for efficient precomputing that selects preliminary ranking features comprising static ranking features and dynamic atom-isolated components
US9529908B2 (en) 2010-11-22 2016-12-27 Microsoft Technology Licensing, Llc Tiering of posting lists in search engine index
US9342582B2 (en) * 2010-11-22 2016-05-17 Microsoft Technology Licensing, Llc Selection of atoms for search engine retrieval
US9195745B2 (en) 2010-11-22 2015-11-24 Microsoft Technology Licensing, Llc Dynamic query master agent for query execution
US8626681B1 (en) * 2011-01-04 2014-01-07 Google Inc. Training a probabilistic spelling checker from structured data
US20120246133A1 (en) * 2011-03-23 2012-09-27 Microsoft Corporation Online spelling correction/phrase completion system
US9165074B2 (en) 2011-05-10 2015-10-20 Uber Technologies, Inc. Systems and methods for performing geo-search and retrieval of electronic point-of-interest records using a big index
EP3115913B1 (en) * 2011-05-10 2018-03-14 Uber Technologies, Inc. Systems and methods for performing search and retrieval of electronic documents using a big index
US8620749B2 (en) 2011-06-20 2013-12-31 Glyde Corporation Customized offers for E-commerce
WO2013032617A1 (en) * 2011-09-01 2013-03-07 Google Inc. Server-based spell checking
US20130061139A1 (en) * 2011-09-01 2013-03-07 Google Inc. Server-based spell checking on a user device
US8768935B2 (en) * 2011-10-10 2014-07-01 Verisign, Inc. Bigram suggestions
US10176168B2 (en) 2011-11-15 2019-01-08 Microsoft Technology Licensing, Llc Statistical machine translation based search query spelling correction
US9317606B1 (en) * 2012-02-03 2016-04-19 Google Inc. Spell correcting long queries
US8745019B2 (en) 2012-03-05 2014-06-03 Microsoft Corporation Robust discovery of entity synonyms using query logs
US9183312B2 (en) * 2012-03-20 2015-11-10 Google Inc. Image display within web search results
US9043248B2 (en) 2012-03-29 2015-05-26 International Business Machines Corporation Learning rewrite rules for search database systems using query logs
US10032131B2 (en) 2012-06-20 2018-07-24 Microsoft Technology Licensing, Llc Data services for enterprises leveraging search system data assets
US9594831B2 (en) 2012-06-22 2017-03-14 Microsoft Technology Licensing, Llc Targeted disambiguation of named entities
US8856166B2 (en) * 2012-06-25 2014-10-07 Sap Ag Query validator
US9135912B1 (en) * 2012-08-15 2015-09-15 Google Inc. Updating phonetic dictionaries
US9229924B2 (en) 2012-08-24 2016-01-05 Microsoft Technology Licensing, Llc Word detection and domain dictionary recommendation
US8807422B2 (en) 2012-10-22 2014-08-19 Varcode Ltd. Tamper-proof quality management barcode indicators
CN103838739B (zh) * 2012-11-21 2019-05-28 百度在线网络技术(北京)有限公司 一种搜索引擎中纠错词的检测方法及***
US9740767B2 (en) * 2013-03-15 2017-08-22 Mapquest, Inc. Systems and methods for analyzing failed and successful search queries
US20140317495A1 (en) * 2013-04-22 2014-10-23 Research In Motion Limited Retroactive word correction
US9552411B2 (en) 2013-06-05 2017-01-24 Microsoft Technology Licensing, Llc Trending suggestions
KR101482430B1 (ko) * 2013-08-13 2015-01-15 포항공과대학교 산학협력단 전치사 교정 방법 및 이를 수행하는 장치
US9594742B2 (en) 2013-09-05 2017-03-14 Acxiom Corporation Method and apparatus for matching misspellings caused by phonetic variations
IL230993A (en) * 2014-02-16 2017-01-31 Google Inc Spelling variant detection by imagining pairs of sequences
US10068008B2 (en) 2014-08-28 2018-09-04 Microsoft Technologies Licensing, LLC Spelling correction of email queries
TWI553491B (zh) * 2014-11-21 2016-10-11 財團法人工業技術研究院 問句處理系統及其方法
US9679024B2 (en) * 2014-12-01 2017-06-13 Facebook, Inc. Social-based spelling correction for online social networks
CN107615027B (zh) 2015-05-18 2020-03-27 发可有限公司 用于可激活质量标签的热致变色墨水标记
US10740852B1 (en) 2015-06-23 2020-08-11 Square, Inc. Classifying merchants
JP6898298B2 (ja) 2015-07-07 2021-07-07 バーコード リミティド 電子品質表示指標
US10628522B2 (en) * 2016-06-27 2020-04-21 International Business Machines Corporation Creating rules and dictionaries in a cyclical pattern matching process
US10579729B2 (en) 2016-10-18 2020-03-03 International Business Machines Corporation Methods and system for fast, adaptive correction of misspells
US10372814B2 (en) 2016-10-18 2019-08-06 International Business Machines Corporation Methods and system for fast, adaptive correction of misspells
CN106911717A (zh) * 2017-04-13 2017-06-30 成都亚信网络安全产业技术研究院有限公司 一种域名检测方法及装置
KR101977206B1 (ko) * 2017-05-17 2019-06-18 주식회사 한글과컴퓨터 유사어 보정 시스템 및 방법
US10949825B1 (en) 2017-06-30 2021-03-16 Square, Inc. Adaptive merchant classification
US11093709B2 (en) 2017-08-10 2021-08-17 International Business Machine Corporation Confidence models based on error-to-correction mapping
US11348119B1 (en) 2017-10-18 2022-05-31 Block, Inc. Intelligent merchant onboarding
CN108280051B (zh) * 2018-01-22 2019-04-05 清华大学 一种文本数据中错误字符的检测方法、装置和设备
CN108376365B (zh) * 2018-03-22 2021-06-18 中国银行股份有限公司 一种银行编号确定方法及装置
CN109214167B (zh) * 2018-08-01 2021-04-16 深圳市文鼎创数据科技有限公司 一种智能密钥安全设备及其密钥恢复方法、存储介质
US10803242B2 (en) * 2018-10-26 2020-10-13 International Business Machines Corporation Correction of misspellings in QA system
US10977430B1 (en) * 2018-11-19 2021-04-13 Intuit Inc. System and method for correction of acquired transaction text fields
KR101966627B1 (ko) * 2018-12-26 2019-04-08 사라소프트주식회사 모바일용 의료기록지 번역시스템
CN109992796B (zh) * 2019-02-22 2023-07-04 中译语通科技股份有限公司 一种MerCube机器翻译管理控制***及方法、计算机程序
US10936813B1 (en) * 2019-05-31 2021-03-02 Amazon Technologies, Inc. Context-aware spell checker
US10963640B2 (en) * 2019-06-28 2021-03-30 Microsoft Technology Licensing, Llc System and method for cooperative text recommendation acceptance in a user interface
US11860884B2 (en) * 2021-03-30 2024-01-02 Snap Inc. Search query modification database
CN113627160B (zh) * 2021-09-17 2023-09-22 平安银行股份有限公司 文本纠错方法、装置、电子设备及存储介质

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2011103A (en) * 1935-08-13 Furnace damper
US3081774A (en) * 1960-05-19 1963-03-19 Lelyveld Joseph Arch support with metatarsal support bar
US5258909A (en) 1989-08-31 1993-11-02 International Business Machines Corporation Method and apparatus for "wrong word" spelling error detection and correction
DE4323241A1 (de) 1993-07-12 1995-02-02 Ibm Verfahren und Computersystem zur Suche fehlerhafter Zeichenketten in einem Text
US5758257A (en) * 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles
US5659771A (en) * 1995-05-19 1997-08-19 Mitsubishi Electric Information Technology Center America, Inc. System for spelling correction in which the context of a target word in a sentence is utilized to determine which of several possible words was intended
US5875443A (en) * 1996-01-30 1999-02-23 Sun Microsystems, Inc. Internet-based spelling checker dictionary system with automatic updating
US5963965A (en) * 1997-02-18 1999-10-05 Semio Corporation Text processing and retrieval system and method
US6047300A (en) 1997-05-15 2000-04-04 Microsoft Corporation System and method for automatically correcting a misspelled word
US5892919A (en) * 1997-06-23 1999-04-06 Sun Microsystems, Inc. Spell checking universal resource locator (URL) by comparing the URL against a cache containing entries relating incorrect URLs submitted by users to corresponding correct URLs
US6081774A (en) * 1997-08-22 2000-06-27 Novell, Inc. Natural language information retrieval system and method
US6272456B1 (en) * 1998-03-19 2001-08-07 Microsoft Corporation System and method for identifying the language of written text having a plurality of different length n-gram profiles
US6424983B1 (en) * 1998-05-26 2002-07-23 Global Information Research And Technologies, Llc Spelling and grammar checking system
US6006225A (en) * 1998-06-15 1999-12-21 Amazon.Com Refining search queries by the suggestion of correlated terms from prior searches
US6144958A (en) * 1998-07-15 2000-11-07 Amazon.Com, Inc. System and method for correcting spelling errors in search queries
US6636849B1 (en) * 1999-11-23 2003-10-21 Genmetrics, Inc. Data search employing metric spaces, multigrid indexes, and B-grid trees
US6772150B1 (en) * 1999-12-10 2004-08-03 Amazon.Com, Inc. Search query refinement using related search phrases
US6918086B2 (en) 2000-03-28 2005-07-12 Ariel S. Rogson Method and apparatus for updating database of automatic spelling corrections
US6684201B1 (en) 2000-03-31 2004-01-27 Microsoft Corporation Linguistic disambiguation system and method using string-based pattern training to learn to resolve ambiguity sites
US6701309B1 (en) * 2000-04-21 2004-03-02 Lycos, Inc. Method and system for collecting related queries
US6616704B1 (en) * 2000-09-20 2003-09-09 International Business Machines Corporation Two step method for correcting spelling of a word or phrase in a document
US6785677B1 (en) * 2001-05-02 2004-08-31 Unisys Corporation Method for execution of query to search strings of characters that match pattern with a target string utilizing bit vector
US7016829B2 (en) 2001-05-04 2006-03-21 Microsoft Corporation Method and apparatus for unsupervised training of natural language processing units
US7076731B2 (en) 2001-06-02 2006-07-11 Microsoft Corporation Spelling correction system and method for phrasal strings using dictionary looping
US6820075B2 (en) * 2001-08-13 2004-11-16 Xerox Corporation Document-centric system with auto-completion
US20040073333A1 (en) 2001-11-27 2004-04-15 Brill Eric A. System, method, and program for sorting objects
US7194684B1 (en) * 2002-04-09 2007-03-20 Google Inc. Method of spell-checking search queries
US7113950B2 (en) 2002-06-27 2006-09-26 Microsoft Corporation Automated error checking system and method
US7051023B2 (en) * 2003-04-04 2006-05-23 Yahoo! Inc. Systems and methods for generating concept units from search queries
US8666983B2 (en) 2003-06-13 2014-03-04 Microsoft Corporation Architecture for generating responses to search engine queries
US7617202B2 (en) 2003-06-16 2009-11-10 Microsoft Corporation Systems and methods that employ a distributional analysis on a query log to improve search results
US7254774B2 (en) 2004-03-16 2007-08-07 Microsoft Corporation Systems and methods for improved spell checking
GB0413743D0 (en) * 2004-06-19 2004-07-21 Ibm Method and system for approximate string matching
US20060112091A1 (en) * 2004-11-24 2006-05-25 Harbinger Associates, Llc Method and system for obtaining collection of variants of search query subjects

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8321471B2 (en) 2004-03-16 2012-11-27 Microsoft Corporation Error model formation
JP2011023007A (ja) * 2009-07-17 2011-02-03 Nhn Corp 統計データに基づくユーザクエリ校正システムおよび方法
JP2015501457A (ja) * 2011-06-27 2015-01-15 アマデウス エス.アー.エス.Amadeus S.A.S. 検索要求を処理する方法及びシステム
JP2014106982A (ja) * 2012-11-28 2014-06-09 Estsoft Corp 自動完成質疑語提供システム、検索システム、自動完成質疑語提供方法並びに記録媒体
JP2014194774A (ja) * 2013-03-28 2014-10-09 Estsoft Corp 誤打校正システム及び誤打校正方法
JP2017059216A (ja) * 2015-09-14 2017-03-23 ネイバー コーポレーションNAVER Corporation クエリ校正システムおよび方法

Also Published As

Publication number Publication date
US20070106937A1 (en) 2007-05-10
KR20060043682A (ko) 2006-05-15
EP1577793A3 (en) 2007-05-02
US8321471B2 (en) 2012-11-27
US20050210017A1 (en) 2005-09-22
US7254774B2 (en) 2007-08-07
CN100517301C (zh) 2009-07-22
CN1670723A (zh) 2005-09-21
EP1577793A2 (en) 2005-09-21
US20050210383A1 (en) 2005-09-22

Similar Documents

Publication Publication Date Title
JP2005267638A (ja) 改善されたスペルチェックのためのシステムおよび方法
US7574348B2 (en) Processing collocation mistakes in documents
Cucerzan et al. Spelling correction as an iterative process that exploits the collective knowledge of web users
Snover et al. Ter-plus: paraphrase, semantic, and alignment enhancements to translation edit rate
US7478033B2 (en) Systems and methods for translating Chinese pinyin to Chinese characters
JP5497048B2 (ja) コンパラブルコーパスを使用する固有表現の翻字
Saloot et al. An architecture for Malay Tweet normalization
JP5107556B2 (ja) 改善された中国語−英語翻訳ツール
JP4900947B2 (ja) 略語抽出方法、略語抽出装置およびプログラム
JP4298342B2 (ja) 重要度算出装置
JP2005326952A (ja) 概念辞書への単語登録方法、装置、およびプログラム
JP2009176148A (ja) 未知語判定システム、方法及びプログラム
Martynov et al. Augmentation methods for spelling corruptions
Zhang et al. Phrasal paraphrase based question reformulation for archived question retrieval
JP5495425B2 (ja) 未知語を含む文章を修正するための文章修正プログラム、方法及び文章解析サーバ
Zin Social Media Text Normalization
JP2017117109A (ja) 情報処理装置、情報処理システム、情報検索方法、及びプログラム
JP2022014400A (ja) 重要技術語取得装置、重要技術語取得方法、およびプログラム
Cucerzan A case study of using web search statistics: case restoration
Li et al. An Error Classification-Based Query Error Correction Method in Chinese Search Engine
Kovács Efficient dictionary matching of character stream
KR101158331B1 (ko) 띄어쓰기 일관성 검사 방법
JP2011113097A6 (ja) 未知語を含む文章を修正するための文章修正プログラム、方法及び文章解析サーバ
Chau et al. Processing and analysis of search query logs in Chinese
Balagadde et al. Non-Word Error Detection for Luganda

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080314

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090728

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091222