Pronala ženje informacija metodom invertovanih lista
-
Upload
kennan-sosa -
Category
Documents
-
view
32 -
download
4
description
Transcript of Pronala ženje informacija metodom invertovanih lista
Pronalaženje informacija metodom invertovanih lista
Cvetana Krstev
(čas 2)
Analiza sadržaja Identifikatori sadržaja se kače uz uskladišteni tekst.
Oni se nazivaju: ključne reči (keywords), indeksni termini (index
terms) ili deskriptori (descriptors). Za svaki indeksni termin se pretpostavlja da opisuje
sadržaj teksta samo do određene granice, ali ne kompletno ili ne dovoljno jasno, tako da se veliki broj različitih indeksnih termina može prikačiti uz svaki dokument ili tekst.
Ne mora da bude korisno insistiranje na potpunom slaganju između termina upita i dokumenata. Umesto toga pronalaženje neke stavke može se zasnivati na dovoljnom stepenu slaganja između skupa identifikatora koji su prikačeni uz upite i dokumenta, a koji je utvrđen korišćenjem nekog aproksimativnog ili delimičnog metoda slaganja.
2
Kako to utiče na realizaciju sistema za pronalaženje? Kako operacije za pronalaženje teksta zavise
direktno od toga kakva se reprezentacija koristi za opis uskladištenih zapisa, jasno je da značajan napor mora da se uloži u analizu sadržaja uskladištenih tekstova, izradu identifikatora sadržaja, i poređenje deskriptora upita i dokumenata.
U sistemima za upravljanje bazama podataka problem analize sadržaja se ne javlja (bar ne na konceptualnom nivou). Sadržaj podataka kao što su ime osobe, njena starost, klasifikacija posla i zarada je jasan te se jednostavno mogu doneti odluke pri pronalaženju korišćenjem ovakvih kriterijuma.
3
Predstavljanje dokumenata indeksnim terminima U operativnom okruženju, uskladišteni
zapisi se predstavljaju skupom indeksnih termina koji se nakad zove i indeksni vektor. Terminima obično nije pridružina težina, premda u nekim situacijama terminima može da se pridruži težina koja odražava njihov relativni značaj za dokument. Upiti se na sličan način mogu formulisati korišćenjem skupa termina bez težina i skupa termina sa težinama.
4
Postavljanje upita indeksnim vektorima i bulovskim operatorima Vektorski upiti predstavljaju skup termina Kod bulovskih upita se termini spajaju logičkim
bulovskim operatorima koji obezbeđuju vezu između termina. To su operatori: or tretira dva termina kao sinonime. U stvari, za dati
upit T1 or T2, prisustvo bilo kog od tih termina u zapisu je dovoljno za njegovo pronalaženje;
and kombinuje termine u frazu. Upit T1 and T2 znači da oba termina moraju da bude prisutna da bi zapis bio pronađen.
not je restrikcija, ili sužavanje termina, i on se obično koristi u kombinaciji sa and operatorom da bi se ograničila primenljivost nekog termina. Upit T1 and not T2 pronalazi one zapisa koji sadrže T1 pod uslovom da T2 u zapisu nije prisutan.
5
Koji se zahtevi postavljaju pred operativni sistem za pronalaženje Bilo da se zahtevi za informacijama izražavaju kao
skupovi termina ili kao bulovske kombinacije termina, operacije pretraživanja moraju da identifikuju one uskladištene zapise koji sadrže određenu kombinaciju termina.
U praksi, funkcionalno pretraživačko okruženje se karakteriše sa dva glavna zahteva: pristup datotekama mora da bude praktično ternutan,
onoliko koliko korisnik može da čeka ispred računara; i broj ključnih reči ili indeksnih termina koje treba u
određenoj situaciji obraditi može da bude veoma velik recimo reda veličine desetine hiljada ili stotine hiljada ili miliona.
6
Uobičajeni odgovor na ove zahteve – invertovani indeks Ovi zatevi nameću potrebu korišćenja vrlo efikasnih metoda
organizovanja zapisa (koji sadrže dokumenta). Uobičajeno rešenje se zasniva na odvojenom gustom
indeksu za svaki termin koji se u sistemu koristi. To jest, za svaki termin konstruiše se odvojeni indeks koji skladišti identifikatore zapisa, ili adrese zapisa, za sve zapise koje se mogu identifikovati tim terminom. Skup ovakvih indeksa za sve dozvoljene termine je poznat kao invertovani indeks ili invertovana datoteka.
Sa invertovanim indeksom, skup zapisa koji odgovaraju datoj formulaciji upita može se efikasno odrediti. Naime, identifikatori svih pronađenih stavki mogu se dobiti izdvajanjem iz invertovanog indeksa liste identifikatora zapisa koji odgovaraju svakom terminu iz upita, i daljim kombinovanjem ovih identifikatora zapisa na odgovarajući način.
7
Proces formiranja invertovanog indeksa Cela datoteka zapisa koji sadrže dokumenta se
prvo predstavlja u obliku matrice indeksiranih zapisa, u kojoj svaka vrsta predstavlja zapis, ili dokument, a svaka kolona specifikuje pridruživanje određenog termina zapisima kolekcije. (Kako se termini pridružuju dokumentima, u drugom delu kursa).
Ova matrica zapisa i termina se zatim invertuje (u stvari, transponuje) na takav način da sada svaka vrsta invertovane matrice specifikuje koji zapisi odgovaraju nekom određenom terminu.
Vrste invertovane matrice termina i zapisa se zatim obrađuju u skladu sa određenom specifikacijom upita da bi se odredio skup zapisa koji odgovaraju na upit.
8
Formalni primer – matrica zapisa (dokumenata) Uzorak od 4 zapisa koji
se identifikuje preko četiri termina. Cifra 1 na preseku vrste i i kolone j znači da je termin Tj pridružen zapisu Zi. Cifra 0 na preseku vrste i i kolone j znači da termin Tj nije pridružen zapisu Zi.
T1 T2 T3 T4
Z1 1 1 0 1
Z2 0 1 1 1
Z3 1 0 1 1
Z4 0 0 1 1
Zapis 2 se predstavlja vektorom termina (to je vrsta u matrici) (0,1,1,1), što znači da termin 1 nije pridružen zapisu, a da ostala tri termina jesu.
9
Invertovani indeks
vrsta i početne matrice postaje kolona i invertovane reprezentacije. Svaka vrsta invertovane matrice prema tome predstavlja listu identifikatora zapisa koji odgovaraju određenom terminu.
Z1 Z2 Z3 Z4
T1 1 0 1 0
T2 1 1 0 0
T3 0 1 1 1
T4 1 1 1 1
Vrsta 2 invertovane matrice iz prethodne tabele je predstavljena sa (1,1,0,0), što ukazuje da je T2 pridružen Z1 i Z2, ali nije pridružen Z3 i Z4.
10
Invertovani indeks
Drugi način predstavljanja invertovanog indeksa:T1 Z1, Z3T2 Z1, Z2T3 Z2, Z3, Z4T4 Z1, Z2, Z3, Z4
Predpostavlja se da je invertovani indeks uređen u rastućem redosledu termina što omogućava efikasno pronalaženje termina u indeksu. Lista identifikatora zapisa pridruženih svakom terminu je takođe uređena u rastućem redosledu.
Šta je princip uređivanja zavisi od samog sistema – nama je najlakše da smatramo da je to abecedni poredak.
11
Primer – prvi dokument
D1: Juneće šnicle posolite, utrljajte vegetu i ostavite da odstoje. Za to vreme ispržite na ulju seckan crni luk. Slaninu isecite na rezance. U vatrostalnu posudu poređajte meso, luk i odozgo slaninu, biber i lovorov list. Prelijte belim vinom. Kuvajte na umerenoj vatri.
Termini: juneće meso, crni luk, slanina, biber, lovorov list, vino
12
Primer – drugi dokument
D2: Teleće šnicle špikovati slaninom i belim lukom, uvaljati u rastopljeni puter i peći, dok ne porumene na 230 stepeni. Tada dodati pavlaku i vino pa vratiti u rernu, na 180 stepeni, oko sat vremena. Napraviti bešamel i dodati mu seckane orahe.
Termini: teleće meso, beli luk, slanina, puter, pavlaka, vino, orasi
13
Primer – treći dokument
D3: Teleće meso izrezati na tanke odreske, istući ih batom i posoliti. Umutiti jaja, sa žlicom mleka. Odreske s obe strane uvaljati u brašno, zatim u umućena jaja i na kraju u mrvice. S obe strane zapeći na vrelom maslacu. Stavite masnoće da odresci u njoj plivaju.
Termini: teleće meso, so, jaja, brašno, mrvice, maslac
14
Primer – četvrti dokument
D4: U vodu staviti češnjak da odstoji par sati. Meso se pomeša i dva puta samelje sa crvenim lukom, dobro se umeša sa vodom u kojoj je bio češnjak, uljem, biberom i sodom bikarbonom posoliti. Ostaviti preko noći u donjem delu hladnjaka. Oblikovati čevapčiće veličine kažiprsta i peći 5 do 10 minuta uz često okretanje.
Termini: teleće meso, crni luk, češnjak, ulje, biber, soda bikarbona
15
Primer – peti dokument
D5: Svinjsko meso samleti na mašini za mlevenje mesa, dodati ulje i crni luk, dobro izmešati, posoliti i popapriti po ukusu. Po želji dodati naseckane ljute paprike. Dobro mešati rukama i napraviti pljeskavice debljine 1 cm. Peći na jakoj vatri. Po želji napraviti marinadu od ulja i luka te upravo pečene vruće pljeskavice na kratko umočiti u marinadu.
Termini: svinjsko meso, crni luk, ulje, so, biber, ljuta paprika
16
Primer - invertovani indeks
beli luk, D2 biber, D1, D4, D5 brašno, D3 crni luk, D1, D4, D5 češnjak, D4 jaja, D3 juneće meso, D1 lovorov list, D1 ljuta paprika, D5 maslac, D3 mrvice, D3
orasi, D2 pavlaka, D2 puter, D2 slanina, D1, D2 so, D3, D5 soda bikarbona, D4 svinjsko meso, D5 teleće meso, D2, D3, D4 ulje, D4, D5 vino, D1, D2
17
Invertovano-indeksne operacije Invertovano-indeksne operacije koje su
neophodne da bi se dobili odgovori na upite zasnivaju se na procesu spajanja lista koji uzima dve ili više vrsta iz invertovane matrice termina i zapisa i proizvodi jednu kombinovanu listu identifikatora zapisa. Na primer, spajanje lista za vrste 2 i 3 invertovane matrice ukazuje da je zapis 1 (Z1) uključen u prvu od lista, drugi zapis (Z2) je prisutan u obe ulazne liste, a Z3 i Z4 su uključeni samo u drugu listu.
T2 Z1, Z2
T3 Z2, Z3, Z4
18
Algoritam spajanja lista
Kada su identifikatori zapisa iz invertovane matrice uređeni u rastućem redosledu identifikatora zapisa kakav je slučaj u prvom primeru, onda se operacija spajanja lista može izvršiti jednim prolazom kroz ulazne liste. U sledećem pojednostavljenom algoritmu operacije spajanja lista se najmanji element, a to je zapis čiji je identifikator najmanji, redom prenosi u spojenu listu sve dok obe ulazne liste nisu iscrpene.
19
Algoritam spajanja listaako je kraj obe liste onda kraj; inače ako je kraj jedne listeonda prebaci u izlaznu listu sve preostale elemente druge liste i završi;inače Uzmi tekući element E1
i iz prve liste itekući element E2
j iz druge listeako je E1
i < E2j
onda prebaci E1i element u izlaznu listu
element E1i+1 postaje novi tekući element
ponovi procesinače ako je E1
i > E2j
onda prebaci E2j element u izlaznu listu
element E2j+1 postaje novi tekući element
ponovi procesinače prebaci E1
i i E2j elemente u izlaznu listu
element E1i+1 postaje novi tekući element
element E2j+1 postaje novi tekući element
ponovi proces.
20
Vektorski upit
Za vektorske upite, koji se sastoje od termina bez bulovskih operatora, kakav je, na primer (Ti, Tj, Tk), konstruiše se spojena lista zapisa za vrste i, j i k invertovanog indeksa, i zapisi se prenose na izlaz u opadajućem redosledu u odnosu na broj pojavljivanja u spojenoj listi. Tako se pronalaze stavke koje imaju n upitnih termina pre onih koje imaju n-1 upitni termin i tako dalje sve do onih stavki koje sadrže samo jedan upitni termin.
21
Primer vektorskog upita
(T1, T2, T4)
T1: Z1, Z3
T2: Z1, Z2
T4: Z1, Z2, Z3, Z4
Sp(T1, T2): Z1, Z1, Z2, Z3
Sp(Sp(T1, T2), T4): Z1, Z1, Z1, Z2, Z2, Z3, Z3, Z4
(T1, T2, T4): Z1(3), Z2(2), Z3(2), Z4(1)
22
Bulovski and upit
Za bulovske and upite, kakav je (Ti Tj), proizvodi se spojena lista za vrste i, j invertovanog indeksa i svi duplikati zapisa, (a to su oni koji sadrže i termin Ti i termin Tj) su izlaz upita.
(T2 T3)
T2 : Z1, Z2
T3 : Z2, Z3, Z4
Sp(T2,T3 ): Z1, Z2, Z2, Z3, Z4
(T2 T3): Z223
Bulovski or upit
Za bulovske or-upite, kakav je (Ti Tj), proizvodi se spojena lista za vrste i, j i sve različite stavke iz spojene liste su izlaz koji odgovara stavkama koje imaju prvi ili drugi termin ili oba.
(T1 T2)
T1: Z1, Z3
T2: Z1, Z2
Sp(T1,T2 ): Z1, Z1, Z2, Z3
(T1 T2): Z1, Z2, Z3
24
Bulovski not upit Za bulovske not-upite, kakav je (Ti Tj),
konstruiše se kao i ranije spojena lista za termine Ti i Tj, a stavke koje se pojavljuju samo jednom se uklanjaju iz liste čime se dobija lista za (Ti Tj). Lista za Ti se tada spaja za listom (Ti Tj) i stavke koje se pojavljuju više puta se uklanjaju iz liste.
(Ti Tj) pojavljuje se i u Ti i u Tj
Sp((Ti Tj), Ti) nula pojavljivanja → ne pojavljuje se u Ti (da li se
pojavljuje u Tj nas i ne interesuje) dva pojavljivanja → pojavljuje se i u Ti i u Tj
jedno pojavljivanje → pojavljuje se samo u Ti
25
Bulovski not upit
(T1 T3)
T1: Z1, Z3
T3 : Z2, Z3, Z4
Sp(T1, T3 ):Z1, Z2, Z3, Z3, Z4
(T1 T3): Z3
Sp(T1, (T1 T3)) Z1, Z3, Z3
(T1 T3): Z1
26
Složeniji primer: ((T1 T2) T3)T1 Z1, Z3
T2 Z1, Z2
T3 Z2, Z3, Z4
Sp(T1, T2): Z1, Z1, Z2, Z3
(T1 T2): Z1, Z2, Z3
Sp((T1 T2), T3): Z1, Z2, Z2, Z3, Z3, Z4
((T1 T2) T3): Z2, Z3
Sp(((T1 T2) T3), (T1 T2)): Z1, Z2, Z2, Z3, Z3
(T1 T2) T3): Z1
27
Prednosti invertovano-indeksnih operacija Ovako opisani proces invertovanog
indeksiranja je veoma značajan sa stanovišta efikasnosti obrade: pre svega, može se zadovoljiti upit koji pronalazi bilo koji željeni podskup zapisa. Osim toga, ne mora se pristupati zapisima glavne datoteke osim u završnoj fazi, kada se pronalaze informacije iz zapisa za koje se već zna da odgovaraju upitima. Na taj način se velikom brzinom dobijaju odgovori i u sistemima koji se zasnivaju na radu sa datotekama sa veoma velikim brojem zapisa.
28
Kako ćete najbolje postaviti upit ako vas interesuju recepti u kojima se koristi teleće meso, ali se ne koristi ni beli luk ni puter? (teleće meso (beli luk puter))teleće meso: D2, D3, D4beli luk: D2puter: D2Sp(beli luk,puter): D2, D2(beli luk puter): D2Sp(teleće meso, (beli luk puter)): D2, D2, D3,
D4(teleće meso (beli luk puter)): D2Sp((teleće meso (beli luk puter)), teleće meso):
D2, D2, D3, D4teleće meso (beli luk puter)): D3, D4
29
Nedostaci bulovskih operatora Konvencionalna bulovska logika, kada se
implementira preko operacija nad invertovanim listama, pokazuje i neke očigledne nedostatke. Pre svega, zapisi se obično pronalaze iz glavne datoteke u onom redosledu u kome se pojavljuju u invertovanim listama (a to je, najčešće broj zapisa u rastućem redosledu), a ne u nekom opadajućem redosledu u odnosu na očekivanu korist. Osim toga, bulovske operacije se ne mogu lako povezati sa željenom veličinom izlaza. Kada se upiti široko formulišu korišćenjem or-operatora, suviše veliki izlaz može da zatrpa korisnika i da ga obeshrabri. S druge strane, suviše usko formulisani upiti korišćenjem and operatora mogu da generišu nedovoljan izlaz odbacivanjem relevantnih stavki.
30