• Tidak ada hasil yang ditemukan

PRE-TRAINED WORD VECTOR BAHASA INDONESIA GENERATION DENGAN MENGGUNAKAN WORD2VEC UNTUK BIDANG KOMPUTER DAN TEKNOLOGI INFORMASI SKRIPSI

N/A
N/A
Protected

Academic year: 2022

Membagikan "PRE-TRAINED WORD VECTOR BAHASA INDONESIA GENERATION DENGAN MENGGUNAKAN WORD2VEC UNTUK BIDANG KOMPUTER DAN TEKNOLOGI INFORMASI SKRIPSI"

Copied!
91
0
0

Teks penuh

(1)PRE-TRAINED WORD VECTOR BAHASA INDONESIA GENERATION DENGAN MENGGUNAKAN WORD2VEC UNTUK BIDANG KOMPUTER DAN TEKNOLOGI INFORMASI. SKRIPSI. SYARIFAH KEMALA PUTRI 161401110. PROGRAM STUDI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2020.

(2) PRE-TRAINED WORD VECTOR BAHASA INDONESIA GENERATION DENGAN MENGGUNAKAN WORD2VEC UNTUK BIDANG KOMPUTER DAN TEKNOLOGI INFORMASI. SKRIPSI Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Komputer. SYARIFAH KEMALA PUTRI 161401110. PROGRAM STUDI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2020.

(3) ii.

(4) iii. PERNYATAAN. PRE-TRAINED WORD VECTOR BAHASA INDONESIA GENERATION DENGAN MENGGUNAKAN WORD2VEC UNTUK BIDANG KOMPUTER DAN TEKNOLOGI INFORMASI. SKRIPSI. Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya. Medan, September 2020. Syarifah Kemala Putri 161401110.

(5) iv. UCAPAN TERIMA KASIH. Puji dan syukur penulis ucapkan ke hadirat Allah SWT, karena rahmat dan kuasaNya, penulis dapat menyelesaikan penyusunan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara. Penulis ingin menyampaikan rasa hormat dan terima kasih yang sebesar-besarnya kepada: 1. Prof. Dr. Runtung Sitepu, SH, M.Hum selaku Rektor Universitas Sumatera Utara 2. Prof. Dr. Opim Salim SItompul M.Sc selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara. 3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara 4. Bapak Herriyance, S.Kom, M.Kom selaku dosen Pembimbing Akademik yang telah memberikan nasihat, arahan dan motivasi kepada penulis selama menempuh perkuliahan. 5. Ibu Amalia, S.T., M.T selaku dosen pembimbing I yang telah memberikan bimbingan, kritik, motivasi, dan saran kepada penulis dalam menyelesaikan skripsi ini. 6. Ibu Dr. Erna Budhiarti Nababan, M.IT selaku dosen pembimbing II yang telah memberikan bimbingan, kritik, motivasi, dan saran kepada penulis dalam menyelesaikan skripsi ini. 7. Seluruh tenaga pengajar dan pegawai di Fakultas Ilmu Komputer dan Teknologi Informasi USU yang telah membantu penulis dalam proses pembuatan skripsi 8. Kedua orangtua penulis Said Arif Fadillah dan Rita Susilawati, yang senantiasa mendoakan dan memberikan dukungan serta memberikan motivasi kepada penulis selama proses mengerjakan skripsi ini..

(6) v. 9. Abang dan adik tercinta Said Muhamad Rifad dan Syarifah Jasmine Putri yang selalu mendukung penulis dalam proses penyelesaian pengerjaan skripsi. 10. Abdul Azis tercinta yang selalu setia mendukung dan membantu penulis dalam proses pengerjaan skripsi. 11. Teman-teman seperjuangan Selina, Mega, Indah, Nazli, Fia, Moza, Mirta, Dhea, Anissa, Silvi, Azizah, Ika. Serta teman-teman lain yang tidak bisa saya sebutkan satu per satu. 12. Teman-teman di Ilmu Komputer Laboratory Center (IKLC) USU yang telah menyemangati, memberi saran, serta menginspirasi penulis 13. Teman-teman seluruh keluarga besar Kom B angkatan 2016 Ilmu Komputer Universitas Sumatera Utara yang telah banyak memberi motivasi kepada penulis. 14. Abang dan kakak stambuk 2015 dan 2014 yang telah membantu penulis dalam pengerjaan skripsi. 15. Dan semua pihak yang telah memabantu dan menyemangati yang tidak dapat disebutkan satu per satu. Semoga Allah SWT melimpahkan berkah kepada semua pihak yang telah memberikan bantuan, semangat, perhatian, serta dukungan kepada penulis dalam menyelesaikan skripsi ini. Semoga skripsi ini bermanfaat bagi pribadi, keluarga, masyarakat, organisasi dan negara.. Medan, September 2020. Penulis.

(7) vi. ABSTRAK. Word embedding atau distributed representation menjadi metode yang populer untuk merepresentasikan kata dimana nilai vektor yang dihasilkan berupa sekumpulan nilai real dengan dimensi tertentu yang lebih efesien daripada metode bag of word. Selain itu, kelebihan distributed representation mampu menghasilkan word vector yang mengandung informasi semantik dan sintaksis, sehingga word vector kata dengan arti yang dekat akan memiliki word vector yang dekat pula. Namun distributed representation membutuhkan korpus yang sangat besar dengan waktu training yang lama. Untuk itu banyak peniliti yang telah membuat pretrained word vector untuk dapat digunakan berulang kali. Permasalahannya pretrained word vector yang tersedia biasanya merupakan word vector untuk domain umum. Penelitian ini bertujuan untuk membentuk pre-trained word vector untuk domain khusus yaitu bidang komputer dan teknologi informasi. Peneliti menggunakan dataset karya ilmiah mahasiswa dari repositori Universitas Sumatera Utara (USU). Peneliti menggunakan model word2vec dimana model tersebut memiliki dua arsitektur yaitu Continuous Bag-of-Words (CBOW) dan Skip-gram. Hasil dari penelitian ini adalah model word2vec dengan metode CBOW lebih efektif dibandingkan dengan metode skip-gram. Kata Kunci : Word embedding, Word2vec, CBOW dan Skip-gram.

(8) vii. PRE-TRAINED VECTOR OF INDONESIAN LANGUAGE GENERATION USING WORD2VEC FOR COMPUTER AND INFORMATION TECHNOLOGY. ABSTRACT Words embedding or distributed representations is a popular method for representing words where the resulting vector value is a set of real values with certain dimensions that are more effective than bag of word method. In addition, the advantages of distributed representations are able to produce word vectors that contain semantic and syntactic information, so that word vectors with close meanings will have close word vectors as well. However, distributed representation requires a very large corpus with long training time. For this reason, many researchers have created trained word vectors that can be used repeatedly. The problem is that the available trained word vectors are usually general domain word vectors. This study aims to form pre-trained word vectors for specific domains, namely computers and information technology. Researchers used a dataset of student scientific papers from the repository of the University of North Sumatra (USU). Researchers used the word2vec model where the model has two architectures, namely the Continuous Bag-of-Words (CBOW) and Skip-gram. The result of this research is word2vec model with CBOW method is more effective than skip-gram method. Keyword : Word embedding, Word2vec, CBOW dan Skip-gram.

(9) viii. DAFTAR ISI. Halaman Persetujuan. ii. Penyataan. iii. Penghargaan. iv. Abstrak. vi. Abstract. vii. Daftar Isi. viii. Daftar Tabel. xi. Daftar Gambar. xii. Daftar Lampiran. xiii. Bab 1. Bab 2. Pendahuluan 1.1 Latar Belakang. 1. 1.2 Rumusan Masalah. 3. 1.3 Batasan Masalah. 4. 1.4 Tujuan Penelitian. 4. 1.5 Manfaat Penelitian. 4. 1.6 Metodologi Penelitian. 4. 1.7 Sistematika Penulisan. 5. Landasan Teori 2.1 Kecerdasan Buatan (Artificial Intelligence). 7. 2.2 Machine Learning. 8. 2.3 Deep Learning. 9. 2.4 Neural Network. 10. 2.4.1. Proses Training. 14. 2.5 Word Embedding. 17. 2.6 Penelitian Relevan. 26.

(10) ix. Bab 3. Analisis Perancangan 3.1 Arsitektur Umum. 29. 3.2 Dataset. 30. 3.2.1. Request Dataset. 30. 3.2.2. Ambil Link Dokumen PDF. 30. 3.2.3. Download File PDF. 31. 3.3 Pre-Processing Dataset 3.3.1. Ekstrak PDF. 31. 3.3.2. Merge File. 32. 3.3.3. Data Cleaning. 32. 3.3.4. Case Folding. 33. 3.3.5. Sentence Tokenize. 33. 3.3.6. Split Word. 34. 3.4 Training. 34. 3.4.1. Window Size. 35. 3.4.2. Training CBOW dan Softmax. 35. 3.4.3. Training Skip-gram dan Negative Sampling. 36. 3.5 Hasil Training. 38. 3.6 Penerapan Algoritma Pada Penelitian. 38. 3.6.1. Penjelasan Algortima CBOW. 38. 3.6.2. Forward Propagation. 39. 3.6.3. Error Calculation. 39. 3.6.4. Back Propagation. 40. 3.7 Penjelasan Algoritma Skip-gram. Bab 4. 31. 40. 3.7.1. Penjelasan Algortima Skip-gram. 40. 3.7.2. Forward Propagation. 40. 3.7.3. Error Calculation. 40. 3.7.4. Back Propagation. 41. Implementasi dan Pengujian 4.1 Implementasi Sistem 4.1.1. Spesifikasi Perangkat Keras. 39 39.

(11) x. 4.1.2. Bab 5. Spesifikasi Perangkat Lunak. 39. 4.2 Implementasi Web Scrapping. 40. 4.3 Implementasi Word Embedding. 42. 4.3.1. Pengujian Continuous Bag-of-Words. 44. 4.3.2. Pengujian Skip-Gram. 47. 4.4 Pengujian Sistem. 50. Kesimpulan dan Saran. 61. 5.1 Kesimpulan. 61. 5.2 Saran. 61. Daftar Pustaka. 63.

(12) xi. DAFTAR TABEL. Halaman Tabel 3.1. Contoh Case Folding. 33. Tabel 3.2. Contoh Sentence Tokenize. 34. Tabel 3.3. Contoh Split Word. 34. Tabel 3.4. One-hot Encoding. 35. Tabel 4.1. Daftar kata yang berkaitan dengan bidang ilmu. 44. Tabel 4.2. Pengujian Metode CBOW dan Hierarki Softmax dimensi 300. 44. Tabel 4.3. Jumlah Memori dan Lama Waktu Training. 45. Tabel 4.4. Pengujian Metode Skip-gram dan NS dimensi 300. 46. Tabel 4.5. Jumlah Memori dan Lama Waktu Training. 47. Tabel 4.6. Pengujian Metode Skip-gram dan Negative Sampling. 47. Tabel 4.7. Pengujian Metode CBOW dan Hierarki Softmax. 49. Tabel 4.8. Cosine Similarity Metode CBOW dan Hierarki Softmax. 52. Tabel 4.9. Perbandingan Pre-trained Peneliti dan Pre-trained Wikipedia. 53. Tabel 4.10. Perbandingan Pre-trained Peneliti dan KBBI. 54. Tabel 4.11. Hasil Perbandingan Cosine Similiarity Antar dua Pretrained. 56. Tabel 4.12. Hasil Perbandingan Cosine Similiarity Antar dua Pretrained. 58.

(13) xii. DAFTAR GAMBAR. Halaman Gambar 2.4.1. Jaringan Syaraf Tiruan. 11. Gambar 2.4.2. Grafik Sigmoid Function. 12. Gambar 2.4.3. Grafik Fungsi Tanh. 13. Gambar 2.4.4. Proses Back Pass (Backpropagation). 16. Gambar 2.5.1. Contoh Vektor One-hot. 18. Gambar 2.5.2. Perubahan vektor one-hot-encoding menjadi vektor WE. 19. Gambar 2.5.3. Ilustrasi CBOW. 21. Gambar 2.5.4. Arsitektur CBOW untuk banyak kata. 22. Gambar 2.5.5. Ilustrasi Skip-gram. 22. Gambar 2.5.6. Ilustrasi Skip-gram untuk banyak kata. 23. Gambar 2.5.7. Hierarki Softmax. 24. Gambar 2.5.8. Ilustrasi Softmax dalam bentuk tree. 24. Gambar 2.5.9. Ilustrasi Hierarki Softmax. 25. Gambar 3.1. Arsitektur Umum Sistem. 30. Gambar 3.2. Hasil ekstrak isi PDF ke format txt. 32. Gambar 3.3. Contoh Noise dalam dataset. 33. Gambar 3.4. Arsitektur Model CBOW dan Hierarki Softmax. 36. Gambar 3.5. Arsitektur Model Skip-gram dan Negative Sampling. 37. Gambar 4.1. Scrapping Link Pertama. 40. Gambar 4.2. Scrapping Link Kedua. 41. Gambar 4.3. Hasil Scrapping Link Pertama. 42. Gambar 4.4. Hasil Scrapping Link Kedua. 42. Gambar 4.5. Vektor Kata dalam Bentuk 2 Dimensi. 43. Gambar 4.6. Diagram Venn Dua Metode Word Embedding. 55. Gambar 4.7. Visualisasi Word Embedding. 56.

(14) xii. DAFTAR LAMPIRAN. Halaman Lampiran 1. Hasil Kuesioner. A-1. Lampiran 2. Curriculum Vitae. B-1.

(15) BAB I. PENDAHULUAN. 1.1 Latar Belakang Pertumbuhan teknologi digital yang semakin pesat, khususnya pada bidang kecerdasan buatan (Artificial Intelligence). Teknologi kecerdasan buatan semakin ramai dibahas dalam berbagai diskusi teknologi di seluruh dunia salah satunya dengan pemanfaatan kecerdasan buatan di bidang Natural Language Processing (NLP). NLP bertujuan agar sistem komputer dapat memahami arti dari suatu bahasa alami. Contoh sederhana dari aplikasi NLP adalah kemampuan otomatis suatu sistem untuk mengelompokkan dokumen sesuai dengan kategorinya. Teknik NLP yang menggunakan rule based system tidak efektif karena membutuhkan banyak waktu dan tenaga manusia. Salah satu cara yang popular saat ini adalah machine learning dimana proses pengelompokkan teks seperti klasifikasi, klasterisasi, regresi liniear dilakukan berdasarkan contoh dari data training. Tahap awal, machine learning adalah dengan mengubah representasi kata menjadi vektor. Tahap ini dapat dilakukan dengan menggunakan metode bag of word seperti one hot representation. Pada one hot representation setiap satu kata yang ditemukan dari dokumen di ubah menjadi vector dengan nilai 1 dan sisanya bernilai 0 dimana panjang vektor sesuai dengan jumlah vocabulary. Namun metode ini tidak dapat menangkap semantik dan sintaksis dan memiliki dimensi sebanyak jumlah vocabulary pada korpus. Berbeda dengan metode distributed representation yang dikenal dengan istilah word embedding, dimana metode ini menghasilkan word vector dengan proses pendekatan neural network. Word embedding adalah sebuah metode untuk merepresentasikan kata menjadi bentuk vektor dengan bilangan real.

(16) 2. dimana kelebihan dari word embedding adalah mampu menghitung seberapa besar nilai vektor kata-kata berdasarkan kedekatan relevansinya sehingga word embedding akan menjadi cikal bakal tugas-tugas NLP selanjutnya seperti klasterisasi, klasifikasi dan sebagainya. Word embedding pertama kali diperkenalkan oleh Thomas Mikolov pada tahun 2013. Nilai word vector yang dihasilkan berupa matrik dengan membawa banyak informasi seperti informasi semantik, sintaksis dan juga kedekatan antar kata (Young, 2018). Untuk kata yang memiliki arti yang mirip maka akan mempunyai word vector yang dekat pula. Proses training word vector dengan word embedding membutuhkan dataset yang besar dan memakan waktu yang lama. Namun keuntungan membangun hasil training word embedding yang dikenal dengan pre-trained word vector dapat digunakan berulang kali untuk tugas NLP lainnya seperti klasifikasi, klasterisasi, dan lain sebagainya. Oleh sebab itu banyak peneliti terdahulu dan juga perusahaan besar seperti Facebook, Google yang telah menyediakan pre-trained word vector siap pakai, namun sebagian besar pretrained yang di sediakan hanya untuk domain umum dan dalam Bahasa Inggris. Kebanyakan pre-trained di hasilkan dari korpus yang dihasilkan berdasarkan ribuan artikel Wikipedia1 dan juga dari Google News2 seperti pre-trained yang dibuat oleh Tom Kocmi pada tahun 2017 dengan menggunakan dataset Wikipedia, peneliti menggunakan word2vec dan Glove dalam proses pembuatan pre-trained. Walaupun, sebagian besar pre-trained yang dihasilkan adalah untuk Bahasa Inggris, namun beberapa penelitian telah membuat pre-trained untuk bahasa lainnya seperti Bahasa Indonesia. Rami Al-Rfou telah membangun pre-trained untuk banyak bahasa termasuk Bahasa Indonesia. Studi ini membangun pretrained word vector dari hasil transalasi Wikipedia untuk banyak bahasa. Oleh sebab itu pre-trained untuk Bahasa Indonesia yang dihasilkan merupakan pretrained untuk domain umum. Permasalahannya belum ada penelitian mendalam apakah pre-trained ini juga mampu menangkap semantik dan sintaksis untuk domain khusus seperti dokumen tentang Ilmu Komputer dan Teknologi Informasi. Hal ini disebabkan dataset training dari Wikipedia tidak banyak yang merupakan artikel khusus untuk bidang ilmu komputer dan teknologi informasi. 1. https://id.wikipedia.org 2 https://code.google.com/archive/p/word2vec/.

(17) 1. Berbeda dengan penelitian Rami Al-Rfou pada tahun 2014 yang membentuk word vector untuk 100 Bahasa salah satunya Bahasa Indonesia dari Wikipedia menggunakan word2vec. Berdasarkan hal ini, maka pada penelitian ini dibangun pre-trained word vector untuk Bahasa Indonesia khusus untuk bidang Ilmu Komputer dan Teknologi Informasi. Evaluasi untuk melihat seberapa baik pre-trained word vector yang dihasilkan yaitu dengan kedekatan antar word vector yang dihasilkan misalkan kata “kompresi” seberapa dekat dengan kata “dekripsi”. Selain Word2vec, ada metode lain yang cukup terkenal untuk merepresentasikan kata, yaitu Glove. Glove adalah model representasi kata yang diciptakan oleh Stanford. Word2vec memprediksi kata dengan menghitung kata-kata target dengan konteksnya dan mengabaikan beberapa kata konteks yang sering muncul sedangkan Glove memprediksi dengan menghitung semua kata secara global. Penelitian yang dilakukan Muneeb dan koleganya pada tahun 2015 menghasilkan nilai korelasi cosine similarity word2vec dengan metode skipgram lebih besar daripada Glove. Alasan peneliti menggunakan word2vec dikarenakan banyak peneliti lain yang menggunakan model word2vec daripada model yang lain dan word2vec memiliki referensi yang lebih banyak sehingga dapat dibandingkan hasil evaluasinya.. 1.2 Rumusan Masalah Word embedding menjadi metode paling populer saat ini dibandingkan dengan bag of words untuk menghasilkan word vector karena lebih efisien dan menghasilkan performa yang lebih baik. Word embedding membutuhkan korpus yang besar dan juga waktu training yang lebih lama namun pre-trained word vector yang dihasilkan dapat digunakan berulang kali untuk berbagai aplikasi NLP. Permasalahannya saat ini pre-trained word vector yang ada untuk Bahasa Indonesia dibangun dari Wikipedia sehingga menghasilkan pre-trained word vector untuk domain umum sehingga tidak relevan jika diterapkan untuk kebutuhan domain khusus seperti bidang Ilmu Komputer dan Teknologi Informasi. Pada penelitian ini, peneliti akan fokus membuat representasi kata untuk bahasa Indonesia khusus di bidang komputer dan teknologi..

(18) 2. 1.3 Batasan Masalah Dalam melakukan penelitian ini, peneliti membatasi ruang masalah yang akan diteliti. Batasan-batasan masalah yang digunakan adalah : 1. Dataset diambil dari repository Fasilkom-TI USU. 2. Hasil dari sistem berupa word vector bahasa Indonesia. 3. Observasi penelitian untuk bahasa Indonesia.. 1.4 Tujuan Penelitian Tujuan utama yang ingin dicapai pada penelitian ini adalah menghasilkan word vector bahasa Indonesia dalam bidang komputer dan teknologi dengan menggunakan model word2vec. 1.5 Manfaat Penelitian Manfaat yang diperoleh dari penelitian ini adalah lebih memahami cara kerja representasi kata dalam Bahasa Indonesia dan terciptanya word vector bahasa Indonesia dalam bidang komputer dan teknologi informasi agar dapat dikembangkan dan dimanfaatkan oleh peneliti lain untuk aplikasi NLP lanjutan seperti klasifikasi, klusterissasi, machine translation dan lain-lain.. 1.6 Metodologi Penelitian Metodologi penelitian yang akan digunakan adalah: 1. Studi Literatur Pada tahap ini penelitian dimulai dengan peninjauan pustaka berupa mengumpulkan bahan-bahan referensi baik dari buku, artikel, paper, jurnal, makalah, maupun situs-situs internet. 2. Analisis Sistem Pada tahap ini dilakukan analisis pendekatan pengumpulan data secara live dari website repository USU Fakultas Ilmu Kopmuter dan Teknologi Informasi dari tahun 2016-2017. Juga analisis hasil vektor kata per kata berdasarkan kedekatan antar kata..

(19) 3. 3. Perancangan dan Implementasi Sistem Pada tahap ini dilakukan perancangan sesuai dengan hasil dari analisis sistem dan melakukan implementasi dari hasil analisis dan perancangan yang dibuat. 4. Pengujian Sistem Pada tahap ini dilakukan proses pengujian dan percobaan terhadap sistem sesuai dengan kebutuhan yang ditentukan sebelumnya serta memastikan program yang dibuat berjalan seperti yang diharapkan. 5. Dokumentasi Pada tahap ini dilakukan dokumentasi dan penulisan laporan mengenai aplikasi tersebut yang bertujuan untuk menunjukkan hasil penelitian ini.. 1.7 Sistematika Penulisan Sistematika penulisan skripsi ini terdiri dari beberapa bagian utama, yaitu: BAB 1. PENDAHULUAN Pada bab ini berisi latar belakang, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian, sistematika penulisan, dan diagram umum sistem.. BAB 2. LANDASAN TEORI Pada bab ini berisi teori mengenai kecerdasan buatan, Machine Learning, Deep Learning dan Word Embedding dan dasar-dasar pehitungan probabilitas word vector serta penelitian yang relevan.. BAB 3. ANALISIS DAN PERANCANGAN Bab ini berisi tentang analisis terhadap masalah penelitian dan perancangan sistem yang akan dibangun sebagai solusi permasalahan tersebut.. BAB 4. IMPLEMENTASI DAN PENGUJIAN.

(20) 4. Bab ini berisis mengenai sistem dan pembuatan program sesuai dengan analisis dan perancangan sistem kemudian dilakukan pengujian terhadap sistem. BAB 5. KESIMPULAN DAN SARAN Bab ini berisi kesimpulan yang diperoleh dari hasil penelitian. dan. saran-saran. yang. pengembangan penelitian selanjutnya.. berguna. untuk.

(21) BAB II. LANDASAN TEORI. 2.1 Kecerdasan Buataan (Artificial Intelligence) Kecerdasan buatan atau Artificial Intelligence adalah salah satu bagian dari ilmu komputer yang membuat mesin (komputer) dapat melakukan pekerjaan seperti manusia (Kusumadewi, 2003). Kecerdasan buatan diciptakan karena hampir semua masalah di dipecahkan dengan menggunakan bantuan komputer dan masalah yang semakin komplek. Kecerdasan buatan berbeda dengan program komputer konvensial. Program komputer konvensional prosesnya berbasis algoritma, yaitu formula matematis yang mengarah pada suatu solusi. Algoritma tersebut berupa data seperti angka, huruf ataupun kata yang kemudian di konversi kedalam program komputer dan memberi tahu komputer instruksi apa yang harus dikerjakan. Sedangkan perangkat lunak AI berbasis representasi serta manipulasi simbolik (Balza, 2006). Symbol yang dimaksud berupa huruf, kata, atau angka yang merepresentasikan obyek, proses dan hubungan keduanya. Kecerdasan buatan menyelesaikan masalah dengan menggunakan basis pengetahuan. Selain itu, kecerdasan buatan dapat dikembangkan menjadi beberapa aplikasi seperti Sistem Pakar (Expert System), Pemrosesan Bahasa Alami. (Natural. Language. Processing),. Pemahaman. Ucapan/Suara. (Speech/Voice Understanding), Sistem Sensor dan Robotika, Mesin Belajar (machine learning) dan lain-lain. Secara historis, terdapat empat pendekatan kecerdasan buatan dan masing-masing merupakan metode yang berbeda dan orang yang berbeda. Menurut Stuart J. Russel dan Peter Norvig dalam bukunya yang berjudul Artificial Intellegence : a Modern Approach, Kecerdasan Buatan memiliki 4 pendekatan, yaitu :.

(22) 8. 1. Thinking Humanly, yaitu otomatisasi kegiatan yang dikaitkan dengan pemikiran manusia, kegiatan seperti pengambilan keputusan, pemecahan masalah, pembelajaran (Bellman, 1978) 2. Thinking Rationally, yaitu studi tentang perhitungan yang memungkinkan untuk memahami, bernalar, dan bertindak (Winston, 1992). 3. Acting Humanly, yaitu seni menciptakan mesin yang melakukan fungsi yang membutuhkan kecerdasan ketika dilakukan oleh orang-orang (Kurzweil, 1990) 4. Acting Rationally, yaitu kecerdasan komputasi adalah studi tentang desain agen cerdas (Poole et al., 1998).. 2.2 Machine Learning Machine Learning sering dikaitkan dengan istilah seperti Big Data dan Artificial Intelligence. Bagaimanapun, kedua hal tersebut berbeda dengan machine learning. Big data adalah istilah yang digunakan untuk menggambarkan kumpulan data besar yang dibuat sebagai hasil dari besar peningkatan data yang dikumpulkan dan disimpan. Sedangkan dengan machine learning, kita mengidentifikasikan proses-proses melalui dimana yang mana kita memperoleh pengetahuan yang tidak kelihatan sebelumnya dengan tujuan membuat keputusan. Machine learning dapat dianggap sebagai otak dari AI (Artificial Intelligence). Menurut Ivan Vasilev et al dalam bukunya yang berjudul Python Deep Learning Second Edition, machine learning memiliki tiga pendekatan, yaitu: 1. Supervised Learning, yaitu algoritma machine learning yang menggunakan data yang telah di labeli sebelumnya agar dapat dipelajari terlebih dahulu. Contoh algoritma supervised leraning adalah Linear and Logistic Regression, Support Vector Machines, Decision Trees, dan Naïve Bayes. 2. Unsupervised Learning, yaitu algoritma machine learning yang tidak membutuhkan dataset yang telah dilabeli sebagai pembelajaran sebelumnya untuk mencari kesimpulannya. Contoh dari unsupervised learning adalah kmeans..

(23) 9. 3. Reinforcement Learning, yaitu algoritma machine learning memetakan situasi kedalam aksi dalam suatu lingkungan. Contoh reinforcement learning adalah Q-learning. Machine Learning dapat di kategorikan menjadi representational learning dan task learning (Zhou et al, 2017). Representational learning bertujuan untuk mempelajari representasi data baru yang membuatnya lebih mudah mengekstrak informasi yang berguna ketika membangun klasifikasi atau prediksi lainnya (Bengio et al, 2013.). Sebaliknya, task learning biasanya memiliki keluaran yang diinginkan, dan karenya di kategorikan ke dalam klasifikasi, regeresi dan clustering (Zhou et al, 2017). Machine Learning merupakan perubahan mendasar dari gelombang pertama komputerisasi. Secara historis, sebagian besar program komputer diciptakan oleh manusia yang mengkodifikasi dengan pengetahuannya, langkah demi langkah memetakan input ke output seperti yang telah ditentukan oleh programmer. Sebaliknya, sistem machine learning menggunakan kategori algoritma umum seperti jaringan saraf (neural network) untuk mengetahui pemetaan yang relevan dengan sendirinya, biasanya dengan diberi contoh dataset yang sangat besar. Dengan menggunakan metode machine learning ini memanfaatkan pertumbuhan di total data dan sumber daya pemrosesan data, mesin membuat keuntungan yang mengesankan di presepsi dan kognisi, dua keterampilan penting untuk sebagian besar jenis pekerjaan manusia (Brynjolfsson et al, 2017).. 2.3 Deep Learning Selama beebrapa decade, pendekatan machine learning yang menargetkan masalah NLP (Natural Languange Processing) telah didasarkan pada model yang dangkal seperti SVM (Support Vector Machine) dan logistic regression yang dilatih pada fitur dimensi yang sangat tinggi. Dalam beberapa tahun terakhir, jaringan saraf tiruan berdasarkan representasi vektor telah menghasilkan hasil yang lebih unggul dalam beberapa tugas NLP yaitu Deep learning (Young et al, 2018). Deep learning adalah cabang dari machine learning. Deep learning adalah nama lain dari neural network, yaitu teknik.

(24) 10. pembelajaran secara historis terinspirasi oleh cara komputasi bekerja di otak manusia dan dapat di karakteristikkan sebagai pembelajaran dari fungsi-fungsi matematika yang berbeda yang dapat ditentukan parameternya (Goldberg, 2017). Machine learning dapat dicirikan sebagai pembelajaran untuk membuat prediksi berdasarkan pengamatan atau pembelajaran terdahulu (Goldberg, 2019) sedangkan pendekatan deep learning menggunakan metode learning representation, yaitu metode yang memungkinkan mesin memproses data mentah dan secara otomatis menemukan representasi yang dibutuhkan untuk deteksi atau klasifikasi (LeCun et al,2015). Deep learning memungkinkan lapisan model komputasi dari beberapa proses pemrosesan untuk mempelajari dan merepresentasikan data dengan banyak tingkat abstaksi meniru bagaimana otak memahami informasi sehingga secara implisit menangkap struktur rumit data berskala besar (Voulodimus et al, 2018). Deep learning menjadi metode pembelajaran terpopuler karena fakta bahwa deep learning terbukti telah mengungguli teknik-teknik canggih dalam beberapa tugas sebelumnya seperti bag of word atau decision tree, serta kelimpahan data kompleks dari sumber yang berbeda seperti audio, visual, social, sensor dan sebagainya (Voulodimus et al, 2018).. 2.4 Neural Network Nama neural network terinspirasi oleh mekanisme perhitungan otak yang terdiri dari unit perhitungan yang disebut neuron. Karakteristik neural network adalah sebagai berikut (Vasilev et al, 2019) : 1. Pemorsesan informasi dilakukan dalam bentuknya yang paling sederhana yaitu neuron. 2. Neuron-neuron saling terhubung dan mereka bertukar sinyal melalui tautan koneksi 3. Tautan koneksi antar neuron dapat menjadi lebih kuat ataupun menjadi lebih lemahm dan inilah yang menentukan bagaimana informasi diproses 4. Setiap neuron memiliki keadaan internal yang ditentukan oleh semua koneksi yang masuk dari neuron lainnya..

(25) 11. 5. Setiap neuron memiliki fungsi aktivasi yang berbeda dan menentukan signal keluarannya (output). Neuron adalah fungsi matematika yang mengambil satu inputan atau lebih nilai input dan mengeluarkan nilai numerik tunggal. Ilustrasi neuron dapat dilihat pada gambar 2.4.1.. Gambar 2.4.1. Jaringan Syaraf Tiruan. Neuron dapat didefinisikan sebagai berikut : 𝑦 = 𝑓(∑ 𝑥𝑖 𝑤𝑖 + 𝑏) 𝑖. 1. Pertama, hitung jumlah nilai input 𝑥𝑖 dan bobot 𝑤𝑖 . Disini 𝑥1 bernilai numerik yang merepresentasikan input data atau output dari neuron lainnya. Sedangkan 𝑤𝑖 adalah nilai numeric yang merepresentasikan kekuatan dari input atau koneksi kekuatan koneksi antar neuron. 2. Selanjutnya, hasil penjumlahan tersebut di masukkan ke dalam fungsi aktivasi.. Activation function atau fungsi aktivasi adalah fungsi yang digunakan dalam neural network untuk menghitung jumlah input yang sudah diberi nilai bobot dan bias, digunakan untuk menentukan apakah neuron dapat digunakan atau.

(26) 12. tidak. Activation function memanipulasi data melalui beberapa pemrosesan gradient biasanya gradient turunan dan setelah itu menghasilkan keluaran untuk neural network, di mana mengandung parameter dalam data (Nwankpa et al, 2018). Tedapat 4 jenis fungsi aktivasi, yaitu : 1. Sigmoid Function Sigmoid function adalah fungsi aktivasi non-linear yang yang sering digunakan dalam feedforward neural networks). Sigmoid function disebut juga logistic function, mengubah setiap nilai x kedalam kisaran [0,1] (Goldberg, 2017). Adapun persamaan sigmoid function sebagai berikut 𝜎 (𝑥 ) =. 1 1 + 𝑒 −𝑥. Sigmoid function digunakan pada layer keluaran dan digunakan untuk memprediksi keluaran berdasarkan probabilitas. Sigmoid function telah berhasil diterapkan dalam masalah klasifikasi biner dan logistic regeression. Grafik fungsi aktivasi sigmoid dapat dilihat pada gambar 2.4.2.. Gambar 2.4.2. Grafik Sigmoid Function. 2. Hyperbolic tangent (tanh) Fungsi hyperbolic tangent dikenal sebagai fungsi tanh, adalah fungsi yang mengubah nilai x kedalam kisaran 1- sampai 1 (Goldberg, 2017). Berikut adalah keluaran fungsi tanh 𝑓 (𝑥 ) = (. 𝑒 𝑥 − 𝑒 −𝑥 ) 𝑒 𝑥 + 𝑒 −𝑥.

(27) 13. Keuntungan menggunakan fungsi tanh adalah menghasilkan keluaran terpusat 0 sehingga membantu proses backpropagation. Fungsi tanh sering digunakan untuk RNN (Recurent Neural Network) dan Speech Recognation. Ilustrasi grafik fungsi aktivasi tanh dapat dilihat pada gambar dibawah ini. Gambar 2.4.3. Grafik Fungsi Tanh. 3. Softmax Function Softmax function digunakan untuk menghitung probabilitas distribusi dari vektor bilangan real. Softmax menghasilkan keluaran dengan rentang nilai antara 0 dan 1, dengan jumlah probabilitas sama dengan 1. Adapun persamaan softmax function sebagai berikut 𝑓 (𝑥𝑖 ) =. exp(𝑥𝑖 ) ∑𝑗 exp(𝑥𝑗 ). Perbedaan utama antara fungsi aktivasi sigmoid dan softmax adalah sigmoid digunakan dalam klasifikasi biner sedangkan softmax digunakan untuk klasifikasi multivarian . 4. Rectified Linear Unit (ReLU) Function ReLU adalah fungsi aktivasi tercepat, yang telah terbukti menjadi fungsi paling sukses dan paling banyak digunakan. ReLU menawarkan kinerja yang lebih baik dan generalisasi dalam deep learning dibandingkan dengan fungsi aktivasi sigmoid dan tanh. Fungsi aktivasi ReLU melakukan operasi threshold untuk setiap elemen input yang nilainya kurang dari 0 diatur ke 0..

(28) 14. 𝑓 (𝑥 ) = max(0, 𝑥 ) = { Keuntungan. utama. menggunakan. 𝑥𝑖 , 𝑖𝑓 𝑥𝑖 ≥ 0 0, 𝑖𝑓 𝑥𝑖 < 0 ReLU. adalah. terjaminnya. perhitungan yang lebih cepat karna ReLU tidak menghitung eksponensial dan divisi (Zeiler et al, 2013). Ada dua jenis arsitektur utama neural network yang dapat dikombinasikan dalam berbagai cara, yaitu feedforward networks dan recurrent/recursive networks (Goldberg, 2017). a. Feed-forward Networks Feed-forwards networks hanya mempunyai koneksi datu arah (Russell et al, 2016). Feed-forward networks bekerja dengan input berukuran tetap. Ketika satu set komponen input-an diberikan ke jaringan untuk diproses, jaringan akan mengkombinasikan inputan (Goldberg, 2017). Feed-forward network tidak melakukan perulangan, arsitektur ini mewakili fungsi input saat itu juga. Dengan demikian, arsitektur ini tidak memiliki keadaan internal selain dari bobot itu sendiri (Russell et al, 2016). b. Recurrent Neural Networks (RNN) Recurrent Neural Networks adalah model yang dikhususkan untuk sekuensial data. RNN menggunakan outputnya sebagai inputannya sendiri (Rusell et al, 2016). RNN jarang digunakan sebagai komponen yang berdiri sendiri, komponen RNN dapat di training dengan komponen jaringan yang lain, dan dilatih agar dapat bekerja sama dengan mereka. Misalnya, output dari RNN dapat digunakan oleh komponen feed-forward network yang akan memprediksi nilai yang sama. Pada penelitian ini, peneliti menggunakan arsitektur Feed-forward Networks dalam sistem.. 2.4.1. Proses Training. Agar sebuah jaringan dapat menghasilkan output yang sesuai untuk input yang diberikan, bobot harus ditetapkan ke nilai yang sesuai. Training bertujuan untuk meminimalisir kesalahan atau error. Umumnya, ada dua algoritma yang digunakan untuk mengubah nilai bobot yaitu :.

(29) 15. 1. Forward Pass Algoritma ini memerlukan lapisan input sebagai menerima inputan dan meneruskannya ke lapisan tersembunyi dan melakukan beberapa perhitungan dan meneruskannya ke lapisan berikutnya yaitu lapisan output yang mana lapisan tersebut menghasilkan output yang nanti akan dihitung errornya (Grus, 2019). Adapun langkah-langkah dalam menghitung output dengan algoritma forward pass adalah sebagai berikut : 1. Masing – masing inputan dikali dengan bobot (w) 𝑥1 → 𝑥1 ∗ 𝑤1 𝑥2 → 𝑥2 ∗ 𝑤2 2. Semua bobot yang sudah dikalikan kemudian ditambah dengan nilai bias b (𝑥1 ∗ 𝑤1 ) + (𝑥2 ∗ 𝑤2 ) + 𝑏 3. Masukkan hasil penjumlahan kedalam fungsi aktivasi (activation function) 𝑦 = 𝑓(𝑥1 ∗ 𝑤1 + 𝑥2 ∗ 𝑤2 + 𝑏) 2. Backward Pass Hasil output yang didapat pada proses forward pass akan dibandingkan dengan target dengan menggunakan fungsi yang disebut Loss Function. Salah satu loss function yang sering digunakan adalah Squad Error : 𝐿𝑜𝑠𝑠 = (𝑇𝑎𝑟𝑔𝑒𝑡 − 𝑃𝑟𝑒𝑑𝑖𝑐𝑡𝑖𝑜𝑛)2 Backward pass atau backpropagation bertujuan untuk menghitung ulang nilai bobot dan bias berdasarkan error yang didapat saat proses forward pass agar dapat meminimalisir kesalahan atau error. Dalam proses back pass atau backpropagation melibatkan proses forward pass. Berikut adalah ilustrasi proses back pass atau backpropagation..

(30) 16. Gambar 2.4.4. Proses Back Pass (Backpropagation). Adapun tahapan dari backpropagation yaitu: 1. Jalankan algoritma feed pass pada vektor inputan untuk menghasilkan output 2. Hitung loss function dan bandingkan dengan target output 3. Hitung gradient dari loss function sebagai fungsi dari output bobot neuron 4. Update semua parameter (bobot dan bias) menggunakan Gradient Descent dengan mengurangi atau menambah nilai bobot lama dari gradient yang sudah didapat.. Untuk mengukur atau mengevaluasi seberapa bagus kinerja sebuah model machine learning saat memprediksi disebut cost function (Grus, 2019). Cost function menghitung rata-rata dari loss function sedangkan loss function menghitung error per training. Cost function dapat didefinisikan sebagai berikut 𝑐𝑜𝑠𝑠 𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛 =. 1 𝑁. ′ 2 ∑𝑁 𝑖=1(𝑦 − 𝑦). Di mana y’ adalah nilai prediksi dan y adalah nilai yang sesungguhnya. Tujuan dari machine learning adalah meminimalisir cost function salah satu nya dengan menggunakan gradient descent. Gradient descent adalah algoritma yang cukup popular untuk melakukan optimasi dan sejauh ini merupakan cara paling umum untuk mengoptimisasi neural network (Ruder, 2016). Gradient descent menggunakan turunan untuk membuat.

(31) 17. keputusan apakah nilai bobot harus memperkecil atau memperbesar secara efesien dan efektif. Ada 2 konsep kalkulus untuk menghitung gradient descent, yaitu power rule dan chain rule. a. Power Rule Berfungsi untuk menghitung turunan dari yang dinaikkan. Jika kita mempunya fungsi : 𝑓 (𝑥 ) = 𝑥 𝑛 Maka 𝜗𝑓(𝑥) = 𝑛𝑥 𝑛−1 𝜗𝑥 Contoh : 𝑓(𝑥 ) = 3𝑥 5 𝜕𝑓(𝑥) = 15𝑥 4 𝜕𝑥 b. Chain Rule Berfungsi untuk menghitung turunan dari fungsi komposit. Chain rule dapat dinyatakan sebagai berikut: Jika variabel z bergantung pada variabel y, yang mana variabel itu bergantung pada variabel x, maka variabel y dan z adalah variabel yang bergantung, maka z melalui variabel antara y, bergantung pada x. 𝜕𝑧 𝜕𝑧 𝜕𝑦 = . 𝜕𝑥 𝜕𝑦 𝜕𝑥. 2.5 Word Embedding Secara tradisional, teks direpresentasikan dengan Vector Space Model yaitu model yang mengukur kemiripan suatu dokumen dengan queri seperti n-gram dan dikodekan dengan menggunakan vektor “one-hot” yaitu dokumen direpresentasikan dengan menggunakan sparse vector (array yang berisi sebagian besar nilai nol dan beberapa bukan nol), bag-of-words dan TF-IDF. Pendekatan ini sangat terbatas karena penedekatan ini menganggap bahwa kata tersebut merupakan unit independen sehingga semantik dan sintaksis.

(32) 18. sepenuhnya diabaikan (Tixier, 2016). Misalkan kalimat “kucing duduk di atas matras” tidak dapat dimengerti oleh komputer. Maka cara termudah untuk mewakilinya adalah dengan menggunakan sparse vector atau disebut juga one hot encoding. Sparse vector adalah array yang berisi sebagian besar nilai nol dan beberapa bukan nol. Kekurangan dari one-hot-encoding adalah menghasilkan dimensi vektor yang tinggi tergantung pada volume kosakata, yang biasanya sangat besar (Li, 2017). Misalkan kita memiliki kosakata sebanyak 10.000 kata menggunakan vektor one-hot seperti gambar dibawah ini. Pada gambar dibawah ini dijelaskan bahwa kata apel berada pada posisi ke 537, kata Meja berada pada posisi ke 214, kata Raja berada pada posisi ke 109, kata Ratu berada pada 670 dan kata wanita berada pada posisi ke 963 dari kosakata.. Gambar 2.5.1. Contoh vektor one-hot Jika kata ratu di posisi di nomor 670 pada kosakata maka kata ratu direpresentasikan dengan ukuran vektor 10.000 dengan nilai 1 di posisi 670. Salah satu kelemahan representasi ini adalah one-hot memperlakukan setiap kata sebagai sesuatu sebagai dirinya sendiri. Selain itu, one-hot-encoding tidak dapat menemukan hubungan semantic antar kata. Cara lainnya adalah dengan menggunakan n-gram. Misalkan huruf 2-gram “kucing duduk”,”duduk di”,”di atas” “atas matras”. Berbeda dengan metode one-hot-embedding, metode n-gram secara signifikan dapat mengurangi kompleksitas training dan mengatasi masalah kata orthogonal dan kata yang tidak terlihat (Bian et al, 2017). Namun, kata-kata tersebut tidak mengandung semantik. Distributed representation juga dikenal word vector telah banyak.

(33) 19. digunakan di pemrosesan Bahasa alami atau Natural Language Processing mengarah ke hasil yang paling mutakhir untuk banyak tugas NLP. Distributed representation dibuat dengan mempelajari fungsi embedding yang mengubah ruang dimensi kata yang tinggi menjadi ruang dimensi rendah (Vasilev, 2019).. Gambar 2.5.2. Perubahan vektor one hot encoding menjadi vektor word embedding Kata dari kosakata yang berukuran dimensi V diubah menjadi vektor one hot encoding berukuran dimensi V. Kemudian, fungsi embedding mengubah dimensi berukuran V menjadi distributed representation berukuran D. Konsepnya adalah menangkap informasi semantik kata-kata. Distributed representation mengaitkan setiap kata dalam kosakata dengan repsesentasi vektor yang bernilai real disebut dengan word embedding (Vasilev, 2019). Word embedding bertujuan untuk menyandikan banyak hubungan semantik serta keteraturan dan pola linguistik (Bian et al, 2014). Representasi vektor dari kata-kata yang dipelajari oleh model word2vec telah terbukti membawa makna semantik dan berguna dalam berbagai tugas Natural Language Processing (NLP) (Rong, 2014). Word2vec bukanlah algoritma tunggal melainkan model yang mengimplementasikan dua representasi konteks yang berbeda yaitu CBOW (Continuous Bag-of-Words) dan Skip-Gram dan dua tujuan optimasi yang berbeda yaitu Negative Sampling dan Hierarki Softmax (Goldberg, 2019). Model word2vec belajar representasi vektor untuk setiap kata menggunakan jaringan saraf 2 layer. Khusus pada arsitektur jaringan saraf skip-gram yang terdiri dari lapisan input, lapisan proyeksi dan lapisan output untuk memprediksi kata-kata terdekat. Setiap word vector dilatih untuk memaksimalkan log probabilitas kata-kata disebelahnya dalam sebuah korpus..

(34) 20. Word2vec menjadi model yang populer karena mempunyai properti yang bagus salah satunya adalah analogical reasoning (Chang, 2017). Model word2vec menggunakan single layer neural network atau jaringan saraf sederhana dan menangkap bobot dari hidden layer. Tujuan dari training model ini adalah untuk mempelajari bobot hidden layer. Mikolov dan koleganya menemukan bahwa representasi kata yang dipelajari sebenarnya menangkap sintaksis yang bermakna dan keteraturan semantik dengan cara yang sederhana (Mikolov et al, 2013). Vektor yang diperloleh memiliki hubungan seperti “A - B = C - D” didalam ruang vektor. Misalkan W(“woman”) – W(“man”) = W(“queen”) – W(“king”). Pada penelitian ini, penulis berfokus pada representasi kata yang dipelajari dengan neural network, karena performa neural network lebih bagus dibandingkan dengan Lantent Semantic Analysis (LSA) untuk menjaga keteraturan linear antar kata (Mikolov et al, 2013). Dalam Neural Network Model, terdiri dari empat layer atau lapisan yaitu input layer, projection layer, hidden layer dan output layer. Di input layer, N kata-kata sebelumnya yang dikodekan dengan menggunakan one-hot-encodding, dimana V adalah ukuran kosakata. Input layer kemudian diproyeksikan ke projection layer P yang memiliki dimensi matriks berukuran N x D. Pada umumnya, N berukuran 10, ukuran projection layer (P) mencapai 500 hingga 2000, sedangkan ukuran hidden layer 500 hingga 1000 unit (Mikolov et al, 2013). Untuk membatasi jumlah kata dalam setiap konteks, word2vec menggunakan parameter yang disebut context windows size. Dalam penelitian oleh Alnajran dan koleganya pada tahun 2018 yaitu A Word Embedding Model Learned from Political Tweets, peneliti menggumpulkan dataset sosial politik di twitter yang terdiri lebih dari 4 miliar tweet dengan vektor dimensi berukuran 300 dan context windows berukuran 5. Berdasarkan pengalaman percobaan pada windows size yang berbeda yaitu 3,4,5,6, peneliti memutuskan bahwa context windows berukuran 5 menghasilkan vektor embedding terbaik untuk tweet. a. CBOW (Continuous Bag-of-Words).

(35) 21. CBOW bertujuan untuk memprediksi satu kata target yang diberikan satu kata konteks seperti model bigram (Rong, 2014). Misalkan kita ingin memprediksi kata yang hilang dari kalimat “kucing ____ di atas matras”. Kata yang diprediksi adalah duduk. CBOW hanya mengambil satu kata sebagai inputan (Vasilev, 2019). Maka kalimat tersebut diubah menjadi (kucing, duduk) (di, duduk) (atas, duduk) (matras,duduk).. Gambar 2.5.3 Ilustrasi CBOW. CBOW menghitung rata-rata dari kata-kata di sekitarnya kemudian menjalankan klasifikasi log-linear pada vektor rata-rata untuk mendapatkan kata yang dihasilkan (Ghannay et al, 2016). Metode CBOW kehilangan urutan informasi antara elemen konteks, sebagai gantinya CBOW memungkinkan penggunaan konteks panjang variabel (Goldberg, 2019). Kecepatan training CBOW lebih cepat dibandingkan dengan Skip-Gram, tetapi Skip-Gram lebih akurat dibandingkan dengan CBOW (Chang, 2017)..

(36) 22. Gambar 2.5.4. Arsitektur CBOW untuk banyak kata Sebelum membangun model menggunakan CBOW, hal pertama yang dilakukan adalah mengubah kosakata menjadi one-hot-encoding. setelah semua kosakata telah diubah menjadi one-hot-encoding, selanjutnya nilai one-hot-encoding masing-masing kata dimasukkan kedalam input layer. Diantara input layer dan hidden layer terdapat nilai random yang disebut dengan weight. Nilai yang berada di input layer kemudian dikalikan dengan nilai weight untuk mendapatkan nilai hidden layer. Diantara hidden layer dan output layer terdapat juga random nilai weight. Selanjutnya nilai hidden layer dikalikan dengan nilai weght tersebut dan didapatlah nilai output layer. Selanjutnya dengan menggunakan Hierarki Softmax, masing-masing nilai output layer diubah menjadi nilai antara 0-1.. b. Skip-Gram Skip-gram merupakan kebalikan dari CBOW. Skip-gram memprediksi konteks kata berdasarkan input yang diberikan (Vasilev, 2019). Misalkan kita mempunyai kalimat “kucing duduk di atas matras”, kata yang diberikan adalah “duduk”, maka kalimat tersebut di ubah menjadi (“atas”, “kucing”), (“atas”,”duduk”), (“atas”,”di”), (“atas”,”matras”)..

(37) 23. Gambar 2.5.5. Ilustrasi Skip-gram Setiap kata yang ada pada urutan diambil sebagai input ke klasifikasi loglinear kemudian membuat prediksi kisaran kata-kata yang sesuai kata tertentu yang telah ditentukan sebelum dan sesudah kata tengah. Skip-gram menambah log probabilitas dari kata-kata disekitarnya dari kiri ke kanan kata target. Pada dasarnya, tujuan training model skip-gram adalah untuk mempelajari representasi vektor kata yang bagus dalam memprediksi kata kata terdekat dalam konteks terkait (Rong, 2017).. Gambar 2.5.6. Arsitektur Skip-gram untuk banyak kata Cara kerja skip-gram hanya berbeda sedikit dengan CBOW hanya berbeda sedikit. Untuk proses input layer dan hidden layer sama seperti CBOW,.

(38) 24. yang berbeda adalah ketika proses di hidden layer ke output layer. Skipgram memprediksi kata disekitar kata target, maka output dari metode ini lebih dari satu. Untuk mendapatkan nilai output layer, nilai hidden layer dikali dengan nilai weight dan masing-masing nilai output layer menggunakan nilai weight yang sama. Terakhir, nilai output layer diaktifkan dengan menggunakan fungsi aktivasi Negative Sampling. c. Hierarki Softmax Hierarki softmax menggunakan representasi binary tree dari output layer dengan kata sebagai daun, untuk setiap simpul, mewakili probabilitas relatif dari simpul anaknya sehingga mendefinisikan rute acak untuk menentukan probabilitas kata-kata (Mikolov et al, 2013). Lebih tepatnya, setiap kata dapat dicapai dengan rute yang sesuai dari akar. Gagasan dibalik mengurai output layer ke binary tree adalah untuk mengurangi kompleksitas agar mendapatkan distribusi probabilitas.. Gambar 2.5.7. Hierarki Softmax Gambar diatas adalah contoh dari hierarki binary tree, sampul daun mewakili kata-kata dan sampul dalam mewakili banyaknya probabilitas. Hierarki softmax lebih efesien dibandingkan dengan fungsi softmax biasa. Softmax biasa hanya mengeluarkan nilai antara 0 dan 1, berikut adalah ilustrasi fungsi softmax sebagai tree.

(39) 25. Gambar 2.5.8. Ilustrasi softmax dalam bentuk tree Untuk menemukan probabilitas kata-kata yang diberikan, softmax harus menghitung atau melakukan komputasi semua daun terminal. Hierarki softmax menghitung nilai daun dengan nulti-layer tree, berikut ilustrasi hierarki softmax. Gambar 2.5.9. Ilustrasi hierarki softmax Untuk mengevaluasi probabilitas kata yang diberikan cukup mengambil nilai dari probabilitas setiap tepi di jalur yang menuju ke node: 𝑝(𝑑𝑢𝑑𝑢𝑘 |𝐶 ) = 0.66 ∗ 0.71 ∗ 0.28 = 0.13.

(40) 26. Dalam praktiknya, hierarki softmax lebih baik digunakan untuk kata-kata yang sedikit sedangkan negative sampling lebih baik digunakan untuk katakata yang sering digunakan dan vektor dimensi yang lebih rendah . Fungsi softmax biasa mengubah embedding yang dinormalisasi menjadi probabilitas sehingga kecepatan training model dengan output layer softmax berkurang dengan cepat seiring dengan bertambahnya ukuran kosakata. Dalam model hierarki softmax, tidak ada representasi vektor output untuk kata-kata (Rong, 2014). d. Negative Sampling Gagasan negative sampling lebih mudah daripada hierarki softmax yaitu mengatasi kesulitan memiliki terlalu banyak vektor output yang perlu diperbarui per iterasi, dengan negative sampling hanya perlu memperbarui sample aja (Rong, 2014). Ukuran matriks di hidden layer bergantung pada ukuran keseluruhan kosakata sehingga menghasilkan parameter bobot yang besar. Semua parameter bobot di perbarui dalam beberapa iterasi dari jutaan dan miliyaran sampel training. Negative sampling membuat model hanya memperbarui bobot hanya sebagian kecil untuk masing-masing sampel pelatihan. Input representasi kata yang berikan ke model adalah vektor onehot encoding. Pengambilan sampel negative sampling secara acak memilih sejumlah kata negatif yang bobotnya diperbarui dengan bobot kata positif. Namun, terlepas dari penggunaan pengambilan sampel negatif, hanya bobot kata positif yang di perbarui di hidden layer. Probabilitas untuk pemilihan sampel negatif bergantung pada frekuensi kata dalam korpus. Semakin tinggi frekuensinya maka semakin tinggi kata negatif yang dipilih.. 2.6 Penelitian yang Relevan Beberapa penelitian yang relevan dengan penelitian adalah penelitian yang telah dilakukan oleh Xiangfeng Dai et al pada tahun 2017. Penelitian ini mendapatkan kesimpulan bahwa dengan menggunakan word embedding sebagai metode klasifikasi terkait kesehatan menggunakan media sosial yaitu twitter, vektor word embedding dapat mewakili informasi semantik kata-kata.

(41) 27. sehingga sebuah tweet dapat dibagi menjadi kelompok kata-kata yang mirip menurut kesamaannya ukuran kluster kata-kata. Penelitian pada tahun 2013 oleh Rami Al-Rfou et al, peneliti membuat word vector untuk 100 bahasa. Dalam penelitiannya, peneliti mengambil sampel 9 bahasa untuk mengetahui akurasi kedekatan antar kata dan didapat bahwa besar penurunan akurasi terbesar adalah -2.68%. Peniliti mendapat kesimpulan bahwa dengan menggunakan word embedding sangat membantu meskipun tidak memiliki contoh latihan vektor. Penelitian yang dilakukan Edouard Grave et al pada tahun 2018, peneliti menggunakan word2vec dan dataset yang bersumber dari Wikipedia masingmasing negara dan common crawl didapat kesimpulan bahwa hasil pre-trained word vector untuk 10 bahasa menunjukkan peforma yang tinggi. Penelitian yang dilakukan Kusumawardani et al pada tahun 2018 tentang normalisasi Bahasa Indonesia di social media. Peneliti menciptakan neural word embedding menggunakan word2vec untuk mendapatkan makna kontekstual dari token. Peneliti menggunakan dataset yang bersumber dari social media yang menggunakan Bahasa Indonesia secara informal. Sistem mendapat tingkat akurasi sebesar 79.59% untuk menormalisasikan token yang tidak sesuai dengan Bahasa Indonesia secara formal. Penelitian selajutnya dilakukan oleh Imaduddin et al pada tahun 2019 untuk mencari hotel terbaik berdasarkan review pengguna. Peneliti menggunakan word. embedding. untuk. mengubah. kata. menjadi. vektor.. Peneliti. membandingkan keterkaitan antar kata dengan menggunakan model word2vec CBOW, word2vec Skip-gram, glove dan doc2vec. Hasil dari penelitian yang didapat yaitu model word2vec skip-gram memiliki tingkat akurasi sebesar 91.81%. Table 2.1 Penelitian yang Relevan No 1. Peneliti. Metode. Keterangan. Xiangfeng Dai Model word2vec. Penelitian. ini. et al (2017). mengklasifikasi. bertujuan kesehatan. menggunakan sosial media..

(42) 28. 2. Rami Al-Rfou et Model word2vec. Peneliti membangun korpus. al (2013). vektor kata untuk 100 bahasa dengan menggunakan dataset Wikipedia.. 3. Edouard Grave Model. Penelitian ini bertujuan untuk. et al (2018). melatih. word2vec, glove. representasi. kata. berkualitas tinggi untuk 157 bahasa Wikipedia. menggunakan dan. Common. Crawl. 4. Kusumawardani Model word2vec. Peneliti. bertujuan. et al (2018). menormalisasi. untuk. penggunaan. Bahasa Indonesia di sosial media. 5. Imaduddin et al Word2vec skip- Penelitian ini bertujuan untuk (2019). gram, word2vec mencari CBOW, doc2vec. hotel. terbaik. di. glove, Indonesia berdasarkan review hotel di Traveloka..

(43) BAB III. ANALISIS DAN PERANCANGAN. 3.1 Arsitektur Umum Metode yang diajukan pada penelitian ini adalah menciptakan word vector Bahasa Indonesia pada bidang teknologi dan komputer terdiri dari beberapa langkah. Adapun langkah-langkah tersebut yaitu pengumpulan dataset dari website repository USU yang di submit pada tahun 2018 – 2020. Dataset yang dikumpulkan masih dalam format pdf kemudian di ekstrak isinya kedalam format txt, selanjutnya melakukan pre-processing dataset, kemudian dataset di training sehingga hasil akhirnya adalah word vector serta kedekatan antar kata. Skripsi dan tesis mahasiswa menjadi dataset yang akan di training serta menjadi data word vector. Langkah pertama yaitu mengunduh secara otomatis skripsi, tesis dan doktoral mahasiswa dari website repositori USU yang di submit dari tahun 2018 – 2020. Sebelum dataset di unduh, peneliti melakukan web sraping untuk mendapatkan url pdf skripsi dan tesis mahasiswa. Web scraping adalah sebuah metode untuk mengumpulkan data dari sebuah website. Langkah selanjutnya adalah pre-processing data, pada tahap ini dilakukan mengekstrak pdf, menggabungkan file, data cleaning dan tokenisasi atau tokenize. PDF yang sudah di unduh kemudian diekstrak isinya menjadi file txt. Selanjutnya semua file txt tersebut di satukan menjadi satu file dengan format txt. Kemudian isi dari file yang tidak diperlukan selain huruf akan dihapus. Proses penghapusan isi file selain huruf disebut dengan data cleaning, kemudian file yang sudah dibersihkan di tokenized atau tokenisasi. Tokenisasi atau tokenization adalah sebuah metode memecah kalimat menjadi beberapa kata.

(44) 29. yang disebut dengan token. Adapun arsitektur umum yang menggambarkan proses pada penelitian ini ditunjukkan pada Gambar 3.1.

(45) 30. Gambar 3.1 Arsitektur Umum Sistem. 3.2 Dataset Dataset yang digunakan dalam penelitian ini adalah skripsi, tesis, dan disertasi mahasiswa Fakultas Ilmu Komputer Universitas Sumatera, ada beberapa langkah dalam proses untuk mengumpulkan dataset :. 3.2.1. Request Dataset. Dataset yang digunakan pada penelitian ini diperoleh dari situs repositori Universitas Sumatera Utara (USU). Dataset yang diambil dari situs repositori USU adalah skripsi, tesis dan disertasi mahasiswa fakultas Ilmu Komputer dan Teknologi Informasi yang diunggah dari tahun 2018 – 2020. Dari data yang digunakan untuk proses training dapat diketahui bahwa terdapat parameter dari data skripsi dan tesis yang digunakan sebagai acuan untuk membuat word vector di bidang komputer dan teknologi, antara lain: 1. Kecerdasan Buatan 2. Pengolahan Citra 3. Kriptografi 4. Robotik 5. Jaringan 6. Sistem Pendukung Keputusan 7. Natural Language Processing (NLP). 3.2.2. Ambil Link Dokumen PDF. Website repositori di request dengan menggunakan library BeautifulSoup. Website repositori memiliki 43 halaman dan menggunakan pagging sehingga.

(46) 31. dalam satu halaman hanya menampilkan 20 karya ilmiah mahasiswa per halaman. Untuk mendapatkan link dokumen pdf pada website repositori USU menggunakan library BeautifulSoup. Kendala yang dihadapai peneliti pada tahapan ini adalah link yang terdapat pada halaman yang menampilkan karya tulis tidak hanya link untuk mengunduh dokumen maka dari itu peneliti menggunakan regex agar mendapatkan link yang lebih spesifik. 3.2.3. Download File PDF Peneliti menggunakan library requests untuk mendownload skripsi. Namun peneliti menemukan kendala yaitu pertama ada beberapa skripsi yang tidak bisa diunduh, kendala yang kedua untuk mengunduh karya tulis ilmiah harus menggunakan jaringan wifi kampus dan harus stabil ini dikarenakan firewall website yang tidak memberi akses secara umum dan yang ketiga ada beberapa skripsi yang harus diunduh ulang sehingga penulis harus mengunduh secara manual. Jumlah dataset atau karya tulis yang didapat penulis berjumlah 627 buah dan ukuran file dataset tersebut sebesar 1.99 GB.. 3.3 Pre-Processing Dataset Proses pre-processing pada dataset yang telah disediakan sebelum melakukan training data bertujuan untuk mengurangi komputasi komputer, mempercepat waktu proses training. Ada beberapa tahap yang dilakukan dalam proses preprocessing :. 3.3.1. Ekstrak PDF. Dataset mentah yang didapat dari repository USU masih dalam bentuk format pdf sehingga diperlukan mengekstrak isi dari pdf yang bersifat string ke format txt. Mengekstrak isi dari file pdf dengan menggunakan bantuan library pdfminer. Gambar dan shapes tidak akan ikut terekstrak namun isi dari tabel akan ikut diekstrak. Tujuannya agar dataset mudah ditokenisasi. Pada penelitian ini, untuk mengekstrak isi dari 627 pdf memakan waktu kurang lebih 3 jam..

(47) 32. Gambar 3.2 Hasil ekstrak isi PDF ke format txt 3.3.2. Merge File. Dataset yang telah diekstrak isinya ke format txt selanjutnya di satukan menjadi satu file txt besar yang menampung semua file dataset. Untuk menyatukan semua file menjadi satu file besar dengan menggunakan library pdfminer. Jumlah ukuran file yang sudah di ekstrak berubah menjadi 61.7 MB.. 3.3.3. Data Cleaning. Data cleaning pada dataset yang telah digabungkan adalah proses penghapusan angka, spasi atau whitespace yang berlebih dan tanda penghubung seperti “ , ” , “ ( ”, “ ) ” , “ [” , “ ] ” , “ { ” , “ } ” , “ ’’ ” menggunakan regex. Tanda penghubung seperti tanda hubung “ – “ dan tanda titik “.” tidak dihapus karena dalam Bahasa Indonesia kata yang menggunakan tanda penghubung memiliki arti yang berbeda dengan kata tanpa tanda penghubung. Contoh kata “berulangulang”, apabila tanda hubung dihapus maka akan didapat kata “berulang” dan “ulang” dimana kedua kata tersebut memiliki makna yang berbeda dengan kata “berulang-ulang”. Dataset pada penelitian ini terdapat beberapa noise atau gangguan yang ada di dalam dataset yang harus dihapus, yaitu listing program atau source code. Peneliti juga memperbaiki kesalahan penulis dalam karya tulis ilmiahnya agar hasil prediksi lebih akurat dan rapi. Penulis mencoba menghapus listing program dengan menggunakan NLTK stopword Bahasa inggris karena kebanyakan bahasa pemograman banyak mengandung Bahasa inggris namun tidak banyak kata-kata yang terhapus.

(48) 33. karena stopword bahasa inggris hanya untuk kata-kata tertentu, maka dari itu penulis menghapus listing program secara manual.. Gambar 3.3 Contoh Noise dalam dataset 3.3.4. Case Folding. Case folding adalah sebuah teknik untuk mengubah teks dalam dokumen menjadi bentuk standar misalnya mengubah huruf teks menjadi huruf kapital atau huruf kecil. Pada penelitian ini, peneliti mengubah semua huruf teks di dokumen menjadi huruf kecil. Ini dikarenakan ketika mencari keterkaitan antar kata, kata yang ingin dicari harus sesuai dengan kata yang di dalam korpus. Peneliti menggunakan fungsi lower() yang terdapat dalam library python untuk mengubah semua huruf teks di dokumen menjadi huruf kecil. Contoh case folding dapat dilihat pada tabel 3.1 Tabel 3.1 Contoh Case Folding Teks. Case Folding. Pengamanan Jaringan Menggunakan. pengamanan jaringan menggunakan. Algoritma Tersebut. algoritma tersebut. 3.3.5. Sentence Tokenize atau tokenisasi kalimat. Tokenisasi atau tokenize adalah memecah kalimat menjadi token. Dataset yang telah melalui proses data cleaning akan dipecah menjadi token atau kata. Pada penelitian ini, peneliti menggunakan library NLTK untuk memecah kalimat dalam suatu paragraf. Paragraf akan dipecah menjadi kalimat ketika bertemu.

(49) 34. dengan tanda titik. Tokenisasi kalimat bertujuan agar membatasi pengambilan kata per kalimat pada proses training word embedding untuk dimasukkan kedalam input layer. Jumlah kata setelah di tokenisasi adalah 7.166.098. Tabel 3.2 Contoh Sentence Tokenize Teks. Sentence Tokenize. data ini digunakan oleh sistem-sistem ‘data ini digunakan oleh sistemmanajemen. basis. melengkapi. data. untuk sistem manajemen basis data untuk. objek-objek. yang melengkapi. objek-objek. yang. terpetakan. data ini pada umumnya terpetakan.', 'data ini pada umumnya dipresentasikan secara tekstual dalam dipresentasikan secara tekstual dalam bentuk tabel-tabel.. 3.3.6. bentuk tabel-tabel.'. Split Word. Split word adalah memisahkan kalimat menjadi perkata. Pada penelitian ini peneliti menggunakan library split() untuk memisahkan kata dalam kalimat yang telah di tokenisasi. Tabel 3.3 Contoh Split Word Teks data. ini. dipresentasikan. pada secara. Split Word umumnya ‘data’, ‘ini’, ‘pada’, ‘umumnya’, tekstual ‘dipresentasikan’,. dalam bentuk tabel-tabel. ‘secara’,. ‘tekstual’, ‘dalam’, ‘bentuk’, ‘tabeltabel’. 3.4 Training Training merupakan inti dari proses dilakukan pada machine learning. Pada penelitian ini, proses training dilakukan untuk dua model arsitektur yaitu Continuous Bag-of-Words (CBOW) dan Skip-gram. Proses training pertama yaitu training Continuous Bag-of-Words (CBOW) dengan fungsi optimasi Hierarki Softmax. Proses training kedua yaitu training Skip-gram dengan fungsi optimasi Negative Sampling. Tujuan menggunakan dua model arsitektur word2vec agar dapat membandingkan model mana yang menghasilkan kesamaan antar kata yang akurat..

(50) 35. Sebelum masuk ke tahap training, dataset yang telah di tokenisasi harus di ubah menjadi vektor one hot encoding seperti tabel 3.4. Table 3.4 one-hot encoding Korpus kriptografi. algoritma. nlp. jaringan. jarak. kriptografi. 1. 0. 0. 0. 0. algoritma. 0. 1. 0. 0. 0. nlp. 0. 0. 1. 0. 0. jaringan. 0. 0. 0. 1. 0. jarak. 0. 0. 0. 0. 1. Selanjutnya vektor dataset tersebut dimasukkan kedalam proses training. Adapun proses training yaitu forward pass, menghitung loss dan backpropagation. Dan hasil dari model yang telah di training adalah mencari kedekatan antar kata berdasarkan kata yang dimasukkan peneliti.. 3.4.1. Windows Size. Masing-masing proses training menggunakan windows size sama yaitu 8,9 dan 10. Peneliti menggunakan dimensi embedding berukuran 300, artinya hidden layer yang digunakan berjumlah 300. Peneliti menggunakan windows size yang berbeda-beda agar dapat membandingkan hasil kedekatan antar vektor.. 3.4.2. Training CBOW dan Softmax Peneliti menggunakan library gensim untuk membuat model word2vec menggunakan arsitektur CBOW dan Softmax. Continuous Bag-of-Words (CBOW) berfungsi untuk memprediksi kata target berdasarkan kata disekitarnya. Hierarki Softmax berfungsi untuk menghitung probabilitas untuk normalisasi bobot. Hierarki softmax menggunakan binary tree untuk mewaliki semua kata yang ada didalam korpus. Berikut adalah model arsitektur CBOW menggunakan hierarki softmax. Tujuan menggunakan dua model arsitektur word2vec agar dapat menghasilkan word vector untuk kedua model arsitektur..

(51) 36. Gambar 3.4 Arsitektur Model CBOW dan Hierarki Softmax Untuk proses training Continuous Bag-of-Words (CBOW) menggunakan hierarki softmax terdapat beberapa proses yaitu: 1. Dataset akan masuk ke proses Forward-Pass yaitu dari input layer menuju hidden layer kemudian output layer. 2. Kemudian hitung probabilitas menggunakan softmax. 3. Selanjutnya hitung nilai error atau loss untuk melihat tingkat akurasi training model. Jika nilai loss tinggi maka masuk ke tahap backpropagation, jika tidak maka training selesai. Model CBOW menghitung loss atau error per iterasi. 4. Backpropagation berfungsi untuk mengubah nilai bobot agar mendapatkan nilai loss bernilai rendah. 5. Jika nilai bobot sudah ditentukan maka dataset dihitung dari awal lagi kemudian hitung lagi nilai loss hingga nilai loss bernilai rendah.. 3.4.3. Training Skip-gram dan Negative Sampling Skip-gram merupakan sebuah model yang berfungsi memprediksi kata disekitarnya berdasarkan kata target. Negative sampling adalah fungsi optimasi yang hanya menggunakan beberapa training untuk mengubah nilai bobot,.

(52) 37. berbeda dengan hierarki softmax yang mengubah seluruh nilai bobot. Berikut adalah arsitektur model skip-gram menggunakan negative sampling. Gambar 3.5 Arsitektur Model Skip-gram dan Negative Sampling Untuk proses training Skip-gram menggunakan negative sampling terdapat beberapa proses yaitu: 1. Dataset akan masuk ke proses Forward-Pass yaitu dari input layer menuju hidden layer kemudian output layer. 2. Kemudian hitung probabilitas menggunakan softmax 3. Selanjutnya hitung nilai error atau loss untuk melihat tingkat akurasi training. model. Jika. nilai. loss tinggi. maka masuk ke tahap. backpropagation, jika tidak maka training selesai. Model skip-gram menjumlahkan error semua iterasi. 4. Backpropagation berfungsi untuk mengubah nilai bobot agar mendapatkan nilai loss bernilai rendah. 5. Jika nilai bobot sudah ditentukan maka dataset dihitung dari awal lagi kemudian hitung lagi nilai loss hingga nilai loss bernilai rendah.. 3.5 Hasil Training.

(53) 38. Hasil dari proses training menggunakan dua model arsitektur yaitu vektor kata Bahasa Indonesia dibidang teknologi dan informasi. Selain itu, hasil yang diharapkan adalah keterkaitan antar kata dan tingkat akurasi. Maka dari itu peneliti melakukan pengujian dengan menguji model menggunakan cosine similarity antar dua kata dan memberikan kuisioner kepada beberapa mahasiswa.. 3.6 Penerapan Algoritma pada Penelitian Peneliti menggunakan algoritma Continuous Bag-of-Words CBOW dan Skipgram dalam membentuk word vector Bahasa Indonesia, berikut adalah penjelasan masing-masing algoritma. 3.6.1. Penjelasan Algortima CBOW. Adapun parameter yang digunakan dalam membangun model dengan menggunakan algoritma CBOW adalah : 1. Window adalah jarak maksimum antara kata saat ini dengan kata yang akan diprediksi dalam suatu kalimat 2. Size adalah dimensi vektor yang digunakan. Dalam penelitian ini, peneliti menggunakan dimensi 300 3. Min_count adalah parameter yang berfungsi mengabaikan semua kata dengan total frekuensi yang telah di tentukan 4. Sg adalah parameter algoritma. 1 untuk skip-gram dan 0 untuk CBOW 5. Hs adalah parameter untuk hierarchical softmax yang akan digunakan pada model training. Jika parameter bernilai 1 maka hierarchical softmax digunakan, jika parameter bernilai 0 dan parameter negative tidak bernilai 0 maka negative sampling digunakan. 6. Negative adalah jika parameter bernilai lebih dari 0 maka negative sampling digunakan. 7. Workers adalah parameter untuk menentukan jumlah thread yang digunakan 8. Seed adalah nilai awal untuk wight secara random. Sebelum model di training dengan algoritma CBOW, hal yang perlu dipersiapkan adalah membangun vocabulary atau kosakata dari dataset. Peneliti menggunakan library gensim untuk membangun vocabulary atau kosakata, training model dan.

(54) 39. memprediksi kedekatan antar kata. Membangun vocabulary atau kosakata artinya menemukan distinct word dan mengubahnya menjadi one hot encoding. Distinct word adalah kata yang berbeda dalam korpus. Distinct word pada penelitian berjumlah 143.228. Peneliti menggunakan parameter min_count = 3 artinya kata yang memiliki frekuensi kurang dari 3 akan diabaikan sehingga distinct word yang diperoleh pada penelitian ini menjadi 49.489. Model word2vec menggunakan single neural network artinya model hanya menggunakan 3 layer yaitu input layer, hidden layer dan output layer.. 3.6.1.1 Forward Propagation Algoritma CBOW memprediksi kata target berdasarkan konteks kata. Gensim memiliki parameter window yang menentukan jumlah kata disekitar kata target dari kedua sisi yaitu kanan dan kiri. Jika konteks kata berjumlah 10 kata kekanan dari kata target dan 10 kata ke kiri dari kata target. Pada input layer, panjang input layer adalah 49.489 sesuai dengan panjang vocabulary atau kosakata. Untuk setiap inputan X memiliki dimensi sebesar 49.489.. Gambar 3.5 Analogi CBOW.

(55) 40. Gambar 3.6 Ilustrasi Neural Network CBOW Selanjutnya nilai di input layer dikali dengan weight atau bobot yang bernilai random untuk mendapatkan nilai hidden layer. Hidden layer berjumlah sama dengan besar dimensi yang ditentukan yaitu 300. Selanjutnya nilai hidden layer dikali dengan weight yang bernilai random juga untuk mendapatkan nilai output dengan dimensi sebanyak 49.489. Selanjutnya nilai output di aktivasi dengan fungsi aktivasi softmax. Fungsi aktivasi softmax mengklasifikasikan class output maka dari itu untuk mengoptimalkannya diperlukan hierarki softmax. Hierarki softmax membentuk kata-kata menjadi binary tree dimana setiap kata direpresentasikan sebagai node daun. Hierarki softmax menggunakan Huffman tree untuk membentuk binary tree dimana kata yang sering bermunculan akan berada di node atas sedangkan kata yang jarang muncul akan di letakkan di node bawah.. 3.6.1.2 Eror Calculation.

(56) 41. Menghitung error atau kesalahan berfungsi untuk mengetahui seberapa akurat kinerja model dan memperbarui weight yang sesuai. Untuk menghitung error atau kesalahan dengan menggunakan loss function. Batas nilai loss function adalah antara 0 sampai 1. 3.6.1.3 Back Propagation Nilai weight pada awal pelatihan model bernilai acak dan ketika hasil loss function besar maka nilai weight perlu di hitung ulang artinya nilai weight akan diubah setiap iterasi untuk mendapatkan hasil prediksi yang baik. Learning rate yang dipakai dalam penelitian adalah 0.025. Jika nilai learning rate lebih besar daripada loss function ada baiknya nilai learning rate dikurang dan sebaliknya apabila nilai loss function besar ada baiknya nilai learning rate ditambah. Word2vec menggunakan gradient descent untuk memperbarui nilai weight. Peneliti menggunakan epoch default dari gensim yaitu 5 dalam melatih model artinya terdapat 5 kali perulangan back propagation dan 5 kali update nilai weight dalam melatih model.. 3.6.2. Penjelasan Algortima Skip-gram. Parameter yang digunakan pada algoritma skip-gram hanya berbeda sedikit dengan CBOW, yang berbeda hanyalah parameter sg,hs dan negative. Untuk mengaktifkan algoritma skip-gram maka parameter sg harus bernilai 1 dan negative harus besar dari 0. Untuk membangun vocabulary atau kosakata sama seperti CBOW.. 3.6.2.1 Forward Propagation Algortima skip-gram memprediksi konteks kata berdasarkan kata target. Artinya output yang dihasilkan model lebih dari satu. Nilai yang dimasukkan kedalam input layer dan proses hingga ke hidden layer sama seperti CBOW. Namun saat proses hidden layer ke output layer berbeda dengan CBOW..

(57) 42. Gambar 3.7 Analogi Skip-gram. Gambar 3.8 Ilustrasi Neural Network Skip-gram Output dari algoritma skip-gram lebih dari satu sehingga untuk mendapatkan nilai output maka nilai hidden layer dikalikan dengan masing-masing nilai weight output. Nilai weight diantara hidden layer dan output layer sama. Selanjutnya nilai output diaktivasi dengan menggunakan fungsi aktivasi softmax. Negative sampling berfungsi untuk mengoptimisasi nilai dari fungsi aktivasi softmax dengan cara memperbarui beberapa kata secara acak dari masing-masing iterasi. Output kata target harus termasuk dalam kata acak tersebut dan di perbarui dan selanjutnya ditambahkan beberapa kata yang bukan kata target sebagai negative sample.. 3.6.2.2 Error Calculation.

(58) 43. Menghitung error atau kesalahan di skip-gram berbeda dengan CBOW karena skip-gram memprediksi kata lebih dari satu. Untuk menghitung error atau kesalahan pada Skip-gram yaitu dengan menjumlahkan semua error.. 3.6.2.3 Back Propagation Untuk memperbarui weight model dengan menggunakan algoritma Skip-gram hampir sama dengan CBOW yaitu dengan menggunakan Gradient Descent. Learning rate yang digunakan adalah 0.025 dan epoch yang digunakan adalah 5 yang artinya adalah model akan melakukan back propagation sebanyak 5 kali atau iterasi dan nilai weight akan di perbarui sebanyak 5 kali juga. Sama seperti CBOW jika nilai loss function-nya besar ada baiknya jika nilai learning rate-nya dikurang dan sebaliknya jika nilai loss functionnya kecil ada baiknya nilai learning rate ditambah..

(59) BAB IV. IMPLEMENTASI DAN PENGUJIAN. Pada bab ini akan dijelaskan hasil analisis dari proses word embedding Bahasa Indonesia dengan menggunakan word2vec sesuai dengan perancangan sistem yang telah dijabarkan pada Bab 3. 4.1 Implementasi Sistem Dalam mengimplementasikan metode word embedding sesuai dengan perancangan menggunakan Bahasa pemogramaan python, komponen perangkat keras dan perangkat lunak yang diperlukan adalah sebagai berikut: 4.1.1. Spesifikasi Perangkat Keras. Adapun spesifikasi perangkat keras yang digunakan pada penelitian ini adalah sebagai berikut: 1. Processor Intel(R) Core(TM) i5-8250U CPU 1.60GHz 2. Memory RAM 8 GB 3. Kapasitas hardisk 1 TB 4. Nvidia GeForce MX 130. 4.1.2. Spesifikasi Perangkat Lunak. Adapun spesifikasi perangkat lunak yang digunakan pada penelitian ini adalah sebagai berikut 1. Sistem operasi Windows 10 Home Single Language 64-bit 2. Jupyter notebook 5.7.0 3. Python 3.

(60) 40. 4. Library : requests, BeautifulSoup, gensim, numpy, pandas, NLTK. 4.2 Implementasi Web Scrapping Dataset yang digunakan untuk membentuk vektor kata Bahasa Indonesia adalah karya tulis mahasiswa di Fakultas Ilmu Komputer dan Teknologi Informasi. Karya tulis tersebut didapat dengan cara mengunduh di situs repositori Universitas Sumatera Utara. Untuk mengunduh ratusan karya tulis secara otomatis, penulis membutuhkan alamat penyimpanan di storage Universitas Sumatera Utara untuk mengunduhnya. Untuk mendapatkan link tersebut, peneliti memerlukan dua kali scrapping. Yang pertama adalah untuk mendapatkan link menuju halaman yang menyediakan link untuk mengunduh karya tulis. Yang kedua adalah link untuk mengunduh karya tulis.. Gambar 4.1 Scrapping Link Pertama.

(61) 41. Gambar 4.2 Scrapping Link Kedua Peneliti menggunakan Jupyter Notebook untuk scraping link karya tulis tersebut. Jupyter notebook adalah aplikasi web yang bersifat open-source untuk membuat. dan. berbagi. dokumen. kode. pemograman. Jupyter. notebook. diimplementasikan dalam bentuk kernel dan dapat mendukung 100 bahasa pemograman, salah satunya adalah python. Untuk mendapatkan link tersebut menggunakan metode scrapping dengan library BeautifulSoup dan regex. Regex berfungsi untuk mencocokkan teks dengan pola yang telah ditentukan. Didalam sebuah situs web terdapat banyak tag html, maka untuk mendapatkan tag a href diperlukan regex. Setidaknya terdapat 899 karya ilmiah dari jenjang studi ekstensi hingga doktoral namun peneliti hanya mendapatkan 627 karya ilmiah. Hal ini dikarenakan untuk mengunduh karya tulis tersebut harus menggunakan jaringan kampus dan stabil. Namun tidak hanya itu, terdapat beberapa karya tulis yang tidak dapat diunduh serta harus diunduh secara berulang-ulang agar berhasil. Berikut adalah hasil scrapping link pertama.

(62) 42. Gambar 4.3 Hasil Scrapping Link Pertama Kemudian link yang telah didapatkan diubah ke sebuah file dengan format txt yang nantinya akan digunakan untuk scrapping link ke dua. Link kedua adalah link untuk mendapatkan link mengunduh karya tulis. Berikut adalah hasil scrapping link kedua. Gambar 4.4 Hasil Scrapping Link Kedua 4.3 Implementasi Word Embedding Sebelum membuat model untuk training dataset, dataset yang didapat dari situs web berupa PDF harus di ubah menjadi fomat txt. Ini dikarenakan file txt lebih mudah di akses dibandingkan PDF. Peneliti menggunakan dua arsitektur word embedding yaitu Continuous Bag-of-Word dan Skip-gram untuk pelatihan model. Kedua arsitektur ini telah disediakan oleh library gensim. Jumlah kata yang digunakan untuk pengujian adalah 7.166.098 kata. Berikut adalah grafik vektor kata dalam bentuk 2 dimensi.

(63) 43. Gambar 4.5 Vektor Kata dalam Bentuk 2 Dimensi Berikut adalah daftar kata-kata yang saling berkaitan berdasarkan masing-masing bidang ilmu komputer dan teknologi. Tabel 4.1 Daftar kata yang berkaitan dengan bidang ilmu No 1.. Bidang ilmu Kriptografi. Kata yang berkaitan Asimetri, simetris, ekripsi, dekripsi, kunci-publik, plaintext,. chipertext,. Hill. Chiper,. steganografi,. pengamanan file 2.. 3.. Pengolahan. Threshold, grayscale, bit, rgb, segementasi, sobel,. Citra. gradient, filter, bmp. Kecerdasan. Semantik, vektor, korpus, dataset, matriks, klasifikasi,. Buatan. deep learning, machine learning, backpropagation, cosine similarity, naïve bayes, chatbot, linear. 4.. Mikrokontroller Arduino, uno, atmega, sensor, android, IoT. 5.. Desain Analisis Algoritma. dan Kompresi,. dekompresi,. dekripsi,. Huffman, steganografi, kriptografi.. lossless,. lossy,.

Referensi

Garis besar

Dokumen terkait

Setelah itu dikocok selama 30 menit dan disaring ke dalam labu ukur 100 ml yang kemudian ditera dengan menggunakan aquades hingga 100 ml.. Kemudian ekstrak baik

Seperti aplikasi penggabungan akad yang diharamkan terdapat dalam hadis adalah bai‟ al-„inah, penggabungan jual beli dengan salaf (hutang).Oleh sebab itu

Peraturan Bupati ini mengatur secara lebih terperinci mengenai pedoman pemberian tunjangan penghargaan puma bakti bagi Kepala Desa sebagai bentuk apresiasi

Dari penelitian uji efektivitas benzalkonium klorida konsentrasi 0,001% pada pH 5 terhadap efektivitas benzalkonium klorida sebagai pengawet pada sediaan steril

KESATU : Keputusan Gubernur tentang Penetapan Indikator Kinerja Utama Pemerintah Provinsi Kalimantan Selatan dan Indikator Kinerja utama Satuan Kerja

usaha kerajinan tas Aceh di Desa Ulee Madon, sedangkan variabel jam kerja berpengaruh positif tetapi tidak signifikan. Berdasarkan hasil penelitian yang dilakukan

Hasil uji hipotesis secara simultan (uji-f) penelitian ini adalah variabel knowledge sharing berpengaruh signifikan terhadap kinerja pegawai PT Pertamina MOR III, yang

Keterlibatan ayah sebagai orangtua dalam memberikan dukungan, dorongan, menerapkan peraturan, dan pemantauan dapat membantu remaja untuk meningkatkan kontrol diri,