(57)【要約】複数のエンティティを含む辞書を受信するステップであり、各エンティティは１トークンとｎトークンとの間の長さを有する、ステップと、１からｎまでインデックス付けされているn個のブルームフィルタ（ＢＦ）ペアを含む確率的データ表現モデルを構築するステップと、前記エンティティのデータ表現を前記確率的データ表現モデルに設定するステップであり、ここでは、ｉでインデックス付けされた各ＢＦペアに関して、（１）第１のＢＦに、少なくとも（ｉ＋１）個のトークンを有する全てのエンティティの最初のｉ個のトークンが設定され、かつ、（２）第２のＢＦに、正確にｉ個のトークンを有する全てのエンティティが設定されるステップと、テキストコーパスを受信するステップであり、前記テキストコーパスはトークンへと分割されているステップと、前記テキストコーパスにおける各トークンを前記設定された確率的データ表現モデルに対して自動的にマッチングするステップであり、ここで、前記マッチングは、前記各ＢＦペアを前記インデックスの順番で逐次的に照合して、一致を決定するステップ、を含む方法。
2021535473.tif 000002
【特許請求の範囲】
【請求項１】
複数のエンティティを含む辞書を、サーバによって、受信するステップであり、各エンティティは、１トークンとｎトークンとの間の長さを有する、ステップと、
n個のブルームフィルタ（ＢＦ）ペアを含む確率的データ表現モデルを、前記サーバによって、自動的に構築するステップであり、各ＢＦペアは、１からｎまでインデックス付けされている、ステップと、
前記複数のエンティティのデータ表現を、前記サーバによって、前記確率的データ表現モデルに自動的に設定するステップと、
トークンへと分割されたテキストコーパスを、前記サーバによって、受信するステップと、
前記テキストコーパスにおける各トークンを、前記サーバによって、前記設定された確率的データ表現モデルに対して自動的にマッチングするステップと、
を含む、方法。
【請求項２】
ｉでインデックス付けされた各ＢＦペアに関して、前記ＢＦペアにおける第１のＢＦに、少なくとも（ｉ＋１）個のトークンを有する前記複数のエンティティから最初のｉ個のトークンが設定され、かつ、前記ＢＦペアにおける第２のＢＦに、正確にｉ個のトークンを有する前記複数のエンティティから全てのトークンが設定される、
請求項１に記載の方法。
【請求項３】
前記マッチングは、さらに、
マッチングを決定するために、１からｎまでのインデックス付けの順番で各ＢＦペアを逐次的に照会するステップ、を含む、
請求項１に記載の方法。
【請求項４】
各ＢＦペアは、指定された数のハッシュ関数を有しており、
指定された数それぞれは、エラー確率を最小化するように計算された最適な数に等しい、
請求項１に記載の方法。
【請求項５】
各ＢＦペアは、指定された数のハッシュ関数を有しており、
指定された数それぞれは、エラー確率を最小化するように計算された最適な数より少ない、
請求項１に記載の方法。
【請求項６】
各ＢＦペアは、指定された数のハッシュ関数を有しており、
指定された数それぞれは、エラー確率を最小化するように計算された最適な数より少なく、
前記指定された数は、さらに、前記ＢＦペアのインデックス付けが増加するにつれて、減少する、
請求項１に記載の方法。
【請求項７】
コンピューティング・システムであって、
マシンで実行可能なコードを有するマシンで読取り可能な媒体を含むメモリであり、トークン・マッチングの方法を実行するための命令が保管されている、メモリと、
前記メモリに結合されたプロセッサであり、前記マシンで実行可能なコードを実行するように構成されている、プロセッサと、を含み、
前記マシンで実行可能なコードが実行されると、前記プロセッサに、
複数のエンティティを含む辞書を受信し、各エンティティは、１トークンとｎトークンとの間の長さを有しており、
n個のブルームフィルタ（ＢＦ）ペアを含む確率的データ表現モデルを自動的に構築し、各ＢＦペアは、１からｎまでインデックス付けされており、
前記複数のエンティティのデータ表現を、前記確率的データ表現モデルに自動的に設定し、
トークンへと分割されたテキストコーパスを受信し、かつ、
前記テキストコーパスにおける各トークンを前記設定された確率的データ表現モデルに対して自動的にマッチングする、
ようにさせる、
システム。
【請求項８】
ｉでインデックス付けされた各ＢＦペアに関して、前記ＢＦペアにおける第１のＢＦに、少なくとも（ｉ＋１）個のトークンを有する前記複数のエンティティから最初のｉ個のトークンが設定され、かつ、前記ＢＦペアにおける第２のＢＦに、正確にｉ個のトークンを有する前記複数のエンティティから全てのトークンが設定される、
請求項７に記載のシステム。
【請求項９】
前記マシンで実行可能なコードは、さらに、前記プロセッサに、
マッチングを決定するために、１からｎまでのインデックス付けの順番で各ＢＦペアを逐次的に照会する、
ようにさせる、
請求項７に記載のシステム。
【請求項１０】
各ＢＦペアは、指定された数のハッシュ関数を有しており、
指定された数それぞれは、エラー確率を最小化するように計算された最適な数に等しい、
請求項７に記載のシステム。
【請求項１１】
各ＢＦペアは、指定された数のハッシュ関数を有しており、
指定された数それぞれは、エラー確率を最小化するように計算された最適な数より少ない、
請求項７に記載のシステム。
【請求項１２】
各ＢＦペアは、指定された数のハッシュ関数を有しており、
指定された数それぞれは、エラー確率を最小化するように計算された最適な数より少なく、
前記指定された数は、さらに、前記ＢＦペアのインデックス付けが増加するにつれて、減少する、
請求項７に記載のシステム。
【請求項１３】
非一時的なマシンで読取り可能な媒体であって、マシンで実行可能なコードを含む方法を実行するための命令を保管しており、少なくとも１つのマシンによって命令が実行されると、前記マシンに、
複数のエンティティを含む辞書を受信し、各エンティティは、１トークンとｎトークンとの間の長さを有しており、
n個のブルームフィルタ（ＢＦ）ペアを含む確率的データ表現モデルを自動的に構築し、各ＢＦペアは、１からｎまでインデックス付けされており、
前記複数のエンティティのデータ表現を、前記確率的データ表現モデルに自動的に設定し、
トークンへと分割されたテキストコーパスを受信し、かつ、
前記テキストコーパスにおける各トークンを前記設定された確率的データ表現モデルに対して自動的にマッチングする、
ようにさせる、
非一時的なマシンで読取り可能な媒体。
【請求項１４】
ｉでインデックス付けされた各ＢＦペアに関して、前記ＢＦペアにおける第１のＢＦに、少なくとも（ｉ＋１）個のトークンを有する前記複数のエンティティから最初のｉ個のトークンが設定され、かつ、前記ＢＦペアにおける第２のＢＦに、正確にｉ個のトークンを有する前記複数のエンティティから全てのトークンが設定される、
請求項１３に記載の非一時的なマシンで読取り可能な媒体。
【請求項１５】
前記非一時的なマシンで読取り可能な媒体は、さらに、前記マシンに、
マッチングを決定するために、１からｎまでのインデックス付けの順番で各ＢＦペアを逐次的に照会する、
ようにさせる、マシンで実行可能なコードを含む、
請求項１３に記載の非一時的なマシンで読取り可能な媒体。
【請求項１６】
各ＢＦペアは、指定された数のハッシュ関数を有しており、
指定された数それぞれは、エラー確率を最小化するように計算された最適な数に等しい、
請求項１３に記載の非一時的なマシンで読取り可能な媒体。
【請求項１７】
各ＢＦペアは、指定された数のハッシュ関数を有しており、
指定された数それぞれは、エラー確率を最小化するように計算された最適な数より少ない、
請求項１３に記載の非一時的なマシンで読取り可能な媒体。
【請求項１８】
各ＢＦペアは、指定された数のハッシュ関数を有しており、
指定された数それぞれは、エラー確率を最小化するように計算された最適な数より少なく、
前記指定された数は、さらに、前記ＢＦペアのインデックス付けが増加するにつれて、減少する、
請求項１３に記載の非一時的なマシンで読取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械学習の分野に関する。
【背景技術】
【０００２】
テキスト分析、もしくは、大量の構造化されていないデータから構造化された情報を抽出することは、今日の企業において重要な見地になっている。テキスト分析における一般的なタスクは「辞書マッチング(dictionary  matching、DM)」であり、これは非構造化テキストにおける単語とパターンの特定な集合（set）の検出である。電子メール、Webエンティティ、およびマシン・データログといった、構造化されていないテキストデータの量のこれまでの増加に伴い、DMのタスクを計算効率的な方法で実行することが、ますます重要になってきている。しかしながら、DM演算子（DM  operators）が、テキスト分析のかなりの時間を要する部分を占めることがしばしばである。なぜなら、これらの演算子は、テキストコーパス（text  corpora）をスキャンするが、一方で、後続のステップは、文書の結果および部分だけに作用するからである。従って、DMのタスクにおける計算（computing）およびメモリの要求を低減することは、非常に価値があり得る。
【０００３】
前述の関連技術の例、および、それに関連する制限は、例示的であり、かつ、排他的ではないものとして意図されている。関連技術の他の制限は、明細書を読み、かつ、図面を学習することによって、当業者にとった明らかになるだろう。
【発明の概要】
【０００４】
以下の実施形態、および、その態様は、システム、ツール、および、方法と関連して説明され、かつ、図示されており、それらは、範囲を限定するものではなく、例示的であり、かつ、説明的であるように意図されている。
【０００５】
いくつかの実施形態において、以下のステップを含む方法が提供される。設定段階（populating  stage）においては、複数のエンティティを含む辞書を受信するステップであり、ここで、各エンティティは、１トークンとｎトークンとの間の長さを有するステップと、n個のブルームフィルタ（Bloom  filter、BF）ペアを含む確率的データ表現モデルを自動的に構築するステップであり、ここで、各BFペアは１からｎまでインデックス付けされているステップと、前記エンティティのデータ表現を前記確率的データ表現モデルに自動的に設定するステップであり、ここでは、ｉでインデックス付けされた各BFペアに関して、（１）前記BFペア内の第１のBFに、少なくとも（ｉ＋１）個のトークンを有する全てのエンティティの最初のｉ個のトークンが設定され、かつ、（２）前記BFペア内の第２のBFに、正確にｉ個のトークンを有する全てのエンティティが設定される、ステップと、を含む。マッチング段階（matching  stage）においては、テキストコーパスを受信するステップであり、ここで、前記テキストコーパスはトークンへと分割されているステップと、前記テキストコーパスにおける各トークンを前記設定された確率的データ表現モデルに対して自動的にマッチングするステップであり、ここで、前記マッチングは、前記各BFペアを前記インデックスの順番で逐次的に照合して、一致を決定する、ステップと、を含む。
【０００６】
いくつかの実施形態においては、また、少なくとも1つのハードウェアプロセッサ、および、プログラム命令が保管された非一時的なコンピュータで読取り可能な記憶媒体を含む、システムも提供される。本プログラム命令は、少なくとも1つのハードウェアプロセッサによって実行可能であり、設定段階においては、複数のエンティティを含む辞書を受信し、ここで、各エンティティは、１トークンとｎトークンとの間の長さを有しており、n個のブルームフィルタ（BF）ペアを含む確率的データ表現モデルを自動的に構築し、ここで、各BFペアは１からｎまでインデックス付けされており、前記エンティティのデータ表現を前記確率的データ表現モデルに自動的に設定し、ここでは、ｉでインデックス付けされた各BFペアに関して、（１）前記BFペア内の第１のBFに、少なくとも（ｉ＋１）個のトークンを有する全てのエンティティの最初のｉ個のトークンが設定され、かつ、（２）前記BFペア内の第２のBFに、正確にｉ個のトークンを有する全てのエンティティが設定されている。マッチング段階においては、テキストコーパスを受信し、ここで、前記テキストコーパスはトークンへと分割されており、そして、前記テキストコーパスにおける各トークンを前記設定された確率的データ表現モデルに対して自動的にマッチングする。ここで、前記マッチングは、前記各BFペアを前記インデックスの順番で逐次的に照合して、一致を決定することを含む。
【０００７】
いくつかの実施形態においては、さらに、そこで具現化されるプログラム命令を有する非一時的なコンピュータで読取り可能な記憶媒体を含むコンピュータプログラム製品が提供される。本プログラム命令は、少なくとも1つのハードウェアプロセッサによって実行可能であり、設定段階においては、複数のエンティティを含む辞書を受信し、ここで、各エンティティは、１トークンとｎトークンとの間の長さを有しており、n個のブルームフィルタ（BF）ペアを含む確率的データ表現モデルを自動的に構築し、ここで、各BFペアは１からｎまでインデックス付けされており、前記エンティティのデータ表現を前記確率的データ表現モデルに自動的に設定し、ここでは、ｉでインデックス付けされた各BFペアに関して、（１）前記BFペア内の第１のBFに、少なくとも（ｉ＋１）個のトークンを有する全てのエンティティの最初のｉ個のトークンが設定され、かつ、（２）前記BFペア内の第２のBFに、正確にｉ個のトークンを有する全てのエンティティが設定されている。マッチング段階においては、テキストコーパスを受信し、ここで、前記テキストコーパスはトークンへと分割されており、そして、前記テキストコーパスにおける各トークンを前記設定された確率的データ表現モデルに対して自動的にマッチングする。ここで、前記マッチングは、前記各BFペアを前記インデックスの順番で逐次的に照合して、一致を決定することを含む。
【０００８】
いくつかの実施形態において、各BFペアは、指定された数のハッシュ関数を有し、ここで、前記指定された数は、エラー確率を最小化するために計算された最適な数に等しい。
【０００９】
いくつかの実施形態において、前記指定された数は、最適な数より少ない。いくつかの実施形態において、前記指定された数は、前記BFペアのインデックス付けが増加すると、さらに減少する。
【００１０】
上述の例示的な態様および実施形態に加えて、さらなる態様および実施形態が、図面を参照し、かつ、以下の詳細な説明を検討することによって、明らかになる。
【図面の簡単な説明】
【００１１】
例示的な実施形態が、参照図に示されている。図において示されているコンポーネントおよび特徴（features）の寸法は、一般的に、簡便性および表現の明確性のために選択されており、そして、必ずしも縮尺通りに示されてはいない。図面は、以下に列挙されている。
【図１Ａ】図1Aは、文書トークン化（document  tokenization）プロセスを示している。
【図１Ｂ】図1Bは、マルチグラム（multi-gram）・トークン・マッチング・プロセスを示している。
【図２】図2は、ブルームフィルタ（Bloom  filter）のオペレーションを模式的に示している。
【図３】図3は、一つの実施形態に従って、ブルームフィルタ・ペアを含む逐次確率的データ表現（sequential  probabilistic  data  presentation）を示している。
【図４】図4は、一つの実施形態に従って、逐次確率的データ表現を使用して、大きなテキストコーパスに対してトークンの辞書を自動的にマッチングする方法における機能ステップに係るフローチャートである。
【発明を実施するための形態】
【００１２】
ここにおいて開示されているのは、辞書エンティティの逐次確率的データ表現を使用して、大きなテキストコーパスに対するエンティティの辞書の自動的、高速、かつ、効率的なマッチングのための方法、システム、およびコンピュータプログラム製品である。開示される方法は、高精度であり、かつ、大規模なマッチング・オペレーションが可能であり、一方で、時間、メモリ、および、計算リソースの必要性を低減している。
【００１３】
ここで使用されるように、「辞書マッチング(DM)」は、また、「トークン・マッチング」としても参照され、テキストにおける所与のトークンの全ての出現を発見するタスクである。この問題の最も基本的なインスタンスは、正確なトークン・マッチング問題、すなわち、テキストにおけるパターンの出現を正確に全て見つける問題である。近似（approximate）トークン・マッチング(ファジィ（fuzzy）トークン・マッチングとしても、また、知られているもの)は、パターンの近似マッチングを見つける技術である。典型的には、テキストコーパスについてDMが実行される前に、「トークン化」の前処理段階が実行され、テキストを、例えば、単語（words）および文（sentences）へと分割する。トークンは、処理のための有用な意味単位（semantic  unit）として一緒にグループ化される、文書中のキャラクタ・シーケンス（character  sequence）のインスタンスとして定義され得る。トークン化プロセスは、所定の句読点を除去しながら、図1Aに示されるように、テキストを、例えばホワイトスペースにおいて分割することによって、行うことができる。他の場合に、トークン化は、特殊文字、または、より複雑なパターン、例えば、アポストロフィ、ハイフネーション、ポゼッション（possessions）、略語、および、短縮形を取り扱うための追加のストラテジを含み得る。トークン化器（tokenizer）の出力は、一式のタプル（tuples）であってよく、それぞれが、テキストデータの中でトークンの開始および終了オフセットから構成されている。
【００１４】
トークンのシーケンスで構成されるパターンは、マルチトークンパターンとして参照される。例えば、図1Bに示されるように、個人のフルネームを含んでいる辞書において、２つの別個の辞書エンティティは、“Samuel  Adams”および“Samuel  Adams  Johns”であってよい。テキスト入力が文字列“Samuel  Adams  Johns”を含む場合に、DMタスクは、可能な一致としての“Samuel  Adams”の誤検知（false  positive）を拒否しながら、フルネームだけの一致を返すことが期待されている。
【００１５】
上述のように、DMのタスクは、典型的には、非常にメモリ集中型（memory-extensive）である。なぜなら、全ての可能な一致を見つけるために、オペレーションは、メモリにおいて大きなテキストコーパスを保持し、そして、スキャンしなければならないからである。DMタスクのメモリ要求は、図1Bに示されるように、マルチトークン・パターン・マッチングが必要とされる場合、および、別個の辞書エンティティと一致し得るサブストリングをストリングが含んでいる場合には、さらに、より複雑になる可能性がある。
【００１６】
従って、いくつかの実施形態において、本発明は、辞書及び／又はテキストコーパスのサイズを拡大する際に、低いメモリ要求および低いエラー率を維持するために、空間効率の良い（space-efficient）確率的データ表現の組み合わせを使用する。いくつかの実施形態において、ブルーム（Bloom）及び／又は類似フィルタのペア（pair）の特定の逐次構造が、各トークンについて確率的データ表現を辞書に保管するために使用され得る。ここで、フィルタのペアは、データ構造の照会（querying）の最中に計算および誤検知エラーの数を低減するために構成される方法において相互依存的（interdependent）である。
【００１７】
以下の説明は、大量のエンティティの確率的表現を保管するために、ブルームフィルタ(BF)の逐次相互依存的ペアの使用に焦点を当てている。しかしながら、様々な実施形態において、ブルームフィルタの異なる構造、ブルームフィルタの異なるタイプ、及び／又は、他の確率的データ表現フィルタ及び／又はモデルの異なるタイプが使用され得る。
【００１８】
BFは、集合メンバーシップ（set  membership）を決定するためにハッシュ変換を使用する方法であり、そして、テキスト分析およびDMタスクといった、大きなデータセットについて高速な集合メンバーシップテストが必要とされるところで特に有用である。BFは確率的な方法なので、エラー率を有しており、これは包含（inclusion）の側だけに発生する(すなわち、誤検知エラー)。真のメンバーは、集合に属していないとして決して報告されないが、いくつかの非メンバーが、メンバーとして報告されることがある。
【００１９】
BFは、データセットを表すベクトル(フィルタ)を計算するために、ハッシュ変換を使用する。集合（set）におけるメンバーシップは、潜在的なメンバーに対するハッシュの結果をベクトルと比較することによってテストされ得る。例えば、所与のｎ個の要素の集合Ｓ、
Ｓ＝｛ｘ１，ｘ２，・・・，ｘｎ｝
は、ｍビットのアレイＢ，
Ｂ＝［ｂ１，ｂ２，ｂ３，ｂ４，・・・，ｂｍ−１，ｂｍ］
によって表され得る。
【００２０】
BFは、範囲｛１，・・・，ｍ｝にわたり一様に分布すると仮定されているｋ個の独立したハッシュ関数ｈ１・・・ｈｋを使用する。図2を参照すると、集合Ｓを設定する（populate）ためには、全てのＳｘ∈Ｓが、以下を使用して、BF  Ｂに対して追加される必要がある。
１≦ｉ≦ｋそれぞれについて、Ｂ［ｈｉ（ｘ）］＝１
【００２１】
照会の最中に、要素ｙがBF  Ｂ内にあるかどうかを確認する。
１≦ｉ≦ｋそれぞれについて、全てのＢ［ｈｉ（ｙ）］＝＝１である場合には、真（True）を返し、そうでない場合には、偽（False）を返す。
【００２２】
BFは、タスクについて許容される誤検知率の関数として、時間効率における固有の改善を提供する。より具体的に、単純なBFの予想される複雑性は、挿入（insertion）と照会（querying）のために測定され、かつ、フィルタによって「保管すること”storing“」に割り当てられたハッシュ関数の数ｋに依存する。ハッシュ関数に依存している単純なBFは、集合の中にアイテムを設定するか、または、照会するために固定の定数Ｏ（ｋ）の時間量を必要とするだろう。ここで、この時間定数は、集合の中のアイテムの数とは独立している。
【００２３】
ｋ個のハッシュ関数を使用し、ｎ個の要素をｍビットで保管している単一のBFが与えられると、期待される誤検知確率は以下のとおりである。
【数１】
2021535473.tif 000003
【００２４】
従って、許容可能な誤検知率の特定の値が与えられると、ハッシュ関数ｋの最適数、並びに、ビットベクトルの長さｍは、次のように導出され得る。
【数２】
2021535473.tif 000004
【００２５】
この結果を説明するために、0.01の誤検知確率を伴う100万アイテムの集合を表すBFは、9,585,059ビット(1.14MB)、および、７個のハッシュ関数を必要とするだけである。
【００２６】
しかしながら、DMのタスクについて、全てのエンティティを同時に保持するための単一のBF及び／又は類似の確率的データ表現の使用は、多くの制限を課すものである。
・テキスト内で見つかった全ての可能性あるトークンを、BF内の様々な長さの全ての可能性あるトークンとマッチングするための、著しく長い照会時間。
および、
・(図1Bを参照して上述したように)サブトークンを含むトークンの存在が考慮されない場合の、多数の冗長な計算。
である。
【００２７】
従って、いくつかの実施形態において、本発明は、逐次的BF（sequential  BF）の構造を使用することを提供し、ここでは、BFの設定（populating）においてサブトークン化が考慮される。単一のBFストレージモデルと比較して、本発明のマルチBF、逐次照会モデルは、より速い設定および照会時間、並びに、マッチングにおけるより少ない誤検知エラーを提供する。
【００２８】
本発明の作動原理が、図3に関して詳細に説明されている。例えば、1から4トークンまでの長さを有するエンティティを伴う辞書の典型的な例において、本発明は、4ペアのBFを含むBF構造を構築するために構成されている。異なる長さを伴うエンティティを含む辞書について、BFペアの数は、予想される最も長いトークンの長さと一致する。いくつかの実施形態において、各ペアにおける第１のBFはＢＦｉＣｏｎｔとして示されてよく、そして、各ペアにおける第２のBFはＢＦｉＳｔｏｐとして示されてよい。ここで、ｉは、１からｎまでのインデックス番号と等しい。図3に示されるように、BFの設定の最中に、
・１と（ｎ−１）との間のインデックスｉを有する全てのペアにおける第１のBFは、少なくとも（ｎ＋１）個のトークンを有する全てのエンティティの第１のｉ個のトークンを用いて設定される。従って、例えば、エンティティ“Bank  of  England”（ｎ＝３）の場合に、ＢＦ１Ｃｏｎｔは“Bank”を保管し、かつ、ＢＦ２Ｃｏｎｔは“Bank  of”を保管する。そして、
・ｉ＝ｎでインデックスされたペアにおける第２のBFは、正確にｎ個のトークンを含む全てのエンティティを保管する。従って、例えば、ＢＦ３Ｓｔｏｐは“Bank  of  England”（ｎ＝３）を保管する。
【００２９】
いくつかの実施形態において、上述のように、一旦、BFが全てのエンティティを用いて設定されると、所与のトークン・マッチング・タスクのために、BFは、現在のトークンで始まる全ての可能性あるエンティティをマッチングするために、逐次的に照会される。例えば、図3に示されるように、３グラム（3-gram）の用語“Bank  of  England”をマッチングすることは、以下のBFを逐次的に照会することを含む。
（ｉ）ＢＦ１Ｃｏｎｔにおける“Bank”、
（ｉｉ）ＢＦ２Ｃｏｎｔにおける“Bank  of”、および、
（ｉｉｉ）ＢＦ３Ｓｔｏｐにおける“Bank  of  England”である。
【００３０】
同様に、４グラム（4-gram）の用語“United  Nations  Secretary  General”をマッチングすることは、以下のBFを逐次的に照会することを含む。
（ｉ）ＢＦ１Ｃｏｎｔにおける“United”、
（ｉｉ）ＢＦ２Ｃｏｎｔにおける“United  Nations”、
（ｉｉｉ）ＢＦ３Ｃｏｎｔにおける“United  Nations  Secretary”、および、
（ｉｖ）ＢＦ４Ｓｔｏｐにおける“United  Nations  Secretary  General”である。
【００３１】
理解されるように、「高次（“high  order”）」BF(すなわち、ＢＦ４ＣｏｎｔおよびＢＦ４Ｓｔｏｐといった、より長いエンティティを表すもの)は、マルチグラム（multi-gram）トークンの相対的なスパース性（sparsity）のせいで、頻繁に照会されることがより少なそうである。
【００３２】
いくつかの実施形態において、トークンの所与の集合の平均トークン長さｑ＊は、少なくとも部分的に、BF設定時間（populating  time）およびBF照会時間（querying  time）の両方と、以下のように、相関され得る。
・設定：長さｑの単一トークンに関して、0からq-2でインデックス付けされたＢＦＣｏｎｔフィルタに対する期待される（ｑ−１）個のBF挿入、および、全てのＢＦＳｔｏｐフィルタに対する１個のBF挿入が存在し、構造内の全てのBFに対して合計でｑ個の挿入である。
・照会：長さｑのトークンの正確な一致に関して、マッチングプロセスは、0からq-2まで全てのＢＦＣｏｎｔおよび全てのＢＦＳｔｏｐを照会する。合計で２ｑ個の照会である。部分的な一致に関して、照会プロセスは、ｎグラム（n-gram）トークンがもはや類似していないところまで、全てのＢＦＣｏｎｔおよび全てのＢＦＳｔｏｐを照会する。いずれにせよ、照会の総数は（２ｑ−１）個を超えない。
【００３３】
従って、トークンの長さｑ＊は、全てのトークンにわたる平均として直接的に導出され、トークンの設定および照会の両方の複雑性を制限する。さらに、ｑ＊は、また、辞書におけるトークンの分布にも依存し、複数の長さのトークン（multi-length-tokens）は、様々な辞書において異なる分布率を有してよく、いくつかの長さは、他の長さよりも頻繁に発生し得る、等。同様に、照会時間は、ある程度、トークン化の最中にテキストコーパス内で見つかったトークンの分布によって、変動し得る。究極的には、設定および照会の両方について予想される複雑性は、Ｏ（ｋ・ｑ＊）である。ｑ＊は、典型的には、低い固定数、例えば、２と３との間であることが期待され、そして、大部分のユースケースにおいて、５より高くないので、予想される複雑性は、Ｏ（ｋ）として表され得る。
【００３４】
いくつかの実施形態において、逐次的にペアなBF構造は、さらに、全てのエンティティを表すために必要とされるハッシュ関数の数の著しい減少を可能にするために構成され得る。BFにおける複数のハッシュ関数の主な目的は、誤検知率を低減することであるので、本発明によって開示されるように、依存する照会のシーケンスを含む照会プロセスが、結果としてより少ない誤検知を生じ得ることが期待され得る。
【００３５】
例えば、２つの単一のBFそれぞれが１％の誤検知率を有する場合には、両方の構造を含む照会における誤検知リターンの確率は、０．１％×０．１％、または、概ね０．０１％まで、であろう。例えば、上述のように、図3を参照すると、３グラムの用語“Bank  of  England”のマッチングは、３つの別個の対比を通じた、その用語の逐次的なマッチングを含んでいる。BF：ＢＦ１Ｃｏｎｔ，ＢＦ２Ｃｏｎｔ，およびＢＦ３Ｓｔｏｐである。この場合に、誤検知リターンについて、３つのBFは全て、誤検知の一致を返す必要がある。BFそれぞれは誤検知のリターンについて特定の確率を有しているので、３つのBF全てが同時に誤検知を返す可能性は著しく低減される。
【００３６】
この全体的に低下した誤検知確率を利用するために、いくつかの実施形態において、ＢＦＣｏｎｔは、より少ない数のハッシュ関数を使用して構造化されてよく、これは、上述のように、より少ない設定および照会時間を結果として生じ得る。
【００３７】
さらに、BFを構造化する場合に、より高い許容可能な誤検知率が、フィルタのオーダーが増加するにつれて、ＢＦＣｏｎｔに割り当てられ得る。例えば、６グラムのトークンをマッチングする場合に、ＢＦ４ＣｏｎｔおよびＢＦ５Ｃｏｎｔでは、より厳密でない誤検知率が使用され得る。なぜなら、間違った一致の可能性は、逐次的な照会の先行する連鎖によって既に低下しており、そして、ＢＦ６Ｃｏｎｔの誤検知率によってさらに低減されるからである。従って、ハッシュ関数の全体的に低減された数、並びに、各構造によって照会されるトークンの低減された数は、トークン・マッチングの最中に照会される構造の増加した数を遅れずに（in  time）に補償する。
【００３８】
図4は、逐次確率的データ表現を使用して、大きなテキストコーパスに対してトークンの辞書を自動的にマッチングする方法のフローチャートである。400においては、ｎグラムで長さ１からｎまでのトークンを含む辞書が受信される。402においては、例えば、ｎ個のBFのペアを使用して、構造を表す逐次確率的データが構築される。
【００３９】
404において、少なくとも（ｉ＋１）個のトークンを有する全てのエンティティのうち最初のｉ個のトークンは、ｉでインデックス付けされたBFペアの第１のBF内に保管される。406においては、正確にｉ個のトークンを含む全てのエンティティが、ｉでインデックス付けされたBFペアの第２のBF内に保管される。
【００４０】
いくつかの実施形態において、本発明の例示的に実装されるコンピュータプログラムコードは、以下のコンピュータ命令を含み得る。
【数３】
2021535473.tif 000005
【００４１】
408においては、トークン化されたテキストコーパスからトークンが受信される。410においては、各テキストコーパストークンがBF構造に対して逐次的にマッチングされ、一致を特定する。いくつかの実施形態において、本発明の例示的な照会コンピュータプログラムコードは、以下のコンピュータ命令を含み得る。
【数４】
2021535473.tif 000006
【００４２】
本発明は、システム、方法、及び／又は、コンピュータプログラム製品であり得る。コンピュータプログラム製品は、コンピュータで読取り可能な記憶媒体（または、メディア）を含み、本発明の態様をプロセッサに実行させるためのコンピュータで読取り可能なプログラム命令をその上に有している。
【００４３】
コンピュータで読取り可能な記憶媒体は、命令実行装置による使用のための命令を保持し、かつ、保管することができる有形の装置であってよい。コンピュータで読取り可能な記憶媒体は、例えば、これらに限定されるわけではないが、電子記憶装置、磁気記憶装置、光記憶装置、電磁記憶装置、半導体記憶装置、または、これらの適切な組み合わせであってよい。コンピュータで読取り可能な記憶媒体のより具体的な例に係る非網羅的リストは、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ（RAM）、読取り専用メモリ（ROM）、消去可能プログラマブル読取り専用メモリ（EPROMまたはフラッシュメモリ）、スタティックランダムアクセスメモリ（SRAM）、ポータブルコンパクトディスク読取り専用メモリ（CD-ROM）、デジタル多用途ディスク（DVD）、メモリスティック、フロッピー（登録商標）ディスク、記録された命令を有する機械的に符号化されたデバイス、および、前述のものに係る任意の適切な組み合わせ、を含む。コンピュータで読取り可能な記憶媒体は、ここにおいて使用されるように、それ自体、一時的な信号であると解釈されるべきではない。電波または他の自由に伝搬する電磁波、導波管または他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、または、電線を通じて伝送される電気信号、といったものである。むしろ、コンピュータで読取り可能な記憶媒体は、非一時的(すなわち、非揮発性)媒体である。
【００４４】
ここにおいて記載のコンピュータで読取り可能なプログラム命令は、コンピュータで読取り可能な記憶媒体から各計算／処理装置へ、もしくは、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、及び／又は、無線ネットワークを介して、外部コンピュータまたは外部記憶装置へダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、及び／又は、エッジサーバを含み得る。各計算／処理装置におけるネットワークアダプタカードまたはネットワークインターフェイスは、ネットワークからコンピュータで読取り可能なプログラム命令を受信し、そして、それぞれの計算／処理装置におけるコンピュータで読取り可能な記憶媒体に保管するために、コンピュータで読取り可能なプログラム命令を転送する。
【００４５】
本発明のオペレーションを実行するためのコンピュータで読取り可能なプログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ（ISA）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、もしくは、Java、Smalltalk、C++、等といった、オブジェクト指向プログラミング言語、および、「C」プログラミング言語または類似のプログラミング言語といった、従来の手続き型プログラミング言語を含む、１つ以上のプログラミング言語の任意の組み合わせで書かれたソースコードまたはオブジェクトコードのいずれか、であり得る。コンピュータで読取り可能なプログラム命令は、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、スタンドアロンのソフトウェアパッケージとして、実行され、ユーザのコンピュータ上で部分的に、かつ、リモートコンピュータ上で部分的、もしくは、リモートコンピュータまたはサーバ上で全体的に、実行され得る。後者のシナリオにおいて、リモートコンピュータは、ローカルエリアネットワーク（LAN）またはワイドエリアネットワーク（WAN）を含む、任意のタイプのネットワークを介してユーザのコンピュータに接続されてよく、もしくは、外部コンピュータに対して(例えば、インターネットサービスプロバイダを使用するインターネットを介して)接続が行われてよい。いくつかの実施形態において、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、または,
プログラマブル論理アレイ(PLA)を含む、電子回路は、本発明の態様を実行するために、電子回路をパーソナライズすることにように、コンピュータで読取り可能なプログラム命令の状態情報を利用することによって、コンピュータで読取り可能なプログラム命令を実行し得る。
【００４６】
本発明の態様は、本発明の実施形態に従った方法、装置(システム)、および、コンピュータプログラム製品のフローチャート図及び／又はブロック図を参照して、ここにおいて説明されている。フローチャート図及び／又はブロック図の各ブロック、および、フローチャート図及び／又はブロック図におけるブロックの組み合わせは、コンピュータで読み取り可能なプログラム命令によって実装され得ることが理解されよう。
【００４７】
これらのコンピュータで読取り可能なプログラム命令は、マシンを生成するように、汎用コンピュータ、専用コンピュータ、または、他のプログラマブルデータ処理装置のプロセッサに提供されてよく、その結果、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャート及び／又はブロック図のブロックにおいて指定された機能／動作を実行する。これらのコンピュータで読取り可能なプログラム命令は、また、コンピュータ、プログラマブルデータ処理装置、及び／又は、他の装置を特定の方法で機能させることができるコンピュータで読取り可能な記憶媒体に保管されてもよく、その結果、そこに保管された命令を有するコンピュータで読取り可能な記憶媒体は、フローチャート及び／又はブロック図のブロックにおいて指定された機能／動作の態様を実施する命令を含む製造物品を構成する。
【００４８】
コンピュータで読取り可能なプログラム命令は、また、コンピュータ、他のプログラマブル装置、または、コンピュータ実装プロセスを生成するための他の装置に一連の動作ステップを実行させるように、コンピュータ、他のプログラマブルデータ処理装置、または、他の装置へとロードされてよく、その結果、コンピュータ、他のプログラマブル装置、または、他の装置において実行される命令は、フローチャート及び／又はブロック図のブロックにおいて指定された機能・動作を実施する。
【００４９】
図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態に従った、システム、方法、および、コンピュータプログラム製品の可能な実施に係るアーキテクチャ、機能性、および、オペレーションを説明している。この点について、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実装するための1つ以上の実行可能な命令を含む、モジュール、セグメント、または、命令の一部を表すことができる。いくつかの代替的な実装において、ブロックに示される機能は、図に示された順序から外れて発生してよい。例えば、連続して示される２つのブロックは、実際には、実質的に同時に実行されてよく、もしくは、包含される機能性に応じて、ときどき、逆の順序でブロックが実行されてよい。ブロック図及び／又はフローチャート図の各ブロック、および、ブロック図及び／又はフローチャート図におけるブロックの組み合わせは、指定された機能または動作を実施するか、もしくは、特定目的のハードウェアおよびコンピュータ命令の組み合わせを実行する特定目的のハードウェアベースのシステムによって実施され得ることにも、また、留意されたい。
【００５０】
本発明の様々な実施形態の記載は、説明の目的のために提示されてきたが、開示される実施形態について網羅的または限定するように意図されたものではない。多くの変更および変形が、説明された実施形態の範囲および精神から逸脱することなく、当業者にとっては明らかであろう。ここにおいて使用される用語は、実施形態の原理、市場で見出される技術に対する実際的な適用または技術的な改善を最もよく説明するため、もしくは、ここにおいて開示される実施形態を当業者などが理解できるように選択されたものである。
【図１Ａ】
2021535473.tif 000007
【図１Ｂ】
2021535473.tif 000008
【図２】
2021535473.tif 000009
【図３】
2021535473.tif 000010
【図４】
2021535473.tif 000011
【国際調査報告】
2021535473.tif 000012
2021535473.tif 000013
2021535473.tif 000014