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

kopecky/vyuka/dis/disslide.pdf · DBI010 - DIS - MFF UK Další odkazy (články) • Affinity Rank: A New Scheme for Efficient Web Search – Yi Liu, Benyu Zhang, Zheng Chen, Michael

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

  • Dokumentografické

    Informační Systémy

    Slidy k přednášce NDBI010

    KSI MFF UKhttp://www.ms.mff.cuni.cz/~kopecky/vyuka/dis/

    Verze 10.05.05.13.20

    http://www.ms.mff.cuni.cz/~kopecky/vyuka/dis/

  • DBI010 - DIS - MFF UK

    Literatura (skripta)

    • Dokumentografické informační systémy– Pokorný J., Snášel V., Kopecký M.:

    • Nakladatelství Karolinum, UK Praha, 2005

    – Pokorný J., Snášel V., Húsek D.:• Nakladatelství Karolinum, UK Praha, 1998

    • Textové informační systémy– Melichar B.:

    • Vydavatelství ČVUT, Praha, 1997

    • Introduction to Information Retrieval– Christopher D. Manning, Prabhakar Raghavan and Hinrich

    Schütze• Cambridge University Press, 2008

    • http://informationretrieval.org/

  • DBI010 - DIS - MFF UK

    Další odkazy

    • Computer Algorithms - String Pattern

    Matching Strategies,

    – Jun Ichi Aoe,

    • IEEE Computer Society Press 1994

    • Concept Decomposition

    for Large Sparse Text Data using Clustering

    – Inderjit S. Dhillon, Dharmendra S. Modha

    • IBM Almaden Research Center, 1999

  • DBI010 - DIS - MFF UK

    Další odkazy (články)

    • The IGrid Index: Reversing the Dimensionality Curse For

    Similarity Indexing in High Dimensional Space

    for Large Sparse Text Data using Clustering

    – Charu C. Aggrawal, Philip S. Yu

    • IBM T. J. Watson Research Center

    • The Pyramid Technique: Towards Breaking the Curse of

    Dimensionality

    – S. Berchtold, C. Böhm, H.-P. Kriegel:

    • ACM SIGMOD Conference Proceedings, 1998

  • DBI010 - DIS - MFF UK

    Další odkazy (články)

    • Affinity Rank: A New Scheme for Efficient Web Search– Yi Liu, Benyu Zhang, Zheng Chen, Michael R. Lyu, Wei-Ying Ma

    • 2004

    • Improving Web Search Results Using Affinity Graph– Benyu Zhang, Hua Li, Yi Liu, Lei Ji, Wensi Xi, Weiguo Fan,

    Zheng Chen1, Wei-Ying Ma

    • Efficient computation of pagerank– T.H. Haveliwala

    • Technical report, Stanford University, 1999

  • DBI010 - DIS - MFF UK

    Další odkazy (starší)

    • Introduction to Modern Information

    Retrieval

    – Salton G., McGill M. J.:

    • McGRAW-Hill 1981

    • Výběr informací v textových bázích dat

    – Pokorný J.:

    • OVC ČVUT Praha 1989

  • Úvod do DIS

    Přehled problematiky

    měření informativnosti

    Přednáška č. 1

  • DBI010 - DIS - MFF UK

    Vznik DIS

    • 50. léta 20. stol.

    • Postupná automatizace postupů používaných v knihovnictví

    • Nyní samostatná podčást IS– Faktografický IS

    • Zpracování informací s definovanou vnitřní strukturou (nejčastěji v podobě tabulek)

    – Dokumentografický IS• Zpracování informací v podobě textu v přirozeném jazyce

    bez pevné vnitřní struktury

  • DBI010 - DIS - MFF UK

    Práce s DIS

    1. Zadání dotazu

    2. Porovnání

    3. Získání seznamu

    odpovídajících

    dokumentů

    4. Ladění dotazu

    5. Vyţádání dokumentu

    6. Obdrţení textu

    DIS

    1

    3

    5

    6

    2

    4

  • DBI010 - DIS - MFF UK

    II)

    Struktura DIS

    I)

    1

    3

    5

    6

    2

    4

    I) Systém zpřístupnění

    dokumentů

    • Vrací sekundární

    informace

    • Autor

    • Název

    • ...

    II) Systém dodání

    dokumentů

    • Někdy není řešen

    pomocí SW

  • DBI010 - DIS - MFF UK

    Vyhodnocení dotazu

    • Přímé porovnání

    náročné na časDok1

    Porovnání

    Doki1

    Dotaz

  • DBI010 - DIS - MFF UK

    Vyhodnocení dotazu

    • Nutné vytvoření modelu dokumentu

    • Ztrátový proces,obvykle zaloţený naidentifikaci slov v dokumentech

    • Výsledkem strukturovaná datavhodná pro porovnávání

    Dok1

    Indexace

    X1

  • DBI010 - DIS - MFF UK

    Vyhodnocení dotazu

    • Dotaz se upraví do

    odpovídající podoby

    • Následně se

    porovná

    s modelem

    dokumentů

    Porovnání

    Doki1X1

    Dotaz

  • DBI010 - DIS - MFF UK

    Předzpracování textu

    • Vyhledávání probíhá nad vytvořeným modelem efektivněji, ale můţe pouţít jen informace obsaţené v modelu.

    • Cílem je vytvořit model, který by zachoval co nejvíce informací, obsaţených v původním modelu.

    • Problémem je řada nejednoznačností.

    • Dosud neřešitelné nároky na encyklopedické i asociativní znalosti.

  • DBI010 - DIS - MFF UK

    Porozumění textu

    • Posloupnost slov v přirozeném jazyce.

    • Kaţdé slovo zastupuje pro autora nějakou

    představu, kterou v něm slovo vyvolá - význam.

    • Tyto představy reprezentují reálné předměty.

    ...

  • DBI010 - DIS - MFF UK

    Porozumění textu

    • Synonymie slov

    – Více slov můţe mít pro autora stejný význam

    • krychle = kostka

    • buldozer = nakladač

    ...

  • DBI010 - DIS - MFF UK

    Porozumění textu

    • Homonymie slov

    – Jedno slovo můţe mít pro autora několik významů

    • taška: střešní, nákupní

    • koruna: platidlo, královská k., k. stromu

    • třída: školní, kategorie v teorii mnoţin

    • los: zvíře, poukázka ke slosování

    ...

  • DBI010 - DIS - MFF UK

    Porozumění textu

    • Homonymie slov

    – Jedno slovo můţe pouţívat stejný tvar pro různé pády a další gramatické jevy (gramatická homonymie)

    • kontroly: 1. p. m.č., 2. p. j.č.není zřejmé, zda se jedná o jednu, nebo více kontrol

    – Jeden tvar slova můţe mít různý význam• plesy: podst. jm. ples, podst. jm. pleso

    • žena: podst. jm. žena, sloveso hnát

    • hnát: sloveso hnát, podst. jm. hnát

    • tři: číslovka tři, sloveso třít

    • pět: číslovka pět, sloveso pět

  • DBI010 - DIS - MFF UK

    Porozumění textu

    • Významy slov se mohou překrývat.

    – Hierarchicky

    • zvíře > kůň > hřebec

    – Asociace

    • kalkulátor ~ počítač ~ procesor

    ...

  • DBI010 - DIS - MFF UK

    Porozumění textu

    • Jednotlivá přiřazení jsou navíc závislá na subjektu, který dokument píše nebo čte.– Dva lidé mohou jednomu slovu přikládat zcela nebo jen

    částečně jiný význam.

    – Dva lidé si i pod stejným významem mohou představit jiný konkrétní předmět nebo mnoţinu předmětů.

    • máma, pokoj, ...

    • Výsledkem je situace, kdy dva různí čtenáři nemusí přečtením získatani stejnou informaci jako autor, ani stejnou informaci navzájem.

  • DBI010 - DIS - MFF UK

    Porozumění textu

    • Homonymie a nejednoznačnosti narůstají při přechodu od slov k větám.– Homonymie vlastních jmen na začátku věty

    • Dohnal zvítězil. (Čtrnáctý zvítězil.)

    • Plk. Dohnal předešel gen. Kvapila velmi výrazně.

    – jedna, dvě, nebo tři věty?

    – Homonymie spojky a v předmětu věty

    • Funkce rezistoru a zesilovače v radiotechnice.(funkce rezistoru v radiotechnice) a (funkce zesilovače v radiotechnice)(funkce rezistoru) a (funkce zesilovače v radiotechnice)(funkce rezistoru) a (zesilovače v radiotechnice)

    – Homonymie podmětu a předmětu

    • Popílek přikryl sníh. – co leţí navrchu?

  • DBI010 - DIS - MFF UK

    Porozumění textu

    • Příklad české věty s více gramaticky moţnými významy– viz např. Podivné fungování gramatiky,

    http://www.scienceworld.cz/sw.nsf/lingvistika

    – věta „Ženu holí stroj“ můţe - podle volby přísudku ve větě - znamenat:

    • Poháním stroj pomocí hole (hnát)

    • Ţena pouţívá depilační přístroj (holit)

    • Návod k nekonvenčnímu způsobu oblékání (strojit)

    • … a další

    http://www.scienceworld.cz/sw.nsf/lingvistika/8FA6EF6B0C859321C12571AF006308F3?OpenDocument&cast=1

  • DBI010 - DIS - MFF UK

    Porozumění textu

    • Příklad anglické věty s více gramaticky

    moţnými významy

    – viz např. Podivné fungování gramatiky,

    http://www.scienceworld.cz/sw.nsf/lingvistika

    – věta „Time flies like an arrow“ můţe - podle

    volby přísudku ve větě - znamenat:

    • Čas letí jako voda (fly)

    • Časové mouchy/zipy mají rády šíp (like)

    • … a další

    http://www.scienceworld.cz/sw.nsf/lingvistika/8FA6EF6B0C859321C12571AF006308F3?OpenDocument&cast=1

  • DBI010 - DIS - MFF UK

    Předzpracování textu

    • Částečným řešením problému porozumění

    textu je zahrnutí lingvistické analýzy

    – Disambiguace

    • Určení správného významu slova ve větě

    – Na základě gramatiky (slovesa vs. podst. jm.)

    – Na základě kontextu (komplikovanější).

    » Tančila na Hasičském plese.

    » Tančila na Štrbském plese.

  • DBI010 - DIS - MFF UK

    Předzpracování textu

    • Částečným řešením problému porozumění

    textu je zahrnutí lingvistické analýzy

    – Lemmatizace

    • Přiřazení správného lemmatu jednotlivým slovům

    – Základní tvar slova (1. p. j.č., infinitiv, ...)

    – Slovní druh, osoba, číslo, čas, vid, ...

    – Informace z větného rozboru, (podmět, předmět, ...)

  • DBI010 - DIS - MFF UK

    Předzpracování textu

    • Dalšími moţnosti, které lingvistika v různé

    míře nabízí jsou

    – Označování víceslovných spojení - kolokací

    • Druhá světová válka, ...

    – Zatím velmi problematické nahrazování zájmen

    odpovídajícími podstatnými jmény

  • DBI010 - DIS - MFF UK

    Přesnost a úplnost

    • Výsledkem nejednoznačností ţádný existující DIS nedává ideální výsledky

    • Po zobrazení odpovědi na dotaz lze určit následující

    – Počet vrácených dokumentů Nv• O nich si DB myslí, ţe jsou relevantní, odpovídají dotazu

    – Počet vrácených relevantních dok. Nvr• O nich si tazatel myslí, ţe uspokojují jeho poţadavky

    – Počet všech relevantních dok. v DB Nr• Problematické u velkých DB

  • DBI010 - DIS - MFF UK

    Přesnost a úplnost

    • Dva DIS mohou vrátit

    na shodný dotaz různé

    odpovědi, které se

    nemusí překrývat ani v

    jediném vráceném

    dokumentu

    Jak porovnat kvalitu odpovědí navzájem?

    Dokumenty v databázi

    Relevantní

    dokumenty

    Vrácené

    v

    DIS1

    Vrácené

    v

    DIS2

  • DBI010 - DIS - MFF UK

    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.

    Relevantní

  • DBI010 - DIS - MFF UK

    Přesnost a úplnost

    • Kvalita výsledné mnoţiny dokumentů se měří na

    základě těchto čísel

    – Přesnost (Precision)

    • P = Nvr / Nv

    • Pravděpodobnost, ţe dokument zařazený v odpovědi je

    skutečně relevantní

    – Úplnost (Recall)

    • R = Nvr / Nr

    • Pravděpodobnost, ţe skutečně relevantní dokument je zařazený

    v odpovědi

  • DBI010 - DIS - MFF UK

    Přesnost a úplnost

    • Koeficienty jsou opět závislé na

    subjektivním názoru tazatele

    • Dokument vrácený na výstupu můţe

    uspokojovat poţadavky dvou uţivatel, kteří

    poloţili stejný dotaz, různou měrou.

  • DBI010 - DIS - MFF UK

    Přesnost a úplnost

    • V ideálním případě

    – P=R=1

    – V odpovědi jsou zařazeny právě a pouze všechny relevantní dokumenty

    • V běţném případě

    – Odpověď na první verzi dotazu není ani přesná, ani úplná

    00

    1

    1

    Optimum

    Počáteční odpověď

  • DBI010 - DIS - MFF UK

    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 …

    00

    1

    1

    Optimum

    R

    P

  • DBI010 - DIS - MFF UK

    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.

    00

    1

    1

    Optimum

    R

    P

  • DBI010 - DIS - MFF UK

    Kritérium predikce

    • Při formulaci dotazů je potřebné uhádnout, které termy (slova) byly v dokumentu autorem pouţity pro vyjádření dané myšlenky

    – Problémy m.j. způsobují

    • Synonyma (autor mohl pouţít synonymum, které si tazatel při formulaci dotazů ani nemusí neuvědomí)

    • Překrývající se významy slov

    • Opisy jedné situace jinými slovy

  • DBI010 - DIS - MFF UK

    Kritérium predikce

    • Částečným řešením je zařazení tezauru,

    který obsahuje

    – Hierarchie slov a jejich významů

    – Synonyma slov

    – Asociace mezi slovy

    • Tazatel můţe tezaurus vyuţít při formulaci

    svých dotazů

  • DBI010 - DIS - MFF UK

    Kritérium predikce

    • Při ladění dotazů má uţivatel tendenci postupovat

    konzervativně

    – V dotazu zůstávají často ty jeho části, které uţivatele

    napadly na začátku a mění se jen podruţné části, které

    nekvalitní výsledek nemusí nijak zásadně ovlivnit

    • Vhodné je uţivateli pomoci s odstraněním

    nevhodných částí dotazu, které nepopisují

    relevantní dokumenty a naopak s přidáváním

    formulací, které relevantní dokumenty popisují

  • DBI010 - DIS - MFF UK

    Kritérium maxima

    • Tazatel obvykle není schopen (nebo ochoten)

    procházet příliš mnoho dokumentů do té míry, aby

    se rozhodl, zda jsou pro něj relevantní nebo ne

    • Obvykle 20-50 podle velikosti

    Potřeba nejen dokumenty rozlišovat na

    odpovídající/neodpovídající dotazu, ale řadit je na

    výstupu podle míry předpokládané relevance

  • DBI010 - DIS - MFF UK

    Kritérium maxima

    • V důsledku kritéria maxima se při ladění dotazu uţivatel obvykle snaţí zvýšit přesnost

    – Malé mnoţství dokumentův odpovědi, obsahující co největší poměr relevantních dokumentů

    • Některé oblasti pouţití vyţadují co nejvyšší přesnost i úplnost

    – Právnictví

    „lepší“

    Vr.Rel.

    „horší“Vr.

    Rel.

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

  • DBI010 - DIS - MFF UK

    Proč vyhledávat vzorky textu

    • Při tvorbě indexu dokumentů či dotazu– Pro zahrnutí pouze určité, předem dané

    mnoţiny slov (lemmat) z dokumentu při tzv. řízené indexaci

    – Pro vynechání předem dané mnoţiny slov (lemmat) jako jsou spojky, částice, zájmena a podobně

    • Při zobrazování sekundárních a primárních dokumentů v odpovědi– Nalezení a zvýraznění slov (lemmat) pouţitých v

    dotazu

    • …

  • DBI010 - DIS - MFF UK

    Algoritmy dle předzpracování

    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é

    Kategorie dle předzpracování

    Vzorek

    NE ANO

    Text NE I. II.

    ANO III. IV.

  • DBI010 - DIS - MFF UK

    Algoritmy II

    • Sousměrné porovnávají vzorek zleva doprava, tj. souhlasně se směrem procházení celého dokumentu.

    • Protisměrné obráceně

    Podkategorie skupiny II

    Směr

    Sousměrné Protisměrné

    Počet 1 KMP BM

    vzorků N AC CW

    nekon. KA 2CKAS

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

    Hledání jednoho vzorku

    v textu

  • DBI010 - DIS - MFF UK

    Triviální algoritmus

    a b c c b a b c a b b c a a b c c b a b c b b b a b c c

    a b c c b a b c b b b

    a b c c b a b c b b b

    Text

    Před pos.

    Po posunu

    • 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

  • DBI010 - DIS - MFF UK

    Přednáška č. 2

    Knuth-Morris-Prattův algoritmus

    • Sousměrné vyhledání jednoho vzorku

    • Oproti naivnímu přístupu eliminuje

    porovnávání jiţ jednou zkontrolované části

    textu

    • Vzorek je posunut co nejméně tak, aby část,

    která zůstane pod jiţ zkontrolovanou částí,

    s ní byla shodná

  • DBI010 - DIS - MFF UK

    KMP algoritmus

    a b c c b a b c a b b c a a b c c b a b c b b b a b c c

    a b c c b a b c b b b

    a b c c b a b c b b b

    Text

    Před pos.

    Po posunu

    Triviální algoritmus

    a b c c b a b c a b b c a a b c c b a b c b b b a b c c

    a b c c b a b c b b b

    a b c c b a b c b b b

    Text

    Před pos.

    Po posunu

    KMP

  • DBI010 - DIS - MFF UK

    KMP algoritmus

    • Před pozicí neshody zůstane vlastní prefix

    jiţ prohledané části vzorku

    • Musí být shodný s postfixem této části

    • Nejdelší takový určuje nejmenší posun

    a b c c b a b c a b b c a a b c c b a b c b b b a b c c

    a b c c b a b c b b b

    a b c c b a b c b b b

    Text

    Před pos.

    Po posunu

  • DBI010 - DIS - MFF UK

    KMP algoritmus

    a b c c b a b c a b b c a a b c c

    a b c c b a b c b b b

    a b c c b a b c b b b

    a b c c b a b c b b b

    Text

    Před posunem

    Po posunu

    a b c c b a b c b b b

    a b c c b a b c b b b

    a b c c b a b c b b b

    a b c c b a b c b b b

    a b c c b a b c b b b

  • DBI010 - DIS - MFF UK

    KMP algoritmus

    • Pokud– Vzorek v se na pozici j neshoduje s textem t

    – Nejdelší vlastní prefix zkontrolované části vzorku, rovnajícíse postfixu zkontrolované části má délku k

    • Potom– Po posunu zůstane k znaků vzorku před pozicí porovnávání

    – Vzorek se začne porovnávat od pozice k+1

    • Opravné pozice pro chyby na jednotlivých pozicích jjsou uloženy v pomocném poli P

    • V tomto případě P[j] = k+1

  • DBI010 - DIS - MFF UK

    begin {KMP}

    m := length(t); n := length(v);

    i := 1; j := 1;

    while (i n)

    then {nalezen na pozici i-j+1}

    else {nenalezen}

    end; {KMP}

    KMP algoritmus

  • DBI010 - DIS - MFF UK

    Určení pole P pro KMP

    • P[1] = 0

    • Pokud známe opravy pro pozice 1 .. j-1,

    je snadné spočítat opravu pro pozici j

    – P[j-1] obsahuje opravu pro pozici j-1.

    Tzn., že P[j-1]-1 znaků ze začátku vzorku

    se shoduje se stejným počtem znaků před

    j-1 ní pozicí ve vzorku

  • DBI010 - DIS - MFF UK

    Určení pole P pro KMP

    a b c c b a b c b b bVzorek

    0 1 1 1 1 1 2 ? P

    1 2 3 4 5 6 7 8 9 1011

  • DBI010 - DIS - MFF UK

    Určení pole P pro KMP

    • Pokud se také j-1 ní pozice vzorku

    shoduje s P[j-1] ní pozicí, může se

    prefix prodloužit a tedy správná hodnota

    pro P[j] je o jedna vyšší než předchozí.

  • DBI010 - DIS - MFF UK

    Určení pole P pro KMP

    a b c c b a b c b b bVzorek

    0 1 1 1 1 1 2 3 P

    1 2 3 4 5 6 7 8 9 1011

  • DBI010 - DIS - MFF UK

    Určení pole P pro KMP

    • Pokud se j-1 ní a P[j-1] ní pozice vzorku

    neshodují, došlo by po chybě a

    následném posunu vzorku k situaci, že

    nebude souhlasit znak před pozicí na

    které se bude pokračovat

    • Pro chybu na této předchozí pozici

    je však již známa oprava

    (čísla P[1] .. P[j-1] jsou již spočtena)

  • DBI010 - DIS - MFF UK

    Určení pole P pro KMP

    • Je nutné sledovat opravy počínaje j-1 ní

    pozicí tak dlouho, dokud se j-1 ní pozice

    vzorku neshoduje s pozicí, na kterou

    odkaz směřuje, nebo dokud nedojdeme

    na konec odkazů (hodnota 0)

  • DBI010 - DIS - MFF UK

    Určení pole P pro KMP

    a b c c b a b c b b bVzorek

    0 1 1 1 1 1 2 3 4 ? P

    1 2 3 4 5 6 7 8 9 1011

  • DBI010 - DIS - MFF UK

    Určení pole P pro KMP

    a b c c b a b c b b bVzorek 0 1 1 1 1 1 2 3 4 ? P

    1 2 3 4 5 6 7 8 9 1011

    a b c c b a b c b b bPosun pro P[j]=P[j-1]+1

    a b c c b a b c b b bPosun pro chybu na 4. pozici

    a b c c b a b c b b bPosun pro chybu na 1. pozici

  • DBI010 - DIS - MFF UK

    begin

    p[1] := 0;

    n := length(v); j := 2;

    while (j

  • DBI010 - DIS - MFF UK

    KMP algoritmus

    • Časová složitost algoritmu je o(m+n).

    • V textu se nikdy nevrací.

    • Při posunutí vzorku znovu porovnává

    stejnou pozici, ale posunů vzorku

    nemůže být více než o(m).

    • Stejně tak časová složitost

    předzpracování je o(n).

  • DBI010 - DIS - MFF UK

    Optimalizace KMP

    • Pomocné pole P je moţné optimalizovat

    • Pokud je znak v[j] shodný s v[P[j]],dostal by se pod kolizní pozici v textu posunem znak shodný s tím, který kolizi způsobil.

    • Opravu je moţné zohlednit ve druhém poli P’s hodnotou P’[j]=P’[P[j]], jinak P’[j]=P[j]

    • Pole P[j] není potom přivlastním hledání potřeba

    a b c c b a b c b b b

    0 1 1 1 1 1 2 3 4 1 1

    V

    P

    0 1 1 1 1 1 1 1 4 1 1P’

  • DBI010 - DIS - MFF UK

    Boyer-Moorův algoritmus

    • Protisměrné vyhledání jednoho vzorku s

    předzpracováním vzorku

    – vzorek přikládá k textu postupně zleva

    doprava

    – znaky vzorku se porovnávají zprava doleva

  • DBI010 - DIS - MFF UK

    Boyer-Moorův algoritmus

    • Pokud nedojde ke shodě na poziciV[n-j] vzorku s textem na pozici T[i-j]=x– n je délka vzorku,

    – i je pozice konce vzorku v textu,

    – j=0..n-1

    – xX, X je abeceda

    • Vzorek se posune o SHIFT[n-j,x] znaků doprava

    • Začne se znovu od j=0, tedy od konce

  • DBI010 - DIS - MFF UK

    Boyer-Moorův algoritmus

    • Existuje více definic pro SHIFT[n-j,x]

    • Varianta 1: Pomocné pole SHIFT[0..n-1,X] je

    pro pozici ve vzorku a znak x abecedy X

    definováno následovně:

    – Co nejmenší posun takový, aby se pod právě

    porovnávanou pozici v textu dostal odpovídající

    znak x vzorku.

    – Pokud se znak, který kolizi způsobil, ve zbývající

    levé části vzorku nevyskytuje, posune se vzorek

    těsně za testovanou pozici.

  • DBI010 - DIS - MFF UK

    Boyer-Moorův algoritmus (1)

    • Časová sloţitost je

    v průměrném případě o(m*n),

    např. pro hledání „ban-1“ v „am-nban-1“

    • Pro velké abecedy

    a vzorky s malým počtem různých znaků

    (např. přirozené jazyky)

    je průměrná časová sloţitost o(m/n)

  • DBI010 - DIS - MFF UK

    Boyer-Moorův algoritmus (1)

    • Příklad vyhledávání:

    T R O P I C K Ý O V O C EM M EJ AI A N N A S .

    AA N N A SAA N N A S

    AA N N A SAA N N A S

    AA N N A SAA N N A S

  • DBI010 - DIS - MFF UK

    Boyer-Moorův algoritmus (1)

    • Definice SHIFT pro slovo ’ANANAS’

    – Plné šipky znázorňují úspěšné porovnání

    – Dvojité znázorňují posun koncového znaku

    na místo počátečního

    – Neuvedené znamenají posun za kolizní pozici

    SANANASANANA

    ANANA

    N

  • DBI010 - DIS - MFF UK

    Boyer-Moorův algoritmus (1)

    • Pro úsporu místa x{‘A’,’N’,’S’,’X’}– ‘X‘ zastupuje všechny znaky nevyskytující se ve vzorku

    • Hodnoty s „+“ označují velikost posunu

    • Hodnoty bez „+“ označují novou hodnotu j

    hodnota j ‘A‘ ‘N‘ ‘S‘ ‘X‘

    0 +1 +2 1 +6

    1 2 +1 +5 +5

    2 +1 3 +4 +4

    3 4 +1 +3 +3

    4 +1 5 +2 +2

    5 6 +1 +1 +1

    6 vzorek byl úspěšně nalezen

  • DBI010 - DIS - MFF UK

    Porovnání na umělém příkladu

    Text ('a'rnd(200)'b ')1000

    Velikost 100 KB

    #slov 1 000

    #různých slov 200

  • DBI010 - DIS - MFF UK

    Porovnání na umělém příkladu

    Text ('a'rnd(200)'b ')1000

    Velikost 100 KB

    #slov 1 000

    #různých slov 200

    #porovnání - Triv. 24 128 586

  • DBI010 - DIS - MFF UK

    Porovnání na umělém příkladu

    Text ('a'rnd(200)'b ')1000

    Velikost 100 KB

    #slov 1 000

    #různých slov 200

    #porovnání - Triv. 24 128 586

    #porovnání - KMP 885 747 3,7%

  • DBI010 - DIS - MFF UK

    Porovnání na anglickém textu

    Slova

    Text Anglický

    Velikost 130 KB

    #vzorků 18 075

    #různých vzorků 1 570

    Pozn:

    různý vzorek nalezen poprvé aţ na své původní pozici

  • DBI010 - DIS - MFF UK

    Porovnání na anglickém textu

    Slova

    Text Anglický

    Velikost 130 KB

    #vzorků 18 075

    #různých vzorků 1 570

    #porovnání - Triv. 256 799 832

  • DBI010 - DIS - MFF UK

    Porovnání na anglickém textu

    Slova

    Text Anglický

    Velikost 130 KB

    #vzorků 18 075

    #různých vzorků 1 570

    #porovnání - Triv. 256 799 832

    #porovnání - KMP 255 942 030 99,7%

  • DBI010 - DIS - MFF UK

    Porovnání na anglickém textu

    Slova

    Text Anglický

    Velikost 130 KB

    #vzorků 18 075

    #různých vzorků 1 570

    #porovnání - Triv. 256 799 832

    #porovnání - KMP 255 942 030 99,7%

    #porovnání - BM 50 114 658 19,5%

  • DBI010 - DIS - MFF UK

    Porovnání na anglickém textu

    Slova Dvojslova

    Text Anglický Anglický

    Velikost 130 KB 130 KB

    #vzorků 18 075 9 038

    #různých vzorků 1 570 4 395

    #porovnání - Triv. 256 799 832 433 721 058

    #porovnání - KMP 255 942 030 99,7% 430 220 025 99,2%

    #porovnání - BM 50 114 658 19,5% 52 046 084 12,0%

  • DBI010 - DIS - MFF UK

    Porovnání na anglickém textu

    Slova Dvojslova

    Text Anglický Anglický Nárůst Nárůst

    Velikost 130 130 na vzorek na vzorek

    #vzorků 18 075 9 038 relativně

    #různých 1 570 4 395 ke KMP

    Triv. 256 799 832 433 721 058 3,3777 1,0048

    KMP 255 942 030 430 220 025 3,3617 1,0000

    BM 50 114 658 52 046 084 2,0770 0,6178

    *)

    • Vzhledem k linearitě KMP můţeme předpokládat, ţe kaţdý z dvouslovných vzorků se našel v průměru 3,3617 krát dále od začátku textu neţ u vzorků jednoslovných

    • BM i při 3,3617 krát větší vzdálenosti spotřeboval jen 2,0770 krát větší počet operací

    • Na prohledání stejně velkého objemu textu tedy potřebuje při dvojnásobném prodlouţení vzorků jen 61,78% operací

  • DBI010 - DIS - MFF UK

    Boyer-Moorův algoritmus (2)

    • Jiná – efektivnější – varianta BM

    • zaloţena na dvou jednorozměrných polích P1 a P2 místo jednoho dvojrozměrného

    • P1 obsahujexX posun, který pod kolizní pozici zarovná poslední výskyt znaku x ve vzorku a nastaví pozici porovnání na konec vzorku. Pokud se x ve vzorku nevyskytuje, je tedy P1[x] rovno délce vzorku.

  • DBI010 - DIS - MFF UK

    Boyer-Moorův algoritmus (2)

    • P2 obsahuje pro kaţdou pozici j ve vzorku délku nejmenšího moţného posunu, která pod jiţ úspěšně porovnanou příponu vzorku na pozicích j+1 aţ m zarovná shodný podřetězec vzorku.

    • Pokud se nejpravější výskyt podřetězce patj+1…patm nachází na pozici nvp(j), potomP2[j] = m+1 - nvp(j).

    • Pokud se podřetězce patj+1…patm ve vzorku nenachází, hledá se nejdelší předpona vzorku shodná s příponou podřetězce patj+1…patm

  • DBI010 - DIS - MFF UK

    Boyer-Moorův algoritmus (2)

    • Posun shift(j, x) je definován výrazem

    max(P1[x],P2[j])

    – Nemá cenu zarovnat kolizní znak, pokud se se

    vzorkem neshoduje zkontrolovaná část textu a

    naopak

  • DBI010 - DIS - MFF UK

    Boyer-Moorův algoritmus (2)

    a b c c b a b ca b b c a b b a c b b a b c b b a b c c

    b b a cb b b

    Text

    Před pos.

    Po posunu

    BM(2)

    ca b b

    b b a c b bca b b b

    a b c c b a c b b c a b b a c b b a b c b b a b c c

    b b a c b b

    Text

    Před pos.

    Po posunu

    BM(2)

    c b

    ba

    ba b

    b b a c b bc b ba b

  • DBI010 - DIS - MFF UK

    Boyer-Moorův algoritmus (2)

    • procedure InitBM(const pat: string; var P1: ShiftArray1; var P2: ShiftArray2)var m, x, k, l: integer; KMP: KmpArray; NVP: NvpArray;begin {nejprve zkonstruujeme pole P1}m := length(pat); for x := 1 to ALPHABET_SIZE do P1[x] := m;for j := 1 to m do P1[pat[j]] := m-j; {oprav posun pro znak pat[j]}{nyní zkonstruujeme postupně pole P2}for j := 1 to m do NVP[j] := j-m+1;KMP[m] := m+1; j := m-1; {analogie KMPInit, zrcadlově převrácená} while (j > -m) do begink := j+1; l := k;repeatl := KMP[l];

    until (l = m+1) or (l

  • DBI010 - DIS - MFF UK

    Boyer-Moorův algoritmus (2)

    • function ShiftBM(const j: integer; const x: char): integerbeginShiftBM := 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;beginm := length(pat); n := length(txt); InitBM(pat,P1,P2); i := m;while i 0) and (txt[i] = pat[j]) do begindec(i); dec(j); {úspěšné porovnání jednoho znaku}

    end;if j = 0 thenbeginReportMatchAtPosition(i+1); i := i+1+m; {posun vzorku o jednu pozici}

    endelsei := i+BMShift(j,x); {posun vzorku + skok na konec vzorku}

    end {while};end {BMSearch};

  • DBI010 - DIS - MFF UK

    FS algoritmus (modifikace BM)

    Autoři: Jang-Jon Fan a Keh-Zih Su

    Kombinace zpětného prohledávání s KMP

    Posun delta při neshodě V[j] s T[i], vzorek V[1..n]

    • delta(n,x) = n, pokud x není ve vzorku= n-max{k | V[k]=x}

    • delta(j,x), j

  • DBI010 - DIS - MFF UK

    FS algoritmus

    a b c c b a b ca b b c a b b a c b b a b c b b a b c c

    b b a cb b b

    Text

    Před pos.

    Po posunu

    FS

    ca b b

    b b a c b bca b b b

    a b c c b a c b b c a b b a c b b a b c b b a b c c

    b b a c b b

    Text

    Před pos.

    Po posunu

    FS

    c b

    ba

    ba b

    b b a c b bc b ba b

  • DBI010 - DIS - MFF UK

    Porovnání algoritmů

    Bez předzprac. S předzpracováním vzorku

    protisměrnýsousměrný

    timemax o(m*n) o(m+n) o(m*n)

    timeavg o(m*n) o(m+n) o(m*n)

    timeavg

    (přir. jazyk)o(m) o(m+n) o(m/n)

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

    Hledání konečného počtu vzorků

    v textu

  • DBI010 - DIS - MFF UK

    Algoritmus Aho-Corrasickové

    • Sousměrné vyhledání více vzorků současně

    • Rozšíření KMP algoritmu

    – Předzpracování vzorků

    – Lineární průchod textem

    • Časová sloţitost o(m+ni), kde

    m je délka textu

    ni je délka i-tého vzorku

  • DBI010 - DIS - MFF UK

    A-C algoritmus

    • Text T

    • Mnoţina vzorků

    V={V1, V2, …, Vk}

    • Vyhledávací stroj

    S = (Q, X, q0, g, f, F)

    • Q mnoţina stavů

    • X abeceda

    • q0Q počáteční stav

    • g: Q x X Q (go)

    dopředná funkce

    • f: Q Q (fail)

    zpětná funkce

    • F Q mnoţina

    koncových stavů

  • DBI010 - DIS - MFF UK

    A-C algoritmus

    • Stavy mnoţiny Q

    reprezentují všechny

    prefixy všech vzorků

    • Stav q0 reprezentuje

    prázdný prefix

    • g(q,x) = qx,

    pokud je qxQ

    • Jinak g(q0,x)=q0

    • Jinak g(q,x)

    nedefinováno

    • f(q) pro qq0 je

    rovna nejdelšímu

    vlastnímu postfixu q v

    mnoţině Q

    |f(q)|

  • DBI010 - DIS - MFF UK

    A-C algoritmus

    • Při vyhledávání se vyuţívá všude

    definovaná přechodová funkce

    (q,x): QxXX

    – (q,x) = g(q,x), pokud g(q,x) definována

    – (q,x) = (f(q),x)

    • Korektní definice, protože

    |f(q)| - vzdálenost f(q) od počátečního

    stavu - je menší než |q| a g(q0,x) je vždy

    definována.

  • DBI010 - DIS - MFF UK

    A-C algoritmus

    • Konstrukce f dle |q|,

    tedy dle vzdálenosti

    stavu od počátku

    • Pro q0 není třeba

    funkci definovat

    • Pro |q|=1 je nejdelší

    vlastní postfix

    prázdný, tedy f(q)=q0

    • f(qx)=f(g(q,x))

    = (f(q),x)

    • Při hledání hodnoty

    zpětné funkce ve stavu

    qx, do kterého se

    přechází z q znakem x,

    je nutné se vrátit do q,

    přejít do f(q) a poté

    vpřed přes znak x

  • DBI010 - DIS - MFF UK

    A-C algoritmus

    • Příklad pro V={”he”,”her”,”she”}, funkce g

    e rh

    s

    h e

    X\{h,s}

    "h" "he" "her"

    ""

    "s" "sh" "she"

  • DBI010 - DIS - MFF UK

    A-C algoritmus

    • Příklad pro V={”he”,”her”,”she”}, funkce f

    e rh

    s

    h e

    X\{h,s}

    "h" "he" "her"

    ""

    "s" "sh" "she"

  • DBI010 - DIS - MFF UK

    A-C algoritmus

    • Detekce všech vzorků, včetně těch

    obsaţených uvnitř jiných:

    – Buďto pro kaţdý stav q předem sestrojíme

    seznam všech detekovaných vzorků průchodem

    seznamu stavů dosaţitelných z q přes zpětnou

    funkci, tedy stavů f i(q), i>=0

    – Nebo při vstupu do q projdeme seznam

    dosaţitelných stavů během vyhledávání

  • DBI010 - DIS - MFF UK

    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 beginq := delta(q,t[i]); vypis(q);{výpis vzorků končících znakem t[i]}

    end; {for}end; {A-C}

    A-C algoritmus – funkce delta

  • DBI010 - DIS - MFF UK

    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

    aV b c c b a b c b b b

    0P 1 1 1 1 1 2 3 4 1 1

  • DBI010 - DIS - MFF UK

    Algoritmus

    Commentz-Walterové

    • Protisměrné vyhledání více vzorků

    současně

    • Kombinace B-M a A-C algoritmů

    • Průměrná časová sloţitost

    (pro přirozené jazyky)

    o(m/min(ni)), kde

    m je délka textu

    ni je délka i-tého vzorku

  • DBI010 - DIS - MFF UK

    C-W algoritmus

    • Text T

    • Mnoţina vzorků

    V={V1, V2, …, Vk}

    • Vyhledávací stroj

    S = (Q, X, q0, g, f, F)

    – Q mnoţina stavů

    – X abeceda

    – q0Q počáteční stav

    – g: Q x X Q (go)

    dopředná funkce

    – f: Q Q (fail)

    zpětná funkce

    – F Q mnoţina koncových

    stavů

  • DBI010 - DIS - MFF UK

    C-W algoritmus

    • Stavy mnoţiny Q

    reprezentují všechny

    postfixy všech vzorků

    • Stav q0 reprezentuje

    prázdný postfix

    • g(q,x) = xq,

    pokud je xqQ

    • f(q) pro qq0 je

    rovna nejdelšímu

    vlastnímu prefixu q v

    mnoţině Q

    |f(q)|

  • DBI010 - DIS - MFF UK

    C-W algoritmus

    • Dopředná funkce

    s h e

    “e““he““she“

    h e

    r

    “r““er““her“

  • DBI010 - DIS - MFF UK

    C-W algoritmus

    • Zpětná funkce

    s h e

    “e““he““she“

    h e

    r

    “r““er““her“

  • DBI010 - DIS - MFF UK

    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ý reprezentujeo jedna kratší postfix

    • Pokud g(q,x) nedef., posunou se vzorky o shift(q,x) pozic doprava a začne se stavem q0

    • shift(q,x)=min(max(shift1(q,x),shift2(q)),shift3(q))

  • DBI010 - DIS - MFF UK

    C-W algoritmus

    • shift1(q,x) = char(x)-h(q)-1, pokud > 0

    • shift2(q)

    = min({LMIN}{h(q’)-h(q), f(q’)=q})

    • shift3(q0) = LMIN

    • shift3(q)

    = min({shift3(pred(q))}

    {h(q’)-h(q), k:fk(q’)=q q’F})

  • DBI010 - DIS - MFF UK

    C-W algoritmus

    • shift1(q,x) – zarovnání kolizního znaku

    char(’y’)-h(’kolo’)-1=8-4-1=3

    m ky o l o g . . .. . . m ky o l o g . . .. . .

    +3

    lokoo

    gol

    amo zlok

    olo vkoS

    arv tolok

    uiz mánmyg

    lokoo

    gol

    amo zlok

    olo vkoS

    arv tolok

    uiz mánmyg

  • DBI010 - DIS - MFF UK

    C-W algoritmus

    • shift2(q) – zarovnání zkontrolované části

    m ky o l o g . . .. . . m ky o l o g . . .. . .

    +1

    lokoo

    gol

    amo zlok

    olo vkoS

    arv tolok

    uiz mánmyg

    lokoo

    gol

    amo zlok

    olo vkoS

    arv tolok

    uiz mánmyg

  • DBI010 - DIS - MFF UK

    C-W algoritmus

    • shift3(q) – zarovnání (obecně postfixu)

    zkontrolované části bez nutnosti

    pouţít kolizní znak

    m ky o l o g . . .. . . m ky o l o g . . .. . .

    +2

    lokoo

    gol

    amo zlok

    olo vkoS

    arv tolok

    uiz mánmyg

    lokoo

    gol

    amo zlok

    olo vkoS

    arv tolok

    uiz mánmyg

  • DBI010 - DIS - MFF UK

    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í

    aab... . . .aacbaab a

    aab... . . .aacbaab a

    aab... . . .aacbaab a

    b... . . .c.b . b

    b

    b

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

    Hledání nekonečného počtu vzorků

    v textu

    Přednáška č. 3

  • DBI010 - DIS - MFF UK

    Regulární výrazy a jazyky

    • Regulární výraz R

    • Atomické výrazy–

    – a, a X

    • Operace– U.V – zřetězení

    – U+V – sjednocení

    – Vk = V.V…V

    – V* = V0+V1+V2+…

    – V+ = V1+V2+V3+…

    • Hodnota výrazu h(R)

    – prázdný jazyk

    – {} jen prázdné slovo

    – a, a X

    – {u.v|uh(U) vh(V)}

    – h(U)h(V)

  • DBI010 - DIS - MFF UK

    Vlastnosti regulárních výrazů

    • 1) U+(V+W) = (U+V)+W

    • 2) U.(V.W) = (U.V).W

    • 3) U+V = V+U

    • 4) (U+V).W = (U.W)+(V.W)

    • 5) U.(V+W) = (U.V)+(U.W)

    • 6) U+U = U

    • 7) .U = U

    • 8) .U =

    • 9) U+ = U

    • 10) U* = +U*.U = (+U)*

  • DBI010 - DIS - MFF UK

    Konečný automat

    • K = ( Q, X, q0, , F )

    – Q je množina stavů

    – X je vstupní abeceda

    – q0 Q je počáteční stav

    – : Q x X Q je přechodová funkce

    – F Q je množina koncových stavů.

  • DBI010 - DIS - MFF UK

    Konečný automat

    • Konfigurace KA

    – (q,w) Q x X*

    • Přechod KA

    – relace (Q x X*) x (Q x X*)

    – (q,aw) (q’,w) (q,a) = q’

    • Automat přijímá slovo w

    (q0, w)* (q,), qF

  • DBI010 - DIS - MFF UK

    Nedeterministický

    konečný automat

    • a) standardně 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

    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

    h e r

    s h e

    1 2 3

    4 5 6 7

    8 9 10 11

    *

    *

    *

    h e r

    h e

    1 2 3 4

    5 6 7

    *

    s

  • DBI010 - DIS - MFF UK

    Převod NKADKA

    • K=(Q, X, S, , F)

    • K’=(Q’, X, q’0, ‘, F‘)

    • Q’ = P(Q)

    • X

    • q’0 = S

    • ‘( q’, x)

    = (q, x), qq’

    • F‘ = {q’Q’q’F}

  • DBI010 - DIS - MFF UK

    Převod NKADKA

    povolena mnoţina poč. stavů

    • Tabulkou, jen dosaţitelné stavy

    přechody

    do stavu 1

    neuvedeny

    h e

    h e r

    s h e

    1 2 3

    4 5 6 7

    8 9 10 11

    *

    *

    *

    stav ozn. e h r s x

    {1,4,8} 1 {1,4,8} {1,2,4,5,8} {1,4,8} {1,4,8,9} {1,4,8}

    {1,2,4,5,8} 2 {1,3,4,6,8} {1,2,4,5,8} {1,4,8} {1,4,8,9} {1,4,8}

    {1,4,8,9} 3 {1,4,8} {1,2,4,5,8,10} {1,4,8} {1,4,8,9} {1,4,8}

    {1,3,4,6,8} 4 {1,4,8} {1,2,4,5,8} {1,4,7,8} {1,4,8,9} {1,4,8}

    {1,2,4,5,8,10} 5 {1,3,4,6,8,11} {1,2,4,5,8} {1,4,8} {1,4,8,9} {1,4,8}

    {1,4,7,8} 6 {1,4,8} {1,2,4,5,8} {1,4,8} {1,4,8,9} {1,4,8}

    {1,3,4,6,8,11} 7 {1,4,8} {1,2,4,5,8} {1,4,7,8} {1,4,8,9} {1,4,8}

    eh

    h

    sh e

    2 4

    1

    3 5 7

    h

    s

    s

    r

    6

    s

    h

    s

    h

    s

    s

    hr

  • DBI010 - DIS - MFF UK

    Převod NKADKA

    pouze jeden poč. stav

    • Tabulkou, jen dosaţitelné stavy

    přechody

    do stavu 1

    neuvedeny

    stav ozn. e h r s x

    {1} 1 {1} {1,2} {1} {1,5} {1}

    {1,2} 2 {1,3} {1,2} {1} {1,5} {1}

    {1,5} 3 {1} {1,2,6} {1} {1,5} {1}

    {1,3} 4 {1} {1,2} {1,4} {1,5} {1}

    {1,2,6} 5 {1,3,7} {1,2} {1} {1,5} {1}

    {1,4} 6 {1} {1,2} {1} {1,5} {1}

    {1,3,7} 7 {1} {1,2} {1,4} {1,5} {1}

    eh

    h

    sh e

    2 4

    1

    3 5 7

    h

    s

    s

    r

    6

    s

    h

    s

    h

    s

    s

    hr

    h e r

    h e

    1 2 3 4

    5 6 7

    *

    s

  • DBI010 - DIS - MFF UK

    Vhxvvdx

    dVh

    plot

    sten

    svíce

    a

    Vh

    da

    dVh

    Derivace regulárního výrazu

    • Pokud, , potom

    • Např., pokud ,

    potom

    ten

    více

    ds

    dVh

    vVh

    dt

    dVh

  • DBI010 - DIS - MFF UK

    Derivace regulárního výrazu

    d

    daa X

    ,

    d

    daa X

    ,

    da

    daa X ,

    db

    dab a ,

    d U Vda

    dU

    da

    dV

    da

    d U Vda

    dU

    daV U

    .. ,

    d U Vda

    dU

    daV

    dV

    daU

    .. ,

    d

    da

    dV

    da

    VV

    *

    *.

    dV

    dx

    d d dVx

    n n

    n n

    a a aa a a

    1 1

    1 1... , ...

  • DBI010 - DIS - MFF UK

    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 = {qQ | h(q)}

    dx

    dq

  • DBI010 - DIS - MFF UK

    Konstrukce KA pomocí derivace

    • V= (0+1)*.01 nad abecedou X={0,1}

    • q0 = (0+1)*.01

    101.*10101.*10.101.*10.0

    1

    0

    0

    101.*10.0

    10

    0

    0101.

    0

    *10

    0

    .01*10

    d

    d

    d

    d

    d

    d

    d

    d

    d

    d

    d

    d

    01.*1001.*10.01.*10.1

    1

    1

    0

    01.*10.1

    10

    1

    0101.

    1

    *10

    1

    .01*10

    d

    d

    d

    d

    d

    d

    d

    d

    d

    d

    d

    d

  • DBI010 - DIS - MFF UK

    Konstrukce KA pomocí derivace

    • V= (0+1)*.01 nad abecedou X={0,1}

    • q0 = (0+1)*.01

    • F = {(0+1)*.01+}

    stav ozn. 0 1(0+1)*.01 A (0+1)*.01+1 (0+1)*.01

    (0+1)*.01+1 B (0+1)*.01+1 (0+1)*.01+(0+1)*.01+ C (0+1)

    *.01+1 (0+1)*.01

    0B

    0

    0

    C1

    A

    1

    1

  • DBI010 - DIS - MFF UK

    Dvojcestný KA se skokem

    • Zobecnění všech vyhledávacích algoritmů

    • K = (Q, X, q0, , k, , F)

    – Q je mnoţina stavů

    – X je vstupní abeceda

    – q0 Q je počáteční stav

    – : Q x X Q x {-1,1,2,...,k} je přechodová funkce

    – k N je maximální délka skoku

    – je značka skoku

    – F Q je mnoţina koncových stavů

  • DBI010 - DIS - MFF UK

    Dvojcestný KA se skokem

    • Konfigurace:

    – řetězec x1x2...xi-1qxi...xj-1xj...xn z mnoţiny X*QX*X*

    • Přechod

    – relace (X*QX*X*) x (X*QX*X*)

    – x1x2...xi-1qxi...xj-1xj...xnx1x2...xi-2q’xi-1...xj-1xj...xn (q, xi) = (q’, -1)

    – x1x2...xi-1qxi...xj-1xj...xnx1x2...xi...xj...xt-1q’xt...xn (q, xi) = (q’, m),

    kde t=min(i+m,n+1)

    • Příjem slova w

    – q0w * wf, f F

  • DBI010 - DIS - MFF UK

    Dvojcestný KA se skokem

    • Pokud se pouţijí pouze přechody tvaru

    (q, xi) = (q’,1)

    bude automat simulovat standardní

    nedeterministický konečný automat

    – Pozice skoku se drţí neustále u čtecí hlavy

    – Automat postupně čte znaky zleva doprava

  • DBI010 - DIS - MFF UK

    2CKAS simulující B-M algoritmus

    se vzorkem „ANANAS“

    • Výchozí konfigurace

    q0MEZI TROPICKÉ OVOCE …

    odpovídá umístění vzorku před text

    • Nutno přidat přechod do alternativního výchozího

    stavu q se skokem o délku vzorku

    • (q0,x) = (q,|ANANAS|) = (q,+6) pro xX

    MT E Z I T R O P I C

    AV N A N A S

    K É . . .

  • DBI010 - DIS - MFF UK

    2CKAS simulující B-M algoritmus

    se vzorkem „ANANAS“

    • Úvodním skokem automat přejde do konfigurace MEZI TqROPICKÉ OVOCE …,která odpovídá startu B-M algoritmu

    • (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

    MT E Z I T R O P I C

    AV N A N A S

    K É . . .

  • DBI010 - DIS - MFF UK

    2CKAS simulující B-M algoritmus

    se vzorkem „ANANAS“

    • Celkově

    – k = 6 = |ANANAS|

    – Q = {q0,q,q1,q2,q3,q4,q5,q6}

    – F = {q6}

    A N S X

    q0 (q,+6) (q,+6) (q,+6) (q,+6)

    q (q,+1) (q,+2) (q,-1) (q,+6)

    q1 (q,-1) (q,+1) (q,+5) (q,+5)

    q2 (q,+1) (q,-1) (q,+4) (q,+4)

    q3 (q,-1) (q,+1) (q,+3) (q,+3)

    q4 (q,+1) (q,-1) (q,+2) (q,+2)

    q5 (q,+6) (q,+1) (q,+1) (q,+1)

    q6 (q,+1) (q,+2) (q,-1) (q,+6)

    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

    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

  • Modely DIS

    Boolský model

  • DBI010 - DIS - MFF UK

    Boolský model DIS

    • 50-tá léta 20. stol.

    • Automatizace postupů pouţívaných v

    knihovnictví

  • DBI010 - DIS - MFF UK

    Boolský model DIS

    • Databáze D obsahující n dokumentů

    – D={d1, d2, … dn}

    • Dokumenty popisovány pomocí m termů

    – T ={t1, t2, … tm}

    – term tj = slovo nebo sousloví

    • Reprezentace dokumentu pomocí mnoţiny termů

    – Obsaţených v dokumentu

    – Popisujících význam dokumentu

    – d1 T

  • DBI010 - DIS - MFF UK

    Indexace Boolského DIS

    • Přiřazení mnoţiny termů, které jej popisují ke kaţdému dokumentu– Členění indexačních technik dle způsobu vytváření

    • Ruční

    – Nekonzistentní. Více indexátorů se nemusí shodnout na mnoţině termů. Jeden indexátor můţe po určité době ohodnotit stejný dokument jinak.

    • Automatická

    – Konzistentní, ale bez porozumění textu.

    – Členění indexačních technik dle volnosti výběru termů

    • Řízená

    – Předem daná mnoţina termů. Pouze se vyberou ty, vhodné pro dokument.

    • Neřízená

    – Mnoţina termů se mění s přibývajícími dokumenty.

  • DBI010 - DIS - MFF UK

    Indexace

    • Tezaurus

    – Vnitřně strukturovaná mnoţina termů

    • Synonyma s preferovanými termy

    • Hierarchie uţších/širších termů

    • Příbuzné termy

    • ...

    • Stop-list

    – Nevýznamová slova

  • DBI010 - DIS - MFF UK

    Indexace

    • Příliš obecná

    slova nejsou pro

    identifikaci

    dokumentů

    vhodná

    • Příliš specifická

    slova také ne0

    010,1 0,9

    vhodné termy

    0,5

  • DBI010 - DIS - MFF UK

    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

    Boolský model DIS

    • Dotazem tedy může být například:

    – ‘vyhledávání’ AND ‘informace’

    – ‘kódování’ OR ‘dekódování’

    – ‘zpracování’ AND (‘dokument’ OR ‘text’)

    – ‘počítač’ AND NOT ‘osobní’

  • DBI010 - DIS - MFF UK

    Boolský model DIS

    • Víceslovné termy v dotazech

    – ‘vyhledávání informace’

    – ‘kódování dat’ OR ‘dekódování dat’

    – ‘zpracování textu’

    – ‘počítač’ AND NOT ‘osobní počítač’

  • DBI010 - DIS - MFF UK

    Boolský model DIS

    • Využití faktografických údajů

    (hodnot atributů)

    – ‘databáze’

    AND (autor = ‘Salton’)

    – ‘zpracování textu’

    AND (rok_vydání >= 1990)

  • DBI010 - DIS - MFF UK

    Boolský model DIS

    • Zástupné znaky v termech

    – ‘datab*’ AND ‘systém*’

    • zastupuje termy

    ‘databáze’, ‘databázový’,

    ‘systém’, ‘systémy’, a pod.

    – ‘přenosn?’ AND ‘počítač*’

    • zastupuje termy

    ‘přenosný’, ‘přenosné’,

    ‘počítač’, ‘počítače’, ‘počítačový’ a pod.

  • DBI010 - DIS - MFF UK

    Organizace indexu

    • Invertovaný seznam

    – Pro kaţdý term seznam dokumentů

    ve kterých se vyskytuje

    • t1 = d1,1, d1,2, ..., d1,k1

    • t2 = d2,1, d2,2, ..., d2,k2

    • tm = dm,1, dm,2, ..., dm,km

  • DBI010 - DIS - MFF UK

    Organizace indexu

    • Zpracování dokumentů na vstupu

    – vznikne posloupnost dvojic

    setříděná dle v uvedeném pořadí

    • Setřídění dle term_id,dok_id

    a odstranění po sobě jdoucích duplicit

  • DBI010 - DIS - MFF UK

    Lemmatizace a disambiguace

    českého jazyka (ÚFAL)• Odpovědným zástupcem

    nemůţe být kaţdý.

    • Zákon by měl zajistit individualizaci odpovědnosti a zajištění odbornosti. …

    Odpovědnýmodpovědný_^(kdo_za_něco_odpovídá)AAIS7----1A----zástupcemzástupce<MDt>NNMS7-----A----nemůţemoci_^(mít_moţnost_[něco_dělat])VB-S---3P-NA---býtbýtVf--------A----kaţdýkaţdýAAIS1----1A----

    Číslo odstavce

    Číslo věty

    Lemma včetně významu

    Slovní druh (Adverb), …

    Slovo v dokumentu

  • DBI010 - DIS - MFF UK

    Proximitní omezení

    • t1 (m,n) t2– term t2 se vyskytuje v textu nejdále m slov za t1,

    nebo se t1 vyskytuje nejdále n slov za t2.

    • t1 sentence t2– termy se v dokumentu vyskytují ve stejné větě

    • t1 paragraph t2– termy se v dokumentu vyskytují ve stejném

    odstavci

  • DBI010 - DIS - MFF UK

    Proximitní omezení

    • Nahrazení operátoru konjunkcí

    • Vyhodnocení dotazu

    • Ověření v primárním textu

    – Delší čas pro vyhodnocení

    – Nutnost uloţení primárních dokumentů

    • Doplnění indexu o pozice termů v dokumentech

    – Větší index

  • DBI010 - DIS - MFF UK

    Organizace indexu

    • Zpracování dokumentů na vstupu

    – vznikne posloupnost pětic

    setříděná dle v uvedeném pořadí

    • Setřídění

    – vznikne posloupnost pětic

  • DBI010 - DIS - MFF UK

    Vyuţití tezauru

    • BT(x) - Broader Term - Širší term k termu x

    • NT(x) - Narrower Terms - Užší termíny

    • PT(x) - Preferred Term - Preferovaný termín

    • SYN(x) - SYNonyms -Synonyma k termu x

    • RT(x) - Related Terms - Příbuzné termíny

    • TT(x) - Top Term - Nejširší termín

  • DBI010 - DIS - MFF UK

    Nevýhody Boolského DIS

    • Salton:

    – Formulace dotazů je spíše uměním neţ vědou.

    – Nemoţnost ohodnotit vhodnost vystupujících dokumentů.

    – Všechny termy v dotazu i v identifikaci dokumentu jsou chápány jako stejně důleţité.

    – Nemoţnost řízení velikosti výstupu.

    – Některé výsledky neodpovídají intuitivní představě.

    • V disjunktivním dotazu na výstupu dokumenty obsahující jediný z termů vedle dokumentů obsahujících všechny.

    • V konjunktivním dotazu na výstupu nejsou dokumenty neobsahující žádný z termů ani dokumentů neobsahující jeden z nich.

  • DBI010 - DIS - MFF UK

    Částečné setřídění výstupu

    Q = (t1 OR t2) AND (t2 OR t3) AND t4– převedeme do DKNF

    Q’ = (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

    Částečné setřídění výstupu

    • Kaţdá elementární konjunkce (dále EK) je

    ohodnocena číslem rovným počtu termů v

    kladném smyslu (bez NOT)

    • Všechny EK se navzájem liší alespoň u jednoho

    termu

    Kaţdý dokument vyhovuje nejvýše jedné EK

    Dokument lze ohodnotit číslem, přiřazeným

    odpovídající EK.

  • DBI010 - DIS - MFF UK

    Částečné setřídění výstupu

    • Elementárních konjunkcí pro k pouţitých

    termů je 2k

    • Moţných ohodnocení je jen k

    • Proto můţe mít více EK stejné ohodnocení

    • (ta OR tb) =

    = (ta AND tb) … ohodnocení 2

    OR (ta AND NOT tb) … ohodnocení 1

    OR (NOT ta AND tb) … ohodnocení 1

  • DBI010 - DIS - MFF UK

    Přednáška č. 4

    Vektorový model DIS

    • 70-tá léta 20. stol.

    – cca o 20 let mladší neţ Boolské DIS

    • Snaha minimalizovat nebo odstranit

    nevýhody Boolských DIS

  • DBI010 - DIS - MFF UK

    Vektorový model DIS

    • Databáze D obsahující n dokumentů

    – D={d1, d2, … dn}

    • Dokumenty popisovány pomocí m termů

    – T ={t1, t2, … tm}

    – term tj = slovo nebo sousloví

    • Reprezentace dokumentu pomocívektoru vah termů

    – w miwiwidi ,,...,2,,1,

  • DBI010 - DIS - MFF UK

    Vektorový model DIS

    • Model dokumentu

    – 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

    1,0,,...,2,,1,m

    w miwiwidi

    1,0,...,2,

    1mqmqq

    q

  • DBI010 - DIS - MFF UK

    Index vektorového DIS

    1,0

    ,2,1,

    ,22,21,2

    ,12,11,1

    2

    1

    mn

    mnnn

    m

    m

    n www

    www

    www

    d

    d

    d

    D

  • DBI010 - DIS - MFF UK

    Vektorový model DIS

    • Podobnost mezi

    vektorem dotazu a

    vektorem dokumentu

    je dána funkcí

    00

    1

    1

    RdqSim i ,

  • DBI010 - DIS - MFF UK

    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í

    cos1

    ,, dqdqwqdqSim iim

    jjiji

    wq jij ,

  • DBI010 - DIS - MFF UK

    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ů

    cos, dqdqSim ii

  • DBI010 - DIS - MFF UK

    Normalizace vektorů

    • Eliminace vlivu délky vektoru na podobnost

  • DBI010 - DIS - MFF UK

    Normalizace vektorů

    • Během indexace

    – Nezatěţují vyhledávání

    – Někdy nutné dávkově přepočítat vektory v

    případě, ţe normalizace zahrnuje faktory

    závislé na celé mnoţině vektorů

    • Během vyhledávání

    – Součást definice podobnostní funkce

    – Zpomaluje odezvu

  • DBI010 - DIS - MFF UK

    Omezení velikosti výstupu

    • Dokumenty na výstupu

    řazeny sestupně dle podobnosti

    – Nejpodobnější dokumenty na začátku

    – Moţno omezit velikost výstupu a splnit snadno

    kritérium maxima

    • Omezení max. počtu vrácených dokumentů

    • Poţadavek na minimální nutnou podobnost

  • DBI010 - DIS - MFF UK

    Negace ve vektorovém DIS

    • 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í

    m

    jjiji wqdqSim

    1,,

    wq jij ,

    1,1,...,2,

    1mqmqq

    q

  • DBI010 - DIS - MFF UK

    Skalární součin

    m

    jjiji wqdqSim

    1,,

  • DBI010 - DIS - MFF UK

    Kosinová míra (Salton)

    m

    jji

    m

    jj

    m

    jjij

    i

    wq

    wq

    dqSim

    1,

    2

    1

    2

    1,

    ,

  • DBI010 - DIS - MFF UK

    Jaccardova míra

    m

    jjij

    m

    jji

    m

    jj

    m

    jjij

    i

    wqwq

    wq

    dqSim

    1,

    1,

    1

    1,

    ,

  • DBI010 - DIS - MFF UK

    Diceova míra

    m

    jji

    m

    jj

    m

    jjij

    i

    wq

    wq

    dqSim

    1,

    1

    1,2

    ,

  • DBI010 - DIS - MFF UK

    Overlap míra

    m

    jjij

    m

    jjij

    i

    wq

    wq

    dqSim

    1,

    22

    1,

    ,min

    ,

  • DBI010 - DIS - MFF UK

    Asymetrická míra

    m

    jji

    m

    jjij

    i

    w

    wq

    dqSim

    1,

    1,,min

    ,

  • DBI010 - DIS - MFF UK

    Pseudo-kosinová míra

    m

    jji

    m

    jj

    m

    jjij

    i

    wq

    wq

    dqSim

    1,

    1

    1,

    ,

  • DBI010 - DIS - MFF UK

    Indexace ve vektorovém DIS

    • Zaloţena na počtu opakování slova v

    dokumentu

    – Čím častěji se slovo opakuje, tím je důleţitější

    • Frekvence termu (Term Frequency)

    TFi,j = #výskytů_termu / #všech_výskytů

  • DBI010 - DIS - MFF UK

    Indexace ve vektorovém DIS

    • Bez stop-listu na

    začátku seznamu

    nevýznamová slova

    term # TF

    1 the 239 0,0582

    2 of 96 0,0234

    3 a 84 0,0205

    4 to 78 0,0190

    5 and 70 0,0171

    6 is 65 0,0158

    7 for 60 0,0146

    8 be 53 0,0129

    9 if 52 0,0127

    10 in 49 0,0119

    11 use 49 0,0119

    12 are 44 0,0107

    13 it 44 0,0107

    14 should 38 0,0093

    15 class 33 0,0080

  • DBI010 - DIS - MFF UK

    Indexace ve vektorovém DIS

    • Frekvence termu jsou

    velmi malé i pro

    nejčastější termy

    • Normalizovaná

    frekvence termu

    pro

    jinak

    term # TF NTF

    1 use 49 0,0119 1,0000

    2 class 33 0,0080 0,8367

    3 owl 31 0,0076 0,8163

    4 c 26 0,0063 0,7653

    5 line 26 0,0063 0,7653

    6 example 25 0,0061 0,7551

    7 comments 23 0,0056 0,7347

    8 file 23 0,0056 0,7347

    9 bi 22 0,0054 0,7245

    10 functions 20 0,0049 0,7041

    11 files 18 0,0044 0,6837

    12 code 17 0,0041 0,6735

    13 int 17 0,0041 0,6735

    14 data 16 0,0039 0,6633

    15 public 15 0,0037 0,6531

    TFTF

    NTFkik

    ji

    ji,

    ,

    max2

    1

    2

    1,

    0, NTF ji TF ji,

  • DBI010 - DIS - MFF UK

    Indexace ve vektorovém DISRozložení (normalizované) frekvence termu

    0,0000

    0,1000

    0,2000

    0,3000

    0,4000

    0,5000

    0,6000

    0,7000

    0,8000

    0,9000

    1,0000

    Termy dle rostoucí frekvence

    Fre

    kven

    ce

    TF

    NTF

    Odlišení významných

    termů od nevýznamných

  • DBI010 - DIS - MFF UK

    Indexace ve vektorovém DIS

    • ITF (Inverted TF)

    reprezentuje důleţitost

    termu v pro indexaci v

    rámci celé kolekce

    dokumentů

    TFw jidef

    ji ,,

    NTFw jidef

    ji ,,

    ITFNTFw jjidef

    ji

    ,,

    .#

    ..#log

    dokvšech

    termobsahdokdef

    jITF0,0000

    0,5000

    1,0000

    1,5000

    2,0000

    2,5000

    0,0

    1

    0,0

    4

    0,0

    7

    0,1

    0

    0,1

    3

    0,1

    6

    0,1

    9

    0,2

    2

    0,2

    5

    0,2

    8

    0,3

    1

    0,3

    4

    0,3

    7

    0,4

    0

    0,4

    3

    0,4

    6

    0,4

    9

    0,5

    2

    0,5

    5

    0,5

    8

    0,6

    1

    0,6

    4

    0,6

    7

    0,7

    0

    0,7

    3

    0,7

    6

    0,7

    9

    0,8

    2

    0,8

    5

    0,8

    8

    0,9

    1

    0,9

    4

    0,9

    7

    1,0

    0

  • DBI010 - DIS - MFF UK

    Indexace ve vektorovém DIS

    • Normalizace vektoru dokumentu

    na jednotkovou velikost

    ITFNTFv jjidef

    ji

    ,,

    kki

    jidef

    ji

    v

    vw

    ,

    2

    ,

    ,

  • DBI010 - DIS - MFF UK

    Dotazování

    • Shodná reprezentace dokumentů a dotazů

    má řadu výhod

    • Dotaz

    – Přímo zadáním vektoru dotazu

    – Odkazem na zaindexovaný dokument:

    – 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í

    dq i

  • DBI010 - DIS - MFF UK

    Zpětná vazba

    • Podpora konstrukce dotazu

    na základě odezvy uţivatele na předchozí

    odpovědi

    – Doplnění termů identifikujících

    relevantní dokumenty

    – Eliminace termů nepodstatných pro identifikaci

    relevantních dokumentů

    • Zlepšení kritéria predikce

  • DBI010 - DIS - MFF UK

    Zpětná vazba

    • Odpověď na předchozí

    dotaz

    je uţivatelem

    rozdělena na

    relevantní a

    nerelevantní

    dokumenty

    q

  • DBI010 - DIS - MFF UK

    Pozitivní zpětná vazba

    • Relevantní dokumenty

    „přitahují“ dotaz

    směrem k sobě

  • DBI010 - DIS - MFF UK

    Negativní zpětná vazba

    • Nerelevantní

    dokumenty „odtlačují“

    dotaz směrem od sebe

    – Méně efektivní neţ

    pozitivní zpětná vazba

    – Relativně málo

    pouţívaná

  • DBI010 - DIS - MFF UK

    Zpětná vazba

    • Postupně se dotaz

    stěhuje směrem k

    centru relevantních

    dokumentů

  • DBI010 - DIS - MFF UK

    Zpětná vazba

    • Obecný tvar

    • Moţný speciální tvar

    ... parametr metody

    k

    jij dqq j

    10

    '

    k

    dqq

    k

    ji j

    1' 1

    (1-) /

  • DBI010 - DIS - MFF UK

    Zpětná vazba

    • Obecný tvar

    • Obdoba s váhami

    k

    jij dqq j

    10

    '

    (1-) /

    k

    jj

    k

    ji j

    j

    v

    dv

    qq

    1

    1*

    ' 1

  • DBI010 - DIS - MFF UK

    Ekvivalence termů ve VDIS

    • Jednotlivé termy navzájem nezávislé

    Problém predikce -

    - nevhodně zvolené termy

    ttttttttttT kde 4321654321 ,,,,,,,

    2

    1,

    2

    1,

    2

    1,0,0,

    2

    1d

    0,0,0,4

    3,

    4

    1,0q

    0, dqSim

  • DBI010 - DIS - MFF UK

    Ekvivalence termů ve VDIS

    • Matice ekvivalence

    11

    1111

    1111

    00000

    00000

    0000

    0000

    0000

    0000

    E

    2

    1,

    2

    1,

    2

    1,0,0,

    2

    1d

    0,0,4

    3,

    4

    3,

    4

    1,

    4

    10,0,0,

    4

    3,

    4

    1,0 Eqq

    2

    1

    8

    4, dEqSim

  • DBI010 - DIS - MFF UK

    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

    0.10.12.0

    0.10.10.10.1

    0.18.02.08.00.1

    00000

    0000

    0000

    0000

    0000

    000

    S

    ttSim jj

    21,

    40

    19

    80

    38,

    dSqSim

  • DBI010 - DIS - MFF UK

    Hierarchie termů ve VDIS

    • Obdobně jako v

    Boolském modelu

    Publikace

    Tiskovina Kniha

    Noviny Časopis

  • DBI010 - DIS - MFF UK

    Hierarchie termů ve VDIS

    • Obdobně jako v

    Boolském modelu

    • Moţnost ohodnotit

    hrany vahami

    Publikace

    Tiskovina Kniha

    Noviny Časopis

    0.4 0.6

    0.3 0.7

    0.8

    0.480.32

    0.2240.096

  • DBI010 - DIS - MFF UK

    Citace a vektorový model

    • Odborné publikace citují různý počet zdrojů

    • Předpoklad:

    – Citované dokumenty jsou podobné

    – Citující dokumenty jsou podobné

  • DBI010 - DIS - MFF UK

    Citace a vektorový model

    • Přímá reference mezi dokumenty „A“ a „B“

    – Dokument „A“ cituje dokument „B“¨

    – Označíme AB

    • Nepřímá reference mezi „A“ a „B“

    – Ex. C1, …Ck tak, ţe AC1…CkB

    • Spojení mezi dokumenty „A“ a „B“

    – AB nebo BA

  • DBI010 - DIS - MFF UK

    Citace a vektorový model

    • A a B jsou

    bibliograficky

    párovány,

    pokud citují stejný

    zdroj C

    AC BC

    • A a B jsou v

    kocitačním vztahu,

    pokud jsou spolu

    citovány

    v dokumentu C

    CA CB

  • DBI010 - DIS - MFF UK

    Citace a vektorový model

    • Acyklický orientovaný

    graf citací

    • Incidenční matice

    grafu citací

    • C=[cij]{0,1}

    cij=1, pokud ij

    cij=0 jinak

  • DBI010 - DIS - MFF UK

    Citace a vektorový model

    • BP matice bibliografického párování

    • bpij = počet dokumentů společně

    citovaných jak v i, tak v j.

    – Tedy bpii = počet dokumentů citovaných v i

    n

    kjkikjiij ccccbp

    1

  • DBI010 - DIS - MFF UK

    Citace a vektorový model

    • KP matice kocitačního párování

    • kpij = počet dokumentů společně citujících

    jak i, tak j.

    – Tedy kpii = počet dokumentů citujících i

    n

    kkjkijiij cccckp

    1

  • DBI010 - DIS - MFF UK

    Citace a vektorový model

    • SP matice spojení

    • spij = 1 (cij = 1 cji = 1)

    • Pomocí matic KP, BP, SP lze modifikovat výsledné podobnosti dokumentů s dotazem

    • Modifikace indexové matice D

    – D’= KP.D, resp. D’=BP.D , resp. D’=SP.D

    – D’=KP.BP.SP.D

  • DBI010 - DIS - MFF UK

    Vyuţití podobnosti dokumentů

    při vyhodnocování dotazu

    • DS matice podobnosti dokumentů

    • dsij =

    • Podobné pouţití jako u matic DS, BP, SP

    • Modifikace indexové matice D

    – D’=DS.D

    ddSim ji,

  • DBI010 - DIS - MFF UK

    Přednáška č. 5

    Rozlišovací hodnoty termů

    • Rozlišovací hodnota (discrimination value)

    určuje míru důleţitosti termu pro vzájemné

    rozlišení uloţených dokumentů

    • Odstraněním termu z indexu, tj. redukcí

    dimenze prostoru dokumentů můţe dojít:

    – ke vzájemnému přiblíţení dokumentů

    – ke vzájemnému oddálení dokumentů

    • v tom případě je dimenze zbytečná

  • DBI010 - DIS - MFF UK

    35,3

    45,0

    45,00,0

  • DBI010 - DIS - MFF UK

    Rozlišovací hodnoty termů

    • Výpočet na základě

    průměrné podobnosti

    dokumentů

    n

    ddQ

    n

    jiji

    Sim

    2

    1,

    ,

    • Rychlejší varianta přes

    centrální dokument

    (centroid)

    n

    cdQ

    n

    ii

    Sim 1

    ,

    n

    dc

    n

    ii

    1

  • DBI010 - DIS - MFF UK

    Rozlišovací hodnoty termů

    • Pro kaţdou dimenzi k se spočítá průměrná

    podobnost v prostoru bez k-té dimenze

    n

    cdQ

    n

    i

    kk

    k iSim

    1

    )()(

    )(,

    n

    dc

    n

    i

    k

    k i 1

    )(

    )(

    xxxxxx mkkk

    ,,,,,,1121

    )(

  • DBI010 - DIS - MFF UK

    Rozlišovací hodnoty termů

    • Rozlišovací hodnotu

    definujeme jako rozdíl

    průměrných

    podobností

    • Moţno pouţít místo

    ITFk

    QQDVk

    k

    )(

    0

    Významný term

    rozlišující dokumenty

    DVk určuje míru

    významnosti

    0

    Nevýznamný term

  • DBI010 - DIS - MFF UK

    Rozlišovací hodnoty termů(průměrná hodnota DV termu v závislosti na počtu dokumentů, ve kterých se term vyskytuje)

    Celkem

    -0,00024

    -0,00019

    -0,00014

    -0,00009

    -0,00004

    0,00001

    Celkem

    Sem přetáhněte stránková pole.

    Průměr z DVk

    Výskyty

    Sem přetáhněte pole řad.

    180/777790/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ů

  • Shlukování dokumentů

    Kohonenovy mapy

    C3M algoritmus

    K-mean algoritmus

  • DBI010 - DIS - MFF UK

    Shlukování dokumentů

    • Doba odezvy VDIS

    přímo úměrná počtu dokumentů,

    které je nutné porovnat s dotazem

    • Shlukování dovoluje

    vynechat z porovnávání většinu indexu

  • DBI010 - DIS - MFF UK

    Shlukování dokumentů

    • Bez shluků nutno

    porovnat s dotazem

    všechny dokumenty,

    i kdyţ je definována

    minimální poţadovaná

    podobnost

  • DBI010 - DIS - MFF UK

    Shlukování dokumentů

    • Kaţdý shluk je

    obvykle ve tvaru

    m-rozměrné koule

    určené svým středem a

    poloměrem

    • Pokud ne, je moţné jej

    pro výpočty pomocí

    takové koule, která jej

    celý obsahuje,

    aproximovat

  • DBI010 - DIS - MFF UK

    Shlukování dokumentů

    • Vyhodnocení dotazu

    nemusí porovnávat

    dokumenty ve

    shlucích leţících

    mimo oblast zájmu

  • DBI010 - DIS - MFF UK

    Typy shluků

    • Shluky se stejnou

    velikostí

    + Snadné vytvoření

    – Některé shluky

    mohou být téměř

    prázdné, v jiných

    můţe být velké

    mnoţství

    dokumentů

  • DBI010 - DIS - MFF UK

    Typy shluků

    • Shluky s

    (přibližně)

    stejným počtem

    dokumentů

    – Nesnadné vytvoření

    + Efektivnější v

    případě

    nerovnoměrně

    rozloţených dok.

  • DBI010 - DIS - MFF UK

    Typy shluků

    • Nedisjunktní

    shluky

    • Jeden dokument můţe

    být zařazen ve více

    shlucích

  • DBI010 - DIS - MFF UK

    Typy shluků

    • Disjunktní

    shluky

    • Dokument nemůţe

    být ve více shlucích

  • DBI010 - DIS - MFF UK

    Typy shluků

    • Obecně nelze

    prostor pokrýt

    disjunktními

    koulemi

    • Je nutné uvaţovat

    spíše konvexní

    mnohostěny, kde

    dokument přísluší

    nejbliţšímu centru

  • DBI010 - DIS - MFF UK

    Typy shluků

    • Aproximace

    pomocí koulí

    určených centrem

    shluku a

    vzdáleností

    nejvzdálenějšího

    dokumentu v něm

  • DBI010 - DIS - MFF UK

    Vyhodnocení dotazu se shluky I

    • Dán dotaz q s minimální požadovanou

    podobností s– Pozn.: podobnost počítána skalárním součinem, vektory normalizované

    • Index rozdělen na k shluků

    (c1,r1), …, (ck,rk)– Pozn. poloměry jsou úhlové

    • Poloměr dotazu

    r = = arccos(s)

    s = cos()

    r=

    1 1

  • DBI010 - DIS - MFF UK

    • 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

    Vyhodnocení dotazu se shluky I

  • DBI010 - DIS - MFF UK

    Vyhodnocení dotazu se shluky II

    • Dán dotaz q s maximálním počtem

    požadovaných dokumentů x.

    • Index opět rozdělen na k shluků

    (c1,r1), …, (ck,rk)

    • Není poloměr dotazu

  • DBI010 - DIS - MFF UK

    Vyhodnocení dotazu se shluky II

    • Shluky se setřídí vzestupně

    podle rostoucí vzdálenosti

    centra shluku od dotazu, tedy

    dle hodnoty arccos(Sim(q,ci))

    • Lépe podle rostoucí vzdálenosti

    okraje shluku od dotazu, tedy

    dle hodnoty arccos(Sim(q,ci))-ri

    1. 2.

    2. 1.

  • DBI010 - DIS - MFF UK

    Vyhodnocení dotazu se shluky II

    • Shluky se setřídí

    vzestupně dle

    arccos(Sim(q,ci))-ritj. vzdálenosti

    okraje shluku od

    dotazu q

    x=7

    1.

    2.

    3.

    4.5.

  • DBI010 - DIS - MFF UK

    Vyhodnocení dotazu se shluky II

    • Nejbliţší shluk se

    ohodnotí

    x=7

  • DBI010 - DIS - MFF UK

    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

    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

    Víceúrovňové shlukování

    • Pokud je shluků

    hodně, je moţné je

    dále shlukovat do

    shluků druhé a

    dalších úrovní.

  • DBI010 - DIS - MFF UK

    Shlukovací metody

    • Kohonenovy mapy

    (SOM – self-organizing maps)

    – Pouţívané pro kategorizaci vstupů

    i v neuronových sítích bez učitele

    – Samoorganizující se struktura

    – Přizpůsobuje se hustotě dokumentů v oblasti

    – Přibliţně stejné počty dokumentů ve shlucích

  • DBI010 - DIS - MFF UK

    Kohonenovy mapy

    • Základem jsou centrální m-rozměrné body uspořádané do k-rozměrné mříţky

    – Obvykle k

  • DBI010 - DIS - MFF UK

    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é

    d

    c x

    cdcdcc xxxx 1

    cdcdcc

    1

  • DBI010 - DIS - MFF UK

    Kohonenovy mapy

    • Parametry 0 1 vyjadřují míru

    přizpůsobivosti systému.

    • Vhodné je, aby oba parametry s časem

    klesaly k nule

  • DBI010 - DIS - MFF UK

    Kohonenovy mapy

    • Mapa před adaptací na nový dokument

  • DBI010 - DIS - MFF UK

    Kohonenovy mapy

    • Mapa po adaptaci na nový dokument

  • DBI010 - DIS - MFF UK

    Kohonenovy mapy

    • Shluky jsou určeny centry mříţky.

    Do kaţdého shluku patří body,

    které mají

    k danému centru

    blíţe, neţ

    k jakémukoli jinému

    • Blízké body v mapě

    jsou blízké

    i v původním prostoru

    (ale ne nutně naopak)

  • DBI010 - DIS - MFF UK

    Kohonenovy mapy

  • DBI010 - DIS - MFF UK

    Kohonenovy mapy

    • Lze pouţít i pro shlukování termů/lemmat– matice indexu po sloupcích

    – místo m-rozměrného prostoru se tedy mapuje prostor n-rozměrný

    • Příklad: – mříţka 15*15 center

    – 7777 dokumentů(Lidové noviny 1994)

    – 13495 lemmat

    – 100000 iterací učení náhodně vybraným vektorem lemmatu

    • Vytvořené shluky lemmatC2,4

    burza, akcie, kupónový, cenný, papír, investor, objem, investiční, fond, hodnota, obchod

    C2,5vlna, privatizace, národní

    C3,6literární, spisovatel, literatura, nakladatelství, počátek, čtenář, dějiny, text, kniha, napsat

    C3,13Havel, Václav, prezident

    C4,13Klaus, premiér, ministr

    C6,14jeviště, komedie, filmový, scénář, publikum, festival, snímek, příběh, film, role

  • DBI010 - DIS - MFF UK

    Kohonenovy mapy2D mapa lemmat

    (rozvinutá 2D mříţka z předchozího příkladu)

    C 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

    1 patřit vést

    f irma

    celkový

    procento

    podnik

    zisk

    čas

    cesta

    řada

    přijít

    čtyři

    stát (verb.) výstavba

    stavba

    Lille-

    -hammer

    sportovní

    zlatý

    medaile

    olympijský

    vítěz

    závod

    podtitulek

    mistr

    titul

    MS

    mistrovství

    start

    světový

    2 znamenat platit obchodní

    banka

    činit

    trh

    milión

    koruna

    cena

    burza

    akcie

    kupónový

    cenný

    papír

    investor

    objem

    investiční

    fond

    hodnota

    obchod

    vlna

    privatizace

    národní

    dílo

    autor

    umění

    vydat

    1994

    ruka

    najít

    zůstat město městský metr sledovat šampionát

    ME

    kvalif ikace

    válka

    3 oblast

    současný

    deset

    sto

    tisíc

    částka

    zaplatit

    pět

    30

    peníz

    majitel

    50

    prodej

    výše

    žebříček literární

    spisovatel

    literatura

    naklada-

    -telství

    počátek

    čtenář

    dějiny

    text

    kniha

    napsat

    století

    život

    lidský

    pohled

    zdát

    znát

    poskytnout manželka komise

    předseda

    Havel

    Václav

    prezident

    bývalý

    úřad

    část

    4 poptávka

    nabídka

    značný

    měsíc rychlý

    změnit

    ztráta

    vývoj

    cíl

    šest

    hranice

    držet

    dovolit

    dostávat

    stav

    jednička

    tenista

    Open

    postoupit

    semifinále

    porazit

    turnaj

    f inále

    postup

    Američan

    úspěšný

    americký

    USA

    třetí

    skupina

    pracovat

    působit

    práce

    mladý

    vyjít

    starý

    pravda

    muž

    pocit

    cítit

    myslit

    mluvit

    udělat

    vidět

    rád

    životní

    prostředí

    mezi-

    -národní

    jednání

    jednat

    Klaus

    premiér

    ministr

    vztah

    názor

    období

    činnost

    ekonomika

    literatura

    sport

    politika

  • DBI010 - DIS - MFF UK

    Kohonenovy mapy

    Velikosti získaných shluků

    • Zaplněnost shluků termy zde příliš rovnoměrně nevyšla,

    směrem k okrajům hustota klesá

    Počet z t y

    x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Celkový součet

    1 1 2 2 2 3 2 1 2 3 5 2 3 1 29

    2 1 1 8 11 3 5 2 1 1 1 1 1 3 1 40

    3 2 2 7 4 1 10 3 3 1 1 2 3 2 1 42

    4 3 1 7 4 9 6 4 4 7 2 1 2 3 2 2 57

    5 4 2 15 10 12 11 8 5 3 3 3 2 4 3 85

    6 5 4 15 12 2 12 6 2 2 2 2 1 1 10 11 87

    7 9 7 12 12 3 15 4 22 9 2 2 2 1 6 3 109

    8 26 12 25 11 34 10 4 14 15 6 3 1 1 4 4 170

    9 81 47 23 19 30 18 2 4 3 1 2 1 2 1 234

    10 193 132 85 33 21 19 6 7 2 2 3 1 1 1 1 507

    11 204 346 349 190 84 50 26 12 2 3 1 1 1 1 6 1276

    12 572 481 320 459 272 166 30 6 3 3 2 2 2 1 2 2321

    13 329 122 3223 709 302 129 10 7 6 4 2 1 5 1 3 4853

    14 129 1062 291 383 103 38 98 17 15 5 1 2 2 1 5 2152

    15 362 163 533 186 121 94 40 17 4 3 3 2 2 2 1 1533

    Celkový součet 1920 2383 4915 2045 999 586 245 119 75 40