• Tidak ada hasil yang ditemukan

LANDASAN TEORI

2.5. Algoritma Nazief & Andriani

Algoritma Nazief & Adriani merupakan algoritma stemming untuk teks berbahasa Indonesia yang memiliki kemampuan presentase keakuratan (presisi) lebih baik dari algoritma lainnya. Algoritma ini menggunakan beberapa aturan morfologi untuk menghilangkan affiks (awalan, imbuhan, dll) dari sebuah kata dan kemudian mencocokannya dalam kamus akar kata (kata dasar).

Algoritma Nazief & Adriani yang dibuat oleh Bobby Nazief dan Mirna Adriani ini memiliki tahap-tahap sebagai berikut (Nazief & Adriani, 1996):

1. Cari kata yang akan di-stem dalam kamus. Jika ditemukan maka diasumsikan bahwa kata tesebut adalah root word. Maka algoritma berhenti.

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

3. Hapus Derivation Suffixes (“-i”, “-an” atau “-kan”). Jika kata ditemukan di kamus, maka algoritma berhenti. Jika tidak maka ke langkah 3a

a. 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 3b.

b. Akhiran yang dihapus (“-i”, “-an” atau “-kan”) dikembalikan, lanjut langkah 4. 4. Hapus Derivation Prefix. Jika pada langkah 3 ada sufiks yang dihapus maka pergi

ke langkah 4a, jika tidak pergi ke langkah 4b.

a. Periksa tabel kombinasi awalan-akhiran yang tidak diijinkan. Jika ditemukan maka algoritma berhenti, jika tidak pergi ke langkah 4b.

b. For i = 1 to 3, tentukan tipe awalan kemudian hapus awalan. Jika root word belum juga ditemukan lakukan langkah 5, jika sudah maka algoritma berhenti. Catatan: jika awalan kedua sama dengan awalan pertama algoritma berhenti. 5. Melakukan Recording.

6. 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:

1. Jika awalannya adalah: “di-”, “ke-”, atau “se-” maka tipe awalannya secara berturut-turut adalah “di-”, “ke-”, atau “se-”.

2. Jika awalannya adalah “te-”, “me-”, “be-”, atau “pe-” maka dibutuhkan sebuah proses tambahan untuk menentukan tipe awalannya.

3. Jika dua karakter pertama bukan “di-”, “ke-”, “se-”, “te-”, “be-”, “me-”, atau “pe-” maka berhenti.

4. Jika tipe awalan adalah “none” maka berhenti. Hapus awalan jika ditemukan.

Tabel 2.4. Kombinasi Awalan Akhiran Yang Tidak Diijinkan

(Nazief & Adriani, 1996)

Awalan Akhiran yang tidak diijinkan

be- -i

di- -an

ke- -i, -kan

me- -an

se- -i, -kan

Tabel 2.5. Tabel Aturan Peluruhan Kata Dasar (Nazief & Adriani, 1996)

Aturan Awalan Peluruhan

1 berV… ber-V..| be-rV..

2 Belajar bel-ajar

3 berClerC2 be-ClerC2.. dimana Cl!= {‘r’|’l’}

4 terV… ter-V.. | te-rV..

5 terCer… ter-Cer… dimana C!=’r’

6 teClerC2 te-CleC2… dimana Cl!=’r’

7 me{I|r|w|y}V… me-{I|r|w|y}V…

8 mem{b|f|v}… mem-{b|f|v}…

9 mempe… m-pe..

Tabel 2.5. Tabel Aturan Peluruhan Kata Dasar (Lanjutan)

Aturan Awalan Peluruhan

11 men{c|d|j|z}… men-{c|d|j|z}…

12 menV… me-nV…| me-tV…

13 meng{g|h|q|k}… meng-{g|h|q|k}…

14 mengV… meng-V…| meng-kV…

15 mengeC… meng-C…

16 menyV… me-ny…| men-sV…

17 memV… mem-pV…

18 pe{w|y}V… pe-{w|y}V…

19 perV… per-V…| pe-rV…

20 pem{b|f|v}… pem-{b|f|v}…

21 pem{rV|V}… pe-m{rV|V}…| pe-p{rV|V}…

22 pen{c|d|j|z}… pen-{c|d|j|z}…

23 penV… pe-nV…| pe-tV…

24 peng{g|h|q}… peng-{g|h|q}

25 pengV… peng-V| peng-kV

26 penyV… pe-nya| peny-sV

27 pelV… pe-IV...; kecuali untuk kata “pelajar”

28 peCP… pe-CP...dimana C!={r|w|y|I|m|n} dan P!=’er’

29 perCerV… per-CerV... dimana C!={r|w|y|I|m|n}

Untuk mengatasi keterbatasan pada algoritma di atas, maka ditambahkan aturan-aturan dibawah ini:

1. Aturan untuk reduplikasi.

a. Jika kedua kata yang dihubungkan oleh kata penghubung adalah kata yang sama maka root word adalah bentuk tunggalnya, contoh : “buku-buku” root word-nya adalah “buku”.

b. Kata lain, misalnya “bolak-balik”, “berbalas-balasan, dan ”seolah-olah”. Untuk mendapatkan root word-nya, kedua kata diartikan secara terpisah. Jika keduanya memiliki root word yang sama maka diubah menjadi bentuk tunggal, contoh: kata “berbalas-balasan”, “berbalas” dan “balasan” memiliki root word yang

sama yaitu “balas”, maka root word “berbalas-balasan” adalah “balas”. Sebaliknya, pada kata “bolak-balik”, “bolak” dan “balik” memiliki root word yang berbeda, maka root word-nya adalah “bolak-balik”.

2. Tambahan bentuk awalan dan akhiran serta aturannya.

a. Untuk tipe awalan “mem-“, kata yang diawali dengan awalan “memp-” memiliki tipe awalan “mem-”.

b. Tipe awalan “meng-“, kata yang diawali dengan awalan “mengk-” memiliki tipe awalan “meng-”.

2.6. N-Gram

Model n-gram adalah sebuah tipe model probabilistik untuk memperkirakan elemen selanjutnya pada sebuah urutan. N-gram digunakan untuk berbagai area statistik dari pemrosesan bahasa alami dan analisis urutan genetik. Sebuah n-gram adalah sebuah sub-urutan dari sejumlah n elemen dari urutan yang diberikan. Elemen dapat berupa fonem, huruf, kata, tergantung dari kebutuhan aplikasi.

N-gram adalah potongan n karakter dalam suatu string tertentu atau potongan n kata dalam suatu kalimat tertentu (Cavnar & Trenkle, 1994). Metode N-gram digunakan untuk mengambil potongan-potongan karakter huruf/kata sejumlah n dalam sebuah kata/kalimat yang secara kontinu dibaca dari kata sumber hingga akhir dari dokumen. Jika n=1 maka disebut bigram, n=2 disebut bigram dan n=3 disebut trigram.

Misalnya dalam kata “Teknik” akan didapatkan n-gram seperti pada Tabel 2.6 berikut.

Tabel 2.6. Contoh Pemotogan N-gram Berbasis Karakter

Nama n-gram karakter

Uni-gram T, E, K, N, I, K

Bi-gram _T, TE, EK, KN, NI, IK, K_

Tri-gram _TE, TEK, EKN, KNI, NIK, IK_, K_ _

Karakter blank “_” digunakan untuk merepresentasikan spasi di depan dan di akhir kata. Dan untuk word-based n-gram contohnya dapat dilihat pada Tabel 2.7.

Kalimat : “N-gram adalah potongan n karakter dalam suatu string tertentu”

Tabel 2.7. Contoh Pemotongan N-gram Berbasis Kata

Nama n-gram karakter

Uni-gram n-gram, adalah, potongan, n, karakter, dalam, suatu, sring, tertentu Bi-gram n-gram adalah, adalah potongan, potongan n, n karakter, karakter dalam,

dalam suatu, suatu string, string tertentu

Tri-gram n-gram adalah potongan, adalah potongan n, potongan n karakter, n karakter dalam, karakter dalam suatu, dalam suatu string, suatu string tertentu

Dst...

Dokumen terkait