Beberapa penelitian tentang Hate speech yang dijadikan kajian pustaka dalam
penelitian ini adalah penelitian Buntoro (2016), Silva (2016), Thomas (2017), Varma
(2017) dan Zhang (2016).
Buntoro (2016) menggunakan Metode Naïve Bayes Clasiffier dan Metode
Support Vektor Machine untuk mendeteksi ujaran kebencian. Dari penelitian yang
telah dilakukan, Analisis sentimen tweet Bahasa Indonesia dengan tanda pagar Hate
speech dapat membantu menentukan sentimen pada tweet opini Bahasa Indonesia
yang ada di Twitter. Setelah dilakukan analisis sentimen terlihat banyak tweet opini
yang sebenarnya tidak masuk kategori Hate speech tapi diberi tanda pagar Hate
speech. Nilai akurasi tertinggi didapat dengan Metode klasifikasi Support Vector
Machine (SVM) dengan tokenisasi Unigram, stopword list Bahasa Indonesia dan
emoticons, dengan nilai rata-rata akurasi mencapai 66,6%, nilai presisi 67,1%, nilai
recall 66,7% nilai TP rate 66,7% dan nilai TN rate 75,8%. Dalam penelitian ini juga
dapat diketahui Metode klasifikasi Support Vector Machine (SVM) lebih tinggi
akurasinya untuk klasifikasi sentiment tweet Hate speech Bahasa Indonesia
dibandingkan Metode klasifikasi Naïve Bayes Classifier (NBC).
Penelitian yang dilakukan oleh Silva (2016) 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).
Penelitian yang menggunakan Metode Logistic Regression adalah seperti yang
dilakukan oleh Thomas (2017). Penelitian tersebut menggunakan Logistic Regression
dengan regularisasi L1 untuk mengurangi dimensi data, kemudian menguji berbagai
model yang telah digunakan dalam pekerjaan sebelumnya: Logistic Regression, Naïve
Bayes, decision tree, dan Linear SVM. Penelitian tersebut menguji setiap model dengan
menggunakan validasi silang 5 kali lipat, menggunakan 10% sampel untuk evaluasi.
Setelah menggunakan grid searching untuk mengulangi model dan parameter,
kemudian menemukan bahwa Metode Logistic Regression dan Metode Linear SVM
cenderung secara signifikan lebih baik daripada model lainnya. Penelitian tersebut
memutuskan untuk menggunakan Metode Logistic Regression dengan regularisasi L2
untuk model akhir karena lebih mudah untuk memeriksa probabilitas prediksi
keanggotaan kelas dan telah dilakukan dengan baik pada makalah sebelumnya (Burnap
dan Williams 2015).
Selain Thomas, Metode Deep Learning (Fast Text, LSTM, CNN dan Gated
Recurrent Unit Network) digunakan untuk mendeteksi hate speech seperti yang
dilakukan oleh Varma (2017) dan Zhang (2016).
Penelitian yang dilakukan Varma (2017) menjelaskan bahwa Metode Deep
Learning (Fast Text, LSTM, CNN dan Gated Recurrent Unit Network) yang diusulkan
secara signifikan lebih baik daripada Metode TF-IDF dan Metode n-gram karakter.
Diantara Metode lainya Metode CNN tampil lebih baik dari LSTM dan Fast Text.
Anehnya, inisialisasi dengan random embedding sedikit lebih baik daripada
inisialisasi dengan GloVe saat digunakan bersamaan dengan GBDT. Metode terbaik
adalah LSTM + Random Embedding + GBDT, dimana tweet embedding diinisialisasi
ke random vektor, Metode LSTM dilatih menggunakan propagasi balik, dan
kemudian embedding digunakan untuk melatih pengklasifikasi GBDT. Kombinasi
CNN, LSTM, emblem Fast Text sebagai fitur untuk GBDT tidak menghasilkan hasil
yang lebih baik.
Penelitian yang dilakukan Zhang (2016) menjelaskan bahwa penelitian tersebut
memperkenalkan Metode yang secara otomatis mengklasifikasikan perkataan yang
menyebabkan kebencian di Twitter menggunakan model jaringan saraf dalam
menggabungkan CNN dan GRU, hal itu ditemukan secara empiris dan meningkatkan
akurasi klasifikasi. Penelitian tersebut juga melakukan evaluasi komparatif pada
koleksi terbesar dari dataset publik dan menunjukkan Metode yang diusulkan dapat
menambahkan baseline dan juga state of the art kasus. Hasil penelitian tersebut
membuat referensi baru untuk studi perbandingan masa depan. Penelitian tersebut juga
membuat dan menerbitkan kumpulan data kebencian lainnya, melengkapi dataset yang
sudah ada dengan berfokus pada agama (Muslim) dan pengungsi. Tinjauan pustaka
tersebut ditampilkan pada Tabel 2.1.
Fitur TF -IDF,
Fitur BoWV
BAB III
LANDASAN TEORI
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 hate speech akan
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,
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.
Gambar 3.1 Tahapan Text Mining
3.4 Sentiment Analysis
Sentiment analysis atau opinion mining adalah bidang studi yang menganalisis
opini, sentimen, evaluasi, sikap, dan emosi seseorang yang diungkapkan dalam bahasa
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
pembelajaran kata dengan menggunakan model word2vec telah terbukti membawa
makna semantik dan berguna dalam berbagai tugas NLP (Rong, 2014). Word2vec
dikembangkan dengan menggunakan jaringan syaraf dua lapisan.
Diperlukan data teks atau korpus teks sebagai masukan dan menghasilkan
sekumpulan vektor dari teks yang diberikan. Model word2vec menghasilkan satu set
vektor atau ruang vektor dari teks. Di ruang vektor, setiap kata unik dalam korpus
diberikan vektor yang sesuai. Jadi, ruang vektor merupakan representasi vektor dari
semua kata yang ada dalam korpus teks.
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
kosakata adalah vektor acak N dimensi. Selama pelatihan, algoritma belajar vektor
optimal untuk setiap kata menggunakan metode CBOW atau skip-gram.
Gambar 3.3 Arsitektur 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
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.
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.
Gambar 3.5 Arsitektur LSTM 1 layer (a) dan 2 layer (b)
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 hate speech
yang telah dilabeli sesuai dengan kelas sentimennya secara manual. Data latih
digunakan untuk mengklasifikasikan hate speech 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.
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.
Tabel 4.2 Tahap case folding
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?
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
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
Bkn Bukan
Cm Cuma
Dah Sudah
Gak Tidak
Kalo Kalau
Tabel 4.6 Contoh kalimat hate speech yang telah melalui preprocessing
No Kalimat
1 lawan jangan takut anis dilantik mereka indonesia berbuat semau
hatinya
2 efek takut politisi takut kalah pilkada mendatang kalah kita peduli
agama negara kuat
3 memilihlah berdasar kecerdasan seseorang anda pilih terlihat cerdas.
Dari data hate speech 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
berdasarkan kata yang sering muncul. Kata pertama diberi id=1 dan seterusnya hingga
kata terakhir. Contoh kamus kata dapat dilihat pada Gambar 4.2.
lawan = 1 berbuat = 8 kalah = 15 berdasar = 22
jangan = 2 semau = 9 kita = 16 kecerdasan = 23
takut = 3 hatinya = 10 peduli = 17 seseorang = 24
anis = 4 efek = 11 agama = 18 anda = 25
dilantik = 5 politisi = 12 negara = 19 pilih = 26
mereka = 6 pilkada = 13 kuat = 20 terlihat = 27
indonesia = 7 mendatang = 14 memilihlah = 21 cerdas = 28
Gambar 4.2 Contoh kamus kata
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 hate speech. 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,
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.
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.
4.7 Pengujian
Dalam pengujian akurasi data dibagi menjadi dua yaitu data latih dan data
uji. Masing-masing data terdapat kalimat hate speech 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 hate speech. 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
l. Library ROAuth
m. Library RStudio
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
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)
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.5 Koding Pembuatan word2vec
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.6 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.9 Koding Embedding Layer
5.6.3 Implementasi LSTM Layer
LSTM layer dibangun menggunakan pustaka python Keras dengan
memanfaatkan library Keras.layers.LSTM seperti pada Gambar 5.7 dan Gambar 5.8.
Tahap ini adalah tahap pengujian sistem yang digunakan untuk mengetahui
performa sistem yang dibangun. Pengujian hate speech digunakan untuk mengukur
akurasi dari hate speech. 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 hate speech yang digunakan adalah 2000 data yang
diambil dari media sosial twitter. Data tersebut dibagi menjadi dua sentimen, yaitu
sentimen hate speech dan sentimen netral. Kemudian data tersebut dibagi menjadi
dua, yaitu data training sejumlah 1600 data dan data testing sejumlah 400 data.
Distribusi data hate speech untuk setiap sentimen ditunjukkan pada tabel 6.1.
Tabel 6.1 Distribusi data sentimen
Sentimen Jumlah Data
Hate speech 920
Netral 1080
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.
DAFTAR PUSTAKA
Bleich, E. 2011, The Rise of Hate Speech and Hate Crime Laws in Liberal
Democracies, Journal of Ethnic and Migration Studies., 37: 6, 917 — 934 Hate
speech Factsheet, European Court of Human Right 2017.
Buntoro, G. 2016, Anailisis Sentimen Hate speech di Twitter Dengan Metode Naive
Bayes Clasiffier dan Support Vector Machine, Jurnal Dinamika Informatika
Volume 5., Nomor 2., September 2016.
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,.
Seurot, F. 2017, Factsheet of Hate speech, European Court of Human Right, Europe.
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 Hate
Speech : in relation to the Issue No. 10/07/2017 of the List of Issues adopted by
the Human Rights Committee, Japan.
Thomas, D. 2017, Automated Hate Speech Detection and the Problem of Offensive
Language, Department of Sociology, Cornell University, Ithaca, NY, USA.
Varma, V. 2017, Deep Learning for Hate Speech Detection in Tweets, 26th
International World Wide Web Conference, perth, Australia.
Woodward, M. 2012, Hate Speech and Islamic Defenders Front, Center For Strategic
Communication, Arizona State University.
Zhang, Z. 2016, Detecting Hate Speech on Twitter Using a Convolution-GRU Based
Deep Neural Network, Nottingham Trent University, UK.