movie-recommendation-chatbot
Movie Recommendation Chatbot provides information about a movie like plot, genre, revenue, budget, imdb rating, imdb links, etc. The model was trained with Kaggle’s movies metadata dataset. To give a recommendation of similar movies, Cosine Similarity and TFID vectorizer were used. Slack API was used to provide a Front End for the chatbot. IBM Watson was used to link the Python code for Natural Language Processing with the front end hosted on Slack API. Libraries like nltk, sklearn, pandas and nlp were used to perform Natural Language Processing and cater to user queries and responses.
https://github.com/kaushikjadhav01/movie-recommendation-chatbot
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 1 DOI reference(s) in README -
✓Academic publication links
Links to: scholar.google, zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.0%) to scientific vocabulary
Keywords
Repository
Movie Recommendation Chatbot provides information about a movie like plot, genre, revenue, budget, imdb rating, imdb links, etc. The model was trained with Kaggle’s movies metadata dataset. To give a recommendation of similar movies, Cosine Similarity and TFID vectorizer were used. Slack API was used to provide a Front End for the chatbot. IBM Watson was used to link the Python code for Natural Language Processing with the front end hosted on Slack API. Libraries like nltk, sklearn, pandas and nlp were used to perform Natural Language Processing and cater to user queries and responses.
Basic Info
Statistics
- Stars: 38
- Watchers: 2
- Forks: 12
- Open Issues: 0
- Releases: 1
Topics
Metadata Files
README.md
Movie-Recommendation-Chatbot
Movie Recommendation Slack chatbot using IBM Watson, nltk, pandas and scikit-learn
<!-- TABLE OF CONTENTS -->
Table of Contents
System Description and Functions
The chatbot uses a recommendation engine to suggest similar movies with their IMDB links and posters. In addition, it also provides information about the following properties of the movie input by the user:
- movie genre
- movie plot
- revenue
- budget
- IMDB rating
- IMDB site link
To give a recommendation of similar movies, Cosine Similarity and TFID vectorizer were used. Slack API was used to provide a Front End for the chatbot. IBM Watson was used to link the Python code for Natural Language Processing with the front end hosted on Slack API. Libraries like nltk, sklearn, pandas and nlp were used to perform Natural Language Processing and cater to user queries and responses. Since the chatbot is hosted on Slack, multiple users can communicate with it at the same time.
Screenshots
Find more screenshots, please visit the screenshots folder Or click here
Built With
Installation
This file will walk you through the steps to setup your bot. Download the entire folder and the follow the steps below.
Step 1: Create Slack Bot user
Please follows the instructions in the link below to create a Slack App.
https://github.com/kaushikjadhav01/Movie-Recommendation-Chatbot/blob/master/slack/Createslackapp.ipynb
Step 2: Create a IBM Watson account and Upload the bot.json workspace Please follows the instructions in the link below to create a Slack App.
https://github.com/kaushikjadhav01/Movie-Recommendation-Chatbot/blob/master/nlp/IBMWatsonConversation_setup.ipynb
Step 3: Install required packages Install the required packages listed in the requirements.txt file. To install the required packages, please use the code below. I might have missed some packages to include in the requirements.txt file. When you initiate the bot, it might fail that a particular module does not exist. Please install it and then initiate bot again, which will fix the issue.
pip3 install -r requirements.txt
Step 4: Update the config files with the Slack and Watson API details Please make sure that you modified the API details both for Slack and Watson in the config.py file
Step 5: Download data from source and perform Data Preparation The data for this example is downloaded from the location below,
https://www.kaggle.com/rounakbanik/movie-recommender-systems/data
Name of the dataset - movies_metadata.csv
Since the dataset size is greater than 25MB, I provided only a snippet here in the data folder. However, the exercise is built on the entire dataset obtained from the source. Please download the data from Kaggle and use it for your practice.
"metadata_prep.csv" will be created after you run the data preparation code which will be later used in nlp models to train the movie recommendation system. The data preparation code is provided below.
https://github.com/kaushikjadhav01/Movie-Recommendation-Chatbot/blob/master/data/Data_Preparation.ipynb
I have uploaded the sample of the data here (metadataprepsample.csv).
Step 6: Create "onetime.txt" file Navigate to the folder where the main.py file resides and execute the code below.
python3 nlp/nlpsolutions/onetimerun_file.py This will create the "onetime.txt" file automatically. If you need to rename this file, update the name in "config.py" file.
Step 7: Initiate Bot Navigate to the folder where the main python script exists and run the code below.
python main.py
Authors
Kaushik Jadhav
- Github: https://github.com/kaushikjadhav01
- Medium: https://medium.com/@kaushikjadhav01
- LinkedIn: https://www.linkedin.com/in/kaushikjadhav01/
- Portfolio: http://kajadhav.me/
- Linked In: https://www.linkedin.com/in/kajadhav/
- Dev.to: https://dev.to/kaushikjadhav01
- Codesignal: https://app.codesignal.com/profile/kaushik_j_vtc
- Google Scholar: https://scholar.google.com/citations?user=iRYcFi0AAAAJ
- Daily.dev: https://app.daily.dev/kaushikjadhav01
- Google devs: https://developers.google.com/profile/u/kaushikjadhav01
- Stack Overflow: https://stackoverflow.com/users/21890981/kaushik-jadhav
Links
Owner
- Name: Kaushik Jadhav
- Login: kaushikjadhav01
- Kind: user
- Location: Raleigh, North Carolina, USA
- Company: @microsoft, @ncstate-university, @browserstack
- Website: kajadhav.me
- Repositories: 9
- Profile: https://github.com/kaushikjadhav01
Incoming Cloud & AI SWE Intern @microsoft | MS CS Fall 2022 @ncstate-university | Ex-Software Engineer @browserstack | Applying my engineering skills to solve
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - family-names: "Jadhav" given-names: "Kaushik" orcid: "https://orcid.org/0000-0000-0000-0000" title: "Movie-Recommendation-Chatbot" version: 2.0.0 doi: 10.5281/zenodo.10499163 date-released: 2023-03-29 url: "https://github.com/kaushikjadhav01/Movie-Recommendation-Chatbot"
GitHub Events
Total
- Watch event: 1
- Fork event: 1
Last Year
- Watch event: 1
- Fork event: 1
Dependencies
- pandas ==0.20.3
- slackclient ==1.2.1
- tabulate ==0.8.2
- watson-developer-cloud >=2.4.0