|
|
--- |
|
|
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 |