====== Heapsův zákon ====== Heapsův zákon popisuje, jak závisí přírůstek [[pojmy:typ|typů]] na přírůstku [[pojmy:token|tokenů]] (tzv. token-type ratio, TTR). V podstatě tedy řeší úlohu tohoto typu: jak velký musíme mít korpus, pokud chceme, aby obsahoval nejméně určitý počet různých jednotek. Obecný vzorec Heapsova zákona je: $V(N) = a \times N^{b}$ kde //N// je počet tokenů a //V(N)// je velikost slovníku, tj. počet typů na daný počet tokenů. Koeficienty //a// a //b// jsou pro každý jazyk specifické. Koeficient //b// by se měl nacházet zhruba v rozsahu 0,4 < b < 0,6; koeficient //a// by měl být v rozsahu 10 < a < 100 (pro češtinu jsou tyto původní odhady zjevně příliš úzké). ===== Koeficienty pro češtinu ===== [{{:pojmy:heaps_words.png?200 |Heapsův zákon: šedivě jsou vykreslena naměřená data, červeně matematický model.}}] Pro češtinu platí zhruba tyto koeficienty: Pro typy tvořené pomocí [[pojmy:lemma|lemmat]] platí, že $a = 11.8287$ a $b = 0,5955$. Pro typy tvořené [[pojmy:word|slovními tvary]] má rovnice koeficienty $a = 118.0895$ a $b = 0.5113$. Oba modely přitom vykazují velmi malou odchylku od reality (viz detail grafu). V praxi to znamená, že korpus, který má 120 mil. tokenů (což je případ [[cnk:syn2000|SYN2000]], [[cnk:syn2005|SYN2005]] i [[cnk:syn2010|SYN2010]] po započtení interpunkce jako samostatné pozice), by měl mít 766 tisíc různých lemmat a 1,596 mil. různých slovních tvarů (SYN2010 má 786 tisíc lemmat a 1,706 mil. tvarů - rozdíl oproti modelu je méně než 2 % a 7 %). Na druhou stranu, slovník, který by měl obsahovat 50 tisíc lemmat (což ovšem nelze ztotožňovat s 50 tisíci hesly), by se měl zakládat minimálně na korpusu o velikosti 1,227 mil. tokenů (za nesplnitelného předpokladu, že pro popis je vhodné každé lemma, třeba i vlastní jméno nebo číslo, a postačující je i jen jeden jediný výskyt lemmatu, tedy [[pojmy:hapax|hapax]]; pokud bychom odhadovali počet lemmat použitelných pro slovníkový popis v každém korpusu střízlivě na 20 %, pak by bylo pro 50tisícový slovník potřeba korpus s alespoň 250 tisíci typy, což odpovídá více než 18 milionům tokenů). ==== Postup měření ==== Aby bylo vůbec možné jakkoli porovnávat výsledky měření koeficientů Heapsova zákona, je třeba se přesně držet stejného postupu. V tomto případě jsme k uvedeným výsledkům dospěli následovně: * Korpus SYN (1,3 miliardy slov) byl rozdělen na jednotlivé opusy. * V náhodně vybrané skupině opusů (vždy o celkové velikosti 140 milionů tokenů) byl měřen počet typů. Výpis byl prováděn vždy po 10 000 tokenech. * Celkem bylo provedeno 100 měření na slovních tvarech a 100 měření na lemmatech. Výsledky byly zprůměrovány (aby byl eliminován vliv jednotlivých textů nebo žánrů), takže odhad je zpracován na průměrných hodnotách pro wordy a průměrných hodnotách pro lemmata. * Model byl vytvořen v [[http://www.r-project.org/|R]] na základě příkazu: ''fit = nls(TYPES ~ I(a*TOKENS^b), data=word, start=list(a=10,b=0.5), trace=T)'' ===== Token-hapax ratio ===== Obdobný vztah, jako je token-type ratio (TTR), který aproximuje Heapsův zákon, je možné pozorovat i u vztahu mezi přibývajícím počtem [[pojmy:hapax|hapaxů]] v závislosti na zvětšujícím se korpusu. Parametry jsou zde jiné, princip je ovšem stejný. Analogicky k předchozímu měření můžeme i zde dospět k následujícím koeficientům pro češtinu: Pro hapaxy tvořené lemmaty platí, že $a = 1.6935112$ (!) a $b = 0.6678874$. Pro hapaxy tvořené slovními tvary platí, že $a = 57.28$ a $b = 0.5086$. ==== Související odkazy ==== [[wp>Heaps'_law|Heapsův zákon na wikipedii]] • [[pojmy:hapax|Hapax]]