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
Počítačové zpracování přirozeného jazyka
2
Přednáška #3
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
NLP – základní lingvistické procedury
4
Přednáška #3
Přednáška #3
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
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
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
NLP – základní lingvistické procedury
8
UDPipe
NameTag
Přednáška #3
Přednáška #3
UDPipe
9
Přednáška #3
10
Přednáška #3
Přednáška #3
Co dělá
11
Přednáška #3
Přednáška #3
UDPipe
12
Přednáška #3
Přednáška #3
UDPipe v R
13
Přednáška #3
Přednáška #3
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
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
NameTag
16
Přednáška #3
17
dataset$story[1]
Přednáška #3
Přednáška #3
Authorship�Cvičný dataset k úloze o rozpoznávání autorství
18
Přednáška #3
Automatické rozpoznání autorství
= ukázky textů délky cca 1000 slov – na nich by se měl autorský styl projevit
19
Přednáška #3
Přednáška #3
Distribuce nejfrekventovanějších uni/bi-gramů�u jednotlivých autorů ve cvičném datasetu
20
Přednáška #3
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
Nejfrekventovanější delexikalizované n-gramy podle autorů
Praktický postup získání frekvenční charakteristiky autora
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
Rozpoznávání autorství – k čemu směřujeme
23
Přednáška #3
Experimentování s automatickým prediktorem
Další práce a experimenty v tomto kurzu
24
Přednáška #3
Přednáška #3
25
Take-home message – aneb co si máte zapamatovat a naučit
Přednáška #3