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 #
| Direktori | Isi | Peran |
|---|---|---|
data/ | generate_data.py, ulasan.csv, README.md | dataset fiktif 300 ulasan tiga kelas |
src/ | preprocessing.py, model.py, latih.py, prediksi.py | kode program utama |
tests/ | test_preprocessing.py, test_model.py | test assert untuk tiap modul |
laporan/ | LAPORAN.md | template 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:
- Bagian 1 — Preprocessing Teks : bangkitkan dataset, bersihkan teks, tokenisasi, dan susun vocabulary.
- Bagian 2 — Membangun Model NLP : rakit arsitektur embedding + mean pooling + classifier linear.
- Bagian 3 — Training dan Evaluasi : latih model dengan loop lengkap dan ukur akurasinya.
- 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.
Bangkitkan dataset ulasan fiktif tiga kelas, lalu bangun tahap pembersihan, tokenisasi, vocabulary, dan encoding id.
Buka → # Bagian 2: Membangun Model NLPRakit arsitektur klasifikasi sentimen dari tabel embedding, mean pooling bermask, dan classifier linear PyTorch.
Buka → # Bagian 3: Training dan EvaluasiLatih model sentimen dengan loop PyTorch lengkap: pembagian data ber-seed, vocabulary dari data latih saja, Adam full-batch, dan evaluasi akurasi per kelas.
Buka → # Bagian 4: Prediksi Teks BaruBungkus model terlatih menjadi CLI prediksi sentimen dan ujikan pada lima teks yang belum pernah dilihat model.
Buka →