---
tags: AT_DH_2022
---
# Grupitööde tulemused - ATDH-2022-2 (HVEE.00.016)
Püsilink: https://hackmd.io/@OGZFb2mRSA65ybyn4hSfkQ/BJFwvc4li/edit
## 09.09.2022

Pildi jagamiseks paremklõps pildi peal (all paremal nurgas) -> copy image.
Ja CTRL+V (CMD+V) siin tekstikastis. Hackmd laeb faili üles ja siis kuvab lingi markdown formaadis. Joonise järgi saab kirjutada oma nime.

Joonis 1. Näitepilt
## Grupitöö
Moodustage 2-3 liikmelised grupid ja püüdke teha väike huvitav ülevaade antud materjalide põhjal. Leppige kokku poolteist tundi kohtumine, kus saate sellega rahulikult tegeleda. Ei ole vaja teha analüüsi, mis võtaks kauem kui see. Soovitan, 10-15 tutvuda andmetega, 30-60 min proovida leida andmetest midagi huvitavat 20-30 min kirjutada 1-2 lõiku tehtu kohta. Kuna teid on mitu, saab rolle jagada - kindlasti aga jälgige, mida grupikaaslane teeb ja õppige sellest.
1. Vaadake andmeid, mis on õppetükiga kaasas lähemalt - mida neist tead, mida võiks neist teada saada?
2. Mõelge, mis võimalikke vahendeid käepärast on, mida oskaks nendega teha?
3. Kas on mõni teema, millele saaks tehniliste vahenditega ligi ja mis tundub huvitav, aga piisavalt lihtne, et võiks teha. Proovige, kas saate tulemusi.
Tehke esimene katsetus teksti uurimises - püüdke sealt midagi huvitavat kätte leida. Tulemuseks tehke üks graafik ja kirjutage 1-2 lõiku selle kohta - mis on seal tehtud ja mida on näha. Kombineerige julgelt antud materjale ja hoidke plaan lihtne! Need on alles esimesd katsetused.
Pange pealkirjaks grupi liikmete eesnimed ja tekst sinna järgi.
## Peeter ja Peeter
Jutt lõik 1. Tekstides aimasime seda põnevat ja läksime otsima. Tegime sellist eeltöötlust.
Jutt lõik 2. Pildil on näha tulemused. Nimelt on Tammsaares soost palju rohkem juttu kui teistel autoritel jne.

Pildi pealkiri
---
## Margus, Annika, Arina
### Keskmine lausepikkus autorite ja teoste lõikes

* Graafikult on näha, et keskmine lausepikkus on mõnel autoril väga ebaühtlane (Tammsaarel), kuid näiteks Parijõel ja Bornhöhel on teoste keskmine lausepikkus küllaltki ühtlane.
* Tidyverse ei ole ainult üksikute sõnade eraldamiseks, vaid võimaldab töötada ka lausetega
* Kõik võtab rohkem aega kui esialgu plaanitud
```r
# https://rstudio.cloud/content/4488428 > grupitöö1.Rmd
# Teksitde laadimine ATDH_2022_4_Tekstid2 põhjal
# Eraladame laused
sentences <- texts %>%
unnest_tokens(sentences, txt, token = "sentences", to_lower = F)
# Liignimega autorid (A. H. Tammsaare)
sentences_3 <- sentences %>%
filter( str_detect(filename, '(Anton_Hansen_Tammsaare|Friedrich_Robert_Faehlmann|Matthias_Johann_Eisen)')) %>%
mutate(autor = str_extract(filename, '^([A-Za-zÖÄÜÕöäüõ]+_){3}' ))
# Liignimeta Autorid (A. Saal)
sentences_2 <- sentences %>%
filter(!str_detect(filename, '(Anton_Hansen_Tammsaare|Friedrich_Robert_Faehlmann|Matthias_Johann_Eisen)')) %>%
mutate(autor = str_extract(filename, '^([A-Za-zÖÄÜÕöäüõ]+_){2}' ))
# Lahku löödud andmestike uuesti ühendamine ja teoste eraldamine
sentences_all <- bind_rows(sentences_2, sentences_3) %>%
mutate(teos = str_sub(filename,str_length(autor) + 1))
sentences_all <- sentences_all %>%
mutate(sentences_len = str_count(sentences, '\\w+'))
# Järelpuhastus, summarise() ja graafik
sentences_all %>%
mutate(Teos = str_replace(teos,"\\.utf8", "") ) %>%
mutate(Teos = str_replace_all(Teos,"\\_", " ") ) %>%
mutate(Autor = str_replace_all(autor,"\\_", " ") ) %>%
group_by(Autor, Teos) %>%
summarise(`Keskmine lausepikkus` = mean(sentences_len)) %>%
# tunnuste järjestus y-teljel Autori ja keskm. lausepikkuse järgi
mutate(Teos = fct_reorder2(Teos, Autor, `Keskmine lausepikkus`)) %>%
ggplot(aes(y = Teos, x = `Keskmine lausepikkus`, color = Autor)) +
geom_point()
```
---
## Karel ja Tambet
Võtsime, ausõna õndsas teadmatuses enda idee ebaoriginaalsusest, uurida lausete keskmist pikkust korpuse erinevates teostes.
On märgatav, et mõne autori lausepikkused on teosteüleselt ühtlased (näiteks Jüri Parijõgi), teiste puhul võivad need oluliselt varieeruda.

Silmatorkav on varieeruvus Tammsaare lausepikkustes, iseäranis teose "Kuningal on külm" väga lühikesed laused.

Viimane on suures osas teksti vormist tulenev moonutus - tegemist on näidendiga ning meie lihtsakoeline kood loeb ka dialoogides kõneleja nimetuse eraldi lauseks, mistõttu tuleb teksti näiliselt palju ühesõnalisi lauseid. See osutab vajadusele andmeid veel puhastada, et saada objektiivsemat tulemust.
Kood:
```{r}
library(tidyverse)
library(tidytext)
Sys.setenv("VROOM_CONNECTION_SIZE"= 500000)
filelist <- list.files("soned",full.names=T)
texts <- map_df(filelist, ~ data_frame(txt = read_lines(.x)) %>%
mutate(filename = .x)) %>%
mutate(filename= str_remove(filename,"soned/"))
texts <- texts %>%
group_by(filename) %>%
mutate(chapter=row_number()) %>%
ungroup()
words <- texts %>%
unnest_tokens(word, txt)
sentences <- texts %>%
unnest_tokens(sentence, txt, token = "sentences", to_lower=FALSE)
sentence_counts <- sentences %>% group_by(filename) %>% count()
word_counts <- words %>% group_by(filename) %>% count()
results <- merge(sentence_counts, word_counts, by="filename") %>%
mutate(words_sentences = n.y / n.x)
results %>%
count(words_sentences, filename,sort=T) %>%
ggplot(aes(x=words_sentences,y=filename, fill=words_sentences))+
ggtitle(label="Lausete keskmine pikkus eesti autorite teostes")+
ylab(label="Teos")+
xlab(label="Lause keskmine pikkus sõnades.")+
guides(fill="none")+
geom_col()
results %>%
filter(str_detect(filename, "^Anton_Hansen")) %>%
count(words_sentences, filename,sort=T) %>%
ggplot(aes(x=words_sentences,y=filename, fill=words_sentences))+
ggtitle(label="Lausete keskmine pikkus Tammsaare teostes")+
ylab(label="Teos")+
xlab(label="Lause keskmine pikkus sõnades.")+
guides(fill="none")+
geom_col()
```
---
## Gregor ja Lisanna
Andmetele otsa vaadates saime aru, et kuna mõnel autoril on ainult üks tekst, siis kõik võrdlused peavad toimuma tekstist väiksemate andmehulkade peal (a la laused või sõnad). Et teised grupid olid lauseid juba vaadelnud, mõtlesime endale eesmärke teoste sõnade võrdluseks. Eeltöötluseks sobis juba praksis tehtud sõnadeks tükeldamine muutujas `words`.
Üks vaadeldud küsimus oli, et "milline osakaal on võõrtähtedest koosnevatel sõnadel?". Selle laiendasime hiljem mõnele teisele huvitavale tähtede/sümbolite hulgale. Kuigi koodijupp tundub lihtne, siis päris palju vaeva läks filtriga matchivate sõnade suhtelise osakaalu arvutamisse grupeerituna failinime järgi.
```{R}
words %>%
mutate(is_foreign=str_detect(word, "[CcQqWwXxYyFfŠšZzŽž]")) %>%
group_by(filename) %>%
count(is_foreign) %>%
mutate(freq=n/sum(n)) %>%
filter(is_foreign==TRUE) %>%
ggplot(aes(reorder(filename, freq), freq))+
coord_flip()+
geom_point()+
ggtitle("Sõnade arv, mis sisaldavad [CcQqWwXxYyFfŠšZzŽž]")
```
Järgnevalt pildilt on eriti hästi näha tõenäolist eraldust vana eesti keeles teostel, kus esines sõnu, nagu "wabadus", "rahwas" jne. Tähelepanuväärne on ka Mihhail Lermontov – välisautor – kelle teose tõlkimisel jäeti sõnad ilmselt algkuju lähedaseks.

Järgneval pildil on näha, kuidas kõigis teostes on enam-vähem sama palju täpitähti – küll võivad mõned erinevused tulla keele arenguhetkest kirjutusaastail ja ka autori keelekasutusest. Näiteks Jüri Parijõgi kasutab täpitähti rohkem kui Anton Hansen Tammsaare (võibolla on asi ka autorite nimedes).

Järgnevalt graafikult on näha, et Eduard Vilde "Minu esimesed triibulised" ja August Kitzbergi "Libahunt" kasutavad rohkem arve oma tekstides. Tõenäoliselt on tegu aastaarvude või vanustega.

Järgnevalt graafikult on eelkõige näha, et kui palju lühendeid "st", "mh" jne autor on kasutanud. Graafiku pealkiri on õige – järeldus on natukene ringiga.

Järgnevalt vaatasime, kas teoste kaupa on võimalik erisusi leida ka sõnade pikkuse osas. Allolev joonis on järjestatud keskmise tähemärkide arvu järgi. Kuigi tuleb välja, et valdavalt on sõnade keskmine tähtede arv sarnane (~5), siis teoseti võib erinevusi märgata just maksimaalsetes pikkustes.
```{R}
sonad = words %>%
mutate(nchar = nchar(word)) %>%
group_by(filename) %>%
summarise(keskmine_sona = mean(nchar),
min_sona = min(nchar),
max_sona = max(nchar)) %>%
arrange(keskmine_sona)
ggplot(sonad, aes(reorder(filename, keskmine_sona), keskmine_sona)) +
geom_pointrange(mapping = aes(ymin = min_sona, ymax = max_sona)) +
coord_flip() +
ggtitle('Sõnade min, keskmine ja max pikkus') +
ylab('Sõna pikkus (tähtede arv)') +
xlab('') +
theme_bw()
tabel = words %>%
mutate(nchar = nchar(word)) %>%
select(filename, word, nchar) %>%
group_by(filename) %>%
mutate(max_sona = max(nchar)) %>%
filter(nchar == max_sona) %>%
arrange(desc(nchar)) %>%
unique()
htmlTable::htmlTable(tabel)
```

Eelnevalt jooniselt nägime näiteks, et Eduard Vilde teoses "Mäeküla piimamees" on 31-täheline sõna. Allolevalt tabelist näeme iga teose suurima tähemärkide arvuga sõna.

---
## Rasmus, Marti, Egle
Kuna valdavas osas oli tegemist 19. sajandi lõpul ja 20. sajandi algusperioodil tegutsenud Eesti kirjanikega, tundus huvitav uurida, kui palju kasutasid nad sõna "eesti" vs sõna "vene". Vasakpoolsel graafikul on lihtsalt nende sõnade arv, parempoolsel sagedus arvestades kogu sõnade arvu. Tuleb välja, et sõna "eesti" kasutas kõige rohkem sellest valikust Eduard Bornhöhe, samas arvestades korpuse suurust kasutas seda kõige rohkem Andres Saal. Mitmed kirjanikud ei kasutanud üldse "vene"-ga seonduvaid sõnu, näiteks M. J. Eisen, J. Liiv, E. Aspe, aga A. Kitzberg ei kasutanud selle korpuse põhjal üldse sõna "eesti".

```
library(tidyverse)
library(tidytext)
Sys.setenv("VROOM_CONNECTION_SIZE"= 500000)
filelist <- list.files("soned",full.names=T)
texts <- map_df(filelist, ~ data_frame(txt = read_lines(.x)) %>%
mutate(filename = .x)) %>%
mutate(filename= str_remove(filename,"soned/"))
words <- texts %>%
unnest_tokens(word, txt)
tulemus1 <- tulemus %>%
mutate(sona=str_extract(word,"^eesti|^vene")) %>%
filter(!is.na(sona)) %>%
filter(!grepl("^veneetsia", word)) %>%
group_by(kirjanik, sona) %>%
summarise(sonaarv=sum(n))
tulemus2 <- tulemus %>%
mutate(sona=str_extract(word,"^eesti|^vene")) %>%
filter(!is.na(sona)) %>%
filter(!grepl("^veneetsia", word)) %>%
group_by(kirjanik, sona) %>%
summarise(sonasagedus=sum(sonasagedus))
p1 <- tulemus1 %>%
ggplot(aes(y=kirjanik,x=sonaarv,color=sona))+
geom_point(alpha=0.8, size=1.5)
p2 <- tulemus2 %>%
ggplot(aes(y=kirjanik,x=sonasagedus,color=sona))+
geom_point(alpha=0.8, size=1.5)+
theme(axis.title.y = element_blank())
library(patchwork)
p1+p2+plot_layout(guides = "collect")
```
Tekkis ka mõte vaadata autorite kommet kasutada oma tekstide kirjapanekul pikki sõnu; pikaks sõnaks on loetud praegu sõna, mis sisaldab vähemalt 9 tähte. Jooniselt selgub, et pikkade sõnade osakaal varieerub umbes 0.06 ja 0.155 vahel ehk peaaegu kolm korda; seda ulatust võib vast pidada täiesti tähelepanuväärseks. Kõige suurem on pikkade sõnade osakaal Lermontovi tekstis, mida aga võis mõjutada asjaolu, et tegemist tõlketekstiga ehk mõjutada võisid, lisaks autorile, ka lähtekeel ja tõlkija. Kõige väiksem on pikkade sõnade osakaal August Kitzbergi tekstis. Samas on Jüri Parijõe ühes tekstis pikkade sõnade osakaal veel väiksem kuigi keskmiselt, st autorina, on ta ilmselt kasutanud suhteliselt rohkem pikki sõnu kui Kitzberg. Joonist vaadates tekib ka küsimus, kas pikkade sõnade osakaal eristab pigem autoreid või hoopis tekste, sest autorite puhul, kellelt on korpuses mitu teksti, on selgelt näha pikkade sõnade osakaalu suur varieeruvus. See viib mõttele, et kõik autorid võisid varieerida oma kirjutamisviisi pikkade sõnade kasutamise osas. Sel teemal saaks ehk asjasse rohkem selgust kui iga autori puhul oleks kasutada umbes võrdne arv umbes võrdse pikkusega tekste.

```{R}
words %>%
mutate(autor = str_extract(filename, "^.{10}"), ps = str_detect(word, "^.{9}")) %>%
mutate(filename = str_replace_all(filename,".utf8","")) %>%
mutate(filename = str_replace_all(filename,"Eduard_Bornhohe_","")) %>%
mutate(filename = str_replace_all(filename,"August_Kitzberg_","")) %>%
mutate(filename = str_replace_all(filename,"Eduard_Vilde_","")) %>%
mutate(filename = str_replace_all(filename,"Elisabeth_Aspe_","")) %>%
mutate(filename = str_replace_all(filename,"Enn_Kippel_","")) %>%
mutate(filename = str_replace_all(filename,"Juhan_Liiv_","")) %>%
mutate(filename = str_replace_all(filename,"Juri_Parijogi_","")) %>%
mutate(filename = str_replace_all(filename,"Friedrich_Robert_Faehlmann_","")) %>%
mutate(filename = str_replace_all(filename,"Anton_Hansen_Tammsaare_","")) %>%
mutate(filename = str_replace_all(filename,"Matthias_Johann_Eisen_","")) %>%
mutate(filename = str_replace_all(filename,"Mihhail_Lermontov_","")) %>%
group_by(autor, filename) %>%
# filter(autor == "Eduar") %>%
count(ps) %>%
mutate(pikkade_sõnade_osakaal = n/sum(n)) %>%
filter(ps == "TRUE") %>%
ggplot(aes(x=autor,y=pikkade_sõnade_osakaal, fill = filename))+
geom_col(position = "dodge") +
coord_flip() +
theme(legend.position = "bottom")
```