indexing - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/genap12/twm/minggu8.pdf · •...
TRANSCRIPT
4/2/13
1
INDEXING Budi Susanto (v1.01)
Text dan Web Mining - Budi Susanto TI UKDW 1
Tujuan • Memaham pengertian dari information retrieval • Memahami pembentukan struktur inverted index
• Memahami tentang kebutuhan index terhadap adanya query frase
• Memahami kebutuhan index terhadap query wildcard
Text dan Web Mining - Budi Susanto TI UKDW 2
4/2/13
2
Buku Acuan • Manning, C. D., Raghavan, P., Chutze, H. (2008).
Introduction to Information Retrieval. Cammbridge University Press, New York, Chapter 1, 2, dan 3.
Text dan Web Mining - Budi Susanto TI UKDW 3
Definisi IR • Information Retrieval (IR) is finding material (usually
documents) of an unstructured nature (usually text) that satisfies an information need from within large collections (usually stored on computers). - Manning (2008) • IR dapat mencakup bentuk masalah data dan informasi selain
disebutkan pada definisi di atas. • Misalnya beberapa format dokumen memiliki suatu struktur header,
body, dan footer. • Sering disebut dengan semistructure data.
Text dan Web Mining - Budi Susanto TI UKDW 4
4/2/13
3
Contoh Masalah IR • Terdapat sekumpulan dokumen berita dari berbagai
macam kelompok berita. • Kemudian ingin ditemukan dokumen berita apa saja yang
berisi kata • badai AND topan AND NOT tsunami.
• Solusi: • Cara paling sederhana adalah melakukan pemindaian secara linier
terhadap seluruh dokumen. • Proses ini sering disebut sebagai grepping. • Apa masalahnya?
Text dan Web Mining - Budi Susanto TI UKDW 5
Contoh Masalah IR • Dengan kemampuan komputer saat ini, ada kebutuhan
yang lebih terhadap pencarian: • mampu memproses kumpulan dokumen sangat besar secara
cepat; • memungkinkan operasi-operasi pencocokan yang fleksibel; • Memungkinkan melakukan pemeringkatan terhadap hasil
pencarian.
• Salah satu cara untuk menghindari pemindaian linier adalah membuat sebuah index terhadap seluruh dokumen.
Text dan Web Mining - Budi Susanto TI UKDW 6
4/2/13
4
Contoh incidence matrix
Text dan Web Mining - Budi Susanto TI UKDW 7
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 if play contains word, 0 otherwise
Contoh pencarian • Sehingga untuk menemukan dokumen terhadap query:
• Brutus AND Caesar AND NOT Calpurnia
• Dilakukan operasi boolean:
• 110100 AND 110111 AND 101111 = 100100.
Text dan Web Mining - Budi Susanto TI UKDW 8
4/2/13
5
Model Pencarian Klasik
Text dan Web Mining - Budi Susanto TI UKDW 9
Corpus
TASK
Info Need
Query
Verbal form
Results
SEARCH ENGINE
Query Refinement
Get rid of mice in a politically correct way
Info about removing mice without killing them
How do I trap mice alive?
mouse trap
Misconception?
Mistranslation?
Misformulation?
Terminologi • Kebutuhan informasi
• Topik dimana ingin diketahui lebih oleh pemakai
• Query • Sesuatu yang pemakai sampaikan kepada komputer dalam rangka
mencoba untuk mengkomunikasikan kebutuhan informasi.
• Dokumen Relevan • Dikatakan relevan ketika pemakai mempersepsikan bahwa
dokumen tersebut mengandung informasi yang berkaitan dengan kebutuhan informasi mereka.
Text dan Web Mining - Budi Susanto TI UKDW 10
4/2/13
6
Dasar Evaluasi IR • Untuk menilai efektifitas sebuah sistem IR (kualitas hasil
pencarian), pada umumnya digunakan: • Precision
• Berapa bagian dari hasil kembalian adalah relevan dengan kebutuhan informasi?
• Recall • Berapa bagian dari dokumen relevan dalam koleksi yang dikembalikan
oleh sistem?
Text dan Web Mining - Budi Susanto TI UKDW 11
Dasar Inverted Index • Daripada menyimpan secara biner (slide 6) untuk semua
term (vocabulary – kumpulan term), sebaiknya cukup disimpan dokumen apa saja yang mengandung masing-masing term.
Text dan Web Mining - Budi Susanto TI UKDW 12
Brutus
Calpurnia
Caesar 1 2 4 5 6 16 57 132
1 2 4 11 31 45 173
2 31
174
54 101
Dictionary Postings
4/2/13
7
Struktur Data untuk Dictionary
• Array. Contoh:
char* Postings[50];
• dimana Postings berupa struct atau class
Text dan Web Mining - Budi Susanto TI UKDW 13
Struktur Data untuk Dictionary • Hashtables
• Setiap term di-hash menjadi sebuah integer. • Contoh fungsi hash:
Text dan Web Mining - Budi Susanto TI UKDW 14
http://en.wikipedia.org/w/index.php?title=File:Hash_table_5_0_1_1_1_1_1_LL.svg&page=1
/* Peter Weinberger's */ int hashpjw(char *s) { char *p; unsigned int h, g; h = 0; for(p=s; *p!='\0'; p++){ h = (h<<4) + *p; if (g = h&0xF0000000) { h ^= g>>24; h ^= g; } } return h % 211; }
4/2/13
8
Struktur Data untuk Dictionary
Text dan Web Mining - Budi Susanto TI UKDW 15
Root a-m n-z
a-hu hy-m n-sh si-z
aardvark!
huygens!
sickle!
zygot!
15
Binary Search Tree
Struktur Data untuk Dictionary • B+ Tree
Text dan Web Mining - Budi Susanto TI UKDW 16
a-hu hy-m
n-z
4/2/13
9
Pembentukan Inverted Index
Text dan Web Mining - Budi Susanto TI UKDW 17
Tokenisasi
Normalisasi
Indexer Inverted index
Kompulan dokumen
Inverted index harus disimpan dalam struktur list yang dinamis.
Contoh Indexer
Text dan Web Mining - Budi Susanto TI UKDW 18
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
Tokenisasi dan Normalisasi
4/2/13
10
Contoh Indexer
Sorting
• Diurutkan berdasar term • Kemudian diurutkan
berdasar docID
Text dan Web Mining - Budi Susanto TI UKDW 19
Contoh Indexer
Dictionary dan Postings
• Beberapa term sama dalam dokumen tunggal di gabungkan.
• Dipisahkan ke dalam Dictionary dan Postings.
• Informasi tambahan, seperti frekuensi kemunculan term, disimpan.
Text dan Web Mining - Budi Susanto TI UKDW 20
4/2/13
11
Contoh Query • Dicari: Brutus AND Calpurnia • Proses:
1. Temukan Brutus dalam dictionary. 2. Ambil postings yang terkait. 3. Temukan Calpurnia dalam dictionary. 4. Ambil postings yang terkait. 5. Lakukan operasi interseksi antara dua daftar postings.
• Interseksi adalah memilih item dari dua list yang sama.
Text dan Web Mining - Budi Susanto TI UKDW 21
Algoritma Interseksi
Text dan Web Mining - Budi Susanto TI UKDW 22
4/2/13
12
Contoh Interseksi
Text dan Web Mining - Budi Susanto TI UKDW 23
Latihan #1 1. Gambarkan inverted index untuk
Doc 1 new home sales top forecasts
Doc 2 home sales rise in july
Doc 3 increase in home sales in july
Doc 4 july new home sales rise
Text dan Web Mining - Budi Susanto TI UKDW 24
4/2/13
13
Latihan #2 • Terdapat kumpulan dokumen berikut: 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 1. Gambarkan incidence matrix untuk kumpulan dokumen
tersebut 2. Gambarkan inverted index untuk kumpulan dokumen
tersebut. 3. Apa hasil kembalian untuk query berikut:
a. schizophrenia AND drug b. for AND NOT(drug OR approach)
Text dan Web Mining - Budi Susanto TI UKDW 25
Ingest • Menurut Kowalski, G. (2010), proses awal dalam suatu
sistem information retrieval disebut sebagai ingest. • Ingest merupakan proses yang menerima item-item yang
akan disimpan dan diindex dalam sistem dan melakukan preprocessing. • Pull atau crawling. • Tokenisasi • Deteksi kemiripan dan atau duplikasi • Stemming dan atau normalisasi lain • Ekstraksi entitas (information extraction) • Pemrosesan metadata
Text dan Web Mining - Budi Susanto TI UKDW 26
4/2/13
14
Query Frase • Saat ini sistem IR harus juga mampu menerima query
dalam bentuk frase. • Contoh: “Universitas Kristen Duta Wacana” atau “UKDW
Yogyakarta” • Sehingga jika ada dokumen berisi “Duta Wacana adalah satu-satunya
universtas kristen terbaik di Yogyakarta” tidak akan ditemukan.
• Frase dalam query biasanya ditulis dalam tanda petik ganda (“).
• Dengan query frase, diperlukan struktur index yang sedikit berbeda.
Text dan Web Mining - Budi Susanto TI UKDW 27
Biword Index • Sebuah pengindex yang akan membangun dictionary
berdasar setiap pasangan dua kata yang muncul dalam tiap dokumen.
• Contoh: universitas kristen duta wacana, • Akan diindex membentuk dictionary:
• universitas kristen • kristen duta • duta wacana
Text dan Web Mining - Budi Susanto TI UKDW 28
4/2/13
15
Biword Index • Sehingga penanganan query yang panjang, seperti:
• universitas duta wacana yogyakarta
• Akan dibagi menjadi: • “universitas duta” AND “duta wacana” AND “wacana yogyakarta”
• Kelemahan: • Bisa memberikan false positif.
• Tanpa melakukan pengujian terhadap seluruh dokumen, kita tidak dapat memverifikasi apakah query tersebut memang mewakili frase yang sebenarnya.
Text dan Web Mining - Budi Susanto TI UKDW 29
Extended Biword • Memparsing teks dan melakukan POST. • Term-term akan dikenali sebagai Nouns (N) dan artikel/
preposisi (X).
• Dengan demikian, maka setiap string berpola NX*N merupakan bentukan dari dictionary.
• Contoh: universitas di yogyakarta
• Akan diparsing menjadi N X N, sehingga index yang dicari adalah: • universitas yogyakarta
Text dan Web Mining - Budi Susanto TI UKDW 30
4/2/13
16
Positional Index • Dalam postings, simpan posisi setiap term dimana term
tersebut muncul:
<term, number of docs containing term; doc1: posiBon1, posiBon2 … ; doc2: posiBon1, posiBon2 … ; etc.>
Text dan Web Mining - Budi Susanto TI UKDW 31
Contoh Positional Index
Text dan Web Mining - Budi Susanto TI UKDW 32
4/2/13
17
Positional Intersect Algorithm
Text dan Web Mining - Budi Susanto TI UKDW 33
Wildcard Queries • Contoh wildcard query:
• yogya* : menemukan semua dokumen yang berisi sembarang kata berawalan yogya.
• Dengan B+Tree dapat cukup dilakukan dengan mencari semua node yang berada di bawah node yogya.
• yogya ≤ w < yogyb
• Bagaimana dengan query: *arta ?
• Perlu dipelihara B+ tree tambahan yang menyimpan backward dari semua kata.
• Bagaimana dengan query: yo*arta?
Text dan Web Mining - Budi Susanto TI UKDW 34
4/2/13
18
Permuterm Index • Menggunakan karakter khusus, misal $, untuk menandai
akhir sebuah term. • Contoh: ukdw akan tersimpan sebagai ukdw$.
• Dibangun sebuah permuterm index yang berisi berbagai bentuk rotasi tiap term. • kdw$u, dw$uk, w$ukw
• Query wildcard • X lookup on X$ • X* lookup on $X* • *X lookup on X$* • *X* lookup on X* • X*Y lookup on Y$X*
Text dan Web Mining - Budi Susanto TI UKDW 35
K-gram index • Menghasilkan enumerasi semua k-grams (deretan k-
karakter) dari tiap kata yang muncul. • Contoh enumerasi dari kalimat “ukdw yogyakarta” dengan
3-gram adalah: • $uk, ukd, kdw, dw$, $yo, yog, ogy, gya, yak, aka, art, rta, ta$
• Setiap postings akan berisi semua term yang berisi k-gram dari dictionary.
Text dan Web Mining - Budi Susanto TI UKDW 36
mo
on
among
$m mace
along
amortize
madden
among
4/2/13
19
k-gram index • Semua query yang dikenakan terhadap k-gram index
akan dilakukan proses enumerasi serupa dengan pembentukan index.
• Contoh: yo*arta akan diubah menjadi • $yo AND art AND rta AND ta$
Text dan Web Mining - Budi Susanto TI UKDW 37
Spelling Correction • Terdapat dua prinsip dasar :
1. Pilih salah satu yang paling mendekati dari query yang salah ejaan. • Didasarkan pada dictionary index.
3. Ketika terdapat dua atau lebih kemunculan term yang benar, maka dipilih yang paling umum digunakan.
• Bentuk pembetulan ejaan • Isolated-term
• Pembetulan terhadap masing-masing kata • Context-sensitive
• Pembetulan berdasar kata-kata yang ada di sekitarnya.
Text dan Web Mining - Budi Susanto TI UKDW 38
4/2/13
20
Isolated-Term • Menggunakan dasar lexicon dimana pembetulan ejaan
berasal. • Standar lexicon
• Misalnya Kamus bahasa • Index lexicon
• Terdapat dua metode: • Edit distance • K-gram
Text dan Web Mining - Budi Susanto TI UKDW 39
Edit Distance (Levenshtein distance)
Text dan Web Mining - Budi Susanto TI UKDW 40
• Diberikan dua buah string, S1 dan S2, pilih kata yang memiliki jumlah operasi konversi paling kecil.
• Jenis operasi yang dilakukan: • Insert, delete, replace
4/2/13
21
Contoh
Text dan Web Mining - Budi Susanto TI UKDW 41
u n v e r s i t a 0 1 2 3 4 5 6 7 8 9
u 1 0 1 2 3 4 5 6 7 8 n 2 1 0 1 2 3 4 5 6 7 i 3 2 1 1 2 3 4 4 5 6 v 4 3 2 1 2 3 4 5 6 7 e 5 4 3 2 1 2 3 4 5 6 r 6 5 4 3 2 1 2 3 4 5 s 7 6 5 4 3 2 1 2 3 4 i 8 7 6 5 4 3 2 1 2 3 t 9 8 7 6 5 4 3 2 1 2 a 10 9 8 7 6 5 4 3 2 1 s 11 10 9 8 7 6 5 4 3 2
Latihan
Text dan Web Mining - Budi Susanto TI UKDW 42
j o g j a k a t a
y
o
g
y
a
k
a
r
t
a
4/2/13
22
K-gram • Enumerasikan semua n-gram dalam string query
sebagaimana terhadap lexicon. • Gunakan index n-gram untuk mengambil semua lexicon
yang cocok dengan n-gram query. • Threshold dengan jumlah n-gram yang cocok.
Text dan Web Mining - Budi Susanto TI UKDW 43
Contoh tri-gram • Sebagai contoh term november
• nov, ove, vem, emb, mbe, ber.
• Query adalah december. • dec, ece, cem, emb, mbe, ber.
• Terdapat 3 trigram yang overlap. • Bagaimana caranya agar overlap tersebut
dinormalisasikan menjadi sebuah nilai overlap?
Text dan Web Mining - Budi Susanto TI UKDW 44
4/2/13
23
Jaccard coefficient • X dan Y adalah himpunan n-gram. Maka JC adalah
• Contoh:
• JC untuk q=bord dan term=boardroom • 2/(8+3-2)
Text dan Web Mining - Budi Susanto TI UKDW 45
YXYX ∪∩ /
TERIMA KASIH Budi Susanto
Text dan Web Mining - Budi Susanto TI UKDW 46