/ICS5111-Mining-Large-Scale-Data

Utilising Text Mining Techniques for Personalised Diet Recommendations using Heterogeneous Data - Project created in fulfilment of the Masters in AI study unit ICS5111 - Mining Large Scale Data

Primary LanguageTypeScript

ICS5111-Mining-Large-Scale-Data

Project Details

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.

Public Datasets/Websites used

FoodData Central ; Jamie Oliver Recipes ; Spoonacular ; Stopwords

Abstract

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.

Vercel Deployment

This application has been deployed online through Vercel via the link: ics5111.vercel.app.

To run the application locally

  • 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 using Node.js version 20 or higher.
  • Run npm run dev.

If you are on macOS and have nvm installed, run nvm install and nvm use.

To run the Python scripts

  • Open to the Extra folder on the IDE of your choice, and navigate to the required script.
  • Run python *name_of_script*.py

How it works

  1. Click "Click here to get started" button. Screenshot 2024-05-25 192035

    Click "Don't have an account? Register" to create an account. Screenshot 2024-05-25 192103

  2. Input your information into the "Personal Details", "Food Preferences" and "Food Restrictions" sections. Screenshot 2024-05-25 192146

  3. Pick your diet plan goal, then click "Generate Recommendations". Screenshot 2024-05-25 192227

  4. Pick one item from the Breakfast, Lunch, and Dinner options. Screenshot 2024-05-25 192329

  5. 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. Screenshot 2024-05-25 192530

  6. 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. Screenshot 2024-05-25 192545 Screenshot 2024-05-25 192608

  7. Click on "History" tab at the top to get a full list of ingredients and instructions to prepare your meal. Screenshot 2024-05-25 192703

  8. Prepare, then enjoy your meals! 😊