Distanční opora předmětu: Databázové systémy Tématický blok č. 7: Fulltextové vyhledávání Autor: RNDr. Jan Lánský, Ph.D.



Podobné dokumenty
2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.

DUM 01 téma: Obecné vlastnosti tabulkového editoru, rozsah, zápis do buňky, klávesové zkratky

5.1 Vyhledávací portál uživatelské rozhraní

RELAČNÍ DATABÁZOVÉ SYSTÉMY

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Základní nápověda pro práci s informační bránou UHK

Maturitní témata z předmětu PROGRAMOVÉ VYBAVENÍ pro šk. rok 2012/2013

MANUÁL K OBSLUZE REDAKČNÍHO SYSTÉMU / wordpress

Dodatek č. 3 ke školnímu vzdělávacímu programu. Strojírenství. (platné znění k )

Úvod do databázových systémů

KIV/ZIS - SQL dotazy. stáhnout soubor ZIS- 04_TestovaciDatabaze accdb. SQL dotazy. budeme probírat pouze SELECT

4. blok část A Logické operátory

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

práce s databázemi a kontingenčními tabulkami

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný

Funkce a vzorce v Excelu

2 Spojité modely rozhodování

3. Středoškolská stereometrie v anaglyfech

PRÁCE S ODBORNÝMI INFORMACEMI. Ústřední knihovna PdF MU Mgr. Petra Swaczynová

MS Wodrd pro pokročilé

Úvod do databázových systémů

POPIS PROSTŘEDÍ PROGRAMU GIMP 2. Barvy 2. Okno obrázku 4 ZÁKLADNÍ ÚPRAVA FOTOGRAFIÍ V GRAFICKÉM EDITORU 6. Změna velikosti fotografie 6

Střední škola informačních technologií a sociální péče, Brno, Purkyňova 97. Vybrané části Excelu. Ing. Petr Adamec

Úvod do databázových systémů B

8. Posloupnosti, vektory a matice

Kombinatorický předpis

Marek Laurenčík. Excel. práce s databázemi a kontingenčními tabulkami

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

Kapitola 1: Úvodní strana PARTICLER

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

DPH v Exact Globe Next 2013

5 Tabulky a seznamy dat Příklad 3 Excel 2010

Teoretická rozdělení

Naučte se víc... Metodická příručka pro školy k aplikaci Microsoft Office PowePoint 2007

10. Editor databází dotazy a relace

Jazyk SQL databáze SQLite. připravil ing. petr polách

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

Databázové systémy. Cvičení 6: SQL

CRS komunikační rozhraní

sssssssssssssssssssssssssssssssssssssssssssssssssss UŽIVATELSKÁ PŘÍRUČKA ELEKTRONICKÁ PODATELNA - WEBOVÁ ČÁST APLIKACE Verze distribuce:

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

MĚŘENÍ PORUCH PŘEDIZOLOVANÝCH POTRUBNÍCH SYSTÉMŮ POMOCÍ PŘENOSNÉHO REFLEKTOMETRU BDP

Distanční opora předmětu: Databázové systémy Tématický blok č. 3: OLAP, operátory CUBE a ROLLUP Autor: RNDr. Jan Lánský, Ph.D.

Karnaughovy mapy. Pravdivostní tabulka pro tři vstupní proměnné by mohla vypadat například takto:

Kapitola 1: Co je Microsoft Access? 27 Kapitola 2: Mnoho tváří aplikace Microsoft Access 41 Kapitola 3: Návrh databázové aplikace 75

Tabulkové processory MS Excel (OpenOffice Calc)

VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE. Optimalizace trasy při revizích elektrospotřebičů

Manuál k užívání aplikace Monitoringrejstriku.cz

Fulltextové vyhledávání v MS SQL Serveru Zápočtová práce do předmětu Databázové systémy 2

6. blok část C Množinové operátory

Obsah. Seznámení s prostředím Excelu. Poděkování 25 O přiloženém CD 26 Co je na CD 26 Použití CD 26 Systémové požadavky 26 Podpora 27

Základní přehled SQL příkazů

VYUŽITÍ 3D FRAKTÁLNÍ ANALÝZY PŘI HODNOCENÍ KVALITY TISKU

1. Relační databázový model

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Office podrobný průvodce. Tomáš Šimek

Optimalizace SQL dotazů

PROSTOROVÁ ORIENTACE A MATEMATICKÉ PŘEDSTAVY PŘEDŠKOLNÍHO DÍTĚTE

STATISTICA Téma 8. Regresní a korelační analýza, regrese prostá

NOVÁ VERZE OBD A JEJÍ VYUŽÍVÁNÍ Ing. Martina Valášková

Word podrobný průvodce. Tomáš Šimek

Jak pracovat s absolutními hodnotami

Distanční opora předmětu: Databázové systémy Tématický blok č. 1: Dotazovací jazyk SQL Autor: RNDr. Jan Lánský, Ph.D.

Obsah. Ukládáme sešit 31 První uložení sešitu 31 Jak pracovat se složkami 33 Ukládání již jednou uloženého sešitu 34 Ukončení práce v Excelu 36

Distanční opora předmětu: Databázové systémy Tématický blok č. 8: Transact SQL Autor: RNDr. Jan Lánský, Ph.D.

EBSCO. Poklikneme na možnost EBSCOhost Web. Vybereme (poklepeme, zaškrtneme) databázi, s kterou chceme pracovat.

Distanční opora předmětu: Databázové systémy Tématický blok č. 4: XML, DTD, XML v SQL Autor: RNDr. Jan Lánský, Ph.D.

Rozdílová dokumentace k ovládání IS KARAT.net

Alfa CD. Instalace. Nepřehlédněte! Co najdete v této příručce. Obsah. Vložte instalační CD a vyčkejte automatického spuštění úvodního

Matematika Vzdělávací oblast Matematika a její aplikace

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

METODY A TECHNIKY SOCIÁLNÍHO VÝZKUMU

MANUÁL uživatelská příručka Speciální IT systémové řešení

INFORMACE NRL č. 12/2002 Magnetická pole v okolí vodičů protékaných elektrickým proudem s frekvencí 50 Hz. I. Úvod

Tabulka. Datová struktura, která umožňuje vkládat a později vybírat informace podle identifikačního klíče. Mohou být:

Registrační číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B

Vzorové příklady SQL. Tabulka: Kniha CREATE TABLE kniha (id INTEGER, název VARCHAR(50), PRIMARY KEY (id))

Vkládání, aktualizace, mazání

Zadání úlohy do projektu z předmětu IPP 2013/2014

Knihomol. Manuál pro verzi 1.2

Index 1. Infobanka ČTK 2. Hlavní panel 3. Vyhledávací formulář 4. Dotazy 5. Výsledek hledání 6. Dokument 7. Prodata

Úvod do PHP s přihlédnutím k MySQL

Návod k používání webové služby ABA-DOPRAVNÍ INFORMACE

Úvod. Účel tezauru. čtenářům přes 8500 svazků knih (monografií, sborníků, absolventských

Pravidla pro psaní maturitní práce

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

Jak začít pracovat s programem BetOptim.exe?

Lineární programování

2. přednáška. Databázový přístup k datům (SŘBD) Možnost počítání v dekadické aritmetice - potřeba přesných výpočtů, např.

Modely vyhledávání informací 4 podle technologie. 1) Booleovský model. George Boole Aplikace booleovské logiky

Svaz chovatelů holštýnského skotu ČR, o.s. MATING. Prý pro nás na webu udělali nějakou seznamku?! ver. 2.0

Úvod do databázových systémů

Využití XML v DB aplikacích

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června krovacek@students.zcu.cz

2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce.

1 Predikátová logika. 1.1 Syntax. jaký mohou mít formule význam (sémantiku). 1. Logických symbolů: 2. Speciálních (mimologických) symbolů:

Inovace výuky prostřednictvím šablon pro SŠ

Dotazovací jazyk SQL I

Transkript:

Distanční opora předmětu: Databázové systémy Tématický blok č. 7: Fulltextové vyhledávání Autor: RNDr. Jan Lánský, Ph.D. Obsah kapitoly 1 Fulltextové vyhledávání 2 Porozumění textu 3 Přesnost a úplnost 4 Kritérium predikce a kritérium maxima 5 Předzpracování 6. Fulltextové vyhledávání v SQL Serveru Studijní cíle Znalost základních pojmů a problémů v oblasti fulltextového vyhledávání. Schopnost vytvořit fulltextový index v SQL Serveru a položit fulltextový dotaz. Čas potřebný ke studiu 2-6 hodiny na prostudování výukových textů + zodpovězení otázek k rekapitulaci 1-4 hodiny na vypracování modelových úloh na PC + úlohy POT 4 1-2 hodiny na praktické zopakování učiva na PC ( v jiný den) 30 min - 1 hodina na (znovu)zodpovězení otázek k rekapitulaci (v jiný den) Časy jsou hodně individuální a jsou závislé na míře znalostí z oblasti databázových systémů získaných během bakalářského studia. Úvod V tomto bloku probereme následující témata. Seznámíme se principy dotazování nad množinou textových dokumentů a odlišnostmi oproti dotazování nad tabulkami v SQL databázi. Seznámíme se s problémy, kterém musíme řešit při zpracování textového dokumentu pro potřeby fulltextového vyhledávání. Vysvětlíme si, jak se měří kvalita odpovědi získané fulltextovým vyhledáváním (pomocí koeficientů přesnosti a úplnosti). Vysvětlíme si kritérium predikce a kritérium maxima, která zohledňují, že dotaz vytváří člověk. Naučíme se vytvářet fulltextový index nad textovým sloupcem tabulky v SQL Serveru. Naučíme se tvořit fulltextové dotazy s využitím tohoto indexu.

Výkladová část Vysvětlivky Červený text Porušením nebo opomenutím takto označených pravidel vznikají těžko odladitelné chyby (zejména pro začínající programátory). Modrý text Doporučení jak programovat v praxi. Často prevence závažných chyb. 1 Fulltextové vyhledávání V předchozích tématických blokách jsme předpokládaly, že data jsou v daném, předem definovaném formátu (SQL tabulky nebo XML dokumenty). Sloupce v SQL tabulkách nebo elementy v XML dokumentech mají předen definovaný význam (například cena zboží, jméno zákazníka). Protikladem těchto formátů jsou volně psané texty, ve kterých může být stejná skutečnost popsána více autory rozdílně (například použitím synonym, rozdílnou stavbou věty). Při fulltextové vyhledávání hledáme v množině dokumentů takové dokumenty, ve kterých se vyskytuje námi požadované slovo nebo slova. Můžeme hledat i v rámci jednoho dokumentu pozici nebo pozice výskytů daného slova či slov. Při fulltextové vyhledávání nemůžeme využít vnitřní struktury prohledávaného dokumentu. Fulltextového vyhledávání v rámci jednoho dokumentu využívají například textové editory. Fulltextově prohledávat větší množství souborů nám umožňují i operační systémy. Nejčastěji se s fulltextovým vyhledáváním setkáváme v prostředí internetu, při vyhledávání webové stránky pomocí webového vyhledávače (například google.com nebo seznam.cz). Databázové systémy (včetně SQL Serveru) mají obvykle své rozšíření pro práci s textovými daty. Sloupec tabulky může být datového typu, který umožní uchovat celý textový dokument. V takto uložených textových dokumentech lze fulltextově vyhledávat. Přestože v oblasti fulltextového vyhledávání v databázových systémech existuje standard SQL/MM 2 (SQL Multimedia and Application Packages Part 2: Full-Text), nebývá dodržován. Fulltextové vyhledávání v jednotlivých databázových systémech používá rozdílnou syntax a skript napsaný pro jeden databázový systém není přenositelný na jiný databázový systém. V tomto tématickém bloku budeme probírat syntax SQL Serveru 2005. V případě fulltextového vyhledávání existuje mnoho rozdílných přístupů, ze kterých nelze vybrat objektivně nejlepší řešení. I samotné zhodnocení, zda nalezené výsledky odpovídají zadání dotazu, je subjektivním názorem konkrétního uživatele. Je téměř nemožné (nad rozsáhlejší množinou neznámých dokumentů) zformulovat dotaz, který by nám vrátil všechny dokumenty, které nás zajímají a zároveň nevrátil žádné jiné. Obvykle je nám vrácena pouze část dokumentů, které nás zajímají (jsou relevantní) a zároveň s nimi jsou i vráceny dokumenty, které jsou pro nás nezajímavé (nerelevantní). Některé z důvodů (synonyma, homonyma, hierarchie) tohoto jevu si vysvětlíme v kapitole 2. O vráceném dokumentu bývá také obtížné rozhodnout, zda našemu dotazu vyhovuje či ne. Lepší je definovat míru shody (například v procentech) nalezeného dokumentu s položeným

dotazem. Dokument se shodou 100 % je zcela relevantní, dokument se shodou 0 % zcela nerelevantní. Nalezené dokumenty je vhodné uživateli předkládat setříděné sestupně podle klesající míry relevance dokumentu. V optimálním případě si uživatel prohlédne jen několik nejrelevantnějších dokumentů a zbytek odpovědi nebude mít zájem. 2 Porozumění textu Text je posloupností slov v přirozeném jazyce. Každé slovo zastupuje pro autora nějakou představu, kterou v něm slovo vyvolává význam slova. Tyto představy reprezentují reálné předměty. Mezi slovy a významy bohužel neexistuje vzájemně jednoznačné zobrazení. Více různých slov může mít pro autora shodný význam, slova jsou navzájem synonymy, příklady nalezneme na slajdu č. 7. Jedno slovo naopak může mít pro autora několik různých významů. Tento vztah nazýváme homonymie a příklad homonym nalezneme na slajdu č. 8. Jeden tvar slova může mít více významů, které jsou gramatickými tvary od různých slov, někdy se jejich základní tvary liší i ve slovním druhu. Příklady takových slov nalezneme na slajdu č. 9. Významy slov se také mohou překrývat. Slova mohou být uspořádána v různých hierarchiích, kdy slovem nadřazeným můžeme zastoupit slovo podřazené. Slovo může být také zastoupeno nějakou jeho asociací. Příklady hierarchie a asociace najdeme na slajdu č. 10. Přiřazení významu slovu je závislé i na osobě, která text píše či čte. Dva lidé mohou jednomu slovu přikládat částečně nebo zcela rozdílný 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ů. Například v případě slov označujících příbuzenské vztahy (matka, otec, bratr, ) si každý z nich může představit osoby, které jsou v daném vztahu s ním samotným. Po přečtení stejného textu může nastat situace, že dva různí čtenáři nemusí přečtením získat stejnou informaci jako autor textu. Získaná informace se mlže lišit i mezi čtenáři navzájem. Homonymie a nejednoznačnosti narůstají při přechodu od slov k větám. Vlastní jména slovesného původu stojící na začátku věty mohou být zaměněny se souvětím o dvou větách (příklady na slajdu č. 12 nahoře). Problém dělá i spojka spojující dva předměty ve větě, pokud je první z předmětu rozvitý (příklady na slajdu č. 12 veprostřed). Někdy z věty nejde poznat, které slovo je podmětem a které předmětem věty (příklad na slajdu č. 12 dole). Příklady vět s několika možnými, zcela odlišnými, významy nalezneme na slajdech č. 13 (pro češtinu) a č. 14 (pro angličtinu). 3 Přesnost a úplnost Mějme dva různé fulltextové vyhledávací nástroje (například dva různé webové vyhledávače nebo dva dokumentografické informační systémy DIS). Jakým způsobem můžeme porovnat kvalitu jejich práce (nalezených odpovědí)? Jedna z možných situací je znázorněna na obrázku na slajdu č. 19. Celý obrázek (obdélník) znázorňuje dokumenty v databázi. Část dokumentů (elipsa vlevo dole) je nalezena a vrácena systémem DIS 1, část dokumentů (elipsa vpravo nahoře) systémem DIS 2. Relevantní dokumenty vzhledem k položenému dotazu jsou v elipse uprostřed. Průnik množin vrácených dokumentů oběma systémy je prázdný, přesto každý ze systému nalezl část relevantních dokumentů.

Další problém spočívá v různém hodnocení relevance dokumentu vzhledem k dotazu dvojicí různých tazatelů. Na obrázku na slajdu č. 20 je množina vrácených dokumentů (elipsa dole). Množiny relevantní dokumenty jsou pro každého z tazatelů rozdílné (elipsa nahoře a elipsa vpravo). Z vrácených dokumentů každý z uživatelů označí za relevantní jiné dokumenty. Pro měření kvality nalezeného výsledku (množiny dokumentů) pro daný dotaz se využívají dva koeficienty: přesnost a úplnost (slajd č. 21). Přesnost (Precision) má zkratku P a je definována jako podíl počtu vrácených relevantních dokumentů (Nvr) ku počtu všech vrácených dokumentů (Nv). Jedná se o pravděpodobnost, že dokument zařazený v odpovědi je relevantní. Úplnost (Recall) má zkratku R a je definována jako podíl počtu vrácených relevantních dokumentů (Nvr) k počtu relevantních dokumentů (Nr). Jedná se o pravděpodobnost, že relevantní dokument je součástí odpovědi. Koeficienty Nvr a Nr jsou závislé na subjektivním názoru tazatele o relevanci jednotlivých dokumentů. Přesnost a úplnost je zobrazena v grafu (slajd č. 23), kde přesnost je na ose x, úplnost na ose y. Přesnost i úplnost mohou nabývat hodnot z intervalu [0,1]. V ideálním případě by v odpovědi byly zařazeny právě a pouze všechny relevantní dokumenty, přesnost i úplnost by nabývala hodnot 1 (v grafu nahoře vpravo). V běžném případě odpověď na první verzi dotazu nebývá ani úplná, ani přesná (v grafu dole vlevo). Na obrázku na slajdu č. 24 je zobrazeno jak probíhá postupné ladění dotazu s cílem vylepšit jeho přesnost a úplnost. Optima lze teoreticky dosáhnout, ale v praktických případech to možné nebývá. V praxi jsou koeficienty přesnosti a úplnosti na sobě nepřímo závislé, jejich součin je konstanta výrazně menší než jedna. Pokud se snažíme zvýšit přesnost, snížíme počet získaných relevantních dokumentů. Pokud se snažíme zvýšit úplnost, získáme větší podíl nerelevantních dokumentů. Situace je graficky znázorněna na obrázku na slajdu č. 25. 4 Kritérium predikce a kritérium maxima Při formulaci dotazů je potřebné uhádnout, které termíny (slova) byly autorem dokumentu použity pro vyjádření dané myšlenky. Problém může způsobit použití synonym, které tazatele při formulaci dotazu nemusí ani napadnout, překrývání významů slov, či opisy jedné situace jinými slovy. Kritérium predikce se zabývá zajištěním shody při výběru termínu použitých v dotazu a v hledaném dokumentu. Částečným řešením je zařazení tezauru, který obsahuje hierarchie slov a jejích významů, synonyma slov a asociace mezi slovy. Tazatel může tezaurus využít při formulaci dotazů. Při ladění dotazů mají uživatelé tendenci se chovat konzervativně. V dotazu zůstávají ty části, které uživatele napadly na začátku a mění se jen ty části, které uživatele napadly později a podle uživatele pouze zpřesňují dotaz, ale v případě nekvalitního výsledku nemají šanci ho vylepšit. Je vhodné uživateli pomoci s odstraňováním části dotazu, které vedou k nerelevantním dokumentům a naopak mu navrhnout vylepšení dotazu, které k relevantním dokumentům vedou. Relevanci najitých dokumentů musí uživatel sám posuzovat.

Kritérium maxima říká, že uživatel je schopen a ochoten si prohlédnout 20-50 vrácených dokumentů. Větší počet vrácených dokumentů bude pravděpodobně nevyužit. Je třeba dokumenty řadit sestupně podle míry předpokládané relevance a v tomto pořadí je předkládat uživateli. V důsledku kritéria maxima se uživatel obvykle snaží zvýšit přesnost, najít malé množství dokumentů, mezi kterými se téměř nevyskytují nerelevantní dokumenty. V některých oblastech je potřeba kromě přesnosti i úplnost (například právo). 5 Předzpracování Pro fulltextové vyhledávání se používají dva modely: boolský a vektorový. V jednodušším boolském modelu jsou dotazy tvořeny ve formě boolských formulí. Formule se skládají z hledaných slov, která jsou spojena logickými spojkami (konjunkce, disjunkce, negace). Nejčastěji uživatelé hledají konjunkci zadaných slov. Na slajdu č. 32 vidíme způsob předzpracování dokumentů, než jsou zařazeny do databáze. První fáze je filtrace, při které se z dokumentu získá čistý text odstraněním formátovacích značek. Následuje Desambiguace, při které se podle kontextu určí význam jednotlivých slov. Následuje lematizace, při které se určí základní tvar slova. V další fázi se vytvoří index, který bude použitý při vyhledání konkrétních dotazů. Tomuto indexu se říká invertovaný seznam a obsahuje ke každému slovu (přesněji lematu) seznam dokumentů, ve kterých se dané slovo nachází. Můžou zde být i doplňkové informace o přesných pozicích výskytu slova v dokumentu. 6. Fulltextové vyhledávání v SQL Serveru Pro uložení textového dokumentu do tabulky v databázovém systému je třeba použít datové typy pro práci s rozměrnými daty, normou SQL nazývané jako Large Objects (LOB). V případě SQL Serveru můžeme použít datový typ Text (velikost až 2 GB) pro texty v angličtině nebo NText (velikost až 1 GB) pro texty v národní znakové sadě. Pro kratší texty lze použít i základní datové typy char, nchar, varchar a nvarchar. Pro vyhledávání v textovém sloupci tabulky je nutno vytvořit fulltextový index, plná syntax příkazu je uvedena na slajdu č. 39. Z povinných údajů je nutné zadat jméno tabulky a sloupec uchovávajícího textový obsah a v klauzuli KEY INDEX název existujícího unikátního jednosloupcového indexu. Sloupec, nad kterým je tento unikátní index vyroben musí mít integritní omezení NOT NULL. V nepovinné klauzuli LANGUAGE lze zvolit jazyk textového indexu. V nepovinné klauzuli WITH CHANGE_TRACKING se určuje způsob aktualizace indexu. Při volbě AUTO se bude index aktualizovat zároveň s aktualizací textových dat, což může při časté změně dat značně zpomalovat práci databázového sytému. Při volbě OFF se aktualizace neprovádí (defaultní nastavení). Při volbě MANUAL se vytváří žurnál změn v datech, jehož využití pro aktualizaci indexu lze provést ručně nebo pravidelně jednou za určitý časový interval. Na slajdu č. 42 vidíme příklad vytvoření textového indexu na tabulce JobCandidate. Nejprve na sloupci JobCandidateID vytvoříme unikátní index ui_ukjobcand. Tento sloupec obsahuje integritní omezení NOT NULL. Následně vytvoříme fulltextový katalog ft.

Tento katalog bude automaticky použit pro uchovávání všech fulltextových indexů, které vytvoříme. Konečně následuje vlastní vytvoření fulltextového indexu na sloupci Resume tabulky JobCandidate s využitím unikátního indexu ui_ukjobcand. Pro dotazování nad fulltextovým indexem lze použít predikát CONTAINS (slajd č. 44), který vyhodnocuje, zda hodnota v daném sloupci obsahuje slova v požadovaném vzájemném vztahu. Operátor má dva povinné parametry a jeden parametr nepovinný. Prvním parametrem je sloupec textového datového typu. Druhým parametrem je vlastní dotaz (uzavřený v apostrofech). Dotaz může obsahovat jednotlivá hledaná slova a definovat požadované vztahy mezi nimi pomocí operátorů. Třetí parametr je jazyk textu a tento parametr je nepovinný. Seznam binárních fulltextových operátorů je na slajdu č. 45. Binární operátory lze psát slovem nebo symbolem. Můžeme požadovat přítomnost obou operandu (operátor AND respektive &), přítomnost alespoň jednoho z operandů (operátor OR respektive ), přítomnost prvního operandu a nepřítomnost druhého operandu (operátor AND NOT respektive &!), přítomnost obou operandů blízko sebe v textu (operátor NEAR respektive ~). Dalším operátorem je FORMSOF (slajd č. 46), který se syntakticky chová spíše jako funkce. Své operandy má uzavřeny v kulatých závorkách a oddělené čárkou. Prvním operandem je buďto INFLECTION pro hledání všech slovních tvarů nebo THESAURUS pro hledání slov s podobným významem. Druhým parametrem je slovo uzavřené v uvozovkách, pro které se první parametr vyhodnocuje. Na následujícím příkladě vybíráme z tabulky TextTab ty řádky, které obsahují ve sloupci article text s výskytem slova game nebo slovo s podobným významem a zároveň neobsahuje slovo work. SELECT * FROM TextTab WHERE CONTAINS(article, 'FORMSOF(THESAURUS, "game") AND NOT work') Ze slova můžeme uvést pouze jeho začátek a poté použít operátor hvězdičky *. Budou se hledat všechna slova s daným prefixem. Operátor ISABOUT (slajd č. 46), má své operandy v závorce, takže na první pohled vypadá jako funkce. Jednotlivé operandy jsou slova (bez použití uvozovek nebo apostrofů) následované klíčovým slovem WEIGHT a v závorce uzavřenou váhou slova v dotazu. Váha slova může nabývat hodnot z intervalu [0,1]. Čím je hodnota větší, tím je větší důležitost daného slova v dotazu. Operandů může být libovolné množství, jsou vzájemně oddělené čárkami. Operátor ISABOUT je vhodný pro dotazy s využitím CONTAINSTABLE. Funkce CONTAINSTABLE (slajd č. 48) se používá pro vytváření fulltextových dotazů, jejichž výsledky mají obsahovat číselné vyjádření relevance textu s dotazem. Parametry funkce jsou tabulka, textový sloupec této tabulky a dotaz. Nepovinně může následovat jazyk textu a omezení na daný počet nejvíce relevantních odpovědí. Funkce vrací tabulku hodnot shody textového sloupce původní tabulky s dotazem. Tabulka vrácená výsledkem dotazu obsahuje dva sloupce KEY a RANK. Sloupec KEY obsahuje identifikátor řádku (dle unikátního klíče použitého při tvorbě fulltextového indexu) Sloupec RANK je ohodnocení relevance textového sloupce s dotazem (čím vyšší hodnota, tím relevantnější dokument).

Na slajdu č. 49 je kostra vnitřního spojení původní tabulky s tabulkou vytvořenou funkcí CONTAINSTABLE. Spojení probíhá přes unikátní index, který byl použit při tvorbě fulltextového indexu. Na slajdu č. 50 vidíme použití této kostry k vytvoření skutečného dotazu, pro formulaci dotazu využíváme operátor ISABOUT. Na slajdu č. 51 vidíme využití kostry k vytvoření jiného dotazu s využitím operátorů OR a NEAR. Vráceno bude pouze 10 nejrelevantnějších odpovědí (číslo 10 je pro zvýraznění na slajdu podtrženo). Klíčové pojmy fulltextové vyhledávání synonyma, homonyma, hierarchie, asociace přesnost a úplnost kritérium predikce, kritérium maxima tezaurus boolský model invertovaný seznam CONTAINS, CONTAINSTABLE FORMSOF, ISABOUT Otázky k rekapitulaci Upozornění: odpovědi na některé zde uvedené otázky nelze najít ve studijním textu tohoto tématického bloku. Lze je získat vlastním experimentováním se zdrojovými kódy nebo studiem doporučené literatury. V jakých reálných aplikacích se můžeme setkat s fulltextovým vyhledáváním? Jaké jsou hlavní rozdíly mezi fulltextovým vyhledáváním a pokládáním dotazů v SQL databázi? V přirozených jazykách neexistuje jednoznačné zobrazení mezi slovy a jejich významy. Uveďte příklady dokládající toto tvrzení. Jak tato skutečnost ovlivňuje zpracování dokumentu pro fulltextové vyhledávání? Definujte přesnost a úplnost, uveďte i příslušné vzorce. Jakých hodnot tyto koeficienty nabývají a co tyto hodnoty říkají o kvalitě odpovědi? Je nějaký vzájemný vztah mezi přesností a úplností v praxi? Vysvětlete kritérium predikce a jeho důsledky. Vysvětlete kritérium maxima a jeho důsledky. Popište jak probíhá předzpracování dokumentu pro fulltextové vyhledávání. Jak se vytváří fulltextový index v SQL Serveru? Uveďte posloupnost příkazů a omezující podmínky. Jakou klauzuli lze použít pro fulltextové vyhledávání v SQL Serveru? Jaké operátory lze použít pro fulltextové vyhledávání v SQL Serveru? Podrobně vysvětlete operátor FROMSOF. Jakou funkci lze použít pro vytváření fulltextových dotazů, pokud chceme znát i míru relevance najitých dokumentů vzhledem k dotazu? Podrobně vysvětlete operátor ISABOUT. Své odpovědi zdůvodněte. Můžete přidat i syntaktické zápisy tam, kde je to vhodné.

Doporučené příklady k naprogramování 1. V SQL Serveru navrhněte tabulku novinových článků získaných z internetu. Napište SQL skript, které tyto tabulky vytvoří. Pokud jste vytvářeli tabulky v grafickém rozhraní, lze skript získat volbou (Skript table as). 2. Vytvořte SQL skript, který tabulku naplní alespoň 25 řádky s reálnými daty. 3. Vytvořte alespoň 5 zajímavých fulltextových dotazů nad touto tabulkou. Každý z v tomto bloku probíraných operátorů, funkcí či klauzulí využijte alespoň jednou. Do komentářů uveďte i zadání jednotlivých dotazů. Studijní literatura [1] Kopecký: Výběr ze slajdů k 6. přednášce z předmětu Databázové aplikace (DBI026) vyučovaného na MFF UK. (v tomto tématickém bloku označované jako slajdy ) https://is.vsfs.cz/auth/el/6410/leto2010/eq_n_ds/um/ds7.ppt [2] Pokorný, Snášel, Kopecký: Dokumentografické informační systémy. Karolinum, UK Praha, 2005. [3] Manning, Raghavan, Schütze: Introduction to Information Retrieval, Cambridge University Press, 2008. [4] Webové stránky předmětu Dokumentografické informační systémy (DBI010) vyučovaného na MFF UK. http://www.ms.mff.cuni.cz/~kopecky/vyuka/dis/