Sistemi zasnovani na skaniranju teksta Cvetana Krstev as

  • Slides: 36
Download presentation
Sistemi zasnovani na skaniranju teksta Cvetana Krstev čas 7. 1

Sistemi zasnovani na skaniranju teksta Cvetana Krstev čas 7. 1

Prednosti i nedostaci rada s invertovanim datotekama n n n Sve do sada pomenute

Prednosti i nedostaci rada s invertovanim datotekama n n n Sve do sada pomenute procedure za pronalaženje informacija zasnivaju se na korišćenju invertovanih indeksa za sve termine koji karakterišu dokumenta u kolekciji. Invertovani indeksi su atraktivni u situacijama kada su datoteke veoma velike, što je najčešće slučaj, jer se brzo može dobiti odgovor koristeći informacije koje su prethodno uskladištene u invertovanim indeksnim listama. Osnovni problem rada s invertovanim datotekama je njihovo kreiranje i još više održavanje (u slučajevima kada se dodaju nova dokumenta kolekciji). 2

Alternativa invertovanim datotekama n n n Kada je veličina datoteka mala, a dužine uskladištenih

Alternativa invertovanim datotekama n n n Kada je veličina datoteka mala, a dužine uskladištenih tekstova ograničene, ili su tekstovi ograničenog veka trajanja, odgovori na zahtev za informacijom se mogu dobiti direktno pristupajući tekstu u glavnoj datoteci, bez konsultovanja nekog među-indeksa. U takvim slučajevima moraju se koristiti operacije skaniranja teksta koje sravnjuju reči i termine iz upita direktno sa tekstom dokumenta. Na primer, da bi se pronašla dokumenta koja se odnose na banane, sva dokumenta se mogu skanirati da bi se pronašla ona koja sadrže, recimo, reč (nisku) banana. 3

Na čemu se zasnivaju operacije skaniranja? n n n Operacije skaniranja teksta se zasnivaju

Na čemu se zasnivaju operacije skaniranja? n n n Operacije skaniranja teksta se zasnivaju na poređenju indvidualnih karaktera upita sa karakterima koji su uskladišteni u tekstu dokumenta. Sa porastom broja karaktera u dokumentu, skaniranje postaje sve skuplje, i poređenje karakter po karakter tada postaje preskupo (presporo) za praktično korišćenje. Tada se mora preći ili na tehnologiju invertovanih indeksa ili se moraju koristiti sistemi koji ubrzavaju proces skaniranja teksta. 4

Elementarni postupak skaniranja (metod “grube sile”) n n ključna reč (obrazac) computer tekst problem

Elementarni postupak skaniranja (metod “grube sile”) n n ključna reč (obrazac) computer tekst problem solving is a common paradigm of computer science korak 3: 1: problem solving is a common paradigm of computer science computer korak 41: problem korak 22: solving is a common paradigm of computer science computer problem solving is a common paradigm of computer science korak 2: problem solving is computer a common paradigm of computer science computer korak 23: problem solving is a common paradigm of computer science computer 5

Opšti nedostaci sistema zasnovanih na skaniranju teksta n n Urođeni nedostatak im je nefleksibilnost

Opšti nedostaci sistema zasnovanih na skaniranju teksta n n Urođeni nedostatak im je nefleksibilnost jer traže egzaktno slaganje. Jasno je da se upitni termin (koji se u ovom kontekstu zove obrazac) MELODY ne može sravniti sa pojavom niske MELODIES u tekstu, ili JUNAK, JUNACI i JUNAČKI. Kada se upiti formulišu kao karakterske niske od više reči, redosled reči postaje dodatni problem, jer se upit INFORMATION RETRIEVAL ne može direktno sravniti sa tekstom dokumenta koji sadrži frazu RETRIEVAL OF INFORMATION. 6

Elementarno sravnjivanje niski n n n Elementarno sravnjivanje obrasca prolazi i kroz S i

Elementarno sravnjivanje niski n n n Elementarno sravnjivanje obrasca prolazi i kroz S i kroz P simultano, počevši od kranje levih karaktera obe niske. Dva pokazivača, i i j za niske S i P vode dalje računa o redosledu skaniranja. Na početku se oba pokazivača postavljaju na 1, pa su prva dva karaktera koja se porede s 1 i p 1. Kad god se karakteri koji se porede slažu, uvećava se pokazivač obrasca, pa se sledeći porede s 2 i p 2, zatim s 3 i p 3 i tako redom. Kad god se karakteri koji se porede ne slažu, obrazac se pomera udesno za jednu poziciju i poređenje se nastavlja od početka obrasca; pokazivač obrasca se vraća na 1, a pokazivač teksta se uvećava za 1. 7

Algoritam elementarnog sravnjivanja Slaganje - kraj obrasca Slaganje – nije kraj obrasca neslaganje 8

Algoritam elementarnog sravnjivanja Slaganje - kraj obrasca Slaganje – nije kraj obrasca neslaganje 8

Neefikasnost elementarnog sravnjivanja n n Strategija elementarnog sravnjivanja je efikasna samo kada se obrazac

Neefikasnost elementarnog sravnjivanja n n Strategija elementarnog sravnjivanja je efikasna samo kada se obrazac P sravni sa nekom podniskom teksta S rano u procesu sravnjivanja. Kada se P sravni sa repom dugačke niske teksta, broj poređenja karaktera raste. Najgori je slučaj kada su niske P i S skoro slične, a neslaganje se otkrije tek pred kraj obrasca. U tom najlošijem slučaju broj poređenja karaktera ide do proizvoda dužina obe niske m n. U opštem slučaju je proj poređenja O(m n). U praksi se taj najgori slučaj retko sreće jer je verovatnoća neslaganja mnogo veća od verovatnoće slaganja. 9

Primer neefikasnog slaganja Korak 1 S= a a a. . . a a b

Primer neefikasnog slaganja Korak 1 S= a a a. . . a a b P= a a b Korak 2 P= a a b Najgori slučaj Korak 3 Imali smo P= tačno (n-3)*3 a a bpoređenja … Korak n-3 P= Korak n-2 P= a a b 10

Problemi sa elementarnim sravnjivanjem n n n Elementarno sravnjivanje niski karakteriše pomeranje obrasca uvek

Problemi sa elementarnim sravnjivanjem n n n Elementarno sravnjivanje niski karakteriše pomeranje obrasca uvek za jedno mesto kada se otkrije neslaganje između neka dva para karaktera u S i P. Ovakvo minimalno pomeranje pretpostavlja da ništa nije unapred poznato o kompoziciji bilo teksta S bilo obrasca P. Međutim, neko znanje o tekstu S i obrascu P može se steći: q q n analiziranjem obrasca P unapred ako je do neslaganja došlo na poziciji j obrasca, nešto se zna o prethodnih j-1 karaktera teksta – oni su jednaki sa prethodnih j-1 karaktera obrasca Na osnovu ovog znanja može se izbeći iscrpno poređenje teksta S i obrasca P, već se porede samo neke strateške tačke. 11

Donald Knuth 12

Donald Knuth 12

KMP algoritam (od Knuth, Morris, Pratt) n n I ovim postupkom se skaniraju karakteri

KMP algoritam (od Knuth, Morris, Pratt) n n I ovim postupkom se skaniraju karakteri s leva na desno. Kada se naiđe na neslaganje, obrazac P se ne pomera automatski za 1 već za neki optimalni broj karaktera. Početni deo niske P (glava od P) je sravnjena sa podniskom od S, a onda je došlo do neslaganja kod para si+6 i p 5. Jasno je da do novog sravnjivanja ne može doći na prethodnim pozicijama (i+3, i+4, i+5) osim ako je neka glava sravnjenog dela od P identična sa repom tog istog dela (što je i rep sravnjenog dela od S). 13

Kako je to na primeru n n S: . . n a p o

Kako je to na primeru n n S: . . n a p o l e o n. . P: n a p o n Kada je došlo do neslaganja na poziciji 5 ima li smisla da se obrazac pomera za 1 poziciju? q q n Znamo da je slovo na sledećoj poziciji u tekstu ‘a’ – jer je jednako drugoj poziciji obrasca. Znamo da prva dva slova obrasca nisu ista, tj. nisu ‘a’ – jer smo unapred istražili obazac. Odgovor je, prema tome, NE 14

Kako odrediti šta je optimalno pomeranje? n n n Na primer, ako su p

Kako odrediti šta je optimalno pomeranje? n n n Na primer, ako su p 1 i p 2 identični sa si+4 i si+5, onda će pomeranje obrasca za dve pozicije proizvesti novo slaganje. Ali, ako su p 1 i p 2 identični sa si+4 i si+5, onda su p 1 i p 2 identični i sa p 3 i p 4 i ovakva pravilnost se može unapred utvrditi. Ako se nijedna glava sravnjenog dela od P ne može sravniti sa repom sravnjenog dela od S, onda tu više nema svrhe da se obrazac postavlja, i on se pomera na poziciju neslaganja (u našem primeru si+6). 15

Primer – korak 1 S: b a b c a P: a b c

Primer – korak 1 S: b a b c a P: a b c a c a b n Neslaganje već na prvoj poziciji. Treba pomeriti obrazac P udesno za 1. 16

Primer – korak 2 S: b a b c a P: a b c

Primer – korak 2 S: b a b c a P: a b c a c a b n n n Do neslaganja dolazi posle tri sravnjena karaktera. u sravnjenom delu abc nema delova koji se ponavljaju (nijedna glava od abc nije njen rep) treba poravnati prvi karakter od P sa prvim nesravnjenim karakterom od S. 17

Primer – korak 3 S: b a b c a P: a b c

Primer – korak 3 S: b a b c a P: a b c a c a b n Neslaganje već na prvoj poziciji. Treba pomeriti obrazac P udesno za 1. 18

Primer – korak 4 S: b a b c a P: a b c

Primer – korak 4 S: b a b c a P: a b c a c a b n n Sravnjena je podniska abcabca; Najduža glava ove podniske koja je i njen rep je abca Treba pomeriti obrazac P za tri mesta da bi se ostvarilo poklapanje sa već sravnjenim delom (to je najmanje pomeranje kojim se neće propustiti nijedna potencijalna mogućnost) 19

Primer – korak 5 S: b a b c a P: a b c

Primer – korak 5 S: b a b c a P: a b c a c a b n n pozicija kada je dostignut kraj teksta S (kraj obrasca je prešao preko kraja teksta) q q q n dužina “teksta” n = 16; i=9>n–m+1=7 dužina obrasca m = 10; pozicija obrasca u odnosu na tekst i = 9; obrazac nije sravnjen s tekstom 20

Obrada obrasca unapred - broj pozicija za koje treba pomeriti obrazac u slučaju neslaganja

Obrada obrasca unapred - broj pozicija za koje treba pomeriti obrazac u slučaju neslaganja se izračunava unapred neslaganje na poziciji obrasca P - p nesravnjeni deo karakter obrasca dužina najduže glave koja je identična sa repom -d broj pozicija pomeranja obrasca – f = p –d– 1 1 a a 0 1 2 b ab 0 1 3 c abc 0 2 4 a abca 0 3 5 b abcab 1 3 6 c abcabc 2 3 7 a abcabca 3 3 8 c abcabcac 4 3 9 a abcabcaca 0 8 10 b abcabcacab 1 8 21

KMP metod - zaključak n n Kada se koristi KMP metod, skaniranje i pomeranje

KMP metod - zaključak n n Kada se koristi KMP metod, skaniranje i pomeranje obrasca se vrši uniformno s leva na desno (ni jedan karakter teksta se ne poredi dva puta), pa se ovaj proces može koristiti i za obrasce koji se sastoje od više reči, kao i za paralelno poređenje više različitih niski obrazaca P. Takvo paralelno poređenje postaje korisno kada se obrađuju OR upiti. Može se pokazati da je korišćenjem ove metode očekivan broj karaktera koje treba porediti reda veličine O(n+m) – a to je zbir dužina obrasca i teksta. 22

Vizuelizacija KMP algoritma n Vizuelizacija algoritama za sravnjivanje niski: q q http: //whocouldthat. be/visualizing-string-matching/

Vizuelizacija KMP algoritma n Vizuelizacija algoritama za sravnjivanje niski: q q http: //whocouldthat. be/visualizing-string-matching/ https: //people. ok. ubc. ca/ylucet/DS/Knuth. Morris. Pratt. ht ml 23

Algoritam Boyer-Moore (BM) n n Karakteristika ovog algoritma je da skanira tekst s desna

Algoritam Boyer-Moore (BM) n n Karakteristika ovog algoritma je da skanira tekst s desna u levo. Ovim algoritmom se još više smanjuje broj poređenja i time sravnjivanje postaje još efikasnije. Algoritam funkcioniše na sledeći način: q ako se krajnje desni karakter obrasca ne sravnjuje sa odgovarajućim karakterom teksta, i taj karakter teksta se uopšte ne pojavljuje u obrascu, obrazac se pomera za celu svoju dužinu u desno. q ako se krajnje desni karakter obrasca ne sravnjuje sa odgovarajućim karakterom teksta, ali se taj karakter teksta pojavljuje negde u obrascu, onda se obrazac pomera u desno tako da se taj karakter u obrascu koji je najbliži njegovom desnom kraju (ako ih ima više) poravna sa odgovarajućim karakterom teksta (najmanje pomeranje kojim se ostvaruje slaganje). q ako se krajnje desni karakter obrasca sravnjuje sa odgovarajućim karakterom teksta, onda se poređenje nastavlja ulevo dok n n se ne dođe do početka obrasca (sravnjivanje) ne ustanovi neslaganje na nekoj pozici, kada se ceo postupak ponavlja. 24

Primer rada BM algoritma Problem solving is a common paradigm of computer science 1

Primer rada BM algoritma Problem solving is a common paradigm of computer science 1 2 3 computer blanko se ne pojavljuje nigde u obrascu, 4 computer mir se nedužinom poklapaju, ali m se jednom pojavljuje u obrascu, zato obrazac pomeramo celom u desno pa se obrazac pomera udesno tako da se ova dva m sravne 5 computeru p i r se ne poklapaju, ali p se jednom pojavljuje obrascu, 6 d i r se ne poklapaju, computer ali d se ne javlja u obrascu, pa se obrazac pomera udesno tako da se ova dva p se obrazac pomera u desnocomputer celom dužinom 7 c i r se ne poklapaju, ali czato se nalazi u obrascu, sravne pa se obrazac pomera dok se ta dva c ne poklope sravnjivanje posle 6 pomeranja obrasca i 14 poređenja 25

Kako da BM algoritma zna koliko treba da pomeri obrazac? n n I u

Kako da BM algoritma zna koliko treba da pomeri obrazac? n n I u ovom slučaju obrazac treba da se obradi unapred, pre početka procesa skaniranja. Obrada obrasca je veoma jednostavna, potrebno je na adekvatan način pripremiti niz za svako slovo alfabeta, na sledeći način (m je dužina obrasca) Za sva slova alfabeta pomeranje za celu dužinu obrasca za j od 1 do 26 pomeri[j] m q Za slova koja se javljaju u obrascu, pomeranje za udaljenost tog slova od kraja obrasca za j od 1 do m pomeri[poz_u_alf(obrazac[j])] m-j q 26

j=1 obrazac(1)=’c’ poz_u_alf(’c’)=3 pomeri(3)=m-j=8 -1=7 j=2 obrazac(2)=’o’ poz_u_alf(’o’)=15 pomeri(15)=m-j=8 -2=6 j=3 obrazac(3)=’m’ poz_u_alf(’m’)=13 pomeri(13)=m-j=8

j=1 obrazac(1)=’c’ poz_u_alf(’c’)=3 pomeri(3)=m-j=8 -1=7 j=2 obrazac(2)=’o’ poz_u_alf(’o’)=15 pomeri(15)=m-j=8 -2=6 j=3 obrazac(3)=’m’ poz_u_alf(’m’)=13 pomeri(13)=m-j=8 -3=5. . . j=7 obrazac(7)=’e’ poz_u_alf(’e’)=5 pomeri(5)=m-j=8 -7=1 j=8 obrazac(8)=’r’ poz_u_alf(’r’)=18 pomeri(5)=m-j=8 -8=0 n Dve for-petlje postavljaju niz pomeri na sledeći način: (slaganje) Kako to funkcioniše u slučaju obrasca computer, m=8 27

Vizuelizacija BM algoritma n n http: //whocouldthat. be/visualizing-stringmatching/ https: //www. utdallas. edu/~besp/demo/John 2010/b oyer-moore.

Vizuelizacija BM algoritma n n http: //whocouldthat. be/visualizing-stringmatching/ https: //www. utdallas. edu/~besp/demo/John 2010/b oyer-moore. htm 28

Zaključak – o efikasnosti algoritama za skaniranje teksta n n Efikasnost se meri brojem

Zaključak – o efikasnosti algoritama za skaniranje teksta n n Efikasnost se meri brojem poređenja Algoritam “grube sila” – u najgorem slučaju O(m n), u proseku nešto više od n (dužina teksta). Algoritam KMP je O(n). Može se efikasno proširiti na pretragu sa više obrazaca, a izvršavanje je i tada O(n). Algoritam BM je O(n), ali je broj poređenja uvek manji nego kod KMP i to je najefikasniji metod za pronalaženje s jednim obrascem. 29

Serijsko pretraživanje ili sklaniranje – nove mogućnosti. n n n Nove mogućnosti za korišćenje

Serijsko pretraživanje ili sklaniranje – nove mogućnosti. n n n Nove mogućnosti za korišćenje metoda za skaniranje teksta se otvaraju sa uvođenjem paralelnog procesiranja (sistema sa paralelnim procesorima). Skraćuju se vreme pretraživanja i povećava efikasnost. Sa tehnikama paralelnog procesiranja poboljšavaju se performanse serijskog pronalaženja u bazi podataka do te mere da se efikasnost može meriti sa tehnikama invertovanih datoteka, a izbegava se potreba održavanja invertovanog indeksa. 30

Jedan zadatak n 1. 2. 3. Obrazac pripremaju se traži u tekstu pripadnici vatrogasnih

Jedan zadatak n 1. 2. 3. Obrazac pripremaju se traži u tekstu pripadnici vatrogasnih odeljenja uvežbavaju se putem priprema i tako se pripremaju za takmičenja korišćenjem Knut. Moris-Pratovog algoritma Sačiniti tablicu pomeranja obrasca. Odrediti sve pozicije u tekstu za koje se obrazac kod neslaganja NE pomera za jednu poziciju udesno. Za koliko pozicija se obrazac pomera u tom slučaju? Koliko puta se pomera obrazac do konačnog odgovora? Koliko poređenja je potrebno do konačnog odgovora? 31

Tablica pomeranja obrasca pripremaju neslaganje na nesravnjen poziciji obrasca karakter P sravnjeni deo obrasca

Tablica pomeranja obrasca pripremaju neslaganje na nesravnjen poziciji obrasca karakter P sravnjeni deo obrasca dužina najduže glave koja je identična sa repom broj pozicija pomeranja obrasca 1 p p 0 1 2 r pr 0 1 3 i pri 0 2 4 p prip 0 3 5 r pripr 1 3 6 e pripre 2 3 7 m priprem 0 6 8 a priprema 0 7 9 j pripremaj 0 8 10 u pripremaju 0 9 32

Odrediti sve pozicije u tekstu za koje se obrazac ne pomera za jednu n

Odrediti sve pozicije u tekstu za koje se obrazac ne pomera za jednu n Pozicija 1 – obrazac se pomera za 3 mesta. poziciju n n n pripadnici vatrogasnih odeljenja uvežbavaju se putem pripremaju priprema i tako se pripremaju za takmičenja Pozicija 54 – obrazac se pomera za 8 mesta pripadnici vatrogasnih odeljenja uvežbavaju se putem priprema i tako se pripremaju za takmičenja pripremaju 33

Koliko puta se pomera obrazac do konačnog odgovora? Koliko poređenja je potrebno do konačnog

Koliko puta se pomera obrazac do konačnog odgovora? Koliko poređenja je potrebno do konačnog odgovora? n n Slaganje je na poziciji 73. Do te pozicije se obrazac pomera svaki put za jedno mesto, osim na poziciji 1 kada se pomera za 3 mesta, i na poziciji 54 kada se pomera za 8 mesta. Dakle broj pomeranja je 73 -(3 -1)-(8 -1)=64. Svaki karakter teksta se poredi jednom osim slova u u putem, i blanka iza priprema pa je ukupan broj poređenja 73+2+10=85. (Metodom “grube sile” broj poređenja bi bio 73+3+1+8+10=95. ) 34

Kako bi izgledalo pronalaženje ako bi se koristio BM algoritam? pripadnici vatrogasnih odeljenja uvežbavaju

Kako bi izgledalo pronalaženje ako bi se koristio BM algoritam? pripadnici vatrogasnih odeljenja uvežbavaju se putem priprema. . . pripremaju pripadnici vatrogasnih odeljenja uvežbavaju se_putem priprema. . . pripremaju pripadnici vatrogasnih odeljenja uvežbavaju se putem priprema. . . pripremaju 35

Kako bi izgledalo pronalaženje ako bi se koristio BM algoritam? putem priprema i tako

Kako bi izgledalo pronalaženje ako bi se koristio BM algoritam? putem priprema i tako se pripremaju za takmičenja pripremaju Obrazac je bio postavljen na samo 9 strateških pozicija, a do odgovora se došlo posle 9+10=19 poređenja. 36