Arief Rachman Hakim
Ulasan dari sebuah aplikasi adalah sebuah kunci dari bagaimana kesuksesan kinerja dari aplikasi tersebut untuk memenuhi kebutuhan user. Oleh karena itu, kita sebagai developer harus aware terhadap kolom ulasan dari aplikasi yang telah kita buat untuk sebagai feedback fitur mana saja yang harus diimprove lagi. Pada kesempatan kali ini, saya akan mempraktekkan text preprocessing dari sebuah dataset ulasan aplikasi shopee dari google play store yang sudah saya scraping. Untuk proses scraping saya akan menaruhnya pada portofolio information retrieval agar lebih sesuai dengan course yang dibahas. Untuk proses text preprocessing tersendiri ada beberapa tahap yaitu filtering, casefolding, tokenizing, dan stemming.
https://drive.google.com/drive/folders/1DfWn6TfT1PGK5PKsNf98nZwDQNBG4hbu?usp=sharing
1. Install Library
2. Import Gdrive, untuk teman-teman yang ingin mengakses bisa didownload terlebih dahulu di atas deskripsi ini
3. Import Library
4. Membuka dataset hasil scraping ulasan pada google play store
Dataset terdiri dari dua fitur yaitu ulasan dan label yang memiliki panjang 2000 rows. Ulasan berisi tentang kalimat mengenai ulasan user terhadapa aplikasi shopee, sedangkan label berisi jumlah rating yang diberikan user terhadap aplikasi. Jumlah rating terdiri dari 1 sampai 5, semakin besar jumlah rating maka ulasan menjadi semakin positif sehingga data ulasan pada google play ini dapat digunakan untuk klasifikasi hingga sentiment analysis.
5. Menghapus fitur ulasan dengan label 3
Saya menghapus fitur ulasan ber label 3 karena pada saat ini saya tidak menggunakan kategori Neutral pada Klasikasinya.
6. Identifikasi panjang dataset
Panjang dataset berkurang hal ini dikarenakan fitur ulasan ber label 3 sudah dihapus
7. Merubah label menjadi Negative dan Positive
8. Print data
Identifikasi fitur ulasan masih belum bersih, contohnya banyaknya emoji, dan berbagai karakter yang tidak kita gunakan.
9. Proses Filtering
Untuk proses filter pertama adalah menghapus Emoji dengan bantuan library emoji dan metode encode & decode ascii
Selanjutnya kita akan filter untuk menghilangkan berbagai karakter dengan bantuan regex (re)
10. Proses Casefolding
Proses ini akan membuat text pada fitur ulasan menjadi lower/ menjadi kecil
11. Proses Tokenizing
Proses ini membuat token-token dalam sebuah kalimat
12. Proses Stemming
Proses Stemming pertama ini akan merubah kata yang berjenis slang words agar menjadi kata yang lebih baku. Untuk metode yang dipakai adalah pencocokan dengan kamus kata baku.
Hasil dapat kita lihat kata akan menjadi lebih baku
Selanjutnya adalah proses stopwords removal, stopwords adalah sejumlah kata yang berada pada stoplist yang valuenya kurang dibutuhkan.
Selanjutnya proses stemming dengan Stemmer dari Sastrawi
Hasil dapat kita lihat terdapat bagian kata yang diubah menjadi bentuk dasarnya
13. Visualisasi dengan Wordcloud
Proses ini mengambil hanya fitur ulasan yang selanjutnya diubah menjadi Series yang disimpan pada variable data_word
Proses ini merubah Series menjadi bertipe String, hal ini karena library wordcloud hanya menerima String
Visualisasi data dengan wordcloud, seperti yang dapat kita lihat frekuensi kata yang paling banyak muncul adalah lambat
14. Pembagian variable dan menggunakan Tfidf sebagai ekstrasi fitur
Saya menggunakan Tfidf sebagai metode untuk ekstrasi fitur. Selanjutnya, variable X adalah fitur ulasan yang sudah dirubah menjadi vector dengan bantuan tfidf dengan bertipe unicode. Untuk variable Y adalah fitur label dari dataset
15. Split Data dan Label Encoder
Proses ini melakukan split data menjadi data train dan data test, selanjutnya melakukan label encoder pada variable y_train dan y_test. Hal ini bertujuan agar sesuai ketika melakukan klasifikasi dengan algoritma selanjutnya dan seperti yang sudah kita tahu variable X sudah diubah menjadi vector dengan bantuan tfidf
16. Klasifikasi dengan Algoritma Naive Bayes
17. Evaluasi Model pada Algoritma Naive Bayes
Pada algoritma naive bayes menghasilkan akurasi sebesar 80%
18. Klasifikasi dengan Algoritma SVM
19. Evaluasi Model pada Algoritma SVM
Pada algoritma SVM menghasilkan akurasi sebesar 86%
20. Perbandingan Hasil Akurasi
Hasil akhir dapat kita simpulkan bahwa klasifikasi dengan algoritma SVM menghasilkan akurasi lebih baik dibandingkan algoritma Naive Bayes.
21. Dokumentasi Kode
https://drive.google.com/drive/folders/1DfWn6TfT1PGK5PKsNf98nZwDQNBG4hbu?usp=sharing