Dankzij Artificial Intelligence konden journalisten van de Groene Amsterdammer en data-analisten van de Utrecht Data School een gigantische hoeveelheid twitterberichten analyseren. Journalist Coen van de Ven legt uit hoe ze dat hebben aangepakt.
📰 Het verhaal
Tien procent van alle tweets gericht aan vrouwelijke politici bevat haat of agressie, Dat blijkt uit onderzoek van de Groene Amsterdammer samen met de Utrecht Data School. Veel vaker dan mannen krijgen vrouwen te maken met opmerkingen, beledigingen of zelfs bedreigingen vanwege hun stem, lichaam, religie of huidskleur. Politieke partijen zijn bang dat vrouwen daardoor minder vaak voor een politieke carrière zullen kiezen. Het hele verhaal, waarin de Groene Amsterdammer de bevindingen bespreekt met twaalf vooraanstaande, zowel linkse als rechtse, vrouwelijke politici, lees je hier. Wij zoomen in op de AI die de Groene Amsterdammer inzette voor het onderzoek. Want een miljoen tweets onderzoek je natuurlijk niet handmatig.
📈 De data
AI kan je helpen om grote hoeveelheden informatie te doorzoeken. Maar voordat je AI aan het werk kunt zetten, heb je data nodig. Dat is de informatie waarmee de AI tool werkt.
In dit onderzoek bestaat de data uit alle Nederlandstalige tweets die tussen 1 oktober 2020 en 26 februari 2021 zijn gestuurd naar of over Nederlandse politici. Dat waren er meer dan een miljoen.
Om te bepalen welke tweets werden meegenomen, moesten de journalisten eerst een lijst met politici opstellen. Daarop stonden alle politici die zich verkiesbaar stelden voor de Tweede Kamer. De enige eis was dat zij bij een partij hoorden die in de peilingen minstens één zetel kregen. Van de 670 kandidaat-Kamerleden waren er 215 vrouw: 38 procent dus.
Met deze lijst van politici, konden de journalisten vervolgens de Tweets verzamelen die zij zouden analyseren. Op Twitter is gezocht naar alle tweets waarin ofwel de gebruikersnaam, ofwel de volledige naam van een kandidaat-Kamerlid wordt genoemd.
In totaal werden er 1.268.889 tweets verzameld. Ongeveer een vierde daarvan, 339.932 tweets, is verstuurd aan vrouwelijke politici.
🦾 De AI
Nadat alle Tweets waren verzameld, gebruikten de onderzoekers AI om de inhoud ervan te onderzoeken. De Groene Amsterdammer en de Utrecht Data School trainden een AI-systeem dat per Tweet bepaalt of de inhoud haatdragend of agressief is, of niet.
Een AI-model leert daarbij om teksten in verschillende categorieën (‘classes’) te verdelen. In dit geval: haatdragend of niet-haatdragend, agressief of niet-agressief. Dit is een voorbeeld van (‘single label’) tekstclassificatie. Single-label betekent dat een tekst maar bij een enkele categorie mag horen. Anders dan bij een film bijvoorbeeld, die tegelijkertijd ‘avontuurlijk’, ‘spannend’ en ‘humoristisch’ kan zijn. Maar een tweet kan niet tegelijkertijd ‘haatdragend’ en ‘niet-haatdragend’ zijn.
Om het AI-model te leren classificeren, moet het eerst getraind worden door mensen. Dat deden de onderzoekers bij dit project door een deel van de tweets handmatig in categorieën op te delen. Dat noem je labelen. Voor het labelen hebben vier onderzoekers in totaal ruim 10.000 Tweets bekeken. Die zijn willekeurig gekozen. Van elk van deze Tweets gaven de onderzoekers aan of deze überhaupt haat of agressie bevatte. Zo ja, dan werd ook aangegeven waarop de haat gericht was, bijvoorbeeld op gender, etniciteit of lichaam.
De onderzoekers voeren al deze informatie in het AI-systeem in. Op basis van die informatie leert het AI-systeem zelf te voorspellen of een bericht haatdragend of agressief is. Het AI-model leert deze taak dus zelfstandig uit te voeren, op basis van menselijke input (de labels).
⚖️ Ethiek en betrouwbaarheid
Bij het onderzoek van de Groene Amsterdammer kwamen verschillende ethische kwesties in beeld. Een belangrijke vraag is allereerst hoe je Tweets het beste kunt categoriseren. Wanneer is een Tweet haatdragend of agressief en wanneer niet?
De onderzoekers hebben dit niet zelf bedacht, maar gebruik gemaakt van een categoriseringsmodel van Amnesty International, dat speciaal bedoeld is voor het analyseren van online haatberichten.
Bij het labelen is bovendien terughoudend te werk gegaan. Bij twijfel werd gekozen de tweet eerder als niet-haatdragend te labelen. Vanwege deze structurele terughoudendheid verwachten de onderzoekers dat het percentage haatdragende berichten in werkelijkheid mogelijk nog hoger ligt.
✅ Betrouwbaarheid
Het grote voordeel van Supervised Learning is dat het goed uitlegbaar en navolgbaar is. Mensen hebben de regels tenslotte bedacht, en niet de machine zelf (zoals bij Unsupervised Machine Learning het geval is). De transparantie van is dus hoog.
Het feit dat het trainen van het model mensenwerk is, is tegelijk een voordeel en een nadeel. Het zorgt voor transparantie en inzichtelijkheid, maar tegelijkertijd is er een risico op bias waar je als journalist op bedacht moet zijn. Wat in de ogen van de één haatdragend is, is dat in de ogen van een ander misschien niet.
De Groene Amsterdammer en de Utrecht Data School hebben geprobeerd de kans op bias zo klein mogelijk te maken, door de classificatie van Amnesty International over te nemen, en door het oordeel van mens en machine steekproefgewijs met elkaar te vergelijken. Er werden dus willekeurig Tweets gekozen, om te vergelijken of mens en machine tot dezelfde conclusie zouden komen. Dit is een manier om het werk van AI te dubbelchecken.
📚 Lesmateriaal
Opdracht: Onderzoek haat op Twitter
Maak groepjes van drie en bekijken de tweets.
Bepaal per tweet: is dit haatdragend of agressief? En op welk gebied: gender, etniciteit, lichaam of een andere categorie?
💭 Bespreking
De voorgestelde tweets zijn vaak negatief, maar dat wil niet zeggen dat ze ook haatdragend of agressief zijn. Let erop dat het erom gaat op wie of wat de negativiteit gericht is. Gaat het om de inhoud of om de persoon? En als het om een persoon gaat, gaat het dan om de politica in kwestie of iemand anders?
Tijdens het bespreken van de labels (haatdragend of niet-haatdragend, agressief of niet-agressief) zullen de studenten vermoedelijk ontdekken dat er een grijs gebied is. Dat grijze gebied wordt nog groter op het moment dat studenten proberen te bepalen of de haat of agressie gericht is op gender, etniciteit, of iets anders. Dit plaatst de uitkomsten van het onderzoek van De Groene Amsterdammer in perspectief.
Reflecteer met elkaar: zou iedereen de tweets hetzelfde classificeren? Waar verschillen de meningen? En hoe moet je daar als redactie mee omgaan?
Je kunt de oefening afronden door terug te keren naar het onderzoek van de Groene Amsterdammer. Hoe kijken jullie na deze oefening tegen de uitkomsten aan? Vinden jullie de aanpak van het medium wenselijk? Wat zouden jullie hetzelfde of juist anders doen?
🧰 Materiaal
- De casus over De Groene Amsterdammer (geprint of op laptop)
- De voorbeeld Tweets
⏱ Tijdsindicatie
Inclusief het lezen van het verhaal en de nabespreking: 60 minuten.
De docent kan de opdracht inkorten door de klas in groepjes te verdelen en de tweets te verdelen over de groepjes.
De docent kan de opdracht uitbreiden door de studenten zelf te laten zoeken naar tweets waarvan ze niet zeker zijn in welke categorie ze behoren.
Als docent kun je de studenten bovendien aanmoedigen om de beknopte uitleg over Inter Annotator Agreement te lezen, en te proberen dit met elkaar te bereiken.
Opdracht: Train een model om de publieke opinie op Twitter te meten
💡 Leerdoel: Je gaat een model trainen om sentimentanalyse te doen op Twitter. Je ontdekt welke stappen je daarvoor moet zetten en waar je op moet letten.
De Groene Amsterdammer analyseerde haatdragende tweets gericht op vrouwelijke politici.
Voor deze opdracht ga je zelf een machine learning model trainen om te analyseren wat mensen vinden van Arjen Lubach. Je gaat voorbeelden zoeken van negatieve, positieve en neutrale tweets over hem en zijn programma De Avondshow.
(NB. In overleg met de docent, kun je ook een ander onderwerp kiezen. Let er dan wel op dat je een onderwerp kiest waarover tweets bestaan die in verschillende categorieën passen. Bijvoorbeeld: positief & negatief, haatdragend & niet-haatdragend, etc.).
1. Maak tweetallen en ga naar https://machinelearningforkids.co.uk/ in een webbrowser.
2. Klik op “Get started”.
3. Klik op “Inloggen” en voer uw gebruikersnaam en wachtwoord in. Deze krijg je van de docent.
(Zie het antwoordmodel voor de docent voor meer uitleg over het aanmaken van een account).
4. Klik op “Projecten” in de bovenste menubalk, en kies het project “What Twitter Thinks”. De docent maakt dit project van tevoren aan. (Ook hierover is meer uitleg te vinden in het antwoordmodel voor de docent).
5. Je gaat nu beginnen met het trainen van het model, zodat het leert om positieve en negatieve tweets over Arjen Lubach te herkennen. Klik op “Trainen”.
6. Open een nieuw webbrowservenster en ga naar http://search.twitter.com. Zoek naar tweets over Arjen Lubach.
7. Bespreek in tweetallen welk label iedere tweet moet krijgen: positief, negatief of neutraal.
8. Negatieve tweets over Arjen Lubach voeg je toe aan de bucket “Negatief”. Klik op de knop “+ Voorbeeld toevoegen” in de bucket “niet leuk”.
Let op: je kopieert en plakt de teksten uit de tweets en dus niet de URL van de tweets die je in wil voegen.

Plak de tweet in het vak en klik op “Toevoegen”.

Neutrale tweets over Arjen Lubach voeg je op dezelfde manier toe in de bucket “Neutraal”.
Positieve tweets over je onderwerp voeg je toe aan de bucket “Positief”.
Ga net zo lang door tot je in alle drie de velden ongeveer evenveel voorbeelden hebt. Hoe meer voorbeelden, hoe beter het model zijn taak zal uitvoeren.
💭 Bespreking
Als jullie zo’n tien minuten bezig zijn geweest, is het tijd om de labels met elkaar te bespreken.
- Wat is jullie opgevallen bij het bepalen van de labels?
- Over welke tweets waren jullie het oneens? Kun je een twijfelgeval noemen?
- Hoe kwamen jullie tot overeenstemming?
- Wat betekent dit voor hoe goed het model straks werkt?
📚 Vervolg opdracht
9. Nu is het tijd om het model te trainen op basis van de voorbeelden en labels die jullie hebben ingevoerd. De docent deelt zijn of haar laptopscherm op groot scherm, en klikt “< Terug naar project”, en dan “Leren en testen”.
10. De docent klinkt vervolgens op de knop “Nieuw machinelearningmodel trainen”. Het duurt een minuut of twee om het model te trainen.
11. Als het model daarmee klaar is, kun je het testen. Voeg in het lege vak een tweet in over Lubach, die je niet hebt gebruikt als voorbeeld om het model mee te trainen. Klik vervolgens op test. Herhaal dit met verschillende tweets. Je kunt ook testen met zelfverzonnen tweets.
💭 Vervolg bespreking
Bespreek klassikaal:
- Hoe goed werkt het model?
- Waar komt dat door?
- Hoe kun je het verbeteren?
- Wat is het verschil met de aanpak van De Groene Amsterdammer?
- Hoe kijk je nu aan tegen het soort onderzoek dat De Groene Amsterdammer gedaan heeft?
- Welke andere onderwerpen zouden interessant zijn om te analyseren op sociale media?
- Wat begrijp je van de manier waarop het Machine Learning model met de voorbeelden aan de slag is gegaan? Wat vind je daarvan?
🧰 Materiaal
- Een laptop voor iedere student (of minimaal één laptop per twee studenten)
- Een groot scherm waarop de docent zijn of haar laptopscherm kan delen
- Een gratis account bij AIforkids.co.uk (uitgelegd in het antwoordmodel voor de docent)
⏱ Tijdsindicatie
45 minuten, waarvan:
- 5 minuten voor het lezen van het verhaal
- 15 minuten voor het trainen van het model
- 10 minuten voor het bespreken van de labels
- 5 minuten voor het testen
- 10 minuten voor de nabespreking