Complete NLP systeem voor automatische emotie detectie in Nederlandse video content
Volledige NLP-pipeline ontwikkeld voor een Content Intelligence Agency, die automatisch emoties analyseert in YouTube-video's. Het systeem ontvangt een video-URL als input en genereert een CSV met tijdstempels, transcripties, vertaalde zinnen en emotielabels gebaseerd op het Ekman-model (geluk, verdriet, woede, verrassing, angst, walging, neutraal). De pipeline bestaat uit vier stappen: audio downloaden (PyTubeFix), spraak-naar-tekst conversie (Whisper Large-v3-Turbo), vertaling Nederlands → Engels (MarianMT), en emotieclassificatie (RobBERT). Voor de emotieclassificatie zijn acht verschillende modellen getest.
Er was weinig Nederlandse emotie-data beschikbaar, waardoor de hele klas gezamenlijk 4.000 zinnen heeft gelabeld voor training. Daarnaast was er een sterke class imbalance: neutrale en positieve emoties kwamen veel voor, terwijl angst, walging en woede zeldzaam waren. Data augmentation via Nederlandse WordNet en SpaCy (synoniemenvervanging) vergrootte de zeldzame emotieklassen 6×. Een belangrijke keuze betrof het model: RobBERT (native Dutch, F1-score 85%) versus BERT op vertaalde data (F1-score 92%), een afweging tussen nauwkeurigheid en systeemcomplexiteit.
Het RobBERT-model behaalde 85% F1-score op Nederlandse emotieclassificatie, aanzienlijk beter dan traditionele modellen (LSTM ~65%, SVM ~58%). Ondanks dat BERT op Engelse vertalingen 92% behaalde, werd gekozen voor directe verwerking in het Nederlands, om nuanceverlies en vertaalfouten te voorkomen. De pipeline is volledig operationeel en verwerkt YouTube-URL's tot een gestructureerd CSV-bestand. Systematische vergelijking van modellen toonde aan dat Transformers 20-30% beter presteren dan traditionele NLP-methoden voor emotieclassificatie.
Een volledig geautomatiseerd systeem dat een YouTube URL verwerkt tot een gestructureerd CSV bestand met tijdstempels, transcripties, vertalingen en emotie labels.
Systematisch 8 verschillende modellen getest en geëvalueerd op onze 4000-zins dataset.
| Model | Type | F1-Score | Status |
|---|---|---|---|
| BERT (Engels) | Transformer op vertaalde data | 92% | Hoogste Score |
| RobBERT (NL) | Nederlandse Transformer | 85% | Gebruikt |
| LSTM | Recurrent Netwerk | ~65% | Baseline |
| RNN | Basic Recurrent | ~62% | Baseline |
| SVM | Support Vector Machine | ~58% | Baseline |
| Logistic Regression | Lineair | ~55% | Baseline |
| Naive Bayes | Probabilistisch | ~53% | Baseline |
Hoewel Engelse BERT het hoogst scoorde (92%), kozen we voor RobBERT (85%) omdat:
Hieronder enkele concrete voorbeelden van hoe de pipeline werkt op een 40-minuten test video:
RobBERT behaalde goede resultaten voor alle emotie categorieën: