Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Szövegfeldolgozás I. INFOÉRA

Hasonló előadás


Az előadások a következő témára: "Szövegfeldolgozás I. INFOÉRA"— Előadás másolata:

1 Szövegfeldolgozás I. INFOÉRA 2006 2006.11.18
Juhász István-Zsakó László: Informatikai képzések a ELTE-n

2 Szöveges típusok Szöveges típusok (ismétlés) karakter típus
INFOÉRA 2006 Szöveges típusok Szöveges típusok (ismétlés) karakter típus szöveg típus szövegfájl típus (input, illetve output szövegfájl) Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 2

3 Szöveges típusok Karakterábrázolás
INFOÉRA 2006 Szöveges típusok Karakterábrázolás fix kódhossz (ASCII, EBCDIC, ..., több karakterkészlet) változó kódhossz (pl. morze, Huffman) telex: betű-számváltó UTF-8-ban minden ékezetes magyar betű 2 byte-ot foglal el, míg egyéb speciális karakterek akár ennél hosszabbak is lehetnek. Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 3

4 Szöveges típusok Szövegábrázolás Műveletek fix hossz változó hossz
INFOÉRA 2006 Szöveges típusok Szövegábrázolás fix hossz változó hossz karakterszámmal végjellel (pl. 0 kódú karakter) Műveletek hossz(s) relációk, értékadás + (azaz egymásután írás) Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 4

5 Szöveges típusok A. A szöveg karakterek tömbje
INFOÉRA 2006 Szöveges típusok A. A szöveg karakterek tömbje indexelés – s(i) B. A szöveg karakterek sorozata első(s), elsőutániak(s), utolsó(s), utolsóelőttiek(s), elejére(s,k), végére(s,k) C. A szöveg szövegekből áll függvények: bal(s,db), jobb(s,db), közép(s,k,db), közép(s,k,v) vagy részképzés – s(a..b), s(a..) , s(..b) Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 5

6 Szöveges típusok B. A szöveg karakterek sorozata
INFOÉRA 2006 Szöveges típusok B. A szöveg karakterek sorozata Függvény első(s):karakter első:=s(1) Függvény vége. Függvény elsőutániak(s):szöveg t:=’’ Ciklus i=2-től hossz(s)-ig t:=t+s(i) Ciklus vége elsőutániak:=t Függvény elejére(s,k):szöveg elejére:=k+s Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 6

7 Szöveges típusok C. A szöveg szövegekből áll Függvény bal(s,db):szöveg
INFOÉRA 2006 Szöveges típusok C. A szöveg szövegekből áll Függvény bal(s,db):szöveg t:=’’ Ciklus i=1-től db-ig t:=t+s(i) Ciklus vége bal:=t Függvény vége. Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 7

8 Szöveges típusok általánosítása
INFOÉRA 2006 Szöveges típusok általánosítása Fogalmak (azaz új típusok): karakter szó sor lap dokumentum Fogalmak a megjelenítéshez: képsor képlap Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 8

9 Szöveges típusok általánosítása
INFOÉRA 2006 Szöveges típusok általánosítása Szó típus fogalma szó=Sorozat(karakter) Szó típus műveletei: végére(szó,karakter) elejéről(szó,karakter) Ha írásjelek vannak a szövegben, akkor azok tartozzanak az adott szóhoz! Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 9

10 Szöveges típusok általánosítása
INFOÉRA 2006 Szöveges típusok általánosítása Műveletek megvalósítása: Eljárás végére(szó,karakter): szó:=szó+karakter Eljárás vége. Eljárás elejéről(szó,karakter): karakter:=első(szó) szó:=elsőutániak(szó) Eljárás vége. Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 10

11 Szöveges típusok általánosítása
INFOÉRA 2006 Szöveges típusok általánosítása Sor típus fogalma: sor=Sorozat(szó) Sor típus műveletei: végére(sor,szó) elejéről(sor,szó) Elválasztó jel szavak között: szóköz sorvég Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 11

12 Szöveges típusok általánosítása
INFOÉRA 2006 Szöveges típusok általánosítása Műveletek megvalósítása: Eljárás végére(sor,szó): Ha sor=’’ akkor sor:=szó különben sor:=sor+’ ’+szó Eljárás vége. Eljárás elejéről(sor,szó): szó:=’’ Ciklus amíg sor’’ és első(sor)’ ’ szó:=szó+első(sor); sor:=elsőutániak(sor) Ciklus vége Ha sor’’ akkor sor:=elsőutániak(sor) Eljárás vége. Figyelem! Itt és a későbbi algoritmusokban használt első() és elsőutániak() a szöveg típus műveleteit jelentik! Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 12

13 Szöveges típusok általánosítása
INFOÉRA 2006 Szöveges típusok általánosítása Lap típus fogalma lap=Sorozat(sor) Lap típus műveletei: végére(lap,sor) elejéről(lap,sor) Végjel sorok után: sorvég Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 13

14 Szöveges típusok általánosítása
INFOÉRA 2006 Szöveges típusok általánosítása Műveletek megvalósítása: Eljárás végére(lap,sor): lap:=lap+sor+SORVÉG Eljárás vége. Eljárás elejéről(lap,sor): sor:=’’ Ciklus amíg első(lap)SORVÉG sor:=sor+első(lap); lap:=elsőutániak(lap) Ciklus vége lap:=elsőutániak(lap) Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 14

15 Szöveges típusok általánosítása
INFOÉRA 2006 Szöveges típusok általánosítása Dokumentum típus fogalma dokumentum=Sorozat(lap) Dokumentum típus műveletei: végére(dokumentum,lap) elejéről(dokumentum,lap) Végjel lapok után: lapvég Mi van, ha az utolsó lap után nincs lapvég-jel? Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 15

16 Szöveges típusok általánosítása
INFOÉRA 2006 Szöveges típusok általánosítása Műveletek megvalósítása: Eljárás végére(dokumentum,lap): dokumentum:=dokumentum+lap+LAPVÉG Eljárás vége. Eljárás elejéről(dokumentum,lap): lap:=’’ Ciklus amíg első(dokumentum)LAPVÉG lap:=lap+első(dokumentum) dokumentum:=elsőutániak(dokumentum) Ciklus vége Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 16

17 Szöveges típusok általánosítása
INFOÉRA 2006 Szöveges típusok általánosítása Meggondolandó: mondat típus A mondat szavak sorozata, ahol az utolsó szó utolsó karaktere mondat-vég jel (. vagy ? vagy !). Eljárás végére(sor,mondat,jel): Ha sor=’’ akkor sor:=mondat+jel különben sor:=sor+’ ’+mondat+jel Eljárás vége. Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 17

18 Szöveges típusok általánosítása
INFOÉRA 2006 Szöveges típusok általánosítása Meggondolandó: mondat típus A mondat szavak sorozata, ahol az utolsó szó utolsó karaktere mondat-vég jel (. vagy ? vagy !). Eljárás elejéről(sor,mondat,jel): mondat:=’’ Ciklus amíg első(sor){’.’,’?’,’!’} mondat:=mondat+első(sor) sor:=elsőutániak(sor) Ciklus vége jel:=első(sor); sor:=elsőutániak(sor) Eljárás vége. Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 18

19 Szöveges típusok általánosítása
INFOÉRA 2006 Szöveges típusok általánosítása Meggondolandó: Szó típus Az írásjel ne legyen része a szónak! Eljárás elejéről(sor,szó,jel): szó:=’’; jel:=’’ Ciklus amíg sor’’ és első(sor){’ ’}Írásjelek szó:=szó+első(sor); sor:=elsőutániak(sor) Ciklus vége Ha sor’’ akkor Ha első(sor)’ ’ akkor jel:=első(sor); sor:=elsőutániak(sor) sor:=elsőutániak(sor) Eljárás vége. Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 19

20 Szöveges típusok általánosítása
INFOÉRA 2006 Szöveges típusok általánosítása Műveletek a formázáshoz: ElsőKépsor BalrólLevág JobbrólLevág BalraIgazít JobbraIgazít KözépreIgazít Sorkizárt Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 20

21 Szöveges típusok általánosítása
INFOÉRA 2006 Szöveges típusok általánosítása Műveletek megvalósítása: Eljárás ElsőKépsor(sor,képsor): elejéről(sor,képsor) Ha sor’’ akkor elejéről(sor,X); van:=igaz Ciklus amíg hossz(képsor)+hossz(X)+1KSHOSSZ és van képsor:=képsor+’ ’+X Ha sor’’ akkor elejéről(sor,X) különben van:=hamis Ciklus vége Ha van akkor sor:=X+’ ’+sor Elágazás vége Eljárás vége. Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 21

22 Szöveges típusok általánosítása
INFOÉRA 2006 Szöveges típusok általánosítása Műveletek megvalósítása: Eljárás BalrólLevág(ks): Ciklus amíg ks’’ és ks(1)=’ ’ ks:=elsőutániak(ks) Ciklus vége Eljárás vége. Eljárás JobbrólLevág(ks): Ciklus amíg ks’’ és ks(hossz(ks))=’ ’ ks:=utolsóelőttiek(ks) Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 22

23 Szöveges típusok általánosítása
INFOÉRA 2006 Szöveges típusok általánosítása Műveletek megvalósítása: Eljárás BalraIgazít(ks): BalrólLevág(ks) Eljárás vége. Eljárás Jobbraigazít(ks): JobbrólLevág(ks) Ciklus amíg hossz(ks)<KSHOSSZ ks:=’ ’+ks Ciklus vége Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 23

24 Szöveges típusok általánosítása
INFOÉRA 2006 Szöveges típusok általánosítása Műveletek megvalósítása: Eljárás KözépreIgazít(ks): BalrólLevág(ks); JobbrólLevág(ks) Ciklus amíg hossz(ks)<KSHOSSZ-1 ks:=’ ’+ks+’ ’ Ciklus vége Ha hossz(ks)<KSHOSSZ akkor ks:=ks+’ ’ Eljárás vége. Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 24

25 Szöveges típusok általánosítása
INFOÉRA 2006 Szöveges típusok általánosítása Műveletek megvalósítása: Eljárás Sorkizárt(ks): BalrólLevág(ks); JobbrólLevág(ks) kell:=KSHOSSZ-hossz(ks); db:=Szoszamol(ks)-1 kellplusz:=kell MOD db; kell:=kell DIV db Elejéről(ks,szó,jel); uj:=szó+jel Ciklus i:=1-től db-ig Ha i≤kellplusz akkor uj:=uj+Szöközök(kell+1) különben uj:=uj+Szöközök(kell) Elejéről(ks,szó,jel); uj:=uj+szó+jel Ciklus vége ks:=uj Eljárás vége. Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 25

26 Szövegfeldolgozási alapfeladatok
INFOÉRA 2006 Szövegfeldolgozási alapfeladatok Szűrés: egy szövegből vagy szövegfájlból hagyjunk ki bizonyos típusú részeket! Tömörítés: egy szöveget vagy szövegfájlt alakítsunk át úgy, hogy kevesebb helyet foglaljon (valamint alakítsuk vissza)! Keresés: egy szövegben vagy szövegfájlban keressünk egy szöveget! Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 26

27 Szövegfeldolgozás: szűrés
INFOÉRA 2006 Szövegfeldolgozás: szűrés Általános feladat: egy szövegből vagy szövegfájlból hagyjunk ki bizonyos típusú részeket! Lehet kiválogatás, ha egyes karaktereket kell szűrni. Lehet kiválogatás előreolvasással, ha karakter-párokat kell szűrni. Lehet szókeresés, ha szavakat kell szűrni (de ez is lehet kiválogatás). Lehet jelpár keresés, ha páros jelek közötti részt kell szűrni! Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 27

28 Szövegfeldolgozás: szűrés
INFOÉRA 2006 Szövegfeldolgozás: szűrés Szóköz szűrés Példa: Esik az eső  Esikazeső Eljárás Szűrés: Nyit(f,g) Ciklus amíg nem FileVége?(f) Olvas(f,kar) Ha kar' ' akkor Ír(g,kar) Ciklus vége Zár(f,g) Eljárás vége. Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 28

29 Szövegfeldolgozás: szűrés
INFOÉRA 2006 Szövegfeldolgozás: szűrés Szóközcsoport szűrés – a szavak között csak egyetlen szóköz maradjon! Példa: Ugat a kutya  Ugat a kutya Eljárás Szűrés: Nyit(f,g) Ciklus amíg nem FileVége?(f) ÚjszóOlvas(f,szó) Ír(g,szó) Ciklus vége Zár(f,g) Eljárás vége. Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 29

30 Szövegfeldolgozás: szűrés
INFOÉRA 2006 Szövegfeldolgozás: szűrés Lépjük át a szavak előtti szóközöket (és sorvégeket)! Eljárás ÚjszóOlvas(f,szó): Olvas(f,kar) Ciklus amíg kar=’ ’ vagy kar=SORVÉG Ciklus vége szó:=kar Ciklus amíg kar’ ’ és karSORVÉG Olvas(f,kar); szó:=szó+kar Eljárás vége. Most a szó része a szót követő szóköz vagy sorvég is. Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 30

31 Szövegfeldolgozás: szűrés
INFOÉRA 2006 Szövegfeldolgozás: szűrés Karakter párok szűrése (pl. <=) – előreolvasás módszere: Eljárás Szűrés: Nyit(f,g); Olvas(f,ekar) Ciklus amíg nem FileVége?(f) Olvas(f,kar) Ha ekar=’<’ és kar=’=’ akkor Olvas(f,ekar) különben Ír(g,ekar); ekar:=kar Ciklus vége Ír(g,ekar); Zár(f,g) Eljárás vége. Figyelem! Az algoritmus kihasználja, hogy minden sor végén van egy sorvégjel. Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 31

32 Szövegfeldolgozás: szűrés
INFOÉRA 2006 Szövegfeldolgozás: szűrés Szavak szűrése – egy szó kiírható, ha nincs benne a szűrendők halmazában: Eljárás Szűrés: Nyit(f,g) Ciklus amíg nem FileVége?(f) SzóOlvas(f,szó) Ha szóSzűrendők akkor Ír(g,szó) Ciklus vége Zár(f,g) Eljárás vége. Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 32

33 Szövegfeldolgozás: szűrés
INFOÉRA 2006 Szövegfeldolgozás: szűrés Páros jelek közöttiek szűrése (pl. {,}) Eljárás Szűrés: Nyit(f,g); Kell:=igaz Ciklus amíg nem FileVége?(f) Olvas(f,kar) Ha kar=’{’ akkor Kell:=hamis különben ha kar=’}’ akkor Kell:=igaz különben ha Kell akkor Ír(g,kar) Ciklus vége Zár(f,g) Eljárás vége. Ez csak akkor működik helyesen, ha nincsenek egymásba ágyazott zárójelpárok. Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 33

34 Szövegfeldolgozás: szűrés
INFOÉRA 2006 Szövegfeldolgozás: szűrés Páros jelek közöttiek szűrése (pl. {,}) Eljárás Szűrés: Nyit(f,g); Db:=0 Ciklus amíg nem FileVége?(f) Olvas(f,kar) Ha kar=’{’ akkor Db:=Db+1 különben ha kar=’}’ akkor Db:=Db-1 különben ha Db=0 akkor Ír(g,kar) Ciklus vége Zár(f,g) Eljárás vége. xx{xx{xx}xx}xx – a teljes belső rész kihagyása nyitott zárójelpárok számának kezelésével Zsakó László: Szövegfeldolgozás :20 Juhász István-Zsakó László: Informatikai képzések a ELTE-n 34

35 Szövegfeldolgozás I. előadás vége INFOÉRA 2006 2006.11.18
Juhász István-Zsakó László: Informatikai képzések a ELTE-n


Letölteni ppt "Szövegfeldolgozás I. INFOÉRA"

Hasonló előadás


Google Hirdetések