Dokumentografické Informační Systémy

Slides:



Advertisements
Podobné prezentace
Algoritmy zpracování textů II
Advertisements

Vyhledávací stoje na Internetu. (vyhledavače pro začátečníky)
J. Pokorný 1 DOTAZOVACÍ JAZYKY slajdy přednášce DBI006 J. Pokorný MFF UK
Zpracování informací a znalostí Další přístupy k vyhledávání textových dokumentů Doc. RNDr. Jan Rauch, CSc. Katedra informačního a znalostního inženýrství.
J. Pokorný 1 DOTAZOVACÍ JAZYKY slajdy přednášce DBI006 J. Pokorný MFF UK Odpřednášeno
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Dualita úloh lineárního programování a analýza citlivosti
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
Rekonstrukce povrchu objektů z řezů Obhajoba rigorózní práce 25. června 2003 Radek Sviták
ALGO – Algoritmizace 1. cvičení
Třídění Seminář IVT. Definice uspořádání skupiny dat (záznamů) dle daného klíče vzestupně (od nejmenší do největší hodnoty klíče) sestupně (od největší.
Síťová analýza RNDr. Jiří Dvořák, CSc.
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Algoritmy zpracování textů II
Programování v Pascalu Přednáška 7
ADT Strom.
Medians and Order Statistics Nechť A je množina obsahující n různých prvků: Definice: Statistika i-tého řádu je i-tý nejmenší prvek, tj., minimum = statistika.
Lineární algebra.
Robustní vyrovnání Věra Pavlíčková, únor 2014.
LOGISTICKÉ SYSTÉMY 7/14.
1 Vyhledávání Principy vyhledávání Klasifikace klíče:  Interní klíč – je součástí prohlížených záznamů  Externí klíč – není jeho součástí, je jím např.
Rešerše Mgr. Anna Vitásková.
Statistika Vypracoval: Mgr. Lukáš Bičík
Informatika I 3. přednáška
Fakulta životního prostředí Katedra informatiky a geoinformatiky
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
Řízené slovníky databází ISTA, LLIS/FTXT, LISA. Obecně: Řízený slovník – controlled vocabulary Slovník lexikálních jednotek selekčního jazyka uspořádaný.
REDUKCE DAT Díváme-li se na soubory jako na text, pak je tento text redundantní. Redundance vyplývá z:  některé fráze nebo slova se opakují  existuje.
Shluková analýza.
Rozšíření dotazu a vývoj tématu v IR Jiří Dvorský Jan Martinovič Václav Snášel.
TI 7.1 NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6. TI 7.2 Nejkratší cesty z jednoho uzlu Seznámíme se s následujícími pojmy: w-vzdálenost (vzdálenost na.
1. přednáška Fulltextové vyhledávání Slajdy 3-26 převzaty z Michal Kopecký: Databázové Aplikace (DBI026, MFF UK) Úvod do databázových systémů B RNDr. Jan.
Vyhledávání podobností v datech s využitím singulárního rozkladu
Algoritmy a programovací techniky
Formulace a vlastnosti úloh lineárního programování
Fulltextové vyhledávání Michal Kopecký
Matice.
IGrid index Roman Krejčík. Obsah Motivace Prokletí dimenze Míry podobnosti IGrid, IGrid+ Experimentální porovnání.
Shluková analýza.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
Filtrace web stránek s využitím profilu uživatele Petr Doskočil
Jedno-indexový model a určení podílů cenných papírů v portfoliu
Realtime identifikace osob podle hlasu
2 Petr Žitný znalosti.vema.cz 3 Báze znalostí Nová služba zákazníkům ▸Báze naplněná informacemi, ke které mají uživatelé přímý přístup Základní cíl ▸Poskytovat.
© Institut biostatistiky a analýz INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ ANALÝZA A KLASIFIKACE DAT prof. Ing. Jiří Holčík, CSc.
Rozpoznávání v řetězcích
2. Vybrané základní pojmy matematické statistiky
Kanonické indexování vrcholů molekulového grafu Molekulový graf: G = (V, E, L, ,  ) Indexování vrcholů molekulového grafu G: bijekce  : V  I I je indexová.
Vyhledávání v multimediálních databázích Tomáš Skopal KSI MFF UK 4. Mapování a redukce dimenze 1. část – úvod + mapování vektorových sad.
Praktikum 4c: Tabulky, baterie otázek 16/5/08. Tabulky - metoda popisu dat.
REŠERŠNÍ STRATEGIE Mgr. Anna Vitásková.
Sylabus V rámci PNV budeme řešit konkrétní úlohy a to z následujících oblastí: Nelineární úlohy Řešení nelineárních rovnic Numerická integrace Lineární.
Vyhledávání v multimediálních databázích Tomáš Skopal KSI MFF UK
Podobnost trajektorií Jiří Jakl Úvod - využití Rozpoznáváni ručně psaných textů GPS navigace Analýza pohybu pracovníku v budovách Predikce.
Metrické indexování vektorových modelů v oblasti Information Retrieval
METODY STŘEDNĚDOBÉHO PROGNÓZOVÁNÍ SURO jaro 2010.
Jana Holá Tvorba rešerše Jana Holá
Úvod do databází zkrácená verze.
Úvod do databázových systémů
Znázornění dopravní sítě grafem a kostra grafu Předmět: Teorie dopravy - cvičení Ing. František Lachnit, Ph.D.
Výpočetní technika Akademický rok 2008/2009 Letní semestr
Databázové systémy 1 – KIT/IDAS1 Ing. Monika Borkovcová, Ph.D.
ANALÝZA A KLASIFIKACE DAT
Jana Holá Tvorba rešerše Jana Holá
Automatická indexace Základní metody a postupy
Úvod do textových informačních systémů
1 Lineární (vektorová) algebra
Metodologie pro ISK 2 Úvod do práce s daty
ANALÝZA A KLASIFIKACE DAT
ANALÝZA A KLASIFIKACE DAT
Transkript prezentace:

Dokumentografické Informační Systémy Slidy k přednášce NDBI010 KSI MFF UK http://www.ms.mff.cuni.cz/~kopecky/vyuka/dis/ Verze 12.04.30.12.15 1

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 2

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 3

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 4

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 5

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 6

Přehled problematiky měření informativnosti Přednáška č. 1 Úvod do DIS Přehled problematiky měření informativnosti 7

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 8

Práce s DIS Zadání dotazu Porovnání Získání seznamu odpovídajících dokumentů Ladění dotazu Vyžádání dokumentu Obdržení textu DIS 1 3 5 6 2 4 DBI010 - DIS - MFF UK 9

Struktura DIS Systém zpřístupnění dokumentů 1 I) 2 Vrací sekundární informace Autor Název ... Systém dodání dokumentů Někdy není řešen pomocí SW I) 1 2 3 4 II) 5 6 DBI010 - DIS - MFF UK 10

Vyhodnocení dotazu Přímé porovnání náročné na čas Dotaz Porovnání Dok1 Doki1 Dotaz Přímé porovnání náročné na čas DBI010 - DIS - MFF UK 11

Vyhodnocení dotazu Nutné vytvoření modelu dokumentu Indexace X1 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í DBI010 - DIS - MFF UK 12

Vyhodnocení dotazu Dotaz se upraví do odpovídající podoby Následně se porovná s modelem dokumentů Porovnání Doki1 X1 Dotaz DBI010 - DIS - MFF UK 13

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 14

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 15

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 16

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 17

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 18

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 19

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 20

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 21

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 22

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 23

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 24

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 25

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. … <p n=1> <s id="docID:001-p1s1"> <f cap>Odpovědným <MDl>odpovědný_^(kdo_za_něco_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>AAIS1----1A---- <p n=2> … Číslo odstavce Číslo věty Slovo v dokumentu Lemma včetně významu Slovní druh (Adverb), … DBI010 - DIS - MFF UK 26

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 27

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 28

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 Relevantní dokumenty Vrácené v DIS1 Vrácené v DIS2 DBI010 - DIS - MFF UK 29

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 Relevantní Vrácené dok.  DBI010 - DIS - MFF UK 30

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 31

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 32

Přesnost a úplnost V ideálním případě V běžném případě P=R=1 V odpovědi jsou zařazeny právě a pouze všechny relevantní dokumenty V běžném případě Odpověď na první verzi dotazu není ani přesná, ani úplná 1 Optimum Počáteční odpověď 1 DBI010 - DIS - MFF UK 33

Přesnost a úplnost Ladění dotazu Postupná modifikace dotazu s cílem zvýšit kvalitu odpovědi Teoreticky je sice možné dosáhnout optima, ale … R 1 Optimum P 1 DBI010 - DIS - MFF UK 34

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 P 1 DBI010 - DIS - MFF UK 35

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 36

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 37

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 38

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 39

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ů Některé oblasti použití vyžadují co nejvyšší přesnost i úplnost Právnictví „lepší“ Vr. Rel. „horší“ Vr. Rel. DBI010 - DIS - MFF UK 40

Přesné vyhledávání vzorků 41

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 42

Algoritmy dle předzpracování 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 43

Algoritmy II 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 44

Přesné vyhledávání vzorků Hledání jednoho vzorku v textu 45

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) konst je malé číslo (jednotky), závislé na jazyku a b c Text Před pos. Po posunu DBI010 - DIS - MFF UK 46

Knuth-Morris-Prattův algoritmus 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 47

KMP algoritmus a b c Text Před pos. Po posunu Triviální algoritmus a b DBI010 - DIS - MFF UK 48

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 a b c Text Před pos. Po posunu DBI010 - DIS - MFF UK 49

KMP algoritmus DBI010 - DIS - MFF UK 50

KMP algoritmus Pokud Potom 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 51

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 52

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 53

Určení pole P pro KMP DBI010 - DIS - MFF UK 54

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 55

Určení pole P pro KMP DBI010 - DIS - MFF UK 56

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 57

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 58

Určení pole P pro KMP DBI010 - DIS - MFF UK 59

Určení pole P pro KMP DBI010 - DIS - MFF UK 60

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 61

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 62

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] Pole P[j] není potom při vlastním hledání potřeba a b c 1 2 3 4 V P P’ DBI010 - DIS - MFF UK 63

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 64

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 xX, 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 65

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 66

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 67

Boyer-Moorův algoritmus (1) Příklad vyhledávání: DBI010 - DIS - MFF UK 68

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 S A N DBI010 - DIS - MFF UK 69

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 DBI010 - DIS - MFF UK 70

Porovnání na umělém příkladu DBI010 - DIS - MFF UK 71

Porovnání na umělém příkladu DBI010 - DIS - MFF UK 72

Porovnání na umělém příkladu DBI010 - DIS - MFF UK 73

Porovnání na anglickém textu Pozn: různý vzorek  nalezen poprvé až na své původní pozici DBI010 - DIS - MFF UK 74

Porovnání na anglickém textu DBI010 - DIS - MFF UK 75

Porovnání na anglickém textu DBI010 - DIS - MFF UK 76

Porovnání na anglickém textu DBI010 - DIS - MFF UK 77

Porovnání na anglickém textu DBI010 - DIS - MFF UK 78

Porovnání na anglickém textu *) 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 79

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 obsahujexX 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 80

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 81

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 82

Boyer-Moorův algoritmus (2) BM(2) Text a b c c b a b a c b b c a b b a c b b a b c b b a b c c Před pos. b b a c b b a b c b b Po posunu b b a c b b a b c b b BM(2) Text a b c c b a a b c b b c a b b a c b b a b c b b a b c c Před pos. b b a c b b a b c b b Po posunu b b a c b b a b c b b DBI010 - DIS - MFF UK 83

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 84

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 85

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 86

FS algoritmus FS Text a b c c b a b a c b b c a b b a c b b a b c b b Před pos. b b a c b b a b c b b Po posunu b b a c b b a b c b b FS Text a b c c b a a b c b b c a b b a c b b a b c b b a b c c Před pos. b b a c b b a b c b b Po posunu b b a c b b a b c b b DBI010 - DIS - MFF UK 87

S předzpracováním vzorku Porovnání algoritmů Bez předzprac. S předzpracováním vzorku protisměrný sousměrný timemax o(m*n) o(m+n) timeavg (přir. jazyk) o(m) o(m/n) DBI010 - DIS - MFF UK 88

Přesné vyhledávání vzorků Hledání konečného počtu vzorků v textu 89

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 90

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 q0Q 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 91

A-C algoritmus Stavy množiny Q reprezentují všechny prefixy všech vzorků Stav q0 reprezentuje prázdný prefix  g(q,x) = qx, pokud je qxQ Jinak g(q0,x)=q0 Jinak g(q,x) nedefinováno f(q) pro q<>q0 je rovna nejdelšímu vlastnímu postfixu q v množině Q |f(q)|<|q| Koncovými stavy jsou všechny hledané vzorky, tedy F=V DBI010 - DIS - MFF UK 92

A-C algoritmus Při vyhledávání se využívá všude definovaná přechodová funkce (q,x): QxXX (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 93

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 94

A-C algoritmus Příklad pro V={”he”,”her”,”she”}, funkce g DBI010 - DIS - MFF UK 95

A-C algoritmus Příklad pro V={”he”,”her”,”she”}, funkce f DBI010 - DIS - MFF UK 96

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 97

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 98

KMP vs. A-C pro 1 vzorek Shodné algoritmy s rozdílným popisem j (~ porovnávaná pozice) P[1]=0 P[j]=k qj-1 (~ # porovnaných pozic) g(q0,*)=q0 f(qj-1)=qk-1 a V b c P 1 2 3 4 DBI010 - DIS - MFF UK 99

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 100

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 q0Q 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 101

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 xqQ 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 102

C-W algoritmus Dopředná funkce s h e “e“ “he“ “she“ r “r“ “er“ “her“ DBI010 - DIS - MFF UK 103

C-W algoritmus Zpětná funkce s h e “she“ “he“ “e“ r h e “her“ “er“ “r“ DBI010 - DIS - MFF UK 104

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 105

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 106

C-W algoritmus shift1(q,x) – zarovnání kolizního znaku char(’y’)-h(’kolo’)-1=8-4-1=3 m k y o l g . m k y o l g . l o k g a m z v S r t u i á n y l o k g a m z v S r t u i á n y +3 DBI010 - DIS - MFF UK 107

C-W algoritmus shift2(q) – zarovnání zkontrolované části m k y o l g . +1 DBI010 - DIS - MFF UK 108

C-W algoritmus shift3(q) – zarovnání (obecně postfixu) zkontrolované části bez nutnosti použít kolizní znak m k y o l g . +2 a z v S r t u i á n DBI010 - DIS - MFF UK 109

FS vs. BM vs. CW pro 1 vzorek Ne zcela shodné algoritmy FS (+5) není horší než BM (+1) FS zarovnává kolizní znak spolu s prozkoumanou částí, BM jen kolizní znak FS (+5) není horší než CW (+4) FS zarovnává kolizní znak spolu s prozkoumanou částí, CW jen jednu z nich CW (+4) není horší než BM (+1) 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í a b . c a b . c a b . c b . c b b DBI010 - DIS - MFF UK 110

Přesné vyhledávání vzorků Přednáška č. 3 Přesné vyhledávání vzorků Hledání nekonečného počtu vzorků v textu 111

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|uh(U) vh(V)} h(U)h(V) DBI010 - DIS - MFF UK 112

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 113

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 114

Konečný automat Konfigurace KA Přechod KA (q,w)  Q x X* Přechod KA relace  (Q x X*) x (Q x X*) (q,aw) (q’,w)  (q,a) = q’ Automat přijímá slovo w (q0, w) * (q,), qF DBI010 - DIS - MFF UK 115

Nedeterministický konečný automat a) standardně K = ( Q, X, q0, , F ) b) rozšíření 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 116

Nedeterministický konečný automat NKA pro{”he”, ”her”, ”she”} S={1,4,8} F={3,7,11} S={1} F={3,4,7} h e r s 1 2 3 4 5 6 7 8 9 10 11 * h e r 1 2 3 4 5 6 7 * s DBI010 - DIS - MFF UK 117

Převod NKADKA K=(Q, X, S, , F) K’=(Q’, X, q’0, ‘, F‘) Q’ = P(Q) X q’0 = S ‘( q’, x) = (q, x), qq’ F‘ = {q’Q’q’F} DBI010 - DIS - MFF UK 118

Převod NKADKA povolena množina poč. stavů Tabulkou, jen dosažitelné stavy přechody do stavu 1 neuvedeny e h s 2 4 1 3 5 7 r 6 h e r s 1 2 3 4 5 6 7 8 9 10 11 * DBI010 - DIS - MFF UK 119

Převod NKADKA pouze jeden poč. stav Tabulkou, jen dosažitelné stavy přechody do stavu 1 neuvedeny e h s 2 4 1 3 5 7 r 6 h e r 1 2 3 4 5 6 7 * s DBI010 - DIS - MFF UK 120

Derivace regulárního výrazu Pokud, , potom Např., pokud , potom DBI010 - DIS - MFF UK 121

Derivace regulárního výrazu DBI010 - DIS - MFF UK 122

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 (q,x) = F = {qQ | h(q)} DBI010 - DIS - MFF UK 123

Konstrukce KA pomocí derivace V= (0+1)*.01 nad abecedou X={0,1} q0 = (0+1)*.01 DBI010 - DIS - MFF UK 124

Konstrukce KA pomocí derivace V= (0+1)*.01 nad abecedou X={0,1} q0 = (0+1)*.01 F = {(0+1)*.01+} B C 1 A DBI010 - DIS - MFF UK 125

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 126

Dvojcestný KA se skokem Konfigurace: řetězec x1x2...xi-1qxi...xj-1xj...xn z množiny X*QX*X* Přechod relace  (X*QX*X*) x (X*QX*X*) x1x2...xi-1qxi...xj-1xj...xn x1x2...xi-2q’xi-1...xj-1xj...xn  (q, xi) = (q’, -1) x1x2...xi-1qxi...xj-1xj...xn x1x2...xi...xj...xt-1q’xt...xn  (q, xi) = (q’, m), kde t=min(i+m,n+1) Příjem slova w q0w * wf, f  F DBI010 - DIS - MFF UK 127

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 128

2CKAS simulující B-M algoritmus se vzorkem „ANANAS“ Výchozí konfigurace q0MEZI TROPICKÉ OVOCE … odpovídá umístění vzorku před text 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 xX M T E Z I R O P C A V N S K É . DBI010 - DIS - MFF UK 129

2CKAS simulující B-M algoritmus se vzorkem „ANANAS“ Úvodním skokem automat přejde do konfigurace MEZI TqROPICKÉ OVOCE …, která odpovídá startu B-M algoritmu (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 M T E Z I R O P C A V N S K É . DBI010 - DIS - MFF UK 130

2CKAS simulující B-M algoritmus se vzorkem „ANANAS“ Celkově k = 6 = |ANANAS| Q = {q0,q,q1,q2,q3,q4,q5,q6} 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 Kopie stavu q DBI010 - DIS - MFF UK 131

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 132

Modely DIS Boolský model 133

Boolský model DIS 50-tá léta 20. stol. Automatizace postupů používaných v knihovnictví DBI010 - DIS - MFF UK 134

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 135

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 136

Indexace Tezaurus Stop-list 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 137

Indexace Příliš obecná slova nejsou pro identifikaci dokumentů vhodná Příliš specifická slova také ne DBI010 - DIS - MFF UK 138

Boolský model DIS Dotaz je vyjádřený logickým výrazem ta AND tb v dokumentu se vyskytují oba termy ta OR tb v dokumentu se vyskytuje alespoň jeden z termů NOT t v dokumentu se daný term nevyskytuje DBI010 - DIS - MFF UK 139

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 140

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 141

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 142

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 143

Organizace indexu Invertovaný seznam Pro každý term seznam dokumentů ve kterých se vyskytuje t1 = d1,1, d1,2, ..., d1,k1 t2 = d2,1, d2,2, ..., d2,k2 tm = dm,1, dm,2, ..., dm,km DBI010 - DIS - MFF UK 144

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 145

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. … <p n=1> <s id="docID:001-p1s1"> <f cap>Odpovědným <MDl>odpovědný_^(kdo_za_něco_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>AAIS1----1A---- <p n=2> … Číslo odstavce Číslo věty Slovo v dokumentu Lemma včetně významu Slovní druh (Adverb), … DBI010 - DIS - MFF UK 146

Proximitní omezení t1 (m,n) t2 t1 sentence t2 t1 paragraph 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 147

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 148

Organizace indexu Zpracování dokumentů na vstupu Setřídění 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 149

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 150

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 151

Částečné setřídění výstupu Q = (t1 OR t2) AND (t2 OR t3) AND t4 převedeme do DKNF Q’ = (t1 AND t2 AND t3 AND t4) OR (t1 AND t2 AND NOT t3 AND t4) OR (t1 AND NOT t2 AND t3 AND t4) OR (NOT t1 AND t2 AND t3 AND t4) OR (NOT t1 AND t2 AND NOT t3 AND t4) DBI010 - DIS - MFF UK 152

Čá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 153

Čá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 154

Vektorový model DIS 70-tá léta 20. stol. 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 155

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ů DBI010 - DIS - MFF UK 156

Vektorový model DIS Model dokumentu Dotaz wi,j … míra důležitosti j-tého termu pro identifikaci i-tého dokumentu Dotaz qj … míra důležitosti j-tého termu pro tazatele DBI010 - DIS - MFF UK 157

Index vektorového DIS DBI010 - DIS - MFF UK 158

Vektorový model DIS Podobnost mezi vektorem dotazu a vektorem dokumentu je dána funkcí 1 1 DBI010 - DIS - MFF UK 159

Podobnostní funkce Příspěvek ú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 160

Podobnostní funkce 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 161

Normalizace vektorů Eliminace vlivu délky vektoru na podobnost DBI010 - DIS - MFF UK 162

Normalizace vektorů Během indexace Během vyhledávání 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 163

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 164

Negace ve vektorovém DIS Je možné uvažovat dotaz Potom může být příspěvek záporný Tak lze upřednostnit dokumenty, které daný term neobsahují DBI010 - DIS - MFF UK 165

Skalární součin DBI010 - DIS - MFF UK 166

Kosinová míra (Salton) DBI010 - DIS - MFF UK 167

Jaccardova míra DBI010 - DIS - MFF UK 168

Diceova míra DBI010 - DIS - MFF UK 169

Overlap míra DBI010 - DIS - MFF UK 170

Asymetrická míra DBI010 - DIS - MFF UK 171

Pseudo-kosinová míra DBI010 - DIS - MFF UK 172

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 173

Indexace ve vektorovém DIS Bez stop-listu na začátku seznamu nevýznamová slova DBI010 - DIS - MFF UK 174

Indexace ve vektorovém DIS Frekvence termu jsou velmi malé i pro nejčastější termy Normalizovaná frekvence termu pro jinak DBI010 - DIS - MFF UK 175

Indexace ve vektorovém DIS Odlišení významných termů od nevýznamných DBI010 - DIS - MFF UK 176

Indexace ve vektorovém DIS ITF (Inverted TF) reprezentuje důležitost termu v pro indexaci v rámci celé kolekce dokumentů DBI010 - DIS - MFF UK 177

Indexace ve vektorovém DIS Normalizace vektoru dokumentu na jednotkovou velikost DBI010 - DIS - MFF UK 178

Dotazování Shodná reprezentace dokumentů a dotazů má řadu výhod Dotaz Přímo zadáním vektoru dotazu Odkazem na zaindexovaný dokument: 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 179

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 180

Zpětná vazba Odpověď na předchozí dotaz je uživatelem rozdělena na relevantní a nerelevantní dokumenty DBI010 - DIS - MFF UK 181

Pozitivní zpětná vazba Relevantní dokumenty „přitahují“ dotaz směrem k sobě DBI010 - DIS - MFF UK 182

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 183

Zpětná vazba Postupně se dotaz stěhuje směrem k centru relevantních dokumentů DBI010 - DIS - MFF UK 184

Zpětná vazba Obecný tvar Možný speciální tvar  ... parametr metody (1-) /  DBI010 - DIS - MFF UK 185

Zpětná vazba Obecný tvar Obdoba s váhami (1-) /  (1-) /  DBI010 - DIS - MFF UK 186

Ekvivalence termů ve VDIS Jednotlivé termy navzájem nezávislé Problém predikce - - nevhodně zvolené termy DBI010 - DIS - MFF UK 187

Ekvivalence termů ve VDIS Matice ekvivalence DBI010 - DIS - MFF UK 188

Podobnost termů ve VDIS Zobecnění ekvivalence Matice podobnosti Možnost výpočtu podobnosti termů (dimenze vektorů je n, nikoli m) Podobné termy Obecné termy DBI010 - DIS - MFF UK 189

Hierarchie termů ve VDIS Obdobně jako v Boolském modelu Publikace Tiskovina Kniha Noviny Časopis DBI010 - DIS - MFF UK 190

Hierarchie termů ve VDIS 0.8 Obdobně jako v Boolském modelu Možnost ohodnotit hrany vahami Publikace 0.4 0.6 0.32 0.48 Tiskovina Kniha 0.3 0.7 0.096 0.224 Noviny Časopis DBI010 - DIS - MFF UK 191

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 192

Citace a vektorový model Přímá reference mezi dokumenty „A“ a „B“ Dokument „A“ cituje dokument „B“¨ Označíme AB Nepřímá reference mezi „A“ a „B“ Ex. C1, …Ck tak, že AC1…CkB Spojení mezi dokumenty „A“ a „B“ AB nebo BA DBI010 - DIS - MFF UK 193

Citace a vektorový model A a B jsou bibliograficky párovány, pokud citují stejný zdroj C AC  BC A a B jsou v kocitačním vztahu, pokud jsou spolu citovány v dokumentu C CA  CB DBI010 - DIS - MFF UK 194

Citace a vektorový model Acyklický orientovaný graf citací Incidenční matice grafu citací C=[cij]{0,1}<nxn> cij=1, pokud ij cij=0 jinak DBI010 - DIS - MFF UK 195

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 DBI010 - DIS - MFF UK 196

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 DBI010 - DIS - MFF UK 197

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 198

Využití podobnosti dokumentů při vyhodnocování dotazu DS matice podobnosti dokumentů dsij = Podobné použití jako u matic DS, BP, SP Modifikace indexové matice D D’=DS.D DBI010 - DIS - MFF UK 199

Rozlišovací hodnoty termů 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 200

45,0 35,3 0,0 45,0 DBI010 - DIS - MFF UK 201

Rozlišovací hodnoty termů Výpočet na základě průměrné podobnosti dokumentů Rychlejší varianta přes centrální dokument (centroid) DBI010 - DIS - MFF UK 202

Rozlišovací hodnoty termů Pro každou dimenzi k se spočítá průměrná podobnost v prostoru bez k-té dimenze DBI010 - DIS - MFF UK 203

Rozlišovací hodnoty termů Rozlišovací hodnotu definujeme jako rozdíl průměrných podobností 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 204

Rozlišovací hodnoty termů (průměrná hodnota DV termu v závislosti na počtu dokumentů, ve kterých se term vyskytuje) 180/7777 90/7777 1200/7777 Výsledky pro kolekci z článků z Lidových novin 1994, obsahující 7777 dokumentů a 13495 lemmat Kladná hodnota DVk pro 12324 lemmat s celkem 478849 výskyty. Záporná hodnota DVk pro 1170 lemmat s celkem 466992 výskyty. Počet dokumentů, ve kterých se term vyskytuje v rámci kolekce, obsahující celkem 7777 dokumentů DBI010 - DIS - MFF UK 205

Kohonenovy mapy C3M algoritmus K-mean algoritmus Shlukování dokumentů Kohonenovy mapy C3M algoritmus K-mean algoritmus 206

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 207

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 208

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 209

Shlukování dokumentů Vyhodnocení dotazu nemusí porovnávat dokumenty ve shlucích ležících mimo oblast zájmu DBI010 - DIS - MFF UK 210

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 211

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 212

Typy shluků Nedisjunktní shluky Jeden dokument může být zařazen ve více shlucích DBI010 - DIS - MFF UK 213

Typy shluků Disjunktní shluky Dokument nemůže být ve více shlucích DBI010 - DIS - MFF UK 214

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 215

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 216

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) Pozn. poloměry jsou úhlové Poloměr dotazu r =  = arccos(s) s = cos() r= 1  1 DBI010 - DIS - MFF UK 217

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 ve výsledku DBI010 - DIS - MFF UK 218

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 219

Vyhodnocení dotazu se shluky II 1. 2. 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 2. 1. DBI010 - DIS - MFF UK 220

Vyhodnocení dotazu se shluky II Shluky se setřídí vzestupně dle arccos(Sim(q,ci))-ri tj. vzdálenosti okraje shluku od dotazu q x=7 4. 5. 2. 1. 3. DBI010 - DIS - MFF UK 221

Vyhodnocení dotazu se shluky II Nejbližší shluk se ohodnotí x=7 DBI010 - DIS - MFF UK 222

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 x=7 DBI010 - DIS - MFF UK 223

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í x=7 DBI010 - DIS - MFF UK 224

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 225

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 226

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 227

Kohonenovy mapy Na počátku mají centra náhodná umístění Při vložení dokumentu najde se nejbližší centrum posune se blíže k dokumentu jeho bezprostřední sousedé v mřížce se posunou také DBI010 - DIS - MFF UK 228

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 229

Kohonenovy mapy Mapa před adaptací na nový dokument DBI010 - DIS - MFF UK 230

Kohonenovy mapy Mapa po adaptaci na nový dokument DBI010 - DIS - MFF UK 231

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 232

Kohonenovy mapy DBI010 - DIS - MFF UK 233

Kohonenovy mapy Lze použít i pro shlukování termů/lemmat Příklad: 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 burza, akcie, kupónový, cenný, papír, investor, objem, investiční, fond, hodnota, obchod C2,5 vlna, privatizace, národní C3,6 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 234

ekonomika sport Kohonenovy mapy 2D mapa lemmat (rozvinutá 2D mřížka z předchozího příkladu) literatura politika DBI010 - DIS - MFF UK 235

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á DBI010 - DIS - MFF UK 236

Kohonenovy mapy Shluk 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 237

Shlukování metodou C3M Cover Coefficient-based Clustering Methodology Přednáška č. 6 Shlukování metodou C3M Cover Coefficient-based Clustering Methodology Založen na tzv. koeficientech pokrytí DBI010 - DIS - MFF UK 238

Shlukování metodou C3M Pro indexační matici se nejprve spočtou inverzní hodnoty řádkových a sloupcových součtů DBI010 - DIS - MFF UK 239

Shlukování metodou C3M Inverzní řádkové součty 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 240

Shlukování metodou C3M Číslo 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 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 241

Shlukování metodou C3M Poté spočteme matici C koeficientů pokrytí 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 242

Shlukování metodou C3M Poté spočteme matici C koeficientů pokrytí 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 243

Prohodit pořadí součtů Shlukování metodou C3M Rozepsat dle definice 1) Vytknout i Prohodit pořadí součtů Vytknout wi,kk =1 =1 DBI010 - DIS - MFF UK 244

Shlukování metodou C3M - zřejmé - plyne z 1) a 2) - plyne z 2) a 4) DBI010 - DIS - MFF UK 245

Shlukování metodou C3M 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 246

Shlukování metodou C3M Decoupling coefficient Coupling coefficient Počet požadovaných shluků „Síla“ dokumentu být centrem shluku DBI010 - DIS - MFF UK 247

Shlukování metodou C3M normalizovaný výpočet, kde DBI010 - DIS - MFF UK 248

Shlukování metodou C3M 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 249

DBI010 - DIS - MFF UK 250

Shlukování metodou C3M Koeficienty pokrytí DBI010 - DIS - MFF UK 251

Shlukování metodou C3M Koeficienty , , a p DBI010 - DIS - MFF UK 252

Shlukování metodou C3M Po výběru 8. dokumentu za centrum shluku nelze vybrat 6.,7. a 9., jsou podobné DBI010 - DIS - MFF UK 253

DBI010 - DIS - MFF UK 254

Shlukování C2ICM 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 255

Shlukování pomocí sférického k-mean algoritmu Dhillon, I., S.; Modha, D., S. Vektorový index Rozdělen na k disjunktních množin dokumentů Pro každou množinu j je definován průměrný dokument centroid s jednotkovou délkou d1 d2 m c DBI010 - DIS - MFF UK 256

Shlukování pomocí sférického k-mean algoritmu Hodnotu můžeme považovat za míru kvality shluku (čím vyšší vzájemná podobnost, tím lépe) Hodnota představuje míru kvality celého rozdělení Pozn.: místo euklidovského k-mean algoritmu, minimalizujícího DBI010 - DIS - MFF UK 257

Shlukování pomocí sférického k-mean algoritmu Hledáme rozdělení s maximální hodnotou Zřejmě protože (vektory jsou normalizovány) Obecně NP-úplný problém Iterativní algoritmus konvergující k lokálnímu maximu DBI010 - DIS - MFF UK 258

Sférický k-mean algoritmus Inicializace (0-tá iterace) Dokumenty se náhodně zařadí do k shluků (zde k=3) Spočtou se polohy center (průměry) DBI010 - DIS - MFF UK 259

Sférický k-mean algoritmus Krok iterace tt+1 Dokumenty se přiřadí k nejbližšímu centru z minulé iterace Spočtou se nové polohy center DBI010 - DIS - MFF UK 260

Sférický k-mean algoritmus Iterace se opakují do té doby, dokud nárůst hodnotící funkce neklesne pod stanovenou mez Tedy dokud DBI010 - DIS - MFF UK 261

Sférický k-mean algoritmus Totéž pro k=5 DBI010 - DIS - MFF UK 262

Sférický k-mean algoritmus Ohodnocovací funkce je neklesající Cauchyova-Schwartzova nerovnost tedy: centroid množiny má nejvyšší průměrnou podobnost ke všem dokumentům v množině DBI010 - DIS - MFF UK 263

Chceme, ukázat, že platí uvedená nerovnost, tedy že iterace konvergují (rostoucí, shora omezená posloupnost) ?  DBI010 - DIS - MFF UK 264

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 265

Protože to není dále než centrum původní, podobnost neklesne 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 266

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 267

Celkem dostaneme posloupnost nerovností Přiřazení dok. V t+1ní iteraci: Cauch.-Schwartz. nerovnost: DBI010 - DIS - MFF UK 268

Příklad sfér. k-mean algoritmu Kombinace dokumentů tří databází MEDLIN: 1033 abstraktů, medicínské časopisy CISI: 1460 abstraktů, vyhledávání informací CRANFIELD: 1400 abstraktů, letectví Matice incidence pro tři spočtené shluky DBI010 - DIS - MFF UK 269

Příklad sfér. k-mean algoritmu Rozložení podobností dok. stejných shluků DBI010 - DIS - MFF UK 270

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 271

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 272

Značkování shluků Pro k-tici shluků dokumentů definujeme k-tici shluků termů 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 273

DBI010 - DIS - MFF UK 274

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 275

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 276

DBI010 - DIS - MFF UK 277 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 Aritmetika   d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 Aritmetika 0.0 0.541 0.55 basketbal 0.556 0.563 C chyba 0.517 cyklus dědičnost hardware hráč 0.583 0.531 java jazyk koš míč 0.333 pivot platforma počítač procedura rychlost server software sport síť trojka Výkonnost DBI010 - DIS - MFF UK 277

Hierarchické shlukování Výsledek pro aglomerativní hierarchické shlukování s použitím průměrové metody DBI010 - DIS - MFF UK 278

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 279

Hierarchické shlukování Pro řez v místě největšího nárůstu chyby vychází dělení d7, d8 d9 d10 d1, d2, d3, d4, d5, d6 d7, d8, d9, d10 d1 d2 d3 d4 d5 d6 d1, d2, d3, d4, d5, d6, d7, d8, d9, d10 d7 d8 DBI010 - DIS - MFF UK 280

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 281

Obecné značkování shluků Modifikovaný informační zisk (Modified Information Gain) termu t ve shluku X , kde DBI010 - DIS - MFF UK 282

Obecné značkování shluků Př: |C1|=8, C1(6*t1,2*t2), |C2|=12, C2(1*t1,11*t3) P(C1)=P(C2)=8/20=0.4 P(t1,C1)=8/20*6/8=6/20=0.3 P(C2)=P(C1)=12/20=0.6 P(t1,C2)=12/20*1/12=1/20=0.05 P(t1)=7/20=0.35, P(t1)=13/20=0.65 P(t1,C1)=12/20*11/12=11/20=0.55 P(t2)=2/20=0.1, P(t2)=18/20=0.9 P(t1,C2)=8/20*2/8=2/20=0.1 P(t3)=11/20=0.55 , P(t3)=9/20=0.45 IGm(t1,C1)=P(t1,C1)*log(P(t1,C1)/(P(t1)*P(C1)) +P(t1, C1)*log(P(t1, C1)/(P(t1)*P(C1)) =0.3*log(0.3/(0.35*0.4))+0.55*log(0.55/(0.65*0.6))=+0.6 IGm(t1,C2)=P(t1,C2)*log(P(t1,C2)/(P(t1)*P(C2)) +P(t1, C2)*log(P(t1, C2)/(P(t1)*P(C2)) =0.005*log(0.005/(0.35*0.6))+0.1*log(0.1/(0.65*0.4))=-0.165 Pokud P(t,X)=P(t)*P(X) a P(t,X)=P(t)*P(X), je IGm=0 DBI010 - DIS - MFF UK 283

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 284

Modely DIS založené na VDIS Induktivní model Sémantické sítě 285

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 286

Induktivní IS Potud shodné s vektorovým DIS d1 d2 d3 d4 d5 dn W1,1 tm DBI010 - DIS - MFF UK 287

Induktivní IS Navíc obrácené hrany s vahou xi,j Obvykle xi,j = wi,j, obecně různé d1 d2 d3 d4 d5 dn x2,5 x4,5 W1,1 W1,3 t1 t2 t3 t4 tm DBI010 - DIS - MFF UK 288

Induktivní IS Dotaz q určuje počáteční hodnoty vstupních uzlů. Inicializace Dopředný krok Zpětný krok DBI010 - DIS - MFF UK 289

Induktivní IS Hodnoty v dotazu inicializují dolní vrstvu termů t1 t2 tm DBI010 - DIS - MFF UK 290

Induktivní IS Dopředný krok spočítá podobnosti dokumentů s dotazem d1 tm DBI010 - DIS - MFF UK 291

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 d1 d2 d3 d4 d5 dn t1 t2 t3 t4 tm DBI010 - DIS - MFF UK 292

Induktivní IS Dopředný krok aktivuje další dokumenty ... d1 d2 d3 d4 tm DBI010 - DIS - MFF UK 293

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 294

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 Každá hodnota v horní vrstvě přispěje do dolní vrstvy větší hodnotou, než je její velikost DBI010 - DIS - MFF UK 295

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 pro ij DBI010 - DIS - MFF UK 296

Induktivní IS d1 d2 d3 d4 d5 dn t1 t2 t3 t4 tm Buďto n2 nezávislých koeficientů Nebo pro každé j jeden koeficient Nebo jediný koeficient pro všechny váhy d1 d2 d3 d4 d5 dn t1 t2 t3 t4 tm DBI010 - DIS - MFF UK 297

Induktivní IS Dopředný krok Zpětný krok (bez lat. inhibice, x  w) Tedy spec. případ zpětné vazby pro DBI010 - DIS - MFF UK 298

Sémantické sítě a spreading 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 299

Sémantické sítě a spreading Vztahy termterm Synonyma Širší-užší termy Příbuzné termy ... Vztahy termdokument Důležitost termu pro identifikaci dokumentu Vztahy dokumentdokument Citace DBI010 - DIS - MFF UK 300

Přiřazení termu k dokumentu Sémantická sít term(y) Komponenta Vztah Širší/užší Synonyma Citace Obdobné dokumenty Přiřazení termu k dokumentu dokument(y) DBI010 - DIS - MFF UK 301

Spreading Dotaz Inicializace Přírůstek hodnoty uzlu uj způsobený uzlem ui během iterace Celkově DBI010 - DIS - MFF UK 302

Modely vycházející z boolského modelu Fuzzy model MMM model Paice model P-norm model 303

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 304

Fuzzy logika Dokument Dotaz Podobnost DBI010 - DIS - MFF UK 305

Fuzzy logika 1 Dokumenty se stejnou podobností vůči nevážené konjunkci jsou značeny modře Dokumenty se stejnou podobností vůči nevážené disjunkci jsou značeny zeleně DBI010 - DIS - MFF UK 306

Fuzzy logika Př.: DBI010 - DIS - MFF UK 307

MMM (Min-Max Model) Lineární kombinace minima a maxima 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 308

MMM (Min-Max Model) 1 k=0,75 Dokumenty se stejnou podobností vůči nevážené konjunkci jsou značeny modře Dokumenty se stejnou podobností vůči nevážené disjunkci jsou značeny zeleně DBI010 - DIS - MFF UK 309

MMM (Min-Max Model) Př.: DBI010 - DIS - MFF UK 310

Paice Model Započítání všech použitých termů důležitost klesá geometrickou řadou , kde Pro konjunkci jsou hodnoty uspořádány vzestupně Pro disjunkci sestupně DBI010 - DIS - MFF UK 311

Paice Model Př.: DBI010 - DIS - MFF UK 312

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 313

Rozšířená Boolská logika P-norm Model Varianta bez vážení dotazu DBI010 - DIS - MFF UK 314

Rozšířená Boolská logika P-norm Model Bez vážení, k termů v dotazu DBI010 - DIS - MFF UK 315

Rozšířená Boolská logika P-norm Model S vážením, k termů v dotazu DBI010 - DIS - MFF UK 316

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 317

Rozšířená Boolská logika 1 Rozšířená Boolská logika p=2 Dokumenty se stejnou podobností vůči nevážené konjunkci jsou značeny modře Dokumenty se stejnou podobností vůči nevážené disjunkci jsou značeny zeleně DBI010 - DIS - MFF UK 318

Odstranění závislosti indexačních termů Síť konceptů v boolském modelu, Singular Value Decomposition – SVD ve vektorovém modelu 319

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 320

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 xy DBI010 - DIS - MFF UK 321

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 x y DBI010 - DIS - MFF UK 322

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 x y DBI010 - DIS - MFF UK 323

Síť konceptů Tezaurus: Synonyma/Vztahy/Užší-širší termy DBI010 - DIS - MFF UK 324

spol. význam „bibl. inf.“ a „výběr informace“ zahrnuje „vše ostatní“ Síť konceptů Odpovídající síť atomických konceptů (témat) X hardware počítač domácí počítač osobní počítač data informační systém informatika bibliografická výběr informace spol. význam „bibl. inf.“ a „výběr informace“ tzv. doplňkový koncept, zahrnuje „vše ostatní“ DBI010 - DIS - MFF UK 325

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ř. 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í“ X DBI010 - DIS - MFF UK 326

Konstrukce sítě konceptů Každé skupině synonym se přiřadí jeden atomický koncept DBI010 - DIS - MFF UK 327

Konstrukce sítě konceptů Doplní se koncepty odpovídající dvojicím vztažených termů X DBI010 - DIS - MFF UK 328

Konstrukce sítě konceptů Průchodem tezauru odspoda nahoru se do sloupců širších termů doplní jedničky ze sloupců užších termů X DBI010 - DIS - MFF UK 329

Konstrukce sítě konceptů Doplní se nulový (doplňkový) atomický koncept X DBI010 - DIS - MFF UK 330

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 331

Síť konceptů 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) DBI010 - DIS - MFF UK 332

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 333

Síť konceptů Vážená disjunkce termů se převede na vektor vah konceptů vzhledem k dotazu Dotaz Term Váha konceptu vzhledem k dotazu DBI010 - DIS - MFF UK 334

0.4 0.5 1.0 1 / 2 1 / 4 1 / 2 Síť konceptů Dotaz (‘informatika’ ; 0.5) OR (‘výběr informace’ ; 1.0) OR (‘data’ ; 0.4)  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 DBI010 - DIS - MFF UK 335

Odstranění závislosti indexačních termů, Redukce dimenzionality indexu Singular Value Decomposition - SVD Latent Semantic Indexing - LSI 336

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 337

Latent Semantic Indexing - LSI 3 dokumenty ve 3D prostoru Hodnost matice = 2 DBI010 - DIS - MFF UK 338

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 URmxr sloupcově ortonormální Tvoří tedy bázi v prostoru termů s dimenzí odpovídající skutečné hodnosti matice SRrxr diagonální regulární matice VRnxr řádkově ortonormální Tvoří tedy bázi v prostoru dokumentů s dimenzí odpovídající skutečné hodnosti matice DBI010 - DIS - MFF UK 339

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 1 r S U VT u1 ur v1 vr DBI010 - DIS - MFF UK 340

Singular Value Decomposition Geometricky Matice DT=USVT 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 DBI010 - DIS - MFF UK 341

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 342

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 343

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 344

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 pro všechny X s hodností k kde Frobeniova norma DBI010 - DIS - MFF UK 345

Latent Semantic Indexing (LSI) Příklad 6 dokumentů obsahujících 5 různých termů DBI010 - DIS - MFF UK 346

u1 u2 u3 u4 u5 U= S= v1 v2 v3 v4 v5 V= DBI010 - DIS - MFF UK 347

Latent Semantic Indexing (LSI) Zpětné roznásobení pro k=5=r DBI010 - DIS - MFF UK 348

Latent Semantic Indexing (LSI) Zpětné roznásobení pro k=4 DBI010 - DIS - MFF UK 349

Latent Semantic Indexing (LSI) Zpětné roznásobení pro k=3 DBI010 - DIS - MFF UK 350

Latent Semantic Indexing (LSI) Zpětné roznásobení pro k=2 DBI010 - DIS - MFF UK 351

Latent Semantic Indexing (LSI) Zpětné roznásobení pro k=1 (každý řádek násobkem libovolného jiného) DBI010 - DIS - MFF UK 352

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 353

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 354

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 355

DIS s použitím LSI Podobnost dotazu a dokumentu Statická metoda 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 356

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> DBI010 - DIS - MFF UK 357

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> <2.000; 1.000; 0.000; 1.000; 1.000; 0.000> Srov. DBI010 - DIS - MFF UK 358

Latent Semantic Indexing (LSI) - původní motivační příklad DBI010 - DIS - MFF UK 359

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 360

Signatury 361

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 362

Signatury Signatura = k-bitový řětězec k je předem daná konstanta Každému dokumentu di je přiřazena signatura dokumentu si Konjunktivnímu dotazu q je přiřazena signatura s Dok1 Porovnání Dotaz 00101 01001 10101 00111 10100 DBI010 - DIS - MFF UK 363

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 364

Vyhodnocení signatur Dok1 Porovnání Dotaz 00101 01001 10101 00111 10100 Dok2 Porovnání II 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í DBI010 - DIS - MFF UK 365

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 366

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 367

Ř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 368

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 369

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 370

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 371

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 372

Monotónní signatury Využití signatur tvořených na základě n-gramů 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 373

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 000 01001 10101 001 00111 10100 01 10 11 DBI010 - DIS - MFF UK 374

Distribuované DIS 375

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 376

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 377

Distribuované DIS Procesy v DIS Klient (K) Dokumentový server (D) 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 378

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 379

Distribuované DIS DIS DDIS D K S I K S D DBI010 - DIS - MFF UK 380

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 K I I I S S S DBI010 - DIS - MFF UK 381

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 382

Distribuované boolské DIS Index je relace D(d, t1, t2, …, tm), kde tj  {0,1}, d  N (identifikace dokumentu) Instance indexu je matice DBI010 - DIS - MFF UK 383

Distribuované boolské DIS Odpovědí na dotaz q je seznam identifikací odpovídajících dokumentů D(q)[d] DBI010 - DIS - MFF UK 384

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 385

Horizontální fragmentace D(q)[d] = (D1  …  Dk)(q)[d] = (D(q1)  …  D(qk))(q)[d] = (D(q1q)[d]  …  D(qkq)[d]) Pokud qxq = false, potom Dx(q)[d] =  DBI010 - DIS - MFF UK 386

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 387

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 388

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 389

Vertikální fragmentace Dotazy lze na základě pravidel D(q1q2)[d]=D(q1)[d]D(q2)[d] D(q1q2)[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 390

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 391

Kombinovaná fragmentace Pravidelná (do tvaru mřížky) Nepravidelná 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] D11=D(q1q2)[T1] D12=D(q1)[T2] D13=D(q1)[T3] D2=D(q2)[T2T3] D3=D(q3) DBI010 - DIS - MFF UK 392

Příklad Nepravidelná fragmentace Kde T1={d, t1, t2, t3}, T2={d, t4, t5, t6} q1=(t1t4), q2=(t1t4)(t1t4), q3=(t1t4) D1=D(q1) D21=D(q2)[T1] D22=D(q2)[T2] D3=D(q3) DBI010 - DIS - MFF UK 393

Příklad D=D1(D21*D22)D3 q=t1(t2t4t5) 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] (D21*D22)(q)[d] =(D21*D22)(t1(t2t4t5))[d] =(D21*D22)(t1)[d](D21*D22)(t2t4t5)[d] qq3=false DBI010 - DIS - MFF UK 394

Příklad (D21*D22)(t1)[d]=D21(t1)[d] (D21*D22)(t2t4t5)[d] =(D21*D22)(t2)[d](D21*D22)(t4t5)[d] =D21(t2)[d]D22(t4t5)[d] DBI010 - DIS - MFF UK 395

Příklad D22(t4t5)[d] D21(t2)[d] D1(q)[d] D21(t1)[d] S1 S21 S22 S3   S1 S21 S22 S3 DBI010 - DIS - MFF UK 396

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 397

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 398

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 399

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 400

Optimální vyhledávání Předpokládejme znalost všech relevantních dokumentů pro daný dotaz (a jejich počtu r) Vezměme kde xj je 1, pokud je j-tý dokument relevantní pro tazatele, jinak 0 Vezměme kde yi,j je 1, pokud je j-tý dokument vrácen i-tou metodou, jinak 0 DBI010 - DIS - MFF UK 401

Optimální vyhledávání Počet relevantních dokumentů, vrácených i-tým systémem V ideálním případě Míra vhodnosti pomocí podobnosti , kde DBI010 - DIS - MFF UK 402

Optimální vyhledávání Míra vhodnosti odpovídá Protože, přičemž r je konstanta, a odmocnina je rostoucí na <0;1>, pro uspořádání vhodnosti stačí výraz bez znalosti r DBI010 - DIS - MFF UK 403

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 404

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> lineárně: y=(x- l1)*((g2–g1)/(l2–l1))+g1 <g1,g2> je obvykle <0,1> l1 l2 g1 g2 x y DBI010 - DIS - MFF UK 405

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 406

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 407

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 408

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 409

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) 24 840 000 000 dokumentů (květen 2011) dotaz „-the“ v google vrací 14 800 000 000 dokumentů (duben 2006) DBI010 - DIS - MFF UK 410

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 411

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 412

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 413

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 414

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é dom1 dom2 p11 i(p11) = 0, o(p11) = 2 i(p12) = 1, o(p12) = 0 i(p21) = 2, o(p21) = 0 i(p22) = 1, o(p22) = 2 p22 p12 p21 DBI010 - DIS - MFF UK 415

Struktura webového vyhledávače 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 URL Robot HTML Dotazy Index Indexace DBI010 - DIS - MFF UK 416

Struktura webového vyhledávače Indexační jednotka Indexuje stažené HTML stránky Generuje data indexu Textová Strukturální Přidává nově nalezená URL do seznamu URL Robot HTML Dotazy Index Indexace DBI010 - DIS - MFF UK 417

Struktura webového vyhledávače Zpracování dotazu 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 URL Robot HTML Dotazy Index Indexace DBI010 - DIS - MFF UK 418

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 419

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 420

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 421

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 422

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 423

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 424

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 425

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 426

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) Akumulace ocenění Žádný přínos pro další dokumenty p p1 p2 0.1 0.0 0.0 0.1 0.1 0.0 0.1 0.1 0.1 0.1 0.2 0.1 0.1 0.3 0.2 p p1 p2 DBI010 - DIS - MFF UK 427

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 428

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 429

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 430

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) r(z) 0 1.0 1.0 1.0 1 1.0 0.75 1.125 2 1.0625 0.765625 1.1484375 3 1.07421875 0.76855469 1.15283203 4 1.07641602 0.76910400 1.15365601 … … … … 10 1.07692305 0.76923076 1.15384615 11 1.07692307 0.76923077 1.15384615 12 1.07692308 0.76923078 1.15384615 x z y DBI010 - DIS - MFF UK 431

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 432

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 DBI010 - DIS - MFF UK 433

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 434

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 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; {SIn(p), |S|=d, S náhodně zvolená} end; z grafu Sq odstraň vlastní hrany DBI010 - DIS - MFF UK 435

HITS Ohodnocení vybraných stránek 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 pSq(rk(p))2=pSq(ak(p))2=1 end; DBI010 - DIS - MFF UK 436

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 437

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 438

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 439

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 440

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 441

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 442

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 443

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 444

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 445

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 446

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 447

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 448

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 449

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 450

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. Pro hranu eij  E tedy platí h(eij) = 0, pokud Sim(di, dj) < St, kde St je zvolená prahová hodnota. DBI010 - DIS - MFF UK 451

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 452

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 453

Diversity, Information Richness Průměrnou hodnota Information Richness v celé kolekci je dána výrazem 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 454

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 455

Neuronové sítě COSIMIR 456

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 457

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 458

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 459

Neuronové sítě a DIS Neuron (perceptron) Struktura perceptronu Základní jednotka neuronové sítě Model biologického neuronu 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 axon dendrity DBI010 - DIS - MFF UK 460

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 x1 x2 x3 … xn z t DBI010 - DIS - MFF UK 461

Neuronové sítě a DIS Funkce perceptronu 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) … x1 x2 x3 … xn z t DBI010 - DIS - MFF UK 462

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 body náležející jednotlivým poloprostorům i (wixi)-t > 0 i (wixi)-t < 0 DBI010 - DIS - MFF UK 463

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 464

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 465

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 466

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 467

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 468

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 469

COSIMIR Vstupní vrstva obsahuje 2m neuronů, kde m je počet termů Skrytá vrstva obsahuje k neuronů („symbolických konceptů“) Výstupní vrstva obsahuje 1 neuron reprezentující podobnost wi1 wi2 wi3 ... wim q1 q2 q3 qm podobnost Indexace D q DBI010 - DIS - MFF UK 470

Prokletí dimenze (dimensionality curse) Pyramidová technika IGrid indexy 471

Co je prokletí dimenze? Většina metod, které jsou vytvořeny pro vyhledání nejbližšího souseda k danému bodu v m-dimenzionálním prostoru jako jsou R-stromy, m-stromy 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 472

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 473

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. 1 2 3 m=2, 4 pyramidy m=3, 6 pyramid DBI010 - DIS - MFF UK 474

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 1 2 3 v1 v2 0,5+v1 0,0 0,5 1,0 1,5 2,0 1,5+v2 DBI010 - DIS - MFF UK 475

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 1 2 3 v1 0,5+v1 0,0 0,5 1,0 1,5 2,0 DBI010 - DIS - MFF UK 476

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 Nevýhody 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 Nevhodné, pokud v některých dimenzích není určen interval Výsledný kvádr zasahuje do mnoha pyramid velkým objemem 1 2 3 v1 DBI010 - DIS - MFF UK 477

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 478

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 479

IGrid Index DBI010 - DIS - MFF UK 480

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;pm> DBI010 - DIS - MFF UK 481

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 |xi-yi| |ui-li| X Y DBI010 - DIS - MFF UK 482

IGrid Index Nulová podobnost Body nejsou podobné v žádné 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 p1=1 Body jsou podobné v jedné dimenzi Max možná podobnost p2 Body jsou podobné ve dvou dimenzích DBI010 - DIS - MFF UK 483

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 484

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 485

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 486

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 487

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 488

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 489

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 490

Hammingova metrika Detekce porovnáním znak po znaku Detekce nedeterministickým KA * s u c e -s -u -c -e 0 chyb 1 chyba 2 chyby DBI010 - DIS - MFF UK 491

Hammingova metrika Q = {qi,j | 0ik, ijn} 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 492

Levenshteinova metrika Detekce nedeterministickým KA s u c e -s * -u -c -e 0 chyb 1 chyba 2 chyby DBI010 - DIS - MFF UK 493

Levenshteinova metrika Q = {qi,j | 0ik, 0jn} 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 494

Konstrukce slovníku Frekvenční slovník dokumentu Na konci Na začátku Seznam slov sestupně dle četnosti výskytu Na konci Zřídka používaná slova Překlepy Na začátku Častá slova Nevýznamová slova Frekv. sl. Termy Stoplist Překlepy Dok. 1 Dok. 2 … DBI010 - DIS - MFF UK 495

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 496

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 497

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 DBI010 - DIS - MFF UK 498

Zipfův empirický zákon Kumulativní frekvence prvních k termů Prvních 10 slov  25% slov textu DBI010 - DIS - MFF UK 499

Zipfův empirický zákon Kumulativní frekvence graficky DBI010 - DIS - MFF UK 500

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 501

Komprese Komprese v DIS Seznamy slov (termy, stoplist) Index Primární dokumenty DBI010 - DIS - MFF UK 502

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) DBI010 - DIS - MFF UK 503

Organizace vektorového indexu Jednotlivé vektory jsou řídké (cca 90% nul) Nevyplatí se ukládat vektory včetně nul Výhodnější ukládat jen dvojice Index nenulového prvku Hodnota na daném indexu DBI010 - DIS - MFF UK 504

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: AC+ 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 505

Kódování a komprese Kód K je jednoznačně dekódovatelný, právě když pro každý řetěz YC+ existuje nejvýše jeden řetěz XA+ 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 506

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 507

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 508

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 509

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 510

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 Entropie zprávy DBI010 - DIS - MFF UK 511

Entropie a redundance Nechť kód K(A,C,f) přiřazuje znakům aiA kódová slova délek |f(ai)| = di. Délka zakódované zprávy je rovna Platí Redundance DBI010 - DIS - MFF UK 512

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 513

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 514

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 515

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 516

Eliasovy kódy Řada kódování čísel s různými vlastnostmi Alfa kód (unární) Dekódovatelné Dlouhé kódy |(230-1)|= 230-1 DBI010 - DIS - MFF UK 517

Eliasovy kódy Beta kód (binární) Standardní kódování Krátké kódy Nedekódovatelné |(230-1)|= 30 DBI010 - DIS - MFF UK 518

Eliasovy kódy Modifikovaný beta kód Bez úvodní jedničky Krátké kódy Nedekódovatelné |’(230-1)|= 30-1=29 DBI010 - DIS - MFF UK 519

Eliasovy kódy Theta kód Krátké kódy Dekódovatelné Ternární kódování |(230-1)|= 30+1=31 DBI010 - DIS - MFF UK 520

Eliasovy kódy Gama kód Kombinace dvou kódů Krátké kódy Dekódovatelné Modifikovaný beta kód kóduje číslo Alfa kód zajišťuje dekódovatelnost Krátké kódy Dekódovatelné ’(n) (|(n)|) |(230-1)|= 30+29=59 DBI010 - DIS - MFF UK 521

Eliasovy kódy Modifikovaný gama kód Čitelnější pro člověka Neregulární |’(230-1)|= 30+29=59 DBI010 - DIS - MFF UK 522

Eliasovy kódy Delta kód Pro kódování délky binárního kódu používá úspornější gama kód |(230-1)|= 6+5+29=40 DBI010 - DIS - MFF UK 523

Eliasovy kódy Omega kód Pro velmi velká čísla |(230-1)|= 2+3+5+30+1=41 DBI010 - DIS - MFF UK 524

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 DBI010 - DIS - MFF UK 525

Komprese textu Huffmanovo kódování. Prefixový kód pro abecedu A s minimální možnou redundancí DBI010 - DIS - MFF UK 526

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’={a1a2, a3, ..., an}, P(A’)={p1+p2, p3, ..., pn} K ní rekurzivně kód f’ f(a1)=f’(a1a2).0, f(a2)=f’(a1a2).1, f(ai)=f’(ai) DBI010 - DIS - MFF UK 527

Příklad Huffmanova kódování A={u, v, w, x, y, z} s rozložením P(A)= f(u) = 0000 f(v) = 0001 f(w) = 001 f(x) = 010 f(y) = 011 f(z) = 1 DBI010 - DIS - MFF UK 528

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ů DBI010 - DIS - MFF UK 529

Komprese textu Statická komprese Semiadaptivní 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 530

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í DBI010 - DIS - MFF UK 531

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 532

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 533

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 DBI010 - DIS - MFF UK 534

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 DBI010 - DIS - MFF UK 535

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 DBI010 - DIS - MFF UK 536

Adaptivní Huffmanovo kódování Uzel s četností 32 je poslední v uspořádání Není nutno prohodit Lze zvýšit četnost DBI010 - DIS - MFF UK 537

Adaptivní Huffmanovo kódování Podle výsledného stromu by se další znak z kódoval jako 001 místo 1011 DBI010 - DIS - MFF UK 538

Adaptivní Huffmanovo kódování Je možné vyjít z vyváženého stromu s četnostmi všech znaků rovnými jedné a b c d 1 2 4 DBI010 - DIS - MFF UK 539

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 Odešleme prázdný řetězec Následovaný definicí znaku a a  bacbda ? 1 ? a 1 2 DBI010 - DIS - MFF UK 540

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 Odešleme řetězec 0 Následovaný definicí znaku b a0b  acbda ? a 1 2 a 1 3 ? b 2 DBI010 - DIS - MFF UK 541

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 Odešleme řetězec 0 a0b0  cbda a 1 3 ? b 2 a 1 2 4 ? b DBI010 - DIS - MFF UK 542

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 543

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 544

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 545

Příklad HuffWord algoritmu Přiřazení kódů k jednotlivým znakům Kódy seřazené dle velikosti DBI010 - DIS - MFF UK 546

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 547

Příklad HuffWord algoritmu Znaky A..E Pole x Délky kódů 2 2+1 2+1+4 2+3+4+5 Kódy E=01 D=10 C=11 B=000 A=001 DBI010 - DIS - MFF UK 548

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 549

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 550

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 551

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 552

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 DBI010 - DIS - MFF UK 553 553

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 DBI010 - DIS - MFF UK 554 554

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 DBI010 - DIS - MFF UK 555 555

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 DBI010 - DIS - MFF UK 556 556

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 DBI010 - DIS - MFF UK 557 557

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 DBI010 - DIS - MFF UK 558 558

Syntakticko-sémantické třídy Slova rozdělena do tříd c1, …, cm Pokud wica, wjcb 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 DBI010 - DIS - MFF UK 559 559

Vzájemná informace Entropie Spojená entropie (joint entropy) Dána dvě pravděpodobnostní rozložení X, Y Entropie Spojená entropie (joint entropy) Vzájemná informace DBI010 - DIS - MFF UK DBI010 - DIS - MFF UK 560 560