Pronala ženje informacija metodom invertovanih lista

30
Pronalaženje informacija metodom invertovanih lista Cvetana Krstev (čas 2)

description

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 ), i ndeksni termini ( index terms ) ili de s kriptori ( descriptors ). - PowerPoint PPT Presentation

Transcript of Pronala ženje informacija metodom invertovanih lista

Page 1: Pronala ženje informacija metodom invertovanih lista

Pronalaženje informacija metodom invertovanih lista

Cvetana Krstev

(čas 2)

Page 2: Pronala ženje informacija metodom invertovanih lista

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

Page 3: Pronala ženje informacija metodom invertovanih lista

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

Page 4: Pronala ženje informacija metodom invertovanih lista

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

Page 5: Pronala ženje informacija metodom invertovanih lista

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

Page 6: Pronala ženje informacija metodom invertovanih lista

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

Page 7: Pronala ženje informacija metodom invertovanih lista

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

Page 8: Pronala ženje informacija metodom invertovanih lista

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

Page 9: Pronala ženje informacija metodom invertovanih lista

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

Page 10: Pronala ženje informacija metodom invertovanih lista

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

Page 11: Pronala ženje informacija metodom invertovanih lista

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

Page 12: Pronala ženje informacija metodom invertovanih lista

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

Page 13: Pronala ženje informacija metodom invertovanih lista

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

Page 14: Pronala ženje informacija metodom invertovanih lista

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

Page 15: Pronala ženje informacija metodom invertovanih lista

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

Page 16: Pronala ženje informacija metodom invertovanih lista

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

Page 17: Pronala ženje informacija metodom invertovanih lista

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

Page 18: Pronala ženje informacija metodom invertovanih lista

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

Page 19: Pronala ženje informacija metodom invertovanih lista

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

Page 20: Pronala ženje informacija metodom invertovanih lista

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

Page 21: Pronala ženje informacija metodom invertovanih lista

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

Page 22: Pronala ženje informacija metodom invertovanih lista

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

Page 23: Pronala ženje informacija metodom invertovanih lista

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

Page 24: Pronala ženje informacija metodom invertovanih lista

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

Page 25: Pronala ženje informacija metodom invertovanih lista

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

Page 26: Pronala ženje informacija metodom invertovanih lista

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

Page 27: Pronala ženje informacija metodom invertovanih lista

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

Page 28: Pronala ženje informacija metodom invertovanih lista

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

Page 29: Pronala ženje informacija metodom invertovanih lista

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

Page 30: Pronala ženje informacija metodom invertovanih lista

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