/Disaster-Response

Classification of tweets using NLP

Primary LanguagePython

Disaster Response Pipeline Project

Front Image

Table of Contents

  1. Description
  2. Getting Started
    1. Dependencies
    2. Installing
    3. Executing Program
    4. Additional Material
  3. Authors
  4. License
  5. Acknowledgement
  6. Screenshots

Description

This Project is part of Data Science Nanodegree Program by Udacity in collaboration with Figure Eight. The initial dataset contains pre-labelled tweet and messages from real-life disaster. The aim of the project is to build a Natural Language Processing tool that categorize messages.

The Project is divided in the following Sections:

  1. Data Processing, ETL Pipeline to extract data from source, clean data and save them in a proper databse structure
  2. Machine Learning Pipeline to train a model able to classify text message in categories
  3. Web App to show model results in real time.

Getting Started

Dependencies

  • Python 3.5+ (I used Python 3.7)
  • Machine Learning Libraries: NumPy, SciPy, Pandas, Sciki-Learn(0.19.1)
  • Natural Language Process Libraries: NLTK
  • SQLlite Database Libraqries: SQLalchemy
  • Web App and Data Visualization: Flask, Plotly

Installing

Clone this GIT repository:

git clone https://github.com/Akshatjain1999/Disaster-Response.git

Executing Program:

  1. Run the following commands in the project's root directory to set up your database and model.

    • To run ETL pipeline that cleans data and stores in database python data/process_data.py data/disaster_messages.csv data/disaster_categories.csv data/DisasterResponse.db
    • To run ML pipeline that trains classifier and saves python models/train_classifier.py data/DisasterResponse.db models/classifier.pkl
  2. Run the following command in the app's directory to run your web app. python run.py

  3. Go to the link showed in the command prompt.

Authors

License

License: MIT

Acknowledgements

  • Udacity for providing such a complete Data Science Nanodegree Program
  • Figure Eight for providing messages dataset to train my model

Screenshots

  1. After clicking Classify Message, you can see the categories which the message belongs to highlighted in green

Sample Output

2.Graph shows the distribution of data.

Sample Input

  1. The main page shows some graphs about training dataset, provided by Figure Eight

Main Page