# US 7,877,403 B2 · System and method for database searching using fuzzy rules

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,877,403 B2
- Document ID: US7877403B2
- Status: Granted
- Kind: B2
- Application number: 11/751,186
- Filed: 2007-05-21
- Published: 2008-11-27
- Granted: 2011-01-25
- Earliest claimed: 2007-05-21
- Assignees: Data Trace Information Services, LLC
- Inventors: Edward M. Schwalb
- Web page: https://patentgrep.com/patent/US7877403B2

## CPC

- G06F 16/3322: {using system suggestions (G06F16/3325 takes precedence)}
- G06F 16/2468: {Fuzzy queries}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An apparatus and method for database searching using fuzzy rules is presented. The apparatus and method may accept a word or word phrase such as a persons name and returns fuzzy rules for database searching. Applicable search rules are selected and word or word phrase equivalents are displayed to a user. The user accepts or rejects each of the word or word phrase. The word or word phrase along with the user's acceptance or rejection are stored in a sample database. The fuzzy rules are modified according to the data in the sample database. The database is filtered by training and testing portions of the database for accuracy and purging the least accurate portions.

## Claims

### Claim 1

A machine storage medium for performing a name search comprising instructions that upon execution cause a processor to:
receive a name of a person;
apply a plurality of fuzzy search rules to the name to generate name equivalents;
apply a plurality of learned rules to the name equivalents to generate at least one stricken name equivalent and at least one non-stricken name equivalent, wherein the at least one stricken name equivalent has been previously rejected by a user;
display the at least one stricken name equivalent and the at least one non-stricken name equivalent;
receive a rejection for the at least one stricken name equivalent or the at least one non-stricken name equivalent; and
modify at least one of the plurality of learned rules based on the rejection.

### Claim 2 (depends on 1)

The storage medium of claim 1 further comprising instructions that upon execution cause the processor to store the name equivalents and corresponding rejection in a database.

### Claim 3 (depends on 2)

The storage medium of claim 2 further comprising instructions that upon execution cause the processor to modify at least one of the plurality of rules based on the contents of the database.

### Claim 4 (depends on 2)

The storage medium of claim 2 wherein the contents of the database are filtered.

### Claim 5 (depends on 1)

The storage medium of claim 1 further comprising instructions that upon execution cause the processor to receive attributes of the name search.

### Claim 6 (depends on 5)

The storage medium of claim 5 wherein the plurality of learned rules applied to the name depends on the attributes of the name search.

### Claim 7 (depends on 1)

The storage medium of claim 1 further comprising instructions that upon execution cause the processor to display two or more learned rules from the plurality of learned rules.

### Claim 8 (depends on 7)

The storage medium of claim 7 further comprising instructions that upon execution cause the processor to select at least one of the two or more learned rules.

### Claim 9 (depends on 8)

The storage medium of claim 8 wherein the plurality of learned rules are modified based on the selection of at least one of the two or more learned rules.

### Claim 10

A readable storage medium for training a computer to perform a fuzzy name search comprising instructions that upon execution cause the computer to:
receive a name from a list of names;
apply a plurality of fuzzy search rules to the name to generate name equivalents;
apply a plurality of learned rules to the name equivalents to generate at least one stricken name equivalent and at least one non-stricken name equivalent, wherein the at least one stricken name equivalent has been previously rejected by a user;
display the at least one stricken name equivalent and the at least one non-stricken name equivalent;
accept or reject the at least one stricken name equivalent and the at least one non-stricken name equivalent; and
modify the plurality of learned rules based on the accepting or rejecting.

### Claim 11 (depends on 10)

The storage medium of claim 10 further comprising instructions that upon execution cause the computer to repeat the steps a pre-determined number of times.

### Claim 12 (depends on 10)

The storage medium of claim 10 further comprising instructions that upon execution cause the computer to store the names and accepted or rejected name equivalents in a database.

### Claim 13 (depends on 12)

The storage medium of claim 12 further comprising instructions that upon execution cause the computer to modify the plurality of learned rules based on the contents of the database.

### Claim 14 (depends on 13)

The storage medium of claim 13 further comprising instructions that upon execution cause the computer to filter the contents of the database.

### Claim 15 (depends on 1)

The storage medium of claim 1 further comprising instructions that upon execution cause the processor to:
generate a plurality of training samples based on the rejection;
generate a plurality of accuracy indices by applying a machine learning algorithm and a plurality of search rules to the plurality of training samples; and
eliminate at least one stricken-name equivalent or at least one non-stricken name equivalent from the plurality of learned rules based on the plurality of accuracy indices.

### Claim 16 (depends on 10)

The storage medium of claim 10 further comprising instructions that upon execution cause the computer to:
generate a plurality of training samples based on the rejected stricken name equivalent and non-stricken name equivalent;
generate a plurality of accuracy indices by applying a machine learning algorithm and a plurality of search rules to the plurality of training samples; and
eliminate at least one stricken-name equivalent or at least one non-stricken name equivalent from the plurality of learned rules based on the plurality of accuracy indices.
