Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sarthak-0-sach/movie-recommender-system

A Python-based web application that leverages Natural Language Processing (NLP) to recommend movies based on user preferences, including cast, genres, and production companies. Using the bag-of-words approach, the app compares movie attributes to suggest the best match.
https://github.com/sarthak-0-sach/movie-recommender-system

data-preprocessing interactive-visualizations movie-recommendation-app nlp nltk-library pandas python scikitlearn-machine-learning streamlit

Last synced: 13 days ago
JSON representation

A Python-based web application that leverages Natural Language Processing (NLP) to recommend movies based on user preferences, including cast, genres, and production companies. Using the bag-of-words approach, the app compares movie attributes to suggest the best match.

Awesome Lists containing this project

README

        

# 🎬 Movie Recommender System

Unlock Your Next Favorite Film! Our NLP-powered Movie Recommendation Web App delivers tailored suggestions based on cast, genres, and production companies. Explore a seamless Streamlit interface, view movie descriptions, and access a comprehensive list of movies.

## πŸ“‹ Table of Contents
1. [πŸ€– Introduction](#-introduction)
2. [βš™οΈ Tech Stack](#%EF%B8%8F-tech-stack)
3. [πŸ”‹ Features](#-features)
4. [πŸ“‚ File Structure](#-file-structure)
5. [🀸 Quick Start](#-quick-start)
6. [πŸ“Έ Screenshots](#-screenshots)
7. [πŸ”— Author](#-author)
8. [πŸš€ More](#-more)

## πŸ€– Introduction
The **Movie Recommender System** is a Python-based web application that leverages Natural Language Processing (NLP) to recommend movies based on user preferences, including cast, genres, and production companies. Using the bag-of-words approach, the app compares movie attributes to suggest the best match. You can also view detailed information about the movies, including descriptions and cast details.

## βš™οΈ Tech Stack
| Technology | Purpose |
|---------------------|---------------------------------------------------|
| **Python** | Backend programming language |
| **Streamlit** | Web framework for creating the interface |
| **Natural Language Processing (NLP)** | Used for processing movie-related data and generating recommendations |
| **Pandas** | Data handling and manipulation |
| **Scikit-learn** | Machine learning algorithms for recommendation |

## πŸ”‹ Features
- **πŸŽ₯ Movie Recommendations**: Get movie suggestions based on similarity in genres, cast, production company, and tags.
- **πŸ“œ Movie Description**: View detailed descriptions and information about each movie.
- **πŸ‘₯ Cast Information**: Learn about the cast involved in the movies.
- **πŸ“š All Movies List**: Explore a list of all available movies with an option to navigate using a slider or buttons.
- **πŸ“± Seamless UI**: Simple, user-friendly interface built with Streamlit for a smooth browsing experience.

## πŸ“‚ File Structure
Here’s the updated file structure of the project:

```
Movie-Recommender-System/
β”œβ”€β”€ .idea/ # IDE configuration files
β”‚ β”œβ”€β”€ inspectionProfiles/
β”‚ β”œβ”€β”€ Project_Default.xml
β”‚ β”œβ”€β”€ profiles_settings.xml
β”‚ β”œβ”€β”€ misc.xml
β”‚ β”œβ”€β”€ modules.xml
β”‚ β”œβ”€β”€ vcs.xml
β”œβ”€β”€ .gitignore # Git ignore file
β”œβ”€β”€ .gitattributes # Git attributes file
β”œβ”€β”€ LICENSE # Project license
β”œβ”€β”€ README.md # Project documentation
β”œβ”€β”€ Movie_Trial.iml # IntelliJ project file
β”œβ”€β”€ main.py # Main file to run the Streamlit app
β”œβ”€β”€ requirements.txt # Python dependencies
β”œβ”€β”€ tmdb_5000_credits.csv # Credits data for the movies
β”œβ”€β”€ tmdb_5000_movies.csv # Movies data
β”œβ”€β”€ processing/ # Data processing scripts
β”‚ β”œβ”€β”€ __init__.py # Initialization for processing module
β”‚ β”œβ”€β”€ display.py # Movie display logic
β”‚ β”œβ”€β”€ preprocess.py # Data preprocessing functions
```

## 🀸 Quick Start

### Installation
Follow these steps to set up and run the application locally.

1. **Clone the Repository:**
```bash
git clone https://github.com/AnupamMittal-21/Movie-Recommender-System.git
cd Movie-Recommender-System
```

2. **Create a Virtual Environment:**
Make sure you have a virtual environment set up for your project:
```bash
python -m venv venv
```

3. **Install Dependencies:**
Install the required dependencies using the `requirements.txt` file:
```bash
pip install -r requirements.txt
```

4. **Run the Application:**
To start the app, execute the following command in your terminal:
```bash
streamlit run main.py
```

**Note**: The first time you run the app, it may take a few moments to initialize and set up necessary files.

## πŸ“Έ Screenshots

Here are a few screenshots of the app in action:

**Home Page**
![Sample Image 1](https://github.com/AnupamMittal-21/Movie-Recommender-System/assets/96871662/cce0c494-4dde-4872-868b-2f6f23b24a68)

**Movie Description Page**:
![Sample Image 2](https://github.com/AnupamMittal-21/Movie-Recommender-System/assets/96871662/ff4fd4bd-1cf3-4580-9614-67e8698b45e5)

**All Movies Page**
![Sample Image 3](https://github.com/AnupamMittal-21/Movie-Recommender-System/assets/96871662/beb53c76-4cd1-466d-b32d-97a63555c043)

## πŸ”— Author

Sarthak Sachdev
- Website - [Sarthak Sachdev](https://itsmesarthak.netlify.app/)
- LinkedIn - [Sarthak Sachdev](https://www.linkedin.com/in/sarthak2004/)
- Twitter - [@sarthak_sach69](https://www.twitter.com/sarthak_sach69)

## πŸš€ More
Feel free to contribute or suggest features to improve the app. Pull requests and feedback are always welcome!