Repository navigation
Releases
Version 1 Release
Project Overview: Recipe Ingredient Extraction and Classification
Objective:
The goal of this project is to create a chatbot that can recommend recipes based on given ingredients. The process involves scraping recipe data, cleaning and preparing the data, annotating the data for Named Entity Recognition (NER) training, and training an NER model to identify "ingredients" in recipes. We only used a custom entity called ingredients.
Technologies Used:
Python: Primary programming language for scripting and data processing.
BeautifulSoup: Web scraping library used to extract recipe data from the Food Network website.
pandas: Data manipulation library used for handling and processing data.
requests: Library to handle HTTP requests for web scraping.
Spacy: NLP library used for training the NER model.
Doccano: Annotation tool used for labeling training data.
SQL: Storage for checkpointing scraped data.
NumPy: Data processing library for handling arrays and numerical operations.
CSV: Data format for storing intermediate and final datasets.
Sentence Transformer: embedding feature for streamlit chatbot
Pinecone: vector database to store the recipe data in the cloud
Streamlit: chatbot UI
Future:
This is very basic functionality. Here are a couple considerations to advance the chatbot.
- Limit the score so it only select recipes 85 or above
- Add more training data to the training_data.spacy file for other classifications like type of food, cost of food, etc.
- Create a user profile and learn from past searches