- identifikace témat (topic) textových dokumentů
- formální reprezentace témat
- určení tématické podobnosti dokumentů
- témata:
- počasí, sport, cestování apod.
- někdy nelze specifikovat
Vector space modely
- díky své jednoduchosti nejpoužívanjší model pro reprezentaci dokumentů v oblasti vyhledávání informací
- reprezentace textového dokumentu z dané kolekce dokumentů (korpusu) ve vektorovém prostoru
- reptezentace textu (dokumentu, dotazu apod.) jako bodů v n-rozměrném prostoru
- každá dimenze odpovídá nějakému slovu z kolekce dokumentů, přítomnost slova v konkrétním dokumentu lze reprezentovat např. binárně (1 – slovo se v dokumentu nachází, 0 – nenachází)
Příklad
3 dokumenty s větami:
- the man walked the dog
- the man took the dog to the park
- the dog went to the park
Seznam slov: [dog, man, park, the, to, took, walked, went]
Model: Binární reprezentace
- jednoduchá a v mnoha případech dostačující
- vektor udává, zda je (1) či není (0) dané slovo v daném dokumentu přítomno
Vektory z příkladu:
1. dokument: [1, 1, 0, 1, 0, 0, 1, 0] 2. dokument: [1, 1, 1, 1, 1, 1, 0, 0] 3. dokument: [1, 0, 1, 1, 1, 0, 0, 1]
Model: Term Frequency (TF)
- číslo vyjadřující počet opakování slova v daném dokumentu
- nevýhody:
- nastavuje vyšší váhu i obecně častým slovům (předložky, spojky, sponová a modální slovesa apod.)
Vektory z příkladu:
1. dokument: [1, 1, 0, 2, 0, 0, 1, 0] 2. dokument: [1, 1, 1, 3, 1, 1, 0, 0] 3. dokument: [1, 0, 1, 2, 1, 0, 0, 1]
Model: Term frequency – inverse document frequency (TF-IDF)
- zvýhodňuje slova, která se vyskytují často v daném dokumentu a zároveň se nevyskytují často v ostatních dokumentech
- součin TF s IDF
- IDF – logaritmus podílu počtu všech dokumentů ku počtu dokumentů, které obsahují dané slovo
Vektory z příkladu:
1. dokument: [0, 0.18, 0, 0, 0, 0, 0.48, 0] 2. dokument: [0, 0.18, 0.18, 0, 0.18, 0.48, 0, 0] 3. dokument: [0, 0, 0.18, 0, 0.18, 0, 0, 0.48]
- slova vyskytující se ve všech dokumentech mají nulovou váhu
- unikátní slova mají váhu nejvyšší
Porovnání dotazu s dokumentem
- do vektorového prostoru zobrazíme dotaz a dokumenty
- nejrelevantnější dokument pro dotaz je ten, jehož vektor leží nejblíže vektoru dotazu (v reálných vyhledávačích se výsledky řadí podle řady dalších kritérií)
- nevýhody:
-
Mezi další problémy reprezentace dokumentů vektory slov patří synonymie a homonymie, které jsou pro přirozené jazyky tolik typické. Pokud bychom v našem prostoru porovnávali např. dokument obsahující pouze dvě slova „tenisové rakety“ s dotazem „sportovní potřeby“, vzdálenost bude obrovská, a to i přesto, že tématicky jsou si velice blízko. Bude tomu tak proto, že dotaz a dokument nemají žádná společná slova. Naopak dotaz „vesmírné rakety“ bude našemu dokumentu určitě blíže, přestože nemá tematicky s tenisem ani sportem nic společného.
-
Snížení dimenzionality
Zipfův zákon
- pokud všechna slova z nějaké kolekce textů seřadíme sestupně podle frekvence a očíslujeme je od jedné, potom součin tohoto pořadí a frekvence slova zůstává pro všechna slova přibližně konstantní.
- pokud má nejčastější slovo frekvenci 1000, druhé nejčastější má frekvenci 500, třetí 333 a tak dále
- S výjimkou těch nejméně a nejvíce četných slov toto pravidlo funguje velmi dobře.
- základ jazyka je tvořen relativně malým počtem stále se opakujících slov
- Na problematiku se lze dívat i z druhé strany a vytvořit seznam takzvaných stop slov, která se vyskytují velice často, ale nenesou žádný význam. Jedná se převážně o spojky a předložky.
- Vypuštěním takových slov se však počet dimenzí příliš nesníží a jedná se spíše o optimalizaci pro rychlejší vyhledávání.
- Existuje celá řada dalších metod, které vybírají významná slova chytřeji.
Extrakce příznaků
- nahrazení původní množiny příznaků nějakou novou
- sloučit do jedné dimenze slova, která mají stejný význam (lemmatizace, stemming)
- jakmile známe u každého slova lemma, můžeme původní vektorový prostor slov nahradit vektorovým prostorem lemmat a všechna slova zobrazovat na dimenzi odpovídající jejich lemmatu.
- problémem lemmatizace a stemmingu je víceznačnost
- po nalezení všech možných lemmat je tedy většinou potřeba vybrat to správné, nejčastěji podle větného kontextu (desambiguace).
- Kromě toho bychom rádi sloučili i slova, která mají stejný význam, ale nemají shodný základní tvar – synonyma (
zubař
vs.stomatolog
,zde
vs.tady
apod.)
Lemmatizace
- převod slova na jeho základní tvar (Lemma)
učil => učit
Stemming
- převod slova na jeho kmen (word stem)
- běžně se používá např. pro angličtinu, u vysoce flektivních jazyků (čeština) je výhodnější použít lemmatizaci
učil => uč
Latentní sémantická analýza
Dimenze zde spíše než slovům odpovídají takzvaným konceptům – tématickým oblastem (technika, sport, kultura apod.)
Koncepty jsou vybírány automatickými metodami tak, aby co nejlépe korespondovaly s trénovacími daty.
Jednotlivá slova potom nemusí patřit právě do jednoho shluku, ale typicky patří do více shluků s různými vahami.
Například:
- slovo
fotbal
bude patřit do konceptusport
- slovo
vstupenka
do konceptusport
ikultura
@todo: https://blog.seznam.cz/2011/10/semanticka-analyza-textu-4/
Probabilistic Latent Semantic Analysis
@todo: https://blog.seznam.cz/2011/12/semanticka-analyza-textu-5/
Latentní Dirichletova alokace
- metoda pravděpodobnostní sémantické analýzy textů
- Jedná se o jednu z nejpokročilejších, a v současnosti zřejmě vůbec nejpoužívanější, metodu identifikace skrytých témat v textech
@todo: https://blog.seznam.cz/2011/12/semanticka-analyza-textu-6/
Možné aplikace metod
Information retrieval
- fulltextové vyhledávání
- Veškeré prohledávané dokumenty, stejně tak jako kladené dotazy, jsou reprezentovány pomocí vektorů témat a tyto vektory jsou následně porovnávány.
- Výsledky jsou potom seřazeny např. podle velikosti úhlu, který svírá vektor dotazu a vektor dokumentu.
Klasifikace textů
- rozřadit dokumenty do předem daných tříd (např. Kultura, Sport, Počasí, …)
- Klasický přístup k problém je pomocí reprezentace dokumentů vektory slov při použití nějakého algoritmu strojového učení s učitelem (např. logistická regrese nebo Support Vector Machine).
Thesaurus a synonymie
- slova s podobnými vektory lze shlukovat a automaticky tak vytvořit thesaurus
- poměrně úplný slovník určitého jazyka nebo jen oborové terminologie, často s hierarchickým uspořádáním jednotlivých hesel;[1] referenční příručka, která uživateli nabízí seznam synonym, někdy i antonym
- Nebude se však jednat o synonymii v pravém slova smyslu. Velmi blízké vektory budou mít například všechny barvy nebo dny v týdnu.
Doporučování
- Pomocí metod sémantické analýzy lze pro každého uživatele vytvořit vektor latentních témat, stejně tak jako nalézt takový vektor pro všechny filmy v databázi. Porovnáváním vektorů uživatelů a filmů lze identifikovat takové filmy, které by se uživateli mohly líbit, protože mají podobné vlastnosti jako filmy, které sám označil jako své oblíbené.