Belajar Data Scientist - NLP & Transformers
Episode 14 of 28

Belajar Data Scientist - NLP & Transformers

Menganalisis data teks dengan NLP modern: preprocessing teks, konsep embeddings, dan arsitektur Transformers via Hugging Face — dilengkapi praktik analisis sentimen lengkap dari teks mentah hingga prediksi

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Setelah di episode 13 kita menguasai deep learning dasar, pada episode ini kita menerapkannya pada data yang berbeda total: teks. Ulasan pelanggan, tiket support, deskripsi produk, dan komentar media sosial adalah data yang paling banyak tersedia — dan paling sedikit dimanfaatkan karena "susah diproses".

Mengapa NLP penting di 2026? Karena sebagian besar sinyal bisnis tersembunyi di teks: sentimen pelanggan, topik komplain, tren produk. Dan dengan Transformers, analisis teks yang dulu butuh riset bertahun-tahun kini bisa dilakukan dengan beberapa baris kode. Episode ini membangun alurnya: preprocessing, representasi (embeddings), lalu modeling dengan arsitektur modern.

Preprocessing Teks

Sebelum model, teks harus dibersihkan dan dinormalisasi:

Pipeline preprocessing teks
import re
 
def clean_text(text: str) -> str:
    text = text.lower()
    text = re.sub(r"http\S+|www\.\S+", "", text)     # hapus URL
    text = re.sub(r"@\w+|#\w+", "", text)            # hapus mention/hashtag
    text = re.sub(r"[^\w\s]", "", text)              # hapus tanda baca
    text = re.sub(r"\s+", " ", text).strip()
    return text
 
review = "Layanan LAMBAT banget!!! cek @cs #internet 😠"
print(clean_text(review))

Preprocessing tradisional (stopword removal, stemming/lemmatization) kini lebih jarang dipakai — model Transformer sudah belajar konteks bahasa secara penuh. Yang tetap wajib: membersihkan noise (URL, mention, tanda baca berlebihan) dan tokenisasi yang konsisten.

Representasi Teks: Dari Bag-of-Words ke Embeddings

Model tidak memahami kata; ia memahami angka. Evolusinya:

PendekatanCara KerjaKelemahan
Bag-of-Words / TF-IDFHitung frekuensi kataTak tahu urutan & konteks
Word2Vec / GloVeVektor statis per kataSatu kata punya satu makna
Transformers (2020+)Vektor kontekstualMakna bergantung konteks kalimat

Perbedaan paling penting: di embedding kontekstual, kata "bank" dalam "bank sungai" dan "bank tabungan" punya representasi berbeda. Inilah kemampuan yang membuat Transformers menguasai NLP modern.

Transformers dengan Hugging Face

Hugging Face menyediakan ribuan model pretrained yang siap dipakai. Alur klasik: muat model → tokenisasi → prediksi → decode.

Install Hugging Face
pip install transformers

Praktik: Analisis Sentimen

Analisis sentimen dengan pipeline
from transformers import pipeline
 
classifier = pipeline("sentiment-analysis", model="w11wo/indonesian-roberta-base-sentiment-classifier")
 
reviews = [
    "Pelayanannya sangat cepat dan ramah, terima kasih!",
    "internetnya lemot sekali, tidak bisa dipakai meeting",
    "biasa saja, sesuai ekspektasi",
]
for r in reviews:
    print(r, "→", classifier(r)[0])

pipeline merangkum tokenisasi + model + decoding dalam satu panggilan. Perhatikan penggunaan model spesifik bahasa Indonesia — untuk teks bahasa Indonesia, model multibahasa/regional jauh lebih akurat daripada model bahasa Inggris.

Tokenisasi Manual untuk Kontrol Lebih

Tokenizer BERT
from transformers import AutoTokenizer, AutoModelForSequenceClassification
 
model_name = "indolem/indobert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name, num_labels=2)
 
tokens = tokenizer("layanan sangat memuaskan", return_tensors="pt")
print(tokenizer.convert_ids_to_tokens(tokens["input_ids"][0]))

AutoTokenizer + AutoModel memilih arsitektur yang benar secara otomatis berdasarkan nama model — prinsip yang sama berlaku untuk jutaan model di Hugging Face Hub.

Tip

Saat pertama menjalankan, Hugging Face mengunduh model (ratusan MB) dari hub. Untuk efisiensi, unduh sekali lalu gunakan cache. Di lingkungan tanpa internet, ekspor model lokal dengan save_pretrained dan muat ulang dari direktori.

Fine-Tuning vs Zero-Shot

Dua cara memakai model bahasa:

PendekatanData ButuhBiayaAkurasi
Zero-shot / pretrained langsungTidak adaRendahBaik untuk tugas umum
Fine-tuningRatusan-ratusan contoh berlabelSedangTerbaik untuk domain spesifik
Training dari nolJutaan contohSangat tinggiJarang perlu (episode 22)

Untuk analisis sentimen produk, fine-tuning dengan beberapa ratus contoh berlabel biasanya cukup — episode 22 akan membangun ini untuk domain kalian.

Praktik: Analisis Ulasan Skala Kecil

Alur lengkap analisis teks untuk keputusan bisnis:

Analisis ulasan end-to-end
import pandas as pd
from transformers import pipeline
 
classifier = pipeline("sentiment-analysis",
                      model="w11wo/indonesian-roberta-base-sentiment-classifier")
 
reviews = pd.read_csv("ulasan_produk.csv")
 
def sentiment(text):
    result = classifier(text[:500])[0]  # batasi panjang input
    return result["label"], result["score"]
 
reviews[["label", "score"]] = reviews["text"].apply(sentiment).tolist()
 
summary = reviews.groupby("label").size().sort_values(ascending=False)
print(summary)
 
negative = reviews[reviews["label"] == "negative"]
print("ulasan negatif:", len(negative))
print(negative["text"].head(5).to_string())

reviews[["label", "score"]] memecah tuple hasil menjadi dua kolom; [:500] memotong teks panjang agar sesuai konteks model. Outputnya adalah tabel sentimen per produk — bahan untuk dashboard dan keputusan (episode 17).

Kesalahan Umum

PitfallDampakSolusi
Model bahasa Inggris untuk teks IndonesiaAkurasi rendahModel multibahasa/regional
Preprocessing berlebihan (stopword dll)Merusak konteks TransformerCukup bersihkan noise
Memakai model bahasa untuk selain teksTidak relevanPilih model per modalitas
Mengabaikan batas panjang inputTruncate / errorPotong atau chunk teks
Langsung fine-tuning tanpa mencoba zero-shotBiaya tak perluBaseline dulu dengan pretrained

Penutup

Inti yang harus dibawa pulang:

  • NLP = teks → angka → model; preprocessing membersihkan noise tanpa menghancurkan konteks.
  • Embeddings kontekstual (Transformers) mengalahkan TF-IDF dan Word2Vec untuk makna.
  • Hugging Face: pipeline untuk cepat, AutoTokenizer + AutoModel untuk kontrol.
  • Pilih model sesuai bahasa — untuk Indonesia, pakai model regional.
  • Zero-shot dulu, fine-tuning jika akurasi belum cukup.

Di episode 15 selanjutnya kita akan membahas time series analysis — menangkap tren & musiman dan meramalkan penjualan dengan Prophet/ARIMA. Sampai jumpa di episode 15!

Belajar Data Scientist - NLP & Transformers | Belajar Data Scientist