XPadje: allitererende volksvertegenvoordigers

Geplaatst op 28-12-2010 door Maarten Marx | trivia, XPath | tags: | comment image Geen reacties »

Vele vreemde volksvertegenwoordigers proberen te allitereren. In de wandelgangen schijnen geruchten te gaan dat volksvertegenwoordigers meer allitereren dan gewone stervelingen. NRC Next vroeg ons dit uit te zoeken, en een “Heerlijk Helder Heineken” query te schrijven.

In eerste instantie hebben we gezocht naar stukjes tekst met minstens drie woorden beginnend met dezelfde letter, maar dat leverde te veel hits op. In de resultaten hieronder zijn dus alleen de alliteraties van minstens 4 woorden meegenomen.
Hier zijn een aantal van de langste (6):

documenteren dan degenen die denken dat
dat de doelstellingen die door de
de draden die door dit debat
dat degenen die daar de directie
wij willen wel weten waarop we
van voorwaartse verrekening van verliezen van
dat deel daarvan dat door de

Resultaten

In de Handelingen van de Eerste en Tweede Kamer van 1996 tot eind 2010 hebben we 10.503 alliteraties van minstens 4 woorden gevonden. De langste was 7 woorden lang. De aantallen zijn als volgt:

9853 4 woorden
611 5 woorden
38 6 woorden
1 7 woorden

De langste is van de Heer Meijer (CDA) tijdens het debat over de cafebrand in Volendam op 3 Oktober 2001:

…. Ik maak mij er toch grote zorgen over, want weten wij wel wat wij willen handhaven? Weten wij wel wat wij willen? Ja, zeggen wij,…..

Hij spreekt hier vanaf het spreekgestoelte, en herhaalt zijn recordpoging meteen nogmaals. Dit lijkt dus wel voorbereid.
Helemaal onderaan deze blog staat een link naar de xml file met alle 10.503 gevonden alliteraties, compleet met uitgebreide metadata.

De Techniek

Net als in het op=op-script gebruiken we XSLT’s analyze-string procedure met een reguliere expressie.
Die expressie is

(s|^)((w)w+(s+3w+){{3,}})(s|$)

In stukjes staat hier,

  1. (s|^) een scheider of het begin van een regel
  2. (w)w+ een woord-karakter, gevolgd door 1 of meerdere woord-karakters. Omdat de eerste w tussen haakjes staat wordt de waarde van dat karakter opgeslagen in een variabele. Dat is dan variabele 3, want tellen gaat met de openende haakjes. Dit is onze allitererende letter.
  3. (s+3w+){{3,}} één of meer scheiders, gevolgd door de alliteratie-letter, gevolgd door 1 of meer karakters. En dat alles minstens 3 keer. (Let op, de accolades zijn verdubbeld omdat deze regex binnen XSLT gebruikt wordt.)
  4. ((w)w+(s+3w+){{3,}}) De hele allitererende rij woordjes staat tussen haakjes zodat we die kunnen benoemen (als regex-group(2)) en kunnen uitprinten.
  5. (s|$) een scheider of het eind van de regel.

Output formaat

De output van ons script is welgevormde XML. Elke hit staat in een hit element zoals hieronder. De meeste attributen spreker voor zich. De alliteratie staat in HHH, de lengte ervan in HHHcount. Het stukje tekst is de paragraaf waarin de alliteratie is uitgesproken. Hier is een voorbeeld

<hit HHH="vraagstukken van verdeling van" HHHcount="4"
     debate="Volksgezondheid, Welzijn en Sport"
     date="1997-04-08"
     house="Eerste Kamer der Staten-Generaal"
     debatetype="spreekgestoelte"
     docno="h-ek-19961997-1049-1095.1.9.1"
     speaker="Borst-Eilers"
     function="Minister"
     role="government"
     MPid="01615">Ten slotte is er iets, en zeker niet het onbelangrijkste, 
wat ook sterk aan verandering onderhevig is.....
....
</hit>

Script en Output

  1. XSLT script
  2. XML output (in zip formaat)

Reageer

Je moet ingelogd zijn om te kunnen reageren.