All projects

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.

  1. Read the review
  2. Find the aspects
  3. 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.

The ABSA Streamlit app, run locally, analysing the review “pengiriman sangat lama hampir seminggu tapi harganya murah dan barangnya berkualitas bagus”: product quality and price positive, shipping negative, seller service and packaging not mentioned
Example output from the model

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.

Sentiment macro-F1, test set (224 reviews)
ModelMacro-F1
IndoBERT0.794
IndoBERTweet0.790
TF-IDF + logistic regression0.537
TF-IDF + SVM0.345
Aspect detection recall, IndoBERT
Aspect isRecall
Named in the review0.907
Implied, never named0.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.

Next project

Next project: Early Student Dropout Prediction