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.47395Horretarako, 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.532297zein dén atzoko ber funtzioa baina orain erábiliz "Entropy" funtzioa ("DescTools"). [1310] [>>>]
0 Comments:
Argitaratu iruzkina
<< Home