Praktikum Modul II
Tim Dosen USD
Tujuan
Mampu mendefinisikan tugas dasar IR
Mampu mendefinisikan model IR
Mampu menyelesaikan problem IR menggunakan
Boolean Retrieval Model
Basic IR Process
Retrieval
Classical IR
Merupakan tugas yang adalah pusat dari IR
Memberikan umpan balik untuk memperbaiki kueri
Modern IR
Merupakan bagian dari “Big Picture”
Tool yang penting
Digunakan dalam search, filtering, and browsing
Kueri User
Tujuan pencarian
Memprediksi dokumen yang relevan dengan kebutuhan
user
Rank-ing dokumen sesuai dengan urutan kemungkinan
tingkat relevansi
Diperlukan model yang mampu menangani :
Dokumen
Kueri
Fungsi ranking
Apa
itu Retrieval Model
Model adalah abstraksi dari proses real / nyata.
?
Model matematika digunakan untuk mempelajari sifat proses, membuat
kesimpulan, membuat prediksi.
Kualitas hasil tergantung pada seberapa dekat model dapat
merepresentasikan realitas.
Model statistik menyatakan proses perulangan, membuat prediksi tentang
frekuensi kejadian, menggunakan probabilitas sebagai tool mendasar.
Retrieval model dapat mendeskripsikan proses komputasi
Contoh : bagaimana dokumen diranking ?
Catatan: Bagaimana dokumen atau indeks disimpan adalah bagian dari
implementasi
Retrieval model dapat mendeskripsikan proses yang terjadi
pada manusia
Contoh : kebutuhan informasi seseorang, interaksi
Variabel retrieval : kueri, dokumen, kata, relevance judgement,
user, kebutuhan informasi
Model Retrieval
Suatu model retrieval berisi detail :
Representasi dokumen
Representasi Query
Fungsi Retrieval
Fungsi Ranking
Menentukan makna relevan
Makna relevan bisa biner atau kontinu (mis. Ranked
retrieval)
Retrieval Models:
Exact Match vs. Best Match Retrieval
Exact match
Kueri mempunyai kriteria pemerolehan yang tepat.
Setiap dokumen sesuai atau tidak dengan kueri yang
diberikan.
Hasil berupa sekumpulan dokumen.
Biasanya tidak dalam urutan tingkat relevan
Best match
Kueri mendeskripsikan kriteria pencarian untuk
pemerolehan dokumen yang paling cocok.
Setiap dokumen memiliki tingkat kesesuaian/kecocokan
dengan kueri.
Hasil berupa daftar dokumen dalam urutan ranking,
biasanya yang terbaik adalah yang paling awal.
+ / - Exact Match
Kelebihan
Efisien dalam implementasi
Dapat diprediksi, mudah untuk dijelaskan
Kueri terstruktur yang merujuk ke dokumen yang tepat
Bekerja dengan baik jika mengetahui secara tepat /
hampir tepat isi dari dokumen
Kekurangan
Formula kueri sulit untuk user kebanyakan
Kesulitan bertambah seiring dengan bertambahnya
jumlah dokumen
Perbendaraan kata pada indeks sama dengan
perbendaharaankata pada query
Ketepatan yang ada biasanya berarti tidak menghasilkan
perolehan yang baik
+ / - Best Match
Kelebihan
Hasil lebih akurat / efektif
Ketidakpastian adalah model yang lebih baik daripada
kepastian
Lebih mudah digunakan (mendukung query teks utuh)
Efisiensi yang sama (berdasarkan pada implementasi
inverted file)
Kekurangan
Lebih sulit untuk mengikuti model kognitif yang sesuai
Teks utuh tidak berarti mengerti bahasa alami
Efisiensi selalu kurang daripada pencocokan secara tepat
(tidak dapat menolak dokumen lebih awal)
Dokumen sering tidak tepat dengan kueri
Kueri terlalu strict
Dokumen tidak sesuai dengan harapan user
IR Model
Retrieval Browsing
Classic Model Flat
Boolean Structure
Fuzzy Guided
Extended boolean model
Hypertext
Vector
Basic vector space
Latent semantic indexing (LSI)
Neural Network
Probabilistik
Basic probabilistic model
Bayesian inference
Belief Network
IR Model
Retrieval Browsing
Structured Model
Non-Overlapping Lists
Proximal Nodes
Citation analysis models
Hubs & authorities
PageRank
Usage analysis models
Direct Hit
Ranking SVM
Boolean Retrieval Model
Dokumen direpresentasikan sebagai kumpulan
kata kunci.
Kata kunci dinyatakan sebagai 1(ada) atau 0(tidak ada)
Kueri merupakan ekspresi Boolean dari kata
kunci dan memiliki operator AND, OR, dan NOT.
Fungsi berupa aljabar boolean dari sekumpulan
kata kunci dan dokumen.
Output: Dokumen relevan atau tidak. Tidak ada
ranking.
Kueri Boolean
restaurants AND (Mideastern OR vegetarian) AND inexpensive
dinner AND sports AND symphony
4 OF (Pentium, printer, cache, PC, monitor, computer, personal)
Menggunakan kata.
Menggunakan AND, OR, NOT, dan tanda kurung.
Boolean Retrieval
Dalam satu dokumen, set kata-kata menjadi 1 jika ada
dan 0 jika tidak ada dalam dokumen.
Kombinasikan kemunculan kata dengan operator
Boolean berdasarkan kueri.
Hasil adalah dokumen yang bernilai 1.
Kemunculan Kata Dalam Dokumen
Antony and Cleopatra Julius Caesar The Tempest Hamlet Othello Macbeth
Antony 1 1 0 0 0 1
Brutus 1 1 0 1 0 0
Caesar 1 1 0 1 1 1
Calpurnia 0 1 0 0 0 0
Cleopatra 1 0 0 0 0 0
mercy 1 0 1 1 1 1
worser 1 0 1 1 1 0
1 jika berisi data,
Brutus AND Caesar but NOT Calpurnia
dan 0 jika tidak.
Vektor Kemunculan
Untuk setiap kata, dipunyai nilai 0 atau 1.
Untuk menjawab kueri, ambil nilai untuk Brutus,
Caesar dan Calpurnia.
110100 AND 110111 AND 101111 = 100100.
Jawaban Kueri
Antony and Cleopatra, Act III,
Scene ii
Agrippa [Aside to DOMITIUS ENOBARBUS]: Why, Enobarbus,
When Antony found Julius Caesar dead,
He cried almost to roaring; and he wept
When at Philippi he found Brutus slain.
Hamlet, Act III, Scene ii
Lord Polonius: I did enact Julius Caesar I was killed i' the
Capitol; Brutus killed me.
Contoh Retrieval
Latihan 1
D1 = “computer information retrieval”
D2 = “computer retrieval”
D3 = “information”
D4 = “computer information”
Q1 = “information retrieval”
Q2 = “information ¬computer”
Latihan 2 0
1 Swift
2 Shakespeare
3 Shakespeare Swift
4 Milton
5 Milton Swift
6 Milton Shakespeare
7 Milton Shakespeare Swift
8 Chaucer
9 Chaucer Swift
10 Chaucer Shakespeare
11 Chaucer Shakespeare Swift
12 Chaucer Milton
13 Chaucer Milton Swift
14 Chaucer Milton Shakespeare
15 Chaucer Milton Shakespeare Swift
((chaucer OR milton) AND (NOT swift)) OR ((NOT chaucer) AND (swift OR shakespeare))
Mengapa Boolean Retrieval Berhasil ?
Kueri sederhana, mudah dimengerti
Relatif mudah untuk diimplementasikan
Operator Boolean bisa mendekati natural language
Cari dokumen tentang a good party that is not over
AND dapat menemukan hubungan antara konsep
good party
OR dapat menemukan terminologi alternatif
excellent party
NOT dapat menemukan arti alternatif
Democratic party
Mengapa Boolean Retrieval
Gagal ?
Natural language sangat kompleks
She saw the man on the hill with a telescope
AND “menemukan” hubungan yang tidak ada
Kata-kata di paragraf yang berbeda, bab, …
Menebak terminologi OR sangat sukar
good, nice, excellent, outstanding, awesome, …
Menebak kata-kata yang tidak termasuk topik
bahkan lebih sukar!
Democratic party, …
Boolean Models Problem
Sulit jika permintaan user kompleks.
Kadang memilih kata yang tepat sangat sukar
Sangat kaku : AND berarti semua; OR berarti
beberapa.
Kadang-kadang menemukan hubungan yang tidak
ada
Sulit untuk mengontrol jumlah dokumen yang ter-
retrieve.
Semua dokumen yang sesuai akan di -return.
Sering menghasilkan terlalu banyak dokumen
Boolean Models Problem
Sulit untuk menampilkan hasil output secara terurut.
Semua dokumen yang sesuai secara logikal dianggap
cocok dengan kueri.
Sulit untuk membuat relevance feedback.
Jika dokumen dianggap relevan atau tidak relevan,
bagaimana kueri dapat dimodifikasi ?
Operator Proximity
Boolean retrieval dapat diperluas dengan memperhatikan
kedekatan kemunculan kata query dalam dokumen.
Versi lebih tepat dari AND
“NEAR n” membolehkan paling banyak n-1 kata diantaranya
“WITH” mengharuskan kata-kata bersebelahan dan berurutan
Mudah di-implementasikan, tetapi kurang efisien
Simpan daftar posisi untuk setiap kata di tiap dokumen
Stopwords menjadi sangat penting!
Lakukan komputasi Boolean biasa
Perlakukan WITH dan NEAR seperti AND dengan suatu syarat
tambahan.
Contoh Menggunakan Proximity
Membangun Index
Pada slide sebelum menggunakan matrix untuk
melakukan retrieval dan kata yang ada pada query.
Jika kata dan dokumen yang digunakan banyak, maka
akan menghasilkan matrix dengan ukuran besar. Hal
ini membutuhkan proses komputasi yang lama.
Dibuatlah Inverted Index
Inverted index
Untuk setiap kata T, harus disimpan daftar semua
dokumen yang berisi T.
Apa yang kita gunakan ? array atau list ?
Brutus 2 4 8 16 32 64 128
Calpurnia 1 2 3 5 8 13 21 34
Caesar 13 16
Bagaimana jika kata Caesar ditambahkan
ke dokumen 14?
Inverted index
Linked list biasanya lebih disukai daripada array
Alokasi ruang dinamis
Penyisipan kata kedalam dokumen lebih mudah
Posting
Brutus 2 4 8 16 32 64 128
Calpurnia 1 2 3 5 8 13 21 34
Caesar 13 16
Dictionary Postings lists
Diurutkan berdasar docID.
Dokumen yang Friends, Romans, countrymen.
Akan di indeks.
Tokenizer
Token stream. Friends Romans Countrymen
Linguistic modules
Modified tokens. friend roman countryman
Indexer friend 2 4
roman 1 2
Inverted index.
countryman 13 16
Term Doc #
Langkah Indeks
I 1
did 1
enact 1
julius 1
Sederetan pasangan (Modified token, caesar 1
I 1
Document ID). was
killed
1
1
i' 1
the 1
capitol 1
brutus 1
killed 1
me 1
Doc 1 Doc 2 so
let
2
2
it 2
be 2
I did enact Julius So let it be with
with
caesar
2
2
Caesar I was killed Caesar. The noble
the
noble
2
2
i' the Capitol; Brutus hath told you
brutus
hath
2
2
told 2
Brutus killed me. Caesar was ambitious you 2
caesar 2
was 2
ambitious 2
Term Doc # Term Doc #
Urutkan berdasar kata. I
did
enact
1
1
1
ambitious
be
brutus
2
2
1
julius 1 brutus 2
caesar 1 capitol 1
I 1 caesar 1
was 1 caesar 2
killed 1 caesar 2
i' 1 did 1
the 1 enact 1
Core indexing step. capitol
brutus
1
1
hath
I
1
1
killed 1 I 1
me 1 i' 1
so 2 it 2
let 2 julius 1
it 2 killed 1
be 2 killed 1
with 2 let 2
caesar 2 me 1
the 2 noble 2
noble 2 so 2
brutus 2 the 1
hath 2 the 2
told 2 told 2
you 2 you 2
caesar 2 was 1
was 2 was 2
ambitious 2 with 2
Sec. 1.2
Kata yang sama dalam
satu dokumen
digabung.
Frekuensi ditambahkan
Pisahkan dalam kamus
dan Posting
Tambahkan informasi
frekuensi dok.
Setelah Indeks Dibuat …
Bagaimana memproses kueri ?
Setelah itu – Jenis kueri seperti apa yang dapat
diproses ?
Proses Kueri : AND
Proses kueri Brutus AND Caesar
Ambil lokasi Brutus dalam kamus;
Dapatkan dalam posting.
Ambil lokasi Caesar dalam kamus;
Dapatkan dalam postings.
Gabung 2 posting :
2 4 8 16 32 64 128 Brutus
1 2 3 5 8 13 21 34 Caesar
Gabung Posting
Lakukan sepanjang 2 posting secara linear
2 4 8 16 32 64 128 Brutus
2 8
1 2 3 5 8 13 21 34 Caesar
Jika panjang list x dan y, operasi menggabung
membutuhkan O(x+y)
Penting: postings diurutkan berdasar docID.
Optimisasi Kueri
Urutan manakah yang terbaik dalam memproses kueri
?
Cari kueri yang merupakan AND dari t kata-kata.
Untuk setiap t kata, cari postings, kemudian lakukan
AND bersama-sama.
Brutus 2 4 8 16 32 64 128
Calpurnia 1 2 3 5 8 16 21 34
Caesar 13 16
Kueri: Brutus AND Calpurnia AND Caesar
Contoh Optimisasi Kueri
Proses dengan urutan frek naik :
Mulai dengan himpunan terkecil.
This is why we kept
freq in dictionary
Brutus 2 4 8 16 32 64 128
Calpurnia 1 2 3 5 8 13 21 34
Caesar 13 16
Jalankan kueri (Caesar AND Brutus) AND Calpurnia.
Latihan (1)
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
a. Buat matrik untuk 4 dokumen tsb.
b. Buat inverted index untuk koleksi tsb.
Latihan (2)
Lakukan retrieval untuk query :
a. schizophrenia AND drug
b. for AND NOT(drug OR approach)