Sentiment analyse is een van de veel gebruikte NLP voorbeelden. Ik zie dat men hierbij vaak gebruik maakt van filmrecenties. Dus ook maar eens kijken of ik Bert dat kan laten doen. Ik wil uiteindelijk testen of dan ook het sentiment in onze 'end user satisfaction survey' daarmee gemeten kan worden.
De data haal ik hier vandaan:
http://ai.stanford.edu/~amaas/data/sentiment/
Na het uitpakken blijkt de structuur van de data ietsje ingewikkeld. Er is een train en test folder met in de train een 'pos' een 'neg' en een 'unsup' folder. Daarbinnen zitten de recenties in afzonderlijke files. Gelukkig zit er een goede readme bij:
In the labeled train/test sets, a negative review has a score <= 4 out of 10,
and a positive review has a score >= 7 out of 10. Thus reviews with
more neutral ratings are not included in the train/test sets. In the
unsupervised set, reviews of any rating are included and there are an
even number of reviews > 5 and <= 5.
Om een of andere reden werkt mijn eerste poging om de data 'hanteerbaar' te maken niet. Onduidelijke foutmelding. Gelukkig vindt ik hier een goede code om e.e.a. naar een mooie csv om te zetten.
Uiteraard lees ik de readme niet goed genoeg en ga ik er eerst vanuit dat de 'unsup' folder de 'neutralere' reviews bevat. (5 tot 6) Die wil ik er graag bij hebben om deze ook te kunnen herkennen.
Dat levert een uiterst teleurstellend resultaat op. Na de 2e epoch blijft alles ongeveer op dezelfde accuracy en loss uitkomen. (acc rond 50%)
Als ik de 'unsup' laat vervallen is Bert veel enthousiaster:
Ik moet dus wel bij de 6e of 7e epoch stoppen:
Mooi! Een behoorlijke test accuracy en F1 score. Nu nog mijn end user satisfaction commentaren gaan aanbieden. Ik ben benieuwd!
Geen opmerkingen:
Een reactie posten