Upload
lylien
View
227
Download
4
Embed Size (px)
Citation preview
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
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
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
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
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
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
Struktur Data untuk Dictionary
• Array. Contoh:
• char[40] int Postings*;
• 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; }
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
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
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
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
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
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
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
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
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
Positional Index
• Dalam postings, simpan posisi setiap term dimana term
tersebut muncul:
<term, number of docs containing term;
doc1: position1, position2 … ;
doc2: position1, position2 … ;
etc.>
Text dan Web Mining - Budi Susanto TI UKDW 31
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
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
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.
2. 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
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
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 42
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 43
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 44
YXYX /