See on R-i kood, millega on analüüsitud kõnetempo ja soravuse andmeid Eesti Rakenduslingvistika Ühingu aastaraamatus ilmunud artikli tarvis.
library(tidyverse)
library(gridExtra)
teema <- theme_bw() +
theme(plot.title = element_text(hjust = 0.5, size = 12),
axis.text = element_text(size = 8),
axis.title = element_text(size = 8),
strip.text = element_text(size = 10),
legend.text = element_text(size = 10),
legend.title = element_text(size = 10))
Teke ja foneetikakorpuse andmestikus on andmed kogutud kõnevoorude kaupa (lokaalne kõnetempo). Artiklis analüüsime globaalset kõnetempot, selleks teisendame andmed nii, et ühelt kõnelejalt oleks üks rida ühe faili kohta. Samuti siin artiklis analüüsime ainult dialooge, nii et filtreerime välja failid, kus on rohkem kui kaks vestlejat. Siin
Koodiblokk mis, loeb teke andmed:
teke <- read.delim("teke_voorud.csv", encoding = "UTF-8")
teke$sugu <- toupper(teke$sugu)
# vastavalt faili kogukestusele
teke %>%
group_by(fail, koneleja) %>%
reframe(faili_kogukestus = (faili_kogukestus_ms/1000),
vanus = vanus,
sugu = sugu,
silpide_arv = sum(silpide_arv),
sonade_arv = sum(sõnade_arv),
poolikute_arv = sum(poolikute_arv),
venituste_arv = sum(venituste_arv),
korduste_arv =sum(korduste_arv),
disf_arv = sum(poolikute_arv+korduste_arv+venituste_arv),
kestus = sum((kestus_ms)/1000)) %>%
distinct() %>%
filter(!is.na(sugu), !is.na(vanus)) %>%
group_by(fail) %>%
mutate(prop = kestus/faili_kogukestus) %>%
ungroup() -> tmp
tmp <- data.frame(tmp,
kaaskoneleja = character(nrow(tmp)),
kaaskoneleja_sugu = character(nrow(tmp)),
kaaskoneleja_vanus = numeric(nrow(tmp)),
kaaskoneleja_kestus = numeric(nrow(tmp)),
kaaskoneleja_silpide_arv = numeric(nrow(tmp)),
kaaskoneleja_sonade_arv = numeric(nrow(tmp)),
kaaskoneleja_disf_arv = numeric(nrow(tmp)))
for(f in unique(tmp$fail)){
tmp2 <- tmp[tmp$fail==f,]
for(k in tmp2$koneleja){
tmp2[tmp2$koneleja != k,]$koneleja %>%
unique() %>% paste(., collapse = "_") -> tmp$kaaskoneleja[tmp$fail==f&tmp$koneleja==k]
tmp2[tmp2$koneleja != k,]$sugu %>%
unique() %>% ifelse(length(.) > 1, "mõlemad", .) -> tmp$kaaskoneleja_sugu[tmp$fail==f&tmp$koneleja==k]
tmp2[tmp2$koneleja != k,]$vanus %>%
mean() -> tmp$kaaskoneleja_vanus[tmp$fail==f&tmp$koneleja==k]
tmp2[tmp2$koneleja != k,]$silpide_arv %>%
mean() -> tmp$kaaskoneleja_silpide_arv[tmp$fail==f&tmp$koneleja==k]
tmp2[tmp2$koneleja != k,]$sonade_arv %>%
mean() -> tmp$kaaskoneleja_sonade_arv[tmp$fail==f&tmp$koneleja==k]
tmp2[tmp2$koneleja != k,]$kestus %>%
mean() -> tmp$kaaskoneleja_kestus[tmp$fail==f&tmp$koneleja==k]
tmp2[tmp2$koneleja != k,]$disf_arv %>%
mean() -> tmp$kaaskoneleja_disf_arv[tmp$fail==f&tmp$koneleja==k]
}
}
tmp %>%
filter(!nchar(kaaskoneleja)>3, vanus>9, kaaskoneleja_vanus>9) -> teke2
# faktoriseerime muutujad
teke2$koneleja <- factor(teke2$koneleja)
teke2$sugu <- factor(teke2$sugu)
teke2$fail <- factor(teke2$fail)
Salvestame globaalse kõnetempo andmestiku
save(teke2, file = "teke_globaalne_konetempo.Rda")
Salvestame globaalse kõnetempo andmed
save(fonkorp2, file = "fonkorp_globaalne_konetempo.Rda")
Kui eelnevat mitte jookustada, siis võib alustada siit ja lugeda sisse kolm globaalse kõnetempo andmestikku.
Teke
load("teke_globaalne_konetempo.Rda")
Foneetika korpus
load("fonkorp_globaalne_konetempo.Rda")
Põhjatuule korpuse andmed
###Teismeliste korpus
TeKE koosneb teismeliste omavahelistest vestlustest, mis on salvestatud diktofoniga (enamasti keelejuhtide kodudes). Korpus on käsitsi transkribeeritud, märgitud on kõnevooru piirid, sõnad üldiselt tavaortograafias mõningate täpsustavate lisamärkidega. Siin ettekandes kasutame seda osa TeKE-st,
EKSKFK (Lippus et al. 2021) koosneb
mono-, dia- ja trialoogidest, mis on käsitsi märgendatud erinevatel
lingvistilistel tasanditel: märgitud on sõnade, silpide ja häälikute
piirid, häälelaadi, venitusi, üneeme jpm. Salvestused on suures osas
läbi viidud foneetika labori vaikses salvestusruumis.
Siin ettekandes kasutame seda osa foneetika korpusest,
Korpus koosneb Põhjatuule ja päikese loetud tekstist. Suuresti samad keelejuhid, kes osalevad EKSKFK, aga oleme seda teksti palunud lugeda ka muudes katsetes osalejatel. Korpus on osaliselt märgendatud (umbes 90 salvestust), märgitud on sõnade ja häälikute piirid. Salvestused on suures osas läbi viidud foneetika labori vaikses salvestusruumis.