hillbyte/mizo-sentiment
Viewer • Updated • 1.22k • 37
hillbyte/mizo-sentiment-mizbert)
A state-of-the-art 3-class sentiment classifier for the Mizo language (lus / Lushai), fine-tuned on the pretrained robzchhangte/MizBERT (12-layer, 768-dimension, 110M parameter BERT architecture).
num_labels=3)robzchhangte/MizBERTlus)0: Negative1: Neutral2: PositiveEvaluated on a stratified 15% hold-out test set (693 unseen samples) from combined Mizo sentiment datasets:
| Metric | Score |
|---|---|
| Validation Accuracy | 90.62% |
| Weighted F1-Score | 0.9112 |
| Macro F1-Score | 0.8236 |
| Class | Precision | Recall | F1-Score |
|---|---|---|---|
Negative (0) |
93.4% | 90.7% | 0.920 |
Neutral (1) |
51.4% | 73.5% | 0.605 |
Positive (2) |
96.3% | 92.9% | 0.945 |
The model was fine-tuned on 4,620 unified Mizo sentences synthesized from two community datasets:
hillbyte/mizo-sentiment (1,220 sentences, 3-class)Blue7Bird/Mizo_sentiment_dataset (3,400 sentences, binary)Negative: 0.83, Neutral: 4.71, Positive: 0.63) to effectively capture minority Neutral sentiments.pipeline
from transformers import pipeline
classifier = pipeline("text-classification", model="hillbyte/mizo-sentiment-mizbert")
# Positive prediction
result = classifier("Aizawl khawpui ruahmanna thar hi a tha hle mai, kan lawm e!")
print(result)
# [{'label': 'Positive', 'score': 0.9916}]
# Negative prediction
result = classifier("Hetiang thil duhawm lo leh tha lo lutuk hi kan duh lo tawp mai.")
print(result)
# [{'label': 'Negative', 'score': 0.9938}]
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
model_name = "hillbyte/mizo-sentiment-mizbert"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
text = "Aizawl khawpui ruahmanna thar hi a tha hle mai, kan lawm e!"
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)[0]
id2label = model.config.id2label
predicted_id = torch.argmax(probs).item()
print(f"Sentiment: {id2label[predicted_id]} ({probs[predicted_id].item()*100:.2f}%)")
If you use this model or the underlying datasets in your research or application, please cite the following publication:
@article{Lalrinmawii2025DetectingAC,
title={Detecting Abusive Comments in Mizo: A Machine Learning Approach for a Low-Resource Language},
author={R Lalrinmawii and Robert Lalramhluna and Gunavathi R.},
journal={2025 IEEE International Conference on Advanced Visual and Signal-Based Systems (AVSS)},
year={2025},
pages={1-6},
url={https://api.semanticscholar.org/CorpusID:281244917}
}
Base model
robzchhangte/MizBERT