System and method for food categorization
First Claim
Patent Images
1. A method comprising:
- receiving, by a food categorization engine provided on a server and operating in a training mode, a training food data set including a plurality of text descriptions of a plurality of food items and a corresponding association of each of the plurality of food items of the training food data set with one or more food categories of a plurality of food categories, wherein the food categories are food nutrient categories, wherein the training food data set is provided from a database of crowd-sourced data records of food items, each of the data records entered into the database by a plurality of users of a fitness management system;
extracting, by the food categorization engine, one or more features from each text description of the training food data set to generate a feature set for each food item of the training food data set;
analyzing, by the food categorization engine, the feature set for each food item of the training food data set to determine sets of food categorization features that correlate to individual ones of the one or more food categories, wherein the sets of food categorization features are defined by a plurality of category vectors, each of the category vectors associated with one of the food categories;
receiving, by the food categorization engine operating in an operational mode, a text description of a food item entered by a user via a client device, wherein the client device is in communication with the server, wherein the text description of the food item entered by the user is associated with a data record selected by the user as being indicative of a consumed item, the data record being provided from the database of crowd-sourced data records of food items;
standardizing the text description of the food item by removing nonstandard words and/or characters from the one or more individual words and/or characters of the text description of the food item, wherein the nonstandard words and/or characters are inconsistent naming and spelling errors in the text description of the food item;
analyzing, by the food categorization engine, one or more individual words and/or characters of the text description of the food item, wherein analyzing the one or more individual words and/or characters of the text description of the food item comprises generating a numerical vector representative thereof;
automatically selecting, by the food categorization engine, one or more food categories with which to associate the food item based at least in part on a result of the analysis of the one or more individual words and/or characters of the text description of the food item, wherein automatically selecting one or more food categories comprises comparing the numerical vector to the plurality of category vectors associated with individual ones of the one or more food categories, wherein said comparing is accomplished by matrix-vector multiplication wherein the plurality of category vectors define a matrix and the numerical vector is multiplied by the matrix;
amending the data record associated with the food item in the database to include the selected one or more food categories;
selecting the amended data record based on the one or more food categories; and
presenting data from the amended data record to the user on a display of the client device.
7 Assignments
0 Petitions
Accused Products
Abstract
Disclosed embodiments include apparatuses, methods and storage media associated with food item categorization. In embodiments, an apparatus may include one or more processors and a food categorization engine. The food categorization engine may be operated by the one or more processors to cause the apparatus to receive a description of a food item; analyze the description of the food item; and select one or more food categories with which to associate the food item based at least in part on a result of the analysis. Other embodiments may be described and claimed.
23 Citations
23 Claims
-
1. A method comprising:
-
receiving, by a food categorization engine provided on a server and operating in a training mode, a training food data set including a plurality of text descriptions of a plurality of food items and a corresponding association of each of the plurality of food items of the training food data set with one or more food categories of a plurality of food categories, wherein the food categories are food nutrient categories, wherein the training food data set is provided from a database of crowd-sourced data records of food items, each of the data records entered into the database by a plurality of users of a fitness management system; extracting, by the food categorization engine, one or more features from each text description of the training food data set to generate a feature set for each food item of the training food data set; analyzing, by the food categorization engine, the feature set for each food item of the training food data set to determine sets of food categorization features that correlate to individual ones of the one or more food categories, wherein the sets of food categorization features are defined by a plurality of category vectors, each of the category vectors associated with one of the food categories; receiving, by the food categorization engine operating in an operational mode, a text description of a food item entered by a user via a client device, wherein the client device is in communication with the server, wherein the text description of the food item entered by the user is associated with a data record selected by the user as being indicative of a consumed item, the data record being provided from the database of crowd-sourced data records of food items; standardizing the text description of the food item by removing nonstandard words and/or characters from the one or more individual words and/or characters of the text description of the food item, wherein the nonstandard words and/or characters are inconsistent naming and spelling errors in the text description of the food item; analyzing, by the food categorization engine, one or more individual words and/or characters of the text description of the food item, wherein analyzing the one or more individual words and/or characters of the text description of the food item comprises generating a numerical vector representative thereof; automatically selecting, by the food categorization engine, one or more food categories with which to associate the food item based at least in part on a result of the analysis of the one or more individual words and/or characters of the text description of the food item, wherein automatically selecting one or more food categories comprises comparing the numerical vector to the plurality of category vectors associated with individual ones of the one or more food categories, wherein said comparing is accomplished by matrix-vector multiplication wherein the plurality of category vectors define a matrix and the numerical vector is multiplied by the matrix; amending the data record associated with the food item in the database to include the selected one or more food categories; selecting the amended data record based on the one or more food categories; and presenting data from the amended data record to the user on a display of the client device. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. One or more non-transitory computer-readable media having a plurality of instructions stored thereon, the instructions, in response to execution by a processor of a network-side computing device in communication with a crowd-sourced database of data records of food items, provide the computing device with a food item categorization engine operated to:
-
receive, in a training mode, a training food data set including a plurality of text descriptions of a plurality of food items and a corresponding association of each of the plurality of food items of the training food data set with one or more food categories of a plurality of food categories, wherein the food categories are food nutrient categories, wherein the training food data set is provided from a database of crowd-sourced data records of food items, each of the data records entered into the database by a plurality of users of a fitness management system; extract one or more features from each text description of the training food data set to generate a feature set for each food item of the training food data set; analyze the feature set for each food item of the training food data set to determine sets of food categorization features that correlate to individual ones of the one or more food categories, wherein the sets of food categorization features are defined by a plurality of category vectors, each of the category vectors associated with one of the food categories; receive, in an operational mode, a data record including a text description of a food item from a client-side application configured to log consumption of food items, the client-side application in communication with the network-side computing device, wherein the received data record is selected by the user as being indicative of a consumed item, the data record being provided from the database of crowd-sourced data records of food items, each of the data records in the database of crowd-sourced data records previously entered into the database by a plurality of users of the fitness management system; standardize the text description of the food item included with the received data record by removing nonstandard words and/or characters from one or more individual words and/or characters of the text description of the food item, wherein the nonstandard words and/or characters are inconsistent naming and spelling errors in the text description of the food item; analyze one or more individual words and/or characters of the text description of the food item to create a numerical vector representative thereof; automatically select one or more food categories with which to associate the received data record and associated food item based at least in part on a result of a comparison of the numerical vector to the plurality of category vectors associated with individual ones of the one or more food categories, wherein the food categories are food nutrient categories, and wherein the comparison is accomplished by matrix-vector multiplication wherein the plurality of category vectors associated with individual ones of the one or more food categories define a matrix that is multiplied by the numerical vector; amend the data record associated with the food item in the database to include the automatically selected one or more food categories; select the amended data record based on the one or more food categories; and present data from the amended data record to the user on a display of the client device. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A server apparatus, comprising:
-
at least one transceiver; a storage apparatus configured to store a plurality of instructions of a food categorization engine; and one or more processors configured to execute the plurality of instructions of the food categorization engine, which when executed cause the server apparatus to; receive, in a training mode, a training food data set including a plurality of text descriptions of a plurality of food items and a corresponding association of each of the plurality of food items of the training food data set with one or more food categories of a plurality of food categories, wherein the food categories are food nutrient categories, wherein the training food data set is provided from a database of crowd-sourced data records of food items, each of the data records entered into the database by a plurality of users of a fitness management system; extract one or more features from each text description of the training food data set to generate a feature set for each food item of the training food data set; analyze the feature set for each food item of the training food data set to determine sets of food categorization features that correlate to individual ones of the one or more food categories, wherein the sets of food categorization features are defined by a plurality of category vectors, each of the category vectors associated with one of the food categories; receive, in an operational mode, at the transceiver an input from a client device comprising a data record including a description of a food item, wherein the received data record is indicative of a consumed item, the data record being provided from the database of crowd-sourced data records of food items, each of the data records in the database of crowd-sourced data records previously entered into the database by a plurality of users of the fitness management system; standardize the description of the food item to create a plurality of tokens representative of one or more individual words and/or characters thereof, wherein standardizing the description of the food item includes removing non-standard words and/or characters from the one or more individual words and/or characters, wherein the non-standard words and/or characters are inconsistent naming and spelling errors in the text description of the food item; convert the plurality tokens to a numerical vector; compare the numerical vector to a plurality of sets of the plurality of category vectors, each set being associated to a respective one of a plurality of food categories, wherein the plurality of food categories are a plurality of food nutrient categories, and wherein said comparison is accomplished by matrix-vector multiplication wherein the plurality of category vectors define a matrix that is multiplied by the numerical vector; based on the comparison, identify a one of the plurality of food categories associated to a one of the plurality of sets of the plurality of category vectors to which the numerical vector matches within a predetermined threshold; amend the data record to include the identified one of a plurality of food categories, the data record associated with the description of the food item in the database; select the amended data record from the database based on the identified one of the plurality of food categories; and present data from the amended data record to the client device. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
Specification