DBI010 - Dokumentografické Informační Systémy
Transkript
DBI010 - Dokumentografické Informační Systémy
Dokumentografické Informační Systémy Slidy k přednášce NDBI010 KSI MFF UK http://www.ms.mff.cuni.cz/~kopecky/vyuka/dis/ Verze 10.05.05.13.20 Literatura (skripta) • Dokumentografické informační systémy – Pokorný J., Snášel V., Kopecký M.: • Nakladatelství Karolinum, UK Praha, 2005 – Pokorný J., Snášel V., Húsek D.: • Nakladatelství Karolinum, UK Praha, 1998 • Textové informační systémy – Melichar B.: • Vydavatelství ČVUT, Praha, 1997 • Introduction to Information Retrieval – Christopher D. Manning, Prabhakar Raghavan and Hinrich Schütze • Cambridge University Press, 2008 • http://informationretrieval.org/ DBI010 - DIS - MFF UK Další odkazy • Computer Algorithms - String Pattern Matching Strategies, – Jun Ichi Aoe, • IEEE Computer Society Press 1994 • Concept Decomposition for Large Sparse Text Data using Clustering – Inderjit S. Dhillon, Dharmendra S. Modha • IBM Almaden Research Center, 1999 DBI010 - DIS - MFF UK Další odkazy (články) • The IGrid Index: Reversing the Dimensionality Curse For Similarity Indexing in High Dimensional Space for Large Sparse Text Data using Clustering – Charu C. Aggrawal, Philip S. Yu • IBM T. J. Watson Research Center • The Pyramid Technique: Towards Breaking the Curse of Dimensionality – S. Berchtold, C. Böhm, H.-P. Kriegel: • ACM SIGMOD Conference Proceedings, 1998 DBI010 - DIS - MFF UK Další odkazy (články) • Affinity Rank: A New Scheme for Efficient Web Search – Yi Liu, Benyu Zhang, Zheng Chen, Michael R. Lyu, Wei-Ying Ma • 2004 • Improving Web Search Results Using Affinity Graph – Benyu Zhang, Hua Li, Yi Liu, Lei Ji, Wensi Xi, Weiguo Fan, Zheng Chen1, Wei-Ying Ma • Efficient computation of pagerank – T.H. Haveliwala • Technical report, Stanford University, 1999 DBI010 - DIS - MFF UK Další odkazy (starší) • Introduction to Modern Information Retrieval – Salton G., McGill M. J.: • McGRAW-Hill 1981 • Výběr informací v textových bázích dat – Pokorný J.: • OVC ČVUT Praha 1989 DBI010 - DIS - MFF UK Přednáška č. 1 Úvod do DIS Přehled problematiky měření informativnosti Vznik DIS • 50. léta 20. stol. • Postupná automatizace postupů používaných v knihovnictví • Nyní samostatná podčást IS – Faktografický IS • Zpracování informací s definovanou vnitřní strukturou (nejčastěji v podobě tabulek) – Dokumentografický IS • Zpracování informací v podobě textu v přirozeném jazyce bez pevné vnitřní struktury DBI010 - DIS - MFF UK Práce s DIS 1. Zadání dotazu 2. Porovnání 3. Získání seznamu odpovídajících dokumentů 4. Ladění dotazu 5. Vyţádání dokumentu 6. Obdrţení textu 1 3 2 4 DBI010 - DIS - MFF UK DIS 5 6 Struktura DIS I) Systém zpřístupnění dokumentů • 1 Vrací sekundární informace • • • 3 2 Autor Název ... 4 5 II) Systém dodání dokumentů • I) 6 Někdy není řešen pomocí SW DBI010 - DIS - MFF UK II) Vyhodnocení dotazu • Přímé porovnání náročné na čas Dok1 Porovnání Dotaz Doki1 DBI010 - DIS - MFF UK Vyhodnocení dotazu • Nutné vytvoření modelu dokumentu • Ztrátový proces, obvykle zaloţený na identifikaci slov v dokumentech • Výsledkem strukturovaná data vhodná pro porovnávání Dok1 Indexace DBI010 - DIS - MFF UK X1 Vyhodnocení dotazu • Dotaz se upraví do odpovídající podoby Porovnání Dotaz • Následně se porovná s modelem dokumentů Doki1 X1 DBI010 - DIS - MFF UK Předzpracování textu • Vyhledávání probíhá nad vytvořeným modelem efektivněji, ale můţe pouţít jen informace obsaţené v modelu. • Cílem je vytvořit model, který by zachoval co nejvíce informací, obsaţených v původním modelu. • Problémem je řada nejednoznačností. • Dosud neřešitelné nároky na encyklopedické i asociativní znalosti. DBI010 - DIS - MFF UK Porozumění textu • Posloupnost slov v přirozeném jazyce. • Kaţdé slovo zastupuje pro autora nějakou představu, kterou v něm slovo vyvolá - význam. • Tyto představy reprezentují reálné předměty. ... DBI010 - DIS - MFF UK Porozumění textu • Synonymie slov – Více slov můţe mít pro autora stejný význam • krychle = kostka • buldozer = nakladač ... DBI010 - DIS - MFF UK Porozumění textu • Homonymie slov – Jedno slovo můţe mít pro autora několik významů • • • • taška: střešní, nákupní koruna: platidlo, královská k., k. stromu třída: školní, kategorie v teorii mnoţin los: zvíře, poukázka ke slosování ... DBI010 - DIS - MFF UK Porozumění textu • Homonymie slov – Jedno slovo můţe pouţívat stejný tvar pro různé pády a další gramatické jevy (gramatická homonymie) • kontroly: 1. p. m.č., 2. p. j.č. není zřejmé, zda se jedná o jednu, nebo více kontrol – Jeden tvar slova můţe mít různý význam • • • • • plesy: podst. jm. ples, podst. jm. pleso žena: podst. jm. žena, sloveso hnát hnát: sloveso hnát, podst. jm. hnát tři: číslovka tři, sloveso třít pět: číslovka pět, sloveso pět DBI010 - DIS - MFF UK Porozumění textu • Významy slov se mohou překrývat. – Hierarchicky • zvíře > kůň > hřebec – Asociace • kalkulátor ~ počítač ~ procesor ... DBI010 - DIS - MFF UK Porozumění textu • Jednotlivá přiřazení jsou navíc závislá na subjektu, který dokument píše nebo čte. – Dva lidé mohou jednomu slovu přikládat zcela nebo jen částečně jiný význam. – Dva lidé si i pod stejným významem mohou představit jiný konkrétní předmět nebo mnoţinu předmětů. • máma, pokoj, ... • Výsledkem je situace, kdy dva různí čtenáři nemusí přečtením získat ani stejnou informaci jako autor, ani stejnou informaci navzájem. DBI010 - DIS - MFF UK Porozumění textu • Homonymie a nejednoznačnosti narůstají při přechodu od slov k větám. – Homonymie vlastních jmen na začátku věty • Dohnal zvítězil. (Čtrnáctý zvítězil.) • Plk. Dohnal předešel gen. Kvapila velmi výrazně. – jedna, dvě, nebo tři věty? – Homonymie spojky a v předmětu věty • Funkce rezistoru a zesilovače v radiotechnice. (funkce rezistoru v radiotechnice) a (funkce zesilovače v radiotechnice) (funkce rezistoru) a (funkce zesilovače v radiotechnice) (funkce rezistoru) a (zesilovače v radiotechnice) – Homonymie podmětu a předmětu • Popílek přikryl sníh. – co leţí navrchu? DBI010 - DIS - MFF UK Porozumění textu • Příklad české věty s více gramaticky moţnými významy – viz např. Podivné fungování gramatiky, http://www.scienceworld.cz/sw.nsf/lingvistika – věta „Ženu holí stroj“ můţe - podle volby přísudku ve větě - znamenat: • • • • Poháním stroj pomocí hole (hnát) Ţena pouţívá depilační přístroj (holit) Návod k nekonvenčnímu způsobu oblékání (strojit) … a další DBI010 - DIS - MFF UK Porozumění textu • Příklad anglické věty s více gramaticky moţnými významy – viz např. Podivné fungování gramatiky, http://www.scienceworld.cz/sw.nsf/lingvistika – věta „Time flies like an arrow“ můţe - podle volby přísudku ve větě - znamenat: • Čas letí jako voda (fly) • Časové mouchy/zipy mají rády šíp (like) • … a další DBI010 - DIS - MFF UK Předzpracování textu • Částečným řešením problému porozumění textu je zahrnutí lingvistické analýzy – Disambiguace • Určení správného významu slova ve větě – Na základě gramatiky (slovesa vs. podst. jm.) – Na základě kontextu (komplikovanější). » Tančila na Hasičském plese. » Tančila na Štrbském plese. DBI010 - DIS - MFF UK Předzpracování textu • Částečným řešením problému porozumění textu je zahrnutí lingvistické analýzy – Lemmatizace • Přiřazení správného lemmatu jednotlivým slovům – Základní tvar slova (1. p. j.č., infinitiv, ...) – Slovní druh, osoba, číslo, čas, vid, ... – Informace z větného rozboru, (podmět, předmět, ...) DBI010 - DIS - MFF UK Předzpracování textu • Dalšími moţnosti, které lingvistika v různé míře nabízí jsou – Označování víceslovných spojení - kolokací • Druhá světová válka, ... – Zatím velmi problematické nahrazování zájmen odpovídajícími podstatnými jmény DBI010 - DIS - MFF UK Přesnost a úplnost • Výsledkem nejednoznačností ţádný existující DIS nedává ideální výsledky • Po zobrazení odpovědi na dotaz lze určit následující – Počet vrácených dokumentů Nv • O nich si DB myslí, ţe jsou relevantní, odpovídají dotazu – Počet vrácených relevantních dok. Nvr • O nich si tazatel myslí, ţe uspokojují jeho poţadavky – Počet všech relevantních dok. v DB Nr • Problematické u velkých DB DBI010 - DIS - MFF UK Přesnost a úplnost • Dva DIS mohou vrátit na shodný dotaz různé odpovědi, které se nemusí překrývat ani v jediném vráceném dokumentu Jak porovnat kvalitu odpovědí navzájem? Dokumenty v databázi DBI010 - DIS - MFF UK Vrácené v DIS2 Relevantní dokumenty Vrácené v DIS1 Přesnost a úplnost • Dva tazatelé mohou mít při poloţení shodného dotazu různý názor na relevanci vrácených dokumentů Jak vyhovět subjektivnímu názoru tazatelů? Dokumenty v databázi DBI010 - DIS - MFF UK Relevantní Relevantní Vrácené dok. Přesnost a úplnost • Kvalita výsledné mnoţiny dokumentů se měří na základě těchto čísel – Přesnost (Precision) • P = Nvr / Nv • Pravděpodobnost, ţe dokument zařazený v odpovědi je skutečně relevantní – Úplnost (Recall) • R = Nvr / Nr • Pravděpodobnost, ţe skutečně relevantní dokument je zařazený v odpovědi DBI010 - DIS - MFF UK Přesnost a úplnost • Koeficienty jsou opět závislé na subjektivním názoru tazatele • Dokument vrácený na výstupu můţe uspokojovat poţadavky dvou uţivatel, kteří poloţili stejný dotaz, různou měrou. DBI010 - DIS - MFF UK Přesnost a úplnost • V ideálním případě – P=R=1 – V odpovědi jsou zařazeny právě a pouze všechny relevantní dokumenty 1 Optimum • V běţném případě – Odpověď na první verzi dotazu není ani přesná, ani úplná Počáteční odpověď 0 0 DBI010 - DIS - MFF UK 1 Přesnost a úplnost • Ladění dotazu R – Postupná modifikace dotazu s cílem zvýšit kvalitu odpovědi 1 Optimum • Teoreticky je sice moţné dosáhnout optima, ale … 0 P 0 DBI010 - DIS - MFF UK 1 Přesnost a úplnost • … vlivem víceznačností jsou v praxi oba koeficienty na sobě nepřímo závislé, tj. P*R konst. < 1 – Při snaze zvýšit P se na výstup dostane méně relev. dokumentů. – Při snaze zvýšit R se na výstup dostane s více relev. dok. i mnohem více těch nerelevantních. R 1 Optimum 0 P 0 DBI010 - DIS - MFF UK 1 Kritérium predikce • Při formulaci dotazů je potřebné uhádnout, které termy (slova) byly v dokumentu autorem pouţity pro vyjádření dané myšlenky – Problémy m.j. způsobují • Synonyma (autor mohl pouţít synonymum, které si tazatel při formulaci dotazů ani nemusí neuvědomí) • Překrývající se významy slov • Opisy jedné situace jinými slovy DBI010 - DIS - MFF UK Kritérium predikce • Částečným řešením je zařazení tezauru, který obsahuje – Hierarchie slov a jejich významů – Synonyma slov – Asociace mezi slovy • Tazatel můţe tezaurus vyuţít při formulaci svých dotazů DBI010 - DIS - MFF UK Kritérium predikce • Při ladění dotazů má uţivatel tendenci postupovat konzervativně – V dotazu zůstávají často ty jeho části, které uţivatele napadly na začátku a mění se jen podruţné části, které nekvalitní výsledek nemusí nijak zásadně ovlivnit • Vhodné je uţivateli pomoci s odstraněním nevhodných částí dotazu, které nepopisují relevantní dokumenty a naopak s přidáváním formulací, které relevantní dokumenty popisují DBI010 - DIS - MFF UK Kritérium maxima • Tazatel obvykle není schopen (nebo ochoten) procházet příliš mnoho dokumentů do té míry, aby se rozhodl, zda jsou pro něj relevantní nebo ne • Obvykle 20-50 podle velikosti Potřeba nejen dokumenty rozlišovat na odpovídající/neodpovídající dotazu, ale řadit je na výstupu podle míry předpokládané relevance DBI010 - DIS - MFF UK Kritérium maxima • V důsledku kritéria maxima se při ladění dotazu uţivatel obvykle snaţí zvýšit přesnost – Malé mnoţství dokumentů v odpovědi, obsahující co největší poměr relevantních dokumentů „lepší“ „horší“ Vr. Rel. Rel. Vr. • Některé oblasti pouţití vyţadují co nejvyšší přesnost i úplnost – Právnictví DBI010 - DIS - MFF UK Přesné vyhledávání vzorků Proč vyhledávat vzorky textu • Při tvorbě indexu dokumentů či dotazu – Pro zahrnutí pouze určité, předem dané mnoţiny slov (lemmat) z dokumentu při tzv. řízené indexaci – Pro vynechání předem dané mnoţiny slov (lemmat) jako jsou spojky, částice, zájmena a podobně • Při zobrazování sekundárních a primárních dokumentů v odpovědi – Nalezení a zvýraznění slov (lemmat) pouţitých v dotazu • … DBI010 - DIS - MFF UK Algoritmy dle předzpracování Kategorie dle předzpracování Text NE ANO Vzorek NE ANO I. II. III. IV. I - Triviální algoritmus (Naivní algoritmus) (Algoritmus hrubé síly) II - Ostatní (vhodné pro DIS) Dále členěné dle • Počtu vyhledávaných vzorků – 1, N, • Směru hledání – Sousměrné – Protisměrné DBI010 - DIS - MFF UK Algoritmy II Podkategorie skupiny II Počet vzorků 1 N nekon. Směr Sousměrné Protisměrné KMP BM AC CW KA 2CKAS • Sousměrné porovnávají vzorek zleva doprava, tj. souhlasně se směrem procházení celého dokumentu. • Protisměrné obráceně DBI010 - DIS - MFF UK Přesné vyhledávání vzorků Hledání jednoho vzorku v textu Triviální algoritmus • Délka textu t ozn. m, délka vzorku v ozn. n • Při neshodě i-té pozice textu s j-tou pozicí vzorku – Posun vzorku o jednu pozici doprava, prohledávání od začátku vzorku • Časová sloţitost je v průměrném případě o(m*n), např. pro hledání „an-1b“ v „am-1b“ • Pro přirozený jazyk průměrně m*konst operací, tedy o(m) Text a b c c b a b c a bb c a ab c cbab cbbb a b c c Před pos. a b c c b a b c b b b Po posunu a b c c b a b c b b b DBI010 - DIS - MFF UK konst je malé číslo (jednotky), závislé na jazyku Přednáška č. 2 Knuth-Morris-Prattův algoritmus • Sousměrné vyhledání jednoho vzorku • Oproti naivnímu přístupu eliminuje porovnávání jiţ jednou zkontrolované části textu • Vzorek je posunut co nejméně tak, aby část, která zůstane pod jiţ zkontrolovanou částí, s ní byla shodná DBI010 - DIS - MFF UK KMP algoritmus Triviální algoritmus a b c c b a b c a bb c a ab c cbab cbbb a b c c Text Před pos. a b c c b a b c b b b Po posunu a b c c b a b c b b b KMP a b c c b a b c a bb c a ab c cbab cbbb a b c c Text Před pos. a b c c b a b c b b b abccbabcbbb Po posunu DBI010 - DIS - MFF UK KMP algoritmus • Před pozicí neshody zůstane vlastní prefix jiţ prohledané části vzorku • Musí být shodný s postfixem této části • Nejdelší takový určuje nejmenší posun Text a b c c b a b c a bb c a ab c cbab cbbb a b c c Před pos. a b c c b a b c b b b abccbabcbbb Po posunu DBI010 - DIS - MFF UK KMP algoritmus Text a b c c b a b c a b b c a a bc c ba bc bbba b c c Před posunem a b c c b a b c b b b Po posunu a b c c b a b c b b b a b c c b a b c b b b a b c c b a b c b b b a b c c b a b c b b b a b c c b a b c b b b a bc c ba bc bbb DBI010 - DIS - MFF UK KMP algoritmus • Pokud – Vzorek v se na pozici j neshoduje s textem t – Nejdelší vlastní prefix zkontrolované části vzorku, rovnající se postfixu zkontrolované části má délku k • Potom – Po posunu zůstane k znaků vzorku před pozicí porovnávání – Vzorek se začne porovnávat od pozice k+1 • Opravné pozice pro chyby na jednotlivých pozicích j jsou uloženy v pomocném poli P • V tomto případě P[j] = k+1 DBI010 - DIS - MFF UK KMP algoritmus begin {KMP} m := length(t); n := length(v); i := 1; j := 1; while (i <= m) and (j <= n) do begin while (j > 0) and (v[j] <> t[i]) do j := P[j]; inc(i); inc(j); end; {while} if (j > n) then {nalezen na pozici i-j+1} else {nenalezen} end; {KMP} DBI010 - DIS - MFF UK Určení pole P pro KMP • P[1] = 0 • Pokud známe opravy pro pozice 1 .. j-1, je snadné spočítat opravu pro pozici j – P[j-1] obsahuje opravu pro pozici j-1. Tzn., že P[j-1]-1 znaků ze začátku vzorku se shoduje se stejným počtem znaků před j-1 ní pozicí ve vzorku DBI010 - DIS - MFF UK Určení pole P pro KMP 1 2 3 4 5 6 7 8 9 1011 Vzorek a b c c b a b c b b b P 0 1 1 1 1 1 2 ? DBI010 - DIS - MFF UK Určení pole P pro KMP • Pokud se také j-1 ní pozice vzorku shoduje s P[j-1] ní pozicí, může se prefix prodloužit a tedy správná hodnota pro P[j] je o jedna vyšší než předchozí. DBI010 - DIS - MFF UK Určení pole P pro KMP 1 2 3 4 5 6 7 8 9 1011 Vzorek a b c c b a b c b b b P 0 1 1 1 1 1 2 3 DBI010 - DIS - MFF UK Určení pole P pro KMP • Pokud se j-1 ní a P[j-1] ní pozice vzorku neshodují, došlo by po chybě a následném posunu vzorku k situaci, že nebude souhlasit znak před pozicí na které se bude pokračovat • Pro chybu na této předchozí pozici je však již známa oprava (čísla P[1] .. P[j-1] jsou již spočtena) DBI010 - DIS - MFF UK Určení pole P pro KMP • Je nutné sledovat opravy počínaje j-1 ní pozicí tak dlouho, dokud se j-1 ní pozice vzorku neshoduje s pozicí, na kterou odkaz směřuje, nebo dokud nedojdeme na konec odkazů (hodnota 0) DBI010 - DIS - MFF UK Určení pole P pro KMP 1 2 3 4 5 6 7 8 9 1011 Vzorek a b c c b a b c b b b P 0 1 1 1 1 1 2 34 ? DBI010 - DIS - MFF UK Určení pole P pro KMP 1 2 3 4 5 6 7 8 9 1011 Vzorek a b c c b a b c b b b Posun pro P[j]=P[j-1]+1 a b c c b a b c b b b Posun pro chybu na 4. pozici Posun pro chybu na 1. pozici a b c c b a b c b b b a b c c b a b c b b b DBI010 - DIS - MFF UK 0 1 1 1 1 1 2 34 ? P Určení pole P pro KMP - algoritmus begin p[1] := 0; n := length(v); j := 2; while (j <= n) do begin k := j-1; l := k; repeat l := p[l]; until (l = 0) or (v[l] = v[k]); p[j] := l+1; inc(j); end; end; DBI010 - DIS - MFF UK KMP algoritmus • Časová složitost algoritmu je o(m+n). • V textu se nikdy nevrací. • Při posunutí vzorku znovu porovnává stejnou pozici, ale posunů vzorku nemůže být více než o(m). • Stejně tak časová složitost předzpracování je o(n). DBI010 - DIS - MFF UK Optimalizace KMP • Pomocné pole P je moţné optimalizovat • Pokud je znak v[j] shodný s v[P[j]], dostal by se pod kolizní pozici v textu posunem znak shodný s tím, který kolizi způsobil. • Opravu je moţné zohlednit ve druhém poli P’ s hodnotou P’[j]=P’[P[j]], jinak P’[j]=P[j] V abccbabcbbb • Pole P[j] není potom při P 01111123411 vlastním hledání potřeba P’ 0 1 1 1 1 1 1 1 4 1 1 DBI010 - DIS - MFF UK Boyer-Moorův algoritmus • Protisměrné vyhledání jednoho vzorku s předzpracováním vzorku – vzorek přikládá k textu postupně zleva doprava – znaky vzorku se porovnávají zprava doleva DBI010 - DIS - MFF UK Boyer-Moorův algoritmus • Pokud nedojde ke shodě na pozici V[n-j] vzorku s textem na pozici T[i-j]=x – – – – n je délka vzorku, i je pozice konce vzorku v textu, j=0..n-1 xX, X je abeceda • Vzorek se posune o SHIFT[n-j,x] znaků doprava • Začne se znovu od j=0, tedy od konce DBI010 - DIS - MFF UK Boyer-Moorův algoritmus • Existuje více definic pro SHIFT[n-j,x] • Varianta 1: Pomocné pole SHIFT[0..n-1,X] je pro pozici ve vzorku a znak x abecedy X definováno následovně: – Co nejmenší posun takový, aby se pod právě porovnávanou pozici v textu dostal odpovídající znak x vzorku. – Pokud se znak, který kolizi způsobil, ve zbývající levé části vzorku nevyskytuje, posune se vzorek těsně za testovanou pozici. DBI010 - DIS - MFF UK Boyer-Moorův algoritmus (1) • Časová sloţitost je v průměrném případě o(m*n), např. pro hledání „ban-1“ v „am-nban-1“ • Pro velké abecedy a vzorky s malým počtem různých znaků (např. přirozené jazyky) je průměrná časová sloţitost o(m/n) DBI010 - DIS - MFF UK Boyer-Moorův algoritmus (1) • Příklad vyhledávání: T ROP I C K ÝM O VOC E M J E I AN AN AS . AN AN AS AN AN AS AN AN AS AN AN AS AN AN AS AN AN AS DBI010 - DIS - MFF UK Boyer-Moorův algoritmus (1) • Definice SHIFT pro slovo ’ANANAS’ – Plné šipky znázorňují úspěšné porovnání – Dvojité znázorňují posun koncového znaku na místo počátečního – Neuvedené znamenají posun za kolizní pozici A N A A N A N A N N A DBI010 - DIS - MFF UK N A A N S S A Boyer-Moorův algoritmus (1) • Pro úsporu místa x{‘A’,’N’,’S’,’X’} – ‘X‘ zastupuje všechny znaky nevyskytující se ve vzorku • Hodnoty s „+“ označují velikost posunu • Hodnoty bez „+“ označují novou hodnotu j hodnota j 0 1 2 3 4 5 6 ‘A‘ +1 2 +1 4 +1 6 vzorek ‘N‘ +2 +1 3 +1 5 +1 byl DBI010 - DIS - MFF UK ‘S‘ 1 +5 +4 +3 +2 +1 úspěšně ‘X‘ +6 +5 +4 +3 +2 +1 nalezen Porovnání na umělém příkladu Text Velikost #slov #různých slov ('a'rnd(200)'b ')1000 100 KB 1 000 200 DBI010 - DIS - MFF UK Porovnání na umělém příkladu Text ('a'rnd(200)'b ')1000 Velikost 100 KB #slov 1 000 #různých slov 200 #porovnání - Triv. 24 128 586 DBI010 - DIS - MFF UK Porovnání na umělém příkladu Text ('a'rnd(200)'b ')1000 Velikost 100 KB #slov 1 000 #různých slov 200 #porovnání - Triv. 24 128 586 #porovnání - KMP 885 747 3,7% DBI010 - DIS - MFF UK Porovnání na anglickém textu Text Velikost #vzorků #různých vzorků Slova Anglický 130 KB 18 075 1 570 Pozn: různý vzorek nalezen poprvé aţ na své původní pozici DBI010 - DIS - MFF UK Porovnání na anglickém textu Slova Text Anglický Velikost 130 KB #vzorků 18 075 #různých vzorků 1 570 #porovnání - Triv. 256 799 832 DBI010 - DIS - MFF UK Porovnání na anglickém textu Slova Text Anglický Velikost 130 KB #vzorků 18 075 #různých vzorků 1 570 #porovnání - Triv. 256 799 832 #porovnání - KMP 255 942 030 99,7% DBI010 - DIS - MFF UK Porovnání na anglickém textu Slova Text Anglický Velikost 130 KB #vzorků 18 075 #různých vzorků 1 570 #porovnání - Triv. 256 799 832 #porovnání - KMP 255 942 030 99,7% #porovnání - BM 50 114 658 19,5% DBI010 - DIS - MFF UK Porovnání na anglickém textu Slova Dvojslova Text Anglický Anglický Velikost 130 KB 130 KB #vzorků 18 075 9 038 #různých vzorků 1 570 4 395 #porovnání - Triv. 256 799 832 433 721 058 #porovnání - KMP 255 942 030 99,7% 430 220 025 99,2% #porovnání - BM 50 114 658 19,5% 52 046 084 12,0% DBI010 - DIS - MFF UK Porovnání na anglickém textu Text Velikost #vzorků #různých Triv. KMP BM • • • Slova Anglický 130 18 075 1 570 256 799 832 255 942 030 50 114 658 Dvojslova Anglický 130 9 038 4 395 433 721 058 430 220 025 52 046 084 Nárůst Nárůst na vzorek na vzorek relativně ke KMP 3,3777 1,0048 3,3617 *) 1,0000 2,0770 0,6178 Vzhledem k linearitě KMP můţeme předpokládat, ţe kaţdý z dvouslovných vzorků se našel v průměru 3,3617 krát dále od začátku textu neţ u vzorků jednoslovných BM i při 3,3617 krát větší vzdálenosti spotřeboval jen 2,0770 krát větší počet operací Na prohledání stejně velkého objemu textu tedy potřebuje při dvojnásobném prodlouţení vzorků jen 61,78% operací DBI010 - DIS - MFF UK Boyer-Moorův algoritmus (2) • Jiná – efektivnější – varianta BM • zaloţena na dvou jednorozměrných polích P1 a P2 místo jednoho dvojrozměrného • P1 obsahujexX posun, který pod kolizní pozici zarovná poslední výskyt znaku x ve vzorku a nastaví pozici porovnání na konec vzorku. Pokud se x ve vzorku nevyskytuje, je tedy P1[x] rovno délce vzorku. DBI010 - DIS - MFF UK Boyer-Moorův algoritmus (2) • P2 obsahuje pro kaţdou pozici j ve vzorku délku nejmenšího moţného posunu, která pod jiţ úspěšně porovnanou příponu vzorku na pozicích j+1 aţ m zarovná shodný podřetězec vzorku. • Pokud se nejpravější výskyt podřetězce patj+1…patm nachází na pozici nvp(j), potom P2[j] = m+1 - nvp(j). • Pokud se podřetězce patj+1…patm ve vzorku nenachází, hledá se nejdelší předpona vzorku shodná s příponou podřetězce patj+1…patm DBI010 - DIS - MFF UK Boyer-Moorův algoritmus (2) • Posun shift(j, x) je definován výrazem max(P1[x],P2[j]) – Nemá cenu zarovnat kolizní znak, pokud se se vzorkem neshoduje zkontrolovaná část textu a naopak DBI010 - DIS - MFF UK Boyer-Moorův algoritmus (2) BM(2) Text a b c c b a b a c bb c abba cbbab cbb a b c c Před pos. b b a c b b a b c b b bbacbbabcbb Po posunu BM(2) a b c c b a a b c bb c abba cbbab cbb a b c c Text Před pos. b b a c b b a b c b b bbacbbabcbb Po posunu DBI010 - DIS - MFF UK Boyer-Moorův algoritmus (2) • procedure InitBM(const pat: string; var P1: ShiftArray1; var P2: ShiftArray2) var m, x, k, l: integer; KMP: KmpArray; NVP: NvpArray; begin {nejprve zkonstruujeme pole P1} m := length(pat); for x := 1 to ALPHABET_SIZE do P1[x] := m; for j := 1 to m do P1[pat[j]] := m-j; {oprav posun pro znak pat[j]} {nyní zkonstruujeme postupně pole P2} for j := 1 to m do NVP[j] := j-m+1; KMP[m] := m+1; j := m-1; {analogie KMPInit, zrcadlově převrácená} while (j > -m) do begin k := j+1; l := k; repeat l := KMP[l]; until (l = m+1) or (l <= 0) or (pat[l] = pat[k]); KMP[j] := l-1; {pat[l..m] se nachází na pozici j+1} if (j <= 0) or (pat[j] <> pat[l-1]) then NVP[l-1] := max(NVP[l-1],j+1); {hledáme nejpravější výskyt} dec(j); end {while}; {nyní jiţ lze P2 snadno určit} for j := 1 to m do P2[j] := m+1–NVP(j); end {procedure InitKMP}; DBI010 - DIS - MFF UK Boyer-Moorův algoritmus (2) • • function ShiftBM(const j: integer; const x: char): integer begin ShiftBM := max(P1[x],P2[j]); end {ShiftBM}; procedure BMSearch(const txt: string; const pat: string); var m, n, i, j: byte; nalezeno: boolean; {2} P1: ShiftArray1; P2: ShiftArray2; begin m := length(pat); n := length(txt); InitBM(pat,P1,P2); i := m; while i <= n do begin j := m; {porovnávání vzorku od konce} while (j > 0) and (txt[i] = pat[j]) do begin dec(i); dec(j); {úspěšné porovnání jednoho znaku} end; if j = 0 then begin ReportMatchAtPosition(i+1); i := i+1+m; {posun vzorku o jednu pozici} end else i := i+BMShift(j,x); {posun vzorku + skok na konec vzorku} end {while}; end {BMSearch}; DBI010 - DIS - MFF UK FS algoritmus (modifikace BM) Autoři: Jang-Jon Fan a Keh-Zih Su Kombinace zpětného prohledávání s KMP Posun delta při neshodě V[j] s T[i], vzorek V[1..n] • delta(n,x) = n, pokud x není ve vzorku = n-max{k | V[k]=x} • delta(j,x), j<n – minimální posun takový, ţe se vzorek zarovná s ověřenou částí vzorku a pod kolizní pozicí bude x – minimální posun takový, ţe se prefix vzorku zarovná s postfixem ověřené části – n DBI010 - DIS - MFF UK FS algoritmus FS Text a b c c b a b a c bb c abba cbbab cbb a b c c Před pos. b b a c b b a b c b b bbacbbabcbb Po posunu FS a b c c b a a b c bb c abba cbbab cbb a b c c Text Před pos. b b a c b b a b c b b bbacbbabcbb Po posunu DBI010 - DIS - MFF UK Porovnání algoritmů Bez předzprac. S předzpracováním vzorku sousměrný protisměrný timemax o(m*n) o(m+n) o(m*n) timeavg o(m*n) o(m+n) o(m*n) timeavg (přir. jazyk) o(m) o(m+n) o(m/n) DBI010 - DIS - MFF UK Přesné vyhledávání vzorků Hledání konečného počtu vzorků v textu Algoritmus Aho-Corrasickové • Sousměrné vyhledání více vzorků současně • Rozšíření KMP algoritmu – Předzpracování vzorků – Lineární průchod textem • Časová sloţitost o(m+ni), kde m je délka textu ni je délka i-tého vzorku DBI010 - DIS - MFF UK A-C algoritmus • Text T • Mnoţina vzorků V={V1, V2, …, Vk} • Vyhledávací stroj S = (Q, X, q0, g, f, F) • • • • Q mnoţina stavů X abeceda q0Q počáteční stav g: Q x X Q (go) dopředná funkce • f: Q Q (fail) zpětná funkce • F Q mnoţina koncových stavů DBI010 - DIS - MFF UK A-C algoritmus • Stavy mnoţiny Q • f(q) pro q<>q0 je reprezentují všechny rovna nejdelšímu prefixy všech vzorků vlastnímu postfixu q v mnoţině Q • Stav q0 reprezentuje |f(q)|<|q| prázdný prefix • Koncovými stavy jsou • g(q,x) = qx, všechny hledané pokud je qxQ vzorky, tedy F=V • Jinak g(q0,x)=q0 • Jinak g(q,x) nedefinováno DBI010 - DIS - MFF UK A-C algoritmus • Při vyhledávání se vyuţívá všude definovaná přechodová funkce (q,x): QxXX – (q,x) = g(q,x), pokud g(q,x) definována – (q,x) = (f(q),x) • Korektní definice, protože |f(q)| - vzdálenost f(q) od počátečního stavu - je menší než |q| a g(q0,x) je vždy definována. DBI010 - DIS - MFF UK A-C algoritmus • Konstrukce f dle |q|, tedy dle vzdálenosti stavu od počátku • Pro q0 není třeba funkci definovat • Pro |q|=1 je nejdelší vlastní postfix prázdný, tedy f(q)=q0 • f(qx)=f(g(q,x)) = (f(q),x) • Při hledání hodnoty zpětné funkce ve stavu qx, do kterého se přechází z q znakem x, je nutné se vrátit do q, přejít do f(q) a poté vpřed přes znak x DBI010 - DIS - MFF UK A-C algoritmus • Příklad pro V={”he”,”her”,”she”}, funkce g X\{h,s} h "h" e "he" r "her" "s" h "sh" e "she" "" s DBI010 - DIS - MFF UK A-C algoritmus • Příklad pro V={”he”,”her”,”she”}, funkce f X\{h,s} h "h" e "he" r "her" "s" h "sh" e "she" "" s DBI010 - DIS - MFF UK A-C algoritmus • Detekce všech vzorků, včetně těch obsaţených uvnitř jiných: – Buďto pro kaţdý stav q předem sestrojíme seznam všech detekovaných vzorků průchodem seznamu stavů dosaţitelných z q přes zpětnou funkci, tedy stavů f i(q), i>=0 – Nebo při vstupu do q projdeme seznam dosaţitelných stavů během vyhledávání DBI010 - DIS - MFF UK A-C algoritmus – funkce delta function delta(q:stavy; x: abeceda):stavy; begin {delta} while g[q,x] = fail do q := f[q]; delta := g[q,x]; end; {delta} begin {A-C} q := 0; for i := 1 to length(t) do begin q := delta(q,t[i]); vypis(q); {výpis vzorků končících znakem t[i]} end; {for} end; {A-C} DBI010 - DIS - MFF UK KMP vs. A-C pro 1 vzorek • • • • Shodné algoritmy s rozdílným popisem j (~ porovnávaná pozice) • qj-1 (~ # porovnaných pozic) P[1]=0 • g(q0,*)=q0 P[j]=k • f(qj-1)=qk-1 V a b c c b a b c b b b P 0 1 1 1 1 1 2 3 4 1 1 DBI010 - DIS - MFF UK Algoritmus Commentz-Walterové • Protisměrné vyhledání více vzorků současně • Kombinace B-M a A-C algoritmů • Průměrná časová sloţitost (pro přirozené jazyky) o(m/min(ni)), kde m je délka textu ni je délka i-tého vzorku DBI010 - DIS - MFF UK C-W algoritmus • Text T • Mnoţina vzorků V={V1, V2, …, Vk} • Vyhledávací stroj S = (Q, X, q0, g, f, F) – – – – Q mnoţina stavů X abeceda q0Q počáteční stav g: Q x X Q (go) dopředná funkce – f: Q Q (fail) zpětná funkce – F Q mnoţina koncových stavů DBI010 - DIS - MFF UK C-W algoritmus • Stavy mnoţiny Q reprezentují všechny postfixy všech vzorků • Stav q0 reprezentuje prázdný postfix • g(q,x) = xq, pokud je xqQ • f(q) pro q<>q0 je rovna nejdelšímu vlastnímu prefixu q v mnoţině Q |f(q)|<|q| • Koncovými stavy jsou všechny hledané vzorky, tedy F=V DBI010 - DIS - MFF UK C-W algoritmus • Dopředná funkce s “she“ h “he“ e “e“ r h “her“ e “er“ DBI010 - DIS - MFF UK “r“ C-W algoritmus • Zpětná funkce s “she“ h “he“ e “e“ r h “her“ e “er“ DBI010 - DIS - MFF UK “r“ C-W algoritmus • LMIN = min(ni) délka nejkratšího vzorku • h(q) = |q| vzdálenost q od počátku • char(x) nejmenší hloubka stavu do kterého se přechází přes x • pred(q) předchozí stav stavu q, tj. ten, který reprezentuje o jedna kratší postfix • Pokud g(q,x) nedef., posunou se vzorky o shift(q,x) pozic doprava a začne se stavem q0 • shift(q,x)=min( max( shift1(q,x), shift2(q) ), shift3(q) ) DBI010 - DIS - MFF UK C-W algoritmus • shift1(q,x) = char(x)-h(q)-1, pokud > 0 • shift2(q) = min({LMIN}{h(q’)-h(q), f(q’)=q}) • shift3(q0) = LMIN • shift3(q) = min({shift3(pred(q))} {h(q’)-h(q), k:fk(q’)=q q’F}) DBI010 - DIS - MFF UK C-W algoritmus • shift1(q,x) – zarovnání kolizního znaku char(’y’)-h(’kolo’)-1=8-4-1=3 . . . my k o l o g . . . k S k o g y m o o l n o l k o á l k o o v z o o m l r i g l a o a u . . . my k o l o g . . . o z v t m +3 DBI010 - DIS - MFF UK k S k o g y m o o l n o l k o á l k o o v z o o m l r i g l a o a u o z v t m C-W algoritmus • shift2(q) – zarovnání zkontrolované části . . . my k o l o g . . . k S k o g y m o o l n o l k o á l k o o v z o o m l r i g l a o a u . . . my k o l o g . . . o z v t m +1 k S k o g y m DBI010 - DIS - MFF UK o o l n o l k o á l k o o v z o o m l r i g l a o a u o z v t m C-W algoritmus • shift3(q) – zarovnání (obecně postfixu) zkontrolované části bez nutnosti pouţít kolizní znak . . . my k o l o g . . . k S k o g y m o o l n o l k o á l k o o v z o o m l r i g l a o a u . . . my k o l o g . . . o z v t m +2 DBI010 - DIS - MFF UK k S k o g y m o o l n o l k o á l k o o v z o o m l r i g l a o a u o z v t m FS vs. BM vs. CW pro 1 vzorek • Ne zcela shodné algoritmy – FS (+5) není horší neţ BM (+1) . . . baa . . . baaabcaa • FS zarovnává kolizní znak spolu s prozkoumanou částí, BM jen kolizní znak – FS (+5) není horší neţ CW (+4) . . . baa . . . baaabcaa • FS zarovnává kolizní znak spolu s prozkoumanou částí, CW jen jednu z nich . . . baa . . . – CW (+4) není horší neţ BM (+1) b a a a b c a a • V BM je zarovnání dle kolizního znaku lépe definováno (využívá i pozici kolize), ale tato výhoda se oproti CW pro jeden vzorek neprosadí . . .b b . b . c DBI010 - DIS - MFF UK b b . . . Přednáška č. 3 Přesné vyhledávání vzorků Hledání nekonečného počtu vzorků v textu Regulární výrazy a jazyky • Regulární výraz R • Atomické výrazy – – – a, a X • Operace – – – – – U.V – zřetězení U+V – sjednocení Vk = V.V…V V* = V0+V1+V2+… V+ = V1+V2+V3+… • Hodnota výrazu h(R) – prázdný jazyk – {} jen prázdné slovo – a, a X – {u.v|uh(U) vh(V)} – h(U)h(V) DBI010 - DIS - MFF UK Vlastnosti regulárních výrazů • • • • • • • • • • 1) U+(V+W) = (U+V)+W 2) U.(V.W) = (U.V).W 3) U+V = V+U 4) (U+V).W = (U.W)+(V.W) 5) U.(V+W) = (U.V)+(U.W) 6) U+U = U 7) .U = U 8) .U = 9) U+ = U 10) U* = +U*.U = (+U)* DBI010 - DIS - MFF UK Konečný automat • K = ( Q, X, q0, , F ) – Q je množina stavů – X je vstupní abeceda – q0 Q je počáteční stav – : Q x X Q je přechodová funkce – F Q je množina koncových stavů. DBI010 - DIS - MFF UK Konečný automat • Konfigurace KA – (q,w) Q x X* • Přechod KA – relace – (q,aw) (Q x X*) x (Q x X*) (q’,w) (q,a) = q’ • Automat přijímá slovo w (q0, w) * (q,), qF DBI010 - DIS - MFF UK Nedeterministický konečný automat • a) standardně b) rozšíření K = ( Q, X, q0, , F ) K = ( Q, X, S, , F ) – Q je množina stavů – X je vstupní abeceda – q0 Q je počáteční stav S Q je množina počátečních stavů – : Q x X P(Q) je přechodová funkce – F Q je množina koncových stavů DBI010 - DIS - MFF UK Nedeterministický konečný automat • NKA pro{”he”, ”her”, ”she”} – S={1,4,8} – F={3,7,11} * 1 h 2 e 3 * 4 h 5 e 6 r 7 * 8 s 9 h 10 e 11 – S={1} – F={3,4,7} * 1 h 2 e 3 r 4 s DBI010 - DIS - MFF UK 5 h 6 e 7 Převod NKADKA • K=(Q, X, S, , F) • K’=(Q’, X, q’0, ‘, F‘) • • • • Q’ = P(Q) X q’0 = S ‘( q’, x) = (q, x), qq’ • F‘ = {q’Q’q’F} DBI010 - DIS - MFF UK Převod NKADKA povolena mnoţina poč. stavů • Tabulkou, jen dosaţitelné stavy 1 h 2 e 3 * přechody do stavu 1 4 h 5 e 6 r 7 * neuvedeny * 8 s 9 h 10 e 11 stav ozn. e {1,4,8} 1 {1,4,8} {1,2,4,5,8} 2 {1,3,4,6,8} {1,4,8,9} 3 {1,4,8} {1,3,4,6,8} 4 {1,4,8} {1,2,4,5,8,10} 5 {1,3,4,6,8,11} {1,4,7,8} 6 {1,4,8} {1,3,4,6,8,11} 7 {1,4,8} h {1,2,4,5,8} {1,2,4,5,8} {1,2,4,5,8,10} {1,2,4,5,8} {1,2,4,5,8} {1,2,4,5,8} {1,2,4,5,8} r {1,4,8} {1,4,8} {1,4,8} {1,4,7,8} {1,4,8} {1,4,8} {1,4,7,8} DBI010 - DIS - MFF UK h h 2 1 e h s s s s h 6 4 rs r hh h e s 5 s 7 3 s {1,4,8,9} {1,4,8,9} {1,4,8,9} {1,4,8,9} {1,4,8,9} {1,4,8,9} {1,4,8,9} x {1,4,8} {1,4,8} {1,4,8} {1,4,8} {1,4,8} {1,4,8} {1,4,8} Převod NKADKA pouze jeden poč. stav • Tabulkou, jen dosaţitelné stavy 1 h 2 e 3 r 4 přechody * do stavu 1 s 5 h 6 e 7 neuvedeny stav {1} {1,2} {1,5} {1,3} {1,2,6} {1,4} {1,3,7} ozn. e 1 {1} 2 {1,3} 3 {1} 4 {1} 5 {1,3,7} 6 {1} 7 {1} h {1,2} {1,2} {1,2,6} {1,2} {1,2} {1,2} {1,2} 1 e h DBI010 - DIS - MFF UK s h 6 4 rs s s s r hh h e s 5 s 7 3 r {1} {1} {1} {1,4} {1} {1} {1,4} h h 2 s {1,5} {1,5} {1,5} {1,5} {1,5} {1,5} {1,5} x {1} {1} {1} {1} {1} {1} {1} Derivace regulárního výrazu • Pokud, • hV v , potom a svíce Např., pokud hV sten plot dV potom h da dV více h ds ten dV h dt dV h dx , DBI010 - DIS - MFF UK v xv hV Derivace regulárního výrazu • • • • • d , a X da d , a X da da , a X da db , b a da dU V dV • da dU da da dU .V dU • da da .V , U • dU .V dU .V dV , U da da da • dV dV .V * * da dV d d dV ... , x a1... an1 an dx an an1 a1 DBI010 - DIS - MFF UK da Konstrukce KA pomocí derivace • Derivace regulárního výrazu umoţňuje přímou algoritmickou konstrukci DKA pro libovolný regulární výraz • Dán regulární výraz V nad abecedou X • Kaţdý stav KA definuje mnoţinu slov, které KA převedou ze stavu q do některého koncového stavu. Tedy stav je moţné ztotoţnit s regulárním výrazem definujícím tuto mnoţinu – q0 = V dq – (q,x) = dx – F = {qQ | h(q)} DBI010 - DIS - MFF UK Konstrukce KA pomocí derivace • V= (0+1)*.01 nad abecedou X={0,1} • q0 = (0+1)*.01 • • d 0 1* .01 d 0 1* d 01 d 0 1 .01 .0 1* .01 1 d0 d0 d0 d0 d 0 d1 . 0 1* .01 1 0 1* .01 1 .0 1* .01 1 d0 d0 d 0 1* .01 d 0 1* d 01 d 0 1 .01 .0 1* .01 d1 d1 d1 d1 d 0 d1 .0 1* .01 . 0 1* .01 0 1* .01 d1 d1 DBI010 - DIS - MFF UK Konstrukce KA pomocí derivace • V= (0+1)*.01 nad abecedou X={0,1} stav * (0+1) .01 * (0+1) .01+1 (0+1)*.01+ ozn. 0 * A (0+1) .01+1 B (0+1)*.01+1 C (0+1)*.01+1 • q0 = (0+1)*.01 • F = {(0+1)*.01+} 1 * (0+1) .01 (0+1)*.01+ (0+1)*.01 1 0 A C B 0 1 0 DBI010 - DIS - MFF UK 1 Dvojcestný KA se skokem • Zobecnění všech vyhledávacích algoritmů • K = (Q, X, q0, , k, , F) – – – – – – – Q je mnoţina stavů X je vstupní abeceda q0 Q je počáteční stav : Q x X Q x {-1,1,2,...,k} je přechodová funkce k N je maximální délka skoku je značka skoku F Q je mnoţina koncových stavů DBI010 - DIS - MFF UK Dvojcestný KA se skokem • Konfigurace: – řetězec x1x2...xi-1qxi...xj-1xj...xn z mnoţiny X*QX*X* • Přechod – relace (X*QX*X*) x (X*QX*X*) – x1x2...xi-1qxi...xj-1xj...xn x1x2...xi-2q’xi-1...xj-1xj...xn (q, xi) = (q’, -1) – x1x2...xi-1qxi...xj-1xj...xn x1x2...xi...xj...xt-1q’xt...xn (q, xi) = (q’, m), kde t=min(i+m,n+1) • Příjem slova w – q0w * wf, f F DBI010 - DIS - MFF UK Dvojcestný KA se skokem • Pokud se pouţijí pouze přechody tvaru (q, xi) = (q’,1) bude automat simulovat standardní nedeterministický konečný automat – Pozice skoku se drţí neustále u čtecí hlavy – Automat postupně čte znaky zleva doprava DBI010 - DIS - MFF UK 2CKAS simulující B-M algoritmus se vzorkem „ANANAS“ • Výchozí konfigurace q0MEZI TROPICKÉ OVOCE … odpovídá umístění vzorku před text T ME Z I V ANANA S TROP I CKÉ . . . • Nutno přidat přechod do alternativního výchozího stavu q se skokem o délku vzorku • (q0,x) = (q,|ANANAS|) = (q,+6) pro xX DBI010 - DIS - MFF UK 2CKAS simulující B-M algoritmus se vzorkem „ANANAS“ • Úvodním skokem automat přejde do konfigurace MEZI TqROPICKÉ OVOCE …, která odpovídá startu B-M algoritmu T ME Z I T RO P I CK É V ANANA S . . . • (q,’A’) = (q,+1) – zarovnání znaku ’A’ • (q,’N’) = (q,+2) – zarovnání znaku ’N’ • (q,’S’) = (q1,-1) – ověření prvního znaku zprava DBI010 - DIS - MFF UK 2CKAS simulující B-M algoritmus se vzorkem „ANANAS“ • Celkově – k = 6 = |ANANAS| – – Q = {q0,q,q1,q2,q3,q4,q5,q6} A N S X q0 (q,+6) (q,+6) (q,+6) (q,+6) – F = {q6} Ověřen poslední znak vzorku zprava. Nutno detekovat výskyt (q6) a zároveň posunout vzorek tak, aby se pod první znak zprava (tj. S) dostal nejbliţší další stejný znak. Zde další S není, proto posun o +6 q q1 q2 q3 q4 q5 q6 (q,+1) (q,-1) (q,+1) (q,-1) (q,+1) (q,+6) (q,+1) Kopie stavu q DBI010 - DIS - MFF UK (q,+2) (q,+1) (q,-1) (q,+1) (q,-1) (q,+1) (q,+2) (q,-1) (q,+5) (q,+4) (q,+3) (q,+2) (q,+1) (q,-1) (q,+6) (q,+5) (q,+4) (q,+3) (q,+2) (q,+1) (q,+6) Modely • Úrovně modelů – Rozlišují (ne)přítomnost slov v dokumentech – Rozlišují frekvence výskytů slov – Rozlišují pozice výskytů slov v dokumentech DBI010 - DIS - MFF UK Modely DIS Boolský model Boolský model DIS • 50-tá léta 20. stol. • Automatizace postupů pouţívaných v knihovnictví DBI010 - DIS - MFF UK Boolský model DIS • Databáze D obsahující n dokumentů – D={d1, d2, … dn} • Dokumenty popisovány pomocí m termů – T ={t1, t2, … tm} – term tj = slovo nebo sousloví • Reprezentace dokumentu pomocí mnoţiny termů – Obsaţených v dokumentu – Popisujících význam dokumentu – d1 T DBI010 - DIS - MFF UK Indexace Boolského DIS • Přiřazení mnoţiny termů, které jej popisují ke kaţdému dokumentu – Členění indexačních technik dle způsobu vytváření • Ruční – Nekonzistentní. Více indexátorů se nemusí shodnout na mnoţině termů. Jeden indexátor můţe po určité době ohodnotit stejný dokument jinak. • Automatická – Konzistentní, ale bez porozumění textu. – Členění indexačních technik dle volnosti výběru termů • Řízená – Předem daná mnoţina termů. Pouze se vyberou ty, vhodné pro dokument. • Neřízená – Mnoţina termů se mění s přibývajícími dokumenty. DBI010 - DIS - MFF UK Indexace • Tezaurus – Vnitřně strukturovaná mnoţina termů • • • • Synonyma s preferovanými termy Hierarchie uţších/širších termů Příbuzné termy ... • Stop-list – Nevýznamová slova DBI010 - DIS - MFF UK Indexace • Příliš obecná slova nejsou pro identifikaci dokumentů vhodná • Příliš specifická slova také ne vhodné termy 0 0 0,1 DBI010 - DIS - MFF UK 0,5 0,9 1 Boolský model DIS • Dotaz je vyjádřený logickým výrazem – ta AND tb – ta OR tb – NOT t v dokumentu se vyskytují oba termy v dokumentu se vyskytuje alespoň jeden z termů v dokumentu se daný term nevyskytuje DBI010 - DIS - MFF UK Boolský model DIS • Dotazem tedy může být například: – ‘vyhledávání’ AND ‘informace’ – ‘kódování’ OR ‘dekódování’ – ‘zpracování’ AND (‘dokument’ OR ‘text’) – ‘počítač’ AND NOT ‘osobní’ DBI010 - DIS - MFF UK Boolský model DIS • Víceslovné termy v dotazech – ‘vyhledávání informace’ – ‘kódování dat’ OR ‘dekódování dat’ – ‘zpracování textu’ – ‘počítač’ AND NOT ‘osobní počítač’ DBI010 - DIS - MFF UK Boolský model DIS • Využití faktografických údajů (hodnot atributů) – ‘databáze’ AND (autor = ‘Salton’) – ‘zpracování textu’ AND (rok_vydání >= 1990) DBI010 - DIS - MFF UK Boolský model DIS • Zástupné znaky v termech – ‘datab*’ AND ‘systém*’ • zastupuje termy ‘databáze’, ‘databázový’, ‘systém’, ‘systémy’, a pod. – ‘přenosn?’ AND ‘počítač*’ • zastupuje termy ‘přenosný’, ‘přenosné’, ‘počítač’, ‘počítače’, ‘počítačový’ a pod. DBI010 - DIS - MFF UK Organizace indexu • Invertovaný seznam – Pro kaţdý term seznam dokumentů ve kterých se vyskytuje • t1 = d1,1, • t2 = d2,1, • tm = dm,1, d1,2, d2,2, dm,2, ..., ..., ..., d1,k1 d2,k2 dm,km DBI010 - DIS - MFF UK Organizace indexu • Zpracování dokumentů na vstupu – vznikne posloupnost dvojic <dok_id,term_id> setříděná dle v uvedeném pořadí • Setřídění dle term_id,dok_id a odstranění po sobě jdoucích duplicit DBI010 - DIS - MFF UK Lemmatizace a disambiguace českého jazyka (ÚFAL) • Odpovědným zástupcem nemůţe být kaţdý. • Zákon by měl zajistit individualizaci odpovědnosti a zajištění odbornosti. … • Číslo odstavce Číslo věty Slovo v dokumentu Lemma včetně významu Slovní druh (Adverb), … • <p n=1> <s id="docID:001-p1s1"> <f cap>Odpovědným <MDl>odpovědný_^(kdo_za_něc o_odpovídá) <MDt>AAIS7----1A---<f>zástupcem<MDl>zástupce< MDt>NNMS7-----A---<f>nemůţe<MDl>moci_^(mít_ moţnost_[něco_dělat])<MDt>VB -S---3P-NA--<f>být<MDl>být<MDt>Vf-------A---<f>kaţdý<MDl>kaţdý<MDt>A AIS1----1A---<p n=2> … DBI010 - DIS - MFF UK Proximitní omezení • t1 (m,n) t2 – term t2 se vyskytuje v textu nejdále m slov za t1, nebo se t1 vyskytuje nejdále n slov za t2. • t1 sentence t2 – termy se v dokumentu vyskytují ve stejné větě • t1 paragraph t2 – termy se v dokumentu vyskytují ve stejném odstavci DBI010 - DIS - MFF UK Proximitní omezení • Nahrazení operátoru konjunkcí • Vyhodnocení dotazu • Ověření v primárním textu – Delší čas pro vyhodnocení – Nutnost uloţení primárních dokumentů • Doplnění indexu o pozice termů v dokumentech – Větší index DBI010 - DIS - MFF UK Organizace indexu • Zpracování dokumentů na vstupu – vznikne posloupnost pětic <dok_id,term_id,para_nr,sent_nr,word_nr> setříděná dle v uvedeném pořadí • Setřídění – vznikne posloupnost pětic <term_id,dok_id,para_nr,sent_nr,word_nr> DBI010 - DIS - MFF UK Vyuţití tezauru • • • • • • BT(x) - Broader Term - Širší term k termu x NT(x) - Narrower Terms - Užší termíny PT(x) - Preferred Term - Preferovaný termín SYN(x) - SYNonyms -Synonyma k termu x RT(x) - Related Terms - Příbuzné termíny TT(x) - Top Term - Nejširší termín DBI010 - DIS - MFF UK Nevýhody Boolského DIS • Salton: – Formulace dotazů je spíše uměním neţ vědou. – Nemoţnost ohodnotit vhodnost vystupujících dokumentů. – Všechny termy v dotazu i v identifikaci dokumentu jsou chápány jako stejně důleţité. – Nemoţnost řízení velikosti výstupu. – Některé výsledky neodpovídají intuitivní představě. • V disjunktivním dotazu na výstupu dokumenty obsahující jediný z termů vedle dokumentů obsahujících všechny. • V konjunktivním dotazu na výstupu nejsou dokumenty neobsahující žádný z termů ani dokumentů neobsahující jeden z nich. DBI010 - DIS - MFF UK Částečné setřídění výstupu Q = (t1 OR t2) AND (t2 OR t3) AND t4 – převedeme do DKNF Q’ = OR OR OR OR (t1 AND t2 AND t3 AND t4) (t1 AND t2 AND NOT t3 AND t4) (t1 AND NOT t2 AND t3 AND t4) (NOT t1 AND t2 AND t3 AND t4) (NOT t1 AND t2 AND NOT t3 AND t4) DBI010 - DIS - MFF UK Částečné setřídění výstupu • Kaţdá elementární konjunkce (dále EK) je ohodnocena číslem rovným počtu termů v kladném smyslu (bez NOT) • Všechny EK se navzájem liší alespoň u jednoho termu Kaţdý dokument vyhovuje nejvýše jedné EK Dokument lze ohodnotit číslem, přiřazeným odpovídající EK. DBI010 - DIS - MFF UK Částečné setřídění výstupu • Elementárních konjunkcí pro k pouţitých termů je 2k • Moţných ohodnocení je jen k • Proto můţe mít více EK stejné ohodnocení • (ta OR tb) = = (ta AND tb) … ohodnocení 2 OR (ta AND NOT tb) … ohodnocení 1 OR (NOT ta AND tb) … ohodnocení 1 DBI010 - DIS - MFF UK Přednáška č. 4 Vektorový model DIS • 70-tá léta 20. stol. – cca o 20 let mladší neţ Boolské DIS • Snaha minimalizovat nebo odstranit nevýhody Boolských DIS DBI010 - DIS - MFF UK Vektorový model DIS • Databáze D obsahující n dokumentů – D={d1, d2, … dn} • Dokumenty popisovány pomocí m termů – T ={t1, t2, … tm} – term tj = slovo nebo sousloví • Reprezentace dokumentu pomocí vektoru vah termů – d i wi,1,wi,2,...,wi,m DBI010 - DIS - MFF UK Vektorový model DIS • Model dokumentu – d i wi,1, wi,2,...,wi,m 0,1m – wi,j … míra důleţitosti j-tého termu pro identifikaci i-tého dokumentu • Dotaz – q q1, q2,...,qm 0,1m – qj … míra důleţitosti j-tého termu pro tazatele DBI010 - DIS - MFF UK Index vektorového DIS d 1 w1,1 d 2 w2,1 D d n wn,1 w1,2 w2,2 wn,2 DBI010 - DIS - MFF UK w1,m w2,m nm 0,1 wn,m Vektorový model DIS • Podobnost mezi vektorem dotazu a vektorem dokumentu je dána funkcí 1 Sim q ,d i R 0 0 1 DBI010 - DIS - MFF UK Podobnostní funkce • Sim q ,d i m q jwi, j q d i j 1 qd i cos • Příspěvek q j wi, j úměrný míře důleţitosti termu pro tazatele a pro dokument • Kolmé vektory mají nulovou podobnost – Vektory báze (jednotlivé termy) navzájem kolmé a tedy s nulovou podobností DBI010 - DIS - MFF UK Podobnostní funkce • Sim q ,d i q d cos i • Výslednou podobnost ovlivňuje velikost dotazu i velikost vektorů jednotlivých dokumentů • Delší vektory (přiřazené obvykle delším dokumentům) jsou zvýhodněny • Vhodné provádět normalizaci vektorů DBI010 - DIS - MFF UK Normalizace vektorů • Eliminace vlivu délky vektoru na podobnost DBI010 - DIS - MFF UK Normalizace vektorů • Během indexace – Nezatěţují vyhledávání – Někdy nutné dávkově přepočítat vektory v případě, ţe normalizace zahrnuje faktory závislé na celé mnoţině vektorů • Během vyhledávání – Součást definice podobnostní funkce – Zpomaluje odezvu DBI010 - DIS - MFF UK Omezení velikosti výstupu • Dokumenty na výstupu řazeny sestupně dle podobnosti – Nejpodobnější dokumenty na začátku – Moţno omezit velikost výstupu a splnit snadno kritérium maxima • Omezení max. počtu vrácených dokumentů • Poţadavek na minimální nutnou podobnost DBI010 - DIS - MFF UK Negace ve vektorovém DIS • Sim q ,d i m q jwi, j j 1 • Je moţné uvaţovat dotaz q q1, q2,...,qm 1,1m Potom můţe být příspěvek q j wi, j záporný • • Tak lze upřednostnit dokumenty, které daný term neobsahují DBI010 - DIS - MFF UK Skalární součin Sim q ,d i m q jwi, j j 1 DBI010 - DIS - MFF UK Kosinová míra (Salton) m Sim q ,d i q jwi, j j 1 m 2 m q j wi, j j 1 j 1 DBI010 - DIS - MFF UK 2 Jaccardova míra m Sim q ,d i q jwi, j m j 1 m m j 1 j 1 j 1 q j wi, j q jwi, j DBI010 - DIS - MFF UK Diceova míra m Sim q ,d i 2 q jwi, j j 1 m m j 1 j 1 q j wi, j DBI010 - DIS - MFF UK Overlap míra m Sim q ,d i q jwi, j j 1 m 2 min q j , wi, j j 1 DBI010 - DIS - MFF UK 2 Asymetrická míra m Sim q ,d i min q j , wi, j j 1 m wi, j j 1 DBI010 - DIS - MFF UK Pseudo-kosinová míra m Sim q ,d i q jwi, j j 1 m m q j wi, j j 1 j 1 DBI010 - DIS - MFF UK Indexace ve vektorovém DIS • Zaloţena na počtu opakování slova v dokumentu – Čím častěji se slovo opakuje, tím je důleţitější • Frekvence termu (Term Frequency) TFi,j = #výskytů_termu / #všech_výskytů DBI010 - DIS - MFF UK Indexace ve vektorovém DIS • Bez stop-listu na začátku seznamu nevýznamová slova 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 term the of a to and is for be if in use are it should class DBI010 - DIS - MFF UK # 239 96 84 78 70 65 60 53 52 49 49 44 44 38 33 TF 0,0582 0,0234 0,0205 0,0190 0,0171 0,0158 0,0146 0,0129 0,0127 0,0119 0,0119 0,0107 0,0107 0,0093 0,0080 Indexace ve vektorovém DIS • Frekvence termu jsou velmi malé i pro nejčastější termy • Normalizovaná frekvence termu NTF i, j 0 pro TF i, j jinak 1 1 TF i, j NTF i, j 2 2 max TF i ,k k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 term use class owl c line example comments file bi functions files code int data public DBI010 - DIS - MFF UK # 49 33 31 26 26 25 23 23 22 20 18 17 17 16 15 TF 0,0119 0,0080 0,0076 0,0063 0,0063 0,0061 0,0056 0,0056 0,0054 0,0049 0,0044 0,0041 0,0041 0,0039 0,0037 NTF 1,0000 0,8367 0,8163 0,7653 0,7653 0,7551 0,7347 0,7347 0,7245 0,7041 0,6837 0,6735 0,6735 0,6633 0,6531 Indexace ve vektorovém DIS Rozložení (normalizované) frekvence termu 1,0000 0,9000 0,8000 Frekvence 0,7000 0,6000 TF 0,5000 0,4000 0,3000 NTF Odlišení významných termů od nevýznamných 0,2000 0,1000 0,0000 Termy dle rostoucí frekvence DBI010 - DIS - MFF UK Indexace ve vektorovém DIS def • w i, j TF i , j def • w i, j NTF i, j def • w i, j NTF i, j ITF j • ITF (Inverted TF) reprezentuje důleţitost termu v pro indexaci v rámci celé kolekce dokumentů 2,5000 2,0000 1,5000 0,5000 DBI010 - DIS - MFF UK 1,00 0,97 0,94 0,91 0,88 0,85 0,82 0,79 0,76 0,73 0,70 0,67 0,64 0,61 0,58 0,55 0,52 0,49 0,46 0,43 0,40 0,37 0,34 0,31 0,28 0,25 0,22 0,19 0,16 0,13 0,10 0,0000 0,07 j 0,04 ITF 1,0000 0,01 # dok . obsah. term log # všech dok . def Indexace ve vektorovém DIS • Normalizace vektoru dokumentu na jednotkovou velikost def v NTF v w v i, j def i, j ITF j i, j i, j 2 i ,k k DBI010 - DIS - MFF UK Dotazování • Shodná reprezentace dokumentů a dotazů má řadu výhod • Dotaz – Přímo zadáním vektoru dotazu – Odkazem na zaindexovaný dokument: q d i – Odkazem na nezaindexovaný dokument indexační modul spočítá jednorázově vektor dotazu – Fragment textu (např. přes copy-paste) – Kombinace výše uvedených moţností DBI010 - DIS - MFF UK Zpětná vazba • Podpora konstrukce dotazu na základě odezvy uţivatele na předchozí odpovědi – Doplnění termů identifikujících relevantní dokumenty – Eliminace termů nepodstatných pro identifikaci relevantních dokumentů • Zlepšení kritéria predikce DBI010 - DIS - MFF UK Zpětná vazba • Odpověď na předchozí dotaz q je uţivatelem rozdělena na relevantní a nerelevantní dokumenty DBI010 - DIS - MFF UK Pozitivní zpětná vazba • Relevantní dokumenty „přitahují“ dotaz směrem k sobě DBI010 - DIS - MFF UK Negativní zpětná vazba • Nerelevantní dokumenty „odtlačují“ dotaz směrem od sebe – Méně efektivní neţ pozitivní zpětná vazba – Relativně málo pouţívaná DBI010 - DIS - MFF UK Zpětná vazba • Postupně se dotaz stěhuje směrem k centru relevantních dokumentů DBI010 - DIS - MFF UK Zpětná vazba k ' • Obecný tvar q 0 q jd i j 1 • Moţný speciální tvar ... parametr metody k di j ' j 1 q q 1 k DBI010 - DIS - MFF UK j (1-) / Zpětná vazba k ' • Obecný tvar q 0 q jd i j 1 j • Obdoba s váhami (1-) / k v j*d i j ' j 1 q q 1 k v j j 1 DBI010 - DIS - MFF UK Ekvivalence termů ve VDIS • Jednotlivé termy navzájem nezávislé T t , t , t , t , t , t , kde t t , t t 1 1 1 1 d 2 , 0, 0, 2 , 2 , 2 1 3 0 , , , 0, 0, 0 Problém predikce q 4 4 - nevhodně zvolené termy Simq , d 0 1 2 3 4 5 6 1 DBI010 - DIS - MFF UK 2 3 4 Ekvivalence termů ve VDIS • Matice ekvivalence E d q 1 1 1 1 , 0, 0, , , 2 2 2 2 1 3 0, , , 0, 0, 0 4 4 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 q E 4 1 Simq E , d 8 2 DBI010 - DIS - MFF UK 1 1 3 3 , , , , 0, 0 4 4 4 4 Podobnost termů ve VDIS • Zobecnění ekvivalence 10..08 • Matice podobnosti S 00 Sim q S , d 38 19 80 40 0.2 0 0.8 1.0 0 0 0 0 0 1.0 1.0 0 1.0 1.0 0 0 0 1.0 0 0 0 1.0 0 0 0 0 0.2 0 0 0 0 0 • Moţnost výpočtu podobnosti termů (dimenze vektorů je n, nikoli m) Sim , t t j1 j2 + Podobné termy – Obecné termy DBI010 - DIS - MFF UK Hierarchie termů ve VDIS • Obdobně jako v Boolském modelu Publikace Tiskovina Noviny DBI010 - DIS - MFF UK Kniha Časopis Hierarchie termů ve VDIS • Obdobně jako v Boolském modelu • Moţnost ohodnotit hrany vahami 0.3 Noviny 0.8 Publikace 0.4 0.6 0.32 Tiskovina 0.48 Kniha 0.7 0.096 DBI010 - DIS - MFF UK Časopis 0.224 Citace a vektorový model • Odborné publikace citují různý počet zdrojů • Předpoklad: – Citované dokumenty jsou podobné – Citující dokumenty jsou podobné DBI010 - DIS - MFF UK Citace a vektorový model • Přímá reference mezi dokumenty „A“ a „B“ – Dokument „A“ cituje dokument „B“¨ – Označíme AB • Nepřímá reference mezi „A“ a „B“ – Ex. C1, …Ck tak, ţe AC1…CkB • Spojení mezi dokumenty „A“ a „B“ – AB nebo BA DBI010 - DIS - MFF UK Citace a vektorový model • A a B jsou bibliograficky párovány, pokud citují stejný zdroj C AC BC • A a B jsou v kocitačním vztahu, pokud jsou spolu citovány v dokumentu C CA CB DBI010 - DIS - MFF UK Citace a vektorový model • Acyklický orientovaný • Incidenční matice graf citací grafu citací • C=[cij]{0,1}<nxn> cij=1, pokud ij cij=0 jinak DBI010 - DIS - MFF UK Citace a vektorový model • BP matice bibliografického párování • bpij = počet dokumentů společně citovaných jak v i, tak v j. – Tedy bpii = počet dokumentů citovaných v i • bpij c i c j n cik c jk k 1 DBI010 - DIS - MFF UK Citace a vektorový model • KP matice kocitačního párování • kpij = počet dokumentů společně citujících jak i, tak j. – Tedy kpii = počet dokumentů citujících i • kpij c i c j n ckickj k 1 DBI010 - DIS - MFF UK Citace a vektorový model • SP matice spojení • spij = 1 (cij = 1 cji = 1) • Pomocí matic KP, BP, SP lze modifikovat výsledné podobnosti dokumentů s dotazem • Modifikace indexové matice D – D’= KP.D, resp. D’=BP.D , resp. D’=SP.D – D’=KP.BP.SP.D DBI010 - DIS - MFF UK Vyuţití podobnosti dokumentů při vyhodnocování dotazu • DS matice podobnosti dokumentů • dsij = Sim d i,d j • Podobné pouţití jako u matic DS, BP, SP • Modifikace indexové matice D – D’=DS.D DBI010 - DIS - MFF UK Přednáška č. 5 Rozlišovací hodnoty termů • Rozlišovací hodnota (discrimination value) určuje míru důleţitosti termu pro vzájemné rozlišení uloţených dokumentů • Odstraněním termu z indexu, tj. redukcí dimenze prostoru dokumentů můţe dojít: – ke vzájemnému přiblíţení dokumentů – ke vzájemnému oddálení dokumentů • v tom případě je dimenze zbytečná DBI010 - DIS - MFF UK 45,0 35,3 45,0 DBI010 - DIS - MFF UK 0,0 Rozlišovací hodnoty termů • Výpočet na základě průměrné podobnosti dokumentů • Rychlejší varianta přes centrální dokument (centroid) Sim d , d Q n n i i , j 1 j 2 d c n Sim d , c Q n n i 1 n i 1 DBI010 - DIS - MFF UK i i Rozlišovací hodnoty termů • Pro kaţdou dimenzi k se spočítá průměrná podobnost v prostoru bez k-té dimenze x (k ) x , x ,, x , x di Q c n 1 n (k ) i 1 2 k 1 k 1 ,, xm (k ) Sim d , c i i 1 n (k ) (k ) DBI010 - DIS - MFF UK n (k ) Rozlišovací hodnoty termů • Rozlišovací hodnotu definujeme jako rozdíl průměrných podobností (k ) DV Q k Q • Moţno pouţít místo ITFk 0 Významný term rozlišující dokumenty DVk určuje míru významnosti 0 Nevýznamný term DBI010 - DIS - MFF UK Sem přetáhněte stránková pole. Rozlišovací hodnoty termů Celkem (průměrná hodnota DV termu v závislosti na počtu dokumentů, ve kterých se term vyskytuje) Průměr z DVk 0,00001 90/7777 180/7777 1200/7777 -0,00004 -0,00009 Výsledky pro kolekci z článků z Lidových novin 1994, obsahující 7777 dokumentů a 13495 lemmat -0,00014 Kladná hodnota DVk pro 12324 lemmat s celkem 478849 výskyty. Záporná hodnota DVk pro 1170 lemmat s celkem 466992 výskyty. -0,00019 -0,00024 Počet dokumentů, ve kterých se term vyskytuje v rámci kolekce, obsahující celkem 7777 dokumentů DBI010 - DISVýskyty - MFF UK Se Shlukování dokumentů Kohonenovy mapy C3M algoritmus K-mean algoritmus Shlukování dokumentů • Doba odezvy VDIS přímo úměrná počtu dokumentů, které je nutné porovnat s dotazem • Shlukování dovoluje vynechat z porovnávání většinu indexu DBI010 - DIS - MFF UK Shlukování dokumentů • Bez shluků nutno porovnat s dotazem všechny dokumenty, i kdyţ je definována minimální poţadovaná podobnost DBI010 - DIS - MFF UK Shlukování dokumentů • Kaţdý shluk je obvykle ve tvaru m-rozměrné koule určené svým středem a poloměrem • Pokud ne, je moţné jej pro výpočty pomocí takové koule, která jej celý obsahuje, aproximovat DBI010 - DIS - MFF UK Shlukování dokumentů • Vyhodnocení dotazu nemusí porovnávat dokumenty ve shlucích leţících mimo oblast zájmu DBI010 - DIS - MFF UK Typy shluků • Shluky se stejnou velikostí + Snadné vytvoření – Některé shluky mohou být téměř prázdné, v jiných můţe být velké mnoţství dokumentů DBI010 - DIS - MFF UK Typy shluků • Shluky s (přibližně) stejným počtem dokumentů – Nesnadné vytvoření + Efektivnější v případě nerovnoměrně rozloţených dok. DBI010 - DIS - MFF UK Typy shluků • Nedisjunktní shluky • Jeden dokument můţe být zařazen ve více shlucích DBI010 - DIS - MFF UK Typy shluků • Disjunktní shluky • Dokument nemůţe být ve více shlucích DBI010 - DIS - MFF UK Typy shluků • Obecně nelze prostor pokrýt disjunktními koulemi • Je nutné uvaţovat spíše konvexní mnohostěny, kde dokument přísluší nejbliţšímu centru DBI010 - DIS - MFF UK Typy shluků • Aproximace pomocí koulí určených centrem shluku a vzdáleností nejvzdálenějšího dokumentu v něm DBI010 - DIS - MFF UK Vyhodnocení dotazu se shluky I • Dán dotaz q s minimální požadovanou podobností s – Pozn.: podobnost počítána skalárním součinem, vektory normalizované • Index rozdělen na k shluků (c1,r1), …, (ck,rk) r= – Pozn. poloměry jsou úhlové • Poloměr dotazu r = = arccos(s) s = cos() DBI010 - DIS - MFF UK 1 1 Vyhodnocení dotazu se shluky I • Zjistí se, zda shluk má neprázdný průnik s oblastí, vymezenou dotazem na základě hodnoty arccos(Sim(q,ci))-r-ri • Pokud je hodnota 0, ohodnotí se dokumenty v něm • Pokud je hodnota > 0, dokumenty v něm nemohou být veDBI010 výsledku - DIS - MFF UK Vyhodnocení dotazu se shluky II • Dán dotaz q s maximálním počtem požadovaných dokumentů x. • Index opět rozdělen na k shluků (c1,r1), …, (ck,rk) • Není poloměr dotazu DBI010 - DIS - MFF UK Vyhodnocení dotazu se shluky II • Shluky se setřídí vzestupně podle rostoucí vzdálenosti centra shluku od dotazu, tedy dle hodnoty arccos(Sim(q,ci)) • Lépe podle rostoucí vzdálenosti okraje shluku od dotazu, tedy dle hodnoty arccos(Sim(q,ci))-ri DBI010 - DIS - MFF UK 1. 2. 2. 1. Vyhodnocení dotazu se shluky II • Shluky se setřídí vzestupně dle arccos(Sim(q,ci))-ri tj. vzdálenosti okraje shluku od dotazu q DBI010 - DIS - MFF UK x=7 4. 5. 2. 1. 3. Vyhodnocení dotazu se shluky II • Nejbliţší shluk se ohodnotí DBI010 - DIS - MFF UK x=7 Vyhodnocení dotazu se shluky II • Dokud není dost dokumentů, ohodnotí se další nejbliţší shluk • Pokud je dost dokumentů, x-tý nejvzdálenější dokument určuje poloměr DBI010 - DIS - MFF UK x=7 Vyhodnocení dotazu se shluky II • Jakmile je dost dokumentů, další nejbliţší shluk se ohodnotí, jen pokud zasahuje do vytyčené oblasti • Následně se poloměr zmenší, pokud dokumenty z nového shluku nahradily některé předchozí DBI010 - DIS - MFF UK x=7 Víceúrovňové shlukování • Pokud je shluků hodně, je moţné je dále shlukovat do shluků druhé a dalších úrovní. DBI010 - DIS - MFF UK Shlukovací metody • Kohonenovy mapy (SOM – self-organizing maps) – Pouţívané pro kategorizaci vstupů i v neuronových sítích bez učitele – Samoorganizující se struktura – Přizpůsobuje se hustotě dokumentů v oblasti – Přibliţně stejné počty dokumentů ve shlucích DBI010 - DIS - MFF UK Kohonenovy mapy • Základem jsou centrální m-rozměrné body uspořádané do k-rozměrné mříţky – Obvykle k << m • Kaţdé centrum má kromě své pozice v m-rozměrném prostoru definováno aţ 2k sousedů (krajní centra jich mají méně) – Př.: 2- a 1-rozměrné mříţky ve 2-rozměrném prostoru DBI010 - DIS - MFF UK Kohonenovy mapy • Na počátku mají centra náhodná umístění • Při vloţení dokumentu d – najde se nejbliţší centrum c x – posune se blíţe k dokumentu d d 1 c x cx cx cx – jeho bezprostřední sousedé v mříţce se posunou také c c d c d 1 c DBI010 - DIS - MFF UK Kohonenovy mapy • Parametry 0 1 vyjadřují míru přizpůsobivosti systému. • Vhodné je, aby oba parametry s časem klesaly k nule DBI010 - DIS - MFF UK Kohonenovy mapy • Mapa před adaptací na nový dokument DBI010 - DIS - MFF UK Kohonenovy mapy • Mapa po adaptaci na nový dokument DBI010 - DIS - MFF UK Kohonenovy mapy • Shluky jsou určeny centry mříţky. Do kaţdého shluku patří body, které mají k danému centru blíţe, neţ k jakémukoli jinému • Blízké body v mapě jsou blízké i v původním prostoru (ale ne nutně naopak) DBI010 - DIS - MFF UK Kohonenovy mapy DBI010 - DIS - MFF UK Kohonenovy mapy • Lze pouţít i pro shlukování termů/lemmat – matice indexu po sloupcích – místo m-rozměrného prostoru se tedy mapuje prostor n-rozměrný • Příklad: – mříţka 15*15 center – 7777 dokumentů (Lidové noviny 1994) – 13495 lemmat – 100000 iterací učení náhodně vybraným vektorem lemmatu • Vytvořené shluky lemmat C2,4 C2,5 C3,6 burza, akcie, kupónový, cenný, papír, investor, objem, investiční, fond, hodnota, obchod vlna, privatizace, národní literární, spisovatel, literatura, nakladatelství, počátek, čtenář, dějiny, text, kniha, napsat C3,13 Havel, Václav, prezident C4,13 Klaus, premiér, ministr C6,14 jeviště, komedie, filmový, scénář, publikum, festival, snímek, příběh, film, role DBI010 - DIS - MFF UK C 1 ekonomika Kohonenovy mapy sport literatura 2D mapa lemmat (rozvinutá 2D mříţka z předchozího příkladu) politika 1 2 3 patřit vést firma 2 znamenat platit obchodní Kč banka činit trh milión koruna cena 3 oblast současný deset sto tisíc částka zaplatit pět 30 peníz 4 poptávka nabídka značný měsíc rychlý změnit ztráta vývoj cíl šest hranice 4 celkový procento 5 podnik zisk burza akcie kupónový cenný papír investor objem investiční fond hodnota obchod majitel 50 prodej výše držet dovolit dostávat stav jednička tenista Open postoupit semifinále porazit turnaj finále postup 6 7 čas cesta řada přijít čtyři vlna privatizace národní dílo autor umění vydat 1994 ruka najít žebříček literární spisovatel literatura naklada-telství počátek čtenář dějiny text kniha napsat Američan úspěšný americký USA třetí skupina století život lidský pracovat působit práce mladý 8 stát (verb.) zůstat vyjít starý pravda muž 9 10 výstavba stavba 11 Lille-hammer sportovní zlatý město městský metr pohled zdát znát poskytnout manželka pocit cítit myslit mluvit udělat vidět rád životní prostředí mezi-národní DBI010 - DIS - MFF UK 12 medaile olympijský vítěz závod podtitulek 13 14 MS mistrovství start 15 světový sledovat šampionát ME kvalifikace válka komise předseda Havel Václav prezident bývalý úřad část jednání jednat Klaus premiér ministr vztah názor období činnost mistr titul Kohonenovy mapy Velikosti získaných shluků • Zaplněnost shluků termy zde příliš rovnoměrně nevyšla, směrem k okrajům hustota klesá Počet z t y x 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 9 26 81 193 204 572 329 129 362 Celkový součet 1920 2 3 4 1 2 2 1 8 11 2 7 4 1 7 4 2 15 10 4 15 12 7 12 12 12 25 11 47 23 19 132 85 33 346 349 190 481 320 459 122 3223 709 1062 291 383 163 533 186 2383 4915 2045 5 6 7 8 2 3 2 1 3 5 2 1 1 10 3 9 6 4 4 12 11 8 5 2 12 6 2 3 15 4 22 34 10 4 14 30 18 2 4 21 19 6 7 84 50 26 12 272 166 30 6 302 129 10 7 103 38 98 17 121 94 40 17 999 586 245 119 9 1 3 7 3 2 9 15 3 2 2 3 6 15 4 75 10 2 1 1 2 3 2 2 6 1 2 3 3 4 5 3 40 DBI010 - DIS - MFF UK 11 3 1 1 1 2 2 3 2 3 1 2 2 1 3 27 12 5 2 2 3 1 2 1 1 1 1 2 1 2 2 26 13 2 1 3 3 2 1 1 1 2 1 1 2 5 2 2 29 14 3 3 2 2 4 10 6 4 1 1 1 1 1 1 2 42 15 Celkový součet 1 29 1 40 1 42 2 57 3 85 11 87 3 109 4 170 234 1 507 6 1276 2 2321 3 4853 5 2152 1 1533 44 13495 Kohonenovy mapy Shluk C15,1 • C15,1 37, 41, 45, 46, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, Adamec, Babka, Baček, Balcárek, Baník, Baránek, Barát, Barbarič, Barbořík, Barcuch, Bečka, Bejbl, Beránek, Berger, Bielik, Bílek, Blaţek, boční, Bohuněk, Borovec, Brabec, brána, Branca, brankový, Breda, brejk, Brückner, břevno, Březík, Budka, centr, Cieslar, Culek, Cupák, Čaloun, čára, Časka, čermák, Červenka, Čihák, číţek, Diepold, Dobš, dohrávat, Dostál, Dostálek, drnovický, Drulák, Duhan, Dţubara, faul, fauloval, Frýdek, Fujdiar, Gabriel, Galásek, gólman, gólový, Gunda, Guzik, Harazim, Hašek, Havlíček, Heřman, hlavička, Hodúl, Hoftych, Hogen, Holec, Holeňák, Hollý, holomek, Holota, holub, Horňák, Horváth, hostující, hradecký, Hrbek, Hromádko, Hrotek, Hruška, Hřebík, hřídel, Hýravý, Hyský, chebský, chovanec, inkasovat, jablonecký, Janáček, Jančula, Janeček, Jánoš, Janota, Janoušek, Jarabinský, Jarolím, Jihočech, Jindra, Jindráček, jinoch, Jirka, Jirousek, Jukl, Kafka, Kamas, Kerbr, Kirschbaum, Klejch, Klhůfek, Klimeš, klokan, Klusáček, Knoflíček, Kobylka, Kocman, kočí, Koller, kolouch, koncovka, kop, kopačka, Kopřiva, Kordule, kostelník, Kotrba, Kotůlek, Kouba, Koubek, kovář, kozel, Koţlej, Kr(krypton), krejčí, Krejčík, Krištofík, Krondl, Křivánek, Kubánek, kuchař, Kukleta, Lasota, Lerch, Lexa, Lička, Litoš, Lokvenc, Loţek, Macháček, Machala, Maier, Majoroš, Maléř, Marek, Maroš, Mašek, Mašlej, Maurer, mela, míč, Mičega, Mičinec, Michálek, Mika, mina, mířit, Mojţíš, Mucha, nápor, nastřelit, Navrátil, Nečas, Nedvěd, Nesvačil, Nešický, Neumann, Novák, Novotný, Obajdin, olomoucký, Onderka, Ondráček, Ondrůšek, Palinek, Pařízek, Pavelka, Pavlík, Pěnička, Petrouš, Petrţela, Petřík, pilný, plzeňský, Poborský, pokutový, poločas, poslat, Poštulka, Povišer, prázdný, Praţan, proměněný, protiútok, Průcha, předehrávka, přesný, převaha, Přibyl, přidat, přihrávka, ptáček, Puček, půle, Purkart, rada, Radolský, Rehák, roh, rohový, Rusnák, Řepka, samec, Sedláček, Schindler, Siegl, Sigma, síť, Skála, skórovat, slabý, Slezák, Slončík, Sokol, sólo, srazit, standardní, Stejskal, střídající, střílet, Studeník, Suchopárek, Svědík, Svoboda, šatna, Šebesta, šedivý, šestnáctka, šilhavý, Šimurka, šindelář, Šlachta, Šmarda, Šmejkal, Špak, Švach, Tejml, tesařík, Tibenský, tlak, Tobiáš, trefit, Trval, Tuma, tyč, Tymich, Uličný, Ulich, Ulrich, uniknout, Urban, Urbánek, útočný, úvod, Vacek, Vaďura, Vágner, Vácha, Valachovič, valnoha, Váňa, Vaněček, Vaniak, vápno, Vávra, vejprava, veselý, Vidumský, Víger, Viktoria, vlček, volej, Vonášek, Vosyka, Votava, vrabec, vyloučený, vyloţený, Výravský, vyrazit, vyrovnání, Vyskočil, vystrašit, Wagner, Weber, Wohlgemuth, zachránit, zákostelský, zákrok, Západočech, zlikvidovat, zlínský, Zúbek, ţiţkovský, ŢK (ţlutá karta) DBI010 - DIS - MFF UK Přednáška č. 6 Shlukování metodou 3 CM • Cover Coefficient-based Clustering Methodology • Zaloţen na tzv. koeficientech pokrytí DBI010 - DIS - MFF UK Shlukování metodou • Pro indexační matici w1,1 w2,1 D wn,1 w1,2 w2,2 wn,2 3 CM w1,m w2,m wn,m se nejprve spočtou inverzní hodnoty řádkových a sloupcových součtů DBI010 - DIS - MFF UK Shlukování metodou • Inverzní řádkové součty i 3 CM 1 m wi,k k 1 • Inverzní sloupcové součty • Předpoklad: – Kaţdý dokument indexován alespoň jedním termem – Kaţdý term pouţit k indexaci alespoň jednoho dokumentu DBI010 - DIS - MFF UK j 1 n wk , j k 1 Shlukování metodou 3 CM • Číslo wi, j * i vyjadřuje význam j-tého termu v i-tém dokumentu – Jak je pravděpodobné, pokud náhodně ukáţi do i-tého dokumentu, ţe najdu právě j-tý term? • Číslo wi, j * j vyjadřuje význam i-tého dokumentu pro j-tý term – Jak je pravděpodobné, pokud náhodně ukáţi na výskyt j-tého termu v kolekci dokumentů, ţe to bude právě v i-tém dokumentu? DBI010 - DIS - MFF UK Shlukování metodou 3 CM • Poté spočteme matici C koeficientů pokrytí ci, j w j,k * i wi,k * k i k wi,k w j,k m m k 1 k 1 Pravděpodobnost toho, ţe poté, co náhodně vyberu výskyt slova v i-tém dokumentu, a následně náhodný výskyt stejného slova v celé kolekci, bude tento vybraný výskyt právě z j-tého dokumentu DBI010 - DIS - MFF UK Shlukování metodou 3 CM • Poté spočteme matici C koeficientů pokrytí ci, j w j,k * i wi,k * k i k wi,k w j,k m m k 1 k 1 Pokud i-tý dokument obsahuje výlučnou sadu jinde se nevyskytujících termů, bude • cii =1, tj. jeho termy zcela pokrývají termy i-tého dok. • cij =0 iff i<>j, tj. jeho termy nepokrývají ţádné jiné dok. DBI010 - DIS - MFF UK Shlukování metodou n 1) n ci , j 1 j 1 n Rozepsat dle definice Vytknout i m ci, j i k wi, k w j, k j 1 i i n j 1 m 3 CM Prohodit pořadí součtů Vytknout wi,kk k 1 m n k wi, k w j, k i k wi, k w j, k j 1k 1 m k 1 j 1 m n wi, k k w j, k i wi, k 1 1 k 1 j 1 k 1 =1 DBI010 - DIS - MFF UK =1 Shlukování metodou 2) 3) 4) 5) 6) 3 CM ci, j 0 - zřejmé ci, j 1 - plyne z 1) a 2) ci, j 0 c j, i 0 k wi,k w j,k 0 ci, j 0 c j, i 0 - plyne z2) a 4) ci, i ci, j c j, j c j, i d i d j DBI010 - DIS - MFF UK Shlukování metodou 3 CM • Koeficient pokrytí cij udává, nakolik termy jednoho dokumentu pokrývají termy ostatních dokumentů • Pokud dokument špatně pokrývá ostatní, je hodnota cii blízká hodnotě 1 • Pokud dokument naopak dobře pokrývá ostatní, je hodnota cii blízká hodnotě 0 DBI010 - DIS - MFF UK Shlukování metodou 3 CM • i ci, i Decoupling coefficient • i 1 n ci, i Coupling coefficient • nc i Počet poţadovaných shluků i 1 • m pi i i wi, j j 1 „Síla“ dokumentu být centrem shluku DBI010 - DIS - MFF UK Shlukování metodou m • pi i i wi, j j j j 1 normalizovaný výpočet, kde n • ci, j i k wk ,i wk , j k 1 i ci, i i 1 ci, i DBI010 - DIS - MFF UK 3 CM Shlukování metodou 3 CM • Jako centra shluků se vezme prvních nc dokumentů s nejvyšší hodnotou pi • Dokumenty příliš nepodobné je lépe vynechat, zařadit je do speciálního „odpadkového“ shluku (ten se vţdy porovnává s kaţdým dotazem), a sníţit nc • Z podobných dokumentů (porovnáním cii, cij, cjj a cji) je potřeba vzít jen první dokument a ostatní přeskočit • Dokumenty se přiřadí nejbliţšímu centru DBI010 - DIS - MFF UK x y z d01 0,9800 0,1950 0,0397 0,8233 d02 0,9400 0,3410 0,0109 0,7740 d03 0,9600 0,2800 0,0000 0,8065 d04 0,9700 0,2430 0,0071 0,8196 d05 0,9500 0,3120 0,0125 0,7846 d06 0,1900 0,9800 0,0592 0,8136 d07 0,3200 0,9400 0,1183 0,7255 d08 0,2200 0,9600 0,1732 0,7390 d09 0,2300 0,9700 0,0787 0,7820 d10 0,0100 0,0200 0,9997 0,9711 0,1733 0,1908 0,6669 DBI010 - DIS - MFF UK Shlukování metodou C3M • Koeficienty pokrytí c 1 2 3 4 5 6 7 8 9 10 1 0,1439 0,1421 0,1428 0,1432 0,1427 0,0579 0,0761 0,0639 0,0636 0,0238 2 0,1336 0,1358 0,1352 0,1346 0,1356 0,0736 0,0884 0,0771 0,0783 0,0079 3 0,1399 0,1408 0,1409 0,1406 0,1409 0,0677 0,0834 0,0709 0,0727 0,0022 4 0,1426 0,1425 0,1429 0,1429 0,1428 0,0636 0,0803 0,0675 0,0689 0,0060 5 0,1360 0,1374 0,1371 0,1367 0,1374 0,0707 0,0860 0,0744 0,0755 0,0088 6 0,0572 0,0774 0,0683 0,0632 0,0733 0,1561 0,1554 0,1575 0,1563 0,0354 7 0,0671 0,0828 0,0751 0,0711 0,0795 0,1386 0,1420 0,1437 0,1400 0,0602 8 0,0574 0,0736 0,0650 0,0608 0,0701 0,1431 0,1464 0,1509 0,1445 0,0883 9 0,0604 0,0791 0,0705 0,0657 0,0753 0,1502 0,1509 0,1529 0,1508 0,0443 10 0,0281 0,0099 0,0027 0,0072 0,0108 0,0423 0,0806 0,1161 0,0550 0,6474 DBI010 - DIS - MFF UK Shlukování metodou C3M • Koeficienty , , a p 1 2 3 4 5 6 7 8 9 10 0,1439 0,1358 0,1409 0,1429 0,1374 0,1561 0,1420 0,1509 0,1508 0,6474 1 2 3 4 5 6 7 8 9 10 0,8561 0,8642 0,8591 0,8571 0,8626 0,8439 0,8580 0,8491 0,8492 0,3526 1 2 3 4 5 6 7 8 9 10 p 0,1496 0,1516 0,1501 0,1494 0,1510 0,1619 0,1679 0,1734 0,1638 0,2351 DBI010 - DIS - MFF UK n 2 Shlukování metodou C3M • Po výběru 8. dokumentu za centrum shluku c 1 2 3 4 5 6 7 8 9 10 1 0,1439 0,1421 0,1428 0,1432 0,1427 0,0579 0,0761 0,0639 0,0636 0,0238 2 0,1336 0,1358 0,1352 0,1346 0,1356 0,0736 0,0884 0,0771 0,0783 0,0079 3 0,1399 0,1408 0,1409 0,1406 0,1409 0,0677 0,0834 0,0709 0,0727 0,0022 4 0,1426 0,1425 0,1429 0,1429 0,1428 0,0636 0,0803 0,0675 0,0689 0,0060 5 0,1360 0,1374 0,1371 0,1367 0,1374 0,0707 0,0860 0,0744 0,0755 0,0088 6 0,0572 0,0774 0,0683 0,0632 0,0733 0,1561 0,1554 0,1575 0,1563 0,0354 7 0,0671 0,0828 0,0751 0,0711 0,0795 0,1386 0,1420 0,1437 0,1400 0,0602 8 0,0574 0,0736 0,0650 0,0608 0,0701 0,1431 0,1464 0,1509 0,1445 0,0883 9 0,0604 0,0791 0,0705 0,0657 0,0753 0,1502 0,1509 0,1529 0,1508 0,0443 10 0,0281 0,0099 0,0027 0,0072 0,0108 0,0423 0,0806 0,1161 0,0550 0,6474 nelze vybrat 6.,7. a 9., jsou podobné DBI010 - DIS - MFF UK x y z d01 0,9800 0,1950 0,0397 0,8233 d02 0,9400 0,3410 0,0109 0,7740 d03 0,9600 0,2800 0,0000 0,8065 d04 0,9700 0,2430 0,0071 0,8196 d05 0,9500 0,3120 0,0125 0,7846 d06 0,1900 0,9800 0,0592 0,8136 d07 0,3200 0,9400 0,1183 0,7255 d08 0,2200 0,9600 0,1732 0,7390 d09 0,2300 0,9700 0,0787 0,7820 d10 0,0100 0,0200 0,9997 0,9711 0,1733 0,1908 0,6669 DBI010 - DIS - MFF UK Shlukování 2 C ICM • Cover Coefficient-based Incremental Clustering Methodology – INSERT: přiřazení do nejbliţšího, resp. odpadkového shluku – DELETE: při mazání centra shluku se shluk označí jako neplatný – REORGANIZE: • Nově se určí centra, • Shluky, jejichţ centrum nebylo znovu vybráno, se zneplatní • Dokumenty z neplatných shluků se znovu přiřadí – Nepostihuje fakt, ţe některé dokumenty ze zachovaných shluků měly být přeřazeny, protoţe nová centra mohou být blíţe DBI010 - DIS - MFF UK Shlukování pomocí sférického k-mean algoritmu Dhillon, I., S.; Modha, D., S. • Vektorový index D 0,1 nm • Rozdělen na k disjunktních mnoţin dokumentů D • Pro kaţdou mnoţinu j je definován 1 di – průměrný dokument m j nj mj – centroid s jednotkovou délkou c j mj d i j DBI010 - DIS - MFF UK k ozn. j j 1 S k d1 m c d2 • Shlukování pomocí sférického k-mean algoritmu Hodnotu d i c j d i j můţeme povaţovat za míru kvality shluku (čím vyšší vzájemná podobnost, tím lépe) • Hodnota S k d i c j k j 1 d i j představuje míru kvality celého rozdělení Pozn.: místo euklidovského k-mean algoritmu, minimalizujícího 2 S k d i c j k DBI010 - DIS - MFF UK j 1 d i j Shlukování pomocí sférického k-mean algoritmu • Hledáme rozdělení s maximální hodnotou • Zřejmě S k d i c j n k j 1 d i j protoţe (vektory jsou normalizovány) • Obecně NP-úplný problém d i c j 1 – Iterativní algoritmus konvergující k lokálnímu maximu DBI010 - DIS - MFF UK Sférický k-mean algoritmus • Inicializace (0-tá iterace) – Dokumenty se náhodně zařadí do k shluků (0) Sk (zde k=3) – Spočtou se polohy center (průměry) ( 0) cj DBI010 - DIS - MFF UK Sférický k-mean algoritmus • Krok iterace tt+1 – Dokumenty se přiřadí k nejbliţšímu centru z minulé iterace ( t 1) j | x (t ) (t ) d c j d i c d x i i – Spočtou se nové polohy center c (jt 1) DBI010 - DIS - MFF UK Sférický k-mean algoritmus • Iterace se opakují do té doby, dokud nárůst hodnotící funkce neklesne pod stanovenou mez • Tedy dokud S (kt 1) S (kt ) DBI010 - DIS - MFF UK Sférický k-mean algoritmus • Totéţ pro k=5 DBI010 - DIS - MFF UK Sférický k-mean algoritmus • Ohodnocovací funkce je neklesající (t 1) Sk (t ) Sk • Cauchyova-Schwartzova nerovnost x, x 1 d i x d i c j d di j i j tedy: centroid mnoţiny má nejvyšší průměrnou podobnost ke všem dokumentům v mnoţině DBI010 - DIS - MFF UK k ? k (t ) (t ) (t 1) d ic j S k S k j 1 d i (jt ) j 1 d i (jt 1) (t 1) d ic j • Chceme, ukázat, ţe platí uvedená nerovnost, tedy ţe iterace konvergují (rostoucí, shora omezená posloupnost) ? DBI010 - DIS - MFF UK (t ) Sk k (t ) k k d ic j j 1 d i (jt ) (t ) (t 1) l 1 j 1 d i j l (t ) d ic j • Podobnosti se sečtou přes oblasti dané průnikem oblastí z předchozí a následující iterace • Sčítá se stále přes podobnosti k původním centrům, takţe se součet nezmění DBI010 - DIS - MFF UK k k j 1l 1 d i (jt ) (t 1) l (t ) k k d ic j j 1l 1 d i (jt ) (t 1) l (t ) d ic l • Místo původního centra spočteme podobnost k nejbliţšímu centru předchozí iterace • Protoţe to není dále neţ centrum původní, podobnost neklesne DBI010 - DIS - MFF UK k l 1 d i (t 1) l (t ) k d ic l l 1 d i (t 1) l (t 1) d ic l • Cauch.-Schwartz. nerovnost: – součet podobností skupiny dokumentů vzhledem k libovolnému jednotkovému vektoru není větší neţ součet podobností vzhledem k centroidu skupiny DBI010 - DIS - MFF UK Celkem dostaneme posloupnost nerovností k k k (t ) (t ) (t ) Sk d ic j d ic j j 1l 1 d i (jt ) (l t 1) j 1 d i (jt ) k k Přiřazení dok. V t+1ní iteraci: (t ) (t ) t 1) l d i | x d i c j d i c x ( Cauch.-Schwartz. nerovnost: k l 1 d i (l t 1) (t ) d icl (t ) d icl (t ) (t 1) l 1 j 1 d i j l k k l 1 j 1 d i (jt ) (l t 1) (t ) k d icl l 1 d i (l t 1) S tk 1 DBI010 - DIS - MFF UK (t 1) d icl Příklad sfér. k-mean algoritmu • Kombinace • Matice incidence pro dokumentů tří databází tři spočtené shluky – MEDLIN: 1033 abstraktů, medicínské časopisy – CISI: 1460 abstraktů, vyhledávání informací – CRANFIELD: 1400 abstraktů, letectví MEDLIN 1004 11 18 CISI 5 1440 15 CRANFIELD 4 16 1380 DBI010 - DIS - MFF UK Příklad sfér. k-mean algoritmu • Rozloţení podobností dok. stejných shluků DBI010 - DIS - MFF UK Příklad sfér. k-mean algoritmu • Rozloţení podobností dok. různých shluků Shluky navzájem (téměř) kolmé DBI010 - DIS - MFF UK Charakterizace shluků • Vzájemná kolmost shluků získaných k-mean algoritmem znamená, ţe termy důleţité pro identifikaci jednoho centra jsou (téměř) nezajímavé pro identifikaci ostatních center • Jednotlivá centra lze povaţovat za prototyp obsahu dokumentů v něm – koncept DBI010 - DIS - MFF UK Značkování shluků • Pro k-tici shluků dokumentů S k k definujeme k-tici shluků termů W k j 1 • Do i-tého shluku patří ty termy, které mají v i-tém konceptu větší váhu, neţ v ostatních • Termy se uspořádají v rámci shluků termů • Shluky termů se uspořádají za sebe v libovolném pořadí • Kaţdý shluk dokumentů se označí nejvýraznějšími termy v odpovídajícím shluku termů DBI010 - DIS - MFF UK DBI010 - DIS - MFF UK Hierarchické shlukování • Buďto opakování postupu, produkujícího ploché shluky na centar shluků předchozí úrovně, nebo postupné vytváření do splnění ukončovací podmínky (typicky dosaţení poţadovaného počtu shluků • Aglomerativní metody – Postupné spojování nejpodobnějších menších shluků • Rozdělovací metody – Postupné rozdělování největších shluků DBI010 - DIS - MFF UK Hierarchické shlukování • Různé definice podobnosti shluků generují různé výsledky – Metoda nejbližšího souseda • Podobnost shluků = = maximální podobnost dvojice dokumentů – Metoda nejvzdálenějšího souseda • Podobnost shluků = = minimální podobnost dvojice dokumentů – Průměrová metoda • Podobnost shluků = = průměrná podobnost dvojic DBI010 - DIS - MFF UK d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 Aritmetika 0.0 0.0 0.541 0.0 0.55 0.0 0.0 0.0 0.0 0.0 basketbal 0.0 0.0 0.0 0.0 0.0 0.0 0.556 0.563 0.0 0.0 C 0.0 0.0 0.541 0.0 0.55 0.0 0.0 0.0 0.0 0.0 chyba 0.0 0.0 0.0 0.556 0.0 0.0 0.0 0.0 0.517 0.0 cyklus 0.0 0.0 0.0 0.556 0.55 0.55 0.0 0.0 0.0 0.0 dědičnost 0.0 0.0 0.541 0.556 0.55 0.0 0.0 0.0 0.0 0.0 hardware 0.563 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 hráč 0.0 0.583 0.0 0.0 0.0 0.0 0.0 0.531 0.517 0.556 java 0.0 0.0 0.541 0.556 0.0 0.0 0.0 0.0 0.0 0.0 jazyk 0.0 0.0 0.541 0.556 0.55 0.0 0.0 0.0 0.0 0.0 koš 0.0 0.0 0.0 0.0 0.0 0.0 0.556 0.531 0.0 0.0 míč 0.0 0.0 0.0 0.0 0.0 0.0 0.556 0.531 0.333 0.0 pivot 0.0 0.0 0.0 0.0 0.0 0.0 0.556 0.531 0.0 0.0 platforma 0.0 0.0 0.0 0.556 0.55 0.0 0.0 0.0 0.0 0.0 počítač 0.563 0.0 0.541 0.556 0.55 0.55 0.0 0.0 0.0 0.0 procedura 0.0 0.583 0.0 0.0 0.55 0.55 0.0 0.0 0.0 0.0 rychlost 0.563 0.0 0.0 0.0 0.0 0.55 0.0 0.0 0.0 0.556 server 0.563 0.0 0.0 0.0 0.0 0.55 0.0 0.0 0.0 0.0 software 0.563 0.0 0.541 0.0 0.0 0.0 0.0 0.0 0.0 0.0 sport 0.0 0.0 0.0 0.0 0.0 0.0 0.556 0.563 0.55 0.556 síť 0.563 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.517 0.0 trojka 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.531 0.517 0.0 Výkonnost 0.0 0.0 0.0 0.556 0.0 0.55 0.0 0.0 0.0 0.0 DBI010 - DIS - MFF UK Hierarchické shlukování • Výsledek pro aglomerativní hierarchické shlukování s pouţitím průměrové metody DBI010 - DIS - MFF UK Hierarchické shlukování • Vzniklá hierarchie je binární (obecně k-ární) • Vhodnější je však obecná hierarchie, lépe odráţející podobnosti mezi shluky • Nalezení optimálního počtu potomků pro kořenový shluk, následně rekurzivní sestup – Sleduje se změna kvality vytvořených shluků pro rostoucí počet potomků • Řez v místě největšího nárůstu chyby • Řez v místě největšího poměru rozdílů chyby • Řez v místě největší druhé derivace DBI010 - DIS - MFF UK Hierarchické shlukování • Pro řez v místě největšího nárůstu chyby vychází dělení d1, d2, d3, d4, d5, d6, d7, d8, d9, d10 d1, d2, d3, d4, d5, d6 d1 d2 d3 d4 d5 d7, d8, d9, d10 d6 d7, d8 d7 DBI010 - DIS - MFF UK d9 d8 d10 Obecné značkování shluků • Usnadňuje uţivateli navigaci mezi shluky • Realizováno: – mnoţinou termů – mnoţinou (víceslovných) frází • Termy by měly být pro shluk – Deskriptivní (popisovat dobře obsah dokumentů) – Diskriminační (odlišovat dobře obsah shluku od jiných) DBI010 - DIS - MFF UK Obecné značkování shluků • Modifikovaný informační zisk (Modified Information Gain) termu t ve shluku X IGm t , X Pt , X log Pt , kde Pt , X P t, X P t , X log Pt * PX P t *P X # dokumentů,které obsahují term t # dokumentů,které NEobsahují term t Pt # všech dokumentův kolekci # všech dokumentův kolekci PX # dokumentů ve shluku X # všech dokumentův kolekci Pt , X PX * PX | t PX # dokumentů MIMO shluk X # všech dokumentův kolekci # dokumentů ve shluku X obsahujících t # počet všech dokumentův kolekci DBI010 - DIS - MFF UK Obecné značkování shluků • Vybereme termy s nejvyšším IGm • Sloučíme shluky stejné úrovně se shodným označkováním DBI010 - DIS - MFF UK Modely DIS zaloţené na VDIS Induktivní model Sémantické sítě Induktivní IS • Modifikace vektorového modelu • Podobná dvojvrstvé neuronové síti. – Spodní (vstupní) vrstva obsahuje m uzlů reprezentujících termy t1, …, tm – Horní (výstupní) vrstva obsahuje n uzlů reprezentujících dokumenty d1, …, dn – Termy tj jsou spojeny s dokumenty di orientovanými hranami, ohodnocenými vahami wi,j DBI010 - DIS - MFF UK Induktivní IS • Potud shodné s vektorovým DIS d2 d1 W1,1 d3 d4 d5 dn W1,3 t1 t2 t3 DBI010 - DIS - MFF UK t4 tm Induktivní IS • Navíc obrácené hrany s vahou xi,j • Obvykle xi,j = wi,j, obecně různé d2 d1 W1,1 d3 W1,3 t1 d4 d5 dn x2,5 t2 x4,5 t3 DBI010 - DIS - MFF UK t4 tm Induktivní IS • Dotaz q určuje počáteční hodnoty vstupních uzlů. • Inicializace t j q j m • Dopředný krok d i wi, j t j • Zpětný krok t j xi , j d i j 1 n i 1 DBI010 - DIS - MFF UK Induktivní IS • Hodnoty v dotazu inicializují dolní vrstvu termů t1 t2 t3 DBI010 - DIS - MFF UK t4 tm Induktivní IS • Dopředný krok spočítá podobnosti dokumentů s dotazem d2 d1 t1 d3 d4 t2 d5 dn t3 DBI010 - DIS - MFF UK t4 tm Induktivní IS • Zpětný krok aktivuje další termy, které v původním dotazu nebyly, ale jsou důleţité v dokumentech podobných původnímu dotazu d2 d1 t1 d3 d4 t2 d5 dn t3 DBI010 - DIS - MFF UK t4 tm Induktivní IS • Dopředný krok aktivuje další dokumenty ... d2 d1 t1 d3 d4 t2 d5 dn t3 DBI010 - DIS - MFF UK t4 tm Induktivní IS • Během iterací narůstá celkový součet hodnot na uzlech vrstvy • Dopředný krok: – Sloupcový součet matice indexu je pro dostatečný počet dokumentů větší neţ 1 Kaţdá hodnota v dolní vrstvě přispěje do horní vrstvy větší hodnotou, neţ je její velikost DBI010 - DIS - MFF UK Induktivní IS • Během iterací narůstá celkový součet hodnot na uzlech vrstvy • Zpětný krok: – Řádkový součet matice normalizovaného indexu je vţdy větší neţ 1 m m 2 wi, j 1 wi, j 1 j 1 j 1 Kaţdá hodnota v horní vrstvě přispěje do dolní vrstvy větší hodnotou, neţ je její velikost DBI010 - DIS - MFF UK Induktivní IS • Řešením tzv. laterální inhibice • Dokumenty pospojovány navzájem hranami • Kaţdá ohodnocena vahou li,j, určující nakolik j-tý dokument potlačuje i-tý dokument • Před zpětný krok se doplní inhibiční krok n di di l d j j 1 pro ij i, j DBI010 - DIS - MFF UK Induktivní IS • Buďto n2 nezávislých koeficientů • Nebo pro kaţdé j jeden koeficient • Nebo jediný koeficient pro všechny váhy d2 d1 t1 d3 d4 t2 d5 dn t3 DBI010 - DIS - MFF UK t4 tm Induktivní IS • Dopředný krok n d i wi, j t j wi t j 1 Sim wi ,t • Zpětný krok (bez lat. inhibice, x w) t k 1 k Sim d i ,t * d i i 1 n • Tedy spec. případ zpětné vazby pro DBI010 - DIS - MFF UK i Sim d i,t k Sémantické sítě a spreading • Sémantická síť – Zobecnění tezauru • O vztahy mezi dokumenty • O vztahy mezi dokumenty a termy • Obecný orientovaný graf – Vrcholy odpovídají termům a dokumentům – Ohodnocené orientované hrany odpovídají vztahům DBI010 - DIS - MFF UK Sémantické sítě a spreading • Vztahy termterm – – – – Synonyma Širší-uţší termy Příbuzné termy ... • Vztahy termdokument – Důleţitost termu pro identifikaci dokumentu – ... • Vztahy dokumentdokument – Citace – ... DBI010 - DIS - MFF UK Sémantická sít term(y) Komponenta hardware informační systém ISA P V počítač ISA domácí počítač K S K data osobní počítač výběr informace K bibliografická informatika P D2 Synonyma Přiřazení termu k dokumentu ISA P ISA informatika V P D1 Širší/užší Vztah C P D3 Citace dokument(y) DBI010 - DIS - MFF UK O P D4 Obdobné dokumenty Spreading • Dotaz q q1, q2 ,...,qm 0,1m • Inicializace t j q j m q j j 1 • Přírůstek hodnoty uzlu uj způsobený uzlem ui během iterace u j uiwi, j wi, k • Celkově u j u j i DBI010 - DIS - MFF UK k uiwi, j wi, k k Modely vycházející z boolského modelu Fuzzy model MMM model Paice model P-norm model Rozšíření boolského modelu • Oproti klasickému boolskému modelu – Dovolují váţené dotazy • Informační(0,7) AND Systém(0,3) • Chov(0,9) AND (Psů(0,6) OR Koček(0,4)) – Dovolují vyuţít vektorový index • Umoţňují uspořádat výstup dle očekávané relevance DBI010 - DIS - MFF UK Fuzzy logika • Dokument d i wi,1, wi,2, ..., wi,n • Dotaz t a qa AND tbqb Podobnost min qawi,a, qbwi,b t a qa OR tbqb maxqawi,a, qbwi,b NOT t a qa 1 qa wi,a DBI010 - DIS - MFF UK Fuzzy logika • Dokumenty se stejnou 1 podobností vůči neváţené konjunkci jsou značeny modře • Dokumenty se stejnou 0 podobností vůči 0 neváţené disjunkci jsou značeny zeleně DBI010 - DIS - MFF UK 1 Fuzzy logika • Př.: 1 11 d1 2 , 4 ,8 1 11 d 2 2 , 6,8 1 1 1 1 1 1 1 1 a AND bAND c min , , min , , 2 4 8 8 2 6 8 8 1 1 1 1 1 1 1 1 max , , max , , a OR b OR c 2 4 8 2 2 6 8 2 1 3 1 5 1 1 NOT b 6 6 4 4 DBI010 - DIS - MFF UK MMM (Min-Max Model) • Lineární kombinace minima a maxima t a qa AND tbqb Sim k MinAnd min qa wi,a, qb wi,b k MaxAnd maxqa wi,a, qb wi,b t a qa OR tbqb Sim k MinOr min qa wi,a, qb wi,b k MaxOr maxqa wi,a, qb wi,b • kMinAnd>kMaxAnd, kMinOr<kMaxOr • Obvykle 2 koef.:kMinAnd+kMaxAnd =kMinOr+kMaxOr=1 Nebo 1 koef.:k=kMinAnd=1-kMaxAnd=kMaxOr=1-kMinOr DBI010 - DIS - MFF UK MMM (Min-Max Model) 1 • Dokumenty se stejnou podobností vůči neváţené konjunkci jsou značeny modře • Dokumenty se stejnou 0 podobností vůči 0 neváţené disjunkci jsou značeny zeleně DBI010 - DIS - MFF UK k=0,75 1 MMM (Min-Max Model) 1 11 d1 2 , 4 ,8 1 11 d 2 2 , 6,8 a AND bAND c 7 3 1 1 1 4 8 4 2 32 7 3 1 1 1 4 8 4 2 32 a OR b OR c 1 1 3 1 13 4 8 4 2 32 1 1 3 1 13 4 8 4 2 32 • Př.: 3 k 4 DBI010 - DIS - MFF UK Paice Model • Započítání všech pouţitých termů důleţitost klesá geometrickou řadou Sim rk q j wi, jk , kde 0 r 1 k k • Pro konjunkci jsou hodnoty q j k wi, j k uspořádány vzestupně • Pro disjunkci sestupně DBI010 - DIS - MFF UK Paice Model • Př.: 1 r 2 1 11 d1 2 , 4 ,8 1 11 d 2 2 , 6,8 a AND bAND c 36 1 1 1 1 1 1 32 1 1 1 1 1 1 . . . . . . 2 8 4 4 8 2 192 2 8 4 6 8 2 192 a OR b OR c 84 1 1 1 1 1 1 59 1 1 1 1 1 1 . . . . . . 2 2 4 4 8 8 192 2 2 4 6 8 8 192 DBI010 - DIS - MFF UK Rozšířená Boolská logika P-norm Model • Podobnosti se odvozují od vzdálenosti dokumentu (měřeno p-normou) od nulového dokumentu dF=<0, 0, …, 0> v případě disjunkce, resp. od jedničkového dokumentu dT=<1, 1, …, 1> v případě konjunkce DBI010 - DIS - MFF UK Rozšířená Boolská logika P-norm Model • Varianta bez váţení dotazu Sima OR b p p p wi,a wi,b 2 d F d i 1wi,a 1wi,b p Sima AND b 1 p p p 2 DBI010 - DIS - MFF UK 1 d T d i p Rozšířená Boolská logika P-norm Model • Bez váţení, k termů v dotazu SimOR k p wi, j p j 1 SimAND 1 k k p 1 wi, j p j 1 k DBI010 - DIS - MFF UK Rozšířená Boolská logika P-norm Model • S váţením, k termů v dotazu SimOR k p p q wi, j j j 1 p k q j j 1 k p p q 1 wi, j j j 1 SimAND 1 p k q j j 1 DBI010 - DIS - MFF UK Rozšířená Boolská logika P-norm Model • Pro p se model blíţí klasickému boolskému modelu • Pro p=1 se jedná o vektorový model • Pro p=2 se udávají lepší výsledky, neţ u vektorového modelu DBI010 - DIS - MFF UK Rozšířená Boolská logika p=2 1 • Dokumenty se stejnou podobností vůči neváţené konjunkci jsou značeny modře • Dokumenty se stejnou 0 podobností vůči 0 neváţené disjunkci jsou značeny zeleně DBI010 - DIS - MFF UK 1 Odstranění závislosti indexačních termů Síť konceptů v boolském modelu, Singular Value Decomposition – SVD ve vektorovém modelu Síť konceptů v boolském modelu • Vyţaduje boolský DIS s tezaurem • Místo s jednotlivými termy (které na sobě mohou být závislé) pracuje s takzvanými koncepty, které jsou jiţ navzájem nezávislé DBI010 - DIS - MFF UK Síť konceptů v boolském modelu • Synonyma – Všechny ekvivalentní termy (mnoţina synonym) tvoří jediný koncept (téma) • Např. „Domácí počítač“ „Osobní počítač“ – Dokumenty pouţívající libovolný z obou termů jsou povaţovány za dokumenty hovořící o stejném konceptu (tématu) – Existují tedy pouze 21=2 rozdílné třídy dokumentů místo čtyř v klasickém modelu DBI010 - DIS - MFF UK xy Síť konceptů v boolském modelu • Podobné termy (ve vzájemném vztahu) – Dvojice podobných termů definují tři (čtyři) nezávislé koncepty • Např. „Informační systém“ „Informatika“ – Dokumenty mohou nezávisle vypovídat • o „Informačním systému“ (ale ne o „Informatice“) • o „Informatice“ (ale ne o „Informačním systému“) • o tématu daném průnikem obou významů – Existuje tedy celkem 23=8 rozdílných tříd dokumentů místo čtyř v klasickém modelu DBI010 - DIS - MFF UK x y Síť konceptů v boolském modelu • Širší term – uţší term – Dvojice termů v tomto vztahu definují dva (tři) nezávislé koncepty • Např. „Počítač“ > „Osobní počítač“ – Dokumenty mohou nezávisle vypovídat • o „Počítači“ (ale ne o „Osobním počítači“), např. o mainframe • o „Osobním počítači“ (a tím zároveň o „Počítači“) – Existují tedy celkem 22=4 rozdílné třídy dokumentů, odlišných od klasického modelu y DBI010 - DIS - MFF UK x Síť konceptů Tezaurus: Synonyma/Vztahy/Uţší-širší termy hardware informační systém U U V počítač U domácí počítač data V U výběr informace U S informatika osobní počítač DBI010 - DIS - MFF UK U V bibliografická informatika Síť konceptů • Odpovídající síť atomických konceptů (témat) informatika bibliografická informatika hardware počítač domácí počítač osobní počítač informační systém X data výběr informace tzv. doplňkový koncept, zahrnuje „vše ostatní“ DBI010 - DIS - MFF UK spol. význam „bibl. inf.“ a „výběr informace“ Síť konceptů • V tezauru 9 termů, tj. potenciálně 29 = 512 různých tříd dokumentů • Ve skutečnosti 12 různých navzájem nezávislých atomických konceptů (dvanáctý reprezentuje jakékoli jiné téma, nezastoupené termy tezauru), tj. celkem 212 = 4096 různých tříd dokumentů • Kaţdý atomický koncept reprezentován konjunkcí všech termů v kladném nebo záporném smyslu podle toho, zda leţí uvnitř či vně odpovídající mnoţiny – Např. X reprezentuje: „informatika“ and „bibliografická informatika“ and „výběr informace“ and not „hardware“ and not „počítač“ and not „domácí počítač“ and not „informační systém“ and not „data“ and not „vše ostatní“ DBI010 - DIS - MFF UK data domácí počítač hardware informační systém informatika osobní počítač počítač výběr informace • Kaţdé skupině synonym se přiřadí jeden atomický koncept bibliografická informatika Konstrukce sítě konceptů 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 2 3 4 5 6 7 8 DBI010 - DIS - MFF UK data domácí počítač hardware informační systém informatika osobní počítač počítač výběr informace • Doplní se koncepty odpovídající dvojicím vztaţených termů bibliografická informatika Konstrukce sítě konceptů 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 2 3 4 5 6 7 8 X9 10 11 DBI010 - DIS - MFF UK data domácí počítač hardware informační systém informatika osobní počítač počítač výběr informace • Průchodem tezauru odspoda nahoru se do sloupců širších termů doplní jedničky ze sloupců uţších termů bibliografická informatika Konstrukce sítě konceptů 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 2 3 4 5 6 7 8 X9 10 11 DBI010 - DIS - MFF UK data domácí počítač hardware informační systém informatika osobní počítač počítač výběr informace • Doplní se nulový (doplňkový) atomický koncept bibliografická informatika Konstrukce sítě konceptů 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 2 3 4 5 6 7 8 X9 10 11 12 DBI010 - DIS - MFF UK Síť konceptů • Dotaz – Neváţená disjunkce termů ‘informatika’ OR ‘výběr informace’ OR ‘data’ – Váţená disjunkce termů (‘informatika’ ; 0.5) OR (‘výběr informace’ ; 1.0) OR (‘data’ ; 0.4) DBI010 - DIS - MFF UK DBI010 - DIS - MFF UK informatika výběr informace • Neváţená disjunkce termů se převede pomocí disjunkce odpovídajících sloupců na sloupcový vektor konceptů • Dokument se převede stejně ‘informatika’ OR ‘výběr informace’ OR ‘data’ (1,1,0,0,0,1,0,1,1,1,1,0) data Síť konceptů 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 Síť konceptů • Vektory dotazu a dokumentu se porovnají standardně skalárním součinem • Dotaz „informatika“ OR „výběr informace“ OR „data“ (1,1,0,0,0,1,0,1,1,1,1,0) • Dokument „Informační systém“ (0,1,0,0,1,0,0,1,1,1,1,0) • Podobnost 5, zatímco v případě vyhodnocení přes termy je podobnost nulová DBI010 - DIS - MFF UK Síť konceptů • Váţená disjunkce termů se převede na vektor vah konceptů vzhledem k dotazu • Dotaz q q1, q2, ...,qm w1, w2, ...,wk • Term t j t1, j, t 2, j, ...,t k , j • Váha konceptu vzhledem k dotazu qj qj max wi max j t r, j j t j1 r DBI010 - DIS - MFF UK 0.4 0.5 1.0 výběr informace DBI010 - DIS - MFF UK informatika • Dotaz (‘informatika’ ; 0.5) OR (‘výběr informace’ ; 1.0) OR (‘data’ ; 0.4) "i n f o r m a t i k a" 1 4 "v ý b ě r i n f o r m a c e" 1 2 "d a t a" 1 2 data Síť konceptů 1 1 1 / / / 2 4 2 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0.5*1/4 0.4*1/2 0 0 0 0.5*1/4 0 1.0*1/2 1.0*1/2 0.4*1/2 0.5*1/4 0 Odstranění závislosti indexačních termů, Redukce dimenzionality indexu Singular Value Decomposition - SVD Latent Semantic Indexing - LSI Latent Semantic Indexing - LSI • Obdobně jako u konceptů v boolském modelu se LSI snaţí nalézt navzájem nezávislé koncepty – témata, přes které je moţné indexovat dokumenty namísto závislých termů. • Nepouţívá tezaurus. • Odvozuje tzv. latentně sémantické závislosti termů přímo z indexu vektorového modelu. DBI010 - DIS - MFF UK Latent Semantic Indexing - LSI • 3 dokumenty ve 3D prostoru 2/2 D 3 /3 0 2/2 3 /3 0 0 3 / 3 1 • Hodnost matice = 2 DBI010 - DIS - MFF UK Singular Value Decomposition • Kaţdá matice A o rozměrech mxn hodnosti r, (např. matice A=DT, t.j. řádky termy), lze rozloţit na součin DT=USVT, kde – URmxr sloupcově ortonormální • Tvoří tedy bázi v prostoru termů s dimenzí odpovídající skutečné hodnosti matice – SRrxr diagonální regulární matice – VRnxr řádkově ortonormální • Tvoří tedy bázi v prostoru dokumentů s dimenzí odpovídající skutečné hodnosti matice DBI010 - DIS - MFF UK Singular Value Decomposition • Levé singulární vektory u1, u2, ..., ur – Vlastní vektory matice A.AT=DT.D • Singulární hodnoty 1 2 ... r > 0 – Odmocniny absolutních hodnot vlastních čísel matic A.AT , resp. AT.A • Pravé singulární vektory v1, v2, ..., vr – Vlastní vektory matice AT.A=D.DT U S 1 u1 VT v1 ur r DBI010 - DIS - MFF UK vr Singular Value Decomposition • Geometricky – Matice promítá jednotkovou kouli dimenze m na elipsoid dimenze r s osami ve směru sloupců matice U – Délkami poloos jsou hodnoty 1, 2, …, r – Pravé singulární vektory se promítají na vektory rovnoběţné s osami DT=USVT V*,3 DBI010 - DIS - MFF UK V*,1 V*,2 2 U*, 2 1 U*, 1 3 U*, 3 Latent Semantic Indexing (LSI) • LSI zohledňuje vzájemné závislosti termů pomocí SVD rozkladu matice indexu + Spolu se vyskytující (ekvivalentní) termy se promítají do společné dimenze + Dovoluje navíc další redukci aproximací matice + Další zmenšení prostoru pro uloţení indexu + Dokumenty pouţívající podobné termy mohou být velmi podobné, i kdyţ neobsahují ţádné společné termy DBI010 - DIS - MFF UK Latent Semantic Indexing (LSI) • Reprezentuje dokumenty a dotazy v prostoru s dimenzí rovnou hodnosti původní indexační matice • Dimenze odpovídají levým singulárním vektorům SVD rozkladu DBI010 - DIS - MFF UK Latent Semantic Indexing (LSI) • Je moţné vyuţít rovněţ aproximaci matice indexu D pomocí matice s určenou niţší hodností k<r – Pro k<r se matice USVT aproximuje součinem UkSkVkT, kde • Uk je prvních k sloupců matice U • Sk je levý horní roh matice S velikosti k x k • Vk je prvních k sloupců matice V DBI010 - DIS - MFF UK Latent Semantic Indexing (LSI) • Elipsoid je sníţením hodnoty k o jedna zploštěn ve směru nejkratší osy • UkSkVkT je navíc nejlepší aproximace matice USVT s hodností k ve smyslu Frobeniovy normy rozdílu obou matic • Tedy U S V T U k S kV Tk F U S VT X F pro všechny X s hodností k kde Frobeniova norma M F DBI010 - DIS - MFF UK m n xi2, j i 1 j 1 Latent Semantic Indexing (LSI) • Příklad – 6 dokumentů obsahujících – 5 různých termů d1 d2 d3 d4 d5 d6 Kosmonaut 1,0000 1,0000 Astronaut 1,0000 Měsíc 1,0000 1,0000 Vozidlo 1,0000 1,0000 1,0000 Auto 1,0000 1,0000 DBI010 - DIS - MFF UK U= Kosmonaut Astronaut Měsíc Vozidlo Automobil u1 u2 u3 u4 u5 -0,4403 -0,1293 -0,4755 -0,7030 -0,2627 0,2962 0,3315 0,5111 -0,3506 -0,6467 -0,5695 0,5870 0,3677 -0,1549 0,4146 -0,5774 0,0000 0,0000 0,5774 -0,5774 0,2464 0,7272 -0,6144 0,1598 -0,0866 2,1625 1,5944 1,2753 S= 1,0000 0,3939 V= D1 D2 D3 D4 D5 D6 v1 v2 v3 v4 v5 -0,7486 -0,2797 -0,2036 -0,4466 -0,3251 -0,1215 0,2865 0,5285 0,1858 -0,6255 -0,2199 -0,4056 -0,2797 0,7486 -0,4466 0,2036 -0,1215 0,3251 0,0000 0,0000 -0,5774 0,0000 0,5774 -0,5774 -0,5285 0,2865 0,6255 0,1858 0,4056 -0,2199 DBI010 - DIS - MFF UK Latent Semantic Indexing (LSI) • Zpětné roznásobení pro k=5=r 1.000 -0.000 1.000 1.000 0.000 0.000 1.000 1.000 -0.000 0.000 1.000 -0.000 -0.000 -0.000 0.000 -0.000 -0.000 0.000 1.000 1.000 DBI010 - DIS - MFF UK -0.000 -0.000 -0.000 1.000 -0.000 0.000 -0.000 0.000 -0.000 1.000 Latent Semantic Indexing (LSI) • Zpětné roznásobení pro k=4 1.051 0.151 0.872 1.033 -0.018 -0.028 0.918 1.069 -0.018 0.010 0.939 -0.179 0.151 -0.040 0.021 -0.018 -0.053 0.045 0.988 1.006 DBI010 - DIS - MFF UK -0.039 -0.116 0.098 0.975 0.014 0.021 0.063 -0.053 0.014 0.993 Latent Semantic Indexing (LSI) • Zpětné roznásobení pro k=3 1.051 0.151 0.872 1.033 -0.018 -0.028 0.918 1.069 -0.018 0.010 0.606 -0.179 0.151 0.294 -0.312 -0.018 -0.053 0.045 0.988 1.006 DBI010 - DIS - MFF UK 0.294 -0.116 0.098 0.641 0.347 -0.312 0.063 -0.053 0.347 0.659 Latent Semantic Indexing (LSI) • Zpětné roznásobení pro k=2 0.848 0.361 1.003 0.978 0.130 0.516 0.358 0.718 0.130 -0.386 0.282 0.155 0.361 0.206 -0.076 0.130 -0.206 -0.050 1.029 0.899 DBI010 - DIS - MFF UK 0.206 -0.025 0.155 0.617 0.411 -0.076 -0.180 -0.206 0.411 0.487 DIS s pouţitím LSI • Místo matice DT pouţíváme její SVD rozklad USVT, resp. jeho aproximaci UkSkVkT. • Podobnost dvojic dokumentů DDT =(UkSkVkT)(VkSkTUkT) =(UkSk)(SkTUkT) {Vk je ortonormální, tedyVkTVk=I} =UkSk2UkT {Sk je diagonální, tedy Sk=SkT} =(UkSk)(UkSk)T DBI010 - DIS - MFF UK DIS s pouţitím LSI • Místo matice DT pouţíváme její SVD rozklad USVT, resp. jeho aproximaci UkSkVkT. • Podobnost dvojic termů DTD =(VkSkTUkT)(UkSkVkT) =(VkSkT)(SkVkT) {Uk je ortonormální, tedyUkTUk=I} =VkSk2VkT {Sk je diagonální, tedy SkT=Sk} =(VkSk)(VkSk)T DBI010 - DIS - MFF UK DIS s pouţitím LSI • Z rovnosti DT=UkSkVkT {vynásob. UkT zleva} dostáváme UkTDT=SkVkT {UkTUk=I} a dále {vynásob. S-1 zleva} dostáváme Sk-1UkTDT=VkT {Sk-1Sk=I} • Odtud transpozicí dostáváme Vk=DUkSk-1 • Tedy: – Z původního dokumentu s m dimenzemi získáme vektor v novém prostoru dokumentů s k dimenzemi vynásobením maticí UkSk-1 – Na dotaz se můţeme dívat jako na nepřevedený dokument, a rovněţ jej nejprve vynásobit maticí UkSk-1 DBI010 - DIS - MFF UK DIS s pouţitím LSI • Podobnost dotazu a dokumentu – SimLSI(q,Di)=Sim(qUkSk-1,DiUkSk-1) • Statická metoda – Rozklad je proveden nad konkrétní mnoţinou dokumentů – Další dokumenty je moţné přidat pomocí UkSk-1 transformace, ale toto přidání jiţ neovlivní latentně sémantické vlastnosti termů DBI010 - DIS - MFF UK Latent Semantic Indexing (LSI) • Vyhodnocení dotazu [měsíc,vozidlo], tedy <0, 0, 1, 1, 0> • Bez LSI získáme podobnosti <2.000; 1.000; 0.000; 1.000; 1.000; 0.000> d1 d2 d3 d4 d5 d6 Kosmonaut 1,0000 1,0000 Astronaut 1,0000 Měsíc 1,0000 1,0000 Vozidlo 1,0000 1,0000 1,0000 Auto 1,0000 1,0000 DBI010 - DIS - MFF UK Latent Semantic Indexing (LSI) • S LSI jsou dokumenty a dotaz pomocí matice U2S2-1 (pro k=2) zkonvertovány do dvojrozměrného prostoru zachycujícího dva nejvýraznější latentně sémantické koncepty • Poté je dotaz normálně vyhodnocen • Tím získáme podobnosti <0.983; 0.621; 0.849; 0.424; 0.713; 0.108> Srov. <2.000; 1.000; 0.000; 1.000; 1.000; 0.000> DBI010 - DIS - MFF UK Latent Semantic Indexing (LSI) • Existující výsledky: – na kolekcích s 1000 dokumenty aţ 30% nárůst přesnosti oproti vektorovému modelu – na kolekcích s 10000 dokumenty ne tak vysoký nárůst, ale lepší neţ vektorový model – na kolekcích s 100000 dokumenty výsledky zaostávají za vektorovým modelem DBI010 - DIS - MFF UK Signatury Signatury • Pro konjunktivní dotazy nad boolským IS • Vyřazení velkého mnoţství nerelevantních dokumentů s malou časovou a prostorovou sloţitostí DBI010 - DIS - MFF UK Signatury • Signatura = k-bitový řětězec – k je předem daná konstanta 01001 10101 • Kaţdému dokumentu di je přiřazena signatura dokumentu si • Konjunktivnímu dotazu q je přiřazena signatura s Dotaz DBI010 - DIS - MFF UK 00101 00111 10100 Porovnání Dok1 Vyhodnocení signatur • Signatura si dokumentu odpovídá signatuře dotazu s pokud si s (po bitech) tj. pokud s AND NOT si = 0 (binárně) • Pokud signatura nevyhovuje, dokument nemůţe obsahovat všechny poţadované termy • Pokud si signatury vyhovují, dokument můţe, ale nemusí všechny poţadované termy obsahovat DBI010 - DIS - MFF UK Vyhodnocení signatur 01001 • Efektivní vyhodnocení instrukcemi na úrovní strojového kódu procesoru • Nepřesné, nevyhovující dokument můţe svoji signaturou vyhovovat (tzv. false hit) • Nutno doplnit dalším, přesným, krokem porovnání 10101 Dotaz DBI010 - DIS - MFF UK 00101 00111 Dok1 10100 Porovnání 10101 00111 Porovnání II Dok2 Přiřazení signatury • Signatura slova – Hašovací funkcí h : X* 0..k-1 – Signatura sig(w) slova w má bit 1 na pozici h(w) a na ostatních bity 0 – Výhodnější neţ hašovací funkcí X* 0..2k-1, která generuje signatury s mnoha jedničkami, které odpovídají téměř libovolnému dotazu DBI010 - DIS - MFF UK Přiřazení signatury • Signatura dokumentu – Vrstvením signatur jednotlivých slov pomocí binární disjunkce. – Pevně strukturované dokumenty mohou obdrţet signaturu zřetězením signatur jednotlivých oddílů (autor, nadpis, abstrakt, text). Kaţdá z řetězených signatur můţe mít jinou, předem danou délku. DBI010 - DIS - MFF UK Řetězené signatury • Výhodou řetězených signatur je moţnost dotazu nad konkrétní částí dokumentu – Knihy Aloise Jiráska: • sig(„Alois“)=00100000, sig(„Jirásek“)=00001000 – Dotaz q=00101000 | 00000000 | 0000000000000000 • sig(„Eduard“)=00010000, sig(„Bass“)=10000000 – Dokument 10010000 | xxxxxxxx | xxxxxxxxxxxxxxxx nevyhovuje signatuře • sig(„Boţena“)=00001000, sig(„Němcová“)=00100000 – Dokument 00101000 | xxxxxxxx | xxxxxxxxxxxxxxxx vyhovuje signatuře, i kdyţ se jedná o jiného autora DBI010 - DIS - MFF UK Vrstvené signatury • Vrstvením signatur slov narůstá počet jedniček v signatuře a tím klesá její schopnost plnit svůj účel, protoţe signatura ze samých jedniček vyhovuje jakémukoli dotazu. • Dokumentům se přidělí více signatur pro jednotlivé bloky textu. • Při vhodném dělení, např. na rozhraní kapitol nebo odstavců, není ztráta informace příliš důleţitá. Slova nacházející se daleko od sebe spolu obvykle nesouvisí. DBI010 - DIS - MFF UK Vrstvené signatury • Bloky se vytváří dvěma metodami – FSB (fixed size block) pro úseky s přibliţně stejným počtem slov – FWB (fixed weight block) pro úseky s přibliţně stejným počtem jedniček optimálně k/2 DBI010 - DIS - MFF UK Monotónní signatury • Signatura je monotónní, pokud pro kaţdá dvě slova, resp. jejich fragmenty u, v platí sig(u.v) sig(u) s pravostranným prodluţováním slova signatura nikdy neklesá • Monotónní signatury umoţňují vyuţití zástupného znaku „*“ na konci termů v dotazu • Např. q=„datab*” AND „systém*” DBI010 - DIS - MFF UK Monotónní signatury • Monotónní signaturu slova lze vytvořit několika způsoby (zvyšuji počet jedničkových bitů) – Navrstvením signatur všech prefixů slova • sig(„systém“)=sig’(„s“)+sig’(„sy“)+...+sig’(„systém“) kde sig’(w) je libovolně tvořená signatura – Navrstvením signatur všech n-gramů slova n-gram = posloupnost n po sobě jdoucích znaků • sig(„systém“)=sig’(„sys“)+sig’(„yst“)+...+sig’(„tém“) pro trigramy DBI010 - DIS - MFF UK Monotónní signatury • Vyuţití signatur tvořených na základě ngramů – Dovoluje zástupné znaky i na začátku a uvnitř slov – Dovoluje rovnoměrné vyuţití všech k pozic signatury • n-gramů je pevný počet (26^n v anglickém jazyce) • Lze spočítat pravděpodobnosti jejich výskytu a rozdělit je do skupin s přibliţně stejnou celkovou pravděpodobností DBI010 - DIS - MFF UK Uloţení signatur • Invertovaný soubor • Neinvertovaný soubor • Strom signatur – Setříděním signatur se dostanou signatury se shodným prefixem délky k1<k k sobě – Prefix se uloţí jen jednou – Lze i více úrovní pro k1, k2, … 00 01001 10101 001 00111 10100 01 10 11 DBI010 - DIS - MFF UK 000 Distribuované DIS Distribuované DIS • Data a funkce rozděleny mezi více počítačů – Transparence • Uţivatel si rozdělení nemusí být vědom – Rozšiřitelnost • Zvýšení výkonu přidáním dalších počítačů – Robustnost • Výpadek jednoho počítače neovlivní funkci ostatních DBI010 - DIS - MFF UK Distribuované DIS • Data ukládaná v DIS – Primární data (dokumenty) – Sekundární data (autor, název, rok vydání, ...) – Index • Uzly sítě lze rozdělit podle toho, které procesy na nich běţí a která data obsahují • Na jednom počítači můţe běţet i více procesů DBI010 - DIS - MFF UK Distribuované DIS • Procesy v DIS – Klient (K) • Uţivatelské rozhraní – Dokumentový server (D) • Subsystém dodání dokumentu s primárními daty • Například nezávislý WEB server – Server indexu (S) • Subsystém zpřístupnění dokumentu s indexem a sek. daty – Integrační uzel (I) • Specifický proces zajišťující koordinaci mezi ostatními uzly DBI010 - DIS - MFF UK Distribuované DIS • Integrační uzel – Přebírá dotaz od uţivatele – Určuje strategii vyhodnocení v distribuovaném prostředí na základě znalosti umístění jednotlivých zdrojů – Rozesílá parciální dotazy na jednotlivé index servery – Sestavuje výslednou odpověď z odpovědí na parciální dotazy DBI010 - DIS - MFF UK Distribuované DIS • DIS • DDIS D D D K S K D I S DBI010 - DIS - MFF UK K I S I S Distribuované DIS • Přítomnost více klientů a integračních uzlů zvyšuje propustnost a robustnost • Nutné replikovat metadata o rozdělení dat na všech integračních uzlech K I S DBI010 - DIS - MFF UK K I S I S Distribuované boolské DIS • Rozdělení matice indexu na několik (obvykle disjunktních částí) • Vhodný popis na základě relační algebry – – – – – Relace R(A1, A2, …, An) Boolská podmínka q Projekce R[Ai1, Ai2, …, Aik] Selekce R(q) Přirozené spojení relací R*S DBI010 - DIS - MFF UK Distribuované boolské DIS • Index je relace D(d, t1, t2, …, tm), kde tj {0,1}, d N (identifikace dokumentu) • Instance indexu je matice 1 D 2: n w w : w 1.1 2 ,1 n ,1 w w : w 1, 2 2, 2 n,2 .. w .. w , kde w {0,1} : .. w 1,m 2 ,m i, j n ,m DBI010 - DIS - MFF UK Distribuované boolské DIS • Odpovědí na dotaz q je seznam identifikací odpovídajících dokumentů D(q)[d] DBI010 - DIS - MFF UK Horizontální fragmentace • Rozdělení matice indexu na k fragmentů D1, D2, …, Dk na základě k-tice dotazů q1, q2, …, qk tak, ţe Dx = D(qx) • q1 q2 … qk = true tj. D1 D2 … Dk = D • qx qy = false pro x y tj. Dx Dy = DBI010 - DIS - MFF UK Horizontální fragmentace • D(q)[d] = (D1 … Dk)(q)[d] = (D(q1) … D(qk))(q)[d] = (D(q1q)[d] … D(qkq)[d]) • Pokud qxq = false, potom Dx(q)[d] = DBI010 - DIS - MFF UK Horizontální fragmentace • Volba dotazů qi – Fragmenty stejné velikosti – Fragmenty co nejméně zatěţující servery • Volba dotazů tak, aby se typické dotazy vyhodnocovaly na jednom nebo několika málo serverech DBI010 - DIS - MFF UK Vertikální fragmentace • Rozdělení matice indexu na k fragmentů D1, D2, …, Dk na základě k-tice mnoţin {d} T1, T2, …, Tk {d, t1, t2, …, tm} tak, ţe Dx = D[Tx] • T1 T2 … Tk = {d, t1, t2, …, tm} tj. D1 * D2 * … * Dk = D • Tx Ty = {d} pro x y DBI010 - DIS - MFF UK Vertikální fragmentace • D(q)[d] = (D1 * D2 * … * Dk)(q)[d] • Nechť jsou v dotazu pouţity jen termy z mnoţiny Tq. Nechť ={d}Tq D(q)[d] = (D[T1] * … * D[Tk])(q)[d] • Spojují se menší části • Fragmenty, kde Tx={d}lze vynechat DBI010 - DIS - MFF UK Vertikální fragmentace • Dotazy lze na základě pravidel D(q1q2)[d]=D(q1)[d]D(q2)[d] D(q1q2)[d]=D(q1)[d]D(q2)[d] rozepsat na průniky a sjednocení výsledků parciálních dotazů vyhodnotitelných na jednotlivých index serverech DBI010 - DIS - MFF UK Vertikální fragmentace • Volba mnoţin Ti – Fragmenty stejné velikosti • Stejně velké mnoţiny – Fragmenty co nejméně zatěţující servery • Na základě znalosti dotazů udrţení spolu se vyskytujících termů na stejném serveru DBI010 - DIS - MFF UK Kombinovaná fragmentace • Pravidelná (do tvaru mříţky) D11=D(q1)[T1] D12=D(q1)[T2] D13=D(q1)[T3] D21=D(q2)[T1] D22=D(q2)[T2] D11=D(q2)[T3] D31=D(q3)[T1] D32=D(q3)[T2] D11=D(q3)[T3] D12=D(q1)[T2] D13=D(q1)[T3] • Nepravidelná D11=D(q1q2)[T1] D2=D(q2)[T2T3] D3=D(q3) DBI010 - DIS - MFF UK Příklad • Nepravidelná fragmentace D1=D(q1) D21=D(q2)[T1] D22=D(q2)[T2] D3=D(q3) • Kde – T1={d, t1, t2, t3}, T2={d, t4, t5, t6} – q1=(t1t4), q2=(t1t4)(t1t4), q3=(t1t4) DBI010 - DIS - MFF UK Příklad • D=D1(D21*D22)D3 q=t1(t2t4t5) • D(q)[d]=(D1(D21*D22)D3)(q)[d] =D1(q)[d](D21*D22)(q)[d]D3(q)[d] =D1(q)[d](D21*D22)(q)[d] qq3=false • (D21*D22)(q)[d] =(D21*D22)(t1(t2t4t5))[d] =(D21*D22)(t1)[d](D21*D22)(t2t4t5)[d] DBI010 - DIS - MFF UK Příklad • (D21*D22)(t1)[d]=D21(t1)[d] • (D21*D22)(t2t4t5)[d] =(D21*D22)(t2)[d](D21*D22)(t4t5)[d] =D21(t2)[d]D22(t4t5)[d] DBI010 - DIS - MFF UK Příklad D1(q)[d] D21(t1)[d] D22(t4t5)[d] D21(t2)[d] S1 S21 DBI010 - DIS - MFF UK S22 S3 Distribuované vektorové DIS • Vyuţití shlukovacích algoritmů – Obdoba horizontální fragmentace boolského IS • Integrační servery potřebují informaci o středech a poloměrech jednotlivých shluků DBI010 - DIS - MFF UK Integrované DIS • Spojení několika nezávislých DIS do jednoho celku • Problémy – Různé metody indexace • Jeden dokument můţe mít více reprezentací – Různé mnoţiny termů – Různé výpočty podobnosti DBI010 - DIS - MFF UK Optimální vyhledávání • Jedna z moţností integrace více DIS, navíc – Minimalizace problému kritéria predikce – Obecně systém, obsahující některou(-é) z moţností • Více indexačních algoritmů dokumentů – Příliš vysoká prostorová náročnost • Více indexačních algoritmů dotazu • Více vyhledávacích algoritmů – Systém na základě interakce s uţivatelem vybírá optimální kombinaci dostupných metod DBI010 - DIS - MFF UK Optimální vyhledávání • Výběr optimální vyhledávací metody – k různých metod – i-tá metoda vrátila ri relevantních dokumentů v celkovém počtu ni dokumentů • Jak určit vhodnou metodu nalezení nejlepšího z obsaţených DIS? – Kritérium ri2 / ni – Není nutné zjišťovat celkový počet relev. dok. DBI010 - DIS - MFF UK Optimální vyhledávání • Předpokládejme znalost všech relevantních dokumentů pro daný dotaz (a jejich počtu r) • Vezměme X x1, x2,...,xn kde xj je 1, pokud je j-tý dokument relevantní pro tazatele, jinak 0 • Vezměme Y i yi,1, yi,2,...,yi,n kde yi,j je 1, pokud je j-tý dokument vrácen i-tou metodou, jinak 0 DBI010 - DIS - MFF UK Optimální vyhledávání relevantních dokumentů, Počet vrácených i-tým systémem • V ideálním případě Y i X • Míra vhodnosti pomocí podobnosti , . Sim Y i X Y i X Y i . X .cos Y i. X cos , kde Y i . X yi, jxi ri Yi X Y i ni X r r i ri r i cos Pi Ri nir ni r ni r 2 ri DBI010 - DIS - MFF UK Optimální vyhledávání PiRi • Míra vhodnosti odpovídá Pi Ri 2 r r r • Protoţe, n r n r přičemţ r je konstanta, a odmocnina je rostoucí na <0;1>, pro uspořádání vhodnosti stačí výraz r n bez znalosti r i i i i i 2 i DBI010 - DIS - MFF UK i Optimální vyhledávání • Postup vyhodnocení dotazu – Dotaz se vyhodnotí všemi dostupnými metodami a výsledky se spojí do jednoho výstupu (viz dále) – Uţivatel označí relevantní dokumenty – Pro jednotlivé metody se porovná vhodnost kritériem ri2 / ni – Nejlepší metoda bude v dalších iteracích zvýhodněna oproti ostatním DBI010 - DIS - MFF UK Optimální vyhledávání • Spojení výstupů metod – Různé metody mohou vracet hodnoty podobnosti z různých intervalů – Nutná normalizace – převod výsledku z lokálního intervalu <l1,l2> i-té metody na globální interval <g1,g2> g2 lineárně: y=(x- l1)*((g2–g1)/(l2–l1))+g1 y g1 – <g1,g2> je obvykle <0,1> l1 x DBI010 - DIS - MFF UK l2 Optimální vyhledávání • Spojení výstupů metod – Pokud je dokument nalezen více metodami, je nutné to detekovat a zohlednit – Pokud je dokument nalezen vícekrát s globálními vahami si v jednotlivých metodách, roste pravděpodobnost toho, ţe je dokument relevantní – Pokud si <0;1>, potom s = 1-(1-si) • Počítáno přes metody, které dokument vrátily • si vyjadřuje názor i-té metody, na pravděpodobnost, ţe dokument bude pro uţivatele relevantní. DBI010 - DIS - MFF UK Optimální vyhledávání • Pokud má být některá metoda (případně metody) zvýhodněna, jsou výsledky metod normalizovány do intervalů <g1,g1+i(g2-g1)>, kde i<0,1> • Např.: – i=1 pro nejlepší metodu, i=<1 pro ostatní – i=(ri2 / ni) / (rmax2 / nmax) DBI010 - DIS - MFF UK Vyhledávání v HTML • Web lze chápat jako speciální případ DIS – Neznámý počet dokumentů • Povrchový web - anonymně dostupné dokumenty • Skrytý web - dokumenty dostupné po autorizaci – Objem přesahuje povrchový web ve stonásobcích – Kvalita přesahuje povrchový web i tisícinásobné DBI010 - DIS - MFF UK Vyhledávání v HTML • Web lze chápat jako speciální případ DIS – Redundance • Odhady uvádějí redundanci kolem 30% – Proměnlivost • Čtvrtina stránek se mění denně • Odhadovaný „poločas rozpadu“ stránky se odhaduje na přibliţně 10 dní • Informace získané při indexaci dokumentu rychle zastarávají DBI010 - DIS - MFF UK Vyhledávání v HTML • Web lze chápat jako speciální případ DIS – Mnoţství dokumentů • celkem 4.285.199.774 dokumentů (červenec 2004) • celkem 8.058.044.651 dokumentů (květen 2005) • nejméně 25 270 000 000 dokumentů, spíše však přes 35 070 000 000 (duben 2006) • dotaz „the“ v google vrací – 3 200 000 000 dokumentů (květen 2005) – 24 210 000 000 dokumentů (duben 2006) • dotaz „-the“ v google vrací – 14 800 000 000 dokumentů (duben 2006) DBI010 - DIS - MFF UK Vyhledávání v HTML • Dvojí způsob dotazování – Vyhledávače • www.google.com, www.yahoo.com, www.altavista.com, morfeo.centrum.cz, … – Listování v katalozích (browsing) • seznam.cz, centrum.cz, … • zpravidla kvalitní ručně vytvářené členění • nesnadná údrţba v měnícím se prostředí DBI010 - DIS - MFF UK Dotazování nad webem • Zpravidla různé formy rozšířeného boolského vyhledávání – Moţnost zadávat binární logické operátory – Moţná podpora proximitních omezení – Obvykle nemoţnost pouţít váţený dotaz • Další pouţívané techniky – Rozhoduje umístění slov v dokumentu • Nadpisy jsou důleţitější neţ ostatní text, … – Uvaţují se vzájemné odkazy mezi stránkami DBI010 - DIS - MFF UK Dotazování nad webem • Katalogy – tématická klasifikace vybraných stránek – navigace listováním hierarchiemi vyhledávacích termů – vhodné pouţít v případech, kdy má uţivatel jasný cíl, který nedokáţe vyjádřit seznamem klíčových slov DBI010 - DIS - MFF UK Makroskopická struktura webu • Převzato z: Graph structure in the web Andrei Broder, Ravi Kumar2 et al. http://www9.org/ w9cdrom/160/160.html DBI010 - DIS - MFF UK Vyuţití hypertextových odkazů • Web si lze představit jako orientovaný graf (V,E) – V jsou jednotlivé stránky – E je mnoţina hran, kde (p,q)E znamená, ţe stránka q je odkazována ze stránky p • Výstupní stupeň stránky o(p) – Mnoţství odkazů ve stránce p • Vstupní stupeň stránky i(p) – Mnoţství odkazů na stránku p DBI010 - DIS - MFF UK Vyuţití hypertextových odkazů • Hrany v rámci jedné domény se označují jako vlastní • Hrany napříč doménami se označují jako přechodové p11 dom1 dom2 p12 p22 p21 DBI010 - DIS - MFF UK i(p11) = 0, o(p11) = 2 i(p12) = 1, o(p12) = 0 i(p21) = 2, o(p21) = 0 i(p22) = 1, o(p22) = 2 Struktura webového vyhledávače URL Robot HTML Dotazy Index Indexace • Robot (crowler, spider) – Na základě interní databáze URL navštěvuje stránky s danou frekvencí a v daném pořadí – Ukládá data do seznamu staţených HTML stránek DBI010 - DIS - MFF UK Struktura webového vyhledávače • Indexační jednotka URL Robot HTML Dotazy Index Indexace – Indexuje staţené HTML stránky – Generuje data indexu • Textová • Strukturální – Přidává nově nalezená URL do seznamu DBI010 - DIS - MFF UK Struktura webového vyhledávače • Zpracování dotazu URL Robot HTML Dotazy Index Indexace – S vyuţitím indexu zjišťuje podobnost indexovaných dokumentů vůči dotazu – Pokud je dotaz formulován na základě podobnosti s neznámou stránku, můţe ji pomocí robota stáhnout DBI010 - DIS - MFF UK Stahování stránek • Obvykle průchod do šířky počínaje odkazy ze startovacích stránek umístěných v databázi URL – Startovacími stránkami nemusí být všechny tam uloţené stránky • Priority se řídí – Tématem • Např. podobností s nějakým předdefinovaným vektorem – Popularitou stránky – Umístěním stránky • Např. podle domény DBI010 - DIS - MFF UK Stahování stránek • Roboty nedokáţí stáhnout všechny na webu dostupné stránky – Web netvoří souvislý graf • Indexovány jsou pouze souvislé komponenty dostupné ze startovacích stránek – Web roste zpravidla rychleji, neţ jej roboty stačí indexovat DBI010 - DIS - MFF UK Indexace • Indexační jednotka rozhoduje, které ze staţených stránek skutečně zaindexuje – Snaha vynechávat duplikáty • Výsledná data jsou uloţena v případě rozšířeného boolského modelu do invertovaných seznamů, zpravidla včetně pozic slov na stránkách • Dále jsou ukládána další specifická data nutná pro vyhodnocování dotazu – Graf odkazů – Délky stránek – … DBI010 - DIS - MFF UK Porovnávání s dotazem • Dokumentům je přiřazeno skóre – Část závislá na dotazu • Podobnost dokumentu s poloţeným dotazem – Část závislá na dokumentu • Popularita stránky, např. odvozená z počtu na něj směřujících odkazů – Část závislá na tazateli • Nově se rozvíjející oblast, snaţící se vytvářet na základě interakce s tazatelem jeho profil, a upřednostňovat jeho subjektivní názor na kvalitu dokumentů DBI010 - DIS - MFF UK Popularita stránek • Odvozuje se z analýzy odkazů a podobnosti mezi zdrojovou a cílovou stránkou – PageRank – Algoritmus HITS DBI010 - DIS - MFF UK PageRank • Předpokladem je fakt, ţe odkazem na cizí stránku je daná stránka autorem čtenáři doporučována • Problémy – Algoritmus lze snadno zmást generováním stránek odkazujících na propagovanou stránku DBI010 - DIS - MFF UK PageRank • Ohodnocení r(q) stránky q závisí na ohodnocení stránek, které na ní odkazují – Jednoduchý PageRank: r(q) = (p,q)E((1/o(p))*r(p)) • Vícenásobné odkazy se počítají jako jednonásobné – Maticový zápis: r = Xr, kde xp,q = 1/o(p) pro (p,q)E, jinak 0 DBI010 - DIS - MFF UK PageRank • Výpočet PageRank probíhá iterativně – Problémy • Skupina stránek můţe odkazovat na sebe navzájem, ale nikoli ven (tzv. rank sink) p – Akumulace ocenění – Ţádný přínos pro další dokumenty p 0.1 0.1 p1 p2 0.1 0.1 0.1 DBI010 - DIS - MFF UK p1 0.0 0.1 0.1 0.2 0.3 p2 0.0 0.0 0.1 0.1 0.2 PageRank • Zmírnění problému rank sink dle autorů (Lawrence Page, Sergey Brin) Random Surfer Model – PageRank : r(q) = (1-d) + d*(p,q)E((1/o(p))*r(p)), d<0,1> • d je tzv. tlumící faktor, obvykle d = 0.85 – Maticový zápis: r = (1-d)e + dXr, kde e je vektor obsahující jedničky DBI010 - DIS - MFF UK PageRank • Random Surfer Model r(q) = (1-d) + d*(p,q)E((1/o(p))*r(p)), d<0,1> – Uţivatel náhodně prochází webem – Pravděpodobnost návštěvy je dána hodnotou PageRank – S pravděpodobností d klikne na některý odkaz ve stránce • Výběr některého z o(p) odkazů je náhodný s rovnoměrným rozdělením – S pravděpodobností (1-d) nepokračuje pomocí odkazu, ale přímým zápisem adresy, výběrem z oblíbených, … DBI010 - DIS - MFF UK PageRank • Jiná varianta PageRank dle autorů (Lawrence Page, Sergey Brin) – PageRank : r(q) = (1-d)/|V| + d*(p,q)E((1/o(p))*r(p)) – Pokud o(p)=0, t.j. stránka nikam neodkazuje, uvaţuje se, ţe odkazuje na všechny stránky webu. Tedy • o(p)=|V|, • (p,q)E q – Lépe odpovídá pravděpodobnosti návštěvy stránky po několika náhodných přechodech mezi stránkami DBI010 - DIS - MFF UK PageRank příklad • • • r(x) = 0.5 + 0.5*r(z) r(y) = 0.5 + 0.5*r(x)/2 r(z) = 0.5 + 0.5*(r(x)/2+ r(y)) Přesné řešení rovnic: r(x) = 14/13 = 1.07692308 r(y) = 10/13 = 0.76923077 r(z) = 15/13 = 1.15384615 Iterativní výpočet r(x) r(y) 0 1.0 1.0 1 1.0 0.75 2 1.0625 0.765625 3 1.07421875 0.76855469 4 1.07641602 0.76910400 … … … 10 1.07692305 0.76923076 11 1.07692307 0.76923077 12 1.07692308 0.76923078 y x r(z) 1.0 1.125 1.1484375 1.15283203 1.15365601 … 1.15384615 1.15384615 1.15384615 DBI010 - DIS - MFF UK z Kleinbergův algoritmus HITS • Hypertext Induced Topic Search – Ohodnocuje dokumenty, vrácené původním dotazem – Předpokládá, ţe na vstupu jsou dokumenty úzce svázané s dotazem • Často jsou navzájem provázány odkazy DBI010 - DIS - MFF UK Kleinbergův algoritmus HITS • Rozlišují a ohodnocují se dva typy stránek – Autority • stránky s vysokým vstupním stupněm • tj. odkazovány často ze stránek v odpovědi – Rozcestníky • stránky s vysokým výstupním stupněm • tj. odkazují se často na stránky v odpovědi r a r a r r DBI010 - DIS - MFF UK a HITS • Algoritmus – Výběr mnoţiny stránek pro vstup do HITS • Dostatečně malá kolekce • Pokud moţno dokumenty relevantní k dotazu q • Obsahující hodně autorit – Ohodnocení vybraných stránek DBI010 - DIS - MFF UK HITS • – – – Výběr mnoţiny Sq stránek dle dotazu q In(p) … mnoţina stránek odkazujících na p Out(p) … mnoţina stránek odkazovaných z p d … zvolené malé celé číslo 1. 2. 3. Rq := prvních 200 stránek odpovědi na q Sq := Rq; for each p in Rq do begin Sq := Sq Out(p); if i(p)d then Sq := Sq In(p) else Sq := Sq S; {SIn(p), |S|=d, S náhodně zvolená} end; 4. z grafu Sq odstraň vlastní hrany DBI010 - DIS - MFF UK HITS • Ohodnocení vybraných stránek – – 1. 2. ak(p) … váha autority pro stránku p v k-té iteraci rk(p) … váha rozcestníku stránku p v k-té iteraci for each p in Sq do begin a0(p) := 1; r0(p) := 1; end; for k := 1 to n do for each p do begin ak(p) := (q,p)Erk-1(q); rk(p) := (p,q)Eak-1(q); normalizuj váhy tak, aby pSq(rk(p))2=1 end; DBI010 - DIS - MFF UK Jak zrychlit výpočet PageRank • Jednou z moţností je omezení doby výpočtu aproximaxí výsledku r(q) rs(q) * rp(q) – rs(q) … rank pro celou site (doménu) – rp(q) … rank stránky v rámci site (domény) • Domén je podstatně méně neţ stránek – Snazší výpočet vlastního vektoru matice incidence • Stránek v doméně je rovněţ podstatně méně DBI010 - DIS - MFF UK Rozšíření PageRank • Samotný PageRank nezávisí na obsahu stránek – Prázdná stránka s mnoha odkazy na ni bude mít velkou hodnotu PageRank – Snadněji manipulovatelné • Stránka má různou důleţitost v závislosti na tématu, na které se tazatel ptá • Výpočet PageRank je vhodné změnit tak, aby jeho hodnota byla závislá na konkrétním tématu dotazu DBI010 - DIS - MFF UK Rozšíření PageRank dle témat • Původní návrh (Haveliwala) počítá nezávisle jednotlivé hodnoty pro nejširší termy tezauru ODP (Open Directory Project) – Závislé na jazyku – Pro stránky v odlišných jazycích by bylo nutné počítat PageRank samostatně DBI010 - DIS - MFF UK Rozšíření PageRank dle témat • Původní rovnice pro výpočet PageRank r(q) = d*(p,q)E(r(p)/o(p)) + (1-d)/n je změněna tak, ţe během náhodné procházky se při náhodném výběru stránky přejde s pravděpodobností (1-d) pouze na stránky se stejným tématem, jako původní stránka • Pro téma t je proto soustava rovnic následující – pokud se stránka q týká tématu t rt(q) = d*(p,q)E(r(p)/o(p)) + (1-d)/nt – pokud se stránka q netýká tématu t rt(q) = d*(p,q)E(r(p)/o(p)) + 0 jinak DBI010 - DIS - MFF UK Rozšíření PageRank dle témat • Pro dotaz x se spočtou koeficienty náleţení dotazu k jednotlivým tématům c(x,t) • PageRank stránky q je potom spočten, jako lineární kombinace PageRank hodnot pro jednotlivá témata – r(q,x) = rt(q)*c(x,t) DBI010 - DIS - MFF UK Personalizovaný PageRank • Modifikuje opět algoritmus náhodné procházky • Pro uţivatele si pamatuje mnoţinu preferovaných stránek • Při náhodném přechodu simulujícím přímý skok na náhodnou stránku jsou tyto stránky preferovány před ostatními DBI010 - DIS - MFF UK Další metriky kvality výstupu • Kromě standardních metrik P (přesnost) a R (úplnost) je pro měření kvality výstupu vhodné pouţít i další • Snahou je při měření kvality zohlednit kritérium maxima • U velkých databází a obsáhlých odpovědí je často vhodné kvalitu určovat jen v rámci počátečního úseku seznamu nalezených dokumentů DBI010 - DIS - MFF UK Další metriky kvality výstupu • Nejjednodušší metrikou je přesnost odpovědi v rámci prvních k vrácených dokumentů, značená Pk – Systém s hodnotami P10=0.9; P=0.3 můţe být vnímán jako lepší, neţ konkurenční systém s P10=P=0.6 DBI010 - DIS - MFF UK Diversity, Information Richness • Pokud je dotaz kladen mnohoznačně, můţe existovat několik nezávislých skupin dokumentů, které dotazu vyhovují, ale navzájem nemají nic společného • Např.: „Puma“ – – – – – Značka sportovní obuvi Kočkovitá šelma Kódové označení Mac OS X verze 10.1 Letecká puma Typ automobilu značky Ford DBI010 - DIS - MFF UK Diversity, Information Richness • V případě mnohoznačného dotazu je ţádoucí, aby se na první stránce odpovědi objevily reprezentanti odpovědí na všechny významy dotazu • Kterou kategorii měl uţivatel na mysli se dá případně odvodit z toho, které odkazy ze stránky s odpověďmi pouţije DBI010 - DIS - MFF UK Diversity, Information Richness • Pro měření mnoţství různých témat, které se v odpovědi na dotaz objeví, je potřeba zavést zcela odlišnou metriku neţ jsou přesnost a úplnost – Diversity … mnoţství skupin (shluků) navzájem podobných dokumentů na výstupu • Roste s mnoţstvím témat, které jsou v odpovědi zastoupeny – Information Richness … kvalita dokumentů v rámci témat • Roste s kvalitou vybraných zástupců jednotlivých témat DBI010 - DIS - MFF UK Diversity, Information Richness • Výpočet obdobný výpočtu PageRank, ale – Realizuje se nad odpovědí, nikoli nad celou kolekcí (Obdoba algoritmu HITS) – Nepouţívá graf zaloţený na odkazech mezi dokumenty, ale graf zaloţený na jejich vzájemné podobnosti DBI010 - DIS - MFF UK Diversity, Information Richness • Dána kolekce dokumentů D={di, i 1, …, n} • Diversity Div(D) – mnoţství různých témat, pokrytých dokumenty mnoţiny D • Information Richness IRD(di) <0;1> – úroveň, nakolik dokument di reprezentuje své vlastní téma. DBI010 - DIS - MFF UK Diversity, Information Richness • Pokud Div(D)=k, kaţdý dokument je přiřazen jednomu z k témat – Počet dokumentů přiřazený tématu l označíme nl – i-tý dokument v mnoţině náleţející tématu l označíme dil DBI010 - DIS - MFF UK Diversity, Information Richness • Spočtou se podobnosti Sim(di, dj) pro di, dj D, kde Sim(di, dj) = (di*dj)/(|di|*|dj|) • Zkonstruuje se ohodnocený graf G=(D,E) – vrcholy grafu odpovídají dokumentům v D • Ohodnocení hrany eij=(di, dj) je dáno spočtenou podobností, tedy h(eij) = Sim(di, dj) • Pro úsporu místa se obvykle odstraňují příliš malé hodnoty hran, tedy Hrana eij E, právě kdyţ h(eij) = 0, pokud Sim(di, dj) < St, kde St je zvolená prahová hodnota DBI010 - DIS - MFF UK Diversity, Information Richness • Vytvoří se matice sousednosti M grafu G • Hodnota míry Information richness se odvozuje ze dvou faktů – Čím více má vrchol sousedů (tj. podobných dokumentů), tím je jeho hodnota vyšší – Čím vyšší je hodnota sousedů, tím je jeho hodnota vyšší DBI010 - DIS - MFF UK Diversity, Information Richness • Počítá se vlastní vektor matice c*M’T + (1-c)*U kde – M’ je matice M, s řádky, normalizovanými na jednotkovou velikost (součet prvků na řádce je roven jedné) – U má na všech pozicích hodnotu 1/n – c = 0.85 (podobně jako pro Page Rank) • Vektor obsahuje hledané hodnoty IR(di) DBI010 - DIS - MFF UK Diversity, Information Richness • Průměrnou hodnota Information Richness v celé kolekci je dána výrazem 1 Div D 1 nl l IRD IR D di DivD l 1 nl i 1 • Spočtené hodnoty umoţní vybrat ty nejlepší reprezentanty v kaţdém tématu, ale můţe se stát, ţe se v některém z témat vybere více velmi podobných dokumentů DBI010 - DIS - MFF UK Diversity, Information Richness • Greedyho algoritmus výpočtu postihu jednotlivých dokumentů – A := ; B := D; setřiď B sestupně dle hodnoty IRD ; while B <> do begin přesuň nejlépe ohodnocený dokument di z B do A; zbylým dokumentům v B sniţ ohodnocení o Mij*IRD(di); přetřiď dokumenty v B end; DBI010 - DIS - MFF UK Neuronové sítě COSIMIR Neuronové sítě a DIS • Vyuţití neuronových sítí v DIS se ve větší míře objevuje od 90. let 20. stol. – Obvykle řeší některý z aspektů DIS • • • • Shlukování Redukce dimenzionality indexu Nalézání konceptů Odhad relevance dokumentu DBI010 - DIS - MFF UK Neuronové sítě a DIS • Výhody vyuţití neuronových sítí – Generalizace pravidel relevance na základě učení z konkrétních příkladů – Nalézání abstraktních závislostí i v případě, ţe je uţivatel není schopen formulovat – Robustnost, odolnost vůči chybám – Klasifikace vzorů (zde dokumentů a termů) pomocí samoorganizujících se struktur DBI010 - DIS - MFF UK Neuronové sítě a DIS • Nevýhody vyuţití neuronových sítí – Nejisté výsledky • Pokud vzorová data nejsou vhodně volena, nebo jich je více, neţ je neuronová síť schopná akceptovat, odvozená pravidla nemusí odpovídat realitě DBI010 - DIS - MFF UK Neuronové sítě a DIS • Neuron (perceptron) – Základní jednotka neuronové sítě – Model biologického neuronu axon • Nepřesný, modeluje pouze představu o činnosti • Struktura perceptronu – n vstupů, odpovídajících dendritům neuronu – 1 výstup odpovídající axonu neuronu DBI010 - DIS - MFF UK dendrity Neuronové sítě a DIS • Struktura perceptronu – – – n vstupů xi, kaţdý z nich je opatřen vahou wi 1 výstup práh citlivosti (threshold) pokud je excitace neuronu dostatečná, tj. přesahující práh citlivosti, neuron DBI010 - DIS - MFF UK z t x1 x2 x3 … xn Neuronové sítě a DIS • Funkce perceptronu 1. 2. Spočtení váţeného vstupu (aktivace) a = i (wixi)-t Spočtení výstupu neuronu pomocí přechodové funkce g y = g(a) – – Obvykle g(a) = 1/(1+e-y) tzv. sigmoida se strmostí >0 Někdy i další přechodové funkce – – – Lineární g(a) = a Signum g(a) = sgn(a) … DBI010 - DIS - MFF UK z t x1 x2 x3 … xn Neuronové sítě a DIS • Geometrický význam – Rovnice i (wixi)-t=0 určuje dělící nadrovinu v n-rozměrném prostoru – Perceptron odlišuje navzájem i (wixi)-t > 0 i (wixi)-t < 0 body náleţející jednotlivým poloprostorům DBI010 - DIS - MFF UK Neuronové sítě a DIS • Sítě z více neurony – Vznikají napojením výstupu jednoho neuronu na vstupy dalších neuronů • Rekurentní sítě dovolují cyklické vazby mezi neurony – Obvykle bez učitele – Dovolují klasifikaci vzorů do skupin • Vrstevnaté sítě jsou acyklické výstupy jedné skupiny neuronů (vrstvy) jsou napojené na vstupy vrstvy následující – Obvyklé učení algoritmem zpětného šíření na základě dvojic [vzor, poţadovaný výsledek] DBI010 - DIS - MFF UK Učení vrstevnaté neuronové sítě • Algoritmus zpětného šíření (backpropagation) – Zaloţen na mnoţině dvojic vektorů [vzor, požadovaná odpověď] – Minimalizuje chybu E sítě přes mnoţinu učebních vzorů – E = j(yj-oj)2, kde yj je odpověď j-tého neuronu výstupní vrstvy oj je jeho poţadovaná odpověď DBI010 - DIS - MFF UK Učení vrstevnaté neuronové sítě • Algoritmus zpětného šíření – Numerický iterativní výpočet • E je funkce vah sítě, všude derivovatelná podle všech vah (platí pro sigmoidu, nemusí platit obecně) • Pro kaţdou váhu w se spočte dE/dw • Váha se změní směrem, ve kterém chyba klesá DBI010 - DIS - MFF UK Učení vrstevnaté neuronové sítě • Algoritmus zpětného šíření – Umoţňuje počítat změny vah postupně po vrstvách • Výstupní – v-tá – vrstva – iv = λ yi (1 – yi) (oi – yi) – wij wij + η δjv yi • Jakákoli jiná – k-tá – vrstva – ik = λyi(1 – yi)i(jk+1yij) – wij wij + η δjk yi DBI010 - DIS - MFF UK Shlukování dokumentů • Kohonenovy mapy – Projekce vysoce-rozměrného prostoru do prostoru o méně (často dvou) dimenzí – Částečné zachování topologie – Vytváření shluků DBI010 - DIS - MFF UK COSIMIR • COSIMIR Model - Thomas Mandl, 1999: COgnitive SIMilarity learning in Information Retrieval • Kognitivní výpočet podobnosti mezi dokumentem a dotazem zaloţený na neuronové síti a algoritmu zpětného šíření DBI010 - DIS - MFF UK COSIMIR • Vstupní vrstva obsahuje 2m neuronů, kde m je počet termů podobnost • Skrytá vrstva obsahuje k neuronů („symbolických konceptů“) w w w ... w q q • Výstupní vrstva obsahuje 1 neuron reprezentující podobnost i1 Indexace D DBI010 - DIS - MFF UK i2 i3 im 1 2 q3 ... qm q Prokletí dimenze (dimensionality curse) Pyramidová technika IGrid indexy Co je prokletí dimenze? • Většina metod, které jsou vytvořeny pro vyhledání nejbliţšího souseda k danému bodu v mdimenzionálním prostoru jako jsou R-stromy, mstromy a další, dobře fungují v nízkodimenzionálních prostorech, ale velmi rychle ztrácejí účinnost se vzrůstajícím m. • Pro m ~ 500 a více se obvykle vyplatí projít celý prostor (shluk) sekvenčně. • Prostory pro DIS mají m ~ 10000 a více DBI010 - DIS - MFF UK Pyramidová technika • Redukuje problém prohledání okolí bodu o předem dané velikosti z m-dimenzionálního na 1-dimenzionální, ve kterém lze pouţít například B-stromy • Prohledání m-rozměrného kvádru v okolí bodu x změní na prohledání určitých úseků přímky DBI010 - DIS - MFF UK Pyramidová technika • m-rozměrná krychle <0;1>m je rozdělena na 2m pyramid – Kaţdá pyramida má podstavu, tvořenou jednou z 2m m-1-rozměrných stěn krychle a vrcholem ve středu krychle. 2 3 m=2, 4 pyramidy 1 0 m=3, 6 pyramid DBI010 - DIS - MFF UK Pyramidová technika • m-rozměrná krychle <0;1>m je rozdělena na 2m pyramid – Kaţdý m-rozměrný bod krychle se zobrazí na bod 0,5*ČísloPyramidy+VzdálenostOdPodstavy v2 2 v1 3 1 0,5+v1 0 0,0 0,5 1,0 DBI010 - DIS - MFF UK 1,5+v2 1,5 2,0 Pyramidová technika • Při prohledávání okolí daného bodu se prohledávají pouze pásy rovnoběţné s podstavou pyramid, do kterých kvádr okolí zasahuje. Těch je maximálně 2m 2 v1 3 1 0,5+v1 0 0,0 0,5 1,0 DBI010 - DIS - MFF UK 1,5 2,0 Pyramidová technika • Výhody • Nevýhody – Snadné nalezení všech bodů, patřících do kvádru v okolí daného bodu a dané velikosti – Odpovědi na dotazy DIS s danou maximální vzdáleností (minimální podobností) dokumentu od dotazu – Nevhodné pro nalezení nejbliţšího(-ších) bodu(-ů) k zadanému bodu x • Není zřejmé, jak velké okolí se musí procházet, aby v něm byl alespoň jeden bod 2 3 – Nevhodné, pokud v některých dimenzích není určen interval v1 • Výsledný kvádr zasahuje 1 do mnoha pyramid velkým 0 DBI010 - DIS - MFF UK objemem IGrid Index • Řeší problém s narůstající velikostí dimenze odlišnou definicí podobnosti (vzdálenosti) bodů v m-rozměrném prostoru – Méně „intuitivní“ definice – Nevhodná pro nízko-dimenzionální prostory – Rostoucí efektivita se zvětšující se dimenzí • Čím vyšší dimenze m, tím menší procento prostoru je nutné projít pro nalezení nejbliţšího bodu DBI010 - DIS - MFF UK IGrid Index • Základem metody je rozdělení m-dimenzionálního prostoru obsahujícího n bodů na diskrétní m-dimenzionální podintervaly – i-tá dimenze se rozdělí na km úseků tak, aby v kaţdém úseku <li;ui> existovalo zhruba m/km bodů, tedy ve všech úsecích stejně • Pokud je v některé dimenzi rozdělení dat nerovnoměrné, hustěji pouţité úseky jsou jemněji rozděleny DBI010 - DIS - MFF UK IGrid Index DBI010 - DIS - MFF UK IGrid Index • Podobnost je v takto rozděleném prostoru definována • Pokud X=[x1,x2,…xm], Y=[y1,y2,…ym] potom – Pokud xi a yi patří do stejného úseku <li;ui>, jsou body podobné v dimenzi i a přírůstek podobnosti je určen hodnotou 1-[(|xi-yi|)/(ui-li)]p. Jinak je přírůstek nulový. • Celkově se podobnost sčítá pouze přes dimenze, kde jsou si body podobné Sim(X,Y)= p(1-[(|xi-yi|)/(ui-li)]p) Sim(X,Y)<0;pm> DBI010 - DIS - MFF UK IGrid Index • Proč 1-[(|xi-yi|)/(ui-li)]p ? – Vychází z P-normy – Čím více se vzdálenost v dané dimenzi blíţí velikosti celého sledovaného úseku, tím více se poměr blíţí jedné a příspěvek k podobnosti se tak blíţí nule |ui-li| DBI010 - DIS - MFF UK |xi-yi| X Y IGrid Index Nulová podobnost Body nejsou podobné v žádné dimenzi Max možná podobnost p1=1 Body jsou podobné v jedné dimenzi • Pravděpodobnost, ţe budou dva body podobné v i-té dimenzi, je 1/km • Dva body budou v průměru podobné v m/km dimenzích Max možná podobnost p2 Body jsou podobné ve dvou dimenzích DBI010 - DIS - MFF UK IGrid Index • Struktura indexu • IGrid Index – Pro kaţdou z m dimenzí a kaţdý z km úseků je vytvořen seznam (délky n/km) prvků, kde hodnota v příslušné dimenzi patří do daného úseku. – Prvek seznamu obsahuje odkaz na vektor a zároveň jeho hodnotu pro odpovídající dimenzi DBI010 - DIS - MFF UK IGrid Index • Struktura indexu • IGrid Index – Velikost indexu m*km*(n/km)=m*n – Kaţdý vektor je odkazován z m seznamů, vţdy z jednoho pro kaţdou dimenzi DBI010 - DIS - MFF UK IGrid Index • Ukazuje se, ţe je vhodné volit počet úseků km lineárně závislý na počtu dimenzí m, např. km=m • Sníţení vlivu diskretizace – Kaţdý interval se rozdělí na lichý počet l podintervalů, např. l=3 – Vznikne l krát více l krát kratších seznamů v indexu – V kaţdé dimenzi se prohledává kromě odpovídajícího seznamu i (l-1)/2 seznamů v kaţdém směru. DBI010 - DIS - MFF UK IGrid Index • Přímý průchod textovým indexem – Celkový objem dat m*n – Nutno přečíst během vyhodnocování dotazu m*n • Vyhledání pomocí IGrid indexu – Celkový objem dat (m*km)*(n/km)=m*n – Nutno přečíst během vyhodnocování dotazu m*(n/km)=n , pokud km=m • Mnoţství čtených dat nezávisí na dimenzi prostoru, s rostoucím m roste výhodnost pouţití DBI010 - DIS - MFF UK Přibliţné vyhledávání • Detekce chyb (překlepů) v textu • Oprava chyb (překlepů) • Slova (s max. délkou n) nad abecedou X odpovídají bodům v prostoru (X{})n doplňuje krátká slova na jednotnou délku • Ne kaţdý bod prostoru odpovídá slovu DBI010 - DIS - MFF UK Přibliţné vyhledávání • Metrika na prostoru (X{})n – Hammingova metrika H(u,v) • Minimální počet operací REPLACE (jednoho písmene) nutných pro převedení jednoho slova na jiné • Vynechání, resp. přidání písmene obvykle vede na velkou vzdálenost mezi slovy • H(’success’,’syccess’)=1 • H(’success’,’sucess’)=3 DBI010 - DIS - MFF UK Přibliţné vyhledávání • Metrika na prostoru (X{})n – Levenshteinova metrika L(u,v) • Minimální počet operací REPLACE, INSERT, DELETE (jednoho písmene) nutných pro převedení jednoho slova na jiné • L(’success’,’syccess’)=1 • L(’success’,’sucess’)=1 DBI010 - DIS - MFF UK Hammingova metrika • Detekce porovnáním znak po znaku • Detekce nedeterministickým KA * s u c c e s s -s -u u -c c -c c -e e -s s -s s -u u -c c -c c -e e -s s -s s DBI010 - DIS - MFF UK 0 chyb 1 chyba 2 chyby Hammingova metrika • • • • Q = {qi,j | 0ik, ijn} je mnoţina stavů X je daná abeceda S = {q0,0} Q je mnoţina počátečních stavů F = {qi,n} Q je mnoţina koncových stavů, přičemţ stav qi,n detekuje slovo w s chybou i. • a) qi,j (qi,j-1, xj) reprezentuje přijetí znaku xi bez chyby. • b) qi+1,j (qi,j-1 , x), pro x X\{xj} reprezentuje přijetí znaku xi s chybou (operace REPLACE). DBI010 - DIS - MFF UK Levenshteinova metrika • Detekce nedeterministickým KA * s u c c e s s u c c e s s -s -s -u -u -c -c -c -c -e -e -s -s -s -s s u c c e s s u c c e s s -s -s -u -u -c -c -c -c -e -e -s -s -s -s s u c c e s s DBI010 - DIS - MFF UK 0 chyb 1 chyba 2 chyby Levenshteinova metrika • • • • • • • • Q = {qi,j | 0ik, 0jn} je mnoţina stavů X je daná abeceda S = {q0,0} Q je mnoţina počátečních stavů F = {qi,n} Q je mnoţina koncových stavů, přičemţ stav qi,n detekuje slovo w s chybou i. a) qi,j (qi,j-1, xj) přijetí znaku xi bez chyby. b) qi+1,j (qi,j-1, x), pro x X\{xj} REPLACE. c) qi+1,j-1 (qi,j-1, x), pro x X\{xj} INSERT. d) qi+1,j+1 (qi,j-1, xj+l) DELETE. DBI010 - DIS - MFF UK Konstrukce slovníku • Frekvenční slovník dokumentu Dok. 1 – Seznam slov sestupně dle četnosti výskytu • Na konci – Zřídka pouţívaná slova – Překlepy • Na začátku Frekv. sl. Stoplist Dok. 2 Termy Frekv. sl. Stoplist – Častá slova – Nevýznamová slova DBI010 - DIS - MFF UK Překlepy Překlepy Termy … Neinteraktivní kontrola textu • Simultánním porovnáním dvou abecedně řazených slovníků – Abecední seznam termů dokumentu – Abecední slovník správných termů • Stačí jeden průchod oběma slovníky DBI010 - DIS - MFF UK Interaktivní kontrola textu • Kaţdý term je potřeba ihned kontrolovat • Úspora místa v paměti a času pomocí hierarchického slovníku • Zaloţeno na tzv. Zipfově empirickém zákonu: pořadí termu ve frekvenčním slovníku násobené jeho frekvencí je přibližně konstantní DBI010 - DIS - MFF UK Zipfův empirický zákon • Prvních 10 slov anglického frekvenčního slovníku obsahujícího přibliţně 1.000.000 slov pořadí slovo frekvence pořadí*frekvence 1 2 3 4 5 6 7 8 9 10 the of and to a in that is was he DBI010 - DIS - MFF UK 0.069971 0.036411 0.028852 0.026149 0.023237 0.021341 0.010595 0.010099 0.009816 0.009543 0.069971 0.072822 0.086556 0.104596 0.116185 0.128046 0.074165 0.080792 0.088344 0.095430 Zipfův empirický zákon • Kumulativní frekvence prvních k termů KPS k k i 1 frekvence • Prvních 10 slov 25% slov textu i pořadí 1 2 3 4 5 6 7 8 9 10 slovo the of and to a in that is was he frekvence pořadí*frekvence KPS 0.069971 0.069971 0.069971 0.036411 0.072822 0.106382 0.028852 0.086556 0.135234 0.026149 0.104596 0.161383 0.023237 0.116185 0.184620 0.021341 0.128046 0.205961 0.010595 0.074165 0.216556 0.010099 0.080792 0.226655 0.009816 0.088344 0.236471 0.009543 0.095430 0.246014 DBI010 - DIS - MFF UK Zipfův empirický zákon • Kumulativní frekvence graficky % všech slov v textu 100 70 0 0 20 DBI010 - DIS - MFF UK 100 % rùzných slov v textu Hierarchický slovník • Kompletní slovník v externí paměti 10.000 různých slov • Slovník slov nalezených v dokumentu 2.000 různých slov • Slovník nejčastějších slov v paměti 200 různých slov 50% slov dokumentu DBI010 - DIS - MFF UK Komprese • Komprese v DIS – Seznamy slov (termy, stoplist) – Index – Primární dokumenty DBI010 - DIS - MFF UK Komprese termů • POM - Prefix Omitting Method – Kaţdý term ukládán jako dvojice • Délka společného prefixu s předchozím termem • Zbytek termu (postfix) a abeceda absence absolutní absolvent abstinent abstraktní aby ačkoli administrace administrativní DBI010 - DIS - MFF UK 0:a 1:beceda 2:sence 3:olutní 5:vent 3:tinent 4:raktní 2:y 1:čkoli 1:dministrace 10:tivní Organizace vektorového indexu • Jednotlivé vektory jsou řídké (cca 90% nul) • Nevyplatí se ukládat vektory včetně nul d [w1, w2 , w3,, wm] • Výhodnější ukládat jen dvojice – Index nenulového prvku – Hodnota na daném indexu d [ j1:w j1, j2:w j2 , j3:w j3,, jk :w jk , ] DBI010 - DIS - MFF UK Kódování a komprese • Kód K=(A,C,f), kde – A={a1, a2, ..., an} je zdrojová abeceda, |A|=n – C={c1, c2, ..., cm} je cílová abeceda, |C|=m, obvykle C={0,1} – f: AC+ je prosté kódové zobrazení znaků z abecedy A do prostoru slov v abecedě C. • Rozšíření na slova z A* f(ai1ai2...aik) = f(ai1)f(ai2)...f(aik) DBI010 - DIS - MFF UK Kódování a komprese • Kód K je jednoznačně dekódovatelný, právě kdyţ pro kaţdý řetěz YC+ existuje nejvýše jeden řetěz XA+ takový, ţe f(X)=Y. • Kód K=({0,1,2,3},{0,1},f), kde f(0)=0, f(1)=1, f(2)=10, f(3)=11 není jednoznačně dekódovatelný f(21)=101=f(101) DBI010 - DIS - MFF UK Kódování a komprese • Kód K je prefixový, právě kdyţ ţádné kódové slovo f(ai) není vlastním prefixem jiného kódového slova f(aj). • Kód K=({0,1,2,3},{0,1},f), kde f(0)=0, f(1)=10, f(2)=110, f(3)=111 je prefixový. • Kód K je blokový (délky k), právě kdyţ mají všechna kódová slova délku k. DBI010 - DIS - MFF UK Kódování a komprese • Kaţdý blokový kód je zároveň kódem prefixovým. • Kaţdý prefixový kód je jednoznačně dekódovatelný. • Kód K je dekódovatelný po znacích, pokud je moţné po přečtení prvních znaků tvořících kód f(ai) jednoznačně určit zdrojový znak ai. DBI010 - DIS - MFF UK Kódování a komprese • Kód K=({a,b,c,d},{0,1},f), kde f(a)=0, f(b)=01, f(c)= 011, f(d)=111 není dekódovatelný znak po znaku, ale je jednoznačně dekódovatelný. • Př.: f(X)=011111111... DBI010 - DIS - MFF UK Entropie a redundance • Nechť A={a1, a2, ..., an} je zdrojová abeceda. • Nechť pravděpodobnost výskytu znaku ai v textu je rovna hodnotě pi. • P(A) = (p1, p2, ..., pn) nazveme pravděpodobnostním rozdělením A. DBI010 - DIS - MFF UK Entropie a redundance • Entropie (míra informace) znaku ai v textu je rovna hodnotě E(ai) = -log(pi) bitů. • Průměrná entropie jednoho znaku AE A pi log pi n i 1 • Entropie zprávy E ai ai ... ai k 1 2 log pi j j 1 k DBI010 - DIS - MFF UK Entropie a redundance • Nechť kód K(A,C,f) přiřazuje znakům aiA kódová slova délek |f(ai)| = di. • Délka zakódované zprávy je rovna k f ai ai ... ai l ai ai ... ai d i 1 2 k 1 2 k j 1 j E l ... ... • Platí ai1ai2 aik ai1ai2 aik • Redundance R l ai ai ... ai E ai ai ... ai k k 1 2 1 2 DBI010 - DIS - MFF UK Kódování čísel • Binární kódování pro potenciálně nekonečnou mnoţinu • Dekódovatelné zleva doprava • Co nejúspornější DBI010 - DIS - MFF UK Fibonacciho kódování • Místo mocnin čísla 2 pouţívá pro jednotlivé řády Fibonacciho čísla • Tedy místo n=bi2i, kde bi{0,1} se pouţívá zápis n=biFi, kde bi{0,1}, F0=1, F1=2, Fk+1=Fk-1+Fk • Nejvyšší řády se zapisují vpravo • Problém: nejednoznačnost 1710 =1+3+5+8 =F0+F2+F3+F4 =10111Fib =1+3+13 =F0+F2+F5 =101001Fib DBI010 - DIS - MFF UK Fibonacciho kódování • Existuje jediný zápis, který nepouţívá ţádné dva po sobě jdoucí členy • Dokud v součtu existují dva po sobě jdoucí členy, lze největší z nich nahradit součtem (následujícím členem)1,2,3,5,8,13,21,34,55,89 • 10010 =111101101Fib =111100011Fib =1111000001Fib =1100100001Fib =0010100001Fib DBI010 - DIS - MFF UK Fibonacciho kódování • V zápise v normalizovaném tvaru – Neexistují dvě jedničky za sebou – Na poslední (nejpravější) pozici je jednička • Za reprezentaci čísla je dopsána jednička kvůli rozpoznání konce zápisu • 10010 =00101000011F • Fibonacciho řada roste exponenciálně zápis má logaritmickou délku DBI010 - DIS - MFF UK Eliasovy kódy • Řada kódování čísel s různými vlastnostmi • Alfa kód (unární) • n 00 01 n 1 + Dekódovatelné – Dlouhé kódy číslo kód 1 1 2 01 3 001 4 0001 5 00001 6 000001 7 0000001 8 00000001 9 000000001 |(230-1)|= 230-1 DBI010 - DIS - MFF UK Eliasovy kódy • Beta kód (binární) • Standardní kódování 1 1 2n n .0 2n 1 n .1 + Krátké kódy – Nedekódovatelné číslo 1 2 3 4 5 6 7 8 9 kód 1 10 11 100 101 110 111 1000 1001 |(230-1)|= 30 DBI010 - DIS - MFF UK Eliasovy kódy • Modifikovaný beta kód • Bez úvodní jedničky • 1 2n n .0 2n 1 n .1 + Krátké kódy – Nedekódovatelné číslo 1 2 3 4 5 6 7 8 9 kód 0 1 00 01 10 11 000 001 |’(230-1)|= 30-1=29 DBI010 - DIS - MFF UK Eliasovy kódy • Theta kód • n n .# + Krátké kódy + Dekódovatelné – Ternární kódování číslo 1 2 3 4 5 6 7 8 9 kód 1# 10# 11# 100# 101# 110# 111# 1000# 1001# |(230-1)|= 30+1=31 DBI010 - DIS - MFF UK Eliasovy kódy • Gama kód • Kombinace dvou kódů – Modifikovaný beta kód kóduje číslo – Alfa kód zajišťuje dekódovatelnost ’(n) • 7 01011 + Krátké kódy (|(n)|) + Dekódovatelné číslo 1 2 3 4 5 6 7 8 9 kód 1 001 011 00001 00011 01001 01011 0000001 0000011 |(230-1)|= 30+29=59 DBI010 - DIS - MFF UK Eliasovy kódy • Modifikovaný gama kód • n n . n • Čitelnější pro člověka • Neregulární číslo 1 2 3 4 5 6 7 8 9 kód 1 010 011 00100 00101 00110 00111 0001000 0001001 |’(230-1)|= 30+29=59 DBI010 - DIS - MFF UK Eliasovy kódy • Delta kód • Pro kódování délky binárního kódu pouţívá úspornější gama kód • n n . n číslo 1 2 3 4 5 6 7 8 9 kód 1 0010 0011 01100 01101 01110 01111 00001000 00001001 |(230-1)|= 6+5+29=40 DBI010 - DIS - MFF UK Eliasovy kódy • Omega kód • Pro velmi velká čísla n B0 B1 Bk 0 B B k n log B B 1 i 1 i B 2 0 2 i číslo 1 2 3 4 5 6 7 8 9 kód 0 100 110 101000 101010 101100 101110 1110000 1110010 |(230-1)|= 2+3+5+30+1=41 DBI010 - DIS - MFF UK Organizace vektorového indexu • Místo reálných čísel lze ukládat mantisu jako celé číslo • Obvykle stačí přesnost jen na několik desetinných čísel • Menší čísla se ukládají na méně bitů, lze proto ušetřit místo kódováním indexů relativně vůči předchozímu d [ j1:w j1, j2 j1:w j2 ,, jk jk 1:w jk , ] DBI010 - DIS - MFF UK Komprese textu • Huffmanovo kódování. • Prefixový kód pro abecedu A s minimální moţnou redundancí DBI010 - DIS - MFF UK Komprese textu • Konstrukce – Pro abecedu A={a1, a2, ..., an} s rozloţením P(A)={p1, p2, ..., pn}, předp. p1 p2 ... pn – Pokud n=2, potom f(a1)=0, f(a2)=1 – Jinak se sestrojí modifikovaná abeceda A’={a1a2, a3, ..., an}, P(A’)={p1+p2, p3, ..., pn} K ní rekurzivně kód f’ – f(a1)=f’(a1a2).0, f(a2)=f’(a1a2).1, f(ai)=f’(ai) DBI010 - DIS - MFF UK Příklad Huffmanova kódování – A={u, v, w, x, y, z} s rozloţením 1 2 3 4 5 17 P(A)= 32 , 32 , 32 , 32 , 32 , 32 • • • • • • f(u) f(v) f(w) f(x) f(y) f(z) = 0000 = 0001 = 001 = 010 = 011 =1 uvwxyz 0 32/32 uvwxy 0 15/32 1 z 17/32 1 uvw xy 0 6/32 1 0 9/32 1 uv w x y 0 3/32 1 3/32 4/32 5/32 u v 1/32 2/32 DBI010 - DIS - MFF UK Komprese textu • Model dat – Komprese a dekomprese je řízena souborem dat, parametrizujícím danou metodu • Např. rozloţení pravděpodobností – Nutno zajistit shodnost obou modelů model Vstupní text komprese model Komprimovaná data dekomprese DBI010 - DIS - MFF UK Vstupní text Komprese textu • Statická komprese – Model je statický pro všechny dokumenty • Je moţné ho mít uloţen jen jednou • Komprese není zcela optimální • Semiadaptivní komprese – Kaţdý dokument má vlastní model • Musí být uloţen spolu s komprimovanými daty • Dynamická (adaptivní) komprese – Oba algoritmy si model tvoří na základě jiţ zpracovaných dat DBI010 - DIS - MFF UK Adaptivní Huffmanovo kódování • FGK (Faller, Gallager a Knuth) algoritmus • Vyuţívá sourozeneckou vlastnost kódovacího stromu – Uzly lze uspořádat tak, ţe • Sourozenci jsou vedle sebe • Četnosti v uspořádání neklesají uvwxyz 0 32/32 uvwxy 0 15/32 1 z 17/32 1 uvw xy 0 6/32 1 0 9/32 1 uv w x y 0 3/32 1 3/32 4/32 5/32 u v 1/32 2/32 DBI010 - DIS - MFF UK Adaptivní Huffmanovo kódování • V kaţdém kroku existuje kódový strom • Následující znak se zakóduje/dekóduje podle tohoto stromu • Strom se upraví s ohledem na zvýšenou četnost tohoto znaku • Oba algoritmy musí začít se shodným stromem DBI010 - DIS - MFF UK Adaptivní Huffmanovo kódování • Modifikace stromu Uzel := Zpracovaný_uzel; while Uzel <> Root do begin Zaměň Uzel i s případným podstromem za poslední uzel dle uspořádání se stejnou četností; Zvyš četnost Uzlu o jedna {tím se neporuší uspořádání} Uzel := Předek(Uzel) end; DBI010 - DIS - MFF UK Adaptivní Huffmanovo kódování • Dán strom • Kóduje se znak z jako 1011 • Uzel je jediný s četností 3 • Lze ji zvýšit na 4 0 32 x 11 DBI010 - DIS - MFF UK 1 z 0 0 w 5 10 0 y 2 21 1 5 0 u 1 5 z 3 1 11 1 y v 6 Adaptivní Huffmanovo kódování • Uzel s četností 5 není poslední v uspořádání • Nutno prohodit s posledním • Potom lze zvýšit četnost 0 32 x 11 DBI010 - DIS - MFF UK 1 z 0 0 w 5 10 0 y 2 21 1 5 0 u 1 5 z 4 1 11 1 y v 6 Adaptivní Huffmanovo kódování • Uzel s četností 11 není poslední v uspořádání • Nutno prohodit s posledním • Potom lze zvýšit četnost 0 32 x 11 DBI010 - DIS - MFF UK 1 z 0 0 w 5 10 21 1 u 5 0 y 2 1 0 6 11 1 y v 1 6 z 4 Adaptivní Huffmanovo kódování • Uzel s četností 32 je poslední v uspořádání • Není nutno prohodit Lze zvýšit četnost 0 32 1 z 0 0 y 2 6 DBI010 - DIS - MFF UK 12 1 y v 1 6 0 z w 4 5 0 10 21 1 u 5 1 x 11 Adaptivní Huffmanovo kódování • Podle výsledného stromu by se další znak z kódoval jako 001 místo 1011 0 33 1 z 0 0 y 2 6 DBI010 - DIS - MFF UK 12 1 y v 1 6 0 z w 4 5 0 10 21 1 u 5 1 x 11 Adaptivní Huffmanovo kódování • Je moţné vyjít z vyváţeného stromu s četnostmi všech znaků rovnými jedné 0 1 4 0 a 1 DBI010 - DIS - MFF UK 2 1 0 b 1 c 1 2 1 d 1 Adaptivní Huffmanovo kódování • • • Výhodnější je vyjít z jediného uzlu reprezentujícího dosud neznámý znak s četností rovnou jedné Nový, dosud nekódovaný, znak se zakóduje pomocí tohoto znaku následovaného definicí znaku Uzel se rozdvojí na uzel pro nový znak a neznámý znak, oba s četnostmi jedna • Kódujeme první znak zprávy ? abacbda 1 • Odešleme prázdný řetězec Následovaný definicí znaku a a bacbda 0 ? 1 DBI010 - DIS - MFF UK 2 1 a 1 Adaptivní Huffmanovo kódování • • • Výhodnější je vyjít z jediného uzlu reprezentujícího dosud neznámý znak s četností rovnou jedné Nový, dosud nekódovaný, znak se zakóduje pomocí tohoto znaku následovaného definicí znaku Uzel se rozdvojí na uzel pro nový znak a neznámý znak, oba s četnostmi jedna • Kódujeme druhý znak zprávy a bacbda 0 2 1 ? 1 • a 1 Odešleme řetězec 0 Následovaný definicí znaku b a0b acbda 0 1 3 a 1 0 ? 1 DBI010 - DIS - MFF UK 2 1 b 1 Adaptivní Huffmanovo kódování • • • Výhodnější je vyjít z jediného uzlu reprezentujícího dosud neznámý znak s četností rovnou jedné Nový, dosud nekódovaný, znak se zakóduje pomocí tohoto znaku následovaného definicí znaku Uzel se rozdvojí na uzel pro nový znak a neznámý znak, oba s četnostmi jedna • Kódujeme třetí znak zprávy a0b acbda 0 1 3 a 1 • 0 b 1 cbda 0 1 4 a 2 0 ? 1 DBI010 - DIS - MFF UK 1 ? 1 Odešleme řetězec 0 a0b0 2 2 1 b 1 HuffWord algoritmus • Kódování textu Huffmanovým algoritmem po slovech • Semiadaptivní metoda • Efektivnější neţ po znacích – Více různých poloţek s velmi rozdílnou pravděpodobností • Náročnější na uloţení dekódovacího stromu • Náročnější na čas při kompresi DBI010 - DIS - MFF UK HuffWord algoritmus • Pouţívá kanonický tvar kódových slov • Kaţdé kódové slovo je tvaru p.c – p je prefix ze samých nul – c je kódové číslo • Kódy řazeny dle délky a pro jednu délku dle své velikosti • Délka prefixu u delšího kódu je shodná s délkou kratšího kódu DBI010 - DIS - MFF UK Příklad HuffWord algoritmu • Slova A..H s délkami kódů 4,4,5,5,2,2,4,2 • Kódy délky 4 mají prefix 00 délky 2 Kódy délky 2 jsou 01,10,11 • Kódy délky 5 mají prefix 0000 délky 4 Kódy délky 4 jsou 00.01, 00.10, 00.11 Kódy délky 5 jsou 0000.0 a 0000.1 DBI010 - DIS - MFF UK Příklad HuffWord algoritmu • Přiřazení kódů k jednotlivým znakům A B C D E F G H délka 4 4 5 5 2 2 4 2 kód 0001 0010 00000 00001 01 10 0011 11 • Kódy seřazené dle velikosti E F H A B G C D délka 2 2 2 4 4 4 5 5 DBI010 - DIS - MFF UK kód 01 10 11 0001 0010 0011 00000 00001 HuffWord algoritmus • Určení délek kódů • Dány jednotlivá slova wi, jejich četnosti ni a pravděpodobnosti pi • for each i b=round(-log(pi)) if (b==0) then b++ x[b]+=ni • Index u největší hodnoty určuje délku nejkratšího kódu • Index u druhé největší hodnoty určuje přírůstek u druhé nejkratší délky • ... DBI010 - DIS - MFF UK Příklad HuffWord algoritmu • Délky kódů • Znaky A..E slovo A B C D E ni 3 7 20 30 40 pi -log(pi ) round(-log(pi )) 0,03 5,06 5 0,07 3,84 4 0,20 2,32 2 0,30 1,74 2 0,40 1,32 1 • Pole x I x[I] 1 40 2 50 3 0 4 7 5 3 – – – – 2 2+1 2+1+4 2+3+4+5 • Kódy – – – – – DBI010 - DIS - MFF UK E=01 D=10 C=11 B=000 A=001 HuffWord algoritmus • Dekomprese • Pro kaţdou délku b v bitech stačí znát – Hodnotu prvního platného kódového slova s touto délkou (prvni[b]) – Index prvního platného slova v tabulce slov (baze[b]) • Pro E=01, D=10, C=11, B=000, A=001 – – – – prvni[0] =+ prvni[1] = + prvni[2] = 1 baze[2] = 1 prvni[3] = 0 baze[3] = 4 DBI010 - DIS - MFF UK HuffWord algoritmus • Pro E=01, D=10, C=11, B=000, A=001 • prvni[0]=+, prvni[1]=+, prvni[2]=1, prvni[3]=0 • baze[2]=1, baze[3]=4 • Vstup 10|11|01|01|000|10|001 • c = 0; d = 0 while (c<prvni[d]) c=2*c+dalsi_bit() d++ index_slova = baze[d] + c - prvni[d] DBI010 - DIS - MFF UK Markovovy automaty • Pravděpodobnostní rozloţení jednotlivých znaků se můţe lišit v závislosti na kontextu (předchozích znacích) – p(”o”) =0.058 pravděpodobnost výskytu znaku ”o” v textu – p(”o”|”e”) =0.004 pravděpodobnost výskytu ”o” v textu za předpokladu, ţe předchozí znak byl ”e” – p(”o”|”c”) =0.237 DBI010 - DIS - MFF UK Markovovy automaty • Lze sestrojit automat, jehoţ stavy odpovídají řetězcům textu určité délky • Q=Xn, kde n je řád automatu • (x1x2…xn, x) = x2…xnx • Pro kaţdý stav lze zkonstruovat vlastní model komprese, který odpovídá podmíněným pravděpodobnostem • Lepší odhad pravděpodobností vede k lepšímu kompresnímu poměru DBI010 - DIS - MFF UK Pravděpodobnostní model komunikačního kanálu • • • • Vyslaná zpráva X sloţená ze slov w1w2w3…wn (Zarušený) komunikační kanál C Obdrţená zpráva Y Jaká je pravděpodobnost P(X|Y) odeslání zprávy X, pokud byla obdrţena zpráva Y? – P(X|Y)=P(X)*P(Y|X) • Pravděpodobnost vzniku X • Pravděpodobnost obdrţení Y, pokud byla odeslána zpráva X DBI010 - DIS - MFF UK Pravděpodobnostní model komunikačního kanálu • P(X|Y)=P(X)*P(Y|X) – Pravděpodobnost P(X) vzniku X • P(X)=P(w1w2w3…wn) • P(X)=P(w1w2w3…wn) =P(w1)*P(w2|w1)*P(w3|w1w2)*P(wn|w1w2w3…wn-1) ~P(w1)*P(w2|w1)*P(w3|w2)*P(wn|wn-1) – Digramy, lze zobecnit na k-gramy DBI010 - DIS - MFF UK Pravděpodobnostní model komunikačního kanálu • P(X|Y)=P(X)*P(Y|X) – Pravděpodobnost P(Y|X) obdrţení Y závisí na vlastnostech kanálu • Pravděpodobnost přidání písmene závisí na sousednosti na klávesnici … DBI010 - DIS - MFF UK Pravděpodobnostní model komunikačního kanálu • Parametry P(wi), P(wj|wi), P(wk|wjwi) lze získat natrénováním na dostatečně velkém korpusu textů DBI010 - DIS - MFF UK Vyuţití modelu komunikačního kanálu • Oprava textu – Jak je pravděpodobné to které správné slovo, pokud je v textu překlep? Pravděpodobnější můţe být i slovo s větší vzdáleností. • Nalézání kolokací (sousloví) – Výrazně vyšší pravděpodobnost dané posloupnosti slov v korpusu, nebo v textu oproti korpusu DBI010 - DIS - MFF UK Vyuţití modelu komunikačního kanálu • Poloautomatická tvorba hierarchií v tezauru – Hierarchické shlukování termů dle podobnosti pravděpodobnostního rozloţení v závislosti na kontextu • Syntakticko-sémantické třídy (ÚFAL) slova v jedné třídě na základě stejného významu (synonyma se vyskytují v podobných kontextech) nebo na základě stejného syntaktického pouţití ve větě (nejvyšší úrovně stromu – třídy sloves, podstatných jmen, ...) DBI010 - DIS - MFF UK Syntakticko-sémantické třídy • Slova rozdělena do tříd c1, …, cm • Pokud wica, wjcb • P(wj|wi) ~ P(cb|ca)*P(wj|cb) – Redukce mnoţství dat • Nalezení dvou nejpodobnějších pravděpodobnostních rozloţení dvou slov (tříd) na kontextu – Největší vektorová podobnost – Největší vzájemná informace I(X, Y) pravděpodobnostních rozloţení X, Y DBI010 - DIS - MFF UK Vzájemná informace • Dána dvě pravděpodobnostní rozloţení X, Y • Entropie H X xi log xi i 1 • Spojená entropie (joint entropy) n H X ,Y xi y j log xi y j n i 1 • Vzájemná informace I X ,Y H X H Y H X ,Y DBI010 - DIS - MFF UK