Uit onderzoek van Pointer blijkt dat veel raadsleden en wethouders last hebben van haatberichten en bedreigingen op X (voorheen Twitter). Vooral politici die asiel of LHBTI+-rechten in hun portefeuille hebben, krijgen hiermee te maken. Ook mensen met een migratie-achtergrond krijgen vaak te maken met haat. In dit artikel leggen we uit hoe we meer dan 10.000 berichten gericht aan 221 politici bekeken, en achterhaalden van wie deze haatberichten voornamelijk komen.

Voor dit onderzoek maakten we gebruik van Zeeschuimer, een Firefox-extensie waarmee je tweets binnen kunt halen nadat je ze hebt bezocht in een webbrowser (in ons geval geautomatiseerd via Selenium). We vulden een openbare dataset met alle Nederlandse lokale politici (wethouders, burgemeesters, raadsleden) aan met informatie uit openbare bronnen en een automatische zoekslag naar Twitter-accounts. De accounts die we onderzochten, komen van lokale politici uit heel Nederland, verspreid over het politieke spectrum.

Van elk van deze accounts haalden we vervolgens alle tweets binnen, tot een maximum van 10.000. Vervolgens haalden we ook de reacties op deze tweets binnen. Deze labelden we met behulp van kunstmatige intelligentie. Hiervoor gebruikten we een lokaal taalmodel in combinatie met een prompt (zie onderstaand). Het gebruikte model is Llama3.1 van Meta. We draaiden dit lokaal met Ollama, zodat we deze data buiten big tech om konden analyseren, en gebruikten een Python-script om door de resultaten heen te gaan. Ondanks dat de tweets openbaar zijn, vonden we dit dus toch een fijnere manier van werken dan wanneer we alles naar de cloud zouden sturen.

Reacties labelen als haatdragend of bedreigend

De reacties die door kunstmatige intelligentie werden gelabeld als haatdragend of bedreigend, controleerden we daarna nog met de hand. Hierbij gebruikten we dezelfde definities als in de prompt (zie hieronder). Om het werkbaar te houden, controleerden we maximaal 500 tweets per politicus met de hand. Dit betekent dat we in enkele gevallen, wanneer AI meer dan 500 reacties als haatdragend of bedreigend labelde, niet alle brondata hebben gebruikt.

Onze ervaring met het gebruik van kunstmatige intelligentie, en specifiek met een lokaal gedraaid taalmodel, is dat het model heel snel iets labelt als haatdragend of bedreigend. Ondanks de duidelijke definities in de prompt, waren er veel vals positieven, waardoor we ons genoodzaakt voelden om alles met de hand te controleren. Er waren weinig valse negatieven, wat wil zeggen dat het taalmodel weinig tweets labelde als niet haatdragend of bedreigend wanneer ze dat wel waren.

Door het benodigde handwerk konden we niet werken op een schaal als bijvoorbeeld De Groene Amsterdammer (dat een eigen model trainde) en RTL Nederland (dat een model van OpenAI gebruikte) eerder deden in vergelijkbare onderzoeken.

De broncode van dit onderzoek staat op Github.

Definities

Haat

Hiervoor gebruiken we de definitie van Amnesty International, geïnspireerd door het eerdere onderzoek van De Groene Amsterdammer:

Haatzaaien of haatspraak is taalgebruik dat een persoon of groep aanvalt op grond van godsdienst of seksuele oriëntatie, of een uiting is van xenofobie of rassendiscriminatie.

Amnesty baseert deze grotendeels op Artikel 137d van het Nederlands Wetboek van Strafrecht:

1. Hij die in het openbaar, mondeling of bij geschrift of afbeelding, aanzet tot haat tegen of discriminatie van mensen of gewelddadig optreden tegen persoon of goed van mensen wegens hun ras, hun godsdienst of levensovertuiging, hun geslacht, hun hetero- of homoseksuele gerichtheid of hun lichamelijke, psychische of verstandelijke handicap, wordt gestraft met gevangenisstraf van ten hoogste een jaar of geldboete van de derde categorie.

2. Indien het feit wordt gepleegd door een persoon die daarvan een beroep of gewoonte maakt of door twee of meer verenigde personen wordt gevangenisstraf van ten hoogste twee jaren of een geldboete van de vierde categorie opgelegd.

Bedreiging

Om een tweet als bedreiging te classificeren in ons onderzoek, moet deze voldoen aan deze definitie:

Een tweet is bedreigend wanneer deze direct oproept tot geweld of het begaan van een strafbaar feit/ongrondwettelijke handeling tegen de politicus of mensen om de politicus heen. Ook een oproep tot geweld jegens bevolkingsgroepen of een passief geformuleerde bedreiging vallen onder deze definitie.

Deze definitie is gebaseerd op de definitie uit Artikel 285 uit het Wetboek van Strafrecht:

Bedreiging met openlijk in vereniging geweld plegen tegen personen of goederen, met geweld tegen een internationaal beschermd persoon of diens beschermde goederen, met enig misdrijf waardoor gevaar voor de algemene veiligheid van personen of goederen of gemeen gevaar voor de verlening van diensten ontstaat, met verkrachting, met feitelijke aanranding van de eerbaarheid, met enig misdrijf tegen het leven gericht, met gijzeling, met zware mishandeling of met brandstichting, wordt gestraft met gevangenisstraf van ten hoogste twee jaren of geldboete van de vierde categorie.

Algemeen

Simpelweg beledigende of negatieve tweets hebben we expliciet niet meegenomen als haatdragend. Bij twijfel hebben we zaken niét als haat of bedreiging gelabeld. Later in het proces heeft er altijd minstens één persoon meegekeken met het labelen van de data, nooit hebben we alleen gevaren op de labels van kunstmatige intelligentie.

Het daadwerkelijk aantal haat- en dreigberichten ligt hoogstwaarschijnlijk een stuk hoger dan dat we in ons onderzoek vermelden. Door onze manier van labelen (bij twijfel geen label van haat of bedreiging), omdat we maximaal 500 berichten per politicus handmatig controleerden en omdat we niet alle accounts van alle lokale politici konden analyseren is er vrijwel zeker sprake van onderrapportage.

De gebruikte prompt

Deze prompt gaven we aan Llama3.1 van Meta:

Je krijgt een tweet te zien en bepaalt of deze een bedreiging dan wel haat bevat. De tweets zijn in het Nederlands en gericht aan lokale Nederlandse politici.

Een tweet is bedreigend wanneer deze direct oproept tot geweld tegen de politicus of mensen om de politicus heen. Ook een oproep tot geweld tegen bevolkingsgroepen (bijv. 'alle moslims zouden moeten hangen') of een passieve bedreiging ('ze zouden mensen als jou op moeten hangen') gelden als een bedreiging.

Een tweet bevat haat als er een belediging in zit die specifiek is gericht op iemands ras, afkomst, gender, seksuele oriëntatie of beperking.

Je hebt een gestructureerde output, waarbij je de property is_threat een waarde van True of False meegeeft op basis van de bovenstaande beschrijving. Hetzelfde doe je voor de property is_hate. In de reasoning property geef je een korte redenering (in de stijl van een tweet, met maximaal 20 woorden) voor je keuzes. Die redenering is in het Nederlands.

Kijk hier de Pointer-uitzending 'Lokaal bestuur onder vuur' terug, of via NPO Start.

Illustratieve header Lokaal bestuur onder vuur
25 min 38 s

Sinds wethouder Ashley North in Leiden het nieuwe parkeerbeleid uitrolt is hij het mikpunt van online haat en dreigementen. Steeds vaker wordt hij ook op straat uitgescholden tot hij uiteindelijk bij een bewonersbijeenkomst meermaals met de dood wordt bedreigd. Hoe heeft dit zo kunnen escaleren? Inmiddels krijgt ongeveer de helft van de lokale politici te maken met agressie. Dat ervaart ook lokale fractievoorzitter Femke Hoekstra-Wittebol, die bijna een jaar lang online wordt geïntimideerd en uitgescholden. Waarom lukt het maar niet om dit probleem terug te dringen? Doen we wel genoeg om online bedreigers aan te pakken?

Schrijf je in voor onze nieuwsbrief

Ontvang iedere week onze beste verhalen in je mailbox.

Makers

Newsroom developer

Samen komen we verder

Ons onderzoek begint bij jou. Heb jij een tip of ervaring die je met ons wil delen? Laat het ons weten!

Heb jij een tip of ervaring die je met ons wil delen? Laat het ons weten!

Documentatie uploaden
CAPTCHA
Deze vraag is om te controleren dat u een mens bent, om geautomatiseerde invoer (spam) te voorkomen.

Bedankt, je tip is verstuurd

Wat gebeurt er nu met mijn tip?

Bedankt dat je de tijd hebt genomen om het tipformulier in te vullen. Je tip is verstuurd naar de redacteur van het onderzoek. Wij publiceren niets met naam en toenaam zonder contact met je op te nemen. Soms krijgen we zoveel tips binnen dat het ons helaas niet lukt om iedereen een persoonlijke reactie te sturen. We vragen je begrip hiervoor. 

Benieuwd naar de impact van eerdere tips?

Van kamervragen tot petities en maatschappelijk debat: samen met jou pakken we systemisch falen en onrecht aan. Benieuwd naar de impact van eerdere onderzoeken en ingezonden tips? Bekijk dan nu ons track record.