Pengertian Stemming dan StopList
Stemming
Stemming merupakan suatu proses yang terdapat dalam sistem IR yang mentransformasi kata-kata yang terdapat dalam suatu dokumen ke kata-kata akarnya (root word) dengan menggunakan aturan-aturan tertentu. Sebagai contoh:
Proses stemming pada teks berBahasa Indonesia berbeda dengan stemming pada teks berbahasa Inggris. Pada teks berbahasa Inggris, proses yang diperlukan hanya proses menghilangkan sufiks. Sedangkan pada teks berbahasa Indonesia, selain sufiks, prefiks, dan konfiks juga dihilangkan. (November 14, 2009 – Ledy Agusta).
Stoplist
Stop word atau Stop words adalah kata-kata yang jumlahnya sangat besar dalam kopus(kumpulan dari beberapa teks) yang mempunyai fungsi tapi tidak memiliki arti sehingga tidak perlu digunakan sebagai penciri dokumen. Daftar kumpulan stopword biasa disebut stoplist. (Juli 17, 2009 – sifa).
Stoplist dapat dihilangkan menggunakan algoritma stemming sebagai contoh adalah kata berikut:
Algoritma Stemming dan StopList
Algortima Stemming secara garis besar di bagi menjadi 2 :
1. Algoritma Nazief & Adriani
Algoritma yang dibuat oleh Bobby Nazief dan Mirna Adriani ini memiliki tahap-tahap sebagai berikut:
a. Cari kata yang akan distem dalam kamus. Jika ditemukan maka diasumsikan bahwa kata tesebut adalah root word. Maka algoritma berhenti.
b. 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.
c. Hapus Derivation Suffixes (“-i”, “-an” atau “-kan”). Jika kata ditemukan di kamus, maka algoritma berhenti. Jika tidak maka ke langkah ci
i. 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 cii.
ii. Akhiran yang dihapus (“-i”, “-an” atau “-kan”) dikembalikan, lanjut ke langkah d.
d. Hapus Derivation Prefix. Jika pada langkah 3 ada sufiks yang dihapus maka pergi ke langkah 4a, jika tidak pergi ke langkah di.
i. Periksa tabel kombinasi awalan-akhiran yang tidak diijinkan. Jika ditemukan maka algoritma berhenti, jika tidak pergi ke langkah dii.
ii. For i = 1 to 3, tentukan tipe awalan kemudian hapus awalan. Jika root word belum juga ditemukan lakukan langkah e, jika sudah maka algoritma berhenti. Catatan: jika awalan kedua sama dengan awalan pertama algoritma berhenti.
e. Melakukan Recoding.
f. Jika semua langkah telah selesai tetapi tidak juga berhasil maka kata awal diasumsikan sebagai root word. Proses selesai.
Tipe awalan ditentukan melalui langkah-langkah berikut:
- Jika awalannya adalah: “di-”, “ke-”, atau “se-” maka tipe awalannya secara berturut-turut adalah “di-”, “ke-”, atau“se-”.
- Jika awalannya adalah “te-”, “me-”, “be-”, atau “pe-” maka dibutuhkan sebuah proses tambahan untuk menentukan tipe awalannya.
- Jika dua karakter pertama bukan “di-”, “ke-”, “se-”, “te-”, “be-”, “me-”, atau “pe-” maka berhenti.
- Jika tipe awalan adalah “none” maka berhenti. Jika tipe awalan adalah bukan “none” maka awalan dapat dilihat pada Tabel 2. Hapus awalan jika ditemukan.
2. Algoritma Porter
Algoritma kedua yang digunakan dalam sistem ini adalah Algoritma Porter. Adapun langkah-langkah algoritma ini adalah sebagai berikut:
a. Hapus Particle,
b. Hapus Possesive Pronoun.
c. Hapus awalan pertama. Jika tidak ada lanjutkan ke langkah ei, jika ada cari maka lanjutkan ke langkah eii.
d. Masuk ke langkah:
i. Hapus awalan kedua, lanjutkan ke langkah ei.
ii. Hapus akhiran, jika tidak ditemukan maka kata tersebut diasumsikan sebagai root word. Jika ditemukan maka lanjutkan ke langkah eii.
e. Hapus akhiran. Kemudian kata akhir diasumsikan sebagai root word
d. Hapus awalan kedua. Kemudian kata akhir diasumsikan sebagai root word.
Terdapat 5 kelompok aturan pada Algoritma Porter untuk Bahasa Indonesia ini. Aturan tersebut dapat dilihat pada Tabel 4 sampai Tabel 8.
Proses stemming menggunakan Algoritma Porter dapat dilihat pada Gambar 1.
Konsep Penggunaan
Stemming dan StopList menggunakan PHP
//2. hapus stoplist
//daftar stop word diletakkan di array
//anda boleh menggunakan database sebagai gantinya
$astoplist = array (“yang”, “juga”, “dari”, “dia”, “kami”, “kamu”, “ini”, “itu”, “atau”, “dan”, “tersebut”, “pada”, “dengan”, “adalah”, “yaitu”);
foreach ($astoplist as $i => $value) {
$teks = str_replace($astoplist[$i], “”, $teks);
}
//3. terapkan stemming
//pemetaan term –> stem hanya menggunakan array
//index ganjil menunjukkan term dan index genap adalah stem dari term tersebut
//anda boleh menggunakan database sebagai gantinya
$astemlist = array(“pertemuan”, “temu”, “bertemu”, “temu”, “cr9”, “cristiano ronaldo”, “berharap”, “harap”);
//perhatikan cara mengubah suatu term ke bentuk stemnya
for ($i=0; $i<count($astemlist); $i = $i +2) {
//ganti term (jika ditemukan term pada index ganjil) dengan stem pada index genap ($i=1)
$teks = str_replace($astemlist[$i], $astemlist[$i+1], $teks);
}
Referensi
- Ledy Agusta. 2009.Perbandingan Algoritma Stemming Porter Dengan Algoritma Nazief & Adriani Untuk Stemming Dokumen Teks Bahasa Indonesia. https://yudiagusta.files.wordpress.com/2009/11/196-201-knsi09-036-perbandingan-algoritma-stemming-porter-dengan-algoritma-nazief-adriani-untuk-stemming-dokumen-teks-bahasa-indonesia.pdf.
- 2009.Stopword. https://temukembaliinformasi.wordpress.com/tag/stopword/.
- McEnery dan Wilson. 1996.Korpus Dalam Ilmu Bahasa. https://suryokontho.wordpress.com/2012/01/14/korpus-dalam-ilmu-bahasa/.
- Sugeng Priyanto. 2013. Model Temu Balik Informasi. http://sugengpri.blog.undip.ac.id/files/2013/07/4.-MODEL-TBIE.pdf.
- Husni Rise Ilyas. 2010. Information Retrieval: PreProcessing dengan PHP. https://komputasi.wordpress.com/2010/05/27/information-retrieval-pre-processing/.
Download File Presentasi dibawah ini :
Download FIle Referensi dibawah ini :