Pronalaenje informacija metodom invertovanih lista Cvetana Krstev as

  • Slides: 30
Download presentation
Pronalaženje informacija metodom invertovanih lista Cvetana Krstev (čas 2)

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

Analiza sadržaja n n n Identifikatori sadržaja se kače uz uskladišteni tekst. Oni se

Analiza sadržaja n n n Identifikatori sadržaja se kače uz uskladišteni tekst. Oni se nazivaju: q 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? n Kako operacije za pronalaženje teksta

Kako to utiče na realizaciju sistema za pronalaženje? n 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 q q q n 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 3 kriterijuma.

Predstavljanje dokumenata indeksnim terminima n U operativnom okruženju, uskladišteni zapisi se predstavljaju skupom indeksnih

Predstavljanje dokumenata indeksnim terminima n 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 n n Vektorski upiti predstavljaju skup termina

Postavljanje upita indeksnim vektorima i bulovskim operatorima n n 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: q or tretira dva termina kao sinonime. U stvari, za dati upit T 1 or T 2, prisustvo bilo kog od tih termina u zapisu je dovoljno za njegovo pronalaženje; q and kombinuje termine u frazu. Upit T 1 and T 2 znači da oba termina moraju da bude prisutna da bi zapis bio pronađen. q 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 T 1 and not T 2 pronalazi one zapise koji sadrže T 1 pod uslovom da T 2 u zapisu nije prisutan. 5

Koji se zahtevi postavljaju pred operativni sistem za pronalaženje n n Bilo da se

Koji se zahtevi postavljaju pred operativni sistem za pronalaženje n n 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: q q pristup datotekama mora da bude praktično trenutan, onoliko 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 n n n Ovi zatevi nameću

Uobičajeni odgovor na ove zahteve – invertovani indeks n n n 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 n n n Cela datoteka zapisa koji sadrže dokumenta se

Proces formiranja invertovanog indeksa n n n 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) n Uzorak od 4 zapisa koji se identifikuje

Formalni primer – matrica zapisa (dokumenata) n 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. T 1 T 2 T 3 T 4 Z 1 1 1 0 1 Z 2 0 1 1 1 Z 3 1 0 1 1 Z 4 0 0 1 1 Zapis 2 se predstavlja vektorom termina (to je vrsta u matrici) (0, 1, što znači da termin 1 nije pridružen zapisu, a da ostala tri termina j 9

Invertovani indeks n vrsta i početne matrice postaje kolona i invertovane reprezentacije. Svaka vrsta

Invertovani indeks n 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. T 1 T 2 T 3 T 4 Z 1 1 1 0 1 Z 2 0 1 1 1 Z 3 1 0 1 1 Z 4 0 0 1 1 Z 2 Z 3 Z 4 T 1 1 0 T 2 1 1 0 0 T 3 0 1 1 1 T 4 1 1 Vrsta 2 invertovane matrice iz prethodne tabele je predstavljena sa (1, 1, što ukazuje da je T 2 pridružen Z 1 i Z 2, ali nije pridružen Z 3 i Z 4. 10

Invertovani indeks n n n Drugi način predstavljanja invertovanog indeksa: T 1 Z 1,

Invertovani indeks n n n Drugi način predstavljanja invertovanog indeksa: T 1 Z 1, Z 3 T 2 Z 1, Z 2 T 3 Z 2, Z 3, Z 4 T 4 Z 1, Z 2, Z 3, Z 4 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 11 poredak.

Primer – prvi dokument n n D 1: Juneće šnicle posolite, utrljajte vegetu i

Primer – prvi dokument n n D 1: 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 n n D 2: Teleće šnicle špikovati slaninom i belim

Primer – drugi dokument n n D 2: 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 n n D 3: Teleće meso izrezati na tanke odreske,

Primer – treći dokument n n D 3: 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, jaja, brašno, mrvice, maslac 14

Primer – četvrti dokument n n D 4: U vodu staviti češnjak da odstoji

Primer – četvrti dokument n n D 4: 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 n n D 5: Svinjsko meso samleti na mašini za

Primer – peti dokument n n D 5: 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 n n n beli luk, D 2 biber, D 1,

Primer - invertovani indeks n n n beli luk, D 2 biber, D 1, D 4, D 5 brašno, D 3 crni luk, D 1, D 4, D 5 češnjak, D 4 jaja, D 3 juneće meso, D 1 lovorov list, D 1 ljuta paprika, D 5 maslac, D 3 mrvice, D 3 n n n n n orasi, D 2 pavlaka, D 2 puter, D 2 slanina, D 1, D 2 so, D 3, D 5 soda bikarbona, D 4 svinjsko meso, D 5 teleće meso, D 2, D 3, D 4 ulje, D 4, D 5 vino, D 1, D 2 17

Invertovano-indeksne operacije n Invertovano-indeksne operacije koje su neophodne da bi se dobili odgovori na

Invertovano-indeksne operacije n 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 (Z 1) uključen u prvu od lista, drugi zapis (Z 2) je prisutan u obe ulazne liste, a Z 3 i Z 4 su uključeni samo u drugu listu. T 2 Z 1, Z 2 T 3 Z 2, Z 3, Z 4 18

Algoritam spajanja lista n Kada su identifikatori zapisa iz invertovane matrice uređeni u rastućem

Algoritam spajanja lista n 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 lista ako je kraj obe liste onda kraj; inače ako je kraj

Algoritam spajanja lista ako je kraj obe liste onda kraj; inače ako je kraj jedne liste onda prebaci u izlaznu listu sve preostale elemente druge liste i završi; inače Uzmi tekući element E 1 i iz prve liste i tekući element E 2 j iz druge liste ako je E 1 i < E 2 j onda prebaci E 1 i element u izlaznu listu element E 1 i+1 postaje novi tekući element ponovi proces inače ako je E 1 i > E 2 j onda prebaci E 2 j element u izlaznu listu element E 2 j+1 postaje novi tekući element ponovi proces inače prebaci E 1 i i E 2 j elemente u izlaznu listu element E 1 i+1 postaje novi tekući element E 2 j+1 postaje novi tekući element ponovi proces. 20

Vektorski upit n Za vektorske upite, koji se sastoje od termina bez bulovskih operatora,

Vektorski upit n 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 n (T 2, T 3, T 4) T 2: Z 1,

Primer vektorskog upita n (T 2, T 3, T 4) T 2: Z 1, Z 2 T 3: Z 2, Z 3, Z 4 T 4: Z 1, Z 2, Z 3, Z 4 Sp(T 2, T 3): Z 1, Z 2, Z 3, Z 4 Sp(Sp(T 2, T 3), T 4): Z 1, Z 2, Z 3, Z 4 (T 1, T 2, T 4): Z 1(2), Z 2(3), Z 3(2), Z 4(2) r(T 1, T 2, T 4): Z 2(3), Z 1(2), Z 3(2), Z 4(2) 22

Bulovski and upit n n Za bulovske and upite, kakav je (Ti Tj), proizvodi

Bulovski and upit n n 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. (T 2 T 3) T 2 : Z 1, Z 2 T 3 : Z 2, Z 3, Z 4 Sp(T 2, T 3 ): Z 1, Z 2, Z 3, Z 4 (T 2 T 3): Z 2 23

Bulovski or upit n n Za bulovske or-upite, kakav je (Ti Tj), proizvodi se

Bulovski or upit n n 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. (T 1 T 2) T 1: Z 1, Z 3 T 2: Z 1, Z 2 Sp(T 1, T 2 ): Z 1, Z 2, Z 3 (T 1 T 2): Z 1, Z 2, Z 3 24

Bulovski not upit n n n Za bulovske not-upite, kakav je (Ti Tj), konstruiše

Bulovski not upit n n n 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) q q q 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 n n n n (T 1 T 3) T 1: Z

Bulovski not upit n n n n (T 1 T 3) T 1: Z 1, Z 3 T 3 : Z 2, Z 3, Z 4 Sp(T 1, T 3 ): Z 1, Z 2, Z 3, Z 4 (T 1 T 3): Z 3 Sp(T 1, (T 1 T 3)) Z 1, Z 3 (T 1 T 3): Z 1 26

Složeniji primer: ((T 1 T 2) T 3) T 1 T 2 T 3

Složeniji primer: ((T 1 T 2) T 3) T 1 T 2 T 3 Sp(T 1, T 2): (T 1 T 2): Sp((T 1 T 2), T 3): ((T 1 T 2) T 3): Sp(((T 1 T 2) T 3), (T 1 T 2)): (T 1 T 2) T 3): Z 1, Z 3 Z 1, Z 2, Z 3, Z 4 Z 1, Z 2, Z 3, Z 4 Z 2, Z 3 Z 1, Z 2, Z 3 Z 1 27

Prednosti invertovano-indeksnih operacija n Ovako opisani proces invertovanog indeksiranja je veoma značajan sa stanovišta

Prednosti invertovano-indeksnih operacija n 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

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: D 2, D 3, D 4 beli luk: D 2 puter: D 2 Sp(beli luk, puter): D 2, D 2 (beli luk puter): D 2 Sp(teleće meso, (beli luk puter)): D 2, D 3, D 4 (teleće meso (beli luk puter)): D 2 Sp((teleće meso (beli luk puter)), teleće meso): D 2, D 3, D 4 teleće meso (beli luk puter)): D 3, D 4 n 29

Nedostaci bulovskih operatora n Konvencionalna bulovska logika, kada se implementira preko operacija nad invertovanim

Nedostaci bulovskih operatora n 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