NON-NEGATIVE MATRIX FACTORIZATION
SKRIPSI
CLARA SRI MENDA BANGUN
121402099
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2017
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi
CLARA SRI MENDA BANGUN 121402099
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2017
PERSETUJUAN
Judul : EKSTRAKSI TREN TOPIK PORTAL BERITA
ONLINE MENGGUNAKAN NON-NEGATIVE MATRIX FACTORIZATION
Kategori : SKRIPSI
Nama : CLARA SRI MENDA BANGUN
Nomor Induk Mahasiswa : 121402099
Program Studi : S1 TEKNOLOGI INFORMASI
Departemen : TEKNOLOGI INFORMASI
Fakultas : FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Mohammad Fadly Syahputra B.Sc, M.Sc, IT Sajadin Sembiring,S.Si.,M.Comp.Sc
NIP. 19830129 200912 1 003 NIP. 19732303 201706 1001
Diketahui/disetujui oleh
Program Studi S1 Teknologi Informasi Ketua,
Romi Fadillah Rahmat, B.Comp.Sc., M.Sc NIP. 19860303 201012 1 004
PERNYATAAN
EKSTRAKSI TREN TOPIK PORTAL BERITA ONLINE MENGGUNAKAN
NON-NEGATIVE MATRIX FACTORIZATION
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan,
Clara Sri Menda 121402099
UCAPAN TERIMA KASIH
Puji dan syukur penulis sampaikan kehadirat Tuhan Yang Maha Esa yang telah memberikan berkat yang melimpah kepada penulis, sehingga dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Teknologi Informasi.
Pertama, penulis ingin mengucapkan terima kasih sebesarnya kepada orang tua penulis, Bapak tercinta Alm. Drs. Darwin Bangun dan Ibu terkasih dra. Rosida Sembiring, serta kepada Bulang Alm. Ahmad Bangun dan Biring Ngamet Pelawi. Penulis juga mengucapkan terima kasih kepada abang dan kakak penulis Hiskia Bangun, Yolanda Bangun, beserta seluruh keluarga besar Bangun dan Sembiring yang memberikan kasih sayang, motivasi, serta doa tiada henti kepada penulis.
Kedua, penulis juga mengucapkan terima kasih kepada Bapak Sajadin Sembiring, S.Si., M.Comp., Sc selaku Dosen Pembimbing I, Bapak Mohammad Fadly Syahputra B.Sc, M.Sc, IT selaku Dosen Pembimbing II yang telah meluangkan waktunya untuk membimbing penulis sehingga dapat menyelesaikan skripsi ini. Terima kasih juga penulis ucapkan kepada Bapak Dani Gunawan, ST., MT., selaku Dosen Pembanding I dan Bapak Baihaqi Siregar, S.Si., MT., selaku Dosen Pembanding II yang memberikan kritik dan saran yang bermanfaat dalam penyelesaian skripsi ini. Penulis ucapkan terima kasih kepada Ketua dan Sekretaris Program Studi S1 Teknologi Informasi, Dekan dan Wakil Dekan FASILKOM-TI, dan seluruh dosen serta staff pegawai di lingkungan Program Studi S1 Teknologi Informasi, yang telah membimbing penulis selama masa perkuliahan.
Ketiga, terima kasih penulis ucapkan kepada sahabat tercinta yang selalu hadir memberikan dukungan dan semangat, Yossi Naomi, Irester Sihombing, Octavia Yohana, Novira Ginting, Wina Octaviana, Mutiara Christy, Yana Trisha, B’Family, PERMATA Bethesda, seluruh teman-teman angkatan 2012 dan junior serta senior Teknologi Informasi. Semoga Tuhan Yang Maha Esa selalu memberi berkat yang melimpah kepada sahabat tercinta. Penulis menyadari bahwa skripsi ini masih terdapat kekurangan. Oleh sebab itu, penulis mengharapkan kritik dan saran yang bersifat membangun. Akhir kata penulis ucapkan terima kasih.
ABSTRAK
Perkembangan teknologi informasi dan komunikasi mengakibatkan jumlah situs berita
online yang menyajikan informasi berita terus bertambah. Hal ini menyebabkan
pencarian tren topik berita yang sedang dibicarakan semakin luas dan membutuhkan waktu cukup lama jika dilakukan secara manual. Web Crawler merupakan program pengumpul informasi yang berjalan menelusuri halaman web dan mengumpulkan dokumen-dokumen atau data-data di dalamnya. Web crawler pada penelitian ini mengekstraksi informasi portal berita online untuk diambil berita-beritanya dan dimanfaatkan untuk pencarian tren topik secara otomatis dengan bantuan mesin. Pada penelitian ini beberapa tahapan yang dilakukan yaitu text pre-processing yang terdiri dari case-folding, tokenizing, filtering, stemming, pembuatan kamus n-gram yang merupakan kandidat hasil keluaran topik, dan selanjutnya tahapan ekstraksi tren topik dengan cara menghitung pembobotan kata hasil pembuatan kamus n-gram menggunakan term frequency dan Non-Negative Matrix Factorization (NMF). Pada penelitian ini jenis artikel yang diproses adalah 3 jenis kelompok berita, yaitu berita nasional, entertaiment, dan berita teknologi sebanyak 842 artikel. Hasil dari penelitian ini adalah berupa topik-topik sesuai dengan kelompok beritanya yang divisualisasikan dalam bentuk grafik.
Kata kunci: Text mining, Web Crawler, Kamus N-Gram, Non-Negative Matrix
ABSTRACT
The development of information technology and communication makes the number of online website that provides news continue to grow. This cause the search for news topics trends being discussed more widely and takes time if done manually. Web Crawler is an information gatherer program that runs through web pages and collects document or data in it. Web crawler in this study extracts information online news portal to capture its news and was used to search trens topic automatically with the help of machine. In this study, some of the steps are text pre-processing which consists of case-folding, tokenizing, filtering, stemming, making n-gram dictionary which is candidate of the topic output, and then the stage of topical trend extraction by counting the word weighting of the result n-gram dictionary using term frequency and Non-Negative Matrix Factorization (NMF). In this study the types of article processed are 3 types of news groups namely national news, entertaiment, and technology news as much as 842 articles. The result of this study is in the form of topics according to the news group visualized in graphical form.
Keyword: Text mining, Web Crawler, N-Gram Dictionary, Non-Negative Matrix
DAFTAR ISI
Hal.
PERSETUJUAN 2
PERNYATAAN ii
UCAPAN TERIMA KASIH iii
ABSTRAK iv ABSTRACT v DAFTAR ISI vi DAFTAR TABEL ix DAFTAR GAMBAR x BAB 1 PENDAHULUAN 1 1.1. Latar Belakang 1 1.2. Rumusan Masalah 3 1.3. Tujuan Penelitian 3 1.4. Batasan Masalah 4 1.5. Manfaat Penelitian 4 1.6. Metodologi Penelitian 4 1.7. Sistematika Penulisan 6
BAB 2 LANDASAN TEORI 8
2.1. Machine Learning 8
2.2. Web Crawler 9
2.3. Text Mining 10
2.4.2. Tokenizing 13
2.4.3. Filtering 14
2.4.4. Stemming 15
2.5. Algoritma Nazief & Andriani 16
2.6. N-Gram 19
2.7. Pembobotan Term 20
2.8. Faktorisasi Matriks 21
2.8.1 Non-Negative Matrix Factorization (NMF) 21
2.9. Penelitian Terdahulu 23
BAB 3 ANALISIS DAN PERANCANGAN 28
3.1. Data Acquisition (Pengumpulan Data) 28
3.2. Analisis Sistem 28
3.2.1. Input Data 31
3.2.2. Text pre-processing 32
3.2.3. Pembuatan kamus n-gram 33
3.2.4. Pembuatan matriks kata dokumen 33
3.2.5. Ekstraksi tren topik dengan NMF 35
3.3. Perancangan Sistem 37
3.3.1. Perancangan sistem bagian belakang (back-end) 37
3.3.2. Peracangan sistem bagian depan (front-end) 38
BAB 4 IMPLEMENTASI DAN PENGUJIAN 40
4.1. Implementasi Sistem 40
4.1.1. Kebutuhan sistem 40
4.1.2. Hasil preparasi data 41
4.1.3. Hasil text preprocessing 42
4.1.4. Hasil pembuatan kamus n-gram 46
4.1.5. Hasil ekstraksi tren topik dengan NMF 46
BAB 5 KESIMPULAN DAN SARAN 54
5.1. Kesimpulan 54
5.2. Saran 54
DAFTAR TABEL
Tabel 2.1. Aturan Case Folding 12
Tabel 2.2. Aturan Tokenizing 13
Tabel 2.3. Aturan Filtering 14
Tabel 2.4. Kombinasi Awalan Akhiran Yang Tidak Diijinkan 17
Tabel 2.5. Tabel Aturan Peluruhan Kata Dasar 17
Tabel 2.5. Tabel Aturan Peluruhan Kata Dasar (Lanjutan) 18
Tabel 2.6. Contoh Pemotongan N-gram Berbasis Karakter 19
Tabel 2.7. Contoh Pemotongan N-gram Berbasis Kata 20
Tabel 2.8. Penelitian Terdahulu 25
Tabel 2.8. Penelitian Terdahulu (Lanjutan) 26
Tabel 3.1. Proses Penyiapan Data 34
Tabel 3.2. Hubungan Kata Dokumen 35
Tabel 4.1. Hasil Pembentukan Kamus N-Gram 46
Tabel 4.2. Contoh Data Uji Sistem 51
Tabel 4.3. Contoh Data Tren Topik pada Google Trend 52
Tabel 4.4. Hasil Pengujian 53
DAFTAR GAMBAR
Gambar 2.1. Arsitektur Web Crawler 10
Gambar 2.2. Proses Case Folding 12
Gambar 2.3. Contoh Proses Tokenizing 13
Gambar 2.4. Contoh Proses Filtering 14
Gambar 2.5. Contoh Proses Stemming 15
Gambar 2.6. Ilustrasi Non Negative Matrix Factorization 22
Gambar 3.1. Arsitektur Umum 30
Gambar 3.2. Proses Crawling 31
Gambar 3.3. Rancangan Bagian Depan Sistem 38
Gambar 4.1. Grafik Artikel Hasil Web Crawler 41
Gambar 4.2. Grafik Jumlah Artikel Yang Akan Diproses Per Hari 42
Gambar 4.3. Contoh Artikel Awal Hasil Web Crawler 42
Gambar 4.4. Artikel Hasil Case Folding 43
Gambar 4.5. Artikel Hasil Tokenizing 44
Gambar 4.6. Artikel Hasil Filtering 44
Gambar 4.7. Artikel Hasil Stemming 45
Gambar 4.8. Grafik Jumlah Kata Berbeda Yang Dilibatkan Per Hari 45
Gambar 4.9. Hasil Ekstraksi Data Kategori Nasional Tanggal 06 Juni 2017 47
Gambar 4.10. Hasil Ekstraksi Data Kategori Entertaiment Tanggal 08 Juni 2017 48
Gambar 4.11. Hasil Ekstraksi Data Kategori Teknologi Tanggal 08 Juni 2017 49
BAB 1 PENDAHULUAN
1.1. Latar Belakang
Dunia teknologi informasi dan telekomunikasi semakin canggih dan pesat dengan adanya perkembangan internet. Dengan internet, setiap orang dapat mengakses dan mendapat informasi secara cepat tanpa mengenal batas wilayah dan batasan waktu. Perkembangan teknologi informasi diikuti juga dengan berkembangnya piranti bergerak yang digunakan, sehingga penyampaian informasi, komunikasi, dan aktifitas lainnya menjadi lebih cepat, hemat dan efisien. Salah satu perkembangan yang paling sering digunakan oleh pengguna teknologi informasi adalah mendapatkan informasi dari berita-berita nasional. Berita merupakan suatu hal yang memiliki peran penting dalam kehidupan manusia karena manusia hidup pasti membutuhkan sebuah informasi, baik itu tentang pendidikan, kesehatan, pariwisata, dan sebagainya. Perkembangan berita nasional ini ditandai dengan munculnya berbagai situs web portal berita, seperti Kompas, Detik, Tempo, Okezone, Liputan 6, dan lain sebagainya.
Portal berita merupakan sebuah media yang memberikan layanan informasi berita secara online. Portal berita memberikan nilai dengan informasi yang lebih cepat dibanding layanan konvensional yang masih berupa kertas, serta berisi informasi dari lokal maupun mancanegara dengan berbagai macam topik yang dibahas.
Melihat banyaknya topik yang dibahas, banyak pula pengguna internet yang ingin mengetahui topik berita yang paling sering muncul tanpa perlu membaca keseluruhan berita portal berita online. Topik dari kumpulan berita ini menjadi sangat penting untuk mengetahui trend yang terjadi dalam periode waktu tertentu. Namun, banyaknya berita yang dibahas tersebut menjadi kendala bagi pembaca sehingga muncul sebuah gagasan untuk melakukan pemrosesan terhadap artikel berita ke dalam sebuah mesin yang mengekstraksinya ke dalam topik-topik. Mesin ekstraksi ini
sedang populer. Metode ini merupakan perkembangan dari text mining atau text
analysis. Mesin ekstraksi ini mencakup pemodelan data tekstual yang bertujuan
menemukan variabel tersembunyi yaitu topik.
Fudolly (2011) memanfaatkan metode likelihood dan cosine similarity untuk menganalisis klasifikasi kategori dan identifikasi topik dokumen berita berbahasa Indonesia. Uji coba dilakukan pada dokumen berita berbahasa Indonesia untuk setiap kategori dengan topik yang berbeda – beda. Aplikasi ini mempunyai fungsi utama mengklasifikasikan berita – berita online yang ada menjadi hirarki dengan topik dan kategori yang lebih spesifik. Hasil uji coba menunjukkan bahwa klasifikasi secara
online dapat menghasilkan hasil yang lebih baik dibandingkan klasifikasi offline.
Nugraha (2011) memanfaatkan metode KEA++ untuk penyaringan frasa kunci secara otomatis pada pencarian artikel ilmiah berbahasa Indonesia. Pada penelitian ini data yang digunakan adalah 30 jurnal akuntansi berbahasa berbahasa Indonesia dan Tesaurus akuntansi berbahasa Indonesia. Berdasarkan pengujian yang dilakukan, semakin banyak jumlah data pelatihan yang digunakan maka semakin tinggi pula akurasi dari proses penyaringan frasa kunci artikel ilmiah berbahasa Indonesia. Penggunaan Tesaurus dapat meningkatkan akurasi dalam proses penyaringan frasa kata kunci ini. Berdasarkan evaluasi dan responden terhadap 10 dokumen yang disaring frasa kuncinya, persentase jumlah frasa kunci yang sesuai adalah sebanyak 51.75%.
Banu (2016) melakukan penelitian terhadap analisis trending topic dengan menggunakan model pendeteksian topic sub-topik, peneliti menggunakan pendekatan
Foreground Dynamic Topic Modelling (VF-DTM) untuk merangkum trending topic
berdasarkan data tweet dalam struktur yang lebih baik.
Basri (2016) melakukan penelitian dengan memanfaatkan metode SVM untuk mengidentifikasi topik informasi publik media sosial di kota Surabaya berdasarkan klasterisasi teks pada twitter dengan algoritma K-Means. Penelitian yang dilakukan dapat menemukan topik-topik yang sering dibahas pada sosial media kota Surabaya dengan menggunakan metode SVM, dengan hasil yang memiliki presentase paling tinggi adalah SVM kernel ”linear”.
Park (2011) memanfaatkan metode Non Negative Matrix Factorization dan
Pseudo Relevance Feedback untuk peringkasan dokumen otomatis dengan
mengekstraksi kalimat yang relevan dengan user dengan ringkasan yang berfokus kepada user. Metode tersebut mengekstrak kalimat yang bermakna karena
mencerminkan struktur dokumen yang berhubungan dengan fitur semantik dan variabel semantik dengan NMF. Kinerja metode yang diusulkan memperoleh nilai rata-rata F-Measure 46.8. Hasil percobaan menunjukkan bahwa metode yang diusulkan mencapai kinerja yang lebih baik dari metode lainnya.
Latent Semantic Analysis (LSA) adalah sebuah teori dan metode untuk ekstraksi
dan representasi topik dari sekumpulan dokumen (Landauer & Dumais, 1997). LSA menggunakan beberapa metode untuk proses faktorisasi matriks, yaitu Singular Value
Decomposition dan Non-Negative Matrix Decomposition (Lee dan Seung, 1999).
Namun, matriks pada SVD cenderung bersifat padat dan berisi bilangan negatif dan non-negatif pada elemen-elemennya sehingga representasi bilangan-bilangan negatif terhadap topik sulit untuk diinterpretasi. Sedangkan matriks representasi dengan NMF memiliki entri non-negatif sehingga mudah untuk interpretasi matriks.
Berdasarkan permasalahan yang dijelaskan di atas, maka pada penelitian ini peneliti mengajukan judul “Ekstraksi Tren Topik Portal Berita Online Menggunakan
Non-Negative Matrix Factorization”.
1.2. Rumusan Masalah
Seiring dengan kemajuan teknologi saat ini, kemudahan untuk memperoleh suatu berita dapat dengan cepat diakses dari berbagai web portal berita online sehingga minat untuk mengetahui berita yang sedang populer dibicarakan menjadi bertambah. Namun, banyaknya topik yang dibahas pada portal berita tersebut menjadi kendala bagi pembaca untuk mengetahui apa saja topik yang sedan tren pada berita. Berdasarkan permasalahan tersebut, muncullah sebuah gagasan untuk melakukan pemrosesan terhadap artikel berita ke dalam sebuah mesin yang mengekstraksinya ke dalam topik-topik sehingga mesin dapat menemukan topik-topik berita apa saja yang sedang menjadi trend dalam jangka waktu tertentu.
1.3. Tujuan Penelitian
Adapun tujuan dari penelitian ini adalah sebagai berikut.
1. Mengekstraksi web portal berita online dengan teknik crawling untuk mengambil dokumen yang dibutuhkan.
2. Melakukan analisis ekstraksi topik dengan menerapkan metode Non-Negative
Matrix Factorization untuk mengetahui topik-topik berita yang menjadi trend dari
kumpulan artikel berita pada periode waktu tertentu.
1.4. Batasan Masalah
Permasalahan yang akan diteliti memiliki ruang lingkup yang luas, oleh sebab itu penulis membatasi masalah tersebut sebagai berikut:
1. Data yang diambil adalah data dari web portal berita online berbahasa Indonesia. 2. Periode penentuan topik berita dibatasi yaitu pada tanggal 06 Juni 2017 s/d 09 Juni
2017.
3. Hasil keluaran dari sistem ini berupa tren topik-topik yang muncul dari hasil
crawling isi portal berita.
4. Hasil keluaran tren topik yang dihasilkan dibatasi hanya sebanyak 5 tren topik. 5. Ekstraksi tren topik dilakukan secara offline.
6. Pendekatan analisis yang digunakan adalah Objek Oriented.
1.5. Manfaat Penelitian
Penelitian ini diharapkan dapat memudahkan pembaca untuk mengetahui tren topik berita apa yang sedang hangat dibicarakan dalam periode waktu tertentu sehingga pembaca tidak perlu membutuhkan waktu yang lama untuk membaca berita dari semua
web portal berita online.
1.6. Metodologi Penelitian
Tahapan-tahapan yang akan dilakukan dalam pelaksanaan penelitian ini adalah sebagai berikut :
1. Studi Literatur
Tahap studi literatur ini dilaksanakan untuk mengumpulkan dan mempelajari informasi yang diperoleh dari buku, jurnal, skripsi, dan berbagai sumber referensi lain yang berkaitan dan mendukung penelitian. Bahan referensi yang dikumpulkan adalah mengenai portal berita online, teknik ekstraksi topik, teknik crawling, dan
2. Analisis Permasalahan
Analisis permasalahan merupakan tahap untuk menganalisis seluruh bahan referensi yang telah dikumpulkan. Pada tahap ini dilakukan analisis terhadap berbagai informasi yang telah diperoleh dari berbagai sumber yang terkait dengan penelitian agar didapatkan metode yang tepat untuk menyelesaikan masalah dalam penelitian ini. Adapun metode yang digunakan untuk menyelesaikan permasalahan adalah Non-Negative Matrix Factorization, yakni sebagai algoritma ekstraksi tren topik dari sekumpulan dokumen.
3. Pengumpulan Data
Pengumpulan data merupakan tahapan yang sangat penting dalam perancangan arsitektur. Sumber data yang digunakan pada penelitian ini adalah dengan menggunakan bantuan web crawler untuk mengambil artikel berita berkategori nasional, entertaiment, dan teknologi, pada tanggal 06 Juni 2017 s/d 09 Juni 2017 dengan memanfaatkan URL beberapa portal berita online berbahasa Indonesia, yaitu: a. Liputan6 b. Kompas.com c. Tribunnews.com d. Sindonews.com e. Viva.co.id 4. Implementasi
Implementasi dilakukan dengan menguji metode Non-Negative Matrix
Factorization dalam menyelesaikan masalah ekstraksi tren topik. Tidak ada
penggunaan data latih dalam penelitian ini, tetapi penelitian ini menggunakan metode unsupervised learning.
5. Evaluasi dan Analisis Hasil
Evaluasi dan analisis bertujuan untuk mengetahui apakah pengujian telah berjalan sesuai dengan yang diharapkan dalam penelitian ini. Tahap ini menggambarkan hasil yang didapat setelah mengimplementasikan teknik crawling, metode ekstraksi tren topik, Non-Negative Matrix Factorization, dalam menyelesaikan permasalahan ekstraksi tren topik portal berita online.
6. Dokumentasi dan Pelaporan
Pada tahap ini, penulis melakukan dokumentasi berupa penyusunan laporan hasil evaluasi, analisis, dan implementasi Non-Negative Matrix Factorization dalam penyelesaian masalah ekstraksi tren topik portal berita online.
1.7. Sistematika Penulisan
Sistematika penulisan dari skripsi ini terdiri dari lima bagian utama, yaitu sebagai berikut:
Bab 1: Pendahuluan
Bab ini berisi latar belakang dari peneltian yang dilakukan, rumusan masalah, tujuan penelitian, batasan masalah, manfaat penelitian, metodologi penelitian, dan sistematika penulisan.
Bab 2: Landasan Teori
Bab ini menjabarkan teori-teori yang mendukung dan dibutuhkan dalam memahami permasalahan. Selain itu, pada bagian ini diuraikan juga mengenai penelitian terdahulu, kerangka pikir dan hipotesis yang diperoleh dari acuan yang mendasari untuk melakukan kegiatan penelitian tugas akhir ini.
Bab 3: Analisis dan Perancangan
Bab ini berisi pembahasan tentang analisis dan penerapan metode Non-Negative Matrix
Factorization untuk mengimplementasikan ekstraksi tren topik portal berita online.
Selain itu, dijabarkan pula arsitektur umum dan tahap pre-processing yang digunakan untuk proses cleaning data.
Bab 4: Implementasi dan Pengujian
Bab ini berisi pembahasan tentang implementasi dari perancangan sistem dari hasil analisis dan perancangan yang telah dijabarkan pada bab 3. Selain itu, dijabarkan pula hasil yang didapatkan dari pengujian.
Bab 5: Kesimpulan dan Saran
Bab ini berisi ringkasan serta kesimpulan dari hasil penelitian yang telah dilakukan. Bagian akhir dari bab ini akan berisi saran-saran yang diajukan untuk pengembangan lebih lanjut terkait topik penelitian yang telah dibahas.
BAB 2
LANDASAN TEORI
Bab ini membahas tentang teori penunjang dan penelitian sebelumnya yang berhubungan dengan implementasi algoritma Non-Negative Matrix Factorization untuk ekstraksi tren topik portal berita online.
2.1. Machine Learning
Machine learning (pembelajaran mesin) adalah bidang ilmu yang berfokus pada
algoritma komputer (mesin) untuk ‘belajar’ dari sejumlah data yang disebut data
training. Algoritma tersebut digunakan untuk menyimpulkan informasi tentang
sifat-sifat dan pola data (Segaran, 2007). Selanjutnya, informasi tersebut dapat digunakan untuk memprediksi data lain pada masa selanjutnya. Hal ini dimungkinkan karena hampir semua data yang tertentu memiliki pola, sehingga memungkinkan mesin untuk menggeneralisasi pola tersebut.
Menurut Ghahramani (2014), machine learning dapat dibagi ke dalam 4 kelompok berdasarkan perlakuan terhadap data yang diberikan.
1. Supervised Learning
Pada teknik supervised learning, barisan data training yang diberikan memiliki barisan harapan keluaran atau label. Harapan keluaran ini dapat berupa kelas label atau bilangan riil. Contoh dari pembelajaran supervised adalah classification,
regression, ordinal regression, ranking, dan lain sebagainya, Beberapa metode
untuk mendapatkan label di antaranya neural network, desicion trees,
support-vector machine dan Bayesian filtering. Tujuan teknik ini adalah menjadikan mesin
dapat belajar untuk memberikan keluaran terbaik untuk data training baru berdasarkan label.
2. Reinforcement Learning
Dalam reinforcement learning, mesin berinteraksi dengan lingkungan yang memberikan barisan aksi. Aksi ini dipengaruhi kondisi awal lingkungan dan
memberikan hasil kepada mesin berupa barisan skalar reward atau punishment. Tujuan metode ini menjadikan mesin dapat ‘belajar’ untuk mengoptimalkan
reward dan meminimalkan punishment selama mesin tersebut bekerja. Reinforcement learning berdekatan dengan bidang teori keputusan (decision theory) dan teori kontrol (control theory).
3. Generalized Reinforcement Learning
Jenis ketiga ini erat kaitannya dengan game theory dan merupakan generalisasi dari teknik reinforcement learning. Seperti metode reinforce learning, mesin membutuhkan masukan, menghasilkan aksi dan mendapatkan reward atau
punishment dan ‘belajar. Tujuan teknik ini adalah agar mesin dapat
memaksimalkan reward dan meminimalkan punishment pada setiap aksi yang dilakukan saat ini hingga masa depan.
4. Unsupervised Learning
Berbeda dengan teknik lainnya, unsupervised learning tidak membutuhkan label untuk ‘mempelajari’ dan membuat prediksi dari kumpulan training data serta tidak melakukan interaksi dengan lingkungan. Teknik ini bertujuan untuk mendapatkan representasi dari data training yang dapat digunakan untuk menemukan pola struktur yang bebas dari noise. Metode yang menggunakan teknik unsupervised
learning di antaranya non-negative matrix factorization, self-organizing map, dan latent semantic analysis.
2.2. Web Crawler
Web Crawler merupakan program pengumpul informasi yang hasilnya akan disimpan
pada sebuah database. Sebuah web crawler akan berjalan menelusuri halaman web dan mengumpulkan dokumen-dokumen atau data-data di dalamnya. Selanjutnya web
crawler akan membangun sebuah daftar indeks untuk memudahkan proses pencarian.
Gambar 2.1. Arsitektur Web Crawler (Wikipedia, 2016)
Gambar 2.1. merupakan arsitektur dari sistem crawler. Crawler diawali dengan adanya daftar URL yang akan dikunjungi, disebut dengan seeds. Setelah crawler mengunjugi URL tersebut, kemudian mengidentifikasi semua hyperlink dari halaman itu dan menambahkan kembali ke dalam seeds. Hal ini dinamakan crawl frontier. Setelah web
crawler mengunjungi halaman-halaman web yang ditentukan di dalam seeds, maka web crawler membawa data-data yang dicari oleh user kemudian menyimpannya ke sebuah storage.
Proses crawling merupakan proses dimana web crawler mengumpulkan data-data dari halaman web. Web crawler dimulai dengan sekumpulan URL, kemudian
men-download setiap halamannya, mendapatkan link dari setiap page yang dikunjungi
kemudian mengulangi kembali proses crawling pada setiap link halaman tersebut.
2.3. Text Mining
Text mining merupakan teknik yang digunakan untuk menangani masalah klasifikasi, clustering, information extraction, dan information retrieval (Berry & Kogan, 2010). Text mining sebenarnya tidak jauh berbeda dengan data mining, yang membedakan
hanyalah sumber data yang digunakan. Pada data mining data yang digunakan adalah data yang terstruktur, sedangkan pada text mining data yang digunakan adalah data yang tidak terstruktur berupa teks. Tujuan dari text mining secara keseluruhan adalah pada dasarnya untuk mengubah suatu teks menjadi data yang dapat dianalisis. Text mining
dapat menganalisis dokumen, mengelompokkan dokumen berdasarkan kata-kata yang terkandung di dalamnya, serta menentukan tingkat kemiripan di antara dokumen untuk mengetahui bagaimana mereka berhubungan dengan variabel lainnya (Statsoft, 2015).
Menurut Miner et al (2012), cakupan dari text mining dikelompokkan menjadi tujuh daerah praktek, yaitu :
a. Pencarian dan perolehan informasi (search and information retrieval), yaitu menerapkan proses penggalian dokumen teks dalam membangun mesin pencarian (search engine) atau pencarian kata kunci (keywords).
b. Pengelompokan dokumen, yaitu mengelompokkan dan mengkategorikan kata, istilah, paragraf, serta dokumen dengan menggunakan metode klaster (clustering). c. Klasifikasi dokumen, yaitu pengelompokan dan pengkategorian kata, istilah, paragraf, serta dokumen dengan menggunakan metode klasifikasi (classification) berdasarkan model terlatih yang sudah memiliki label atau kelas.
d. Web mining, yaitu penggalian informasi dari internet dengan skala fokus yang spesifik.
e. Ekstraksi informasi (information extraction), yaitu mengidentifikasi dan mengekstraksi informasi dari data yang sifatnya semi-terstruktur atau tidak terstruktur dan mengubahnya menjadi data yang memiliki struktur.
f. Natural Language Processing (NLP), yaitu suatu teknik yang memberikan
kemampuan pada mesin untuk dapat memahami bahasa manusia (bahasa natural). g. Ekstraksi konsep, yaitu pengelompokan kata atau frasa ke dalam kelompok yang
mirip secara semantic.
2.4. Text Preprocessing
Text preprocessing merupakan tahapan awal dari text mining. Text mining adalah proses
menambang data berupa teks di mana sumber data biasanya didapatkan dari dokumen, dan tujuannya adalah mencari kata - kata yang dapat mewakili isi dari dokumen sehingga dapat dilakukan analisa keterhubungan antar dokumen (Harlian, 2006). Text
belum terstruktur menjadi data yang terstruktur sesuai dengan kebutuhan yang dilakukan untuk proses mining yang lebih lanjut. Tahap-tahap pada text pre-processing secara umum adalah case-folding, tokenizing, filtering, dan stemming. Penjelasan dari tahap-tahap tersebut adalah sebagai berikut:
2.4.1. Case folding
Case folding adalah tahap mengubah semua huruf dalam dokumen menjadi huruf kecil.
Hanya huruf “a” sampai dengan “z” yang diterima. Karakter selain huruf dihilangkan dan dianggap delimiter. Pada tahapan ini, ada beberapa aturan proses agar hasil case
folding dapat sesuai dengan yang diharapkan. Adapun aturan-aturan tersebut dapat
dilihat pada Tabel 2.1.
Tabel 2.1. Aturan Case Folding
Kondisi Aksi
Input-an data memiliki huruf kapital
[A...Z]
Mengubah semua inputan tersebut menjadi huruf kecil [a...z] semua
Input-an data memiliki karakter
simbol
Menghapus karakter simbol dari input-an.
Input-an data memiliki huruf kecil Tidak ada aksi Input-an data memiliki spasi Tidak ada aksi
Contoh dari proses case folding dapat dilihat pada Gambar 2.2.
Gambar 2.2. Proses Case Folding Presiden Joko Widodo
berpidato bahwa tidak ada perombakan kabinet
dalam waktu dekat.
presiden joko widodo berpidato bahwa tidak ada perombakan kabinet
2.4.2. Tokenizing
Dokumen dapat dipecah menjadi bab-bab, bagian, paragraf, kalimat, kata, dan bahkan suku kata. Pendekatan yang paling sering ditemukan dalam sistem text mining melibatkan teks menjadi kalimat dan kata-kata, yang disebut tokenization. Tokenizing merupakan proses pemotongan string input berdasarkan tiap kata yang menyusunnya serta membedakan karakter-karakter tertentu yang dapat diperlakukan sebagai pemisah kata atau bukan. Beberapa aturan dalam proses tokenizing dapat dilihat pada Tabel 2.2.
Tabel 2.2. Aturan Tokenizing
Kondisi Aksi
Jika input-an data bertemu spasi Akan memecah dari deskripsi data menjadi bab-bab per bagian kata atau
string
Jika input-an data memiliki huruf Tidak ada aksi
Contoh dari proses tokenizing dapat dilihat pada Gambar 2.3.
Gambar 2.3. Contoh Proses Tokenizing presiden joko
widodo berpidato bahwa tidak ada
perombakan kabinet dalam waktu dekat presiden joko widodo berpidato bahwa tidak ada perombakan kabinet dalam waktu dekat
2.4.3. Filtering
Filtering adalah tahap mengambil kata-kata penting dari hasil tokenizing. Bisa
menggunakan algoritma stoplist (membuang kata yang kurang penting) atau wordlist (menyimpan kata penting). Stoplist/stopword adalah kata-kata yang tidak deskriptif yang dapat dibuang dalam pendekatan bag-of-words. Contoh kata yang termasuk
stop-words adalah “yang”, “dan”, “di”, “dari”, dan seterusnya (Tala, 2003). Pada tahapan
ini, beberapa aturan dalam proses filtering dapat dilihat pada Tabel 2.3.
Tabel 2.3 Aturan Filtering
Kondisi Aksi
Jika input-an data mengandung kata pada database stopword
Akan menghapus kata atau string dalam data
Jika input-an data tidak mengandung kata pada database stopword
Tidak akan dihapus kata atau string data
Contoh dari proses filtering dapat dilihat pada Gambar 2.4.
Gambar 2.4. Contoh Proses Filtering presiden joko widodo berpidato bahwa tidak ada perombakan kabinet dalam waktu dekat presiden joko widodo berpidato perombakan kabinet waktu dekat
2.4.4. Stemming
Proses stemming adalah proses untuk mencari root dari kata hasil dari proses filtering.
Stemming merupakan salah satu proses yang terdapat dalam sistem Information Retrieval (IR) untuk mengolah kata-kata yang terdapat dalam suatu dokumen dengan
menggunakan aturan-aturan tertentu sehingga didapatkan kata dasarnya (root word). Pencarian root sebuah kata atau biasa disebut dengan kata dasar dapat memperkecil hasil indeks tanpa harus menghilangkan makna.
Teknik stemming terdiri dari beberapa macam metode. Metode pertama yaitu
stemming dengan acuan tabel pemenggalan imbuhan. Proses stemming suatu term
dengan metode ini dapat dilakukan dengan cara menghilangkan imbuhan dari term tersebut sesuai dengan tabel acuan pemenggalan imbuhan yang akan digunakan. Metode kedua adalah pengembangan dari metode pertama. Metode kedua ini selain menggunakan tabel acuan pemenggalan imbuhan, juga menggunakan suatu kamus kata dasar. Kamus kata dasar ini digunakan sebagai acuan hasil stemming saat proses pemenggalan imbuhan telah selesai dilakukan. Hasil dari proses stemming dengan metode ini harus ada pada kamus kata dasar, jika tidak ada pada kamus kata dasar maka
term yang telah dimasukkan akan dianggap sudah sebagai bentuk dasar.
Term yang sudah melewati proses pembuangan stopword yang akan menjadi input dalam proses ini. Contoh dari proses stemming dapat dilihat pada Gambar 2.5.
berikut.
Gambar 2.5. Contoh Proses Stemming mengungkapkan diberikan bertanya menangkap ungkap beri tanya tangkap
2.5. Algoritma Nazief & Andriani
Algoritma Nazief & Adriani merupakan algoritma stemming untuk teks berbahasa Indonesia yang memiliki kemampuan presentase keakuratan (presisi) lebih baik dari algoritma lainnya. Algoritma ini menggunakan beberapa aturan morfologi untuk menghilangkan affiks (awalan, imbuhan, dll) dari sebuah kata dan kemudian mencocokannya dalam kamus akar kata (kata dasar).
Algoritma Nazief & Adriani yang dibuat oleh Bobby Nazief dan Mirna Adriani ini memiliki tahap-tahap sebagai berikut (Nazief & Adriani, 1996):
1. Cari kata yang akan di-stem dalam kamus. Jika ditemukan maka diasumsikan bahwa kata tesebut adalah root word. Maka algoritma berhenti.
2. Inflection Suffixes (“-lah”, “-kah”, “-ku”, “-mu”, atau “-nya”) dibuang. Jika berupa
particles (“-lah”, “-kah”, “-tah” atau “-pun”) maka langkah ini diulangi lagi untuk
menghapus Possesive Pronouns (“-ku”, “-mu”, atau “-nya”), jika ada.
3. Hapus Derivation Suffixes (“-i”, “-an” atau “-kan”). Jika kata ditemukan di kamus, maka algoritma berhenti. Jika tidak maka ke langkah 3a
a. Jika “-an” telah dihapus dan huruf terakhir dari kata tersebut adalah “-k”, maka “-k” juga ikut dihapus. Jika kata tersebut ditemukan dalam kamus maka algoritma berhenti. Jika tidak ditemukan maka lakukan langkah 3b.
b. Akhiran yang dihapus (“-i”, “-an” atau “-kan”) dikembalikan, lanjut langkah 4. 4. Hapus Derivation Prefix. Jika pada langkah 3 ada sufiks yang dihapus maka pergi
ke langkah 4a, jika tidak pergi ke langkah 4b.
a. Periksa tabel kombinasi awalan-akhiran yang tidak diijinkan. Jika ditemukan maka algoritma berhenti, jika tidak pergi ke langkah 4b.
b. For i = 1 to 3, tentukan tipe awalan kemudian hapus awalan. Jika root word belum juga ditemukan lakukan langkah 5, jika sudah maka algoritma berhenti. Catatan: jika awalan kedua sama dengan awalan pertama algoritma berhenti. 5. Melakukan Recording.
6. Jika semua langkah telah selesai tetapi tidak juga berhasil maka kata awal diasumsikan sebagai root word. Proses selesai.
Tipe awalan ditentukan melalui langkah-langkah berikut:
1. Jika awalannya adalah: “di-”, “ke-”, atau “se-” maka tipe awalannya secara berturut-turut adalah “di-”, “ke-”, atau “se-”.
2. Jika awalannya adalah “te-”, “me-”, “be-”, atau “pe-” maka dibutuhkan sebuah proses tambahan untuk menentukan tipe awalannya.
3. Jika dua karakter pertama bukan “di-”, “ke-”, “se-”, “te-”, “be-”, “me-”, atau “pe-” maka berhenti.
4. Jika tipe awalan adalah “none” maka berhenti. Hapus awalan jika ditemukan.
Tabel 2.4. Kombinasi Awalan Akhiran Yang Tidak Diijinkan
(Nazief & Adriani, 1996)
Awalan Akhiran yang tidak diijinkan
be- -i
di- -an
ke- -i, -kan
me- -an
se- -i, -kan
Tabel 2.5. Tabel Aturan Peluruhan Kata Dasar (Nazief & Adriani, 1996)
Aturan Awalan Peluruhan
1 berV… ber-V..| be-rV..
2 Belajar bel-ajar
3 berClerC2 be-ClerC2.. dimana Cl!= {‘r’|’l’}
4 terV… ter-V.. | te-rV..
5 terCer… ter-Cer… dimana C!=’r’
6 teClerC2 te-CleC2… dimana Cl!=’r’
7 me{I|r|w|y}V… me-{I|r|w|y}V…
8 mem{b|f|v}… mem-{b|f|v}…
9 mempe… m-pe..
Tabel 2.5. Tabel Aturan Peluruhan Kata Dasar (Lanjutan)
Aturan Awalan Peluruhan
11 men{c|d|j|z}… men-{c|d|j|z}…
12 menV… me-nV…| me-tV…
13 meng{g|h|q|k}… meng-{g|h|q|k}…
14 mengV… meng-V…| meng-kV…
15 mengeC… meng-C…
16 menyV… me-ny…| men-sV…
17 memV… mem-pV…
18 pe{w|y}V… pe-{w|y}V…
19 perV… per-V…| pe-rV…
20 pem{b|f|v}… pem-{b|f|v}…
21 pem{rV|V}… pe-m{rV|V}…| pe-p{rV|V}…
22 pen{c|d|j|z}… pen-{c|d|j|z}…
23 penV… pe-nV…| pe-tV…
24 peng{g|h|q}… peng-{g|h|q}
25 pengV… peng-V| peng-kV
26 penyV… pe-nya| peny-sV
27 pelV… pe-IV...; kecuali untuk kata “pelajar”
28 peCP… pe-CP...dimana C!={r|w|y|I|m|n} dan P!=’er’
29 perCerV… per-CerV... dimana C!={r|w|y|I|m|n}
Untuk mengatasi keterbatasan pada algoritma di atas, maka ditambahkan aturan-aturan dibawah ini:
1. Aturan untuk reduplikasi.
a. Jika kedua kata yang dihubungkan oleh kata penghubung adalah kata yang sama maka root word adalah bentuk tunggalnya, contoh : “buku-buku” root word-nya adalah “buku”.
b. Kata lain, misalnya “bolak-balik”, “berbalas-balasan, dan ”seolah-olah”. Untuk mendapatkan root word-nya, kedua kata diartikan secara terpisah. Jika keduanya memiliki root word yang sama maka diubah menjadi bentuk tunggal, contoh: kata “berbalas-balasan”, “berbalas” dan “balasan” memiliki root word yang
sama yaitu “balas”, maka root word “berbalas-balasan” adalah “balas”. Sebaliknya, pada kata “bolak-balik”, “bolak” dan “balik” memiliki root word yang berbeda, maka root word-nya adalah “bolak-balik”.
2. Tambahan bentuk awalan dan akhiran serta aturannya.
a. Untuk tipe awalan “mem-“, kata yang diawali dengan awalan “memp-” memiliki tipe awalan “mem-”.
b. Tipe awalan “meng-“, kata yang diawali dengan awalan “mengk-” memiliki tipe awalan “meng-”.
2.6. N-Gram
Model n-gram adalah sebuah tipe model probabilistik untuk memperkirakan elemen selanjutnya pada sebuah urutan. N-gram digunakan untuk berbagai area statistik dari pemrosesan bahasa alami dan analisis urutan genetik. Sebuah n-gram adalah sebuah sub-urutan dari sejumlah n elemen dari urutan yang diberikan. Elemen dapat berupa fonem, huruf, kata, tergantung dari kebutuhan aplikasi.
N-gram adalah potongan n karakter dalam suatu string tertentu atau potongan n kata dalam suatu kalimat tertentu (Cavnar & Trenkle, 1994). Metode N-gram digunakan untuk mengambil potongan-potongan karakter huruf/kata sejumlah n dalam sebuah kata/kalimat yang secara kontinu dibaca dari kata sumber hingga akhir dari dokumen. Jika n=1 maka disebut bigram, n=2 disebut bigram dan n=3 disebut trigram.
Misalnya dalam kata “Teknik” akan didapatkan n-gram seperti pada Tabel 2.6 berikut.
Tabel 2.6. Contoh Pemotogan N-gram Berbasis Karakter
Nama n-gram karakter
Uni-gram T, E, K, N, I, K
Bi-gram _T, TE, EK, KN, NI, IK, K_
Tri-gram _TE, TEK, EKN, KNI, NIK, IK_, K_ _
Karakter blank “_” digunakan untuk merepresentasikan spasi di depan dan di akhir kata. Dan untuk word-based n-gram contohnya dapat dilihat pada Tabel 2.7.
Kalimat : “N-gram adalah potongan n karakter dalam suatu string tertentu”
Tabel 2.7. Contoh Pemotongan N-gram Berbasis Kata
Nama n-gram karakter
Uni-gram n-gram, adalah, potongan, n, karakter, dalam, suatu, sring, tertentu Bi-gram n-gram adalah, adalah potongan, potongan n, n karakter, karakter dalam,
dalam suatu, suatu string, string tertentu
Tri-gram n-gram adalah potongan, adalah potongan n, potongan n karakter, n karakter dalam, karakter dalam suatu, dalam suatu string, suatu string tertentu
Dst...
2.7. Pembobotan Term
Pembobotan Term Frequency (TF) merupakan pembobotan yang sering digunakan dalam pencarian informasi dari text mining (Jones, 2004). Bobot ini adalah ukuran statistik yang digunakan untuk mengevaluasi seberapa penting sebuah kata yang muncul dalam sebuah dokumen dari keseluruhan dokumen. Term Frequency akan meningkat berdasarkan jumlah kemunculan kata pada dokumen tertentu. Variasi skema pembobotan Term Frequency yang sering digunakan oleh mesin pencari merupakan alat utama dalam menilai dan merangking dokumen. Term Frequency (TF) merupakan metode yang paling sederhana dalam pembobotan setiap term. Setiap term diasumsikan memiliki kepentingan yang sebanding terhadap jumlah kemunculan term tersebut pada dokumen. Bobot dari term pada dokumen yaitu:
TFd,t = fd,t (2.1)
Dimana: d = dokumen ke-d
t = token (kata) ke-t
Term Frequency (TF) digunakan untuk memberi bobot pada kata-kata yang sering
muncul dalam dokumen. Bobot tersebut mewakili jumlah kemunculan kata pada suatu dokumen tertentu. Semakin tinggi nilai bobot tersebut berarti semakin sering kata-kata tersebut muncul pada dokumen.
2.8. Faktorisasi Matriks
Faktorisasi matriks merupakan proses pemecahan atau penguraian suatu matriks menjadi beberapa matriks. Matriks-matriks hasil faktorisasi biasanya memiliki struktur tertentu dimana membuat beberapa operasi akan menjadi lebih sederhana (efisien dari segi komputasi), jumlah komponen yang lebih sedikit (efisien dari segi memori). Beberapa contoh matriks hasil faktorisasi adalah matriks triangular (segitiga atas, segitiga bawah, diagonal), matriks ortogonal atau matriks yang memiliki rank yang lebih kecil.
Secara umum, metode faktorisasi matriks dibagi menjadi dua kelompok, yaitu
direct method dan approximation method. Direct method merupakan teknik yang secara
teori memberikan nilai eksak dengan jumlah langkah terbatas. Contohnya adalah faktorisasi LU, faktorisasi Cholesky, dan faktorisasi QR.
Sedangkan approximation method menggunakan suatu perkiraan solusi awal dan dilanjutkan dengan iterasi yang memberikan solusi hasil lebih baik. Tujuan metode ini adalah untuk mendapatkan cara meminimalkan perbedaan antara solusi perkiraan (approximation) dan solusi eksak. Contoh faktorisasi matriks dengan approximation
method adalah single value decomposition (SVD), matrix factorization (MF), dan non-negative matrix factorization (NMF).
2.8.1. Non-Negative Matrix Factorization (NMF)
Non-Negative Matrix Factorization diusulkan oleh Lee dan Seung (2001) sebagai
metode untuk dekomposisi sebuah data matriks (Buciu & Nafornita, 2009). NMF merupakan matriks representasi kata dengan topik yang bernilai non-negatif sehingga
NMF merupakan metode faktorisasi matriks V yang berukuran m x n menjadi matriks 𝑊𝑚𝑥𝑘 dan 𝐻𝑘𝑥𝑛 yang bernilai non-negatif. Lee & Seung (2001) mengusulkan metode
dekomposisi dengan NMF secara umum dapat dinyatakan dalam bentuk persamaan 2.2.
V = WH (2.2)
Matriks V merupakan matriks kata dokumen yang merepresentasikan teks dokumen dimana setiap entri dari vektor kolomnya merepresentasikan banyaknya kata di sebuah dokumen. W adalah matriks bobot yang setiap vektor barisnya merepresentasikan vektor dari masing-masing kata terhadap topik dan H adalah matriks fitur yang setiap vektor kolomnya merepresentasikan vektor dari masing-masing dokumen terhadap topik seperti yang diilustrasikan pada Gambar 2.6 berikut.
𝑑1 𝑑2 … 𝑑𝑛 𝑡1 𝑡2 … 𝑡𝑘 𝑑1 𝑑2 … 𝑑𝑛 𝑘1 𝑘2 … 𝑘𝑚 [ 𝑒11 𝑒12 𝑒21 … 𝑒𝑚1 𝑒22 … 𝑒𝑚2 … 𝑒1𝑛 … … … 𝑒2𝑛 … 𝑒𝑚𝑛 ]
≈
𝑘1 𝑘2 … 𝑘𝑚 [ 𝑥11 𝑥12 𝑥21 … 𝑥𝑚1 𝑥22 … 𝑥𝑚2 … 𝑥1𝑘 … … … 𝑥2𝑘 … 𝑥𝑚𝑘 ] x 𝑡1 𝑡2 … 𝑡𝑘 [ 𝑦11 𝑦12 𝑦21 … 𝑦𝑘1 𝑦22 … 𝑦𝑘2 … 𝑦1𝑛 … … … 𝑦2𝑛 … 𝑦𝑘𝑛 ]Gambar 2.6. Ilustrasi Non Negative Matrix Factorization
Keterangan : 𝑘𝑖 = kata ke-i, 𝑑𝑖 = dokumen ke-i, 𝑡𝑖 = topik ke-i,
𝑒𝑖𝑗 = jumlah kata ke-i dalam dokumen ke-j
𝑥𝑖𝑗 = nilai hubungan antara kata ke-i dengan topik ke-j 𝑦𝑖𝑗 = nilai hubungan antara topik ke-i dengan dokumen ke-j
Dengan matriks aproksimasi, dicapai kondisi dimana perkalian matriks ini sama dengan matriks V.
Untuk mencapai kondisi ini dibutuhkan sebuah kriteria untuk mengetahui perkalian matriks W dan H yang didapat mendekati nilai V yang disebut sebagai Cost
Function. Model Cost Function dibangun dengan pengukuran jarak antara dua matriks
non-negatif A dan B, seperti yang dijelaskan dalam persamaan 2.3 (Paatero, 1997).
||𝐴 − 𝐵||2 = ∑ (𝑎𝑖𝑗− 𝑏𝑖𝑗) 2
𝑖𝑗 (2.3)
Untuk menyelesaikan masalah NMF ada beberapa algoritma yang sering digunakan, di antaranya additive update algorithm, multiplicative update algorithm, alternating least
square algorithm, dan sebagainya. Multiplicative update rule adalah aturan yang
populer dipakai untuk menyelesaikan masalah NMF. Aturan ini diklaim oleh Lee & Seung (2001) bahwa nilai dari cost function yang didapat dari pembaharuan matriks W dan H adalah nonincreasing dan limit point dari barisan W, H adalah titik stationary yang merupakan syarat penting untuk local minimum.
Dari multiplicative rule tersebut, dibentuk algoritma untuk menyelesaikan masalah NMF (Berry et al, 2007). Rumus dari algoritma tersebut dapat dilihat pada persamaan 2.4 dan 2.5.
H = H.*(VTV). / (WTWH+10−9) (2.4)
W = W.*(VHT). / (WHHT+10−9) (2.5)
Penambahan 10−9 pada persamaan tersebut untuk menghindari pembagian dengan nol.
2.9. Penelitian Terdahulu
Fudolly (2011) memanfaatkan metode likelihood dan cosine similarity untuk menganalisis klasifikasi kategori dan identifikasi topik dokumen berita berbahasa Indonesia. Uji coba dilakukan pada dokumen berita berbahasa Indonesia untuk setiap
mengklasifikasikan berita – berita online yang ada menjadi hirarki dengan topik dan kategori yang lebih spesifik. Hasil uji coba menunjukkan bahwa klasifikasi secara
online dapat menghasilkan hasil yang lebih baik dibandingkan klasifikasi offline.
Nugraha (2011) memanfaatkan metode KEA++ untuk penyaringan frasa kunci secara otomatis pada pencarian artikel ilmiah berbahasa Indonesia. Pada penelitian ini data yang digunakan adalah 30 jurnal akuntansi berbahasa berbahasa Indonesia dan Tesaurus akuntansi berbahasa Indonesia. Berdasarkan pengujian yang dilakukan, semakin banyak jumlah data pelatihan yang digunakan maka semakin tinggi pula akurasi dari proses penyaringan frasa kunci artikel ilmiah berbahasa Indonesia. Penggunaan Tesaurus dapat meningkatkan akurasi dalam proses penyaringan frasa kata kunci ini. Berdasarkan evaluasi dan responden terhadap 10 dokumen yang disaring frasa kuncinya, persentase jumlah frasa kunci yang sesuai adalah sebanyak 51.75%.
Pada penelitian selanjutnya, analisis trending topic dengan menggunakan model pendeteksian topik sub-topik, peneliti menggunakan pendekatan Foreground Dynamic
Topic Modelling (VF-DTM) untuk merangkum trending topic berdasarkan data tweet
dalam struktur yang lebih baik (Banu S. Halima., 2016).
Basri (2016) melakukan penelitian dengan memanfaatkan metode SVM untuk mengidentifikasi topik informasi publik media sosial di kota Surabaya berdasarkan klasterisasi teks pada twitter dengan algoritma K-Means. Penelitian yang dilakukan dapat menemukan topik-topik yang sering dibahas pada sosial media kota Surabaya dengan menggunakan metode SVM, dengan hasil yang memiliki persentase paling tinggi adalah SVM kernel ”linear”.
Park (2011) memanfaatkan metode Non Negative Matrix Factorization dan
Pseudo Relevance Feedback untuk peringkasan dokumen otomatis dengan
mengekstraksi kalimat yang relevan dengan user dengan ringkasan yang berfokus kepada user. Metode tersebut mengekstrak kalimat yang bermakna karena mencerminkan struktur dokumen yang berhubungan dengan fitur semantik dan variabel semantik dengan NMF. Kinerja metode yang diusulkan memperoleh nilai rata-rata
F-Measure 46.8. Hasil percobaan menunjukkan bahwa metode yang diusulkan mencapai
Penelitian terdahulu yang telah dijelaskan di atas akan diuraikan secara singkat pada Tabel 2.8 berikut:
Tabel 2.8. Penelitian Terdahulu
No. Peneliti Tahun Metode Keterangan
1. Fudolly 2011 Likelihood dan
Cosine Similarity
• Klasifikasi kategori dan identifikasi topik dokumen berita berbahasa Indonesia untuk setiap kategori dengan topik yang berbeda – beda
• Algoritma yang diusulkan oleh
terbukti mampu melakukan
klasifikasi kategori dan identifikasi topik dokumen berita berbahasa Indonesia • Hasil uji coba menunjukkan
bahwa klasifikasi secara online dapat menghasilkan hasil yang
lebih baik dibandingkan
klasifikasi offline.
2. Nugraha 2011 KEA++ • Penyaringan frasa kunci secara
otomatis pada pencarian artikel ilmiah berbahasa Indonesia • Data yang digunakan adalah 30
jurnal akuntansi berbahasa
berbahasa Indonesia dan
Tesaurus akuntansi berbahasa Indonesia.
yang disaring frasa kuncinya, persentase jumlah frasa kunci yang sesuai adalah sebanyak 51.75%.
Tabel 2.8. Penelitian Terdahulu (Lanjutan)
3. Banu S. Halima 2016 Foreground
Dynamic Topic Modelling (VF-DTM)
• Merangkum trending topic berdasarkan data tweet dalam struktur yang lebih baik
4. Basri 2016 K-Means
Clustering &
Support Vector Machine
• Mengidentifikasi topik informasi publik media sosial di kota
Surabaya berdasarkan
klasterisasi teks pada twitter • Penelitian yang dilakukan dapat
menemukan topik-topik yang sering dibahas pada sosial media
kota Surabaya dengan
menggunakan metode SVM, dengan hasil yang memiliki persentase paling tinggi adalah SVM kernel ”linear”.
5. Park 2016 Non Negative
Matrix Factorization
(NMF) dan Pseudo
Relevance Feedback
• Peringkasan dokumen otomatis dengan mengekstraksi kalimat yang relevan dengan user
dengan ringkasan yang berfokus kepada user
• Metode tersebut mengekstrak kalimat yang bermakna karena mencerminkan struktur
dokumen yang berhubungan dengan fitur semantik dan variabel semantik dengan NMF • Kinerja metode yang diusulkan
memperoleh nilai rata-rata
F-Measure 46.8 yang menunjukkan bahwa metode ini mencapai kinerja yang lebih baik dari metode lainnya.
BAB 3
ANALISIS DAN PERANCANGAN
Bab ini membahas mengenai data yang digunakan, penerapan algoritma dan analisis perancangan sistem terhadap implementasi algoritma Non Negative Matrix
Decomposition dalam melakukan proses ekstraksi tren topik artikel berita online. Ada
dua tahapan yang akan dibahas pada bab ini yaitu tahap analisis dan tahap perancangan sistem. Tahap analisis akan membahas mengenai analisis terhadap data dan metode yang digunakan, sedangkan tahap perancangan sistem akan membahas mengenai perancangan tampilan antarmuka.
3.1 Data Acquisition (Pengumpulan data)
Data yang digunakan untuk proses ekstraksi topik merupakan kumpulan artikel (korpus) yang disimpan dalam database sebanyak 842 artikel dengan kategori berita nasional, berita entertaiment, dan berita teknologi. Kumpulan artikel (korpus) ini merupakan hasil dari web crawler situs website berbahasa Indonesia yang didapatkan dari portal berita online. Situs website yang diambil adalah situs berita pada tanggal 06 Juni 2017 s/d 09 Juni 2017 dengan memanfaatkan URL dari beberapa portal berita online berbahasa Indonesia, yaitu:
a. Liputan6.com b. Kompas.com c. Tribunnews.com d. Sindonews.com e. Viva.co.id 3.2. Analisis Sistem
Ekstraksi topik artikel berita online menggunakan metode Non-Negative Matrix
Factorization merupakan sistem yang berfungsi untuk mengetahui berita apa yang
utama, yaitu input, proses, dan output. Tahapan yang dilakukan pada proses input adalah artikel berita hasil crawling yang dapat dilihat pada gambar 3.1. Tahapan proses merupakan bagian pre-processing, pembuatan kamus n-gram, term frequency, serta ekstraksi tren topik menggunakan perhitungan Non-Negative Matrix Decomposition. Tahapan post processing adalah proses yang berada di luar program. Sedangkan untuk tahapan output adalah berupa tren topik-topik berdasarkan tanggal per harinya dengan kategori nasional, entertaiment, dan teknologi, yang berbentuk visualisasi grafik. Arsitektur umum yang mendeskripsikan setiap metodologi pada penelitian ini ditunjukkan pada Gambar 3.1.
Gambar 3.1. Arsitektur Umum Crawling Seeds URL Case Folding Tokenizing Artikel Berita Text Preprocessing Stopword Removal (Filtering) Pembuatan kamus n-gram Input Proses
Ekstraksi Tren Topik Output Visualisasi Tren Topik Stemming Non-Negative Matrix Factorization Term Frequency List of topic
3.2.1. Input Data
Tahapan paling awal dimulai dari input data berupa artikel-artikel berbahasa Indonesia. Gambar 3.2 berikut ini merupakan proses input data hingga menghasilkan artikel berita menggunakan teknik crawling.
Gambar 3.2. Proses Crawling
Dalam langkah pertama, sebuah web crawler mengambil URL dan mengunduh halaman (fetch) dari internet berdasarkan URL yang diberikan. Artikel yang di-input berasal dari url-url portal berita online yang ditentukan oleh penulis. Halaman yang diunduh ditempatkan di database. Selanjutnya, web crawler mem-parsing keseluruhan
webpage yang diunduh dan mengambil link-link ke halaman lain. Pada penelitian ini, web crawler selain mengambil link-link juga akan mengambil konten berita pada webpage. Setelah crawler mengambil link dari webpage, tiap link ditambahkan ke
sebuah daftar untuk di-crawl. Pada tahap ini dilakukan content extraction menggunakan
boilerpipe. Boilerpipe merupakan salah satu algoritma ekstraksi konten pada halaman
HTML yang menyediakan algoritma untuk mendeteksi dan menghapus konten-konten selain main content seperti boilerplate ataupun template. Teknik extraction yang digunakan dalam boilerpipe ini merupakan ArticleExtractor, dimana crawler hanya
Seeds URL Fetch Parse
Content Extraction
terakhir menghasilkan artikel berita dengan informasi tanggal terbit berita. Semua artikel yang dihasilkan akan masuk ke dalam database yang nantinya akan dikelompokkan berdasarkan tanggal terbit dan kategori beritanya.
3.2.2. Text pre-processing
Tahapan text-preprocessing adalah tahapan awal dalam proses text mining. Tahap ini bertujuan untuk memproses artikel mentah menjadi artikel yang siap untuk diproses lebih lanjut. Artikel yang akan diproses adalah artikel hasil crawling yang telah diproses sebelumnya dan telah dikelompokkan berdasarkan kategori dan tanggal terbit beritanya. Terdapat beberapa tahapan dalam text pre-processing, yaitu case-folding, tokenizing,
filtering, dan stemming.
a. Case folding
Proses case folding adalah proses untuk mengubah semua huruf kapital menjadi huruf biasa.
b. Tokenizing
Proses tokenizing merupakan tahap pengolahan dokumen untuk menghilangkan gambar, tanda baca, spasi, dan karakter selain huruf (non-alpha character). Tahap ini memecah dokumen menjadi struktur terkecil yang dapat diproses, yaitu kata (term). Setelah melewati proses ini, dokumen berubah menjadi barisan kata dengan huruf kecil.
c. Filtering
Proses filtering adalah proses pemilihan kata-kata yang akan digunakan untuk merepresentasikan dokumen sehingga dapat digunakan untuk:
- Mendeskripsikan isi dokumen
- Membedakan dokumen dengan dokumen lain dalam kumpulan dokumen.
Kata-kata yang mungkin tidak memiliki makna yang berarti ketika berdiri sendiri, seperti kata hubung, kata depan, dan negasi dihilangkan dari setiap dokumen
Kumpulan kata ini disebut dengan stop-word. Pada penelitian ini, penulis menggunakan stop-word yang diperoleh dari penelitian Tala.
d. Stemming
Stemming adalah proses pengubahan suatu kata menjadi morfem atau kata dasar
yang membangunnya. Algoritma stemming yang digunakan adalah algoritma stemming Nazief Adriani yang telah dijelaskan pada bagian 2.4.
3.2.3. Pembuatan kamus n-gram
Setelah dilakukan proses pre-processing, tahapan selanjutnya yang dilakukan adalah pembuatan kamus kata kandidat topik yang akan diekstraksi menggunakan konsep pembentukan kamus n-gram. N-gram merupakan rangkaian dari n huruf atau n kata. Data n-gram terdiri dari kumpulan kata-kata 1 kata, 2 kata, dan 3 kata yang memiliki nilai yang disebut dengan frekuensi.
Pada kamus 1 kata, kalimat dipisahkan per 1 kata dan dihitung frekuensi kemunculan kata tersebut pada semua data dokumen yang telah diproses pada tahap
pre-processing. Pada kamus 2 kata, kalimat dipisahkan per 2 kata dan dihitung
frekuensi kemunculan katanya pada semua artikel. Pada kamus 3 kata, kalimat dipisahkan per 3 kata dan dihitung frekuensi kemunculan katanya pada semua artikel yang tersedia.
Setelah menghitung frekuensi dari masing-masing daftar kata, maka kemudian lakukan pembuangan kata yang frekuensi kemunculannya terlalu sedikit, sehingga proses perhitungan frekuensi berikutnya hanya akan dilakukan untuk kata-kata yang frekuensinya cukup banyak.
3.2.4. Pembentukan matriks kata dokumen
Setelah mendapatkan kamus 1 kata, 2 kata, dan 3 kata hasil ekstraksi kamus n-gram, selanjutnya akan dibentuk sebuah matriks kata A, yaitu sesuai dengan frekuensi kata yang telah dihitung pada proses sebelumnya. Kolom-kolom dari matriks V
Pada proses pembentukan matriks kata dokumen, pertama dimulai dengan menghitung kemunculan semua kata-kata pada kamus kata pada suatu artikel sehingga terbentuk sebuah vektor. Berikut merupakan data yang akan dibentuk matriks kata dokumennya yang ditampilkan pada Tabel 3.1.
Tabel 3.1. Proses Penyiapan Data
No. Tokenization Filtering Term Frequency
1. Bk, dpr, aturan, senpi, di, kode, etik, anggota, dewan [dpr, aturan, senpi, anggota] { dpr : 1, aturan : 1. senpi : 1, anggota : 1 } 2. Keributan, pecah, dinihari, eleven,
salemba, beri, garis, polisi
[keributan, eleven, salemba, polisi]
{ keributan : 1, eleven : 1, salemba : 1, polisi : 1 }
3. Keributan, di, eleven, salemba, menyisakan, bercak, darah [keributan, eleven, salemba] { keributan : 1 : eleven : 1, salemba : 1 }
4. Pelaku, keributan, di, eleven, salemba, duga, orang
[pelaku, keributan, eleven, salemba]
{ pelaku : 1, keributan : 1, eleven : 1, salemba : 1 }
5. Keributam, di, eleven, salemba, orang, luka
[keributan, eleven, salemba, luka]
{ keributan : 1, eleven : 1, salemba : 1, luka : 1 }
Dengan menggunakan kumpulan kata yang digunakan dalam proses NMF, dibangun sebuah dictionary atau kamus berisikan kata-kata yang berbeda. Dengan bantuan kamus tersebut, dapat dibangun hubungan kata dan dokumen yang dijelaskan pada Tabel berikut.
Tabel 3.2. Hubungan Kata Dokumen Dokumen d1 d2 d3 d4 d5 K a t a dpr 1 0 0 0 0 aturan 1 0 0 0 0 senpi 1 0 0 0 0 Anggota 1 0 0 0 0 keributan 0 1 1 1 1 Eleven 0 1 1 1 1 Salemba 0 1 1 1 1 Polisi 0 1 0 0 0 Pelaku 0 0 0 1 0 Luka 0 0 0 0 1
Dari Tabel 3.2. di atas kemudian dibentuk sebuah matriks kata-dokumen A berukuran 10x5 dengan setiap anggotanya menunjukkan frekuensi kata dalam dokumen.
A = [ 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1]
3.2.5. Ekstraksi tren topik dengan NMF
Proses selanjutnya adalah memasuki proses utama dalam algoritma NMF (Non
pada tabel 3.2, matriks A memiliki ukuran matriks sebesar 10 x 5, sehingga matriks W akan memiliki ukuran sebesar 10 x 10 dan matriks H akan memiliki ukuran sebesar 10 x 5.
Langkah-langkah yang dilakukan adalah:
1. Langkah pertama adalah melakukan inisialisasi nilai acak antara 0 sampai dengan 1 untuk masing-masing nilai pada matriks W dan H, sehingga akan dibutuhkan nilai acak untuk matriks W sebanyak 10 x 10 dan nilai acak untuk matriks H sebanyak 10 x 5.
2. Langkah kedua adalah menghitung perkalian matriks W * H dan kemudian menghitung jarak Euclidean antara matriks A dengan matriks tersebut. Jarak
Euclidean dihitung dengan rumus
||𝐴 − 𝐵||2 = ∑(𝑎𝑖𝑗 − 𝑏𝑖𝑗)2
𝑖𝑗
Simpan nilai perkalian matriks W*H sebagai matriks V, dan nilai jarak Euclidean sebagai nilai cost.
3. Langkah ketiga adalah melakukan update matriks W dan H menggunakan rumus
H = H.*(VTV). / (WTWH+10−9)
W = W.*(VHT). / (WHHT+10−9)
4. Ulangi perhitungan langkah kedua dan langkah ketiga sampai ditemukan nilai cost yang mendekati 0, dengan kata lain sudah tidak ditemukan perbedaan yang signifikan antara matriks A dan V.
5. Dapatkan nilai bobot sementara dari masing-masing kata, yaitu sesuai dengan nilai pada matriks H.
6. Lakukan perhitungan nilai bobot per kata, yaitu dengan cara membagi nilai matriks H dengan total semua nilai pada matriks H.
7. Untuk pasangan 2 kata dan pasangan 3 kata, maka bobot kata dihitung dengan penjumlahan bobot dari setiap kemungkinan kata yang terdapat pada pasangan kata tersebut, sehingga:
• Bobot untuk pasangan 2 kata dihitung dengan rumus
Bobot = bobot pasangan 2 kata + bobot kata pertama + bobot kata kedua
• Bobot untuk pasangan 3 kata dihitung dengan rumus
Bobot + bobot pasangan 3 kata + bobot pasangan 2 kata kombinasi pertama + bobot pasangan 2 kata kombinasi kedua + bobot kata pertama + bobot kata kedua + bobot kata ketiga
8. Lakukan pengurutan bobot kata dari bobot kata tertinggi sampai ke bobot kata terendah, dan kemudian dapatkan 5 bobot kata tertinggi sebagai jawaban topik.
3.3. Perancangan Sistem
Perancangan pada sistem pada penelitian ini dibagi menjadi dua bagian yakni perancangan sistem bagian belakang (back-end) dan perancangan sistem bagian depan (front-end).
3.3.1. Perancangan sistem bagian belakang (back-end)
Perancangan sistem bagian belakang (back end) lebih fokus terhadap program, fungsi,
script, serta alur data yang diterapkan pada sistem. Back-end dari sebuah sistem terdiri
dari server, aplikasi, dan database. Pada penelitian ini perancangan back end meliputi proses web extraction dengan teknik crawling untuk mendapatkan dataset berupa artikel dari portal berita online, lalu melakukan pre-processing untuk menyamakan struktur data, pembuatan kamus, pembentukan matriks kata. Setelah itu dilakukan pengujian algoritma Non Negative Matrix Factorization untuk menghasilkan tren-tren
topik yang sedang hangat dibicarakan pada periode waktu tertentu sesuai dengan kategori berita yang diinginkan.
3.3.2. Perancangan sistem bagian depan (front-end)
Perancangan sistem bagian depan (front-end) pada penelitian ini menggunakan
Graphical User Interface (GUI). Perancangan front-end ditujukan untuk membantu
pengguna dalam menggunakan sistem. Sistem bagian depan dirancang untuk menjalankan setiap proses pada penelitian ini dan memvisualisasikan hasil dari proses ekstraksi. Gambaran rancangan sistem bagian depan (front-end) dapat dilihat pada Gambar 3.3.
Gambar 3.3. Rancangan Bagian Depan Sistem
Sistem bagian depan (front-end) pada penelitian ini mempresentasikan setiap proses yang ada untuk melakukan ekstraksi tren topik dari artikel berita online hasil crawler.