Cari Blog Ini

Jumat, 21 Oktober 2011

algoritma porter stemmer

Stemming adalah proses untuk menggabungkan atau memecahkan setiap varian-varian suatu kata menjadi kata dasar.
Stem (akar kata) adalah bagian dari kata yang tersisa setelah dihilangkan imbuhannya (awalan dan akhiran). Contoh : connect adalah stem dari connected, connecting, connection, dan connections.
Metode stemming memerlukan input berupa term yang terdapat dalam dokumen. Sedangkan outputnya berupa stem.
Ada tiga jenis metode stemming, antara lain :
  • Successor Variety (SV) : llebih mengutamakan penyusunan huruf dalam kata dibandingkan dengan pertimbangan atas fonem. Contoh untuk kata-kata : corpus, able, axle, accident, ape, about menghasilkan SV untuk kata apple :
    • Karena huruf pertama dari kata “apple” adalah “a”, maka kumpulan kata yang ada substring “a” diikuti “b”, “x”, “c”, “p” disebut SV dari “a” sehingga “a” memiliki 4 SV.
    • Karena dua huruf pertama dari kata “apple” adalah “ap”, maka kumpulan kata yang ada substring “ap” hanya diikuti “e” disebut SV dari “ap” sehingga “ap” memiliki 1 SV.
  • N-Gram Conflation : ide dasarnya adalah pengelompokan kata-kata secara bersama berdasarkan karakter-karakter (substring) yang teridentifikasi sepanjang N karakter.
  • Affix Removal : membuang suffix dan prefix dari term menjadi suatu stem. Yang paling sering digunakan adalah algoritma Porter Stemmer karena modelnya sederhana dan effisien.
    • Jika suatu kata diakhiri dengan “ies” tetapi bukan “eies” atau “aies”, maka “ies” direplace dengan “y”
    • Jika suatu kata diakhiri dengan “es” tetapi bukan “aes” atau “ees” atau “oes”, maka “es” direplace dengan “e”
    • Jika suatu kata diakhiri dengan “s” tetapi bukan “us” atau “ss”, maka “s” direplace dengan “NULL”
Metode Stemming
Porter stemmer merupakan algoritma penghilangan akhiran morphological dan infleksional yang umum dari bahasa Inggris. Algoritma ini terdiri dari himpunan kondisi atau action rules.
Kondisi dikelompokkan menjadi tiga kelas, yakni :
  • Kondisi pada stem
    • Ukuran (measure), dinotasikan dengan m, dari sebuah stem berdasarkan pada urutan vokal-konsonan.
      • m = 0, contoh : TR, EE, TREE, Y, BY
      • m = 1, contoh : TROUBLE, OATS, TREES, IVY
      • m = 2, contoh : TROUBLES, PRIVATE, OATEN
Porter Stemmer 1
    • *<X> berarti stem berakhir dengan huruf X
    • *v* berarti stem mengandung sebuah vokal
    • *d berarti stem diakhiri dengan konsonan dobel
    • *o berarti stem diakhiri dengan konsonan – vokal – konsonan, berurutan, di mana konsonan akhir bukan w, x, atau y.
  • Kondisi pada suffix : (current_suffix == pattern)
  • Kondisi pada rule : rule-rule dibagi menjadi step-step. Rule-rule dalam sebuah step diuji secara berurutan, dan hanya 1 rule dari suatu step yang diterapkan.
{
step1a(word);
step1b(stem);
if (the second or third rule of step 1b was used) step1b1(stem);
step1c(stem);
step2(stem);
step3(stem);
step4(stem);
step5a(stem);
step5b(stem);
}
Control flow algoritma Porter Stemmer :
Control Flow Porter Stemmer
Step-step algoritma Porter Stemmer :
  • Step 1a : remove plural suffixation
Step 1a Porter Stemmer
  • Step 1b : remove verbal inflection
Step 1b Porter Stemmer
  • Step 1b1 : continued for -ed and -ing rules
Step 1b1 Porter Stemmer
  • Step 1c : y and i
Step 1c Porter Stemmer
  • Step 2 : peel one suffix off for multiple suffixes
Step 2 Porter Stemmer
  • Step 3
Step 3 Porter Stemmer
  • Step 4 : delete last suffix
Step 4 Porter Stemmer
  • Step 5a : remove e
Step 5a Porter Stemmer
  • Step 5b : reduction
Step 5b Porter Stemmer

1 komentar: