KR101607178B1 - 데이터 조작 수행, 데이터 품질 측정, 또는 데이터 요소 결합을 위한 방법, 시스템, 및 컴퓨터 프로그램을 저장하는 컴퓨터 판독 가능한 매체 - Google Patents

데이터 조작 수행, 데이터 품질 측정, 또는 데이터 요소 결합을 위한 방법, 시스템, 및 컴퓨터 프로그램을 저장하는 컴퓨터 판독 가능한 매체 Download PDF

Info

Publication number
KR101607178B1
KR101607178B1 KR1020147037118A KR20147037118A KR101607178B1 KR 101607178 B1 KR101607178 B1 KR 101607178B1 KR 1020147037118 A KR1020147037118 A KR 1020147037118A KR 20147037118 A KR20147037118 A KR 20147037118A KR 101607178 B1 KR101607178 B1 KR 101607178B1
Authority
KR
South Korea
Prior art keywords
data
record
cluster
key
records
Prior art date
Application number
KR1020147037118A
Other languages
English (en)
Other versions
KR20150015029A (ko
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 KR20150015029A publication Critical patent/KR20150015029A/ko
Application granted granted Critical
Publication of KR101607178B1 publication Critical patent/KR101607178B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/02Computing arrangements based on specific mathematical models using fuzzy logic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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
    • 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
    • G06F16/24542Plan optimisation
    • G06F16/24544Join order optimisation
    • 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/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2468Fuzzy queries
    • 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/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/02Computing arrangements based on specific mathematical models using fuzzy logic
    • G06N7/023Learning or tuning the parameters of a fuzzy system

Abstract

데이터 저장 시스템으로부터 데이터 요소를 판독하는 단계를 포함하는 데이터 저장 시스템에 저장된 데이터 요소를 클러스터링하는 방법이 제공된다. 데이터 요소들의 클러스터들은 하나 이상의 구성 요소가 되는 각각의 데이터 요소를 가지고 형성된다. 하나 이상의 데이터 요소는 두 개 이상의 클러스터와 연관되어있다. 두 개 이상의 클러스터의 각각의 하나에 속하는 데이터 요소의 구성 요건은 모호성의 측정에 의하여 표시된다. 정보가 데이터 저장 시스템에 저장되어 형성된 클러스터들을 표시한다.

Description

데이터 조작 수행, 데이터 품질 측정, 또는 데이터 요소 결합을 위한 방법, 시스템, 및 컴퓨터 프로그램을 저장하는 컴퓨터 판독 가능한 매체 {A method, a system, and a computer-readable medium storing a computer program for performing a data operation, measuring data quality, or joining data elements}
관련 출원에 대한 상호 참조
본 출원은, 발명의 명칭이 “퍼지 데이터 조작”이고 2008년 10월 23일에 출원하였으며 본 명세서에 참조로서 포함된 미국 특허 출원 번호 제61/107,971호의 우선권을 주장하고 있다.
이 명세서는 데이터 관리 분야의 퍼지 데이터 조작에 관한 것이다.
클러스터링(clustering), 결합(join), 검색(search), 롤업(rollup), 그리고 정렬(sort)과 같은 데이터 조작은 데이터를 처리하기 위하여 데이터 관리(시스템)에서 사용되고 있다. 클러스터링은 데이터를 다른 그룹으로 분류하는 조작이다. 결합(join)은 두 데이터를 함께 결합하는 것이다. 키이에 의한 검색은 해당 키이에 일치하는 데이터 항목을 찾는다. 롤업은 데이터의 그룹에 걸쳐 하나 이상의 소계(또는 기타의 조합)의 레벨을 계산하는 조작이다. 정렬은 데이터에 순서를 부여하는 조작이다.
데이터 품질은 데이터 관리에 중요하다. 데이터 조작에서 비롯되는 실수 또는 부정확성은 데이터 품질을 저하시킨다. 예를 들어, ABC주식회사의 직원인 존 스미스를 임시직 또는 정규직으로 분류하는지에 따라 존 스미스는 다른 대우를 받게 된다. 존 스미스의 고용 상태를 잘못 분류하는 것, 예를 들어, 데이터 조작 클러스터링에서 실수하는 것은 ABC주식회사의 인사 데이터의 품질에 영향을 미친다.
데이터 조작 중 일부는, 일치하는 레코드를 식별하거나, 관련된 레코드의 그룹을 정하거나, 또는 레코드를 링크하는 필드 값("키이")의 정확한 비교에 의존한다. 데이터가 모호하거나, 불완전하거나, 미완성이거나, 불확실한 때에는, 필드 값의 정확한 비교에 기한 방법들은 잘못될 수 있다.
데이터 조작(예를 들어, 클러스터링)에 내재하는 모호함이 존재하는 경우, 이를 해결하기 위한 하나의 접근방법은 이 모호함을 단순히 무시하고, 특정 그룹에 데이터를 강제로 보내는 것이 될 수 있다. 예를 들어, ABC주식회사의 직원인 존 스미스가 마케팅 부서와 연구 개발 부서 모두에 근무한다고 하자. ABC주식회사의 인사 데이터 베이스에서, 존 스미스는 마케팅 부서 또는 연구 개발 부서와 연관되어 있을 수 있으나, 종종 하나만의 부서와 연관되어 있다. 특정 그룹으로 데이터를 강제적으로 분류하는 것은 내재적인 모호함을 방지할 수 있지만 데이터 품질에 부정적인 영향을 미칠 수 있다.
자산의 소유권과 관련된 개체A와 개체B 사이의 법률 분쟁과 같이 어떠한 사건의 결과가 아직 계류 중이기 때문에, 예를 들어 클러스터링과 같은 데이터 조작과 관련된 불확실성이 존재할 때, 특정 그룹에 데이터를 강제로 보내는 것은 상황의 유동성을 해결하는 최선의 접근방법이 되지 않을 수 있다. 판결이 나오기 전에는 자산의 소유권이 불확정적이기 때문이다. A또는B 누구에게 자산을 양도하더라도 부정확하게 될 수 있다.
그룹의 구성 요건(membership)의 모호함 때문에 예를 들어 롤업과 같은 데이터 조작과 관련된 불확실성이 존재할 때, 회계 무결성(accounting integrity)을 유지하기 위해 여러 대안 중 한 그룹에 구성 요건을 지정하는 것은 잘못될 수 있다. 예를 들어, 은행은 위험 평가 및 규제 목적을 위해 상대방에게 대출을 결정하는 데 관심이 있을 수 있다. 상대방의 식별은 종종 기업명으로서 이루어지는데, 기업명은 아주 다양하게 기록될 수 있기 때문에 이는 모호한 형태의 식별이 될 수 있다. 결국, 이는 상대방에게 대출을 지정하는 것이 모호할 수 있다는 것을 의미한다. 한 회사에게 관련된 대출이 여러 개의 명백히 다른 회사로 나누어지는 경우가 있는데, 실제로는 이는 한 회사의 단순히 여러 가지 형태의 이름이기 때문인 경우가 발생할 수 있다. 이는 은행이 어느 한 상대방에게 대출을 줄여서 표시하는(understating) 결과를 초래한다. 한편, 하나의 상대방이 다른 상대방에 소속되어 있다면, 아마도 첫번째 회사에 대한 대출은 두번째 회사에 대한 대출이 될 것이다.
부정확하거나 손실된 정보로 인하여, 예를 들어 결합과 같은 데이터 조작과 관련된 불확실성이 존재할 때, 강제로 어느 한 데이터를 특정 그룹으로 보내거나 그 데이터를 무시하는 것은 잘못된 결합이 되거나 데이터의 손실을 야기할 수 있다. 예를 들어, 두 개의 다른 데이터 베이스에서 테이블을 결합하려고 할 때, 종종 데이터 베이스 테이블이 공유하는 공유 키이가 없는 경우가 있다. 이를 극복하기 위하여, 고객 주소와 같은 테이블 내의 데이터가 두 데이터 베이스의 레코드 사이의 관계를 추론하는 데 사용된다. 하지만 주소 정보는 잘못되었거나 불완전한 수 있다. 우편 주소 파일과 같은 명확한 기준 집단에 대한 주소 유효성의 확인 결과, 테이블 A의 레코드의 주소가 잘못되었고 (그 주소에는 집이 없음), 유효한 다른 주소의 완성된 데이터일 수 있는 테이블 B에는 복수의 주소가 존재하는 경우를 가정하자. 테이블 A의 레코드의 주소의 완성된 데이터를 임의로 선택하는 것은 잘못된 결합을 초래할 수 있고, 레코드를 무시하는 것은 정보의 손실을 야기한다.
부정확한 데이터 입력 때문에, 예를 들어 검색과 같은 데이터 조작과 관련하여 모호성이 존재할 때, 하나의 접근방법은 하나의 대안 또는 대체 수정의 목록을 제안하는 것이다. 이것이 조작자에 의하여 데이터 베이스에 입력되는 데이터의 유효성 검사 과정의 일부인 경우, 다수의 대안이 존재하는 경우의 하나의 대안을 제안하는 것은 조작자가 수정을 받아들임에 있어서 오해를 가져올 수 있다. 대안의 목록이 제공되면, 조작자는 대안 중에서 선택을 하는데 합리적 근거를 가지지 않고 선택할 수도 있다. 하나의 선택이 요구되는 경우에 잘못된 선택으로 인하여 데이터 품질 저하가 예상되는 경우에, 데이터 품질의 예상되는 손실을 최소화하고 평가하는 것을 목표로 하여야 할 것이다.
일반적으로, 본 발명의 한 측면에서는 데이터 저장 시스템에서 데이터 요소를 클러스터링하는 방법은 데이터 저장 시스템으로부터 데이터 요소를 판독하는 것을 포함한다. 데이터 요소의 클러스터는 적어도 하나의 클러스터의 구성요소인 각 데이터 요소로 형성된다. 적어도 하나의 데이터 요소는 둘 이상의 클러스터와 연관된다. 두 개 이상의 클러스터의 각각에 속하는 데이터 요소의 구성 요건(membership)이 모호함의 측정값으로서 표시된다. 정보는 데이터 저장 시스템에 저장되고 형성된 클러스터를 표시한다.
본 발명의 특징은 다음 중 하나 이상의 특징을 포함할 수 있다.
두 개 이상의 클러스터 중 각각의 하나에 속하는 데이터 요소의 구성 요건을 표시하는 모호함의 측정의 각각의 값은 0과 1 사이가 될 수 있다.
구성 요건을 표시하는 모호함의 측정의 값은 두 개 이상의 클러스터의 각각의 하나에 속하는 데이터 요소의 가능성(likelihood)과 관련이 있을 수 있다.
두 개 이상의 클러스터의 각각의 하나에 속하는 데이터 요소의 구성 요건을 표시하는 모호함의 각각의 측정의 값의 합은 1이 될 수 있다.
본 발명의 방법은 모호함의 측정의 값을 사용하여 회계 무결성을 보존하는 방법을 포함할 수 있다.
주어진 양(quantity)에 대한 회계 무결성은 그 수량에 모호함의 측정의 값을 가중치 함으로써 달성될 수 있다.
본 방법은 구성 요건을 표시하는 모호함의 측정의 값을 사용하는 데이터 조작을 수행하는 것을 포함할 수 있다.
데이터 조작은 하나 이상의 클러스터의 첫번째 클러스터 내의 수량의 가중 소계를 계산하는 롤업을 포함할 수 있고, 여기서 양은 데이터 요소와 연관되어 있으며, 소계는 제1 클러스터의 각각의 데이터 요소와 연관된 양의 곱을 제1 클러스터 내에서 합산하여 계산되고, 모호함의 측정의 값의 각각은 제1 클러스터의 데이터 요소의 구성 요건을 표시한다.
본 방법은 양의 제외 소계(exclusive subtotal) 및 포함 소계(inclusive subtotal)를 계산하는 것을 포함할 수 있고, 제외 소계는 두 개 이상의 클러스터와 연관된 제1 클러스터의 데이터 요소를 제외함으로써 계산되고, 포함 소계는 두 개 이상의 클러스터와 연관된 제1 클러스터의 데이터 요소를 포함시킴으로써 계산된다.
구성 요건을 표시하는 모호함의 측정치는 함수에 기하여 정해질 수 있고, 함수는 데이터 요소와 두 개 이상의 클러스터 사이의 관계를 나타낸다.
함수로 표시되는 관계는 두 개 이상의 클러스터의 각각의 하나에 속하는 데이터 요소의 가능성과 관련이 있을 수 있다.
함수로 표시되는 관계는 데이터 요소와 두 개 이상의 클러스터의 각각을 나타내는 요소 사이의 정량화된 가능성에 기할 수 있다.
두 개 이상의 클러스터의 각각을 나타내는 요소는 각 클러스터의 키이일 수 있다.
몇몇 실시예에서는, 두 개 이상의 클러스터의 각 클러스터에 속하는 데이터 요소의 모호함의 측정의 값은 각 클러스터에서 같을 수 있다.
두 개 이상의 클러스터의 각 클러스터에 속하는 데이터 요소의 모호함의 측정의 값은 참조 집합에 있는 데이터 요소의 관측 빈도에 기할 수 있다.
두 개 이상의 클러스터의 각 클러스터는 데이터 요소에서 다른 잠재적인 오류를 나타낼 수 있다. 두 개 이상의 클러스터의 각 클러스터에 속하는 데이터 요소의 모호함의 측정의 값은 각 클러스터로 표시되는 데이터 요소에 있는 잠재적인 오류의 가능성에 기할 수 있다.
데이터 클러스터를 형성하는 것은 데이터 요소 및 슈퍼 클러스터(supercluster) 내의 데이터 요소의 클러스터를 형성하는 각 슈퍼 클러스터에 대하여 복수의 슈퍼 클러스터를 형성하는 것을 포함할 수 있다.
각 슈퍼 클러스터를 형성하는 것은 다른 데이터 요소의 객체 사이의 다른 관계에 기하여 다른 데이터 요소의 객체 사이의 일치를 결정하는 것을 포함할 수 있다.
첫 번째 객체와 두 번째 객체 사이의 다른 관계는 첫 번째 객체와 두 번째 객체 사이의 미리 설정된 임계값 아래인 거리를 나타내는 함수값에 상응할수 있다.
몇몇 실시예에서, 다른 관계는 동등한 관계가 아닐 수 있다.
적어도 하나의 데이터 요소는 하나 이상의 슈퍼 클러스터에 있을 수 있다.
또 다른 특징에서, 일반적으로, 데이터 저장 시스템에 저장된 데이터 요소를 클러스터링 하기위한 시스템은: 데이터 저장 시스템에서 데이터 요소를 판독하는 수단; 하나 이상의 클러스터의 구성요소(member)인 각 데이터 요쇼로 데이터 요소의 클러스터를 형성하는 수단; 모호함의 측정에 의해 표시되는 두 개 이상의 클러스터의 각각에 속하는 데이터 요소의 구성 요건으로 둘 이상의 클러스터와 적어도 하나의 데이터 요소를 연관시키는 수단; 형성된 클러스터를 표시하는 데이터 저장 시스템에 정보를 저장하기 위한 수단을 포함한다.
또 다른 특징에서, 일반적으로, 데이터 저장 시스템에 저장된 데이터 요소를 클러스터링 하기 위한 컴퓨터 프로그램을 저장하는 컴퓨터가 판독 가능한 매체가 기재된다. 컴퓨터 프로그램은 컴퓨터에 대한 지시를 포함하는데 이는: 데이터 저장 시스템에서 데이터 요소를 판독하고; 적어도 하나의 클러스터를 구성요소로 하는 각 데이터 요소로 데이터 요소들의 클러스터를 형성하고; 모호함의 측정에 의해 표시되는 두 개 이상의 클러스터의 각각에 속하는 데이터 요소의 구성 요건으로, 적어도 하나의 데이터 요소를 두 개 이상의 클러스터와 연관시키고; 정보를 데이터 저장 시스템에 저장하여 형성된 클러스터를 표시하는 것을 포함한다.
또 다른 특징에서, 일반적으로, 키이를 받고 데이터 저장 시스템으로부터 하나 이상의 데이터 요소를 회신하는(return) 데이터 조작을 수행하는 방법은, 키이와 데이터 요소의 하나 이상의 검색 필드의 값과의 일치 후보(candidate matches)에 기하여 다수의 데이터 요소 후보를 결정하는 것을 포함한다. 일치 후보는 검색 필드와 다른 데이터 요소 후보의 하나 이상의 비교 필드의 값에 기하여 뒷받침된다.
본 발명의 특징은 다음 중 하나 이상의 특징을 포함할 수 있다.
데이터 조작은 적어도 하나의 클러스터의 구성요소가 되는 각 데이터 요소로 데이터 요소의 클러스터를 형성하는 것을 포함할 수 있다.
적어도 하나의 데이터 요소는 모호함의 측정에 의해 표시되는 두 개 이상의 클러스터의 각각에 속하는 데이터 요소의 구성 요건으로 둘 이상의 클러스터와 연관될 수 있다.
데이터 조작은 하나 이상의 클러스터의 첫 번째 클러스터 내에 있는 수량의 가중 소계를 계산하는 롤업을 포함할 수 있는데, 양(quantity)은 데이터 요소와 연관되고, 소계는 제1 클러스터 내에서 제1 클러스터의 데이터 요소의 각각과 연관되는 양의 값과 제1 클러스터의 데이터 요소의 구성 요건을 표시하는 모호함의 측정 값의 각각의 곱을 합산하여 계산된다.
본 방법은 또한 수량의 제외 소계와 수량의 포함 소계의 계산을 포함할 수 있고, 제외 소계는 두 개 이상의 클러스터와 연관된 제1 클러스터의 데이터 요소를 제외하여 계산되며, 포함 소계는 두 개 이상의 클러스터와 연관된 제1 클러스터의 데이터 요소를 포함하여 계산된다.
두 개 이상의 클러스터의 각각의 하나에 속하는 데이터 요소의 구성 요건을 표시하는 모호함의 측정의 값의 각각은 0과 1 사이에 있을 수 있다.
구성 요건을 표시하는 모호함의 측정의 값은 두 개 이상의 클러스터의 각각에 속하는 데이터 요소의 가능성과 관련될 수 있다.
구성 요건을 표시하는 모호함의 측정의 값은 함수에 기하여 설정될 수 있고, 함수는 데이터 요소와 두 개 이상의 클러스터 사이의 관계를 나타낸다.
함수로 표시되는 관계는 두 개 이상의 클러스터의 각각에 속하는 데이터 요소의 가능성과 관련이 있을 수 있다.
본 방법은 주어진 데이터 요소의 하나 이상의 비교 필드의 값에 기하여 주어진 클러스터에 주어진 데이터 요소의 구성 요건을 결정하는 것을 포함할 수 있다.
또 다른 특징에서는, 키이를 받고 데이터 저장 시스템에서 하나 이상의 데이터 요소를 회신하는 데이터 조작을 수행하는 시스템은: 키이와 데이터 요소의 하나 이상의 검색 필드의 값 사이에서의 일치 후보에 기하여 다수의 데이터 요소 후보를 결정하는 수단과; 다른 검색 필드로부터의 데이터 요소 후보의 하나 이상의 비교 필드의 값에 기하여 일치 후보를 뒷받침하는 수단을 포함한다.
또 다른 특징에서는, 일반적으로, 키이를 받고 데이터 저장 시스템에서 하나 이상의 데이터 요소를 회신하는 데이터 조작을 수행하기 위한 컴퓨터 프로그램을 저장하는 컴퓨터 판독 가능한 매체가 기재된다. 컴퓨터 프로그램은 컴퓨터가: 키이와 데이터 요소의 하나 이상의 검색 필드의 값 사이의 일치 후보에 기하여 다수 개의 데이터 요소의 후보를 결정하고, 검색 필드와 다른 데이터 요소 후보의 하나 이상의 비교 필드의 값에 기하여 일치 후보를 뒷받침하도록 하는 지시를 포함한다.
또 다른 특징에서, 일반적으로, 데이터 저장 시스템의 데이터 요소의 데이터 품질을 측정하는 방법은 데이터 저장 시스템에서 데이터 요소를 판독하는 것을 포함한다. 항목에 대한 모호함의 측정값은 데이터 요소의 하나 이상의 필드에서 하나 이상의 항목 각각에 대해 계산된다. 모호함의 측정의 값에 기한 데이터 저장 시스템의 데이터 요소의 데이터 품질의 표시가 출력된다.
본 발명의 특징은 다음 중 하나 이상의 특징을 포함할 수 있다.
모호함의 측정의 값을 계산하는 것은 데이터 요소 중 하나 이상의 필드의 항목을 기준 값과 비교하는 것을 포함할 수 있다. 기준 값과 정확하게 일치하지 않는 적어도 제1 입력에 대한 하나 이상의 변형(variant)이 발견 수 있다. 제1 입력에 대한 모호함의 측정의 값은 제1항목의 변형에 기하여 계산될 수 있다.
제1항목에 대한 모호함의 측정의 값은 제1 입력에 대한 변형의 수에 기할 수 있다.
데이터 저장 시스템에서 데이터 요소의 데이터 품질의 표시는, 변형의 특정 수를 가지는 항목의 수에 대한 히스토그램 그래프를 포함할 수 있다.
변형의 특정 수는 어떠한 범위 내의 것으로 지정할 수 있다.
데이터 저장 시스템의 데이터 요소의 데이터 품질의 표시는, 미리 정해진 임계값보다 큰 변형의 수를 가지는 항목의 목록을 포함할 수 있다.
모호함의 측정의 값을 계산하는 것은, 하나 이상의 필드에서 다른 항목의 각각의 빈도수를 결정하는 것을 포함할 수 있다. 제1 입력에 대한 모호함의 측정의 값은 다른 항목의 빈도수에 대한 제1 입력의 상대적인 빈도에 기하여 계산될 수 있다.
또 다른 특징에서, 일반적으로, 데이터 저장 시스템에서 데이터 요소의 데이터 품질을 측정하기 위한 시스템은: 데이터 저장 시스템에서 데이터 요소를 읽기 위한 수단; 데이터 요소의 하나 이상의 필드에서 하나 이상의 항목 각각에 대해, 항목의 모호성의 측정의 값을 계산하기 위한 수단; 그리고 모호함의 측정의 값에 기하여 데이터 저장 시스템의 데이터 요소의 데이터 품질의 표시를 출력하는 수단을 포함한다.
또 다른 특징에서, 일반적으로, 데이터 저장 시스템에서 데이터 요소의 데이터 품질을 측정하기 위한 컴퓨터 프로그램을 저장하는 컴퓨터 판독 가능한 매체가 기술된다. 컴퓨터 프로그램은 컴퓨터가: 데이터 저장 시스템에서 데이터 요소를 판독하고, 데이터 요소의 하나 이상의 필드에서 하나 이상의 항목 각각에 대해 항목에 대한 모호함의 측정의 값을 계산하고, 모호함의 측정의 값에 기하여 데이터 저장 시스템의 데이터 요소의 데이터 품질의 표시를 출력하기 위한 지시를 포함한다.
또 다른 특징에서, 일반적으로, 적어도 하나의 데이터 저장 시스템에 저장된 둘 이상의 데이터 집합으로부터 데이터 요소를 결합하는 방법은 제1 데이터 집합으로부터의 데이터 요소의 객체와 제2 데이터 집합으로부터의 데이터 요소의 객체 사이의 변형 관계에 기하여 제1 데이터 집합으로부터의 데이터 요소의 객체와 제2 데이터 집합으로부터의 데이터 요소의 객체 사이의 일치를 결정하는 것을 포함한다. 일치되었다고 결정된 각각의 객체를 가지는 각각의 데이터 요소가 평가된다. 제1 데이터 집합으로부터의 데이터 요소는 데이터 요소의 평가에 기하여 제2 데이터 집합으로부터의 데이터 요소와 결합된다.
본 발명의 특징은 다음 중 하나 이상의 특징을 포함할 수 있다.
제1 객체와 제2 객체 사이의 변형 관계는 제1 객체와 미리 설정된 임계값 아래인 제2 객체 사이의 거리를 나타내는 함수값에 상응한다.
변형관계는 균등한 관계가 아닐 수 있다.
제1 데이터 집합으로부터의 제1 데이터 요소의 객체와 제2 데이터 집합으로부터의 제2데이터 요소의 객체 사이의 일치를 결정하는 것은, 변형 관계가 제1 데이터 요소의 객체와 제2데이터 요소의 객체 사이에서 유지된다는 것을 포함할 수 있다.
제1 데이터 집합으로부터의 제1 데이터 요소의 객체와 제2 데이터 집합에서 제2 데이터 요소의 객체 사이의 일치를 결정하는 것은, 제1데이터 요소의 객체와 제1 데이터 집합의 제3데이터 요소 사이에서 변형 관계가 유지된다는 것을 결정하는 것과 제3데이터 요소의 객체와 제2데이터 요소의 객체 사이에서 변형 관계가 유지된다는 것을 결정하는 것을 포함할 수 있다.
일치로 결정된 각각의 객체를 가지는 각각의 데이터 요소를 평가하는 것은, 일치로 결정된 각각의 객체 이외의 각 데이터 요소의 객체의 비교를 포함할 수 있다.
또 다른 특징에서, 일반적으로, 적어도 하나의 데이터 저장 시스템에 저장되는 둘 이상의 데이터 집합으로부터의 데이터 요소를 결합하기 위한 시스템은: 제1 데이터 집합으로부터의 데이터 요소의 객체와 제2 데이터 집합으로부터의 데이터 요소의 객체 사이의 변형 관계에 기하여 제1 데이터 집합으로부터의 데이터 요소의 객체와 제2 데이터 집합으로부터의 데이터 요소의 객체 사이의 일치를 결정하기 위한 수단; 일치로 결정된 각각의 객체를 가지는 데이터 요소 각각을 평가하기 위한 수단; 그리고 데이터 요소의 평가에 기하여 제1 데이터 집합으로부터의 데이터 요소와 제2 데이터 집합으로부터의 데이터 요소를 결합하는 수단을 포함한다.
또 다른 특징에서, 일반적으로 하나 이상의 데이터 저장 시스템에 저장된 둘 이상의 데이터 집합의 데이터 요소를 결합하기 위한 컴퓨터 프로그램을 저장하는 컴퓨터 판독 가능한 매체가 기술된다. 컴퓨터 프로그램은 컴퓨터가: 제1 데이터 집합으로부터의 데이터 요소의 객체와 제2 데이터 집합으로부터의 데이터 요소의 객체 사이의 변형 관계에 기하여 제1 데이터 집합으로부터의 데이터 요소의 객체와 제2 데이터 집합으로부터의 데이터 요소의 객체 사이의 일치를 결정하고; 일치라고 결정된 각 객체를 가지는 데이터 요소 각각을 평가하고; 데이터 요소의 평가에 기하여 제2 데이터 집합의 데이터 요소와 함께 제1 데이터 집합의 데이터 요소를 결합하도록 하는 지시를 포함한다.
퍼지 검색 조작은 정확한 키를 사용하는 종래의 검색이 놓칠 레코드, 예를 들어 오타를 포함하는 레코드들을 불러올 수 있다.
데이터의 분류가 계류중인 결과에 의존할 때, 클러스터링 또는 부분적 구성 요건은 불확정성을 정확하게 파악하는 데 사용될 수 있다. 부분적 구성 요건은 또한 회계 무결성을 보전하는 데 유용하다. 예를 들어, 주식회사 ABC의 인사 데이터 베이스에서, 마케팅 부서와 R&D부서의 구성 요건이 각각 0.5인 경우, 존 스미스의 의료비가 이중으로 계산되지 않는다.
도1은 그래프 기반의 계산을 실행하기 위한 시스템의 블록 다이어그램이다.
도2a는 다수의 클러스터에 속한 데이터 요소의 예이다.
도2b는 클러스터에서 수행하는 조작의 예이다.
도2c, 2d는 거리 계산의 예이다.
도3은 퍼지 클러스터의 예시이다.
도4는 퍼지 클러스터의 또 다른 예이다.
도5는 퍼지 클러스터를 생성하는 방법의 플로우 차트이다.
도6은 퍼지 검색의 예를 보여준다.
퍼지 데이터 조작을 수행하기 위한 기술은 데이터 집합을 저장하는 데이터 베이스 시스템의 다른 형태를 포함하는 다양한 형태의 시스템에 적용될 수 있다. 이 명세서에서 사용된 것처럼, 데이터 집합이란 데이터의 일부가 각각의 필드(또한 "속성"또는 "열"이라고도 함)에 대한 값을 가지는 레코드로서 구성될 수 있도록 하는 어떠한 형태의 데이터의 집합도 포함한다. 데이터 베이스 시스템과 저장된 데이터 집합은 복잡한 데이터 베이스 관리 시스템 또는 단순한 파일을 저장하는 파일시스템과 같은 다양한 형태를 취할 수 있다. 다양한 데이터 베이스 시스템 중 하나는 데이터 집합(각 레코드 내에서 필드에 대하여 사용되는 필드 구조를 포함함) 내에서 레코드에 대하여 사용하는 레코드 구조의 형태이다. 어떤 시스템에서는 데이터 집합의 레코드 구조가 단순히 개별적인 텍스트 문서를 레코드로서 정의하고 그 문서의 내용은 하나 이상의 필드의 값을 나타낸다. 어떤 시스템에서는 단일 데이터 집합 내의 모든 레코드가 같은 구조(예를 들어, 필드 구조)를 가져야 한다는 요건이 없다.
복잡한 계산은 종종 방향성이 있는 그래프 (데이터 플로우 그래프라고 함)을 통한 데이터 플로우로서 표현되고, 계산의 요소들은 그래프의 정점들에 연관되며 요소들 사이의 데이터 플로우는 그래프의 연결 (아크, 가장자리)에 대응한다. 이러한 그래프 기반 계산을 구현한 시스템은 미국 특허 제5,966,072호인 “그래프로 표현되는 계산의 실행”에서 기술되었고 본 명세서에 참조로서 포함되었다. 그래프 기반 계산을 실행하는 한 가지 접근 방식은, 각각이 그래프의 다른 정점과 관련된 일련의 프로세스를 실행하고 그래프의 링크에 대응하는 프로세스 사이의 통신경로를 정하는 것이다. 예를 들어, 통신 경로는 TCP / IP 또는 UNIX 도메인 소켓을 사용하거나 프로세스간에 데이터를 전달하는 공유 메모리를 사용할 수 있다.
*도1을 참조하면, 그래프 기반의 계산을 실행하기 위한 시스템 (10)은 데이터 저장부 (12)에 연결된 개발 환경 (14) 및 데이터 저장부 (12)에 연결된 런타임 환경 (18)을 포함한다. 개발부 (11)은 개발 환경을 사용하여 응용 프로그램을 만든다. 응용 프로그램은 개발자가 개발환경 (14)를 사용한 결과로 데이터 저장부에 기록될 수 있는 데이터 저장부 (12)의 데이터 구조에 의해 특정되는 하나 이상의 데이터 플로우 그래프와 연관될 수 있다. 예를 들어, 계산 그래프 (15)의 데이터 구조 (13)은 계산 그래프의 꼭지점(요소 또는 데이터 집합)과 꼭지점 사이의 연결(조작 요소의 흐름을 나타냄)을 특정한다. 데이터 구조는 또한 다양한 특징을 가진 요소, 데이터 집합, 그리고 데이터 플로우 그래프의 흐름을 포함할 수 있다.
런타임 환경 (18)은 UNIX 운영 체제와 같은 적절한 운영 체제의 제어 하에 하나 이상의 범용 컴퓨터에 채용될 수 있다. 예를 들어, 런타임 환경 (18)은 다중 노드 병렬 계산 환경을 포함할 수 있는데, 이는 다중 중앙처리장치 (CPU), 로컬 (local, 예를 들면 SMP컴퓨터와 같은 멀티 프로세서), 또는 로컬 분산된 (예를 들면 클러스터 또는 MPP와 연결된 다중 프로세서) 또는 원격 배치된 (예를 들면 LAN 또는 WAN 네트워크에 연결된 다중 프로세서), 또는 이들의 어떠한 결합을 사용하는 컴퓨터 시스템의 배치를 포함한다.
런타임 환경 (18)은 계산을 실행 또는 배열하기 위하여 데이터 저장부 (12) 및/또는 사용자(17)로부터 제어 입력을 수신하도록 배열된다. 제어 입력은 상응하는 데이터 플로우 그래프를 사용하는 특정 데이터 집합을 처리하는 명령을 포함할 수 있고, 데이터 플로우 그래프는 저장된 그래프 데이터구조에서 특정된다. 예를 들어, 사용자 (17)은 명령어 라인 또는 그래픽 인터페이스를 사용하여 런타임 환경과 상호 연락한다.
런타임 환경 (18)은 사전 실행 모듈 (20)과 실행 모듈 (22)를 포함한다. 사전 실행 모듈은 어떠한 사전 처리 프로시쥬어(procedure)도 실행하고, 다양한 퍼지 동작 (예를 들어, 본 명세서에 참조로서 포함된 미국 특허 공개 번호 제2009/0182728호에 기재된 바와 같이)에 사용되는 사전 (21) 및 아카이브 (24)와 같이 계산그래프를 실행하는 자원들을 준비하고 유지한다. 사전(21)은 단어와 나타나는 데이터 집합에서 단어에 관한 정보를 저장한다. 아카이브 (24)는 단어, 어구, 또는 데이터 집합의 레코드에 기하여 사전 처리로부터의 다양한 결과를 저장한다. 사전 (21)과 아카이브 (24)는 다양한 포맷으로 구현될 수 있고, 데이터의 단일한 집합 또는 다수의 사전 및 아카이브로서 편성될 수 있다. 실행 모듈 (22)는 요소의 계산을 실행하기 위하여 계산 그래프에 지정된 프로세스의 실행을 스케쥴링하고 제어한다. 실행 모듈 (22)는, 데이터 베이스 시스템으로부터 레코드를 제공하는 데이터 소스 (26)과 같이 그래프 요소와 연관된 프로세싱 중에 액세스된 시스템(10)에 결합된 외부 계산 자원들과 상호 작용할 수 있다. 시스템 (10)에서 수행되는 퍼지 조작은 품질 산정 또는 데이터 편성 또는 데이터 통합을 위하여 데이터를 분석하는 것과 같이 다양한 목적을 위하여 사용될 수 있다.
기업이나 단체의 핵심 자산은 제품, 서비스, 고객의 목록으로부터, 거래, 계약 및 개인, 은행 및 기타 기업과의 계정에 이르기까지, 기업 활동을 수행하기 위해 보유하고 있는 데이터이다. 이 데이터는 다양한 형식으로 다양한 시스템에 저장되는데, 종이 및 스프레드 시트로부터 관계형 데이터 베이스 및 회계 또는 공급 체인 관리 시스템과 같은 기업용 응용 프로그램에 이른다. 모든 단체의 중심되는 고려사항은 데이터의 품질과 무결성이다.
청구서가 잘못된 가격 또는 잘못 라벨된 상품을 포함한다면, 잘못된 금액이 청구되거나 잘못된 상품이 배달될 것이다. 고객 또는 공급자의 주소가 잘못되었다면, 적재 또는 주문이 지연되거나 분실될 수 있거나 지불금액이 의도한 상대방에게 도달하지 않을 수 있다. 만일 어떤 시스템의 고객을 표시하는 키이가 다른 시스템의 다른 고객의 계정과 연결되어있다면, 고객 계정의 상태에 대한 보고서는 신뢰할 수 없을 것이고, 심지어 더 나쁘게는, 고객은 다른 고객들의 계정에 액세스할 수도 있다. 나쁜 데이터 품질은 사업의 정상적인 행위를 혼란에 빠뜨리고 아마도 수입의 손실, 평판의 손상 또는 사업 기회의 상실을 초래할 수 있다.
회사 또는 단체의 데이터의 중요한 부분 집합은 비거래 (non-transactional) 참조 데이터이고, 때때로 그 주 데이터 (master data)를 참조한다. 이는 제품, 고객, 계정, 공급자 그리고 각 데이터 아이템의 특정 속성을 나타내는 데 사용되는 특정한 유효값의 리스트를 포함할 수 있다 (예를 들어, 고객이 남성 또는 여성의 성을 가지고 있거나, 상품이 열거 리스트 중 하나일 수 있는 색깔을 가지는 경우). 일반적으로 거래 및 가격과 같은 주 데이터는 단체의 단기 운영 데이터를 포함하지 않는다. 주 데이터 관리는 단체 및 단체의 참조 데이터의 유지와 관련된다. 주된 고려사항 중 하나는 참조 데이터의 품질 및 무결성이다.
데이터 품질 및 참조 무결성의 문제점들은 많은 형태를 취한다. 이 문제점들은, 일관성 있게 유지되기가 어려울 수 있는 다른 종류의 다수의 데이터시스템의 존재에 의하여 악화된다. 모두 망라되지는 않았지만 잠재적 문제점들의 리스트는 이하와 같다.
1) 데이터는 잘못 입력되거나 잘못 기록될 수 있다: 이루어진 입력은 의도된 입력이 아니다. 입력 중에 오타 또는 옮겨적기 에러가 있을 수 있고, 이는 단어의 여러 스펠링에서의 잘못을 초래한다. 예를 들어, 고객 이름 또는 주소, 제품 라벨 또는 기재, 또는 열거 리스트로부터 취해지리라 기대되는 값과 같은 단어에서의 잘못을 말한다. 많은 데이터 입력용 프로그램은 그러한 잘못을 막기 위하여 입력시 데이터를 확인하는 안전장치를 가지고 있지만, 잘못들은 여전히 일어난다.
2) 데이터가 불완전할 수 있다: 모든 필드들이 사용되고 있는 것이 아니다. 고객 응용 프로그램은 어떤 필드에서 정보가 유실되었을 수 있다. 형태를 완성시키는 조작이 입력 중에 인터럽트될 수 있다. 정보들이 입력시에 유효하다고 여겨진 후 버려질 수 있다. 입력을 완성시키기 위한 정보가 입력시 사용되지 않을 수 있고, 아마도 다른 동작이 계류중일 수 있다.
3) 데이터가 유효하지 않을 수 있다: 필드가 사용되었지만 유효하지 않은 값으로 되는 경우가 있다. 입력은 열거 리스트로부터 기대되는 값의 어느것과도 일치하지 않을 수 있다. 입력은 기대하는 데이터 타입에 대해 유효하지 않을 수 있고, 예를 들어 10진 필드에 알파벳 문자가 존재할 수도 있고 날짜가 그 달의 날수보다 많을 수가 있다 (예, 6월31일).
4) 데이터가 잘못된 필드에 입력될 수 있다: 도시 코드 또는 우편 번호가 주소의 거리 필드에 나타나 있을 수 있다. 기대하는 것과 달리 다른 포맷의 외국 주소가 의도한 포맷에 억지로 맞춰지는 경우도 있다. 제품 아이디가 청구서 또는 주문서 양식에서 기재 또는 코멘트 필드에 있을 수 있다. 만일 성이 이름으로 자주 쓰이는 성 (예, 그레고리 폴) 이거나 이름이 익지 않거나 외국 이름인 경우 개인의 이름과 성이 뒤바뀔 수 있다.
5) 데이터 입력의 기준이 존재하지 않을 수 있다: 데이터가 일관적이지 않게 입력될 수 있다. 주소의 줄의 순서가 표준화 되어있지 않아서 항상 같은 방법으로 기록되지 않을 수 있고, 심지어 같은 데이터 집합에서도 그러할 수 있다. 회사 이름의 구체적인 형태는 표준화 되어있지 않고 몇 가지의 다양한 형태가 수용될 수 있고, 혹은 이니셜만 쓰일 수도 있다. 비슷하게, 성명의 이름도 이니셜로만 되어 있을 수 있다. 복합 성명은 하이픈을 가지기도, 가지지 않기도 하면서 이름에 나타나는 경우가 있거나, 미들 네임과 성 필드 사이에서 분리되어 있을 수 있다.
6) 데이터가 프리 텍스트 필드(free text field)에 보유될 수 있다. 청구서 또는 주문 양식의 코멘트 필드의 비고(remarks)가 제품 이름 또는 설명 형식의 속성처럼 다른 경우에는 상실될 수 있는 중요한 정보를 포함할 수 있다. 데이터 베이스 테이블의 기재 필드는 다른 필드로 변경하기 위한 설명을 포함할 수 있다. 예를 들면, 여성의 성이 결혼으로 인하여 변경되는 경우가 있다.
7) 키이 관계가 깨질 수 있다. 데이터 베이스는 다른 테이블, 때때로 다른 데이터 베이스의 테이블에 유지되는 관련된 데이터를 연결시키기 위하여 키이를 사용한다. 키이가 제대로 올바른 레코드를 연결하지 않으면, 데이터 베이스(들)의 참조 무결성이 파괴된다. 키이가 레코드를 잘못 연결할 수 있는데, 한 고객이 다른 고객에 속한 계정에 연결된 경우가 그러하다. 키이는 존재하지 않는 레코드를 연결할 수 있는데, 예를 들어 계정 레코드의 고객 키이는 어떠한 기존 고객의 레코드와도 연결하지 않는다. 어떤 경우에는, 고객의 레코드가 존재하지만 다른 키이를 가진다. 그러한 키이는 때때로 "소실 키이(missing key)"로 설명된다. 다른 경우, 해당하는 고객 레코드가 전혀 존재하지 않을 때, 계정 레코드는 분리된 레코드(orphaned record)가 되었다고 말해진다.
8) 키이 관계가 존재하지 않을 수 있다. 근원이 다른 데이터 베이스가 유사한 데이터를 가질 수 있지만, 공유하는 데이터를 연결하는 키이는 존재하지 않는다. 사업체의 한 단체 라인이 다른 단체 라인과 고객을 공유하고 있다는 것을 인식하지 못하는 것은 드문 일이 아니다. 기업이나 단체가 합쳐지면서 두 단체의 주 데이터를 결합할 수 있다. 두 단체의 다른 기준과 동등하지 않은 유효값으로 인해 주 데이터의 일관성 있는 집합이 실현되기는 어렵지만, 고객과 같은 공유 데이터를 인식하고 연결하는 문제는 종종 더 어렵다.
데이터 클렌징(data cleansing)은 이러한 문제 중 많은 것들을 식별하고 해결하고자 한다. 구형 시스템의 수 및 복잡성, 시스템 사이의 인터페이스의 수, 새로운 시스템의 도입 비율로 인하여, 진짜 문제는 종종 데이터 품질의 문제가 아니라, 어떻게 이것들에 대처하는가가 된다.
사업 또는 단체의 시스템에서 데이터를 찾고, 평가하고, 조작하는데 중심되는 개념은 아마도 “키이 (key)”를 찾고 평가하고 조작하는 것일 것이다. 기본 키이는 필드 또는 필드의 결합이고, 그 값은 데이터 집합에서 고유 레코드를 식별하는 역할을 한다. 관계형 데이터 베이스 내에서, 모든 테이블은 테이블 내에서 고유 레코드를 식별하는 기본 키이를 가질 수 있다 (기본 키이가 고유하지 않은 경우 이는 다른 데이터품질의 문제가 된다). 테이블에서 외래 키이는 다른 테이블의 레코드에 연결하는 키이다.
데이터 베이스 테이블 또는 기타 데이터 집합의 키이에 의존하여 몇몇 데이터 조작이 수행될 수 있다. 익숙한 키이 기반의 데이터 조작은 조회, 결합, 롤업, 스캔, 정렬, 병합이고, 그리고 병렬 처리에서는 키이에 의한 파티션이다. 이러한 데이터 조작은 "정확한 일치"라고 여기서 칭하는 키이의 정확한 일치에 기한다. 조회 데이터 조작에서, 키이는 정확하게 일치하는 키이를 가지는 조회 데이터 집합으로부터 하나 이상의 레코드를 불러오는 데 사용된다. 결합 데이터 조작에서, 다른 데이터 집합으로부터 공통되는 키이를 공유하는 레코드의 컨텐츠와 한 데이터 집합으로부터의 레코드의 컨텐츠를 결합 (그리고 아마도 서브세팅)함으로써 동시에 하나의 레코드로 두 개 (혹은 그 이상)의 데이터 집합이 결합된다. 하나 이상의 레코드가 일치하는 공통의 키이를 가지고 있다면, 별도의 출력 레코드가 각각의 일치하는 레코드 쌍에 대해 형성된다.
롤업 데이터 조작에서, 공통의 열쇠를 공유하는 레코드의 그룹의 컨텐츠는 동일한 키이를 가지는 하나의 출력 레코드를 만들기 위하여 결합된다. 예를 들어, 고객의 총 거래 금액은 거래 금액을 합산하는 한편 고객 레벨의 거래 기록을 롤업함으로써 얻을 수 있다. 스캔 데이터 조작에서는, 공통 키이를 공유하는 레코드의 그룹에 있는 각 레코드에 키이를 가지고 모두 이전에 보여진 컨텐츠를 이용하여 출력 레코드가 계산된다. 예를 들어, 고객의 지출의 누계는 고객 거래를 스캔하여 계산할 수 있다.
정렬 데이터 조작에서, 레코드들은 그들의 키이 값에 의해 순서대로 배열된다. 병합 데이터 조작에서, 하나 이상의 데이터 스트림으로부터 정렬된 데이터들은 단일 스트림과 결합되어 출력 스트림이 역시 정렬된다. 키이에 의한 병렬 처리 동작 파티션에서, 데이터는 키이의 값에 기하여 프로세싱 파티션에 배열된다.
여러 개의 독립적 시스템이 병존할 때, 각 시스템은 앞서 논의한 종류의 데이터 품질 문제를 가질 수 있고, 공통 데이터와 레코드를 연관시키는 키이는 일반적으로 존재하지 않으며, 존재하는 키이는 신뢰할 수 없을 수 있다. 각 레코드내의 데이터는 절대적으로 관심의 대상이다. 키이는 데이터를 식별하고 평가하기 위하여 데이터 베이스에 도입된 편리한 기능이라고 생각할 수 있다. 신뢰할 만한 키이가 없는 경우, 데이터 자체가 식별의 목적으로 사용될 수 있다.
레코드에 그 컨텐츠를 통해서 접근하는 것은 검색에 의하여 이루어질 수 있다. 예를 들어, 하나의 데이터 베이스의 고객은 다른 데이터 베이스에서 이름으로 검색될 수 있다. 이름이 식별을 시작하는데 사용될 수 있지만, 생일 및 주소와 같은 보강 정보가 일치를 보강하기 위하여 일반적으로 필요하다.
더구나, 데이터 품질의 이슈 때문에, 종종 이름이나 보강 정보가 레코드의 정확한 일치를 확인할 것을 요구하지는 않는다. 정확한 확인은 아마도 지나치게 제한적일 것이며, 정확한 일치를 요구하는 것에 의해 정확한 식별 내용의 많은 부분이 유실될 수도 있다. (퍼지)검색의 데이터동작은 일치에 가까운 데이터 입력을 불러들이지, 완전히 일치할 것을 요구하지는 않는다. 예를 들어, “Leslie”에 대한 퍼지 검색은 “Lesley” 라는 이름의 사람에 대한 레코드를 찾아줄 지도 모른다. 퍼지검색에서, 유사성 또는 뒷받침의 정도가 다른 하나 이상의 일치 레코드가 존재할 수 있다 (Leslie에 대한 검색은 또한 Lesley 라는 이름의 다른 사람의 레코드를 불러올 수 있다). 일치 후보는 명확한 일치 또는 심지어는 받아들일 만한 일치로 평가하기 충분하게 뒷받침되지 못할 수 있다. 예를 들어, 읽어 들여진 Lesley 레코드의 생일은 Leslie 레코드의 생일과 같지 않을 수 있고, 이러한 경우 일치 후보는 보강되지 않는다.
검색시, 참조를 위하여 정확한 키이를 사용하는 단일 단계 프로세스는 두 단계 프로세스로 대체된다. 레코드들이 검색 항목을 사용하여 불러들여지기 위하여 식별되고, 일치를 결정하기 위하여 평가된다. 키이가 유일한 레코드를 식별하는 경우가 드물기 때문에 검색 항목이 키이가 되지는 않지만, 레코드를 연결하는 키이와 같이 사용된다.
명확성을 위하여, 검색 항목이 선택되는 필드와 일치의 품질을 평가하기 위하여 비교하는데 사용되는 필드를 구분하는 것이 유용하다. 이러한 필드들은, 각각 검색 필드와 비교 필드라고 불린다.
검색 항목 또는 비교 필드가 동일하지 않을 때 일치를 발견하고 판단하기 위하여, 많은 값들을 인식하기 위하여 점수 함수가 사용될 수 있다. 일치 후보가 다양한 검색 항목을 사용하여 불러들여지고 점수 함수를 사용하여 평가되어 보강 필드들 사이의 일치의 품질을 정량화한다. 이러한 점수 함수는 다양한 데이터 품질 이슈를 고려하기 위하여 설계된다. 이들은 품질 이슈에도 불구하고 일치를 인식하지만, 점수는 줄어든다. 예를 들어, 사람 이름에 대한 점수 함수는 성과 이름을 바꾸거나 미들 네임 이니셜을 사용하는데 대하여는 오차 허용이 가능하지만, 회사 이름에 적용되는 점수 함수는 없는 단어보다는 단어 순서에 더 중요성을 두어야 할 것이다.
정확한 키이의 또 다른 기본적인 용도는 공통되는 키이 값을 가지는 레코드의 집합(set)을 식별하는 것인데, 이는 종종 키이 그룹이라고 불린다. 이들 키이 그룹은 많은 키이 기반 데이터조작에서 중심적인 역할을 한다. 완전히 일치되는 키이에 대한 요구조건이 완화되면, 어떻게 키이를 그룹핑할 것인가의 의문이 발생한다. 완화된 기준에 기하여 그룹핑된 키이의 집합을 클러스터라고 한다.
일반적으로, 비교 필드가 비교 테스트를 만족시키는 레코드의 집합이 될 수 있다: 예를 들어, 한 실시예에서, 클러스터의 점수가 임계치를 넘으면 레코드는 클러스터의 구성 요소가 된다. 레코드의 스코어를 클러스터에 관하여 정의하는 방법은 여러 가지가 많이 있고, 반드시는 아니지만 전형적으로 클러스터의 각 구성 요소를 개별적으로 저장하고 그 이후에 점수를 결합하는 것을 수반한다. 예를 들어, 점수는 클러스터의 각 구성 요소에 관한 레코드의 점수의 최대값이 될 수 있고, 또는 클러스터의 각 구성 요소에 대한 점수의 평균이 될 수 있다. 일부 실시예 에서는, 한 쌍의 레코드를 점수화하는 것은 한 집합의 필드 값을 다른 것과 비교한 결과에 번호를 지정하는 것을 수반한다. 필드값의 비교는 정성적 및 정량적 평가 모두를 포함할 수 있다.
클러스터를 정의하는 데에서의 이슈는, 모호한 구성 요건의 지정이 가능해질 수 있다는 것인데, 이는 필드 값의 비교가 점수로 된 관계이기 때문이다. 특히, 점수는 하나 이상의 클러스터에 소속된 하나의 데이터를 표시할 수 있다. 한 실시예에서, 이 모호함은 정확한 키이의 경우에서와 마찬가지로 클러스터를 명확히 정의하기 위하여 데이터의 해당 부분을 강제로 클러스터 중 하나로 보냄으로써 처리될 수 있다. 어떤 경우에서도, 키이 기반 데이터 조작은 정확한 키이의 경우에서와 마찬가지로 필수적인 요소이다.
정확한 키이 기반의 데이터 동작은 여러 이유로 인하여 바라는 것처럼 항상 정밀하거나 정확할 수 없다. 하나의 이유는 데이터 또는 데이터 동작과 연관되어 본래부터 내재하는 모호성일 것이다. 예를 들어, 데이터가 하나 이상의 그룹에 소속될 수 있다. 몇몇 클러스터링 방법에 의하면, 내재적 모호함은 정확한 분류를 하기 어렵게 만들거나 달성 불가능하게 만들 수 있다. 예를 들어, 앞서 언급한 인사 자료 데이터 베이스에서, 직원들은 소속한 부서에 따라서 분류되고, 한 직원이 동시에 마케팅 및 R&D와 같이 동시에 두 개 부서에 소속할 수 있다. 강제로 그 직원을 마케팅 또는 R&D중 어느 한 부서로 연관시킨다면 잘못이 될 수 있다. 단순히 그 직원을 두 부서 모두에 연관시킨다면 이중 계산의 문제가 생길 수 있다. 예를 들어, 의료비와 같은 비용이 같은 직원에 대해 두 배로 계산될 수 있다.
정확한 분류가 가능하지 못하게 되는 또 하나의 이유는 계류중인 사건의 결과가 현재의 분류에 영향을 미칠 수 있기 때문이다. 예를 들어, 어떤 단체의 법적 지위가 자선 단체인가 아닌가는 납세 범위를 변화시킨다. 만일 IRS와 해당 단체간에 그 해당 단체가 자선 단체의 자격이 있는지 따라서 세금 공제의 자격이 있는지에 관하여 소송이 진행 중이라고 가정해보자. 그 단체의 연간 예산에서, 납세 자격이 자선 단체로 되어 있고 따라서 적은 예산만이 납세를 위하여 편성되어 있다면, 그리고 이후에 법원이 그 단체는 자선단체가 아니고 따라서 자선 단체에게만 허락된 세금 감면을 받을 수 없다고 판결한다면, 연간 예산은 개편되어야 할 것이다. 그러한 상황에 대응하는 전통적인 방법은 종종 예산에 주석을 달아 법원의 부정적 판결이 예산에 영향을 줄 수 있다고 설명하는 것에 의해 이루어졌다. 법원의 부정적인 판결이 내려지면 예산은 수정되어야만 했다. 그러나 예산을 수정하는 것보다 더 안 좋은 것은, 만약 예산이 다른 용도로 사용되거나, 다른 사업 분야에 사용되거나, 다른 나라에서 사용되거나 했던 경우, 파급 효과를 예측하기 어려울 것이므로 예산 자체를 넘어서 수정이 불가능할 것이다.
위의 두 가지 예는 기존의 데이터 접근 방법이 클러스터에 대한 모호한 지정을 처리하는데 얼마나 부적절한지를 보여준다(“부분적 구성 요건”). 모호한 지정은 클러스터에 대한 일대일 일치를 확정할 수 없거나 확정하지 않는 것이 더 나을 때 일어난다. 다중으로 클러스터를 지정하는 데 대한 하나의 반론은 어떻게 회계 무결성을 보전하는가이다. 부분적 구성 요건의 방법은 이러한 목적을 위하여 사용될 수 있고 이후 본 명세서에서 구체적으로 설명될 것이다. 모호한 구성 요건을 가지는 요소를 포함하는 클러스터를 처리하기 위하여, 퍼지 데이터 조작이 사용될 수 있다.
클러스터가 중복되는 구성 요건을 가지는 요소를 가지고 있고, 일부 데이터가 하나 이상의 클러스터에 연관되어 있는 요소가 있을 때, 퍼지 롤업 데이터 조작이 회계 무결성을 유지하고 가능한 다른 지정과 연관된 오류의 범위를 보고하면서 계산을 수행하기 위해 사용될 수 있다. 인사 관리의 예에서, 퍼지 롤업 조작이 부서의 총 비용 문제에 사용될 수 있다. 한 직원이 하나 이상의 부서에서 일한다면, 그 직원의 부분적인 구성 요건을 반영하여 그 직원에 대한 비용은 부서간 에서 할당될 수 있다.
클러스터 구성 요건이 위의 법률 문제의 예에서와 같이 미래의 사건에 따른 조건부 상황이거나, 또는 위에서 나왔던 은행의 예에서 상대방의 결정에 관한 것처럼 모호하거나 불완전한 정보 때문에 확정적이 아니라면, 예로서 그룹 단위의 금전 총합을 계산하기 위한 퍼지 롤업 조작이 회계 무결성을 보전하면서 이러한 불확정성을 반영하여야 한다. 물론, 회사의 세금 분류와 같은 불확실한 미래 사건의 경우에도 결국 하나의 결과는 일어난다. 미확정 상태에서 특정 방안으로 지정하는 것은 기획 및 위험 평가의 목적에 대한 잘못된 기대를 줄 수 있다.
예를 들어, 도2a에서, 데이터 요소 (120)이 클러스터 (122), 클러스터 (124), 또는 클러스터 (126)의 어디에 속할지는 불확정적이다. 데이터 요소 (120)이 동시에 세개의 클러스터 (122), (124), (126)에 속할 수 있다. 데이터 요소 (120)이 특정 시간에는 하나의 클러스터에 속하지만 3개의 클러스터를 순환하는 경우도 있을 수 있다. 클러스터 (122), (124), (126)에 속하는 데이터 요소 (120)의 구성 요건은 n1, n2, n3로 표시된다. n1, n2, n3은 분수이다. 데이터 요소 (120)이 동시에 3개의 클러스터에 동일한 확률로 속하는 경우에 n1, n2, n3 각각에는 분수 1/3이 지정될 수 있다. 이 경우, 클러스터 (122), (124) 및 (126)에 속하는 데이터 요소(120)의 부분적 구성 요건의 합은 1이다 (1/3+ 1/3+ 1/3 = 1). 데이터 요소 (120)이 특정한 하나의 시간에는 하나의 클러스터에 속해 있지만 세 개의 클러스터를 순환하는 예에서, 시간 t1에서, n1, n2, n3의 값은 1, 0, 0이 될 수 있다. 시간 t2에서는, n1, n2, n3는 0, 1, 0의 값이 될 수 있다. n1, n2, n3의 값은 변할 수 있지만, 그 값들의 합은 항상 1이어야 한다.
은행의 예에서, 모호하게 정의된 상대방에 대한 대출에 대하여 다른 방법의 지정에 기하여 각 상대방에 대한 대출의 최대값 및 최소값을 파악하는 것은, 어떠한 특정 상대방에 대한 가능한 대출에 대한 더욱 완벽한 구도를 제공하고 불확정적인 정보의 상태를 주고 받게 된다. 미래에 대한 현재의 믿음 또는 모호함에 대한 가능한 해결책은, 구성 요건의 가능성을 이용하여 클러스터들에게 구성 요소의 가중치된 지정을 함으로써 포함시켜질 수 있고 이러한 가중치는 정보의 변경된 상태를 반영함으로써 시간이 지남에 따라 더 정확해질 수 있다.
퍼지 결합 조작은 두 개 이상의 데이터 집합이 공통의 정확한 키이를 공유하지 않는 경우 이들을 결합할 수 있다. 예를 들어, 주소 표기가 동일하지 않을 때에도 다른 데이터 베이스들로부터의 고객의 가계 레코드가 주소에 기하여 결합될 수 있다. 하나의 데이터 집합에서의 주소가 불완전하거나 부정확할 때, 일치 후보를 위한 제2 데이터 집합에 다수의 레코드가 있을 수 있다. 퍼지 결합 조작은 이러한 가능성을 수용한다.
정렬 조작은 레코드를 키이에 의하여 정렬하고 종종 롤업 또는 결합과 같이 레코드의 그룹에 대해 조작하게 되는 키이 기반 조작의 앞에 사용된다. 퍼지 정렬은, 개별 레코드가 (확률적으로 또는 실제로) 여러 개의 클러스터의 구성원이 될 수 있을 때 퍼지 롤업과 같은 조작을 하기 이전에 레코드를 정렬하는 데 사용할 수 있다. 정렬 순서의 개념과 정렬 조작은 여러 클러스터의 모호한 구성원이 되는 개별 레코드를 복제하거나 최종 정렬에서 연관된 클러스터의 각각에 그들을 위치지움으로써 확장된다.
퍼지 데이터 조작은 정확하게 일치하는 키이에 기한 키이 그룹 대신에 클러스터가 사용된다는 점에서 기존의 데이터 조작과 다르다. 클러스터는 키이가 Leslie일 때 Lesley를 불러오는 앞의 예를 포함한다. 클러스터는 존 스미스가 마케팅 부서에서 근무 시간의 반만 일하기 때문에 정확히 마케팅 부서에 속하지 않는 경우에도 마케팅 부서에 존 스미스를 분류하는 예도 포함한다.
도2b는 전형적인 퍼지 데이터 조작을 보여준다. 이 예에서, 퍼지 데이터 조작 (180)은 키이 (160)에 대하여 동작하고 데이터 집합 (150)을 불러들인다. 키이 (160)는 종래의 키이다. 불러들여진 데이터 집합 (150)은 다섯 개의 데이터 요소를 포함하고, 이는 데이터 요소 (151), 데이터 요소 (152), 데이터 요소 (153), 데이터 요소 (154), 데이터 요소 (155)이다. 이 다섯 데이터 요소는 키 (160)과 일치하지 않는다. 하지만 그럼에도 불구하고, 그들은 데이터 조작에 의해 불러들여질 수 있다. 이것이 퍼지 데이터 조작이 기존의 데이터 조작과 다른 점이다. 키이가 주어지면, 기존의 데이터 조작에서는 정확히 키이와 일치하는 데이터를 불러들인다. 그러나 퍼지 데이터 조작에서는 정확하게 키이와 일치하지 않는 데이터를 불러들일 수 있다.
퍼지 데이터 조작의 기본이 되는 클러스터의 정의의 기초는 다른 레코드에 있는 데이터의 비교이다. 각 클러스터에 어떤 레코드가 속하는지 결정하는 데 비교 테스트가 사용된다. 몇몇 실시예에서, 비교 테스트는 각 레코드에서 가져온 필드 값을 선택하여 점수를 주는 함수이고, 두 데이터 (키이는 하나의 데이터이다) 사이의 정량적 차이가 거리가 될 수 있다.
(a) 두 데이터 사이의 거리
두 데이터 사이의 차이는 간단한 경우가 많다. 예를 들어, 이름 Leslie와 Lesley의 차이는 분명하고 풀타임(full time) 직원 및 파트타임 직원의 차이도 분명하다. 그러나 두 데이터 사이의 차이를 정량화하는 것은 항상 간단한 것은 아니다. 두 데이터 사이의 거리를 측정하는 데 사용할 수 있는 두 가지 방법을 간단히 설명한다. 아래에서 설명하는 원칙에 기하여 데이터 사이의 차이를 정량화하는 다른 방법을 쉽게 따라 개발할 수 있다는 것을 이해해야 한다. 퍼지 일치 기술과 거리 측정의 다른 예는 본 명세서에 참조로 포함된 미국 특허 공개 번호 제2009/0182728호에 설명되어 있다.
(1)두 단어 사이의 거리
“편집 거리”라고 종종 불리는 (예를 들어 주어진 문자 집합으로부터 형성된) 두 단어 사이의 거리를 측정하는 방법은 한 단어에서 다른 단어로 가는데 얼마나 많은 문자 조작이 걸리는지를 세는 것을 수반한다. 이 예에서는, 글자 조작은 단일 문자를 수반한다. 문자는 다양한 방법으로 인코딩될 수 있다. 예를 들면, 그것은 단일 또는 멀티 바이트 인코딩 또는 문자 집합의 문자를 나타내는 데 사용하는 코드 포인트를 사용하여 인코딩될 수 있다. 레벤시타인(Levenshtein) 편집 거리는 한 단어에서 다른 단어로 되는데 필요한 문자 삽입, 삭제 및 대안의 수를 센다.
레벤시타인 편집 거리와 그 변형들의 한계는 온라인 퍼지 일치 맥락에서는 사용될 수 없다는 것인데, 이는 이전에 본 적이 없으며 기존의 참조 집합에서 일치하는 변형을 찾고 싶은 단어가 있는 경우이다. 변형을 계산하기 위한 삭제 알고리즘 (예를 들어 본 명세서에서 참조로 포함된 미국 특허 공개 번호 제2009/0182728호에 기재된 바와 같은)이 대신 적용될 수 있다. 이 방법에서는, 단어 사이의 거리는 각 단어에서 일치하는 단어에 도달하는데 요구되는 삭제의 수를 계산함으로써 결정된다. 도2c는 Leslie와 Lesley 사이의 삭제 거리 계산 방법을 보여준다. 조작 (102)는 "Lesle"를 얻기 위해 "Leslie"에서 "i"를 삭제한다. 조작 (104)는 "Lesle"를 얻기 위해 "Lesley"에서 "y"를 삭제한다. " Leslie "와 " Lesley "사이의 거리는 1+1이다 (각 단어에서 1회 삭제; 또는 단어들 중 하나에만 관하여는 1회 삭제 및 1회 삽입).
몇 실시예에서, 삭제된 문자의 위치와 상대치를 비교하여 더욱 수정된 점수 부여가 이루어질 수 있다. 이는 가중치된 점수를 가능하게 하는데, 여기서는 변화의 다른 종류에 대하여 다른 가중치가 적용된다. 예를 들어, 치환은 이동보다 덜 중요할 수 있고 또는 "m"을 “n”으로 치환하는 것은 "m"을 “K”로 치환하는 것보다 덜 중요하다.
삭제 알고리즘은 다음과 같은 방법으로 참조 데이터 집합의 온라인 퍼지 검색에서 사용될 수 있다. 삭제 사전이 만들어지는데, 이는 하나 이상의 글자를 삭제하여 얻은 모든 단어를 형성함으로써, 필요하다고 여겨지는 삭제 횟수를 통하여, 참조 데이터 집합의 각 단어로부터 참조 데이터 집합으로부터 만들어진다. (삭제의 횟수는 더 큰 변형을 허용하도록 단어의 길이에 따라 증가될 수 있다.) 원래의 단어와 삭제된 문자의 위치는 삭제로 인해 만들어진 단어와 함께 기록된다. 검색이 이루어지면, 질의어(query word)는 하나 이상의 문자를 삭제하여 얻은 모든 단어를 구성하도록 처리된다. 이들 단어의 각각은 참조 삭제 사전에서 해당하는 원래의 단어를 찾기 위하여 조회된다. (삭제 위치의 레코드가 일치를 점수화하기 위하여 사용될 수 있다.) 일치된 원래의 단어는 데이터 집합의 통상의 정확한 검색/조회에서 사용될 수 있다. 되풀이하면, 이 방법은 질의어가 참조 데이터 집합에서 나타나지 않는 변형의 경우에도 사용 가능하다.
다른 예는 "Corp."와 "Co."사이의 거리이다. "Corp."에서 “Co.”까지, 한 단어에서 2회 삭제가 필요하고, 이는 글자 r의 삭제 및 글자p의 삭제이다. 그러므로 두 단어 사이의 거리가 각 단어에서 일치 단어를 얻기 위하여 몇 회 삭제가 (최소한) 필요한가로 정의된다면, "Corp."와 "Co."사이의 거리는 2+0이 될 수 있고 한편으로 "Corp."와 "Co."는 같은 단어 “corporation”에 대한 서로 대체 가능한 두 개의 약자이다. 정확한 일치 단어에 의존하는 기존의 방법에 의하면 사용자가 입력한 데이터가 "Corp."를 사용하는 한편 데이터 조작에서 사용되는 키이가 "Co."를 사용하는 경우 만족스러운 결과가 얻어지지 않을 것이다. 예를 들어, 정확하게 키이와 일치하는 입력만을 불러들이는 기존의 검색 데이터 조작에 의하면, 사용된 키이가 ABC Co.인 경우 ABC Corp. 의 결과를 가져오지 않을 것이다. 퍼지 데이터 조작에서는, 퍼지 검색이 일정 거리의 키이, 예를 들어 2+0 또는 그 이상의 범위 이내에 있는 데이터 입력을 회신하도록 구성될 수 있다. 그러한 퍼지 검색에서는 ABC Corp.는 ABC Co. 키이의 일치 단어로서 회신될 수 있다.
한편, 이 두 단어들이 서로 동의어로서 교환 가능하기 때문에, "Corp."와 "Co." 사이의 거리가 0으로 정의될 수도 있다. 퍼지검색은 사용자 특정 동의어를 포함하는 데이터 입력을 회신하도록 구성될 수 있다. 이 예는 퍼지 조작이 처리하기 위하여 필요로 하는 복잡도의 시범예이다.
위의 예에서 거리는 글자의 삽입 또는 삭제와 같은 조작에 기하여 계산되는데, 삽입과 삭제 모두 하나의 조작으로 계산된다. 다른 실시예에서, 거리는 가중치된 조작에 기하여 계산될 수 있다. 가중치는 하나의 조작 유형 예를 들어 삽입을, 다른 조작 유형 예를 들어 삭제에 대하여 더 치우치도록 사용될 수 있다. 한편, 가중치는 하나의 개별 조작을 다른 개별 조작에 대하여 치우치도록 사용될 수 있다. 예를 들어, 여백의 삭제에 대응하는 조작은 글자 z의 삽입에 대응하는 조작보다 덜 가중치될 수 있고, 이는 여백의 누락은 통상 있는 오타 에러인 반면 영어 단어에서 글자 z를 삽입하는 것은 두 개의 영어단어 사이의 완전한 차이보다는 덜한 오타 에러일 수 있다는 점을 나타낸다.
예를 들어, “sunshine”과 “sun shine”과의 거리는 여백 하나의 삽입이다. “zinc”와 “Inc”는 글자 z의 1회 삽입이다. 개별 조작이 거리를 계산하는 데 가중치 되어있지 않다면 이 두 거리는 같은 하나의 조작이다. 퍼지 검색 조작이 하나의 조작의 거리 내에 있는 어떠한 일치도 회신하도록 구성되어 있을 때, “sunshine” 키이에 의한 검색은 “sun shine”을 회신할 것이고 “Inc” 키이에 의한 검색은 “zinc”를 회신할 것이다.
그러나 가중치된 조작이 사용되는 경우, 두개의 거리 즉, “sun shine”과 “sunshine”의 거리 및 “zinc”와 “Inc”의 거리는 달라질 수 있다. 예를 들어, 여백의 삽입은 오타에 의하여 일어나기 쉽다는 사실을 반영하여 0.5로 가중치될 수 있다. 글자 z의 삽입은 z글자가 실수로 추가될 가능성이 적다는 사실을 반영하여 1로 가중치될 수 있다. 도2d는 조작이 그와 같이 가중치될 때, “sun shine”과 “sunshine”의 거리는 0.5 조작인 한편 “Zinc”와 “Inc”의 거리는 1조작인 것을 보여준다.
퍼지 검색 데이터 조작이 키이의 0.5글자 조작 거리 이내의 어떠한 일치도 회신하도록 구성된 실시예에서, “sunshine” 키이에 의한 검색은 “sun shine”을 회신할 것이다. 그러나 “Inc” 키이에 의한 검색은 “Zinc”를 회신하지 않을 것이다.
몇몇 실시예에서, 보다 많은 정교한 가중치 옵션이 정의될 수 있다.
(2) 두 개의 영국 우편 번호 사이의 거리
퍼지 일치가 유용한 다른 응용례는 동일한 집에 대하여 중복되는 레코드를 가지는 회사의 고객 주소 데이터 베이스에서 역할을 한다. 같은 집에 대하여 여러 번 입력하게 되면 집과 연관된 우편번호에 오타가 생길수 있거나 또는 집과 관련된 이름에 스펠링이 잘못될 수 있다.
일어날 수 있는 오타의 경우는 여백을 삽입하는 것, 글자를 빼거나 넣는 것, 글자를 잘못 타이핑하는 것을 포함할 수 있다. 사용자가 같은 우편번호에서 두 번 오타를 하는 것은 완전히 이례적인 것은 아니지만 덜 일어날 수 있다. 사용자가 같은 우편번호에서 세 번 오타를 하는 것은 불가능한 것은 아니지만 덜 일어날 수 있다.
도3은 우편 번호 인쇄상의 오류로 인해 발생 가능한 중복 레코드를 보여준다. 고객 주소 데이터 베이스 (300)에는 존 스미스의 이름으로 6개의 입력이 있다: 존 스미스 ox26qt; 존 스미스 ox2 6qt; 존 스미스 ox26qy; 존 스미스 ox2 6qy; 존 스미스 ox2 6qx, 존 스미스 ox2 7qy. 모든 레코드의 쌍 사이의 거리는 해당 레코드 쌍을 연결하는 선 옆에 표시된다.
이 회사가 실제 레코드의 우편 번호로부터 1+1의 삭제 거리 이내에 있는 우편 번호를 포함하는 레코드가 허위의 레코드, 실수로 입력된 레코드의 가능성이 가장 있고 실제 레코드의 복제로서 처리할 것을 결정했다고 가정하자. 이 회사가 검색 키이의 1+1의 삭제 거리 이내의 모든 레코드에 대하여 검색하는 퍼지 검색을 정의하였다고 더 가정하자.
한 단어가 다른 단어의 특정 거리 이내에 있다면 그 한 단어는 그 다른 단어의 변형이다. 다른 단어는 기본 단어라고 한다. 본 실시예에서, 특정 삭제 거리는 1+1이다 (각 단어로부터 1회 삭제). 고객 주소 데이터 베이스(300)의 각 우편 번호 사이의 거리 정보는 도3에 리스트 되어있다. 도4에 기하면, 도4에 도시된 것처럼 각 레코드의 변형을 결정할 수 있다.
도4는 시각화 도구이며 이는 각 레코드를 독자의 그늘 상자로 나타내고 각 레코드의 상자를 그 변형의 상자와 겹치게 하여 형성된다. 예를 들어, 레코드A의 상자는 레코드 B, C, E의 상자와 겹치는데 이는 레코드 B, C, E가 레코드A의 변형이기 때문이다. 레코드E의 상자는 레코드A 및 F의 상자와 겹치는데 이는 레코드A및F가 레코드E의 변형이기 때문이다.
몇몇 경우, 회사는 어떤 레코드가 진짜 레코드인지 알 수 있지만 한편 다른 경우에는 회사가 어떤 것이 진짜 레코드인지 알 수 없을 수 있다.
첫번째 예에서, 회사는 진짜 레코드가 “존 스미스 ox2 6qy”임을알고있다. “ox2 6qy”를 검색 키이로 사용하는 퍼지 검색을 실행하면 다음의 두가지 레코드가 불러들여질 것이다: “존 스미스 ox2 6qt” 및 “존 스미스 ox26qy”. 회사는 동일 클러스터에 있는 이 두 레코드를 진짜 레코드 “존 스미스 ox2 6qy”의 복제라고 취급할 것이다. 회사는 두 개의 복제를 지우거나 세 개의 레코드를 공통 키이를 지정함으로써 그룹으로 하도록 결정할 수 있다. 이 그룹은 퍼지 클러스터의 한 예이다.
퍼지 클러스터링은 정확히 일치하지는 않지만 서로 일정 거리 이내에 있는 키이들을 가지는 데이터를 함께 그룹으로 하는 데이터 동작이다. 퍼지 클러스터링은 위의 예에서 보여진 퍼지 검색과 관련이 있을 수 있다. 진짜의 레코드가 위의 경우에서와 같이 알려져 있을 때, 퍼지 검색은 진짜 레코드의 특정 거리 이내에 있는 데이터를 불러들인다. 불러 들여진 데이터는 퍼지 클러스터를 형성한다.
회사가 진짜 레코드가 어떤 것인지 모르는 경우에, “존 스미스 ox2 6qt” 및 “존 스미스 ox26qy” 둘 다가 맞는 레코드가 될 수 있고, 어떤 레코드가 복제이고 이에 따라 퍼지 클러스터를 만드는 것은 단순한 퍼지 검색에서는 이루어질 수 없을 수 있는데 이는 어떻게 레코드를 그룹으로 하는지에 대한 앞선 가이드가 없기 때문이다. 섹션(b)에서는 그러한 경우에 퍼지 클러스터를 만들기 위하여 채택할 수 있는 몇 가지 접근방법을 구체적으로 설명한다.
(3) 정량적 차이의 다른 예
두 데이터 사이의 거리는 두 데이터 사이의 정량적 차이의 한 예이다. 두 데이터의 차이는 다른 방법으로 정량화할 수 있다.
몇몇 실시예에서는, 점수 시스템은 한 쌍의 데이터 사이의 유사성에 기하여 일치하는 쌍에 점수를 주도록 개발될 수 있다. 쌍 사이의 정량적 차이는 표준화된 일치 점수 방법의 보완으로서 정의될 수 있다.
계류중인 사건, 예를 들어 소송의 결과 때문에 불확정성이 존재하는 시나리오에서, 한 카테고리 또는 다른 카테고리에 속하는 데이터의 확률은 그 카테고리를 표시하는 데이터와 키이 사이의 거리를 정량화하는 데 사용될 수 있다. 카테고리를 표시하는 데이터와 키이 사이의 거리는 두 개의 카테고리만 있는 경우 데이터가 해당 카테고리에 속할 확률의 보수(complement) 또는 더 많은 카테고리가 있는 경우 데이터가 해당 카테고리에 속할 확률의 켤레(conjugate)로 정의될 수 있다.
(b) 변형 관계와 변형 (퍼지) 결합
결합 조작에서 쌍이 되는 데이터 요소와 비교되는 각각의 데이터 집합의 각각의 데이터 요소로부터의 객체는 데이터의 조각, 또는 조각의 결합으로 정의될 수 있다. 관계형 데이터 베이스의 표의 행에서, 객체는 열의 값, 값의 일부 (예, 서브 스트링), 또는 하나 이상의 열의 값의 결합이 될 수 있다. 필드로 구성된 일련의 레코드로 구성된 플랫 파일(flat file) 데이터 집합에서, 객체는 하나의 필드, 하나의 필드의 부분, 또는 하나 이상의 필드의 결합에서의 값이 될 수 있다. 문서에서, 이는 텍스트의 조각 또는 텍스트의 공통요소가 없는 조각들의 결합이 될 수 있다.
객체 {k}의 집합 S를 고려하자. S에 있는 각 객체 k는 변형들이라고 불리는 변형 객체들 {v}의 아마도 비어있는 연관된 집합을 가진다. 관계
k~v
는"v가 k의 변형이다"라고 읽는다. 몇몇 실시예에서 두 객체는 함수 s (k, v)에서 점수가 임계값 T보다 낮은 경우 변형이라고 결정된다.
s(k,v) < T
(몇몇 점수 함수에서, 임계값을 넘는 것이 편리할 수도 있다.) 객체 사이의 거리는, 앞에서 논의한 것처럼 스트링에 대한 편집 또는 삭제거리라고 하면, 단어나 어구를 비교하기 위한 점수 함수를 구성하는 기초로서 사용될 수 있다.
변형 관계는 동등한 관계, 즉 대칭이고 추이 속성을 가지는 관계가 될 필요는 없지만 (k ~ k ', k'~ k'' => k ~ k "), 때때로 동등한 관계이다. 변형 관계는 동등한 관계가 아니더라도 대칭이라고 추정된다.
k ~ v => v ~ k,
즉, v가 k의 변형이라면, k는v의 변형이다.
*둘(이상)의 데이터 집합A와B의 정확한 (내부)결합은 동일한 객체인 A 에서의 kA 및 B에서의 kB를 포함하는 레코드 (행, 문서, 기타)의 쌍으로 정의될 수 있다.
kA = kB
객체 kA와 kB 는 키이라고 한다.
변형(“퍼지”) 내부 결합은 두 단계로 정의된다. 제1로, 레코드 (또는 행, 문서, 기타)와 같은 데이터 요소의 잠정적 쌍이 만들어진다. 한 실시예에서 A에 있는 kA는 B에 있는 그 변형인 vBn과 쌍이 되어 kA ~ vBn이 된다. kA 및 vBn와 연관된 레코드의 쌍은 이후 처리되어, E(kA ,vBn), 유지할 레코드의 쌍이 어떤 것인지 결정한다. (정확한 데이터 조작에서는, 모든 쌍들이 유지되고, 따라서 일치 및 점수측정 단계가 단일한 비교 kA = kB로 된다.) 일반적으로 평가 조작은 쌍을 만드는데 사용되는 객체 이상으로 레코드 쌍에서 추가 객체에 대한 비교를 수반한다. 몇 실시예에서, 평가 조작은 일치를 정의하는 일치 임계값을 확실히 넘어가는 점수를 만든다. 부분결합 및 외부결합은 일치 레코드가 발견되지 않는 때 (또는 유지되지 않는 때) 반대쪽 레코드에 대하여 0의값이 특정되는 정확한 데이터조작을 유추하여 정의된다.
가장 간단한 잠정적 쌍은
kA ~ vBn ,
로 주어진다. 즉, B에서의 kA의 변형들의 집합이다. 이 쌍 형성(일치)단계는 제안된 쌍이 유지되어야 하는지를 결정하는 평가(“점수”)단계에 의해 보완된다.
변형 쌍 kA ~ vBn 의 확장의 서열이 존재한다. 첫번째 일반화는 쌍 (kA ,vBn)을 추가쌍 (kA, vBnm)에 의해 추가함으로써 확장하는 것이다.
kA ~ vAn, vAn ~ vBnm
즉, kA는 A에있는 kA의 B에 있는 변형과 쌍이 된다. 변형 관계가 동등 관계가 아닐 때, 이는 B에서 요소의 더 큰 집합을 이룬다. 이 조작은 대칭이 아님에 주의하라: kA 에 이를 수 없는 B의 객체 vBnm가 있을 수 있다. 이는
vBnm = kB , kB ~ vBi , vBi~ vAij ,
로 주어진다. vAij = kA로는 되지 않는다. 이는 B에 있는 kB의 변형이 kA를 필요로 하지않기 때문이다. 기껏해야, kB는 하나의 변형으로서 kA의 변형을 가질 것이 요구될 뿐이다.
변형의 변형에 대한 추가 확장 등도 가능하다. 구체적으로,
kA ~ vAn, vAn ~ vBnm, vBnm ~ vBnmp
일때
쌍(kA, vBnmj)에 의해 (kA ,vBn)를 확장하는 것은 아래의 이유로 대칭이다.
어떤 m, n, p에 대해 B (위의 조작에 의하여 kA 와 쌍이 됨)에서 요소 kB 가 있으면, 즉 kB = vBnmp 이면,
kB ~ vBi, vBi ~ vAij, vAij ~ vAijl일 때
인 요소 vAijl = kA 가 존재한다.
달리 말하면, 반대로 적용된 동일한 변형 일치 과정은 반전된 쌍을 포함한다: A에서의 객체로부터 도달한 B에서의 모든 객체는 결국 동일한 과정을 거쳐 A에 있는 본래의 객체에 도달할 수 있다.
두 개 이상의 데이터 집합으로의 확장은 데이터 집합을 쌍으로 결합하고 결과 쌍의 카디션곱(Cartesian product)을 취하는 것으로 정의될 수 있다. 따라서 A,B,C를 결합하는 것은
kA ~ vBn,
kA ~ vCm,
⇒(kA, vBn , vCm).
고차 확장은 쌍의 형태로 되어 위에서 정의된 고차 확장 (예, 변형의 변형)을 이용하여 얻어진다. 선택적으로, 몇몇 상황에서, B와 C사이의 변형 관계는
어떤 n, m에 대하여 vBn ~ vCm 이다.
고차 변형의 사용은 B와 C사이에 직접 이 연결을 만들기 위하여 요구될 수 있다 (그 관계는 물론 이미 A를 통하여 매개되어 있다).
위에서 설명한 대로, 변형 관계의 하나의 유용한 소스는 편집 거리에 의해 관계된 단어들을 쌍으로 만드는 것이다. 단어 사이에 고려된 편집거리가 1로 제한되어 있다면, 이는 데이터 집합 내의 어떠한 쌍의 집합을 변형으로 인정하는 것이다. 예를 들어, "Smith"는 변형으로 "Smth", "Smith2", "Smyth"를 가질 수 있다. "Smith20"은 "Smith"의 변형은 아니지만, "Smith2"의 변형이고, 따라서 편집 거리 1의 변형 관계는 추이적이 아니다.
변형 결합은 단일 단어 또는 전체 필드가 변형 키이로 사용될 수 있을 때 이용할 수 있다. 예를들어, 데이터 집합을 검색하는 것은 변경 키워드를 사용하는 변형 결합으로 유형화될 수 있다.
질의 어구는 키워드의 집합으로 분해되고, 각 키워드는 타겟 데이터 집합으로부터의 단어의 색인에 있는 변형들과 일치된다. 색인은 타겟 데이터 집합의 특정 필드 내의 단어를 포함하는 각 레코드에 대하여 레코드 식별자 (키)에 단어를 쌍으로 만든다. 대응하는 레코드 식별자의 목록이 인덱스에 대한 각 키워드의 변형 일치 결과로부터 얻어지고, 이 목록은 하나 이상의 키워드를 공유하는 레코드를 발견하기 위하여 교차될 수 있다. 회신된 레코드의 목록은 일치하는 키워드의 조합에 점수를 지정함으로써 배열된다. 점수는 데이터 집합 내의 각 키워드의 상대 빈도(“반전 문서 빈도”), 타겟 데이터 집합 레코드 내의 키워드의 위치와 비교된 질의 어구 내의 키워드의 상대 위치(예, 순서, 접근도), 또는 질의 어구로부터의 단어의 부재를 고려할 수 있다. 또한 키워드는 점수를 더욱 차별적으로 만드는 상관성의 다른 측정들과도 연관될 수 있다.
변형 결합은 또한 단일 단어에 대한 참조로 사용될 수 있다. 예를 들어, 한 데이터 집합의 고객은 이름, 성 및 주소에 의해 식별될 수 있다. 두번째 데이터 집합에서 이 고객은 성과 주소로 뒷받침되는 일치에 의한 이름에 의해 검색될 수 있다. 일치 과정은: 소스 데이터 집합의 이름으로부터, 변형 이름의 집합을 사용하여 일치 후보의 집합을 식별하고 불러들인다. 이 후보들은 호응도가 일치를 식별하기에 충분한지를 결정하기 위하여 성과 주소에 관하여 더 비교된다.
예를 들어, 소스 데이터 집합의 레코드가 다음과 같다고 하자.
Paul, Smith, 20 Walker Street
그리고 타겟 데이터 집합의 일치 변형의 집합은 (Smith, Smyth, Smithh) 이다. 타겟 데이터 집합의 연관된 레코드들은
1, Paul, Smith, 20 Walken St
2, Robert, Smith, 1532 East Grove Ave
3, P, Smyth, 19 Western Ave
4, Pal, Smithh, 20 Walker Street
보강 알고리즘은 레코드 1과 4가 일치에 충분할 만큼 가깝다고 발견할 것이다. 이 레코드들은 참조(검색)에 의하여 또는 (두 데이터 집합이 서로 스트리밍 되어있는) 변형 결합에서 회신될 것이다.
한편, 아마도 소스 데이터 집합에서, 원래의 "Smith"는 타겟에서 일치 레코드를 가지는 변형 "Smith2"를 갖는다.
5, P, Smith20, Walker Street
"Smith20"은 "Smith"의 직접 변형은 아니지만 소스 데이터 집합에서 변형 "Smith2"로부터 도달될수있다.
변형 결합의 다른 용도는 클러스터링 전에 슈퍼 클러스터를 정의하는 것이다. 이는 클러스터링이 정의된 후에 논의될 것이다.
(c) 클러스터 및 부분적 구성 요건
많은 정확한 키이 기반의 데이터 조작은 레코드가 공통 키이값을 공유하는 집합으로 그룹핑될것을 요구한다. 이 집합들은 때때로 “키이 그룹” 이라고 불린다. 예를 들어, 롤업 조작은 단일 레코드를 회신하기 위하여 키이 그룹 내에서 레코드를 가로질러 데이터를 결합하거나 집합한다. 계수, 합산, 최대값 또는 최소값, 벡터값, 일의적 값에 대한 중복 제거, 등이 롤업 조작에서 모두 계산될 수 있다. 레코드의 그룹을 단일 레코드로 합하는 어떤 조작도 롤업 조작으로 해석될 수 있다.
독립적 처리에 대하여 데이터가 데이터 파티션으로 병합되는 데이터 병렬 처리는 종종 키이 기반 파티셔닝에 의존하여 동일한 키이 그룹에 속하는 모든 레코드들이 동일한 데이터 파티션에 나타나있는지를 확인한다. 롤업이나 결합과 같은 조작이 이에 의존하여 순차(비 병렬)처리에서 산출할 것과 동일한 결과를 산출한다.
키이 그룹의 집합은 모든 레코드의 집합의 파티션을 공통 원소를 갖지 않는 집합으로 구성한다: 모든 레코드(객체)는 오직 하나의 키이 그룹의 구성 요소이다. 클러스터는 키이 그룹의 개념을 중복되는 집합을 수반하는 파티션으로 일반화하고, 여기서 구성 요건은 정확한 키이의 호응에 의하여 결정되지 않는다.
집합 S를 가중치 w(k,C)를 각각 가지는 객체 k의, 클러스터라 불리고 아마도 중복하는 집합들 {C}의 모임으로 파티션(분해)하는 것을 고려하자. 객체 k는 하나 이상의 클러스터 C의 구성 요소일 수 있고, 그렇다면, 그 클러스터 구성 요건은 모호하거나 부분적이라고 말해진다. C의 k에 지정된 가중치 w(k,C)는 C에서 k의 “부분적 구성 요건”을 정량화하고 이는 때때로 모호함의 측정이라고 불린다. 클러스터 C는 쌍 C={(k,w(k,C))}의 집합으로 표시될 수 있다. w(k,C)=0라면, k는 “C의 구성요소가 아니다”라고 말해진다. w(k,C)=1라면, k는 “확정적으로 C의 구성 요소이다.” 고정된 k에 대하여, C에 관한 가중치의 합은 1이고, S에서 확정적인 구성 요건에 상응한다.
∑w(k,C) = 1
C
가중치의 지정은 규칙 R과 연관되어있고 R로 라벨 붙여질 것이다. 주어진 집합 S는 전형적으로 클러스터의 집합으로의 하나 이상의 파티션을 인정하고 다른 규칙하에서 각 객체 k에 대한 하나 이상의 가중치 지정을 인정한다. 일반적으로, 다른 규칙에 연관된 가중치는 결합될 수 없다.
클러스터 C={(k,w(k,C))}의 보수는 집합 {(k,1-w(k,C))}으로 정의된다. 특히, 보수는 가중치 1로 C에 없는 객체를 포함한다. 클러스터들 {C}의 집합이 S에 스팬 (span)하지 않는다면, C에 관한 k에 대한 가중치의 합은 1이 아니고, S에서 {C}의 합집합의 보수는 그 집합에서 동일 요소를 제거한 것으로 추정된다.
두 개의 클러스터는 하나의 클러스터로 결합될 수 있고, 이에 따라 파티션은 정밀하지 않게 되는데, 이는 그 가중치들을 합하여 된다.
C1+ C2 = {(k,w(k,C1) + w(k,C2))}
클러스터는 이 과정을 역으로 함으로써 클러스터들로 분해될 수 있는데, 새로운 클러스터들 사이에 각 객체에 대한 가중치를 할당하여, 새로운 가중치들의 합이 본래의 가중치와 동일하게 한다. 객체는 클러스터로부터 제거될 수도 있는데, 예를 들어 선택 기준을 적용한 후에 가중치를 뺌으로써 이루어진다.
몇몇 경우, 가중치가 0<= w(k,C) <=1를 만족할 때, 가중치는 “k가 S에서 클러스터 C의 구성요소일 확률”로서의 해석을 인정할 수 있으나, 일반적으로 클러스터의 정의는 통계적이지 않다. 음의 가중치 및 1보다 큰 가중치의 가능성은 배제되지는 않으나 고정된 k에 대한 가중치의 합은 1이 되어야 한다.
C1+ C1와 같은 조합이 원칙적으로 형성될 수는 있으나, 이는 객체의 다수 복제를 포함하는 클러스터에 해당하고, 객체에 대하여 가능한 최대 가중치로 반영된다 (예, 이 경우에서 2). 각 객체에 대하여 가중치의 합이 1이라는 조건은 집합 S에서 각 객체의 오직 1개의 복제가 존재한다는 것을 가정한다. 이것에 해당하지 않으면, 가중치의 합의 값은 그에 따라서 변경될 수 있다. 일반적으로, 총 가중치 값이 객체에 따라 변화하는 것을 배제하는 규칙은 없다.
부분적 구성 요건을 가지는 클러스터는 퍼지 집합의 개념과 유사한데, 이는 집합의 각 객체에 가중치를 지정하는 구성 요건 함수를 가지는 객체의 집합으로 기술될 수 있기 때문이다. 그러나, 여기서 강조되어야 할 것은 고립된 퍼지 집합이 아니고 파티션의 요소로서의 클러스터이다. 특히, 가중치는 파티션의 속성이고 고립된 클러스터 내의 객체의 속성이 아니다. 클러스터 내에서 객체에 지정된 가중치는 다른 클러스터에 대한 가능한 지정에 의하여 영향을 받는다. 중점은 클러스터 내의 구성 요건 함수로부터 클러스터에 거쳐 객체에 대해 구성 요건을 할당하는 함수로 옮겨진다.
부분적 구성 요건을 구비하는 클러스터들은 많은 상황에서 자연스럽게 발생한다. 간단히 말하면, 부분적 구성 요건은 클러스터에 객체를 지정하는 데에서의 모호성의 결과이다. 정확한 키이가 있다면, 객체가 어느 키이 그룹에 속하는가에 대한 질문은 없을 것이다. 구성 요건이 정확히 호응할 필요가 없는 데이터 또는 데이터의 조합에 기한다면 구성 요건의 결정은 그다지 명확할 필요가 없을 것이다.
이하는 부분적 구성 요건으로 이끌어질 수 있는 광범위한 데이터 품질 이슈의 예이다.
데이터는 내재적으로 클러스터링 규칙에 관하여 모호할 수 있다. 때때로 클러스터들은 그 정의가 배타적 구성 요건을 추정하지 않는다는 단순한 이유로 중첩한다. 회사에서 두 개의 다른 부서에서 일하는 직원을 고려하자. 직원 목록이 부서에 의해 클러스터링된다면, 그 직원은 두 개의 클러스터에서 나타나고, 이는 정당한 상황을 나타낸다. 이 경우, 부분적 구성 요건은 그 직원이 각 부서에서 일하는 시간의 비율을 반영하도록 설정될 수 있다. 이는 결국 별도의 부서에서 동일한 식별 정보를 가지는 두 명의 별도의 직원이 있다는 잘못된 결론을 이끌어낼 가능성을 줄여준다.
데이터는 불완전할 수 있다. 필드에서 변형 단어는 식별을 모호하게 할 수 있다. 집에 주소를 지정할 때, 한 주소의 레코드의 집 번호가 12일 수 있지만, 그 거리에는 번호가 12인 집이 없다. 대신 번호가 1, 2, 21인 집이 있다. 먼저의 두 개에 대한 가중치가 0.3이고 마지막에 대한 가중치가 0.4라면 이는 삽입 오류보다 이사 오류의 가능성이 더 크다는 것을 반영할 수 있다.
데이터는 불완전할 수 있다. 클러스터에 결정적 지정을 하는데 필요한 정보가 소실되어 있을 수 있다. 예를 들어, 주소 레코드를 집에 지정하는 문제를 고려하자. 각각의 유일한 주택 번호, 거리, 시, 우편 번호 조합이 유일한 주택 번호에 지정된다. 클러스터링 알고리즘은 거리 및 시 이름의 다양한 스펠링에 대하여 허용 가능할 수 있고, 따라서 적절한 집에 지정되도록 모든 주소가 동일할 필요는 없다. 그러나, 집 번호가 주소로부터 소실되어 있다면, 명확한 지정을 하는데 충분한 정보가 없는 것이 된다. 가능한 많은 정보를 보전하기 위하여는, 불완전한 레코드는 이용 가능한 정보와 일관되게 각 주택에 부분적으로 지정될 수 있다. 5개의 가능한 주택 번호가 있다면, 각 주택 클러스터의 가중치는 0.2가 될 수 있고, 이는 각 주택 번호에 대한 동등한 가능성을 나타낸다. 다른 맥락에서, 회사 이름으로 라벨링된 구좌의 계류중인 부채로 구성된 데이터 집합을 생각하자. 은행은 국가별로 각 회사와 연관된 전체 계류 부채를 정하기 위해 이 데이터를 합하기를 원한다. 회사이름 중에는 "ACME SERVICES LIMITED (AUSTRALIA)", "ACME SERVICES LIMITED (CANADA)" and "ACME SERVICES LIMITED"가 있다. 처음 두 이름의 각각은 별도의 클러스터에 있지만, 세번째는 첫번째와 두번째 각각과 동등한 일치이면서 국가 식별자가 없다. 세번째 회사를 첫번째와 두번째 클러스터의 각각에 0.5의 가중치로 입력하는 것은 회사 정보의 불완전성을 반영하게 된다.
데이터 또는 분류는 내재적으로 불확정적일 수 있다. 클러스터 구성 요건은 미래의 사건에 기할 수 있다. 자산과 그 가치의 목록을 포함하는 데이터 집합을 고려하자. 자산은 소유주에 의하여 클러스터링될 것이다. 하지만 특정 자산의 소유권에 관하여 소송이 계류 중이다. 각각의 가능한 소유주에게 속하도록 하는 것은 가능성이 낮지만, 자산을 무시할 수는 없다. 소송의 기대되는 결과에 대한 정보의 현재 상태를 반영하여 각각의 소유주에게 자산을 부분적 구성 요건으로 지정하는 것은 현재의 지식과 부합하는 자산에 대한 가장 공평하고 가장 유익한 처분이 될 것이다.
(d) 클러스터링
클러스터링은 클러스터 구성 요건 기준에 기하여 레코드를 클러스터로 그룹핑하는 것이다. 정확한 데이터의 경우, 각 레코드(키이)로부터의 객체는 다른 레코드의 대응하는 객체와 정확히 일치하고 클러스터 또는 “키이 그룹”은 공통 키이를 공유하는 레코드의 집합이다. 퍼지 케이스에서, 클러스터 구성 요건은 각 레코드의 객체 사이의 변형 관계에 의하여 결정될 수 있다. (하지만 더욱 일반적인 클러스터 구성 요건 기준도 가능하다). 데이터 집합의 모든 레코드를 서로 비교하여야 하는 것을 피하기 위하여, 슈퍼 클러스터 키이가 전체 집합을 부분 집합으로 나누는 데 사용되고, 상호 비교는 슈퍼 클러스터 내의 레코드에만 제한된다.
많은 경우, 슈퍼 클러스터는 정확한 키이, 예를 들어 우편번호로 정의된다. 변형 결합은 슈퍼 클러스터가 변형 객체를 사용하여 정의될 수 있게 한다. 예를 들어, 슈퍼 클러스터는 주어진 우편번호의 변형들인 모든 우편 번호들을 포함하는 레코드의 집합으로 정의될 수 있다. 예를 들어, 영국 우편번호 OX2 6QY에서, 변형 우편번호 OX26QY 및 OX2 6QT는 둘 다 편집거리 1의 변형이고, 후자는 그 자체로 유효한 우편 번호이다. 각 변형 우편 번호로부터의 레코드를 잠재적 일치로 인정하게 되면 클러스터는 우편번호에서의 에러에 대해 허용 가능성을 가지게 된다.
다른 실시예에서, 슈퍼 클러스터는 각 레코드의 선택된 필드로부터 단어의 조각을 취하고 (상대적 빈도에 기하여 가장 길거나 가장 주목할만한 단어로부터 언급하는 것) 이 조각의 변형을 사용하여 슈퍼 클러스터를 식별함으로써 형성될 수 있다. 이는 동일한 클러스터의 구성요소가 되는 두 레코드에 대하여 그들이 특정 단어들을 공유할 가능성이 매우 있으나 그 단어들이 같을 필요도 없고 직접적인 변형일 필요가 없을 때 적절하다. 변형 조각들을 슈퍼 클러스터 키이로 고려함으로써, 레코드들은 단어의 나머지가 변형으로 받아들여지는 것 보다 다른 경우에 인정된다. 각 레코드에서 전체 단어와 다른 객체들과의 보다 주의 깊은 비교가 클러스터 구성 요건을 결정하기 위하여 필요하다.
예를 들어, 독일 거리 이름을 비교할 때, Graf von Stauffenberg Strasse 거리는 Stauffenberg를 어떤 형태로든 포함할 것이 요구된다. 샘플 데이터에서, Strasse는 단축되고 앞 단어에 연결되어 Graf v. Sauffenbergstr와 같이 표기될 수 있다는 점이 관찰되었다. 각 거리이름에서 가장 긴 단어의 처음 다섯 글자의 편집 거리 2 변형으로 정의되는 슈퍼 클러스터는 "stauf" 와 "sauff" 모두를 포함할 것이다. Stauffenberg 와 Sauffenbergstr 모두를 포함하는 레코드는 슈퍼 클러스터 내의 비교를 위하여 포함될 것이고 적합한 점수 함수가 그들을 동일한 클러스터로 지정할 것이다. 대조적으로, 가장 긴 단어의 편집 거리 2 변형에 기한 슈퍼 클러스터는 이들 두 거리 이름을 별개의 슈퍼 클러스터로 분리할 것이고 그들은 함께 클러스터링 될 수 없을 것이다.
슈퍼 클러스터의 사려깊은 선택은 클러스터링 방법의 성능과 정확성을 위하여 중요하다. 예를 들어, 슈퍼 클러스터가 너무 크다면, 성과 없는 많은 비교들이 이루어져서 성능에 장애를 줄 수 있다. 한편, 슈퍼 클러스터가 너무 좁다면 받아들여질 만한 일치들이 잃어버려지고 정확도에 장애를 줄 수 있다.
(e) 부분적 구성 요건
데이터 입력 조작자가 데이터 베이스에 새로운 고객을 추가하기 위하여 응용 프로그램의 양식을 기입하고 있다고 하자. 이름이 양식에 입력되면, 응용 프로그램은 이름의 참조 목록에 대하여 입력을 확인한다. 위에서 설명된 삭제 알고리즘을 가지는 퍼지 검색을 이용하면, 응용 프로그램은 다양한 스펠링의 이름을 검색할 수 있고 참조 목록으로부터 대안 목록을 회신할 수 있다. 조작자가 이름 필드에 “Jame”을 입력하였다고 하자. 응용 프로그램은 아래의 대안 목록을 알파벳 순으로 회신할 것이다 (그 이름을 포함하는 데이터 베이스의 레코드의 수도 함께 회신할 것이다).
Jaime 250
James 13359
Jamie 339
Jane 9975
이 모두는 Jame과 입력 1회 및/또는 삭제 1회 만큼 다르고 대체 후보이다.
조작자에 대한 목록의 유용성을 개선하기 위하여, 대체 단어들은 모호성의 측정을 결정하기 위한 다양한 모델을 사용하여 우선 순위가 부여될 수 있다. 모호성을 정량화하기 위한 세 개의 전형적인 방법은: 1)균등 파티션(equipartition), 2)통계적 빈도 및 3)에러 모델이다.
균등 파티션 접근 방법에서는, 각 대체 단어는 동등하게 일어날 수 있다고 취급된다. 여기에서, Jame이 대체 단어 중 하나가 될 가능성은 1/4이다. 알파벳 순의 대체 단어의 목록은 전형적으로 암묵적인 균등 파티션 접근 방법을 나타내고 있다.
통계적 빈도 접근 방법에서는, 데이터 베이스 표 자체와 같은 참조 집합이 각 이름에 대하여 관찰된 빈도의 소스로서 이용된다. 위의 목록이 예시된 계수에 의해 내림 차순으로 정렬된다면, 가장 가능성 있는 수정안은 James이고, 그 다음이 Jane, 등이다.
세 번째의 에러 모델은, 언어나 입력 모드나 다른 것들에 의하면 어떤 종류의 에러가 다른 에러보다 일어나기 쉽다는 관찰에 기한 것이다. 숙련된 조작자에 의한 키보드 입력에서는, 대체 에러가 글자를 빠뜨리는 것이나 다른 글자를 삽입하는 것보다 더 많다. 유사하게, 전화로 고객이 준 스펠링을 기록하는 조작자에게, 비슷하게 들리는 글자의 이름에 관한 필사 에러는 다른 종류의 에러들보다 더 잘 일어날 수 있다. 여기서, 각 경우에 대해, Jane이 수정이 가장 많을 것 같은 이름이다. 이 방법을 사용하면, 가능한 에러와 그 관련된 중요도를 분류하는 모델이 개발되고 적용될 수 있다. 이러한 모델은 WFS (word frequency significance; 단어 빈도 중요성) 파일의 통계적 분석으로부터 만들어진 것이고, 미국 특허 공개 번호 제2009/0182728호에서 도입되어 있다.
기존의 집 키이를 불러들이고, 일치가 발견된 경우 다른 새로운 키이를 만드는 주 고객 주소 테이블에 대한, 여기서 질의 주소라고 하는 고객주소를 포함하는 레코드가 응용 프로그램과 일치한다고 하자. 질의 주소는 주 고객 주소 테이블의 주소와 정확히 일치하지 않을 수 있고, 그래서 퍼지 일치가 사용될 수 있다. 더구나, 질의 주소는 불완전하거나 부정확할 수 있다. 이는 하나 이상의 기존의 주소가 질의 주소와 일치할 수 있다는 것을 의미한다. 일치의 품질을 정량화하기 위하여는 일치의 모호성의 측정치를 가지는 것이 유용하다.
예를 들어, 주소에는 집 번호가 없을 수 있고 주 고객 주소 파일이 동일한 거리 주소를 가지는 다수의 입력을 가지는 경우가 있다 (집 번호를 잊은 경우). 질의 주소가 특정 시와 우편번호를 가지는 Lower Street라고 하자. 우편 번호에 대한 퍼지 검색은 동일 또는 변형 우편번호를 가지는 기대 주소 레코드의 리스트를 회신한다. 질의 주소의 우편번호, 시, 거리, 집 번호 필드는 기대 주소의 각 대응하는 필드와 비교되고 퍼지 일치 과정의 부분으로서 점수가 부여된다. 이 예에서, 질의 주소의 거리, 시 및 우편번호가 정확히 일치하는 두 개의 주 레코드가 있다고 하자: 이는 2 Lower Street 및3 Lower Street이다. 각각의 예측되는 점은 동일한 품질로 질의 레코드와 일치한다는 것이고, 이는 기존 데이터로는 개선될 수 없는데 그것은 집 번호가 질의 레코드에서 상실되어 있기 때문이다. 균등 파티션 방법에 의하면, 각각의 집에 대한 실제의 일치가 동등한 가능성이 된다.
한편, 집 번호는 존재하지만 실제 주소와 대응하지 않아 유효하지 않은 경우를 생각하자. 질의 주소가 12 Lower Street 이지만, 참조 우편번호 파일(우편 배달을 위해 유효한 주소의 목록)에 확인한 바 그 주소를 가지는 집은 없는 경우를 생각하자. 그 우편 번호의 일치하는 주소는 위에서와 같이 2 Lower Street 및 3 Lower Street 이다. 주소 입력에 대한 에러 모델에서는 3에 대한 12의 일치보다는 2에 대한 12의 일치가 선호될 것이다. 이는 2 Lower Street의 주소와 일치되기가 쉬운 가능성을 가지는 방향성이 있는 가중치를 주게 될 것이다.
마지막으로, 질의 레코드의 집 번호가 존재하고 유효한 우편 번호라면, 주소 입력에 대한 에러 모델은 주소가 새로울 가능성 대 기존 주소의 에러일 가능성을 정량화할 수 있을 것이다.
(f) 데이터 품질의 정량화
모호성의 측정은 데이터 품질을 측정하는 데에도 광범위하게 적용된다. 회사 및 단체는 그들의 데이터 특히 주 데이터의 품질에 관심이 있으나, 현재 가장 명백한 데이터 품질 문제를 정량화하는 것은 어렵다. 위에서 주어진 데이터 품질 문제의 간단한 리스트로부터, 몇몇 데이터 측정 시스템 (예로, 본 명세서에 참조로서 포함된 미국 특허 공개 번호 제2005/0114369호 참조)은 주로 하나의 측면, 즉 데이터 유효성만 직접적으로 다룬다. 데이터는 빠짐없이 수록되고 데이터 유형에 대하여 그리고 유효값의 목록을 포함한 다양한 사용자 정의의 유효성 측정법에 대하여 유효성이 점검될 수 있다.
레코드의 필드 내의 불완전한 입력의 증거는 존재하지 않는 (비었거나 0인) 입력의 수로부터 추론될 수 있지만, 이는 소실된 정보의 중요성을 정량화하지는 않는다. 주 고객 주소 목록의 경우를 고려하자. 고객 주소 입력으로부터 시가 소실된 경우, 하지만 유효한 우편 번호와 거리 주소가 있는 경우, 이는 모호성을 더하는 것인가? 또는, 주소는 우편 주소 파일과 같은 참조 집합을 사용하여 현재의 정보로부터 효과적으로 완성될 수 있는가? 주소에 집 번호가 없으면 어떻게 되는가? 남아있는 주소는 얼마나 많은 집들이 공유하고 있는가? 몇몇 데이터 품질 문제는 데이터 클렌징(소실된 시)로 해결될 수 있지만, 다른 문제들은 해결될 수 없다 (소실된 집 번호). 데이터에 내재하는 모호성에 대한 측정이 요구된다.
각 주소 입력을 참조 데이터 집합에 비교함으로써, 입력 항목 내의 모호성의 측정은 계산될 수 있다. 모호성 보고서는 모호성이 없는 입력 항목의 조각을 포함할 수 있다. 모호성을 가지는 입력 항목에 대하여, 보고서는 K개의 대안 (또는 특정 범위의 대안, 또는 “변형”)을 가지는 입력 항목의 수의 히스토그램을 보여줄 수 있다. 또한 가장 큰 모호성을 가지는 처음 N 입력 항목의 목록이 있을 수 있는데, N은 입력 항목의 사용자 정의 수이다. 전체 데이터 집합에 대하여 불완전 데이터와 연관된 모호성을 정량화한 요약 통계가 입력 항목당 대안의 수의 평균과 표준 편차로부터 구성될 수 있다.
모호성의 통계적 빈도 측정이 주소의 가능한 완성을 정량화하는데 적용된다면, 관심 갈만한 측정 방법은: a) K개의 대안을 가지는 입력 항목의 수의 히스토그램 그래프, b) 가장 큰 범위의 대안을 갖는 N개의 입력 항목의 목록 및 대안의 빈도 분포의 히스토그램 그래프, c) 단일 대안에 가장 강하게 연관되어있는 N개의 입력 항목의 계수 및 리스트, d) 대안의 수의 평균 및 표준 편차이다.
유추적인 측정법이 모호성의 에러 모델 측정에 적용된다.
필드의 입력 항목이 의도된 것이 아닌 경우에 변형 입력의 데이터 품질 문제는 유효하지 않은 값의 문제 및 불완전한 정보의 문제의 경우 모두와 유사하다. 몇몇 레벨에서, 입력 항목이 의도된 것이 아니라고 말하는 것은 구체적이지만 반드시 명료화 되어있지 않은 확인 기준에 대하여 유효하지 않다고 하는 것이다. 거리 이름의 확인은 거리 이름을 참조 우편 주소 파일에 수록된 내용에 비교함으로써 정의될 것이다. 한편, 참조 데이터 집합이 없는 경우, 유효성은 연관된 변형 일치 입력 항목의 상대 빈도로부터 추론될 수 있다. 어떤 입력 항목이 상대적으로 높은 빈도로 나타나고 다른 높은 빈도의 대안이 없는 경우, 이는 유효한 것으로 될 수 있다. 만일 이 입력 항목이 상대적으로 낮은 빈도로 나타나고 단일한 높은 빈도의 대안이 있는 경우, 유효하지 않은 것으로 될 수 있다. 다수의 높은 빈도의 대안들이 있는 경우, 유효한 데이터로의 수정은 모호한 것이 될 수 있고 데이터 소실의 경우 어떻게 할 것인가와 유사하게 정량화될 수 있다.
어느 필드가 유효한 값들의 열거 집합의 밖에서 값을 가지는 경우를 생각하자. 예를 들어, 성 필드가 M(남성) 또는 F(여성)가 아니고 G라고 하자. 모호성의 균등 파티션 방법은 입력 항목에 대해 2개의 대안이 있다고 할 것이다. 빈도 측정법에서도 2개의 대안을 보여주겠자만 M 또는 F에 치우치는 경향을 포함할 것이다. 단순한 열거의 예에서, 대안의 수에 변경이 없을 때 데이터 집합에 대한 모호성의 측정은 입력 항목당 모호성의 측정값과 유효하지 않은 값들의 분수를 곱하여 형성된다.
대안의 수에 변경이 있을 때, 예를 들어 거리 이름이 잘못 스펠링된 경우, 모호성의 측정은 데이터에 나타나는 모호성을 정량화하는데 도움을 줄 것이다. 빈도 및 에러 모델 측정은 다양한 스펠링에 대하여 가장 믿을 수 있는 결과를 제공할 것이다. 불완전한 정보와 함께, 모호성의 측정값은 결국 데이터 집합이 클렌징에 의하여 얼마나 많이 개선될 수 있는지 및 불확정성이 여전히 얼마나 많이 남아있는지를 나타낸다.
잘못된 필드에 입력된 데이터는 또한 비슷한 방법으로 정량화될 수 있다. 여기에서, 데이터 위치가 사실은 잘못되었는지 여부에 대한 추가적 모호함이 존재할 수 있다. 보통 이름으로 사용되는 값을 가지는 성의 경우, 어떤 것을 먼저 배열하는 것이 맞는지에 대하여는 명확하지 않을 것이다. 성 필드에 보통 이름으로 쓰이는 단어가 얼마나 자주 있는지 (또는 그 반대)를 아는 것은 잘못 배열된 이름의 문제가 얼마나 심각한지에 대한 판단 경계선을 제공하는데 도움이 된다. 정확한 참조 (또는 다른 유효화 수단)이 사용 가능하다면, 에러율의 측정값은 얻어질 수 있을 것이다. 100,000개의 데이터 입력에 대해 보통 이름으로 쓰이는 성이 500개 있으나 이들 중 실제로는 25개만이 잘못 배열된 경우가 있을 수 있다. 그렇다면 에러율은 25/500=1/20이다. 심지어 측정된 에러율이 없는 경우에도 문제발생에 취약한 입력이 단지 500/100,000 = 1/200뿐이라는 것을 아는 것은 그 데이터에 대한 신뢰를 높여준다.
기타 이름 필드에 대한 흥미로운 점검은 a) 성과 이름이 모두 이름으로 자주쓰이는 단어일 때, b) 이름이 성으로 자주 쓰이는 단어이고 성이 이름으로 자주 쓰이는 단어일 때, c) 이름이 성으로 자주 쓰이는 단어이고 성이 성으로 자주 쓰이는 단어일 때를 아는 것일 것이다. 이름의 참조 데이터 집합(아마도 데이터 집합 그 자체)으로부터 유도되는 모호성의 빈도 측정은 배열이 올바를 가능성을 계산하는데 사용될 수 있다. 예를 들어, David Paul이라는 이름을 생각하자. David가 이름 또는 성이 될 확률로부터, 그리고 유사하게 Paul에 관한 확률로부터, David가 이름이 될 가능성이 계산될 수 있다.
필드, 예를 들어 주소, 를 거쳐 재배열하는 몇몇 방법은 선택된 참조 데이터 집합에 대하여 잘못되었지만 그 자체로는 잘못되지 않았는데 이는 배열을 특정하는 기준이 약하거나 존재하지 않기 때문이다. 여기서 참조 데이터 집합과 비교하여 특정 주소 배열의 모호성을 측정하는 것은 다른 배열 방법이 데이터와 연관된 모호성을 초래하지 않기 때문에 심각한 데이터 품질 문제를 일으키지 않는다는 것을 보여주는데 사용될 수 있다. 이는 데이터 품질을 개선하는데 어디에 노력을 투자하여야 하는지를 결정하는데 있어 중요한 요소이다.
프리 텍스트 필드에 있는 참조 데이터의 양의 정량화를 위하여, 프리 텍스트는 단어로 분해될 수 있고 단어는 선택된 참조 데이터 집합에 대한 퍼지 검색에 사용된다. 예를 들어, 어느 회사가 제품 아이디가 청구서의 코멘트 필드에 저장되기를 바라고 있다고 하자. 제품 아이디 표에 대하여 퍼지 검색을 하는 코멘트 필드에서 각 단어를 사용함으로써 코멘트 필드에 있는 제품 아이디의 수가 발견될 수 있다. 더 일반적으로, 각 단어는 WFS파일 (다른 특허 참조)에 대하여 검색될 수 있고 그 단어 및 그 단어의 변형이 나타나는 모든 필드를 결정한다. 이는 다른 필드에서 나타나는 데이터에 대한 한 필드의 데이터의 퍼지 상호 관계를 부여한다. (이 접근 방법은 또한 잘못된 필드에 위치한 데이터를 식별하는 데 사용될 수 있다.)
몇몇 참조 무결성 문제는 모두 정량화될 수 있다. 먼저 보강 측정은 연결된 데이터가 사실은 올바르게 연결되지 않은 정확한 키이 쌍의 비율로서 정의될 수 있다. 이 종류의 보강은 비교할 필드가 연결의 양쪽 모두에서 존재하는 경우에만 이루어질 수 있다. (또는 추가 결합을 통한 연결의 점으로 가져와 질 수 있다). 전형적으로 이는 유사한 필드 사이의 비교이고, 고객 이름과 주소처럼, 하나 이상의 데이터 베이스에 보유되는데 이 데이터 베이스에서는 연결 키이가 데이터 베이스 사이에 만들어져 있다. 이 상황은 데이터 창고에 보유된 데이터를 창고에 위치한 소스 시스템의 데이터와 비교할 때 일어난다. 다른 소스 시스템이 상호 충돌하는 정보를 보유하고 있거나 일관적이지 않게 수정된 경우, 데이터 창고는 하나 이상의 소스 시스템과 유사하게 충돌 관계에 있을 수 있다. 데이터 창고를 소스와 일관성에 관하여 확인하는 것은 기업 데이터 품질에 대한 새롭고 중요한 점검 사항을 제공해 줄 것이다.
두번째 점검은 소실되거나 분리된 연결을 찾는 것인데, 이는 연결의 반대편에 레코드가 없는 연결을 말한다. 퍼지 검색은 연결되어야 할 다른 레코드가 있는지(소실 연결) 또는 연결되지 않아야 할 다른 레코드가 있는지 (분리 연결)을 결정한다. 이 조건의 각각의 비율을 측정하는 것은 중요하다. 연결의 상대편의 레코드에 대한 일치가 모호하다면, 모호성의 측정이 이를 정량화 할 수 있다. 이는 데이터 클렌징의 기초를 형성하여 유일하게 수행될 수 있는 연결을 재배치하고 어떤 연결이 추가의 조사를 요구하는지 특정하는데 이는 그 연결들이 모호하기 때문이다 (아래에서 부분적 구성 요건의 확률이 고려될 것이다).
두 개의 데이터 집합이 관련된 정보를 포함하지만 그들 사이에 키이 연결이 없을 때, 데이터 집합 사이의 퍼지 검색 또는 결합이 데이터 집합 사이의 기대의 연결을 발견할 것이다. 각각의 기대의 연결의 모호성의 측정은 데이터 집합 사이의 매핑(mapping)이 어느 정도 깨끗한지를 표시해줄 것이다. 이는 두 회사가 합병할 때 두 회사의 고객 이름과 주소와 같은 주 참조 데이터를 결합할 때 매우 유용하다. 마찬가지로, 다른 사업 부문의 참조 데이터를 병합하는 데에도 사용될 수있다. 이는 주 데이터 관리 솔루션의 중요한 초기 단계가 될 것이다. 주 데이터 관리 솔루션을 만드는데 있어서 차이 분석의 분야는 다른 시스템에서 사용되는 기존의 참조 데이터 집합 사이의 정렬의 품질을 결정하는 것이다. 시스템 사이의 초기의 정렬은 이 분석의 부산물이다. 그렇다면 모호성의 측정 방법을 구비하고 있다는 시스템을 조정하는데 필요할 추가작업을 정량화하는데 도움이 될 것이다.
(g)클러스터 및 부분적 구성 요건
(1)퍼지 클러스터의 작성
앞에서 언급한 대로, 어떻게 요소들을 그룹으로 합체하는 지에 대한 이전의 기준이 없을 때, 원칙 또는 알고리즘이 그룹을 식별하기 위하여 사용된다. 이는 실질적으로 중요한데 왜냐하면 실제의 경우에 어떤 요소가 그룹을 형성하기 위하여 다른 요소들을 가져오는 코어 요소로서 역할을 하여야 하는지가 종종 명확하지 않기 때문이다. 예를 들어, 고객 주소 데이터 베이스의 중복되는 레코드에 관한 앞의 예에서, 때때로 회사가 어떤 레코드가 진정한 레코드인지 알 수 없는 경우가 있다. 이하의 논의는 레코드의 퍼지 클러스터를 형성하는데 사용되는 몇몇 알고리즘을 제안하는데, 여기서 데이터는 서로 연관되는 것으로 고려될 것이다.
앞서 언급된 고객 주소의 예에서, “John Smith”와 연관된 여섯 개의 레코드가 있다: (A) John Smith ox2 6qt; (B) John Smith ox2 6qx; (C) John Smith ox2 6qy; (D) John Smith ox2 7qy; (E) John Smith ox26qt; (F) John Smith ox26qy. 어떤 레코드가 실제의 집에 대응하는지 모른다면, 회사는 위의 레코드들을 둘 또는 세 개의 클러스터로 그룹핑하는데 관심을 가질 수 있을 것이고 각 클러스터는 실제의 집을 표시할 것이다. 이러한 방법으로, 회사는 허위의 우편주소로 보내지는 우편물을 줄임으로써 우편물의 양을 줄일 수 있을 것이다.
클러스터를 만드는데 사용될 수 있는 하나의 알고리즘은 특정 거리 이내에 있는 요소의 가장 많은 수를 포함하는 가장 큰 공통요소 없는 부분집합을 찾는 것이다. 이 접근방법은 도5를 참조하여 설명된다. 관여된 단계들이 플로우 차트로 도시되어있다. 도5는 또한 알고리즘을 형성하기 위하여 위의 고객 주소 데이터 베이스의 예를 사용한다. 각 단계로부터의 결과는 대응하는 단계의 오른쪽에 도시되어있다. 이 예에서, 특정 거리는 2회 조작이다.
도5의 플로우 차트를 참조하면, 가장 큰 공통 요소 없는 부분 집합에서 클러스터를 작성하는 첫번째 단계는: 각 요소에 대하여, 요소의 변형들을 계수한다 (502). 위에서 정의된 대로, 요소의 변형은 특정 요소로부터 특정 거리 이내에 있는 요소이다. 고객 주소의 예에서, 레코드 A에 대하여, 2회 조작의 거리 이내에 있는 것은 세 레코드 (B, C, E)이다. 레코드 B에 대하여, 2회 조작의 거리 이내에 있는 것은 두 레코드 (A, C)이다. C에 대하여, 4개가 있다; D에 대하여, 1개가 있다; E에 대하여 2개가 있다; 그리고 F에 대하여 2개가 있다.
그 후, 가장 큰 수의 변형들을 갖는 요소를 선택 (504)하고 그 요소와 그 변형들을 그 요소로 라벨 붙여진 그룹으로 만든다. 고객 주소 데이터 베이스의 예에서, 레코드C가 가장 큰 수의 변형 4를 갖는다. 레코드 C및 그 변형들 (A, B, D, F)가 제1 클러스터를 형성한다.
다음으로, 모든 요소의 집합으로부터, 가장 큰 그룹의 요소들을 제거한다 (506). 고객 주소의 예에서는, 레코드 E만이 남는다.
그 다음 남아있는 요소에서, 가장 큰 수의 변형들을 갖는 요소를 찾는다 (508). 이 단계는 제2 클러스터를 작성한다. 고객 주소의 예에서, 제2 클러스터는 오직 1개의 요소 E만을 그 안에 갖는다.
모든 요소들이 클러스터에 그룹핑 될 때까지 계속된다 (510). 고객 주소의 예에서, 모든 요소가 그 그룹을 찾았으므로 더 이상 진행할 필요가 없다.
이 알고리즘은 고객 주소 데이터 베이스에서는 두 개의 클러스터를 작성하는데, 이는 A, B, C, D, F로 구성되는 그룹과 오직 E만으로만 구성된 그룹이다. 회사는 각 그룹에 포함된 레코드들을 서로에 대한 복제로 취급할 수 있고 레코드를 통합하여 우편물 양을 줄일 수 있다.
몇몇 조정이 위의 알고리즘에 추가될 수 있다. 예를 들어, 레코드 A 및 F모두는 C 및 E로부터 동일한 거리에 있다. 위의 알고리즘에서, 레코드 A 및 F를 C의 복제로 지정하는 것은 과정 중의 작위적인 산물이고 레코드 A 및 F가 E보다 C에 더 가까운 것으로 표시할 필요는 없다.
하나의 조정은 클러스터들의 표현에 관한 불확정성에 주목하기 위한 것이다. 예를 들어, 표현C 5-2는 레코드C와 그 변형들을 포함하는 C의 클러스터를 표시하는데 사용될 수 있고, 5는 레코드의 전체 수를 표시하고 -2는 불확정성을 표시한다. 표현 E 1+2는 레코드 E와 그 변형들을 포함하는 클러스터 E, 1은 그 그룹의 레코드의 총수, 2는 불확정성을 표시하는데 사용될 수 있다. 클러스터의 양의 불확정성은 다른 경우에 이 클러스터에 속할 수 있는 그룹핑된 요소가 존재한다는 것을 나타낸다. 클러스터의 음의 불확정성은 이 클러스터의 요소가 다른 그룹에 속할 수 있다는 것을 나타낸다.
다른 조정이 A와 F를 클러스터 E에 추가하기 위하여 있을 수 있다. 따라서, 그룹 C는 레코드 A, B, D, F를 가지고 그룹 E는 레코드 A와 F를 가진다. 하지만, 레코드 A와 F가 두 개의 그룹에 속하므로, 모든 그룹의 레코드의 총수는 8이고, 레코드의 진정한 총수보다 2가 많다. 총수를 보존하려면, 부분적 구성 요건이 사용될 수 있다.
두번째의 퍼지 클러스터를 구성하는 방법은 다 단어 필드의 데이터를 클러스터링할 때, 그리고 레코드 사이의 변형이 단일 단어보다는 어구(또는 영국 우편 번호와 같이 전체 필드)를 점수화함으로써 평가되는 경우에 적절하다. 어구 점수 측정은 단어의 변형 스펠링 뿐만 아니라 구체적인 단어 순서를 바꾸게 되는 단어 순서, 소실 단어, 단어 사이의 삽입을 고려한다. 예를 들어 회사 이름 Bank of America가 있을 때, 이하는 식별되고 구별되어야 할 4가지 유형의 변형을 예시한다.
1) Bank of Amrica (단어의 퍼지 일치)
2) America Bank (단어 순서, 소실 단어)
3) Bank America (소실 단어)
4) Bank of South America (삽입 단어)
어구에 대한 클러스터링의 예로서, 은행이 주 고객 목록의 동일한 법인에 속하는 모든 구좌를 식별하려고 한다고 하자. 법인은 하나만 있다면 회사 이름, 주소 및 회사 등록 번호로 식별될 것이다. 클러스터링을 위하여 사용되는 주 필드는 회사 이름인데 왜냐하면 이는 법인과 깊게 관계되어 있고 항상 존재하기 때문이다. 주소는 우연히 유사한 이름을 가지는 회사를 구분하는데 사용되는 두번째의 필드이다. 회사 등록 번호는 법인 식별을 위하여 결정적이라고 여겨지지만 단독으로 사용되기에는 불충분하게 존재한다.
퍼지 클러스터링 조작은 본래의 데이터 집합을 더 작은 부분집합으로 나누는 슈퍼 클러스터 키이를 식별함으로써 시작되는데, 부분 집합은 클러스터 구성 요건에 대하여 모든 요소를 비교하는 데 적절한 크기로 되어 있다. 다른 슈퍼 클러스터 키를 가지는 레코드는 다른 클러스터에 있을 것이다. 주소와 같은 지리적인 데이터에 대하여, 우편 번호는 종종 적절한 슈퍼 클러스터 키이이다. 일치하는 변형 우편 번호를 가지는 레코드는 슈퍼 클러스터에 포함될 수 있을 것이다. 불일치 우편 번호를 가지는 레코드는 다른 클러스터에 속할 가능성이 높다고 여겨지고, 따라서 성능을 향상시키기 위하여, 슈퍼 클러스터를 도입하여 클러스터들을 계산할 때에는 배제된다.
각 슈퍼 클러스터 내에는, 데이터가 회사 이름 필드의 길이에 따라 내림 차순으로 정렬되고 회사 이름에 따라 오름 차순으로 정렬되어 재현 가능한 순서로 가장 긴 이름을 클러스터링 알고리즘에 처음 제공한다. 슈퍼 클러스터 그룹 내의 첫번째 레코드는 제1 클러스터의 주 레코드에 의해 만들어진다. 각각의 이어지는 레코드는, 여기서는 현재 레코드라고 하는데, 현재 레코드의 회사 이름을 클러스터의 주 레코드의 회사 이름에 대하여 점수화함으로써 각각의 기존의 클러스터의 주 레코드에 대하여 비교된다. 점수가 추정되는 일치 임계값을 넘는다면, 클러스터는 현재 레코드에 대한 추정 클러스터의 목록에 추가된다. 현재 레코드를 모든 기존의 주 레코드와 비교한 후에는, 추정 목록이 비어있는 경우, 현재 레코드는 새로운 클러스터의 주 레코드에 의하여 만들어진다. 추정 리스트가 오직 하나의 입력만을 가지고 있는 경우, 그리고 점수가 일치 임계치를 넘는 경우, 현재 레코드는 추정 목록의 클러스터에 추가된다. 추정 목록이 하나 이상의 입력을 가지고 있다면, 현재 레코드의 회사 이름은 추정 목록의 각 클러스터의 모든 레코드에 대하여 점수화된다. 현재 레코드가 일치 임계치에 대해 최고 점수를 가지고 있으면 현재 레코드는 클러스터에 추가된다. 하나 이상의 클러스터의 레코드에 관하여 최고 점수를 넘는 동등한 일치가 있다면, 현재레코드는 첫번째의 그러한 클러스터에 추가된다. 일치 임계치를 넘는 점수가 없다면, 현재 레코드는 새로운 클러스터의 주 레코드가 된다.
이 알고리즘은 두 개의 중요한 특징을 지닌다. 여러 개의 클러스터에 대한 모호성 일치가 제1 일치 클러스터를 위하여 결정되기 때문에, 몇몇 클러스터들은 모호성 구성 요소에 대하여 상대적으로 너무 많이 존재한다 (over-populated). 또한, 레코드들이 알고리즘에 제공되는 순서는 구체적인 구성 요건의 결정에 영향을 미친다. 회사 이름의 길이 및 값에 대한 최초의 정렬은 이름에 대한 고정된 순서를 구성함으로써 이를 개선하려는 의도가 있다. 아래에서 논의될 부분적 구성 요건의 개념은 클러스터 구성 요건의 모호성을 더 정확하게 나타내는 보다 풍부한 솔루션을 제공한다.
모호성 구성 요건의 예는 이하의 회사 이름의 집합에서 나타난다.
ACME Services Australia Limited
ACME Services Canada Limited
ACME Services Limited
구체적인 점수화에서, ACME Services Canada Limited 에 대한 ACME Services Australia Limited의 점수는 0.65이고 이는 일치 임계치 0.75의 아래가 되고, 레코드들은 별도의 클러스터에 존재하게 된다. ACME Services Limited는 두 클러스터에서 동일한 점수인 0.95이다. 이는 ACME Services Australia Limited 클러스터의 구성 요건이 되는데 왜냐하면 첫번째로 만나게 되기 때문이다.
(2) 부분적 구성 요건
앞의 섹션의 예에서, 레코드 A와 F는 클러스터 C 및 E에 모두 속한다. 클러스터에서 레코드의 모든 출현은 1로 계수되고, 클러스터 C 및 E에서 레코드의 총 계수는 8, 그룹 C (C, A, B, D, F)에서는 5, 그룹 E (E, A, F)에서는 3이다. 비록 6개의 레코드 밖에 없지만. 이 예에서, 부분적 구성 요건은 총 계수를 보전하는데 사용된다. 데이터가 하나 이상의 그룹에 속하는 경우, 데이터의 출현은 1보다 적게 ,즉 분수로, 계수된다. 그러나 모든 데이터의 출현의 합은 1이 되어야 하는데 이는 전체 수를 보전하기 위하여이다.
몇몇 실시예에서, 그룹 내의 요소의 부분적 구성 요건은 예를 들어 위에서 설명된 모호성의 측정을 사용하여 특정그룹에 속하는 요소의 가능성을 나타내기 위하여 정의될 수 있다.
예를 들어, 그룹C에 40%의 확률로 속하고 그룹E에 60%의 확률로 속하는 레코드 A를 가정하자. 0.4의 부분적 구성 요건은 그룹 C에 있는 레코드 A에 지정될 수 있고 0.6의 부분적 구성 요건은 그룹 E에 있는 레코드A에 지정될 수 있다.
마찬가지로, 레코드 F가 그룹 C에 속할 확률이 10%이고 그룹 E에 속할 확률이 90%라고 가정하자. 0.1의 부분적 구성 요건은 그룹 C에 있는 레코드 F에 지정될 수 있고 0.9의 부분적 구성 요건은 그룹E에 있는 레코드F에 지정될 수 있다.
레코드 A 와 F에 부분적 구성요건이 지정된다면, 총 점수는 그룹C (1+1+1+0.1+0.4 = 3.5) 의 점수와 그룹 E (1+0.9+0.6 = 2.5)의 점수의 합인 6이다. 그러므로, 총 점수는 보전된다.
부분적 구성 요건의 유래가 특정 요소의 구성 요건에 관한 불확정성이기 때문에, 각 그룹의 총 구성 요건은 불확정성의 정도, 즉 에러의 여유도로만 알려진다. 각 그룹의 총 계수는 구성 요건의 합으로 표시될 수 있고, 구성 요건은 완전한 구성 요건과 부분적 구성 요건을 포함하고 에러의 여유도에 의하여 조정된다. 여유도는 구성 요건에 대한 모든 불확정성 결정이 포함 또는 불포함의 어느 쪽에 속한다고 가정함으로써 얻어지는 최대값 및 최소값에 의하여 표시될 수 있다. 이는 클러스터에 걸친 구성요소의 분포에 대한 최악 상황의 시나리오에 대응한다. 여기에서, 경계값을 가지고, C에서의 총 구성 요건은 3.5 (3,5) 일 것이다: 이는 C가 최소 3 구성요소 및 최대 5 구성요소를 가지는데 C의 구성 요건의 기대값이 3.5라고 하는 것으로 읽는다. 유사하게, E에서 총 구성 요건은 2.5 (1, 3)일 것이다: E에서 구성 요건의 기대값이 2.5이나 최소 1 구성 요소 및 3 구성 요소가 있다.
다른 클러스터에 속하는 경계값들은 상호 관련되는데, 여기서 사용되는 개념은 그 점을 나타내지는 않는다. 데이터 집합에서 다른 레코드 사이의 상호 연관은 가능하고 경계값을 계산할 때 고려되어야 한다. 예를 들어, 때때로 A와 F가 어느 클러스터에 속하는지는 모르지만 같은 클러스터에 있지 않다는 것을 (불확정성 또는 기타 확률 하에서) 알 수 있는 경우가 있다.
위의 두번째 예에서, 클러스터링의 품질은 각 클러스터에 추정 임계치를 넘는 주 레코드와 일치하는 모든 레코드를 연관시킴으로써 개선될 수 있고, 특히 하나 이상의 클러스터에 대한 모호한 일치 또는 추정되는 일치가 있는 경우에 개선될 수 있다. 일치의 품질은 각 추정 레코드에 대하여 기록되고 모호성의 측정으로 정량화되어야 한다. 부분적 구성 요소는 전체 구성 요소로부터 분리되어 취급되는 하나의 형태일 것인데, 부분적 구성 요건의 측정치로 라벨붙여져 있다. 예를 들어, 어느 클러스터의 구성 요소는 부분적 구성 요건의 내림차순으로 리스트 될 수 있다 (어느 클러스터의 부분적 구성 요건을 가지는 완전한 구성 요건과 함께).
규칙 라벨(rule label)은 또한 각 레코드에 붙여져야 하는데 이는 부분적 구성 요건이 결정된 레코드들을 연결하기 위하여 또한 부분적 구성 요건 할당을 결정하는 규칙, 사건 또는 결정을 정의하기 위하여 사용될 수 있다. 이 규칙 라벨은 다른 부분적 구성 요건을 가지는 레코드들을 결합할 때 부분적 구성 요건을 조정하는 경우에 유용할 것이다.
한편 한 측면으로부터는 부분적 구성 요건은 구성 요건의 불확정성으로부터 발생하는 모호함을 나타내고 다른 측면으로부터는 부분적 구성 요건은 두 개의 부서에서 일하는 직원의 예에서와 같이 복수의 클러스터 사이의 구성 요건에 대한 단순한 할당일 것이다. 불확정성의 예에서, 정보 (knowledge)의 상태의 변화는 구성 요건의 할당을 변경할 것이 기대된다. 한편, 부분적 구성 요건은 단순히 확정적인 것으로 받아들여질 수 있다. 분수들을 실제의 것으로 받아들이는 데에는 어떠한 비용도 소요되지 않는다.
부분적 구성 요건이 다른 클러스터에 속하는 요소의 가능성을 표시할 때, 부분적 구성 요건은 항상 음이 아니고 다른 클러스터에 속하는 요소의 부분적 구성 요건의 합은1이 되어야 한다.
그러나, 몇몇 실시예에서 부분적 구성 요건은 음이 될 수 있다. 그러나 다른 클러스터에 속하는 객체의 부분적 구성 요건의 합은 여전히 1이 되어야만 하는 것으로 제한된다.
몇몇 실시예에서, 요소의 부분적 구성 요건은 요소와 주 요소 사이의 거리의 함수 또는 요소와 주 요소 사이의 일치 점수의 함수로 정의될 수 있다. 퍼지 점수에 대하여 부분적 구성 요건을 구성하는 하나의 방법은 위에서 언급된 것처럼 모호성의 측정을 통하는 것이다. 다른 퍼지 점수는 요소와 주 요소 사이의 다른 거리를 나타내고, 그러므로 다른 모호성의 측정치를 나타낸다. 퍼지 점수가 변형과 주 요소 사이의 유사성을 나타내고, 종종 확률과는 다르다는 점에 주의하라.
(h) 퍼지 데이터 조작
(1) 부분적 구성 요건의 존재하의 필터링
종종 선택 기준을 공통 속성을 공유하는 레코드의 부분 집합을 분리하는 데 적용하면 유용하다. 예를 들어, 국제적 레코드의 데이터 집합에서, 특정 국가의 레코드가 선택될 수 있다. 선택 조작 (때때로 ”필터링” 이라고 함)은 키이 기반이라고 여겨지지 않는데 왜냐하면 선택을 결정하는 표현에서 사용되는 필드가 키이일 필요가 없기 때문이다. 레코드가 다수의 클러스터에서 부분적 구성 요건을 가지도록 허락될 때, 필터링은 몇몇 부분적 구성 요소를 버릴 수 있다. 그 결과는 선택된 부분 집합에 걸친 레코드에 연관된 전체 구성 요건 할당이 1보다 작을 수 있다는 것이 된다. 이를 위한 설명은 전체 할당은 선택된 부분 집합 바깥의 대안에 대하여 선택된 부분 집합 내부의 구성 요건을 측정한다는 것이 될 것이다.
ACME Services Limited가 ACME Services Australia Limited를 포함하는 그룹에 대하여 0.5할당을 가지고 ACME Services Canada Limited를 포함하는 그룹에 대하여 0.5 할당을 가진다고 하자. 전체 데이터 집합에 걸쳐서 ACME Services Limited에 대한 총 할당은 1.0이다. Canada와 연관된 레코드만 유지하도록 필터가 적용된다면, ACME Services Limited는 남은 데이터 집합에서 총할당 0.5를 가질 것이다. 이는 ACME Services Limited가 Canada 부분 집합에 없는 대안에 대한 50% 가능성에 대하여 Canada 부분 집합에 있을 50% 가능성을 가지고 있다는 것을 나타낸다.
(2) 키이와 부분적 구성 요건에 의한 병렬 파티셔닝
병렬 처리에서 레코드는 키이의 값에 기하여 다른 처리 파티션에 할당될 수 있다 (때때로 ”키에 의한 파티셔닝”이라 함). 레코드가 모호한 클러스터 구성 요건을 가지도록 허락될 때, 파티셔닝은 각 클러스터에 대하여 연관된 키에 대해 수행될 수 있다. 이러한 파티셔닝 구조에서, 주어진 레코드와 연관된 파티션 내에서 총 할당은 1보다 작을 수 있다. 이에 대한 해석은 필터링을 유추하라: 파티션에 존재하지 않는 대안에 대하여 파티션에 대한 레코드의 할당을 측정하는 것이 된다.
ACME Services Limited가 ACME Services Australia Limited를 포함하는 그룹에 대하여 0.5 할당을 가지고 ACME Services Canada Limited를 포함하는 그룹에 대하여 0.5 할당을 가진다고 하자. 파티션 키이 조작은 ACME Services Australia Limited를 포함하는그룹에 하나의 파티션을 할당하고 ACME Services Canada Limited에 다른 파티션을 할당할 수 있다. ACME Services Limited 레코드와 연관된 후자의 파티션에서 총할당은 0.5 이고, 어떤 다른 파티션에 있는 0.5의 대안에 대하여 ACME Services Canada Limited 클러스터와 연관되어 있다는 것을 나타낸다.
친숙한 데이터 조작의 병렬 처리 버전이 파티션 사이의 커뮤니케이션이 없을 경우 단일 파티션 내에서의 그들의 양태에 의하여 정의될 수 있다. 한 파티션 내에서 한 레코드에 대한 총 할당이 1보다 작을 때, 이는 여기서 정의된 형태로 해석될 것이다.
(3) 롤업과 부분적 구성 요건
롤업 조작은 데이터를 개별 레코드의 레벨로부터 그룹 레벨로 모으거나 합한다. 정확한 키를 사용하는 예에서, 키이 그룹은 공통키(값)을 공유하는 레코드의 집합으로 정의된다. 클러스터의 예에서, 그룹은 하나 이상의 레코드가 하나 이상의 그룹의 구성 요소일 수 있는 확률을 가지면서 비교 테스트에 의하여 구성 요소가 결정된 레코드의 집합으로 정의된다.
클러스터 그룹에서의 가산적인 (또한 승산적인, 예를 들어 로그를 더함으로써) 수치 합산 (때때로 “가산적 측정치 계산”이라고 함)은 가중치에 대한 할당 측정을 사용하여 가중치된 합산으로서 수행된다. 경계값은 집합에 대하여 부분적인 할당을 가지는 모든 레코드들이 집합에 포함되어 있거나 집합으로부터 배제되어 있는 경우에 대안에 대한 (가중치되지 않은) 합산을 계산함으로써 계산된다. 다음의 레코드의 목록은 회사이름에 기한 클러스터 그룹이다.
클러스터키 할당측정치 회사이름 계수치(count)
c1 1.0 ACME Services Australia Limited 80
c1 1.0 ACME Services (AUS) Limited 60
c1 0.5 ACME Services Limited 100
롤업은 클러스터의 총 계수치를 경계값을 갖는 가중치된 합으로 결정한다.
80*1.0 + 60*1.0 + 100*0.5 = 190
(불포함) 80*1.0 + 60 *1.0 + 100*0.0 = 140,
(포함) 80*1.0 + 60*1.0 + 100*1.0 = 240.
클러스터 그룹에서 총 계수치에 대한 결과는 190 (140, 240)이다.
가산적이 아닌 합은 부분적 구성 요건을 가지는 레코드가 집합으로부터 포함되거나 포함되지 않는 극단적인 경우를 고려함으로써 이루어진다. 할당 측정은 종종 부분적 구성 요소를 포함함으로써 얻어진 결과에 대한 신뢰(량)을 지정하는 데 사용될 수 있다. 예를 들어, 레코드는 클러스터 그룹 내에서 몇몇 2차적 키에 관하여 정렬될 수 있고, 롤업은 어떤 레코드가 정렬순서에서 처음이 되는지 결정할 수 있다. 이하의 목록은 계수량에 관하여 내림차순으로 앞서의 레코드의 목록을 정렬한다.
클러스터 키이 할당 측정치 회사이름 계수량
c1 0.5 ACME Services Limited 100
c1 1.0 ACME Services Australia Limited 80
c1 1.0 ACME Services (AUS) Limited 60
이 정렬순서에서 클러스터 그룹의 제1 레코드 (즉, 최대 계수치)를 결정하기 위한 롤업은 경계 결과를 산출한다:
(포함) c1 0.5 ACME Services Limited 100
(불포함) c1 1.0 ACME Services Australia Limited 80
할당 측정치 0.5는 포함 결과와 연관된 신뢰(량)을 표시하는 포함 결과를 제공할 수 있다. 이 예에서, 불포함 결과는 최악의 경우의 결과로 고려될 수 있다: 최대치는 적어도 80이다.
부분적 구성 요건의 존재 하의 롤업 조작은 병렬로 수행될 수 있다. 이를 살펴보기 위해, 첫번째 가산적 수치 합을 생각하자. 이는 가중치된 합이다. 이러한 합은 별도로 계산된 후에 결합되는 부분적 합으로 분해될 수 있다. 각 부분적 합은 그 자신의 병렬 파티션에서 계산될 수 있는 가중치된 합이다. 이는 가산적 롤업의 병렬화 (parallelization)이다.
가산적 및 비가산적 롤업 모두의 비포함적 경계의 계산은 병렬화 가능한데 왜냐하면 정의상 모든 부분적 구성요소들이 포함되지 않기 (배제되기) 때문이다. 따라서 계산량은 병렬화 가능한 통상의 롤업 (대부분의 경우)의 수준으로 감소한다.
포함 경계의 계산은 포함의 이중 계수를 방지하기 위한 몇몇 조건하에서 병렬화 가능하다. 클러스터 내의 롤업에 대하여, 각 부분적 구성 요소는 클러스터 안에서 한번 나타날 뿐이다. 그러므로 포함 경계는 어떤 구성 요소도 이중 계수하지 않고 클러스터 안에서 부분적 합의 합으로서 계산될 수 있다.
롤업이 클러스터를 걸쳐서 수행된다면, 다른 클러스터에서 나타나는 동일한 레코드로부터의 기여가 있을 수 있다. 이는 가산적 측정에서는 문제가 없는데 왜냐하면 레코드의 각각의 출현과 연관된 가중치는 새로운 전체적인 가중치를 부여하기 위하여 가산되기 때문이다. 일반적으로 이는 어떤 레코드가 나타나는지에 대한 추적을 요구하고, 이 조작은 병렬화할 수 없다.
하지만 레코드가 클러스터링 이전에, 예를 들어 rec_key와 같이 키이에 의하여 식별된다면, 그리고 데이터가 (클러스터링 이후에) rec_key에 관하여 병렬적으로 파티션된다면, 동일한 rec_key를 가지는 모든 레코드는 동일한 파티션에서 나타날 것이다. 이 파티션을 가지는 롤업은 포함 경계를 적절히 계산할 수 있는데 왜냐하면 심지어 클러스터를 걸쳐서 수행되는 경우에도 모든 관련된 레코드가 나타나기 때문이다. 이후 파티션을 거치는 포함 경계치 (inclusive bound)는 파티션을 거쳐서 안전하게 결합될 수 있는데 왜냐하면 어떤 개별적 레코드도 하나 이상의 파티션에서 출현하지 않고 따라서 이중계수의 가능성이 없기 때문이다.
(4) 검색
정확한 형태의 데이터 조작에서, 정확한 키가 사용된다. 예를 들어, 검색 조작에서, 키가 사용되고 그 키이와 정확하게 일치하는 모든 레코드들이 불러들여진다. 퍼지 데이터 조작에서는, 퍼지 키이가 사용된다.
몇몇 실시예에서는, 예로서 아래에서 예시하고 있는 것처럼 일련의 정확한 데이터 조작으로서 검색 조작이 수행된다.
위에서의 고객 주소 데이터 베이스의 예에서, 회사는 존 스미스라는 이름의 사람에게 보내진 모든 계류중인 우편물 패키지를 찾는데 관심이 있다. 검색 조작이 그러한 목적을 위하여 사용될 수 있다. 검색 조작이 존 스미스와 연관된 정확한 우편 번호인 우편 번호 “ox2 6qt”를 가지는 2파트 키이 “존 스미스; ox2 6qt”를 사용하여 수행될 수 있다. 하지만, 이 정확한 검색 조작은 존 스미스에게 보내진 그들 계류 중인 우편물 패키지를 불러들이지 않을 것이고 입력시 우편물 직원에 의하여 이루어진 오타에 의하여 키이 “존 스미스; ox2 6qx” 또는 “존 스미스; ox26qt”와 잘못 연관되어 있다.
이러한 제한을 극복하기 위하여, 퍼지 키이와 연관된 검색인 퍼지 검색이 사용될 수 있다. 퍼지 키이는 주요 키이에 그 키이로부터 특정 거리 이내에 있는 모든 변형들을 더한 것을 포함하는 키이의 집합의 하나이다. 위의 고객 주소의 예에서, 계류중인 우편 패키지 검색에서 사용되는 퍼지 키이는 주요 키이 “존 스미스; ox2 6qt”에 2회 조작의 거리 이내에 있는 모든 변형을 더한 집합을 포함하도록 정의될 수 있다.
몇몇 실시예에서, 퍼지 키이 (주요 키이 존 스미스 ox2 6qt 와 4개의 변형들 ox2 6qx, ox2 6qy, ox26qy 및 ox26qt)에 관하여 수행된 퍼지 검색 조작은 이하의 형태로 수행된다. 제1 단계에서, 주요 키이 “존 스미스 ox2 6qt”에 관한 정확한 검색을 수행한다. 이후, 제2 단계에서 제5 단계까지, 퍼지 키이의 부분인 변형들에 대한 4회의 정확한 검색을 수행한다. 최종 단계인 제6 단계에서, 위의 단계 1에서 5까지로부터 불러들여진 결과를 결합한다. 결합한 결과가 퍼지 키이를 사용한 퍼지 검색의 결과이다.
회사 이름이나 주소와 같은 다단어 필드에서 검색할 때, 직접 사용될 사전 프로시쥬어 (procedure)에 대하여 미리 그 필드의 변형들의 집합을 결정하는 것은 가능하지 않을 수 있다. 두 개의 대체 전략이 사용될 수 있다. 회사 ACME Services Ltd at 2 Plater Drive, Oxford와 연관된 모든 계정의 레코드들에 대하여 검색이 이루어지고 있다고 하자. 제1 전략에서는, 예를 들어 우편 번호 ox2 6qt와 같은 단일 단어 필드가 검색 키이로 사용된다. “ox2 6qt” 키이를 가지는 모든 레코드 또는 고정된 거리 이내에 있는 변형들 중의 하나가 “기대 일치” 또는 “기대” 로서 정확한 검색에 의하여 불러들여진다. 각 기대에 대한 회사 이름 및 주소는 별도로 질의 회사 이름 및 주소에 대하여 점수가 부여된다.
주소들은 전형적으로 먼저 주소를 구성하는 모든 필드를 단일 스트링으로 연결함으로써 비교가 시작된다. 이는 몇가지 장점이 있다. 첫째, 다른 소스로부터의 주소들을 단순한 공통된 포맷으로 만든다. 어구 점수 함수가 소실 단어 또는 단어 순서의 변화에 대하여 허용 가능하므로, 소스 주소의 요소를 보유하는 본래의 필드가 불완전하게 또는 일관적이지 않게 존재하였어도 문제가 되지 않는다. 똑같이, 공통 포맷이 주소를 표준 주소 요소로 반드시 구문 해석(parse)하지 않아도 얻어진다. 전형적으로 구문 해석은 특히 외국 등에서 사용할 수 없을 우편 주소 파일과 같은 정확한 참조 데이터를 요구한다. 또한 구문 해석은 계산의 측면에서 상대적으로 고비용이고, 그래서 주소 비교를 더 잘 수행하는 방안을 피해간다. 연결된 주소 필드의 비교가 포함 형태(inclusive)라면 구문 해석은 점수를 보강하는 백업으로 사용될 수 있다.
산출된 회사 이름과 주소 점수가 (사용자 특정) 일치 및 추정 임계치와 비교된다. 일치 임계치를 넘는 점수는 두 개의 비교된 어구가 일치를 구성할 만큼 충분히 유사하다는 것을 나타낸다. 추정 임계치를 넘는 점수는 어구들이 유사하지만 신뢰 범위 내에서 일치를 결정할 정도로 충분히 가깝지는 않다는 것을 나타낸다. 전체 레코드가 일치인지에 대한 점수는 개별 필드 또는 필드들의 결합 (즉, 연결된 주소)에 대한 점수를 결합함으로써 얻어진다. 사용자는 어떤 정보가 호응하여야 하는 것이고 얼마나 가깝게 호응하여야 하는지를 결정하는 기준을 특정한다. 예를 들어, 시 필드는 우편 번호가 호응한다면 호응하지 않아도 될 것이다. (예를 들어, 영국에서는, 도시의 이름과 집 번호의 존재/부재 모두에 대하여 허용 가능한 변형을 가지고 유효한 주소를 구성하는 것은 놀라운 허용도이다)
제2의 전략은 하나 이상의 필드로부터 단어를 선택하고 이들을 퍼지 키워드로 사용하는 것이다. 그러한 단어는 이끄는 단어로서 또는 그들의 중요도에 기하여 선택된다. 중요도는 단어의 출현 횟수의 비율의 음의 로그로부터 계산되거나 필드 내에 있는(또는 필드들의 결합에 있는) 그 변형들로부터 필드(또는 필드들)가 존재하는 횟수에 대하여 계산된다.
일단 퍼지 검색 키워드가 선택되면, 각 단어 (및 그 변형)은 단어 단위로 소스 레코드의 인덱스에서 검색된다. 이는 주어진 필드에서 선택된 단어를 포함하는 소스 레코드의 인덱스의 목록을 회신한다. 검색 키워드가 우편 주소 파일의 어떤 주소 필드에서 찾아진 “Lower” 및 “Islip” 이라고 하자. 단어 “Lower”는 단체, 거리 이름 및 시 필드에서 나타날 것이다. “Islip”은 시 로서만 나타날 것이다. 각 단어에 대한 검색은 단어가 발견된 레코드의 색인의 목록을 제공한다. 두 목록을 교차시키는 것은 두 단어들 (또는 그 변형) 모두를 포함하는 레코드의 집합을 제공한다. 이들은 장래의 레코드의 집합을 형성한다. 장래의 레코드는 몇몇 수의 검색어를 포함하고 있다고 알려져 있기 때문에, 이들은 효율적으로 사전 검증된 것이다. 많은 수의 검색어들이 공통일 것이 요구될수록, 필드 사이의 점수가 높아질 가능성도 높아진다.
둘 이상의 검색어를 포함하는 레코드들을 말하자면 오로지 유지하기 위해서만 필터를 적용한 후에, 전체 레코드들은 불러들여지고 서로 점수화된다. 산출된 점수들은 내림차순으로 정렬된다. 모호성의 측정값은 일치들의 집합에 대하여 계산될 수 있을 것이고 이것은 참조에 대한 질의의 일치의 품질을 특정짓는 정보를 증가시킬것이다.
(5) 퍼지 결합
퍼지 결합은 레코드를 불러들이기 위하여 참조 (lookup)을 사용하는 대신에, 질의 데이터 집합에 대하여 전체 참조 데이터 집합이 판독되고 처리되는 경우에 결합이 대신 사용된다는 점을 제외하고는 퍼지 검색과 유사하다. 이는 성능과 제어 모두에 대하여 유용할 수 있다. 참조 데이터 집합이 보통의 참조로서 메모리에 들어맞기에는 너무 큰 경우, 그 대신에 디스크에 보유되어 있는 (아마도 블록단위로 압축된) 로딩 가능한 참조 (데이터) (참조: 로딩 가능한 아브 이니티오 참조 데이터)로서 액세스될 수 있다. 각 항목이 처리되면, 참조 테이블의 적합한 페이지가 디스크로부터 액세스된다. 참조 데이터 집합의 충분히 큰 비율 (예, 10%)이 액세스될 필요가 있는 경우, 전체 참조 데이터 집합을 정렬된 순서로 단일 경로로 판독하는 것이 랜덤 액세스 검색으로 처리하는 것보다 더 효율적이라고 판명된다. 이는 검색과정에 의하여 수행되는 반복되는 디스크 액세스의 횟수를 줄여준다.
제어 측면에서, 검색이 여러 개의 참조 데이터 집합에 대한 액세스를 요구하는 경우, 결합은 점수화를 위하여 참조 데이터 집합으로부터 데이터를 함께 가져오는 더욱 편리한 방법이 될 것이다. 질의가 단일 입력 항목에서 고객 이름과 주소를 포함하지만 참조 데이터가 고객 이름과 주소를 별도의 케이블에 보유하고 있다고 하자. 고객 이름과 주소를 연결하는 제3의 연결 테이블이 있을 것이다. 만일 타겟 참조 데이터가 다른 테이블에 보유되어 있다면, 검색 키워드에 대하여 인덱스 파일을 검색함으로써 회신된 레코드 인덱스를 직접 비교하는 것은 가능하지 않을 것인데 왜냐하면 인덱스가 다른 데이터 집합에서 레코드를 참조하기 때문이다. 키이가 질의로 지정되는 경우, 별도의 검색이 각 데이터 집합에 대하여 이루어질 수 있고 질의 키에 관한 결합이 이들 검색의 결과를 결합하고 기대치가 페치 (fetch)되고 점수화된다.
만일 모호성의 측정값이 퍼지 결합의 출력의 부분으로서 계산된다면, 다수의 일치들이 결합 조작으로부터 산출되는 것이 가능하게 되고, 각각은 부분적 구성 요건을 구비하게 될 것이다. 예를 들어 집 번호가 없는 주소가 우편 주소 파일에 대하여 결합되어 우편 주소 파일이 레코드를 가지고 있는 단체의 이름을 찾았다고 하자. 적절한 거리(street)에 대하여 우편 주소 파일의 3개의 주소가 단체를 가지고 있지 않고 그러므로 그 단체를 식별할 목적을 위하여 결합될 수 있다. 두 개의 별도의 단체인 ACME Ltd 및 Standard Corp.가 다른 일치 주소에 나타나 있다. 모호성에 대한 균등 파티션 측정법은 균등한 출현 횟수를 계수할 것이다. 결합의 출력은 최초에는 5레코드일 것이고, 각 일치 주소에 대하여 1개의 레코드가 있다. 이후 (모호성의 측정치를 결정하기 위하여) 주소에서 단체에 대하여 롤업하는 것은 모호성의 균등 파티션 측정치가 단체의 가능성이 없거나 (3/5), ACME Ltd (1/5)이거나, Standard Corp. (1/5)라는 것을 보여준다. 이 결과는 이후 3개의 레코드에 대하여 표준화될 수 있고, 각각은 별도의 단체 및 연관된 부분적 구성 요건을 구비한다.
질의: 단체를 찾아내기 위하여 주소에 대하여 결합하시오
질의 주소: Lower Street, ox2 6qt
단체 주소
-- 2 Lower Street, ox2 6qt
-- 3 Lower Street, ox2 6qt
ACME Ltd 4 Loower St, ox2 6qt
-- 5 Lower St, ox2 6qy
Standard Corp. 8 Lower St., ox2 6qt
결과:
단체 주소 할당 키이 부분적 구성 요건
-- Lower Street, ox2 6qt a1 0.6
ACME Ltd Lower Street, ox2 6qt a1 0.2
Standard Corp. Lower Street, ox2 6qt a1 0.2
(6) 정렬 및 부분적 구성 요건
구성 요건이 부분적일 때 레코드들을 정렬하는 (퍼지) 정렬은 정의하기 명백하다. 모호한 연합을 가지는 레코드에 대하여, 그 할당 (모호성의 측정치)과 함께 각 대안에 대한 레코드가 만들어진다. 이전의 예에서 참조 레코드가 질의 레코드에 대한 결합의 출력에 대하여 정렬된다고 하자. 규칙은 완전한 구성 요건이 구성 요건의 내림차순으로 정렬된 다음에 부분적 구성 요건이 정렬되는 것이다. 부분적 구성 요건이 적용된 이후에 다른 필드에 대한 서브 정렬이 적용된다. 한 필드에 대한 부분적 구성 요건은 이후의 키이에 대한 선행 지위(precedence)를 취한다. 이는 추가 정렬 필드의 정렬이 확립된 순서 내의 레코드들을 정렬하지만 더 높은 레벨의 순서는 변경시키지 않는다는 원칙을 보존한다.
정렬 {단체 비율; 주소}:
-- 2 Lower Street, ox2 6qt -- 1.0
-- 3 Lower Street, ox2 6qt -- 1.0
-- 5 Lower St, ox2 6qy -- 1.0
-- Lower Street, ox2 6qt a1 0.6
ACME Ltd 4 Loower St, ox2 6qt
ACME Ltd Lower Street, ox2 6qt a1 0.2
Standard Corp. 8 Lower St., ox2 6qt
Standard Corp. Lower Street, ox2 6qt a1 0.2
이러한 종류의 퍼지 정렬을 적용하면, 모든 데이터가 나타날 때까지 일시적인 결과를 저장해야만 할 필요 없이 단체 이름에 기하여 단체에 대한 (정렬된) 퍼지 롤업이 이루어질 수 있다. 이는 정렬된 데이터의 주된 용도 중의 하나이다: 롤업 조작은 각 키이 그룹이 완료할 때 완료할 수 있다.
퍼지 병합 조작은 퍼지 정렬과 유사하다. 정렬 규칙을 각 레코드에 대하여 입력에 관하여 적용하여 어떤 레코드가 정렬 순서에서 다음에 오는지를 결정한다. 위의 데이터 집합이 이하의 예들과 병합된다고 하자.
ACME Ltd Lower Street, ox2 6qt a2 0.9
ACME Ltd Lower Street, ox2 6qt a2 0.9
Standard Corp. Lower Street , ox2 6qt a2 0.1
병합된 데이터는
병합{단체 비율 주소}:
-- 2 Lower Street, ox2 6qt -- 1.0
*-- 3 Lower Street, ox2 6qt -- 1.0
-- 5 Lower St, ox2 6qy -- 1.0
-- Lower Street, ox2 6qt a1 0.6
ACME Ltd 4 Lower St, ox2 6qt
ACME Ltd Lower Street, ox2 6qt a2 0.9
ACME Ltd Lower Street, ox2 6qt a1 0.2
*Standard Corp. 8 Lower St., ox2 6qt
Standard Corp. Lower Street, ox2 6qt a1 0.2
Standard Corp. Lower Street , ox2 6qt a2 0.1
(h) 퍼지 데이터 조작의 유용성: 실수와 불확정성을 언급하고 회계 무결성을 보존함
위의 퍼지 검색의 예에서 설명한 것처럼, 퍼지 검색 조작은 정확한 키를 사용하는 종래의 검색이 놓칠 레코드, 예를 들어 오타를 포함하는 레코드들을 불러올 수 있다.
또한 위에서 언급한 것처럼, 데이터의 분류가 계류중인 결과에 의존할 때, 클러스터링 또는 부분적 구성 요건은 불확정성을 정확하게 파악하는 데 사용될 수 있다. 중도적인 레벨에서, 클러스터링 또는 부분적 구성 요건은 별개의 비 퍼지 조작들의 결합 또는 연속과 균등하게 볼 수 있다. 그러나 몇 발자국 떨어져서 보면, 클러스터링 또는 부분적 구성 요건은 더욱 나은 처리 또는 예측을 가능하게 할 것이다. 어느 단체의 연간 예산이 그 단체가 자선 단체인지 아닌지를 평가하는데 관한 계류중인 법원 판결에 의존하는 위의 예에서, 연간 예산은 법원 판결이 우호적인지 또는 아닌지의 확률에 기하여 준비될 수 있다.
보다 구체적으로, 연간예산은 다음과 같이 준비될 수 있다.
납세준비액=
(비자선단체 지위에 기한 납세액) X (부정적인 법원판결의 확률)
+ (자선단체 지위에 기한 납세액) X (우호적인 법원판결의 확률)
위의 수식을 사용하여 납세준비액을 계산하는 것은 단체의 보다 나은 전체적인 재정 상태의 전망을 보여주고 상부 경영진에 의한 리스크 평가를 제공한다. 이는 또한 하부로의 적용에 대하여, 보다 신뢰성 있는 형태로 시장분석이, 예를 들어, 더 나은 해당 단체의 금융 전망을 예측할 수 있게 해주는 역할 등을 제공한다.
부분적 구성 요건은 또한 회계 무결성을 보전하는 데 유용하다. 예를 들어, 주식회사 ABC의 인사 데이터 베이스에서, 마케팅 부서와 R&D부서의 구성 요건이 각각 0.5인 경우, 존 스미스의 의료비가 이중으로 계산되지 않는 것을 보았다.
위에서 언급된 접근 방법은 컴퓨터에서 실행될 수 있는 소프트웨어를 사용하여 실행될 수 있다. 예를 들어, 소프트웨어는 하나 이상의 컴퓨터 프로그램에서 프로시쥬어를 형성하고, 프로그램은 하나 이상의 프로그램된 또는 프로그램할 수 있는 (분산 처리 시스템, 클라이언트/서버 시스템, 또는 그리드 시스템등 다양한 아키텍쳐로 되어 있는) 컴퓨터 시스템에서 실행되며, 각 컴퓨터 시스템은 적어도 하나의 프로세서, 적어도 하나의 데이터 저장 시스템 (휘발성 및 불휘발성 메모리 및/또는 저장 요소를 포함), 적어도 하나의 입력 장치 또는 포트, 그리고 적어도 하나의 출력 장치 또는 포트를 포함한다. 소프트웨어는 대형 프로그램의 하나 이상의 모듈을 형성할 수 있고, 대형 프로그램은 예를 들어 계산 그래프의 디자인 및 배열과 관련된 다른 서비스들을 제공한다. 그래프의 노드와 요소들은 컴퓨터 판독 가능한 매체에 저장된 데이터 구조 또는 데이터 보존부에 저장된 데이터 모델과 일치하는 또 다른 조직된 데이터로서 구현될 수 있다.
소프트웨어는 범용 또는 특수목적 프로그램 가능한 컴퓨터에서 읽을 수 있는 CD-ROM과 같은 저장장치에서 제공될 수 있고, 실행될 때 네트웍의 통신 매체를 통해 컴퓨터로 배신될 수 있다 (전파 가능한 신호로 인코딩됨). 모든 함수들은 특수 목적 컴퓨터 또는 코프로세서와 같은 특수 목적 하드웨어에서 실행될 수 있다. 소프트웨어는 소프트웨어에 의하여 특정된 다른 계산 부분이 다른 컴퓨터에 의하여 수행되는 분산 처리 방식으로 실행될 수 있다. 그러한 컴퓨터 프로그램의 각각은 바람직하게는 범용 또는 특수목적 프로그램 가능한 컴퓨터에서 읽을 수 있는 저장 매체 또는 장치(즉, 고체 메모리 또는 매체 또는 자기 또는 광학 매체)에 저장되고 다운로드 되고, 저장매체 또는 장치가 컴퓨터 시스템에 의하여 읽힐 때 컴퓨터 시스템은 배열되고 운영되어 본 명세서에서 기재된 프로시쥬어들을 실행한다. 본 발명의 시스템은 컴퓨터 판독 가능한 저장매체로서 고려될 수 있는데, 저장 매체는 컴퓨터 프로그램이 설치되어 있고 저장 매체는 컴퓨터 시스템이 특정 방식 또는 사전에 정의된 방식으로 동작하여 본 명세서에 기재된 함수들을 수행한다.
본 발명의 다수의 실시예 들이 지금까지 서술되었다. 그럼에도 불구하고, 다양한 변경들이 본 발명의 기본 정신과 범위로부터 벗어나지 않으면서 이루어질 수 있다는 점이 이해되어야 할 것이다.예를 들어, 위에서 기재된 단계들 중 몇몇은 독립적으로 될 수 있고 따라서 기재된 순서와는 다른 순서로 실행될 수 있다.
앞에서 기재된 내용은 예를 들어 설명하기 위한 것이고 발명의 범위를 제한하기 위한 것이 아니라는 점을 이해하여야 할 것이다. 발명의 범위는 첨부된 특허 청구 범위에 의하여 정의된다. 예를 들어, 위에서 서술된 다수의 단계들은 전체적인 처리에 영향을 주지 않으면서 다른 순서로 실행될 수 있다. 다른 실시예들은 이하의 특허 청구 범위 내에 있을 것이다.

Claims (29)

  1. 하나 이상의 데이터 저장 시스템(12)에 저장된 두 개 이상의 데이터 집합으로부터 데이터 요소를 결합하는 방법에서, 상기 방법은:
    제1 데이터 집합으로부터의 데이터 요소들의 객체들과 제2 데이터 집합으로부터의 데이터 요소들의 객체들 사이의 변형 관계에 기하여 상기 제1 데이터 집합으로부터의 데이터 요소들의 객체들과 상기 제2 데이터 집합의 데이터 요소들의 객체들 사이의 일치를 결정하는 단계;
    일치로 결정된 각각의 객체를 가지는 각각의 데이터 요소를 평가하는 단계; 및
    상기 데이터 요소들의 평가에 기하여 상기 제1 데이터 집합으로부터의 데이터 요소들과 상기 제2 데이터 집합으로부터의 데이터 요소들을 결합하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 제1 데이터 집합으로부터의 데이터 요소들의 객체들과 제2 데이터 집합으로부터의 데이터 요소들의 객체들 사이의 변형 관계는, 미리 정해진 임계값 아래의, 상기 제1 데이터 집합으로부터의 데이터 요소들의 객체들과 제2 데이터 집합으로부터의 데이터 요소들의 객체들 사이의 거리를 나타내는 함수의 값에 대응하는 것인 방법.
  3. 제2항에 있어서,
    상기 변형 관계는 균등 관계가 아닌 것인 방법.
  4. 제2항에 있어서,
    상기 제1 데이터 집합으로부터의 제1데이터 요소의 객체와 상기 제2 데이터 집합의 제2 데이터 요소의 객체 사이의 일치를 결정하는 단계는 상기 제1 데이터 요소의 객체와 제2 데이터 요소의 객체 사이의 변형 관계를 결정하는 단계를 포함하는 것인 방법.
  5. 제2항에 있어서,
    상기 제1 데이터 집합으로부터의 제1 데이터 요소의 객체와 상기 제2 데이터 집합의 제2 데이터 요소의 객체 사이의 일치를 결정하는 단계는: 제1 데이터 요소의 객체와 제1 데이터 집합의 제3 데이터 요소의 객체 사이의 변형 관계 및 상기 제3 데이터 요소의 객체와 상기 제2 데이터 요소의 객체 사이의 변형 관계를 결정하는 단계를 포함하는 것인 방법.
  6. 제1항에 있어서,
    상기 일치로 결정된 각각의 객체를 가지는 각각의 데이터 요소를 평가하는 단계는 일치라고 결정된 각각의 객체가 아닌 각각의 데이터 요소의 객체들의 비교를 포함하는 것인 방법.
  7. 하나 이상의 데이터 저장 시스템(12)에 저장된 두 개 이상의 데이터 집합으로부터 데이터 요소를 결합하는 시스템에 있어서, 상기 시스템은:
    제1 데이터 집합으로부터의 데이터 요소들의 객체들과 제2 데이터 집합으로부터의 데이터 요소들의 객체들 사이의 일치를 상기 제1 데이터 집합으로부터의 상기 데이터 요소들의 객체들과 상기 제2 데이터 집합으로부터의 상기 데이터 요소들의 객체들 사이의 변형 관계에 기하여 결정하는 수단;
    일치라고 결정된 각각의 객체를 가지는 각각의 데이터 요소를 평가하는 수단; 및
    상기 데이터 요소의 평가에 기하여 상기 제2 데이터 집합으로부터의 상기 데이터 요소들과 상기 제1데이터 집합으로부터의 데이터 요소들을 결합하는 수단
    을 포함하는 시스템.
  8. 하나 이상의 데이터 저장 시스템(12)에 저장된 두 개 이상의 데이터 집합으로부터 데이터 요소를 결합하는 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능한 기록 매체에 있어서, 상기 컴퓨터 프로그램은 컴퓨터로 하여금:
    제1 데이터 집합으로부터의 데이터 요소들의 객체들과 제2 데이터 집합으로부터의 데이터 요소들의 객체들 사이의 일치를 상기 제1 데이터 집합으로부터의 상기 데이터 요소들의 객체들과 상기 제2 데이터 집합으로부터의 상기 데이터 요소들의 객체들 사이의 변형 관계에 기하여 결정하고;
    일치라고 결정된 각각의 객체를 가지는 각각의 데이터 요소를 평가하고;
    상기 데이터 요소의 평가에 기하여 상기 제2 데이터 집합으로부터의 상기 데이터 요소들과 상기 제1데이터 집합으로부터의 데이터 요소들을 결합하도록 하는,
    지시를 포함하는 기록 매체.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
KR1020147037118A 2008-10-23 2009-10-23 데이터 조작 수행, 데이터 품질 측정, 또는 데이터 요소 결합을 위한 방법, 시스템, 및 컴퓨터 프로그램을 저장하는 컴퓨터 판독 가능한 매체 KR101607178B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10797108P 2008-10-23 2008-10-23
US61/107,971 2008-10-23
PCT/US2009/061899 WO2010048538A1 (en) 2008-10-23 2009-10-23 Fuzzy data operations

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020117011510A Division KR101514756B1 (ko) 2008-10-23 2009-10-23 데이터 요소를 클러스터링하는 방법, 시스템, 및 컴퓨터 프로그램을 저장하는 컴퓨터 판독 가능한 매체

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020167007570A Division KR101789608B1 (ko) 2008-10-23 2009-10-23 데이터 조작 수행을 위한 방법 및 컴퓨터 프로그램이 저장된 컴퓨터-판독가능 기록 매체

Publications (2)

Publication Number Publication Date
KR20150015029A KR20150015029A (ko) 2015-02-09
KR101607178B1 true KR101607178B1 (ko) 2016-03-29

Family

ID=42118497

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020117011510A KR101514756B1 (ko) 2008-10-23 2009-10-23 데이터 요소를 클러스터링하는 방법, 시스템, 및 컴퓨터 프로그램을 저장하는 컴퓨터 판독 가능한 매체
KR1020147037118A KR101607178B1 (ko) 2008-10-23 2009-10-23 데이터 조작 수행, 데이터 품질 측정, 또는 데이터 요소 결합을 위한 방법, 시스템, 및 컴퓨터 프로그램을 저장하는 컴퓨터 판독 가능한 매체
KR1020167007570A KR101789608B1 (ko) 2008-10-23 2009-10-23 데이터 조작 수행을 위한 방법 및 컴퓨터 프로그램이 저장된 컴퓨터-판독가능 기록 매체

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020117011510A KR101514756B1 (ko) 2008-10-23 2009-10-23 데이터 요소를 클러스터링하는 방법, 시스템, 및 컴퓨터 프로그램을 저장하는 컴퓨터 판독 가능한 매체

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020167007570A KR101789608B1 (ko) 2008-10-23 2009-10-23 데이터 조작 수행을 위한 방법 및 컴퓨터 프로그램이 저장된 컴퓨터-판독가능 기록 매체

Country Status (8)

Country Link
US (3) US8484215B2 (ko)
EP (1) EP2342684A4 (ko)
JP (4) JP5535230B2 (ko)
KR (3) KR101514756B1 (ko)
CN (3) CN103810527B (ko)
AU (1) AU2009308206B2 (ko)
CA (3) CA3024642C (ko)
WO (1) WO2010048538A1 (ko)

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8131759B2 (en) 2007-10-18 2012-03-06 Asurion Corporation Method and apparatus for identifying and resolving conflicting data records
US8775441B2 (en) 2008-01-16 2014-07-08 Ab Initio Technology Llc Managing an archive for approximate string matching
US8484215B2 (en) 2008-10-23 2013-07-09 Ab Initio Technology Llc Fuzzy data operations
US9135396B1 (en) 2008-12-22 2015-09-15 Amazon Technologies, Inc. Method and system for determining sets of variant items
US8463743B2 (en) * 2009-02-17 2013-06-11 Microsoft Corporation Shared composite data representations and interfaces
US8738584B2 (en) * 2009-02-17 2014-05-27 Microsoft Corporation Context-aware management of shared composite data
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
US9026552B2 (en) * 2010-01-18 2015-05-05 Salesforce.Com, Inc. System and method for linking contact records to company locations
US8484243B2 (en) * 2010-05-05 2013-07-09 Cisco Technology, Inc. Order-independent stream query processing
US20110314075A1 (en) * 2010-06-18 2011-12-22 Nokia Corporation Method and apparatus for managing distributed computations within a computation space
US20120089604A1 (en) * 2010-10-08 2012-04-12 Jocelyn Siu Luan Hamilton Computer-Implemented Systems And Methods For Matching Records Using Matchcodes With Scores
US20120089614A1 (en) * 2010-10-08 2012-04-12 Jocelyn Siu Luan Hamilton Computer-Implemented Systems And Methods For Matching Records Using Matchcodes With Scores
US8504299B2 (en) * 2010-12-01 2013-08-06 The United States Of America, As Represented By The Secretary Of The Navy Fuzzy clustering of oceanic profiles
US20120150825A1 (en) 2010-12-13 2012-06-14 International Business Machines Corporation Cleansing a Database System to Improve Data Quality
AU2012211167B2 (en) 2011-01-28 2014-08-21 Ab Initio Technology Llc Generating data pattern information
EP2506540B1 (en) * 2011-03-28 2014-09-17 TeliaSonera AB Enhanced contact information
US9129010B2 (en) 2011-05-16 2015-09-08 Argo Data Resource Corporation System and method of partitioned lexicographic search
CN102855259B (zh) * 2011-06-30 2015-05-13 Sap欧洲公司 大规模数据聚类分析的并行化
US10636083B1 (en) * 2011-07-27 2020-04-28 Intuit Inc. Systems methods and articles of manufacture for analyzing on-line banking account data using hybrid edit distance
US9317544B2 (en) * 2011-10-05 2016-04-19 Microsoft Corporation Integrated fuzzy joins in database management systems
CN102393303B (zh) * 2011-10-14 2014-05-14 哈尔滨工业大学 一种燃气轮机的排序异常检测方法
US9189563B2 (en) 2011-11-02 2015-11-17 Microsoft Technology Licensing, Llc Inheritance of rules across hierarchical levels
US9558274B2 (en) 2011-11-02 2017-01-31 Microsoft Technology Licensing, Llc Routing query results
US9177022B2 (en) 2011-11-02 2015-11-03 Microsoft Technology Licensing, Llc User pipeline configuration for rule-based query transformation, generation and result display
CN104054073B (zh) 2011-11-15 2018-10-30 起元科技有限公司 数据分群、分段、以及并行化
US8914353B2 (en) * 2011-12-20 2014-12-16 Sap Se Many-core algorithms for in-memory column store databases
CN103336770B (zh) * 2012-02-28 2017-03-01 国际商业机器公司 用于标识互补数据对象的方法和系统
WO2013139379A1 (en) * 2012-03-20 2013-09-26 Universität des Saarlandes Replicated data storage system and methods
US8983954B2 (en) * 2012-04-10 2015-03-17 Microsoft Technology Licensing, Llc Finding data in connected corpuses using examples
US8661004B2 (en) * 2012-05-21 2014-02-25 International Business Machines Corporation Representing incomplete and uncertain information in graph data
CN103593799B (zh) 2012-08-16 2016-10-26 腾讯科技(深圳)有限公司 自然人信息设置方法、系统及相应的好友推荐方法、系统
US9222777B2 (en) 2012-09-07 2015-12-29 The United States Post Office Methods and systems for creating and using a location identification grid
US8612213B1 (en) 2012-10-16 2013-12-17 Google Inc. Correction of errors in character strings that include a word delimiter
US8713433B1 (en) 2012-10-16 2014-04-29 Google Inc. Feature-based autocorrection
US20140164376A1 (en) * 2012-12-06 2014-06-12 Microsoft Corporation Hierarchical string clustering on diagnostic logs
US20140244641A1 (en) * 2013-02-27 2014-08-28 Wal-Mart Stores, Inc. Holistic customer record linkage via profile fingerprints
US10803102B1 (en) * 2013-04-30 2020-10-13 Walmart Apollo, Llc Methods and systems for comparing customer records
US9619204B2 (en) * 2013-06-14 2017-04-11 Nvidia Corporation Method and system for bin coalescing for parallel divide-and-conquer sorting algorithms
US9607036B2 (en) * 2013-08-21 2017-03-28 International Business Machines Corporation Managing a data set
CN104424613A (zh) * 2013-09-04 2015-03-18 航天信息股份有限公司 一种增值税发票的监控方法及其系统
US20150095349A1 (en) * 2013-09-27 2015-04-02 Microsoft Corporation Automatically identifying matching records from multiple data sources
CN103825930B (zh) * 2013-11-12 2017-03-29 浙江省水文局 一种分布式环境下的实时数据同步方法
US10026114B2 (en) * 2014-01-10 2018-07-17 Betterdoctor, Inc. System for clustering and aggregating data from multiple sources
US9607073B2 (en) * 2014-04-17 2017-03-28 Ab Initio Technology Llc Processing data from multiple sources
GB201409214D0 (en) 2014-05-23 2014-07-09 Ibm A method and system for processing a data set
CN105447609A (zh) * 2014-08-29 2016-03-30 国际商业机器公司 用于处理案例管理模型的方法、装置和系统
US10764265B2 (en) * 2014-09-24 2020-09-01 Ent. Services Development Corporation Lp Assigning a document to partial membership in communities
US11562040B2 (en) * 2014-09-25 2023-01-24 United States Postal Service Methods and systems for creating and using a location identification grid
US10318527B2 (en) * 2015-01-27 2019-06-11 International Business Machines Corporation Search-based detection, link, and acquisition of data
US10261945B1 (en) * 2015-02-04 2019-04-16 Quest Software Inc. Systems and methods for storing and accessing monitoring data
KR101644740B1 (ko) * 2015-02-27 2016-08-01 충북대학교 산학협력단 데이터 품질 평가 방법 및 시스템
KR101632073B1 (ko) * 2015-06-04 2016-06-20 장원중 통계 분석 기반의 데이터 프로파일링을 제공하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능한 기록 매체
US11762989B2 (en) 2015-06-05 2023-09-19 Bottomline Technologies Inc. Securing electronic data by automatically destroying misdirected transmissions
US10007786B1 (en) * 2015-11-28 2018-06-26 Symantec Corporation Systems and methods for detecting malware
US20170163664A1 (en) 2015-12-04 2017-06-08 Bottomline Technologies (De) Inc. Method to secure protected content on a mobile device
US11010391B2 (en) * 2015-12-30 2021-05-18 Sap Se Domain agnostic similarity detection
US10901996B2 (en) 2016-02-24 2021-01-26 Salesforce.Com, Inc. Optimized subset processing for de-duplication
US10482074B2 (en) * 2016-03-23 2019-11-19 Wipro Limited System and method for classifying data with respect to a small dataset
US10956450B2 (en) 2016-03-28 2021-03-23 Salesforce.Com, Inc. Dense subset clustering
US10949395B2 (en) * 2016-03-30 2021-03-16 Salesforce.Com, Inc. Cross objects de-duplication
JP7024709B2 (ja) * 2016-06-02 2022-02-24 日本電気株式会社 暗号化情報照合装置、暗号化情報照合方法、及び、暗号化情報照合プログラム
US11163955B2 (en) 2016-06-03 2021-11-02 Bottomline Technologies, Inc. Identifying non-exactly matching text
US11243987B2 (en) * 2016-06-16 2022-02-08 Microsoft Technology Licensing, Llc Efficient merging and filtering of high-volume metrics
CN106372668A (zh) * 2016-08-31 2017-02-01 新浪网技术(中国)有限公司 一种数据匹配方法及装置
US9934287B1 (en) 2017-07-25 2018-04-03 Capital One Services, Llc Systems and methods for expedited large file processing
CN107944866B (zh) * 2017-10-17 2021-08-31 厦门市美亚柏科信息股份有限公司 交易记录排重方法及计算机可读存储介质
US11429642B2 (en) 2017-11-01 2022-08-30 Walmart Apollo, Llc Systems and methods for dynamic hierarchical metadata storage and retrieval
US10445422B2 (en) * 2018-02-09 2019-10-15 Microsoft Technology Licensing, Llc Identification of sets and manipulation of set data in productivity applications
CN108717662A (zh) * 2018-05-11 2018-10-30 广州天维信息技术股份有限公司 一种人工智能化的存量清理方法和系统
US11474978B2 (en) * 2018-07-06 2022-10-18 Capital One Services, Llc Systems and methods for a data search engine based on data profiles
US10460235B1 (en) 2018-07-06 2019-10-29 Capital One Services, Llc Data model generation using generative adversarial networks
SG11202100165PA (en) * 2018-07-11 2021-02-25 Visa Int Service Ass Privacy-preserving graph compression with automated fuzzy variable detection
US11687491B2 (en) 2018-07-17 2023-06-27 International Business Machines Corporation, Armonk, Ny Generating weights for finding duplicate records
JP6857635B2 (ja) * 2018-08-22 2021-04-14 オムロン株式会社 利用予約情報管理システム、利用予約情報管理方法、及びプログラム
KR102149831B1 (ko) 2018-11-12 2020-09-01 한국과학기술연구원 그래핀 패턴의 합성 방법 및 이를 이용한 전광 모듈레이터의 제조 방법
US11681691B2 (en) 2018-11-19 2023-06-20 Numetric, Inc. Presenting updated data using persisting views
US11263588B2 (en) * 2018-12-20 2022-03-01 Microsoft Technology Licensing, Llc Intelligent document management in computing systems
US11416713B1 (en) 2019-03-18 2022-08-16 Bottomline Technologies, Inc. Distributed predictive analytics data set
CN110059142A (zh) * 2019-04-24 2019-07-26 重庆邮电大学 一种高效的并行不确定性数据聚类方法
US11315177B2 (en) * 2019-06-03 2022-04-26 Intuit Inc. Bias prediction and categorization in financial tools
US11042555B1 (en) 2019-06-28 2021-06-22 Bottomline Technologies, Inc. Two step algorithm for non-exact matching of large datasets
WO2021021614A1 (en) * 2019-07-26 2021-02-04 Io-Tahoe Llc Techniques for database entries de-duplication
US11386101B2 (en) 2019-08-08 2022-07-12 Cisco Technology, Inc. Systems and methods for fuzzy search without full text
US11269841B1 (en) 2019-10-17 2022-03-08 Bottomline Technologies, Inc. Method and apparatus for non-exact matching of addresses
KR102365910B1 (ko) * 2019-12-31 2022-02-22 가톨릭관동대학교산학협력단 속성 값 품질 지수를 이용한 데이터 프로파일링 방법 및 데이터 프로파일링 시스템
US11243954B2 (en) * 2020-02-07 2022-02-08 International Business Machines Corporation Method to automatically join datasets with different geographic location naming conventions
WO2021203088A1 (en) * 2020-04-03 2021-10-07 Insurance Services Office, Inc. Systems and methods for computer modeling using incomplete data
US11593435B2 (en) * 2020-05-26 2023-02-28 Rovi Guides, Inc. Automated metadata asset creation using machine learning models
CN111753840A (zh) * 2020-06-18 2020-10-09 北京同城必应科技有限公司 一种同城物流配送名片下单技术
CN112000707B (zh) * 2020-07-06 2021-08-24 中科驭数(北京)科技有限公司 可变长序列匹配方法、数据库访问方法及装置
US11449870B2 (en) 2020-08-05 2022-09-20 Bottomline Technologies Ltd. Fraud detection rule optimization
CN111984776B (zh) * 2020-08-20 2023-08-11 中国农业科学院农业信息研究所 一种基于词向量模型的机构名称规范方法
US11748354B2 (en) * 2020-09-27 2023-09-05 International Business Machines Corporation Data shape confidence
CN112561357A (zh) * 2020-12-22 2021-03-26 济南中科成水质净化有限公司 一种基于有向无环图的污水处理工艺系统模糊评估方法
US20220350792A1 (en) * 2021-04-29 2022-11-03 Microsoft Technology Licensing, Llc Incremental updates of conflated data records
US11544798B1 (en) 2021-08-27 2023-01-03 Bottomline Technologies, Inc. Interactive animated user interface of a step-wise visual path of circles across a line for invoice management
US11694276B1 (en) 2021-08-27 2023-07-04 Bottomline Technologies, Inc. Process for automatically matching datasets
US20230350903A1 (en) * 2022-04-29 2023-11-02 Oracle International Corporation Address matching from single string to address matching score

Family Cites Families (117)

* 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
US5202986A (en) * 1989-09-28 1993-04-13 Bull Hn Information Systems Inc. Prefix search tree partial key branching
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
JP2795058B2 (ja) * 1992-06-03 1998-09-10 松下電器産業株式会社 時系列信号処理装置
JPH0644309A (ja) * 1992-07-01 1994-02-18 Nec Corp データベース管理方式
US7082426B2 (en) * 1993-06-18 2006-07-25 Cnet Networks, Inc. Content aggregation method and apparatus for an on-line product catalog
JPH0944518A (ja) * 1995-08-02 1997-02-14 Adoin Kenkyusho:Kk 画像データベースの構築方法と、画像データベースの検索方法及び検索装置
US5632182A (en) * 1995-08-29 1997-05-27 Teleflex Incorporated Serviceable clip core coupling
US5832182A (en) 1996-04-24 1998-11-03 Wisconsin Alumni Research Foundation Method and system for data clustering for very large databases
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
JPH10275159A (ja) 1997-03-31 1998-10-13 Nippon Telegr & Teleph Corp <Ntt> 情報検索方法及び装置
JP3466054B2 (ja) 1997-04-18 2003-11-10 富士通株式会社 グループ化と集計演算処理方式
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 同一人判定システムおよび方法
JPH11232303A (ja) * 1998-02-19 1999-08-27 Fuji Xerox Co Ltd テキスト検索装置
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 建物と地図とのマッチング方法および記録媒体
US6658626B1 (en) 1998-07-31 2003-12-02 The Regents Of The University Of California User interface for displaying document comparison information
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
US6317707B1 (en) 1998-12-07 2001-11-13 At&T Corp. Automatic clustering of tokens from a corpus for grammar acquisition
US7356462B2 (en) 2001-07-26 2008-04-08 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
JP3955410B2 (ja) * 1999-03-23 2007-08-08 株式会社アドイン研究所 類似情報照合装置、類似情報照合方法、及び、類似情報照合プログラムを記録した記録媒体
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
JP2001147930A (ja) 1999-11-19 2001-05-29 Mitsubishi Electric Corp 文字列比較方法および文字列比較を用いた情報検索装置
KR100426382B1 (ko) * 2000-08-23 2004-04-08 학교법인 김포대학 엔트로피 정보와 베이지안 에스오엠을 이용한 문서군집기반의 순위조정 방법
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
US7389265B2 (en) * 2001-01-30 2008-06-17 Goldman Sachs & Co. Systems and methods for automated political risk management
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
JP3812818B2 (ja) * 2001-12-05 2006-08-23 日本電信電話株式会社 データベース生成装置、データベース生成方法及びデータベース生成処理プログラム
US20030120630A1 (en) 2001-12-20 2003-06-26 Daniel Tunkelang Method and system for similarity search and clustering
AU2003210789A1 (en) 2002-02-01 2003-09-02 John Fairweather A system and method for managing dataflows
EP1485825A4 (en) 2002-02-04 2008-03-19 Cataphora Inc DETAILED EXPLORATION TECHNIQUE OF SOCIOLOGICAL DATA AND CORRESPONDING APPARATUS
AU2003243533A1 (en) 2002-06-12 2003-12-31 Jena Jordahl Data storage, retrieval, manipulation and display tools enabling multiple hierarchical points of view
US7010522B1 (en) 2002-06-17 2006-03-07 At&T Corp. Method of performing approximate substring indexing
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
US20040093331A1 (en) * 2002-09-20 2004-05-13 Board Of Regents, University Of Texas System Computer program products, systems and methods for information discovery and relational analyses
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
EP1567956A4 (en) 2002-11-08 2007-12-05 Dun & Bradstreet Inc SYSTEM AND METHOD FOR BROWSING AND COMPARING DATA BANKS
US7392247B2 (en) 2002-12-06 2008-06-24 International Business Machines Corporation Method and apparatus for fusing context 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
US7720846B1 (en) * 2003-02-04 2010-05-18 Lexisnexis Risk Data Management, Inc. System and method of using ghost identifiers in a database
US7287019B2 (en) 2003-06-04 2007-10-23 Microsoft Corporation Duplicate data elimination system
KR20090039803A (ko) 2003-09-15 2009-04-22 아브 이니티오 소프트웨어 엘엘시 데이터 프로파일링
EP1692626A4 (en) * 2003-09-17 2008-11-19 Ibm IDENTIFICATION OF RELATED NAMES
US20050120011A1 (en) 2003-11-26 2005-06-02 Word Data Corp. Code, method, and system for manipulating texts
US7493294B2 (en) * 2003-11-28 2009-02-17 Manyworlds Inc. Mutually adaptive systems
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
US7542854B2 (en) * 2004-07-22 2009-06-02 International Business Machines Corporation Method for discovering gene regulatory models and genetic networks using relational fuzzy models
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
US8719779B2 (en) 2004-12-28 2014-05-06 Sap Ag Data object association based on graph theory techniques
EP1866808A2 (en) 2005-03-19 2007-12-19 ActivePrime, Inc. Systems and methods for manipulation of inexact semi-structured data
JP2006268545A (ja) * 2005-03-24 2006-10-05 Mitsubishi Electric Corp ファイル結合装置及びファイル結合方法及びプログラム
EP1708099A1 (en) * 2005-03-29 2006-10-04 BRITISH TELECOMMUNICATIONS public limited company Schema matching
US9208229B2 (en) 2005-03-31 2015-12-08 Google Inc. Anchor text summarization for corroboration
US9110985B2 (en) 2005-05-10 2015-08-18 Neetseer, Inc. Generating a conceptual association graph from large-scale loosely-grouped content
US7584205B2 (en) * 2005-06-27 2009-09-01 Ab Initio Technology Llc Aggregating data with complex operations
US7658880B2 (en) * 2005-07-29 2010-02-09 Advanced Cardiovascular Systems, Inc. Polymeric stent polishing method and apparatus
US7672833B2 (en) 2005-09-22 2010-03-02 Fair Isaac Corporation Method and apparatus for automatic entity disambiguation
JP2007206787A (ja) * 2006-01-31 2007-08-16 Hitachi Information Systems Ltd 重複可能性者の検出表示システム、同検出表示方法及び同検出プログラム
US7890533B2 (en) 2006-05-17 2011-02-15 Noblis, Inc. Method and system for information extraction and modeling
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
EP2122506A4 (en) 2007-01-10 2011-11-30 Sysomos Inc METHOD AND SYSTEM FOR INFORMATION DISCOVERY AND TEXT ANALYSIS
US7865505B2 (en) * 2007-01-30 2011-01-04 Microsoft Corporation Efficient exact set similarity joins
US7870151B2 (en) 2007-02-07 2011-01-11 Fair Issac Corporation Fast accurate fuzzy matching
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
JP4203967B1 (ja) 2007-05-28 2009-01-07 パナソニック株式会社 情報探索支援方法および情報探索支援装置
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
EP2198374A4 (en) * 2007-09-28 2013-07-17 Ibm METHOD AND SYSTEM FOR ASSOCIATING DATA SETS IN SEVERAL LANGUAGES
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
US20110213974A1 (en) 2008-09-10 2011-09-01 National Ict Australia Limited Identifying relationships between users of a communications domain
US8150169B2 (en) 2008-09-16 2012-04-03 Viewdle Inc. System and method for object clustering and identification in video
US8484215B2 (en) 2008-10-23 2013-07-09 Ab Initio Technology Llc 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
WO2010125781A1 (ja) 2009-04-27 2010-11-04 パナソニック株式会社 データ処理装置、データ処理方法、プログラム、及び集積回路
US8195626B1 (en) 2009-06-18 2012-06-05 Amazon Technologies, Inc. Compressing token-based files for transfer and reconstruction
US20100333116A1 (en) 2009-06-30 2010-12-30 Anand Prahlad Cloud gateway system for managing data storage to 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
US9542647B1 (en) 2009-12-16 2017-01-10 Board Of Regents, The University Of Texas System Method and system for an ontology, including a representation of unified medical language system (UMLS) using simple knowledge organization system (SKOS)
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
CN104054073B (zh) 2011-11-15 2018-10-30 起元科技有限公司 数据分群、分段、以及并行化

Also Published As

Publication number Publication date
US8484215B2 (en) 2013-07-09
US20170161326A1 (en) 2017-06-08
KR20160036102A (ko) 2016-04-01
EP2342684A4 (en) 2017-09-20
CA3024642A1 (en) 2010-04-29
AU2009308206A1 (en) 2010-04-29
WO2010048538A4 (en) 2010-07-01
US11615093B2 (en) 2023-03-28
US9607103B2 (en) 2017-03-28
US20100106724A1 (en) 2010-04-29
CN107273977A (zh) 2017-10-20
CN102197406B (zh) 2014-10-15
CA3024642C (en) 2020-12-22
JP2015165435A (ja) 2015-09-17
JP5535230B2 (ja) 2014-07-02
CA2738961A1 (en) 2010-04-29
JP6301516B2 (ja) 2018-03-28
AU2009308206B2 (en) 2015-08-06
JP2014135063A (ja) 2014-07-24
JP2017107588A (ja) 2017-06-15
KR20150015029A (ko) 2015-02-09
JP5824084B2 (ja) 2015-11-25
CN103810527B (zh) 2017-08-08
EP2342684A1 (en) 2011-07-13
KR20110090939A (ko) 2011-08-10
CA3014839C (en) 2019-01-08
CN102197406A (zh) 2011-09-21
CN103810527A (zh) 2014-05-21
WO2010048538A1 (en) 2010-04-29
JP6092948B2 (ja) 2017-03-08
CA3014839A1 (en) 2010-04-29
JP2012507085A (ja) 2012-03-22
KR101789608B1 (ko) 2017-10-25
KR101514756B1 (ko) 2015-04-23
US20130138688A1 (en) 2013-05-30

Similar Documents

Publication Publication Date Title
KR101607178B1 (ko) 데이터 조작 수행, 데이터 품질 측정, 또는 데이터 요소 결합을 위한 방법, 시스템, 및 컴퓨터 프로그램을 저장하는 컴퓨터 판독 가능한 매체
RU2487394C2 (ru) Способы и системы для реализации приближенного сравнения строк в базе данных
US20170116307A1 (en) Automated Refinement and Validation of Data Warehouse Star Schemas
US7398227B2 (en) Methods, systems, and computer for managing purchasing data
US10360239B2 (en) Automated definition of data warehouse star schemas
AU2017201787B2 (en) Fuzzy data operations
del Pilar Angeles et al. A data quality practical approach
Assaf et al. RUBIX: a framework for improving data integration with linked data
Miyawaki et al. Measuring function points from VDM-SL specifications
Borek et al. DATA QUALITY ASSESSMENT METHODS
Flesca et al. Repairing and querying databases under aggregate constraints
WO2008063596A9 (en) Method and system for defining data analysis queries
CN101576925A (zh) 寻址方法和装置

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190313

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200312

Year of fee payment: 5