Aan de troonrede zijn al 230.000 woorden besteed: ruim negentien uur aan leesvoer. Wij willen al deze teksten analyseren op leesbaarheid, maar handmatig kost dat simpelweg te veel tijd. Hoe hebben wij een machine geleerd om al deze teksten voor ons te lezen en beoordelen?
Via de website Troonredes.nl hebben we 195 teksten verzameld. Herko Coomans en Pieter C. Lagas hebben de Koninklijke teksten verzameld en online gezet. "Voor mijn dissertatie over de troonrede", zegt Lagas. "Het was ook een van de eerste proefschriften op CD-ROM. Een paar jaar daarna hebben we alles op een site gezet, en elk jaar vullen we hem aan met de laatste troonrede."
Met taalanalyse kun je zo veel teksten binnen korte tijd analyseren. Hieronder leggen we eenvoudig uit hoe taalanalyse werkt:
Taalanalyse in LEGO from Pointer on Vimeo.
Je kunt het leesniveau van een tekst uitrekenen met de zogeheten Flesch-Kincaid Grade Level-score. Om die score te berekenen, tel je alle zinnen, woorden en lettergrepen in je tekst. Vervolgens gebruik je die drie elementen in de onderstaande formule:
fk_grade = 0.39*(words/sentences) + 11.8*(syllables/words) - 15.59
De uitkomst van die rekensom is het aantal jaren onderwijs dat je nodig hebt om die tekst te kunnen begrijpen. Dat is geen exacte wetenschap, maar het geeft wel een goede indruk van de leesbaarheid van je tekst. Of zoals taalexpert Jaap de Jong zegt: de Flesch-Kincaid-score is een ‘thermometer voor je toespraak’. Het geeft aan hoe goed je tekst is, maar niet direct wat je kunt doen om het beter te maken.
De analyse hebben we in R uitgevoerd. Hieronder vind je de beknopte code om je teksten te analyseren.
# Libraries inladen
library(readtext)
library(dplyr)
library(tidytext)
library(quanteda)
# Vul hier de directory in van de map waar jouw bestanden staan
dir = ""
# Elk bestand heeft dezelfde bestandsstructuur. Voorbeeld van de laatste Troonrede: Troonrede_Willem-Alexander_18_9_2018.txt
my_corpus = readtext(dir, dvsep='_', docvarsfrom="filenames", docvarnames = c('Category', 'Speaker', 'Day', 'Month', 'Year'))
# Alle teksten worden door de formule gehaald
leesbaarheid <- my_corpus %>%
mutate(syllables = nsyllable(text),
sentences = nsentence(text),
words = ntoken(text, remove_punct = TRUE),
fk_ease = 206.835 - 1.105*(words/sentences) - 84.6*(syllables/words),
fk_grade = 0.39*(words/sentences) + 11.8*(syllables/words) - 15.59) %>%
arrange(Year)
In de toegevoegde datasets vind je alle Troonredes in de periode 1814-2018. Mocht je iets met deze data doen, voeg dan sowieso een bronvermelding naar Troonredes.nl (data) en Pointer (code) toe. En tip ons als je iets interessants hebt ontdekt.