import re from numpy import log2 #preparazione del testo "Pinocchio" f=open('collodi_pinocchio.txt', mode='r', encoding='iso-8859-1') testo=f.read() testo=testo[1704:] testo=re.sub("'","' ", testo) testo=re.sub('[.,;:\-?!]','',testo) testo=testo.lower() testo=testo.split() #funzioni def NGRAMMI (n, testo): return [tuple(testo[i:i+n]) for i in range(len(testo)+1-n)] def I (x, testo): return -log2(testo.count(x)/len(testo)) def P (x, testo): return testo.count(x)/len(testo) def IMP (a,b,testo): bigrammi = NGRAMMI(2,testo) return log2(P((a,b),bigrammi)/(P(a,testo)*P(b,testo))) #return I(a,testo) + I(b,testo)-I((a,b),bigrammi) #test print("IMP di 'il burattino'") print(IMP('il', 'burattino', testo)) print("\n") print("IMP di 'capelli turchini'") print(IMP('capelli', 'turchini', testo)) print("\n") print("IMP di 'è di'") print(IMP('è', 'di', testo)) print("\n")