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 Stemmer
Bahasa Indonesia
Implementasi Porter Stemmer for Bahasa Indonesia
berdasarkan 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 ^_^
No comments:
Post a Comment