Analáza textu: Sémantická analýza

  • 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 konceptu sport
  • slovo vstupenka do konceptu sport i kultura

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

 

Zdroje

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *