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.
Sentiment Analysis
2. Price vs. Rating Analysis:
Investigating the relationship between resort cost and user satisfaction.
Price Analysis
3. Resort Features Correlation:
Understanding which features (Nightlife, Snow Quality) correlate most with positive reviews.
Features Correlation
4. Key Topics (Word Cloud):
We extracted the most common terms used by skiers to describe their experiences using NLP techniques.
Word Cloud
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:
Model Benchmark
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.
App Screenshot
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.