次に以下に、コンピュータネットワーク環境内の複数の情報リソースにまたがってキーワードの意味的関連性を測定することによってシードキーワードを使用してキーワードを正確に効率的に発見する方法、装置、およびシステムに関係する様々な概念、ならびにその方法、装置、およびシステムの実装のより詳細な説明を示す。上で導入され、以下でより詳しく説明されている様々な概念は、多数の方法のうちのどれかで実装されてよく、説明されている概念は特定の実装様式に限定されない。
コンピュータネットワーク接続環境において、サーバは、クライアントデバイスによる検索ページを介してサブミットされる検索クエリ内のキーワードに基づき情報リソースとともに表示するコンテンツアイテムを提供し、選択することができる。コンテンツ選択管理プラットフォームの使用を通じて、コンテンツプロバイダは、コンテンツプロバイダのこれらのコンテンツアイテムの選択の際にこれらのキーワードのうちのどれが使用され得るかを指定することができる。コンテンツプロバイダは、また、追加の関係するキーワードを生成し、および/または発見するためにシードキーワードをそのようなコンテンツ選択管理プラットフォームに提供することができる。これらの関係するキーワードは、意味的関係グラフを使用して生成され、および/または発見され得る。意味的関係グラフは、各キーワードが互いにどの程度関係するかを明示することができる。しかしながら、関係するキーワードのそのような盛り合わせのリストを生成し提供すると、コンテンツプロバイダは複雑な情報のあまりの多さに閉口しかねない。ヒューマンコンピュータインタラクション(HCI)の観点から、キーワードの含めすぎは、コンテンツプロバイダがコンテンツアイテムの選択に使用するキーワードとして不正確なまたは他の何らかの形で関連性のないキーワードを指定することを引き起こす可能性がある。キーワードの含めすぎは、また、結果として、ユーザが選択されたコンテンツアイテムをインタラクティブに操作する可能性も低くし得る。さらに、フィルタリングを追加しなくても、関係するキーワードの生成されたリストはサーバに過剰な負担をかけ、その結果、処理電力消費が増大し、効率が低下し、クライアントデバイスに表示する関連するコンテンツアイテムを選択する際に時間がかかるようになり得る。
これらおよび他の技術的課題を解決するために、本開示では、情報リソースを構文解析してより正確で、関連性の高いキーワードを識別するか、または発見することによってキーワードの意味的関連性を測定するシステムおよび方法を提供する。大まかに言えば、サーバ(たとえば、データ処理システム)は、意味的関係グラフを使用してコンテンツプロバイダによって提供されるシードキーワードを使用することでキーワードのリストを生成することができる。意味的関係グラフは、各キーワードとシードキーワードとの間の意味的距離を明示し得る。キーワードの各々の間の意味的距離に基づき、キーワードのリストはキーワードカテゴリに分類されるものとしてよく、各々はキーワードのサブセットを有する。サーバは、コンテンツプロバイダによって提供されるドメインネームを使用してコンテンツプロバイダの情報リソース(たとえば、ウェブページ)を識別することもでき、識別された情報リソースから語を抽出することができる。
生成されたリストの各キーワードについて、サーバは、コンテンツプロバイダの情報リソースにまたがってキーワードがシードキーワードとともに出現する回数を測定することによってキーワードアフィニティスコアを計算することができる。キーワードアフィニティスコアは、とりわけ、それぞれの情報リソース上のキーワードそれ自体の突出位置、情報リソースの経路レベル、および一般コーパス内のキーワードの公称頻度に基づき加重または調整され得る。キーワードアフィニティスコアが、個別のキーワードに対する事前定義済みの閾値スコア以上である場合、サーバは、コンテンツアイテムを選択する際に使用するためにキーワードを選択状態として設定することができる。他方で、キーワードアフィニティスコアが閾値スコア未満である場合、サーバは、コンテンツアイテムを選択する際に使用するためにキーワードを非選択状態として設定することができる。したがって、キーワードアフィニティスコアは、客観的情報を使用してキーワード間の関係を決定することができる。
それに加えて、サーバは、キーワードカテゴリのキーワードに対してキーワードアフィニティスコアを使用して各分類されたキーワードカテゴリについてカテゴリアフィニティスコアを計算することができる。たとえば、サーバは、キーワードアフィニティスコアの加重平均和を計算してカテゴリアフィニティスコアを計算することができる。カテゴリアフィニティスコアが、個別のカテゴリに対する事前定義済みの閾値スコア以上である場合、サーバは、コンテンツアイテムを選択する際に使用するためにキーワードカテゴリを選択状態として設定することができる。他方で、カテゴリアフィニティスコアが閾値スコア未満である場合、サーバは、コンテンツアイテムを選択する際に使用するためにキーワードカテゴリを非選択状態として設定することができる。各キーワードカテゴリを選択するか、または非選択状態とすることに加えて、サーバは、キーワードカテゴリのすべてのキーワードを選択状態または非選択状態として設定することができる。サーバは、キーワードカテゴリの個別のキーワードを選択状態または非選択状態として設定することもできる。
いくつかのキーワードカテゴリは、コンテンツアイテムを選択する際に他のキーワードカテゴリと併せて使用するのに適さない場合がある。たとえば、キーワードカテゴリの間に意味的不一致があり得る。意味的不一致があるかどうかを決定するために、サーバは意味的関係グラフを使用して、異なるキーワードカテゴリにまたがる各キーワード間の意味的距離を識別するか、または異なるキーワードカテゴリにまたがってどのキーワードが互いに無関係として指定されるかを識別するものとしてよい。キーワードカテゴリうちの2つのカテゴリの間に意味的不一致がある場合、サーバは、それぞれのカテゴリアフィニティスコアを比較して意味的不一致を解決することができる。一方のキーワードカテゴリのカテゴリアフィニティスコアが、他方のキーワードカテゴリのカテゴリアフィニティスコアより大きい場合、サーバは、コンテンツアイテムを選択する際に使用するために第1のキーワードカテゴリを選択状態として、第2のキーワードカテゴリを非選択状態として設定することができる。
サーバは、次いで、キーワードカテゴリのリストをキーワードとともにコンテンツプロバイダコンピューティングデバイスに表示のために伝送することができる。キーワードカテゴリのリストは、各キーワードまたはキーワードカテゴリをユーザインターフェース内に表示する命令の一部(たとえば、スクリプト)であってよい。ユーザインターフェースは、次いで、コンテンツ選択管理プラットフォームの一部であってもよい。ユーザインターフェースは、また、コンテンツアイテムを選択する際にユーザに対してどのキーワードおよびキーワードカテゴリが選択または非選択状態とされるかを示すこともできる。この方式で、コンテンツプロバイダは、どのキーワードおよびキーワードカテゴリが選択または非選択状態とされているかを差別化することができ、コンテンツアイテムにおいて表示するコンテンツアイテムを自動的に選択する際にどのキーワードまたはキーワードカテゴリを使用するかを指定するうえでより詳しい情報を与えられるものとしてよい。したがって、処理されるべきデータに関連付けられている客観的尺度は、データを選択するために使用できる情報を提供するために使用され得る。したがって、客観的尺度を使用することによって、選択されたデータは客観的に改善され得る。
図1は、キーワードの意味的関連性を測定するための環境の一実装形態を示すブロック図である。環境100は、少なくとも1つのデータ処理システム110を備える。データ処理システム110は、少なくとも1つのプロセッサとメモリ、すなわち、処理回路を備え得る。メモリは、プロセッサによって実行されたときに、プロセッサに本明細書において説明されている動作のうちの1つまたは複数を実行させるプロセッサ実行可能命令を記憶する。プロセッサは、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、など、またはこれらの組合せを含み得る。メモリは、限定はしないが、プロセッサにプログラム命令を提供することができる電子デバイス、光デバイス、磁気デバイス、または他の記憶もしくは伝送デバイスを含み得る。メモリは、フロッピィディスク、CD-ROM、DVD、磁気ディスク、メモリチップ、ASIC、FPGA、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的消去可能ROM(EEPROM)、消去可能プログラム可能ROM(EPROM)、フラッシュメモリ、光媒体、またはプロセッサが命令を読み出すことができる他の好適なメモリをさらに含み得る。命令は、好適なコンピュータプログラミング言語からのコードを含むものとしてよい。データ処理システムは、様々な機能を実行することができる1つまたは複数のコンピューティングデバイスもしくはサーバを備えることができる。
ネットワーク105は、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、メトロエリアネットワーク、他のエリアネットワーク、イントラネット、衛星ネットワーク、音声もしくはデータ携帯電話通信ネットワークなどの他のコンピュータネットワーク、およびこれらの組合せなどのコンピュータネットワークを含み得る。システム100のデータ処理システム110は、ネットワーク105を介して、たとえば少なくとも1つのコンテンツプロバイダコンピューティングデバイス115、少なくとも1つのコンテンツパブリッシャコンピューティングデバイス120、または少なくとも1つのクライアントデバイス125と通信することができる。少なくとも1つのコンテンツプロバイダコンピューティングデバイス115、少なくとも1つのコンテンツパブリッシャコンピューティングデバイス120、または少なくとも1つのクライアントデバイス125は、ドメインエンティティに関連付けられるか、またはドメインエンティティに対応するか、またはドメインエンティティに他の何らかの形で属すものとしてよい。ドメインエンティティは、情報リソースに関連付けられているアカウントまたは他の何らかのパーティであってよい。ドメインエンティティは、エンティティ識別子またはリソース識別子によって識別されるか、または関連付けられ得る。たとえば、ドメインエンティティは、リソース識別子「www.example1.com」および「www.example2.com」に関連付けられ得る。この例では、ドメインエンティティは、「www.example1.com/index」または「www.example2.com/ex2/folder3」などのリソース識別子のバリアントに関連付けられ得る。少なくとも1つのコンテンツプロバイダコンピューティングデバイス115、少なくとも1つのコンテンツパブリッシャコンピューティングデバイス120、または少なくとも1つのクライアントデバイス125を使用することで、ドメインエンティティは、各々1つまたは複数のリソース識別子(たとえば、ユニフォームリソースロケータ)によって識別される1つまたは複数の情報リソースをホストし得る。
ネットワーク105は、コンテンツプロバイダコンピューティングデバイス115、データ処理システム110、および1つまたは複数のコンテンツソース、たとえば、他にもあるがとりわけ、ウェブサーバ、広告配信サーバの間で情報を中継する任意の形態のコンピュータネットワークであってよい。たとえば、ネットワーク105は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク、または他のタイプのデータネットワークなどの、インターネットおよび/または他のタイプのデータネットワークを含み得る。ネットワーク105は、また、ネットワーク105内でデータを受信し、および/または伝送するように構成されている任意の数のコンピューティングデバイス(たとえば、コンピュータ、サーバ、ルータ、ネットワークスイッチなど)も含み得る。ネットワーク105は、任意の数のハード配線および/またはワイヤレス接続をさらに含み得る。たとえば、ユーザコンピューティングデバイス115は、ネットワーク105内の他のコンピューティングデバイスに(たとえば、光ファイバケーブル、CAT5ケーブルなどを介して)ハード配線されているトランシーバとワイヤレス方式で(たとえば、Wi-Fi、セルラー、無線などを介して)通信し得る。
コンテンツプロバイダコンピューティングデバイス115は、コンテンツアイテムを提供してクライアントデバイス125における情報リソース上に表示するためにコンテンツプロバイダエンティティによって操作されるサーバまたは他のコンピューティングデバイスを含み得る。コンテンツプロバイダコンピューティングデバイス115によって提供されるコンテンツは、たとえば、一次コンテンツ、たとえば、コンテンツパブリッシャコンピューティングデバイス120によって提供されるコンテンツを含むウェブサイトまたはウェブページなどの、情報リソース上に表示するサードパーティコンテンツアイテムを含むことができる。コンテンツアイテムは、また、検索結果ウェブページ上にも表示され得る。たとえば、コンテンツプロバイダコンピューティングデバイス115は、ウェブページの一次コンテンツが会社によって提供される会社のウェブページなどの、コンテンツウェブページのコンテンツスロット内に表示するか、または検索エンジンによって提供される検索結果ランディングページ上に表示する、ソースコンテンツアイテムを提供するか、またはソースコンテンツアイテムであってよい。コンテンツプロバイダコンピューティングデバイス115に関連付けられているコンテンツアイテムは、スマートフォンまたは他のクライアントデバイス125上のアプリケーションの実行の一部として表示されるコンテンツなどの、ウェブページ以外の情報リソース上に表示され得る。
コンテンツパブリッシャコンピューティングデバイス120は、一次コンテンツを提供してネットワーク105を介して表示するためにコンテンツパブリッシャエンティティによって操作されるサーバまたは他のコンピューティングデバイスを含み得る。たとえば、コンテンツパブリッシャコンピューティングデバイス120は、ウェブページ上に表示する一次コンテンツを提供するウェブページ運営者を含むことができる。一次コンテンツは、コンテンツパブリッシャコンピューティングデバイス120によって提供されるもの以外のコンテンツを含むことができる。ウェブページは、コンテンツプロバイダコンピューティングデバイス115からのサードパーティコンテンツアイテムを表示するように構成されているコンテンツスロットも含むことができる。たとえば、コンテンツパブリッシャコンピューティングデバイス120は、会社のウェブサイトを稼動させることができ、ウェブサイトのウェブページ上に表示するその会社に関するコンテンツを提供することができる。ウェブページは、たとえば、コンテンツプロバイダコンピューティングデバイス115の広告などのサードパーティコンテンツアイテムを表示するように構成されているコンテンツスロットを含むことができる。いくつかの実装形態において、コンテンツパブリッシャコンピューティングデバイス120は、検索エンジンウェブサイトを運営する検索エンジン運営者の検索エンジンコンピューティングデバイス(たとえば、サーバ)を含む。検索エンジンウェブページの一次コンテンツ(たとえば、結果またはランディングウェブページ)は、コンテンツプロバイダコンピューティングデバイス115からのコンテンツアイテムなどのコンテンツスロット内に表示される、検索の結果さらにはサードパーティコンテンツアイテムを含むことができる。いくつかの実装形態において、コンテンツパブリッシャコンピューティングデバイス120は、ビデオコンテンツを供給するためのサーバを含むことができる。
クライアントデバイス125は、コンテンツパブリッシャコンピューティングデバイス120によって提供されるコンテンツ(たとえば、一次ウェブページコンテンツまたは他の情報リソース)およびコンテンツプロバイダコンピューティングデバイス115によって提供されるコンテンツ(たとえば、ウェブページのコンテンツスロット内に表示するように構成されているサードパーティコンテンツアイテム)などのデータを表示するためにネットワーク105を介して通信するように構成されているコンピューティングデバイスを含むことができる。クライアントデバイス125、コンテンツプロバイダコンピューティングデバイス115、およびコンテンツパブリッシャコンピューティングデバイス120は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、携帯情報端末、モバイルデバイス、コンシューマコンピューティングデバイス、サーバ、クライアント、デジタルビデオレコーダー、テレビ用セットトップボックス、ビデオゲーム機、またはネットワーク105を介して通信するように構成されている他の任意のコンピューティングデバイスを含むことができる。クライアントデバイス125は、エンドユーザがコンテンツを受信する要求をサブミットする際に使用できる通信デバイスであってよい。要求は検索エンジンへの要求であってよく、要求は検索クエリを含むことができる。いくつかの実装形態において、要求は、ウェブページにアクセス要求を含むことができる。
コンテンツプロバイダコンピューティングデバイス115、コンテンツパブリッシャコンピューティングデバイス120、およびクライアントデバイス125は、プロセッサおよびメモリ、すなわち処理回路を備えることができる。メモリは、プロセッサによって実行されたときに、プロセッサに本明細書において説明されている動作のうちの1つまたは複数を実行させる機械語命令を記憶する。プロセッサは、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、など、またはこれらの組合せを含み得る。メモリは、限定はしないが、プロセッサにプログラム命令を提供することができる電子デバイス、光デバイス、磁気デバイス、または他の記憶もしくは伝送デバイスを含み得る。メモリは、フロッピィディスク、CD-ROM、DVD、磁気ディスク、メモリチップ、ASIC、FPGA、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的消去可能ROM(EEPROM)、消去可能プログラム可能ROM(EPROM)、フラッシュメモリ、光媒体、またはプロセッサが命令を読み出すことができる他の好適なメモリをさらに含み得る。命令は、好適なコンピュータプログラミング言語からのコードを含むものとしてよい。
コンテンツプロバイダコンピューティングデバイス115、コンテンツパブリッシャコンピューティングデバイス120、およびクライアントデバイス125は、1つまたは複数のユーザインターフェースデバイスも備え得る。一般に、ユーザインターフェースデバイスは、感覚情報(たとえば、ディスプレイ上の視覚化、1つまたは複数の音声など)を生成することによりデータをユーザに伝達し、および/またはユーザから受信された感覚情報を電子信号に変換する電子デバイス(たとえば、キーボード、マウス、ポインティングデバイス、タッチスクリーンディスプレイ、マイクロフォンなど)を指す。1つまたは複数のユーザインターフェースデバイスは、様々な実装形態により、コンテンツプロバイダコンピューティングデバイス115、コンテンツパブリッシャコンピューティングデバイス120、およびクライアントデバイス125のハウジングの内部にある(たとえば、内蔵ディスプレイ、マイクロフォンなど)か、またはコンテンツプロバイダコンピューティングデバイス115、コンテンツパブリッシャコンピューティングデバイス120、およびクライアントデバイス125のハウジングの外部にある(たとえば、ユーザコンピューティングデバイス115に接続されているモニタ、ユーザコンピューティングデバイス115に接続されているスピーカーなど)ものとしてよい。たとえば、コンテンツプロバイダコンピューティングデバイス115、コンテンツパブリッシャコンピューティングデバイス120、およびクライアントデバイス125は、電子ディスプレイを備えるものとしてよく、これはネットワーク105を介して1つまたは複数のコンテンツソースから、および/またはデータ処理システム110から受信されたウェブページデータを使用してウェブページを視覚的に表示する。いくつかの実装形態において、広告主などの、コンテンツ配置キャンペーンマネージャまたはサードパーティコンテンツプロバイダは、コンテンツプロバイダコンピューティングデバイス115を介してデータ処理システム110と通信することができる。いくつかの実装形態において、広告主は、コンテンツプロバイダコンピューティングデバイス115のユーザインターフェースデバイス上に表示されるユーザインターフェースを介してデータ処理システム110と通信することができる。
データ処理システム110は、少なくとも1つのサーバを備え得る。たとえば、データ処理システム110は、少なくとも1つのデータセンターまたはサーバファーム内に配置されている複数のサーバを備え得る。いくつかの実装形態において、データ処理システム110は、コンテンツ配置システムを含む。データ処理システム110は、少なくとも1つのキーワード生成器モジュール130、少なくとも1つのリソース構文解析器モジュール135、少なくとも1つの頻度計算器モジュール140、および少なくとも1つのデータベース155を備えることができる。キーワード生成器モジュール130、リソース構文解析器モジュール135、頻度計算器モジュール140、キーワード選択器モジュール145、およびインターフェースプロバイダモジュール150は、各々、少なくとも1つの処理ユニット、サーバ、仮想サーバ、回路、エンジン、エージェント、器具、またはネットワーク105を介してデータベース155と、および他のコンピューティングデバイス(たとえば、コンテンツプロバイダコンピューティングデバイス115、コンテンツパブリッシャコンピューティングデバイス120、またはクライアントデバイス125)と通信するように構成されているプログラマブルロジックアレイなどの他の論理デバイスを含むことができる。
キーワード生成器モジュール130、リソース構文解析器モジュール135、頻度計算器モジュール140、キーワード選択器モジュール145、およびインターフェースプロバイダモジュール150は、少なくとも1つのコンピュータプログラムまたは少なくとも1つのスクリプトを含むか、または実行することができる。キーワード生成器モジュール130、リソース構文解析器モジュール135、頻度計算器モジュール140、キーワード選択器モジュール145、およびインターフェースプロバイダモジュール150は、別個のコンポーネント、単一のコンポーネント、またはデータ処理システム110の一部であってもよい。キーワード生成器モジュール130、リソース構文解析器モジュール135、頻度計算器モジュール140、キーワード選択器モジュール145、およびインターフェースプロバイダモジュール150は、1つまたは複数のスクリプトを実行するように構成されている1つまたは複数のプロセッサなどの、ソフトウェアおよびハードウェアの組合せを含むことができる。
データ処理システム110は、また、1つまたは複数のコンテンツリポジトリまたはデータベース155を備えることができる。データベース155は、データ処理システム110のローカルにあってもよい。いくつかの実装形態において、データベース155は、データ処理システム110のリモートにあってもよいが、ネットワーク105を介してデータ処理システムと通信することができる。データベース155は、他にもあるがとりわけ、意味的関係グラフ、語辞書、リソース識別子、およびキーワードリストインターフェーススクリプトを含むことができる。データベース155のコンテンツの追加の詳細が以下に提示される。
キーワード生成器モジュール130はシードキーワードを受信して、シードキーワードに関連するか、または他の何らかの形で関連付けられている追加のキーワードを生成することができる。いくつかの実装形態において、キーワード生成器モジュール130は1つまたは複数のシードキーワードを受信して、1つまたは複数のシードキーワードに関連するか、または他の何らかの形で関連付けられている追加のキーワードを生成することができる。いくつかの実装形態において、1つまたは複数のシードキーワードは、シードフレーズに対応するものとしてよい。シードフレーズは、1つまたは複数のキーワードを含むものとしてよい。いくつかの実装形態において、シードキーワードは、追加のキーワードに対する要求の一部であってもよい。追加のキーワードに対する要求は、ドメインエンティティを明示するエンティティ識別子またはドメインエンティティに関連付けられている1つまたは複数のリソース識別子も含み得る。シードキーワードは、コンテンツプロバイダコンピューティングデバイス115、コンテンツパブリッシャコンピューティングデバイス120、またはクライアントデバイス125から受信され得る。いくつかの実装形態において、シードキーワードは、コンテンツプロバイダコンピューティングデバイス115、コンテンツパブリッシャコンピューティングデバイス120、またはクライアントデバイス125のうちのいずれか1つで実行されているコンテンツ選択および配信管理プラットフォームから受信され得る。いくつかの実装形態において、受信されたシードキーワードの送り元であるコンテンツプロバイダコンピューティングデバイス115、コンテンツパブリッシャコンピューティングデバイス120、またはクライアントデバイス125は、ドメインエンティティに対応するか、関連付けられるか、または他の何らかの形で属すものとしてよい。シードキーワードをさらに処理する前に、キーワード生成器モジュール130は、辞書またはルックアップテーブルを使用してシードキーワードに対して標準形を生成するか、または決定することができる。辞書またはルックアップテーブルは、単語の各変形に対して標準形を明示するものとしてよい。標準形は、キーワードの標準化された語彙表象を表すものとしてよい。たとえば、受信されたシードキーワードが「mice」である場合、キーワード生成器モジュール130は、辞書を調べて「mouse」が「mice」に対する標準形であると明示することによってシードキーワードに対する標準形として「mouse」を生成することができる。
シードキーワードに関連するか、または他の何らかの形で関連付けられている追加のキーワードを生成するために、キーワード生成器モジュール130は、データベース155から意味的関係グラフまたはデータ構造(たとえば、配列、リンクリスト、グラフ、ツリー、ヒープなど)にアクセスすることができる。意味的関係グラフは、複数のキーワードまたはフレーズを含み得る。意味的関係グラフは、また、キーワードの各々の間の意味的距離または関連性尺度を明示するか、指定するか、または他の何らかの形で定義するものとしてよい。意味的関係グラフは、自然言語処理技術を使用し、複数のプリセットされたキーワードおよびキーワードの各々の間の事前定義済み意味的距離または関連性尺度を使用することで事前生成され得る。いくつかの実装形態において、複数のキーワードおよびキーワードの各々の間の意味的距離または関連性尺度は、自然言語処理技術を使用して動的に決定され得る。いくつかの実装形態において、複数のキーワードおよびキーワードの各々の間の意味的距離または関連性尺度は、自然言語処理技術を様々なソース(たとえば、情報リソース、スキャンして取り込んだ書籍など)から取り出されたキーワードのコーパスに適用することによって時々更新されるものとしてよい。
いくつかの実装形態において、意味的関係グラフは、複数のノードと複数のエッジとを含むことができる。複数のノードは、各々キーワードを表し得る。いくつかの実装形態において、複数のノードは、2つまたはそれ以上のキーワードを含むフレーズを表すものとしてよい。複数のエッジは、複数のノードのうちの2つのノードを接続またはリンクし得る。複数のエッジの各々は、意味的関係グラフ内の複数のノードのうちの2つのそれぞれのノードの2つのキーワードの間の意味的距離または関連性尺度を定義するかまたは明示するものとしてよい。複数のエッジの各々は、また、意味的関係グラフ内の複数のノードのうちの2つのそれぞれのノードが意味的に一致しているか、または意味的に衝突しているかを定義または明示するものとしてよい。意味的関係グラフは、他にもあるがとりわけ、配列、リンクリスト、ツリー、またはヒープなどの、データ構造体を使用して実装され得る。
意味的関係グラフを使用することで、キーワード生成器モジュール130は、シードキーワードに対応するノードを識別するか、または探索することができる。シードキーワードに対応するノードは、シードノードまたは初期ノードと称されるものとしてよい。いくつかの実装形態において、キーワード生成器モジュール130は、意味的関係グラフをトラバースしてシードノードを識別することができる。いくつかの実装形態において、キーワード生成器モジュール130は、意味的関係グラフ内のシードノードを見つけるためにルックアップテーブルまたは辞書上で検索することができる。ルックアップテーブルおよび辞書の各々は、キーワード、または意味的関係グラフのノードにインデックスを付けるか、または参照するために使用されるデータ構造体であってよい。いくつかの実装形態において、ルックアップテーブルおよび辞書の各々に対する1つまたは複数のデータ構造体は、意味的関係グラフとは別のものであってもよい。
意味的関係グラフ上のシードキーワードに対応するシードノードから、キーワード生成器モジュール130は、それぞれエッジを介してシードノードに隣接するか、または接続されているノードのセットを識別することができる。いくつかの実装形態において、キーワード生成器モジュール130は、隣接ノードがシードノードと意味的に一致しているか、または意味的に衝突しているかを決定することができる。シードキーワードと意味的に一致しているキーワードを有する隣接するか、または接続されているノードの各々について、キーワード生成器モジュール130は、シードノードからのそれぞれのエッジの意味的距離を識別することができる。キーワード生成器モジュール130は、意味的距離を第1の意味的距離閾値と比較することができる。いくつかの実装形態において、第1の意味的距離閾値は、事前定義され得る。いくつかの実装形態において、キーワード生成器モジュール130は、各隣接するキーワードとシードキーワードとの間の意味的距離に基づき第1の意味的距離閾値を計算するものとしてよい。たとえば、キーワード生成器モジュール130は、トラバース中に見つかったシードキーワードに隣接する特定のパーセンテージ(たとえば、50〜70%)のキーワードを除去するように第1の意味的距離閾値を設定し得る。シードノードと隣接ノードとの間のそれぞれのエッジの意味的距離が、第1の意味的距離閾値より小さい場合、キーワード生成器モジュール130は、そのノードを候補ノードとして識別することができ、対応するキーワードを候補キーワードとして識別することができる。キーワード生成器モジュール130は、そのノードを候補ノードのセットに含めることができる。候補ノードのセット内のノードの各々は、シードノードからの第1の意味的距離閾値より小さい意味的距離を有することができる。
候補ノードの各々について、キーワード生成器モジュール130は、もしあればそれぞれのエッジを介してそれぞれの候補に隣接するか、または接続されているノードのセットを識別することができる。キーワード生成器モジュール130は、それぞれの候補ノードに隣接するか、または接続されている1つまたは複数のノードがあるかどうかを決定することができる。それぞれの候補ノードに隣接するか、または接続されている1つまたは複数のノードがある場合、キーワード生成器モジュール130は、ここでもまた、各候補ノードに対するそれぞれのエッジの意味的距離を識別することができる。各隣接ノードについて、キーワード生成器モジュール130は、隣接ノードと候補ノードとの間の意味的距離を識別することができる。キーワード生成器モジュール130は、候補ノードを介して隣接ノードとシードノードとの間の合計意味的距離を決定するか、または計算することができる。たとえば、キーワード生成器モジュール130は、シードノードと候補ノードとの間の意味的距離と、候補ノードに隣接するノードと候補ノードそれ自体共間の意味的距離とを足し合わせることができる。キーワード生成器モジュール130は、隣接ノードとシードノードとの間の合計意味的距離を意味的距離閾値と比較することができる。シードノードと候補ノードに隣接するノードとの間のそれぞれのエッジの意味的距離合計が、意味的距離閾値より小さい場合、キーワード生成器モジュール130は、その隣接ノードを候補ノードとして識別することができ、対応するキーワードを候補キーワードとして識別することができる。いくつかの実装形態において、キーワード生成器モジュール130は、候補ノードと隣接ノードとの間の意味的距離を第2の意味的距離閾値と比較することができる。第2の意味的距離閾値は、シードと元の候補ノードとの間の距離に対する第1の意味的距離閾値以下であるものとしてよい。いくつかの実装形態において、第2の意味的距離閾値は、事前定義され得る。いくつかの実装形態において、キーワード生成器モジュール130は、各隣接キーワードと候補キーワードとの間、またはキーワードに隣接する各キーワードとシードキーワードとの間の意味的距離に基づき第2の意味的距離閾値を計算することができる。たとえば、キーワード生成器モジュール130は、トラバース中に見つかった候補キーワードに隣接する特定のパーセンテージ(たとえば、50〜70%)のキーワードを除去するように第2の意味的距離閾値を設定し得る。候補ノードと候補ノードに隣接するノードとの間のそれぞれのエッジの意味的距離が、他の意味的距離閾値より小さい場合、キーワード生成器モジュール130は、その隣接ノードを候補ノードとして識別することができ、対応するキーワードを候補キーワードとして識別することができる。キーワード生成器モジュール130は、意味的関係グラフ内の各ノードについてこのプロセスを繰り返すことができ、シードノードの意味的距離閾値の範囲内のすべてのノードを訪れるまで、意味的関係グラフをトラバースしてさらにノードまたはキーワードを候補キーワードのセットに追加し続けることができる。
候補ノードおよびキーワードのセットから、キーワード生成器モジュール130は、1つまたは複数のキーワードカテゴリを識別することができる。各キーワードカテゴリは、シードキーワードまたは別の候補キーワードからの意味的距離が意味的距離閾値より小さいとして識別された1つまたは複数のキーワードを含み得る。いくつかの実装形態において、キーワード生成器モジュール130は、クラスタリングアルゴリズムを候補ノードのセットに、それぞれの意味的距離を候補ノードに次々に、適用して1つまたは複数のキーワードカテゴリを識別することができる。クラスタリングアルゴリズムは、たとえば、他にもあるがとりわけ、k近傍(k-NN)アルゴリズム、主成分分析(PCA)、期待値最大化(EM)、および階層的クラスタ分析(HCA)であってよい。いくつかの実装形態において、キーワード生成器モジュール130は、意味的関係グラフ内の各候補キーワードの間の意味的距離を識別することができる。いくつかの実装形態において、キーワード生成器モジュール130は、クラスタリングアルゴリズムを使用して、識別された意味的距離に基づき候補ノードのクラスタを識別することができる。たとえば、k-NNアルゴリズムを使用することで、キーワード生成器モジュール130は、k個のノードの初期セットをランダムにk個のクラスタに対する平均として指定し、最近ノードをクラスタに割り当てることができる。次いで、キーワード生成器モジュール130は、各クラスタに対する識別された意味的距離を使用して重心を計算し、平均を計算することができる。この例では、キーワード生成器モジュール130は、各クラスタに対する平均の変化が所定のマージン未満であるときに、収束するまでこれらのステップを繰り返すものとしてよい。いくつかの実装形態において、キーワード生成器モジュール130は、各クラスタ内のノードのキーワードをキーワードカテゴリに設定するか、または割り当てることができる。
いくつかの実装形態において、キーワード生成器モジュール130は、シードノードからの候補ノードのレベルまたは深さに基づき1つまたは複数のキーワードカテゴリを識別することができる。いくつかの実装形態において、キーワード生成器モジュール130は、意味的関係グラフ上のそれぞれのエッジを介してシードノードから候補ノードの深さを識別することができる。いくつかの実装形態において、キーワード生成器モジュール130は、シードノードから1の深さを有する候補ノードのサブセットを識別することができる。キーワード生成器モジュール130は、候補ノードの識別されたサブセットの各ノードをそれぞれのキーワードカテゴリに設定するか、または割り当てることができる。候補ノードの識別されたサブセットの各ノードについて、キーワード生成器モジュール130は、それぞれの候補ノードに隣接するか、または接続されているか、または最も近いノードを識別することができる。キーワード生成器モジュール130は、それぞれの候補に隣接するか、または接続されているか、または最も近い識別されたノードのキーワードを設定するかまたは割り当てて、候補ノードに対応するそれぞれのキーワードカテゴリをノード化することができる。
いくつかの実装形態において、キーワード生成器モジュール130は、それぞれのキーワードカテゴリを表す各キーワードカテゴリに対する話題キーワードを識別することができる。いくつかの実装形態において、各キーワードカテゴリについて、キーワード生成器モジュール130は、キーワードカテゴリの1つまたは複数のキーワードから話題キーワードを選択することができる。いくつかの実装形態において、各キーワードカテゴリ内で、キーワード生成器モジュール130は、意味的関係グラフを使用してキーワードの各々の間の意味的距離を決定するかまたは計算することができる。いくつかの実装形態において、各キーワードカテゴリについて、キーワード生成器モジュール130は、それぞれのキーワードカテゴリの他のすべてのキーワードからの意味的距離が最小であるキーワードを識別することができる。いくつかの実装形態において、キーワード生成器モジュール130は、キーワードカテゴリ内のすべてのキーワードからの意味的距離が最小である識別されたキーワードをそれぞれのキーワードカテゴリを表す話題キーワードとして設定することができる。
図2を参照すると、図2は、例示的な実装形態による、意味的関係グラフ200の一実装形態を示すブロック図である。図示されている例では、意味的関係グラフ200は、7個のキーワードノード205A〜Fを含むものとしてよく、エッジ210A〜Kはキーワードノード205A〜Fの各々を接続する。図1のデータ処理システム110の文脈において、キーワード生成器モジュール130は、キーワードノード205Aをシードキーワード225のそれに対応するものとしてすでに識別していてもよい。次いで、キーワード生成器モジュール130は、エッジ210A〜Gを介して接続されているシードキーワードノード205Aに接続されているすべての隣接ノードをすでに識別しているものとしてよい。キーワード生成器モジュール130は、シードキーワードノード205Aとエッジ210A〜Gによって定義されている隣接ノードとの間の意味的距離を識別し得る。キーワード生成器モジュール130は、隣接ノードから、隣接ノード205Bおよび205Cの2つを閾値未満の意味的距離を有するものとして、その結果候補ノードとしてすでに識別していてもよい。次いで、キーワード生成器モジュール130は、候補ノード205Bおよび205Cで再びこのプロセスを繰り返すものとしてよい。キーワード生成器モジュール130は、キーワードノード205Cおよび205Dを、キーワードノード205Bを介してシードキーワードノード205Aからの閾値より小さいエッジ210Hおよび210Iによって定義されている意味的距離を各々有するものとしてすでに識別していてもよい。同様に、キーワード生成器モジュール130は、キーワードノード205Eおよび205Fを、キーワードノード205Cを介してシードキーワードノード205Aからの閾値より小さいエッジ210Jおよび210Kによって定義されている意味的距離を各々有するものとしてすでに識別していてもよい。次いで、キーワード生成器モジュール130は、クラスタリングアルゴリズムを適用して、キーワードノード205B、205C、および205Dをクラスタおよび一方のキーワードカテゴリ230Aとして、キーワードノード205C、205E、および205Fを他方のクラスタおよび他方のキーワードカテゴリ230Bとして識別することができる。
再び図1を参照すると、キーワードの意味的関連性が測定される情報リソースを取り出すために、リソース構文解析器モジュール135は、ドメインエンティティの1つまたは複数の情報リソースを識別することができる。ドメインエンティティは、コンテンツプロバイダコンピューティングデバイス115、コンテンツパブリッシャコンピューティングデバイス120、またはクライアントデバイス125のうちの少なくとも1つに対応するか、または関連付けられるものとしてよい。ドメインエンティティは、情報リソースに関連付けられているアカウントまたは他の何らかのパーティであってよい。ドメインエンティティは、エンティティ識別子またはリソース識別子によって識別されるか、または関連付けられ得る。いくつかの実装形態において、エンティティ識別子またはリソース識別子は、シードキーワードとともに受信され得る。リソース構文解析器モジュール135は、ドメインエンティティに関連付けられている複数のリソース識別子を探索するか、または識別することができる。複数のリソース識別子(たとえば、ユニバーサルリソースロケータ(URL))の各々は、ホスト名およびパス名(たとえば、「www.example.com/level1/level2/page.html」)を含むことができる。たとえば、リソース構文解析器モジュール135は、ネットワークエンティティインデックス生成器(たとえば、ウェブクローラー)を使用して、ネットワーク105を介して利用可能な多数の情報リソース(たとえば、ウェブページ)を識別し、リソース識別子のホスト名に基づき、識別された情報リソースのサブセットをドメインエンティティに属すものとして見つけることができる。いくつかの実装形態において、リソース構文解析器モジュール135は、コンテンツプロバイダコンピューティングデバイス115、コンテンツパブリッシャコンピューティングデバイス120、またはクライアントデバイス125から複数の情報リソースに対するリソース識別子を受信することができる。
リソース構文解析器モジュール135は、ドメインエンティティの1つまたは複数の情報リソースを取り出すか、取得するか、または他の何らかの形でアクセスすることができる。リソース構文解析器モジュール135は、ドメインエンティティの1つまたは複数のアクセスされた情報リソースを構文解析して、1つまたは複数のアクセスされた情報リソース上の1つまたは複数のキーワードを取得するか、取り出すか、または他の何らかの形で識別することができる。各識別されたキーワードについて、リソース構文解析器モジュール135は、関連付けられているリソース識別子、関連付けられている情報リソース、および情報リソースからのキーワードの1つまたは複数の特性を識別することができる。たとえば、キーワードの1つまたは複数の特性は、他にもあるがとりわけ、情報リソース上の位置、フォントタイプ、フォントサイズ、および色を含み得る。リソース構文解析器モジュール135は、1つまたは複数の情報リソースのキーワード、キーワードに関連付けられているリソース識別子、およびデータベース155上のキーワードの1つまたは複数の特性を記憶することができる。
リソース構文解析器モジュール135によって識別された1つまたは複数の情報リソースのキーワードを使用することで、頻度計算器モジュール140は、候補キーワードまたはキーワードカテゴリのセットの各キーワードに対するキーワードシードアフィニティスコアを生成することができる。キーワードシードアフィニティスコアは、シードキーワードおよび候補キーワードがドメインエンティティの1つまたは複数の情報リソース上で一緒に出現する頻度を表すか、または示し得る。頻度計算器モジュール140は、シードキーワードおよび各候補キーワードが1つまたは複数の情報リソース内に出現する頻度カウントを決定するか、または他の何らかの形で計算することができる。頻度計算器モジュール140は、シードキーワードおよび各候補キーワードが1つまたは複数の情報リソース内に出現するかどうかを決定するために探索アルゴリズムを実行することができる。探索アルゴリズムは、たとえば、他にもあるがとりわけ、線形探索、ハッシング、または二分探索アルゴリズムであってよい。シードキーワードおよび候補キーワードがどれかの情報リソース上で一緒に出現する毎に、リソース構文解析器モジュール135は、頻度カウントをインクリメントすることができる。各候補キーワードについて、頻度計算器モジュール140は、キーワードシードアフィニティスコアを頻度カウントに設定することができる。
頻度計算器モジュール140は、1つまたは複数の情報リソースのキーワードを標準形に変更または修正することができる。いくつかの実装形態において、頻度計算器モジュール140は、候補キーワードと1つまたは複数の情報リソース上のキーワードのうちのどれか1つとの間の語彙マッチを識別することができる。たとえば、語彙マッチは、候補キーワードと1つまたは複数の情報リソースのキーワードのうちのどれかとの間の文字毎の完全一致または類似一致であってよい。いくつかの実装形態において、頻度計算器モジュール140は、1つまたは複数の情報リソースからキーワードを識別することができる。いくつかの実装形態において、頻度計算器モジュール140は、1つまたは複数の情報リソースからのキーワードの文字を候補キーワードの文字と比較して一対一文字マッチを決定することができる。1つまたは複数の情報のキーワードの文字が候補キーワードの文字への一対一マッチである場合、頻度計算器モジュール140は、候補キーワードと1つまたは複数の情報リソースのキーワードとの間に語彙マッチがあると決定することができる。
いくつかの実装形態において、頻度計算器モジュール140は、意味的関係グラフを使用して、候補キーワードと1つまたは複数の情報リソース上のキーワードのうちのどれか1つとの間の意味的一致を決定することができる。頻度計算器モジュール140は、候補キーワードに対応する意味的関係グラフのノードを識別することができる。頻度計算器モジュール140は、情報リソースのキーワードのうちのどれか1つに対応するノードと候補キーワードに対応する識別されたノードとの間の意味的距離が第3の意味閾値より小さいかどうかを決定することができる。いくつかの実装形態において、第3の意味的距離閾値は、事前定義され得る。いくつかの実装形態において、頻度計算器モジュール140は、各候補キーワードと1つまたは複数の情報リソースのキーワードとの間の意味的距離に基づき第3の意味的距離閾値を計算することができる。たとえば、第3の意味的距離閾値は、候補キーワードに関係する特定のパーセンテージ(たとえば、80〜95%)のキーワードを除去するように設定され得る。頻度計算器モジュール140が、第3の意味的距離が意味閾値より小さいと決定した場合、頻度計算器モジュール140は、候補キーワードと情報リソースのキーワードとの間に意味的一致が存在すると決定することができる。
頻度計算器モジュール140が候補キーワードと1つまたは複数の情報リソース上のキーワードのうちのどれか1つとの間に語彙マッチまたは意味的一致があると決定したことに基づき、頻度計算器モジュール140は、候補キーワードに対する頻度カウントを計算するか、インクリメントするか、または他の何らかの形で更新することができる。頻度カウントは、候補キーワード(語彙マッチまたは意味的一致を有する)が1つまたは複数の情報リソース上のシードキーワードと一緒に出現する回数の尺度であり得る。いくつかの実装形態において、頻度計算器モジュール140は、候補キーワードに対する頻度カウントをインクリメントするようにカウンタを維持することができる。
頻度計算器モジュール140は、頻度カウントからキーワードシードアフィニティスコアを生成するか、または決定することができる。キーワードシードアフィニティスコアは、候補キーワード(語彙マッチまたは意味的一致を有する)が1つまたは複数の情報リソース上のシードキーワードと一緒に出現する回数の加重尺度であり得る。いくつかの実装形態において、頻度計算器モジュール140は、候補キーワードと情報リソースのキーワードとの間の意味的距離に基づき候補キーワードに対するキーワードシードアフィニティスコアを調整することができる。頻度計算器モジュール140は、それぞれのキーワードの1つまたは複数の特性に基づき候補キーワードに対するキーワードシードアフィニティスコアを調整することができる。いくつかの実装形態において、頻度計算器モジュール140は、候補キーワードに対するキーワードシードアフィニティスコアを調整するように加重係数を決定するか、または計算することができる。加重係数は、情報リソース上のキーワードの位置に基づくものとしてよい。たとえば、頻度計算器モジュール140は、対応する候補キーワードが関連付けられている情報リソースの相対的に上の方へ現れる場合にキーワードシードアフィニティスコアを増加させることができる。その一方で、頻度計算器モジュール140は、対応する候補キーワードが関連付けられている情報リソースの相対的に下の方へ現れる場合にキーワードシードアフィニティスコアを減少させることができる。
いくつかの実装形態において、頻度計算器モジュール140は、ドメインエンティティの1つまたは複数の情報リソース上の候補キーワードのフォントサイズに基づき候補キーワードに対するキーワードシードアフィニティスコアを調整するように加重係数を決定するか、または計算することができる。たとえば、頻度計算器モジュール140は、対応する候補キーワードが情報リソース上の他のキーワードよりも相対的に大きい場合にキーワードシードアフィニティスコアを増加させることができる。対照的に、頻度計算器モジュール140は、対応する候補キーワードが情報リソース上の他のキーワードよりも相対的に小さい場合にキーワードシードアフィニティスコアを減少させることができる。
いくつかの実装形態において、頻度計算器モジュール140は、情報リソースの階層の深さまたはレベルに基づき候補キーワードに対するキーワードシードアフィニティスコアを調整することができる。頻度計算器モジュール140は、候補キーワードとドメインエンティティの1つまたは複数の情報リソースのキーワードのうちのどれかとの間の語彙マッチまたは意味的一致が存在する情報リソースに対するリソース識別子を識別することができる。頻度計算器モジュール140は、リソース識別子を構文解析して、リソース識別子のパス名から情報リソースの階層の深さまたはレベルを識別することができる。たとえば、語彙マッチが生じた情報リソースに対するリソース識別子が「www.example.com/index/sub1/」である場合、頻度計算器モジュール140は、スラッシュに基づくパス名「/index/sub1/」から階層の深さが2であることを識別することができる。
頻度計算器モジュール140は、候補キーワードに対する正規化係数によりキーワードシードアフィニティスコアまたは頻度スコアを調整することができる。いくつかの実装形態において、頻度計算器モジュール140は一般コーパスを識別することができる。一般コーパスは、キーワードが出現する公称または平均頻度を明示することができる。一般コーパスは、データベース155から、またはドメインエンティティに属しているもの以外の複数の情報リソースにまたがって取り出され得る。公称頻度は、たとえば、語頻度-文書頻度逆数(td-idf)尺度であってよい。いくつかの実装形態において、頻度計算器モジュール140は、一般コーパスからの候補キーワードの公称頻度を識別することができる。いくつかの実装形態において、頻度計算器モジュール140は、一般コーパスから識別された候補キーワードの公称頻度に基づき正規化を計算するか、または決定することができる。たとえば、頻度計算器モジュール140は、ドメインエンティティの多数の情報リソースを識別し、情報リソースの数と一般コーパスからの公称頻度との商を正規化係数として計算することができる。
図3を参照すると、図3は、シードキーワードとマッチする1つもしくは複数のキーワード315A〜N、またはキーワードカテゴリのキーワードを伴う情報リソース300のブロック図である。情報リソース300は、単一のウェブページであってよく、一次コンテンツ305さらには他の二次コンテンツ要素を含み得る。一次コンテンツ305は、1つまたは複数のキーワード310A〜Nを含むことができる。図1のデータ処理システム110の文脈において、リソース構文解析器モジュール135は、情報リソース300をシードキーワードが受信されたドメインエンティティに属すものとしてすでに識別しているものとしてよい。それに加えて、リソース構文解析器モジュール135は、情報リソース300の一次コンテンツ305上の1つまたは複数のキーワード310A〜Nを取り出すために情報リソース300をすでに構文解析しているものとしてよい。リソース構文解析器モジュール135と併せて、頻度計算器モジュール140は、シードキーワードおよび候補キーワードのセットの候補キーワードまたは情報リソース300のキーワード310A〜Nの間のキーワードカテゴリのうちの1つを探索することができる。探索を通じて、頻度計算器モジュール140は、3つのキーワード315A〜Cをすでに識別しているものとしてよく、少なくとも1つの315Aはシードキーワードとマッチし、他の1つまたは2つの315Bおよび315Cは候補キーワードのうちの1つまたは2つとマッチしている。マッチを見つけた後、頻度計算器モジュール140は、頻度カウントを候補キーワードの各々に割り当てることができる。頻度計算器モジュール140は、また、頻度カウントからキーワードシードアフィニティスコアを計算し、情報リソース上のマッチしたキーワード315A〜Cの位置に基づきキーワードシードアフィニティスコアを調整することができる。この例では、頻度計算器モジュール140は、キーワード315Cがキーワード315Bと比較して情報リソース300上で低く見えるので、マッチするキーワード315Bに対応する候補キーワードに比べて低いマッチするキーワード315Cに対応する候補キーワードのキーワードシードアフィニティスコアを重み付けすることができる。
再び図1を参照すると、頻度計算器モジュール140は、各キーワードカテゴリに対するカテゴリシードアフィニティスコアを生成するか、または計算することができる。いくつかの実装形態において、頻度計算器モジュール140は、キーワードカテゴリ内のキーワードの各々のキーワードシードアフィニティスコアに基づきそれぞれのキーワードカテゴリに対する組合せスコアを計算することができる。組合せスコアは、キーワードカテゴリ内のキーワードに対するキーワードシードアフィニティスコアの平均値であってよい。いくつかの実装形態において、平均値は、キーワードカテゴリのキーワードに対するキーワードシードアフィニティスコアの調整を考慮するように加重平均値であってよい。たとえば、キーワードシードアフィニティスコアの平均値を計算している間に、頻度計算器モジュール140は、他にもあるがとりわけキーワードの1つまたは複数の特性、キーワードの配置に基づき平均値を調整することができる。いくつかの実装形態において、頻度計算器モジュール140は、キーワードカテゴリ内のキーワードに対する頻度カウントに基づきそれぞれのキーワードカテゴリに対する組合せスコアを計算することができる。組合せスコアは、それぞれのキーワードカテゴリ内のキーワードに対する頻度カウントの平均値であってよい。
キーワード選択器モジュール145は、キーワードカテゴリ内の1つもしくは複数のキーワードまたは個別の候補キーワードをシードキーワードおよびドメインエンティティに関連しているかまたは関連していないものとして決定するか、または識別するか、または選択することができる。キーワードカテゴリ内の個別のキーワードを関連しているものとして選択するために、キーワード選択器モジュール145は、キーワードシードアフィニティスコアを候補キーワードのセットまたはキーワードカテゴリの各々の各候補キーワードに対するキーワードシードアフィニティスコア閾値と比較することができる。頻度キーワード選択器モジュール145は、それぞれのキーワードアフィニティスコアがキーワードシードアフィニティスコア閾値より大きいか、または小さいか、または等しい各キーワードカテゴリ内のキーワードのサブセットを識別することができる。キーワードシードアフィニティスコアがキーワードシードアフィニティスコア閾値より小さい場合、キーワード選択器モジュール145は、それぞれのキーワードをシードキーワードおよびドメインエンティティに関連するものとして決定するか、識別するか、または選択することができる。キーワードシードアフィニティがキーワードシードアフィニティスコア閾値以上である場合、キーワード選択器モジュール145は、それぞれのキーワードをシードキーワードおよびドメインエンティティに関連しないものとして決定するか、識別するか、または非選択状態とすることができる。
いくつかの実装形態において、候補キーワードのセットの各候補キーワードについて、キーワード選択器モジュール145は、頻度カウントを閾値頻度カウントと比較する。いくつかの実装形態において、キーワード選択器モジュール145は、それぞれの頻度カウントが閾値頻度カウントより大きいか、または等しいか、または小さい候補キーワードのサブセットを識別することができる。いくつかの実装形態において、閾値頻度カウントは、事前定義され得る。いくつかの実装形態において、キーワード選択器モジュール145は、キーワードのサブセット内の候補キーワードの数に基づき閾値頻度カウントを動的に設定するか、または決定することができる。たとえば、キーワード選択器モジュール145は、そのサブセットから候補キーワードのうちの特定のパーセンテージ(たとえば、40〜60%)のキーワードを除去するように閾値頻度カウントを設定することができる。頻度カウントが閾値頻度カウント以上である場合、キーワード選択器モジュール145は、それぞれのキーワードをシードキーワードおよびドメインエンティティに関連するものとして決定するか、識別するか、または選択することができる。キーワードシードアフィニティがキーワードシードアフィニティスコア閾値より小さい場合、キーワード選択器モジュール145は、それぞれのキーワードをシードキーワードおよびドメインエンティティに関連しないものとして決定するか、識別するか、または非選択状態とすることができる。
いくつかの実装形態において、候補キーワードのセットの各候補キーワードについて、キーワード選択器モジュール145は、キーワードシードアフィニティスコアをキーワードシードアフィニティスコア閾値と比較する。いくつかの実装形態において、キーワード選択器モジュール145は、それぞれのキーワードシードアフィニティスコアがキーワードシードアフィニティスコア閾値より大きいか、または等しいか、または小さい各キーワードカテゴリ内のキーワードのサブセットを識別することができる。いくつかの実装形態において、キーワードシードアフィニティスコア閾値は、事前定義され得る。いくつかの実装形態において、キーワード選択器モジュール145は、それぞれのカテゴリ内のキーワードの数に基づきキーワードシードアフィニティスコア閾値を動的に設定するか、または決定することができる。たとえば、キーワード選択器モジュール145は、キーワードカテゴリから候補キーワードのうちの特定のパーセンテージ(たとえば、40〜60%)のキーワードを除去するようにキーワードシードアフィニティスコア閾値を設定することができる。キーワードシードアフィニティスコアがキーワードシードアフィニティスコア閾値以上である場合、キーワード選択器モジュール145は、それぞれのキーワードをシードキーワードおよびドメインエンティティに関連するものとして決定するか、識別するか、または選択することができる。キーワードシードアフィニティスコアがキーワードシードアフィニティスコア閾値より小さい場合、キーワード選択器モジュール145は、それぞれのキーワードをシードキーワードおよびドメインエンティティに関連しないものとして決定するか、識別するか、または非選択状態とすることができる。
キーワード選択器モジュール145は、1つもしくは複数のキーワードカテゴリまたは候補キーワードのサブセットをシードキーワードおよびドメインエンティティに関連しているかまたは関連していないものとして決定するか、または識別するか、または選択することができる。1つまたは複数のキーワードカテゴリをシードキーワードおよびドメインエンティティに関連するものとして選択するために、キーワード選択器モジュール145は、各キーワードカテゴリのカテゴリシードアフィニティスコアをカテゴリシードアフィニティスコアと比較することができる。キーワード選択器モジュール145は、各キーワードカテゴリのカテゴリシードアフィニティスコアをカテゴリシードアフィニティスコア閾値より大きいか、または小さいか、または等しいものとして識別することができる。カテゴリシードアフィニティスコアがカテゴリシードアフィニティスコア閾値以上である場合、キーワード選択器モジュール145は、それぞれのキーワードカテゴリをシードキーワードおよびドメインエンティティに関連するものとして決定するか、識別するか、または選択することができる。いくつかの実装形態において、キーワード選択器モジュール145は、キーワードカテゴリ内のキーワードのサブセットを関連しないものとして決定するか、または識別するか、または選択しながら、それぞれのキーワードカテゴリを関連するものとして決定するか、または識別するか、または選択することができる。カテゴリシードアフィニティスコアがカテゴリシードアフィニティスコア閾値より小さい場合、キーワード選択器モジュール145は、それぞれのキーワードカテゴリをシードキーワードおよびドメインエンティティに関連しないものとして決定するか、識別するか、または非選択状態とすることができる。
意味的関係グラフを使用することで、キーワード選択器モジュール145は、2つまたはそれ以上のキーワードカテゴリの間の意味的不一致を識別するか、または決定することができる。いくつかのキーワードカテゴリは、コンテンツアイテムを選択する際に他のキーワードカテゴリと併せて使用するのに適さない場合がある。たとえば、キーワードカテゴリは、互いに無関係であり得る(たとえば、「squash」(ラケット)対「squash」(野菜))。いくつかの実装形態において、キーワード選択器モジュール145は、意味的関係グラフのエッジに基づき意味的不一致を識別するか、または決定することができる。いくつかの実装形態において、キーワード選択器モジュール145は、キーワードカテゴリ内の各キーワードについて1つまたは複数のノードを識別するか、または決定することができる。いくつかの実装形態において、意味的関係グラフをトラバースすることによって、キーワード選択器モジュール145は、キーワードを表す各ノードを接続する1つまたは複数のノードを識別することができる。いくつかの実装形態において、キーワード選択器モジュール145は、それぞれの2つのノードを接続する各識別されたエッジが2つのノードによって表される各キーワードが意味的に衝突していることを明示するかどうかを決定することができる。いくつかの実装形態において、エッジが2つの異なるキーワードカテゴリにまたがるキーワードを表す2つのノードが意味的に衝突していると明示している場合、キーワード選択器モジュール145は、それぞれのキーワードカテゴリの間の意味的不一致を決定するか、または識別することができる。いくつかの実装形態において、エッジが2つの異なるキーワードカテゴリにまたがるキーワードを表す2つのノードが意味的に衝突していないと明示している場合、キーワード選択器モジュール145は、それぞれのキーワードカテゴリの間の意味的不一致の欠如を識別することができる。
いくつかの実装形態において、キーワード選択器モジュール145は、それぞれのキーワードを表す接続されているノードが意味的に衝突していることを明示するエッジの数を決定するか、計算するか、またはカウントすることができる。いくつかの実装形態において、キーワード選択器モジュール145は、それぞれのキーワードを表す接続されているノードが意味的に衝突していることを明示するエッジの数を閾値数と比較することができる。エッジの数が閾値数以上である場合、キーワード選択器モジュール145は、2つのそれぞれのキーワードカテゴリの間の意味的不一致を識別することができる。エッジの数が閾値数未満である場合、キーワード選択器モジュール145は、2つのそれぞれのキーワードカテゴリの間の意味的不一致の欠如を識別することができる。
いくつかの実装形態において、キーワード選択器モジュール145は、2つまたはそれ以上のキーワードカテゴリにまたがるキーワードの間の意味的距離に基づき2つまたはそれ以上のキーワードカテゴリが意味的に衝突していると決定することができる。いくつかの実装形態において、キーワード選択器モジュールは、2つまたはそれ以上のキーワードカテゴリにまたがるキーワードの各々の間の意味的距離を識別するために意味的関係グラフをトラバースすることができる。いくつかの実装形態において、キーワード選択器モジュール145は、一方のキーワードカテゴリ内のキーワードから他方のキーワードカテゴリ内の他方のキーワードまでの意味的距離を意味的距離閾値と比較することができる。意味的距離閾値は、シードキーワードからキーワードカテゴリ内のキーワードを識別するために使用される閾値と異なっていてもよい。意味的距離が意味的距離閾値より大きい場合、キーワード選択器モジュール145は、2つのそれぞれのキーワードカテゴリの間の意味的不一致を識別するか、または決定することができる。
2つまたはそれ以上のキーワードカテゴリの間の意味的不一致が識別されるか、または決定された場合、キーワード選択器モジュール145は、それぞれのカテゴリシードアフィニティスコア同士を比較することができる。カテゴリシードアフィニティスコアを比較したことから、キーワード選択器モジュール145は、より高いまたは最も高いカテゴリシードアフィニティスコアに対応するキーワードカテゴリを選択することができる。いくつかの実装形態において、キーワード選択器モジュール145は、より高いかまたは最も高いカテゴリシードアフィニティスコアに対応するキーワードカテゴリをシードキーワードおよびドメインエンティティに関連するものとして決定するか、識別するか、または選択することができる。いくつかの実装形態において、キーワード選択器モジュール145は、より低いかまたは最も低いカテゴリシードアフィニティスコアに対応するキーワードカテゴリをシードキーワードおよびドメインエンティティに関連しないものとして決定するか、識別するか、または選択することができる。
いくつかの実装形態において、キーワード選択器モジュール145は、意味的不一致を有するものとして識別されているキーワードカテゴリに基づきキーワードカテゴリのグループ間の意味的不一致を決定するか、または識別することができる。いくつかの実装形態において、キーワード選択器モジュール145は、それぞれのキーワードカテゴリの間の意味的不一致の欠如の識別に基づきキーワードカテゴリのグループを識別することができる。たとえば、4つのキーワードカテゴリ「A」、「B」、「C」、および「D」があり得る。ノードの間の意味的不一致を明示するエッジまたは意味的距離のいずれかに基づき、キーワード選択器モジュール145は、キーワードカテゴリ「A」と「B」、「A」と「C」、および「B」と「D」の間の意味的不一致を識別することができる。識別された意味的不一致から、キーワード選択器モジュール145は、キーワードカテゴリ「A」および「D」を一方のグループとして、「B」および「C」を他方のグループとして識別することができる。
いくつかの実装形態において、キーワード選択器モジュール145は、互いに意味的不一致を有するものとして識別されているキーワードカテゴリのグループの各々についてグループシードアフィニティスコアを決定するか、または計算することができる。いくつかの実装形態において、キーワード選択器モジュール145は、キーワードカテゴリのグループの各々に対するグループシードアフィニティスコアを互いに比較することができる。いくつかの実装形態において、キーワード選択器モジュール145は、より高いかまたは最も高いグループシードアフィニティスコアに対応するキーワードカテゴリのグループをシードキーワードおよびドメインエンティティに関連するものとして決定するか、識別するか、または選択することができる。いくつかの実装形態において、キーワード選択器モジュール145は、より低いかまたは最も低いカテゴリシードアフィニティスコアに対応するキーワードカテゴリのグループをシードキーワードおよびドメインエンティティに関連しないものとして決定するか、識別するか、または選択することができる。
インターフェースプロバイダモジュール150は、対応する頻度カウント、キーワードシードアフィニティスコア、カテゴリシードアフィニティスコア、またはグループシードアフィニティスコアに基づきキーワードカテゴリおよびキーワードカテゴリのキーワードを選択状態または非選択状態として示すインターフェースを生成することができる。いくつかの実装形態において、インターフェースは、他にもあるがとりわけ、情報リソースまたは別個のアプリケーションの一部であってよい。インターフェースは、キーワードカテゴリおよびキーワードの1つまたは複数のリストを選択状態または非選択状態として含み得る。いくつかの実装形態において、選択状態としてのキーワードカテゴリのリストは、非選択状態としてのキーワードカテゴリのリストと異なるか、または別のものであってよい。インターフェースプロバイダモジュール150は、インターフェースを、シードキーワードを送信したコンテンツプロバイダコンピューティングデバイス115、コンテンツパブリッシャコンピューティングデバイス120、またはクライアントデバイス125に伝送することができる。いくつかの実装形態において、インターフェースプロバイダモジュール150は、キーワードまたはキーワードカテゴリをシードキーワードおよびドメインエンティティに関連しているまたは関連していないものとして識別するか、または決定したことに応答して、インターフェースを生成するか、または伝送することができる。
図4を参照すると、図4は、選択状態または非選択状態として指定されているシードキーワードから生成されたキーワード425A〜Iおよび430A〜Iとキーワードカテゴリ420A〜Dとを示すインターフェース405を使用する情報リソース400のブロック図である。インターフェース405は、シードキーワード410Aに対する入力、選択されたキーワードカテゴリ415Aのリスト、非選択状態のキーワードカテゴリ415Bのリスト、1つまたは複数のキーワードカテゴリ420A〜E、および1つまたは複数のキーワード425A〜Iおよび430A〜Iを含み得る。選択されたキーワードカテゴリ415Aのリストは、一般的に、情報リソース400の左側に沿っており、非選択状態のキーワードカテゴリ415Bのリストは、一般的に、情報リソース400の右側に沿っているものとしてよい。選択されたキーワードカテゴリ415A列の下で、キーワードのうちのいくつかが選択され得るが(たとえば、チェックボックス435A)、いくつかの他のキーワードは、非選択状態とされ得る(たとえば、チェックボックス435B)。非選択状態のキーワードカテゴリ415B列の下にある間、キーワードはすべて非選択状態とされ得る(たとえば、チェックボックス435C)。
図1の文脈において、キーワード生成器モジュール130は、意味的関係グラフおよびシードキーワード410Aを使用して、キーワード420A〜Iおよび430A〜Iをすでに生成し、キーワード420A〜Iおよび430A〜Iの各々に対してキーワードカテゴリ420A〜Eをすでに決定しているものとしてよい。リソース構文解析器モジュール135は、シードキーワード410Aをサブミットしたドメインエンティティに属している情報リソースを識別し得る。頻度計算器モジュール140はリソース構文解析器モジュール135とともに、生成されたキーワードおよびシードキーワードが識別された情報リソース上で一緒に出現する頻度カウントをすでに計算しているものとしてよい。頻度カウントを使用することで、頻度計算器モジュール140は、キーワードの各々に対するキーワードシードアフィニティスコアをすでに計算しており、次いで、キーワードカテゴリのキーワードに対するキーワードシードアフィニティスコアを使用して、キーワードカテゴリに対するカテゴリシードアフィニティスコアをすでに計算しているものとしてよい。次いで、キーワード選択器モジュール145は、カテゴリシードアフィニティスコアを閾値スコアと比較して、いくつかのカテゴリを選択状態(420A〜C)として、他のカテゴリを非選択状態(たとえば、420Dおよび420E)として、シードキーワードおよびドメインエンティティに関連するものとして識別しているものとしてよい。それに加えて、キーワード選択器モジュール145は、キーワードカテゴリが選択状態であるときであっても、個別のキーワードを選択状態または非選択状態として(たとえば、キーワード425Cはチェックボックス435Aおよび435Bによって示されているように選択状態としてキーワードカテゴリ420Aの下で非選択状態として)すでに決定しているものとしてよい。インターフェースプロバイダモジュール150は、これらの結果を使用してインターフェース405をすでに生成していてよく、一方の列は選択されたキーワードカテゴリ415Aをリストし、他方の列は非選択状態のキーワードカテゴリ415Bをリストしている。
図5を参照すると、図5は、選択状態または非選択状態として指定されているシードキーワードから生成されたキーワード425A〜Iおよび430A〜Iとキーワードカテゴリ420A〜Dとを示すインターフェース405を使用する情報リソース400の別のブロック図である。図1の文脈において、ドメインエンティティから受信されたシードキーワードは、「spatula 410A」であってよい。「spatula」に対応するノードから意味的関係グラフをトラバースすることによって、キーワード生成器モジュール130は、「steel」425D、「handle」425F、および「culinary」430Eなどのキーワード425A〜Iおよび430A〜Iをすでに識別しているものとしてよい。キーワード生成器モジュール130は、生成されたキーワード425A〜Iおよび430A〜Iをキーワードカテゴリ「material」420A、「component」420B、「color」420C、「discipline」420D、および「service」420Eにすでに分類しているものとしてよい。次いで、頻度計算器モジュール140は、リソース構文解析器モジュール135とともに、各キーワードカテゴリ420A〜Eに対する各キーワード425A〜Iおよび430A〜Iについて頻度カウント、キーワードシードアフィニティスコア、およびカテゴリシードアフィニティスコアをすでに計算しているものとしてよい。キーワード選択器モジュール145は、頻度カウントおよびアフィニティスコアを閾値と比較し、キーワードカテゴリ420A〜Cを選択状態として、キーワードカテゴリ420Dおよび420Eを非選択状態として、比較結果に基づき識別するものとしてよい。次いで、キーワード選択器モジュール145の結果から、インターフェースプロバイダモジュール150はインターフェース405を生成し得る。
意味的関係グラフをトラバースして追加のキーワードを見つけ、ドメインエンティティの情報リソースを構文解析してドメインエンティティへのキーワードの関連性およびアフィニティを計算することによって、本明細書で詳述されている技術はコンテンツ選択キャンペーンプラットフォームにおいて使用するより正確なより関連性の高いキーワードによりキーワードノードの発見を改善し得る。意味的関係グラフを使用して生成されたキーワードおよびキーワードカテゴリは、関連性およびアフィニティに基づきフィルタリングされ、選択状態または非選択状態として分類され得る。これらの分類は、コンテンツ選択キャンペーンプラットフォームにおいてどのキーワードおよびキーワードカテゴリを利用するかを指定する際のコンテンツプロバイダへの優れた情報源となり得る。それに加えて、フィルタリングは、より関連性の高いコンテンツアイテムの選択を改善しながら、コンテンツ選択およびサービス提供時に処理電力の負担を低減し、時間を短縮し、サーバの効率を高め得る。さらに、ヒューマンコンピュータインタラクション(HCI)の考慮から、より関連性の高いコンテンツアイテムの選択の結果、エンドユーザが選択されたコンテンツアイテムをインタラクティブに操作する可能性が高くなり、それによって、コンテンツアイテムが表示される情報リソースへのユーザエクスペリエンスを改善し得る。
図6を参照すると、図6は、キーワードの意味的関連性を測定する方法600を示す流れ図である。方法600に関して本明細書において説明されている機能は、データ処理システム110、コンテンツプロバイダデバイス115、またはこれらの任意の組合せによって実行されるか、または他の何らかの形で実行され得る。手短に概要を述べると、データ処理システムは、ドメインエンティティに対応するコンテンツプロバイダコンピューティングデバイスから、シードキーワードを受信して、シードキーワードに関連する追加のキーワードを生成することができる(ブロック605)。データ処理システムは、意味的関係グラフを使用して、第1のキーワードカテゴリおよび第2のキーワードカテゴリを含む複数のキーワードカテゴリを識別することができる(ブロック610)。複数のキーワードカテゴリの各々が複数のキーワードを含むことができる。複数のキーワードの各々は、意味的距離閾値より小さい、シードキーワードからの意味的距離を有することができる。データ処理システムは、第1のキーワードカテゴリおよび第2のキーワードカテゴリの各キーワードについて、ドメインエンティティの情報リソース上のシードキーワードとともに出現するキーワードの頻度に基づきキーワードシードアフィニティスコアを生成することができる(ブロック615)。データ処理システムは、第1のキーワードカテゴリについて、第1のキーワードカテゴリ内の複数のキーワードの各々に対するキーワードシードアフィニティスコアに基づき第1のカテゴリシードアフィニティスコアを決定することができる(ブロック620)。データ処理システムは、第2のキーワードカテゴリについて、第2のキーワードカテゴリ内の複数のキーワードの各々に対するキーワードシードアフィニティスコアに基づき第2のカテゴリシードアフィニティスコアを決定することができる(ブロック625)。データ処理システムは、第1のカテゴリシードアフィニティスコアおよび第2のカテゴリシードアフィニティスコアの各々をアフィニティスコア閾値と比較することができる(ブロック630)。データ処理システムは、第1のカテゴリシードアフィニティスコアがアフィニティスコア閾値より大きく、第2のカテゴリシードアフィニティスコアがアフィニティスコア閾値より小さいと決定することができる(ブロック635)。データ処理システムは、表示用のコンテンツプロバイダコンピューティングデバイスに、複数のキーワードを伝送することができる(ブロック640)。第1のカテゴリシードアフィニティスコアがアフィニティスコア閾値より大きく、第2のカテゴリシードアフィニティスコアがアフィニティスコア閾値より小さいとの決定に応答して、第1のキーワードカテゴリは選択状態として示され、第2のキーワードカテゴリは非選択状態として示され得る。
さらに詳しく述べると、データ処理システムは、ドメインエンティティに対応するコンテンツプロバイダコンピューティングデバイスから、シードキーワードを受信して、シードキーワードに関連する追加のキーワードを生成することができる(ブロック605)。いくつかの実装形態において、データ処理システムは1つまたは複数のシードキーワードを受信して、1つまたは複数のシードキーワードに関連するか、または他の何らかの形で関連付けられている追加のキーワードを生成することができる。いくつかの実装形態において、1つまたは複数のシードキーワードは、シードフレーズに対応するものとしてよい。シードフレーズは、1つまたは複数のキーワードを含むものとしてよい。いくつかの実装形態において、シードキーワードは、追加のキーワードに対する要求の一部であってもよい。追加のキーワードに対する要求は、ドメインエンティティを明示するエンティティ識別子またはドメインエンティティに関連付けられている1つまたは複数のリソース識別子も含み得る。シードキーワードは、コンテンツプロバイダコンピューティングデバイス、コンテンツパブリッシャコンピューティングデバイス、またはクライアントデバイスから受信され得る。いくつかの実装形態において、シードキーワードは、コンテンツプロバイダコンピューティングデバイス、コンテンツパブリッシャコンピューティングデバイス、またはクライアントデバイスのうちのいずれか1つで実行されているコンテンツ選択および配信管理プラットフォームから受信され得る。いくつかの実装形態において、受信されたシードキーワードの送り元であるコンテンツプロバイダコンピューティングデバイス、コンテンツパブリッシャコンピューティングデバイス、またはクライアントデバイスは、ドメインエンティティに対応するか、関連付けられるか、または他の何らかの形で属すものとしてよい。シードキーワードをさらに処理する前に、データ処理システムは、辞書またはルックアップテーブルを使用してシードキーワードに対して標準形を生成するか、または決定することができる。辞書またはルックアップテーブルは、単語の各変形に対して標準形を明示するものとしてよい。標準形は、キーワードの標準化された語彙表象を表すものとしてよい。たとえば、受信されたシードキーワードが「mice」である場合、データ処理システムは、辞書を調べて「mouse」が「mice」に対する標準形であると明示することによってシードキーワードに対する標準形として「mouse」を生成することができる。
データ処理システムは、意味的関係グラフを使用して、第1のキーワードカテゴリおよび第2のキーワードカテゴリを含む複数のキーワードカテゴリを識別することができる(ブロック610)。複数のキーワードカテゴリの各々が複数のキーワードを含むことができる。複数のキーワードの各々は、意味的距離閾値より小さい、シードキーワードからの意味的距離を有することができる。意味的関係グラフは、シードキーワードに定量化可能に関連している追加のキーワードを発見するか、または他の何らかの形で見つけるためにトラバースされ得る。データ処理システムは、データベースから意味的関係グラフまたはデータ構造体(たとえば、配列、リンクリスト、グラフ、ツリー、ヒープなど)にアクセスすることができる。意味的関係グラフは、複数のキーワードまたはフレーズを含み得る。意味的関係グラフは、また、キーワードの各々の間の意味的距離または関連性尺度を明示するか、指定するか、または他の何らかの形で定義するものとしてよい。意味的関係グラフは、自然言語処理技術を使用し、複数のプリセットされたキーワードおよびキーワードの各々の間の事前定義済み意味的距離または関連性尺度を使用することで事前生成され得る。いくつかの実装形態において、複数のキーワードおよびキーワードの各々の間の意味的距離または関連性尺度は、自然言語処理技術を使用して動的に決定され得る。いくつかの実装形態において、複数のキーワードおよびキーワードの各々の間の意味的距離または関連性尺度は、自然言語処理技術を様々なソース(たとえば、情報リソース、スキャンして取り込んだ書籍など)から取り出されたキーワードのコーパスに適用することによって時々更新されるものとしてよい。
いくつかの実装形態において、意味的関係グラフは、複数のノードと複数のエッジとを含むことができる。複数のノードは、各々キーワードを表し得る。いくつかの実装形態において、複数のノードは、2つまたはそれ以上のキーワードを含むフレーズを表すものとしてよい。複数のエッジは、複数のノードのうちの2つのノードを接続またはリンクし得る。複数のエッジの各々は、意味的関係グラフ内の複数のノードのうちの2つのそれぞれのノードの2つのキーワードの間の意味的距離または関連性尺度を定義するかまたは明示するものとしてよい。複数のエッジの各々は、また、意味的関係グラフ内の複数のノードのうちの2つのそれぞれのノードが意味的に一致しているか、または意味的に衝突しているかを定義または明示するものとしてよい。意味的関係グラフは、他にもあるがとりわけ、配列、リンクリスト、ツリー、またはヒープなどの、データ構造体を使用して実装され得る。
意味的関係グラフを使用することで、データ処理システムは、シードキーワードに対応するノードを識別するか、または探索することができる。シードキーワードに対応するノードは、シードノードまたは初期ノードと称されるものとしてよい。いくつかの実装形態において、データ処理システムは、意味的関係グラフをトラバースしてシードノードを識別することができる。いくつかの実装形態において、データ処理システムは、意味的関係グラフ内のシードノードを見つけるためにルックアップテーブルまたは辞書上で検索することができる。ルックアップテーブルおよび辞書の各々は、キーワード、または意味的関係グラフのノードにインデックスを付けるか、または参照するために使用されるデータ構造体であってよい。いくつかの実装形態において、ルックアップテーブルおよび辞書の各々に対する1つまたは複数のデータ構造体は、意味的関係グラフとは別のものであってもよい。
意味的関係グラフ上のシードキーワードに対応するシードノードから、データ処理システムは、それぞれエッジを介してシードノードに隣接するか、または接続されているノードのセットを識別することができる。いくつかの実装形態において、データ処理システムは、隣接ノードがシードノードと意味的に一致しているか、または意味的に衝突しているかを決定することができる。シードキーワードと意味的に一致しているキーワードを有する隣接するか、または接続されているノードの各々について、データ処理システムは、シードノードからのそれぞれのエッジの意味的距離を識別することができる。データ処理システムは、意味的距離を第1の意味的距離閾値と比較することができる。いくつかの実装形態において、第1の意味的距離閾値は、事前定義され得る。いくつかの実装形態において、データ処理システムは、各隣接するキーワードとシードキーワードとの間の意味的距離に基づき第1の意味的距離閾値を計算するものとしてよい。たとえば、データ処理システムは、トラバース中に見つかったシードキーワードに隣接する特定のパーセンテージ(たとえば、50〜70%)のキーワードを除去するように第1の意味的距離閾値を設定し得る。シードノードと隣接ノードとの間のそれぞれのエッジの意味的距離が、第1の意味的距離閾値より小さい場合、データ処理システムは、そのノードを候補ノードとして識別することができ、対応するキーワードを候補キーワードとして識別することができる。データ処理システムは、そのノードを候補ノードのセットに含めることができる。候補ノードのセット内のノードの各々は、シードノードからの第1の意味的距離閾値より小さい意味的距離を有することができる。
候補ノードの各々について、データ処理システムは、もしあればそれぞれのエッジを介してそれぞれの候補に隣接するか、または接続されているノードのセットを識別することができる。データ処理システムは、それぞれの候補ノードに隣接するか、または接続されている1つまたは複数のノードがあるかどうかを決定することができる。それぞれの候補ノードに隣接するか、または接続されている1つまたは複数のノードがある場合、データ処理システムは、ここでもまた、各候補ノードに対するそれぞれのエッジの意味的距離を識別することができる。各隣接ノードについて、データ処理システムは、隣接ノードと候補ノードとの間の意味的距離を識別することができる。データ処理システムは、候補ノードを介して隣接ノードとシードノードとの間の合計意味的距離を決定するか、または計算することができる。たとえば、データ処理システムは、シードノードと候補ノードとの間の意味的距離と、候補ノードに隣接するノードと候補ノードそれ自体との間の意味的距離とを足し合わせることができる。
データ処理システムは、隣接ノードとシードノードとの間の合計意味的距離を意味的距離閾値と比較することができる。シードノードと候補ノードに隣接するノードとの間のそれぞれのエッジの意味的距離合計が、意味的距離閾値より小さい場合、データ処理システムは、その隣接ノードを候補ノードとして識別することができ、対応するキーワードを候補キーワードとして識別することができる。いくつかの実装形態において、データ処理システムは、候補ノードと隣接ノードとの間の意味的距離を第2の意味的距離閾値と比較することができる。第2の意味的距離閾値は、シードと元の候補ノードとの間の距離に対する第1の意味的距離閾値以下であるものとしてよい。いくつかの実装形態において、第2の意味的距離閾値は、事前定義され得る。いくつかの実装形態において、データ処理システムは、各隣接キーワードと候補キーワードとの間、またはキーワードに隣接する各キーワードとシードキーワードとの間の意味的距離に基づき第2の意味的距離閾値を計算することができる。たとえば、データ処理システムは、トラバース中に見つかった候補キーワードに隣接する特定のパーセンテージ(たとえば、50〜70%)のキーワードを除去するように第2の意味的距離閾値を設定し得る。候補ノードと候補ノードに隣接するノードとの間のそれぞれのエッジの意味的距離が、他の意味的距離閾値より小さい場合、データ処理システムは、その隣接ノードを候補ノードとして識別することができ、対応するキーワードを候補キーワードとして識別することができる。データ処理システムは、意味的関係グラフ内の各ノードについてこのプロセスを繰り返すことができ、シードノードの意味的距離閾値の範囲内のすべてのノードを訪れるまで、意味的関係グラフをトラバースしてさらにノードまたはキーワードを候補キーワードのセットに追加し続けることができる。
候補ノードおよびキーワードのセットから、データ処理システムは、1つまたは複数のキーワードカテゴリを識別することができる。各キーワードカテゴリは、シードキーワードまたは別の候補キーワードからの意味的距離が意味的距離閾値より小さいとして識別された1つまたは複数のキーワードを含み得る。いくつかの実装形態において、データ処理システムは、クラスタリングアルゴリズムを候補ノードのセットに、それぞれの意味的距離を候補ノードに次々に、適用して1つまたは複数のキーワードカテゴリを識別することができる。クラスタリングアルゴリズムは、たとえば、他にもあるがとりわけ、k近傍(k-NN)アルゴリズム、主成分分析(PCA)、期待値最大化(EM)、および階層的クラスタ分析(HCA)であってよい。いくつかの実装形態において、データ処理システムは、意味的関係グラフ内の各候補ノードの間の意味的距離を識別することができる。いくつかの実装形態において、データ処理システムは、クラスタリングアルゴリズムを使用して、識別された意味的距離に基づき候補ノードのクラスタを識別することができる。たとえば、k-NNアルゴリズムを使用することで、データ処理システムは、k個のノードの初期セットをランダムにk個のクラスタに対する平均として指定し、最近ノードをクラスタに割り当てることができる。次いで、データ処理システムは、各クラスタに対する識別された意味的距離を使用して重心を計算し、平均を調整することができる。この例では、データ処理システムは、各クラスタに対する平均の変化が所定のマージン未満であるときに、収束するまでこれらのステップを繰り返すものとしてよい。いくつかの実装形態において、データ処理システムは、各クラスタ内のノードのキーワードをキーワードカテゴリに設定するか、または割り当てることができる。
いくつかの実装形態において、データ処理システムは、シードノードからの候補ノードのレベルまたは深さに基づき1つまたは複数のキーワードカテゴリを識別することができる。いくつかの実装形態において、データ処理システムは、意味的関係グラフ上のそれぞれのエッジを介してシードノードから候補ノードの深さを識別することができる。いくつかの実装形態において、データ処理システムは、シードノードから1の深さを有する候補ノードのサブセットを識別することができる。データ処理システムは、候補ノードの識別されたサブセットの各ノードをそれぞれのキーワードカテゴリに設定するか、または割り当てることができる。候補ノードの識別されたサブセットの各ノードについて、データ処理システムは、それぞれの候補ノードに隣接するか、または接続されているか、または最も近いノードを識別することができる。データ処理システムは、それぞれの候補に隣接するか、または接続されているか、または最も近い識別されたノードのキーワードを設定するかまたは割り当てて、候補ノードに対応するそれぞれのキーワードカテゴリをノード化することができる。
いくつかの実装形態において、データ処理システムは、それぞれのキーワードカテゴリを表す各キーワードカテゴリに対する話題キーワードを識別することができる。いくつかの実装形態において、各キーワードカテゴリについて、データ処理システムは、キーワードカテゴリの1つまたは複数のキーワードから話題キーワードを選択することができる。いくつかの実装形態において、各キーワードカテゴリ内で、データ処理システムは、意味的関係グラフを使用してキーワードの各々の間の意味的距離を決定するかまたは計算することができる。いくつかの実装形態において、各キーワードカテゴリについて、データ処理システムは、それぞれのキーワードカテゴリの他のすべてのキーワードからの意味的距離が最小であるキーワードを識別することができる。いくつかの実装形態において、データ処理システムは、キーワードカテゴリ内のすべてのキーワードからの意味的距離が最小である識別されたキーワードをそれぞれのキーワードカテゴリを表す話題キーワードとして設定することができる。
データ処理システムは、第1のキーワードカテゴリおよび第2のキーワードカテゴリの各キーワードについて、ドメインエンティティの情報リソース上のシードキーワードとともに出現するキーワードの頻度に基づきキーワードシードアフィニティスコアを生成することができる(ブロック615)。キーワードシードアフィニティスコアは、キーワードの、シードキーワードとの関連性だけでなく、ドメインエンティティに関連付けられている情報リソースのキーワードとの関連性をも示すことができる。キーワードシードアフィニティスコアを使用することで、データ処理システムは、ドメインエンティティに対してより関連性の高いキーワードを発見するか、または見つける精度を改善することができる。キーワードの意味的関連性が測定される情報リソースを取り出すために、データ処理システムは、ドメインエンティティの1つまたは複数の情報リソースを識別することができる。ドメインエンティティは、コンテンツプロバイダコンピューティングデバイス、コンテンツパブリッシャコンピューティングデバイス、またはクライアントデバイスのうちの少なくとも1つに対応するか、または関連付けられるものとしてよい。ドメインエンティティは、情報リソースに関連付けられているアカウントまたは他の何らかのパーティであってよい。ドメインエンティティは、エンティティ識別子またはリソース識別子によって識別されるか、または関連付けられ得る。いくつかの実装形態において、エンティティ識別子またはリソース識別子は、シードキーワードとともに受信され得る。リソース構文解析器モジュール135は、ドメインエンティティに関連付けられている複数のリソース識別子を探索するか、または識別することができる。複数のリソース識別子(たとえば、ユニバーサルリソースロケータ(URL))の各々は、ホスト名およびパス名(たとえば、「www.example.com/level1/level2/page.html」)を含むことができる。たとえば、リソース構文解析器モジュール135は、ネットワークエンティティインデックス生成器(たとえば、ウェブクローラー)を使用して、ネットワーク105を介して利用可能な多数の情報リソース(たとえば、ウェブページ)を識別し、リソース識別子のホスト名に基づき、識別された情報リソースのサブセットをドメインエンティティに属すものとして見つけることができる。いくつかの実装形態において、データ処理システムは、コンテンツプロバイダコンピューティングデバイス、コンテンツパブリッシャコンピューティングデバイス、またはクライアントデバイスから複数の情報リソースに対するリソース識別子を受信することができる。
データ処理システムは、ドメインエンティティの1つまたは複数の情報リソースを取り出すか、取得するか、または他の何らかの形でアクセスすることができる。データ処理システムは、ドメインエンティティの1つまたは複数のアクセスされた情報リソースを構文解析して、1つまたは複数のアクセスされた情報リソース上の1つまたは複数のキーワードを取得するか、取り出すか、または他の何らかの形で識別することができる。各識別されたキーワードについて、データ処理システムは、関連付けられているリソース識別子、関連付けられている情報リソース、および情報リソースからのキーワードの1つまたは複数の特性を識別することができる。たとえば、キーワードの1つまたは複数の特性は、他にもあるがとりわけ、情報リソース上の位置、フォントタイプ、フォントサイズ、および色を含み得る。データ処理システムは、1つまたは複数の情報リソースのキーワード、キーワードに関連付けられているリソース識別子、およびデータベース上のキーワードの1つまたは複数の特性を記憶することができる。
データ処理システムによって識別された1つまたは複数の情報リソースのキーワードを使用することで、データ処理システムは、候補キーワードまたはキーワードカテゴリのセットの各キーワードに対するキーワードシードアフィニティスコアを生成することができる。キーワードシードアフィニティスコアは、シードキーワードおよび候補キーワードがドメインエンティティの1つまたは複数の情報リソース上で一緒に出現する頻度を表すか、または示し得る。データ処理システムは、シードキーワードおよび各候補キーワードが1つまたは複数の情報リソース内に出現する頻度カウントを決定するか、または他の何らかの形で計算することができる。データ処理システムは、シードキーワードおよび各候補キーワードが1つまたは複数の情報リソース内に出現するかどうかを決定するために探索アルゴリズムを実行することができる。探索アルゴリズムは、たとえば、他にもあるがとりわけ、線形探索、ハッシング、または二分探索アルゴリズムであってよい。シードキーワードおよび候補キーワードがどれかの情報リソース上に一緒に出現する毎に、データ処理システムは、頻度カウントをインクリメントすることができる。各候補キーワードについて、データ処理システムは、キーワードシードアフィニティスコアを頻度カウントに設定することができる。
データ処理システムは、1つまたは複数の情報リソースのキーワードを標準形に変更または修正することができる。いくつかの実装形態において、データ処理システムは、候補キーワードと1つまたは複数の情報リソース上のキーワードのうちのどれか1つとの間の語彙マッチを識別することができる。たとえば、語彙マッチは、候補キーワードと1つまたは複数の情報リソースのキーワードのうちのどれかとの間の文字毎の完全一致または類似一致であってよい。いくつかの実装形態において、データ処理システムは、1つまたは複数の情報リソースからキーワードを識別することができる。いくつかの実装形態において、データ処理システムは、1つまたは複数の情報リソースからのキーワードの文字を候補キーワードの文字と比較して一対一文字マッチを決定することができる。1つまたは複数の情報のキーワードの文字が候補キーワードの文字への一対一マッチである場合、データ処理システムは、候補キーワードと1つまたは複数の情報リソースのキーワードとの間に語彙マッチがあると決定することができる。
いくつかの実装形態において、データ処理システムは、意味的関係グラフを使用して、候補キーワードと1つまたは複数の情報リソース上のキーワードのうちのどれか1つとの間の意味的一致を決定することができる。データ処理システムは、候補キーワードに対応する意味的関係グラフのノードを識別することができる。データ処理システムは、情報リソースのキーワードのうちのどれか1つに対応するノードと候補キーワードに対応する識別されたノードとの間の意味的距離が第3の意味閾値より小さいかどうかを決定することができる。いくつかの実装形態において、第3の意味的距離閾値は、事前定義され得る。いくつかの実装形態において、データ処理システムは、各候補キーワードと1つまたは複数の情報リソースのキーワードとの間の意味的距離に基づき第3の意味的距離閾値を計算することができる。たとえば、第3の意味的距離閾値は、候補キーワードに関係する特定のパーセンテージ(たとえば、80〜95%)のキーワードを除去するように設定され得る。データ処理システムが、第3の意味的距離が意味閾値より小さいと決定した場合、データ処理システムは、候補キーワードと情報リソースのキーワードとの間に意味的一致が存在すると決定することができる。
データ処理システムが候補キーワードと1つまたは複数の情報リソース上のキーワードのうちのどれか1つとの間に語彙マッチまたは意味的一致があると決定したことに基づき、データ処理システムは、候補キーワードに対する頻度カウントを計算するか、インクリメントするか、または他の何らかの形で更新することができる。頻度カウントは、候補キーワード(語彙マッチまたは意味的一致を有する)が1つまたは複数の情報リソース上のシードキーワードと一緒に出現する回数の尺度であり得る。いくつかの実装形態において、データ処理システムは、候補キーワードに対する頻度カウントをインクリメントするようにカウンタを維持することができる。
データ処理システムは、頻度カウントからキーワードシードアフィニティスコアを生成するか、または決定することができる。キーワードシードアフィニティスコアは、候補キーワード(語彙マッチまたは意味的一致を有する)が1つまたは複数の情報リソース上のシードキーワードと一緒に出現する回数の加重尺度であり得る。いくつかの実装形態において、データ処理システムは、候補キーワードと情報リソースのキーワードとの間の意味的距離に基づき候補キーワードに対するキーワードシードアフィニティスコアを調整することができる。データ処理システムは、それぞれのキーワードの1つまたは複数の特性に基づき候補キーワードに対するキーワードシードアフィニティスコアを調整することができる。いくつかの実装形態において、データ処理システムは、候補キーワードに対するキーワードシードアフィニティスコアを調整するように加重係数を決定するか、または計算することができる。加重係数は、情報リソース上のキーワードの位置に基づくものとしてよい。たとえば、データ処理システムは、対応する候補キーワードが関連付けられている情報リソースの相対的に上の方へ現れる場合にキーワードシードアフィニティスコアを増加させることができる。その一方で、データ処理システムは、対応する候補キーワードが関連付けられている情報リソースの相対的に下の方へ現れる場合にキーワードシードアフィニティスコアを減少させることができる。
いくつかの実装形態において、データ処理システムは、ドメインエンティティの1つまたは複数の情報リソース上の候補キーワードのフォントサイズに基づき候補キーワードに対するキーワードシードアフィニティスコアを調整するように加重係数を決定するか、または計算することができる。たとえば、データ処理システムは、対応する候補キーワードが情報リソース上の他のキーワードよりも相対的に大きい場合にキーワードシードアフィニティスコアを増加させることができる。対照的に、データ処理システムは、対応する候補キーワードが情報リソース上の他のキーワードよりも相対的に小さい場合にキーワードシードアフィニティスコアを減少させることができる。
いくつかの実装形態において、データ処理システムは、情報リソースの階層の深さまたはレベルに基づき候補キーワードに対するキーワードシードアフィニティスコアを調整することができる。データ処理システムは、候補キーワードとドメインエンティティの1つまたは複数の情報リソースのキーワードのうちのどれかとの間の語彙マッチまたは意味的一致が存在する情報リソースに対するリソース識別子を識別することができる。データ処理システムは、リソース識別子を構文解析して、リソース識別子のパス名から情報リソースの階層の深さまたはレベルを識別することができる。たとえば、語彙マッチが生じた情報リソースに対するリソース識別子が「www.example.com/index/sub1/」である場合、データ処理システムは、スラッシュに基づくパス名「/index/sub1/」から階層の深さが2であることを識別することができる。
データ処理システムは、候補キーワードに対する正規化係数によりキーワードシードアフィニティスコアまたは頻度スコアを調整することができる。いくつかの実装形態において、データ処理システムは一般コーパスを識別することができる。一般コーパスは、キーワードが出現する公称または平均頻度を明示することができる。一般コーパスは、データベースから、またはドメインエンティティに属しているもの以外の複数の情報リソースにまたがって取り出され得る。公称頻度は、たとえば、語頻度-文書頻度逆数(td-idf)尺度であってよい。いくつかの実装形態において、データ処理システムは、一般コーパスからの候補キーワードの公称頻度を識別することができる。いくつかの実装形態において、データ処理システムは、一般コーパスから識別された候補キーワードの公称頻度に基づき正規化を計算するか、または決定することができる。たとえば、データ処理システムは、ドメインエンティティの多数の情報リソースを識別し、情報リソースの数と一般コーパスからの公称頻度との商を正規化係数として計算することができる。
データ処理システムは、第1のキーワードカテゴリについて、第1のキーワードカテゴリ内の複数のキーワードの各々に対するキーワードシードアフィニティスコアに基づき第1のカテゴリシードアフィニティスコアを決定することができる(ブロック620)。データ処理システムは、第2のキーワードカテゴリについて、第2のキーワードカテゴリ内の複数のキーワードの各々に対するキーワードシードアフィニティスコアに基づき第2のカテゴリシードアフィニティスコアを決定することができる(ブロック625)。カテゴリシードアフィニティスコアは、キーワードおよびそれぞれのキーワードカテゴリの、シードキーワードとの関連性だけでなく、ドメインエンティティに関連付けられている情報リソースのキーワードとの関連性をも示すことができる。カテゴリシードアフィニティスコアを使用することで、データ処理システムは、ドメインエンティティに対してより関連性の高いキーワードを発見するか、または見つける精度を改善することができる。データ処理システムは、各キーワードカテゴリに対するカテゴリシードアフィニティスコアを生成するか、または計算することができる。いくつかの実装形態において、データ処理システムは、キーワードカテゴリ内のキーワードの各々のキーワードシードアフィニティスコアに基づきそれぞれのキーワードカテゴリに対する組合せスコアを計算することができる。組合せスコアは、キーワードカテゴリ内のキーワードに対するキーワードシードアフィニティスコアの平均値であってよい。いくつかの実装形態において、平均値は、キーワードカテゴリのキーワードに対するキーワードシードアフィニティスコアの調整を考慮するように加重平均値であってよい。たとえば、キーワードシードアフィニティスコアの平均値を計算している間に、データ処理システムは、他にもあるがとりわけキーワードの1つまたは複数の特性、キーワードの配置に基づき平均値を調整することができる。いくつかの実装形態において、データ処理システムは、キーワードカテゴリ内のキーワードに対する頻度カウントに基づきそれぞれのキーワードカテゴリに対する組合せスコアを計算することができる。組合せスコアは、それぞれのキーワードカテゴリ内のキーワードに対する頻度カウントの平均値であってよい。
データ処理システムは、第1のカテゴリシードアフィニティスコアおよび第2のカテゴリシードアフィニティスコアの各々をアフィニティスコア閾値と比較することができる(ブロック630)。データ処理システムは、第1のカテゴリシードアフィニティスコアがアフィニティスコア閾値より大きく、第2のカテゴリシードアフィニティスコアがアフィニティスコア閾値より小さいと決定することができる(ブロック635)。アフィニティスコアと閾値とを比較することで、データ処理システムは、コンテンツアイテムを選択する際に処理されるキーワードを除去するか、絞り込むか、またはその数を他の何らかの形で減らし、それによって、データ処理システムにおける処理電力消費を低減することができる。データ処理システムは、キーワードカテゴリ内の1つもしくは複数のキーワードまたは個別の候補キーワードをシードキーワードおよびドメインエンティティに関連しているかまたは関連していないものとして決定するか、または識別するか、または選択することができる。キーワードカテゴリ内の個別のキーワードを関連しているものとして選択するために、データ処理システムは、キーワードシードアフィニティスコアを候補キーワードのセットまたはキーワードカテゴリの各々の各候補キーワードに対するキーワードシードアフィニティスコア閾値と比較することができる。データ処理システムは、それぞれのキーワードアフィニティスコアがキーワードシードアフィニティスコア閾値より大きいか、または小さいか、または等しい各キーワードカテゴリ内のキーワードのサブセットを識別することができる。キーワードシードアフィニティスコアがキーワードシードアフィニティスコア閾値より小さい場合、データ処理システムは、それぞれのキーワードをシードキーワードおよびドメインエンティティに関連するものとして決定するか、識別するか、または選択することができる。キーワードシードアフィニティがキーワードシードアフィニティスコア閾値以上である場合、データ処理システムは、それぞれのキーワードをシードキーワードおよびドメインエンティティに関連しないものとして決定するか、識別するか、または非選択状態とすることができる。
いくつかの実装形態において、候補キーワードのセットの各候補キーワードについて、データ処理システムは、頻度カウントを閾値頻度カウントと比較する。いくつかの実装形態において、データ処理システムは、それぞれの頻度カウントが閾値頻度カウントより大きいか、または等しいか、または小さい候補キーワードのサブセットを識別することができる。いくつかの実装形態において、閾値頻度カウントは、事前定義され得る。いくつかの実装形態において、データ処理システムは、キーワードのサブセット内の候補キーワードの数に基づき閾値頻度カウントを動的に設定するか、または決定することができる。たとえば、データ処理システムは、そのサブセットから候補キーワードのうちの特定のパーセンテージ(たとえば、40〜60%)のキーワードを除去するように閾値頻度カウントを設定することができる。頻度カウントが閾値頻度カウント以上である場合、データ処理システムは、それぞれのキーワードをシードキーワードおよびドメインエンティティに関連するものとして決定するか、識別するか、または選択することができる。キーワードシードアフィニティがキーワードシードアフィニティスコア閾値より小さい場合、データ処理システムは、それぞれのキーワードをシードキーワードおよびドメインエンティティに関連しないものとして決定するか、識別するか、または非選択状態とすることができる。
いくつかの実装形態において、候補キーワードのセットの各候補キーワードについて、データ処理システムは、キーワードシードアフィニティスコアをキーワードシードアフィニティスコア閾値と比較する。いくつかの実装形態において、データ処理システムは、それぞれのキーワードシードアフィニティスコアがキーワードシードアフィニティスコア閾値より大きいか、または等しいか、または小さい各キーワードカテゴリ内のキーワードのサブセットを識別することができる。いくつかの実装形態において、キーワードシードアフィニティスコア閾値は、事前定義され得る。いくつかの実装形態において、データ処理システムは、それぞれのカテゴリ内のキーワードの数に基づきキーワードシードアフィニティスコア閾値を動的に設定するか、または決定することができる。たとえば、データ処理システムは、キーワードカテゴリから候補キーワードのうちの特定のパーセンテージ(たとえば、40〜60%)のキーワードを除去するようにキーワードシードアフィニティスコア閾値を設定することができる。キーワードシードアフィニティスコアがキーワードシードアフィニティスコア閾値以上である場合、データ処理システムは、それぞれのキーワードをシードキーワードおよびドメインエンティティに関連するものとして決定するか、識別するか、または選択することができる。キーワードシードアフィニティがキーワードシードアフィニティスコア閾値より小さい場合、データ処理システムは、それぞれのキーワードをシードキーワードおよびドメインエンティティに関連しないものとして決定するか、識別するか、または非選択状態とすることができる。
データ処理システムは、1つもしくは複数のキーワードカテゴリまたは候補キーワードのサブセットをシードキーワードおよびドメインエンティティに関連しているかまたは関連していないものとして決定するか、または識別するか、または選択することができる。1つまたは複数のキーワードカテゴリをシードキーワードおよびドメインエンティティに関連するものとして選択するために、データ処理システムは、各キーワードカテゴリのカテゴリシードアフィニティスコアをカテゴリシードアフィニティスコアと比較することができる。データ処理システムは、各キーワードカテゴリのカテゴリシードアフィニティスコアをカテゴリシードアフィニティスコア閾値より大きいか、または小さいか、または等しいものとして識別することができる。カテゴリシードアフィニティスコアがカテゴリシードアフィニティスコア閾値以上である場合、データ処理システムは、それぞれのキーワードカテゴリをシードキーワードおよびドメインエンティティに関連するものとして決定するか、識別するか、または選択することができる。いくつかの実装形態において、データ処理システムは、キーワードカテゴリ内のキーワードのサブセットを関連しないものとして決定するか、または識別するか、または選択しながら、それぞれのキーワードカテゴリを決定するか、または識別するか、または選択することができる。カテゴリシードアフィニティスコアがカテゴリシードアフィニティスコア閾値より小さい場合、データ処理システムは、それぞれのキーワードカテゴリをシードキーワードおよびドメインエンティティに関連しないものとして決定するか、識別するか、または非選択状態とすることができる。
意味的関係グラフを使用することで、データ処理システムは、2つまたはそれ以上のキーワードカテゴリの間の意味的不一致を識別するか、または決定することができる。いくつかのキーワードカテゴリは、コンテンツアイテムを選択する際に他のキーワードカテゴリと併せて使用するのに適さない場合がある。たとえば、キーワードカテゴリは、互いに無関係であり得る(たとえば、「squash」(ラケット)対「squash」(野菜))。いくつかの実装形態において、データ処理システムは、意味的関係グラフのエッジに基づき意味的不一致を識別するか、または決定することができる。いくつかの実装形態において、データ処理システムは、キーワードカテゴリ内の各キーワードについて1つまたは複数のノードを識別するか、または決定することができる。いくつかの実装形態において、意味的関係グラフをトラバースすることによって、データ処理システムは、キーワードを表す各ノードを接続する1つまたは複数のノードを識別することができる。いくつかの実装形態において、データ処理システムは、それぞれの2つのノードを接続する各識別されたエッジが2つのノードによって表される各キーワードが意味的に衝突していることを明示するかどうかを決定することができる。いくつかの実装形態において、エッジが2つの異なるキーワードカテゴリにまたがるキーワードを表す2つのノードが意味的に衝突していると明示している場合、データ処理システムは、それぞれのキーワードカテゴリの間の意味的不一致を決定するか、または識別することができる。いくつかの実装形態において、エッジが2つの異なるキーワードカテゴリにまたがるキーワードを表す2つのノードが意味的に衝突していないと明示している場合、データ処理システムは、それぞれのキーワードカテゴリの間の意味的不一致の欠如を識別することができる。
いくつかの実装形態において、データ処理システムは、それぞれのキーワードを表す接続されているノードが意味的に衝突していることを明示するエッジの数を決定するか、計算するか、またはカウントすることができる。いくつかの実装形態において、データ処理システムは、それぞれのキーワードを表す接続されているノードが意味的に衝突していることを明示するエッジの数を閾値数と比較することができる。エッジの数が閾値数以上である場合、データ処理システムは、2つのそれぞれのキーワードカテゴリの間の意味的不一致を識別することができる。エッジの数が閾値数未満である場合、データ処理システムは、2つのそれぞれのキーワードカテゴリの間の意味的不一致の欠如を識別することができる。
いくつかの実装形態において、データ処理システムは、2つまたはそれ以上のキーワードカテゴリにまたがるキーワードの間の意味的距離に基づき2つまたはそれ以上のキーワードカテゴリが意味的に衝突していると決定することができる。いくつかの実装形態において、データ処理システムは、2つまたはそれ以上のキーワードカテゴリにまたがるキーワードの各々の間の意味的距離を識別するために意味的関係グラフをトラバースすることができる。いくつかの実装形態において、データ処理システムは、一方のキーワードカテゴリ内のキーワードから他方のキーワードカテゴリ内の他方のキーワードまでの意味的距離を意味的距離閾値と比較することができる。意味的距離閾値は、シードキーワードからキーワードカテゴリ内のキーワードを識別するために使用される閾値と異なっていてもよい。意味的距離が意味的距離閾値より大きい場合、データ処理システムは、2つのそれぞれのキーワードカテゴリの間の意味的不一致を識別するか、または決定することができる。
2つまたはそれ以上のキーワードカテゴリの間の意味的不一致が識別されるか、または決定された場合、データ処理システムは、それぞれのカテゴリシードアフィニティスコア同士を比較することができる。カテゴリシードアフィニティスコアを比較したことから、データ処理システムは、より高いまたは最も高いカテゴリシードアフィニティスコアに対応するキーワードカテゴリを選択することができる。いくつかの実装形態において、データ処理システムは、より高いかまたは最も高いカテゴリシードアフィニティスコアに対応するキーワードカテゴリをシードキーワードおよびドメインエンティティに関連するものとして決定するか、識別するか、または選択することができる。いくつかの実装形態において、データ処理システムは、より低いかまたは最も低いカテゴリシードアフィニティスコアに対応するキーワードカテゴリをシードキーワードおよびドメインエンティティに関連しないものとして決定するか、識別するか、または選択することができる。
いくつかの実装形態において、データ処理システムは、意味的不一致を有するものとして識別されているキーワードカテゴリに基づきキーワードカテゴリのグループ間の意味的不一致を決定するか、または識別することができる。いくつかの実装形態において、データ処理システムは、それぞれのキーワードカテゴリの間の意味的不一致の欠如の識別に基づきキーワードカテゴリのグループを識別することができる。たとえば、4つのキーワードカテゴリ「A」、「B」、「C」、および「D」があり得る。ノードの間の意味的不一致を明示するエッジまたは意味的距離のいずれかに基づき、データ処理システムは、キーワードカテゴリ「A」と「B」、「A」と「C」、および「B」と「D」の間の意味的不一致を識別することができる。識別された意味的不一致から、データ処理システムは、キーワードカテゴリ「A」および「D」を一方のグループとして、「B」および「C」を他方のグループとして識別することができる。
いくつかの実装形態において、データ処理システムは、互いに意味的不一致を有するものとして識別されているキーワードカテゴリのグループの各々についてグループシードアフィニティスコアを決定するか、または計算することができる。いくつかの実装形態において、データ処理システムは、キーワードカテゴリのグループの各々に対するグループシードアフィニティスコアを互いに比較することができる。いくつかの実装形態において、データ処理システムは、より高いかまたは最も高いグループシードアフィニティスコアに対応するキーワードカテゴリのグループをシードキーワードおよびドメインエンティティに関連するものとして決定するか、識別するか、または選択することができる。いくつかの実装形態において、データ処理システムは、より低いかまたは最も低いカテゴリシードアフィニティスコアに対応するキーワードカテゴリのグループをシードキーワードおよびドメインエンティティに関連しないものとして決定するか、識別するか、または選択することができる。
データ処理システムは、表示用のコンテンツプロバイダコンピューティングデバイスに、複数のキーワードを伝送することができる(ブロック640)。第1のカテゴリシードアフィニティスコアがアフィニティスコア閾値より大きく、第2のカテゴリシードアフィニティスコアがアフィニティスコア閾値より小さいとの決定に応答して、第1のキーワードカテゴリは選択状態として示され、第2のキーワードカテゴリは非選択状態として示され得る。複数のキーワードに、関連しているか、または関連していないと示されているサブセットを付けることで、コンテンツ選択キャンペーンで使用するより関連性の高いキーワードを選択する際にコンテンツプロバイダにより適切な情報を提供し得る。その結果、表示するため選択されクライアントデバイスに提供されるコンテンツアイテムは、各エンドユーザに対してより関連性の高いものとなり得、それによりインタラクション率が高められ、それによってコンテンツアイテムが表示される情報リソースとのヒューマンコンピュータインタラクション(HCI)およびユーザエクスペリエンスを改善し得る。データ処理システムは、対応する頻度カウント、キーワードシードアフィニティスコア、カテゴリシードアフィニティスコア、またはグループシードアフィニティスコアに基づきキーワードカテゴリおよびキーワードカテゴリのキーワードを選択状態または非選択状態として示すインターフェースを生成することができる。いくつかの実装形態において、インターフェースは、他にもあるがとりわけ、情報リソースまたは別個のアプリケーションの一部であってよい。インターフェースは、キーワードカテゴリおよびキーワードの1つまたは複数のリストを選択状態または非選択状態として含み得る。いくつかの実装形態において、選択状態としてのキーワードカテゴリのリストは、非選択状態としてのキーワードカテゴリのリストと異なるか、または別のものであってよい。データ処理システムは、インターフェースを、シードキーワードを送信したコンテンツプロバイダコンピューティングデバイス、コンテンツパブリッシャコンピューティングデバイス、またはクライアントデバイスに伝送することができる。いくつかの実装形態において、データ処理システムは、キーワードまたはキーワードカテゴリをシードキーワードおよびドメインエンティティに関連しているまたは関連していないものとして識別するか、または決定したことに応答して、インターフェースを生成するか、または伝送することができる。
図7A〜図7Dを参照すると、図7A〜図7Dは、キーワードの意味的関連性を測定する方法700を示す流れ図である。方法700に関して本明細書において説明されている機能は、データ処理システム110、コンテンツプロバイダデバイス115、またはこれらの任意の組合せによって実行されるか、または他の何らかの形で実行され得る。さらに詳しく述べると、データ処理システムは、シードキーワードを受信することができる(ブロック702)。シードキーワードは、コンピューティングデバイスから受信され、シードキーワードに関連する追加のキーワードを生成するために使用され得る。データ処理システムは、意味的関係グラフにアクセスすることができる(ブロック704)。意味的関係グラフは、複数のキーワードまたはフレーズを含み得る。意味的関係グラフは、キーワードまたはフレーズの各々の間の意味的距離または関連性尺度を明示するか、指定するか、または他の何らかの形で定義するものとしてよい。データ処理システムは、意味グラフからのシードキーワードに対応するシードノードを識別することができる(ブロック706)。ブロック708から722において、データ処理システムは、意味的関係グラフをトラバースしてシードキーワードに関連するキーワードを識別することができる。意味的関係グラフをトラバースするために、他の機能またはアルゴリズムも使用されてよい。データ処理システムは、シードノードまたは現在のノードに隣接するまだトラバースされていないノードを識別することができる(ブロック708)。データ処理システムは、シードノードからの現在のノードの意味的距離が閾値以下であるかどうかを決定することができる(ブロック710)。意味的距離が閾値以下である場合、データ処理システムは、隣接ノードを候補ノードのセット内に含めることができる(ブロック712)。データ処理システムは、候補ノードに隣接するノードの数が1以上であるかどうかを決定することができる(ブロック714)。候補ノードに隣接するノードの数が1以上である場合、データ処理システムは、候補ノードを現在のノードとして設定することができる(ブロック716)。いずれかの場合において、データ処理システムは、ブロック708の機能に戻ることができる。意味的距離が閾値より大きい場合、データ処理システムは、トラバースされたノードの数が現在のノードに隣接するノードの数以上であるかどうかを決定することができる(ブロック718)。そうでない場合、データ処理システムは、ブロック708の機能に戻ることができる。そうである場合、データ処理システムは、現在のノードがシードノードであるかどうかを決定することができる(ブロック720)。現在のノードがシードノードでない場合、データ処理システムは、すでに参照されているノードを現在のノードとして設定し(ブロック722)、ブロック708の機能に戻ることができる。現在のノードがシードノードである場合、データ処理システムは、ブロック724上へ継続することができる。
データ処理システムは、ブロック726から732において識別されたキーワードをキーワードカテゴリにクラスタ化することができる。キーワードカテゴリを識別するために、他の機能およびアルゴリズムも使用されてよい。ブロック724から、データ処理システムは、互いからの意味的距離に基づき初期ノードクラスタを識別することができる(ブロック726)。データ処理システムは、意味的距離に基づきノードクラスタメトリック(たとえば、重心、平均、平均値など)を計算することができる(ブロック728)。データ処理システムは、クラスタメトリックが収束閾値以下であるかどうかを決定することができる(ブロック730)。そうでない場合、データ処理システムは、意味的距離およびクラスタメトリックに基づきノードクラスタを調整し(ブロック732)、ブロック728の機能を繰り返すことができる。そうである場合、データ処理システムは、各ノードクラスタをキーワードカテゴリとして設定し(ブロック734)、ブロック736上へ継続することができる。
他の機能とは別に、または他の機能と並行して、データ処理システムはドメインエンティティの情報リソースを識別することができる(ブロック740)。データ処理システムは、情報リソースをそれに関するキーワードについて構文解析することができる(ブロック742)。ブロック736から、データ処理システムは、キーワードカテゴリのうちの1つからキーワードを識別することができる(ブロック744)。データ処理システムは、シードキーワードおよびキーワードカテゴリの現在のキーワードが情報リソースにまたがって出現するかどうかを決定することができる(ブロック746)。
シードキーワードおよび現在のキーワードが情報リソースにまたがって出現する場合、データ処理システムは、キーワードカテゴリ内のキーワードに対する頻度カウントをインクリメントすることができる(ブロック748)。データ処理システムは、様々な係数(たとえば、情報リソース上のキーワードの位置)の頻度カウントに基づきキーワードアフィニティスコアを計算し、調整することができる(ブロック750)。データ処理システムは、キーワードカテゴリ内のキーワードに対するキーワードアフィニティスコアが頻度閾値以上であるかどうかを決定することができる(ブロック752)。頻度カウントがキーワード閾値スコア以上である場合、データ処理システムはキーワードを選択状態として設定することができる(ブロック754)。キーワードアフィニティスコアがキーワード閾値スコア未満である場合、データ処理システムはキーワードを非選択状態として設定することができる(ブロック756)。
シードキーワードおよび現在のキーワードが情報リソースにまたがって出現しない場合、データ処理システムは、現在のキーワードカテゴリ内にキーワードがもっとあるかどうかを決定することができる(ブロック758)。そうである場合、データ処理システムは、キーワードカテゴリ内の次のキーワードを識別することができる(ブロック772)。そうでない場合、データ処理システムは、キーワードカテゴリのキーワードの各々のキーワードアフィニティスコアに基づきキーワードカテゴリに対するカテゴリアフィニティスコアを計算することができる(ブロック760)。データ処理システムは、カテゴリアフィニティスコア合計がカテゴリアフィニティスコア閾値以上であるかどうかを決定することができる(ブロック762)。そうである場合、データ処理システムは、キーワードカテゴリを選択状態として設定することができる(ブロック764)。そうでない場合、データ処理システムは、キーワードカテゴリを非選択状態として設定することができる(ブロック766)。いずれかのイベントにおいて、データ処理システムは、キーワードカテゴリがもっとあるかどうかを決定することができる(ブロック768)。もっとキーワードカテゴリがある場合、データ処理システムは、次のキーワードカテゴリを識別することができ(ブロック770)、次のキーワードカテゴリ内のキーワードを識別することができ(ブロック772)、ブロック746の機能を繰り返すことができる。キーワードカテゴリがそれ以上ない場合、データ処理システムは、ブロック774上へ継続することができる。
ブロック774から、データ処理システムは、意味的関係グラフを使用して2つのキーワードカテゴリの間に意味的不一致があるかどうかを識別することができる(ブロック776)。そうである場合、データ処理システムは、意味的不一致のある各キーワードカテゴリについて頻度カウント合計を識別することができる(ブロック778)。データ処理システムは、一方のキーワードカテゴリに対する頻度カウント合計が意味的不一致のある別のキーワードカテゴリ対する頻度カウント合計以上であるかどうかを決定することができる(ブロック780)。そうである場合、データ処理システムは、第1のキーワードカテゴリを選択状態として設定することができる(ブロック782)。そうでない場合、データ処理システムは、他のキーワードカテゴリを選択状態として設定することができる(ブロック784)。いずれかのイベントにおいて、データ処理システムは、選択されたおよび非選択状態のキーワードとキーワードカテゴリとを使用してインターフェーススクリプトを生成することができる(ブロック786)。データ処理システムは、インターフェーススクリプトをシードキーワードを提供したコンピューティングデバイスに伝送することができる(ブロック788)。
図8は、いくつかの実装形態による、本明細書において説明されているコンピュータシステム(システム110ならびにキーワード生成器モジュール130、リソース構文解析器モジュール135、および頻度計算器モジュール140などのそのコンポーネントを含む)のどれかを実装するために使用され得る例示的なコンピュータシステム800の一般的なアーキテクチャを示している。コンピュータシステム800は、ネットワーク105を介して情報を提供し表示するために使用され得る。図8のコンピュータシステムは、メモリ825に通信可能に結合されている1つまたは複数のプロセッサ820、1つまたは複数の通信インターフェース805、ならびに1つまたは複数の出力デバイス810(たとえば、1つまたは複数の表示ユニット)および1つまたは複数の入力デバイス815を備える。プロセッサ820は、データ処理システム110、またはキーワード生成器モジュール130、リソース構文解析器モジュール135、頻度計算器モジュール140、キーワード選択器モジュール145、およびインターフェースプロバイダモジュール150などのシステム110の他のコンポーネントに含まれていてよい。
図8のコンピュータシステム800では、メモリ825は任意のコンピュータ可読記憶媒体を含むものとしてよく、それぞれのシステムについて本明細書において説明されている様々な機能を実装するためのプロセッサ実行可能命令などのコンピュータ命令、さらにはそれに関係するか、それによって生成されるか、または通信インターフェースもしくは入力デバイス(もし存在すれば)を介して受信されるデータを記憶し得る。図1のシステム110を再び参照すると、データ処理システム110は、他にもあるがとりわけ、1つまたは複数のコンテンツユニットとのインベントリ、1つまたは複数のコンテンツユニットの予約の利用可能性に関係する情報を記憶するためのメモリ825を備えることができる。メモリ825は、データベース155を備えることができる。図8に示されているプロセッサ820は、メモリ825に記憶されている命令を実行するために使用されるものとしてよく、そうする際に、また、命令の実行に従って処理されおよび/または生成される様々な情報を、メモリから読み出すか、またはメモリに書き込むものとしてよい。
図8に示されているコンピュータシステム800のプロセッサ820は、命令の実行に従って様々な情報を伝送するか、または受信するために通信インターフェース805に通信可能に結合されるか、または制御するものとしてよい。たとえば、通信インターフェース805は、有線もしくはワイヤレスネットワーク、バス、または他の通信手段に結合されてよく、したがって、コンピュータシステム800が情報を他のデバイス(たとえば、他のコンピュータシステム)に伝送するか、またはそれから受信することを可能にし得る。図1のシステムでは明示的に示されていないが、1つまたは複数の通信インターフェースは、システム100のコンポーネントの間の情報の流れを円滑にする。いくつかの実装形態において、通信インターフェースは、ウェブサイトをコンピュータシステム800の少なくともいくつかの態様へのアクセスポータルとして提供するように構成され得る(たとえば、様々なハードウェアコンポーネントまたはソフトウェアコンポーネント介して)。通信インターフェース805の例は、ユーザがデータ処理システム110と通信する際に使用することができる、ユーザインターフェース(たとえば、ウェブページ)を含む。
図8に示されているコンピュータシステム800の出力デバイス810は、たとえば、命令の実行に関連して様々な情報が表示されるか、または他の何らかの形で知覚されることを可能にするために用意され得る。入力デバイス815は、たとえば、ユーザが手動調整を行うこと、選択を行うこと、データを入力すること、または様々な方式のうちのどれかで命令の実行時にプロセッサとインタラクティブにやり取りすることを可能にするために備えられ得る。本明細書において説明されている様々なシステムに使用され得る一般的なコンピュータシステムアーキテクチャに関係する追加情報が、本明細書においてさらに提示される。
本明細書で説明されている主題および動作の実装形態は、デジタル電子回路で、または本明細書およびその構造的等価物において開示されている構造を含む、有形の媒体上に具現化されているコンピュータソフトウェア、ファームウェア、またはハードウェアで、またはそれらのうちの1つまたは複数の組合せで実装され得る。本明細書において説明されている主題の実装形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置によって実行できるようにまたはデータ処理装置の動作を制御するためにコンピュータ記憶媒体上に符号化された、コンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。プログラム命令は、データ処理装置による実行のため好適な受信機装置に伝送する情報が符号化されるように生成される、人工的に生成された伝搬信号、たとえば、機械で生成された電気、光、または電磁信号上で符号化されることが可能である。コンピュータ記憶媒体は、コンピュータ可読記憶装置デバイス、コンピュータ可読記憶装置基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せであり得るか、または含まれ得る。さらに、コンピュータ記憶媒体は、伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成される伝搬信号内に符号化されているコンピュータプログラム命令の送信元または送信先を含むことができる。コンピュータ記憶媒体は、また、1つまたは複数の独立した物理的コンポーネントまたは媒体(たとえば、複数のCD、ディスク、または他の記憶装置デバイス)であり得るか、または含まれ得る。
本明細書で開示されている特徴は、インターネット接続性をより伝統的なテレビ番組ソース(たとえば、ケーブル、衛星、無線、または他の信号を介して受信される)と統合するように構成されている処理モジュールを備え得る、スマートテレビモジュール(または接続されているテレビモジュール、ハイブリッドテレビモジュールなど)上に実装され得る。スマートテレビモジュールは、テレビ受像機に物理的に組み込まれ得るか、またはセットトップボックス、ブルーレイ、または他のデジタルメディアプレーヤー、ゲーム機、ホテルテレビシステム、および他の随伴デバイスなどの別個のデバイスを含み得る。スマートテレビモジュールは、ウェブ、ローカルケーブルTVチャンネル、衛星TVチャンネル上の、またはローカルのハードドライブに記憶されているビデオ、動画、写真、および他のコンテンツを視聴者が検索し、見つけることを可能にするように構成され得る。セットトップボックス(STB)またはセットトップユニット(STU)は、チューナーを収容し、テレビ受像機に接続し得る情報家電デバイスおよび外部信号源を備えるものとしてよく、これは信号をその後テレビ画面もしくは他の表示デバイス上に表示されるコンテンツに変える。スマートテレビモジュールは、ウェブブラウザおよび複数のストリーミングメディアサービス、接続されたケーブルもしくは衛星メディアソース、他のウェブ「チャネル」などの、複数の異なるアプリケーション用のアイコンを含むホーム画面または最上位画面を提供するように構成され得る。スマートテレビモジュールは、電子番組ガイドをユーザに提供するようにさらに構成され得る。スマートテレビモジュールの随伴アプリケーションは、ユーザに利用可能な番組に関する追加の情報を提供する、ユーザがスマートテレビモジュールを制御することを可能にするなどのことを行うためにモーバイルコンピューティングデバイス上で動作可能であるものとしてよい。代替的実装形態において、これらの特徴は、ラップトップコンピュータもしくは他のパーソナルコンピュータ、スマートフォン、他の携帯電話、ハンドヘルドコンピュータ、タブレットPC、または他のコンピューティングデバイス上に実装され得る。
本明細書において説明されている動作は、1つまたは複数のコンピュータ可読記憶装置デバイス上に記憶されるか、または他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装され得る。
「データ処理装置」、「データ処理システム」、「ユーザデバイス」、または「コンピューティングデバイス」という用語は、たとえばプログラム可能プロセッサ、コンピュータ、システムオンチップ、または前述のもののうちの複数もしくは組合せを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)を含むことができる。装置は、また、ハードウェアに加えて、注目しているコンピュータプログラム用の実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォーム実行時環境、仮想マシン、またはこれらのうちの1つまたは複数のものの組合せを構成するコードも含み得る。装置および実行環境は、ウェブサービス、分散型コンピューティング、およびグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。キーワード生成器モジュール130、リソース構文解析器モジュール135、頻度計算器モジュール140、キーワード選択器モジュール145、およびインターフェースプロバイダモジュール150は、1つまたは複数のデータ処理装置、コンピューティングデバイス、またはプロセッサを含むか、または共有することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも称される)は、コンパイル言語またはインタプリタ言語、宣言型もしくは手続き型言語を含む、任意の形態のプログラミング言語で書かれ、スタンドアロンプログラム、またはモジュール、コンポーネント、サブルーチン、オブジェクト、またはコンピューティング環境において使用するのに適している他のユニットを含む、任意の形態でデプロイされ得る。コンピュータプログラムは、ファイルシステム内のファイルに対応してよいが、そうである必要はない。プログラムは、他のプログラムをまたはデータ(たとえば、マークアップ言語ドキュメントに記憶される1つまたは複数のスクリプト)を保持するファイルの一部に、注目しているプログラム専用の単一ファイルに、または複数の協調ファイル(たとえば、1つまたは複数のモジュール、副プログラム、またはコードの一部分を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに配置されるか、または複数のサイトにまたがって分散され、通信ネットワークによって相互接続されている複数のコンピュータ上で実行されるようにデプロイされることが可能である。
本明細書で説明されているプロセスおよび論理の流れは、入力データを操作し、出力を生成することによってアクションを実行するように1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能なプロセッサによって実行され得る。これらのプロセスまたは論理の流れは、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)によっても実行され、また装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)としても実装され得る。
コンピュータプログラムの実行に適しているプロセッサは、たとえば、汎用マイクロプロセッサ、専用マイクロプロセッサ、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般的に、プロセッサは、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受け取る。コンピュータの不可欠な要素は、命令に従ってアクションを実行するためのプロセッサならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般的に、コンピュータは、データを記憶するための1つまたは複数の大容量記憶装置デバイス、たとえば、磁気ディスク、磁気光ディスク、または光ディスクも備え、これらからデータを受け取るか、またはこれらにデータを転送するか、またはその両方を行うように動作可能なように結合される。しかしながら、コンピュータは、そのようなデバイスを有している必要はない。さらに、コンピュータは、他のデバイス、たとえば、携帯電話、携帯情報端末(PDA)、携帯オーディオまたはビデオプレーヤー、ゲーム機、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に組み込まれることが可能である。コンピュータプログラムの命令およびデータを記憶するのに適したデバイスは、たとえば、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補助されるか、または専用論理回路に組み込まれ得る。
ユーザとインタラクティブにやり取りするために、本明細書で説明されている主題の実装形態は、ユーザに情報を表示するためのディスプレイデバイス(たとえば、CRT(陰極線管)、プラズマ、またはLCD(液晶ディスプレイ)モニタ)ならびにユーザがコンピュータに入力を送るために使用できるキーボードおよびポインティングデバイス(たとえば、マウスもしくはトラックボール)を有するコンピュータ上で実装されることが可能である。他の種類のデバイスも、ユーザとインタラクティブにやり取りするために使用されてよく、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックを含むものとしてよく、ユーザからの入力は、音響、音声、または触覚入力を含む、任意の形態で受信され得る。それに加えて、コンピュータは、ドキュメントをユーザによって使用されるデバイスに送り、そのデバイスからドキュメントを受け取ることによって、たとえば、ウェブブラウザから受け取った要求に応答して、ウェブページをユーザのクライアントデバイス上のウェブブラウザに送信することによって、ユーザとインタラクティブにやり取りすることができる。
本明細書で説明されている主題の実装形態は、バックエンドコンポーネントを、たとえば、データサーバとして備えるか、またはミドルウェアコンポーネント、たとえば、アプリケーションサーバを備えるか、またはフロントエンドコンポーネント、たとえば、ユーザが本明細書で説明されている主題の実装形態をインタラクティブに操作するために使用することができるグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータを備えるコンピューティングシステムで、または1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せで実装され得る。システムのコンポーネントは、デジタルデータ通信の任意の形態または媒体、たとえば、通信ネットワーク、によって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、およびピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
システム800またはシステム110などのコンピューティングシステムは、クライアントおよびサーバを含み得る。たとえば、データ処理システム110は、1つまたは複数のデータセンターまたはサーバファーム内に1つまたは複数のサーバを備え得る。クライアントおよびサーバは、一般に、互いに隔てられており、典型的には、通信ネットワークを通じてインタラクティブな操作を行う。クライアントとサーバとの関係は、コンピュータプログラムが各コンピュータ上で実行され、互いとの間にクライアント-サーバ関係を有することによって発生する。いくつかの実装形態において、サーバはデータ(たとえば、HTMLページ)をクライアントデバイスに(たとえば、クライアントデバイスをインタラクティブに操作するユーザにデータを表示し、ユーザからのユーザ入力を受け取ることを目的して)伝送する。クライアントデバイスで生成されるデータ(たとえば、ユーザインタラクションの結果)は、サーバ側でクライアントデバイスから受信され得る。
本明細書は、多くの実装形態固有の詳細事項を含んでいるが、これらは、発明の範囲または請求内容の範囲に対する制限として解釈すべきではなく、むしろ本明細書で説明されているシステムおよび方法の特定の実装形態に特有のものである特徴の説明として解釈すべきである。本明細書において別々の実装形態の文脈で説明されているいくつかの特徴は、また、単一の実装形態において組み合わされて実現され得る。また、逆に、単一の実装形態に関して説明した様々な特徴は、複数の実装形態において別個に、あるいは任意の好適な部分組合せで実装され得る。さらに、特徴は、いくつかの組合せで働くものとして上記で説明され、初めにそのように請求されることさえあるが、請求される組合せからの1つまたは複数の特徴は、場合によってはその組合せから削除され、請求される組合せは、部分組合せ、または部分組合せの変形形態を対象としてもよい。
同様に、動作は特定の順序で図面に示されているが、そのような動作は、望ましい結果を達成するために、示される特定の順序でもしくは順番に実行される必要がないことを、またはすべての図示の動作が実行される必要があるとは限らないことを、理解されたい。いくつかの場合において、請求項に記載されている動作は、異なる順序で実行されてもよく、しかも望ましい結果を達成することができる。それに加えて、添付図面に示されているプロセスは、必ずしも、望ましい結果を達成するために、図示されている特定の順序、または順番を必要としない。
ある状況では、マルチタスキングおよび並列処理が有利である場合がある。さらに、上記で説明した各実装形態における様々なシステムコンポーネントの分離は、すべての実装形態においてそのような分離が必要とされるものと理解されるべきではなく、前述のプログラムコンポーネントおよびシステムが概して単一のソフトウェアプロダクトとして一体化されるかまたは複数のソフトウェアプロダクトとしてパッケージ化されてもよいことを理解されたい。たとえば、キーワード生成器モジュール130、リソース構文解析器モジュール135、頻度計算器モジュール140、キーワード選択器モジュール145、およびインターフェースプロバイダモジュール150は、データ処理システム110の一部、単一のモジュール、1つまたは複数の処理モジュールを有する論理デバイス、1つまたは複数のサーバ、または検索エンジンの一部であってもよい。
いくつかの例示的な実装形態および実装形態が説明されているが、前述の内容は例示的であり、限定する意図はなく、例として提示されていることは明らかである。特に、本明細書に提示されている例の多くは、方法動作またはシステム要素の特定の組合せを伴い、それらの動作およびそれらの要素は、同じ目的を遂行するために他の方法で組み合わされてもよい。一実装形態に関連してのみ説明されている動作、要素、および特徴では、他の実装形態における類似の役割または実装形態から除外されることは意図されていない。
本明細書で使用されている語法および術語は、説明を目的とするものであり、限定するものとしてみなされるべきでない。「含む、備える(including)」、「からなる、備える、含む(comprising)」、「有する(having)」、「収容する、含む(containing)」、「伴う(involving)」、「特徴付けられる(characterized by)」、「特徴とする(characterized in that)」、および本明細書におけるそれらの変形では、それ以降に記載される項目、同等の項目、および追加項目、さらにはこれ以降排他的に記載されている項目からなる代替的実装形態を包含することが意図されている。一実装形態において、本明細書で説明されているシステムおよび方法は、説明されている要素、動作、またはコンポーネントのうちの1つ、複数の各組合せ、またはすべてからなる。
本明細書において単数形で参照されているシステムおよび方法の実装形態または要素または動作への参照は、また、これらの複数の要素を含む実装も包含するものとしてよく、本明細書における実装形態または要素または動作への複数の参照は、また、単一の要素のみを含む実装形態も包含し得る。単数形または複数形による参照は、本開示のシステムまたは方法、そのコンポーネント、動作、または要素を単一または複数の構成に限定することを意図していない。情報、動作、または要素に基づいている動作または要素への参照は、動作または要素が少なくとも一部は情報、動作、または要素に基づく実装を含み得る。
本明細書で開示されている実装形態は、他の実装形態と組み合わされるものとしてよく、「実装形態」、「いくつかの実装形態」、「代替的実装形態」、「様々な実装形態」、「一実装形態」、または同様の言い回しへの参照は、必ずしも相互排他的でなく、実装形態に関連して説明されている特定の特徴、構造、または特性が少なくとも1つの実装形態に含まれ得ることを示すことが意図されている。本明細書で使用されているそのような術語は、必ずしもすべて同じ実装形態を指しているわけではない。実装形態は、本明細書で開示されている態様および実装形態に一致する方式で、包含的にまたは排他的に他の実装形態と組み合わされてもよい。
「または」への参照は、「または」を使用して説明されている術語が、説明されている術語の1つ、複数、およびすべてのどれかを示し得るように包含的に解釈され得る。
図面、詳細な説明、または請求項における技術的特徴の後に引用符号が続く場合、引用符号は、図面、詳細な説明、および請求項の明瞭さを高めるという単独の目的のために含まれている。したがって、引用符号があることもないことも、請求要素の範囲に対する限定的効果を有しない。
本明細書で説明されているシステムをおよび方法は、その特徴から逸脱することなく他の特定の形式で具現化され得る。本明細書において提示されている例は、キーワードの意味的関連性を測定することに関係しているけれども、本明細書において説明されているシステムおよび方法は、他の環境への適用も含み得る。前述の実装形態は、説明されているシステムおよび方法を限定するものではなく、例示するものである。したがって、本明細書で説明されているシステムおよび方法の範囲は、前述の説明ではなく、付属の請求項によって示され、請求項の等価性の意味および範囲に入る変更は、そこに包含される。