This project is part of the Udacity Data Scientist Nanodegree program and involves the
implementation of a natural language processing tool to analyze and classify disaster messages compiled
by Figure Eight.
The project comprises the following sections:
- Building an ETL Pipeline that
- Loads the messages and categories datasets
- Merges the two datasets
- Cleans the data
- Stores it in a SQLite database
- Building an ML Pipeline that
- Loads data from the SQLite database
- Splits the dataset into training and test sets
- Builds a text processing and machine learning pipeline
- Trains and tunes a model using GridSearchCV
- Outputs results on the test set
- Exports the final model as a pickle file
- Building a Flask Web App that
- Visualizes features of the training data
- Classifies messages entered by the user according to the ML model built in step 2
-
Run the following commands in the project's root directory to set up the 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
- To run ETL pipeline that cleans data and stores in database
-
Run the following command in the app's directory to run the web app.
python run.py
-
Go to http://0.0.0.0:3001/
│ ETL Pipeline Preparation.ipynb
- Jupyter Notebook with ETL Pipeline
│ ML Pipeline Preparation.ipynb
- Jupyter Notebook with Machine Learning Pipeline
│ README.md
│
+------app
│ │ run.py
- Flask app
│
│ +------templates
│ │ go.html
- Template file
│ │ master.html
- Main template file
|
+-----data
│ │ DisasterResponse.db
- SQLite database with result of ETL Pipeline
│ │ disaster_categories.csv
- CSV data file
│ │ disaster_messages.csv
- CSV data file
│ │ process_data.py
- ETL script file
|
+------models
│ train_classifier.py
Machine Learning pipeline script