Download
pengindeksan dan fail songsang inverted file n.
Skip this Video
Loading SlideShow in 5 Seconds..
Pengindeksan Dan Fail Songsang (inverted File) PowerPoint Presentation
Download Presentation
Pengindeksan Dan Fail Songsang (inverted File)

Pengindeksan Dan Fail Songsang (inverted File)

160 Views Download Presentation
Download Presentation

Pengindeksan Dan Fail Songsang (inverted File)

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Pengindeksan Dan Fail Songsang (inverted File)

  2. Penjanaan Fail Indeks Songsang Word Extraction Word IDs Dokumen Asal W1:d1,d2,d3 W2:d2,d4,d7,d9 Wn :di,…dn Inverted Files Document IDs

  3. Posting List panjang Posting List pendek Disebabkan saiznya posting list disiimpan dalam disk Terbaik jika indeks disimpan dalam ingatan utama Indeks Songsang • Sistem capaian maklumat membangunkan indeks songsang untuk mencari katakunci dalam koleksi dokumen dengan berkesan. • Indeks songsang mengandungi dua komponen iaitu satu senarai bagi setiap katakunci yang dipanggil indeks dan satu senarai yang dipanggil posting list.

  4. D1 The Department of Computer Science was established in 1984. D2 The Department launched its first BSc(Hons) in Computer Studies in 1987. D3 followed by the MSc in Computer Science which was started in 1991. D4 The Department also produced its first PhD graduate in 1994. D5 Our staff have contributed intellectually and professionally to the advancements in these fields. Penjanaan Fail Indeks Songsang • Map the file names to file IDs • Consider the following Original Documents

  5. D1 The Department of Computer Science was established in 1984. D2 The Department launched its first BSc(Hons) in Computer Studies in 1987. D3 followed by the MSc in Computer Science which was started in 1991. D4 The Department also produced itsfirst PhD graduate in 1994. D5 Our staff have contributed intellectually and professionally to the advancements in these fields. Penjanaan Fail Indeks Songsang green: stop word

  6. D1 depart comput scienc establish D2 depart launch bsc hons comput studi D3 follow msc comput scienc start D4 depart produc phd graduat D5 staff contribut intellectuprofession advanc field Penjanaan Fail Indeks Songsang After stemming, make lowercase (option), delete numbers (option)

  7. Words Documents Words Documents depart d1,d2,d4 produc d4 comput d1,d2,d3 phd d4 scienc d1,d3 graduat d4 establish d1 staff d5 launch d2 contribut d5 bsc d2 intellectu d5 hons d2 profession d5 studi d2 advanc d5 follow d3 field d5 msc d3 start d3 Penjanaan Fail Indeks Songsang(belum terisih)

  8. Words Documents Words Documents advanc d5 msc d3 bsc d2 phd d4 comput d1,d2,d3 produc d4 contribut d5 profession d5 depart d1,d2,d4 scienc d1,d3 establish d1 staff d5 field d5 start d3 follow d3 studi d2 graduat d4 intellectu d5 launch d2 Penjanaan Fail Indeks Songsang(terisih)

  9. Terms Pembinaan indeks • Setiap dokumen diwakilkan dalam bentuk vektor • <term1, term2, term3, …, termn> • Setiap kemasukkan data menggambarkan bilangan sesuatu term itu ujud pada satu-satu dokumen

  10. Indeks Songsang • Secara konsep, ianya telah dipelajari dalam model ruang vektor dimana ianya dijanakan dalam bentuk vektor di antara term vs dokumen. • Fail songsang merupakan “songsangan” dari fail vektor dimana lajur menjadi baris dan baris menjadi lajur.

  11. Doc 1 Doc 2 Now is the time for all good men to come to the aid of their country It was a dark and stormy night in the country manor. The time was past midnight Pembinaan Fail Songsang • Dokumen dihuraikan bagi menghasilkan token dan ia disimpan bersama dengan ID dokumen

  12. Pembinaan Fail Songsang • Setelah selesai semua dokumen dihuraikan, maka fail songsang diisih dalam bentuk tersusun.

  13. Pembinaan Fail Songsang • Term yang berulang pada sesuatu dokumen akan dicantumkan (tambah nilai kekerapan)

  14. Pembinaan Fail Songsang • Kemudian fail boleh dipecahkan kepada dua iaitu • FailDictionary dan • Fail Postings

  15. Pembinaan Fail Songsang Dictionary Postings

  16. Fail Songsang Kelebihan • Meningkatkan keberkesanan penggelintaran. Kelemahan • Keperluan menyimpan struktur data yang saiznya 10 – 100% lebih besar daripada saiz teks dan keperluan untuk menukar indeks jika terdapat penukaran data. • Proses pengemaskinian indeks adalah mahal tetapi tatasusunan yang tersisih mudah dijanakan dan cepat.

  17. Struktur Data yang digunakan pada Fail Songsang • Tatasusunan Terisih (Sorted Arrays) • Pohon B • Struktur Cincangan (Hashing Structures) • Tries (digital search trees)

  18. Tatasusunan Terisih • Fail songsang yang menggunakan metod ini menyimpan katakunci dalam bentuk tatasusunan terisih, berserta dengan bilangan dokumen yang mengandungi katakunci tersebut dan hubungan yang menghubungkan ke dokumen-dokumen tersebut. • Penggelintaran dalam tatasusunan ini ialah berdasarkan penggelintaran binari. • Kebaikan : senang nak diimplementasi • Keburukan : pengemaskinian indeks agak mahal

  19. Tatasusunan Terisih • Penghasilan tatasusunan fail songsang terisih boleh dibahagi kepada 2 atau 3 langkah: • Teks yang digunakan sebagai input dihuraikan menjadi senarai perkataan-perkataan berserta dengan lokasinya dalam teks (tentukan penggunaan katahenti dan cantasan sama ada perlu dimasukkan atau tidak. Ini bergantung kepada kekangan penggunaan masa dan storan dalam operasi pengindeksan). • Senarai perkataan di songsangkan dari senarai perkataan dalam susunan lokasi ke senarai perkataan terisih bagi kegunaan carian. Pengisihan dibuat dalam susunan tertentu beserta semua lokasi yang dikaitkan bagi setiap term/perkataan.

  20. Tatasusunan Terisih • Proses lanjutan terhadap fail songsang yang terhasil seperti meletakkan pemberat sebutan atau penyusunan semula atau penggunaan pemadatan (compression) bagi fail. (proses ini adalah opsional)

  21. Pohon B Pohon-B biasanya digunakan untuk tujuan gelintaran data. Ia mesti mempunyai nombor kunci dan anak. Pohon pada order m nerupakan pohon dimana setiap nod mempunyai sebanyak-banyaknya m anak. Bagi setiap nod, jika k merupakan bilangan sebenar anak pada nod, maka k-1 merupakan bilangan kunci pada nod Rujuk rajah dibawah dimana baris pertama menunjukkan nod bagi setiap kunci manakala baris kedua menunjukkan penunjuk ke kunci anak.

  22. Pohon B • Jika pohon gelintar dalam order 4 maka ia harus memenuhi syarat berikut • The keys in each node are in ascending order. • Bagi setiap nod jika berikut adalah benar. • Sub pokok bermula dari rekod Node.Branch[0] hanya ada kunci yang kurang dari Node.key[0] • Sub pokok bermula dari rekod Node.Branch[1] hanya ada kunci yang lebih dari Node.key[0] dan pada masa yang sama kurang dari Node.Key[1] • Sub pokok bermula dari rekod Node.Branch[2] hanya ada kunci yang lebih dari Node.key[1] dan pada masa yang sama kurang dari Node.Key[2] • Sub pokok bermula dari rekod Node.Branch[3] hanya ada kunci yang lebih dari Node.key[2]

  23. Pohon B • Berikut merupakan contoh bagi pohon-B dengan order 5. Ini bermaksud semua nod luar mempunyai sekurang-kurangnya ceil(5/2) = 3 anak. Bilangan maksimum anak bagi nod adalah 5 (4 adalah bilangan maksimum kunci). Setiap nod daun mesti mengandungi sekurang-kurangnya 2 kunci.

  24. Pohon B (Kemasukkan Data Baru) • Katakan kemasukkan data baru akan dibuat ke atas pohon-B yang kosong di mana ia menggunakan order 5. • Diberi huruf-huruf berikut : C N G A H E K Q M F W L T Z D P R X Y S. • Ini bermaksud nod boleh mempunyai maksima 5 anak dan 4 kunci. Semua nod selain akar mesti mempunyai minimum 2 kunci. • 4 huruf dimasukkan pada nod seperti rajah disebelah

  25. Pohon B (Kemasukkan Data Baru) Masukkan E, K, dan Q Masukkan H, Masukkan M

  26. Pohon B (Kemasukkan Data Baru) Huruf F, W, L, dan T masuk Z

  27. Pohon B (Kemasukkan Data Baru) Masukkan D Masuk S

  28. Pohon B (Penghapusan Data) Penghapusan huruf H

  29. Pohon B (Penghapusan Data) Hapuskan huruf T.

  30. Cincangan Apa itu Cincangan ? • Teknik untuk menentukan indeks atau lokasi untuk menyimpan data pada struktur data. • Fungsi cincangan : • Untuk menghantar kunci carian/gelintar. • Merupakan satu transformasi kepada bentuk kunci • Kebiasaannya dalam bentuk formula matematik • Memulangkan indeks dimana akan disimpan dan untuk capaian data pada jadual.

  31. Konsep Asas We can think of hashing as a key-to-address transformation  the keys map to addresses in a list.

  32. Cincangan • Fungsi cincang ialah fungsi h(k) yang menukarkan data kepada kunci iaitu suatu alamat bagi suatu julat 0  SaizJadual-1 • Fungsi cincang digunakan untuk memetakan kekunci ke dalam slot di dalam Jadual cincangan. • Contoh : • Katakan kita menentukan untuk menggunakan 1000 alamat maka jika U merupakan semua kemungkinan set kekunci, maka fungsi hash adalah dari U ke {0, 1, 2, …..999}

  33. Contoh Hash(const char *Key, const int TableSize) { int HashVal = 0; while (*key != ‘\0’) HashVal += *key++; return HashVal % TableSize } T —— U(universe of keys) —— k1 —— K(actualkeys) k4 k5 —— k7 —— k3 k2 k8 k6 ——

  34. Fungsi cincangan yang baik for (hash=len; len--;) { hash = ((hash<<5)^(hash>>27))^*key++; } hash = hash % prime;

  35. T —— U(universe of keys) —— k1 —— K(actualkeys) k4 k5 —— k7 —— k3 k2 k8 k6 —— Cincangan Namun begitu, terdapat kekunci yang berbeza tetapi dihantar alamat yang sama maka akan berlaku perlanggaran (collision) Seperti contoh sebelum, di mana terdapat dua atau lebih yang bermula dengan 2 huruf pertama yang sama. Maka satu proses yang dinamakan cincangan semula (rehashing) perlu dilakukan

  36. Cincangan Semula (Rehashing) Fungsi Cincangan semula Fungsi kedua yang boleh digunakan untuk memilih lokasi jadual bagi item baru yang akan dimasukkan. Jika lokasi tersebut juga telah digunakan maka fungsi rehash boleh digunakan bagi mendapat lokasi ketiga dan seterusnya. • Contoh mudah fungsi rehash : • rehash(k) = (k + 1) % prime

  37. Cincangan Semula (Rehashing) Kaedah untuk mengurangkan perlanggaran • Cuba dapatkan fungsi cincangan yang terbaik untuk penaburan rekod • Penggunakan ruang ingatan yang lebih besar. Meningkatkan ruang pengalamatan, contohnya jika keperluan ialah 1000 maka lebihkan sehingga 2000 ruang tambahan. • Letakkan lebih dari satu rekod pada satu alamat (penggunaan buckets)

  38. T U(universe of keys) —— k1 k4 —— —— k1 —— k4 K(actualkeys) k5 —— k7 k5 k2 k7 —— —— k3 k2 k8 k3 —— k6 k8 k6 —— —— Rantaian (Chaining) • Chaining puts elements that hash to the same slot in a linked list:

  39. Hashing (Abu Ata) • Memudahkan sesuatu alamat disimpan dan dicapai secara terus serta cepat dan betul. • Dikira berdasarkan Kod ASCII bagi sesuatu huruf dan dijadi penghubung antara huruf-huruf perkataan yang diindeks • Hubungan dikira berdasarkan susunan huruf antara set huruf dan untuk huruf berikutnya berdasarkan susunan huruf yang bersebelahan. • Mungkin berlaku perlanggaran. Cincangan semula dilakukan dan satu alamat baru akan dijanakan bagi mendapatkan satu rekod yang kosong.

  40. Hashing (Abu Ata) • Semua huruf ditukar kepada huruf kecil • Set 26 huruf abjad diberi nilai berdasarkan susunan jujukan dalam set abjad contoh : a=1, b=2, c=3 ……..,y=25,z=26 • Huruf bagi suatu perkataan dan huruf yang berikutnya dan pengiraan adalah seperti berikut • Kedudukan huruf pertama dalam set abjad (peraturan 2) • Kedudukan huruf kedua dalam set abjad (peraturan 2) • Keputusan pada (i) di darab dengan 26 • Campur keputusan pada (ii) dan (iii) • Campur keputusan bagi peraturan di 2 dengan peraturan di 3

  41. Basic Concepts • In this case, we must use the collision resolution algorithm to determine the next possible location for the data and continue until we find the correct data. • Each calculation of an address and test for success is known as a probe. Sumber : http://www.ee.udel.edu/~durbano/teaching/CISC220/slides/38

  42. Hashing Methods • There are several hashing methods that we will discuss: • Direct • Subtraction • Modulo-Division • Digit Extraction • Midsquare • Folding • Rotation • Pseudorandom Generation

  43. Direct Method • In direct hashing, the key is the address without any algorithmic manipulation.

  44. Direct Method • In this case, the hash table must contain an element for every possible key. • Although it has a limited use, it is powerful in the sense that it is easy to code and there are no synonyms.

  45. Direct Method • As an example, consider a small company with less than 100 employees. • Each employee is assigned an employee number (from 0 to 99). • By storing the employees in an array of size 100, we can reference an employee simply by using the employee number as the index into the array.

  46. Direct Method • Obviously, the direct method has limited uses. Namely, it can only be used on small data sets. • For example, it would be impractical to use direct hashing via the SSN of our employees. • If we did, we would have a 9 digit number as the index into our array (i.e., we would need an array of size 1 billion but would use less than 100 entries!)

  47. Subtraction Method • Sometimes, keys may be consecutive, but may not start from ‘1’. • Consider our small company – what if we assigned employee numbers from 1000 to 1099? • In this case, our hashing function would simply subtract 1000 from the key value to produce the address (0 to 99).

  48. Subtraction Method • Algorithm: address = key – subtractionConstant • As with the direct method, the subtraction method is easy to implement, guarantees no collisions, and has limited uses.

  49. Modulo-Division Method • Also known as the division remaindermethod, the modulo-division method divides the key by the array size and uses the remainder for the address. • Algorithm address = key % listSize

  50. Modulo-Division Method • Although this algorithm will work with any size list, we typically choose a list size that is a prime number. • This has the effect of reducing the number of collisions.