File size: 2,756 Bytes
25c9790 ca0e6d5 16281b5 d40c327 16281b5 3e9fcf9 16281b5 d40c327 16281b5 d40c327 16281b5 6bd637b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
---
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 |
|:-------------------:|:---------------:|:--------------:|
|  | .jpeg) | .jpeg) | 

## π₯ Authors
* **Gal** - Data Scientist & Developer
* **Matan** - Data Scientist & Developer |