1. Field of the Invention
The present invention relates to information retrieval in a data processing system. The present invention further relates to a method for searching a document database such as the Internet and ranking the results obtained from such a search.
2. Description of Related Art
A computer's logic is both its strength and its weakness; it can only perform what it is told to do. If an alarm clock is set to go off at 6:00 PM, it will go off at exactly that time, even if it was obviously meant to go off at 6:00 AM. People in the real world can solve problems and make decisions relatively easy, but even the simplest decisions are often too difficult to be handled by computer. Fuzzy logic query processing helps to bridge the gap.
Databases are strategic tools because they support business processes. In order for a database to be useful, data must be compiled into information using tools such as queries. Queries allow a user to specify what data to retrieve from a database, and in what form. Fuzzy querying provides a way to retrieve data that was intended to be retrieved, without requiring exact parameters to be defined.
Non-fuzzy query processing relies on Boolean logic, which limits results to true or false (1 or 0). Fuzzy query processing is a superset of Boolean logic that can handle partial truths. Instead of a search results being limited to return a value of true or false, the query returns values as x % true or x % a member of a subset.
Fuzzy queries rely on the use of fuzzy quantifiers. Dr. Lotfi A. Zadeh, the founder of fuzzy logic theory, defined two kinds of quantifiers: absolute and relative. An absolute quantifier can be represented as fuzzy subsets of the non-negative numbers and use words such as at least three or about five. Relative qualifiers are represented as fuzzy subsets of the unit interval and use words such as most, at least half, or almost all.
Fuzzy queries do not take the place of the more structured queries, but expand the alternatives available. Boolean systems use selection and then ordering as a mechanism, where a fuzzy system relies on a single mechanism of overall membership degree. A fuzzy system allows for compromise between the various criteria, where a Boolean system can produce a subset of previously selected elements. There are times when Boolean logic is too rigid to be meaningful to a user. A fuzzy query allows a user to find elements that satisfy a criterion and ranks the results.
An object can be a member of multiple sets with a different degree of membership. The degree of membership is a scale from zero to one. Complete membership has a value of one, and no membership has a value of zero. When running a fuzzy query in a control system, the output is calculated based on the value of membership a given input has in the configured fuzzy sets. Each combination of sets is configured to have a specified output. The output is based on the weighted sum of the amount of membership in each set. The fuzzy models may be used in conjunction with probabilistic models to find a solution.
For example, telling a driving student to apply the brakes 74 feet from the crosswalk is too precise to be followed. Vague wording like “apply the brakes soon”, however, can be interpreted and acted upon. The instruction is received in a fuzzy form, the person associates the message using past experiences, then defuzzifies the message in order to actually apply the brakes at the appropriate time. Fuzzy queries expand query capabilities by allowing for ambiguity and partial membership.
The invention relates to database searching and the ranking of a set of numerical data according to a set of user specified preferences, including target range, fuzziness and bias.
In many database query applications, data records are returned when certain field data falls into a user specified target range. The introduction of fuzziness in the present invention extends the returned data set by including records that are “close” to the target range. The addition of a bias also increases the usefulness of the database query by providing a means to rank the results of the query in a specified order.
The present invention adapts the Lorentzian function to include variables for fuzziness and bias in order to calculate fuzzy scores, which are used to rank the results of database searches. In one embodiment, only a single input target range is used in the database query. In another embodiment, however, multiple query fields are used. According to another embodiment, when multiple query fields are used fuzzy scores are calculated for each query field in each record. The fuzzy scores of each query field in each record are then aggregated into a composite fuzzy score that is then used to rank the results of the database query.
Other features, advantages, and embodiments of the invention are set forth in part in the description that follows, and in part, will be obvious from this description, or may be learned from the practice of the invention.
The foregoing and other features and advantages of this invention will become more apparent by reference to the following detailed description of the invention taken in conjunction with the accompanying drawings.
As embodied and broadly described herein, the preferred embodiments of the present invention are directed to a method for searching a document database such as the Internet according to a set of user specified preferences, including target range, fuzziness and bias and ranking the results obtained from such a search.
The basic building block of the fuzzy score is the Lorentzian function:
As shown in
The fuzzy score allows a user to rank a set of numerical data according to the user's input. The qualitative behavior of the Lorentzian fuzzy score is described as follows. For data that lies outside the target range, the score is zero without fuzziness and in the range [0, 1] with fuzziness. For data that is inside the target range, the score varies linearly, with a bias (higher score) towards either the lower or upper bound of the target range.
The following notation and terminology is used throughout the specification:
According to an embodiment of the present invention, the present invention can calculate a fuzzy score for a user defined database query and rank the results of the query. The fuzzy score is calculated based on user specified criteria including, but not limited to, target range (xmin, xmax), fuzziness (α1 and α2) and bias (β). In another embodiment, the fuzziness and/or bias is static and set by the software/system performing the search. While the parameters for fuzziness and bias are numeric, it is contemplated in at least one embodiment that these parameters be translated into more easily understood terminology for user selection. For example, instead of having a user specify a numeric value for each of the fuzziness parameters, α1 and α2, the user may select from a list of fuzziness categories (i.e. small, medium, large). The terms small, medium and large would equate to specific values of α1 and α2 and would be used to calculate a fuzzy score as described herein. The same holds true for the bias parameter, β. Instead of having a user specify a numeric bias value, the user may select from a list of bias categories (i.e. toward the lower bound, toward the upper bound). These categories would also be equated to specific numeric values and would be used to calculate a fuzzy score as described herein.
In order to illustrate the application of the Lorentzian function to calculate a fuzzy score, several examples will be given. Each example will illustrate how variations in user input parameters (i.e. target values, fuzziness, bias) affect the Lorentzian function as it is used to calculate a fuzzy score. For consistency, the examples will be based on a user who is shopping for a new home via a web site containing new home data. The web site allows the user to search a database of new homes based on the selling price of the home. For the following examples it is assumed the user is interested in houses between $200,000 and $250,000. Thus, the target range is defined as xmin=200000 and xmax=250000. In addition, the web site allows the user to input fuzziness values, α1 and α2, and a bias value, β.
For bias (β) values less than zero (i.e. biased toward the lower bound of the target range), the Lorentzian fuzzy score has the following formula:
For β<0,
where x represents any data values, i.e., x ε {x1, . . . , xk}.
For bias (β) values greater than zero (i.e. biased toward the upper bound of the target range), the Lorentzian fuzzy score has the following formula:
For β>0,
where x represents any data values, i.e., x ε {x1, . . . , xk}.
In the case of no fuzziness, α1=0, α2=0, and where the bias (β) value is less than zero (i.e. biased toward the lower bound of the target range), the Lorentzian fuzzy score has the following formula:
For β<0, α1=0, and α2=0,
where x represents any data values, i.e., x ε {x1, . . . , xk}.
In the case of no fuzziness, α1=0, α2=0, and where the bias (β) value is greater than zero (i.e. biased toward the upper bound of the target range), the Lorentzian fuzzy score has the following formula:
For β>0, α1=0, and α2=0,
where x represents any data values, i.e., x ε {x1, . . . , xk}
In the special case where the target range degenerates into a single value (i.e. xmin=xmax=x) and where the bias (β) value is less than zero (i.e. biased toward the lower bound of the target range), the Lorentzian fuzzy score has the following formula:
For β<0 and xmin=xmax=x,
where x represents any data values, i.e., x ε {x1, . . . , xk}.
In the special case where the target range degenerates into a single value (i.e. xmin=xmax=x) and where the bias (β) value is greater than zero (i.e. biased toward the upper bound of the target range), the Lorentzian fuzzy score has the following formula:
where x represents any data values, i.e., X ε {x1, . . . , xk}.
While each of the above examples has dealt with single term queries (i.e. where the user is searching based only on the selling price of a home), the present invention is easily extended to include queries with multiple search terms. To illustrate how the Lorentzian function can be used in a multiple-field query a more sophisticated home buying example is explored. The home buying database in this example is on the Internet and the user is given the option to search for new homes based on selling price, number of rooms, and number of baths. For this example, it is assumed the database contains the following records:
It is further assumed that the user has entered the following query:
As previously discussed, and as illustrated here, the database or search tool/engine may be set up to allow the user to input non-numeric bias and fuzziness parameters that are more intuitive and user friendly. These non-numeric parameters are then equated to specific numeric parameters by the database application, search tool/engine or other system/software. For this example, the following non-numeric user specified bias parameters are equated to the following numeric parameters: Bias Lower Priced Homes=−0.1, More Rooms=0.1, More Baths=0.1. In addition, for this example, the following non-numeric specified fuzziness parameter is equated to the following numeric parameters: Medium→α1=2, α2=2. While the user, in this example, was only allowed to enter a single fuzziness parameter for the entire query, it is contemplated in another embodiment that each query field (i.e. selling price, number of rooms, number of baths) could have its own separate fuzziness parameter.
The process for searching the database and ranking the results of the query is straightforward. First, a fuzzy score is calculated for each query field and for each record using the appropriate Lorentzian formula. Second, an aggregate fuzzy score is calculated for each record using the fuzzy scores for each query field. Finally, the results are ranked according to the aggregate calculated fuzzy scores for each record.
For β<0,
where x represents any data values, i.e., x ε {x1, . . . , xk}, xmin=200000, xmax=230000, α1=2, α2=2, and β=−0.1.
where x represents any data values, i.e., x ε {x1, . . . , xk}, x=3, α1=2, α2=2, and β=0.1.
Once a fuzzy score is calculated for each query field for each record, an aggregate fuzzy score is calculated for each record. In one embodiment, this is accomplished by simply adding the fuzzy scores of each query field together. In another embodiment, an aggregate fuzzy score is calculated by using a weighted sum. By using a weighted sum the results of a specific query field(s) can be given more weight. For example, a user may consider the selling price of a home more important than any of the other query fields. In order to incorporate this into the ranking methodology, the fuzzy scores calculated based only on the selling price of the home are multiplied by some factor so that the selling price of the home has more influence on the aggregate fuzzy scores.
The aggregate fuzzy scores 1100 for each record in this example are shown in
As would be expected based on the input query, the home selling for $200,000 with 3 rooms and 3 baths is ranked the highest. While a traditional database search would not have retrieved any records outside the user's input target range of $200,000-$230,000, 3 rooms and 3 baths, the present invention has returned all 9 records. Worth noting is the home selling for $195,000 with 3 rooms and 4 baths and the home selling for $235,000 with 4 rooms and 3 baths. Both of these homes would not have been included within the search results in a traditional database search, but in the present invention are ranked high due to the incorporation of the fuzziness parameters in the Lorentzian fuzzy score formulas.
Other embodiments and uses of the present invention will be apparent to those skilled in the art from consideration of this application and practice of the invention disclosed herein. The present description and examples should be considered exemplary only, with the true scope and spirit of the invention being indicated by the following claims. As will be understood by those of ordinary skill in the art, variations and modifications of each of the disclosed embodiments, including combinations thereof, can be made within the scope of this invention as defined by the following claims.
This application is a continuation of pending application Ser. No. 10/745,552, filed Dec. 29, 2003, entitled “Data Ranking With A Lorentzian Fuzzy Score”, which is a continuation of application Ser. No. 09/952,518, filed Sep. 12, 2001, entitled “Data Ranking With A Lorentzian Fuzzy Score”, now U.S. Pat. No. 6,701,312, both of which are incorporated herein by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
Parent | 10745552 | Dec 2003 | US |
Child | 11812954 | Jun 2007 | US |
Parent | 09952518 | Sep 2001 | US |
Child | 10745552 | Dec 2003 | US |