KR20100123684A - 데이터베이스 내에 근사 스트링 매칭을 구현하기 위한 방법 및 시스템 - Google Patents

데이터베이스 내에 근사 스트링 매칭을 구현하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20100123684A
KR20100123684A KR1020107017218A KR20107017218A KR20100123684A KR 20100123684 A KR20100123684 A KR 20100123684A KR 1020107017218 A KR1020107017218 A KR 1020107017218A KR 20107017218 A KR20107017218 A KR 20107017218A KR 20100123684 A KR20100123684 A KR 20100123684A
Authority
KR
South Korea
Prior art keywords
character string
reference character
computer
similarity
gram
Prior art date
Application number
KR1020107017218A
Other languages
English (en)
Other versions
KR101462707B1 (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 KR20100123684A publication Critical patent/KR20100123684A/ko
Application granted granted Critical
Publication of KR101462707B1 publication Critical patent/KR101462707B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • 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/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • 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/31Indexing; Data structures therefor; Storage structures
    • 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

Abstract

데이터베이스 내에 저장되는 복수의 문자 스트링 레코드를 갖는 후보 문자 스트링의 문자 스트링 매칭을 실행하기 위한 컴퓨터 기반 방법이 기술된다. 상기 방법은 a) 상기 데이터베이스 내에서 참조 문자 스트링 세트를 식별하는 단계 - 상기 참조 문자 스트링 세트는 비유사한 문자 스트링 세트에 대한 최적화 검색을 활용하여 식별됨 - , b) 상기 참조 문자 스트링 세트에서 상기 참조 문자 스트링들 중 하나에 대한 n-그램 표현을 생성하는 단계, c) 상기 후보 문자 스트링에 대한 n-그램 표현을 생성하는 단계, d) 상기 n-그램 표현들 간의 유사성을 결정하는 단계, e) 식별된 상기 참조 문자 스트링 세트에 남아있는 참조 문자 스트링에 대하여 단계 b) 및 단계 d)를 반복하는 단계, 및 f) 상기 식별된 세트 내의 상기 후보 문자 스트링의 상기 n-그램 표현과 상기 참조 문자 스트링의 상기 n-그램 표현 간의 상기 결정된 유사성에 기초하여 상기 데이터베이스 내에서 상기 후보 문자 스트링을 인덱싱하는 단계를 포함하는 컴퓨터 기반 방법을 포함한다.

Description

데이터베이스 내에 근사 스트링 매칭을 구현하기 위한 방법 및 시스템{METHODS AND SYSTEMS FOR IMPLEMENTING APPROXIMATE STRING MATCHING WITHIN A DATABASE}
본 발명은 일반적으로 가맹점 예측 시스템에 관한 것으로, 보다 구체적으로는 은행카드 네트워크 내에 포함되는 데이터베이스 레코드를 합치는 것에 관하여 데이터베이스 내에 근사 스트링 매칭을 구현하기 위한 방법 및 시스템에 관한 것이다.
역사적으로, 소비자 거래 지불을 위한 "신용(charge)" 카드의 사용은 기껏해야 지역색이 강했고, 지역 신용 발행 은행과 다양한 현지 가맹점들 간의 관계에 기초하였다. 지불 카드 산업은 가맹점과 카드 발행사들의 대출 관계(banking relationship)에 관계없이, 카드 소지자가 임의의 가맹점 시설에서 신용 카드를 널리 사용할 수 있게 하기 위해 (예를 들면, 마스터카드와 같은) 연합을 형성한 발행 은행들 및 {예를 들면, "가맹점 매입사(Merchant Acquirers)"와 같은} 관련 제3자 거래 처리 회사와 함께 진화해왔다.
예를 들면, 본 출원의 도 1은 카드에 의한 지불 거래를 가능하게 하기 위한 예시적인 다자간(multi-party) 지불 카드 산업 시스템을 도시한다. 도시한 바와 같이, 가맹점 및 발행사는 1 대 1 관계를 가져야 할 필요는 없다. 그러나, 오늘날 카드에 의한 지불 산업에는 다양한 시나리오가 존재하고, 여기서 카드 발행사는 특정 가맹점 또는 가맹점들의 그룹과 특별한 관계 또는 맞춤화된 관계를 갖는다.
2500만 개가 넘는 가맹점들이 지불 카드 형태를 받아들인다. 그 연합들 중 하나는 수천개의 가맹점에 대한 이름 및 주소 정보 및 가맹점 위치를, 본 명세서에서 데이터 저장소(data warehouse)라고 지칭되는 곳에 수용한다. 가맹점 위치 레벨에서, 이러한 데이터 저장소에는 수백만 개의 엔트리가 존재한다. 많은 위치 엔트리는 거래 데이터의 이름 및/또는 주소 정보의 변이(fluctuations) 때문에 동일본들(duplicates)이 존재한다고 알려져 있다. 예를 들면, 동일한 거리 주소가 다양한 방법으로 작성될 수 있고, 모든 방법은 유효하다(예를 들어, 400 South Fourth Street, 400 S. Fourth St., 400 South 4th Street 등). 이름은 또한 때때로 수많은 방법으로 표현될 수 있고, 모든 것들이 유효하다. 현재 데이터베이스 기술은 그 능력이 이름과 주소 같은 유사한 필드 값을 갖는 엔트리들을 식별하기에 매우 제한되어 있다. 그러므로, 많은 동일본에 가까운 가맹점 이름 및 가맹점 위치가 데이터 저장소에 저장된다.
연합에 대해 일반적으로 프로세싱하는 날에, 이미 데이터 저장소 내에 대략 500만 개의 위치 엔트리에 대한 매칭에 대해 검사될 필요가 있는 약 15,000개의 후보 위치(예를 들면, 새로운 가맹점 위치)가 존재한다. 매칭에 대한 검사는 적어도 두 가지 목적을 달성하는데 기여한다. 하나는, 유사한 이름 및/또는 주소를 갖는 위치가 여러 개의 개체가 아닌 하나의 개체로 식별될 수 있는 것이다. 다른 하나는, 만약 이름 또는 주소가 매우 상이한 경우, 연합은 개체가 이사를 했는지 또는 하나의 개체가 영엽을 중단하고 또 다른 개체로 대체되었는지 여부를 결정할 수 있는 것이다.
이러한 이름 및 위치 매칭 문제는 여러 다른 문맥에서 또한 접해졌고, 여기서 제3자는 데이터 저장소를 유지하는 연합에게 거래 파일 및 데이터 저장소를 강화하고/강화하거나 인증하는데(validate) 사용되는 가맹점 이름 및 주소의 리스트를 제공한다. 또 다른 제3자의 예에서, 규모가 큰 전국적인 소매점에 대한 모든 위치 리스트가 수신될 수 있거나, 체인점 이름 및 주소의 리스트가 수신될 수 있다. 데이터 저장소를 유지하는 책임이 있는 팀은 소매점 또는 체인에 대해 알려진 위치와 대비를 이루어 수신되는 리스트를 매칭시키는 데 책임이 있다.
기존의 위치와 새로운 위치 간의 매칭에 대해 검사하는 한 방법은 스트링 매칭 알고리즘을 통해서 가능하다. 그러므로, 스트링 매칭을 위해 활용될 수 있는 임의의 솔루션은 데이터베이스(데이터 저장소) 시스템의 기반 내에서 가변되어야한다(scalable). 제3자 솔루션은 근사 스트링 매칭(approximate string matching)에 대해 존재한다. 하지만, 세 가지 솔루션은 전형적으로, 솔루션의 비용이 너무 높거나(cost prohibitive), 특정 분야 또는 특정 툴이거나, 솔루션이 데이터베이스(데이터 저장소) 시스템의 외부라는 점을 포함하는 하나 이상의 결점을 갖는다.
그러므로, 데이터 저장소 팀이 데이터베이스 시스템 내에서 가변적인 방법(scalable manner)으로 가맹점 레코드를 매칭시키기 위해 근사 이름 및 주소 매칭(approximate name and address matching)을 수행하게 하는 기술을 발전시키려는 이전의 달성하지 못했던 목표가 존재한다. 원하는 결과는, 예를 들면 미래의 금융 카드 거래를 예측하고 데이터로부터 만들어지는 상관관계가 있는지 여부를 결정하기 위해 역사적인 거래 데이터를 활용하여 다른 다운스트림 애플리케이션을 지원할 수 있는 집약적이고 정확한 데이터 저장소가 될 것이다.
일 특징에서, 데이터베이스 내에 저장되는 복수의 문자 스트링 레코드를 갖는 후보 문자 스트링의 문자 스트링 매칭을 실행하기 위한 컴퓨터 기반 방법이 제공된다. 상기 방법은 a) 상기 데이터베이스 내에서 참조 문자 스트링의 세트를 식별하는 단계 - 상기 참조 문자 스트링 세트는 비유사한 문자 스트링 세트에 대한 최적화 검색을 활용하여 식별됨 - , b) 상기 참조 문자 스트링의 세트에서 상기 참조 문자 스트링들 중 하나에 대한 n-그램 표현을 생성하는 단계, c) 상기 후보 문자 스트링에 대한 n-그램 표현을 생성하는 단계, d) 상기 n-그램 표현들 간의 유사성을 결정하는 단계, e) 상기 식별된 참조 문자 스트링의 세트에 남아있는 참조 문자 스트링에 대하여 단계 b) 및 단계 d)를 반복하는 단계, 및 f) 상기 식별된 세트 내의 상기 후보 문자 스트링의 상기 n-그램 표현과 상기 참조 문자 스트링의 상기 n-그램 표현 간의 상기 결정된 유사성에 기초하여 상기 데이터베이스 내에서 상기 후보 문자 스트링을 인덱싱하는 단계를 포함한다.
또 다른 특징에서, 데이터베이스 내에서 비유사한 참조 문자 스트링의 세트를 식별하기 위해 최적화 검색을 활용하고, 후보 문자 스트링에 대한 n-그램 표현을 생성하고, 상기 세트 내의 상기 비유사한 참조 문자 스트링 각각에 대한 n-그램 표현을 생성하고, 상기 후보 문자 스트링의 상기 n-그램 표현과 상기 비유사한 참조 문자 스트링의 세트의 각각의 n-그램 표현 간의 유사성을 결정하고, 상기 n-그램 표현에서 결정되는 상기 유사성에 기초하여 상기 데이터베이스 내에서 상기 후보 문자 스트링을 인덱싱하도록 프로그램되는 컴퓨터가 제공된다.
또 다른 특징에서, 데이터베이스 내에서 참조 문자 스트링의 세트에 대한 후보 문자 스트링의 근사 매칭을 실행하기 위한 컴퓨터 기반 방법이 제공된다. 상기 방법은 상기 후보 문자 스트링의 n-그램 표현을 상기 참조 문자 스트링의 세트 내의 각각의 참조 문자 스트링의 n-그램 표현과 개별적으로 비교하는 단계, 및 상기 후보 문자 스트링과 연관되는 2진 인덱스 값을 생성하는 단계 - 상기 2진 인덱스 값은 상기 후보 문자 스트링과 각각의 상기 참조 문자 스트링 간의 유사성을 나타냄 - 를 포함한다.
도 1은 일반적인 카드에 의한 지불 거래를 가능하게 하기 위한 예시적인 다자간 지불 카드 산업 시스템을 도시하는 도식적인 도면.
도 2는 본 발명의 일 실시예에 따른 시스템의 서버 아키텍처의 예시적인 실시예의 단순화된 블록도.
도 3은 본 발명의 일 실시예에 따른 시스템의 서버 아키텍처의 예시적인 실시예의 확장된 블록도.
도 4는 앙상블 종합 가맹점 예측 시스템(ensemble aggregate merchant prediction system)을 위한 고레벨 구성요소를 도시하는 흐름도.
도 5는 앙상블 종합 가맹점 예측 시스템과 연관된 스코어링 엔진(scoring engine)의 동작을 도시하는 흐름도.
도 6은 가맹점 위치를 분류하는 알고리즘으로 입력되는 데이터를 도시하는 흐름도(250).
도 7은 가맹점 위치를 분류하는 알고리즘을 도시하는 흐름도.
도 8은 가맹점 집단 및 세트를 분류 시스템 내의 문서들로 도시하는 도면.
도 9는 데이터 베이스 내의 참조 문자 스트링, 또는 주성분 세트의 결정을 도시하는 흐름도.
도 10은 후보 문자 스트링에 대한 유사성 척도(similarity metric)를 결정하는 참조 스트링 세트의 활용을 도시하는 흐름도.
본 명세서에 기술된 실시예는 전체 데이터베이스 상에서 유사성 척도를 계산할 필요 없는 데이터베이스 내에서의 근사 스트링 매칭에 대한 효율적인 방법에 관한 것이다. 예를 들면 내용에서 무엇인가가 다른 수신된 위치 데이터의 근사 스트링 매칭을 통하여, 위치에서의 매칭이 결정될 수 있다. 효율은 매칭되는 필드에 대한 스트링의 공간을 확장하는 참조 스트링 세트에 대하여 각각의 스트링의 상대적인 포지션(매칭 정도)을 캡처링하는 2진 인덱스를 생성함으로써 달성된다. 본 명세서에서는 근사 스트링 매칭 기술이 금융 거래 카드 시스템의 동작에 연관된 가맹점 이름 및 위치의 맥락에서 기술되는 반면, 근사 스트링 매칭 기술은 가맹점 이름 및 주소 정보의 문자 스트링을 매칭하는 것 대신 정보 검색(information retrieval)과 같은 더 일반적인 작업에 적용가능하다는 것을 아는 것이 중요하다. 하나의 예는 컴퓨터 시스템 내에서 문서의 매칭에 대한 기술을 활용하는 것이다.
본 명세서에 기술된 시스템 및 프로세스의 기술적 효과는 (a) 가변가능한 방법으로 가맹점 레코드를 매칭하기 위해 근사 이름 및 주소 매칭을 수행하기 위한 기술, (b) 각각의 복수의 참조 문자 스트링에 대한 후보 문자 스트링의 유사성 척도의 결정을 허용하기 위한 기술, (c) 매칭될 필드에 대한 데이터베이스 내에서 스트링의 공간을 확장하는 참조 문자 스트링 세트에 대한 각각의 후보 문자 스트링의 상대적인 포지션을 캡처링하는 2진 인덱스를 생성하기 위한 기술, 및 (d) 전체 데이터베이스의 레코드에 대한 유사성 척도를 계산할 필요 없이 후보 문자 스트링과 복수의 문자 스트링 레코드를 포함하는 데이터베이스 간의 근사 스트링 매칭을 검색하기 위한 기술 중 적어도 하나를 포함한다.
일 실시예에서, 컴퓨터 프로그램이 제공되고, 그 프로그램은 컴퓨터 판독 가능 매체에서 구체화되며, 관리를 위한 클라이언트 사용자 인터페이스 프론트-엔드 및 표준 사용자 입력과 보고를 위한 웹 인터페이스와 함께 구조화 질의어(Structured Query Language; SQL)를 활용한다. 예시적인 실시예에서, 시스템은 인에이블된(enabled) 웹이고 비지니스-개체 인트라넷에서 실행된다. 또 다른 실시예에서, 시스템은 인터넷을 통해 비지니스-개체의 방화벽 외부의 인증된 엑세스를 갖는 개인들에 의해 완전히 액세스된다. 추가 예시적인 실시예에서, 시스템은 윈도우즈® 환경에서 실행되고 있다(윈도우즈는 워싱턴 레드몬드에 위치한 마이크로소프트 코포레이션의 등록된 상표임). 이 출원은 융통성 있고 임의의 주요 기능을 절충하지 않고도 다양한 서로 다른 환경에서 실행되도록 설계된다.
시스템 및 프로세스는 본 명세서에 기술된 특정 실시예에 한정되는 것은 아니다. 또한, 각각의 시스템 및 각각의 프로세스의 구성요소는 본 명세서에 기술된 다른 구성요소 및 프로세스로부터 독립적이면서 개별적으로 실행될 수 있다. 각각의 구성요소 및 프로세스는 또한 다른 조립 패키지 및 프로세스와의 조합에 사용될 수 있다.
기술적 배경을 거쳐, 도 1은, 역사적으로 거래가 앙상블 종합 가맹점 예측 시스템의 적어도 일부분으로 활용되는 일반적인 카드에 의한 지불 거래를 가능하게 하기 위한 예시적인 다자간 지불 카드 산업 시스템을 도시하는 도식적 도면(20)이다. 본 명세서에서 활용된 바와 같이, 종합 가맹점(aggregate merchant)이란 가맹점 위치의 고레벨 그룹을 지칭한다. 보다 구체적으로는, 소매상에 대한 다양한 각각의 가맹점 위치는 종합 가맹점을 형성하기 위해 (예를 들면, 데이터베이스에서 서로 링크되는 것과 같이) 함께 집단화된다. 그러므로 하나의 가맹점 위치는 종합 가맹점의 구성요소이다. 일반적으로, 종합 가맹점은 상점 체인을 지칭할 때 활용되며, 본 명세서에서 더 기술되는 바와 같이, 위치는 거래 데이터의 데이터베이스에 저장된 다수의 필드 값에 기초하여 함께 집단화된다.
본 발명은 마스터카드® 인터체인지를 사용하는 신용 카드 지불 시스템과 같은 지불 카드 시스템에 관한 것이다. 마스터카드® 인터체인지는 마스터카드 인터내셔널 인코포레이티드®의 멤버인 금융 기관들 간의 금융 거래 데이터의 교환을 위해 마스터카드 인터네셔널 인코포레이티드®에 의해 공포된 등록된 통신 표준(proprietary communications standard)이다(마스터카드는 뉴욕 퍼처스에 위치한 마스터카드 인터내셔널 인코포레이티드®의 등록 상표이다).
일반적인 지급 카드 시스템에서, "발행사"로 불리는 금융 기관은 신용 카드와 같은 지불 카드를 소비자에게 발행하고, 소비자는 가맹점으로부터 구입하기 위해 지불을 제공하는 지불 카드를 사용한다. 지불 카드로의 지불을 받아들이기 위해, 가맹점은 보통 금융 지불 시스템의 일부인 금융 기관에 계좌를 개설해야 한다. 금융 기관은 종종 "종합금융회사(merchant bank)" 또는 "승인 은행(acquiring bank)" 또는 "매입사(acquirer bank)"로 불린다. 소비자(22)가 구입을 위해 지불 카드(또한 금융 거래 카드로 알려짐)로 지불을 제공할 때, 가맹점(24)은 구입한 양에 대하여 종합금융회사(26)로부터의 승인을 요청한다. 요청은 전화를 통해 수행될 수 있지만, 보통 판매시점관리(point-of-sale) 단말기의 사용을 통해 수용되고, 판매시점관리 단말기는 지불 카드의 마그네틱 선으로부터 소비자의 계좌 정보를 판독하고 종합금융회사의 거래 처리 컴퓨터와 전자적으로 통신한다. 이와 달리, 종합금융회사는 제3자가 대신 거래 처리를 수행하도록 승인할 수 있다. 이 경우, 판매시점관리 단말기는 제3자와 통신하도록 구성될 것이다. 그러한 제3자는 보통 "가맹점 프로세서(merchant processor)" 또는 "승인 프로세서"로 불린다.
인터체인지(28)를 사용하여, 종합금융회사의 컴퓨터 또는 가맹점 프로세서는 소비자의 계좌가 양호한 상태인지 여부 및 소비자의 이용가능한 신용 한도로 구입이 커버되는지 여부를 결정하기 위해 발행사 은행(30)의 컴퓨터와 통신할 것이다. 이러한 결정들에 기초하여, 인증 요청은 거부되거나 수용될 것이다. 요청이 수용되는 경우, 인증 코드가 가맹점으로 발행된다.
인증 요청이 수용될 때, 소비자의 계좌(32)의 이용가능한 신용 한도가 감소된다. 일반적으로, 비용은, 마스터카드 인터내셔널 인코포레이티드®와 같은 은행카드 연합이 가맹점으로 하여금 물건이 배송되거나 서비스가 배달되기 전까지 거래를 청구하거나 "저장하지(capture)" 못하게 하는 규칙을 공포하였기 때문에 소비자의 계좌로 즉시 포스팅되지 않는다. 가맹점이 물건 또는 서비스를 배송하거나 배달한 때, 가맹점은, 예를 들면 적절한 데이터가 판매시점관리 단말기 상의 절차에 들어감으로써 거래를 저장한다(captures). 만약 소비자가 저장되기 전에 거래를 취소한다면, "보이드(void)"가 발생된다. 만약 소비자가 거래가 저장된 후 물건을 반품한다면, "신용(credit)"이 발생된다.
거래가 저장된 후, 거래가 가맹점, 종합금융회사, 및 발행사 간에 정산된다(settled). 정산은 거래와 관련된 가맹점의 계좌, 종합금융회사, 및 발행사 간의 금융 데이터 또는 자금의 전달을 지칭한다. 보통, 거래는 "배치(batch)"로 저장되고 축적되며, "배치(batch)"는 그룹으로 정산된다. 본 명세서에서 더 기술되는 바와 같은 그러한 거래와 연관된 데이터는 미래의 구입 행위를 예측하는 기술 분야에서 활용된다.
금융 거래 카드 또는 지불 카드는 신용 카드, 직불 카드, 및 선불 카드를 지칭할 수 있다. 이러한 카드는 모두 거래를 수행하기 위한 지불 방법으로 사용될 수 있다. 본 명세서에 기술된 바와 같이, "금용 거래 카드" 또는 "지불 카드"라는 용어는 신용 카드, 직불 카드, 및 선불 카드와 같은 카드를 포함할 뿐만 아니라, 모바일 폰, 개인 휴대 정보 단말기(PDA), 및 키 포브(key fobs)와 같은 지불 계좌 정보를 보유할 수 있는 임의의 기타 장치를 또한 포함한다.
도 2는 본 발명의 일 실시예에 따른 예시적인 시스템(100)의 단순화된 블록도이다. 일 실시예에서, 시스템(100)은, 예를 들면 거래와 연관된 역사적인 데이터를 프로세싱하는 동안, 맞춤화된 발행사-가맹점 관계를 또한 구현하기 위해 사용되는 지불 카드 시스템이다. 또 다른 실시예에서, 시스템(100)은 지불 거래에 적용될 프로세싱 코드를 입력하기 위해 예금주들이 활용할 수 있는 지불 카드 시스템이다.
보다 구체적으로는, 예시적인 실시예에서, 시스템(100)은 서버 시스템(112)및 서버 시스템(112)과 연결된 복수의 클라이언트 서브-시스템을 포함하며, 복수의 클라이언트 서브-시스템은 또한 클라이언트 시스템(114)으로 지칭된다. 일 실시예에서, 클라이언트 시스템(114)은 웹 브라우저를 포함하는 컴퓨터이고, 서버 시스템(112)은 인터넷을 이용하여 클라이언트 시스템(114)에 엑세스 가능하다. 클라이언트 시스템(114)은 근거리 통신망(LAN) 또는 광역 통신망(WAN), 전화 접속 연결(dial-in-connections), 케이블 모뎀, 및 특별 고스피드 ISDN 회선과 같은 네트워크를 포함하는 많은 인터페이스를 통해 인터넷에 상호연결된다. 클라이언트 시스템(114)은 웹 기반 전화기, 개인 휴대 정보 단말기(PDA), 또는 기타 웹 기반 연결가능 장비를 포함하는, 인터넷과 상호연결할 수 있는 임의의 장치일 수 있다. 아래에서 더 자세히 설명되는 바와 같이, 데이터베이스 서버(116)는 다양한 것들에 관한 정보를 포함하는 데이터베이스(120)에 연결된다. 일 실시예에서, 중앙집중화된 데이터베이스(120)는 서버 시스템(112) 상에 저장되고 클라이언트 시스템(114) 중 하나를 통해 서버 시스템(112)에 로깅함으로써, 클라이언트 시스템(114) 중 하나에서 잠재적 사용자에 의해 엑세스될 수 있다. 대안적인 실시예에서, 데이터베이스(120)는 서버 시스템(112)으로부터 원격으로 저장되고 비중앙집중화될(non-centralized) 수 있다.
아래에서 기술하는 바와 같이, 데이터베이스(120)는 가맹점, 예금주 또는 소비자, 및 구입과 관계된 데이터를 포함하는 은행카드 네트워크에 걸쳐 수행되는 판매 행위의 일부로서 발생된 거래 데이터를 저장한다. 데이터베이스(120)는 상이한 보상 프로그램 및 특별 제안과 연관된 프로세싱 코드 및 비지니스 규칙을 포함하는 보상 프로그램 및 특별 제안과 관계된 데이터를 더 포함한다.
도 3은 본 발명의 일 실시예에 따라서 시스템(122)의 서버 아키텍처의 예시적인 실시예의 확장된 블록도이다. (도 2에 도시된) 시스템(100)의 구성요소와 동일한 시스템(122)의 구성요소는 도 2에서 사용된 동일한 참조 번호를 사용하여 도 3에서 식별된다. 시스템(122)은 서버 시스템(112) 및 클라이언트 시스템(114)을 포함한다. 서버 시스템(112)은 데이터베이스 서버(116), 애플리케이션 서버(124), 웹 서버(126), 팩스 서버(128), 디렉토리 서버(130), 및 메일 서버(132)를 더 포함한다. 디스크 저장 유닛(134)은 데이터베이스 서버(116) 및 디렉토리 서버(130)에 연결된다. 서버(116, 124, 126, 128, 130, 및 132)는 근거리 통신망(LAN; 136)에 결합된다. 또한, 시스템 관리자의 워크스테이션(138), 사용자 워크스테이션(140), 및 감독관의 워크스테이션(142)은 LAN(136)에 연결된다. 이와 달리, 워크스테이션(138, 140, 및 142)은 인터넷 링크를 사용하여 LAN(136)에 연결되거나 인트라넷을 통해 연결된다.
각각의 워크스테이션(138, 140, 및 142)은 웹 브라우저를 갖는 개인 컴퓨터이다. 워크스테이션에서 수행되는 함수는 일반적으로 각각의 워크스테이션(138, 140, 및 142)에서 수행되는 것으로 도시되지만, 그러한 함수는 LAN(136)에 연결된 많은 개인 컴퓨터 중 하나에서 수행될 수 있다. 워크스테이션(138, 140, 및 142)은 단지 LAN(136)으로의 엑세스를 갖는 개인에 의해 수행될 수 있는 상이한 유형의 함수에 대한 이해를 활용하기 위해 개별적인 함수와 연관되어 도시된다.
서버 시스템(112)은 ISP 인터넷 연결(148)을 사용하여 종업원(144) 및 제3자, 예를 들면 예금주, 소비자, 회계 감사관 등(146)까지 포함하는 다양한 개인과 의사전달가능하게 연결되도록 구성된다. 예시적인 실시예에서의 통신은 인터넷을 사용하여 수행되는 것으로 도시되지만, 임의의 기타 광역 통신망(WAN) 유형 통신이 다른 실시예에서 활용되어질 수 있는데, 즉 이는 시스템 및 프로세스가 인터넷을 사용하여 실행되는 것에 한정되는 것은 아니라는 의미이다. 또한, WAN(150)대신 근거리 통신망(136)이 WAN(150)을 대체하여 사용될 수 있다.
예시적인 실시예에서, 워크스테이션(154)을 갖는 임의의 인증된 개인은 시스템(122)에 엑세스할 수 있다. 클라이언트 시스템 중 적어도 하나는 원거리 위치(remote location)에 위치하는 관리자 워크스테이션(156)을 포함한다. 워크스테이션(154 및 156)은 웹 브라우저를 갖는 개인 컴퓨터이다. 또한, 워크스테이션(154 및 156)은 서버 시스템(112)과 통신하도록 구성된다. 게다가, 팩스 서버(128)는 전화 접속을 이용하여 클라이언트 시스템(156)을 포함하는 원거리에 위치한 클라이언트 시스템과 통신한다. 팩스 서버(128)는 또한 다른 클라이언트 시스템(138, 140, 및 142)과 통신하도록 구성된다.
도 4는 앙상블, 또는 집단화된, 가맹점 예측 시스템의 일 실시예에 대한 고레벨 기능별 구성요소를 도시하는 흐름도(200)이고, 여기서 각각의 구성요소는 기능별 거래 카드 네트워크의 동작에 관한 예측을 제공한다. 예측은 더 기술되는 바와 같이 단일 예측으로 집단화된다. 예측의 집단은 때때로 앙상블 예측으로 지칭된다. 본 명세서에서 기술된 실시예와 관련 있는 일 예는 수신된 가맹점 위치 데이터에 관한 집단화된 예측을 포함한다. 도 4에 관해 소개되는 동안, 본 명세서에서 모든 예측 알고리즘이 충분히 기술된다.
제1 구성요소는 (때때로 k-유사 위치 예측 알고리즘이라고 지칭되는) 유사 위치 예측 알고리즘(202)이고, 이는 주어진 가맹점 위치에 가장 유사한 "k" 가맹점 위치를 검색하도록 구성된다. 예측 알고리즘(202)은 유사한 가맹점 위치의 그룹을 검색된 "k" 가장 유사한 위치 중 모드 그룹으로 분류하도록 더 동작할 수 있다.
문서 예측 알고리즘으로서의 집단화된 위치(204)는 알려진 값의 공간에서 (데이터의 고레벨 그룹인) 각각의 위치 집단과 관련된 모든 필드 및 필드 값에 대한 관련성을 계산하도록 활용된다. 결과는 문서로 저장된다. 예측을 생성하기 위해 이런 문서에서 가장 관련 있는 값이 활용된다.
위치 매칭 시스템을 포함하는 제3자 데이터 예측 알고리즘(206)이 활용되고, 여기서 예측이 특정 제3자 브랜드와 연관된다. 알고리즘(206)에 대한 적어도 하나의 입력은 제3자로부터 수신된 거래 레코드를 포함하고, 거래 레코드는 예측을 생성하는데 활용된다. 일 실시예에서, 예측은 제3자 데이터 소스로의 위치 매칭이 수행된 후 생성된다. 주로 벤포드의 법칙(Benford's Law)에 기초하면서 또한 상대적으로 일관된 방법으로 벤포드에 의해 확인된 분포에서 벗어나기 위해 동일한 그룹에 속한 가맹점에 대해 관측된 경향에 기초한 실시예인 숫자 시그너처 예측 알고리즘(208)이 흐름도(200)에 포함된다. 알고리즘(208)에 기인한 예측은 각각의 가맹점 위치와 비교할 때 가장 유사한 숫자 분포를 갖는 위치 그룹이 된다.
일 실시예에서 오라클로 구현된 상위 레벨 통계 모델 및 스코어링 엔진(210)은 데이터베이스 내에 새롭게 수신되고/수신되거나 저장되는 데이터 중 그룹 멤버쉽을 결정하기 위해 알고리즘(202, 204, 206, 및 208)으로부터의 예측을 활용한다. 데이터의 예는 가맹점 위치 데이터이다. 적어도 하나의 실시예에서, 그리고 본 명세서에서 더 기술되는 바와 같이, 데이터베이스 내의 가맹점 위치 데이터는 위치 및 거리의 면에서, 예를 들면 주어진 위치로부터 주어진 거리 내에 있는 다수의 가맹점 위치에 관하여 기술된다. 적어도 하나의 특징에서, 위치 및 거리는 필수적으로 지리에 관한 것일 필요는 없고, 데이터베이스 내에 저장된 가맹점 데이터를 활용하여 계산되는 유사성에 기초한다. 특정 실시예에서, 위치 및 거리는 데이터베이스 내의 필드 값 및 필드 토큰화된 값에 대한 크로스 속성(cross-attribute), 가중치기반(weighted), 용어 빈도/역문헌 빈도(term frequency/inverse document frequency; TF/IDF) 계산에 의해 측정되는 유사성에 기초한다.
도 5는 스코어링 엔진(210)의 동작을 도시하는 흐름도(220)이다. 특히, 스코어링 엔진(210)은 각각의 개별적인 예측을 둘러싼 환경을 기술하기 위해 오라클 데이터 마이닝(ODM) 애플리케이션(224)의 예측에 관한 메타 데이터와 함께 알고리즘(202, 204, 206, 및 208)으로부터의 가맹점 위치 예측을 활용하고(222), 집단화된 개별적인 예측으로부터 최종 예측을 생성한다(226). 이 최종 예측은 가맹점 위치에 관한 것일 수 있다. 이 애플리케이션은 또한 복수의 알고리즘(202, 204, 206, 및 208)에 관한 집단화된 예측과 연관된 신뢰도 스코어(confidence score)를 생성한다.
4개의 알고리즘(202, 204, 206, 및 208) 각각이 추가로 자세히 기술된다.
K-유사 위치{알고리즘(202)}
도 6은 예를 들면 위치 유사성과 같은 유사성에 기초하여 가맹점 위치를 분류하는 알고리즘(202)으로 입력되는 데이터를 도시한 흐름도(250)이다. 체인 또는 집합(예를 들면, 그룹) 멤버쉽을 얻는 맥락에서 중요하다고 알려진 위치 레벨 필드 또는 위치 좌표(252)의 세트는 금융 거래 카드를 수용하는 기관(254)의 데이터베이스로부터 식별된다. 추가로, 일별(daily) 새로운/변경된 위치 데이터베이스(256)로부터의 데이터는 그들의 연관된 새로운/변경된 위치 좌표(258)와 함께 이하에 기술된 가맹점 위치 분류 알고리즘에 제공된다.
도 7은 가맹점 위치를 그룹 멤버쉽으로 분류하도록 활용되는 알고리즘 중 하나{도 4에 도시된 알고리즘(202)}를 기술하는 흐름도(280)이다. 알고리즘(202)은 적어도 도 6의 흐름도(250)에 관해 기술된 데이터를 활용한다. 구체적으로, 데이터베이스 내의 가맹점 위치 데이터는 주어진 위치로부터 주어진 거리 내에 있는 다수(k)의 위치에 대해 검색된다(282). 추가로, 주어진 거리 내의 위치는 임의의 새롭고/새롭거나 변경된 위치를 결정하도록(284) 유사성에 대해 검색된다. 모드 값은 특정한 특징 공간 {즉, 거래 데이터가 이곳으로부터 알고리즘(202)으로 입력되는 영역} 내의 (k) 위치 중에 발생하는 가맹점 위치를 분류함으로써 결정된다(286). (k) 위치 레코드의 분류에서 기인한 가장 최근에 발생한 값은 최고 가중치를 갖고, 아래에서 기술되는 바와 같이 결정되는 모드 값으로 지칭된다. 이 모드 값은 알고리즘(202)으로부터 예측으로 반환된다(288).
이하에서 더 기술되는 바와 같이, 필드{위치 좌표(252 및 258)}는 토큰화되고 특징 공간을 확장하는 모든 토큰화된 필드값에 대해 역문헌 빈도가 계산된다. 일 실시예에서, 각각의 위치에 대하여, 용어 빈도/역문헌 빈도로서의 각각의 필드값 및 각각의 토큰화된 필드 값에 대한 가중치 척도의 희소 행렬(sparse matrix)이 계산된다. 예측 값은 하나 이상의 필드 유형 및 필드 값에 기초하여 주어진 위치 필드를 모든 다른 위치 필드에 합침으로써 계산된다.
희소 행렬은 위치, 필드 유형 및 용어 값에 대한 가중치, 및 용어 토큰을 포함하며, 아래의 단락에 기술된 바와 같이 생성된다.
모든 필드 값 및 토큰화된 필드 값의 역문헌 빈도를 포함하는 행렬이 생성되고, 일 실시예에서는 9차원에 걸친다. 특정 실시예에서, 이러한 9차원은 가맹점 분류 코드, 인터뱅크 카드 협회(ICA) 코드, 비지니스 영역, 가맹점 이름, 가맹점 전화 번호, 승인 가맹점 식별자(acquiring merchant identifier), 계층 가맹점 식별자(tier merchant identifier), 가맹점 법적 이름(merchant legal name), 및 연방 세금 식별자(federal tax identifier)를 포함한다. 이러한 차원은 모든 가맹점 위치 레코드에 포함된다. 역문헌 빈도는 레코드 수를 특정 값을 포함하는 레코드 수로 나눈 몫의 {일 특정 실시예에서 밑(base)이 2인} 로그다. 일 예가 표 1에 표현된다. 일 실시예에서, 이 몫은 9차원 각각에 대해 개별적으로 계산된다. 레코드 수는 가맹점 위치의 수로 계산된다. 특정 용어를 포함하는 레코드 수는 각각의 필드 유형 내에 각각의 용어를 포함하는 가맹점 위치 수를 셈으로써 계산된다.
Figure pct00001
각각의 위치에 대해, 크로스 속성 정규화된 용어 빈도 - 더블 역문헌 빈도 가중치가 표 2에 도시된 바와 같이 9 차원에 걸친 값 및 토큰화된 값에 대해 계산되고, 여기서 9차원은 다시 가맹점 분류 코드, ICA 코드, 비지니스 영역, 가맹점 이름, 가맹점 전화 번호, 승인 가맹점 식별자, 계층 가맹점 식별자, 가맹점 법적 이름, 및 연방 세금 식별자를 포함한다.
Figure pct00002
예측하기 위한 위치를 필드 유형 및 필드 값에 대해 모든 다른 위치로 합치고 공통적인 필드 유형 및 필드 값에 대한 용어 빈도- 더블/역문헌 빈도 가중치의 곱을 합함으로써 주어진 위치에 대한 그룹 멤버쉽 예측 및 신뢰도가 계산된다. 위치 결과는 결과 스코어(resulting score)의 내림차순으로 정렬되고, 예를 들면 최고 스코어를 갖는 13개의 위치 중에서 발생하는 모드 그룹이 예측으로서 주어진다. 이 예측의 신뢰도 스코어는 동일한 그룹(예측된 값), 예측된 그룹에 속하는 k 위치에 대한 개별 가중치, 및 가중치 간의 분산(variance)을 포함한 상위 13개의 위치 중 위치의 수로 표현된다.
문서 예측으로 집단화된 위치{알고리즘(204)}
도 8은 분류 시스템으로서 문서 내에 세트로 집단화된 위치를 도시하는 도면(300)이다. 집단화된 위치의 문서를 생성하는 (도 4에 도시된) 알고리즘(204)은 인터넷 검색 엔진에 의해 보통 이용되는 문서 관련 알고리즘과 유사하다. 구체적으로, 각각의 가맹점 위치의 집단 또는 집합(collection)에 대한 주어진 가맹점 위치의 관련도는 아래에 기술된 바와 같이 계산된다.
문서(302)를 생성하기 위해, 예를 들면 거리 주소와 같은 관련 특징이 복수의 위치(304)에 관련된 데이터베이스 데이터로부터 추출되고, 예를 들어 세트(306)와 같이 세트로 그룹화된다. 예시의 목적을 위해, 도면(300)은 네 개의 위치 세트(306, 308, 310, 및 312)를 포함한다. 세트(312)는 세트 M으로 라벨링되어 특정 구현에서 세트의 수가 도시된 네 개 보다 많거나 적을 수 있다는 것을 나타낸다. 유사하게 세트 내의 위치 수는 1에서부터 "N"까지 다양할 수 있다.
각각이 관련 추출 특징을 포함하는 생성된 문서(302, 320, 322, 및 324)는 사전(330)에 수집된다. 사전(330)을 활용하여, 희소 행렬(340)이 형성되고 그럼으로써 각각의 필드 값 및 토큰화된 필드 값의 관련도가 계산되며, 용어 빈도 및 역문헌 빈도 중 적어도 하나에 기초하여 각각의 집단화된 가맹점 그룹에 대해 추출된 특징을 활용한다.
희소 행렬(340) 내에서, 위치 레벨 가중치의 행렬은 필드 유형 및 필드 값에 기초하여 가맹점 그룹 가중치의 행렬에 합쳐진다. 이러한 가중치의 합은 각각의 가맹점 그룹에 대한 각각의 위치의 관련도를 결정하기 위해 관련 엔진(350)에 의해 일 실시예에서 활용된다. 최고 관련도를 갖는 가맹점 그룹이 위에서 기술된 예측된 값으로 반환된다. 보다 구체적으로, 그룹, 필드 유형, 및 용어 룰에 대한 가중치, 및 용어 토큰의 희소 행렬은 이하 문단에서 기술되는 바와 같이 생성된다.
먼저, 본 명세서의 다른 곳에서 나열된 9 차원, 구체적으로 가맹점 분류 코드, ICA 코드, 비지니스 영역, 가맹점 이름, 가맹점 전화 번호, 승인 가맹점 식별자, 계층 가맹점 식별자, 가맹점 법적 이름, 및 연방 세금 식별자에 걸친 모든 필드 값 및 토큰화된 필드 값의 역문헌 빈도를 포함하는 행렬이 모든 가맹점 위치 레코드에 걸쳐 생성된다.
도 3에 도시된 바와 같이 문서 예측 알고리즘으로서 집단화된 위치에 관해, 역문헌 빈도는 몫, 즉 레코드 수를 특정 값을 포함하는 레코드의 수로 나눈 값의 (일 특정 실시예에서 밑이 2인) 로그이다. 일 실시예에서, 역문헌 빈도는 9차원의 각각에 대해 개별적으로 계산된다. 레코드의 수는 가맹점 위치의 수로 계산된다. 특정 용어를 포함하는 레코드 수는 각각의 필드 유형 내에서 각각의 용어를 포함하는 가맹점 위치의 수를 셈으로써 계산된다.
Figure pct00003
각각의 그룹에 대하여, 도 4에 도시된 바와 같이 가맹점 분류 코드, ICA 코드, 비지니스 영역, 가맹점 이름, 가맹점 전화 번호, 승인 가맹점 식별자, 계층 가맹점 식별자, 가맹점 법적 이름, 및 연방 세금 식별자의 9차원에 걸친 값 및 토큰화된 값에 대한 크로스 속성 정규화 용어 빈도 - 더블 역문헌 빈도가 계산되고, 모든 위치는 각각의 그룹에 속한다.
Figure pct00004
열(rows)을, 위에서 기술된 바와 같이, (k)-유사 위치 행렬로부터 필드 유형 및 필드 값에 대한 그룹 행렬로 합치고 공통적인 필드 유형 및 필드 값에 대한 용어 빈도 - 더블 역문헌 빈도 가중치의 곱을 합함으로써, 주어진 위치에 대한 하나의 그룹 멤버쉽 예측이 계산된다. 예측된 그룹 및 신뢰도 스코어는 (필드 값 및 토큰화된 값을 매칭하기 위한 가중치×가중치의 합에 의해 주어지는) 최고 유사성 스코어를 갖는 그룹이다. 이런 예측에 대한 신뢰도가 결과 스코어이다.
제3자 데이터 예측 및 위치 매칭{알고리즘(206)}
앙상블 예측의 제3 구성요소는 가맹점 위치에 의해 금융 거래의 데이터베이스에 매칭되어온 제3자 제공 데이터를 사용하는 (도 4에 도시된) 알고리즘(206)이다. 일 실시예에서, 이러한 제3자 레코드는 예를 들면 벤더(vendor)에 관련된 체인 식별자에 할당된다. 이러한 체인 식별자는 (예를 들어, 카드 발행사와 같은) 금융 거래 카드 브랜드와 연관된 가맹점 위치 그룹에 링크된다. 그러므로, 예측은 단순히 제3자 레코드가 링크되는 체인에 대응하는 가맹점 데이터의 그룹이다. 이렇게 링크를 하고 나면 다음 문단에 기술되는 바와 같이 위치 매칭을 하게 된다.
가맹점 위치 데이터세트는 제3자 데이터 제공자로부터 추출되고, 여기서 위치는 (벤더에 의해) 체인으로 할당되어 왔다. 제3자 가맹점 위치의 공간 내의 가각의 체인은 적절한 대응 그룹에 할당된다. 근사 가맹점 위치 매칭 엔진은 제3자 가맹점 위치 레코드의 세트를 카드 발행사에 의해 유지된 가맹점 위치 레코드의 세트로 합치기 위해 사용된다. 주어진 위치에 대한 예측된 그룹은 카드 발행사 가맹점 위치 레코드에 매칭되는 제3자 위치 레코드에 대응하는 체인에 대응하는 그룹으로서 계산된다. 신뢰도 스코어는 근사 가맹점 위치 매칭 엔진에 의해 할당된 매칭 신뢰도 스코어(match confidence score)이다.
숫자 시그너처 예측{알고리즘(208)}
일 실시예에서, (도 4에 도시된) 가맹점 숫자 시그너처 알고리즘(208)은 일별 거래액 및 거래량의 제1 포지션에서의 숫자 분포에 관한 관측을 이용한다. 구체적으로, 다양한 가맹점 데이터가 집단화될 때 분포가 다소 고유한 경향이 있다. 또한, 분포는 자연 데이터(natural data)에서 벤포드의 법칙에 의해 제안된 분포와 일관된 경향이 있다. 실제 세계의 예에서, 패스트 푸드 음식점 체인은 특정 숫자를 첫 거래액 숫자로서 반복적으로 등장시키려는 경향을 나타낼 수 있다. 이러한 경향은, 예를 들면 패스트 푸드 음식점 체인의 프랜차이즈 가맹점 위치가 특정 위치 또는 주소에 있다는 것을 적어도 부분적으로 식별하도록 활용될 수 있다.
이러한 알고리즘을 활용하는 예측의 일 예는 각각의 종합 가맹점(가맹점 데이터의 그룹)으로부터의 가맹점 위치의 10% 무작위(random) 샘플이다. 거래액 및 거래량의 제1 포지션에서 발생하는 숫자 1-9의 분포는 종합 가맹점에 의해 계산되고 요약된다. 그 분포와 벤포드의 법칙에 의해 확인되는 분포 사이의 각거리(angle distance)가 계산된다.
거래액 및 거래량의 제1 포지션에서 발생하는 숫자 1-9의 분포가 주어진 가맹점 위치에 대하여 계산된다. 그 분포와 벤포드의 법칙에 의해 확인된 분포 사이의 각거리가 계산된다. 가맹점 위치의 각거리에 가장 근접한 각거리를 갖는 종합 가맹점이 주어진 위치에 대한 예측된 종합 가맹점으로 주어진다.
보다 구체적으로, 각각의 그룹에 대해, 거래 수, 거래액, 및 평균 거래액 중 그룹 내의 모든 위치에 걸친 각각의 숫자(즉, 1, 2, 3, 4, 5, 6, 7, 8, 9)의 발생 빈도의 분포가 계산되고 전체에 대한 퍼센트로 표현된다. 상기 분포가 표에 저장되어 표 5에서 표현된다.
Figure pct00005
각각의 그룹에 대한 분포가 계산되면, 벤포드의 법칙에 의해 제안된 그룹의 분포 벡터와 분포 벡터의 내적을 계산함으로써, 각각의 그룹에 대한 숫자 시그너처가 결정된다. 내적(분산각)은 각각의 그룹에 대한 분포 벡터의 제곱의 합으로 나눠진다. 벤포드의 법칙에서 확인된 분포가 계산되고 표에 저장되며, 표 6에 표현된다.
Figure pct00006
각각의 위치에 대하여, 주어진 위치에 대해 한 달의 기간 동안 관찰된 거래 수, 거래액, 및 평균 거래액에 걸친 각각의 숫자(1, 2, 3, 4, 5, 6, 7, 8, 9)의 발생 빈도의 분포가 계산되고 전체에 대한 퍼센트로 표현된다. 이러한 분포는 표에 저장되고, 이는 도 7에 표현되어 있다.
Figure pct00007
각각의 위치에 대한 분포가 계산되면, 각각의 위치에 대한 숫자 시그너처가 벤 포드의 법칙에 의해 제안된 위치의 분포 벡터와 분포 벡터의 내적을 계산함으로써 결정된다. 벤포드의 법칙에서 확인된 분포 및 각각의 위치에 대한 분포의 벡터의 제곱의 합으로 나뉘는 이런 내적(분산각)이 계산되고, 표에 저장되며, 표 8로 표현된다.
Figure pct00008
주어진 위치에 대한 예측된 그룹 멤버쉽은 주어진 위치의 숫자 시그너쳐와 가장 근접한 숫자 시그너처를 갖는 그룹을 찾음으로써 계산되고, 신뢰도 스코어는 두 시그너쳐 간의 간격으로 계산된다.
통계 모델 및 스코어링(scoring)
도 5에 관하여 위에서 기술된 바와 같이, 4개의 예측 알고리즘(202, 204, 206, 및 208)으로부터의 각각의 예측된 값은, 각각의 예측의 환경을 기술하는 풍부한 메타 데이터 세트와 함께 수집되고(222), 오라클 데이터 마이닝(ODM) 애플리케이션(224)으로 입력된다. 일 실시예에서, ODM 애플리케이션(224)은 각각의 예측된 값에 신뢰도 스코어를 할당하기 위해 라벨링된 트레이닝 데이터를 사용하여 만들어진 통계 모델(결정 트리)을 활용한다. 최고 신뢰도 스코어를 갖는 예측된 값은 각각의 가맹점 위치에 대한 최종 예측된 집단 값으로 제공된다.
근사 스트링 매칭
위에서 기술된 바와 같이, 앙상블 예측의 하나의 구성요소는 위치 데이터를 사용하는 알고리즘이고, 예를 들면, 그 위치 데이터는 가맹점 위치와 제휴된 금융 거래 카드의 데이터베이스에 매칭되어 왔다. 소정의 데이터는 제3자 소스에 의해 제공될 수 있다. 아래에 기술된 실시예는 데이터베이스 내의 데이터에 대한 근사 스트링(예를 들어, 문자 스트링) 매칭을 검색하기 위한 방법 및 시스템에 관한 것이다. 실시예에서, 스트링 매칭은, 예를 들면 위치를 표현하는 스트링이 또 다른 스트링에 의해 데이터베이스에 표현되는지를 결정하도록 활용된다. 다양한 실시예에서, 거래 레코드에 발생하는 변형들 때문에, 특히 그러한 레코드가 가맹점 이름 및 위치에 관한 것이기 때문에, 그러한 알고리즘은 적절하다.
완벽히 매칭하거나 공통적인 필드 값과 같은 공통적인 조인 키(join key)가 데이터 내에 존재하지 않을 때, 근사 스트링 매칭 데이터베이스 시스템은 하나의 레코드 세트를 또 다른 레코드 세트로 합치도록 작동될 수 없다. 아마, 레코드 세트에 소정의 유사성이 있다.
일반적으로, 두 개의 데이터세트가 데이터베이스 내에 합쳐질 때, 그들은 하나 이상의 필드에 정확한 값들을 공유한다. 정확한 필드 값들이 데이터 내에서의 변형 때문에 두 개의 데이터 소스(레코드 세트)에 의해 공유되지 않을 때, 각각의 데이터 소스로부터 데이터세트를 합치는 전통적인 접근방식은 두 값을 취하여 그들의 유사성를 계산하고 반환하는 함수를 구현할 것이다. 데이터 세트를 합치기 위한 기본방안으로서 이러한 유형의 함수를 사용하는 것은 합치게 될 각각의 데이터세트 내의 레코드 수의 곱과 동일한 수만큼의 다수의 반복(iterations)을 요구한다.
예로서, 데이터세트 A에 10,000개의 레코드가 있고 데이터세트 B에 500,000개의 레코드가 있다면, 유사성 계산 함수는 데이터세트 A을 데이터세트 B에 합치기 위해 50억번 호출될 것이다. 게다가, 그러한 함수가 작동될(invoked) 때, 임의의 인덱스 또는 인덱스에 기초한 함수는 데이터베이스 최적화기에 의해 사용되지 않을 것이다. 이러한 데이트 세트 유형은 매우 비효율적이고 소량이 아닌 데이터 양을 갖는 데이터세트를 합치도록 사용되기에는 너무 지나치게 집약적인 프로세싱이다.
스트링 매칭 기술이 개발되고, 다양한 실시예에서 하나 이상의 다음 구성요소를 활용하여 구현된다. 구체적으로, 참조 스트링 세트가 주성분 요인 분석(principal components factor analysis; PCFA)을 사용하여 생성된 조인 기준(join criteria)에 사용된다. PCFA는 참조 스트링으로 사용될 알려진 값의 공간에 존재하는 매우 비유사한 스트링 세트를 식별하는 것을 추구한다.
또 다른 구성요소는 관계형 데이터베이스 관리 시스템(relational database management system; RDBMS)에서의 성능을 최대화하기 위한 순수한 ASCII 구조화 쿼리 언어(SQL)로 구현된 n-그램 빈도 유사성 계산(n-gram frequency similarity calculation)이다. 추가로, 프로세스는 2진 키를 형성하기 위해 n-그램 빈도 유사사도 계산을 사용하도록 RDBMS에 구현되고, 아래에 기술된 바와 같이 2진 키는 PCFA에서 식별된 각각의 참조 스트링에 대한 주어진 레코드의 유사성을 나타낸다.
일 실시예에서, 데이터 구동 표준화 함수 세트가 RDBMS 내에 구현되고, 이는 모든 n-그램의 역문헌 빈도(IDF) 및 크로스 속성 가중치기반 용어 빈도/역문헌 빈도(TF/IDF) 계산의 SQL 구현을 포함하는 표이다.
스트링 매칭 기술의 일 실시예는 동일한 2진 키 값을 공유하는 레코드들을 합치고 그들을 모든 매칭 n-그램의 TF/IDF 가중치의 곱을 합함으로써 관련도로 정렬하는 변수화된 분석적 SQL 쿼리를 포함한다. 레코드가 특정 문턱값 위로 i 번째 참조 스트링을 매칭하는 경우, 2진 키의 i 번째 비트는 논리 1로 설정된다.
데이터세트의 합침에 관련된 데이터를 저장하기 위한 RDBMS 데이터 모델이 또한 포함되는 동안, 프로세스는 신뢰도 스코어를, 합쳐짐에 의해 기인된 각각의 매칭으로 할당하도록 RDBMS 내에 구현된다.
데이터세트 합침 문제의 하나의 단순한 버전은 하나의 이름(또는 주소)을 오라클 표와 같은 데이터베이스 내에 포함된 더 큰 이름(또는 주소) 세트에 대해 매칭시키는 것이다. 이런 n-그램 매칭의 예가 표 9에 도시된다.
Figure pct00009
데이터세트 합침 솔루션을 위해 필요로 되는 요소는 스트링 간의 임의의 유사성을 측정하기 위한 척도이다. n-그램은 단순히 n개의 문자의 고유한 스트링이고, n-그램 매칭은 n-그램들 간의 매칭을 결정하기 위한 프로세스이다. n이 2와 같은 경우에 대하여, 표 1의 후보 주소는 다음의 2-그램들, "10", "00", "01", "14", "4<space>", "<space>S", "S<space>", "<space>C", "Cl", "la", ..., "Rd"를 포함한다.
표 10은 n-그램 매칭 알고리즘을 요약하고, 이는 후보 스트링(예를 들면, Candidate_array)에 대한 n-그램 빈도 벡터를 결정하는 것, 후보 매칭 데이터베이스(예를 들면, Candidate_Match_Array) 내의 각각의 엔트리에 대한 n-그램 빈도 벡터를 결정하는 것, Candidate_Array 및 Candidate_Match_Array 간의 유사성 정도를 측정하는 것, 및 특정 문턱값을 초과하는 이러한 후보 매칭들을 유지하는 것을 포함한다. 예를 들면, "JoJo's Diner"의 경우는 다음과 같다.
Figure pct00010
도 11, 12, 13은 n-그램 매칭 척도의 예이다. "내적(inner product)"은 배열의 내적(dot product)이고, "크기(Magnitudes)"는 제곱의 합의 제곱근이며, "(각도의) 코사인"은 내적을 크기들의 곱으로 나눈 값이며, 각도는 내적을 크기들의 곱으로 나눈 값의 역 코사인 값이다.
Figure pct00011
Figure pct00012
Figure pct00013
참조 스트링
위의 표 및 기술은 스트링을 양적으로 표현하는 능력을 도시하고 그들간의 유사성을 측정한다. 이 시점에서, 데이터베이스 내의 각각의 레코드에 대한 인덱스는 작은 참조 스트링 세트에 대한 해당 상대적인 포지션에 기초하여 만들어질 수 있다.
참조 스트링을 선택함으로써, 각각의 참조 스트링에 대한 새로운 레코드의 상대적인 포지션이 계산될 수 있다. 또한, 데이터베이스 내의 모든 레코드는 참조 스트링에 관한 고유의 사전계산된 포지션을 갖는다. 그러므로, 근사 매칭은 새로운 레코드와 전체 데이터베이스 간의 종합 유사성 척도를 계산하지 않고도 동일한 근접성으로 인덱스된 그러한 레코드를 검색함으로써 찾아질 수 있다. 참조 스트링 선택의 하나의 목표는 비유사한 레코드를 선택하여, 더 나은 관점을 제공하는 것이다. 참조 스트링 선택에 대한 한 가지 접근방식은 다음 문단에서 그 개요가 서술된다.
참조 스트링은 인덱스된 데이터베이스로부터 스트링 샘플을 수집함으로써 식별된다. 샘플 내의 각각의 스트링에 대한 n-그램 표현은 빈도수 벡터를 창조함으로써 생성되고, 여기서 벡터의 i 번째 구성요소는 n-그램이 그 스트링에 발생되는 수를 포함한다. 유사성에 대한 행렬은 코사인 유사성 척도를 사용하여 샘플 스트링의 모든 쌍 간의 유사성을 측정함으로써 생성된다.
유사성 데이터의 집합에서 비유사한 구성요소를 찾기 위한 한 가지 기술은 주성분 분석이다. 주성분 분석은 유사성 행렬에 수행되고 제1 k 주성분이 유지된다. 각각의 구성요소에 최대 로딩을 갖는 샘플 스트링이 유지되고, 참조 스트링 세트를 형성한다.
2진 인덱스 및 정보 검색
유사한 스트링을 함께 그룹지어 인덱스가 근사 스트링 매칭동안 빠른 후보 검색을 제공하도록 생성될 수 있기 위해, 각각의 잠재적인 후보 레코드 및 각각의 비교 레코드는 n-그램 빈도 유사성 SQL 계산을 사용하여 각각의 참조 스트링과 비교된다.
유사도 계산이 사전정의된 문턱값보다 더 높은 스코어를 산출하면, 참조 스트링에 대응하는 2진 키의 포지션이 값 1로 할당된다. 스코어가 문턱값 아래이면, 키의 대응 포지션은 0으로 할당된다.
N-그램 유사성 계산
두 개의 주어진 스트링 내에 존재하는 모든 고유한 N-그램의 발생 빈도를 포함하는 2차원 벡터를 형성하는 SQL 쿼리가 개발되어왔다. 쿼리는 정규화된 유사성 척도에 다다르기 위해 각각의 빈도수 곱의 합을 빈도수 벡터의 각각의 차원의 크기의 제곱으로 나눈다.
이러한 계산이 다음 예에 의해 표현되고, 여기서 비교 스트링 A는 "MASTERCARD"이고, 비교 스트링 B는 "MASTERCHARGE"이다. 다음 표 14는 2개의 비교 스트링 내에 존재하는 모든 고유의 n-그램의 발생 빈도를 포함하는 2차원 벡터이다.
Figure pct00014
스트링 A의 크기는 차원 A의 각각의 빈도수 값에 대한 제곱의 합의 제곱근으로 계산되고, 구체적으로 스트링 A의 크기는 3.0이다. 스트링 B의 크기는 차원 B의 각각의 빈도수 값의 제곱의 합의 제곱근으로 계산되고, 구체적으로 B의 크기는 3.3166247903554이다. 벡터의 내적이 계산되고, 이 예에서 내적은 7.0이다(A와 B 둘 다 1의 값을 갖는 표 엔트리의 수이다). 유사성은 내적/(A 크기 * B 크기)로 계산되거나, 예시적인 예에 대하여 0.703526470681448이다.
2진 키 값의 형성
유사성 계산이 사전정의된 문턱값보다 더 높은 스코어를 산출하는 경우, 참조 스트링에 대한 2진 키의 포지션은 값 1로 할당된다. 스코어가 문턱값 이하라면, 키의 대응 포지션은 0으로 할당된다. 일 실시예에서, 이진 키 포지션을 결정하기 위한 프로세스는 SQL 및 PL/SQL의 조합을 사용하여 구현된다. 이진 키가 알고리즘 내의 이전 반복에서 그 정확한 값에 대해 계산되었던 경우, 알고리즘의 구현은 자동으로 주어진 스트링을 이진 키 값에 할당하기 위해 분석적인 구조화 쿼리 언어를 사용함으로써, 요구되는 스트링 비교 계산의 수를 최소화한다. 이러한 최적화는 SQL에서 달성된다.
고유 식별자 및 각각의 이진 키 값은 RDBMS의 파티셔닝된 인덱스 구성 테이블(index organized table; IOT)에 저장된다. 각각의 고유 데이터세트는 단일 파티션 내에 저장되고, 두 개의 데이터세트가 동일한 파티션을 공유하지 않는다. 로드 성능(load performance)을 최대화하기 위해, 각각의 데이터세트가 이 표로 로딩하는 것은 CTAS(create table as select) 및 파티션 교환을 사용하여 달성된다. 각각의 파티션 내의 데이터는 조인 성능을 최대화하도록 2진 키 값의 순서로 저장된다.
데이터 표준화
유사성 비교의 정확성 및 2진 키 값의 분포를 개선하기 위해, 일 실시예에서 데이터는 알려진 약어 및 동의어에 대해 표준화된다. 그러한 데이터 표준화를 달성하기 위해, 다양한 필드 유형에 대한 모든 알려진 동의어 및 변형을 포함하는 표는, 그들의 각각의 표준 표현들과 함께 생성된다. 알고리즘은 각각의 데이터 요소를 토큰화하고 그들의 표준 형태에 대한 임의의 알려진 변형 또는 동의어를 맵핑하도록 동작한다.
IDF 표
근사 매칭 조인과 관련된 필드에 존재하는 모든 n-그램에 대한 가중치기반 TF/IDF를 계산할 때의 더 빠른 성능을 위해, 표는 후보 레코드의 공간 내에 존재하는 모든 두 개의 문자 n-그램의 역문헌 빈도를 포함하여 만들어진다. 공간 내의 모든 n-그램의 형성이 PL/SQL을 통해 달성되는 반면, IDF 계산은 ASCII SQL로 수행된다. IDF 표는 각각의 데이터 분류를 위해 각각의 가능한 n-그램에 대한 IDF 값을 저장한다. 표는 조인 성능을 최대화하기 위해 데이터 분류 및 n-그램에 따른 인덱스로 체계화된다.
크로스 속성 가중치기반 TF/IDF
근사 매칭 조인에 관계된 각각의 필드에 대해, 주어진 레코드에 존재하는 각각의 두 개의 문자 n-그램에 대한 가중치 또는 중요도를 할당하기 위해, 크로스 속성 가중치기반 부여된 용어 빈도/역문헌 빈도 TF/IDF 값은 각각의 n-그램 값에 대해 계산된다. n-그램 용어 및 각각의 주어진 레코드 및 필드 내에서의 그들 각각의 발생 빈도는 REF_CURSOR를 입력으로 취하는 파이프라인 표 함수를 사용하여 계산된다. 이 계산은 각각의 필드 내의 각각의 n-그램에 대한 TF/IDF를 계산한 후 각각의 필드에 존재하는 모든 n-그램에 대한 가중치를, 동일한 레코드의 다른 필드에 존재하는 n-그램의 총 가중치에 따라 위 또는 아래로 조절한다는 점에서 종래의 가중치기반 TF/IDF 계산과 약간 다르다. 이 기술로 인해, 각각의 필드의 값의 전체 중요도에 따라 매칭한 n-그램의 상대적인 가중치에 대한 레코드 레벨 동적 조정이 발생한다.
위에서 언급한 바와 같이, 주어진 데이터 세트의 각각의 레코드에 대한 고유 식별자는 그들의 n-그램 용어 및 계산된 가중치 스코어와 더불어 조인 성능을 최대화하기 위해 파티셔닝된 인덱스 구성 표(IOT)에 저장된다. 표는 고유 식별자, 데이터 분류, 및 n-그램 용어 값에 따라 체계화된다. 각각의 고유 데이터세트는 표 내의 개별적인 파티션에 저장된다. 각각의 파티션은 로딩 성능을 최대화하기 위해 CTAS(create table as select) 및 파티션 교환을 이용하여 로딩된다.
조인 쿼리
2진 키 및 크로스 속성 TF/IDF 계산이 RDBMS로 로딩되면, 분석적 조인 쿼리가 모든 후보 매칭 레코드를 검색하고 그들을 비교 레코드과 비교하여 그들의 관련도 또는 매칭 질(quality)에 따라 정렬하도록 이용된다. 이는 먼저 레코드를 매칭 2진 키 값과 함께 합치고, 결과 후보 레코드에 대한 n-그램 값을 합치며, 그들의 가중치의 곱의 합을 계산함으로써 달성된다.
신뢰도 스코어 할당
조인 쿼리의 결과는, 각각의 입력 및 후보 레코드에 매우 낮은 레벨의 비교를 수행하고 위에 기술된 오라클 데이터 마이닝 애플리케이션에서의 사용을 위한 통계 모델을 이용하여 신뢰도 스코어를 할당하는 RDBMS 내에 구현된 함수를 통해 전송된다.
근사 스트링 매칭과 연관된 위에 기술된 프로세스는 도 9 및 도 10에 의해 더 도시되고, 도 9 및 도 10은 각각 참조 문자 스트링 세트의 결정을 도시하는 흐름도(400) 및 후보 문자 스트링에 대한 유사성 척도를 결정하기 위한 참조 스트링 세트의 활용을 도시하는 흐름도(450)이다. 각각의 구성요소에서 최대 로딩을 갖는 샘플 스트링은 참조 스트링 세트를 형성하기 위해 유지된다. 이러한 샘플 스트링은 상관관계 목적을 위한 주성분의 표현이다. 유사성 척도는 결정된 참조 문자 스트링 세트 내의 후보 문자 스트링과 개별 문자 스트링과 비교해 볼 때 다수의 n-그램 매칭에 기초한다.
구체적으로, 도 9를 참조하면, 데이터베이스는 잠재적인 후보 매칭 데이터(402)의 공간을 포함하고, 이는 종종 본 명세서에서 문자 스트링의 데이터베이스로 지칭된다(예를 들면, 가맹점에 대한 이름 및/또는 위치 데이터). 본 명세서에 기술된 바와 같이, 매칭 필드 또는 데이터베이스 레코드의 무작위 샘플은, 예를 들면 비유사한 문자 스트링 세트에 대한 최적화 검색에 기초하여 생성된다(404). 유사성 행렬이 계산되고(406), 주성분 요인 분석이 적용되며(408), 주성분(410)이 결과로 나오며, 이들 각각은 대응하는 참조 문자 스트링을 지칭한다. 이런 참조 문자 스트링 세트는, 그 세트가 구체적으로 비유사 데이터를 포함하도록 생성되기 때문에 후보 문자 스트링에 대한 비교에 유용하다.
도 10을 참조하면, 후보 문자 스트링의 수신 시에, 각각의 주성분과 연관된 참조 스트링과 각각의 후보 문자 스트링 간의 유사도가 계산된다(452). 본 명세서에 기술된 바와 같이, 그러한 비교는 n-그램 매칭 알고리즘에 기초할 수 있고, 각각의 참조 스트링에 대한 후보 문자 스트링과 그에 대응하는 주성분 간의 유사성을 나타내는 2진 키가 생성된다(454). 빠르고 효율적인 근사 문자 스트링 매칭, 레코드(참조 문자 스트링)가 그들 각각의 2진 키 레코드의 비교에 기초하여 후보 문자 스트링에 합쳐진다(456). 그러한 프로세스는 사용자로 하여금 가맹점 이름 및/또는 위치 데이터의 표현일 수 있는 후보 문자 스트링에 대한 참조 문자 스트링들(가맹점 이름 및/또는 위치 데이터를 포함할 수 있음) 간의 높은 확률 매칭을 빠르게 검색하게 한다. 매칭될 각각의 데이터베이스 레코드에 대한 2진 키를 생성함으로써(458), 후보 문자 스트링에 대한 매칭 참조 문자 스트링의 파일이 생성될 수 있다(460).
본 발명은 다양한 구체적인 실시예의 측면에서 기술되었지만, 본 발명이 특허청구범위의 사상과 범주 내에서 수정되어 실시될 수 있다고 당업자가 인지할 것이다.

Claims (20)

  1. 데이터베이스 내에 저장되는 복수의 문자 스트링 레코드를 갖는 후보 문자 스트링의 문자 스트링 매칭을 실행하기 위한 컴퓨터 기반 방법으로서,
    a) 상기 데이터베이스 내에서 참조 문자 스트링 세트를 식별하는 단계 - 상기 참조 문자 스트링은 비유사한 문자 스트링 세트에 대한 최적화 검색을 활용하여 식별됨 - ;
    b) 상기 참조 문자 스트링 세트에서 상기 참조 문자 스트링들 중 하나에 대한 n-그램 표현을 생성하는 단계;
    c) 상기 후보 문자 스트링에 대한 n-그램 표현을 생성하는 단계;
    d) 상기 n-그램 표현들 간의 유사성을 결정하는 단계;
    e) 식별된 상기 참조 문자 스트링 세트에 남아있는 참조 문자 스트링에 대하여 단계 b) 및 단계 d)를 반복하는 단계; 및
    f) 상기 식별된 세트 내의 상기 후보 문자 스트링의 상기 n-그램 표현과 상기 참조 문자 스트링의 상기 n-그램 표현 간의 상기 결정된 유사성에 기초하여 상기 데이터베이스 내에서 상기 후보 문자 스트링을 인덱싱하는 단계
    를 포함하는 컴퓨터 기반 방법.
  2. 제1항에 있어서, 상기 n-그램 표현들 간의 유사성을 결정하는 단계는,
    상기 후보 문자 스트링 내의 모든 고유한 n-그램의 발생 빈도 및 상기 참조 문자 스트링 내의 모든 고유한 n-그램 발생 빈도를 포함하는 2차원 벡터를 계산하는 단계; 및
    상기 2차원 벡터에 기초하여, 상기 참조 문자 스트링에 대한 상기 후보 문자 스트링의 유사성 척도를 계산하는 단계
    를 포함하는, 컴퓨터 기반 방법.
  3. 제2항에 있어서, 상기 후보 문자 스트링의 유사성 척도를 계산하는 단계는 상기 2차원 벡터의 내용을 비교하기 위해 구조화 쿼리 언어 계산을 사용하는 단계를 포함하는, 컴퓨터 기반 방법.
  4. 제2항에 있어서, 상기 유사성 척도를 계산하는 단계는,
    상기 후보 문자 스트링과 연관된 벡터의 크기를 크기 A로 결정하는 단계;
    상기 참조 문자 스트링과 연관된 벡터의 크기를 크기 B로 결정하는 단계;
    상기 두 벡터들 간의 내적을 계산하는 단계; 및
    (내적/(크기 A×크기 B))에 따라서 상기 유사성 척도를 계산하는 단계
    를 포함하는, 컴퓨터 기반 방법.
  5. 제2항에 있어서, 상기 유사성 척도를 계산하는 단계는 ASCII 구조화 쿼리 언어로 n-그램 빈도 유사성 계산을 구현하는 단계를 포함하는, 컴퓨터 기반 방법.
  6. 제5항에 있어서, 상기 후보 문자 스트링과 상기 식별된 참조 문자 스트링 각각 간의 유사성을 나타내는 2진 키를 형성하기 위해 상기 n-그램 빈도 유사성 계산을 사용하는 단계를 더 포함하는, 컴퓨터 기반 방법.
  7. 제1항에 있어서, 상기 데이터베이스 내에서 상기 후보 문자 스트링을 인덱싱하는 단계는,
    n-그램 빈도 유사성 계산을 구현하는 단계;
    상기 후보 문자 스트링과 관련된 레코드와 상기 식별된 참조 문자 스트링 각각과 연관된 레코드 간의 유사성을 나타내는 2진 키를 형성하도록 상기 계산을 사용하는 단계;
    상기 동일한 2진 키 값을 공유하는 레코드를 합치는 단계; 및
    모든 매칭한 n-그램의 빈도 가중치의 곱을 합함으로써 관련도에 의해 상기 합쳐진 레코드를 정렬하는 단계
    를 포함하는, 컴퓨터 기반 방법.
  8. 제1항에 있어서, 상기 후보 문자 스트링을 인덱싱하는 단계는 상기 참조 문자 스트링 세트와 비교할 때 상기 후보 문자 스트링의 유사성 척도의 행렬을 생성하는 단계를 포함하는, 컴퓨터 기반 방법.
  9. 제1항에 있어서, 상기 후보 문자 스트링을 인덱싱하는 단계는,
    상기 유사성 척도가 사전정의된 문턱값(threshold) 위인 경우, 상기 참조 문자 스트링에 대응하는 2진 키를 값 1로 할당하는 단계; 및
    상기 유사성 척도가 상기 사전정의된 문턱값(threshold) 아래인 경우, 상기 참조 문자 스트링에 대응하는 2진 키를 값 0으로 할당하는 단계
    를 포함하는, 컴퓨터 기반 방법.
  10. 제1항에 있어서, 상기 데이터베이스 내에서 참조 문자 스트링 세트를 식별하는 단계는 비유사한 문자 스트링 레코드의 세트를 식별하기 위해 주성분 요인 분석(principal components factor analysis)을 사용하는 단계를 포함하는, 컴퓨터 기반 방법.
  11. 데이터베이스 내에서 비유사한 참조 문자 스트링 세트를 식별하기 위해 최적화 검색을 활용하고;
    후보 문자 스트링에 대한 n-그램 표현을 생성하며;
    상기 세트 내의 상기 비유사한 참조 문자 스트링 각각에 대한 n-그램 표현을 생성하고;
    상기 후보 문자 스트링의 상기 n-그램 표현과 상기 비유사한 참조 문자 스트링 세트의 각각의 n-그램 표현 간의 유사성을 결정하며;
    상기 n-그램 표현에서 결정되는 상기 유사성에 기초하여 상기 데이터베이스 내에서 상기 후보 문자 스트링을 인덱싱하도록 프로그램되는, 컴퓨터.
  12. 제11항에 있어서, 상기 후보 문자 스트링의 상기 n-그램 표현과 상기 비유사한 참조 문자 스트링 세트의 각각의 n-그램 표현 간의 유사성을 결정하기 위하여, 상기 컴퓨터는,
    상기 후보 문자 스트링의 모든 고유한 n-그램의 발생 빈도 및 각각의 상기 참조 문자 스트링에 대한 상기 참조 문자 스트링 중 하나의 모든 고유한 n-그램의 발생 빈도를 포함하는 2차원 벡터를 계산하고;
    상기 2차원 벡터에 기초하여, 각각의 참조 문자 스트링에 대한 상기 후보 문자 스트링의 유사성 척도를 계산하도록 더 프로그램되는, 컴퓨터.
  13. 제12항에 있어서, 상기 유사성 척도를 계산하기 위하여, 상기 컴퓨터는 상기 2차원 벡터의 내용을 비교하기 위한 구조화 쿼리 언어 계산을 활용하도록 프로그램되는, 컴퓨터.
  14. 제11항에 있어서, 상기 후보 문자 스트링을 인덱싱하기 위하여, 상기 컴퓨터는,
    상기 결정된 유사성이 사전정의된 문턱값(threshold) 위인 경우, 상기 참조 문자 스트링에 대응하는 2진 키를 값 1로 할당하고;
    상기 결정된 유사성이 상기 사전정의된 문턱값(threshold) 아래인 경우, 상기 참조 문자 스트링에 대응하는 2진 키를 값 0으로 할당하도록 프로그램되는, 컴퓨터.
  15. 제11항에 있어서, 상기 최적화 검색을 활용하기 위하여, 상기 컴퓨터는 주성분 요인 분석을 사용하여 상기 데이터베이스 내에서 비유사한 참조 문자 스트링 세트를 식별하도록 프로그램되는, 컴퓨터.
  16. 데이터베이스 내에서 참조 문자 스트링 세트에 대한 후보 문자 스트링의 근사 매칭(approximate matching)을 실행하기 위한 컴퓨터 기반 방법으로서,
    상기 후보 문자 스트링의 n-그램 표현을 상기 참조 문자 스트링 세트 내의 각각의 참조 문자 스트링의 n-그램 표현과 개별적으로 비교하는 단계; 및
    상기 후보 문자 스트링과 연관되는 2진 인덱스 값을 생성하는 단계 - 상기 2진 인덱스 값은 상기 후보 문자 스트링과 각각의 상기 참조 문자 스트링 간의 유사성을 나타냄 -
    를 포함하는, 컴퓨터 기반 방법.
  17. 제16항에 있어서, 상기 후보 문자 스트링의 n-그램 표현을 각각의 참조 문자 스트링의 n-그램 표현과 개별적으로 비교하는 단계는 상기 n-그램 표현을 비교하기 위해 구조화 쿼리 언어 n-그램 빈도 유사성 계산을 사용하는 단계를 포함하는, 컴퓨터 기반 방법.
  18. 제16항에 있어서, 상기 후보 문자 스트링의 n-그램 표현을 각각의 참조 문자 스트링의 n-그램 표현과 개별적으로 비교하는 단계는,
    a) 상기 후보 문자 스트링의 상기 n-그램 표현과 연관된 벡터의 크기 (A)를 결정하는 단계;
    b) 상기 참조 문자 스트링의 상기 n-그램 표현과 연관된 벡터의 크기 (B)를 크기 B로 결정하는 단계;
    c) 상기 두 벡터들 간의 내적을 계산하는 단계; 및
    d) (내적/(크기 A×크기 B))에 따라서 상기 참조 문자 스트링에 대한 상기 후보 문자 스트링의 유사성 척도를 계산하는 단계; 및
    e) 각각의 참조 문자 스트링에 대해 단계 b), c), 및 d)를 반복하는 단계
    를 포함하는, 컴퓨터 기반 방법.
  19. 제16항에 있어서, 상기 후보 문자 스트링은 가맹점 이름 및 가맹점 주소 중 하나이고, 상기 데이터베이스 내의 상기 참조 문자 스트링 세트는 각각 더 큰 가맹점 이름들 및 가맹점 주소들의 세트인, 컴퓨터 기반 방법.
  20. 제16항에 있어서,
    동일한 2진 인덱스 값을 공유하는 레코드들을 합치는 단계; 및
    모든 매칭한 n-그램 표현의 빈도 가중치의 곱을 합함으로써 관련도에 의해 상기 합쳐진 레코드들을 정렬하는 단계
    를 포함하는, 컴퓨터 기반 방법.
KR1020107017218A 2007-12-31 2008-12-04 데이터베이스 내에 근사 스트링 매칭을 구현하기 위한 방법 및 시스템 KR101462707B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/967,494 2007-12-31
US11/967,494 US7925652B2 (en) 2007-12-31 2007-12-31 Methods and systems for implementing approximate string matching within a database
PCT/US2008/085585 WO2009085555A2 (en) 2007-12-31 2008-12-04 Methods and systems for implementing approximate string matching within a database

Publications (2)

Publication Number Publication Date
KR20100123684A true KR20100123684A (ko) 2010-11-24
KR101462707B1 KR101462707B1 (ko) 2014-11-27

Family

ID=40799785

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107017218A KR101462707B1 (ko) 2007-12-31 2008-12-04 데이터베이스 내에 근사 스트링 매칭을 구현하기 위한 방법 및 시스템

Country Status (11)

Country Link
US (2) US7925652B2 (ko)
EP (1) EP2240847A4 (ko)
JP (2) JP5372956B2 (ko)
KR (1) KR101462707B1 (ko)
AU (1) AU2008343493B2 (ko)
BR (1) BRPI0821428A2 (ko)
CA (1) CA2710753C (ko)
MX (1) MX2010007274A (ko)
RU (2) RU2487394C2 (ko)
SG (1) SG186687A1 (ko)
WO (1) WO2009085555A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140094002A (ko) * 2011-11-15 2014-07-29 아브 이니티오 테크놀로지 엘엘시 데이터 클러스터링, 세그멘테이션, 및 병렬화

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9041744B2 (en) 2005-07-14 2015-05-26 Telecommunication Systems, Inc. Tiled map display on a wireless device
US8666976B2 (en) 2007-12-31 2014-03-04 Mastercard International Incorporated Methods and systems for implementing approximate string matching within a database
US7925652B2 (en) * 2007-12-31 2011-04-12 Mastercard International Incorporated Methods and systems for implementing approximate string matching within a database
US8738486B2 (en) * 2007-12-31 2014-05-27 Mastercard International Incorporated Methods and apparatus for implementing an ensemble merchant prediction system
US8775441B2 (en) * 2008-01-16 2014-07-08 Ab Initio Technology Llc Managing an archive for approximate string matching
US10269024B2 (en) * 2008-02-08 2019-04-23 Outbrain Inc. Systems and methods for identifying and measuring trends in consumer content demand within vertically associated websites and related content
US8191766B2 (en) * 2008-03-04 2012-06-05 Mastercard International Incorporated Methods and systems for managing merchant identifiers
EP2277105A4 (en) * 2008-04-07 2012-09-19 Telecomm Systems Inc PROXIMITY SEARCH FOR POINT OF INTEREST NAMES COMBINING UNEXPECTED CHAIN CORRESPONDENCE WITH INCREASING RAY SEARCH
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
US8321958B1 (en) 2008-07-30 2012-11-27 Next It Corporation Detecting presence of a subject string in a target string and security event qualification based on prior behavior by an end user of a computer system
US8396658B2 (en) * 2008-10-06 2013-03-12 Telecommunication Systems, Inc. Probabilistic reverse geocoding
US8594627B2 (en) 2008-10-06 2013-11-26 Telecommunications Systems, Inc. Remotely provisioned wirelessly proxy
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
US8484148B2 (en) * 2009-05-28 2013-07-09 Microsoft Corporation Predicting whether strings identify a same subject
US8271499B2 (en) * 2009-06-10 2012-09-18 At&T Intellectual Property I, L.P. Incremental maintenance of inverted indexes for approximate string matching
US20110040604A1 (en) * 2009-08-13 2011-02-17 Vertical Acuity, Inc. Systems and Methods for Providing Targeted Content
US8739032B2 (en) * 2009-10-11 2014-05-27 Patrick Sander Walsh Method and system for document presentation and analysis
US20110161091A1 (en) * 2009-12-24 2011-06-30 Vertical Acuity, Inc. Systems and Methods for Connecting Entities Through Content
JP2011243148A (ja) * 2010-05-21 2011-12-01 Sony Corp 情報処理装置、情報処理方法及びプログラム
US20110314010A1 (en) * 2010-06-17 2011-12-22 Microsoft Corporation Keyword to query predicate maps for query translation
US8463797B2 (en) * 2010-07-20 2013-06-11 Barracuda Networks Inc. Method for measuring similarity of diverse binary objects comprising bit patterns
US8805095B2 (en) * 2010-12-03 2014-08-12 International Business Machines Corporation Analysing character strings
WO2012078810A2 (en) * 2010-12-07 2012-06-14 Groupon Zappedy, Inc. Method and system for credit card holder identification
US9418385B1 (en) * 2011-01-24 2016-08-16 Intuit Inc. Assembling a tax-information data structure
BR112014000756A2 (pt) 2011-07-13 2017-11-28 Mastercard International Inc recuperação instantânea de informação de comerciante para transações finaceiras
US20130117074A1 (en) * 2011-11-09 2013-05-09 Infosys Limited Method and system to measure operational efficiency levels of business functions
US9298693B2 (en) 2011-12-16 2016-03-29 Microsoft Technology Licensing, Llc Rule-based generation of candidate string transformations
US8924446B2 (en) 2011-12-29 2014-12-30 Verisign, Inc. Compression of small strings
US20130311362A1 (en) 2012-04-26 2013-11-21 Mastercard International Incorporated Systems and methods for verifying payee information in electronic payments
US8732183B2 (en) * 2012-05-29 2014-05-20 Sap Portals Israel Ltd Comparing strings of characters
US20140006440A1 (en) * 2012-07-02 2014-01-02 Andrea G. FORTE Method and apparatus for searching for software applications
CN103530299B (zh) * 2012-07-05 2017-04-12 阿里巴巴集团控股有限公司 一种搜索结果的生成方法及装置
US8719236B2 (en) * 2012-08-23 2014-05-06 Microsoft Corporation Selecting candidate rows for deduplication
US8630953B1 (en) 2012-09-14 2014-01-14 Mastercard International Incorporated Methods and systems for creating a transaction lifecycle for a payment card transaction
WO2014047214A1 (en) * 2012-09-18 2014-03-27 Hendrey Geoffrey R Hierarchical ordering of strings
US20140129285A1 (en) * 2012-11-07 2014-05-08 Xerox Corporation Systems and methods for efficient workflow similarity detection
US10157418B1 (en) * 2012-12-07 2018-12-18 Capital One Financial Services Systems and computer-implemented processes for occupational risk assessment
US20140214886A1 (en) 2013-01-29 2014-07-31 ParElastic Corporation Adaptive multi-client saas database
US9286618B2 (en) 2013-03-08 2016-03-15 Mastercard International Incorporated Recognizing and combining redundant merchant designations in a transaction database
US9021450B2 (en) 2013-03-11 2015-04-28 International Business Machines Corporation Scalable and precise string analysis using index-sensitive static string abstractions
US10140664B2 (en) * 2013-03-14 2018-11-27 Palantir Technologies Inc. Resolving similar entities from a transaction database
US10262358B2 (en) 2013-05-02 2019-04-16 Mastercard International Incorporated Merchant continuity correction using cardholder loyalty information
US20150006358A1 (en) * 2013-07-01 2015-01-01 Mastercard International Incorporated Merchant aggregation through cardholder brand loyalty
US9830325B1 (en) * 2013-09-11 2017-11-28 Intuit Inc. Determining a likelihood that two entities are the same
US8938686B1 (en) 2013-10-03 2015-01-20 Palantir Technologies Inc. Systems and methods for analyzing performance of an entity
US10521866B2 (en) 2013-10-15 2019-12-31 Mastercard International Incorporated Systems and methods for associating related merchants
US10026114B2 (en) * 2014-01-10 2018-07-17 Betterdoctor, Inc. System for clustering and aggregating data from multiple sources
US10572935B1 (en) * 2014-07-16 2020-02-25 Intuit, Inc. Disambiguation of entities based on financial interactions
US9747273B2 (en) * 2014-08-19 2017-08-29 International Business Machines Corporation String comparison results for character strings using frequency data
US9591014B2 (en) 2015-06-17 2017-03-07 International Business Machines Corporation Capturing correlations between activity and non-activity attributes using N-grams
US10475052B2 (en) 2015-12-22 2019-11-12 Mastercard International Incorporated Systems and methods for use in evaluating aggregate merchant sets
US10152596B2 (en) 2016-01-19 2018-12-11 International Business Machines Corporation Detecting anomalous events through runtime verification of software execution using a behavioral model
CN105956067B (zh) * 2016-04-27 2019-07-05 北京小米移动软件有限公司 资源搜索方法及装置
US9892789B1 (en) 2017-01-16 2018-02-13 International Business Machines Corporation Content addressable memory with match hit quality indication
KR20230152172A (ko) * 2017-03-19 2023-11-02 오펙-에슈콜롯 리서치 앤드 디벨롭먼트 엘티디 K-부정합 검색을 위한 필터를 생성하는 시스템 및 방법
US10496706B2 (en) 2017-04-17 2019-12-03 International Business Machines Corporation Matching strings in a large relational database
US11640436B2 (en) * 2017-05-15 2023-05-02 Ebay Inc. Methods and systems for query segmentation
KR101945234B1 (ko) * 2017-07-14 2019-02-08 (주)인터버드 마지막 알파벳 제거 알고리즘을 이용한 반도체 부품 검색 방법
RU2667608C1 (ru) * 2017-08-14 2018-09-21 Иван Александрович Баранов Способ обеспечения целостности данных
CN109857740B (zh) * 2019-01-25 2021-06-04 上海赜睿信息科技有限公司 字符串的存储方法、匹配方法、电子设备及可读存储介质
US11232267B2 (en) * 2019-05-24 2022-01-25 Tencent America LLC Proximity information retrieval boost method for medical knowledge question answering systems
WO2020242337A1 (ru) * 2019-05-28 2020-12-03 Публичное Акционерное Общество "Сбербанк России" Способ и система определения схожести векторных представлений участников транзакций
US11783342B1 (en) * 2019-07-09 2023-10-10 Wells Fargo Bank, N.A. Blockchain blacklist anti-money laundering system (BBAMLS)
US10819849B1 (en) 2019-10-10 2020-10-27 Motorola Solutions Inc. Device, system and method for address validation
US11586615B2 (en) * 2020-07-29 2023-02-21 Bank Of America Corporation System for generation of resource identification numbers to avoid electronic misreads
RU2766156C1 (ru) * 2021-02-03 2022-02-08 Общество с ограниченной ответственностью "Технологии Отраслевой Трансформации" (ООО "ТОТ") Способ и устройство определения населенного пункта, в котором установлен терминал
US20230133690A1 (en) * 2021-11-01 2023-05-04 Salesforce.Com, Inc. Processing forms using artificial intelligence models
CN116484830B (zh) * 2023-06-26 2023-12-26 山东省标准化研究院(Wto/Tbt山东咨询工作站) 基于大数据的互联网广告智能监测系统

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06195386A (ja) * 1992-12-25 1994-07-15 Toshiba Corp データ検索装置
JPH0927004A (ja) * 1995-07-13 1997-01-28 Toshiba Corp 情報検索システム
US6006221A (en) 1995-08-16 1999-12-21 Syracuse University Multilingual document retrieval system and method using semantic vector matching
JP3160201B2 (ja) * 1996-03-25 2001-04-25 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 情報検索方法、情報検索装置
RU2163026C2 (ru) * 1997-10-15 2001-02-10 Удмуртский государственный университет Способ прогнозирования погоды
US6073095A (en) 1997-10-15 2000-06-06 International Business Machines Corporation Fast vocabulary independent method and apparatus for spotting words in speech
JPH11143877A (ja) * 1997-10-22 1999-05-28 Internatl Business Mach Corp <Ibm> 圧縮方法、辞書の見出し語インデックス・データを圧縮するための方法、及び機械翻訳システム
US6167369A (en) 1998-12-23 2000-12-26 Xerox Company Automatic language identification using both N-gram and word information
US7526468B2 (en) * 1999-01-08 2009-04-28 Computer Associates Think, Inc. System and method for recursive path analysis of DBMS procedures
US7406214B2 (en) 1999-05-19 2008-07-29 Digimarc Corporation Methods and devices employing optical sensors and/or steganography
WO2001009765A1 (en) 1999-08-03 2001-02-08 Compudigm International Limited Method and system for matching data sets
JP2001075964A (ja) * 1999-08-31 2001-03-23 Sony Corp 情報処理装置および情報処理方法、並びに記録媒体
JP2001101411A (ja) * 1999-09-28 2001-04-13 Japan Science & Technology Corp パターン・マッチング・システムおよび方法
US6944344B2 (en) * 2000-06-06 2005-09-13 Matsushita Electric Industrial Co., Ltd. Document search and retrieval apparatus, recording medium and program
JP3573688B2 (ja) * 2000-06-28 2004-10-06 松下電器産業株式会社 類似文書検索装置及び関連キーワード抽出装置
US7328211B2 (en) * 2000-09-21 2008-02-05 Jpmorgan Chase Bank, N.A. System and methods for improved linguistic pattern matching
JP2002183171A (ja) * 2000-12-12 2002-06-28 Matsushita Electric Ind Co Ltd 文書データ・クラスタリングシステム
AU2002237495A1 (en) 2001-03-13 2002-09-24 Intelligate Ltd. Dynamic natural language understanding
US6625600B2 (en) * 2001-04-12 2003-09-23 Telelogue, Inc. Method and apparatus for automatically processing a user's communication
US7698228B2 (en) 2001-04-27 2010-04-13 Accenture Llp Tracking purchases in a location-based services system
JP2003006214A (ja) * 2001-06-26 2003-01-10 Canon Inc 文書検索処理方法及び装置並びに記憶媒体
GB2381688B (en) 2001-11-03 2004-09-22 Dremedia Ltd Time ordered indexing of audio-visual data
US7290048B1 (en) 2002-03-29 2007-10-30 Hyperformix, Inc. Method of semi-automatic data collection, data analysis, and model generation for the performance analysis of enterprise applications
JP2004094916A (ja) * 2002-07-08 2004-03-25 Cannac:Kk 問題解決支援システム、問題解決支援方法、及びプログラム
JP3781005B2 (ja) * 2002-12-12 2006-05-31 セイコーエプソン株式会社 文書抽出装置及び文書抽出プログラム並びに文書抽出方法
US7296011B2 (en) 2003-06-20 2007-11-13 Microsoft Corporation Efficient fuzzy match for evaluating data records
JP2005352888A (ja) 2004-06-11 2005-12-22 Hitachi Ltd 表記揺れ対応辞書作成システム
JP2006004366A (ja) * 2004-06-21 2006-01-05 Advanced Telecommunication Research Institute International 機械翻訳システム及びそのためのコンピュータプログラム
US7536408B2 (en) * 2004-07-26 2009-05-19 Google Inc. Phrase-based indexing in an information retrieval system
WO2006116570A2 (en) 2005-04-25 2006-11-02 The Ticket Reserve, Inc. Methods and apparatus to predict demand for a product or service
US20070073745A1 (en) 2005-09-23 2007-03-29 Applied Linguistics, Llc Similarity metric for semantic profiling
JP2007122398A (ja) * 2005-10-27 2007-05-17 Kenichi Nakamura フラグメントの同一性判定方法およびコンピュータプログラム
JP2007122403A (ja) * 2005-10-28 2007-05-17 Fuji Xerox Co Ltd 文書タイトルおよび関連情報の自動抽出装置、抽出方法および抽出プログラム
US20070162481A1 (en) 2006-01-10 2007-07-12 Millett Ronald P Pattern index
US7925652B2 (en) * 2007-12-31 2011-04-12 Mastercard International Incorporated Methods and systems for implementing approximate string matching within a database

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140094002A (ko) * 2011-11-15 2014-07-29 아브 이니티오 테크놀로지 엘엘시 데이터 클러스터링, 세그멘테이션, 및 병렬화

Also Published As

Publication number Publication date
RU2487394C2 (ru) 2013-07-10
SG186687A1 (en) 2013-01-30
AU2008343493A1 (en) 2009-07-09
US20090171955A1 (en) 2009-07-02
JP5372956B2 (ja) 2013-12-18
WO2009085555A2 (en) 2009-07-09
JP5613307B2 (ja) 2014-10-22
AU2008343493B2 (en) 2014-01-09
MX2010007274A (es) 2010-12-02
CA2710753A1 (en) 2009-07-09
WO2009085555A3 (en) 2010-01-07
EP2240847A4 (en) 2012-12-05
CA2710753C (en) 2016-06-07
US20110167060A1 (en) 2011-07-07
US7925652B2 (en) 2011-04-12
RU2013119801A (ru) 2014-11-10
RU2623802C2 (ru) 2017-06-29
BRPI0821428A2 (pt) 2015-06-16
EP2240847A2 (en) 2010-10-20
KR101462707B1 (ko) 2014-11-27
JP2011509463A (ja) 2011-03-24
US8219550B2 (en) 2012-07-10
RU2010125681A (ru) 2011-12-27
JP2014029713A (ja) 2014-02-13

Similar Documents

Publication Publication Date Title
KR101462707B1 (ko) 데이터베이스 내에 근사 스트링 매칭을 구현하기 위한 방법 및 시스템
KR101468764B1 (ko) 앙상블 가맹점 예측 시스템을 구현하기 위한 방법 및 장치
US8666976B2 (en) Methods and systems for implementing approximate string matching within a database
US11393044B2 (en) Systems and methods for associating related merchants
AU2020283880B2 (en) System and method for information retrieval for noisy data
WO2014004478A1 (en) Methods and systems for implementing approximate string matching within a database
Sreejanya et al. Big Data Analysis Using Financial Risk Management

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: 20171018

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee