VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE FAKULTA INFORMATIKY A STATISTIKY VYŠŠÍ ODBORNÁ ŠKOLA INFORMAČNÍCH SLUŽEB
Data mining v Terminologické databázi knihovnictví a informační vědy (TDKIV) Projekt
Martin Peter Nazeli Abrahamyan Galina Barkova Evgeniy Kalinin Alesia Khimchuk Omir Nugmanov Lukáš Sčislák Praha, květen 2012
Tento projekt je zaměřen na analýzu a dolování dat (jinak „data mining“) v oblasti knihovnických systémů. Zevrubně přibližuje konkrétní dojmy a závěry vycházející z analýzy přístupů a používání systému Národní knihovny. V dokumentaci jsou vystiženy zajímavé, respektive zvláštní případy užití této databáze, zkoumání stálosti uživatelů systému a zároveň časové analýzy související s přístupy uživatelů. Práce jako celek dá čtenáři z oboru kvalitní přehled o tom, co se ve skutečnosti v interní databázi děje a jak je se systémem pracováno.
Předmluva Tato dokumentace je výsledkem společné práce členů týmu, který byl sestaven v zájmu absolvování předmětu s názvem „Projekt“, který je součástí výuky oboru Podnikové informační systémy na Vysoké škole ekonomické v letním semestru. S ohledem na nutnost dodržení časového limitu při zpracovávání tohoto projektu je na začátku dokumentace poskytnut propracovaný použitý harmonogram, který bylo nutno plnit a řídit se jím. Úvodní část je koncipována tak, aby bylo možné pochopit veškeré zkratky a značky bez předchozí znalosti. Na úvod navazuje hlavní část, resp. dvě části, které jsou zaměřeny na statistické rozbory a na samotný data mining. Obě tyto části obsahují řešení konkrétních námětů. V závěru je uveden stručný přehled nejdůležitějších přínosů pro členy týmu, ale zároveň i přehled problémů, s nimiž se kolektiv musel vypořádat.
3
4
Obsah 1
Harmonogram..................................................................................................................... 6
2
Dokumentace projektu ....................................................................................................... 7 2.1
Úvod ............................................................................................................................ 7
2.2
Řešené náměty a úkoly ................................................................................................ 8
2.2.1.
Statistický rozbor vyhledávacích logů ................................................................. 8
Četnost zadávaných výrazů – Zipfův zákon a Paretovo rozdělení ................................. 8 Četnost podle typu vyhledávání ................................................................................... 10 Četnost hledaných a nalezených výrazů ....................................................................... 11 Extrémní dotazy ........................................................................................................... 12 Paretovo rozdělení ........................................................................................................ 13 Paretovo rozdělení ........................................................................................................ 13 Četnost podle doby vyhledávání .................................................................................. 13 2.2.2.
Data mining a business inteligence .................................................................... 14
Shoda hledaného slova s databází ................................................................................ 14 Podíl dotazů na termíny z oblasti ICT .......................................................................... 14 Podíl úspěšných dotazů ................................................................................................ 15 Četnost typů vyhledávání ............................................................................................. 16 CWOK Analýza ........................................................................................................... 17 Podíl nepreferovaných termínů .................................................................................... 18 3
Závěr................................................................................................................................. 19 3.1
Přínos pro členy týmu ................................................................................................ 19
3.2
Problémy při řešení úkolu.......................................................................................... 19
5
1 Harmonogram 14. 3. 2012 Návštěva zadavatelského pracoviště, kontakt se zadavateli. 21. 3. 2012 Formulace zadání, stanovení harmonogramu projektu – předložení vyučujícímu. Inventarizace schopností a znalost členů týmu využitelných v projektu. 4. 4. 2012 Zahájení prací a sestavení detailního plánu následujícího postupu. 18. 4. 2012 1. kontrolní den projektu - prezentace věcných výsledků dosavadního průběhu řešení zadavateli. 20%. 25. 4. 2012 Konzultace vyvstalých nesrovnalostí nebo nejasností se zadavatelem, práce z 33% hotova. 2. 5. 2012 Feedback jednotlivých úkolů vedoucímu, konzultace a upřesnění dalších požadavků. 50%. 9. 5. 2012 2. kontrolní den projektu - příprava na odevzdání výsledků práce zadavateli, fáze kontroly a ladění výsledků. 90%. 21. 5. 2012 Odevzdání výsledků práce zadavateli, odevzdání tištěné dokumentace projektu vyučujícímu. 23. 5. 2012 Veřejná prezentace projektu, odevzdání elektronické verze dokumentace projektu vyučujícímu.
6
2 Dokumentace projektu 2.1
Úvod
Disponujeme daty od zadavatele, která reprezentují vyhledávané údaje, včetně dalších informací. Jedná se o výrazy, které jsou vyhledávány prostřednictvím TDKIV databáze NK. Data byla uložena v souborech Excel. Ještě než se pustíme do samotné analýzy, vysvětlíme si zkratky, které se v datech vyskytují. Data jsou rozdělena do sloupců s názvy: TIME_STAMP – časové razítko – čas, kdy byl dotaz zadán DATUM – datum dotazu ve formátu YYYYMMDD CAS – čas dotazu ve formátu HHMM IP – část IP adresy počítače, ze kterého byl dotaz zadán HITS – počet nalezených záznamů TDKIV a KKL – vysvětlení údajů 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ů Označení rejstříků TDKIV TR – termín/ekvivalent TE – anglický ekvivalent TK – věcná skupina 7
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í)
Řešené náměty a úkoly
2.2
2.2.1. Statistický rozbor vyhledávacích logů Četnost zadávaných výrazů – Zipfův zákon a Paretovo rozdělení Zipfův zákon je zákon o rozdělení četnosti slov v nějakém jazyce: pokud všechna slova v jazyce uspořádáme podle sestupné četnosti jejich používání, četnost n-tého slova bude nepřímo úměrná jeho pořadovému číslu n. Například druhé nejpoužívanější slovo se vyskytne dvakrát méně než první, třetí třikrát atd. Byla zhotovena analýza četnosti výrazů vyhledávaných v databázi TDKIV a zkompletovány níže uvedené výsledky.
Výraz
n
Počet výskytů
1
knihovna
804
2
informace
799
3
rešerše
788
4
Akvizice
765
5
dokument
735
6
anotace
643
7
bibliografie
591
8
abstrakt
466
9
databáze
465
10
kniha
465
11
tezaurus
370
100
Verifikace
95
245
rss
50
2789 web20
6
18829 Žurnalismus Mileny Jesenské Kritický hlas v meziválečné střední Evropě
1
Z tabulky můžeme vidět, že počet výskytů klesá mnohem rychleji, než roste pořadové číslo slova n.
8
Graficky znázorníme výsledek pro prvních 500 slov:
Z grafů je vidět, že slova, které se vyskytují cca 50krát jsou uprostřed grafu. Slova s výskytem 30 mají n = 500. Vidíme, že se výsledek grafu hodně podobá výše zmíněnému Zipfovu pravidlu. Nyní zbývá ověřit, že četnost zadávaných výrazů odpovídá Paretovu pravidlu, tedy že nastává situace, kdy 80% následků způsobuje 20% příčin. Včetně překlepů celkově bylo provedeno 18831 unikátních vyhledávání (znamená to, že mezi 18831 vyhledávání se ani jedno neopakovalo). Vypočítáme, že z toho 20% je cca 3766 slov. Roztřídíme slova podle nejvyhledávanějších a vezmeme si 3766 slov shora (nejpopulárnější). Dále byl proveden výpočet, kolikrát byly tyto výrazy vyhledané (teď už i s opakovanými výsledky). Dostaneme se k číslu 71891, což je 74,65% z celkového počtu vyhledávání. Výsledkem porovnávání byl závěr, že 75% výsledků z celé databáze bylo tvořeno pouze 20 procenty všech možných vyhledávání.
9
Četnost podle typu vyhledávání Četnost podle typu vyhledávání byla nalezena použitím nástrojů pro data mining „STATISTICA“ společnosti StatSoft ČR, s.r.o. Zaprvé jsme museli roztřídit log TDKIV podle typu vyhledávání. Dále jsme udělali rozklad údajů a zjistilo se, že ze všech existujících 12 typů vyhledávání bylo použito pouze 5: 21 - základní vyhledávání (find-b) 22 - vyhledávání CCL (find-c) 25 - zpřesnit dotaz 26 - kombinovat dotaz 31 - vyhledávání protokolem Z39.50. Přičemž podíl typu 21 je 97,84%, 22 - 1,28%, 25 - 0,03%, 31 - 0,85%; typ 26 byl použit pouze jednou což je jedna tisícina jednoho procenta. Závěrem - skoro všichni uživatelé používají jednoduché základní vyhledávání bez ohledu na to, jestli se jim podaří něco najít. Pokud ne, tak většinou z databáze odejdou - skoro žádný uživatel totiž nestuduje návody k vyhledávání, aby našel něco konkrétnějšího a věnoval méně času pátrání po výsledku.
10
Četnost hledaných a nalezených výrazů V tomto případě šlo o nalezení četnosti hledaných a nalezených výrazů v průběhu jedné „session“ pro jednu IP adresu. Pro práci s daty v programu Microsoft Excel byly jako vhodný postup zvoleny „kontingenční tabulky“, protože kontingenční tabulky mohou shrnout velké množství dat různými typy výpočtů, dá se automaticky zbavit duplicit, zjistit vztahy mezi dvěma kategoriálními veličinami atd. Nejprve byla celá tabulka s daty v Excelu označena jako databáze pod určitým názvem. Pak byla vytvořena kontingenční tabulka s popisem řádků IP, Session ID a s hodnotou HITS. Z vytvořené kontingenční tabulky můžeme vidět celkový součet nalezených výrazů (96305) a celkový součet nenalezených výrazů (34979), vydělíme celkový součet nalezených výrazů celkovým součtem nalezených a nenalezených výrazů a dostaneme celkovou četnost hledaných a nalezených výrazů 0,73. Porovnáním sloupců nalezených a nenalezených výrazů jsme zjistili jednotlivou četnost nalezených a nenalezených výrazů. Jednotlivá četnost nalezených a nenalezených výrazů je 1,4.
11
Extrémní dotazy Jako extrémní dotazy do databáze TDKIV jsou chápány dotazy, které mají největší počet „HITS“ (viz Úvod). Použit byl stejný postup jako v předchozím případě. Byla vytvořena kontingenční tabulka a pomocí filtru byly seřazeny dotazy v pořadí od největšího počtu do nejmenšího. Výsledkem je 455 dotazů v databázi TDKIV, které mají více než 200 „hitů“ – tedy kliknutí/návštěv/otevření. Nejvyhledávanější dotaz je „Free-text= informace“ s počtem 114556 hitů. Viz. Tab. 1.
12
Paretovo rozdělení Pomocí statistiky bylo vypočítáno kolik vyhledávání má každá IP adresa. Následně bylo zjištěno, kolik je 20% ze všech IP adres. Výsledkem je 111 IP adres. Zhotovením součtu vyšlo, že z 20% všech IP adres bylo vyhledáno 87 % všech dotazů. Z ostatních 80% bylo vyhledáváno pouze 13 procent všech dotazů. Ze zjištění vyplývá, že: Paretovo pravidlo je nejen potvrzeno, ale ještě přesaženo. Existuje rozsáhlá skupina stabilních častých uživatelů, protože 20% IP adres vyhledávalo 87% dotazů.
Četnost podle doby vyhledávání Četnost podle doby vyhledávání uživatele je uvedena na příkladu 3 IP adres. Všichni uživatelé byli rozdělení podle IP adres. Pomocí filtru kontingenční tabulky bylo dále rozděleno přihlášení podle kódu data a času, který v databázi uživatelé strávili. Výsledný čas bylo nutno spočítat samostatně pro každý den. Výslednými časy jsme získali přehled, jak dlouhou dobu byl uživatel celkově připojen. Průměrně uživatelé v databázi strávili kolem 55 minut. Příklad: Počet spojení 68 17 13
Celková doba strávená v DB 136hod 58min 8hod 15min 18hod 28min
Průměrně v DB na připojení 120 minut 29 minut 85 min
13
2.2.2. Data mining a business inteligence Shoda hledaného slova s databází Veškerá analýza dat byla realizována v Excelu (neduplicitní údaje). Pomocí speciální funkce byly porovnány logy vyhledávaných výrazů (termíny, které uživatelé zadali do databáze) s výpisem obsahu TDKIV (zásobník databáze). Funkce porovnávala každé slovo ze sloupce vyhledávané logy s celým sloupcem výpis obsahu TDKIV, a výstupem byl sloupec, který obsahoval vyhledávané termíny, které se přesně shodují s termíny z databáze. Stejným postupem bylo nalezeno, na které termíny z databáze se uživatelé vůbec neptali.
Podíl dotazů na termíny z oblasti ICT Seznam termínů z oblasti ICT byl vyhledán na stránkách NKP (zadáním zkratek IA, ABC,ABDB do vyhledávacího pole třídník). Následně byly porovnány ICT termíny výše uvedeným postupem se sloupcem shoda vyhledávaných slov s TDKIV. (Počet vyhledávaných ICT termínů vydělen celkovým počtem úspěšně vyhledávaných slov, čímž byl získán podíl.)
POČET VYHLEDÁVANÝCH SLOV Z DATABÁZE TDKIV
2458
POČET DOTAZŮ NA TERMÍNY Z OBLASTI ICT
149
PODÍL DOTAZŮ NA TERMÍNY Z OBLASTI ICT
1/16
14
Podíl úspěšných dotazů Abychom se mohli dozvědět podíl neúspěšných dotazů, bylo nutno použít data s výsledky vyhledávání v databázi, která jsme obdrželi od našeho zadavatele. Našli jsme všechny neúspěšné dotazy a odstranili duplicity. Dalším krokem bylo srovnání neúspěšných dotazů s úspěšnými a porovnání jejich objemu. Podíl neúspěšných dotazů je 36,3%. Graf pro lepší náhled: PODÍL DOTAZŮ
Dotazy úspěšné neúspěšné celkem
Počet 61326 34980 96306
Podíl 63,70% 36,30% 100%
15
Četnost typů vyhledávání Během fáze pokusů a testování jsme dospěli k závěru, že systém v 99,9% případů při změně typu vyhledávání přiřazuje nové Session ID. Aby naše zadání mělo smysl, musíme zaprvé definovat, jak chápeme jednu session, tedy jedno aktuální sezení, v daný moment, na daném PC. To by dávalo smysl, pokud bychom se na to podívali ze strany uživatele: jaké typy využijeme za dobu jednoho připojení. Takže, jaké typy využívá, jedná IP adresa během jednoho dne? Průběžným výsledkem bylo zjištění, že uživatelé používali jenom 5 typů: 21, 22, 25, 26,31. V 70% případů uživatel během jedné Session využíval pouze jeden typ - buď 21, nebo 22. Pokud se uživateli nepovedlo výraz najít, pak pouze v 30% případů zkoušeli uživatelé hledat výraz jako jiný typ. Z těchto 30% dále 48% uživatelů zase zkoušelo typ, který používali předtím (střídali třeba 21 a 22). Co se týká pořadí, tak ho nelze jednoznačně určit. Každý uživatel každý den využívá typy v různém pořadí. U IP adres, které využívají databáze často, začínalo někdy hledání typem 22., jinak ostatní uživatelé většinou začínali vyhledávání typem 21. Četnost v jednotlivých typech v průběhu 1 session je tedy skoro stejná, jako celková četnost typů. Dobře to znázorňuje graf:
16
CWOK Analýza Zaprvé odstraníme nulový počet vyhledávání ve sloupci HITS (list Search KTD). Upravíme do „přijatelného tvaru“ text ve sloupci SEARCH TEXT a odstraníme duplicity. Dále zkopírujeme SEARCH text do zvláštního listu CWOK. Pak tento text rozdělíme dle jednotlivých slov a seřadíme od nejdelšího do nejkratšího. Tím pádem nejdelší věta je obsazena v buňkách B až P. Věta o jedno menší se nachází v rozmezí buněk B, až K. Pokračujeme zprava doleva a skončíme tím, že jedno slovo se rovná jedné větě. Dále zkopírujeme tento výstup a vyčíslujeme ho římskými ciframi od I do XV. Jelikož se jedná o metodu CWOK, musíme přidat celé věty mezi buňky s těmito římskými ciframi. Výstupem je srovnání klíčového slova s celou větou. Např. obrázek ukazuje klíčové slovo „Recepce“ a sousloví „recepce díla vnímání díla přijetí díla“. Další klíčové slovo se nachází ve sloupci S – „díla“ a vedle zase máme větu. Celková databáze CWOK se nachází v rozmezí sloupců Q až AT.
17
Podíl nepreferovaných termínů Zaprvé odstraníme nulový počet vyhledávání ve sloupci HITS (list Search KTD). Upravíme do „přijatelného tvaru“ text ve sloupci SEARCH TEXT a odstraníme duplicity. Dále zkopírujeme SEARCH text do zvláštního listu Analýza. Také upravíme do „přijatelného tvaru“, odstraníme duplicity a oddělíme zvlášť slova obsahující 3 velká písmena. Pak použijeme logickou funkci NEBO pro ověření argumentů ve sloupcích SEARCH_TEXT a Obsah TDKTV. Jako výstup nás zajímá pouze PRAVDA. Celkový počet polí PRAVDA činí 2 363. Jedná se o preferované termíny. Pro zjištění nepreferovaných termínů musíme nastavit filtr ve sloupci Kriterium a zvolit EKV. Celkový počet nepreferovaných termínů činí 349. Procentuální podíl nepreferovaných termínů činí 14, 88 %.
18
3 Závěr Tímto projektem si celý tým ucelil svoje pracovní nebo organizační schopnosti, zjistil v čem je dobrý více a v čem méně. Analyzování a dolování informací z dat je činnost zajímavá a pro návrháře, testery a vývojáře i obohacující, protože na základě zjištěných údajů mohou přizpůsobovat nebo vylepšovat jejich aplikace. Pro společnost vlastnící takovou databázovou aplikaci je také data mining důležitý – zjistí na které skupiny uživatelů se více zaměřit, zdali mají stále uživatele a tak dále. Projekt byl úspěšný, v každém případě byl nalezen nějaký výsledek, ať už pozitivní, nebo překvapivý.
3.1
Přínos pro členy týmu
„Zkušenost s vedením týmu, aby dosáhl nejlepšího výsledku. Pro mě osobně největším přínosem v za prvé byl sledování vedoucího týmu při delegování úkolů, a za druhé praktické zkušenosti analýzy dat a jejích hodnocení.“ „Tento projekt mi změnil názor na to, co všechno se dá s daty dělat. Taky to, že z takového malého množství sloupců (kategorií) se dá vyvodit mnoho informací užitečných, které nejdou na první pohled vidět.“ „Uvědomil jsem si, že se data miningem v budoucnu už zabývat nechci, není to obor pro mě.“ „Možnost pracovat s týmem a řídit jej je pro mě velice cenná, spolupráce týmu mě z 90% potěšila a mile překvapila.“
3.2
Problémy při řešení úkolu
„Při analýze dat bylo těžké najít správný software. Většinou program, který má funkce data mining je placený. Když jsme zkusili analyzovat ručně, pochopili jsme, že rozsah je větší, než jsou možnosti studenta. Ale všechno jsme vyřešili díky aktivní spolupráci a správnému koučování.“ „Nepochopení individuálních úkolů a zdržení při jejích řešení.“
19