IP Library Granted Patent US 8,428,948
Granted Patent B1
US 8,428,948 · App. 12/839,764 · Granted Apr 23, 2013

Usage based query response

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 8,428,948
App. No.
12/839,764
Granted
Apr 23, 2013
Kind
B1
Abstract

It is possible to provide meaningful responses to queries using systems which consider usage of words in the queries when analyzing those queries and determining what information is possibly relevant. This approach can be applied in online shopping systems by identification of nouns or noun phrases reflecting products available through the system.

Claims (121)

1. A system comprising:

(a) a database storing a plurality of records;

(b) a computer readable medium storing data comprising a dictionary list comprising a plurality of word groups identified as corresponding to an invented part of speech;

(c) a computer configured via a set of data to perform a set of tasks comprising:

(i) receiving an input string, the input string comprising a plurality of words comprising an input word group corresponding to the invented part of speech;

(ii) calculating a set of part of speech scores for the input string wherein calculating the set of part of speech scores comprises, for each word group from a set of word groups from the dictionary list, calculating a measure of similarity between:

(1) the input word group corresponding to the invented part of speech; and

(2) the word group from the set of word groups from the dictionary list for which the part of speech score is being calculated;

(iii) determining a result set comprising a set of records retrieved from the database, wherein each record from the result set comprises an identifying word group corresponding to the invented part of speech; and

(iv) for each record in a subset of records from the result set, determining a match score based on a relevant part of speech score from the previously calculated set of part of speech scores, wherein the relevant part of speech score corresponds to the identifying word group from the record in the subset of records for which the match score is being determined; and

wherein the cardinality of the subset of records is less than or equal to the cardinality of the set of records from the result set;

wherein:

(A) each record from the plurality of records stored in the database corresponds to a class from a plurality of classes;

(B) the data stored on the computer readable medium further comprises a class probability index, wherein the class probability index comprises, for each class in a subset of the plurality of classes:

(i) general probability data that words appear in records corresponding to the class; and

(ii) specialized probability data that word groups in the dictionary list are used as the invented part of speech in records corresponding to the class;

(C) calculating a set of class scores for the input string, wherein the set of class scores comprises, for each class from the subset of the plurality of classes, a probability that the input string corresponds to that class;

(D) each record from the result set corresponds to a class from the subset of the plurality of classes; and

(E) the match score for each record from the subset of records from the result set is further based on a relevant class score from the previously calculated set of class scores, wherein the relevant class score corresponds to the class corresponding to the record from the subset of records for which the match score is being determined;

wherein the cardinality of the subset of the plurality of classes is less than or equal to the cardinality of the plurality of classes.

2. The system of claim 1 , wherein calculating the set of class scores for the input string comprises, for each class in the subset of the plurality of classes, calculating a corresponding class score using an equation, wherein using the equation comprises calculating:

P combined (class|input)= W class *P invented (class|input)+(1 −W class )* P non — invented (class|input)

wherein:

(a) P invented (class|input) is a specialized probability that the input word group corresponding to the invented part of speech is used as the invented part of speech in records corresponding to the class;

(b) P non — invented (class|input) is a general probability that the words from the input string appear in records corresponding to the class;

(c) P combined (class|input) is the corresponding class score, representing a probability that the input string corresponds to the class; and

(d) W class is a weight reflecting confidence in the values of P invented (class|input) and P non — invented (class|input) for the class.

3. The system of claim 2 , wherein P combined (class|input) for a first class from the subset of the plurality of classes is calculated using a different W class value than is used to calculate P combined (class|input) for a second class from the subset of the plurality of classes.

4. The system of claim 1 , wherein calculating the set of class scores for the input string comprises:

(a) if there is at least one class in the plurality of classes for which a probability that the input word group corresponding to the invented part of speech is used as the invented part of speech in records corresponding to that class is greater than zero then, for class in the subset of the plurality of classes, calculating a corresponding class score using an equation wherein using the equation comprises calculating:

P combined (class|input)= W class *P invented (class|input)+(1 −W class )* P non — invented (class|input)

wherein:

P invented (class|input) is a specialized probability that the input word group corresponding to the invented part of speech is used as the invented part of speech in records corresponding to the class;

(ii) P non — invented (class|input) is a general probability that the words from the input string appear in records corresponding to the class;

(iii) P combined (class|input) is the corresponding class score, representing a probability that the input string corresponds to the class; and

(iv) W class is a weight reflecting confidence in the values of P invented (class|input) and P non — invented (class|input) for the class;

(b) otherwise, if there is no class in the plurality of classes for which the probability that the input word group corresponding to the invented part of speech is used as the invented part of speech in records corresponding to that class is greater than zero then, for class in the subset of the plurality of classes, calculating the corresponding class score comprises calculating the class score based on P non — invented (class|input), without considering whether the input word group is used as the invented part of speech in records corresponding to the class.

5. The system of claim 1 wherein determining the match score for each record in the subset of records from the result set comprises combining a set of scoring data comprising:

(a) the relevant class score corresponding to the record;

(b) the relevant part of speech score corresponding to the record; and

(c) a baseline score corresponding to the record;

wherein combining the set of scoring data comprises weighting the relevant part of speech score corresponding to the record by multiplying the relevant part of speech score corresponding to the record by a weighting factor.

6. A system comprising:

(a) a database storing a plurality of records;

(b) a computer readable medium storing data comprising a dictionary list comprising a plurality of word groups identified as corresponding to an invented part of speech;

(c) a computer configured via a set of data to perform a set of tasks comprising:

(i) receiving an input string, the input string comprising a plurality of words comprising an input word group corresponding to the invented part of speech;

(ii) calculating a set of part of speech scores for the input string, wherein calculating the set of part of speech scores comprises, for each word group from a set of word groups from the dictionary list, calculating a measure of similarity between:

(1) the input word group corresponding to the invented part of speech; and

(2) the word group from the set of word groups from the dictionary list for which the part of speech score is being calculated; and

(iii) determining a result set comprising a set of records retrieved from the database, wherein each record from the result set comprises an identifying word group corresponding to the invented part of speech; and

(iv) for each record in a subset of records from the result set, determining a match score based on a relevant part of speech score from the previously calculated set of part of speech scores, wherein the relevant part of speech score corresponds to the identifying word group from the record in the subset of records for which the match score is being determined; and

wherein the cardinality of the subset of records is less than or equal to the cardinality of the set of records from the result set;

wherein calculating the set of part of speech scores for the input string comprises, for each word group from the set of word groups from the dictionary list, calculating a cosine similarity measure between:

(A) a first word group corresponding to the input word group corresponding to the invented part of speech; and

(B) a second word group corresponding to the word group from the set of word groups from the dictionary list;

wherein the cosine similarity measure is weighted by exponentially increasing the weight given to the similarity of words as those words approach the end of the first word group and the second word group.

7. The system of claim 6 , wherein calculating the set of part of speech scores for the input string comprises:

(a) defining the first word group by reordering the input word group by moving any grouping words from the input word group to the beginning of the input word group;

(b) defining the second word group by reordering the word group from the set of word groups from the dictionary list by moving any grouping words from the word group from the set of word groups from the dictionary list to the beginning of the word group from the set of word groups from the dictionary list.

8. The system of claim 6 , wherein calculating the set of part of speech scores for the input string comprises:

(a) defining the first word group by deleting any grouping words from the input word group; and

(b) defining the second word group by deleting any grouping words from the word group from the set of word groups from the dictionary list.

9. A method comprising:

(a) receiving an input string, the input string comprising a plurality of words comprising an input word group corresponding to an invented part of speech;

(b) calculating via a computer a set of part of speech scores for the input string, wherein calculating the set of part of speech scores comprises, for each word group from a set of word groups from a dictionary list stored in advance on a computer readable medium, calculating a measure of similarity between:

(i) the input word group corresponding to the invented part of speech; and

(ii) the word group from the set of word groups from the dictionary list for which the part of speech score is being calculated;

wherein the dictionary list comprises a plurality of word groups identified as corresponding to the invented part of speech;

(c) determining a result set comprising a set of records retrieved from a database wherein each record from the result set comprises an identifying word group corresponding to the invented part of speech; and

(d) for each record in a subset of records from the result set, determining via the computer a match score based on a relevant part of speech score from the previously calculated set of part of speech scores, wherein the relevant part of speech score corresponds to the identifying word group from the record in the subset of records for which the match score is being determined; and

wherein the cardinality of the subset of records is less than or equal to the cardinality of the set of records from the result set;

wherein:

(A) each record stored in the database corresponds to a class from a plurality of classes;

(B) in addition to storing the dictionary list, the computer readable medium also has stored therein a class probability index, wherein the class probability index comprises, for each class in a subset of the plurality of classes:

(i) general probability data that words appear in records corresponding to the class; and

(ii) specialized probability data that word groups in the dictionary list are used as the invented part of speech in records corresponding to the class;

(C) the method further comprises calculating a set of class scores for the input string, wherein the set of class scores comprises, for each class from the subset of the plurality of classes, a probability that the input string corresponds to that class;

(D) each record from the result set corresponds to a class from the subset of the plurality of classes; and

(E) the match score for each record from the subset of records from the result set is further based on a relevant class score from the previously calculated set of class scores, wherein the relevant class score corresponds to the class corresponding to the record from the subset of records for which the match score is being determined;

wherein the cardinality of the subset of the plurality of classes is less than or equal to the cardinality of the plurality of classes.

10. The method of claim 9 , wherein calculating the set of class scores for the input string comprises, for each class in the subset of the plurality of classes, calculating a corresponding class score using an equation, wherein using the equation comprises calculating:

P combined (class|input)= W class *P invented (class|input)+(1 −W class )* P non — invented (class|input)

wherein:

(a) P invented (class|input) is a specialized probability that the input word group corresponding to the invented part of speech is used as the invented part of speech in records corresponding to the class;

(b) P non — invented (class|input) is a general probability that the words from the input string appear in records corresponding to the class;

(c) P combined (class|input) is the corresponding class score, representing a probability that the input string corresponds to the class; and

(d) W class is a weight reflecting confidence in the values of P invented (class|input) and P non — invented (class|input) for the class.

11. The method of claim 9 , wherein calculating the set of class scores for the input string comprises:

(a) if there is at least one class in the plurality of classes for which a probability that the input word group corresponding to the invented part of speech is used as the invented part of speech in records corresponding to that class is greater than zero then, for class in the subset of the plurality of classes, calculating a corresponding class score using an equation wherein using the equation comprises calculating:

P combined (class|input)= W class *P invented (class input)+(1 −W class )* P non — invented (class|input)

wherein:

(i) P invented (class|input) is a specialized probability that the input word group corresponding to the invented part of speech is used as the invented part of speech in records corresponding to the class;

(ii) P non — invented (class|input) is a general probability that the words from the input string appear in records corresponding to the class;

(iii) P combined (class|input) is the corresponding class score, representing a probability that the input string corresponds to the class; and

(iv) W class is a weight reflecting confidence in the values of P invented (class|input) and P non — invented (class|input) for the class;

(b) otherwise, if there is no class in the plurality of classes for which the probability that the input word group corresponding to the invented part of speech is used as the invented part of speech in records corresponding to that class is greater than zero then, for class in the subset of the plurality of classes, calculating the corresponding class score comprises calculating the class score based on P non — invented (class|input), without considering whether the input word group is used as the invented part of speech in records corresponding to the class.

12. The method of claim 9 wherein determining the match score for each record in the subset of records from the result set comprises combining a set of scoring data comprising:

(a) the relevant class score corresponding to the record;

(b) the relevant part of speech score corresponding to the record; and

(c) a baseline score corresponding to the record;

wherein combining the set of scoring data comprises weighting the relevant part of speech score corresponding to the record by multiplying the relevant part of speech score corresponding to the record by a weighting factor.

13. A method comprising:

(a) receiving an input string, the input string comprising a plurality of words comprising an input word group corresponding to an invented part of speech;

(b) calculating via a computer a set of part of speech scores for the input string, wherein calculating the set of part of speech scores comprises, for each word group from a set of word groups from a dictionary list stored in advance on a computer readable medium, calculating a measure of similarity between:

(i) the input word group corresponding to the invented part of speech; and

(ii) the word group from the set of word groups from the dictionary list for which the part of speech score is being calculated;

wherein the dictionary list comprises a plurality of word groups identified as corresponding to the invented part of speech;

(c) determining a result set comprising a set of records retrieved from a database, wherein each record from the result set comprises an identifying word group corresponding to the invented part of speech; and

(d) for each record in a subset of records from the result set, determining via the computer a match score based on a relevant part of speech score from the previously calculated set of part of speech scores, wherein the relevant part of speech score corresponds to the identifying word group from the record in the subset of records for which the match score is being determined; and

wherein the cardinality of the subset of records is less than or equal to the cardinality of the set of records from the result set;

wherein calculating the set of part of speech scores for the input string comprises, for each word group from the set of word groups from the dictionary list, calculating a cosine similarity measure between:

(A) a first word group corresponding to the input word group corresponding to the invented part of speech; and

(B) a second word group corresponding to the word group from the set of word groups from the dictionary list;

wherein the cosine similarity measure is weighted by exponentially increasing the weight given to the similarity of words as those words approach the end of the first word group and the second word group.

14. The method of claim 13 , wherein calculating the set of part of speech scores for the input string comprises:

(a) defining the first word group by reordering the input word group by moving any grouping words from the input word group to the beginning of the input word group;

(b) defining the second word group by reordering the word group from the set of word groups from the dictionary list by moving any grouping words from the word group from the set of word groups from the dictionary list to the beginning of the word group from the set of word groups from the dictionary list.

15. The method of claim 13 , wherein calculating the set of part of speech scores for the input string comprises:

(a) defining the first word group by deleting any grouping words from the input word group; and

(b) defining the second word group by deleting any grouping words from the word group from the set of word groups from the dictionary list.

Assignments (19)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057570/0268) Recorded Mar 31, 2025
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: TABOOLA.COM LTD; PERFECT MARKET, INC.; CONNEXITY, INC.
Reel/Frame 070690/0269 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY BY ADDING THE THIRD ASSIGNOR PREVIOUSLY RECORDED AT REEL: 70553 FRAME: 219. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT. Recorded Mar 28, 2025
From: CONNEXITY, INC.; TABOOLA.COM LTD.; TABOOLA, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070671/0358 →
SECURITY AGREEMENT Recorded Mar 19, 2025
From: TABOOLA.COM LTD.; TABOOLA, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070553/0219 →
PATENT SECURITY AGREEMENT Recorded Sep 22, 2021
From: TABOOLA.COM LTD.; PERFECT MARKET, INC.; CONNEXITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 057570/0268 →
TERMINATION AND RELEASE OF TRADEMARK SECURITY AGREEMENT Recorded Sep 3, 2021
From: BANK OF AMERICA, N.A.
To: CONNEXITY, INC.; BECOME, INC.
Reel/Frame 057406/0330 →
ENTITY CONVERSION Recorded Jun 15, 2020
From: CONNEXITY, INC.
To: CONNEXITY, LLC
Reel/Frame 052945/0581 →
ENTITY CONVERSION Recorded Jun 15, 2020
From: CONNEXITY, LLC
To: CONNEXITY, INC.
Reel/Frame 052945/0590 →
RELEASE OF SECURITY INTEREST Recorded Oct 4, 2016
From: LBC CREDIT PARTNERS III, L.P.
To: CONNEXITY, INC.; BECOME, INC.
Reel/Frame 039934/0886 →
RELEASE OF SECURITY INTEREST Recorded Oct 4, 2016
From: LBC CREDIT PARTNERS III, L.P.
To: CONNEXITY, INC.; BECOME, INC.
Reel/Frame 039935/0233 →
CHANGE OF NAME Recorded May 12, 2015
From: SHOPZILLA, INC.
To: CONNEXITY, INC.
Reel/Frame 035646/0591 →
MERGER Recorded Feb 27, 2015
From: SHOPZILLA, INC.; CONNEXITY, INC.
To: SHOPZILLA, INC.
Reel/Frame 035047/0109 →
SECURITY INTEREST Recorded Feb 27, 2015
From: CONNEXITY, INC.; BECOME, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 035047/0271 →
CHANGE OF NAME Recorded Feb 27, 2015
From: SHOPZILLA, INC.
To: CONNEXITY, INC.
Reel/Frame 035112/0599 →
RELEASE OF SECURITY INTEREST Recorded Feb 17, 2015
From: OBSIDIAN AGENCY SERVICES, INC., AS COLLATERAL AGENT
To: SHOP HOLDING CORPORATION; CONNEXITY, INC., F/K/A SHOPZILLA, INC.; ZAPPLI, INC.; CONNEXITY, INC.
Reel/Frame 034973/0361 →
RELEASE OF SECURITY INTEREST Recorded Feb 16, 2015
From: WELLS FARGO CAPITAL FINANCE, LLC, AS AGENT
To: SHOP HOLDING CORPORATION; CONNEXITY, INC., F/K/A SHOPZILLA, INC.; ZAPPLI, INC.; CONNEXITY, INC.
Reel/Frame 034967/0454 →
SECURITY INTEREST Recorded Feb 13, 2015
From: CONNEXITY, INC.; BECOME, INC.
To: LBC CREDIT PARTNERS III, L.P., AS AGENT
Reel/Frame 034958/0942 →
PATENT SECURITY AGREEMENT Recorded Jun 2, 2011
From: SHOP HOLDING CORPORATION; SHOPZILLA, INC.
To: WELLS FARGO CAPITAL FINANCE, LLC, AS AGENT
Reel/Frame 026376/0981 →
PATENT SECURITY AGREEMENT Recorded Jun 2, 2011
From: SHOPZILLA, INC.; SHOP HOLDING CORPORATION
To: OBSIDIAN AGENCY SERVICES, INC., AS COLLATERAL AGENT
Reel/Frame 026377/0180 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2011
From: ROIZEN, IGOR; JAWOR, WOJCIECH; DUTTON, KEITH
To: SHOPZILLA, INC.
Reel/Frame 026132/0990 →