diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0e77146 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.aux +*.log diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000..9fd3cb4 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,5 @@ +*.aux +*.log +*.toc +*.lof +*.out diff --git a/docs/usu_sem2/1/1.tex b/docs/usu_sem2/1/1.tex new file mode 100644 index 0000000..2d4cf53 --- /dev/null +++ b/docs/usu_sem2/1/1.tex @@ -0,0 +1,26 @@ +\section{Document topic discovery} +Cieľom je identifikovať kapitoly v novinových článkoch bez použitia vopred definovaných tried. Analýzou štatistického rozdelenia medzi dokumentami systém zoskupuje podobné články do odlišných zhlukov, pričom každý zhluk reprezentuje tému(topic). + +\section{Matematická reprezentácia textu} +Proces objavovania začína transformáciou surového textu do vysokodimenzionálneho vektorového priestoru. Podľa metodológie tvorby príznakov je každý dokument reprezentovaný pomocou vkladania TF-IDF (Term Frequency–Inverse Document Frequency). + +Pre zaistenie štatistickej robustnosti je komponenta term frequency (TF) vypočítaná pomocou logaritmicky škálovaného vzorca. Tento prístup zabraňuje tomu, aby bežné slová s vysokými počtami neúmerne ovplyvňovali model, a namiesto toho sa zameriava na informačnú hodnotu výrazov. Inverse Document Frequency (IDF) ďalej spresňuje túto reprezentáciu penalizáciou výrazov, ktoré sa vyskytujú príliš často v celom korpuse, čím uprednostňuje slová špecifické a charakteristické pre jednotlivé témy. + +\section{Optimalizácia a redukcia šumu} +Dokumentové vektory v priestore surových slov často obsahujú významný šum a vysokú redundanciu. Na vyriešenie „prekliatia dimenzionality“ a zlepšenie stability zhlukovania pipeline zahŕňa metódu hlavných komponentov (PCA). + +Tento krok transformuje pôvodné príznaky na kompaktnú množinu hlavných komponentov, ktoré zachytávajú maximálny rozptyl v dátach. Projekciou dokumentov do tohto redukovaného priestoru systém zahadzuje menej informatívne dimenzie a sústredí sa na najvýznamnejšie tematické smery. Táto redukcia dimenzie je kľúčová pre odhalenie skrytých vzorov, ktoré by mohli byť v pôvodnej vysokodimenzionálnej reprezentácii zakryté. + +\section{Zhlukovací rámec} +Jadrom objavovania tém je K-Means algoritmus, iteračná zhlukovacia metóda navrhnutá na rozdelenie dát do odlišných skupín. Každá skupina je definovaná centroidom, ktorý predstavuje matematický stred témy. + +Podľa ustálených teoretických algoritmov proces začína náhodnou inicializáciou stredov zhlukov. Na zmiernenie rizika konvergencie do suboptimálnych lokálnych miním — častého problému v zhlukovaní — systém využíva stratégiu viacerých štartov. Vykonaním niekoľkých nezávislých behov s rôznymi inicializáciami a výberom výsledku s najnižšou vnútornou varianciou pipeline zabezpečuje stabilnejšie a presnejšie tematické zoskupovanie. + +\section{Stanovenie granularity tém} +Voľba vhodného počtu tém je riadená pomocou metódy „lakeť“ (Elbow Method), založenej na vnútrozhlukovom súčte štvorcov (WSS). So zvyšujúcim sa počtom zhlukov WSS prirodzene klesá. Systém však hľadá bod „lakťa“ — špecifický počet zhlukov, kde sa miera zlepšenia rozptylu výrazne spomalí. Tento bod predstavuje optimálny kompromis medzi jednoduchosťou modelu a jeho opisnou silou, čím sa zabezpečuje, že témy nie sú ani príliš široké, ani nadbytočne rozdelené. + +\section{Interpretácia objavených tém} +Záverečná fáza pipeline zahŕňa preklad matematických centroidov späť do ľudsky čitateľných tém. Keďže zhlukovanie prebieha v redukovanom dimenzionálnom priestore, aplikuje sa inverzná transformácia na mapovanie centroidov späť do pôvodného priestoru slov. Identifikáciou výrazov s najvyššou váhou v každom centre systém identifikuje kľúčové slová charakterizujúce každú tému. To umožňuje kvalitatívne zhodnotenie objavených tém, čím sa efektívne premieňajú matematické súradnice na zrozumiteľné sumáre obsahu dátovej sady. + +\section{Teoretické základy} +Pipeline je striktne prispôsobená teoretickým rámcom strojového učenia. Logika vektorizácie a škálovania je odvodená z Kapitoly 8, konkrétne sa zameriava na mapovanie príznakov a váženie TF-IDF. Redukcia dimenzie a inverzná transformácia nasledujú metodológie PCA z Kapitoly 8.3. Logika zhlukovania, vrátane iteračného priraďovania, výpočtu WSS a diagnostického použitia metódy „lakeť“, je založená na princípoch učenia bez učiteľa uvedených v Kapitole 13. \ No newline at end of file diff --git a/docs/usu_sem2/1/2.tex b/docs/usu_sem2/1/2.tex new file mode 100644 index 0000000..744f4e6 --- /dev/null +++ b/docs/usu_sem2/1/2.tex @@ -0,0 +1,26 @@ +\section{Cieľ projektu} +Primárnym cieľom tohto projektu je identifikovať skryté tematické štruktúry v kolekcii novinových dokumentov bez použitia vopred definovaných tried. Analýzou štatistického rozdelenia výrazov a sémantických vzťahov medzi dokumentami systém zoskupuje podobné články do odlišných zhlukov, pričom každý zhluk predstavuje jedinečnú tému. + +\section{Matematická reprezentácia textu} +Proces objavovania začína transformáciou surového textu do vysokorozmerného vektorového priestoru. Podľa metodológie inžinierstva príznakov (kapitola 8) je každý dokument reprezentovaný pomocou vkladania TF-IDF (Term Frequency–Inverse Document Frequency). + +Aby sa zabránilo neúmernému vplyvu bežných slov s vysokými počtami, frekvencia slov (TF) sa počíta pomocou logaritmickej škály: $\text{TF}(w,d) = \log(1 + f(w,d))$, kde $f(w,d)$ je počet výskytov slova $w$ v dokumente $d$. Inverzná frekvencia dokumentov (IDF) penalizuje slová, ktoré sa vyskytujú príliš často v celom korpuse: $\text{IDF}(w,D) = \log\left(\frac{N}{f(w,D) + 1}\right)$, kde $N$ je počet dokumentov a $f(w,D)$ je počet dokumentov obsahujúcich slovo $w$. Výsledné TF-IDF vkladanie je dané súčinom $\text{TF-IDF}(w,d,D) = \text{TF}(w,d) \cdot \text{IDF}(w,D)$. + +\section{Optimalizácia a redukcia šumu} +Dokumentové vektory v priestore slov obsahujú značný šum a redundanciu. Na vyriešenie prekliatia dimenzionality a zlepšenie stability zhlukovania sa používa metóda hlavných komponentov (PCA) podľa kapitoly 8.3. + +Tento krok transformuje pôvodné príznaky na množinu hlavných komponentov, ktoré zachytávajú maximálny rozptyl v dátach. Projekciou dokumentov do redukovaného priestoru sa odstránia menej informatívne dimenzie a systém sa sústredí na najvýznamnejšie tematické smery. Táto redukcia dimenzie je kľúčová pre odhalenie skrytých vzorov, ktoré môžu byť v pôvodnej vysokorozmernej reprezentácii zakryté. + +\section{Zhlukovací rámec} +Jadrom objavovania tém je K-means algoritmus (kapitola 13), iteračná metóda zhlukovania, ktorá rozdeľuje dáta do $k$ zhlukov. Každý zhluk je definovaný centroidom $\theta_m$, ktorý predstavuje jeho stred. Algoritmus minimalizuje funkciu nehodnovernosti $l_\Theta^k(x) = \min_{m=1,\dots,k} \|x - \theta_m\|_2^2$, kde $\Theta = [\theta_1, \dots, \theta_k]$ je matica centier. + +Proces začína náhodnou inicializáciou centier. Aby sa predišlo konvergencii do suboptimálnych lokálnych miním, používa sa stratégia viacnásobnej inicializácie: algoritmus sa spustí niekoľkokrát s rôznymi počiatočnými centrami a vyberie sa riešenie s najnižšou celkovou vnútrozhlukovou sumou štvorcov. + +\section{Stanovenie granularity tém} +Výber vhodného počtu zhlukov $k$ sa realizuje metódou lakťa, ktorá je založená na vnútrozhlukovej sume štvorcov (WSS). WSS sa definuje ako súčet funkcií nehodnovernosti pre všetky body: $\text{WSS} = \sum_{i=1}^n l_\Theta^k(x_i)$. So zvyšujúcim sa $k$ hodnota WSS klesá. Metóda lakťa hľadá bod, v ktorom sa zlepšenie (pokles WSS) výrazne spomalí; tento bod určuje optimálny kompromis medzi jednoduchosťou modelu a jeho presnosťou. + +\section{Interpretácia objavených tém} +Pre interpretáciu objavených tém sa centroidy zhlukov premapujú späť do pôvodného priestoru slov pomocou inverznej transformácie. V tomto priestore sa identifikujú výrazy s najvyššími váhami v každom centroide, ktoré charakterizujú danú tému. Tento postup umožňuje kvalitatívne zhodnotenie objavených tém a ich preklad do zrozumiteľných kľúčových slov. + +\section{Teoretické základy} +Navrhnutý pipeline dôsledne vychádza z teoretických rámcov uvedených v učebnici. Vektorizácia a škálovanie sú založené na kapitole 8, konkrétne na metodike mapovania príznakov a vážení TF-IDF. Redukcia dimenzie a inverzná transformácia sa riadia postupmi PCA opísanými v kapitole 8.3. Logika zhlukovania, vrátane iteračného priraďovania, výpočtu WSS a diagnostického použitia metódy lakťa, je odvodená z princípov učenia bez učiteľa v kapitole 13. \ No newline at end of file diff --git a/docs/usu_sem2/1/3.tex b/docs/usu_sem2/1/3.tex new file mode 100644 index 0000000..5b759cd --- /dev/null +++ b/docs/usu_sem2/1/3.tex @@ -0,0 +1,44 @@ +\section{Cieľ} +Primárnym cieľom je identifikovať tématické celky v kolekcii bez použitia vopred definovaných tried. Ide o úlohu učenia bez učiteľa. Analýzou štatistického rozdelenia výrazov a vzťahov medzi dokumentmi systém zoskupuje podobné články do odlišných zhlukov, pričom každý zhluk reprezentuje špecifickú tému. + +\section{Matematická reprezentácia textu} +Proces začína transformáciou textu do vektorového priestoru. Každý dokument je reprezentovaný pomocou vkladania TF-IDF (\textit{Term Frequency–Inverse Document Frequency}). + +Aby sa zabránilo neúmernému vplyvu bežných slov s vysokou početnosťou, počíta sa frekvencia slov (TF): +\begin{equation} + \text{TF}(w,d) = \log(1 + f(w,d)) +\end{equation}\label{eq:1} +kde $f(w,d)$ predstavuje relatívny počet výskytov slova $w$ v dokumente $d$. Inverzná frekvencia dokumentov (IDF) podľa vzťahu \ref{eq:1} vyjadruje mieru informácie, ktorú slovo poskytuje na základe jeho výskytu $D$: +\begin{equation} + \text{IDF}(w,D) = \log\left(\frac{N}{f(w,D) + 1}\right) +\end{equation} +kde $N$ je celkový počet dokumentov. Výsledné TF-IDF je definované ako súčin týchto dvoch hodnôt. + +\section{Optimalizácia a redukcia šumu} +Vektory obsahujú značný šum a redundanciu. Na vyriešenie problému „prekliatia dimenzionality“ a zlepšenie stability zhlukovania bola aplikovaná Metóda hlavných komponentov (PCA). + +Tento krok transformuje pôvodné príznaky na množinu hlavných komponentov, ktoré zachytávajú maximálny rozptyl v dátach. Ide o ortogonálnu lineárnu transformáciu do novej bázy, kde prvých $m$ komponentov aproximuje pôvodné dáta. Projekciou dokumentov do tohto redukovaného priestoru sa odstránia menej informatívne dimenzie. + +\section{Zhlukovanie} +K-means je iteračná metóda zhlukovania. Algoritmus rozdeľuje priestor príznakov do $k$ disjunktných regiónov, pričom minimalizuje funkciu nehodnovernosti: +\begin{equation} + L(\Theta) = \frac{1}{n} \sum_{i=1}^n \min_{m=1,\dots,k} \|x_i - \theta_m\|_2^2 +\end{equation} +kde $\theta_m$ predstavuje súradnice centra $m$-tého zhluku. Aby sa predišlo konvergencii do lokálnych miním, bola zvolená stratégia viacnásobnej inicializácie, kedy sa vyberá riešenie s najnižšou celkovou vnútrozhlukovou sumou štvorcov (WSS). + +\section{Stanovenie granularity tém} +Výber vhodného počtu tém $k$ sa realizuje pomocou „metódy lakťa“. Tento proces analyzuje WSS ako funkciu počtu zhlukov: +\begin{equation} + \text{WSS} = \sum_{i=1}^n l_\Theta^k(x_i) +\end{equation} +S narastajúcim $k$ hodnota WSS klesá. Optimálny počet tém sa nachádza v bode, kde dochádza k výraznému zlomu v regresii poklesu (lakeť), čo predstavuje ideálny kompromis medzi komplexnosťou modelu a mierou vysvetleného rozptylu dát. + +\section{Interpretácia objavených tém} +Finálna interpretácia objavených tém: +\begin{equation} + x_{ij} \approx \sum_{k=1}^m \phi_{jk} z_{ik} +\end{equation} +Pomocou tejto inverznej transformácie identifikujeme v každom centroide výrazy s najvyššími váhami. Tieto kľúčové slová definujú obsah jednotlivých zhlukov, čím umožňujú kvalitatívne zhodnotenie úspešnosti procesu objavovania tém. + +\section{Záver} +Redukcia dimenzie a následná interpretácia dát sa riadia postupmi PCA. Logika zhlukovania, identifikácia optimálnej granularity a diagnostika modelu sú odvodené z princípov učenia bez učiteľa. \ No newline at end of file diff --git a/docs/usu_sem2/1/4.tex b/docs/usu_sem2/1/4.tex new file mode 100644 index 0000000..59801a0 --- /dev/null +++ b/docs/usu_sem2/1/4.tex @@ -0,0 +1,76 @@ +\section{Cieľ} +Hlavným cieľom je zistiť, aké tematické oblasti sa prirodzene vyskytujú v kolekcii textov bez toho, aby boli vopred určené triedy alebo kategórie. Ide teda o úlohu učenia bez učiteľa. +Na základe štatistického rozdelenia výrazov a podobností medzi dokumentmi zoskupíme články do niekoľkých zhlukov, pričom každý z nich by mal zodpovedať určitej téme. + +\section{Matematická reprezentácia textu} +Na to, aby bolo možné texty matematicky spracovať, je potrebné ich previesť do vektorovej podoby. +Využitá bola reprezentácia TF-IDF (\textit{Term Frequency–Inverse Document Frequency}), ktorá priraďuje vyššiu váhu slovám, ktoré sú pre daný dokument typické, ale nie príliš časté. + +Frekvencia slov (TF) sa počíta pomocou logaritmickej mierky: +\begin{equation} + \text{TF}(w,d) = \log(1 + f(w,d)) \label{eq:tf} +\end{equation} +kde $f(w,d)$ označuje počet výskytov slova $w$ v dokumente $d$. +Inverzná frekvencia dokumentov (IDF) vyjadruje, ako informačne je slovo prínosné vzhľadom na svoj výskyt v súbore dokumentov $D$: +\begin{equation} + \text{IDF}(w,D) = \log\left(\frac{N}{f(w,D) + 1}\right) \label{eq:idf} +\end{equation} +kde $N$ predstavuje celkový počet dokumentov. +Finálna hodnota TF-IDF je daná súčinom týchto dvoch členov. + +\section{Optimalizácia a redukcia šumu} +Vektory TF-IDF obsahujú aj značný šum a redundantné informácie, čo môže negatívne ovplyvniť kvalitu zhlukovania. +Preto bola použitá metóda hlavných komponentov (PCA), aby sa znížili rozmery dát a zároveň zachovali čo najviac variabilitu. + +PCA premieta pôvodné dáta do priestoru hlavných komponentov, ktoré sú lineárne nezávislé a postupne zachytávajú najväčší rozptyl v dátach. +Projekciou na prvých niekoľko komponentov sa odstránia menej informatívne rozmery a tým sa model zjednoduší. + +\section{Zhlukovanie} +Na samotné zhlukovanie bol použitý algoritmus K-means. +Ide o iteratívny algoritmus, ktorý rozdeľuje priestor príznakov do $k$ skupín a minimalizuje nasledujúcu funkciu nezhody: +\begin{equation} + L(\Theta) = \frac{1}{n} \sum_{i=1}^n \min_{m=1,\dots,k} \|x_i - \theta_m\|_2^2 +\end{equation} +kde $\theta_m$ označuje vektor súradníc $m$-tého centra. +Aby algoritmus neskončil v lokálnom minime, bola zvolená viacnásobná inicializácia a výsledok s najnižšou vnútrozhlukovou sumou štvorcov WSS. + +\section{Stanovenie granularity tém} +Počet výsledných zhlukov $k$ nebol určený dopredu, ale bol odhadovaný pomocou metódy lakťa. +Sleduje sa pritom pokles hodnoty WSS v závislosti od počtu $k$: +\begin{equation} + \text{WSS} = \sum_{i=1}^n l_\Theta^k(x_i) +\end{equation} +Pri zvyšovaní $k$ hodnota WSS spravidla klesá. +Optimálna hodnota $k$ sa zvolí v mieste, kde sa krivka začne postupne vyrovnávať, teda v „lakti“. Tento bod predstavuje kompromis medzi presnosťou a zložitosťou modelu. + +\begin{figure}[h] + \centering + \includegraphics[width=0.8\textwidth]{wss_plot.eps} + \caption{Závislosť sumy štvorcov (WSS) od počtu zhlukov $k$. Lakeť indikuje optimálnu granularitu tém.} + \label{fig:elbow} +\end{figure} + +\section{Interpretácia objavených tém} +Po vykonaní zhlukovania boli centrá jednotlivých zhlukov interpretované ako reprezentanti tém. +Použitá bola inverzná transformácia: +\begin{equation} + x_{ij} \approx \sum_{k=1}^m \phi_{jk} z_{ik} +\end{equation} +Na základe hodnôt v centre sa vybrali tie výrazy, ktoré mali najvyššie váhy (koeficienty $\phi_{jk}$). +Tieto slová vystihujú obsah príslušného zhluku a umožňujú kvalitatívne posúdiť, aké témy boli v kolekcii textov objavené. + +\section{Záver} +Redukcia rozmerov pomocou PCA zlepšila stabilitu a čitateľnosť výsledkov. +Zhlukovanie metódou K-means v kombinácii s výpočtom WSS poskytlo praktický nástroj na určenie počtu tém. + +Pre finálny model s $k=8$ boli identifikované nasledujúce tematické oblasti (zoradené podľa dôležitosti slov v centre): +\begin{itemize} + \item Gastronómia: food, city, restaurants, new, york, restaurant, wine. + \item Biznis a správy: company, business, said, week, years, year. + \item Šéfkuchári a menu: restaurant, mr, chef, opens, news, bar, menu. + \item Literatúra a život: life, world, new, book, home, family, father. + \item Spoločnosť a ľudia: black, white, people, says, men, women, century. + \item Film a TV: movie, tv, times, film, series, story, based. + \item Dizajn a architektúra: house, designer, design, early, years, century. + \item Umenie a práca: work, artist, art, day, young, life. +\end{itemize} \ No newline at end of file diff --git a/docs/usu_sem2/compiled/4.tex b/docs/usu_sem2/compiled/4.tex new file mode 100644 index 0000000..bc6f805 --- /dev/null +++ b/docs/usu_sem2/compiled/4.tex @@ -0,0 +1,54 @@ +\relax +\providecommand\hyper@newdestlabel[2]{} +\@writefile{toc}{\contentsline {section}{\numberline {1}Cieľ}{1}{section.1}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2}Matematická reprezentácia textu}{1}{section.2}\protected@file@percent } +\newlabel{eq:tf}{{1}{1}{Matematická reprezentácia textu}{equation.1}{}} +\newlabel{eq:idf}{{2}{1}{Matematická reprezentácia textu}{equation.2}{}} +\@writefile{toc}{\contentsline {section}{\numberline {3}Optimalizácia a redukcia šumu}{1}{section.3}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4}Zhlukovanie}{1}{section.4}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {5}Stanovenie granularity tém}{2}{section.5}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Závislosť sumy štvorcov (WSS) od počtu zhlukov $k$. Lakeť indikuje optimálnu granularitu tém.}}{2}{figure.caption.3}\protected@file@percent } +\providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}} +\newlabel{fig:elbow}{{1}{2}{Závislosť sumy štvorcov (WSS) od počtu zhlukov $k$. Lakeť indikuje optimálnu granularitu tém}{figure.caption.3}{}} +\@writefile{toc}{\contentsline {section}{\numberline {6}Interpretácia objavených tém}{2}{section.6}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7}Záver}{3}{section.7}\protected@file@percent } +\@setckpt{1/4}{ +\setcounter{page}{4} +\setcounter{equation}{5} +\setcounter{enumi}{0} +\setcounter{enumii}{0} +\setcounter{enumiii}{0} +\setcounter{enumiv}{0} +\setcounter{footnote}{0} +\setcounter{mpfootnote}{0} +\setcounter{part}{0} +\setcounter{section}{7} +\setcounter{subsection}{0} +\setcounter{subsubsection}{0} +\setcounter{paragraph}{0} +\setcounter{subparagraph}{0} +\setcounter{figure}{1} +\setcounter{table}{0} +\setcounter{section@level}{1} +\setcounter{Item}{0} +\setcounter{Hfootnote}{0} +\setcounter{bookmark@seq@number}{7} +\setcounter{AM@survey}{0} +\setcounter{caption@flags}{2} +\setcounter{continuedfloat}{0} +\setcounter{KVtest}{0} +\setcounter{subfigure}{0} +\setcounter{subfigure@save}{0} +\setcounter{lofdepth}{1} +\setcounter{subtable}{0} +\setcounter{subtable@save}{0} +\setcounter{lotdepth}{1} +\setcounter{float@type}{64} +\setcounter{graph}{0} +\setcounter{pic}{0} +\setcounter{tabulka}{0} +\setcounter{lstnumber}{1} +\setcounter{parentequation}{0} +\setcounter{imagecounter}{0} +\setcounter{lstlisting}{0} +} diff --git a/docs/usu_sem2/compiled/main.pdf b/docs/usu_sem2/compiled/main.pdf new file mode 100644 index 0000000..e89f4e6 Binary files /dev/null and b/docs/usu_sem2/compiled/main.pdf differ diff --git a/docs/usu_sem2/main.tex b/docs/usu_sem2/main.tex new file mode 100644 index 0000000..323ce85 --- /dev/null +++ b/docs/usu_sem2/main.tex @@ -0,0 +1,176 @@ +\documentclass[12pt,a4paper]{article} +\usepackage[utf8]{inputenc} +\usepackage[slovak,shorthands=off]{babel} +\usepackage[T1]{fontenc} +\usepackage{indentfirst} +\usepackage[top=2.5cm, bottom=2cm, left=2cm, right=2cm]{geometry} +\setlength{\headheight}{13.0721pt} +\usepackage[unicode]{hyperref} +\usepackage[medium]{titlesec} +\usepackage{tikz} +\usetikzlibrary{positioning} + +%bakalarka +%\usepackage{fontspec} +%\setmainfont{Times} % Sets the font to Times New Roman +%\usepackage[a4paper, margin=3.5cm, top=2.5cm, bottom=2.5cm, right=2cm, left=3.5cm]{geometry} % Sets the page margins and size +\usepackage{setspace} % Provides \setstretch command for line spacing +\setstretch{1.2} % Sets the line spacing to 1.5 + +%\usepackage[margin=3.5cm, top=2.5cm, bottom=2.5cm, right=2.5cm, left=3.5cm]{geometry} % Sets the page margins and size + +%SECTION FONT SIZE +%SECTION FONT SIZE +%SECTION FONT SIZE +\usepackage{titlesec} + + + +\usepackage[rightcaption]{sidecap} +%ked napises \frac, dostanes zlomocek, ked napises \ddfrac +%tak mas formatovanie pre zlozeny zlomok +\newcommand\ddfrac[2]{\frac{\displaystyle #1}{\displaystyle #2}} +\usepackage{multirow} +\usepackage[table,xcdraw]{xcolor} +% \usepackage[demo]{graphicx} +\usepackage{siunitx} +\usepackage{setspace} +\usepackage{wrapfig} +\usepackage{enumerate} +\usepackage{enumitem} +\usepackage{calc} +\usepackage{pdfpages} +\usepackage{graphicx} +\usepackage{subfig} +\usepackage{chngcntr} +\usepackage{textcomp} +\usepackage{gensymb} +\usepackage{float} +\usepackage{caption} +\newfloat{graph}{htbp}{grp} +\floatname{graph}{Graf} +\newfloat{pic}{htbp}{pic} +\floatname{pic}{Obrázok} +\newfloat{tabulka}{htbp}{tbl} +\floatname{tabulka}{Tabulka} +\usepackage{caption} + +\DeclareCaptionFormat{lstlisting}{Príloha \thelstlisting: #3} +\captionsetup[lstlisting]{format=lstlisting} + +% \counterwithin{graph}{section} +% \counterwithin{figure}{section} +% \counterwithin{table}{section} +% \counterwithin{equation}{section} + +%\RequirePackage[backend=bibtex, style=trad-abbrv, citestyle=numeric, sorting=none, natbib=true, doi=false, backref=true, defernumbers=true]{biblatex} +\usepackage[ + backend=biber, + natbib=true, + style=numeric, + sorting=none +]{biblatex} +\usepackage{csquotes} +\bibliography{zdroje.bib} +% Set the language-specific strings +\DeclareFieldFormat{labeldate}{\mknumalph{#1}} % Remove parentheses around the year + +\DefineBibliographyStrings{slovak}{% + andothers = {et al.}, + and = {a}, + in = {} +} + +\usepackage{listings} +\usepackage{csquotes} +\usepackage{steinmetz} +\usepackage{amssymb} +\usepackage{amsmath} +\usepackage{matlab-prettifier} +\usepackage{bm} +\usepackage[italicdiff]{physics} +\usepackage{array} +\usepackage{tabu} +\usepackage{comment} +\usepackage{setspace} + +\usepackage{fancyhdr} +\usepackage{lmodern} +\pagestyle{fancy} + +\rhead{USU} + +%OBRAZKY +\usepackage{caption} +\usepackage{tocloft} +\newcounter{imagecounter} +\usepackage[table]{xcolor} +\usepackage{tabularx} +\usepackage{booktabs} + + + + +\usepackage{geometry} +\usepackage{enumitem} + +% Custom checklist +\newlist{checklist}{itemize}{1} +\setlist[checklist]{ + label=$\square$, + leftmargin=*, + nosep +} + +% Code listing setup +\usepackage{listings} +\lstset{ + basicstyle=\ttfamily\small, + breaklines=true, + frame=single, + framerule=0pt, + framesep=3pt, + xleftmargin=10pt +} + + +\begin{document} + +%vlozi PDFko s nazvom 1.pdf + +\include{titulka} +\pagenumbering{gobble} +\pagestyle{empty} + +%\includepdf[pages=-]{Priečinský.pdf}\label{pdf:1} + +%\newpage + +\tableofcontents + +\listoffigures + +%\newpage + +%\listoftables + +%vlozi list 1.tex + +\newpage +\pagenumbering{arabic} +\pagestyle{fancy} +\setcounter{page}{1} + + +\include{1/4} + + + +\end{document} + + +VELKOSTI NADPISOV +section = 16pt CAPITAL +subsection = 14pt normal +subsubsection = 12pt normal +subsubsubsection = 11pt normal \ No newline at end of file diff --git a/docs/usu_sem2/titulka.tex b/docs/usu_sem2/titulka.tex new file mode 100644 index 0000000..8b30ae4 --- /dev/null +++ b/docs/usu_sem2/titulka.tex @@ -0,0 +1,32 @@ +\thispagestyle{empty} +\begin{center} + +{\LARGE\textbf{Žilinská univerzita v Žiline}} + +\medskip +{\large \textbf{Fakulta riadenia a informatiky}} + +\medskip +{\large \textbf{Úvod do strojového učenia}} + +\vfill +{\bfseries \LARGE{Semestrálna práca č. 2}} + +\vspace{0.25cm} +{\large \textbf{Document topic discovery}} + +\vfill +\vfill + + +\noindent +\textbf{Školský rok:} 2025/26 +\hspace*{\fill} +\textbf{Skupina:} 5ZIF11 +\hspace*{\fill} +\textbf{Meno:} Filip Priečinský + +\end{center} + +\newpage +\setcounter{page}{1} \ No newline at end of file diff --git a/docs/usu_sem2/usu_semestralka2.zip b/docs/usu_sem2/usu_semestralka2.zip new file mode 100644 index 0000000..3870c59 Binary files /dev/null and b/docs/usu_sem2/usu_semestralka2.zip differ diff --git a/docs/usu_sem2/wss_plot-eps-converted-to.pdf b/docs/usu_sem2/wss_plot-eps-converted-to.pdf new file mode 100644 index 0000000..22aa147 Binary files /dev/null and b/docs/usu_sem2/wss_plot-eps-converted-to.pdf differ diff --git a/docs/usu_sem2/wss_plot.eps b/docs/usu_sem2/wss_plot.eps new file mode 100644 index 0000000..848e9fe --- /dev/null +++ b/docs/usu_sem2/wss_plot.eps @@ -0,0 +1,1452 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%LanguageLevel: 3 +%%Title: wss_plot.eps +%%Creator: Matplotlib v3.10.0, https://matplotlib.org/ +%%CreationDate: Mon Jan 5 22:33:59 2026 +%%Orientation: portrait +%%BoundingBox: 0 0 424 280 +%%HiResBoundingBox: 0.000000 0.000000 423.980827 279.028750 +%%EndComments +%%BeginProlog +/mpldict 9 dict def +mpldict begin +/_d { bind def } bind def +/m { moveto } _d +/l { lineto } _d +/r { rlineto } _d +/c { curveto } _d +/cl { closepath } _d +/ce { closepath eofill } _d +/sc { setcachedevice } _d +%!PS-Adobe-3.0 Resource-Font +%%Creator: Converted from TrueType to Type 3 by Matplotlib. +10 dict begin +/FontName /DejaVuSans def +/PaintType 0 def +/FontMatrix [0.00048828125 0 0 0.00048828125 0 0] def +/FontBBox [-2090 -948 3673 2524] def +/FontType 3 def +/Encoding [/space /parenleft /parenright /hyphen /zero /one /two /three /five /six /seven /eight /nine /P /S /W /Z /a /c /d /e /f /h /i /k /l /m /n /o /q /r /s /t /u /v /w] def +/CharStrings 37 dict dup begin +/.notdef 0 def +/space{651 0 0 0 0 0 sc +ce} _d +/parenleft{799 0 176 -270 635 1554 sc +635 1554 m +546 1401 479 1249 436 1099 c +393 949 371 797 371 643 c +371 489 393 336 436 185 c +480 34 546 -117 635 -270 c +475 -270 l +375 -113 300 41 250 192 c +201 343 176 494 176 643 c +176 792 201 941 250 1092 c +299 1243 374 1397 475 1554 c +635 1554 l + +ce} _d +/parenright{799 0 164 -270 623 1554 sc +164 1554 m +324 1554 l +424 1397 499 1243 548 1092 c +598 941 623 792 623 643 c +623 494 598 343 548 192 c +499 41 424 -113 324 -270 c +164 -270 l +253 -117 319 34 362 185 c +406 336 428 489 428 643 c +428 797 406 949 362 1099 c +319 1249 253 1401 164 1554 c + +ce} _d +/hyphen{739 0 100 479 639 643 sc +100 643 m +639 643 l +639 479 l +100 479 l +100 643 l + +ce} _d +/zero{1303 0 135 -29 1167 1520 sc +651 1360 m +547 1360 469 1309 416 1206 c +364 1104 338 950 338 745 c +338 540 364 387 416 284 c +469 182 547 131 651 131 c +756 131 834 182 886 284 c +939 387 965 540 965 745 c +965 950 939 1104 886 1206 c +834 1309 756 1360 651 1360 c + +651 1520 m +818 1520 946 1454 1034 1321 c +1123 1189 1167 997 1167 745 c +1167 494 1123 302 1034 169 c +946 37 818 -29 651 -29 c +484 -29 356 37 267 169 c +179 302 135 494 135 745 c +135 997 179 1189 267 1321 c +356 1454 484 1520 651 1520 c + +ce} _d +/one{1303 0 225 0 1114 1493 sc +254 170 m +584 170 l +584 1309 l +225 1237 l +225 1421 l +582 1493 l +784 1493 l +784 170 l +1114 170 l +1114 0 l +254 0 l +254 170 l + +ce} _d +/two{1303 0 150 0 1098 1520 sc +393 170 m +1098 170 l +1098 0 l +150 0 l +150 170 l +227 249 331 356 463 489 c +596 623 679 709 713 748 c +778 821 823 882 848 932 c +874 983 887 1032 887 1081 c +887 1160 859 1225 803 1275 c +748 1325 675 1350 586 1350 c +523 1350 456 1339 385 1317 c +315 1295 240 1262 160 1217 c +160 1421 l +241 1454 317 1478 388 1495 c +459 1512 523 1520 582 1520 c +737 1520 860 1481 952 1404 c +1044 1327 1090 1223 1090 1094 c +1090 1033 1078 974 1055 919 c +1032 864 991 800 930 725 c +913 706 860 650 771 557 c +682 465 556 336 393 170 c + +ce} _d +/three{1303 0 156 -29 1139 1520 sc +831 805 m +928 784 1003 741 1057 676 c +1112 611 1139 530 1139 434 c +1139 287 1088 173 987 92 c +886 11 742 -29 555 -29 c +492 -29 428 -23 361 -10 c +295 2 227 20 156 45 c +156 240 l +212 207 273 183 340 166 c +407 149 476 141 549 141 c +676 141 772 166 838 216 c +905 266 938 339 938 434 c +938 522 907 591 845 640 c +784 690 698 715 588 715 c +414 715 l +414 881 l +596 881 l +695 881 771 901 824 940 c +877 980 903 1037 903 1112 c +903 1189 876 1247 821 1288 c +767 1329 689 1350 588 1350 c +533 1350 473 1344 410 1332 c +347 1320 277 1301 201 1276 c +201 1456 l +278 1477 349 1493 416 1504 c +483 1515 547 1520 606 1520 c +759 1520 881 1485 970 1415 c +1059 1346 1104 1252 1104 1133 c +1104 1050 1080 980 1033 923 c +986 866 918 827 831 805 c + +ce} _d +/five{1303 0 158 -29 1124 1493 sc +221 1493 m +1014 1493 l +1014 1323 l +406 1323 l +406 957 l +435 967 465 974 494 979 c +523 984 553 987 582 987 c +749 987 881 941 978 850 c +1075 759 1124 635 1124 479 c +1124 318 1074 193 974 104 c +874 15 733 -29 551 -29 c +488 -29 424 -24 359 -13 c +294 -2 227 14 158 35 c +158 238 l +218 205 280 181 344 165 c +408 149 476 141 547 141 c +662 141 754 171 821 232 c +888 293 922 375 922 479 c +922 583 888 665 821 726 c +754 787 662 817 547 817 c +493 817 439 811 385 799 c +332 787 277 768 221 743 c +221 1493 l + +ce} _d +/six{1303 0 143 -29 1174 1520 sc +676 827 m +585 827 513 796 460 734 c +407 672 381 587 381 479 c +381 372 407 287 460 224 c +513 162 585 131 676 131 c +767 131 838 162 891 224 c +944 287 971 372 971 479 c +971 587 944 672 891 734 c +838 796 767 827 676 827 c + +1077 1460 m +1077 1276 l +1026 1300 975 1318 923 1331 c +872 1344 821 1350 770 1350 c +637 1350 535 1305 464 1215 c +394 1125 354 989 344 807 c +383 865 433 909 492 940 c +551 971 617 987 688 987 c +838 987 956 941 1043 850 c +1130 759 1174 636 1174 479 c +1174 326 1129 203 1038 110 c +947 17 827 -29 676 -29 c +503 -29 371 37 280 169 c +189 302 143 494 143 745 c +143 981 199 1169 311 1309 c +423 1450 573 1520 762 1520 c +813 1520 864 1515 915 1505 c +967 1495 1021 1480 1077 1460 c + +ce} _d +/seven{1303 0 168 0 1128 1493 sc +168 1493 m +1128 1493 l +1128 1407 l +586 0 l +375 0 l +885 1323 l +168 1323 l +168 1493 l + +ce} _d +/eight{1303 0 139 -29 1163 1520 sc +651 709 m +555 709 479 683 424 632 c +369 581 342 510 342 420 c +342 330 369 259 424 208 c +479 157 555 131 651 131 c +747 131 823 157 878 208 c +933 260 961 331 961 420 c +961 510 933 581 878 632 c +823 683 748 709 651 709 c + +449 795 m +362 816 295 857 246 916 c +198 975 174 1048 174 1133 c +174 1252 216 1347 301 1416 c +386 1485 503 1520 651 1520 c +800 1520 916 1485 1001 1416 c +1086 1347 1128 1252 1128 1133 c +1128 1048 1104 975 1055 916 c +1007 857 940 816 854 795 c +951 772 1027 728 1081 662 c +1136 596 1163 515 1163 420 c +1163 275 1119 164 1030 87 c +942 10 816 -29 651 -29 c +486 -29 360 10 271 87 c +183 164 139 275 139 420 c +139 515 166 596 221 662 c +276 728 352 772 449 795 c + +375 1114 m +375 1037 399 976 447 933 c +496 890 564 868 651 868 c +738 868 805 890 854 933 c +903 976 928 1037 928 1114 c +928 1191 903 1252 854 1295 c +805 1338 738 1360 651 1360 c +564 1360 496 1338 447 1295 c +399 1252 375 1191 375 1114 c + +ce} _d +/nine{1303 0 129 -29 1159 1520 sc +225 31 m +225 215 l +276 191 327 173 379 160 c +431 147 482 141 532 141 c +665 141 767 186 837 275 c +908 365 948 501 958 684 c +919 627 870 583 811 552 c +752 521 686 506 614 506 c +465 506 346 551 259 641 c +172 732 129 855 129 1012 c +129 1165 174 1288 265 1381 c +356 1474 476 1520 627 1520 c +800 1520 931 1454 1022 1321 c +1113 1189 1159 997 1159 745 c +1159 510 1103 322 991 181 c +880 41 730 -29 541 -29 c +490 -29 439 -24 387 -14 c +335 -4 281 11 225 31 c + +627 664 m +718 664 789 695 842 757 c +895 819 922 904 922 1012 c +922 1119 895 1204 842 1266 c +789 1329 718 1360 627 1360 c +536 1360 464 1329 411 1266 c +358 1204 332 1119 332 1012 c +332 904 358 819 411 757 c +464 695 536 664 627 664 c + +ce} _d +/P{1235 0 201 0 1165 1493 sc +403 1327 m +403 766 l +657 766 l +751 766 824 790 875 839 c +926 888 952 957 952 1047 c +952 1136 926 1205 875 1254 c +824 1303 751 1327 657 1327 c +403 1327 l + +201 1493 m +657 1493 l +824 1493 951 1455 1036 1379 c +1122 1304 1165 1193 1165 1047 c +1165 900 1122 788 1036 713 c +951 638 824 600 657 600 c +403 600 l +403 0 l +201 0 l +201 1493 l + +ce} _d +/S{1300 0 135 -29 1186 1520 sc +1096 1444 m +1096 1247 l +1019 1284 947 1311 879 1329 c +811 1347 745 1356 682 1356 c +572 1356 487 1335 427 1292 c +368 1249 338 1189 338 1110 c +338 1044 358 994 397 960 c +437 927 512 900 623 879 c +745 854 l +896 825 1007 775 1078 702 c +1150 630 1186 533 1186 412 c +1186 267 1137 158 1040 83 c +943 8 801 -29 614 -29 c +543 -29 468 -21 388 -5 c +309 11 226 35 141 66 c +141 274 l +223 228 303 193 382 170 c +461 147 538 135 614 135 c +729 135 818 158 881 203 c +944 248 975 313 975 397 c +975 470 952 528 907 569 c +862 610 789 641 686 662 c +563 686 l +412 716 303 763 236 827 c +169 891 135 980 135 1094 c +135 1226 181 1330 274 1406 c +367 1482 496 1520 659 1520 c +729 1520 800 1514 873 1501 c +946 1488 1020 1469 1096 1444 c + +ce} _d +/W{2025 0 68 0 1958 1493 sc +68 1493 m +272 1493 l +586 231 l +899 1493 l +1126 1493 l +1440 231 l +1753 1493 l +1958 1493 l +1583 0 l +1329 0 l +1014 1296 l +696 0 l +442 0 l +68 1493 l + +ce} _d +/Z{1403 0 92 0 1311 1493 sc +115 1493 m +1288 1493 l +1288 1339 l +344 170 l +1311 170 l +1311 0 l +92 0 l +92 154 l +1036 1323 l +115 1323 l +115 1493 l + +ce} _d +/a{1255 0 123 -29 1069 1147 sc +702 563 m +553 563 450 546 393 512 c +336 478 307 420 307 338 c +307 273 328 221 371 182 c +414 144 473 125 547 125 c +649 125 731 161 792 233 c +854 306 885 402 885 522 c +885 563 l +702 563 l + +1069 639 m +1069 0 l +885 0 l +885 170 l +843 102 791 52 728 19 c +665 -13 589 -29 498 -29 c +383 -29 292 3 224 67 c +157 132 123 218 123 326 c +123 452 165 547 249 611 c +334 675 460 707 627 707 c +885 707 l +885 725 l +885 810 857 875 801 921 c +746 968 668 991 567 991 c +503 991 441 983 380 968 c +319 953 261 930 205 899 c +205 1069 l +272 1095 338 1114 401 1127 c +464 1140 526 1147 586 1147 c +748 1147 869 1105 949 1021 c +1029 937 1069 810 1069 639 c + +ce} _d +/c{1126 0 113 -29 999 1147 sc +999 1077 m +999 905 l +947 934 895 955 842 969 c +790 984 737 991 684 991 c +565 991 472 953 406 877 c +340 802 307 696 307 559 c +307 422 340 316 406 240 c +472 165 565 127 684 127 c +737 127 790 134 842 148 c +895 163 947 184 999 213 c +999 43 l +948 19 894 1 839 -11 c +784 -23 726 -29 664 -29 c +495 -29 361 24 262 130 c +163 236 113 379 113 559 c +113 742 163 885 263 990 c +364 1095 501 1147 676 1147 c +733 1147 788 1141 842 1129 c +896 1118 948 1100 999 1077 c + +ce} _d +/d{1300 0 113 -29 1114 1556 sc +930 950 m +930 1556 l +1114 1556 l +1114 0 l +930 0 l +930 168 l +891 101 842 52 783 19 c +724 -13 654 -29 571 -29 c +436 -29 325 25 240 133 c +155 241 113 383 113 559 c +113 735 155 877 240 985 c +325 1093 436 1147 571 1147 c +654 1147 724 1131 783 1098 c +842 1066 891 1017 930 950 c + +303 559 m +303 424 331 317 386 240 c +442 163 519 125 616 125 c +713 125 790 163 846 240 c +902 317 930 424 930 559 c +930 694 902 800 846 877 c +790 954 713 993 616 993 c +519 993 442 954 386 877 c +331 800 303 694 303 559 c + +ce} _d +/e{1260 0 113 -29 1151 1147 sc +1151 606 m +1151 516 l +305 516 l +313 389 351 293 419 226 c +488 160 583 127 705 127 c +776 127 844 136 910 153 c +977 170 1043 196 1108 231 c +1108 57 l +1042 29 974 8 905 -7 c +836 -22 765 -29 694 -29 c +515 -29 374 23 269 127 c +165 231 113 372 113 549 c +113 732 162 878 261 985 c +360 1093 494 1147 662 1147 c +813 1147 932 1098 1019 1001 c +1107 904 1151 773 1151 606 c + +967 660 m +966 761 937 841 882 901 c +827 961 755 991 664 991 c +561 991 479 962 417 904 c +356 846 320 764 311 659 c +967 660 l + +ce} _d +/f{721 0 47 0 760 1556 sc +760 1556 m +760 1403 l +584 1403 l +518 1403 472 1390 446 1363 c +421 1336 408 1288 408 1219 c +408 1120 l +711 1120 l +711 977 l +408 977 l +408 0 l +223 0 l +223 977 l +47 977 l +47 1120 l +223 1120 l +223 1198 l +223 1323 252 1413 310 1470 c +368 1527 460 1556 586 1556 c +760 1556 l + +ce} _d +/h{1298 0 186 0 1124 1556 sc +1124 676 m +1124 0 l +940 0 l +940 670 l +940 776 919 855 878 908 c +837 961 775 987 692 987 c +593 987 514 955 457 892 c +400 829 371 742 371 633 c +371 0 l +186 0 l +186 1556 l +371 1556 l +371 946 l +415 1013 467 1064 526 1097 c +586 1130 655 1147 733 1147 c +862 1147 959 1107 1025 1027 c +1091 948 1124 831 1124 676 c + +ce} _d +/i{569 0 193 0 377 1556 sc +193 1120 m +377 1120 l +377 0 l +193 0 l +193 1120 l + +193 1556 m +377 1556 l +377 1323 l +193 1323 l +193 1556 l + +ce} _d +/k{1186 0 186 0 1180 1556 sc +186 1556 m +371 1556 l +371 637 l +920 1120 l +1155 1120 l +561 596 l +1180 0 l +940 0 l +371 547 l +371 0 l +186 0 l +186 1556 l + +ce} _d +/l{569 0 193 0 377 1556 sc +193 1556 m +377 1556 l +377 0 l +193 0 l +193 1556 l + +ce} _d +/m{1995 0 186 0 1821 1147 sc +1065 905 m +1111 988 1166 1049 1230 1088 c +1294 1127 1369 1147 1456 1147 c +1573 1147 1663 1106 1726 1024 c +1789 943 1821 827 1821 676 c +1821 0 l +1636 0 l +1636 670 l +1636 777 1617 857 1579 909 c +1541 961 1483 987 1405 987 c +1310 987 1234 955 1179 892 c +1124 829 1096 742 1096 633 c +1096 0 l +911 0 l +911 670 l +911 778 892 858 854 909 c +816 961 757 987 678 987 c +584 987 509 955 454 891 c +399 828 371 742 371 633 c +371 0 l +186 0 l +186 1120 l +371 1120 l +371 946 l +413 1015 463 1065 522 1098 c +581 1131 650 1147 731 1147 c +812 1147 881 1126 938 1085 c +995 1044 1038 984 1065 905 c + +ce} _d +/n{1298 0 186 0 1124 1147 sc +1124 676 m +1124 0 l +940 0 l +940 670 l +940 776 919 855 878 908 c +837 961 775 987 692 987 c +593 987 514 955 457 892 c +400 829 371 742 371 633 c +371 0 l +186 0 l +186 1120 l +371 1120 l +371 946 l +415 1013 467 1064 526 1097 c +586 1130 655 1147 733 1147 c +862 1147 959 1107 1025 1027 c +1091 948 1124 831 1124 676 c + +ce} _d +/o{1253 0 113 -29 1141 1147 sc +627 991 m +528 991 450 952 393 875 c +336 798 307 693 307 559 c +307 425 335 319 392 242 c +449 165 528 127 627 127 c +725 127 803 166 860 243 c +917 320 946 426 946 559 c +946 692 917 797 860 874 c +803 952 725 991 627 991 c + +627 1147 m +787 1147 913 1095 1004 991 c +1095 887 1141 743 1141 559 c +1141 376 1095 232 1004 127 c +913 23 787 -29 627 -29 c +466 -29 340 23 249 127 c +158 232 113 376 113 559 c +113 743 158 887 249 991 c +340 1095 466 1147 627 1147 c + +ce} _d +/q{1300 0 113 -426 1114 1147 sc +303 559 m +303 424 331 317 386 240 c +442 163 519 125 616 125 c +713 125 790 163 846 240 c +902 317 930 424 930 559 c +930 694 902 800 846 877 c +790 954 713 993 616 993 c +519 993 442 954 386 877 c +331 800 303 694 303 559 c + +930 168 m +891 101 842 52 783 19 c +724 -13 654 -29 571 -29 c +436 -29 325 25 240 133 c +155 241 113 383 113 559 c +113 735 155 877 240 985 c +325 1093 436 1147 571 1147 c +654 1147 724 1131 783 1098 c +842 1066 891 1017 930 950 c +930 1120 l +1114 1120 l +1114 -426 l +930 -426 l +930 168 l + +ce} _d +/r{842 0 186 0 842 1147 sc +842 948 m +821 960 799 969 774 974 c +750 980 723 983 694 983 c +590 983 510 949 454 881 c +399 814 371 717 371 590 c +371 0 l +186 0 l +186 1120 l +371 1120 l +371 946 l +410 1014 460 1064 522 1097 c +584 1130 659 1147 748 1147 c +761 1147 775 1146 790 1144 c +805 1143 822 1140 841 1137 c +842 948 l + +ce} _d +/s{1067 0 111 -29 967 1147 sc +907 1087 m +907 913 l +855 940 801 960 745 973 c +689 986 631 993 571 993 c +480 993 411 979 365 951 c +320 923 297 881 297 825 c +297 782 313 749 346 724 c +379 700 444 677 543 655 c +606 641 l +737 613 829 573 884 522 c +939 471 967 400 967 309 c +967 205 926 123 843 62 c +761 1 648 -29 504 -29 c +444 -29 381 -23 316 -11 c +251 0 183 18 111 41 c +111 231 l +179 196 246 169 312 151 c +378 134 443 125 508 125 c +595 125 661 140 708 169 c +755 199 778 241 778 295 c +778 345 761 383 727 410 c +694 437 620 462 506 487 c +442 502 l +328 526 246 563 195 612 c +144 662 119 730 119 817 c +119 922 156 1004 231 1061 c +306 1118 412 1147 549 1147 c +617 1147 681 1142 741 1132 c +801 1122 856 1107 907 1087 c + +ce} _d +/t{803 0 55 0 754 1438 sc +375 1438 m +375 1120 l +754 1120 l +754 977 l +375 977 l +375 369 l +375 278 387 219 412 193 c +437 167 488 154 565 154 c +754 154 l +754 0 l +565 0 l +423 0 325 26 271 79 c +217 132 190 229 190 369 c +190 977 l +55 977 l +55 1120 l +190 1120 l +190 1438 l +375 1438 l + +ce} _d +/u{1298 0 174 -29 1112 1147 sc +174 442 m +174 1120 l +358 1120 l +358 449 l +358 343 379 263 420 210 c +461 157 523 131 606 131 c +705 131 784 163 841 226 c +899 289 928 376 928 485 c +928 1120 l +1112 1120 l +1112 0 l +928 0 l +928 172 l +883 104 831 53 772 20 c +713 -13 645 -29 567 -29 c +438 -29 341 11 274 91 c +207 171 174 288 174 442 c + +637 1147 m +637 1147 l + +ce} _d +/v{1212 0 61 0 1151 1120 sc +61 1120 m +256 1120 l +606 180 l +956 1120 l +1151 1120 l +731 0 l +481 0 l +61 1120 l + +ce} _d +/w{1675 0 86 0 1589 1120 sc +86 1120 m +270 1120 l +500 246 l +729 1120 l +946 1120 l +1176 246 l +1405 1120 l +1589 1120 l +1296 0 l +1079 0 l +838 918 l +596 0 l +379 0 l +86 1120 l + +ce} _d +end readonly def + +/BuildGlyph { + exch begin + CharStrings exch + 2 copy known not {pop /.notdef} if + true 3 1 roll get exec + end +} _d + +/BuildChar { + 1 index /Encoding get exch get + 1 index /BuildGlyph get exec +} _d + +FontName currentdict end definefont pop +end +%%EndProlog +mpldict begin +0 0 translate +0 0 423.981 279.029 rectclip +gsave +-0 0 m +423.980827 0 l +423.980827 279.02875 l +-0 279.02875 l +cl +1 setgray +fill +grestore +gsave +46.95 37.54375 m +416.38 37.54375 l +416.38 256.70375 l +46.95 256.70375 l +cl +1 setgray +fill +grestore +0.8 setlinewidth +1 setlinejoin +0 setlinecap +[] 0 setdash +0 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin + +0 setlinecap + +0 0 m +0 -3.5 l + +gsave +0 setgray +fill +grestore +stroke +grestore +} bind def +85.4097 37.5438 o +grestore +/DejaVuSans 10.000 selectfont +gsave + +82.23 22.95 translate +0 rotate +0 0 m /five glyphshow +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin + +0 setlinecap + +0 0 m +0 -3.5 l + +gsave +0 setgray +fill +grestore +stroke +grestore +} bind def +139.578 37.5438 o +grestore +/DejaVuSans 10.000 selectfont +gsave + +133.219 22.95 translate +0 rotate +0 0 m /one glyphshow +6.3623 0 m /zero glyphshow +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin + +0 setlinecap + +0 0 m +0 -3.5 l + +gsave +0 setgray +fill +grestore +stroke +grestore +} bind def +193.747 37.5438 o +grestore +/DejaVuSans 10.000 selectfont +gsave + +187.388 22.95 translate +0 rotate +0 0 m /one glyphshow +6.3623 0 m /five glyphshow +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin + +0 setlinecap + +0 0 m +0 -3.5 l + +gsave +0 setgray +fill +grestore +stroke +grestore +} bind def +247.916 37.5438 o +grestore +/DejaVuSans 10.000 selectfont +gsave + +241.556 22.95 translate +0 rotate +0 0 m /two glyphshow +6.3623 0 m /zero glyphshow +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin + +0 setlinecap + +0 0 m +0 -3.5 l + +gsave +0 setgray +fill +grestore +stroke +grestore +} bind def +302.084 37.5438 o +grestore +/DejaVuSans 10.000 selectfont +gsave + +295.725 22.95 translate +0 rotate +0 0 m /two glyphshow +6.3623 0 m /five glyphshow +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin + +0 setlinecap + +0 0 m +0 -3.5 l + +gsave +0 setgray +fill +grestore +stroke +grestore +} bind def +356.253 37.5438 o +grestore +/DejaVuSans 10.000 selectfont +gsave + +349.893 22.95 translate +0 rotate +0 0 m /three glyphshow +6.3623 0 m /zero glyphshow +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin + +0 setlinecap + +0 0 m +0 -3.5 l + +gsave +0 setgray +fill +grestore +stroke +grestore +} bind def +410.421 37.5438 o +grestore +/DejaVuSans 10.000 selectfont +gsave + +404.062 22.95 translate +0 rotate +0 0 m /three glyphshow +6.3623 0 m /five glyphshow +grestore +/DejaVuSans 10.000 selectfont +gsave + +188.118 9.27813 translate +0 rotate +0 0 m /P glyphshow +5.65527 0 m /o glyphshow +11.7734 0 m /c glyphshow +17.2715 0 m /e glyphshow +23.4238 0 m /t glyphshow +27.3447 0 m /space glyphshow +30.5234 0 m /k glyphshow +36.3145 0 m /l glyphshow +39.0928 0 m /a glyphshow +45.2207 0 m /s glyphshow +50.4307 0 m /t glyphshow +54.3516 0 m /r glyphshow +58.2129 0 m /o glyphshow +64.3311 0 m /v glyphshow +70.249 0 m /space glyphshow +73.4277 0 m /parenleft glyphshow +77.3291 0 m /k glyphshow +83.1201 0 m /parenright glyphshow +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin + +0 setlinecap + +-0 0 m +-3.5 0 l + +gsave +0 setgray +fill +grestore +stroke +grestore +} bind def +46.95 37.9128 o +grestore +/DejaVuSans 10.000 selectfont +gsave + +27.2313 34.1159 translate +0 rotate +0 0 m /five glyphshow +6.3623 0 m /zero glyphshow +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin + +0 setlinecap + +-0 0 m +-3.5 0 l + +gsave +0 setgray +fill +grestore +stroke +grestore +} bind def +46.95 81.473 o +grestore +/DejaVuSans 10.000 selectfont +gsave + +27.2313 77.6761 translate +0 rotate +0 0 m /six glyphshow +6.3623 0 m /zero glyphshow +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin + +0 setlinecap + +-0 0 m +-3.5 0 l + +gsave +0 setgray +fill +grestore +stroke +grestore +} bind def +46.95 125.033 o +grestore +/DejaVuSans 10.000 selectfont +gsave + +27.2313 121.236 translate +0 rotate +0 0 m /seven glyphshow +6.3623 0 m /zero glyphshow +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin + +0 setlinecap + +-0 0 m +-3.5 0 l + +gsave +0 setgray +fill +grestore +stroke +grestore +} bind def +46.95 168.593 o +grestore +/DejaVuSans 10.000 selectfont +gsave + +27.2313 164.797 translate +0 rotate +0 0 m /eight glyphshow +6.3623 0 m /zero glyphshow +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin + +0 setlinecap + +-0 0 m +-3.5 0 l + +gsave +0 setgray +fill +grestore +stroke +grestore +} bind def +46.95 212.154 o +grestore +/DejaVuSans 10.000 selectfont +gsave + +27.2313 208.357 translate +0 rotate +0 0 m /nine glyphshow +6.3623 0 m /zero glyphshow +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin + +0 setlinecap + +-0 0 m +-3.5 0 l + +gsave +0 setgray +fill +grestore +stroke +grestore +} bind def +46.95 255.714 o +grestore +/DejaVuSans 10.000 selectfont +gsave + +20.8719 251.917 translate +0 rotate +0 0 m /one glyphshow +6.3623 0 m /zero glyphshow +12.7246 0 m /zero glyphshow +grestore +/DejaVuSans 10.000 selectfont +gsave + +14.7937 56.4441 translate +90 rotate +0 0 m /W glyphshow +9.8877 0 m /S glyphshow +16.2354 0 m /S glyphshow +22.583 0 m /space glyphshow +25.7617 0 m /parenleft glyphshow +29.6631 0 m /w glyphshow +37.8418 0 m /i glyphshow +40.6201 0 m /t glyphshow +44.541 0 m /h glyphshow +50.8789 0 m /i glyphshow +53.6572 0 m /n glyphshow +59.9951 0 m /hyphen glyphshow +63.6035 0 m /c glyphshow +69.1016 0 m /l glyphshow +71.8799 0 m /u glyphshow +78.2178 0 m /s glyphshow +83.4277 0 m /t glyphshow +87.3486 0 m /e glyphshow +93.501 0 m /r glyphshow +97.6123 0 m /space glyphshow +100.791 0 m /s glyphshow +106.001 0 m /u glyphshow +112.339 0 m /m glyphshow +122.08 0 m /space glyphshow +125.259 0 m /o glyphshow +131.377 0 m /f glyphshow +134.897 0 m /space glyphshow +138.076 0 m /s glyphshow +143.286 0 m /q glyphshow +149.634 0 m /u glyphshow +155.972 0 m /a glyphshow +162.1 0 m /r glyphshow +165.961 0 m /e glyphshow +172.113 0 m /s glyphshow +177.323 0 m /parenright glyphshow +grestore +1.5 setlinewidth +2 setlinecap +0 0 1 setrgbcolor +gsave +46.95 37.544 369.43 219.16 rectclip +63.742273 246.741932 m +74.575997 223.801327 l +85.409721 206.038437 l +96.243446 190.467334 l +107.07717 175.600726 l +117.910894 164.333187 l +128.744619 153.987268 l +139.578343 143.107079 l +150.412067 137.322496 l +161.245792 126.609345 l +172.079516 119.473115 l +182.91324 113.651611 l +193.746965 110.508481 l +204.580689 104.349167 l +215.414413 100.174646 l +226.248138 92.311074 l +237.081862 90.760775 l +247.915587 85.836884 l +258.749311 81.896609 l +269.583035 77.035996 l +280.41676 74.846903 l +291.250484 74.167065 l +302.084208 69.122835 l +312.917933 63.655681 l +323.751657 62.381305 l +334.585381 60.235977 l +345.419106 55.552287 l +356.25283 55.249309 l +367.086554 53.155295 l +377.920279 50.384077 l +388.754003 49.231294 l +399.587727 47.505568 l +stroke +grestore +1 setlinewidth +0 setlinecap +gsave +46.95 37.544 369.43 219.16 rectclip +/o { +gsave +newpath +translate +1.0 setlinewidth +1 setlinejoin + +0 setlinecap + +0 -3 m +0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c +2.683901 -1.55874 3 -0.795609 3 0 c +3 0.795609 2.683901 1.55874 2.12132 2.12132 c +1.55874 2.683901 0.795609 3 0 3 c +-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c +-2.683901 1.55874 -3 0.795609 -3 0 c +-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c +-1.55874 -2.683901 -0.795609 -3 0 -3 c +cl + +gsave +0 0 1 setrgbcolor +fill +grestore +stroke +grestore +} bind def +63.7423 246.742 o +74.576 223.801 o +85.4097 206.038 o +96.2434 190.467 o +107.077 175.601 o +117.911 164.333 o +128.745 153.987 o +139.578 143.107 o +150.412 137.322 o +161.246 126.609 o +172.08 119.473 o +182.913 113.652 o +193.747 110.508 o +204.581 104.349 o +215.414 100.175 o +226.248 92.3111 o +237.082 90.7608 o +247.916 85.8369 o +258.749 81.8966 o +269.583 77.036 o +280.417 74.8469 o +291.25 74.1671 o +302.084 69.1228 o +312.918 63.6557 o +323.752 62.3813 o +334.585 60.236 o +345.419 55.5523 o +356.253 55.2493 o +367.087 53.1553 o +377.92 50.3841 o +388.754 49.2313 o +399.588 47.5056 o +grestore +0.8 setlinewidth +0 setlinejoin +2 setlinecap +0 setgray +gsave +46.95 37.54375 m +46.95 256.70375 l +stroke +grestore +gsave +416.38 37.54375 m +416.38 256.70375 l +stroke +grestore +gsave +46.95 37.54375 m +416.38 37.54375 l +stroke +grestore +gsave +46.95 256.70375 m +416.38 256.70375 l +stroke +grestore +/DejaVuSans 12.000 selectfont +gsave + +174.485 262.704 translate +0 rotate +0 0 m /Z glyphshow +8.2207 0 m /a glyphshow +15.5742 0 m /v glyphshow +22.6758 0 m /i glyphshow +26.0098 0 m /s glyphshow +32.2617 0 m /l glyphshow +35.5957 0 m /o glyphshow +42.9375 0 m /s glyphshow +49.1895 0 m /t glyphshow +53.8945 0 m /space glyphshow +57.709 0 m /W glyphshow +69.5742 0 m /S glyphshow +77.1914 0 m /S glyphshow +84.8086 0 m /space glyphshow +88.623 0 m /o glyphshow +95.9648 0 m /d glyphshow +103.582 0 m /space glyphshow +107.396 0 m /k glyphshow +grestore + +end +showpage