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

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

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.

Podobné prezentace


Prezentace na téma: "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."— 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 DBI026 -DB Aplikace - MFF UK 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 …

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

5 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ů

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

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

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

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

10 DBI026 -DB Aplikace - MFF UK 10 Porozumění textu Významy slov se mohou překrývat. –Hierarchicky zvíře > kůň > hřebec –Asociace kalkulátor ~ počítač ~ procesor...

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

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

13 DBI026 -DB Aplikace - MFF UK 13 Porozumění textu Příklad české věty s více gramaticky možnými významy –viz např. Podivné fungování gramatiky, 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ší

14 DBI026 -DB Aplikace - MFF UK 14 Porozumění textu Příklad anglické věty s více gramaticky možnými významy –viz např. Podivné fungování gramatiky, 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ší

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

16 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ů“?

17 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, …

18 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

19 DBI026 -DB Aplikace - MFF UK 19 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 DIS 1 Vrácené v DIS 2

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

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

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

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

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

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

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

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

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

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

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

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

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

33 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

34 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

35 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ů

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

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

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

39 DBI026 -DB Aplikace - MFF UK 39 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]}} ]

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

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

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

43 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

44 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 ])

45 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’

46 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

47 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

48 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

49 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]

50 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

51 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]


Stáhnout ppt "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."

Podobné prezentace


Reklamy Google