Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Fulltextové vyhledávání Michal Kopecký

Podobné prezentace


Prezentace na téma: "Fulltextové vyhledávání Michal Kopecký"— Transkript prezentace:

1 Fulltextové vyhledávání Michal Kopecký
Výběr ze slajdů k 6. přednášce předmětu Databázové Aplikace (DBI026) na MFF UK

2 Fulltextové vyhledávání
Filtrace, Disambiguace, Lemmatizace, Indexy, Tezaury, Dotazování

3 Fulltextové vyhledávání
Odlišné od principů běžného vyhledávání Neprohledávají se striktně strukturovaná data, kde má každý sloupec každé tabulky předem daný význam Prohledávají se volně psané texty, kde může být stejná událost popsaná více autory rozdílně Různá slova stejného významu (Synonyma) Různé slovní obraty a opisy DBI026 -DB Aplikace - MFF UK

4 Fulltextové vyhledávání
Databázové systémy využívají svých prostředků rozšiřitelnosti a dodávají standardně prostředky, které vyhledávání v textových datech umožňují DBI026 -DB Aplikace - MFF UK

5 Fulltextové vyhledávání
Standard: SQL/MM 2 SQL Multimedia and Application Packages Part 2: Full-Text Reálně rozdílné přístupy a možnosti Neexistuje objektivně nejlepší řešení Výsledky navíc podléhají subjektivním názorům tazatelů DBI026 -DB Aplikace - MFF UK

6 DBI026 -DB Aplikace - 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. ... DBI026 -DB Aplikace - MFF UK

7 DBI026 -DB Aplikace - MFF UK
Porozumění textu Synonymie slov Více slov může mít pro autora stejný význam krychle = kostka buldozer = nakladač ... DBI026 -DB Aplikace - MFF UK

8 DBI026 -DB Aplikace - 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í ... DBI026 -DB Aplikace - MFF UK

9 DBI026 -DB Aplikace - 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 DBI026 -DB Aplikace - MFF UK

10 DBI026 -DB Aplikace - 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 ... DBI026 -DB Aplikace - MFF UK

11 DBI026 -DB Aplikace - 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 stejnou informaci jako autor, ani navzájem. DBI026 -DB Aplikace - MFF UK

12 DBI026 -DB Aplikace - 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.) Dohnal předešel gen. Kvapila velmi výrazně. - jedna, nebo dvě 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? DBI026 -DB Aplikace - MFF UK

13 DBI026 -DB Aplikace - 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, 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ší DBI026 -DB Aplikace - MFF UK

14 DBI026 -DB Aplikace - 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, 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ší DBI026 -DB Aplikace - MFF UK

15 Fulltextové vyhledávání
Samotná formulace dotazu, který by vrátil všechny dokumenty, které tazatele zajímají a žádné jiné obvykle nelze zformulovat Spolu s vyhovujícími – relevantními – odpověďmi se obvykle vrací i odpovědi nerelevantní DBI026 -DB Aplikace - MFF UK

16 Fulltextové vyhledávání
Problémy Homonyma Ptá se tazatel dotazem „koruna“ na finanční, lesnické či panovnické dokumenty? Synonyma Vyhovuje dokument o „krychlích“ dotazu na dokumenty o „kostkách“? Vyhovuje dokument o „stromech“ dotazu na „souvislé grafy bez cyklů“? DBI026 -DB Aplikace - MFF UK

17 Fulltextové vyhledávání
Problémy Hierarchie významů Zvíře – Savec – Šelma – Medvěd Tiskovina – Časopis Ohebnost slov Jít, Jde, Jdu, Jdou, … DBI026 -DB Aplikace - MFF UK

18 Fulltextové vyhledávání
Striktní boolská logika není pro formulaci dotazů příliš vhodná Dokument buďto vyhovuje dotazu, nebo nevyhovuje Dotazování v textech vyžaduje třídit odpovědi podle předpokládané vhodnosti pro tazatele Je potřebné mít možnost definovat míru shody dotazu s dokumentem DBI026 -DB Aplikace - MFF UK

19 DBI026 -DB Aplikace - 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 DBI026 -DB Aplikace - MFF UK

20 DBI026 -DB Aplikace - 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. DBI026 -DB Aplikace - MFF UK

21 DBI026 -DB Aplikace - 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 DBI026 -DB Aplikace - MFF UK

22 DBI026 -DB Aplikace - 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. DBI026 -DB Aplikace - MFF UK

23 DBI026 -DB Aplikace - 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á 1 Optimum Počáteční odpověď 1 DBI026 -DB Aplikace - MFF UK

24 DBI026 -DB Aplikace - 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 … R 1 Optimum P 1 DBI026 -DB Aplikace - MFF UK

25 DBI026 -DB Aplikace - 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. R 1 Optimum P 1 DBI026 -DB Aplikace - MFF UK

26 DBI026 -DB Aplikace - 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 DBI026 -DB Aplikace - MFF UK

27 DBI026 -DB Aplikace - 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ů DBI026 -DB Aplikace - MFF UK

28 DBI026 -DB Aplikace - 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í DBI026 -DB Aplikace - MFF UK

29 DBI026 -DB Aplikace - 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 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 DBI026 -DB Aplikace - MFF UK

30 DBI026 -DB Aplikace - 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. DBI026 -DB Aplikace - MFF UK

31 Obvyklý postup předzpracování
Databáze obvykle používají některý z boolských modelů reprezentace dokumentů Nejlépe odpovídá běžným dotazům Relativně snadno se implementuje Dotazy jsou ve formě boolských formulí, ve kterých operandy tvoří jednotlivá slova Řada různých modifikací DBI026 -DB Aplikace - MFF UK

32 Obvyklý postup předzpracování
Filtrace Lemmatizace Desambiguace Seznam lemmat Tezaurus Stoplist Lemm. text Invertovaný seznam Indexace Invertovaný seznam DBI026 -DB Aplikace - MFF UK

33 Obvyklý postup předzpracování
Filtrace Odstraní formátovací značky a nechá čistý ASCII text Desambiguace Určí význam slova podle kontextu „pět chválu“ … sloveso pět „pět vozidel“ … číslovka pět Lemmatizace Určí základní tvar slova a gramatický tvar v dokumentu Často nahrazen pomocí stemmeru, který hledá kmen slova DBI026 -DB Aplikace - MFF UK

34 Obvyklý postup předzpracování
Indexace Vytvoří pomocné seznamy lemmat a dokumentů a invertovaný soubor dvojice [id_dok,id_lemmatu] setříděné dle id_lemmatu a zbavené duplicit dnes obvykle více informací, např. pětice [id_dok,č_odstavce,č_věty,č_slova,id_lemmatu] setříděné id_lemmatu Dovoluje vyhodnocování tzv. proximitních omezení na vzdálenost slov v dokumentu DBI026 -DB Aplikace - MFF UK

35 Fulltextové vyhledávání
Pro podporu vyhledávání je potřeba nad textovým sloupcem vytvořit index – invertovaný soubor Běžné textové sloupce jsou pro tyto účely krátké a nevyhovující Obvykle se takto indexují sloupce některého z LOB (Large OBject) typů DBI026 -DB Aplikace - MFF UK

36 DBI026 -DB Aplikace - MFF UK
Large OBjects (LOB) LOBy Standardní typy pro ukládání objemných dat na serveru definován v SQL-92 Full Až 4GB dat BLOB … standardní binární typ CLOB … znakový typ v univerzální znakové sadě serveru NCLOB … znakový typ v národní znakové sadě serveru V MS SQL Image … binární data do velikosti 2 GB Text … textová data do velikosti 2 GB NText … textová data v národní znakové sadě do vel. 1 GB DBI026 -DB Aplikace - MFF UK

37 DBI026 -DB Aplikace - MFF UK
Large Objects Ve sloupcích tabulky je uložen pouze deskriptor (tzv. LOB lokátor), odkazující na samotně uložená data DBI026 -DB Aplikace - MFF UK

38 Struktura MS SQL full-text
DBI026 -DB Aplikace - MFF UK

39 DBI026 -DB Aplikace - MFF UK
MS SQL fulltext Vytvoření indexu nad textovým sloupcem CREATE FULLTEXT INDEX ON table_name [(column_name [TYPE COLUMN type_column_name] [LANGUAGE language_term] [,...n])] KEY INDEX index_name [ON fulltext_catalog_name] [WITH {CHANGE_TRACKING {MANUAL | AUTO | OFF [, NO POPULATION]}} ] DBI026 -DB Aplikace - MFF UK

40 DBI026 -DB Aplikace - MFF UK
MS SQL fulltext Potřebné zadat Jméno tabulky, jméno textového sloupce typu char, nchar, varchar, nvarchar, text, ntext Jméno (co nejmenšího) unikátního indexu nad tabulkou v klauzuli KEY INDEX DBI026 -DB Aplikace - MFF UK

41 DBI026 -DB Aplikace - MFF UK
MS SQL fulltext Z dalších možností: Definice jazyka (LANGUAGE) Způsob aktualizace WITH CHANGE_TRACKING MANUAL … vytváření žurnálu změn v datech, jeho promítnutí do indexu se může provést ručně, nebo automaticky schedulerem AUTO … index se bude aktualizovat zároveň s daty OFF … index se nebude aktualizovat vůbec DBI026 -DB Aplikace - MFF UK

42 DBI026 -DB Aplikace - MFF UK
MS SQL fulltext Příklad vytvoření indexu: USE AdventureWorks; GO CREATE UNIQUE INDEX ui_ukJobCand ON HumanResources.JobCandidate(JobCandidateID); CREATE FULLTEXT CATALOG ft AS DEFAULT; CREATE FULLTEXT INDEX ON HumanResources.JobCandidate(Resume) KEY INDEX ui_ukJobCand; GO DBI026 -DB Aplikace - MFF UK

43 Dotazování se nad textovým indexem
Spolu s novými typy indexů databáze implementují nové operátory pro porovnávání dotazu s textem Operátory vrací číslo – očekávanou míru shody obsahu textu s tazatelovými požadavky DBI026 -DB Aplikace - MFF UK

44 Dotazování se nad textovým indexem
MS SQL používá boolský operátor – predikát CONTAINS( sloupec, ’dotaz’[, LANGUAGE jazyk ]) DBI026 -DB Aplikace - MFF UK

45 Dotazování se nad textovým indexem
Operátory pro dotazování AND, & … ‘mice & cats’ OR, | … ‘mice | cats’ AND NOT, & ! … ‘mice AND NOT cats’ NEAR, ~ … proximitní dotazování ‘mice NEAR cats’ DBI026 -DB Aplikace - MFF UK

46 Dotazování se nad textovým indexem
Operátory pro dotazování Fráze v uvozovkách FORMSOF ( INFLECTIONAL , slovo) slovo se hledá ve všech tvarech hide, hidden, … FORMSOF ( THESAURUS , slovo) slovo se rozvine pomocí tezauru pro daný jazyk na seznam slov s podobným významem DBI026 -DB Aplikace - MFF UK

47 Dotazování se nad textovým indexem
Operátory pro dotazování Začátek slova následovaný hvězdičkou pro hledání všech slov začínajících prefixem ISABOUT ( slovo WEIGHT (n) [,…]) Vážený term, vhodný pro dotazy s využitím operátoru CONTAINSTABLE DBI026 -DB Aplikace - MFF UK

48 Dotazování se nad textovým indexem
CONTAINSTABLE( tabulka,sloupec,dotaz[,jazyk][,top_n] ) Vrací tabulku hodnot shody sloupce tabulky s dotazem. Ohodnocení je v pseudo sloupci RANK DBI026 -DB Aplikace - MFF UK

49 Dotazování se nad textovým indexem
SELECT select_list FROM table AS FT_TBL INNER JOIN CONTAINSTABLE(table, column, query) AS KEY_TBL ON FT_TBL.unique_key_column = KEY_TBL.[KEY] DBI026 -DB Aplikace - MFF UK

50 Dotazování se nad textovým indexem
SELECT FT_TBL.CategoryName, FT_TBL.Description, KEY_TBL.RANK FROM Categories AS FT_TBL INNER JOIN CONTAINSTABLE(Categories, Description, 'ISABOUT (breads weight (.8), fish weight (.4), beers weight (.2) )' ) AS KEY_TBL ON FT_TBL.CategoryID = KEY_TBL.[KEY] ORDER BY KEY_TBL.RANK DESC DBI026 -DB Aplikace - MFF UK

51 Dotazování se nad textovým indexem
SELECT FT_TBL.Description, FT_TBL.CategoryName , KEY_TBL.RANK FROM Categories AS FT_TBL INNER JOIN CONTAINSTABLE (Categories, Description, '("sweet and savory" NEAR sauces) OR ("sweet and savory" NEAR candies)', 10) AS KEY_TBL ON FT_TBL.CategoryID = KEY_TBL.[KEY] DBI026 -DB Aplikace - MFF UK


Stáhnout ppt "Fulltextové vyhledávání Michal Kopecký"

Podobné prezentace


Reklamy Google