Sistem Temu Balik Informasi 2011
Temu-Balik Boolean
Pemrolehan-Kembali Informasi
Information Retrieval
(IR)
Pencarian
material (biasanya dokumen) dari
suatu yang
tak-terstruktur
(biasanya teks)
yang
memenuhi kebutuhan
informasi
dari dalam
koleksi
yang
besar
(biasanya
disimpan pada komputer).
Data Tak-Terstruktur (text) vs.
Terstruktur (database), 2009
http://www.internetworldstats.com/images/world2010pie.png
Data Tak-Terstruktur, 1680
Buku mana dalam koleksi Shakespeare yang berisi kata
Brutus AND Caesar
tetapiNOT Calpurnia
? Meng-grep semua buku yang mengandung Brutus dan
Caesar, kemudian mengeluarkan yang mengandung
Calpurnia?!!!
Mengapa itu bukan jawaban?
Hubungan Term-document
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 buku mengandung
kata, 0 jika tidak
Brutus AND Caesar
TETAPI NOT Calpurnia
Vektor Hubungan
Diperoleh vektor 0/1 untuk setiap term
Untuk menjawab query: Ambil vektor untuk Brutus, Caesar dan Calpurnia (dikomplemenkan)
bitwise AND.
110100
AND
110111
AND
101111
=
100100
.Jawaban Terhadap Query
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.
10
Asumsi Dasar dari IR
Koleksi
(Corpus
): Himpunan tetap (fix)
dokumen
Goal (
Tujuan
): Retrieve (temukan kembali)
dokumen-dokumen dengan informasi yang
relevan dengan kebutuhan informasi
pengguna dan bantu pengguna menyelesaikan
suatu tugas.
Model Pencarian Klasik
Corpus TASK Info Need Query Verbal form Results SEARCH ENGINE Query RefinementSingkirkan tikus dengan cara yang benar secara politis
Info tentang menghilangkan tikus tanpa membunuhnya
Bagaimana menangkap tikus?
Menangkap tikus Misconception?
Mistranslation?
Baguskah Dokumen yang di
RETRIEVE
?
Precision
(Presisi): Prosentase dari dokumen yang diperoleh yang relevan dengan kebutuhan informasi pengguna
Recall
: Prosentase dari dokumen yang relevan dalam koleksi (himpunan) yang diretrieveKoleksi Lebih Besar
Misal N = 1 juta dokumen, masing-masing sekitar 1000 kata.
Rata-rata 6 byte per kata termasuk spasi atau tanda baca
6 GB data dalam koleksi dokumen.
Katakanlah ada M = 500 Ribu term berbeda di antaranya.
14
Tidak dapat Membangun Matriks
Matrisk 500 Ribu x 1 Juta terdiri dari
setengah trilyun 0 dan 1.
Tetapi tidak terdiri lebih dari se-milyar 1.
Matriks sangat jarang (banyak kosongnya).
Bagaimana representasi yang baik?
Hanya rekam posisi bernilai 1.
Inverted index
Untuk setiap term t, simpan daftar semua dokumen yang mengandung t.
Identifikasi berdasarkan docID, nomor seri dokumen Menggunakan array berukuran tetap?
16 Brutus Calpurnia Caesar 1 2 4 5 6 16 57 132 1 2 4 11 31 45 173 2 31
Bagaimana jika kata Caesar
ditambahkan ke dalam dokumen 14?
Sec. 1.2
174
Inverted index
...perlu daftar posting berukuran variable
Pada disk, bersifat kontinu: normal dan terbaik
Dalam memory, gunakan linked lists atau array berukuran variable
Tarik-ulur dalam ukuran & kemudahan penyisipan DocId
Brutus
Caesar 1 2 4 5 6 16 57 132
Tokenizer
Aliran token Friends Romans Countrymen
Konstruksi Inverted Index
Modul Linguistik (Bahasa)
Token Baru friend roman countryman
Indexer Inverted index friend roman countryman 2 4 2 13 16 1 Dibahas kemudian Dokumen awal
(akan diindex) Friends, Romans, countrymen.
deretan token
Deretan pasangan (Token baru, Doc-ID)
I did enact Julius Doc 1
So let it be with Doc 2
Tahapan Indexer :
Urutkan!
Urutkan berdasarkan term
Kemudian berdasarkan docID
Langkah Indexing Utama
Tahapan Indexer : Dictionary & Posting
Banyak entri term dalam satu dokumen digabungkan. Bagi ke dalam Dictionary dan Posting Tambahkan informasi frekuensi dokumen.
Biaya Penyimpanan?
22 Pointer Term & Jumlah posting Dibahas nanti: •Bagaimana meng-index dengan efisien? •Berapa kapasitas simpan yang dibutuhkan? Sec. 1.2 Daftar doc-IDIndex yang baru dibangun
Bagaimana memroses suatu query?
Kemudian – jenis query apa yang dapat diproses?
Fokus Kini
Pemrosesan Query: AND
Perhatikan pemrosesan query:
Brutus AND Caesar
Temukan Brutus dalam Dictionary;
Ambil posting-nya.
Temukan Caesar dalam Dictionary;
Ambil posting-nya.
Temukan irisan dari kedua posting tersebut:
24 128 34 2 4 8 16 32 64 1 2 3 5 8 13 21 Brutus Caesar Sec. 1.3
Gabungan atau Irisannya
Periksa kedua postingan, temukan yang sama posting-nya.
Jumlah waktu linier dengan jumlah posting
34 128 2 4 8 16 32 64 1 2 3 5 8 13 21 128 34 2 4 8 16 32 64 1 2 3 5 8 13 21 Brutus Caesar 2 8
Perpotongan dua posting list
(Algoritma “merge”)
Query Boolean: Kecocokan Pasti
Model Retrieval Boolean mampu menangani query berwujud ekspresi Boolean:
Query Boolean: query menggunakan AND, OR dan NOT untuk menyatukan term-term query.
Melihat setiap dokumen sebagai himpunan kata
Tepatkah: Dokumen sesuai kondisi atau TIDAK.
Model paling sederhana untuk membangun sistem IR
Contoh: www.westlaw.com
Layanan pencarian legal komersial (anggota berbayar) paling besar (dimulai 1975; ranking ditambahkan pada 1992)
Puluhan terabyte data; 700.000 pengguna
Mayoritas pengguna masih menggunakan query boolean
Contoh query:
What is the statute of limitations in cases involving the federal tort claims act?
LIMIT! /3 STATUTE ACTION /S FEDERAL /2 TORT /3 CLAIM
! = wildcard, /3 = dalam 3 kata, /S = dalam kalimat sama
28
Contoh: www.westlaw.com
Contoh query lain:
Kebutuhan bagi penyandang cacat agar dapat mengakses tempat kerja
disabl! /p access! /s work-site work-place (employment /3 place)
SPACE : disjungsi, bukan konjungsi!
Query panjang (tepat); operator kedekatan;
Query Boolean: Merge Lebih Umum
Latihan: Sesuaikan gabungan untuk query:
Brutus AND NOT Caesar Brutus OR NOT Caesar
Masihkah proses “merge” memerlukan waktu O(x+y)?
Apa yang dapat dicapai?
30
Penggabungan
Bagaimana dengan formula Boolean yang berubah-ubah?
(Brutus OR Caesar) AND NOT (Antony OR Cleopatra)
Dapatkah selalu di”merge” dalam waktu “linier”?
Linier dalam apa?
Optimisasi Query
Bagaimana urutan terbaik untuk pemrosesan query?
Pertimbangkan query berupa suatu AND dari n term.
Untuk setiap n term, dapatkan postingnya, kemudian AND-kan bersama-sama. Brutus Caesar Calpurnia 1 2 3 5 8 16 21 34 2 4 8 16 32 64 128 13 16
Query: Brutus AND Calpurnia AND Caesar
32
Contoh Optimisasi Query
Proses dalam urutan frekuensi menaik:
Mulai dengan set paling kecil, kemudian dilanjutkan ke depan.
Inilah mengapa menyimpan frekuensi dokumen dalam dictionary
Brutus
Caesar 1 2 3 5 8 16 21 34
Optimisasi Lebih Umum
Misal:
(madding OR crowd) AND (ignoble OR strife)
Dapatkan frekuensi dokumen untuk semua term.
Estimasi ukuran setiap OR dengan menjumlahkan frekuensi dokumenya (konservatif).
Proses dalam urutan naik dari ukuran OR
34
Tuliskan urutan pemrosesan query untuk: Term Freq eyes 213312 kaleidoscope 87009 marmalade 107913 (tangerine OR trees) AND (marmalade OR skies) AND
Latihan Pemrosesan Query
Latihan: Jika query adalah friends AND romans AND (NOT countrymen), bagaimana jika menggunakan frekuensi countrymen?
Latihan : Perluas gabungan menjadi query Boolean tertentu. Dapatkah kita selalu menjamin eksekusi dalam waktu linier dalam total ukuran posting?
Hint: Mulai dengan query formula Boolean: setiap
term query muncul hanya sekali dalam query.
Coba fitur pencarian di
http://www.rhymezone.com/shakespeare/
Tuliskan 5 fitur pencarian yang menurut anda dapat melakukan lebih baik
IR & Pencarian Lanjut...
Bagaimana dengan frase? Stanford University
Kedekatan: Temukan Gates NEAR Microsoft.
Perlu index untuk meng-capture informasi posisi dalam dokumen.
Zona dalam dokumen: Temukan dokumen dengan (author = Ullman) AND (teks mengandung
automata).
1 vs. 0 kehadiran term pencarian 2 vs. 1 kehadiran
3 vs. 2 kehadiran, dll.
Biasanya tampak lebih baik
Ranking Hasil Pencarian
Query Boolean memberikan inklusi atau eksklusi dari dokumen.
Sering hasilnya diranking/dikelompokkan
Perlu mengukur kedekatan dari query ke setiap dokumen. Perlu memutuskan apakah dokumen yang disajikan kepada
pengguna bersifat singleton (tunggal), atau kelompok dokumen yang mencakup berbagai aspek dari query.
Terstruktut vs Tak-Terstruktur
Data terstruktur mengacu ke informasi dalam “tabel” Employee Manager Salary
Smith Jones 50000
Chang Smith 60000
50000
Data Tak-Terstruktur
Umumnya mengacu ke teks bebas
Memungkinkan:
Query Keyword dengan menyertakan operator-operator
Query “konsep” yang lebih canggih, misal:
Temukan semua halaman web yang berkaitan dengan penyalahgunaan obat.
Model klasik untuk pencarian dokumen teks
Nyatanya hampir tidak ada data yang “tak-terstruktur”
Misal: slide ini punya zona teridentifikasi dengan jelas seperti Title dan Bullets
Menfasilitasi pencarian “semi-structured” seperti
Title mengandung data AND Bullets mengandung search
Pencarian Semi-Terstruktur Lebih Canggih
Title mengenai Object Oriented Programming AND Author menyerupai stro*rup
Dimana * adalah operator wild-card
Isu:
Bagaimana memroses “mengenai”? Bagaimana meranking hasil?
Fokus dari pencarian XML (IIR, Bab 10)
Clustering
: Diberikan sehimpunan dokumen, kelompokkan mereka ke dalam cluster-cluster berdasarkan pada konten-nya.
Classification
: Diberikan sehimpunan topik,kemudian muncul suatu dokumen baru D, tentukan topik mana yang akan diikuti oleh D.
Web & Tantangannya
Dokumen tidak biasa dan beragam
Pengguna, query, kebutuhan informasi tidak biasa dan beragam
Diluar dari term, menggali ide dari social networks link analysis, clickstreams ...
Bagaimana search engines bekerja? Dan bagaimana membuatnya lebih baik?
Cross-language information retrieval
Question answering
Summarization
Text mining
Resources Kuliah Hari ini...
Introduction to Information Retrieval, Bab 1
Shakespeare:
http://www.rhymezone.com/shakespeare/
Coba jelajah tertata dengan fitur deretan keyword!
Managing Gigabytes, Bab 3.2
Modern Information Retrieval, Bab 8.2
Tugas
Kerjakan latihan-latihan berikut: Exercise 1.2
Exercise 1.7 Exercise 1.10
Gunakan google dan yahoo. Coba beberapa query boolean. Catat hasil yang diberikan. Bandingkan!
Jawaban tugas di upload ke blog masing-masing.
Alamat blog Anda dituliskan di blog
komputasi.wordpress.com, pada halaman STBI-2011