--- title: ESG_Intelligence_Platform app_file: app.py sdk: gradio sdk_version: 6.0.2 --- # 🌍 ESG Intelligence Platform Advanced Multi-Label ESG Text Classification with Visual Analytics ![ESG Platform](https://img.shields.io/badge/ESG-Intelligence-22c55e?style=for-the-badge) ![Python](https://img.shields.io/badge/Python-3.9+-3776AB?style=for-the-badge&logo=python) ![Gradio](https://img.shields.io/badge/Gradio-4.0+-FF6F00?style=for-the-badge) ## ✨ Features ### 🔍 Single Text Analysis - **Real-time ESG classification** with confidence scores - **Visual radar chart** showing ESG profile - **Keyword highlighting** to explain predictions - **Interactive examples** for learning ### 📁 Batch Processing - Upload **CSV or TXT files** for bulk analysis - **Aggregate statistics** and visualizations - **Export results** to CSV format - **Trend analysis** across documents ### 📊 Visual Analytics - **ESG Radar Charts** - Visualize multi-dimensional ESG profiles - **Confidence Bars** - See per-category certainty - **Distribution Pie Charts** - Batch analysis summaries - **Score Trend Lines** - Track patterns across documents ## 🚀 Quick Start ### Installation ```bash # Clone or navigate to the app directory cd esg_app # Install dependencies pip install -r requirements.txt # Run the application python app.py ``` ### Access the App Once running, open your browser to: - Local: `http://localhost:7860` - Public (if share=True): Check terminal for URL ## 📖 Usage Guide ### Single Text Analysis 1. **Enter text** in the input box (or select a sample) 2. Click **"🔍 Analyze Text"** 3. View results: - **Prediction pills** showing detected categories - **ESG Radar** showing dimensional scores - **Confidence bars** with thresholds - **Highlighted keywords** explaining the classification ### Batch Analysis 1. **Upload a file**: - **CSV**: First column should contain text - **TXT**: Separate documents with blank lines 2. Click **"📊 Analyze Batch"** 3. View aggregate results and export to CSV ## 🏷️ ESG Categories | Category | Icon | Description | |----------|------|-------------| | **Environmental (E)** | 🌿 | Climate, emissions, energy, waste, biodiversity | | **Social (S)** | 👥 | Labor practices, diversity, health & safety, community | | **Governance (G)** | ⚖️ | Board structure, ethics, transparency, compliance | | **Non-ESG** | 📄 | General business content without ESG relevance | ## 🔧 Model Architecture ``` Input Text ↓ Qwen3-Embedding-8B (4096-dim) ↓ StandardScaler ↓ Logistic Regression Ensemble (per-class) ↓ Threshold Optimization ↓ Multi-Label Predictions ``` ### Key Technical Details - **Embedding Model**: Qwen3-Embedding-8B (4096 dimensions) - **Classification**: Logistic Regression with balanced class weights - **Cross-Validation**: 5-fold MultilabelStratifiedKFold - **Threshold Optimization**: Per-class + joint macro-F1 optimization - **Ensemble**: 3-seed averaging for robustness ## 📈 Performance | Metric | Score | |--------|-------| | **Macro F1** | 0.82+ | | Environmental F1 | 0.78 | | Social F1 | 0.85 | | Governance F1 | 0.79 | | Non-ESG F1 | 0.84 | ## 🎨 Customization ### Modify Thresholds Edit `app.py` or `model.py`: ```python CONFIG.thresholds = { 'E': 0.35, # Lower = more Environmental predictions 'S': 0.45, # Balanced 'G': 0.40, # Balanced 'non_ESG': 0.50 } ``` ### Add Keywords Extend the keyword lists in `ESGConfig`: ```python CONFIG.keywords['E'].extend(['sustainability', 'climate action']) ``` ### Custom Styling Modify `THEME_CSS` in `app.py` for visual customization. ## 📁 Project Structure ``` esg_app/ ├── app.py # Main Gradio application ├── model.py # Model inference module ├── requirements.txt # Python dependencies ├── README.md # This file └── models/ # Saved model weights (optional) ├── scaler.joblib ├── lr_E.joblib ├── lr_S.joblib ├── lr_G.joblib └── lr_non_ESG.joblib ``` ## 🤝 Contributing 1. Fork the repository 2. Create a feature branch 3. Make your changes 4. Submit a pull request ## 📜 License MIT License - Feel free to use and modify! ---
**Built with ❤️ for ESG Analysis** 🌿 Environmental | 👥 Social | ⚖️ Governance