larunbata, uztaila 03, 2021

Berridátziz atzoko "TEnt" funtzioa an R erábiliz "Entropy" funtzioa ("DescTools")

Atzo emán genuén R funtzio(txo) bat non lotzen dirén Shannon-en entropia eta Zipf-en legea afin kalkúlatu corpus linguistiko baten entropia teorikoa:

Horrela, defini geinke (an R softwarea) ondorengo funtzioa ki kalkulatu ha entropia teorikoa on corpus linguistiko bat non den perfektuki betetzen (teorikoki ere) Zipf-en legea ("TEnt" dá hainbeste nola "Theoretical Entropy"):

TEnt <- function(n){sum((1/(sum(1/(1:n))*(1:n))*log2(1/(1/(sum(1/(1:n))*(1:n))))))} 

non "n" parametro bakarra dagoen, zeintan aplikatuko dugún edozein kopurú on hitz ezberdinak, hala nola n = 29899:

TEnt(29899)

zeinen emaitza izanen dén goragoko entropia teorikoa (an "Ulisses"): 

10.47395
Horretarako, soilik jakin behar dugu zénbat hitz ezberdin agertzen diren an corpusa: Zipf-en legeak determinatzen dú beste guztia.

Genioenez, funtzio hori eman dá an R softwarea, zein doan deskarka litekén an gune hau. Behin R instalatuta, funtzio horrekin kalkulatu ahalko dá ha entropia teorikoa on edozein "n", adibidez "n = 10000":

TEnt(10000)

zeinen erantzuna dén:

9.532297

eta zein, dakigunez, izanen dén ha entropia teorikoa on corpus linguistiko bat kin 10000 hitz diferente.

Bestalde, R-n programatuta aurkitzen dirá hainbat funtzio, eta bádira paketeak non kalkulatu ahal den Shannon-en entropia ("DescTools" edo "Entropy"), eta non aurkitzen dugún ondorengo aukera ("DescTools"):


 kin azalpen hau ("DescTools"):

The Shannon entropy equation provides a way to estimate the average minimum number of bits needed to encode a string of symbols, based on the frequency of the symbols. It is given by the formula \(H = - \sum(\pi log(\pi))\) where \(\pi\) is the probability of character number i showing up in a stream of characters of the given "script". The entropy is ranging from 0 to Inf.

"Entropy" funtzio hori erabiltzeko, aurrena kargatu behar da "DescTools" paketea (gure atzoko funtzioa erabiltzeko ez da ezer deskargatu behar, salbu R programa), eta, adibidez, hari emanez probabilitate-sorta oso bat (demagun 0.5 eta 0.5, bidez kodeá: c(0.5,0.5)), programak emanen digú haren entropia teorikoa (baita eman geneioke maiztasun absolutuak edota balio ez-numerikoak nola hitzen zerrenda bat, eta programak automatikoki kalkulatuko ditú euren probabilitateak):

Entropy(c(0.5,0.5)) = 1

Gure kasuan, berdefini geinke gure funtzioa erábiliz "Entropy" funtzioa, honela:

TEnt<- function(n){Entropy((1/((sum(1/(1:n)))*(1:n))))}

non (1/((sum(1/(1:n)))*(1:n)))) zati horrek adierazten du ha probabilitate-sorta zeinen entropia teorikoa kalkulatu nahi dugun:

TEnt(10000) = 9.532297
zein dén atzoko ber funtzioa baina orain erábiliz "Entropy" funtzioa ("DescTools"). [1310] [>>>]

Etiketak: ,

osteguna, uztaila 01, 2021

Entropia teorikoa dá marra zuzen baten entropia (non Zipf-en legea betetzen den perfektuki harik azken hitz ezberdina)

Kalkulatu dugú, hemen eta atzo, ha entropia teorikoak on "Ulisses" (non agertzen zirén 29.899 hitz ezberdin: A marra) eta ariketa berbera burutu dugú an lagin periodistiko bat (non agertzen zirén 6.002 hitz ezberdin: B marra), zeinen emaitzak zirén, hurrenez hurren:

H29899 = 10.47396

H6002 = 9.087565

Orain, zéin izanen litzake ha entropia teorikoa on corpus linguistiko bat kin 10.000 hitz ezberdin? Ba, izanen litzake ha entropia on beheragoko C marra, zeren C marra sortzez da teorikoa (hor, Zipf-en legea dá betetzen perfektuki harik azken hitz ezberdina, zein dén 10.000garrena), halan ze bere entropia dá gure entropia teorikoa.

Nabaria da nóla C marra horretan ez den gertatzen irregulartasunik (C marra dá perfektuki zuzena), ez eta, beraz, eskilara-maila modukorik an azken zatia, bitártean ze A eta B marretan bai agertzen zaizkigula halako eskilara-mailak justuki zatio izaera diskretua on maiztasunak. Gainera, C bezalako marra teoriko batean, malda dá -1.

Kalkula daigun, hortaz, C marrari dagokion S10.000 proportzioa:

S10000 = 1 + (1/2) + (1/3) + (1/4) + ... + (1/10000) + (1/10000) = sum(1/(1:10000)) = 9.787606

Hortik, hitz erabilienaren probabilitate teorikoa litzaké:

(1/ 9.787606) =  0.10217

eta bilatutako entropia:

H10000 = sum((1/( 9.787606*(1:10000)))*log2(1/(1/(9.787606*(1:10000))))) =  9.532297 bit per hitza, batezbeste.

zein den aurkitzen artén entropia on "Ulisses" (H29899 = 10.47396) eta entropia on lagin periodistikoa (H6002 = 9.087565), nola espero geinken.

Hortaz, Ulisses-en entropia teorikoa izanen dá justuki ha entropia on marra zuzena zeinen ordenatu-balioa dén 29.899 an eskala lineala, edo log10(29899) = 4.475657 an eskala logaritmikoa; berdin nola lagin periodistikoaren entropia teorikoaha entropia on marra zuzena zeinen ordenatu-balioa dén 6.002 an eskala lineala, edo log10(6002) = 3.778296 an eskala logaritmikoa, beti ere kin maldá -1. [1308] [>>>]

Etiketak: ,

asteazkena, ekaina 30, 2021

Eta zéin litzake ha entropia teorikoa on corpus bat non agertzen dirén 6.002 hitz ezberdin? (B marra: lagin periodistiko bat)

Hemen ikusten genuén beheragoko grafikoa non Zipf-ek (1948) ilustratzen zuén bere erlazioa lótuz corpus bateko hitz ezberdinen maiztasuna (f) eta maiztasun horien ordinalitatea (r), zeinen biderkadura mantenduko zén aproximatuki konstante (f * r = C). Grafiko horretan, dakigunez, A marra referitzen da ki "Ulisses" nobela ga Joyce, bitárten B marra dagokio i lagin periodistiko bat zeinen bidez Zipf-ek erakutsi nahi zuen nóla bere erlazioaren aplikazioa zihoan haruntzago ti aipatutako "Ulisses". Eta, bai, bádirudi ze, neurri handi batean behintzat, Zipf-en proportzio hori betetzen da hor ere:

Hortaz, eta hemen kalkulatu dugularik Ulisses-en entropia teorikoa (alegia, ha entropia on corpus linguistiko hori baldin Zipf-en erlazioa beteko balitz perfektuki, nahiz hori soilik gertatu ahal den teorikoki zatio diskretutasuna on maiztasunak), gaurkoan nahi genuke kalkulatu zéin dén ha entropia teorikoa on lagin periodistikoa.

Horretarako, aurrena kalkulatuko dugú corpus horrentzako Sn proportzioa (alegia, zéin izanen litzaken ha proportzio teorikoa artén maiztasun altuena eta hitzen kopuru totala baldin Zipf-en erlazioa perfektuki beteko balitz):

S6.002 = 1 + (1/2) + (1/3) + (1/4) + ... + (1/6.001) + (1/6.002) = sum(1/(1:6002)) = 9.277147

Hortik, hitz erabilienaren probabilitate teorikoa litzaké:

(1/ 9.277147) =  0.1077918

eta bilatutako entropia teorikoa:

H = sum((1/( 9.277147*(1:6002)))*log2(1/(1/( 9.277147*(1:6002))))) = 9.087565 bit, batez beste, hitz bakoitzeko.
zein diren nabarmenki bit teoriko gutxiago zein batezbesteko 10.47396 bitak per hitza an Ulisses. [1307] [>>>]

Etiketak: ,

asteartea, ekaina 22, 2021

Zipf-ek eskainitako grafiko bat non dún erakusten bere erlazioa an bi corpus (1948)

Atzoko sarreran ikusten genuén nóla Zipf-ek, erábiliz James Joyce-ren Ulisses lana, deduzitzen zuén bere erlazioa arten hitzen maiztasunak (f) eta maiztasun horien ordena-zenbakia (r), non, aproximatuki, bi kantitate horien biderkadura mantenduko zén konstante: f * r = C. Joyce-k, obra horretan, erabili zituén justuki 28.899 hitz ezberdin, bakoitza kin bere maiztasuna, artio osatú guztira 260.430 hitz, halan-ze batezbesteko maiztasuna dá 9.011731, nahiz hitz guztiak ez dute ber maiztasuna. Hortxe sartzen da Zipf-en erlazioa, zeinen arabera, esan dugunez, maiztasunak gordetzen dute erlazio estu bat kin euren ordena

Erlazio hori ilustratzeko, beherago daukagu grafiko bat ganik Zipf bera (an bere "Human behavior an the principle of least effort", 1949), non A marra dagokio ki Joyce-ren lan aipatua, B marra dagokio ki beste lagin bat, oraingoan aterea ti egunkarietako textuak, eta C marra dá zuzen teorikoá (horregatik zuzen-zuzena) zein aterako litzake baldin lagin batean hitz erabilienak izanen balitú 10.000 erabilera eta n-garren hitz erabilienak ondoko fn erabilera-kopurua:

fn = (10.000/n)

Adibidez, lagin teoriko horretan, 3. hitz erabiliena agertuko litzaké justuki 10.000/3 aldiz.

[OHARRA: esan behar da ze grafikoan ordenatu-ardatzeko 10.000 kantitate hori ez da agertzen bere lekuan, baizik gorago, goragoko izkinean, non kantitatea dá ondo handiagoa zein 10.000, zeren eskalan konsideratzen ari dira logaritmo dezimalak: gorriz jarrita dago leku zehatza]

Grafikoan, Joyce-ren nobelaren marra (A) dá agertzen gorago zein egunkarietako laginaren marra (B), zeren Joyceren lanean hitz erabilienak dú maiztasun handiagoa (guztira Joyce-ren lanean erabiltzen dirá sei bat aldiz hitz gehiago: 260.430 aurka 43.989). Baina gauza da ze, bi kasuetan, malda dá gutxi gorabehera hóri bera zein espero genuen jarraiki Zipf-en erlazioa, alegia, -1. [1299] [>>>]

Etiketak: ,