/MovieRecomendationSystem

Movie Recomendation System using Tkinter and machine learning

Primary LanguagePython

Research paper link

MovieRecomendationSystem

  • Prabhat Kr. Singh
  • Servendra Singh
  • Sanal Mishra
  • Yash Kr. Singh(Team Leader)

WHAT IS THIS PROJECT?

Recommender System is a system that seeks to predict or filter preferences according to the user’s choices. Recommender systems are utilized in a variety of areas including movies, music, news, books, research articles, search queries, social tags, and products in general. Recommender systems produce a list of recommendations in any of the two ways –
  • Content-based filtering: Content-based filtering approaches uses a series of discrete characteristics of an item in order to recommend additional items with similar properties. Content-based filtering methods are totally based on a description of the item and a profile of the user’s preferences. It recommends items based on the user’s past preferences(supervised learning).
  • Collaborative filtering: Collaborative filtering approaches build a model from the user’s past behaviour (i.e. items purchased or searched by the user) as well as similar decisions made by other users. This model is then used to predict items (or ratings for items) that user may have an interest in(unsupervised learning).

    Aim and Scope of the project:

    This Application allows us to sort out some of our favourite movies from the movies highly rated by critics and recommend that movie to us. Demand of this app nowadays is very high because of variation of choices of individual in the type of movies they like.

    OVERVIEW OF PROJECT


    Movie Recommendation System:

    This application will firstly ask us to login in our account if we are an existing user or register for a new account in case we have not done it earlier. Then it will ask us to chose some of our movies we like and rate them according to us. Then it will match our records with records of any critics in a database and recommend other movies to us which we may like. It will then recommend a movie to us.

    What are Recommendation systems?

    Recommendation systems are becoming increasingly important in today’s extremely busy world. People are always short on time with the myriad tasks they need to accomplish in the limited 24 hours. Therefore, the recommendation systems are important as they help them make the right choices, without having to expend their cognitive resources. The purpose of a recommendation system basically is to search for content that would be interesting to an individual. Moreover, it involves a number of factors to create personalised lists of useful and interesting content specific to each user/individual. Recommendation systems are Artificial Intelligence based algorithms that skim through all possible options and create a customized list of items that are interesting and relevant to an individual. These results are based on their profile, search/browsing history, what other people with similar traits/demographics are watching, and how likely are you to watch those movies. This is achieved through predictive modeling and heuristics with the data available.

    Use-cases of Recommendation systems

    Recommendations are not a new concept. Even when e-commerce was not that prominent, the sales staff in retail stores recommended items to the customers for the purpose of upselling and cross-selling, and ultimately maximise profit. The aim of recommendation systems is just the same. Another objective of the recommendation system is to achieve customer loyalty by providing relevant content and maximising the time spent by a user on your website or channel. This also helps in increasing customer engagement. On the other hand, ad budgets can be optimized by showcasing products and services only to those who have a propensity to respond to them.

    Dependencies

    • Python >=3.5
    • pandas
    • numpy
    • scipy
    • scikit-learn
    • Textblob What is TextBlob? TextBlob is a Python (2 and 3) library for processing textual data. It provides a simple API for diving into common natural language processing (NLP) tasks such as part-of-speech tagging, noun phrase extraction, sentiment analysis, classification, translation, and more.
    • scikit-surprise
    • lightfmLightFM is a Python implementation of a number of popular recommendation algorithms for both implicit and explicit feedback. It also makes it possible to incorporate both item and user metadata into the traditional matrix factorization algorithms.
    • matplotlib
    • seaborn What is Seaborn? Seaborn is a Python data visualization library based on matplotlib. It provides a high-level interface for drawing attractive and informative statistical graphics.
    • Pycharm
    • GIT
    • Github

    WHY GIT & GITHUB?

  • Git is a version control system that lets you manage and keep track of your source code history.
  • GitHub is a cloud-based hosting service that lets you manage Git repositories. If you have open-source projects that use Git, then GitHub is designed to help you better manage them.

    WHAT IS TKINTER

    Python offers multiple options for developing a GUI (Graphical User Interface). Out of all the GUI methods, Tkinter is the most commonly used method. It is a standard Python interface to the Tk GUI toolkit shipped with Python. Python with Tkinter is the fastest and easiest way to create GUI applications. Creating a GUI using Tkinter is an easy task.

    Details about Dataset

    We have used MovieLens dataset in order to build a movie recommendation engine. Types of dataset:-
  • The full dataset: This dataset consists of 26,000,000 ratings and 750,000 tag applications applied to 45,000 movies by 270,000 users. Includes tag genome data with 12 million relevance scores across 1,100 tags.
  • The small dataset: This dataset comprises of 100,000 ratings and 1,300 tag applications applied to 9,000 movies by 700 users.

    Data description

    It contains 100004 ratings and 1296 tag applications across 9125 movies. These data were created by 671 users between January 09, 1995 and October 16, 2016. This dataset was generated on October 17, 2016. Users were selected at random for inclusion. All selected users had rated at least 20 movies. No demographic information is included. Each user is represented by an id, and no other information is provided. The data are contained in the following files:-
    • credits.csv
    • keywords.csv
    • links.csv
    • links_small.csv
    • movies_metadata.csv
    • ratings.csv
    • ratings_small.csv