Title: Sistemi zasnovani na skaniranju teksta
1Sistemi zasnovani na skaniranju teksta
2Prednosti i nedostaci rada s invertovanim
datotekama
- Sve do sada pomenute procedure za pronalaženje
informacija zasnivaju se na korišcenju
invertovanih indeksa za sve termine koji
karakterišu dokumenta u kolekciji. - Invertovani indeksi su atraktivni u situacijama
kada su datoteke veoma velike, što je najcešce
slucaj, jer se brzo može dobiti odgovor koristeci
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
slucajevima kada se dodaju nova dokumenta
kolekciji).
3Alternativa invertovanim datotekama
- Kada je velicina datoteka mala, a dužine
uskladištenih tekstova ogranicene, ili su
tekstovi ogranicenog veka trajanja, odgovori na
zahtev za informacijom se mogu dobiti direktno
pristupajuci tekstu u glavnoj datoteci, bez
konsultovanja nekog medu-indeksa. - U takvim slucajevima moraju se koristiti
operacije skaniranja teksta koje sravnjuju reci 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, rec
(nisku) banana.
4Na cemu se zasnivaju operacije skaniranja?
- Operacije skaniranja teksta se zasnivaju na
poredenju indvidualnih karaktera upita sa
karakterima koji su uskladišteni u tekstu
dokumenta. - Sa porastom broja karaktera u dokumentu,
skaniranje postaje sve skuplje, i poredenje
karakter po karakter tada postaje preskupo
(presporo) za prakticno korišcenje. - Tada se mora preci ili na tehnologiju
invertovanih indeksa ili se moraju koristiti
sistemi koji ubrzavaju proces skaniranja teksta.
5Elementarni postupak skaniranja(metod grube
sile)
- kljucna rec (obrazac) computer
- tekst problem 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
6Opšti nedostaci sistema zasnovanih na skaniranju
teksta
- Urodeni 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 JUNACKI. - Kada se upiti formulišu kao karakterske niske od
više reci, redosled reci postaje dodatni problem,
jer se upit INFORMATION RETRIEVAL ne može
direktno sravniti sa tekstom dokumenta koji
sadrži frazu RETRIEVAL OF INFORMATION.
7Elementarno sravnjivanje niski
- Elementarno sravnjivanje obrasca prolazi i kroz S
i kroz P simultano, pocevši od kranje levih
karaktera obe niske. - Dva pokazivaca, i i j za niske S i P vode dalje
racuna o redosledu skaniranja. - Na pocetku se oba pokazivaca postavljaju na 1, pa
su prva dva karaktera koja se porede s1 i p1. - Kad god se karakteri koji se porede slažu,
uvecava se pokazivac obrasca, pa se sledeci
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
poredenje se nastavlja od pocetka obrasca
pokazivac obrasca se vraca na 1, a pokazivac
teksta se uvecava za 1.
8Algoritam elementarnog sravnjivanja
9Neefikasnost 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 dugacke niske teksta,
broj poredenja karaktera raste. - Najgori je slucaj kada su niske P i S skoro
slicne, a neslaganje se otkrije tek pred kraj
obrasca. U tom najlošijem slucaju broj poredenja
karaktera ide do proizvoda dužina obe niske m ?n.
U opštem slucaju je proj poredenja O(m ?n). - U praksi se taj najgori slucaj retko srece jer je
verovatnoca neslaganja mnogo veca od verovatnoce
slaganja.
10Primer neefikasnog slaganja
Korak 1 S a a a a a a ... a a b P a a b
? ? ?
Korak 2 P a a b ? ? ?
Korak 3 P a a b ? ? ?
Korak n-3 P a a b
? ? ?
Korak n-2 P a a b
? ? ?
11Problemi sa elementarnim sravnjivanjem
- Elementarno sravnjivanje niski karakteriše
pomeranje obrasca uvek za jedno mesto kada se
otkrije neslaganje izmedu 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. - Medutim, neko znanje o tekstu S i obrascu P može
se steci - 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 izbeci iscrpno
poredenje teksta S i obrasca P, vec se porede
samo neke strateške tacke.
12Donald Knuth
13KMP algoritam (od Knuth, Morris, Pratt)
- I ovim postupkom se skaniraju karakteri s leva na
desno. - Kada se naide na neslaganje, obrazac P se ne
pomera automatski za 1 vec za neki optimalni broj
karaktera. - Pocetni deo niske P (glava od P) je sravnjena sa
podniskom od S, a onda je došlo do neslaganja kod
para si6 i p5. - Jasno je da do novog sravnjivanja ne može doci na
prethodnim pozicijama (i3, i4, i5) osim ako je
neka glava sravnjenog dela od P identicna sa
repom tog istog dela (što je i rep od S).
14Kako 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 sledecoj 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.
15Kako odrediti šta je optimalno pomeranje?
- Na primer, ako su p1 i p2 identicni sa si4 i
si5, onda ce pomeranje obrasca za dve pozicije
proizvesti novo slaganje. - Ali, ako su p1 i p2 identicni sa si4 i si5,
onda su p1 i p2 identicni 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
si6).
16Primer korak 1
- Neslaganje vec 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 ?
17Primer 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 ? ? ? ?
18Primer korak 3
- Neslaganje vec 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 ?
19Primer 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 vec sravnjenim delom - (to je najmanje pomeranje kojim se nece
propustiti nijedna potencijalna mogucnost)
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 ? ? ? ? ? ? ? ?
20Primer 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
21Obrada obrasca unapred - broj pozicija za koje
treba pomeriti obrazac u slucaju neslaganja se
izracunava unapred
neslaganje na poziciji obrasca P nesravnjen karakter sravnjeni deo obrasca dužina najduže glave koja je identicna sa repom broj pozicija pomeranja obrasca
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
22KMP metod - zakljucak
- 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 reci, kao i za paralelno
poredenje više razlicitih niski obrazaca P. Takvo
paralelno poredenje postaje korisno kada se
obraduju OR upiti. - Može se pokazati da se korišcenjem ove metode
ocekivan broj karaktera koje treba porediti reda
velicine O(nm) a to je zbir dužina obrasca i
teksta.
23Vizuelizacija 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'InformatiqueEcol
e polytechnique
24Algoritam Boyer-Moore (BM)
- Karakteristika ovog algoritma je da skanira tekst
s desna u levo. Ovim algoritmom se još više
smanjuje broj poredenja i time sravnjivanje
postaje još efikasnije. - Algoritam funkcioniše na sledeci nacin
- ako se krajnje desni karakter obrasca ne
sravnjuje se odgovarajucim 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 se odgovarajucim 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 odgovarajucim
karakterom teksta. - ako se krajnje desni karakter obrasca sravnjuje
se odgovarajucim karakterom teksta, onda se
poredenje nastavlja ulevo dok - se ne dode do pocetka obrasca (sravnjivanje)
- ne ustanovi neslaganje na nekoj pozici, kada se
ceo postupak ponavlja.
25Primer 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
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
4 computer
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
poredenja
26Kako da BM algoritma zna koliko treba da pomeri
obrazac?
- I u ovom slucaju obrazac treba da se obradi
unapred, pre pocetka procesa skaniranja. - Obrada obrasca je veoma jednostavna, potrebno je
na adekvatan nacin pripremiti niz za svako slovo
alfabeta, na sledeci nacin (m je dužina obrasca) - za j od 1 do 26 pomerij ?? m
- za j od 1 do m pomeripozicija_u_alfabetu(obrazac
j) ? m-j
27Kako to funkcioniše u slucaju obrasca computer,
m8
- Dve for-petlje postavljaju niz pomeri na sledeci
nacin
28Vizuelizacija BM algoritma
- Demonstration of Naive, KMP, and BM pattern
matching algorithms, and their variations,
Jean-Jacques Lévy, Département d'InformatiqueEcol
e polytechnique - Exact String Matching Algorithms Animation,
Christian Charras - Thierry LecroqLaboratoire
d'Informatique de RouenUniversité de Rouen
29Zakljucak o efikasnosti algoritama za
skaniranje teksta
- Efikasnost se meri brojem poredenja
- Algoritam grube sila u najgorem slucaju
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 poredenja uvek
manji nego kod KMP i to je najefikasniji metod za
pronalaženje s jednim obrascem.
30Serijsko pretraživanje ili sklaniranje nove
mogucnosti.
- Nove mogucnosti za korišcenje metoda za
skaniranje teksta se otvaraju sa uvodenjem
paralelnog procesiranja (sistema sa paralelnim
procesorima). - Skracuju se vreme pretraživanja i povecava
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.
31Jedan zadatak
- Obrazac pripremaju se traži u tekstu pripadnici
vatrogasnih odeljenja uvežbavaju se putem
priprema i tako se pripremaju za takmicenja
korišcenjem Knut-Moris-Pratovog algoritma - Saciniti 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 slucaju? - Koliko puta se pomera obrazac do konacnog
odgovora? Koliko poredenja je potrebno do
konacnog odgovora?
32Tablica pomeranja obrasca pripremaju
neslaganje na poziciji obrasca P nesravnjen karakter sravnjeni deo obrasca dužina najduže glave koja je identicna 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
33Odrediti 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 takmicenja
- Pozicija 54 obrazac se pomera za 8 mesta
- pripadnici vatrogasnih odeljenja uvežbavaju se
putem - priprema i tako se pripremaju za takmicenja
- pripremaju
34Koliko puta se pomera obrazac do konacnog
odgovora? Koliko poredenja je potrebno do
konacnog 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 poredenja 7331086. (Metodom
grube sile broj poredenja bi bio
733181095.)
35Kako 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
36Kako bi izgledalo pronalaženje ako bi se koristio
BM algoritam?
putem priprema i tako se pripremaju za
takmicenja pripremaju
putem priprema i tako se pripremaju za
takmicenja pripremaju
putem priprema i tako se pripremaju za
takmicenja pripremaju
putem priprema i tako se pripremaju za
takmicenja pripremaju
Obrazac je bio postavljen na samo 9 strateških
pozicija, a do odgovora se došlo posle 91019
poredenja.