IP Library Granted Patent US 11,687,992
Granted Patent B2
US 11,687,992 · App. 17/240,639 · Granted Jun 27, 2023

System and method for providing food taxonomy based food search and recommendation

Inventors: Maria Belousova (New York, NY); Eric Farng (New York, NY); Justin Charles Bozonier (Chicago, IL); Thomas Eugene Hayden, III (Evanston, IL); Matthew Maloney (Chicago, IL)
Assignee: GRUBHUB HOLDINGS INC.
G06Q30/0627G06Q50/12
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 11,687,992
App. No.
17/240,639
Granted
Jun 27, 2023
Kind
B2
Abstract

A restaurant service system includes a restaurant server adapted to communicate with diner communication devices and restaurant communication devices. The restaurant server builds a food taxonomy including dishes, dish attributes and dish ingredients. The dishes are mapped from menu items. The server also trains dish classifiers and applies the dish classifiers to map menu items to dishes. Dish attributes are derived from search logs and dish ingredients are extracted from menu item descriptions. The server determines the search intent of a diner based on her search terms. Food search is conducted based on the taxonomy and the search intent with consideration of restaurant similarity and dish popularity. The server also provides dish recommendations based on taste similarity between diners.

Claims (71)

1. A computer system for maintaining and using a dish hierarchy for menu management and food ordering, the computer system comprising:

a server including one or more processors;

a non-transitory computer-readable storage media that is communicatively coupled to the one or more processors and storing one or more sequences of instructions which, when executed by the one or more processors, cause the one or more processors to:

store a dish hierarchy having multiple dish nodes at a plurality of levels, each dish node having one or more properties corresponding to one or more of a common plurality of attributes, the dish hierarchy comprising a plurality of menu items having been received from a first restaurant and mapped to one or more of the multiple dish nodes according to a set of values corresponding to a set of the common plurality of attributes, the plurality of menu items including a first menu item that is mapped to a specific dish node;

receive a set of search terms from a diner communication device;

identify a list of dish nodes of the multiple dish nodes having properties matching the set of search terms, the list of dish nodes including the specific dish node;

send instructions for presenting, by the diner communication device, a graphical user interface (GUI) that is configured to show data related to a list of menu items that are mapped to the list of dish nodes and a list of attributes of the common plurality of attributes for user selection, the list of attributes being used to filter the list of menu items;

receive a food order including the first menu item from the diner communication device;

send the food order to the first restaurant communication device.

2. The system of claim 1 , the common plurality of attributes including a list of dish ingredients, a preparation method, a cuisine type, a healthy option, or a rating.

3. The computer system of claim 1 , the one or more sequences of instructions further causing the one or more processors to:

identify one of the set of search terms that does not appear in the one or more properties of the specific dish node;

update the one or more properties of the specific dish node with the one search term.

4. The computer system of claim 1 , the one or more sequences of instructions further causing the one or more processors to:

select a list of values that are shared by all menu items that are mapped to the specific dish node;

update the one or more properties of the specific dish node with the list of values.

5. The computer system of claim 1 ,

the plurality of menu items further including a second menu item, and

the one or more sequences of instructions further causing the one or more processors to:

calculate an accumulative rank for the third menu item based on a menu rank, a search rank, and a food order rank;

create a new dish node in the dish hierarchy and mapping the second menu item to the new dish node when the accumulative rank for the second menu item is above a threshold.

6. The computer system of claim 1 , the identifying comprising determining a list of ranks for the list of menu items, including a popularity rank, a conversion rank, or a relevance rank, and

the GUI further configured to show the data related to the list of menu items based on the list of ranks.

7. The computer system of claim 1 , the GUI further configured to show the data related to the list of attributes based on a current list of click ranks,

the one or more sequences of instructions further causing the one or more processors to:

receive a click or a selection of one of the list of attributes via the GUI;

update the current list of click ranks based on the click.

8. The computer system of claim 1 , the one or more sequences of instructions further causing the one or more processors to:

assign the diner communication device into one of a plurality of clusters based on order histories associated with diner communication devices from which food orders have been received;

identify an order pattern from the one cluster;

send a recommendation for food to order based on the order pattern to the diner communication device.

9. The computer system of claim 1 , the one or more sequences of instructions further causing the one or more processors to:

determine a diner intent associated with the set of search terms;

identify, when the diner intent indicates a restaurant, a list of restaurants having descriptions matching the set of search terms, the list of restaurants being associated with a plurality of restaurant communication devices form which menu items have been received, and

the GUI further configured to show additional data related to the list of restaurants for user selection.

10. The computer system of claim 9 , determine the diner intent being based on a search log showing search terms and corresponding selections of a restaurant or a menu item from search results.

11. A computer-implemented method of maintaining and using a dish hierarchy for menu management and food ordering, the method comprising:

storing a dish hierarchy having multiple dish nodes at a plurality of levels, each dish node having one or more properties corresponding to one or more of a common plurality of attributes, the dish hierarchy comprising a plurality of menu items having been received from a first restaurant and mapped to one or more of the multiple dish nodes according to a set of values corresponding to a set of the common plurality of attributes, the plurality of menu items including a first menu item that is mapped to a specific dish node;

receiving a set of search terms from a diner communication device;

identifying a list of dish nodes of the multiple dish nodes having properties matching the set of search terms, the list of dish nodes including the specific dish node;

sending instructions for presenting, by the diner communication device, a graphical user interface (GUI) that is configured to show data related to a list of menu items that are mapped to the list of dish nodes and a list of attributes of the common plurality of attributes for user selection, the list of attributes being used to filter the list of menu items;

receiving a food order including the first menu item from the diner communication device; and

sending the food order to the first restaurant communication device.

12. The computer-implemented method of claim 11 , the common plurality of attributes including a list of dish ingredients, a preparation method, a cuisine type, a healthy option, or a rating.

13. The computer-implemented method of claim 11 , the method further comprising:

identifying one of the set of search terms that does not appear in the one or more properties of the specific dish node;

updating the one or more properties of the specific dish node with the one search term.

14. The computer-implemented method of claim 11 , the method further comprising:

selecting a list of values that are shared by all menu items that are mapped to the specific dish node;

updating the one or more properties of the specific dish node with the list of values.

15. The computer-implemented method of claim 11 , the method further comprising:

the plurality of menu items further including a second menu item,

calculating an accumulative rank for the second menu item based on a menu rank, a search rank, and a food order rank;

creating a new dish node in the dish hierarchy and mapping the second menu item to the new dish node when the accumulative rank for the second menu item is above a threshold.

16. The computer-implemented method of claim 11 ,

the identifying comprising determining a list of ranks for the list of menu items, including a popularity rank, a conversion rank, or a relevance rank,

the GUI further configured to show the data related to the list of menu items based on the list of ranks.

17. The computer-implemented method of claim 11 , the method further comprising:

the GUI further configured to show the data related to the list of attributes based on a current list of click ranks,

receiving a click or a selection of one of the list of attributes via the GUI;

updating the current list of click ranks based on the click.

18. The computer-implemented method of claim 11 , the method further comprising:

assigning the diner communication device into one of a plurality of clusters based on order histories associated with diner communication devices from which food orders have been received;

identifying an order pattern from the one cluster;

sending a recommendation for food to order based on the order pattern to the diner communication device.

19. The computer-implemented method of claim 11 , the method further comprising:

determining a diner intent associated with the set of search terms;

identifying, when the diner intent indicates a restaurant, a list of restaurants having descriptions matching the set of search terms,

the list of restaurants being associated with a plurality of restaurant communication devices form which menu items have been received,

the GUI further configured to show additional data related to the list of restaurants for user selection.

20. The computer-implemented method of claim 11 , determining the diner intent being based on a search log showing search terms and corresponding selections of a restaurant or a menu item from search results.

Assignments (2)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Sep 27, 2025
From: GRUBHUB HOLDINGS INC.; GRUBHUB INC.; SCVNGR, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 072953/0771 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2022
From: BELOUSOVA, MARIA; FARNG, ERIC; BOZONIER, JUSTIN CHARLES; HAYDEN, THOMAS EUGENE, III; MALONEY, MATTHEW
To: GRUBHUB HOLDINGS, INC.
Reel/Frame 061323/0016 →