本発明の様々な実施形態が、1又は複数のデータベースを検索するシステム及び方法を提供する。いくつかの例示的実施形態において、本願テクノロジーは、サービス提供者のデータベースがネットワーク内の1又は複数のエンドユーザにより検索されることを可能にすることができる。コンピュータネットワークを通じてエンドユーザにサービス、製品及び/又はコンテンツを提示するサービス提供者は、1又は複数のデータベースの中にエンドユーザがアクセス可能なレコードを記憶することがある。さらに、サービス提供者は、エンドユーザが1又は複数のデータベースを検索することを可能にしたい場合がある。例えば、サービス提供者がエンドユーザにレストランのリストとレストランに関連する情報(例えば、レビュー及びエンドユーザコメント)とを提供する場合、エンドユーザがレストランに関するレコードについて迅速かつ容易に検索できるようにすることは有益であろう。しかしながら、従来の検索エンジンは、実装するのが困難であり、費用のかかる場合がある。このことは、さらに、サービス提供者がそのエンドユーザに対して上記のような検索経験を可能にするインフラストラクチャ及び/又はテクノロジーを所有していないという事実によってしばしば度合を強められる。
本発明の様々な実施形態に従い、サービス提供者のデータベースを検索することに関連するシステム及び方法が本明細書において提供される。例示的実施形態において、本明細書に提示されるテクノロジーは、サービス提供者データベースのレコードを、検索テクノロジーを開発する必要なしに、コンピュータネットワークを通じて容易に検索可能にする。さらなる実施形態において、本願テクノロジーは、関連する検索結果を、エンドユーザに深く関連するコンテンツと共に迅速に供給する。別のさらなる実施形態において、本願テクノロジーは、検索結果の収益化を可能にする。
さらに、クラウドコンピューティングを用いて1又は複数のデータベースを検索するシステム及び方法が本明細書において説明される。データベースを検索するための一例示的システムが、ネットワークを介してデータベースアップロードによってサービス提供者からデータベースを受信するように構成された通信モジュールを含むことができ、このデータベースは1又は複数のレコードを有し、1又は複数のレコードは少なくとも1つのフィールドを含む。上記システムは、メモリに記憶された命令を実行するプロセッサを含んで、データベースの1又は複数のレコードを少なくとも1つのフィールドに基づいて処理することもできる。プロセッサは、メモリに記憶された命令を実行して:ネットワークを介して検索クエリを受信し、検索クエリは処理されたデータベースの1又は複数のレコードの少なくとも1つのフィールドの検索パラメータを含み、検索クエリはエンドユーザによる音データ入力によって提供され;検索クエリの検索パラメータに基づいて、上記の処理されたデータベースの中で1又は複数の検索結果を決定し;表示のためネットワークを介してエンドユーザに1又は複数の検索結果を送信する;こともできる。
クラウドコンピューティングを用いて1又は複数のデータベースの検索性能を提供することによって、サービス提供者は、従来手段を用いて検索能力を提供することに時間や資源を投資する必要なしに、クラウドにより提供されるコンピューティングリソース、ソフトウェア及び情報を利用することができる。例えば、様々な実施形態に従い、サービス提供者は、データベースのレコード内のフィールドのすべて又は一部を話すことによってユーザがデータベースを検索できるようにしたい場合がある。こうした実施形態において、サービス提供者は、必要なテクノロジー及びインフラストラクチャを開発する必要なしに、発話認識検索エンジンを活用し、検索結果がユーザに提示される方法を介して制御をさらになお維持することができる。
さらに、サービス提供者は、サービス提供者の競合他社を上回って競争上の優位性を増すように、エンドユーザに対する検索結果の提示を改良したい場合がある。検索結果を提供するシステム及び方法が説明され、このシステム及び方法は、検索のスピードを改良し、画像及び/又はリッチコンテンツを用いて検索結果を改良することができる。1又は複数の検索結果を提供する一例示的システムが、ネットワークを介して検索クエリを受信するように構成された通信モジュールを含むことができる。検索クエリは、処理されたデータベースの1又は複数のレコードの少なくとも1つのフィールドの1又は複数のクエリのかたまり(クエリチャンク)(query chunks)を含むことができる。検索クエリは、エンドユーザから音データ入力によって提供されることができる。例示的システムは、メモリに記憶された命令を実行するプロセッサを含んで:検索クエリの1又は複数のクエリチャンクに基づいて、処理されたデータベースの中で1又は複数の検索結果を決定し;表示のためリアルタイムでエンドユーザに、ネットワークを介して、1又は複数の検索結果の1又は複数のフィールドを選択的に送信し;表示のためリアルタイムでエンドユーザに、ネットワークを介して、1又は複数の検索結果の1又は複数のさらなるフィールドを選択的に送信する;こともできる。クラウドコンピューティングネットワークを利用することによって、サービス提供者は、検索結果を、エンドユーザの検索経験をより良くし得るさらなるコンテンツと共に提供することが可能になり、これにより、いかなる追加の負荷もサービス提供者にかけられることなしに、改良された機能性を提供することが可能になる。
最後に、本明細書に説明されるクラウドコンピューティングシステムの例示的実施形態は、検索結果を用いて宣伝を提供することによって、サービス提供者及び他の関係者のために収益化されることができる。1又は複数の検索結果の中に宣伝を提供する一例示的システムが、少なくとも1つのサービス提供者と1又は複数のエンドユーザとを有するネットワークを含むことができる。上記システムは、ネットワークを介してデータベースアップロードによって少なくとも1つのサービス提供者からデータベースを受信するように構成されたネットワークに結合されたサーバを含むこともできる。データベースは1又は複数のレコードを含むことができ、1又は複数のレコードは少なくとも1つのフィールドを有することができる。サーバは、少なくとも1つのフィールドに基づいて、データベースの1又は複数のレコードを処理するように構成されることができる。サーバは、ネットワークを介して検索クエリを受信するようにさらに構成されることができる。検索クエリは、処理されたデータベースの1又は複数のレコードの少なくとも1つのフィールドの検索パラメータを含むことができ、エンドユーザから音データ入力によって提供されることができる。1又は複数の検索結果は、検索クエリの検索パラメータに基づいて、処理されたデータベースの中で決定されることができる。
さらに、サーバは、検索クエリ又は1若しくは複数の決定された検索結果に基づいて広告データベースを検索し、広告データベースの検索に基づいて、1又は複数の垂直的なアプリケーションにわたって1又は複数の広告結果を生成するように構成されることができる。1又は複数の検索結果は、表示のためネットワークを介してエンドユーザに送信されることができ、1又は複数の広告結果もまた、表示のためネットワークを介して送信されることができ、ここで、1又は複数の広告結果は、1又は複数の検索結果に関連付けられる。
これにより、サービス提供者及び/又は広告主は、別個の宣伝システムの採用を要求されることに代わって、クラウドネットワークのリソースを利用することによって、1又は複数の垂直的なサービスアプリケーションにわたって宣伝を提供することができる。一例示的実施形態において、宣伝が垂直的なアプリケーションに配信されるとき、入札プロセスを用いて検索結果の位置付けに影響を与えることができ、これにより、提供される宣伝からさらなる収益を生むことができる。サービス提供者は、様々な実施形態に従い、宣伝により生まれた収益の一部を受け取ることによって、データベースを検索するための説明された方法及びシステムを利用することの追加のインセンティブを有することができる。宣伝をさらにカスタマイズするために、検索クエリ履歴とエンドユーザに関する情報とを利用して、宣伝の有効性を潜在的に増大させることもできる。
本明細書において、用語「クラウドコンピューティング」は、ネットワークベースのコンピューティングを包含し、ここで、コンピューティングリソース、ソフトウェア及び情報は、ネットワークを介して提供され、サービス提供者及び/又はユーザ装置によりアクセス可能であることに留意されたい。ユーザ装置は、これらに限定されないが、PC、ラップトップ、ノートブック、ゲームコンソール(例えば、X−box)、音楽プレーヤ、タブレット、IPod、スマートフォン、自動車コンピュータシステム及びインターネット対応TVを含むことができる。スマートフォンは、概して、コンピューティング性能を備えた電話機として定義されることができる。スマートフォンは、インターネットアクセスをエンドユーザに提供することができる。
図1は、本発明の様々な実施形態に従う、1又は複数のデータベースを検索する例示的システム100のブロック図である。システム100は、1又は複数のクライアント110、1又は複数のサービス提供者130、ネットワーク140及び検索サーバ180を含むことができる。検索サーバ180は、1又は複数のアカウント150、検索エンジン160及び1又は複数のデータベース170を含むことができる。様々な実施形態において、1又は複数のデータベース170は、1又は複数のサービス提供者130に属することができる。
本明細書に提供される図のすべてのように、任意の数の要素が例示的システム100に存在することができ、本明細書に提示される例示的方法は要素の1又は複数により実行されることができることを当業者には認識されたい。任意の数の任意の要素が例示的システム100に存在することができ、例示的システム100はこれらの要素の必要を満たすように構成される。例えば、検索サーバ180は、3つのクライアントだけ図1に図示されているという事実にもかかわらず、ネットワーク140を介して検索結果を1又は複数のクライアント110に伝達することができる。本明細書において言及されるすべての図について、同様に番号付けされた要素は全体にわたって同様の要素を示す。
1又は複数のクライアント110は、ネットワーク140にアクセスするためにエンドユーザにより使用されるユーザ装置であり得る。様々な実施形態において、クライアント110は、ネットワーク140を介してサービス提供者130及び/又はデータベース170の1若しくは複数にアクセスするために使用されるユーザ装置であり得る。クライアント110は、インターネットからのウェブページなどのコンテンツページを描画するように構成されたネットワークブラウザアプリケーション(図示せず)を含むことができる。クライアント110は、ネットワーク140を通じてサービス提供者130と通信することができる。
1又は複数のサービス提供者130は、ネットワークを通じて少なくとも1つのクライアント110にサービスを提供することができる。こうしたサービスの例には、ビデオコンテンツを提供すること、及び/又はエンターテインメント、レストランなどに関する情報を提供することを含むことができる。サービスは、(例えば、ウェブブラウザにロードされたユーザインタフェースを使用することによって)エンドユーザがインターネットを通じてサービス及び/又はソフトウェアにアクセスできるようにするウェブサービスであり得る。
定められたサービス提供者130が、検索サーバ180上にアカウント150を有することができる。アカウント150は、サービス提供者のアカウントに関するアカウント情報を含むことができる。含まれるアカウント情報には、以下に説明されるとおり、認証情報、請求情報及び/又は連絡先情報を含むことができる。アカウント150は、サービス提供者が検索サーバへのアクセスを得ることができ、1又は複数のデータベース170を検索サーバ180に提供することができる前に、必要条件であり得る。1又は複数のデータベース170は、検索サーバ180上に記憶されることができる。さらに、1又は複数のデータベース170は、データベースアップロードを用いて検索サーバ180上に受信されることができる。データベースアップロードは、例えば、ネットワーク140を通じて行われてよい。
ネットワーク140は、任意のタイプのネットワークとすることができ、これらに限定されないが、インターネット、LAN、WAN、電話網、及びデータへのアクセスを可能にする任意の他の通信ネットワーク、並びにこれらの任意の組み合わせを含むことができる。ネットワーク140は、パブリックネットワーク(例えば、インターネット)又はプライベートネットワークであってよく、有線ネットワーク又はワイヤレスネットワークの形態をとることができる。
1又は複数のサービス提供者130は、1又は複数のクライアント110からユーザ入力120を受信することができる。ユーザ入力120は、ユーザ装置を用いて入力され、例えば、検索クエリを含むことができる。検索クエリは、1又は複数のデータベース170に含まれる情報のための要求であってよく、以下でさらに説明されるとおり、検索パラメータを含むことができる。検索クエリは、クライアント110上へエンドユーザにより入力された音データをさらに含むことができる。ユーザ入力120は、ネットワーク140を介して検索サーバ180に中継されることができる。図1に示されるとおり、検索サーバ180は、1又は複数のサービス提供者130からユーザ入力125を受け入れることができる。また、図1に示されるとおり、ユーザ入力120は、サービス提供者130を通じて検索サーバ180に中継されることができ、あるいは、サービス提供者130により中継されることなしにネットワーク140に送信されることができる。
1又は複数の検索エンジン160が使用されて、以下で説明されるとおり1又は複数のデータベース170を処理し、データベース170の検索機能性を提供することができる。検索エンジン160が使用されて、データベース170から検索結果を生成することもできる。1又は複数のデータベース170の検索は、単一の検索エンジンによって又は複数の検索エンジンによって行われることができ、ここで、各検索エンジンは、異なるタイプの検索クエリに基づいて検索を行う。例えば、第1の検索エンジンがテキスト検索を行うことができ、第2の検索エンジンが話された言葉の検索を行うことができる。検索結果は、検索クエリの1又複数の検索パラメータに一致し、あるいはこれに関連する、データベース170からの1又は複数のレコードを含むことができる。
検索エンジン160を用いて、検索サーバ180は、ユーザ入力120に応じて、データベース170からの1又は複数の検索結果190を送信することができる。ネットワーク140を用いて、検索結果190はサービス提供者130に送信されることができ、サービス提供者130は検索結果190をクライアント110に中継して戻すことができる。図1に示されるとおり、検索サーバ180は、1又は複数のサービス提供者130から検索結果195を決定し、送信することができる。さらに、検索結果190は、サービス提供者130を通じてクライアント110に中継されることができ、あるいはサービス提供者130を通じて中継されることなしにネットワーク140を介して送信されることができる。システム100は、これにより、1又は複数のデータベース170に対する検索機能性を提供することができる。他の恩恵のなかでも、システム100は、サービス提供者のインフラストラクチャの外部で1又は複数のデータベースを記憶し、処理することによって、音データを用いた検索などの進化した検索能力を有利に提供することができる。
図2は、検索サーバ270(図1に示された例示的検索サーバ180など)に関連する例示的アーキテクチャ200を示す。アーキテクチャ200は、検索クエリモジュール210、クエリ送信モジュール220、ネットワーク230、通信モジュール240、検索モジュール250、結果送信モジュール260及び自然言語クエリプロセッサ280を含む。代わりの実施形態が、より多くの、より少ない又は機能的に均等のモジュールを含むことができる。様々なモジュールが本明細書に説明される様々なステップのいくつか又はすべてを行うように構成されることができるが、より少ないモジュール又はより多くのモジュールが提供されてよく、様々な実施形態の範囲内になお入り得る。
検索クエリモジュール210は、検索クエリ発行元から検索クエリを受信することができる。様々な実施形態において、検索クエリ発行元は、ユーザ装置を利用するエンドユーザ、又はサービス提供者により運用されるサーバであってよい。検索クエリ発行元は、検索モジュール250による使用のために検索クエリを提供することができる。さらに、検索クエリ発行元は、検索モジュール250が検索を行った後、検索サーバ270により提供される検索結果をネットワーク230を介して受信する。
検索クエリは、検索サーバ270上のデータベースの情報に対するエンドユーザの要求を含むことができる。検索クエリは、任意の適切な形式で受信されることができる。例えば、エンドユーザは、音データを捕捉するマイクロフォンを用いて検索クエリ又は検索の一部を供給することができる。さらに、エンドユーザは、カメラ又は同様のレコーディング装置を使用して検索クエリの中に画像を含むことができる。検索クエリの内容は、音データ、テキスト、話された言葉、画像、他のデータ、又はこれらの任意の組み合わせを含むことができる。いくつかの実施形態において、検索クエリモジュール210は、ユーザ装置上に、検索クエリを入力する1又は複数のユーザインタフェースを提供することができる(例えば、サービス提供者を指定するために使用することができるディスプレイ画面上のボタン又はディスプレイ画面上の複数のボタン)。
検索クエリモジュール210が検索クエリを受信した後、検索クエリはクエリ送信モジュール220に提供されることができ、クエリ送信モジュール220はネットワーク230を介して通信モジュール240に検索クエリを送信することができる。ネットワーク230は、サービス提供者及び/又はエンドユーザと検索サーバ270との間の通信を可能にする任意の適切なコンピュータネットワーク又は複数のネットワークであってよい。ネットワーク230は、任意のタイプ及び数のデータベース、サーバ、エンドユーザ、コンピューティング装置及びポリシーエンジンを含むことができる。
いくつかの例示的実施形態において、クエリ送信モジュール220は、検索クエリを1又は複数のクエリチャンクに分割するステップを行うことができる。クエリチャンクは、検索クエリの所定断片又は部分であってよい。クエリチャンクは任意のサイズであってよい。例えば、検索クエリが話された言葉を含む場合、クエリチャンクは、エンドユーザにより話された言葉からの言葉又は語句を含むことができる。同様にして、検索クエリがテキスト及び音データを含む場合、テキストは、音データから別個のチャンクに分割されることができる。検索クエリは大量のデータを含むことができるため、検索クエリをチャンクに分割することは、検索要求が受信され処理されるスピードをいくつかの実施形態において有利に増大させることができる。スピードの増大は、検索クエリ全体の代わりにより小さいクエリチャンクを送信することに起因して、送信遅延時間の低減とネットワークレイテンシの影響とから得ることができる。
通信モジュール240、データベースモジュール245、検索モジュール250及び結果送信モジュール260が共に、検索サーバ270を構成すると考えられる。通信モジュール240は、サービス提供者から1又は複数のデータベースを受信するステップを行うことができる(図3に関連して以下で説明される方法300のステップ310など)。1又は複数のデータベースは、検索サーバ270上に、例えばデータベースモジュール245に記憶されることができ、以下で説明されるような処理のため検索モジュール250に送信されることができる。
通信モジュール240は、検索クエリを受信するステップを行うことができる(図3に関連して以下で説明される方法300のステップ330など)。それから、検索クエリは、以下で説明されるとおり、検索を行う目的で検索モジュール250に送信されることができる。
データベースモジュール245は、サービス提供者から受信される1又は複数のデータベースを記憶することができる。1又は複数のデータベースは、検索モジュール250による処理の前、及び/又は処理が行われた後、記憶されることができる。データベースモジュール245がサービス提供者からデータベースをまだ受信していない場合、データベースモジュールは、いかなるデータベースも含まなくてよい。データベースモジュール245上に1又は複数のデータベースを記憶することによって、1又は複数のデータベースの処理及び検索が、サービス提供者のインフラストラクチャの外部で有利に行われることができる。
検索モジュール250は、データベースの1又は複数のレコードを処理するステップを行うことができる(図3に関連して以下で説明される方法300のステップ320など)。一例示的実施形態において、検索モジュール250は検索クエリの検索パラメータを場合により決定することができるが、他の実施形態において、通信モジュールが検索クエリと一緒に検索パラメータを受信することができる(図3に関連して以下で説明される方法300のステップ340など)。前述されたステップは、様々な実施形態に従い、別個のモジュールによって、又は同一のモジュールによって(図2に示されるとおり)行われることができる。
結果送信モジュール260は、表示のためネットワーク230を介してエンドユーザに1又は複数の検索結果を送信するステップを行うことができる(図3に関連して以下で説明される方法300のステップ350など)。検索結果は、サービス提供者に送信され、表示のためエンドユーザに中継されることができる。検索結果は、代わりに、ユーザ装置に直接表示するためエンドユーザに送信されることができる。図2におけるシステムは、本明細書に説明される他の例示的システムのうち任意のものとマージすることができ、あるいは連動して使用することができることを当業者には十分理解されたい。
図3は、データベースを検索する一例示的方法300のフローチャートである。方法300のステップ310において、1又は複数のデータベースがネットワークを介してデータベースアップロードによってサービス提供者から受信されることができ、ここで、データベースは1又は複数のレコードを有し、1又は複数のレコードは少なくとも1つのフィールドを含む。サービス提供者が、例えば、ウェブサービスを提供するとき、レコードは、インターネットコンテンツを含む1又は複数のウェブページに対応し得る。例示的実施形態において、少なくとも1つのフィールドは、1又は複数のページ上に出現するテキストなどの1又は複数のウェブページに関連付けられたコンテンツと、1又は複数のウェブページに関連付けられた画像及び他のオーディオビジュアルコンテンツとを含むことができる。
例示的実施形態において、レコードは、宛先ウェブアドレスフィールド、レコード説明フィールド、レコード画像フィールド及びレコードリッチコンテンツフィールド、又はこれらの任意の組み合わせのうち、少なくとも1つを含むフィールドを有することができる。宛先ウェブアドレスフィールドは、ウェブページの場所を提供することができる。レコード説明フィールドは、ウェブページに関連付けられたインターネットコンテンツの簡単な説明を含むことができる。レコード画像フィールドは、ウェブページ上に位置し、あるいはウェブページに関連付けられた1又は複数の画像を含むことができる。レコードリッチコンテンツフィールドは、ウェブページに関連付けられた任意の適切なオーディオビジュアルコンテンツを含むことができ、これらに限定されないが、音データ、ビデオデータ、画像データ、視覚効果などを含むことができる。レコードリッチコンテンツフィールドは、ウェブページがアクセスされたときに提示することができ、あるいはレコードが検索結果の一部であるときに提示することができるデータと共に投入される(populated)ことができる。各フィールドは、サービス提供者により所望されるとおりに投入されることができ、これにより、クラウドコンピューティングネットワークを利用しながら、データベース内のどんなレコードが検索クエリに応じて提供されるかを制御する能力をサービス提供者に与えることができる。さらに、データベース内のレコードに関連付けられたフィールドの中でリッチコンテンツを提供することによって、サービス提供者は、検索結果がどのようにユーザ装置上に提示され、あるいはその他の方法で描画されるかに影響を及ぼすことができる。
方法300の動作ステップにおいて、アカウント情報は、サービス提供者から受信することができる。アカウント情報は、認証情報、請求情報及び連絡先情報を含むことができる。アカウント情報を受信して、検索サーバ180上にアカウントを作成することができ、これにより、サービス提供者が本明細書に説明される検索機能性を利用できるようにすることができる。認証情報は、名称及びパスワードを含み、適切なアカウントにアクセスする能力をサービス提供者に提供することができる。請求情報及び連絡先情報がサービス提供者に同様に提供されて、検索サーバ180により提供される検索機能性又は検索結果と引き換えに対価を受け取ることを容易にすることができる。検索機能性又は検索結果に関連する対価及び/又は売上収益に関するさらなる詳細が、本明細書において後から提供される。
検索サーバ上にアカウントを有することで、サービス提供者が検索サーバ180に1又は複数のカスタマイズされたデータベースを送出し(submit)、検索提供者により所望されるときに上記のようなデータベースに対して変更を行うことができるようにできる。データをサービス提供者から受信して、データベースの中の1又は複数のレコードを追加し、削除し、あるいはその他の方法で変更することができ、これにより、データベースが(例えば、検索サーバ180によって)受信された後でさえ、データベースの管理及び編集における柔軟性をサービス提供者に提供することができる。この変更は、いくつかの実施形態において、認証されたスクリプトを用いて自動化されることもできる。
方法300のステップ320において、データベースの1又は複数のレコードは、少なくとも1つのフィールドに基づいて処理されることができる。データベースの処理は、検索提供者が各レコードの情報を検索クエリの検索パラメータと比較できるようにできる1又は複数のフィールドに関する情報を提供する。様々な実施形態に従い、検索サーバは、レコードと検索クエリの検索パラメータとの間に一致、関連、関連性、関連付け又は特定タイプの関係があるかどうかを判定することができ、これにより、エンドユーザに返される検索結果のリストの中に上記レコードを含むことを保証することができる。
例えば、検索クエリが音データを含むとき、少なくとも1つのフィールドに基づいてデータベースを処理することには、データベースの1又は複数のレコードの各々に対して音声データを作るようにデータベースを処理することをさらに含む。この音声データは、少なくとも1つのフィールドに、テキストデータの話された形式のバリエーションを含むことができる。例示的実施形態において、データベースは、2009年11月2日に申請されたKeyvan Mohajerらによる“Melodis Crystal Decoder Method and Device”と題された米国特許出願公開第2010/0121643号に説明されるように音声データを作るように処理されることができ、この特許出願公開はその全体が本明細書において参照により援用される。こうした実施形態において、サービス提供者は、必要なテクノロジー及びインフラストラクチャを独立して開発する必要なしに発話認識検索エンジンの恩恵を受けることができる。
同様にして、検索パラメータがテキストデータを含むとき、データベースを処理することには、1又は複数のフィールドからキーワードを識別することを含むことができる。さらに、検索パラメータが画像データを含むとき、データベースを処理することには、レコード画像データを含む1又は複数のフィールドをスキャンして、検索パラメータとの比較用にレコード画像データのファセット(facets)を識別することを含むことができる。
動作ステップにおいて、処理されたデータベースは、例えば、図1の検索サーバ180上に記憶されることができる。こうした実施形態は、検索クエリが受信されるたびに検索サーバがデータベースを再処理する必要がなくなり、これにより潜在的に時間を節約し、より迅速な応答を検索発行元に提供することになるため、有利であり得る。
方法300のステップ330において、検索クエリがネットワークを介して受信されることができ、ここで、検索クエリは、処理されたデータベースの1又は複数のレコードの少なくとも1つのフィールドの検索パラメータを含む。さらに、検索クエリはエンドユーザから音データ入力によって提供されることができる。検索パラメータは検索クエリのファセット又は特徴であってよい。こうしたファセットは、データベースがその中のレコードの関連を決定するように処理されたときに各レコードについて作られる標準化された情報と比較されることができる。検索パラメータは検索クエリの一部又は検索クエリの全体を含むことができる(例えば、検索クエリがテキストであるとき、検索パラメータは検索クエリ内の言葉又は言葉の組み合わせであってよい)。検索パラメータはいくつかの実施形態において検索クエリから(例えば検索モジュール250によって)導出されることもできる。例えば、検索クエリが音データを含むとき、検索パラメータは数字形式又はグラフィカル形式において音データの音声ファセットを含むことができる。
方法300のステップ340において、1又は複数の検索結果が、検索クエリの検索パラメータに基づいて、処理されたデータベースの中で決定されることができる。処理されたデータベースの中で1又は複数の検索結果を決定することは、例えば、検索パラメータとデータベースの1又は複数のレコードの少なくとも1つのフィールドとを照合することによって、あるいは検索パラメータと1又は複数のデータベースが処理されたときに作られる情報とを比較することによって行われることができる。検索結果は、検索パラメータに最も近く類似する情報をどのレコードが含むかを決定することによって識別されることができる。照合は、検索パラメータと1又は複数のフィールドとの間の類似度に基づいてよい。本願テクノロジーの様々な例示的実施形態において、検索パラメータは、検索パラメータの情報に対して関連し、関係し、関連付けられ、あるいは特定タイプの関係を有するレコードを識別するように1又は複数のデータベースが処理されたときに作られる情報に対して、比較されることができる。
例示的実施形態において、検索パラメータがデータベースの中のレコードの情報と比較されるとき、この情報が検索パラメータにどれほど類似するかに基づいて、レコードにスコアが割り当てられることができる。それから、検索結果は検索パラメータに対して最大の類似度を有するレコード(すなわち、スコア付けがどのように行われるかに依存して最高又は最低の類似度スコアを有するレコード)を含むことができる。
一例として、処理されたデータベースが各レコードについての音声データを含む場合、照合は、検索クエリの検索パラメータ(例えば、音データの音声ファセット)と各レコードについての音声データとを比較して所定許容範囲内に入る照合分を決定することによって行うことができる。照合したレコードが検索クエリに対する類似度の所定許容範囲より良好な場合、照合したレコードは検索結果内に含まれることができる。
様々な実施形態において、検索クエリは、コマンドを含むこともできる。本方法は、このコマンドに基づいてデータベースの検索動作を行う付加的なステップをさらに含むことができる。コマンドは、エンドユーザが検索結果をさらにカスタマイズし、かつ/あるいは狭める方法を提供することができる。コマンドは、検索クエリと同じ形式(例えば、話された言葉、テキストなど)をとってもよく、あるいは異なる形式をとってもよい。例えば、コマンドには、1又は複数のデータベースの中で10個の最も類似するレコードに検索結果を制限することを含むことができ、あるいは指定の地理的ロケーションに検索結果を制限することを含むことができる。検索サーバは、コマンドを追加の検索パラメータとして認識し、コマンドを様々な例示的実施形態において指定された動作を行うことによって実施することができる。
方法300のステップ350において、1又は複数の検索結果は、表示のためエンドユーザにネットワークを介して送信されることができる。上記で述べられたとおり、1又は複数の検索結果は、サービス提供者に送信されることができ、あるいはユーザ装置上でエンドユーザに提供されることができる。検索結果は、リスト形式、又は任意の他の適切な形式で提供されることができ、一緒に、あるいは1つずつ、エンドユーザのディスプレイ上に描画されることができる。また、検索結果内に含まれるレコードのフィールドが、表示のためエンドユーザに送信されることもできる。例えば、検索結果は、表示される各レコードのサムネイル画像を含むことができ、ここで、サムネイル画像は、各レコードについて、データベースの中のフィールドに記憶される。
様々な方法を利用して、検索結果がエンドユーザに表示されるときのため、1又は複数の検索結果を体系化することができる。例えば、各レコードの少なくとも1つのフィールドが、順位付け優先度を含むことができる。順位付け優先度は、サービス提供者によって割り当てられることができ、所望される検索結果順序に基づくことができる。それから、1又は複数の検索結果は、順位付け優先度に基づいて体系化されることができる。
順位付け優先度を利用する実施形態は、検索されることになる1又は複数のデータベースの中に順位付け優先度を単に提供することによってサービス提供者がそれから所望される順序で検索結果を提示することを可能にすることができるため、有利であり得る。例えば、データベースが俳優の名前をレコードとして含む場合、複数の俳優が同じ名前を有し得る可能性がある。順位付け優先度フィールドを使用することによって、サービス提供者は、所与の名前を有するより人気の俳優が、同じ名前を有するより無名な俳優の前にエンドユーザに提示されることを示すことができる。最も人気の俳優に最高の順位付け優先度を割り当てることによって、サービス提供者は、1又は複数のデータベースを検索するためにクラウドコンピューティングネットワークを利用しながら、検索結果に影響を与えることができる。
方法300は、サービス提供者がクラウドコンピューティングネットワークを利用して1又は複数のデータベースのための検索機能性を提供することを可能にすることができることを、当業者には十分理解されたい。すなわち、本願テクノロジーは、ソフトウェア開発者を含むサービス提供者に、検索機能性及び収益化機能性を届けることを可能にする。検索サーバの利用を容易にするために、アプリケーションプログラミングインタフェース(“API”)とソフトウェア開発キット(“SDK”)とがサービス提供者に提供されることができる。さらに、サービス提供者がコンピューティングクラウドの中の1又は複数のデータベースにインデクスを付け、体系化することを可能にすることによって、方法300は、独立して1又は複数のデータベースに対してインデクスを作成する必要なしに、検索機能性を提供することができる。さらに、例示的実施形態において、サービス提供者が本明細書に提示される例示的なクラウドシステムの中でサービス提供者自体のデータにインデクスを付けること可能にすることによって、及び音声により検索する本願テクノロジーを利用することによって、データベース検索結果が、音声からテキストへの変換の後にテキスト検索を行うという従来の2段階プロセスに比べてより速くより正確に送信されることになる。
サービス提供者により提供されるデータベースに検索機能性を提供することに加えて、検索サーバ(本明細書に説明される例示的検索サーバなど)は、スタンドアロンの検索エンジン性能を提供することができる。こうするために、検索サーバによってアクセス可能なデータベースと1又は複数のデータベース(又はインデクス)が処理されるときに作られる情報とが統合されて、統合された処理されたデータベースを作ることができる。それから、エンドユーザは、検索エンジンユーザインタフェースを使用して、統合された処理されたデータベースに検索クエリを提供することができる。検索エンジンユーザインタフェースには、任意の適切なインタフェースを使用することができる。本願テクノロジーの様々な実施形態において、検索エンジンユーザインタフェースは、様々な実施形態において単一のボタンを用いて始動されることができる。検索エンジンユーザインタフェースを介したユーザ入力の結果として、統合された処理されたデータベースが検索されることができ、検索結果が表示のためエンドユーザに送信されることができる。統合された処理されたデータベースを検索する1つの例示的な方法が本明細書において方法300に提示されている。
図4は、検索結果を提供する一例示的方法400のフローチャートである。方法400のステップ410において、検索クエリがネットワークを介して受信されることができる。検索クエリは、上記で説明されたとおり、1又は複数のクエリチャンクを含むことができ、検索クエリは、エンドユーザから音データ入力によって提供されることができる。検索クエリは、いくつかの実施形態において、検索サーバによって受信される前に、クエリチャンクに分割されることができる(例えば、検索クエリは、クライアントによって、及び/又はサービス提供者によって分割されることができる)。しかしながら、検索クエリは、受信されたとき検索サーバによってチャンクに分割されることもでき、本願テクノロジーは、この点について限定されない。特に、クエリチャンクは、検索サーバと検索発行元との間の双方向接続を介して送られることができる。検索クエリがエンドユーザから収集されるとき、検索クエリはリアルタイムで1又は複数のクエリチャンクで検索サーバに送られることがあるため、上記のような双方向接続は有利であり得る。
1又は複数のクエリチャンクは、処理されたデータベースの1又は複数のレコードの少なくとも1つのフィールドを含むことができ、ここで、データベースは、上記で説明されたとおり処理されることができる。少なくとも1つのフィールドを含むことによって、検索プロセスは、一例示的実施形態において、早められることができる。例えば、検索クエリからのテキストデータが、音及び/又は画像コンテンツに関連するチャンクの前にクエリチャンクで送信されることができ、このことは、検索サーバが、音及び/又は画像コンテンツが受信され、かつ/あるいはデータベースの中のレコードと比較される前あるいは間に、検索クエリのテキストデータ部分についての結果を処理し、返すことを可能にすることができる。こうした実施形態は、ネットワークレイテンシと送信遅延との影響を低減することによって、検索スピードを増大させ、エンドユーザ経験をより良くすることができる。
さらに、検索クエリが音及び/又は画像データを含むとき、検索クエリをクエリチャンクに分割することで、検索プロセスをさらに早めることができる。クエリチャンクは実質的に等しいサイズとすることができ、あるいは検索提供者の要件及び好みに依存して様々なサイズとすることができる。検索クエリをチャンクに分割することで、検索クエリ全体が受信されることを待つ必要なしに、検索サーバが受信したクエリチャンクを処理し、検索結果を提供することを可能にすることができる。こうした実施形態は、特に検索クエリが大量の音及び/又は画像データを含むとき、エンドユーザの検索経験をより良くすることができる。
方法400のステップ420において、1又は複数の検索結果が、処理されたデータベースの中で、検索クエリの1又は複数のクエリチャンクに基づいて決定されることができる。1又は複数の検索結果は、受信したクエリチャンクを用いて決定されることができ、このクエリチャンクは、上記で説明されたとおり、検索サーバが検索結果を決定する前に検索クエリ全体が受信されるまで待つ必要がないため、検索効率の向上をもたらすことができる。検索パラメータは、クエリチャンクから導出され、かつ/あるいは抽出され、処理されたデータベースの中のレコードからの情報と比較されることができる。
上記で説明されたとおり、検索結果は、クエリチャンクの検索パラメータに基づいて決定されることができる。様々な実施形態において、検索結果は、後続のクエリチャンクを検索サーバが受信したとき、精緻化されることができる。例えば、検索結果のリストが第1のクエリチャンクを用いて決定されることができる。この検索結果のリストは、第2のクエリチャンクが受信されたとき、第2のクエリチャンクからの検索パラメータを用いて上記検索結果を検索することによって、再順序付けされることができる。こうした実施形態は、各クエリチャンクを用いてデータベース全体を検索することを要さないことによって、より効率良く検索結果リストを提供することができる。
方法400のステップ430において、1又は複数の検索結果の1又は複数のフィールドが、表示のためリアルタイムでエンドユーザに、ネットワークを介して選択的に送信されることができる。レコードの各フィールドは、上記で説明されたとおり、テキストデータ、音データ及びリッチコンテンツなどの異なるタイプのデータを含むことができる。1又は複数のフィールドの選択的な送信は、例えば、他のフィールドと比べてサイズの比較的小さいフィールドを選択することによって、行うことができる。検索結果内のレコードの1又は複数のフィールドを選択的に送信することによって、検索サーバは、追加のフィールドの中のデータと比べてサイズの比較的小さいデータを含むフィールドを送信することができる。テキストデータなどの比較的小さいデータを含むフィールドは、追加のフィールドの中のデータが送信された場合と比べて、より効率良くネットワークをわたって送信されることができる。検索結果をより迅速に提供することによって、ユーザ検索経験がより良くされることができる。
例えば、1又は複数の検索結果のうち選択的に送信される1又は複数のフィールドにはテキストを含むことができ、これは有利なことに、ディスプレイ上に検索結果を受信する前に追加のフィールド(画像及び音データなど)がロードされるのをユーザが待つことを要する場合と比べて、より迅速にユーザに検索結果を提供することができる。1又は複数の検索結果は検索結果リストの中で体系化されることができ、これがエンドユーザに提示されることができ、したがってエンドユーザは複数の結果を有して選択することができる。1又は複数の検索結果の各々は、1つずつエンドユーザに対して描画されることができ、ディスプレイ上に描画する前にすべての検索結果が受信されるのを待つよりも、検索結果の受信をさらに早めることができる。
方法400のステップ440において、1又は複数の検索結果の1又は複数の追加のフィールドが、表示のためリアルタイムでエンドユーザにネットワークを介して選択的に送信されることができる。1又は複数の検索結果のうち追加の1又は複数のフィールドは、様々な実施形態において、1又は複数の画像及び/又はリッチコンテンツを含むことができる。追加のフィールドは、ユーザを刺激し、検索経験をより実りのあるものにするオーディオビジュアルコンテンツを提供することによって、検索経験をより良くすることができる。
リッチコンテンツは、検索結果及び/又は検索結果リストの提示をより良くするために使用されることができる。リッチコンテンツは、サービス提供者によって各レコードについて提供されることができ、あるいは検索サーバによって自動的に提供されることができる。リッチコンテンツの例には、音響効果や視覚効果、画像、アニメーション、ビデオコンテンツ又はこれらの任意の組み合わせを含むことができる。リッチコンテンツを使用してユーザ経験をより良くすることができる多数の方法が存在する。例えば、検索結果が、ユーザにより始動されたとき音響効果を再生させるオーディオブラケット(audio brackets)と共に提示されてよい。音響効果は、リッチコンテンツをロードしている、かつ/あるいは検索結果のリストをロードしている間、利用されることができる。リッチコンテンツは、透過的なオーバレイを使用し、あるいは未来のグラフィクス効果及び/又はグラフィカル効果を使用して、検索結果内の1又は複数のレコードの提示に添えることによって、検索結果の提示を支援するのに使用することもできる。いくつかのコンピューティング装置(iPadなど)について、便利なアプリケーション又はアプレットがディスプレイの第1の部分(ディスプレイの左手側など)に提示されることができ、検索結果のリストがディスプレイの第2の部分(ディスプレイの右手側など)に提示されることができる。
1又は複数の検索結果のうち選択的に送信される1又は複数のフィールドがエンドユーザに表示される間、1又は複数の検索結果のリッチコンテンツは(該リッチコンテンツがエンドユーザに表示されないように)バックグラウンドで送信され、かつ/あるいはダウンロードされることができ、これにより、リッチコンテンツがロードされている間、エンドユーザが検索結果を見ることが可能になる。検索結果及び/又はリッチコンテンツがロードされてエンドユーザをさらに楽しませ、引き込んでいる間、ビデオアニメーションなどの追加のリッチコンテンツがエンドユーザのために再生されることができる。1又は複数の検索結果のうち選択的に送信された1又は複数のフィールドがエンドユーザに表示された後、それから、1又は複数の検索結果のリッチコンテンツがエンドユーザに表示されることができる。
図5は、1又は複数の検索結果の中に宣伝を提供する一例示的方法500のフローチャートである。方法500のステップ510において、検索クエリが、1又は複数の垂直的なアプリケーションのためにネットワークを介して受信されることができ、検索クエリは、処理されたデータベースの1又は複数のレコードの少なくとも1つのフィールドの検索パラメータを含むことができる。検索クエリは、ユーザ装置を用いてエンドユーザから音データ入力によって提供されることができる。垂直的なアプリケーションは、例えば、レストランの場所を見つけるアプリケーション又は映画に関するコンテンツを見るアプリケーションなどの、狭く定義されたマーケット又はコンテンツ領域に関して定義されたアプリケーションであってよい。垂直的なアプリケーションは、サービス提供者130によって所有され、かつ/あるいは制御されることができる。検索クエリの受信は、上記で説明されたとおり行われることができる。検索クエリは、垂直的なアプリケーションに向けられることができ、これは、処理されたデータベースに関連付けられるサービス提供者であってよい。上記で説明された方法300に従い、様々な実施形態において、検索クエリが処理されることができ、検索結果が同様に送信されることができる。
方法500のステップ520において、広告データベースが、検索クエリ又は1若しくは複数の検索結果(例えば、ステップ340において決定された検索結果)に基づいて検索されることができる。広告データベースは、いくつかの実施形態において、過去の検索パラメータを含む検索履歴に基づいて検索されることもできる。検索履歴は1又は複数の過去の検索クエリを含むことができ、各々が関連する過去の検索パラメータを有することができる。過去の検索パラメータは、エンドユーザによりしばしば訪問されるウェブサイト、エンドユーザからしばしば受信される検索クエリなどの、エンドユーザのネットワーク使用傾向を映すことができる。
検索履歴は、広告データベースの検索に影響を与えるように調整された、過去の検索クエリの様々な組み合わせを含むことができる。検索履歴は、例えば、検索クエリの検索パラメータを含むことができ、したがって、広告結果が検索クエリを反映するように調整される。検索パラメータは、広告データベースを検索するために、単独で、あるいは他の過去の検索パラメータとの組み合わせで使用されることができる。
いくつかの実施形態において、検索履歴は、単一のサービス提供者(例えば、処理されたデータベースに関連付けられたサービス提供者、又は処理されたデータベースの検索に対して広告を提供する権利を交渉したサービス提供者)に関連付けられたすべての検索クエリからの検索パラメータを含むことができる。こうした実施形態は、ユーザの検索クエリにより関連する広告結果を提供することができ、これにより検索経験をより良くしながら検索経験を広告主のために収益化することができるため、有利であり得る。
さらなる実施形態において、検索履歴は、複数のサービス提供者に関連付けられたすべての検索クエリからの検索パラメータを含む。こうした実施形態は、過去の検索パラメータに映されたとおりエンドユーザの好みを反映する様々な広告をエンドユーザに提供することができる。再びになるが、こうした一実施形態は、ユーザの検索クエリにより関連する広告結果を提供することができ、これにより検索経験をより良くしながら検索経験を広告主のために収益化することができるため、有利であり得る。
方法500のステップ530において、1又は複数の広告結果が、広告データベースの検索に基づいて、1又は複数の垂直的なアプリケーションにわたって生成されることができる。様々な実施形態において、広告結果は、現在の検索結果に基づいて対象にされることができ、ここで、現在の検索結果は、処理されたデータベースからのものであり、検索クエリに応じて提供される。広告結果は、ユーザ層(例えば、検索サーバに送出されたエンドユーザプロファイルから)、ユーザ関心、インターネットサービス上でのユーザの活動履歴、又はこれらの任意の組み合わせに基づいて対象にされることもできる。宣伝から生成される収益は、例えば、サービス提供者アカウント150などのサービス提供者アカウントを用いて、サービス提供者と関与する他の関係者とで分けることができる。
方法500のステップ540において、1又は複数の広告結果は、ネットワークを介して(例えば、表示のためエンドユーザに)送信されることができる。1又は複数の広告結果は、上記で説明されたとおり、1又は複数の検索結果に関連付けられることができる。広告結果は、例えば、過去の検索パラメータに対する関連の順序で体系化された広告リストで送信されることができる。広告リストは、処理されたデータベースからエンドユーザの検索クエリに応じて送信された検索結果を含む検索結果ページと別個の領域でなどの、任意の適切な様式で提示されることができる。
さらに、本明細書に説明される方法及び/又はステップは、組み合わせることができる。例えば、様々な実施形態において、方法300を方法500と組み合わせて、検索結果と広告結果とを提供することができる。
付加的なステップにおいて、方法500は、各広告結果に関連付けられた入札値に基づいて1又は複数の広告結果を体系化することをさらに含むことができる。各広告結果は、広告主に関連付けられることができる。広告データベースが、各レコードについて少なくとも1つのフィールドを有するレコードを含み、広告データベース内に、入札値のためのフィールドが存在することができる。広告データベースの中のレコードが広告結果に含まれるとき、広告結果は、例えば、より高い入札値を有するレコードが広告結果の中でより早く位置されるように、体系化されることができる。入札値フィールドに基づいて広告結果を体系化することは、有利なことに、所与のレコードに関連付けられた入札値を増やして広告結果内で上記レコードの認知度を上げることを望むかもしれない広告主間の広告データベースにおける競争を促すことができる。
入札値は、様々な実施形態において、キーワードに関連付けられることができる。検索クエリの検索パラメータ内のキーワードが広告データベースを検索するために使用されるとき、複数の広告主レコードが広告結果の中に含まれることができる。キーワードに対して競合他社より高く入札することによって、サービス提供者は、サービス提供者自身を広告結果内により顕著に出現させることにより(例えば、広告結果の中でサービス提供者の広告をより高位に掲載することにより、あるいは画像又はリッチコンテンツを用いてサービス提供者の広告を強調することにより)、そのサービスと関連する製品/売り物とを促進することができる。このように、キーワード入札システムが広告主に提示されて、検索パラメータ及び/又は検索語に基づいて広告主のアプリケーション及び売り物を促進することができる。
検索結果を用いて提供される宣伝は、サービス提供者に提供される機能性を収益化する多くの方法を提供することができる。収益は、クリック報酬型(pay-per-click)モデルに基づいて、上記で説明された検索サーバの提供者に提供されることができる。広告データベースに参加している広告主は、エンドユーザが広告結果の中の広告をクリックしたとき、所定量を支払う。サービス提供者の処理されたデータベースの検索結果における広告から生まれる収益は、サービス提供者と関与する他の関係者との間で分けることができる。
いくつかの実施形態に従い、検索サーバ270は、自然言語クエリプロセッサ、以降「NLQP280」を採用して、音入力によってデータベースを検索することができる。より具体的には、NLQP280を利用して、統合された自然言語ライブラリを生成し、この生成されたライブラリを用いて自然言語クエリを処理することができる。概して言うと、NLQP280は、複数の(例えば、2つ以上の)自然言語ライブラリから、統合された自然言語ライブラリを生成することができる。複数の自然言語ライブラリは、クライアントアプリケーションを開発する複数の開発者(例えば、サービス提供者)によって生成されることができ、ここで、各開発者は、特定のクライアントアプリケーションのために自然言語ライブラリを生成することができる。アプリケーション開発者は、そのアプリケーション内で発話認識機能を可能にして、エンドユーザが話したコマンドを用いてアプリケーションと対話することを可能にしたい場合がある。アプリケーションのエンドユーザにより提供される話されたクエリに対して正確な応答を提供するために、開発者は、アプリケーションのための自然言語ライブラリを生成することができる。他の例において、開発者は、本願テクノロジーにより生成される統合された自然言語ライブラリを利用することができる。
いくつかの実施形態に従い、NLQP280は、各サービス提供者について、(例えば、統合されたものではなく)個々の又は一意の自然言語ライブラリを管理することができる。個々の自然言語ライブラリは、サービス提供者及び/又はサービス提供者の顧客の具体的なニーズに応じてカスタマイズされることができる。例えば、旅行ウェブサイトが、音楽ウェブサイトに対して異なるカスタマイズされた自然言語ライブラリを採用することができる。さらに、自然言語ライブラリのカスタマイズは、競合するサービス提供者に、より堅牢な及び応答の自然言語ライブラリを生成するように奨励することができる。
大まかに言って、自然言語ライブラリは、アプリケーションが通常直面するであろう自然言語クエリを、クエリが受信されたときアプリケーションが実行すべき応答又は動作と共に含むことができる。開発者は、アプリケーションを自然言語ライブラリと共に予めロードして、上記の通常直面する自然言語クエリを処理することができる。
いくつかの実施形態に従い、これらの自然言語ライブラリのいくつかは、開発者生成ライブラリ(developer generated library)を含むことができる。開発者生成ライブラリは、開発者を介してライブラリに関連付けられたトピック又は主題を含むことができる。例えば、開発者が、ナビゲーションアプリケーションを管理することがある。したがって、このアプリケーションに関連付けられた自然言語ライブラリは、これに起因する「ナビゲーション」という主題を有することができる。いくつかの例において、開発者生成ライブラリは、該ライブラリに関連付けられる複数のトピックを含むことができる。
これらの自然言語ライブラリは、開発者又は自然言語処理システムが自然言語クエリに内在する様々な変形を厳密に予測することができないため、いくらか限定される可能性がある。例えば、「私の次の約束は何時ですか?」などの単一の自然言語クエリは、「私の次の約束はいつですか?」又は「いつが私の次の約束ですか」などとして表現されることもある。開発者がこれらの変形のいくつかを構成しなかった場合、自然言語クエリは満たされることができない。
他の実施形態に従い、自然言語ライブラリは、自然言語クエリ及び応答のリストではなく、自然言語クエリ及び応答に関して訓練されたルールに基づくスキーマを含むことができる。このようなものとして、自然言語ライブラリは、質問及び回答ペアのリストに比べて、より密接にプログラミング言語に対応することができる。例えば、本願テクノロジーは、回答されるとき実質的に同じ応答を生成する、同じ自然言語語句のためのいくつかの変形を分析することができる。これらの質問及び応答を用いて、本願テクノロジーは、上記情報から、将来の類似の自然言語クエリに対処する方法論を抽出することができる。非限定的な例として、単語「次の」及び「約束」の存在は、自然言語クエリの中で互いから2語又は3語以内に位置するとき、エンドユーザが自身の次の時間的に後の約束に関する何らかの種類の情報を欲しているとシステムに示すことができる。さらに、自然言語クエリの中の単語「とき」の存在は、エンドユーザが時間に関連する質問を尋ねていることをシステムに知らせることができる。こうした情報を結合して、将来の類似の自然言語クエリを処理するためのルールに基づくスキーマとすることができる。
自然言語クエリが回答されなくなる/満たされなくなる可能性を低減するために、NLQP280により生成される自然言語ライブラリを利用することができる。再びになるが、このライブラリは、複数の自然言語ライブラリから生成されることができ、あるいはカスタマイズされた自然言語ライブラリを含むこともできる。これらの種類の自然言語ライブラリは、リスト指向の自然言語ライブラリに対して、より堅牢な及び包括的な情報のセットを提供することができる。すなわち、自然言語ライブラリは、ライブラリが自然言語クエリ及び応答ペアに限定されないため、ルールに基づく自然言語クエリの表現を含むことができる。
開発者又は自然言語処理システムは、それから、その限定された自然言語ライブラリではなく、統合された自然言語ライブラリにアクセスし、これを利用し、より大きなコーパスの情報の恩恵を得ることができる。他の例において、開発者又はその他の者にインセンティブを与えて(incentivized)、堅牢な及びカスタマイズされた自然言語ライブラリを生成してその顧客の自然言語クエリの必要をより良く満たすことができる。
いくつかの実施形態において、NLQP280は、クラウドソーシングを採用して、多くの別個のサービス提供者/開発者により生成されるコンテンツから、統合された自然言語ライブラリを生成することができる。
いったんNLQP280が自然言語ライブラリを受信すると、NLQP280は、各自然言語ライブラリを処理して、個々のライブラリの内容を統合された自然言語ライブラリにまとめる最良の方法を決定することができる。上記で言及されたとおり、自然言語ライブラリは、ライブラリを利用する特定のアプリケーション、サービス提供者及び/又は開発者に関連付けられることができる。
いくつかの例において、アプリケーションは、何らかの種類の情報、サービス又は製品をエンドユーザに提供することに向けられる。さらに、上記で言及されたとおり、自然言語ライブラリは、自然言語クエリと関連する応答とを含むことができる。例えば、自然言語クエリが「最も近い給油所を検索」を含むことがあり、このクエリに関連付けられた応答は、コマンド又は動作と可能性として関連するデータとを含み、このコマンド又は動作は、エンドユーザの場所に近接して最も近い給油所を特定するための情報源を問い合わせている地図又はナビゲーションアプリケーションが理解可能である。結果は、地図と地図上で正確に示された場所とを含むグラフィカルユーザインタフェースを介してエンドユーザに返されることができる。有利なことに、自然言語ライブラリの中の各自然言語クエリは、少なくとも1つの応答に関連付けられることができる。さらに、いくつかの自然言語クエリが同じ応答に関連付けられて、2つの違ったふうに言葉で表されたクエリが同じ質問を尋ねているときなどの、自然言語クエリに内在するばらつきに対処することができる。
NLQP280により生成される応答に関して、応答フォーマットは、NLQP280を採用するアプリケーションと開発者及び/又はサービス提供者のニーズとに依存してカスタマイズされることもできる。非限定的な例として、「マライアキャリーのファーストアルバムの3曲目を再生」という自然言語クエリは、音楽プレーヤアプリケーションに、動作とメタデータとの組み合わせである応答を返させることができる。動作は「再生」とすることができ、メタデータはアーティスト:マライアキャリー、アルバム:Emotions、曲:Can’t Let Go.を含むことができる。開発者は、音楽プレーヤアプリケーションを介して所望されるコマンドを実行するために、動作(すなわち、再生)とメタデータとの組み合わせを使用することができる。この例は、応答を自然言語クエリの文脈又はサービス提供者/開発者のニーズに依存してカスタマイズすることができるという事実の説明であり例示である。例えば、サービス提供者が、上記で説明されたメタデータを返すよりむしろ新しい音楽をエンドユーザに売りたい場合、サービス提供者は、エンドユーザのクエリに基づいて、エンドユーザ自身にとって関心のあり得る他のアーティストの他のアルバムへのリンクを有するように選ぶことができる。
NLQP280は、異種の発信元から自然言語ライブラリを受信し、ライブラリに含まれる情報を利用して、統合された自然言語ライブラリを生成することができる。
いくつかの例において、NLQP280は、特定のアプリケーションに自然言語クエリ処理を提供する統合された自然言語サブライブラリ(sub-libraries)を生成することができる。すなわち、種々のナビゲーションアプリケーションのための複数の自然言語ライブラリを一緒に結合して(例えば、統合して)、関連するナビゲーションアプリケーションが利用することができるより包括的な自然言語ライブラリを生成することができる。さらに、他の類似のアプリケーションが、アプリケーションが統合された自然言語サブライブラリに直接関連付けられていないとしても、統合された自然言語ライブラリを利用することもできる。例えば、予約アプリケーションが場所に基づく自然言語クエリを受信することがあり、このクエリをナビゲーションアプリケーションが処理することができる。
いくつかの例において、自然言語サブライブラリは、種々のサービス提供者のための個々のカスタマイズされた自然言語ライブラリを含むことができる。
いくつかの実施形態に従い、開発者は、その個々の自然言語ライブラリを提供すること及び/又は更新することによって、統合された自然言語ライブラリの生成に参加することを補償されることができる。
先に言及されたとおり、自然言語ライブラリは、サービス提供者と、延長線上で考えると特定タイプの主題とに、関連付けられることができる。例えば、ナビゲーションのサービスを提供するナビゲーションアプリケーションは、特定の自然言語ライブラリを利用することができる。ゆえに、自然言語ライブラリの主題は、アプリケーションにより提供される(1又は複数の)サービスに関連付けられることができる。NLQP280は、自然言語ライブラリクエリ又は応答に含まれるキーワードを検出することによって、自然言語ライブラリに関連付けられた主題を決定することができる。他の例において、自然言語ライブラリは、識別する情報をタグ付けされることができる。
NLQP280が自然言語クエリに関連付けられたサービス/主題をどのように決定するかにかかわらず、NLQP280は、類似の自然言語ライブラリの内容(クエリ及び応答)を一緒に単一の自然言語ライブラリにグループ化し、あるいは結合することができる。統合された(及び、個々の、カスタマイズされた)自然言語ライブラリの確立は、以下でより詳細に論じられるとおり、NLQP280の検索効率を向上させることができる。
統合された自然言語ライブラリと、いくつかの例において自然言語サブライブラリとの確立の後、NLQP280は、エンドユーザからそのクライアント装置を介してクエリを受信することができる。他の例において、クエリは、自然言語クエリ処理をサポートするサービス提供者アプリケーション(例えば、開発者アプリケーション)から受信されることができる。
本願テクノロジーに従い、クエリは、話された自然言語クエリなどの音データ入力を含むことができる。自然言語クエリには、自然言語クエリを受信するアプリケーション及び/又は装置が認識可能であり、かつ/あるいはすぐに使用可能である(actionable)任意の要求を含むことができる。説明された例を続けると、「最も近い給油所の場所を見つける」という自然言語クエリを、NLQP280と連動してナビゲーションアプリケーションを実行するクライアント装置が受信することができる。マイクロフォンなどの、クライアント装置に関連付けられた音声捕捉装置が、音データ入力(例えば、話された自然言語クエリ)を受信する。クライアント装置は、音データ入力を、時にナビゲーションアプリケーションを介して、検索サーバ270に送信することができる。他の実施形態において、クライアント装置で実行中の自然言語クエリアプリケーションが、ナビゲーションアプリケーションに代わって音データ入力を送信することができる。
いったん自然言語クエリが受信されると、NLQP280は、自然言語クエリの内容と統合された自然言語ライブラリとを比較して、上記クエリが、統合された自然言語ライブラリに含まれる少なくとも1つのクエリに対応するかを判定することができる。NLQP280は、自然言語クエリの語句全体を利用することができ、あるいはいくつかの実施形態において、自然言語クエリの一部分だけを利用することができる。
上記で言及されたとおり、統合された自然言語ライブラリが、統合された自然言語サブライブラリを含むことができるため、自然言語クエリは、統合された自然言語ライブラリ全体に対してではなく、統合された自然言語サブライブラリの1又は複数に対して比較されることができる。NLQP280は、クエリに含まれたキーワード又は語句の場所を見つけることによって、自然言語クエリに関連付けられた主題を決定することができる。NLQP280は、この決定された情報に基づいて、問い合わせされることになる1又は複数の統合された自然言語サブライブラリを選択することができる。自然言語クエリが、統合された自然言語ライブラリ全体のうちより小さいサブセットに対して検索されることをを可能にすることで、検索プロセスの効率を向上させ、エンドユーザによるアプリケーションレイテンシ経験を減少させることができる。
NLQP280が、統合された自然言語ライブラリ又は統合された自然言語サブライブラリのいずれかの中でクエリの場所を見つけた場合、NLQP280は、このクエリに関連付けられた応答を取得することができる。取得される応答は、サービス提供者アプリケーションにより生成された実際の応答だけでなく、応答を生成する方法論も含むことができることを理解されたい。例えば、第1のナビゲーションアプリケーションが、第2のナビゲーションアプリケーションにより生成される或る自然言語クエリのための応答を利用するものである場合、実際の応答よりむしろ、応答がどのように生成されるかを理解することが有益であり得る。第1のナビゲーションアプリケーションが「近くの図書館はどこですか?」という自然言語クエリを受信し、第1のナビゲーションアプリケーションがこの自然言語クエリを処理することができない場合、第1のナビゲーションアプリケーションは、この自然言語クエリをNLQP280に提供することができる。NLQP280は、ナビゲーションアプリケーションのための統合された自然言語サブライブラリの中で、第2のナビゲーションアプリケーションにより生成された対応するクエリの場所を見つけることができる。
挿話として、この特定のクエリのために生成された実際の検索結果を受信することが第1のナビゲーションアプリケーションに少しも有益さを提供しない場合がある。エンドユーザのための場所情報は、第2のナビゲーションアプリケーションにより処理された自然言語クエリを生成したエンドユーザのための場所情報とは異なる可能性があるからである。したがって、より価値のある応答には、第2のナビゲーションアプリケーションがどのようにクエリを解釈したか、情報のデータベースがどのようにアクセスされたか、エンドユーザのための場所情報がどのように取得されたかなどの、第2のナビゲーションアプリケーションがどのようにクエリを満たしたかを含むことになる。つまり、統合された自然言語ライブラリに記憶される応答には、他のアプリケーションのための類似の自然言語クエリを満たすことにおいてNLQP280を支援することができる多くの種類の情報を含むことができる。
NLQP280により行われる比較は、常に自然言語クエリに対する完全に完璧な一致をもたらさなくてもよい。有利なことに、NLQP280は、エンドユーザから受信した自然言語クエリと統合された自然言語ライブラリに含まれる自然言語クエリとの間に実質的な類似性(又は、少なくともいくらかの類似性)があるとき、自然言語クエリの一致を許すように構成されることができる。例えば、エンドユーザ自然言語クエリ「何時?」が、統合された自然言語ライブラリの中の「何時ですか?」という自然言語クエリに実質的に対応してよい。NLQP280は、これら双方をカレンダーアプリケーションが受信したという理由で、これら2つのクエリが実質的に同様であると推測することができる。受信したクエリと記憶されたクエリとの間のこうしたタイプのあいまいな一致は、正確な一致を要することが誤りを引き起こすであろう例においてNLQP280が応答を提供することを可能にする。
いくつかの実施形態に従い、NLQP280を利用して、言語モデルにおける可能性をより小さいセットに狭めることによって、発話認識システムの精度をより良くすることができる。再びになるが、個人は、同じ応答を達成しようとするときでさえ、自然言語クエリをほぼ無数の方法で表現することがある。さらに、各自然言語クエリは、いくつか例を挙げるだけでも、言葉選び、言語、構文及び/又は文法に起因して、多数の解釈の可能性にさらされる可能性がある。いくつかの実施形態に従い、NLQP280を利用して、自然言語クエリのあり得る解釈を狭めることができる。NLQP280は、自然言語クエリのための1又は複数のあり得る解釈のリストを返すことができる。
本明細書に説明される多くの他の種類の情報と同様に、個々のカスタマイズされた自然言語ライブラリ、統合された自然言語ライブラリ、及び統合された自然言語サブライブラリは、図1の1又は複数のデータベース170などの記憶装置コンポーネントに記憶されることができる。
いくつかの例において、NLQP280は、自然言語クエリと統合された自然言語ライブラリの中のエントリとの間の対応が見つけられないという理由で、自然言語クエリのための応答を決定できない可能性がある。これらの例において、NLQP280は、自然言語クエリのための適切な解釈を生成しようとして、複数のサービス提供者(例えば、開発者)に自然言語クエリを提供することができる。いくつかの例において、NLQP280は、クエリの解釈とその応答とのためのクラウドソーシングを可能にすることができる。
他の実施形態に従い、NLQP280は、エンドユーザクライアント装置から自然言語クエリを受信することができる。自然言語クエリが統合された自然言語ライブラリに対して比較され、一致するクエリの場所が見つけられたとき、NLQP280は、この自然言語クエリを、一致するクエリに関連付けられた開発者アプリケーションなどのサービス提供者に向けることができる。これらの例において、NLQP280は、自然言語クエリを満たすのに最も適したアプリケーション又はサービス提供者に自然言語クエリを向けるためのルーティングメカニズムとして動作する。このようにして、自然言語クエリがサービス提供者のためにより堅牢であればあるほど、サービス提供者は自身に向けられた自然言語クエリを有し、要求を満たす機会が増え、潜在的な顧客に関与し、収益を生む可能性がより高くなる。これに応じて、サービス提供者がより堅牢な自然言語ライブラリを作成するとき、統合された自然言語ライブラリの内容が増大する。
いくつかの例において、サービス提供者は、サービス提供者独自の自然言語ライブラリを保有することができる。ライブラリは、新しい自然言語クエリが受信され、満たされたとき、周期的に変更されることができる。統合された自然言語ライブラリの内容を増大させるために、サービス提供者は、自身の自然言語クエリをNLQP280にアップロードすることができる。他の実施形態において、NLQP280は、サービス提供者とやりとりして、サービス提供者の自然言語ライブラリにおける変化を検出することができる。エントリが自然言語ライブラリに追加され、NLQP280により検出されるたび、統合された自然言語ライブラリが更新されることができる。
本願開示に従い、NLQP280は、クラウドソーシング開発インタフェースを採用することができ、クラウドソーシング開発インタフェースは、開発者(例えば、サービス提供者又は他の貢献者)がその自然言語ライブラリを他者から利用可能にすることを選べるようにする。有利なことに、他の開発者は、それから、こうして共有されたライブラリを自身のサービスの中で使用することができる。
開発者は、NLQP280により受信された特定の自然言語クエリサンプルを(例えば、ウェブサイト上のテキストボックスに文字をタイプすることによって、あるいはクエリをAPIに送出することによって、あるいはクエリをインタフェースに対して話すことによっても)送出することができ、応答において、NLQP280は、同じクエリのすべて又は一部に一致したすべての他のライブラリのセットを生成することができる。一致したライブラリのセットがNLQP280により返されたとき、開発者は、ライブラリの説明とライブラリがサポートする他の使用事例とを見ることができる。それから、開発者は、開発者の自然言語クエリシステムを設計/更新するために、一致したライブラリのいくつか又はすべてを使用することを選ぶことができる。このようにして、開発者は、これらクラウドソースされた自然言語ライブラリを採用することによって、重複的な取り組みを低減することができる。
非限定的な例として、開発者は、特定の日付に対応する曜日を算出するシステムを設計したい場合がある。開発者は、「2012年1月14日は何曜日か私に教えて」などのサンプルクエリを送出することができる。NLQP280は、「私に教えて」が「私に教えてください」、「私は知りたい」、「私は知りたいです」「知りたい」などの他のクエリをカバーする既存の自然言語ライブラリに一致したと示すことができる。開発者は、このライブラリを使用することを選んで、「私に教えて」の意味に対応するすべての事例(又は実質的な部分)をカバーすることができる。この例において、日付「2012年1月14日」は、種々の日付フォーマットのバリエーションを有する日付をカバーする自然言語ライブラリと照合することもできる。このようにして、開発者は、日付を理解するシステムをゼロから作る必要がなくなり、すでに他社によって行われた作業の上に構築することができる。
開発環境は、より洗練されることができ、開発者が何の文字をタイプしているかを自動的に検出することができ、一致し、かつ使用のために利用可能である既存のライブラリに関して、リアルタイムで又はバックグラウンドで、開発者に示唆を行うことができる。例えば、開発者が既存のライブラリを探していない場合でさえ、開発者が「私に教えて」という言葉の文字をタイプするとすぐに、NLQP280が、このクエリのセットと類似するクエリのセットとをカバーするために使用することができる既存のライブラリがあることを開発者に警告することができる。
さらに、NLQP280が、一致するライブラリを開発者に提示するとき、各ライブラリについての人気の程度を提示することもできる。例えば、ライブラリがライブのトラフィックを有するサービスにおいて使用されている場合、所与の時間期間における各ライブラリに対するヒットの数に対応する人気程度が提示されることができる。有利なことに、これらのメトリクスは、開発者がどのライブラリを使用するかをより良く判断することを可能にする。
いくつかの実施形態において、NLQP280は、開発者がそのライブラリを帰納又はマージによって拡張することを可能にすることができる。例えば、2つ以上の自然言語ライブラリが互いに共通するかなりの量の主題を有し、かつ/あるいは類似のサービスに対応するとき、NLQP280は、これらの自然言語ライブラリが同じ分野(例えば、同じ主題)をカバーすると判定することができる。いくつかの例において、2つ以上のライブラリは同一でなくてよく、一方のライブラリの中のいくつかの事例が他方に属していないこと、及びその反対があり得る。したがって、NLQP280は、これらのライブラリを一緒に結合して、事例のすべて(又は実質的な部分)をカバーする新しい自然言語ライブラリを作成することができる。例えば、自然言語ライブラリAが、「私に教えて」及び「私に教えてください」をカバーすることができ、自然言語ライブラリBが、「私に教えて」及び「私は知りたい」をカバーすることができる。NLQP280は、「私に教えて」、「私に教えてください」及び「私は知りたい」の語句を含む第3の自然言語ライブラリを自動的に生成することができる。いくつかの実施形態に従い、自然言語ライブラリAのユーザが「私は知りたい」などの自然言語クエリを入力するとき、NLQP280は、自然言語ライブラリAの開発者がユーザによる上記の特定のクエリ入力を予知しなかったという事実にもかかわらず、自然言語クエリに対して適切な応答を提供することができる。
いくつかの実施形態に従い、NLQP280が発話クエリをテキストに変換する例示的プロセスは、概して、特定のクエリに適用することができる最も可能性の高い言葉の並びを決定するために言語モデルを利用することを伴う。言語モデルがより少数の可能性を含む場合、NLQP280は、単純に言語モデルの中から選択するための可能性がより少ないという理由で、オーディオのクエリをテキストにより高い精度で変換することができる。標準的な発話からテキストへのシステムには、一般に、すべてのクエリに適用される1つの無限定の(all-encompassing)言語モデルがある。しかしながら、本願テクノロジーのNLQP280は、発話クエリをテキストに完全に変換する前に自然言語クエリを分析すること、及びクエリの「トピック」又は「題目」を決定することによって、言語モデルをより小さいサブセットに狭めることができる。例えば、クエリを発話からテキストに完全に変換する前に、NLQP280は、クエリが旅行、天気、カレンダー管理、連絡先ダイヤルなどに概して関連するかどうかを判定することができる。クエリの題目が旅行であると判定することに成功すると、NLQP280は、それから、旅行にだけ属するカスタマイズされた言語モデルを使用することができ、ゆえに、言語モデル内の他のカテゴリにおける多数の可能性を消去し、可能性の数を実質的に低減することができる。これらの機能性は、自然言語クエリの発話からテキストへの変換について、全体としてより高い精度をもたらすことができる。このようにして、これらの特徴は任意の発話からテキストへのシステムに適用されることができ、ゆえに、自然言語処理だけを包含するシステムに限定されない。
自然言語ライブラリと同様にして、NLQP280は、発話入力及び/又は検索クエリを処理するために利用される1又は複数の言語モデルの内容を更新することもできる。したがって、NLQP280が新しいタイプの発話入力/検索クエリに直面するとき、NLQP280は、言語モデルを更新して、こうしたタイプの発話入力/検索クエリの処理の間に決定された知識を反映することができる。
非限定的な例として、NLQP280を利用して、電子メールメッセージに変換されることになる発話入力などの発話入力をテキストに変換することができる。一例示的発話入力には、「ラリーに電子メールを送信、件名は「ランチミーティング」、本文は「1階で会ってランチに行こう」」を含むことができる。
NLQP280は、発話入力に含まれるキーワード又は語句を評価して、この発話入力が発話入力から電子メールを表記する要求であると最初に決定することができる。再びになるが、NLQP280は、自然言語ライブラリ及び/又はキーワード若しくは言葉使い分析を利用して、発話入力に含まれる可能性がある種々の種類の主題を評価すること、及び/又は発話入力に関連付けられた(1若しくは複数の)トピック若しくは(1若しくは複数の)主題を推測することを支援することができる。
NLQP280は、それから、発話入力を処理するためにどの言語モデルを利用すべきかを決定することができる。例えば、発話入力が電子メールを表記する要求であると知ると、NLQP280は、発話入力を電子メールフォーマットへとさらに処理する件名言語モデル及び本文セクション言語モデルと、電子メール通信に適し得る他のモデルとを選択することができる。NLQP280は、発話入力を、電子メールの件名のための言語モデル及び電子メールの本文セクションのための言語モデルと比較することができる。
いったんNLQP280が発話入力の2つのセクションに関連付けられた(1又は複数の)トピックを決定すると、NLQP280は、発話入力をテキストに表記するために利用することができる1又は複数の言語モデルをインテリジェントに選択することができる。したがって、電子メール件名及び本文セクションのための適切な言語モデルを用いて、NLQP280は、それぞれのカテゴリ(例えば、件名、本文、電子メールアドレス、署名など)に従い、発話入力をテキストに効率良く表記することができる。
図6は、自然言語クエリを処理する一例示的方法600のフローチャートを示す。方法600は、サービス提供者から複数の自然言語ライブラリ(又はサブライブラリ)を受信するステップ605を含むことができる。各自然言語ライブラリは、クライアントアプリケーションと対話するための自然言語クエリと自然言語クエリのための対応する応答とを含むことができることに注目されたい。
さらに、方法600は、受信した自然言語ライブラリから統合された自然言語ライブラリを生成するステップ610を含むことができる。ステップ610は、統合された自然言語サブライブラリを生成するステップを含むこともできる。再びになるが、上記で言及されたとおり、いくつかの実施形態において、サブライブラリは個々の開発者に対応することができ、可能性として、開発者のニーズ又はクライアントアプリケーションの要件に対してカスタマイズされることができる。カスタマイズは、開発者によって実施されることができ、クエリ及び応答をどのように整形するかを含むことができ、ここで、応答には、動作と対応するデータ(さらにメタデータ)との組み合わせを含むことができる。
方法600は、ネットワークを介して検索クエリを受信するステップ615を含むこともできる。いくつかの例において、検索クエリは、音に基づく入力、及び/又は自然言語検索クエリ(この自然言語検索クエリは、音に基づいてよく、そうでなくてもよい)を含むことができる。検索クエリを処理して、検索クエリについてのトピック又は主題を決定することができる。いくつかの実施形態において、検索クエリは、エンドユーザクライアント装置から受信されることができる。
方法600は、検索クエリを統合された自然言語ライブラリと比較して、検索クエリに対応する少なくとも1つの自然言語クエリを決定するステップ620をさらに含むことができ、検索クエリに対する応答を、統合された自然言語ライブラリからクライアント装置又はウェブベースのインタフェースに提供するステップ625が後に続くことができる。
図6Aは、自然言語クエリを処理する別の一例示的方法630のフローチャートを示す。方法630において考えられるプロセスは、概して、上記でより詳細に説明されたとおりに構築される個々のカスタマイズされた自然言語ライブラリを用いて自然言語クエリを処理する方法として説明されることができる。図示されていないが、ネットワークを介して自然言語検索クエリを受信するステップの前に、方法630は、カスタマイズされた自然言語ライブラリを生成するステップを含むことができる。再びになるが、このライブラリは、自然言語クエリを解釈し、かつこれに対する応答を提供するためのルールに基づく方法論を含むことができる。さらに、これらのカスタマイズされた自然言語ライブラリは、クライアントアプリケーション、サービス提供者/開発者の好み、及び/又は特定の分野/主題に対して具体的に調整されることができる。本願テクノロジーは新しい自然言語クエリ語句に直面する場合があるため、自然言語ライブラリは時間と共に進化し、より堅牢及び正確になり得る。
いくつかの実施形態において、システムにより選択される自然言語ライブラリには、自然言語クエリに対して最も正確な応答を作る自然言語ライブラリを含むことができる。ゆえに、自然言語ライブラリ開発者にインセンティブを与えて、さらにより堅牢及び正確な自然言語ライブラリを作成することができる。
いくつかの実施形態に従い、方法630は、ネットワークを介して自然言語検索クエリを受信するステップ635を含むことができ、自然言語検索クエリは音データ入力を少なくとも含むことができる。いったん音データ入力が決定されると、方法630は、音データ入力をカスタマイズされた自然言語ライブラリと比較して音入力データのためのカスタマイズされた応答を決定するステップ640を含むことができる。再びになるが、上記で言及されたとおり、カスタマイズされた自然言語ライブラリは、自然言語クエリを処理するためのルールに基づくモデルを含むことができ、ここで、ルールに基づくモデルは、クライアントアプリケーションと対話するための自然言語クエリに関して訓練されることができる。いくつかの実施形態に従い、自然言語ライブラリは、サービス提供者とクライアントアプリケーションとのうち任意のものに対して調整された、自然言語クエリのためのカスタマイズされた応答を含むこともできる。
さらに、方法630は、少なくとも1つの自然言語クエリに対するカスタマイズされた応答を、自然言語ライブラリに含まれる少なくとも1つの自然言語クエリに関連するカスタマイズされた応答から提供するステップ645を含むことができる。
図7は、本発明の実施形態を実施するために使用することができる一例示的なコンピューティングシステム700を示す。図7のシステム700は、ユーザ装置、検索サーバ180、ネットワーククラウド140などの文脈において実施することができる。図7のコンピューティングシステム700は、1又は複数のプロセッサ710とメモリ720とを含む。メインメモリ720は、プロセッサ710が実行する命令及びデータを部分的に記憶する。メインメモリ720は、システム700が動作しているとき、実行可能コードを記憶することができる。図7のシステム700は、さらに、大容量記憶装置730、(1又は複数の)ポータブル記憶媒体ドライブ740、出力装置750、ユーザ入力装置760、グラフィクスディスプレイ770及び他の周辺装置780を含むことができる。
図7に示されるコンポーネントは、単一のバス790を介して接続されているものとして表されている。コンポーネントは、1又は複数のデータ伝送手段を通じて接続することができる。プロセッサユニット710及びメインメモリ720は、ローカルのマイクロプロセッサバスを介して接続することができ、大容量記憶装置730、(1又は複数の)周辺装置780、ポータブル記憶装置740及びディスプレイシステム770は、1又は複数の入力/出力(I/O)バスを介して接続することができる。
大容量記憶装置730は、磁気ディスクドライブ又は光学ディスクドライブを用いて実装することができ、プロセッサユニット710が使用するデータ及び命令を記憶する不揮発性記憶装置である。大容量記憶装置730は、本発明の実施形態を実施するためのシステムソフトウェアを、このソフトウェアをメインメモリ720にロードすることを目的として記憶することができる。
ポータブル記憶装置740は、フロッピー(登録商標)ディスク、コンパクトディスク又はデジタルビデオディスクなどのポータブルな不揮発性記憶媒体と連動して動作して、図7のコンピュータシステム700に対してデータ及びコードを入力し、出力する。本発明の実施形態を実施するためのシステムソフトウェアは、上記のようなポータブル媒体に記憶することができ、ポータブル記憶装置740を介してコンピュータシステム700に入力することができる。
入力装置760は、ユーザインタフェースの部分を提供する。入力装置760には、英数字及び他の情報を入力するための、キーボードなどの英数字キーパッド、又はマウス、トラックボール、スタイラス若しくはカーソル方向キーなどのポインティング装置を含むことができる。さらに、図7に示されるシステム700は、出力装置750を含む。適切な出力装置には、スピーカ、プリンタ、ネットワークインタフェース及びモニタを含む。
ディスプレイシステム770には、液晶ディスプレイ(LCD)又は他の適切なディスプレイ装置を含むことができる。ディスプレイシステム770は、テキストの及びグラフィカルな情報を受信し、ディスプレイ装置に対する出力のためにこの情報を処理する。
周辺装置780には、追加的な機能性をコンピュータシステムに追加するための任意の種類のコンピュータサポート装置を含むことができる。(1又は複数の)周辺装置780には、モデム又はルータを含むことができる。
図7のコンピュータシステム700に含まれるコンポーネントは、本発明の実施形態と共に使用することに適し得るコンピュータシステムに通常見られるものであり、当分野において周知である上記のようなコンピュータコンポーネントの広いカテゴリを表すことが意図される。したがって、図7のコンピュータシステム700は、パーソナルコンピュータ、ハンドヘルドコンピューティング装置、電話機、モバイルコンピューティング装置、ワークステーション、サーバ、ミニコンピュータ、メインフレームコンピュータ又は任意の他のコンピューティング装置とすることができる。コンピュータは、種々のバス構成、ネットワーク化されたプラットフォーム、マルチプロセッサプラットフォームなどを含むこともできる。Unix(登録商標)、Linux(登録商標)、Windows(登録商標)、Mac OS、Palm OS及び他の適切なオペレーティングシステムを含む、様々なオペレーティングシステムを使用することができる。
上記で説明された機能のいくつかは、記憶媒体(例えば、コンピュータ読取可能媒体)に記憶された命令から成ることができる。命令は、プロセッサにより読み出され、実行されることができる。記憶媒体のいくつかの例は、メモリ装置、テープ、ディスクなどである。命令は、プロセッサにより実行されると、プロセッサに本発明に従う動作をさせるように動作可能である。当業者は、命令、(1又は複数の)プロセッサ及び記憶媒体に詳しい。
本明細書に説明される処理を行うのに適した任意のハードウェアプラットフォームが、本発明での使用に適することに注目されたい。本明細書において使用される用語「一のコンピュータ読取可能記憶媒体」及び「複数のコンピュータ読取可能記憶媒体」は、命令を実行のためCPUに提供することに関与する任意の1又は複数の媒体を指す。こうした媒体は、これらに限定されないが、不揮発性媒体、揮発性媒体及び送信媒体を含む多くの形態をとることができる。不揮発性媒体には、例えば、固定されたディスクなどの光学ディスク又は磁気ディスクを含む。揮発性媒体には、システムRAMなどのダイナミックメモリを含む。送信媒体には、バスの1つの実施形態を含むワイヤを含み、中でも、同軸ケーブル、同線及び光ファイバを含む。送信媒体は、無線周波数(RF)データ通信及び赤外線(IR)データ通信の間に生成される波などの、音波又は光波の形態をとることもできる。コンピュータ読取可能媒体の一般的形態には、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、CD−ROMディスク、デジタルビデオディスク(DVD)、任意の他の光学媒体、マスク又はホールのパターンを備えた任意の他の物理媒体、RAM、PROM、EPROM、EEPROM、FLASHEPROM、任意の他のメモリチップ若しくはカートリッジ、搬送波、又はコンピュータが読み取ることができる任意の他の媒体を含む。
コンピュータ読取可能媒体の様々な形態は、1又は複数の命令の1又は複数のシーケンスを実行のためCPUに伝えることに関連し得る。バスがデータをシステムRAMに伝え、システムRAMからCPUが命令を読み出し、実行する。システムRAMにより受信された命令は、CPUによる実行の前又は後、固定のディスクに付加的に記憶されることができる。
上記の説明は例示であり、限定ではない。本発明の多くのバリエーションが、本開示を精査した当業者に明らかになるであろう。ゆえに、本発明の範囲は、上記の説明を参照しないで決定されるべきであり、代わって、添付される特許請求の範囲とその最大限の均等物の範囲とを参照して決定されるべきである。本発明は一連の実施形態に関連して説明されているが、これらの説明は、発明の範囲を本明細書に説明された特定の形態に限定するものではない。さらに、本発明の方法は必ずしも説明された別々のステップ又はステップの順序に限定されないことを理解されたい。反対に、本説明は上記のような代替、変更及び均等物を、添付される特許請求の範囲により定義され、そうでなければ当業者に十分理解されるものとして発明の主旨及び範囲内に含まれ得るように、カバーするものである。
インターネットサービスが構成されてインターネットアクセスをインターネットサービスにつながれた1又は複数のコンピューティング装置に提供できること、及びコンピューティング装置が1又は複数のプロセッサ、バス、メモリ装置、ディスプレイ装置、入力/出力装置などを含むことができることを当業者は認識するであろう。さらに、インターネットサービスは1又は複数のデータベース、リポジトリ、サーバなどにつながれて、本明細書に説明される発明の実施形態のうち任意のものを実施するために利用できることを当業者には十分理解されたい。さらに、用語「インターネットコンテンツ」は、ウェブページ上に提供され、あるいは表示されるウェブサイト、ドメイン、ウェブページ、ウェブアドレス、ハイパーリンク、URL、任意のテキスト、ピクチャ及び/又は媒体(ビデオ、オーディオ、並びにオーディオ及びビデオの任意の組み合わせなど)並びにこれらの任意の組み合わせのうち1又は複数を含むことを当業者には理解されたい。
システムの特定実施形態と例とが例示目的のため上記で説明されたが、当業者が認識するであろうとおり、様々な均等の変更が本願システムの範囲内にあり得る。例えば、プロセス又はステップが所与の順序で提示されているが、別の実施形態が、ステップを異なる順序で有するルーチンを行うことができ、いくつかのプロセス又はステップが削除され、移動され、追加され、さらに分割され、結合され、かつ/あるいは変更されて、別の又はサブの組み合わせを提供することができる。これらのプロセス又はステップの各々が、様々な種々の方法で実施されることができる。また、プロセス又はステップは、時間において順番に行われるものとして示されているが、これらのプロセス又はステップは、代わって同時に行うことができ、あるいは種々の時点で行うことができる。
前述から、システムの特定実施形態が例示の目的で本明細書に説明されているが、システムの主旨及び範囲から逸脱することなく様々な変更を行うことができることを十分理解されたい。したがって、システムは、添付される特許請求の範囲による場合を除き、限定されない。
関連出願の相互参照
本出願は、2010年7月29日に申請され“System and method for enabling search functionality of databases belonging to multiple service providers on a computer network”と題された仮米国特許出願第61/368,999号の優先の利益を主張する2010年8月23日に申請された米国特許出願第12/861,775号の一部継続である2012年5月24日に申請された米国特許出願第13/480,400号に対して優先権を主張し、これらの各々の全体を本明細書において参照により援用する。