350 likes | 504 Views
Sistemi zasnovani na skaniranju teksta. Cvetana Krstev čas 7. Prednosti i nedostaci rada s invertovanim datotekama. 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.
E N D
Sistemi zasnovani na skaniranju teksta Cvetana Krstev čas 7.
Prednosti i nedostaci rada s invertovanim datotekama • 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).
Alternativa invertovanim datotekama • 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.
Na čemu se zasnivaju operacije skaniranja? • 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.
Elementarni postupak skaniranja(metod “grube sile”) • ključna reč (obrazac)computer • tekstproblem solving is a common paradigm of computer science korak 1: problem solving is a common paradigm of computer science computer korak 3: problem solving is a common paradigm of computer science computer korak 41: problem solving is a common paradigm of computer science computer korak 2: problem solving is a common paradigm of computer science computer korak 22: problem solving is a common paradigm of computer science computer
Opšti nedostaci sistema zasnovanih na skaniranju teksta • Urođeni nedostatak im je nefleksibilnost jer traže egzaktno slaganje. Jasno je da se upitni termin (koji se u ovom kontekstu zove obrazac)MELODYne može sravniti sa pojavom niskeMELODIESu tekstu, ili JUNAKi JUNAČKI. • Kada se upiti formulišu kao karakterske niske od više reči, redosled reči postaje dodatni problem, jer se upitINFORMATION RETRIEVALne može direktno sravniti sa tekstom dokumenta koji sadrži frazuRETRIEVAL OF INFORMATION.
Elementarno sravnjivanje niski • Elementarno sravnjivanje obrasca prolazi i kroz S i kroz P simultano, počevši od kranje levih karaktera obe niske. • Dva pokazivača, i ijza niske Si 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 s1 i p1. • Kad god se karakteri koji se porede slažu, uvećava se pokazivač obrasca, pa se sledeći porede s2 i p2, zatim s3 i p3 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 na1, a pokazivač teksta se uvećava za 1.
Neefikasnost elementarnog sravnjivanja • 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 mn. U opštem slučaju je proj poređenja O(mn). • U praksi se taj najgori slučaj retko sreće jer je verovatnoća neslaganja mnogo veća od verovatnoće slaganja.
Primer neefikasnog slaganja Korak 1 S= a a a a a a ... a a b P= a a b Korak 2P= a a b Korak 3P= a a b … Korak n-3 P= a a b Korak n-2 P= a a b
Problemi sa elementarnim sravnjivanjem • 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 pomeranja 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: • 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.
KMP algoritam (od Knuth, Morris, Pratt) • 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 p5. • 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 od S).
Kako je to na primeru • Kada je došlo do neslaganja na poziciji 5 ima li smisla da se obrazac pomera za 1 poziciju? • 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. • S: . . . . n a p o l e o n . . . . • P: n a p o n •
Kako odrediti šta je optimalno pomeranje? • Na primer, ako su p1 i p2 identični sa si+4 i si+5, onda će pomeranje obrasca za dve pozicije proizvesti novo slaganje. • Ali, ako su p1 i p2 identični sa si+4 i si+5, onda su p1 i p2 identični i sa p3 i p4 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).
Primer – korak 1 • Neslaganje već na prvoj poziciji. Treba pomeriti obrazac P udesno za 1. S: b a b c b a b c a b c a a b c a P: a b c a b c a c a b
Primer – korak 2 • 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. S: b a b c b a b c a b c a a b c a P: a b c a b c a c a b
Primer – korak 3 • Neslaganje već na prvoj poziciji. Treba pomeriti obrazac P udesno za 1. S: b a b c b a b c a b c a a b c a P: a b c a b c a c a b
Primer – korak 4 • 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) S: b a b c b a b c a b c a a b c a P: a b c a b c a c a b
Primer – korak 5 • pozicija kada je dostignut kraj teksta S • (kraj obrasca je prešao preko kraja teksta) • obrazac nije sravnjen s tekstom S: b a b c b a b c a b c a a b c a P: a b c a b c a c a b
Obrada obrasca unapred - broj pozicija za koje treba pomeriti obrazac u slučaju neslaganja se izračunava unapred
KMP metod - zaključak • 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 se 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.
Vizuelizacija KMP algoritma • Exact String Matching Algorithms – Animation, Christian Charras - Thierry LecroqLaboratoire d'Informatique de RouenUniversité de Rouen • Demonstration of Naive, KMP, and BM pattern matching algorithms, and their variations, Jean-Jacques Lévy, Département d'InformatiqueEcole polytechnique
Algoritam Boyer-Moore (BM) • 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: • ako se krajnje levi karakter obrasca ne sravnjuje se 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. • ako se krajnje levi karakter obrasca ne sravnjuje se 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 poravna sa odgovarajućim karakterom teksta. • ako se krajnje levi karakter obrasca sravnjuje se odgovarajućim karakterom teksta, onda se poređenje nastavlja ulevo dok • se ne dođe do početka obrasca (sravnjivanje) • ne ustanovi neslaganje na nekoj pozici, kada se ceo postupak ponavlja.
Primer rada BM algoritma Problem solving is a common paradigm of computer science 1 computer 2 computer 3 computer blanko se ne pojavljuje nigde u obrascu, zato obrazac pomeramo celom dužinom u desno 4 computer m i r se ne poklapaju, ali m se jednom pojavljuje u obrascu, pa se obrazac pomera udesno tako da se ova dva m sravne 5 computer p i r se ne poklapaju, ali p se jednom pojavljuje u obrascu, pa se obrazac pomera udesno tako da se ova dva p sravne 6 computer d i r se ne poklapaju, ali d se ne javlja u obrascu, zato se obrazac pomera u desno celom dužinom 7 computer c i r se ne poklapaju, ali c se nalazi u obrascu, pa se obrazac pomera dok se ta dva c ne poklope sravnjivanje posle 6 pomeranja obrasca i 14 poređenja
Kako da BM algoritma zna koliko treba da pomeri obrazac? • 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) zajod 1 do 26 pomeri[j] m zajod 1 do m pomeri[pozicija_u_alfabetu(obrazac[j])] m-j
Kako to funkcioniše u slučaju obrasca computer, m=8 • Dve for-petlje postavljaju niz pomeri na sledeći način:
Vizuelizacija BM algoritma • Demonstration of Naive, KMP, and BM pattern matching algorithms, and their variations, Jean-Jacques Lévy, Département d'InformatiqueEcole polytechnique • Exact String Matching Algorithms – Animation, Christian Charras - Thierry LecroqLaboratoire d'Informatique de RouenUniversité de Rouen
Zaključak – o efikasnosti algoritama za skaniranje teksta • Efikasnost se meri brojem poređenja • Algoritam “grube sila” – u najgorem slučaju O(mn), 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.
Serijsko pretraživanje ili sklaniranje – nove mogućnosti. • 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žavanje invertovanog indeksa.
Jedan zadatak • 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?
Odrediti sve pozicije u tekstu za koje se obrazac ne pomera za jednu poziciju • Pozicija 1 – obrazac se pomera za 3 mesta. • 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
Koliko puta se pomera obrazac do konačnog odgovora? Koliko poređenja je potrebno do konačnog odgovora? • 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 drugog slova p u pripadnici koje se poredi dva puta, slova u u putem, i blanka iza pripremapa je ukupan broj poređenja 73+3+10=86. (Metodom “grube sile” broj poređenja bi bio 73+3+1+8+10=95.)
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 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
Kako bi izgledalo pronalaženje ako bi se koristio BM algoritam? putem pripremai tako se pripremaju za takmičenja pripremaju putem pripremai tako se pripremaju za takmičenja pripremaju putem pripremai tako se pripremaju za takmičenja pripremaju putem pripremai 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.