Presentation is loading. Please wait.

Presentation is loading. Please wait.

Sistemi zasnovani na skaniranju teksta

Similar presentations


Presentation on theme: "Sistemi zasnovani na skaniranju teksta"— Presentation transcript:

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

2 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).

3 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.

4 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.

5 Elementarni postupak skaniranja (metod “grube sile”)
ključna reč (obrazac) computer tekst problem solving is a common paradigm of computer science korak 3: problem solving is a common paradigm of computer science computer korak 1: 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

6 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) MELODY ne može sravniti sa pojavom niske MELODIES u tekstu, ili JUNAK 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.

7 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 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 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 na 1, a pokazivač teksta se uvećava za 1.

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

9 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 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.

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

11 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 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: 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.

12 Donald Knuth

13 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 sravnjenog dela od S).

14 Kako je to na primeru 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? 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

15 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).

16 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

17 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    

18 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

19 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        

20 Primer – korak 5 pozicija kada je dostignut kraj teksta S
(kraj obrasca je prešao preko kraja teksta) dužina “teksta” n = 16; dužina obrasca m = 10; pozicija obrasca u odnosu na tekst i = 9; 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 i = 9 > n – m + 1 = 7

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

22 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 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.

23 Vizuelizacija KMP algoritma
Vizuelizacija algoritama za sravnjivanje niski:

24 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 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. 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. ako se krajnje desni karakter obrasca sravnjuje sa 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.

25 Primer rada BM algoritma
Problem solving is a common paradigm of computer science 1 computer computer computer blanko se ne pojavljuje nigde u obrascu, zato obrazac pomeramo celom dužinom u desno 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 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 computer d i r se ne poklapaju, ali d se ne javlja u obrascu, zato se obrazac pomera u desno celom dužinom 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

26 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) Za sva slova alfabeta pomeranje za celu dužinu obrasca za j od 1 do 26 pomeri[j]  m 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

27 Kako to funkcioniše u slučaju obrasca computer, m=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 (slaganje) Kako to funkcioniše u slučaju obrasca computer, m=8 Dve for-petlje postavljaju niz pomeri na sledeći način:

28 Vizuelizacija BM algoritma

29 Zaključak – o efikasnosti algoritama za skaniranje teksta
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.

30 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žavanja invertovanog indeksa.

31 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?

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

33 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

34 Koliko puta se pomera obrazac do konačnog odgovora
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 priprema pa je ukupan broj poređenja =86. (Metodom “grube sile” broj poređenja bi bio =95.)

35 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

36 Kako bi izgledalo pronalaženje ako bi se koristio BM algoritam?
putem priprema i tako se pripremaju za takmičenja pripremaju putem priprema i tako se pripremaju za takmičenja pripremaju putem priprema i tako se pripremaju za takmičenja pripremaju 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.


Download ppt "Sistemi zasnovani na skaniranju teksta"

Similar presentations


Ads by Google