4/2/13 Text & Web Mining - Budi Susanto - TI UKDW 1 VECTOR SPACE MODEL Budi Susanto Text & Web Mining - Budi Susanto - TI UKDW 2 Tujuan • Memahami model index berdasar pada bobot untuk binary retrieval model • Memahami model retrieval berdasar perangkingan • Memahami vector space model dalam information retrieval 1 4/2/13 Text & Web Mining - Budi Susanto - TI UKDW 3 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 4 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. 2 4/2/13 Text & Web Mining - Budi Susanto - TI UKDW 5 Contoh • Query: • data mining AND judul:apriori OR thn:[2002 TO 2010] OR dosen1:BUDI SUSANTO Text & Web Mining - Budi Susanto - TI UKDW 6 Inverted Index untuk Zone Index • Bentuk Struktur Dasar • Bentuk Struktur Terenkodekan 3 4/2/13 Text & Web Mining - Budi Susanto - TI UKDW 7 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 ∑ g =1 i=1 i Text & Web Mining - Budi Susanto - TI UKDW 8 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. 4 4/2/13 Text & Web Mining - Budi Susanto - TI UKDW 9 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 10 Weighted zone scoring 5 4/2/13 Text & Web Mining - Budi Susanto - TI UKDW 11 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 12 Learning weights 6 4/2/13 Text & Web Mining - Budi Susanto - TI UKDW 13 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 14 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. 7 4/2/13 Text & Web Mining - Budi Susanto - TI UKDW 15 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 16 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. 8 4/2/13 Text & Web Mining - Budi Susanto - TI UKDW 17 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 18 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 9 4/2/13 Text & Web Mining - Budi Susanto - TI UKDW 19 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 |A B| |A B| Text & Web Mining - Budi Susanto - TI UKDW 20 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 10 4/2/13 Text & Web Mining - Budi Susanto - TI UKDW 21 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 22 Term Frequency - tf • Term Frequency, @t,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 11 4/2/13 Text & Web Mining - Budi Susanto - TI UKDW 23 Log-­‐frequency weighGng • Relevansi sebuah dokumen tidak akan semakin tinggi jika tf semakin tinggi. • Log-frequency weighting dari t dalam d ⎧1 + log10 tft,d , wt,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 24 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. 12 4/2/13 Text & Web Mining - Budi Susanto - TI UKDW 25 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 26 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 13 4/2/13 27 Text & Web Mining - Budi Susanto - TI UKDW 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. 28 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 14 4/2/13 Text & Web Mining - Budi Susanto - TI UKDW 29 tf-idf • tf-idf sebuah term dalam kumpulan dokumen dapat dihitung sebagai w t,d = 1+ log(tft,d ) × log10 (N / dft ) • 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 30 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 15 4/2/13 Text & Web Mining - Budi Susanto - TI UKDW 31 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 32 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 16 4/2/13 Text & Web Mining - Budi Susanto - TI UKDW 33 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 34 Vector space proximity • Eucledian distance q dan d2 bernilai besar walaupun distribusi kata antara q dan d2 adalah serupa. 17 4/2/13 Text & Web Mining - Budi Susanto - TI UKDW 35 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 36 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) 18 4/2/13 Text & Web Mining - Budi Susanto - TI UKDW 37 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 = , , 2 2 2 2 2 2 2 2 2 $# x1 + y1 + z1 x1 + y1 + z1 x1 + y1 + z1 '& → Text & Web Mining - Budi Susanto - TI UKDW 38 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 q i i =1 ∑ V 2 d i i =1 ∑ • qi adalah bobot tf-idf dari term i dalam query. • di adalah bobot tf-idf dari term i dalam dokumen. 19 4/2/13 Text & Web Mining - Budi Susanto - TI UKDW 39 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 40 Ilustrasi kemiripan cosine 20 4/2/13 Text & Web Mining - Budi Susanto - TI UKDW 41 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 42 Contoh (mengabaikan idf) • Log frequency weighGng 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 SaS PaP • ASer length normalizaGon WH term 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 21 4/2/13 Text & Web Mining - Budi Susanto - TI UKDW 43 Text & Web Mining - Budi Susanto - TI UKDW 44 Cosine score Contoh • Terdapat 3 dokumen • D1 = Manajemen Sistem Informasi • D2 = Penggajian untuk meningkatkan Sumber Daya Manusia • D3 = Sistem Informasi Penggajian • Q = informasi daya manusia • Hitunglah rangking dari semua dokumen terhadap query dengan pendekatan vector space model! 22 4/2/13 Text & Web Mining - Budi Susanto - TI UKDW 45 TERIMA KASIH Budi Susanto 23