Alle Tweede Kamer parlementaire debatten van januari-1995 t/m juni-2019 zijn in een data set verzameld. Dat is het werk van:
Rauh, Christian; Schwalbach, Jan, 2020, Zie hier voor de paper en hier voor de data.
De data was verzameld in een R rds file, deze heb ik in een csv file gezet en gezipped. De zip is te groot om in zijn geheel op GitHub te zetten, dus heb ik de command line tool split
gebruikt om 24 Mb chuncks te maken: CorpusTweedeKamera ..... CorpusTweedekamerl. Eenmaal van GitHub gehaald kan je deze losse sets weer concatenaten tot 1 zip en inlezen.
De data set bestaat uit ruim 1.1 mln. regels. Elke regel bevat de naam van de partij, de naam van de spreker, de datum en tekst.
Er zijn tal van analyze mogelijkheden op deze data set:
- Metadata analyse
- Topic modeling see notebook
- Word2Vec
- Text Classificatie model (Target is politieke partij)
- TF Sentence Embedding
- Transformers text generation, see here
- en nog andere dingen
De parlement-speech data beslaat een periode van januari 1995 tot en met juni 2019. Onderstaande grafiek geeft het aantal speeches per dag aan.
Het schommelt rond de 500 per dag in de begin jaren waarna het iets oploopt.
De top sprekers worden weergegeven in de volgende grafiek. Het zijn Rutte, Halsema en Pechthold, gevolgd door anderen.....
Als we kijken naar het gemiddeld aantal woorden van de speeches per partij zien we de 'gelovige' partijen SGP en GPV er boven uitsteken met 211 en 214 woorden gemiddeld.
Met 'klassieke' Latent Dirichlet Allocation kan je een eerste inzicht krijgen in de topics die er zijn in de vele kamer speeches. Een LDA met 25 topics is getraind, zie onderstaande figuur.
Diverse onderwerpen komen naar voren zoals:
- Onderwijs,
- Gevangenissen,
- Belastingdienst toeslagen
Zie hier voor interactieve versie
Bij top2vec word eerst een doc2vec model getrained, elk document (of elke speech in de Tweede Kamer) wordt een hoog dimensionale embedding, dan worden deze mebdiings met UMAP naar een laag dimensionale embedding geprojecteerd. Om vervolgens "dichte" gebieden (de topics) te vinden met behulp van hierarchische DBSCAN.
Voor elke "dicht" gebied worden de documenten gevonden die centraal staan in deze gebieden, bijbehorende sleutelwoorden kunnen dan bepaald worden uit de documenten die centraal liggen in de dichte geboeden. Zo kan duiding gegeven worden aan een topic. Zie onderstaande figuur.
Zie hier ook een interactieve 2D umapped doc2vec embeddings deze plotly plot