How anas-s-muhammed/movie-recommender works
ReelMatch is a local Streamlit movie-recommendation app backed by MovieLens 100K. The main path loads and validates ratings and metadata, fits collaborative and genre similarity, ranks candidates from selected seed movies, and displays explainable results. The graph also preserves the separately documented offline evaluation workflow. Source excerpts show the app and evaluation script invoking the engine; the dataset files are represented as inputs. No database or external runtime service is shown.
Main entry points: engine.py Load and validate · evaluate.py Leave-one-out evaluation · app.py Cached model setup · u.data Ratings
Components 15
MovieLens data
- Ratings
data/u.data - Movie metadata
data/u.item
Recommendation engine
- Load and validate
src/movie_recommender/engine.py - User-mean centering
src/movie_recommender/engine.py - Collaborative similarity
src/movie_recommender/engine.py - Genre similarity
src/movie_recommender/engine.py - Hybrid ranking
src/movie_recommender/engine.py - Catalog statistics
src/movie_recommender/engine.py
Streamlit application
- Movie selection
app.py - Recommendation settings
app.py - Cached model setup
app.py - Ranked results
app.py
Offline evaluation
- Leave-one-out evaluation
scripts/evaluate.py - Ranking metrics
scripts/evaluate.py
Other components
- Movie seeker
Connections 21
- Ratings → Load and validate: ratings input
README.md - Movie metadata → Load and validate: metadata input
README.md - Load and validate → User-mean centering: centers ratings
src/movie_recommender/engine.py - User-mean centering → Collaborative similarity: computes similarity
src/movie_recommender/engine.py - Load and validate → Genre similarity: provides genres
src/movie_recommender/engine.py - Load and validate → Catalog statistics: aggregates ratings
src/movie_recommender/engine.py - Collaborative similarity → Hybrid ranking: blends scores
src/movie_recommender/engine.py - Genre similarity → Hybrid ranking: blends scores
src/movie_recommender/engine.py - Movie seeker → Movie selection: chooses movies
README.md - Movie seeker → Recommendation settings: sets filters
app.py - Cached model setup → Load and validate: loads data
app.py - Cached model setup → Collaborative similarity: fits model
app.py - Cached model setup → Genre similarity: fits model
app.py - Movie selection → Hybrid ranking: requests recommendations
app.py - Recommendation settings → Hybrid ranking: sets ranking options
app.py - Hybrid ranking → Ranked results: returns ranked movies
app.py - Catalog statistics → Movie selection: supplies titles
app.py - Ratings → Leave-one-out evaluation: evaluation input
README.md - Movie metadata → Leave-one-out evaluation: evaluation input
README.md - Leave-one-out evaluation → Hybrid ranking: fits and ranks
scripts/evaluate.py - Leave-one-out evaluation → Ranking metrics: computes hit rate and MRR
scripts/evaluate.py