Difference between revisions of "Vydavatelství slovníků"
(Vytvoření stránky) |
(menší opravy a doplňky) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
=Definice problému= | =Definice problému= | ||
− | Bude simulována firma, která se zabývá tvorbou a prodejem překladových slovníků, kde na 1 straně je čeština. Postupně buduje svoje portfolio produktů na základě toho, jak rychle zpracovává slovníková hesla pro vydání potřebné velikosti slovníku, a na základě poptávky ovlivněné geopolitickými událostmi vydává nová vydání. Jejím cílem je mít konsistentní zpracování všech předem vytyčených jazyků s pomocí počítačových technologií, a zacelit tak všechny díry na trhu českých překladových slovníků, jejichž zpracování nebylo v minulých režimech možné z politických či technických důvodů. Noví zaměstnanci (zvyšující rychlost zpracování hesel) jsou z důvodu stability týmového prostředí nabíráni jen v případě zvýšené poptávky. Simulace je inspirována příhodným vydáním ukrajinského slovníčku od firmy Lingea z pekuliárního roku 2022, a ukrajinské konverzace z roku 2023. | + | Bude simulována firma, která se zabývá tvorbou a prodejem překladových slovníků, kde na 1 straně je čeština. Postupně buduje svoje portfolio produktů na základě toho, jak rychle zpracovává slovníková hesla pro vydání potřebné velikosti slovníku, a na základě poptávky ovlivněné geopolitickými událostmi vydává nová vydání. Jejím cílem je mít konsistentní zpracování všech předem vytyčených jazyků s pomocí počítačových technologií, a zacelit tak všechny díry na trhu českých překladových slovníků, jejichž zpracování nebylo v minulých režimech možné z politických či technických důvodů. Noví zaměstnanci (zvyšující rychlost zpracování hesel) jsou z důvodu stability týmového prostředí nabíráni jen v případě zvýšené poptávky (prozatím náhodně). Simulace je inspirována příhodným vydáním ukrajinského slovníčku od firmy Lingea z pekuliárního roku 2022, a ukrajinské konverzace z roku 2023. |
== Cíl simulace == | == Cíl simulace == | ||
Line 33: | Line 33: | ||
=Model= | =Model= | ||
− | V LibreOffice byla simulace rozdělená do | + | V LibreOffice byla simulace rozdělená do 4 různých listů: |
− | |||
* Počáteční - konfigurace simulace | * Počáteční - konfigurace simulace | ||
* Slovníky - data druhů slovníků | * Slovníky - data druhů slovníků | ||
* Jazyky - konfigurace proměnných na každý jazyk | * Jazyky - konfigurace proměnných na každý jazyk | ||
− | * Simulace - samotná simulace | + | * Simulace - samotná simulace |
− | |||
==Počáteční proměnné== | ==Počáteční proměnné== | ||
+ | |||
+ | * Peníze = 1000000 Kč | ||
+ | * sílaZamE = 1000 hesel/měsíc (normální) | ||
+ | * sílaZamSigma = 500 hesel (variace přínosu pro kolektiv) | ||
+ | * výchylnostZam = 100 hesel (momentální variace zpracovaných slov) | ||
+ | * mzda = 20000 Kč (k roku 2000) | ||
+ | * početJazyků = 20 | ||
+ | * početNonPaxAm = 13 | ||
+ | * pstVálka = 0,1 (každý měsíc) | ||
+ | * poptFaktAgresor = 5 | ||
+ | * poptFaktNapaden = 10 | ||
+ | * velikostTrhu = 20000000 lidí | ||
+ | * inflaceCíl = 1,02 (lognormální) | ||
+ | * inflaceSigma = 0,2 | ||
+ | * globPoptFakt = 0,001 | ||
+ | * poptSigma = 1000 lidí | ||
+ | * cenaDB = 0,1 Kč/heslo | ||
+ | * nákladyA4 = 0,1 Kč/list | ||
+ | |||
==Slovníky== | ==Slovníky== | ||
− | Nejsou uvažováni průvodci a gramatiky. | + | Simulovaná firma chce vydávat 12 (dodekahedron) druhů slovníků. Nejsou uvažováni průvodci a gramatiky. |
* konverzace - 6k, obsahuje krátký slovníček a relativně fixní seznam frází. | * konverzace - 6k, obsahuje krátký slovníček a relativně fixní seznam frází. | ||
Line 61: | Line 78: | ||
* mluvník - 2k, potřeba 100k | * mluvník - 2k, potřeba 100k | ||
* tematický - 20k, potřeba 100k | * tematický - 20k, potřeba 100k | ||
− | * slang - 5k, potřeba 100k, jedná se o | + | * slang - 5k, potřeba 100k, jedná se o podmnožinu |
+ | |||
==Jazyky== | ==Jazyky== | ||
Line 91: | Line 109: | ||
==Proměnné na každý jazyk== | ==Proměnné na každý jazyk== | ||
+ | * Poptávka | ||
+ | * Počet zaměstnanců | ||
+ | * Síla kolektivu (hesel za měsíc) | ||
+ | * Počty každého z 12 druhů slovníku | ||
+ | |||
+ | |||
+ | ==Proměnné zvlášť== | ||
+ | |||
+ | * Rok | ||
+ | * Měsíc | ||
+ | * Peníze | ||
+ | * Mzda | ||
+ | * jeVálka | ||
+ | * agresorIdx - vygenerované | ||
+ | * agresor - dereferencované jméno | ||
+ | * napadenýIdx - vygenerované | ||
+ | * napadený - dereferencované jméno | ||
=Výsledky= | =Výsledky= | ||
− | + | Na začátku je patrná potřeba zadlužení na prvotní várky konverzací, potom má ale firma více než dostatek peněz na případné reinvestice, a dokonce přibývají. | |
+ | |||
+ | Nebýt nemilosrdného vyhození všech zaměstnanců kromě jednoho po dosažení milionu slov v daném jazce (někdy zbyde ten, který zvládne slova přidávat), projekt by přestal být komerčně rentabilní, neboť po uspokojení většiny poptávky, kterážto je v této simulaci omezená, se nevyplatí dále provozovat celou firmu. I u jazyků, kde se začíná s nejmenším počtem zaměstnanců, se tak stane do 15 let. To je méně než 1 generace, narozdíl od doby, kterou trvalo ručně dokončit vícesvazkové slovníky v minulém století. | ||
=Závěr= | =Závěr= | ||
+ | |||
+ | Vzhledem k příliš striktní deadline nemohla být simulace zcela implementována pro všechny velikosti slovníků s ohledem na proměňující se bias poptávky. Deterministické rozřazování, kolik čeho vytisknout, by trvalo implementovat další měsíc. V souvislosti s celkovým počtem polí (cca 600 řádků a 300 sloupců) se rovněž vyskytly obavy o načítání símulace na strojích, které nedosahují výkonových kvalit autorova počítače. | ||
=Odkazy= | =Odkazy= | ||
− | * Portfolio Lingea | + | * [https://www.lingea.cz/shop/jazyky Portfolio Lingea] |
− | * | + | * [https://or.justice.cz/ias/ui/vypis-sl-firma?subjektId=576418 Sbírka listin Lingea s.r.o.] |
− | * | + | * [https://www.ethnologue.com/insights/ethnologue200/ Ethnologue - What are the top 200 most spoken languages?] ([https://en.wikipedia.org/wiki/List_of_languages_by_total_number_of_speakers Neplacená top 45 na Wiki]) |
− | * | + | * [https://en.wikipedia.org/wiki/List_of_dictionaries_by_number_of_words Seznam slovníků podle počtu slov] |
− | + | * [https://www.lexiko.ujc.cas.cz/index.php?page=3 LEXIKO - O slovnících] | |
− | * | ||
=Kód= | =Kód= | ||
− | Simulace postupuje na základě následovnických funkcí, které jsou | + | [[File:Vydavatelstvi_slovniku.ods]] |
+ | [https://drive.google.com/file/d/18gmu79o6x-3pepLn4-9_0it_mnMhTf87/view?usp=drive_link Soubor simulace na Google Disku] | ||
+ | |||
+ | Simulace postupuje na základě následovnických funkcí, které jsou uvedeny v tabulce níže. Pro účely tohoto článku byly poněkud kryptické identifikátory polí nahrazeny symbolickými jmény s indexujícími subskripty. | ||
Line 121: | Line 162: | ||
! Proměnná !! Kód funkce !! Komentář | ! Proměnná !! Kód funkce !! Komentář | ||
|- | |- | ||
− | | Rok || | + | | Rok || rok[i-1]+IF(měsíc[i]=1;1;0) || Rok se zvedá každých 12 měsíců |
|- | |- | ||
− | | Měsíc || | + | | Měsíc || MOD(měsíc[i-1];12)+1 || Měsíce jsou číslované od 1 |
|- | |- | ||
− | | Peníze || | + | | Peníze || peníze[i-1]-SUM(Zaměstnanci[i])*mzda[i-1]-MIN(0;(konverzací[i]-konverzací[i-1]))*(konst[konverzace]+var[konverzace]*potřebaHesel[konverzace])+MIN(0;(konverzací[i-1]-konverzací[i]))*cena[konverzace] || atd. pro všechny druhy |
|- | |- | ||
− | | jeVálka || | + | | jeVálka || IF(RANDBETWEEN(0;1/pstVálka)=0;1;0) || Tradiční hod 1/pstVálka-strannou kostkou |
|- | |- | ||
− | | agresorIdx || | + | | agresorIdx || IF(jeVálka=1;RANDBETWEEN(0;početJazyků);"-") || Další hod početJazyků-strannou kostkou |
|- | |- | ||
− | | agresor || | + | | agresor || IF(agresorIdx="-";"-";IF(agresorIdx=0;"jiný";VLOOKUP(agresorIdx;Jazyky;3;FALSE()))) || Dereference pro kontrolu |
|- | |- | ||
− | | napadenýIdx || | + | | napadenýIdx || IF(jeVálka=1;RANDBETWEEN(0;početNonPaxAm);"-") || Státy NATO nikdy nejsou napadeny |
|- | |- | ||
− | | napadený || | + | | napadený || IF(napadenýIdx="-";"-";IF(napadenýIdx=0;"jiný";VLOOKUP(napadenýIdx;Jazyky.nonPaxAmIdx;2;FALSE()))) || Dereference pro kontrolu |
|- | |- | ||
− | | Slov || | + | | Slov || Slov[k][i-1]+KolektivSíla[k][i-1]+ROUND(NORM.INV(RAND();0;Zaměstnanci[k][i]*výchylnostZam)) || x20 pro každý jazyk k |
|- | |- | ||
− | | Zaměstnanci || | + | | Zaměstnanci || IF(měsíc[i]=1;IF(slov[k][i-1]<Slovníky[potřebaHesel][mega];Zaměstnanci[k][i-1]+RANDBETWEEN(0;1);sílaZamE);Zaměstnanci[k][i-1]) || x20 pro každý jazyk k |
|- | |- | ||
− | | KolektivSíla || | + | | KolektivSíla || =MAX(0;kolektivSíla[k][i-1]+(Zaměstnanci[k][i]-Zaměstnanci[k][i-1])*ROUND(NORM.INV(RAND();sílaZamE;sílaZamSigma);0)) || x20 pro každý jazyk k |
|- | |- | ||
− | | Poptávka || | + | | Poptávka || =MAX(0;Poptávka[k][i-1]+ROUND(NORM.INV(RAND();(IF(agresorIdx[i]=k;poptFaktAgresor;1)*IF(napadenýIdx[i]=k;poptFaktNapaden;1))*(poptSigma+globPoptFakt*VLOOKUP(k;Jazyky;5;FALSE()));poptSigma);0)-Konverzací[k][i-1]) || x20 pro každý jazyk k, atd. pro všechny druhy |
|- | |- | ||
− | | Konverzací ... Slangů || | + | | Konverzací ... Slangů || =IF(Slov[k][i-1]>Slovníky[potřebaHesel][konverzace];MAX(Poptávka[k][i-1];CM4);Konverzací[k][i-1])-MIN(Poptávka[k][i-1];Konverzací[k][i-1]) || x20 pro každý jazyk k, atd. pro každý druh slovníku |
|} | |} |
Latest revision as of 17:46, 12 June 2023
"Něco lingvistického."
Contents
Definice problému
Bude simulována firma, která se zabývá tvorbou a prodejem překladových slovníků, kde na 1 straně je čeština. Postupně buduje svoje portfolio produktů na základě toho, jak rychle zpracovává slovníková hesla pro vydání potřebné velikosti slovníku, a na základě poptávky ovlivněné geopolitickými událostmi vydává nová vydání. Jejím cílem je mít konsistentní zpracování všech předem vytyčených jazyků s pomocí počítačových technologií, a zacelit tak všechny díry na trhu českých překladových slovníků, jejichž zpracování nebylo v minulých režimech možné z politických či technických důvodů. Noví zaměstnanci (zvyšující rychlost zpracování hesel) jsou z důvodu stability týmového prostředí nabíráni jen v případě zvýšené poptávky (prozatím náhodně). Simulace je inspirována příhodným vydáním ukrajinského slovníčku od firmy Lingea z pekuliárního roku 2022, a ukrajinské konverzace z roku 2023.
Cíl simulace
Hlavním cílem je prověřit dlouhodobou (20+ let) rentabilitu a ziskovost v obnoveném volnotržním prostředí, obzvláště v pozdních fázích, kdy slovníky většiny jazyků budou zpracovány do velké velikosti (100000+ hesel), ačkoliv poptávka po nich bude lehce klesat.
Zdroje dat
Data budou získána či spíše odvozena z výročních zpráv Lingea s.r.o. v Obchodním rejstříku, nebot používají zkrácený rozsah a nemají povinnost ověření auditorem. Důležitým zdrojem je také produktové portfolio této firmy, které určí jednotlivé druhy slovníků. Doplněny jsou také formáty největších českých slovníků, kterou používají jako základ pro část s češtinou napřed.
Ohledně dějepisných událostí se simulace se inspiruje v celkové pravděpodobnosti válek, ale nebude natvrdo zakódováno, že USA má v roce 2003 napadnout Irák, Rusko má v roce 2008 napadnout Gruzii, nebo že se má v roce 2011 stát arabské jaro. Bude ale ctěno, že státy NATO nikdy nejsou napadány.
Rychlost zpracování slovníkových hesel je odvozena z průměrné rychlosti psaní. Zaměstnanci jsou považovaní za experty na svůj jazyk, tudíž nejsou ve zpracování hesel omezení potřebou o nich dlouze přemýšlet.
Metoda
Formulování a zpracování tématu je inspirováno soutěžními zadáními z FMWC. V základu simulované části reality je použito Monte Carlo, na rozhodovací úrovni jsou použity prvky Dračího doupěte. Prozatímní název pro tuto kombinaci je Šmakova hora. Narozdíl od Monte Carla není a priori cílem konvergence výsledků.
Počet kol je 50 po 1 roce, počínaje rokem 2001. V každém kole je 12 tahů odpovídajícím 1 měsíci.
Použitý program je LibreOffice Calc, neboť umožňuje defici vlastních funkcí imperativně přímo v LibreOffice Basic, namísto méně pohodlného funkcionálního psaní lambd ve správci jmen v M$ Excel 365, přičemž v nejnovější stabilní verzi 2021 lambdy nejsou podporovány.
Samotná simulace je postavena na sledování a aktualizaci stavových proměnných pomocí následovnické funkce s podmíněným rozhodnutím, zda se jedná o konec roku.
Model
V LibreOffice byla simulace rozdělená do 4 různých listů:
- Počáteční - konfigurace simulace
- Slovníky - data druhů slovníků
- Jazyky - konfigurace proměnných na každý jazyk
- Simulace - samotná simulace
Počáteční proměnné
- Peníze = 1000000 Kč
- sílaZamE = 1000 hesel/měsíc (normální)
- sílaZamSigma = 500 hesel (variace přínosu pro kolektiv)
- výchylnostZam = 100 hesel (momentální variace zpracovaných slov)
- mzda = 20000 Kč (k roku 2000)
- početJazyků = 20
- početNonPaxAm = 13
- pstVálka = 0,1 (každý měsíc)
- poptFaktAgresor = 5
- poptFaktNapaden = 10
- velikostTrhu = 20000000 lidí
- inflaceCíl = 1,02 (lognormální)
- inflaceSigma = 0,2
- globPoptFakt = 0,001
- poptSigma = 1000 lidí
- cenaDB = 0,1 Kč/heslo
- nákladyA4 = 0,1 Kč/list
Slovníky
Simulovaná firma chce vydávat 12 (dodekahedron) druhů slovníků. Nejsou uvažováni průvodci a gramatiky.
- konverzace - 6k, obsahuje krátký slovníček a relativně fixní seznam frází.
- slovníček - 30k
- kapesní - 35k, obsahuje stručnou konverzaci
- šikovný - 40k, obsahuje konverzaci
- praktický - 50k
- úzký velký - 60k, pozorováno u čínštiny a japonštiny
- tlustý velký - 120k, pozorováno u angličtiny a němčiny
- vícesvazkový - 250k, podle PSJČ a SSJČ
- mega - 1M,
- mluvník - 2k, potřeba 100k
- tematický - 20k, potřeba 100k
- slang - 5k, potřeba 100k, jedná se o podmnožinu
Jazyky
Bylo vybráno 20 (ikosahedron) jazyků s nejvyšším počtem mluvčích podle Ethnologue. Portfolio Lingey zahrnuje místo některých jihoasijských jazyků jazyky evropských států, nicméně pro řadu jihoasijských jazků velký slovník s češtinou na 2. straně nevyšel, tudíž se jedná o tržní příležitost.
- angličtina
- čínština
- hindština
- španělština
- francouzština
- arabština - v dosavadních slovnících řazeno zpravidla podle kořenu
- bengálština
- ruština
- portugalština
- urdu
- indonéština
- němčina
- japonština
- marathi
- telugu
- turečtina
- tamilština
- vietnamština
- filipínština (tagalog)
- korejština
Proměnné na každý jazyk
- Poptávka
- Počet zaměstnanců
- Síla kolektivu (hesel za měsíc)
- Počty každého z 12 druhů slovníku
Proměnné zvlášť
- Rok
- Měsíc
- Peníze
- Mzda
- jeVálka
- agresorIdx - vygenerované
- agresor - dereferencované jméno
- napadenýIdx - vygenerované
- napadený - dereferencované jméno
Výsledky
Na začátku je patrná potřeba zadlužení na prvotní várky konverzací, potom má ale firma více než dostatek peněz na případné reinvestice, a dokonce přibývají.
Nebýt nemilosrdného vyhození všech zaměstnanců kromě jednoho po dosažení milionu slov v daném jazce (někdy zbyde ten, který zvládne slova přidávat), projekt by přestal být komerčně rentabilní, neboť po uspokojení většiny poptávky, kterážto je v této simulaci omezená, se nevyplatí dále provozovat celou firmu. I u jazyků, kde se začíná s nejmenším počtem zaměstnanců, se tak stane do 15 let. To je méně než 1 generace, narozdíl od doby, kterou trvalo ručně dokončit vícesvazkové slovníky v minulém století.
Závěr
Vzhledem k příliš striktní deadline nemohla být simulace zcela implementována pro všechny velikosti slovníků s ohledem na proměňující se bias poptávky. Deterministické rozřazování, kolik čeho vytisknout, by trvalo implementovat další měsíc. V souvislosti s celkovým počtem polí (cca 600 řádků a 300 sloupců) se rovněž vyskytly obavy o načítání símulace na strojích, které nedosahují výkonových kvalit autorova počítače.
Odkazy
- Portfolio Lingea
- Sbírka listin Lingea s.r.o.
- Ethnologue - What are the top 200 most spoken languages? (Neplacená top 45 na Wiki)
- Seznam slovníků podle počtu slov
- LEXIKO - O slovnících
Kód
File:Vydavatelstvi slovniku.ods Soubor simulace na Google Disku
Simulace postupuje na základě následovnických funkcí, které jsou uvedeny v tabulce níže. Pro účely tohoto článku byly poněkud kryptické identifikátory polí nahrazeny symbolickými jmény s indexujícími subskripty.
Proměnná | Kód funkce | Komentář |
---|---|---|
Rok | rok[i-1]+IF(měsíc[i]=1;1;0) | Rok se zvedá každých 12 měsíců |
Měsíc | MOD(měsíc[i-1];12)+1 | Měsíce jsou číslované od 1 |
Peníze | peníze[i-1]-SUM(Zaměstnanci[i])*mzda[i-1]-MIN(0;(konverzací[i]-konverzací[i-1]))*(konst[konverzace]+var[konverzace]*potřebaHesel[konverzace])+MIN(0;(konverzací[i-1]-konverzací[i]))*cena[konverzace] | atd. pro všechny druhy |
jeVálka | IF(RANDBETWEEN(0;1/pstVálka)=0;1;0) | Tradiční hod 1/pstVálka-strannou kostkou |
agresorIdx | IF(jeVálka=1;RANDBETWEEN(0;početJazyků);"-") | Další hod početJazyků-strannou kostkou |
agresor | IF(agresorIdx="-";"-";IF(agresorIdx=0;"jiný";VLOOKUP(agresorIdx;Jazyky;3;FALSE()))) | Dereference pro kontrolu |
napadenýIdx | IF(jeVálka=1;RANDBETWEEN(0;početNonPaxAm);"-") | Státy NATO nikdy nejsou napadeny |
napadený | IF(napadenýIdx="-";"-";IF(napadenýIdx=0;"jiný";VLOOKUP(napadenýIdx;Jazyky.nonPaxAmIdx;2;FALSE()))) | Dereference pro kontrolu |
Slov | Slov[k][i-1]+KolektivSíla[k][i-1]+ROUND(NORM.INV(RAND();0;Zaměstnanci[k][i]*výchylnostZam)) | x20 pro každý jazyk k |
Zaměstnanci | IF(měsíc[i]=1;IF(slov[k][i-1]<Slovníky[potřebaHesel][mega];Zaměstnanci[k][i-1]+RANDBETWEEN(0;1);sílaZamE);Zaměstnanci[k][i-1]) | x20 pro každý jazyk k |
KolektivSíla | =MAX(0;kolektivSíla[k][i-1]+(Zaměstnanci[k][i]-Zaměstnanci[k][i-1])*ROUND(NORM.INV(RAND();sílaZamE;sílaZamSigma);0)) | x20 pro každý jazyk k |
Poptávka | =MAX(0;Poptávka[k][i-1]+ROUND(NORM.INV(RAND();(IF(agresorIdx[i]=k;poptFaktAgresor;1)*IF(napadenýIdx[i]=k;poptFaktNapaden;1))*(poptSigma+globPoptFakt*VLOOKUP(k;Jazyky;5;FALSE()));poptSigma);0)-Konverzací[k][i-1]) | x20 pro každý jazyk k, atd. pro všechny druhy |
Konverzací ... Slangů | =IF(Slov[k][i-1]>Slovníky[potřebaHesel][konverzace];MAX(Poptávka[k][i-1];CM4);Konverzací[k][i-1])-MIN(Poptávka[k][i-1];Konverzací[k][i-1]) | x20 pro každý jazyk k, atd. pro každý druh slovníku |