--- title: VEN - AI Restaurant Matchmaker emoji: 🍔 colorFrom: blue colorTo: indigo sdk: gradio sdk_version: 4.19.2 app_file: app.py pinned: false license: mit --- # 🍔 VEN: Semantic Restaurant Discovery System **VEN** is an AI-powered recommendation engine designed to find the perfect restaurant in Tel Aviv based on user context, vibe, and specific preferences. Unlike traditional filters (e.g., "Italian", "Thai"), VEN uses **Semantic Search** and **Persona Matching** to understand the *intent* behind the search (e.g., "A romantic quiet place for a date" vs. "Lively place for drinks with friends"). ## 🚀 Key Features * **Semantic Search:** Uses `Sentence-Transformers` (NLP) to convert user preferences into vector embeddings. * **Persona Matching:** Instead of simple keyword matching, the system identifies the user's "Persona" (Reviewer Type) based on their inputs and finds restaurants loved by similar people. * **Smart Filtering:** Filters by Budget, Diet, Company, Occasion, and Noise Level. * **One-Click Quick Starters:** Pre-configured scenarios for instant recommendations. * **Dark Mode UI:** A sleek, modern user interface built with Gradio. ## 🛠️ Tech Stack * **Python** * **Gradio:** For the web interface. * **Sentence-Transformers (`all-mpnet-base-v2`):** For generating high-quality text embeddings. * **Scikit-Learn:** For calculating Cosine Similarity between user input and reviewer profiles. * **Pandas & NumPy:** For data manipulation and vector operations. ## 🧠 How It Works 1. **Input:** The user selects their preferences (Budget, Diet, Company, Occasion, Atmosphere). 2. **Vectorization:** The system creates a textual description of the user's desire and converts it into a mathematical vector using the `all-mpnet-base-v2` model. 3. **Persona Clustering:** The system compares the user's vector against pre-calculated "Taste Profiles" (Personas) derived from the dataset. 4. **Similarity Search:** It calculates the **Cosine Similarity** to find the closest match. 5. **Ranking:** The system ranks restaurants within that Persona cluster and returns the highest-rated match with a relevant review. ## 🖼️ More Screenshots | Recommendation Card | Filter Settings | Search Results | |:-------------------:|:---------------:|:--------------:| | ![Card](WhatsApp%20Image%202026-01-19%20at%2022.28.46.jpeg) | ![Filters](WhatsApp%20Image%202026-01-19%20at%2022.28.34%20(1).jpeg) | ![Results](WhatsApp%20Image%202026-01-19%20at%2022.28.22%20(1).jpeg) | ![Main Interface](WhatsApp%20Image%202026-01-19%20at%2022.28.58.jpeg) ![Main Interface](WhatsApp%20Image%202026-01-19%20at%2022.28.58.jpeg) ## 👥 Authors * **Gal** - Data Scientist & Developer * **Matan** - Data Scientist & Developer