Hlavní navigace

Jehla v kupce sena: Thesaurus

10. 4. 2002
Doba čtení: 3 minuty

Sdílet

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é.

CIF23

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.

Autor článku

Autor není v zádném komerčním vztahu k firmám, které se orientují na vyhledávání v doméně CZ, a nikdy v takovém vztahu nebyl. Jeho komerční aktivity směřují mimo kontinentální Evropu.
Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).