BAB II LANDASAN TEORI
2.13 Kernel SVM
( ) ( ) ∑ ( ( ) ) (2.8)
Dimana merupakan Lagrange Multipliers, dan nilai . Pada saat minimum, akan dilakukan penurunan dari b dan w dan mengaturnya menjadi nol seperti berikut.
∑ (2.9)
∑ (2.10)
Substitusi nilai w dari persamaan (2.10) kedalam bentuk L(w,b) sehingga akan diperoleh rumus ganda atau biasa disebut sebagai wolfe dual
( ) ∑ ∑ ( ). (2.11)
Dimana nilai terhadap kendala adalah sebagai berikut.
∑ (2.12)
yang dapat digunakan untuk berbagai teknik analisis data. Namun, SVM adalah yang paling terkenal dari pendekatan berbasis kernel, yang mencakup berbagai kelas yang menggunakan kernel untuk mewakili data (Ningrum 2018).
Berdasarkan pada fungsi kernel diatas, dapat dilakukan perhitungan untuk melakukan prediksi dari beberapa data dalam feature space seperti pada persamaan berikut:
( ( )) ( ( ) )
( ( )) (∑
( ) ) b : nilai bias
m : jumlah support vector K(x,z) : fungsi kernel
Berikut ini adalah beberapa fungsi kernel yang paling populer dan sering digunakan:
1. Linear Kernel SVM
Fungsi kernel yang paling sederhana adalah kernel linear. Ketika data yang dipelajari dipisahkan secara linear, kernel linear digunakan. Ketika ada banyak fitur, kernel linear adalah yang terbaik karena, tidak seperti klasifikasi teks, berpindah ke ruang dimensi yang lebih tinggi tidak meningkatkan kinerja secara
signifikan. Kernel SVM linear ditunjukkan di bawah ini.
( ) (2.13)
Pemetaan fungsi merupakan identitas/tidak ada pemetaan
2. Polynomial Kernel
Ketika data tidak dipisahkan secara linear, Polynomial kernel digunakan sebagai fungsi kernel. Polynomial kernel ideal untuk situasi yang melibatkan kumpulan data pelatihan yang dinormalisasi.
( ) ( ) ( ) (2.14)
3. Radial Basis Function (RBF) Kernel
Kernel RBF adalah fungsi kernel yang sering digunakan dalam analisis data ketika data tidak dibagi secara linear. Gamma dan Biaya adalah dua parameter kernel RBF. Parameter Biaya, sering dikenal sebagai C, adalah parameter pengoptimalan SVM yang mencegah kesalahan klasifikasi di setiap sampel dalam set data pelatihan. Parameter Gamma mengontrol seberapa jauh efek sampel set data pelatihan meluas, dengan nilai rendah menunjukkan "jauh" dan nilai besar menunjukkan "dekat". Kernel RBF memiliki persamaan berikut.
( ) [ ‖ ‖ ] (2.15)
METODELOGI PENELITIAN
3.1 Rancangan Penelitian
Tentu saja, pendekatan SVM-WORD2VEC digunakan dalam penelitian ini untuk mengevaluasi dan mengkarakterisasi data mengenai sikap masyarakat terhadap metaverse di kolom komentar pada konten YouTube yang telah diidentifikasi. Karena data crawling dilakukan pada halaman kolom komentar video untuk konten akun YouTube Content Creator, Deddy Corbuzier, Dr.
Indrawan Nugroho, Sandiuno TV, dan Raymond Chin untuk mendapatkan data utama yang dianalisis adalah tentang sentimen publik terhadap metaverse, penelitian ini dapat diklasifikasikan sebagai penelitian text mining. Akibatnya, penulis merancang tahapan penelitian berikut:
Gambar 3. 1 Rancangan Penelitian
Berikut ini adalah deskripsi lengkap dari desain penelitian yang digunakan.
1. Mendefinisikan dan perumusaan Masalah
Pada tahap ini dilakukan perumusan masalah yang terjadi pada objek penelitian, serta penetapan tujuan penelitian. Uraian masalah peneliti berdasarkan
Mendefinisikan
rumusan masalah Studi pustaka Pengumpulan data
Pelabelan data Preprocessing
Proses menggunakan word2vec dan
TFIDF
Hasil Penelitian Kesimpulan dan saran
temuan studi tentang reaksi publik terhadap Metaverse di kolom komentar YouTube melalui jurnal.
2. Studi Pustaka
Tinjauan literatur dilakukan pada langkah ini, dengan tujuan memeriksa teori- teori yang terkait dengan penelitian ini menggunakan pendekatan SVM- WORD2VEC yang ditemukan dalam jurnal, buku, dan instruksi lainnya. Hasil dari tahap ini menyangkut definisi atau penjelasan dari konsep-konsep yang dibahas pada bagian landasan teori, seperti deskripsi Metaverse, YouTube, dan pendekatan SVM-WORD2VEC.
3. Pengumpulan Data
Data akan dikumpulkan dari kolom komentar YouTube Content Creator yang telah ditentukan saat ini. Data dikumpulkan menggunakan Google Spredsheet dan apps Script. Berikut adalah data mentah hasil Crawling data:
Komentar
1 Jujur ya.. Kalian mau apa enggak ada dunia gini?!
2 Saya sudah menjadi salah satu penduduk metaforce..join us UFT META FORCE SURABAYA...
3 kaga usah terlalu waow surprise sama siapapun termasuk profesor doktol ataupun kompressor coz metaverse adalah konsep jadul yg direview ulang oleh plagiat zuckenberg untuk nyari uang wkwkwk � <a href="https://youtu.be/zSmOvYzSeaQ">https://youtu.be/zSmOvYzSeaQ</a>
4 Kaga usah terlalu surprise dgn metaverse krn udah ada konsepnya sejak
tahun 1993 nih buktinya � <a
href="https://youtu.be/zSmOvYzSeaQ">https://youtu.be/zSmOvYzSeaQ</a>
5 Pelanet bekasi juga mengancam dompet saya ��
Gambar 3. 2 Data Mentah 4. Pelabelan Data
Informasi yang dikumpulkan selama proses analisis ini selanjutnya akan digunakan untuk mengatasi kesulitan yang telah ditimbulkan. Data komentar 5000
diberi label secara manual sebagai bagian dari proses pemberian tag untuk menentukan sentimen masyarakat yang bernilai positif dan negatif.
Hasil dari pelabelan pada Gambar 3.9 adalah sebagai berikut:
Komentar Label
1 Jujur ya.. Kalian mau apa enggak ada dunia gini?!
Negatif
2 Akibatnya kayak gitu lhooo Negatif
3 Kebanyakan nonton film fiksi Negatif
4 Penciptanya ngak salah.yang beli yang aneh Negatif 5 Itu berarti duitnya mereka tahan Rakyat nggak
di bantu.telor Kodok dibeli mahal Botak bayangkan
Negatif
Gambar 3. 3 Data Yang Sudah Di Beri Label 5. Preprocessing
Tujuan dari proses preprocessing adalah untuk mendapatkan data yang bersih sehingga proses pembuatan vektor kata dan klasifikasi sentimen menjadi lebih akurat (Styawati and Mustofa 2019). Tahapan berikutnya merupakan tahapan mengubah data text yang tidak terstruktur menjadi data text yang terstruktur. Pada tahap ini juga bertujuan untuk menyeragamkan kata dandapat mengurangi volume kata. Berikut adalah tahap preprocessing yang dapat dilihat Gambar 3.10.
Gambar 3. 4 Alur Preprocessing
Proses Preprocessing dilakukan agar data yang digunakan bersih, Sehingga hal ini perlu dilakukan seleksi untuk mempermudah analisis data dan data yang digunakan lebih terstruktur serta memiliki keseragaman untuk proses lebih lanjut.
Penulis menggunakan script Python untuk mempermudah dalam melakukan proses preprocessing.
a. Case Folding
Mengganti kalimat atau kata dokumen jadi lowercase. Tidak seluruh data teks pada dokumen bacaan konsisten dalam pemakaian huruf kapital. Oleh sebab itu, peran Case Folding diperlukan dalam mengonversi keseluruhan bacaan di dalam dokumen jadi sesuatu bentuk standar ialah mengganti seluruh teks di dalam dokumen menjadi huruf kecil. Berikut adalah contoh data mentah yang sudah di Case Folding dapat di lihat pada Table 3.1
Tabel 3. 1 Data Yang Sudah Di Case Folding
No Data set Hasil Casefolding
1. Wah.. Gawat nih kalo petani kita mengenal metaverse, lahannya dianggurin pilih nanam di lahan virtual 😅
wah.. gawat nih kalo petani kita mengenal metaverse, lahannya dianggurin pilih nanam di lahan virtual
😅
2. Teknologi adalah ancaman bagi orang yang merasa akan tergeser olehnya, tapi sebuah peluang bagi orang
yang mampu
memanfaatkannya semaksimal mungkin.
teknologi adalah ancaman bagi orang yang merasa akan tergeser olehnya, tapi sebuah peluang bagi orang yang mampu memanfaatkannya semaksimal mungkin.
3. Mungkin seandainya MetaVerse ini benar benar terwujud,alangkah baiknya MetaVerse ini digunakan untuk pendidikan berbasis digital
mungkin seandainya metaverse ini benar benar terwujud,alangkah baiknya metaverse ini digunakan untuk pendidikan berbasis digital
b. Tokenizing
Tahap Tokenizing merupakan sesi memecah suatu kalimat jadi kumpulan kata-kata ataupun pemotongan string input berdasarkan setiap kata yang menyusunnya. Teks dibagi menjadi kata-kata individualnya selama proses Tokenizing. Prosedur pemisahan teks ini digunakan untuk memudahkan pemeriksaan setiap kata. Berikut adalah data hasil casefolding yang sudah di Tokenizing dapat di lihat pada Table 3.2
Tabel 3. 2 Data Yang Sudah Di Tokenizing
No Hasil Casefolding Hasil Tokenizing
1. wah.. gawat nih kalo petani kita mengenal metaverse, lahannya dianggurin pilih nanam di lahan virtual 😅
wah,gawat,nih,kalo,petani,kita,mengen al,metaverse,lahannya,dianggurin,pilih, nanam,di,lahan,virtual,😅
2. teknologi adalah ancaman bagi orang yang merasa akan tergeser olehnya, tapi sebuah peluang bagi orang
yang mampu
memanfaatkannya semaksimal mungkin.
teknologi,adalah,ancaman,bagi,orang,y ang,merasa,akan,tergeser,olehnya,tapi,s ebuah,peluang,bagi,orang,yang,mampu, memanfaatkannya,semaksimal,mungki n.
3. mungkin seandainya metaverse ini benar benar terwujud,alangkah baiknya metaverse ini digunakan untuk pendidikan berbasis digital
mungkin,seandainya,metaverse,ini,bena r,benar,terwujud,alangkah,baiknya,meta verse,ini,digunakan,untuk,pendidikan,b erbasis,digital
c. Filtering
Tahap Filtering yakni sesi mengambil kata-kata bernilai dari hasil token.Pada sesi ini, bisa memakai 2 algoritma, ialah stoplist dan wordlist.
Stoplist merupakan membuang kata yang kurang berarti/bernilai sebaliknya wordlist merupakan menyimpan kata bernilai. Contoh stopwords ialah ―yang‖
,‖dan‖ ,‖di‖ ,‖dari‖. Menurut Kamus Besar Bahasa Indonesia, istilah-istilah yang sering kurang bermakna atau tidak baku ke dalam bentuk baku dihilangkan pada tahap penyaringan (KBBI). Berikut adalah data hasil Tokenizing yang sudah di Filtering dapat di lihat pada Table 3.3
Tabel 3. 3 Data Yang Sudah Di Filtering
No Hasil Tokenizing Hasil Filtering
1. wah,gawat,nih,kalo,petani,k ita,mengenal,metaverse,laha nnya,dianggurin,pilih,nana m,di,lahan,virtual,😅
gawat,nih,kalo,tani,kenal,metaverse,lah an,dianggurin,pilih,nanam,lahan,virtual
2. teknologi,adalah,ancaman,b agi,orang,yang,merasa,akan, tergeser,olehnya,tapi,sebuah ,peluang,bagi,orang,yang,m ampu,memanfaatkannya,se maksimal,mungkin.
teknologi,ancam,orang,geser,peluang,or ang,manfaat,maksimal
3. mungkin,seandainya,metave rse,ini,benar,benar,terwujud ,alangkah,baiknya,metavers e,ini.
anda,metaverse,terwujudalangkah,baik, metaverse,didik,bas,digital
d. Stemming
Tahap Stemming yaitu sesi dimana melaksanakan pengelompokan kata- kata yang mempunyai kata dasar serta makna yang serupa akan tetapi mempunyai bentuk atau form yang berbeda dikarenakan mendapatkan imbuhan yang berbeda. Menghapus imbuhan sebelum dan sesudah setiap kata yang disaring untuk mengungkapkan kata-kata dasarnya selama proses Stemming. Berikut adalah data hasil Filtering yang sudah di Stemming dapat di lihat pada Table 3.4.
Tabel 3. 4 Contoh Data Yang Sudah Stemming
No Hasil Filtering Hasil Stemming
1. gawat,nih,kalo,tani,kenal,me taverse,lahan,dianggurin,pili h,nanam,lahan,virtual
gawat nih kalo tani kenal metaverse lahan dianggurin pilih nanam lahan virtual
2. teknologi,ancam,orang,gese r,peluang,orang,manfaat,ma ksimal
teknologi ancam orang geser peluang orang manfaat maksimal
3. anda,metaverse,terwujudala ngkah,baik,metaverse,didik, bas,digital
anda metaverse wujud alangkah baik metaverse didik bas digital
6. Hitung manual Word2Vec
Perhitungan manual Word2Vec melibatkan beberapa langkah untuk menghasilkan representasi vektor kata. Ada dua model utama dalam Word2Vec:
Continuous Bag of Words (CBOW) dan Skip-Gram. Berikut adalah contoh perhitungan manual menggunakan model Skip-Gram:
a. Persiapan data training
Misalkan kita memiliki kalimat berikut: "I love natural language processing."
b. Pembentukan vocabulary
Buatlah daftar unik dari kata-kata yang muncul dalam kalimat. Dalam contoh ini, vocabulary akan terdiri dari: [I, love, natural, language, processing]
c. Pembentukan pasangan kata-konteks
Untuk setiap kata dalam kalimat, buatlah pasangan kata-konteks dengan jendela konteks yang ditentukan sebelumnya. Misalkan jendela konteks memiliki ukuran 2. Maka pasangan kata-konteks yang dihasilkan adalah:
[(love, I), (love, natural), (natural, love), (natural, language), (language, natural), (language, processing), (processing, language)]
d. Inisialisasi vektor kata dan vektor konteks
Tentukan dimensi vektor yang diinginkan, misalnya d=5. Kemudian, inisialisasikan vektor kata dan vektor konteks dengan nilai acak. Misalkan kita memiliki vektor kata dan vektor konteks awal seperti berikut:
vektor kata:
love: [0.2, 0.4, -0.1, 0.7, 0.5]
natural: [0.1, 0.6, -0.3, 0.2, -0.4]
language: [-0.2, -0.1, 0.5, 0.3, -0.6]
processing: [0.4, -0.3, 0.7, -0.2, 0.1]
vektor konteks:
I: [0.3, 0.1, 0.7, -0.2, 0.6]
love: [0.2, 0.4, -0.1, 0.7, 0.5]
natural: [0.1, 0.6, -0.3, 0.2, -0.4]
language: [-0.2, -0.1, 0.5, 0.3, -0.6]
e. Perhitungan probabilitas konteks
Untuk setiap pasangan kata-konteks, hitung probabilitas menggunakan rumus softmax. Misalkan kita menggunakan fungsi Sigmoid sebagai fungsi
softmax. Dalam contoh ini, untuk pasangan kata-konteks (love, I), hitung probabilitas dengan mengalikan vektor kata dan vektor konteks dan menggunakan fungsi Sigmoid:
P(I|love) = Sigmoid(love * I) = Sigmoid([0.2, 0.4, -0.1, 0.7, 0.5] * [0.3, 0.1, 0.7, -0.2, 0.6])
*Lakukan perhitungan yang serupa untuk semua pasangan kata-konteks.
f. Perhitungan gradien
Setelah menghitung probabilitas konteks, selanjutnya adalah menghitung gradien dengan menggunakan metode backpropagation. Dalam metode backpropagation, perbandingan antara probabilitas prediksi dan konteks sebenarnya digunakan untuk memperbarui vektor kata dan vektor konteks.
Rincian perhitungan gradien lebih kompleks dan melibatkan beberapa langkah yang lebih dalam.
g. Pembaruan vektor kata dan vektor konteks
Setelah menghitung gradien, gunakan algoritma pembelajaran seperti stochastic gradient descent (SGD) untuk memperbarui vektor kata dan vektor konteks. Pembaruan dilakukan berulang kali dengan meminimalkan fungsi kerugian atau error.
h. Mengulangi langkah 5-7
langkah 5 hingga 7 secara berulang untuk beberapa iterasi atau hingga mencapai konvergensi.
Perhitungan manual Word2Vec yang disajikan di atas hanya contoh sederhana untuk memberikan gambaran tentang konsep dan proses di balik Word2Vec.
7. Perhitungan manual TF-IDF
Perhitungan manual TF-IDF melibatkan beberapa langkah untuk menghasilkan bobot TF-IDF dari suatu kata dalam sebuah dokumen. Berikut adalah contoh perhitungan manual menggunakan metode TF-IDF:
a. Persiapan data
Misalkan kita memiliki sebuah dokumen sebagai contoh, yaitu:
"Dokumen ini berisi tentang pengolahan bahasa alami."
b. Pembentukan vocabulary
Buatlah daftar unik dari kata-kata yang muncul dalam dokumen. Dalam contoh ini, vocabulary akan terdiri dari: [dokumen, ini, berisi, tentang, pengolahan, bahasa, alami]
c. Menghitung Term Frequency (TF)
Untuk setiap kata dalam vocabulary, hitung frekuensi kemunculan kata tersebut dalam dokumen. Misalkan frekuensi kata-kata dalam dokumen adalah sebagai berikut:
1. dokumen: 1 2. ini: 1 3. berisi: 1 4. tentang: 1 5. pengolahan: 1 6. bahasa: 1 7. alami: 1
d. Menghitung Document Frequency (DF)
Untuk setiap kata dalam vocabulary, hitung jumlah dokumen yang mengandung kata tersebut. Misalkan kita memiliki satu dokumen, jadi DF untuk setiap kata adalah:
dokumen: 1 1. ini: 1 2. berisi: 1 3. tentang: 1 4. pengolahan: 1
5. bahasa: 1 6. alami: 1
e. Menghitung Inverse Document Frequency (IDF)
Untuk setiap kata dalam vocabulary, hitung IDF menggunakan rumus:
IDF = log(N / (DF + 1))
di mana N adalah jumlah total dokumen. Dalam contoh ini, N=1. Jadi, IDF untuk setiap kata adalah:
1. dokumen: log(1 / (1 + 1)) = 0 2. ini: log(1 / (1 + 1)) = 0 3. berisi: log(1 / (1 + 1)) = 0 4. tentang: log(1 / (1 + 1)) = 0 5. pengolahan: log(1 / (1 + 1)) = 0 6. bahasa: log(1 / (1 + 1)) = 0 7. alami: log(1 / (1 + 1)) = 0 f. Menghitung TF-IDF
Untuk setiap kata dalam vocabulary, hitung bobot TF-IDF dengan mengalikan TF dengan IDF. Misalkan bobot TF-IDF untuk setiap kata adalah:
1. dokumen: 1 * 0 = 0 2. ini: 1 * 0 = 0 3. berisi: 1 * 0 = 0 4. tentang: 1 * 0 = 0 5. pengolahan: 1 * 0 = 0 6. bahasa: 1 * 0 = 0 7. alami: 1 * 0 = 0
Dalam contoh ini, semua bobot TF-IDF adalah 0 karena hanya terdapat satu dokumen dan setiap kata muncul hanya sekali dalam dokumen tersebut.
Perhitungan manual TF-IDF yang disajikan di atas hanya contoh sederhana untuk memberikan gambaran tentang konsep dan proses di balik TF-IDF.
g. Hasil Penelitian
Dalam penelitian ini, hasil yang diinginkan adalah apakah tes yang diproses akan menghasilkan temuan yang optimal atau suboptimal. Pengujian menggunakan SVM-WORD2VEC dan SVM-TFIDF sangat penting dalam menentukan kategorisasi opini publik pada metaverse di kolom komentar YouTube, sehingga optimal.
h. Kesimpulan dan Saran
Pada tahapan ini merupakan bagian penetu kesimpulan terhadap hasil dari penelitian yang telah dilakukan. Hal ini memiliki tujuan untuk mengetahui apakah penerapan algoritma yang telah dilakukan menggunakan metode SVM– Word2Vec berhasil serta dapat bermanfaat. Pada bagian saran dalam penelitian ini merupakan gambaran kemungkinan pengembangan bagi penelitian berikutnya.
HASIL DAN PEMBAHASAN 4.1 Pengumpulan Data
Langkah pertama adalah mengumpulkan informasi berupa komentar orang Indonesia kepada penyedia konten video yang memperdebatkan Metaverse yang dipilih. Google Sheets, Youtube API, dan Javascript semuanya digunakan dalam prosedur ini.
function scrapeCommentsWithoutReplies(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var result=[['Name','Comment','Time','Likes','Reply Count']];
var vid = ss.getSheets()[0].getRange(1,1).getValue();
var nextPageToken=undefined;
Gambar 4. 1 Pengumpulan Data Tanpa Replay
Baris 1-5 berfungsi untuk crawling data dari komentar youtube menuju spreadsheet secara otomatis hanya mengambil data tanpa Replay. Pengumpulan data dengan mengambil id dari video Youtube Content creator yang akan diambil data komentarnya.
Gambar 4. 2 Copy Id Youtube
Lalu tempel kan id youtube ke google spreadsheet, dan pilih Apps Script untuk memproses pengambilan data komentar secara automatis.
Gambar 4. 3 Peroses Pengambilan Data Menggunakan Apps Script Menambah layanan YouTubeAnalytics API untuk mengaktifkan API agar Code dapat dijalankan.
Gambar 4. 4 Peroses Menambahkan Layanan Youtubeanalytics API
Baris Code pada Gambar 4.1 kemudian dijalankan menggunakan add-on Google Spreadsheet atau kemampuan Apps Script yang terletak di menu ekstensi. Namun, sebelum mengeksekusi Code pada Gambar 4.1 terlebih dahulu mengaktifkan YouTubeAnalytics API. Berikut adalah hasil pengumpulan data menggunakan add-on google spreadsheet
Gambar 4. 5 Hasil Pengumpulan Data Mentah
4.2 Pelabelan Data
Data komentar 5000 diberi label secara manual sebagai bagian dari proses pemberian tag. Label positif dan negatif diterapkan pada titik ini. Alat di Google Spreadsheet digunakan untuk melakukan pelabelan. Hasil dari pelabelan pada Gambar 4.6 adalah sebagai berikut.
Gambar 4. 6 Hasil Pelabelan Data 4.3 Code Cleansing
Tanda baca, tautan url, nama pengguna, tanda hash (#), karakter, dan simbol khusus lainnya yang tidak ada hubungannya dengan proses analisis sentimen dihilangkan selama langkah pembersihan. Baris Code berikut mengontrol prosedur pembersihan text.
def cleaningText(text):
text = re.sub(r'@[A-Za-z0-9]+', '', text) text = re.sub(r'#[A-Za-z0-9]+', '', text) text = re.sub(r'[0-9]+', '', text)
text = text.replace('<br>', ' ')
text = text.translate(str.maketrans('', '', string.punctua tion))
text = text.strip(' ') return text
data['Comment_Bersih'] = data['Comment_Bersih'].apply(cleani ngText)
Gambar 4. 7 Code Cleansing
Metode cleaningText(teks) dalam baris Code berguna untuk menghilangkan referensi, angka, tanda baca, spasi yang tidak perlu, koneksi URL, dan simbol
pembeda lainnya yang dianggap tidak relevan. seperti pada data ['Comment Bersih'] = data['Comment Bersih'] pada Code. Apply(cleaningText) digunakan untuk memanggil fungsi pembersihan yang dihasilkan.
4.4 Code Case Folding
Data komentar diubah menjadi huruf kecil selama proses Case Folding.
Berikut ini adalah baris Code untuk prosedur Case Folding.
def casefoldingText(text):
lower = text.lower() return lower
data['Comment_Bersih'] = data['Comment'].apply(casefoldingTe xt)
Gambar 4. 8 Code Case Folding
Fungsi dari Case Folding ialah untuk mengubah semua data komentar menjadi huruf kecil pada baris 1 sampai 5.
4.5 Code Tokenizing
Teks dibagi menjadi kata-kata individualnya selama proses Tokenizing.
Prosedur pemisahan teks ini digunakan untuk memudahkan pemeriksaan setiap kata. Berikut adalah baris Code yang digunakan dalam prosedur Tokenizing:
def TokenizingText(text):
tokenize = word_tokenize(text) return tokenize
data['Comment_Tokenizing'] = data['Comment_Bersih'].apply(tok enizingText)
Gambar 4. 9 Code Tokenizing
Tujuan dari baris 1 sampai 5 dari Code Gambar 4.9 adalah untuk menguraikan pernyataan menjadi kata-kata komponennya.
4.6 Code Filtering
Menurut Kamus Besar Bahasa Indonesia, istilah-istilah yang sering kurang bermakna atau tidak baku ke dalam bentuk baku dihilangkan pada tahap penyaringan (KBBI). Baris Code yang digunakan dalam prosedur penyaringan adalah sebagai berikut.
from nltk.corpus import stopwords
list_stopwords = stopwords.words('indonesian') def stopwords_removal(words):
return [word for word in words if word not in list_stopwords]
data['Comment_Tokenizing'] = data['Comment_Tokenizing'].apply(sto pwords_removal)
Gambar 4. 10 Code Filtering
Daftar Code stopwords = stopwords.words('indonesian') di Code sebenarnya berfungsi dengan paket nltk Indonesian stopwords.
4.7 Code Stemming
Menghapus imbuhan sebelum dan sesudah setiap kata yang disaring untuk mengungkapkan kata-kata dasarnya selama proses Stemming. Berikut adalah baris Code yang digunakan dalam prosedur Stemming:
def StemmingText(text):
factory = StemmerFactory()
stemmer = factory.create_stemmer()
text = [stemmer.stem(word) for word in text]
return text
data['Comment_Tokenizing'] = data['Comment_Tokenizing'].apply (StemmingText)
Gambar 4. 11 Code Stemming
Stemming dilakukan dengan menggunakan Code di atas. Semua kata dengan imbuhan akan dikonversi ke bentuk akarnya.
4.8 Pembuatan Model Word2Vec
Proses membangun model Word2Vec esoteris sedang dilakukan. Prosedur ini menggunakan gensim perpustakaan. Untuk melakukan proses pelatihan, Word2Vec memerlukan beberapa parameter, antara lain size, yaitu vector panjang, window, yang digunakan untuk menentukan apakah suatu kata yang diberikan merupakan tetangga target atau kata konteks, sg.
Gambar 4. 12 Hasil Pemodelan Word2Vec
Yang digunakan untuk menentukan apakah kata yang diberikan adalah Skip-Gram, kemudian nilai, yang digunakan untuk menentukan apakah kata tersebut merupakan rangkaian kata yang berkesinambungan, dan pekerja.
Bagaimanapun, Code bangunan untuk model Word2Vec adalah sebagai berikut:
model_w2v = gensim.models.Word2Vec(
data['Comment_Stemming'], size=200,
window=5, min_count=2, sg = 1, hs = 0,
negative = 10, workers= 32, seed = 34
Gambar 4. 13 Code Word2Vec
4.9 Pembobotan TF-IDF
Istilah pembobotan adalah proses menetapkan nilai untuk setiap istilah yang ditemukan di setiap bagian dari data komentar yang telah diproses sebelumnya. Pendekatan TF-IDF digunakan untuk menimbang kata-kata dalam investigasi ini. Tujuan dari prosedur pembobotan adalah untuk memberikan setiap frase nilai yang akan digunakan sebagai masukan selama fase kategorisasi.
Implementasi pemberian bobot pada data terlihat pada baris Code berikut.
from sklearn.feature_extraction.text import TfidfVectorizer Tfidf_vect = TfidfVectorizer(max_features=5000)
Tfidf_vect.fit(data['Comment_Stemming']) Train_X_Tfidf = Tfidf_vect.transform(Train_X) Test_X_Tfidf = Tfidf_vect.transform(Test_X) print(Test_X_Tfidf)
print(Train_X_Tfidf)
Gambar 4. 14 Code Pembobotan TF-IDF 4.10 SMOTE (Synthetic Minority Over-sampling Technique)
Dataset yang digunakan dalam penelitian ini tidak merata di seluruh kelas negatif dan positif, dengan lebih banyak data di kelas negatif daripada di kelas positif. SMOTE merupakan teknik oversampling yang menghasilkan data fiktif untuk meningkatkan kuantitas data pada kelas minor hingga sama dengan kelas mayor. Jadi masalah overfitting akan dihindari.
y res = smooth ditulis dalam baris Code X res. Fit resample() melakukan oversampling data yang tidak seimbang.
Gambar 4. 15 Code SMOTE 4.11 Undersampling
Kumpulan metode yang dikenal sebagai Undersampling digunakan untuk menyeimbangkan distribusi kelas dalam kumpulan data klasifikasi di mana distribusi kelas silang. Satu atau lebih kelas dengan sedikit contoh (kelas minoritas) dan satu atau lebih kelas dengan banyak contoh akan membuat
SMOTE = SMOTE(random_state=42)
X_res, y_res = SMOTE.fit_resample(X, y)