CommentLens — Bangla/Banglish 5-Class Comment Classifier
Fine-tuned csebuetnlp/banglishbert (ELECTRA) for classifying Bangla/Banglish social media comments into 5 categories, with class-weighted loss to handle severe label imbalance.
Classes: claim | general | opinion | spam-scam | toxic
Training data
- 32,632 labeled Bangla/Banglish comments (CommentLens dataset)
- Class distribution: general 77% / opinion 18% / toxic 4% / spam-scam 0.6% / claim 0.6%
- 6 epochs, batch size 16, max length 128, LR 2e-5, class-weighted cross-entropy loss
Validation results
| Class | Precision | Recall | F1 | Support |
|---|---|---|---|---|
| claim | 0.52 | 0.56 | 0.54 | 27 |
| general | 0.97 | 0.95 | 0.96 | 3768 |
| opinion | 0.84 | 0.92 | 0.88 | 875 |
| spam-scam | 0.96 | 0.93 | 0.95 | 28 |
| toxic | 0.77 | 0.79 | 0.78 | 197 |
Overall accuracy: 93% (macro avg F1: 0.82, weighted avg F1: 0.93) on a 4,895-row validation set.
Rare classes (claim, spam-scam) have low support and should be treated with caution in production.
Usage
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
tokenizer = AutoTokenizer.from_pretrained("gulamsakaria/commentlens-banglishbert")
model = AutoModelForSequenceClassification.from_pretrained("gulamsakaria/commentlens-banglishbert")
text = "এই পেজে সবাই মিথ্যা কথা বলে"
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=128)
with torch.no_grad():
logits = model(**inputs).logits
probs = torch.softmax(logits, dim=-1)
pred = model.config.id2label[int(probs.argmax())]
print(pred, float(probs.max()))
Part of CommentLens
Built by Gulam Sakaria as part of the CommentLens project on Bangla comment moderation and misinformation detection.
- Downloads last month
- 11
Model tree for gulamsakaria/commentlens-banglishbert
Base model
csebuetnlp/banglishbert