45
INDEXING Budi Susanto Text dan Web Mining - Budi Susanto TI UKDW 1

Indexing - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/textwebmining_gasal2012/Minggu8.pdfDefinisi IR •Information Retrieval (IR) is finding material (usually documents) of

  • Upload
    lylien

  • View
    227

  • Download
    4

Embed Size (px)

Citation preview

INDEXING Budi Susanto

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

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

Algoritma Interseksi

Text dan Web Mining - Budi Susanto TI UKDW 22

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

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

Contoh Positional Index

Text dan Web Mining - Budi Susanto TI UKDW 32

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

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

Contoh

Text dan Web Mining - Budi Susanto TI UKDW 41

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 /

TERIMA KASIH Budi Susanto

Text dan Web Mining - Budi Susanto TI UKDW 45