STEMMING DAN STOPLIST
Stemming
Stemming adalah proses mengubah kata menjadi kata dasarnya dengan menghilangkan imbuhan-imbuhan pada kata dalam dokumen. Pada umumnya kata dalam dokumen memiliki variasi kombinasi imbuhan kata yang beragam. Variasi imbuhan dapat berupa prefix (awalan), suffix (akhiran), infix (sisipan), dan confix (kombinasi antara awalan dan akhiran). Dengan menggunakan stemming dapat mengurangi variasi kata yang sebenarnya memiliki kata dasar yang sama.
A. Algoritma untuk proses Stemming:
- Algoritma Porter
Berikut adalah algoritma Porter untuk proses Stemming:
- Hapus Particle
- Hapus Possesive Pronoum
- Hapus awalan pertama. Jika tidak ada lanjutan ke langkah 4a, jika ada maka lanjutkan ke langkah 4b.
- > Hapus awalan kedua, lanjutkan ke langkah 5a.
> Hapus akhiran. Jika tidak ditemukan maka kata tersebut diasumsikan sebagai root word. Jika ditemukan maka lanjut ke langkah 5b.
5. > Hapus akhiran. Kemudian kata akhir diasumsikan sebagai root word.
> hapus awalan kedua. Kemudian kata akhir diasumsikan sebagai root word.
Tabel 1. Aturan untuk Inflectional Particle
Akhiran | Replacement | Additional Condition |
-kah | Null | Null |
-lah | Null | Null |
-pun | Null | Null |
Tabel 2. Aturan untuk Inflectional Possesive Pronoum
Akhiran | Replacement | Additional Condition |
-ku | Null | Null |
-mu | Null | Null |
-nya | Null | Null |
Tabel 3. Aturan untuk First Order Derivational Prefix
Akhiran | Replacement | Additional Condition |
Meng- | Null | Null |
Meny- | S | V…* |
Men- | Null | Null |
Mem- | P | V… |
Mem- | Null | Null |
Me- | Null | Null |
Peng- | Null | Null |
Peny- | S | V… |
Pen- | Null | Null |
Pem- | P | V… |
Pem- | Null | Null |
di- | Null | Null |
Ter- | Null | Null |
Ke- | Null | Null |
Tabel 4. Aturan untuk Second Order Derivation Prefix
Akhiran | Replacement | Additional Condition |
Ber- | Null | Null |
Bel- | Null | Ajar |
Be- | Null | K*er |
Per- | Null | Null |
Pel- | Null | Ajar |
Pe- | Null | Null |
Tabel 5. Aturan untuk Derrivational Suffix
Akhiran | Replacement | Additional Condition |
-kan | Null | Prefix bukan anggota {ke,peng} |
-an | Null | Prefix bukan anggota {di, meng, ter} |
-i | Null | Prefix bukan anggota {ber, ke, peng} |
Algoritma Stemming Nazief dan Adriani
Algoritma Stemming Nazief dan Adriani (1996) dikembangkan berdasarkan aturan morfologi Bahasa Indonesia yang mengelompokkan imbuhan menjadi awalan (prefix), sisipan (infix), akhiran (suffix) dan gabungan awalan-akhiran (confixes). Algoritma ini menggunakan kamus kata dasar dan mendukung recoding, yakni penyusunan kembali kata-kata yang mengalami proses stemming berlebih.
Algoritma stemming Nazief dan Adriani menggunakan morfologi imbuhan sebagai berikut:
- Inflection suffixes merupakan kumpulan akhiran (suffixes) yang tidak merubah kata dasar. Misalnya kata ‘duduk’+’-lah’-> ’duduklah’. Inflection suffixes terbagi menjadi:
- Particles (P) termasuk ‘-lah’ dan ‘-kah’. Contoh: pergilah, pernahkah.
- Possesive pronouns (PP) termasuk ‘-ku’, ’-mu’ dan ‘nya’. Contoh: diriku, dirimu, dirinya.
- Derivation suffixes (DS) merupakan kumpulan akhiran (suffixes) yang langsung menempel pada kata dasar. Misalnya kata dasar ‘lapor’ ditambah derivation suffix ‘-kan’ menjadi ‘laporkan’. Setelah itu ditambah inflection suffix ‘-lah’ menjadi ‘laporkanlah’.
- Derivation prefixes (DP) merupakan himpunan awalan (prefixes) yang menempel langsung pada kata dasar maupun terhadap kata yang telah mempunyai sampai dua derivation prefixes. Misalnya derivation prefixes ‘mem-’ dan ‘per-’+‘-perindahkannya’->’memperindahkannya.
Dibawah ini adalah urutan pemakaian imbuhan sebagai inflections dan derivations:
[DP+[DP+[DP+]]] kata dasar [[+DS][+PP][+P]]
Kurung siku menandakan bahwa imbuhan bersifat optional. Pada penelitian ini, algoritma yang digunakan untuk stemming bahasa Indonesia adalah algoritma Adriani dan Nazief. Algoritma dimulai dengan pembacaan tiap kata dari file input sehingga input berupa sebuah kata. Algoritma ini menggunakan kamus berisi kata-kata dasar sebagai pedoman pengecekan jika proses stemming telah mencapai kata dasar. Selain itu, pengecekan juga dilakukan pada panjang kata. Jika panjang kata kurang dari dua karakter, maka proses stemming tidak dilanjutkan. Setiap kata yang akan di-stemming akan menjalankan langkah-langkah sebagai berikut:
- Derivation suffixes (‘-i’ atau ‘-an’) dihapus. Jika sukses, langkah 4 dijalankan. Jika langkah 4 tidak sukses.
- Inflection suffixes (‘-lah’, ’-ku’, ’-kah’, ’-mu’ atau ‘-nya’) dihapus. Awalnya penghapusan dilakukan pada akhiran particles (‘-lah’ atau ‘-kah’) kemudian disusul dengan penghapusan akhiran possessive pronoun (‘-ku’, ’-mu’ atau ‘-nya’).
- Kata yang belum di-stemming dicari di kamus kata dasar. Jika ditemukan, maka kata tersebut dianggap sebagai kata dasar. Algoritma mengembalikan kata tersebut dan berhenti.
- Jika ‘-an’ dihapus dan huruf terakhir dari kata tersebut ‘-k’, maka ‘-k’ juga dihapus dan langkah 4 kembali dijalankan. Jika gagal, maka langkah 3b dijalankan.
- Hapus akhiran (‘-i’, ‘-an’ atau ‘-kan’) kemudian simpan.
4. Derivation previx dihapus. Proses ini memiliki beberapa langkah yaitu:
- Jika dua karakter pertama tidak sama dengan ‘di-‘, ’ke-‘, ’se-‘, ’te-‘, ‘be-‘, ’me-‘ atau ‘pe-‘, maka algoritma mengembalikan kata tersebut dan berhenti.
- Jika awalan adalah ‘te-’, ’be-‘, ’me-‘ atau ‘pe-‘, maka diperlukan proses tambahan untuk mengekstrak karakter yang berawalan ‘te-‘ berdasarkan Tabel 7. Misalnya, kata ‘terlambat’, setelah menghapus ‘te-‘ menghasilkan ‘rlambat’. Ekstraksi pertama dilakukan menurut aturan ‘Set 1’ dan hal yang serupa terjadi pada lima baris pertama. Setelah itu, terdapat karakter ‘-l‘ (Set 2), hal yang serupa terjadi pada baris tiga sampai lima. Sehingga kata menjadi ‘ambat’ sesuai dengan ‘Set 3’ dan buang kemungkinan baris tiga dan empat. Hasilnya ditunjukan pada kolom terakhir bahwa akhiran dari kata ‘terlambat’ berjenis awalan ‘ter-‘.
- Jika awalan merupakan ‘di -‘, ’ke-‘ atau ‘se-‘, maka jenis awalan tetap ‘di -‘,’ke-‘ atau ‘se-‘
- Jenis awalan ditentukan dengan langkah berikut.
> Jika tiga awalan telah dihapus sebelumnya, maka algoritma mengembalikan kata tersebut dan berhenti.
>Jika awalan sekarang sama dengan awalan sebelumnya, maka algoritma mengembalikan kata tersebut dan berhenti.
>Jika akhiran dihapus pada langkah 3, maka cek kombinasi awalan akhiran berdasarkan Tabel 6. Jika ada yang cocok, maka algoritma mengembalikan kata tersebut dan berhenti.
- Jika jenis awalan ‘none’ atau tidak ada, maka algoritma mengembalikan kata tersebut dan berhenti. Jika awalan tidak ‘none’, maka jenis awalan ditemukan pada Tabel 8. Awalan yang ditemukan akan dihapus.
Jika kata dasar tidak ditemukan pada kamus, langkah 4 secara rekursif dijalankan untuk penghapusan lebih lanjut. Jika kata dasar ditemukan pada kamus, maka algoritma mengembalikan kata tersebut dan berhenti.
- Setelah semua langkah dijalankan dan gagal, algoritma mengembalikan kata awal.
Tabel 6. Kombinasi awalan dan akhiran yang tidak diperbolehkan
Tabel 7. Penentuan tipe awalan untuk kata dengan awalan ‘te-‘
Keterangan: Jika awalan ‘te-‘ tidak sesuai dengan salah satu dari aturan pada tabel, maka dikembalikan ke ‘none’. Aturan yang sama berlaku untuk ‘be-‘, ‘me-‘ dan ‘pe-‘.
Tabel 8. Penentuan awalan dari jenis awalan
STOPLIST
Berkas STOPWORD atau daftar stopword dalam Information retrieval system adalah suatu susunan kata atau istilah tertentu yang disusun sedemikian rupa sehingga pada saat proses information retrieval, semua kata-kata atau istilah yang terdaftar dalam berkas tersebut diabaikan atau dihilangkan oleh sistem pencari (search enginee). Kegunaan dari berkas atau daftar stopword ini adalah mempercepat proses pencarian informasi dengan cara mengabaikan atau melewatkan atau tidak mencari kata/istilah yang dianggap tidak berarti atau tidak mempunyai makna dalam pencarian informasi atau dokumen.
Pada umumnya kata-kata atau istilah yang didaftar dalam berkas stopword ini terdiri atas kata-kata depan (atau artikel misalnya di, ke, dari, diatas, dibawah, a, an, at, from, for, on, of, off, with), atau kata sambung/penghubung (misalnya karena, sebab, walaupun, tetapi, because, although, but)
Stopword dibagi menjadi 2 yaitu Stopword Statis dan Stopword Dinamis :
- Stopword Statis
Merupakan stopword yang sudah ditentukan dari awal sebelum dilakukan proses indek dan filtering pada suatu sistem temu kembali Informasi, Kelebihan dari stopword statis adalah proses filtering stopword menjadi lebih singkat karena tidak ada proses untuk menentukan daftar stopword terlebih dahulu.
- Stopword Dinamis
Adalah stopword yang dihasilkan dari suatu proses tertentu, proses tersebut biasanya melibatkan korpus yang akan digunakan. Kelebihan dari stopword dinamis adalah kemampuannya dalam beradaptasi dengan korpus atau domain yang spesifik, akurasi temu kembali akan lebih baik jika dibanding menggunakan stopword statik.
STOPLIST
Tahap filtering dapat menggunakan algoritma stoplist atau wordlist. Stoplist yaitu penyaringan (filtering) terhadap kata-kata yang tidak layak untuk dijadikan sebagai pembeda atau sebagai kata kunci dalam pencarian dokumen sehingga kata-kata tersebut dapat dihilangkan dari dokumen. Sedangkan wordlist adalah daftar kata-kata yang mungkin digunakan sebagai kata kunci dalam pencarian dokumen, dengan demikian maka jumlah kata yang termasuk dalam wordlist akan lebih banyak daripada stoplist. Proses stoplist menghapus kata-kata yang sangat sering ditampilkan dalam dokumen seperti: and, or, not dan sebagainya. Berikut merupakan contoh tahapan stoplist:
Hasil Token |
Hasil Proses Stoplist |
johannesburg
netherlands striker robin van persie ishaving a scan on his left
|
johannesburg netherlands striker robin van persie scan left arm
|
Gambar 1. Ilustrasi tahapan stoplist
Link File Presentasi : Temu balik informasi_Stemming & Stoplist
REFERENSI
- Giat Karyono dan Fandy Setyo Utomo. 2012. Temu Balik Informasi Pada Dokumen Teks Berbahasa Indonesia Dengan Metode Vector Space Retrieval Model. ISBN 979-26- 0255-0, Seminar Nasional Teknologi Informasi & Komunikasi Terapan 2012 (Semantik 2012). http://eprints.dinus.ac.id/107/1/INFRM_43_-027_TEMU_BALIK_INFORMASI_PADA_DOKUMEN_TEKS_BERBAHASA.pdf
- Page 1. 5. BAB 2. TINJAUAN PUSTAKA. 2.1 Analisis sentimen. elib.unikom http://elib.unikom.ac.id/download.php?id=255515
- Ericky Bobby Ferdinanda Ds, PENERAPAN ALGORITMA LEVENSHTEIN DISTANCE PADA DESKTOP SEARCH BERBASIS INFORMATION RETRIEVAL IMPLEMENTATION OF LEVENSHTEIN DISTANCE ALGORITHM ON DESKTOP SEARCH WHICH BASED ON INFORMATION RETRIEVAL (Tugas Akhir –2010) https://openlibrary.telkomuniversity.ac.id/pustaka/files/95171/resume/penerapan-algoritma-levenshtein-distance-pada-desktop-search-berbasis-information-retrieval-implementation-of-levenshtein-distance-algorithm-on-desktop-search-which-based-on-information-retrieval.pdf
- Mardi Siswo Utomo, Stopword Dinamis dengan Pendekatan Statistik http://journal.upgris.ac.id/index.php/JIU/article/view/872/1041