DBI010 - Dokumentografické Informační Systémy

Transkript

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