JP2014533408A - データクラスタ化、データセグメント化、及びデータ並列化 - Google Patents

データクラスタ化、データセグメント化、及びデータ並列化 Download PDF

Info

Publication number
JP2014533408A
JP2014533408A JP2014541426A JP2014541426A JP2014533408A JP 2014533408 A JP2014533408 A JP 2014533408A JP 2014541426 A JP2014541426 A JP 2014541426A JP 2014541426 A JP2014541426 A JP 2014541426A JP 2014533408 A JP2014533408 A JP 2014533408A
Authority
JP
Japan
Prior art keywords
record
records
data
cluster
processing entity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014541426A
Other languages
English (en)
Other versions
JP6190817B2 (ja
Inventor
アーレン アンダーソン
アーレン アンダーソン
Original Assignee
アビニシオ テクノロジー エルエルシー
アビニシオ テクノロジー エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アビニシオ テクノロジー エルエルシー, アビニシオ テクノロジー エルエルシー filed Critical アビニシオ テクノロジー エルエルシー
Publication of JP2014533408A publication Critical patent/JP2014533408A/ja
Application granted granted Critical
Publication of JP6190817B2 publication Critical patent/JP6190817B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3338Query expansion

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

第1処理エンティティによって第1オリジナルレコードセットを処理して、前記オリジナルレコードと該オリジナルレコードそれぞれの1又は2以上のコピーを含み、それぞれのオリジナルレコードが1又は2以上のフィールドを含む第2レコードセットが生成される。オリジナルレコードの少なくともいくつかのレコードの各レコードを処理することは、オリジナルレコードの少なくとも1つのコピーを生成し、さらにオリジナルレコードに第1セグメント値を関連付けるとともに、そのコピーに第2セグメント値を関連付けること(402)を含む。また、この方法は、第2レコードセットに関連するセグメント値に基づいて、複数の受信側処理エンティティの間で第2レコードセットを分割し、各受信側処理エンティティにおいて、受信側処理エンティティにおいて受信したレコードの1又は2以上のデータ値に基づいて結果を生成する操作を実行すること(404)も含む。

Description

関連出願の相互参照
本出願は、参照によりそれぞれ本明細書に組み込まれている、2011年11月15日に出願した米国特許出願第61/560,257号、及び2012年6月15日に出願した米国特許出願第61/660,259号の優先権を主張するものである。
この説明は、データクラスタ化、データセグメント化、及びデータ並列化(parallelization)に関する。
データクラスタ化は、実質的に類似する情報が共有の識別子でラベル付けされ、その結果、後でその情報が共通のロケーションに一緒にグループ化されているかのように処理され得るようにする方法である。この情報は、例えば、財務データ又は健康管理記録などの様々なタイプの情報を含み得る。各クラスタ(複数のクラスタのセットの中の)は、いくつかの類似性基準を満たすと判定されているデータ(例えば、文書、データベースレコード、又は他のデータオブジェクト)の単位を含む。一部の技法は、データの単位をバッチとして処理してクラスタを生成する、又は既存のクラスタに追加する「オフライン」技法である。一部の技法は、データの単位を、データが受け取られるにつれてインクリメンタルに処理する「オンライン」技法である。クラスタは、1つのレベルの所与のクラスタがそれ自体、別のレベルの複数のクラスタに分割される階層型であることが可能である。場合によっては、それらのクラスタは、各データ単位が厳密にそれらのクラスタの1つに入っているデータ単位の分割に対応し、場合によっては、クラスタは、データ単位が2つ以上のクラスタのメンバである状態で重なり合うことが可能である。
一態様では、一般に、方法が、第1処理エンティティによって第1セットのオリジナル(original)レコードを処理して、オリジナルレコードとそれぞれのオリジナルレコードの1又は2以上のコピーとを含む第2レコードセットを生成する(generate)ことを含み、それぞれのオリジナルレコードが1又は2以上のフィールドを含む。オリジナルレコードの少なくともいくつかのレコードの各レコードを処理することは、オリジナルレコードの少なくとも1つのコピーを生成し、さらにオリジナルレコードに第1セグメント値を関連付けるとともに、そのコピーに第2セグメント値を関連付け、第1セグメント値が、オリジナルレコードそれぞれのフィールドの1又は2以上のデータ値の第1ポーションに対応し、第2セグメント値が、第1ポーションとは異なるオリジナルレコードそれぞれのフィールドの1又は2以上のデータ値の第2ポーションに対応することを含む。また、この方法は、第2セットの中のレコードに関連付けられるセグメント値に基づいて、複数の受信側処理エンティティの間で第2レコードセットを分割し、各受信側処理エンティティにおいて、受信側処理エンティティにおいて受信したレコードの1又は2以上のデータ値に基づいて結果を生成する操作を実行することも含む。
態様は、以下の特徴の1又は2以上を含み得る。
第1セグメント値は、第1データ値の中の文字の第1位置セットからとられた第1フィールドの第1データ値からの第1シーケンスの文字に対応し、第2セグメント値は、第1データ値の中の文字の第2位置セットからとられた第1データ値からの第2シーケンスの文字に対応する。
第1位置セットは、第2位置セットとは重なり合わない。
第1位置セットは、データ値の最初の文字に対する偶数位置であり、第2位置セットは、データ値の最初の文字に対する奇数位置である。
セグメント値をレコードに関連付けることは、関連付けられるセグメント値をレコードの新たなフィールドに書き込むことを含む。
受信側処理エンティティにおいて受信したレコードの1又は2以上のデータ値に基づいて操作を実行することは、第1レコードの1又は2以上のデータ値の中で出現する文字ストリングと、少なくとも第2レコードの1又は2以上のデータ値の中で出現する文字ストリングとを照合し、一致を判定することを含む。
この照合は、近似照合(approximate match)である。
この近似照合は、照合するストリングが、指定された編集距離まで異なることを許容する。
この近似照合は、第1レコードのデータ値と第2レコードのデータ値の間の許容される差分を定義する照合基準に基づき、それぞれのオリジナルレコードに関して、その1又は2以上のデータ値の第1ポーション、及びその1又は2以上のデータ値の第2ポーションが、許容される差分のいずれかによるその1又は2以上のデータ値の変更に応答して、第1セグメント値又は第2セグメント値の少なくとも1つは変化しないように選択される。
許容される差分は、第1レコードのデータ値の中で出現する第1文字ストリングと第2レコードのデータ値の中で出現する第2文字ストリングの間の差分を含む。
許容される差分は、第1レコードのデータ値の中で出現する第1バイナリ値と第2レコードのデータ値の中で出現する第2バイナリ値の間の違いを含む。
受信側処理エンティティにおいて受信したレコードの1又は2以上のデータ値に基づいて操作を実行することは、代替キー割り当てを含む。
受信側処理エンティティで生成される結果は、受信側処理エンティティにおいて受信した各レコードに関して、レコードの1又は2以上のデータ値に基づく割り当てられた代替キーで拡張されたレコードを含む。
受信側処理エンティティにおいて受信したレコードの1又は2以上のデータ値に基づいて操作を実行することは、受信したレコードを1又は2以上のクラスタにクラスタ化することを含む。
受信側処理エンティティにおいて生成される結果は、受信側処理エンティティにおいて受信した各レコードに関して、そのレコードの1又は2以上のデータ値、及び受信側処理エンティティにおいて受信したその他のレコードの少なくともいくつかのレコードの1又は2以上のデータ値に基づく割り当てられたクラスタで拡張されたレコードを含む。
操作は、代替キー割り当て、クラスタ化、ロールアップ、又は結合の少なくとも1つを含む。
第1セグメント値は、オリジナルレコードそれぞれのフィールドの複数データ値の第1ポーションに対応し、第2セグメント値は、第1ポーションとは異なるオリジナルレコードそれぞれのフィールドの複数データ値の第2ポーションに対応する。
この方法は、第2処理エンティティにおいて各受信側処理エンティティからの結果を受信すること、及び冗長な結果を削除するようにそれらの受信した結果を処理することをさらに含む。
第2レコードセットは、オリジナルレコードとそれぞれのオリジナルレコードの少なくとも1つのコピーとを含む。
冗長な結果を削除するように受信した結果を処理することは、オリジナルレコードに関連付けられる第1結果、又はオリジナルレコードのコピーに関連付けられる第2結果の最大で1つを選択することを含む。
この方法は、第1処理エンティティにおいて各受信側処理エンティティからの結果を受信すること、及び冗長な結果を削除するように受信した結果を処理することをさらに含む。
受信側処理エンティティそれぞれは、それぞれ操作を独立に実行する。
受信側処理エンティティの数は、それぞれのオリジナルレコード、及びそのオリジナルレコードのコピーに関連付けられる異なるセグメント値の最小値と少なくとも等しい。
処理エンティティは、マルチコアプロセッサにおけるコアであり、さらに第1処理エンティティは、第2レコードセットからの分割されたレコードを、マルチコアプロセッサにおける相互接続ネットワークを介して受信側処理エンティティに送信する。
処理エンティティは、マルチプロセッサコンピュータシステムにおけるプロセッサであり、さらに第1処理エンティティは、第2レコードセットからの分割されたレコードを、マルチプロセッサコンピュータシステムにおける相互接続ネットワークを介して受信側処理エンティティに送信する。
処理エンティティは、ラックマウント型サーバシステムにおけるサーバコンピュータであり、さらに第1処理エンティティは、第2レコードセットからの分割されたレコードを、ラックマウント型サーバシステムにおける相互接続ネットワークを介して受信側処理エンティティに送信する。
処理エンティティは、ネットワークを介して通信状態にあるコンピュータシステムであり、さらに第1処理エンティティは、第2レコードセットからの分割されたレコードを、そのネットワークを介して受信側処理エンティティに送信する。
別の態様では、一般に、コンピュータプログラムがコンピュータ可読記憶媒体上に格納される。このコンピュータプログラムは、コンピューティングシステムに、第1処理エンティティによって第1オリジナルレコードセットを処理させて、オリジナルレコードとそれぞれのオリジナルレコードの1又は2以上のコピーとを含む第2レコードセットを生成させるための命令を含み、それぞれのオリジナルレコードが1又は2以上のフィールドを含む。オリジナルレコードの少なくともいくつかのレコードの各レコードを処理することは、オリジナルレコードの少なくとも1つのコピーを生成し、さらにオリジナルレコードに第1セグメント値を関連付けるとともに、そのコピーに第2セグメント値を関連付け、第1セグメント値が、オリジナルレコードそれぞれのフィールドの1又は2以上のデータ値の第1ポーションに対応し、さらに第2セグメント値が、第1ポーションとは異なるオリジナルレコードそれぞれのフィールドの1又は2以上のデータ値の第2ポーションに対応することを含む。このコンピュータプログラムは、コンピューティングシステムに、第2セットの中のレコードに関連付けられるセグメント値に基づいて、複数の受信側処理エンティティの間で第2レコードセットを分割させ、さらに各受信側処理エンティティにおいて、受信側処理エンティティにおいて受信したレコードの1又は2以上のデータ値に基づいて結果を生成する操作を実行させるための命令を含む。
別の態様では、一般に、コンピューティングシステムが、第1オリジナルレコードセットを処理して、オリジナルレコードとそれぞれのオリジナルレコードの1又は2以上のコピーとを含む第2レコードセットを生成するように構成された第1処理エンティティを含み、それぞれのオリジナルレコードが1又は2以上のフィールドを含む。オリジナルレコードの少なくともいくつかのレコードの各レコードを処理することは、オリジナルレコードの少なくとも1つのコピーを生成し、さらにオリジナルレコードに第1セグメント値を関連付けるとともに、そのコピーに第2セグメント値を関連付け、第1セグメント値が、オリジナルレコードそれぞれのフィールドの1又は2以上のデータ値の第1ポーションに対応し、さらに第2セグメント値が、第1ポーションとは異なるオリジナルレコードそれぞれのフィールドの1又は2以上のデータ値の第2ポーションに対応することを含む。このコンピューティングシステムは、第2セットの中のレコードに関連付けられるセグメント値に基づいて分割された第2レコードセットそれぞれのサブセットを受信する複数の受信側処理エンティティを含み、各受信側処理エンティティが、その受信側処理エンティティにおいて受信したレコードの1又は2以上のデータ値に基づいて結果を生成する操作を実行するように構成される。
別の態様では、一般に、方法が、第1処理エンティティによってレコードセットを複数のレコードサブセットに分割すること、及びそれぞれの異なる受信側処理エンティティによってそのレコードセットの異なるサブセットを処理して、結果を、それらの受信側処理エンティティそれぞれがアクセスできるデータストレージの中に格納することを含む。各受信側処理エンティティによって処理することは、レコードの1又は2以上のフィールドの1又は2以上の値と、その受信側処理エンティティのいずれかによって保持されるローカル参照情報内のエントリ又はその他の受信側処理エンティティによって供給されたデータストレージ内のエントリとの間に近似照合が存在するか否か判定することに基づいて、そのサブセットの中の各レコードに対して操作を実行すること、及びその受信側処理エンティティによって保持されるローカル参照情報に基づいてデータストレージを更新することを含む。
態様は、以下の特徴の1又は2以上を含み得る。
受信側処理エンティティそれぞれがアクセスできるデータストレージは、不揮発性記憶媒体を含む。
各受信側処理エンティティによって保持されるローカル参照情報は、揮発性記憶媒体の中に格納される。
近似照合は、照合する値が、指定された編集距離まで異なることを許容する。
サブセットの中の各レコードに対して操作を実行することは、代替キー割り当てを含む。
受信側処理エンティティにおいて生成される結果は、受信側処理エンティティにおいて受信した各レコードに関して、そのレコードの1又は2以上の値に基づく割り当てられた代替キーで拡張されたレコードを含む。
サブセットの中の各レコードに対して操作を実行することは、レコードを1又は2以上のクラスタにクラスタ化することを含む。
受信側処理エンティティにおいて生成される結果は、受信側処理エンティティにおいて受信した各レコードに関して、そのレコードの1又は2以上の値、及び受信側処理エンティティにおいて受信したその他のレコードの少なくともいくつかのレコードの1又は2以上の値に基づく割り当てられたクラスタで拡張されたレコードを含む。
操作は、代替キー割り当て、クラスタ化、ロールアップ、又は結合の少なくとも1つを含む。
別の態様では、一般に、コンピュータプログラムが、コンピュータ可読記憶媒体上に格納される。このコンピュータプログラムは、コンピューティングシステムに、第1処理エンティティによってレコードセットを複数のレコードサブセットに分割させ、さらにそれぞれの異なる受信側処理エンティティによってそのレコードセットの異なるサブセットを処理させて、結果を、受信側処理エンティティそれぞれがアクセスできるデータストレージの中に格納させるための命令を含む。各受信側処理エンティティによって処理することは、レコードの1又は2以上のフィールドの1又は2以上の値と、その受信側処理エンティティによって保持されるローカル参照情報内のエントリ又はその他の受信側処理エンティティのいずれかによって供給されたデータストレージ内のエントリとの間に近似照合が存在するか否か判定することに基づいて、そのサブセットの中の各レコードに対して操作を実行すること、及びその受信側処理エンティティによって保持されるローカル参照情報に基づいてデータストレージを更新することを含む。
別の態様では、一般に、コンピューティングシステムは、レコードセットを複数のレコードサブセットに分割するように構成された第1処理エンティティと、そのレコードセットの異なるそれぞれのサブセットを処理して、結果を、受信側処理エンティティそれぞれがアクセスできるデータストレージの中に格納するようにそれぞれが構成された複数の受信側処理エンティティとを含む。各受信側処理エンティティによって処理することは、レコードの1又は2以上のフィールドの1又は2以上の値と、その受信側処理エンティティによって保持されるローカル参照情報又はその他の受信側処理エンティティのいずれかによって供給されたデータストレージ内のエントリとの間に近似照合が存在するか否か判定することに基づいて、そのサブセットの中の各レコードに対して操作を実行すること、及びその受信側処理エンティティによって保持されるローカル参照情報に基づいてデータストレージを更新することを含む。
態様は、以下の利点の1又は2以上を有することが可能である。
大量のデータをクラスタ化する際、パフォーマンス及びスケーラビリティを制限する主な要因の1つが、適切な距離測定の下でいずれが近いかを判定するのにレコード間で行われなければならない計算の回数である。単純な全対全比較は、クラスタ化されているレコードの数の2乗に比例して拡大縮小する。
改良されたアプローチは、クラスタをインクリメンタルに発見し、各クラスタを、新たなクエリレコードが近くなければならない代表的レコードで代表させてから、近くのレコードのさらなる採点が行われる。クエリレコードが新たなクラスタに属することを発見することは、既存のすべてのクラスタ代表がまず調べられてからでないと、新たなクラスタが作成され得ないため、別々のクラスタの数の2乗に比例して拡大縮小する。ビジネスの顧客データベース内で個人又は世帯をクラスタ化する場合に一般的であるように、多数の別々のクラスタに関して、このアプローチは、成り立たなくなる。
本明細書で説明されるデータクラスタ化方法は、検索プロセスを使用して、おおよその距離測定の下で、クエリレコードがいずれかの既存のクラスタに十分に近いかどうかを判定してから、費用のかかる比較が行われる。このことは、クエリレコードが新たなクラスタの最初のレコードである以前のアプローチにおける最悪ケースを最良ケースに変換する。クエリレコードが既存のレコードと不十分な重なり合いしか有さない場合、クエリレコードは、検索から候補レコードを全く返さず、新たなクラスタのメンバであるはずである。
本明細書で説明されるデータクラスタ化方法は、初期クエリから展開されるいくつかのクエリの組み合わせに基づいてターゲットが狭く絞られた検索を使用する。これらの複数のクエリは、検索中に検出すべきクエリ語句の変数照合を可能にするとともに、フィールドの中の複数のトークンからの、又はレコードの中の複数のフィールドからの同時のクエリを可能にする。この検索は、既存のクラスタの代表の役割をするマスタレコードのセットから、候補照合基準を満たす候補レコードを見つけ出そうとする。検索インデックスが、バッチモードで完全データセットに照らして事前計算されることが可能であり、又はインクリメンタルモードで累加的に入力される(polulated)ことが可能である。バッチモードにおいて、検索インデックスは、ビットベクトルの形態でレコードを照合するためのロケーション情報を含むことが可能である。このことは、複数の検索の結果を組み合わせるブール計算を容易にする。
候補照合基準は、検索の組み合わせの定性的な結果を、例えば、顧客の検索がラストネームと都市の両方で照合したかどうかを符号化するコードである検索コードに関連して作成されることが可能である。各検索コードに関連付けられるサンプルレコードが、ユーザが候補照合基準を調整するのを支援するように抽出されることが可能である。また、検索コードは、一部の実施例において、候補照合基準全体を、検索結果に対するブール式として実現して、トークンがおおよそで照合するだけでよい場合に検索を非常に迅速にすることを可能にもする。
候補照合基準を満たす候補レコードが見出された後、それらの候補レコードに関連付けられる各クラスタからの代表的レコードが、クエリレコードとの詳細な比較のために取り出される。より費用のかかる距離測定が、この比較のために使用される。検索コードと同様に、照合コードが、比較される個々のフィールド又はフィールドの組み合わせの各ペア間で見出される定性的照合、並びに特定のフィールドが、例えば、無効であったか、空白であったか、又は入力されていたかを示す、比較される個々のフィールド又はフィールドの組み合わせの入力の状態を含め、比較を定性的に要約するように構築される。照合コードからのクラスタ化の後、様々な品質の照合の数を定量化する統計が累算されることが可能である。また、各照合コードに関連付けられる決まった数のサンプルレコードが、ユーザが様々な種類の照合の品質を判断すること、及び照合結果を変えるようにそれに相応してレコードを比較するのに使用される比較関数を繰り返し調整することを支援するように抽出されることも可能である。また、レコードの入力特徴と照合結果の品質の間の相互関係が、照合コードから推論されることも可能である。
クエリレコードと候補クラスタからの代表的レコードの間の詳細な比較のセットが、何らかの照合閾値を超える照合する最良のペアを見出すように解析されることが可能である。照合閾値を超える照合する最良のペアが存在しない場合、クエリレコードは、新たなクラスタの最初のレコードにされる。照合閾値を超える1つの照合する最良のペアが存在する場合、クエリレコードは、対応するクラスタに追加される。異なる既存のクラスタに対して照合閾値を超える複数の照合するペアが存在する場合、クエリレコードは、照合する最良のペアに関連付けられるクラスタに追加されるが、ユーザによる点検のために提供され得る代替のクラスタのセットが記録される。
クラスタメンバシップ判定が行われ、すべてのクエリレコードがクラスタに割り当てられた後、ユーザが、クラスタ化されたレコードのネットワークを点検して、クラスタ承認プロセスにとりかかることが可能である。あいまいな照合が、点検のためにユーザに合図(flagged)される。ユーザは、クラスタ内の任意のレコードを確認することを選択することが可能であり、確認した場合、そのレコードがクラスタ化に再び差し出された場合には、そのレコードは、クラスタ化プロセスを経ることなしに同一のクラスタidを受け取る。このことは、ユーザが、レコードが正しいクラスタに入っていることを手動で確認した場合、その決定が永続しなければならないというビジネス要件を満たす。
ユーザは、レコードを、そのレコードが入れられていたクラスタから除外することを選択することが可能である。その後のクラスタ化実行時に、そのレコードは、そのクラスタに割り当てられることを阻止され、アルゴリズムによって判定された次善のクラスタに割り当てられる。
ユーザは、レコードを新たなクラスタにマップすることを選択することが可能である。その後のクラスタ化実行時に、そのレコードは、新たなクラスタに割り当てられる。確認されていない任意のレコードが、それらのレコードが、既存の他のクラスタの中のレコードに対してよりも、そのレコードに近いという条件付きで、その新たなクラスタの中でそのレコードと一緒になることが可能である。同様に、ユーザは、選択されたレコードを、そのレコードがクラスタ化プロセスによって入れられていない、既存の異なるクラスタに再マップすることが可能である。後の実行時に、選択されたレコードは、選択されたクラスタに入れられ、そのレコードに近い任意の(確認されていない)レコードが、その選択されたレコードと一緒にその選択されたクラスタに移動する。このことは、ユーザが、少数の選択された個々のレコードを再マップすることを可能にするとともに、選択されたレコードと緊密に関係するすべてのレコードを再マップする再クラスタ化を可能にする。
承認プロセスは、ユーザによる変更によって影響を受けるすべてのレコードを抽出し、それらのレコードをクラスタ化プロセスを介して返すプロセスによって円滑にされる。もたらされるデータクラスタは、前のデータクラスタに対して差別化され、ユーザには、その結果が示される。その後、ユーザが、行われたばかりの変更に加えてさらなる変更を適用して、それらの変更を繰り返す、又は破棄して、承認プロセスを始めからやり直すことを選択することが可能である。この承認プロセス全体が、一時作業領域で実行されることが可能であり、このプロセスが完了して、ユーザが満足すると、クラスタ化プロセスを導く基礎をなすクラスタストアが、永続的な生産領域に再び公開されることが可能である。
本明細書で説明されるデータクラスタ化プロセスのさらなる利点は、バッチモードクラスタ化が、初期データセットに対して行われることが可能であり、将来のデータが、蓄積されたデータセット全体を再クラスタ化する必要なしに、インクリメントモードを使用して既存のクラスタに追加され得ることである。このことは、個々のレコードのクラスタメンバシップが、新たなデータが到着するにつれ、変化することがないというビジネス期待及びビジネス要件を満たす。未確認のレコードが、クラスタ承認プロセス中に可能であるように、再処理されない限り、個々のクラスタに対するそれらのレコードの割り当ては、変化し得ない。
多国籍機関が、多数の国の個人についての情報を格納する可能性がある。これらの国は、データがどのように使用され、他国にエクスポートされ得るかを制限するデータプライバシーの法律又は規制を有することが可能である。データプライバシーの法律は、健康管理記録及び財務記録を含む多種多様な異なるタイプのデータを保護することが可能である。一部の国におけるデータ保護の法律は、いずれの他国へのデータのエクスポートも阻止する。他の国において、そのような法律は、一部の国へのデータのエクスポートを許容する一方で、他の国へのデータのエクスポートを阻止する。本明細書の用法では、いずれの他国へのデータの流れも制限する国は、データエクスポート禁止の国と呼ばれ、選択的な国へのデータの流れを制限する国は、選択的データエクスポートの国と呼ばれ、さらに制限的データエクスポートの国が、データエクスポート禁止の国と選択的データエクスポートの国をひとまとめにして指すように使用される。
同時に、要求国が、それらの国の管轄下のエンティティから選択された情報が提供されることを要求することが可能である。例えば、米国(この例では、要求国)が、米国の管轄下の地球規模の金融機関が、所望の個人に関連付けられる銀行口座のリストを提供することを要求するが、要求されたデータは、スイス国(この例では、制限的データエクスポートの国)にあることが可能である。
本明細書で説明されるデータクラスタ化技法は、要求国における所望の個人に関連付けられるレコードを、制限されたデータエクスポートの国におけるレコードと、それらの国々からデータをエクスポートすることなしにクラスタ化するのに使用されることが可能である。
クラスタ化プロセスを示すブロック図である。 制限されたデータエクスポートの国が関与するクラスタ化プロセスを示す図である。 クラスタ化エンジンを示すブロック図である。 候補検索エンジンを示すブロック図である。 変数プロファイラを示すブロック図である。 変数ネットワークアナライザを示すブロック図である。 クラスタ承認エンジンを示すブロック図である。 変数−検索手順の例を示す図である。 変数−検索手順の例を示す図である。 変数−検索手順の例を示す図である。 変数−検索手順の例を示す図である。 変数ネットワークの例を示す図である。 トークン代表ストアを入力するプロセスの例を示す図である。 レプリケートされたセグメント化を使用するクラスタ化を並列化するためのプロセスの例を示す流れ図である。 レプリケートされたセグメント化を使用する並列クラスタ化の例を示す図である。 レプリケートされたセグメント化を使用する並列クラスタ化の例を示す図である。 レプリケートされたセグメント化を使用する並列クラスタ化の例を示す図である。 自然キーによる分割を伴う並列代替キー生成の例を示す図である。 複数のフィールドからのクエリに対して検索することの例を示す図である。 複数のフィールドからのクエリに対して検索することの例を示す図である。 複数のフィールドからのクエリに対して検索することの例を示す図である。 複数のフィールドからのクエリに対して検索することの例を示す図である。 変数ルックアップ手順を実施する削除−結合手順を使用することの例を示す図である。 インクリメンタルモードでクラスタ化するためのプロセスの例を示す流れ図である。 インクリメンタルモードでクラスタ化することの例を示す図である。 インクリメンタルモードでクラスタ化することの例を示す図である。 インクリメンタルモードでクラスタ化することの例を示す図である。 インクリメンタルモードでクラスタ化することの例を示す図である。 バッチモードでクラスタ化するためのプロセスの例を示す流れ図である。 バッチモードでクラスタ化するためのプロセスの例を示す流れ図である。 既存のクラスタの1つのメンバに照合するクエリレコードに関するクラスタメンバシップ判定プロセスの例を示す図である。 既存の複数のクラスタのメンバに照合するクエリに関するクラスタメンバシップ判定プロセスの例を示す図である。 複数の照合を調整するプロセスの例を示す流れ図である。 複数の照合を調整することの例を示す図である。 複数の照合を調整することの例を示す図である。 複数の照合を調整することの例を示す図である。 クラスタ承認プロセスの例を示す流れ図である。 クラスタ承認プロセスの例を示す流れ図である。 1つのシステム上で始まり、遠隔システム上で続くクラスタ化の例を示す流れ図である。 1つのシステム上で始まり、遠隔システム上で続くクラスタ化の例を示す流れ図である。 1つのシステム上で始まり、遠隔システム上で続くクラスタ化の例を示す流れ図である。
1 概略
1.1 検索ベースのクラスタプロセス概略
図1Aを参照すると、データ処理システム10が、データソース100からのデータをクラスタ化するのに使用される。一部の実施例において、データ処理システム10によって実行されるクラスタ化プロセスが、場合により、無効な値を含め、それぞれのフィールド(「属性」又は「カラム」とも呼ばれる)に関する値を有するレコードとして編成されたデータ内で出現するトークンを解析する。トークンは、フィールド又はフィールドの組み合わせの中の少なくとも1つの値、又は値の少なくとも1つの断片である。ユーザ102が、ユーザインターフェース104を使用して、データソース100、及びデータソース100の変数関係のネットワークにおける選択されたフィールド(又はフィールドの組み合わせ)における値、トークン、並びに値及びトークンの変数のコレクションに関して、場合により、表とグラフの両方として、レポートを受信すること、変数トークン、類似した句(すなわち、マルチトークン単位)、及び類似したレコードを識別し、トークン、句、又はレコードのあいまいな照合又は偽陽性の照合を見つけ出して、解決し、さらにクラスタメンバシップ判定を行って、各レコードを1又は2以上のクラスタに割り当てるビジネス規則を作成し、保持すること、並びに変数ネットワーク接続及びクラスタメンバシップ判定を点検し、変更し、承認することを含む、クラスタ化プロセスの様々な態様を監視して、制御する。
データソース100は、一般に、データセットとも呼ばれる、様々な個々のデータソースを含み、これらのデータソースそれぞれが、独自の格納フォーマット及びインターフェース(例えば、データベーステーブル、スプレッドシートファイル、フラットテキストファイル、又はメインフレームによって使用されるネイティブフォーマット)を有することが可能である。個々のデータソースは、クラスタ化システム10にローカルであることが可能であり、例えば、同一のコンピュータシステム上でホストされ、又はクラスタ化システム10から遠隔であることが可能であり、例えば、ローカルエリアネットワーク若しくはワイドエリアネットワークを介してアクセスされる、又はクラウドにおけるウェブサービスを介してクラスタ化システム10にアクセスする、若しくはそのようなクラスタ化システム10によってアクセスされる遠隔コンピュータ上でホストされる。
データソースにおけるデータは、1又は2以上のレコードとして編成されることが可能であり、各レコードは、値を含む1又は2以上のフィールドを含み、各値は、文字のストリング又はバイナリ値からなる。ストリング文字は、単一バイト又はマルチバイトの文字、例えば、ASCII又はユニコードであることが可能である。バイナリデータは、整数などの数、及び画像データなどの生のデータ及び/又は圧縮されたデータを含み得る。
データソース100から読み取られたデータが、変数プロファイラ110によって処理される。変数プロファイラ110は、トークンを識別し(例えば、所定の規則に基づいて)、データの中の特定のトークンの出現(例えば、特定のトークンが出現するレコードの数)をカウントし、さらに一部の実施例において、特定のトークンが出現する特定のレコードを識別する情報を格納する。また、変数プロファイラ110は、何らかの類似性スコアに基づいて、例えば、編集距離、音声上の類似性、又は共有される文字のシーケンスに基づく測定(例えば、「eqty fnd」は、「equity fund」に対して、「eqty fnd」のすべての文字が「equity fund」の中で同一の順序で出現するので、類似している)によって、互いの変数である識別された異なるトークンのペア(「変数トークンペア」と呼ばれる)を識別することもする。外部データ106が、例えば、語の辞書、同義語及び省略形のリスト、ユーザが供給した変数ペアリング(例えば、会社特有の同義語、省略形、又は頭字語)、又は名前の文化的変数ペアリング(例えば、ニックネーム、変数つづり、外来名の変数音訳など)を供給することによって、類似性スコアを使用して変数プロファイラ110によって識別されたトークン及び変数トークンペアのコレクションを豊富化する、又は変更するのに使用され得る。そのようなリストは、オリジナルデータセットの中に存在しないトークンを追加する、又は無関係であるトークンの間に類似性によって変数ペアリングを生じさせることが可能である。また、外部データ106が、変数ペアリングに関連付けられるスコアを変更するのに(スコアが近さを示すのに使用される場合、このことは、トークン間の見た目の距離を変更するのに使用され得る)、変数ペアリング(例えば、偶然に類似している辞書語間の)を断つのに、又はトークンを削除するのに使用されることも可能である。
トークンの例が、値がスペースによって分離された複数の語からなるフィールドの中の語(スペースなしの文字のストリング)、例えば、フルネームを含むフィールドからとられた個人のファーストネーム、又はストリートアドレス(場合により、複数のフィールドを連結することによって形成された)の中の語である。トークンは、都市の名前、「New York」のようにスペースを含むことも可能である。トークンは、政府識別子(id)又はインボイス番号のように、数値、場合により、バイナリであることが可能である。トークンは、1つの文字が削除されているストリング、数字が削除されている数、ストリング若しくは数からとられたn個の文字の隣り合ったシーケンスからなるnグラムなどの、ストリング値又は数値の断片であることが可能である。トークンは、画像の中の領域に対応するデータのような、バイナリフィールドの断片であることも可能である。
変数プロファイラ110によって識別された変数トークンのペアリング(変数トークンペアにする)は、各トークンがノードで表され、変数トークンの間のペアリングが、それらのトークンを表すノード間のエッジに対応する変数ネットワークを規定する。この変数ネットワークが、変数ネットワークアナライザ120によって解析されることが可能である。通常のネットワークは、接続された複数の構成要素のコレクションを含むことが可能であり、接続された各構成要素のノードはすべて、その構成要素における別のノードにエッジで接続されるが、互いに接続される、異なる構成要素におけるノードは存在しない。接続された構成要素は、エッジによって接続されたノードのセットの閉包である。定義により、異なる、接続された構成要素は、互いに素である。変数ネットワークアナライザ120が、ネットワークの接続された構成要素のコレクションを識別することが可能であり、1又は2以上のトークン代表を、変数ネットワークの接続された構成要素内の各トークンに関連付けることが可能である。変数ネットワークのノードを特徴付ける数量の中には、データセットの中のすべてのレコードにわたる選択されたフィールド(又はフィールドの組み合わせ)の中の関連付けられるトークンのインスタンスのカウントがあり、別個に、トークンとペアにされた変数の数、つまり、そのトークンを代表するノードに接続されたエッジの数に対応する、トークンの度数(又は配位数)が存在する。
ユーザ102が、ユーザインターフェース104において、トークンに関する、詳細には、単一の接続された構成要素内のトークンに関する変数ペアリングのネットワークのグラフ表示を見ることが可能である。変数ネットワークの接続された構成要素の特定のサブセットが重要なものとなる可能性があり、グラフ表示の中で強調表示されてもよい。例えば、より大きいカウントを有するノードに接続されていないノードを考慮されたい。一部の実施例において、これらのノードは、接続された構成要素に関するトークン代表のコレクションとして選択され得る。等しいカウント、又はより小さいカウントのノードにだけ接続するエッジをたどることによって得られたノードのツリーからなるサブネットワークは、トークン代表の正規の近隣と呼ばれ得る。正規の近隣の中のすべてのノードが、その正規の近隣のトークン代表によって表されることが可能である。正規の近隣は、重なり合ってもよい。したがって、トークンは、そのトークンがそれ自体、トークン代表ではない場合、2つ以上のトークン代表に関連付けられることが可能である。ユーザ102が、グラフィカルユーザインターフェース104を介して正規の近隣、及び正規の近隣の重なり合いを視覚化できることが有用である。
選択されたトークンとペアにされた変数トークンのセットは、そのトークンのローカル近隣と呼ばれる。選択されたトークンは、ローカル近隣に関するプライマリと呼ばれる。グラフ表示において、ローカル近隣は、選択された(プライマリ)ノードにエッジで接続されたノードのセットである。トークンの度数(又はグラフ的な意味における配位数)は、ローカル近隣のサイズ(トークン自体を除外するように1を引いた)である。選択されたトークンの重要度は、選択されたトークンのローカル近隣における各トークンに関する出現のカウントの合計を、少なくとも1つのトークン(その選択されたトークンが出現する所与のソース及びフィールド又はコンテキスト)を含むレコードの数で割った比のログとして計算される。この重要度は、様々なトークンの相対的重要性が比較されることを可能にし、すなわち、より高い重要度を有するトークンは、より少ないレコードの中で出現し、したがって、検索において使用される際、より区別する役割をする。
一部の実施例において、統計試験によって特異であると識別されるトークン、例えば、カウントが、平均にローカル近隣におけるトークンのカウントの標準偏差を足した合計を超えるトークンが、「(ローカルの)陽性のトークン」と識別され得る。(正規の近隣における、又は実際、任意の近隣におけるトークンに関して同様の識別が行われ得る。)会社名又は個人名の中の個々の語から形成されたトークンに関して、陽性のトークンは、例えば、誤りで形成されたタイプ入力上の変数ではなく、統計的に「実際の」語又は名前である可能性が高い。つまり、そのトークンの出現の頻度が、十分に高く、したがって、データセット内のそのトークンの近隣のコンテキスト内で、そのトークンが偶然、出現した可能性は低い。
陽性のトークンは、必ずしも辞書の中で見つかるものと予期されないことに留意されたい。データセットの中でつづりの間違った語が優勢である体系的な理由が存在し得る。詳細には、沢山の勝手に作られた、又は意図的につづりの誤った語が、独特の会社名を形成するのに使用される。同様に、データセットの統計がすべての辞書語の識別をサポートするわけではない可能性があるため、すべての辞書語が陽性のトークンとして認識されるわけではない。
多くのローカル近隣は、1つの陽性のトークンを有する。陽性のトークンは、統計的な意味で、「実際の」トークンであり、その他のトークンは、比較的稀な変数である。一部のローカル近隣は、すべての変数トークンの出現の頻度が同様であるため、陽性のトークンを全く有さない可能性がある。このことは、特に、陽性のトークンを区別するのに不十分な統計しか存在しない場合に、データセットの中で稀であるトークンに関して生じ得る。陽性のプライマリトークンのローカル近隣が、2つ以上の陽性のトークンを有する場合、その他の陽性のトークンは、「偽陽性」と見なされる。つまり、それらのトークンは、統計的に、プライマリ陽性トークンの偶然の変数ではなく、他の「実際の」トークンである可能性が高い。そのような偽陽性を識別することは、そのような偽陽性が、意味上の意義に基づいてペアにされるべきではない類似性に基づいてペアにされたトークンを表すので、有用である。変数ネットワークの精度が、そのような変数ペアリングを断つことによって向上させられることが可能である。複数形のような一部の「偽」陽性は、変数として残されるべきであるため、いくらかの配慮が要求される。
トークン代表のコンテキストにおいて、正規の近隣に関して陽性のトークンを識別することは、有用であり得る。一部の非常に一般的な個人名は、非常に類似している。例えば、「Hernandez」と「Fernandez」を考慮されたい。1つの代入だけで異なることが、「Hernandez」と「Fernandez」を変数ペアにする。所与のデータセットの中で「Hernandez」と「Fernandez」のいずれかが、他方より頻繁であり、そのいずれかが、「Hernandez」と「Fernandez」の両方を含む正規の近隣において最も頻繁に出現するトークンである可能性が高く、したがって、一部の実施例において、その正規の近隣のトークン代表である。「Hernandez」と「Fernandez」の間の結び付きを断つことによって、「Hernandez」と「Fernandez」はともに、より大きいカウントの別のトークンに結び付けられる可能性が低いトークンになり、すると、それぞれの独自の(重なり合う)正規の近隣を有するトークン代表となる。例えば、「Hernandez」と「Fernandez」の間の結び付き、及び他の類似したペアを断つ、さらなる剪定が、これらの正規の近隣をより完全に分離するのに必要である可能性がある。
ユーザ102が、ユーザインターフェース104を使用して、例えば、ノード間でエッジを追加すること、若しくは削除すること、又はノードを追加すること、若しくは削除することによって、変数ネットワークを操作することが可能である。このことは、適切な外部データ106を供給することによって変数プロファイラ110によって実行される手順において行われている可能性があるのと同様に、変数ペアリングを追加すること、若しくは断つこと、又はトークンを追加すること、若しくは削除することに対応する。グラフィカルユーザインターフェース104が、このことを行う有用な方法をもたらす。また、グラフィカルユーザインターフェース104は、陽性のトークンを他のトークンからグラフィックスで区別し、陽性のトークンを接続するエッジを強調表示することも可能である。接続された陽性のトークンのすべての変数ペアをリストアップするビューが、いずれのエッジを断ち、いずれのエッジを保つかを選択する機構と一緒に与えられることが可能である。
検索ベースのクラスタ化エンジン130が、一部の実施例では、並列に処理されるようにセグメントに分けられ、及び/又はプロセッサの間で分割された「トークン化されたレコード」(コンテンツがトークン化されているレコード)を処理して、類似したコンテンツを有するレコードをグループ化して(それらのレコードに対応するトークンに基づいて)、データクラスタ180のコレクションを生成する。クラスタ化エンジン130は、データソース100におけるレコードのバッチ内のすべてのレコードが最初から比較のためにひとまとめに利用できる「バッチモード」(又は「オフラインモード」)で、又はレコードが、到着するにつれ、それまでに処理されているレコードのコレクションに照らして処理される「インクリメンタルモード」(又は「オンラインモード」)で実行されることが可能である。
一部の実施例において、バッチモードが、初期のクラスタ化を得るのに使用され、後のレコードが、インクリメンタルモードで追加される。すると、データを追加することは、蓄積されたデータの完全なセットを最初から再クラスタ化することを要求しない。追加のレコードだけを処理する明白なパフォーマンス上の利点に加えて、このことは、クラスタに対するレコードのそれまでに決定された割り当てが、データセット全体が最初から再クラスタ化されるとした場合に生じ得るように、新たなデータが到着するにつれて変わることがあり得ないというさらなる利点を有する。このことは、クラスタ、及びクラスタのメンバが、クラスタ化プロセスとは無関係にビジネス意義を有するとともに、企業は、より多くのデータが利用可能になるというだけの理由でクラスタメンバシップが変わり得るという考え方には抵抗があるので、ビジネスコンテキストでクラスタ化を行う際に特に重要である。
クラスタストア170は、検索ストア146及び代表的レコードストア178(図1D及び図1G参照)を含め、クラスタ化エンジン130によって保持され、クラスタプロセスに参加する。一部の実施例において、クラスタストア170に加えて、変数プロファイラ110及び変数ネットワークアナライザ120からの結果が、クラスタ化プロセス中に類似性に関してレコードを比較する際に考慮に入れられることが可能である。
データクラスタは、コンテンツが十分に類似していると判断されているデータレコードのセットである。クラスタに含められたデータレコードは、そのクラスタのメンバであると言われる。一部の実施例において、クラスタの中のレコードは、そのクラスタの他のメンバと高い度合の類似性を示し、他のクラスタのメンバと低い度合の類似性を示す。
セグメントは、クラスタにおけるメンバシップに関して互いに比較され得るデータレコードのセットである。異なるセグメントの中のレコードは、クラスタ化エンジン130によって比較されず、必然的に、別々のクラスタに対するメンバシップを割り当てられる。データレコードセットをセグメントに入れることは、セグメント化と呼ばれる。レコードは、2つ以上のセグメントのメンバであり得る。一部のシナリオにおいて、例えば、レコードのコレクションを、製品識別子、又は郵便番号若しくは出所の国のような地理的数量のような互いに素なセットに分割する特性を分類する、クラスタにわたって共通であると見込まれる値に基づく自然なセグメント化が存在する。一部の実施例において、データクラスタは、他の基準に基づいてセグメント化されることが可能であり、例えば、データが、政府によって割り当てられた識別子の断片に基づいてセグメント化されることが可能である。一部の実施例において、複数のレベルのセグメント化が可能である。例えば、データが、出所の国別にまずセグメント化されることが可能であり、それぞれの出所の国セグメント内のデータクラスタが、政府によって割り当てられた識別子の断片によってさらにセグメント化されることが可能である。
一部の実施例において、並列に処理する際、各セグメントは、異なるセグメントの中のレコード間で比較は全く行われないため、別の処理パーティションに送られることが可能である。他の実施例において、検索ストアを含め、クラスタ化エンジン130によって使用される或るデータが、すべてのパーティションによって共有されるという条件付きで、同一のセグメントの中のデータレコードが、並列に処理されるべき別々のパーティションに分割されることが可能である。
遠隔処理システム間の情報の制限された流れ、又は単方向の流れが関与する一部の実施例において、クエリ、並びに検索ストアエントリのような共有される情報が、制限された遠隔処理システムにおいて閲覧される結果の信頼性を損なうことなしに、制限された遠隔処理システムに単方向で送られることが可能である。例えば、一部の国々は、それらの国々の国境をまたいだ個人情報の共有を制限し、すなわち、いくつかの国は、他のすべての国へのデータエクスポートを禁止する(例えば、スイス国)一方で、他の国々は、米国を含む、選択された他の国々へのデータエクスポートを禁止する(例えば、フランス)。図1Bにおいて、クエリ20が、ユーザ22によって米国21内で開始される。このクエリは、個人名、政府によって割り当てられた識別子、及び生年月日からなることが可能であり、このクエリの目的は、名前を指定された個人によって所有されるすべての銀行口座を見つけ出すことである。このクエリが、米国21内で保持されるデータクラスタ23に適用され、いくつかのレコード(候補レコードと呼ばれる)が返される。検索ストア146からの検索エントリ、又は代表的レコードストア178からの代表的レコードなどのさらなる情報が、このクエリの結果として取り出され、保持されることが可能である。このクエリ、候補レコード、及び、場合により、さらなる情報が、選択的データエクスポートの国41内で保持されるデータクラスタ43に照らして、ローカルユーザ42によってローカルでクラスタ化されるように、選択的データエクスポートの国41に送られることが可能である(40)。同様に、このクエリ、候補レコード、及び、場合により、さらなる情報が、選択的データエクスポートの国51内で保持されるデータクラスタ53に照らして、ローカルユーザ52によってローカルでクラスタ化されるように、データエクスポート禁止の国51に送られることが可能である(50)。クラスタ化の結果は、適切なローカルアクションのために、例えば、詐欺検知又は法律執行のために、制限されたデータエクスポートの国々の国内で利用可能となる。制限されたデータエクスポートの国がその国のデータ、又はその国の共有される情報(検索エントリ又は代表的レコードのような)をエクスポートしないことは、制限されたデータエクスポートの国におけるデータから導き出されるクラスタメンバがその国の外では見えないことを単に意味する。その制限された国の外でクラスタ化されたデータの完全性は、影響を受けない。
一部の実施例において、レコードの類似性は、採点関数及びビジネス規則を使用して、データレコードの1又は2以上のフィールドからのトークンの比較を組み合わせてスコアにすることによって測定される。検索コード及び照合コードなどのデータパターンコードが、レコードの特性を要約し、類似性を測定するためのビジネス規則を作成する際と、結果をユーザ102に提示する際の両方で役立つ。例えば、レコードに関する検索コードが、レコードのセットの間で共有されるトークンの組み合わせにラベルを付けることが可能である一方で、ペアに関する照合コードが、比較されている各フィールド、又はフィールドの各組み合わせに関して照合品質、及び入力の状態を符号化することが可能である。例えば、比較されるフィールド値のペアに関する照合コード内の照合品質状態は、それらの値が同一であった場合、「厳密な照合」を含むことが可能であり、又は類似性スコアがファジー照合閾値より大きかった場合、「ファジー照合」を含むことが可能である。照合コード内の入力状態は、ペアのレコード1における値が無効又は空白(0以上のスペース文字)である場合、「入力されていない1」を含むことが可能であり、あるいはペアのレコード1における値とレコード2における値がともに入力されている、又はともに無効若しくは空白である場合、「相互に関係する入力」を含むことが可能である。検索コード又は照合コードは、検索又は照合ペアを特徴付ける様々な属性に関するそのようなコード化された状態のコレクションから組み立てられる。各検索コードを有するサンプルレコード、又は各照合コードを有する照合するペアからのサンプルレコードが、ユーザに表示され得る。このことは、ユーザが、クラスタメンバシップ判定を行うのに使用される類似性の測定を開発し、改良し、調整するのに役立ち得る。
クラスタ承認エンジン190が、ユーザ対話を介してクラスタ判定を繰り返し改良するのに使用され得る。ユーザ102が、例えば、レコードをクラスタのメンバとして確認して、又はレコードを新たなクラスタ若しくは既存のクラスタに再マップして、ユーザインターフェース104を介して一連のクラスタ承認判定を行う。クラスタ全体を分割するのに、又はマージするのに、選択されたレコードがユーザ102によって再マップされるだけでよい。クラスタ承認判定によって潜在的に影響を受けるレコードが、クラスタ化エンジン130を介して識別され、取り出され、再処理されて、変更されたデータクラスタ180がもたらされる。個々のレコードを再マップすることは、クラスタメンバシップに対してカスケード効果を有し、影響を受けるレコードが再クラスタ化されると、既存のクラスタが分割される、又はマージされることをもたらし、つまり、クラスタのオリジナルプライマリレコードに対してよりも、再マップされるレコードに近いレコードは、再マップされるレコードと一緒に再マップされるレコードの新たなクラスタに移動する。ユーザ102には、ユーザによるクラスタ承認選択によって誘発された変化を検証するようにユーザインターフェース104においてデータクラスタの「前と後の」表現が示されることが可能である。次に、ユーザ102が、結果に満足するまで、クラスタを変更することを繰り返しで継続することが可能である。再マップすることによって生じるカスケード効果のため、ユーザは、個々のすべてのレコードの配置を細かく管理する必要なしに、いくつかの賢明な変更で多くのレコードの配置を操作することができる。
1.2 クラスタ化エンジン
図1Cは、クラスタ化エンジン130の実施例の要素を図示する。一部の実施例において、データソースレコード100又はトークン化されたレコード118が、セグメント化エンジン132によって読み取られて、セグメントに分離され、及び/又は並列パーティショナ134によって並列処理のために複数のプロセスの間に分割される。
一部の実施例において、オリジナルレコード又はトークン化されたレコードのセットが、より区別しやすいレコードを先にして、レコードの識別性又は豊かさを反映する順序を課すように並べ替えられる(136)(各セグメント内、及び/又は各プロセス内で)ことが可能である。このことは、クラスタ化の品質を向上させ得る。識別性とは、多様な値及び複数のトークンを包含するより完全に入力されたフィールドを有するレコードが、入力されていないフィールド、及びデフォルトの値又は単一トークンで入力されたフィールドを包含する、場合により、不完全なレコードの場合と比べて、他のレコードから直観的により区別しやすいということを意図している。
例えば、1つの識別性の基準は、レコードの特徴的入力パターンに基づくことも可能である。入力パターンコードが、例えば、レコードの中の1若しくは2以上のフィールドの選択されたセット、又はフィールドの組み合わせに関する値のセット(クラスタメンバシップと関係のある)、例えば、フィールドが入力されていない(無効、空、又は空白)場合の値「0」、フィールドがデフォルトの値を包含する場合の値「1」、フィールドにデフォルトでない値が入力されている場合の値「2」を連結することによって、レコードの入力の状態を符号化するのに使用され得る。他のより大きい値が、フィールドの入力の状態、例えば、テキストフィールドの中のトークンの数のさらなる定性的な区別を行うのに使用されることも可能である(それらの数が「9」を超え得る場合、他のコード値の表現において適切な補償を行って)。識別性のスコアが、入力パターンコードにおける様々な入力値の重み付けされたスコアとして計算されることが可能である。より高いスコアは、より区別しやすいレコードを示し、レコードを編成する並べ替え136は、識別性のスコアの上位の順からの並べ替えであることが可能である。(一般に、並べ替え順序は、スコアにまず変換することをしない、入力パターンコードなどの数値でない識別性の基準から決定され得る。)識別性のより正式の測定は、所与のソース及びフィールド(又はコンテキスト)における各トークンの重要度のような統計的な測定を含む変数プロファイラストア115の中のデータを使用して構築され得る。
識別性の並べ替え136を行う目的は、そうすることが、クラスタ化メンバシップ判定プロセスがインクリメンタルであるため、すなわち、レコードが、処理されるにつれ、クラスタに割り当てられるため、より良好なクラスタ化結果につながることである。詳細には、クラスタの数は、始めには知られておらず、レコードが処理されるにつれ、新たなクラスタが発見される。識別性の順序付けは、クラスタメンバシップ判定プロセスと一緒に機能して、クラスタメンバシップ判定プロセスと適合する最大数の個別のクラスタをもたらすように設計される。より低い識別性のスコアを有し、しばしば、それに付随するより低いデータ品質を有するレコードが先に処理された場合、それらのレコードが、さもなければ区別しやすいクラスタの凝集を誘発する傾向があることを経験が示す。
一部の実施例において、実質的に異なるデータ品質を有するレコードが別々に処理されるデータ品質カスケードでクラスタ化を実行することが好ましい可能性がある。例えば、顧客名、政府id、及び生年月日を有する銀行レコードに関して、3つすべてのフィールドが(デフォルトでない値で)入力されているレコードのセットを、2つのフィールドが(デフォルトでない値で)入力されているレコードとは別個に、1つだけのフィールドが入力されているレコードとは別個に処理する価値がある。クラスタ化メンバシップ判定の信頼性は、レコードの完全性が低下するにつれて低下し、別々のクラスタ化動作を行うことが、ユーザがこのことの影響を理解するのを助ける可能性がある。同様に、異なる識別性のスコアのレコードが、ユーザ102のためにユーザインターフェース104においてグラフ表示で特徴付けられることも可能である。例えば、それらのレコードが、いずれのレコードの信頼性がより低いかをユーザが一目で見分けることができるように、高い識別性から低い識別性までに及ぶ階調スケールで色付けされることも可能である。また、ユーザインターフェース104は、やはり、ユーザが所与の品質のデータに集中することを可能にする、異なる範囲の識別性を有するトークンの表示のオンとオフを切り換えるためのスイッチを有することも可能である。ここで、識別性は、データ品質の代わりとして使用されているが、グラフ表示は、クラスタ化を駆動するのに使用される識別性のスコアとは無関係に導き出されたデータ品質の直接の測定を使用することも可能である。
クラスタ化エンジン130は、比較のために利用可能なレコードのセットの中から、クエリレコードと呼ばれる、それぞれのオリジナルレコード又はトークン化されたレコードに関する候補照合を識別する候補検索エンジン140を含む。候補検索エンジンによってレコードが全く取り出されない場合、新たなクラスタidが生成されて、そのクエリレコードに割り当てられる。その新たなクラスタについての適切な情報が、クラスタストア170の中に格納される。レコードが候補検索エンジンによって取り出された場合、それらのレコードは、クラスタメンバシップ判定を行うのに先立って、採点エンジン150によってクエリレコードに照らして詳細に採点される。クラスタメンバシップエンジン160が、採点されたクエリレコードのクラスタメンバシップを判定する。変数プロファイラ110によって生成された変数プロファイラストア115、及び変数ネットワークアナライザ120によって生成された変数ネットワークストア126、並びに他のクラスタストア170がすべて、候補レコードを識別すること、及び採点することを支援するように候補検索エンジン140及び採点エンジン150によって使用され得る。
一部の実施例において、単一のレコードが、例えば、異なるセグメントの中で、又は異なるクラスタ戦略を用いた別々のクラスタ化動作で、複数のクラスタに割り当てられることが可能である。複数照合リコンサイラ165が、各レコードを単一のクラスタに関連付けるように割り当てを調整するのに使用され得る。
一部のシナリオにおいて、複数のクラスタに対するあいまいな照合が、複数の照合が調整された後に、例えば、レコードが2つ以上のクラスタにおけるメンバシップに近い場合のように、代替の照合を区別するのに不十分な情報しか存在しない場合に、残る可能性がある。例えば、「Acme Industries Canada」という名前、及び「Acme Industries Australia」という名前でラベルが付けられた別々の2つのクラスタが存在するものと想定されたい。「Acme Industries」というクエリレコードは、両方の名前に対して等しい照合である。他の情報がない状況において、「Acme Industries」がいずれのクラスタに割り当てられるべきかは、あいまいであり、解決できない。そのような事例において、あいまいな照合が、場合により、あいまいな照合に関与するレコードに、クラスタ化される(照合する)レコードのネットワークのグラフ表示において別の色で印を付けて、ユーザインターフェース104においてユーザ102に報告され、表示されることが可能である。
一部の実施例において、クラスタメンバシップ判定プロセスは、あいまいなレコードを、可能な代替のクラスタのセットからの1つのクラスタに割り当てることが可能である。あいまいなメンバとペアにされたクラスタメンバシップ判定に関与するクラスタの各メンバに関して、ユーザインターフェース104が、あいまいなレコードから、メンバシップが許可されたクラスタのペアにされたメンバに至るエッジを1つの色で表示し、メンバシップが拒否されたクラスタの対応するメンバに至る各エッジを異なる色で表示することが可能である。(例えば、図11Dで、あいまいなレコード1190と照合するクラスタのメンバ1193の間のエッジが黒で示される一方で、あいまいなレコードと照合されないクラスタのメンバ1194の間のエッジがグレーで示される。)この表示は、ユーザ102が、クラスタメンバシップエンジンによって行われた判定を、クラスタメンバシップエンジンによる割り当てを受け入れる、又は変更する前に直ちに利用可能な代替から容易に区別できるようにすることが可能である。
候補検索エンジン140の目的は、類似性の最低限の標準を満たすレコードだけを取り出す検索を実行することによって、クエリレコードと詳細に比較される必要があるレコードの数を減らすことである。基本的に、比較に利用できるレコードのセット(バッチ事例では、セグメントの中のすべてのレコード)には、インデックスに照らした検索が、照合である可能性が全くないレコードを破棄する計算リソースをわずかしか使用しない高速のフィルタとして使用され得るように、インデックスが付けられる。クラスタ化エンジン130のパフォーマンスは、候補検索エンジン140が、詳細に考慮されるべきレコードのセットを絞ることの成功に劇的に影響され得る。
1.3 候補検索エンジン
図1Dは、候補検索エンジン140の実施例の要素の概略を示す。クエリレコードが、データソースレコード100P又はトークン化されたレコード118Pのセットから読み取られる。このクエリレコードは、オリジナルレコード又はトークン化されたレコードが、並列に処理されるようにセグメント化され、及び/又は分割されている場合、セグメントの中に、及び/又は並列パーティションの中に入っていることが可能である。クエリは、クエリレコードの1若しくは2以上のフィールド、又はフィールドの組み合わせから1若しくは2以上のトークンを選択する事前定義された、又はユーザによって指定された手順に基づき、クエリ構築手順142によって、選択されたトークン、又は選択されたトークンの組み合わせから生成される。一部の実施例において、生成されたクエリは、クエリ展開エンジン143によって、1又は2以上の特定のクエリを含む展開されたクエリに展開される。
一部の実施例において、採点エンジン150によるクラスタメンバシップを判定することに関与する、採点フィールドと呼ばれるフィールドのコレクションが、採点エンジン150によって使用される採点規則から見出されることが可能である。採点規則は、事前定義された、又はユーザによって指定された規則セットの中で指定され、この規則セットの中で、1若しくは2以上のフィールド、又はフィールドの組み合わせが、類似性に関して別々に比較され、その後、集合的なセットの中間フィールドスコアが組み合わされて、全体的なレコードスコアが計算される。規則セットは、規則のコレクションであり、それらの規則それぞれが、入力値、定数、パラメータ、他の中間値、他の出力値、並びに1又は2以上の事例ベースの割り当てのセットの中で他のデータセットを調べることによって得られた値を組み合わせることによって、1若しくは2以上の中間値又は出力値を計算し、このことは、組み込まれた論理演算及び数学的演算、組み込まれた関数、並びにユーザによって定義された関数の組み合わせを使用することが可能である。規則セットは、いくつかがベクトルであり得る、1又は2以上の出力値を生成することが可能である。採点規則セットの中の採点規則は、入ってくるデータレコードからの選定されたフィールドを使用し、これらのフィールドが、ひとまとめに採点フィールドと呼ばれる。
採点フィールドの中で同一の値を共有するレコードのセットは、同一のクラスタメンバシップ判定を共有する。採点フィールド重複排除モジュール144が、そのようなレコードセットの最初のレコードだけが採点にかけられ、後続のレコードは、そのクラスタメンバシップ結果を単に継承することを確実にする。
検索エントリ展開エンジン145が、入ってくるデータソース100全体におけるレコードに、又は既存のデータクラスタレコードのセット180に適用されて、検索ストア146が構築される。
クエリレコードが、候補検索エンジン140のコア検索エンジン147に送られる。検索エンジン147は、展開された各クエリを取り込み、そのクエリレコードと識別された候補照合レコードの間の可能な候補照合の一意のレコード識別子の1又は2以上のリストを返す。これらのリストは、クラスタ候補セレクタ148に送られ、セレクタ148が、事前定義された規則及び/又はユーザによって指定された規則(例えば、規則セット)を適用して、採点エンジン150による詳細な採点の投資に値する最低基準を満たす候補照合レコードのリストを識別する。一部の実施例において、クエリレコードと利用可能なレコードの間で照合するトークンの組み合わせを特徴付ける検索コードが、選択プロセスを円滑にするとともに、選択プロセスを遡及的に解析するのに使用される。
1.4 変数プロファイラ
図1Eは、変数プロファイラ110の実施例の要素の概略を示す。変数プロファイラ110は、参照により本明細書に組み込まれている、「Managing an Archive for Approximate String Matching」という名称の米国特許出願公開第2009/0182728号明細書において説明されるようなアーカイブを生成するためのプロセスを含む、変数トークンのペアリングを識別するアーカイブを生成するための様々な技法のいずれかを使用することが可能である。レコードが、データソース100から読み取られる。それらのレコードが、スタンダダイザ112及びトークナイザ113によって処理されることを含め、データ準備モジュール111におけるプロファイリングのために準備される。スタンダダイザ112が、選択されたフィールド(又はフィールドの指定された組み合わせ)の性質及び意味に基づいて、入ってくるデータを標準化するように事前定義された規則及び/又はユーザによって指定された規則を適用する。例えば、ストリング値が、小文字に変換されることが可能であり、特定の句読文字が、削除される、スペース文字で置換される、又は削除されることと、スペース文字で置換されることの両方が行われる(場合により、複数のレコードをもたらして)ことが可能である。トークナイザ113が、フィールドの性質及び意義に応じて、フィールドの中の値に適用される事前定義された規則及び/又はユーザによって指定された規則に基づいて、トークンのリストを識別する。例えば、アドレスのストリートの行が、スペース文字で分割されて、語のリストになることが可能である一方で、場合により、「New York」のような意味単位を表す値を包含する都市フィールドは、語に分割されない。トークナイザ113が、クラスタ化エンジン130によるさらなる処理のためにトークン化されたレコード118のデータセット又はデータストリームを生成する。
トークン化されたレコードの別々のトークンが、各トークンのインスタンスの数(例えば、トークンが出現するレコードの数)をカウントすることを含め、変数プロファイリングエンジン114によってプロファイリングされる。一部の実施例において、トークンが出現したデータソース、フィールド、及び/又はコンテキスト(フィールドの論理グループ化)を識別するキーが、そのトークンに関連付けられることが可能であり、そのトークンのインスタンスの数の対応するカウントが保持されることが可能である。このことは、異なるソース、異なるフィールド、又は異なるコンテキストにおいて出現する同一のトークンに関して別々の統計が集計されることを可能にする。一部の実施例において、所与のフィールド又はコンテキストにおいてトークンが出現するレコードを識別するロケーション情報も、トークンに関連付けられる。このロケーション情報は、トークンが出現する各レコードに関してビットが設定される、圧縮されてもよい、ビットベクトルの形態であることが可能である。それらのビットの順序は、レコードのロケーションに明示的に、又は暗黙にマップされ得る。
変数プロファイリングエンジン116が、トークン類似性測定に基づいて、互いの変数であるトークンを識別することにとりかかる。多くのトークン類似性測定が可能である。1つのトークン類似性測定は、編集距離に基づいて類似性に関してトークンを比較することである。レーベンシュタイン編集距離は、1つの語を別の語に変えるのに要求される挿入、削除、及び代入の数をカウントする。2つの語がより類似しているほど、それらの語の編集距離は小さくなる。別の測定は、例えば、SOUNDEX符号化を使用して、音声上の類似性に基づいて語を比較することである。
第3の可能性は、共有される文字のシーケンスを比較することである。基本シーケンス類似性スコアが、共有される文字の数をカウントし、短い方のストリングの長さによって割ることによって、計算され得る。次に、完全シーケンス類似性スコアが、シーケンスの乱れた文字、及びストリングの長さの差に関して基本スコアから重み付けされたペナルティを引くことによって形成される。例えば、「eqty fnd」と「equity fund」は、それぞれ、可能な8つの文字及び11の文字のうち、スペース文字を含め、8つの文字を共有する。基本類似性スコアは、1である。シーケンスの乱れた文字は存在せず、長さの差は、3である。したがって、0.05という長さミスマッチの重みを用いると、シーケンス類似性スコアは、1−0.53=0.85である。
一部の実施例において、変数プロファイリングエンジン114は、変数ペア、及び変数ペアの類似性スコアを識別するスコアアーカイブ、並びにトークンのソース−フィールド−コンテキスト出現それぞれにおけるすべてのトークン、関連付けられるカウント、ロケーション情報、及び同一のソース−フィールド−コンテキストにおける変数トークンのリスト、及びそれらのトークンのカウントを包含する変数アーカイブを含む、変数プロファイラストア115を生成する。変数ネットワーク116が、各ノードがトークンであり、各エッジが変数トークンのペアリングである変数アーカイブから計算されることが可能である。変数ネットワーク116は、ユーザ102が、場合により、変数プロファイリングエンジン114によって変数ペアとして識別されていないトークンを結び付けるようにエッジを追加して、又は意味に基づいてではなく、類似性に基づいてのみ変数であるトークンを接続するエッジを削除して、変数ネットワーク116を操作することが可能なユーザインターフェース104においてグラフ表示されることが可能である。
一部の実施例において、変数プロファイラストア115及び変数ネットワーク116は、外部データ106を組み込むことによって豊富化され得る。外部データ106は、ユーザによって供給された、又は第三者から入手可能な同義語及び省略形のリストを含み得る。外部データソースの一例が、ニックネーム、代替のつづり、及び代替の音訳を含む、名前の文化的変数のリストである。例えば、そのようなデータは、外部データの中のトークンのすべて、及びそれらのトークンに伴う変数ペアを変数プロファイラストア115及び変数ネットワーク116に追加することによって、又はそのデータの中で存在するトークン間のペアリングだけを追加することによって、組み込まれ得る。外部データの中のトークンのすべて、及びそれらのトークンに伴う変数ペアを変数プロファイラストア115及び変数ネットワーク116に追加する場合、そのデータの中に存在しないトークンに関連付けられるカウントは、0でなければならない。そのようなトークンが将来の処理において生じた場合には、そのトークンのカウントが増やされることが可能であるが、他のトークンに対する暗示される結び付きは、既に存在していることになる。
1.5 変数ネットワークアナライザ概略
図1Fは、変数ネットワークアナライザ120の実施例の要素の概略を示す。変数ネットワーク116が読み取られ、ネットワーク解析エンジン122がネットワーク解析を行う。一部の実施例において、このネットワーク解析は、変数ネットワーク116内の変数トークンの接続された構成要素のセットを識別し、後段でいくつかが説明されるさらなる解析を実行することが可能である。ユーザ102が、各トークンがノードとして表示され、トークンの各変数ペアリングがエッジによって示される変数ネットワーク116のグラフ表示を、ユーザインターフェース104において閲覧することが可能である。このグラフ表示は、後段で列挙される例における情報などの、ノード及びエッジを特徴付ける情報で飾られることが可能である。ユーザ102は、ユーザインターフェース104を使用して、ノード若しくはエッジを追加して、若しくは削除して、又は飾られた情報を編集して、変数ネットワーク116を繰り返し変更することができる。
トークンのローカル近隣が表示され得る。ネットワークアナライザ122によって行われる近隣解析が、陽性のトークン(ローカル近隣、又は他の近隣において他のトークンから統計的に区別可能なトークン)、及び陽性のトークンのペアを接続するエッジを識別し、さらにグラフ表示においてそれらのトークン及びエッジに印を付けることが可能である。
各トークンのインスタンスのカウントが、その表示において示されることが可能であり、一部の実施例において、そのノードのために使用されるアイコンのサイズによって図示されることが可能である。より大きいカウントの変数に全く接続されないトークンが、それらのトークンの正規の近隣(最大カウントのトークンから始めて、等しいカウント、又はより小さいカウントのトークンに対するすべての変数ペアリングを追うことによって形成されるトークンのツリー)と一緒に識別され、表示されることが可能である。トークン代表は、選択された近隣におけるすべてのトークンを代表するように選択されたトークンである。トークン代表セレクタ124が、接続された各構成要素から1又は2以上のトークン代表、例えば、正規の近隣の最大カウントのトークンを選択することが可能である。トークン代表に関連付けられる正規の近隣及びその他の近隣は、重なり合う可能性がある。
変数プロファイラストア115からとられたトークンの重要度が、いずれのトークンが、検索用語として使用された際、比較的より区別する役割をするかを示す。選択されたトークンの重要度は、その選択されたトークンのローカル近隣における変数のカウントから計算され、その選択されたトークンに関連付けられる。変数のペアにされたトークンは、異なるローカル近隣を有する可能性があるので、それらのトークンの重要度は、異なる可能性があり、それ故、各トークンに重要度を関連付けることが重要である。重要度は、変数ネットワークのグラフ表示において色のグラデーションで表示され得る別の特性である。
ローカル近隣の(シンプソンの)多様度指数が、各トークンに関連付けられる別の数量である。正規化されると、シンプソンの多様度は、指定されたトークンの変数のカウントの分布の偏りを反映する。多様度の正規化されていない大きさは、ランダムに選択されたトークンの変数が有するものと予期されるカウントである。指定されたトークンの第k番の変数のカウントがnである場合、変数(指定されたトークンを含まない)の合計数は、nのkにわたる合計である。多様度は、
多様度=<n>=Σk in variants=Σk in variants /N、
ただし、
N=Σk in variants
は、変数の合計カウントであり、さらに
=n/N
は、ランダムに選択された出現が第k番の変数に関連付けられる確率である。示される多様度を正規化するのに、Σk in variantsで割って、0〜1までの範囲内の量を得る。この多様度は、トークンの相互関係が低い多様度を暗示するため、互いに関係するトークンの間の結び付きを識別するために役立ち得る。このことは、陽性のトークンを識別するのに使用される測定と類似するが、異なる測定を与える。
ネットワーク解析の結果は、一部の実施例において、トークン代表ストア127及び近隣解析ストア128を含む、ネットワーク解析ストア126のコレクションの中に格納され得る。トークン、及びトークンに関連付けられるトークン代表は、トークン代表ストア127の中に格納され得る。近隣解析ストア128が、陽性のトークン、陽性のトークンの変数ペア、及び正規の近隣を含め、ネットワーク解析から集められた情報を包含することが可能である。
1.6 クラスタ承認プロセス概略
図1Gは、クラスタ承認エンジン190の実施例の要素の概略を示す。クラスタメンバシップ判定が、ユーザインターフェース104を使用してユーザ102によって点検されることが可能である。1つのレコードが、メンバであり得るように2つ以上のクラスタに十分に近い、あいまいなクラスタメンバシップ判定が、クラスタ化エンジン130によって合図され、ユーザ102によって解決されることが可能である。エンジン190の図示される要素は、ユーザ入力によって開始され得るアクションに対応する。
レコードが、所与のクラスタのメンバとして確認されることが可能である(192)。レコードの一意のレコード識別子と、関連付けられる確認されたクラスタのクラスタidをペアにする判定が、クラスタストア170の中で確認済み又は除外済みのストア172の中に格納されることが可能である。確認されたレコードが、確認済み又は除外済みのストア172の中にそのレコードの一意のレコード識別子が(確認されたセットの中に)存在することで明らかになることとして、クラスタ化エンジン130に提示された場合、その確認されたクラスタのクラスタidが、さらなる処理なしに報告される。
レコードが、所与のクラスタから除外されることが可能である(194)。その判定が、クラスタストア170の中で確認済み又は除外済みのストア172の中に格納されることが可能である。除外されたレコードが、クラスタ化エンジン130に再び提示された場合、そのレコードは、除外されたクラスタにおけるメンバシップを阻止され、必然的に、異なる、場合により、新たなクラスタに割り当てられる。
レコードは、他のクラスタに再マップされることが可能である(196)。詳細には、クラスタは、1又は2以上のレコードを新たなクラスタに割り当てることによって、2又は3以上の部分に分割されることが可能である(197)。多くの事例において、再処理が行われた際など、選定された個別のレコードを再マップするだけでよく、オリジナルクラスタプライマリレコードと比べて、それらのレコードにより類似したレコードは、再マップされたレコードの後を追って再マップされたレコードの新たなクラスタに入る。また、クラスタは、1又は2以上のレコードを既存のクラスタに再マップすることによって1つのクラスタにマージされることも可能である(198)。やはり、多くの事例において、再クラスタ化に先立って、選定された個別のレコードを再マップするだけでよい。
2 実施例
2.1 変数プロファイラ及び削除−結合手順
変数プロファイラ110が、変数のペアを識別し、それらのペアの類似性を測定し、さらに変数トークンのペア、及びそれらのペアの類似性スコアを変数プロファイラストア126の中に格納する。一部の実施例において、変数プロファイラ110が、トークンのすべてのペアの間の編集距離を計算し、編集距離(「類似性スコア」)が所定の閾値を下回るトークンのペアを格納する。レーベンシュタイン編集距離が、1つのトークンを別のトークンに変えるのに要求される最低限の数の挿入、削除、及び/又は代入をカウントし、タイプ入力上の類似性の広く使用されている測度である。残念ながら、トークンのすべてのペアを比較するアプローチは、大多数のトークンペアは、類似性を全く有さず、したがって、多量の計算労力がほとんど利益なしに費やされるため、非効率である。
削除−結合手順が、レーベンシュタイン編集距離とほぼ同じように、タイプ入力上の変数に基づいてトークンの類似性を測定するが、比較的近いトークンだけを比較するように設計され、その結果、多数の無関係のトークンを評価する計算費用が節約される。このことは、「Managing an Archive for Approximate String Matching」という名称の米国特許出願公開第2009/0182728号明細書においてより完全に説明される。
一部の実施例において、削除−結合手順は、以下のように進められる。トークン辞書(すなわち、カタログ、又はトークンのリスト)の中の各トークン、又はトークン辞書の一部分(例えば、所与のソース、所与のフィールド、及び/又は所与のコンテキストに関する)に関して、そのトークンから単一の文字を削除することによって形成されるすべての変数が作られる。所与のトークンに関するこの「削除セット」は、オリジナルトークンを識別するキー(「token_key」)、オリジナルトークン(「original」)、削除変数トークン(「deletion_var」)、及びオリジナルトークンから削除された文字の位置(「deletion_pos」)をそれぞれが有するエントリのリストを包含する。削除セットのコレクションは、変数プロファイラストア115の中にトークン辞書と一緒に格納されることが可能であり、又はやはり変数プロファイラストア115の中に格納される変数ペアを生成するように変数プロファイリングエンジン114によって使用された後、破棄されることが可能である。
オリジナルトークンは、削除変数と一緒に削除セットの中に0という削除された文字位置で含められることが可能である。例えば、以下が、トークンLONDONに関する削除セットである。すなわち、
{token_key,deletion_pos}は、所与の削除変数を識別する一意の「キー」であることに留意されたい。
削除−結合手順は、2つ以上の削除に拡張され得る。一部の実施例において、削除位置のシーケンスは、類似性を採点する際に使用するために記録されることが可能である。他の実施例において、削除位置は、保持されなくてもよく、採点は、代替の手順を使用して行われ得る。
削除−結合手順と類似した手順が、deletion_varトークンに対して結合(又はルックアップ)操作を実行することによって1又は2以上の辞書の中のトークンの間で変数照合を判定するのに使用され得る。結合/ルックアップ操作は、高速で、選択的である。deletion_varトークンを共有する2つのトークンが、各トークンにおいて多くとも1回の削除(削除−結合1変数に関して)だけ異なることが可能であり、したがって、それらのトークンは、編集距離が「近い」。このことは、削除−結合手順の潜在的な利点、すなわち、採点する価値があるだけ十分に近いペアだけを識別することによって、採点を要求するペアの数を減らすことをもたらす。一部の実施例において、deletion_var上でペアにされたトークンの間の類似性スコアが、事前定義された、又はユーザによって指定された類似性関数を使用して、関連付けられるオリジナルトークンの間で直接に計算される。例えば、ペアにされた2つのトークンが、レーベンシュタイン編集距離又は他の何らかの編集距離測定を使用してそれらのトークンの編集距離を計算することによって比較されることが可能である。削除−結合手順のこの適用は、ユーザが、所望される任意の類似性採点手順を使用することを可能にしながら、採点すべきペアの数を減らすという潜在的な利点を有する。
他の実施例において、変数ペアリングの品質が、削除された文字の位置を比較することによって採点される。このことは、削除−結合手順から集められた情報を活用する編集距離様の測定の高速な計算をもたらし(一方、レーベンシュタイン編集距離計算は、事実上、トークンペアに関してゼロからやり直す)、さらにペアリングの特徴を強調するスコアのカスタマイズを可能にする。類似性スコアを計算するための手順の一例において、異なるタイプの変更にポイントが以下のとおり割り当てられることが可能である。すなわち、削除(又は挿入)に関して1ポイント、最初の文字を変更することに関して1ポイント、最後の文字を変更することに関して1ポイント、削除された文字の位置が2つ以上、離隔している場合、1ポイントである。各タイプの変更に関連付けられた重みは、調整可能である。一方のトークンの削除位置が0であり、他方のトークンの削除位置がそうではない場合、このことは、単一の挿入又は単一の削除である。削除位置が同一である場合、このことは、代入である。削除位置が1だけ異なる場合、このことは、入れ換えである。同一のtoken_keyと、同一のdeletion_posとを有する照合は、厳密な照合であるので、無視される。また、同一のトークンの中のペアにされた文字の削除を示す照合も、厳密な照合として無視される(例えば、MEETが、1つのインスタンスで文字2を削除することによって、第2インスタンスにおいて文字3を削除することによってMETに変換されることが可能であり、ペアリングは、共有されるトークンMEETを単に返す)。
以下は、オリジナルトークンLONDON、LODON、LOMDON、LODNON、LODOONに関するそれぞれの削除セットからの選択されたエントリの例である。
この例において、削除変数エントリの多くは、関心を引く照合につながらないため、示されていない。結合操作は、第1エントリと第2エントリを、この両方のエントリがdeletion_varの同一の値を有する場合、ペアにする。オリジナルトークンのもたらされる変数ペアは、以下のとおりである。すなわち、
前掲の例示的な変数照合は、それぞれ、トークン0−削除、代入、入れ換え、異なるパスによって得られた入れ換え、離隔した挿入及び削除、及びトークン0−挿入(又はトークン1−削除)である。変数照合を表すアーカイブの中のトークンの各ペアは、照合の品質を示す関連付けられる類似性スコアを有する。
前述した採点を使用して、これらのペアに関する類似性スコアは、以下のとおりである。すなわち、
これらの事例において、類似性スコアは、事実上、変数ペアの間の編集距離に対応する。単一の文字削除に基づく削除−結合手順が、すべての編集距離1変数ペア(挿入、削除、及び代入)、及びいくつかの編集距離2変数ペア(入れ換え)を見出す。離隔した挿入−削除に関するスコアは、deletion_posが2つ以上、離隔していたため、追加のペナルティによってカスタマイズされている。
ペアに関して類似性スコアを計算した後、類似性スコアに閾値を適用すること、又はペアリングの性質に条件を適用することによって照合判定が行われる。例えば、この場合、類似性スコアに基づく規則は、類似性スコアが2以下である場合、変数ペアリングが変数照合を表すことであることが可能であり、その結果、離隔した挿入−削除ペアリング「LONDON LODOON」が変数照合として識別されることから除外される。
ペアリングの性質に条件を適用することの例として、そのペアリングに挿入、削除、代入が関与しているかどうか、又は変更された文字が最初の文字又は最後の文字であったか、あるいはdeletion_posの位置が2つ以上、離隔していたかどうかの情報を符号化する、照合コードと呼ばれるコードが、構築されることが可能である。一部の実施例において、そのような照合コードは、ビット、又はビットの組み合わせが、識別された各条件に関して設定されたビットマップとして構築されることが可能である一方で、他の実施例において、そのような照合コードは、各条件を符号化するサブストリングの連結からなるストリング、又は、場合により、単に、情報を保持するレコード構造である。照合コードは、特定の重みを割り当てることも、実際のスコアを計算する関数を定義することもせずに、類似性スコアに寄与する可能性がある情報を符号化するデータパターンコードである。このことは、スコアを計算するステップを経る必要なしに、照合が照合コードに直接に適用されることを許容する、又は認めない一般的な条件を明らかにする。例えば、この場合、変数照合は、照合コードによって示される離隔した挿入−削除を有さない任意の変数ペアリングであることが可能である。
2.2 変数−検索
変数−検索動作が、候補検索エンジン140の一部の実施例の動作の基礎をなす。図2A〜図2Dは、変数−検索動作の例を示す。図2Aを参照すると、生のクエリ200が処理のために読み取られる。この例において、生のクエリ200は、値「82536」を有する、政府idなどの数値フィールドである。要件は、データセット220の中で政府idと照合する変数を見出すことであり、政府idは、最大で1つの代入だけ生のクエリと異なる。このことは、照合する2つの政府idが1以下のハミング距離を有することを要求するのと均等である。ハミング距離は、等しい長さの整列された2つの文字シーケンス(ときとして、長さの差を足すことによって、等しくない長さの整列されたシーケンスにまで拡張される)の間の照合しない文字の数をカウントする。
データセット220は、ディスク上に保持される基準データセット、又は、例えば、メモリ内の結合操作中にメモリの中に保持される一時データセットであることが可能である。
削除−結合手順の最初のステップは、クエリ展開手順として、生のクエリ200に適用されて、展開されたクエリ210と呼ばれる削除セットが生成される(205)。展開されたクエリ210は、2つの値、すなわち、deletion_posの値(「del_pos」というラベルが付けられた見出しの下の)、及びdeletion_varトークン(「del_var」というラベルが付けられた見出しの下の)をそれぞれが含むエントリを含む。同様に、検索−エントリ展開手順が、データセット220の中の各エントリに適用されて、削除セット225が生成され、次に、削除セット225が検索ストア230に書き込まれる。
図2Bを参照すると、展開されたクエリ210の中の各エントリが、検索ストア230の中で探されて、照合するエントリ232が見出される。次に、照合するエントリ232の中のキー235が、データセット220の中で探されて(237)、さらなる処理のためにデータセットレコードが取り出される。データセット220の中の照合するレコードのコレクションはすべて、idフィールドが、生のクエリid200に対して1以下のハミング距離を有するという要件を満たす変数照合である。この例において、生のクエリid「82536」は、「82436」と「82538」の両方に対してハミング距離1照合であるが、「85236」(ハミング距離2)に対してはそうではない。
図2Cを参照すると、idに対する照合要件が、削除−結合1照合を許容するように緩和される。前述したとおり、このことは、すべての編集距離1照合、並びに入れ換え及び離隔した挿入−削除を含む。生のクエリ200及びデータセット220は、前の場合と同様であり、展開されたクエリ210と検索ストア230がともに、前の場合と同様に、生のクエリ200、及びデータセット220の中の各idから削除セットを形成することによって構築される。この例において、展開されたクエリからのルックアップは、del_varだけを使用する。このことは、前の両方のハミング距離1照合を見出し、さらに新たな照合236も見出す。照合エントリ236の中のキー237が、データセット220の中で探されて(238)、さらなる処理のためにデータセットレコードが取り出される。この例において、生のクエリid「82536」は、入れ換えを伴う、データセットid「85236」に対する削除−結合1照合である。
図2Dは、一般的な例を図示する。生のクエリ200Gが、クエリ展開205Gを経て、展開されたクエリ210Gを与える。クエリ展開205Gが、1又は2以上の検索キー、及び、場合によっては、オリジナルの生のクエリ、又は生のクエリが導き出されたクエリレコードからのさらなる情報からなる2又は3以上のエントリを生成する。データセット220Gの中の各エントリが、検索−エントリ展開手順によって、検索ストア230Gの中の2又は3以上のエントリに展開される(225G)。検索−エントリ展開225Gは、1又は2以上の検索キー、及び、場合によっては、データセットレコードからのさらなる情報からなる2又は3以上のエントリを生成する。検索−エントリ展開225Gは、データセット220の中に重複キーが存在し得るので、必ずしも、データセット220Gの中の各エントリに関して別々の検索−エントリを生成するとは限らない。検索−エントリ展開手順225Gは、必ずしも、クエリ展開手順205Gと同一の展開手順であるとは限らない。
それぞれの展開されたクエリ検索キー231Gが、検索ストア230Gの中で変数−ルックアップ手順232Gを使用して探されて、照合するエントリ233Gが見出される。ルックアップ手順232Gは、クエリ検索キー231Gに対して計算を実行することが可能であり、したがって、必ずしも、検索−エントリ検索キー233Gと同一であるとは限らない。次に、照合された検索−エントリ検索キー233Gに対応するデータセットキー235Gが、データセット220Gの中でデータセットキー235Gを有するすべてのレコードを探して(236G)、取り出すのに使用される。
2.3 変数ネットワーク解析
2.3.1 変数近隣
変数近隣は、同義語、省略形、文化的変数などの、外部データ106によって指定される変数ペアリングを場合により、含む、変数ペアリング(変数関係とも呼ばれる)のシーケンスによって関係するトークンのセットである。1つの実施例において、変数プロファイラ110が、多くとも1つの挿入及び1つの削除だけ異なるタイプ入力上の変数を検出し、識別するように削除−結合手順を使用してクラスタ化されるようにデータソース100をプロファイリングする。このことは、単一の挿入、単一の削除、及び単一の代入、並びに入れ換え及び離隔した挿入/削除を範囲に含む(例えば、「hello」と「hllio」は、削除−結合1変数である)。変数プロファイラストア115の中で、すべてのトークンは、より多くのレコードが処理されるにつれてオンラインで更新され得る1又は2以上の変数の関連付けられるリストを有する。しかし、すべての変数は、その変数自らの変数を有するトークンでもある。削除−結合手順、又は他の類似性測定によって形成された変数ペアリングのシーケンスを追うことによって得られるトークンのセットが、近隣を規定する。このセットの閉包は、閉包近隣と呼ばれ、トークンがノードであり、変数ペアリングがエッジであるグラフの変数ネットワークにおける接続された構成要素を形成する。類似性変数ペアを、外部データ106又はユーザによって供給された入力、例えば、同義語、代替のつづり、文化的変数などから得られる変数トークンペアで補足することが、関係するトークンのより大きい近隣につながる。
図3Aで、変数アーカイブ300が、データレコードセットの中で出現するトークンのリストを包含し、各トークン(「token」というラベルが付けられた)が、そのトークンがデータセットのフィールド(又はコンテキスト)の中で出現する回数の関連付けられるカウント(「count」というラベルが付けられた)(例えば、そのトークンがフィールドの中で出現するレコードの数)、並びにそのトークンの変数トークンそれぞれのリスト(「variant」というラベルが付けられた)、及びそれらの変数トークンがデータセットの同一のフィールド(又はコンテキスト)の中で出現する回数(「variant_count」というラベルが付けられた)を有する。変数アーカイブ300のコンテンツに対応する変数近隣ネットワーク図310が、すべてのトークンをノードとしてとり、すべてのトークンをそのトークンの変数それぞれと接続することによって構築され得る。各ノードはそのカウントに関連付けられる。一部の実施例において、より大きいカウントを有するトークンが表示上でより上にあるように(例えば、「count」というラベルが付けられた垂直軸により)ノードを配置することが、一般的な語と稀な語が容易に区別されることを可能にする有用な図示をもたらす。変数近隣ネットワークの接続された構成要素は、有向非巡回グラフであり、その接続されたセットの中のトークンに関する類似性関係の推移閉包である。データセットに関する完全なネットワーク図は、この種類の接続されていない多くのグラフを含み得る。
2.3.2 トークン代表
トークン代表は、接続された近隣の選択されたトークンである。一部の実施例において、近隣におけるすべてのトークンが、その近隣を代表するトークンによって置き換えられることが可能である。このことは、トークン代表の検索が、その近隣における任意の変数に関連付けられるすべてのレコードを返すという効果を有する。このことは、変数を対象に繰り返される変数検索中の作業負荷を低減するので、望ましい。単純な変数検索は、各トークンを検索し、その後、そのトークンの変数それぞれを検索することである。変数を対象とした繰り返しは、トークンに遭遇するたびに行われる必要がある。近隣におけるすべての変数トークンがトークン代表で置き換えられた場合、変数トークンのいずれかに遭遇するたびに、すべての変数照合を返すのにトークン代表を1回、探すだけで十分である。
さらに、変数トークンの近隣を扱うことが、変数検索への推移性の測度を供給することが可能である。変数−ペア関係は、BがAとの変数−ペアリングであり、CがBとの変数−ペアリングである場合、Cは、必ずしもAとの変数−ペアリングではないため、推移的ではない。例えば、削除−結合1変数ペアリングを考慮されたい。トークン「chicago」は、「chicago#」の変数であり、「chicag0」は、「chicago」の変数であるが、「chicag0」は、「chicago#」の削除−結合1変数ではない。
しかし、変数検索に関して、Aで検索を行った際に見出されるレコードのセット、又はBで検索を行った際に見出されるレコードのセットが同一であることが望ましい。このことは、AがBの稀な変数である場合、Aによって意図される「実際の」トークンに関連付けられるレコードのより多くが、Bで検索することによって見出されるレコードであるためである。例えば、「chicago#」、及び「chicago#」の削除−結合1変数で検索することは、「chicago」照合を見出すが、「chicag0」のような「chicago」の他の照合を逃す。
変数−ペアリングは、推移的ではないので、より高い推移性を実現するには、A又はBで検索を行う際に含められるトークンの近隣を拡大することしかない。その場合、近隣に関するトークン代表で検索することが、その近隣内のすべてのトークンが同一のレコードを返すことを確実にする。もちろん、この検索は、個々のトークンのローカル近隣を超えて展開されているので、取り出されるトークンの一部のペアは、それらのトークンがあまりにも類似していないため、照合しない可能性がある。このことは、関連付けられるレコードが依然として、他のフィールドからの強力な採点に基づいて照合し得るため、許容可能である。そのような照合は、検索によって適切な候補が返されなかったとすると、見出され得ないことになる。
閉包近隣は、選ばれたトークンに関する変数関係の推移閉包によって見出される近隣であり、つまり、変数ペアリングの連鎖によって到達され得るすべてのトークンのセットである。閉包近隣におけるいずれのトークンも、そのトークンが、その近隣におけるすべてのトークンに関するトークン代表として使用される限り、トークン代表として選ばれ得る。しかし、閉包近隣は、データセットがより大きく、より多様になるにつれ、さもなければ接続されていない閉包近隣の間のギャップを埋めるより多くの変数が現れて、それらの閉包近隣を合体させるため、使用不能に大きく成長する可能性がある。このことにより、他の種類の近隣に注目することが重要になる。
一部の実施例において、トークン代表は、より大きいカウントを有する変数を有さないトークンである。図3Aにおいて、正規の近隣320が、トークン代表から始めて、1つのトークンを等しいカウント、又はより小さいカウントの別のトークンに接続する結び付きを追うことによって到達され得るすべてのトークンを含む。トークンは、2つ以上の正規の近隣に属することが可能である。そのトークンは、正規の近隣の代表トークンである。
図3Bに図示される一実施例において、トークン代表及び正規の近隣が、カウントの大きい順に変数アーカイブ300をまず並べ替え、さらにvariant_count<countであるすべての変数を破棄して、剪定された変数アーカイブ330を得ることによって、計算され得る。変数を全く有さないエントリは、トークン代表であり、トークン−代表ベクトルストア340に即時に追加される。並べ替えられた変数アーカイブの中のレコードが処理されるにつれ、各トークンが、トークン、及びそのトークン自体からなるトークンベクトルとしてトークン−代表ベクトルに書き込まれる。それぞれの非トークン代表に関して、その非トークン代表の変数それぞれに関連付けられるトークン−代表ベクトルが、トークンファイルの中で探される(342)。これらのトークンベクトルの合併が計算されて、個別のトークン−代表のセットが見出され(344)、もたらされたトークン−代表ベクトルが、トークンと一緒にトークンファイルに書き込まれる(346)。
別の実施例において、トークン代表は、何らかのトークン閾値より大きいカウントを有するすべてのトークンとして識別されることが可能であり、それらのトークンが、語幹抽出(例えば、複数形)によって関係する場合を例外とし、語幹抽出によって関係する場合、語幹関連のトークンは、同一の正規の近隣における変数として保持されることが可能であり、最大のカウントを有する語幹関連のトークンがトークン代表である。このことは、一般的なトークンの間の結び付きを断つ役割をし、正規の近隣のサイズを小さくする。トークン及び正規の近隣を見出すのに、前のアルゴリズムが、各トークンがトークン閾値を超えるカウントを有するトークンのすべてのペアリングに関して、変数ペアリングが断たれ、さらに以前にペアにされたトークンが、トークン代表として、すなわち、より大きいカウントの変数を全く有さないトークンとしてトークン−ベクトルファイルに追加されるという変更を伴って適用されることが可能である。
この実施例の変数が、指定された辞書、又は指定されたトークンリストに属するすべてのトークンをトークン代表と定義することである(やはり、語幹関連のトークンについての注意を伴って)。その場合、トークンは、一般的でなくてもよく、トークンは、単に、何らかの権限によって別々のトークンとして認識されるだけでよい。
一部の実施例において、同義語、省略形、文化的変数などの、外部データ106に基づいてペアにされた変数トークンは、それらの変数トークンがペアにされたトークンと同一の正規の近隣のメンバと見なされることが可能であり、ただし、それらの変数トークンをその正規の近隣から除外できることが貴重である状況が存在する(事実上、そのペアリングをオフにして)。トークンに、それらのトークンの出所でラベルを付けること、例えば、外部データ106から、又は変数プロファイラ110において使用された特定の類似性測定からというラベルを付けることが、任意のソースからのペアにされた変数トークンの扱いを管理する有効な手段をもたらす。
2.4 セグメント化
図1Bの例において、データソース100から、又はトークン化されたレコード118から読み取られたデータレコードが、処理のためにクラスタ化エンジン130に供給される。一部の実施例において、データレコードは、セグメント化エンジン132に送信されることが可能である。セグメント化エンジンが、セグメント値と呼ばれる値に基づいて、データレコードにセグメント識別子を割り当てる。次に、レコードが、それらのセグメント識別子に基づいて並列パーティショナ134によって分割されて、様々な受信側処理エンティティに送信されることが可能であり、ただし、同一のセグメント識別子を有するすべてのレコードは、同一の処理エンティティに送信される。処理エンティティは、例えば、CPU(例えば、マルチコアプロセッサにおけるコア)若しくはコンピュータなど処理ノード、又はCPU上で実行される計算プロセス若しくは計算スレッドを含むことが可能である。
一部の実施例において、セグメント値は、オリジナルレコード100若しくはトークン化されたレコード118、及び/又はランタイムに供給される情報(例えば、データを処理するデータセンタのロケーション、又はデータセットの名前)に適用された、場合により、ユーザによって指定された規則セットの中で定義された関数を使用する、ユーザによって指定された式から導き出されることが可能である。同一のセグメント値を有するレコードは、同一のセグメント識別子を受ける(それらのセグメント値が、同一の式を使用して導き出される場合)が、異なるセグメント値を有するレコードは、セグメント化スキームに依存して、異なるセグメント識別子を受けることが可能であり、又は同一のセグメント識別子を受けることも可能である。例えば、セグメント値は、データレコードの出所の国を表すことが可能である(このことは、例えば、レコードを処理するデータセンタのロケーションに基づいて暗黙であることも、レコードの中のフィールドとして明示的であることも可能である)。一部の実施例において、戦略識別子が、セグメント識別子のセットを区別するのに使用される。例えば、データレコードの出所の国が、1つの戦略識別子を有することが可能である一方で、レコードの中で名前を指定された個人の出生国は、異なる戦略識別子を有することが可能である。このことは、セグメント値とセグメント識別子が、セグメント値とセグメント識別子の間の対応が保たれることが要求されることなしに、重なり合う範囲にわたることを許容する。
セグメント化の1つの用途は、照合を見つけるように比較されなければならない(クラスタ化中に、又は他の照合動作中に)レコードの数を減らすように、レコードのより大きいセットから単一のセグメントのレコードを分離することであり、すなわち、厳密に照合するセグメント識別子(及び存在する場合、厳密に照合する戦略識別子)を有するレコードだけが、照合のための候補である。この例において、セグメント化の後に、クラスタ化アルゴリズムの並列化のためにレコードのセグメントを複数の処理エンティティに分割することが行われる。本明細書で説明されるクラスタ化アルゴリズムは、セグメント化に基づくクラスタ化アルゴリズムの並列実行にパフォーマンス上の利益があるため、セグメント化中に、レコードの数が増やされることを許容することが可能である。その結果、セグメント識別子(すなわち、同一のセグメント)を共有するレコードのセットは、レコードを分離するためにセグメント化が使用される場合と比べて、はるかに大きいことが可能である。パフォーマンス上の利益を実現するのに、別々のセグメント値の数は、分割後に処理エンティティの間でほぼバランスのとれた配分を与えるのに十分な大きさであるだけでよい。バランスのとれた配分は、一部の並列処理システムに関して、他の並列処理システムの場合と比べて、より不可欠であり得る。また、配分のいくつかの種類の偏り(一部の処理エンティティに、他の処理エンティティと比べて、より多くのレコードが割り当てられている)は、過分割によって、すなわち、処理エンティティ数よりずっと多くの分割を使用することで対処され得る。過分割では、各処理ノードは、パーティションが大きく異なるサイズのものである場合でさえ、類似した量の作業を受け取る可能性が高い。また、パーティショナが、おおよそで照合された1又は2以上のフィールド(又はそのようなフィールドに適用されたハッシュ関数)、及び厳密に照合された1又は2以上のフィールドからなるマルチパートキーによって分割を行って、潜在的な偏りを小さくすることも可能である。
一部の実施例において、セグメント値の選択は、クラスタメンバシップ基準の一部を形成する厳密な基準に基づく。例えば、口座レコードをクラスタ化する際、個人身元フィールドに加えて、銀行は、特定のタイプの口座に関するレコードのクラスタに関心がある可能性がある。詳細には、当座預金口座(例えば、チェッキングアカウント)に関するレコードが一緒にクラスタ化されることが可能である一方で、普通預金口座に関するレコードが別々にクラスタ化されることが可能である。この種類のセグメント化は、ときとして、暗黙であり、つまり、当座預金口座レコードと普通預金口座レコードは、異なるソースに由来することが可能であり、既に分離されている。場合によっては、データレコードの中に、セグメント値として使用され得るが、口座の性質を正確に報告するものと信頼されなければならない口座タイプ識別子が存在することが可能である。
一部の実施例において、裏付ける確認が、セグメント化の時点で、又は後にメンバシップ判定中に行われて、セグメント値が忠実であることが検証される。例えば、普通預金口座の口座番号が、特定のセットの可能性からの数字で常に始まることが可能である。このセットがランタイムに知られている場合、口座が本当に普通預金口座であるかどうかが、セグメント化より前に確認され得る。このセットが存在することが知られているが、有効な値は知られていない場合、頭に付けられた数字が、クラスタメンバシップ基準の一部とされることが可能であり、又は、実際、セグメント値の一部とされることが可能であり、クラスタの中に存在する口座番号の間の整合性が、クラスタメンバシップ判定の一環として確立されることが可能である。
レコードが、特定のクラスタのメンバであると判定された後、そのレコードは、その特定のクラスタを識別するcluster_idを含むように拡張されることが可能である。一部の実施例において、セグメント値(又は、ときとして、セグメント識別子自体)は、前のクラスタ化からのcluster_idに設定されることが可能である。このことは、階層クラスタ化を可能にする。例えば、データレコードが最初に名前別にクラスタ化されていた場合、類似した名前を共有するが、別々の政府によって割り当てられた識別子を有するレコードをクラスタを見つけ出す政府によって割り当てられた識別子別のその後のクラスタ化が、名前cluster_idをセグメント値として使用することも可能である。類似していない名前を有するレコードは、同一のクラスタのメンバではあり得ないため、比較されなくてもよい。
一部の実施例において、データレコードは、複数の処理エンティティにわたってセグメント識別子でハッシュ分割されることが可能であり、したがって、共通のセグメント識別子を有するすべてのレコードは、単一の処理エンティティの中に一緒に入れられる。このことは、セグメント間の通信が要求されないため、並列処理を可能にする。
2.4.1 レプリケートされたセグメント化を介する並列化
データソースの互いに素なセグメント化が存在しない状態での並列化が、データソース100をレプリケートすること、及び任意の2つの変数ペアレコードが少なくとも1つのセグメント値を共有しなければならないことを確実にするセグメント化の適切な選択を使用することによって実現され得る。セグメント値は、フィールド値又はフィールド値の組み合わせの1又は2以上の断片から構成され得る。セグメント値のセットは、少なくとも1つのセグメント値が、2つのレコードの間の許されるすべての変数に関して2つのレコードによって共有される場合、網羅的であると言われる。図4で、網羅的なレプリケートされたセグメント化のプロセスが図示される。データソース400が読み取られ、すべてのデータレコード401に一意のレコードキーが、そのようなレコードキーが既に存在するのでない場合、割り当てられる。すべてのデータレコードが、十分な回数、レプリケートされて、網羅的なセットのセグメント値からの各セグメント値が、1つのレプリカントデータレコードに割り当てられる(402)。(レプリケートされるレコードの数は、各レコードの中のデータに依存することが可能である。)もたらされたデータレコードが、レプリカントに関連付けられるセグメント値で分割される(404)。レプリカントの結び付けられたペアのセットに関して各処理エンティティにおいて代理クラスタキーが生成される(406)。構造上、許容可能なすべての変数は、セグメントキーが網羅的であるため、何らかのセグメントキーのパーティションの中で検出されることになる。クラスタキーのスーパーセットは、複数照合調整手順の後に、各クラスタに関する一意のcluster_keyに解決される(408)。
多くとも1つの代入だけ異なり得る2つの政府idを照合させる事例を考慮されたい。セグメント値の網羅的なセットがまず、政府idにおける奇数位置からの数字(又は、より一般的には、文字)をとり、その後、偶数位置から数字(又は、より一般的には、文字)をとることによって与えられる。このセットが網羅的であることは、いずれの単一の文字代入も、奇数位置であるか、偶数位置でなければならず、奇数位置と偶数位置の両方ではないため、容易に見て取れる。このため、他方のタイプのセグメント値は、単一の代入だけ異なって、2つのレコードに関して合致しなければならない。例えば、123456が、セグメントキー(135,246)を有し、124456が、セグメントキー(146,246)を有する。これらのセグメントキーは、第1セグメント値で異なるが、第2セグメント値で合致する。
図5A〜図5Cは、この事例における全体的なプロセスを図示する。図5Aにおいて、データレコード700が読み取られる。第1レコード501は、数値id「123456」と、一意のレコードキー「r1」とを有する。これらのレコードが、2回、レプリケートされ(502)、奇数位置からの文字、例えば、「135」からなるセグメントキー、及び偶数位置からの文字、例えば、「246」からなるセグメントキーが割り当てられる(503)。データが、セグメントキー値で分割される(504)。同一のセグメントキーを有するレコードは、同一のパーティションの中に入るが、同一のレコードキーを有するレコードは、同一のパーティションの中に入らなくてもよい(506)。例えば、セグメントキー値「135」は、第1パーティションの中にあるが、レコードキー「r1」を有するレコードは、第1パーティションと第2パーティションの両方の中に出現することに留意されたい。
図5Bにおいて、レコード506が、それらのレコードのパーティション508内でクラスタ化され、クラスタキーが割り当てられて、データクラスタ510がもたらされる。いくつかのレコードキーは、複数のクラスタに割り当てられることに留意されたい。例えば、レコードキー「r1」を有するレコードは、クラスタ「k1」とクラスタ「k2」の両方の中に出現する。
図5Cにおいて、この複数照合が調整される。データクラスタ510が読み取られ、クラスタキーの複数割り当てが解決され(520)、レコードに対するクラスタキーの最終的割り当てが行われる(530)。この解決の詳細は、後段で説明される。
2.4.2 セグメント化なしの並列化
代替キー生成は、生成された値を、1又は2以上のフィールドから構成される自然キーの値とペアにすることである。自然キーそれぞれの個別の値は、一意の代替キー値を有する。代替キーを生成するための一方法は、ときとして、キー相互参照ファイル(略して、キーxrefストア)と呼ばれる代替キー/自然キーペアのストアを保持することである。それぞれの新たなデータレコードが処理されるにつれ、自然キー値がこのストアの中で探され、自然キー値が見つかった場合、代替キーが返され、自然キー値が見つからなかった場合、新たな代替キーが生成される。キーxrefストアは、現在の実行において生成された代替キーのレコードを保持するようにメモリの中で部分的に作成されることが可能であり、以前に生成された値を保持するようにディスク上に部分的に着地させられ(さらに処理の開始時にメモリに読み込まれる)ことが可能である。キーが生成された後、新たに生成された代替キーを含むキーペアが、着地させられたキーxrefストアに追加される。ときとして、生成された最大の代替キー値は、便宜上、別に格納されて、次の実行時に、前に生成された最高のキーが、重複なしにさらなるキーを生成するための開始点として利用可能であるようにする。
このキー生成方法を並列に適用するのに、データレコードが、自然キーで、又は分割キーと呼ばれる自然キーの何らかの断片で分割されて、その分割キーの値を共有するすべてのデータレコードが同一の処理エンティティに送信されるようにすることが可能である。このことは、自然キーを共有するすべてのレコードが、同一の処理エンティティによって扱われることを確実にする。詳細には、新たに生成されたキーの最近のメモリ内ストアに対する処理エンティティによるアクセスが可能であり、したがって、同一の自然キーを有するすべてのレコードが、同一の代替キー値を得る。何も共有しない並列アーキテクチャすなわち、プロセス間通信の全くない並列アーキテクチャにおいて、新たに生成されたキーのストアは、現在の処理エンティティによって扱われるレコードにだけ利用可能であり、したがって、同一の自然キーを有するレコードが、同一の並列実行中に異なるプロセスエンティティにおいて扱われるとした場合、それらのレコードは、異なる代替キーを得ることになる。
一部の状況において、自然キー値の配分は、或る値を有するレコードが、他の値を有するレコードの平均数と比べて、ずっと多く存在して、不均等である可能性がある。この事例において、自然キーで分割することは(断片で分割することさえ)、データパーティションにわたるデータの偏りにつながる可能性があり、つまり、いくつかのパーティションが、他のパーティションと比べて、ずっと多くのレコードを包含することになる。このことは、処理時間が、等しい複雑度のタスク(代替キー生成のような)に関してデータ量に比例するため、並列化の効率を低下させる。この事例において、一様なデータ配分を得るようにラウンドロビン(単に、プロセスそれぞれにレコードを次々に送る)で分割してみる価値があり得る。その場合、代替キーは、前述した方法によって各プロセス内で生成されることが可能であり、代替キー生成が完了した後、同一の自然キーに対するもたらされる複数代替キー割り当てが、後処理ステップにおいて重複排除され得る。この重複排除を実行する一方法が、各パーティションの中のレコードを自然キーにロールアップして、そのパーティション内で代替キー/自然キーペアを見つけ出し、その後、その自然キーで再分割することである(今度は、その自然キーのいくつかのパーティションコピーだけが存在する)。その自然キーに対する第2ロールアップが、生成された複数の代替キーの1つ、例えば、各自然キーに関して最小の代替キーを選択することが可能である。最後に、(オリジナルのラウンドロビン分割における)レコードに対する第2走査で、それらの代替キーが選択された単一の値に更新され得る。データを2回走査することが要求されるにもかかわらず、このことは、偏りを伴った生成と比べて、よりパフォーマンスが高いことが可能である。(操作の異なる順序が関与する、大きいキーグループを扱う他の方法が存在し、例えば、自然キーを重複排除するように二重ロールアップを実行してから、代替キーを生成すること、又は他の何らかの方法を適用して、大きいキーグループを検出して、別個の処理に回すことも可能である。)
自然キーで分割することが、並列化に関して効果的でない戦略な可能性がある第2状況は、代替キーが、必ずしも、厳密に照合する自然キーに関してではなく、おおよその(又は均等の)照合する自然キーに関して生成される場合である。この事例において、照合するすべての候補レコードを同一のプロセスに送信することが保証付きである分割キーは、存在しない可能性がある。(プロセスは、処理エンティティ内で実行される実行のインスタンスである。)このことは、照合判定は、通常、レコードの比較を含み、レコード内のデータのみに基づいて行われ得ないためである。前段で説明したマルチパスソリューションは、この事例では、重複排除プロセスが、複数の代替キーが割り当てられている場合を識別するのに自然キーに依拠するため、効果的でない。パーティションにわたって、いずれのレコードがおおよそ照合する自然キーを包含するかを識別することは、元の問題と均等である。
両方の状況に対するソリューションが、代替キー生成の以下の例によって説明される。前述したメモリ内ストアとは異なるキーxrefストアの異なる実施例が、最近に生成された代替キーに関して使用されることが可能である。以下の特徴を有するストアが利用可能である。すなわち、1)これらのストアは、ディスク上に保持され、1つのプロセスによって更新され得る(後尾に追加することによって)、2)これらのストアは、複数のプロセスから読み取られることが可能である(さらに、変更が行われるにつれ、更新されることが可能である)。代替キー生成手順は、以下のとおりである。パーティショナが、例えば、ラウンドロビンで、プロセスにわたる均等な配分を得るようにデータを分割する。各パーティション内で、プロセスは、各自然キーをとり、すべてのパーティションに関してキーxrefストアに照らしてルックアップを実行し、その自然キーが1又は2以上のキーxrefストアの中で見つかった場合、プロセスは、最小の値を有する代替キーをとり(さらに、その自然キーが2つ以上のキーxrefストアの中に出現したかどうかの印を付け)、いずれのキーxrefストアの中でもその自然キーが見つからなかった場合、プロセスは、新たな代替キーを生成し、このパーティションに関連付けられるキーxrefストアを更新する。新たな代替キーがプロセスにおいて生成されるにつれ、それらの代替キーは、そのプロセスに関する関連付けられるキーxrefストアの中でディスクに保存される。このことにより、それらのキーのすべてが生成された後にキーxrefストアを更新する必要性が取り除かれる。さらに、そのストアを読み取るすべてのプロセスが、変更が保存された後、その変更で更新されるので、1つのプロセスにおいて最初に出現する自然キーが別のプロセスにおいて後に出現した場合、その自然キーには、その他方のプロセスで最初に割り当てられたオリジナルの代替キーが割り当てられる。
以下の潜在的な競合条件が存在する。すなわち、同一の自然キーを有する2つのレコードが異なるプロセスに同時に到着した場合、キーxrefストアに照らしたルックアップは、いずれのプロセスにおいても照合を示さない可能性があり、その自然キーに関して、さらなる2つの新たな異なる代替キーが生成される。このことは、ローカルキーxrefストアが新たな代替キーで更新される前に処理されるレコードに限って生じ、これらの更新が、その他のプロセスによって読み取られる。その後のすべての自然キーには、最小の値の代替キーが割り当てられる。後のこれらのレコードに、2つ以上の自然キーが見られたという事実でさらなる印を付けることによって、事後にキー衝突を訂正するのに使用され得るマーカが配置される。このマーカ上のフィルタが、2つ以上の代替キー割り当てを有していた自然キーを見つけ出し、その後、代替の代替キーが識別されて、置き換えられることが可能である。初期の衝突が生じた場合に限って自然キーが現れた場合、それでも衝突を見逃す可能性がある。このことを確実に検出し、訂正するのに、データ(したがって、自然キー)が再びキー生成プロセスにかけられて、割り当てが訂正されることが可能であり、つまり、2回目で、あいまいな割り当ては、明白となる。この2回目の修正は、それらの自然キーがおおよそであることしか要求されない場合でさえ、照合判定が決定論的である限り、つまり、同一のデータが再判定された場合に同一の判定をする場合、信頼できることに留意されたい。このことは、2回目の開始までには、すべてのローカルキーxrefストアに、すべてのプロセスが書き込み及び読み取りを行っているため、うまくいく。
この並列化方法は、クラスタ化に適用されることが可能であり、他のファジーデータ操作にも適用されることが可能である。クラスタ化は、キーが厳密ではなく、均等であるに過ぎない代替キー生成の形態であると見なされ得る。ローカルストアの詳細な形態は、データ操作により異なり得るが、類似した技法が使用されることが可能である。
図6は、自然キーで分割することなしに並列で実行される代替キー生成手順の実施例を図示する。自然キー「n1」を有するレコードが、データソース600P1においてパーティションPartition1の中で最初に出現する。パーティションPartition1のキーxrefストアXref1 604P1、及びパーティションPartition2のキーxrefストアXref2 604P2が調べられ、「n1」が見つからず(606)、したがって、代替キー「s1」が生成されて、出力620P1に書き込まれる。その一方で、キーxrefレコード「n1 s1」が、ローカルキーxrefストアXref1 604P1に保存される(608)。後に、自然キー「n1」を有するレコードが、データソース600P2においてパーティションPartition2の中で出現する(データが自然キーで分割されていたとしたら、そうなっていたであろうPartition1の中にではなく)。やはりキーxrefストアXref1 604P1及びXref2 604P2が調べられ、「n1」は、Xref2 604P2の中にないが、Xref1 604P1の中で見出される(610)。代替キー「s1」が、取り出され、レコード611に割り当てられ、さらに出力620P2に書き込まれる。
2.5 採点フィールド重複排除
セグメント化(及び並列化)の後、一部の実施例において、データソース100、又はトークン化されたデータレコードのセット118Pからのレコードが、採点フィールド重複排除エンジン144に送られる。一部の実施例において、前述したとおり、クラスタメンバシップを判定する採点の際に使用されるフィールド、いわゆる採点フィールドが、ランタイムに特定されることが可能である。採点フィールド重複排除エンジン144が、採点フィールド上で同一の値を有するレコードのセットから1つのレコードを選択して、クラスタ化プロセスを続け、もたらされるクラスタidが、そのセットの中のその他のレコードの間で共有されるようにする。これらのレコードは、クラスタメンバシップ判定プロセスの見地から同一であるので、これらのレコードのすべてに関して同一のクラスタ化判定に必然的に到達しなければならない。
2.6 候補検索
2.6.1 2つのモード
データセットの中のレコードのすべてが一緒に処理されるか、又はレコードが、到着するにつれ、それまでにクラスタ化されたレコードに照らして処理されるかに依存して、検索ベースのクラスタ化プロセスのわずかに異なる2つのアプローチが可能である。そのようなレコードのすべてが一緒に処理されることは、バッチモードを説明するのに対して、レコードが、到着するにつれてそのように処理されることは、オンラインモードとして使用され得るインクリメンタルモードであるが、データのすべてが最初から利用可能である場合に適用されることも可能である。この2つのモードの間の1つの違いは、バッチモードでクラスタ化エンジンによって使用される、変数プロファイラストア115、変数ネットワークストア126及び検索ストア146を含む様々なストアが、前処理ステップ中に計算されるのに対して、インクリメンタルモードでは、一部のストアは、データが到着するにつれインクリメンタルで入力され得ることである。詳細には、1つのインクリメンタルモードアプローチは、データの完全なセットで変数プロファイラストア115及び変数ネットワークストア126を事前計算することである一方で、検索ストア146は、インクリメンタルで入力される。インクリメンタルモードで、クラスタ化結果は、レコードが処理される順序に依存することが可能である。
2.6.2 インクリメンタルモードにおけるクラスタ発見
インクリメンタルクラスタ化プロセスにおいて、クエリレコードと呼ばれる、入ってくるレコードが、既存のクラスタの中のレコードと比較されて、そのクエリレコードがいずれのクラスタに属すべきかが判定されることが可能である。直接のアプローチにおいて、各クエリレコードが、最も近い照合を見つけ出すようにそれまでのすべてのレコードと比較されることが可能である。近い照合が全く存在しない場合、クエリレコードは、新たなクラスタの最初のメンバであり、存在する場合、クエリレコードは、そのクエリレコードが最も近く照合したレコードを包含するクラスタに追加される。このことは、単純明快であるが、潜在的に計算リソースを大量に使用する。ほとんどの比較は、否定的な結論(「このクラスタではない」)をもたらし、最悪ケースは、そのクエリレコードが新たなクラスタのメンバである場合である。このアプローチは、各クラスタから代表的なメンバを選択し、そのクエリレコードをクラスタ代表と比較することによって改良され得る。このことは、レコードの変数類似性が少なくとも部分的に推移的であるという所見を活用し、つまり、クエリレコードがクラスタ代表と十分に類似していない場合、そのクエリレコードは、クラスタの他のいずれのメンバとも十分に類似している可能性は低い(それらのメンバはすべて、そのクラスタ代表と類似しているので)。
変数類似性は、実際には推移的ではないため(「AがBと類似する」と「BがCと類似する」は、「AがCと類似する」を暗示しない)、ときとして、候補閾値と呼ばれる、クラスタメンバシップを判定するのに適用されるのと比べてより低い類似性閾値が、クエリレコードをクラスタ代表と比較する際に適用されることが可能である。その意図は、クラスタのメンバに対するクエリレコードの予期される類似性に関して正確な下限を設けることである。この下限は、クエリレコードが属し得ないクラスタをうまく除外するが、クエリレコードがいずれのクラスタに属するかという疑問には答えない。その理由は、2つ以上のクラスタ代表が、クエリレコードに対して、その候補閾値を超える類似性スコアを有し得ることである。これらのクラスタ代表は、ひとまとめにして候補レコードと呼ばれる。候補レコードが識別された後、クエリレコードが、何らかの候補レコードに関連付けられる各クラスタのすべてのメンバと比較されて、クエリレコードが最も近い親近性を有するクラスタが見出されることが可能である。この親近性が照合閾値を超えている場合、クエリレコードは、対応するクラスタのメンバであり、超えていない場合、クエリレコードは、新たなクラスタに割り当てられる。候補レコードが見出された後、クラスタメンバシップ判定のパフォーマンスを向上させるステップが行われることが可能であり、一部のステップについて以下に説明する。
クエリレコードをクラスタ代表と比較する改良を用いても、新たなクラスタを識別する事例は、依然として不良であり、つまり、新たなクラスタに属するクエリレコードは、そのクエリレコードが新規であることを確認するのに既存のすべてのクラスタの代表と比較されなければならない。クラスタの数が増加するにつれ、新たなクラスタを識別するのにかかる時間が増加し、新たなクラスタを認識するのに要求される比較の数が既存のクラスタの数に比例するため、クラスタ化プロセスは、遅くなる。計算上の課題は、各クエリレコードをすべてのクラスタ代表と比較することに優る、レコードをクラスタ化する方法を見出すことである。
検索ベースのクラスタ化アプローチは、新たなクラスタを識別する最悪ケースを最良ケースに変えようと試みることによって、この課題に取り組むことである。単純化された形態で、このことは、既存のクラスタメンバ、又はそれらのクラスタメンバのクラスタ代表から入力された検索ストアに対して検索を実行することによって行われる。クエリレコードが、検索ストアの中で探される。クエリレコードが見つからなかった場合、そのクエリレコードは、新たなクラスタに属するはずである。このプロセスは、図1A及び図1Cに示される候補検索エンジン140によって行われる。このアプローチは、検索ストア146を入力して、検索ストア146の中でクエリを探すのにかかる時間が、各クエリレコードを、クラスタ代表の増大するストアに照らしてすべてのクラスタ代表と直接に比較するのにかかる時間より少ない場合、有利である。このアプローチの裏の巧妙さは、検索ストア146を入力する検索−エントリ展開エンジン145、候補検索エンジン140のためにクエリを構築するクエリ展開エンジン143、及び検索を実行する検索エンジン147(又は変数−ルックアップ手順)を選択することを含め、候補検索エンジン140によって使用されるプロセスを定義することにある。
図2Dが、このプロセスの実施例を示すのに使用され得る。一部の実施例において、検索ストア230Gが、クラスタメンバからなるデータセット220Gから計算されたエントリで入力される。検索ストア230Gに照らして、展開されたクエリエントリ210Gに変数−ルックアップ手順232Gを適用することが、クラスタメンバシップ基準の何らかの必要な構成要素のプロクシを計算するのに使用され得る。プロクシは、レコードが、そのプロクシに対して少なくとも最低限のスコアに達するのでない限りクラスタのメンバであり得ない場合、良好なプロクシである。この最低限のスコア(候補閾値)が、候補照合232Gを定義する。クエリがこの要求される最低限に達するクラスタレコード236Gが候補レコードである。
プロクシスコアの例が、2つの個人名のような、2つの複数語フィールド(又はフィールドの組み合わせ)によって共有される語の数である。2つの名前を比較するのにクラスタメンバシップ判定において使用される採点アルゴリズムは、それぞれ名前における語のセット以外も考慮に入れることが可能であり、詳細には、語の順序、及び語の位置を考慮に入れることが可能である。しかし、2つの名前は、それらの名前が語を全く共通で有さない場合、照合する可能性がなく、それらの名前が、語のほんの一部を共通で有するだけである場合、高いスコアを有する可能性は低い。2つの名前が共通で有する語の数をカウントすることが、名前スコアのプロクシであり、つまり、名前スコアほど正確ではないが、それでも信頼できる。このプロクシは、共通する語の数がそれぞれの名前における語の数との関係で知られている場合、より正確になる。この長さが、クラスタレコードを全くフェッチすることなしにプロクシスコアを計算するのに利用可能であるように、検索ストア146の中に格納され得る。
一部の実施例において、クエリの初期選択は、クラスタメンバシップ基準によって導かれることが可能である。オリジナルデータレコードの最も粒度の高い分解、又は最も明確に区別する分解を与えるクラスタメンバシップ基準の構成要素が、生のクエリを構築するための基礎として使用される場合、しばしば、より良好なパフォーマンスが実現され得る。このことは、検索基準を満たすレコードの数を減らす。
また、複数のフィールドからの値を用いたクエリが関与する複数の検索が行われることも可能であり、より絞られたセットの候補につながる可能性がある。これらの検索については、後段で説明する。ここでは、詳細がより単純であるため、単一のフィールドからとられたクエリに注目する。
いくらかの度合の可変性をそれぞれにおいて許して、企業が、個人名、政府によって割り当てられた識別子、及び生年月日に基づいて顧客データベースから顧客を識別することを所望する例を考慮されたい。この場合、初期のクエリに関して、政府によって割り当てられた識別子が、個人名より選好されることが可能である。通常、政府によって割り当てられた識別子は、可能なあいまいさを見込んでも、個人名と比べてより特定的であり、したがって、より良好なクエリをもたらす、つまり、候補照合のセットをより迅速に絞るものと予期される。
しかし、フィールド(又はフィールドの組み合わせ)に関連付けられる粒度は、データセット全体にわたって一定でない可能性がある。多数の関連付けられるレコードを伴って、政府によって割り当てられた識別子のいくつかに入力されるデフォルトの値(例えば、空白、又はすべて0若しくはすべて9)が存在する可能性がある。これは、レコードサブセットに関して、クエリの選択の破綻を表す。あまりにも多くのレコードが検索によって取り出される場合、採点されるべきレコードのセットを絞る検索の主要な目的は、達せられていない。このことに対処するのに、所与のクエリ検索から返される候補の数にカットオフ限度が課せられることが可能であり、すなわち、候補レコードの数が閾値を超えた場合、そのクエリは、拒否される。
一部のシナリオにおいて、展開されたクエリからのすべてのクエリが拒否されるまで生のクエリが続けられることが可能であり、展開されたクエリからのすべてのクエリが拒否された後、クエリレコードが、代替の検索戦略を用いて再処理されなければならない。例えば、生のクエリが複数語ストリングである場合、展開されたクエリは、そのストリングの中の個々の語からなることが可能である。そのストリングの中の非常に一般的な語が、多過ぎる候補を返すものとして拒否されることが可能である一方で、残りの、頻度のより低いクエリ語は、所望される照合するレコードを見つけ出すのに妥当である。生のクエリを拒否すべきかどうかの判定は、潜在的に満足のいく照合するレコードが、拒否されるクエリからのレコードを含めないことによって見逃されるかどうかに基づくことが可能である。展開されたクエリ内に複数のクエリが埋め込まれる場合、いくつかのクエリが失敗する一方で、他のクエリが続けられることは問題ない可能性がある。複数の独立したクエリが存在しない状況では、展開されたクエリセットからの1つのクエリの拒否が、そのセット全体を拒否するのに十分である可能性がある。
多くの事例において、検索戦略が破綻する場合に、そのことは、データにデータ品質問題があること、例えば、不完全なレコード、又は採点フィールドに予期されないデフォルトの値が入っていることを示し得るので、レコードのセットを独立に識別することが有用であり得る。レコードの本体からレコードのそのようなセットを分離することにより、データが、最終的な照合判定の一般的な信頼性を示すセットに分類される。政府によって割り当てられた識別子を全く有さない、又はデフォルトの、政府によって割り当てられた識別子しか有さないレコードは、政府によって割り当てられた識別子をともに有するレコードの間で見出されるより低い確度の照合につながるものと見込まれ得る。
2.6.3 複数の検索及び検索コード
検索ストア330Gは、検索エントリ334Gをペアリングキー333Gで重複排除すること、及びロケーションキー335Gを、特定の検索キー333Gを有するデータレコードに関するすべてのロケーションキーを保持するロケーション情報にロールアップすることによって改良され得る。一部の実施例において、このロケーション情報は、関連付けられるレコードの数が少ない場合、キーの単純なベクトルであることも可能である。他の実施例において、このロケーション情報は、各ビットセットが、データセット320Gの中のデータレコードを明示的に、又は暗黙に示す、ビットベクトルであることが可能である。ビットベクトルは、圧縮されてもよい。
ロケーション情報のビットベクトル実施例を使用することにより、検索ストアのサイズが小さくなることが可能であり、ペアリングキー333Gの同一の値に対してルックアップ332Gを繰り返すことが解消され得るが、本当の利益は、複数の検索の結果を組み合わせた際にもたらされる。展開されたクエリが、生のクエリの各語に関する別々のクエリからなる複数語ストリングからなる生のクエリの例において、別々の展開されたクエリの結果が、ロケーションビットベクトルの論理積をとることによって組み合わされることが可能である。2つのロケーションビットベクトルの論理積により、両方のロケーションビットベクトルにおける同一の位置で設定されたビットが求められる。この場合、これらのビットは、それらのロケーションビットベクトルに関連付けられる両方の語を包含するレコードである。ロケーションビットベクトルの間で論理積のすべての組み合わせを形成することによって、データセット320Gのレコード322G中に存在する生のクエリ300Gからの語のすべての組み合わせが見出されることが可能である。
これらの組み合わせを編成することを円滑にするのに、検索コードの概念が導入され得る。検索コードは、いずれの検索クエリが最終的なロケーション情報結果に寄与するかを符号化するデータパターンコードである。一部の実施例において、ロケーション結果に寄与する生のクエリ、又は展開されたクエリの各部分に関して、ビットベクトルにおいてビットが設定されることが可能である。複数のビットセットが、各ビットセットに関連付けられる各ロケーション情報結果の論理積に対応する。2つの検索が存在したとする場合、第1ビットが、第1セットから返される結果に関して設定され、第2ビットが、第2セットに関して返される結果に関して設定され、両方のビットが、両方の検索から返される結果(各検索の結果の論理積)に関して設定される。
単一のフィールドからの2つ以上のトークンで複数の検索を行い、それらの検索によって取り出されるロケーション情報を論理的に組み合わせるという概念は、複数のフィールド(又はコンテキスト)からのトークンで複数の検索を行い、それらの検索によって取り出されるロケーション情報を論理的に組み合わせることに一般化されることが可能である。
図7A〜図7Dが、実施例における検索コードの構築及び使用を示す。図7Aで、生のクエリ700が、データレコードの3つのフィールド、first(name)、last(name)、及びstreetからのトークンから構築される。例えば、lastに関するクエリは、「smit」である。生のクエリが、展開されたクエリ704をもたらすようにクエリ展開手順702によって展開される。この事例における展開されたクエリは、場合により、変数プロファイラストア115から獲得される、生のクエリの各部分に関する変数トークンからなる。例えば、「smit」に関連付けられる変数トークンには、「smith」及び「smiths」が含まれる。
図7Bで、データソース710が、4つのフィールド、「key」、「first」、「last」、及び「street」からなる。検索−エントリ展開手順712が、この3つのクエリフィールドそれぞれに関して検索ストア714を入力するのに使用される。
図7Cで、展開されたクエリ704Aが、変数−ルックアップ手順720Aによって処理されて、ロケーション結果724Aがもたらされる。この事例において、変数−ルックアップ手順は、それぞれの展開されたクエリに関して検索ストア714の中を探すこと(721)から始めて、実施される。次に、それぞれの展開されたクエリからのロケーション情報結果が組み合わされて(ベクトルの合併、又はビットベクトルの論理和)、生のクエリの「last」部分に関するロケーション情報結果724Aがもたらされる。このことが、「last name」というラベルが付けられた円730Aとして図示される。
「first」フィールドに関する第2展開されたクエリ704Bが、変数−ルックアップ手順720Bによって処理されて、ロケーション情報結果724Bが得られる。このことが、「first name」というラベルが付けられた円730Bとして図示される。「last name」円730Aと「first name」円730Bの共通部分は、レコード「[2,4]」732を包含する。
図7Dで、3つすべての生のクエリの結果が示されている。各円730ABCが、レコードそれぞれのコレクション724A、724B、724Cを包含する。例えば、「last name」円が、レコード724A、「{1,2,4,5,7}」を包含する。この円に検索コード1が割り当てられ、このことが検索−コードテーブル740の中に記録される。同様に、「first name」円に検索コード2が割り当てられ、「street」円に検索コード4が割り当てられる。検索コード1、2、及び4はそれぞれ、共通部分を除外した領域だけでなく、対応する円領域全体を指すことが強調されなければならない。同時に満足させられる2つ以上の生のクエリに関連付けられるレコードが、対応する円形領域に関連付けられるレコードのセットを交わらせることによって見出される。その結果が、検索−コードテーブル740の中に記録され、結果に寄与する個々の領域の検索コードの合計によって形成される検索コードとペアにされる。この場合、検索コードは、各ビットセットがいずれの円形領域が存在するかを示すビットマップ表現として認識され得る。
最終ステップは、いずれの検索コードが、クラスタメンバシップに関してより綿密な採点に値するクエリに対する十分な応答に対応するかを指定することである。この場合、候補選択基準742は、検索コードが3、5、又は7でなければならないことである。このことは、成功するクエリ候補は、last nameと照合する変数と、first name又はstreet、又はfirst nameとstreetの両方と照合する変数とを有さなければならないことを意味する。first name及びstreetと照合する変数では、情報と照合するいずれの単一の変数の場合にも同様であるように、不十分である。採点のために返される候補744は、これら3つの検索コード742に関連付けられるレコードの合併によって与えられる。
2.6.4 クエリ構築
クエリ構築手順142において、データソース100から、又はトークン化されたレコード118から読み取られたレコードの中の1若しくは2以上のフィールド又はランタイムパラメータの断片又は全体から選ばれたコンテンツから生のクエリを構築する、場合により、クエリ構築規則セットが関与するクエリ構築式をユーザが与える。生のクエリは、いくつかがベクトルであり得る、1又は2以上のクエリフィールドの値からなることが可能である。例えば、ユーザが、個人名をクエリとして使用することを所望することが可能であり、ファーストネームフィールド、ミドルネームフィールド、及びラストネームフィールドのコンテンツを、各フィールド値の間のスペースで、又はカンマとスペースで連結することによって、そのクエリを構築する規則を指定する。1又は2以上のネームフィールドが無効である、又は入力されていない場合、その名前の構築を指定するさらなる割り当て(「大文字小文字」)が与えられることが可能である。代替として、場合により、ファーストネームとミドルネームの頭文字だけが保たれ、ラストネームと連結される。生のクエリは、複数の部分から形成された構造化されたレコードであることが可能であり、例えば、個人名に関する生のクエリは、別々のファーストネームクエリフィールド、ミドルネームクエリフィールド、及びラストネームクエリフィールドからなることも可能である。単一のfull_nameフィールドだけがデータレコード上に存在する場合、ユーザクエリ構築式は、生のクエリの構成フィールドを入力するのにそのfull_name値をどのように構文解析すべきかを指定することが可能である。クエリ構築式は、クエリレコードの中のデータを特徴付ける1又は2以上のデータパターンコード、例えば、生のクエリの他の要素を構築するのに使用される各フィールドの入力の状態(例えば、入力されている、空白、又は無効)を示す入力パターンコードを入力することが可能である。
一部の実施例において、変数プロファイラ110のデータ準備モジュール111におけるスタンダダイザ112のようなスタンダダイザが、句読文字若しくは他の指定された文字を削除すること、又はそれらの文字を代替の文字で置き換えること、数の左側を0又はスペースで埋めること、アルファベットを小文字にすることなどのような、要求されることをユーザが示すが、完全な詳細で指定しなくてもよい(これらの操作は、事前定義された操作として利用可能であり得るので)操作を使用して、生のクエリに適用されることが可能である。一部の実施例において、独立した複数の標準化が適用されて、標準化された生のクエリのベクトルがもたらされることが可能である。例えば、「&」のような一部の句読文字が、自然な用法の範囲に及ぶように複数の様態で扱われる必要がある可能性があり、つまり、その文字は、それぞれ有用な効果を伴って、削除される、スペース文字で置き換えられる、そのままにされる、又は「and」という語に展開されることが独立に行われ得る。
クエリアプローチが直面する1つの課題は、個人名又は企業名のような一部のフィールド(又はフィールドの組み合わせ)が、自由形式の性質を有することであり、つまり、2つの名前が、それらの名前が欠落した語で、又は語順で異なる場合でさえ、許容可能な照合であり得ることである(すなわち、クラスタメンバシップ処理中にトークンを比較するのに使用される類似性採点関数又は類似性採点規則が、欠落した語、又は語順の変更にペナルティを課すが、それでも、欠落した語、又は語順の変更を許容する可能性がある)。このことは、例えば、一般に、フルネーム自体は、クエリであり得ないことを暗示する、つまり、あまりにも多くの許容可能な照合が見逃される可能性がある。つまり、フルネームで直接に検索することは、重要なすべての候補によっては満足させられない可能性がある語順、及びいくつかの名前が存在することを前提とする。代わりに、フルネームは、生のクエリとして扱われ、実際のクエリは、その生のクエリを展開することによって生のクエリから生成されるようにした方がよい場合があり得る。
2.6.5 クエリ展開
生のクエリが、クエリ展開エンジン143によって処理されて、展開されたクエリが生成されることが可能である。一部の実施例において、変数プロファイラ110のデータ準備モジュール111におけるトークナイザ113のようなトークナイザが、クエリ展開中に生のクエリの要素に適用されて、クエリが、クエリ語句と呼ばれるトークンに分割されることが可能である。
一部の実施例において、クエリ語句は、例えば、タイプ入力上の変数、代替のつづり、及び文化的変数を含むようにさらに展開されることが可能である。例えば、「civilization」というクエリ語句が、「civilisation」及び「civilizatin」という語句を含むように展開され得る。「Weber」に関するクエリが、「Webber」という語句を含むように展開され得る。また、他の展開も可能であり、例えば、1つの文字体系における名前が、別の文字体系において複数のつづりを有することが可能である(例えば、漢字からローマ字への変換)。展開の際に使用すべきタイプ入力上の変数のセットは、変数プロファイル110において計算され得る。前処理が変数プロファイルストアの基本セットを確立した後、新たなレコードが処理されるにつれ、さらなる変数がオンラインで検出されて、変数プロファイラストアの変数のリストに追加されることが可能である。
一部の実施例において、各クエリ語句は、トークン−代表ストア127を変数ネットワークストア126と一緒に使用してトークン代表で置き換えられることが可能である。このことは、同一の近隣(例えば、正規の近隣)内の変数トークンが同一のトークン−代表で置き換えられ、したがって、関連付けられる変数トークンを識別することは、単に厳密なトークン−代表照合を見つけ出すことを要求するだけであるので、変数トークンの比較を円滑にする。変数トークンは、2つ以上の近隣のメンバであることが可能であり、したがって、2つ以上のトークン−代表を有することが可能である。トークンに対応するすべてのトークン代表が、置換として使用されることが可能であり、その結果、(置換される)クエリ語句の数が増加する。
一部の実施例において、クエリ展開エンジン143は、場合により、トークン−代表置換の後、2つ(又は3つ以上)のクエリ語句を組み合わせることによってトークン−ペアクエリ語句を形成することが可能である。このペアリングの目的は、クエリ語句に基づいて検索から返されるレコードのセットを絞ることである。一部の実施例において、(トークン−代表で置換された)トークン−ペアクエリ語句は、アルファベット順に並べ替えられる。このことは、トークン−ペアクエリ語句を検索する際に語順の局所化された変更を検出可能にする。隣接する語の各ペアを形成する際にオリジナルの語順が格納される場合、そのようなペアのセットが、ブロック再構成まで、オリジナルの句を再構築するのに使用されることが可能である。このことは、オリジナルの語順が、語のセット自体によっては捕捉されない様態で語ペアにおいて捕捉されることを意味する。
仲介する1つのクエリ語句を有するクエリ語句からトークン−ペアクエリ語句を作成することは、照合の可能性を完全に除外することなしにフィールド(又はフィールドの組み合わせ)から語(又は他のトークン)が欠落している可能性があり、フィールド採点アルゴリズムが、このことを許容するように設計されるため、検索を向上させる。例えば、ミドルネームは、企業名からの「of」のような項目の場合にそうであるように、しばしば、切り詰められ、又はレコードから省略される。欠落した語の他の多くのそれほど明白ではない例が、現実のデータには生じる。三重のクエリ語句、及びよりより多重のセットのクエリ語句が、さらに絞ったクエリを形成するのに使用され得る。
例えば、クエリ展開エンジン143が、「John Jacob Jinglehiemer Schmidt」という生のクエリを受け取る。トークン−代表ストア127が、トークン−代表「John」、「Jacob」、「Jingleheimer」、「Schmidt」のリストを返す。生のクエリにおける「Jinglehiemer」は、「Jinglehiemer」を包含する変数の正規の近隣におけるトークン−代表である、「Jinglehiemer」のより頻度の高い変数「Jingleheimer」で置換されていることに留意されたい。クエリ展開エンジン143が、隣接するクエリ語句、この例では、「Jacob John」、「Jacob Jingleheimer」、及び「Jingleheimer Schmidt」を使用して、アルファベット順に並べられた(トークン−代表で置換された)トークン−ペアクエリ語句を作成する。また、クエリ展開手順は、仲介する1つのクエリ語句を有するクエリ語句「Jingleheimer John」及び「Jacob Schmidt」に関してアルファベット順に並べられた(トークン−代表で置換された)トークン−ペアクエリ語句を作成することもする。
一部の実施例において、生のクエリは、前述した変数−検索の一部として変数−ルックアップ手順におけるクエリとなるように設計された変数クエリのセットを生成するように生のクエリを体系的に変更するクエリ展開手順を適用することによって、展開され得る。例として、2つの政府によって割り当てられた識別子(「gids」)が、それらのgidsが多くとも1文字の変更だけ異なる場合に限って、つまり、それらのgidsが1以下のハミング距離を有する場合に、照合と見なされるものと想定されたい。削除−結合手順が、図8に示されるとおり、厳密なルックアップを介してこのことを実施するのに使用され得る。データソース820における各gidが、そのgidの削除セットを形成し、さらに削除位置、削除変数、及び関連付けられるキーを含む各削除エントリを検索ストア830に書き込むことによって展開される(825)。生のクエリ800は、gidからなる。生のクエリ800が、検索ストア830のエントリを展開する(825)のに使用されるのと同一の削除−結合手順を使用して、削除セット810に展開される(805)。展開されたクエリは、削除位置と削除変数の両方をキーとして使用して検索ストア830の中でシークされる(832)。このことが、変数照合のセットをもたらし、次に、変数照合のこのセットが、照合するレコードを取り出すのに使用され得る(837)。
この手順の変数形態が、オリジナルの変更されていないgidを、検索ストア830の中に削除位置0でエントリとして含め、検索ルックアップのキーを削除変数だけに(削除位置を無視して)変えることである。このことは、単一文字挿入、単一文字削除、及び単一文字代入、並びに2文字入れ換え及び非隣接挿入/削除を含む、すべての削除−結合1変数照合を見つけ出し、つまり、これらの照合は、すべての編集距離1変更と、長さを変えない編集距離2変更(二重代入は範囲に含まれない)の大部分とを含む。
2.6.6 採点エンジン
クエリデータレコードと、既存のデータクラスタの中のデータレコード(インクリメンタルモードにおいて)又はデータソースにおける他のデータレコード(バッチモードにおいて)の間の類似性の測度が、採点エンジン150によって計算されるスコアとして表されることが可能である。採点エンジン150は、1若しくは2以上のフィールドの、又はフィールドの組み合わせの、例えば、名前及び/又はアドレスを個々に、又は共同で構成するフィールドのコンテンツ全体又は部分的コンテンツを比較することによって、2つのレコードを比較することが可能である。これらのコンテンツは、これらのコンテンツがレコードのフィールドの値から導き出されるので、「フィールド−値」と呼ばれることが可能である。
一部の実施例において、フィールド−値の選択されたペアの間のスコアは、それらの値の相等性、又はそれらの値の間の編集距離などの類似性基準に基づくことが可能である(他の類似性基準には、音声上の類似性、又は画像データ(例えば、顔認証のための)に関するグラフィック上の類似性などの様々なタイプのデータに関する他の形態の類似性が含まれる)。1文字又は2文字からなる短いフィールド−値は、誤りを意図と区別するための基礎が存在しない可能性があるため、しばしば、相等性に関してしか比較されないことが可能である。別個に、一部のフィールド−値、例えば、「New York」を包含する都市フィールドは、スペース文字を包含するようなことがある単位としてだけ意味上の意義を有する。そのような値では、1つの値を別の値に変えるのに要求される挿入、削除、及び代入の回数をカウントする編集距離が、類似性の良好な測度であり得る。
一部の実施例において、コンテンツが、何らかの分離記号(一般に、ただし、排他的にではなく、スペース文字)で分離されたトークンの順序付けられたセットである、フィールド−値の選択されたペアの間のスコアは、厳密に照合するトークンの数、変数照合(同一ではないが、均等である、又は類似していると認識される)であるトークンの数、並びにトークン順序及びトークン位置の一致を考慮に入れることが可能である。例えば、個人名が、スペース分離記号又はカンマ分離記号を用いたファーストネームフィールド、ミドルネームフィールド、及びラストネームフィールドの連結として構築されることが可能である。データ品質問題には、1又は2以上のフィールドが入力されていないこと、及び名前順序の変更(例えば、ファーストネームとラストネームを入れ替えること)が含まれる。
一部の実施例において、レコードのペアの間のスコアが、異なる情報の類似性の存在、欠如、又は度合に重み付けされた重点を与えるように、条件付き規則の階層に応じて、フィールド−値のペアの間で、スコア−要素と呼ばれるスコアのセットを組み合わせることによって、事前定義された、又はユーザによって指定された採点規則(例えば、規則セットによって、又は関数によって指定された)に基づいて計算されることが可能である。例えば、アドレスレコードを比較する際、同一の住宅番号、同一のストリート、同一の都市、及び同一の郵便番号を有する2つのレコードには、通常、一方のレコードに郵便番号が欠けている、又は照合しない郵便番号のような何らかの矛盾が存在するレコードの別のペアと比べて、より高いスコアが与えられる。スコア要素は、単一のスカラ値に制限されなくてもよく、複数のフィールド、及び複数のベクトルを包含するレコードを含め、より複雑な形態をとることが可能である。
スコアは、個々のフィールド−値ペアに関する定性的採点測定のセット(例えば、スコアが1である場合、「厳密な照合」、スコアが1未満であるが、ファジー照合閾値を超えている場合、「ファジー照合」など)、及び/又はフィールド−値の入力の状態のようなレコード特性を符号化するデータパターンコードである、照合コードを含み得る。照合コードは、前述した検索コードと似たような目的を果たす。つまり、照合コードは、数値スコアの計算を要求することなしに、採点測定のセットを編成し、定性的照合条件の指定を円滑にする。
スコア要素は、少なくとも部分的な順序付けを有さなければならず、したがって、スコア要素は、「より高い」スコア、又は「最良の」スコアを判定するように組み合わされ、比較されることが可能である。スコア要素の部分的順序付け、及び最良のスコアを判定するスコア要素の関連付けられる比較は、順序付けられた事例ベースの規則セットが関与する、事前定義された、又はユーザによって指定された規則セットの形態をとることが可能である。
2.6.7 インクリメンタルモードにおけるクラスタメンバシップ判定
クラスタ化プロセス全体が、クラスタメンバシップ判定において一体となる。図9が、クラスタメンバシップを判定するためのプロセスの実施例の概略を示す。データソース100が読み取られる。生のクエリが形成され展開される前に、レコードはセグメント化され並列に分割される(図示せず)(910)。一部の実施例において、前述したクエリ構築手順及びクエリ展開手順は、変数プロファイラストア115及び変数ネットワークストア126から読み取る。一部の実施例において、クエリレコードは、より区別しやすいレコードを先に置くように識別性の基準136で並べ替えられることが可能である。生の候補レコードが、検索ストア146にアクセスすることによって、前述した候補検索エンジンを使用して見出される(920)。事前定義された条件、又はユーザによって指定された条件が関与する候補選択手順930が、それらの生の候補レコードに適用されて、候補レコードのセットがもたらされる。
選択930の後に見出される候補レコードは、既存のクラスタのメンバであり、実際、候補クラスタレコードである、つまり、それらの候補レコードは、1又は2以上のクラスタのメンバに対する近似照合である。選択条件930は、クエリレコードが、より綿密な調査に値するだけクラスタに十分に近いかどうかを判定するように指定される。
クエリレコードが、候補選択930の後に全く候補クラスタレコードを返さない場合(932)、そのクエリレコードは、既存のクラスタのいずれのメンバにも近くなく、新たなクラスタが作成される(934)。そのクエリレコードは、マスタレコードとしてマスタレコードストア176に書き込まれる。この新たなクラスタレコードが、代表的レコードストア178及びデータクラスタ180にさらに書き込まれる。この新たなクラスタレコードは、検索ストア146に追加された検索−エントリ展開手順935を使用して検索−エントリを入力するのに使用される。一部の実施例において、生の候補クラスタレコード920を見つけ出すのに候補検索エンジンによって使用される検索ストア146は、マスタレコードだけから入力される(935)。他の実施例において、マスタレコードに加えて、代表的レコードストア148の中のレコードが、検索ストアに追加されることも可能である(952)。
マスタレコードは、クラスタを何らかの様態で特徴付ける特別なクラスタの代表的メンバ、例えば、クラスタの最初のメンバである。一部の実施例において、クラスタ化が始まる前にデータが並べ替えられ、したがって、新たなクラスタの最初のメンバは、そのクラスタに関して、並べ替え順序で先頭となる。例えば、銀行ローン相手方のデータセットの中で、データが、会社名における語の多い順に並べ替えられて、マスタレコードを、最も長い会社名を有するクラスタのメンバにすることが可能である。長い会社名を有するレコードが、クラスタのシードとなるように選択され得るのは、長い名前が、より多くのトークンを包含するとともに、より多様なトークンを包含するため、より短い名前と比べて、一部の類似性採点手順によって、より容易に区別され得るためである。
クラスタは、2つ以上のマスタレコードを有し得る。この特徴は、クラスタをマージする際、及びアルゴリズムによって行われたクラスタメンバシップ判定を人によって行われた判定で変更する際のクラスタ承認プロセスにおいて後段で使用される。
候補選択手順930が1又は2以上の候補レコードを返した場合、それらの候補レコードに関連付けられるすべてのデータクラスタのメンバが、クエリレコードに照らして採点されるように取り出される。これらの関連付けられるデータクラスタは、候補データクラスタと呼ばれる。一部の実施例において、すべてのクラスタメンバではなく、代表的レコードストア178の中に格納されたメンバだけが取り出される(939)。採点エンジン150が、クエリレコードと取り出されるすべてのクラスタメンバの間の類似性スコアを判定するのに使用される。最良のスコアが照合閾値を超えている場合、そのクエリレコードは、対応するクラスタに追加される。クエリレコードが、2つ以上のクラスタに関して照合閾値を超えている場合、そのクエリレコードは、そのクエリレコードがより高いスコアを有する方のクラスタに追加される。一部の実施例において、クエリレコードが、2つ以上のクラスタに関して同一の最良のスコアを有する場合、そのクエリレコードは、最初のクラスタに追加される。他の実施例において、クエリレコードが、2つ以上のクラスタに関して同一の最高スコアを有する場合、そのクエリレコードは、メンバシップの尤度を反映する重みと一緒にすべてのそのようなクラスタに追加されることが可能である。
一部の実施例において、クエリレコードがデータクラスタに関連付けられた後、クラスタメンバシップを判定することを担う最良のスコアが、閾値と比較されることが可能である。最良のスコアがこの閾値を下回る場合、そのクエリレコードは、クラスタのその他のメンバと十分に異なっていると見なされ、代表的レコードストア178に追加される。この場合の意図は、類似性スコアの部分的推移性を活用することである。AがBと非常に類似しており、さらにCがAと非常に類似している場合、Bは、Cと少なくとも相当に類似している。このため、CをBに照らして採点することは、Aに照らしたスコアが十分に正確であるので、必要ない可能性がある。そのような閾値は、「準重複」閾値と呼ばれることが可能であり、極めて高く設定され得る。その目的は、特に、ほぼ同一であるクラスタメンバに照らした冗長な採点を減らすことである。
一実施例において、クエリと生の候補レコードの間の照合するトークン−ペアクエリ語句の数がカウントされることが可能であり、その数が候補閾値を超えた場合、その生の候補レコードは、候補レコードであり、関連付けられるデータクラスタは、候補クラスタと見なされる。すべての候補データクラスタが識別された後、そのクエリレコードが、それらの候補クラスタのメンバに照らして採点されて、最良のスコアが見出され、プロセスは、前述したとおり、続けられる。
図10A〜図10Dは、マルチトークンクエリフィールドに関するクラスタ化プロセスの実施例を示す図である。図10Aにおいて、生のクエリ1000が、会社名、「ACME−Metl Grp」から形成される。生のクエリ1000は、小文字に変換すること、及び句読点を置換することによって標準化されて(1002)、標準化された生のクエリ1004「acme metl grp」が与えられる。各トークンが、図3A〜図3Bにおけるとおり、そのトークンのトークン−代表ベクトル1006で置換される。語「metl」は、2つの正規の近隣に属し、したがって、2つのトークン「metal」と「meta」を有し、この両方が、もたらされるトークン置換された生のクエリにおいて使用される。このトークン置換された生のクエリが展開されて(1008)、アルファベット順に並べられたトークン語ペア及び単独語トークンのリストからなる展開されたクエリ1010、例えば、「acme metal」、「group metal」、「group meta」などがもたらされる。
図10Bで、プロセスが続けられる。標準化された生のクエリ1004は、トークン置換され(1006)、展開されて(1008)、展開されたクエリ1010をもたらしている。別個に、マスタレコードストア1050のエントリが、検索ストア1054を入力するように展開されている(1052)。検索ストア1054における変数−ルックアップは、この事例では、展開されたクエリ1010から各トークンペアをとり、検索ストア1054の中でそのトークンペアを探す(1056)ことによって機能する。共通のクラスタidと照合するトークンペアの数がカウントされ(1058)、その結果が、生の候補レコードのリストの中に格納される(1060)。この例において、照合するトークンペアの数は、2つの会社名のスコアのプロクシである。クエリ及びマスタレコードにおけるトークンの数に対してあまりにも少ない照合するペアを有する候補を削除するように閾値が適用される(1062)(この目的で、マスタレコードにおける名前のトークン数単位での長さが、検索ストア1054の中に格納されている)。
図10Cで、候補レコード1061が、候補クラスタid(クラスタシーケンスを含む)1072に関する代表的レコードストア1070から代表的レコードをフェッチするように読み取られる。標準化された、入ってくるレコード1074に存在する採点フィールドが、各代表的レコード1076からの取り出されたフィールドに照らして個々に採点される(1078)。これらのフィールド−レベルスコア1080が、事例ベースのスコア規則セット1082において組み合わされて、比較されるレコードのスコアが計算される。この場合、スコアは、照合判定として論理の点で符号化される(1084)。この場合、規則は、入力条件を「論理積演算すること」、及び事例を下方に「論理和演算すること」によって読み取られる。例えば、名前スコアが、near_duplicate_thresholdより高く、id_scoreが1であり、さらにdate_scoreが1である場合、照合判定は、「準重複」である。名前スコアがnear_duplicate_thresholdより低かった場合、照合する条件が、存在する場合、見出されるまで、次の行が試みられるといった具合である。一部の実施例において、この規則セットは、参照により本明細書に組み込まれている米国特許第8,069,129号明細書において説明される環境などのビジネス規則環境を使用して符号化され得る。採点規則セット1082の列に示されるスコア要素は、照合コードで符号化されることが可能であり、例えば、第2行は、最初の位置の「3」が、照合閾値を超えた(ただし、準重複閾値を下回る)名前スコアを示し、その他2つの位置の「1」が、idスコア及び日付スコアに関して厳密な照合を示す、「311」という照合コードを有することが可能である。
図10Dで、スコア規則セット1082において、比較されたレコードに関する照合判定1084が、別の事例ベースの規則セットにおいてアクション1088に変換される(1086)。異なる照合判定に関して異なるアクションが行われる。照合判定1090「準重複」は、名前スコアがnear_duplicate_thresholdを超えており(このことにより、match_scoreより高いことが暗示される)、その他のスコアが1である場合、割り当てられる。もたらされるアクション1092は、既存のクラスタidを入ってくるレコードに割り当てることである。他方、照合判定1093が、「照合」であった(「準重複」ではなく)場合、既存の照合閾値を割り当てることに加えて、アクション1094は、代表的レコードストア1070にレコードを追加することである。照合判定1095が「照合なし」であった場合、アクション1096〜1099は、新たなクラスタidを生成して、そのidをレコードに割り当てること、そのレコードをマスタレコードストア1050に追加すること、検索−エントリ展開手順1052をレコードに適用し、それらの結果を検索インデックス1054に追加すること、及びそのレコードを代表的レコードストア1070に追加することである。
2.6.8 バッチモードにおけるクラスタメンバシップ判定
クラスタ化プロセスは、バッチモードにおいて、インクリメンタルモードにおけるのとは多少異なったように進められる。図11A〜図11Dは、このクラスタ化プロセスを図示する。図11Aで、このクラスタ化プロセスの高レベルの概略が与えられる。変数プロファイラストア115及び変数ネットワークストア126が、検索−エントリ展開手順を介して読み取られ、処理されて、検索ストア146の中に検索−エントリ145が入力されることが可能である。このことは、前処理ステップとして行われる。データソース100が読み取られる。生のクエリが、一部の実施例において、変数プロファイラストア115及び変数ネットワークストア126の中のデータを使用して、各レコードに関して生成され、展開される(1110)。展開されたクエリは、クラスタメンバシップ基準を満足させない可能性があるレコードを除外するようにクラスタメンバシップ基準を近似するように作成されることが可能である。展開されたクエリは、検索ストア146から生の候補レコードを取り出す候補検索エンジン1120に送られることが可能である。生の候補レコードが、候補セレクタ1130によってフィルタリングされて、プロクシ照合基準を満たす候補レコードが選択されることが可能である。一部の実施例において、プロクシ照合基準は、各レコードに関して行われた複数の検索の結果を符号化する、検索コードを使用して部分的に実現され得る。プロクシ照合基準を満たすすべての候補レコードが、クエリレコードに照らして詳細な採点を受けることが可能であり(1140)、もたらされるスコアが、変数−ペアスコアストアの中に保存されることが可能である(1150)。
一部の実施例において、各ペアに、スコアの要素に関するスコア判定の品質(名前照合又は郵便番号照合の品質などの)を含む、採点判定の背後の詳細、並びにそのペアのレコードにおけるフィールド又はフィールドの組み合わせの入力の状態の符号化を符号化する照合コードが割り当てられることが可能である。
データソース100の中のすべてのレコードが処理され、変数−ペアスコアストア1150が完成した後、データソースレコード100が再び読み取られる。データソースレコードが、クラスタメンバシップエンジンによって処理されて(1150)、新たなクラスタを作成すること、及びクラスタメンバシップ判定があいまいである、又は周辺的である場合に、そのことを示すことを含め、各データソースレコードがいずれのクラスタに属するかが判定されることが可能である。ユーザ102が、ユーザインターフェース104を使用して、変数−ペアスコアストア1150を点検することが可能である。一部の実施例において、このユーザインターフェースは、各レコードがノードであり、候補レコードの変数−ペアがエッジである、変数−ペアスコアのネットワークをグラフ表示することが可能である。このユーザインターフェースは、候補レコードのペアに関連付けられる全体的なスコア、スコア詳細(全体的なスコアに寄与する構成スコアを含む)、検索コード、及び照合コードを記録することが可能である。一部の実施例において、ユーザ102は、変数−ペアスコアストア1150を操作して、変数ペアリングの詳細を追加する、削除する、又は変更することができる。
変数−ペアスコアストアが、データセット100に関して完成したので(1150)、バッチモードクラスタメンバシップ判定は、インクリメンタルモードの場合のように、それまでに処理されているレコードだけでなく、クラスタメンバシップ判定を行うのに利用可能なレコードの完全なセットを有する。
図11Bで、クラスタメンバシップエンジンの1つのバッチモード実施例が図示される。データレコードが、変数−ペアスコアストア1150を得るのに処理されるのと同一のデータソース100から読み取られる。一部の実施例において、これらのレコードは、より区別しやすいレコードを先に置くように識別性の基準に応じて並べ替えられることが可能である(1151)。クラスタストア170及びデータクラスタ180の入力は、インクリメンタルである。各クエリレコードが、そのクエリレコードの一意レコード識別子(一意レコード識別子が既に付加されているものと想定される)でクラスタストア170の中で探されて(1152)、既にクラスタのメンバであるかどうかが判定され、既にクラスタのメンバである場合、関連付けられるクラスタidが取り出される。
クエリレコードの一意のレコード識別子がクラスタストア170の中に既に存在する場合、そのクエリレコードは、以前のデータレコードの処理中にそれらのクラスタストアに追加されているはずである。クラスタidを割り当て(1153)、データクラスタ180を更新する(1154)。
一意のレコード識別子がクラスタストアの中に存在しない場合、その一意のレコード識別子の変数ペアのレコードが、変数−ペアスコアストア1150の中で見つけ出されることが可能であり(1155)、スコアが照合閾値を超えている変数ペアのレコードが取り出される。この照合閾値は、オリジナルレコードがクラスタのマスタレコードであったとした場合に、同一のクラスタに入るだけ十分に類似しているレコードを示す。現在の設定において、マスタレコードは、クラスタの最初のメンバであると見なされ得る。したがって、ほとんどのレコードは、それら自体はマスタレコードではなく、この照合閾値は、変数−ペアのレコードと同一のクラスタにおけるメンバシップをサポートするだけ十分に類似しているレコードを識別するのに使用される。次に、各変数−ペアのレコードが、クラスタストアの中で探されて(1355)、それらのレコードの1又は2以上が、クラスタに既に割り当てられているかどうかが判定されることが可能である。考慮すべき3つの事例、すなわち、変数−ペアのレコードのいずれもクラスタストアに入っていない事例、1つが入っている事例、又は多くが入っている事例が存在する。
クラスタストアの中に既に存在している変数−ペアのレコードが全くない場合、現在のレコードは、新たなクラスタの最初のメンバシップとなるだけ十分に既存のクラスタとは異なる。新たなクラスタが、現在のレコードに基づいて作成されると(1156)、データクラスタは、その新たなクラスタで更新される(1154)。さらに、各変数−ペアのレコードの一意のレコード識別子、及び変数−ペアスコアストア1150からの関連付けられる採点情報を含め、照合閾値を超えている変数−ペアのレコードそれぞれが、クラスタに追加される。前述したとおり、スコアが照合閾値を超えているレコードは、現在のレコードがクラスタのマスタレコードであったとした場合と同一のクラスタに入るだけ十分に類似しており、現在のレコードは、新たなクラスタの最初のメンバであるので、クラスタのマスタレコードである。これらのレコードは、これらのレコードについての情報が不完全であるため、データクラスタ180を更新するのに使用され得ない。各レコードは、そのレコードがデータソース100から読み取られ、そのレコードの一意のレコード識別子がクラスタストア170の中で見つけ出されると、データクラスタ180に追加される。
1つの変数−ペアのレコードが既存のクラスタのメンバであることが見出された場合、現在のレコードは、クラスタのメンバの照合閾値の範囲内にあり、そのクラスタのメンバであるとされる。現在のレコードに、関連付けられるクラスタidが割り当てられる(1153)。次に、データクラスタ180が、現在のレコードで更新される(1154)。クラスタ検索ストア170が、現在のレコードに関連付けられるクラスタ情報で更新されることが可能である(1168)。
図11Cが、1つの変数−ペアのレコードが既存のクラスタのメンバである例を与える。既存のクラスタのマスタレコード1180に、黒で塗りつぶされた円で印が付けられている。非マスタレコードが、グレーで塗りつぶされた円で示される。準重複閾値1181が、そのマスタレコードと非常に類似しており、例えば、代表的レコードストア178(クラスタストア180のいずれか)に追加されない可能性があるレコードを取り囲む。照合閾値1182が、直接の関連によってクラスタのメンバとなるだけマスタレコードと十分に類似しているすべてのレコードを取り囲む。第2互いに素なクラスタのマスタレコード1183が、そのレコードの準重複閾値境界及び照合閾値境界と一緒に示される。
現在のレコード1184は、このレコード1184が、示される2つのクラスタの照合閾値境界の外にあるので、既存のクラスタのメンバではない。このレコード1184自らの照合閾値境界1185が、1つのデータレコード1186を取り囲む。このデータレコード1186は、このデータレコード1186が照合閾値の範囲内にあるため(このため、データレコード1184がマスタレコードであるとした場合、データレコード1184に関連付けられるクラスタのメンバであることになり、この場合、データレコード1184は、マスタレコードである)、データレコード1184に関する変数−ペアデータレコードである。データレコード1186は、既にマスタレコード1180に関連付けられるクラスタのメンバであり、したがって、現在のデータレコード1184がこのクラスタに追加される。現在のデータレコードは、照合閾値1182を外れているので、現在のデータレコードがクラスタメンバシップを導き出すデータレコードに対する接続を示すようにエッジ1187が描かれる。
一部の実施例において、関連の連鎖を介するクラスタの成長を制限するのに、外側の疑わしい閾値境界1188がマスタレコード1180の周囲に引かれて、クラスタメンバが見出され得る領域を制限することが可能である。データレコード1189は、データレコード1184の照合閾値の範囲内にあり、現在、そのクラスタのメンバであるが、疑わしい閾値境界1188の外にあり、したがって、マスタレコード1180のクラスタにおけるメンバシップから除外される。そのような周辺的な変数−ペアリングが、この場合に破線で示されるとおり、ネットワークグラフにおいて区別されることも可能である。
図11Bに戻る。多くの変数−ペアのレコードが既存のクラスタのメンバであることが見出された場合、クラスタのセットは、重複排除される。1つだけの明確なクラスタが存在する場合、前述の事例が当てはまる。一実施例において、現在のレコードの1又は2以上の変数−ペアのレコードを包含するいくつかの別々のクラスタが存在する場合、各クラスタ内の最良のスコア、及び対応する照合する変数ペアのレコードが、クラスタメンバシップ判定のあいまいさ又は不確かさの証拠として記録される(1162)。最良の照合は、それぞれの別個のクラスタからの最良のスコアを比較することによって見出されることが可能である(1164)。引き分けが生じた場合、現在のレコードは、最も小さいクラスタidを有するクラスタに割り当てられる。一部の実施例において、現在のレコードは、各クラスタの相対的スコアによって決定される重みと一緒に2つ以上のクラスタの部分的メンバにされてもよい。
関連付けられるクラスタidが、現在のレコードに割り当てられる(1153)。データクラスタ180が、現在のレコードで更新される(1154)。さらに、クラスタストア170が、割り当てられたクラスタid、及びスコアを伴う代替のクラスタメンバシップペアリングのリストを含む、現在のレコードに関連付けられるクラスタ情報で更新される(1168)。
図11Dが、現在のデータレコードが別々の2つのクラスタの照合閾値の範囲内にある実施例を示す。前述の場合と同様に、データレコード1180及び1183が、別々のクラスタのマスタレコードであり、データレコード1180及び1183それぞれの準重複閾値境界及び照合閾値境界が示されている。現在のデータレコード1190が、クラスタメンバシップに関して考慮されている。現在のデータレコード1190は、照合閾値の内側に2つの変数−ペアのレコード、データレコード1193及び1194を有する。データレコード1193は、マスタレコード1180に関連付けられるクラスタのメンバであり、データレコード1194は、マスタレコード1183に関連付けられるクラスタのメンバである。クラスタとこれらの変数−ペアのレコードがともに、クラスタストア180の中に記録されることが可能である。2つの間でより良い方のスコアが、現在のデータレコード1190と変数−ペアデータレコード1193の間のスコアであるものと想定されたい。現在のデータレコード1190は、マスタレコード1180のクラスタに割り当てられ、現在のデータレコード1190のデータレコード1193とのペアリングが、黒のエッジで印を付けられる。変数−ペアデータレコード1194、及び変数−ペアデータレコード1194に関連付けられる、マスタレコード1183を有するクラスタとの代替の関連付けが、グレーのエッジによって記録され、印を付けられる。
グラフィカルユーザインターフェース104において、クラスタのネットワークが、各データレコードをノードとして表示されることが可能である。マスタレコードであるデータレコードが区別されることが可能である。クラスタ内のデータレコードのコレクションの回りに線を描くクラスタの境界が引かれることが可能である。クラスタメンバとの変数−ペアリングのお蔭でクラスタのメンバである照合境界の外にあるデータレコードが、エッジによって示されることが可能である。潜在的に、2つ以上のクラスタのメンバであるデータレコードが、強調表示されることが可能である。これらは、割り付けがクラスタ承認プロセス中にユーザによる点検を受ける可能性があるデータレコードであり、これらのデータレコードを区別して、複数のクラスタに対するこれらのデータレコードの結び付きを示すことは、ユーザがメンバシップに関して最終的な決定に達するのを助けることが可能である。ユーザ102は、ユーザインターフェース104を使用して、そのような決定を、後段で説明されるとおり、クラスタネットワークの点検の一環として、又はクラスタ承認プロセスの一環として行うことができる。
2.6.9 トークン−ペアクエリ語句に関する変数−ルックアップ手順
候補レコードが、クラスタidが検索結果によって参照されて出現する、異なるクエリの数に基づいてランク付けされることが可能である。例えば、クラスタ1が、3つのクエリに関する検索結果によって参照されることが可能であり、クラスタ10が、2つのクエリに関する検索結果によって参照されることが可能であり、クラスタ15が、4つのクエリに関する検索結果によって参照されることが可能であるといった具合である。一部の実施例において、候補レコードには、それらの候補レコードを参照する検索結果を生成したトークン−ペアクエリ語句の数対トークン−ペアクエリ語句の数の比に基づくスコアが与えられる。このスコアは、以下の式を使用して算出され得る。すなわち、
scorecandidate=QueryPairscandidate/QueryPairs
ただし、scorecandidateは、クラスタのスコアである。QueryPairscandidateは、そのクラスタを識別する検索結果を含むクエリの数である。さらに、QueryPairsは、検索ストアの中の展開されたクエリから探し出されたトークン−ペアクエリ語句の数である。
候補レコードが、スコアを候補閾値と比較することによって識別されることが可能である。例えば、クエリペアの半分が照合することが、良好なスコアであることが可能である。
一部の実施例において、いずれの候補を保持するかを決定する際に補足的な情報が使用され得る。例えば、トークン−ペアクエリ語句の数(隣接するクエリ語句、及び仲介するクエリ語句を有するクエリ語句を含む)は、クエリにおけるトークンの数Nの点で2N−3として表現され得る。この候補レコードは、M個のトークンを有し、したがって、2M−3個のトークン−ペアクエリ語句を有する。候補の良好なセットをもたらす例示的な基準は、照合したクエリペアの数が2minimum(M,N)−5以上であることを要求することである。この式の重要な特徴は、この式が、候補レコードが、クエリと比べて、より少ないトークン−ペアを有する可能性があり、したがって、より少ない照合ペアが、可能な照合を有することを要求されることを認識することである。他の式も可能である。
2.6.10 クエリ拒否処理
一部の実施例において、あまりにも多くの別々のレコードを参照する検索結果が、十分に区別する役割をしないとして破棄されることが可能である。例えば、トークン−ペアクエリ語句によって返されるレコードの最大数に関する閾値が100であることが可能であり、このことが、トークン−ペアクエリ語句が役に立たなかった場合、時間を浪費せずに適当な数の個々のレコードが採点されることを可能にする。クラスタメンバシップは、通常、2つ以上のフィールド類似性スコアによって判定される。トークン−ペアクエリ語句が、大量のクラスタを返す場合、このことは、候補のセットにわたって、トークン−ペアクエリ語句が大きく変わらない一方で、他の何らかの値が大きく変わることを意味する可能性がある。取り出されたレコードの数が閾値に達した後、トークン−ペアクエリ語句は、他の区別に役立つ情報が効果的であるほどには効果的でない可能性があるため、ドロップされることも可能である。
単独トークンクエリ語句に関して、閾値は、より低く設定されることが可能であり、場合により、10未満に設定されることが可能である。その理由は、個々の単独トークンクエリ語句が、一般に、それほど区別に役立たないことであり、事実、個々の単独トークンクエリ語句は、ペアが形成され得ない場合に1語だけのトークンを包含するレコードとの照合を検出するのに最も役立つ可能性がある。単独トークンクエリ語句が明確な照合を見つけ出すことに成功しない場合、区別するのにより役立つ他の何らかの情報を使用する方が生産的であり得る。
一部のシナリオにおいて、生のクエリが候補クエリを全くもたらさないことが可能であり、例えば、生のクエリが空白又は無効であることも可能である。又は、クエリ語句がすべて、一般的過ぎるとして拒否されることが可能であり、この場合、クエリは全く行われ得ない。両方の場合において、そのレコードは、クエリプロセスから拒否される。異なるフィールド(又はフィールドの組み合わせ)が関与する代替のクエリ構築式が、クラスタ化を駆動する役に立つクエリを作成するのに使用され得る。いずれのクエリ式の下でレコードがクラスタ化されたかを示すクラスタ戦略識別子が、レコードに印を付けるのに使用されてもよい。
例えば、第1クラスタ化が、政府によって割り当てられた識別子に基づいており、多数のレコードが、例えば、すべて0のデフォルトの値を有するものと想定されたい。すべて0の政府によって割り当てられた識別子で(名前や生年月日のような他のフィールドで異なって)100のクラスタが形成された後、後続のレコードは、拒否される。一部の実施例において、一般的過ぎるクエリ語句を共有するすべてのレコード、又は代表的レコードのより小さいセットが、既にクラスタ化されたレコード、及びそれらのレコードのクラスタのその他のメンバを含め、抽出される。レコードのこのコレクションが、新たなクラスタ戦略を使用して再クラスタ化される。各レコードに関する、古い戦略の下におけるオリジナルクラスタidは、後の使用のために保存されることが可能である。この例において、名前に基づくクエリを使用する新たなクラスタ戦略は、レコードのこのセットに関して、区別するのにより役立つ可能性が高く、政府によって割り当てられた識別子のクラスタ戦略が失敗した場合にレコードをクラスタ化するのに使用され得る。一般に、クエリを構築するのに使用すべきフィールドは、区別するのに最も役立つものから区別するのに最も役立たないものの順に選択される。不完全なレコードは、区別するのにそれほど役立たず、潜在的に、あいまいなクラスタメンバシップ判定につながり、したがって、それらのレコードが、完全に入力されたレコードとは別にクラスタ化されることが有用である。
第2クラスタ戦略の下でクラスタ化する際、一般的過ぎるクエリをセグメント値として使用することが有用であり得る。このことにより、一般的なクエリ値を共有するセットからのレコードに対してクラスタ化が制限される。第2クラスタ化の後、古いクラスタidと新たなクラスタidの複数照合調整が使用されることが可能である。最初のクラスタ化と2番目のクラスタ化は、クラスタ戦略の選択がクラスタメンバシップ判定に影響を与え得るため、異なるレコードセットをクラスタに割り当てる可能性がある。複数照合調整は、それらの異なる戦略の下におけるクラスタをマージしようと試みる。複数照合調整の詳細は、異なるが、関連付けられる脈絡において後段で説明される。
一部の実施において、検索ストア146は、異なるフィールド(又はフィールドの組み合わせ)を使用するクエリに対応する複数の検索−展開手順に関する検索エントリを包含することが可能である。例えば、検索ストア146は、政府によって割り当てられた識別子クエリに基づくクラスタに関するエントリを包含することが可能である。これらの検索−ストアエントリが、名前ベースのクエリに関して、同一のクラスタidキーを保持して、再展開され得る。つまり、政府によって割り当てられた識別子クエリを使用してクラスタ化することによって導き出されたデータクラスタをデータソースとして使用して、名前ベースのクエリ表現のための検索エントリが、展開され得る。このことは、検索ストアにインデックスを付け直すことに相当する。既存のクラスタのセットに、新たなクエリ戦略のためにインデックスが付け直された場合、拒否されたレコードを処理することは、関連付けられるレコードを抽出して、再処理することを要求せず、新たなクエリのためにインデックスが付け直された検索ストアを使用するフレッシュなクラスタ化実行として進められることが可能である。
2.6.11 複数照合調整
図12で、複数照合調整ステップ手順が図示される。クラスタがベクトル化された形態で保持される場合、つまり、複数クラスタメンバが、単一のレコードの中で一緒に保持される場合、それらのクラスタメンバが、個々のレコードに正規化される(1200)。これらのレコードが、一意のレコードキーで分割される(1202)。このことが、それぞれのオリジナルデータレコードのすべてのレプリカントが同一のパーティションの中に入っていることを確実にする。それらのデータレコードが、レコードキーでロールアップされて、レコードに関連付けられる別々のクラスタキーのベクトルが得られる(1204)。1つのクラスタキー、例えば、最小のクラスタキーが、選好されるものとして選択される。次に、このベクトルが、選好される(この場合は、最小の)クラスタキーを他それぞれの別個のクラスタキーとペアにする、クラスタキーペアに正規化される(1206)。次に、推移閉包が、すべてのクラスタキーペアのセットに適用される。このことは、接続されたクラスタキーペアの各ネットワークに対する、つまり、各クラスタに対する1つのクラスタキーの割り当てをもたらし(1208)、次に、このクラスタキーが、各一意のデータレコードに割り当てられる(1210)。
複数照合リコンサイラ165の一実施例が、図13A〜図13Cに図示される。図13Aで、複数のパーティション上のレコードのクラスタ510が、個々のレコード1321に正規化される(1320)。最初のクラスタ1300において、k1が、2つのレコードを包含するクラスタのクラスタidである。これらのレコード1310の最初のレコードが、セグメントキー「135」、id「123456」、及びレコードキー「r1」を有する。正規化の後、クラスタキーk1が、レコード1310に追加され、セグメントキーがドロップされて、レコード1322がもたらされる。次に、正規化されたレコード1321が、レコードキー1324で再分割される。結果1326は、レコードキーを共有するすべてのレコードが同一のパーティション内に存在することである。
図13Bで、レコード1326が、レコードキー1328でロールアップされて、クラスタキーのベクトル1330をそれぞれが包含する、一意のレコードキーを有するレコードがもたらされる。例えば、レコード1331が、レコードキー「r1」を有する一意のレコードである。レコード1331は、id「123456」と、2つのクラスタidのベクトル「[k1,k2]」を有する。クラスタキーのペアが形成される。この場合、これらのクラスタキーは、既にペアである。ベクトルがより長い、例えば、「[k1,k2,k5]」である場合、ペアは、以下のベクトル、すなわち、「[k1,k2]」、「[k2,k5]」における隣接する要素から形成される。推移閉包1332が、接続されたペアの各セットに関して一意の代表的クラスタキーを選択するように適用されて、結果としてのペアリング1334が与えられる。
図13Cで、レコード1330に、推移閉包1332から得られたマッピング1334を使用して一意のクラスタキーが割り当てられる。これらのレコードが、クラスタキー1340で再分割されて、クラスタキーにわたってロールアップされてデータクラスタ530にされる。
2.6.12 クラスタ承認プロセス
一部の実施例において、マスタレコードが、クラスタ化の後に行われるクラスタ承認プロセスの一環として、クラスタのメンバの中からユーザによって指定されることが可能である。クラスタは、2つ以上のマスタレコードを有し得る。同一のクラスタidを有する複数のマスタレコードが、クラスタシーケンス番号で区別される。
クラスタ承認プロセスは、UIを介して、レコードのクラスタへのグループ化を点検し、所望に応じて変更を行う機会をユーザに与える。例えば、ユーザが、クラスタ中のいずれのレコード、又はいずれの複数のレコードがマスタレコードとして指定されるかを変更することを所望する可能性がある。マスタレコードは、クラスタの特別の代表の役割をし、詳細には、マスタレコードは、ときとして、表示のために使用されることが可能であり、ときとして、検索ストアエントリが形成されるマスタレコードとして使用されることが可能である。ユーザが、クラスタの最初のメンバ以外、又はクラスタの重心以外の何らかのレコードが、場合により、そのレコードが、そのレコードのフィールドのいくつかの中でより良好な値(ユーザに対して)を有するため、より良好な代表であると感じることが可能である。一部の実施例において、マスタレコードが変更されると、マスタレコードストアが、新たなマスタレコードを追加し、前のマスタレコードを無効にする、又は削除することによって変更されることが可能である。検索ストアがマスタレコードに基づく場合、検索ストアは、新たなマスタレコードに対応するエントリを追加し、さらに古いマスタレコードと関係するエントリを無効にする、又は削除するように変更される。
また、ユーザが、1つのクラスタのクラスタidが別のクラスタのクラスタidの値に再マップされるべきことを手動で示すことによって、2つのクラスタをマージすることを選択することも可能である。例えば、会社名に基づくクラスタ化に関して、ユーザが、2つのクラスタ上の会社名が同一の法人を表し、同一のクラスタの中に一緒に保持されるべきことを認識することが可能である。クラスタid125が、「HSBC」に関するレコードを保持することが可能である一方で、クラスタid192が、「Midland Bank」に関するレコードを保持する。これらの名前は、類似性採点規則の下で照合ではないが、ユーザは、Midland BankがHSBCによって買収されていることを知っており、Midland BankとHSBCを一緒にクラスタ化することを所望する。ユーザが、クラスタid192がクラスタid125に再マップされるべきことを示すことが可能である。一部の実施例において、クラスタ承認変更が処理されると、マスタレコードストアが、クラスタid192を有するプライマリレコードのクラスタidを125に変更し、クラスタシーケンスを次に大きい未使用の値に設定するように変更されることが可能である。また、マスタレコードに関連付けられる検索ストアエントリが、cluster_idを192から125に変えるように変更されることも可能である。将来のクラスタ化において、「Midland Bank」という名前を有するレコードは、クラスタid125において候補を見出し、クラスタid125において「HSBC」レコードと一緒にクラスタ化されることが可能である。
ユーザが、クラスタを同様の様態で分割することを選択することが可能である。一部の実施例において、レコードには、新たなクラスタのメンバであるという印が付けられることが可能である。クラスタ承認変更が処理されると、そのレコードが、新たなクラスタのマスタレコードとしてマスタレコードストアに追加されることが可能であり、そのレコードから入力された検索−エントリが、検索ストアに追加されることが可能である。
一部の実施例において、検索ストアエントリは、すべてのクラスタメンバから生成されたエントリの互いに素な合併で入力され、つまり、そのクラスタの何らかのメンバによる検索−エントリ展開手順によって生成されたそれぞれの別個のエントリが、そのクラスタに結び付けられたインデックスにおけるエントリとして保持される。このことは、そのクラスタの多様性を検索プロセスに公開するのに役立つ。
一部の実施例において、さらなる情報が、候補の存立可能性の評価を容易にするように検索ストアの中に格納されることが可能である。例えば、企業名又は個人名のような複数語フィールドの中のトークンの数が、検索ストアの中に格納されることが可能である。
図14A〜図14Bは、クラスタ承認プロセスをより詳細に図示する。図14Aで、データクラスタ180からのレコードが読み取られ(1401)、データクラスタレコードからのクラスタid及び他の情報を含む、選択されたデータクラスタのすべてのメンバに関するレコードを包含する承認ワークシートが入力される。一部の実施例において、承認シートにおける列は、いずれのレコードが確認され、いずれのレコードがマスタレコードであるかを示すように入力され得る。ユーザ102が、承認変更を指定するようにユーザインターフェース104を介して承認ワークシートを閲覧し、編集することができる(1420)。
承認ワークシートに対してユーザ102によって(又は何らかの自動的プロセスを介して)行われた変更が、変更された承認ワークシートをオリジナルワークシートと比較することによって検出される(1430)。
一部の実施例において、ユーザ102が、レコードをクラスタのメンバとして確認することが可能であり、確認した場合、そのレコードは、将来、クラスタ化に差し出された場合、さらなる処理なしに現在のクラスタidを受け取る。一部の実施例において、更新手順1432が、確認済み又は除外済みのストア172にレコードの一意参照キーを現在のクラスタidと一緒に追加し(1433)、そのレコードに確認済みとして印を付けることによって、このことを実現する。また、ユーザが、以前に確認されたレコードの確認を取り消すことも可能であり、確認を取り消した場合、そのレコードは、確認済み又は除外済みのストア172から削除される、又は更新手順によって無効にされたという印が付けられることが可能である(1432)。
一部の実施例において、ユーザが、レコードを、クラスタのメンバとして除外することが可能であり、除外した場合、そのレコードは、将来、クラスタ化に差し出された場合、さらなる処理なしに、現在のクラスタidを有するクラスタにおけるメンバシップを阻止される。このことは、そのレコードに関する次善のクラスタを見つけ出すようクラスタ化アルゴリズムを仕向ける機構として使用され得る。一部の実施例において、除外は、確認と類似したプロセスによって達せられる。更新手順1432が、レコードの一意参照キーを現在のクラスタidと一緒に確認済み又は除外済みのストア172に追加して(1433)、レコードに除外されたという印を付ける。ユーザが、前に除外されたレコードの除外を取り消すことが可能であり、除外を取り消した場合、そのレコードは、確認済み又は除外済みのストア172から削除される、又は更新手順によって無効にされたという印が付けられることが可能である(1432)。
一部の実施例において、いずれのレコードがクラスタのマスタレコードであるかが変更されることが可能である。新たなマスタレコードは、更新されたマスタレコードストア1440の中に格納されることが可能であり、古いマスタレコードは、マスタレコードストア1440から削除される又は無効にされることが可能である。
一部の実施例において、レコードに、新たなクラスタに再マップされるように印が付けられることが可能である。このことは、既存のクラスタを分割する効果を有する。そのような印が付けられたレコードには、新たなクラスタidが割り当てられ(1438)、更新されたマスタレコードストア1440の中に新たなクラスタのマスタレコードとして格納される。現在のクラスタのマスタレコードに対してよりも、印の付けられたレコードの方に近いレコードは、後続のステップでレコードが再処理される際に、印が付けられたレコードと一緒にクラスタ化されるので、選択されたレコードにそのように印が付けられるだけでよい。
一部の実施例において、レコードが既存のクラスタに再マップされることが可能である。このことは、2つのクラスタをマージする効果を有する。例えば、クラスタid192を有するレコード「Midland Bank」が、「HSBC」クラスタ125に再マップされて、その結果、これらのクラスタがマージされることが可能である。既存のクラスタにレコードをマージする際、そのレコードには、既存のクラスタidが割り当てられることが可能であり、そのレコードは、そのクラスタに関する新たな、さらなるマスタレコードとなる。一部の実施例において、クラスタの異なるマスタレコードが、クラスタシーケンス番号で区別されることが可能である。新たなマスタレコードがクラスタに追加されると、最高のクラスタシーケンス番号がインクリメントされてから(1436)、そのレコードが、更新されたマスタレコードストア1440に追加される。
確認済み又は除外済みのストア172及び更新されたマスタレコードストア1440に適切な更新が行われた後、それらの変更によって潜在的に影響を受けるすべてのレコードが、データクラスタ180から抽出されて(1434)、影響を受けるレコードのデータセット1450がもたらされることが可能である。一部の実施例において、影響されるレコードは、変更が開始されたクラスタの中の、又はレコードが再マップされているクラスタの中のすべてのレコードを抽出することによって識別されることが可能である。その理由は、これらのクラスタの中のレコードがすべて、クラスタメンバシップに関係のある意味で比較的近く、それでも、これらのクラスタのメンバに対する変更が他のクラスタにおけるメンバシップ判定に影響を与えないだけ十分に他のクラスタの中のレコードから離れていることである。
図14Bで、クラスタ承認変更による影響を受けるレコードを再クラスタ化するプロセスが図示される。影響を受けるレコード1450が読み取られ(1451)、検索ストア及び代表ストアに適用されて、影響を受けるレコードの中のクラスタに関連付けられるすべてのレコードが(確認されたレコード以外)削除されて(1452)、縮小された検索ストア1456及び縮小された代表ストア1458がもたらされる。このことは、事実上、影響を受けるレコードに関して、確認済み又は除外済みのストア172及び更新されたマスタレコードストア1440が既に入力されていること以外は、クラスタ化プロセスを初期状態に戻す。影響を受けるレコード1450は、確認済み又は除外済みのストア172、更新されたマスタレコードストア1440、縮小された検索ストア1456、及び縮小された代表ストア1458を使用して、図9におけるとおり読み取られ(1459)、再クラスタ化される。
確認されたレコードには、それらの既存のクラスタidが割り当てられる。マスタレコードである、影響を受けるレコードは、それらのレコード自体との厳密な照合であり、それらのレコードに関連付けられるクラスタidを割り当てられる。除外されるレコードは、特定のクラスタから阻止され、適宜、他のクラスタに割り当てられる。この割り当ては、影響を受けるクラスタの中にないクラスタに対して行われることが可能であり、そうされる可能性が高い。そのような再割り当てが可能であるのは、更新されたマスタレコードストア1440、縮小された検索ストア1456、及び縮小された代表ストア1458が、他のすべてのクラスタに関するレコードを包含し、したがって、それらの他のクラスタに対する照合及び割り当てが可能であるためである。他のすべてのレコードは、通常のクラスタメンバシップ判定プロセスがそれらのレコードを連れて行く先に向かう。前のクラスタのレコードと比べて、再マップされたレコードとより類似しているレコードは、再マップされたレコードのクラスタに割り当てられる。このことは、クラスタを分割することと、マージすることの両方に関して行われる。
レコードが処理されるにつれ、縮小された検索ストア1456及び縮小された代表ストア1458が再入力されて(1464)、更新された検索ストア1466及び更新された代表ストア1468がもたらされる。クラスタメンバシップ判定の結果が、変更された、影響を受けるデータクラスタのデータセットに書き込まれる(1480)。この結果がオリジナルデータクラスタ180と比較されて(1482)、データクラスタ差が見出されることが可能である(1484)。一部の実施例において、クラスタの前と後のリスト又はグラフ画像が、ユーザインターフェース104においてユーザ102に示されることが可能である。次に、ユーザ102が、さらなる承認変更を行い、このプロセスを繰り返すことによって反復することを選択すること、又はそれらの変更を破棄して、やり直すことを選択することが可能である。ユーザが承認変更に満足した場合、確認済み又は除外済みのストア172、マスタレコードストア174、検索ストア146、及び代表的レコードストア178を含むデータクラスタ180及びクラスタストア170が、新たなデータソースの将来のクラスタ化のために使用されるように公開されることが可能である。
3 遠隔システムに照らしたクラスタ化
孤立した遠隔クラスタ化システム、詳細には、データを全くエクスポートしない遠隔クラスタ化システムにおいて保持されるデータクラスタに照らしてレコードをクラスタ化することが、インクリメンタルモードにおけるクラスタメンバシップ手順の変更によって扱われることが可能である。必須の要件は、クエリに加えて、起点システム上のクラスタ化プロセス中に見出されたいくらかのさらなるデータが、遠隔クラスタ化システムに送られなければならないことである。このさらなるデータは、起点システム上の変数の範囲を代表する、トークンのレベルと候補レコードの両方のレベルで変数である。これらの変数が、遠隔システム上で包括的検索及びクラスタ照合を行うことを要求される。
クエリには、2つの形態があり得る。クエリは、クエリレコードから形成されたクエリであることが可能であり、その場合、そのクエリレコードがそのクエリと一緒に送られる。又は、クエリは、関連付けられるクエリレコードを全く有さない孤立したクエリであることが可能であり、その場合、そのクエリ自体だけが単に送られる。このことは、このプロセスにおいて後に候補照合レコードの採点に影響を与える。
トークンに関して、起点システムにおける各トークンが、遠隔システムにおいて、起点システムに存在しない変数トークンを有することが可能である。これらの新たな変数を見つけ出すのに、起点クラスタ化プロセスに参加するトークンと関係するすべての変数が、遠隔システムに送られなければならない。一部の実施例において、トークンの変数の全範囲を捕捉するのに、オリジナルの展開されたクエリにおけるトークンとペアにされたすべてのトークン−代表に対応するトークンの集められた近隣が取り出され、遠隔クラスタ化システムに送られる。遠隔システム上で、これらのオリジナルのトークンが変数プロファイラストア及び変数ネットワークストアに追加されて、オリジナルのシステムと遠隔システムの間で新たな変数ペアリングが判定され、更新された変数プロファイラストア及び変数ネットワークストアが書き込まれる。トークン−代表が、更新された変数ネットワークストアにおいて形成される。トークン−代表は、検索ストアにこれらのトークン−代表でインデックスが付けられるため、遠隔システム上で最初に作成されたままでなければならない。新たなオリジナルの変数トークン、すなわち、遠隔変数プロファイラストアにも、遠隔変数ネットワークストアにも既に存在しているわけではない起点システムからのトークンは、既存のトークン−代表近隣に追加される。
すべてのオリジナルの変数を送る同様の要件が、適切に照合する候補レコード、すなわち、クエリに適切な選択基準を満たす候補レコードが特定された後に、代表的レコードストアから取り出される代表的レコードに適用される。これらの代表的レコードは、それらのクエリ選択基準を満たす起点システム上のレコードの多様性を範囲に含む。これらのレコードそれぞれが、さもなければ検出されないままになる可能性がある遠隔システム上の変数ペアリングを見つけ出すことが可能である。
クエリと関係する変数トークンと代表的レコードの両方が、クエリと一緒に遠隔システムに送られる場合、インクリメンタルモードにおける前述したクラスタメンバシップ手順が、指定された選択基準によりクエリと照合するすべてのレコードを取り出すように適用されることが可能である。一部の応用例、例えば、詐欺検知又は法科学捜査において、クエリと関係するレコードを取り出すための選択基準は、クラスタメンバシップを判定するのに使用されるクラスタメンバシップ基準とは異なることが可能である。クラスタメンバシップは、通常、偽陽性識別、つまり、レコードを誤ったクラスタに入れることを回避するように、より制限的な基準を優先させるのに対して、法科学クエリは、偽陰性、つまり、照合であるべきレコードを見逃すことを回避するように、より緩い基準を優先させる。
図15A〜図15Cで、遠隔クラスタ化システムに照らして行われるクエリの例が図示される。図15Aで、ユーザインターフェース104Aを使用するユーザA 102Aが、クエリ1500をローカルクラスタ化システムにサブミットする。一部の実施例において、変数プロファイラストア115Aからのレコードを利用して、生のクエリにおける各トークンとペアにされる変数トークンを見つけ出し、変数ネットワークストア126Aからのレコードを利用して、例えば、展開されたクエリにおいて変数トークンに取って代わるべきトークン−代表を探し出して、そのクエリが展開されることが可能である(1510)。前述したとおり、変数ネットワークストア126Aにおけるそれらのトークンに関するトークン−代表の近隣は、選択された変数ネットワークレコードとして抽出され、保持される(1514)。選択された変数ネットワークレコードにおけるすべてのトークンが、変数プロファイラストア115Aから抽出され(1515)、選択された変数プロファイラレコードとして保持される(1516)ことが可能である。
生の候補が、検索ストア146Aを使用して、展開されたクエリから見つけ出される(1520)。使用される検索エントリが、選択された検索エントリにおいて保持されることが可能である(1522)。クエリ選択基準が、生の候補レコードに適用されて(1530)、候補レコードが選択される。候補レコードが存在する場合、それらの候補レコードに関連付けられるクラスタに包含される代表的レコードが、代表的レコードストア178Aから取り出され(1540)、選択された代表的レコードとして保持される(1542)。クエリ1500、及び、存在する場合、様々な選択されたレコード1514、1516、及び1542が、遠隔クラスタ化システムによる処理のために遠隔クラスタ化システムに送られて、受信される(図示せず)。
図15Bで、受信し、選択された変数プロファイラレコード1516が、遠隔システム上の変数プロファイラストア115Bを更新するのに使用されて(1551)、更新された変数プロファイラストア1552がもたらされる。一部の実施例において、このことは、このクエリの目的に限って使用される一時的更新であり得る。受信し、選択された変数ネットワークレコード1514、及び更新された変数プロファイラストア1552が、変数ネットワークストア126Bを更新するのに使用されて(1553)、更新変数ネットワークストア1554がもたらされる。
図15Cで、受信したクエリ1500及び受信した、選択された代表的レコード1542が読み取られる。生のクエリが、それぞれの選択された代表的レコードから形成され、オリジナルクエリと一緒に、更新変数プロファイラストア1552及び更新された変数ネットワークストア1554を使用して、展開されたクエリに展開される(1510)。生の候補レコードが、遠隔検索ストア146Bの中で見つけ出される(1560)。クエリ選択基準が、生の候補レコードに適用されて、それらの選択基準を満たす候補レコードが見つけ出される(1565)。フィルタが適用される(1567)。候補が全く存在しない場合、そのことが、ユーザインターフェース104Bを介してユーザ102Bに報告される。
候補が存在する場合、それらの候補が、代表的レコードストア178Bの中のそれらの候補に対応するクラスタから代表的レコードを取り出すのに使用され、それらの代表的レコードが、次に、現在のクエリレコードに照らして、つまり、オリジナルクエリレコード、又は現在のクエリが形成される元となったオリジナルの代表的レコードに照らして採点される。オリジナルクエリ自体が関連付けられるクエリレコードを有さなかった場合、すべての代表的レコードがとられる。一部の実施例において、オリジナルクエリに関連付けられるクエリレコードが存在する場合、そのクエリレコードもまた、取り出された代表的レコード178Bに照らして採点され、そのスコアが、現在のクエリレコードと代表的レコードの間のスコアと一緒に報告される。
現在のクエリレコードと代表的レコード178Bの間のもたらされるスコアが、クエリ照合基準と比較され、それらの照合基準が満たされた場合(1575)、データクラスタレコードが、遠隔データクラスタ180Bから取り出されて(1577)、クエリ結果として格納される(1580)。次に、それらのクエリ結果が、ユーザインターフェース104Bを介してユーザ102Bに報告される。
4 実施例
前述したクラスタ化技法、セグメント化技法、及び並列化技法は、コンピュータ上で実行されるソフトウェアを使用して実施され得る。例えば、このソフトウェアが、少なくとも1つのプロセッサと、少なくとも1つのデータストレージシステム(揮発性メモリ及び不揮発性メモリ、及び/又は記憶素子を含む)と、少なくとも1つの入力デバイス又は入力ポートと、少なくとも1つの出力デバイス又は出力ポートとをそれぞれが含む、1又は2以上のプログラミングされた、又はプログラマブルなコンピュータシステム(分散型、クライアント/サーバ型、又はグリッド型などの様々なアーキテクチャのものであり得る)上で実行される1又は2以上のコンピュータプログラムにおける手順を形成する。このソフトウェアは、例えば、データフローグラフのデザイン及び構成と関係する他のサービスを提供するより大きいプログラムの1又は2以上のモジュールを形成することが可能である。そのグラフのノード及び要素は、コンピュータ可読媒体の中に格納されたデータ構造として、又はデータリポジトリの中に格納されたデータモデルに準拠する他の編成されたデータとして実装され得る。
このソフトウェアは、汎用、若しくは専用のプログラマブルコンピュータによって読み取られ得る、CD−ROMなどの記憶媒体上で提供されることが可能であり、又はネットワークの通信媒体を介して、このソフトウェアが実行されるコンピュータの記憶媒体に伝送される(伝搬される信号内に符号化されて)ことが可能である。これらの機能のすべてが、専用のコンピュータ上で、又は、コプロセッサなどの専用のハードウェアを使用して実行されることが可能である。このソフトウェアは、このソフトウェアによって指定される計算の異なる部分が異なるコンピュータによって実行される分散された様態で実装されることが可能である。それぞれのそのようなコンピュータプログラムは、好ましくは、汎用、又は専用のプログラマブルコンピュータによって読み取られることが可能な記憶媒体又はストレージデバイス(例えば、ソリッドステートメモリ又はソリッドステートメディア、又は磁気媒体又は光媒体)の上に格納され、又はダウンロードされて、その記憶媒体又はストレージデバイスがそのコンピュータシステムによって読み取られると、本明細書で説明される手順を実行するようにそのコンピュータを構成する、又は動作させるようにする。また、本発明のシステムは、コンピュータプログラムを備えて構成されたコンピュータ可読記憶媒体として実装されると考えられることも可能であり、ただし、そのように構成された記憶媒体は、コンピュータシステムが、本明細書で説明される機能を実行する特定の、事前定義された様態で動作するようにさせる。
本発明のいくつかの実施形態が説明されてきた。それでも、本発明の趣旨及び範囲を逸脱することなく、様々な変数形態が作成され得ることが理解されよう。例えば、前述したステップのうちいくつかは、順序に依存しないことが可能であり、このため、前述した順序とは異なる順序で実行されることが可能である。
以上の説明は、添付の特許請求の範囲において規定される本発明の範囲を例示することを意図しており、限定することは意図していないことを理解されたい。例えば、前述したいくつかの機能ステップは、全体的な処理に実質的に影響を与えることなしに、異なる順序で実行されることが可能である。その他の実施形態が、以下の特許請求の範囲に含まれる。

Claims (40)

  1. 第1処理エンティティによって第1オリジナルレコードセットを処理して、前記オリジナルレコードと該オリジナルレコードそれぞれの1又は2以上のコピーとを含む第2レコードセットを生成することであって、それぞれのオリジナルレコードが1又は2以上のフィールドを含み、前記オリジナルレコードの少なくともいくつかの各レコードを処理することが、
    前記オリジナルレコードの少なくとも1つのコピーを生成すること、及び
    前記オリジナルレコードに第1セグメント値を関連付けるとともに、前記コピーに第2セグメント値を関連付け、前記第1セグメント値が、前記オリジナルレコードそれぞれのフィールドの1又は2以上のデータ値の第1ポーションに対応し、前記第2セグメント値が、前記第1ポーションとは異なる前記オリジナルレコードの前記それぞれのフィールドの1又は2以上のデータ値の第2ポーションに対応することを含み、
    前記第2セットの中の前記レコードに関連付けられる前記セグメント値に基づいて、複数の受信側処理エンティティの間で前記第2レコードセットを分割し、各受信側処理エンティティにおいて、前記受信側処理エンティティにおいて受信した前記レコードの1又は2以上のデータ値に基づいて結果を生成する操作を実行することを含む方法。
  2. 第1セグメント値が、第1データ値の中の文字の第1位置セットから取り出した第1フィールドの前記第1データ値からの第1シーケンスの文字に対応し、第2セグメント値が、前記第1データ値の中の前記文字の第2位置セットから取り出した前記第1データ値からの第2シーケンスの文字に対応する、請求項1に記載の方法。
  3. 第1位置セットが、第2位置セットとは重なり合わない、請求項2に記載の方法。
  4. 第1位置セットが、データ値の最初の文字に対する偶数位置であり、第2位置セットが、前記データ値の前記最初の文字に対する奇数位置である、請求項3に記載の方法。
  5. セグメント値をレコードに関連付けることが、前記関連付けられたセグメント値を前記レコードの新たなフィールドに書き込むことを含む、請求項1に記載の方法。
  6. 受信側処理エンティティにおいて受信したレコードの1又は2以上のデータ値に基づいて操作を実行することが、第1レコードの1又は2以上のデータ値の中で出現する文字ストリングと、少なくとも第2レコードの1又は2以上のデータ値の中で出現する文字ストリングとを照合し、一致を判定することを含む、請求項1に記載の方法。
  7. 照合が、近似照合である、請求項6に記載の方法。
  8. 近似照合が、照合されるストリングが、指定された編集距離まで異なることを許容する、請求項7に記載の方法。
  9. 近似照合が、第1レコードのデータ値と第2レコードのデータ値の間の許容される差分を定義する照合基準に基づき、それぞれのオリジナルレコードに関して、1又は2以上のデータ値の第1ポーション、及び前記1又は2以上のデータ値の第2ポーションが、前記許容される差分のいずれかによる前記1又は2以上のデータ値の変更に応答して、第1セグメント値又は第2セグメント値の少なくとも1つは変化しないように選択される、請求項7に記載の方法。
  10. 許容される差分が、第1レコードのデータ値の中で出現する第1文字ストリングと第2レコードのデータ値の中で出現する第2文字ストリングの間の差分を含む、請求項9に記載の方法。
  11. 許容される差分が、第1レコードのデータ値の中で出現する第1バイナリ値と第2レコードのデータ値の中で出現する第2バイナリ値の間の差分を含む、請求項9に記載の方法。
  12. 受信側処理エンティティにおいて受信したレコードの1又は2以上のデータ値に基づいて操作を実行することが、代替キー割り当てを含む、請求項1に記載の方法。
  13. 受信側処理エンティティで生成される結果が、前記受信側処理エンティティにおいて受信した各レコードに関して、前記レコードの1又は2以上のデータ値に基づく割り当てられた代替キーで拡張された前記レコードを含む、請求項12に記載の方法。
  14. 受信側処理エンティティにおいて受信したレコードの1又は2以上のデータ値に基づいて操作を実行することが、前記受信したレコードを1又は2以上のクラスタにクラスタ化することを含む、請求項1に記載の方法。
  15. 受信側処理エンティティにおいて生成される結果が、前記受信側処理エンティティにおいて受信した各レコードに関して、前記レコードの1又は2以上のデータ値、及び前記受信側処理エンティティにおいて受信したその他のレコードの少なくともいくつかのレコードの1又は2以上のデータ値に基づく割り当てられたクラスタで拡張された前記レコードを含む、請求項14に記載の方法。
  16. 操作が、代替キー割り当て、クラスタ化、ロールアップ、又は結合の少なくとも1つを含む、請求項1に記載の方法。
  17. 第1セグメント値が、オリジナルレコードそれぞれのフィールドの複数データ値の第1ポーションに対応し、第2セグメント値が、前記第1ポーションとは異なる前記オリジナルレコードそれぞれのフィールドの複数データ値の第2ポーションに対応する、請求項1に記載の方法。
  18. 第2処理エンティティにおいて各受信側処理エンティティからの結果を受信すること、及び冗長な結果を削除するように前記受信した結果を処理することをさらに含む、請求項1に記載の方法。
  19. 第2レコードセットが、オリジナルレコードとオリジナルレコードそれぞれの少なくとも1つのコピーとを含む、請求項18に記載の方法。
  20. 冗長な結果を削除するように受信した結果を処理することが、オリジナルレコードに関連付けられる第1結果、又は前記オリジナルレコードのコピーに関連付けられる第2結果の最大で1つを選択することを含む、請求項19に記載の方法。
  21. 第1処理エンティティにおいて各受信側処理エンティティからの結果を受信すること、及び冗長な結果を削除するように前記受信した結果を処理することをさらに含む、請求項1に記載の方法。
  22. 各受信側処理エンティティが、それぞれ操作を独立に実行する、請求項1に記載の方法。
  23. 受信側処理エンティティの数が、それぞれのオリジナルレコード、及び前記オリジナルレコードのコピーに関連付けられる異なるセグメント値の最小値と少なくとも等しい、請求項1に記載の方法。
  24. 処理エンティティが、マルチコアプロセッサにおけるコアであり、さらに第1処理エンティティが、第2レコードセットから分割されたレコードを、前記マルチコアプロセッサにおける相互接続ネットワークを介して受信側処理エンティティに送信する、請求項1に記載の方法。
  25. 処理エンティティが、マルチプロセッサコンピュータシステムにおけるプロセッサであり、さらに第1処理エンティティが、第2レコードセットから分割されたレコードを、前記マルチプロセッサコンピュータシステムにおける相互接続ネットワークを介して受信側処理エンティティに送信する、請求項1に記載の方法。
  26. 処理エンティティが、ラックマウント型サーバシステムにおけるサーバコンピュータであり、さらに第1処理エンティティが、第2レコードセットから分割されたレコードを、前記ラックマウント型サーバシステムにおける相互接続ネットワークを介して受信側処理エンティティに送信する、請求項1に記載の方法。
  27. 処理エンティティが、ネットワークを介して通信状態にあるコンピュータシステムであり、さらに第1処理エンティティが、第2レコードセットから分割されたレコードを、前記ネットワークを介して受信側処理エンティティに送信する、請求項1に記載の方法。
  28. コンピュータ可読記憶媒体上に格納されたコンピュータプログラムであって、
    コンピューティングシステムに、
    第1処理エンティティによって第1オリジナルレコードセットを処理して、前記オリジナルレコードと該オリジナルレコードそれぞれの1又は2以上のコピーとを含む第2レコードセットを生成させ、それぞれのオリジナルレコードが1又は2以上のフィールドを含み、前記オリジナルレコードの少なくともいくつかの各レコードを処理することが、
    前記オリジナルレコードの少なくとも1つのコピーを生成すること、及び
    前記オリジナルレコードに第1セグメント値を関連付けるとともに、前記コピーに第2セグメント値を関連付け、前記第1セグメント値が、前記オリジナルレコードそれぞれのフィールドの1又は2以上のデータ値の第1ポーションに対応し、さらに前記第2セグメント値が、前記第1ポーションとは異なる前記オリジナルレコードの前記それぞれのフィールドの1又は2以上のデータ値の第2ポーションに対応することを含み、さらに、
    前記第2セットの中の前記レコードに関連付けられる前記セグメント値に基づいて、複数の受信側処理エンティティの間で前記第2レコードセットを分割させ、各受信側処理エンティティにおいて、前記受信側処理エンティティにおいて受信した前記レコードの1又は2以上のデータ値に基づいて結果を生成する操作を実行させるための命令を含む、コンピュータプログラム。
  29. 第1オリジナルレコードセットを処理して、前記オリジナルレコードと該オリジナルレコードそれぞれの1又は2以上のコピーとを含む第2レコードセットを生成するように構成された第1処理エンティティであって、それぞれのオリジナルレコードが1又は2以上のフィールドを含み、
    前記オリジナルレコードの少なくともいくつかの各レコードを処理することが、
    前記オリジナルレコードの少なくとも1つのコピーを生成すること、及び
    前記オリジナルレコードに第1セグメント値を関連付けるとともに、前記コピーに第2セグメント値を関連付け、前記第1セグメント値が、前記オリジナルレコードそれぞれのフィールドの1又は2以上のデータ値の第1ポーションに対応し、さらに前記第2セグメント値が、前記第1ポーションとは異なる前記オリジナルレコードそれぞれのフィールドの1又は2以上のデータ値の第2ポーションに対応することを含む、第1処理エンティティと、
    前記第2セットの中の前記レコードに関連付けられる前記セグメント値に基づいて分割された前記第2レコードセットそれぞれのサブセットを受信する複数の受信側処理エンティティとを含み、各受信側処理エンティティが、前記受信側処理エンティティにおいて受信した前記レコードの1又は2以上のデータ値に基づいて結果を生成する操作を実行するように構成される、コンピューティングシステム。
  30. 第1処理エンティティによってレコードセットを複数のレコードサブセットに分割すること、及び
    それぞれの異なる受信側処理エンティティによって前記レコードセットの異なるサブセットを処理して、結果を、前記受信側処理エンティティそれぞれがアクセスできるデータストレージの中に格納することを含み、各受信側処理エンティティによって処理することが、
    前記レコードの1又は2以上のフィールドの1又は2以上の値と、前記受信側処理エンティティによって保持されるローカル参照情報内のエントリ又はその他の受信側処理エンティティのいずれかによって供給された前記データストレージ内のエントリとを近似照合し、おおよそ一致しているか否か判定することに基づいて、前記サブセットの中の各レコードに対して操作を実行すること、及び
    前記受信側処理エンティティによって保持される前記ローカル参照情報に基づいて前記データストレージを更新することを含む、方法。
  31. 受信側処理エンティティそれぞれがアクセスできるデータストレージが、不揮発性記憶媒体を含む請求項30に記載の方法。
  32. 各受信側処理エンティティによって保持されるローカル参照情報が、揮発性記憶媒体の中に格納される請求項31に記載の方法。
  33. 近似照合が、照合する値が指定された編集距離まで異なることを許容する請求項30に記載の方法。
  34. サブセットの中の各レコードに対して操作を実行することが、代替キー割り当てを含む、請求項30に記載の方法。
  35. 受信側処理エンティティにおいて生成される結果が、前記受信側処理エンティティにおいて受信した各レコードに関して、前記レコードの1又は2以上の値に基づく割り当てられた代替キーで拡張されたレコードを含む、請求項34に記載の方法。
  36. サブセットの中の各レコードに対して操作を実行することが、レコードを1又は2以上のクラスタにクラスタ化することを含む、請求項30に記載の方法。
  37. 受信側処理エンティティにおいて生成される結果が、前記受信側処理エンティティにおいて受信した各レコードに関して、前記レコードの1又は2以上の値、及び前記受信側処理エンティティにおいて受信したその他のレコードの少なくともいくつかのレコードの1又は2以上の値に基づく割り当てられたクラスタで拡張されたレコードを含む、請求項36に記載の方法。
  38. 操作が、代替キー割り当て、クラスタ化、ロールアップ、又は結合の少なくとも1つを含む、請求項30に記載の方法。
  39. コンピュータ可読記憶媒体上に格納されたコンピュータプログラムであって、
    コンピューティングシステムに、
    第1処理エンティティによってレコードセットを複数のレコードサブセットに分割し、さらに
    それぞれの異なる受信側処理エンティティによって前記レコードセットの異なるサブセットを処理させて、結果を、前記受信側処理エンティティそれぞれがアクセスできるデータストレージの中に格納させるための命令を含み、各受信側処理エンティティによって処理することが、
    前記レコードの1又は2以上のフィールドの1又は2以上の値と、前記受信側処理エンティティによって保持されるローカル参照情報内のエントリ又はその他の受信側処理エンティティのいずれかによって供給された前記データストレージ内のエントリを近似照合し、おおよそ一致しているか否か判定することに基づいて、前記サブセットの中の各レコードに対して操作を実行すること、及び
    前記受信側処理エンティティによって保持される前記ローカル参照情報に基づいて前記データストレージを更新することを含む、コンピュータプログラム。
  40. レコードセットを複数のレコードサブセットに分割するように構成された第1処理エンティティと、
    前記レコードセットの異なるそれぞれのサブセットを処理して、結果を、受信側処理エンティティそれぞれがアクセスできるデータストレージの中に格納するようにそれぞれが構成された複数の受信側処理エンティティとを含むコンピューティングシステムであって、
    各受信側処理エンティティによって処理することが、
    前記レコードの1又は2以上のフィールドの1又は2以上の値と、前記受信側処理エンティティによって保持されるローカル参照情報内のエントリ又はその他の受信側処理エンティティのいずれかによって供給された前記データストレージ内のエントリを近似照合し、おおよそ一致しているか否か判定することに基づいて、前記サブセットの中の各レコードに対して操作を実行すること、及び
    前記受信側処理エンティティによって保持される前記ローカル参照情報に基づいて前記データストレージを更新することを含む、コンピューティングシステム。
JP2014541426A 2011-11-15 2012-11-15 データクラスタ化、データセグメント化、及びデータ並列化 Active JP6190817B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161560257P 2011-11-15 2011-11-15
US61/560,257 2011-11-15
US201261660259P 2012-06-15 2012-06-15
US61/660,259 2012-06-15
PCT/US2012/065249 WO2013074770A1 (en) 2011-11-15 2012-11-15 Data clustering, segmentation, and parallelization

Publications (2)

Publication Number Publication Date
JP2014533408A true JP2014533408A (ja) 2014-12-11
JP6190817B2 JP6190817B2 (ja) 2017-08-30

Family

ID=47258118

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2014541427A Active JP6113740B2 (ja) 2011-11-15 2012-11-15 変数トークンネットワークに基づくデータクラスタ化
JP2014542461A Active JP6125520B2 (ja) 2011-11-15 2012-11-15 候補クエリに基づくデータクラスタ化
JP2014541426A Active JP6190817B2 (ja) 2011-11-15 2012-11-15 データクラスタ化、データセグメント化、及びデータ並列化

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2014541427A Active JP6113740B2 (ja) 2011-11-15 2012-11-15 変数トークンネットワークに基づくデータクラスタ化
JP2014542461A Active JP6125520B2 (ja) 2011-11-15 2012-11-15 候補クエリに基づくデータクラスタ化

Country Status (9)

Country Link
US (6) US9037589B2 (ja)
EP (6) EP3591538B1 (ja)
JP (3) JP6113740B2 (ja)
KR (3) KR102029514B1 (ja)
CN (4) CN104054073B (ja)
AU (3) AU2012340418C1 (ja)
CA (4) CA2855710C (ja)
HK (4) HK1200942A1 (ja)
WO (3) WO2013074770A1 (ja)

Families Citing this family (178)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8775441B2 (en) 2008-01-16 2014-07-08 Ab Initio Technology Llc Managing an archive for approximate string matching
CA3014839C (en) 2008-10-23 2019-01-08 Arlen Anderson Fuzzy data operations
US20110153737A1 (en) * 2009-12-17 2011-06-23 Chu Thomas P Method and apparatus for decomposing a peer-to-peer network and using a decomposed peer-to-peer network
US10084856B2 (en) * 2009-12-17 2018-09-25 Wsou Investments, Llc Method and apparatus for locating services within peer-to-peer networks
US8468119B2 (en) * 2010-07-14 2013-06-18 Business Objects Software Ltd. Matching data from disparate sources
EP2727247B1 (en) * 2011-06-30 2017-04-05 Openwave Mobility, Inc. Database compression system and method
WO2013074770A1 (en) 2011-11-15 2013-05-23 Ab Initio Technology Llc Data clustering, segmentation, and parallelization
US8949199B2 (en) * 2011-12-29 2015-02-03 Dell Products L.P. Systems and methods for de-duplication in storage systems
WO2013123097A1 (en) * 2012-02-13 2013-08-22 SkyKick, Inc. Migration project automation, e.g., automated selling, planning, migration and configuration of email systems
US10467322B1 (en) * 2012-03-28 2019-11-05 Amazon Technologies, Inc. System and method for highly scalable data clustering
US20130268526A1 (en) * 2012-04-06 2013-10-10 Mark E. Johns Discovery engine
US9684395B2 (en) * 2012-06-02 2017-06-20 Tara Chand Singhal System and method for context driven voice interface in handheld wireless mobile devices
EP3654200A1 (en) * 2012-08-17 2020-05-20 Twitter, Inc. Search infrastructure
US10223697B2 (en) 2012-08-30 2019-03-05 Oracle International Corporation Method and system for implementing a CRM quote and order capture context service
US9251133B2 (en) 2012-12-12 2016-02-02 International Business Machines Corporation Approximate named-entity extraction
US10949752B1 (en) * 2013-01-30 2021-03-16 Applied Predictive Technologies, Inc. System and method of portfolio matching
US9830353B1 (en) * 2013-02-27 2017-11-28 Google Inc. Determining match type for query tokens
US20140282396A1 (en) * 2013-03-14 2014-09-18 Syntel, Inc. Computerized system and method for extracting business rules from source code
US20140280239A1 (en) * 2013-03-15 2014-09-18 Sas Institute Inc. Similarity determination between anonymized data items
US8844050B1 (en) 2013-03-15 2014-09-23 Athoc, Inc. Personnel crisis communications management and personnel status tracking system
US10803102B1 (en) * 2013-04-30 2020-10-13 Walmart Apollo, Llc Methods and systems for comparing customer records
US9411632B2 (en) * 2013-05-30 2016-08-09 Qualcomm Incorporated Parallel method for agglomerative clustering of non-stationary data
US11093521B2 (en) * 2013-06-27 2021-08-17 Sap Se Just-in-time data quality assessment for best record creation
KR20150020385A (ko) * 2013-08-13 2015-02-26 에스케이하이닉스 주식회사 데이터 저장 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템
CA2921245C (en) 2013-09-20 2023-08-22 Fulcrum Management Solutions Ltd. Processing qualitative responses
CN103455641B (zh) * 2013-09-29 2017-02-22 北大医疗信息技术有限公司 交叉多次检索的系统和方法
US8831969B1 (en) * 2013-10-02 2014-09-09 Linkedin Corporation System and method for determining users working for the same employers in a social network
US10043182B1 (en) * 2013-10-22 2018-08-07 Ondot System, Inc. System and method for using cardholder context and preferences in transaction authorization
US10423890B1 (en) 2013-12-12 2019-09-24 Cigna Intellectual Property, Inc. System and method for synthesizing data
US10685037B2 (en) 2013-12-18 2020-06-16 Amazon Technology, Inc. Volume cohorts in object-redundant storage systems
CA2934041C (en) * 2013-12-18 2021-04-13 Amazon Technologies, Inc. Reconciling volumelets in volume cohorts
US10620830B2 (en) 2013-12-18 2020-04-14 Amazon Technologies, Inc. Reconciling volumelets in volume cohorts
US10026114B2 (en) * 2014-01-10 2018-07-17 Betterdoctor, Inc. System for clustering and aggregating data from multiple sources
US10055747B1 (en) * 2014-01-20 2018-08-21 Acxiom Corporation Consumer Portal
US9690844B2 (en) * 2014-01-24 2017-06-27 Samsung Electronics Co., Ltd. Methods and systems for customizable clustering of sub-networks for bioinformatics and health care applications
US9779146B2 (en) * 2014-02-07 2017-10-03 Sap Se Graphical user interface for a data record matching application
US20150269700A1 (en) 2014-03-24 2015-09-24 Athoc, Inc. Exchange of crisis-related information amongst multiple individuals and multiple organizations
US9268597B2 (en) * 2014-04-01 2016-02-23 Google Inc. Incremental parallel processing of data
US10482490B2 (en) 2014-04-09 2019-11-19 Sailthru, Inc. Behavioral tracking system and method in support of high-engagement communications
US20150348052A1 (en) * 2014-05-30 2015-12-03 Sachin Rekhi Crm-based discovery of contacts and accounts
WO2015192106A1 (en) * 2014-06-12 2015-12-17 Shpanya Arie Real-time dynamic pricing system
US20150379033A1 (en) * 2014-06-27 2015-12-31 International Business Machines Corporation Parallel matching of hierarchical records
US10318983B2 (en) * 2014-07-18 2019-06-11 Facebook, Inc. Expansion of targeting criteria based on advertisement performance
US10528981B2 (en) 2014-07-18 2020-01-07 Facebook, Inc. Expansion of targeting criteria using an advertisement performance metric to maintain revenue
US20160019284A1 (en) * 2014-07-18 2016-01-21 Linkedln Corporation Search engine using name clustering
US10296616B2 (en) 2014-07-31 2019-05-21 Splunk Inc. Generation of a search query to approximate replication of a cluster of events
US9922290B2 (en) * 2014-08-12 2018-03-20 Microsoft Technology Licensing, Llc Entity resolution incorporating data from various data sources which uses tokens and normalizes records
US10614912B2 (en) * 2014-08-17 2020-04-07 Hyperfine, Llc Systems and methods for comparing networks, determining underlying forces between the networks, and forming new metaclusters when saturation is met
US20160062979A1 (en) * 2014-08-27 2016-03-03 Google Inc. Word classification based on phonetic features
WO2016048295A1 (en) * 2014-09-24 2016-03-31 Hewlett Packard Enterprise Development Lp Assigning a document to partial membership in communities
US11461319B2 (en) * 2014-10-06 2022-10-04 Business Objects Software, Ltd. Dynamic database query efficiency improvement
US9600548B2 (en) * 2014-10-10 2017-03-21 Salesforce.Com Row level security integration of analytical data store with cloud architecture
JP6050800B2 (ja) * 2014-10-28 2016-12-21 Necパーソナルコンピュータ株式会社 情報処理装置、方法及びプログラム
CN105701118B (zh) 2014-11-28 2019-05-28 国际商业机器公司 用于归一化文件的非数值特征的方法和装置
US9483546B2 (en) * 2014-12-15 2016-11-01 Palantir Technologies Inc. System and method for associating related records to common entities across multiple lists
US9727906B1 (en) * 2014-12-15 2017-08-08 Amazon Technologies, Inc. Generating item clusters based on aggregated search history data
JP6129815B2 (ja) * 2014-12-24 2017-05-17 Necパーソナルコンピュータ株式会社 情報処理装置、方法及びプログラム
US20160239499A1 (en) * 2015-02-12 2016-08-18 Red Hat, Inc. Object Creation Based on Copying Objects Corresponding to Similar Entities
US10339502B2 (en) * 2015-04-06 2019-07-02 Adp, Llc Skill analyzer
US10742731B2 (en) 2015-06-10 2020-08-11 International Business Machines Corporation Maintaining service configuration consistency across nodes of a clustered file system
US9940213B2 (en) 2015-06-10 2018-04-10 International Business Machines Corporation Integrating external services with a clustered file system
WO2017015751A1 (en) * 2015-07-24 2017-02-02 Fulcrum Management Solutions Ltd. Processing qualitative responses and visualization generation
US10140327B2 (en) 2015-08-24 2018-11-27 Palantir Technologies Inc. Feature clustering of users, user correlation database access, and user interface generation system
US10417337B2 (en) 2015-09-02 2019-09-17 Canon Kabushiki Kaisha Devices, systems, and methods for resolving named entities
US11392582B2 (en) * 2015-10-15 2022-07-19 Sumo Logic, Inc. Automatic partitioning
US10783268B2 (en) 2015-11-10 2020-09-22 Hewlett Packard Enterprise Development Lp Data allocation based on secure information retrieval
US10242021B2 (en) * 2016-01-12 2019-03-26 International Business Machines Corporation Storing data deduplication metadata in a grid of processors
US10261946B2 (en) 2016-01-12 2019-04-16 International Business Machines Corporation Rebalancing distributed metadata
US10255288B2 (en) * 2016-01-12 2019-04-09 International Business Machines Corporation Distributed data deduplication in a grid of processors
WO2017197526A1 (en) 2016-05-20 2017-11-23 Roman Czeslaw Kordasiewicz Systems and methods for graphical exploration of forensic data
US10740409B2 (en) 2016-05-20 2020-08-11 Magnet Forensics Inc. Systems and methods for graphical exploration of forensic data
JP6072334B1 (ja) * 2016-06-09 2017-02-01 株式会社Cygames 情報処理システム及び方法、並びにプログラム
US20180025093A1 (en) * 2016-07-21 2018-01-25 Ayasdi, Inc. Query capabilities of topological data analysis graphs
US11023475B2 (en) * 2016-07-22 2021-06-01 International Business Machines Corporation Testing pairings to determine whether they are publically known
US10558669B2 (en) * 2016-07-22 2020-02-11 National Student Clearinghouse Record matching system
US11106692B1 (en) * 2016-08-04 2021-08-31 Palantir Technologies Inc. Data record resolution and correlation system
CN106875167B (zh) * 2016-08-18 2020-08-04 阿里巴巴集团控股有限公司 电子支付过程中资金交易路径的检测方法和装置
US10650008B2 (en) * 2016-08-26 2020-05-12 International Business Machines Corporation Parallel scoring of an ensemble model
US10817540B2 (en) 2016-09-02 2020-10-27 Snowflake Inc. Incremental clustering maintenance of a table
US11080301B2 (en) * 2016-09-28 2021-08-03 Hewlett Packard Enterprise Development Lp Storage allocation based on secure data comparisons via multiple intermediaries
US20180096018A1 (en) * 2016-09-30 2018-04-05 Microsoft Technology Licensing, Llc Reducing processing for comparing large metadata sets
WO2018067467A1 (en) 2016-10-03 2018-04-12 Ocient Llc Infrastructure improvements for use in a massively parallel database management system
US10127268B2 (en) * 2016-10-07 2018-11-13 Microsoft Technology Licensing, Llc Repairing data through domain knowledge
US10713316B2 (en) 2016-10-20 2020-07-14 Microsoft Technology Licensing, Llc Search engine using name clustering
US10585864B2 (en) 2016-11-11 2020-03-10 International Business Machines Corporation Computing the need for standardization of a set of values
US10353928B2 (en) * 2016-11-30 2019-07-16 International Business Machines Corporation Real-time clustering using multiple representatives from a cluster
US11205103B2 (en) 2016-12-09 2021-12-21 The Research Foundation for the State University Semisupervised autoencoder for sentiment analysis
EP3336691B1 (en) 2016-12-13 2022-04-06 ARM Limited Replicate elements instruction
EP3336692B1 (en) 2016-12-13 2020-04-29 Arm Ltd Replicate partition instruction
US10902070B2 (en) 2016-12-15 2021-01-26 Microsoft Technology Licensing, Llc Job search based on member transitions from educational institution to company
US10671757B1 (en) * 2016-12-22 2020-06-02 Allscripts Software, Llc Converting an alphanumerical character string into a signature
US20180181646A1 (en) * 2016-12-26 2018-06-28 Infosys Limited System and method for determining identity relationships among enterprise data entities
US20180203917A1 (en) * 2017-01-19 2018-07-19 Acquire Media Ventures Inc. Discovering data similarity groups in linear time for data science applications
US10679187B2 (en) 2017-01-30 2020-06-09 Microsoft Technology Licensing, Llc Job search with categorized results
US10783497B2 (en) 2017-02-21 2020-09-22 Microsoft Technology Licensing, Llc Job posting data search based on intercompany worker migration
US11138269B1 (en) 2017-03-14 2021-10-05 Wells Fargo Bank, N.A. Optimizing database query processes with supervised independent autonomy through a dynamically scaling matching and priority engine
US10803064B1 (en) * 2017-03-14 2020-10-13 Wells Fargo Bank, N.A. System and method for dynamic scaling and modification of a rule-based matching and prioritization engine
US11010675B1 (en) 2017-03-14 2021-05-18 Wells Fargo Bank, N.A. Machine learning integration for a dynamically scaling matching and prioritization engine
KR102594625B1 (ko) * 2017-03-19 2023-10-25 오펙-에슈콜롯 리서치 앤드 디벨롭먼트 엘티디 K-부정합 검색을 위한 필터를 생성하는 시스템 및 방법
US10607189B2 (en) 2017-04-04 2020-03-31 Microsoft Technology Licensing, Llc Ranking job offerings based on growth potential within a company
US20180315019A1 (en) * 2017-04-27 2018-11-01 Linkedin Corporation Multinodal job-search control system
US11640436B2 (en) * 2017-05-15 2023-05-02 Ebay Inc. Methods and systems for query segmentation
US10740338B2 (en) * 2017-07-23 2020-08-11 International Business Machines Corporation Systems and methods for query performance prediction using reference lists
US9934287B1 (en) * 2017-07-25 2018-04-03 Capital One Services, Llc Systems and methods for expedited large file processing
US20190034475A1 (en) * 2017-07-28 2019-01-31 Enigma Technologies, Inc. System and method for detecting duplicate data records
EP3460808A1 (en) * 2017-09-21 2019-03-27 Koninklijke Philips N.V. Determining patient status based on measurable medical characteristics
US11475209B2 (en) 2017-10-17 2022-10-18 Handycontract Llc Device, system, and method for extracting named entities from sectioned documents
WO2019077405A1 (en) * 2017-10-17 2019-04-25 Handycontract, LLC METHOD, DEVICE AND SYSTEM FOR IDENTIFYING DATA ELEMENTS IN DATA STRUCTURES
US11250040B2 (en) * 2017-10-19 2022-02-15 Capital One Services, Llc Systems and methods for extracting information from a text string generated in a distributed computing operation
US11429642B2 (en) 2017-11-01 2022-08-30 Walmart Apollo, Llc Systems and methods for dynamic hierarchical metadata storage and retrieval
US10839018B2 (en) * 2017-11-15 2020-11-17 International Business Machines Corporation Evaluation of plural expressions corresponding to input data
US10910112B2 (en) 2017-12-04 2021-02-02 Koninklijke Philips N.V. Apparatus for patient record identification
US11061811B2 (en) * 2017-12-15 2021-07-13 International Business Machines Corporation Optimizing software testing via group testing
CN110019274B (zh) 2017-12-29 2023-09-26 阿里巴巴集团控股有限公司 一种数据库系统以及查询数据库的方法和装置
US10579707B2 (en) * 2017-12-29 2020-03-03 Konica Minolta Laboratory U.S.A., Inc. Method for inferring blocks of text in electronic documents
US10817542B2 (en) 2018-02-28 2020-10-27 Acronis International Gmbh User clustering based on metadata analysis
US10956610B2 (en) * 2018-03-06 2021-03-23 Micro Focus Llc Cycle walking-based tokenization
US10719375B2 (en) * 2018-03-13 2020-07-21 Servicenow, Inc. Systems and method for event parsing
US11182395B2 (en) * 2018-05-15 2021-11-23 International Business Machines Corporation Similarity matching systems and methods for record linkage
US11244013B2 (en) * 2018-06-01 2022-02-08 International Business Machines Corporation Tracking the evolution of topic rankings from contextual data
US11106675B2 (en) * 2018-06-12 2021-08-31 Atos Syntel Inc. System and method for identifying optimal test cases for software development
US11263202B2 (en) 2018-11-30 2022-03-01 Microsoft Technology Licensing, Llc Scalable implementations of exact distinct counts and multiple exact distinct counts in distributed query processing systems
US11321359B2 (en) * 2019-02-20 2022-05-03 Tamr, Inc. Review and curation of record clustering changes at large scale
US10740347B1 (en) * 2019-03-04 2020-08-11 Capital One Services, Llc Methods and systems for determining sets and subsets of parametric data
US10922337B2 (en) * 2019-04-30 2021-02-16 Amperity, Inc. Clustering of data records with hierarchical cluster IDs
US11003643B2 (en) * 2019-04-30 2021-05-11 Amperity, Inc. Multi-level conflict-free entity clusterings
US11586659B2 (en) * 2019-05-03 2023-02-21 Servicenow, Inc. Clustering and dynamic re-clustering of similar textual documents
US11651032B2 (en) 2019-05-03 2023-05-16 Servicenow, Inc. Determining semantic content of textual clusters
CN110162672B (zh) * 2019-05-10 2021-07-27 上海赜睿信息科技有限公司 数据处理方法及装置、电子设备和可读存储介质
US11321771B1 (en) * 2019-06-03 2022-05-03 Intuit Inc. System and method for detecting unseen overdraft transaction events
US11042555B1 (en) * 2019-06-28 2021-06-22 Bottomline Technologies, Inc. Two step algorithm for non-exact matching of large datasets
WO2021079230A1 (ja) * 2019-10-25 2021-04-29 株式会社半導体エネルギー研究所 文書検索システム
EP4057585A4 (en) * 2019-12-06 2022-12-28 Huawei Cloud Computing Technologies Co., Ltd. EDGE SYSTEM AND PROCEDURES FOR PROCESSING DATA OPERATION REQUESTS
JP2021097353A (ja) * 2019-12-18 2021-06-24 キヤノン株式会社 データ送信装置、データ送信装置の制御方法、及びプログラム
CN111064796B (zh) * 2019-12-19 2023-03-24 北京明略软件系统有限公司 伴随关系的分析方法及装置、分析模型的训练方法
US11405482B2 (en) * 2020-02-15 2022-08-02 Near Intelligence Holdings, Inc. Method for linking identifiers to generate a unique entity identifier for deduplicating high-speed data streams in real time
US11176137B2 (en) * 2020-02-19 2021-11-16 Bank Of America Corporation Query processing platform for performing dynamic cluster compaction and expansion
US11768824B2 (en) 2020-03-31 2023-09-26 Wipro Limited Method and system for performing real-time data validation
TWI722859B (zh) * 2020-04-07 2021-03-21 中華誠信資產管理顧問股份有限公司 不動產估價比較案例篩選方法及其系統
US11442990B2 (en) 2020-04-08 2022-09-13 Liveramp, Inc. Asserted relationship data structure
EP4088217A4 (en) * 2020-05-18 2023-09-06 Google LLC INFERENCE PROCESSES FOR SEGMENTATION INTO WORDS OR PARTS OF WORDS
US11201737B1 (en) * 2020-05-19 2021-12-14 Acronis International Gmbh Systems and methods for generating tokens using secure multiparty computation engines
US20230230707A1 (en) * 2020-06-10 2023-07-20 Koninklijke Philips N.V. Methods and systems for searching an ecg database
KR102199704B1 (ko) * 2020-06-26 2021-01-08 주식회사 이스트시큐리티 다중 백신의 탐지명으로부터 대표 토큰을 선정하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
WO2022006151A1 (en) * 2020-06-29 2022-01-06 6Sense Insights, Inc. Aggregation of noisy datasets into master firmographic database
US11720601B2 (en) * 2020-07-02 2023-08-08 Sap Se Active entity resolution model recommendation system
US11615094B2 (en) 2020-08-12 2023-03-28 Hcl Technologies Limited System and method for joining skewed datasets in a distributed computing environment
EP4204979A4 (en) * 2020-09-30 2024-10-02 Liveramp Inc SYSTEM AND METHOD FOR MATCHING IN A COMPLEX DATA SET
US20220114624A1 (en) * 2020-10-09 2022-04-14 Adobe Inc. Digital Content Text Processing and Review Techniques
CN112990654B (zh) * 2021-02-03 2021-11-02 北京大学 基于人口流动数据的城乡基础设施系统协同规划方法
US11783269B1 (en) 2021-02-05 2023-10-10 Palantir Technologies Inc. Systems and methods for rule management
EP4054145B1 (en) * 2021-03-05 2024-01-10 Cédric Iggiotti Document-based access control system
CN112948943B (zh) * 2021-03-22 2022-11-18 西南交通大学 格栅式地下连续墙基础的OpenSees软件的前、后处理方法
CN113064870B (zh) * 2021-03-22 2021-11-30 中国人民大学 一种基于压缩数据直接计算的大数据处理方法
KR20220134328A (ko) 2021-03-26 2022-10-05 주식회사 팬스컴스 콘텐츠 저작권을 생성하는 사이니지 장치
US20220335075A1 (en) * 2021-04-14 2022-10-20 International Business Machines Corporation Finding expressions in texts
US20220342909A1 (en) * 2021-04-22 2022-10-27 Salesforce.Com, Inc. Evaluating clustering in case of data stewardship actions
US12020170B2 (en) * 2021-05-24 2024-06-25 Liveperson, Inc. Systems and methods for intent discovery and process execution
US11687559B1 (en) * 2021-06-09 2023-06-27 Morgan Stanley Services Group, Inc. Computer systems and methods for reconciling data across data sources
US20220414171A1 (en) * 2021-06-28 2022-12-29 Flipkart Internet Private Limited System and method for generating a user query based on a target context aware token
US11693821B2 (en) * 2021-07-07 2023-07-04 Collibra Belgium Bv Systems and methods for performant data matching
US11848824B2 (en) * 2021-07-23 2023-12-19 Vmware, Inc. Distributed auto discovery service
US20230034741A1 (en) * 2021-07-28 2023-02-02 Palo Alto Networks, Inc. Token frequency based data matching
US11630855B2 (en) * 2021-08-04 2023-04-18 Capital One Services, Llc Variable density-based clustering on data streams
US20230052619A1 (en) * 2021-08-10 2023-02-16 Intuit Inc. Real-time error prevention during invoice creation
US11841965B2 (en) * 2021-08-12 2023-12-12 EMC IP Holding Company LLC Automatically assigning data protection policies using anonymized analytics
US20240070321A1 (en) * 2021-08-12 2024-02-29 EMC IP Holding Company LLC Automatically creating data protection roles using anonymized analytics
US11841769B2 (en) * 2021-08-12 2023-12-12 EMC IP Holding Company LLC Leveraging asset metadata for policy assignment
US11704312B2 (en) * 2021-08-19 2023-07-18 Microsoft Technology Licensing, Llc Conjunctive filtering with embedding models
US11934468B2 (en) 2021-09-16 2024-03-19 Microsoft Tech nology Licensing, LLC Content distribution control
US11803569B2 (en) * 2021-10-05 2023-10-31 Procore Technologies, Inc. Computer system and method for accessing user data that is distributed within a multi-zone computing platform
AU2022396138A1 (en) * 2021-11-24 2024-06-06 Visa International Service Association Method, system, and computer program product for community detection
JP2023086507A (ja) * 2021-12-10 2023-06-22 キオクシア株式会社 情報処理装置および方法
US20230297623A1 (en) * 2022-03-17 2023-09-21 Yext, Inc. Multi-record projection search platform
USD1032628S1 (en) * 2022-03-18 2024-06-25 Ab Initio Technology Llc Display panel portion with an animated computer icon
US11983162B2 (en) 2022-04-26 2024-05-14 Truist Bank Change management process for identifying potential regulatory violations for improved processing efficiency
US20240121154A1 (en) * 2022-09-30 2024-04-11 Intuit Inc. Modeling and managing affinity networks
US12026140B1 (en) 2023-02-21 2024-07-02 Snowflake Inc. Performance indexing of production databases

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012104943A1 (ja) * 2011-02-02 2012-08-09 日本電気株式会社 結合処理装置、データ管理装置及び文字列類似結合システム

Family Cites Families (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02129756A (ja) 1988-11-10 1990-05-17 Nippon Telegr & Teleph Corp <Ntt> 単語照合装置
US5179643A (en) 1988-12-23 1993-01-12 Hitachi, Ltd. Method of multi-dimensional analysis and display for a large volume of record information items and a system therefor
US5388259A (en) 1992-05-15 1995-02-07 Bell Communications Research, Inc. System for accessing a database with an iterated fuzzy query notified by retrieval response
JPH0644309A (ja) 1992-07-01 1994-02-18 Nec Corp データベース管理方式
JPH0944518A (ja) 1995-08-02 1997-02-14 Adoin Kenkyusho:Kk 画像データベースの構築方法と、画像データベースの検索方法及び検索装置
US5832182A (en) 1996-04-24 1998-11-03 Wisconsin Alumni Research Foundation Method and system for data clustering for very large databases
JPH10275159A (ja) 1997-03-31 1998-10-13 Nippon Telegr & Teleph Corp <Ntt> 情報検索方法及び装置
US6026398A (en) 1997-10-16 2000-02-15 Imarket, Incorporated System and methods for searching and matching databases
JPH11184884A (ja) 1997-12-24 1999-07-09 Ntt Data Corp 同一人判定システムおよび方法
US6581058B1 (en) 1998-05-22 2003-06-17 Microsoft Corporation Scalable system for clustering of large databases having mixed data attributes
US6285995B1 (en) * 1998-06-22 2001-09-04 U.S. Philips Corporation Image retrieval system using a query image
US6742003B2 (en) 2001-04-30 2004-05-25 Microsoft Corporation Apparatus and accompanying methods for visualizing clusters of data and hierarchical cluster classifications
JP2000029899A (ja) 1998-07-14 2000-01-28 Hitachi Software Eng Co Ltd 建物と地図とのマッチング方法および記録媒体
US6493709B1 (en) 1998-07-31 2002-12-10 The Regents Of The University Of California Method and apparatus for digitally shredding similar documents within large document sets in a data processing environment
US6658626B1 (en) 1998-07-31 2003-12-02 The Regents Of The University Of California User interface for displaying document comparison information
US7356462B2 (en) 2001-07-26 2008-04-08 At&T Corp. Automatic clustering of tokens from a corpus for grammar acquisition
US6317707B1 (en) * 1998-12-07 2001-11-13 At&T Corp. Automatic clustering of tokens from a corpus for grammar acquisition
US6456995B1 (en) 1998-12-31 2002-09-24 International Business Machines Corporation System, method and computer program products for ordering objects corresponding to database operations that are performed on a relational database upon completion of a transaction by an object-oriented transaction system
AU780926B2 (en) 1999-08-03 2005-04-28 Bally Technologies, Inc. Method and system for matching data sets
AU1051101A (en) 1999-10-27 2001-05-08 Zapper Technologies Inc. Context-driven information retrieval
US7328211B2 (en) 2000-09-21 2008-02-05 Jpmorgan Chase Bank, N.A. System and methods for improved linguistic pattern matching
DE10048478C2 (de) 2000-09-29 2003-05-28 Siemens Ag Verfahren zum Zugriff auf eine Speichereinheit bei der Suche nach Teilzeichenfolgen
US6931390B1 (en) 2001-02-27 2005-08-16 Oracle International Corporation Method and mechanism for database partitioning
JP3605052B2 (ja) 2001-06-20 2004-12-22 本田技研工業株式会社 あいまい検索機能を備える図面管理システム
US20030033138A1 (en) 2001-07-26 2003-02-13 Srinivas Bangalore Method for partitioning a data set into frequency vectors for clustering
US20030041047A1 (en) 2001-08-09 2003-02-27 International Business Machines Corporation Concept-based system for representing and processing multimedia objects with arbitrary constraints
US7043647B2 (en) * 2001-09-28 2006-05-09 Hewlett-Packard Development Company, L.P. Intelligent power management for a rack of servers
US7213025B2 (en) 2001-10-16 2007-05-01 Ncr Corporation Partitioned database system
US20030120630A1 (en) * 2001-12-20 2003-06-26 Daniel Tunkelang Method and system for similarity search and clustering
AU2003210795A1 (en) * 2002-02-01 2003-09-02 John Fairweather System and method for analyzing data
CA2475319A1 (en) 2002-02-04 2003-08-14 Cataphora, Inc. A method and apparatus to visually present discussions for data mining purposes
WO2003107321A1 (en) 2002-06-12 2003-12-24 Jena Jordahl Data storage, retrieval, manipulation and display tools enabling multiple hierarchical points of view
US6961721B2 (en) * 2002-06-28 2005-11-01 Microsoft Corporation Detecting duplicate records in database
US20050226511A1 (en) * 2002-08-26 2005-10-13 Short Gordon K Apparatus and method for organizing and presenting content
US7043476B2 (en) 2002-10-11 2006-05-09 International Business Machines Corporation Method and apparatus for data mining to discover associations and covariances associated with data
US20040139072A1 (en) 2003-01-13 2004-07-15 Broder Andrei Z. System and method for locating similar records in a database
US7912842B1 (en) 2003-02-04 2011-03-22 Lexisnexis Risk Data Management Inc. Method and system for processing and linking data records
US7287019B2 (en) * 2003-06-04 2007-10-23 Microsoft Corporation Duplicate data elimination system
US20050120011A1 (en) 2003-11-26 2005-06-02 Word Data Corp. Code, method, and system for manipulating texts
US7526464B2 (en) 2003-11-28 2009-04-28 Manyworlds, Inc. Adaptive fuzzy network system and method
US7283999B1 (en) 2003-12-19 2007-10-16 Ncr Corp. Similarity string filtering
US7472113B1 (en) * 2004-01-26 2008-12-30 Microsoft Corporation Query preprocessing and pipelining
GB0413743D0 (en) * 2004-06-19 2004-07-21 Ibm Method and system for approximate string matching
US8407239B2 (en) 2004-08-13 2013-03-26 Google Inc. Multi-stage query processing system and method for use with tokenspace repository
US7917480B2 (en) * 2004-08-13 2011-03-29 Google Inc. Document compression system and method for use with tokenspace repository
US20080040342A1 (en) * 2004-09-07 2008-02-14 Hust Robert M Data processing apparatus and methods
US7523098B2 (en) 2004-09-15 2009-04-21 International Business Machines Corporation Systems and methods for efficient data searching, storage and reduction
US8725705B2 (en) 2004-09-15 2014-05-13 International Business Machines Corporation Systems and methods for searching of storage data with reduced bandwidth requirements
US8224830B2 (en) 2005-03-19 2012-07-17 Activeprime, Inc. Systems and methods for manipulation of inexact semi-structured data
US9110985B2 (en) 2005-05-10 2015-08-18 Neetseer, Inc. Generating a conceptual association graph from large-scale loosely-grouped content
JP2007012039A (ja) * 2005-05-31 2007-01-18 Itochu Techno-Science Corp 検索システムおよびコンピュータプログラム
US7584205B2 (en) 2005-06-27 2009-09-01 Ab Initio Technology Llc Aggregating data with complex operations
US7672833B2 (en) 2005-09-22 2010-03-02 Fair Isaac Corporation Method and apparatus for automatic entity disambiguation
US7454449B2 (en) * 2005-12-20 2008-11-18 International Business Machines Corporation Method for reorganizing a set of database partitions
US20070162506A1 (en) * 2006-01-12 2007-07-12 International Business Machines Corporation Method and system for performing a redistribute transparently in a multi-node system
US7516279B2 (en) * 2006-02-28 2009-04-07 International Business Machines Corporation Method using stream prefetching history to improve data prefetching performance.
US20070244925A1 (en) 2006-04-12 2007-10-18 Jean-Francois Albouze Intelligent image searching
US7890533B2 (en) 2006-05-17 2011-02-15 Noblis, Inc. Method and system for information extraction and modeling
US7809769B2 (en) * 2006-05-18 2010-10-05 Google Inc. Database partitioning by virtual partitions
US8175875B1 (en) 2006-05-19 2012-05-08 Google Inc. Efficient indexing of documents with similar content
US7634464B2 (en) 2006-06-14 2009-12-15 Microsoft Corporation Designing record matching queries utilizing examples
US20080140653A1 (en) 2006-12-08 2008-06-12 Matzke Douglas J Identifying Relationships Among Database Records
US7630972B2 (en) 2007-01-05 2009-12-08 Yahoo! Inc. Clustered search processing
US7739247B2 (en) * 2006-12-28 2010-06-15 Ebay Inc. Multi-pass data organization and automatic naming
WO2008083504A1 (en) * 2007-01-10 2008-07-17 Nick Koudas Method and system for information discovery and text analysis
US8694472B2 (en) * 2007-03-14 2014-04-08 Ca, Inc. System and method for rebuilding indices for partitioned databases
US7711747B2 (en) * 2007-04-06 2010-05-04 Xerox Corporation Interactive cleaning for automatic document clustering and categorization
US8069129B2 (en) 2007-04-10 2011-11-29 Ab Initio Technology Llc Editing and compiling business rules
WO2008146456A1 (ja) 2007-05-28 2008-12-04 Panasonic Corporation 情報探索支援方法および情報探索支援装置
CN101079896B (zh) * 2007-06-22 2010-05-19 西安交通大学 一种构建并行存储系统多可用性机制并存架构的方法
US7769778B2 (en) 2007-06-29 2010-08-03 United States Postal Service Systems and methods for validating an address
US7788276B2 (en) 2007-08-22 2010-08-31 Yahoo! Inc. Predictive stemming for web search with statistical machine translation models
US7925652B2 (en) 2007-12-31 2011-04-12 Mastercard International Incorporated Methods and systems for implementing approximate string matching within a database
US8775441B2 (en) * 2008-01-16 2014-07-08 Ab Initio Technology Llc Managing an archive for approximate string matching
US8032546B2 (en) 2008-02-15 2011-10-04 Microsoft Corp. Transformation-based framework for record matching
US8266168B2 (en) * 2008-04-24 2012-09-11 Lexisnexis Risk & Information Analytics Group Inc. Database systems and methods for linking records and entity representations with sufficiently high confidence
US7958125B2 (en) * 2008-06-26 2011-06-07 Microsoft Corporation Clustering aggregator for RSS feeds
US20120191973A1 (en) 2008-09-10 2012-07-26 National Ict Australia Limited Online presence of users
US8150169B2 (en) * 2008-09-16 2012-04-03 Viewdle Inc. System and method for object clustering and identification in video
CA3014839C (en) 2008-10-23 2019-01-08 Arlen Anderson Fuzzy data operations
CN101751400A (zh) * 2008-12-09 2010-06-23 财团法人工业技术研究院 技术数据分析的系统与方法以及专利分析的系统
US20100169311A1 (en) 2008-12-30 2010-07-01 Ashwin Tengli Approaches for the unsupervised creation of structural templates for electronic documents
JP5173898B2 (ja) 2009-03-11 2013-04-03 キヤノン株式会社 画像処理方法、画像処理装置、及びプログラム
US8161048B2 (en) 2009-04-24 2012-04-17 At&T Intellectual Property I, L.P. Database analysis using clusters
US20100274770A1 (en) 2009-04-24 2010-10-28 Yahoo! Inc. Transductive approach to category-specific record attribute extraction
CN102067128A (zh) * 2009-04-27 2011-05-18 松下电器产业株式会社 数据处理装置、数据处理方法、程序及集成电路
US8195626B1 (en) * 2009-06-18 2012-06-05 Amazon Technologies, Inc. Compressing token-based files for transfer and reconstruction
US8285681B2 (en) * 2009-06-30 2012-10-09 Commvault Systems, Inc. Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites
US8572084B2 (en) * 2009-07-28 2013-10-29 Fti Consulting, Inc. System and method for displaying relationships between electronically stored information to provide classification suggestions via nearest neighbor
US8429179B1 (en) * 2009-12-16 2013-04-23 Board Of Regents, The University Of Texas System Method and system for ontology driven data collection and processing
CN101727502A (zh) * 2010-01-25 2010-06-09 中兴通讯股份有限公司 一种数据查询方法及装置、系统
US8375061B2 (en) 2010-06-08 2013-02-12 International Business Machines Corporation Graphical models for representing text documents for computer analysis
US8346772B2 (en) * 2010-09-16 2013-01-01 International Business Machines Corporation Systems and methods for interactive clustering
US8463742B1 (en) * 2010-09-17 2013-06-11 Permabit Technology Corp. Managing deduplication of stored data
US8606771B2 (en) 2010-12-21 2013-12-10 Microsoft Corporation Efficient indexing of error tolerant set containment
US8612386B2 (en) 2011-02-11 2013-12-17 Alcatel Lucent Method and apparatus for peer-to-peer database synchronization in dynamic networks
WO2013074770A1 (en) * 2011-11-15 2013-05-23 Ab Initio Technology Llc Data clustering, segmentation, and parallelization

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012104943A1 (ja) * 2011-02-02 2012-08-09 日本電気株式会社 結合処理装置、データ管理装置及び文字列類似結合システム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
VERNICA, RARES ET AL.: "Efficient Parallel Set-Similarity Joins Using MapReduce", PROCEEDINGS OF THE 2010 ACM SIGMOD INTERNATIONAL CONFERENCE ON MANAGEMENT OF DATA, JPN7016002242, 6 June 2010 (2010-06-06), pages 495 - 506, XP058754068, ISSN: 0003372206, DOI: 10.1145/1807167.1807222 *
成田和世、外1名: "編集距離制約下におけるトライを用いた高速並列類似結合", 第3回データ工学と情報マネジメントに関するフォーラム 論文集 [ONLINE], JPN6016029690, 4 August 2011 (2011-08-04), ISSN: 0003372207 *

Also Published As

Publication number Publication date
US20130124474A1 (en) 2013-05-16
CN108388632A (zh) 2018-08-10
WO2013074770A1 (en) 2013-05-23
EP3855321A1 (en) 2021-07-28
CA2855710A1 (en) 2013-05-23
CN104054074B (zh) 2019-03-08
AU2012340418B2 (en) 2017-06-01
AU2012340429A1 (en) 2014-05-29
CN104040544A (zh) 2014-09-10
AU2012340418C1 (en) 2017-11-16
CA3098038C (en) 2022-11-29
EP3432169B1 (en) 2021-02-24
HK1200942A1 (en) 2015-08-14
EP2780836A1 (en) 2014-09-24
US20200356579A1 (en) 2020-11-12
EP2780833A1 (en) 2014-09-24
AU2012340429B2 (en) 2016-12-01
JP2014533417A (ja) 2014-12-11
EP3591538A1 (en) 2020-01-08
WO2013074781A1 (en) 2013-05-23
US20160283574A1 (en) 2016-09-29
KR102031392B1 (ko) 2019-11-08
KR20140094003A (ko) 2014-07-29
HK1259448A1 (zh) 2019-11-29
US20200320102A1 (en) 2020-10-08
CN108388632B (zh) 2021-11-19
CA3098038A1 (en) 2013-05-23
KR20140096127A (ko) 2014-08-04
US10503755B2 (en) 2019-12-10
US9037589B2 (en) 2015-05-19
KR20140094002A (ko) 2014-07-29
JP6190817B2 (ja) 2017-08-30
CA2855715C (en) 2019-02-19
AU2012340423B2 (en) 2017-02-09
EP2780835B1 (en) 2019-08-07
JP6113740B2 (ja) 2017-04-12
HK1200943A1 (en) 2015-08-14
CA2855715A1 (en) 2013-05-23
JP2014533409A (ja) 2014-12-11
AU2012340418A1 (en) 2014-05-29
EP3432169A1 (en) 2019-01-23
WO2013074774A4 (en) 2013-08-29
KR102029514B1 (ko) 2019-10-07
US9361355B2 (en) 2016-06-07
EP3591538B1 (en) 2021-01-20
US20130124525A1 (en) 2013-05-16
US10572511B2 (en) 2020-02-25
KR102048597B1 (ko) 2019-11-25
HK1201096A1 (en) 2015-08-21
CN104054073A (zh) 2014-09-17
CA2855710C (en) 2020-03-10
CA2855701C (en) 2021-01-12
CA2855701A1 (en) 2013-05-23
CN104054073B (zh) 2018-10-30
CN104054074A (zh) 2014-09-17
EP2780835A1 (en) 2014-09-24
JP6125520B2 (ja) 2017-05-10
WO2013074774A1 (en) 2013-05-23
CN104040544B (zh) 2018-06-26
AU2012340423A1 (en) 2014-05-29
US20130124524A1 (en) 2013-05-16

Similar Documents

Publication Publication Date Title
JP6190817B2 (ja) データクラスタ化、データセグメント化、及びデータ並列化

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151019

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160804

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20161031

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161219

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20170522

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170607

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170711

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170807

R150 Certificate of patent or registration of utility model

Ref document number: 6190817

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250