IP Library Granted Patent US 9,020,911
Granted Patent B2
US 9,020,911 · App. 13/353,252 · Granted Apr 28, 2015

Name search using multiple bitmap distributions

Inventors: David E. Biesenbach (Alexandria, VA); Steven J. Liddle (Vienna, VA); Stephen J. Watjen (Ashburn, VA); Charles K. Williams (Oak Hill, VA)
Assignee: International Business Machines Corporation
G06F17/30675
View Patent ↗
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 9,020,911
App. No.
13/353,252
Granted
Apr 28, 2015
Kind
B2
Abstract

Provided are a computer implemented method, computer program product, and system for matching names. For a first bitmap distribution, it is determined whether a first bitmap signature of a query name and a second bitmap signature of a target name have a number of character n-grams overlapping that meet or exceed a threshold to generate a first preliminary value. For a second bitmap distribution that is different from the first bitmap distribution, it is determined whether a third bitmap signature of the query name and a fourth bitmap signature of the target name have a number of character n-grams overlapping that meet or exceed a threshold to generate a second preliminary value. The first preliminary value and the second preliminary value are combined, and, if the combination results in a value of true, it is determined that the query name and the target name are to be further processed.

Claims (39)

1. A computer program product for matching names, the computer program product comprising:

a non-transitory computer readable storage medium having computer readable program code embodied therein, wherein the computer readable program code, when executed by a processor of a computer, is configured to perform operations of:

creating a first bitmap distribution of character n-grams distributed into bitmap positions in descending order of frequency of occurrence of the character n-grams in a set of names based on bitmap positions with a lowest cumulative frequency, wherein at least two distinct character n-grams are assigned to a same bitmap position of the bitmap positions;

creating a second bitmap distribution of the character n-grams distributed into the bitmap positions so that the at least two distinct character n-grams are assigned to different bitmap positions and so that any overlapping character n-grams in the first bitmap distribution do not overlap in the second bitmap distribution;

using the first bitmap distribution, determining whether a first bitmap signature of a query name and a second bitmap signature of a target name in a set of names have a number of character n-grams overlapping that meet or exceed a first configurable threshold to generate a first preliminary value;

using the second bitmap distribution, determining whether a third bitmap signature of the query name and a fourth bitmap signature of the target name have a number of character n-grams overlapping that meet or exceed a second configurable threshold to generate a second preliminary value; and

in response to determining that a logical operation applied to the first preliminary value and the second preliminary value results in a value of true, determining that the query name and the target name are to be processed for further comparisons.

2. The computer product of claim 1 , wherein the computer readable program code, when executed by the processor of the computer, is configured to perform operations of:

in response to determining that the logical operation applied to the first preliminary value and the second preliminary value results in a value of false, determining that the query name and the target name are not similar and no further comparisons are to be done.

3. The computer program product of claim 1 , wherein the logical operation comprises a logical OR operation between the first preliminary value and the second preliminary value.

4. The computer program product of claim 1 , wherein the logical operation comprises a logical AND operation between the first preliminary value and the second preliminary value.

5. The computer program product of claim 1 , wherein the computer readable program code, when executed by the processor of the computer, is configured to perform operations of:

creating one or more additional bitmap distributions of the character n-grams for the set of names by distributing the character n-grams into bitmap positions in each of the one or more additional distributions so that at least two distinct character n-grams that were assigned to a same bitmap position in a previous distribution are not assigned to the same bitmap position in a subsequent distribution;

generating an additional preliminary value for each of the one or more additional bitmap distributions; and

combining the first preliminary value, the second preliminary value, and each additional preliminary value using logical operations.

6. The computer program product of claim 5 , wherein the logical operations comprise a combination of logical AND OR operations.

7. The computer program product of claim 1 , wherein a minimum number of matching preliminary values is set at one.

8. The computer program product of claim 1 , wherein a minimum number of matching preliminary values is equal to a total number of distinct character n-gram distributions.

9. The computer program product of claim 1 ,wherein a minimum number of matching prelimary value is equal to at least a half of a number of total distanct character n-gram distributions.

10. A computer system for matching names, comprising:

a processor; and

a storage device coupled to the processor, wherein the storage device has stored thereon a program, and wherein the processor is configured to execute instructions of the program to perform operations, wherein the operations comprise:

creating a first bitmap distribution of character n-grams distributed into bitmap positions in descending order of frequency of occurrence of the character n-grams in a set of names based on bitmap positions with a lowest cumulative frequency, wherein at least two distinct character n-grams are assigned to a same bitmap position of the bitmap positions;

creating a second bitmap distribution of the character n-grams distributed into the bitmap positions so that the at least two distinct character n-grams are assigned to different bitmap positions and so that any overlapping character n-grams in the first bitmap distribution do not overlap in the second bitmap distribution;

using the first bitmap distribution, determining whether a first bitmap signature of a query name and a second bitmap signature of a target name in a set of names have a number of character n-grams overlapping that meet or exceed a first configurable threshold to generate a first preliminary value;

using the second bitmap distribution, determining whether a third bitmap signature of the query name and a fourth bitmap signature of the target name have a number of character n-grams overlapping that meet or exceed a second configurable threshold to generate a second preliminary value; and

in response to determining that a logical operation applied to the first preliminary value and the second preliminary value results in a value of true, determining that the query name and the target name are to be processed for further comparisons.

11. The computer system of claim 10 , wherein the operations further comprise:

in response to determining that the logical operation applied to the first preliminary value and the second preliminary value results in a value of false, determining that query name and the target name are not similar and no further comparisons are to be done.

12. The computer system of claim 10 , wherein the logical operation comprises a logical OR operation between the first preliminary value and the second preliminary value.

13. The computer system of claim 10 , wherein the logical operation comprises a logical AND operation between the first preliminary value and the second preliminary value.

14. The computer system of claim 10 , wherein the operations further comprise:

creating one or more additional bitmap distributions of the character n-grams for the set of name by distributing the character n-grams into bitmap positions in each of the one or more additional distributions so that at least two distinct character n-grams that were assigned to a same bitmap position in a previous distribution are not assigned to the same bitmap position in a subsequent distribution;

generating an additional preliminary value for each of the one or more additional bitmap distributions; and

combining the first preliminary value, the second preliminary value, and each additional preliminary value using logical operations.

15. The computer system of claim 14 , wherein the logical operations comprise a combination of logical AND OR operations.

16. The computer system of claim 10 , wherein the minimum number of matching preliminary values is set at one.

17. The computer system of claim 10 , wherein the minimum number of matching preliminary values is equal to a total number of distinct character n-gram distributions.

18. The computer system of claim 10 , wherein the minimum number of matching preliminary values is equal to at least a half of a number of total distinct character n-gram distributions.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2012
From: BIESENBACH, DAVID E.; LIDDLE, STEVEN J.; WATJEN, STEPHEN J.; WILLIAMS, CHARLES K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 028385/0153 →
Continuity (1)
Related Publication 20130185326A1 · Jul 18, 2013