Teori NLP pada section Natural Language Processing menjadi benar-benar melekat ketika kita menyusunnya menjadi satu pipeline utuh dari nol sampai prediksi. Pada proyek ini kita membangun sistem analisis sentimen ulasan produk daring berbahasa Indonesia dengan tiga kelas: positif, netral, dan negatif. Dataset 300 ulasan dibangkitkan sendiri dari templat kata sehingga seluruh proses berjalan cepat di CPU dan sepenuhnya deterministik, sementara pola pengerjaannya tetap mengikuti alur kerja nyata: data, preprocessing, model, training, evaluasi, lalu inferensi.

Model yang kita bangun adalah arsitektur paling dasar yang tetap dipakai hingga kini sebagai pembanding: tabel embedding kata, perangkum mean pooling, dan classifier linear — persis rantai yang dibedah pada chapter Text Classification . Proyek ini memperluas chapter tersebut dari dua kelas menjadi tiga kelas dan dari data dalam memori menjadi berkas CSV yang dibaca, dibersihkan, dan diuji lewat skrip test terpisah.

Struktur Proyek #

DirektoriIsiPeran
data/generate_data.py, ulasan.csv, README.mddataset fiktif 300 ulasan tiga kelas
src/preprocessing.py, model.py, latih.py, prediksi.pykode program utama
tests/test_preprocessing.py, test_model.pytest assert untuk tiap modul
laporan/LAPORAN.mdtemplate laporan hasil praktik

Seluruh kode sumber proyek tersedia pada bagian Berkas Sumber di bawah halaman ini, dan setiap bagian pengerjaan menampilkan salinan kode yang sama sehingga kondisi proyek tetap utuh di setiap tahap.

Tahapan Pengerjaan #

Proyek dikerjakan dalam empat bagian berurutan. Setiap bagian menghasilkan program yang dapat dijalankan dan diuji:

  1. Bagian 1 — Preprocessing Teks : bangkitkan dataset, bersihkan teks, tokenisasi, dan susun vocabulary.
  2. Bagian 2 — Membangun Model NLP : rakit arsitektur embedding + mean pooling + classifier linear.
  3. Bagian 3 — Training dan Evaluasi : latih model dengan loop lengkap dan ukur akurasinya.
  4. Bagian 4 — Prediksi Teks Baru : pakai model terlatih untuk memprediksi lima teks yang belum pernah dilihat.

Mulailah dari Bagian 1 karena setiap modul dibangun di atas modul sebelumnya: latih.py mengimpor preprocessing.py dan model.py, sementara prediksi.py mengimpor hasil pelatihan dari latih.py.