Indexing Pada IR
Indexing: merupakan proses penyusunan index dari seluruh dokumen pada
korpus, yang terdiri dari kata-kata (token)
Korpus: ialah kumpulan dokumen yang disalin ke mesin IR Misalnya Google
“menjepret” seluruh halaman website yang bisa diakses umum (tanpa login
terlebih dahulu) kemudian menyalinnya ke mesin IR di ruang servernya google.
Bagaimana mesin Information Retrieval menyalin dokumen-dokumen yang
berada di dunia maya ?. mesin IR memiliki robot (BOT) sejenis program yang
bisa disebut juga dengan crawler, program tersebut yang kemudian berfungsi
untuk menyalin dokumen / informasi yang berada disalasatu sumber misal website
kepada server IR tersebut.
Selain melakukan crawling BOT tersebut juga melakukan indexing (pemberian
index atau pembaharuan index), index bersisi kata - kata (token) yang terdapat
dalam suatu web/blog, lebih simplenya ketika kita akan memposting suatu
informasi melualui blog kita selalu di minta memasukan TAG dalam artikel yang
akan kita posting, begitulah gambaran indexing dalam google, jadi index yang
berada di mesin pencari merupakan kumpulan miliyaran tag tag informasi.
Proses indexing digunakan untuk membentuk basisdata terhadap koleksi dokumen
yang dimasuk, dengan kata lain, indexing ialah proses persiapan yang dilakukan
kepada dokumen sehingga dokumen siap untuk diproses. Proses indexing sendiri
meliputi 2 proses, Term indexing dan document indexing. Hasil Term indexing
akan menghasilkan koleksi kata yang akan digunakan dalam meningkatkan
performansi pencarian pada tahapan selanjutnya.
Tahap dalam proses indexing ialah:
-Word Token, yakni mengubah dokumen menjadi kumpulan term dengan cara
menghapus semua karakter dalam tanda baca yang terdapat kepada dokumen dan
mengubah kumpulan term menjadi lowercase.
-Stopword Removal. Proses penghapusan kata-kata yang sering ditampilkan
dalam dokumen seperti: and, or, not dan sebagainya.
-Stemming. Proses mengubah suatu kata bentukan menjadi kata dasar.
Term Weighting. Proses pembobotan setiap term di dalam dokumen.
Macam-Macam metode IR
1.Inverted Index
Inverted index adalah sebuah struktur data index yang dibangun untuk
memudahkan query pencarian yang memotong tiap kata (term) yang berbeda dari
suatu daftar term dokumen. Inverted index memiliki tujuan untuk meningkatkan
kecepatan dan efisiensi dalam melakukan pencarian pada sekumpulan dokumen
dan menemukan dokumen-dokumen yang mengandung query user (CatenaCraig,
Macdonald, & Ounis, 2014).
Information need merupakan topik dimana user ingin tahu lebih jauh, sedangkan
query merupakan cara user berkomunikasi dengan komputer untuk memperoleh
informasi yang diinginkan. Oleh karena itu, agar hasil yang diperoleh memiliki
hasil yang baik dilakukan pengujian pada sistem IR. Pengujian efektifitas system
IR menggunakan dua acara yaitu precision dan recall. Precision adalah tingkat
ketepatan antara informasi yang diminta oleh pengguna dengan jawaban yang
diberikan oleh system
2.Boolean Retrieval
Boolean Retrieval merupakan proses pencarian informasi dari query yang
menggunakan ekspresi Boolean (Bucher et al., 2010). Dengan ekspresi boolean
dengan menggunakan operator logika AND, OR dan NOT. Dalam menentukan
hasil perhitungannya hanya berupa nilai binary (1 atau 0). Hasil boolean retrieval
yang ada hanya dokumen relevan atau tidak sama sekali. Sehingga keunggulan
dari boolean retrieval tidak menghasilkan dokumen yang sama.
Dalam pengerjaan operator boolean (AND, NOT, OR) ada urutan pengerjaannya
(operator precedence). Dalam implementasinya akan memprioritaskan yang
berada dalam kurung (), baru selanjutnya NOT, AND, dan OR. Boolean retrival
melakukan perbaikan karena datanya terlalu besar bila tersimpan dalam komputer,
seperti ini kita perlu memenuhi peraturannya diantaranya kecepatan dalam
pemrosesan dokumen yang sangat banyak, fleksibilitas dan perangkingan. Berikut
adalah penjelasan dari operator pada model boolean retrieval antara lain:
3.Tokenization
Tokenization adalah metode pemecah teks menjadi token-token yang berurutan.
Proses tokenization primitif biasanya hanya memecah teks dengan whitespace
sebagai pembagi, lalu mengubahnya menjadi huruf kecil supaya seragam.
Tokenisasi secara garis besar memecah sekumpulan karakter dalam suatu teks ke
dalam satuan kata, bagaimana membedakan karakter-karakter tertentu yang dapat
diperlakukan sebagai pemisah kata atau bukan. Sebagai contoh karakter
whitespace, seperti enter, tabulasi, spasi dianggap sebagai pemisah kata. Namun
untuk karakter petik tunggal (‘), titik (.), semikolon (;), titk dua (:) atau lainnya,
dapat memiliki peran yang cukup banyak sebagai pemisah kata.
5.Dictionaries
Dua kelas utama struktur data: hash dan tree. Kriteria untuk kapan menggunakan
hash vs. tree yaitu apakah ada jumlah syarat yang tetap atau apakah akan terus
bertambah?; Apa frekuensi relatif dengan berbagai tombol tersebut akan diakses?
Berapa banyak istilah yang mungkin kita miliki?. Hash digunakan untuk setiap
istilah kosakata digabungkan menjadi bilangan bulat, mencoba menghindari
tabrakan. Pada waktu permintaan, lakukan hal berikut: istilah permintaan hash,
atasi tabrakan, cari entri dalam array lebar tetap. Keuntungannya pencarian cepat
(lebih cepat daripada di search tree) dan waktu pencarian konstan. Kekurangan
hash yaitu tidak ada cara untuk menemukan varian minor (resume vs. resume),
tidak punya pencarian awalan (semua istilah dimulai dengan automat), perlu
mengulang semuanya secara berkala jika vocabulary kata tetap ada pertumbuhan.
6.Wilcard Queries
Wilcard Queries digunakan dalam salah satu situasi berikut: (1) user tidak yakin
akan ejaan istilah query, missal: Sydney vs Sidney, yang mengarah ke wildcard
query S * dney); (2) user mengetahui beberapa varian ejaan istilah dan mencari
dokumen yang berisi salah satu varian (missal: Warna vs. warna); (3) user
mencari dokumen yang berisi varian istilah yang akan ditangkap dengan proses
stemming, tetapi tidak yakin apakah mesin pencari melakukan stemming (missal:
Metode Binary
• Penjelasan metode Binary
-Binary tree merupakan struktur tree paling sederhana dan efisien untuk
melakukan pencarian. Keuntungan dari binary tree adalah dapat memecahkan
masalah awalan (istilah dimulai dengan automat). Kekurangan dari binary tree
adalah lebih lambat: O (logM) dalam balance tree (M adalah ukuran kosakata),
menyeimbangkan embali binary tree itu mahal.
1st Cycle:
(20,30,40,50,60,70)
LOW = 0
HIGH = N
MID = (LOW + HIGH)/2 = (0+6)/2 = 3
(arr[MID] == 40)
(20,30,40,50,60,70)
(50==40) // FALSE
HIGH = MID-1
*Array di mulai dari index ke 0, maka index ke 3 berisi nilai 50.
2nd Cycle:
(20,30,40,50,60,70)
MID = (LOW + HIGH)/2 = (0+2)/2 = 1
(arr[MID] == 40)
(20,30,40,50,60,70)
(30==40) // FALSE
LOW = MID+1
3rd Cycle:
(20,30,40,50,60,70)
MID = (LOW + HIGH)/2 = (2+2)/2=2
(arr[MID] == 40)
(20,30,40,50,60,70)
(40==40) // TRUE
Jika data ditemukan, maka program akan keluar dari looping. Jika kita ingin
menampilkan index dari data yang dicari, kita tinggal menyimpan index dari array
tersebut dan menampilkan nya.
Berikut ini contoh soal dari buku referensi Information Retrieval karya Manning,
dkk tentang pembuatan incident matrix dan inverted index. Jawaban soal dapat
Anda lihat di situs ini, walaupun baru bab 1 saja yang diselesaikan.
Doc 1 – breakthrough drug for schizophrenia
Doc 2 – new schizophrenia drug
Doc 3 – new approach for treatment of schizophrenia
Doc 4 – new hopes for schizophrenia patients
Perhatikan soal di atas, dimana misalnya kita memiliki empat dokumen. Dokumen
satu berisi kata breakthrough, drug, for, schizophrenia. Tentu saja ini hanya
perumpamaan, karena satu dokument tentu bisa saja hingga berjuta-juta kata.
Bagaimana cara membuat incident matrixnya? Sesuai dengan namanya, incident
matrix berarti matriks yang berisi keberadaan suatu kata dalam dokumen. Jadi kita
cari kata ‘breakthrough‘ ada di dokumen satu, ‘drug‘ di dokumen satu dan dua,
dan seterusnya.