Aspect-Based Sentiment Analysis on Financial News
Fine-tuned RoBERTa-base model for aspect-based sentiment analysis on 10,686 financial news headlines achieving 86.67% accuracy on entity-level sentiment classification with comprehensive handling of severe class imbalance through weighted loss and regularization techniques.
Role
NLP Engineer & Deep Learning Researcher
Client
Academic Project - Natural Language Processing Course
Team
3-person Team
Timeline
2 months • 2025

Skills & Tools
Skills Applied
Tools & Software
Challenges
The dataset exhibited severe class imbalance with neutral sentiment dominating the distribution, and required entity-level sentiment classification (ABSA) rather than document-level analysis. Preventing overfitting while achieving strong performance across all sentiment classes demanded sophisticated regularization strategies including weighted loss, label smoothing, and dropout.
Solutions
Implemented comprehensive regularization pipeline combining weighted cross-entropy loss (weights: negative=1.26, neutral=0.87, positive=0.95), label smoothing (0.05), dropout (0.3), L2 regularization (weight_decay=0.01), and gradient clipping. Applied anti-leakage data splitting based on unique titles, and used early stopping with patience=5 monitoring validation F1-macro to prevent overfitting.
Impact
Successfully demonstrated that fine-tuned transformer models can achieve high accuracy on aspect-based sentiment analysis for financial news despite severe class imbalance. The model achieved perfect 100% accuracy on negative sentiment detection and 96.25% average confidence, making it suitable for production deployment in financial sentiment tracking systems.
Project Overview
This project fine-tunes RoBERTa-base for Aspect-Based Sentiment Analysis (ABSA) on financial news headlines (SEntFiN v1.1). Unlike document-level sentiment, ABSA scores sentiment toward each entity in a headline — so "Gold shines on seasonal demand; Silver dull" yields Gold: positive, Silver: negative. The model reaches 86.67% accuracy at 96.25% average confidence, with 100% accuracy on negative sentiment — the critical class for financial risk monitoring.
Dataset
SEntFiN v1.1 provides 10,686 headlines with entity-level annotations (14,409 aspect-sentiment pairs, roughly 1.35 entities per headline). Headlines average 24 tokens, so a 40-token max length covers 99%+ of the data. The class distribution skews heavily toward neutral, requiring weighted loss and F1-macro evaluation rather than raw accuracy.
Methodology
Anti-leakage splitting — because one headline can carry multiple entities with different sentiments, splitting is done on unique titles (80/20) so no headline appears in both train and test. This yields 8,548 training headlines (11,493 pairs) and 2,138 test headlines (2,916 pairs). Multi-entity headlines are then flattened into one training sample per entity.
Model — RoBERTa-base (125M parameters, fully fine-tuned) with input format [CLS] entity [SEP] sentence [SEP] and a 3-class head (negative / neutral / positive).
Regularization — to prevent overfitting on a small, imbalanced dataset: weighted cross-entropy (negative 1.26, neutral 0.87, positive 0.95), label smoothing (0.05), dropout (0.3), L2 weight decay (0.01), and gradient clipping (1.0).
Training — AdamW (lr 2e-5) with warmup and linear decay, batch size 128, up to 15 epochs, early stopping (patience 5 on validation F1-macro).
Results
Test set (2,916 samples): 86.67% accuracy, 93% F1-macro, 96.25% mean confidence.
Per class:
- Negative — 100% accuracy (98%+ confidence), essential for risk monitoring.
- Positive — 80%; the single miss was a TCS hiring announcement read as neutral.
- Neutral — 80%; the single miss was "Asian Paints maintains market share" read as positive.
Every error sits on the neutral/positive boundary (announcement- and "maintains"-style phrasing); there is no positive/negative confusion. All predictions exceed 90% confidence, so confidence-threshold filtering is viable in production.
Deployment Notes
Trained in under 45 minutes on an RTX 3060 (~8 GB VRAM). The packaged model (~500 MB, including tokenizer and label maps) runs inference in under 50ms on GPU, supporting entity-level sentiment tracking, negative-sentiment risk alerts, and sector-level aggregation.
Key Takeaways
- Title-based splitting is essential for ABSA — row-based splitting leaks entity context and inflates metrics.
- Weighted loss and F1-macro are non-negotiable for imbalanced data; per-class metrics reveal what accuracy hides.
- General RoBERTa pre-training is enough for strong financial-domain performance — no finance-specific pre-training needed.
- Perfect negative-sentiment detection plus high confidence makes the model well suited to financial risk monitoring.
Future Work
Expand beyond Indian-market English headlines to global and multilingual sources, add temporal splits for trend analysis, and evaluate finance-specific models (FinBERT) with attention-based interpretability.
Source: aspect-based-financial-sentiment · Course: Natural Language Processing, Hasanuddin University, 2025
Project Metrics
86.67% accuracy on test set
96.25% average prediction confidence
14,409 aspect-sentiment pairs processed
125M parameter RoBERTa-base fine-tuned
100% accuracy on negative sentiment detection
Credits & Acknowledgments
SEntFiN v1.1 Dataset
Hugging Face Transformers library
PyTorch deep learning framework
NVIDIA CUDA for GPU acceleration
Project Tags
Related Projects
View all projects →
Medical Anamnesis Chatbot with NLP (Chatbot PUSTU)
Production-ready medical chatbot achieving 92.61% intent classification accuracy using Multinomial Naive Bayes for Indonesian Puskesmas healthcare anamnesis workflow. Automated training data generation via Gemini Flash 2.0 API with custom NLP preprocessing pipeline built from scratch.

Urban Complaint Pattern Mining on NYC 311 Data (21M+ Records)
End-to-end data mining of 21.3M NYC 311 service requests, discovering a six-complaint 'interior maintenance syndrome' validated against 11M independent housing inspection records. Buildings with the full syndrome show 12-44x higher verified violation rates, holding across building-size strata and a prior time window designed to rule out administrative circularity.

MyFriends - Emergency SOS & Contact Management App
Production-ready emergency SOS app with multi-layered persistent notification system (foreground + background + 60 scheduled alarms), real-time location sharing, and comprehensive contact management using Flutter and Firebase.
