Aspect-Based Sentiment Analysis for Indonesian Reviews
Team of 2 · Course project, NLP (COMP6885) · BINUS · 2025/26
Informal, code-switched Indonesian reviews often judge an aspect without naming it.
- Read the review
- Find the aspects
- Judge each one
“pengiriman sangat lama hampir semingguShipping tapi harganya murahPrice dan barangnya berkualitas bagusProduct quality”
- Product qualityPositive98.7%
- PricePositive98.4%
- ShippingNegative96.2%
- Seller serviceNot mentioned98.9%
- PackagingNot mentioned98.3%
Walkthrough of real model output. IndoBERT, 7 Oct 2026. Highlights added by hand.
- My role
- Led the transformer models and evaluation. Co-annotated all 1,500 reviews.
- Team
- 2 students: Valentino Allen Prasetyo, Michael Hendrilie
- Stack
- Python, Transformers, Streamlit
Problem
A star rating hides which part of an order the buyer liked. Indonesian e-commerce reviews make this harder: they are informal, mix Indonesian and English, and often judge an aspect without naming it.
“Barang sampai peyok” (the item arrived dented) is a negative opinion about packaging, though the word packaging never appears.
Approach
We annotated 1,500 Tokopedia reviews (7,474 review–aspect pairs) across five aspects: product quality, price, shipping, seller service and packaging. Each pair gets one of four classes: positive, negative, neutral or not mentioned. We labelled every review independently and resolved disagreements together.
Following Sun et al., each review is paired with a question about one aspect, so one model handles aspect detection and sentiment together. Four models were trained under that identical setup: TF-IDF with SVM, TF-IDF with logistic regression, IndoBERT and IndoBERTweet.
Course paper (unpublished), Natural Language Processing (COMP6885), BINUS, odd semester 2025/26.

Results
IndoBERT and IndoBERTweet were statistically indistinguishable (p = 0.13), so tweet pre-training did not help.
The app returns per-aspect predictions in under a second per review.
| Model | Macro-F1 |
|---|---|
| IndoBERT | 0.794 |
| IndoBERTweet | 0.790 |
| TF-IDF + logistic regression | 0.537 |
| TF-IDF + SVM | 0.345 |
| Aspect is | Recall |
|---|---|
| Named in the review | 0.907 |
| Implied, never named | 0.899 |
What I did
I led project scoping and the research questions, the text-preprocessing pipeline, the four-class sentence-pair formulation, IndoBERT and IndoBERTweet fine-tuning, and the full evaluation: aspect detection, sentiment, implicit aspects, cross-domain checks and McNemar tests. I also did the error analysis, the demo video and the repository.
Michael Hendrilie led dataset sourcing and cleaning, the TF-IDF baselines, the Streamlit app and the slides. We annotated all 1,500 reviews together and co-wrote the paper.
Limitations
Inter-annotator agreement was not measured. Labels rest on dual labelling with consensus.
All reviews come from Tokopedia, so other platforms are untested.
Neutral is dropped for shipping, seller service and packaging, so those aspects are effectively three-class.
Price has only ten mentions in the test set, so its per-aspect score is indicative only.
Links
- Code, data and models
- Demo video

Demo video · YouTube - Course paper (unpublished) PDF