Metodika čištění, kategorizace a vizualizace dat
Tento dokument popisuje celý postup zpracování dat od původního exportu z repozitáře až po výslednou vizualizaci: jaká rozhodnutí byla v jednotlivých krocích učiněna, jaký měla dopad na výsledná data a jak celý postup reprodukovat.
1. Zdroj dat
Vstupním souborem je export repozitáře závěrečných prací Kabinetu informačních studií a knihovnictví (KISK), Filozofická fakulta Masarykovy univerzity, za období 2020–2026 (k červenci). Export obsahuje 603 záznamů se šesti atributy: název práce, typ práce, vedoucí, oponent, klíčová slova a anotace.
Export neobsahuje rok ani datum obhajoby. Rok obhajoby (u většiny prací i měsíc) byl dodatečně doplněn z doplňkového zdroje mimo tento export, spárovaného podle názvu práce (pokrývá všech 555 prací hlavní analýzy) - viz sekce "Jak se témata proměňují v čase" na hlavní stránce. Přesné datum obhajoby k dispozici není; ostatní prezentované pohledy zůstávají průřezové.
Původní soubor (DIS_dip_full.csv, kódování Windows-1250) se v žádném kroku zpracování needituje přímo. Všechny úpravy se zapisují do odvozené kopie (DIS_dip_full_clean.csv, UTF-8), takže je kdykoli možné vrátit se k nezměněnému originálu a zpracování spustit znovu od začátku.
2. Čištění dat
Před kategorizací prošla data sadou mechanických oprav. Cílem bylo odstranit chyby vzniklé při exportu nebo v původním zdrojovém dokumentu, ne obsahově interpretovat nebo doplňovat chybějící informace. Každá z níže uvedených úprav je zdokumentována samostatně v auditním logu projektu, včetně tabulky konkrétních dotčených případů; zde je uveden jen souhrn s dopadem na výsledná data.
2.1 Oprava poškozených znaků
Rozhodnutí: tři místa v původním exportu obsahovala znak ? na pozici, kde byl ve zdrojovém systému ztracen speciální znak (typicky diakritika mimo českou/slovenskou sadu). Chyby byly opraveny ručně na základě kontextu (např. jméno reálné osoby, běžný odborný termín).
Dopad: opraveny 3 záznamy; žádný vliv na kategorizaci ani na počty prací.
2.2 Sjednocení jmen vedoucích a oponentů
Rozhodnutí: v datech byly nalezeny dvojice pravopisných variant téže osoby (např. chybějící/přebytečná diakritika). Bez sjednocení by taková osoba v síťové vizualizaci vytvořila dva samostatné uzly místo jednoho. Kanonický tvar byl určen podle převažujícího výskytu v datech, případně potvrzen uživatelem.
Dopad: sjednoceny 3 dvojice jmen. Bez tohoto kroku by síťový graf spolupráce (sekce „Komunita“) nadhodnocoval počet samostatných osob a podhodnocoval sílu jejich vzájemných vazeb.
2.3 Oprava rozdělených slov v anotacích
Rozhodnutí: v anotacích se opakovaně vyskytovala slova rozdělená pomlčkou uprostřed (např. „po-skytnúť“), artefakt automatického dělení slov na konci řádku v původním zdrojovém dokumentu (Word/PDF), který zůstal i po převodu do tabulkového formátu. Od legitimních spojení se čárkou (např. „e-learning“, „eye-tracking“) byly odlišeny ručně; opraveno bylo jen tam, kde spojením vzniklo smysluplné české nebo slovenské slovo.
Dopad: opraveno 78 unikátních rozdělených slov napříč desítkami záznamů. Vliv na kategorizaci: přímý, protože kategorizace (viz sekce 3) vyhledává celá slova v anotacích; rozdělené slovo by regulárnímu výrazu uniklo.
2.4 Doplnění chybějících oddělovačů mezi klíčovými slovy
Rozhodnutí: repozitář vyžaduje klíčová slova zadaná dvojjazyčně (česky i anglicky). U 13 záznamů se při exportu poslední české a první anglické klíčové slovo spojily bez oddělovače (např. „technologie ve vzdělávání artificial intelligence“). Anglická část byla ve všech případech téměř doslovným překladem jiného klíčového slova už přítomného ve stejném seznamu, a byla proto po rozdělení zahozena jako duplicitní; česká část byla zachována jako samostatné klíčové slovo.
Dopad: opraveno 13 záznamů. Bez tohoto kroku by dané klíčové slovo nebylo možné strojově zpracovat jako samostatnou položku.
2.5 Překlad slovenských a anglických klíčových slov
Rozhodnutí: klíčová slova u slovensky a anglicky psaných prací obsahovala mix jazyků. Tam, kde slovenský nebo anglický výraz označoval stejný pojem jako již existující český tvar (např. „service design“ / „design služeb“), byl sjednocen na český tvar: výhradně za účelem sjednocení četností pro účely kategorizace a vizualizace, nikoli za účelem skrytí skutečného jazyka práce (ten je zachycen samostatně, viz 2.6). Zavedená odborná terminologie a zkratky (UX, VR, STEM apod.) se nepřekládaly.
Dopad: přeloženo 62 slovenských a 115 anglických tvarů klíčových slov; část se sloučila s již existujícím českým tvarem (např. výskyt „virtuální realita“ vzrostl z 11 na 19 díky sloučení s „virtual reality“). Bez tohoto kroku by stejný pojem figuroval v datech jako dvě až tři oddělené položky a v kategorizaci i v analýze klíčových slov by byl podhodnocen.
2.6 Odvození jazyka práce
Rozhodnutí: anotace je u všech prací v repozitáři povinně vedena česky nebo slovensky bez ohledu na skutečný jazyk práce; ze samotné anotace tedy nelze poznat, že práce je anglická. Jazyk práce byl proto odvozen heuristicky z názvu práce (přítomnost/absence diakritiky, anglická funkční slova) a z jazykových markerů v anotaci (slovenská diakritika, typické slovenské výrazy).
Dopad: vznikl odvozený sloupec jazyk_prace s rozložením 493 českých (82 %), 57 slovenských (9,5 %) a 53 anglických prací (8,8 %). Tento sloupec je zdrojem pro facetu „jazyk“ ve vizualizaci a je heuristický; u hraničních případů (např. práce s minimem jazykových markerů) nebyl ověřován ručně proti celému textu práce.
Jak replikovat čištění dat
Všechny výše uvedené úpravy provádí skript clean_data.py, spouštěný nad původním souborem DIS_dip_full.csv. Skript je idempotentní: lze jej spustit opakovaně a vždy vytvoří stejný výsledek, protože nikdy nečte svůj vlastní předchozí výstup. Výstupem je DIS_dip_full_clean.csv. Podpůrné soubory preklad_sk_navrh.csv (český překlad anotací a klíčových slov 59 slovensky psaných prací, použitý výhradně pro kategorizaci, ne pro zobrazení) jsou při každém běhu ověřovány proti zdrojovým datům (kontrola, že se překlad váže na správný záznam).
3. Kategorizace
Repozitář neobsahuje žádnou strukturovanou kategorizaci prací podle tématu, metodologického přístupu nebo cílové skupiny výzkumu. Všechny tři fasety byly proto dopočítány zpětně z klíčových slov a anotací pomocí sady ručně sestavených regulárních výrazů (schéma je uloženo v souboru kategorie_schema.csv). Tento přístup byl zvolen záměrně místo strojového učení nebo modelu velkého jazykového modelu; každé přiřazení kategorie je díky tomu možné dohledat na konkrétní pravidlo a konkrétní shodu v textu, tedy auditovat a v případě chyby opravit.
3.1 Tematické okruhy
Práce je zařazena do 21 tematických okruhů; do více okruhů zároveň smí spadat a ve skutečnosti tak činí většina prací (v hlavní analýze 64,7 % prací spadá do dvou a více okruhů); proto je na webu důsledně používán pojem „tematický okruh“, nikoli jednoznačné „téma“.
Rozhodnutí a jejich dopad:
| Krok auditu | Zjištění | Dopad |
|---|---|---|
| Audit hranic slov | krátké vzory (např. „kurz“) mohly chytat část jiného, věcně nesouvisejícího slova (např. „diskurz“) | opraveny 2 potvrzené kolize; desítky dalších případů proověřeny a ponechány jako věcně správné (např. „design“ v „redesign“) |
| Audit homografů | stejné slovo má v různém kontextu různý význam, nejvýraznější případ: „design“ v „design služeb“ (UX) vs. „výzkumný design“ (metodologický termín pro uspořádání výzkumu) | opraveno u kategorie „Design služeb a UX“ (8 potvrzených falešných shod z 70 prověřených); obdobně u dalších dvojic homografů nalezených později (např. „gender“, „závislost“, „média“) |
| Nezávislá bottom-up validace | frekvenční a souvýskytová analýza klíčových slov provedená bez ohledu na existující schéma, jako kontrola úplnosti | schéma potvrzeno jako kompletní; žádné velké chybějící téma nebylo nalezeno; schéma ponecháno beze změny |
| Ruční dořešení zbylých případů | malá menšina prací nespadala do žádného z automaticky rozpoznaných okruhů, protože neobsahovala žádné z klíčových slov v regulárních výrazech | každá taková práce byla přečtena jednotlivě a zařazena ručně; vznikla i jedna nová kategorie („Smart City a digitální transformace organizací“) pro tematický shluk, který schéma dosud nepokrývalo. Výsledek: 100 % prací v hlavní analýze má přiřazen alespoň jeden tematický okruh. |
| Sémantický (LLM) audit | nezávislé čtení anotací s porozuměním obsahu (ne jen strojové párování vzorů) odhalilo 2 systematické chyby: skloněný tvar unikal výjimce u vzorce pro „management“; holé „archiv“ chytalo i práce, které archivní materiály jen citují jako historický zdroj/metodu, ne jako skutečné téma práce | opraven regulární výraz (2 práce); zaveden nový soubor odebrane_tema.csv pro ruční odebrání kategorie tam, kde by zúžení regulárního výrazu riskovalo ztrátu jiných legitimních shod (8 prací) |
3.2 Jak se zkoumalo a cílová skupina
Tyto dvě fasety mají podstatně nižší jistotu než tematické okruhy, protože autoři metodologický přístup nebo cílovou skupinu výzkumu v textu často neuvádějí explicitně. Uvedená čísla je proto třeba chápat jako dolní odhad, nikoli jako vyčerpávající přehled.
Kategorie „jak se zkoumalo“ původně sdružovala pod jedno označení čtyři věcně neslučitelné roviny popisu výzkumu: výzkumné paradigma (kvalitativní/kvantitativní/smíšený), techniku sběru dat (rozhovory, dotazník, ohnisková skupina…), analytickou metodu (obsahová analýza, tematická analýza…) a typ studie (případová studie, experiment…). Tyto roviny nejsou vzájemně srovnatelné (např. „kvalitativní výzkum“ a „A/B test“ nejsou položky téže škály), a byly proto rozděleny do čtyř samostatně vykazovaných skupin.
Jak replikovat kategorizaci
Kategorizaci provádí clean_data.py na základě pravidel v kategorie_schema.csv (sloupce: typ facety, název kategorie, regulární výraz). Případy, které regulárním výrazům trvale unikají, ale byly ručně vyhodnoceny jako patřičné, jsou zaznamenány v souboru dodatecne_tema.csv (formát: název práce, kategorie) a skriptem načteny a aplikovány navíc k výsledku regulárních výrazů. Skript při každém běhu ověřuje, že každý název práce uvedený v tomto souboru v datech skutečně existuje; v opačném případě běh s chybou skončí, aby nedošlo k tichému rozjetí od reality dat.
Analogicky soubor odebrane_tema.csv (stejný formát) řeší opačný případ: regulární výraz kategorii přiřadil, ale jde o falešnou shodu (viz krok 25 v auditním logu). Skript ho aplikuje po vyhodnocení regulárních výrazů a stejnou validací ověřuje, že je každý uvedený název práce v datech nalezen.
4. Vymezení hlavní analýzy a interdisciplinárního okna
Export repozitáře je vázán na osobu (vedoucího nebo oponenta) afiliovanou ke KISKu, nikoli výhradně na studijní program KISK. Součástí exportu jsou proto i práce, které vznikly v jiném studijním programu nebo na jiné katedře/fakultě (případně šlo o práci v rámci celoživotního vzdělávání), ale vedoucím byl někdo z KISKu.
Rozhodnutí: takové práce byly z hlavní analýzy vyřazeny, aby nezkreslovaly obraz tematického a metodologického zaměření katedry jako studijního programu. Nebyly však z dat odstraněny; jsou vedeny s příznakem hlavni_analyza = NE a zobrazeny v samostatné sekci „Interdisciplinární okno“.
Příslušnost konkrétní osoby (vedoucího či oponenta) ke KISKu jako kmenovému pracovišti nebylo možné odvodit automaticky a nebyla proto ani odhadována; u každé osoby figurující u těchto prací byla afiliace ke KISKu ručně ověřena a potvrzena. Z 48 takto vyřazených prací má 38 alespoň jednu osobu (vždy vedoucího, u části prací navíc i oponenta) s takto ověřenou vazbou na KISK a jsou zobrazeny v sekci „Interdisciplinární okno“. U zbylých 10 prací (převážně z Fakulty informatiky) nebyla vazba žádné zúčastněné osoby na KISK potvrzena; tyto práce zůstávají v datech označeny jako vyřazené z hlavní analýzy, ale ve vizualizaci se nezobrazují, aby nepůsobily jako neopodstatněná součást interdisciplinárního přesahu.
Dopad: hlavní analýza pracuje s 555 pracemi namísto 603 exportovaných; hero-sekce webu tento rozdíl v úvodu explicitně uvádí.
Jak replikovat: seznam vyřazených prací a důvod vyřazení (jiné pracoviště / CŽV) je v souboru mimo_hlavni_analyzu.csv (formát: název práce, kategorie), načítaném a aplikovaném skriptem clean_data.py se stejnou kontrolou konzistence jako u dodatecne_tema.csv. Seznam ručně ověřených osob s potvrzenou vazbou na KISK je definován přímo ve vizualizačním skriptu (main.js, konstanta KISK_PEOPLE).
5. Vizualizace
Výsledná prezentace je statická webová stránka (HTML, CSS, JavaScript, knihovna D3.js), bez serverové části a bez databáze; po otevření stránky se veškerá potřebná data načtou najednou. Tento přístup byl zvolen s ohledem na jednoduchost nasazení a dlouhodobou udržitelnost bez závislosti na provozu serveru.
Data pro vizualizaci se generují ve dvou krocích: skript export_final_data.py převede DIS_dip_full_clean.csv do souboru site/data/theses.json; skript assemble_site.py pak tento soubor spojí se šablonou stránky (site/index.template.html) do výsledného site/index.html. Šablona a výsledná stránka se udržují odděleně, aby úpravy textu nebo struktury nebylo nutné provádět přímo v souboru obsahujícím vložená data.
Každá vizualizace na webu je doplněna třemi přepínatelnými popisky se samostatnou funkcí:
- O grafu: co graf zobrazuje a jak s ním pracovat (interakce, filtrování);
- Insight: jedno konkrétní, v datech ověřené zjištění vyplývající z daného grafu;
- Pozn.: jak byla příslušná kategorizace provedena a jaké má omezení.
Cílem tohoto rozdělení je oddělit tři odlišné otázky, které jsou v analytických vizualizacích běžně směšovány do jednoho popisku: jak graf číst, co si z něj odnést, a nakolik mu věřit.
6. Omezení a známé mezery
- Rok obhajoby byl dodatečně doplněn z doplňkového zdroje mimo repozitář (pokrývá všech 555 prací hlavní analýzy); přesné datum obhajoby k dispozici není.
- Web je interaktivně optimalizovaný pro větší obrazovky (desktop/tablet); na mobilu se ovládání interaktivních grafů (chord, heatmapa, síť) používá hůř.
- Fasety „jak se zkoumalo“ a cílová skupina vycházejí výhradně z toho, co autoři explicitně uvedli v klíčových slovech nebo anotaci, nikoli z rozboru celého textu práce. Uvedená čísla jsou proto dolním odhadem skutečného stavu, ne vyčerpávajícím přehledem.
- Kategorizace je založena na regulárních výrazech nad omezeným textovým materiálem (klíčová slova, anotace), ne na strojovém učení ani na rozboru plného textu práce. Přístup je auditovatelný (každé přiřazení lze dohledat na konkrétní pravidlo), ale není neomylný; u hraničních a nejednoznačných případů šlo o subjektivní posouzení, zaznamenané v auditním logu projektu.
- Kategorie „Uživatelé (obecně)“ v rámci cílové skupiny je záměrně široce vymezená sběrná kategorie; zachycuje jakoukoli zmínku slova „uživatel“, a signalizuje tak spíše obecné UX/produktové zaměření práce než konkrétně vymezenou cílovou skupinu.
- Odvozený jazyk práce (čeština/slovenština/angličtina) je určen heuristicky, ne ručně ověřen u každého jednotlivého záznamu.
7. Přehled reprodukovatelnosti
Celý postup od původního exportu po hotový web je řízen posloupností skriptů, z nichž žádný needituje svůj vstup přímo; každý čte předchozí krok a zapisuje nový, samostatný výstup. Zpracování lze díky tomu kdykoli spustit znovu od úplného začátku a ověřit, že výsledek odpovídá popisu v tomto dokumentu.
| Krok | Skript | Vstup | Výstup |
|---|---|---|---|
| Čištění a kategorizace | clean_data.py | DIS_dip_full.csv, kategorie_schema.csv, mimo_hlavni_analyzu.csv, dodatecne_tema.csv, odebrane_tema.csv, preklad_sk_navrh.csv | DIS_dip_full_clean.csv |
| Export dat pro web | export_final_data.py | DIS_dip_full_clean.csv | site/data/theses.json |
| Sestavení stránky | assemble_site.py | site/index.template.html, site/data/theses.json | site/index.html |
Podrobný krokový záznam všech rozhodnutí, včetně úplných tabulek dotčených případů a zdůvodnění, je veden v souboru CISTENI_LOG.md v repozitáři projektu.