Patent ID: 7076485

Claim:
A method for determining whether records are similar in a database containing both structured and unstructured, free-text data, the method comprising the steps of: accessing two of the records from the database for evaluation; evaluating a match between the two records as a weighted match between each of a plurality of available fields, such that a matching process is selected as appropriate from among a group of matching processes including strict Boolean, ordinal, and vector-based matching processes, wherein: when a strict Boolean matching process is selected, applying a match function as an exact match test, when an ordinal matching process is selected, applying a match function that makes use of information concerning the size and ordering of the data domain, and when a vector-based matching process is selected applying a match function that uses a vector space frequency test; and calculating a similarity score between the two records, as follows: sim(record i , record j )= w 1 *match( a 1i ,a 1j )+ w 2 *match( a 2i ,a 2j )+. . . w n *match( a ni ,a nj ) wherein sim is a similarity function that determines the similarity score for the two records, record i is a first record of the two records and is identified in the database by an iterator i, record j is a second record of the two records and is identified in the database by an iterator j, iterator n identifies a field position for a given field a ni in the record i and a corresponding field position for a given field a nj in the record j , match indicates the match function, and a symbol w n indicates a predefined weight for each result of each match function.