Automated ESG scoring and profiling for companies using NLP and open data sources.
Project description
ESGProfiler
🌍 Automated ESG Scoring & Profiling with NLP and Open Data
ESGProfiler is an open-source Python package and Streamlit dashboard for programmatically analyzing and visualizing the Environmental, Social, and Governance (ESG) signals for any company.
Features
- 📈 ESG Composite Scoring: NLP-based analysis of annual reports, news, and filings to auto-compute ESG subscores (Environment, Social, Governance)
- 📰 Flexible Data Ingestion: Profile companies from Yahoo Finance, SEC filings, news headlines, report URLs, or custom-pasted text
- 🗺 Streamlit Dashboard: Interactive web app for quick analysis and ESG visualization
- ⚡ Modular and Extensible: Robust Python API for developers and researchers to adapt, plug in new data sources, and customize their workflow
Quick Start
1. Install
pip install esgprofiler python -m spacy download en_core_web_sm
text
2. Run Dashboard
esgprofiler-dashboard
text Or for source builds: streamlit run esgprofiler/dashboard.py
text
3. Use Python API
from esgprofiler.data_ingest import fetch_yahoo_profile, fetch_news_headlines from esgprofiler.nlp_extract import count_esg_mentions from esgprofiler.scoring import score_esg_text
profile = fetch_yahoo_profile("MSFT") news = fetch_news_headlines("MSFT") text = " ".join(news) scores = score_esg_text(text) print(scores)
text
Dashboard Features
- Enter a company ticker or CIK
- Choose a data source: Yahoo News, SEC filing, report URL, or manual text
- See company profile and ESG scores
- Interactive breakdown by E/S/G
- Key signal sentences and expandable sections
- NEW: Copy/paste your own text or link to analyze custom data
Project Structure
esgprofiler/ │ init.py │ data_ingest.py │ nlp_extract.py │ scoring.py │ config.py │ dashboard.py README.md setup.py requirements.txt tests/ examples/
text
Developer & Contribution Guide
- Fork and clone the repo
- Add features or suggestions via PRs and Issue tracker
- Extend keyword sets and weighting logic in
config.py - Package and dashboard designed for easy extension to global data (news APIs, non-US filings, etc.)
License
MIT License © 2025 Advait Dharmadhikari
Acknowledgements
Disclaimer
This tool uses open/public data and simple NLP approaches. Scores are for demonstration and educational purposes only—do not use alone for serious investment decisions.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file esgprofiler-0.1.3.tar.gz.
File metadata
- Download URL: esgprofiler-0.1.3.tar.gz
- Upload date:
- Size: 10.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
556802d1f8149f4b293be1c42ca820a86795dffeb46a6eb8ee22aa19065a6365
|
|
| MD5 |
139b449503a8a4ac01e75b1f32495e2e
|
|
| BLAKE2b-256 |
827f52bfc86194b411ddf6e901c0bc8df9cc871abe026396a341306e3e6e2a37
|
File details
Details for the file esgprofiler-0.1.3-py3-none-any.whl.
File metadata
- Download URL: esgprofiler-0.1.3-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
398590e68c2a0b757448b347669dc1eee65815a01656185cc5dd24dadbaa7897
|
|
| MD5 |
559b0432bc6bffad0cd93a792763ac67
|
|
| BLAKE2b-256 |
48494ff422223eef787b8b292a08335d581ec964626d0e3bcc01009fee14c29d
|