larunbata, uztaila 24, 2021

Zipf (1949): "... we shall present further rank-frequency distributions from samples of many other languages, ..."

Shannon-ek zioén hemen ze:

eta Zipf-ek an bere "Human Behavior And The Principle Of Least Effort" (1949:34): 

Esan nahi baita ze Zipf-en erlazioa artén hitzen frekuentziak eta euren ordinalitateak ez litzake soilik aplikagarria ki inglesa, baizik ze oinarrituko litzake an indar komunikatibo orokorrak zeinen eragina izanen litzaké orokorki esanguratsua. [1331] [>>>]

Etiketak: ,

osteguna, uztaila 22, 2021

Zénbat hitz ezberdin zeuden an azterketa e Dewey (1923)?

Atzo ikusten genuen nóla Shannon (1950) zén oinarritu an corpus linguistikoa ganik Dewey (1923) afinda kalkulatu a entropia on ingles inprimatua, eta baita nóla Dewey-k jada postulatu zuén lehenengo hurbilketa bat ki erlazioa on Zipf (1949). Gaur interesatzen zaigu ezagutzea zénbat hitz ezberdin zeuden an lagin linguistikoa on Dewey, xedé konprobatu noráino datozen bat Dewey-k eta Zipf-ek emandako neurriak. Dewey-k (1923:6) emanen digu datu interesgarri hori: 10161 hitz ezberdin.

Beraz, baldin Zipf-en legea beteko balitz perfektuki artén 10161 hitz ezberdin horiek, izanen genuke ze a erlazioa artén hitz-kopuru totala eta maiztasun altuena izan beharko litzaké:

S10161 = sum(1/(1:10161))

9.803577

non hitz ezberdin guztien maiztasun erlatibo teorikoak batuta, aterako zaigú unitatea (ikus sarrera hau):

sum(1/(9.803577*(1:10161))) = 1

nondik kalkula geinkén maiztasun erlatibo teorikoak korresponditzén ki edozein ordinalitate (esan nahi baita, korresponditén ki n-garren hitza an rankina on hitzak) baldin, diogunez, Zipf-en legea beteko balitz perfektuki. Adibidez, hitz erabilienari korrespondiko litzaioke 0.1020036 edo %10.2:

sum(1/(9.803577*(1:1)))

0.1020036

10. hitz erabilienari tokatuko litzaioké 0.2987653 edo %29.9

sum(1/(9.803577*(1:10)))

0.2987653

100. hitz erabilienari 0.5291311 edo %52.9

sum(1/(9.803577*(1:100)))

0.5291311

eta 1000.ari 0.7635449 edo %76.4:

sum(1/(9.803577*(1:1000)))

0.7635449

eta, 10000.ari 0.9983709 edo %99.9

sum(1/(9.803577*(1:10000)))

0.9983709

zein aski bat datoz kin Dewey-ren portzentajeak:

Esan geinke ze Dewey-ren proportzioak (%25, %50 eta %75) ez dira bereziki urrun ti proportzioak zein lortuko genituzkén baldin Zipf-en legea beteko balitz perfektuki (%29.0, %52.9 eta %76.4), baizik ondo alderantziz, interesgarriki hurbil. Dewey jada fijatua zen an proportzioak zein gero Zipf-ek sakonago aztertuko zituen. [1329] [>>>]

Etiketak: , ,

asteazkena, uztaila 21, 2021

Dewey-ren erlazioa artén hitz komunenak eta euren portzentajeak an ingles konektatua (1923)

Shannon-ek (an bere "Prediction an entropy of printed English", 1950) aipatzen ditú Dewey (1923) eta Zipf (1949) noiz kalkulatzen zénbat entropia duén ingles inprimatuak:

eta jada komentatua dugu Zipf-ek proposatutako erlazioa artén hitzen maizasuna eta euren ordinaltasuna an corpus linguistikoak, baina gaur komentatu nahi genuke nóla Dewey-k jada an 1923 proposatua zuén Zipf-en erlazio horren lehenengo hurbilketa interesgarri bat noiz propósatu ondorengo erlazioa artén hitz komunenak eta euren portzentajeak an ingles konektatua (1923:17):

Diogunez, hor daukagu lehenengo proposamen bat erlázionatuz corpus bateko hitzen maiztasunak eta euren ordinaltasunak, zein postulatzen den soilik an:

...any specimen of connected English sufficiently long to be fairly representativ... [Dewey, 1923]

Bai, Dewey-ren 1923ko erlazio hori postulatzen da an corpus zabalak on ingles konektatua. Zipf-ek (1949) erlazio hori gehiago zehaztu zuén eta bere aplikagarritasuna zabaldu zuen. [1328] [>>>]

Etiketak: ,

asteartea, uztaila 20, 2021

Baldin Zipf-en legea betetzen bada, Shannon-en 0.1 proportzio hori teorikoki izanen dá 1/Sn (ez da izanen independentea ti "n")

Shannon-ek zioén hemen ze:

Baina, 0.1 hori (= .1 an Shannon-en artikulua) dá a proportzioa artén maiztasun handiena an corpusa eta hitz-kopuru totala (0.1 hori dago ki Sn = 10), alegia: 

(1/Sn) = (1/10) = 0.1

eta Zipf-en erlazioa betetzen delarik, proportzio hori (0.1 hori edo, berdin ere, Sn = 10 hori) egonen da an funtzioa on zénbat hitz ezberdin erabili diren an corpus hori (hots, an funtzioa on "n"). Esan nahi baita ze proportzio hori (0.1) ez da independentea ti "n", baizik ze atera beharko litzake ti:

(1/Sn) = 1/(sum(1/(1:n)))

halan-ze, horrela eginez, hitz guztien probabilitate agregatua izanen dá beti 1 (ezin liteke izán infinitu):

sum((1/Sn)/(1:n)) = sum(1/(sum(1/(1:n)))/(1:n)) = 1

Zehazki, proportzio hori 0.1 izateko, hitz ezberdinen kopurua ("n") teorikoki izan beharko litzaké 12367:

S<-function(n){sum(1/(1:n))-10}

uniroot(S, c(1,100000)) 

$root
[1] 12367 

Horrela, ondoko aipuko batukari hori:

izanen da justuki 1 noiz batuketa dén egiten tikan 1 daino 12367 (horiek izanen liraké hitz guztiak, teorikoki):

(1/(sum(1/(1:12367)))) = 0.09999957 ≃ 0.1

Praktikan, kalkulatu beharko lirake hitz guztien probabilitate enpirikoak (zeinen batura derrigor izanen dén 1) eta hitz guztiak erabilí an konputoa on entropia, eta ez soilik lehenengo 8727 hitzak. Horrela, corpuseko hitz guztiak konsideratuz, entropia jaitsiko litzake ti 11.82 dara 9.716223:

TEnt(12367)

9.716223

Baldin soilik 8727 hitz ezberdin erabili balira (Zipf-en legea perfektuki beteta), entropia litzaké 9.414066:

TEnt(8727)

9.414066

zein den are urrutiago ti 11.82 bitak per hitza zein Shannon-ek kalkulatu zituen baztertuz hainbat hitz ti bere kalkulua. [1327] [>>>]

Etiketak: , , ,

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: ,