(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-27
(45)【発行日】2024-07-05
(54)【発明の名称】検索エンジンの検索エンジン・インターフェースを用いてドキュメントのコーパスから1つ又は複数のランダム・サンプル・ドキュメントを提供するための方法、コンピュータ・プログラム、及びコンピュータ・システム
(51)【国際特許分類】
G06F 16/953 20190101AFI20240628BHJP
【FI】
G06F16/953
(21)【出願番号】P 2021578048
(86)(22)【出願日】2020-07-01
(86)【国際出願番号】 IB2020056210
(87)【国際公開番号】W WO2021001761
(87)【国際公開日】2021-01-07
【審査請求日】2022-12-23
(32)【優先日】2019-07-02
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】べスラー、ミヒャエル
(72)【発明者】
【氏名】ハンプバンミュラー、トーマス
(72)【発明者】
【氏名】ジョセフ、ジョジョ
(72)【発明者】
【氏名】ペトレンコ、パブロ
【審査官】松尾 真人
(56)【参考文献】
【文献】米国特許出願公開第2009/0006438(US,A1)
【文献】特表2014-519633(JP,A)
【文献】浦野 史隆,SNS情報間の時差相関解析,電子情報通信学会技術研究報告,一般社団法人電子情報通信学会,2016年09月01日,第116巻, 第213号,pp.79~84
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06Q 10/00-99/00
G16Z 99/00
(57)【特許請求の範囲】
【請求項1】
コンピュータが実行する、検索エンジンの検索エンジン・インターフェースを用い
てドキュメントのコーパスから1つ又は複数のランダム・サンプル・ドキュメントを提供するための方法であって、前記検索エンジンはドキュメントの前記コーパスにインデックス付けする検索インデックスを含み、前記コーパスの前記ドキュメントの各々にタイムスタンプが割り当てられ、前記方法は、
対象時間枠を決定することと、
前記1つ又は複数のランダム・サンプル・ドキュメントを提供することであって、前記ランダム・サンプル・ドキュメントの各々の前記タイムスタンプは前記対象時間枠内にある、提供することと、
を含み、前記ランダム・サンプル・ドキュメントの各々を提供することは、
時間ベースのバケットのセットから時間ベースのバケットをランダムに選択することであって、前記時間ベースのバケットのセットは前記対象時間枠を複数の時間ウィンドウに分け、前記時間ベースのバケットの各々は前記時間ウィンドウの1つを定義し、前記時間ウィンドウの各々について、前記それぞれの時間ウィンドウ内のタイムスタンプをもつ前記コーパスに含まれる前記ドキュメントの数は第1の事前定義基準を満たす、選択することと、
前記検索インデックスを用いた前記検索エンジンによる実行のために、検索クエリを前記検索エンジン・インターフェースに送ることであって、前記検索クエリは、前記ランダムに選択された時間ベースのバケットによって定義された前記時間ウィンドウ内のタイムスタンプをもつ前記コーパスのドキュメントの検索を定める、送ることと、
前記検索クエリを送ることに応答して、前記検索エンジン・インターフェースから検索結果を受け取ることであって、前記検索結果は、前記ランダムに選択された時間ベースのバケットによって定義された前記時間ウィンドウ内のタイムスタンプをもつ前記コーパスの前記ドキュメントの全てのセットを含む、受け取ることと、
受け取った前記ドキュメントのセットに含まれる前記ドキュメントの1つをランダムに選択することと
を含む、方法。
【請求項2】
前記時間ベースのバケットによる前記時間ウィンドウの前記定義は、前記時間ウィンドウ内の時間指定と前記時間ウィンドウの幅とを含む、請求項1に記載の方法。
【請求項3】
前記第1の事前定義基準は
、ドキュメントの事前定義された数を提供する、請求項1又は請求項2に記載の方法。
【請求項4】
前記第1の事前定義基準は
、ドキュメントの事前定義された数の範囲を提供する、請求項1から請求項3までのいずれか1項に記載の方法。
【請求項5】
前記対象時間枠を決定することは、
前記コーパスの前記ドキュメントに割り当てられた最も古いタイムスタンプを決定することと、
前記コーパスの前記ドキュメントに割り当てられた最も新しいタイムスタンプを決定することと
を含み、
前記対象時間枠は、前記最も古いタイムスタンプから前記最も新しいタイムスタンプに及ぶ時間間隔から選択される、請求項1から請求項4までのいずれか1項に記載の方法。
【請求項6】
前記対象時間枠は、前記最も古いタイムスタンプから前記最も新しいタイムスタンプに及ぶ前記時間間隔以下の長さである、請求項5に記載の方法。
【請求項7】
前記時間ベースのバケットをランダムに選択するために、前記方法は、第1の検索クエリを用いて、前記時間ベースのバケットのセットの第1のサブセットの第1の時間ベースのバケットを決定することをさらに含み、前記第1の時間ベースのバケットの各々を決定することは、
事前定義された幅をもつ、前記対象時間枠内の第1の時間ウィンドウを選択することと、
前記第1の時間ウィンドウ内のタイムスタンプをもつ前記コーパスのドキュメントの検索を定める第1の検索クエリを生成することと、
前記検索インデックスを用いて前記検索エンジンにより実行するために、前記第1の検索クエリを前記検索エンジン・インターフェースに送ることと、
前記第1の検索クエリを送ることに応答して、前記検索エンジン・インターフェースから第1の検索結果を受け取ることであって、前記第1の検索結果は、前記第1の検索クエリによって定められた前記第1の時間ウィンドウ内のタイムスタンプをもつ前記コーパスのドキュメントのセットを含む、受け取ることと、
前記受け取った第1の検索結果が、前記時間ベースのバケットに含まれる前記ドキュメントの数に関する前記第1の事前定義基準を満たす場合には、前記第1の検索クエリによって用いられる前記第1の時間ウィンドウの定義を含む前記第1の時間ベースのバケットを生成することと、
そうでなければ、前記第1の時間ウィンドウを調整し、前記調整された第1の時間ウィンドウをもつ調整された第1の検索クエリを用いてさらなる検索を実行することと
を含む、請求項1から請求項6までのいずれか1項を含む方法。
【請求項8】
前記さらなる検索の前記第1の検索結果が前記第1の事前定義基準を満たすか又は事前定義された反復の最大数に達するまで、前記第1の時間ウィンドウの調整と、前記調整された第1の時間ウィンドウをもつ調整された第1の検索クエリを用いたさらなる検索の実行とを反復する、請求項7に記載の方法。
【請求項9】
前記第1の時間ウィンドウを調整することは、前記第1の時間ウィンドウの前記幅を調整することを含み、前記第1の時間ウィンドウ内のタイムスタンプが割り当てられた前記コーパスのドキュメントの数が多すぎて前記受け取った第1の検索結果が前記第1の事前定義基準を満たさない場合には、前記第1の時間ウィンドウの前記幅を縮小させ、前記第1の時間ウィンドウ内のタイムスタンプが割り当てられた前記コーパスのドキュメントの数が少なすぎて前記受け取った第1の検索結果が前記第1の事前定義基準を満たさない場合には、前記第1の時間ウィンドウの前記幅を拡大させる、請求項7又は請求項8に記載の方法。
【請求項10】
前記方法は、前記時間ベースのバケットの前記第1のサブセットを格納することをさらに含む、請求項7から請求項9までのいずれか1項に記載の方法。
【請求項11】
前記時間ベースのバケットをランダムに選択するために、前記方法は、前記時間ベースのバケットのセットの第2のサブセットの第2の時間ベースのバケットを予測することをさらに含み、前記第2の時間ベースのバケットは、予測された第2の時間ウィンドウの全てが前記第1の事前定義基準を満たすように前記第1の時間ベースのバケットを用いて前記対象時間枠内の第2の時間ウィンドウを定義する、請求項
7から請求項10までのいずれか1項に記載の方法。
【請求項12】
前記予測することは、前記第2の時間ベースのバケットを予測するように訓練された機械学習モデルを生成することを含み、前記機械学習モデルを生成することは、
前記第1の時間ベースのバケットを用いて訓練セットを提供することであって、各々の訓練セットは、前記第1の時間ベースのバケットによって定義された第1の時間ウィンドウに割り当てられた、訓練入力データとしての時間指定と、訓練出力データとしての前記それぞれの第1の時間ウィンドウの幅とを含む、提供することと、
前記訓練セットに対して学習アルゴリズムを実行して前記機械学習モデルを生成することと
を含む、請求項11に記載の方法。
【請求項13】
前記機械学習モデルを用いて予測することは、
時間指定を含む第1の入力データを前記機械学習モデルに提供することであって、前記提供された時間指定は前記対象時間枠内にあり、一方、前記それぞれの時間指定は前記第1の時間ベースのバケットによって定義された前記第1の時間ウィンドウの外にある、提供することと、
前記第1の入力データを提供することに応答して、前記機械学習モデルから、前記第1の入力データによって提供された前記時間指定をもつ第2の時間ウィンドウを定義する第2の時間ベースのバケットの予測を含む第1の出力データを受け取ることであって、前記予測された第2の時間ベースのバケットの前記第2の時間ウィンドウは、前記第1の事前定義基準を満たす、受け取ることと
をさらに含む、請求項12に記載の方法。
【請求項14】
前記方法は、前記時間ベースのバケットの前記第2のサブセットを格納することをさらに含む、請求項11から請求項13までのいずれか1項に記載の方法。
【請求項15】
前記時間ベースのバケットのセットから前記時間ベースのバケットをランダムに選択することは、
前記対象時間枠内のランダムに選択された時間指定を含む第2の入力データを前記機械学習モデルに提供することと、
前記第2の入力データを提供することに応答して、前記機械学習モデルから、第2の出力データを受け取ることであって、第2の出力データは、前記ランダムに選択された時間指定を含みかつ前記第1の事前定義基準を満たす前記時間ウィンドウを定義する前記時間ベースのバケットのセットからの前記時間ベースのバケットを含む、受け取ることと
を含む、請求項12又は請求項13に記載の方法。
【請求項16】
前記時間ベースのバケットをランダムに選択するために、前記方法は、前記時間ベースのバケットのセットの
うちの前記第1のサブセットの第1の時間ベースのバケットとは異なる第3のサブセットの第3の時間ベースのバケットを決定することをさらに含み、前記第3の時間ベースのバケットを決定することは、時間ベースのバケットの1つ又は複数の格納された第3のサブセットを取得することを含
み、
前記第2の時間ベースのバケットを予測することは、前記第3の時間ベースのバケットを用いて前記第2の時間ベースのバケットを予測することをさらに含む、請求項
11から請求項15までのいずれか1項に記載の方法。
【請求項17】
前記方法は、前記検索結果に含まれる前記ドキュメントの数に関する第2の事前定義基準を前記受け取った検索結果が満たすかどうかチェックすることをさらに含み、前記第2の事前定義基準が満たされない場合には、前記ランダムに選択された時間ベースのバケットによって定義された前記時間ウィンドウの幅を調整する、請求項1から請求項16までのいずれか1項に記載の方法。
【請求項18】
前記第2の事前定義基準は、前記検索結果に含まれる前記ドキュメントの数と一致するドキュメントの数を定義する、請求項17に記載の方法。
【請求項19】
前記第2の事前定義基準は、前記検索結果の前記ドキュメントの数を含むことになる数の範囲を定義する、請求項17に記載の方法。
【請求項20】
前記時間ウィンドウを調整することは、前記時間ウィンドウの前記幅を調整することを含み、前記時間ウィンドウ内のタイムスタンプをもつ前記コーパスのドキュメントの数が多すぎて前記受け取った検索結果が前記第2の事前定義基準を満たさない場合には、前記時間ウィンドウの前記幅を縮小させ、前記時間ウィンドウ内のタイムスタンプをもつ前記コーパスのドキュメントの数が少なすぎて前記受け取った検索結果が前記第2の事前定義基準を満たさない場合には、前記時間ウィンドウの前記幅を拡大させる、請求項17から請求項19までのいずれか1項に記載の方法。
【請求項21】
前記方法は、前記ランダムに選択された時間ベースのバケットによって定義された前記時間ウィンドウを調整することに応じて、少なくとも、前記ランダムに選択された時間ベースのバケットに隣接する時間ベースのバケットによって定義された前記時間ウィンドウを調整することをさらに含む、請求項17から請求項20までのいずれか1項に記載の方法。
【請求項22】
前記方法は、提供された前記1つ又は複数のランダム・サンプル・ドキュメントを用いて統計分析を行うことをさらに含む、請求項1から請求項21までのいずれか1項に記載の方法。
【請求項23】
検索エンジンの検索エンジン・インターフェースを用いて、ドキュメントのコーパスから1つ又は複数のランダム・サンプル・ドキュメントを提供するためのコンピュータ・プログラムであって、コンピュータに、請求項1から請求項22までのいずれか1項に記載の方法における各ステップを実行させる、コンピュータ・プログラム。
【請求項24】
検索エンジンの検索エンジン・インターフェースを用いて、ドキュメントのコーパスから1つ又は複数のランダム・サンプル・ドキュメントを提供するためのコンピュータ・システムであって、前記検索エンジンは、前記ドキュメントのコーパスにインデックス付けする検索インデックスを含み、前記コーパスの前記ドキュメントの各々にはタイムスタンプが割り当てられ、前記コンピュータ・システムは、プロセッサと、機械実行可能プログラム命令を格納するメモリとを含み、前記プロセッサによる前記プログラム命令の実行は、前記プロセッサに、
対象時間枠を決定することと、
前記1つ又は複数のランダム・サンプル・ドキュメントを提供することであって、前記ランダム・サンプル・ドキュメントの各々の前記タイムスタンプが前記対象時間枠内にある、提供することと
を行わせるようにコンピュータ・システムを制御させ、前記ランダム・サンプル・ドキュメントの各々を提供することは、
時間ベースのバケットのセットから時間ベースのバケットをランダムに選択することであって、前記時間ベースのバケットのセットは前記対象時間枠を複数の時間ウィンドウに分け、前記時間ベースのバケットの各々は前記時間ウィンドウの1つを定義し、前記時間ウィンドウの各々について、前記それぞれの時間ウィンドウ内のタイムスタンプをもつ前記コーパスに含まれる前記ドキュメントの数は第1の事前定義基準を満たす、選択することと、
前記検索インデックスを用いた前記検索エンジンによる実行のために、検索クエリを前記検索エンジン・インターフェースに送ることであって、前記検索クエリは、前記ランダムに選択された時間ベースのバケットによって定義された前記時間ウィンドウ内のタイムスタンプをもつ前記コーパスのドキュメントに対する検索を定める、送ることと、
前記検索クエリを送ることに応答して、前記検索エンジン・インターフェースから検索結果を受け取ることであって、前記検索結果は、前記ランダムに選択された時間ベースのバケットによって定義された前記時間ウィンドウ内のタイムスタンプをもつ前記コーパスの前記ドキュメントのセットの全てを含む、受け取ることと、
受け取った前記ドキュメントのセットに含まれる前記ドキュメントの1つをランダムに選択することと
を含む、コンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、電子データ処理の分野に関し、より具体的には、検索エンジンからのランダム・サンプリングに関する。
【背景技術】
【0002】
非特許文献1の論文では、非特許文献2が参照されており、ここでは、検索エンジンのパブリック・インターフェースのみを用いて、検索エンジンによってインデックス付けされたドキュメントのコーパスから、ドキュメントをランダム・サンプリングするための手法について記載される。ランダム・クエリは公式化され、検索エンジンにサブミットされる。返された結果のセットから、均一に選択されたドキュメントが選び出される。ランダム・クエリを構築するためには、検索されるコーパスのドキュメントに表示される用語のレキシコン(lexicon)が必要である。レキシコン内の各用語は、その頻度の推定を伴う。ランダム・クエリは、その推定頻度に基づいて、レキシコンから用語を検索語としてランダムに選択し、その論理積(conjunction)又は論理和(disjunction)を取ることによって公式化される。レキシコンは、前処理ステップにおいて、ドキュメントのコーパスをクロールする(crawl)ことによって構築される。
【0003】
Bharat及びBroderの技術は、長いドキュメントに有利であるという欠点を有するが、それは、そうしたドキュメントはコンテンツが豊富であるため、一般に短いドキュメントよりもはるかに多くのランダム・クエリと一致するためである。別の問題は、パブリック検索エンジンは、一般に、クエリの結果の全リストにアクセスすることができず、むしろ、結果の事前定義された最大数、すなわち上位N個の結果にしかアクセスできないことである。そのため、N個より多い可能な結果があるランダム・クエリの場合、Bharat-Broder手法は、上位N個の検索結果の中で高い静的な(static)ランクをもつドキュメントに偏ってしまう。これは特に、ランダム検索語の論理和組み合わせをもつクエリの場合に当てはまり得る。この問題を緩和するために、Bharat及びBroder手法では、推定用語頻度を用いて、N個より多い結果を返す可能性の低いクエリを選択する。しかしながら、検索エンジンによってインデックス付けされたドキュメントのコーパスのドキュメントの数が桁違いに増大する一方で、Nは一般に、一定に保持され、クエリ選択のためのこの解決法は、効果がなくなる。むしろ、これらのランダム用語を含む論理和クエリが、N個未満の結果を返すようなランダム用語を見つけるのは、殆ど不可能であり得る。N個未満の結果をもつ論理和クエリが見つかった場合、これらのクエリを用いると、コーパスの小さなサブセットのみが実際にサンプリングされるという欠点を有することがある。クエリに含まれるランダム用語の数を増大させることによって、N個未満の結果をもつ論理積クエリを構築することは容易であるとしても、より多くのランダム用語を用いると、より長いドキュメント、特に辞書及び単語リストのような様々な用語を有するドキュメントへの偏りが大きくなる。
【0004】
非特許文献1に記載されるもののように、この偏りを回避するBharat-Broader手法を修正する場合でも、真のランダム・サンプルを、特に多言語の大規模なコーパスから作成するのは高価であるというBharat-Broaderにおける欠点は残る。ランダム・サンプルを取得するために、検索インターフェースを何百万回も呼び出すことがある。
【先行技術文献】
【非特許文献】
【0005】
【文献】Z.Bar-Yossef及びM.Gurevich著、「Random sampling from a search engine’s index」ACMのジャーナル、第55巻、5版、論文番号24、2008年
【文献】K.Bharat及びA.Broder著、「A technique for measuring the relative size and overlap of public Web search engines」、第7回International World Wide Web Conference(WWW7)予稿集、379-388頁、1998年
【文献】Z.Bar-Yossef及びM.Gurevich著、「Efficient search engine measurements」、第16回International World Wide Web Conference(WWW)の予稿集、401~410頁、2007年
【文献】A.Broder、M.Fontoura、V.Josifovski、R.Kumar、R.Motwani、S.Nabar、R.Panigrahy、A.Tomkins及びY.Xu著、「Estimating corpus size via queries」、CIKMの予稿集、594~630頁、2006年
【発明の概要】
【0006】
種々の実施形態は、独立請求項の主題により説明されるような、検索エンジンの検索エンジン・インターフェースを用いて、ドキュメントのコーパスから1つ又は複数のランダム・サンプル・ドキュメントを提供するための方法、並びに、本方法を実行するためのコンピュータ・プログラム製品及びコンピュータ・システムを提供する。有利な実施形態は、従属請求項に説明される。本発明の実施形態は、相互排他的でない場合、自由に組み合わせることができる。
【0007】
一態様において、本発明は、検索エンジンの検索エンジン・インターフェースを用いて、ドキュメントのコーパスから1つ又は複数のランダム・サンプル・ドキュメントを提供する方法に関する。検索エンジンは、ドキュメントのコーパスにインデックス付けする検索インデックスを含む。コーパスのドキュメントの各々には、タイムスタンプが割り当てられる。
【0008】
方法は、対象となる時間枠(time frame)を決定することを含む。1つ又は複数のランダム・サンプル・ドキュメントが提供される。ランダム・サンプル・ドキュメントの各々のタイムスタンプは、対象時間枠内にある。
【0009】
ランダム・サンプル・ドキュメントの各々を提供することは、時間ベースのバケットのセットから時間ベースのバケットをランダムに選択することを含む。時間ベースのバケットのセットは、対象時間枠を複数の時間ウィンドウ(time window)に分ける。時間ベースのバケットの各々は、時間ウィンドウの1つを定義する。時間ウィンドウの各々について、それぞれの時間ウィンドウ内のタイムスタンプをもつコーパスに含まれるドキュメントの数は第1の事前定義された基準(predefined criterion)を満たす。検索インデックスを用いた検索エンジンによる実行のために、検索クエリを検索エンジン・インターフェースに送る。検索クエリは、ランダムに選択された時間ベースのバケットによって定義された時間ウィンドウ内のタイムスタンプをもつコーパスのドキュメントの検索を定める。検索クエリを送ることに応答して、検索エンジン・インターフェースから検索結果を受け取る。検索結果は、ランダムに選択された時間ベースのバケットによって定義された時間ウィンドウ内のタイムスタンプをもつコーパスのドキュメントの全てのセットを含む。受け取ったドキュメントのセットに含まれるドキュメントの1つをランダムに選択する。
【0010】
実施形態によれば、時間ベースのバケットをランダムに選択するために、方法は、第1の検索クエリを用いて、時間ベースのバケットのセットの第1のサブセットの第1の時間ベースのバケットを決定することをさらに含む。第1の時間ベースのバケットの各々を決定することは、事前定義された幅をもつ対象時間枠内の第1の時間ウィンドウを選択することを含む。第1の時間ウィンドウ内のタイムスタンプをもつコーパスのドキュメントの検索を定める第1の検索クエリを生成する。検索インデックスを用いた検索エンジンによる実行のために、第1の検索クエリを検索エンジン・インターフェースに送る。第1の検索クエリを送ることに応答して、検索エンジン・インターフェースから第1の検索結果を受け取る。第1の検索結果は、第1の検索クエリによって定義された第1の時間ウィンドウ内のタイムスタンプをもつコーパスのドキュメントのセットを含む。受け取った第1の検索結果が、時間ベースのバケットに含まれるドキュメントの数に関する第1の事前定義基準を満たす場合には、第1の検索クエリによって用いられる第1の時間ウィンドウの定義を含む第1の時間ベースのバケットを生成する。そうでなければ、第1の時間ウィンドウを調整し、調整された第1の時間ウィンドウをもつ調整された第1の検索クエリを用いて、さらなる検索を実行する。
【0011】
実施形態によれば、時間ベースのバケットをランダムに選択するために、方法は、時間ベースのバケットのセットの第2のサブセットの第2の時間ベースのバケットを予測することをさらに含む。第2の時間ベースのバケットは、第1の時間ベースのバケットを用いて事前定義された時間枠内の第2の時間ウィンドウを定義し、予測された第2の時間ウィンドウの全てが第1の事前定義基準を満たすようにする。
【0012】
実施形態によれば、方法は、受け取った検索結果が、検索結果に含まれるドキュメントの数に関する第2の事前定義基準を満たすかどうかチェックすることをさらに含む。第2の事前定義基準が満たされない場合には、ランダムに選択された時間ベースのバケットによって定義された時間ウィンドウの幅を調整する。
【0013】
実施形態によれば、方法は、提供された1つ又は複数のランダム・サンプル・ドキュメントを用いて統計分析を行うことをさらに含む。
【0014】
さらなる態様において、本発明は、検索エンジンの検索エンジン・インターフェースを用いて、ドキュメントのコーパスから1つ又は複数のランダム・サンプル・ドキュメントを提供するための機械実行可能プログラム命令を有する不揮発性のコンピュータ可読ストレージ媒体を含むコンピュータ・プログラム製品に関する。検索エンジンは、ドキュメントのコーパスにインデックス付けする検索インデックスを含む。コーパスのドキュメントの各々にはタイムスタンプが割り当てられる。
【0015】
コンピュータのプロセッサによってプログラム命令を実行することにより、プロセッサがコンピュータ・システムを制御して、対象時間枠を決定する。1つ又は複数のランダム・サンプル・ドキュメントが提供される。ランダム・サンプル・ドキュメントの各々のタイムスタンプは対象時間枠内にある。
【0016】
ランダム・サンプル・ドキュメントの各々を提供することは、時間ベースのバケットのセットから時間ベースバケットをランダムに選択することを含む。時間ベースのバケットのセットは、対象時間枠を複数の時間ウィンドウに分ける。時間ベースのバケットの各々は、時間ウィンドウの1つを定義する。時間ウィンドウの各々について、それぞれの時間ウィンドウ内のタイムスタンプをもつコーパスに含まれるドキュメントの数は、第1の事前定義基準を満たす。検索インデックスを用いた検索エンジンによる実行のために、検索クエリを検索エンジン・インターフェースに送る。検索クエリは、ランダムに選択された時間ベースのバケットによって定義された時間ウィンドウ内のタイムスタンプをもつコーパスのドキュメントの検索を定める。検索クエリを送ることに応答して、検索エンジン・インターフェースから検索結果を受け取る。検索結果は、ランダムに選択された時間ベースのバケットによって定義された時間ウィンドウ内のタイムスタンプをもつコーパスの全てのドキュメントのセットを含む。受け取ったドキュメントのセットに含まれるドキュメントの1つをランダムに選択する。
【0017】
さらなる態様において、本発明は、検索エンジンの検索エンジン・インターフェースを用いて、ドキュメントのコーパスから1つ又は複数のランダム・サンプル・ドキュメントを提供するためのコンピュータ・システムに関する。検索エンジンは、ドキュメントのコーパスにインデックス付けする検索インデックスを含む。コーパスのドキュメントの各々にはタイムスタンプが割り当てられる。コンピュータ・システムは、プロセッサと、機械実行可能プログラム命令を格納するメモリとを含む。
【0018】
プロセッサによるプログラム命令の実行は、プロセッサに、コンピュータ・システムを制御させ、対象時間枠を決定させる。1つ又は複数のランダム・サンプル・ドキュメントを提供する。ランダム・サンプル・ドキュメントの各々のタイムスタンプは、対象時間枠内にある。
【0019】
ランダム・サンプル・ドキュメントの各々を提供することは、時間ベースのバケットのセットから時間ベースバケットをランダムに選択することを含む。時間ベースのバケットのセットは、対象時間枠を複数の時間ウィンドウに分ける。時間ベースのバケットの各々は時間ウィンドウの1つを定義する。時間ウィンドウの各々について、それぞれの時間ウィンドウ内のタイムスタンプをもつコーパスに含まれるドキュメントの数は、第1の事前定義基準を満たす。検索インデックスを用いて検索エンジンによって実行するために、検索クエリが検索エンジン・インターフェースに送られる。検索クエリは、ランダムに選択された時間ベースのバケットによって定義された時間ウィンドウ内のタイムスタンプをもつコーパスのドキュメントの検索を定める。検索クエリを送ることに応答して、検索エンジン・インターフェースから検索結果を受け取る。検索結果は、ランダムに選択された時間ベースのバケットによって定義された時間ウィンドウ内のタイムスタンプをもつコーパスの全てのドキュメントのセットを含む。受け取ったドキュメントのセットに含まれるドキュメントの1つがランダムに選択される。
【図面の簡単な説明】
【0020】
以下に、本発明の実施形態が、図面を参照しながら単なる例としてより詳細に説明される。
【0021】
【
図1】実施形態による例示的なコンピュータ・システムを示す概略図を示す。
【
図2】実施形態による例示的な検索インフラストラクチャを示す概略図を示す。
【
図3】実施形態によるドキュメントの例示的なバケット化(bucketing)を示す概略図を示す。
【
図4】実施形態によるランダム・サンプル・ドキュメントを提供するための例示的な方法の概略フロー図を示す。
【
図5】実施形態による時間ベースのバケットを決定するための例示的な方法の概略フロー図を示す。
【
図6】実施形態による時間ベースのバケットを決定するための例示的な方法の概略フロー図を示す。
【発明を実施するための形態】
【0022】
本発明の種々の実施形態の説明は、例証の目的で提示したものであるが、網羅的であることも、又は開示された実施形態に限定することも意図しない。当業者には、説明される実施形態の範囲及び趣旨から逸脱することなく、多くの修正及び変形が明らかであろう。本明細書で用いられる用語は、市場で見出される技術よりも優れた実施形態の原理、実際的な応用、又は技術的改善を最も良く説明するために、又は、当業者である他の者が、本明細書に開示される実施形態を理解することを可能にするために、選択されたものである。
【0023】
実施形態は、検索エンジンを介してアクセスされるドキュメントのコーパスからランダム・サンプル・ドキュメントを提供するための効率的な方法を提供するという有益な効果を有することができる。既知の手法とは異なり、実施形態は、ドキュメントを取り出すためにコンテンツ・ベースの検索語に依存せず、むしろ時間ベースの検索語に依存する。検索クエリの結果、従って、実施形態によるサンプリングは、コンテンツにもドキュメントの長さにも依存しない。言い換えれば、ドキュメントのコンテンツにもドキュメントのサイズにも依存しない、ドキュメントを取得するための手法が提供される。従って、サンプリングがドキュメントのコンテンツ又はサイズに関して偏りのないことを保証するために、付加的な労力も付加的な測定も必要ない。実施形態は、ドキュメントもしくはドキュメントのコンテンツ又はその両方が、異なる言語又はフォーマットのドキュメント、又は多言語ドキュメントのような異なるタイプを含む場合に特に有益であり得る。
【0024】
実施形態は、検索インデックスもしくはドキュメントのコーパス又はその両方への直接アクセス又は所有権を必要とせずに、ランダム・サンプリングが可能になるという有益な効果を有することができる。それにもかかわらず、実施形態は、検索結果のドキュメントに対して検索エンジンによって課せられたどのようなランキングとも無関係な場合がある。
【0025】
ドキュメントは、例えば、データファイル、テキストファイル、音声ファイル、イメージファイル、又はビデオ・ファイルなどの任意のタイプの電子ファイルとすることができる。ランダム・サンプル・ドキュメントは、ドキュメントのコーパスの統計分析に用いることができる。サンプリングは、コーパスのドキュメントの特性もしくはドキュメントによって提供されるデータに記述される特徴又はエンティティの特性又はその両方を推定するために用いることができる。サンプリングを用いると、コーパスの各ドキュメントを分析するよりも費用効率が高く迅速なデータ収集が提供されるという利点を有することができる。各々の個々のサンプル・ドキュメントは、ランダムに、全く偶然に選択されるので、コーパスの各ドキュメントは、サンプリング・プロセス中のどの段階でも選択される確率は同じであり得る。
【0026】
検索エンジンは、検索クエリで指定された特定の情報について、ドキュメントのコーパスの検索、例えばウェブ検索を体系的に実行するように設計されたソフトウェア・システムである。検索結果は、使用される検索クエリによって定められた検索基準を満たすドキュメントを識別するリストの形で提示することができる。リストは、コーパスのそれぞれのドキュメントへのポインタ、例えばリンクを含むことができる。検索エンジンはさらに、ドキュメントのコーパスをクロールもしくはインデックス付け又はその両方を行うように構成することができる。インデックス付けは、データを収集し、構文解析し、インデックスの形で格納することを含み、高速で正確な情報の取り出しを容易にすることができる。インデックスは、コーパスのドキュメントの各々へのポインタを含むことができる。
【0027】
実施形態を用いて、大規模なクラウド・データソースのようなドキュメントのコーパスに対して、ある種のデータ、例えば機微(センシティブ)データがコーパス内に存在するリスクがどれだけ大きいかについてのリスク評価を提供することができる。ドキュメントがデータファイルの場合は、統計的なデータ分析を行うことができる。このようにして、特定のイベントの発生又は生産設備もしくはコンピュータ・システムのようなシステムの状態を判断することができる。このような統計分析の結果は、リスクを防止するもしくは問題を解決する又はその両方を行うために取るべきアクションを判断するために使用することができる。結果は、保全管理、すなわち必要なデバイス、機器、機械、建物のインフラストラクチャのサービス、修理又は交換、及びユーティリティのサポートに用いることができる。結果は、特に予知保全(predictive maintenance)に用いることができる。
【0028】
実施形態によれば、検索エンジン・インターフェースは、イントラネット又はインターネットのようなネットワークを介してアクセスされる。ウェブとも呼ばれるWorld Wide Webを介して提供されるデータのような非構造化データは急速に増大しており、データの管理がますます困難になっている。非構造化データに対するクエリの効率的な実行を可能にするために、検索インデックスが用いられる。しかしながら、大規模な非構造化データのセット、特に急速に増大しているセットに対して検索インデックスを生成し、保持するのは複雑で時間がかかり、高価である場合がある。そのような機能をそのまま提供する、Share Pointのようなアプリケーション、又は例えばDropbox(登録商標)、OneDrive(登録商標)、Google Drive(登録商標)などのクラウド・データソースがある。しかしながら、特に、インデックスに何百万ものドキュメントが含まれており、例えば、一般データ保護規則(GDPR:General Data Protection Regulation)のためにインデックス上で実行可能なオペレーションに時間制限がある場合、インデックスの全てのドキュメントを適時に分析することは不可能であることがある。より迅速なもしくはより効率的な又はその両方の判断を可能にするためには、統計的方法を用いて大規模データセットのごく一部の代表的部分のみを調査し、データセット全体、すなわちドキュメントのコーパスについて妥当な結論を導き出せば十分であり得る。しかしながら、一般に、統計分析のためにランダム・ドキュメントを取り出すことを可能にするには、真のランダム・サンプルを提供できるように、データセット全体への無制限のアクセスが必要である。検索インデックスを用いてデータセットにアクセスする場合、検索インデックスへの無制限アクセスが必要である。しかしながら、このような検索インデックスへの無制限のアクセスは、通常、その所有者用である。実施形態は、アクセスが制限されている場合でも、既存の、例えばパブリック検索エンジン・インターフェースを用いて、真にランダム・サンプルの生成を可能にするという有益な効果を有することができる。
【0029】
実施形態は、ランダム・サンプルを提供し、例えばクライアント・デバイス上で提供されるアプリケーションが、ランダム・サンプルを用いて統計分析を行うことを可能にするという有益な効果を有することができる。統計分析のためにランダム・サンプルを必要とする可能性のあるアプリケーションのタイプは、例えば、GDPR又は機微データ評価の文脈で動作するアプリケーションを含むことができる。ランダム・サンプルを用いて、大規模なドキュメント・コーパスが、例えば、クレジットカード番号、生年月日、社会保障番号などの機微データを含まないかどうかをチェックすることができる。他のタイプのアプリケーションは、小さいランダム・サンプル、すなわちデータのサブセットを用いて、何らかの種類のリスクに関して大規模なデータセットのコンテンツをチェックするリスク評価アプリケーションである。
【0030】
バケットは、定義された範囲内のパラメータ値を含むドキュメントを選択するために用いられるパラメータのセット又は範囲を定義する。時間ベースのバケットは、時間ベースのパラメータ、すなわち時間指定(time specification)の範囲を定義し、定義された範囲、すなわち時間ウィンドウ内の時間指定を含むドキュメントを選択するのに用いられる。このように、時間ベースのバケットのセットは、コーパスの時間枠を複数の時間ウィンドウに分け、各時間ウィンドウは、それぞれの時間ウィンドウ内の時間指定をもつコーパスのドキュメントのサブセットを含む。
【0031】
実施形態によれば、時間ベースのバケットの定義は、各ドキュメントに割り当てられた時間指定、例えば、ドキュメントの作成時間、公開時間、又は最後の修正時間に基づいている。対照的に、用語ベースのバケットの定義は、ドキュメントに含まれるレキシコン用語もしくはレキシコン用語の組み合わせ又はその両方、すなわち、ドキュメントのコンテンツに基づいている。実施形態は、例えばドキュメントの作成時間又は公開時間に基づいてひとたび決定されたバケットが時間の経過とともに安定し、検索エンジンの外部で持続することができるという、有益な効果を有することができる。ドキュメントは、作成又は公開時にコーパスに追加され、検索エンジンによってインデックス付けされると仮定すると、コーパスの修正は、最も新しい期間に限定される可能性がある。より古いドキュメントのストックは一定のままであるため、そうしたドキュメントについてのバケットのあらゆる定義は有効なままである場合がある。さらに、ランダム・サンプルを得るために必要とし得るクエリの数がはるかに少なくなるため、検索エンジンへの負荷を軽減させ、従って、ランダム・サンプルをより迅速に決定することを確実にすることができる。
【0032】
実施形態によれば、ドキュメントの所与のコーパスをバケット化することができ、すなわち、コーパスが複数のバケットに分けられる。ランダム・サンプリングの場合、バケットは、この複数のバケットからランダムに選び出されてもよく、ドキュメントは、ランダムに選び出されたバケットからランダムに選択されてもよい。
【0033】
実施形態によれば、バケットは以下の要件を満たすことができる。バケットごとのドキュメントの数、すなわちバケットのサイズは、検索エンジンにより検索結果に課される結果数の制限よりも小さくすることができる。同じサイズの時間ベースのバケットは、それぞれの時間ウィンドウ内のドキュメントの密度が互いに異なる場合には、異なるサイズの時間ウィンドウを定義することができる。ドキュメントのコーパス内の各ドキュメントが同じ確率でランダムに選択されるように、全てのバケットが同じサイズを有することができる。バケットが異なるサイズを有する場合は、それぞれが同じ確率でランダムに選ばれることを保証するように、付加的な処理を実行することができる。あるバケットのドキュメントの1つをランダムに選択する際、サンプリング処理の数学的な正しさを保証するために、付加的な棄却サンプリング(rejection sampling)を実行することができる。
【0034】
直接サンプリングするのが困難なターゲット分布d1については、棄却サンプリングは、試行分布d2からのサンプリングが容易なもの(easy-to-sample-from trial distribution d2)を用いることができ、d2からのサンプルを利用して、d1からのサンプリングをシミュレートする。サンプルは、サンプルが採択される(accept)まで、試行分布d2から繰り返し生成される。サンプルXが採択されるかどうか決定するために、採択-棄却手順が適用される。採択-棄却は、採択関数と呼ばれる採択確率pRSでサンプルXを採択する。棄却サンプリグは、採択-棄却手順を用いて、d2とd1との間のギャップを埋める。d1が一様分布であり、d2が非一様分布である場合、採択-棄却手順は、高い採択確率を、d2における低い確率を有するインスタンスに割り当て、低い採択確率を、d2における高い確率を有するインスタンスに割り当てる。このように、採択-棄却手順は、任意のd1及びd2について、採択されたサンプルの分布が正確にターゲット分布d1となるように分布d2を平滑化する。
【0035】
実施形態は、少ない数のクエリでバケットを決定するという有益な効果を有することができる。各クエリは検索エンジンの負荷を意味し、一部の検索エンジンはクエリ・レートの制限を有するため、できるだけ少ないクエリでバケットを決定することが好ましい。これは、事前定義された時間間隔ごとに許容されるクエリの数が制限されていることを意味する。
【0036】
実施形態では、第1の時間ベースのバケット、すなわち検索クエリを用いて決定された時間ベースのバケットを用いて、さらなる時間ベースのバケット、すなわち第2の時間ベースのバケットを予測できるという有益な効果を有することができる。対象時間枠を分ける時間ベースのバケットのセットにおける全ての時間ベースのバケットが検索クエリを用いて決定される必要はない。第1の時間ベースのバケット、すなわち時間ベースのバケットのセットのサブセットだけが、検索クエリを用いて決定される。従って、検索エンジンに送られる検索クエリの数を最小にすることができる。第1の時間ベースのバケットは、対象時間枠にわたって、例えば均等に又はランダムに分散していてもよい。実施形態によれば、予測された時間ベースのバケットを用いて、例えば正確さのテストが成功した後で、より多くの時間ベースのバケットを予測することができる。実施形態によれば、予測された時間ベースのバケットは、さらなる予測に用いるために、第2の事前定義基準を満たす必要がある場合がある。
【0037】
実施形態は、ランダム・サンプリングの際、受け取った検索結果が第2の事前定義基準を満たすかどうかをチェックすることによって、時間ベースのバケットの決定を改善できるという有益な効果を有することができる。例えば、時間ベースのバケットを改善することができる。従って、必要に応じて、第2の時間ベースのバケットの予測の品質をチェックし、改善することができる。例えば、機械学習モデルのような、第2の時間ベースのバケットの予測に用いられるモデルを改善することができる。機械学習モデルの場合、機械学習モデルは、改善された時間ベースのバケットを付加的な訓練データとして用いて再訓練することができる。実施形態によれば、第1及び第2の事前定義基準は、同一であってもよい。実施形態によれば、第1及び第2の事前定義基準は、異なっていてもよい。
【0038】
実施形態によれば、バケット化を作成するためのアルゴリズムは、できるだけ少ないクエリを使用するように、初期バケット化段階において最適化される。この最適化は、第1の時間ベースのバケットを決定すること、もしくはサンプリングの際の検索結果をチェックすること又はその両方を含むことができる。実施形態によれば、検索エンジンからランダム・サンプル・ドキュメントを取り出す間、時間ベースのバケットを経時的にさらに最適化し、例えば検索結果をチェックすることによって、より良好な分布を得ることができる。実施形態は、ランダム・ドキュメントが取り出される、時間ベースのバケットによって提供される時間ウィンドウの定義を改善することを可能にするという有益な効果を有することができる。実施形態は、検索インフラストラクチャに対して、性能がより良好であり、クエリ負荷がより少ないことを保証するという有益さを有することができる。
【0039】
実施形態によれば、第2の事前定義基準は、検索結果に含まれるドキュメントの数と一致するドキュメントの数を定義する。実施形態は、ランダム・サンプリングに用いられる全ての時間ベースのバケットが、同数のドキュメントを含む検索結果を提供することを保証するという有益な効果を有することができる。
【0040】
実施形態によれば、第2の事前定義基準は、検索結果のドキュメントの数を含むことになる数の範囲を定義する。実施形態は、ランダム・サンプリングに用いられる全ての時間ベースのバケットが、同じ範囲内のドキュメントの数を有する検索結果を提供することを保証するという有益な効果を有することができる。
【0041】
実施形態によれば、時間ウィンドウの調整は、時間ウィンドウの幅を調整することを含む。時間ウィンドウ内のタイムスタンプをもつコーパスのドキュメントの数が多すぎて第2の事前定義基準を満たさない場合、時間ウィンドウの幅は縮小され、一方、時間ウィンドウ内のタイムスタンプをもつコーパスの数が少なすぎて第2の事前定義基準を満たさない場合、時間ウィンドウの幅は拡大される。実施形態は、各検索結果が第2の事前定義された検索基準を満たすように、時間ベースのバケットに基づき検索結果によって提供されるドキュメントの数を調整する効率的な方法を提供するという有益な効果を有することができる。
【0042】
実施形態によれば、方法は、ランダムに選択された時間ベースのバケットによって定義された時間ウィンドウの調整に応じて、少なくとも、ランダムに選択された時間ベースのバケットに隣接する時間ベースのバケットによって定義された時間ウィンドウを調整することをさらに含む。実施形態は、ランダムに選択された時間ベースのバケットに隣接する時間ベースのバケットをさらに調整するという有益な効果を有することができる。このように、調整は、単一の時間ベースのバケットに制限されず、さらなる時間ベースのバケットにも作用させることができる。ランダムに選択された時間ベースのバケットの時間ウィンドウの幅が縮小した場合、対象となる全時間枠が時間ベースのバケットによって定義された時間ウィンドウによってカバーされることを保証するため、及び/又は隣接する時間ベースのバケットに基づく検索結果が、依然として第2の事前定義基準を満たすことを保証するために、1つ又は複数の隣接する時間ベースのバケットの時間ウィンドウの幅も調整しなければならないことがある。ランダムに選択された時間ベースのバケットの時間ウィンドウの幅が拡大した場合、時間ウィンドウの重複を避けるために、1つ又は複数の隣接する時間ベースのバケットの時間ウィンドウの幅を縮小させなければならないことがある。ランダムに選択された時間ベースのバケットの時間ウィンドウの幅が縮小した場合、対象時間枠を完全にカバーするのを保証するために、1つ又は複数の隣接する時間ベースのバケットの時間ウィンドウの幅を拡大させなければならないことがある。さらに、隣接する時間ベースのバケットを縮小又は拡大させることで、さらなる補償、すなわち縮小又は拡大が必要となる場合があり、これは第2の事前定義基準が依然として満たされることを保証するためである。
【0043】
時間ベースのバケットを効率的に作成する種々のアルゴリズムの実装が可能であり得る。本明細書に記載されるアルゴリズムは例示的なアルゴリズムに過ぎず、本発明はこれらのアルゴリズムに限定されるものではない。
【0044】
実施形態によれば、検索エンジンによってインデックス付けされたドキュメントのコーパスの以下の重要な特徴の1つ又は複数を取得することができる。すなわち、コーパスに含まれるドキュメントの総数、コーパスに含まれるドキュメントの1つに割り当てられた最も古い時間指定、コーパスのドキュメントの1つに割り当てられた最も新しい時間指定である。ドキュメントの総数は、現在のコーパスに含まれる実際のドキュメントの数の形で提供されてもよく、又は推定数の形で提供されてもよい。最も古い時間指定を識別することは、コーパスに含まれる最も古いドキュメント、例えば最も古い作成日もしくは最も古い公開日又はその両方が割り当てられたドキュメントを取り出すことを含むことができる。最も新しい時間指定を識別することは、コーパスに含まれる最も新しいドキュメント、例えば、最も新しい作成日もしくは最も新しい公開日又はその両方が割り当てられたドキュメントを取り出すことを含むことができる。最も古いドキュメント及び最も新しいドキュメントを取り出すような、前述の重要な特徴を取得するために、検索エンジンの機能に応じて適切なクエリを用いることができる。
【0045】
機械学習によって例示的にサポートされるサンプル擬似アルゴリズムは、以下を含むことができる。:
Set desired_accuracy=N1(desired_accuracy(所望の精度)=N1を設定する)(desired_accuracyは、到達時に処理の終了を可能にする閾値である。この文脈における精度は、MLモデルの品質尺度と考えることができる。利用可能なラベル付きデータセット、例えば時間ベースのバケットの第1のサブセット及び第1の時間ベースのバケットに含まれるドキュメントの数の訓練/テスト分割(train/test split)の後、MLモデルは、分割の結果得られた訓練セットを用いて訓練され、分割の結果得られたテストセットの時間ベースのバケットにおけるドキュメントの数を予測するように要求される。正しい予測に含まれるドキュメントの数をカウントし(標準偏差又は他の種類の誤差測定に対する一定の許容範囲が与えられると仮定すると)、テストセットにおけるドキュメントの総数で除算することができる。例えば、N1=90);
Set max_iterations=N2(max_iterations(最大反復)=N2を設定する)(抽出されたバケットを用いて機械学習が実行される前に、バケットを抽出するために実行される反復の最大数を定める、例えば、N2=50);
Set max_queries=N3(max_queries(最大クエリ)=N3を設定する)(バケットを抽出するために、反復ごとに実行されるクエリの最大数を定める、例えば、N3=100);
Set bucket_size=N4(bucket_size(バケット・サイズ)=N4を設定する)(バケットごとの意図したドキュメント数を定める、例えばN4=20);
Set bucket_widths={}(bucket_widths(バケット幅)={}を設定する)(バケット幅の空の辞書を初期化し、バケット幅の辞書のキーはタイムスタンプであり、値は、それぞれのタイムスタンプを含む時間間隔すなわち時間ウィンドウであり、コーパスからドキュメントを選択するために、それぞれの時間間隔が検索クエリの検索パラメータとして用いられる場合、ドキュメントの「bucket_size」数を取り出す;
Calibrate bucket width at a given time-stamp(所与のタイムスタンプにおけるバケット幅を較正する){
bucket_widthが空である場合、bucket_width(例えば分での)=T、例えばT=60であり、;他の場合には、bucket_widthsから最も近いタイムスタンプに割り当てられたバケット幅の値が決定される
}
While max_iterations not exceeded(max_iterations(最大反復)を上回らない){
While max_queries not exceeded(max_queries(最大クエリ)を上回らない){
事前定義された時間枠内でランダムなタイムスタンプを生成する(時間枠は、コーパスに含まれるドキュメントに割り当てられた最も古いタイムスタンプ及び最も新しいタイムスタンプによって制限される場合がある);
ランダムなタイムスタンプを用いて、タイムスタンプ及び時間ウィンドウ=calibrate()でクエリを構築する;
クエリを実行し、ランダムなタイムスタンプを用いて、所与の時間ウィンドウ=calibrate()におけるドキュメントの数を見出す;
ランダムなタイムスタンプを含む時間間隔を決定し、ドキュメントの「bucket_size」の数を取り出す
}
ランダムなタイムスタンプ及び決定した時間間隔で、bucket_widthsの辞書を更新する
}
例えば、オフセット、年の1日、曜日、1日のうちの時間などの特徴を用いて、LSTM又は多項式回帰アルゴリズムによりモデルの精度を計算する;
精度>desierd_accuracyの場合、停止する。
【0046】
実施形態によれば、ドキュメントの各々について、それぞれのドキュメントのタイムスタンプが、それぞれのドキュメントの作成時間、公開時間、又は最も新しい修正時間を指定する。実施形態によれば、各ドキュメントは、それぞれのドキュメントに割り当てられたタイムスタンプを含む。
【0047】
実施形態によれば、時間ベースのバケットによる時間ウィンドウの定義は、時間ウィンドウ内の時間指定、例えば、ある時点と、時間ウィンドウの幅とを含む。時間指定は、デジタル日付及び時間情報を含むタイムスタンプによって提供されるような、単一の時点とすることができる。時間情報は、時、分もしくは秒又はそれらの組み合わせを含むことができる。実施形態によれば、時間指定は、年の1日、曜日、1日のうちの時間の形で提供することができる。実施形態によれば、時間指定は、現在時刻もしくは日付又はその両方からのオフセットの形で提供することができる。
【0048】
実施形態によれば、時間指定は、時間ウィンドウの開始点を定める。実施形態によれば、時間指定は、時間ウィンドウの終点を定める。実施形態によれば、時間指定は、時間ウィンドウの中心点を定める。
【0049】
実施形態によれば、第1の事前定義基準は、一致するドキュメントの事前定義された数を提供する。実施形態は、コーパスが、時間ウィンドウの各々について、それぞれの時間ウィンドウ内のタイムスタンプと同数のドキュメントを含むことを保証するという有益な効果を有することができる。実施形態によれば、第1の事前定義基準は、一致するドキュメントの事前定義された数の範囲を提供する。実施形態は、コーパスが、時間ウィンドウの各々について、それぞれの時間ウィンドウ内のタイムスタンプをもつドキュメントの数を含み、それにより全てのドキュメント数が同じ範囲内にあることを保証するという有益な効果を有することができる。言い換えれば、ドキュメント数に関する差異は、異なる時間ベースのバケットにおいては制限される。
【0050】
実施形態によれば、方法は、コーパスに含まれるドキュメントの総数を決定することをさらに含む。実施形態によれば、コーパスに含まれるドキュメントの総数は、検索エンジン・インターフェースから要求される。実施形態によれば、コーパスに含まれるドキュメントの総数は、コーパスのドキュメントに含まれるランダムな検索語の組み合わせを含む検索クエリを用いて推定される。実施形態は、さらなる時間ベースのバケットの適切で正確な予測を可能にするために決定されることが必要な第1の時間ベースのバケットの数、すなわち反復数を選択するために、コーパスに含まれるドキュメントの総数を用いることができるという有益な効果を有することができる。総数が多いほど、第2の時間ベースのバケットの適切で正確な予測を保証するために、より多くの第1の時間ベースのバケットが必要になり得る。総数が少ないほど、第2の時間ベースのバケットの適切で正確な予測を保証するために、より少ない第1の時間ベースのバケットが必要になり得る。
【0051】
インデックス付けされたドキュメントのコーパスに含まれるドキュメントの総数は、例えば、非特許文献1、非特許文献3、又は非特許文献4に記載されように、例えば、検索エンジンのAPIを介して提供すること、又はサンプル・クエリに基づいて推定することができる。
【0052】
実施形態によれば、対象時間枠を決定することは、コーパスのドキュメントに割り当てられた最も古いタイムスタンプを決定することを含む。さらに、コーパスのドキュメントに割り当てられた最も新しいタイムスタンプが決定される。対象時間枠は、最も古いタイムスタンプから最も新しいタイムスタンプに及ぶ時間間隔から選択される。実施形態は、対象時間枠、すなわち最も古いタイムスタンプから最も新しいタイムスタンプに及ぶ時間間隔の最大サイズを決定する方法を提供するという有益な効果を有することができる。
【0053】
コーパスに含まれる最も古いドキュメント、従って、ドキュメントの1つに割り当てられた最も古い時間指定を識別するために、サンプル・クエリを用いることができる。さらに、時間枠の探索、時間のソートもしくは結果の調査又はそれらの組み合わせを用いることもできる。最も新しいドキュメント、従って、ドキュメントの1つに割り当てられた最も新しい時間指定は、サンプル・クエリを用いて識別することができる。さらに、時間枠の探索、時間のソートもしくは結果の調査又はそれらの組み合わせを用いることができる。
【0054】
実施形態によれば、対象時間枠は、最も古いタイムスタンプから最も新しいタイムスタンプに及ぶ時間間隔に等しくてもよい。実施形態は、対象時間枠に可能な最大サイズを用いるという有益な効果を有することができる。実施形態によれば、対象時間枠は、最も古いタイムスタンプから最も新しいタイムスタンプに及ぶ時間間隔よりも短い。実施形態は、最も古いタイムスタンプから最も新しいタイムスタンプに及ぶ時間間隔から選択される対象時間枠の使用を可能にするという有益な効果を有することができる。こうしたより短い対象時間枠により、バケット化のために必要な計算労力がより少ないものになり得る。ドキュメントのコーパスのバケット化は、対象となる特定の時間枠に制限することができる、すなわち、バケット化のために、それぞれの時間枠内のタイムスタンプが割り当てられたコーパスのドキュメントのサブセットしか考慮に入れる必要はない。例えば、過去10年間のドキュメントのみを考慮に入れればよい。対象時間枠は、統計分析を行うアプリケーションによって定めることができる。対象時間枠は、実行される統計分析に依存することができる。
【0055】
実施形態によれば、第1の時間ウィンドウの調整と、調整された第1の時間ウィンドウをもつ調整された第1の検索クエリを用いるさらなる検索の実行とは、さらなる検索の第1の検索結果が第1の事前定義基準を満たすまで又は事前定義された反復の最大数に達するまで、反復される。実施形態は、多くの反復、すなわち検索クエリを回避しながら、第1の事前定義基準を満たす第1の時間ベースのバケットに対して第1の時間ウィンドウが決定されることを保証するという有益な効果を有することができる。事前定義された反復の最大数に達した場合、第1の事前定義基準を満たさない第1の時間ウィンドウを棄却し、別の第1の時間ウィンドウを選択することができる。
【0056】
実施形態によれば、第1の時間ウィンドウはランダムに選択することができる。実施形態によれば、選択された第1の時間ウィンドウは、対象時間枠にわたって均等に分布することができる。
【0057】
実施形態によれば、検索結果に含まれるドキュメントの最大数は、検索エンジンによって定められた結果数の制限によって制限される。従って、検索エンジンの結果は、検索クエリに対して返されるドキュメントの最大数を制限するという制約を受けることがある。検索クエリに答えて検索エンジンにより提供される結果は、クエリに対して定められた検索パラメータを実際に満たす全てのドキュメントの小さいサブセットしか含まないことがある。
【0058】
実施形態によれば、方法は、検索エンジンの結果数の制限を決定することを含むことができる。第1の事前定義基準は、検索結果に含まれるドキュメントの数が結果数の制限よりも小さくなり、第1の事前定義基準を満たすことを可能にすることを要求するように定義することができる。実施形態によれば、検索エンジンによって定められる結果数の制限は、検索エンジン・インターフェースから要求される。実施形態によれば、検索エンジンによって定められる結果数の制限は、テスト検索クエリを用いて決定される。結果数の制限は、100ドキュメントのオーダー、例えば250、500、750、又はそれより多いドキュメント、例えば1000ドキュメントのオーダーとすることができる。
【0059】
実施形態は、時間ベースのバケットを用いて生成された検索クエリが、用いられた時間ベースのバケットの時間ウィンドウ内のタイムスタンプをもつコーパスの全てのドキュメントを含む検索結果を提供することを保証するという有益な効果を有することができる。
【0060】
実施形態によれば、第1の時間ウィンドウを調整することは、第1の時間ウィンドウの幅を調整することを含む。第1の時間ウィンドウ内のタイムスタンプが割り当てられたコーパスのドキュメント数が多すぎて、検索結果が第1の事前定義基準を満たさない場合には、第1の時間ウィンドウの幅を縮小させ、一方、第1の時間ウィンドウ内のタイムスタンプが割り当てられたコーパスのドキュメント数が少なすぎて、第1の事前定義基準を満たさない場合には、第1の時間ウィンドウの幅を拡大させる。
【0061】
実施形態は、第1の事前定義基準が満たされるように、第1の時間ウィンドウを調整するための効果的な方法を提供するという有益な効果を有することができる。
【0062】
実施形態によれば、時間ベースのバケットの第1のサブセットに含まれる第1の時間ベースのバケットの数は、時間ベースのバケットのセットに含まれる時間ベースのバケットの数よりも少ない。実施形態は、検索クエリを用いて時間ベースのバケット、すなわち第1の時間ベースのバケットを決定する労力が、対象時間枠全体をカバーするために必要な時間ベースのバケットの僅かな部分に対してのみ実行すればよいという有益な効果を有することができる。検索エンジンによって、さらなる検索クエリを実行することを必要とすることなく、必要とされる時間ベースのバケットの残りを予測することができる。
【0063】
実施形態によれば、方法は、時間ベースのバケットの第1のサブセットを格納することをさらに含む。実施形態は、サンプリングの際に時間ベースのバケットをランダムに選択するため、及び/又は現在の対象時間枠と少なくとも部分的に重複する対象となる別の時間枠のバケット化のため、及び/又は後のサンプリングのために、格納された時間ベースのバケットの第1のサブセットを用いることができるという有益な効果を有することができる。
【0064】
実施形態によれば、予測することは、補間及び外挿の少なくとも一方を含むことができる。実施形態は、第2の時間ベースのバケットを予測するための効果的な方法を提供するという有益な効果を有することができる。例えば、予測のために、回帰分析に基づいた回帰モデルを用いることができる。例えば、時系列分析を用いることができる。実施形態によれば、時間ベースのバケットをランダムに選択することは、例えば、乱数発生器又は疑似乱数発生器を用いて、対象時間枠内のある時点をランダムに選択することと、時間ウィンドウの幅の分布の予測を用いてランダムに選択された時点についての時間ウィンドウを決定することとを含むことができる。
【0065】
実施形態によれば、予測することは、第2の時間ベースのバケットを予測するように訓練された機械学習モデルを生成することを含むことができる。機械学習モデルを生成することは、第1の時間ベースのバケットを用いて訓練セットを提供することを含むことができる。各訓練セットは、第1の時間ベースのバケットによって定義された第1の時間ウィンドウに割り当てられた時間指定を訓練入力データとして、及び、それぞれの第1の時間ウィンドウの幅を訓練出力データとして含む。さらに、機械学習モデルを生成するために、訓練セットに対して学習アルゴリズムを実行することができる。
【0066】
実施形態は、第2の時間ベースのバケットを効果的かつ効率的に予測するように訓練された機械学習モデルを提供するという有益な効果を有することができる。従って、第2の時間ベースのバケットを決定するために検索クエリを必要としない。
【0067】
機械学習という用語は、自動化された方法で確率モデル(機械学習モデルと呼ばれる)を構築することによって、訓練データセットから有用な情報を抽出するために用いられるコンピュータ・アルゴリズムを指す。機械学習は、線形回帰、K平均法(K-means)、分類アルゴリズム、強化アルゴリズム等のような1つ又は複数の学習アルゴリズムを用いて実行することができる。モデルは、例えば、他の既知の値から測定されない値を予測することを可能にする方程式又は規則のセットとすることができる。一実施形態によれば、機械学習モデルは、多項式回帰モデル又は深層学習モデル、例えば長短期記憶(LSTM)のような人工回帰型ニューラル・ネットワーク(RNN)である。
【0068】
多項式回帰は、独立変数xと従属変数yとの間の関係をxのn次多項式としてモデル化する回帰分析の形式である。多項式回帰は、xの値とyの対応する条件付き平均との間の非線形関係、すなわちE(y|x)に適合する。
【0069】
実施形態によれば、機械学習モデルを用いて予測することは、時間指定を含む第1の入力データを機械学習モデルに提供することをさらに含む。提供された時間指定は、対象時間枠内にあり、一方、それぞれの時間指定は、第1の時間ベースのバケットによって定義された第1の時間ウィンドウの外にある。第1の入力データを提供することに応答して、機械学習モデルから、第1の入力データによって提供された時間指定をもつ第2の時間ウィンドウを定義する第2の時間ベースのバケットの予測を含む第1の出力データを受け取る。予測された第2の時間ベースのバケットの第2の時間ウィンドウは、第1の事前定義基準を満たす。
【0070】
実施形態は、第1の時間ベースのバケットを補完するように第2の時間ベースのバケットを予測し、対象時間枠全体を分ける時間ベースのバケットのセットを決定することができるようにするという有益な効果を有することができる。
【0071】
実施形態によれば、方法は、時間ベースのバケットの第2のサブセットを格納することをさらに含む。実施形態は、時間ベースのバケットをランダムに選択するために、第2の時間ベースのバケットを提供できるという有益な効果を有することができる。
【0072】
実施形態によれば、時間ベースのバケットのセットから時間ベースのバケットをランダムに選択することは、対象時間枠内のランダムに選択された時間指定を含む第2の入力データを機械学習モデルに提供することを含む。第2の入力データの提供に応答して、機械学習モデルから、ランダムに選択された時間指定を含み、第1の事前定義基準を満たす時間ウィンドウを定義する時間ベースのバケットのセットからの時間ベースのバケットを含む第2の出力データを受け取る。
【0073】
実施形態は、機械学習モデルが生成されるとすぐに、第1の時間ベースのバケットを必要としなくてもよいという有益な効果を有することができる。機械学習モデルを用いて、対象時間枠内の任意のランダムに選択された時間指定に対する時間ベースのバケットを予測することができる。従って、時間ベースのバケットをランダムに選択することは、例えば、乱数発生器又は疑似乱数発生器を用いて、対象時間枠内のある時点をランダムに選択することと、機械学習モデルを用いてサンプリングの際に好適な時間ベースのバケットを予測することとを含むことができる。
【0074】
実施形態によれば、時間ベースのバケットをランダムに選択するために、方法は、時間ベースのバケットのセットの第3のサブセットの第3の時間ベースのバケットを決定することをさらに含む。第3の時間ベースのバケットを決定することは、時間ベースのバケットの1つ又は複数の格納された第3のサブセットを取得することを含む。実施形態は、例えば、対象となる少なくとも部分的に重複する別の時間枠について、格納された時間ベースのバケット、すなわち時間ベースのバケットが以前に決定されているという有益な効果を有することができる。従って、それぞれの時間ベースのバケットを、検索クエリを用いて決定する必要はなく、再び予測する必要もない。それぞれの時間ベースのバケットは、むしろ、ローカルの、取り外し可能な、又は遠隔のストレージ媒体から取得することができる。実施形態によれば、時間ベースのバケットの1つ又は複数の第3のサブセットに含まれる第3の時間ベースのバケットの数は、時間ベースのバケットのセットに含まれる時間ベースのバケットの数よりも少ない。実施形態によれば、第3の時間ベースのバケットを第1の時間ベースのバケットと共に用いて、第2の時間ベースのバケットを予測することができる。実施形態によれば、第3の時間ベースのバケットを用いて、第1の時間ベースのバケットを補完することで、予測しなければならない第2の時間ベースのバケットをより少なくすることができる。実施形態によれば、時間ベースのバケットの第3のサブセットに含まれる第3の時間ベースのバケットの数は、時間ベースのバケットのセットに含まれる時間ベースのバケットの数と等しい。従って、格納された第3の時間ベースのバケットによって、時間ベースのバケットのセットからの全ての時間ベースのバケットを提供することができる。
【0075】
実施形態によれば、時間ベースのバケットの第3のサブセットの各々は、対象時間枠の連続したサブセクションを、時間ベースのバケットの第3のサブセットの第3の時間ベースのバケットによって定義される複数の第3の時間ウィンドウに分けることができる。
【0076】
実施形態によれば、コンピュータ・プログラム製品は、本明細書に記載されるドキュメントのコーパスから、1つ又は複数のランダム・サンプル・ドキュメントを提供するための方法の実施形態のいずれかを実施するように構成された機械実行可能プログラム命令をさらに含む。
【0077】
実施形態によれば、コンピュータ・システムは、本明細書に記載されるドキュメントのコーパスから、1つ又は複数のランダム・サンプル・ドキュメントを提供するための方法の実施形態のいずれかを実行するようにさらに構成される。
【0078】
図1は、サーバ200によって提供される検索エンジンの検索エンジン・インターフェースを用いて、ドキュメントのコーパス212から1つ又は複数のランダム・サンプル・ドキュメントを提供するように構成された例示的なコンピュータ・システム100を示す。コンピュータ・システム100及びサーバ200は、ネットワーク210、例えばイントラネット又はインターネットを介して通信することができる。ドキュメントのコーパス212は、ネットワーク210を介してアクセス可能なストレージ媒体上、例えばネットワーク210に含まれるサーバ上に格納することができる。或いは、ドキュメントのコーパス212は、ローカルもしくは遠隔又はその両方のストレージ媒体のような、サーバ200によってアクセス可能な1つ又は複数のストレージ媒体に格納することができる。本明細書に記載されるコンピュータ・システム100は、複数のプロセッサ・チップと、複数のメモリ・バッファ・チップと、メモリとを含む任意のタイプのコンピュータ化されたシステムとすることができることが理解されるであろう。コンピュータ・システム100は、例えば、パーソナル・コンピュータ、ワークステーション、又はミニコンピュータなどの汎用デジタル・コンピュータの形で実装することができる。
【0079】
例示的な実施形態において、ハードウェア・アーキテクチャの観点からいえば、
図1に示すように、コンピュータ・システム100は、プロセッサ105と、メモリ・コントローラ115に結合されたメモリ(メインメモリ)110と、ローカル入力/出力コントローラ135を介して通信可能に結合された1つ又は複数の入力及び/又は出力(I/O)デバイス(又は周辺機器)10、145とを含む。入力/出力コントローラ135は、これらに限定されるものではないが、当技術分野で知られるような、1つ又は複数のバス、又は他の有線もしくは無線接続とすることができる。入力/出力コントローラ135は、通信を可能にするために、コントローラ、バッファ(キャッシュ)、ドライバ、中継器及び受信機などの付加的な要素を有することができるが、それらは簡単にするために省略されている。さらに、ローカル・インターフェースは、前述のコンポーネント間の適切な通信を可能にするために、アドレス、制御、もしくはデータ接続又はそれらの組み合わせを含むことができる。
【0080】
プロセッサ105は、ソフトウェア、特にメモリ110に格納されたソフトウェアを実行するためのハードウェア・デバイスである。プロセッサ105は、任意の特注の又は市販のプロセッサ、中央処理ユニット(CPU)、コンピュータ・システム100に関連付けられた幾つかのプロセッサの中の補助プロセッサ、半導体ベースのマイクロプロセッサ(マイクロチップ又はチップセットの形の)、マクロプロセッサ、又は一般にソフトウェア命令を実行するための任意のデバイスとすることができる。
【0081】
メモリ110は、揮発性メモリ・モジュール(例えば、ランダム・アクセス・メモリ(DRAM、SRAM、SDRAM等の)RAM)及び不揮発性メモリ・モジュール(例えば、ROM、消去可能プログラム可能読み出し専用メモリ(EPROM)、電気的消去可能プログラム可能読み出し専用メモリ(EEPROM)、又はプログラム可能読み出し専用メモリ(PROM))のいずれか1つ又はそれらの組み合わせを含むことができる。メモリ110は、付加的なモジュールが互いに離れて位置するが、プロセッサ105によってアクセスすることができる分散型アーキテクチャを有し得ることに留意されたい。
【0082】
メモリ110内のソフトウェアは、1つ又は複数の別個のプログラムを含むことができ、その各々は、論理機能、とりわけ本発明の実施形態に関与する関数を実施するための実行可能命令の順序付けられたリストを含む。例えば、実行可能命令は、検索クエリを生成し、ネットワーク210を介して検索クエリをサーバ200に送り、検索結果を受け取るように構成することができる。実行可能命令は、サーバ200上の検索エンジンによって提供される検索エンジン・インターフェースを用いて、時間ベースのバケットを決定すること、もしくはドキュメントのコーパス212から1つ又は複数のランダム・サンプル・ドキュメントを提供すること、又はその両方を行うようにさらに構成することができる。メモリ110内のソフトウェアは、好適なオペレーティングシステム(OS)111をさらに含むことができる。OS111は、本質的に、可能なソフトウェア112などの他のコンピュータ・プログラムの実行を制御する。
【0083】
コンピュータ・システム100がPC、ワークステーション、インテリジェント・デバイス等である場合、メモリ110内のソフトウェアは、基本入力出力システム(BIOS)122をさらに含むことができる。BIOSは、起動時にハードウェアを初期化及びテストし、OS111を開始し、ハードウェア・デバイス間のデータ転送をサポートする必須のソフトウェア・ルーチンのセットである。BIOSは、コンピュータ・システム100がアクティブにされたときに実行することができるように、ROMに格納される。
【0084】
コンピュータ・システム100が動作中であるとき、プロセッサ105は、メモリ110内に格納されたソフトウェア112を実行し、データをメモリ110との間で通信し、ソフトウェアに従ってコンピュータ・システム100の動作を一般的に制御するように構成される。本明細書に記載される方法及びOS111は、全体的に又は部分的に(典型的には後者であるが)、プロセッサ105によって読み取られ、場合によってはプロセッサ105内でバッファに入れられ、その後実行される。
【0085】
ソフトウェア112はさらに、いずれかのコンピュータに関連したシステム又は方法による使用のために、又はそれらに関連して、ストレージ120などの任意のコンピュータ可読媒体に提供し格納することができる。ストレージ120は、HDDストレージなどのディスク・ストレージを含むことができる。
【0086】
例示的な実施形態において、従来のキーボード150及びマウス155を入力/出力コントローラ135に結合することができる。I/Oデバイス145などの他の出力デバイスは、例えば、これらに限定されるものではないが、プリンタ、スキャナ、マイクロフォン等の入力デバイスを含むことができる。最後に、I/Oデバイス10、145は、例えば、これらに限定されるものではないが、(他のファイル、デバイス、システム、又はネットワークにアクセスするための)ネットワーク・インターフェース・カード(NIC)又は変調器/復調器、無線周波数(RF)、又は他の送受信機、電話インターフェース、ブリッジ、ルータ等の入力及び出力の両方を通信するデバイスをさらに含むことができる。I/Oデバイス10、145は、当技術分野で知られる任意の一般化された暗号カード又はスマート・カードとすることができる。コンピュータ・システム100は、ディスプレイ130に結合されたディスプレイ・コントローラ125をさらに含むことができる。例示的な実施形態では、コンピュータ・システム100は、イントラネット又はインターネットのようなネットワーク210に結合するためのネットワーク・インターフェースをさらに含むことができる。ネットワークは、ブロードバンド接続を介して、コンピュータ・システム100、サーバ200のような任意の外部サーバ、他のクライアント等との間で通信するためのIPベースのネットワークとすることができる。ネットワーク210は、コンピュータ・システム100とサーバ200との間でデータを送受信し、サービス・カタログを提供する。例示的な実施形態では、ネットワーク210は、サービス・プロバイダによって行われる管理されたIPネットワークとすることができる。ネットワーク210は、例えば、Wi-Fi、WiMAX等のような無線プロトコル及び技術を用いて、無線方式で実装することができる。また、ネットワーク210は、ローカル・エリア・ネットワーク、広域ネットワーク、メトロポリタン・エリア・ネットワーク、インターネット・ネットワーク、又は他の同様のタイプのネットワーク環境などのパケット交換ネットワークとすることができる。ネットワークは、固定無線ネットワーク、無線ローカル・エリア・ネットワーク(LAN)、無線広域ネットワーク(WAN)、パーソナル・エリア・ネットワーク(PAN)、仮想プライベート・ネットワーク(VPN)、イントラネット、又は他の好適なネットワーク・システムとすることができ、信号を受送信するための機器を含む。
【0087】
サーバ200は、ネットワーク210を介してコンピュータ・システム100と通信するように構成された検索エンジン・インターフェースを有する検索エンジンを提供することができる。検索エンジンは、ドキュメントのコーパス212にインデックス付けする検索インデックス206を含むことができる。検索インデックス206は、サーバ200上に格納することができる。或いは、検索インデックス206は、サーバ200によりアクセス可能なローカル又は遠隔のストレージ媒体上に格納することができる。検索エンジンは、ネットワーク210を介して提供されるドキュメントをクロールし、ドキュメントにインデックス付けし、検索インデックス206を生成及び更新し、及び/又は検索インデックス206を用いてコーパス212のインデックス付けされたドキュメントを検索するように構成することができる。
【0088】
図2は、デジタル通信ネットワーク210、例えばWorld Wide Webを介して、サーバ200、例えばウェブ・サーバと通信するように構成されたコンピュータ・システム100を含む例示的な検索インフラストラクチャを示す。コンピュータ・システム100は、ネットワーク・インターフェースを用いて、検索クエリを、サーバ200によって提供される検索エンジン202の検索エンジン・インターフェース204に送ることができる。検索エンジン・インターフェース204は、例えば、パブリック・インターフェースとすることができる。検索エンジン202は、ドキュメントのコーパス212にインデックス付けする検索インデックス206を用いて、検索クエリを実行することができる。ドキュメントのコーパス212は、ネットワーク210上に、すなわちネットワーク210のノードによって提供することができる。検索エンジン202は、検索クエリによって定義された時間ベースの検索パラメータを満たすコーパス212に含まれるドキュメントを識別することができる。識別されたドキュメントは、ネットワーク210を介してサーバ200から受け取った検索結果を用いて、コンピュータ・システム100に提供することができる。検索結果は、ネットワーク210上のドキュメントにリンクされたそれぞれのドキュメントのリストを含むことができる。コンピュータ・システム100は、リンクを用いて、ネットワーク210から検索結果のそれぞれのドキュメントを取り出すことができる。
【0089】
図3は、作成日によるドキュメントの例示的なバケット化を示す。ドキュメントのコーパスのドキュメントの各々には、例えば、それぞれのドキュメントの作成日もしくは作成時間又はその両方を特定するタイムスタンプを割り当てることができる。時間ベースのバケットの第1のセット300は、検索クエリを用いて取得される。これらの時間ベースのバケット300の幅及びサイズ、すなわち検索クエリによって定められた時間ウィンドウの幅及び第1の時間ベースのバケットを取得するために用いられた検索結果に含まれるドキュメントの数を用いて、対象時間枠にわたる、例えば2010年2月21日から2019年1月7日までの時間における、例えば1日当たりに作成されるドキュメント302の数を予測することができる。この予測の一部として、時間ベースのバケットの第2のセット304を、対象時間枠全体をカバーするように予測することができる。クエリから取得される時間ベースのバケット300、並びに予測される時間ベースのバケット304を、N
maxドキュメントの最大バケット・サイズ(max size)、例えばN
max=20に制限することができる。言い換えれば、各々の時間ベースのバケット300、304は、それぞれのバケットに含まれるドキュメントの最大数を制限する事前定義基準を満たすように要求されることがある。ドキュメントの分布があまりにも疎である場合には、隣接する時間ウィンドウ310を検索パラメータとして用いたクエリの結果を、単一の時間ベースのバケットに併合することができる。言い換えれば、時間ベースのバケットの幅を拡大させて、隣接する時間ウィンドウ310をカバーすることができる。ドキュメントの分布があまりに密である場合には、それぞれの検索クエリによって検索パラメータとして用いられる時間ウィンドウ312、314を分割することによって、クエリの結果を別個の時間ベースのバケットに分割することができる。検索クエリの検索パラメータとして用いられる時間ウィンドウ312に含まれるドキュメントの数が、検索エンジンによって課される結果数の制限と同等又はそれより多い場合には、結果として得られるより狭い時間ウィンドウに含まれるドキュメントの数が各々検索クエリごとの結果数の制限よりも少なくなるように時間ウィンドウ312を分割することによって、時間ウィンドウ312の幅を縮小させることができる。検索クエリの検索パラメータとして用いられる時間ウィンドウ314に含まれるドキュメントの数が、事前定義された最大バケット・サイズよりも多い場合には、結果として得られるより狭い時間ウィンドウに含まれるドキュメントの数の各々が、事前定義された最大バケット・サイズよりも少なくなる又は同等になるように時間ウィンドウ314を分割することができる。調整された第1の時間ベースのバケット300を用いて、経時的に、すなわち対象時間枠にわたって作成されたドキュメント302のレートを予測することができる。調整された第1の時間ベースのバケット300に基づいて、第2の時間ベースのバケット304を、それらが事前定義された最大バケット・サイズを満たすように、すなわち事前定義された最大バケット・サイズを超えないように予測することができる。
【0090】
図4は、実施形態によるランダム・サンプル・ドキュメントを提供するための例示的な方法の概略的なフロー図を示す。ステップ400において、時間ベースのバケットが、時間ベースのバケットのセットからランダムに選択される。例えば、格納された時間ベースのバケットから、ランダムなバケット番号が選ばれ、又はランダムな時間指定が選ばれ、ランダムな時間指定を含む時間ベースのバケットが、例えば予測モデルを用いて決定される。ステップ402において、ランダムに選択された時間ベースのバケットは、検索エンジンを用いて検索インデックスで問い合わせされ、例えば時間ベースのバケットによって定義された時間ウィンドウに含まれるコーパスの全てのドキュメントを有する時間ベースのバケットの結果リストを含む検索結果を受け取る。ステップ404において、検索結果からの1つのドキュメントが、サンプル・ドキュメントとしてランダムに選択される。ステップ406において、サンプル・ドキュメントは、例えば検索結果によって提供されるリンクを用いて、コーパスからフェッチされる。ステップ408において、ステップ400で選択された時間ベースのバケットは、選択された時間ベースのバケットが小さすぎる場合には、左又は右の近傍の時間ベースのバケットで任意に調整することができ、選択された時間ベースのバケットが大きすぎる場合には、それぞれの時間ベースのバケットを分割することができる。このように、サンプリングの際、時間ベースのバケットのチェック及び調整をオンザフライ(on the fly)で実行することができる。より多くのサンプル・ドキュメントが必要な場合には、好適な数のランダム・サンプル・ドキュメントがフェッチされるまで、ステップ400乃至408を繰り返すことができる。ステップ410において、サンプル・ドキュメントは、例えば、リスク評価、リスク管理、エラー検出、エラー予測、エラー分析、保守もしくは予知保全又はそれらの組み合わせのような統計分析のために用いられる。実施形態によれば、ドキュメントをランダムに選択することは、サンプリング・プロセスの数学的正しさのために付加的な棄却サンプリグを用いることを含むことができる。
【0091】
図5は、時間ベースのバケットを決定するための例示的方法の概略的なフロー図を示す。ステップ500において、検索エンジンのメタデータを導出することができる。メタデータは、例えば、コーパスに含まれるドキュメントの数、対象時間枠内のコーパスの最も古いドキュメント、対象時間枠内のコーパスの最も新しいドキュメント、もしくは検索エンジンによって検索クエリ結果に課される結果数の制限又はそれらの組み合わせを含むことができる。ステップ502において、時間ベースのバケットのセットが決定される。時間ウィンドウを検索パラメータとしてもつ検索クエリを用いると、用いられる検索エンジンの結果制限数よりも少ない結果リストを生成することができる。ステップ502のさらなる詳細が、
図6に示される。ステップ504において、対象時間枠全体に対する時間ベースのバケットが利用可能であり、任意に検索エンジンの外部に格納して、例えばドキュメントのランダム・サンプリングのために、アプリケーションによって用いることができる。
【0092】
図6は、
図5のステップ502の詳細を提供する時間ベースのバケットを決定する例示的方法の概略的なフロー図を示す。ステップ600において、対象時間枠をもつランダムな時間指定が選択される。ステップ602において、選択された時間指定に対して時間ウィンドウが構築される。時間指定は、例えば、時間ウィンドウの開始点、終了点、又は中心点を定めることができる。時間ウィンドウの構築には、事前定義された幅、又は1つ又は複数の隣接する時間ベースのバケットの幅を用いることができる。ステップ604において、ステップ602の時間ウィンドウを検索パラメータとして用いて、検索クエリを生成し、検索エンジンにより、検索インデックスに対して検索クエリを実行する。ステップ606において、検索クエリの結果カウントがフェッチされ、すなわちクエリ結果に含まれるドキュメントの数が決定される。ステップ608において、検索に用いられる時間ウィンドウは、必要に応じて、クエリ結果サイズの制限に合うように、すなわちドキュメントの数に関する事前定義基準を満たすように調整される。時間ウィンドウの幅は、拡大されても、縮小されても、又は保持されてもよい。ステップ610において、ステップ608を調整した結果得られる、最終的な時間ウィンドウ、すなわち時間ベースのバケットが格納される。実施形態によれば、最終的な時間ウィンドウのバケットは、クエリ結果の幾つかのメタデータと共に格納することができる。ステップ604乃至608は、調整された時間ウィンドウが事前定義基準を満たすまで、調整された時間ウィンドウを用いて反復することができる。ステップ600乃至610は、検索クエリを用いて好適な数の時間ベースのバケットが決定されるまで、反復することができる。検索クエリを用いて決定された時間ベースのバケットの必要数は、対象時間枠内のコーパスのドキュメントの総数によって決まり得る。
【0093】
事前定義された反復の制限もしくは時間ベースのバケットの好適な数又はその両方に達すると、検索クエリで決定された時間ベースのバケットを用いて、さらなる時間ベースのバケットを予測する予測段階を開始することができる。予測は、ステップ612において、検索クエリで決定された時間ベースのバケットを機械学習(ML)モジュールの訓練セットとして用いて生成及び訓練されたMLモジュールを用いることを含むことができる。ステップ614において、訓練セットを用いてMLモジュールを訓練する。ステップ616において、訓練されたMLモジュールを時間ベースのバケットの予測に用いて、対象時間枠全体に対して時間ベースのバケットを提供する。
【0094】
実施形態によれば、検索クエリによる時間ベースのバケットの決定、及び時間ベースのバケットの予測は、後の段階であってもよい。代替的な実施形態によれば、反復法を用いることができる。予測された時間ベースのバケットをチェックすることができる。予測された時間ベースのバケットが、事前定義基準、例えば第1の又は第2の事前定義基準を満たす場合には、予測を継続することができる。予測された時間ベースのバケットが事前定義基準を満たさない場合には、時間ベースのバケットの幅を調整することができ、調整された時間ベースのバケットをもつ予測された時間ベースのバケットを、MLモジュールのさらなる訓練のための付加的な訓練セットとして用いて、予測を改善することができる。
【0095】
本発明の前述の実施形態の1つ又は複数は、組み合わされた実施形態が相互に排他的でない限り、組み合わせることができることが理解される。本明細書における、例えば「第1」、「第2」及び「第3」のような序数は、同じ名前が割り当てられた異なる要素を示すために用いられるが、必ずしもそれぞれの要素のいずれの順序も確立するものではない。技術的に及び/又は物理的に可能かつ合理的である限り、異なる序数が割り当てられた要素は、実施形態により、同じ要素とすることができる。
【0096】
本発明の態様が、本明細書において、本発明の実施形態による方法、装置(システム)、及びコンピュータ・プログラム製品のフローチャート図もしくはブロック図又はその両方を参照して説明される。フローチャート図もしくはブロック図又はその両方の各ブロック、並びにフローチャート図もしくはブロック図又はその両方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【0097】
本発明は、システム、方法もしくはコンピュータ・プログラム製品又はそれらの組み合わせとすることができる。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体(単数又は複数)を含むことができる。
【0098】
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のために命令を保持及び格納することができる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁気ストレージデバイス、半導体ストレージデバイス、又は上記のものの任意の適切な組み合わせとすることができるがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュメモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、メモリスティック、フロッピーディスク、記録された命令を有するパンチカードもしくは溝内に隆起した構造等の機械式コード化デバイス、及び上記のものの任意の適切な組合せを含む。コンピュータ可読ストレージ媒体は、本明細書で用いられる場合、無線波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通って伝搬する電磁波(例えば光ファイバケーブルを通る光パルス)、又は電線を通って伝送される電気信号のような一時的な信号自体と解釈すべきではない。
【0099】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスにダウンロードすることも、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワークもしくは無線ネットワーク又はそれらの組合せを経由して、外部コンピュータもしくは外部ストレージデバイスにダウンロードすることもできる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジサーバ又はそれらの組み合わせを含むことができる。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、そのコンピュータ可読プログラム命令をそれぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体にストレージのために転送する。
【0100】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Smalltalk、C++などのオブジェクト指向プログラミング言語及び「C」プログラミング言語又は類似のプログラミング言語のような従来の手続き型プログラミング言語を含む1つ又は複数のプログラミング言語の任意の組合せで記述されたソースコード又はオブジェクト・コードのいずれかとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータもしくはサーバ上で実行される場合もある。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)又は広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続が行われる場合もある(例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて)。幾つかの実施形態において、例えばプログラム可能論理回路、フィールドプログラム可能ゲートアレイ(FPGA)、又はプログラム可能論理アレイ(PLA)を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別化することにより、コンピュータ可読プログラム命令を実行することができる。
【0101】
本発明の態様は、本発明の実施形態による方法、装置(システム)及びコンピュータ・プログラム製品のフローチャート図もしくはブロック図又はその両方を参照して説明される。フローチャート図もしくはブロック図又はその両方の各ブロック、並びにフローチャート図もしくはブロック図又はその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【0102】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャートもしくはブロック図又はその両方の1つ又は複数のブロック内で指定された機能/動作を実装するための手段を作り出すようにすることができる。これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置、もしくは他のデバイス又はそれらの組合せを特定の方式で機能させるように指示することができるコンピュータ可読ストレージ媒体内に格納し、それにより、その中に格納された命令を有するコンピュータ可読媒体が、フローチャートもしくはブロック図又はその両方の1つ又は複数のブロックにおいて指定された機能/動作の態様を実装する命令を含む製品を含むようにすることもできる。
【0103】
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ、他のプログラム可能装置、又は他のデバイス上で実行される命令が、フローチャートもしくはブロック図又はその両方の1つ又は複数のブロックにおいて指定された機能/動作を実行するようにすることもできる。
【0104】
図面内のフローチャート及びブロック図は、本発明の様々な実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及びオペレーションを示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又は命令の一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で行われることがある。例えば、連続して示される2つのブロックは、関与する機能に応じて、実際には、実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図もしくはフローチャート図又はその両方の各ブロック、及びブロック図もしくはフローチャート図又はその両方におけるブロックの組合せは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
【0105】
上述の特徴の可能な組み合わせは、以下のものとすることができる。
1.検索エンジンの検索エンジン・インターフェースを用いて、ドキュメントのコーパスから1つ又は複数のランダム・サンプル・ドキュメントを提供するための方法であって、検索エンジンはドキュメントのコーパスにインデックス付けする検索インデックスを含み、コーパスのドキュメントの各々にタイムスタンプが割り当てられ、方法は、
対象時間枠を決定することと、
1つ又は複数のランダム・サンプル・ドキュメントを提供することであって、ランダム・サンプル・ドキュメントの各々のタイムスタンプは対象時間枠内にある、提供することと、
を含み、ランダム・サンプル・ドキュメントの各々を提供することは、
時間ベースのバケットのセットから時間ベースのバケットをランダムに選択することであって、時間ベースのバケットのセットは対象時間枠を複数の時間ウィンドウに分け、時間ベースのバケットの各々は時間ウィンドウの1つを定義し、時間ウィンドウの各々について、それぞれの時間ウィンドウ内のタイムスタンプをもつコーパスに含まれるドキュメントの数は第1の事前定義基準を満たす、選択することと、
検索インデックスを用いた検索エンジンによる実行のために、検索クエリを検索エンジン・インターフェースに送ることであって、検索クエリは、ランダムに選択された時間ベースのバケットによって定義された時間ウィンドウ内のタイムスタンプをもつコーパスのドキュメントの検索を定める、送ることと、
検索クエリを送ることに応答して、検索エンジン・インターフェースから検索結果を受け取ることであって、検索結果は、ランダムに選択された時間ベースのバケットによって定義された時間ウィンドウ内のタイムスタンプをもつコーパスのドキュメントの全てのセットを含む、受け取ることと、
受け取ったドキュメントのセットに含まれるドキュメントの1つをランダムに選択することと
を含む、方法。
2.時間ベースのバケットによる時間ウィンドウの定義は、時間ウィンドウ内の時間指定と時間ウィンドウの幅とを含む、項目1に記載の方法。
3.第1の事前定義基準は、一致するドキュメントの事前定義された数を提供する、項目のいずれか1項に記載の方法。
4.第1の事前定義基準が、一致するドキュメントの事前定義された数の範囲を提供する、前述の項目のいずれか1項に記載の方法。
5.対象時間枠を選択することは、
コーパスのドキュメントに割り当てられた最も古いタイムスタンプを決定することと、
コーパスのドキュメントに割り当てられた最も新しいタイムスタンプを決定することと
を含み、
対象時間枠は、最も古いタイムスタンプから最も新しいタイムスタンプに及ぶ時間間隔から選択される、前述の項目のいずれか1項に記載の方法。
6.対象時間枠は、最も古いタイムスタンプから最も新しいタイムスタンプに及ぶ時間間隔と等しい、項目5に記載の方法。
7.対象時間枠は、最も古いタイムスタンプから最も新しいタイムスタンプに及ぶ時間間隔より短い、項目5に記載の方法。
8.時間ベースのバケットをランダムに選択するために、方法は、第1の検索クエリを用いて、時間ベースのバケットのセットの第1のサブセットの第1の時間ベースのバケットを決定することをさらに含み、第1の時間ベースのバケットの各々を決定することは、
事前定義された幅をもつ、対象時間枠内の第1の時間ウィンドウを選択することと、
第1の時間ウィンドウ内のタイムスタンプをもつコーパスのドキュメントの検索を定める第1の検索クエリを生成することと、
検索インデックスを用いた検索エンジンによる実行のために、第1の検索クエリを検索エンジン・インターフェースに送ることと、
第1の検索クエリを送ることに応答して、検索エンジン・インターフェースから第1の検索結果を受け取ることであって、第1の検索結果は、第1の検索クエリによって定められた第1の時間ウィンドウ内のタイムスタンプをもつコーパスのドキュメントのセットを含む、受け取ることと、
受け取った第1の検索の結果が、時間ベースのバケットに含まれるドキュメントの数に関する第1の事前定義基準を満たす場合には、第1の検索クエリによって用いられる第1の時間ウィンドウの定義を含む第1の時間ベースのバケットを生成することと、
そうでなければ、第1の時間ウィンドウを調整し、調整された第1の時間ウィンドウをもつ調整された第1の検索クエリを用いてさらなる検索を実行することと
を含む、前述の項目のいずれか1項を含む方法。
9.さらなる検索の第1の検索結果が第1の事前定義基準を満たすか又は事前定義された反復の最大数に達するまで、第1の時間ウィンドウの調整と、調整された第1の時間ウィンドウをもつ調整された第1の検索クエリを用いたさらなる検索の実行とを反復する、項目8に記載の方法。
10.第1の時間ウィンドウを調整することは、第1の時間ウィンドウの幅を調整することを含み、第1の時間ウィンドウ内のタイムスタンプが割り当てられたコーパスのドキュメントの数が多すぎて検索結果が第1の事前定義基準を満たさない場合には、第1の時間ウィンドウの幅を縮小させ、第1の時間ウィンドウ内のタイムスタンプが割り当てられたコーパスのドキュメントの数が少なすぎて第1の事前定義基準を満たさない場合には、第1の時間ウィンドウの前記幅を拡大させる、項目8から項目9までのいずれか1項に記載の方法。
11.方法は、時間ベースのバケットの第1のサブセットを格納することをさらに含む、項目8から項目10までのいずれか1項に記載の方法。
12.時間ベースのバケットをランダムに選択するために、方法は、時間ベースのバケットのセットの第2のサブセットの第2の時間ベースのバケットを予測することをさらに含み、第2の時間ベースのバケットは、第1の時間ベースのバケットを用いて事前定義された時間枠内の第2の時間ウィンドウを定義し、予測された第2の時間ウィンドウの全てが第1の事前定義基準を満たすようにする、前述の項目のいずれか1項に記載の方法。
13.予測することは、第2の時間ベースのバケットを予測するように訓練された機械学習モデルを生成することを含み、機械学習モデルを生成することは、
第1の時間ベースのバケットを用いて訓練セットを提供することであって、各々の訓練セットは、第1の時間ベースのバケットによって定義された第1の時間ウィンドウに割り当てられた、訓練入力データとしての時間指定と、訓練出力データとしてのそれぞれの第1の時間ウィンドウの幅と含む、提供することと、
訓練セットに対して学習アルゴリズムを実行して機械学習モデルを生成することと
を含む、項目12に記載の方法。
14.機械学習モデルを用いて予測することは、
時間指定を含む第1の入力データを機械学習モデルに提供することであって、提供された時間指定は対象時間枠内にあり、一方、それぞれの時間指定は第1の時間ベースのバケットによって定義された第1の時間ウィンドウの外にある、提供することと、
第1の入力データを提供することに応答して、機械学習モデルから、第1の入力データによって提供された時間指定をもつ第2の時間ウィンドウを定義する第2の時間ベースのバケットの予測を含む第1の出力データを受け取ることであって、予測された第2の時間ベースのバケットの第2の時間ウィンドウは、第1の事前定義基準を満たす、受け取ることと
をさらに含む、項目13に記載の方法。
15.方法は、時間ベースのバケットの第2のサブセットを格納することをさらに含む、項目12から項目14までのいずれか1項に記載の方法。
16.時間ベースのバケットのセットから時間ベースのバケットをランダムに選択することは、
対象時間枠内のランダムに選択された時間指定を含む第2の入力データを機械学習モデルに提供することと、
第2の入力データを提供することに応答して、機械学習モデルから、第2の出力データを受け取ることであって、第2の出力データは、ランダムに選択された時間指定を含みかつ第1の事前定義基準を満たす時間ウィンドウを定義する時間ベースのバケットのセットからの時間ベースのバケットを含む、受け取ることと
を含む、項目12から項目14までのいずれか1項に記載の方法。
17.時間ベースのバケットをランダムに選択するために、方法は、時間ベースのバケットのセットの第3のサブセットの第3の時間ベースのバケットを決定することをさらに含み、第3の時間ベースのバケットを決定することは、時間ベースのバケットの1つ又は複数の格納された第3のサブセットを取得することを含む、前述の項目のいずれか1項に記載の方法。
18.方法は、検索結果に含まれるドキュメントの数に関する第2の事前定義基準を受け取った検索結果が満たすかどうかチェックすることをさらに含み、第2の事前定義基準が満たされない場合には、ランダムに選択された時間ベースのバケットによって定義された時間ウィンドウの幅を調整する、前述の項目のいずれか1項に記載の方法。
19.第2の事前定義基準は、検索結果に含まれるドキュメントの数と一致するドキュメントの数を定義する、項目18に記載の方法。
20.第2の事前定義基準は、検索結果のドキュメントの数を含むことになる数の範囲を定義する、項目18に記載の方法。
21.時間ウィンドウを調整することは、時間ウィンドウの幅を調整することを含み、時間ウィンドウ内のタイムスタンプをもつコーパスのドキュメントの数が多すぎて第2の事前定義基準を満たさない場合には、時間ウィンドウの幅を縮小させ、時間ウィンドウ内のタイムスタンプをもつコーパスのドキュメントの数が少なすぎて第2の事前定義基準を満たさない場合には、時間ウィンドウの幅を拡大させる、項目18から項目20までのいずれか1項に記載の方法。
22.方法は、ランダムに選択された時間ベースのバケットによって定義された時間ウィンドウを調整することに応じて、少なくとも、ランダムに選択された時間ベースのバケットに隣接する時間ベースのバケットによって定義された時間ウィンドウを調整することをさらに含む、項目18から項目21までのいずれか1項に記載の方法。
23.方法は、提供された1つ又は複数のランダム・サンプル・ドキュメントを用いて統計分析を行うことをさらに含む、前述の項目のいずれか1項に記載の方法。
24.検索エンジンの検索エンジン・インターフェースを用いて、ドキュメントのコーパスから1つ又は複数のランダム・サンプル・ドキュメントを提供するための機械実行可能プログラム命令を有する不揮発性のコンピュータ可読媒体を含むコンピュータ・プログラム製品であって、検索エンジンは、ドキュメントのコーパスにインデックス付けする検索インデックスを含み、コーパスのドキュメントの各々にはタイムスタンプが割り当てられ、コンピュータのプロセッサによるプログラム命令の実行は、プロセッサに、
対象時間枠を決定することと、
前記1つ又は複数のランダム・サンプル・ドキュメントを提供することであって、ランダム・サンプル・ドキュメントの各々のタイムスタンプは対象時間枠内にある、提供することと
を行わせるようにコンピュータ・システムを制御させ、ランダム・サンプル・ドキュメントの各々を提供することは、
時間ベースのバケットのセットから時間ベースのバケットをランダムに選択することであって、時間ベースのバケットのセットは対象時間枠を複数の時間ウィンドウに分け、時間ベースのバケットの各々は時間ウィンドウの1つを定義し、時間ウィンドウの各々について、それぞれの時間ウィンドウ内のタイムスタンプをもつコーパスに含まれるドキュメントの数は第1の事前定義基準を満たす、選択することと、
検索インデックスを用いた検索エンジンによる実行のために、検索クエリを検索エンジン・インターフェースに送ることであって、検索クエリは、ランダムに選択された時間ベースのバケットによって定義された時間ウィンドウ内のタイムスタンプをもつコーパスのドキュメントに対する検索を定める、送ることと、
検索クエリを送ることに応答して、検索エンジン・インターフェースから検索結果を受け取ることであって、検索結果は、ランダムに選択された時間ベースのバケットによって定義された時間ウィンドウ内のタイムスタンプをもつコーパスのドキュメントの全てのセットを含む、受け取ることと、
受け取ったドキュメントのセットに含まれるドキュメントの1つをランダムに選択することと
を含む、コンピュータ・プログラム。
25.検索エンジンの検索エンジン・インターフェースを用いて、ドキュメントのコーパスから1つ又は複数のランダム・サンプル・ドキュメントを提供するためのコンピュータ・システムであって、検索エンジンは、ドキュメントのコーパスにインデックス付けする検索インデックスを含み、コーパスのドキュメントの各々にはタイムスタンプが割り当てられ、コンピュータ・システムは、プロセッサと、機械実行可能プログラム命令を格納するメモリとを含み、プロセッサによるプログラム命令の実行は、プロセッサに、
対象時間枠を決定することと、
1つ又は複数のランダム・サンプル・ドキュメントを提供することであって、ランダム・サンプル・ドキュメントの各々のタイムスタンプが対象時間枠内にある、提供することと
を行わせるようにコンピュータ・システムを制御させ、ランダム・サンプル・ドキュメントの各々を提供することは、
時間ベースのバケットのセットから時間ベースのバケットをランダムに選択することであって、時間ベースのバケットのセットは対象時間枠を複数の時間ウィンドウに分け、時間ベースのバケットの各々は時間ウィンドウの1つを定義し、時間ウィンドウの各々について、それぞれの時間ウィンドウ内のタイムスタンプをもつコーパスに含まれるドキュメントの数は第1の事前定義基準を満たす、選択することと、
検索インデックスを用いた検索エンジンによる実行のために、検索クエリを検索エンジン・インターフェースに送ることであって、検索クエリは、ランダムに選択された時間ベースのバケットによって定義された時間ウィンドウ内のタイムスタンプをもつコーパスのドキュメントに対する検索を定める、送ることと、
検索クエリを送ることに応答して、検索エンジン・インターフェースから検索結果を受け取ることであって、検索結果は、ランダムに選択された時間ベースのバケットによって定義された時間ウィンドウ内のタイムスタンプをもつコーパスのドキュメントの全てのセットを含む、受け取ることと、
受け取ったドキュメントのセットに含まれるドキュメントの1つをランダムに選択することと
を含む、コンピュータ・システム。