Sistemi zasnovani na skaniranju teksta - PowerPoint PPT Presentation

About This Presentation
Title:

Sistemi zasnovani na skaniranju teksta

Description:

Sistemi zasnovani na skaniranju teksta Cvetana Krstev as 7. * – PowerPoint PPT presentation

Number of Views:75
Avg rating:3.0/5.0
Slides: 37
Provided by: Cve62
Category:

less

Transcript and Presenter's Notes

Title: Sistemi zasnovani na skaniranju teksta


1
Sistemi zasnovani na skaniranju teksta
  • Cvetana Krstev
  • cas 7.

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

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

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

5
Elementarni 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
6
Opš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.

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

8
Algoritam elementarnog sravnjivanja
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 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.

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

12
Donald Knuth
13
KMP 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).

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

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

16
Primer 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 ?
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 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 ?
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 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 ? ? ? ? ? ? ? ?
20
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
21
Obrada 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
22
KMP 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.

23
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'InformatiqueEcol
    e polytechnique

24
Algoritam 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.

25
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
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
26
Kako 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

27
Kako to funkcioniše u slucaju obrasca computer,
m8
  • Dve for-petlje postavljaju niz pomeri na sledeci
    nacin

28
Vizuelizacija 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

29
Zakljucak 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.

30
Serijsko 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.

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

32
Tablica 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
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 takmicenja
  • Pozicija 54 obrazac se pomera za 8 mesta
  • pripadnici vatrogasnih odeljenja uvežbavaju se
    putem
  • priprema i tako se pripremaju za takmicenja
  • pripremaju

34
Koliko 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.)

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
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.
Write a Comment
User Comments (0)
About PowerShow.com