Teknologi informasi dan komunikasi saat ini berkembang sangat pesat dan telah menjadi bagian penting kehidupan manusia. Hal ini menyebabkan berbagai macam informasi digital terutama dalam bentuk teks setiap hari terus mengalami pertumbuhan dan jumlahnya semakin besar. Mengelola data teks dengan volume yang sangat besar tidak mudah dilakukan karena membutuhkan waktu yang sangat lama, sehingga dibutuhkan suatu sistem otomatisasi yang dapat mengelola dan mengelompokkan data teks tersebut.
Klasifikasi adalah proses untuk menemukan model atau fungsi yang menjelaskan maupun membedakan konsep atau kelas data. Klasifikasi biasanya dibagi menjadi dua fase yaitu fase learning dan fase test, pada fase learning, sebagian data yang telah diketahui kelas datanya diumpankan untuk membentuk model perkiraan, kemudian pada fase test model yang sudah terbentuk diuji dengan sebagian data lainnya untuk mengetahui akurasi dari model tersebut. Akurasi yang memenuhi model ini dapat dipakai untuk prediksi kelas data yang belum diketahui.
Deep learning adalah tentang belajar beberapa tingkat representasi dan abstraksi yang membantu untuk memahami data seperti gambar, suara, dan teks. Convolutional neural network (CNN) merupakan salah satu metode deep learning yang dapat diterapkan untuk melakukan klasifikasi dokumen teks. Seiring dengan berkembangnya komputasi menggunakan Graphical Processing Unit (GPU) membuat proses pelatihan model pada algoritma CNN juga menjadi lebih cepat.
Dalam artikel ini mecoba menerapkan metode convolutional neural network untuk klasifikasi teks berdasarkan polaritas positif dan negatif yang meliputi analisis sentimen dan klasifikasi pertanyaan. Dengan melakukan sedikit modifikasi arsitektur untuk dapat digunakan pada static vector. Berdasarkan hasil pengujian menunjukkan bahwa metode CNN dengan melakkukan sedikit tunning hyperparameter dan static vector dapat meraih hasil yang sangat baik pada proses pengujian.
Data dan Preprocessing
Dataset yang digunakan dari ulasan film Rotten Tomatoes sebanyak 10.662 contoh kalimat ulasan film dan dikelompokkan kedalam dua buah polaritas yaitu positif dan negatif.
Setiap kalimat mempunyai panjang maksimum 59 dengan menambahkan tanda <PAD> untuk semua kalimat agar menjadi 59 kata. Mengeset kalimat dengan panjang yang sama berguna untuk melakukan efisiensi sekumpulan data. Setiap contoh di kumpulan data harus mempunyai panjang yang sama.
Indeks kosakata dibangun dan dipetakan pada setiap kata menjadi bilangan bulat (integer) antara 0 dan 18.765 ukuran kosakata. Setiap kata menjadi vektor dari integer.
Model
Pada percobaan ini menggunakan pola arsitektur model yang ditunjukkan seperti pada Gambar berikut.
Gambar di atas menunjukkan arsitektur model dengan dua saluran untuk contoh kalimat
Layer pertama menyimpan kata-kata dalam sebuah low-dimensional vector. Layer selanjutnya menjalankan convolutions menggunakan multiple filter sizes. Sebagai contoh melakukan pergeseran 3, 4 atau 5 kata dalam satu waktu. Selanjutnya, melakukan max-pool hasil dari layer convolutional ke dalam sebuah long feature vector, menambahkan dropout regularization, dan mengklasifikasikan hasil menggunakan softmax layer.
Selebihnya mengenai pembahasan ini dijelaskan pada code dan paper berikut.