METODE N-GRAM UNTUK EKSTRAKSI POLA TEKS DALAM UKURAN BESAR PADA ALGORITMA KOMPRES HUFFMAN DAN LEMPEL–ZIV–WELCH (LZW) YANG DIMODIFIKASI Mawaddah Harahap1), Amir Mahmud Husein2), Windania Purba3) 1), 2)
Teknik Informatika Universitas Prima Indonesia Medan Sistem Informasi Universitas Prima Indonesia Medan Jl Sekip Simpang Sekambing, Medan Email :
[email protected]),
[email protected]),
[email protected]) 3)
klasifikasi metode yang digunakan adalah N-Gram. Ngram adalah potongan n karakter dalam suatu string tertentu atau potongan n kata dalam suatu kalimat tertentu [16].
Abstrak Ekstraksi pola teks banyak digunakan peneliti untuk melakukan identifikasi, pencarian dokumen, klasifikasi, pencocokan pola dan Temu kembali Informasi. Salah satu dari beberapa metode yang dapat digunakan dalam tujuan untuk ektraksi pola teks adalah menggunakan metode N-gram. Metode N-gram banyak diusulkan peneliti sebagai parameter mempercepat proses ekstraksi teks. Namun untuk ekstraksi teks dalam ukuran besar membutuhkan waktu yang lama untuk proses pelatihan. Algoritma kompresi seperi Huffman dan Lempel–Ziv–Welch (LZW) dapat mengatasi permasalah proses ekstraksi teks dalam ukuran besar. Kombinasi metode N-Gram dengan algoritma kompresi diusulkan untuk memperbaiki performa ekstraksi teks dari teks ukuran besar dan memberikan informasi statistik tentang frekuensi dan panjang pola. Hasil dari pengujian pada metode yang diusulkan menunjukkan peningkatan proses akurasi waktu yang signifikan untuk ekstraksi pola teks ukuran besar.
Metode N-Gram digunakan untuk pemrosesan bahasa alami statistik seperti deteksi kalimat[7], Predictive Text[17], analisis sentimen[18], pengenalan fingerpelling[10], deteksi Plagiarisme[8], pengoreksian ejaan kata[20], pengenalan bahasa suku[1], Kategori Teks[16]. Metode N-Gram dapat mengatasi proses ekstraksi pola teks pada klasifikasi dokumen, namun membutuhkan waktu yang lama untuk proses ekstrasi pola teks untuk ukuran besar. Kompresi data adalah sebuah cara untuk memadatkan data sehingga hanya memerlukan ruangan penyimpanan lebih kecil dan akan lebih efesien dalam penyimpanan data serta mempersingkat waktu pertukaran data (kamus Bahasa Indonesia). Kompresi data merupakan bidang penelitian yang cukup populer, hal ini dikarenakan kompresi data dapat memberikan keuntungan dari berbagai aspek, mulai dari kompresi file [13], gambar[5], kompresi string[14], kompresi berbeda tipe file[12].
Kata kunci: N-Gram, Ekstraksi Pola Teks, Huffman, LZW.
1.
Algoritma kompresi seperti Huffman, Lempel-ZivWelchof (LZW), Run Length Encoding (RLE), Shannon-Fano, Goldbach Codes diusulkan oleh banyak penelitian. Algoritma LZW mempunyai kelebihan dalam ukuran hasil kompresi dan tidak menggunakan memori yang besar pada resolusi citra yang sama, RLE hasil kompres lebih[15], LZW baik digunakan kompres file dan kecepatan proses tergantung terhadap ukuran file[13]. Algoritma huffman proses kompresi dengan membentuk pohon, encoding dan decoding. Beberapa peneliti melakukan perbandingan hasil kompresi Metode LZW dengan Huffman seperti penelitian[12] metode Huffman lebih baik dibandingkan LZW hanya pada kasus file biner, file multimedia, file gambar, dan file hasil kompresi.
Pendahuluan
Peringkasan teks otomatis adalah proses mengurangi teks pada dokumen berisikan poin-poin penting dimana hasil ringkasan tidak lebih dari setengah dokumen asli[21]. Terdapat dua bagian dari kriteria peringkasan teks yaitu ekstraksi dan abstraksi. Teknik ekstraksi yaitu teknik peringkasan secara lengkap yang terdiri dari urutan-urutan kalimat yang disalin dan memilih bagianbagian kalimat[9]. Ekstraksi pola teks banyak digunakan dalam penelitian untuk mempercepat proses klasifikasi dokumen seperti klasifikasi berita[2][3][11][19]. Klasifikasi merupakan salah satu metode untuk menemukan model yang membedakan konsep dan kelas data[16]. Klasifikasi teks mempunyai masalah pada banyaknya dokumen teks yang berbeda, perbedaan tata bahasa dan lainnya, untuk meningkatkan proses
Dari hasil beberapa penelitian, metode kompresi dapat mengatasi proses ukuran file tanpa merubah file yang
180
ada, sehingga dalam penelitian ini kombinasi metode NGram dengan algoritma kompresi Huffman, Lempel-ZivWelchof (LZW) diusulkan untuk memperbaiki performa ekstraksi teks dari teks ukuran besar dengan hasil yang diharapkan memberikan informasi statistik tentang frekuensi dan panjang pola serta metode yang lebih cepat dari kedua metode kompresi.
Gram tidak akan terlalu sensitif terhadap kesalahan penulisan yang terdapat pada suatu dokumen (Hanafi Ahmad, 2009). Algoritma LZW (Lempel-Ziv-Welch) Algoritma LZW dikembangkan oleh Terry A.Welch dari metode kompresi sebelumnya yang ditemukan oleh Abraham Lempel dan Jacob Ziv pada tahun 1977. Algortima ini menggunakan teknik dictionary dalam kompresinya. Dimana string karakter digantikan oleh kode table yang dibuat setiap ada string yang masuk. Tabel dibuat untuk referensi masukan string selanjutnya. Ukuran tabel dictionary pada algoritma LZW asli adalah 4096 sampel atau 12 bit, dimana 256 sampel pertama digunakan untuk table karakter single (Extended ASCII), dan sisanya digunakan untuk pasangan karakter atau string dalam data input. Algoritma LZW melakukan kompresi dengan mengunakan kode table 256 hingga 4095 untuk mengkodekan pasangan byte atau string. Dengan metode ini banyak string yang dapat dikodekan dengan mengacu pada string yang telah muncul sebelumnya dalam teks. Algoritma kompresi LZW secara lengkap :
2. Pembahasan Metode N-Gram Pada dasarnya, model n-gram adalah model probabilistik yang awalnya dirancang oleh ahli matematika dari Rusia pada awal abad ke-20 dan kemudian dikembangkan untuk memprediksi item berikutnya dalam urutan item. Item bisa berupa huruf / karakter, kata, atau yang lain sesuai dengan aplikasi. Salah satunya, model n-gram yang berbasis kata digunakan untuk memprediksi kata berikutnya dalam urutan kata tertentu. N dalam n-gram bisa diberi nilai secara acak sesuai dengan keinginan pengguna. Bobot pada N akan digunakan untuk memecah sebuah kalimat menjadi kecil-kecil sesuai dengan pemberian bobot pada N. Pada gambar 1 adalah proses N-Gram dengan jumlah N sebanyak 3 (Trigram).
Gambar 1 Proses N-Gram
Gambar 2 Algoritma kompresi LZW
Proses pemberian bobot pada N-Gram sangatlah bervariatif tergantung pada data yang akan diproses, bobot pada N juga akan mempengaruhi keakuratan pada hasil learning, jadi memilih bobot yang tepat adalah sebuah proses yang bisa dikatakan sulit. Karena salah memberikan bobot hasil yang didapat tidak akan sesuai harapan, bahkan mendekati harapan. Pada pemrosesan ngram akan diberikan contoh dengan kata "coba", maka akan diproses sebagai berikut: Uni-grams : c,o,b,a Bi-grams : co,ob,ba Ri-gams : cob, oba Salah satu keunggulan menggunakan N-Gram dan bukan suatu kata utuh secara keseluruhan adalah bahwa N-
Sebagai contoh, string “ABBABABAC” akan dikompresi dengan LZW. Isi dictionary pada awal proses diset dengan tiga karakter dasar yang ada: “A”, “B”, dan “C”. Tahapan proses kompresi ditunjukkan pada tabel 2. Tabel 1 Tahapan proses kompresi LZW
181
Langkah 1. 2. 3. 4. 5.
Posisi 1 2 3 4 6
Karakter A B B A A
6.
9
C
Dictionary [4] A B [5] B B [6] B A [7] A B A [8] A B A C ----
Gambar 4 Algoritma dekompresi LZW
Ouput [1] [2] [3] [4] [7]
Untuk Tahapan proses dekompresi ini ditunjukkan pada Tabel 2. Tabel 2. Proses dekomposisi LZW Langkah Kode Output Dictionary 1. [1] A --2. [2] B [4] A B 3. [3] B [5] B B 4. [4] A [6] B A 5. [7] A [7] A B A 6. [3] C [8] A B A C
[3]
Kolom posisi menyatakan posisi sekarang dari stream karakter dan kolom karakter menyatakan karakter yang terdapat pada posisi tersebut. Kolom dictionary menyatakan string baru yang sudah ditambahkan kedalam dictionary dan nomor indeks untuk string tersebut ditulis dalam kurung siku. Kolom output menyatakan kode output yang dihasilkan oleh langkah kompresi. Hasil proses kompresi ditunjukkan pada Gambar 3
Metode Huffman Algoritma Huffman ditemukan oleh David Huffman pada tahun 1952. Algoritma ini menggunakan pengkodean yang mirip dengan kode Morse. Berdasarkan tipe kode yang digunakan algoritma Huffman termasuk metode statistic. Sedangkan berdasarkan teknik pengkodeannya menggunakan metode symbolwise. Algoritma Huffman merupakan salah satu algoritma yang digunakan untuk mengompres teks. Algoritma Huffman secara lengkap:
Gambar 3 Hasil proses kompresi Proses dekompresi pada LZW dilakukan dengan prinsip yang sama seperti proses kompresi. Algoritma diberikan pada Gambar 4. Pada awalnya, dictionary diinisialisasi dengan semua karakter dasar yang ada. Lalu pada setiap langkah, kode dibaca satu per satu dari stream kode, dikeluarkan string dari dictionary yang berkorespondensi dengan kode tersebut, dan ditambahkan string baru ke dalam dictionary.
Gambar 5 Algoritma Huffman Sebagai contoh, dalam kode ASCII string 7 huruf “ABACCDA” membutuhkan representasi 7 × 8 bit = 56 bit (7 byte), dengan rincian sebagai berikut:
Untuk mengurangi jumlah bit yang dibutuhkan, panjang kode untuk tiap karakter dapat dipersingkat, terutama
182
untuk karakter yang frekuensi kemunculannya besar. Pada string di atas, frekuensi kemunculan A = 3, B = 1, C = 2, dan D = 1, sehingga dengan menggunakan algoritma di atas diperoleh pohon huffaman seperti gambar 6.
Dataset
Proses Teks
Algorithm Variable Length Pattern Extraction
Algoritma Kompresi
LZW
Dictionary
Huffman
Statistik dan Panjang Pola Teks
Gambar 7. Metode yang disulkan Algorithm Variable Length Pattern Extraction
Gambar 6. Pohon huffman untuk “ABACCDA” untuk kode huffman seperti tabel dibawah ini
Simbol A B C D
Start
Tabel 3 Kode Huffman Frekuensi Peluang Kode Huffman 3 3/7 0 1 1/7 110 2 2/7 10 1 1/7 111
inisial pola aw al N-gram
Y buffer end
Stop
Dengan menggunakan kode Huffman ini, string “ABACCDA” direpresentasikan menjadi rangkaian bit : 0 110 0 10 10 111 0. Jadi, jumlah bit yang dibutuhkan hanya 13 bit dari yang seharusnya dibutuhkan 56 bit. Untuk menguraikan kembali data yang sudah dikodekan sebelumnya dengan algoritma Huffman, dapat digunakan cara sebagai berikut : 1. Baca bit pertama dari string biner masukan 2. Lakukan traversal pada pohon Huffman mulai dari akar sesuai dengan bit yang dibaca. Jika bit yang dibaca adalah 0 maka baca anak kiri, tetapi jika bit yang dibaca adalah 1 maka baca anak kanan. 3. Jika anak dari pohon bukan daun (simpul tanpa anak) maka baca bit berikutnya dari string biner masukan. 4. Hal ini diulang (traversal) hingga ditemukan daun. 5. Pada daun tersebut simbol ditemukan dan proses penguraian kode selesai. 6. Proses penguraian kode ini dilakukan hingga keseluruhan string biner masukan diproses.
Algoritma Variabel Length Pattern Extraction menggunakan pohon biner untuk proses penyimpanan pola yang diekstraksi untuk memberikan kecepatan pada saat pencarian /pengambilan item baru pada kamus.
Metodologi yang diusulkan
Hasil dan Pembahasan
N tambahkan pola ke kamus
pola sudah ada?
Y tambahkan pola ke kamus
N
Inisial pola baru dari pola sebelumnya panjang N
Gambar 8 Algoritma Variabel Length Pattern Extraction
183
Gambar 9 Grafik perbandingan panjang pola LZW dan Huffman
Gambar 8 Tampilan aplikasi ekstraksi pola teks Proses pengujian untuk ektraksi pola test menggunakan 10 dataset dengan ukuran file yang berbeda, kedua metode kompresi yang diusulkan akan dibandingkan hasil proses ekstraksi pola berdasarkan waktu dan panjang pola yang terdeteksi. Tabel 4 menunjukkan hasil dari kedua metode. Tabel 4 Hasil ekstraksi pola LZW dan Huffman
No Ukuran File 1 100 kb 2 135 kb 3 150 kb 4 200 kb 5 220 kb 6 330 kb
Panjang Pola Time (t) Alpha Frekuensi LZW Huffman LZW Huffman LZW Huffman LZW Huffman 5,042 5,042 6 5 12 11 0.768 0.998 6,042 6,021 4 4 7 7 0.804 0.865 8,703 8,701 6 6 8 8 0.345 0.706 6,077 6,077 5 5 6 6 0.684 0.996 9,871 9,872 4 4 10 10 0.325 0.635 10,090 10,090 8 7 4 4 0.665 0.998
Gambar 10 Grafik perbandingan Alpha, frekuensi pola teks LZW dan Huffman
Berdasarkan pada tabel 4, dapat dilihat terdapat perbedaan hasil antara metode LZW dan Huffman untuk panjang pola, alpha, frekuensi dan waktu dengan ukuran file yang sama, metode LZW lebih cepat dan lebih akurat dari metode huffman.
184
[4].
[5].
[6].
[7]. Gambar 11 Grafik perbandingan Waktu LZW dan Huffman
[8]. 3. Kesimpulan
1) Metode N-Gram yang diusulkan dengan kombinasi metode kompresi LZW dan Huffman lebih cepat proses ekstraksi pola berdasarkan hasil pengujian. 2) Meode kompresi LZW lebih cepat proses ekstrasi pola teks dibandingkan metode Huffman dengan ukuran file teks yang sama 3) Hasil ekstraksi pola yang diuji belum menghasilkan proses yang kurat dari sisi hasil, perlu dikembangkan dengan metode ekstraksi pola lainnya.
[9].
[10].
[11].
Daftar Pustaka [1].
[2].
[3].
Ahmad Hanafi, Rimba Whidiana, Retno Novi Dayawati, “Pengenalan Bahasa Suku Bangsa Indonesia Berbasis Teks Menggunakan Metode N-Gram”, IT Telkom, 2009. Achmad Ridok, Retnani Latifah, “Klasifikasi Teks Bahasa Indonesia Pada Corpus Tak Seimbang Menggunakan NWKNN”, Konferensi Nasional Sistem & Informatika 2015, STMIK STIKOM Bali, 9 – 10 Oktober 2015. Amir Hamzah, “Klasifikasi Teks Dengan Naïve Bayes Classifier (NBC) Untuk Pengelompokan Teks Berita Dan Abstract Akademis”, Prosiding
[12].
[13].
[14].
185
Seminar Nasional Aplikasi Sains & Teknologi (SNAST) Periode III, ISSN:1979-911X. Ajib Hanani, Harry Soekotjo Dachlan, dan Purnomo Budi Santoso, “Pemberian Harakat Bahasa Arab Menggunakan Metode N-Gram dan C5.0”, Jurnal EECCIS Vol. 9, No. 1, Juni 2015 Andika Satyapratama, Widjianto, Mahmud Yunus, “Analisis Perbandingan Algoritma Lzw Dan Huffman Pada Kompresi File Gambar Bmp Dan PNG”, Jurnal Teknologi Informasi Vol. 6 No. 2, Chin-Yew Lin and Eduard Hovy, “Automatic Evaluation of Summaries Using N-gram CoOccurrence Statistics”, Proceedings of HLTNAACL 2003 Main Papers , pp. 71-78. Diana Purwitasari, Putu Yuwono Kusmawan, Umi Laili Yuhana, “Deteksi Keberadaan Kalimat Sama Sebagai Indikasi Penjiplakan Dengan Algoritma Hashingberbasis n-Gram”, Jurnal Nasional KURSOR, Vol. 6, No. 1, ISSN 0216 – 0544, Januari 2011 Erick Alfons Lisangan, “Implementasi N-Gram Technique Dalam Deteksi Plagiarisme Pada Tugas Mahasiswa”, JURNAL TEMATIKA VOL. 1, NO. 2, SEPTEMBER 2013, ISSN: 2303 3878. Jezek, K., & Steinberger, J. “Automatic text summarization (The state of the art 2007 and new challenges)”. Vaclav Snasel : Znalosti. 1 12. 2008 John McDonald, et all, “Using N-Gram Analytics to Improve Automatic Fingerspelling Generation, Linguistics and Literature Studies” 5(3): 187-197, 2017, DOI: 10.13189/lls.2017.050306 Joko Samodra, Surya Sumpeno, Mochamad Hariadi, “Klasifikasi Dokumen Teks Berbahasa Indonesia dengan Menggunakan Naive Bayes”, Seminar Nasional Electrical, Informatics, And It’s Education 2009 Linawati dan Henry P. Panggabean, “Perbandingan Kinerja Algoritma Kompresi Huffman, Lzw, Dan Dmc Pada Berbagai Tipe File”, INTEGRAL, Vol. 9 No. 1, Maret 2004 Muhammad Iqbal Dzulhaq, Aan Ahmad Andayani, “Aplikasi Kompresi File Dengan Metode Lempel-Ziv-Welchof”, JURNAL SISFOTEK GLOBAL, ISSN : 2088 – 1762 Vol. 4 No. 1/ Maret 2014 Muhammad Maulana Abdullah, “Kompresi String Menggunakan Algoritma Lzw Dan
[15].
[16].
[17].
[18].
[19].
[20].
[21].
Huffman”, ILMU KOMPUTER dan TEKNOLOGI INFORMASI, vol. 3, no. 2, 2003. Neta, M.R.A. 2013. “Perbandingan Algoritma Kompresi Terhadap Objek Citra Menggunakan JAVA”. Prosiding Seminar Nasional Teknologi Informasi & Komunikasi Terapan 2013 (Semantik 2013), pp. 224-230 Permadi, Y. 2008. “Kategorisasi Teks Menggunakan N-Gram untuk Dokumen Berbahasa Indonesia”. Ilmu Komputer Institut Pertanian. Bogor. Silvia Rostianingsih, Sendy Andrian Sugianto, Liliana, “Aplikasi Predictive Text Berbahasa Indonesia Dengan Metode N-Gram”, SNTI V2014 Universitas Trisakti Wahyu Candra Indhiarta, “Penggunaan N-Gram Pada Analisa Sentimen Pemilihan Kepala Daerah Jakarta Menggunakan Algoritma Naïve Bayes”, Publikasi Ilmiah 2017, Program Studi Informatika, Fakultas Komunikasi dan Informatika, Universitas Muhammadiyah Surakarta. Wayan Firdaus Mahmudy, Agus Wahyu Widodo, “Klasifikasi Artikel Berita Secara Otomatis Menggunakan Metode Naive Bayes Classifier Yang Dimodifikasi”, TEKNO, Vol : 21 Maret 2014, ISSN : 1693-8739 Wedha Satya Wardhana, Tjokorda Agung Budi Wirayuda, Shaufiah, “Pengoreksian Ejaan Kata Menggunakan Metode N-Gram (Studi Kasus Dokumen Teks Berbahasa Indonesia)”, IT Telkom 2011. Zulkifli, Agung Toto Wibowo, Gia Septiana, “Pembobotan Fitur Ekstraksi Pada Peringkasan Teks Bahasa Indonesia Menggunakan Algoritma Genetika”, e-Proceeding of Engineering : Vol.2, No.2 Agustus 2015, 6481.
Universitas Sumatera Utara, lulus tahun 2010. Saat ini menjadi Dosen di Universitas Prima Indonesia Medan.
Biodata Penulis Mawaddah Harahap, memperoleh gelar Sarjana Komputer (S.Kom), Program Studi Sistem Informasi Sekolah Tinggi Teknik Harapan Medan, lulus tahun 2008. Memperoleh gelar Magister Komputer (M.Kom) Program Pasca Sarjana Magister Ilmu Komputer Universitas Sumatera Utara, lulus tahun 2014. Saat ini menjadi Dosen di Universitas Prima Indonesia Medan. Amir Mahmud Husein, memperoleh gelar Sarjana Komputer (S.Kom), Program Studi Sistem Informasi Universitas Prima Indonesia Medan, lulus tahun 2008. Memperoleh gelar Magister Komputer (M.Kom) Program Pasca Sarjana Magister Ilmu Komputer
186