Makalah Pemerikasaan Tumbuhan Biomedikal Taman Safari
Makalah Pemerikasaan Tumbuhan Biomedikal Taman Safari
2019
TESIS
2019
ii
HALAMAN PERSETUJUAN
TESIS
Telah disetujui
Pada tanggal Agustus 2019
Mengetahui,
Dosen Pembimbing
iii
PERNYATAAN
Dengan ini saya menyatakan bahwa dalam tesis ini tidak terdapat karya yang
pernah diajukan untuk memperoleh gelar kesarjanaan di suatu perguruan tinggi dan
sepanjang pengetahuan saya juga tidak terdapat karya atau pendapat yang pernah
ditulis atau diterbitkan oleh orang lain, kecuali yang secara tertulis diacu dalam naskah
ini dan disebutkan dalam daftar pustaka.
iv
KATA PENGANTAR
Alhamdulillah puji syukur kehadirat Allah SWT, tuhan semesta alam, yang
telah melimpahkan rahmat, karunia, serta petunjuk-Nya, shalawat serta salam penulis
panjatkan kepada junjungan alam Nabi Muhammad SAW berserta kelaurga dan
sahabatnya, sehingga penulis dapat menyelesaikan tesis dengan judul
“MENDETEKSI HATESPEECH DI TWITTER MENGGUNAKAN METODE
LONG SHORT-TERM MEMORY DAN FITUR WORD2VEC”.
Tesis ini merupakan salah satu syarat untuk mendapatkan gelar Master of
Computer science pada program Pascasarjana (S-2) Universitas Gadjah Mada
Yogyakarta. Oleh karena itu, dengan segala kerendahan hati pada kesempatan ini
penulis mengucapkan banyak terimakasih kepada:
1. Kedua orang tua, adik, dan keluarga besar yang telah memberi banyak
dukungan, bimbingan, doa, kasih saying, dan semua yang telah diberikan.
2. Bapak Dr. Tri Kuntoro Priyambodo, M.Sc. selaku Ketua Program Studi S2 Ilmu
Komputer Universitas Gadjah Mada, yang telah memberikan kesempatan
kepada penuis untuk belajar di program studi Ilmu Komputer UGM.
3. Bapak Edi Winarko, M. Sc., Ph. D. selaku pembimbing utama atas segala saran,
masukan, dan kesabaran yang diberikan kepada penulis untuk menyelesaikan
tesis ini.
4. Bapak dan Ibu Dosen penguji yang telah memberikan saran dan masukan untuk
hasil penelitian ini yang lebih baik.
5. Bapak dan Ibu Dosen Program Studi S2 Ilmu Komputer Universitas Gadjah
Mada atas ilmu yang telah diberikan.
6. Seluruh staff karyawan DIKE FMIPA UGM yang telah banyak memberikan
bantuan kepada penulis.
v
7. Seluruh teman teman Ilmu Komputer angkatan 2016 dan angkatan 2017 yang
telah banyak memberikan bantuan kepada penulis.
8. Semua pihak yang telah memberikan bantuan dan dukungan kepada penulis
dalam penyusunan Tesis ini.
Akhir kata penulis berharap semoga Tesis ini dapat memberikan manfaat bagi
seluruh umat manusia, terutama bagi perkembangan ilmu pengetahuan khususnya ilmu
komputer. Apabila ada saran, kritik yang bersifat membangun sangat diharapkan untuk
kebaikan tesis ini. Semoga tesis ini dapat bermanfaat bagi kata semua.
vi
DAFTAR ISI
vii
4.3 Pengupulan Data ...................................................................................................
4.3.1 Preprocessing ..................................................................................................
4.3.2 Konversi Kalimat ............................................................................................
4.4 Word2vec...............................................................................................................
4.4.1 Train Wikipedia Indonesia ..............................................................................
4.4.2 Konversi vector ...............................................................................................
4.5 Perancangan Arsitektur LSTM .............................................................................
4.5.1 Input Layer ......................................................................................................
4.5.2 Embedding Layer ............................................................................................
4.5.3 LSTM Layer ....................................................................................................
4.5.4 Output Layer ...................................................................................................
4.6 Algoritma Pelatihan ..............................................................................................
4.7 Pengujian ...............................................................................................................
4.8 Perancangan Naïve Bayes .....................................................................................
BAB V IMPLEMENTASI SISTEM ..............................................................................
5.1 Deskripsi Implementasi.........................................................................................
5.2 Implementasi Pengumpulan Data .........................................................................
5.3 Implementasi Crawling .........................................................................................
5.4 Implementasi Preprocessing .................................................................................
5.4.1 Casefolding .....................................................................................................
5.4.2 Normalisasi Fitur.............................................................................................
5.4.3 Stopword Removal ..........................................................................................
5.4.4 Konversi Slangwords ......................................................................................
5.4.5 Konversi Kalimat ............................................................................................
5.5 Implementasi Word2vec ........................................................................................
5.5.1 Training Wikipedia indonesia .........................................................................
5.5.2 Konversi Vector ..............................................................................................
5.6 Implementasi Long Short-Term Memory ..............................................................
5.6.1 Implementasi Input Layer ...............................................................................
5.6.2 Implementasi Embedding Layer .....................................................................
5.6.3 Implementasi LSTM Layer .............................................................................
5.6.4 Implementasi Output Layer ............................................................................
5.7 Implementasi Naïve Bayes ....................................................................................
BAB VI HASIL DAN PEMBAHASAN .......................................................................
6.1 Data .......................................................................................................................
viii
6.2 Eksperimen pengujian LSTM ...............................................................................
6.3 Pengujian LSTM ...................................................................................................
6.3.1 Pengujian Word2vec........................................................................................
6.3.2 Pengujian Jumlah Epoch .................................................................................
6.3.3 Pengujian Fungsi Aktivasi ..............................................................................
6.3.4 Hasil Pengujian LSTM ....................................................................................
6.4 Eksperimen dan Hasil Pengujian Naïve Bayes .....................................................
6.5 Perbandingan Hasil Sentimen ...............................................................................
BAB VII KESIMPULAN DAN SARAN ......................................................................
7.1 Kesimpulan ...........................................................................................................
7.2 Saran......................................................................................................................
DAFTAR PUSTAKA ....................................................................................................
ix
DAFTAR GAMBAR
x
DAFTAR TABEL
xi
INTISARI
By:
Kata kunci: Sentimen Analisis, hatespeech, Long Short-Term Memory, Naïve Bayes.
xii
ABSTRACT
By:
xiii
BAB I
PENDAHULUAN
Tindakan tersebut dapat menimbulkan dampak yang tidak baik juga merugikan
seseorang atau kelompok dalam pencemaran nama baik. Kasus-kasus pencemaran
nama baik yang masuk dalam ranah ujaran kebencian sering dilakukan oleh mereka
1
2
yang merasa dirugikan oleh para haters (pengguna jejaring sosial dengan komentar
yang menjatuhkan dan menghina).
Penelitian yang dilakukan oleh Silva (2016) membahas tentang menganalisis
target Hatespeech di Media Sosial Twitter dan Whisper. Penelitian tersebut
menggunakan Metode membangun ekspresi: Subjek + intensitas + maksud pengguna
+ target kebencian dalam menganalisa data yang didapatkan dari Media Sosial Twitter
dan Whisper. Komponen dari ekspresi ini menjelaskan bahwa <Subjek> "Saya"
berarti bahwa hal ini berbicara tentang emosi pribadi pengguna. Komponen
<intensitas> menerangkan bahwa beberapa pengguna media sosial mencoba untuk
memperkuat emosi mereka yang diungkapkan sesuai keinginan mereka menggunakan
kualifikasi (misal: kata keterangan). Komponen <maksud_pengguna> menjelaskan
apa maksud pengguna, atau dengan kata lain bagaimana perasaannya (misal: benci,
benci sekali). Komponen <target_kebencian> fokus pada menemukan kebencian
terhadap sekelompok orang (misal: orang kulit hitam atau orang meksiko). Kelemahan
dari penelitian tersebut adalah hasil yang didapatkan belum mampu mengidentifikasi
kata kunci baru yang terkait dengan ujaran kebencian dan mekanisme Metode tersebut
belum terperinci untuk mengidentifikasi ujaran kebencian secara online.
Penelitian yang dilakukan oleh Thomas (2017) membahas tentang Mendeteksi
Ujaran Kebencian secara Otomatis dan Masalah Bahasa yang Menyinggung.
Penelitian tersebut menggunakan Metode Logistic Regression dan Metode Linear
SVM serta Fitur Unigram, Fitur Bigram, Fitur Trigram, Fitur Sintaktik dalam
menganalisa data yang didapatkan dari Media Sosial Facebok dan Twitter. Kelemahan
dari penelitian tersebut adalah hasil yang didapatkan kurang akurat untuk
mengidentifikasi ujaran kebencian, dan hanya sebagian kecil tweet yang dianggap
sebagai ujaran kebencian oleh kamus yang dibuat oleh manusia.
Penelitian yang dilakukan oleh Varma (2017) membahas tentang Metode Deep
Learning (Fast Text, LSTM, CNN) untuk mendeteksi ujaran kebencian di Twitter.
Penelitian tersebut menggunakan Metode Deep Learning (Fast Text, LSTM, CNN)
serta Fitur Char n-gram, Fitur TF-IDF, Fitur Bag of Word Vector (BoWV).
2
3
Kelemahan dari penelitian tersebut adalah hasil yang didapatkan dari model jaringan
syaraf tiruan ketika dikombinasikan dengan pohon keputusan menghasilkan nilai
akurasi yang kurang baik dalam mendeteksi ujaran kebencian.
Penulis menggunakan Metode Deep Learning (Long Short-Term Memory)
karena Metode Deep Learning (Long Short-Term Memory) memiliki banyak lapisan
atau filter yang dapat membantu mendeteksi hatespeech dengan lebih kompleks dan
menggunakan Fitur Bigram, Trigram serta Bag of Word Vector (BoWV) karena Fitur-
Fitur tersebut dapat memisahkan tiap-tiap kata dalam sebuah kalimat menjadi beberapa
bagian sehingga hatespeech lebih mudah terdeteksi.
permasalahan menggunakan model deep learning yang telah ditentukan pada tahap
analisis dan metode-metode yang dipakai.
4. Implementasi
Implementasi sistem dilakukan dengan menuliskan kode program berdasarkan alur
kerja sistem yang telah dirancang sebelumnya.
5. Pengujian dan Evaluasi
Pengujian sistem dilakukan setelah proses implementasi selesai kemudian
dilanjutkan dengan proses evaluasi dengan pengecekan akurasi hasil pengujian.
7
8
Fitur sintaktik
Varma Metode Deep Learning (Fast
5
(2017) Text, LSTM, CNN) Fitur Char n-gram,
Fitur TF -IDF,
Fitur BoWV
BAB III
LANDASAN TEORI
3.1 Hatespeech
Hatespeech (Ujaran Penghinaan atau kebencian) adalah tindakan komunikasi
yang dilakukan oleh suatu individu atau kelompok dalam bentuk provokasi, hasutan,
ataupun hinaan kepada individu atau kelompok yang lain dalam hal berbagai aspek
seperti ras, warna kulit, etnis, gender, cacat, orientasi seksual, kewarganegaraan,
agama, dan lain-lain. Dalam arti hukum, Hatespeech adalah perkataan, perilaku,
tulisan, ataupun pertunjukan yang dilarang karena dapat memicu terjadinya tindakan
kekerasan dan sikap prasangka entah dari pihak pelaku ataupun korban dari tindakan
tersebut. Website yang menggunakan atau menerapkan Hatespeech ini disebut Hate
Site. Kebanyakan dari situs ini menggunakan Forum Internet dan Berita untuk
mempertegas suatu sudut pandang tertentu. Para kritikus berpendapat bahwa
istilah Hatespeech merupakan contoh modern dari novel Newspeak,
ketika Hatespeech dipakai untuk memberikan kritik secara diam-diam kepada
kebijakan sosial yang diimplementasikan dengan buruk dan terburu-buru seakan-akan
kebijakan tersebut terlihat benar secara politik. Sampai saat ini, belum ada pengertian
atau definisi secara hukum mengenai apa yang disebut Hatespeech dan pencemaran
nama baik dalam bahasa Indonesia. Dalam bahasa Inggris, pencemaran nama baik
diartikan sebagai sebagai defamation, libel, dan slander yang jika diterjemahkan ke
dalam bahasa Indonesia adalah fitnah (defamation), fitnah lisan (slander), fitnah
tertulis (libel). Dalam bahasa Indonesia, belum ada istilah yang sah untuk
membedakan ketiga kata tersebut.
11
12
lazim mengenai sesuatu, seperti suku bangsa, agama, dan ras. Penyebaran berita yang
sifatnya fitnah di dunia Internet, misalnya, menjadi hal yang patut diperhatikan.
Internet Service Provider (ISP) biasanya menjadi pihak yang dianggap bertanggung
jawab atas segala isi yang mengandung fitnah. Sesungguhnya, isi yang mengandung
fitnah berada di luar tanggung jawab ISP; terlebih ada pihak ke tiga yang
memasukkannya tanpa sepengetahuan ISP. Sama halnya seperti manajemen dalam
toko buku, dunia Internet membedakan peran antara distributor dan publisher. Dalam
hal ini, ISP sekadar bertindak sebagai publisher yang mengontrak distributor untuk
mengelola jaringan mereka.
Hal di ataslah yang sering disebut dengan Libel yakni sebuah pernyataan
ataupun ekspresi seseorang yang mengakibatkan rusaknya reputasi orang lain dalam
komunitas tertentu karena ekspresinya itu. Ataupun bisa dalam bentuk pembunuhan
karakter dan dalam dunia professional sekalipun. Dalam bukunya yang berjudul ‘The
New Communication Technology’, Mirabito menyatakan ada 12 ribu pengguna
Internet yang menjadi korban kejahatan di Internet yang berkenaan dengan: suku
bangsa, ras, agama, etnik, orientasi seksual, hingga gender. Nyatanya, kemajuan
Internet berjalan seiring dengan peningkatan teror di dunia maya. Contoh kasus pada
seorang anak muda berusia 19 tahun yang menggunakan komputer di sekolahnya
untuk mengirim surat elektronik berisi ancaman pembunuhan pada 62 siswa lain yang
keturunan Asia-Amerika. Contoh kasus di atas adalah salah satu contoh kasus
mengenai istilah hate yang sering dihadapi oleh Amerika dan merupakan sebuah
dilema dari kebebasan berekspresi dari amandment mereka. Hate Crime merupakan
masalah serius yang dihadapi oleh Amerika, pada tahun 2001 sendiri terdapat 12.000
individu yang menjadi korban dari ujaran kebencian ini biasanya dikarenakan ras,
etnis, negara asal, agama atau kepercayaan mereka, orientasi sex, atau bahkan karena
gender mereka. Di Amerika, pernah muncul sebuah aksi yang bernama The Hate
Crime Prevention Act of 2003 yang masih diperdebatkan dalam kongres yang ke-108.
Jika aksi ini disahkan kedalam hukum, maka perlindungan dari hatespeech akan
13
semakin terjamin dari lembaga federal. Aksi tersebut didasarkan pada premis legal
yaitu:
Individu yang menjadi target Hate Crime akan mencoba untuk pergi keluar batas
negara agar tidak menjadi korban penghinaan.
Pelaku ujaran kebencian akan mencoba untuk pergi melewati batas negara untuk
melakukan penghinaan terhadap korban.
Pelaku mungkin menggunakan artikel, termasuk komputer yang mampu
menyebarkan informasi ke berbagai negara, untuk melakukan Hate Crime.
1. Text Preprocessing
Text Preprocessing merupakan pemrosessan yang dilakukan untuk membuat
dokumen atau teks agar lebih konsisten saat melakukan proses selanjutnya. Proses
yang biasanya dilakukan adalah text cleanup, tokenization dan part of speech
tagging.
2. Text Transformation (Attribute Generation)
Text Transformation merupakan proses yang dilakukan dengan mengambil fitur
dari sebuah teks dengan menggunakan pendekatan bag of word, vector space,
15
stemming dan stopword yang bertujuan untuk menentukan fitur terbaik dalam
mencirikan dokumen.
3. Feature Selection (Attribute Selection)
Feature Selection merupakan proses dalam mengurangi fitur yang berlebihan
atau tidak relevan dalam teks sehingga didapatkan bagian terpenting saja.
4. Mining Patterns
Mining Pattern merupakan proses mining data teks dengan menggunakan
teknik mining seperti classification, clustering dan decision tree dalam menemukan
sebuah pola atau knowledge dari teks.
5. Evaluation
Melakukan evaluasi dari hasilnya yang selanjutnya dari hasil tersebut dapat
dibuang atau dapat digunakan sebagai alur selanjutnya. Tahapan dari text mining
dapat dilihat pada Gambar 3.1.
tulisan. Dalam sentimen analysis atau opinion mining mencakup beberapa tugas yang
berbeda seperti emotion analysis, opinion extraction, sentiment mining, subjectivity
analysis, affected analysis, emotion analysis.
Tujuan utama sentiment analysis adalah bagaimana komputer dapat mengenali
tingkat emosional positif atau negatif dari sampel teks. Adanya polaritas sentimen
tersebut merupakan ciri khusus dari teks. Sebuah teks secara umum memiliki dua
makna sentimen yaitu sentimen positif dan sentimen negatif. Selain polaritas positif
dan negatif, terkadang polaritas juga dianggap sebagai kisaran dimana suatu dokumen
dapat berisi penyataan yang memiliki polaritas campuran.
Sentiment analysis dapat dipahami pada beberapa level yaitu level dokumen,
paragraf, kalimat, atau klausa. Berdasarkan level sumber datanya, sentiment analysis
terbagi menjadi dua kategori yaitu:
3.5 Word2vec
Word2vec, yang dipublikasikan oleh Google pada tahun 2013, adalah
implementasi jaringan syaraf tiruan yang mempelajari representasi terdistribusi kata.
Vektor kata terdistribusi powerful dan dapat digunakan dalam prediksi kata dan
terjemahan (Zharmagambetov dan Pak, 2015). Word2vec adalah sekelompok model
yang digunakan untuk menghasilkan word embedding. Representasi vektor dari
17
Word2vec memiliki dua buah arsitektur yang berbeda yaitu Continuous Bag-
of-word (CBOW) dan Skip-gram. Dalam metode CBOW tujuannya adalah untuk
memprediksi kata yang diberikan oleh kata-kata disekitarnya. Pada Gambar 3.2
diilustrasikan arsitektur CBOW dalam memprediksi kata saat ini didasarkan pada
konteks. Skip-gram sebaliknya, yaitu untuk memprediksi jendela kata yang
diberikan oleh kata tunggal. Kedua metode menggunakan jaringan syaraf tiruan
sebagai algoritmanya. Pada Gambar 3.3 diilustrasikan arsitektur Skip-gram
memprediksi kata yang diberikan oleh kata disekitarnya. Awalnya setiap kata dalam
18
kosakata adalah vektor acak N dimensi. Selama pelatihan, algoritma belajar vektor
optimal untuk setiap kata menggunakan metode CBOW atau skip-gram.
Untuk contoh diatas, jaringan syaraf akan memiliki delapan neuron input dan
delapan neuron output, Kita asumsikan bahwa kita memutuskan untuk menggunakan
tiga neuron pada lapisan tersembunyi. Ini berarti matrik W1 dan W0 didapat dari
matriks 8x3 dan 3x8. Sebelum pelatihan dimulai, matriks ini diinisialisasikan dengan
nilai-nilai acak yang kecil seperti biasa dalam pelatihan jaringan syaraf tiruan. Kita
asumsikan W1 dan W0 diinisialisasikan dengan nilai-nilai berikut:
Misalkan kita ingin jaringan untuk mempelajari hubungan antara kata “kucing”
dan kata “memanjat”. Artinya jaringan harus menunjukkan probabilitas tinggi untuk
kata “memanjat” ketika kata “kucing” dimasukkan ke jaringan. Dalam terminologi
22
word embedding, kata “kucing” disebut sebagai konteks dan kata “memanjat” disebut
sebagai sasaran kata (target kata). Dalam hal ini, vektor input dari kata “kucing” akan
dikodekan menjadi [01000000], hanya indeks kedua dari vektor yang bernilai 1, hal
ini dikarenakan kata input “kucing” berada pada posisi nomor dua dalam daftar yang
diurutkan didalam corpus kata. Sedangkan kata yang menjadi target yaitu kata
“memanjat”, akan dikodekan menjadi [00010000], terlihat hanya indeks keempat dari
vektor yang bernilai 1 dikarenakan kata input “memanjat” berada pada posisi nomor
empat dalam daftar yang diurutkan didalam corpus kata.
Dengan vektor input menggunakan kata “kucing”, output pada neuron lapisan
tersembunyi dapat dihitung dengan persamaan 3.1.
probabilitas untuk kata “memanjat” dicetak tebal, hal ini mengingat vektor sasaran
berada pada indeks keempat didalam corpus kata [00010000], vektor kesalahan untuk
lapisan output dengan mudah dihitung dengan mengurangkan vektor probabilitas
dengan vektor sasaran. Setelah kesalahan diketahui, bobot dalam matriks W1 dan W0
dapat diperbarui menggunakan backpropagation. Dengan demikian, pelatihan dapat
dilanjutkan dengan menghadirkan berbagai pasangan kata konteks-target dari korpus.
Langkah pertama pada LSTM adalah menentukan apakah informasi dari input
Xt-1 dan Xt pantas lewat atau tidak dari cell state. Keputusan ini dibuat oleh lapisan
sigmoid yang disebut “forget gate”. Output 1 artinya “biarkan lewat” dan 0 artinya
“lupakan informasi”. Menghitung nilai forget gate dengan persamaan berikut:
membuat vektor nilai kandidat baru, 𝑐̃𝑡, yang dapat ditambahkan ke cell state. Pada
langkah selanjutnya, digabungkan keduanya untuk membuat update ke state. Untuk
menghitung nilai input gate dengan persamaan (2) dan nilai kandidat baru dengan
persamaan (3).
Selanjutnya memperbarui cell state lama, 𝐶𝑡−1, ke cell state baru 𝐶𝑡. Dengan
mengalikan cell state lama dengan forget gate 𝑓𝑡 kemudian ditambah 𝑖𝑡∗ 𝑐̃𝑡. Untuk
lebih jelas pada persamaan (4).
Model LSTM terdiri dari lapisan LSTM tersembunyi tunggal diikuti oleh
lapisan output seperti pada Gambar (5) bagian (a). Deep LSTM adalah ekstensi untuk
model LSTM yang memiliki beberapa layer LSTM tersembunyi di mana setiap
lapisan berisi beberapa sel memori/neuron seperti yang ditunjukkan pada Gambar (6)
bagian (b). Deep LSTM diperkenalkan oleh Graves (2012) yang menyatakan
kedalaman jaringan lebih penting daripada jumlah sel memori dalam lapisan yang
diberikan untuk pembelajaran model. Deep LSTM memungkinkan representasi yang
lebih kompleks untuk menangkap informasi pada skala yang berbeda yang digunakan
untuk pembelajaran pada model.
𝑃(𝑋|𝐻). 𝑃(𝐻)
𝑃(𝐻|𝑋) =
𝑃(𝑋)
Keterangan:
X : Data dengan class yang belum diketahui
P : Hipotesis data X merupakan suatu class spesifik
P(H|X) : Probabilitas hipotesis H berdasarkan kondisi X (posteritori probability)
P(H) : Probabilitas hipotesis H (prior probability)
P(X|H) : Probabilitas X berdasarkan kondisi pada hipotesis H
P(X) : probabilitas X
BAB IV
ANALISIS DAN PERANCANGAN SISTEM
Data yang dibutuhkan dalam penelitian ini terdiri dari dua jenis, yaitu data
latih dan data uji. Semua data yang digunakan ini diambil dari kalimat hatespeech
yang telah dilabeli sesuai dengan kelas sentimennya secara manual. Data latih
digunakan untuk mengklasifikasikan hatespeech pada kelas sentimennya dan
jumlah datanya lebih banyak. Dalam penelitian ini jumlah data latih 80 % dari total
data keseluruhan. Sedangkan data uji digunakan untuk mengukur sejauh mana
classifier berhasil melakukan klasifikasi dengan benar. Jumlah data yang digunakan
dalam penelitian ini adalah 20% dari data keseluruhan.
28
29
fitur yaitu pengubahan data mentah menjadi data yang siap dipakai sebagai input
sistem. Pada tahap ini data hasil preprocessing akan dikonversi menjadi vektor.
Vektor diambil dari hasil training korpus Wikipedia Indonesia menggunakan
Word2vec.
4.3.1 Preprocessing
Tahapan preprocessing adalah mengelola data tweet agar lebih mudah dalam
melakukan proses selanjutnya. Dalam preprocessing terdapat dua tahapan yang harus
dilakukan yaitu:
1. Case Folding
Tidak semua dokumen teks konsisten dalam penggunaan huruf. Oleh karena itu,
tahap ini bertujuan untuk merubah karakter huruf di dalam komentar menjadi karakter
huruf kecil semua. Hasil tahap case folding ditampilkan pada Tabel 4.2.
31
2. Normalisasi Fitur
Tahap ini bertujuan untuk menghapus karakter khusus dalam komentar seperti
tanda baca (titik(.), koma(,), tanda tanya(?), tanda seru(!) dan sebagainya), angka
numerik (0-9), dan karakter lainnya ($, %, *, dan sebagainya). Hal ini dilakukan agar
proses klasifikasi menjadi lebih akurat. Hasil tahap normalisasi fitur ditampilkan pada
Tabel 4.3.
Tabel 4.3 Tahap normalisasi fitur
Input Output
sejak kapan politik dan agama sejak kapan politik dan agama menjadi
menjadi sesuatu yang tidak bisa sesuatu yang tidak bisa dipisahkan ya
dipisahkan ya... sejak jaman nenek sejak jaman nenek anda ya
anda ya?
Sejak Sejak
Kapan Kapan
32
Politik Politik
Dan Agama
Agama Menjadi
Menjadi Dipisahkan
Sesuatu Jaman
Yang Nenek
Tidak Anda
Bisa
Dipisahkan
Ya
Sejak
Jaman
Nenek
Anda
Ya
4. Slangword
Slangword merupakan proses mengubah kata yang tidak baku menjadi kata yang
baku. Tahap ini dilakukan dengan menggunakan bantuan kamus slangword dan padanan
dalam kata baku. Tahapan ini akan memeriksa kata yang terdapat dalam kamus slangword.
Contoh dari Slangword dapat dilihat pada Tabel 4.5.
Aq Aku
Alus Halus
33
Bkn Bukan
Cm Cuma
Dah Sudah
Gak Tidak
Kalo Kalau
Dari data hatespeech yang telah melalui proses preprocessing seperti pada
Tabel 4.6, kemudian akan dibuat kamus kata. Ada tiga tahap yang harus dilakukan,
pertama memisahkan kalimat menjadi satuan kata. Kedua yaitu menghapus duplikasi
kata. Ketiga adalah memberi id pada masing-masing kata secara berurutan
34
berdasarkan kata yang sering muncul. Kata pertama diberi id=1 dan seterusnya hingga
kata terakhir. Contoh kamus kata dapat dilihat pada Gambar 4.2.
Tahap terakhir adalah memberi padding pada kalimat agar panjang kalimatnya
sama. Padding dilakukan dengan menentukan panjang maksimal kata pada suatu
kalimat atau mencari jumlah kalimat terpanjang pada data hatespeech. Pada Gambar
4.3 dapat dilihat kalimat terpanjang pada kalimat kedua dengan 13 kata, sedangkan
kalimat pertama memiliki 10 kata dan kalimat ketiga memiliki 8 kata. Oleh karena itu,
35
kalimat pertama dan kedua harus disesuaikan dengan kalimat terpanjang. Kalimat
pertama dan kedua harus dilakukan padding dengan menambahkan angka 0 agar
panjangnya sama dengan kalimat terpanjang. Penambahan angka 0 dapat dilakukan
diawal maupun diakhir kalimat. Hasil padding diawal kalimat dapat dilihat pada
Gambar 4.4.
Kalimat 1 0 0 0 1 2 3 4 5 6 7 8 9 10
Kalimat 2 11 3 12 3 15 13 14 15 16 17 18 19 20
Kalimat 3 0 0 0 0 0 21 22 23 24 25 26 27 28
4.4 Word2vec
4.4.1 Train Wikipedia Indonesia
Pada tahap ini diawali dengan mengambil data korpus Wikipedia Indonesia
(https://dumps.wikimedia.org/). Kemudian data tersebut dikonversi kedalam format
teks menggunakan bahasa pemrograman python. Data teks Wikipedia Indonesia
tersebut akan dijadikan input untuk membuat model word2vec dan output yang
dihasilkan berupa kata dan satu set vektor. Pada proses ini memanfaatkan library
gensim 3.4.0 (https://pypi.python.org/pypi/gensim). Library tersebut berfungsi
untuk membaca file teks Wikipedia Indonesia yang kemudian di training dengan
jaringan syaraf tiruan untuk mendapatkan nilai vektor yang kemudian disimpan
dalam format file txt. Arsitektur word2vec yang digunakan pada penelitian ini adalah
arsitektur CBOW (Continuous Bag-of-word) dan skipgram dengan ukuran
parameter yang sama yaitu vektor 300 dimensi, windows ukuran 10, dan jumlah
minimal kata sebanyak 5 kata. Proses pembuatan model word2vec dapat dilihat pada
Gambar 4.5.
36
Word2vec
Input dari LSTM layer adalah output dari embedding layer yaitu matriks 20
kali 300 dimensi. Setiap kata diwakili oleh 300 dimensi. Dan 20 kata tersebut akan
masuk ke jaringan LSTM secara berurutan dengan memasukkan setiap kata 300
dimensi. Kemudian diberi batch size sehingga input timesteps tergantung pada
jumlah batch size yang diberikan.
Output yang dihasilkan oleh LSTM layer adalah sejumlah neuron LSTM
yang ditentukan. Output diperoleh dari LSTM layer pada timesteps terakhir yang
dihasilkan dari kalkulasi seluruh kata yang menjadi input LSTM. Visualisasi input
pada LSTM layer dapat dilihat pada Gambar 4.8.
39
4.7 Pengujian
Dalam pengujian akurasi data dibagi menjadi dua yaitu data latih dan data
uji. Masing-masing data terdapat kalimat hatespeech dan labelnya. Model yang telah
ditentukan nilai parameternya diuji menggunakan data uji. Sebelum pengujian
model akan dilatih menggunakan semua data latih (80% data) dengan menggunakan
parameter yang telah ditentukan. Setelah proses pelatihan dilakukan, model diuji
menggunakan semua data uji (20% data) yang telah dipisahkan sejak awal dan
belum pernah digunakan sebelumnya. Akurasi akhir data uji ini yang menjadi nilai
akurasi model tersebut.
Jumlah total data yang digunakan adalah 2000 data hatespeech. Kemudian
untuk data latih diambil sebanyak 1600 data dan data uji diambil sebanyak 400 data.
Kemudian akan diklasifikasikan menggunakan metode LSTM. Pengujian meliputi
pencarian nilai parameter yang dapat memberikan nilai akurasi tinggi terhadap data.
Pencarian nilai parameter akan menguji arsitektur word2vec yaitu CBOW dan
skipgram sebagai word embedding pada model LSTM.
1. Perangkat keras
a. Processor Intel® Core i5-8250U CPU @1.6GHz
b. Hard Disk Drive 1000 GB
c. RAM 4 GB
d. GPU NVIDIA GeForce MX130
2. Perangkat Lunak
a. Sistem operasi Windows 10 Pro 64-bit
b. Python 3.6
c. Library Keras
d. Library Tensorflow
e. Library NLTK
f. Library Numpy
g. Library Pandas
h. Library Sastrawi
i. Library gensim
j. Library scikit-learn
k. Library twitteR
42
43
l. Library ROAuth
m. Library RStudio
1 > library(twitteR)
2 > library(ROAuth)
3 >
setup_twitter_oauth('j8UesNlEqAwgV54HsEMfaILAe','2a6CBdGQmZVd60U
o8l8GwFy5g8uUlVzufEbhPIdvmNwskoVX0L','1019546345575612416-
YnAj8GwYMfGSkJG9rHMXa3utD1xtTR','qYNkxhDPAFgoNcVO7gA75ziGLL2bBFD
anbuO2pFjvvVrt')
[1] “using direct authentication”
4 > 1
[1] 1
5 > tweets<-searchTwitter(“#2019GantiPresiden”,n=2000)
6 > tweets<-searchTwitter(“#2019GantiPresiden”,n=2000)
7 > hatespeech.df<-twListToDF(tweets)
8 > view(hatespeeech.df)
9 > write.csv(hatespeech.df,”E:/pra_tesis/laporan/hatespeech.csv”)
Gambar 5.1 Crawling mengambil data di Rstudio
44
3 def konversi_slangword(hatespeech):
4 kamus_slangword =
5 eval(open("E:/pra_tesis/Koding_LSTM/slangwordsku.txt").read())
6 pattern = re.compile(r'\b( ' + '|'.join
7 (kamus_slangword.keys())+r')\b')
8 content = [ ]
9 for kata in hatespeech:
10 filteredSlang = pattern.sub(lambda x:
11 kamus_slangword[x.group()],kata)
12 content.append(filteredSlang.lower())
13 hatespeech = content
14 return hatespeech
22 factory = StopWordRemoverFactory()
23 stoplist = factory.get_stop_words()
24 stopword = factory.create_stop_word_remover()
25 teks1= stopword.remove(teks)
26 return teks1
27 text = [file]
28 for text1 in text:
29 label = text1['kategori']
30 text1 = text1['text']
31 text1 = text1.apply(casefolding)
32 text1 = text1.apply(normalisasi)
33 text1 = text1.apply(stopword)
34 text1 = text1.apply("".join)
35 text1 = text1.apply(konversi_slangword)
36 text1 = text1.apply("".join)
37 print(text1)
5.4.1 Casefolding
Proses casefolding merupakan proses merubah huruf besar menjadi huruf
kecil. Pada gambar 5.3 baris 15 sampai baris 17 menunjukkan implementasi dari
Casefolding.
1 tokenizer = Tokenizer(num_words=NUM_WORDS)
2 tokenizer.fit_on_texts(texts)
3 word_index = tokenizer.word_index
4 sequences_train = tokenizer.texts_to_sequences(train_data.text)
5 sequences_test = tokenizer.texts_to_sequences(test_data.text)
6 X_train = pad_sequences(sequences_train)
7 X_test = pad_sequences(sequences_test,maxlen=X_train.shape[1])
8 y_train = to_categorical(np.asarray(labels[train_data.index]))
9 y_test = to_categorical(np.asarray(labels[test_data.index]))
13 fileinput ='E:/pra_tesis/Koding_LSTM/idwiki.txt'
14 fileoutput ='E:/pra_tesis/Koding_LSTM/wiki.id.text.model.
model200skipgram.txt'
15 model(fileinput, fileoutput)
Gambar 5.4 Koding Pembuatan word2vec
1 if __name__ == '__main__':
2 program = os.path.basename(sys.argv[0])
3 logger = logging.getLogger(program)
4 logging.basicConfig(format='%(asctime)s: %(levelname)
5 s: %(message)s')
6 logging.root.setLevel(level=logging.INFO)
7 logger.info("running %s" % ' '.join(sys.argv))
8 if len(sys.argv) < 4:
9 print("Useing: python train_word2vec_model.py input_text "
10 "output_gensim_model output_word_vector")
11 inp, outp1 , outp2 = sys.argv[1:4]
12 model = Word2Vec(LineSentence(inp), size=300, window=10,
13 min_count=1, sg =1,
14 workers=multiprocessing.cpu_count())
15 model.init_sims(replace=True)
16 model.save(outp1)
17 if outp2:
18 model.wv.save_word2vec_format(outp1 +
19 'id.wiki.text.model.model200skipgram.txt')
Gambar 5.5 Koding Konversi vektor
1 embedding_layer = Embedding(len(word_index)+1,
2 EMBEDDING_DIM,
3 weights=[embedding_matrix],
4 input_length=MAX_SEQUENCE_LENGTH,
5 trainable=False)
Gambar 5.7 Koding Embedding Layer
20 return (1/(math.sqrt(2*math.pi)*stdev))*exponent
21 def predict(summaries, inputVector):
22 probabilities = calculateClassProbabilities(summaries,
23 inputVector)
24 bestLabel, bestProb = None, -1
25 for classValue, probability in probabilities.items():
26 if bestLabel is None or probability >
27 bestProb:
28 bestProb = probability
29 bestLabel = classValue
30 return bestLabel
31 def getPredictions(summaries, testSet):
32 predictions = []
33 for i in range(len(testSet)):
34 result = predict(summaries, testSet[i])
35 predictions.append(result)
36 return predictions
37 def getAccuracy(testSet, predictions):
38 correct = 0
39 for x in range(len(testSet)):
40 if testSet[x][-1] == predictions[x]:
41 correct += 1
42 return (correct/float(len(testSet)))*100.0
43 accuracy = getAccuracy(testSet, predictions)
44 print('Accuracy: {0}%'.format(accuracy))
Gambar 5.8 Koding Naïve Bayes
BAB VI
HASIL DAN PEMBAHASAN
Tahap ini adalah tahap pengujian sistem yang digunakan untuk mengetahui
performa sistem yang dibangun. Pengujian hatespeech digunakan untuk mengukur
akurasi dari hatespeech. Berdasarkan hasil pengujian yang dilakukan maka dapat
diketahui akurasi yang terbaik. Metode LSTM dibandingkan dengan metode Naïve
Bayes dengan memanfaatkan library sklearn pada bahasa pemrograman python.
6.1 Data
Pada penelitian ini data hatespeech yang digunakan adalah 2000 data yang
diambil dari media sosial twitter. Data tersebut dibagi menjadi dua sentimen, yaitu
sentimen hatespeech dan sentimen netral. Kemudian data tersebut dibagi menjadi dua,
yaitu data training sejumlah 1600 data dan data testing sejumlah 400 data. Distribusi
data hatespeech untuk setiap sentimen ditunjukkan pada tabel 6.1.
Tabel 6.1 Distribusi data sentimen
Sentimen Jumlah Data
Hatespeech 920
Netral 1080
53
54
Pada Tabel 6.3 dijelaskan bahwa arsitektur skipgram memiliki akurasi lebih
baik daripada arsitektur CBOW. Hal ini dikarenakan arsitektur skipgram dapat
menghasilkan word embedding yang lebih baik sehingga dapat meningkatkan akurasi.
7.1 Kesimpulan
Berdasarkan penelitian yang dilakukan, maka dapat diperoleh kesimpulan
sebagai berikut:
1. Metode Long Short-Term Memory memiliki hasil akurasi 84.39% lebih baik
dibandingkan dengan metode naïve bayes yang memiliki hasil akurasi
55.18%.
2. Akurasi terbaik diperoleh dengan nilai masing-masing parameter yaitu jumlah
epoch 25 dan fungsi aktivasi sigmoid dengan nilai akurasi 84.39%.
3. Fitur Word2vec sangat berpengaruh pada Metode LSTM karena Fitur Word2vec
terbukti sangat akurat dalam memproses data dan dapat meningkatkan akurasi
pada Metode LSTM.
7.2 Saran
Dalam penelitian ini masih terdapat beberapa kekurangan yang dapat disempurnakan.
Pada penelitian berikutnya dapat menggunakan beberapa saran berikut ini:
1. Penelitian ini masih menggunakan data dalam jumlah terbatas, penelitian
berikutnya dapat menggunakan data yang lebih besar pada kasus yang berbeda.
2. Penelitian berikutnya dapat menggunakan perhitungan parameter jumlah
neuron dan L2 regularization untuk memproses data.
3. Penelitian berikutnya dapat mengkombinasikan metode Long Short-Term
Memory dengan metode Convulutional Neural Network untuk klasifikasi
sentimen.
57
DAFTAR PUSTAKA
Bleich, E. 2011, The Rise of Hatespeech and Hate Crime Laws in Liberal
Democracies, Journal of Ethnic and Migration Studies., 37: 6, 917 — 934
Hatespeech Factsheet, European Court of Human Right 2017.
Hochreiter, S. & Urgen Schmidhuber, J., 1997, Long Short-Term Memory, Neural
Computation, 9, 8, 1735–1780.
Li, D. & Qian, J., 2016, Text Sentiment Analysis Based on Long Short-Term Memory,
2016 First IEEE International Conference on Computer Communication and the
Internet, 471–475.
Ramadhani, A.M. & Goo, H.S., 2017, Twitter sentiment analysis using deep learning
methods, In, E. Onieva et al., eds. 2017 7th International Annual Engineering
Seminar (InAES), Lecture Notes in Computer Science, IEEE, Cham, pp. 1–4.,
http://link.springer.com/10.1007/978-3-319-19644-2,.
Silva, L. 2016, Analyzing the Targets of Hate in Online Social Media, University
Federal of Minas Gerais, Brazil.
Network for The Elimination of Racial Discrimination Japan. 2015, The Issue of
Hatespeech : in relation to the Issue No. 10/07/2017 of the List of Issues adopted
by the Human Rights Committee, Japan.
58
59
Woodward, M. 2012, Hatespeech and Islamic Defenders Front, Center For Strategic
Communication, Arizona State University.
Zhang, Z. 2016, Detecting Hatespeech on Twitter Using a Convolution-GRU Based
Deep Neural Network, Nottingham Trent University, UK.