1 TEMU KEMBALI DOKUMEN BERBAHASA INDONESIA DENGAN MEMPERKAYA QUERY MENGGUNAKAN PERSAMAAN KATA PADA TESAURUS Hariyanto 1), Gian Sebastian Anjasmara 2),...
TEMU KEMBALI DOKUMEN BERBAHASA INDONESIA DENGAN MEMPERKAYA QUERY MENGGUNAKAN PERSAMAAN KATA PADA TESAURUS Hariyanto1), Gian Sebastian Anjasmara2), Nanang Taufan Budiansyah3) Jurusan Teknik Informatika Institut Teknologi Sepuluh Nopember Kampus ITS Keputih, Sukolilo, Surabaya, 60111, Jawa Timur, Indonesia e-mail: [email protected]), [email protected]), [email protected])
Abstrak Dunia global yang berkembang sangat cepat berdampak pada tersedianya sumber informasi yang luas terutama secara digital. Seringkali, informasi yang dicari pada dunia digital tidak sesuai dengan apa yang dibutuhkan, salah satunya karena masukkan kata kunci yang kurang sesuai. Maka dari itu, diperlukan sebuah Sistem Temu Kembali Informasi untuk menyaring dan/atau memilih informasi-informasi yang sesuai dengan kebutuhan pengguna. Penelitian ini bertujuan untuk membangun tesaurus berbahasa Indonesia menggunakan teknik co-occurrence dengan pembobotan kata TF-IDF (term frequency-inverse document frequency) dari sumber dokumen berita untuk memperkaya query. Ada 3 tahapan penting dalam pembuatan sistem ini, penyusunan daftar kata dengan teknik co-occurrence dan pembobotan TF-IDF, perhitungan tingkat kemiripan, dan penyusunan korpus kata dasar. Hasil pencarian dokumen dengan query pada corpus dengan menggunakan tesaurus yang dibangun menghasilkan precision dan recall sebesar 0%. Dapat disimpulkan, bahwa tesaurus yang dibentuk tidak dapat memperkaya query sehingga memberikan informasi yang kurang relevan. Kata kunci : tesaurus, tf-idf, co-occurrence, sistem temu kembali informasi, query 1. Pendahuluan Banyaknya informasi yang beredar pada dunia maya seiiring transformasi dunia menjadi dunia serba digital membutuhkan pengguna untuk mencari informasi yang cepat dan akurat. Banyaknya layanan mesin pencari yang diberikan oleh internet menjadi salah satu jawaban yang meyakinkan bagi pengguna digital. Mesin pencari yang ada mencari informasi sesuai kebutuhan pengguna berdasarkan masukan keywords (kata kunci) oleh pengguna. Seringkali, dokumen yang dikembalikan oleh mesin pencari tidak sesuai dengan kebutuhan pengguna dikarenakan kata kunci yang kurang tepat. Tesaurus merupakan sebuah kamus kata atau referensi yang menyediakan informasi untuk mencari kesamaan (sinonim) kata.
Tesaurus merupakan tambahan yang berharga untuk memanfaatkan informasi dari kumpulan dokumen yang ada. Pada proses Temu Kembali Informasi, tesaurus merupakan sebuah layanan yang dapat dimanfaatkan untuk memperkaya query dengan menggunakan kata kunci dan padanan kata kunci yang ada pada tesaurus. Maka dari itu, dari keuntungan inilah dapat dibuat sebuah sistem temu kembali informasi yang diharapkan menemukan informasi yang lebih akurat untuk pengguna dengan memanfaatkan sinonim kata kunci pada tesaurus untuk memperkaya query pengguna. Tesaurus pada penelitian ini sendiri dapat dibentuk dengan 3 tahapan, yaitu:
pengumpulan 1200 artikel suap dan korupsi yang disimpan dalam database, perhitungan TF-IDF per kata (term), dan perhitungan cluster weight per pasangan kata (pair) untuk pembuatan daftar kata. Penelitian tentang pemanfaatan tesaurus pernah dilakukan oleh Percy Nohama et.al [1] yakni tesaurus biomedical yang pendekatannya dilakukan untuk deteksi error untuk corpus dan deteksi anomali pada tesaurus. Pada tahun 2000 juga dilakukan penelitian untuk meningkatkan temu kembali teks pada Bahasa mandarin [2]. Akan tetapi, penelitian pemanfaatan tesaurus untuk pencarian dokumen yang lebih relevan dalam Bahasa Indonesia belum pernah dilakukan. Dibutuhkan sebuah sistem temu kembali dokumen berbahasa Indonesia yang memanfaatkan query expansion untuk mendapatkan dokumen yang relevan sesuai dengan kebutuhan pengguna. Tesaurus yang dibangun pada penelitian ini akan digunakan sebagai kamus sinonim untuk memperkaya query dari pengguna dalam pencarian dokumen atau informasi terkait. 2. Metodologi Dalam Sistem Temu Kembali Informasi pengguna harus menerjemahkan kebutuhan informasinya ke dalam bentuk kata kunci (keyword), lalu keyword akan diterjemahkan kembali menjadi suatu query. Dengan query ini, maka sistem akan melakukan pencarian ke dalam kumpulan dokumen sesuai dengan query yang ada. Pada penelitian ini, akan dibangun sebuah tesaurus berbahasa Indonesia yang nantinya informasi sinonim yang ada akan digunakan untuk memperkaya query sehingga diharapkan bisa membantu sistem temu kembali dalam memberikan dokumen yang lebih relevan. Tesaurus berbahasa Indonesia ini, selain dapat digunakan untuk memperkaya query
dalam membantu search engine juga bisa digunakan sebagai kamus sinonim sebuah kata.
Gambar 1. Interaksi antara Pengguna dengan sistem IR A.
Pengumpulan Data
Data yang digunakan sebagai corpus diambil dari dokumen-dokumen berita dari 9 portal berita online pada tahun 2016. 9 portal berita online tersebut yaitu: 1. http://www.cnnindonesia.com/ 2. http://www.kompas.com/ 3. https://www.tempo.co/ 4. http://www.detik.com/ 5. http://www.viva.co.id/ 6. http://www.jawapos.com/ 7. http://www.republika.co.id/ 8. http://nasional.sindonews.com/ 9. http://www.liputan6.com/ Jumlah data sampel yang dikumpulkan sebanyak 1200 dan semua data yang dikumpulkan bertemakan suap dan korupsi di Indonesia.. Dokumen berita diambil setelah melakukan pembacaan pada portal online. Kemudian dirubah menjadi file xml secara manual dengan memasukkan tag xml. Tag yang dimasukkan dalam xml antara lain : , <judul>, , , , dan . Data bersih berupa file xml selanjutnya disimpan dalam basis data untuk mempermudah proses selanjutnya.
dengan bantuan BeautifulSoup.
library
urlllib2
dan
Urllib dalam python digunakan untuk membuka koneksi antara program yang dibuat dengan halaman web yang ingin diambil kontennya. Sedangkan BeautifulSoup digunakan untuk mengambil isi dari halaman web yang dibuka berdasarkan tag-tag HTML yang ada pada halaman tersebut. Gambaran besar cara kerja web scraper yang dibuat dapat dilihat pada Gambar 3.
Gambar 3. Gambaran Umum Cara Kerja Web Scraper yang dibuat Gambar 2. Sumber online untuk pembentukan corpus data Pada tahap ini dapat dilakukan dengan dua cara antara lain: a. Membaca secara manual dokumen berita kemudian memasukkan id, judul, tanggal, kata kunci, isi, dan link secara manual dalam file xml yang dibuat secara manual b. Membuat kode web scraper untuk dokumen berita online sehingga ketika program dijalankan maka akan membuat file xml berita secara otomatis yang berisi id, judul, tanggal, kata kunci, isi, dan link.
Detail cara kerja web scraper yang dibuat dapat dilihat pada Gambar 4. Salah satu contoh kode yang digunakan untuk mengambil isi berita pada halaman web http://www.jawapos.com/ dalam bahasa Python.
Untuk kode scraper pada setiap portal online berbeda karena struktur penulisan berita setiap portal berbeda-beda. Web Scraping sendiri merupakan teknik yang digunakan untuk mengambil sebuah isi halaman web secara spesifik, misalnya link gambar, isi berita atau sejenisnya. Pada penelitian kali ini, web scraper yang dibuat menggunakan bahasa pemrograman Python
Gambar 4. Detail Cara Kerja Web Scraper yang dibuat
2.
Tokenizing
Pada prinsipnya proses ini adalah pemotongan sebuah dokumen menjadi bagian-bagian yang disebut dengan token. Pada umumnnya setiap kata terindentifikasi atau terpisahkan dengan kata yang lain oleh karakter spasi, sehingga proses tokenizing mengandalkan karakter spasi pada dokumen untuk melakukan pemisahan kata
Gambar 5. Contoh Kode yang Digunakan untuk Mendapatkan Isi dari Halaman Jawapos B.
Pre-processing
Pre-processing merupakan tahapan awal sebelum data diolah. Dalam hal ini tahapan pre-processing yang dilakukan adalah case folding, tokenizing, stopword removal, stemming, prunning, dan pembentukan pair. 1.
Case Folding
Proses penyamaan case dalam sebuah dokumen merupakan tahap paling awal dan penting sebelum dilakukan pemisahan kata. Tidak semua dokumen teks konsisten dengan penggunaan huruf kapital. Maka dari itu, case folding dibutuhkan untuk mengkonversi keseluruhan teks dalam dokumen menjadi bentuk standar (huruf kecil atau lowercase)
Gambar 6. Case folding pada sebuah kalimat
Gambar 3. Hasil tokenize pada sebuah kalimat 3.
Stopword Removal
Stopwords merupakan kata umum dan dianggap tidak memiliki makna. Pada proses ini dilakukan pengambilan kata-kata yang dianggap penting, sedangkan kata-kata yang dianggap kurang penting akan dihilangkan. Tabel 1. Contoh kata stopword dalam Bahasa Indonesia Stopword Bahasa Indonesia ada
adalah
adanya
adapun
yang
apa
akan
akankah
akhiri
akhirnya
4. Stemming Stemming merupakan proses pengembalian suatu kata berimbuhan ke dalam bentuk
dasarnya (root). Stemming merupakan salah satu alat pemrosesan teks dasar yang sering digunakan untuk meningkatkan kinerja pada text retrieval dan text classification. Pada penelitian ini, digunakan library Sastrawi untuk melakukan stemming pada kata berbahasa Indonesia.
6.
Pembentukan Pair
Proses ini membentuk kombinasi kata-kata dari hasil prunning dokumen pada proses sebelumnya. Kombinasi kata-kata ini nantinya akan digunakan untuk membentuk informasi co-occurrence.
Tabel 2. Contoh perubahan kata sebelum dan sesudah dilakukan stemming
5.
Sebelum Stemming
Setelah Stemming
Pengumpulan
Kumpul
Berurusan
Urus
Pencegahan
Cegah
Terpidana
Pidana
Pembuat
buat
Pruning
Pruning merupakan pemotongan kata-kata yang dianggap tidak perlu atau tidak digunakan dari hasil stemming. Pada penelitian ini, kata-kata yang diperlukan adalah kata benda dan kata kerja. Untuk memudahkan proses prunning ini, maka digunakan library kateglo yang berisi kamus, tesaurus, dan glosarium bahasa Indonesia. Sehingga, kata kerja dan kata benda pada dokumen yang terdaftar pada kateglo saja yang akan tersisa dari proses ini.
Gambar 8. Pembentukan pair kata dari hasil prunning C.
Pembobotan Term
Pada tahap ini setiap kata (term) hasil prunning dari seluruh dokumen yang akan digunakan untuk perhitungan cluster weight dihitung bobotnya. Perhitungan bobot yang digunakan adalah term frequency dan inverse document frequency dan tf-idf. 1.
Term frequency (TF)
Term frequency merupakan salah satu metode untuk menghitung bobot tiap kata dalam teks. Prinsip pada metode ini adalah bahwa setiap kata memiliki nilai kepentingan sebanding dengan jumlah kemunculan kata tersebut dalam teks. Bobot sebuah kata t pada sebuah teks dapat dirumuskan dalam persamaan: π(π, π‘) = ππΉ(π, π‘)
(1)
TF(d,t) merupakan term frequency dari kata t di teks d.
Gambar 7. Prunning dari sebuah kalimat
2.
Inverse Document Frequency (IDF)
Inverse Document Frequency fokus pada kemunculan kata pada keseluruhan koleksi teks. Keunikan dari metode ini adalah kata yang jarang muncul pada keseluruhan koleksi kata dinilai lebih berharga. IDF sebuah kata (term) t dirumuskan dalam persamaan: π
πΌπ·πΉ(π‘) = logβ‘(ππ(π‘))
(2)
N adalah total jumlah dokumen pada koleksi dan df(t) merupakan jumlah dokumen yang mengandung nilai kata (term) t. 3.
TF x IDF Calculation
Berdasar penelitian G. Salton (1989), kombinasi antara TF dan IDF untuk menghitung bobot term menghasilkan performa yang lebih baik. Kombinasi bobot dari sebuah kata t pada teks d didefinisikan dalam persamaan: ππΉπΌπ·πΉ(π, π‘) = ππΉ(π, π‘) β πΌπ·πΉ(π‘)
(3)
Semua hasil perhitungan bobot dari kata disimpan ke dalam basis data untuk keperluan pada proses selanjutnya.
Gambar 9. Contoh hasil pembobotan term pada corpus D. Pembobotan Pasangan Kata Tahap selanjutnya hasil pembentukan pair pada proses sebelumnya akan dihitung nilai bobot tiap pasangan kata yang nantinya akan digunakan untuk perhitungan cluster weight. Perhitungan bobot yang digunakan adalah informasi co-occurrence, inverse document frequency, tf-idf, dan cluster weight. Perlu
diingat yang dihitung pada tahap ini adalah pasangan kata bukan term seperti pada proses sebelumnya. 1. Informasi co-occurrence Informasi co-occurrence atau metode cooccurrence Informasi Statistik merupakan metode distribusi kejadian, dimana cara kerja metode ini adalah dengan menghitung frekuensi co-occurrence antara satu kata dengan kata lainnya dalam satu dokumen. Tabel 3. Contoh pembentukan informasi cooccurrence dari pasangan kata (aset,pns) CoD1 occurrence 2 (aset,pns) D10 3
TF
DF
IDF
5
2
3.81
Pada tabel 3 pasangan kata (aset,pns) muncul 2 kali pada dokumen 1 dan 3 kali pada dokumen 2. Karena TF melihat frekuensi pasangan kata pada setiap dokumen, maka nilai TF adalah 5. Sedangkan DF melihat frekuensi pasangan kata secara global pada kumpulan dokumen sehingga nilai DF adalah 2. Setelah mendapatkan nilai DF, maka dapat dihitung nilai IDF.
Gambar 10. Contoh hasil perhitungan bobot untuk pasangan kata 2.
Cluster Weight
Cluster Weight digunakan untuk mengukur kedekatan antar kata dalam pasangan kata yang dibentuk. Setiap pair (Tj, Tk) akan dihitung cluster weightnya dengan hasil bagi antara penjumlahan TF-IDF dari pair Tj, Tk
(dijk) pada dokumen ke-i sampai dokumen ken (jumlah dokumen dalam corpus) dan penjumlahan TF-IDF dari term ke-j (pertama) pada dokumen ke-i sampai dokumen ke-n (dij) dikalikan dengan weighting factor dari term k (kedua). Perhitungan cluster weight sesuai persamaan di bawah ini:
Untuk menghitung weighting factor dengan cara pembagian antara log jumlah dokumen dalam corpus (N) dibagi dokumen frequensi dari term k (dfk) dan log jumlah dokumen dalam corpus (N). ππππβπ‘ππππΉπππ‘ππ(ππ) = β‘
Gambar 12. Metodologi Pembentukan tesaurus
π dfk
log
log π
(5)
Hasil inilah yang akan menentukan sinonim sebuah kata dalam pembentukan tesaurus. Semakin tinggi nilai cluster weight maka semakin mirip kata tersebut.
Query Expansion
Setelah tesaurus berbahasa Indonesia selesai dibangun, maka informasi sinonim yang ada akan digunakan dalam memperkaya keyword dari pengguna untuk dalam penggunaan search engine. Tabel 4. Contoh sinonim dari sebuah keyword berdasar tesaurus yang dibangun Keyword
Token
Pajak Pajak Penghasilan Gambar 11. Contoh hasil sinonim sebuah kata berdasar cluster weight Secara umum, ada 4 tahapan besar dalam pembentukan tesaurus yaitu: pengumpulan corpus, pre-processing data, pembobotan term, pembobotan pair yang akhirnya informasi pair inilah yang dipakai menjadi tesaurus.
Hasil sinonim token inilah yang nantinya akan digunakan dalam membantu query mencari dokumen berdasar keyword yang di expansion. 3. Hasil dan Pembahasan Berikut adalah hasil uji coba dari keyword dan dokumen yang dikembalikan oleh sistem menggunakan query expansion.
keterlibatan Ahok dalam kasus suap reklamasi apakah TNI pernah terjerat dalam kasus suap
0.00%
0.00%
0.00%
0.00%
3.00%
6.00%
nama pejabat MA yang terlibat kasus suap
(a)
apa yang dimaksud rapat setengah kamar
Rata-rata
(b) Tabel 5 menunjukkan hasil document retrieval oleh sistem yang dibangun mengguna query yang di expansion dari tesaurus. Tabel 6. Rata-rata perhitungan precision, recall dari sistem yang dibangun Query m nazaruddin sebut aktor korupsi e-ktp lainnya kpk bekerja sama dengan FBI
Precision
Recall
0.00%
0.00%
0.00%
0.00%
10.00%
20.00%
keterlibatan agus marto dalam korupsi e-ktp
0.00%
0.00%
Irman Gusman menjadi tersangka korupsi
korupsi rektor IAIN Pontianak
0.00%
0.00%
keterlibatan korupsi dahlan iskan
10.00%
20.00%
kasus suap gubernur nur alam
10.00%
20.00%
damayanti suap dana aspirasi dpr
10.00%
20.00%
saipul jamil suap hakim vonis ringan
0.00%
0.00%
korupsi pembangunan jalan di maluku
0.00%
0.00%
politikus yang terjerat korupsi
0.00%
0.00%
kasus korupsi pengadaan alat kesehatan
0.00%
0.00%
10.00%
20.00%
Ahok terkait kasus reklamasi
Dapat dilihat dengan data pada corpus yang semua berisikan tentang suap dan korupsi, sistem hanya memberikan nilai rata-rata pada parameter precission dan recall sebesar 3% dan 6% dari 30 query yang diujikan. Pada setiap query sejatinya ada beberapa dokumen yang dikembalikan oleh sistem yang sesuai dengan keyword tapi tidak terdaftar di dalam ground-truth. Hal inilah yang menjadi salah satu penyebab jatuhnya nilai presisi dan recall. Tetapi jika kita evaluasi berdasar rendahnya nilai presisi dan recall maka dapat dikatakan bahwa sistem tidak dapat memberikan informasi yang tepat bagi penggunanya. Sejatinya sistem mempunyai performa yang tidak sejelek yang dikira, karena pada keyword βkasus suap gubernur nur alamβ dokumen yang dikembalikan kebanyakan bercerita mengenai korupsi gubernur nur alam yaitu sebanyak 7 dari 10 berita. Tetapi ketika keyword diganti pada βm nazaruddin
sebut aktor korupsi e-ktp lainnyaβ hanya 2 dari 10 dokumen kembalian yang relevan meskipun tidak terdaftar di dalam groundtruth. Ada beberapa penyebab mengapa sistem tidak dapat memberikan informasi yang tepat bagi penggunanya. Yang pertama, yaitu sistem query yang digunakan melakukan pembobotan kata per kata dari keyword yang dimasukkan. Contohnya pada keyword βKasus suap impor gulaβ pada menghasilkan dokumen yang dikembalikan bertema ekonomi (pada percobaan yang dilakukan dengan 12000 dokumen berita dengan tema ekonomi, politik dan olahraga), hal tersebut dikarenakan bobot dari kata βimporβ dan βgulaβ yang terlampau tinggi pada beberapa dokumen, namun belum tentu pada setiap dokumen tersebut mempunyai bobot βkasusβ dan βsuapβ yang tinggi pula. Hal tersebut menyebabkan dokumen yang dikembalikan tidak relevan dengan keyword yang dimasukkan. Untuk mengatasi hal tersebut, dalam diterapkan metode thresholding untuk mengembalikan dokumen yang memiliki bobot per kata (dalam keyword) yang berada di atas threshold yang ditetapkan. Penyebab yang kedua yaitu metode pembobotan pasangan kata yang kurang tepat. Pada Tabel 7 dapat dilihat hasil sinonim dari tesaurus yang dibentuk tidak relevan dengan padanan kata yang dimasukkan. Tabel 7. Hasil sinonim dari token keyword pertama pada tesaurus yang dibentuk Token Suap
Impor
Sinonim Isak Jara Pasaraya Pering Preservasi Anjing Cangkul Depot
Etil gagang Pasangan kata yang relevan biasanya memiliki nilai frekuensi co-occurrence yang tinggi, namun jika pasangan kata tersebut muncul hampir pada semua dokumen, tentunya pasangan kata tersebut juga memiliki nilai IDF yang rendah, sehingga menyebabkan nilai TF-IDF yang rendah pula. Metode pembobotan pasangan kata yang digunakan yaitu metode cluster weight berbanding lurus dengan nilai TF-IDF dari pasangan kata tersebut. Nilai TF-IDF yang rendah dari pasangan kata menyebabkan bobot dari pasangan kata tersebut juga rendah. Hal tersebut menyebabkan pasangan kata yang relevan tidak terpilih ketika pencarian sinonim pada tesaurus yang dibentuk. Penyebab yang ketiga, pengguna seringkali menuliskan keyword menggunakan istilah khusus atau nama-nama orang. Sedangkan ketika pembentukan thesaurus, nama orang dan istilah-istilah yang dihilangkan pada tahap pruning. Yang disimpan hanya kata kerja dan kata benda yang terdaftar sehingga ciri khas sebuah berita mengenai seseorang atau suatu istilah seakan hilang. Hal ini juga yang mengakibatkan sistem tidak mengembalikan dokumen yang relevan. Penyebab yang terakhir yaitu nilai TF-IDF yang tidak dinormalisasi menyebabkan dokumen yang memiliki jumlah kata lebih banyak dari dokumen lain mempunyai nilai TF-IDF yang lebih tinggi. Hal tersebut dapat mempengaruhi performa dari sistem query (berbasis TF-IDF) yang digunakan. 4. Kesimpulan dan Saran Dapat disimpulkan, bahwa tesaurus yang dibentuk tidak robust untuk semua masukan query. Dokumen yang dikembalikan belum dapat memenuhi semua kebutuhan pengguna untuk beberapa test case. Evaluasi yang
ditunjukkan oleh nilai presisi dan recall juga masih jauh dari yang diharapkan. Sehingga dapat dikatakan bahwa sistem yang dibentuk memiliki performa yang tidak bagus. Diharapkan untuk kedepannya log query dari pengguna dapat digunakan untuk membantu memperkaya query dalam pencarian dokumen.
5. Referensi [1] Nohama, P., Pacheco, E.J., Andrade, R.L de, Bitencourt, J.L., MarkΓ³, K., Schulz, S. 2012. Quality issues in thesaurus building: a case study from the medical Domain. Brazilian Journal of Biomedical Engineering Volume 28, NΓΊmero 1, p. 11-22, 2012 [2] Foo, S., Hui, S.C., Lim, H.K., Hui, L. 2000. Automatic Thesaurus for Enhanced Chinese Text Retreival. Library Review, Vol 49 Issue 5 pg. 230-240. ISSN 0024-2535. MCB University Press