Categories
data-work

Grunnloven av 1814 som ordsky

WordClouds, eller ordsky på norsk, du har sikkert sett mange av dem. Ideen er å lage en visuell presentasjon av frekvensen av ordene i teksten. Dette er nyttig da det enkelt kan gi oss en oversikt over hvilke ord som brukes i teksten, og samtidig har den en klar visuell “dette er kult”-effekt. For å lage en wordle kan bruke nettsiden som, om ikke introduserte fenomenet, gjorde det populært: Wordle. Vi skal gjøre det på en annen måte, ved hjelp av det visuelle programmeringsmiljøet Processing (kom igang, enkel introduksjon).

Hvordan fungerer en wordle?

Ingen er muligens bedre kvalifisert til å svare på dette enn Jonathan Feinberg, skaperen av Wordle, som på den sosiale programmingsspørsmålsiden StackOverflow presenterer framgangsmåten.

Først telles alle ordene, og sorteres slik at ordene med høyest frekvens kommer først. Deretter fordeles ordene utover lerretet slik at frekvensen gjenspeiles i størrelsen på ordene. De mest gjentatte ordene er de som dukker opp høyest. I løpet av telle-perioden må også ord som av grammatiske (eller andre) grunner ikke skal med fjernes. Ord som ‘er’, ‘som’, ‘i’, ‘på’ brukes ofte i norsk, men de har ikke en semantisk mening på enkeltordsnivå som kan reflekteres i en wordle. (ja, det er en distinksjon mellom å være f.eks ‘i Drammen’ eller på ‘på Drammen’, men denne reflekteres ikke når alle ord splittes). Når ordene og deres frekvens er bestemt begynner plasseringsjobben, og denne er ganske vanskelig å få til (forsøk  å lage en algoritme for å best organisere alle koffertene for bagasjerommet i en bil, hvor alle koffertene har forskjellige størrelse og fasong).

Hvordan gjør vi det?

Vi skal velge en løsning som ligger i mellom Wordle og en hvor vi må utvikle alt helt fra begynnelsen. Biblioteket WordCram for Processing gjør jobben ganske enkel. På WordCram sine sider kan du også se et bilde av den amerikanske grunnloven, og dersom du syntes vårt resultat blir likt så stemmer dette, siden det er fra denne visualiseringen inspirasjonen til vår versjon av den norske grunnloven kommer fra.

US Consitution visualized through WordCram

Vi kommer til å låne fire ting fra denne presentasjonen. Den enkleste å kopiere er bakgrunnsfargen som med sin offwhite minner om offisielle papirer (og da snakker vi ikke om 80 g/m² A4 papir). Denne fargen representeres ved RGB-hex fargekoden #F5F1E3.

Vi skal også låne begge fontene som brukes i visualiseringen. Den ene, med håndskriftassosiasjoner heter, typisk nok, Jane Austen og kan lastes ned fra dafont.com. Den trykk-inspirerte fonten heter AveriaSerif-Regular. Vi kommer til å bruke Gruesa versjonen av denne. Begge to kan lastes ned fra i pakken med Averia fonter fra IOtic.

Det siste, og kanskje største tingen vi kommer til å låne er framgangsmåten. Koden som brukes ser slik ut:

[sourcecode language=”java”]
import wordcram.*;
import wordcram.text.*;

void setup() {
size(600,500);
background(#F5F1E3);

PFont averia = loadFont("Averia-Gruesa-48.vlw");
PFont janeAusten = loadFont("JaneAusten-48.vlw");

new WordCram(this)
.fromTextFile("grunnloven1814.txt")
.withFonts(averia, janeAusten)
.withColors(#000000)
.angledAt(0)
.withWordPadding(1)
.drawAll();

}
[/sourcecode]

Vi har gjort noen endringer. Spesielt i forhold til font. Istedet for å laste inn systemfonter har jeg gått inn i Processings font verktøy (“Tools”->”Create font”) og laget .vlw filer for fontene.

Grunnloven

Vi har nå satt opp rammeverket hvor magien skal skje, men vi trenger fortsatt hovedingrediensen, nemlig Grunnloven av 1814. Den finner vi heldigvis på Wikisource (et godt sted for kilder). Kopier teksten, legg den inn i en tekstfil som igjen lagres i mappen data i Processing-sketchen din. Bruk en teksteditor som TextMate eller Notepad, ikke en tekstbehandler som OpenOffice eller Word.

Et voila

Grunnloven av 1814 WordCloud
Ordsky Norges Grunnlov

Verdt å merke seg er at det kommer et nytt resultat fra den bakenforliggende algoritmen hver gang den kjøres. Derfor vil resultatet også kunne se slik ut

Grunnloven Wordcloud
Wordle, eller Wordcloud, av Grunnloven 1814 i svart. Denne gangen med Jane Austen-foten mer dominant

In Technicolor

La oss arbeide videre med utgangspunktet vi allerede har. I visualiseringen av den amerikanske grunnloven brukte de blått og rødt. Dersom vi skal visualisere grunnloven slik at den fremstår “mer norsk” er den fargekombinasjonen som vi først tenker på (si gjerne ifra hvis du tenkte på en annen fargekombinasjon): rødt, hvitt og blått, eller som vi også kan kalle de: #EF2B2D, #FFFFFF, #002868.

Igjen fra Wikipedia:

The flag of Norway consists of a  dark blue  cross (colour: RGB #002868; Pantone PMS-281U) with white borders on a  bright red  background (RGB #EF2B2D; Pantone PMS-032U). The vertical arm of the cross is shifted towards the flag pole as in the other Scandinavian flags. The overall width−to−height proportions of the flag are 22 to 16, and the individual coloured fields measure 6+1+2+1+12 in width and 6+1+2+1+6 in height.

La oss endre koden fra tidligere til å ta med fargene:

[sourcecode language=”java”]
import wordcram.*;
import wordcram.text.*;

void setup() {
size(600,500);
background(#F5F1E3);

PFont averia = loadFont("Averia-Gruesa-48.vlw");
PFont janeAusten = loadFont("JaneAusten-48.vlw");

new WordCram(this)
.fromTextFile("grunnloven1814.txt")
.withFonts(averia, janeAusten)
.withColors(#EF2B2D, #FFFFFF, #002868)
.angledAt(0)
.withWordPadding(1)
.drawAll();

}
[/sourcecode]

Resultatet er nå annerledes og i farger (selv om hvitt på off-white blir noe rart. Hvilken farge mener du passer best?)

Nå, to år før grunnlovsjubileet har du en wordcloudversjon av grunnloven.Wordle eller Wordle med Norges grunnlov 1814

Grunnloven av 1814 wordle wordcloud

Leave a Reply

Your email address will not be published. Required fields are marked *