JP4866421B2 - ユーザの自己修正する検索動作の分析により検索文字列の代替スペルを特定する方法 - Google Patents

ユーザの自己修正する検索動作の分析により検索文字列の代替スペルを特定する方法 Download PDF

Info

Publication number
JP4866421B2
JP4866421B2 JP2008526025A JP2008526025A JP4866421B2 JP 4866421 B2 JP4866421 B2 JP 4866421B2 JP 2008526025 A JP2008526025 A JP 2008526025A JP 2008526025 A JP2008526025 A JP 2008526025A JP 4866421 B2 JP4866421 B2 JP 4866421B2
Authority
JP
Japan
Prior art keywords
string
search
user
spelling
change
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.)
Expired - Fee Related
Application number
JP2008526025A
Other languages
English (en)
Other versions
JP2009505221A (ja
Inventor
エリック アール. ヴァドン
ロナルド エム. ホイットマン
ランダル エム. ヘンネ
Original Assignee
アマゾン テクノロジーズ インコーポレーテッド
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 アマゾン テクノロジーズ インコーポレーテッド filed Critical アマゾン テクノロジーズ インコーポレーテッド
Publication of JP2009505221A publication Critical patent/JP2009505221A/ja
Application granted granted Critical
Publication of JP4866421B2 publication Critical patent/JP4866421B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3338Query expansion
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access

Landscapes

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

Description

本発明は、検索エンジンにサブミットされた検索文字列の代替スペルを特定する方法を含むスペル修正アルゴリズムに関する。
多くのワールドワイドウェブサイト及びオンラインサービスは、ユーザが興味のあるアイテムを見つけるのを支援するために、検索エンジンシステム(「検索エンジン」)を提供する。例えば、多くのウェブサイトは、ウェブページ及び他のタイプのインターネットコンテンツを見つけるためにインターネット検索エンジンを提供し、また、LexisNexis及びWestlawのようなオンラインサービスは、記事、法廷意見および他のタイプの刊行物を見つけるために検索エンジンを提供する。さらに、オンライン商店主は、ユーザが電子カタログに記載された製品及び他のタイプのアイテムを見つけるのを支援するために、一般に検索エンジンを提供する。
テキストベースの検索エンジンを使用して検索を実行するために、ユーザは、検索文字列を含むもしくは検索文字列から成る検索クエリーをサブミットする。検索文字列は、単一の検索語(例えば“Olympics”)もしくは複数の検索語(例えば“Olympic marathon”)から成ることができる。検索フィールド識別子および論理演算子のような他のタイプの要素も、検索クエリーに含まれることができる。検索エンジンのクエリーサーバは、検索クエリーを処理し、検索文字列に一致する任意のアイテムを特定する。クエリーサーバプログラムによって特定されたアイテム(ウェブページ、ニュース記事、製品など)のセットは、「検索結果セット」と呼ばれ、また、見つけ出されたアイテムのリストとしてユーザに提示される。ウェブベースのインプリメンテーションにおいて、検索結果セットは、通常、見つけ出されたアイテムのハイパーテキストのリストとしてユーザに提示される。
タイプミスをするもしくは用語を思い出さないことにより、検索エンジンのユーザが検索文字列中の用語をミススペルする場合、ミススペルされた用語は、一般に、検索によって網羅されたデータベース用語のうちのいずれとも一致しない、あるいは、ユーザが意図しなかったデータベース用語と一致するであろう。したがって、検索エンジンは、検索結果null(空)を返す、或いは、たとえ有るとしても、ユーザの目的に関連するアイテムをほとんど含まない検索結果セットを返す場合がある。この問題を軽減するために、いくつかの検索エンジンは、ユーザが入力した検索文字列にスペルが類似する代替文字列を提示する。しかしながら、これらの代替検索文字列は、ユーザの意図を表さないか、もしくはユーザにとって有用ではないことが多い。
本発明は、STRING1からSTRING2への変更のような、ユーザにとって有用であろう検索文字列のスペル変更を特定するための、コンピュータにインプリメントされたプロセスを提供する。プロセスは、ユーザによってなされたスペル変更の自己修正を考慮に入れ、このスペル変更の自己修正は、検索エンジンユーザの母集団の検索履歴がプログラム的に分析されることにより検出される。その結果、特定されたスペル変更は、ユーザによってサブミットされた検索文字列を修正もしくは訂正するために非常に有用となる傾向を有する。
一実施形態では、スペル変更イベントは、個々のユーザによってサブミットされた検索文字列のシーケンスを分析することにより検出される。例えば、ユーザが第1の検索文字列をサブミットし、続いて第2の検索文字列をサブミットすると、第1の検索文字列と第2の検索文字列とがスペルで十分に類似する場合、サブミッションのペアは、スペル変更イベントとして扱われることができる。2つのサブミッション間の時間の合計、および/または、(もしあれば)2つのサブミッション間でユーザによって実行されたアクションもまた評価されることができ、サブミッションのペアが意図したスペル修正として解釈されるべきかどうか、あるいはそれがどの程度まで解釈されるべきかどうかが決定され、したがって考慮に入れられる。
このプロセスを通じて検出されたスペル変更イベントは、ユーザの母集団の全体にわたって集計され、ユーザにとって有用であろうスペル変更を特定もしくは予測するための集計基準に基づいて、プログラム的に分析される。例えば、プロセスは、STRING1を検索するユーザが、スペルが類似するSTRING2の検索から利益を得るであろうと予測することができる。この予測は、例えば、次に述べる1つ以上の内容を考慮に入れることができる:(1)STRING1を検索するユーザがその後、STRING2を比較的頻繁に検索するかどうか;(2)STRING1からSTRING2へのスペル変更が、STRING2からSTRING1へのスペル変更よりも著しく頻繁に生じるかどうか。特定の検索クエリーが成功したかどうかを反映するアクションのような、他のタイプのユーザアクションが、追加的もしくは代替的に考慮に入れられることができる。
潜在的に有用であると特定されたスペル変更は、ユーザがアイテムを見つけるのを支援する様々な方法で使用され得る。例えば、検索を行なうためにユーザが検索文字列をサブミットする場合、スペルが類似する1つ以上の代替文字列が、ユーザに対して提示され得る。あるいは、サブミットされた検索文字列が、自動的に代替文字列に置き換えられ得る。あるいは、オリジナルの文字列と代替文字列との論理的なORを取ることにより、クエリーが自動的に拡大され得る。
本発明は、様々な異なるタイプのアイテムすべての検索を促進するために使用され得る。アイテムは、ウェブサイト、ウェブページ、他のタイプのドキュメント、ニュース記事、ジャーナル記事、電子カタログに記載された製品、オークション、ビジネスリスト、企業イントラネット上のドキュメント、人々、画像、音楽ファイル、ポッドキャスト、ビデオクリップ、ウェブログ、およびテレビ番組を含むが、これらに制限されない。さらに、本発明は、テキストベースの検索をサポートする任意のタイプの対話型のシステムの一部としてインプリメントされ得る。対話型のシステムは、ウェブサイトシステム、オンラインサービスネットワーク、双方向テレビシステム、および個人の特性の音声を通じた発音による検索を支援するシステムを含むが、これらに制限されない。
本発明のスペル変更分析法はまた、ユーザによってなされたスペル変更を分析するために、ドキュメントスペルチェックプログラムを通じて使用されることもできる。さらに、有用であると特定されたスペル変更は、ユーザがドキュメント中のスペルエラーを修正するのを支援するために使用されることができる。
従って、本発明は、ユーザが使用する端末装置と、前記端末装置とネットワークを介して接続された、1台以上の計算機を含むサーバ装置とを備えるコンピュータシステムにおいて、前記サーバ装置が実行する方法であって、前記サーバ装置が、検索文字列スペル変更イベントを検出するために、前記端末装置から受信した複数のユーザそれぞれの検索文字列サブミッションを分析することを含む。検索文字列スペル変更イベントそれぞれは、ユーザによって入力された第1の検索文字列を、前記端末装置が前記サーバ装置の検索エンジンにサブミットし、続いて、ユーザによって入力された、スペルが前記第1の検索文字列に類似するが前記第1の検索文字列とは異なる第2の検索文字列を、前記端末装置が前記サーバ装置の前記検索エンジンにサブミットするイベントである。特定のスペル変更がユーザにとって有用かどうかを評価するための集計基準に基づいて、少なくとも部分的に、前記サーバ装置が、検出された前記検索文字列スペル変更イベントを分析することにより、前記検索文字列サブミッションに含まれている複数の検索文字列それぞれについて、それぞれの前記検索文字列の1つ以上の代替スペルが特定される。検出された前記検索文字列スペル変更イベントを分析することは、前記サーバ装置が前記端末装置から受信した、前記検索文字列スペル変更イベントが起こったブラウジングセッションの一部として行われた他のユーザアクションに、少なくとも部分的に基づいて、前記サーバ装置が検索文字列スペル変更イベントに重み付けすることを含む。一実施形態では、文字列Bが文字列Aの有用な代替スペルかどうかを評価することは、文字列Aから文字列Bへのスペル変更が文字列Bから文字列Aへのスペル変更よりも著しく頻繁に起こるかどうかを評価することを含む。
さらに、本発明は、複数のユーザの検索履歴を格納するデータリポジトリを備えるコンピュータシステムを含む。検索履歴は、検索を行なうために前記ユーザによって検索エンジンにサブミットされた検索文字列を特定する。前記コンピュータシステムは、さらに、前記検索履歴中の検索文字列スペル変更イベントを検出するスペル変更検出コンポーネントを備える。検索文字列スペル変更イベントそれぞれは、ユーザが、第1の検索文字列をサブミットし、続いて、スペルが前記第1の検索文字列に類似するが前記第1の検索文字列とは異なる第2の検索文字列をサブミットするイベントである。前記システムは、さらに、集計基準に基づいて検出された前記検索文字列スペル変更イベントを分析し、特定のスペル変更がユーザにとって有用かどうかを評価する分析コンポーネントを備える。前記分析コンポーネントは、前記検索文字列スペル変更イベントが起こったブラウジングセッションの一部として行われた他のユーザアクションに、少なくとも部分的に基づいて、検索文字列スペル変更イベントに重み付けする。
さらに、本発明は、少なくとも1人のユーザによって検索エンジンに別々にサブミットされた第1の検索文字列および第2の検索文字列を特定することと、前記第2の検索文字列が前記第1の検索文字列の有用な代替スペルを表すかどうかをプログラム的に評価することとを含むコンピュータにインプリメントされた方法を含む。前記評価することは、少なくとも、(1)前記第1の検索文字列および前記第2の検索文字列がスペルにおいて類似する程度、および(2)複数のユーザそれぞれによって、前記第1の検索文字列に対して行なわれた、検出されたスペル変更、を考慮に入れる。
さらに、本発明は、コンピュータにインプリメントされた検索文字列サブミッションを処理する方法を含む。前記方法は、検索を行うユーザによって検索エンジンにサブミットされた第1の検索文字列を受信することと、前記第1の検索文字列をサブミットした先のユーザによって行なわれた、検出されたスペル変更を考慮に入れて、前記第1の検索文字列の代替スペルを表す代替検索文字列を選択することとを含む。前記スペル変更は、ユーザの検索文字列サブミッションを比較することによって自動的に検出される。さらに、前記方法は、前記第1の検索文字列の受信に応じて、少なくとも、(a)前記ユーザに前記代替検索文字列を提示すること、または(b)前記第1の検索文字列を前記代替検索文字列に自動的に置き換えること、何れかを行うことを含む。
さらに、本発明は、複数のコンピューターユーザそれぞれによって行われたスペル変更を表しているスペル変更イベントデータを集計することと、少なくとも第1の文字列および第2の文字列について、前記第2の検索文字列が前記第1の検索文字列の有用な代替スペルを表すかどうかを評価するために、少なくとも、集計されたスペル変更イベントデータをプログラム的に分析することとを含むコンピュータにインプリメントされた方法を含む。前記評価の結果、前記第2の文字列が前記第1の文字列の有用な代替スペルであると特定される場合、第1の文字列から第2の文字列へのマッピングがコンピュータ記憶装置に生成される。一実施形態では、集計されたスペル変更イベントデータをプログラム的に分析する前記ステップは、第1の文字列から第2の文字列へのスペル変更が、第2の文字列から第1の文字列へのスペル変更よりも著しく頻繁に生じるかどうかを考慮に入れることを含む。
本発明のこれらおよび他の特徴は、以下にまとめられた図面に基づいて記述されるであろう。これらの図面およびそれらに関連する記述は、発明の特定の実施形態および変形例を図示するために提供されるものであり、発明の範囲を制限するものではない。
同一もしくは機能的に類似したコンポーネントを特定するために、図面の全体にわたって参照番号が繰り返し使用される。各参照番号の1桁目の数字は、参照されるアイテムが最初に現れる図面を特定する。
以下、図面を参照して本発明の特定の実施形態を説明する。これら実施形態、およびインプリメンテーションに特有なそれらの様々な詳細は、発明を図示するために示されるものであり、発明の範囲を制限するものではない。発明の範囲は特許請求の範囲により定められる。
I.概要
本発明の1つの様相は、検索エンジンユーザの母集団の「自己修正」アクションを検出および分析するための、コンピュータにインプリメントされたプロセスを含み、その後のユーザが検索クエリーを修正もしくは変更するのを支援するための情報を抽出する。一実施形態において、スペル変更イベントを検出するために、個々のユーザの検索文字列のサブミッションのシーケンスが分析される。例えば、ユーザがKIOTO PROTOCOLの検索を行ない、その後間もなく(おそらく1つ以上の他の検索クエリーをサブミットした後に)KYOTO PROTOCOLを検索すると仮定する。2つの検索文字列がスペルにおいて類似し、且つ接近した時間でサブミットされたので、一方の検索文字列から他方の検索文字列へのこの「遷移」は、スペル変更イベントとして扱われることができる。
このプロセスを通じて検出されるスペル変更イベントは、ユーザの全体にわたって集計され、その後のユーザにとって有用であろうスペル変更を特定するために、全体として分析される。このプロセスは、スペル変更イベントデータに対して1つ以上の統計規則を適用することを含むことができる。一例として、特定の検索文字列を修正しようとしたすべてのユーザのアクションに基づいて、ユーザが最も頻繁に遷移する類似したスペルの検索文字列を特定しようとする規則が適用され得る。この規則は、STRING1を修正しようと試みるユーザが、STRING2をサブミットすることにより、比較的頻繁にSTRING1を修正しようと試みる場合、STRING2はSTRING1に対する有用な代替であるという仮定に基づく。
別の例として、スペルが類似した2つの検索文字列であるSTRING1とSTRING2との間を遷移するユーザが、特定の方向、即ちSTRING1→STRING2もしくはSTRING2→STRING1の方向に、スペルが類似した2つの検索文字列であるSTRING1とSTRING2との間を遷移する傾向があるかどうかを考慮に入れるという「オッズ差」規則が適用され得る。この規則は、検索文字列を最初にミススペルするユーザが、多くの場合ミススペルの修正を試みるであろう一方、検索文字列を正確にスペルするユーザは、概して、ミススペルされたバージョンの文字列をサブミットし続けないであろうという仮定に基づく。例えば、ユーザがSTRING2をサブミットし、続いてSTRING1をサブミットするよりも著しく頻繁に、ユーザがSTRING1をサブミットし、続いてSTRING2をサブミットする傾向があることを、ユーザの母集団のクエリーサブミッションの履歴が明らかにすると仮定する。この履歴データに基づいて、オッズ差の規則は、STRING2をSTRING1の潜在的に有用な代替であると特定することができ、STRING1がSTRING2の有用な代替ではないと結論を下すことができる。異なる言い方をすれば、オッズ差の規則は、STRING2を、有望なSTRING1の「修正」バージョンであると特定することができる。
一実施形態では、有用でないであろうスペル変更を削除するためのフィルタとしてそれぞれが機能する複数の統計規則が、検出されたスペル変更に対して適用される。例えば、STRING1からSTRING2への所与のスペル変更について、STRING2をサブミットしたことによりSTRING1にスペル変更をするユーザが、比較的ほとんどいない場合、第1の規則は、このスペル変更をフィルタアウトする(即ち、STRING2を、STRING1の非有用な代替であると特定する)ことができる。この第1の規則によってスペル変更がフィルタアウトされない場合、オッズ差の規則は、STRING1からSTRING2への遷移がSTRING2からSTRING1への遷移よりもそれほど頻繁に起こっていなければ、スペル変更をフィルタアウトすることができる。
特定のスペル変更の有用性を評価するために、様々な他の規則および基準が、追加的もしくは代替的に使用されてもよい。例えば、分析は、特定の検索クエリーサブミッションが成功したかどうかを証明する或るクエリーサブミッション後のユーザアクションを考慮に入れることができる。例えば、分析は、ユーザが検索した結果によるブラウジングアクションが、別の類似したスペルの検索文字列にわたる1つの検索文字列の結果に、より大きなレベルの関心を明らかにするかどうかを考慮に入れることができる。
この分析プロセスを通じて特定される「修正された」検索文字列(「代替」文字列もしくはスペルとも呼ばれる)は、それらが、成功する場合もあり成功しない場合もある、クエリーを自己修正するユーザの試みに由来するので、技術的に正確でないスペルとなる場合がある。(従って、本明細書で使用される用語「正確な」及びその派生語は、「エラーのない」を完全には意味しない。)しかしながら、所与の文字列STRING1及び特定された「修正」バージョンのSTRING2については、STRING2は、概して、STRING1よりもスペルエラーがなさそうである。さらに、STRING2がミススペルされるかどうかにかかわらず、図示する実施形態においては、STRING2はSTRING1の有用な代替となりそうである。この点に関しては、有用な検索結果を提供するために検索されているデータリポジトリ内に、ミススペルされた用語が十分に頻繁に現われる場合のように、ミススペルされた用語を含む検索文字列は、いくつかの場合において有用となり得る。
以下の記述において、文字列Aから文字列Bへのスペル変更もしくは「遷移」は、A→Bあるいは(A,B)と表される。この遷移は即時である必要がない。例えば、ユーザは、A及びBをサブミッションする間に、1つ以上の介在するアクション(他の検索文字列のサブミッションを含む)を実行してもよい。ユーザにとって潜在的に有用なものとして、AからBへのスペル変更が選択される場合、検索文字列の順序付けされたペアは「マッピング」と呼ばれる。
II.検索エンジンコンポーネント(図1)
このサブセクションおよび以下のサブセクション中の記述は、本発明を実施する特定の方法の例示である。本発明を実施する他の方法は、当業者には明白であろう。
図1は、本発明の一実施形態に係る検索エンジンシステム100(「検索エンジン」)のコンポーネントおよび一般的なプロセスフローを示す。検索エンジン100は、PC、携帯情報端末、無線電話、TVセットトップボックスなどのようなユーザコンピューティングデバイス110によって、インターネット120のようなコンピュータネットワークを通じてアクセスされる。本発明はそのように制限されていないが、典型的には、検索エンジンシステム100はウェブサイトシステムの一部としてインプリメントされる。検索エンジン100はサーバシステム130を含み、サーバシステム130は、ユーザが検索を行なうことができる1つ以上のタイプのアイテム(ウェブページ、記事、製品など)の、即ちそれに関連づけられたアイテムコンテンツのリポジトリ132へのアクセスを提供する。
サーバシステム130は、ユーザコンピューティングデバイス110から要求を受信する。これらの要求は、アイテムコンテンツのリポジトリ132内に表されている希望のアイテムを見つけるために、ユーザによってサブミットされる検索クエリーを含む。検索クエリーはクエリープロセッサ135によって処理される。クエリープロセッサ135は、対応するアイテムを特定するために、1つ以上の検索インデックス140にアクセスする。いくつかの実施形態では、アイテムの異なるコレクションもしくはカテゴリーについて、異なるインデックスが提供されてもよい。例えば、検索エンジンシステムに関連した電子カタログを検索するために、1つ以上の他の検索インデックスが提供されてもよい一方、ワールドワイドウェブを検索するために、1つの検索インデックスが提供されてもよい。
図1に示されるように、サーバシステム130は、個々のユーザによってサブミットされた検索クエリーのシーケンスを反映する検索履歴を維持する。これらの検索履歴は、個々のユーザによって特定の検索クエリーがサブミットされたオーダーに関する情報を保存する、年代順のログファイルもしくはリレーショナルデータベースのような、任意の適切なタイプのデータリポジトリ150中で維持され得る。一実施形態において、それぞれの検索クエリーサブミッションについて記録されたイベントデータは、サブミットされた検索文字列(それは検索語をいくらでも含むことができる)、ユーザのブラウジングセッションのセッションID、および、適用可能な場合、検索したアイテムコレクション又はカテゴリーを含む。タイム/日付スタンプおよびユーザ識別子のような他のデータエレメントが含まれてもよい。いくつかの実施形態では、検索イベントデータが、他のタイプのユーザアクション(例えば、検索結果を「クリックスルーする」イベント、他のURLを選択するイベント、アイテムに関連するトランザクションなど)を記述するイベントデータと共に格納されてもよい。
図示する実施形態におけるスペル修正の特徴は、スペル変更アナライザー160を通じて、そして、スペル変更アナライザーによって生成される検索文字列修正マッピングを格納するマッピングテーブル180によって実現される。スペル変更アナライザー160は、(1)検索履歴リポジトリ150に格納されたイベントデータを分析し、ユーザによってなされたスペル変更を特定すること、および(2)その後の検索を行なうユーザにとってそのスペル変更が有用となりそうかどうかを評価するために、これらスペル変更を行うユーザのアクションを全体的に分析することの責任を負う。有用であると特定されたスペル変更は、マッピングテーブル180に格納され、それは次に、クエリープロセッサ135によって使用され、ユーザがユーザの検索クエリーを修正もしくは訂正するのを支援する。
一実施形態において、スペル変更アナライザー160は、同じブラウジングセッション(即ち同じユーザによる)の間にサブミットされた特定のペアの検索文字列のスペルを比較することにより、スペル変更を検出する。スペルは、編集距離アルゴリズム、および/または文字列のスペルを比較するための他のアルゴリズムを使用して比較され得る。この「セッションベースの」実施形態において、同じブラウジングセッション中の、スペルが類似した2つの検索文字列A及びBのユーザのサブミッションは、1つ以上の介在する検索文字列をユーザがサブミットしたかもしれないにもかかわらず、スペル変更イベントとして扱われることができる。他の実施形態においては、スペルが類似した2つの検索文字列のユーザのサブミッションは、介在する検索文字列がサブミットされなかった場合にのみ、あるいは、互いのサブミッションが、所定の時限もしくはクリック数内において生じた場合にのみ、スペル変更イベントとして扱われることができる。
一実施形態におけるAからBへの特定のスペル変更の有用性を評価するために、スペル変更アナライザー160は、Aの修正を試みるユーザが、どれくらい頻繁に、BをサブミットすることによりAの修正を試みるかを考慮する(以下で説明されるように、これは、Aに対してスペル変更を加えるユーザが、BをサブミットすることによりAに対してスペル変更を加えるであろう確率を計算することにより達成され得る)。さらに、上記したように、スペル変更アナライザー160は、ユーザのBからAへの遷移よりも、ユーザのAからBへの遷移が著しく頻繁であるかどうかを考慮することもできる。その分析は、最新のN日又は数週間のデータのような、イベントデータの特定の時間セグメントに制限されてもよい。あるいは、その分析は、収集した全てのイベントデータを考慮に入れることができるが、より最近のイベントには、より大きな重みが適用され得る。
図1において「他のユーザイベントデータ」と表記される矢印によって示されるように、スペル変更アナライザー160は、特定のスペル変更の有用性を評価する際に、1つ以上の他のタイプのユーザアクションを追加的もしくは代替的に考慮してもよい。例えば、AからBへの所与のスペル変更については、スペル変更アナライザー160は、AからBへ切り換えたユーザが、Aの結果よりもBの結果でより満足したかどうかを反映するユーザアクションを考慮することができる。例えば、ユーザが、通常、Aの検索結果よりもBの検索結果を閲覧してより多くの時間を過ごすという事実は、BがAに対する有用な置き換えであるという証拠と考えられてもよい。
さらに、図1に示される「他のユーザイベントデータ」は、A及びBのサブミッションの間にユーザによって実行された、介在するアクションに関するデータを含んでもよい。例えば、これら介在するアクションは、ユーザがBをサブミットする前に、既に新しい検索目的に「移動」していたであろうことを明らかにすることができる。例えば、これは、ユーザがAを検索し、その後この検索によって場所が指定されるアイテムを購入もしくはダウンロードし、その後Bを検索する場合に正しいであろう。ユーザの介在するアクションが、A及びBのサブミッション間の弱い結びつきを明らかにする場面において、この特定の、AからBへのユーザの遷移は無視されてもよく、あるいは、より少ない重みが与えられてもよい。
スペル変更アナライザー160の特定の実施形態は、図4〜7に示され、以下のセクションIVにおいて記述される。
スペル変更アナライザー160の出力は、A→Bの形式をした、検索文字列マッピングのデータセットである。ここで、BはAの修正バージョンである(Aの「代替」バージョンもしくはスペルとも呼ばれる)。例えば、そのようなマッピングの1つは、修正バージョン“Aldous Huxley”に対して、キー検索文字列“Aldus Huxley”をマッピングすることができる。所与の検索文字列は、1つ以上の置き換え候補に対してマッピングされてもよい。例えば、第2の修正バージョン“Aldus Huxly”に対して、“Aldus Huxley”がマッピングされてもよい。上記の例におけるマッピングは、フレーズからフレーズへのマッピング(即ち、検索文字列がそれぞれ複数の用語を含む)の形式をしているが、さらに、個々の用語のマッピング(例えば、KiotoからKyotoへの)が生成されてもよい。さらに、マッピングに含まれる検索文字列は、アルファベット文字および空白から成る必要はなく、むしろ、数字、記号、および句読点のような、検索文字列に含まれることができる他のタイプの文字を含んでもよい。
図1に示されるように、図示する実施形態におけるスペル変更アナライザー160は、さらに、それぞれのマッピングについて、確率値Pの形式でスコアを出力する。例えば、“Aldous Huxley”への“Aldus Huxley”のマッピングは、0.8の確率値を持つことができ、また、“Aldus Huxly”への“Aldus Huxley”のマッピングは、0.1の確率値を持つことができる。そのような確率値はそれぞれ、一般に、関連する修正が技術的に正確か、もしくはそうでなければ、ユーザに対して有用であろう確率を表す。一実施形態では、確率値Pはそれぞれ、AをサブミットするユーザがAに対して修正を試みる場合に、Bをサブミットすることによりユーザが修正するであろう見込みを、より明確に表す。
図1に示されるように、スペル変更アナライザー160によって生成されるマッピングは、関連する確率値を含み、それぞれのテーブルエントリー(2つのエントリーが示されている)として、マッピングテーブル180に格納される。代わりに、マッピングは別の形式で格納されてもよい。例えば、確率値が除外されてもよい。別の例として、文字列から文字列へのマッピングのそれぞれに対して個別のテーブルエントリーを持つのではなく、単一のテーブルエントリーが、検索文字列の代替スペルのすべてをランクしたリストに対して、所与の検索文字列をマッピングしてもよい。さらに別の例として、所与のマッピングの検索文字列A及びBの両方を格納するのではなく、これらの2つの文字列のうちの一方が、他方を生成するために必要とされる1つ以上の編集の指示と共に格納されてもよい。
典型的には、何千から何百万もの異なるエントリーが、マッピングテーブル180に含まれる。各々のマッピングテーブル180は、特定の入力文字列Aを、特定の代替もしくは修正されたスペルBへマッピングする。典型的に、そのようなマッピングのそれぞれは、検索エンジン100のユーザによってなされた共通のミススペル、およびミススペルを修正するために行なわれた共通のスペル変更を表す。マッピングに含まれる検索文字列は、アルファベット文字列から成る必要はなく、むしろ、数字、およびおそらくは他のタイプの文字を含んでもよい。典型的には、テーブル180に含まれるマッピングは、関連する時限中に観測されたすべてのスペル変更の比較的小さなサブセット、および、特に最も有用であると特定されたスペル変更を表す。以下に記述されるように、マッピングテーブル180は、時間とともに再生成もしくは更新されることができ、それにより、所与の任意の時間におけるマッピングテーブル180に表されたスペル変更は、現在の検索パターンおよびユーザの動作に密接に対応する。
マッピングテーブルエントリー(A→B,P)のうちのいくつかあるいはすべては、特定の検索インデックスもしくはアイテムコレクションに関連して格納され得る。例えば、検索エンジンのユーザインタフェースが、ユーザに、ユーザの検索を本のタイトルに制限することを可能にする場合、マッピングの個別のセットは、ユーザが本を検索するアクションにのみ基づいて生成されてもよい。ユーザが本の検索を行なうのを支援するために、コレクションに特定のこのマッピングのセットが単独で使用されてもよい。この特徴をインプリメントするために、個別に検索可能であるそれぞれのアイテムコレクションについて、個別のマッピングテーブル180が生成されてもよい。あるいは、それぞれのマッピングテーブルエントリーはフィールドを含むことができ、フィールドは、エントリーが対応する1つ以上の検索インデックスを特定する。
以下に記述された特定の実施形態では、スペル変更アナライザー160は、1日当たり1回実行し、収集したイベントデータのうち、価値がある最近のN日分を操作するオフラインプロセスとして動作する。ここで、Nは典型的に3〜100の範囲の整数である。この実施形態におけるマッピングテーブル180は、このプロセスが実行される度に再生成される。したがって、マッピングテーブルは、最も最近のユーザの検索動作を強く反映する。さらに、最も最近のユーザのクエリー検索動作の影響を増大させるために、分析されたイベントデータに対して、線形もしくは非線形の減衰アルゴリズムが適用されることができ、それにより、より古い検索クエリーサブミッションには、より新しいものよりも少ない重みが与えられることができる。以下に記述する実施形態では1日の実行間隔が使用されるが、代わりに、1時間、12時間、1週間もしくは1か月のような他の実行間隔が使用されてもよい。さらに、マッピングテーブル180を周期的に再生成するのではなく、選択されたテーブルエントリーを連続的にもしくは周期的に更新するプロセスが使用されてもよい。
動作中、クエリープロセッサ135は、検索クエリーサブミッションに応じてマッピングテーブル180にアクセスし、ユーザの検索文字列についての代替スペルを探査する。特に、検索クエリーを受信すると、クエリープロセッサ135は、1つ以上の検索インデックス140にアクセスして、検索クエリーに対応するアイテムを特定し、さらに、マッピングテーブル180にアクセスして、ユーザによって入力された検索文字列について、何らかの代替文字列があるかどうかを決定する。検索クエリーが特定のアイテムインデックスを指定する場合、任意で、テーブル探査動作が、このインデックスに対応するマッピングの範囲に制限されてもよい。
クエリープロセッサ135がテーブル180に如何なる代替文字列も見つけない場合、検索エンジン100は、単に、検索結果(対応するアイテムのリスト)をユーザに返すことができる。クエリープロセッサ135が1つ以上の代替を見つける場合、クエリープロセッサ135は、ユーザが検索を行なうのを支援するために、様々なアクションのうちの1つを実行することができる。例えば、検索エンジン100は、1つ以上の代替スペルをユーザに提示することができる。あるいは、検索エンジンは、ユーザが入力した検索文字列を、マッピングテーブル180から検索された代替文字列に自動的に置き換えることができる。図8に示され、以下のセクションVにおいて記述される一実施形態では、クエリープロセッサ135は、いずれかの検索結果が見つけられたかどうかに基づいて、そしてさらに、関連するマッピングの確率値Pに基づいて、これら2つのアクション(自動的に検索文字列を置き換えること 対 代替を提示すること)間から選択する。
いくつかの実施形態では、クエリープロセッサ135は、ユーザの検索クエリーの範囲を増大させるためのクエリー展開ツールとして、追加的もしくは代替的にマッピングテーブル180を使用することができる。これは、オリジナルの検索文字列と、テーブル180から検索された1つ以上の代替文字列との論理的なORを取ることにより達成され得る。
図1に示されるクエリープロセッサ135及びスペル変更アナライザー160は、1台以上の汎用計算機によって実行されるソフトウェアモジュール中にインプリメントされ得る。マッピングテーブル180は、Bツリーもしくは他の任意の1以上の適切なデータ構造としてインプリメントされることができ、例えば、サーバの、半導体ランダムアクセスメモリもしくは磁気ディスクドライブ記憶装置に維持されることができる。図1に示されたデータリポジトリ132、140、150は、データベース、フラットファイル、および/または他のタイプのコンピュータベースの記憶装置システムとしてインプリメントされることができる。
III.ユーザインタフェース例
図2および3は、図1のシステムによって提供され得る検索ユーザインタフェースの一般形式を示す。この特定の例では、検索インタフェースは、ウェブブラウザによって表示されるウェブページを使用してインプリメントされる。他の実施形態では、検索インタフェースは、ユーザコンピューティングデバイス110上で動作する非ブラウザ型のアプリケーションプログラムの一部であってもよい。あるいは、検索インタフェースは、音声ベースのインタフェースとしてインプリメントされてもよく、それを通じて、ユーザは、ユーザの検索クエリーの文字を発音することができる。
図2は、ユーザが検索クエリーを入力しサブミットすることができる検索ページ210を示す。この例では、ユーザは、検索フィールド220へ検索文字列を入力し、次に、ボタン230を選択することにより、検索を実行することができる。さらに、ドロップダウンリストを使用して、ユーザは、アイテム(例えばウェブサイト、ニュース記事、本、画像など)の特定のコレクションもしくはカテゴリーに、検索を制限することを選択することができる。あるいは、特定のアイテムコレクションもしくはカテゴリーに検索の範囲を制限する能力が除外されてもよい。図2には示されないが、検索インタフェースは、例えば、主題、著者、タイトル、および製作者などのような、特定のアイテム属性に対応する個別の検索フィールドも含むことができる。
図3は、図2に示される検索クエリーに対応する検索結果ページの例を示す。この例では、検索結果ページは、ユーザが提供した検索文字列“Aldus Huxley”に対して一致するアイテムの検索結果リスト300を表示し、さらに、代替文字列310である“Aldous Huxley”を表示する。代替スペル“Aldous Huxley”310は、ユーザによって選択されることができ、新しい検索クエリー中の代替文字列をサブミットするためのハイパーテキストリンクとして表示される。この例では、ユーザに単一の代替文字列310が提示されているが、検索結果ページ上で、各々が別々に選択可能である2つ以上の代替文字列がユーザに提示されてもよい。
図3に示される実施形態において、提示されたスペル変更が検索語のすべてを含まない場合、1以上の訂正された用語が強調される。したがって、図3の例では、提示された置き換え310中の用語“Aldous”が協調されており、それが、ユーザによって入力された対応する用語“Aldus”と異なることが示されている。
一実施形態では、検索フィールド220へ文字列を入力することによってではなく、提示された代替文字列310をクリックすることによりサブミットされる検索クエリーは、マッピングテーブル180を生成する目的のためのスペル変更アナライザー160によって、考慮に入れられないであろう。これは、提示された代替文字列が有効ではない「自己達成的な予言」効果を避けるためである。しかし、多くの場合、ユーザは検索結果ページから代替文字列を選択するので、このことは単に繰り返し提示される。あるいは、そのようなクエリーサブミッションは考慮されることができ、より少ない重みが与えられる。
IV.スペル変更アナライザー(図4〜7)
図4は、本発明の一実施形態に係るスペル変更アナライザー160のブロック図である。この実施形態では、スペル変更アナライザー160は、スペル変更イベント検出フェーズ、スペル変更イベント集計フェーズ、およびスペル変更フィルタリングフェーズの、3つの個別のフェーズを含むプロセスをインプリメントする。それぞれのフェーズは、それぞれのソフトウェアコンポーネント425、435、および445によってインプリメントされる。
図4に示されるように、マッピングテーブル180の新しいバージョンを生成するために、スペル変更アナライザー160が実行される度に、スペル変更イベント検出コンポーネント425は、最初に、イベントデータの最も最近のセットを検索し分析する。このイベントデータは検索クエリーサブミッションデータから成ることができ、あるいは、このイベントデータは、他のタイプのユーザアクション(例えば、閲覧、ダウンロード、および購入などのための、検索結果アイテムの選択)に関するイベントデータをさらに含んでもよい。この実施形態におけるそれぞれの記録されたイベントについて、イベントデータはセッションIDを含み、それにより、同じユーザのブラウジングセッションに対応するイベントが、直ちに特定され得る。図4において破線で示されるように、さらに、そのままのイベントデータが、イベント集計フェーズ435および/またはフィルタリングフェーズ445において追加的に分析されてもよい。
一実施形態では、スペル変更アナライザー160は、一日単位で実行され、先の24時間にわたって収集されたイベントデータを操作する。一実施形態において、スペル変更イベント検出フェーズ425の間に実行される処理は、図5に示され、以下の個別の表題において説明される。スペル変更イベント検出コンポーネント425の出力は、重み付けされたスペル変更イベント(A→B,W)のデータセット432である。それらの多くは、AからBへの同じスペル変更に対応することができる。以下で説明されるように、それぞれの重み値Wは、その後の分析に対応するイベントの重要性を表す。最も最近の時限について新しく生成されたデータセット432は、スペル変更イベントリポジトリ430に加えられる。
新しいデータセット432が一旦生成されると、スペル変更イベント集計コンポーネント435は、最新のN時限に対応するデータセット432を検索し、本発明に特有なスペル変更によってイベントを集計する。以下で説明されるように、一実施形態では、この集計タスクは、連続的により古い時限からのデータセットに、連続的により少ない重みを与えることを含む。スペル変更イベント集計フェーズの間に実行される処理は、図6に示され、以下で説明される。
集計フェーズ435が完了した後、スペル変更フィルタリングコンポーネント445は、所定の基準を満たさないスペル変更をフィルタアウトする。(以下に記述されるプロセスフローにおいて、スペル変更イベント集計フェーズの間に、いくつかのスペル変更もまたフィルタアウトされる。)例えば、一実施形態では、「オッズ差」のスレショルドを満たさないスペル変更はフィルタアウトされる。一実施形態では、スペル変更フィルタリングフェーズ445の間に実行される処理は、図7に示され、以下に記述される。
フェーズ1:スペル変更イベントの検出(図5)
図5は、図4のスペル変更イベント検出フェーズ425をインプリメントするために使用され得るプロセスフローを示す。状態505では、分析のために履歴ログファイル又はセグメントが選択される。一実施形態では、検出プロセス425は、実行される度に、最も最近の時限(例えば最新の24時間)について、クエリーサブミッションデータとおそらく他のタイプのイベントデータとを含む履歴ファイルを分析する。しかしながら、いくつかのインプリメンテーションでは、同じ時限をカバーする複数の履歴ファイルが別々に分析されてもよい。例えば、登録されたユーザ対未登録のユーザを表す履歴ファイルが、互いに別々に分析されることができ、これにより、登録されたユーザのアクションには、より大きな重みが与えられることができる。したがって、複数の履歴ログファイル又はセグメントが分析されるであろう可能性を提供するために、図5中にループ(ブロック505および565によって表される)が示されている。
次のものは、2つの仮説的なブラウジングセッションについて分析するために検索され得る、個別の検索クエリーサブミッションを分離するために使用されるカンマを伴っている検索履歴データのセット例である。

セッションID12345についての検索履歴:
Aldus Huxley, Alldus Huxley, Aldous Huxley, George Orwell

セッションID56789についての検索履歴:
Aldous Hucksley, Brave New World, Aldous Huxley

さらに、インデックス又はコレクションの検索された識別子、イベントタイムスタンプ、および/またはユーザ識別子のような他の情報要素が、検索されるデータに任意で含まれることができる。典型的に、スペル変更イベント検出プロセス425の特定の反復中において検索および分析された検索履歴データは、数百、数千、もしくは数百万もの特定のユーザの検索履歴を含むであろう。
状態510では、検出プロセス425は、選択された履歴ファイル又はセグメント内でアイテムインデックスを任意に選択し、これにより、特定のインデックスを含む検索が互いに別々に分析されてもよい。その後、状態515では、特定のセッション識別子が選択される。
状態520では、検出プロセス425は、状態515において選択されたユーザセッションに関連する範囲内で動作し、ユーザによってサブミットされた検索クエリーQ,Q,Q,...Qから、すべての順序付けられた検索文字列のペア(A,B)を特定する。ここで、文字列Aは少なくとも4文字を有し、Bの前にサブミットされる(文字列Aが3文字もしくはそれ未満である場合のマッピングを排除するために、A≧4の制約が課される)。状態510において特定のインデックスが選択された場合、このインデックスに対応しない検索クエリーは無視される。上記の検索履歴サンプルのセッションID12345について、順序付けられた検索文字列ペアは、(“Aldus Huxley”,“Alldus Huxley”);(“Aldus Huxley”,“Aldous Huxley”);(“Aldus Huxley”,“George Orwell”);(“Alldus Huxley”,“Aldous Huxley”);(“Alldus Huxley”,“George Orwell”);(“Aldous Huxley”,“George Orwell”)である。セッションID56789について、順序付けられた検索文字列ペアは、(“Aldous Hucksley”,“Brave New World”);(“Aldous Hucksley”,“Aldous Huxley”);(“Brave New World”,“Aldous Huxley”)である。
或る類似性の基準に従うと、各ペアの文字列のスペルが十分に類似する場合、状態520において特定された検索文字列ペアは、スペル変更イベントを表すことができる。状態525及び530において、検出プロセス425は、各ペアについてそのような類似性の値を計算する。一実施形態では、これは、各ペア(A,B)の検索文字列間の編集距離E(文字の追加、削除および転置の回数)を計算することにより達成される。この目的のために、Levenshtein法もしくは他の任意の編集距離アルゴリズムが使用され得る。他の実施形態において、検索文字列の類似性の他の基準が、追加的もしくは代替的に使用されてもよい。例えば、文字列A及びBの発音(それは、Soundexのようなアルゴリズムを使用して決定され得る)が、考慮に入れられてもよい。
上記の例では示されなかったが、分析された検索履歴中に表されたすべての検索文字列は、まず最初に小文字(もしくは大文字)に変換されることができ、これにより、大文字使用時の差異が無視される。さらに、検索文字列は、例えば句読点および余分な空白を削除することにより、他の方法で標準化されることができる。
状態535では、検出プロセス425は、状態530において計算された編集距離を、スレショルドT1と比較する。検索文字列ペア(A,B)の編集距離がT1を越える場合、そのペアはさらなる考慮から除外される(状態545)。編集距離がT1以下に下がる場合、そのペアはスペル変更イベントであると特定される。編集距離が0である場合には、そのペアもまたフィルタアウトされてもよい。
一実施形態では、スレショルドT1は固定ではなく調整可能である。2つの文字列の類似性を表現する編集距離の基準の有効性が、文字列の長さに一部依存するので、これは有用である。例えば、短い文字列“Cats”と“Dogs”との間の編集距離は3であり、2つの単語は明白に異なる。しかしながら、より長い文字列“Alldus Huxly”と“Aldous Huxley”との間の編集距離もまた3であり、合理的に2番目は1番目の変形と考えられることができる。したがって、T1について使用される値は、関連する検索文字列の長さに正比例し得る。一実施形態では、例えば、T1は最小値1を有し、A内の7文字毎に1だけインクリメントされる。例えば、Aが6文字以下である場合は、T1=1であり、Aが7〜13文字である場合は、T1=2などである。ステップ520においてA≧4の制約が課されたので、Aが3文字以下となることはできないことに注意する。
状態540では、現在のスペル変更イベント(A,B)について、重みWが計算される。ユーザのA及びBのサブミッション間の「距離」もしくは「結びつき」の量を計るために、重みは部分的に使用され、従って、(A,B)が本当に自己修正するイベントである見込みを反映する。例えば、ユーザが、Aをサブミットした直後にBをサブミットした場合、このことは、同じ日にユーザが単にA及びBをサブミットした場合と比較して、BがAの自己修正であるという、より強い指示とみなされることができる。一実施形態では、重みは最大値から開始し、A及びBのサブミッション間に介在するそれぞれのイベントと共に、直線的にもしくは指数関数的に、減少もしくは減衰する。またユーザのブラウジング状況における変化(例えば、アイテムの購入)を証拠づけるような或るタイプのイベントが、他のタイプのイベントよりも、重み値のより大きな低下を引き起こしてもよい。介在するイベントの数とタイプとを分析するのではなく、重み値は、検索イベントタイムスタンプを使用して決定されることができる、A及びBのサブミッション間に経過した時間の合計に基づいて(且つ反比例して)もよい。
さらに、状態540における重み計算は、ユーザのアクションが、スペル変更が成功したことを明らかにする範囲を考慮に入れてもよい。例えば、Bを検索した直後に、ユーザが閲覧、ダウンロード、レンタル、および購入のために検索結果アイテムを選択した場合は、AからBへの遷移に関連付けられた重みは、適切に増大されることができる。
状態550〜565では、検出プロセス425は、残りの検索文字列ペア、ユーザ識別子、アイテムインデックス(考慮される場合)、および履歴ログ(複数のログ又はセグメントが処理される場合)について、状態520〜540間をループする。検出プロセス425の結果として生じる出力は、タプル(A,B,W)のデータセット432である。ここで、A及びBはスペル変更イベントの検索文字列の順序付けされたペアであり、Wはイベントの計算された重みである。さらに、そのようなイベントのそれぞれについて、その後の使用のために編集距離Eが格納されてもよい。図4に示されるように、重み付けされたスペル変更イベントのこのデータセット432は、それに対応する、例えば特定の日付のような時限と関連付けられて、イベントリポジトリ430に格納される。
図5に示されるプロセスに対して、多くの変形が可能であることは明白であろう。一例として、セッション毎に基づいて、各ユーザの検索クエリーサブミッションを分析するのではなく、ユーザの検索クエリーサブミッションは、それらが生じた場面におけるブラウジングセッションを考慮せずに分析されることができる。例えば、ユーザが第1の検索クエリーをサブミットし、そして、第1の検索クエリーのスレショルド時限内で、もしくはクリックのスレショルド回数内で(しかし異なるブラウジングセッション中に)、第2の検索クエリーをサブミットすれば、たとえ2つのサブミッションが異なるセッションで生じたとしても、第1のクエリーから第2のクエリーへのこの遷移は、ブロック525〜550において、潜在的なスペル変更イベントとしてみなされることができる。
フェーズ2:スペル変更イベントの集計(図6)
図6は、図4のスペル変更イベント集計プロセス又はフェーズ435のプロセスフローを示す。このプロセス435は、図5のプロセスの完了時に実行される。状態605では、最も最近の時限Nについての、重み付けされたスペル変更イベントのデータセット432が検索される。ここで、Nは選択された整数である。Nの値は、最近のイベント履歴データの量を、もしくは、マッピングテーブル180を生成するために使用される「ルックバック範囲」を指定する。例えば、各データセット432が、1日周期およびN=10にそれぞれ対応すれば、マッピングテーブル180は、先の10日間に生じるユーザアクションに基づくであろう。
状態610では、最も最近の時限を除く全ての時限に関連付けられたスペル変更イベントの重みWは、「時間減衰され」る。時間減衰は、スペル変更イベントの重みを、その経過時間に正比例して減少させるプロセスを意味する。例えば、図4の検出プロセス425によって、1日前にタプル(“Aldus Huxley”,“Aldous Huxley”,0.8)が生成されたと仮定する。さらに、2日前にタプル(“Alldus Huxley”,“Aldus Huxley”,0.4)が生成されたと仮定する。1日当たりの減衰係数に0.5が使用される場合、その複数のタプルの重みは、それぞれ0.4と0.1とに減衰されるであろう。この例では線形の減衰関数が使用されるが、例えば指数関数のような、非線形の減衰関数が使用されてもよい。イベント重みを時間減衰させることの効力は、より古いスペル変更イベントに対するよりも、最近のスペル変更イベントに対して、より大きな重みを与えることである。
古くなったイベントが時間減衰された後、結合されたデータセット中の複数のタプルは、それらイベントが表す特定のスペル変更に従ってグループ化される。大文字使用でのみ異なる検索文字列は、このタスクの目的のために、同じ検索文字列として扱われてもよい。例えば、“kioto”から“Kyoto”へのスペル変更、および“Kioto”から“Kyoto”へのスペル変更は、同じ検索文字列として扱われることができる。
次に、AからB(状態615)への特定のスペル変更のそれぞれの状況では、状態620において、集計プロセス435が確率値Pを計算する。一実施形態では、確率値Pは、一般に、Aを検索するユーザが続いてBを検索する確率を表す。また、この確率値は、一般に、(1)文字列Bが技術的に正確にスペルされているかどうか、および(2)文字列Bが文字列Aに対する有用な代替であるかどうか、の両方の良い指標である。Pを計算するために、様々な異なるタイプの確率方程式のどれもが使用されることができる。
一実施形態では、AからBへの特定のスペル変更のそれぞれについてのPの計算は、(1)このスペル変更に関して検出されたスペル変更イベントの回数、および(2)Aから他のある文字列への、検出されたスペル変更イベントの回数、を考慮に入れる。さらに、Pの計算が、これらスペル変更の重みWを考慮に入れてもよい(しかし必須ではない)。例えば、Pが次のように計算されてもよい。ここで、Sは、AからBへのスペル変更イベントのすべての重みWの合計であり、Sは、Aから任意の文字列へのスペル変更イベントのすべての重みWの合計である。

P´(A,B)=S/S

P(A,B)=P´(A,B)−α*sqrt(P´*(1−P´(A,B))/S+k)

上記の第1の方程式は、AからBへの検出されたスペル変更イベント、およびAから他のある文字列への検出されたスペル変更イベントの割合に基づいて、AからBへのスペル変更の「観測された確率」を(イベント重みによって修正されるように)計算する。第2の方程式は、観測された確率に基づいて実際の確率値Pを計算し、AからBへの検出されたスペル変更イベントの回数の合計を(それらの重みによって修正されるように)考慮に入れる。この第2の方程式は、(A,B)について存在するスペル変更イベントデータの量に基づいて、観測された確率を調節するためのメカニズムである。特に、Pは、このスペル変更に関するイベントデータの量が少ない場合に、より低くなる傾向があり、データの量が多い場合に、より高くなる傾向がある。所与のスペル変更に関する大量のイベントデータは、概して、多くの特定のユーザが、関連する時限内に、このスペル変更を加えたことを意味する。しかしながら、例えば自動化されたエージェントのような単一の「ユーザ」が、結果に対して不当に影響を及ぼさないことを保証するために、Pの計算に先立って、同じユーザもしくはセッションからのスペル変更イベントの複製物が、フィルタアウトされてもよい。
上記の第2の方程式では、αは標準偏差の数値を表し、典型的には1にセットされる。定数kは、典型的には2または3にセットされ、検出されないスペル変更イベントを説明するために使用される。
状態625では、集計プロセス435は、計算された確率値Pを、例えば0.01のような、信頼のあるスレショルドT2と比較する。このステップは、低い確率値を有するそれらスペル変更をフィルタアウトするように設計されている。PがT2以下である場合、Pはスペル変更アナライザー160によって、さらなる考慮から除外される。
PがT2より大きい場合、集計プロセス435は、AからBへの所与のスペル変更について、「lift」と呼ばれる別の値を計算する。lift値は、ユーザが、ランダムな機会に加えてAからBへの修正を行うであろうという見込みを反映する。一実施形態では、AからBへのスペル変更についてのliftは、次のように計算される。ここで、P(B)は、単に、ユーザが検索エンジンに対してBをサブミットする確率を表す。

lift = P(A,B)/P(B)

状態635では、計算されたliftが、スレショルドT3と比較される。この比較は、ユーザが、検索文字列Aをサブミットした後に検索文字列Bをサブミットする機会よりも、少なくともT3倍になりそうであろうことを本質的に示す。liftがT3未満である場合、スペル変更は、スペル変更アナライザーによって、さらなる考慮から除外される。T3は、典型的には10〜20の範囲をとることができる。
状態645では、データセット中のすべての残りの特定のスペル変更について、集計プロセス435は状態615へループバックする。図示する実施形態では、集計プロセス435の結果として生じる出力は、タプル(A,B,P)のデータセットである。ここで、Pは計算された確率値、もしくはAからBへのスペル変更についてのスコアである。
フェーズ3:スペル変更のフィルタリング(図7)
スペル変更アナライザー160のスペル変更フィルタリングフェーズ445は、1つ以上の規則に基づいて、集計フェーズ435によって出力される特定のスペル変更を、フィルタアウトすることを含む。このフェーズは完全に除外されてもよく、また、集計フェーズ435からの出力は、図1のマッピングテーブル180を生成するために使用されてもよい。しかしながら、フィルタリングフェーズ445において実行される処理は、類似の文字列を含み、且つ、高い確率値を有する検出されたスペル変更を、考慮から除外するのには有用であるが、ユーザにとってはそれほど有用ではないであろう。
図7は、フィルタリングフェーズ445中に実行される処理を示す。状態705では、AからBへの特定のスペル変更は、重み付けされたスペル変更のデータセットから選択される。状態710および715では、「オッズ差」分析が、選択されたスペル変更に対して実行される。この分析は、ユーザがBからAへ遷移するよりも著しく頻繁に、AからBへ遷移する場合にのみ、AからBへのスペル変更が正確もしくは有用であろうという仮定に基づく。
一実施形態では、オッズ差Dは、D=P(A,B)/P(B,A)として計算される。ここで、Pは、集計プロセス435中に計算される、スペル変更についての確率値を表す。あるいはDは、例えば、(A,B)及び(B,A)に対応するそのままのイベントカウントなどの、他のいくつかの基準を使用して計算されてもよい。ブロック715において、DがスレショルドT4以下である場合、AからBへのスペル変更は、スペル変更アナライザー160によって、さらなる考慮から除外される。データセットが、BからAへのスペル変更についてのデータを含まない場合、スレショルドT4は、満たされたとして扱われることができる。
例として、5のスレショルドT4を仮定し、さらに、(“dvd player”,“dvd players”)及び(“dvd players”,“dvd player”)のそれぞれのスペル変更が、それぞれ0.6及び0.4の確率値を有すると仮定する。他方の方向に修正する場合と比較して、一方の方向に修正するための明確な理由がないため、確率値は比較的接近していると仮定される。この場合は、Dは、5未満である1.5と等しい。したがって、“dvd player”の“dvd players”へのスペル変更は、フィルタアウトされるであろう。対照的に、それぞれが0.9及び0.1の確率値を有する(“Aldus Huxley”,“Aldous Huxley”)及び(“Aldous Huxley”,“Aldus Huxley”)のスペル変更を考慮する。ここで、多くのユーザは、正確なスペル“Aldous Huxley”をサブミットした後に、正しくないスペル“Aldus Huxley”をサブミットすることはなさそうなので、(“Aldous Huxley”,“Aldus Huxley”)の確率値は低いと仮定される。この場合は、Dは、5より大きい9と等しいであろう。したがって、(“Aldus Huxley”,“Aldous Huxley”)は、フィルタアウトされないであろう。
スレショルド値T4は、静的もしくは動的であることができる。一実施形態では、所与のスペル変更(A,B)についてのスレショルドT4は、AとBとの間の編集距離Eに応じて変化し得る。例えば、編集距離Eが特に小さい(即ち、文字列AとBとが非常に類似している)場合、状態715における比較を満たすことにおいて、より大きい余地を与えるために、T4は減少させられ得る。反対に、Eが大きい場合、その比較を満たすことをより困難にするために、T4は増大させられ得る。
状態720および730では、状態710において計算されたオッズ差Dを考慮に入れるために、各スペル変更(A,B)についての編集距離Eが再評価される。特に、編集距離Eは、Dに応じて変化するスレショルドT5と比較されることができる。例えばT4よりもわずかに大きいような、Dがかなり小さい場合は、A及びBのスペルが非常に類似していることを要求するために、比較的低い値がT5に使用されてもよい。反対に、Dが大きい場合は、より大きな値がT5に使用されてもよく、あるいは、状態720の比較が完全に除外されてもよい。さらに、Pが比較的高い場合に、より大きな編集距離が許容されるように、スレショルドT5が、特定のスペル変更についてのPの値に依存することができる。現在のスペル変更(A,B)についての編集距離Eが、T5以上とならない場合、スペル変更は、状態730においてフィルタアウトされる。
状態725によって示されるように、Bがストップリストにある場合、スペル変更(A,B)もまたフィルタアウトされる。一実施形態では、ストップリストは、代替の検索文字列として使用されることができない文字列のリストを含む。これらの文字列は、人間の分析によって、および/または自動化されたプロセスを通じて決定され得る。例えば、ストップリストは、自動化された分析に基づいて、検索結果アイテムの選択もしくは購入に導くことがほとんど無い、通常の検索文字列を含むことができる。図7には示されなかったが、Bが、Bについての検索クエリーを実行することにより決定され得るnullのクエリー結果を生成する場合、スペル変更(A,B)もまた、フィルタアウトされ得る。
状態735では、フィルタリングプロセスは、すべての残りのスペル変更について、状態705へループバックする。フィルタリングプロセス445からの出力は、スペル変更アナライザー160の出力を構成し、複数のタプル(A,B,P)のデータセットを含む。ここで、Pは、AからBへのスペル変更に関連した確率値である。マッピングテーブル180を作成するために、このデータセットは、Bツリーもしくは他の探査構造として格納され得る。図示する実施形態では、確率値はマッピングテーブル180に格納されるが、確率値は破棄されてもよい。
V.検索クエリープロセスフロー(図8)
図8は、ユーザからの検索クエリーに応答するための、図1のクエリープロセッサ135によって実行され得るプロセスの1つの例を示す。ここで、クエリープロセッサ135は、適用可能であれば、ユーザがサブミットされた検索文字列のスペルを修正もしくは変更するのを支援する。検索クエリーがユーザ/コンピューティングデバイス110から受信される場合は常に、あるいは、特定のフォーマット(例えば、フィールド制限を欠くもの)の検索クエリーが受信される場合は常に、このプロセスは実行され得る。
状態805では、検索クエリーは、何れかの一致するアイテムを特定するために実行される。さらに、マッピングテーブル180は、受信した検索文字列について、何れかの代替スペルが存在するかどうかを決定するためにアクセスされる。いくつかの実施形態では、これは、検索されている特定の検索インデックスもしくはアイテムコレクションに対応するテーブルエントリー(マッピング)をチェックすることを含むことができる。状態810及び830によって示されるように、マッピングテーブル180中に代替スペルが見つからない場合、クエリーの検索結果を表す一致アイテムリスト(もしくはその一部分)がユーザに返され、プロセスは終了する。
マッピングテーブル180中に1つ以上の代替スペルが見つかる場合、状態815において、見つけられたアイテムの数が考慮される。見つけられたアイテムの数が0よりも多い場合、最も高い確率値Pを有する代替が、マッピングテーブル180から選択される。状態820では、この「トップランクの」代替が、一致アイテムリストと共にユーザに返され、代替スペル(図3に示される検索結果ページの例を参照)として提示される。単一の代替スペルを提示するのではなく、検索結果ページ上で2つ以上の代替スペルが提示されてもよい。
見つけられたアイテムの数が0と等しい場合、トップランクの代替の確率Pが、スレショルドT6と比較される(状態825)。PがT6以下である場合、検索結果nullがユーザに返される(状態845)。このシナリオでは、ユーザが提供した検索文字列についての代替スペルのリスト(もしあれば)が、null検索結果ページ上に追加的に示されてもよい。
トップランクの代替スペルに関連づけられた確率Pが、スレショルドT6よりも大きい場合、その後、ユーザが提供した検索文字列は、このトップランクの代替と置き換えられ、検索クエリーが再実行される(状態835)。その後、この修正された検索の結果(アイテムと一致するリスト)は、表示のためにユーザに返される(状態840)。このシナリオでは、ユーザの検索文字列に対してなされた置き換えを特定するメッセージが表示されてもよい。
図8の方法を通じて処理される検索文字列が、単一のミススペルされた検索語(例えば用語“kioto”)から成り得ることに注意されるべきである。この点に関しては、ミススペルされた用語の正確なスペルを予測するために、検索クエリーの範囲内で他の用語を使用するいくつかの先行技術の方法と異なり、本明細書に開示された方法は、単一の用語の検索クエリーを修正する(もしくは、修正を提示する)能力を有する。
上記の説明から明白となるであろうが、図8のプロセスは、検索エンジンユーザがユーザ自身の検索クエリーを洗練及び修正するのを支援する目標を達成するための様々な方法に、変更されることができる。例えば、代替スペルが、その確率値にかかわらず、もしくはオリジナルの検索によって見つけられたアイテムの数にかかわらず、マッピングテーブル180内に見つけられた時、代替スペルがユーザに常に提示されてもよい。別の例として、1つ以上のトップランクの代替スペルを含むために、オリジナルのクエリーが自動的に拡張されてもよい。
さらに、図8に示されるプロセスは、先に存在するスペル修正方法と組み合わされて使用されることができる。一例として、図8に示されるプロセスは、米国特許第6,144,958号に記述されているスペル修正プロセスと並行して実行されることができる(即ち、両方のプロセスは、ユーザが供給した検索文字列についての代替を特定するために、互いに依存せずに使用されることができる)。多くの場合において、これらの2つのプロセスは異なる代替文字列を特定することができる。その場合には、そのような代替文字列のそれぞれが、ユーザに提示され得る。
VI.ウェブサイトインプリメンテーション例(図9)
図9は、サービスに基づいたウェブサイトシステム900の一部として、図1のシステムがどのようにインプリメントされ得るかの一例を示す。ここで、ウェブサイトシステム900は、例えば、システム900を通じてオーダーされ得る製品のような、アイテムの電子カタログへのアクセスを提供する。図1の参照番号のうちのいくつかは、コンポーネントの一致を示すために、図9において再使用される。一例として、図9の実施形態では、図1のサーバ130は、ユーザコンピューティングデバイス110からのページ要求に応答するウェブサーバであり、ユーザコンピューティングデバイス10のそれぞれは、ブラウザソフトウェアを実行する。何万もの同時のブラウジングセッションを提供することができる大規模システムでは、ウェブサーバシステムは、典型的に、複製された多くの物理的サーバ(例えば100以上)を使用してインプリメントされる。一実施形態では、ユーザ110がウェブサイトシステムにアクセスする際に、先の24時間以内にユーザがシステムにアクセスしていなければ、ウェブサーバ130は新しいセッションを開始する(新しいセッションIDを割り当てる)。
ウェブサーバ130は、ネットワークを通じて、カタログサービス904、クエリーサービス910、およびスペル修正サービス920を含む様々なサービスと通信する。さらに、ウェブサーバ130は、例えば、ユーザアカウントデータ、およびオーダー処理などを管理するためのサービスのような、様々な他のサービス914と通信することができる。それぞれのサービス904、910、914、および920は、関連するサービスコードを実行する1つ以上の物理的サーバとしてインプリメントされ得る。
図9に示されるように、ウェブサーバ130は、ウェブページテンプレートのリポジトリにアクセスするテンプレートプロセッサ902を含む。これらのテンプレートは、特定のウェブページを動的に生成する目的のために発行されるサービス要求を含み、実行される処理を明示する。例えば、ユーザが、特定の製品もしくは製品カテゴリーに関連したウェブページを要求する場合、関連するテンプレートは、テンプレートプロセッサ902に、カタログサービス904からの関連するカタログコンテンツを要求させる。カタログサービス904は、例えば、電子カタログに表された特定の製品の説明及び画像を含むことができるアイテムコンテンツのリポジトリ132から、このコンテンツを検索することができる。リポジトリ132に格納されたアイテムコンテンツは、インデクサ906によって、周期的にもしくは連続的にインデックス付けされ、対話型の検索を実行するために使用される1つ以上の検索インデックス140を生成する。
ユーザが検索クエリーをサブミットする際に、テンプレートプロセッサ902は、それぞれのサービスコールを通じて、クエリーサービス910およびスペル修正サービス920に検索クエリーを渡す。クエリーサービス910は、一致するアイテムの何れかのリストを生成して返すために、関連する検索インデックスを使用することにより応答する。カタログ検索の場合、一致するアイテムのリストは、一致する製品から成ることができる。スペル修正サービス920は、任意の代替検索文字列を探査するためのマッピングテーブル180を使用することにより、また、これら代替文字列とそれらの確率値とをテンプレートプロセッサ902に返すことにより、検索クエリーに応答する。テンプレートプロセッサ902は、図8のブロック810〜845に従って検索結果ページを生成するために、クエリーサービス910およびスペル修正サービス920によって返される情報を使用することができる。
いくつかの実施形態では、スペル修正サービス920によって返される代替文字列が、行われている検索のタイプに依存してもよい。例えば、ユーザが本の検索を行う(ここで本は、カタログに表された製品の複数のカテゴリーのうちの1つを表す)場合に、代替文字列が、他のユーザによって行なわれた本の検索に、単独でもしくは主に基づいてもよい。上記に説明されるように、これは、各マッピングテーブルエントリーに、そのエントリーが対応する1以上の検索インデックスの識別子を含むことにより、および/または、異なる検索インデックスについて、異なるマッピングテーブル180を生成することにより達成され得る。
さらに、図9を参照すると、ウェブサーバ130は、検索クエリーサブミッションイベントと、任意で他のタイプのイベント(例えば、すべてのクリックイベント)を、イベント履歴リポジトリ150に報告する。このリポジトリ150は、例えば、当該技術において周知であるウェブログファイルとしてインプリメントされてもよい。あるいは、例えば、米国公開番号第2005/0033803A1において記述されているように、イベント履歴リポジトリ150は、リレーショナルデータベースシステムを使用してインプリメントされてもよい。さらに、イベント履歴リポジトリ150は、他の情報源から収集されたイベントデータを格納してもよい。例えば、検索/イベント履歴は、検索エンジンをインプリメントする他のウェブサイトシステムから集められることができ、これにより、マッピングテーブル180は、複数の検索エンジンシステムおよびウェブサイトに関してモニターされた検索活動を反映する。
1つ以上のマッピングテーブル180を生成するために、イベント履歴リポジトリ150で収集されたイベント履歴データは、スペル変更アナライザー160によって分析される。図4〜7に示されたプロセスが、この目的のために使用されることができる。あるいは、イベント履歴を分析し、そして、対応するブラウジングセッションが生じる時に実質的に実時間で、マッピングテーブル180に対して更新を実行するプロセスが使用されてもよい。
一実施形態では、スペル修正サービス920は、インターネットを通じて他のコンピュータシステムによって直接的にアクセスされ得るウェブサービスとしてインプリメントされる。したがって、例えば、他の検索エンジンシステム(例えば、他のウェブサイトのもの)は、特定の検索文字列の代替スペルを得るために、スペル修正サービス920に対してサービス要求を送信することができる。この点に関しては、これら他のシステムが、マッピングを生成するために使用されるイベントデータのどれを供給したかどうかにかかわらず、スペル修正サービス920によって供給された代替スペルは、通常、他のユーザ、独立したウェブサイト、および検索エンジンシステムにとって有用である。
スペル変更アナライザー160も同様に、ウェブサービスとしてインプリメントされ得る。例えば、スタンダード・ログ・ファイル・フォーマットのような標準形式の検索履歴データを受理して、検索文字列マッピング(A,B,P)の対応するデータセットを返すように、アナライザー160は設定され得る。したがって、例えば、他の検索エンジンプロバイダは、それらの検索エンジンそれぞれについて、検索エンジンに特有のマッピングテーブル180を生成するために、スペル変更アナライザー160を使用することができ、また、それらのユーザが検索クエリーを修正するのを支援するために、これらマッピングテーブルを使用することができる。
VII.ドキュメントのスペルチェック
本発明に従って生成された文字列から文字列へのマッピングはまた、ドキュメントのスペルチェックに使用される既存のスペルチェックプログラムを増強するために使用されることもできる。そのようなドキュメントスペルチェッカーは、一般に、例えばMicrosoft Wordのようなワードプロセッサ・プログラム、およびMicrosoft Outlookのような電子メールクライアント・プログラムに含まれる。
一例として、代替スペルが辞書中に見つからない(あるいは、ユーザによって望ましいと指示されたものが何もない)未認識の用語に遭遇する場合、ドキュメントスペルチェッカーは、この用語の代替スペルのリストを検索するために、スペル修正サービス920(図9)へ、サービス要求を送信することができる。その後、著者名、商号、製品番号、およびドキュメントスペルチェッカーの辞書中には一般に見つからない他の文字列を含み得る代替スペルのこのリストは、ユーザに提示され得る。これら代替スペルは、それら代替スペルが検索エンジンユーザのアクションに基づくことと、それら代替スペルが技術的に正確ではない可能性を有することとを示すメッセージと共に表示されてもよい。
VIII.スペル変更イベントデータの他の情報源に基づいたマッピングの生成
文字列を代替文字列にマッピングするために本明細書に記述された方法はまた、スペル変更イベントデータの他の情報源を用いる使用に対して適用されることもできる。一例として、ドキュメントスペルチェッカープログラムのユーザには、スペル変更イベントデータを集計および分析するサービスに賛同するオプションが与えられ得る。賛同したユーザのドキュメントスペルチェッカーが、未認識の用語Aに遭遇すると、スペルチェッカーは、ユーザに、リストから選択するように、あるいは代替用語Bをタイプ入力するように促すことができる。ユーザがそのような代替用語を選択もしくはタイプ入力すれば、スペルチェッカーは、そのサービスに、AからBへのスペル変更を報告することができる。多くの異なる賛同者のコンピューティングデバイスからサービスへ報告されたスペル変更は、代替文字列への文字列のマッピングを生成するために、上記に記述されたのと同じ方法を使用して、全体的に分析されることができる。例えば、これらのマッピングは、先のサブセクションにおいて記述されているように、ユーザがドキュメントをスペルチェックするのを支援するために、および/または、ユーザがユーザ自身の検索クエリー中のスペルエラーを修正するのを支援するために使用されてもよい。
IX.結論
本発明が、ある実施形態および変形例によって記述されたが、本明細書に述べられた特徴および利点のすべてを提供するとは限らない実施形態を含む、当業者にとっては明白な他の実施形態および変形例もまた、本発明の範囲に属する。従って、本発明の範囲は、特許請求の範囲を参照することによってのみ定義されるであろう。
図1は本発明の一実施形態に係る検索エンジンシステムのコンポーネントおよびプロセスフローを示す。 図2は図1のシステムにおける検索ページの例を示す。 図3は図1のシステムにおける検索結果ページの例を示す。 図4は本発明の一実施形態に係る図1のスペル変更アナライザーのブロック図である。 図5は図4のスペル変更イベント検出フェーズ中に実行される処理を示す。 図6は図4のスペル変更イベント集計フェーズ中に実行される処理を示す。 図7は図4のスペル変更フィルタリングフェーズ中に実行される処理を示す。 図8は図1のシステムにおけるクエリープロセッサによって検索クエリーがどのように処理され得るかを示す。 図9はアイテムの電子カタログへのアクセスを提供するウェブサイトシステムの一部として図1〜7のシステムがどのようにインプリメントされ得るかの一例を示す。

Claims (31)

  1. ユーザが使用する端末装置と、前記端末装置とネットワークを介して接続された、1台以上の計算機を含むサーバ装置とを備えるコンピュータシステムにおいて、前記サーバ装置が実行する方法であって、
    前記サーバ装置が、検索文字列スペル変更イベントを検出するために、前記端末装置から受信した複数のユーザそれぞれの検索文字列サブミッションを分析することと、
    特定のスペル変更がユーザにとって有用かどうかを評価するための集計基準に基づいて、少なくとも部分的に、前記サーバ装置が、検出された前記検索文字列スペル変更イベントを分析することにより、前記検索文字列サブミッションに含まれている複数の検索文字列それぞれについて、それぞれの前記検索文字列の1つ以上の代替スペルを特定することとを含み、
    前記検索文字列スペル変更イベントそれぞれが、ユーザによって入力された第1の検索文字列を、前記端末装置が前記サーバ装置の検索エンジンにサブミットし、続いて、ユーザによって入力された、スペルが前記第1の検索文字列に類似するが前記第1の検索文字列とは異なる第2の検索文字列を、前記端末装置が前記サーバ装置の前記検索エンジンにサブミットするイベントであり、
    検出された前記検索文字列スペル変更イベントを分析することが、前記サーバ装置が前記端末装置から受信した、前記検索文字列スペル変更イベントが起こったブラウジングセッションの一部として行われた他のユーザアクションに、少なくとも部分的に基づいて、前記サーバ装置が検索文字列スペル変更イベントに重み付けすることを含む方法。
  2. 前記検索文字列スペル変更イベントに重み付けすることが、前記検索文字列スペル変更イベントについて重み値を計算することを含み、前記重み値が、前記検索文字列スペル変更イベントが自己修正するイベントである見込みを反映する請求項1の方法。
  3. 前記重み値が、前記第1の検索文字列及び前記第2の検索文字列のサブミッション間に経過した時間の合計に依存する請求項2の方法。
  4. 前記重み値が、前記第1の検索文字列及び前記第2の検索文字列のサブミッション間に起こった介在イベントの数と、前記介在イベントのタイプとに依存する請求項2の方法。
  5. 前記重み値を計算することが、対応するユーザのアクションが前記スペル変更が成功したことを明らかにする範囲を考慮に入れることを含む請求項2の方法。
  6. 検出された前記検索文字列スペル変更イベントを分析することが、文字列Aから文字列Bへのスペル変更が文字列Bから文字列Aへのスペル変更よりも著しく頻繁に起こるかどうかを、少なくとも部分的に評価することにより、文字列Bが文字列Aの有用な代替スペルかどうかを評価することを含む請求項1の方法。
  7. 検出された前記検索文字列スペル変更イベントを分析することが、文字列Aにスペル変更を加えるユーザがどれくらい頻繁に文字列Bをサブミットすることにより文字列Aにスペル変更を加えるかを考慮に入れることにより、文字列Bが文字列Aの有用な代替スペルかどうかを評価することを含む請求項1の方法。
  8. 前記検索文字列サブミッションを分析することが、複数の前記ユーザのうち特定のユーザによってサブミットされた検索文字列間の編集距離を計算すること含む請求項1の方法。
  9. 前記検索文字列スペル変更イベントが、ユーザが、1つ以上の介在する検索を、前記第1の検索文字列の前記サブミッションと前記第2の検索文字列の前記サブミッションとの間に行なうイベントを含む請求項1の方法。
  10. 検出された前記検索文字列スペル変更イベントを分析することが、文字列Aおよび文字列Bをサブミットしたユーザのアクションを分析することを含み、文字列Aから文字列Bへのスペル変更について、文字列Aをサブミットするユーザに対して文字列Bの有用性を評価する請求項1の方法。
  11. 文字列Aをサブミットするユーザに対して文字列Bの前記有用性を評価することが、文字列Bをサブミットしたユーザのブラウジングアクションを分析することを含み、文字列Bをサブミットしたユーザが文字列Bに対応する検索結果に満足したかどうかを評価する請求項10の方法。
  12. 文字列Aをサブミットするユーザに対して文字列Bの前記有用性を評価することが、文字列Aと文字列Bとの間の編集距離を考慮に入れることを含む請求項10の方法。
  13. 文字列Aをサブミットするユーザに対して文字列Bの前記有用性を評価することが、文字列Aから文字列Bへのスペル変更が、文字列Bから文字列Aへのスペル変更よりも頻繁に起こるかどうかを考慮に入れる請求項10の方法。
  14. 検出された前記検索文字列スペル変更イベントを分析することが、異なる検索文字列スペル変更イベントに対して、対応する前記検索文字列スペル変更イベントが起こったブラウジングセッションにおいて実行された他のユーザアクションに依存する異なる重みを割り当てることを含む請求項1の方法。
  15. 検出された前記検索文字列スペル変更イベントを分析することが、特定のスペル変更について、前記スペル変更についての重みを生成するために、特定の前記スペル変更に関連する複数のイベントの前記重みを組み合わせることを、さらに含む請求項14の方法。
  16. 検出された前記検索文字列スペル変更イベントを分析することが、より古い検索文字列スペル変更イベントよりも最近の検索文字列スペル変更イベントに、より大きな重みを与えることを含む請求項1の方法。
  17. 前記サーバ装置が、複数の前記検索文字列のうち特定の検索文字列の、対応する代替検索文字列へのマッピングを、前記サーバ装置のコンピュータ記憶装置に生成することを、さらに含む請求項1の方法。
  18. 前記サーバ装置が、前記マッピングを使用して、代替検索文字列のスペルを前記端末装置のユーザに提示することを、さらに含む請求項17の方法。
  19. 前記サーバ装置が、前記マッピングを使用して、ユーザによって前記端末装置に入力されて前記サーバ装置にサブミットされた検索文字列中のスペルエラーを自動的に修正することを、さらに含む請求項17の方法。
  20. ユーザが使用する端末装置と、前記端末装置とネットワークを介して接続された、1台以上の計算機を含むサーバ装置とを備えるコンピュータシステムにおいて、前記サーバ装置のコンピュータ記憶装置中に記録されて、前記サーバ装置に請求項1の前記方法を実行させるためのコンピュータプログラム。
  21. 検索を行なうために、ユーザによって検索エンジンにサブミットされた検索文字列を特定するための、複数の前記ユーザの検索履歴を格納するデータリポジトリと、
    前記検索履歴中の検索文字列スペル変更イベントを検出するスペル変更検出コンポーネントと、
    集計基準に基づいて、検出された前記検索文字列スペル変更イベントを分析し、特定のスペル変更がユーザにとって有用かどうかを評価する分析コンポーネントとを備え、
    前記検索文字列スペル変更イベントそれぞれが、ユーザが、第1の検索文字列をサブミットし、続いて、スペルが前記第1の検索文字列に類似するが前記第1の検索文字列とは異なる第2の検索文字列をサブミットするイベントであり、
    前記分析コンポーネントが、前記検索文字列スペル変更イベントが起こったブラウジングセッションの一部として行われた他のユーザアクションに、少なくとも部分的に基づいて、検索文字列スペル変更イベントに重み付けするコンピュータシステム。
  22. 前記分析コンポーネントが、前記検索文字列スペル変更イベントについて重み値を計算することにより、前記検索文字列スペル変更イベントに重み付けし、前記重み値が、前記検索文字列スペル変更イベントが自己修正するイベントである見込みを反映する請求項21のコンピュータシステム。
  23. 前記重み値が、前記第1の検索文字列及び前記第2の検索文字列のサブミッション間に経過した時間の合計に依存する請求項22のコンピュータシステム。
  24. 前記重み値が、前記第1の検索文字列及び前記第2の検索文字列のサブミッション間に起こった介在イベントの数と、前記介在イベントのタイプとに依存する請求項22のコンピュータシステム。
  25. 前記重み値を計算することが、対応するユーザのアクションが前記スペル変更が成功したことを明らかにする範囲を考慮に入れることを含む請求項22のコンピュータシステム。
  26. 前記スペル変更検出コンポーネントが、ユーザによってサブミットされた検索文字列間の編集距離を計算して、前記編集距離を使用して検索文字列スペル変更イベントを検出する請求項22のコンピュータシステム。
  27. 前記分析コンポーネントが、文字列Aから文字列Bへのスペル変更が、文字列Bから文字列Aへのスペル変更よりも著しく頻繁に起こるかどうかを、少なくとも部分的に評価することにより、検索文字列Bが文字列Aの有用な代替スペルかどうかを評価する請求項22のコンピュータシステム。
  28. 前記分析コンポーネントが、文字列Aから文字列Bへのスペル変更が、文字列Bから文字列Aへのスペル変更よりも著しく頻繁に起こるかどうかを、少なくとも部分的に評価することにより、検索文字列Bが文字列Aの有用な代替スペルかどうかを評価する請求項22のコンピュータシステム。
  29. 前記分析コンポーネントが、文字列Aおよび文字列Bをサブミットしたユーザのアクションを分析するように準備されており、文字列Aから文字列Bへのスペル変更について、文字列Aをサブミットするユーザに対して文字列Bの有用性を評価する請求項22のコンピュータシステム。
  30. 前記分析コンポーネントが、文字列Bをサブミットしたユーザのブラウジングアクションを、少なくとも部分的に分析することにより、文字列Aをサブミットするユーザに対して文字列Bの前記有用性を評価し、文字列Bをサブミットしたユーザが、文字列Bに対応する検索結果に満足したかどうかを評価する請求項29のコンピュータシステム。
  31. 前記分析コンポーネントによって、ユーザにとって有用であるとして選択されるスペル変更を特定するマッピング構造と、
    前記マッピング構造を使用して、検索を行なうユーザに代替スペルを提示するクエリープロセッサとを、さらに備える請求項22のコンピュータシステム。
JP2008526025A 2005-08-11 2006-07-20 ユーザの自己修正する検索動作の分析により検索文字列の代替スペルを特定する方法 Expired - Fee Related JP4866421B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/202,291 2005-08-11
US11/202,291 US7321892B2 (en) 2005-08-11 2005-08-11 Identifying alternative spellings of search strings by analyzing self-corrective searching behaviors of users
PCT/US2006/028206 WO2007021438A1 (en) 2005-08-11 2006-07-20 Identifying alternative spellings of search strings by analyzing self-corrective searching behaviors of users

Publications (2)

Publication Number Publication Date
JP2009505221A JP2009505221A (ja) 2009-02-05
JP4866421B2 true JP4866421B2 (ja) 2012-02-01

Family

ID=37743757

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008526025A Expired - Fee Related JP4866421B2 (ja) 2005-08-11 2006-07-20 ユーザの自己修正する検索動作の分析により検索文字列の代替スペルを特定する方法

Country Status (5)

Country Link
US (1) US7321892B2 (ja)
EP (1) EP1922609A4 (ja)
JP (1) JP4866421B2 (ja)
CN (1) CN101288046B (ja)
WO (1) WO2007021438A1 (ja)

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7428496B1 (en) * 2001-04-24 2008-09-23 Amazon.Com, Inc. Creating an incentive to author useful item reviews
US7890526B1 (en) * 2003-12-30 2011-02-15 Microsoft Corporation Incremental query refinement
US7672927B1 (en) 2004-02-27 2010-03-02 Yahoo! Inc. Suggesting an alternative to the spelling of a search query
US7882066B1 (en) * 2004-05-25 2011-02-01 Symantec Operating Corporation Probabilistic data locating in sparse data images
US7519588B2 (en) * 2005-06-20 2009-04-14 Efficient Frontier Keyword characterization and application
US7672932B2 (en) 2005-08-24 2010-03-02 Yahoo! Inc. Speculative search result based on a not-yet-submitted search query
US7668821B1 (en) 2005-11-17 2010-02-23 Amazon Technologies, Inc. Recommendations based on item tagging activities of users
US8429184B2 (en) 2005-12-05 2013-04-23 Collarity Inc. Generation of refinement terms for search queries
US8903810B2 (en) * 2005-12-05 2014-12-02 Collarity, Inc. Techniques for ranking search results
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
US20070175674A1 (en) * 2006-01-19 2007-08-02 Intelliscience Corporation Systems and methods for ranking terms found in a data product
US7953740B1 (en) * 2006-02-13 2011-05-31 Amazon Technologies, Inc. Detection of behavior-based associations between search strings and items
US7814097B2 (en) * 2006-03-07 2010-10-12 Yahoo! Inc. Discovering alternative spellings through co-occurrence
US7716229B1 (en) * 2006-03-31 2010-05-11 Microsoft Corporation Generating misspells from query log context usage
WO2007121171A2 (en) * 2006-04-10 2007-10-25 Intelliscience Corporation Systems and methods for ranking terms found in a data product
WO2008011422A2 (en) * 2006-07-21 2008-01-24 Melodis Corporation System and method for producing scored search results on a database using approximate search queries
US7747607B2 (en) * 2006-09-21 2010-06-29 Yahoo! Inc. Determining logically-related sub-strings of a string
US8442972B2 (en) * 2006-10-11 2013-05-14 Collarity, Inc. Negative associations for search results ranking and refinement
US7590626B2 (en) * 2006-10-30 2009-09-15 Microsoft Corporation Distributional similarity-based models for query correction
US9519715B2 (en) 2006-11-02 2016-12-13 Excalibur Ip, Llc Personalized search
US20080126393A1 (en) * 2006-11-29 2008-05-29 Bossman Patrick D Computer program product and system for annotating a problem sql statement for improved understanding
US9305088B1 (en) 2006-11-30 2016-04-05 Google Inc. Personalized search results
US20080215416A1 (en) * 2007-01-31 2008-09-04 Collarity, Inc. Searchable interactive internet advertisements
US7822763B2 (en) * 2007-02-22 2010-10-26 Microsoft Corporation Synonym and similar word page search
US7827172B2 (en) * 2007-03-14 2010-11-02 Yahoo! Inc. “Query-log match” relevance features
US7877375B1 (en) * 2007-03-29 2011-01-25 Oclc Online Computer Library Center, Inc. Name finding system and method
US7904440B2 (en) * 2007-04-26 2011-03-08 Microsoft Corporation Search diagnostics based upon query sets
US20080294619A1 (en) * 2007-05-23 2008-11-27 Hamilton Ii Rick Allen System and method for automatic generation of search suggestions based on recent operator behavior
US8751507B2 (en) * 2007-06-29 2014-06-10 Amazon Technologies, Inc. Recommendation system with multiple integrated recommenders
US9298417B1 (en) * 2007-07-25 2016-03-29 Emc Corporation Systems and methods for facilitating management of data
US20090083255A1 (en) * 2007-09-24 2009-03-26 Microsoft Corporation Query spelling correction
US8108255B1 (en) * 2007-09-27 2012-01-31 Amazon Technologies, Inc. Methods and systems for obtaining reviews for items lacking reviews
US8001003B1 (en) 2007-09-28 2011-08-16 Amazon Technologies, Inc. Methods and systems for searching for and identifying data repository deficits
US8583670B2 (en) * 2007-10-04 2013-11-12 Microsoft Corporation Query suggestions for no result web searches
US8126863B2 (en) * 2007-10-25 2012-02-28 Apple Inc. Search control combining classification and text-based searching techniques
MX2010004631A (es) 2007-11-01 2010-05-19 Koninkl Philips Electronics Nv Indicacion de recursos de canal dedicado mejorado para canal de acceso aleatorio mejorado.
US7953746B1 (en) * 2007-12-07 2011-05-31 Google Inc. Contextual query revision
US8131714B2 (en) * 2008-01-02 2012-03-06 Think Village-OIP, LLC Linguistic assistance systems and methods
US20090228296A1 (en) * 2008-03-04 2009-09-10 Collarity, Inc. Optimization of social distribution networks
CN101981858B (zh) * 2008-03-27 2014-11-19 皇家飞利浦电子股份有限公司 用于在移动网络中通信的方法
US20090292775A1 (en) * 2008-05-20 2009-11-26 Scott Wayne Flenniken Method and process for the Forensic Inspection of real time streams FIRST Engine
US8082498B2 (en) * 2008-05-27 2011-12-20 Appfolio, Inc. Systems and methods for automatic spell checking of dynamically generated web pages
US20090299952A1 (en) * 2008-05-27 2009-12-03 Zheng Jerry Systems and methods for automatic quality assurance of workflow reports
US20090300126A1 (en) * 2008-05-30 2009-12-03 International Business Machines Corporation Message Handling
US8073869B2 (en) * 2008-07-03 2011-12-06 The Regents Of The University Of California Method for efficiently supporting interactive, fuzzy search on structured data
US7949647B2 (en) * 2008-11-26 2011-05-24 Yahoo! Inc. Navigation assistance for search engines
US8041700B2 (en) * 2009-04-07 2011-10-18 Motorola Mobility, Inc. Content item retrieval based on a free text entry
US20120317217A1 (en) * 2009-06-22 2012-12-13 United Parents Online Ltd. Methods and systems for managing virtual identities
EP2267615A1 (de) * 2009-06-26 2010-12-29 Yatego GmbH Verfahren zur Analyse und Verarbeitung von Suchworteingaben
KR101083455B1 (ko) * 2009-07-17 2011-11-16 엔에이치엔(주) 통계 데이터에 기초한 사용자 질의 교정 시스템 및 방법
US20110060763A1 (en) * 2009-09-09 2011-03-10 Denso Corporation Address search device and method for searching address
US8875038B2 (en) * 2010-01-19 2014-10-28 Collarity, Inc. Anchoring for content synchronization
CN102253936B (zh) * 2010-05-18 2013-07-24 阿里巴巴集团控股有限公司 记录用户访问商品信息的方法及搜索方法和服务器
US9336111B1 (en) 2010-07-30 2016-05-10 Emc Corporation System and method for data logging within a field replaceable unit
JP5598223B2 (ja) * 2010-09-30 2014-10-01 アイシン・エィ・ダブリュ株式会社 検索支援装置、検索支援方法および検索支援プログラム
US9098569B1 (en) * 2010-12-10 2015-08-04 Amazon Technologies, Inc. Generating suggested search queries
US8396760B1 (en) 2011-01-27 2013-03-12 Amazon Technologies, Inc. Behavioral filter for personalized recommendations
US8688667B1 (en) * 2011-02-08 2014-04-01 Google Inc. Providing intent sensitive search results
US20120233140A1 (en) * 2011-03-09 2012-09-13 Microsoft Corporation Context-aware query alteration
CN102915313B (zh) * 2011-08-05 2018-01-09 深圳市世纪光速信息技术有限公司 网络搜索中的纠错关系生成方法及系统
US10176168B2 (en) 2011-11-15 2019-01-08 Microsoft Technology Licensing, Llc Statistical machine translation based search query spelling correction
US9298693B2 (en) * 2011-12-16 2016-03-29 Microsoft Technology Licensing, Llc Rule-based generation of candidate string transformations
US8433719B1 (en) * 2011-12-29 2013-04-30 Google Inc. Accelerating find in page queries within a web browser
CN103324621B (zh) * 2012-03-21 2017-08-25 北京百度网讯科技有限公司 一种泰语文本拼写纠正方法及装置
CN103368986B (zh) 2012-03-27 2017-04-26 阿里巴巴集团控股有限公司 一种信息推荐方法及信息推荐装置
US8868587B1 (en) * 2012-05-04 2014-10-21 Google Inc. Determining correction of queries with potentially inaccurate terms
KR101446468B1 (ko) * 2012-11-28 2014-10-06 (주)이스트소프트 자동완성 질의어 제공 시스템 및 방법
US10083235B2 (en) * 2013-01-18 2018-09-25 Open Text Sa Ulc Numeric value decay for efficient relevance computation
US9740767B2 (en) * 2013-03-15 2017-08-22 Mapquest, Inc. Systems and methods for analyzing failed and successful search queries
CN104346354B (zh) * 2013-07-29 2017-12-01 阿里巴巴集团控股有限公司 一种提供推荐词的方法及装置
US10176256B1 (en) * 2013-12-23 2019-01-08 BroadbandTV, Corp Title rating and improvement process and system
CN103927330A (zh) * 2014-03-19 2014-07-16 北京奇虎科技有限公司 一种在搜索引擎中确定形近字的方法和装置
US9747273B2 (en) * 2014-08-19 2017-08-29 International Business Machines Corporation String comparison results for character strings using frequency data
US9727906B1 (en) 2014-12-15 2017-08-08 Amazon Technologies, Inc. Generating item clusters based on aggregated search history data
US11341189B2 (en) * 2015-04-10 2022-05-24 Harman International Industries, Incorporated Multi-character string search engine for in-vehicle information system
US9965526B1 (en) 2015-06-12 2018-05-08 Amazon Technologies, Inc. Data mining for multiple item comparisons
KR101839121B1 (ko) * 2015-09-14 2018-04-26 네이버 주식회사 사용자 질의 교정 시스템 및 방법
WO2017061038A1 (ja) * 2015-10-09 2017-04-13 楽天株式会社 情報処理装置、情報処理方法及び情報処理プログラム
CN106326484A (zh) * 2016-08-31 2017-01-11 北京奇艺世纪科技有限公司 搜索词纠错方法及装置
US10296659B2 (en) * 2016-09-26 2019-05-21 International Business Machines Corporation Search query intent
US10860668B1 (en) * 2016-09-29 2020-12-08 EMC IP Holding Company, LLC Querying system and method
US10372814B2 (en) 2016-10-18 2019-08-06 International Business Machines Corporation Methods and system for fast, adaptive correction of misspells
US10579729B2 (en) 2016-10-18 2020-03-03 International Business Machines Corporation Methods and system for fast, adaptive correction of misspells
WO2018106261A1 (en) * 2016-12-09 2018-06-14 Google Llc Preventing the distribution of forbidden network content using automatic variant detection
US11093709B2 (en) * 2017-08-10 2021-08-17 International Business Machine Corporation Confidence models based on error-to-correction mapping
US11087210B2 (en) * 2017-08-18 2021-08-10 MyFitnessPal, Inc. Context and domain sensitive spelling correction in a database
US10866976B1 (en) 2018-03-20 2020-12-15 Amazon Technologies, Inc. Categorical exploration facilitation responsive to broad search queries
US10685180B2 (en) * 2018-05-10 2020-06-16 International Business Machines Corporation Using remote words in data streams from remote devices to autocorrect input text
US10664656B2 (en) * 2018-06-20 2020-05-26 Vade Secure Inc. Methods, devices and systems for data augmentation to improve fraud detection

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320419A (ja) * 1997-05-22 1998-12-04 Nippon Telegr & Teleph Corp <Ntt> 情報関連づけ装置およびその方法
US20020010726A1 (en) * 2000-03-28 2002-01-24 Rogson Ariel Shai Method and apparatus for updating database of automatic spelling corrections
JP2004334638A (ja) * 2003-05-09 2004-11-25 Nippon Telegr & Teleph Corp <Ntt> 追加検索語取得装置、追加検索語取得方法、これらの追加検索語取得装置または追加検索語取得方法を実現するプログラムおよびそのプログラムが記憶された記録媒体
JP2005182408A (ja) * 2003-12-18 2005-07-07 Yasutaka Shimizu 用語検索支援システム、用語検索支援方法及び用語検索支援プログラム

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4783758A (en) * 1985-02-05 1988-11-08 Houghton Mifflin Company Automated word substitution using numerical rankings of structural disparity between misspelled words & candidate substitution words
US5576954A (en) 1993-11-05 1996-11-19 University Of Central Florida Process for determination of text relevancy
EP1062602B8 (en) 1998-02-13 2018-06-13 Oath Inc. Search engine using sales and revenue to weight search results
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
US6782505B1 (en) * 1999-04-19 2004-08-24 Daniel P. Miranker Method and system for generating structured data from semi-structured data sources
WO2001046870A1 (en) 1999-12-08 2001-06-28 Amazon.Com, Inc. System and method for locating and displaying web-based product offerings
US6772150B1 (en) * 1999-12-10 2004-08-03 Amazon.Com, Inc. Search query refinement using related search phrases
US6564213B1 (en) 2000-04-18 2003-05-13 Amazon.Com, Inc. Search query autocompletion
US6671681B1 (en) 2000-05-31 2003-12-30 International Business Machines Corporation System and technique for suggesting alternate query expressions based on prior user selections and their query strings
US20030061202A1 (en) * 2000-06-02 2003-03-27 Coleman Kevin B. Interactive product selector with fuzzy logic engine
US8868448B2 (en) * 2000-10-26 2014-10-21 Liveperson, Inc. Systems and methods to facilitate selling of products and services
US6976019B2 (en) * 2001-04-20 2005-12-13 Arash M Davallou Phonetic self-improving search engine
JP2003122743A (ja) * 2001-10-12 2003-04-25 Seiko Instruments Inc 語句表示装置、スペルチェック装置及び電子辞書
US7194684B1 (en) 2002-04-09 2007-03-20 Google Inc. Method of spell-checking search queries
US7783514B2 (en) * 2002-04-22 2010-08-24 Nbc Universal, Inc. Method, apparatus and article for displaying targeted content on web pages by predicting the group membership of individual visitors
US7113950B2 (en) * 2002-06-27 2006-09-26 Microsoft Corporation Automated error checking system and method
US7181447B2 (en) 2003-12-08 2007-02-20 Iac Search And Media, Inc. Methods and systems for conceptually organizing and presenting information
US20050149499A1 (en) * 2003-12-30 2005-07-07 Google Inc., A Delaware Corporation Systems and methods for improving search quality
US7254774B2 (en) * 2004-03-16 2007-08-07 Microsoft Corporation Systems and methods for improved spell checking
US20050257156A1 (en) * 2004-05-11 2005-11-17 David Jeske Graphical user interface for facilitating access to online groups
US20050289463A1 (en) * 2004-06-23 2005-12-29 Google Inc., A Delaware Corporation Systems and methods for spell correction of non-roman characters and words
US20060161520A1 (en) * 2005-01-14 2006-07-20 Microsoft Corporation System and method for generating alternative search terms
US20060167842A1 (en) * 2005-01-25 2006-07-27 Microsoft Corporation System and method for query refinement
US20060195435A1 (en) * 2005-02-28 2006-08-31 Microsoft Corporation System and method for providing query assistance
US7680772B2 (en) * 2005-03-09 2010-03-16 Intuit Inc. Search quality detection
US20060230005A1 (en) 2005-03-30 2006-10-12 Bailey David R Empirical validation of suggested alternative queries

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320419A (ja) * 1997-05-22 1998-12-04 Nippon Telegr & Teleph Corp <Ntt> 情報関連づけ装置およびその方法
US20020010726A1 (en) * 2000-03-28 2002-01-24 Rogson Ariel Shai Method and apparatus for updating database of automatic spelling corrections
JP2004334638A (ja) * 2003-05-09 2004-11-25 Nippon Telegr & Teleph Corp <Ntt> 追加検索語取得装置、追加検索語取得方法、これらの追加検索語取得装置または追加検索語取得方法を実現するプログラムおよびそのプログラムが記憶された記録媒体
JP2005182408A (ja) * 2003-12-18 2005-07-07 Yasutaka Shimizu 用語検索支援システム、用語検索支援方法及び用語検索支援プログラム

Also Published As

Publication number Publication date
EP1922609A4 (en) 2010-01-06
WO2007021438A9 (en) 2008-07-17
CN101288046A (zh) 2008-10-15
WO2007021438A1 (en) 2007-02-22
US20070038615A1 (en) 2007-02-15
CN101288046B (zh) 2010-10-06
US7321892B2 (en) 2008-01-22
JP2009505221A (ja) 2009-02-05
EP1922609A1 (en) 2008-05-21

Similar Documents

Publication Publication Date Title
JP4866421B2 (ja) ユーザの自己修正する検索動作の分析により検索文字列の代替スペルを特定する方法
CA2513852C (en) Phrase-based searching in an information retrieval system
US7627548B2 (en) Inferring search category synonyms from user logs
US6564210B1 (en) System and method for searching databases employing user profiles
US9535911B2 (en) Processing a content item with regard to an event
US7580921B2 (en) Phrase identification in an information retrieval system
US7536408B2 (en) Phrase-based indexing in an information retrieval system
US9639609B2 (en) Enterprise search method and system
US7765209B1 (en) Indexing and retrieval of blogs
US20070198481A1 (en) Automatic object reference identification and linking in a browseable fact repository
US20080215565A1 (en) Searching heterogeneous interrelated entities
US20070299826A1 (en) Method and apparatus for establishing relationship between documents
US8423885B1 (en) Updating search engine document index based on calculated age of changed portions in a document
US20090193007A1 (en) Systems and methods for ranking search engine results
US10140297B2 (en) Supplementing search results with information of interest
JP2001312505A (ja) データベースのドキュメントにおける新規な事項・新規クラスの検出及び追跡
CN102609433A (zh) 基于用户日志进行查询推荐的方法及系统
Albishre et al. Effective 20 newsgroups dataset cleaning
US20130031083A1 (en) Determining keyword for a form page
CN113342923A (zh) 数据查询方法、装置、电子设备及可读存储介质
US11630829B1 (en) Augmenting search results based on relevancy and utility
US20110289081A1 (en) Response relevance determination for a computerized information search and indexing method, software and device
US8775443B2 (en) Ranking of business objects for search engines
CN111723286A (zh) 一种数据处理的方法及装置
JP2010282403A (ja) 文書検索方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110621

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111018

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141118

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4866421

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees