Pengindeksan Dan Fail Songsang (inverted File)
-
Upload
iliana-briggs -
Category
Documents
-
view
37 -
download
3
description
Transcript of Pengindeksan Dan Fail Songsang (inverted File)
Pengindeksan Dan
Fail Songsang (inverted File)
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.
Posting List panjang
Posting List pendek
Terbaik jika indeks disimpan dalam ingatan utama
Disebabkan saiznya posting list disiimpan dalam disk
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
Termsnova galaxy heat h’wood film role diet fur
10 5 3
5 10
10 8 7
9 10 5
10 10
9 10
5 7 9
6 10 2 8
7 5 1 3
ABCDEFGHI
Document ids
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.docs t1 t2 t3D1 1 0 1D2 1 0 0D3 0 1 1D4 1 0 0D5 1 1 1D6 1 1 0D7 0 1 0D8 0 1 0D9 0 0 1
D10 0 1 1
Terms D1 D2 D3 D4 D5 D6 D7 …
t1 1 1 0 1 1 1 0t2 0 0 1 0 1 1 1t3 1 0 1 0 1 0 0
Pembinaan Fail Songsang Dokumen dihuraikan bagi menghasilkan token dan ia
disimpan bersama dengan ID dokumen
Now is the timefor all good men
to come to the aidof their country
Doc 1
It was a dark andstormy night in
the country manor. The time was past midnight
Doc 2
Term Doc #now 1is 1the 1time 1for 1all 1good 1men 1to 1come 1to 1the 1aid 1of 1their 1country 1it 2was 2a 2dark 2and 2stormy 2night 2in 2the 2country 2manor 2the 2time 2was 2past 2midnight 2
Setelah selesai semua dokumen dihuraikan, maka fail songsang diisih dalam bentuk tersusun.
Term Doc #a 2aid 1all 1and 2come 1country 1country 2dark 2for 1good 1in 2is 1it 2manor 2men 1midnight 2night 2now 1of 1past 2stormy 2the 1the 1the 2the 2their 1time 1time 2to 1to 1was 2was 2
Term Doc #now 1is 1the 1time 1for 1all 1good 1men 1to 1come 1to 1the 1aid 1of 1their 1country 1it 2was 2a 2dark 2and 2stormy 2night 2in 2the 2country 2manor 2the 2time 2was 2past 2midnight 2
Pembinaan Fail Songsang
Term yang berulang pada sesuatu dokumen akan dicantumkan (tambah nilai kekerapan)
Term Doc # Freqa 2 1aid 1 1all 1 1and 2 1come 1 1country 1 1country 2 1dark 2 1for 1 1good 1 1in 2 1is 1 1it 2 1manor 2 1men 1 1midnight 2 1night 2 1now 1 1of 1 1past 2 1stormy 2 1the 1 2the 2 2their 1 1time 1 1time 2 1to 1 2was 2 2
Term Doc #a 2aid 1all 1and 2come 1country 1country 2dark 2for 1good 1in 2is 1it 2manor 2men 1midnight 2night 2now 1of 1past 2stormy 2the 1the 1the 2the 2their 1time 1time 2to 1to 1was 2was 2
Pembinaan Fail Songsang
Kemudian fail boleh dipecahkan kepada dua iaitu
• Fail Dictionary dan
• Fail Postings
Pembinaan Fail Songsang
Dictionary PostingsTerm Doc # Freqa 2 1aid 1 1all 1 1and 2 1come 1 1country 1 1country 2 1dark 2 1for 1 1good 1 1in 2 1is 1 1it 2 1manor 2 1men 1 1midnight 2 1night 2 1now 1 1of 1 1past 2 1stormy 2 1the 1 2the 2 2their 1 1time 1 1time 2 1to 1 2was 2 2
Doc # Freq2 11 11 12 11 11 12 12 11 11 12 11 12 12 11 12 12 11 11 12 12 11 22 21 11 12 11 22 2
Term N docs Tot Freqa 1 1aid 1 1all 1 1and 1 1come 1 1country 2 2dark 1 1for 1 1good 1 1in 1 1is 1 1it 1 1manor 1 1men 1 1midnight 1 1night 1 1now 1 1of 1 1past 1 1stormy 1 1the 2 4their 1 1time 2 2to 1 2was 1 2
Pembinaan 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.
Fail Songsang
Struktur Data yang digunakan pada Fail Songsang
Tatasusunan Terisih (Sorted Arrays) Pohon B Struktur Cincangan (Hashing Structures) Tries (digital search trees)
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
Tatasusunan Terisih
Tatasusunan TerisihPenghasilan tatasusunan fail songsang terisih boleh dibahagi kepada 2
atau 3 langkah:
1. 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).
2. 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.
3. Proses lanjutan terhadap fail songsang yang terhasil seperti meletakkan pemberat sebutan atau penyusunan semula atau penggunaan pemadatan (compression) bagi fail. (proses ini adalah opsional)
Tatasusunan Terisih
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.
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]
Pohon B
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.
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
Masukkan H,
Masukkan E, K, dan Q
Masukkan M
Pohon B (Kemasukkan Data Baru)
Huruf F, W, L, dan T
masuk Z
Pohon B (Kemasukkan Data Baru)
Masukkan D
Masuk S
Pohon B (Kemasukkan Data Baru)
Pohon B (Penghapusan Data)
Penghapusan huruf H
Hapuskan huruf T.
Pohon B (Penghapusan Data)
Hashing Fungsi Hash ialah fungsi h(k) yang menukarkan kunci
kepada suatu alamat bagi suatu julat 0 SaizJadual-1 Fungsi hash digunakan untuk memetakan kekunci ke
dalam slot di dalam Jadual Hash. 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}
kKod ASCII untuk 2 huruf pertama
Hasil darab (d)
h(k)= d mod 1000
BALL 66, 65 66.65 = 4290 290
LOWELL 76, 79 76.79 = 6004 004
TREE 84, 82 84.82 = 6888 888
000
001
..
004 LOWELL
..
290 BALL
…
888 TREE
…
999
hash function ialah hash(key) = key % prime.
• Guna prime = 101. Ini bermaksud jadual akan memegang sehingga 101 rekod iaitu indeks dari 0 100.
• Jika ingin memasukkan 225 ke dalam jadual maka pengiraannya
225 % 101 = 23
Maka data kekunci 225 akan disimpan pada indeks 23
Contoh 2 : Hashing
Namun begitu, terdapat kekunci yang berbeza tetapi dihantar alamat yang sama maka akan berlaku perlanggaran (collision)
Seperti contoh 1, di mana terdapat dua atau lebih yang bermula dengan 2 huruf pertama yang sama.
Maka satu proses yang dinamakan rehashing perlu dilakukan
Rehashing
Contoh mudah fungsi rehash :
rehash(k) = (k + 1) % prime
Fungsi Rehash
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 likasi ketiga dan seterusnya.
Hashing
Kaedah untuk mengurangkan perlanggaran Cuba dapatkan fungsi hash yang terbaik untuk penaburan
rekod Penggunaakn 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)
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.
1. Semua huruf ditukar kepada huruf kecil2. Set 26 huruf abjad diberi nilai berdasarkan susunan jujukan
dalam set abjad contoh : a=1, b=2, c=3 ……..,y=25,z=263. Huruf bagi suatu perkataan dan huruf yang berikutnya dan
pengiraan adalah seperti berikuti. Kedudukan huruf pertama dalam set abjad (peraturan 2)ii. Kedudukan huruf kedua dalam set abjad (peraturan 2)iii. Keputusan pada (i) di darab dengan 26iv. Campur keputusan pada (ii) dan (iii)
4. Campur keputusan bagi peraturan di 2 dengan peraturan di 3
Hashing (Abu Ata)
Tugasan
Apakah Trie dan Patricia. Dapatkan perbezaan antara Trie dan
Patricia. Terangkan bagaimana ianya digunakan
dalam pengimplementasian kamus.