IP Library Patent Application 14160554
Patent Application
App. No. 14/160,554

AUTOMATICALLY IDENTIFYING MATCHING RECORDS FROM MULTIPLE DATA SOURCES

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
14/160,554
Abstract

A system identifies matching records from two or more different data sources. The system applies a scoring algorithm to identify potential matching pairs of records. A score is provided for each candidate pair of records. Records are pre-filtered based on predefined attributes. The scoring algorithm is applied to the filtered records. A set of potential matches are provided with a corresponding score. The set of potential matches are presented in a descending score order. A decision may be made for a best match based on the scores.

Claims (59)

1 . A method executed at least in part in a computing device to automatically select matching records from data sources, the method comprising:

identifying at least two datasets from the data sources;

filtering the at least two datasets to determine the matching records;

identifying candidate matching pairs from the matching records;

computing a score for each of the candidate matching pairs; and

identifying a most likely match based on the score.

2 . The method of claim 1 , further comprising:

filtering the at least two datasets based on predefined criteria to include a minimal set of records of the at least two datasets.

3 . The method of claim 1 , wherein further comprising:

computing a Cartesian product for the at least two datasets.

4 . The method of claim 1 , wherein identifying the candidate matching pairs comprises:

iterating through each of the candidate matching pairs inside a Cartesian product for the at least two datasets to identify a combination of the matching records.

5 . The method of claim 4 , further comprising:

excluding one or more of the candidate matching pairs based on predefined criteria.

6 . The method of claim 1 , wherein computing the score for each of the candidate matching pairs comprises:

applying a scoring algorithm to each of the candidate matching pairs based on a comparison of a set of common attributes of the candidate matching pairs.

7 . The method of claim 6 , wherein the scoring algorithm comprises: S(i,j)=Σ k=1 p s(i, j, k), wherein p is the set of common attributes, s is the score, i is a total number of records in a first dataset of the at least two datasets, j is a total number of records in a second dataset of the at least two datasets, and k is a total number of the candidate matching pairs.

8 . The method of claim 1 , further comprising:

generating a list of the candidate matching pairs in a descending order based on the score of each of the candidate matching pairs.

9 . The method of claim 8 , further comprising:

selecting the most likely match from the list of the candidate matching pairs based on one of the candidate matching pairs having the score at a top of the list.

10 . The method of claim 1 , further comprising:

excluding one or more of the candidate matching pairs having the score below a predefined threshold value.

11 . A computing device to automatically select matching records from data sources, the computing device comprising:

a memory;

a processor coupled to the memory, the processor executing a scoring engine, wherein the scoring engine is configured to:

identify at least two datasets from the data sources;

filter the at least two datasets to determine the matching records;

identify candidate matching pairs from the matching records;

compute a score for each of the candidate matching pairs;

identify a most likely match based on the score; and

generate a list of the candidate matching pairs in a descending order based on the score of each of the candidate matching pairs.

12 . The computing device of claim 11 , wherein the scoring engine is further configured to:

select the most likely match from the list of the candidate matching pairs based on one of the candidate matching pairs having the score at a top of the list.

13 . The computing device of claim 11 , wherein the scoring engine is further configured to:

apply a string comparison to compute the score.

14 . The computing device of claim 13 , wherein the scoring engine is further configured to:

determine the string comparison from a normalized nearness function.

15 . The computing device of claim 13 , wherein the scoring engine is further configured to:

compute a longest common substring (LCS) for each of the candidate matching pairs.

16 . The computing device of claim 15 , wherein the scoring engine is further configured to:

compute a value by dividing a length of LCS by a length of a shortest common substring for each of the candidate matching pairs.

17 . The computing device of claim 16 , wherein the scoring engine is further configured to:

compute the score by normalizing the value between a range of 1 to 10.

18 . A computer-readable memory device with instructions stored thereon to automatically select matching records from data sources, the instructions including:

identifying at least two datasets from the data sources;

filtering the at least two datasets to determine the matching records;

identifying candidate matching pairs from the matching records;

computing a score for each of the candidate matching pairs;

identifying a most likely match based on the score by:

generating a list of the candidate matching pairs in a descending order based on the score of each of the candidate matching pairs; and

selecting the most likely match from the list of the candidate matching pairs based on one of the candidate matching pairs having the score at a top of the list.

19 . The computer-readable memory device of claim 18 , wherein the instructions further comprise:

applying a scoring algorithm to each of the candidate matching pairs based on a comparison of a set of common attributes of the candidate matching pairs, wherein the scoring algorithm comprises: S(i,j)=Σ k=1 p s(i, j, k), wherein p is the set of common attributes, s is the score, i is a total number of records in a first dataset of the at least two datasets, j is a total number of records in a second dataset of the at least two datasets, and k is a total number of the candidate matching pairs.

20 . The computer-readable memory device of claim 18 , wherein the instructions further comprise:

applying a string comparison to compute the score;

computing a longest common substring (LCS) for each of the candidate matching pairs;

computing a value by dividing a length of LCS by a length of a shortest common substring for each of the candidate matching pairs; and

computing the score by normalizing the value between a range of 1 to 10.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 039025/0454 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2014
From: STURZOIU, BOGDAN A.; ILKER, M. CAVIT
To: MICROSOFT CORPORATION
Reel/Frame 032024/0138 →