{"id":21625612,"url":"https://github.com/eljandoubi/disasterresponsepipeline","last_synced_at":"2026-04-09T01:31:20.217Z","repository":{"id":180172209,"uuid":"656379026","full_name":"eljandoubi/DisasterResponsePipeline","owner":"eljandoubi","description":"Project aim is to build a Natural Language Processing (NLP) model to categorize messages on a real time basis.","archived":false,"fork":false,"pushed_at":"2023-06-21T09:27:51.000Z","size":2165,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-03T15:24:49.095Z","etag":null,"topics":["flask","nltk","numpy","pandas","plotly","scikit-learn","scipy","sqlalchemy"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eljandoubi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-06-20T20:45:11.000Z","updated_at":"2023-06-21T11:56:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"4161b5d4-a5b8-467b-81dc-1057479320ac","html_url":"https://github.com/eljandoubi/DisasterResponsePipeline","commit_stats":null,"previous_names":["eljandoubi/disasterresponsepipeline"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/eljandoubi/DisasterResponsePipeline","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eljandoubi%2FDisasterResponsePipeline","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eljandoubi%2FDisasterResponsePipeline/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eljandoubi%2FDisasterResponsePipeline/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eljandoubi%2FDisasterResponsePipeline/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eljandoubi","download_url":"https://codeload.github.com/eljandoubi/DisasterResponsePipeline/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eljandoubi%2FDisasterResponsePipeline/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31581864,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flask","nltk","numpy","pandas","plotly","scikit-learn","scipy","sqlalchemy"],"created_at":"2024-11-25T01:09:50.183Z","updated_at":"2026-04-09T01:31:20.198Z","avatar_url":"https://github.com/eljandoubi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Disaster Response Pipeline Project\n\n![Intro Pic](pics/intro.png)\n\n\n## Table of Contents\n1. [Description](#description)\n2. [Files Descriptions](#files)\n3. [Getting Started](#getting_started)\n\t1. [Dependencies](#dependencies)\n\t2. [Installation](#installation)\n\n\n\u003ca name=\"descripton\"\u003e\u003c/a\u003e\n## Description\n\nFollowing a disaster, responsible agencies are inundated with a multitude of direct or social media communications at a time when disaster response organizations are least equipped to sift through and prioritize the most crucial messages. It is common for only one message in a thousand to hold relevance for disaster response professionals. In such situations, various organizations typically handle specific aspects of the problem. For instance, one organization focuses on providing clean water, another deals with clearing blocked roads, and yet another ensures the availability of medical supplies.\n\nThe project aim is to build a Natural Language Processing (NLP) model to categorize messages on a real time basis. The dataset contains pre-labelled tweet and messages from real-life disaster events.\n\nThis project is divided in the following key sections:\n\n1. Processing data, building an ETL pipeline to extract data from source, clean the data and save them in a SQLite DB\n2. Build a machine learning pipeline to train a model that can classify text message in various categories\n3. Run a web app which can show model results in real time\n\n\u003ca name=\"files\"\u003e\u003c/a\u003e\n## Files Descriptions \n\nThe files structure is arranged as below:\n\n\t- README.md: read me file\n \t- requirement.txt: dependencies list\n\t- workspace\n\t\t- \\app\n\t\t\t- run.py: flask file to run the app\n\t\t\t- \\templates\n\t\t\t\t- master.html: main page of the web application \n\t\t\t\t- go.html: result web page\n\t\t- \\data\n\t\t\t- disaster_categories.csv: categories dataset\n\t\t\t- disaster_messages.csv: messages dataset\n\t\t\t- process_data.py: ETL process\n\t\t- \\models\n\t\t\t- train_classifier.py: ML \u0026 NLP pipeline code\n\n\n\u003ca name=\"getting_started\"\u003e\u003c/a\u003e\n## Getting Started\n\n\u003ca name=\"dependencies\"\u003e\u003c/a\u003e\n### Dependencies\n* Python 3.6+\n* Machine Learning Libraries: NumPy, SciPy, Pandas, Sciki-Learn\n* Natural Language Process Libraries: NLTK\n* SQLlite Database Libraqries: SQLalchemy\n* Web App and Data Visualization: Flask, Plotly\n\n\u003ca name=\"installation\"\u003e\u003c/a\u003e\n### Installation\n1. Clone the git repository:\n\n```git clone https://github.com/eljandoubi/DisasterResponsePipeline.git```\n\n2. Change directory\n\n```cd DisasterResponsePipeline```\n\n3. Create conda environment\n\n```conda create -n \"DisasterResponsePipeline\" python=3.6```\n\n4. Install dependencies\n\n```pip install -r requirements.txt```\n\n5. You can run the following commands in the project's directory to set up the database, train model and save the model.\n\n    - To run ETL pipeline to clean data and store the processed data in the database\n    \n        ```python data/process_data.py data/disaster_messages.csv data/disaster_categories.csv data/disaster_response_db.db```\n        \n        \n    - To run the ML pipeline that loads data from DB, trains classifier and saves the classifier as a pickle file\n    \n        ```python models/train_classifier.py data/disaster_response_db.db models/classifier.pkl```\n\n\n\n6. Run the following command in the app's directory to run your web app.\n    `python app/run.py`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feljandoubi%2Fdisasterresponsepipeline","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feljandoubi%2Fdisasterresponsepipeline","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feljandoubi%2Fdisasterresponsepipeline/lists"}