You are on page 1of 9

OBRADA TEKSTA I JEZIKA

int('3') - #vraa cjelobrojnu vrijednost -> 3 float('3') - #vraa realnu vrijednost -> 3.0 str(3) - #pretvara objekt u niz znakova -> '3' print tekst - #ispisuje teksta na ekran s='String' - #u varijablu upisuje niz znakova s.upper() - #niz znakova zapisan u varijabli pretvara u velika slova == - #jednako je > - #vee od < - #manje od <= - #vee ili jednako >= - #manje ili jednako != - #nije jednako / - #cjelobrojno dijeljenje % - #dijeljenje sa ostatkom ** - #eksponent niz[index] - #adresiranje u nizu (prvi znak ima indeks 0) niz[x:y] - #adresiranje od znaka x do znaka y bez y niz[:y] - #adresiranje od poetka do znaka y bez znaka y niz[x:] - #adresiranje od znaka x do kraja s.count('znak',x, y) - #broji pojavljivanje znaka (moe se navesti poetna i zavrna vrijednost) s.replace ('staro', 'novo', x) - #zamijenjuje stari znak sa novim u nizu (moe se navesti koliko znakova se mijenja) s.find('znak', x, y) - #pronalazi na kojem se mjestu nalazi znak (moe se navesti poetna i zavrna vrijednost u traenju) s.strip() - #uklanja razmake sa poetka i kraja niza s.split('znak') - #razdvaja niz znakova na elemente liste pod navedenim znakom 'znak'.join(s) - #spaja listu u niz znakova pod navedenim znakom lista=[] - #stvaranje prazne liste len(lista) - #vraa duljinu liste lista.append(element) - #upisuje element na kraj liste lista.insert(x, element) - #upisuje element na x-to mjesto u listi #za liste vrijedi ista pravila indeksiranja kao kod nizova znakova, samo se ovdje indeksira po elementima liste if uvjet==kriterij : - #provjerava dali nam uvjet zadovoljava kriterij ###VANO: mora se imati bar jedna IF petlja, moe se imati jedna, nijedna ili vie ELIF petlja, moe se imati jedna ili nijedan ELSE for varijabla in kriterij : - #iterira kroz kriterij i upisuje to u varijablu ###VANO: kroz datoteke iterira se kroz redove, kroz liste iterira se kroz elemente, kroz niz znakova iterira se kroz svaki znak while uvjet : - #dotle god je uvjet zadovoljen, vrti se petlja 'znak' in 'uvjet' - #provjerava dali se znak ili niz znakova pojavljuje u uvjetu ###DATOTEKE ##Upis u datoteku datoteka=open('ime_datoteke.txt', 'w') - #moramo otvoriti datoteke pod nekim nazivom i ukljuiti modul za upis u datoteku datoteka.write('tekst'.encode('kod')) - #upisujemo u datoteku tekst i kodiramo ga odreenom kodnom stranicom (KOD= UTF8, ISO-8859-2, WINDOWS-1250) datoteka.close() - #na kraju upisa moramo zatvoriti datoteku

##itanje kroz datoteku datoteka=open('ime_datoteke.txt', 'r') - #moramo otvoriti datoteku pod nekim nazivom i ukljuiti modul za itanje datoteke #VANO: kada se ukljuuje modul za itanje, onda se ita svaki redak datoteke kao niz znakova open('ime_datoteke.txt').read().decode('kod') - #otvara se datoteka, ita se SVAKI znak datoteke i dekodira se odreenom kodnom stranicom (KOD= UFT8, ISO-8859-2, WINDOWS-1250) ##Modul codecs import codecs - #na poetku moramo ukljuiti modul za codecs ako ga mislimo koristiti datoteka=codecs.open('ime_datoteke.txt', 'w', 'kod') - #uz pomo codecsa moemo izravno kodirati tekst u datoteku samo ako je u unicodu (teksta zapisan da je na poetku u) codecs.open('ime_datoteke.txt', 'r', 'kod').read() - #uz pomo codecsa moemo proitati svaki znak koji je dekodiran odreenom kodnom stranicom i ispisati ga u unicodu

VJEBE
V JEBA ZA KOLOVIJ
1) tekst=open('life_of_brian.sub').read() tekst_dekodirani=tekst.decode('iso-88592') print tekst_dekodirani[:500] 2) tekst_dekodirani=tekst_dekodirani.replac e('|',' ').replace(' ',' ') open('life_of_brian_utf8.sub','w').write(te kst_dekodirani.encode('utf8')) tekst_dekodirani.close() 3) broj_redaka=0 for red in open('life_of_brian_utf8.sub'): broj_redaka+=1 print broj_redaka 4) interpunkcijski_znakovi=0 for znak in open('tekst_utf8.txt','r').read().decode('ut f8'): if znak in ',.:;!?"()-_': interpunkcijski_znakovi+=1 print interpunkcijski_znakovi 5) broj_rjeci=0 for red in open('tekst_utf8.txt','r'): broj_rjeci+=red.count(' ')+1 print broj_rjeci 6) titlovi=[] for red in open(life_of_brian_utf8.sub'): red=red.decode('utf8') titl=red.strip().split('}')[-1] titlovi.append(titl) print titlovi[:3] 7) datoteka=open('nova.txt','w') for titl in titlovi: datoteka.write((titl+'\n').encode('utf8')) datoteka.close() #2 tekst=open('life_of_brian.sub').read() dekodirani_tekst=tekst.decode('iso-88592') print dekodirani_tekst #3 dekodirani_tekst=dekodirani_tekst.replac e('|','').replace(' ',' ') open('life_of_brian_utf8.sub','w').write(de kodirani_tekst.encode('utf8')) #4 broj_redaka=0 for red in open('life_of_brian_utf8.sub'): broj_redaka+=1 print broj_redaka #5 broj_interpunkcijskih_znakova=0 for znak in open('life_of_brian_utf8.sub').read().deco de('utf8'): if znak in '.,;:!?"-_()[]{}': broj_interpunkcijskih_znakova+=1 print broj_interpunkcijskih_znakova

#6 broj_rijeci=0 for red in open('life_of_brian_utf8.sub'): broj_rijeci+=red.count('')+1 print broj_rijeci #7 lista_titlova=[] for red in open('life_of_brian_utf8.sub'): red=red.decode('utf8') titl=red.strip().split('}')[-1] lista_titlova.append(titl)

print lista_titlova[:3] #8 datoteka=open('life_of_brian_utf8.sub','w ') for titl in lista_titlova: datoteka=open('life_of_brian_utf8_titlovi. txt','w') for titl in lista_titlova: datoteka.write((titl+'\n').encode('utf8')) datoteka.close()

VJEBA * s=open('primjer.txt','r').read() t=open('text1.txt','w') t.write('blablabla kakkdla sfkjkss.\nladkadk akdalsdk adklda\n') t.close() broj_redova=0 for red in open('text1.txt'): broj_redova+=1 print broj_redova broj_samoglasnika=0 for znak in open('text1.txt','r').read(): if znak.lower() in ('aeiou'): broj_samoglasnika+=1 print broj_samoglasnika broj_odgovora=0 for red in open('primjer.txt'): broj_odgovora+=1 print broj_odgovora broj_znanih_odgovora=0 for red in open('primjer.txt'): if red.strip().split('\t')[2]=='1': broj_znanih_odgovora+=1 print broj_znanih_odgovora broj_tocnih_odgovora=0 for red in open('primjer.txt'): if red.strip().split('\t')[2]and red.strip().split('\t')[3]=='1': broj_tocnih_odgovora+=1 print broj_tocnih_odgovora

o o

print float(broj_tocnih_odgovora)/broj_znanih_odgovora tocni_odgovori_9=0 for red in open('primjer.txt'): if red.strip().split('\t')[1]=='9': tocni_odgovori_9+=1 print tocni_odgovori_9 print float(tocni_odgovori_9)/broj_tocnih_odgovora

VJEBA ** #1 Tekst iz datoteke hr.txt proitajte i dekodirajte te prvih 1000 znakova zapiite u datoteku hr_iso_1000.txt koristedi ISO-8859-2 kodiranje te u datoteku hr_utf_1000.txt koristedi UTF -8 kodiranje. Izraunajte broj znakova bez dekodiranja u obje nove datoteke te provjerite je li on identian. Ponovite isto, no ovaj put dekodirajudi tekst. hr_tekst=open('hr.txt').read().decode('utf8') odsjecak=hr_tekst[:1000] dat_utf=open('hr_utf_1000.txt','w') dat_utf.write(odsjecak.encode('utf8')) dat_utf.close() dat_iso=open('hr_iso_1000.txt','w') dat_iso.write(odsjecak.encode('iso-8859-2')) dat_iso.close() print len(open('hr_utf_1000.txt').read()) print len(open('hr_iso_1000.txt').read()) print len(open('hr_utf_1000.txt').read().decode('utf8')) print len(open('hr_iso_1000.txt').read().decode('iso-8859-2')) print open('hr_utf_1000.txt').read()==open('hr_iso_1000.txt').read() print open('hr_utf_1000.txt').read().decode('utf8')==open('hr_iso_1000.txt').read().decode('iso-8859-2') #2 dalje radite nad datotekama hr.txt i en.txt. Izraunajte broj redaka u svakoj od datoteka iteriranjem kroz svaki red. br_redova_en=0 br_redova_hr=0 for red in open('en.txt'): br_redova_en+=1 for red in open('hr.txt'): br_redova_hr+=1 print 'broj redova u en je '+str(br_redova_en)+', a u hr je '+str(br_redova_hr) #3 Izraunajte broj znakova u svakoj od datoteka. Pazite da ispravno dekodirate tekst prije izrauna njegove duljine. tekst_en=open('en.txt').read().decode('utf8') tekst_hr=open('hr.txt').read().decode('utf8') br_znakova_en=len(tekst_en) br_znakova_hr=len(tekst_hr)

print 'broj znakova u en je '+str(br_znakova_en)+', a u hr je '+str(br_znakova_hr) #4 Izraunajte broj znakova razmaka i prelazaka u novi red te pretpostavite broj rijei u svakom dokumentu. Izraun broja traenih znakova provedite iteriranjem kroz svaki znak. br_rijeci_en=0 br_rijeci_hr=0 for znak in tekst_en: if znak in ' \n': br_rijeci_en+=1 for znak in tekst_hr: if znak in ' \n': br_rijeci_hr+=1 print 'procjena broja rijei u en je '+str(br_rijeci_en)+', a u hr je '+str(br_rijeci_hr) #5 . Izraunajte procjenu prosjene duljine rijei u svakom uzorku ((broj_znakova-broj_rijeci)/broj_rijeci). print 'procjena prosjene duljine rijei u en je '+str(float(br_znakova_en -br_rijeci_en)/br_rijeci_en) print 'procjena prosjene duljine rijei u hr je '+str(float(br_znakova_hr-br_rijeci_hr)/br_rijeci_hr) #6Izraunajte broj pojava svakog samoglasnika u svakom od tekstnih uzoraka. Izvrite cijeli izraun jednom iteracijom kroz svaki znak pojedinog niza znakova (za provjeru, u engleskom uzorku "a" se pojavljuje 9046 puta, a "e" 12796 puta). br_a_en=0 br_e_en=0 br_i_en=0 br_o_en=0 br_u_en=0 for znak in tekst_en.lower(): if znak=='a': br_a_en+=1 elif znak=='e': br_e_en+=1 elif znak=='i': br_i_en+=1 elif znak=='o': br_o_en+=1 elif znak=='u': br_u_en+=1 print 'en a '+str(br_a_en) br_a_hr=0 print 'en e '+str(br_e_en) br_e_hr=0 print 'en i '+str(br_i_en) br_i_hr=0 print 'en o '+str(br_o_en) br_o_hr=0 print 'en u '+str(br_u_en) br_u_hr=0 for znak in tekst_hr.lower(): br_sam_en=float(br_a_en+br_e_en+br_i_en+br_o if znak=='a': _en+br_u_en) br_a_hr+=1 print 'en a '+str(br_a_en/br_sam_en) elif znak=='e': print 'en e '+str(br_e_en/br_sam_en) br_e_hr+=1 print 'en i '+str(br_i_en/br_sam_en) elif znak=='i': print 'en o '+str(br_o_en/br_sam_en) br_i_hr+=1 print 'en u '+str(br_u_en/br_sam_en) elif znak=='o': br_o_hr+=1 elif znak=='u':

br_u_hr+=1 print 'hr a '+str(br_a_hr) print 'hr e '+str(br_e_hr) print 'hr i '+str(br_i_hr) print 'hr o '+str(br_o_hr) print 'hr u '+str(br_u_hr) br_sam_hr=float(br_a_hr+br_e_hr+br_i_hr+br_o_ hr+br_u_hr) print 'hr a '+str(br_a_hr/br_sam_hr) print 'hr e '+str(br_e_hr/br_sam_hr) print 'hr i '+str(br_i_hr/br_sam_hr) print 'hr o '+str(br_o_hr/br_sam_hr) print 'hr u '+str(br_u_hr/br_sam_hr)

ZADATCI ZA KOLOKVIJ FORUM,PREDAVANJE (KOLOKVIJ.TXT)


1) maknuti prazne redove novi=open('new.txt','w') kolokvij=open('kolokvij.txt') for red in kolokvij: if red.strip()!='': novi.write(red) novi.close() 2) izraunati broj glagola (408) br_glagola=0 for red in open('kolokvij.txt'): if red.strip()!='': vrij=red.decode('utf8').strip().split('\t') if vrij[3]=='V': br_glagola+=1 print br_glagola 3) izraunati broj pomodnih i glavnih glagola br_va=0 br_vm=0 for red in open('kolokvij.txt'): if red.strip()!='': vrij=red.decode('utf8').strip().split('\t') if vrij[4][:2]=='Vc': br_va+=1 if vrij[4][:2]=='Va': br_va+=1 elif vrij[4][:2]=='Vm': br_vm+=1 print br_va print br_vm 4) Izraunati prosjenu duljinu imenica i glagola (7,4)

broj_n=0 dulj_n=0 broj_v=0 dulj_v=0 for red in open('kolokvij.txt'): if red.strip()!='': vrij=red.decode('utf8').strip().split('\t') if vrij[3]=='V': broj_v+=1 dulj_v+=len(vrij[1]) elif vrij[3]=='N': broj_n+=1 dulj_n+=len(vrij[1]) print (dulj_v/broj_v) print (dulj_n/broj_n) 5. lista glagola lista_gl=[] for red in open('kolokvij.txt'): if red.strip()!='': vrij=red.decode('utf8').strip().split('\t') if vrij[3]=='V': lista_gl.append(vrij[2]) print lista_gl 6.glagoli na irati datoteka=open('gl_na_irati.txt', 'w') for glagol in lista_gl: if glagol[-5:]=='irati': datoteka.write((glagol + '\n').encode('utf8')) datoteka.close() 7.osobna imena malim slovima datoteka=open('imena.txt', 'w') for red in open('kolokvij.txt'): if red.strip()!='': vrij=red.decode('utf8').strip().split('\t') if vrij[4][:2]=='Np': datoteka.write((vrij[2]+ '\n').lower().encode('utf8')) datoteka.close() 8.broj reenica (?) br_recenica=0 for red in open('kolokvij.txt'): if red.strip()!='': vrij=red.decode('utf8').strip().split('\t') if vrij[1]=='.': br_recenica+=1 print br_recenica

# -*- coding: cp1250 -*#1 # red.strip() " Pet77a ide u. " = "Pet77a ide u." datoteka=open('kolokvij.txt','r') #tekst=datoteka.read().decode('utf8') broj_redova=0 for red in datoteka: if red.strip()!='': # s ovim smo izbacili prazne redove broj_redova+=1 print broj_redova datoteka.close() #2 prebrojavanje znakova datoteka=open('kolokvij.txt','r') tekst=datoteka.read().decode('utf8') broj_znakova=0 for znak in tekst: if znak.strip()!='': broj_znakova+=1 print broj_znakova datoteka.close()

#3 vaenje glagola iz datoteke i stavljanje istih u listu nova_lista=[] for red in open('kolokvij.txt','r'): if red.strip()!='':# ako nije prazno tj. ako neto ima u redu vrijednost=red.decode('utf8').strip().split('\t') if vrijednost[3]=='V': nova_lista.append(vrijednost[2]) print nova_lista[10][-4:] datoteka.close() #4 a kolko ima glagolaaaaaaaaa? broj_glagola=0 for red in open('kolokvij.txt','r'): if red.strip()!='': vrijednost=red.decode('utf8').strip().split('\t') if vrijednost[3]=='V': broj_glagola+=1 print broj_glagola #datoteka.close() #4b brojcica = open('kolokvij.txt','r').read().decode('utf8').count('p') print brojcica

#5 broj_imena=0 temp_lista=[] for red in open('kolokvij.txt','r'): if red.strip()!='': vrijednost=red.decode('utf8').strip().split('\t') if vrijednost[4][:2]=='Np': datoteka=open('kolokvij2.txt','a') #ako eli pisati u datoteku rije po rije onda je mora otvoriti sa 'a', inae ti pregazi sve datoteka.write((vrijednost[2]+' \n').encode('utf8')) broj_imena+=1 print broj_imena datoteka=open('kolokvij2.txt','r').read().decode('utf8') print datoteka for rijec in temp_lista: print rijec + '\n'

You might also like