BAB II LANDASAN TEORI
2.1 Information Retrieval
Information Retrieval merupakan sekumpulan algoritma dan teknologi
untuk melakukan pemrosesan, penyimpanan, dan menemukan kembali informasi
(tertstruktur) pada suatu koleksi data yang besar (Manning, 2008). Data yang
digunakan dapat berupa teks, tabel, gambar maupun video. Sistem IR yang baik
memungkinkan pengguna menentukan secara cepat dan akurat apakah isi dari
dokumen yang diterima memenuhi kebutuhannya.
2.1.1 Arsitektur Information Retrieval
2.1.1.1 Proses Retrieval
Proses information retrieval secara garis besar digambarkan dalam
8 Gambar 2.1 Proses Information Retrieval (Manning, 2008)
Secara detail, penjelasan mengenai arsitektur information retrieval
terdiri dari beberapa langkah, yaitu :
1. Langkah pertama dalam proses retrieval adalah merancang dan
memodelkan bentuk dari data yang akan digunakan untuk
keperluan informationretrieval.
• Penentuan jenis dokumen yang akan digunakan (Semi Structured dan Unstructured)
Semi–structured (dokumen yang memiliki struktur tree, misalnya dokumen XML)
biasanya memberikan tag tertentu pada term
9 Unstructured (dokumen yang tidak memiliki pola, misalnya artikel atau paragraf) proses
ini akan dilewati dan term pada dokumen
akan dibiarkan tanpa imbuhan tag.
• Operasi dasar yang akan dilakukan terhadap text pada isi dokumen.
• Sistem akan membentuk indeks dari text.
2. Indeks merupakan bagian yang sangat kritikal karena akan
berpengaruh pada proses pencarian yang cepat dalam volume data
yang sangat besar. Struktur indeks dapat berbeda-beda, namun
yang paling popular untuk digunakan adalah invertedindex.
3. Ketika document data text selesai dibentuk, maka user sudah
dapat melakukan pencarian. Langkah-langkah yang harus
dilakukan pada pencarian adalah sebagai berikut :
Pada suatu kebutuhan pencarian data atau kebutuhan informasi pengguna akan merepresentasikan kebutuhan
tersebut dengan menggunakan query.
Query Operation akan dilakukan setelah user menginput
query.
Proses searching pada query akan menghasilkan retrieved documents.
10 Sebelum data dikembalikan ke user, dokumen yang
di-retrieved akan diranking berdasarkan kedekatan dokumen
dengan query.
2.1.1.2 Text Operation
Text Operation berperan penting dalam proses information
retrieval, karena seluruh proses yang berhubungan dengan penggalian
informasi dari sumber dokumen ataupun teks dilakukan pada proses text
operation. Textoperation memilki beberapa langkah yang dapat dilakukan
di dalam sebuah sistem Information Retrieval, berikut adalah
langkah-langkah pada textoperatrion:
Tokenisasi
Penghilangan Stop-word
Stemming
Indexing2.1.1.2.1 Tokenization
Tokenisasi merupakan proses pemenggalan kata dalam suatu
dokumen menjadi potongan – potongan kata yang berdiri sendiri (token). Proses ini juga akan menghilangkan tanda baca atau karakter yang melekat
pada kata tersebut dan semua kata menjadi huruf kecil (Manning, 2008).
Contoh tokenisasi :
• Input :Friends, Romans, Countrymen, Lend, Me, Your, Eyes
11 Terkadang token dapat dikatakan juga sebagai term atau kata. Pemotongan
kumpulan karakter biasanya berdasarkan karakter spasi, namun beberapa
permasalahan yang terjadi dalam proses tokenisasi yaitu terdapat beberapa
kata yang akan berbeda arti bila dipotong berdasarkan spasi seperti San
Fransisco akan memiliki arti yang berbeda bila dipotong menjadi San dan
Fransisco. Setiap dokumen dan query direpresentasikan dengan model
bag-of-words, yaitu model yang mengabaikan urutan dari kata – kata dan struktur yang ada di dalam dokumen. Dokumen diubah menjadi sebuah
wadah yang berisi kata – kata yang independen.
2.1.1.2.2 Penghilangan Stop Word
Stop-word didefinisikan sebagai term yang tidak berhubungan
(non-relevant) dengan subjek utama dari data meskipun kata tersebut
sering muncul di dalam dokumen. Penghilangan stop-word tidak bersifat
wajib pada beberapa desain dari modern information retrieval, dimana
memliki cara sendiri untuk menyelesaikan masalah kata-kata yang sering
digunakan dengan menggunakan data statistik. Contoh stop-word dalam
Bahasa Inggris adalah : a, an, the, this, that, these, those, her, his, its, my,
our, their, your, all, few, many, several, some, every, for, and, nor, bit, or, yet, so, also, after, although, if, unless, because, on, beneath, over, of, during, beside, dan etc. Contoh stop-word dalam bahasa Indonesia : yang,
juga, dari, dia, kami, kamu, aku, saya, ini, itu, atau, dan, tersebut, pada,
dengan, adalah, yaitu, ke, tak, tidak, di, pada, jika, maka, ada, pun, lain,
12
Stop-word juga bisa dilakukan dengan memotong kata berdasarkan
distribusi kata (Zipf Distrubution). Zipf Distrubution merupakan
pembagian/distribusi frekuensi kata, dapat digambarkan seperti gambar
2.2. Pada tahap ini dilakukan pemotongan kata yang memiliki frekuensi
sangat tinggi maupun rendah, dengan demikian dapat dikatakan Zipf
Distribution dapat memotong batas kata yang optimum untuk memberikan
ciri atau key word dari suatu dokumen.
Gambar 2.2 Distribusi Zipf (Manning, 2008)
2.1.1.2.3 Stemming
Sebuah kata kerja dalam dokumen sering kali memiliki banyak
bentuk atau tata bahasa yang berbeda, untuk mengatasinya dilakukan
stemming. Tujuan akhir dari stemming adalah mereduksi kata menjadi kata
dasar, proses ini dilakukan dengan pemotongan akhiran dan awalan kata.
Hasil dari langkah stemming diperoleh kelompok kata yang mempunyai
makna serupa tetapi berbeda wujud sintaktis satu dengan lainnya.
Kelompok tersebut dapat direpresentasikan oleh satu kata tertentu.
13 cara kerjanya. Stemming melakukan proses pemotongan akhiran dan
awalan untuk mencapai tujuan tersebut, sedangkan lemmatisasi melihat
penggunaan kata kerja serta analisis morfologi terlebih dahulu sebelum
melakukan pemotongan, hasil dari lemmatisasi biasa disebut dengan
lemma. Misalkan sebuah kata saw, stemming hanya akan mengembalikan
kata see, sedangkan lemmatisasi akan memotongnya ke bentuk see atau
saw tergantung pada penggunaan katanya sebagai verb atau noun. Setiap
bahasa tentunya memiliki norma stemming yang berbeda, maka tahap
stemming untuk Bahasa Jawa tentunya memiliki proses yang berbeda
(Ledy Agusta, 2009), berikut adalah langkah stemming untuk Bahasa
Jawa:
2.1.1.2.3.1 Aturan / Rule Stemming
Sebelum membuat aturan stemming untuk bahasa Jawa, diuraikan
terlebih dahulu penggunaan simbol-simbol dalam membuat stemmerrule
(Widjono, dkk, 2011) :
1. Aturan substitusi/penghapusan menggunakan tanda =>.
ny =>‖‖ (ny dihapus)
ny => s (ny diganti s)
2. Simbol <> digunakan untuk menyatakan tingkat affix yang mempengaruhi
urutan pengecekan di algoritma stemming. Rule yang digunakan adalah
14 Tabel 2.1 Rule untuk Suffix
SUFFIX
<1> e=>"",n=>"",a=>"",i=>"",ing=>"", ku=>"",mu=>""
<2> ke=>"", ki=>"",wa=>"", ya=>"",na=>"",ne=>"",en=>"",an=>"",ni=>"",nira=>"", ipun=>"", on=>"u", ning=>""
<3> ake=>"", en=>"i", kna=>"n", kno=>"n", ana=>"", ono=>"", ane=>"", kne=>"", nan=>"", yan=>"", nipun=>"", oni=>"u", eni=>"i"
<4> kake=>"n", ken=>"" ,kke=>"",nana=>"",nono=>"", nane=>"", nen=>"",kna=>"",kno=>"", ekne=>"i", onan=>"u",enan=>"i" <5> kake=>"",kken=>"",aken=>"",kke=>"n",enana=>"i",enono=>"i",onen=>"u",enen=>"i",onana=> "u",onono=>"u", ekna=>"i",ekno=>"i",okno=>"u",okna=>"u" <6> ekken=>"i",kaken=>"n",okken=>"u",ekake=>"i",ekke=>"i",okake=>"u",okke=>"u", kaken=>"", kken=>"n" <7> ekaken=>"i",okaken=>"u"
Tabel 2.2 Rule untuk Prefix PREFIX <1> dipun=>"",peng=>"",peny=>"",pem=>"",pam=>"",pany=>"",pra=>"",kuma=>"",kapi=>"", bok=>"",mbok=>"",dak=>"",tak=>"",kok=>"",tok=>"",ing=>"",ang=>"",any=>"", am=>"", sak=>"", se=>"",su=>"",mang=>"",meng=>"",nge=>"",nya=>"",pi=>"",ge=>"",ke=>"",u=>"", po=>"u",ke=>"u" <2> mer=>"",mra=>"",mi=>"",sa=>"",ku=>"",an=>"",ka=>"",ny=>"s",ng=>"k",di=>"",peng=>" k",pang=>"k",pany=>"c", pam=>"p",ke=>"i",mang=>"k",meng=>"k"
15 <4> n=>"t", pan=>"s", pen=>"s",man=>"s",men=>"s" <5> pan=>"",pen=>"",man=>"t",men=>"t",n=>"" <6> pa=>"",pe=>"",man=>"",men=>"" <7> p=>"",ma=>"",me=>"" <8> m=>"w" <9> m=>"p" <10> m=>""
Tabel 2.3 Rule untuk Infix INFIX
<1> gum=>"b",gem=>"b",kum=>"p",kem=>"p"
<2> kum=>"w", kem=>‖w‖
2.1.1.2.3.2 Algoritma Stemming
Algoritma untuk melakukan proses stemming terhadap kata tunggal atau
duplikasi.
1. Kata berimbuhan adalah word. Kata sebagai hasil adalah stemW
2. Cek jumlah karakter word, jika < 2. Keluar.
3. Jika word mengandung ―-―, maka pecah kata berdasar ―-― menjadi w1
dan w2. Dan lakukan langkah 4-13
4. w11 = w1 tanpa vokal dan w21 = w2 tanpa vokal.
5. Jika w11 = w21 dan panjang w1=w2 maka lakukan langkah 6-8
6. Jika w2 ada di kamus maka stemW=w2 dan keluar.
16 8. Jika w22 ada di kamus maka stemW=w22, jika tidak
stemW=w1-w2 dan keluar.
9. Jika w11 != w21, lakukan langkah 10-13
10.ws11=hilangkan imbuhan(w1) dan ws21 = hilangkan
imbuhan(w2).
11.Cek ws21 di kamus, jika ada maka stemW=ws21 dan
keluar.
12.Cek ws11 di kamus, jika ada maka stemW=ws11 dan
keluar.
13.Jika tidak maka stemW=ws11-ws21 dan keluar.
14.stemW = hilangkan imbuhan(stemW). Cek stemW di dictionary. Jika
ada stemW dikembalikan dan keluar.
Algoritma untuk menghilangkan afiks pada kata berimbuhan.
1. Kata yang akan dihilangkan imbuhan adalah word.
2. ws1=hapus suffix (word). Cek di dictionary. Jika ada kembalikan kata.
3. ws1s2=hapus suffix (ws1). Cek di dictionary. Jika ada kembalikan
kata.
4. ws1i1=hapus infix (ws1). Cek di dictionary. Jika ada kembalikan kata.
5. dws1= pengulangan parsial (ws1). Cek di dictionary. Jika ada
kembalikan kata.
6. dws1s2= pengulangan parsial (ws1s2). Cek di dictionary. Jika ada
kembalikan kata.
17 8. dwp1= pengulangan parsial (wp1). Cek di dictionary. Jika ada
kembalikan kata.
9. wp1s1=hapus suffix(wp1). Cek di dictionary. Jika ada kembalikan
kata.
10.dwp1s1= pengulangan parsial (wp1s1). Cek di dictionary. Jika ada
kembalikan kata.
11.wp1s1s2=hapus suffix (wp1s1). Cek di dictionary. Jika ada
kembalikan kata.
12.wp1p2=hapus prefix (wp1). Cek di dictionary. Jika ada kembalikan
kata.
13.wp1p2s1=hapus suffix (wp1p2). Cek di dictionary. Jika ada
kembalikan kata.
14.wp1p2s1s2=hapus suffix (wp1p2s1). Cek di dictionary. Jika ada
kembalikan kata.
15.wi1=hapus infix (word). Cek di dictionary. Jika ada kembalikan kata.
16.wi1s1=hapus suffix (wi1). Cek di dictionary. Jika ada kembalikan kata.
2.1.1.3 Indexing
Proses indexing adalah proses yang merepresentasikan document
collection ke dalam bentuk tertentu untuk memudahkan dan mempercepat
proses pencarian dokumen yang relevan. Pembuatan index dari document
collection adalah tugas pokok pada tahapan pre-processing di dalam
information retrieval. Efektitifitas dan efisiensi information retrieval
18 dokumen satu dengan dokumen yang lain yang berada di dalam satu
collection. Indeks dengan ukuran yang kecil dapat memberikan hasil yang
kurang baik dan bisa saja beberapa dokumen yang seharusnya relevan
terabaikan. Sementara indeks dengan ukuran yang besar memungkinkan
ditemukannya dokumen yang tidak relevan dan menurunkan kecepatan
pencarian. Pembuatan inverted index harus melibatkan konsep linguistic
processing yang bertujuan mengekstrak term-term penting dari dokumen
yang direpresentasikan sebagai bag-of-words.
Pada tahap indexing, dapat dilakukam pengindeksan terhadap term
frekuensi (tf), idf, tf-idf, atau fitur bobot tf-idf dapat dihitung sebagai
berikut: ) df / ( log ) tf log 1 ( w , 10 , i j N i j i (2.1)
df i = frekuensi dokumen dari kata i
= jumlah dokumen yang berisi kata i
idfi = inverse document frequency dari kata i,
= log10 (N/ df i)
(N: jumlah total dokumen).
W=weight (bobot kata)
Contoh pembobotan kata pada dokumen:
Diberikan dokumen berisi kata A,B,C dengan frekuensi :
A(3), B(2), C(1)
Misal, ada koleksi berisi 10,000 dokumen dan frekuensi kata A, B, C
19 A(50), B(1300), C(250)
Maka :
A: tf = 3; idf = log(10000/50) = 2.3; tf-idf = 6.9
B: tf = 2; idf = log(10000/1300) = 0.88;tf-idf = 1.77
C: tf = 1; idf = log(10000/250) = 1.6; tf-idf = 1.6