This machine learning project predicts the cuisine type and estimates the cooking time of a recipe based on its ingredients and the number of preparation steps. The project features a user-friendly chatbot interface built with Streamlit.
Below is a walkthrough of the chatbot interface. The first image shows the welcome screen, and the second image displays a complete interaction, from user input to the final prediction.
| Welcome Screen | Chat Interaction & Prediction |
|---|---|
![]() |
![]() |
(The images showcase the application's simple UI and the core prediction functionality.)
- Cuisine Prediction: Classifies recipes into one of 6 cuisines (Italian, Mexican, French, Indian, Chinese, and Greek) using the ingredients list.
- Cooking Time Regression: Predicts the total cooking time in minutes based on the number of ingredients, steps, and overall recipe complexity.
- Interactive Chatbot: A simple and intuitive chatbot interface that guides the user to provide the necessary information step-by-step.
- Language: Python
- Data Science & ML: Pandas, NumPy, Scikit-learn, XGBoost, LightGBM, Joblib
- Web Framework: Streamlit
- Dataset: Food.com Recipes and User Interactions from Kaggle.
Follow these steps to run the application on your local machine.
-
Clone the Repository:
git clone https://github.com/obenadak/recipe-analyzer.git cd recipe-analyzer -
Create and Activate a Virtual Environment: This isolates the project's dependencies from your system's Python installation.
# Create the virtual environment python -m venv venv # Activate on Windows (PowerShell) .\venv\Scripts\Activate.ps1 # Activate on macOS/Linux # source venv/bin/activate
-
Install Dependencies: All required libraries are listed in the
requirements.txtfile.pip install -r requirements.txt
-
Run the Streamlit Application:
streamlit run app.py
The application will open in your default web browser at
http://localhost:8501.
A brief overview of the project's directory structure.
Recipe-Analyzer/
├── assets/ # Contains demo images and other static files
├── models/ # Contains the trained .joblib model files
├── notebooks/ # Jupyter Notebook for data analysis and modeling
├── .gitignore # Specifies files for Git to ignore
├── app.py # The main source code for the Streamlit app
├── README.md # This file
└── requirements.txt# A list of project dependencies
This project was developed as a portfolio piece to showcase skills in data preprocessing, feature engineering, model training and evaluation, and building interactive web applications with Streamlit.

