Vysoká škola ekonomická v Praze Fakulta informatiky a statistiky Podnikové informační systémy Datamining v bázi KKL Řešitelský tým: Jan Duchaň - vedoucí týmu Jakub Malina - zástupce vedoucího týmu Ondřej Fila Natalya Chernykh Michal Chramosta Karolína Neukirchner
Obsah Zadání projektu... 5 Vysvětlení použitých zkratek... 6 Harmonogram projektu... 9 Inventarizace schopností a znalostí členů týmů... 10 Technická dokumentace řešení projektu... 11 Jmenovitý podíl jednotlivých členů týmu na řešení projektu... 16 Problémy, s nimiž se tým setkal při řešení projektu... 17 Přínos projektu pro členy týmu... 17 Závěr... 18 2 P a g e
Zadavatel Zadavatelem je Národní knihovna České republiky (NK ČR). NK ČR je centrem systému knihoven, vykonává koordinační, odborné, informační, vzdělávací, analytické, výzkumné, standardizační, metodické a poradenské činnosti. Svým rozsahem je NK ČR největší a nejstarší veřejná knihovna v České republice a řadí se mezi nejvýznamnější evropské i světové knihovny. Soubor literatury obsahuje více jak 6 milionů dokumentů. Ročně přibude kolem 70 tisíc nových titulů. 3 P a g e
Zadání projektu Datamining v bázi KKL Datamining znamená v českém jazyce dolování z dat či vytěžování dat. Předně je potřeba si říct, že ze samotného pojmu data mining se stalo populární slovo, které se často nesprávně používá pro jakoukoliv analýzu většího množství dat a jejich dílčí grafickou reprezentaci. Data mining v přesnějším slova smyslu využívá kombinace metod umělé inteligence, strojového učení a statistiky k automatickému nalezení požadovaných vzorů ve velké množině dat a to často podle předem stanoveného datového modelu. Jde skutečně o velmi široký pojem, jehož konkrétnější podoba závisí na dané aplikaci, jako může být například automatické rozpoznávání obličeje, vyhledávání shodných pasáží textu atd. - Use Case diagram sběru zpracovávaných informací - Data pro analýzu jsou vlastně data záznamy z vyhledávacích relací uživatelů databáze KKL, díky kterým máme možnost vyvodit zdánlivě skryté informace, které by pak měly přinést těmto uživatelům další užitek anebo alespoň přehled pro správu KLL. 5 P a g e
Národní knihovna České republiky nám poskytla soubory, ve kterých byla zdrojová data, která bylo nutné exportovat. Databáze knihovnické literatury (KKL) aktuálně obsahuje 67 627 záznamů. Cílem našeho projektu bylo zanalyzovat poskytnutá data a vyvodit závěry, které by mohly být využitelné. Příklad formátu poskytnutých zdrojových dat: Vysvětlení použitých zkratek SESSION_ID Označení relace dotazování uživatele vygenerovaným ID systémem databáze TIME_STAMP časové razítko označení časovým údajem IP IP adresa počítače, ze kterého uživatel databáze přistupuju 6 P a g e
HITS Počet výsledků vrácených databází uživateli na jeho zadaný dotaz TYP událost; ve sloupci jsou uvedeny kódy událostí: 10 hledání záznamy nalezeny 11 hledání dosaženo limitu 12 hledání záznamy nenalezeny 20 vyhledávání z více polí (find-a) 21 základní vyhledávání (find-b) 22 vyhledávání CCL (find-c) 23 pokročilé vyhledávání (find-d) 24 vyhledávání z více bází (find-m) 25 zpřesnit dotaz 26 kombinovat dotaz 29 vyhledávání v rejstřících 31 vyhledávání protokolem Z39.50 32 prohlížení rejstříků protokolem Z39.50 DB báze, ve které byl proveden dotaz: KTD oficiální báze KTDP pracovní báze KTDBN dílčí báze Termíny bez normativního výkladu KTDN dílčí báze Termíny s normativním výkladem SEARCH / SCAN vyhledávání / prohlížení rejstříků 7 P a g e
Označení rejstříků TDKIV TR termín/ekvivalent TE anglický ekvivalent TK věcná skupina AU autor hesla RE redaktor hesla KZ konzultant hesla LK lektor hesla ZD zdroj/norma (kód bez hodnoty např. TR= znamená, že dotaz pouze odklepnut bez zadání) 8 P a g e
Harmonogram projektu Harmonogram navržený vyučujícím: Datum Činnost 20.3.2012 Formulace zadání, stanovení harmonogramu projektu - předložení vyučujícímu 20.3.2012 Inventarizace schopností a znalostí členů týmů, využitelných v projektu 4.4.2012 1. kontrolní den projektu - prezentace věcných výsledků dosavadního průběhu řešení vyučujícímu a zadavateli 9.5.2012 2. kontrolní den projektu - příprava veřejné prezentace a odevzdání výsledků práce 21.5.2012 23.5.2012 Odevzdání výsledků práce zadavateli, odevzdání tištěné dokumentace projektu vyučujícímu Veřejná prezentace projektu, odevzdání elektronické verze dokumentace projektu vyučujícímu Skutečný harmonogram a plán týmu: Datum Činnost Kde Kdo 29.2.2012 Výběr týmu a zadání projektu Škola Tým 7.2.2012 Miniseminář k problematice řešené v projektu Škola 7.3.2012 Zadána zdrojová data pro datamining KKL Škola Tým 19.2.2012 Formulace a zadání projektu SIC Tým 20.3.2012 21.3.2012-28.3.2012 3.4.2012 4.4.2012 Inventarizace schopností členů týmu předání základní dokumentace Výběr vhodného DM SW, porozumění datům, příprava dat, aplikace DM, vyhodnocení výsledků Schůze členů týmu shromáždění výsledků, individuální připomínky, příprava výstupu 1. kontrolní den projektu - prezentace věcných výsledků dosavadního průběhu řešení vyučujícímu a zadavateli SIC Individ. SIC Jan Duchaň Karolína Neukirchner Michal Chramosta Tým Tým Škola Tým 16.4.2012 Úprava dat, doplnění grafů a doplnění dokumentace Škola Tým 9.5.2012 2. kontrolní den projektu - příprava veřejné prezentace a odevzdání výsledků práce 20.5.2012 Úprava nedostatků v projektu + dokumentace Individ. 21.5.2012 23.5.2012 Odevzdání výsledků práce zadavateli, odevzdání tištěné dokumentace projektu vyučujícímu Veřejná prezentace projektu, odevzdání elektronické verze dokumentace projektu vyučujícímu Škola Tým 9 P a g e
Inventarizace schopností a znalostí členů týmů Jan Duchaň organizace týmu, finální úpravy dokumentace, kontrola výsledků, prezentace týmu Jakub Malina doplňování a kompletace dokumentace a postupů od ostatních členů, kontrola Ondřej Fila určení vhodných úprav zdrojových dat, kontrola DM postupů Natalya Chernykh vyhledávání vhodného SW, kontrola úprav zdrojových dat Michal Chramosta provádění DM na zdrojových datech Karolína Neukirchner příprava dokumentace projektu, kontrola výstupu DM Základním předpokladem pro úspěšné dolování dat a využitelné výsledky je znalost a porozumění vstupních dat každým členem týmu. 10 P a g e
Technická dokumentace řešení projektu Podle povahy našich dat jsme se rozhodli, že budeme analyzovat dotazy především co do jejich počtu, což se dá dále využít naším zadavatelem např. pro správné dimenzování obslužného systému. Pokud bychom chtěli analyzovat dotazy z hlediska úspěšnosti je situace mnohem obtížnější. Mohli bychom například zkoumat souvislost mezi délkou textového řetězce a počtem výsledků apod. To ale nemá moc dobrou vypovídající hodnotu. Důležité je, jak nejlépe úspěšnost dotazu definovat. Samotný počet výsledků ještě neříká nic o tom, jestli jsou správné Pro takovou analýzu by bylo potřeba znát nejen počet výsledků, ale především jejich hodnoty. Potom už se dostáváme k opravdovým data mining technikám a především k poměrně složitým algoritmům pro porovnávání textů atd. Pracovat s těmito algoritmy a hodnotit jejich úspěšnost už je záležitost spíše pro studenty kybernetiky a souvisejících oborů. Proto jsme se rozhodli postupovat první cestou a získat následující vypovídající informace. 11 P a g e
Statistické výsledky vyhledávání: Graf 1,2 - Počet hledání/závislost na měsíci v roce 12 P a g e
Graf 3,4 - Počet hledání/závislost na denní době 13 P a g e
Graf 5, 6 - Počet hledání/závislost na dni v týdnu 14 P a g e
Graf 7 Počet hledání/závislost na typu TYP událost; ve sloupci jsou uvedeny kódy událostí: 20 vyhledávání z více polí (find-a) 21 základní vyhledávání (find-b) 22 vyhledávání CCL (find-c) 23 pokročilé vyhledávání (find-d) 24 vyhledávání z více bází (find-m) 25 zpřesnit dotaz 26 kombinovat dotaz 29 vyhledávání v rejstřících 31 vyhledávání protokolem Z39.50 U tohoto grafu nám nastává výše uvedený problém a to sice, že nám zobrazuje pouze počet hitů tzn. výsledků, ale neznáme jejich hodnoty, proto nemůžeme zhodnotit jejich relevanci v celkovém kontextu hledání. Avšak dá se použít jako určité vodítko o rozsáhlosti obsahu databáze v závislosti na typu hledání. 15 P a g e
Jmenovitý podíl jednotlivých členů týmu na řešení projektu Jan Duchaň vedoucí týmu - Vedení a tvorba dokumentace - Tvorba statistických grafů - Příprava prezentací - Prezentace výsledků týmu Jakub Malina zástupce vedoucího týmu - Tvorba dílčích částí dokumentace a její korektura - Úprava dat pro statistické zpracování - Zkoumání funkcionality a ovládání SW Statistica Ondřej Fila - Dílčí statistické zpracování Natalya Chernykh - Zkoumání funkcionality a ovládání SW Statistica Karolína Neukirchner - Tvorba základní dokumentace - Úprava dat pro statistické zpracování - Konzultace s externím poradcem Michal Chramosta - Příprava dat pro DM očištění, odstranění duplicit ze SEARCH 16 P a g e
Problémy, s nimiž se tým setkal při řešení projektu Komunikace v týmu a scházení se k řešení projektu Vhodný klíč pro očištění a přípravu dat. Najít vhodný SW, který by byl funkční pro data mining a byl volně dostupný Přínos projektu pro členy týmu - Řešení problémů při týmové spolupráci - Řešení zajímavého problému - Osvojení přípravných částí pro DM - Zjistili jsme, že od tzv. data-mining programů nelze čekat žádné zázraky. Je jenom na uživateli aby si rozmyslel, jakou závislost chce sledovat, co porovnávat atd. Programy jako rapid miner, lisp miner apod. potom podle zadání pouze provedou výpočet a mají sloužit k jednoduchému a rychlému grafickému znázornění výsledků (Což se mimochodem dá zvládnout i přímo v Excelu a v mnoha ohledech i lépe). - Tvorba statistických grafů - Práce s rozsáhlými daty a metody jak z nich získávat relevantní informace 17 P a g e
Závěr Z námi získaných informací lze navrhnout relevantní řešení dimenzování obslužného systému databáze s ohledem na její vytíženost. Jednoznačně lze říci, že by bylo velice vhodné celý vyhledávací proces a uživatelské rozhraní udělat více uživatelsky přívětivější. V prvním kroku by rozhodně usnadnila práci tolerance zadaných dotazů podobně, jako ji známe např. z portálu google.com. Pomocí strojového učení a statistických metod by nám nabízel vyhledávací engine nápovědu, omezily by se tak chybná hledání, která vznikají překlepy, které byli hlavním zdrojem neúspěšných hledání. Lze říci, že nejužívanějšími typy hledání jsou typy 21, 24, 31 a z těchto typů byl logicky nejúspěšnější typ 21, jelikož se jedná o základní, nespecifikované vyhledávání. 18 P a g e
Vysoká škola ekonomická v Praze Fakulta informatiky a statistiky Podnikové informační systémy Datamining v bázi KKL (Dodatek) Řešitelský tým: Natalya Chernykh Karolína Neukirchner 19 P a g e
Datamining: Zdrojový soubor ve formátu.xls byl importován do databáze MS Access a následně exportován do databáze SQL (použit program MS SQL Server 2005), kde byly zjištěny pomocí vhodně zvolených dotazů následující výsledky: Tabulka sum.hits/typ Tabulka znázorňuje celkový počet úspěšných vrácených výsledků v závislosti na zvoleném typu vyhledávání. Typ vyhledávání 21 (základní vyhledávání (find-b)) vracel v průměru největší počet výsledků vyhledávání, s velkým odstupem následován typy 23, 22 a 31. Naopak nejméně výsledků zaznamenal typ 20. Sloupec sum hits označuje celkový počet úspěšných hledání k danému typu hledání a sloupec TYP typ hledání. 20 P a g e
Tabulka max.hits/typ Tabulka znázorňuje maximální počet vrácených výsledků u každého typu vyhledávání. Z tohoto hlediska byl nejúspěšnější typ 22 (vyhledávání CCL (find-c)), těsně následován typy 21, 31 a 23. Sloupec max hits označuje maximální počet výsledků hledání k danému typu hledání a sloupec TYP typ hledání. Tabulka TYP/count.typ Tabulka znázorňuje počet použití jednotlivých typů vyhledávání. Z tohoto hlediska byl nejfrekventovanější typ 31 (vyhledávání protokolem Z39.50), 24 a 21. Sloupec count.typ označuje počet použití typů hledání a sloupec TYP typ hledání. Tabulka TYP/max(HITS)/SEARCH_TEXT (tabulka exportována do MS Excel) 21 P a g e
Tato Tabulka je rozšířením tabulky max.hits/typ, kde je doplněn i v databázi knihovny hledaný výraz, takže vímě, že nejčastěji hledaným výrazem bylo slovo bu, které nemá vypovídající hodnotu, ale je spíše pokusem, zda vyhledávání v databázi funguje. Prvním smysluplným nejčastěji hledaným výrazem je výraz národní knihovna Tabulka IP/sum.hits (tabulka exportována do MS Excel) Tabulka IP/sum.hits znázorňuje prvních dvacet nejčastěji hledajících IP adres v databázi, které měly největší počet úspěšných hledání. Pro lepší orientaci je pridán i třetí sloupec, který doplňuje informaci, kolik pokusů hledání z jednotlivých IP bylo zaznamenáno. 22 P a g e
Tabulka IP/count.ip (tabulka exportována do MS Excel) Tato tabulka znázorňuje IP adresy, které nejčastěji v databázi hledaly. Je zřejmé, že nejvíce se v databázi hledalo lokálně (adresa 127.x.x.x). Pro lepší souvislost je doplněna daty z předchozí tabulky, kde je k jednotlivým IP adresám přiřazena úspěšnost hledání. Jen pro úplnost tabulka vpravo ukazuje, že celkový počet jedinečných IP adres hledajících v databázi bylo 784. 23 P a g e
Top 30 hledaných výrazů, které jsou seřazené podle počtu vyhledávání. Hledaný výraz Počet hledání Slova-Všechna pole= bu* and ( Kód země vydání= xr or Kód země 8984 vydání= xo and Druh dokumentu= se ) Slova-Všechna pole= národní knihovna 8852 Slova-Všechna pole= knihovna AND národní 8782 Slova-Všechna pole= národní AND Slova-Všechna pole= knihovna 8782 ISBN,ISSN= ")&$((!%!&X" 8762 Slova-Všechna pole= Národní knihovna 8637 Klíčová slova= národn? or státn? AND Klíčová slova= knihovn? and 8538 Kód jazyka dok.= cze Slova-Názvy= alldocuments and Kód země vydání= xr and Druh 8516 dokumentu= BK Slova-Všechna pole= alldocuments and Druh dokumentu= BK and Kód 8431 jazyka dok.= cze Slova-Názvy= alldocuments and Druh dokumentu= BK and Kód jazyka 8413 dok.= cze Druh dokumentu= alldocuments and Druh dokumentu= BK and Kód 8355 jazyka dok.= cze Stavové kódy= "an*" 8261 Slova-Všechna pole= knihovni 7753 W-All fields= čtenář? AND W-All fields= knihovn? 7640 Klíčová slova= knihovny and Druh dokumentu= BK 7283 Klíčová slova= knihovní 7151 W-All fields= služby 6889 Slova-Všechna pole= služby 6885 Slova-Všechna pole= služb* 6870 Slova-Názvy= Knihovny 6335 Kód jazyka dok.= eng and Druh dokumentu= BK 6287 Slova-Všechna pole= vzděláv? or škol? 6162 Slova-Všechna pole= The Library 6021 Slova-Všechna pole= papík or knih 5927 Slova-Všechna pole= knih 5844 Slova-Všechna pole= knihovnictví 5657 W-All fields= knihovnictví 5521 Slova-Všechna pole= kultur* 5487 Klíčová slova= dokument? 5443 W-All fields= organizace OR W-All fields= fondů 5367 24 P a g e
Závěr Výsledky projektu by šly shrnout do následujících závěru. Datamining v generálním pojetí je jistě považován za efektivní řešení k optimalizacím, ovšem toto nelze vhodně použít na zdrojový soubor dodaný zadavatelským týmem. I přes veškeré procesy směřující k očištění dat, odstranění redundance a ostatních nežádoucích jevů, výsledný analyzovaný soubor sice poskytne po dataminingu velké množství výstupů, které ovšem nelze úspěšně aplikovat na zlepšení chodu databáze. Prostřednictvím softwaru pro analýzu dat jsme zjistili nejčastější hledané výrazy, nejčastěji hledající IP, IP s největším množstvím HITů a nespočet dalších výstupů, ale po praktické stránce silně pochybujeme, že tento výstup a jeho aplikace v nějakém směru pomůže zadavatelskému týmu k vylepšení služeb uživatelům. K tomu by mohlo spíše dojít vytvořením více user friendly rozhraní (např. automatické doplňování), než analýzou zadávaných dat. Z výsledků lze například zcela jednoznačně určit, že nejužívanějšími typy hledání jsou typy 21, 24, 31 a z těchto typů byl logicky nejúspěšnější typ 21, jelikož se jedná o základní vyhledávání. Dále lze určit pomocí text-miningu nejhledanější slovní spojení a slova, například slova knihovna, služby, dokument, ale stále zůstává otázkou celý smysl analýzy dat. Pro sestavení žebříčku a jakousi analýzu zájmu uživatelů by výsledky hledání šly použít spíše pro komerční účely (zadavatelský tým je ovšem nekomerční organizace), technický přínos je ale nulový. Výsledek, ať už je jakýkoli nijak neovlivní chod databáze, ani žádným způsobem nepřispěje k jejímu zlepšení. Snad jen časová analýza využití analýza pokusů hledání, případně analýza užití jednotlivých adres by mohla přispět k posílení připojení vyhledávacího serveru k síti ve špičkách, i když je zde i patrné časté využití lokální IP 127.x.x.x. ukazuje, že zátěž serveru je tak malá, že tyto úkony by zvládl i standardní server nejnižší cenové hladiny a není třeba dodatečných investic. Pro ilustraci v době nejvyššího zatížení serveru vyhledáváním (úterý a čtvrtek kolem 10:00 hodin) byly na server průměrně ne více než deset přístupů za hodinu (pokud budeme hodně optimističtí). Tento (ne)zájem o vyhledávání na serveru zadavatelského týmu tak snad ani není třeba analyzovat za účelem technické způsobilosti databáze. 25 P a g e