Data and MLFeaturedL3:university-sentiment-indobert
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.
- Role
- Sole author (BSc thesis): model, API and dashboard
- Period
- Apr 2022 to Jan 2023
Results
89%
Validation accuracy of the fine-tuned model
On 1,350 held-out tweets after three epochs, weighted F1 0.89 (training notebook output); the Hugging Face model card also reports 89%.
88%
Test accuracy
On 150 test tweets the model never saw in training (classification report in the training notebook).
7,500
Labelled tweets, balanced across three classes
2,500 positive, 2,500 neutral and 2,500 negative (the cleaned dataset file in the model repository).
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.
What I did
- I built a balanced training set of 7,500 Indonesian tweets (2,500 positive, neutral and negative each), sampled from a public dataset of tweets about online lectures, and 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
ThesisFeb 2023
Telkom University
PaperAug 2023
eProceedings of Engineering, Vol. 10 No. 4
Model2022
Tech stack
Python
- IndoBERT
Hugging FacePyTorch
pandas
- Sastrawi
FastAPI
DjangoDocker
More Data and ML projects
L2 · Related career entrySole author · Telkom University (BSc thesis)