A recommender system help the users to get personalized recommendations, helps users to take correct decisions in their online transactions, increase sales and redefine the users web browsing experience. The purpose of this project is to recommend a list of movies for a user based on a specific emotion to suit his/her needs and desires. This recommendation system can be achieved through web scraping. Web Scraping is an automatic method to obtain and extract content and large amounts of data from websites. This recommendation system can also provide insights to current movie trends and latest people’s favorites.
A Recommender System refers to a system that is capable of predicting the future preference of a set of items for a user, and recommend the top items. Image Recognition is one of the most significant Machine Learning and artificial intelligence examples. Basically, it is an approach for identifying and detecting a feature or an object in the digital image.
Flask is an API of Python that allows to build up web-applications, A Web-Application Framework or Web Framework is the collection of modules and libraries that helps the developer to write applications without writing the low-level codes such as protocols, thread management, etc. This web application can be some web pages, a blog, a wiki or go as big as a web-based calendar application or a commercial website. Flask is based on WSGI (Web Server Gateway Interface) toolkit. Web scraping is useful if the public website you want to get data from doesn’t have an API, or it does but provides only limited access to the data. Web Scraping refers to access the HTML of the webpage and extract useful information and data from it.
Here in this task, we are going to utilize web scratching to separate information from the website page utilizing Python and BeautifulSoup. Beautiful Soup or Soup is a library which can parse XML, JSON and HTML, HTML5 content step by step
The above figure depicts the methodology for the Movie Recommendations based on emotions :
User Input: The user chooses one emotion among the five emotions represented through emojis. After choosing the emotion, he/she clicks on the “Submit” button to confirm the choice.
Filtering Genre: Based on the emotion chosen, a genre is filtered in accordance to make recommendations for the user.
For example, the correspondence of each emotion with a class of films can be recorded as such:
a. Happy – Family, Romance, etc
b. Sad – Tragedy, Horror, etc
c. Angry – Action, Crime, etc
d. Think – Thiller, etc
3. Redirecting to IMDb Website: The system is redirected to the IMDb website to gather the list of latest movies in the particular genre. The list of movies is extracted using BeutifulSoup module in web scraping. The list of movies is stored in .xml format.
4. Output Display: The list of movies in the file is converted to simple list and printed on the screen in descending order of ratings.
III. SYSTEM DESIGN
The above figure describes the behaviour of the model and the interaction between the user and the system. It describes the working of various stages including the user input, extracting data from the website and finally producing the output.
System architecture is the conceptual model that defines the structure, behaviour, and more views of a system.
User: A user is someone who employs or uses a particular thing to his/her advantage by operating it. Here, the user is the person who wants movie recommendations.
User Interface (UI): User Interface is the point of human-computer interaction and communication in a device. It is also a way through which a user interacts with an application or a website. This can include display screens, keyboards, a mouse and the appearance of a desktop. Our UI consists of a display of five emotions in the form of emojis and a submit button in top division and the list of recommended movies in the bottom division.
Input: Here the input consists of selecting one emoji from the displayed five which includes happy, sad, angry, disgust and think. After choosing the emoji, the user has to click the “Submit” button to confirm it.
Genre Selection: Based on the emotion selected, the genre is filtered in accordance. A movie can be a part of multiple genres.
IMDb Website: IMDb is an online database of information related to films, television series, home videos, video games, and streaming content online including cast, production crew and personal biographies, plot summaries, trivia, ratings, and fan and critical reviews. For our project, we are collecting the top rating list of movies from the website for recommending them to the user based the genre filtered in accordance to the emotion.
Web Scraping: Web scraping is the process of collecting structured web data in an automated fashion. It’s also called web data extraction. It is used by people and businesses who want to make use of the vast amount of publicly available web data to make smart decisions. In our project, we use web scraping to collect list of movies from IMDb website.
Beautiful Soup: Beautiful Soup is a Python package for parsing HTML and XML documents. It creates a parse tree for parsed pages that can be used to extract data from HTML, which is useful for web scraping We are using Beautiful Soup because of it works best for us in this situation with minimal lines of code.
This project has the novelty of incorporating user emotions into the user profile to provide users with well recommended products based on their emotional state. Because movie is a complex and subjective domain, it is necessary to incorporate user emotion into the user profile. Users can give their feedback about how a recommended movie meets their preferences. This feedback (in the form of user’s rating) improves the recommendation quality over time. Because emotion can
influence interactions, behaviors and thinking of the user, we believe that E-MRS with the Emotion detector can greatly improve the efficiency of the movie recommendation.