Text & Web Mining - Budi Susanto - TI UKDW
VECTOR SPACE MODEL Budi Susanto
1
Text & Web Mining - Budi Susanto - TI UKDW
2
Parametric dan zone Index • Sebuah dokumen, selain tersusun dari deretan term, juga
mengandung metadata. • Contoh: judul, pengarang.
• Metadata adalah bentuk khusus data tentang dokumen. • Metadata tersebut umumnya disertai dengan beberapa
field, seperti tanggal pembuatan, format dokumen, status. • Index yang juga menyertakan field pada postings nya disebut sebagai parametric index. • Nilai yang mungkin dicari dari fields sebaiknya terbatas, yaitu
berdasar nilai-nilai yang terindex.
Text & Web Mining - Budi Susanto - TI UKDW
3
Parametric dan zone Index • Zone index serupa dengan parametric hanya saja nilai
yang tersimpan adalah free text. • Contoh zone index untuk metadata judul, pengarang.
• Sebaiknya dibangun inverted index terpisah untuk tiap
zone.
Text & Web Mining - Budi Susanto - TI UKDW
4
Contoh • Query: • data mining AND judul:apriori OR thn:[2002 TO 2010] OR dosen1:BUDI SUSANTO
Text & Web Mining - Budi Susanto - TI UKDW
Inverted Index untuk Zone Index • Bentuk Struktur Dasar
• Bentuk Struktur Terenkodekan
5
Text & Web Mining - Budi Susanto - TI UKDW
6
Weighted zone scoring • Diberikan sebuah Boolean query q dan sebuah dokumen
d, weighted zone scoring menyatakan sebuah nilai untuk pasangan (q, d) dalam suatu nilai interval [0, 1], dengan perhitungan sebuah kombinasi linier dari zone score. • Diberikan sehimpunan dokumen dimana setiap dokumen memiliki zone. • Diberikan
g1,..., g ∈ [ 0,1] • Sehingga
∑
i=1
gi = 1
Text & Web Mining - Budi Susanto - TI UKDW
7
Weighted zone scoring • Untuk 1 ≤ I ≤
, diberikan si sebagai nilai Boolean yang menyatakan ada atau tidaknya antara q dan zone ke-i. • Sebagai contoh, nilai Boolean dari sebuah zone bernilai 1 jika semua term query muncul dalam zone tersebut, dan 0 jika sebaliknya. Sehingga weighted zone score didefinisikan:
∑g s
i i
i=1 • Weighted zone scoring disebut juga ranked Boolean
retrieval.
Text & Web Mining - Budi Susanto - TI UKDW
8
Weighted zone scoring • Terdapat 3 buah zone: author, title, dan body. • Bobot masing-masin zone: • g1 = 0.2 • g2 = 0.3 • g3 = 0.5 • Query : shakespeare. • Jika sebuah dokumen mengandung query di zone title
dan body, berapa nilai dokumen tersebut? • 0.2 * 0 + 0.3 * 1 + 0.5 * 1 = 0.8
Text & Web Mining - Budi Susanto - TI UKDW
Weighted zone scoring
9
Text & Web Mining - Budi Susanto - TI UKDW
10
Learning weights • Bagaimana caranya menentukan nilai bobot tiap zone gi? • Diberikan oleh pakar atau pendapat umum pemakai • Melalui pembelajaran menggunakan contoh pelatihan yang telah dinilai secara editorial. • Dikenal sebagai machine-learned relevance.
• Pengembangan machine-learned relevance: 1. Menyediakan sekumpulan contoh pelatihan,masing-masing terdiri dari pasangan sebuah query, q, dan sebuah dokumen, d, beserta penilaian relevansi untuk d terhadap q. 2. Bobot gi kemudian “dipelajari” dari contoh-contoh tersebut, dalam rangka nilai skor hasil pembelajaran mendekati penilaian relevansi dalam contoh pelatihan.
Text & Web Mining - Budi Susanto - TI UKDW
Learning weights
11
Text & Web Mining - Budi Susanto - TI UKDW
12
Learning weights • Setiap dokumen pelatihan, d, dan query pelatihan, q,
dihitung nilai skor:
• Dari hasil penilaian dari editor untuk setiap dokumen
pelatihan, akan diberikan nilai r(dj, qj) • 0 jika tidak relevan • 1 jika relevan
• Sehingga dapat dihitung nilai error dari tiap dokumen
pelatihan:
Text & Web Mining - Budi Susanto - TI UKDW
13
Learning weights • Nilai konstanta g diuji cobakan berulang-ulang untuk nilai
[0, 1] • Diantara percobaan tersebut, dipilih untuk nilai konstanta dengan nilai total error terkecil.
Text & Web Mining - Budi Susanto - TI UKDW
14
Ranked Retrieval Model • Bentuk inverted index untuk parametric dan zone index
(slide 5) digunakan untuk Boolean query. • Dokumen cocok dengan query atau tidak.
• Boolean query cocok untuk pemakai yang sudah pakar • Mudah dalam menterjemahan kebutuhan informasi menjadi sebuah boolean query. • Boolean query tidak cocok untuk pemakai pada
umumnya.
Text & Web Mining - Budi Susanto - TI UKDW
15
Ranked Retrieval Model • Ranked Retrieval model akan mengembalikan dokumen-
dokumen k-teratas dalam kolekasi untuk query. • Menggunakan pendetakan query free text. • Mengabaikan operator atau ekspresi boolean.
• Oleh karena mengembalikan k-dokumen teratas, maka
seberapapun besarnya hasil query bukan menjadi suatu masalah.
Text & Web Mining - Budi Susanto - TI UKDW
16
Ranked Retrieval Model • Kita ingin mengembalikan dokumen-dokumen yang
memiliki kemiripan dengan query. • Untuk itu dibutuhkan suatu mekanisme perhitungan skor antara query dengan tiap dokumen. • Misalnya nilai peringkat tiap dokumen yang relevan [0, 1]. • Jika term query tidak muncul dalam dokumen, score adalah 0 • Semakin besar frekuensi term query muncul dalam dokumen,
maka score juga akan besar.
• Kita akan membicarakan beberapa alternatif pemberian
nilai score.
Text & Web Mining - Budi Susanto - TI UKDW
17
Alt. 1: Jaccard Coefficient • Secara umum digunakan untuk mengukur overlap dua
himpunan A dan B. • jaccard(A,B) = |A ∩ B| / |A ∪ B| • jaccard(A,A) = 1 • jaccard(A,B) = 0 if A ∩ B = 0 • A dan B tidak perlu dalam ukuran vektor yang sama. • Contoh berapa nilai JC? • Query: ides of march • Document 1: caesar died in march • Document 2: the long march
Text & Web Mining - Budi Susanto - TI UKDW
18
Kelemahan JC • Tidak memperhatikan term frequency • Sangat dipengaruhi oleh ukuran kata dalam tiap
dokumen. • Kecenderungannya: Semakin besar dokumen maka nilai JC akan
semakin kecil, walaupun dokumen tersebut relevan.
• JC tidak memperhatikan “term yang jarang muncul dalam
dokumen lebih informatif daripada term yang sering muncul.” • Perlu adanya alternatif untuk menormalisasikan panjang. • Sehingga JC dengan normalisasi panjang adalah
|AB|/ |AB|
Text & Web Mining - Budi Susanto - TI UKDW
19
Term Frequency • Daripada menggunakan incidence matrix, yang hanya
mencatat ada atau tidak sebuah term dalam dokumen, pembobotan munculnya kata dalam dokumen dapat digunakan. Antony and Cleopatra
Julius Caesar
The Tempest
Hamlet
Othello
Macbeth
Antony
157
73
0
0
0
0
Brutus
4
157
0
1
0
0
Caesar
232
227
0
2
1
1
Calpurnia
0
10
0
0
0
0
Cleopatra
57
0
0
0
0
0
mercy
2
0
3
5
5
1
worser
2
0
1
1
1
0
Text & Web Mining - Budi Susanto - TI UKDW
20
Bag of word • Representasi vektor TF tidak mencerminkan urutan kata
dalam dokumen. • Contoh: antara dokumen berisi “Indah suka Andi” denagn “Andi
suka Indah” memiliki vektor yang sama.
• Ini disebut sebagai bag of word.
Text & Web Mining - Budi Susanto - TI UKDW
21
Term Frequency - tf • Term Frequency, 9t,d, mendefiniskan jumlah kemunculan
kata t dalam dokumen d. • Kita ingin menggunakan tf saat perhitungan nilai kemiripan antara dokumen dan query.
• Sebuah dokumen dengan 10 kemunculan term lebih relevan
daripada 1 kali kemunculan term tersebut. • Namun tidak menunjukkan 10 kali lebih relevan.
• Contoh q=“Ibu Kota Indonesia” • D1 = “Ibu kota Negara Indonesia adalah Jakarta. Jakarta
merupakan ibu kota daerah khusus Jakarta.” • Maka nilai score(q, D1) = tibu + tkota + tindonesia
Text & Web Mining - Budi Susanto - TI UKDW
22
Log-‐frequency weigh@ng • Relevansi sebuah dokumen tidak akan semakin tinggi jika
tf semakin tinggi. • Log-frequency weighting dari t dalam d wt,d
⎧1 + log10 tft,d , = ⎨ 0, ⎩
if tft,d > 0 otherwise
• Score dari pasangan s(q, d) dapat dihitung dengan
= ∑t∈q∩d (1 + log tft ,d )
Text & Web Mining - Budi Susanto - TI UKDW
23
Frekuensi Dokumen • Sekarang kita ingin lebih memperhatikan tentang term
yang jarang muncul, • Term yang jarang muncul lebih informatif daripada term yang
sering muncul • Contohnya stop word.
• Kita akan menggunakan frekuensi dokumen untuk
mencoba memperhatikan hal tersebut.
Text & Web Mining - Budi Susanto - TI UKDW
24
Frekuensi Dokumen • dft adalah frekuensi dokumen untuk kata t. • Jumlah dokumen yang mengandung kata t. • dft adalah ukuran pembalik dari keinformatifan dari term t. • dft ≤ N • Kita definisikan idf (inverse document frequency) sebagai
idft = log10 ( N/dft )
Text & Web Mining - Budi Susanto - TI UKDW
Contoh idf • Misalnya N = 1 juta dokumen term calpurnia
dft
idft 1
animal
100
sunday
1,000
fly under the
10,000 100,000 1,000,000
25
Text & Web Mining - Budi Susanto - TI UKDW
26
Pengaruh idf untuk peringkat • Apakah idf memberi pengaruh pada peringkat untuk query
satu term? • TIDAK!
• Idf memiliki pengaruh pada peringkat jika query
mengandung lebih dari 2 term.
27
Text & Web Mining - Budi Susanto - TI UKDW
Frekuensi Koleksi atau Dokumen • Frekuensi koleksi dari term t adalah jumlah total
kemunculan term t dalam koleksi dokumen. • Mana yang lebih baik antara frekuensi koleksi atau dokumen untuk menunjukkan bahwa term yang jarang muncul lebih informatif? Word
Collection frequency
Document frequency
insurance
10440
3997
try
10422
8760
Text & Web Mining - Budi Susanto - TI UKDW
28
tf-idf • tf-idf sebuah term dalam kumpulan dokumen dapat
dihitung sebagai
w t ,d = log(1 + tft ,d ) × log10 ( N / df t ) • Bobot akan semakin besar jika term semakin jarang
dalam koleksi. • Bobot dari pasangan dokumen, d, dengan query, q, dapat dihitung sebagai
Score(q,d) = ∑
t ∈q∩d
tf.idft,d
Text & Web Mining - Budi Susanto - TI UKDW
29
Matrik bobot • Binary -> frekuensi -> matrik bobot Antony and Cleopatra
Julius Caesar
The Tempest
Hamlet
Othello
Macbeth
Antony
5.25
3.18
0
0
0
0.35
Brutus
1.21
6.1
0
1
0
0
Caesar
8.59
2.54
0
1.51
0.25
0
Calpurnia
0
1.54
0
0
0
0
Cleopatra
2.85
0
0
0
0
0
mercy
1.51
0
1.9
0.12
5.25
0.88
worser
1.37
0
0.11
4.15
0.25
1.95
Text & Web Mining - Budi Susanto - TI UKDW
30
Dokumen sebagai Vektor • Sekarang kita memiliki |V|-dimensional vector space • Term adalah sumbu dari space • Dokumen adalah titik/vektor dalam space tersebut • Web search engine pada umumnya memiliki dimensi
yang sangat tinggi. • Namun memiliki sparse vector, yaitu kebanyakan bernilai 0. • Terhadap query, kita akan membawa query ke dalam space.
Text & Web Mining - Budi Susanto - TI UKDW
31
Query sebagai vektor • Kunci ide 1 : lakukan hal yang sama terhadap query
(seperti terhadap dokumen): representasikan query sebagai vektor dalam space. • Kunci ide 2 : lakukan perangkingan dokumen berdasar kedekatan dengan query dalam space • Kedekatan (proximity) = kemiripan vektor • Sehingga perangkingan akan menjadi pilihan terbaik untuk menampilkan dokumen-dokumen yang memiliki kedekatan • Menempatkan dokumen yang lebih relevan di atas
Text & Web Mining - Budi Susanto - TI UKDW
32
Vector space proximity • Pendekatan 1: menghitung jarak antar dua titik (q dan d) • Jarak antar titik dari 2 vektor • Formula perhitungan jarak, seperti Eucledian Distance,
adalah pilihan tidak tepat • Karena Eucledian distance akan menghasilkan nilai yang sangat
besar untuk dua vektor dengan panjang yang berbeda.
Text & Web Mining - Budi Susanto - TI UKDW
Vector space proximity • Eucledian distance q
dan d2 bernilai besar walaupun distribusi kata antara q dan d2 adalah serupa.
33
Text & Web Mining - Budi Susanto - TI UKDW
34
Gunakan sudut daripada jarak • Percobaan: • Ambil sebuah dokumen, d. • Tambahkan isi dokumen d ke dalam dirinya sendiri, d’ • Secara arti, d dan d’ adalah sama. • Eucledian distance antar d dan d’ akan bernilai besar. • Namun sudut antara d dan d’ adalah 0.
Text & Web Mining - Budi Susanto - TI UKDW
35
Dari sudut ke cosinus • Dua pernyataan berikut ini adalah sama: • Ranking dokumen dalam urutan descending terhadap sudut antara query dan dokumen. • Raking dokumen dalam urutan ascending dari cosine(q,d)
Text & Web Mining - Budi Susanto - TI UKDW
36
Normalisasi Panjang • Sebuah vektor dapat dinormalisasikan dengan membagi
setiap komponennya dengan panjangnya – menggunakan L2 norm
x2=
2 i i
∑x
→
d = [ x1, y1, x1 ] " % x1 y1 z1 $ ' d = , , $# x12 + y12 + z12 x12 + y12 + z12 x12 + y12 + z12 '&
→
Text & Web Mining - Budi Susanto - TI UKDW
37
cosine(query, dokumen) Dot product
Unit vectors
q•d q d cos( q, d ) = = • = q d qd
∑
V
qd
i =1 i i
V
2 i =1 i
∑
q
∑
• qi adalah bobot tf-idf dari term i dalam query. • di adalah bobot tf-idf dari term i dalam dokumen.
V
i =1
d
2 i
Text & Web Mining - Budi Susanto - TI UKDW
38
Cosine untuk length-‐normalized vector • Jika dua vektor masing-masing sudah merupakan length-
normalized, maka cosine dapat dihitung dengan cukup melakukan dot product. V cos(q, d ) = q • d = ∑ qi di i=1
Text & Web Mining - Budi Susanto - TI UKDW
Ilustrasi kemiripan cosine
39
Text & Web Mining - Budi Susanto - TI UKDW
40
Contoh • How similar are
the novels • SaS: Sense and Sensibility • PaP: Pride and Prejudice, and • WH: Wuthering Heights?
term
SaS
PaP
WH
affection
115
58
20
jealous
10
7
11
gossip
2
0
6
wuthering
0
0
38
Term frequencies (counts)
Text & Web Mining - Budi Susanto - TI UKDW
41
Contoh (mengabaikan idf) • Log frequency weigh@ng term
SaS
PaP
• ALer length normaliza@on
WH
term
SaS
PaP
WH
affection
3.06
2.76
2.30
affection
0.789
0.832
0.524
jealous
2.00
1.85
2.04
jealous
0.515
0.555
0.465
gossip
1.30
0
1.78
gossip
0.335
0
0.405
0
0
2.58
wuthering
0
0
0.588
wuthering
cos(SaS,PaP) ≈ 0.789 × 0.832 + 0.515 × 0.555 + 0.335 × 0.0 + 0.0 × 0.0 ≈ 0.94 cos(SaS,WH) ≈ 0.79 cos(PaP,WH) ≈ 0.69
Text & Web Mining - Budi Susanto - TI UKDW
Cosine score
42
Text & Web Mining - Budi Susanto - TI UKDW
MATURNUWUN Budi Susanto
43