Questa è una vecchia versione del documento!
from numpy import log2 import pickle import matplotlib.pyplot as plt I = lambda p: -log2(p) #informazione H = lambda x : sum(p*I(p) for p in x if p>0) #entropia def DP(x): #distribuzione di probabilità l=len(x) s=set(x) return [x.count(i)/l for i in s] #continua...
#...continua def NGRAMMI(n,testo): l=len(testo) segnaposti=['$$$']*(n-1) testo=segnaposti+testo return [tuple(testo[i:i+n]) for i in range(l)] with open('Testi/collodi_pinocchio.pkl','rb') as f: testo=pickle.load(f) H1= H(DP(testo)) print H1 H2= H(DP(NGRAMMI(2,testo))) print H2 H3= H(DP(NGRAMMI(3,testo))) print H3 H4= H(DP(NGRAMMI(4,testo))) print H4 plt.bar(range(1,4+1),[H1,H2,H3,H4]) plt.show()