An end-to-end Data Science application that bridges Natural Language Processing (NLP) with real-time descriptive analytics. This platform extracts semantic sentiment from unstructured text data across various formats and dynamically aggregates it into an operational intelligence dashboard.
[LINK]
This project is explicitly engineered to demonstrate competencies required across both Data Analyst and Machine Learning Engineer roles:
- Algorithmic Context Awareness: Utilises the VADER (Valence Aware Dictionary and sEntimer Reasoner) lexicon, which natively maps semantic shifts (e.g., negations like "not good", intensifiers, and punctuation).
- Deterministic Heuristics: Implements a custom keyword-weighting algorithm to address edge cases in the global news context, preventing geopolitical crises or grim articles from falsely flagging as positive due to administrative vocabulary (e.g., "objectives achieved").
- Unstructured Data Pipeline: Automates web-scraping and data ingestion from HTML URLs via
Newspaper3k, text tokenisation withNLTK, and file parsing for.pdfand.docxblobs.
- Session Aggregation Lifecycle: Tracks transactional user interactions seamlessly using state management (
st.session_state) to cache sequential analyses dynamically. - Descriptive Statistics: Generates instantaneous aggregate KPIs, processing mathematical transformations like running means, mode distribution, and volumetric counts.
- Exploratory Data Analysis (EDA): Populates dynamic visualisation layers (categorical frequency bar charts and score variance tracking) to monitor semantic volatility.
- Data Portability: Features an on-demand data exporter that structures raw session logs into standardised, cleaned
.csvdatasets for downstream business intelligence workflows.
- Ingestion Layer: Accepts unstructured inputs via active web URLs, document file uploads, or manual string entry.
- Processing Layer: Cleans text, runs keyword extraction tokenisers, and targets context triggers.
-
Sentiment Engine: Evaluates compound polarity score ranges
$[-1, 1]$ . - Aggregation Layer: Updates a structured data ledger in memory via a Pandas backend.
- Visualisation UI: Triggers real-time graphical renders and provides data download options.
├── app.py # Main application logic, UI design, and NLP pipelines
├── requirements.txt # Python package dependencies (Streamlit, VADER, Pandas, etc.)
├── packages.txt # System-level Linux dependencies for production parsing
└── nltk.txt # Pre-downloaded NLTK tokeniser models (punkt, punkt_tab)
- Clone the repository:
git clone [https://github.com/Sujata005/Sentimental-Analysis.git](https://github.com/Sujata005/Sentimental-Analysis.git) cd Sentimental-Analysis - Install Dependencies:
pip install -r requirements.txt - Run the application:
streamlit run app.py
Sujata Bijalwan