• No results found

De functie van grove woorden op Twitter

N/A
N/A
Protected

Academic year: 2021

Share "De functie van grove woorden op Twitter"

Copied!
44
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

De functie van grove woorden op Twitter

Rianne Bos Masterscriptie Informatiekunde Rianne Bos S3001423 19juni 2019

(2)

A B S T R A C T

Het doel van dit onderzoek is het presenteren van een analyse van grove woorden in het Nederlands. Het is gebaseerd op het onderzoek van Holgate et al. (2018) die hebben gekeken naar de functie van grove woorden op Twitter voor de Engelse taal.

De onderzoeksvragen die zijn opgesteld zijn: 1) Wat zijn de functies van grove woorden die in het Nederlands worden gebruikt en hoe verhouden deze zich tot de functies voor grove woorden in het Engels? 2) In hoeverre worden verschillende grove woorden gebruikt met verschillende functies? 3) Hoe goed is een classificator in staat, gebaseerd op context, de functie van grove woorden te voorspellen?

Om een antwoord te kunnen geven op de onderzoeksvragen is eerst een lijst met grove woorden opgesteld. Vervolgens zijn tweets verzameld waar deze woorden in voorkomen en zijn de tweets geannoteerd. Uiteindelijk heeft dit geresulteerd in een dataset van 4500 geannoteerde tweets (Kappa = 0.589) waarin 46 verschillende scheldwoorden voorkomen. De zes categorieën die voor het Engelse onderzoek zijn gebruikt (agressie, emotie, benadrukken, groepsidentiteit, manier van spreken en niet grof gebruikt), zijn aangevuld met twee extra categorieën (andermans uiting en ontkenning).

Een analyse van de dataset heeft laten zien dat de meeste woorden met 5 (14) en 4(12) functies worden gebruikt en er slechts 2 woorden zijn die maar met 1 functie worden gebruikt. Verder zijn er 7 woorden met 7 functies, 5 woorden met 6 functies, 3woorden met 3 functies en 3 woorden met 2 functies.

De dataset is opgesplitst in een trainingsset (80%), een ontwikkelingsset (10%) en een testset (10%). De tweets in de trainingset zijn als volgt over de categorieën ver-deeld: agressie 36.8%, emotie 22.9%, manier van spreken 23.0%, niet grof gebruikt 8.1%, nadruk 4.8%, andermans 2.0%, groepsidentiteit 1.8% en ontkenning 0.6%. De ontwikkelingsset is gebruikt om de beste combinatie van features te vinden en de testset is gebruikt om het uiteindelijke model te evalueren.

De features die in dit onderzoek zijn gebruikt zijn: intentie distributie, pointwise mutual information, wordembeddings, sentiment, POS-tags en brown clusters. Het classificeren van de scheldwoorden in tweets door een Support Vector Machine (Li-nearSVC) resulteert in een accuracy van 0.651. De tweede methode, het omzetten van de binaire waarschijnlijkheden voor alle categorieën (op basis van acht one ver-sus all binaire logistische regressie modellen) naar een uiteindelijk label, resulteert in een accuracy van 0.682. Hiermee wordt de baseline van 0.334 ruim verslagen door beide modellen.

(3)

I N H O U D S O P G A V E

Abstract i Voorwoord iii 1 introductie 1 1.1 Aanleiding . . . 1 1.2 Onderzoeksvragen . . . 1 1.3 Hypothese . . . 2 2 literatuur 3 3 data and materiaal 5 3.1 Data verzamelen . . . 5 3.1.1 Woordenlijst . . . 5 3.1.2 Tweets . . . 5 3.1.3 Categorieën . . . 5 3.1.4 Online annotatie . . . 8 3.2 Analyse pre-annotatie . . . 8 3.2.1 Verschillen in annotaties . . . 8 3.2.2 Voorbeelden annotaties . . . 10

3.2.3 Aanpassen definities, site en data . . . 10

3.3 Definitieve dataset . . . 12

4 analyse data 15 5 methode 18 5.1 Features . . . 18

5.1.1 Intentie distributie . . . 18

5.1.2 Pointwise mutual information . . . 18

5.1.3 Inhoud tweet . . . 18 5.1.4 Sentiment tweet . . . 19 5.1.5 Woordsoort context . . . 19 5.1.6 Brown clusters . . . 20 5.2 Classificatie . . . 20 5.3 Evaluatie . . . 21 6 resultaten 22 6.1 Binaire classificatie . . . 22

6.2 Binaire waarschijnlijkheid vertaald naar categorie . . . 27

6.3 Support Vector Machine . . . 30

7 discussie 34

8 conclusie 35

a vormgeving website 37

b scheldwoorden & schrijfwijzen 39

c overzicht alle pmi waardes 40

(4)

V O O R W O O R D

Voor u ligt de scriptie ’De functie van grove woorden op Twitter’. Deze scriptie is geschreven in het kader van mijn afstuderen aan de master Informatiekunde aan de Rijksuniversiteit Groningen.

Het idee voor deze scriptie heb ik van mijn scriptiebegeleider, Gertjan van Noord. Hij kwam op dit idee door de Engelse variant van hetzelfde onderzoek, gedaan door Holgate et al. (2018).

Graag wil ik hem op deze plek bedanken voor zijn begeleiding tijdens het pro-ces. Daarnaast wil ik ook de mensen die hebben geholpen met het annoteren van de tweets bedanken. Dit zijn Anouck Braggaar, Geert Tichelaar en Herma Koersen. Ik wens u veel leesplezier toe.

Rianne Bos

Zwolle, 18 juni 2019

(5)

1

I N T R O D U C T I E

1.1

aanleiding

Nederlanders zijn een grofgebekt volk. Dat is althans wat Neerlandicus Marc van Oostendorp vertelt aan NPO Radio1.1

Al sinds de 17e eeuw zouden Nederlands bekend staan om hun grofheid. Ook op sociale media zijn het de Nederlanders die het meest schelden. Het woord ’kanker’ wordt zo vaak gebruikt dat Twitter en Facebook dit woord niet meer filteren. En waarom Nederlanders als enige volk ter wereld met ziektes schelden? Volgens van Oostendorp is het te verklaren uit de Calvinistische achtergrond. De ziekte kanker werd gezien als een straf, het was je eigen schuld. Dit zorgde ervoor dat er mee gescholden kon worden.

Dit lijkt dus een aanwijzing te zijn voor het feit dat Twitter een omgeving rijk aan scheldwoorden is.

Zo deed de NOS in 2005 al eens onderzoek naar het gebruik van scheldwoorden op Twitter.2

Hierbij zochten ze naar 13 scheldwoorden in de tweets van de maand september. In 46.688 tweets kwam een scheldwoord voor, waarbij 19.000 keer het woord ’kut’ het betreffende scheldwoord was. Volgens de geraadpleegde taalkun-dige is een mogelijke verklaring hiervoor een taaltechnische reden. Namelijk dat ’kut’ breed inzetbaar is.

Want wie heeft het ooit niet gebruikt in bijvoorbeeld een zin als: "Kut, ik ben vergeten de container aan de weg te zetten", of "Die toets van wiskunde was echt kut". Maar je kunt ook iemand ’kut’ vinden of ergens ’geen kut van snappen’. Als je deze verschillende varianten van het woord ’kut’ goed bekijkt, zie je dat het woord in alle vier de voorbeelden een andere functie heeft.

In de hiervoor genoemde zinnen zou je het woord ’kut’ kunnen vervangen door het woord ’klote’. Er bestaan dus meerdere scheldwoorden die meerdere functies kunnen hebben.

Naast scheldwoorden bestaan er ook vloekwoorden. Een vloek impliceert dat je iemand verdoemd of straft, terwijl een scheldwoord godslastering suggereert. Je roept een god aan om je woorden kracht bij te zetten (Wong 2017).

1.2

onderzoeksvragen

Het doel van dit onderzoek is het presenteren van een analyse van grove woor-den in het Nederlands. Om dit te kunnen doen moeten de functies van de grove woorden die in het Nederlands worden gebruikt, worden gevonden. We kunnen hierbij aannemen dat verschillende functies worden gevonden, gebaseerd op voor-gaand onderzoek van Holgate et al. (2018) en Van Sterkenburg (2008). Dit maakt het mogelijk deze functies te voorspellen, gebaseerd op de context waarin het woord voorkomt. Deze taak kan uiteen worden gezet in drie onderzoeksvragen:

1. Wat zijn de functies van grove woorden die in het Nederlands worden ge-bruikt en hoe verhouden deze zich tot de functies voor grove woorden in het En-gels?

2. In hoeverre worden verschillende grove woorden gebruikt met verschillende functies? 1 https://www.nporadio1.nl/achtergrond/12168-waarom-nederlanders-zo-grof-zijn-op-social-media-schelden-zit-in-onze-cultuur 2 https://nos.nl/op3/artikel/2064534-zo-scheldt-nederland-op-twitter.html 1

(6)

1.3 hypothese 2

3. Hoe goed is een classificator in staat, gebaseerd op context, de functie van grove woorden te voorspellen?

1.3

hypothese

De verwachting is dat de functies van grove woorden in het Nederlands hetzelfde zijn als in het Engels. Voor de categorieën die in het Engels voorkomen (agressie, emotie, manier van spreken, geen scheldwoord, benadrukken en groepsidentiteit) bestaan in het Nederlands ook uitingen met daarin scheldwoorden die in de betref-fende categorieën kunnen worden geplaatst.

Het is zeer waarschijnlijk dat de grove woorden met verschillende functies ge-bruikt worden. InParagraaf 1.1werden ’kut’ en ’klote’ al genoemd als voorbeelden. Maar ook bijvoorbeeld ’tering’ kan worden gebruikt in ’het is hier tering (heel erg) druk’ en ’wat ben jij een tering wijf’. In laatstgenoemde uiting komt het woord wijf negatief naar voren, maar bijvoorbeeld in de zin ’zij is echt een top wijf’ is wijf juist een positief woord.

De categorieën zijn redelijk van elkaar te onderscheiden, maar er zullen ook tweets zijn waarbij het voor mensen lastig is om ze in te delen. Doordat annota-toren de tweets moeten labelen en hierbij de tweets moeten interpreteren kan dit zorgen voor inconsistentie in de data. Daarnaast is het aantal categorieën mede bepalend voor de moeilijkheid van de taak. Op basis van deze punten wordt er niet verwacht dat een classificator de tweets foutloos classificeert. Omdat er ook uitingen zijn waarbij je zonder twijfel kan zeggen welke functie het scheldwoord heeft en de classificator geacht wordt dit te kunnen leren op basis van context, is de verwachting dat de classificator de functies van scheldwoorden toch redelijk goed kan voorspellen.

(7)

2

L I T E R A T U U R

Deze scriptie is gebaseerd op het werk van Holgate et al. (2018), waarin zij onder-zoek doen naar de functies van grove woorden in het Engels. Zij hebben ervoor gekozen de grove woorden in te delen in zes verschillende categorieën. Deze inde-ling komt voort uit onderzoeken van Andersson en Trudgill (1990), Pinker (2007) en Wang (2013), waarin zij allemaal hun eigen categorieën opstelden. De zes ver-schillende functies die Holgate et al. (2018) uiteindelijk hebben gebruikt zijn: uiting van agressie (express agression), uiting van emotie (express emotion), benadrukken (emphasize), hulpwoord (auxiliary), groepsidentiteit (singal group identity) en niet grof gebruikt (non vulgar use).

Grove woorden kunnen worden gezien als synoniemen, ze kunnen elkaar ver-vangen in verschillende contexten, zelfs als ze een verschil in syntax of betekenis hebben Holgate et al. (2018). Om de functie van een bepaald grof woord in een be-paalde zin te kunnen bepalen, is de context nodig. Dit is de reden dat Holgate et al. (2018) een classificator hebben gecreëerd die op basis van intentie distributie, in-houd van de tweet, sentiment in de tweet, part-of-speech tagging en brown clusters, de functie van een grof woord in zijn context kan voorspellen.

Het model dat ze uiteindelijk hebben gebouwd is in staat om de functie van grove woorden in 1087 tweets te voorspellen met een F1-score van 67.4%. Hierbij hebben ze het gemiddelde genomen van de f-scores van hun 6 one versus all bi-naire classificatiesystemen. Daarnaast hebben Holgate et al. (2018) laten zien dat het voorspellen van de functie van grove woorden kan bijdragen aan het opsporen van haatzaaien. Om dit aan te tonen hebben ze zes grove functie features toege-voegd aan het model van Davidson et al. (2017). Dit resulteerde in een verbetering van 6.1% op de F1-score voor het opsporen van haatzaaien en een verbetering van 3.7% op de F1-score voor de gehele classificatietaak.

Eerder onderzoek naar hoe Nederlanders schelden op Twitter en welke woorden ze daarbij gebruiken is gedaan door onder andere Zenner et al. (2017) en Ruette en Grieve (2014). Zij hebben respectievelijk gekeken naar de leenbaarheid van Engelse scheldwoorden en waarom Nederlanders ziektes als scheldwoorden gebruiken. In het artikel van Ruette en Grieve (2014) wordt onderscheid gemaakt tussen verschil-lende categorieën scheldwoorden, zoals ziektes, genitaliën, ontlasting, religie en seksualiteit.

Van Sterkenburg (2008) maakt ook onderscheid tussen verschillende soorten grove woorden: • schelden • zelfvervloeking • godslasterlijk vloeken • bastaardvloeken • profane vloeken • verwensingen en vervloekingen

Net als bij Ruette en Grieve (2014) kan dit worden gezien als een manier om te categoriseren. Het is echter anders dan de functie categorieën die gebruikt worden door Holgate et al. (2018), omdat bijvoorbeeld een vloek kan worden gebruikt voor zowel het uiten van agressie als voor het uiten van emotie (volgens de resultaten van een vragenlijst van Van Sterkenburg (2008)).

(8)

literatuur 4

Hoewel Van Sterkenburg (2008) wel iets zegt over waarom we schelden en vloe-ken, maakt hij geen duidelijk onderscheid tussen verschillende functies voor al de categorieën die hierboven worden genoemd. Alleen voor vloeken heeft hij een lijst opgesteld met de meest belangrijke functies: kanaliseren van emoties, shockeren, kleur geven aan een discussie, voorkomen van fysiek geweld, mensen aan het la-chen maken en het imponeren van de gesprekspartner. Deze functies zijn opnieuw gebaseerd op de vragenlijst van Van Sterkenburg (2008) en verschillen van de func-ties zoals die gebruikt worden door Holgate et al. (2018). De funcfunc-ties van Hol-gate et al. (2018) lijken meer van toepassing te zijn op Twitter (en worden daar ook voor gebruikt) omdat bijvoorbeeld het voorkomen van fysiek geweld waarschijnlijk niet een van de doelen is wanneer je niet tegenover iemand staat.

(9)

3

D A T A A N D M A T E R I A A L

3.1

data verzamelen

3.1.1 Woordenlijst

Voor het verzamelen van tweets met daarin grove woorden, is allereerst een lijst met grove woorden nodig. De woorden in deze lijst kunnen vervolgens worden gebruikt als zoektermen. Voor het Nederlands is er geen website met daarop een uitgebreide lijst met grove woorden. Om toch een zo volledig mogelijke lijst te creëren, zijn van verschillende websites grove woorden afgehaald. Twee pagina’s van het WikiWoor-denboek (scheldwoorden in het Nederlands3

en krachttermen in het Nederlands4

), de Wikipedia pagina voor ‘Dutch provanity’5

en Top-20 krachttermen van Alles op een rij6

zijn hiervoor gebruikt. Verschillende varianten van hetzelfde woord worden samengevoegd (bijvoorbeeld potverdorie en potdorie) en ook alternatieve schrijfwij-zen worden toegevoegd (‘ei’ ipv ‘ij’ en vice versa, ‘g’ ipv ‘ch’, * ipv een klinker in de meest grove woorden). Via de zoekfunctie van Twitter is gekeken of alternatieve schrijfwijzen voor bepaalde woorden ook daadwerkelijk worden gebruikt. Indien dit het geval is, zijn de schrijfwijzen toegevoegd. Levert het zoeken geen resultaat op, dan wordt de alternatieve schrijfwijze niet toegevoegd. De uiteindelijke lijst bestaat uit 348 termen met de bijbehorende varianten en schrijfwijzen.

3.1.2 Tweets

Voor dit onderzoek worden de tweets gebruikt die al zijn verzameld op de Rijks-universiteit Groningen. Deze tweets worden verzameld op basis van Nederlandse zoektermen. Omdat er in dit onderzoek wordt gekeken naar de huidige status van het gebruik van scheld- en vloekwoorden, worden de tweets van december 2018 gebruikt. Deze tweets zijn opgeslagen per dag, per uur. Om een eerste indruk te krijgen van de data zijn de tweets van 1,2 en 3 december gebruikt. In lijn met het onderzoek van Holgate et al. (2018) worden alleen de tweets geselecteerd waarin een grof woord staat dat over de hele set 10 of meer keer voorkomt. Hierbij wor-den retweets verwijderd om te voorkomen dat er dubbelen in de training en test data zitten. Ook tweets die afgekort zijn (truncated = True) worden verwijderd. De reden hiervoor is dat in sommige gevallen een woord werd afgebroken en het over-gebleven deel als grof woord werd gezien (bv. bekend afgekort tot bek...). In dit geval blijven er 48 termen over na een handmatige selectie van grof en niet grof. 3.1.3 Categorieën

Om tot de juiste functie categorieën te komen, zijn als basis de categorieën van Holgate et al. (2018) gebruikt: uiting van agressie, uiting van emotie, benadrukken, manier van spreken, groepsidentiteit en niet grof gebruikt.

Na het annoteren van een aantal voorbeelden bleken er nog twee categorieën te kunnen en moeten worden toegevoegd. Dit zijn ’ontkenning’ en ’andersmans uiting’. De conceptuele definitie van de functies staat inTabel 1. Deze categorieën en de bijbehorende definities zijn gebruikt om een paar honderd (403) tweets te 3 https://nl.wiktionary.org/wiki/Categorie:Scheldwoord_in_het_Nederlands 4 https://nl.wikipedia.org/wiki/Categorie:Krachtterm_in_het_Nederlands 5 https://en.wikipedia.org/wiki/Dutch_profanity 6 https://www.allesopeenrij.nl/cultuur-2/hollanders/top-20-krachttermen/ 5

(10)

3.1 data verzamelen 6

laten annoteren door twee verschillende annotatoren. Deze pre-annotatie wordt gebruikt om te analyseren waar de twee annotatoren verschillende keuzes maken, zie3.2.

(11)

3.1 data verzamelen 7 Functie Definitie Uiting v an agr essie Is het een aanv al op een persoon of een gr oep personen w aar de tw eet o v er gaat? Uiting v an emotie Is het een uiting v an emoties (kan zo w el positief als negatief) v an de T witteraar zelf? Ook attitudes richting een object v allen hier onder . De emotie v er dwijnt als het w oor d w or dt v er wijder d Benadrukken W or dt het w oor d puur gebruikt om een uiting of ge v oel te benadrukken? V ersterkt het een bijv oeglijk naamw oor d? Manier v an spr eken Is het een manier v an spr eken? Gr oepsidentiteit W or dt iemand geïdentificeer d als lid v an een sociale gr oep, duidt het op kameraadschap? Ontkenning T w eets met een ontkenning Ander mans uiting Benoemen dat iemand anders dit vindt Niet gr of gebruikt Het w oor d w or dt in deze tw eet niet gr of gebruikt T abel 1: Concept definitie functie categorieën Functie V oorbeeldtw eet Uiting v an agr essie Jij bent net zo achterlijk , als je er uit ziet Uiting v an emotie Die de fuck heeft die gar e ter ing flash bedacht op die shotgun? No skilled shit Benadrukken Lekker man een 6 punten w edstrijd winnen. En w at is @doan_ritsu achterlijk goed. #gr onac Manier v an spr eken Ov er iets meer dan een w eek moet mijn v erstandskies eruit en ik schijt 7 kleur en.. .. Gr oepsidentiteit @almiraademi happ y birthda y bad bitch ♥ geniet v an je dag, en moge Allah je nog v eel mooie jar en schenken ♥ Lo v e y ou!!! Ontkenning @LepmutsB @wier dduk Omdat W ier d Duk geen klootzak is... jij w el. Ander mans uiting @MEAUWY K w as uitgegaan en w er d tegen hem aangeduw d , hij duwt terug en begint me te slaan en zei doe is kanker nor maal kanker hoer Niet gr of gebruikt V anmiddag bij de #Intratuin ge w eest. V oor slechts € 18 , 75 deze luxe eikel op de kop getikt ’URL ’ T abel 2: V oorbeeldtw eet per categorie

(12)

3.2 analyse pre-annotatie 8

3.1.4 Online annotatie

Voor het makkelijk en snel annoteren van de tweets is een website gemaakt. An-notatoren maken een account aan en kunnen starten met annoteren. Op de home pagina staat een korte uitleg: ‘Na het inloggen verschijnt er een tweet in beeld, met daarin een dikgedrukt woord. Dit is het woord dat geannoteerd moet worden. On-der de tweet staat een lijst met stappen. Loop die af totdat je denkt, dit is de juiste functie voor het woord. In dat geval klik je op de bijbehorende button.’

Na het inloggen komt de tweet met het dikgedrukte woord in beeld. Daaronder staat per categorie een definitie (zoals vermeld inTabel 1enTabel 5) met erachter een klikbare button. Onderaan de pagina bevinden zich per categorie een aantal voorbeelden, zieTabel 2 voor een voorbeeld per categorie. De gebruiker leest de tweet, en loopt de lijst van categorieën af. Als de annotator op een button klikt, wordt de betreffende annotatie opgeslagen in MySQL.

Voor een visuele weergave van de inlogpagina en de annotatiepagina, zie

Ap-pendix A.

3.2

analyse pre-annotatie

3.2.1 Verschillen in annotaties

Tijdens de analyse van de pre-annotatie blijkt dat de taak niet eenvoudig is. Van de 403geannoteerde tweets, zijn de annotatoren het in 261 van de gevallen eens. Dit betekent dat in 143 (35%) van de gevallen de annotatoren het oneens zijn. Tabel 3 geeft een overzicht van de verschillende annotatie combinaties die voorkomen en hoe vaak deze combinaties voorkomen. Opvallend is dat annotator 1 hierbij vaak kiest voor ’manier van spreken’ (44 keer) en ’agressie’ (33 keer), en annotator 2 vaak kiest voor ’emotie’ (46 keer) en ’geen’ (35 keer).

Hierdoor zijn de grootste verschillen ook te vinden voor tweets waarbij anno-tator 1 kiest voor manier van spreken en annoanno-tator 2 kiest voor emotie (17 keer). Ook de combinaties manier van spreken en geen, agressie en geen en manier van spreken en agressie komen allen meer dan 10 keer voor. De enige afwijkende com-binatie (waarbij een categorie wordt toegewezen die niet in de top 2 meest gekozen staat) die vaker dan 10 keer voorkomt, is die van nadruk en emotie (16 keer).

(13)

3.2 analyse pre-annotatie 9 Annotator 1 Agr essie Ander mans Emotie Geen Gr oepsid Man. v. spr eken Nadruk Ontkenning T otaal Annotator2 Agr essie 163 3 1 0 6 11 6 0 190 Ander mans 1 2 0 0 0 1 0 0 4 Emotie 7 0 37 5 1 17 16 0 83 Geen 12 5 2 22 1 15 0 0 57 Gr oepsid 2 0 0 0 2 0 0 0 4 Man. v. spr eken 9 0 3 3 0 25 3 0 43 Nadruk 1 0 5 4 0 0 7 0 17 Ontkenning 1 1 0 0 1 0 0 2 5 T otaal 196 11 48 34 11 69 32 2 403 T abel 3: Confusion matrix: v erschil in pr e-annotaties

(14)

3.2 analyse pre-annotatie 10

3.2.2 Voorbeelden annotaties

Om te laten zien waar de problemen liggen, staan inTabel 4een aantal voorbeeldt-weets met hun annotaties. Bij de eerste twee voorbeelden valt voor beide annotaties wat te zeggen. Het is zowel een aanval op het bestuur van, in het ene geval, de Graafschap, en in het andere geval, Feyenoord. Maar de termen ’iemand eruit flik-keren’ en ’schijt hebben’ kunnen ook worden gezien als een manier van spreken, als een alternatief voor ’iemand eruit gooien’7

en ’niks van aantrekken’8

.

In voorbeeld drie zegt ’tering’ iets over hoe koud het was en in voorbeeld vier zegt ’verrekte’ iets over hoe onpraktisch iets is. Als je dit vergelijkt met tweet vijf en zes, is er een duidelijk verschil. Daar zeggen ’achterlijk’ en ’klote’ wel iets over ’gegil’ en ’redactie’ maar het is geen versterking van het woord waar het wat over

zegt, het kan beter worden gezien als een oordeel of mening over dat woord.

Bij tweet zeven en acht kiest annotator 1 in beide gevallen voor manier van spre-ken, waar annotator 2 kiest voor emotie. In geval van tweet zeven is ’manier van spreken’ de beste keuze, het is een figuurlijke uitspraak maar niet noodzakelijker wijs een uiting van emotie. In geval van tweet acht is juist ’emotie’ de beste annota-tie, het is een negatieve emotionele uiting gerelateerd aan wat er in de tweet vooraf gaat aan het geannoteerde woord.

De categorie ’geen’ blijkt ook lastig. In de voorbeelden negen en tien gaat het om een ander woord voor het mannelijk geslachtsorgaan en bij elf is stront een gangbaar ander woord voor poep. In deze gevallen is ’geen’ dus de beste annotatie. In het geval van tweet 12 kan ’shit’ worden vergeleken met bijvoorbeeld ’heel gaaf’ of ’super cool’. Dit is dus een manier van spreken.

3.2.3 Aanpassen definities, site en data

Op basis van de hierboven genoemde voorbeelden en de gevonden verschillen in annotaties, is besloten de definities van sommige categorieën aan te passen. Door ze te verduidelijken en te verscherpen moet het aantal tweets met verschil in annotatie verkleinen. Voor de definitieve dataset zal opnieuw een deel van de tweets door twee verschillende annotatoren geannoteerd worden. De volgende aanpassingen zijn gedaan:

• Uiting van agressie: ’aanval’ is mogelijk niet duidelijk genoeg gedefinieerd. Daarom ’kwetsen’ toegevoegd.

• Uiting van emotie: Attitudes richting een object kan voor verwarring zorgen, wat zijn attitudes en wat wordt bedoeld met een object? Dit is versimpeld naar hoe je over iets denkt of wat je ergens van vindt.

• Benadrukken: Naast ’benadrukken’ nu ook ’versterken’ toegevoegd, om de link naar dat iets ’heel erg’ zo is, te versterken. Daarnaast expliciet vermeld dat het woord kan worden gelezen als alternatief voor ’heel erg’ omdat dit in de meeste gevallen van benadrukken de lezing is.

• Manier van spreken: deze categorie moet alleen worden gekozen als het woord niet in een van de drie bovenstaande categorieën past. Dit werd al wel geïmpliceerd door het volgen van de lijst met stappen (zoals ook vermeld op de homepage, zie3.1.4) maar staat nu ook expliciet in de definitie.

• Ontkenning: Om duidelijk te maken wat wordt bedoeld met een ontkenning zijn de voorbeelden ’niet’ en ’geen’ toegevoegd.

7

https://www.encyclo.nl/begrip/schijt%20hebben%20aan%20iets

8

(15)

3.2 analyse pre-annotatie 11 Ind. T w eet Annotator 1 Annotator 2 1 W anbeleid @DeGraafschap flikker t hele bestuur plus technische staf er uit. agr essie man. v. spr eken 2 @Gr oundhopperPat Ge w oon schijt aan het bestuur hebben en elke thuisw edstrijd dit cr eër en w ant wij zijn fe y enoor d agr essie man. v. spr eken 3 @softjihoonist T rue t w as ter ing koud bij hek emotie nadruk 4 @T impie 76 Opzet klinkt leuk, maar is v olgens mij w el v errekte onpraktisch emotie nadruk 5 @pauwnl @marktuitert doe eens w at aan dat achterlijk gegil en gefluit aan het begin v an de uitzending. nadruk emotie 6 @Hans_Ruck @HeleenMees @eelcob vr Tja w at een klote redactie bij Nieuwsuur nadruk agr essie 7 @La wuigi Ik heb niks te doen v andaag, m’n slaapritme is ge w oon naar de hel man. v. spr eken emotie 8 Enige w at de meeste scholier en lijken te ler en is klagen jezus man man. v. spr eken emotie 9 @geile_sara 92 Ben je niet bang v oor een gr ote lul ’URL ’ man. v. spr eken geen 10 @SJUUL 013 S oort v an per ongeluk zw anger w ant op lul ge v allen????!!! agr essie geen 11 Honder den roeken zor gen v oor o v erlast Nieuw-Amster dam: ’Alles zit onder de stront ’ ’URL ’ ander mans geen 12 @flo w ersfor njm oh mijn god ... ja dit w as echt de shit geen man. v. spr eken T abel 4: V oorbeelden: tw eets met v erschillende annotaties Functie Definitie Uiting v an agr essie Is het een aanv al op een persoon of een gr oep personen w aar de tw eet o v er gaat? Is het bedoeld om iemand te kw etsen? Uiting v an emotie Is het een uiting v an emoties (kan zo w el positief als negatief) v an de T witteraar zelf? Ook hoe je o v er iets denkt of w at je er gens v an vindt v alt hier onder . De emotie v er dwijnt als het w oor d w or dt v er wijder d Benadrukken W or dt het w oor d puur gebruikt om een uiting of ge v oel te benadrukken of te v ersterken? Kan het w or den gelezen als een alter natief v oor ’heel er g’? Manier v an spr eken Is het een manier v an spr eken en past het niet in een v an bo v enstaande categorieën? Gr oepsidentiteit W or dt iemand geïdentificeer d als lid v an een sociale gr oep, duidt het op kameraadschap? Ontkenning T w eets met een ontkenning, be v at de tw eet bijv oorbeeld het w oor d ’geen’ of ’niet’ Ander mans uiting Benoemen dat iemand anders dit vindt Niet gr of gebruikt Het w oor d w or dt in deze tw eet niet gr of gebruikt T abel 5: Definitie v e definitie functie categorieën

(16)

3.3 definitieve dataset 12

De nieuwe, definitieve, definities staan in Tabel 5. Een extra maatregel om te voorkomen dat een woord verkeerd wordt geannoteerd is het toevoegen van een ’overig’ button. Deze kan worden gebruikt voor een woord wat niet onder een van de gedefinieerde functies kan worden ingedeeld, maar ook als een annotator een woord niet kent of de betekenis in een bepaalde tweet niet begrijpt.

Daarnaast worden op de homepage nu ook de definities en voorbeelden ge-plaatst, zodat de kans groter is dat de annotatoren het in ieder geval een keer goed doorlezen.

Een derde aanpassing op basis van de annotaties is het verwijderen van twee grove termen: ’zooi’ en ’stom’. Het verwijderen van ’zooi’ is gebaseerd op het feit dat de functie vaak in het woord voorafgaand aan zooi zit: ‘Mobiel fucking kapot laten vallen.. tering kut zooi’. Het verwijderen van ’stom’ is gedaan om dat dit woord niet als grof wordt ervaren.

3.3

definitieve dataset

Voor de definitieve dataset zijn de tweets van 4, 5 en 6 december 2018 gebruikt. In totaal zijn dit 7750 tweets, welke verdeeld zijn over 46 verschillende grove termen. Voor een overzicht van de termen en hun alternatieve schrijfwijzen, zieAppendix B. Van deze set tweets zijn er 4735 geannoteerd, waarvan 235 in de categorie ’ove-rig’ geplaatst zijn. Deze tweets zijn eruit gehaald, waardoor er voor de definitieve dataset 4500 tweets over blijven.

In totaal hebben 4 annotatoren de categorieën toegewezen. De twee annotato-ren die de meeste tweets hebben geannoteerd, hebben voor 500 tweets allebei een categorie toegewezen. Van deze 500 geannoteerde tweets, zijn de annotatoren het in 345 van de gevallen eens.

In 155 (31%) van de gevallen zijn de annotatoren het oneens. Dit is een kleine verbetering van 4% ten opzichte van de pre-annotatie. Ondanks het specificeren van de definitie blijft het dus een moeilijke taak.

In Tabel 6 staat een overzicht van de verschillende annotatie combinaties. De

opvallendste verschillen zijn dat van de 155 verschillende annotaties, annotator 1 vaak kiest voor ’manier van spreken’ (82 keer) en ’nadruk’ (26 keer) en annotator 2 vaak kiest voor ’emotie’ (60 keer) en ’agressie’ (43 keer).

De combinaties die vaker dan tien keer voorkomen zijn: ‘manier van spreken’ en ‘agressie’, ‘manier van spreken’ en ‘emotie’, ‘nadruk’ en ‘emotie’ en ‘manier van spreken’ en ‘geen’. Alleen de laatste combinatie bevat hierbij een categorie die niet in de top 2 van een van de annotatoren staat.

(17)

3.3 definitieve dataset 13 Annotator 1 Agr essie Ander mans Emotie Geen Gr oepsid Man. v. spr eken Nadruk Ontkenning T otaal Annotator2 Agr essie 145 1 2 0 0 33 7 0 188 Ander mans 0 7 0 0 0 1 0 0 8 Emotie 8 1 55 3 0 30 18 0 115 Geen 3 1 0 20 0 15 1 1 41 Gr oepsid 5 0 0 0 6 2 0 0 13 Man. v. spr eken 6 0 6 6 1 96 0 1 116 Nadruk 1 0 0 0 0 1 16 0 18 Ontkenning 0 0 0 1 0 0 0 0 1 T otaal 168 10 63 30 7 178 42 2 500 T abel 6: Confusion matrix: v erschil definitie v e dataset

(18)

3.3 definitieve dataset 14

Naast het berekenen van het percentage van de gevallen waarin de annotato-ren het oneens zijn, willen we ook weten of de overeenstemmingen die worden gevonden, op kans berusten. Cohen’s Kappa is een maat van overeenkomst tussen beoordeling die is gecorrigeerd voor kans. Om Cohen’s Kappa te berekenen moet eerst het verwachte aantal keer dat de annotatoren het eens zouden zijn op basis van kans worden uitgerekend. De formule, per categorie, hiervoor is:

va = Totaal aantal annotatiesrijtotaal∗kolomtotaal

De resultaten voor deze formule staan afgebeeld inTabel 7. Deze waardes wor-den vervolgens opgeteld om tot het totaal aantal keer overeenstemming op basis van kans te komen:

P

va = 63, 17 + 0, 16 + 14, 49 + 2, 46 + 0, 18 + 41, 30 + 1, 51 + 0, 004 = 123, 274 Cohen’s Kappa wordt dan als volgt berekend, waarbijPahet aantal keer dat de annotatoren het eens zijn is en N het totaal aantal annotaties is:

κ = P a−Pva N−Pva = 345−123,274 500−123,274 = 0.589

De schaal loopt van 0 tot 1 en de gevonden waarde van 0.589 kan worden ge-ïnterpreteerd als redelijk (Artstein en Poesio 2008). Dit betekent ook dat het geen makkelijke taak is en dat het onderscheid tussen de categorieën niet altijd duidelijk is. Het is dus niet te verwachten dat een classificator dit foutloos doet.

Categorie Verwacht aantal keer eens op basis van kans

Agressie 63,17

Andermans 0.16

Emotie 14,49

Geen 2,46

Groepsid 0,18

Manier van spreken 41,30

Nadruk 1,51

Ontkenning 0,004

(19)

4

A N A L Y S E D A T A

Om een indruk te krijgen van de definitieve dataset wordt in dit hoofdstuk een kwantitatieve analyse van de data gepresenteerd. Allereerst wordt er gekeken naar hoeveel tweets er per woord in de dataset terecht zijn gekomen. Met ’woord’ wordt hier de overkoepelende term bedoeld, dus ook de spellingvarianten vallen hieron-der. Het meest voorkomende woord is god, met 203 tweets. Het woord dat het minst voorkomt is mietje, met slechts 11 tweets. Een compleet overzicht van het aantal tweets per woord is te vinden inTabel 8.

Woord Aantal tweets Woord Aantal tweets

Achterlijk 169 Lul 173 Bek 160 Mietje 11 Bitch 131 Mongool 51 Debiel 81 Muil 44 Drol 38 Pleuritis 50 Dwaas 40 Reet 137 Eikel 86 Rot 150 Flapdrol 46 Schijt 129 Flikker 64 Schoft 15 Fuck 162 Shit 200 Gadverdamme 40 Slet 32 God 203 Smeerlap 18 Godverdomme 92 Stront 75 Hel 136 Sukkel 110 Hoer 69 Tering 188 Hufter 28 Tokkie 16 Idioot 180 Tuig 185 Jezus 81 Tyfus 65 Kanker 181 Verdomme 85 Klootzak 62 Verdorie 65 Klote 176 Verrek 18 Kut 192 Vuil 53 Loser 58 Wijf 155

Tabel 8: Aantal tweets per woord

Het grootste deel van de tweets valt in de categorie agressie, gevolgd door emo-tie en manier van spreken, zie tabel Tabel 9. De overige categorieën bevatten een aanzienlijk kleiner aantal tweets.

Categorie Percentage

Agressie 36.8%

Emotie 22.9%

Manier van spreken 23.0%

Geen 8.1%

Nadruk 4.8%

Andermans 2.0%

Groepsid 1.8%

Ontkenning 0.6%

Tabel 9: Verdeling tweets over categorieën

InTabel 10enTabel 11staan per categorie, de woorden met de hoogste

frequen-tie genoteerd. De genoemde frequenfrequen-tie is het deel van de tweets met het betreffende

(20)

analyse data 16

woord, dat tot die categorie behoort. Dus 100% van de tweets waar flapdrol in staat, behoort tot de categorie agressie.

Agressie Emotie Man .v. spreken Geen

woord freq woord freq woord freq woord freq

flapdrol 100% gadverdamme 100% schijt 77% vuil 64%

hufter 96% verdorie 95% reet 72% drol 45%

sukkel 95% godverdomme 89% shit 70% slet 34% smeerlap 94% verdomme 85% pleuritis 66% hel 30%

schoft 93% jezus 77% muil 59% god 26%

Tabel 10: Top 5 woorden per categorie, deel 1

Nadruk Andermans Groepsid Ontkenning

woord freq woord freq woord freq woord freq

verrek 56% verdomme 13% wijf 20% slet 9% kanker 38% tokkie 12.5% bitch 19% klootzak 8%

tering 37% hoer 10% mietje 9% loser 5%

tyfus 25% bek 10% slet 6% mongool 4%

pleuritis 8% bitch 8% hoer 4% dwaas 3%

Tabel 11: Top 5 woorden per categorie, deel 2

Om een indruk te krijgen van de kans dat een bepaald woord voorkomt in com-binatie met een bepaalde categorie wordt gekeken naar pointwise mutual information (PMI). Hiervoor wordt de frequentie van de categorieën vertaald naar de kans dat een tweet tot die categorie behoort. In Tabel 9 zie je dat 36.8% van de tweets in de categorie agressie valt, dit is 368/1000. Vervolgens wordt geteld hoe vaak een bepaalde term voorkomt in het totaal aantal tweets. Van de 4500 tweets bevatten 81 het woord debiel, dat is ongeveer 18/1000, zie tabelTabel 8.

De verwachte kans dat een tweet tot de categorie agressie behoort en het woord debiel bevat is dan 368/1000 * 18/1000 = 0.006624. Dit zou de kans zijn indien de term en de categorie onafhankelijk zijn van elkaar.

Als we vervolgens naar de dataset kijken, zien we dat 54 tweets waarin het woord debiel voorkomt, tot de categorie agressie behoren. Dit is dus 54 / 4500 = 0.012. Om het PMI te berekenen nemen we de log van de kans dat het woord voor-komt in combinatie met de categorie (p(x,y)), gedeeld door de kans op de categorie (p(x)) maal de kans op het woord (p(y)).

PMI (x;y) = logp(x)p(y)p(xy) =log0.0066240.012 = 0.258

De categorie en de term zijn onafhankelijk van elkaar als de PMI-waarde 0 is. Is de waarde positief, dan komt de combinatie van de term en de categorie vaker voor dan verwacht. Een negatieve waarde betekent dat de combinatie minder vaak voorkomt dan zou worden verwacht. Een streepje betekent dat die combinatie niet is aangetroffen in de dataset. Hierbij moet worden opgemerkt dat de dataset alleen bestaat uit tweets die een scheldwoord bevatten en dit van invloed is op de PMI waardes. In Tabel 12staat de top 10 combinaties van woord en categorie met de hoogste PMI waarde. Deze combinaties komen dus vaker voor dan verwacht.

InAppendix Cstaat een totaal overzicht van de PMI scores per term per

(21)

analyse data 17

Woord Categorie PMI

Slet Ontkenning 1.18 Klootzak Ontkenning 1.11 Verrek Nadruk 1.06 Wijf Groepsidentiteit 1.05 Bitch Groepsidentiteit 1.03 Loser Ontkenning 0.92 Vuil Geen 0.90 Kanker Nadruk 0.90 Tering Nadruk 0.89 Verdomme Andermans 0.81

(22)

5

M E T H O D E

In dit hoofdstuk wordt de gehanteerde methode beschreven en toegelicht. Aller-eerst wordt in Paragraaf 5.1 uitgelegd welke features er worden gebruikt en op welke manier deze aan het model worden toegevoegd. Vervolgens worden in

Para-graaf 5.2de verschillende classificatiemethodes beschreven. InParagraaf 5.3worden

de evaluatiemethodes van de verschillende classificatiemodellen uitgelegd en ook toegelicht.

5.1

features

5.1.1 Intentie distributie

De verschillende grove woorden hebben allemaal hun favoriete categorie. Dit is de functie waarin ze het meest gebruikt worden. Het is aannemelijk dat bijvoorbeeld ’klootzak’ veelal gebruikt wordt als een aanval op een persoon en dus in de cate-gorie ’uiting van agressie’ valt. Deze informatie is bruikbaar voor de classificator omdat het een indicatie geeft van de kans dat het woord in een bepaalde categorie thuishoort. Het werkt ook andersom, als een woord nooit met een bepaalde functie gebruikt wordt, is de kans zeer klein dat het woord nu wel in die categorie geplaatst moet worden.

Binnen de trainingsdata wordt gekeken hoe vaak een bepaalde term bij een bepaalde categorie hoort. Dit aantal wordt gedeeld door het totaal aantal voorko-mens van die term binnen alle categorieën. Dit resulteert in acht features, voor elke categorie één, die de kans dat het woord in de betreffende categorie hoort, vertegenwoordigt.

5.1.2 Pointwise mutual information

Zoals beschreven inHoofdstuk 4, zegt de pointwise mutual information iets over de verwachte kans dat een categorie en een term samen voorkomen, vergeleken met hoe die verhouding daadwerkelijk is. Hoe groter de positieve PMI waarde, hoe gro-ter de kans dat ze samen voorkomen, bij een negatieve waarde komt de combinatie juist minder vaak voor dan verwacht. Uit tabelTabel 35blijkt dat deze waardes vaak niet rond de 0.0 liggen en daardoor dus een bepaalde afhankelijkheid illustreren.

Voor een aantal combinaties is er geen score te bereken, maar moet er toch een bepaalde waarde in de lijst met vectoren komen. Er is voor gekozen om deze waarde op 0.0 te zetten.

Net als bij de intentie distributie (5.1.1) bestaat de PMI uit 8 features, die ieder de kans op de combinatie van het woord in de tweet met een categorie weergeven. Omdat deze featuregroepen vergelijkbaar zijn, wordt altijd één van de twee soorten features gebruikt in het model.

5.1.3 Inhoud tweet

Om de tweet als context voor het scheldwoord te gebruiken, worden de tokens om-gezet door middel van word embeddings. Ieder token wordt vertaald naar zijn 100 of 400 dimensionale embedding en per dimensie wordt de gemiddelde waarde

(23)

5.1 features 19

rekend over alle woorden. Dit resulteert in een gemiddelde 100 of 400 dimensionale embedding die als features naar de classificator gaan.

De embeddings die zijn gebruikt, zijn van Van der Goot en Van Noord (2017), zij hebben hier de 400 dimensionale embeddings gebruikt. De 100 dimensionale embeddings zijn op dezelfde manier gecreëerd, behalve dat voor de parameters voor word2vec de standaard waardes zijn gebruikt, uitgezonderd het gebruik van skip-gram. Beide varianten zullen worden getest om te kijken of het gebruik van 400dimensies van toegevoegde waarde is.

5.1.4 Sentiment tweet

Het sentiment van een tweet kan wat zeggen over de functie van het scheldwoord. Staan er positieve woorden in de tweet, dan is het waarschijnlijk geen uiting van agressie. Want het uitschelden van iemand associeer je toch vooral met negatieve woorden. Staan er dus voornamelijk negatieve woorden in een tweet, dan zal het scheldwoord waarschijnlijk ook op een negatieve manier gebruikt zijn.

Het sentiment in een tweet wordt gemeten door het aantal positieve en negatieve woorden in de tweet te tellen. Dit wordt gedaan aan de hand van de woordenlijst die is samengesteld door De Smedt en Daelemans (2012). De lijst bestaat uit paar duizend (3304) unieke woorden, waarvan er 1318 positief en 1513 negatief zijn. Een deel van de woorden (461) komt meerdere keren voor, slechts 62 van deze woorden heeft zowel een positieve als een negatieve betekenis. Omdat dit zo’n klein aantal is, is hier telkens het sentiment van het eerste voorkomen gebruikt. Zowel het aantal positieve woorden gedeeld door het totaal aantal woorden, als het aantal negatieve woorden gedeeld door het totaal aantal woorden, worden als feature gebruikt. 5.1.5 Woordsoort context

Elk woord in een zin behoort tot een woordsoort. Als iets tering mooi is, bijvoor-beeld in de zin: ’Die fiets is tering mooi.’, dan benadrukt tering hoe mooi de fiets is. De functie is dus benadrukken. Mooi zegt in de voorbeeldzin iets over het zelf standing naamwoord fiets, en is dus een bijvoeglijk naamwoord. Tering zegt iets over mooi, en omdat mooi geen zelfstandig naamwoord is, is tering een bijwoord. Als tering als bijwoord wordt getagd, kan dit dus een indicatie zijn voor de functie ’nadruk’. Maar ook als tering zelf niet als bijwoord wordt getagd, maar mooi wel als bijvoeglijk naamwoord en is als werkwoord, kan het een aanwijzing zijn dat het woord dat er tussen staat, een bijwoord is.

In de zin: "Wat een tering fiets.", zegt tering iets over de fiets, en is het dus een bijvoeglijk naamwoord. De functie van tering is hier dus ook anders. Degene die de uiting doet, zegt wat hij van de fiets vindt. Dit is dus een uiting van emotie.

De woordsoort waartoe een bepaald woord behoort, kan dus iets zeggen over de functie van het grove woord. Maar ook de direct omgeving van het grove woord kan een bijdrage leveren. Daarom worden de POS-tag van het grove woord zelf en de POS-tags van het woord voor, en het woord na het grove woord, als features gebruikt.

Omdat de POS-tags niet als tekst de classificator in kunnen, moeten de verschil-lende categorieën worden omgezet naar cijfers. Dit kan zowel met label encoding als met one hot encoding. Bij label encoding worden alle categorieën omgezet naar een corresponderend getal. Een werkwoord is dan bijvoorbeeld 1, een bijwoord 2, enz. One hot encoding bestaat uit een rij van enen en nullen, met dezelfde lengte als het aantal POS-tag categorieën. Als het woord tot een bepaalde categorie behoort, komt op die plek in de rij een 1 te staan, op alle andere plekken komt een 0 te staan. De plek in de rij correspondeert dus met een bepaalde POS-tag.

Voor het encoderen van de POS-tags wordt voor one hot encoding gekozen. Doordat bij label encoding er allerlei verschillende nummers in dezelfde kolom

(24)

5.2 classificatie 20

staan, denkt het model dat er een bepaalde vorm van volgorde in zit, 0 < 1 < 2. Omdat dit niet het geval is, de POS-tags categorieën zijn niet aan elkaar gerelateerd, is in dit geval one hot encoding de beste keuze.

5.1.6 Brown clusters

Brown clusters zijn clusters die worden verkregen door het hiërarchisch clusteren van tokens, gebaseerd op de context waar ze in voorkomen. Als twee verschillende tokens vaak in dezelfde context worden gebruikt, zijn ze waarschijnlijk vergelijkbaar en komen ze in hetzelfde cluster terecht.

De Brown clusters die voor dit onderzoek gebruikt zijn, zijn gecreëerd door Bouma (2015) op basis van 594 miljoen Nederlandse tweets. De tweets zijn verza-meld tussen 2011 en 2014, volgens de methode die wordt beschreven in het artikel van Sang en Van den Bosch (2013). De tweets zijn getokenized met de Alpino to-kenizer en er zijn geen aanpassingen gedaan in hoofd- en kleine letters. De namen van de gebruikers zijn vervangen door plaatshouders, evenals de URLs. Alleen de unieke woorden die minstens 50 keer voorkwamen in het corpus zijn gebruikt in de clusters. Dit waren 769.629 unieke exemplaren, die gezamenlijk 5.09 miljard woorden opleverden.

De Brown clusters zijn gebruikt om het woord voorafgaand op en het woord volgend op het scheldwoord, om te zetten naar een cluster. Deze clusters zijn ver-volgens door middel van one hot encoding vertaald naar twee feature groepen, één groep voor het woord voor en één groep voor het woord na het scheldwoord.

5.2

classificatie

Er zullen verschillende classificators gebouwd worden om te zien wat het beste werkt. Om te beginnen zal, net als in het artikel van Holgate et al. (2018), per categorie een one versus all binaire logistische regressie classificator worden gebruikt. Hiervoor wordt de Python module scikit-learn gebruikt. Hierbij wordt steeds één categorie omgezet naar ’1’, de overige categorieën krijgen de waarde ’0’.

De invloed van de verschillende featuregroepen wordt gemeten door te begin-nen met alle features, en vervolgens elke feature individueel weg te laten.

Bij het classificeren met 8 verschillende classificators, kan het zich voordoen dat een tweet tot meerdere categorieën wordt toebedeeld, of tot geen enkele categorie behoort. Aangezien je uiteindelijk op basis van de inhoud van de tweet een van de acht categorieën wil toewijzen aan het scheldwoord, worden de probabilities van de logistische regressie modellen gebruikt. De categorie waarvoor de waarschijn-lijkheid het hoogst is, wordt dan de definitieve categorie waaraan de tweet wordt toegewezen.

Daarnaast wordt er met behulp van een support vector machine geprobeerd de tweets in één keer in een van de acht verschillende categorieën in te delen. Hierbij worden eerst een LinearSVC en een SVC met scale als gamma met elkaar vergeleken. Vervolgens wordt op dezelfde manier als bij het binair classificeren, het individueel weglaten van de featuers, het beste model gezocht.

Het binair classificeren om per categorie het beste model te bepalen en het ver-gelijken van een LinearSVC en een standaard SVC wordt gedaan op een ontwikke-lingsdataset. Deze set bestaat uit 450 random geselecteerde tweets, dit is 10% van de complete dataset.

Als het beste model is gevonden wordt deze getest op de testdata. Ook deze bestaat uit 10% van de complete dataset en is random geselecteerd.

(25)

5.3 evaluatie 21

5.3

evaluatie

Het beste model wordt bij de binaire classificatie bepaald aan de hand van de f-score. De f-score wordt berekend met behulp van de precision en de recall.

• Precision: hoeveel van de tweets die zijn toegewezen aan categorie X, zijn terecht toegewezen aan categorie X

• Recall: hoeveel van de tweets die zouden moeten worden toegewezen aan categorie X, zijn daadwerkelijk toegewezen aan categorie X

• F-score:

F = 2∗ precision∗ recall precision + recall

Er wordt voor deze evaluatiemethode gekozen omdat er een aantal categorieën zijn die ten opzichte van de overige categorieën heel klein zijn. De accuracy is dan hoog als alle tweets als overig worden geclassificeerd, terwijl je juist de waar-schijnlijkheid van de te classificeren categorie nodig hebt om deze om te zetten naar de uiteindelijke categorie. In deze situatie is de categorie dus belangrijker dan de score voor het totaal. Daarnaast kan de f-score worden vergeleken met de scores die Holgate et al. (2018) hebben gepresenteerd.

Zowel bij de SVM als wanneer de binaire waarschijnlijkheid wordt vertaald naar een indeling in 8 categorieën wordt er gekeken naar de accuracy, is iets als de juiste categorie geclassificeerd of niet. Doordat in Holgate et al. (2018) alleen een F-score wordt berekend die het gemiddelde is van de F-scores voor de verschillende binaire modellen, kunnen we het classificeren van alle categorieën tegelijk niet met hen vergelijken.

(26)

6

R E S U L T A T E N

In dit hoofdstuk worden de verschillende resultaten gepresenteerd. Allereerst wordt

inParagraaf 6.1per categorie binaire classificatie toegepast. De f-scores voor de 6

categorieën die ook worden gebruikt in het artikel van Holgate et al. (2018) wor-den vervolgens vergeleken met de scores die in dat artikel zijn gepresenteerd. In

Paragraaf 6.2worden de binaire classificaties gebruikt om per tweet uiteindelijk 1

definitieve categorie toe te wijzen. En in Paragraaf 6.3 wordt geprobeerd om de tweets in één keer in de acht verschillende categorieën in te delen.

6.1

binaire classificatie

In Tabel 13tot en met Tabel 20 staan de resultaten van de one versus all binaire

logistische regressie classificators vermeld. Deze scores zijn gebaseerd op een ont-wikkelingsdataset. Er wordt hierbij onderscheid gemaakt tussen modellen met de feature intentie distributie (ID) en modellen die gebruik maken van de pointwise mutual information (PMI) feature. Daarnaast wordt er geëxperimenteerd met 100-en 400-dim100-ensionale word embeddings.

Voor vier van de categorieën levert een model dat de ID feature bevat de hoogste accuracy op. Voor twee van de categorieën levert een model dat gebruik maakt van de PMI feature de hoogste accuracy op. Voor de twee overige categorieën is er zowel een PMI model als een ID model met een even hoge hoogste accuracy.

Als we kijken naar de f-score dan is die het hoogst voor 3 modellen met de ID feature en voor 2 modellen met de PMI feature. Voor de overige drie categorieën is er zowel een ID model als een PMI model met een even hoge hoogste f-score.

Aangaande het gebruik van 100 of 400 dimensionale embeddings, levert voor 3 categorieën het gebruik van de 400 dimensionale embeddings een hogere accuracy op. Voor 4 categorieën evenaart het gebruik van de 400 dimensionale embeddings de scores van de 100 dimensionale embeddings. De overgebleven categorie heeft lagere accuracy scores bij het gebruik van 400 dimensionale embeddings.

Vergelijken we het gebruik van de embeddings op basis van de f-score, dan zien we dat voor 4 categorieën het gebruik van de 400 dimensionale embeddings een beter resultaat oplevert. De overige categorieën hebben geen baat bij de 400 dimensionale embeddings maar worden er ook niet minder van.

De tabellen staan op volgorde van grootte van het aandeel van een categorie in de trainingsdata. Agressie is hier de grootste categorie, gevolgd door emotie, ma-nier van spreken, enzovoorts.

InTabel 18,Tabel 19enTabel 20staat een sterretje achter sommige features. Dit

betekent dat als deze feature niet wordt meegenomen, de classificator geen enkele keer de te voorspellen categorie toewijst. Dit is dan zowel het geval voor tweets die het label zouden moeten krijgen, als voor tweets die onjuist in de te voorspellen categorie worden ingedeeld. Voor de categorie ontkenning levert de combinatie van alle features met intentie distributie ook geen een keer het label ontkenning op. Voor deze categorieën worden hierdoor de precision en f-score op 0.0 gezet. Doordat het macro gemiddelde wordt genomen, zullen deze scores nooit hoger zijn dan 0.5.

(27)

6.1 binaire classificatie 23

Features Precision Recall F-score Accuracy

Alle features (ID + 100) 0.826 0.800 0.809 0.827

- Embeddings 0.824 0.802 0.810 0.827

- POS-tags 0.829 0.807 0.815 0.831

- Intentie distributie 0.804 0.773 0.783 0.804

- Sentiment 0.830 0.806 0.815 0.831

- Brown clusters 0.804 0.784 0.791 0.809

Alle features (PMI + 100) 0.819 0.803 0.809 0.824

- Embeddings 0.822 0.780 0.808 0.824

- POS-tags 0.835 0.816 0.823 0.838

- PMI 0.804 0.773 0.783 0.804

- Sentiment 0.816 0.801 0.807 0.822

- Brown clusters 0.806 0.793 0.798 0.813

Alle features (ID + 400) 0.845 0.820 0.829 0.844

- Embeddings 0.824 0.802 0.810 0.827

- POS-tags 0.840 0.816 0.824 0.840

- Intentie distributie 0.813 0.784 0.793 0.813

- Sentiment 0.845 0.820 0.829 0.844

- Brown clusters 0.811 0.791 0.798 0.816

Alle features (PMI + 400) 0.841 0.820 0.828 0.842

- Embeddings 0.822 0.780 0.808 0.824

- POS-tags 0.840 0.821 0.828 0.842

- PMI 0.813 0.784 0.793 0.813

- Sentiment 0.841 0.820 0.828 0.842

- Brown clusters 0.821 0.806 0.812 0.827

Tabel 13: Binaire classificatie agressie

Features Precision Recall F-score Accuracy

Alle features (ID + 100) 0.806 0.780 0.792 0.878

- Embeddings 0.816 0.768 0.788 0.880

- POS-tags 0.798 0.773 0.784 0.873

- Intentie distributie 0.735 0.715 0.724 0.838

- Sentiment 0.806 0.780 0.792 0.878

- Brown clusters 0.792 0.742 0.763 0.867

Alle features (PMI + 100) 0.797 0.763 0.777 0.871

- Embeddings 0.778 0.718 0.741 0.858

- POS-tags 0.799 0.768 0.782 0.873

- PMI 0.735 0.715 0.724 0.838

- Sentiment 0.796 0.763 0.777 0.871

- Brown clusters 0.809 0.761 0.781 0.876

Alle features (ID + 400) 0.797 0.778 0.786 0.873

- Embeddings 0.816 0.768 0.788 0.880

- POS-tags 0.807 0.776 0.790 0.878

- Intentie distributie 0.765 0.753 0.759 0.856

- Sentiment 0.801 0.779 0.789 0.876

- Brown clusters 0.786 0.745 0.762 0.864

Alle features (PMI + 400) 0.806 0.780 0.792 0.878

- Embeddings 0.778 0.718 0.741 0.858

- POS-tags 0.790 0.766 0.777 0.869

- PMI 0.765 0.753 0.759 0.856

- Sentiment 0.803 0.774 0.787 0.876

- Brown clusters 0.810 0.756 0.778 0.876

(28)

6.1 binaire classificatie 24

Features Precision Recall F-score Accuracy

Alle features (ID + 100) 0.808 0.781 0.792 0.838

- Embeddings 0.806 0.774 0.787 0.836

- POS-tags 0.806 0.774 0.787 0.836

- Intentie distributie 0.763 0.708 0.725 0.798

- Sentiment 0.808 0.781 0.792 0.838

- Brown clusters 0.783 0.733 0.750 0.813

Alle features (PMI + 100) 0.795 0.772 0.782 0.829

- Embeddings 0.792 0.768 0.778 0.827

- POS-tags 0.799 0.771 0.783 0.831

- PMI 0.763 0.708 0.725 0.798

- Sentiment 0.797 0.776 0.785 0.831

- Brown clusters 0.773 0.724 0.741 0.807

Alle features (ID + 400) 0.805 0.785 0.794 0.838

- Embeddings 0.806 0.774 0.787 0.836

- POS-tags 0.804 0.779 0.790 0.836

- Intentie distributie 0.744 0.709 0.722 0.789

- Sentiment 0.805 0.785 0.794 0.838

- Brown clusters 0.788 0.749 0.764 0.820

Alle features (PMI + 400) 0.785 0.768 0.775 0.822

- Embeddings 0.792 0.768 0.778 0.827

- POS-tags 0.791 0.770 0.780 0.827

- PMI 0.744 0.709 0.722 0.789

- Sentiment 0.784 0.770 0.776 0.822

- Brown clusters 0.776 0.736 0.751 0.811

Tabel 15: Binaire classificatie manier van spreken

Features Precision Recall F-score Accuracy

Alle features (ID + 100) 0.687 0.662 0.673 0.929

- Embeddings 0.620 0.575 0.591 0.922

- POS-tags 0.679 0.661 0.669 0.927

- Intentie distributie 0.703 0.648 0.670 0.933

- Sentiment 0.687 0.662 0.673 0.929

- Brown clusters 0.778 0.654 0.695 0.944

Alle features (PMI + 100) 0.669 0.675 0.672 0.922

- Embeddings 0.624 0.591 0.604 0.920

- POS-tags 0.688 0.694 0.691 0.927

- PMI 0.703 0.648 0.670 0.933

- Sentiment 0.669 0.675 0.672 0.922

- Brown clusters 0.792 0.671 0.713 0.947

Alle features (ID + 400) 0.665 0.642 0.653 0.924

- Embeddings 0.620 0.575 0.591 0.922

- POS-tags 0.700 0.680 0.689 0.931

- Intentie distributie 0.660 0.611 0.630 0.927

- Sentiment 0.665 0.643 0.653 0.924

- Brown clusters 0.808 0.724 0.758 0.951

Alle features (PMI + 400) 0.695 0.695 0.695 0.929

- Embeddings 0.624 0.591 0.604 0.920

- POS-tags 0.695 0.695 0.695 0.929

- PMI 0.660 0.611 0.630 0.927

- Sentiment 0.695 0.695 0.695 0.929

- Brown clusters 0.797 0.706 0.741 0.949

(29)

6.1 binaire classificatie 25

Features Precision Recall F-score Accuracy

Alle features (ID + 100) 0.920 0.856 0.885 0.978

- Embeddings 0.920 0.856 0.885 0.978

- POS-tags 0.905 0.796 0.841 0.971

- Intentie distributie 0.920 0.758 0.817 0.969

- Sentiment 0.920 0.856 0.885 0.978

- Brown clusters 0.986 0.760 0.835 0.973

Alle features (PMI + 100) 0.925 0.876 0.899 0.980

- Embeddings 0.925 0.876 0.899 0.980

- POS-tags 0.916 0.836 0.871 0.976

- PMI 0.920 0.758 0.817 0.969

- Sentiment 0.925 0.876 0.899 0.980

- Brown clusters 0.985 0.740 0.817 0.971

Alle features (ID + 400) 0.925 0.876 0.899 0.980

- Embeddings 0.920 0.856 0.885 0.978

- POS-tags 0.905 0.796 0.841 0.971

- Intentie distributie 0.899 0.776 0.825 0.969

- Sentiment 0.925 0.876 0.899 0.980

- Brown clusters 0.984 0.720 0.797 0.969

Alle features (PMI + 400) 0.925 0.876 0.899 0.980

- Embeddings 0.925 0.876 0.899 0.980

- POS-tags 0.916 0.836 0.871 0.976

- PMI 0.899 0.776 0.825 0.969

- Sentiment 0.925 0.876 0.899 0.980

- Brown clusters 0.947 0.739 0.808 0.969

Tabel 17: Binaire classificatie nadruk

Features Precision Recall F-score Accuracy

Alle features (ID + 100) 0.994 0.688 0.770 0.989

- Embeddings 0.992 0.563 0.607 0.984

- POS-tags 0.994 0.688 0.770 0.989

- Intentie distributie 0.994 0.688 0.770 0.989

- Sentiment 0.994 0.688 0.770 0.989

- Brown clusters 0.491 0.499 0.495 0.980

Alle features (PMI + 100) 0.994 0.688 0.770 0.989

- Embeddings 0.827 0.623 0.678 0.984

- POS-tags 0.994 0.688 0.770 0.989

- PMI 0.994 0.688 0.770 0.989

- Sentiment 0.994 0.688 0.770 0.989

- Brown clusters* 0.491 0.500 0.496 0.982

Alle features (ID + 400) 0.869 0.686 0.747 0.987

- Embeddings 0.992 0.563 0.607 0.984

- POS-tags 0.869 0.686 0.747 0.987

- Intentie distributie 0.869 0.686 0.747 0.987

- Sentiment 0.869 0.686 0.747 0.987

- Brown clusters 0.491 0.499 0.495 0.980

Alle features (PMI + 400) 0.996 0.750 0.831 0.991

- Embeddings 0.827 0.623 0.678 0.984

- POS-tags 0.996 0.750 0.831 0.991

- PMI 0.869 0.686 0.747 0.987

- Sentiment 0.996 0.750 0.831 0.991

- Brown clusters* 0.491 0.500 0.496 0.982

(30)

6.1 binaire classificatie 26

Features Precision Recall F-score Accuracy

Alle features (ID + 100) 0.497 0.498 0.497 0.989

- Embeddings 0.497 0.498 0.497 0.989

- POS-tags 0.497 0.499 0.498 0.991

- Intentie distributie 0.497 0.499 0.498 0.991

- Sentiment 0.497 0.498 0.497 0.989

- Brown clusters* 0.497 0.500 0.498 0.993

Alle features (PMI + 100) 0.497 0.498 0.497 0.989

- Embeddings 0.497 0.498 0.497 0.989

- POS-tags 0.497 0.498 0.497 0.989

- PMI 0.497 0.499 0.498 0.991

- Sentiment 0.497 0.498 0.497 0.989

- Brown clusters* 0.497 0.500 0.498 0.993

Alle features (ID + 400) 0.497 0.498 0.497 0.989

- Embeddings 0.497 0.498 0.497 0.989

- POS-tags 0.497 0.499 0.498 0.991

- Intentie distributie 0.497 0.498 0.497 0.989

- Sentiment 0.497 0.498 0.497 0.989

- Brown clusters 0.497 0.499 0.498 0.991

Alle features (PMI + 400) 0.497 0.498 0.497 0.989

- Embeddings 0.497 0.498 0.497 0.989

- POS-tags 0.497 0.498 0.497 0.989

- PMI 0.497 0.498 0.497 0.989

- Sentiment 0.497 0.498 0.497 0.989

- Brown clusters 0.497 0.499 0.498 0.991

Tabel 19: Binaire classificatie groepsidentiteit

Features Precision Recall F-score Accuracy

Alle features (ID + 100)* 0.498 0.500 0.499 0.996

- Embeddings* 0.498 0.500 0.499 0.996

- POS-tags* 0.498 0.500 0.499 0.996

- Intentie distributie* 0.498 0.500 0.499 0.996

- Sentiment* 0.498 0.500 0.499 0.996

- Brown clusters* 0.498 0.500 0.499 0.996

Alle features (PMI + 100) 0.999 0.750 0.833 0.998

- Embeddings 0.999 0.750 0.833 0.998

- POS-tags 0.999 0.750 0.833 0.998

- PMI* 0.498 0.500 0.499 0.996

- Sentiment 0.999 0.750 0.833 0.998

- Brown clusters* 0.498 0.500 0.499 0.996

. Alle features (ID + 400)* 0.498 0.500 0.499 0.996

- Embeddings* 0.498 0.500 0.499 0.996

- POS-tags* 0.498 0.500 0.499 0.996

- Intentie distributie* 0.498 0.500 0.499 0.996

- Sentiment* 0.498 0.500 0.499 0.996

- Brown clusters 0.498 0.500 0.499 0.996

Alle features (PMI + 400) 0.999 0.750 0.833 0.998

- Embeddings 0.999 0.750 0.833 0.998

- POS-tags 0.999 0.750 0.833 0.998

- PMI* 0.498 0.500 0.499 0.996

- Sentiment 0.999 0.750 0.833 0.998

- Brown clusters* 0.498 0.500 0.499 0.996

(31)

6.2 binaire waarschijnlijkheid vertaald naar categorie 27

De resultaten voor agressie, emotie, nadruk, groepsidentiteit, manier van spre-ken en geen scheldwoord, kunnen we vergelijspre-ken met de resultaten van Holgate et al. (2018). In hun artikel hebben ze enkel de f-scores genoteerd. Deze scores worden

inTabel 21gepresenteerd samen met de hoogste f-scores voor de categorieën in het

Nederlands. Hierbij moet worden aangetekend dat de f-scores voor het Nederlands zijn gebaseerd op de ontwikkelingsdata en vervolgens de score van het beste model per categorie in de tabel wordt gepresenteerd.

Voor agressie, emotie, manier van spreken en nadruk, zijn de scores voor het Nederlands hoger, voor geen scheldwoord en groepsidentiteit zijn de scores van Holgate et al. (2018) het hoogst. Deze twee laatstgenoemde categorieën zijn qua verhouding het kleinst in de Engelse dataset, respectievelijk 8.2% en 4.7%. Op basis van de cijfers blijkt voor beide talen groepsidentiteit de moeilijkst te classificeren categorie te zijn. Dit kan te maken hebben met het feit dat het een kleine categorie is, voor Engels de kleinste en voor Nederlands is alleen ontkenning kleiner. Dat ontkenning toch beter te classificeren valt kan worden veroorzaakt doordat hier woorden als ’geen’ en ’niet’ een duidelijke indicator zijn, terwijl bij groepsidentiteit de hele tweet goed geïnterpreteerd moet worden.

Categorie F-score F-score (Holgate et al. 2018)

Agressie 0.829 0.656 Emotie 0.792 0.624 Geen 0.758 0.814 Groepsid 0.498 0.565 Man. v. spreken 0.794 0.622 Nadruk 0.899 0.764

Tabel 21: F-scores ontwikkelingsdata vergeleken met Holgate et al. (2018)

6.2

binaire waarschijnlijkheid vertaald naar

ca-tegorie

Per categorie worden de modellen met de beste scores voor binaire classificaties gebruikt om uiteindelijk één categorie aan een tweet toe te wijzen. Hiervoor worden de probabilities gebruikt die de classificator berekend. Voor een tweet ziet dat er als volgt uit:

[-1.94737484e-01 -1.73189199e+00]

waarbij het eerste getal de kans op ’0’ is, dus de tweet hoort bij ’de rest’, en het tweede getal is de kans dat de tweet bij de te voorspellen categorie hoort. Als je het eerste getal van het tweede afhaalt, en de score positief is, is de tweet ingedeeld in de te voorspellen categorie. Hoe groter dit getal is, hoe zekerder de classificator is. Deze scores kunnen dus worden gebruikt om een uiteindelijke categorie te bepalen. De categorie waarbij deze positieve score het hoogst is (of het minst laag), is de categorie die bij de tweet hoort.

Het beste model is gebaseerd op ontwikkelingsdata en de uiteindelijke catego-rie die nu wordt bepaald, wordt gebaseerd op de testdata. Welk model het beste is, wordt bepaald aan de hand van de f-score. De invloed van de te voorspellen categorie is groter op de f-score dan op de accuracy omdat de categorie die voor-speld moet worden (vele malen) kleiner is dan de andere categorieën samen die ’de rest’ vormen. Zijn er meerdere modellen met dezelfde score, dan wordt het model met alle features gebruikt. Is de f-score hetzelfde voor een model met 100 dimen-sionale embeddings en een met 400 dimendimen-sionale embeddings, dan worden de 400 dimensionale embeddings gebruikt. Modellen waarbij de te voorspellen categorie niet wordt toegewezen, worden uitgesloten.

(32)

6.2 binaire waarschijnlijkheid vertaald naar categorie 28

Op basis van bovenstaande criteria wordt hier per categorie het beste model beschreven. Voor agressie en manier van spreken is het beste model het model met intentie distributie (ID) als feature in combinatie met de 400 dimensionale wor-dembeddings. Voor geen scheldwoord is het model met intentie distributie zonder de brown clusters in combinatie met de 400 dimensionale wordembeddings het beste model. Voor drie categorieën is het model met pointwise mutual information (PMI) in combinatie met de 400 wordembeddinsg het best: emotie, andermans en ontkenning. Voor groepsidentiteit zijn er 3 modellen met 400 dimensionale wor-dembeddings die even hoog scoren. Omdat twee modellen de features ID bevatten en 2 modellen de feature brown clusters niet gebruiken, wordt voor deze categorie voor het model met ID, zonder brown clusters gekozen. Het totaal aan modellen met ID als feature, komt daarmee op 4. Daarom wordt voor de laatste categorie, na-druk ook gekozen voor het model met intentie distributie en de 400 dimensionale wordembeddings.

Als we kijken naar de scores van de binaire classificatie per categorie voor de test data (Tabel 22) en die voor de ontwikkelingsdata (Tabel 13tot en metTabel 20), zijn de f-scores voor agressie maar vooral die van groepsidentiteit (van 0.498 naar 0.770) omhoog gegaan ten opzichte van de ontwikkelingsdata. Voor de andere zes categorieën is de f-score op de testdata lager dan de f-score voor de ontwikkelings-data. Het grootste verschil is te zien bij de categorie geen, van 0.758 naar 0.636. Deze grote verschillen illustreren de moeilijkheid van de taak en de inconsistentie in de dataset.

Categorie Precision Recall F-score Accuracy

Agressie 0.826 0.834 0.830 0.844

Emotie 0.827 0.754 0.779 0.847

Manier van spreken 0.731 0.726 0.729 0.820

Geen 0.798 0.598 0.636 0.922

Nadruk 0.914 0.787 0.838 0.978

Andermans 0.739 0.581 0.618 0.973

Groepsid 0.871 0.713 0.770 0.989

Ontkenning* 0.496 0.500 0.498 0.991

Tabel 22: Scores voor beste modellen op testset

De accuracy voor het indelen van de tweets in één van de acht categorieën, staat

inTabel 23. De baseline is gebaseerd op de categorie die het vaakst voorkomt in de

trainingsdata. Dit is de categorie agressie met 36.8% (zieTabel 9). Dit is dan ook de categorie die als eerste wordt toegewezen. Alleen als het verschil tussen de twee waarschijnlijkheden voor een andere categorie groter is, wordt het label verandert naar de betreffende categorie.

Model Accuracy

Baseline 0.344

Bin2label* 0.682

Tabel 23: Scores binair naar uiteindelijke labels

In de confusion matrix in Tabel 24wordt per categorie getoond hoe vaak deze juist is toegewezen en welke andere categorieën zijn toegewezen. Agressie wordt het vaakst geclassificeerd als agressie, maar dit geldt ook voor andermans, groeps-identiteit en ontkenning. Dit kan komen doordat agressie als eerste label wordt aangewezen en dit alleen wordt aangepast als het verschil in waarschijnlijkheid voor een andere categorie groter is. Verder wordt ’geen’ vaker als manier van spre-ken aangeduid dan als de categorie geen. De overige categorieën, emotie, manier van spreken en nadruk worden, samen met agressie, het vaakst als zichzelf geclassi-ficeerd. De categorie ontkenning wordt nooit voorspeld als uiteindelijke categorie.

(33)

6.2 binaire waarschijnlijkheid vertaald naar categorie 29 V oorspelde categor ie Agr essie Ander mans Emotie Geen Gr oepsid Man. v. spr eken Nadruk Ontkenning T otaal Werkelijke categorie Agr essie 134 0 5 3 0 13 0 0 155 Ander mans 7 4 0 1 0 0 0 0 12 Emotie 17 0 76 0 0 21 4 0 118 Geen 9 1 6 11 0 12 0 0 39 Gr oepsid 4 0 0 0 3 0 0 0 7 Man. v. spr eken 12 1 10 6 1 66 0 0 96 Nadruk 4 0 1 0 0 1 13 0 19 Ontkenning 3 0 0 0 0 1 0 0 4 T otaal 190 6 98 21 4 114 17 0 450 T abel 24: Confusion matrix: binair v ertaald naar categorie

(34)

6.3 support vector machine 30

6.3

support vector machine

Naast het binair classificeren en het gebruik van de waarschijnlijkheden, willen we ook kijken hoe goed de tweets door middel van één model in de verschillende ca-tegorieën zijn in te delen. Voor de precision, recall en f-score wordt het gewogen gemiddelde gerapporteerd, aangezien sommige klassen aanzienlijk vaker voorko-men dan anderen. Deze scheve verdeling kan worden toegeschreven aan het feit dat scheldwoorden vaker worden gebruikt voor het uiten van agressie en emotie dan bijvoorbeeld om iets te benadrukken.

Allereerst wordt bepaald welke support vector machine wordt gebruikt om op verder te bouwen. Hiervoor zijn een basic LinearSVC en een SVC met gamma = scale getest op de ontwikkelingsdata. De vier verschillende combinaties van in-tentie distributie of pointwise mututal information met 400 dimensionale of 100 dimensionale wordembeddings, samen met de overige features, worden hierbij ge-bruikt, zie hiervoorTabel 25tot en metTabel 28. In alle gevallen is het beste model de LinearSVC, waarbij de hoogste accuracy wordt behaald met pointwise mutual information en de 100 dimensionale wordembeddings. Voor alle modellen geldt dat er een categorie niet voorspeld werd, dit is opnieuw aangeduid met een *.

Model Precision Recall F-score Accuracy

svm.LinearSVC* 0.699 0.693 0.695 0.693

svm.SVC (gamma=’scale’)* 0.608 0.629 0.588 0.629

Tabel 25: SVM: alle features met intentie distributie en 400 dimensionale wordembeddings

Model Precision Recall F-score Accuracy

svm.LinearSVC* 0.690 0.682 0.685 0.682

svm.SVC (gamma=’scale’)* 0.623 0.647 0.611 0.647

Tabel 26:SVM: alle features met pointwise mutual information en 400 dimensionale wor-dembeddings

Model Precision Recall F-score Accuracy

svm.LinearSVC* 0.695 0.682 0.687 0.682

svm.SVC (gamma=’scale’)* 0.590 0.618 0.577 0.618

Tabel 27: SVM: alle features met intentie distributie en 100 dimensionale wordembeddings

Model Precision Recall F-score Accuracy

svm.LinearSVC* 0.701 0.696 0.697 0.696

svm.SVC (gamma=’scale’)* 0.620 0.642 0.607 0.642

Tabel 28:SVM: alle features met pointwise mutual information en 100 dimensionale wor-dembeddings

Het beste model, de LinearSVC met de features pointwise mutual information, 100 dimensionale wordembeddings, POS-tags, sentiment en brown clusters wordt vervolgens verder uitgewerkt. Met uitwerken wordt het tunen van de parameters van de classifier en het weglaten van features bedoeld. Het aanpassen van de C parameter, de penalty voor het verkeerd classificeren van een tweet, heeft als enige een positieve invloed op de accuracy. Zowel een C van 0.9 als een C van 1.1 leveren een accuracy van 0.707 op.

Referenties

GERELATEERDE DOCUMENTEN

The perceptions of teachers at Kylemore High School regarding the teaching of HIV/AIDS education as a component in the subject Life Orientation was placed in a

Tussen 2009 en 2013 is voor een drietal projecten: KCN/TIFN SD001, Nascheiden in aanvulling op bronscheiden en Pilot Drankenkartons 2013, de samenstelling van gescheiden ingezamelde

The objectives of this study are, therefore, to determine the resilience of the South African economy to external shocks, and to determine whether there are early warning

If the curtain is an apt metaphor for the mediation between real- ity and art, and between theory and practice, and if it also implies the subversion of reason, deception and magic,

Poverty, unemployment, education, training, Sicelo, Bophelong, Emfuleni, poverty alleviation, job creation, development, primary education, secondary education, incomplete

Voor een ‘goede’ LSVI mogen volgens de LSVI-tabellen voor de bossen geen invasieve exoten voorkomen, en bedraagt het grondvlakaandeel van sleutelsoorten meer dan

All incident cases of invasive breast cancer diagnosed for 'le first time within the previous 6 months among coloured md black women under the age of 55 years are identified at.. he

• Positie binnen het geheel (concrete uitspraak over de claim): verteld over het ontstaan van Wikipedia, wat de potentie er van is en stelt dat status niet weggelegd is voor