ALGORITMA STEMMING Ada banyak algoritma yang digunakan untuk melakukan proses stemming, khususnya stemming bahasa indonesia. Nama Algoritma Kelebihan Kekurangan 1. Algoritma Nazief dan Andriani 1. Memperhatikan kemungkinan adanya partikel- 1. Penyamarataan makna variasi kata Bahasa Pemrograman PHP partikel yang mungkin mengikuti suatu kata 2. Jumlah database kata dan kata dasarnya harus berimbuhan. besar. Kesalahan terjadi bila kata tidak ditemukan di 2. Proses stemming dokumen teks berBahasa database dan kemudian dianggap kata dasar, padahal Indonesia menggunakan Algoritma Nazief dan bukan Adriani memiliki prosentase keakuratan (presisi) 3. Lamanya waktu yang diperlukan dalam proses lebih besar dibandingkan dengan stemming pencarian kata di dalam kamus. menggunakan Algoritma Porter. Implementasi Algoritma ini mengacu pada aturan morfologi bahasa Indonesia yang mengelompokkan imbuhan, yaitu imbuhan yang diperbolehkan atau imbuhan yang tidak diperbolehkan. Pengelompokan ini termasuk imbuhan di depan (awalan), imbuhan kata di belakang (akhiran), imbuhan kata di tengah (sisipan) dan kombinasi imbuhan pada awal dan akhir kata (konfiks). Algoritma ini menggunakan kamus kata keterangan yang digunakan untuk mengetahui bahwa proses stemming telah mendapatkan kata dasar. Tahapan 1. Cari kata yang akan distem 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 ke 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 Recoding. 6. Jika semua langkah telah selesai tetapi tidak juga berhasil maka kata awal diasumsikan sebagai root word. Proses selesai. 2. algoritma Arifin dan Setiono jika kata dasar dari sebuah kata turunan tidak dapat ditemukan setelah menghilangkan prefix dan suffix nya maka algoritma mengembalikan semua ini akan imbuhan mencoba yang telah dihilangkan tadi untuk dikombinasikan dengan kata hasil stemming dari kata turunan yang kata dasarnya tidak ditemukan pada kamus. Implementasi Arifin and Setiono mengajukan skema algoritma yang sedikit lebih sederhana dibandingkan algoritma Nazief and Adriani tetapi yang menjadi kesamaan diantara kedua algoritma tersebut adalah kedua algoritma tersebut menggunakan kamus dan sama-sama menyediakan fungsi recoding. Langkah-langkah penghilangan imbuhan-imbuhan yang diterapkan pada algoritma ini adalah dengan menghilangkan prefix/awalan terlebih dahulu baru kemudian menghilangkan suffix/akhiran pada kata turunan yang akan dilakukan stemming. Jika kata turunan yang sudah dilakukan proses stemming yaitu penghilangan prefix kemudian suffix telah berhasil dilakukan, namun tidak dapat ditemukan kata dasarnya pada kamus maka semua imbuhan yang telah dihilangkan tadi dikembalikan untuk kemudian dikombinasikan dengan kata hasil stemming tadi guna mengurangi terjadinya overstemming. 3. algoritma Idris dan Mustofa Nama Algoritma Kelebihan 4. algoritma Vega Pada algoritma ini, tidak ada fungsi untuk Kekurangan Bahasa Pemrograman memeriksa kata dasar dari suatu kata. Implementasi algoritma Vega tidak menggunakan kamus. Urutan penghilangan imbuhan yang melekat pada kata untuk algoritma Vega ini, sama seperti urutan penghilangan imbuhan yang diterapkan pada algoritma Arifin dan Setiono. Urutan penghilangan imbuhan yang melekat pada kata untuk algoritma Vega ini, sama seperti urutan penghilangan imbuhan yang diterapkan pada algoritma arifin&setiono. Kata yang akan di-stemming, pertama kali diperiksa apakah kata tersebut memiliki awalan, jika kata tersebut memiliki awalan maka langsung dilakukan penghilangan awalan tersebut. Selanjutnya kata tersebutdiperiksa apakah memiliki akhiran, jika iya maka akan dilakukan penghilangan akhiran. Selanjutnya kata tersebutdiperiksa apakah memiliki partikel, jika iya maka akan dilakukan penghilangan partikel. Selanjutnya kata tersebutdiperiksa apakah memiliki possive pronoun (kata ganti kepunyaan), jika iya maka akan dilakukan penghilangan. Pada algoritma ini, tidak ada fungsi untuk memeriksa kata dasar dari suatu kata. Yang dilakukan adalah melakukan pengecekan apabila kata tersebut memiliki imbuhan awalan, akhiran, partikel, possive pronoun, sisipan. Jika iya, langsung dilakukan penghilangan imbuhan tersebut. 5. algoritma Ahmad, Yussof dan Sembok Nama Algoritma Kelebihan Kekurangan 6. Algoritma Tala 1. performa stemming berbasis aturan relatif 1. Proses stemming bahasa Indonesia menggunakan PHP stabil dengan jumlah dokumen yang berkembang. algoritma berbasis aturan mempunyai tingkat kesalahan tinggi, sehingga dapat mempengaruhi akurasi hasil akhir. Implementasi Tahapan a) Menghilangkan partikel b) Menghilangkan kata sandang dan kepunyaan. c) Menghilangkan awalan 1 d) Jika suatu aturan terpenuhi jalankan sbb : o Hilangkan Akhiran o Jika suatu aturan terpenuhi, hilangkan awalan 2. Jika tidak proses stemming selesai e) Jika tidak ada aturan yang terpenuhi jalankan sbb : o Hilangkan awalan 2. o Hilangkan Akhiran o Proses stemming selesai. Bahasa Pemrograman Nama Algoritma Kelebihan Kekurangan 7. Algoritma Porter Bahasa Pemrograman PHP Implementasi Stemming khusus bahasa Inggris yang ditemukan oleh Martin Porter 1980. Mekanisme algoritma dalam mencari kata dasar suatu kata berimbuhan dengan membuang imbuhan-imbuhan (atau lebih tepatnya akhiran) pada kata–kata bahasa Inggris karena dalam bahasa Inggris tidak mengenal awalan. Karena bahasa Inggris datang dari kelas yang berbeda, beberapa modifikasi telah dilakukan untuk membuat Algoritma Porter sehingga dapat digunakan sesuai dengan bahasa Indonesia. Implementasi Porter Stemmer for Bahasa Indonesia berdasarkan English Porter Stemmer yang dikembangkan oleh W.B. Frakes pada tahun 1992. Karena bahasa Inggris datang dari kelas yang berbeda, beberapa modifikasi telah dilakukan untuk membuat Algoritma Porter dapat digunakan sesuai dengan bahasa Indonesia. Tahapan 1. Hapus Particle, 2. Hapus Possesive Pronoun. 3. Hapus awalan pertama. Jika tidak ada lanjutkan ke langkah 4a, jika ada cari maka lanjutkan ke langkah 4b. 4. a. Hapus awalan kedua, lanjutkan ke langkah 5a. b. Hapus akhiran, jika tidak ditemukan maka kata tersebut diasumsikan sebagai root word. Jika ditemukan maka lanjutkan ke langkah 5b. 5. a. Hapus akhiran. Kemudian kata akhir diasumsikan sebagai root word b. Hapus awalan kedua. Kemudian kata akhir diasumsikan sebagai root word. Nama Algoritma Kelebihan Kekurangan Bahasa Pemrograman 8. Algoritma Confix Stripping (CS) Implementasi Confix stripping (CS) stemmer adalah metode stemming pada Bahasa Indonesia yang diperkenalkan oleh Jelita Asian yang merupakan pengembangan dari metode stemming yang dibuat oleh Nazief dan Adriani (1996). Proses ini berfungsi untuk mengubah bentuk dari suatu kata menjadi bentuk kata dasarnya. Proses perubahan bentuk ini akan menghilangkan kandungan imbuhan seperti awalan dan akhiran pada kata yang bersangkutan, sehingga diharapkan diperoleh bentuk dasarnya. Dalam proses ini digunakan kamus kata dasar untuk menambah tingkat ketelitian, dimana setiap kata yang akan dicari bentuk dasarnya di cek terlebih dulu di kamus. 9. Algoritma Enhanded Confix Stripping (ECS) Implementasi Algoritma ini perupakan pengembangan dari algoritma Confix stripping (CS). Dalam algoritma Confix stripping (CS) terdapat kelemahan atau tidak dapat mengstemming kata-kata tertentu, pada algoritma ini Menambahkan suatu algoritma tambahan untuk mengatasi kesalahan pemenggalan akhiran yang seharusnya tidak dilakukan. 10. Algoritma Connected Component Implementasi Merupakan algoritma yang memecahkan Permasalahan overstemming dan understemming tidak dapat diselesaikan dengan melakukan stemming dengan hanya melihat kata per kata atau melakukan modifikasi tabel aturan pemenggalan. Penyebabnya adalah hasil dari proses stemming yang dapat berjumlah lebih dari satu kata. Jika menggunakan teknik stemming kata per kata, maka hasil akhir dari stemming bergantung dari algoritma stemming yang digunakan apakah menggunakan pemenggalan semaksimal mungkin atau sebaliknya. Connected component algorithm dilakukan dengan cara menghubungkan kata-kata yang memiliki nilai em lebih besar daripada nilai threshold untuk em yakni 0,01 sesuai dengan yang digunakan oleh Larkey, Ballesteros, dan Cornell dalam percobaannya. Tiap-tiap graph yang terbentuk selanjutnya akan membentuk sebuah kelas tersendiri. 11. Algoritma Lovins The stemmer is considered complex for its age and utilises a large list (297) of endings, each of which is associated with one of a number of qualitative contextual restrictions that prevent the removal of endings in certain circumstances. The stemmer utilises a number of rules that are designed to cope with the most common exceptions. All endings are associated with the default exception, that a stem must be at least two letters long, which is designed to prevent the production of ambiguous stems. Other rules assert one of the following conditions on the ending's removal, Increasing the minimum length of a stem following a ending's removal. Preventing the removal of endings when certain letters are present in the remaining stem. Combinations of the above restrictions. 12. Algoritma Paice/Husk 1.Select relevant section; Inspect the final letter of the term and, if present, consider the first rule of the relevant section of the rule table. 2.Check applicability of rule; If final letters of term do not match rule, or intact settings are violated or acceptability conditions are not satisfied go to stage 4. 3.Apply Rule; Remove or reform ending as required and then check termination symbol, and either terminate or return to stage 1. 4.Look for another rule; Move to the next rule in table, if the section letter has changed then terminate, else go to stage 2. Ini penampakan jurnal inggrisnya http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.59.4851 http://translate.google.com/translate?hl=id&sl=en&u=http://citeseerx.ist.psu.edu/viewdoc/summary%3Fdoi%3D10.1.1.59.4851&prev=/search%3Fq%3Dalgoritma%2Bstemming %26start%3D20%26sa%3DN%26biw%3D1447%26bih%3D758