Aggregate score matching system for transaction records6636850Abstract Method and apparatus that compares each field in two records to determine if the records match. The comparison function can be selected from among varied comparison function that enable close matches by examining all of the fields contained in the compared records. Claims I claim: Description BACKGROUND OF THE INVENTION
Compare
Code
Token Description Function Reference
= Compare for equality if both fields are non- 190
blank.
=B Compare for equality even if the field(s) are 195
blank.
=C Remove blanks and punctuation, then compare 200
for equality.
=G Compare gender code for equality. 205
=N Compare name and gender code for equality. 210
=7 Translate to numeric equivalents and compare if 215
both fields are non-blank.
=8 Compress blanks and special characters then 220
compare the shorter of the data lengths.
AL Close alpha compare. Remove blanks, 225
punctuation, and numerics. Allow one
transposition, "E" and "0" are equal.
BK Compare for equality, allow blanks to a value to 230
be equal.
C Remove blanks and punctuation, compress, 235
then compare left most characters.
F Compare numerics only. Allow one 240
transposition.
L Isolate the right-most numerics and compare. 245
N Compare numerics only. Allow one 250
transposition. Blanks compared to a value are
assigned a negative score and blanks compared
to blanks are assigned a positive score.
NE Compare for inequality if both fields are non- 255
blank.
NK Compare first names for matches using 260
nicknames, initials and full first names.
R Right justify and compare. 265
SR Reverse field order and compare phonetically. 270
SX Compare fields phonetically. 275
W Close alpha/numeric compare. Allow one 280
transposition.
%1 Compare for equality up to the first blank if both 285
fields are non-blank.
%8 Determine shorter of the two fields and compare 290
for the length of the shorter field for equality.
%7 Translate both fields to their numeric 295
equivalents and compare for near-match.
Matching Function Comparison of records is accomplished using the matching function. The matching function is called by the application program using three parameters being: reference to parameter block; reference to transaction record; and reference to legacy records. The reference to the parameter block indicates to the matching function which matching criteria to user based on the reference to a matching table 65 found in the parameter block 40. The present invention is a merge or purge system that uses score-based matching conditions between records. The scores for matches and mismatches are based on values set by the user in a configuration file. Hence, the present invention can use a large number of user specified criteria to identify match conditions between records in a database. Because the matching system relies on scores, an implicit weighting of certain fields in the records can be helpful in confirming otherwise less than certain matches. The present invention allows a plurality of matching procedures to exist simultaneously. This is done by calling the initialization function numerous times, where each instantiation of the initialization function is dispatched with a distinct match title 45. This plurality of simultaneous match procedures results in multiple views of a database file, further aiding the identification of duplicates. The scoring process embodied in the present invention is user-controlled and table-driven. Based on scores set in the matching table 65, the matching function assigns a positive score to a matching condition and a negative score to a non-matching condition. The user can modify the scores in the table as needed, depending on the results desired or the types of source files used. The present invention subjects each field in the record to the matching process, including fields that contain valid data on only a small percentage of the records. In an illustrative example, such fields may include a persons social security number, telephone number, or account number. These fields can be used to identify matches definitively. In other applications, fields could include date of birth and sales territory. Some application could use these types of fields as further evidence in confirming a matching or non-matching condition that could not be conclusively decided otherwise. The application program would then adjust the score values for positive 85 and negative 90 in the matching table 65 by means of the configuration file loaded by the initialization function. The application program using the matching routines that comprise the present invention can develop load groups. Every record in the load group is then compared against a transaction record. If there were any matches against the transaction record, then every other record in the load group is compared against all other records in the load group. Reported duplicates are either records that matched the transaction or records that match a record already matching the transaction. The transaction record is conveyed to the matching function as a reference using the transaction record parameter (see supra). The load group is conveyed to the matching function as a reference to a linked list of legacy records. FIG. 8 is a flow diagram that depicts the operation of the matching function. The flow diagram of FIG. 8 is repeated for every record in the load group submitted to the matching function. The matching function uses the transaction reference parameter to retrieve the transaction record (step 300). Using a reference from the linked list of legacy records, the matching function then retrieves a legacy record. It should be noted that the matching function manages the linked list of legacy records even though this common and well known linked list management process is not specifically described in this text. Using the matching table 65, the matching function determined the matching criteria to be imposed on the two records (step 310). The matching function then performs a comparison of the first field specified in the matching table (step 315). The matching function maintains two accumulators, one for positive scores and a second for negative scores. As a result of the comparison, the matching function adjusts the positive and negative accumulators. When a field matches, the positive accumulator is incremented by the score value specified in the matching table 65 for that field 85. Likewise, when a mismatch is declared, the negative accumulator is incremented by the score value specified in the matching table 65 for that field 90. The matching function then determines if there are any other fields that must be compared (step 325). Once all of the fields between two records have been compared, the matching function compares the value of the positive accumulator to a first positive threshold (step 330). If the positive accumulator exceeds the positive threshold a match is declared. The positive threshold is specified in the configuration file through the record action symbol 100. If a definitive match is not found (as in step 330), then the matching function compares the value stored in the negative accumulator to a second negative threshold (step 335). If the negative accumulator exceeds the negative threshold a mismatch is declared. The negative threshold is also specified in the configuration file through the record action symbol 100. In the event that a definitive mismatch is not found, then the value of the negative accumulator is subtracted from the value of the positive accumulator (step 340). This difference is referred to as a delta value. The delta value is then compared against a delta threshold (step 345). If the delta value exceeds the delta threshold, a match is then declared. This comparison process is repeated for every legacy record specified by the application program calling the matching function (step 350). Termination Function Once an application program no longer needs the matching criteria specified through the use of the initialization function, it must call the termination function. Comparison Mechanisms The foregoing description of the matching function refers to a comparison of fields between two records. The actual comparison mechanism used for a field is specified in the configuration file according to the syntax of the compare code 175 within the field action 105. A plurality of comparison mechanisms are incorporated into the present embodiment of this invention. The specific action of these comparison mechanisms is specified herein. All example comparisons are for illustration only and are not to be construed as limiting the scope of the claimed invention. Compare Code "=" The equal comparison mechanism compares the fields between two records for an exact match only when both fields contain valid (non-blank) data. Positive Score Example A positive score would result from the comparison set forth immediately below. The positive value 85 specified in the matching table 65 for the particular field would be added to the positive accumulator.
Transaction J O H N J O H N S O N
Legacy J O H N J O H N S O N
Negative Score Example A negative score would result from the comparison set forth immediately below. The negative value 90 specified in the matching table 65 for the particular field would be added to the negative accumulator.
Transaction J . J O H N S O N
Legacy J O H N J O H N S O N
Null Score Example A negative score would result from the comparison set forth immediately below. Neither the positive nor the negative accumulators are incremented as a result of a null score.
Transaction
Legacy J O H N J O H N S O N
Compare Code "=B" The equal-B comparison mechanism compares the fields between two records for an exact match. This mechanism compares the fields for an equality match, where blank is considered to be a normal character. Positive Score Example A positive score would result from the comparison set forth immediately below. The positive value 85 specified in the matching table 65 for the particular field would be added to the positive accumulator.
Transaction J O H N J O H N S O N
Legacy J O H N J O H N S O N
Or, where both record fields are blank:
Transaction
Legacy
Negative Score Example A negative score would result from the comparison set forth immediately below. The negative value 90 specified in the matching table 65 for the particular field would be added to the negative accumulator.
Transaction J . J O H N S O N
Legacy J O H N J O H N S O N
Null Score Example A null score is not applicable. Compare Code "=C" The equal-C comparison mechanism compares fields for equality only when both fields contain valid (non-blank) data. Prior to making the comparison, blanks and punctuation character are removed. The fields are then compressed. Positive Score Example A positive score would result from the comparison set forth immediately below. The positive value 85 specified in the matching table 65 for the particular field would be added to the positive accumulator.
Transaction P . O . B O X 9 3 8
Legacy P O B O X 9 3 8
Negative Score Example A negative score would result from the comparison set forth immediately below. The negative value 90 specified in the matching table 65 for the particular field would be added to the negative accumulator.
Transaction P . O . B O X 9 3 8
Legacy B O X 9 3 8
Null Score Example A negative score would result from the comparison set forth immediately below. Neither the positive nor the negative accumulators are incremented as a result of a null score.
Transaction
Legacy B O X 9 3 8
Compare Code "=G" The equal-G comparison mechanism compares two fields that contain a Gender code. A comparison for equality is only made when both fields contain valid (non-blank) data. Positive Score Example A positive score would result from the comparison set forth immediately below. The positive value 85 specified in the matching table 65 for the particular field would be added to the positive accumulator.
Transaction F
Legacy F
Negative Score Example A negative score would result from the comparison set forth immediately below. The negative value 90 specified in the matching table 65 for the particular field would be added to the negative accumulator. ##STR1## Null Score Example A negative score would result from the comparison set forth immediately below. Neither the positive nor the negative accumulators are incremented as a result of a null score. ##STR2## Compare Code "=N" The equal-G comparison mechanism compares two fields that contain the first three characters of a first name and a one character gender code. The equality comparison is only made when both fields contain valid (non-blank) data. In the record layout the field defined contains the first name for a length of 3 followed by the gender code for a length of 1. Positive Score Example A positive score would result from the comparison set forth immediately below. The positive value 85 specified in the matching table 65 for the particular field would be added to the positive accumulator. ##STR3## Negative Score Example A negative score would result from the comparison set forth immediately below. The negative value 90 specified in the matching table 65 for the particular field would be added to the negative accumulator. ##STR4## Null Score Example A negative score would result from the comparison set forth immediately below. Neither the positive nor the negative accumulators are incremented as a result of a null score. ##STR5## Compare Code "=7" The equal-7 comparison mechanism compares two fields after having first converted both fields to their numeric equivalents. An equality test is only performed when both fields contain valid (non-blank) data. A table of numeric equivalents is presented infra. Positive Score Example A positive score would result from the comparison set forth immediately below. The positive value 85 specified in the matching table 65 for the particular field would be added to the positive accumulator. ##STR6## The numeric equivalent of "KIM A. ANDREWS" and "MIKE ANDREWS" are both equal to 2276. Negative Score Example A negative score would result from the comparison set forth immediately below. The negative value 90 specified in the matching table 65 for the particular field would be added to the negative accumulator. ##STR7## Null Score Example A negative score would result from the comparison set forth immediately below. Neither the positive nor the negative accumulators are incremented as a result of a null score. ##STR8## Compare Code "=8" The equal-8 comparison mechanism compares two fields after first Removing blanks and special characters and then compressing the fields. This comparison mechanism then determines the shorter of the two fields and compares the fields for equality using the shorter of the two fields. Comparisons are only made when both fields contain valid (non-blank) data. Positive Score Example A positive score would result from the comparison set forth immediately below. The positive value 85 specified in the matching table 65 for the particular field would be added to the positive accumulator. ##STR9## Negative Score Example A negative score would result from the comparison set forth immediately below. The negative value 90 specified in the matching table 65 for the particular field would be added to the negative accumulator. ##STR10## Null Score Example A negative score would result from the comparison set forth immediately below. Neither the positive nor the negative accumulators are incremented as a result of a null score.
Transaction
Legacy J . S T E V E N S O N
Compare Code "AL" The AL comparison mechanism compares two fields for a close alpha match when both fields contain valid (non-blank) data. This comparison mechanism first removes numeric, blank, and punctuation characters before compressing the fields. The letters E and O are treated as identical. The AL compare allows for one transposition of characters. This test is case sensitive. Positive Score Example A positive score would result from the comparison set forth immediately below. The positive value 85 specified in the matching table 65 for the particular field would be added to the positive accumulator.
Transaction O ` B R I E N
Legacy O B R E I N
OR
Transaction L A R S O N
Legacy L A R S E N
Negative Score Example A negative score would result from the comparison set forth immediately below. The negative value 90 specified in the matching table 65 for the particular field would be added to the negative accumulator.
Transaction O ` B R I E N
Legacy O ` B R I I N
Null Score Example A negative score would result from the comparison set forth immediately below. Neither the positive nor the negative accumulators are incremented as a result of a null score.
Transaction
Legacy O ` B R I I N
Compare Code "BK" The BK comparison mechanism compares two fields for equality. Positive points are assigned when a value is compared to a blank. Positive Score Example A positive score would result from the comparison set forth immediately below. The positive value 85 specified in the matching table 65 for the particular field would be added to the positive accumulator.
Transaction M A I N S T .
Legacy M A I N S T .
OR
Transaction M A I N S T .
Legacy
Negative Score Example A negative score would result from the comparison set forth immediately below. The negative value 90 specified in the matching table 65 for the particular field would be added to the negative accumulator.
Trans- M A I N S T .
action
Leg- L E X I N G T O N A V E .
acy
Null Score Example A null score is not applicable. Compare Code "C#" The C# comparison mechanism compares two fields for a match when both fields contain valid (non-blank) data. This comparison mechanism first removes blanks and punctuation characters before compressing the fields. The syntax of the C# comparison is comprised of the "C" token and a symbol reflecting the length of the comparison. The length token, also referred to as "#", is a single numeric digit and can take on the value of 0 through nine, inclusive. Where the length token is set to zero (0), the C# comparison will compare ten character positions in the two fields compared. Otherwise, the length compared is defined by the value of the length symbol. Positive Score Example A positive score would result from the comparison set forth immediately below. The positive value 85 specified in the matching table 65 for the particular field would be added to the positive accumulator.
Trans- 1 2 3 V A N S T R I K E
action
Leg- 1 2 3 V A N S T R I K E
acy
Negative Score Example A negative score would result from the comparison set forth immediately below. The negative value 90 specified in the matching table 65 for the particular field would be added to the negative accumulator.
Trans- 1 2 3 V A N S T R I K E
action
Leg- 1 2 3 V A N S T R Y K E
acy
Null Score Example A negative score would result from the comparison set forth immediately below. Neither the positive nor the negative accumulators are incremented as a result of a null score.
Transaction
Legacy 1 2 3 V A N S T R Y K E
Compare Code "F#" The F# comparison mechanism compares two fields for a match when both fields contain valid (non-blank) data. This comparison mechanism first removes non-numeric and punctuation characters but will retain blanks (i.e. white space). Where the letter `O` is encountered, it is replaced by a zero. This comparison mechanism will extract a numeric value from the first word and will discard all numeric characters after the first number encountered. Leading blanks and zeros are ignored, but a blank signifies the end of the first number in the field. The F# comparison will remove adjacent duplicate numeric characters and will return a positive match if the two fields compared differ as a result of a single transposition error. The syntax of the F# comparison is comprised of the "F" token and a symbol reflecting the length of the comparison. The length token, also referred to as "#", is a single numeric digit and can take on the value of 0 through nine, inclusive. Where the length token is set to zero (0), the F# comparison will compare ten character positions in the two fields compared. Otherwise, the length compared is defined by the value of the length symbol. Positive Score Example A positive score would result from the comparison set forth immediately below. The positive value 85 specified in the matching table 65 for the particular field would be added to the positive accumulator.
Transaction 1 1 2 3 4
Legacy 1 2 3 4
Or
Transaction 1 8 A
Legacy 1 8
Or
Transaction 1 8 0
Legacy 1 8 O
Or
Transaction 1 3 2 4
Legacy 1 2 3 4
Negative Score Example A negative score would result from the comparison set forth immediately below. The negative value 90 specified in the matching table 65 for the particular field would be added to the negative accumulator.
##STR11##
##STR12##
##STR13##
##STR14##
##STR15##
##STR16##
Null Score Example A negative score would result from the comparison set forth immediately below. Neither the positive nor the negative accumulators are incremented as a result of a null score.
##STR17##
Compare Code "L#" The L# comparison mechanism compares two fields for a match when both fields contain valid (non-blank) data. This comparison mechanism isolates the right most number in the two fields and compares those for equality. The syntax of the L# comparison is comprised of the "L" token and a symbol reflecting the length of the comparison. The length token, also referred to as "#", is a single numeric digit and can take on the value of 0 through nine, inclusive. Where the length token is set to zero (0), the L# comparison will compare ten character positions in the two fields compared. Otherwise, the length compared is defined by the value of the length symbol. Positive Score Example A positive score would result from the comparison set forth immediately below. The positive value 85 specified in the matching table 65 for the particular field would be added to the positive accumulator.
##STR18##
Negative Score Example A negative score would result from the comparison set forth immediately below. The negative value 90 specified in the matching table 65 for the particular field would be added to the negative accumulator.
##STR19##
Null Score Example A negative score would result from the comparison set forth immediately below. Neither the positive nor the negative accumulators are incremented as a result of a null score.
##STR20##
Compare Code "N#" The N# comparison mechanism compares two fields for a match when both fields contain valid (non-blank) data. This comparison mechanism first removes non-numeric and punctuation characters but will retain blanks (i.e. white space). Where the letter `O` is encountered, it is replaced by a zero. This comparison mechanism will extract a numeric value from the first word and will discard all numeric characters after the first number encountered. Leading blanks and zeros are ignored, but a blank signifies the end of the first number in the field. The N# comparison will remove adjacent duplicate numeric characters and will return a positive match if the two fields compared differ as a result of a single transposition error. The N# comparison mechanism will assign positive points where two blank fields are compared. Negative points are assigned is a non-blank value is compared to a blank field. The syntax of the N# comparison is comprised of the "N" token and a symbol reflecting the length of the comparison. The length token, also referred to as "#", is a single numeric digit and can take on the value of 0 through nine, inclusive. Where the length token is set to zero (0), the N# comparison will compare ten character positions in the two fields compared. Otherwise, the length compared is defined by the value of the length symbol. Positive Score Example A positive score would result from the comparison set forth immediately below. The positive value 85 specified in the matching table 65 for the particular field would be added to the positive accumulator.
##STR21##
##STR22##
##STR23##
##STR24##
##STR25##
##STR26##
Negative Score Example A negative score would result from the comparison set forth immediately below. The negative value 90 specified in the matching table 65 for the particular field would be added to the negative accumulator.
##STR27##
##STR28##
##STR29##
##STR30##
##STR31##
Null Score Example The null score is not applicable to the N# comparison mechanism. Compare Code "NE" The NE comparison mechanism compares two fields for a match when both fields contain valid (non-blank) data. The NE comparison mechanism assigns positive scores when fields do not match. Positive Score Example A positive score would result from the comparison set forth immediately below. The positive value 85 specified in the matching table 65 for the particular field would be added to the positive accumulator.
##STR32##
Negative Score Example A negative score would result from the comparison set forth immediately below. The negative value 90 specified in the matching table 65 for the particular field would be added to the negative accumulator.
##STR33##
Null Score Example A negative score would result from the comparison set forth immediately below. Neither the positive nor the negative accumulators are incremented as a result of a null score.
##STR34##
Compare Code "NK" The NK comparison mechanism compares two fields for a match when both fields contain valid (non-blank) data. The NK comparison matches affirmatively if one fields is a nickname of the other. The NK comparison mechanism also matches positive if one field has an initial and that initial matches the first letter of the name in the other field or the first letter of the nickname associated with the name in the other field. Positive Score Example A positive score would result from the comparison set forth immediately below. The positive value 85 specified in the matching table 65 for the particular field would be added to the positive accumulator.
Transaction R O B E R T
Legacy B O B
Or
Transaction R
Legacy R O B E R T
Or
Transaction R
Legacy B O B
Negative Score Example A negative score would result from the comparison set forth immediately below. The negative value 90 specified in the matching table 65 for the particular field would be added to the negative accumulator.
Transaction D O N A L D
Legacy D A N I E L
Or
Transaction J
Legacy T H O M A S
Or
Transaction T
Legacy J
Null Score Example A null score would result from the comparison set forth immediately below. Neither the positive nor the negative accumulators are incremented as a result of a null score.
Transaction D O N A L D
Legacy
Compare Code "R#" The R# comparison mechanism compares two fields for a match when both fields contain valid (non-blank) data. Before performing the comparison, the R# mechanism will right justify both fields. The syntax of the R# comparison is comprised of the "R" token and a symbol reflecting the length of the comparison. The length token, also referred to as "#", is a single numeric digit and can take on the value of 0 through nine, inclusive. Where the length token is set to zero (0), the N# comparison will compare ten character positions in the two fields compared. Otherwise, the length compared is defined by the value of the length symbol. In the case of the R# comparison mechanism, the number of positions compared is from the right end of the field. Positive Score Example Using a comparison code of "R6", a positive score would result from the comparison set forth immediately below. The positive value 85 specified in the matching table 65 for the particular field would be added to the positive accumulator.
Transaction R T 2 , P . O . B O X 9 3 8
Legacy R R 1 , B O X 9 3 8
Negative Score Example A negative score would result from the comparison set forth immediately below. The negative value 90 specified in the matching table 65 for the particular field would be added to the negative accumulator.
Transaction R T 2 , P . O . B O X 9 3 8
Legacy R R 1 B X 9 3 8
Null Score Example A null score would result from the comparison set forth immediately below. Neither the positive nor the negative accumulators are incremented as a result of a null score.
Transaction R T 2 , P . O . B O X 9 3 8
Legacy R R 1 B X 9 3 8
Compare Code "SR" The SR comparison mechanism compares two fields for a match when both fields contain valid (non-blank) data. The SR comparison is a reverse Soundex comparison. The Soundex value for each field is derived by first reversing the order of the characters in each field. Once the characters are reversed in order, the first letter in each word is retained and all occurrences of "A", "E", "H", "I", "O", "U", "W" and "Y" in subsequent positions are eliminated. The remaining subsequent letters, i.e. not the first letter in a word, are replaced by a numeric value according to the following table:
Alpha Character Numeric
B, F, P, V 1
C, G, J, K, Q, S, X, Z 2
D, T 3
L 4
M, N 5
R 6
Once the alpha character are replaced according to the foregoing table, any letters that are adjacent and have the same numeric value are eliminated leaving only the first numeric value. The result of this operation is converted to a letter followed by three digits. This is done by adding trailing zeros if there are less than three numeric value following the letter. Any numeric values in excess of three are simply truncated. Positive Score Example A positive score would result from the comparison set forth immediately below. The positive value 85 specified in the matching table 65 for the particular field would be added to the positive accumulator.
Transaction J E N S E N
Legacy J O H N S O N
Negative Score Example A negative score would result from the comparison set forth immediately below. The negative value 90 specified in the matching table 65 for the particular field would be added to the negative accumulator.
Transaction J O N E S
Legacy J O H N S O N
Null Score Example A null score would result from the comparison set forth immediately below. Neither the positive nor the negative accumulators are incremented as a result of a null score.
Transaction
Legacy J O H N S O N
Compare Code "SX" The SX comparison mechanism compares two fields for a match when both fields contain valid (non-blank) data. The SX comparison is a straight Soundex comparison. The Soundex value for each field is derived by first reversing the order of the characters in each field. Once the characters are reversed in order, the first letter in each word is retained and all occurrences of "A", "E", "H", "I", "O", "U", "W" and "Y" in subsequent positions are eliminated. The remaining subsequent letters, i.e. not the first letter in a word, are replaced by a numeric value according to the following table:
Alpha Character Numeric
B, F, P, V 1
C, G, J, K, Q, S, X, Z 2
D, T 3
L 4
M, N 5
R 6
Once the alpha character are replaced according to the foregoing table, any letters that are adjacent and have the same numeric value are eliminated leaving only the first numeric value. The result of this operation is converted to a letter followed by three digits. This is done by adding trailing zeros if there are less than three numeric value following the letter. Any numeric values in excess of three are simply truncated. Positive Score Example A positive score would result from the comparison set forth immediately below. The positive value 85 specified in the matching table 65 for the particular field would be added to the positive accumulator.
Transaction J E N S E N
Legacy J O H N S O N
Negative Score Example A negative score would result from the comparison set forth immediately below. The negative value 90 specified in the matching table 65 for the particular field would be added to the negative accumulator.
Transaction J O N E S
Legacy J O H N S O N
Null Score Example A null score would result from the comparison set forth immediately below. Neither the positive nor the negative accumulators are incremented as a result of a null score.
Transaction
Legacy J O H N S O N
Compare Code "W#" The W# comparison mechanism compares two fields for a match when both fields contain valid (non-blank) data. The syntax of the W# comparison is comprised of the "W" token and a symbol reflecting the length of the comparison. The length token, also referred to as "#", is a single numeric digit and can take on the value of 0 through nine, inclusive. Where the length token is set to zero (0), the W# comparison will compare ten character positions in the two fields compared. Otherwise, the length compared is defined by the value of the length symbol. The W# comparison mechanism will find a match if there is at most one transposition error. For the purposes of comparison, the W# mechanism will treat `E`, `O`, and `0` (zero) as the same character. The characters `I`, `L`, and `1` (one) are also treated as the same character. Before making the comparison, the W# mechanism will remove adjacent duplicates of either alpha or numeric characters. Blanks and punctuation characters are also removed and both fields are compressed. The comparison only considers the number of character positions specified in the length symbol following the `W ` token. Positive Score Example A positive score would result from the comparison set forth immediately below. The positive value 85 specified in the matching table 65 for the particular field would be added to the positive accumulator.
Transaction 1 1 2 3 4 A
Legacy 1 2 3 4 A
Or
Transaction 1 8 A A
Legacy 1 8 A
Or
Transaction 1 8 0
Legacy 1 8 O
Or
Transaction 1 3 2 4
Legacy 1 2 3 4
Or
Transaction 1 1 P L
Legacy 1 9 1
Or
Transaction 0 0 0 0
Legacy 0 0 0 0
Negative Score Example A negative score would result from the comparison set forth immediately below. The negative value 90 specified in the matching table 65 for the particular field would be added to the negative accumulator.
Trans- 1 2 3 4 5
action
Legacy 1 2 3 4
Or
Trans- 1 1 5 3 5 1 2 T H S
action
Legacy 1 2
Or
Trans- 2 3 4 5
action
Legacy 1 2 3 4
Or
Trans- 1 2 3 4 5
action
Legacy 1 3 2 5 4
Or
Trans- W E S T 1 2 3 4 S T
action
Legacy 1 2 3 4
Null Score Example A null score would result from the comparison set forth immediately below. Neither the positive nor the negative accumulators are incremented as a result of a null score.
Transaction
Legacy W E S T 1 2 3 4 S T
Compound Comparison The present invention provides a means of comparing records in a compound fashion where three distinct comparison codes are used to dictate the level of compounding to be applied in the comparison. The "%1", "%8", and "%7" comparison codes are used to invoke the compound comparison mechanism in this manner. Calling the matching routine with a %1 comparison code results in comparing two fields for equality in a manner analogous to the equal ("=") compare mechanism. If the comparison fails, then the compound mechanism will perform a comparison of the two fields comparing only the number of character positions in each field as dictated by the length of the shortest of the two fields. This second comparison can be invoked directly by using the %8 comparison code. If this second comparison fails, then both fields are converted to a numeric value. This is done by assigning the same value to all vowels and removing all blanks and special characters. The percentage difference between the two values is then compared to a threshold to determine is a match should be declared. The numeric conversion mechanism is invoked by the %7 comparison code. Numeric Equivalents Two comparison mechanisms in the present invention convert an alpha string into a numeric equivalent. This is done by the method described here. First, all vowels are assigned a numeric value of 193. Second, all blanks, dashes, periods, slashes, number signs, underscores, commas and apostrophes are assigned a value of 0. Once this is done, all other characters in the text string are assigned a numeric value according to the table below:
Numeric
Character Value
b 130
c 131
d 132
f 134
g 135
h 136
j 145
k 146
l 147
m 148
n 149
p 151
q 152
r 153
S 162
t 163
v 165
w 166
x 167
y 168
z 169
B 194
C 195
D 196
F 198
G 199
H 200
J 209
K 210
L 211
M 212
N 213
P 215
Q 216
R 217
S 226
T 227
V 229
W 230
X 231
Y 232
Z 233
0 240
1 241
2 242
3 243
4 244
5 245
6 246
7 247
8 248
9 249
After having converted each character into a numeric equivalent, all but one of any adjacent numeric equivalents having the same value are removed. The remaining numeric equivalents are then summed together to yield the value that will be compared. Alternative Embodiments While this invention has been described in terms of several preferred embodiments, it is contemplated that alternatives, modifications, permutations, and equivalents thereof will become apparent to those skilled in the art upon a reading of the specification and study of the drawings. It is therefore intended that the true spirit and scope of the present invention include all such alternatives, modifications, permutations, and equivalents. Some, but by no means all of the possible alternatives are described herein.
|
Same subclass Same class Consider this |
||||||||||
