SPELL CORRECTION DWI BAHASA DENGAN METODE FASTTEXT DAN PETER NORVIG
SKRIPSI
ANDREW WIJAYA 171401067
PROGRAM STUDI S-1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN
SPELL CORRECTION DWI BAHASA DENGAN METODE FASTTEXT DAN PETER NORVIG
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
ANDREW WIJAYA 171401067
PROGRAM STUDI S-1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2021
PERNYATAAN
SPELL CORRECTION DWI BAHASA DENGAN METODE FASTTEXT DAN PETER NORVIG
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 15 November 2021
Andrew Wijaya 171401067
UCAPAN TERIMA KASIH
Segala puji dan syukur atas berkat dan Tuhan Yang Maha Esa yang memberikan kelancaran dan kemudahan sehingga penulis mendapatkan kesempatan untuk menyelesaikan tugas akhir ini sebagai salah satu syarat untuk mendapatkan gelar Sarjana Komputer di Program Studi S-1 Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara.
Penulis sangat banyak mendapatkan bantuan moril dan materil. Rasa terimakasih yang sebesar-besarnya untuk pihak yang telah memungkinkan penulis menyelesaikan tugas akhir ini, antara lain :
1. Bapak Dr. Muryanto Amin, S Sos.,M.Si. selaku Rektor Universitas Sumatera Utara.
2. Ibu Dr. Maya Silvi Lydia B.Sc., M.Sc. selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
3. Ibu Dr. Amalia, S.T., M.T. selaku Ketua Program Studi S-1 Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara dan dosen pembimbing I yang selalu memberikan bimbingan dan saran agar penulis dapat menyelesaikan tugas akhir ini.
4. Ibu Sri Melvani Hardi, S.Kom, M.Kom selaku Sekretaris Program Studi S-1 Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
5. Ibu Elviwani, S.Kom, M.Kom. selaku dosen pembimbing II yang telah memberikan bimbingan, saran, masukan agar penulis dapat menyelesaikan tugas akhir.
6. Bapak Herriyance, S.T., M.Kom selaku dosen pembimbing akademik selama penulis menempuh pendidikan di S-1 Ilmu Komputer.
7. Seluruh dosen dan pegawai di Program Studi S-1 Ilmu Komputer Fasilkom-TI Universitas Sumatera Utara.
8. Kedua orang tua tercinta Ibunda Jusniaty dan Ayahanda Anda Darwi Anton yang senantiasa memberikan doa, dukungan moral dan materil, kesabaran, perhatian dan kasih sayang yang berlimpah kepada penulis.
9. Kakak Carine Wijaya yang selalu senantiasa memberikan doa dan dukungan dalam
penulis yaitu Reksa Anjangsara, Niken, Christian Tambunan, Kristov, Stephen, Vandrick dan Kevin.
11. Teman-teman stambuk 2017 khususnya kom A yang telah mendukung dan mewarnai masa perkuliahan.
13. Kakak dan abang senior yang telah membantu penulis selama masa perkuliahan.
14. Semua pihak yang telah membantu penulis dalam penyelesaian skripsi ini yang tidak dapat disebutkan satu per satu.
Penulis menyadari bahwa penelitian ini masih jauh dari kata sempurna. Namun semoga penelitian ini bermanfaat kepada pembaca. Semoga Tuhan memberkati kita semua.
Amin.
Medan, 15 November 2021 Penulis,
Andrew Wijaya
ABSTRAK
Kesalahan ejaan pada penulisan dokumen formal sering terjadi secara tidak sengaja. Kesalahan ejaan memiliki beberapa jenis kesalahan, seperti Non-word Errors, Real Word Errors, dan Cognitive Errors. Spell correction dapat diimplementasikan dengan menghitung jarak kata, sehingga kata yang tepat dapat menggantikan kata yang salah eja. Terdapat berbagai pilihan untuk mengkonversi kata dalam format string menjadi bentuk angka sehingga proses kalkulasi jarak kata dapat dilakukan. Pada penelitian ini dilakukan kombinasi fastText dan metode Peter Norvig. Model fastText yang telah didapatkan melalui proses training akan digunakan saat menghitung kandidat kata pada metode Peter Norvig. Penelitian ini bertujuan untuk membangun sistem spell correction yang dapat digunakan di dalam dua bahasa yaitu bahasa Inggris dan bahasa Indonesia. Penulis mengimplementasikan sistem ke dalam aplikasi berbasis web. Hasil evaluasi yang telah dilakukan dapat menyimpulkan bahwa Spell Correction dapat dilakukan dengan mengkombinasikan fastText dengan metode Spell Correction Peter Norvig dimana mendapatkan tingkat akurasi 62%.
BILINGUAL SPELLING CORRECTION USING FASTTEXT AND PETER NORVIG METHODS
ABSTRACT
Spelling errors in writing a formal document often occur accidentally. Spelling errors have several types of errors such as Non-word Errors, Real Word Errors and Cognitive Errors. Spell correction can be implemented by calculating word spacing, so that the correct word can replace the misspelled word. There are various options for converting words in string format into numbers so that the word distance calculation process can be carried out. In this study, a combination of fastText and the Peter Norvig method is used. The fastText model that has been trained will be used when calculating candidates of word in the Peter Norvig method. This study aims to build a spell correction system that can be used in two languages, namely English and Indonesian. The author implements the system into a web-based application. The results of the evaluation that have been carried out can conclude that spell correction can be done by combining fastText with Peter Norvig’s spel correction method which gets an accuracy rate of 62%.
Keywords: Spell Correction, fastText, Peter Norvig, Web Scraping.
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak v
Abstract vi
Daftar Isi viii
Daftar Tabel xi
Daftar Gambar xii
Daftar Lampiran x
BAB 1 PENDAHULUAN 1
1.1. Latar Belakang 1
1.2. Rumusan Masalah 3
1.3. Batasan Masalah 3
1.4. Tujuan Penelitian 3
1.5. Manfaat Penelitian 3
1.6. Metodologi Penelitian 4
1.7. Sistematika Penulisan 4
BAB 2 LANDASAN TEORI 6
2.1. Klasifikasi Teks 6
2.2. Representasi Teks 6
2.2.1. One-Hot Encoding 6
2.2.2 . Count Vectorizer 7
2.2.3. TF-IDF 7
2.3. Jaringan Saraf Tiruan 8
2.4. Word Embedding dan FastText 10 2.5. Spell Correction dengan Metode Peter Norvig 11
2.6. Penelitian yang Relevan 12
BAB 3 ANALISIS DAN PERANCANGAN 15
3.1 Arsitektur Umum 15
3.2 Scraping 16
3.3 Pre-processing Dataset 16
3.3.1. Case Folding 16
3.3.2. Data Cleaning 17
3.3.3. Tokenisasi 17
3.4 FastText 17
4.3. Metode Spell Correction Peter Norvig 18
4.3.1. Deletion 18
4.3.2. Transpose 19
4.3.3. Replacement 19
4.3.2. Insertion 20
3.5 Analisis Sistem 20
3.5.1. Analisis Masalah 20
3.5.2. Analisis Kebutuhan 21
3.6 Alur Proses 22
3.7 Pemodelan Sistem 23
3.7.1. Use Case Diagram 24
3.7.2. Activity Diagram 24
3.7.3. Sequence Diagram 26
3.7.4. Flowchart 26
BAB 4 IMPLEMENTASI DAN PENGUJIAN 29
4.1 Implementasi Sistem 29
4.1.1. Spesifikasi Perangkat Keras 29
4.1.2. Spesifikasi Perangkat Lunak 29
4.2. Implementasi Web Scraping 29
4.3. Pre-processing Dataset 32
4.3.1. Case Folding 32
4.3.2. Data Cleaning 32
4.3.3. Tokenisasi 33
4.4. Training model FastText 33
4.5. Metode Spell Correction Peter Norvig 34
4.6. Pengujian Sistem 34
4.7. Implementasi Aplikasi Berbasis Web 35
4.7.1. Membangun Rest API 35
4.7.2. Membangun Halaman Web 37
BAB 5 KESIMPULAN DAN SARAN 39
5.1. Kesimpulan 39
5.2. Saran 39
DAFTAR PUSTAKA 40
DAFTAR TABEL
Halaman
Tabel 2.1. One-Hot Encoding 7
Tabel 3.1. Hasil Case Folding 17
Tabel 3.2. Hasil Data Cleaning 17
Tabel 3.3. Hasil Tokenisasi 17
DAFTAR GAMBAR
Halaman
Gambar 2.1. Neuron Mamalia 8
Gambar 2.2. Arsitektur dari artificial neuron dan multilayered neural network
9
Gambar 3.1. Arsitektur Umum 15
Gambar 3.2. Contoh Hasil Deletion 18
Gambar 3.3. Contoh Hasil Transpose 19
Gambar 3.4. Contoh Hasil Replacement 19
Gambar 3.5. Contoh Hasil Insertion 20
Gambar 3.6. Bentuk Ishikawa Diagram 21
Gambar 3.7. Alur Proses 23
Gambar 3.8. Use Case Diagram 24
Gambar 3.9. Activity Diagram Proses Koreksi Ejaan 25
Gambar 3.10. Sequence Diagram Spell Correction 26
Gambar 3.11. Flowchart Metode Spell Correction Peter Norvig 27
Gambar 4.1. Scraping Halaman Utama 30
Gambar 4.2. Halaman Penulisan Abstrak 31
Gambar 4.3. Hasil Web Scraping 32
Gambar 4.4. Hasil Case Folding 32
Gambar 4.5. Hasil Data Cleaning 33
Gambar 4.6. Hasil Tokenisasi 33
Gambar 4.7. Hasil Pengujian Sistem 34
Gambar 4.8. Grafik Perbandingan 35
Gambar 4.9. Contoh Request Body 36
Gambar 4.10. Contoh Respon pada Atribut Corrected 36
Gambar 4.11. Contoh Respon pada Atribut Sentence 37
Gambar 4.12. Halaman Utama Web 37
Gambar 4.13. Perbandingan Kata 38
DAFTAR LAMPIRAN
Halaman
Lampiran 1 Curriculum Vitae A-1
BAB 1 PENDAHULUAN
1.1. Latar Belakang
Pada era teknologi sekarang ini, penulisan dokumen yang baik dan benar merupakan hal yang penting untuk diperhitungkan. Seringnya terjadi kesalahan penulisan dalam suatu dokumen merupakan masalah yang umum terjadi. Oleh karena itu sebuah Spell Correction berperan penting dalam mengoreksi kesalahan ejaan dalam sebuah penulisan.
Kesalahan ejaan memiliki beberapa jenis kesalahan, seperti Non-word Errors, kesalahan dalam pengejaan yang biasa terjadi seperti “jembatan” dieja menjadi
“jemabatan” yang tidak memiliki arti; Real World Errors, kesalahan ejaan yang menimbulkan maksud berbeda dengan maksud penulis dan memiliki arti yang lain seperti “basi” menjadi “basa”; Cognitive Errors, yang merupakan kesalahan pengejaan dikarenakan tidak mengetahui ejaan yang benar tetapi mengetahui intonasi dari suatu kata seperti “piece” dan “peace”.
Saat ini, sebagian besar portal publikasi ilmiah di repositori universitas – universitas di Indonesia menggunakan dua bahasa untuk penulisan abstrak yaitu bahasa Indonesia dan bahasa Inggris. Namun saat ini belum ada aplikasi spelling correction yang sekaligus dapat mengidentifikasi kedua bahasa yaitu bahasa Indonesia dan bahasa Inggris. Spelling correction dapat menggunakan pendekatan deep learning seperti fastText untuk representasi kata. Representasi kata yang dihasilkan dari metode fastTextmembutuhkan training dari korpus berukuran besar dan waktu training yang lama. Oleh sebab itu saat ini telah disediakan pretrained fastText siap pakai. Namun pretrained ini diperuntukkan untuk domain umum dan bukan domain spesifik untuk publikasi akademik. Berdasarkan hal ini, dibutuhkan suatu pretrained di domain spesifik dimana pada penelitian ini untuk publikasi ilmiah di domain komputer.
Selain fastText, metode representasi kata yang umum digunakan adalah Bag of Words (BoW). Metode BoW lebih sederhana dari segi komputasi namun memiliki
UNIVERSITAS SUMATERA UTARA
kekurangan dengan jumlah dimensi yang sangat besar dan juga kekurangan dalam menyisipkan informasi semantik dan sintaksis pada representasi vektor yang dihasilkan. Metode lainnya yaitu Word Embedding yang dikenalkan oleh Mikolov (Mikolov 2013). Word Embedding ini merupakan pioneer continuous representation yang dihasilkan dari proses neural network. Word embedding telah mampu menyisipkan informasi semantik disetiap representasi kata, namun untuk sintaksis belum sebaik semantik. Hal ini disebabkan word embedding oleh Mikolov menganggap satuan terkecil dari teks adalah kata, sehingga karakter penyusun kata diabaikan. Hal ini berdampak word embedding konvensional ini tidak akan mampu untuk mengidentifikasi kesalahan penulisan dari suatu kata. Pengembangan dari word embedding salah satunya adalah fastText. FastText memecah kata menjadi bentuk yang lebih kecil yaitu subword atau sub kata. Kelebihan fastText, representasi kata yang dihasilkan mempertimbangkan informasi struktur pembentuk kata yang dikenal dengan n-gram. Misalnya kata “bermain” untuk n-gram 3 akan menghasilkan subword
<be, ber, erm, rma, mai, ain, in>. Kamus data yang dihasilkan fastText lebih besar dari word embedding biasa karena pada fastText juga terdapat data vektor untuk subword.
Hal ini dapat dimanfaatkan untuk pengecekan spell correction pada suatu kata.
Pada penulisan ini, FastText digunakan sebagai kamus data yang direpresentasikan dengan Word Embedding. FastText digunakan dikarenakan terdapat kamus data bahasa Indonesia dan juga bahasa Inggris. FastText merupakan sebuah library yang dipublikasikan oleh Facebook. FastText dibuat dari pengembangan Word2Vec yang dipopulerkan oleh Mikolov (Mikolov 2013). FastText dapat memberikan balikan vektor meskipun kata yang dicari merupakan kata yang tidak ada di vocabulary. FastText dapat digunakan dengan algoritma CBOW dan Skipgram dengan metode Neural Network sehingga mendapatkan representasi vektor (Bojanowski 2017).
Dengan mengimplementasikan metode Spelling Correction yang dipopulerkan oleh Peter Norvig (Peter Norvig 2007). Penulis menggunakan dataset yang diberikan oleh FastText untuk mengurutkan suatu kemungkinan kata yang paling sering muncul sesuai dengan bahasa yang akan digunakan.
Pada metode Spelling Correction yang dipopulerkan oleh Peter Norvig (Peter Norvig, 2007), penulis mengacak kata demi kata dan memeriksa apakah kata tersebut terdapat pada kamus data. Jika terdapat lebih dari satu kandidat, maka kandidat yang
dibalikan merupakan kandidat kata dengan ranking tertinggi.
1.2. Rumusan Masalah
Seringnya terjadi kesalahan dalam penulisan kata dalam suatu dokumen merupakan masalah yang umum terjadi. Namun pengecekan penulisan masalah secara manual membutuhkan banyak waktu, tenaga dan biaya. Selain itu pengecekan spell untuk dwi bahasa merupakan hal yang penting karena di beberapa jurnal mengharuskan penulisan abstrak dibuat dalam bahasa Inggris dan bahasa Indonesia. Untuk itu pada penelitian ini dilakukan penelitian kombinasi fastText dengan metode Peter Norvig dalam Spell Correction dwi bahasa.
1.3. Batasan Masalah
Batasan masalah dalam penelitian ini sebagai berikut:
1. Mengkombinasikan FastText dengan metode Peter Norvig.
2. Jenis data yang akan diperiksa adalah format data pdf (*.pdf).
3. Pengecekan dilakukan hanya untuk teks bahasa formal dalam bahasa Inggris dan bahasa Indonesia.
4. Pengecekan dilakukan tidak spesifik kepada topik tertentu.
5. Penelitian ini dirancang dengan menggunakan bahasa pemrograman Python.
1.4. Tujuan Penelitian
Berdasarkan rumusan masalah di atas, maka tujuan dari penelitian ini adalah untuk melakukan Spell Correction dengan mengombinasikan FastText dengan metode Peter Norvig.
1.5. Manfaat Penelitian
Manfaat yang diperoleh dari penelitian ini antara lain :
1. Menghasilkan sistem yang dapat melakukan Spell Correction teks dengan mengkombinasikan FastText dengan metode Peter Norvig.
2. Hasil penelitian diharapkan dapat menjadi referensi untuk penelitian lainnya yang berkaitan.
UNIVERSITAS SUMATERA UTARA
1.6. Metodologi Penelitian
Beberapa tahapan dalam penelitian ini sebagai berikut : 1. Studi Literatur
Pada tahap ini penelitian dimulai dengan mencari referensi dari berbagai sumber terpercaya dan melakukan peninjauan pustaka melalui buku-buku, jurnal, e-book, artikel ilmiah, makalah ataupun situs internet yang berhubungan dengan FastText.
2. Analisis dan Perancangan
Berdasarkan ruang lingkup penelitian, penulis melakukan analisa terhadap apa saja yang akan dibutuhkan dalam penelitian untuk segera dirancang dalam sebuah diagram alir (flowchart).
3. Implementasi Sistem
Pada tahap ini, membuat sebuah sistem dengan menggunakan bahasa pemrograman python sesuai dengan diagram alir yang telah dirancang.
4. Pengujian Sistem
Pada tahap ini, sistem yang telah dirancang dilakukan uji coba untuk melakukan Spell Correction dwi bahasa dengan menggunakan FastText dan metode Peter Norvig.
5. Dokumentasi
Pada tahap ini, penelitian yang telah dilakukan, didokumentasikan mulai dari tahap analisis sampai kepada pengujian dalam bentuk skripsi.
1.7. Sistematika Penulisan
Sistematika dalam penulisan skripsi ini terdiri dari beberapa bagian utama sebagai berikut:
BAB 1 PENDAHULUAN
Bab ini berisikan latar belakang penulis dalam memilih judul skripsi
“Spell Correction Dwi Bahasa dengan Metode FastText dan Peter Norvig”, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, serta sistematika penulisan.
BAB 2 LANDASAN TEORI
Bab ini memaparkan gambaran umum Natural Language Processing, FastText dan metode Peter Norvig.
BAB 3 ANALISIS DAN PERANCANGAN
Bab ini menjabarkan analisis masalah dalam penelitian ini dalam bentuk diagram-diagram dan juga perancangan user interface yang akan dibangun.
BAB 4 IMPLEMENTASI DAN PENGUJIAN
Bab ini menampilkan hasil implementasi sistem berdasarkan rancangan yang telah dilakukan dan juga pengujian kinerja setiap algoritma.
BAB 5 KESIMPULAN DAN SARAN
Bab ini mengemukakan kesimpulan dari seluruh hasil pengujian dan saran yang berguna untuk penelitian selanjutnya.
UNIVERSITAS SUMATERA UTARA
BAB 2
LANDASAN TEORI
2.1. Klasifikasi Teks
Klasifikasi teks adalah sebuah permasalahan yang penting dalam Natural Language Processing (NLP), seperti spam filtering dan kategorisasi e-mail.
Klasifikasi teks juga merupakan komponen penting di sistem yang lebih kompleks seperti pencarian dan pengurutan.
Teknik Deep Learning yang menggunakan neural network atau jaringan saraf tiruan telah dapat diaplikasikan ke dalam NLP. Keberhasilan ini dikarenakan oleh efektifitas dari recurrent network untuk model bahasa dan aplikasinya di pengenalan suara dan mesin penerjemah. Akan tetapi, di kasus klasifikasi teks terbukti bahwa deep network tidak juga mengalahkan teknik tradisional.
Meskipun memerlukan waktu yang lebih lama dibandingkan teknik tradisional, yang menggunakan n-grams, neural network sering dianggap sebagai alternatif yang tepat untuk mendapatkan model yang kecil. Hal ini penting untuk aplikasi yang akan dijalankan di sistem dengan memori yang terbatas seperti smartphone.
2.2. Representasi Teks
Dikarenakan model dari Machine Learning hanya dapat memproses nilai – nilai yang berbentuk angka, maka diperlukan representasi teks yang sesuai.
2.2.1. One-Hot Encoding
One-Hot Encoding dapat menjadi pilihan yang tepat pada permasalahan kategorisasi pada dataset. Teknik ini tergolong sederhana dan mudah untuk digunakan karena menggunakan vector yang berisi nilai nol, kecuali posisi yang sesuai dengan indeks bersangkutan maka akan bernilai satu.
Tabel 2.1 One-Hot Encoding
KATA apa ada aku …
apa 1 0 0 …
ada 0 1 0 …
aku 0 0 1 …
… … … … …
Ketika menggunakan One-Hot Encoding pada dokumen teks, token – token akan ditimpa oleh One-Hot Vectors dan kalimat yang diberikan akan diubah menjadi matriks dua dimensi dengan bentuk (n, m), dimana n merupakan banyaknya token dalam sebuah kalimat dan m adalah ukuran dari vocabulary.
2.2.2. Count Vectorizer
One-Hot Encoding dapat memberikan representasi dalam bentuk token dalam sebuah kalimat dengan mempertahankan keutuhan susunan kalimat awal. Count Vectorizer dibentuk berdasarkan frekuensi jangka dan didapatkan dari menindih sebuah kalimat menjadi sebuah vektor. Setiap posisi direpresentasikan sebagai sebuah token dan nilainya menunjukkan banyak kemunculan token pada kalimat tersebut.
Token – token dihasilkan dari korpus dan kosa kata digunakan untuk menggambarkan token tersebut untuk identitas tertentu. Count Vector menghitung banyaknya kemunculan setiap token pada sebuah kalimat.
2.2.3. TF-IDF
Count Vectorizer hanya terbatas untuk merepresentasikan konteks dari kalimat dikarenakan tidak merepresentasikan urutan dari token – token. Masalah ini muncul ketika kata – kata yang sering muncul terdapat pada sebuah kalimat seperti
“dan”, “itu”, “saya” yang tidak menunjukkan konteks informasi yang diberikan oleh sebuah kalimat akan tetapi memiliki frekuensi kemunculan yang tinggi dan jika menghilangkan kata “dokter” yang memiliki frekuensi kemunculan yang sedikit tetapi mengandung informasi yang bermakna.
UNIVERSITAS SUMATERA UTARA
TF-IDF memiliki kepanjangan yaitu Term-Frequency Inverse Document Frequency dan digunakan untuk mengatasi masalah sebelumnya dengan menghitung ulang sesuai dengan berapa banyak kalimat berbeda yang digunakan oleh setiap token.
𝑡𝑓 − 𝑖𝑑𝑓(𝑡, 𝑑) = 𝑡𝑑(𝑡, 𝑑) . 𝑖𝑑𝑓(𝑡) 𝑖𝑑𝑓(𝑡) = log 1 + 𝑛
1 + 𝑑𝑓(𝑡)+ 1
2.3. Jaringan Saraf Tiruan
Algoritma Otak manusia membuktikan bahwa jaringan saraf berhasil melakukan berbagai hal seperti mengenal wajah, percakapan, dan menggerakkan anggota tubuh. Kelebihan dari otak manusia adalah efektifitas dari struktur komputasi paralel. Otak manusia terdiri dari sepuluh triliun neuron yang saling berhubungan.
Setiap neuron adalah sebuah sel yang menggunakan reaksi biokimia untuk menerima, memproses dan mengirimkan informasi.
Jaringan saraf yang menyerupai ranting pohon disebut dendrit dan berguna untuk menyambungkan badan sel, dimana sel nukleus berada. Dan ada jaringan saraf yang keluar dari badan sel yang disebut axon.
Gambar 2.1 Neuron Mamalia
Jaringan saraf tiruan telah dikembangkan dengan cara matematika yang mengikuti contoh jaringan saraf manusia. Proses sederhana dari jaringan saraf tiruan disebut dengan artificial neurons, atau simply neurons atau nodes. Secara matematis, direpresentasikan dengan simpul dan sisi. Sinyal dari neuron akan dihitung berdasarkan masukan yang diberikan dan diubah dengan transfer
function. Agar jaringan saraf tiruan dapat belajar maka diperlukan penyesuaian weights berdasarkan algoritma yang diinginkan.
Gambar 2.2 Arsitektur dari artificial neuron dan multilayered neural network
Neuron buatan yang khas dan pemodelan jaringan saraf berlapis diilustrasikan pada Gambar 2.2. Berdasarkan gambar tersebut, masukan dari x1,
…, xn dikategorikan satu arah, dimana terdapat panah – panah, dan memiliki keluaran (O). Sinyal keluaran neuron (O) ini dihitung dengan:
𝑂 = 𝑓(𝑛𝑒𝑡) = 𝑓 (∑ 𝑤𝑗𝑥𝑗
𝑛
𝑗=1
)
Dimana 𝑤𝑗 adalah vektor berat (weight vector), dan 𝑓(𝑛𝑒𝑡)adalah sebuah fungsi aktivasi (activation function).
Dalam jaringan saraf tiruan, terdapat tiga arsitektur dasar lapisan neuron yaitu: input, hidden, output. Dalam jaringan feed-forward, aliran sinyal dibentuk dari masukan dan dikirim sampai keluaran. Pemrosesan data ini juga dapat berjalan di lapisan yang berlapis – lapis akan tetapi tidak ada umpan balik yang terjadi. Recurrent Network memiliki hubungan umpan balik.
Sebuah jaringan saraf tiruan dapat dikonfigurasi sehingga keluarannya sesuai dengan aplikasi yang diinginkan. Ada berbagai metode untuk menentukan kekuatan dari koneksi yang berhubungan. Salah satunya adalah dengan menentukan nilai weights, selain itu adalah dengan mengajarkan jaringan saraf untuk mempelajari pola mengajar dan memberikan weights berdasarkan beberapa aturan pembelajaran. Pembelajaran dalam jaringan saraf tiruan dapat dibagi menjadi tiga jenis, yaitu supervised learning, unsupervised learning, dan reinforcement learning.
UNIVERSITAS SUMATERA UTARA
2.3.1. Hebbian Learning
Konsep terpenting yang muncul dari Hebb adalah pernyataannya tentang bagaimana pembelajaran berlangsung. Pembelajaran didasarkan pada modifikasi koneksi sinaptik antara neuron. Secara khusus, ketika akson sel A cukup dekat untuk mempengaruhi sel B, beberapa proses pertumbuhan atau perubahan metabolisme terjadi dalam satu atau kedua sel sehingga efisiensi A, sebagai salah satu sel yang menembakkan B meningkat. Prinsip ini dinamakan Hebbian Learning. Sebenarnya, sebagian besar teknik pembelajaran jaringan saraf dapat dianggap sebagai varian dari aturan Hebbian Learning. Pada dasarnya jika kedua neuron aktif secara bersamaan, interkoneksi mereka harus diperkuat. Jika mempertimbangkan jaringan lapisan tunggal, salah satu neuron yang saling berhubungan akan menjadi unit input dan satu unit output. Jika data direpresentasikan dalam bentuk bipolar, maka mudah untuk mengekspresikan weight yang diinginkan seperti:
𝑤𝑖(𝑛𝑒𝑤) = 𝑤𝑖(𝑜𝑙𝑑) + 𝑥𝑖𝑜
Dimana o adalah keluaran yang diinginkan untuk
𝑖 = 1 𝑡𝑜 𝑛(𝑖𝑛𝑝𝑢𝑡𝑠)
Sayangnya, Hebbian learning yang polos terus -menerus memperkuat weights tanpa batas (kecuali data masukan telah dinormalisasi dengan baik).
2.3.2. Pembelajaran Perceptron
Perceptron adalah jaringan saraf lapisan tunggal yang bobot dan bias dapat dilatih untuk menghasilkan vektor target yang benar ketika diberikan masukan yang sesuai. Teknik pelatihan yang digunakan disebut aturan perceptron learning.
Perceptron tepat digunakan untuk permasalah sederhana mengenai klasifikasi pola.
Jika kita memiliki sekumpulan sampel pembelajaran yang terdiri dari vektor masukan x dan keluaran yang diinginkan d(k). Untuk sebuah permasalahan klasifikasi, d(k) biasanya ditambah atau dikurang dengan nilai satu.
2.4. Word Embedding dan FastText
Word Embedding adalah pondasi dari Natural Language Processing (NLP).
Untuk membuat model bahasa, dibutuhkan representasi dari kata untuk menyimpan informasi. Kebanyakan rise menggunakan vector word embedding seperti Word2Vec (Mikolov, 2013), dimana kata – kata yang memiliki kemiripan akan memiliki letak titik vektor yang berdekatan dan melakukan proses training dengan menggunakan Jaringan Saraf Tiruan.
Teknik sebelumnya memiliki beberapa kekurangan yaitu ketidakmampuan untuk merepresentasikan kata – kata yang langka. Character- level word embedding digunakan untuk memecahkan permasalahan ini. Di dalam FastText, setiap kata dimodelkan dengan jumlah dari vektor – vektor, dan setiap vektor direpresentasikan dengan n-gram. Keuntungannya adalah proses training dapat membagikan nilai berdasarkan sumbernya. Sebagai contoh, dalam bahasa inggris dengan representasi individual untuk “circum” dan “navigation”, dapat dikonstruksi untuk representasi informasi “circumnavigation” dimana kata tersebut termasuk kata yang langka untuk dipelajari dengan metode dictionary- level embedding. Character-level embeddings juga dapat merepresentasikan kata yang tidak baku atau kata yang terdapat kesalahan dalam pengejaan.
Terdapat cara yang tidak menggunakan point vector dalam merepresentasikan kata yaitu dengan probability distributions. Seperti Vilnis dan McCallum (2014) merepresentasikan kata dengan distribusi Gaussian.
Athiwaratkun dan Wilson (2017) menggeneralisasi dengan menggunakan multimodal probability distributions.
2.5. Spell Correction dengan metode Peter Norvig
Ketika mengoreksi sebuah kata, tidak ada yang tahu pastinya kata tersebut seharusnya berubah menjadi sebuah kata baru yang diinginkan, contohnya kata
“baku” bisa saja diubah menjadi “beku”, “baju”, buku” dan lain – lain. Sehingga dapat menggunakan probabilitas dalam menghitung kemungkinan terbesar.
Dengan Bayes Theorem dapat diformulasikan menjadi:
𝑎𝑟𝑔𝑚𝑎𝑥𝑐 ∈𝑐𝑎𝑛𝑑𝑖𝑑𝑎𝑡𝑒𝑠𝑃(𝑐)𝑃(𝑤|𝑐)/𝑃(𝑤)
Dimana P(w) adalah sama untuk setiap kandidat c yang memungkinkan,
UNIVERSITAS SUMATERA UTARA
sehingga formula tersebut dapat menjadi:
𝑎𝑟𝑔𝑚𝑎𝑥𝑐∈𝑐𝑎𝑛𝑑𝑖𝑑𝑎𝑡𝑒𝑠𝑃(𝑐)𝑃(𝑤|𝑐)
Terdapat 4 (empat) bagian dalam ekspresi tersebut:
1. Selection Mechanism: 𝑎𝑟𝑔𝑚𝑎𝑥
Memilih kandidat dengan probabilitas tertinggi.
2. Candidate Model: 𝑐 ∈ 𝑐𝑎𝑛𝑑𝑖𝑑𝑎𝑡𝑒𝑠
Memberitahukan kandidat koreksi c untuk dipertimbangkan 3. Language Model: 𝑃(𝑐)
Probabilitas dari c muncul dari kamus bahasa. Sebagai contoh, kemunculan kata “the” muncul sekitar 7% dari teks berbahasa inggris, sehingga P(the) = 0.07.
4. Error Model: 𝑃(𝑤|𝑐)
Probabilitas dari w yang diketik oleh penulis dimana yang dimaksud adalah kata c. Sebagai contoh, P(don|dan) akan mendapatkan nilai yang lebih tinggi dibandingkan P(doqwn|dan) yang akan mendapatkan nilai probabilitas yang lebih kecil
2.6. Penelitian yang Relevan
Terdapat beberapa penelitian terdahulu yang revelan terhadap penelitian yang akan dilakukan oleh penulis yaitu sebagai berikut:
1. Pada penelitian “An Efficient Text Classification Using fastText for Bahasa Indonesia Documents Classification” (Amalia, et al., 2020) berisi tentang mengomparasikan klasifikasi teks menggunakan model TFIDF dengan fastText yang menggunakan 500 artikel berbahasa Indonesia. Hasil dari penelitian, menunjukkan bahwa keduanya memiliki performa yang bagus dengan mendapatkan 0.97 F-score. Model TFIDF memerlukan tahap pre- processing dan training yang lebih lama. Sedangkan fastText hanya memerlukan penyesuaian terhadap hyperparameters dan mendapatkan performa yang mirip dengan model TFIDF.
2. Pada penelitian “Bahasa Indonesia pre-trained word vector generation using word2vec for computer and information technology field” (Syarifah
K Putri, et al., 2021) berisi tentang membangun pre-trained word vectors untuk domain spesifik yaitu komputer dan teknologi informasi. Dimana peneliti menggunakan dataset yang diambil dari repositori Universitas Sumatera Utara (USU). Peneliti menggunakan word2vec, dimana model ini memiliki dua arsitektur, yaitu Continuous Bag-of-Words (CBOW) dan skip- gram. Penelitian ini menyimpulkan bahwa metode CBOW lebih efektif daripada metode Skip-gram.
3. Pada penelitian “A Relevant document search system model using word2vec approaches” (Selina A Savitri, et al., 2021) yang berisi tentang pencarian semantik untuk mendapatkan relevansi di antara masukan pengguna dan tulisan akademik yang keluar sebagai hasil pencarian. Dalam penelitian ini, penulis mengimplementasikan word2vec dalam mengubah kalimat menjadi vektor. Dalam penelitian ini, dapat diambil kesimpulan bahwa akurasi rata – rata dari dataset yang kecil mendapatkan hasil 46% dan 73% untuk datasets yang lebih besar.
4. Pada penelitian “Rancang Bangun Aplikasi Pencarian Berkas Menggunakan Algoritma Word2Vec” (Sutirta, et al., 2020) berisi tentang sistem pencarian berdasarkan keyword dan pengoreksi ejaan yang diproses dengan Damerau-Levenshtein Distance dengan tingkat akurasi 35,26% dan 47% untuk pencarian dan pengoreksi ejaan dari 100 kali percobaan yang dilakukan.
5. Pada penelitian “Efficient Estimation of Word Representation in Vector Space” (Mikolov, et al., 2013) berisi tentang dua arsitektur model baru untuk menghitung representasi vektor kontinu dari kata – kata kumpulan data yang sangat besar. Kualitas representasi tersebut diukur dalam tugas kesamaan kata, dan hasilnya dibandingkan dengan teknik terbaik dari berdasarkan tipe – tipe dari jaringan saraf tiruan.
6. Pada penelitian “FastText.zip: Compressing Text Classification Models”
(Joulin, et al., 2016) berisi tentang pertimbangan masalah dalam menghasilkan arsitektur kompak untuk klasifikasi teks, sehingga model lengkap sesuai dengan jumlah memori yang terbatas. Eksperimen yang dilakukan pada beberapa tolak ukur menunjukkan bahwa pendekatannya
UNIVERSITAS SUMATERA UTARA
biasanya membutuhkan dua kali lipat memori lebih sedikit daripada fastText sementara hanya sedikit lebih rendah dalam hal akurasi
7. Pada penelitian “Enriching word vectors with subword information.
Transactions of the Association for Computational Linguistics”
(Bojawnoski, 2017) berisi tentang representasi kata berkelanjutan, yang dilatih dengan corpora besar tanpa label yang akan berguna untuk topik NLP dengan mengusulkan pendekatan baru berdasarkan model skip-gram, dimana setiap kata direpresentasikan sebagai sekelompok kata n-gram.
Representasi vektor dikaitkan dengan setiap karakter n-gram.
BAB 3
ANALISIS DAN PERANCANGAN
3.1. Arsitektur Umum
Metode yang digunakan dalam penelitian ini adalah dengan mengombinasikan fastText dan metode Spell Correction dari Peter Norvig, yang terdiri dari 2 proses untuk arsitektur umum yaitu training dan testing seperti yang tertera pada Gambar 3.1.
Gambar 3.1. Arsitektur Umum
UNIVERSITAS SUMATERA UTARA
Arsitektur umum pada Gambar 3.1 menunjukkan bahwa sistem dimulai dari proses web scraping dari data repositori USU (Universitas Sumatera Utara) yang akan dijadikan sebagai dataset. Hasil dari dataset yang telah diambil akan dilakukan pre-processing agar proses training akan berjalan dengan lancar, setelah pre-processing selesai dilakukan, proses training dataset dapat dimulai dengan menggunakan library fastText. Hasil training akan dipakai untuk mendapatkan kandidat kata dengan menggunakan metode Spell Correction Peter Norvig.
3.2. Scraping
Pada penelitian ini digunakan data yang diperoleh dari situs repositori USU (Universitas Sumatera Utara). Akan diambil penulisan abstrak pada situs repositori USU yang akan dijadikan datatset pada proses training fastText.
Penulisan abstrak yang diambil dapat berbahasa Indonesia maupun Inggris.
Proses web scraping dilakukan dengan menggunakan library BeautifulSoup pada pemrograman Python. BeautifulSoup akan mendapatkan data dari situs repositori berdasarkan XPATH yang dimasukkan. Data tersebut disimpan dalam bentuk JSON (Javascript Object Notation).
3.3. Pre-processing Dataset
Pre-processing dilakukan untuk mengubah dataset yang masih belum layak untuk diproses menjadi layak. Proses-proses yang dilakukan juga tergantung dengan kebutuhan sistem dalam proses training. Dalam penelitian ini, proses yang akan dilakukan adalah case folding, data cleaning dan tokenisasi.
3.3.1. Case Folding
Case folding adalah proses dalam pre-processing yang mengubah semua dataset menjadi huruf kecil (lowercase). Hal ini dilakukan agar semua karakter kata pada dataset menjadi sama. Sebagai contoh, kata “Kamu” dan “kamu” akan dianggap sama. Hal ini dapat dilakukan dalam pemrograman Python dengan menggunakan library dari Python, yaitu lower(). Contoh dari case folding dapat dilihat pada Tabel 3.1.
Tabel 3.1. Hasil Case Folding
Kalimat Hasil Case Folding
Pada hari ini, saya akan pergi ke Stadion Olahraga yang berada di kota Jakarta.
pada hari ini, saya akan pergi ke stadion olahraga yang berada di kota jakarta.
3.3.2. Data Cleaning
Pada tahan data cleaning, dataset akan dihilangkan dari simbol-simbol atau angka. Hal ini dilakukan karena simbol-simbol tersebut tidak berpengaruh pada proses training sehingga sebaiknya dihilangkan. Penulis menggunakan regular expression dalam melakukan data cleaning dalam penelitian ini. Contoh dari data cleaning dapat dilihat pada Tabel 3.2.
Tabel 3.2. Hasil Data Cleaning
Kalimat Hasil Data Cleaning
Kura-kura yang terdapat di dalam perumahan yang biasa disebut
“Perumahan Elit” telah menghilang.
Kura kura yang terdapat di dalam perumahan yang biasa disebut Perumahan Elit telah menghilang
3.3.3. Tokenisasi
Tokenisasi adalah proses pemisahan kalimat yang Panjang menjadi satuan kata.
Pada proses ini, dapat menggunakan library dari NLTK yang menyediakan metode word_tokenize. Contoh proses Tokenisasi terdapat pada Tabel 3.3.
Tabel 3.3. Hasil Tokenisasi
Kalimat Hasil Tokenisasi
pada hari ini, saya akan pergi ke stadion olahraga yang berada di kota jakarta.
‘pada’ ‘hari’ ‘ini’ ‘saya’ ‘akan’
‘pergi’ ‘ke’ ‘stadion’ ‘olahraga’
‘yang’ ‘berada’ ‘di’ ‘kota’ ‘jakarta’
3.4. FastText
FastText adalah library yang dikembangkan oleh Facebook yang berguna untuk membuat representasi dan klasifikasi teks. Di dalam fastText, dapat dilakukan
UNIVERSITAS SUMATERA UTARA
training untuk model bahasa yang berbeda seperti menggunakan CBOW (Continuous Bag of Words) atau skip-gram (Do, D.T. and Le, N.Q.K., 2019).
Dalam fastText juga memiliki banyak peningkatan dibandingkan Word2Vec seperti embedding untuk kata unik, kata-kata diluar kamus data dan hyper- parameter untuk meningkatkan performa. Pada penelitian ini, penulis menggunakan fastText untuk melihat seberapa tinggi kemungkinan kandidat kata.
Model skip-gram belajar untuk memprediksi kata target dengan menggunakan nearby word. Sebaliknya dengan CBOW, model CBOW memprediksi kata target berdasarkan konteks. Konteks disini direpresentasikan sebagai bag-of-words yang mengandung ukuran window yang tetap. Dalam penelitian ini, penulis menggunakan default parameter yang diberikan oleh fastText (model = skipgram, learning rate = 0.05, dimensi = 100, window = 5, epoch = 5, minn = 3, maxn = 6).
3.5. Metode Spell Correction Peter Norvig
Metode Peter Norvig memungkinkan untuk memberikan kandidat kata yang memiliki kesalahan pada ejaan. Pada metode ini, akan dilakukan proses deletion, transpose, replacement dan insertion.
3.5.1. Deletion
Pada proses deletion, setiap kata akan dilakukan iterasi dan menghapus setiap kata sesuai dengan index dari iterasi tersebut. Sebagai contoh dapat dilihat pada Gambar 3.2.
Gambar 3.2. Contoh Hasil Deletion 3.5.2. Transpose
Pada proses transpose, setiap kata akan diubah posisi sesuai dengan index iterasi yang sedang berjalan. Sebagai contoh dapat dilihat pada Gambar 3.3.
Gambar 3.3. Contoh Hasil Transpose
3.5.3. Replacement
Proses replacement akan menggantikan setiap kata pada kandidat kata menjadi huruf sesuai alfabet sehingga pada proses replacement akan menghasilkan kandidat kata yang lebih banyak dibandingkan dengan proses deletion dan transpose. Sebagai contoh dapat dilihat pada Gambar 3.4.
Gambar 3.4. Contoh Hasil Replacement
UNIVERSITAS SUMATERA UTARA
3.5.4. Insertion
Proses insertion memiliki kemiripan dengan proses replacement. Pada proses insertion, huruf dari kandidat kata tidak akan dihapus melainkan akan dimasukkan huruf sesuai alfabet sesuai dengan indeks iterasi yang sedang berlangsung. Sebagai contoh dapat dilihat pada Gambar 3.5.
Gambar 3.5. Contoh Hasil Insertion
3.6. Analisis Sistem
Analisis sistem adalah penjelasan tentang proses pengerjaan yang dibagi menjadi bagian yang lebih kecil. Analisis sistem ini dibuat untuk memperjelas permasalahan dan tujuan yang akan dicapai.
3.6.1. Analisis Masalah
Analisis masalah diperlukan untuk memecahkan permasalah yang akan dilakukan oleh sistem. Analisis masalah akan dilakukan dengan menguraikan sebab dan akibat dari permasalahan.
Permasalahan yang diangkat pada penelitian ini adalah permasalahan kesalahan ejaan pada penulisan dokumen. Sehingga dibuat suatu sistem untuk memecahkan permasalahan tersebut.
Dalam membantu menguraikan permasalahan ini, dapat menggunakan
Ishikawa Diagram atau yang dikenal juga dengan sebutan fishbone diagram.
Dalam Ishikawa Diagram, permasalahan akan diletakkan pada bagian yang berbentuk seperti kepala ikan, sebab akan diletakkan di kiri yang berbentuk seperti tulang ikan. Bentuk dari Ishikawa Diagram pada penelitian ini dapat dilihat pada Gambar 3.6.
Gambar 3.6. Bentuk Ishikawa Diagram
Berdasarkan Gambar 3.6., Ishikawa Diagram dapat dibagi menjadi 2 bagian, yaitu bagian yang berbentuk seperti kepala ikan dan bagian yang berbentuk seperti tulang ikan. Pada bagian kepala ikan, akan diletakkan permasalahan yang akan dipecahkan yaitu kesalahaan ejaan pada saat menuliskan sebuah dokumen. Pada bagian tulang ikan, akan dibagi menjadi beberapa kategori yaitu Metode, Manusia, Material dan Sistem. Pada kategori metode, sebab dari permasalahan akan diuraikan berdasarkan metode yang digunakan. Pada kategori manusia, sebab dari permasalahan akan diuraikan berdasarkan sudut pandang manusia. Pada kategori sistem, sebab dari permasalahan akan diuraikan berdasarkan sistem yang dipakai dan pada kategori material, akan diuraikan berdasarkan material yang akan dipakai.
3.6.2. Analisis Kebutuhan
Analisis kebutuhan secara garis besar, dapat dibagi menjadi dua bagian.
UNIVERSITAS SUMATERA UTARA
Kebutuhan fungsional dan kebutuhan non-fungsional.
1. Kebutuhan Fungsional
Kebutuhan fungsional adalah segala persyaratan yang dibutuhkan untuk memenuhi kebutuhan sistem yang akan dipakai pada sistem ini, yaitu:
a) Sistem harus dapat membaca file berekstensi *.pdf
b) Sistem yang dibangun dapat memprediksi koreksi kata yang memiliki kesalahan pada ejaan.
c) Sistem harus menampilkan perbaikan jika terdapat kesalahan pada ejaan.
2. Kebutuhan Non-Fungsional
Kebutuhan non-fungsional merupakan fungsi yang disediakan oleh sistem bertujuan untuk mendapatkan feedback dari user yang menggunakan sistem tersebut. Kebutuhan non-fungsional disediakan sebagai penunjang dari sistem yang akan dibangun. Kebutuhan non- fungsional pada sistem ini meliputi hal-hal sebagai berikut:
Kebutuhan non-fungsional adalah segala persyaratan yang dibutuhkan oleh sistem untuk mendapatkan respon dari pengguna yang menggunakan sistem.
a) Informasi
Sistem dapat memberikan informasi kepada pengguna mengenai koreksi kata yang telah dikalkulasi oleh sistem.
b) Kualitas
Sistem dapat memberikan koreksi ejaan yang akurat.
c) Performa
Sistem dapat memberikan koreksi ejaan dengan waktu yang singkat.
3.6 Alur Proses
Alur proses adalah diagram yang digunakan untuk menggambarkan alur kerja sistem agar mempermudah proses pembangunan sistem. Alur proses pada sistem penelitian ini dapat dilihat pada Gambar 3.3.
Gambar 3.7. Alur Proses
Pada Gambar 3.7 terlihat bahwa dalam proses koreksi ejaan, user mengirimkan file pdf yang akan diproses dalam bentuk teks dengan menggunakan library pdf- to-text dan user diminta agar memasukkan halaman penulisan abstrak dari bahasa inggris dan bahasa indonesia yang akan dilakukan proses spell correction. Setelah itu, proses koreksi ejaan akan dimulai dengan mengombinasikan metode Peter Norvig dan model dari fastText yang telah ditraining sebelumnya. Model fastText dimulai dengan proses web scraping agar mendapatkan dataset penulisan abstrak dari repositori USU yang kemudian akan dilakukan proses klasifikasi bahasa untuk menentukan abstrak berbahasa inggris atau berbahasa indonesia. Sebelum dimulai proses koreksi ejaan, sistem akan memeriksa apakah kata – kata tersebut adalah kata baku, jika merupakan kata baku, maka tidak perlu ada proses koreksi kata. Pada metode Peter Norvig, dilakukan fungsi deletion, transpose, replacement dan insertion untuk mendapatkan kandidat kata dan kemudian akan disaring berdasarkan kamus bahasa inggris dan bahasa indonesia. Sistem akan mengambil kandidat tertinggi yang akan dijadikan perbaikan ejaan dengan menggunakan model fastText.
3.7. Pemodelan Sistem
Pemodelan sistem, adalah gambaran besar proses jalannya sistem dari awal hingga
UNIVERSITAS SUMATERA UTARA
akhir, serta interaksi yang terjadi antar komponen yang ada pada sistem. Pada penelitian ini, pemodelan sistem yang digunakan adalah use case diagram, sequence diagram dan activity diagram.
3.7.1 Use Case Diagram
Use case diagram adalah penggambaran secara grafis dari interaksi user dengan sistem. Sebuah use case diagram juga menggambarkan interaksi dari bermacam – macam user sekaligus.
Gambar 3.8. Use Case Diagram
Berdasarkan Gambar 3.8, dapat dilihat bahwa di dalam sistem yang akan dibangun terdapat satu aktor, yaitu user (pengguna). Dimana user dapat upload file pdf yang akan diproses oleh sistem. Selanjutnya user perlu memasukkan halaman dari file pdf yang berisi penulisan abstrak berbahasa indonesia dan berbahasa inggris. Selanjutnya user diperlukan untuk menekan tombol submit file agar proses koreksi ejaan kata dimulai dan sistem akan menampilkan koreksi ejaan yang benar.
3.7.2 Activity Diagram
Activity diagram adalah representasi dari alur kerja dan aktivitas yang bertahap.
Dalam UML (Unified Modelling Language), activity diagram digunakan untuk proses organisasi dan komputasi walaupun activity diagram digunakan terutama
untuk menunjukkan sebagian besar dari proses kontrol, akan tetapi dapat juga menunjukkan proses dari aktivitas data.
a. Activity Diagram Proses Koreksi Ejaan
Gambar 3.9. Activity Diagram Proses Koreksi Ejaan
Sesuai dengan Gambar 3.9, user (pengguna) hanya dapat mengirim file dalam tipe pdf. Pengguna juga harus memberi tahu sistem halaman penulisan abstrak berbahasa indonesia dan inggris yang perlu dikoreksi ejaannya kemudian user perlu menekan tombol upload untuk mengirimkan file tersebut. Sistem akan mengambil data pdf dan melakukan proses ekstraksi token dari file pdf yang akan dikoreksi ejaannya. Setelah semuanya selesai, sistem akan menampilkan koreksi
UNIVERSITAS SUMATERA UTARA
kata yang seharusnya. Dalam proses koreksi ejaan, sistem menggunakan metode Peter Norvig dan juga model yang sudah dijalankan oleh library fastText
3.7.3 Sequence Diagram
Sequence diagram adalah diagram yang menunjukkan interaksi objek pada urutan waktu tertentu. Sequence diagram menunjukkan objek yang terlibat dalam skenario dan urutan pesan yang ditukar. Sequence diagram biasa disebut juga dengan event diagrams atau event scenarios.
Gambar 3.10. Sequence Diagram Spell Correction
3.7.4 Flowchart
Flowchart adalah diagram yang merepresentasikan alur kerja atau proses dari suatu sistem atau algoritma. Flowchart menunjukkan langkah – langkah dengan bentuk kotak ataupun bentuk lainnya, dan menggunakan lambing panah untuk menghubungkannya.
Flowchart Spell Correction Peter Norvig, memaparkan alur kerja dalam mendapatkan kandidat kata yang ingin dikoreksi. Flowchart metode Spell Correction Peter Norvig dapat dilihat pada Gambar 3.11.
Gambar 3.11. Flowchart Metode Spell Correction Peter Norvig
Berdasarkan Gambar 3.11 seorang user akan memasukkan file pdf yang akan diambil setiap katanya. Kata-kata tersebut akan disaring berdasarkan kamus.
Jika kata tersebut terdapat pada kamus, maka program akan selesai. Akan tetapi jika kata tersebut tidak terdapat pada kamus, maka akan dilanjutkan dengan fungsi deletion, transpose, replacement dan insertion. Fungsi deletion akan menghapus huruf – huruf dari kata masukan; Fungsi transpose akan mengubah letak huruf – huruf; Fungsi replacement akan menimpa huruf – huruf dengan huruf alfabet;
Fungsi insertion akan memasukkan huruf – huruf alfabet. Pada proses ini, akan terbentuk sekumpulan kandidat kata yang akan dipilih dengan cara memilih
UNIVERSITAS SUMATERA UTARA
kandidat yang terdapat pada kamus atau memiliki kedekatan terdekat dengan model fastText.
BAB 4
IMPLEMENTASI DAN PENGUJIAN
4.1. Implementasi Sistem 4.1.1. Spesifikasi Perangkat Keras
Dalam mengimplementasikan sistem Spell Correction dan melakukan pengujian pada Spell Correction maka perangkat keras yang digunakan perlu memenuhi spesifikasi sebagai berikut:
1. Processor Intel Core i5-8265u CPU @ 1.60 Hz 2. Memory RAM 12 GB
3. Kapasitas Hard Disk 1 TB 4. NVIDIA GeForce MX150
Spesifikasi perangkat keras tersebut juga didukung oleh sistem cloud service gratis dari Google yang bernama Google Colab. Google Colab menyediakan GPU yang mumpuni agar mempermudah proses penelitian. Penulis menggunakan Google Colab dalam melakukan proses training data.
4.1.2. Spesifikasi Perangkat Lunak
Spesifikasi perangkat lunak yang digunakan dalam penelitian ini adalah:
1. Sistem Operasi Windows 10 Home 2. Jupyter Notebook
3. Python3 4. Google Colab
5. Library: nltk, Sastrawi, FastText, VueJS, axios, gensim, enchant.
4.2. Implementasi Web Scraping
Dalam mengambil dataset, diperlukan proses Web Scraping. Dataset yang penulis ambil dalam penelitian ini adalah penulisan abstrak USU (Universitas Sumatera Utara) yang dapat diakses dari situs repositori USU. Situs repositori
UNIVERSITAS SUMATERA UTARA
USU dapat dilihat pada Gambar 4.1. Penulisan abstrak yang diambil berbahasa inggris maupun indonesia.
Gambar 4.1. Scraping Halaman Pertama
Pada Gambar 4.1 menampilkan kumpulan penulisan dari mahasiwa maupun dosen USU. Selanjutnya akan mengakses setiap halaman dari tulisan tersebut seperti pada Gambar 4.2.
Gambar 4.2. Halaman Penulisan Abstrak
Pada situs yang dapat dilihat pada Gambar 4.2, penulisan terdapat pada bagian tengah yang akan diakses pada tag meta. Akan tetapi situs repositori USU tidak menyediakan label untuk memberitahukan jika abstrak tersebut berbahasa inggris atau berbahasa indonesia. Sehingga penulis menggunakan kamus berbahasa inggris dalam Python untuk mengetahui abstrak tersebut berbahasa inggris atau sebaliknya.
Penulis menggunakan library BeautifulSoup dalam melakukan proses Web Scraping, selanjutnya data tersebut akan disimpan dalam bentuk file JSON (Javascript Object Notation) seperti pada Gambar 4.3 agar dapat dipakai saat proses training. File JSON yang didapatkan dari hasil Web Scraping sebesar 91,215 KB.