Coder Social home page Coder Social logo

kaushikjadhav01 / movie-recommendation-chatbot Goto Github PK

View Code? Open in Web Editor NEW
40.0 3.0 12.0 16.44 MB

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.

License: MIT License

Python 27.95% Jupyter Notebook 72.05%
natural-language-processing chatbot artificial-intelligence movie-recommendation slack watson recommendation-engine python scikit-learn tabulate

movie-recommendation-chatbot's Introduction

DOI License Code Coverage GitHub contributors Documentation Status GitHub release (latest by date) GitHub issues GitHub closed issues GitHub Repo Size GitHub last commit GitHub language count Commit Acitivity Code Size GitHub forks GitHub stars GitHub watchers

Movie-Recommendation-Chatbot

Movie Recommendation Slack chatbot using IBM Watson, nltk, pandas and scikit-learn

Table of Contents
  1. System Description and Functions
  2. Built With
  3. Installation
  4. Authors
  5. Links

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

IBM Watson Slack Python Pandas NLTK Scikit-learn

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/Create_slack_app.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/IBM_Watson_Conversation_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 (metadata_prep_sample.csv).

Step 6: Create "onetime.txt" file Navigate to the folder where the main.py file resides and execute the code below.

python3 nlp/nlp_solutions/onetime_run_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

Links

movie-recommendation-chatbot's People

Contributors

kaushikjadhav01 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.