Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 26

Report on

Movie Recommendation system

Submitted to
Department of Computer Science and Engineering
Nepal Engineering College

In Partial Fulfillment of the


Requirements for the OOSE practical examination.

Submitted By:
Sujan Poudel (020-391)

i
Abstract

This report presents a comprehensive theoretical approach to designing a movie


recommendation system with sentiment analysis using Unified Modeling
Language (UML) diagrams. The system aims to provide personalized movie
recommendations to users based on their preferences, viewing history, and ratings,
thereby enhancing their overall movie-watching experience. Additionally, the
system incorporates sentiment analysis of movie reviews to provide users with a
more informed decision-making process. The report focuses on the design and
modeling of the system using UML diagrams, which provide a standardized and
visual representation of the system's architecture.
The report includes a detailed analysis of the system's requirements, including
functional and non-functional requirements, and presents a comprehensive design
of the system using UML diagrams. The UML diagrams included in the report
are:
Class diagrams, which represent the static structure of the system, showing the
classes, attributes, and relationships between them.
Sequence diagrams, which show the interactions between objects in the system,
including the sequence of messages exchanged between them.
Activity diagrams, which represent the dynamic behavior of the system, showing
the flow of activities and actions involved in the process.
Component diagrams, which show the structural relationships and dependencies
between the components of the system.
The report provides a thorough understanding of the system's architecture and
design, and serves as a foundation for the development of a movie
recommendation system with sentiment analysis.

[Keywords:
Movie Recommendation System, Sentiment Analysis, Unified Modeling
Language (UML), Class Diagrams, Sequence Diagrams, Activity Diagrams,
Component Diagrams, Deployment Diagrams, System Design, System
Architecture, Personalized Recommendations, Natural Language Processing
(NLP), Machine Learning (ML)]

ii
Acknowledgement

I would like to express my sincere gratitude to Assistant Professor Sudarshan


Subedi, subject teacher of Object-Oriented Software Engineering (OOSE), for
providing me with this opportunity to work on this project. I appreciate his
guidance and support throughout the project.
I would also like to thank the Department of Computer Science and Engineering
at Nepal Engineering College.
This project was a solo effort, and I am grateful for the experience and knowledge
gained while working on it.

Sujan Poudel
020-391
Comp II

iii
Table of Contents
Abstract....................................................................................................................ii

Acknowledgement..................................................................................................iii

List of Figures.........................................................................................................vi

Abbreviations.........................................................................................................vii

Chapter 1 - Introduction...........................................................................................1

1.1 Overview...................................................................................................1

1.2 Problem Statement.....................................................................................1

1.3 Feasibility Study........................................................................................1

1.3.1 Economic Feasibility..........................................................................2

1.3.2 Technical Feasibility..........................................................................2

1.3.3 Operational Feasibility.......................................................................2

Chapter 2 - Background Study.................................................................................3

Chapter 3 - Requirements.........................................................................................5

3.1 Functional Requirements...........................................................................5

3.2 Non-functional Requirements....................................................................5

Chapter 4 - System Design.......................................................................................6

4.1 Class Diagram............................................................................................6

4.2 Sequence Diagram.....................................................................................8

4.3 Activity Diagram.....................................................................................10

4.4 Use Case Diagram...................................................................................12

4.5 Refined UML Diagram............................................................................13

4.6 Component Diagram................................................................................16

Chapter 5 - Conclusion and Future Work..............................................................17

iv
List of Figures

Figure 4-1: Class Diagram of sentiment analysis.....................................................7


Figure 4-2: Class Diagram of Movie Recommendation System..............................8
Figure 4-3: Sequence diagram of movie recommender system..............................9
Figure 4-4: Sequence diagram of sentiment analysis.............................................10
Figure 4-5: Activity Diagram of Movie Recommender System............................11
Figure 4-6: Activity diagram of sentiment analysis...............................................12
Figure 4-7: Use Case diagram of sentiment analysis.............................................13
Figure 4-8: Use case diagram of Movie Recommender.........................................13
Figure 4-9: Refined Class Diagram........................................................................14
Figure 4-10: Refined Sequence Diagram for Movie Recommender......................15
Figure 4-11: Refined Sequence Diagram for sentiment analysis...........................15
Figure 4-12: Refined Activity Diagram.................................................................16

v
Abbreviations

CBF Content-Based Filtering


CF Collaborative Filtering
HF Hybrid Filtering
OS Operating System
IMDB Internet Movie Database
HTML Hyper Text Markup Language
CSS Cascading Style Sheets
NB Naive Bayes
UI User Interface
IDE Integrated Development Environment
NLP Natural Language Processing
UML Unified Modelling Language
TMDB The Movie Database

vi
Chapter 1 - Introduction

1.1 Overview

Movie Recommender is a movie recommendation system that provides


personalized movie recommendations based on a user's movie preferences. It uses
a content-based filtering approach, which recommends movies based on the user’s
preferences. In today's digital world, there are countless options for movie
streaming services, but finding the right movie to watch can be overwhelming.
Movie Recommender is designed to solve this problem by providing movie
recommendations, making it easier for users to find movies they will enjoy. Movie
recommender has sentiment analysis built into it which classifies the user reviews
which helps user in choosing right movies for them.

1.2 Problem Statement

The problem with traditional Movie Recommender: Content Based Movie


Recommendation System with Sentiment Analysis is that they are often not
personalized enough to meet the unique preferences and tastes of individual users.
Many users find it difficult to discover new movies that they will enjoy watching,
and this can result in reduced user engagement and satisfaction. The Movie
Recommender System aims to address this problem by providing personalized
movie recommendations to users based on their viewing preferences. The system
can accurately recommend movies that users are likely to enjoy watching, thereby
increasing user engagement and satisfaction.Aim
The aim of this project is to develop a mobile application that allows requesting
and donation of blood between individuals in a secure and status tracked manner.

1
1.3 Feasibility Study

The feasibility of the Movie recommendation platform is examined under


economic, technical and operational perspectives below:

1.3.1 Economic Feasibility

The project requires a significant investment in infrastructure, personnel, and


technology.
The system needs to generate revenue through subscription-based models or
advertising.
The project requires a thorough cost-benefit analysis to ensure the system is
economically viable..

1.3.2 Technical Feasibility

The project requires a robust and scalable architecture to handle a large volume of
user data and movie reviews.
The system needs to integrate with various data sources, such as movie databases
and review platforms.
The project requires advanced natural language processing (NLP) and machine
learning (ML) techniques to analyze movie reviews and generate
recommendations.
The system needs to ensure data security and privacy to protect user data.

1.3.3 Operational Feasibility

The project requires a team of skilled professionals, including software


developers, data scientists, and NLP/ML experts.
The system needs to be deployed on a cloud-based infrastructure to ensure
scalability and reliability.
The project requires a robust testing and quality assurance process to ensure the
system meets the required standards.

2
The system needs to be integrated with existing systems and platforms, such as
movie streaming services.

3
Chapter 2 - Background Study

In recent years, the entertainment industry has been undergoing a significant shift
towards digitalization, with an increasing number of consumers opting for online
streaming services to watch movies. The vast selection of movies available online
can often lead to confusion and decision paralysis, with consumers struggling to
choose a movie that aligns with their preferences. This problem can be addressed
through the development of a Movie Recommender system, which can provide
personalized recommendations to consumers based on their viewing history and
preferences. Movie Recommender systems have been gaining popularity in recent
years due to their ability to provide tailored recommendations to users, thus
improving the user experience. These systems utilize machine learning algorithms
and data analysis techniques to analyze user behavior and preferences, and suggest
movies that are most likely to be of interest to the user. These algorithms consider
various factors such as movie genre, actors, ratings, and user feedback to generate
personalized recommendations. The development of a Movie Recommender
system requires expertise in various areas such as machine learning, data analysis,
and software development. The system will need to be able to collect and analyze
user data in real-time, and generate personalized recommendations efficiently.
Additionally, the system will need to be scalable and capable of handling large
amounts of data, as well as being user-friendly and easy to navigate. The benefits
of a Movie Recommender system are numerous, both for consumers and movie
streaming services. Consumers will be able to easily find movies that align with
their preferences, leading to a more satisfying viewing experience. On the other
hand, streaming services will be able to provide personalized recommendations to
users, leading to increased user engagement and retention. In conclusion, the
development of a Movie Recommender system has the potential to revolutionize
the entertainment industry by providing personalized recommendations to
consumers, thus improving the overall user experience. With the increasing
demand for online streaming services, the development of such a system has

4
become a necessity for movie streaming services to remain competitive in the
market.
The entertainment industry has undergone a massive transformation in recent
years due to the advancements in technology. As a result, various movie streaming
services have emerged, offering users a vast library of movies to choose from.
However, with so many options, it can be challenging to find a movie that suits
one's preferences. To address this challenge, movie recommender systems have
been developed. According to a study by Partho Pratim Pal and Sukanta Das ,
movie recommender systems use various techniques such as collaborative
filtering, content-based filtering, and hybrid methods to recommend movies to
users. Collaborative filtering techniques are based on user ratings and their
similarity with other users, while content-based filtering methods analyze the
movie's attributes to recommend similar movies. Hybrid methods combine both
techniques to provide more accurate recommendations. Data security is a critical
concern for any system that uses personal user data. As such, movie recommender
systems must ensure that user data is secure. In their study, Junchao Zheng, et al.
propose a privacy-preserving movie recommendation method that employs
homomorphic encryption to protect user data. The method ensures that the user's
data is kept confidential while still providing accurate recommendations. User
experience is essential in any application, and the movie recommender system is
no exception. According to a study by Xiaoyan Wu and Michael Mandel, the user
experience of a movie recommender system can be enhanced through
personalization and interactivity. Personalization involves tailoring the
recommendations to the user's preferences, while interactivity enables the user to
provide feedback and improve the recommendation algorithm. One of the major
challenges of movie recommender systems is dealing with the cold-start problem,
where new users or movies have insufficient data to make accurate
recommendations. In their study, Piyush K. Shukla and Mukesh Saraswat
propose a hybrid approach that combines content-based filtering and collaborative
filtering techniques to overcome the cold-start problem. In conclusion, movie
recommender systems have gained immense popularity in recent years due to the
vast library of movies available on streaming services. To ensure the system's

5
success, developers must address data security concerns, enhance the user
experience, and overcome the cold-start problem.

6
Chapter 3 - Requirements

3.1 Functional Requirements

The system shall provide the following functional requirements:


 Allow users to create an account and log in to the system
 Allow users to search for movies and view their details
 Provide personalized movie recommendations to users based on their
preferences
 Analyze movie reviews and provide sentiment analysis
 Allow users to rate and review movies

3.2 Non-functional Requirements

The system shall provide the following non-functional requirements:


 The system shall be user-friendly and easy to use
 The system shall be reliable and available 24/7
 The system shall be scalable to handle a large number of users
 The system shall be secure and protect user data

7
Chapter 4 - System Design

Figure 4-1: Class Diagram of sentiment analysis

4.1 Class Diagram

8
Figure 4-2: Class Diagram of Movie Recommendation System

Class diagram is a static diagram. It represents the static view of an application.


Class diagram is not only used for visualizing, describing, and documenting
different aspects of a system but also for constructing executable code of the
software application. Class diagram describes the attributes and operations of a
class and also the constraints imposed on the system. The purpose of class
diagram is to model the static view of an application. Class diagrams are the only
diagrams which can be directly mapped with object-oriented languages and thus
widely used at the time of construction. UML diagrams like activity diagram,
sequence diagram can only give the sequence flow of the application, however
class diagram is a bit different. It is the most popular UML diagram in the coder
community

9
4.2 Sequence Diagram

Sequence diagrams can be useful reference diagrams for businesses and other
Organizations. We draw a sequence diagram to:
• Represent the details of a UML use case.
• Model the logic of a sophisticated procedure, function, or operation.
• See how tasks are moved between objects or components of a process.
• Plan and understand the detailed functionality of an existing or future scenario.

Figure 4-3: Sequence diagram of movie recommender system

10
Figure 4-4: Sequence diagram of sentiment analysis

11
4.3 Activity Diagram

Activity diagram is basically a flowchart to represent the flow from one activity to
another activity. The activity can be described as an operation of the system. The
control flow is drawn from one operation to another. This flow can be sequential,
branched, or concurrent. Activity diagrams deal with all type of flow control by
using different elements such as fork, join, etc. The basic purposes of activity
diagrams is to capture the dynamic behavior of the system.

Figure 4-5: Activity Diagram of Movie Recommender System

12
Figure 4-6: Activity diagram of sentiment analysis

13
4.4 Use Case Diagram

A use case diagram depicts the possible interactions of various users of a system
with the system itself. The use cases are represented by ellipses while the users
(also called actors) are depicted as stick figures.

Figure 4-7: Use case diagram of Movie Recommender

Figure 4-8: Use Case diagram of sentiment analysis

14
4.5 Refined UML Diagram

4.5.1 Refinement of Class Diagram

Figure 4-9: Refined Class Diagram

15
4.5.2 Refinement of Sequence Diagram

Figure 4-10: Refined Sequence Diagram for Movie Recommender

Figure 4-11: Refined Sequence Diagram for sentiment analysis

16
4.5.3

Figure 4-12: Refined Activity Diagram

Refinement of Activity Diagram

17
18
4.6 Component Diagram

A component diagram is a type of UML diagram that shows the structural


relationships and dependencies between the components of a software system. It
illustrates how software components are connected and interact with each other
within a system. Components can represent individual modules, libraries,
executables, or other parts of a system.

Figure 4-13: Component Diagram

19
Chapter 5 - Conclusion

In this project, I have designed a movie recommendation system with sentiment


analysis using Unified Modeling Language (UML) diagrams. The system aims to
provide personalized movie recommendations to users based on their preferences,
viewing history, and ratings, thereby enhancing their overall movie-watching
experience. Additionally, the system incorporates sentiment analysis of movie
reviews to provide users with a more informed decision-making process.
I have presented a comprehensive design of the system using UML diagrams,
including class diagrams, sequence diagrams, activity diagrams, use case
diagrams, and component diagrams. These diagrams provide a standardized and
visual representation of the system's architecture, making it easier to understand
the overall working of the system.
The refined UML diagrams provide a more detailed view of the system's
components and their interactions. The refined class diagram shows the classes,
attributes, and relationships between them, while the refined sequence diagram
shows the interactions between objects in the system, including the sequence of
messages exchanged between them. The refined activity diagram represents the
dynamic behavior of the system, showing the flow of activities and actions
involved in the process. The use case diagram depicts the possible interactions of
various users of the system with the system itself. The component diagram shows
the structural relationships and dependencies between the components of the
software system.
In conclusion, this project provides a solid foundation for the development of a
movie recommendation system with sentiment analysis. The system design can be
implemented using various programming languages and technologies, and the
UML diagrams can be used to guide the development process. Future work on this
project could include implementing the system design, testing the system's
performance and effectiveness, and incorporating additional features such as
social media integration and natural language processing techniques.

20

You might also like