KR101564385B1 - 근사 문자열 매칭을 위한 아카이브를 관리하는 방법 및 시스템 - Google Patents

근사 문자열 매칭을 위한 아카이브를 관리하는 방법 및 시스템 Download PDF

Info

Publication number
KR101564385B1
KR101564385B1 KR1020107017207A KR20107017207A KR101564385B1 KR 101564385 B1 KR101564385 B1 KR 101564385B1 KR 1020107017207 A KR1020107017207 A KR 1020107017207A KR 20107017207 A KR20107017207 A KR 20107017207A KR 101564385 B1 KR101564385 B1 KR 101564385B1
Authority
KR
South Korea
Prior art keywords
word
words
series
record
archive
Prior art date
Application number
KR1020107017207A
Other languages
English (en)
Other versions
KR20100116595A (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 KR20100116595A publication Critical patent/KR20100116595A/ko
Application granted granted Critical
Publication of KR101564385B1 publication Critical patent/KR101564385B1/ko

Links

Images

Classifications

    • 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
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/113Details of archiving
    • 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/2457Query processing with adaptation to user needs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3338Query expansion

Landscapes

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

Abstract

하나의 관점으로서, 레코드에 출현하는 문자열과 연관된 근사 매칭을 판정하기 위한 아카이브를 관리하는 방법을 제공한다. 본 방법은, 레코드에 출현하는 문자열에 대응하는 일련의 문자열 표현을 판정하기 위해 상기 레코드를 처리하는 단계와, 일련의 문자열 표현 중의 적어도 일부의 각각에 대해, 문자열 내의 동일한 문자 중의 적어도 일부로부터 각각 생성된 복수 개의 인접 표현을 생성하는 단계와, 각각의 인접 표현에 기초해서, 적어도 2개의 문자열 사이에서 잠재적인 근사 매칭을 각각 나타내는 엔트리를 아카이브 내에 저장하는 단계를 포함한다.

Description

근사 문자열 매칭을 위한 아카이브를 관리하는 방법 및 시스템{MANAGING AN ARCHIVE FOR APPROXIMATE STRING MATCHING}
본 발명은 근사 문자열 매칭을 위한 아카이브를 관리하는 기술에 관한 것이다.
문자열 매트릭(string metric)["유사도 함수"(similarity function)라고도 함]에 따라, 일부 허용범위 내에서 소정의 패턴 문자열(pattern string)에 매칭되는 문자열을 찾기 위해, 근사 문자열 매칭["퍼지"(fuzzy) 또는 "정확하지 않은"(inexact) 문자열 매칭 또는 검색이라고도 함]을 위한 다양한 기술이 사용되고 있다. 검색되는 문자열은 "텍스트"(text)라고 부르는 큰 문자열의 부분 문자열(substring)이 되거나, 예를 들어 데이터베이스의 레코드 내에 포함되는 문자열이 될 수 있다. 문자열 메트릭의 한가지 범주는 "편집 거리"(edit distance)이다. 편집 거리의 예로서, 하나의 문자열을 다른 문자열로 변환하는 데에 필요한 최소 횟수의 편집 동작(문자의 삽입, 삭제, 또는 치환)을 계수하는 레벤스타인 거리(Levenshtein distance)가 있다. 근사 문자열 매칭에는, 매칭을 시작하기 전에는 검색할 텍스트가 처리되지 않도록 되어 있는(즉, "색인화"되어 있는) 온라인 매칭과, 문자열이 매칭을 시작하기 전에 처리될 수 있는 오프라인 매칭이 있다.
하나의 관점으로서, 일반적으로, 레코드(record) 내에서 생기는 문자열(strings)과 관련된 근사 매칭(approximate matches)을 판정하기 위한 아카이브(archive)를 관리하는 방법을 개시한다. 본 방법은, 레코드에 출현하는 문자열에 대응하는 일련의 문자열 표현(string representation)을 판정하기 위해 레코드를 처리하는 단계; 일련의 문자열 표현 중의 적어도 일부의 각각에 대해, 문자열 내의 동일한 문자(character) 중의 적어도 일부로부터 각각 생성된 복수 개의 인접 표현(close representation)을 생성하는 단계; 및 각각의 인접 표현에 기초해서, 적어도 2개의 문자열 사이에서 잠재적인 근사 매칭을 각각 나타내는 엔트리를 아카이브 내에 저장하는 단계를 포함한다.
특징적인 관점은 다음의 특성들 중 하나 이상을 포함할 수 있다.
각각의 문자열 표현은 문자열을 포함한다.
각각의 인접 표현은 문자열 내의 동일 문자 중의 적어도 일부를 포함하여 이루어진다.
일련의 문자열 표현 내에서 소정의 문자열에 대한 복수 개의 인접 문자열(close string)을 생성하는 단계는, 소정의 문자열로부터 삭제된 상이한 문자를 각각 갖는 인접 문자열을 생성하는 단계를 포함한다.
일련의 문자열 표현 내에서 소정의 문자열에 대한 복수 개의 인접 문자열을 생성하는 단계는, 소정의 문자열로부터 삭제된 단일 문자를 각각 갖는 인접 문자열을 생성하는 단계를 포함한다.
일련의 문자열 표현 내에서 소정의 문자열에 대한 복수 개의 인접 문자열을 생성하는 단계는, 소정의 문자열로부터 삭제된 다수의 문자를 적어도 일부분이 갖는 인접 문자열을 생성하는 단계를 포함한다.
소정의 문자열로부터 삭제된 상이한 문자를 각각 갖는 인접 문자열을 생성하는 단계는, 소정의 문자열이 미리 정해진 길이보다 짧은 경우에, 소정의 문자열로부터 삭제된 단일의 문자를 각각 갖는 인접 문자열을 생성하는 단계와, 소정의 문자열이 미리 정해진 길이보다 짧은 경우에, 소정의 문자열로부터 삭제된 다수의 문자를 적어도 일부가 갖는 인접 문자열을 생성하는 단계를 포함한다.
본 발명의 방법은 일련의 문자열 표현 중의 적어도 일부의 각각에 대하여, 레코드 내의 대응하는 문자열의 출현(occurrence) 빈도를 판정하는 단계를 더 포함한다.
본 방법은 일련의 문자열 표현 중의 적어도 일부의 각각에 대하여, 문자열의 출현 빈도와, 문자열에 대한 잠재적인 근사 매칭(potential approximate match)으로서 아카이브에 표현되는 적어도 몇몇 문자열의 출현 빈도를 포함하는 합계에 기초해서 대응하는 문자열의 중요도(significance)를 나타내는 중요도 값을 생성하는 단계를 더 포함한다.
중요도 값은 합계의 반전(inverse)에 기초해서 생성된다.
본 방법은, 다수의 문자열을 포함하는 상이한 구(phrase)가 근사 매칭에 대응하는지 여부를, 구 내의 문자열이 근사 매칭에 대응하는 지를 판정함으로써 판정하는 단계를 더 포함하며, 구 내의 문자열은 이들의 대응하는 중요도 값에 기초해서 선택된다.
구 내의 문자열의 중요도 값은, 합계에 기초하고, 문자열의 길이, 구에서의 문자열의 위치, 문자열이 출현하는 레코드의 필드, 및 필드가 출현하는 레코드의 소스 중 적어도 하나에 기초한다.
본 방법은 아카이브 내의 엔트리 중의 적어도 몇몇의 각각에 대하여, 적어도 2개의 문자열 사이의 잠재적인 근사 매칭의 품질을 정량화하는 엔트리(entry)와 연관된 스코어(score)를 생성하는 단계를 더 포함한다.
본 방법은 엔트리와 연관된 문자열이 근사 매칭에 대응하는지 여부를, 상기 엔트리와 연관된 스코어를 임계값과 비교해서 판정하는 단계를 더 포함한다.
스코어는 적어도 2개의 문자열 사이의 잠재적인 근사 매칭을 판정하기 위해 사용된 각각의 근사 표현(close representation)들 사이의 관련성(correspondence)에 기초한다.
레코드에 출현하는 문자열에 대응하는 일련의 문자열 표현을 판정하기 위해 상기 레코드를 처리하는 단계는, 적어도 하나의 레코드에서 출현하는 문자열을 수정(modify)해서, 수정된 문자열을 생성함으로써, 일련의 문자열 표현에 포함되도록 하는 문자열 수정 단계를 포함한다.
문자열 수정 단계는 구두점(punctuation)을 제거 또는 치환하는 단계를 포함한다.
문자열 수정 단계는 문자열을 상이한 표현으로 부호화하는 단계를 포함한다.
문자열 수정 단계는 상기 문자열을 수치적 표현으로 부호화하는 단계를 포함한다.
문자열을 수치적 표현으로 부호화하는 단계는, 문자열 내의 각각의 문자를 프라임 넘버(prime number)로 매핑(map)하고, 문자열을 문자열 내의 문자에 매핑된 프라임 넘버의 곱(product)으로 표현하는 단계를 포함한다.
아카이브는 사용자로부터의 입력에 기초해서, 적어도 2개의 문자열 사이에서의 잠재적인 근사 매칭을 표현하는 적어도 일부의 엔트리를 포함한다.
다른 관점으로서, 일반적으로, 컴퓨터로 판독가능한 매체에 저장되며, 레코드(record)에 출현하는 문자열(string)과 연관된 근사 매칭(approximate match)을 판정하는 아카이브(archive)를 관리하는 컴퓨터 프로그램을 제공한다. 컴퓨터 프로그램은 컴퓨터로 하여금, 레코드에 출현하는 문자열에 대응하는 일련의 문자열 표현(string representation)을 판정하기 위해 상기 레코드를 처리하는 단계; 일련의 문자열 표현 중의 적어도 일부의 각각에 대해, 문자열 내의 동일한 문자(character) 중의 적어도 일부로부터 각각 생성된 복수 개의 인접 표현(close representation)을 생성하는 단계; 및 각각의 인접 표현에 기초해서, 적어도 2개의 문자열 사이에서 잠재적인 근사 매칭을 각각 나타내는 엔트리를 아카이브 내에 저장하는 단계를 수행하도록 하는 명령어를 포함한다.
다른 관점으로서, 일반적으로, 레코드(record)에 출현하는 문자열(string)과 연관된 근사 매칭(approximate match)을 판정하기 위한 아카이브(archive)를 관리하는 시스템을 제공한다. 시스템은, 레코드에 출현하는 문자열에 대응하는 일련의 문자열 표현(string representation)을 판정하기 위해 상기 레코드를 처리하는 수단; 일련의 문자열 표현 중의 적어도 일부의 각각에 대해, 문자열 내의 동일한 문자(character) 중의 적어도 일부로부터 각각 생성된 복수 개의 인접 표현(close representation)을 생성하는 수단; 및 각각의 인접 표현에 기초해서, 적어도 2개의 문자열 사이에서 잠재적인 근사 매칭을 각각 나타내는 엔트리를 아카이브 내에 저장하는 수단을 포함한다.
또 다른 관점으로서, 일반적으로, 레코드(record)에 출현하는 문자열(string)과 연관된 근사 매칭(approximate match)을 판정하기 위한 아카이브(archive)를 관리하는 시스템을 제공한다. 시스템은, 레코드를 저장하기 위한 데이터 소스(data source); 레코드에 출현하는 문자열에 대응하는 일련의 문자열 표현(string representation)을 판정하기 위해 상기 레코드를 처리하고, 상기 일련의 문자열 표현 중의 적어도 일부의 각각에 대해, 문자열 내의 동일한 문자(character) 중의 적어도 일부로부터 각각 생성된 복수 개의 인접 표현(close representation)을 생성하도록 구성된 컴퓨터 시스템; 및 각각의 인접 표현에 기초해서 적어도 2개의 문자열 사이의 잠재적인 근사 매칭을 각각 표현하는 엔트리를 포함하는 아카이브를 기억하도록 컴퓨터 시스템에 연결된 데이터 기억 장치를 포함한다.
이러한 관점들은 다음의 장점을 하나 이상 포함할 수 있다.
통상적인 데이터베이스 애플리케이션에서, 상이한 레코드의 소정의 필드는 이들의 콘텐츠가 일치할 때에 매칭한다. 결합 및 롤업과 같은 동작은 통상적으로 특정 필드에서 출현하는 매칭용 키에 기초해서 레코드를 세트로 그룹화한다. 일부 애플리케이션에서는, 키를 비교하기 위해 근사 문자열 매칭을 사용해서 결합 또는 롤업을 수행할 수 있도록 할 수 있다. 2개의 레코드는, 이들의 대응하는 키 필드가 미리 정해진 기준하에서 충분히 인접한 경우를 근사 매칭이라고 할 수 있다. 예를 들어, 하나 이상의 데이터 소스를 사용해서 연산을 수행하는 경우에, 단어나 구로 이루어진 키에 대하여, 각 소스에서의 단어의 정확한 철자는 일치하지 않을 수 있거나, 하나의 구가 다른 구에는 존재하지 않는 단어를 포함할 수도 있다.
하나 이상의 데이터 소스의 레코드 내에 출현하는 인접 문자열 쌍을 기억하기 위해 아카이브가 유지된다. 이들 쌍과 아카이브에 의해 제공되는 스코어 등의 관련 정보는, 근사 문자열 매칭을 사용하는 결합, 롤업, 및 다른 동작의 효율을 증가시킨다. 일부 구현 예에서, 아카이브는 데이터 소스로부터 데이터에 대한 동작을 수행하는 연산 그래프의 컴포넌트로부터 액세스가 가능하다. 이에 대해서는 나중에 더 상세하게 설명한다.
본 발명의 다른 특징과 장점에 대해서는 이하의 상세한 설명과 청구범위로부터 명백해질 것이다.
도 1은 그래프에 기반을 둔 연산을 실행하기 위한 시스템의 블록도이다.
도 2는 연산 그래프를 나타내는 도면이다.
도 3은 전처리 방법의 플로차트이다.
1 시스템 개요
데이터세트(dataset)를 저장하는 여러 가지 형태의 데이터베이스 시스템을 포함하는 다양한 유형의 시스템에, 근사 문자열 매칭[또는 "퍼지 매칭"(fuzzy matching)] 기술이 적용될 수 있다. 본 명세서에서 사용되는 바와 같이, 데이터세트는 데이터의 레코드로서 구성될 수 있는 부분이 각 필드에 대한 값[소위, "속성"(attribute) 또는 "컬럼"(column)]을 가질 수 있는 데이터 집단이다. 데이터베이스 시스템 및 기억된 데이터세트는 다양한 형태를 가질 수 있으며, 정교한 데이터베이스 관리 시스템이나 간단한 플랫 파일을 기억하는 파일 시스템이 가능하다. 여러 데이터베이스 시스템의 한가지 특징은, 데이터세트 내의 레코드에 사용되는 레코드 구조(record structure)의 타입이다(각 레코드 내의 필드로서 사용되는 필드 구조를 포함할 수 있다). 일부 시스템에서, 데이터세트의 레코드 구조는 각각의 텍스트 문서를 레코드로서 간단히 정의할 수 있으며 문서의 콘텐츠가 하나 이상의 필드의 값을 나타낸다. 일부 시스템에서, 단일의 데이터세트 내의 모든 레코드가 동일한 구조(예를 들어, 필드 구조)를 가질 필요는 없다.
복잡한 연산은 방향성 그래프(directed graph)를 사용하는 데이터 흐름(data flow)으로서 표현될 수 있다. 이러한 데이터 흐름에서는, 연산의 컴포넌트가 그래프의 정점(vertex)과 연관되어 있으며, 데이터는 그래프의 링크(아크, 에지)에 대응하는 컴포넌트들 사이에서 이동한다. 이러한 그래프 기반의 연산을 수행하는 시스템은, "EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS"라는 명칭의 미국특허 5,966,072에 개시되어 있으며, 상기 특허문헌을 본 명세서에 참조에 의해 원용하는 것으로 한다. 그래프 기반의 연산을 실행하기 위한 한가지 방법은, 그래프의 다양한 정점과 각각 연관된 다수의 프로세스를 실행하고, 그래프의 링크에 따라 프로세스들 사이에 통신 경로를 확립하는 것이다. 예를 들어, 통신 경로는 TCP/IP 또는 UNIX 도메인 소켓을 사용하거나, 프로세스 사이에서 데이터를 통과시키기 위해 공유 메모리를 사용할 수 있다.
도 1을 보면, 그래프 기반의 연산(graph-based computation)을 실행하기 위한 시스템(100)은, 데이터 기억장치(102)에 연결된 개발 환경(development environment: 104)과 데이터 기억장치(102)에 연결된 런타임 환경(runtime environment: 108)을 포함한다. 개발자(developer: 101)는 개발 환경(104)을 사용해서 애플리케이션을 구축한다. 애플리케이션은 데이터 기억장치(102) 내의 데이터 구조에 의해 특정된 하나 이상의 연산 그래프와 연관되어 있으며, 개발자가 개발 환경(104)을 사용한 결과로서 데이터 기억장치에 기록될 수 있다. 연산 그래프(105)의 데이터 구조(103)는, 예를 들어 연산 그래프의 정점(컴포넌트 또는 데이터세트) 및 정점들 사이의 링크(작업 요소의 흐름을 나타냄)를 특정한다. 데이터 구조는 연산 그래프(또는 "데이터 플로우 그래프"라고도 함)의 컴포넌트, 데이터세트, 및 흐름의 다양한 특징을 포함할 수 있다.
런타임 환경(108)은 유닉스(UNIX) 운영체제와 같은 적절한 운영체제의 제어하에서 하나 이상의 범용 컴퓨터상에서 관리를 받을 수 있다. 예를 들어, 런타임 환경(108)은 다수의 중앙처리장치(CPU), 국부적(예를 들어, SMP 컴퓨터로서 결합된 다중의 프로세서)이나 국부적으로 분산된(예를 들어, 클러스터 또는 MPP로서 결합된 다중의 프로세서), 또는 원격적이나 원격적으로 분산된(예를 들어, LAN 또는 WAN 네트워크를 통해 결합된 다중의 프로세서), 또는 이들의 임의의 조합의 구성을 사용하는 컴퓨터 시스템의 구성을 포함하는 다중노드 병렬 연산 환경(multiple-node parallel computing environment)을 포함할 수 있다.
런타임 환경(108)은 데이터 기억장치(102) 및/또는 사용자(107)로부터의 제어 입력을 수신해서, 연산을 실행 및 설정한다. 제어 입력에는 기억된 그래프 데이터 구조에서 특정된, 대응하는 연산 그래프를 사용해서 특정의 데이터세트를 처리하기 위한 명령어가 포함된다. 사용자(107)는, 예를 들어 명령어 라인 또는 그래픽 인터페이스를 사용해서, 런타임 환경(108)과 상호대화를 할 수 있다.
런타임 환경(108)은 사전실행 모듈(pre-execution module: 110)과 실행 모듈(112)을 포함한다. 사전실행 모듈(110)은 임의의 전처리(pre-processing) 방법을 수행하며, 근사 문자열 매칭에 사용되는 사전(dictionary: 111)과 아카이브(archive: 114)와 같은, 연산 그래프를 실행하기 위한 리소스를 제공 및 유지한다. 사전(111)은 데이터세트에 출현하는 단어(word) 및 단어 관련 정보를 기억한다. 아카이브(114)는 데이터세트의 단어, 구 또는 레코드에 기초한 전처리로부터의 다양한 결과를 기억한다. 사전(111)과 아카이브(114)는 다양한 포멧으로 구현될 수 있으며, 단일의 데이터 집합이나 다수의 사전 및 아카이브로서 구성될 수 있다. 실행 모듈(112)은 컴포넌트(component)의 연산을 수행하기 위한 연산 그래프에 할당된 프로세스의 실행을 스케줄링 및 제어한다. 실행 모듈(112)은 데이터베이스 시스템으로부터 레코드를 제공하는 데이터 소스(116)와 같은, 그래프 컴포넌트와 연관된 처리를 행하는 동안 엑세스되는 시스템(100)에 결합된 외부 연산 리소스와 상호대화를 할 수 있다.
도 2를 참조하면, 연산 그래프(105)의 단순한 예가, 롤업(rollup) 동작을 수행하는 롤업 컴포넌트(200), 제1 입력 데이터세트(202), 제2 입력 데이터세트(204), 및 출력 데이터세트(206)를 포함한다. 입력 데이터세트는 작업 요소(예를 들어, 데이터베이스 레코드)의 흐름을 롤업 컴포넌트(200)에 제공하고, 출력 데이터세트(206)는 롤업 컴포넌트(200)에 의해 생성된 작업 요소[예를 들어, 집단 데이터베이스 레코드(aggregated database records)]의 흐름을 수신한다. 입력 데이터세트(202, 204)와 출력 데이터세트(206)는 데이터 소스(116)와 같은 런타임 환경(108)에 액세스 가능한 기억 매체 내에 기억된 데이터(예를 들어, 데이터베이스 파일)를 나타낸다. 롤업 컴포넌트(200)는 입력 데이터세트로부터 수신된 레코드의 중요한 필드 값을 비교하고, 중요한 필드 값들 사이의 근사 매칭(approximate match)에 기초해서 집단 레코드를 생성한다.
도 3은 연산 그래프에 의해 사용되는 사전(111)과 아카이브(114)를 제공하기 위해, 사전실행 모듈(110)에 의해 수행되는 전처리 방법(300)을 나타낸다. 이 방법(300)은, 어떤 소스가 처리될 것인지와 이들 소스의 어떤 필드로부터 단어가 판독될 것인지를 나타내는 설정 정보(configuration information)를 사용자로부터 수신한다(단계 302). 어떤 필드가 판독될 것인지를 나타내는 것은, 예를 들어 모든 필드를 판독하기 위해 디폴트 설정에 따라 암시적으로 할 수 있다. 이 방법(300)은 선택된 소스의 레코드의 선택된 필드를 판독하고, 사전 내의 필드에 있는 단어를 저장하며, 단어 빈도 카운트(word frequency count)와 같은 통계값을 갱신함으로써, 사전을 컴파일(compile)한다(단계 304). 본 방법(300)은 아카이브(114)에 저장될 잠재적인 퍼지 매칭(potential fuzzy match)을 컴파일하는 단계(306)로서, 사전 내의 단어에 대한 인접 단어(close word)를 생성하고(단계 308), 각 인접 단어들의 비교에 따라 잠재적인 퍼지 매칭을 찾아내는(단계 310) 단계를 포함한다. 잠재적인 퍼지 매칭에 해당하는 단어 쌍과 함께, 잠재적인 퍼지 매칭이 실제의 퍼지 매칭인지 여부를 판정하기 위해 그래프 실행 동안 사용될 수 있는 스코어(score)가 저장된다. 본 방법(300)은 사전(111)을, 아카이브(114)에 저장된 결과에 기초해서, 사전(111)에 출현하는 단어에 대한 중요도 스코어(significance scores)를 연산함으로써 갱신하는(단계 312) 단계를 포함한다. 예를 들어, 사전(111) 내의 각각의 단어에 대하여, 본 방법(300)은 잠재적인 퍼지 매칭에 기초해서 단어 빈도 카운트를 재규격화(renormalize)하며(단계 314), 이에 대해서는 나중에 더 상세하게 설명한다. 이러한 재규격화된 단어 빈도 카운트는 소스의 구와 레코드를 매칭할 때에 사용될 수 있는 중요도 스코어를 연산(단계 316)하는 데에 사용될 수 있다.
일부 구현예에서, 전처리 방법(300)은 새로운 소스를 사용할 수 있을 때 또는 새로운 코드가 기존의 소스에 수신될 때마다 반복된다. 본 방법은 사용자에 의해 호출되거나, 또는 반복적인 주기마다 또는 소정의 이벤트에 응답해서 자동으로 호출될 수 있다.
2 퍼지 매칭( fuzzy matching )
많은 사람이 직면하는 과제는, 정확하게 동일하지 않을 수도 있는 등가(equivalent value)를 갖는 "이름"이나 "주소"와 같은 필드(field)를 사용해서 2개(또는 그 이상)의 데이터세트를 조정(reconcile)하는 것이다. 데이터세트를 조정하는 것은, 다음과 같은 데이터에 관한 많은 질문에 답변하는 것을 포함할 수 있다. 어느 데이터세트에서의 회사 이름이 다른 데이터세트에도 존재하는가? 그렇다면, 이들은 동일한 주소를 갖는가? 2개의 데이터세트로부터의 회사 이름이 정확히 일치한다면, 대응하는 주소 필드를, 매칭 키(여기서는, 회사 이름)를 갖는 모든 레코드를 찾는 결합(join) 연산을 사용해서 비교할 수 있다. 만일 이름이 정확하게 일치하지 않으면 어떻게 하는가? 어떤 이름은 COMPANY란 단어로 끝날 수 있으며, 다른 것은 줄여서 CO로 될 수 있으며, 또 다른 것은 이들이 합쳐진 것일 수 있다. OF 또는 THE와 같은 관사가 하나의 이름에는 있을 수 있고 다른 이름에 없을 수도 있다. 단어가 철자가 잘못됐을 수도 있다(예를 들어, COMPANY를 COMPNY로 한 경우). 하나의 소스에서의 이름은 연락처의 개인 이름이나 계좌 번호와 같은 추가의 정보를 포함할 수 있다.
상이한 기원의 데이터세트 중에서는 말할 것도 없고, 단일의 데이터세트 내에서조차, 상호(business name)와 같은 것에 대한 확정적인 포맷 규칙은 없다. 이름이 일치하지 않는 경우에서도, 매칭, 일반적으로 일련의 가능한 매칭을 찾는 것이 과제이다. 이러한 매칭은 근사 문자열 매칭, 즉 "퍼지" 매칭으로서 알려진 매칭을 이용하여 수행될 수 있다. 매칭은 오차 또는 불일치를 허용할 수 있기 때문에 불확실하다.
연산이 퍼지 매칭을 사용하는 경우, 2개의 단어 또는 구(phase)는, 이들이 등가인 것으로 판명되면, 다시 말해서 반드시 일치하지 않는다고 하더라도, 허용가능한 편차나 불일치의 범위 내이면, 매칭된다고 할 수 있다. 예를 들어, 단어의 정확한 철자가 일치하지 않거나 하나의 구가 다른 것에는 존재하지 않는 단어를 포함할 수 있다. 일치하는 양을 정량화하기 위해 스코어(score)가 사용될 수 있다. 레코드의 소정의 필드에서 매칭에 대응하는 키가 반드시 일치하지는 않지만 등가인 경우에, 퍼지 매칭에 의해, 비교, 결합, 롤업, 및 조사와 같은 익숙한 연산을 수행할 수 있다.
퍼지 매칭의 속도를 높이기 위해, 사전실행 모듈(110)은 연산 그래프에 의해 잠재적으로 액세스 가능한 것으로 식별되었던 데이터 소스로부터 데이터세트를 주기적으로 처리한다. 사전실행 모듈(110)은 데이터세트의 레코드 중의 선택된 필드 내에 있는 데이터를 판독한다. 사용자는 처리될 모든 이용가능한 필드 또는 이용가능한 필드의 선택된 서브세트를 선택할 수 있다. 어떤 경우, 필드 내의 데이터는 단일의 단어에 대응할 수 있으며, 어떤 경우에는 데이터가 다수의 단어를 포함하는 구에 대응할 수 있다[본 명세서에서, "단어"(word)는 문자 세트로부터의 일련의 문자를 포함하는 임의의 문자열이며, 구 내의 다수의 단어는 스페이스로 구분되거나 콤마와 같은 구획문자로 구분된다]. 필드를 단어로 분해(decompose)하기 위한 규칙은 설정가능하며, 필드를 처음 선택할 때에 특정할 수 있다. 어떤 경우에, 다수의 단어를 포함하는 구는 스페이스가 포함된 경우(예를 들어, 도시 이름이나 영국 우편번호)에도, 구를, 스페이스를 문자로 취급하는 "복수 단어"(multi-word)로 분해함으로써, 단일 단어와 유사한 방식으로 처리될 수 있다. 이에 의하면, 연결되거나 끊어진 단어를 퍼지 매칭에 의해 식별할 수 있다. 예를 들어, "john allen"은 "johnallen" 또는 "johnal len"하고도 매칭할 것이다.
사전실행 모듈(110)은 레코드 내의 일련의 단어를 식별하고 그 단어의 표현["단어 표현"(word representation) 또는 "문자열 표현"이라고도 함]을 사전(111)에 저장한다. 각 단어에 대한 통계(statistics)도 또한, 사전(111)에 저장될 수 있다. 예를 들어, 소정의 데이터세트 또는 모든 데이터세트의 레코드 내의 단어의 출현 빈도가 사전(111)에 저장될 수 있다. 단어의 문맥(context)에 관한 정보는 사전(111)에 저장될 수 있다. 예를 들어, 문맥은 단어가 발생하는 필드 또는 필드의 그룹을 포함할 수 있다. 구 내의 해당 위치에 대한 통계와 같은, 단어에 관련된 다른 정보도 또한 사전(111)에 저장될 수 있다. 단어의 표현은 단어 그 자체도 될 수 있고, 여러 문자 세트와 같은 상이한 형태 또는 비문자열(non-string) 표현(예를 들어, 숫자 또는 영숫자 부호)이 되는 단어의 부호화된 표현이 될 수 있다. 이에 대해서는 나중에 더 상세하게 설명한다.
사전실행 모듈(110)의 처리는, 소정의 단어에 대해, 일련의 "인접 단어"(close words)(또는 "인접 표현")를 생성하는 단계를 포함한다. 소정의 단어에 대한 인접 단어는 소정의 단어와 관련해서 사전(111)에 기억된다. 인접 단어는, 단어 쌍들 사이에서의 잠재적인 퍼지 매칭을 생성하는데에 사용된다. 이에 대해 나중에 더 상세하게 설명한다.
이러한 처리의 결과는, 실행 모듈(112)에 의해 실행되는 그래프에 사용하기 위해 아카이브(114)에 기억된다. 일부 그래프는 소정의 레코드가 처리(예를 들어, 결합 또는 롤업 컴포넌트에서)되어야 하는지 여부를 판정하는 처리 과정에서 아카이브(114)를 사용할 수 있다. 레코드의 유사성(similarity)을 측정하는 것은 많은 문맥에서 생기는 데이터 품질 액티비티(data quality activity)이다. 예를 들어, 2개의 소스는 레코드를 이들 소스로부터 가져오기 위해 결합 연산에 사용되는 공통의 키를 공유할 수 있다. 키(key)가 출현할 수 있는 레코드 내의 필드를 비교할 필요가 있다. 필드 내에는 다수의 단어가 존재할 수 있으며, 이름이나 주소와 같은 소정 종류의 데이터를 유지하기 위해 다수의 필드를 사용하는 경우도 있다. 필드 중의 단어의 배치는 소스 전체를 통해 일치하지 않을 수도 있으며, 여분의 단어가 하나의 소스 또는 다른 소스에 존재할 수 있고, 단어는 순서대로 되어 있지 않을 수도 있으며, 오탈자가 있을 수도 있다. 레코드 간의 매칭의 품질을 특징화하고, 다양한 종류의 불일치 및 오차에 대한 페널티(penalty)에 의해 가중화되는 기초 스코어를 계산하기 위해 다양한 스코어링 기능이 사용될 수 있다. 여러 종류의 오차와 연관된 웨이트(weight)는 조정이 가능하며, 임의의 비교를 위한 스코어에 대한 각각의 페널티의 기여를 보고할 가치가 있다. 스코어링 기능은 퍼지 매칭이 되는 단어를 어떻게 비교하는지와 스코어를 비교할 때에 단어를 가중화(통계적으로)하는지 여부에 따라 달라진다. 레코드에 대한 스코어는 몇 개의 개별적으로 스코어된 개별 또는 연속하는 필드에서의 가중화된 스코어링을 포함할 수 있다.
매칭 프로세스에서는 3가지 레벨의 스코어링이 있다, 즉 단어, 구 및 레코드이다. 단어의 스코어링은 통상적으로 전처리 단계에서 이루어지며, 2개의 단어가 잠재적인 퍼지 매칭인지 또는 미리 정해진 기준에 기초하지 않는지 여부를 판정하고, 잠재적인 퍼지 매칭을 "퍼지 매칭 스코어"(fuzzy match score)와 관련시킨다. 구의 스코어링은 퍼지 매칭된 단어뿐만 아니라 단어가 하나 또는 2개의 구로부터 누락될 가능성, 단어가 순서대로 되어 있지 않을 가능성 또는 이들 사이에 여분의 단어가 있는지를 고려할 수 있다. 스코어링 알고리즘은 여러 가지 불일치하는 소스의 중요도가 조정될 수 있도록 설정가능하다. 스코어링의 3번째 레벨은 전체 레코드이다. 이들은 문맥 의존적(context-sensitive) 방식으로 여러 필드의 스코어를 조합함으로써 스코어링된다. 누락 또는 불일치 정보에는 적절한 가중치가 주어질 수 있다.
아카이브(114)는 잠재적인 퍼지 매칭인 것으로 발견된 단어 쌍을, 대응하는 퍼지 매칭 스코어와 함께 기억한다. 일련의 잠재적인 퍼지 매칭과 이들의 퍼지 매칭 스코어는 사용자에 의해, 계산된 퍼지 매칭 스코어를 상이한 퍼지 매칭 스코어로 교체하고, 미리 정해진 기준에 의해 관련되지 않은 잠재적인 퍼지 매칭 단어 쌍을 추가하기 위해 수정될 수 있다.
아카이브(114)는 구의 비교를 위한 단어를 포함하는 구에, 단어의 상대적인 중요도를 나타내는 "중요도 스코어"(significance score)를 저장한다. 중요도 스코어는 데이터세트 내의 단어의 반전된 출현 빈도를 사용하고, 이 값을 퍼지 매칭(스코어 아카이브를 사용해서 판정됨)에 의해 관련된 편차의 빈도를 사용해서 조정하고, 단어의 길이, 구, 소스 및 문맥에서의 위치(예를 들어, 단어가 발생하는 필드)로부터 유도된 추가의 정보를 사용한다. 단어가 발생하는 문맥에 기초해서 중요도 스코어를 조정하는 것이 유용할 수 있는 이유는, 예를 들어 데이터가 정확한 필드에 배치되지 않아도 되며, 이러한 오차를 식별할 필요가 있기 때문이다. 어떤 경우에, 주소 필드와 같은 필드에서 출현하는 문자열은 구조화되지 않은 포맷(unstructured format)으로 수신될 수 있지만, 구조화되어도 된다. 이러한 문자열은 파싱(parse) 처리되어, 각각의 요소가 식별될 수 있다. 문맥에 의한 상대적인 중요도는 소정의 단어가 하나의 문맥 또는 다른 문맥에서 더 자주 나타날 것인지 여부를 나타내는 데에 사용될 수 있다. 예를 들어, 주소 필드에서, LONDON을 거리 이름이 아닌 도시 이름으로 사용할 수 있다. 문맥적 정보의 조합은 파싱 처리에 도움을 준다. 예를 들어, LONDON이 다른 도시 이름 다음에 온다면, 거리 이름일 가능성이 크다. LONDON이 우편번호의 바로 앞에 온다면, 도시 이름일 가능성이 크다.
일부 구현 예에서, 아카이브(114)는 2개의 구 사이의 퍼지 매칭 품질을 측정하는 "구 비교 스코어"(phrase comparison score)를 기억한다. 사전실행 모듈(110)은 공유되고 사용되지 않은 단어의 리스트를 발견하기 위해 구를 중첩시키고, 이들의 상대적인 중요도, 정렬 및 단어 순서를 사용해서, 구 비교 스코어를 계산한다.
아카이브(114)에 기억된 정보는, 이 정보를 생성한 이후에 다양한 방식으로 처리될 수 있다. 예를 들어, 스코어 아카이브 내에서, 가능한 양성 오류(probable false positive)가, 골드 기준 데이터(gold reference data)의 셀프 스코어링(self-scoring)의 결과를 사용해서 식별될 수 있으며, 초기 스코어링 동안 적용되는 엔그램(n-gram) 분석에 의해 배제될 수 있다. 다른 스코어가 포함될 수도 있다. 예를 들어, 다수의 필드로부터의 단어 또는 구가 독립적으로 스코어링될 수 있으며, 이들의 스코어가 완전한 레코드를 스코어링하기 위해 조합될 수 있다.
아카이브(114)는 퍼지 매칭을 사용하는 여러 가지 종류의 동작에 의해 액세스될 수 있다. 몇몇 동작에는, 정확한 매칭을 사용하는 "정상적인 버전"(normal version)과, 퍼지 매칭을 사용하는 "퍼지 버전"(fuzzy version)이 포함된다. 롤업(또는 집합) 동작의 퍼지 버전은 유사한 레코드를 그룹으로 관련시킨다. 이것은, 고유의 엔티티를 식별하는 다양한 형태의 키(key)가 로우 데이터(raw data)에 존재하는 레코드를 병합(consolidate)하는 데에 유용하다. 고유의 엔티티와 연관된 레코드의 그룹을 단순히 규정하는 것이 중요한 결과가 될 수 있다. 일단 그룹이 규정되었으면, 통상적인 집합 활동이 지원된다. 퍼지 매칭은 스코어된 등가 관계이기 때문에, 그룹에 대한 연관도 스코어될 것이다. 이것은, 익숙한 경우에 비해, 소정의 엔티티가 반드시 고유한 그룹의 멤버일 필요가 없다는 효과를 가진다. 그룹의 멤버에 대한 집합(예를 들어, 수치적 총합)은 정확할 것이지만, 그룹 멤버십의 불확정성(uncertainty)을 반영하는 오차 범위 내에서만 주지될 것이다. 모든 그룹에서의 집합(aggregation)은 전체적인 멤버십이 확실하기 때문에 정확할 것이다.
컴포넌트는 각 단어에서의 철자 오기 및 다른 오차를 식별하기 위해 스코어 아카이브를 사용할 수 있다. 식별된 오차는 사용자에 의해 (예를 들어, 아카이브로부터 생성된 리스트로부터)확인될 수 있으며, 데이터 보정 컴포넌트는 데이터 내의 오차를 보정할 수 있다. 퍼지 매칭에 기초한 이러한 오차 보정 능력은, 데이터 프로파일러(data profiler) 능력으로까지 확장될 수 있는데, 관련 내용이 "DATA PROFILING"이라는 명칭의 미국특허출원 10/941,402에 더 상세하게 개시되어 있으며, 상기 특허문헌의 내용을 본 명세서에서 참조에 의해 원용한다.
2.1 매칭 기준
매칭의 품질을 측정하기 위해 임의의 다양한 기준이 사용될 수 있다. 2개의 단어, MOORGATE와 MOOGRATE라는 예를 들어 보자. 한가지 기준은 거리 메트릭(distance metric)이다. 2개의 단어 사이의 거리를 측정하기 위한 많은 여러 가지 거리 메트릭이 존재한다. 가장 간단한 것 중 하나는, 대응하는 문자가 다른 위치의 수를 카운트하는 해밍(Hamming) 거리이다. 이 수는 배치에 따라 달라지기 때문에, 해밍 거리가 최소가 되는 배치가 사용된다. 이것은 다음의 예로서 나타낸 바와 같이, 하나의 단어를 다른 단어로 변환하는 데에 필요한 최소 수의 치환(substitution)에 대응한다.
M O O R G A T E
M O O G R A T E
* *
본 예에서, 대응하는 문자가 달라지는 위치가 2군데 있으며, 하나의 단어를 다른 것으로 변환하기 위한 2번의 치환을 필요로 한다.
배치는 해밍 거리를 계산하는 데에 중요하기 때문에, 배치를 "중단"시키는 삽입에 의해, 다음과 같이, 큰 거리를 만들 수 있다.
M O O R G A T E
M O O R G R A T E
* * * *
본 예에서, 최초의 단어에서의 한 번의 삽입은 4의 해밍 거리를 만들었다. 일부의 응용 예로서, 해밍 거리는 삽입의 중요성을 과장해서 표현한 것이다.
해밍 거리에 대한 대안으로서, "편집 거리"(edit distance)가 있다. 편집 거리는, 최대한으로 배치를 유지하면서, 하나의 단어를 다른 단어로 변환하는 데에 필요한 편집("편집"은 삽입, 삭제, 또는 치환 중 하나이다)의 최소 수의 카운트이다. 2개의 단어 MOORGATE와 MOOGRATE는 2라는 편집 거리를 가지는데, 하나의 단어를 다른 단어로 변환하기 위해 한 번의 삽입과 한 번의 삭제(또는 2번의 치환)를 필요로 하기 때문이다. 2개의 단어 MOORGATE와 MOOGRATE는 1의 편집 거리를 가지는데, 하나의 단어를 다른 단어로 변환하는 데에 한 번의 삽입이 필요하기 때문이다.
편집 거리를 계산하기 위한 알고리즘이 많이 있다. 삽입, 삭제, 및 치환[및 전치(transposition)도 가능]에 상이한 웨이트를 할당함으로써, 편집 거리 스코어가 상이한 종류의 오차의 중요도를 반영하도록 할 수 있다. 편집 거리의 문제는 일반적으로 해밍 거리보다 계산하는 것에 더 많은 비용이 드는 것이다.
"인접 단어 비교"(close word comparison)는 상기 설명한 편집 거리에 대한 대안으로서, 계산이 빠르다. 철자 및 필사(transcription) 오류의 빈도는 실제 데이터에서 상대적으로 낮기 때문에, 하나의 단어에서 하나 이상의 오류를 발견하는 일은 드물다. [물론, 하나의 음절을 음성적으로 유사한 다른 것으로 대체하는 것과 같이 더 계통적인 오류는 다수의 글자를 포함할 수 있지만, 비매칭 단어로서 취급될 수 있다] 2개의 소정의 단어 사이의 편집 거리를 계산하는 대신에, 사전실행 모듈(110)은 소정의 단어가 잠재적인 퍼지 매칭인지 여부를 판정하기 위해 인접 단어 비교를 구현하는 "삭제-결합"(deletion-join) 방법을 사용한다. 삭제-결합 방법은, 각 단어에 대한 "삭제 변형"(deletion variants)이라고 불리는 일련의 인접 단어를 취득하기 위해, 각 단어로부터 단일의 문자를 삭제함으로써 취득한 모든 변형 단어를 구성함으로써 본 과정을 시작한다. 삭제-결합 방법은, 다음으로, 삭제 변형의 2개의 세트를 비교해서, 삭제 변형이 매칭되는지 여부를 구한다. 매칭이 된다면, 최초의 단어가 잠재적인 퍼지 매칭인 것으로 지정된다. 삭제-결합 방법은 단일의 삭제, 단일의 삽입, 삽입에 이은 삭제(치환과 전치 모두를 포함)를 포함하는 등가적 변화의 제한된 세트에 의해 관련된 단어를 찾는 것으로 특징화될 수 있다. 삭제 변형의 생성과 삭제-결합 방법에 대해서는 나중에 더 상세하게 설명한다. 다른 형태의 인접 단어 비교도 가능하다. 예를 들어, 각 단어는 여러 가지 세트의 등가의 변화에 따라 "인접"한 일련의 인접 단어를 가질 수 있다.
삭제-결합 방법은 다수의 문자가 삭제된 삭제 변형을 사용하며, 양성 오류(false positive)의 수는 삭제된 문자의 수에 따라 증가되는 것이 일반적이다. 양성 오류는, 자연적으로 발생하는("실제의") 단어가 다른 자연적으로 발생하는 단어와 매칭될 때 생긴다. 예를 들어, CLARKE와 CLAIRE는 삽입에 이은 삭제에 의해 관련되어 있다. 실제로, 오류는 하나의 단어를 다른 단어로 전사할 수 있지만, 2개의 단어 모두 실제이기 때문에, 각각의 단어가 오류 없이 자연적으로 발생할 가능성이 있다. 어떤 단어가 자연적으로 발생하는지에 관한 정보 없이, 소정의 퍼지 매칭 알고리즘은 어떤 단어가 실제인지를 직접 구분할 수 없기 때문에(나중에 설명하는 바와 같이, 추론의 가능성이 조금 있다), 이 알고리즘으로는 양성 오류를 검출하기가 어려울 수 있다. 이 상황은 몇몇 변화가 오류일 수 있으면서 다른 것이 그렇지 않을 수 있기 때문에, 민감한 사항이다. 양성 오류를 처리하기 위한 한가지 방법은 각각의 단어에, 처음에는 단어가 데이터 내에 보이는 빈도와 같은 인자(단어 빈도 카운트의 역 또는 재규격화된 단어 빈도 카운트)에 기초하는 "중요도 스코어"라고 하는 추가의 값을 연결하는 것이다. 예를 들어, 자연적으로 발생하는 단어가 다른 것과 혼동하기 쉽다면, 2개의 단어의 중요도는 감소되며, 이들의 구분 능력의 확신이 약해지는 것을 반영한다.
양성 오류가 갖는 문제점은, 구분되어야 하는 레코드가 가능한 매칭으로서 보고될 수 있다는 것이다. 삭제 변형에서 단일의 삭제를 사용하는 한가지 장점은 단어의 길이가 증가하고(예를 들어, 5개 정도의 문자를 넘어), 양성 오류의 수가 레코드에 출현하는 통상적으로 적은 수의 긴 단어가 존재함으로 인해 급격하게 줄어들고, 삭제 변형을 생성하기 위해 사용된 삭제의 수는 단어의 길이에 의존하게 될 수 있다. 예를 들어, 5개를 넘지 않는 문자를 가진 단어의 경우, 하나의 문자가 삭제되며, 5개 이상의 문자를 가진 단어의 경우, 최대 2개의 문자가 삭제된다(예를 들어, 삭제 변형은 삭제된 단일의 문자를 가진 모든 단어와 삭제된 2개의 문자를 가진 모든 단어를 포함한다).
사전실행 모듈(110)은 다수의 평가의 전체적인 연산 시간을 감소시키며 특별 평가(ad hoc evaluation)의 속도를 증가시키는 특징을 갖는다. 레코드에 보이는 단어와 이들의 삭제 변형은 사전(111)에 저장되며, 삭제-결합 방법의 삭제 비교의 결과가 미리 계산되어 아카이브(114)에 저장되며, 아카이브에서는 추가의 평가를 필요로 하지 않는다. 이것은 이름/주소 데이터에 관한 간단한 관측(observation)에 대한 레버리지 효과를 갖는다. 즉, 자연적 언어에 기초한 데이터에서의 단어의 수는, 나중에 처리되는 레코드의 수에 비해 작다(예를 들어, << 1백만). 그것이 발생할 때마다 상대적으로 비용이 많이 드는 동일한 연산을 반복하는 것보다, 아카이브(114)는 재사용을 위해 결과(인접 쌍 및 연관된 퍼지 매칭 스코어)를 기억한다. 가능한 단어의 수는 비교적 작기 때문에, 관측된 수정만 기억하면 되어, 아카이브(114)의 크기를 줄일 수 있다.
아카이브(114)는 다른 장점도 갖는다. 구에 대한 스코어링 알고리즘은 아카이브(114)에서의 단어들의 퍼지 매칭 스코어가 미리 정해진 임계값보다 작은 경우에, 단어들 사이의 퍼지 매칭을 보고할 것이다(낮은 스코어는 높은 품질의 매칭을 나타내는 것으로 가정함). 사용자가 아카이브(114) 내의 단어 쌍의 퍼지 매칭 스코어를 수동으로 조작할 수 있기 때문에, 바람직하지 않은 매칭(예를 들어, 양성 오류)을 차단할 수 있다. 또한, 인접 단어 비교하에서는 매칭되지 않은 단어가, 적절한 퍼지 매칭 스코어를 가진 쌍을 추가함으로써 아카이브(114) 내에 매칭으로서 추가될 수 있다. 예를 들어, HSBC MIDLAND를 추가함으로써, "HSBC BANK"와 "MIDLAND BANK" 사이에 퍼지 매칭이 만들어진다. 이에 의하면, 사업적 의미에 기초한 동의어를 적용하기 위한 방법을 제공한다(여기서, MIDLAND는 HSBC의 이전 이름이다). 복수 단어 연상(multiword association)[예를 들어, INTERNATIONAL BUSINESS MACHINES를 IBM으로 나타내는 것]은 또한 퍼지 매칭을 나타내기 위해 엔트리를 수동으로 추가하고 퍼지 매칭 스코어를 설정함으로써 아카이브 내에 퍼지 매칭으로서 추가될 수 있다. 일례로서, 복수 단어 연상은 단일 단어들 사이의 연상으로부터 개별적으로 기억 및/또는 처리된다. 예를 들어, 몇몇 경우에, 복수 단어 연상은 표준화 동안에는 사용될 수 있지만 구 비교 스코어링(phrase comparison scoring) 동안에는 필요하지 않을 수 있다.
단어, 구, 및 레코드에 대한 매칭 과정은, 일반적으로 잠재적인 퍼지 매칭으로서 후보자(candidate)를 식별하는 단계와, 실제의 퍼지 매칭을 판정하기 위해 후보자 사이에서 매칭의 품질을 판단하는 단계를 포함한다.
레코드를 매칭하는 것은 대응하는 필드로부터 단어를 매칭하는 과정, 또는 몇몇 경우에 하나 또는 다수의 필드로부터 단어로 이루어진 구를 매칭하는 과정을 포함할 수 있다. 예를 들어, 이름이나 주소를 매칭할 때에 상이한 소스로부터 레코드 내에 존재하는 단어의 수는 반드시 일치될 필요는 없으며, 이러한 문맥에서 퍼지 매칭은 "구 매칭"(phrase matching)에 의해 수행될 수 있다. 사전실행 모듈(110)은 스페이스를 추가의 문자로서 취급하도록 선택할 수 있어서, 구는 간단히 더 긴 단어로 된다. 이러한 기술이 사용될 때에, 사전실행 모듈(110)은 문자로서 취급되는 스페이스를 가진 더 긴 단어 내의 영역이 변경될 수 있다는 사실을 고려해서 선택적인 단어를 취급하기 위한 추가의 처리를 수행할 수 있다.
2.2 표준화 및 파싱(standardization and parsing)
퍼지 매칭의 구현 예로서, 구는 비교에 앞서 표준화된다. 이에 의해, OF 또는 THE와 같은 공통의 단어를 제거하거나 공통의 약어를 완전한 철자의 단어로 대체, 즉 CO를 COMPANY로 대체하는 것에 의해, 예측가능한 방식에서의 가변성을 감소시킨다. 이러한 표준화는 매칭의 강도를 증가시키고 일부 방법에서의 매칭 프로세스의 성능을 향상시킬 수 있다. 표준화 동안 일부 정보가 손실될 수 있거나, 잘못된 식별이 이루어질 수 있다는 어려움이 있다. 즉, CORP가 마치 CORPORATION의 약자인 것처럼 보일 수 있으며, CORPS의 철자 누락이 될 수 있다.
표준화(standardization)는 일부 경우에 표준화가 사용되지 않거나 최소로 유지되도록 하고, 다른 메커니즘을 사용해서 공통 단어의 문제와 약어의 대체를 처리하는 데에 사용되도록 설정될 수 있다. 어떤 경우에, 모든 구는 대문자 또는 소문자로 표준화되는데(액센트와 같은 문자 수정은 유지한다), 격(case)이 상이한 소스 사이에서 일반적으로 일치하지 않으며, 대체로 거짓 구분(spurious distinction)이 된다. 그 목적은 원본 데이터의 완전성(integrity)을 보존하기 위한 것이며, 본 처리 과정 중의 나중의 단계에서, 약어 또는 동의어와 같이, 필드 내의 계통적 변동에 대한 어떠한 보상을 남겨두기 위함이다. 이것의 이유는 주소 필드 내의 ST와 같은 단어가 종종 STREET라는 의미를 가질 수 있지만, 항상 그러한 것은 아니며, 그래서 너무 빨리 변화하게 되는 문제점이 있을 수 있다.
구두점(punctuation) 문자는 소스 사이에서 종종 불일치하기 때문에 특별한 처리가 필요할 수 있다. 예를 들어, 많은 구두점 문자는 임의선택적이거나, 다른 방식으로 구조화되지 않은 필드 내에서의 포맷을 나타낸다. 구두점의 처리에 대해 3가지 유형이 있다. 즉, 공백(empty)으로 대체, 스페이스(space)로 대체, 및 줄바꿈(line break)이 있다. 다른 형태의 표준화에는, 소정의 미리 정해진 단어 또는 구를 다른 단어 또는 구로 대체하는 것, 예를 들어 단어를 동의어로 대체하는 과정을 포함할 수 있다. 사용자는 설정가능한 조사 파일(lookup file)에서의 규칙을 사용해서 구두점과 단어의 대체를 제어할 수 있다.
파싱(parsing)은 임의의 개수의 필드로부터 상이한 단어 또는 구의 일부에 의미를 할당한다. 예를 들어, 파싱은 몇몇 소스 내에서는 하나 또는 2개의 필드로 합쳐지고 다른 소스에서는 8개 또는 10개의 필드로 분할될 수 있는 주소를 처리할 때에 사용될 수 있다. 주지의 요소를 포함하는 것으로 예상되는 필드를 파싱하는 것은, 요소를 식별 및 인증하기 위한 보조 정보를 제공하는 기준 소스를 사용해서 행해질 수 있다. 예를 들어, 어드레스 필드를 파싱하는 것은 주소의 개별 요소를 식별하고 인증하기 위해 기준 소스로서 우편 주소 파일(PAF files)을 사용해서 처리될 수 있다.
2.3 단어 빈도 및 문맥
사전실행 모듈(110)은 레코드에 생기는 단어에 대한 소정의 소스의 레코드를 스캔하고, 일부의 경우 레코드의 선택된 필드에 대한 스캐닝을 제한한다. 소정의 소스의 레코드의 선택된 필드에서 출현하는 단어는 사전(111)에 기억된다. 일부의 경우, 사전 내의 각각의 엔트리는 단어, 단어의 빈도, 단어의 위치 통계, 및 단어의 문맥(context)을 기억한다. 빈도는 소스의 레코드에 생기는 단어의 출현 횟수의 카운트이다(예를 들어, 단어는 소정의 레코드에서 여러 번 나타날 수 있다). 빈도는 모든 필드에 대한 총합 카운트가 되거나 소정의 필드에서 단어가 몇 번 나타나는지를 나타내는 다수의 카운트가 될 수 있다. 빈도는 이하에 더 상세히 설명하는 바와 같이, 재규격화될 수도 있다. 단어가 소정의 필드의 구 내에 나타난다면, 구 내에서의 단어의 위치가 해당 구에 대해 계산된다. 사전(111)에서의 소정 단어에 대한 위치 통계는, 예를 들어 단어가 나타나는 모든 구에서의 이러한 위치의 평균 및 표준 편차를 포함한다.
"문맥"(context)이라 불리는 분류자(classifier)는 사전(111)에 저장되어, 필드의 논리적 그룹화를 지원한다. 사용자는 처리할 필드가 선택될 때의 문맥을 특정할 수 있다. 문맥을 사용함으로써, 공통 포맷에 대한 표준화를 필요로 하지 않으면서도, 소스를 유사하지 않은 레코드 구조와 비교하는 것이 가능하게 된다. 이에 의해, 특정 필드에서의 단어의 존재로부터 유추될 수 있는 소스 특정 정보가 공통 포맷에 대한 표준화를 통해 손실되지 않기 때문에, 소스 사이의 비교의 품질이 향상된다. 소정의 필드는 다수의 문맥에서 나타날 수 있으며, 비교의 입상(granularity)과 데이터의 애매한 배치를 위한 허용도에 대한 제어가 가능하다.
예를 들어, "주소" 문맥은 주소의 일부에 해당하는 단어를 포함하는 필드를 그룹화하는 데에 사용될 수 있다. 문맥과 관련된 필드 이름은 소스마다 상이할 수 있다. 예를 들어, 하나의 소스에서의 필드 address_line1, address_line2, address_line3은, 주소 문맥의 일부가 될 수 있으며, 다른 소스에서는 주소 문맥이 빌딩의 수(building_number), 거리, 도시, 및 우편번호를 포함할 수 있다. 상이한 필드에서 발생하는 소정 단어의 단어 빈도 카운트 및 중요도 스코어는 관련된 문맥에 대한 빈도를 나타내도록 합쳐질 수 있다.
사전(111)은 잠재적인 퍼지 매칭을 나타내는 아카이브(114) 내의 단어를 식별하고, 중요도 스코어에 의해 표현된 각 단어의 중요도를 식별하는 데에 사용된다. 사전(111)은 효과적으로 액세스 가능한 다양한 파일 포맷 중의 임의의 것을 사용해서 유지될 수 있다. 예를 들어, 사전(111)은 미국특허출원 11/555,458에 개시된 포맷과 같은, 색인된 압축(연계) 플랫 파일 포맷으로 저장될 수 있으며, 상기 특허문헌은 본 명세서에 참조에 의해 원용하는 것으로 한다. 사전(111)은 그 목적, 소스, 필드 부호화에 따라 또는 액세스의 속도를 높이기 위해, 단일의 파일 또는 다수의 파일로 유지될 수 있다.
단어에 관한 다른 정보도 사전(111)에 포함될 수 있다. 예를 들어, "중요성 위치"(importance position)는 필드 내의 단어가 중요도에 따라 내림차순으로 정렬된 경우에, 필드 내에서 갖는 단어의 위치이다. 이것은 중요한 단어를 조기에 구에 포함시킨다. 예를 들어, 원래의 순서에서의 구는 "Bank of America"가 될 수 있다. 중요도에 의해 정렬된 단어를 가진 구는 "America Bank of"가 될 수 있다. 원본 구에서의 단어 "Bank"의 위치는 (3개 중의)첫 번째이다. 단어 "Bank"의 중요도 위치는 (3개 중)2번째 이다.
2.4 퍼지 매칭 스코어
소스 내 및 소스 사이에서의 단어의 잠재적인 퍼지 매칭은 미리 계산되어, 매칭의 품질을 특징화하는 단어 쌍 사이의 잠재적인 매칭에 대한 퍼지 매칭 스코어와 함께 아카이브(114)에 기억된다. 소스 내의 개별 단어의 수는 일반적으로 소스 내의 모든 단어의 수보다 훨씬 작기 때문에, 이러한 사전 계산 단계는 단어의 잉여의 퍼지 비교를 제거함으로써 차후의 비교와 필드의 스코어링 과정의 속도를 높인다. 초기에는 잠재적인 퍼지 매칭을 구성하는(인접 단어 비교 기술과 같은 미리 정해진 기준에 따라) 단어만 아카이브(114)에 저장된다. 사용자는 퍼지 매칭 스코어를 수동으로 조정하거나, 미리 정해진 기준에 기초해서 아카이브(113)의 단어에 대한 퍼지 매칭 스코어의 초기 모집단(initial population)에서 식별되지 않은 매칭 쌍을 추가함으로써 아카이브(114)를 수정 및 확장할 수 있다.
일부 구현 예에서, 아카이브(114)는 삭제-결합 방법을 사용해서 퍼지 매칭 스코어에 의해 모집단화(populate) 된다. 계산에 비용이 많이 드는, 각각의 단어 쌍 사이의 완전한 편집 거리를 계산하는 것이 아니라, 삭제-결합 방법에서는 인접 단어들만 계산한다. 이것은 다음과 같은 방식으로 달성된다. 각각의 단어에 대해, 단어 사전(111)에서[또는 소정의 소스, 문맥 및/또는 필드에 대해 사전(111)의 일부에 대한], 단일의 문자를 삭제함으로써 형성된 모든 수정이 이루어진다. 소정의 원본 단어에 대한 "삭제 세트"(deletion set)는 원본 단어("word_key"), 원본 단어("original"), 삭제 변형("deletion_var"), 및 원본 단어로부터 삭제된 문자의 위치("deletion_pos")에 대한 키를 각각 갖는 엔트리 리스트를 포함한다. 삭제 세트는 원본 단어와 함께 사전(111)에 기억되거나, 아카이브(114)에 기억된 잠재적 퍼지 매칭을 생성하기 위해 사전실행 모듈(110)에 의해 사용된 후에, 폐기될 수 있다. 원본 단어는 삭제 변형과 함께 삭제 세트에 포함되며 0이라는 삭제된 문자 위치를 갖는다. 예를 들어, 이하는 단어 LONDON에 대한 삭제 세트이다.
word_key deletion_pos deletion_var 원본
1 0 LONDON LONDON
1 1 ONDON LONDON
1 2 LNDON LONDON
1 3 LODON LONDON
1 4 LONDN LONDON
1 5 LONDO LONDON
word_key, deletion_pos는 소정의 삭제 변형을 식별하는 고유의 "키"(key)이다.
이러한 삭제-결합 방법은 더 많은 삭제, 즉 삭제 위치의 시퀀스를 기록하는 것으로 확장될 수 있는데, 하나 이상의 삭제 시퀀스가 동일한 단어로 될 수 있기 때문에, 소정의 삭제 변형에 대한 "키"는 더 이상 고유한 것이 아니다(그러나, 삭제를 요구함으로써 판정된 기본 키가 특정의 순서로, 즉 원본 단어의 왼쪽부터 시작하고, 이전 수정으로부터 삭제 위치를 항상 나타내기 때문에). 따라서, 원본 단어 LONDON으로부터 2개의 문자를 삭제함으로써 생성된 삭제 변형 LOON(제3 위치에서 두 번)이 다음과 같은 삭제 세트 엔트리를 가질 것이다.
word_key deletion_pos deletion_var 원본
1 3, 3 LOON LONDON
삭제-결합 방법은, deletion_var(삭제 변형) 단어에서의 결합 연산을 수행함으로써 하나 이상의 사전 내에서 단어로부터 잠재적인 퍼지 매칭을 판정한다. 퍼지 매칭의 품질은 삭제된 문자의 위치를 비교함으로써 스코어링된다. 퍼지 매칭 스코어를 계산하기 위한 방법의 일례로서, 포인트는 다음과 같이 여러 상이한 타입의 변화에 할당된다. 즉, 삭제를 위한 1 포인트, 첫 번째 글자를 변화시키는 데에 1 포인트, 마지막 글자를 변화시키는 데에 1 포인트, 삭제된 문자가 하나 이상의 위치에 의해 분리된 경우에 1 포인트이다. 각 타입의 변화와 관련된 웨이트는 조정이 가능하다. 하나의 단어의 삭제 위치가 0이고 다른 것이 그렇지 않다면, 단일의 삽입 또는 삭제가 된다. 삭제 위치가 동일하다면, 치환이 된다. 동일한 word_key 및 deletion_pos를 갖는 매칭은, 정확한 매칭이 존재하기 때문에 무시한다. 쌍으로 된 글자의 삭제를 나타내는 매칭은 불확정된 것으로 무시한다(예를 들어, 문자 2 또는 3을 삭제함으로써, MEET -> MET).
다음은, 원본 단어 LONDON, LODON, LOMDON, 및 LODNON에 대한 각각의 삭제 세트로부터 일련의 선택된 엔트리에 대한 예이다.
word_key deletion_pos deletion_var 원본
1 0 LONDON LONDON
1 3 LODON LONDON
1 4 LONON LONDON
2 0 LODON LODON
3 0 LOMDON LOMDON
3 3 LODON LOMDON
4 0 LODNON LODNON
4 3 LONON LODNON
4 4 LODON LODNON
본 예에서, 삭제 변형 엔트리 중의 일부는, 관심 매칭이 되지 않기 때문에 금지되어 있다. 결합 연산은 동일한 deletion_var 값을 갖는 제2 엔트리와 제1 엔트리를 쌍으로 만든다. 결과적으로, 원본 단어의 쌍 사이의 잠재적인 퍼지 매칭은, 다음과 같이 된다.
제1 엔트리 제2 엔트리 잠재적인 퍼지 매칭
1 3 LODON LONDON 2 0 LODON LODON LONDON LODON
1 3 LODON LONDON 3 3 LODON LOMDON LONDON LOMDON
1 3 LODON LONDON 4 4 LODON LODNON LONDON LODNON
1 4 LONON LONDON 4 3 LONON LODNON LONDON LODNON
2 0 LODON LODON 3 3 LODON LOMDON LODON LOMDON
각각, 예시로 든 상기 잠재적인 퍼지 매칭은 word0-삭제, 치환, 전치, 상이한 경로에 의해 취득한 전치, 및 word0-삽입(또는 word1-삭제)을 나타낸다. 잠재적인 퍼지 매칭을 나타내는 아카이브(114)에서의 각각의 단어 쌍은 매칭의 품질을 나타내는 연관된 퍼지 매칭 스코어를 갖는다.
상기 설명한 방법을 사용해서, 이들 쌍에 대한 퍼지 매칭 스코어는 다음과 같이 된다.
잠재적인 퍼지 매칭 퍼지 매칭 스코어
LONDON LODON 1
LONDON LOMDON 1
LONDON LODNON 2
LONDON LODNON 2
LODON LOMDON 1
잠재적인 퍼지 매칭으로서 식별된 쌍을 스코어링하는 다른 예로서, 단어 ONDOON 및 LONDON은 4의 퍼지 매칭 스코어[첫 번째 글자에 대해 1, l을 삭제하기 위한 것에 1, O를 삭제하기 위한 것에 1, 인접하지 않는 삭제를 위한 1]를 가질 것이다.
결합 연산은 단일의 소스를 포함하는 임의 개수의 소스로부터 단어를 가진 사전(111)에 대해 수행될 수 있다. 일부의 경우, 사전(111)은 제1 소스(source0)로부터 단어를 가진 부분과 제2 소스(source1)로부터 단어를 가진 부분을 포함한다. 삭제-결합 방법은, 선택된 소스를 사용해서 수행될 수 있으며, 그 결과는 어떤 소스가 삭제되었는지의 표지와 어떤 순서로 이들이 비교되었는지 등에 관한 정보와 함께, 아카이브(114)에 저장될 수 있다.
예를 들어, 잠재적인 퍼지 매칭을 나타내는 아카이브(114) 내의 각각의 단어 쌍은 entry_descriptor와 연관될 수 있다. entry_descriptor는 단어 쌍의 근원(origin)을 나타내는 비트매핑 필드(bit-mapped field)로서 구현될 수 있다. 하나의 비트는 이러한 쌍이 삭제-결합 방법을 사용하는 그래프에 의해 생성되었음을 나타낸다. 다른 비트는 스코어가 사용자에 의해 변경되었는지, 이러한 쌍이 사용자에 의해 삽입되었는지(예를 들어, 동의어를 도입하기 위해), 또는 이러한 쌍이 내포된 구두점 문자의 클린징["클링징된"(cleansed)이라고 함]에 의해 생성되었는지를 나타낸다.
경험이 다수의 구두점 문자가 단일의 단어 내에 내포된 것으로 발생할 수 있다는 것을 나타내기 때문에, 구두점 문자의 클린징(외국 언어의 발음 구분을 포함할 수 있음)이 생긴다. 때때로, 이러한 것들은 이니셜에서의 주기와 같은 효과적인 선택사항이다. 때때로 이들은 트레일링 가비지(trailing garbage) 문자처럼 보인다. 하나 이상의 문자가 포함되기도 하기 때문에, 이러한 클린징은 단일 삭제 방법에 의해 픽업되지 않을 것이며, 다수의 삭제는 너무 많은 양성 오류를 생기게 할 것이다. 다음은, 클린징된 단어의 예를 나타낸다.
원본 단어 클린징된 단어
S.I.ID. SIID
HOLDINGS### HOLDINGS
단일 소스로부터의 단어는 서로에 대하여 스코어링될 수 있다. 하나 이상의 소스가 존재하면, 각 소스로부터의 단어가 다른 소스의 단어에 대해 스코어링될 수 있다(예를 들어, 파일 또는 문맥과는 독립적임). 이것은 스코어 자체 내에서 생기지 않을 수 있는 잠재적인 퍼지 매칭을 식별한다. 철자오류와 오탈자는 상대적으로 분리된 이벤트이기 때문에, 이들 오류는 소스마다 달라진다.
아카이브(114)는 모드 소스에 대한 잠재적인 퍼지 매칭을, 예를 들어 참조에 의해 본 명세서에 포함되는 미국특허출원 11/555,458에 개시된 포맷과 같은 인덱스 압축(연계된) 플랫 파일 포맷에 저장될 수 있다. 다중파일 포맷과 상이한 용도로 다수의 아카이브(114)를 사용하는 것은 가능하다(예를 들어, 이하에 설명하는 복수 단어 스코어). 새로운 소스가 관여함에 따라, 단어는 사전(111)에 추가된 이들 자신의 삭제 세트와 기존의 삭제 세트에 대해 사전(111)에 미리 스코어링된다. 새로운 잠재적 퍼지 매칭 쌍과 스코어는 정렬된 순서로 기존 아카이브(114)의 끝에 연계될 수 있다. 나중의 병합(merge) 처리는 성능을 위한 아카이브를 재구성할 수 있다.
일부 구현 예에서, 단어 쌍에 대한 아카이브(114)에서의 엔트리가 이미 존재하면, 단어 쌍은 폐기되고 다시 스코어링되지 않는다. 이것은, 예를 들어 성능에 대해 이루어지게 되며, 사용자로 하여금 삭제-결합 방법에 의해 만들어진 스코어를 변경할 수 있도록 한다. 아카이브(114)는 누적되기 때문에, 스코어링할 필요가 있는 단어의 수는 관측된 쌍의 본체가 성장함에 따라 시간의 경과에 따라 감소한다.
엔트리의 스코어를 변경하는 것은 양성 오류를 개별적으로 제거하는 데에 유용하다. 연산 그래프의 컴포넌트는 스코어 아카이브 내의 이들의 스코어가 소정의 임계값보다 작은지 여부에 기초해서 단어 쌍이 퍼지 매칭인지 여부를 판정하기 위해 아카이브(114) 내의 스코어를 사용할 수 있다. 아카이브(114) 내의 소정의 단어 쌍에 대한 스코어를 임계값 이상으로 높이는 것은 매칭을 효과적으로 차단한다(식별된 잠재적인 퍼지 매칭이 실제의 퍼지 매칭이 아니라는 것을 나타냄). 단어 쌍을 신중하게 스코어링함으로써, 임계값을 조정해서 단어 세트를 선택적으로 턴온 및 턴오프할 수 있다. 일부 구현 예에서, 하나 이상의 임계값은 문맥에 기초하도록 구성되며, 소정의 쌍에 대한 스코어는 문맥에 기초할 수 있다[예를 들어, 아카이브(114) 내에 저장된 추가의 정보를 사용함].
사용자는 삭제-결합 방법에서 식별되지 않을 아카이브(114)에 단어 쌍을 추가할 수 있다. 이것은 스코어 아카이브에 동의어 또는 약어를 추가하는 것에 유용하다. 예를 들어, STREET 및 ST는 삭제-결합 방법에 의해 잠재적인 퍼지 매칭으로서 식별되지 않을 수 있지만, 이것은 바람직한 식별이 될 수 있다. ROBERT 및 BOB와 같은 별명 식별을 추가하는 것이 가능하다(이것은 문맥 의존성 스코어의 자연적인 예이며, 이들은 개인 이름 문맥에 있지만 다른 문맥에는 없는 매칭으로 고려될 수 있다).
아카이브 내의 퍼지 매칭 스코어는 추가의 처리의 결과로부터 피드백에 의해 갱신될 수 있다(예를 들어, 이들 단어가 나타나는 구 사이에서의 허용된 매칭).
2.5 단어 빈도 재규격화 및 중요도 스코어
아카이브(114)에 적어도 몇몇 단어 쌍이 추가된 후에, 사전(111) 내의 단어 빈도 카운트를 "재규격화"(renormalize)하는 데에 사용될 수 있다. 각 단어의 빈도는 관련된 모든 단어의 카운트를 잠재적인 퍼지 매칭으로서 해당 단어에 추가함으로써 조정된다. 결과적으로, 재규격화된 빈도는 단어의 "중요도 스코어"를 계산하는 데에 사용되며, 계속해서 구를 매칭할 때에 사용될 것이다. 데이터 내에서 단어가 빈도가 낮은 것은, 다른 단어와의 구분가능성이라는 관점에서 더 중요하다.
중요도의 빈도 개념을 순수한 단어 빈도 카운트에 적용하는 어려움은, 오탈자 단어에 의해 나타낸다. 오탈자는 드물기 때문에, 불균형적으로 중요하다. 이들이 매칭되는 더 빈번하게 발생하는 단어의 카운트에 의해 이들의 카운트를 조정함으로써, 이들의 참된 상대적인 중요도를 구한다. 높은 빈도의 매칭 단어는 "정확한 철자를 가진" 것으로 간주할 필요는 없는데, 이것이 적용하지 않아도 되는 매칭 단어에 대한 정확성을 의미하기 때문이다. 모든 낮은 빈도의 단어가 오탈자는 아니며, 모든 높은 빈도의 매칭 단어가 오탈자 단어의 정확한 철자는 아니다. 예를 들어, NORTE는 NORTH의 오탈자가 될 수 있거나 단순히 스페인어로 north를 의미할 수 있다. LABLE는 LABEL의 오탈자일 수 있으며, TABLE의 오탈자가 될 수도 있고, 둘 다 높은 빈도의 매칭으로 발생할 것이다.
중요도는 구분가능성의 강력한 함축을 포함한다. 단어가 LABLE처럼, 높은 빈도의 단어와 매칭되면, 다른 단어인 것으로 오해할 가능성이 크기 때문에 덜 중요한 것으로 간주된다.
아카이브(114)에서, 재규격화된 단어 빈도 카운트가 저장될 수 있으며, 단어의 리스트와 같은 다른 정보가 재규격화를 수행하기 위해(예를 들어, 진단용으로) 사용된다. 이하는, 단어 AVENUE에 대한 잠재적인 퍼지 매칭의 예로서, 단어가 나타나는 문맥을 보여주는 구의 예와, 단어가 예시의 데이터 소스에서 나타나는 횟수의 카운트를 같이 나타낸다. 본 예에서, 데이터 소스, 단어 AVENUE 자체는 10,500번 나타난다.
단어 문맥 카운트
AVENE 237 Park Avene 1
AVNENUE 255 5th Avnenue SW 1
AVENUNE 306 MAROON AVENUNE 2
AVEUNUE 236 TATE AVEUNUE 1
AVENUES Philadelphia & Reading Avenues 11
AVENUUE 57 NORTH TWELFTH AVENUUE 1
AVENUS 1900 9th Avenus 1
AVEUNE 1010 BELLEVERNON AVEUNE 4
AVENIE 3401 Hillview Avenie 1
AVNUE 540 GODDARD AVNUE 1
AVEBUE 10319 FIRMONA AVEBUE 1
AVENYE 132 JEFFERSON AVENYE 1
VENUE 725 North Mathilda Venue 1
ANENUE 3330 Evergreen Anenue 1
VENDUE ZI LA VENDUE 1
AVENUE. 5200 NW 33rd Avenue. Suite 215 1
단어 AVENUE는 16개의 잠재적인 퍼지 매칭을 갖는 것을 보여주고 있으며 10500번의 카운트는 이들 매칭된 단어의 카운트의 합에 의해 조정될 것이다. 이들 매칭된 각각의 단어는 해당 매칭된 단어에 대한 잠재적인 퍼지 매칭으로서 식별된 임의의 다른 단어와 함께, AVENUE와 연관된 10500에 의해 조정된 자신들의 카운트를 가질 것이다. 통상적으로, 오탈자 단어는 정확한 철자를 가진 단어보다 적은 수의 퍼지 매칭과 링크한다.
단어의 빈도 카운트가 재규격화되는 과정을 다음과 같은 예로서 나타낸다. 본 예에서, source0에 대한 사전은 "legal_address"라고 부르는 필드에서 나타나는 단어
Figure 112010049594332-pct00001
(11의 원본 빈도 카운트) 및 MEXICO(259의 원본 빈도 카운트)를 포함하고, source1에 대한 사전은, "taddress3"(source0에서 E가 강조되어 있음)이라 부르는 필드에서 보이는 MEXCIO(2의 원본 빈도 카운트)와 MEXICO(311의 원본 빈도 카운트)를 포함한다.
본 예에서, 아카이브(114)에 저장된 단어 쌍은 source0에 대한 사전의 삭제 세트와 source1에 대한 사전의 삭제 세트 사이의 결합 연산에 기초해서 source0과 source1 사이의 잠재적인 퍼지 매칭을 포함한다. (이하의 예는 각각의 소스에 대한 삭제 세트의 자체 결합으로부터 잠재적인 퍼지 매칭에 의해 아카이브를 증분한다) 그래서, 다음은 2쌍의 잠재적인 퍼지 매칭이 아카이브(114)에서 발생한다.
Figure 112010049594332-pct00002
MEXICO
MEXICO MEXCIO
재규격화 과정의 예는 다음과 같다. source0과 source1에 대한 사전은, 예를 들어 source0에서 단어
Figure 112010049594332-pct00003
로 시작한다. 이 단어는 아카이브(114)에서 조사되어, source1에서 생기는 잠재적인 퍼지 매칭의 리스트를 찾는다. 각각의 잠재적인 퍼지 매칭은 source0에 대한 원본 사전에서 조사된다. 그 결과로서의 카운트가 원본 카운트에 추가된다. 본 예에 적용되는 이 처리 과정은 source0에 대한 사전에 단어 빈도 카운트의 재규격화를 위한 다음 결과를 제공한다.
제1 입력 단어 및 source0으로부터의 원본 카운트:
Figure 112010049594332-pct00004
11
아카이브에서 조사, 복귀 {MEXICO}
source0 사전에서 각각 조사, 카운트를 추가:
source0: MEXICO 259
찾음: {MEXICO}
Figure 112010049594332-pct00005
에 대한 재규격화된 카운트 = 11 + 259 = 270
제2 입력 단어 및 source0으로부터의 원본 카운트: MEXICO 259
아카이브에서 조사, 복귀{
Figure 112010049594332-pct00006
,MEXCIO}
source0 사전에서 각각 조사, 카운트를 추가:
source0:
Figure 112010049594332-pct00007
11
source0: MEXCIO 발견 못 함
찾음: {
Figure 112010049594332-pct00008
}
MEXICO에 대한 재규격화된 카운트 = 259 + 11 = 270
5의 원본 단어 빈도 카운트를 가진 단어
Figure 112010049594332-pct00009
에 대한 source0 사전에서이 추가적인 엔트리가 있었다고 가정하자.
이 단어
Figure 112010049594332-pct00010
는 source1에서의 어떤 것에 대한 잠재적인 퍼지 매칭을 갖지 않기 때문에, 아카이브(114)에서는 나타나지 않으며, source0(source1에 대하여)에 대한 재규격화에 참여하지 않을 것이다. 그러나 아카이브(114)가 이러한 추가적인 엔트리에 의해 source0 사전에 대한 삭제 세트에서 자체 결합으로 확장되었다면, 아카이브(114)에 다음과 같은 추가의 엔트리가 존재할 것이다.
Figure 112010049594332-pct00011
Figure 112010049594332-pct00012
제1 단어
Figure 112010049594332-pct00013
에 대한 조사는 찾은 잠재적인 퍼지 매칭의 세트에
Figure 112010049594332-pct00014
를 추가할 것이다.
Figure 112010049594332-pct00015
에 대한 재규격화는 다음과 같이 수행될 것이다.
source0: MEXICO 259
source0:
Figure 112010049594332-pct00016
5
찾음: {
Figure 112010049594332-pct00017
,MEXICO}
Figure 112010049594332-pct00018
에 대한 재규격화된 카운트 = 11 + 5 + 259 = 275
재규격화된 단어 빈도 카운트가 현재 더 높고, 추가의 잠재적인 퍼지 매칭
Figure 112010049594332-pct00019
의 존재를 반영한다. 재규격화된 단어 빈도 카운트에 기초해서 계산된 중요도 스코어가, 예를 들어 재규격화된 단어 빈도 카운트에 의해 나누어진 비어있지 않은(non-empty) 레코드의 총 수의 로그(log)로서 계산된다. 이러한 중요도 스코어의 버전에서, 단어와 그 수정이 더 빈번하게 나타나면, 중요도 스코어가 낮아진다. 음의 값은 단어가 레코드당 1번 이상 더 자주 발생한다는 것을 의미한다.
재규격화된 단어 빈도 카운트는 가능한 오탈자 또는 역으로 가능한 양성 오류를 식별하는 데에 사용될 수 있다. 간단히 말해서, 오탈자는 드문 것으로 예상되지만, 양성 오류는 그렇지 않다. 단순한 비율 검사는, 단어가 재규격화된 단어 빈도 카운트보다 훨씬 적은 카운트를 갖는다는 것을 나타낸다. 이들은 오탈자일 가능성이 크다. 엔그램 빈도가 협의된 경우라면, 신뢰도가 높아도 달성이 가능할 수 있다. 전체 데이터에 대한 엔그램(ngram)의 빈도 분포는 상이한 글자 조합의 출현 빈도를 나타낸다(이 분포는 물론 언어 특정적이다). 아카이브의 생성 동안에, 2개의 단어 사이의 변화의 위치는 알려져 있다. 변화의 위치를 포함하는 2-글자와 3-글자(그리고 그 이상)의 단어 부분이 식별될 수 있고 이들의 빈도가 조사된다. 하나의 단어에서 변화와 연관된 엔그램 빈도가 다른 것에서보다 훨씬 낮다면, 앞의 단어가 오탈자일 가능성이 크다는 것을 의미한다.
한편, 비교적 높은 카운트를 각각 가진 다수의 수정은 자연적으로 발생하는 수정, 즉 양성 오류가 될 가능성이 있다. 스코어링의 관점에서 보면, 양성 오류 매칭의 존재는 상대적으로 더 큰 카운트를 추가함으로써 단어의 중요도를 감소시킨다. 일부의 경우에, 이것은 단어가 잘못되었을 수도 있다는 것을 나타내기 때문에, 바람직할 수 있다. 그러나 다른 경우에, 단어는 유사하지 않게 보여서 오류가 있는 것으로 보이지 않을 수 있다. 즉, 상대적인 카운트의 레벨에 있지 않다.
중요도는 엄밀히 상대적인 것이 될 수 있다. 다수의 소스가 포함된 경우, 몇몇 잠재적인 퍼지 매칭 단어는 모든 소스에서 발생하지 않을 수도 있다. 이것은, 조정된 카운트는 소스마다 달라질 수 있다는 것을 의미한다. 마찬가지로, 단어와 연관된 필드 또는 문맥이 관련될 수 있다. 어떤 조정이 이루어지는 지는 소스, 필드 및 문맥의 파싱에 맞도록 될 수 있다. 상대적인 경우로서, 2개의 소스가 비교될 때에, 적절한 소스, 필드 또는 문맥에서 실제로 발생하는 잠재적인 퍼지 매칭만이 카운트를 조정하는 데에 사용될 것이다. 소스 특정의 수정으로부터의 기여는 일반적으로 작은 효과를 나타낼 것으로 예상된다.
2.6 부호화
삭제-결합 방법에서 발견된 인접 단어는 원본 데이터세트에서 이들의 출현으로부터 실질적으로 변경되지 않은 단어 내의 문자의 배치에 기초한다. 인접 단어 비교는 "단어 부호화"(word encodings)를 사용해서 변경되는 "단어의 스페이스"에서 수행될 수 있다. 발견되는 인접한 세트는 단어 부호화가 사용될 때에 상이하게 될 수 있다. 단어 부호화는 단어를 새로운 표현으로 매핑한다. 이러한 매핑은 일대일, 일대다, 대다일로 이루어질 수 있다. 일부 부호화는 단어를 상이한 문자 세트로 변환할 수 있으며, 몇몇 부호화는 단어를 수치적 표현으로 변환할 수 있다. 단어 부호화는 단어의 스페이스를 변경함으로써, 소정의 매트릭에 따라 단어들 사이의 거리가 변화할 수 있다. 이들의 자연적인 문자 표현에 대하여 인접해 있지 않았던 단어가, 단어 부호화가 적용된 이후에 인접될 수 있다.
예를 들어, 일부 구현 예에서, 사전실행 모듈(110)은 문자 세트에서의 각각의 문자가 소스(prime number)로서 부호화되는 "프라임 부호화"를 수행하고(예를 들어, 알파벳에서의 각각의 문자가 상이한 프라임 넘버에 매핑되는 것은 무시함), 부호화된 단어는 문자의 프라임 넘버의 곱이다. 승산(multiplication)은 가환성(commutative)(즉, 인수의 순서와 무관)이기 때문에, 2개의 부호화된 단어는, 이들이 순서와 관계없이 동일한 문자 세트로 이루어진 경우에 동일하다. 이러한 부호화는 전치(transposition), 또는 스크램블링에 영향을 주지 않으며, 다대일(many-to-one) 매핑의 예이다.
소정의 부호화에서, 삭제-결합 방법의 수정은, 인접 단어를 생성하기 위해 부호화 이전의 문자의 삭제를 수행하거나, 인접 단어를 생성하기 위해 부호화 이후에 인접 단어 생성을 수행할 수 있다. 프라임 부호화에 대한 삭제-결합 방법의 수정이 수행될 수 있으며, 모듈(110)이 삭제 변형에서 대응하는 문자를 삭제하기 위해 프라임 넘버에 의해 부호화된 곱을 분할한다. 일부 부호화(예를 들어, 프라임 부호화)의 경우, 부호화 이후의 인접 단어 연산은 문자 삭제가 부호화 인정에 생긴 것처럼 동일한 결과를 제공하지만, 다른 부호화의 경우, 인접 단어 연산은 부호화 이전에 문자 삭제가 이루어진 것과 상이한 결과를 제공할 것이다.
몇몇 언어의 경우, 예를 들어 일본어의 경우, 다수의 알파벳 또는 문자 세트(예를 들어, 문자를 식별하는 컴퓨터 바이트 코드)를 사용하기 때문에, 부호화는 부호화 이전에 알파벳 또는 문자 세트의 선택에 대한 표준화를 포함한다.
2.7 복수 단어(multiword)
복수 단어는 단어로서 취급되는 내포 스페이스(embedded spaces)를 포함하는 구(phrase)이다. 앞서 설명한 예에서, 구는 스코어링 이전에 내포 스페이스가 없는 단어로 파상되었다. 이것은 2가지 가능한 오차 소스를 간과하고 있다. 즉. 스페이스가 다어 내에 삽입될 수 있다는 것과, 단어 사이의 스페이스가 드롭(drop)될 수 있다는 것이다. 다른 예는 구를 두문자어(acronym)처럼 단일의 단어에 관계시킨 동의어를 취급하는 것이다.
내포 스페이스를 허용하는 것은, 스페이스의 식별을 분자문자(separator)로서 약화시키는 것이다. 이것은 구의 파싱을 단일의 단어뿐만 아니라 단어로 이루어진 모든 인접한 쌍 및 3중(triple) 등을 포함하는 것으로 확장함으로써 이루어진다. 구는 모두가 특정의 길이보다 짧은 부분 구(subphrase)(복수 단어)로 분해된다. 복수 단어(mword) 내의 모든 내포 스페이스는 연계어(cword)로부터 삭제된다. 이것은 삭제에 의해 형성된 단어의 유사어이다. cword는 복수 단어 사전 및 복수 단어 아카이브에 대한 키가 된다. 복수 단어가 비교되면, 이들의 cword가 매칭되고 원본 mwords가 스코어링된다. mword 내의 오탈자의 가능성은 무시된다. 이러한 경우를 처리하기 위해, 아카이브는 mword 쌍을 스코어링할 때에 협의된다.
일례로서, 다음 3개의 이름을 가진 소스를 고려해 보자.
JOHN A SMITH
JO HNA SMITH
JOHNA SMITH
제1 엔트리의 길이 3까지의 mword 분해는 mwords 세트를 제공할 것이다: {JOHN, A, SMITH, JOHN A, A SMITH, JOHN A SMITH}.
3 구현
본 발명의 근사 문자열 매칭 방법은 컴퓨터에서 실행되는 소프트웨어에 의해 구현될 수 있다. 예를 들어, 소프트웨어는, 하나 이상의 프로세서, 하나 이상의 데이터 기억 시스템(휘발성, 불휘발성 메모리 및/또는 기억 요소를 포함), 하나 이상의 입력 장치 또는 포트, 및 하나 이상의 출력 장치 또는 포트를 각각 포함하는, 하나 이상의 프로그램된 또는 프로그램 가능한 컴퓨터 시스템(분산형, 클라이언트/서버, 또는 그리드형과 같은 다양한 구조가 가능)에서 실행되는 하나 이상의 컴퓨터 프로그램에서의 절차를 형성한다. 소프트웨어는 연산 그래프의 설계 및 설정과 관련된 다른 서비스를 제공하는 더 큰 프로그램의 하나 이상의 모듈을 형성할 수 있다. 그래프의 노드 및 요소는 컴퓨터로 판독가능한 매체 또는 데이터 기억 장소에 기억된 데이터 모델에 부합하는 다른 구성의 데이터 구조로서 구현될 수 있다.
소프트웨어는 범용 또는 전용의 프로그램가능한 컴퓨터에 의해 판독가능한 CD-ROM과 같은 기억 매체에 제공되거나, 실행될 때에 네트워크의 통신 매체를 통해 컴퓨터에 전달(전파된 신호로 부호화된)될 수 있다. 모든 기능은 전용의 컴퓨터에서 수행되거나 코프로세서와 같은 전용 하드웨어를 사용해서 수행될 수 있다. 소프트웨어는 소프트웨어에 의해 특정된 연산의 상이한 부분이 상이한 컴퓨터에 의해 수행되는 분산된 방식으로 구현될 수도 있다. 이러한 각각의 컴퓨터 프로그램은, 본 명세서에 개시된 방법을 수행하기 위해 기억 매체나 장치가 컴퓨터 시스템에 의해 판독될 때에, 컴퓨터를 설정 및 동작시키기 위한, 범용 또는 전용의 프로그램가능한 컴퓨터에 의해 판독가능한 기억 매체 또는 장치(예를 들어, 고체 메모리 또는 매체, 자기 매체 또는 광학 매체)에 기억되거나 다운로드 되는 것이 바람직하다. 본 발명의 시스템은 컴퓨터 프로그램으로 구성된, 컴퓨터로 판독가능한 기억 매체로서 구현될 수 있으며, 기억 매체는 컴퓨터 시스템으로 하여금 본 명세서에 개시된 기능을 수행하도록 특정적이고 미리 정해진 방식으로 동작할 수 있도록 구성된다.
본 발명의 실시예에 대하여 설명하였지만, 본 발명의 정신과 범위를 벗어남이 없이 다양한 수정이 가능하다는 것을 이해할 것이다. 예를 들어, 상기 설명한 단계 중 몇몇은 순서를 변경할 수 있으며, 설명한 것과 다른 순서로 수행될 수 있다.
이상의 설명은 본 발명을 예시한 것에 불과하며 청구범위에 개시된 본 발명을 제한하기 위한 것이 아니다. 예를 들어, 상기 설명한 많은 단계들은 전체적인 처리 과정에 실질적인 영향을 주지 않으면서 상이한 순서로 수행될 수 있다. 다른 실시예도 이하의 청구범위의 범위에 포함된다.

Claims (30)

  1. 레코드(record)에 출현하는 단어와 연관된 근사 매칭(approximate match)을 판정하기 위한 아카이브(archive)를 관리하는 방법으로서,
    상기 레코드에 출현하는 일련의 단어들을 판정하는 단계;
    상기 일련의 단어들 중 각각의 단어에 대해, 상기 단어로부터 하나 이상의 문자(character)를 삭제하여 각각 생성된 복수의 삭제 변형(deletion variants)을 생성하는 단계;
    상기 일련의 단어들 중 각각의 단어에 대해, 상기 각각의 삭제 변형에 기초해서, 상기 일련의 단어들 중 상기 단어와 다른 단어 사이에서 잠재적인 매칭을 발견하는 단계; 및
    상기 일련의 단어들 중 하나의 단어에 대해, 상기 레코드 내의 단어의 출현 빈도를 판정하는 단계
    를 포함하는 것을 특징으로 하는 아카이브 관리 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 각각의 삭제 변형은 단어 내의 동일 문자 중의 적어도 일부로 이루어지는, 아카이브 관리 방법.
  4. 삭제
  5. 제3항에 있어서,
    상기 일련의 단어들 중 소정의 단어에 대해, 복수의 삭제 변형을 생성하는 단계는, 상기 소정의 단어로부터 단일 문자를 삭제하여 획득되는 삭제 변형을 구성하는 단계를 포함하는, 아카이브 관리 방법.
  6. 제3항에 있어서,
    상기 일련의 단어들 중 소정의 단어에 대해, 복수의 삭제 변형을 생성하는 단계는, 상기 소정의 단어로부터 다수의 문자를 삭제하여 획득되는 삭제 변형을 구성하는 단계를 포함하는, 아카이브 관리 방법.
  7. 제3항에 있어서,
    상기 일련의 단어들 중 소정의 단어에 대해, 복수의 삭제 변형을 생성하는 단계는, 상기 소정의 단어가 미리 정해진 길이보다 짧은 경우에 상기 소정의 단어로부터 단일 문자를 삭제하여 획득되는 삭제 변형을 구성하고, 상기 소정의 단어가 미리 정해진 길이보다 긴 경우에 상기 소정의 단어로부터 다수의 문자를 삭제하여 획득되는 삭제 변형을 구성하는 단계를 포함하는, 아카이브 관리 방법.
  8. 삭제
  9. 제1항에 있어서,
    상기 일련의 단어들 중 하나의 단어에 대하여, 상기 단어의 출현 빈도와, 상기 단어에 대한 잠재적인 매칭(potential match)으로서 상기 아카이브에 표현되는 적어도 몇몇 단어의 출현 빈도를 포함하는 합계에 기초해서 상기 단어의 중요도(significance)를 나타내는 중요도 값을 생성하는 단계를 더 포함하는, 아카이브 관리 방법.
  10. 제9항에 있어서,
    상기 중요도 값은 상기 합계의 반전(inverse)에 기초해서 생성되는, 아카이브 관리 방법.
  11. 제9항에 있어서,
    다수의 단어를 포함하는 제1 구와 다수의 단어를 포함하는 제2 구가 근사 매칭에 대응하는지 여부를, 상기 제1 구와 상기 제2 구 내의 단어들이 근사 매칭에 대응하는지 결정함으로써 판정하는 단계를 더 포함하며, 상기 단어들은 이들의 중요도 값에 기초해서 선택되는 것인, 아카이브 관리 방법.
  12. 제11항에 있어서,
    구 내의 단어의 중요도 값은, 상기 합계에 기초하고, 상기 단어의 길이, 상기 구에서의 단어의 위치, 상기 단어가 출현하는 레코드의 필드, 및 상기 필드가 출현하는 레코드의 소스 중 적어도 하나에 기초하는, 아카이브 관리 방법.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 제1항에 있어서,
    레코드에 출현하는 일련의 단어들을 판정하는 단계는, 적어도 하나의 레코드에서 출현하는 단어를 수정하여 상기 일련의 단어들에 포함되도록 하는 수정된(modified) 단어를 생성하는 단어 수정 단계를 포함하는, 아카이브 관리 방법.
  17. 제16항에 있어서,
    상기 단어 수정 단계는 구두점(punctuation)을 제거 또는 치환하는 단계를 포함하는, 아카이브 관리 방법.
  18. 제16항에 있어서,
    상기 단어 수정 단계는 상기 단어를 상이한 표현으로 부호화하는 단계를 포함하는, 아카이브 관리 방법.
  19. 제18항에 있어서,
    상기 단어 수정 단계는 상기 단어를 수치적 표현으로 부호화하는 단계를 포함하는, 아카이브 관리 방법.
  20. 제19항에 있어서,
    상기 단어를 수치적 표현으로 부호화하는 단계는, 단어 내의 각각의 문자를 프라임 넘버(prime number)로 매핑(map)하고, 단어를 단어 내의 문자에 매핑된 프라임 넘버의 곱(product)으로 표현하는 단계를 포함하는, 아카이브 관리 방법.
  21. 삭제
  22. 레코드(record)에 출현하는 단어와 연관된 근사 매칭(approximate match)을 판정하는 아카이브(archive)를 관리하는 컴퓨터 프로그램을 포함하는 컴퓨터 판독가능한 매체로서,
    상기 컴퓨터 프로그램은 컴퓨터로 하여금,
    상기 레코드에 출현하는 일련의 단어들을 판정하는 단계;
    상기 일련의 단어들 중 각각의 단어에 대해, 상기 단어로부터 하나 이상의 문자를 삭제하여 각각 생성된 복수의 삭제 변형을 생성하는 단계;
    상기 일련의 단어들 중 각각의 단어에 대해, 상기 각각의 삭제 변형에 기초해서, 상기 일련의 단어들 중 상기 단어와 다른 단어 사이에서 잠재적인 매칭을 컴퓨터 시스템에 의해 발견하는 단계; 및
    상기 일련의 단어들 중 하나의 단어에 대해, 상기 레코드 내의 단어의 출현 빈도를 컴퓨터 시스템에 의해 판정하는 단계
    를 수행하도록 하는 명령어를 포함하는 컴퓨터 판독가능한 매체.
  23. 레코드(record)에 출현하는 단어와 연관된 근사 매칭(approximate match)을 판정하기 위한 아카이브(archive)를 관리하는 시스템으로서,
    상기 레코드에 출현하는 일련의 단어들을 판정하는 수단;
    상기 일련의 단어들 중 각각의 단어에 대해, 상기 단어로부터 하나 이상의 문자를 삭제하여 각각 생성된 복수의 삭제 변형을 생성하는 수단;
    상기 일련의 단어들 중 각각의 단어에 대해, 상기 각각의 삭제 변형에 기초해서, 상기 일련의 단어들 중 상기 단어와 다른 단어 사이에서 잠재적인 매칭을 발견하는 수단; 및
    상기 일련의 단어들 중 하나의 단어에 대해, 상기 레코드 내의 단어의 출현 빈도를 판정하는 수단
    을 포함하는 것을 특징으로 하는 시스템.
  24. 레코드(record)에 출현하는 단어와 연관된 근사 매칭(approximate match)을 판정하기 위한 아카이브(archive)를 관리하는 시스템으로서,
    레코드를 저장하기 위한 데이터 소스(data source); 및
    컴퓨터 시스템을 포함하고,
    상기 컴퓨터 시스템은,
    상기 레코드에 출현하는 일련의 단어들을 판정하고,
    상기 일련의 단어들 중 각각의 단어에 대해, 상기 단어로부터 하나 이상의 문자를 삭제하여 각각 생성된 복수의 삭제 변형을 생성하고,
    상기 일련의 단어들 중 각각의 단어에 대해, 상기 각각의 삭제 변형에 기초해서, 상기 일련의 단어들 중 상기 단어와 다른 단어 사이에서 잠재적인 매칭을 컴퓨터 시스템에 의해 발견하고,
    상기 일련의 단어들 중 하나의 단어에 대해, 상기 레코드 내의 단어의 출현 빈도를 컴퓨터 시스템에 의해 판정하도록 구성되는,
    시스템.
  25. 제1항에 있어서,
    엔트리는, 잠재적인 근사 매칭과 상기 단어들 사이의 잠재적인 근사 매칭의 품질을 정량화하는 스코어가 사이에 존재하는 단어들을 각각 포함하는, 아카이브 관리 방법.
  26. 제1항에 있어서,
    상기 일련의 단어들 중 하나의 단어에 대하여, 단어의 출현 빈도에 기초해서 상기 단어의 중요도를 나타내는 중요도 값을 생성하는 단계를 더 포함하는 아카이브 관리 방법.
  27. 제1항에 있어서,
    상기 아카이브 내의 엔트리를 사용해서 가능한 양성 오차(false positive)에 해당하는 잠재적인 근사 매칭을 식별하는 단계를 더 포함하는 아카이브 관리 방법.
  28. 제27항에 있어서,
    제1 단어와 제2 단어 사이의 상기 가능한 양성 오차의 잠재적인 근사 매칭은 상기 레코드 내의 상기 제1 단어의 출현 빈도와 상기 레코드 내의 상기 제2 단어의 출현 빈도에 기초해서 식별되는, 아카이브 관리 방법.
  29. 제27항에 있어서,
    상기 가능한 양성 오차의 잠재적인 근사 매칭은 상기 아카이브 내에 저장된 엔그램(n-gram) 빈도에 기초해서 식별되는, 아카이브 관리 방법.
  30. 제27항에 있어서,
    상기 잠재적인 근사 매칭의 식별에 따라, 잠재적인 근사 매칭을 표현하는 엔트리와 연관된 스코어를 가능한 양성 오차로서 조정하는 단계를 더 포함하는 아카이브 관리 방법.
KR1020107017207A 2008-01-16 2008-12-30 근사 문자열 매칭을 위한 아카이브를 관리하는 방법 및 시스템 KR101564385B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/015,085 US8775441B2 (en) 2008-01-16 2008-01-16 Managing an archive for approximate string matching
US12/015,085 2008-01-16

Publications (2)

Publication Number Publication Date
KR20100116595A KR20100116595A (ko) 2010-11-01
KR101564385B1 true KR101564385B1 (ko) 2015-10-29

Family

ID=40851547

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107017207A KR101564385B1 (ko) 2008-01-16 2008-12-30 근사 문자열 매칭을 위한 아카이브를 관리하는 방법 및 시스템

Country Status (8)

Country Link
US (2) US8775441B2 (ko)
EP (1) EP2235621A4 (ko)
JP (1) JP5603250B2 (ko)
KR (1) KR101564385B1 (ko)
CN (2) CN101978348B (ko)
AU (1) AU2008348066B2 (ko)
CA (1) CA2710882C (ko)
WO (1) WO2009091494A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240025272A (ko) 2022-08-18 2024-02-27 한국전력공사 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템 및 방법

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7877350B2 (en) * 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
CN103729330B (zh) * 2006-08-10 2017-04-19 起元科技有限公司 在基于图的计算中分配服务
US8706667B2 (en) 2007-07-26 2014-04-22 Ab Initio Technology Llc Transactional graph-based computation with error handling
US8775441B2 (en) 2008-01-16 2014-07-08 Ab Initio Technology Llc Managing an archive for approximate string matching
EP2235836A4 (en) * 2008-01-24 2012-08-29 Sra International Inc SYSTEM AND METHOD FOR THE ADJUSTMENT OF VARIANTER STRINGS
US8095773B2 (en) 2008-02-26 2012-01-10 International Business Machines Corporation Dynamic address translation with translation exception qualifier
KR101491581B1 (ko) * 2008-04-07 2015-02-24 삼성전자주식회사 철자 오류 보정 시스템 및 방법
CN103810527B (zh) * 2008-10-23 2017-08-08 起元技术有限责任公司 数据操作执行、数据质量度量和数据元素联接方法和系统
US9135396B1 (en) * 2008-12-22 2015-09-15 Amazon Technologies, Inc. Method and system for determining sets of variant items
CN102317911B (zh) 2009-02-13 2016-04-06 起元技术有限责任公司 管理任务执行
US9124431B2 (en) * 2009-05-14 2015-09-01 Microsoft Technology Licensing, Llc Evidence-based dynamic scoring to limit guesses in knowledge-based authentication
US8856879B2 (en) 2009-05-14 2014-10-07 Microsoft Corporation Social authentication for account recovery
US8667329B2 (en) * 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
KR101758669B1 (ko) 2010-01-13 2017-07-18 아브 이니티오 테크놀로지 엘엘시 매치를 특징화하는 규칙을 사용하는 메타데이터 소스의 매칭
US8875145B2 (en) 2010-06-15 2014-10-28 Ab Initio Technology Llc Dynamically loading graph-based computations
US9069767B1 (en) 2010-12-28 2015-06-30 Amazon Technologies, Inc. Aligning content items to identify differences
US9846688B1 (en) 2010-12-28 2017-12-19 Amazon Technologies, Inc. Book version mapping
US8798366B1 (en) 2010-12-28 2014-08-05 Amazon Technologies, Inc. Electronic book pagination
US9449057B2 (en) 2011-01-28 2016-09-20 Ab Initio Technology Llc Generating data pattern information
US9881009B1 (en) 2011-03-15 2018-01-30 Amazon Technologies, Inc. Identifying book title sets
US9317544B2 (en) 2011-10-05 2016-04-19 Microsoft Corporation Integrated fuzzy joins in database management systems
US9361355B2 (en) 2011-11-15 2016-06-07 Ab Initio Technology Llc Data clustering based on candidate queries
US8788471B2 (en) * 2012-05-30 2014-07-22 International Business Machines Corporation Matching transactions in multi-level records
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
GB2508223A (en) 2012-11-26 2014-05-28 Ibm Estimating the size of a joined table in a database
GB2508603A (en) * 2012-12-04 2014-06-11 Ibm Optimizing the order of execution of multiple join operations
US9274926B2 (en) 2013-01-03 2016-03-01 Ab Initio Technology Llc Configurable testing of computer programs
US9063944B2 (en) 2013-02-21 2015-06-23 International Business Machines Corporation Match window size for matching multi-level transactions between log files
US9317499B2 (en) * 2013-04-11 2016-04-19 International Business Machines Corporation Optimizing generation of a regular expression
US9146946B2 (en) * 2013-05-09 2015-09-29 International Business Machines Corporation Comparing database performance without benchmark workloads
CN104182383B (zh) * 2013-05-27 2019-01-01 腾讯科技(深圳)有限公司 一种文字统计方法及设备
US20140350919A1 (en) * 2013-05-27 2014-11-27 Tencent Technology (Shenzhen) Company Limited Method and apparatus for word counting
US20150046152A1 (en) * 2013-08-08 2015-02-12 Quryon, Inc. Determining concept blocks based on context
US10043182B1 (en) * 2013-10-22 2018-08-07 Ondot System, Inc. System and method for using cardholder context and preferences in transaction authorization
AU2014360308B2 (en) 2013-12-05 2018-11-29 Ab Initio Technology Llc Managing interfaces for dataflow graphs composed of sub-graphs
US10521441B2 (en) * 2014-01-02 2019-12-31 The George Washington University System and method for approximate searching very large data
MY173084A (en) * 2014-05-23 2019-12-25 Mimos Berhad Adaptive-window edit distance algorithm computation
US9589074B2 (en) 2014-08-20 2017-03-07 Oracle International Corporation Multidimensional spatial searching for identifying duplicate crash dumps
WO2016048295A1 (en) * 2014-09-24 2016-03-31 Hewlett Packard Enterprise Development Lp Assigning a document to partial membership in communities
US9805099B2 (en) * 2014-10-30 2017-10-31 The Johns Hopkins University Apparatus and method for efficient identification of code similarity
US9679024B2 (en) * 2014-12-01 2017-06-13 Facebook, Inc. Social-based spelling correction for online social networks
JP2015062146A (ja) * 2015-01-05 2015-04-02 富士通株式会社 情報生成プログラム、情報生成装置、および情報生成方法
US9646061B2 (en) 2015-01-22 2017-05-09 International Business Machines Corporation Distributed fuzzy search and join with edit distance guarantees
US9904672B2 (en) 2015-06-30 2018-02-27 Facebook, Inc. Machine-translation based corrections
US20170004120A1 (en) * 2015-06-30 2017-01-05 Facebook, Inc. Corrections for natural language processing
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
US10140200B2 (en) * 2015-10-15 2018-11-27 King.Dom Ltd. Data analysis
IL242218B (en) * 2015-10-22 2020-11-30 Verint Systems Ltd A system and method for maintaining a dynamic dictionary
CN105446957B (zh) 2015-12-03 2018-07-20 小米科技有限责任公司 相似性确定方法、装置及终端
US10671669B2 (en) 2015-12-21 2020-06-02 Ab Initio Technology Llc Sub-graph interface generation
WO2017197402A2 (en) * 2016-05-13 2017-11-16 Maana, Inc. Machine-assisted object matching
US11176180B1 (en) * 2016-08-09 2021-11-16 American Express Travel Related Services Company, Inc. Systems and methods for address matching
US10228955B2 (en) * 2016-09-29 2019-03-12 International Business Machines Corporation Running an application within an application execution environment and preparation of an application for the same
US10402489B2 (en) 2016-12-21 2019-09-03 Facebook, Inc. Transliteration of text entry across scripts
US10394960B2 (en) 2016-12-21 2019-08-27 Facebook, Inc. Transliteration decoding using a tree structure
US10810380B2 (en) 2016-12-21 2020-10-20 Facebook, Inc. Transliteration using machine translation pipeline
US10546062B2 (en) * 2017-11-15 2020-01-28 International Business Machines Corporation Phonetic patterns for fuzzy matching in natural language processing
US11294943B2 (en) 2017-12-08 2022-04-05 International Business Machines Corporation Distributed match and association of entity key-value attribute pairs
US11163952B2 (en) * 2018-07-11 2021-11-02 International Business Machines Corporation Linked data seeded multi-lingual lexicon extraction
US11693860B2 (en) 2019-01-31 2023-07-04 Optumsoft, Inc. Approximate matching
US11269905B2 (en) * 2019-06-20 2022-03-08 International Business Machines Corporation Interaction between visualizations and other data controls in an information system by matching attributes in different datasets
US12008141B2 (en) * 2020-03-31 2024-06-11 Intuit Inc. Privacy preserving synthetic string generation using recurrent neural networks
CN112084771B (zh) * 2020-07-22 2024-06-18 浙江工业大学 一种基于地址的单字权重统计方法
US11886794B2 (en) * 2020-10-23 2024-01-30 Saudi Arabian Oil Company Text scrambling/descrambling
US11556593B1 (en) 2021-07-14 2023-01-17 International Business Machines Corporation String similarity determination
US11615243B1 (en) * 2022-05-27 2023-03-28 Intuit Inc. Fuzzy string alignment

Family Cites Families (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02129756A (ja) 1988-11-10 1990-05-17 Nippon Telegr & Teleph Corp <Ntt> 単語照合装置
US5179643A (en) 1988-12-23 1993-01-12 Hitachi, Ltd. Method of multi-dimensional analysis and display for a large volume of record information items and a system therefor
US5388259A (en) 1992-05-15 1995-02-07 Bell Communications Research, Inc. System for accessing a database with an iterated fuzzy query notified by retrieval response
JPH0644309A (ja) 1992-07-01 1994-02-18 Nec Corp データベース管理方式
JPH0944518A (ja) 1995-08-02 1997-02-14 Adoin Kenkyusho:Kk 画像データベースの構築方法と、画像データベースの検索方法及び検索装置
US5832182A (en) 1996-04-24 1998-11-03 Wisconsin Alumni Research Foundation Method and system for data clustering for very large databases
JPH10275159A (ja) 1997-03-31 1998-10-13 Nippon Telegr & Teleph Corp <Ntt> 情報検索方法及び装置
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 同一人判定システムおよび方法
US6581058B1 (en) 1998-05-22 2003-06-17 Microsoft Corporation Scalable system for clustering of large databases having mixed data attributes
US6285995B1 (en) 1998-06-22 2001-09-04 U.S. Philips Corporation Image retrieval system using a query image
US6742003B2 (en) 2001-04-30 2004-05-25 Microsoft Corporation Apparatus and accompanying methods for visualizing clusters of data and hierarchical cluster classifications
JP2000029899A (ja) 1998-07-14 2000-01-28 Hitachi Software Eng Co Ltd 建物と地図とのマッチング方法および記録媒体
US6493709B1 (en) * 1998-07-31 2002-12-10 The Regents Of The University Of California Method and apparatus for digitally shredding similar documents within large document sets in a data processing environment
US6658626B1 (en) * 1998-07-31 2003-12-02 The Regents Of The University Of California User interface for displaying document comparison information
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
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 文字列比較方法および文字列比較を用いた情報検索装置
US7328211B2 (en) * 2000-09-21 2008-02-05 Jpmorgan Chase Bank, N.A. System and methods for improved linguistic pattern matching
DE10048478C2 (de) * 2000-09-29 2003-05-28 Siemens Ag Verfahren zum Zugriff auf eine Speichereinheit bei der Suche nach Teilzeichenfolgen
US6931390B1 (en) 2001-02-27 2005-08-16 Oracle International Corporation Method and mechanism for database partitioning
JP3605052B2 (ja) 2001-06-20 2004-12-22 本田技研工業株式会社 あいまい検索機能を備える図面管理システム
US20030033138A1 (en) 2001-07-26 2003-02-13 Srinivas Bangalore Method for partitioning a data set into frequency vectors for clustering
US7043647B2 (en) 2001-09-28 2006-05-09 Hewlett-Packard Development Company, L.P. Intelligent power management for a rack of servers
US6570511B1 (en) * 2001-10-15 2003-05-27 Unisys Corporation Data compression method and apparatus implemented with limited length character tables and compact string code utilization
US7213025B2 (en) 2001-10-16 2007-05-01 Ncr Corporation Partitioned database system
US20030120630A1 (en) 2001-12-20 2003-06-26 Daniel Tunkelang Method and system for similarity search and clustering
AU2003210795A1 (en) 2002-02-01 2003-09-02 John Fairweather System and method for analyzing data
CA2475267C (en) 2002-02-04 2014-08-05 Cataphora, Inc. A method and apparatus for sociological data mining
WO2003107321A1 (en) * 2002-06-12 2003-12-24 Jena Jordahl Data storage, retrieval, manipulation and display tools enabling multiple hierarchical points of view
US6961721B2 (en) 2002-06-28 2005-11-01 Microsoft Corporation Detecting duplicate records in database
US20050226511A1 (en) 2002-08-26 2005-10-13 Short Gordon K Apparatus and method for organizing and presenting content
US7043476B2 (en) * 2002-10-11 2006-05-09 International Business Machines Corporation Method and apparatus for data mining to discover associations and covariances associated with data
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
US7287019B2 (en) 2003-06-04 2007-10-23 Microsoft Corporation Duplicate data elimination system
US20050120011A1 (en) * 2003-11-26 2005-06-02 Word Data Corp. Code, method, and system for manipulating texts
US7526464B2 (en) 2003-11-28 2009-04-28 Manyworlds, Inc. Adaptive fuzzy network system and method
US7283999B1 (en) * 2003-12-19 2007-10-16 Ncr Corp. Similarity string filtering
US7472113B1 (en) 2004-01-26 2008-12-30 Microsoft Corporation Query preprocessing and pipelining
GB0413743D0 (en) * 2004-06-19 2004-07-21 Ibm Method and system for approximate string matching
US7917480B2 (en) 2004-08-13 2011-03-29 Google Inc. Document compression system and method for use with tokenspace repository
US8407239B2 (en) 2004-08-13 2013-03-26 Google Inc. Multi-stage query processing system and method for use with tokenspace repository
US20080040342A1 (en) 2004-09-07 2008-02-14 Hust Robert M Data processing apparatus and methods
US8725705B2 (en) * 2004-09-15 2014-05-13 International Business Machines Corporation Systems and methods for searching of storage data with reduced bandwidth requirements
US7523098B2 (en) * 2004-09-15 2009-04-21 International Business Machines Corporation Systems and methods for efficient data searching, storage and reduction
US7290084B2 (en) * 2004-11-02 2007-10-30 Integrated Device Technology, Inc. Fast collision detection for a hashed content addressable memory (CAM) using a random access memory
US8224830B2 (en) * 2005-03-19 2012-07-17 Activeprime, Inc. Systems and methods for manipulation of inexact semi-structured data
US9110985B2 (en) 2005-05-10 2015-08-18 Neetseer, Inc. Generating a conceptual association graph from large-scale loosely-grouped content
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
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
US7739247B2 (en) 2006-12-28 2010-06-15 Ebay Inc. Multi-pass data organization and automatic naming
WO2008083504A1 (en) 2007-01-10 2008-07-17 Nick Koudas Method and system for information discovery and text analysis
US8694472B2 (en) 2007-03-14 2014-04-08 Ca, Inc. System and method for rebuilding indices for partitioned databases
US7711747B2 (en) 2007-04-06 2010-05-04 Xerox Corporation Interactive cleaning for automatic document clustering and categorization
WO2008146456A1 (ja) 2007-05-28 2008-12-04 Panasonic Corporation 情報探索支援方法および情報探索支援装置
US7769778B2 (en) * 2007-06-29 2010-08-03 United States Postal Service Systems and methods for validating an address
US7788276B2 (en) 2007-08-22 2010-08-31 Yahoo! Inc. Predictive stemming for web search with statistical machine translation models
US7925652B2 (en) * 2007-12-31 2011-04-12 Mastercard International Incorporated Methods and systems for implementing approximate string matching within a database
US8775441B2 (en) 2008-01-16 2014-07-08 Ab Initio Technology Llc Managing an archive for approximate string matching
US8032546B2 (en) 2008-02-15 2011-10-04 Microsoft Corp. Transformation-based framework for record matching
US8266168B2 (en) 2008-04-24 2012-09-11 Lexisnexis Risk & Information Analytics Group Inc. Database systems and methods for linking records and entity representations with sufficiently high confidence
US7958125B2 (en) 2008-06-26 2011-06-07 Microsoft Corporation Clustering aggregator for RSS feeds
US20120191973A1 (en) 2008-09-10 2012-07-26 National Ict Australia Limited Online presence of users
US8150169B2 (en) 2008-09-16 2012-04-03 Viewdle Inc. System and method for object clustering and identification in video
CN103810527B (zh) 2008-10-23 2017-08-08 起元技术有限责任公司 数据操作执行、数据质量度量和数据元素联接方法和系统
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
US8195626B1 (en) 2009-06-18 2012-06-05 Amazon Technologies, Inc. Compressing token-based files for transfer and reconstruction
US8285681B2 (en) 2009-06-30 2012-10-09 Commvault Systems, Inc. Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites
US8515957B2 (en) 2009-07-28 2013-08-20 Fti Consulting, Inc. System and method for displaying relationships between electronically stored information to provide classification suggestions via injection
US8429179B1 (en) 2009-12-16 2013-04-23 Board Of Regents, The University Of Texas System Method and system for ontology driven data collection and processing
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
US9361355B2 (en) 2011-11-15 2016-06-07 Ab Initio Technology Llc Data clustering based on candidate queries

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240025272A (ko) 2022-08-18 2024-02-27 한국전력공사 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템 및 방법

Also Published As

Publication number Publication date
EP2235621A1 (en) 2010-10-06
AU2008348066A1 (en) 2009-07-23
CA2710882C (en) 2017-01-17
US20150066862A1 (en) 2015-03-05
CA2710882A1 (en) 2009-07-23
KR20100116595A (ko) 2010-11-01
CN101978348B (zh) 2015-11-25
JP5603250B2 (ja) 2014-10-08
AU2008348066B2 (en) 2015-03-26
US20090182728A1 (en) 2009-07-16
WO2009091494A1 (en) 2009-07-23
EP2235621A4 (en) 2012-08-29
US8775441B2 (en) 2014-07-08
CN105373365A (zh) 2016-03-02
CN101978348A (zh) 2011-02-16
CN105373365B (zh) 2019-02-05
US9563721B2 (en) 2017-02-07
JP2011511341A (ja) 2011-04-07

Similar Documents

Publication Publication Date Title
KR101564385B1 (ko) 근사 문자열 매칭을 위한 아카이브를 관리하는 방법 및 시스템
Boytsov Indexing methods for approximate dictionary searching: Comparative analysis
US6470347B1 (en) Method, system, program, and data structure for a dense array storing character strings
Shang et al. Tries for approximate string matching
US20040107205A1 (en) Boolean rule-based system for clustering similar records
Galvez et al. Approximate personal name‐matching through finite‐state graphs
US20130132410A1 (en) Systems And Methods For Identifying Potential Duplicate Entries In A Database
Branting A comparative evaluation of name-matching algorithms
Zhou et al. Implementing Boolean matching rules in an entity resolution system using XML scripts
Berghel A logical framework for the correction of spelling errors in electronic documents
Talburt et al. A practical guide to entity resolution with OYSTER
CN113032371A (zh) 数据库语法分析方法、装置和计算机设备
Topac Efficient fuzzy search enabled hash map
Wen et al. : An efficient entity extraction algorithm using two-level edit-distance
Martin et al. Incremental evolution of fuzzy grammar fragments to enhance instance matching and text mining
JPH06282587A (ja) 文書の自動分類方法及び装置並びに分類用の辞書作成方法及び装置
Luján-Mora et al. Reducing inconsistency in integrating data from different sources
AU2015202043B2 (en) Managing an archive for approximate string matching
Kumar et al. Probabilistic management of OCR data using an RDBMS
Porwal et al. A comparative analysis of data cleaning approaches to dirty data
AT&T dbs-010.dvi
Luján-Mora et al. Comparing string similarity measures for reducing inconsistency in integrating data from different sources
Luján-Mora et al. Reducing inconsistency in data warehouses
Daggupati Unsupervised duplicate detection (UDD) Of query results from multiple web databases
Wen et al. A technical report: entity extraction using both character-based and token-based similarity

Legal Events

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

Payment date: 20181012

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20191010

Year of fee payment: 5