The aim of this project is to build a movie recommendation system by filtering emotions using multi-label mood classification of the text input to the system by the user
- Text input to the system is used for Multi-label classification using RoBERTa which outputs the probabilities of all the 5 classes
- emotion2genre matrix has been created using data from a survey conducted
- Emotion vector is converted to vector of genres by matrix multiplication with emotion2genre matrix
- Movies are recommended using cosine similarity of the genre vector with other genre vectors in the movies dataframe
- The entire pipeline is deployed using Flask
- GoEmotions dataset by the Google research team has be used
- All text with "Neutral" and "Disgust" emotion have been removed from the dataset
- The emotions have been reduced to 5 from 28 using the ekmann mapping
- The emotions have been one hot encoded to convert it into appropriate form for Multi-label Classification
- IMDB dataset has been used for the recommendation system.
- Movies with 8+ IMDB rating are retained
- Movies with Hindi and English languages are retained
- Movies pertaining to India, USA and UK are retained
- Create a Virtual Environment preferably with Anaconda
conda create -n redbot
- Activate the virtual environment
conda activate redbot
- Install the Requirements file
pip install -r requirements.txt
-
Change directory to the cloned directory
-
Run
download_weights.py
to download weights and move them to the appropriate location
python download_weights.py
- Run the
app.py
file using the following command
python app.py