Skip to content

A mood-based movie recommender that suggests films based on natural language input using tag embeddings and similarity.

Notifications You must be signed in to change notification settings

s4r1n4/MovieRec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎬 MoodMatch: Movie Recommender by Mood

This is a Streamlit-based web app that recommends movies based on the mood or feeling you describe in plain English. Using semantic embeddings of movie genome tags and user input, it generates a personalized list of film suggestions.

Screenshot: MoodMatch


πŸ“ Project Structure

β”œβ”€β”€ data/
β”‚ β”œβ”€β”€ movies.csv
β”‚ β”œβ”€β”€ genome-tags.csv
β”‚ β”œβ”€β”€ genome-scores.csv
β”‚ └── movie_tag_matrix.csv
β”œβ”€β”€ embeddings.py
β”œβ”€β”€ utils.py
β”œβ”€β”€ recommendersite.py
β”œβ”€β”€ requirements.txt
└── README.md

πŸ’‘ Features

  • Natural language input for describing your mood (e.g., "tragic but beautiful", "funny and romantic").
  • Uses Sentence Transformers (MiniLM) to match your mood with relevant movie tags.
  • Recommends top matching movies from the MovieLens dataset.
  • Beautiful dark-themed UI with custom fonts and layout.
  • Tag clusters and semantic outliers for better tag organization (optional).

🧠 How it works

  1. Each movie tag is embedded using all-MiniLM-L6-v2 from the Sentence Transformers library.
  2. User input is embedded the same way and matched against tag embeddings via cosine similarity.
  3. The most similar tags are used to score and rank movies based on genome relevance.
  4. Results are shown in a clean UI via Streamlit.

πŸ“ Data

The MovieLens dataset has been used, which can be downloaded from https://grouplens.org/datasets/movielens/latest/ Download the required files and place them in the data/ folder:

movies.csv

genome-tags.csv

genome-scores.csv


πŸ› οΈ Setup Instructions

git clone https://github.com/s4r1n4/MovieRec.git
cd MovieRec
pip install -r requirements.txt
streamlit run streamlit_app.py

About

A mood-based movie recommender that suggests films based on natural language input using tag embeddings and similarity.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages