This project focuses on data cleaning, exploratory data analysis (EDA), machine learning, and natural language processing (NLP) in conjunction with a web application.
- This project uses machine learning to set up a system that suggests movies to watch.
- The system uses a collection of movie overviews and movie features to suggest movies to users based on what they like and how they behave.
- Users can get unique movie suggestions from the recommendation system, which uses content-based filtering.
See the implementation details with IPython Notebook
To use the app on the local machine, open Anaconda Prompt and run the following commands:
- Clone the Repository
git clone git@github.com:NayakSubhransu/Movie-Recommendation-System.git
- Change Working Directory
cd Movie-Recommendation-System
- If needed create a Virtual Environment and activate it
conda create -n environment_name python=3.10
conda activate environment_name
For Windows, Run the following Command
py -3 -m venv venv
venv\Scripts\activate
For macOS and Linux, Run the following Command
python3 -m venv venv
source venv/bin/activate
- Install the requirements
python -m pip install -r requirements.txt
- Run the App
streamlit run app.py
-
Open the URL generated in a browser to use the App
-
To Run the application on CLI, install the following packages
pip install pandas requests rich
- Run the following Commands in the terminal:
To see the movie list, Run the following Command
python app_cli.py --movie list --page_number 2(default)
To predict the top 5 movies according to your selected movie, Run the following Command
python app_cli.py --movie "YourMovieTitle" --num_recommendations 5(default)
- Implements The content based Filtering Algorithm
- Implements Cosine Similarity Algorithm and Vectorization of Textual Documents
- Utilizes user-based and item-based collaborative filtering techniques
- Provides movie suggestions based on user preferences and movie similarities
The system utilizes a movie dataset containing movie features and Movie credits. The dataset is preprocessed to extract relevant features and ratings, which are then used to train and evaluate the recommendation system.
- Jupyter Notebook
- Pandas
- Numpy
- nltk
- sklearn
- pickle
- streamlit
The recommendation system can be used to provide movie suggestions for new and existing users. Users can input their preferences, and the system will generate a list of recommended movies based on their input and historical data.
- Incorporate deep learning models for better recommendation accuracy
- Enhance the user interface for a more user-friendly experience
- Integrate additional data sources for improved recommendations
Contributions to the movie recommendation system are welcome. If you find any issues or would like to add new features, please feel free to open an issue or submit a pull request.
- The project was inspired by the need to provide users with personalized movie recommendations.
- We would like to thank the open-source community for providing valuable resources and tools that facilitated the development of this system.