Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Dokumentografické
Informační Systémy
Slidy k přednášce NDBI010
KSI MFF UKhttp://www.ms.mff.cuni.cz/~kopecky/vyuka/dis/
Verze 10.05.05.13.20
http://www.ms.mff.cuni.cz/~kopecky/vyuka/dis/
DBI010 - DIS - MFF UK
Literatura (skripta)
• Dokumentografické informační systémy– Pokorný J., Snášel V., Kopecký M.:
• Nakladatelství Karolinum, UK Praha, 2005
– Pokorný J., Snášel V., Húsek D.:• Nakladatelství Karolinum, UK Praha, 1998
• Textové informační systémy– Melichar B.:
• Vydavatelství ČVUT, Praha, 1997
• Introduction to Information Retrieval– Christopher D. Manning, Prabhakar Raghavan and Hinrich
Schütze• Cambridge University Press, 2008
• http://informationretrieval.org/
DBI010 - DIS - MFF UK
Další odkazy
• Computer Algorithms - String Pattern
Matching Strategies,
– Jun Ichi Aoe,
• IEEE Computer Society Press 1994
• Concept Decomposition
for Large Sparse Text Data using Clustering
– Inderjit S. Dhillon, Dharmendra S. Modha
• IBM Almaden Research Center, 1999
DBI010 - DIS - MFF UK
Další odkazy (články)
• The IGrid Index: Reversing the Dimensionality Curse For
Similarity Indexing in High Dimensional Space
for Large Sparse Text Data using Clustering
– Charu C. Aggrawal, Philip S. Yu
• IBM T. J. Watson Research Center
• The Pyramid Technique: Towards Breaking the Curse of
Dimensionality
– S. Berchtold, C. Böhm, H.-P. Kriegel:
• ACM SIGMOD Conference Proceedings, 1998
DBI010 - DIS - MFF UK
Další odkazy (články)
• Affinity Rank: A New Scheme for Efficient Web Search– Yi Liu, Benyu Zhang, Zheng Chen, Michael R. Lyu, Wei-Ying Ma
• 2004
• Improving Web Search Results Using Affinity Graph– Benyu Zhang, Hua Li, Yi Liu, Lei Ji, Wensi Xi, Weiguo Fan,
Zheng Chen1, Wei-Ying Ma
• Efficient computation of pagerank– T.H. Haveliwala
• Technical report, Stanford University, 1999
DBI010 - DIS - MFF UK
Další odkazy (starší)
• Introduction to Modern Information
Retrieval
– Salton G., McGill M. J.:
• McGRAW-Hill 1981
• Výběr informací v textových bázích dat
– Pokorný J.:
• OVC ČVUT Praha 1989
Úvod do DIS
Přehled problematiky
měření informativnosti
Přednáška č. 1
DBI010 - DIS - MFF UK
Vznik DIS
• 50. léta 20. stol.
• Postupná automatizace postupů používaných v knihovnictví
• Nyní samostatná podčást IS– Faktografický IS
• Zpracování informací s definovanou vnitřní strukturou (nejčastěji v podobě tabulek)
– Dokumentografický IS• Zpracování informací v podobě textu v přirozeném jazyce
bez pevné vnitřní struktury
DBI010 - DIS - MFF UK
Práce s DIS
1. Zadání dotazu
2. Porovnání
3. Získání seznamu
odpovídajících
dokumentů
4. Ladění dotazu
5. Vyţádání dokumentu
6. Obdrţení textu
DIS
1
3
5
6
2
4
DBI010 - DIS - MFF UK
II)
Struktura DIS
I)
1
3
5
6
2
4
I) Systém zpřístupnění
dokumentů
• Vrací sekundární
informace
• Autor
• Název
• ...
II) Systém dodání
dokumentů
• Někdy není řešen
pomocí SW
DBI010 - DIS - MFF UK
Vyhodnocení dotazu
• Přímé porovnání
náročné na časDok1
Porovnání
Doki1
Dotaz
DBI010 - DIS - MFF UK
Vyhodnocení dotazu
• Nutné vytvoření modelu dokumentu
• Ztrátový proces,obvykle zaloţený naidentifikaci slov v dokumentech
• Výsledkem strukturovaná datavhodná pro porovnávání
Dok1
Indexace
X1
DBI010 - DIS - MFF UK
Vyhodnocení dotazu
• Dotaz se upraví do
odpovídající podoby
• Následně se
porovná
s modelem
dokumentů
Porovnání
Doki1X1
Dotaz
DBI010 - DIS - MFF UK
Předzpracování textu
• Vyhledávání probíhá nad vytvořeným modelem efektivněji, ale můţe pouţít jen informace obsaţené v modelu.
• Cílem je vytvořit model, který by zachoval co nejvíce informací, obsaţených v původním modelu.
• Problémem je řada nejednoznačností.
• Dosud neřešitelné nároky na encyklopedické i asociativní znalosti.
DBI010 - DIS - MFF UK
Porozumění textu
• Posloupnost slov v přirozeném jazyce.
• Kaţdé slovo zastupuje pro autora nějakou
představu, kterou v něm slovo vyvolá - význam.
• Tyto představy reprezentují reálné předměty.
...
DBI010 - DIS - MFF UK
Porozumění textu
• Synonymie slov
– Více slov můţe mít pro autora stejný význam
• krychle = kostka
• buldozer = nakladač
...
DBI010 - DIS - MFF UK
Porozumění textu
• Homonymie slov
– Jedno slovo můţe mít pro autora několik významů
• taška: střešní, nákupní
• koruna: platidlo, královská k., k. stromu
• třída: školní, kategorie v teorii mnoţin
• los: zvíře, poukázka ke slosování
...
DBI010 - DIS - MFF UK
Porozumění textu
• Homonymie slov
– Jedno slovo můţe pouţívat stejný tvar pro různé pády a další gramatické jevy (gramatická homonymie)
• kontroly: 1. p. m.č., 2. p. j.č.není zřejmé, zda se jedná o jednu, nebo více kontrol
– Jeden tvar slova můţe mít různý význam• plesy: podst. jm. ples, podst. jm. pleso
• žena: podst. jm. žena, sloveso hnát
• hnát: sloveso hnát, podst. jm. hnát
• tři: číslovka tři, sloveso třít
• pět: číslovka pět, sloveso pět
DBI010 - DIS - MFF UK
Porozumění textu
• Významy slov se mohou překrývat.
– Hierarchicky
• zvíře > kůň > hřebec
– Asociace
• kalkulátor ~ počítač ~ procesor
...
DBI010 - DIS - MFF UK
Porozumění textu
• Jednotlivá přiřazení jsou navíc závislá na subjektu, který dokument píše nebo čte.– Dva lidé mohou jednomu slovu přikládat zcela nebo jen
částečně jiný význam.
– Dva lidé si i pod stejným významem mohou představit jiný konkrétní předmět nebo mnoţinu předmětů.
• máma, pokoj, ...
• Výsledkem je situace, kdy dva různí čtenáři nemusí přečtením získatani stejnou informaci jako autor, ani stejnou informaci navzájem.
DBI010 - DIS - MFF UK
Porozumění textu
• Homonymie a nejednoznačnosti narůstají při přechodu od slov k větám.– Homonymie vlastních jmen na začátku věty
• Dohnal zvítězil. (Čtrnáctý zvítězil.)
• Plk. Dohnal předešel gen. Kvapila velmi výrazně.
– jedna, dvě, nebo tři věty?
– Homonymie spojky a v předmětu věty
• Funkce rezistoru a zesilovače v radiotechnice.(funkce rezistoru v radiotechnice) a (funkce zesilovače v radiotechnice)(funkce rezistoru) a (funkce zesilovače v radiotechnice)(funkce rezistoru) a (zesilovače v radiotechnice)
– Homonymie podmětu a předmětu
• Popílek přikryl sníh. – co leţí navrchu?
DBI010 - DIS - MFF UK
Porozumění textu
• Příklad české věty s více gramaticky moţnými významy– viz např. Podivné fungování gramatiky,
http://www.scienceworld.cz/sw.nsf/lingvistika
– věta „Ženu holí stroj“ můţe - podle volby přísudku ve větě - znamenat:
• Poháním stroj pomocí hole (hnát)
• Ţena pouţívá depilační přístroj (holit)
• Návod k nekonvenčnímu způsobu oblékání (strojit)
• … a další
http://www.scienceworld.cz/sw.nsf/lingvistika/8FA6EF6B0C859321C12571AF006308F3?OpenDocument&cast=1
DBI010 - DIS - MFF UK
Porozumění textu
• Příklad anglické věty s více gramaticky
moţnými významy
– viz např. Podivné fungování gramatiky,
http://www.scienceworld.cz/sw.nsf/lingvistika
– věta „Time flies like an arrow“ můţe - podle
volby přísudku ve větě - znamenat:
• Čas letí jako voda (fly)
• Časové mouchy/zipy mají rády šíp (like)
• … a další
http://www.scienceworld.cz/sw.nsf/lingvistika/8FA6EF6B0C859321C12571AF006308F3?OpenDocument&cast=1
DBI010 - DIS - MFF UK
Předzpracování textu
• Částečným řešením problému porozumění
textu je zahrnutí lingvistické analýzy
– Disambiguace
• Určení správného významu slova ve větě
– Na základě gramatiky (slovesa vs. podst. jm.)
– Na základě kontextu (komplikovanější).
» Tančila na Hasičském plese.
» Tančila na Štrbském plese.
DBI010 - DIS - MFF UK
Předzpracování textu
• Částečným řešením problému porozumění
textu je zahrnutí lingvistické analýzy
– Lemmatizace
• Přiřazení správného lemmatu jednotlivým slovům
– Základní tvar slova (1. p. j.č., infinitiv, ...)
– Slovní druh, osoba, číslo, čas, vid, ...
– Informace z větného rozboru, (podmět, předmět, ...)
DBI010 - DIS - MFF UK
Předzpracování textu
• Dalšími moţnosti, které lingvistika v různé
míře nabízí jsou
– Označování víceslovných spojení - kolokací
• Druhá světová válka, ...
– Zatím velmi problematické nahrazování zájmen
odpovídajícími podstatnými jmény
DBI010 - DIS - MFF UK
Přesnost a úplnost
• Výsledkem nejednoznačností ţádný existující DIS nedává ideální výsledky
• Po zobrazení odpovědi na dotaz lze určit následující
– Počet vrácených dokumentů Nv• O nich si DB myslí, ţe jsou relevantní, odpovídají dotazu
– Počet vrácených relevantních dok. Nvr• O nich si tazatel myslí, ţe uspokojují jeho poţadavky
– Počet všech relevantních dok. v DB Nr• Problematické u velkých DB
DBI010 - DIS - MFF UK
Přesnost a úplnost
• Dva DIS mohou vrátit
na shodný dotaz různé
odpovědi, které se
nemusí překrývat ani v
jediném vráceném
dokumentu
Jak porovnat kvalitu odpovědí navzájem?
Dokumenty v databázi
Relevantní
dokumenty
Vrácené
v
DIS1
Vrácené
v
DIS2
DBI010 - DIS - MFF UK
Přesnost a úplnost
• Dva tazatelé mohou
mít při poloţení
shodného dotazu
různý názor na
relevanci vrácených
dokumentů
Jak vyhovět subjektivnímu názoru
tazatelů?
Dokumenty v databázi
Relevantní
Vrácené
dok.
Relevantní
DBI010 - DIS - MFF UK
Přesnost a úplnost
• Kvalita výsledné mnoţiny dokumentů se měří na
základě těchto čísel
– Přesnost (Precision)
• P = Nvr / Nv
• Pravděpodobnost, ţe dokument zařazený v odpovědi je
skutečně relevantní
– Úplnost (Recall)
• R = Nvr / Nr
• Pravděpodobnost, ţe skutečně relevantní dokument je zařazený
v odpovědi
DBI010 - DIS - MFF UK
Přesnost a úplnost
• Koeficienty jsou opět závislé na
subjektivním názoru tazatele
• Dokument vrácený na výstupu můţe
uspokojovat poţadavky dvou uţivatel, kteří
poloţili stejný dotaz, různou měrou.
DBI010 - DIS - MFF UK
Přesnost a úplnost
• V ideálním případě
– P=R=1
– V odpovědi jsou zařazeny právě a pouze všechny relevantní dokumenty
• V běţném případě
– Odpověď na první verzi dotazu není ani přesná, ani úplná
00
1
1
Optimum
Počáteční odpověď
DBI010 - DIS - MFF UK
Přesnost a úplnost
• Ladění dotazu
– Postupná modifikace
dotazu s cílem zvýšit
kvalitu odpovědi
• Teoreticky je sice
moţné dosáhnout
optima, ale …
00
1
1
Optimum
R
P
DBI010 - DIS - MFF UK
Přesnost a úplnost
• … vlivem víceznačností jsou v praxi oba koeficienty na sobě nepřímo závislé,tj. P*R konst. < 1– Při snaze zvýšit P se na
výstup dostane méně relev. dokumentů.
– Při snaze zvýšit R se na výstup dostane s více relev. dok. i mnohem více těch nerelevantních.
00
1
1
Optimum
R
P
DBI010 - DIS - MFF UK
Kritérium predikce
• Při formulaci dotazů je potřebné uhádnout, které termy (slova) byly v dokumentu autorem pouţity pro vyjádření dané myšlenky
– Problémy m.j. způsobují
• Synonyma (autor mohl pouţít synonymum, které si tazatel při formulaci dotazů ani nemusí neuvědomí)
• Překrývající se významy slov
• Opisy jedné situace jinými slovy
DBI010 - DIS - MFF UK
Kritérium predikce
• Částečným řešením je zařazení tezauru,
který obsahuje
– Hierarchie slov a jejich významů
– Synonyma slov
– Asociace mezi slovy
• Tazatel můţe tezaurus vyuţít při formulaci
svých dotazů
DBI010 - DIS - MFF UK
Kritérium predikce
• Při ladění dotazů má uţivatel tendenci postupovat
konzervativně
– V dotazu zůstávají často ty jeho části, které uţivatele
napadly na začátku a mění se jen podruţné části, které
nekvalitní výsledek nemusí nijak zásadně ovlivnit
• Vhodné je uţivateli pomoci s odstraněním
nevhodných částí dotazu, které nepopisují
relevantní dokumenty a naopak s přidáváním
formulací, které relevantní dokumenty popisují
DBI010 - DIS - MFF UK
Kritérium maxima
• Tazatel obvykle není schopen (nebo ochoten)
procházet příliš mnoho dokumentů do té míry, aby
se rozhodl, zda jsou pro něj relevantní nebo ne
• Obvykle 20-50 podle velikosti
Potřeba nejen dokumenty rozlišovat na
odpovídající/neodpovídající dotazu, ale řadit je na
výstupu podle míry předpokládané relevance
DBI010 - DIS - MFF UK
Kritérium maxima
• V důsledku kritéria maxima se při ladění dotazu uţivatel obvykle snaţí zvýšit přesnost
– Malé mnoţství dokumentův odpovědi, obsahující co největší poměr relevantních dokumentů
• Některé oblasti pouţití vyţadují co nejvyšší přesnost i úplnost
– Právnictví
„lepší“
Vr.Rel.
„horší“Vr.
Rel.
Přesné vyhledávání vzorků
DBI010 - DIS - MFF UK
Proč vyhledávat vzorky textu
• Při tvorbě indexu dokumentů či dotazu– Pro zahrnutí pouze určité, předem dané
mnoţiny slov (lemmat) z dokumentu při tzv. řízené indexaci
– Pro vynechání předem dané mnoţiny slov (lemmat) jako jsou spojky, částice, zájmena a podobně
• Při zobrazování sekundárních a primárních dokumentů v odpovědi– Nalezení a zvýraznění slov (lemmat) pouţitých v
dotazu
• …
DBI010 - DIS - MFF UK
Algoritmy dle předzpracování
I - Triviální algoritmus(Naivní algoritmus)(Algoritmus hrubé síly)
II - Ostatní (vhodné pro DIS)
Dále členěné dle
• Počtu vyhledávaných vzorků
– 1, N,
• Směru hledání– Sousměrné
– Protisměrné
Kategorie dle předzpracování
Vzorek
NE ANO
Text NE I. II.
ANO III. IV.
DBI010 - DIS - MFF UK
Algoritmy II
• Sousměrné porovnávají vzorek zleva doprava, tj. souhlasně se směrem procházení celého dokumentu.
• Protisměrné obráceně
Podkategorie skupiny II
Směr
Sousměrné Protisměrné
Počet 1 KMP BM
vzorků N AC CW
nekon. KA 2CKAS
Přesné vyhledávání vzorků
Hledání jednoho vzorku
v textu
DBI010 - DIS - MFF UK
Triviální algoritmus
a b c c b a b c a b b c a a b c c b a b c b b b a b c c
a b c c b a b c b b b
a b c c b a b c b b b
Text
Před pos.
Po posunu
• Délka textu t ozn. m, délka vzorku v ozn. n
• Při neshodě i-té pozice textu s j-tou pozicí vzorku– Posun vzorku o jednu pozici doprava, prohledávání od začátku
vzorku
• Časová sloţitost je v průměrném případě o(m*n), např. pro hledání „an-1b“ v „am-1b“
• Pro přirozený jazyk průměrně m*konst operací, tedy o(m)
konst je malé číslo(jednotky),závislé na jazyku
DBI010 - DIS - MFF UK
Přednáška č. 2
Knuth-Morris-Prattův algoritmus
• Sousměrné vyhledání jednoho vzorku
• Oproti naivnímu přístupu eliminuje
porovnávání jiţ jednou zkontrolované části
textu
• Vzorek je posunut co nejméně tak, aby část,
která zůstane pod jiţ zkontrolovanou částí,
s ní byla shodná
DBI010 - DIS - MFF UK
KMP algoritmus
a b c c b a b c a b b c a a b c c b a b c b b b a b c c
a b c c b a b c b b b
a b c c b a b c b b b
Text
Před pos.
Po posunu
Triviální algoritmus
a b c c b a b c a b b c a a b c c b a b c b b b a b c c
a b c c b a b c b b b
a b c c b a b c b b b
Text
Před pos.
Po posunu
KMP
DBI010 - DIS - MFF UK
KMP algoritmus
• Před pozicí neshody zůstane vlastní prefix
jiţ prohledané části vzorku
• Musí být shodný s postfixem této části
• Nejdelší takový určuje nejmenší posun
a b c c b a b c a b b c a a b c c b a b c b b b a b c c
a b c c b a b c b b b
a b c c b a b c b b b
Text
Před pos.
Po posunu
DBI010 - DIS - MFF UK
KMP algoritmus
a b c c b a b c a b b c a a b c c
a b c c b a b c b b b
a b c c b a b c b b b
a b c c b a b c b b b
Text
Před posunem
Po posunu
a b c c b a b c b b b
a b c c b a b c b b b
a b c c b a b c b b b
a b c c b a b c b b b
a b c c b a b c b b b
DBI010 - DIS - MFF UK
KMP algoritmus
• Pokud– Vzorek v se na pozici j neshoduje s textem t
– Nejdelší vlastní prefix zkontrolované části vzorku, rovnajícíse postfixu zkontrolované části má délku k
• Potom– Po posunu zůstane k znaků vzorku před pozicí porovnávání
– Vzorek se začne porovnávat od pozice k+1
• Opravné pozice pro chyby na jednotlivých pozicích jjsou uloženy v pomocném poli P
• V tomto případě P[j] = k+1
DBI010 - DIS - MFF UK
begin {KMP}
m := length(t); n := length(v);
i := 1; j := 1;
while (i n)
then {nalezen na pozici i-j+1}
else {nenalezen}
end; {KMP}
KMP algoritmus
DBI010 - DIS - MFF UK
Určení pole P pro KMP
• P[1] = 0
• Pokud známe opravy pro pozice 1 .. j-1,
je snadné spočítat opravu pro pozici j
– P[j-1] obsahuje opravu pro pozici j-1.
Tzn., že P[j-1]-1 znaků ze začátku vzorku
se shoduje se stejným počtem znaků před
j-1 ní pozicí ve vzorku
DBI010 - DIS - MFF UK
Určení pole P pro KMP
a b c c b a b c b b bVzorek
0 1 1 1 1 1 2 ? P
1 2 3 4 5 6 7 8 9 1011
DBI010 - DIS - MFF UK
Určení pole P pro KMP
• Pokud se také j-1 ní pozice vzorku
shoduje s P[j-1] ní pozicí, může se
prefix prodloužit a tedy správná hodnota
pro P[j] je o jedna vyšší než předchozí.
DBI010 - DIS - MFF UK
Určení pole P pro KMP
a b c c b a b c b b bVzorek
0 1 1 1 1 1 2 3 P
1 2 3 4 5 6 7 8 9 1011
DBI010 - DIS - MFF UK
Určení pole P pro KMP
• Pokud se j-1 ní a P[j-1] ní pozice vzorku
neshodují, došlo by po chybě a
následném posunu vzorku k situaci, že
nebude souhlasit znak před pozicí na
které se bude pokračovat
• Pro chybu na této předchozí pozici
je však již známa oprava
(čísla P[1] .. P[j-1] jsou již spočtena)
DBI010 - DIS - MFF UK
Určení pole P pro KMP
• Je nutné sledovat opravy počínaje j-1 ní
pozicí tak dlouho, dokud se j-1 ní pozice
vzorku neshoduje s pozicí, na kterou
odkaz směřuje, nebo dokud nedojdeme
na konec odkazů (hodnota 0)
DBI010 - DIS - MFF UK
Určení pole P pro KMP
a b c c b a b c b b bVzorek
0 1 1 1 1 1 2 3 4 ? P
1 2 3 4 5 6 7 8 9 1011
DBI010 - DIS - MFF UK
Určení pole P pro KMP
a b c c b a b c b b bVzorek 0 1 1 1 1 1 2 3 4 ? P
1 2 3 4 5 6 7 8 9 1011
a b c c b a b c b b bPosun pro P[j]=P[j-1]+1
a b c c b a b c b b bPosun pro chybu na 4. pozici
a b c c b a b c b b bPosun pro chybu na 1. pozici
DBI010 - DIS - MFF UK
begin
p[1] := 0;
n := length(v); j := 2;
while (j
DBI010 - DIS - MFF UK
KMP algoritmus
• Časová složitost algoritmu je o(m+n).
• V textu se nikdy nevrací.
• Při posunutí vzorku znovu porovnává
stejnou pozici, ale posunů vzorku
nemůže být více než o(m).
• Stejně tak časová složitost
předzpracování je o(n).
DBI010 - DIS - MFF UK
Optimalizace KMP
• Pomocné pole P je moţné optimalizovat
• Pokud je znak v[j] shodný s v[P[j]],dostal by se pod kolizní pozici v textu posunem znak shodný s tím, který kolizi způsobil.
• Opravu je moţné zohlednit ve druhém poli P’s hodnotou P’[j]=P’[P[j]], jinak P’[j]=P[j]
• Pole P[j] není potom přivlastním hledání potřeba
a b c c b a b c b b b
0 1 1 1 1 1 2 3 4 1 1
V
P
0 1 1 1 1 1 1 1 4 1 1P’
DBI010 - DIS - MFF UK
Boyer-Moorův algoritmus
• Protisměrné vyhledání jednoho vzorku s
předzpracováním vzorku
– vzorek přikládá k textu postupně zleva
doprava
– znaky vzorku se porovnávají zprava doleva
DBI010 - DIS - MFF UK
Boyer-Moorův algoritmus
• Pokud nedojde ke shodě na poziciV[n-j] vzorku s textem na pozici T[i-j]=x– n je délka vzorku,
– i je pozice konce vzorku v textu,
– j=0..n-1
– xX, X je abeceda
• Vzorek se posune o SHIFT[n-j,x] znaků doprava
• Začne se znovu od j=0, tedy od konce
DBI010 - DIS - MFF UK
Boyer-Moorův algoritmus
• Existuje více definic pro SHIFT[n-j,x]
• Varianta 1: Pomocné pole SHIFT[0..n-1,X] je
pro pozici ve vzorku a znak x abecedy X
definováno následovně:
– Co nejmenší posun takový, aby se pod právě
porovnávanou pozici v textu dostal odpovídající
znak x vzorku.
– Pokud se znak, který kolizi způsobil, ve zbývající
levé části vzorku nevyskytuje, posune se vzorek
těsně za testovanou pozici.
DBI010 - DIS - MFF UK
Boyer-Moorův algoritmus (1)
• Časová sloţitost je
v průměrném případě o(m*n),
např. pro hledání „ban-1“ v „am-nban-1“
• Pro velké abecedy
a vzorky s malým počtem různých znaků
(např. přirozené jazyky)
je průměrná časová sloţitost o(m/n)
DBI010 - DIS - MFF UK
Boyer-Moorův algoritmus (1)
• Příklad vyhledávání:
T R O P I C K Ý O V O C EM M EJ AI A N N A S .
AA N N A SAA N N A S
AA N N A SAA N N A S
AA N N A SAA N N A S
DBI010 - DIS - MFF UK
Boyer-Moorův algoritmus (1)
• Definice SHIFT pro slovo ’ANANAS’
– Plné šipky znázorňují úspěšné porovnání
– Dvojité znázorňují posun koncového znaku
na místo počátečního
– Neuvedené znamenají posun za kolizní pozici
SANANASANANA
ANANA
N
DBI010 - DIS - MFF UK
Boyer-Moorův algoritmus (1)
• Pro úsporu místa x{‘A’,’N’,’S’,’X’}– ‘X‘ zastupuje všechny znaky nevyskytující se ve vzorku
• Hodnoty s „+“ označují velikost posunu
• Hodnoty bez „+“ označují novou hodnotu j
hodnota j ‘A‘ ‘N‘ ‘S‘ ‘X‘
0 +1 +2 1 +6
1 2 +1 +5 +5
2 +1 3 +4 +4
3 4 +1 +3 +3
4 +1 5 +2 +2
5 6 +1 +1 +1
6 vzorek byl úspěšně nalezen
DBI010 - DIS - MFF UK
Porovnání na umělém příkladu
Text ('a'rnd(200)'b ')1000
Velikost 100 KB
#slov 1 000
#různých slov 200
DBI010 - DIS - MFF UK
Porovnání na umělém příkladu
Text ('a'rnd(200)'b ')1000
Velikost 100 KB
#slov 1 000
#různých slov 200
#porovnání - Triv. 24 128 586
DBI010 - DIS - MFF UK
Porovnání na umělém příkladu
Text ('a'rnd(200)'b ')1000
Velikost 100 KB
#slov 1 000
#různých slov 200
#porovnání - Triv. 24 128 586
#porovnání - KMP 885 747 3,7%
DBI010 - DIS - MFF UK
Porovnání na anglickém textu
Slova
Text Anglický
Velikost 130 KB
#vzorků 18 075
#různých vzorků 1 570
Pozn:
různý vzorek nalezen poprvé aţ na své původní pozici
DBI010 - DIS - MFF UK
Porovnání na anglickém textu
Slova
Text Anglický
Velikost 130 KB
#vzorků 18 075
#různých vzorků 1 570
#porovnání - Triv. 256 799 832
DBI010 - DIS - MFF UK
Porovnání na anglickém textu
Slova
Text Anglický
Velikost 130 KB
#vzorků 18 075
#různých vzorků 1 570
#porovnání - Triv. 256 799 832
#porovnání - KMP 255 942 030 99,7%
DBI010 - DIS - MFF UK
Porovnání na anglickém textu
Slova
Text Anglický
Velikost 130 KB
#vzorků 18 075
#různých vzorků 1 570
#porovnání - Triv. 256 799 832
#porovnání - KMP 255 942 030 99,7%
#porovnání - BM 50 114 658 19,5%
DBI010 - DIS - MFF UK
Porovnání na anglickém textu
Slova Dvojslova
Text Anglický Anglický
Velikost 130 KB 130 KB
#vzorků 18 075 9 038
#různých vzorků 1 570 4 395
#porovnání - Triv. 256 799 832 433 721 058
#porovnání - KMP 255 942 030 99,7% 430 220 025 99,2%
#porovnání - BM 50 114 658 19,5% 52 046 084 12,0%
DBI010 - DIS - MFF UK
Porovnání na anglickém textu
Slova Dvojslova
Text Anglický Anglický Nárůst Nárůst
Velikost 130 130 na vzorek na vzorek
#vzorků 18 075 9 038 relativně
#různých 1 570 4 395 ke KMP
Triv. 256 799 832 433 721 058 3,3777 1,0048
KMP 255 942 030 430 220 025 3,3617 1,0000
BM 50 114 658 52 046 084 2,0770 0,6178
*)
• Vzhledem k linearitě KMP můţeme předpokládat, ţe kaţdý z dvouslovných vzorků se našel v průměru 3,3617 krát dále od začátku textu neţ u vzorků jednoslovných
• BM i při 3,3617 krát větší vzdálenosti spotřeboval jen 2,0770 krát větší počet operací
• Na prohledání stejně velkého objemu textu tedy potřebuje při dvojnásobném prodlouţení vzorků jen 61,78% operací
DBI010 - DIS - MFF UK
Boyer-Moorův algoritmus (2)
• Jiná – efektivnější – varianta BM
• zaloţena na dvou jednorozměrných polích P1 a P2 místo jednoho dvojrozměrného
• P1 obsahujexX posun, který pod kolizní pozici zarovná poslední výskyt znaku x ve vzorku a nastaví pozici porovnání na konec vzorku. Pokud se x ve vzorku nevyskytuje, je tedy P1[x] rovno délce vzorku.
DBI010 - DIS - MFF UK
Boyer-Moorův algoritmus (2)
• P2 obsahuje pro kaţdou pozici j ve vzorku délku nejmenšího moţného posunu, která pod jiţ úspěšně porovnanou příponu vzorku na pozicích j+1 aţ m zarovná shodný podřetězec vzorku.
• Pokud se nejpravější výskyt podřetězce patj+1…patm nachází na pozici nvp(j), potomP2[j] = m+1 - nvp(j).
• Pokud se podřetězce patj+1…patm ve vzorku nenachází, hledá se nejdelší předpona vzorku shodná s příponou podřetězce patj+1…patm
DBI010 - DIS - MFF UK
Boyer-Moorův algoritmus (2)
• Posun shift(j, x) je definován výrazem
max(P1[x],P2[j])
– Nemá cenu zarovnat kolizní znak, pokud se se
vzorkem neshoduje zkontrolovaná část textu a
naopak
DBI010 - DIS - MFF UK
Boyer-Moorův algoritmus (2)
a b c c b a b ca b b c a b b a c b b a b c b b a b c c
b b a cb b b
Text
Před pos.
Po posunu
BM(2)
ca b b
b b a c b bca b b b
a b c c b a c b b c a b b a c b b a b c b b a b c c
b b a c b b
Text
Před pos.
Po posunu
BM(2)
c b
ba
ba b
b b a c b bc b ba b
DBI010 - DIS - MFF UK
Boyer-Moorův algoritmus (2)
• procedure InitBM(const pat: string; var P1: ShiftArray1; var P2: ShiftArray2)var m, x, k, l: integer; KMP: KmpArray; NVP: NvpArray;begin {nejprve zkonstruujeme pole P1}m := length(pat); for x := 1 to ALPHABET_SIZE do P1[x] := m;for j := 1 to m do P1[pat[j]] := m-j; {oprav posun pro znak pat[j]}{nyní zkonstruujeme postupně pole P2}for j := 1 to m do NVP[j] := j-m+1;KMP[m] := m+1; j := m-1; {analogie KMPInit, zrcadlově převrácená} while (j > -m) do begink := j+1; l := k;repeatl := KMP[l];
until (l = m+1) or (l
DBI010 - DIS - MFF UK
Boyer-Moorův algoritmus (2)
• function ShiftBM(const j: integer; const x: char): integerbeginShiftBM := max(P1[x],P2[j]);
end {ShiftBM};
• procedure BMSearch(const txt: string; const pat: string);var m, n, i, j: byte; nalezeno: boolean;{2} P1: ShiftArray1; P2: ShiftArray2;beginm := length(pat); n := length(txt); InitBM(pat,P1,P2); i := m;while i 0) and (txt[i] = pat[j]) do begindec(i); dec(j); {úspěšné porovnání jednoho znaku}
end;if j = 0 thenbeginReportMatchAtPosition(i+1); i := i+1+m; {posun vzorku o jednu pozici}
endelsei := i+BMShift(j,x); {posun vzorku + skok na konec vzorku}
end {while};end {BMSearch};
DBI010 - DIS - MFF UK
FS algoritmus (modifikace BM)
Autoři: Jang-Jon Fan a Keh-Zih Su
Kombinace zpětného prohledávání s KMP
Posun delta při neshodě V[j] s T[i], vzorek V[1..n]
• delta(n,x) = n, pokud x není ve vzorku= n-max{k | V[k]=x}
• delta(j,x), j
DBI010 - DIS - MFF UK
FS algoritmus
a b c c b a b ca b b c a b b a c b b a b c b b a b c c
b b a cb b b
Text
Před pos.
Po posunu
FS
ca b b
b b a c b bca b b b
a b c c b a c b b c a b b a c b b a b c b b a b c c
b b a c b b
Text
Před pos.
Po posunu
FS
c b
ba
ba b
b b a c b bc b ba b
DBI010 - DIS - MFF UK
Porovnání algoritmů
Bez předzprac. S předzpracováním vzorku
protisměrnýsousměrný
timemax o(m*n) o(m+n) o(m*n)
timeavg o(m*n) o(m+n) o(m*n)
timeavg
(přir. jazyk)o(m) o(m+n) o(m/n)
Přesné vyhledávání vzorků
Hledání konečného počtu vzorků
v textu
DBI010 - DIS - MFF UK
Algoritmus Aho-Corrasickové
• Sousměrné vyhledání více vzorků současně
• Rozšíření KMP algoritmu
– Předzpracování vzorků
– Lineární průchod textem
• Časová sloţitost o(m+ni), kde
m je délka textu
ni je délka i-tého vzorku
DBI010 - DIS - MFF UK
A-C algoritmus
• Text T
• Mnoţina vzorků
V={V1, V2, …, Vk}
• Vyhledávací stroj
S = (Q, X, q0, g, f, F)
• Q mnoţina stavů
• X abeceda
• q0Q počáteční stav
• g: Q x X Q (go)
dopředná funkce
• f: Q Q (fail)
zpětná funkce
• F Q mnoţina
koncových stavů
DBI010 - DIS - MFF UK
A-C algoritmus
• Stavy mnoţiny Q
reprezentují všechny
prefixy všech vzorků
• Stav q0 reprezentuje
prázdný prefix
• g(q,x) = qx,
pokud je qxQ
• Jinak g(q0,x)=q0
• Jinak g(q,x)
nedefinováno
• f(q) pro qq0 je
rovna nejdelšímu
vlastnímu postfixu q v
mnoţině Q
|f(q)|
DBI010 - DIS - MFF UK
A-C algoritmus
• Při vyhledávání se vyuţívá všude
definovaná přechodová funkce
(q,x): QxXX
– (q,x) = g(q,x), pokud g(q,x) definována
– (q,x) = (f(q),x)
• Korektní definice, protože
|f(q)| - vzdálenost f(q) od počátečního
stavu - je menší než |q| a g(q0,x) je vždy
definována.
DBI010 - DIS - MFF UK
A-C algoritmus
• Konstrukce f dle |q|,
tedy dle vzdálenosti
stavu od počátku
• Pro q0 není třeba
funkci definovat
• Pro |q|=1 je nejdelší
vlastní postfix
prázdný, tedy f(q)=q0
• f(qx)=f(g(q,x))
= (f(q),x)
• Při hledání hodnoty
zpětné funkce ve stavu
qx, do kterého se
přechází z q znakem x,
je nutné se vrátit do q,
přejít do f(q) a poté
vpřed přes znak x
DBI010 - DIS - MFF UK
A-C algoritmus
• Příklad pro V={”he”,”her”,”she”}, funkce g
e rh
s
h e
X\{h,s}
"h" "he" "her"
""
"s" "sh" "she"
DBI010 - DIS - MFF UK
A-C algoritmus
• Příklad pro V={”he”,”her”,”she”}, funkce f
e rh
s
h e
X\{h,s}
"h" "he" "her"
""
"s" "sh" "she"
DBI010 - DIS - MFF UK
A-C algoritmus
• Detekce všech vzorků, včetně těch
obsaţených uvnitř jiných:
– Buďto pro kaţdý stav q předem sestrojíme
seznam všech detekovaných vzorků průchodem
seznamu stavů dosaţitelných z q přes zpětnou
funkci, tedy stavů f i(q), i>=0
– Nebo při vstupu do q projdeme seznam
dosaţitelných stavů během vyhledávání
DBI010 - DIS - MFF UK
function delta(q:stavy; x: abeceda):stavy;begin {delta}while g[q,x] = fail do q := f[q];delta := g[q,x];
end; {delta}begin {A-C}q := 0;for i := 1 to length(t) do beginq := delta(q,t[i]); vypis(q);{výpis vzorků končících znakem t[i]}
end; {for}end; {A-C}
A-C algoritmus – funkce delta
DBI010 - DIS - MFF UK
KMP vs. A-C pro 1 vzorek
• Shodné algoritmy s rozdílným popisem
• j (~ porovnávaná pozice)
• P[1]=0
• P[j]=k
• qj-1 (~ # porovnaných pozic)
• g(q0,*)=q0
• f(qj-1)=qk-1
aV b c c b a b c b b b
0P 1 1 1 1 1 2 3 4 1 1
DBI010 - DIS - MFF UK
Algoritmus
Commentz-Walterové
• Protisměrné vyhledání více vzorků
současně
• Kombinace B-M a A-C algoritmů
• Průměrná časová sloţitost
(pro přirozené jazyky)
o(m/min(ni)), kde
m je délka textu
ni je délka i-tého vzorku
DBI010 - DIS - MFF UK
C-W algoritmus
• Text T
• Mnoţina vzorků
V={V1, V2, …, Vk}
• Vyhledávací stroj
S = (Q, X, q0, g, f, F)
– Q mnoţina stavů
– X abeceda
– q0Q počáteční stav
– g: Q x X Q (go)
dopředná funkce
– f: Q Q (fail)
zpětná funkce
– F Q mnoţina koncových
stavů
DBI010 - DIS - MFF UK
C-W algoritmus
• Stavy mnoţiny Q
reprezentují všechny
postfixy všech vzorků
• Stav q0 reprezentuje
prázdný postfix
• g(q,x) = xq,
pokud je xqQ
• f(q) pro qq0 je
rovna nejdelšímu
vlastnímu prefixu q v
mnoţině Q
|f(q)|
DBI010 - DIS - MFF UK
C-W algoritmus
• Dopředná funkce
s h e
“e““he““she“
h e
r
“r““er““her“
DBI010 - DIS - MFF UK
C-W algoritmus
• Zpětná funkce
s h e
“e““he““she“
h e
r
“r““er““her“
DBI010 - DIS - MFF UK
C-W algoritmus
• LMIN = min(ni)délka nejkratšího vzorku
• h(q) = |q|vzdálenost q od počátku
• char(x)nejmenší hloubka stavu do kterého se přechází přes x
• pred(q)předchozí stav stavu q,tj. ten, který reprezentujeo jedna kratší postfix
• Pokud g(q,x) nedef., posunou se vzorky o shift(q,x) pozic doprava a začne se stavem q0
• shift(q,x)=min(max(shift1(q,x),shift2(q)),shift3(q))
DBI010 - DIS - MFF UK
C-W algoritmus
• shift1(q,x) = char(x)-h(q)-1, pokud > 0
• shift2(q)
= min({LMIN}{h(q’)-h(q), f(q’)=q})
• shift3(q0) = LMIN
• shift3(q)
= min({shift3(pred(q))}
{h(q’)-h(q), k:fk(q’)=q q’F})
DBI010 - DIS - MFF UK
C-W algoritmus
• shift1(q,x) – zarovnání kolizního znaku
char(’y’)-h(’kolo’)-1=8-4-1=3
m ky o l o g . . .. . . m ky o l o g . . .. . .
+3
lokoo
gol
amo zlok
olo vkoS
arv tolok
uiz mánmyg
lokoo
gol
amo zlok
olo vkoS
arv tolok
uiz mánmyg
DBI010 - DIS - MFF UK
C-W algoritmus
• shift2(q) – zarovnání zkontrolované části
m ky o l o g . . .. . . m ky o l o g . . .. . .
+1
lokoo
gol
amo zlok
olo vkoS
arv tolok
uiz mánmyg
lokoo
gol
amo zlok
olo vkoS
arv tolok
uiz mánmyg
DBI010 - DIS - MFF UK
C-W algoritmus
• shift3(q) – zarovnání (obecně postfixu)
zkontrolované části bez nutnosti
pouţít kolizní znak
m ky o l o g . . .. . . m ky o l o g . . .. . .
+2
lokoo
gol
amo zlok
olo vkoS
arv tolok
uiz mánmyg
lokoo
gol
amo zlok
olo vkoS
arv tolok
uiz mánmyg
DBI010 - DIS - MFF UK
FS vs. BM vs. CW pro 1 vzorek
• Ne zcela shodné algoritmy
– FS (+5) není horší neţ BM (+1)• FS zarovnává kolizní znak spolu s prozkoumanou částí,
BM jen kolizní znak
– FS (+5) není horší neţ CW (+4)• FS zarovnává kolizní znak spolu s prozkoumanou částí,
CW jen jednu z nich
– CW (+4) není horší neţ BM (+1)• V BM je zarovnání dle kolizního znaku lépe definováno
(využívá i pozici kolize), ale tato výhoda se oproti CW pro jeden vzorek neprosadí
aab... . . .aacbaab a
aab... . . .aacbaab a
aab... . . .aacbaab a
b... . . .c.b . b
b
b
Přesné vyhledávání vzorků
Hledání nekonečného počtu vzorků
v textu
Přednáška č. 3
DBI010 - DIS - MFF UK
Regulární výrazy a jazyky
• Regulární výraz R
• Atomické výrazy–
–
– a, a X
• Operace– U.V – zřetězení
– U+V – sjednocení
– Vk = V.V…V
– V* = V0+V1+V2+…
– V+ = V1+V2+V3+…
• Hodnota výrazu h(R)
– prázdný jazyk
– {} jen prázdné slovo
– a, a X
– {u.v|uh(U) vh(V)}
– h(U)h(V)
DBI010 - DIS - MFF UK
Vlastnosti regulárních výrazů
• 1) U+(V+W) = (U+V)+W
• 2) U.(V.W) = (U.V).W
• 3) U+V = V+U
• 4) (U+V).W = (U.W)+(V.W)
• 5) U.(V+W) = (U.V)+(U.W)
• 6) U+U = U
• 7) .U = U
• 8) .U =
• 9) U+ = U
• 10) U* = +U*.U = (+U)*
DBI010 - DIS - MFF UK
Konečný automat
• K = ( Q, X, q0, , F )
– Q je množina stavů
– X je vstupní abeceda
– q0 Q je počáteční stav
– : Q x X Q je přechodová funkce
– F Q je množina koncových stavů.
DBI010 - DIS - MFF UK
Konečný automat
• Konfigurace KA
– (q,w) Q x X*
• Přechod KA
– relace (Q x X*) x (Q x X*)
– (q,aw) (q’,w) (q,a) = q’
• Automat přijímá slovo w
(q0, w)* (q,), qF
DBI010 - DIS - MFF UK
Nedeterministický
konečný automat
• a) standardně K = ( Q, X, q0, , F )
b) rozšíření K = ( Q, X, S, , F )
– Q je množina stavů
– X je vstupní abeceda
– q0 Q je počáteční stav
S Q je množina počátečních stavů
– : Q x X P(Q) je přechodová funkce
– F Q je množina koncových stavů
DBI010 - DIS - MFF UK
Nedeterministický
konečný automat
• NKA pro{”he”, ”her”, ”she”}
– S={1,4,8}
– F={3,7,11}
– S={1}
– F={3,4,7}
h e
h e r
s h e
1 2 3
4 5 6 7
8 9 10 11
*
*
*
h e r
h e
1 2 3 4
5 6 7
*
s
DBI010 - DIS - MFF UK
Převod NKADKA
• K=(Q, X, S, , F)
• K’=(Q’, X, q’0, ‘, F‘)
• Q’ = P(Q)
• X
• q’0 = S
• ‘( q’, x)
= (q, x), qq’
• F‘ = {q’Q’q’F}
DBI010 - DIS - MFF UK
Převod NKADKA
povolena mnoţina poč. stavů
• Tabulkou, jen dosaţitelné stavy
přechody
do stavu 1
neuvedeny
h e
h e r
s h e
1 2 3
4 5 6 7
8 9 10 11
*
*
*
stav ozn. e h r s x
{1,4,8} 1 {1,4,8} {1,2,4,5,8} {1,4,8} {1,4,8,9} {1,4,8}
{1,2,4,5,8} 2 {1,3,4,6,8} {1,2,4,5,8} {1,4,8} {1,4,8,9} {1,4,8}
{1,4,8,9} 3 {1,4,8} {1,2,4,5,8,10} {1,4,8} {1,4,8,9} {1,4,8}
{1,3,4,6,8} 4 {1,4,8} {1,2,4,5,8} {1,4,7,8} {1,4,8,9} {1,4,8}
{1,2,4,5,8,10} 5 {1,3,4,6,8,11} {1,2,4,5,8} {1,4,8} {1,4,8,9} {1,4,8}
{1,4,7,8} 6 {1,4,8} {1,2,4,5,8} {1,4,8} {1,4,8,9} {1,4,8}
{1,3,4,6,8,11} 7 {1,4,8} {1,2,4,5,8} {1,4,7,8} {1,4,8,9} {1,4,8}
eh
h
sh e
2 4
1
3 5 7
h
s
s
r
6
s
h
s
h
s
s
hr
DBI010 - DIS - MFF UK
Převod NKADKA
pouze jeden poč. stav
• Tabulkou, jen dosaţitelné stavy
přechody
do stavu 1
neuvedeny
stav ozn. e h r s x
{1} 1 {1} {1,2} {1} {1,5} {1}
{1,2} 2 {1,3} {1,2} {1} {1,5} {1}
{1,5} 3 {1} {1,2,6} {1} {1,5} {1}
{1,3} 4 {1} {1,2} {1,4} {1,5} {1}
{1,2,6} 5 {1,3,7} {1,2} {1} {1,5} {1}
{1,4} 6 {1} {1,2} {1} {1,5} {1}
{1,3,7} 7 {1} {1,2} {1,4} {1,5} {1}
eh
h
sh e
2 4
1
3 5 7
h
s
s
r
6
s
h
s
h
s
s
hr
h e r
h e
1 2 3 4
5 6 7
*
s
DBI010 - DIS - MFF UK
Vhxvvdx
dVh
plot
sten
svíce
a
Vh
da
dVh
Derivace regulárního výrazu
• Pokud, , potom
• Např., pokud ,
potom
ten
více
ds
dVh
vVh
dt
dVh
DBI010 - DIS - MFF UK
Derivace regulárního výrazu
•
•
•
•
•
•
•
•
•
d
daa X
,
d
daa X
,
da
daa X ,
db
dab a ,
d U Vda
dU
da
dV
da
d U Vda
dU
daV U
.. ,
d U Vda
dU
daV
dV
daU
.. ,
d
da
dV
da
VV
*
*.
dV
dx
d d dVx
n n
n n
a a aa a a
1 1
1 1... , ...
DBI010 - DIS - MFF UK
Konstrukce KA pomocí derivace
• Derivace regulárního výrazu umoţňuje přímou algoritmickou konstrukci DKA pro libovolný regulární výraz
• Dán regulární výraz V nad abecedou X
• Kaţdý stav KA definuje mnoţinu slov, které KA převedou ze stavu q do některého koncového stavu. Tedy stav je moţné ztotoţnit s regulárním výrazem definujícím tuto mnoţinu– q0 = V
– (q,x) =
– F = {qQ | h(q)}
dx
dq
DBI010 - DIS - MFF UK
Konstrukce KA pomocí derivace
• V= (0+1)*.01 nad abecedou X={0,1}
• q0 = (0+1)*.01
•
•
101.*10101.*10.101.*10.0
1
0
0
101.*10.0
10
0
0101.
0
*10
0
.01*10
d
d
d
d
d
d
d
d
d
d
d
d
01.*1001.*10.01.*10.1
1
1
0
01.*10.1
10
1
0101.
1
*10
1
.01*10
d
d
d
d
d
d
d
d
d
d
d
d
DBI010 - DIS - MFF UK
Konstrukce KA pomocí derivace
• V= (0+1)*.01 nad abecedou X={0,1}
• q0 = (0+1)*.01
• F = {(0+1)*.01+}
stav ozn. 0 1(0+1)*.01 A (0+1)*.01+1 (0+1)*.01
(0+1)*.01+1 B (0+1)*.01+1 (0+1)*.01+(0+1)*.01+ C (0+1)
*.01+1 (0+1)*.01
0B
0
0
C1
A
1
1
DBI010 - DIS - MFF UK
Dvojcestný KA se skokem
• Zobecnění všech vyhledávacích algoritmů
• K = (Q, X, q0, , k, , F)
– Q je mnoţina stavů
– X je vstupní abeceda
– q0 Q je počáteční stav
– : Q x X Q x {-1,1,2,...,k} je přechodová funkce
– k N je maximální délka skoku
– je značka skoku
– F Q je mnoţina koncových stavů
DBI010 - DIS - MFF UK
Dvojcestný KA se skokem
• Konfigurace:
– řetězec x1x2...xi-1qxi...xj-1xj...xn z mnoţiny X*QX*X*
• Přechod
– relace (X*QX*X*) x (X*QX*X*)
– x1x2...xi-1qxi...xj-1xj...xnx1x2...xi-2q’xi-1...xj-1xj...xn (q, xi) = (q’, -1)
– x1x2...xi-1qxi...xj-1xj...xnx1x2...xi...xj...xt-1q’xt...xn (q, xi) = (q’, m),
kde t=min(i+m,n+1)
• Příjem slova w
– q0w * wf, f F
DBI010 - DIS - MFF UK
Dvojcestný KA se skokem
• Pokud se pouţijí pouze přechody tvaru
(q, xi) = (q’,1)
bude automat simulovat standardní
nedeterministický konečný automat
– Pozice skoku se drţí neustále u čtecí hlavy
– Automat postupně čte znaky zleva doprava
DBI010 - DIS - MFF UK
2CKAS simulující B-M algoritmus
se vzorkem „ANANAS“
• Výchozí konfigurace
q0MEZI TROPICKÉ OVOCE …
odpovídá umístění vzorku před text
• Nutno přidat přechod do alternativního výchozího
stavu q se skokem o délku vzorku
• (q0,x) = (q,|ANANAS|) = (q,+6) pro xX
MT E Z I T R O P I C
AV N A N A S
K É . . .
DBI010 - DIS - MFF UK
2CKAS simulující B-M algoritmus
se vzorkem „ANANAS“
• Úvodním skokem automat přejde do konfigurace MEZI TqROPICKÉ OVOCE …,která odpovídá startu B-M algoritmu
• (q,’A’) = (q,+1) – zarovnání znaku ’A’
• (q,’N’) = (q,+2) – zarovnání znaku ’N’
• (q,’S’) = (q1,-1) – ověření prvního znaku zprava
MT E Z I T R O P I C
AV N A N A S
K É . . .
DBI010 - DIS - MFF UK
2CKAS simulující B-M algoritmus
se vzorkem „ANANAS“
• Celkově
– k = 6 = |ANANAS|
– Q = {q0,q,q1,q2,q3,q4,q5,q6}
– F = {q6}
–
A N S X
q0 (q,+6) (q,+6) (q,+6) (q,+6)
q (q,+1) (q,+2) (q,-1) (q,+6)
q1 (q,-1) (q,+1) (q,+5) (q,+5)
q2 (q,+1) (q,-1) (q,+4) (q,+4)
q3 (q,-1) (q,+1) (q,+3) (q,+3)
q4 (q,+1) (q,-1) (q,+2) (q,+2)
q5 (q,+6) (q,+1) (q,+1) (q,+1)
q6 (q,+1) (q,+2) (q,-1) (q,+6)
Ověřen poslední znak vzorku zprava.
Nutno detekovat výskyt (q6)
a zároveň posunout vzorek tak,
aby se pod první znak zprava (tj. S)
dostal nejbliţší další stejný znak.
Zde další S není, proto posun o +6
Kopie stavu q
DBI010 - DIS - MFF UK
Modely
• Úrovně modelů
– Rozlišují (ne)přítomnost slov v dokumentech
– Rozlišují frekvence výskytů slov
– Rozlišují pozice výskytů slov v dokumentech
Modely DIS
Boolský model
DBI010 - DIS - MFF UK
Boolský model DIS
• 50-tá léta 20. stol.
• Automatizace postupů pouţívaných v
knihovnictví
DBI010 - DIS - MFF UK
Boolský model DIS
• Databáze D obsahující n dokumentů
– D={d1, d2, … dn}
• Dokumenty popisovány pomocí m termů
– T ={t1, t2, … tm}
– term tj = slovo nebo sousloví
• Reprezentace dokumentu pomocí mnoţiny termů
– Obsaţených v dokumentu
– Popisujících význam dokumentu
– d1 T
DBI010 - DIS - MFF UK
Indexace Boolského DIS
• Přiřazení mnoţiny termů, které jej popisují ke kaţdému dokumentu– Členění indexačních technik dle způsobu vytváření
• Ruční
– Nekonzistentní. Více indexátorů se nemusí shodnout na mnoţině termů. Jeden indexátor můţe po určité době ohodnotit stejný dokument jinak.
• Automatická
– Konzistentní, ale bez porozumění textu.
– Členění indexačních technik dle volnosti výběru termů
• Řízená
– Předem daná mnoţina termů. Pouze se vyberou ty, vhodné pro dokument.
• Neřízená
– Mnoţina termů se mění s přibývajícími dokumenty.
DBI010 - DIS - MFF UK
Indexace
• Tezaurus
– Vnitřně strukturovaná mnoţina termů
• Synonyma s preferovanými termy
• Hierarchie uţších/širších termů
• Příbuzné termy
• ...
• Stop-list
– Nevýznamová slova
DBI010 - DIS - MFF UK
Indexace
• Příliš obecná
slova nejsou pro
identifikaci
dokumentů
vhodná
• Příliš specifická
slova také ne0
010,1 0,9
vhodné termy
0,5
DBI010 - DIS - MFF UK
Boolský model DIS
• Dotaz je vyjádřený logickým výrazem
– ta AND tb v dokumentu se vyskytují
oba termy
– ta OR tb v dokumentu se vyskytuje
alespoň jeden z termů
– NOT t v dokumentu se
daný term nevyskytuje
DBI010 - DIS - MFF UK
Boolský model DIS
• Dotazem tedy může být například:
– ‘vyhledávání’ AND ‘informace’
– ‘kódování’ OR ‘dekódování’
– ‘zpracování’ AND (‘dokument’ OR ‘text’)
– ‘počítač’ AND NOT ‘osobní’
DBI010 - DIS - MFF UK
Boolský model DIS
• Víceslovné termy v dotazech
– ‘vyhledávání informace’
– ‘kódování dat’ OR ‘dekódování dat’
– ‘zpracování textu’
– ‘počítač’ AND NOT ‘osobní počítač’
DBI010 - DIS - MFF UK
Boolský model DIS
• Využití faktografických údajů
(hodnot atributů)
– ‘databáze’
AND (autor = ‘Salton’)
– ‘zpracování textu’
AND (rok_vydání >= 1990)
DBI010 - DIS - MFF UK
Boolský model DIS
• Zástupné znaky v termech
– ‘datab*’ AND ‘systém*’
• zastupuje termy
‘databáze’, ‘databázový’,
‘systém’, ‘systémy’, a pod.
– ‘přenosn?’ AND ‘počítač*’
• zastupuje termy
‘přenosný’, ‘přenosné’,
‘počítač’, ‘počítače’, ‘počítačový’ a pod.
DBI010 - DIS - MFF UK
Organizace indexu
• Invertovaný seznam
– Pro kaţdý term seznam dokumentů
ve kterých se vyskytuje
• t1 = d1,1, d1,2, ..., d1,k1
• t2 = d2,1, d2,2, ..., d2,k2
• tm = dm,1, dm,2, ..., dm,km
DBI010 - DIS - MFF UK
Organizace indexu
• Zpracování dokumentů na vstupu
– vznikne posloupnost dvojic
setříděná dle v uvedeném pořadí
• Setřídění dle term_id,dok_id
a odstranění po sobě jdoucích duplicit
DBI010 - DIS - MFF UK
Lemmatizace a disambiguace
českého jazyka (ÚFAL)• Odpovědným zástupcem
nemůţe být kaţdý.
• Zákon by měl zajistit individualizaci odpovědnosti a zajištění odbornosti. …
•
Odpovědnýmodpovědný_^(kdo_za_něco_odpovídá)AAIS7----1A----zástupcemzástupce<MDt>NNMS7-----A----nemůţemoci_^(mít_moţnost_[něco_dělat])VB-S---3P-NA---býtbýtVf--------A----kaţdýkaţdýAAIS1----1A----
•
…
Číslo odstavce
Číslo věty
Lemma včetně významu
Slovní druh (Adverb), …
Slovo v dokumentu
DBI010 - DIS - MFF UK
Proximitní omezení
• t1 (m,n) t2– term t2 se vyskytuje v textu nejdále m slov za t1,
nebo se t1 vyskytuje nejdále n slov za t2.
• t1 sentence t2– termy se v dokumentu vyskytují ve stejné větě
• t1 paragraph t2– termy se v dokumentu vyskytují ve stejném
odstavci
DBI010 - DIS - MFF UK
Proximitní omezení
• Nahrazení operátoru konjunkcí
• Vyhodnocení dotazu
• Ověření v primárním textu
– Delší čas pro vyhodnocení
– Nutnost uloţení primárních dokumentů
• Doplnění indexu o pozice termů v dokumentech
– Větší index
DBI010 - DIS - MFF UK
Organizace indexu
• Zpracování dokumentů na vstupu
– vznikne posloupnost pětic
setříděná dle v uvedeném pořadí
• Setřídění
– vznikne posloupnost pětic
DBI010 - DIS - MFF UK
Vyuţití tezauru
• BT(x) - Broader Term - Širší term k termu x
• NT(x) - Narrower Terms - Užší termíny
• PT(x) - Preferred Term - Preferovaný termín
• SYN(x) - SYNonyms -Synonyma k termu x
• RT(x) - Related Terms - Příbuzné termíny
• TT(x) - Top Term - Nejširší termín
DBI010 - DIS - MFF UK
Nevýhody Boolského DIS
• Salton:
– Formulace dotazů je spíše uměním neţ vědou.
– Nemoţnost ohodnotit vhodnost vystupujících dokumentů.
– Všechny termy v dotazu i v identifikaci dokumentu jsou chápány jako stejně důleţité.
– Nemoţnost řízení velikosti výstupu.
– Některé výsledky neodpovídají intuitivní představě.
• V disjunktivním dotazu na výstupu dokumenty obsahující jediný z termů vedle dokumentů obsahujících všechny.
• V konjunktivním dotazu na výstupu nejsou dokumenty neobsahující žádný z termů ani dokumentů neobsahující jeden z nich.
DBI010 - DIS - MFF UK
Částečné setřídění výstupu
Q = (t1 OR t2) AND (t2 OR t3) AND t4– převedeme do DKNF
Q’ = (t1 AND t2 AND t3 AND t4)
OR (t1 AND t2 AND NOT t3 AND t4)
OR (t1 AND NOT t2 AND t3 AND t4)
OR (NOT t1 AND t2 AND t3 AND t4)
OR (NOT t1 AND t2 AND NOT t3 AND t4)
DBI010 - DIS - MFF UK
Částečné setřídění výstupu
• Kaţdá elementární konjunkce (dále EK) je
ohodnocena číslem rovným počtu termů v
kladném smyslu (bez NOT)
• Všechny EK se navzájem liší alespoň u jednoho
termu
Kaţdý dokument vyhovuje nejvýše jedné EK
Dokument lze ohodnotit číslem, přiřazeným
odpovídající EK.
DBI010 - DIS - MFF UK
Částečné setřídění výstupu
• Elementárních konjunkcí pro k pouţitých
termů je 2k
• Moţných ohodnocení je jen k
• Proto můţe mít více EK stejné ohodnocení
• (ta OR tb) =
= (ta AND tb) … ohodnocení 2
OR (ta AND NOT tb) … ohodnocení 1
OR (NOT ta AND tb) … ohodnocení 1
DBI010 - DIS - MFF UK
Přednáška č. 4
Vektorový model DIS
• 70-tá léta 20. stol.
– cca o 20 let mladší neţ Boolské DIS
• Snaha minimalizovat nebo odstranit
nevýhody Boolských DIS
DBI010 - DIS - MFF UK
Vektorový model DIS
• Databáze D obsahující n dokumentů
– D={d1, d2, … dn}
• Dokumenty popisovány pomocí m termů
– T ={t1, t2, … tm}
– term tj = slovo nebo sousloví
• Reprezentace dokumentu pomocívektoru vah termů
– w miwiwidi ,,...,2,,1,
DBI010 - DIS - MFF UK
Vektorový model DIS
• Model dokumentu
–
– wi,j … míra důleţitosti j-tého termu
pro identifikaci i-tého dokumentu
• Dotaz
–
– qj … míra důleţitosti j-tého termu pro tazatele
1,0,,...,2,,1,m
w miwiwidi
1,0,...,2,
1mqmqq
q
DBI010 - DIS - MFF UK
Index vektorového DIS
1,0
,2,1,
,22,21,2
,12,11,1
2
1
mn
mnnn
m
m
n www
www
www
d
d
d
D
DBI010 - DIS - MFF UK
Vektorový model DIS
• Podobnost mezi
vektorem dotazu a
vektorem dokumentu
je dána funkcí
00
1
1
RdqSim i ,
DBI010 - DIS - MFF UK
Podobnostní funkce
•
• Příspěvek úměrný míře důleţitosti
termu pro tazatele a pro dokument
• Kolmé vektory mají nulovou podobnost
– Vektory báze (jednotlivé termy) navzájem
kolmé a tedy s nulovou podobností
cos1
,, dqdqwqdqSim iim
jjiji
wq jij ,
DBI010 - DIS - MFF UK
Podobnostní funkce
•
• Výslednou podobnost ovlivňuje velikost dotazu i velikost vektorů jednotlivých dokumentů
• Delší vektory (přiřazené obvykle delším dokumentům) jsou zvýhodněny
• Vhodné provádět normalizaci vektorů
cos, dqdqSim ii
DBI010 - DIS - MFF UK
Normalizace vektorů
• Eliminace vlivu délky vektoru na podobnost
DBI010 - DIS - MFF UK
Normalizace vektorů
• Během indexace
– Nezatěţují vyhledávání
– Někdy nutné dávkově přepočítat vektory v
případě, ţe normalizace zahrnuje faktory
závislé na celé mnoţině vektorů
• Během vyhledávání
– Součást definice podobnostní funkce
– Zpomaluje odezvu
DBI010 - DIS - MFF UK
Omezení velikosti výstupu
• Dokumenty na výstupu
řazeny sestupně dle podobnosti
– Nejpodobnější dokumenty na začátku
– Moţno omezit velikost výstupu a splnit snadno
kritérium maxima
• Omezení max. počtu vrácených dokumentů
• Poţadavek na minimální nutnou podobnost
DBI010 - DIS - MFF UK
Negace ve vektorovém DIS
•
• Je moţné uvaţovat dotaz
• Potom můţe být příspěvek záporný
• Tak lze upřednostnit dokumenty,
které daný term neobsahují
m
jjiji wqdqSim
1,,
wq jij ,
1,1,...,2,
1mqmqq
q
DBI010 - DIS - MFF UK
Skalární součin
m
jjiji wqdqSim
1,,
DBI010 - DIS - MFF UK
Kosinová míra (Salton)
m
jji
m
jj
m
jjij
i
wq
wq
dqSim
1,
2
1
2
1,
,
DBI010 - DIS - MFF UK
Jaccardova míra
m
jjij
m
jji
m
jj
m
jjij
i
wqwq
wq
dqSim
1,
1,
1
1,
,
DBI010 - DIS - MFF UK
Diceova míra
m
jji
m
jj
m
jjij
i
wq
wq
dqSim
1,
1
1,2
,
DBI010 - DIS - MFF UK
Overlap míra
m
jjij
m
jjij
i
wq
wq
dqSim
1,
22
1,
,min
,
DBI010 - DIS - MFF UK
Asymetrická míra
m
jji
m
jjij
i
w
wq
dqSim
1,
1,,min
,
DBI010 - DIS - MFF UK
Pseudo-kosinová míra
m
jji
m
jj
m
jjij
i
wq
wq
dqSim
1,
1
1,
,
DBI010 - DIS - MFF UK
Indexace ve vektorovém DIS
• Zaloţena na počtu opakování slova v
dokumentu
– Čím častěji se slovo opakuje, tím je důleţitější
• Frekvence termu (Term Frequency)
TFi,j = #výskytů_termu / #všech_výskytů
DBI010 - DIS - MFF UK
Indexace ve vektorovém DIS
• Bez stop-listu na
začátku seznamu
nevýznamová slova
term # TF
1 the 239 0,0582
2 of 96 0,0234
3 a 84 0,0205
4 to 78 0,0190
5 and 70 0,0171
6 is 65 0,0158
7 for 60 0,0146
8 be 53 0,0129
9 if 52 0,0127
10 in 49 0,0119
11 use 49 0,0119
12 are 44 0,0107
13 it 44 0,0107
14 should 38 0,0093
15 class 33 0,0080
DBI010 - DIS - MFF UK
Indexace ve vektorovém DIS
• Frekvence termu jsou
velmi malé i pro
nejčastější termy
• Normalizovaná
frekvence termu
pro
jinak
term # TF NTF
1 use 49 0,0119 1,0000
2 class 33 0,0080 0,8367
3 owl 31 0,0076 0,8163
4 c 26 0,0063 0,7653
5 line 26 0,0063 0,7653
6 example 25 0,0061 0,7551
7 comments 23 0,0056 0,7347
8 file 23 0,0056 0,7347
9 bi 22 0,0054 0,7245
10 functions 20 0,0049 0,7041
11 files 18 0,0044 0,6837
12 code 17 0,0041 0,6735
13 int 17 0,0041 0,6735
14 data 16 0,0039 0,6633
15 public 15 0,0037 0,6531
TFTF
NTFkik
ji
ji,
,
max2
1
2
1,
0, NTF ji TF ji,
DBI010 - DIS - MFF UK
Indexace ve vektorovém DISRozložení (normalizované) frekvence termu
0,0000
0,1000
0,2000
0,3000
0,4000
0,5000
0,6000
0,7000
0,8000
0,9000
1,0000
Termy dle rostoucí frekvence
Fre
kven
ce
TF
NTF
Odlišení významných
termů od nevýznamných
DBI010 - DIS - MFF UK
Indexace ve vektorovém DIS
•
•
•
• ITF (Inverted TF)
reprezentuje důleţitost
termu v pro indexaci v
rámci celé kolekce
dokumentů
TFw jidef
ji ,,
NTFw jidef
ji ,,
ITFNTFw jjidef
ji
,,
.#
..#log
dokvšech
termobsahdokdef
jITF0,0000
0,5000
1,0000
1,5000
2,0000
2,5000
0,0
1
0,0
4
0,0
7
0,1
0
0,1
3
0,1
6
0,1
9
0,2
2
0,2
5
0,2
8
0,3
1
0,3
4
0,3
7
0,4
0
0,4
3
0,4
6
0,4
9
0,5
2
0,5
5
0,5
8
0,6
1
0,6
4
0,6
7
0,7
0
0,7
3
0,7
6
0,7
9
0,8
2
0,8
5
0,8
8
0,9
1
0,9
4
0,9
7
1,0
0
DBI010 - DIS - MFF UK
Indexace ve vektorovém DIS
• Normalizace vektoru dokumentu
na jednotkovou velikost
ITFNTFv jjidef
ji
,,
kki
jidef
ji
v
vw
,
2
,
,
DBI010 - DIS - MFF UK
Dotazování
• Shodná reprezentace dokumentů a dotazů
má řadu výhod
• Dotaz
– Přímo zadáním vektoru dotazu
– Odkazem na zaindexovaný dokument:
– Odkazem na nezaindexovaný dokument
indexační modul spočítá jednorázově vektor dotazu
– Fragment textu (např. přes copy-paste)
– Kombinace výše uvedených moţností
dq i
DBI010 - DIS - MFF UK
Zpětná vazba
• Podpora konstrukce dotazu
na základě odezvy uţivatele na předchozí
odpovědi
– Doplnění termů identifikujících
relevantní dokumenty
– Eliminace termů nepodstatných pro identifikaci
relevantních dokumentů
• Zlepšení kritéria predikce
DBI010 - DIS - MFF UK
Zpětná vazba
• Odpověď na předchozí
dotaz
je uţivatelem
rozdělena na
relevantní a
nerelevantní
dokumenty
q
DBI010 - DIS - MFF UK
Pozitivní zpětná vazba
• Relevantní dokumenty
„přitahují“ dotaz
směrem k sobě
DBI010 - DIS - MFF UK
Negativní zpětná vazba
• Nerelevantní
dokumenty „odtlačují“
dotaz směrem od sebe
– Méně efektivní neţ
pozitivní zpětná vazba
– Relativně málo
pouţívaná
DBI010 - DIS - MFF UK
Zpětná vazba
• Postupně se dotaz
stěhuje směrem k
centru relevantních
dokumentů
DBI010 - DIS - MFF UK
Zpětná vazba
• Obecný tvar
• Moţný speciální tvar
... parametr metody
k
jij dqq j
10
'
k
dqq
k
ji j
1' 1
(1-) /
DBI010 - DIS - MFF UK
Zpětná vazba
• Obecný tvar
• Obdoba s váhami
k
jij dqq j
10
'
(1-) /
k
jj
k
ji j
j
v
dv
1
1*
' 1
DBI010 - DIS - MFF UK
Ekvivalence termů ve VDIS
• Jednotlivé termy navzájem nezávislé
Problém predikce -
- nevhodně zvolené termy
ttttttttttT kde 4321654321 ,,,,,,,
2
1,
2
1,
2
1,0,0,
2
1d
0,0,0,4
3,
4
1,0q
0, dqSim
DBI010 - DIS - MFF UK
Ekvivalence termů ve VDIS
• Matice ekvivalence
11
1111
1111
00000
00000
0000
0000
0000
0000
E
2
1,
2
1,
2
1,0,0,
2
1d
0,0,4
3,
4
3,
4
1,
4
10,0,0,
4
3,
4
1,0 Eqq
2
1
8
4, dEqSim
DBI010 - DIS - MFF UK
Podobnost termů ve VDIS
• Zobecnění ekvivalence
• Matice podobnosti
• Moţnost výpočtu podobnosti termů(dimenze vektorů je n, nikoli m)
+ Podobné termy
– Obecné termy
0.10.12.0
0.10.10.10.1
0.18.02.08.00.1
00000
0000
0000
0000
0000
000
S
ttSim jj
21,
40
19
80
38,
dSqSim
DBI010 - DIS - MFF UK
Hierarchie termů ve VDIS
• Obdobně jako v
Boolském modelu
Publikace
Tiskovina Kniha
Noviny Časopis
DBI010 - DIS - MFF UK
Hierarchie termů ve VDIS
• Obdobně jako v
Boolském modelu
• Moţnost ohodnotit
hrany vahami
Publikace
Tiskovina Kniha
Noviny Časopis
0.4 0.6
0.3 0.7
0.8
0.480.32
0.2240.096
DBI010 - DIS - MFF UK
Citace a vektorový model
• Odborné publikace citují různý počet zdrojů
• Předpoklad:
– Citované dokumenty jsou podobné
– Citující dokumenty jsou podobné
DBI010 - DIS - MFF UK
Citace a vektorový model
• Přímá reference mezi dokumenty „A“ a „B“
– Dokument „A“ cituje dokument „B“¨
– Označíme AB
• Nepřímá reference mezi „A“ a „B“
– Ex. C1, …Ck tak, ţe AC1…CkB
• Spojení mezi dokumenty „A“ a „B“
– AB nebo BA
DBI010 - DIS - MFF UK
Citace a vektorový model
• A a B jsou
bibliograficky
párovány,
pokud citují stejný
zdroj C
AC BC
• A a B jsou v
kocitačním vztahu,
pokud jsou spolu
citovány
v dokumentu C
CA CB
DBI010 - DIS - MFF UK
Citace a vektorový model
• Acyklický orientovaný
graf citací
• Incidenční matice
grafu citací
• C=[cij]{0,1}
cij=1, pokud ij
cij=0 jinak
DBI010 - DIS - MFF UK
Citace a vektorový model
• BP matice bibliografického párování
• bpij = počet dokumentů společně
citovaných jak v i, tak v j.
– Tedy bpii = počet dokumentů citovaných v i
•
n
kjkikjiij ccccbp
1
DBI010 - DIS - MFF UK
Citace a vektorový model
• KP matice kocitačního párování
• kpij = počet dokumentů společně citujících
jak i, tak j.
– Tedy kpii = počet dokumentů citujících i
•
n
kkjkijiij cccckp
1
DBI010 - DIS - MFF UK
Citace a vektorový model
• SP matice spojení
• spij = 1 (cij = 1 cji = 1)
• Pomocí matic KP, BP, SP lze modifikovat výsledné podobnosti dokumentů s dotazem
• Modifikace indexové matice D
– D’= KP.D, resp. D’=BP.D , resp. D’=SP.D
– D’=KP.BP.SP.D
DBI010 - DIS - MFF UK
Vyuţití podobnosti dokumentů
při vyhodnocování dotazu
• DS matice podobnosti dokumentů
• dsij =
• Podobné pouţití jako u matic DS, BP, SP
• Modifikace indexové matice D
– D’=DS.D
ddSim ji,
DBI010 - DIS - MFF UK
Přednáška č. 5
Rozlišovací hodnoty termů
• Rozlišovací hodnota (discrimination value)
určuje míru důleţitosti termu pro vzájemné
rozlišení uloţených dokumentů
• Odstraněním termu z indexu, tj. redukcí
dimenze prostoru dokumentů můţe dojít:
– ke vzájemnému přiblíţení dokumentů
– ke vzájemnému oddálení dokumentů
• v tom případě je dimenze zbytečná
DBI010 - DIS - MFF UK
35,3
45,0
45,00,0
DBI010 - DIS - MFF UK
Rozlišovací hodnoty termů
• Výpočet na základě
průměrné podobnosti
dokumentů
n
ddQ
n
jiji
Sim
2
1,
,
• Rychlejší varianta přes
centrální dokument
(centroid)
n
cdQ
n
ii
Sim 1
,
n
dc
n
ii
1
DBI010 - DIS - MFF UK
Rozlišovací hodnoty termů
• Pro kaţdou dimenzi k se spočítá průměrná
podobnost v prostoru bez k-té dimenze
n
cdQ
n
i
kk
k iSim
1
)()(
)(,
n
dc
n
i
k
k i 1
)(
)(
xxxxxx mkkk
,,,,,,1121
)(
DBI010 - DIS - MFF UK
Rozlišovací hodnoty termů
• Rozlišovací hodnotu
definujeme jako rozdíl
průměrných
podobností
• Moţno pouţít místo
ITFk
QQDVk
k
)(
0
Významný term
rozlišující dokumenty
DVk určuje míru
významnosti
0
Nevýznamný term
DBI010 - DIS - MFF UK
Rozlišovací hodnoty termů(průměrná hodnota DV termu v závislosti na počtu dokumentů, ve kterých se term vyskytuje)
Celkem
-0,00024
-0,00019
-0,00014
-0,00009
-0,00004
0,00001
Celkem
Sem přetáhněte stránková pole.
Průměr z DVk
Výskyty
Sem přetáhněte pole řad.
180/777790/7777 1200/7777
Výsledky pro kolekci z článků z Lidových novin 1994,
obsahující 7777 dokumentů a 13495 lemmat
Kladná hodnota DVk pro 12324 lemmat s celkem 478849 výskyty.
Záporná hodnota DVk pro 1170 lemmat s celkem 466992 výskyty.
Počet dokumentů, ve kterých se term vyskytuje v rámci kolekce, obsahující celkem 7777 dokumentů
Shlukování dokumentů
Kohonenovy mapy
C3M algoritmus
K-mean algoritmus
DBI010 - DIS - MFF UK
Shlukování dokumentů
• Doba odezvy VDIS
přímo úměrná počtu dokumentů,
které je nutné porovnat s dotazem
• Shlukování dovoluje
vynechat z porovnávání většinu indexu
DBI010 - DIS - MFF UK
Shlukování dokumentů
• Bez shluků nutno
porovnat s dotazem
všechny dokumenty,
i kdyţ je definována
minimální poţadovaná
podobnost
DBI010 - DIS - MFF UK
Shlukování dokumentů
• Kaţdý shluk je
obvykle ve tvaru
m-rozměrné koule
určené svým středem a
poloměrem
• Pokud ne, je moţné jej
pro výpočty pomocí
takové koule, která jej
celý obsahuje,
aproximovat
DBI010 - DIS - MFF UK
Shlukování dokumentů
• Vyhodnocení dotazu
nemusí porovnávat
dokumenty ve
shlucích leţících
mimo oblast zájmu
DBI010 - DIS - MFF UK
Typy shluků
• Shluky se stejnou
velikostí
+ Snadné vytvoření
– Některé shluky
mohou být téměř
prázdné, v jiných
můţe být velké
mnoţství
dokumentů
DBI010 - DIS - MFF UK
Typy shluků
• Shluky s
(přibližně)
stejným počtem
dokumentů
– Nesnadné vytvoření
+ Efektivnější v
případě
nerovnoměrně
rozloţených dok.
DBI010 - DIS - MFF UK
Typy shluků
• Nedisjunktní
shluky
• Jeden dokument můţe
být zařazen ve více
shlucích
DBI010 - DIS - MFF UK
Typy shluků
• Disjunktní
shluky
• Dokument nemůţe
být ve více shlucích
DBI010 - DIS - MFF UK
Typy shluků
• Obecně nelze
prostor pokrýt
disjunktními
koulemi
• Je nutné uvaţovat
spíše konvexní
mnohostěny, kde
dokument přísluší
nejbliţšímu centru
DBI010 - DIS - MFF UK
Typy shluků
• Aproximace
pomocí koulí
určených centrem
shluku a
vzdáleností
nejvzdálenějšího
dokumentu v něm
DBI010 - DIS - MFF UK
Vyhodnocení dotazu se shluky I
• Dán dotaz q s minimální požadovanou
podobností s– Pozn.: podobnost počítána skalárním součinem, vektory normalizované
• Index rozdělen na k shluků
(c1,r1), …, (ck,rk)– Pozn. poloměry jsou úhlové
• Poloměr dotazu
r = = arccos(s)
s = cos()
r=
1 1
DBI010 - DIS - MFF UK
• Zjistí se, zda shluk má neprázdný průnik s
oblastí, vymezenou dotazem
na základě hodnoty arccos(Sim(q,ci))-r-ri
• Pokud je hodnota 0,
ohodnotí se
dokumenty v něm
• Pokud je hodnota > 0,
dokumenty v něm
nemohou být ve výsledku
Vyhodnocení dotazu se shluky I
DBI010 - DIS - MFF UK
Vyhodnocení dotazu se shluky II
• Dán dotaz q s maximálním počtem
požadovaných dokumentů x.
• Index opět rozdělen na k shluků
(c1,r1), …, (ck,rk)
• Není poloměr dotazu
DBI010 - DIS - MFF UK
Vyhodnocení dotazu se shluky II
• Shluky se setřídí vzestupně
podle rostoucí vzdálenosti
centra shluku od dotazu, tedy
dle hodnoty arccos(Sim(q,ci))
• Lépe podle rostoucí vzdálenosti
okraje shluku od dotazu, tedy
dle hodnoty arccos(Sim(q,ci))-ri
1. 2.
2. 1.
DBI010 - DIS - MFF UK
Vyhodnocení dotazu se shluky II
• Shluky se setřídí
vzestupně dle
arccos(Sim(q,ci))-ritj. vzdálenosti
okraje shluku od
dotazu q
x=7
1.
2.
3.
4.5.
DBI010 - DIS - MFF UK
Vyhodnocení dotazu se shluky II
• Nejbliţší shluk se
ohodnotí
x=7
DBI010 - DIS - MFF UK
Vyhodnocení dotazu se shluky II
• Dokud není dost
dokumentů, ohodnotí
se další nejbliţší shluk
• Pokud je dost
dokumentů, x-tý
nejvzdálenější
dokument určuje
poloměr
x=7
DBI010 - DIS - MFF UK
Vyhodnocení dotazu se shluky II
• Jakmile je dost dokumentů, další nejbliţší shluk se ohodnotí, jen pokud zasahuje do vytyčené oblasti
• Následně se poloměr zmenší, pokud dokumenty z nového shluku nahradily některé předchozí
x=7
DBI010 - DIS - MFF UK
Víceúrovňové shlukování
• Pokud je shluků
hodně, je moţné je
dále shlukovat do
shluků druhé a
dalších úrovní.
DBI010 - DIS - MFF UK
Shlukovací metody
• Kohonenovy mapy
(SOM – self-organizing maps)
– Pouţívané pro kategorizaci vstupů
i v neuronových sítích bez učitele
– Samoorganizující se struktura
– Přizpůsobuje se hustotě dokumentů v oblasti
– Přibliţně stejné počty dokumentů ve shlucích
DBI010 - DIS - MFF UK
Kohonenovy mapy
• Základem jsou centrální m-rozměrné body uspořádané do k-rozměrné mříţky
– Obvykle k
DBI010 - DIS - MFF UK
Kohonenovy mapy
• Na počátku mají centra náhodná umístění
• Při vloţení dokumentu
– najde se nejbliţší centrum
– posune se blíţe k dokumentu
– jeho bezprostřední sousedé v mříţce
se posunou také
d
c x
cdcdcc xxxx 1
cdcdcc
1
DBI010 - DIS - MFF UK
Kohonenovy mapy
• Parametry 0 1 vyjadřují míru
přizpůsobivosti systému.
• Vhodné je, aby oba parametry s časem
klesaly k nule
DBI010 - DIS - MFF UK
Kohonenovy mapy
• Mapa před adaptací na nový dokument
DBI010 - DIS - MFF UK
Kohonenovy mapy
• Mapa po adaptaci na nový dokument
DBI010 - DIS - MFF UK
Kohonenovy mapy
• Shluky jsou určeny centry mříţky.
Do kaţdého shluku patří body,
které mají
k danému centru
blíţe, neţ
k jakémukoli jinému
• Blízké body v mapě
jsou blízké
i v původním prostoru
(ale ne nutně naopak)
DBI010 - DIS - MFF UK
Kohonenovy mapy
DBI010 - DIS - MFF UK
Kohonenovy mapy
• Lze pouţít i pro shlukování termů/lemmat– matice indexu po sloupcích
– místo m-rozměrného prostoru se tedy mapuje prostor n-rozměrný
• Příklad: – mříţka 15*15 center
– 7777 dokumentů(Lidové noviny 1994)
– 13495 lemmat
– 100000 iterací učení náhodně vybraným vektorem lemmatu
• Vytvořené shluky lemmatC2,4
burza, akcie, kupónový, cenný, papír, investor, objem, investiční, fond, hodnota, obchod
C2,5vlna, privatizace, národní
C3,6literární, spisovatel, literatura, nakladatelství, počátek, čtenář, dějiny, text, kniha, napsat
C3,13Havel, Václav, prezident
C4,13Klaus, premiér, ministr
C6,14jeviště, komedie, filmový, scénář, publikum, festival, snímek, příběh, film, role
DBI010 - DIS - MFF UK
Kohonenovy mapy2D mapa lemmat
(rozvinutá 2D mříţka z předchozího příkladu)
C 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 patřit vést
f irma
celkový
procento
podnik
zisk
čas
cesta
řada
přijít
čtyři
stát (verb.) výstavba
stavba
Lille-
-hammer
sportovní
zlatý
medaile
olympijský
vítěz
závod
podtitulek
mistr
titul
MS
mistrovství
start
světový
2 znamenat platit obchodní
Kč
banka
činit
trh
milión
koruna
cena
burza
akcie
kupónový
cenný
papír
investor
objem
investiční
fond
hodnota
obchod
vlna
privatizace
národní
dílo
autor
umění
vydat
1994
ruka
najít
zůstat město městský metr sledovat šampionát
ME
kvalif ikace
válka
3 oblast
současný
deset
sto
tisíc
částka
zaplatit
pět
30
peníz
majitel
50
prodej
výše
žebříček literární
spisovatel
literatura
naklada-
-telství
počátek
čtenář
dějiny
text
kniha
napsat
století
život
lidský
pohled
zdát
znát
poskytnout manželka komise
předseda
Havel
Václav
prezident
bývalý
úřad
část
4 poptávka
nabídka
značný
měsíc rychlý
změnit
ztráta
vývoj
cíl
šest
hranice
držet
dovolit
dostávat
stav
jednička
tenista
Open
postoupit
semifinále
porazit
turnaj
f inále
postup
Američan
úspěšný
americký
USA
třetí
skupina
pracovat
působit
práce
mladý
vyjít
starý
pravda
muž
pocit
cítit
myslit
mluvit
udělat
vidět
rád
životní
prostředí
mezi-
-národní
jednání
jednat
Klaus
premiér
ministr
vztah
názor
období
činnost
ekonomika
literatura
sport
politika
DBI010 - DIS - MFF UK
Kohonenovy mapy
Velikosti získaných shluků
• Zaplněnost shluků termy zde příliš rovnoměrně nevyšla,
směrem k okrajům hustota klesá
Počet z t y
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Celkový součet
1 1 2 2 2 3 2 1 2 3 5 2 3 1 29
2 1 1 8 11 3 5 2 1 1 1 1 1 3 1 40
3 2 2 7 4 1 10 3 3 1 1 2 3 2 1 42
4 3 1 7 4 9 6 4 4 7 2 1 2 3 2 2 57
5 4 2 15 10 12 11 8 5 3 3 3 2 4 3 85
6 5 4 15 12 2 12 6 2 2 2 2 1 1 10 11 87
7 9 7 12 12 3 15 4 22 9 2 2 2 1 6 3 109
8 26 12 25 11 34 10 4 14 15 6 3 1 1 4 4 170
9 81 47 23 19 30 18 2 4 3 1 2 1 2 1 234
10 193 132 85 33 21 19 6 7 2 2 3 1 1 1 1 507
11 204 346 349 190 84 50 26 12 2 3 1 1 1 1 6 1276
12 572 481 320 459 272 166 30 6 3 3 2 2 2 1 2 2321
13 329 122 3223 709 302 129 10 7 6 4 2 1 5 1 3 4853
14 129 1062 291 383 103 38 98 17 15 5 1 2 2 1 5 2152
15 362 163 533 186 121 94 40 17 4 3 3 2 2 2 1 1533
Celkový součet 1920 2383 4915 2045 999 586 245 119 75 40