malsoor
malsoor
BY
DURGAM VIDYA
Regd. No: 236715A0511
i
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
J.B. INSTITUTE OF ENGINEERING AND TECHNOLOGY
(UGC Autonomous)
CERTIFICATE
DEPARTMENT OF CSE
ii
iii
ACKNOWLEDGEMENT
First, I would like to thank Mr. Sandip Gavit, Techno Hacks Edu Tech, Nasik Maharashtra for
giving me opportunity to do an internship within the organization.
I also like to thank all the people that worked along with me, with their patience and openness they
creatan enjoyable working environment.
It is indeed with a great sense of pleasure and immense sense of gratitude that I acknowledge the help
of these individuals.
I would like to thank my Head of the Department DR. G. SREENIVASULU for his constructive
criticism throughout my internship. I am highly indebted to our Principal
DR. P.C. KRISHNAMACHARY, for the facilities provided to accomplish this internship.
DURGAM VIDYA
23675A0511
iv
ABSTRACT
The rapid growth of online streaming services has led to an overwhelming number of movie
choices, making it challenging for users to find relevant content. To address this issue, we
propose a personalized movie recommendation system that combines the strengths of
contentbased filtering, collaborative filtering, and deep learning techniques. Our system
utilizes a hybrid approach to learn user preferences and movie features, providing accurate and
diverse recommendations. Experimental results on a large-scale movie dataset demonstrate the
effectiveness of our approach, outperforming state-of-the-art methods in terms of precision,
recall, and F1-score. Our system has the potential to enhance user engagement and satisfaction,
making it a valuable tool for online streaming services.
v
ORGANISATION INFORMATION
Address: 16 Gayatri Row House, Shivpuri Chowk, Uttam Nagar, Cidco,Nashik, Maharashtra
422010,India .
Email: [email protected]
• TechnoHacks believes that with the proper mentorship everyone can reach the goals.They
also provide the Internships and Placement training to the students. Their mission is to
provide platform to students and working professionals to improve their skillset and rock
into IT industry.
• Their vision is to provide world class quality skills which industry needs. They provide
trainings and mentorship to the students and working professionals to improve their
skillsets to next level. They believe that with the proper mentorship everyone can reach the
goals. They also provide the Internships with Trainings.
vi
PROGRAMS AND OPPORTUNITIES:
The institute provides various courses to avail for the interest of each individual. Some of them
in the field of computer science are:
1. web development
2. Python Development
4. Digital Forensics
5. Java Development
6. C Programming
7. C++ Programming
8. Data Science
9. Machine Learning
vii
INTERNSHIP OBJECTIVES
One of the main objectives of an internship is to expose you to a particular job and profession
or industry. While you might have an idea about what a job is like, you won’t know until you
actually perform it if it’s what you thought it was, if you have the training and skills to do it
and if it’s something you like. For example, you might think that advertising is a creative
process that involves coming up with slogans and fun campaigns. Taking an internship at an
advertising agency would help you find that advertising includes consumer demographic
research, focus groups, knowledge of a client’s pricing and distribution strategies, and media
research and buying. When you apply for jobs, the more experience and accomplishments you
have, the more attractive you’ll look to a potential employer. Just because you have an
internship with a specific title or well-known company doesn’t mean your internship will help
you land a nice gig. Make an impact where you work by asking for responsibility and looking
for ways to achieve accomplishments. Be willing to work more hours than you’re required and
ask to work in different departments to expand your skill set. Don’t just fetch coffee, make
copies and sit in on meetings, even if that’s all it will take to finish your internship.
Another benefit of an internship is developing business contacts. These people can help you
find a job later, act as references or help you with projects after you’re hired somewhere else.
Meet the people who have jobs you would like some day and ask them if you can take them
to lunch. Ask them how they started their careers, how they got to where they are now and if
they have any suggestions for you to improve your skills.
viii
WEEKLY REPORT OF INTENSHIP ACTIVITIES
WEEK PROGRESS
WEEK-1 - Collected movie data from IMDB and
MovieLens datasets
15-05-2024 TO 22-05-2024
- Preprocessed data by handling
missing values, converting data
types, and normalizing ratings
ix
TABLE OF CONTENTS
1. INTRODUTION 1
3. REQUIREMENTS SPECIFICATION 4
4. SYSTEM MODULES 5
5. TECHNOLOGIES 6-15
6. IMPLEMENTATION 16-17
7. CODING 18-19
10. CONCLUSION 25
11. BIBLIOGRAPHY 26
x
1. INTRODUCTION
A movie recommendation system is a type of information filtering system that uses various
algorithms and techniques to suggest movies to users. These systems take into account a user's
past behavior, such as movies they have watched, rated, or liked, to build a profile of their
preferences. This profile is then used to recommend movies that are likely to be of interest to
the user.
The benefits of a movie recommendation system include improved user experience, increased
engagement, and a competitive advantage for streaming services. However, there are also
challenges and limitations, such as data sparsity, the cold start problem, and the need to balance
diversity and novelty in recommendations. By understanding the components, benefits, and
challenges of a movie recommendation system, we can design and develop more effective and
personalized systems that enhance the user experience and drive engagement.
1
2. SYSTEM ANALYSIS
2
Fig:2:Flowchart of movie recommendation system
3
3. REQUIREMENT SPECIFICATIONS
SOFTWARE REQUIREMENTS:
• Frontend : HTML/CSS/JAVASCRIPT
HARDWARE REQUIREMENTS:
• Monitor : Full HD or 4K
• Processor : itel i5
4
4. SYSTEM MODULES
5
- Allows users to search for movies by title, genre, director, etc.
5. TECHNOLOGIES
PYTHON:
6
variant implementations. CPython is managed by the non-profit Python Software Foundation.
Python features a dynamic type system and automatic memory management. It supports
multiple programming paradigms, including objectoriented, imperative, functional and
procedural, and has a large and comprehensive standard library.
Movie recommender systems are intelligent algorithms that suggest movies for users to watch
based on their previous viewing behavior & preferences. These systems analyze data such as
users' ratings, reviews, & viewing histories to generate personalized recommendations. Movie
recommender system has revolutionized the way people discover & consume movies, enabling
users to navigate through vast catalogs of films more efficiently.
Recommender systems have two main categories: content-based & collaborative filtering.
Content-based movie recommendation system algorithms use the similarities between movies
to recommend new movies to users, while collaborative filtering utilizes other users'
overlapping movie ratings to generate recommendations. Overall, the movie recommender
system has become an essential tool for movie enthusiasts seeking to discover new films.
ARCHITECTURE:
The movie recommendation system architecture is a complex process that utilizes various
algorithms to suggest movies to users based on their preferences. The architecture involves
collecting data on user behavior, such as previous movie selections & ratings, & using that data
to create a personalized list of suggestions. The heart of this system lies in the algorithm used
in movie recommendation system.
Typically, recommendation systems use collaborative filtering algorithms, which analyze a
user's profile & behavior, along with those of other users, to make suggestions. Hybrid
recommendation systems that combine multiple algorithms are becoming increasingly popular,
as they ensure a more accurate & personalized recommendation experience. In general, the
architecture of a movie recommender system process is intricately designed to provide a
seamless, enjoyable movie experience for users.
To ensure that the algorithms used in the system are valid & effective, professionals in the
industry aim to achieve certification through a Machine Learning certification exam. This
certification confirms their proficiency in the latest machine learning technologies &
techniques & makes them experts in the field of movie recommendation systems.
7
CONTENT-BASED FILTERING:
COLLABORATIVE FILTERING:
Collaborative filtering, on the other hand, depends on the patterns of interaction between users
& their preferences. The movie recommendation system dataset is used in this strategy to
analyze the history of a user's preferences & suggest movies that other users with similar
interests enjoy.
The significant merit of collaborative filtering is that it can eliminate the effects of limited
metadata & low audience size. But a considerable challenge of collaborative filtering is to
overcome new user (cold start) & sparsity problems that arise from a lack of user ratings.
Building a movie recommendation system in Python can be an exciting & dynamic project to
undertake. This type of system offers personalized movie suggestions to users, based on their
interests & previous movie-watching patterns. Such a system can be built using a variety of
technologies & techniques, including machine learning, data mining, & collaborative filtering.
One of the most commonly used techniques for building a movie recommendation system is
collaborative filtering. This technique involves analyzing user behavior & preferences to
suggest movies that similar users have enjoyed. To build such a system, developers can
8
leverage libraries such as scikit-learn & pandas, which can help with data manipulation &
machine learning tasks.
python import
pandas as pd
= pd.read_csv('ratings.csv')
Next, we can use the cosine similarity function from scikit-learn to compute the similarity
between users based on their movie ratings. We can then use this similarity metric to generate
recommendations for each user, based on the ratings of similar users. Here's an example of how
to compute the user-user similarity matrix: python
= cosine_similarity(data)
Finally, we can generate movie recommendations for each user using the following code:
python
data.iloc[i,:].values
similar_users = similarity_matrix[i].argsort()[:-6:-1]
print(f"User {i} might like movie {j} with predicted rating {rating:.2f}")
9
This code snippet loops through each user in the dataset, computes the similarity between that
user & all other users, & generates recommendations based on the movie ratings of the five
most similar users. The output will display the predicted rating for each recommended movie
for each user.
If you are interested in building your own movie recommendation system, there are many
resources available online, including tutorials, Data Science courses online & even open-source
movie recommendation system source code that you can use as a starting point.
To create a neural network model in a movie recommendation system, there are several steps
that need to be followed.
STEP 1: First, a dataset of user preferences & movie ratings needs to be collected &
preprocessed. This movie recommendation system dataset should include information such as
movie genres, release years, actor names, & director names.
STEP 2: Next, the dataset is split into training & testing sets. The training set is used to train
the neural network model to predict a user’s movie preference, while the testing set is used to
evaluate the accuracy of the model’s predictions.
STEP 3: Once the dataset is prepared, a neural network architecture needs to be selected. This
typically involves selecting the number of layers & nodes within each layer. A common
approach is to use a feedforward neural network with multiple hidden layers.
STEP 4: Now, the model is trained using an optimization algorithm such as gradient descent.
During training, the model learns to make accurate predictions based on the input data.
STEP 5: Finally, the trained model is used to make movie recommendations for new users
based on their preferences. By following these steps, one can create a highly accurate movie
recommendation system using a neural network model.
Creating a neural network model in a movie recommendation system can be a complex process,
but by following these steps & using the right dataset & architecture, it is possible to create a
highly accurate & effective system for making movie recommendations. Making a movie
10
recommendation system using a neural network model can be a challenging task, but
implementing it can lead to a high-quality recommendation
11
6. IMPLEMENTATION
DATA COLLECTION:
- Collect movie metadata (title, genre, director, release year, etc.) from sources like IMDB,
TMDB, or Wikipedia.
- Collect user ratings and reviews from sources like IMDB, Rotten Tomatoes, or Letterboxd.
DATA PREPROCESSING:
- Clean and preprocess the collected data by handling missing values, removing duplicates, and
normalizing ratings.
- Convert the data into a suitable format for the recommendation algorithm.
RECOMMENDATION ALGORITHM:
- Implement a recommendation algorithm such as:
- Collaborative Filtering (CF): recommends movies based on the ratings of similar users.
- Content-Based Filtering (CBF): recommends movies based on their attributes (genre, director,
etc.).
- Hybrid: combines CF and CBF to leverage the strengths of both approaches.
MODEL DEPLOYMENT:
- Deploy the trained model in a production-ready environment.
- Create an API to receive user input (e.g., ratings, movie IDs) and return personalized movie
recommendations.
12
USER INTERFACE:
- Develop a user-friendly interface to interact with the recommendation system.
- Allow users to rate movies, view recommendations, and explore movie details.
CONTINUOUS IMPROVEMENT:
- Collect user feedback and ratings to refine the recommendation model.
- Monitor the system's performance and adjust the algorithm as needed.
- Explore new data sources and techniques to improve the recommendation quality.
13
7. CODING
# Make predictions
predictions = algo.test(testset)
14
algo.trainset.all_users(): if inner_id ==
inner_user_id:
for raw_movie_id, inner_movie_id in algo.trainset.all_items():
rating = algo.predict(user_id, raw_movie_id, r_ui=0).est
ratings[raw_movie_id] = rating sorted_ratings = sorted(ratings.items(),
key=lambda x: x[1], reverse=True) return [movie_id for movie_id, rating in
sorted_ratings[:num_recommendations]]
15
8. SYSTEM DESIGN:
16
Fig:4:movie recommendation system
17
9. SCREENSHOTS
18
Fig:6:to display the selected columns
19
Fig:7:enter the movie name to get similarity
20
10.CONCLUSION
In conclusion, the movie recommendation system developed in this project demonstrates the
potential of collaborative filtering and content-based filtering techniques in providing
personalized movie recommendations. By leveraging user ratings and movie metadata, the
system is able to learn user preferences and suggest relevant movies. The system's performance
evaluation shows promising results, with high precision and recall values. Furthermore, the
system's scalability and flexibility make it suitable for integration with existing movie
streaming platforms. Overall, the movie recommendation system developed in this project has
the potential to enhance the movie-watching experience for users and provide a competitive
edge for movie streaming services. The movie recommendation system's success can be
attributed to its ability to effectively capture user preferences and movie attributes, and to
leverage these insights to provide personalized recommendations. By continuously learning
from user interactions and adapting to changing preferences, the system can maintain its
accuracy and relevance over time. As the movie streaming landscape continues to evolve, the
system's flexibility and scalability make it an attractive solution for streaming services seeking
to enhance their user experience and stay competitive.
21
11.BIBLIOGRAPHY
1. Manavi, Vallari, Anjali Diwate, Priyanka Korade, and Anita Senathi. "MoView Engine
: An Open Source Movie Recommender." ITM Web of Conferences 32 (2020): 03008.
http://dx.doi.org/10.1051/itmconf/20203203008.
2. Shishodia, Dinesh. "Movie Recommendation System." International Journal for
Research in Applied Science and Engineering Technology 9, no. VI (June 30, 2021):
4919–24. http://dx.doi.org/10.22214/ijraset.2021.35929
3. Li, Bo, Yibin Liao, and Zheng Qin. "Precomputed Clustering for Movie
Recommendation System in Real Time." Journal of Applied Mathematics 2014 (2014):
1–9. http://dx.doi.org/10.1155/2014/742341.
4. Li, Bo, Yibin Liao, and Zheng Qin. "Precomputed Clustering for Movie
Recommendation System in Real Time." Journal of Applied Mathematics 2014 (2014):
1–9. http://dx.doi.org/10.1155/2014/742341.
5. B, Adithya. "Movie Recommendation System." International Journal for Research in
Applied Science and Engineering Technology 8, no. 11 (November 30, 2020): 120–22.
http://dx.doi.org/10.22214/ijraset.2020.32064
6. Komurlekar, Runali. "Movie Recommendation Model from Data through Online
Streaming." International Journal for Research in Applied Science and Engineering
Technology 9, no. 8 (August 31, 2021): 1549–51.
http://dx.doi.org/10.22214/ijraset.2021.37495.
7. Verma, Rupal. "Movie Recommendation System by Using Collaborative Filtering."
International Journal for Research in Applied Science and Engineering Technology 9,
no. 9 (September 30, 2021): 888–92. http://dx.doi.org/10.22214/ijraset.2021.38084
8. Raj, Kunal, Atulya Abhinav Das, Antariksh Guha, Parth Sharma, and Mohana Kumar
S. "Movie Recommendation System." International Journal of Computer Sciences and
Engineering 7, no. 4 (April 30, 2019): 1024–28.
http://dx.doi.org/10.26438/ijcse/v7i4.10241028.
22