SkiMatch AI: The Intelligent Ski Resort Recommender
Author: Omer Gonen
Course: Introduction to Data Science
Institution: Reichman University
Project Overview
SkiMatch AI is an end-to-end Data Science project that builds a semantic search engine for winter vacations. Instead of relying on rigid filters or checkboxes, this system allows users to describe their dream vacation in natural language.
User Query Example: "I am looking for a cheap resort with great powder snow and crazy nightlife." System Output: Recommended resorts based on meaning, context, and sentiment analysis.
The Pipeline: From Raw Data to Deployed App
This project was built in 5 distinct phases:
Phase 1: Data Generation (Synthetic RAG)
Real-world datasets often lack detailed descriptive reviews. To solve this, I used Large Language Models (LLMs) to generate a rich dataset.
- Volume: Created 10,000 synthetic reviews.
- Diversity: Simulated different personas (Families, Experts, Party-goers) to ensure diverse vocabulary.
- Result: A high-quality, enriched dataset ready for NLP tasks.
Phase 2: Exploratory Data Analysis (EDA)
Before modeling, we analyzed the data to understand trends in the ski industry, sentiment distribution, and price impacts.
1. Data Distribution and Sentiment Analysis:
We analyzed the polarity of the reviews to ensure a balanced dataset for training.

2. Price vs. Rating Analysis:
Investigating the relationship between resort cost and user satisfaction.

3. Resort Features Correlation:
Understanding which features (Nightlife, Snow Quality) correlate most with positive reviews.

4. Key Topics (Word Cloud):
We extracted the most common terms used by skiers to describe their experiences using NLP techniques.

Phase 3: Model Selection and Benchmarking
I compared three state-of-the-art Hugging Face models to find the best embedding solution.
The table below shows the trade-off between Inference Time and Model Accuracy:

Selected Model: all-mpnet-base-v2 (Selected for best semantic accuracy).
Phase 4: The Hybrid Engine (Logic + Semantics)
A major challenge in Vector Search is the "Antonym Problem" (e.g., "Cheap" and "Expensive" vectors are mathematically close). To fix this, I built a Hybrid Architecture:
- Layer 1 (Business Logic): Deterministic filters for critical constraints (Price under 80 Euro, Nightlife Score over 4).
- Layer 2 (Semantic Search): Cosine Similarity search on the filtered subset to find the best textual match.
Phase 5: Deployment
The final model was deployed as a web application using Gradio on Hugging Face Spaces. It features a modern card-based interface for easy browsing.
How to Use the App
- Type a description of your ideal ski trip in the search bar.
- Or click one of the "Quick Starters" below the input box.
- The system will display the top 6 matches with relevance scores and snippets.
Links and Resources
- Dataset Repository: Link to Dataset
- Source Code: View Jupyter Notebook
Author
Omer Gonen Economics and Entrepreneurship Student
