Skip to content

Movie recommendation system using various recommendation methods.

License

Notifications You must be signed in to change notification settings

abhishek-jana/Movie-Recommendation-System

Repository files navigation

Movie Recommendation System

This is a movie recommendation system that suggests movies to users based on their preferences. The system utilizes various recommendation methods, including content-based filtering (most popular movies), collaborative filtering, and recommendation specific to existing users, to provide personalized movie recommendations.

A small deployed version of this app can be found here

Features

  • Movie search: Users can search for specific movies and view detailed information about them, including ratings and reviews.
  • Recommendation generation: The system generates movie recommendations for each user based on various recommendation methods, including content-based filtering (most popular movies), collaborative filtering, and recommendation specific to existing users.

Setup and Installation

Anaconda installation is necessary for this project as using pip to install 'scikit-surprise' package make create problems. For insatallation of Anaconda package, please refer here.

  1. Clone the repository:
git clone https://github.com/abhishek-jana/movie-recommendation-system.git
  1. Create a new environment using the following command:
conda create --name myenv
  1. Activate the newly created environment:
conda activate myenv
  1. Install scikit-surprise from the conda-forge channel:
conda install -c conda-forge scikit-surprise
  1. Install the required dependencies:
cd movie-recommendation-system
pip install -r requirements.txt
  1. Run the development server:
streamlit run app.py
  1. Access the application in your web browser at http://localhost:8501/

Usage

  • Start the application and access it in your web browser.
  • Use the movie search functionality to find specific movies and view their details, including ratings and reviews.
  • Check the recommendation page to see personalized movie suggestions generated using various recommendation methods: content-based filtering (most popular movies), collaborative filtering, and recommendation specific to existing users.

Results

Here is a screenshot of the movie recommendation system app: Movie Recommendation System1 Movie Recommendation System2 Content Based Similar User Based Movie Recommendation Existing User1 Movie Recommendation Existing User2 Movie Recommendation Existing User and Movies Watched

Data Gathering

The movie data for this project is gathered from the following sources:

  • MovieLens: MovieLens provides a collection of movie ratings data from various sources, which is used to train the recommendation models. Full: 27,000,000 ratings and 1,100,000 tag applications applied to 58,000 movies by 280,000 users. Includes tag genome data with 14 million relevance scores across 1,100 tags. Last updated 9/2018.

  • TMDB: TMDB is a comprehensive movie database that provides detailed information about movies, including ratings, reviews, and metadata. It is used to supplement the movie data and provide additional information for better recommendations.

Deployment The application is deployed using Streamlit, an open-source framework for building interactive web applications. The deployment setup instructions can be found in the Streamlit documentation.

Workflows

The following workflows are implemented in the movie recommendation system:

  1. Movie Search: Provides users with the ability to search for specific movies and view detailed information, including ratings and reviews.
  2. Recommendation Generation: Utilizes various recommendation methods, including content-based filtering, collaborative filtering, and user-specific recommendations, to generate personalized movie suggestions.

Project Specific Workflow:

  1. Update config.yaml.
  2. Update secrets.yaml (optional) for database credentials.
  3. Update params.yaml.
  4. Update the entity.
  5. Update the configuration manager in src config.
  6. Update the components.
  7. Update the pipeline.
  8. Update the main.py.

Please note that these steps are specific to the project and should be followed accordingly for the movie recommendation system.

Future Work

Some potential areas for future improvement and expansion of the movie recommendation system include:

  • Implementing advanced recommendation algorithms, such as matrix factorization and deep learning-based models.
  • Enhancing the user interface and user experience of the application.
  • Incorporating additional data sources and features, such as user demographics and movie genres, to improve the accuracy of recommendations.
  • Creating an account or logging in to an existing account to personalize recommendations based on individual user preferences.
  • Allowing users to rate movies they have watched to further improve the accuracy of recommendations.
  • Providing personalized movie recommendations specific to existing users based on their viewing history and preferences.
  • Implementing a feedback mechanism for users to provide feedback on recommended movies, helping to refine and enhance the recommendation process.

Contributing

Contributions are welcome! If you have any ideas, bug reports, or feature requests, please open an issue on the GitHub repository. Pull requests are also appreciated.

License

This project is licensed under the MIT License.

Acknowledgements

I would like to acknowledge the following resources and libraries that were instrumental in the development of this movie recommendation system:

  • MovieLens for providing the movie ratings dataset used for training the recommendation models.
  • TMDB for providing comprehensive movie data and metadata to enhance the recommendations.
  • Streamlit for the open-source framework used for building the interactive web application.
  • Python and its various libraries, including Pandas, and Scikit-learn, for their contributions to data processing, machine learning, and recommendation algorithms.

We extend our gratitude to the developers and maintainers of these resources for their valuable contributions to the field of movie recommendation systems.

References

Here are some helpful references and resources related to movie recommendation systems:

These references can provide additional insights, ideas, and code examples for building and enhancing movie recommendation systems.

About

Movie recommendation system using various recommendation methods.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published