1 of 25

Umělá inteligence�pro humanitní a společenské vědy

Barbora Hladká, Martin Holub�{hladka, holub}@ufal.mff.cuni.cz

https://ufal.mff.cuni.cz/courses/npfl142

unless otherwise stated

Univerzita Karlova

Matematicko-fyzikální fakulta

Ústav formální a aplikované lingvistiky

Přednáška #3

2 of 25

Počítačové zpracování přirozeného jazyka

2

Přednáška #3

3 of 25

Natural Language Processing (NLP)

NLP používá metody strojového učení.

3

hluboké�učení

strojové�učení

informatika

lingvistika

NLP

umělá inteligence�(AI)

symbolická�AI

Přednáška #3

Přednáška #3

4 of 25

NLP – základní lingvistické procedury

  • Tokenizace�= segmentace textu na menší jednotky, např. slova (viz lekce č. 2)
  • Lemmatizace�= identifikace základních tvarů slov, lemmat�základních tvarů > základní tvar
  • Morfologická analýza �= identifikace gramatických vlastností slov�ženu podstatné jm., č. jednotné, 4. pád / sloveso, 1. osoba, č. jednotné
  • Tagging�= značkování slov gramatickými značkami dle kontextu v textu (Ženu holí stroj.)
  • Syntaktická analýza (parsing)�= identifikace gramatických struktur vět
  • Detekce a klasifikace pojmenovaných entit, tj. osob, míst, organizací aj.�Americká Akademie filmového umění a věd vyzdvihla jak jeho režii …, za nimiž stojí filmař Sean Baker ...

4

Přednáška #3

Přednáška #3

5 of 25

Příběhy migrantů

je možné procházet v prostředí TEITOK, kde jsou zpracované lingvistickými nástroji pro syntaktickou analýzu a detekci jmenných entit. Takto zpracovat texty budete umět taky.

5

Přednáška #3

Přednáška #3

6 of 25

Příběhy migrantů v TEITOKu

slouží také jako ukázka toho, proč je důležité ovládat regulární výrazy

6

Přednáška #3

Přednáška #3

7 of 25

Příběhy migrantů v TEITOKu

slouží také jako ukázka toho, proč je důležité ovládat regulární výrazy

7

Přednáška #3

Přednáška #3

8 of 25

NLP – základní lingvistické procedury

  • Tokenizace�= segmentace textu na menší jednotky, např. slova (viz lekce č. 2)
  • Lemmatizace�= identifikace základních tvarů slov, lemmat�základních tvarů > základní tvar
  • Morfologická analýza �= identifikace gramatických vlastností slov�ženu podstatné jm., č. jednotné, 7. pád/sloveso, 1. osoba, č. jednotné
  • Tagging�= značkování slov gramatickými značkami dle kontextu v textu Ženu holí stroj.
  • Syntaktická analýza (parsing)�= identifikace gramatických struktur vět
  • Detekce a klasifikace pojmenovaných entit, tj. osob, míst, organizací aj.�Americká Akademie filmového umění a věd vyzdvihla jak jeho režii …, za nimiž stojí filmař Sean Baker ...

8

UDPipe

NameTag

Přednáška #3

Přednáška #3

9 of 25

UDPipe

9

Přednáška #3

10 of 25

10

Přednáška #3

Přednáška #3

11 of 25

Co dělá

11

Přednáška #3

Přednáška #3

12 of 25

UDPipe

  • Pipe = “roura” lingvistických nástrojů (tokenizace, tagging, lemmatizace, parsing)
  • UD = Universal Dependencies je rámec pro lingvistickou analýzu textů
    • univerzální, tj. pro všechny jazyky
      • stejná metoda syntaktické analýzy, tzv. závislostní stromy (dependency trees)
      • stejné značky pro tagging a parsing
  • UD kolekce 200 korpusů pro více jak 150 jazyků
    • lingvisticky ručně analyzované dle UD
    • data pro trénování UDPipe pro jednotlivé jazyky

12

Přednáška #3

Přednáška #3

13 of 25

UDPipe v R

13

Přednáška #3

Přednáška #3

14 of 25

Frekvenční slovník lemmat v “Aunty”

14

library(hcandersenr) # pohádky a příběhy H.Ch. Andersena

dataset <- hcandersen_en %>% # vybrat Aunty v angličtině

filter(book == "Aunty")

# reprezentovat příběh jako data frame – viz ?udpipe()

aunty <- data.frame(doc_id = dataset$book, text = dataset$text)

# načíst UDPipe model pro angličtinu

ud_model <- udpipe_download_model(language = "english")

ud_model <- udpipe_load_model(ud_model$file_model)

# pustit UDPipe

aunty_ud <- udpipe(aunty, ud_model)

str(aunty_ud)

Přednáška #3

Přednáška #3

15 of 25

Frekvenční slovník lemmat v “Aunty”

15

aunty_ud %>% # slovník tokenů

count(token, sort=TRUE) %>%

head(n=10)

aunty_ud %>% # slovník lemmat

count(lemma, sort=TRUE) %>%

head(n=10)

U dvou tokenů of je lemma off. Jak se to mohlo stát?

Přednáška #3

Přednáška #3

16 of 25

NameTag

16

Přednáška #3

17 of 25

17

dataset$story[1]

Přednáška #3

Přednáška #3

18 of 25

Authorship�Cvičný dataset k úloze o rozpoznávání autorství

18

Přednáška #3

19 of 25

Automatické rozpoznání autorství

  • Formulace úlohy, např. takto – tak vypadalo zadání školního cvičení na MFF

  • Textová data – trénovací příklady

= ukázky textů délky cca 1000 slov – na nich by se měl autorský styl projevit

    • Delexikalizované texty
      • plnovýznamová slova jsou nahrazena značkami pro slovní druhy
      • účel delexikalizace = chceme abstrahovat od tématu textu, soustředíme se pouze na styl

  • Cílové hodnoty predikce
    • autoři mají přidělen číselný kód "01" – "06"
    • skuteční autoři jsou 1) A. Stašek, 2) J. Neruda, 3) J. Arbes, 4) K. Klostermann, 5) F. X. Šalda,�6) T. G. Masaryk

19

Přednáška #3

Přednáška #3

20 of 25

Distribuce nejfrekventovanějších uni/bi-gramů�u jednotlivých autorů ve cvičném datasetu

20

Přednáška #3

21 of 25

Pokročilejší regulární výrazy pro zpracování XML dat

1) extrakce podřetězce, který je pouze částí vyhledávaného vzorku (patternu).�� ⟶ skupiny znaků ve vzorku – např. str_extract("... (...) ...", group = ...)

2) automatická náhrada nalezeného podřetězce jiným řetězcem

str_replace("...", "...")

3) opakované filtrování dat regulárními výrazy s pomocí roury

⟶ např. ... %>% str_subset("...") %>% str_extract("...") %>% ...

Zde ke stažení užitečný CheatSheet pro práci se stringy (knihovna stringr)

21

Přednáška #3

Přednáška #3

22 of 25

Nejfrekventovanější delexikalizované n-gramy podle autorů

Praktický postup získání frekvenční charakteristiky autora

  • XML datový zdroj ⟶ extrakce posloupnosti delexikalizovaných tokenů z každé ukázkové pasáže
  • sestavení n-gramů podle požadované míry detailu� ⟶ unigramy, bigramy, trigramy, …
  • sloučení n-gramů z pasáží od stejného autora
  • vytvoření a seřazení frekvenčního slovníku

Dále se zpravidla soustředíme na distribuci několika málo desítek nejfrekventovanějších n-gramů

Porovnání mezi jednotlivými autory je nutno provádět pomocí relativní četnosti

Vhodná je srovnatelná vizualizace rozdělení

22

Přednáška #3

Přednáška #3

23 of 25

Rozpoznávání autorství – k čemu směřujeme

23

Přednáška #3

24 of 25

Experimentování s automatickým prediktorem

Další práce a experimenty v tomto kurzu

  • základním předpokladem dalšího postupu ke strojovému učení je předzpracování dostupných dat a sestavení vektorů příznaků�
  • mezi příznaky se snažíme zahrnout veškeré dostupné informace, které by mohly být relevantní pro zlepšení kvality automatického rozpoznávání (predikce)�
  • jsou známé heuristiky, které pro klasifikaci textů dobře fungují�
  • je žádoucí srovnat různé algoritmy strojového učení a vyhodnotit, jak jsou úspěšné na dané datové sadě

24

Přednáška #3

Přednáška #3

25 of 25

25

  • Ukázka zpřístupnění příběhů migrantů v prostředí TEITOK
  • Lingvistická analýza textů pomocí nástrojů UDPipe a NameTag
  • Vytváření frekvenčních slovníků lemmat
  • Textový dataset Authorship – geneze a struktura dat
  • Zpracování textů pomocí regulárních výrazů
  • Frekvenční charakteristiky delexikalizovaných textů
  • Statistiky POS značek

Take-home message – aneb co si máte zapamatovat a naučit

Přednáška #3