ISSN : 2088-9984 Seminar Nasional dan ExpoTeknik Elektro 2011 Analisa dan Evaluasi Afiks Stemming untuk Bahasa Indonesia Jiwa Malem Marsya1) dan Taufik Fuadi Abidin2) 1) Data Mining and IR Research Group FMIPA Universitas Syiah Kuala Banda Aceh, Indonesia e-mail : [email protected] 2) Program Studi Informatika FMIPA Universitas Syiah Kuala Banda Aceh, Indonesia e-mail : [email protected] kecil. Penelitian tentang algoritma stemming untuk Bahasa Indonesia sebelumnya pernah dilakukan oleh Nazief dan Adriani dari Universitas Indonesia pada tahun 1996, hanya saja laporan secara teknisnya tidak dipublikasikan. Tahun 2001, Vega dari Universitas Nasional Singapura juga melakukan penelitian tentang hal ini, dan pada tahun 2002, penelitian sejenis juga dilakukan oleh Arifin dan Setiono dari Institut Teknologi Sepuluh November, Surabaya. Dalam penelitian ini, afiks stemming untuk Bahasa Indonesia dianalisa dan prototipe dari algoritma stemming tersebut dirancang dan diimplementasikan. ABSTRAK Stemming adalah proses pemotongan imbuhan dari suatu kata ke bentuk asal atau kata dasarnya. Proses ini sering digunakan pada pengerjaan pencarian informasi. Paper ini menjelaskan tentang analisa dan evaluasi dari algoritma pemotongan imbuhan (stemming) untuk Bahasa Indonesia. Hasil percobaan menunjukkan bahwa pemotongan sufiks (imbuhan berupa akhiran) terlebih dahulu memiliki hasil yang lebih baik daripada pemotongan afiks (imbuhan berupa awalan) terlebih dahulu, dan pemotongan sufiks “-an” diikuti dengan pemotongan sufiks “-kan” lebih baik dibandingkan pemotongan sufiks “-kan” terlebih dahulu. Hasil percobaan menunjukkan bahwa dari 21.303 testing set, 99,09% terstem dengan benar sementara 0,91% tidak. 2. Imbuhan Bahasa Indonesia Imbuhan adalah morfem terikat yang digunakan dalam bentuk dasar untuk membentuk suatu kata. Imbuhan terdiri dari awalan (prefiks), sisipan (infiks), akhiran (sufiks), dan awalan-akhiran (konfiks). Imbuhan juga memiliki sifat derivatif dan inflektif. Imbuhan yang bersifat derivatif akan mengubah makna dari kata dasar ang diberikan imbuhan, sedangkan inflektif tidak. Untuk lebih jelasnya dapat dilihat pada Tabel 1. Dari definisi tentang imbuhan yang bersifat inflektif dan derivatif maka secara umum struktur kata pada Bahasa Indonesia dapat dilihat sebagai berikut: Kata Kunci Algoritma pemotongan imbuhan, stemming, stemmer. 1. Pendahuluan Belum banyaknya mesin pencari yang efektif untuk menggali informasi dari halaman-halaman web berbahasa Indonesia dikarenakan fasilitas-fasilitas pendukung dari sebuah mesin pencari masih terbatas. Salah satu dari fasilitas pendukung tersebut adalah stemmer. Stemmer dibutuhkan karena banyak kata dalam Bahasa Indonesia memiliki kata dasar yang sama namun imbuhannya berbeda. Stemmer merupakan algoritma yang menjalankan proses stemming. Stemming adalah proses mengembalikan kata ke dalam bentuk dasarnya dengan cara memotong imbuhan pada kata tersebut, baik itu berupa awalan, akhiran, maupun sisipan. Proses pemotongan tersebut harus disesuaikan dengan aturan-aturan yang berlaku dalam bahasa yang digunakan. Dewasa ini, algoritma stemmer terus dikembangkan agar kesalahan semakin [awalan derivatif] + [awalan derivatif] + kata dasar + [akhiran derivatif] + [pengganti kepemilikan] + [partikel] dimana imbuhan yang terdapat di dalam […] merupakan kejadian yang mungkin muncul [3]. 46 Seminar Nasional dan ExpoTeknik Elektro 2011 B9 Tabel 1. Imbuhan pada Bahasa Indonesia Imbuhan Kata dasar Berawalan huruf ‘m’, ‘n’, ‘l’, ‘r’, ‘ng’, ‘ny’, ‘w’, ‘y’ Berawalan huruf ‘p’, ‘b’, ‘f’ me- berawalan huruf ‘t’, ‘d’, ‘j’, ‘c’ berawalan huruf ‘s’ bersuku satu berawalan huruf ‘a’, ‘i’, ‘u’, ‘e’, ‘o’, ‘g’, ‘h’, dan ‘k’ Bunyi Hilang Alomorf memmen- ‘k’, ‘p’, ‘t’, dan ‘s’ pe- sama dengan imbuhan me- ber- ter- berawalan huruf ‘r’ kata ‘ajar’ berawalan huruf ‘r’ atau bersuku awal ‘er’ kata ‘ajar’ berawalan huruf ‘r’ atau (terkadang) bersuku awal ’er’ menganga menyanyi paksa protes fitnah memaksa memprotes memfitnah menulis mencapai tulis capai sapu menyapu menge- bom mengebom meng- ambil olah kunci mengambil mengolah mengunci rusak nyanyi paksa protes fitnah tulis capai sapu bom ambil olah kunci perusak penyanyi pemaksa pemprotes pemfitnah penulis pencapai penyapu pengebom pengambil pengolah pengunci pe- redam peredam pel- ajar pelajar be- kerja runding bekerja berunding bel- ajar belajar te- rasa pergok terasa terpergok kadang sudut makan tua sama terkadang tersudut dimakan ketua sesame penpeny penge- sama dengan imbuhan me- pengper- nganga nyanyi meny- pemAwalan Contoh Kata Dasar Diimbuhkan yang lainnya di-, ke-, se- 47 Sifat Derivatif B9 Seminar Nasional dan ExpoTeknik Elektro 2011 Tabel 1. Imbuhan pada Bahasa Indonesia (lanjutan) Imbuhan Kata dasar Alomorf Bunyi Hilang -i, -an, -kan Akhiran -kah, -lah, -tah, -pun -ku, -mu, -nya 3. Percobaan Kata Dasar main teman buat Contoh Diimbuhkan mainan temani buatkan bukan kapan bukankah kapanpun milik milikku Sifat Derivatif Inflektif kata dengan huruf awalan ‘J’ dan ‘P’ tidak ditemukan dalam Kamus Besar Bahasa Indonesia. 3.1 Data 3.3 Algoritma Stemming Data yang digunakan dalam penelitian ini adalah katakata yang berasal dari halaman-halaman web Wikipedia Bahasa Indonesia versi Juni 2008 yang diunduh dari situs download.wikimedia.org pada tanggal 20 Juli 2008. Dari data tersebut diperoleh 852.278 kata yang unik yang kemudian dibersihkan secara manual dari kata-kata seperti nama orang, bahasa asing dan istilah. Dari proses pembersihan tersebut didapatkan 26.303 kata Bahasa Indonesia yang dapat digunakan. Dari Jumlah tersebut, 5.000 kata dijadikan sebagai training set dan sisanya sebagai testing set untuk ujicoba proses stemming. Algoritma stemming yang dipakai dalam penelitian ini menggunakan dua proses yang berbeda yaitu proses stemming yang melakukan pemotongan awalan terlebih dahulu dilanjutkan dengan pemotongan akhiran (Proses 1) dan proses stemming yang melakukan pemotongan akhiran terlebih dahulu dilanjutkan dengan pemotongan awalan (Proses 2). Secara garis besar alir proses stemming diperlihatkan pada Gambar 1. Untuk lebih jelasnya, perbedaan kombinasi pemotongan imbuhan antara proses 1 dan proses 2 dapat dilihat pada Tabel 2 dengan awalan derivatif sebagai AW, akhiran derivatif sebagai AK, pengganti kepemilikan sebagai PK dan partikel sebagai P. Proses pemotongan akhiran dilakukan dengan dua model pemotongan, yakni model pemotongan A yang melakukan pemotongan imbuhan akhiran “–an” terlebih dahulu dilanjutkan dengan pemotongan imbuhan akhiran “–kan” dan model pemotongan B yang melakukan pemotongan imbuhan akhiran “–kan” terlebih dahulu dilanjutkan dengan pemotongan imbuhan akhiran “–an”. Setiap pemotongan imbuhan dilakukan, kata baru yang diperoleh diperiksa apakah terdapat dalam kamus kata dasar atau tidak. Jika kata dasar tersebut ditemukan maka hasil stemming ditampilkan dan proses stemming berakhir, namun jika tidak ditemukan maka kata akan dikembalikan pada bentuk semula sebelum proses stemming selanjutnya dilakukan. 3.2 Kamus Dari proses stemming yang pernah dilakukan sebelumnya oleh Nazief dan Adriani, juga Arifin dan Setiono, dapat disimpulkan bahwa dibutuhkan sebuah kamus kata dasar untuk mendapatkan hasil stemming yang baik. Kamus kata dasar tersebut dibutuhkan untuk memeriksa apakah kata dasar yang melalui proses stemming benar dan ditemukan pada kamus saat proses stemming dilakukan. Pada penelitian ini, kamus kata dasar dibangkitkan dari kata-kata yang diambil dari daftar kata dasar pada kamus Stardict, yang dapat diunduh dari situs stardict.sourceforge.net, dan Kamus Besar Bahasa Indonesia (KBBI). Total kata dasar dalam kamus adalah sebanyak 21.291 kata (18.747 kata dari Kamus Besar Bahasa Indonesia dan 8.869 kata dari Stardict). Beberapa kata dasar yang sama juga ditemukan pada Kamus Besar Bahasa Indonesia dan kamus Stardict. Kamus gabungan yang dibangkitkan tersebut memiliki kekurangan karena 48 Seminar Nasional dan ExpoTeknik Elektro 2011 B9 Mulai Pengambilan Kata Proses (1) Pemotongan Akhiran Pemotongan Awalan Pemotongan Awalan Pemotongan Akhiran Proses (2) Pengembalian Kata Selesai Gambar 1. Diagram alir algoritma proses stemming yang dibuat Tabel 2. Perbedaan pemotongan imbuhan antara Proses 1 dan Proses 2 Urut Proses 1 Proses 2 1 AW+AW+AW+kata dasar+AK+PK+P AW+AW+AW+kata dasar+AK+PK+P 2 AW+AW+kata dasar+AK+PK+P AW+AW+AW+kata dasar+AK+PK 3 AW+kata dasar+AK+PK+P AW+AW+AW+kata dasar+AK 4 kata dasar+AK+PK+P AW+AW+AW+kata dasar 5 AW+AW+AW+kata dasar+AK+PK AW+AW+kata dasar+AK+PK+P 6 AW+AW+kata dasar+AK+PK AW+AW+kata dasar+AK+PK 7 AW+kata dasar+AK+PK AW+AW+kata dasar+AK 8 kata dasar+AK+PK AW+AW+kata dasar 9 AW+AW+AW+kata dasar+AK AW+kata dasar+AK+PK+P 10 AW+AW+kata dasar+AK AW+kata dasar+AK+PK 11 AW+kata dasar+AK AW+kata dasar+AK 12 kata dasar+AK AW+kata dasar 13 AW+AW+AW+kata dasar kata dasar+AK+PK+P 14 AW+AW+kata dasar kata dasar+AK+PK 15 AW+kata dasar kata dasar+AK 16 kata dasar kata dasar 49 B9 Seminar Nasional dan ExpoTeknik Elektro 2011 3.4 Akurasi Algoritma berimbuhan yang melalui Proses 1, diperoleh 3.431 kata yang hasil stemmingnya benar dan 100 kata yang hasil stemmingnya salah, sedangkan pada Proses 2 dengan 3.531 kata berimbuhan, diperoleh 3.450 kata yang hasil stemmingnya benar dan 81 kata Tabel 3 dan Tabel 4 memperlihatkan hasil training dan testing set. Untuk menguji keakuratan algoritma stemming yang dibuat, beberapa sampel kata diambil. Sampel yang telah melalui proses stemming akan diperiksa secara manual untuk mengetahui jumlah kata hasil stemming yang salah. Sampel yang digunakan terbagi 2 kelompok yaitu training set dan testing set. Training set merupakan sampel dalam jumlah kecil yang digunakan untuk menguji algoritma yang dibuat. Tingkat keakuratan algoritma dihitung menggunakan aturan berikut: Akurasi = (RW / W ) * 100% Tabel 3. Jumlah kata hasil percobaan stemming terhadap training set dengan pemotongan akhiran model A dan B. Model A (kata) Deskripsi ……. (1) Terstem Kata dasar Kata berimbuhan o Hasil benar o Hasil salah dimana W adalah jumlah kata yang terstem dan RW adalah jumlah kata yang distemming dengan benar. Akurasi dinyatakan dalam persen (%). Perbaikan pada algoritma akan dilakukan jika akurasi algoritma belum memenuhi syarat batas (threshold) yang telah ditentukan. Jika akurasi sudah memenuhi syarat batas maka algoritma tersebut diuji menggunakan testing set yaitu sampel kata dengan jumlah yang lebih besar yang tidak termasuk dalam training set. Pengambilan sampel training set dilakukan secara acak. Hal ini dilakukan untuk menghindari terjadinya pengambilan sampel yang hanya sesuai dengan algoritma yang diajukan. Tidak terstem Model B (kata) Proses 1 Proses 2 Proses 1 Proses 2 846 846 846 846 3.430 101 3.448 83 3.431 100 3.450 81 623 623 623 623 Tabel 4. Jumlah kata hasil percobaan stemming terhadap testing set dengan pemotongan akhiran model A dan B. Deskripsi 4. Hasil Percobaan Terstem Kata dasar Kata berimbuhan o Hasil benar o Hasil salah Pada percobaan proses stemming menggunakan training set, pemotongan akhiran ”–an” dilakukan terlebih dahulu, kemudian dilanjutkan dengan pemotongan akhiran ”–kan” dilakukan bila kata tidak ditemukan (model A). Diperoleh 623 kata yang tidak terstem dan 4.377 kata yang terstem. Dari 4.377 kata yang terstem, jumlah kata berimbuhan yang melalui Proses 1 (pemotongan dilakukan terhadap awalan terlebih dahulu dilanjutkan dengan pemotongan akhiran) dan Proses 2 (pemotongan dilakukan terhadap akhiran terlebih dahulu dilanjutkan dengan pemotongan awalan) adalah sebanyak 3.531 kata dan untuk kata dasar berjumlah 846 kata. Dari 3.531 kata berimbuhan yang melalui Proses 1, didapatkan 3.430 kata yang hasil stemmingnya benar dan 101 kata yang hasil stemmingnya salah, sedangkan pada Proses 2 dengan 3.531 kata berimbuhan, didapatkan 3.448 kata dengan hasil stemming benar dan 83 kata dengan hasil salah. Pada percobaan dengan proses pemotongan pada akhiran ”-kan” terlebih dahulu, kemudian dilanjutkan dengan pemotongan akhiran ”-an” (model B), diperoleh 623 kata yang tidak terstem dan 4.377 kata yang terstem. Dari 4.377 kata yang terstem, jumlah kata berimbuhan yang melalui Proses 1 dan Proses 2 adalah 3.531 kata dan untuk kata dasar berjumlah 846 kata. Dari 3.531 kata Tidak terstem Model A (kata) Model B (kata) Proses 1 Proses 2 Proses 1 Proses 2 3.541 3.541 3.541 3.541 14.844 233 14.908 169 14.827 250 14.895 182 2.685 2.685 2.685 2.685 Dengan aturan untuk menghitung akurasi algoritma pada rumus (1), maka didapatkan hasil sebagaimana dipaparkan pada Tabel 5. Tabel 5. Akurasi dari setiap proses pemotongan terhadap training set dan testing set untuk masing-masing model pemotongan akhiran. Deskripsi Akurasi (%) Deskripsi Akurasi (%) 50 Training set (5.000 kata) Model A Model B Proses Proses 2 Proses 1 Proses 2 1 97,69 98,10 97,71 98,15 Testing set (21.303 kata) Model A Model B Proses Proses 2 Proses 1 Proses 2 1 98,74 99,09 98,66 99,02 Seminar Nasional dan ExpoTeknik Elektro 2011 B9 5. Kesimpulan [2] Proses stemming yang dilakukan pada penelitian ini tidak memperdulikan makna sebuah kata berimbuhan di dalam suatu kalimat. Keberhasilan proses stemming yang dilakukan sangat bergantung pada kamus kata dasar yang digunakan. Algoritma yang digunakan berupa kombinasi pemotongan imbuhan awalan dan akhiran dengan mengikuti aturan pemberian imbuhan tersebut, sebagaimana yang telah terlihat pada Tabel 2. Keakuratan antara pemotongan dengan model pemotongan A (jika kata berimbuhan akhiran “–kan” maka dilakukan pemotongan terhadap “–an” terlebih dahulu, jika kata dasarnya tidak ditemukan maka dilakukan pemotongan terhadap akhiran “–k” yang tersisa) dan model pemotongan B (jika kata berimbuhan akhiran “– kan” maka dilakukan pemotongan terhadap “–kan” terlebih dahulu, jika kata dasarnya tidak ditemukan maka dilakukan pengembalian terhadap huruf “k” pada akhiran “-kan”) tidak memiliki perbedaan yang besar. Perbedaan keakuratan antara pemotongan imbuhan Proses 1 (pemotongan dilakukan terhadap awalan terlebih dahulu, lalu dilanjutkan dengan pemotongan akhiran) dan Proses 2 (pemotongan dilakukan terhadap akhiran terlebih dahulu, lalu dilanjutkan dengan pemotongan awalan) untuk masing-masing model pemotongan tidak memiliki perbedaan yang signifikan. Dari penelitian ini dapat dilihat bahwa proses pemotongan yang berbeda memungkinkan terjadinya hasil stemming yang berbeda pula. Perbedaan tersebut disebabkan kata dasar ditemukan pada kamus kata dasar saat proses pemotongan dilakukan terhadap kata berimbuhan. Contohnya pada kata ”diberikannyalah” yang jika melalui Proses 1 menghasilkan kata ”ikan” dan Proses 2 menghasilkan kata ”beri”. Percobaan yang dilakukan pada penelitian ini menunjukkan bahwa pemotongan sufiks terlebih dahulu (Proses 1) memiliki hasil yang lebih baik daripada pemotongan afiks terlebih dahulu (Proses 2), dan pemotongan sufiks “-an” diikuti dengan pemotongan sufiks “-kan” (model A) lebih baik dibandingkan pemotongan sufiks “-kan” terlebih dahulu (model B). Proses stemming pada Bahasa Indonesia yang dilakukan pada penelitian ini masih memerlukan perbaikan terutama pada bagian pemotongan awalan yang perubahan bunyi dan untuk kata gabungan yang tidak memiliki kata dasar pada kamus. Algoritma stemming yang dibuat juga belum bisa memotong imbuhan berupa sisipan. [3] REFERENSI [1] Asian, J., Williams, H. E., Tahaghoghi, S.M.M.,2005, Stemming Indonesian, Australian Computer Society Inc., Australia. 51 Chaer, A., 1998, Tata Bahasa Praktis BahasaIndonesia, Rineka Cipta, Jakarta. Tala, F. Z., 2003, A Study of Stemming Effects on Information Retrieval in Bahasa Indonesia, Universiteit van Amsterdam, the Netherland.