Temu-Balik Boolean - Komputasi · Pemrolehan-Kembali Informasi Information Retrieval (IR) Pencarian...

Post on 21-Mar-2019

232 views 0 download

Transcript of Temu-Balik Boolean - Komputasi · Pemrolehan-Kembali Informasi Information Retrieval (IR) Pencarian...

Sistem Temu Balik Informasi 2011

Temu-Balik Boolean

Husni

husni@if.trunojoyo.ac.idHusni.trunojoyo.ac.id

Komputasi.wordpress.com

STBI-2011

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).

2

Data Tak-Terstruktur (text) vs. Terstruktur (database), 1996

3

Data Tak-Terstruktur (text) vs. Terstruktur (database), 2009

4

http://www.internetworldstats.com/images/world2010users.png

5

http://www.internetworldstats.com/images/world2010pie.png

6

Data Tak-Terstruktur, 1680

Buku mana dalam koleksi Shakespeare yang berisi

kata Brutus AND Caesar tetapi NOT Calpurnia?

Meng-grep semua buku yang mengandung Brutus dan Caesar, kemudian mengeluarkan yang mengandung Calpurnia?!!!

Mengapa itu bukan jawaban?

Lambat (jika koleksinya banyak, besar)

NOT Calpurnia bukan hal sepele

Operasi lain (seperti temukan kata “Romans dekat countrymen) tidak mungkin

Retrieval teranking (kembalikan dokumen terbaik)7

Sec. 1.1

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

Sec. 1.1

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.

9

Sec. 1.1

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

Sec. 1.1

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.

11

Sec. 1.1

Model Pencarian Klasik

Corpus

TASK

Info Need

Query

Verbal

form

Results

SEARCH

ENGINE

Query

Refinement

Singkirkan tikus dengan cara yang benar secara politis

Info tentang menghilangkan tikus tanpa membunuhnya

Bagaimana menangkap tikus?

Menangkap tikus

Misconception?

Mistranslation?

Misformulation?

Baguskah Dokumen yang diRETRIEVE?

Precision (Presisi): Prosentase dari dokumen yang diperoleh yang relevan dengan kebutuhan informasi pengguna

Recall : Prosentase dari dokumen yang relevan dalam koleksi (himpunan) yang diretrieve

Juga terdapat definisi dan ukuran ketepatan lain...

13

Sec. 1.1

Koleksi 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

Sec. 1.1

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.

15

???

Sec. 1.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

54 101

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

17

Dictionary Daftar Posting

Urut berdasarkan docID (Mengapa?)

DocId

Sec. 1.2

Brutus

Calpurnia

Caesar 1 2 4 5 6 16 57 132

1 2 4 11 31 45 173

2 31

174

54 101

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.

Sec. 1.2

Tahapan Indexer : deretan token

Deretan pasangan (Token baru, Doc-ID)

I did enact Julius

Caesar I was killed

i' the Capitol;

Brutus killed me.

Doc 1

So let it be with

Caesar. The noble

Brutus hath told you

Caesar was ambitious

Doc 2

Sec. 1.2

Tahapan Indexer : Urutkan!

Urutkan berdasarkan term

Kemudian berdasarkan docID

Langkah Indexing Utama

Sec. 1.2

Tahapan Indexer : Dictionary & Posting

Banyak entri term dalam satu dokumen digabungkan.

Bagi ke dalam Dictionary dan Posting

Tambahkan informasi frekuensi dokumen.

Mengapa frekuensi?(dibahas nanti)

Sec. 1.2

Biaya Penyimpanan?

22Pointer

Term & Jumlah posting

Dibahas nanti:

•Bagaimana meng-

index dengan

efisien?

•Berapa kapasitas

simpan yang

dibutuhkan?

Sec. 1.2

Daftar doc-ID

Index yang baru dibangun

Bagaimana memroses suatu query?

Kemudian – jenis query apa yang dapat diproses?

23

Fokus

Kini

Sec. 1.3

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

25

34

1282 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

Caesar2 8

Jika panjang list adalah x dan y, penggabungan

memerlukan operasi O(x+y).

Krusial: posting diurutkan berdasarkan docID.

Sec. 1.3

Perpotongan dua posting list (Algoritma “merge”)

26

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

Tool retrieval komersil utama selama 30 tahun.

Banyak sistem pencarian mengunakan model Boolean:

Email, Katalog perpustakaan, Mac OS X Spotlight27

Sec. 1.3

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

Sec. 1.4

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; dikembangkan bertahap; tidak seperti pencarian web

Banyak pencari pro masih menyukai pencarian Boolean: Tahu pasti apa yang diperoleh

Tapi tidak berarti itu benar-benar bekerja lebih baik

Sec. 1.4

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

Sec. 1.3

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?

Dapatkah dilakukan lebih baik?

31

Sec. 1.3

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 Caesar32

Sec. 1.3

Contoh Optimisasi Query

Proses dalam urutan frekuensi menaik:

Mulai dengan set paling kecil, kemudian dilanjutkan ke depan.

33

Inilah mengapa menyimpan frekuensi dokumen dalam dictionary

Eksekusi query sebagai (Calpurnia AND Brutus) AND Caesar.

Sec. 1.3

Brutus

Caesar

Calpurnia

1 2 3 5 8 16 21 34

2 4 8 16 32 64 128

13 16

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

Sec. 1.3

Latihan...

Tuliskan urutan pemrosesan query untuk:

Term Freq

eyes 213312

kaleidoscope 87009

marmalade 107913

skies 271658

tangerine 46653

trees 316812

35

(tangerine OR trees) AND(marmalade OR skies) AND(kaleidoscope OReyes)

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.

36

Latihan...

Coba fitur pencarian di http://www.rhymezone.com/shakespeare/

Tuliskan 5 fitur pencarian yang menurut anda dapat melakukan lebih baik

37

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).

38

Akumulasi Fakta

1 vs. 0 kehadiran term pencarian

2 vs. 1 kehadiran

3 vs. 2 kehadiran, dll.

Biasanya tampak lebih baik

Perlu informasi frekuensi term dalam dokumen

39

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.

40

IR vs. Database:Terstruktut vs Tak-Terstruktur

Data terstruktur mengacu ke informasi dalam “tabel”

41

Employee Manager Salary

Smith Jones 50000

Chang Smith 60000

50000Ivy Smith

Umumnya memungkinkan query range numerik

dan sesuai tepat (untuk teks), misalnya:

Salary < 60000 AND Manager = Smith

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

42

Data Semi-Terstruktur

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

43

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)

44

Clustering, Klasifikasi & Ranking

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.

Ranking: Bagaimana mengurutkan sehimpunan dokumen, misalnya himpunan hasil pencarian.

45

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?

46

IR yang lebih Canggih

Cross-language information retrieval

Question answering

Summarization

Text mining

47

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

48

Pertanyaan?

49

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

50