Strumenti Utente

Strumenti Sito


informazione_mutua_puntuale

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
informazione_mutua_puntuale [2021/10/25 13:57]
65.21.180.48 versione precedente ripristinata (2021/05/20 07:21)
informazione_mutua_puntuale [2026/04/30 08:44] (versione attuale)
admin
Linea 27: Linea 27:
 5b)\hspace{4pt} IMP\hspace{4pt}=\hspace{4pt} 5b)\hspace{4pt} IMP\hspace{4pt}=\hspace{4pt}
 log_{2}\hspace{4pt}\frac{1}{P(x=a)}\hspace{4pt}+\hspace{4pt}log_{2}\hspace{4pt}\frac{1}{P(x=b)}\hspace{4pt} log_{2}\hspace{4pt}\frac{1}{P(x=a)}\hspace{4pt}+\hspace{4pt}log_{2}\hspace{4pt}\frac{1}{P(x=b)}\hspace{4pt}
-+\hspace{4pt} log_{2}\hspace{4pt} P(x_{t}=a,\hspace{4pt}x_{t+1}=b)  \hspace{4pt} = \hspace{4pt} ++\hspace{4pt} log_{2}\hspace{4pt} P(x_{t}=a,\hspace{4pt}x_{t+1}=b)  \hspace{4pt} =$$ 
 +$$= \hspace{4pt} 
  
 I(x=a)+I(x=b)-I(x_{t}=a,\hspace{4pt}x_{t+1}=b) I(x=a)+I(x=b)-I(x_{t}=a,\hspace{4pt}x_{t+1}=b)
 $$ $$
 +
 ===== Comportamento dell'informazione mutua puntuale ===== ===== Comportamento dell'informazione mutua puntuale =====
 Se le probabilità dei due elementi del bigramma sono perfettamente indipendenti l'una dall'altra allora: Se le probabilità dei due elementi del bigramma sono perfettamente indipendenti l'una dall'altra allora:
Linea 50: Linea 52:
 $$ $$
 ====== Funzioni in python ====== ====== Funzioni in python ======
-<code python> +<code python imp.py> 
-from __future__ import division +import re 
-import codecs+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") 
 +</code> 
 + 
 + 
 + 
 +<code python imp-old.py>
 import re import re
-from scipy import log2+from numpy import log2
  
 #preparazione del testo "Pinocchio" #preparazione del testo "Pinocchio"
-f=codecs.open('Testi/collodi_pinocchio.txt', encoding='iso-8859-1', mode='r')+f=open('testi/collodi_pinocchio.txt', mode='r', encoding='iso-8859-1')
 testo=f.read() testo=f.read()
-testo=testo[1758:]+testo=testo[1704:]
 testo=re.sub("'","' ", testo) testo=re.sub("'","' ", testo)
 testo=re.sub('[\.,;:\-?!]{1}','',testo) testo=re.sub('[\.,;:\-?!]{1}','',testo)
Linea 69: Linea 110:
 I = lambda x, testo: -log2(testo.count(x)/len(testo)) I = lambda x, testo: -log2(testo.count(x)/len(testo))
 bigrammi = NGRAMMI(2,testo) bigrammi = NGRAMMI(2,testo)
-print "IMP di 'il burattino'" +print("IMP di 'il burattino'") 
-print I('il',testo) + I('burattino',testo)-I(('il','burattino'),bigrammi) +print(I('il',testo) + I('burattino',testo)-I(('il','burattino'),bigrammi)) 
-print +print("\n") 
-print "IMP di 'capelli turchini'" +print("IMP di 'capelli turchini'") 
-print I('capelli',testo) + I('turchini',testo)-I(('capelli','turchini'),bigrammi)+print(I('capelli',testo) + I('turchini',testo)-I(('capelli','turchini'),bigrammi))
  
 </code> </code>
informazione_mutua_puntuale.1635170258.txt.gz · Ultima modifica: 2021/10/25 13:57 da 65.21.180.48