Hlavní navigace

Jehla v kupce sena: Thesaurus

Karel Pánek

V minulých dílech jsme na Lupě psali o situacích, kdy vyhledávač musí překonat problém tzv. máloslovných dotazů, které jsou do něj vkládány. Z těch je totiž velice obtížné zjistit, na co se uživatel vlastně ptá. V tomto článku si popíšeme jednu ze základních technik, jak si stroj může dotaz upravit a "domyslet".

Způsob, jakým si obohatíme dotaz, je založen na principu thesauru. Strukturu thesauru jsme si představili v minulém díle, nyní se zaměříme především na jeho automatické vybudování.

Náš výchozí stav je znalost všech dokumentů a indexovaných slov (termů), naším cílem je umět přidat (automaticky) do uživatelského dotazu slova, která zajistí, že výsledek vrácený strojem bude kvalitnější. V případě dnes prezentované metody se jedná o zkvalitnění v řádu až jedné čtvrtiny (20–25 procent) nad nejméně třemi rozdílnými textovými bázemi. Kromě toho ukážeme, jak nastavit váhy (důležitost) jednotlivých slov nově vytvořeného dotazu.

Zaveďme si nejprve několik označení. Jak jste si již zajisté zvykli, jako N nazýváme počet dokumentů, které držíme v indexu. Četnost výskytu i-tého termu (ki) v j-tém dokumentu jsme označovali fi,j. Počet všech termů nazýváme jako t, a množství unikátních indexovaných termů v dokumentu j jako tj. Podobně jako jsme definovali inverzní frekvenci dokumentu, nadefinujeme i inverzní frekvenci termu v j-tém dokumentu:

itfj=log(t/tj).

Dále budeme postupovat analogicky k vektorovému modelu, který byl již rozebrán v předcházejících kapitolách. Vstupním vektorem do našich úvah bude vektor přidružený ke každému i-tému termu: (wi,1,wi,2,…w­i,N).

Narozdíl od běžného vektorového modelu je pro výpočet jeho vah ustálena formule:

wi,j = disperj . itfj / sqrt( sum( p=1..N; disperp2 . itfj2 ) )

kde

disperj = 1/2 ( 1+fi,j/max(j)­fi,j )

Podobný vzorec můžete použít i pro stanovování vah term-dokument v jádru vektorového modelu. Její plus je v tom, že lépe využije a rozprostře hodnoty do celého povoleného intervalu. Při tom zároveň silně zvýrazní ty nulové (symbolizující neexistující výskyt).

Podobnost (zde se ale uživá pojem korelace) dvou termů stanovujeme – jak je ostatně zvykem – ve vektorových modelech, prostým skalárním součinem odpovídajících vektorů (viz. výše).

Pro termy ki a kj je korelace:

ci,j = sum( all d; wi,d . wj,d )

Další postup je následovný. Na vstup jsme dostali dotaz, který obsahuje termy q1, q2, … qz s váhami w1,q, w2,q, … wz,q. Pro výpočet těchto vah užijeme vztah, který jsme představili dnes, nebo i některý z dříve uvedených.

Poté zjistíme podobnost, která v základu odpovídá korelaci, a to vůči všem termům.

sim( q, kj ) = sum( all ti; wi,q . ci,j )

Dostali jsme se do stavu, kdy pro uživatelský dotaz můžeme získat TOP-X termů v závislosti na jejich vysoké podobnosti. Ty do původního dotazu přidáme. Kolik si stanovíme tajemné X, je závislé na síle hardware, kterým disponujeme.

Zbývá již jen nastavit váhu nově přidaným termům dotazu.

wi,Q = sim( q, ki ) / sum( all j; wj,q)

Formální upřesnění: Q je nově utvářený dotaz.

Závěr

Technika automaticky spravovaného thesauru není nová. Je výhodné ji použít, pokud vytváříte jeden stroj pro nasazení s více indexy (indexovaní technických, pravních ad. dokumentů). Její použití pro velký a globální internetový index je trošičku sporné.

Protože se v našem seriálu postupně posouváme z teoretické oblasti do praktické, dovolte následující poznámku. Výpočet korelace je časově velmi náročný. Jako takový se proto nerealizuje pokaždé s příchodem nového dotazu do systému, ale v časových intervalech (např. každý den nebo po zaindexovaní dalších 10.000 dokumentů atp.). V těch spočteme najednou všechny korelační hodnoty. Pro připomenutí, ve středně velkém systému není neobvyklé indexovat cca 50.000 termů (po stemmingu), a velikost korelační matice může být proto i paměťově nepříjemně náročná. V takových případech bývá vhodné neuvažovat pro thesaurus všechny dostupné termy, což však může mít zase negativní vliv na slibované zkvalitnění odpovědí.

Platí neochvějná pravda, že při zpracování obrovských bází dochází k vyhlazení potřebných statistických hodnot. Pokud byste chtěli uvedenou metodu použít, bylo by zřejmě vhodné využít uživatelských profilů a sběrů zpětné vazby. Tyto techniky, stejně jako další možnou techniku výroby thesauru, představíme v následujících kapitolách.

Našli jste v článku chybu?
Root.cz: Nová třída SD karet A1 s vysokým výkonem

Nová třída SD karet A1 s vysokým výkonem

Vitalia.cz: Analýza letáků: Na co lákají do prodejen?

Analýza letáků: Na co lákají do prodejen?

Root.cz: Mirai má nový cíl 5 milionů routerů

Mirai má nový cíl 5 milionů routerů

120na80.cz: Rovnátka, která nejsou vidět

Rovnátka, která nejsou vidět

DigiZone.cz: Kanál TA3 HD zahájil vysílání

Kanál TA3 HD zahájil vysílání

Podnikatel.cz: Udávání kvůli EET začalo

Udávání kvůli EET začalo

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Podnikatel.cz: 3, 2, 1..EET startuje. Na co nezapomenout?

3, 2, 1..EET startuje. Na co nezapomenout?

Měšec.cz: Jak levně odeslat balík přímo z domu?

Jak levně odeslat balík přímo z domu?

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

120na80.cz: 5 nejčastějších mýtů o kondomech

5 nejčastějších mýtů o kondomech

120na80.cz: Popraskané rty? Některé balzámy stav zhoršují

Popraskané rty? Některé balzámy stav zhoršují

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Root.cz: Telegram spustil anonymní blog Telegraph

Telegram spustil anonymní blog Telegraph

Měšec.cz: Sleva na dítě a manželku pro OSVČ je zpět. Ale..

Sleva na dítě a manželku pro OSVČ je zpět. Ale..

DigiZone.cz: Perspektivy TV v roce 1939 podle časopisu Life

Perspektivy TV v roce 1939 podle časopisu Life

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Měšec.cz: Stavební spoření: alternativa i pro seniory

Stavební spoření: alternativa i pro seniory