Title: Utilising Text Mining Techniques for Personalised Diet Recommendations using Heterogeneous Data
Created in fulfillment of the requirements for the ICS5111 Mining Large Scale Data assignment by Nathan Portelli and Oleg Grech.
FoodData Central ; Jamie Oliver Recipes ; Spoonacular ; Stopwords
This project aims to develop a personalised diet recommender system by leveraging text-mining techniques to extract insights from diverse data sources. Datasets comprising structured, semi-structured, and unstructured nutritional information and recipes, with the latter scraped using the Beautiful Soup library, are utilised to offer tailored meal plans matching individual needs. Word2Vec is also implemented for ingredient extraction from recipe data. The implementation identifies ingredients, calories, and nutritional values while considering users’ Basal Metabolic Rate (BMR) and preferences. Collaborative filtering is explored for recommending similar recipes based on user data. A Proof of concept, developed using Next.js and deployed on ics5111.vercel.app, showcases intelligent meal plan recommendations. This prototype was well-received in a usability study, with an average SUS Score of 93.25.
More information can be found in the project's report or presentation.
This application has been deployed online through Vercel via the link: ics5111.vercel.app.
- Open the folder in the IDE of your choice.
- Ensure that you create the
.env
file based on the.env.example
. - Obtain a Spoonacular API key, and add it to the
.env
file. - Open the terminal and run
npm install
. Please ensure that you are usingNode.js
version 20 or higher. - Run
npm run dev
.
If you are on macOS and have nvm
installed, run nvm install
and nvm use
.
- Open to the
Extra
folder on the IDE of your choice, and navigate to the required script. - Run
python *name_of_script*.py
-
Click "Click here to get started" button.
Click "Don't have an account? Register" to create an account.
-
Input your information into the "Personal Details", "Food Preferences" and "Food Restrictions" sections.
-
Pick your diet plan goal, then click "Generate Recommendations".
-
Pick one item from the Breakfast, Lunch, and Dinner options.
-
If none of the recommendations are to your liking, you can click "Find Alternatives" on an item closest to your liking, then pick one of the three alternative recommendations.
-
Rate your recommendations, then click "Set Menu for Today". A pop-up should appear informing you that the meal plan can be found in the History tab.
-
Click on "History" tab at the top to get a full list of ingredients and instructions to prepare your meal.
-
Prepare, then enjoy your meals! 😊