全体的に図面を参照すると、説明される実施態様による、ディスプレイコンテンツのイメージを抽出し、生成するシステムおよび方法が示されている。本明細書で説明されるシステムおよび方法は、特定のサードパーティコンテンツプロバイダおよび/または特定のランディングリソースに合わせて調整されたサードパーティコンテンツアイテムを自動的に生成するのに使用され得る。イメージおよび他のビジュアル情報(たとえば、カラー、テキスト、グラフィックス、フォント、スタイルなど)は、ランディングリソースから抽出され、ランディングリソースに関連するサードパーティコンテンツアイテムを生成するのに使用される。たとえば、イメージおよび他のビジュアル情報を使用して、サードパーティコンテンツアイテムとのユーザ対話(たとえば、コンテンツアイテムのクリック、コンテンツアイテムの上でのホバリングなど)の時に、ランディングリソースに案内する(たとえば、埋め込まれたハイパーリンクを介して)サードパーティコンテンツアイテムを生成することができる。
動作中に、本開示によるコンテンツ生成システムは、ユニフォームリソースロケータ(URL)をサードパーティコンテンツプロバイダから受け取る。URLは、本明細書でランディングリソースと称する特定の電子リソース(たとえば、ウェブページ)を識別する。サードパーティコンテンツプロバイダは、ランディングリソースに案内するサードパーティコンテンツアイテム(たとえば、ディスプレイ広告)を生成する要求の一部として、コンテンツ生成システムにURLをサブミットすることができる。コンテンツ生成システムは、URLを使用してランディングリソースにナビゲートし、イメージおよび他のビジュアル情報をそこから抽出する。
いくつかの実施態様では、コンテンツ生成システムは、イメージのビジュアルコンテンツを検出するために、ランディングリソースから抽出されたイメージを分析する。ビジュアルコンテンツの検出は、たとえば、イメージ内で表される突出したオブジェクトの位置の判定、イメージ内のテキストの位置の判定、および/またはイメージの視覚的影響を改善するためにイメージをクロッピングしもしくは処理することができるかどうかの判定を含むことができる。いくつかの実施態様では、コンテンツ生成システムは、イメージのセマンティックコンテンツを検出するために、ランディングリソースから抽出されたイメージを分析する。セマンティックコンテンツの検出は、たとえば、イメージ内で描写されるオブジェクトまたはイメージによって伝えられる意味を識別することを含むことができる。イメージのセマンティックコンテンツを記述するラベルまたはキーワードを、特定のサードパーティコンテンツアイテムへのイメージの関連性を判定するのに使用されるイメージに関連付けることができる。
いくつかの実施態様では、コンテンツ生成システムは、イメージを処理する。イメージ処理は、突出したオブジェクトを強調するかテキストを除去するためのイメージのクロッピング、イメージのサイズ変更、イメージのフォーマッティング、またはサードパーティコンテンツアイテム内に含めるためのイメージの他の形の準備を含むことができる。いくつかの実施態様では、イメージ処理は、ロゴイメージの質を高めることを含む。
コンテンツ生成システムは、イメージの様々な属性に基づいてイメージをフィルタリングし、ランキングすることができる。たとえば、しきいディスプレイサイズより小さいディスプレイサイズまたはしきい品質スコアより低い品質スコアを有するイメージを、フィルタリングすることができる。イメージのそれぞれに関連する突出スコアに基づいて、イメージをランキングすることができる。突出スコアは、抽出されたイメージがランディングリソース上で表示される際の顕著さを示すことができる。コンテンツ生成システムは、ディスプレイコンテンツアイテムに含めるために、1つまたは複数のトップランキングのイメージを選択することができる。
いくつかの実施態様では、コンテンツ生成システムによって作成されるコンテンツアイテムは、広告である。広告は、イメージ広告、flash広告、ビデオ広告、テキストベースの広告、またはその任意の組合せなどのディスプレイ広告とすることができる。他の実施態様では、コンテンツ生成システムを使用して、様々な広告以外の目的のために働く他のタイプのコンテンツ(たとえば、テキストコンテンツ、ディスプレイコンテンツなど)を生成することができる。
ここで図1を参照すると、説明される実施態様による、コンピュータシステム100のブロック図が示されている。コンピュータシステム100は、ネットワーク102、コンテンツリクエスタ104、ランディングリソース106、ユーザデバイス108、リソースレンダラ110、データストレージデバイス112、およびコンテンツ生成システム114を含むように示されている。コンピュータシステム100は、コンテンツ生成システム114とコンテンツリクエスタ104との間の通信を容易にすることができる。たとえば、コンテンツ生成システム114は、ネットワーク102を介してコンテンツリクエスタ104からコンテンツ生成要求を受信することができる。コンテンツ生成システム114は、その要求に応答してコンテンツアイテムを作成し、生成されたコンテンツアイテムをレビューまたは承認のためにコンテンツリクエスタ104に供給することができる。
コンピュータシステム100は、コンテンツ生成システム114とランディングリソース106とリソースレンダラ110との間の通信を容易にすることもできる。たとえば、コンテンツ生成システム114は、ランディングリソース106および/またはリソースレンダラ110からビジュアル情報を受信することができる。たとえば、コンテンツ生成の要求を受信する時に、コンテンツ生成システム114は、ランディングリソース106からデータを入手し(たとえば、ダウンロードし)、レンダリングするために、リソースレンダラ110を呼び出すことができる。リソースレンダラ110は、ネットワーク102を介してランディングリソース106からデータを受信し、そのようなデータをスナップショットイメージ(たとえば、ランディングリソース106のビジュアル表現)としておよび/またはドキュメントオブジェクトモデル(DOM)ツリーとしてレンダリングすることができる。レンダリングされるデータは、リソースレンダラ110からネットワーク102を介してコンテンツ生成システム114に送信され得る。
ネットワーク102は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク、ラジオネットワーク、インターネット、または任意の他のタイプのデータネットワークなど、任意のタイプのコンピュータネットワークを含むことができる。ネットワーク102は、データを送信し、受信し、または中継するように構成された、任意の個数のコンピューティングデバイス(たとえば、コンピュータ、サーバ、ルータ、ネットワークスイッチなど)を含むことができる。ネットワーク102は、さらに、任意の個数のハードワイヤド接続および/または無線接続を含むことができる。たとえば、コンテンツリクエスタ104は、ネットワーク102のコンピューティングデバイスにハードワイヤ接続された(たとえば、光ファイバケーブル、CAT5ケーブルなどを介して)トランシーバと無線で(たとえば、WiFi、セルラー、ラジオなどを介して)通信することができる。
まだ図1を参照すると、コンピュータシステム100は、コンテンツリクエスタ104を含んで図示されている。コンテンツリクエスタ104は、コンテンツアイテムを生成する要求がそこから受信される1つまたは複数のエンティティを含むことができる。たとえば、コンテンツリクエスタ104は、広告主、広告代理店、サードパーティコンテンツプロバイダ、パブリッシャ、ウェブサイトプロバイダ、またはコンテンツアイテムを生成する要求をそこから受信することができる任意の他のエンティティを含むことができる。
いくつかの実施態様では、コンテンツリクエスタ104は、コンテンツ生成の要求をサブミットすることができる1つまたは複数の電子デバイス(たとえば、コンピュータ、コンピュータシステム、サーバなど)を含む。コンテンツリクエスタ104は、それを介してユーザがコンテンツ生成要求を入力することのできるユーザ入力デバイス(たとえば、キーボード、マウス、マイクロホン、タッチスクリーン、タブレット、スマートフォンなど)を含むことができる。コンテンツリクエスタ104は、ネットワーク102を介してコンテンツ生成システム114にコンテンツ生成要求をサブミットすることができる。いくつかの実施態様では、コンテンツ生成要求は、ユニフォームリソースロケータ(URL)を含む。URLは、特定のランディングリソース(たとえば、ランディングリソース106のうちの1つ)の位置を指定することができる。
いくつかの実施態様では、コンテンツリクエスタ104は、コンテンツ生成システム114にキャンペーンパラメータをサブミットする。キャンペーンパラメータは、コンテンツ生成システム114によって作られるサードパーティコンテンツアイテムの配布を制御するのに使用され得る。キャンペーンパラメータは、サードパーティコンテンツアイテムに関連するキーワード、キーワードに関連する付け値、コンテンツ配布予算、地理的リミッタ、または、サードパーティコンテンツアイテムをユーザデバイスに提示できる時を判定するためにコンテンツ生成システム114もしくは別々のコンテンツサーバによって使用される他の判断基準を含むことができる。
コンテンツリクエスタ104は、確立されたキャンペーンパラメータに従って配布されるサードパーティコンテンツアイテムのパフォーマンスを監視するために、コンテンツ生成システム114にアクセスすることができる。たとえば、コンテンツリクエスタ104は、サードパーティコンテンツアイテムまたはサードパーティコンテンツアイテムのセットに関連する1つまたは複数の挙動メトリックをレビューするために、コンテンツ生成システム114にアクセスすることができる。挙動メトリックは、配布されるサードパーティコンテンツアイテムまたはサードパーティコンテンツアイテムのセットに関するユーザデバイス108の間の相互作用(たとえば、インプレッションの個数、クリックの回数、変換の回数、費やされた額など)を記述することができる。挙動メトリックは、アカウンティングシステムまたはログファイル処理システムによってロギングされ、処理されたユーザアクションに基づくものとすることができる。
まだ図1を参照すると、コンピュータシステム100は、ランディングリソース106を含んで図示されている。ランディングリソース106は、ネットワーク102を介して供給され得る任意のタイプの情報またはデータ構造を含むことができる。いくつかの実施態様では、ランディングリソース106を、ランディングリソース106に関連するリソースアドレス(たとえば、URL)によって識別することができる。ランディングリソース106は、ウェブページ(たとえば、HTMLウェブページ、PHPウェブページなど)、ワードプロセッシング文書、ポータブルドキュメントフォーマット(PDF)文書、イメージ、ビデオ、プログラミング要素、対話型コンテンツ、ストリーミングビデオ/オーディオソース、または他のタイプの電子情報を含むことができる。
ランディングリソース106は、ウェブページ、ローカルリソース、イントラネットリソース、インターネットリソース、または他のネットワークリソースとすることができる。いくつかの実施態様では、ランディングリソース106は、ユーザデバイス108がコンテンツ生成システム114によって生成されたコンテンツアイテムと相互作用する時にユーザデバイス108が案内される(たとえば、埋め込まれたハイパーリンクを介して)1つまたは複数のウェブページを含む。いくつかの実施態様では、ランディングリソース106は、生成されたコンテンツアイテム内で宣伝される製品、サービス、またはビジネスに関する追加情報を提供する。たとえば、ランディングリソース106は、生成されたコンテンツアイテム内で宣伝される製品またはサービスを、それを介して購入できるウェブサイトとすることができる。
いくつかの実施態様では、ランディングリソース106は、コンテンツアイテムを生成する要求の一部としてコンテンツリクエスタ104によって指定される。ランディングリソース106は、ランディングリソース106のうちの1つに案内する、または、ランディングリソース106の位置を他の形で指定する、URLとして指定され得る。URLを、コンテンツ生成要求の一部として含めることができる。いくつかの実施態様では、ランディングリソース106を、コンテンツリクエスタ104と組み合わせることができる。たとえば、ランディングリソース106は、コンテンツリクエスタ104によって維持される1つまたは複数の電子デバイス(たとえば、コンピュータ、サーバなど)上に記憶されたデータを含むことができる。他の実施態様では、ランディングリソース106を、コンテンツリクエスタ104とは別々とすることができる。たとえば、ランディングリソース106は、リモートサーバ(たとえば、FTPサーバ、ファイル共有サーバ、ウェブサーバなど)、サーバの組合せ(たとえば、データセンタ、クラウドコンピューティングプラットフォームなど)、またはコンテンツリクエスタ104とは別々の他のデータストレージデバイス上に記憶されたデータを含むことができる。
まだ図1を参照すると、コンピュータシステム100は、ユーザデバイス108を含んで図示されている。ユーザデバイス108は、任意の個数および/または任意のタイプのユーザ操作可能な電子デバイスを含むことができる。たとえば、ユーザデバイス108は、デスクトップコンピュータ、ラップトップコンピュータ、スマートフォン、タブレット、モバイル通信デバイス、リモートワークステーション、クライアント端末、エンターテイメントコンソール、またはコンピュータシステム100の他のコンポーネントと相互作用する(たとえば、通信インターフェースを介して)ことのできる任意の他のデバイスを含むことができる。ユーザデバイス108は、ランディングリソース106からおよび/またはコンテンツ生成システム114によって生成されたサードパーティコンテンツアイテムから、リソースコンテンツを受信できるものとされ得る。ユーザデバイス108は、モバイルデバイスまたは非モバイルデバイスを含むことができる。
いくつかの実施態様では、ユーザデバイス108は、電子コンテンツをユーザの理解できるフォーマット(たとえば、ビジュアル、音声(aural)、グラフィカルなど)に変換するアプリケーション(たとえば、ウェブブラウザ、リソースレンダラなど)を含む。ユーザデバイス108は、コンテンツをユーザに提示し、ユーザ入力を受け取り、または電子コンテンツとのユーザ対話(たとえば、コンテンツアイテムのクリック、コンテンツアイテム上でのホバリングなど)を容易にするためのユーザインターフェース要素(たとえば、電子ディスプレイ、スピーカ、キーボード、マウス、マイクロホン、プリンタなど)を含むことができる。ユーザデバイス108は、ユーザがHTML符号化されたコンテンツを見ることを可能にするユーザエージェントとして機能することができる。
ユーザデバイス108は、埋め込まれた情報(たとえば、ハイパーリンク内に埋め込まれたメタ情報など)を処理し、埋め込まれた命令を実行することができるプロセッサを含むことができる。埋め込まれた命令は、サードパーティコンテンツアイテムがその中で提示されるコンテンツスロットに関連するコンピュータ可読命令(たとえば、ソフトウェアコード、JavaScript(登録商標)、ECMAScript(登録商標)など)を含むことができる。
いくつかの実施態様では、ユーザデバイス108は、配布されたコンテンツアイテムとの相互作用を検出することができる。コンテンツアイテムとの相互作用は、コンテンツアイテムの表示、コンテンツアイテム上でのホバリング、コンテンツアイテムのクリック、コンテンツアイテムのソース情報の表示、またはユーザデバイス108とコンテンツアイテムとの間の任意の他のタイプの相互作用を含むことができる。コンテンツアイテムとの相互作用は、特定のコンテンツアイテムに関するユーザによる明示的なアクションを必要としない。いくつかの実施態様では、インプレッション(たとえば、コンテンツアイテムの表示または提示)は、相互作用の資格を得ることができる。どのユーザアクション(たとえば、能動的または受動的)が相互作用の資格を得るのかを定義する判断基準は、コンテンツリクエスタ104またはコンテンツ生成システム114によって、個別に(たとえば、コンテンツアイテムごとに)決定され得る。
ユーザデバイス108は、様々なユーザアクションを生成することができる。たとえば、ユーザデバイス108は、コンテンツアイテムとの検出された相互作用に応答してユーザアクションを生成することができる。ユーザアクションは、コンテンツ識別子(たとえば、コンテンツIDまたはシグネチャ要素)、デバイス識別子、参照するURL識別子、タイムスタンプ、または相互作用を記述する任意の他の属性を含む複数の属性を含むことができる。ユーザデバイス108は、特定のアクションがユーザデバイスによって実行される(たとえば、リソースビュー、オンライン購入、サブミットされた検索照会など)時に、ユーザアクションを生成することができる。ユーザデバイス108によって生成されたユーザアクションを、コンテンツ生成システム114または別々のアカウンティングシステムに通信することができる。
本明細書で議論されるシステムがユーザに関する個人情報を収集する状況、またはそのシステムが、個人情報を利用できる状況について、ユーザに、プログラムまたは特徴がユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルアクションもしくはソーシャルアクティビティ、職業、ユーザのプリファレンス、またはユーザの現在位置)を収集するかどうかを制御する機会、またはユーザにより関係する可能性があるコンテンツサーバからコンテンツを受信するかどうかおよび/もしくはどのように受信すべきかを制御する機会を与えることができる。さらに、ある種のデータを、それが記憶されるか使用される前に1つまたは複数の形で処理し(たとえば、コンテンツ生成システム114によって)、その結果、個人的に識別可能な情報が除去されるようにすることができる。たとえば、ユーザのアイデンティティを処理し、その結果、個人的に識別可能な情報をそのユーザに関して判定できないようにすることができ、あるいは、位置情報が入手されたユーザの地理的位置を一般化し(都市、郵便番号、または州レベルに)、その結果、ユーザの特定の位置を判定できないようにすることができる。したがって、ユーザは、情報がどのように収集され(たとえば、アプリケーションによって、ユーザデバイス108によってなど)、コンテンツ生成システム114によってどのように使用されるのかに対する制御を有することができる。
まだ図1を参照すると、コンピュータシステム100は、リソースレンダラ110を含んで図示されている。リソースレンダラ110は、ランディングリソース106を解釈し、そのビジュアル表現(たとえば、イメージ、ディスプレイなど)を作成することのできる、ハードウェアコンポーネントまたはソフトウェアコンポーネントとすることができる。たとえば、ランディングリソース106は、マークアップされたコンテンツ(たとえば、HTML、XML、イメージURLなど)ならびにフォーマッティング情報(たとえば、CSS、XSLなど)を含むことができる。リソースレンダラ110は、マークアップされたコンテンツおよびフォーマッティング情報をダウンロードし、ワールドワイドウェブコンソーシアム(W3C)標準規格に従ってランディングリソース106をレンダリングすることができる。リソースレンダラ110は、ランディングリソース106の「スナップショットイメージ」を作成し、かつ/またはランディングリソース106を表すドキュメントオブジェクトモデル(DOM)ツリーを構成することができる。
スナップショットイメージは、特定のランディングリソース106のビジュアル表現とすることができる。スナップショットイメージは、ランディングリソース106をレンダリングした後にユーザインターフェースデバイス(たとえば、電子ディスプレイスクリーン、コンピュータモニタ、接触感知ディスプレイなど)上に提示されるランディングリソース106の視覚的外見を示すことができる。スナップショットイメージは、ランディングリソース106のカラー情報(たとえば、ピクセルカラー、輝度、彩度など)とスタイル情報(たとえば、直角の角、丸められた角、モダン、素朴など)とを含むことができる。いくつかの実施態様では、スナップショットイメージを、任意の実行可能なファイル拡張子(たとえば、.jpg、.png、.bmpなど)を有するピクチャファイルとすることができる。
DOMツリーは、特定のランディングリソース106の階層モデルとすることができる。DOMツリーは、ランディングリソース106の、イメージ情報(たとえば、イメージURL、ディスプレイ位置、ディスプレイサイズ、代替テキストなど)、フォント情報(たとえば、フォント名、サイズ、効果など)、カラー情報(たとえば、RGBカラー値、16進カラーコードなど)、およびテキスト情報を含むことができる。
様々な実施態様では、リソースレンダラ110を、コンテンツ生成システム114の一部または別々のコンポーネントとすることができる。リソースレンダラ110は、コンテンツ生成システム114からのレンダリング要求に応答して、スナップショットイメージおよび/またはDOMツリーを準備することができる。リソースレンダラ110は、レンダリング要求に応答して、スナップショットイメージおよび/またはDOMツリーをコンテンツ生成システム114に送信することができる。
まだ図1を参照すると、コンピュータシステム100は、データストレージデバイス112を含んで図示されている。データストレージデバイス112は、プロファイルデータ、コンテンツアイテムデータ、アカウンティングデータ、またはコンテンツ生成システム114もしくはコンピュータシステム100の別のコンポーネントによって使用される任意の他のタイプのデータを記憶することができる任意のタイプのメモリデバイスとすることができる。データストレージデバイス112は、任意のタイプの不揮発性メモリ、媒体、またはメモリデバイスを含むことができる。たとえば、データストレージデバイス112は、半導体メモリデバイス(たとえば、EPROM、EEPROM、フラッシュメモリデバイスなど)、磁気ディスク(たとえば、内蔵ハードディスク、リムーバブルディスクなど)、光磁気ディスク、ならびに/またはCD ROMディスクおよびDVD-ROMディスクを含むことができる。
いくつかの実施態様では、データストレージデバイス112は、コンテンツ生成システム114、ランディングリソース106、またはコンテンツリクエスタ104にローカルである。他の実施態様では、データストレージデバイス112は、ネットワーク102を介してコンテンツ生成システム114および/またはコンテンツリクエスタ104に接続されたリモートデータストレージデバイスである。いくつかの実施態様では、データストレージデバイス112は、コンテンツ生成システム114および/またはコンテンツリクエスタ104から照会を受信し、これに応答することのできるデータストレージサーバまたはデータストレージシステムの一部である。
いくつかの実施態様では、データストレージデバイス112は、ランディングリソース106から抽出されたビジュアル情報を記憶するように構成される。たとえば、データストレージデバイス112は、ランディングリソース106上に表示される様々なイメージのイメージデータを記憶することができる。イメージデータは、実際のイメージ(たとえば、イメージファイル)、イメージのURL位置、イメージ属性、イメージメタデータ、またはランディングリソース106上に表示されるイメージの他の特質を含むことができる。
データストレージデバイス112は、コンテンツリクエスタ104に関連して使用された以前のコンテンツアイテムを記憶するように構成され得る。以前のコンテンツアイテムは、コンテンツリクエスタ104によって供給されたコンテンツアイテム、コンテンツリクエスタ104のためにコンテンツ生成システム114によって作成されたコンテンツアイテム、コンテンツリクエスタ104によって以前に使用されたか承認されたイメージ、および/または以前に生成されたコンテンツアイテムの他のコンポーネントを含むことができる。データストレージデバイス112は、ランディングリソース106から抽出されたオンページイメージ、コンテンツリクエスタ104によって以前に使用されたか承認されたイメージ、および/またはランディングリソース106から抽出されたのでもコンテンツリクエスタ104によって承認されたのでもない他のイメージのイメージリポジトリとすることができる。
まだ図1を参照すると、コンピュータシステム100は、コンテンツ生成システム114を含んで図示されている。コンテンツ生成システム114は、ランディングリソース106からビジュアル情報(たとえば、イメージ、カラー、テキスト、フォント、スタイルなど)を抽出するように構成され得る。コンテンツ生成システム114は、ビジュアルコンテンツとそのセマンティックコンテンツを検出するために、抽出されたイメージを分析することができる。たとえば、コンテンツ生成システム114は、抽出されたイメージ内のコンテンツの分布(たとえば、突出したオブジェクトの位置、テキストの位置など)を判定し、イメージが何を表すのか(たとえば、自動車のタイプ、靴のブランドなど)の定性記述を用いて、抽出されたイメージにラベルを付けることができる。コンテンツ生成システム114は、抽出されたイメージを処理し(たとえば、クロッピング、エンハンスメント、最適化、フォーマットなど)、サードパーティコンテンツアイテム内での使用のためにイメージを選択することができる。コンテンツ生成システム114は、選択されたイメージを含むサードパーティコンテンツアイテムを作成し、作成されたサードパーティコンテンツアイテムをユーザデバイス108に供給することができる。コンテンツ生成システム114を、図2を参照してより詳細に説明する。
ここで図2を参照すると、説明される実施態様による、コンテンツ生成システム114をより詳細に示すブロック図が示されている。コンテンツ生成システム114は、通信インターフェース202および処理回路204を含んで図示されている。通信インターフェース202は、ローカルまたはリモートのデバイスまたはシステムとのデータ通信を行うために、有線または無線のインターフェース(たとえば、ジャック、アンテナ、送信器、受信器、トランシーバ、ワイヤ端末、イーサネット(登録商標)ポート、WiFiトランシーバなど)を含むことができる。たとえば、通信インターフェース202は、コンテンツ生成システム114が、コンテンツリクエスタ104、リソース106、ユーザデバイス108、リソースレンダラ110、およびコンピュータシステム100の他のコンポーネントと通信することを可能にすることができる。
処理回路204は、プロセッサ206およびメモリ208を含んで図示されている。プロセッサ206は、汎用プロセッサ、特定用途向け集積回路(ASIC)、1つもしくは複数のフィールドプログラマブルゲートアレイ(FPGA)、CPU、GPU、処理コンポーネントのグループ、または他の適切な電子処理コンポーネントとして実施され得る。
メモリ208は、本開示で説明される様々なプロセス、レイヤ、およびモジュールを完成させ、かつ/または容易にするためのデータおよび/またはコンピュータコードを記憶する1つまたは複数のデバイス(たとえば、RAM、ROM、フラッシュメモリ、ハードディスクストレージなど)を含むことができる。メモリ208は、揮発性メモリまたは不揮発性メモリを含むことができる。メモリ208は、データベースコンポーネント、オブジェクトコードコンポーネント、スクリプトコンポーネント、または本開示で説明される様々なアクティビティおよび情報構造をサポートする任意の他のタイプの情報構造を含むことができる。いくつかの実施態様では、メモリ208は、処理回路204を介してプロセッサ206に通信可能に接続され、本明細書で説明される1つまたは複数のプロセスを実行するコンピュータコード(たとえば、メモリ208内に記憶されたデータモジュール)を含む。短い概要では、メモリ208は、リソースレンダラモジュール210、イメージモジュール212、カラーモジュール214、テキストモジュール216、フォントモジュール218、およびレイアウトモジュール220を含んで図示されている。
まだ図2を参照すると、メモリ208は、リソースレンダラモジュール210を含んで図示されている。いくつかの実施態様では、リソースレンダリングは、外部のリソースレンダリングサービス(たとえば、リソースレンダラ110)ではなく、リソースレンダラモジュール210によって実行される。リソースレンダラモジュール210は、図1を参照して説明されたリソースレンダラ110の機能性を含むことができる。たとえば、リソースレンダラモジュール210は、ランディングリソース106を解釈し、そのビジュアル表現(たとえば、イメージ、ディスプレイなど)を作成できるものとされ得る。
リソースレンダラモジュール210は、コンテンツアイテムを生成する要求の一部としてコンテンツリクエスタ104によって供給されたURLまたは他のインジケータを使用して、特定のランディングリソースを識別することができる。リソースレンダラモジュール210は、ランディングリソース106からマークアップされたコンテンツ(たとえば、HTML、XML、イメージURLなど)およびフォーマッティング情報(たとえば、CSS、XSLなど)を読み取り、解釈し、ランディングリソース106をレンダリングする(たとえば、W3C標準規格に従って)ことができる。リソースレンダラモジュール210は、ランディングリソース106のスナップショットイメージを作成し、かつ/またはランディングリソース106を表すDOMツリーを構成することができる。
スナップショットイメージは、識別されたランディングリソース106のビジュアル表現とすることができる。スナップショットイメージは、ランディングリソース106をレンダリングした後にユーザインターフェースデバイス(たとえば、電子ディスプレイスクリーン、コンピュータモニタ、接触感知ディスプレイなど)上に提示されるランディングリソース106の視覚的外見を示すことができる。スナップショットイメージは、ランディングリソース106のカラー情報(たとえば、ピクセルカラー、輝度、彩度など)とスタイル情報(たとえば、直角の角、丸められた角、モダン、素朴など)とを含むことができる。いくつかの実施態様では、スナップショットイメージを、任意の実行可能なファイル拡張子(たとえば、.jpg、.png、.bmpなど)を有するピクチャファイルとすることができる。
DOMツリーは、識別されたランディングリソース106の階層モデルとすることができる。DOMツリーは、ランディングリソース106の、イメージ情報(たとえば、イメージURL、ディスプレイ位置、ディスプレイサイズ、代替テキストなど)、フォント情報(たとえば、フォント名、サイズ、効果など)、カラー情報(たとえば、RGBカラー値、16進カラーコードなど)、およびテキスト情報を含むことができる。リソースレンダラモジュール210は、コンテンツ生成システム114の他のモジュールによって後で使用するために、スナップショットイメージおよび/またはDOMツリーをメモリ208内に記憶することができる。
まだ図2を参照すると、メモリ208は、イメージモジュール212を含んで図示されている。イメージモジュール212は、ランディングリソース106からイメージを抽出するように構成され得る。たとえば、イメージモジュール212は、イメージおよびイメージメタデータ(たとえば、イメージURL、ディスプレイ位置、ディスプレイサイズ、代替テキストなど)を識別し、抽出するために、ランディングリソース106のDOMツリーを解析することができる。イメージメタデータを使用して、ランディングリソース106上に表示される各イメージのオンページ突出を判定することができる。いくつかの実施態様では、イメージモジュール212は、他のデータソース(たとえば、以前に使用されたイメージまたは承認されたイメージのリポジトリ、ストックイメージのリポジトリなど)から、イメージおよびイメージメタデータを抽出する。
イメージモジュール212は、イメージのビジュアルコンテンツを検出するために、抽出されたイメージを分析することができる。ビジュアルコンテンツの検出は、たとえば、イメージ内で表される突出したオブジェクトの位置の判定、イメージ内のテキストの位置の判定、および/またはイメージの視覚的影響を改善するためにイメージをクロッピングしもしくは処理することができるかどうかの判定を含むことができる。いくつかの実施態様では、イメージモジュール212は、イメージのセマンティックコンテンツを検出するために、抽出されたイメージを分析する。セマンティックコンテンツの検出は、たとえば、イメージ内で描写されるオブジェクトまたはイメージによって伝えられる意味を識別することを含むことができる。イメージモジュール212は、イメージに、そのイメージのセマンティックコンテンツを記述する1つまたは複数のラベルまたはキーワードを割り当てることができる。ラベルおよび/またはキーワードを使用して、特定のサードパーティコンテンツアイテムに対するイメージの関連性を判定することができる。
イメージモジュール212は、サードパーティコンテンツアイテムでの使用のためにイメージを準備するためにイメージを処理することができる。イメージ処理は、突出したオブジェクトを強調するかテキストを除去するためのイメージのクロッピング、イメージのサイズ変更、イメージのフォーマッティング、または他の形でのイメージの調整を含むことができる。いくつかの実施態様では、イメージモジュール212は、ロゴイメージを識別し、その質を高める。
イメージモジュール212は、イメージの様々な属性に基づいてイメージをフィルタリングし、ランキングすることができる。イメージモジュール212は、イメージのそれぞれの品質スコアおよび/またはオンページ突出スコアを判定することができる。イメージの品質スコアは、様々なイメージ属性に基づいてイメージの美的外見を示すことができる。突出スコアは、抽出されたイメージがランディングリソース106上に表示される際の顕著さを示すことができる。イメージモジュール212は、しきいディスプレイサイズより小さいディスプレイサイズまたはしきい品質スコアより低い品質スコアを有するイメージを、破棄またはフィルタリングすることができる。いくつかの実施態様では、イメージモジュール212は、イメージに関連する突出スコアに基づいてイメージをランキングする。イメージモジュール212は、ディスプレイコンテンツアイテムに含めるために、1つまたは複数のトップランキングのイメージを選択することができる。イメージモジュール212を、図3を参照してより詳細に説明する。
まだ図2を参照すると、メモリ208は、カラーモジュール214を含んで図示されている。カラーモジュール214は、ディスプレイコンテンツのカラースキームを生成することができる。たとえば、カラーモジュール214は、コンテンツアイテムの背景、見出し、説明、ボタン背景、および/またはボタンテキストのカラーを選択することができる。カラースキームは、ランディングリソース106上に表示されるカラーに対応する1つまたは複数のカラーを含むことができる。
カラーモジュール214は、コンテンツアイテムのカラーを選択するのに、ランディングリソース106のスナップショットイメージおよび/またはDOMツリーを使用することができる。いくつかの実施態様では、カラーモジュール214は、クラスタ化技法(たとえば、k平均法)を使用して、スナップショットイメージから複数のカラークラスタを抽出する。カラーモジュール214を、図4を参照してより詳細に説明する。
まだ図2を参照すると、メモリ208は、テキストモジュール216を含んで図示されている。テキストモジュール216は、サードパーティコンテンツアイテムのテキスト部分(たとえば、テキスト記述、見出しなど)を自動的に作成するように構成され得る。様々な実施態様では、テキストモジュール216は、ディスプレイコンテンツアイテムのテキスト部分または純テキストコンテンツアイテムを作成するのに使用され得る。いくつかの実施態様では、テキストモジュール216は、ランディングリソース106上に表示されるテキストの要約を作成するのに、ランディングリソース106のDOMツリーまたはスナップショットイメージを使用する。いくつかの実施態様では、テキストモジュール216は、ランディングリソース106に加えてまたはその代わりに、他のデータソースからテキストデータを取り出す。たとえば、テキストモジュール216は、ビジネス、製品、またはサービスのユーザ作成のレビューからテキストデータを受け取ることができる。レビューは、ユーザが特定のビジネス、製品、またはサービスに関するコメント、レビュー、または他のテキストをポストするかサブミットすることを許可されるインターネットリソース(たとえば、ウェブサイト)から取り出され得る。ランディングリソース106のURLを使用して、そのようなレビューの位置を指定し、かつ/またはテキストモジュール216を特定のリソースに案内することができる。
テキストモジュール216は、数値的に表されたレーティング(たとえば、「5段階評価の1」、「4つ星」など)を用いてまたは用いずに、レビューが肯定または否定のどちらであるのかを判定できる感情検出システムを含むことができる。感情検出システムは、肯定を示す形容詞(たとえば、excellent(優秀な)、good(良い)、great(すごい)、fantastic(素晴らしい)など)を探して、レビューの言語を解析することができる。その後、感情検出システムは、生成されるコンテンツアイテムに含めるために、そのような肯定の句を含むレビューの比較的短い断片を選択しまたは抽出することができる。テキストモジュール216を、図5を参照してより詳細に説明する。
まだ図2を参照すると、メモリ208は、フォントモジュール218を含んで図示されている。フォントモジュール218は、生成されるコンテンツアイテム内での使用のためにフォントまたはフォントファミリを選択することができる。いくつかの実施態様では、ランディングリソース106は、HTML、CSS、またはXMLのfontタグとしてフォント情報を含むことができる。フォントモジュール218は、1つまたは複数のフォント(たとえば、font face、font familyなど)を抽出するために、ランディングリソース106のレンダリングされたDOMツリーを使用することができる。フォントモジュール218は、ランディングリソース106のレンダリングされたDOMツリーから、または直接にランディングリソース106から(たとえば、光学文字認識を使用してなど)フォント情報を抽出することができる。
いくつかの実施態様では、フォントモジュール218は、フォントサイズに基づいて、抽出されたフォントを複数のカテゴリに分離する。たとえば、フォントモジュール218は、大きいフォント(たとえば、20ポイントを超える、16ポイントを超えるなど)の第1のカテゴリと、相対的により小さいフォントの第2のカテゴリとを作成することができる。フォントサイズは、レンダリングされたDOMツリーから、または直接にランディングリソース106から抽出され得る。いくつかの実施態様では、フォントモジュール218は、サードパーティコンテンツアイテム内での使用のために、複数のフォントまたはフォントファミリを選択する。たとえば、フォントモジュール218は、生成されるコンテンツアイテムの見出しフォントとして使用するための第1のフォントと、コンテンツアイテムの説明部分またはボタンテキストのフォントとして使用するための第2のフォントとを選択することができる。
まだ図2を参照すると、メモリ208は、レイアウトモジュール220を含んで図示されている。レイアウトモジュール220は、コンテンツアイテムのレイアウトを生成するのに、選択されたテキスト、イメージ、カラー、およびフォントを使用するように構成され得る。レイアウトモジュール220は、事前定義のレイアウトオプション(たとえば、テンプレートレイアウト)のセットからレイアウトを選択し、または新しいレイアウトを生成する(たとえば、テンプレートに基づかずに)ことができる。レイアウトモジュール220は、イメージモジュール212によって選択されたイメージのディスプレイサイズおよび/またはテキストモジュール216によって選択されたテキストの長さに基づいて、レイアウトを生成することができる。レイアウトモジュール220は、選択されたレイアウトにちょうどおさまるようにイメージのサイズを変更し、かつ/またはテキストを調整し、あるいは、選択されたイメージおよび/またはテキストがちょうどおさまるようにレイアウトを調整することができる。
いくつかの実施態様では、レイアウトモジュール220は、コンテンツアイテムのスタイル、ビジネスカテゴリ、または外見を判定するために、ランディングリソース106から抽出されたビジュアル情報を使用する。たとえば、レイアウトモジュール220は、ランディングリソース106のビジネスカテゴリ(たとえば、ファーストフード、自動車部品など)、ランディングリソース106のスタイル(たとえば、モダンまたは素朴)、およびランディングリソース106上に表示される形状の使用法(たとえば、90度の角、丸められた角など)を判定することができる。レイアウトモジュール220は、ランディングリソース106のURLに基づいてビジネスカテゴリ情報を取り出すために外部データベースを呼び出すことができる。レイアウトモジュール220を、図6を参照してより詳細に説明する。
ここで図3を参照すると、説明される実施態様による、イメージモジュール212をより詳細に示すブロック図が示されている。イメージモジュール212は、イメージ抽出モジュール302、コンテンツ検出モジュール304、イメージ処理モジュール306、およびイメージランキングモジュール308を含んで図示されている。
イメージ抽出モジュール302は、ランディングリソース106および/または他のデータソースからイメージを抽出するように構成され得る。たとえば、イメージ抽出モジュール302は、リソースレンダラ110からランディングリソース106のDOMツリーを受け取ることができる。イメージ抽出モジュール302は、イメージおよびイメージメタデータ(たとえば、イメージURL、ディスプレイ位置、ディスプレイサイズ、代替テキストなど)を識別し、抽出するために、DOMツリーを解析することができる。いくつかの実施態様では、イメージ抽出モジュール302は、他のデータソースからイメージおよびイメージメタデータを抽出する。
イメージ抽出モジュール302がそこからイメージを抽出できる他のデータソースは、使用済みイメージデータベース310およびストックイメージデータベース312を含んで図示されている。使用済みイメージデータベース310は、現在生成されつつあるコンテンツアイテムと同一のランディングリソース106(たとえば、同一のURL、同一のドメインなど)に案内する、以前のコンテンツアイテム内で使用されたイメージのすべてのリポジトリとすることができる。使用済みイメージデータベース310は、コンテンツリクエスタ104によって供給されたイメージおよび/またはコンテンツリクエスタ104によって以前に承認されたイメージを含むことができる。使用済みイメージデータベース310内のイメージは、イメージがその中に含まれた以前のサードパーティコンテンツアイテムに関連するキーワードおよび他のデータなどの追加データ(たとえば、イメージメタデータ)と共に記憶され得る。
ストックイメージデータベース312は、必ずしもコンテンツリクエスタ104に関連せず、ランディングリソース106から抽出されたものでもない様々なイメージのリポジトリとすることができる。ストックイメージデータベース312は、他のリソースから抽出されたか、コンテンツ生成システム114に他の形で供給されたイメージを含むことができる。いくつかの実施態様では、イメージ抽出モジュール302は、現在生成されつつあるコンテンツアイテムに対するデータベース310〜312内のイメージの関連性スコアを判定する(たとえば、キーワードを比較することによってなど)。いくつかの実施態様では、イメージ抽出モジュール302は、関連性スコアしきい値を超える関連性スコアを有するイメージだけを、データベース310〜312から抽出する。使用済みイメージデータベース310および/またはストックイメージデータベース312から抽出されるイメージは、たとえば、ビジネスロゴ(たとえば、商標、サービスマークなど)、宣伝される製品の写真、または他の顕著なイメージを含むことができる。
いくつかの実施態様では、イメージ抽出モジュール302は、ランディングリソース106上に表示されるイメージごとにオンページ突出を判定するのにイメージメタデータを使用する。イメージのオンページ突出は、イメージがランディングリソース106上に表示される際の相対的な重要性または顕著さを示すことができる。イメージ抽出モジュール302は、イメージの垂直配置(たとえば、ページの上部、ページの中央、ページの下部など)、イメージのディスプレイサイズ(たとえば、ディスプレイ高さ、ディスプレイ幅など)、イメージがランディングリソース106上でセンタリングされるかどうか、イメージの周囲の視覚的乱雑さ、および/またはオンページ突出に関係する可能性がある他の属性など、イメージの様々な属性を抽出することができる。
いくつかの実施態様では、イメージ抽出モジュール302は、ロゴイメージを抽出する。ロゴイメージは、商標、ビジネスロゴ、製品ロゴ、会社ロゴ、または特定の製品、サービス、もしくは組織に関連する任意の他のイメージとすることができる。いくつかの実施態様では、イメージ抽出モジュール302は、コンテンツリクエスタ104によって以前にサブミットされたか承認されたロゴイメージを識別するために、データベース310〜312に照会する。いくつかの実施態様では、データベース310〜312は、URLを指定することによってロゴ情報をすばやく取り出すことができるように、URLまたはドメイン名によって編成され得る。たとえば、イメージ抽出モジュール302は、ランディングリソース106のURLを使用してデータベース310〜312を検索することができる。様々な実施態様では、イメージ抽出モジュール302は、ランディングリソース106から(たとえばURLによって)抽出されたイメージのセットから、またはデータベース310〜312内に記憶されたイメージから、ロゴイメージを識別することができる。
いくつかの実施態様では、データベース310〜312は、ランディングリソース106またはランディングリソース106に関連するドメインのロゴ情報を含まないものとされ得る。ロゴ情報が入手可能ではない時には、イメージ抽出モジュール302は、他の技法を使用してロゴイメージを識別することを試みることができる。いくつかの実施態様では、イメージ抽出モジュール302は、特殊なロゴマークアップタグを、ランディングリソース106または抽出されたイメージに関連するメタデータから検索する。特殊なロゴマークアップタグの一例は、
<link rel="example-logo-markup" href="somepath/image.png">
であり、ここで、テキストストリング'example-logo-markup'は、ロゴイメージを識別するキーワードとして使用される。他の実施態様では、異なるテキストストリングまたはキーワードを使用することができる。特定のテキストストリングまたはキーワードは、ランディングリソース106のURL、ランディングリソース106に関連するドメイン、ランディングリソース106に関連するビジネスエンティティ、または任意の他の判断基準に基づいて選択され得る。任意の個数のロゴマークアップキーワードを使用して、潜在的なロゴイメージを識別することができる。イメージ抽出モジュール302は、潜在的なロゴイメージの位置を指定するURLとして、'href'属性値(たとえば、somepath/image.png)を抽出することができる。
いくつかの実施態様では、イメージ抽出モジュール302は、ロゴイメージを識別するために、イメージメタデータ(たとえば、HTMLタグ、URL、ディスプレイ位置、ディスプレイサイズ、代替テキスト、ファイル名、ファイルサイズ)を検索する。たとえば、イメージ抽出モジュール302は、イメージファイル名、代替テキスト、またはタイトル属性内でロゴイメージを示すテキストストリングまたはキーワード(たとえば、"logo")を検索することができる。
イメージ抽出モジュール302は、ランディングリソース106、使用済みイメージデータベース310、および/またはストックイメージデータベース312から抽出されたイメージのリスト、セット、または編集物を生成することができる。いくつかの実施態様では、ランディングリソース106から抽出されたイメージを、イメージデータベース(たとえば、データストレージデバイス112、メモリ208など)に記憶することができる。抽出されたイメージを、各イメージのメタデータおよび突出判断基準に関連して(たとえば、イメージURL、ディスプレイ位置、ディスプレイサイズ、代替テキスト、ファイル名、ファイルサイズなどとして)記憶することができる。イメージ抽出モジュール302によって生成されたイメージのリストと各抽出されたイメージに関連する情報とを使用して、生成されるコンテンツアイテム内に含めるために1つまたは複数のイメージを選択することができる。
まだ図3を参照すると、イメージモジュール212は、コンテンツ検出モジュール304を含んで図示されている。コンテンツ検出モジュール304は、イメージ内の様々なタイプのコンテンツ(たとえば、テキスト、突出したオブジェクト、顔など)の分布、イメージのセマンティックコンテンツ、および/またはイメージの美的品質を検出するために、イメージ抽出モジュール302によって抽出されたイメージを分析するように構成され得る。
いくつかの実施態様では、コンテンツ検出モジュール304は、抽出されたイメージのそれぞれのディスプレイサイズを識別する。あるイメージのディスプレイサイズが、しきいディスプレイサイズ(たとえば、しきい高さ、しきい幅、しきい面積など)未満である場合には、コンテンツ検出モジュール304は、そのイメージを破棄することができる。いくつかの実施態様では、コンテンツ検出モジュール304は、抽出されたイメージのそれぞれのアスペクト比を識別する。あるイメージのアスペクト比が、事前定義のアスペクト比範囲(たとえば、0.2〜5、0.33〜3、0.5〜2など)内ではない場合に、コンテンツ検出モジュール304は、そのイメージを破棄することができる。
コンテンツ検出モジュール304は、コンテンツ分布ディテクタ314、セマンティックコンテンツディテクタ316、および品質ディテクタ318を含んで図示されている。コンテンツ分布ディテクタ314は、イメージ抽出モジュール302によって抽出されたイメージ内のコンテンツの位置、サイズ、および/または分布を検出するように構成され得る。コンテンツ分布ディテクタ314は、カラー、エッジ、顔、およびテキストなど、様々なタイプのイメージコンテンツの分布を検出することができる。
いくつかの実施態様では、コンテンツ分布ディテクタ314は、抽出されたイメージ内で突出したオブジェクトを突き止めるように構成される。突出したオブジェクトは、前景オブジェクト、宣伝されるオブジェクト、または抽出されたイメージ内で顕著さを伴って表示される他のオブジェクトとすることができる。いくつかの実施態様では、コンテンツ分布ディテクタ314は、背景カラーから前景オブジェクトを区別するために、イメージ内のカラーの分布を分析する。コンテンツ分布ディテクタ314は、オブジェクト(たとえば、前景オブジェクト、背景オブジェクト、横に並んだオブジェクトなど)の間の境界を検出するために、抽出されたイメージ内のエッジを識別することができる。他のオブジェクトからの突出したオブジェクトの区別は、イメージの最も意味のあるまたは重要な区域を識別する際に有用である可能性がある。
いくつかの実施態様では、コンテンツ分布ディテクタ314は、抽出されたイメージ内でテキストを検出するように構成される。コンテンツ分布ディテクタ314は、様々なタイプのテキスト(たとえば、見出しテキスト、創作的テキスト、コールトゥアクション(call-to-action)テキスト、広告テキストなど)を検出するために、抽出されたイメージに対して光学文字認識(OCR)を実行することができる。抽出されたイメージの一部自体が、それ自体の創作的テキストを含む広告である場合がある。コンテンツ分布ディテクタ314は、テキストをイメージからクロッピングしまたは除去することができるようにするために、イメージのうちでテキストを含む区域を識別することができる。
いくつかの実施態様では、コンテンツ分布ディテクタ314は、抽出されたイメージのそれぞれの突出マップを生成する。突出マップは、イメージ内のテキスト、顔、および/または前景オブジェクトの位置をマークすることができる。たとえば、テキストまたは顔を有する区域を、長方形のリストによって識別することができる。前景区域を、バイナリビットマップ、線、または境界マーカーを用いて表すことができる。コンテンツ分布ディテクタ314は、イメージ全体に対する相対的な、イメージ内の突出したオブジェクトのサイズを判定することができる。イメージ内で表現される突出したオブジェクトが、イメージ全体のディスプレイサイズと比較して相対的に小さい(たとえば、しきい値より小さい、ディスプレイサイズ全体のあるパーセンテージより小さいなど)場合には、コンテンツ分布ディテクタ314は、そのイメージを破棄するか、生成されるコンテンツアイテムに含めるための候補であるイメージのリストからそのイメージを除去することができる。
まだ図3を参照すると、コンテンツ検出モジュール304は、セマンティックコンテンツディテクタ316を含んで図示されている。セマンティックコンテンツディテクタ316は、イメージのセマンティックコンテンツを検出するために、イメージ抽出モジュール302によって抽出されたイメージを分析するように構成され得る。セマンティックコンテンツの検出は、たとえば、イメージ内で描写されるオブジェクトまたはイメージによって伝えられる意味を識別することを含むことができる。セマンティックコンテンツディテクタ316は、イメージのセマンティックコンテンツを判定するのに、ビジュアル検索サービス(visual search service、VSS)、イメージコンテンツ注釈フロントエンド(image content annotation front end、ICAFE)、および/またはイメージコンテンツ注釈サービス(image content annotation service、ICAS)を使用することができる。そのようなサービスは、イメージ(たとえば、イメージURL、イメージファイルなど)を受け取り、イメージを分析し、イメージ内で描写されるコンテンツを記述する様々なラベル(たとえば、タイトル、キーワード、句など)を出力するように構成され得る。セマンティックコンテンツディテクタ316は、入力イメージに関して生成されるキーワードおよびラベルを洗練するために、異なるモジュール(たとえば、ロゴモジュール、製品モジュールなど)を使用するようにイメージ注釈サービスおよびイメージ検索サービスを構成することができる。
セマンティックコンテンツディテクタ316は、イメージの属性またはタグとして、ラベルまたはキーワードをイメージに割り当てることができる。たとえば、AUDI(登録商標)ブランドの自動車のイメージに関して、セマンティックコンテンツディテクタ316は、キーワード「自動車」、「スポーツカー」、「Audi」、「Audi R8 V10」、またはイメージのコンテンツを定性的に記述する他のキーワードをイメージに割り当てることができる。いくつかの実施態様では、セマンティックコンテンツディテクタ316は、イメージに対するキーワードまたはラベルの推定された正確さまたは関連性を示すスコアに、各キーワードまたはラベルを関連付けることができる。ラベルおよび/またはキーワードは、イメージランキングモジュール308によって、特定のサードパーティコンテンツアイテム、検索照会、および/または電子リソースに対するイメージの関連性を判定するのに使用され得る。
まだ図3を参照すると、コンテンツ検出モジュール304は、品質ディテクタ318を含んで図示されている。品質ディテクタ318は、イメージ抽出モジュール302によって抽出されたイメージの視覚的品質(たとえば、美的品質)を判定するように構成され得る。イメージの視覚的品質は、露出、鮮明さ、コントラスト、カラースキーム、コンテンツ密度、および/またはイメージの他の美的品質など、イメージの視覚的特徴に基づいてイメージに関する人間のビジュアルプリファレンスを表すことができる。
品質ディテクタ318は、コンピュータビジョン、クラスタ化、およびイメージのメタデータを活用することによって、視覚的品質をアルゴリズム的に判定することができる。たとえば、品質ディテクタ318は、人間がラベル付けしたイメージプリファレンスに対してトレーニングされるランキングモデルへの入力としてイメージまたはイメージ特徴を使用することができる。いくつかの実施態様では、品質ディテクタ318は、イメージの美的品質または視覚的品質を識別するために、イメージの特徴を、人間によって以前にスコアリングされたイメージの特徴と比較する。人間によって高くスコアリングされたイメージの特徴とよりよく一致する特徴を有するイメージは、品質ディテクタ318によってより高い品質スコアを割り当てられ得る。人間によって高くスコアリングされたイメージの特徴とは異なる特徴を有するイメージは、品質ディテクタ318によって、より低い品質スコアを割り当てられ得る。
まだ図3を参照すると、イメージモジュール212は、イメージ処理モジュール306を含んで図示されている。イメージ処理モジュール306は、コンテンツアイテム内での使用のためにイメージを準備するために、イメージ抽出モジュール302によって抽出されたイメージを処理するように構成され得る。イメージ処理モジュール306は、入力としてコンテンツ検出モジュール304によって生成されたコンテンツ検出結果を受け取ることができ、処理されたイメージを出力することができる。様々な実施態様では、イメージの処理は、イメージのクロッピング、イメージのフォーマッティング、イメージの質の向上、イメージからのテキストの除去、または自動的に生成されるコンテンツアイテム内での使用のためにイメージを他の形で調整することを含むことができる。イメージ処理モジュール306は、イメージクロッパ320およびイメージエンハンサ322を含んで図示されている。
イメージクロッパ320は、コンテンツ分布ディテクタ314によって検出されたイメージコンテンツの分布に基づいて、抽出されたイメージのそれぞれをクロッピングすべきかどうかを判定するように構成され得る。たとえば、イメージクロッパ320は、突出したオブジェクト(たとえば、前景オブジェクト)、テキスト、顔、および/または他のタイプの検出されるコンテンツを含む各イメージの区域を判定するために、コンテンツ分布ディテクタ314によって生成された突出マップを使用することができる。イメージのうちで突出したオブジェクト、テキスト、および顔を含む部分を、突出マップ内で長方形として表すことができる。イメージクロッパ320は、突出マップによって示されるコンテンツの分布を使用して、各イメージのうちの保存すべき部分と各イメージのうちの破棄すべき部分とを識別することができる。
いくつかの実施態様では、イメージクロッパ320は、各イメージのうちで突出したオブジェクトを含む部分を識別するように構成される。イメージ内の突出したオブジェクトの位置を、突出マップ内のベクトルの対として、コンテンツ分布ディテクタ314によって表すことができる。たとえば、突出したオブジェクトの位置を、イメージ内で長方形を定義する垂直ベクトルおよび水平ベクトルによって示すことができる。イメージクロッパ320は、各イメージ内で突出したオブジェクトを含む1つまたは複数の長方形のサイズおよび位置を判定することができる。複数の突出したオブジェクトを含むイメージに関して、イメージクロッパ320は、突出したオブジェクトのうちで保存すべき1つまたは複数と突出したオブジェクトのうちで破棄すべき1つまたは複数とを選択することができる。いくつかの実施態様では、イメージクロッパ320は、複数の突出したオブジェクトを含む1つの長方形を生成する。イメージクロッパ320によって生成される長方形は、複数の突出したオブジェクトを含む可能な最小の長方形とすることができる。
いくつかの実施態様では、イメージクロッパ320は、イメージのディスプレイサイズ全体に対する相対的な、突出したオブジェクトを含む長方形のサイズ(たとえば、ディスプレイサイズ全体のパーセンテージとして、イメージの全面積の比率としてなど)を判定する。いくつかの実施態様では、イメージクロッパ320は、突出したオブジェクトを含む長方形の辺(たとえば、上辺、下辺、横辺など)とイメージのエッジとの間の間隔の量を判定する。たとえば、イメージクロッパ320は、突出したオブジェクトを含む長方形の辺とイメージのエッジとの間の距離(たとえば、ピクセル数など)を識別することができる。イメージクロッパ320は、長方形の各辺とイメージの対応するエッジとの間の距離(たとえば、長方形の上辺とイメージの上エッジとの間の距離、長方形の下辺とイメージの下エッジとの間の距離など)を判定することができる。
イメージクロッパ320は、イメージ内の突出したオブジェクトのサイズおよび位置に基づいて、イメージをクロッピングすべきかどうかを判定することができる。イメージごとに、イメージクロッパ320は、イメージのディスプレイサイズに基づいて面積しきい値を計算することができる(たとえば、ディスプレイサイズの80%、ディスプレイサイズの66%など)。突出したオブジェクトを含む長方形が、面積しきい値を超える面積を有する場合には、イメージクロッパ320は、そのイメージをクロッピングしてはならないと判定することができる。突出したオブジェクトを含む長方形が、面積しきい値未満の面積を有する場合には、イメージクロッパ320は、そのイメージをクロッピングしなければならないと判定することができる。いくつかの実施態様では、イメージクロッパ320は、突出したオブジェクトが、イメージの約1/3未満の面積を占める場合に、イメージをクロッピングしなければならないと判定する。
イメージクロッパ320は、突出したオブジェクトを含まないイメージコンテンツの一部またはすべてを除去するために、イメージをクロッピングすることができる。たとえば、イメージクロッパ320は、突出したオブジェクトを含む長方形だけが残るように、イメージをクロッピングすることができる。いくつかの実施態様では、イメージクロッパ320は、突出したオブジェクトの長方形と突出したオブジェクトの長方形の周囲の境界とを含むようにイメージをクロッピングする。
いくつかの実施態様では、イメージクロッパ320は、イメージからテキストをクロッピングするように構成される。イメージクロッパ320は、コンテンツ分布ディテクタ314によって生成された突出マップを使用して、各イメージのうちでテキストを含む部分を識別することができる。たとえば、イメージクロッパ320は、イメージ内のテキストの位置を示す1つまたは複数の長方形を識別することができる。いくつかの実施態様では、イメージクロッパ320は、イメージのうちで突出したオブジェクトを含む区域とイメージのうちでテキストを含む区域とに基づいて、イメージのうちで保存すべき部分を判定する。たとえば、イメージクロッパ320は、イメージのうちで突出したオブジェクトを含む部分を保存しながら、イメージのうちでテキストを含む部分を破棄することができる。イメージクロッパ320は、突出したオブジェクトを含む1つまたは複数の長方形を含むがテキストを含む長方形を含まない長方形を生成することによって、イメージからテキストをクロッピングすることができる。いくつかの実施態様では、イメージクロッパ320は、イメージクロッパ320によって生成される長方形内のイメージコンテンツ(たとえば、突出したオブジェクト、顔など)だけを含むように、イメージをクロッピングする。
いくつかの実施態様では、イメージクロッパ320は、イメージスプライトからロゴイメージをクロッピングするように構成される。たとえば、イメージ抽出モジュール302によって抽出されたイメージのうちのいくつかが、個々のボタンイメージまたはロゴイメージの組合せまたは編集物である場合がある(たとえば、格子状に複数のロゴを含む縫い合わされたキャンバス)。イメージクロッパ320は、ロゴイメージだけが残るように、イメージスプライト内のロゴイメージの位置を判定し、イメージスプライトをクロッピングするように構成され得る。
まだ図3を参照すると、イメージ処理モジュール306は、イメージエンハンサ322を含んで図示されている。イメージエンハンサ322は、生成されるコンテンツアイテム内での使用のために、イメージ抽出モジュール302によって抽出されたイメージの質を高め、またはそのイメージを最適化するように構成され得る。イメージの質を高めることまたはイメージの最適化は、たとえば、イメージのエッジを丸めること、イメージに照明効果を追加すること、イメージにテクスチャまたは奥行きを追加すること、および/またはイメージの視覚的影響の質を高めるために他の効果を適用することを含むことができる。
いくつかの実施態様では、イメージエンハンサ322は、ロゴイメージを識別するのに、コンテンツ検出モジュール304によって作られたコンテンツ検出結果を使用する。いくつかのロゴイメージが、平坦で単純なロゴとしてイメージ抽出モジュール302によって抽出される場合がある。たとえば、ランディングリソース106は、ロゴがユーザデバイス108によってレンダリングされる時に平坦/単純なロゴの外見を変更するのに、CSSまたは別のコンテンツマークアップ方式に頼ることができる。イメージエンハンサ322は、ロゴに3次元に見えるようにさせること、奥行きまたは照明効果を追加すること、角を丸めること、ロゴにボタンに見えるようにさせること、モバイルデバイス上の表示のためにロゴを最適化すること、またはロゴの視覚的影響を改善するために他の形でロゴを調整することによって、平坦/単純なロゴを最適化されたロゴに変換するためにロゴイメージを処理することができる。イメージ処理モジュール306は、処理されたイメージをデータストレージデバイス内に記憶することができる。
まだ図3を参照すると、イメージモジュール212は、イメージランキングモジュール308を含んで図示されている。イメージランキングモジュール308は、イメージのうちのどれを生成されるコンテンツアイテム内に含めるべきかを判定するために、様々なイメージをランキングするように構成され得る。イメージランキングモジュール308は、オンページ突出カリキュレータ324およびイメージコンテンツエバリュエータ326を含んで図示されている。
オンページ突出カリキュレータ324は、イメージがランディングリソース106上に表示される際の相対的な重要性または顕著さに基づいて、イメージ抽出モジュール302によって抽出されたイメージのそれぞれに突出スコアを割り当てるように構成され得る。たとえば、あるイメージの突出スコアは、アイテムの垂直配置(たとえば、ページの上部、ページの中央、ページの下部など)、イメージのディスプレイサイズ(たとえば、ディスプレイ高さ、ディスプレイ幅など)、イメージがランディングリソース106上でセンタリングされるかどうか、および/または他のイメージ突出スコアリング判断基準に依存する可能性がある。
オンページ突出カリキュレータ324によって使用され得るイメージ突出スコアリングアルゴリズムの一例は、
突出=α*sigmoid1(positiony,y0,dy)+β*sigmoid2(width,w0,dsize)*sigmoid2(height,h0,dsize)+δ*central_alignment
である。いくつかの実施態様では、α、β、およびδは、すべてが正であり、合計が1.0になる。Sigmoid1(positiony,y0,dy)は、positiony=0(たとえば、ランディングリソース106の最上部)での1.0からpositiony=∞(たとえば、ランディングリソース106の最下部、ランディングリソース106の最上部から非常に遠いなど)での0.0までの範囲にわたるシグモイド関数とすることができる。y0は、Sigmoid1=0.5である点とすることができ、dyは、y0の付近でのシグモイド関数の傾きを制御することができる。Sigmoid2は、(1-Sigmoid1)と定義することができ、central_alignmentは、イメージがランディングリソース106上で中央に整列される(たとえば、水平にセンタリングされる)かどうかの尺度とすることができる。central_alignmentは、イメージが完全にセンタリングされる場合に1.0とすることができ、イメージの中央とランディングリソース106の水平方向の中央との間の距離に基づいて減少するものとすることができる。
イメージコンテンツエバリュエータ326は、イメージ抽出モジュール302によって抽出されたイメージをランキングすることができる。いくつかの実施態様では、ランキングは、各イメージに割り当てられた突出スコアに基づく。突出スコアは、抽出されたイメージのそれぞれに関するコンテンツリクエスタ104のプリファレンスを示すことができ、どのイメージがコンテンツリクエスタ104によって承認される可能性が最も高いのかを判定する際の貴重なメトリックである可能性がある。突出スコアは、イメージがランディングリソース106上で宣伝されるコンテンツにどれほどよく対応するのかを示すこともできる。
いくつかの実施態様では、イメージコンテンツエバリュエータ326は、イメージに関連する様々な関連性判断基準に基づいて、イメージをランキングする。たとえば、イメージコンテンツエバリュエータ326は、各イメージに関連性スコアを割り当てるのに、関連性判断基準を使用することができる。イメージコンテンツエバリュエータ326は、イメージ(たとえば、イメージメタデータ、イメージコンテンツなど)を、ランディングリソース106または自動的に生成されるコンテンツアイテムのURLに基づくキーワードのリストと比較することによって、イメージの関連性スコアを判定することができる。たとえば、キーワードのリストを、ビジネス分類、ビジネスタイプ、ビジネスカテゴリ、またはランディングリソース106に関連するビジネスもしくはエンティティの他の属性に基づくものとすることができる。いくつかの実施態様では、キーワードのリストを、生成されるコンテンツアイテムのタイトルまたはコンテンツアイテムの他の属性(たとえば、キャンペーン、広告グループ、宣伝される製品など)に基づくものとすることができる。関連性スコアは、特定のイメージが、自動的に生成されるコンテンツアイテム内で宣伝されるビジネス、製品、またはサービスを表す尤度を示すことができる。
いくつかの実施態様では、コンテンツエバリュエータ326は、イメージをランキングする前に、1つまたは複数のしきい値テストを実行する。たとえば、コンテンツエバリュエータ326は、品質ディテクタ318によって各イメージに割り当てられた品質スコアを、しきい品質スコアと比較することができる。あるイメージの品質スコアが、しきい品質スコア未満である場合に、イメージランキングモジュール308は、そのイメージを破棄することができる。コンテンツエバリュエータ326は、抽出され処理されたイメージのそれぞれのディスプレイサイズをしきいディスプレイサイズと比較することができる。あるイメージのディスプレイサイズが、しきいディスプレイサイズ未満である場合に、イメージランキングモジュール308は、そのイメージを破棄することができる。
いくつかの実施態様では、イメージコンテンツエバリュエータ326は、イメージの複数のリストを生成する。イメージコンテンツエバリュエータ326によって生成される1つのリストを、ロゴイメージのリストとすることができる。イメージコンテンツエバリュエータ326によって生成されるもう1つのリストを、ランディングリソース106から抽出された製品イメージおよび/または顕著なイメージのリストとすることができる。イメージコンテンツエバリュエータ326によって生成されるもう1つのリストを、コンテンツリクエスタ104によって以前に使用され、かつ/または承認されたイメージ(たとえば、使用済みイメージデータベース310から抽出されたイメージ)のリストとすることができる。イメージのリストは、イメージ幅、イメージ高さ、突出スコア、関連性スコア、または他のイメージ情報など、各イメージに関連する属性を含むことができる。イメージコンテンツエバリュエータ326は、イメージに割り当てられた突出スコアおよび/または関連性スコアに従って、リスト内のイメージを配置することができる。イメージのリストは、自動的に生成されるコンテンツアイテム内に含めるためのイメージを選択するのに、レイアウトモジュール220によって使用され得る。
ここで図4を参照すると、説明される実施態様による、カラーモジュール214のブロック図が示されている。カラーモジュール214は、自動的に生成されるコンテンツアイテムのカラースキームを生成することができる。カラーモジュール214は、コンテンツアイテムの背景、見出し、説明、ボタン背景、および/またはボタンテキストのカラーを選択することができる。有利なことに、カラースキームは、ランディングリソース106上に表示されるカラーに対応する1つまたは複数のカラーを含むことができる。カラーモジュール214は、カラーエクストラクタ402およびカラースキームセレクタ404を含んで図示されている。
いくつかの実施態様では、カラーエクストラクタ402は、リソースレンダラ110からランディングリソース106のレンダリングされたDOMツリーを受け取る。DOMツリーは、カラーエクストラクタ402に、イメージ、背景カラー(たとえば、16進カラーコード、カラー名など)、テキストカラー、および/またはランディングリソース106上に表示される他のアイテムを与えることができる。カラーエクストラクタ402は、DOMツリーによって供給される情報に基づいて、ランディングリソース106の支配的なカラーを推定することができる。
いくつかの実施態様では、カラーエクストラクタ402は、リソースレンダラ110からランディングリソース106のスナップショットイメージを受け取る。スナップショットイメージは、レンダリングされたDOMツリーに加えてまたはその代わりに受け取られ得る。有利なことに、スナップショットイメージは、カラーエクストラクタ402に、DOMツリーの分析から簡単には明白にならない補足的なカラー情報を与えることができる。たとえば、スナップショットイメージは、HTML要素の実際のディスプレイサイズおよびJavaScript(登録商標)によってレンダリングされるスタイル情報を含む、ランディングリソース106の視覚的外見を正確に示すことができる。スナップショットイメージは、ランディングリソース106のレンダリングされた外見を示すイメージファイル(たとえば、.png、.bmp、.jpgなど)として受け取られ得る。
カラーエクストラクタ402は、スナップショットイメージから支配的なカラーを抽出することができる。いくつかの実施態様では、カラーエクストラクタ402は、k平均法などのクラスタ化技法を使用して、スナップショットイメージから支配的なカラーを抽出する。たとえば、カラーエクストラクタ402は、スナップショットイメージの各ピクセルを独立のカラー測定(たとえば、独立のk平均観察)として扱うことができる。各ピクセルのカラーを、光の原色(たとえば、赤、緑、および青)ごとに0の彩度(たとえば、0)から完全な彩度(たとえば、255)までの範囲にわたるRGBカラー値を使用して表すことができる。カラーエクストラクタ402は、初期クラスタ平均として事前定義のカラーのセット(たとえば、RGB(0,0,0)、RGB(255,0,0)、RGB(0,255,0)、RGB(0,0,255)、RGB(255,255,0)、RGB(255,0,255)、RGB(0,255,255)、RGB(255,255,255)など)を使用し、各ピクセルを、そのピクセルのRGBカラー値に最も近い平均値を有するクラスタに割り当てることができる。
たとえば、各ピクセルのRGBカラー値を、次式、|Rmean-Rpixel|+|Gmean-Gpixel|+|Bmean-Bpixel|=差、を使用して各クラスタ平均値と比較することができる。いくつかの実施態様では、ピクセルのRGBカラー値と最も近いクラスタ平均値との間の差がしきい値を超える(たとえば、|Rmean-Rpixel|+|Gmean-Gpixel|+|Bmean-Bpixel|>しきい値)場合に、新しい平均値を作成することができる。各ピクセルを、最も近いクラスタ(たとえば、そのピクセルのカラー値に最も近い平均値を有するクラスタ)に割り当てた後に、各平均クラスタ値を、各クラスタ内のピクセルのRGBカラー値に基づいて再計算することができる。いくつかの実施態様では、クラスタが定常平均値に収束するまで、または反復のしきい回数を実行し終えるまで、最も近いクラスタにピクセルを再割当することによって、連続する反復を実行することができる。
カラーエクストラクタ402は、各クラスタ内のピクセル数に基づいて、洗練されたカラークラスタをランキングすることができる。たとえば、最も多数のピクセルを有するカラークラスタを、最も支配的なカラーを表すものとしてランキングすることができ、2番目に多数のピクセルを有するカラークラスタを、2番目に支配的なカラーを表すものとしてランキングすることができるなどである。いくつかの実施態様では、カラーエクストラクタ402は、スナップショットイメージ内のピクセルの総数に対する相対的な、対応するカラークラスタ内のピクセル数に基づいて、各カラーに重みを割り当てることができる。カラーエクストラクタ402は、各カラーの重みまたは支配ランキングと一緒に、抽出されたカラー(たとえば、RGB値)のリストを生成することができる。
有利なことに、k平均法は、スナップショットイメージ内のピクセル数の二乗の関数として時間複雑性において増加はしない(たとえば、time_complexity≠K*n2 pixels)カラー抽出技法を提供することができる。その代わりに、k平均法は、ピクセル数にクラスタ化反復の回数を乗じたものに比例する時間複雑性を有する(たとえば、time_complexity=K*npixels*反復)。k平均法に関するピクセル数と時間複雑性との間の線形関係は、特に比較的大きいスナップショットイメージからカラーを抽出する時に、他のカラー抽出技法に対して改善された計算時間をもたらすことができる。
いくつかの実施態様では、カラーエクストラクタ402は、スナップショットイメージから支配的なカラーを抽出する前に、広告および/または他のサードパーティコンテンツをフィルタリングする。たとえば、カラーエクストラクタ402は、サードパーティコンテンツプロバイダのリストを維持しまたは受け取ることができる。カラーエクストラクタ402は、サードパーティコンテンツプロバイダから発するコンテンツアイテムに関してレンダリングされたDOMツリーを解析し、そのようなサードパーティコンテンツならびに任意の従属コンテンツをレンダリングされたDOMツリーから除去することができる。カラーエクストラクタ402は、サードパーティコンテンツアイテムのランタイム位置およびディスプレイサイズに基づいて、スナップショットイメージからそのようなコンテンツを除去することもできる。
まだ図4を参照すると、カラーモジュール214は、カラースキームセレクタ404を含んでさらに図示されている。カラースキームセレクタ404は、自動的に生成されるコンテンツアイテムのカラースキームを生成するのに、カラーエクストラクタ402によって判定されたカラーを使用することができる。カラースキームセレクタ404は、生成されるコンテンツアイテムの背景カラー、ボタンカラー、見出しカラー、説明カラー、ボタンテキストカラー、または他の部分のカラーを選択することができる。カラースキームセレクタ404は、各抽出されたカラーの彩度、輝度、目立ちやすさ(noticeability)、および/または他の属性ならびに抽出されたカラーのそれぞれの間のコントラストを判定することができる。
いくつかの実施態様では、カラースキームセレクタ404は、コンテンツアイテムの背景カラーとして、カラーエクストラクタ402によって抽出された最も支配的なカラー(たとえば、最大の重みを有する、最高の支配ランキングなど)を選択することができる。カラースキームセレクタ404は、コンテンツアイテムのボタンカラーとして、最大の彩度と重みとの積(たとえば、max(彩度*重み))を有する抽出されたカラーを選択することができる。カラースキームセレクタ404は、見出しおよび説明テキストのカラーとして、選択された背景色に関する最大のコントラストおよび/または輝度の差を有するカラーを選択することができる。3つ以上のカラーが使用可能である場合には、カラースキームセレクタ404は、見出しカラーとして最も目立つカラーを選択することができる。
他の実施態様では、カラースキームセレクタ404は、コンテンツアイテムの事前定義のカラースキームを選択することができる。カラーエクストラクタ402によって抽出されたカラーを直接に適用するのではなく、事前定義のカラースキームを使用して、生成されるコンテンツアイテムの背景カラー、ボタンカラー、見出しカラー、説明カラー、ボタンテキストカラー、または他の部分を選択することができる。事前定義のカラースキームは、カラーテンプレートまたはカラーグループに以前に組み立てられたカラーの組合せとすることができる。いくつかの実施態様では、事前定義のカラースキームを、カラーエクストラクタ402によって抽出されたカラーに基づいて、事前定義のカラースキームのセットから選択することができる。たとえば、カラースキームセレクタ404は、カラーエクストラクタ402によって抽出されたカラーを、複数の事前定義のカラースキーム内に含まれるカラーと比較することができる。カラースキームセレクタ404は、カラーエクストラクタ402によって抽出されたカラーのうちの1つまたは複数と事前定義のカラースキーム内に含まれるカラーのうちの1つまたは複数との間の差(たとえば、RGB値、彩度、輝度、コントラストなど)に基づいて、事前定義のカラースキームをランキングすることができる。事前定義のカラースキームからのカラーは、自動的に生成されるコンテンツアイテム内でカラーエクストラクタ402によって識別されたカラーを増補しまたは置換することができる。
ここで図5を参照すると、説明される実施態様による、テキストモジュール216のブロック図が示されている。いくつかの実施態様では、テキストモジュール216は、コンテンツ生成システム114によって生成されるディスプレイコンテンツのテキスト部分(たとえば、テキスト説明、見出しなど)を自動的に作成するのに使用され得る。他の実施態様では、テキストモジュール216は、純テキストコンテンツアイテムを独立に生成するのに使用され得る。有利なことに、テキストモジュール216は、コンテンツアイテムの「創作的」部分(たとえば、テキストベースの説明、説得力のあるテキスト、肯定的感情など)を自動的に生成し、これによって、コンテンツプロバイダが、創作的なものを記述するのに時間を費やすか、創作的なものを展開するためにコピーライタを雇う必要をなくすことができる。テキストモジュール216は、レビューロケータ502、感情ディテクタ504、およびテキストセレクタ506を含んで図示されている。
いくつかの実施態様では、テキストモジュール216は、ランディングリソース106上に表示されるテキストの要約を作成するのに、ランディングリソース106のDOMツリーまたはスナップショットイメージを使用する。たとえば、テキストモジュール216は、リソースレンダラ110からレンダリングされたDOMツリーを受け取り、ランディングリソース106上に表示されるテキスト情報を抽出することができる。他の実施態様では、テキストモジュール216は、ランディングリソース106以外のソースからテキストデータを入手する。たとえば、テキストモジュール216は、ビジネス、製品、またはサービスのユーザによって作成されたレビューからテキストデータを受け取ることができる。
まだ図5を参照すると、テキストモジュール216は、レビューロケータ502を含んで図示されている。レビューロケータ502は、ユーザによって作成されたレビューをレビューデータベース508から検索することができる。いくつかの実施態様では、レビューは、ビジネス全体にあてはまる場合がある。他の実施態様では、レビューは、ランディングリソース106に関連する特定の製品またはサービス(たとえば、ランディングリソース106上で宣伝され、表示され、提示されるなど)にあてはまる場合がある。レビューデータベース508は、ユーザが特定のビジネスに関するコメントをポストし、レビューをサブミットし、製品および/もしくはサービスを評価し、または他の形で彼らの意見を通信することを許可されるインターネットリソース(たとえば、ウェブサイト)とすることができる。たとえば、レビューデータベース508は、Google+ Local、ZAGAT、YELP、URBANSPOONなどのウェブサイト、またはユーザによって作成されたレビューがそれを介して入手される他のリソースとすることができる。
いくつかの実施態様では、レビューロケータ502は、そのようなレビューを突き止め、かつ/またはテキストモジュール216を特定のビジネスのレビューに専用の特定のリソースまたはリソースの一部に案内するのに、ランディングリソース106のURLを使用することができる。たとえば、ランディングリソース106のURLを使用して、レビューデータベース508のうちで、ランディングリソース106に関連するビジネスエンティティに関するレビューを入手することのできる部分を指定することができる。いくつかの実施態様では、レビューロケータ502は、ランディングリソース106によって識別されるビジネスに関するユーザによって作成されたレビューを、複数のリソースから検索することができる。いくつかの実施態様では、レビューロケータ502は、さらなる分析のためにテキストレビューを生成するために、オーディオベースまたはビデオベースのレビューを文字に置き換えることができる。
まだ図5を参照すると、テキストモジュール216は、さらに、感情ディテクタ504を含んで図示されている。感情ディテクタ504は、数値的に表されたレーティング(たとえば、「5段階評価の1」、「4つ星」など)を用いてまたは用いずに、レビューが肯定または否定のどちらであるのかを判定するように構成され得る。感情ディテクタ504は、全体的に肯定の感情を示す形容詞(たとえば、excellent、good、great、fantasticなど)を探して、レビューの言語を解析することができる。感情ディテクタ504は、全体的に肯定の感情を表すレビューを識別するために、レビューの一部、レビューのテキスト全体、または数値的に表されたレーティングに関連するレビューのテキストを分析することができる。
テキストセレクタ506は、孤立して読まれる時に、レビューをサブミットしたユーザがレビューされるビジネス、製品、またはサービスに関する肯定の経験を何故有したのかを有効に通信する「断片」(たとえば、句、テキストストリング、部分など)をレビューから検索することができる。「断片」は、レビューに関連する感情を識別する際に感情ディテクタ504によって使用される肯定の形容詞のうちの1つまたは複数を含むことができる。たとえば、テキストセレクタ506は、イタリアンレストランの比較的長々しいレビューから断片「excellent pasta and speedy service(素晴らしいパスタとすばやいサービス)」を選択することができる。いくつかの実施態様では、テキストセレクタ506によって識別されるテキスト断片を、純テキストコンテンツアイテム内での使用のための潜在的な「創作的なもの」(たとえば、説明テキスト)としてコンテンツリクエスタ104に提示することができる。他の実施態様では、テキスト断片を、コンテンツ生成システム114によって生成される1つまたは複数のディスプレイコンテンツアイテムのテキスト部分として使用することができる。
ここで図6を参照すると、説明される実施態様による、レイアウトモジュール220のブロック図が示されている。レイアウトモジュール220は、自動的に生成されるコンテンツアイテムのレイアウトを生成することができる。レイアウトモジュール220は、イメージモジュール212からロゴイメージのリストと製品イメージ/顕著なイメージのリストとを受け取ることができる。イメージの各リストは、複数のイメージを識別し、各イメージをランキングする(たとえば、突出スコア、関連性スコアなどを用いて)ことができる。レイアウトモジュール220は、さらに、カラーモジュール214から1つまたは複数の選択されたカラースキームを受け取り、フォントモジュール218から1つまたは複数の選択されたフォントファミリを受け取ることができる。選択されたカラースキームおよび選択されたフォントファミリを、それぞれに割り当てられたスコアと共に受け取ることができる。レイアウトモジュール220は、さらに、テキストモジュール216からテキスト断片の選択物を受け取ることができる。選択されたテキスト断片は、任意の長さを有することができ、任意の個数の断片を含むことができる。
いくつかの実施態様では、レイアウトモジュール220は、リソースレンダラ110からランディングリソース106のスナップショットイメージを受け取ることができる。レイアウトモジュール220は、ランディングリソース106のスタイル(たとえば、モダン、素朴など)および/または視覚的外見(たとえば、形状の使用法、四角い角、丸められた角など)を判定するのに、スナップショットイメージを使用することができる。レイアウトモジュール220は、ランディングリソース106のビジネス情報を入手するために、ビジネスデータベース606を呼び出すことができる。ビジネス情報は、ランディングリソース106に関連するビジネスのカテゴリ(たとえば、ファーストフード、自動車部品など)ならびに関連するビジネスの他の属性を指定することができる。
まだ図6を参照すると、レイアウトモジュール220は、レイアウトジェネレータ602を含んで図示されている。レイアウトジェネレータ602は、識別されたイメージ、テキスト断片、カラースキーム、およびフォントファミリに基づいて、コンテンツアイテムのレイアウトを生成することができる。たとえば、レイアウトジェネレータ602は、コンテンツアイテムのレイアウトを生成するのに、イメージモジュール212によって識別されたイメージのディスプレイサイズ(たとえば、高さ、幅など)ならびにテキストモジュール216によって識別されたテキスト断片の長さを使用することができる。
いくつかの実施態様では、レイアウトジェネレータ602は、事前定義のレイアウトオプション(たとえば、テンプレートレイアウト)のセットからレイアウトを選択する。テンプレートレイアウトは、コンテンツアイテムのテキスト、イメージ、アクションボタン、および/または他の特徴の事前定義の位置とディスプレイサイズとを含むことができる。レイアウトジェネレータ602は、選択されたレイアウトにおさまるようにイメージのサイズを変更し、かつ/またはテキストを調整することができる。他の実施態様では、レイアウトジェネレータ602は、コンテンツアイテムのために新しいレイアウトを作成する。有利なことに、新しいレイアウトは、テンプレートまたは事前定義のデザインに基づかないものとされ得、これによってユニークな外見のコンテンツアイテムをもたらす。非テンプレートレイアウトデザインを、図7〜図12を参照してより詳細に説明する。
まだ図6を参照すると、レイアウトモジュール220は、さらに、レイアウトスコアラ604を含んで図示されている。レイアウトスコアラ604は、レイアウトジェネレータ602によって生成される様々なレイアウトに数値スコアを割り当てることができる。コンテンツアイテムの全体的なスコアは、コンテンツアイテム内で使用される選択されたイメージ、テキスト断片、カラー、およびフォントの個々のスコア(たとえば、イメージ突出、カラークラスタ重みなど)に基づくものとすることができる。いくつかの実施態様では、割り当てられるスコアは、コンテンツアイテム内で空間がどれほど効率的に使用されているのか(たとえば、利用される空間に対する空の空間の比率)、選択されたイメージおよび選択されたテキストが生成されるレイアウトにどれほどよくおさまっているのか(たとえば、イメージに適用されるクロッピングまたはストレッチングの度合)、選択されたイメージ内のカラーがコンテンツアイテム内に表示される他のカラーにどれほどよくマッチしているのか、テキストの可読性(たとえば、テキストカラーと背景カラーとの間のコントラスト、sans-serifフォントの使用量など)、および/または他の美的判断基準(たとえば、「黄金比」の使用量、コンテンツアイテムの外周の周囲のパディング、イメージとテキストとコンテンツアイテムの他のコンポーネントとの間の間隔など)に基づくものとすることができる。スコアリング判断基準は、さらに、コンテンツアイテム内のイメージ、テキスト、およびアクションボタンの相対位置を含むことができる。たとえば、コンテンツアイテムの右上角からコンテンツアイテムの左下角へ降順で配置されたイメージ、テキスト、およびアクションボタンを有するコンテンツアイテムに、より高いスコアを割り当てることができる。
ここで図7〜図12を参照すると、説明される実施態様による、複数の非テンプレートレイアウトデザインが示されている。非テンプレートレイアウトデザインは、柔軟なレイアウト生成判断基準のセットに基づくものとすることができる。有利なことに、柔軟なレイアウト生成判断基準は、コンテンツ生成システム114のモジュール212〜220によって選択されるイメージ、テキスト断片、フォント、およびカラーの属性に適応するレイアウトをもたらすことができる。この適応レイアウト判断基準は、特定のランディングリソースに合わせて調整されたユニークな外見のコンテンツアイテム(たとえば、テンプレートに基づかない)をもたらすことができる。
たとえば、特に図7を参照すると、レイアウトジェネレータ602は、特に高スコアリングのイメージ(たとえば、しきい値を超える突出スコアまたは関連性スコアを有するイメージ)がイメージモジュール212によって供給される時に、「半々」レイアウト700を作成することができる。レイアウト700は、第1の半分710および第2の半分720を含んで図示されている。半分710は、高スコアリングのイメージ712の表示専用とすることができ、半分720は、見出しテキスト(たとえば、テキストボックス722)、説明テキスト(たとえば、テキストボックス724)、および/またはアクションボタン726の表示に使用され得る。見出しテキスト722および説明テキスト724は、ランディングリソース106から、またはユーザによって作成されたビジネスレビュー、製品レビュー、もしくはサービスレビューから抽出され得る。アクションボタン726は、生成されたコンテンツアイテムをクリックするようにユーザを誘う「コールトゥアクション」テキスト(たとえば、「ここをクリック(click here)」、「今すぐ買う(buy now)」、「続きを読む(read more)」など)を含むことができる。
いくつかの実施態様では、テキストボックス722および724とアクションボタン726との相対サイズを、テキストモジュール216によって選択されたテキスト断片の長さおよび/またはフォントモジュール218によって選択されたフォントに基づいて調整することができる。半分710上に表示されるイメージのサイズを、半分710の寸法におさまるように変更する(たとえば、クロッピングする、ストレッチングする、圧縮するなど)ことができる。いくつかの実施態様では、半分710を、半分720の左側に位置決めすることができる。他の実施態様では、半分710を、半分720の右側(たとえば、ランドスケープコンテンツアイテムのために)または半分720の上/下(たとえば、ポートレートコンテンツアイテムのために)に位置決めすることができる。
ここで図8を参照すると、レイアウトジェネレータ602は、大きいディスプレイサイズを有するイメージがイメージモジュール212によって供給される時に、「テキストオーバーレイ」レイアウト800を作成することができる。レイアウト800は、見出しテキスト810、説明テキスト820、アクションボタン830、および背景イメージ840を含んで図示されている。見出しテキスト810および説明テキスト820は、背景イメージ840が提示されるテキストの背後で可視になるように、透明または半透明のテキストボックス812および822内に含められ得る。いくつかの実施態様では、テキストボックス812および822は、テキスト810および820のカラーと背景イメージ840との間のコントラストを提供するために、半透明にシェーディングされ得る。半透明のシェーディングは、背景イメージ840の上にオーバーレイされた時の、提示されるテキスト810および820の可読性を改善することができる。見出しテキスト810または説明テキスト820のカラーが暗い(たとえば、黒、茶色、紺青など)レイアウトに関して、テキストボックス812および/または822を、白または別の明るい色でシェーディングすることができる。アクションボタン830は不透明、透明、または半透明にシェーディングされ得る。レイアウト800は、実質的に背景イメージ840のサイズを変更せず、これをクロッピングすることもなしに、大きい背景イメージ840を表示することを可能にすることができる。見出しテキスト810、説明テキスト820、およびアクションボタン830のディスプレイサイズおよびディスプレイ位置は、テキストモジュール216によって選択されたテキスト断片の長さとフォントモジュール218によって選択されたフォントファミリとに基づいて調整され得る。
ここで図9を参照すると、レイアウトジェネレータ602は、高スコアリングのイメージがイメージモジュール212によって供給され、テキストモジュール216によって選択されたテキスト断片が相対的に短い時に、「傾斜テキスト」レイアウト900を作成することができる。レイアウト900は、見出しテキスト910、説明テキスト920、および背景イメージ930を含んで図示されている。背景イメージ930は、コンテンツアイテムの空間全体を満たすことができ、これによって、コンテンツアイテム内で宣伝される製品、サービス、またはビジネスの相対的に大きい描写を提供する。見出しテキスト910および説明テキスト920を、背景イメージ930上にオーバーレイすることができる。テキスト910および920を、コンテンツアイテムのエッジに対して相対的に傾けることができる。見出しテキスト910および説明テキスト920は、テキスト910および920のカラーと背景イメージ930のカラーとの間のコントラストを提供するために、透明または半透明のテキストボックス912および922内に含められ得る。半透明のシェーディングは、背景イメージ930の上にオーバーレイされた時の提示されるテキスト910および920の可読性を改善することができる。
ここで図10を参照すると、レイアウトジェネレータ602は、「ぼかされた背景」レイアウト1000を作成することができる。レイアウト1000は、見出しテキスト1010、説明テキスト1020、およびぼかされた背景イメージ1030を含んで図示されている。見出しテキスト1010は、単語「見出しの例」を含んで図示されている。いくつかの実施態様では、レイアウトジェネレータ602は、テキストモジュール216によって供給されるテキスト断片からつなぎ言葉を検索することができる。つなぎ言葉は、テキスト断片の2つの部分をリンクする、「in」、「on」、「for」、「of」、「and」その他などの短い単語とすることができる。レイアウトジェネレータ602は、つなぎ言葉のスタイルを決定し(たとえば、斜体、太字、強調など)、かつ/またはつなぎ言葉をコンテンツアイテム内の別々の行に配置することができる。背景イメージ1030は、ぼかされ、おぼろにされ、または他の形で曖昧にされ得る。有利なことに、背景イメージ1030をぼかすことは、読者の注意をコンテンツアイテムのテキスト部分に集中させることができる。見出しテキスト1010および説明テキスト1020のフォントは、ランディングリソース106から抽出されたフォントに基づいて、フォントモジュール218によって指定され得る。
ここで図11A〜図11Dを参照すると、レイアウトジェネレータ602は、選択されたイメージおよびテキスト断片のディスプレイサイズがコンテンツアイテム全体を埋めない時に、柔軟なレイアウト1100を作成することができる。たとえば、レイアウトジェネレータ602は、最高のスコアリングのロゴまたは製品イメージ/顕著なイメージ1110をコンテンツアイテムの角(たとえば、左上、右上、左下、右下)に配置することができる。レイアウトジェネレータ602は、残りの未使用スペース1120を1つまたは複数の長方形(たとえば、図11Bに示されているように、長方形1122、1124、1126)に分割することができる。いくつかの実施態様では、レイアウトジェネレータ602は、1つまたは複数の長方形を大きい長方形に組み合わせることができる。具体的には図11Cを参照すると、長方形1124および1126が、より大きい長方形1127に組み合わされて図示されている。具体的には図11Dを参照すると、長方形1122および1126が、より大きい長方形1129に組み合わされて図示されている。
レイアウトジェネレータ602は、テキストモジュール216によって選択された残りの未使用のテキスト断片および/またはイメージモジュール212によって選択された残りの未使用のイメージのディスプレイサイズまたはアスペクト比に基づいて、1つまたは複数の長方形を組み合わせることができる。たとえば、未使用イメージが、未使用イメージのディスプレイ幅属性(たとえば、200ピクセル、10ピクセルなど)を超えるディスプレイ高さ属性(たとえば、400ピクセル、200ピクセルなど)を有する場合に、レイアウトジェネレータ602は、長方形1122および1126を組み合わせて、「ポートレートスタイル」の長方形1129(たとえば、長方形のディスプレイ幅を超えるディスプレイ高さを有する長方形)を作成することができる。有利なことに、未使用スペースは、残りの未使用のイメージおよび/またはテキスト断片のアスペクト比、ディスプレイサイズ、およびディスプレイ長さに対処する必要に応じて割り振られ得る。
ここで図12Aおよび図12Bを参照すると、説明される実施態様による、バナースタイルコンテンツアイテムの柔軟なレイアウト1200が示されている。具体的には図12Aを参照すると、柔軟なレイアウト1200は、イメージ1210、見出しテキスト1220、および未使用スペース1230を含んで図示されている。レイアウトジェネレータ602は、当初に高スコアリングのイメージ1210および見出しテキスト1220をコンテンツアイテム内に配置することによって、レイアウト1200を作成することができる。イメージ1210は、コンテンツアイテムの上部、下部、横、中央、または角に沿って配置され得る。見出しテキスト1220は、見出しテキスト1220がイメージ1210とオーバーラップしないように、コンテンツアイテム内の適切な位置に配置され得る。見出しテキスト1220は、イメージ1210の下、イメージ1210の上、イメージ1210の横、またはコンテンツアイテム内の他所に配置され得る。有利なことに、イメージ1210および見出しテキスト1220の位置は、レイアウト1200が事前に構成されたテンプレートデザインに基づくのではないので、柔軟である。イメージ1210およびテキスト1220を配置した後に、レイアウトジェネレータ602は、コンテンツアイテム内に残っている未使用スペース1230の量を判定することができる。
具体的に図12Bを参照すると、レイアウトジェネレータ602は、未使用スペース1230を1つまたは複数の長方形(たとえば、長方形1240、1250、および1260)に分割することができる。いくつかの実施態様では、長方形のディスプレイサイズまたはアスペクト比は、テキストモジュール216によって選択された残りの未使用のテキスト断片および/またはイメージモジュール212によって選択された未使用のイメージのディスプレイサイズおよび/またはアスペクト比に基づくものとされ得る。レイアウト1200は、第1の長方形1240内に配置された第2のイメージ1242、第2の長方形1250内に配置された説明テキスト断片1252、および第3の長方形1260内に配置されたアクションボタン1262を含んで図示されている。
ここで図13を参照すると、説明される実施態様による、ディスプレイコンテンツを自動的に生成するプロセス1300の流れ図が示されている。プロセス1300は、ランディングリソースの位置を指定するユニフォームリソースロケータ(URL)を受け取ること(ステップ1302)を含んで図示されている。URLは、コンテンツアイテムを生成する要求の一部としてコンテンツリクエスタから受け取られ得る。URLは、生成されたコンテンツアイテムが「クリック」された時にユーザデバイスが案内されるランディングリソースの位置を指定することができる。ランディングリソースは、ユーザが生成されたコンテンツアイテムをクリックする(たとえば、マウスを用いて)か他の形でこれをアクティブ化することに応答して、ユーザインターフェースデバイス(たとえば、モニタ、タッチスクリーン、または他の電子ディスプレイ)上に表示され得る。ランディングリソースは、ウェブページ、ローカルリソース、イントラネットリソース、インターネットリソース、または他のネットワークリソースとすることができる。いくつかの実施態様では、ランディングリソースは、自動的に生成されるコンテンツアイテム内で宣伝される製品、サービス、またはビジネスに関する追加情報を提供することができる。たとえば、ランディングリソースは、生成されるコンテンツアイテム内で宣伝される製品またはサービスをそれを介して購入できるウェブサイトとすることができる。
まだ図13を参照すると、プロセス1300は、さらに、ランディングリソースから1つまたは複数のイメージ、テキスト、およびカラーを定義するビジュアル情報を抽出すること(ステップ1304)を含んで図示されている。いくつかの実施態様では、ビジュアル情報は、ランディングリソースがレンダリングされる時にランディングリソース上に実際に表示されるイメージ、カラー、およびテキストを含む。ステップ1304は、リソースレンダラ(たとえば、ウェブブラウザまたは他のレンダリングが可能なハードウェアコンポーネントもしくはソフトウェアコンポーネント)を使用してランディングリソースをレンダリングすることと、レンダリングされたランディングリソースのDOMツリーまたはスナップショットイメージを生成することとを含むことができる。他の実施態様では、ビジュアル情報は、ランディングリソースのスナップショットイメージから直接に可視ではないメタデータおよび他のコード(たとえば、HTMLコード、CSSコードなど)を含む。隠されたコードおよびメタデータは、位置(たとえば、URL)、ディスプレイサイズ、ディスプレイ位置(たとえば、ランディングリソースの上部、ランディングリソースの中央など)、およびランディングリソース上に表示されるイメージの他の関連する属性(たとえば、代替テキスト、特殊なロゴマークアップタグなど)を定義することができる。隠されたコードおよびメタデータは、フォント名、フォントファミリ、カラー、およびランディングリソース上に表示されるテキストを定義することもできる。ビジュアル情報は、ランディングリソース上に表示される特定のビジネス、製品、またはサービスを定義することができる。
まだ図13を参照すると、プロセス1300は、さらに、ランディングリソースから抽出されたビジュアル情報に基づいて、1つまたは複数のイメージ、テキスト断片、およびカラーを選択すること(ステップ1306)を含んで図示されている。いくつかの実施態様では、ステップ1306は、ランディングリソース上に実際に表示される1つまたは複数のイメージ、テキスト断片、およびカラーを選択することを含む。表示されるイメージの選択は、ランディングリソースから抽出されたイメージをスコアリングしまたはランキングすることと、割り当てられたスコアに基づいてイメージを選択することとを含むことができる。スコアは、イメージに関連するメタデータ(たとえば、URL、ディスプレイ位置、ディスプレイサイズ、代替テキストなど)に基づいてイメージに割り当てられ得る。いくつかの実施態様では、スコアは、イメージに関連するメタデータがロゴイメージに関して選択する指定されたキーワードを含むかどうかに基づいてイメージに割り当てられ得る。たとえば、キーワードは、link rel="example-logo-markup"などの特殊なロゴマークアップタグとすることができる。
いくつかの実施態様では、表示されるカラーの選択は、ランディングリソースのスナップショットイメージから1つまたは複数のカラーを抽出することを含むことができる。スナップショットイメージの各ピクセルを、独立のカラー測定値として扱うことができ、支配的なカラーを、k平均法などのクラスタ化技法を使用して抽出することができる。たとえば、複数の初期カラークラスタを確立し、初期カラー値(たとえば、RGBカラー値、16進カラーコードなど)を用いてラベルを付けることができる。スナップショットイメージ内の各ピクセルを、そのピクセルのカラー値に最も近いカラー値を有するカラークラスタに割り当てることができる。各ピクセルを最も近いクラスタに割り当てた後に、各クラスタの平均カラー値を、クラスタ内のピクセルのカラー値に基づいて再計算することができる。いくつかの実施態様では、クラスタが定常平均値に収束するまで、または反復のしきい回数を実行し終えるまで、最も近い平均カラー値を有するクラスタにピクセルを再割当することによって、連続する反復を実行することができる。ステップ1306は、スナップショットイメージ内のピクセル総数に対する相対的な対応するカラークラスタ内のピクセル数に基づいて、各カラーに重みを割り当てることを含むことができる。最大の重みを有するカラーを、自動的に生成されるコンテンツアイテムに含めるために選択することができる。
いくつかの実施態様では、ランディングリソース上に表示されるテキストの選択は、テキストのHTML DOMツリーを解析することと、ランディングリソース上に表示されるテキストの要約を生成することとを含むことができる。他の実施態様では、スナップショットイメージを分析することができ、テキストを、光学文字認識(OCR)または他のテキスト認識技法を使用して、レンダリングされたイメージから抽出することができる。要約テキストは、ランディングリソース上に表示される連続したテキストストリング、またはランディングリソース上の様々な位置に表示されるテキストの断片から組み立てられた要約とすることができる。
いくつかの実施態様では、ステップ1306は、ランディングリソース上に実際には表示されない1つまたは複数のイメージ、テキスト断片、および/またはカラーを選択することを含む。たとえば、ランディングリソースから抽出されるビジュアル情報は、特定のビジネス、製品、またはサービスを識別することができる。イメージ(たとえば、ビジネスロゴ、商標、サービスマークなど)を、ロゴイメージがランディングリソース上に実際に表示されるかどうかにかかわりなく、表示されるビジネス、製品、またはサービスのアイデンティティに基づいて、以前に記憶されたロゴイメージのセットから選択することができる。カラースキームを、ランディングリソースから抽出されたカラーに基づいて、以前に組み立てられた(たとえば、自動的に、手作業でなど)カラースキームのセットから選択することができる。いくつかの実施態様では、カラースキームは、カラースキームに含まれるカラーのいずれかがランディングリソース上に実際に表示されるかどうかにかかわりなく、選択され得る。いくつかの実施態様では、テキスト断片を、ランディングリソース上に実際には表示されない隠されたメタデータ、HTMLコード、または他のテキストから選択することができる。たとえば、ランディングリソースから抽出されるビジュアル情報は、特定のビジネス、製品、またはサービスを識別することができる。このアイデンティティを使用して、特定のビジネス、製品、またはサービスに関するユーザによって作成されたレビューのコーパスを突き止めることができ、テキスト断片を、ユーザによって作成されたレビューのうちの1つまたは複数から選択することができる。
まだ図13を参照すると、プロセス1300は、さらに、選択されたイメージまたは選択されたテキスト断片のうちの1つまたは複数に基づいて、コンテンツアイテムのレイアウトを生成すること(ステップ1308)を含んで図示されている。ステップ1308は、コンテンツアイテムの角(たとえば、左上、右上、左下、右下)、エッジ(たとえば、上部、下部、左、右)、または中央(たとえば、エッジでも角でもない)に高スコアリングのロゴまたは製品イメージ/顕著なイメージを配置することと、残りの未使用スペースを1つまたは複数の長方形に分割することとを含むことができる。残りのスペースの量は、コンテンツアイテム内に配置されるイメージのディスプレイサイズに基づくものとすることができる。いくつかの実施態様では、長方形のうちの1つまたは複数を、残りのテキスト断片およびイメージのディスプレイサイズまたはアスペクト比に基づいて、より大きい長方形に組み合わせることができる。たとえば、未使用イメージが、未使用イメージのディスプレイ幅属性を超えるディスプレイ高さ属性(たとえば、ピクセル、インチなど)を有する(すなわち、「ポートレートスタイル」イメージ)場合に、長方形を組み合わせて、そのイメージをその中に配置できる「ポートレートスタイル」スペースを作成することができる。有利なことに、未使用スペースを必要に応じて割り振って、残りの未使用イメージのアスペクト比またはディスプレイサイズならびに任意の未使用テキスト断片の長さに対処することができる。
いくつかの実施態様では、ステップ1308は、ランディングリソースのスナップショットイメージを受け取ることと、ランディングリソースのスタイル(たとえば、モダン、素朴など)および/または視覚的外見(たとえば、形状の使用法、直角の角、丸められた角など)を判定するのにスナップショットイメージを使用することとを含むことができる。ステップ1308は、ランディングリソースのビジネス情報を入手するためにビジネスデータベースを呼び出すことを含むことができる。ビジネス情報は、ランディングリソースに関連するビジネスのカテゴリ(たとえば、ファーストフード、自動車部品など)ならびに関連するビジネスの他の属性を指定することができる。ステップ1308によって生成されるレイアウトは、スタイル情報および/またはビジネス情報に基づくものとすることができる。
まだ図13を参照すると、プロセス1300は、さらに、選択されたイメージ、選択されたテキスト断片、および選択されたカラーを生成されるレイアウトに適用することによってコンテンツアイテムを組み立てること(ステップ1310)を含んで図示されている。いくつかの実施態様では、選択されたイメージおよびテキスト断片は、生成されるレイアウト内の指定されたプレースホルダ内におさまるようにクロッピングされまたはサイズを変更され得る。他の実施態様では、選択されたイメージおよび/またはテキストに対処するために、プレースホルダのサイズを変更し、これを移動し、または再配置することができる。選択されたカラーは、背景カラー、テキストカラー、ボタンカラー、半透明テキストボックスシェーディングカラー、境界カラー、または生成されるコンテンツアイテム内で可視の任意の他のカラーとしてコンテンツアイテムに適用され得る。
いくつかの実施態様では、プロセス1300は、さらに、組み立てられたコンテンツアイテムをスコアリングすることと(ステップ1312)、組み立てられたコンテンツアイテムをコンテンツリクエスタに提示することと(ステップ1314)を含むことができる。コンテンツアイテムの全体的なスコアは、そのコンテンツアイテム内で使用される選択されたイメージ、テキスト断片、カラー、およびフォントの個々のスコア(たとえば、イメージ突出、カラークラスタ重みなど)に基づくものとすることができる。いくつかの実施態様では、割り当てられるスコアを、スペースがコンテンツアイテム内でどれほど効率的に使用されているか(たとえば、利用されるスペースに対する空のスペースの比率)、選択されたイメージおよび選択されたテキストが生成されるレイアウトにどれほどよくおさまるか(たとえば、イメージに適用されるクロッピングまたはストレッチングの度合)、選択されたイメージ内のカラーがコンテンツアイテム内に表示される他のカラーにどれほどよくマッチするか、テキストの可読性(たとえば、テキストカラーと背景カラーとの間のコントラスト、sans-serifフォントの使用量など)、および/または他の美的判断基準(たとえば、黄金比の使用量、コンテンツアイテムの外周の周囲のパディング、イメージとテキストとコンテンツアイテムの他のコンポーネントとの間の間隔など)に基づくものとすることができる。スコアリング判断基準は、さらに、コンテンツアイテム内のイメージ、テキスト、およびアクションボタンの相対位置を含むことができる。たとえば、コンテンツアイテムの右上角からコンテンツアイテムの左下角へ降順で配置されたイメージ、テキスト、およびアクションボタンを有するコンテンツアイテムに、より高いスコアを割り当てることができる。
完成したコンテンツアイテムを、自動的に生成されたコンテンツアイテムと一緒にコンテンツリクエスタに提示することができる。コンテンツリクエスタは、自動的に生成されたコンテンツアイテムを承認し、または拒絶することができる。承認される場合に、コンテンツアイテムは、コンテンツリクエスタの確立されたコンテンツディスプレイプリファレンスに関連して使用され、1つまたは複数の電子的に提示されるリソース上でコンテンツスロットを介してユーザインターフェースデバイスに配信され得る。いくつかの実施態様では、承認されたコンテンツアイテムのイメージ、テキスト断片、カラー、および/またはレイアウトを記録することができる。記録されたデータは、同一のコンテンツリクエスタまたは異なるコンテンツリクエスタのために後続コンテンツアイテムを生成するのに使用され得る。たとえば、承認されたロゴイメージ(たとえば、ビジネスロゴ、製品ロゴなど)は、同一のコンテンツリクエスタのために生成される後続コンテンツアイテム内で使用され得る。承認されたレイアウトは、他のコンテンツリクエスタのためにコンテンツアイテムを生成する時に、柔軟なテンプレートとして使用され得る。有利なことに、コンテンツリクエスタから受け取られる入力(たとえば、コンテンツアイテムを承認しまたは拒絶する)は、コンテンツアイテムを適応的にデザインし、構成し、または生成するためのフィードバックループを完成させることができる。
ここで図14を参照すると、説明される実施態様による、コンテンツアイテムのテキスト部分を自動的に生成するプロセス1400の流れ図が示されている。いくつかの実施態様では、プロセス1400は、イメージ、カラー、または他の非テキスト要素をも含むコンテンツアイテムのテキスト部分(たとえば、テキスト記述、見出しなど)を自動的に作成するのに使用され得る。他の実施態様では、プロセス1400は、純テキストコンテンツアイテムを独立に作成するのに使用され得る。有利なことに、プロセス1400は、コンテンツアイテムの「創作的」部分(たとえば、テキストベースの記述、説得力のあるテキスト、肯定的感情など)を自動的に生成し、これによって、コンテンツプロバイダが、創作的なものを記述するのに時間を費やすか、創作的なものを展開するためにコピーライタを雇う必要をなくすことができる。
プロセス1400は、ランディングリソースの位置を指定するユニフォームリソースロケータを受け取ること(ステップ1402)を含んで図示されている。URLは、コンテンツアイテムを生成する要求の一部としてコンテンツリクエスタから受け取られ得る。URLは、生成されたコンテンツアイテムが「クリック」された時にユーザデバイスが案内されるランディングリソースの位置を指定することができる。ランディングリソースは、ユーザが生成されたコンテンツアイテムをクリックする(たとえば、マウスを用いて)か他の形でこれをアクティブ化することに応答して、ユーザインターフェースデバイス(たとえば、モニタ、タッチスクリーン、または他の電子ディスプレイ)上に表示され得る。ランディングリソースは、ウェブページ、ローカルリソース、イントラネットリソース、インターネットリソース、または他のネットワークリソースとすることができる。いくつかの実施態様では、ランディングリソースは、自動的に生成されるコンテンツアイテム内で宣伝される製品、サービス、またはビジネスに関する追加情報を提供することができる。たとえば、ランディングリソースは、生成されるコンテンツアイテム内で宣伝される製品またはサービスをそれを介して購入できるウェブサイトとすることができる。
まだ図14を参照すると、プロセス1400は、ランディングリソース上に表示されるビジネス、製品、またはサービスに関するユーザによって提供されたコメントを含む1つまたは複数のユーザレビューを入手すること(ステップ1404)をさらに含んで図示されている。いくつかの実施態様では、レビューは、ビジネス全体にあてはまる場合がある。他の実施態様では、レビューは、ランディングリソースに関連する特定の製品またはサービス(たとえば、ランディングリソース上で宣伝され、表示され、提示されるなど)にあてはまる場合がある。ユーザによって提供されたレビューは、レビューデータベースから入手され得る。レビューデータベースは、ユーザが特定のビジネスに関するコメントをポストし、レビューをサブミットし、製品、サービスを評価し、または他の形で彼らの意見を通信することを許可されるインターネットリソース(たとえば、ウェブサイト)とすることができる。たとえば、レビューデータベースは、Google+ Local、ZAGAT、YELP、URBANSPOONなどのウェブサイト、またはユーザによって作成されたレビューがそれを介して入手され得る他のリソースとすることができる。
いくつかの実施態様では、ステップ1404は、そのようなレビューを突き止め、または特定のビジネスのレビューに専用の特定のリソースまたはリソースの一部を識別するのに、ランディングリソースのURLを使用することを含むことができる。たとえば、ランディングリソースのURLを使用して、レビューデータベースのうちで、ランディングリソースに関連するビジネスエンティティに関するレビューを入手することのできる部分を指定することができる。ステップ1404は、ランディングリソースによって識別されるビジネスに関するユーザによって作成されたレビューを、複数のリソースから検索することを含むことができる。いくつかの実施態様では、ステップ1404は、さらなる分析のためにテキストレビューを生成するために、オーディオベースまたはビデオベースのレビューを文字に置き換えることを含むことができる。
まだ図14を参照すると、プロセス1400は、さらに、レビューのうちの1つまたは複数内の肯定の感情を示すキーワードを含む肯定の句を識別すること(ステップ1406)を含んでさらに図示されている。ステップ1406は、数値的に表されたレーティング(たとえば、「5段階評価の1」、「4つ星」など)を用いてまたは用いずに、レビューが肯定または否定のどちらであるのかを判定するために実行され得る。ステップ1406は、肯定の感情を示す形容詞(たとえば、excellent、good、great、fantasticなど)を探して、レビューの言語を解析することを含むことができる。ステップ1406は、肯定の感情を表すレビューを識別するために、レビューの一部、レビューのテキスト全体、または数値的に表されたレーティングに関連するレビューのテキストを分析することを含むことができる。指定されたキーワードのうちの1つを含む肯定の句は、肯定の感情を表すレビュー内で識別され得る。
まだ図14を参照すると、プロセス1400は、さらに、識別された肯定の句のうちの1つまたは複数を含むレビューの1つまたは複数の部分を抽出すること(ステップ1408)を含んで図示されている。ステップ1408は、孤立して読まれる時に、レビューをサブミットしたユーザがレビューされるビジネス、製品、またはサービスに関する肯定の経験を何故有したのかを有効に通信する「断片」(たとえば、句、テキストストリング、部分など)をレビューから検索することを含むことができる。断片は、ステップ1406で識別された肯定の句のうちの1つまたは複数を含むことができる。
いくつかの実施態様では、プロセス1400は、さらに、レビューの抽出された部分をコンテンツリクエスタに提示し、抽出された部分のうちの1つまたは複数を選択する入力をコンテンツリクエスタから受け取ること(ステップ1410)を含む。コンテンツリクエスタは、抽出されたテキスト断片を承認しまたは拒絶することができる。有利なことに、コンテンツリクエスタから受け取られる入力(たとえば、コンテンツアイテムを承認しまたは拒絶する)は、コンテンツアイテムを適応的にデザインし、構成し、または生成するためのフィードバックループを完成させることができる。承認される場合に、抽出されたテキストをコンテンツアイテムに組み立てることができる(ステップ1412)。いくつかの実施態様では、抽出されたテキストは、イメージ、カラー、または他の非テキスト要素(たとえば、ディスプレイコンテンツアイテム)をも含むコンテンツアイテムのテキスト部分(たとえば、テキスト記述、見出しなど)として使用され得る。他の実施態様では、抽出されたテキストは、純テキストコンテンツアイテム(たとえば、テキストの「創作的なもの」)の一部であり得る。
ここで図15を参照すると、説明される実施態様による、コンテンツアイテムのユニークな外見のレイアウトを自動的に生成するプロセス1500の流れ図が示されている。プロセス1500は、プロセス1300のステップ1308および1310を達成するのに使用され得る。たとえば、イメージ、テキスト断片、フォント、およびカラーのセットがランディングリソースから抽出されたならば、プロセス1500を使用して、イメージ、テキスト断片、カラー、およびフォントを完成したコンテンツアイテムに組み立てることができる。
プロセス1500は、1つまたは複数のイメージと1つまたは複数のテキスト断片とを受け取ること(ステップ1502)を含んで図示されている。いくつかの実施態様では、ステップ1502は、さらに、受け取られるイメージおよびテキスト断片に加えて、1つまたは複数のフォントと1つまたは複数のカラーとを受け取ることを含むことができる。イメージは、そのイメージがロゴイメージ、製品イメージ/顕著なイメージであるかどうか、またはそのイメージがイメージの任意の他のカテゴリに属するかどうかを指定する分類タグと共に受け取られ得る。受け取られるイメージのそれぞれは、属性情報(たとえば、ディスプレイ高さ、ディスプレイ幅、イメージ内の支配的なカラーのリストなど)を含むことができる。受け取られるテキスト断片のそれぞれは、長さ属性を含むことができる。長さ属性は、テキスト断片のディスプレイサイズを指定することができ、テキスト断片に関連して使用されるフォント(たとえば、フォントサイズ、フォントファミリなど)に依存することができる。いくつかの実施態様では、イメージ、テキスト断片、カラー、およびフォントは、スコア、ランキング、重み、または他のスコアリングメトリックと一緒に受け取られ得る。各要素に関連するスコアは、その要素が生成されるコンテンツアイテム内に含めるために選択される優先順位または順序を判定するのに使用され得る。
まだ図15を参照すると、プロセス1500は、コンテンツアイテムのフレームを作成すること(ステップ1504)をさらに含んで図示されている。コンテンツアイテムのフレームは、コンテンツアイテムの寸法(たとえば、ディスプレイ高さ、ディスプレイ幅など)に対応する、長方形または非長方形のフレームとすることができる。いくつかの実施態様では、ステップ1504は、完成したコンテンツアイテムの複数の潜在的なディスプレイサイズまたは寸法に対応する複数のフレームを作成することを含むことができる。たとえば、複数の異なるサイズを有するコンテンツアイテムを、複数の異なるサイズを有するフレームを使用して生成することができる。
プロセス1500は、さらに、受け取られたイメージのうちの1つをフレーム内の開始位置に配置すること(ステップ1506)を含んで図示されている。初期配置のために選択されるイメージは、イメージに割り当てられたスコア(たとえば、最高スコアリングのイメージ)、イメージのディスプレイサイズ、イメージの分類(たとえば、ロゴ、製品、他の顕著なイメージ)、または、イメージがやはりコンテンツアイテム内に潜在的に含まれるテキスト断片、カラー、および/もしくはフォントとどれほどよく調和するのかに基づいて予測されたスコアに基づいて選択され得る。初期イメージは、フレームの角(たとえば、左上、右上、左下、右下)、エッジ(たとえば、上部、下部、左、右)、または中央(たとえば、エッジでも角でもない)に配置され得る。
まだ図15を参照すると、プロセス1500は、フレーム内のすべての残りの未使用スペースを1つまたは複数の長方形に分割すること(ステップ1508)をさらに含んで図示されている。残りのスペースの量は、ステップ1506でフレーム内に配置される初期イメージのディスプレイサイズおよび/または位置に基づくものとすることができる。いくつかの実施態様では、長方形のうちの1つまたは複数を、残りの未使用のテキスト断片およびイメージのディスプレイサイズまたはアスペクト比に基づいて、より大きい長方形に組み合わせることができる。たとえば、未使用イメージが、未使用イメージのディスプレイ幅属性を超えるディスプレイ高さ属性(たとえば、ピクセル、インチなど)を有する(すなわち、「ポートレートスタイル」イメージ)場合に、長方形を組み合わせて、そのイメージをその中に配置できる「ポートレートスタイル」スペースを作成することができる。有利なことに、未使用スペースを必要に応じて割り振って、残りの未使用イメージのアスペクト比またはディスプレイサイズならびに任意の未使用テキスト断片の長さに対処することができる。
プロセス1500は、配置されていないテキスト断片またはイメージのうちの1つまたは複数を1つまたは複数の長方形内に配置すること(ステップ1510)をさらに含んで図示されている。いくつかの実施態様では、選択されたイメージおよびテキスト断片は、生成されるレイアウト内の指定されたプレースホルダ内におさまるようにクロッピングされまたはサイズを変更され得る。他の実施態様では、選択されたイメージおよび/またはテキストに対処するために、プレースホルダのサイズを変更し、これを移動し、または再配置することができる。1つまたは複数の長方形内への配置のために選択されるイメージおよびテキスト断片は、イメージのディスプレイサイズ、テキスト断片のディスプレイ長さ、および/または未使用のイメージおよびテキスト断片のそれぞれに割り当てられたスコアに基づくものとすることができる。
いくつかの実施態様では、ステップ1510は、受け取られたカラーおよびフォントを、生成されるレイアウトに適用することを含むことができる。受け取られたカラーは、背景カラー、テキストカラー、ボタンカラー、半透明テキストボックスシェーディングカラー、境界カラー、または生成されるコンテンツアイテム内で可視の任意の他のカラーとしてレイアウトに適用され得る。受け取られたフォントは、フレーム内に配置されたテキスト断片、見出しテキスト、ボタンテキスト、または生成されるコンテンツアイテム内に表示される任意の他のテキストに適用され得る。
ここで図16を参照すると、説明される実施態様による、ディスプレイコンテンツを自動的に生成するプロセス1600の流れ図が示されている。プロセス1600は、図2〜図6を参照して説明されたコンテンツ生成システム114によって、その1つまたは複数のメモリモジュール(たとえば、イメージモジュール212、カラーモジュール214、テキストモジュール216、フォントモジュール218、レイアウトモジュール220など)を使用して実行され得る。いくつかの実施態様では、プロセス1600は、ランディングリソース106からイメージを抽出し、抽出されたイメージを分析し、処理し、自動的に生成されるディスプレイコンテンツアイテム内での使用のためにイメージをランキングするために、実質的にイメージモジュール212によって実行され得る。
プロセス1600は、ランディングリソースを識別するユニフォームリソースロケータ(URL)を受け取ること(ステップ1602)を含んで図示されている。URLは、コンテンツアイテムを生成する要求の一部としてコンテンツリクエスタ(たとえば、コンテンツリクエスタ104)から受け取られ得る。URLは、ユーザデバイス108が生成されたコンテンツアイテムと相互作用する時にユーザデバイス108が案内されるランディングリソース(たとえば、ランディングリソース106)の位置を指定することができる。ランディングリソースは、ウェブページ、ローカルリソース、イントラネットリソース、インターネットリソース、または他のネットワークリソースとすることができる。いくつかの実施態様では、ランディングリソースは、自動的に生成されるコンテンツアイテム内で宣伝される製品、サービス、またはビジネスに関する追加情報を提供する。たとえば、ランディングリソースは、生成されるコンテンツアイテム内で宣伝される製品またはサービスをそれを介して購入できるウェブサイトとすることができる。
まだ図16を参照すると、プロセス1600は、ランディングリソースからイメージを抽出すること(ステップ1604)を含んで図示されている。ステップ1604は、図3を参照して前に説明したように、イメージ抽出モジュール302によって実行され得る。たとえば、ステップ1604は、リソースレンダラ(たとえば、リソースレンダラ110、リソースレンダラモジュール210など)からランディングリソースのDOMツリーを受け取ることを含むことができる。ステップ1604は、イメージおよびイメージメタデータ(たとえば、イメージURL、ディスプレイ位置、ディスプレイサイズ、代替テキストなど)を識別し、抽出するためにDOMツリーを解析することを含むことができる。
いくつかの実施態様では、ステップ1604は、ランディングリソースに加えて、他のデータソースからイメージおよびイメージメタデータを抽出することを含む。イメージをそこから抽出できる他のデータソースは、使用済みイメージデータベース(たとえば、データベース310)および/またはストックイメージデータベース(たとえば、データベース312)を含むことができる。使用済みイメージデータベースは、現在生成されつつあるコンテンツアイテムと同一のランディングリソース(たとえば、同一のURL、同一のドメインなど)に案内する、以前のコンテンツアイテム内で使用されたイメージのすべてのリポジトリとすることができる。使用済みイメージデータベースは、コンテンツリクエスタによって供給されたイメージおよび/またはコンテンツリクエスタによって以前に承認されたイメージを含むことができる。使用済みイメージデータベース内のイメージは、イメージがその中に含まれた以前のサードパーティコンテンツアイテムに関連するキーワードおよび他のデータなどの追加データ(たとえば、イメージメタデータ)と共に記憶され得る。
ストックイメージデータベースは、必ずしもコンテンツリクエスタに関連せず、ランディングリソースから抽出されたものでもない様々なイメージのリポジトリとすることができる。ストックイメージデータベースは、他のリソースから抽出されたか、コンテンツ生成システムに他の形で供給されたイメージを含むことができる。使用済みイメージデータベースおよびストックイメージデータベースから抽出されるイメージは、たとえば、ビジネスロゴ(たとえば、商標、サービスマークなど)、宣伝される製品の写真、または他の顕著なイメージを含むことができる。
まだ図16を参照すると、プロセス1600は、イメージのビジュアルコンテンツとイメージのセマンティックコンテンツとを検出するために抽出されたイメージを分析すること(ステップ1606)を含んで図示されている。いくつかの実施態様では、ステップ1606は、図3を参照して前に説明したように、コンテンツ検出モジュール304によって実行され得る。いくつかの実施態様では、ステップ1606は、抽出されたイメージのそれぞれのディスプレイサイズを判定することを含む。あるイメージのディスプレイサイズが、しきいディスプレイサイズ(たとえば、しきい高さ、しきい幅、しきい面積など)未満である場合には、ステップ1606は、そのイメージを破棄することを含むことができる。いくつかの実施態様では、ステップ1606は、抽出されたイメージのそれぞれのアスペクト比を判定することを含む。ステップ1606は、あるイメージのアスペクト比が、事前定義のアスペクト比範囲(たとえば、0.2〜5、0.33〜3、0.5〜2など)内ではない場合に、そのイメージを破棄することを含むことができる。
ビジュアルコンテンツを検出するための抽出されたイメージの分析は、各抽出されたイメージ内のコンテンツの位置、サイズ、および/または分布を検出することを含むことができる。いくつかの実施態様では、ステップ1606は、抽出されたイメージ内で突出したオブジェクトを突き止めることを含む。突出したオブジェクトは、前景オブジェクト、宣伝されるオブジェクト、または抽出されたイメージ内で顕著さを伴って表示される他のオブジェクトとすることができる。いくつかの実施態様では、ステップ1606は、背景カラーから前景オブジェクトを区別するために、イメージ内のカラーの分布を分析することを含む。ステップ1606は、オブジェクト(たとえば、前景オブジェクト、背景オブジェクト、横に並んだオブジェクトなど)の間の境界を検出するために、抽出されたイメージ内のエッジを識別することを含むことができる。他のオブジェクトからの突出したオブジェクトの区別は、イメージの最も意味のあるまたは重要な区域を識別する際に有用である可能性がある。
いくつかの実施態様では、抽出されたイメージのビジュアルコンテンツを検出することは、テキストを検出することを含む。ステップ1606は、様々なタイプのテキスト(たとえば、見出しテキスト、創作的テキスト、コールトゥアクションテキスト、広告テキストなど)を検出するために、抽出されたイメージに対して光学文字認識(OCR)を実行することを含むことができる。抽出されたイメージの一部自体が、それ自体の創作的テキストを含む広告である場合がある。ステップ1606は、テキストをイメージからクロッピングしまたは除去することができるようにするために、イメージのうちでテキストを含む区域を識別することを含むことができる。
いくつかの実施態様では、ステップ1606は、抽出されたイメージのそれぞれの突出マップを生成することを含む。突出マップは、イメージ内のテキスト、顔、および/または前景オブジェクトの位置をマークすることができる。たとえば、テキストまたは顔を有する区域を、長方形のリストによって識別することができる。前景区域を、バイナリビットマップ、線、または境界マーカーを用いて表すことができる。ステップ1606は、イメージ全体に対する相対的な、イメージ内の突出したオブジェクトのサイズを判定することを含むことができる。イメージ内で表現される突出したオブジェクトが、イメージ全体のディスプレイサイズと比較して相対的に小さい(たとえば、しきい値より小さい、ディスプレイサイズ全体のあるパーセンテージより小さいなど)場合には、ステップ1606は、そのイメージを破棄するか、生成されるコンテンツアイテムに含めるための候補であるイメージのリストからそのイメージを除去することを含むことができる。
セマンティックコンテンツを検出するために抽出されたイメージを分析することは、イメージ内で描写されるオブジェクトまたはイメージによって伝えられる意味を識別することを含むことができる。ステップ1606は、イメージのセマンティックコンテンツを判定するのに、ビジュアル検索サービス(VSS)、イメージコンテンツ注釈フロントエンド(ICAFE)、および/またはイメージコンテンツ注釈サービス(ICAS)を使用することを含むことができる。そのようなサービスは、イメージ(たとえば、イメージURL、イメージファイルなど)を受け取り、イメージを分析し、イメージ内で描写されるコンテンツを記述する様々なラベル(たとえば、タイトル、キーワード、句など)を出力するように構成され得る。ステップ1606は、入力イメージに関して生成されるキーワードおよびラベルを洗練するために、異なるモジュール(たとえば、ロゴモジュール、製品モジュールなど)を使用するようにイメージ注釈サービスおよびイメージ検索サービスを構成することを含むことができる。
ステップ1606は、イメージの属性またはタグとして、ラベルまたはキーワードをイメージに割り当てることを含むことができる。たとえば、AUDI(登録商標)ブランドの自動車のイメージに関して、ステップ1606は、キーワード「自動車」、「スポーツカー」、「Audi」、「Audi R8 V10」、またはイメージのコンテンツを定性的に記述する他のキーワードをイメージに割り当てることを含むことができる。いくつかの実施態様では、ステップ1606は、イメージに対するキーワードまたはラベルの推定された正確さまたは関連性を示すスコアに、各キーワードまたはラベルを関連付けることを含むことができる。ラベルおよび/またはキーワードは、特定のサードパーティコンテンツアイテム、検索照会、および/または電子リソースに対するイメージの関連性を判定するのに使用され得る。
いくつかの実施態様では、ステップ1606は、抽出されたイメージの視覚的品質(たとえば、美的品質)を判定することを含む。イメージの視覚的品質は、露出、鮮明さ、コントラスト、カラースキーム、コンテンツ密度、および/またはイメージの他の美的品質など、イメージの視覚的特徴に基づいてイメージに関する人間のビジュアルプリファレンスを表すことができる。ステップ1606は、コンピュータビジョン、クラスタ化、およびイメージのメタデータを活用することによって、視覚的品質をアルゴリズム的に判定することを含むことができる。たとえば、ステップ1606は、人間がラベル付けしたイメージプリファレンスに対してトレーニングされるランキングモデルへの入力としてイメージまたはイメージ特徴を使用することを含むことができる。いくつかの実施態様では、ステップ1606は、イメージの美的品質または視覚的品質を識別するために、イメージの特徴を、人間によって以前にスコアリングされたイメージの特徴と比較することを含む。人間によって高くスコアリングされたイメージの特徴とよりよく一致する特徴を有するイメージは、ステップ1606においてより高い品質スコアを割り当てられ得る。人間によって高くスコアリングされたイメージの特徴とは異なる特徴を有するイメージは、ステップ1606において、より低い品質スコアを割り当てられ得る。
まだ図16を参照すると、プロセス1600は、分析の結果に基づいてイメージについて処理が必要であるかどうかを判定し、処理が必要であるとの判定に応答してイメージを処理すること(ステップ1608)を含んで図示されている。いくつかの実施態様では、ステップ1608は、図3を参照して説明されたイメージ処理モジュール306によって実行される。ステップ1608は、コンテンツアイテム内での使用のためにイメージを準備するためにステップ1604で抽出されたイメージを処理することを含むことができる。様々な実施態様では、ステップ1608は、イメージをクロッピングすること、イメージをフォーマッティングすること、イメージの質を高めること、イメージからテキストを除去すること、または自動的に生成されるコンテンツアイテム内での使用のために他の形でイメージを調整することを含む。
ステップ1608は、ステップ1606において検出されたイメージコンテンツの分布に基づいて、抽出されたイメージのそれぞれをクロッピングすべきかどうかを判定することを含むことができる。たとえば、ステップ1608は、突出したオブジェクト(たとえば、前景オブジェクト)、テキスト、顔、および/または他のタイプの検出されるコンテンツを含む各イメージの区域を判定するために、ステップ1606において生成された突出マップを使用することを含むことができる。イメージのうちで突出したオブジェクト、テキスト、および顔を含む部分を、突出マップ内で長方形として表すことができる。ステップ1608は、突出マップによって示されるコンテンツの分布を使用して、各イメージのうちの保存すべき部分と各イメージのうちの破棄すべき部分とを識別することを含むことができる。
いくつかの実施態様では、ステップ1608は、各イメージのうちで突出したオブジェクトを含む部分を識別することを含む。イメージ内の突出したオブジェクトの位置を、突出マップ内のベクトルの対として表すことができる。たとえば、突出したオブジェクトの位置を、イメージ内で長方形を定義する垂直ベクトルおよび水平ベクトルによって示すことができる。ステップ1608は、各イメージ内で突出したオブジェクトを含む1つまたは複数の長方形のサイズおよび位置を判定することを含むことができる。複数の突出したオブジェクトを含むイメージに関して、ステップ1608は、突出したオブジェクトのうちで保存すべき1つまたは複数と突出したオブジェクトのうちで破棄すべき1つまたは複数とを選択することを含むことができる。いくつかの実施態様では、ステップ1608は、複数の突出したオブジェクトを含む1つの長方形を生成することを含む。ステップ1608において生成される長方形は、複数の突出したオブジェクトを含む可能な最小の長方形とすることができる。
いくつかの実施態様では、ステップ1608は、イメージのディスプレイサイズ全体に対する相対的な、突出したオブジェクトを含む長方形のサイズ(たとえば、ディスプレイサイズ全体のパーセンテージとして、イメージの全面積の比率としてなど)を判定することを含む。いくつかの実施態様では、ステップ1608は、突出したオブジェクトを含む長方形の辺(たとえば、上辺、下辺、横辺など)とイメージのエッジとの間の間隔の量を判定することを含む。たとえば、ステップ1608は、突出したオブジェクトを含む長方形の辺とイメージのエッジとの間の距離(たとえば、ピクセル数など)を識別することを含むことができる。ステップ1608は、長方形の各辺とイメージの対応するエッジとの間の距離(たとえば、長方形の上辺とイメージの上エッジとの間の距離、長方形の下辺とイメージの下エッジとの間の距離など)を判定することを含むことができる。
ステップ1608は、イメージ内の突出したオブジェクトのサイズおよび位置に基づいて、イメージをクロッピングすべきかどうかを判定することを含むことができる。イメージごとに、ステップ1608は、イメージのディスプレイサイズに基づいて面積しきい値を計算することを含むことができる(たとえば、ディスプレイサイズの80%、ディスプレイサイズの66%など)。突出したオブジェクトを含む長方形が、面積しきい値を超える面積を有する場合には、ステップ1608は、そのイメージをクロッピングしてはならないと判定することを含むことができる。突出したオブジェクトを含む長方形が、面積しきい値未満の面積を有する場合には、ステップ1608は、そのイメージをクロッピングしなければならないと判定することを含むことができる。いくつかの実施態様では、ステップ1608は、突出したオブジェクトが、イメージの約1/3未満の面積を占める場合に、イメージをクロッピングしなければならないと判定することを含む。
ステップ1608は、突出したオブジェクトを含まないイメージコンテンツの一部またはすべてを除去するために、イメージをクロッピングすることを含むことができる。たとえば、ステップ1608は、突出したオブジェクトを含む長方形だけが残るように、イメージをクロッピングすることを含むことができる。いくつかの実施態様では、ステップ1608は、突出したオブジェクトの長方形と突出したオブジェクトの長方形の周囲の境界とを含むようにイメージをクロッピングすることを含む。
いくつかの実施態様では、ステップ1608は、イメージからのテキストを含む。ステップ1608は、ステップ1606で生成された突出マップを使用して、各イメージのうちでテキストを含む部分を識別することを含むことができる。たとえば、ステップ1608は、イメージ内のテキストの位置を示す1つまたは複数の長方形を識別することを含むことができる。いくつかの実施態様では、ステップ1608は、イメージのうちで突出したオブジェクトを含む区域とイメージのうちでテキストを含む区域とに基づいて、イメージのうちで保存すべき部分を判定することを含む。たとえば、ステップ1608は、イメージのうちで突出したオブジェクトを含む部分を保存しながら、イメージのうちでテキストを含む部分を破棄することを含むことができる。ステップ1608は、突出したオブジェクトを含む1つまたは複数の長方形を含むがテキストを含む長方形を含まない長方形を生成することによって、イメージからテキストをクロッピングすることを含むことができる。いくつかの実施態様では、ステップ1608は、ステップ1608で生成される長方形内のイメージコンテンツ(たとえば、突出したオブジェクト、顔など)だけを含むように、イメージをクロッピングすることを含む。
いくつかの実施態様では、ステップ1608は、イメージスプライトからロゴイメージをクロッピングすることを含む。たとえば、ステップ1604で抽出されたイメージのうちのいくつかが、個々のボタンイメージまたはロゴイメージの組合せまたは編集物である場合がある(たとえば、格子状に複数のロゴを含む縫い合わされたキャンバス)。ステップ1608は、ロゴイメージだけが残るように、イメージスプライト内のロゴイメージの位置を判定し、イメージスプライトをクロッピングすることを含むことができる。
いくつかの実施態様では、ステップ1608は、生成されるコンテンツアイテム内での使用のために、ステップ1604で抽出されたイメージの質を高め、またはそのイメージを最適化することを含む。イメージの質を高めることまたはイメージの最適化は、たとえば、イメージのエッジを丸めること、イメージに照明効果を追加すること、イメージにテクスチャまたは奥行きを追加すること、および/またはイメージの視覚的影響の質を高めるために他の効果を適用することを含むことができる。
いくつかの実施態様では、ステップ1608は、ロゴイメージを識別するのに、ステップ1606によって作られたコンテンツ検出結果を使用することを含む。いくつかのロゴイメージが、平坦で単純なロゴとしてステップ1604によって抽出される場合がある。たとえば、ランディングリソースは、ロゴがユーザデバイス108によってレンダリングされる時に平坦/単純なロゴの外見を変更するのに、CSSまたは別のコンテンツマークアップ方式に頼ることができる。ステップ1608は、ロゴに3次元に見えるようにさせること、奥行きまたは照明効果を追加すること、角を丸めること、ロゴにボタンに見えるようにさせること、モバイルデバイス上の表示のためにロゴを最適化すること、またはロゴの視覚的影響を改善するために他の形でロゴを調整することによって、平坦/単純なロゴを最適化されたロゴに変換するためにロゴイメージを処理することを含むことができる。ステップ1608は、処理されたイメージをデータストレージデバイス内に記憶することを含むことができる。
まだ図16を参照すると、プロセス1600は、検出されたビジュアルコンテンツと検出されたセマンティックコンテンツとのうちの少なくとも1つに基づいてイメージをスコアリングすること(ステップ1610)を含んで図示されている。いくつかの実施態様では、ステップ1610は、図3を参照して説明したようにイメージランキングモジュール308によって実行される。ステップ1610は、イメージのうちのどれを生成されるコンテンツアイテム内に含めるべきかを判定するために様々なイメージをランキングすることを含むことができる。
いくつかの実施態様では、ステップ1610は、ステップ1604で、ランディングリソースから抽出されたイメージのそれぞれに突出スコアを割り当てることを含む。イメージの突出スコアは、イメージがランディングリソース上に表示される際の相対的な重要性または顕著さを示すことができる。たとえば、あるイメージの突出スコアは、アイテムの垂直配置(たとえば、ページの上部、ページの中央、ページの下部など)、イメージのディスプレイサイズ(たとえば、ディスプレイ高さ、ディスプレイ幅など)、イメージがランディングリソース上でセンタリングされるかどうか、および/または他のイメージ突出スコアリング判断基準に依存する可能性がある。
ステップ1610で突出スコアを割り当てるのに使用され得るイメージ突出スコアリングアルゴリズムの一例は、
突出=α*sigmoid1(positiony,y0,dy)+β*sigmoid2(width,w0,dsize)*sigmoid2(height,h0,dsize)+δ*central_alignment
である。いくつかの実施態様では、α、β、およびδは、すべてが正であり、合計が1.0になる。Sigmoid1(positiony,y0,dy)は、positiony=0(たとえば、ランディングリソース106の最上部)での1.0からpositiony=∞(たとえば、ランディングリソースの最下部、ランディングリソースの最上部から非常に遠いなど)での0.0までの範囲にわたるシグモイド関数とすることができる。y0は、Sigmoid1=0.5である点とすることができ、dyは、y0の付近でのシグモイド関数の傾きを制御することができる。Sigmoid2は、(1-Sigmoid1)と定義することができ、central_alignmentは、イメージがランディングリソース上で中央に整列される(たとえば、水平にセンタリングされる)かどうかの尺度とすることができる。central_alignmentは、イメージが完全にセンタリングされる場合に1.0とすることができ、イメージの中央とランディングリソースの水平方向の中央との間の距離に基づいて減少するものとすることができる。
ステップ1610は、ステップ1604によって抽出されたイメージをランキングすることを含むことができる。いくつかの実施態様では、ランキングは、各イメージに割り当てられた突出スコアに基づく。突出スコアは、イメージに関するコンテンツリクエスタのプリファレンスを示すことができ、どのイメージがコンテンツリクエスタによって承認される可能性が最も高いのかを判定する際の貴重なメトリックである可能性がある。突出スコアは、イメージがランディングリソース上で宣伝されるコンテンツにどれほどよく対応するのかを示すこともできる。
いくつかの実施態様では、ステップ1610は、イメージに関連する様々な関連性判断基準に基づいて、イメージをランキングすることを含む。たとえば、ステップ1610は、各イメージに関連性スコアを割り当てるのに、関連性判断基準を使用することを含むことができる。ステップ1610は、イメージ(たとえば、イメージメタデータ、イメージコンテンツなど)を、ランディングリソースまたは自動的に生成されるコンテンツアイテムのURLに基づくキーワードのリストと比較することによって、イメージの関連性スコアを判定することを含むことができる。たとえば、キーワードのリストを、ビジネス分類、ビジネスタイプ、ビジネスカテゴリ、またはランディングリソースに関連するビジネスもしくはエンティティの他の属性に基づくものとすることができる。いくつかの実施態様では、キーワードのリストを、生成されるコンテンツアイテムのタイトルまたはコンテンツアイテムの他の属性(たとえば、キャンペーン、広告グループ、宣伝される製品など)に基づくものとすることができる。関連性スコアは、特定のイメージが、自動的に生成されるコンテンツアイテム内で宣伝されるビジネス、製品、またはサービスを表す尤度を示すことができる。
いくつかの実施態様では、ステップ1610は、イメージをランキングする前に、1つまたは複数のしきい値テストを実行することを含む。たとえば、ステップ1610は、ステップ1606で各イメージに割り当てられた品質スコアを、しきい品質スコアと比較することを含むことができる。あるイメージの品質スコアが、しきい品質スコア未満である場合に、ステップ1610は、そのイメージを破棄することを含むことができる。ステップ1610は、抽出され処理されたイメージのそれぞれのディスプレイサイズをしきいディスプレイサイズと比較することを含むことができる。あるイメージのディスプレイサイズが、しきいディスプレイサイズ未満である場合に、ステップ1610は、そのイメージを破棄することを含むことができる。
いくつかの実施態様では、ステップ1610は、イメージの複数のリストを生成することを含む。ステップ1610で生成される1つのリストを、ロゴイメージのリストとすることができる。ステップ1610で生成されるもう1つのリストを、ランディングリソースから抽出された製品イメージおよび/または顕著なイメージのリストとすることができる。ステップ1610で生成されるもう1つのリストを、コンテンツリクエスタによって以前に使用され、かつ/または承認されたイメージ(たとえば、使用済みイメージデータベースから抽出されたイメージ)のリストとすることができる。イメージのリストは、イメージ幅、イメージ高さ、突出スコア、関連性スコア、または他のイメージ情報など、各イメージに関連する属性を含むことができる。ステップ1610は、イメージに割り当てられた突出スコアおよび/または関連性スコアに従って、リスト内のイメージを配置することを含むことができる。
まだ図16を参照すると、プロセス1600は、ランディングリソースから抽出されたイメージを含むイメージのセットから最高スコアリングのイメージを選択すること(ステップ1612)を含んで図示されている。イメージのセットは、ランディングリソースから抽出された1つまたは複数のイメージと、他のデータソース(たとえば、使用済みイメージデータベース310、ストックイメージデータベース312など)から抽出された1つまたは複数のイメージとを含むことができる。最高スコアリングのイメージは、しきい判断基準(たとえば、ディスプレイサイズ判断基準、品質スコア判断基準など)のすべてを満足する最高の突出スコアを有するイメージとすることができる。
いくつかの実施態様では、ステップ1612は、特定のコンテンツアイテム、検索照会、ランディングリソース、またはユーザデバイスに最も関係するイメージを選択することを含む。ステップ1612は、選択されたイメージがその中に含められるコンテンツアイテムに関連するキーワードを識別することを含むことができる。たとえば、ステップ1612は、コンテンツアイテムの見出し、タイトル、トピック、または他の属性を識別することを含むことができる。ステップ1612は、関連するコンテンツアイテム(たとえば、同一の広告グループ内のコンテンツアイテム、同一キャンペーンの一部、同一のコンテンツプロバイダに関連するなど)に関連する1つまたは複数のキーワードを判定することを含むことができる。ランディングリソースおよび/または検索照会に関するキーワードを、それぞれランディングリソースおよび検索照会のコンテンツから抽出することができる。特定のユーザデバイスに関するキーワードは、ユーザ関心プロファイル、最近のブラウジング履歴、検索照会の履歴、地理的リミッタ、またはユーザデバイスの他の属性に基づくものとすることができる。ステップ1612は、イメージのそれぞれに関連するキーワードを、ランディングリソース、検索照会、またはユーザデバイスに関連するキーワードと比較することを含むことができる。ステップ1612は、イメージのうちのどれが最も関係するのかを、キーワード比較に基づいて判定することと、生成されるコンテンツアイテム内での使用のために最も関係するイメージを選択することとを含むことができる。
まだ図16を参照すると、プロセス1600は、選択されたイメージを含むサードパーティコンテンツアイテムを生成すること(ステップ1614)とそのサードパーティコンテンツアイテムをユーザデバイスに供給すること(ステップ1616)とを含んで図示されている。選択されたイメージを含むサードパーティコンテンツアイテムの生成は、以前にランディングリソースから抽出され、生成されるコンテンツアイテム内での使用のために選択された(たとえば、プロセス1300〜1500の1つまたは複数のステップを実行することによって)、テキスト断片、フォントファミリ、カラースキーム、および/またはレイアウトと選択されたイメージを組み合わせることを含むことができる。ユーザデバイスへのコンテンツアイテムの供給は、ユーザデバイスまたは当事者リソースにコンテンツアイテムを配信することを含むことができる。ユーザデバイスは、当事者リソースコンテンツに関連してサードパーティコンテンツアイテムをレンダリングし、表示することができる。
サードパーティコンテンツアイテムは、ユーザデバイスによるサードパーティコンテンツアイテムとの相互作用の際にユーザデバイスをランディングリソースに案内するように構成され得る。コンテンツアイテムとの相互作用は、コンテンツアイテムの表示、コンテンツアイテム上でのホバリング、コンテンツアイテムのクリック、コンテンツアイテムのソース情報の表示、またはユーザデバイスとコンテンツアイテムとの間の任意の他のタイプの相互作用を含むことができる。コンテンツアイテムとの相互作用は、特定のコンテンツアイテムに関するユーザによる明示的なアクションを必要としない。いくつかの実施態様では、インプレッション(たとえば、コンテンツアイテムの表示または提示)は、相互作用の資格を得ることができる。どのユーザアクション(たとえば、能動的または受動的)が相互作用の資格を得るのかを定義する判断基準は、コンテンツリクエスタまたはコンテンツ生成システム114によって、個別に(たとえば、コンテンツアイテムごとに)決定され得る。
まだ図16を参照すると、プロセス1600は、サードパーティコンテンツアイテムを更新すべきかどうかを判定するために、サービング統計を収集し、変更に関してランディングリソースを監視すること(ステップ1618)を含んで図示されている。サービング統計の収集は、生成されたコンテンツアイテムがユーザデバイスに供給される回数の判定、生成されたコンテンツアイテムがユーザデバイスによって表示されもしくはクリックされる回数の判定、および/または生成されたコンテンツアイテムとユーザデバイスとの間の他の対話の検出を含むことができる。いくつかの実施態様では、ステップ1618は、生成されたコンテンツアイテムに関連する性能統計(たとえば、予測されたクリックスルーレート、実際のクリックスルーレート、変換の回数、利益性など)を評価することを含む。性能統計は、生成されたコンテンツアイテムが有効であり、したがって再利用されなければならないかどうか、または、生成されたコンテンツアイテムが有効ではなく、したがって新しいコンテンツアイテムによって置換(すなわち更新)されなければならないかどうかを示すことができる。
変化に関してランディングリソースを監視することは、イメージが抽出された時のランディングリソースのバージョンをランディングリソースの現在のバージョンと比較することを含むことができる。ランディングリソースが、イメージが抽出された時以降に変更されている(たとえば、新しいまたは異なるイメージ、新しいまたは異なるコンテンツなど)場合には、ステップ1618は、生成されたコンテンツアイテムが、ランディングリソースの変更されたコンテンツを反映するために更新されるべきであると判定することを含むことができる。ステップ1618で、生成されたコンテンツアイテムが更新されるべきであると判定される場合には、プロセス1600は、ランディングリソースから新しいイメージを抽出し、新たに抽出されたイメージを分析し、処理し、ランキングし、新たに抽出されたイメージを使用して新しいコンテンツアイテムを生成するために、繰り返され得る(たとえば、ステップ1604から開始して)。
本明細書で説明される主題および動作の実施態様は、デジタル電子回路網、または、本明細書で開示される構造とその構造的同等物とを含むコンピュータソフトウェア、ファームウェア、もしくはハードウェア、あるいはそれらのうちの1つまたは複数の組合せにおいて実施され得る。本明細書で説明される主題の実施態様は、1つまたは複数のコンピュータプログラムとして、すなわち、データ処理装置による実行のためまたはこれの動作を制御するために1つまたは複数のコンピュータ記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実施され得る。その代わりにまたはそれに加えて、プログラム命令は、データ処理装置による実行のために適切な受信器装置への伝送のために情報を符号化するために生成される人工的に生成された伝搬される信号(たとえば、機械生成された電気信号、光学信号、または電磁信号)上で符号化され得る。コンピュータ記憶媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムもしくはシリアルのアクセスメモリアレイもしくはデバイス、またはこれらのうちの1つまたは複数の組み合わせとすることができ、あるいはその中に含まれ得る。さらに、コンピュータ記憶媒体は、伝搬される信号ではないが、コンピュータ記憶媒体は、人工的に生成される伝搬される信号内で符号化されるコンピュータプログラム命令のソースまたは宛先とすることができる。コンピュータ記憶媒体は、1つまたは複数の別々のコンポーネントまたは媒体(たとえば、複数のCD、ディスク、または他のストレージデバイス)とすることもでき、あるいはその中に含まれることもできる。したがって、コンピュータ記憶媒体は、有形かつ非一時的である。
本開示で説明される動作は、1つまたは複数のコンピュータ可読ストレージデバイス上に記憶されまたは他のソースから受け取られるデータに対してデータ処理装置によって実行される動作として実施され得る。
用語「クライアント」または「サーバ」は、たとえばプログラマブルプロセッサ、コンピュータ、システムオンアチップ、複数の前記、または前記の組合せを含む、データを処理するためのすべての種類の装置、デバイス、および機械を含む。この装置は、特殊目的論理回路網、たとえばフィールドプログラマブルゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)を含むことができる。この装置は、ハードウェアに加えて、当該のコンピュータプログラムの実行環境を作成するコード(たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想計算機、またはこれらのうちの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(液晶ディスプレイ)、OLED(有機発光ダイオード)、TFT(薄膜トランジスタ)、もしくは他の柔軟な構成、または、ユーザに情報を表示するための任意の他のモニタと、キーボードと、たとえばマウス、トラックボールなどのポインティングデバイスまたはタッチスクリーンと、タッチパッドなど)上で実施され得る。他の種類のデバイスを使用して、ユーザとの相互作用を提供することもでき、たとえば、ユーザに提供されるフィードバックを、任意の形の感覚フィードバック(たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)とすることができ、ユーザからの入力を、音響、音声、または触覚入力を含む任意の形で受け取ることができる。さらに、コンピュータは、ユーザによって使用されるデバイスへ文書を送り、そのデバイスから文書を受け取ることによって、たとえば、ウェブブラウザから受け取られる要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送ることによって、ユーザと相互作用することができる。
本開示で説明される主題の実施態様は、バックエンドコンポーネント(たとえば、データサーバとして)を含むコンピューティングシステム内、ミドルウェアコンポーネント(たとえば、アプリケーションサーバ)を含むコンピューティングシステム内、ユーザがそれを介して本開示で説明される主題の実施態様と対話することのできるグラフィカルユーザインターフェースもしくはウェブブラウザを有するフロントエンドコンポーネント(たとえば、クライアントコンピュータ)を含むコンピューティングシステム内、または1つもしくは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せで実施され得る。このシステムのコンポーネントは、デジタルデータ通信(たとえば通信ネットワーク)の任意の形または媒体によって相互接続され得る。通信ネットワークの例は、LAN、WAN、インターネットワーク(たとえば、インターネット)、およびピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
本明細書は、多数の特定の実施詳細を含むが、これらが、いかなる開示の範囲に対する限定または請求され得るものの限定としても解釈されてはならず、これらは、特定の開示の特定の実施態様に固有の特徴の説明と解釈されなければならない。本開示において別々の実施態様の文脈で説明されるある種の特徴は、単一の実施態様において組み合わせて実施されることも可能である。逆に、単一の実施態様の文脈で説明される様々な特徴を、複数の実施態様で別々にまたは任意の適切な副組合せで実施することもできる。さらに、特徴が、上ではある種の組合せで作用するものとして説明され、当初にそのようなものとして請求される場合があるが、請求される組合せからの1つまたは複数の特徴が、いくつかの場合に組合せから請求される場合があり、請求される組合せが、副組合せまたは副組合せの変形を対象とする場合がある。
同様に、動作が、図面において特定の順序で示されるが、これを、所望の結果を達成するために、そのような動作が図示の特定の順序または順次順序で実行されることを必要とすると理解してはならず、すべての図示の動作が実行されることを必要とすると理解してはならない。ある種の状況では、マルチタスキングおよび並列処理が有利になる場合がある。さらに、上で説明された実施態様の様々なシステムコンポーネントの分離は、すべての実施態様においてそのような分離を要求するものと理解されてはならず、説明されたプログラムコンポーネントおよびシステムが、一般に、単一のソフトウェア製品に一緒に統合されまたは1つまたは複数の有形の媒体上で実施される複数のソフトウェア製品にパッケージ化されることが可能であることを理解されたい。
本明細書で開示される特徴は、インターネット接続性をより伝統的なテレビジョン番組ソース(たとえば、ケーブル、衛星、無線、または他の信号を介して受信される)と統合するように構成された処理回路を含むことができるスマートテレビジョンモジュール(または、接続されたテレビジョンモジュール、ハイブリッドテレビジョンモジュールなど)で実施され得る。スマートテレビジョンモジュールは、テレビジョンセットに物理的に組み込まれ得、または、セットトップボックス、ブルーレイまたは他のデジタルメディアプレイヤ、ゲーム機、ホテルテレビジョンシステム、および他のコンパニオンデバイスなどの別々のデバイスを含むことができる。スマートテレビジョンモジュールは、視聴者が、ウェブ上、ローカルケーブルTVチャネル上、衛星TVチャネル上、またはローカルハードドライブに記憶されたビデオ、映画、写真、および他のコンテンツを検索し、見つけることを可能にするように構成され得る。セットトップボックス(STB)またはセットトップユニット(STU)は、チューナを含み、テレビジョンセットおよび信号の外部ソースに接続し、信号をテレビジョンスクリーンまたは他のディスプレイデバイスに表示されるコンテンツにすることのできる情報家電デバイスを含むことができる。スマートテレビジョンモジュールは、ウェブブラウザ、複数のストリーミングメディアサービス(たとえば、Netflix、Vudu、Huluなど)、接続されたケーブルメディアソース、接続された衛星メディアソース、他のウェブ「チャネル」、その他など、複数の異なるアプリケーションに関するアイコンを含むホームスクリーンまたはトップレベルスクリーンを提供するように構成され得る。スマートテレビジョンモジュールは、さらに、電子番組ガイドをユーザに提供するように構成され得る。スマートテレビジョンに対するコンパニオンアプリケーションは、利用可能な番組に関する追加情報をユーザに提供し、ユーザがスマートテレビジョンモジュールを制御することを可能にするなどのため、モバイルコンピューティングデバイス上で動作可能とすることができる。代替実施形態では、特徴を、ラップトップコンピュータもしくは他のパーソナルコンピュータ、スマートフォン、他の携帯電話機、ハンドヘルドコンピュータ、タブレットPC、または他のコンピューティングデバイス上で実施することができる。
したがって、本主題の特定の実施態様が説明された。他の実施態様は、以下の特許請求の範囲の範囲内にある。いくつかの場合に、請求項で列挙される行為を、異なる順序で実行し、それでも所望の結果を達成することができる。さらに、添付図面に示されたプロセスは、必ずしも、所望の結果を達成するために、図示の特定の順序または順次順序を必要とはしない。ある種の実施態様では、マルチタスキングおよび並列処理が有利になる場合がある。