A chatbot that helps users identify common fever-related diseases in Nigeria (Malaria, Typhoid, Dengue, Yellow Fever, Influenza) based on their reported symptoms.
# Smart Health Assistant — Nigeria Fever Chatbot System
## Project Overview
An AI-powered chatbot that helps users identify common fever-related diseases in Nigeria
(Malaria, Typhoid, Dengue, Yellow Fever, Influenza) based on their reported symptoms.
## File Structure
```
smart_health_assistant/
│
├── data/
│ └── NigeriaFeverDatasets_corrected.xlsx ← Dataset
│
├── models/ ← Auto-created after training
│ ├── naive_bayes_pipeline.pkl
│ ├── decision_tree_model.pkl
│ ├── vectorizer.pkl
│ ├── feature_weights.pkl
│ └── symptoms_by_disease.pkl
│
├── charts/ ← Auto-created during EDA
│
├── data_preprocessing_eda.py ← Data Preprocessing + EDA
├── train_model.py ← Model Training + Save .pkl
├── chatbot_logic.py ← Chatbot Engine
├── app.py ← Streamlit Web Application
├── requirements.txt
└── README.md
```
## Setup (VS Code)
### 1. Install dependencies
```bash
pip install -r requirements.txt
```
### 2. Run EDA (optional — generates charts)
```bash
python data_preprocessing_eda.py
```
### 3. Train the ML models (REQUIRED before running app)
```bash
python train_model.py
```
### 4. Launch the Streamlit app
```bash
streamlit run app.py
```
Open your browser at:
localhost
## Algorithms Used
| Algorithm | Role |
|--------------------|-----------------------------------------|
| Naïve Bayes | Primary disease prediction (60% weight) |
| Cosine Similarity | Symptom vector matching (40% weight) |
| Decision Tree | Interpretable rule extraction / backup |
| Rule-Based System | Keyword → symptom_code extraction |
## Technologies
- Python 3.10+
- NumPy, Pandas — data handling
- Scikit-learn — ML models
- Streamlit — web interface
- Pickle (.pkl) — model serialisation
- Matplotlib, Seaborn — visualisation
## Code La …