RANGGAEGHAPERMANA
Back to projects
  • Machine Learning · NLP
  • 2025

Case study · 08 / 08

Tokopedia Sentiment Analysis

Turning thousands of reviews into readable signals.

Tokopedia Sentiment Analysis — screenshot

An NLP experiment classifying marketplace reviews as positive, neutral, or negative with IndoBERT, confidence scores, and a Streamlit interface.

My role
Data & ML Engineer
Status
Public research project

Key achievement

Classified Indonesian marketplace reviews with IndoBERT, complete with confidence scores.

View repository Real Streamlit UI · idle state only because the repository Git LFS model quota is unavailable
Tokopedia Sentiment Analysis — screenshot

01 · Context

The problem this project solves.

Primary users

  • Product and research teams
  • Marketplace analysts
  • Data and ML practitioners

The problem

Product review volume is too large to read one by one. Star ratings also fail to capture language context, complaints, or neutral tone in Indonesian text.

The approach

The pipeline prepares review data, tokenizes text, runs IndoBERT, and returns a sentiment class with a confidence score through Streamlit.

Key numbers

  • 3sentiment classes
  • 1IndoBERT pipeline
  • 2modes: notebook and app

02 · My role

What I worked on.

Data & ML Engineer

Technology used

  • Python
  • IndoBERT
  • Transformers
  • PyTorch
  • Streamlit
  • Pandas
  • scikit-learn
  • Jupyter
  • Git LFS
  1. 01

    Prepared and labeled review data for three sentiment classes.

  2. 02

    Fine-tuned and ran inference with an IndoBERT model.

  3. 03

    Wrapped the model in a Streamlit app that shows the class and confidence score.

  4. 04

    Managed large models and datasets with Git LFS.

03 · Highlights

A few selected screens.

Click an image to view it larger.

Swipe through them all, tap an image to enlarge it.

Streamlit

Sentiment analyzer

A Streamlit app that takes reviews for classification by the IndoBERT pipeline.

04 · Challenges & decisions

Technical problems and how I solved them.

01 · Challenge

Star ratings miss the context

Approach

Review text is processed by an Indonesian language model instead of keyword matching.

Result

Complaints and neutral tones are easier to separate.

02 · Challenge

Predictions must not be treated as certain

Approach

Every result comes with a confidence score.

Result

Readers can judge how confident the model is.

01 / 02

05 · Outcome

What the solution delivers.

Classification results can support feedback monitoring, complaint prioritization, and discovery of themes that deserve deeper analysis.

User flow

  1. 01Collect reviews
  2. 02Clean and label data
  3. 03Tokenize
  4. 04Fine-tune IndoBERT
  5. 05Evaluate model
  6. 06Run text inference
  7. 07Return class and confidence

Architecture

Data

review samples · sentiment labels · preprocessing notebook

Model

IndoBERT tokenizer · PyTorch weights · three-class classifier

Inference

text input · tokenization · logits · softmax confidence

Interface

Streamlit app for exploring predictions

Data model

Review

text

rating

source

created_at

Label

review_id

sentiment

split

Model Artifact

checkpoint

tokenizer

version

Prediction

review_id

model_version

class

confidence

  • Review 1—1 Label (training)
  • Model Artifact 1—N Prediction
  • Review 1—N Prediction (versioned experiments)
Next projectDagangin POSOne operational engine for multiple SME business models.