Model Perolehan Informasi Temu Kembali Informasi Model Perolehan Informasi
Outline Model Model Boolean Model Ruang Vektor (Vector Space Model)
Model Merupakan contoh atau acuan dari sesuatu yang akan dibuat atau dihasilkan Contoh: gambar rancangan bangunan yang dibuat oleh seorang arsitek untuk selanjutnya dijadikan bangunan yang sesungguhnya Model lebih sederhana dari kondisi aslinya Dalam Temu Kembali Informasi dokumen teks, contoh model perolehan informasi antara lain: Model Boolean Model Ruang Vektor
Fungsi Model Perolehan Informasi Model adalah suatu abstraksi dari proses yang sesungguhnya Fungsi pembuatan model dalam matematika adalah untuk mempelajari suatu proses, pengambilan kesimpulan, dan membuat suatu prediksi
Model Perolehan Informasi Set Theoretic + Fuzzy + Extended Boolean Model Klasik + Boolean + Vector + Probabilistic Algebraic + Generalized Vector + Latent Semantic Index + Neural Network Perolehan Probabilistic + Inference Network + Belief Network Browsing Browsing + Browsing + Structured Guided + Hypertext
Proses Pada Model Perolehan Informasi Representasi dokumen Representasi query Fungsi perolehan (retrieval)
Representasi Dokumen Isi dokumen direpresentasikan dan disimpan menggunakan indeks (index) Pengindeksan teks adalah proses yang memutuskan apa yang akan digunakan untuk merepresentasikan dokumen tertentu Indeks berisi kata dan dokumen mana kata tsb. dimuat disebut inverted index
Jenis Indeks pada Perolehan Informasi Manual Indeks ditentukan secara manual oleh manusia berdasarkan suatu perbendaharaan kata yang sudah ditentukan Pencarian informasi menggunakan daftar perbendaharaan kata yang sama Ketepatannya sangat tinggi Biaya mahal dan proses pembuatannya lama Indeks adalah mekanisme dalam pengorganisasian atau model penyimpanan berkas untuk meningkatkan unjuk kerja system (system performance)
Jenis Indeks Perolehan Informasi Otomatis Indeks berisi kata-kata yang ada pada dokumen, struktur indeks seperti ini disebut sebagai Inverted Index Kata-kata yang terdapat pada dokumen menggambarkan isi dari suatu dokumen Pencarian dapat menggunakan Bahasa Alami (tidak memiliki aturan kaku) Ketepatan pada perolehan dokumen ditentukan oleh bobot kata pada dokumen Biaya murah dan proses pembuatannya cepat
Tahapan Pengindeksan Cleaning Normalisasi & Tokenisasi Case Folding Buang stopwords Stemming Pembobotan Kata Pembuatan Indeks
Cleaning Lihat struktur dokumen Hilangkan karakter yang tidak penting Parsing sesuai format dokumen: DOC/DOCX, PDF, Latex, TXT, XML Encoding: ANSI, Unicode UTF-8 Hilangkan karakter yang tidak penting Kalau dari web: HTML, Javascript, CSS tags, dll Tanda baca, karakter khusus Huruf besar Nomor
Normalisasi & Tokenisasi Ubah aksen dan diakritik ke latin biasa: résumé vs. resume Tuebingen vs. Tübingen 7月30日vs 7/30 Makna bisa berubah dalam beberapa bahasa: peña = cliff, pena = sorrow (Spanyol) Query dan dokumen perlu dinormalisasi ke bentuk yang sama
Normalisasi & Tokenisasi Setelah ditokenisasi apa yang disimpan? Indeks berdasarkan kata dan kata hasil stemming Indeks juga bisa berupa frase (n-word, n-gram) Bi-word, bigram (dua kata): New York, San Fransisco, orang tua, sekolah dasar Tri-word, trigram (tiga kata): Yang Maha Esa, sekolah menengah atas dst. Temu kembali biasanya menggunakan frase
Normalisasi & Tokenisasi Cara menemukan frase? Metode statistik: cari frekuensi yang paling sering muncul bersama-sama dengan threshold n kali Metode sintaksis: sesuai definisi pada kamus, menggunakan Part-of-Speech tagger (biasanya untuk nomina)
Pembuangan Stopwords Kata yang masuk dalam stopword list dihilangkan (tidak disimpan dalam indeks) Hati-hati saat menghilangkan kata yang merupakan bagian dari frase: Yang Maha Kuasa, Vitamin A, gerbang dan-atau (and-or gate) Kata “yang”, “A”, “dan”, “atau“ termasuk stopwords!
Stemming Digunakan untuk mencari partial matching dan kata yang tidak berimbuhan/memiliki imbuhan yang berbeda Stem: kata dasar yang didapat setelah imbuhan dihilangkan Misalnya: connect: connection, connectivity, connects, connecting, Algoritma stemming bahasa Inggris: Porter, Lovins, dll.
Pembobotan Kata Kata apa yang baik untuk diindeks? Kata apa yang kira-kira digunakan untuk query? Kata apa yang kira-kira merepresentasikan isi dokumen? Kata yang penting seharusnya bobotnya lebih tinggi daripada kata tidak penting Salah satu pembobotan kata memanfaatkan frekuensi dalam dokumen dan korpus Hati-hati frekuensi tinggi tapi ternyata stopword
Pembobotan Kata Pembobotan kata: TF TF.IDF Term Discrimination Model Term Frequency makin sering muncul makin penting TF.IDF Term Discrimination Model Language Model BM25 2 Poisson Model
Pembuatan Inverted Index Inverted Index kata berisi daftar dokumen yang memuatnya Struktur inverted index berisi: Dictionary/Vocabulary/Term (perbendaharaan kata/istilah) Himpunan semua kata unik yang muncul dalam korpus Occurences (kemunculan)/Posting List (daftar dokumen) Daftar informasi kemunculan vocab/term yang harus disimpan: dokumen apa, frekuensinya berapa, posisi kata, dll.
Pembuatan Inverted Index enjoy 1 … music 2 library 3 book Term Doc. list DOC 1 Enjoy your music experience DOC 2 Sync your music library with ease DOC 3 Book library consists million of books
Pembuatan Inverted Index Term Doc ID enjoy 1 your music experience sync 2 library with ease book 3 new consists milllion of books and recordings DOC 1 Enjoy your music experience DOC 2 Sync your music library with ease DOC 3 New library consists million of books and music recordings
Pembuatan Inverted Index Term Doc ID enjoy 1 your music experience sync 2 library with ease book 3 new consists milllion of books and recordings Term Doc ID and 3 book books consists ease 2 enjoy 1 experience library milllion music new of recording sync with your Term Doc ID book 3 consist ease 2 enjoy 1 experience library milllion music recording sync Urutkan (bila perlu) Stemming Hapus stopword
Pembuatan Inverted Index Posting List Term Doc Freq Total Term Freq book 1 2 consist ease enjoy experience library milllion music 3 recording sync Term Doc ID book 3 consist ease 2 enjoy 1 experience library milllion music recording sync Doc ID Term Frek 3 2 1 Gabung Frekuensi & Banyak Dok Kemunculan
Struktur Data Inverted Index Dictionary/Vocab bisa disimpan dalam memory Vocab yang sangat besar perlu disimpan dalam berkas (misal triliunan kata) Posting List simpan dalam berkas Posting list berukuran kecil cukup disimpan dalam memory Struktur data: Vocab: hash, tree (binary, trie, B-tree) dictionary/hash table hampir O(1), binary tree O(log M) Posting List Linked list Variable length array (dynamic array) Hybrid: linked list dengan variable length array Large scale, distributed, big data? BSBI/SPIMI, MapReduce
Extending Inverted Index Inverted index terkadang tidak cukup hanya menyimpan Doc ID di Posting List Dua cara untuk mengembangkan inverted index Biword index Positional index
Penelusuran/Temu Kembali Query: music library DOC 2 Sync your music library with ease music 1 2 3 … DOC 3 New library consists million of books and music recordings library 2 3 …
Model Boolean (Boolean Retrieval Model)
Definisi Definisi umum Definisi dalam IR Boolean adalah tipe data yang hanya mengenal nilai 1 atau 0, benar atau salah. Dalam sistem logika Boolean terdapat beberapa operator yang dapat digunakan yaitu AND, OR, dan NOT Definisi dalam IR Salah satu pemodelan dalam IR di mana pada prosesnya kata-kata atau term dikombinasikan dengan operator Boolean seperti AND, OR dan NOT untuk menghasilkan sekumpulan dokumen
Operator Boolean AND, OR, & NOT
Sifat Model Boolean Salah satu model pencocokan antara query dengan kumpulan dokumen secara tepat (exact match) dengan ekspresi Boolean Hasil query memiliki kriteria perolehan yang tepat (apabila tidak sesuai dengan logika Boolean, maka dokumen dianggap tidak cocok) Hanya ada dua kondisi yang dimiliki oleh dokumen sebagai hasil pencarian, yaitu cocok dan tidak cocok Hasil query tidak memiliki urutan kesesuaian
Sifat Model Boolean Hanya menggunakan operator Boolean : AND, OR, dan NOT kebanyakan sistem memiliki operator proximity Tidak ada hasil pencarian selain relevan atau tidak relevan Tidak mempertimbangkan unsur “mirip” dalam pencarian Dalam pengerjaan operator Boolean terdapat urutan (operator precedence), yaitu: () NOT AND OR
Operator Proximity Operator-operator proximity merupakan pengembangan dari operator Boolean yang sudah ada. Versi lebih tepat dari AND “NEAR n” memperbolehkan paling banyak n-1 kata disela- selanya “WITH” mengharuskan kata-kata bersebelahan dan berurutan
Contoh Query Boolean (Madding OR crow) AND killed OR slain (Brutus OR Caesar) AND NOT (Antony OR Cleopatra) Bagaimanakah hasil pencarian dengan query seperti di atas? kata operator kata Kata dasar dan frasa AND, OR, dan NOT
Incidence Matrix Membutuhkan pencarian pada terdapat banyak dokumen (ribuan) Kecepatan dalam pemrosesan dokumen Fleksibilitas Pemeringkatan Dapat dilakukan pembuatan index dari dokumen Incidence matrix adalah suatu matrix yang terdiri dari kolom (dokumen) dan baris (token/term/kata).
Incidence Matrix (lanjutan) Token/Term/Kata pada baris adalah semua token unik (distinct) dalam seluruh dokumen yang ada Saat suatu token(t) ada dalam dokumen(d), maka nilai dari baris dan kolom (t,d) adalah 1. Jika tidak ditemukan, maka nilai kolom (t,d) adalah 0. Dari sudut pandang kolom, kita bisa tahu token apa saja yang ada di satu dokumen (d). Dari sudut pandang barisnya, kita bisa tahu di dokumen mana saja token (t) ada (posting lists).
Contoh Model Boolean Incidence Matrix DOKUMEN 1 Laga final Piala Presiden sempat diwarnai kericuhan suporter yang tak kantongi tiket. Polisi terpaksa menembakkan gas air mata Kata Dokumen 1 Dokumen 2 air 1 curanmor final gas kantong komplot laga lintas mata paksa piala polisi presiden provinsi ricuh sempat senpi suporter tangkap tembak tiket warna Daftar stopword yang tak Query Boolean polisi AND final polisi OR curanmor DOKUMEN 2 Polisi Tangkap Komplotan Curanmor Bersenpi Lintas Provinsi Query Proximity piala WITH presiden polisi (NEAR 2) tembak
Kelebihan Model Boolean Query sederhana, mudah dimengerti Relatif mudah untuk diimplementasikan Keunggulan masing-masing operator Boolean: AND: menemukan hubungan antar konsep OR: menemukan terminologi alternatif NOT: menemukan anti alternatif Sangat cocok untuk user yang sudah paham tentang kebutuhan pencarian mereka Menghemat waktu pencarian dokumen dalam search engine
Kekurangan Model Boolean Apabila menggunakan bahasa alami menjadi sangat kompleks, pengguna akan kesulitan menuliskan Sering menghasilkan terlalu banyak dokumen Semua dokumen yang cocok akan muncul Dokumen tidak ada urutan, sehingga kurang jelas mana yang lebih mendekati query Sukar mengekspresikan query yang rumit Perbendaharaan kata pada query harus sama dengan yang ada pada indeks
Kekurangan Incidence Matrix Awal mula model Boolean menggunakan incidence matrix Masalah: Ukurannya besar 1000 token tiap 106 dok = 109 x avg. 6 bytes/token = 6GB Bila ada kata unik 500.000 x 106 = 5 triliun Berupa sparse matrix, berisi 0 dan 1 dari contoh di atas, 5 triliun hanya berisi 0 dan 1 Representasi lebih baik: simpan yang muncul saja Gunakan Inverted Index
Model Ruang Vektor (Vector Space Model)
Definisi Definisi umum Definisi khusus Model pencarian informasi dari query menggunakan ekspresi kemiripan berdasarkan frekuensi kata pada dokumen Ekspresi ruang vektor berupa faktor kemiripan dari kumpulan nilai frekuensi kemunculan kata dalam korpus yang membutuk matrik vector Definisi khusus Pemodelan dokumen dalam STKI yang mampu mempertimbangkan kemiripan dokumen dengan query pencarian Hasil kemiripan dapat berupa binary (1 atau 0) maupun nilai kontinyu diantara keduanya [0,1]
Model Boolean vs Vektor Ruang Boolean : Setiap dokumen direpresentasikan dengan binary vector ∈ {0,1} Kata Dok. 1 Dok. 2 Dok. 3 Dok. 4 Dok. 5 Dok. 6 Antony 1 Brutus Caesar Calpurnia Cleopatra mercy worser Vector : Setiap dokumen dibentuk dalam jumlah real vector ∈ ℕ Kata Dok. 1 Dok. 2 Dok. 3 Dok. 4 Dok. 5 Dok. 6 Antony 157 73 Brutus 4 1 Caesar 232 227 2 Calpurnia 10 Cleopatra 57 mercy 3 5 worser
Sifat Model Vektor Ruang Pencocokan antara query dengan kumpulan dokumen dengan memilih yang terbaik (best match) Query mendeskripsikan dokumen yang paling sesuai Hasil pencarian berupa kumpulan dokumen yang diurutkan, urutan paling tinggi merupakan hasil pencarian terbaik Hasil perolehan dokumen memberi petunjuk mengenai kualitas dokumen
Kelebihan Lebih efektif daripada pencocokan excact match Lebih mudah digunakan, pengguna tidak perlu memikirkan logika dan operator
Kekurangan Kurang efisien dibandngkan dengan pencocokan secara tepat (exact match) karena tidak dapat mengeliminasi/menolak dokumen lebih awal Teks yang utuh tidak berarti dengan mudah dipahami oleh sistem
Pemodelan vector ruang (d) dokumen, t (term) Model Vektor Ruang Dokumen, query, kata merupakan vector pada ruang berdimensi tinggi Postulate: Dokumen yang saling “berdekatan” pada dimensi vector ruang memiliki isi yang sama Pemodelan vector ruang (d) dokumen, t (term)
Representasi dokumen & query Dokumen & query direpresentasikan sebagai jumlah dari vektor-vector katanya Anjing kucing Dok 1 Anjing Query (Q)
Model Vektor Ruang Query (teks bebas) sebagai vektor: Query dapat dianggap sebagai sebuah dokumen pendek Dokumen diurutkan sesuai dengan kedekatan antara vector dokumen dan vector query
Koefisien Vektor Koefisien (elemen vector, bobot kata) merepresentasikan tingkat kepentingan dari suatu kata Pada model tidak terdapat petunjuk mengenai cara memberi bobot kata Beberapa pilihan bobot kata: Biner : nilai 1 jika ada, nilai 0 jika tidak ada TF: Frekuensi jumlah kata pada suatu dokumen TF * IDF: IDF mengindikasikan seberapa unik/berbeda terhadap kemunculan kata pada kumpulan dokumen
Vector Space Similarity Query ditunjukan oleh panah berwarna merah Masing-masing dokumen (Doc1 & Doc2) dihitung jaraknya dengan Query Jarak antara Doc1 vs Query dan Doc2 vs Query diurutkan mulai terdekat hingga terjauh Jarak yang paling dekat itulah yang digunakan sebagai hasil pencarian
Jarak antar vektor Cosine Similarity Jarak antara vector (dokumen & query) merupakan kosinus (cosine) dari sudut x diantara kedua vektor
Rumus Cosine Similarity Kosinus dari sudut antara dua vektor