Strumenti Utente

Strumenti Sito


entropia_degli_n-grammi

Questa è una vecchia versione del documento!


Entropia degli n-grammi

Funzioni della teoria dell'informazione

1
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...

N-grammi

1
#...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()

entropia_degli_n-grammi.1622706853.txt.gz · Ultima modifica: 2021/06/03 07:54 da 31.156.199.251