igandea, ekaina 27, 2021

Nóla kalkulatu a entropia teorikoa e Ulisses?

Behin atzokoan ikusita nóla kalkulatu Sn proportzioa an Ulisses (alegia, nóla kalkulatu a proportzioa arten hitz-kopuru totala eta hitz ezberdinen kopurua:

S29.899 = 1 + (1/2) + (1/3) + (1/4) + ... + (1/29.898) + (1/29.899) = 10.88281

halan-ze hitz ezberdin bakoitzeko, izanen dugú 10.88281 hitz, totalean), gaurko sarrera honetan saiatuko gara kalkulatzen a entropia e Ulisses baldin corpus horretan Zipf-en erlazioa beteko balitz perfektuki (ordezta aproximatuki, nola betetzen den): esan nahi baita, baldin beheko irudiko A marra, Ulisses-i dagokona, izango balitz perfektuki zuzena, nola den C marra teorikoa, ordezta aproximatuki zuzena, nola den (ikus grafiko hori hemen ere).

Bestela galdetuta, ¿zéin izango litzake C marra teorikoaren entropia baldin hasiko balitz an 29.899 hitz ezberdin (bere ordenatu-balioa = 29.899) ordezta hasí an 10.000 (hitz ezberdin)?

Kalkulu hori egiteko behar dugu Ulisses-en hitz ezberdin guztien probabilitateak (finean, euren maiztasun erlatiboak respektu hitz-kopuru totala), zeini aplikatuko diegu a formula e entropia (ikus hemen edo hemen): 

Hortaz, ¿zenbátekoa izanen da a probabilitatea e hitz erabiliena an Ulisses? Ba, dakigularik ze hitz horren maiztasuna agertzen da an erlazioa 1/10.88281 respektuz hitz-kopuru totala, ondoriozta daikegu ze justuki horixe da bere probabilitatea, alegia:

(1/10.88281) = 0.09188803

Eta bigarren hitz erabilienaren probabilitatea? Ba, dakigularik ze probabilitate hori dá justuki erdia respektu lehenengo hitz erabiliena (zeren Zipf-en erlazioa perfektuki betetzen baita), hauxe izanen da:

(1/(10.88281*2)) = 0.04594402

Eta n-garren hitz erabilienaren probabilitatea?

pn = 1/(10.88281*n)

Eta hitz gutxien erabilienaren probabilitatea? 

(1/(10.88281*29.889)) = 0.003074309

Puntu honetan, ziurta gaitezen ze probabilitate-sorta horrek dú osatzen probabilitate-banaketa ondo definitu bat, hau dá, konproba daigun ze 29.899 probabilitate guzti horien batura dén 1, bidéz ondorengo operazioa:

sum(1/(10.88281*(1:29899))) = 1         

[OHARRA: Expresio horren lehenengo termino hori dá R kodetxoa adiéraziz a batuketa e goragoko n (29.899) probabilitate guzti horiek, zeinen emaitza ateratzen dén 1]

Hortaz, gure zenbaki-segida horrek dú betetzen a eskakizunak zeinen bila ari ginen: 

  • lehenengo zenbakia (finean, probabilitatea) dá (1/(10.88281*2)) = 0.04594402
  • n-garren zenbakia dá lehenengo zenbaki hori zati n, eta 
  • euren batura dá 1.

Orain kalkula daikegu a entropia, H, zeinen bila genbiltzan, hau dá. a entropia e Ulisses:

H = sum((1/(10.88281*(1:29899)))*log2(1/(1/(10.88281*(1:29899))))) = 10.47396 bit, batez beste, hitz bakoitzeko.

[OHARRA: Expresio horren lehenengo termino hori dá R kodetxoa adiéraziz a batuketa e 29.899 entropia partzialak zein dagozkie ki 29.899 hitz ezberdinak, zeinen emaitza, hau dá  H entropia, dén 10.47396

Justuki horixe (10.47396 bit per hitza) izanen dá a entropia teorikoa e Ulisses (kin bere 29.899 hitz ezberdin). []