FlavorCompass is a data-driven recipe recommendation system that transforms structured culinary data into interpretable, similarity-based food recommendations.
The system scrapes recipes, engineers multi-dimensional flavor profiles, and builds a content-based recommendation engine powered by cosine similarity.
FlavorCompass integrates:
Web scraping
Relational database modeling
Feature engineering
Machine learning
Interactive UI
Instead of relying on opaque text embeddings, the system models explicit culinary attributes such as:
Taste — sweet, salty, sour, umami, spicy
Texture — creamy, crispy, fatty
Protein type — meat, fish, dairy, plant-based
Cuisine — Italian, Polish, Asian, Mexican
Cooking technique — fried, baked, grilled, boiled
Dish category — dessert, soup, salad, main dish
Caloric profile
Dietary properties — vegan, vegetarian, gluten-free
Each recipe becomes a structured feature vector used for similarity computation.
Recipes are scraped using Scrapy and stored in structured JSON format.
Data is normalized into SQLite:
articles
ingredients
tags
article_flavor_profile (engineered feature table)
The article_flavor_profile table generates 30+ engineered attributes including:
Flavor dimensions
Protein categorization
Cooking method
Cuisine type
Nutritional heuristics
These attributes create a structured vector space representation.
The recommendation model:
Loads structured feature vectors
Scales features
Computes cosine similarity matrix
Builds a user preference vector from selected recipes
Returns top-N similar dishes
This is a deterministic, interpretable content-based recommender system.
An interactive interface is built using Streamlit, allowing users to:
Select recipes they like
Instantly receive personalized recommendations
View titles and associated images
Python
Scrapy
SQLite
Pandas
NumPy
Scikit-learn
Streamlit
Joblib