Porter Stemmer
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
Porter StemmerBahasa Indonesia
Implementasi Porter Stemmer for Bahasa Indonesiaberdasarkan 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. Desain dari Porter Stemmer for Bahasa Indonesia dapat dilihat pada gambar.
Desain dari Porter Stemmer for Bahasa Indonesia
Algoritma / Langkah-langka Pada Porter Stemmer
1. Menghapus partikel seperti: -kah, -lah, -tah
2. Mengapus kata ganti (Possesive Pronoun), seperti –ku, -mu, -nya
3. Mengapus awalan pertama. Jika tidak ditemukan, maka lanjut ke langkah 4a, dan jika ada maka lanjut ke langkah 4b.
4. a. Menghapus awalan kedua, dan dilanjutkan pada langkah ke 5a
b. Menghapus akhiran, jika tidak ditemukan maka kata tersebut diasumsikan sebagai kata dasar (root word). Jika ditemukan maka lanjut ke langkah 5b.
5. a. Menghapus akhiran dan kata akhir diasumsikan sebagai kata dasar (root word.
b. Menghapus awalan kedua dan kata akhir diasumsikan sebagai kata dasar (root word).
Aturan Algoritma Porter untuk Indonesia
Terdapat 5 aturan pada Algoritma Porter untuk Bahasa Indonesia. Aturan-aturan tersebut dapat dilihat pada tabel berikut :
Tabel 1: Kelompok rule pertama : inflectional particles
Tabel 2: Kelompok rule kedua :inflectional possesive pronouns
Tabel 3: Kelompok rule ketiga: first order of derivational prefixes
Tabel 4: Kelompok rule keempat: second order of derivational prefixes
Tabel 5: Kelompok rule kelima: derivational suffixes
Pemaksimalan Porter Stemmer
Untuk menangani masalah pada Porter Stemmer untuk Indonesia perlu ditambahkan beberapa aturan dalam algoritma agar memberikan hasil yang lebih maksimal dan untuk mempermudah proses stem maka dibuatlah beberapa kamus kecil,antara lain sebagai berikut :
1. Kamus kata dasar yang dilekati partikel, untuk menyimpan kata dasar yang memiliki suku kata terakhir (partikel infleksional) serta kata tersebut tidak mendapat imbuhan apapun. Seperti : masalah
2. Kamus kata dasar yang dilekati partikel berprefiks untuk menyimpan kata dasar yang memiliki suku kata terakhir (partikel infleksional) dan mempunyai prefiks. Seperti : menikah
3. Kamus kata dasar yang dilekati kata ganti milik, untuk menyimpan kata dasar yang memiliki suku kata terakhir (kata ganti infleksional) serta kata dasar tersebut tidak mendapatkan imbuhan apapun. Seperti : bangku.
4. Kamus kata dasar yang dilekati kata ganti milik berprefiks, untuk menyimpan kata dasar yang memiliki suku kata terakhir (kata ganti infleksional) dan mempunyai prefiks. Seperti : bersuku.
5. Kamus kata dasar yang dilekati prefiks pertama, untuk menyimpan kata dasar yang memiliki suku kata pertama (prefiks derivasional pertama) serta kata dasar tersebut tidak mendapatkan imbuhan apapun.. Seperti : median.
6. Kamus kata dasar yang dilekati prefiks pertama bersufiks, untuk menyimpan kata dasar yang memiliki suku kata pertama (prefiks derivasional pertama) dan mempunyai sufiks derivasional. Seperti : terapan.
7. Kamus kata dasar yang dilekati prefiks kedua, untuk menyimpan kata dasar yang memiliki suku kata pertama (prefiks derivasional kedua) serta kata dasar tersebut tidak mendapatkan imbuhan apapun. Seperti : percaya
8. Kamus kata dasar yang dilekati prefiks kedua bersufiks, untuk menyimpan kata dasar yang memiliki suku kata pertama (prefiks derivasional) dan mempunyai sufiks derivasional. Seperti : perasaan.
9. Kamus kata dasar yang dilekati sufiks, untuk menyimpan kata dasar yang memiliki suku kata terakhir (sufiks derivasional). Seperti : pantai
Ada banyak persoalan yang dihadapi pada proses stemming Bahasa Indonesia, di antaranya yaitu:
- Imbuhan pada Bahasa Indonesia cukup kompleks, terdiri dari:
o Prefiks, imbuhan di depan kata: ber-tiga
o Suffiks, imbuhan di akhir kata: makan-an
o Konfiks, imbuhan di depan dan di akhir kata: per-ubah-an
o Infiks, imbuhan di tengah kata: kemilau.
o Imbuhan dari bahasa asing: final-isasi, sosial-isasi
o Aturan perubahan prefiks, seperti (me-) menjadi (meng-, mem-, men-, meny-)
- Word-Sense Ambiguity (Ambiguitas Rasa Kata), yaitu satu kata dapat memiliki dua makna (seperti misalnya homonim), dan berasal dari kata dasar yang berbeda. Contohnya:
o Berikan è Ber-ikan
o Berikan è Beri-kan
- Overstemming
o Kata berikan berdasarkan aturan pemenggalan, dapat dipenggal menjadi Ber-i-kan. Menjadi kata dasar i. Untuk mencegah overstemming, algoritma membutuhkan daftar kata dasar. Jika kata yang dipenggal ada di kata dasar, hentikan proses pemenggalan.
- Understemming
o Mengecek -> menjadi meng-ecek, seharusnya menge-cek. Hal ini dapat disebabkan karena pada kamus kata dasar, ecek juga merupakan kata dasar.
- Ketergantungan terhadap kamus / daftar kata dasar
o Untuk mencegah overstemming, algoritma menjadi tergantung pada kata dasar. Adanya kekurangan atau kelebihan pada kata dasar dapat menyebabkan overstemming atau understemming.
- Pengguna Bahasa Indonesia tidak konsisten dalam menentukan stem (secara manual)
o Kita, manusia, juga kadang berbeda pendapat dalam menentukan stem sebuah kata. Contohnya, apakah "adalah" merupakan kata berimbuhan dari kata dasar "ada"? Apakah "bagian" adalah kata berimbuhan dari kata dasar "bagi"?
- Kata bentuk jamak = buku-buku (kata dasar nya buku)
- Kata serapan dari bahasa asing = mengakomodir -> meng-akomodir
- Kesalahan penulisan = penambahanan, harusnya penambahan, sehingga tidak dapat distem.
- Akronim = pemilu distem menjadi pe-milu.
- Proper Noun (Nama Benda), misal nama orang, nama kota: Abdullah distem menjadi abdul, seharusnya tidak distem.
Enhanced Confix Stripping Porter ( ECSP ) Stemmer
Stemming adalah suatu proses pengembalian suatu kata berimbuhan ke bentuk dasarnya. Metode pada stemming bahasa indonesia adalah ECS ( Enhanced Confix Stripping) dan porter stemmer. ECS adalah metode stemming yang sudah teruji keakuratannya tetapi prosesnya lambat dan porter stemmer merupakan metode stemming paling cepat dalam proses data namun hasilnya tidak seakurat ECS.
Kombinasi Enhanced Confix Stripping (ECS) dan porter stemmer telah diimplikasikan dalam sebuah Stemmer pengembangan yaitu Enhanced Confix Stripping Porter (ECSP). ECSP merupakan hasil perpaduan algoritma dan rule ECS dengan Porter.
1. Algoritma ECSP (Enhanced Confix Stripping Porter)
Aturan pemenggalan awalan ECSP
Aturan ke- | Imbuhan | Perubahan Imbuhan |
1 | BerV... | BerV...|be-rV... |
2 | BerCAP... | Ber-CAP...dimana C!=’r’ dan P!=’er’ |
3 | BerCAerV... | Ber-CaerV...dimana C!=’r’ |
4 | Belajar... | Bel-ajar... |
5 | BeC1erC2 | Be-C1erC2...dimana C1!={‘r’|’l’} |
6 | TerV... | Ter-V...|te-rV... |
7 | TerCerV | Ter-CerV...dimana C!=’r’ |
8 | TerCP... | Ter-CP...dimana C!=’r’dan P!=’er’ |
9 | TeClerC2... | Te-ClerC2...dimana C1!=’r’ |
10 | Me{l|r|w|y}V... | Me-{1|r|w|y}V... |
11 | Mem{b|f|v}... | Mem-{b|f|v}... |
12 | Mempe | Mem-pe... |
13 | Mem{rV|V}... | Me-m{rV|V}...| Me-p{rV|V}... |
14 | Men{c|d|j|z|s}... | Men-{c|d|j|z|s}... |
15 | MenV... | Me-nV...| me-tV... |
16 | Meng{g|h|q|k}... | Meng-{{g|h|q|k}... |
17 | MengV... | Meng-V...| meng-kV...| |
(mengV-...jika V=”e”) | ||
18 | MenyV... | Meny-sV... |
19 | MempA... | Mem-pA...dimana A!=’e’ |
20 | Pe{w|y}V... | Pe-{w|y}V... |
21 | PerV... | Per-V...| pe-rV... |
22 | PerCAP... | Per-CAP... dimana C!=’r’ dan P!=’er’ |
23 | PerCAerV... | Per-CAerV... dimana C!=’r’ |
24 | Pem{b|f|v}... | Pem-{b|f|v}... |
25 | Pem{rV|V}... | Pem{rV|V}... | Pe-p{rV|V}... |
26 | Pen{c|d|j|z}... | Pen-{c|d|j|z}... |
27 | PenV... | Pe-nV... | pe-tV... |
28 | PengC | Peng-C |
29 | PengV... | Peng-V... | peng-kV... | (pengV-... jika V=”e”) |
30 | PenyV... | Peny-sV... |
31 | PelV... | PelV... kecuali pada kata ‘pelajar’ |
32 | PeCerV... | Per-erV... dimana C!={r|w|y|l|m|n} |
33 | PeCP... | Pe-CP... dimana C!={r|w|y|l|m|n} dan P!=’er’ |
34 | terClerC2... | Ter-ClerC2... dimana C1!=,,r” |
35 | peClerC2... | Pe-ClerC2... dimana C1!={r|w|y|l|m|n} |
Keterangan simbol huruf:
C: huruf onsonan
V: huruf vokal
A: huruf vokal atau konsonan
P : partikel atau fragmen dari suatu kata, misalnya “er”
Algoritma yang dikembangkan penulis untuk ECSP Stemmer adalah sebagai berikut
1. Melakukan pengecekan jumlah karakter/huruf dalam kata inputan,jika kata yang akan di stem mempunyai jumlah karakter/huruf <6,maka kata tersebut tergolong tidak berimbuhan dan secara langsung akan di return oleh Stemmer.Algoritma ini disebut cek non affiks.
2. Pengecekan ilegal affiks (kata imbuhan yang tidak diperbolehkan). Contoh ilegal affikspada aturan Bahasa Indonesia yaitu :ke-..-i|-kan,se-..-i|kan,peng-..-..-i|kan,tar-..-an
3. Menghapus kata ganti kepunyaan yang berada di depan seperti: ku-,kau-,dan serapan awalan asing seperti : adi-,antar-,dwi-,eka-,infra-,maha-,manca-,multi-,nara-,pasca-,pari-,pramu-,pra-,sapta-,semi-,swa-,tri-,ultra-
4. Menghapus inflectional particle P (-lah,-kah,-tah,-pun) dan kata ganti kepunyaan atau possessive prounon PP (-ku,-mu,-nya)
5. Menghapus awalan
Ø Menghapus awalan yang tidak bermofologi seperti (di-,ke-,se-).
Ø Menghapus awalan bermofologi (be-,te-,pe-,me-). Lakukan recording sesuai dengan tabel pemenggalan imbuhan ECSP dan yang sudah dikembangkan dari aturan pemenggalan awalan ECS dan Porter Stemmer ,yaitu :
Modifikasi dan tambahan aturan pemenggalan awalan ECS yang dilakukan ECSP
Aturan ke- | Imbuhan | Perubahan imbuhan |
11 | Mem{b|f|v|p} | Mem-{b|f|v|p} |
13 | Mem{rV|V}.. | Me-p{rV|V}... |
14 | Men{c|d|j|z|s|t}... | Men-{c|d|j|z|s|t}... |
30 | Peng{a|i|u|o}... | Peng-{a|i|u|o}... |
37 | CIPC2V... | CIP-C2V...dimana C1=C2 dan P=’e’ |
38 | Me-mV/C... | Mem-V/C |
39 | PemV... | Pem-p-V... |
40 | Pe{c|t|s|z} | Pe-{c|t|s|z}... |
Keterangan simbol huruf:
C : huruf konsonan,
P : partikel atau fragmen dari suatu kata,misalnya”er”,
V : huruf vokal .
6. Menghapus akhiran (-i,-kan,-an).
7. Menghapus akhiran serapan asing seperti (-wati,-wan,-isme,-is,-iah,-isasi,-er,-wi,-in,- logi).
8. Menghapus infik atau sisipan dengan aturan pemenggalan yaitu :
Aturan pemenggalan sisipan ECSP
Aturan ke- | Imbuhan | Perubahan imbuhan |
1 | {g|j|l} {el} V | {g|j|l}-{el}-V |
2 | {c|j|k|g} {em} V | {c|j|k|g}-{em}-V |
3 | {s|g|k} {er} V | {s|g|k}-{er}-V |
4 | {k|s|t} {in} V | {k|s|t}-{in}-V |
Aturan infiks diatas terkadang dapat menimbulkan terjadinya overstemming pada kata-kata yang dianggap pola infiks. Kata-kata bentuk sisipan yng kuantitasnya sedikit,akan langsung dimasukan dalam rule hapus sisipan.
2. Tahapan ECSP (Enhanced Confix Stripping Porter)
Gambar diatas menjelaskan tahapan sistem yang digunakan untuk proses ECSP (Enhanced Confix Stripping Porter).
3. Contoh Implementasi ECSP (Enhanced Confix Stripping Porter)
Berikut ini adalah term-term pada ECS dan Porter stemmer yang telah diperbaiki ECSP yaitu:
1. Hasil perbaikan dengan menambahkan serapan awalan asing.
Term | ECSP |
mahasiswa | siswa |
paripurna | purna |
antibiotik | biotik |
caturtunggal | tunggal |
swadaya | daya |
poligami | poligam |
prasangka | sangka |
adipati | pati |
demoralisasi | demoral |
2. Hasil perbaikan dengan menambahkan serapan akhiran asing
Term | ECSP |
Honorer | honor |
Manusiawi | manusia |
modernisme | modern |
Alamiah | alam |
Relawan | rela |
Mukminin | mukmin |
Finalisasi | final |
Standarisasi | standar |
Teknologi | tekno |
3. Perbaikan dengan menambahkan dan revisi aturan ECS
Term | ECSP | ECS |
pemungutan | pungut | mungut |
Dedaunan | daun | dedaunan |
pemadaman | padam | madam |
mengurangi | kurang | urang |
Menandai | tanda | tanda |
Memangkas | mangkas | mangkas |
mengunjungi | kunjung | unjung |
Mengembangkan | kembang | Kembang |
4. Hasil perbaikan term bentuk dasar kata gabungan
Term | ECSP |
ditindaklanjuti | tindaklanjut |
Diujicoba | ujicoba |
kewarganegaraan | warganegara |
keanekaragaman | anekaragam |
ditandatanganinya | tandatangan |
berkerjasama | kerjasama |
Berterimakasih | terimakasih |
dibagihasilkan | bagihasil |
dibebantugaskan | bebantugas |
5. Hasil perbaikan dengan menambahkan reduksi sisipan (infiks)
Term | ECSP |
Temurun | turun |
Geletar | getar |
Cemerlang | cerlang |
reruntuh | runtuh |
leluhur | luhur |
kinerja | kerja |
tinambah | tambah |
gelembung | gembung |
telunjuk | tunjuk |
6. Hasil perbaikan dengan menambahkan reduksi pronoun depan
Term | ECSP |
kubelikannya | beli |
kurasakannya | rasa |
kupukuli | pukul |
kaudengarkannya | dengar |
kuperdengarkannya | dengar |
4. Kelebihan dan Kekurangan ECSP (Enhanced Confix Stripping Porter)
Kelebihan:
1. Dapat memperbaiki kesalahan-kesalahan stemmer dalam total term yang ada.
2. Dalam hal kecepatan, ECSP dapat mengalahkan ECS dan porter dengan hasil selisih 6,7572 detik.
3. ECSP dapat mereduksi 67% dari total term dapat mengalahkan keakuratan Porter Stemmer yang hanya dapat mereduksi 61% dari total term.
Kekurangan:
1. ECSP tidak menggunakan algoritma pengecekan kamus kata dasar, sehingga dapat dimungkinkan selisih keakurasian kata kurang memuaskan.
Porter Stemmer Indonesia vs ECSP
v Porter Stemmer Indonesia
ü Word-Sense Ambiguity (Ambiguitas Rasa Kata), yaitu satu kata dapat memiliki dua makna (seperti misalnya homonim), dan berasal dari kata dasar yang berbeda.
ü Overstemming è Kata berikan berdasarkan aturan pemenggalan, dapat dipenggal menjadi Ber-i-kan. Menjadi kata dasar i. Untuk mencegah overstemming, algoritma membutuhkan daftar kata dasar. Jika kata yang dipenggal ada di kata dasar, hentikan proses pemenggalan.
ü Understemming
· Mengecek -> menjadi meng-ecek, seharusnya menge-cek. Hal ini dapat disebabkan karena pada kamus kata dasar, ecek juga merupakan kata dasar.
ü Ketergantungan terhadap kamus / daftar kata dasar
· Untuk mencegah overstemming, algoritma menjadi tergantung pada kata dasar. Adanya kekurangan atau kelebihan pada kata dasar dapat menyebabkan overstemming atau understemming.
ü Pengguna Bahasa Indonesia tidak konsisten dalam menentukan stem (secara manual)
· Kita, manusia, juga kadang berbeda pendapat dalam menentukan stem sebuah kata. Contohnya, apakah "adalah" merupakan kata berimbuhan dari kata dasar "ada"? Apakah "bagian" adalah kata berimbuhan dari kata dasar "bagi"?
· ECSP
ü Dapat memperbaiki kesalahan-kesalahan stemmer dalam total term yang ada.
ü Dalam hal kecepatan, ECSP dapat mengalahkan ECS dan porter dengan hasil selisih 6,7572 detik.
ü ECSP dapat mereduksi 67% dari total term dapat mengalahkan keakuratan Porter Stemmer yang hanya dapat mereduksi 61% dari total term.
ü ECSP tidak menggunakan algoritma pengecekan kamus kata dasar, sehingga dapat dimungkinkan selisih keakurasian kata kurang memuaskan.
Semoga Bermanfaat ^_^
0 Komentar