IMPLEMENTASI WORD EMBEDDING UNTUK KLASIFIKASI SENTIMEN PADA USER FEEDBACK MENGGUNAKAN
RANDOM FOREST CLASSIFIER
SKRIPSI
Diajukan sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer (S.Kom.)
Yehezkiel Gunawan 00000014458
PROGRAM STUDI INFORMATIKA FAKULTAS TEKNIK DAN INFORMATIKA UNIVERSITAS MULTIMEDIA NUSANTARA
TANGERANG 2020
iii
PERNYATAAN TIDAK MELAKUKAN PLAGIAT
Dengan ini saya:Nama : Yehezkiel Gunawan
NIM : 00000014458
Program Studi : Informatika
Fakultas : Teknik dan Informatika
Menyatakan bahwa Skripsi yang berjudul “Implementasi Word Embedding untuk Klasifikasi Sentimen pada User Feedback Menggunakan Random Forest Classifier” ini adalah karya ilmiah saya sendiri, bukan plagiat dari karya ilmiah yang ditulis oleh orang lain atau lembaga lain, dan semua karya ilmiah orang lain atau lembaga lain yang dirujuk dalam Skripsi ini telah disebutkan sumber kutipannya serta dicantumkan di Daftar Pustaka.
Jika di kemudian hari terbukti ditemukan kecurangan/ penyimpangan, baik dalam pelaksanaan Skripsi maupun dalam penulisan laporan Skripsi, saya bersedia menerima konsekuensi dinyatakan TIDAK LULUS untuk mata kuliah Skripsi yang telah saya tempuh.
Tangerang, 15 April 2020
iv
PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH
UNTUK KEPENTINGAN AKADEMIS
Sebagai sivitas akademik Universitas Multimedia Nusantara, saya yang bertanda tangan di bawah ini:
Nama : Yehezkiel Gunawan
NIM : 00000014458
Program Studi : Informatika
Fakultas : Teknik dan Informatika Jenis Karya : Skripsi
Demi pengembangan ilmu pengetahuan, menyetujui dan memberikan izin kepada Universitas Multimedia Nusantara hak Bebas Royalti Non-eksklusif
(Non-exclusive Royalty-Free Right) atas karya ilmiah saya yang berjudul:
Implementasi Word Embdding untuk Klasifikasi Sentimen pada User Feedback Menggunakan Random Forest Classifier
beserta perangkat yang diperlukan.
Dengan Hak Bebas Royalti Non-eksklusif ini, pihak Universtias Multimedia Nusantara berhak menyimpan, mengalihmedia atau format-kan, mengelola dalam bentuk pangkalan data (database), merawat, dan mendistribusi dan menampilkan atau mempublikasikan karya ilmiah saya di internet atau media lain untuk kepentingan akademis, tanpa perlu meminta izin dari saya maupun memberikan royalty kepada saya, selama tetap mencantumkan nama saya sebagai penulis karya ilmiah tersebut.
Demikian pernyataan ini saya buat dengan sebenarnya untuk dipergunakan sebagaimana mestinya.
Tangerang, 15 April 2020
v
HALAMAN PERSEMBAHAN/ MOTO
A wise, shrewd person discerns the danger ahead and prepares himslelf, but the naive simpleton never looks ahead and suffers the consequences.
vi
KATA PENGANTAR
Puji syukur kepada Tuhan Yang Maha Esa karena atas berkat dan rahmat-Nya, penulis dapat menyelesaikan skripsi dan laporan skripsi yang berjudul “Implementasi Word Embedding untuk Klasifikasi Sentimen pada User Feedback Menggunakan Random Forest Classifier” dengan tepat waktu di tengah pandemi Covid-19 ini.
Proses penyelesaian laporan skripsi tidak terlepas dari bantuan berbagai pihak. Penulis mengucapkan terima kasih kepada:
1. Dr. Ninok Leksono, Rektor Universitas Multimedia Nusantara, yang memberi inspirasi bagi penulis untuk berprestasi,
2. Dr. Eng. Niki Prastomo, S.T., M.Sc. Dekan Fakultas Teknik dan Informatika Universitas Multimedia Nusantara,
3. Nunik Afriliana, S.Kom., MMSI., Ketua Program Studi Informatika Universitas Multimedia, yang menerima penulis dengan baik untuk berkonsultasi dan memvalidasi skripsi penulis,
4. Andre Rusli, S.Kom., M.Sc. yang membimbing pembuatan skripsi dan yang telah mengajar penulis tata cara menulis karya ilmiah dengan benar dan sabar,
5. Ayah dan ibu, serta keluarga besar yang telah memberikan dukungan moral dan spiritual selama proses penulisan skripsi,
6. Teman-teman seperjuangan yaitu, Kevin Kelly Isyanta, Reza Setiabudi, Antonius Filian, Ega Pamungkas, dan Ahsanul Qalbi yang menemani
vii
penulis untuk membuat program dan menyelesaikan penulisan skripsi di Lab AI C504, serta menjadi teman berdiskusi selama di lab,
7. Bapak Julio Cristian Young yang telah mengizinkan penulis beserta teman-teman seperjuangan mengerjakan skripsi di Lab AI C504,
8. Teman-teman terkasih yang lain yang tidak bisa disebutkan satu per satu yang telah membantu memberikan dukungan langsung maupun tidak langsung, bahkan ada yang menemani penulis selama proses penulisan skripsi.
Semoga laporan skripsi ini dapat bermanfaat, baik sebagai sumber informasi maupun sumber inspirasi, bagi para pembaca.
Tangerang, 15 April 2020
viii
IMPLEMENTASI WORD EMBEDDING UNTUK KLASIFIKASI
SENTIMEN PADA USER FEEDBACK MENGGUNAKAN
RANDOM FOREST CLASSIFIER
ABSTRAK
User feedback menjadi suatu wadah bagi pengembang piranti lunak untuk
mempelajari dan memahami kebutuhan, preferensi, dan keluh kesah pengguna. Penting bagi pengembang untuk mengidentifikasi persoalan muncul dalam
feedback yang diberikan pengguna. Seiring dengan pertumbuhan dan
perkembangan aplikasi, jumlah user pun semakin meningkat. Membaca dan mengklasifikasi setiap feedback secara manual memakan banyak waktu dan tenaga. Untuk mengatasi masalah tersebut, sistem analisis sentimen menggunakan Random Forest Classifier yang menggunakan word embedding sebagai feature extraction dibuat untuk membantu menentukan apakah suatu feedback memiliki sentimen positif, netral, atau negatif. Algoritma Random Forest dipilih karena performanya yang sangat bagus, meskipun membutuhkan resource yang agak besar. Selain itu, dengan bantuan word embedding, kata-kata yang memiliki kemiripan baik secara semantik maupun sintatik dapat terdeteksi dan diharapkan dapat memberikan performa yang lebih baik dibandingkan metode machine learning tradisional. Dengan bantuan word embedding, tidak lagi diperlukan stemming dan stop word
removal agar konteks yang menjadi input dapat terbaca dengan baik. Penelitian ini
bertujuan untuk mengimplementasikan word embedding untuk klasifikasi sentimen pada user feedback menggunakan Random Forest Classifier. Hasil implementasi yang paling ideal pada penelitian ini diperoleh ketika menggunakan dataset BYU (200 dimensi) sebagai Embedding Dataset dengan perbandingan train dan test set 80:20, yaitu akurasi sebesar 70.27%, precision sebesar 80%, recall sebesar 54%, dan F1 sebesar 54%.
Kata Kunci: Analisis Sentimen, Feature Extraction, Word Embedding, FastText, Random Forest Classifier, Requirement Engineering, User Feedback
ix
WORD EMBEDDING IMPLEMENTATION TO CLASSIFY
SENTIMENT OF USER FEEDBACKS USING
RANDOM FOREST CLASSIFIER
ABSTRACT
User feedback nowadays become a platform for software developer to indentify and understand user requirements, preferences, and user’s complaints. It is important for the developer to identify the problem that exist in user feedback. According to software growth, user amount also growth. Read and classify one by one manually are wasting time and energy. As the solution for the problem, sentiment analysis system using Random Forest Classifier which use word embedding as the feature extraction is made to help to classify which feedback is positive, neutral, or negative. Random Forest Algorithm is choosen because it gives the best performance, even its need the larger resources. Furthermore, with word embedding, the words which has semantic or syntatic similarities will be detected. Word embedding does not need stemming and stop word removal, so the context of the sentences keep remains. This research is made to implement word embedding to classify sentiment of user feedbacks using Random Forest Classifier. 70.27% accuracy, 80% precision, 54 recall and 54% F1 score is reached when BYU dataset (200 dimension) as embedding dataset with the train and test ratio 80:20.
Keywords: Sentiment Analysis, Feature Extraction, Word Embedding, FastText, Random Forest Classifier, Requirement Engineering, User Feedback
x DAFTAR ISI
HALAMAN PENGESAHAN SKRIPSI ... ii
PERNYATAAN TIDAK MELAKUKAN PLAGIAT ... iii
PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ... iv
HALAMAN PERSEMBAHAN/ MOTO ... v
KATA PENGANTAR ... vi
ABSTRAK ... viii
ABSTRACT ... ix
DAFTAR ISI ... x
DAFTAR GAMBAR ... xii
DAFTAR TABEL ... xiii
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang Masalah ... 1
1.2 Rumusan Masalah ... 6
1.3 Batasan Masalah ... 7
1.4 Tujuan Penelitian ... 7
1.5 Manfaat Penelitian ... 7
BAB II LANDASAN TEORI ... 8
2.1 Rekayasa Kebutuhan ... 8 2.2 User Feedback ... 10 2.3 Analisa Sentimen ... 11 2.4 Word Embedding... 11 2.5 FastText ... 13 2.6 Decision Tree... 16
2.7 Random Forest Classifier ... 19
BAB III METODOLOGI PENELITIAN DAN PERANCANGAN SISTEM ... 22
3.1 Metodologi Penelitian ... 22
3.2 Perancangan Aplikasi ... 23
3.2.1 Flowchart Proses Klasifikasi ... 24
3.2.2 Flowchart Deployed Version ... 30
xi
3.2.4 Rancangan Tampilan Antarmuka ... 33
BAB IV IMPLEMENTASI DAN ANALISIS ... 35
4.1 Spesifikasi Sistem ... 35 4.2 Implementasi Sistem ... 35 4.2.1 Tampilan Aplikasi ... 36 4.2.2 Potongan Kode ... 37 4.3 Uji Coba... 42 4.3.1 Skenario Pengujian... 42 4.3.2 Hasil Pengujian ... 43
4.3.3 Evaluasi Hasil Pengujian... 48
BAB V SIMPULAN DAN SARAN ... 54
5.1 Simpulan ... 54
5.2 Saran ... 54
DAFTAR PUSTAKA ... 56
xii
DAFTAR GAMBAR
Gambar 2.1 Gambar Masa Hidup Piranti Lunak (Rajlich dan Bennet, 2000) ... 10
Gambar 2.2 Gambar Struktur Analisis Sentimen (Putri Wiratama, 2019) ... 11
Gambar 2.3 Gambar Arsitektur CBOW dan Skip-gram (Mikolov, 2013) ... 14
Gambar 2.4 Ilustrasi foward-backward training CBOW (Mikolov, 2013) ... 14
Gambar 2.5 Ilustrasi foward-backward training Skip-Gram (Mikolov, 2013) ... 15
Gambar 2.6 Contoh konsep Decision Tree (Mitchell, 1997) ... 16
Gambar 2.7 Struktur Random Forest Classifier (Koerhsen, 2017) ... 19
Gambar 3.1 Flowchart penelitian secara umum ... 25
Gambar 3.2 Pembuatan FastText pre-trained model... 27
Gambar 3.3 MeanEmbeddingVectorizer ... 28
Gambar 3.4 Proses Random Forest Classifier ... 29
Gambar 3.5 Decision Tree ... 30
Gambar 3.6 Flowchart Prediksi Input Kalimat pada Text Box ... 31
Gambar 3.7 Flowchart Prediksi File Excel yang di-upload pada aplikasi Web ... 32
Gambar 3.8 Halaman Text Box ... 33
Gambar 3.9 Halaman Upload File ... 34
Gambar 4.1 Tampilan Halaman Utama ... 36
Gambar 4.2 Tampilan Halaman Upload File ... 37
Gambar 4.3 Tampilan Halaman Upload File saat Tombol Predict ditekan ... 37
Gambar 4.4 Potongan Kode Class MeanEmbeddingVectorizer ... 38
Gambar 4.5 Potongan Kode Inisialisasi Random Forest ... 39
Gambar 4.6 Potongan Kode Method fit pada Random Forest Classifier ... 40
Gambar 4.7 Potongan Kode Method _get_tree pada Random Forest Classifier .. 40
Gambar 4.8 Potongan Kode Class ClassificationDecisionTree ... 41
xiii
DAFTAR TABEL
Tabel 3.1 Struktur Tabel Data ... 33 Tabel 4.1 Hasil Uji Coba Perbandingan Train dan Test Set 80:20 ... 44 Tabel 4.2 Hasil Uji Coba Perbandingan Train dan Test Set 70:30 ... 44 Tabel 4.3 Hasil Uji Coba Upsampling dengan perbandingan train dan test set 80:20 ... 45 Tabel 4.4 Hasil Uji Coba Upsampling dengan perbandingan train dan test set 70:30 ... 46 Tabel 4.5 Hasil Pengujian Grid Search Cross Validation dengan Rasio Train dan Test Set 80:20 ... 47 Tabel 4.6 Hasil Pengujian Grid Search Cross Validation dengan Rasio Train dan Test Set 70:30 ... 47 Tabel 4.7 Confusion matrix upsampling BYU (200 dimensi) dengan rasio 80:20 pada training set ... 51 Tabel 4.8 Confusion matrix upsampling BYU (200 dimensi) dengan rasio 80:20 pada test set ... 51