Sentiboard: IndoBERT University Sentiment Dashboard
A fine-tuned IndoBERT model, a FastAPI inference API and a Django dashboard that tracks sentiment in university-related posts.
Key results
89%
Validation accuracy of the fine-tuned model
88%
Test accuracy
7,500
Labelled tweets, balanced across three classes
- Sole author (BSc thesis): model, API and dashboard
- Apr 2022 to Jan 2023
- Featured
- L3:university-sentiment-indobert
Results
89%
Validation accuracy of the fine-tuned model
88%
Test accuracy
7,500
Labelled tweets, balanced across three classes
Problem
A university wanted to follow how people talk about it on social media, but reading Indonesian posts one by one does not scale and generic sentiment tools handle Indonesian slang poorly.
Contribution
- I built a balanced dataset of 7,500 Indonesian tweets (2,500 positive, neutral and negative each), sampled from a public dataset about online lectures. I cleaned it with case folding, slang normalization, Sastrawi stopword removal and stemming.
- I fine-tuned indobert-base-p2 for three-class sentiment with the Hugging Face Trainer and published the model on Hugging Face.
- I wrapped the model in a Dockerized FastAPI service that returns the cleaned text, the logits and the label for each post.
- I built Sentiboard, a Django dashboard that collects posts through the Twitter API, labels them with the model and shows sentiment by month with word clouds and topic views.
Code and research
Repositories on GitHub
Papers, thesis and models
Telkom University
eProceedings of Engineering, Vol. 10 No. 4
Tech stack
Python
Hugging FacePyTorch
pandas
FastAPI
DjangoDocker
- IndoBERT
- Sastrawi