Giter Site home page Giter Site logo

nayaksubhransu / moviementor Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 10.03 MB

Effortlessly discover your next favorite film with our Movie Recommender application, featuring both web and CLI interfaces built with Streamlit and Argparse for seamless usability.

Jupyter Notebook 91.20% Python 8.80%

moviementor's Introduction

๐ŸŽฌ MovieMentor

Movie Recommendation System

An intelligent system that harnesses the power of machine learning and natural language processing(NLP) to provide personalized movie recommendations tailored to individual preferences.

Movie Recommendation System

๐Ÿ“ฝ๏ธ About:

This project aims to develop a cutting-edge movie recommendation system that leverages advanced techniques in data cleaning, exploratory data analysis (EDA), machine learning, and natural language processing (NLP). The system is designed to suggest movies to users based on their unique preferences, behavior, and the similarities between movies.

The recommendation engine employs a content-based filtering approach, analyzing movie overviews, features, and user-item interactions to provide highly relevant and personalized recommendations. By combining machine learning algorithms with natural language processing techniques, the system can effectively understand and interpret user preferences, enabling it to suggest movies that align with their specific interests.

See the implementation details with IPython Notebook.

๐ŸŒŸ Key Features

๐Ÿ’ก Content-Based Filtering Algorithm: MovieMentor employs a cutting-edge content-based filtering algorithm that analyzes movie overviews, features, and metadata to identify similarities between movies and your preferences.
๐Ÿ—œ๏ธ Cosine Similarity and Vectorization: The system implements advanced cosine similarity calculations and vectorization techniques to accurately measure the similarity between textual documents, such as movie overviews and user reviews.
๐Ÿ‘ฅ Collaborative Filtering: In addition to content-based filtering, MovieMentor utilizes user-based and item-based collaborative filtering techniques to enhance recommendation accuracy by incorporating user-item interactions and preferences.
๐ŸŽฏ Personalized Recommendations: You'll receive tailored movie suggestions based on your unique preferences, behavior, and the similarities between movies, ensuring a highly personalized and relevant recommendation experience.

๐Ÿ“ Datasets

MovieMentor relies on a comprehensive movie dataset containing rich information about movie features, overviews, credits, and ratings. This dataset undergoes thorough preprocessing to extract relevant features, ensuring that the recommendation algorithms have access to high-quality data for training and evaluation.

๐Ÿš€ Getting Started:

To set up the Movie Recommendation System on your local machine, follow these step-by-step instructions:

๐Ÿ“‹ Prerequisites:

Before proceeding, ensure that you have the following software installed:

  • Python (version 3.10 or higher)
  • Anaconda or venv (for creating a virtual environment)
  • Git (for cloning the repository)

๐Ÿ› ๏ธ Installations:

  1. Clone the Repository

    git clone https://github.com/NayakSubhransu/MovieMentor.git
  2. Change the Working Directory

    cd MovieMentor
  3. Create and Activate a Virtual Environment

    It's highly recommended to create a virtual environment to maintain a clean and isolated setup for the project dependencies.

    • For Anaconda:

      conda create -n env_name python=3.10
      conda activate env_name
    • For venv:

      • Windows:
        py -3 -m venv venv
        venv\Scripts\activate
      • macOS/Linux:
        python3 -m venv venv
        source venv/bin/activate
  4. Install Required Packages

    python -m pip install -r requirements.txt

    This command will install all the necessary packages and dependencies specified in the requirements.txt file.

  5. Run the Web Application

    streamlit run app.py

    This command will start the Streamlit web application, and you should see a URL in your terminal. Copy and paste this URL into your web browser to access the Movie Recommendation System.

๐Ÿ’ป Running the Application on CLI

In addition to the web application, you can also run the Movie Recommendation System through the command-line interface (CLI). To do so, follow these steps:

  1. Install Required Packages

  2. See the Movie List

    python MovieMentor_cli.py --movie list --page_number 2  # Default page number is 2

    This command will display a list of movies from the dataset. You can specify the page number using the --page_number option (default is 2).

  3. Get Movie Recommendations

    python MovieMentor_cli.py --movie "YourMovieTitle" --num_recommendations 5  # Default number of recommendations is 5

    Replace "YourMovieTitle" with the title of a movie you're interested in, and the system will provide the top 5 movie recommendations based on your selection. You can adjust the number of recommendations using the --num_recommendations option (default is 5).

๐Ÿ“š Requirement Packages:

The following packages and libraries are required to run the Movie Recommendation System:

  • Jupyter Notebook
  • Pandas
  • pillow
  • NLTK (Natural Language Toolkit)
  • Scikit-learn
  • Pickle
  • Streamlit
  • streamlit_lottie
  • colorama
  • requests
  • rich
  • pyfiglet

These dependencies are automatically installed when running the python -m pip install -r requirements.txt command during the installation process.

๐Ÿ–ฅ๏ธ Web Application

The MovieMentor web application provides a user-friendly interface for discovering and exploring movie recommendations. Users can input their preferences, and the application will generate personalized recommendations based on their choices.

๐Ÿ’ป CLI Application

For quick and convenient recommendations, the MovieMentor CLI application allows users to input movie titles directly from the terminal and receive personalized recommendations instantly.

๐Ÿ† Usage

MovieMentor can be utilized by both new and existing users to receive personalized movie recommendations:

๐ŸŽฏ User Preferences: Input your movie preferences, such as genres, actors, directors, or specific movie titles you enjoy.
๐Ÿ“Š Historical Data: MovieMentor leverages historical data, including user-item interactions and movie metadata, to identify patterns and similarities.
๐ŸŽฅ Recommendation Generation: Based on your preferences and the analyzed data, the system generates a list of recommended movies tailored to your unique interests and tastes.
๐Ÿ” Exploration and Feedback: Explore the recommended movies, provide feedback, and refine your preferences for even more accurate recommendations in the future.

๐ŸŒŸ Future Improvements

MovieMentor has several potential areas for future improvements and enhancements:

๐Ÿง  Deep Learning Models: Incorporate advanced deep learning models, such as neural networks or transformers, to further improve recommendation accuracy and handle more complex data patterns.
๐ŸŽจ User Interface Enhancements: Develop a more intuitive and user-friendly interface to enhance the overall user experience, making it easier for users to input their preferences and explore recommendations.
๐Ÿ“‚ Additional Data Sources: Integrate additional data sources, such as user reviews, ratings, and social media data, to enhance the system's understanding of user preferences and movie characteristics.
๐Ÿ”€ Hybrid Recommendation Approach: Explore a hybrid recommendation approach that combines content-based filtering, collaborative filtering, and other advanced techniques to leverage the strengths of multiple algorithms and provide more robust recommendations.
โฑ๏ธ Real-Time Updates: Implement mechanisms to continuously update the recommendation models with new data, ensuring that the system remains up-to-date and can adapt to changing user preferences and movie releases.

๐Ÿค Contributing

Contributions to MovieMentor are highly appreciated and welcome! If you encounter any issues, have suggestions for improvements, or would like to add new features, please follow these steps:

๐Ÿด Fork the Repository: Start by forking the MovieMentor repository on GitHub.
๐ŸŒฑ Create a Branch: Create a new branch for your feature or bug fix by running git checkout -b feature/your-feature-name or git checkout -b fix/your-fix-name.
โœจ Make Changes: Implement your changes, following best coding practices and ensuring that your code is well-documented and tested.
๐Ÿ”– Commit and Push: Commit your changes with descriptive commit messages and push them to your forked repository.
๐Ÿ” Submit a Pull Request: Open a new Pull Request on the original repository, providing a detailed description of your changes.

๐Ÿ“š Additional Resources:

The documentation also includes references to external resources, such as research papers, blog posts, and online tutorials, that provide further insights into the techniques and technologies used in the Movie Recommendation System.

๐Ÿ™ Acknowledgements:

The Movie Recommendation System project would not have been possible without the contributions and support of the following individuals and organizations:

  • Open-Source Community: I extend my gratitude to the open-source community for providing invaluable resources, libraries, and tools that facilitated the development of this project.
  • Research Community: I acknowledge the researchers and academics whose work in the fields of machine learning, natural language processing, and recommender systems laid the foundation for the techniques employed in this project.
  • Data Providers: I thank the organizations and individuals who curated and made available the movie datasets used in training and evaluating the recommendation system.

(back to top)

moviementor's People

Contributors

nayaksubhransu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.