Gå til hovedindhold

Mettes skjulte budskab

Af Lennart
Media
Image
Mette Frederiksen, fotograf Steen Brogaard
licens

Foto: Steen Brogaard

Statsminister Mette Frederiksens åbningstale bestod af en hel masse ord.

I går brugte jeg programmeringssproget R til at undersøge “stemningen” i talen. Den undersøgelse kan du se her:

Stemningen skiftede i Statsministerens åbningstale

I dag vil jeg igen bruge R.

Men analysen i dag bliver mere basal.

Jeg vil simpelthen undersøge hvilke ord Mette brugte i talen, og hvor meget hun brugte dem.

Det kan måske fortælle os lidt om det budskab som ligger i talen.

Da analysen i dag er meget simpel, behøver jeg ikke loade særligt mange “pakker”. Men lidt skal der til ud over “base R”.

library(tidyverse)
library(tidytext)
library(rvest)
library(stopwords)
library(wordcloud)
library(RColorBrewer) # Så jeg kan farvelægge min ordsky
Sys.setlocale(category = "LC_ALL", locale = "UTF-8")
[1] "da_DK.UTF-8/UTF-8/da_DK.UTF-8/C/da_DK.UTF-8/da_DK.UTF-8"

Lige en kommentar til wordcloud.

Dataforskere fraråder generelt den form for fremstilling af data, men jeg kan meget godt lide den, så jeg tager den med alligevel.

Nå. Vi skal i gang.

Først henter vi talen - det er pakken rvest (harvest betyder ‘høste’ på engelsk, get it?) som sørger for at høste data på Statsministeriets hjemmeside.

Og så gemmer jeg talen som afsnit i en tabel, som i R åbenbart hedder en tibble:

tekstafsnit <- read_html("https://www.stm.dk/statsministeren/taler/statsminister-mette-frederiksens-tale-ved-folketingets-aabning-4-oktober-2022/") |> 
  html_nodes("article>p") |> 
  html_text() |> 
  as_tibble()

Disse tekstafsnit skal splittes yderligere op i ord.

Det gøres med funktionen unnest_tokens som kommer fra pakken tidytext.

Jeg gemmer resultatet af den proces i en ny tabel som jeg kalder ‘tekstord’.

tekstord <- tekstafsnit %>%
  unnest_tokens(word, value)

Her burde man nok bruge et stemmingværktøj (stemming, ikke stemning) på ordene, så man fik roden for hvert ord og ikke de mange varianter som tæller som forskellige ord.

Men jeg fandt desværre ikke noget stemmingværktøj til R for danske ord.

Heldigvis fandt jeg faktisk en liste over danske “stopord” - det vil sige almindelige ord som binder betydningsbærende ord sammen, men ikke i sig selv bidrager ret meget til betydningen af talen - eller andre tekster for den sags skyld.

Det er ord som ‘og’, ‘at’, ‘der’ og så videre.

Så tabellen med alle ord fra Mette Frederiksens tale skal lige renses for disse kedelige ord.

Derudover vil jeg have ordenes antal.

Det gør man sådan her:

# liste over danske stopord
dkstopord <- c(stopwords::stopwords("da", source = "snowball"))
# konverter til data frame
stopord <- data.frame(dkstopord)
# omdøb kolonne så der kan antijoines med tekstord
colnames(stopord) <- c("word")
# rens talens ord for stopord og tæl dem for at få en ordfrekvens
ordfrekvens <- tekstord  |> 
  anti_join(stopord)  |> # fjern stopord
  count(word) |> # udregn antal af hvert ord
  filter(word != "så") # fjern så der åbenbart ikke er i stopwords

Som den vakse læser vil se, så fjernede jeg manuelt ordet ‘så’ da det åbenbart ikke er på listen over stopord, selvom det nok burde være det.

Nu har vi data klar. Nu er tiden kommet til at visualisere dem.

Vi starter med en ordsky som ellers er lidt upopulær:

ordfrekvens %>%
  with(wordcloud(word, n, max.words = 50, rot.per = .5,
                 colors = rev(brewer.pal(5, "Dark2"))))

Jeg synes allerede man kan se en tendens i ordskyen.

Er jeg den eneste der ser budskabet “Vores Danmark kan mere”?

Det er faktisk et ret godt slogan. Og jo også det som S bruger i deres visioner: Danmark kan mere.

Lad os prøve med en almindelig graf over samme data:

ordfrekvens %>%
  top_n(10) %>%
  mutate(word = reorder(word, n)) %>%
  ggplot(aes(word, n)) + 
  geom_col(fill = "dodgerblue4") +
  coord_flip() +
  theme(text = element_text(size=20))

Samme resultat:

Hovedbudskabet er “vores Danmark kan mere”.

Så synes jeg også det ser ud som om talen har en sekundært tema omkring tid.

“andre tid kun år tre tage”

Interessant.

Men faktisk kan R også hjælpe med at spotte temaer i talen mere systematisk.

Men det må vente til en anden dag.

normal
Organisationer
Emner