Joko Prayogi : Stemming dan Stoplist

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:

  1. Algoritma Porter

Berikut adalah algoritma Porter untuk proses Stemming:

  1. Hapus Particle
  2. Hapus Possesive Pronoum
  3. Hapus awalan pertama. Jika tidak ada lanjutan ke langkah 4a, jika ada maka lanjutkan ke langkah 4b.
  4. > 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:

  1. 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.
  1. 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’.
  2. 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:

  1. Derivation suffixes (‘-i’ atau ‘-an’) dihapus. Jika sukses, langkah 4 dijalankan. Jika langkah 4 tidak sukses.
  2. 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’).
  3. 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.

  1. Setelah semua langkah dijalankan dan gagal, algoritma mengembalikan kata awal.

Tabel 6. Kombinasi awalan dan akhiran yang tidak diperbolehkan

1

Tabel 7. Penentuan tipe awalan untuk kata dengan awalan ‘te-‘

2

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

3

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 :

  1. 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.

  1. 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