Starten met text mining: in 2 stappen van tekst naar gestructureerde data

Text mining geeft bedrijven toegang tot een ongekende hoeveelheid stuurinformatie. Maar het analyseren van Nederlandse teksten was altijd een flinke beproeving. De laatste jaren is de kwaliteit en beschikbaarheid van text mining tools enorm toegenomen. Tijd om eens dieper in deze goudmijn te duiken. Wat is text mining precies? En hoe maak je van teksten gestructureerde data waaruit je inzichten voor betere beslissingen kan halen? Philip van Kuiken, Data Scientist bij Riviq, legt het uit.

Ken je dat cliché ‘data is het nieuwe goud’? Ook al is de uitspraak inmiddels afgezaagd, het zegt wel degelijk wat over de waarde van data. Veel bedrijven proberen daarom meer datagedreven te werken. Maar ze zien daarbij vaak een grote goudmijn over het hoofd: teksten. E-mails, pdf’s, Word-documenten, maar ook klantfeedback op websites of fora bieden veel informatie om je producten of diensten te verbeteren. En de hoeveelheid bronnen en opgeslagen teksten neemt alsmaar toe. Hoe krijg je inzicht in de informatie uit al die teksten?

Van ongestructureerde tekst naar bruikbare data

Text mining is hét antwoord op het ontsluiten van informatie uit teksten. Met text mining maak je van ongestructureerde data – geschreven teksten – gestructureerde data waar je vervolgens inzichten en kennis uit kan halen. Dat is niets nieuws. Maar door constante ontwikkelingen op het gebied van tooling voor text mining is het steeds eenvoudiger om sneller resultaten te behalen. Vroeger moest je text mining tools zelf ontwikkelen, maar tegenwoordig zijn er veel kant-en-klare technieken en getrainde modellen beschikbaar via open source of de cloud. Een voorbeeld daarvan zijn open source Python packages, zoals SpaCy.

Netflix: text mining voor betere content

Wat levert text mining dan op? Neem Netflix als voorbeeld. De streamingdienst zet de techniek in om actief informatie te verzamelen over incorrecte titels, foutieve ondertiteling of problemen met beeld en geluid. Netflix-gebruikers kunnen namelijk feedback geven via hun klantaccount, Twitter of via de telefonische helpdesk. De kunst is om de feedback eruit te pikken die specifiek gaat over de kwaliteit van de content. Met text mining tools filtert Netflix automatisch de feedback die ze nodig hebben om titels, ondertiteling, beeld- of geluidsproblemen te verbeteren.

Zo begin je met text mining

Om text mining in te zetten, moet je de teksten eerst begrijpbaar maken voor een computer. Dat doe je met technieken uit Natural Language Processing (NLP). De eerste stap is opschonen. Je ontdoet een tekst van onduidelijkheden en overbodige informatie. In stap twee prepareer je de tekst en voeg je waarde aan woorden toe. Door de tekst vervolgens in tabelvorm aan te bieden aan een text mining tool kun je inzichten uit de data halen.

Stap 1: zorgen voor ‘schone’ tekst

Er bestaan veel NLP-technieken om teksten op te schonen. De volgende drie acties voer je vrijwel altijd uit:

Grove schoonmaak

Je verwijdert alle elementen uit de tekst die voor onduidelijkheid kunnen zorgen, zoals overbodige interpunctie. Ook zet je hoofdletters om in kleine letters waardoor je de tekst normaliseert. Zo zijn alle woorden ‘gelijk’. Je haalt ook stopwoorden uit de ingevoerde teksten. Die woorden hebben namelijk weinig waarde en zorgen in je uiteindelijke analyses voor vervuiling.

Tokenization

Om een tekst begrijpbaar te maken voor een text mining tool moet je de tekst in tabelvorm aanleveren. Dat betekent dat je een tekst eerst moet opdelen in zinselementen, zoals woorden, interpunctie en witruimte. Die zinselementen noem je tokens, vandaar de naam van deze techniek: tokenization.

Spacy-text-mining

Afbeelding: voorbeeld van tokenization (bronvermelding).

Lemmatization of stemming

Werkwoorden hebben veel vervoegingen, vooral in de Nederlandse taal. Het is daarom verstandig om werkwoorden – maar ook andere woordsoorten – terug te brengen naar hun basisvorm of stam. Op die manier maak je het voor een text mining tool eenvoudiger om dezelfde woorden te herkennen. Je voorkomt daarmee dat dezelfde woorden (met een andere vervoeging) in een latere analyse dubbel voorkomen.

Met lemmatization zet je woorden terug naar hun basisvorm. ‘Liepen’ wordt ‘lopen’ en ‘keramische’ wordt ‘keramisch’. Met stemming zet je woorden terug naar de stam. ‘Werken’ wordt ‘werk’ en ‘handelen’ wordt ‘handel’. Stemming is een uitdagende techniek. Je kan in een tekst namelijk vrij eenvoudig alle woorden ontdoen van ‘-en’. Maar dan krijg je een probleem met bijvoorbeeld het woord ‘kranen’. Met lemmatization behaal je over het algemeen betere resultaten.

Stap 2: woorden waarde geven

Nu je tekst is opgeschoond, kun je woorden meer waarde geven. Dit zijn enkele NLP-technieken waarmee je dat doet:

Part of Speech

Part of Speech (POS) is het taggen van grammaticale tokens. Is een token bijvoorbeeld een zelfstandig naamwoord, een werkwoord of een bijvoeglijk naamwoord? Alle elementen in een tekst krijgen een tag zodat een text mining tool begrijpt wat ieder element is.

Named Entity Recogniton

Met Named Entity Recogniton (NER) tag je entiteiten in een tekst, zoals bedrijfsnamen, personen, tijdstippen of locaties. Dat kan interessant zijn wanneer je bijvoorbeeld wil onderzoeken hoe vaak jouw concurrenten worden genoemd in een belangrijk rapport.

Sentiment analyse

Dankzij POS en NER weet een text mining tool de grammaticale waarde van woorden en herkent het entiteiten. Het kan vervolgens interessant zijn om de gevoelswaarde van die woorden te weten. Dat doe je met een sentimentanalyse. Daarmee bepaal je of woorden negatief, neutraal of positief zijn. Dat is bijvoorbeeld van belang wanneer je klantfeedback wil analyseren om te ontdekken in welke mate klanten positief zijn over je bedrijf of over de producten of diensten van je bedrijf.

Text mining in de praktijk?

Met deze meest gebruikte technieken zet je jouw teksten om in gestructureerde data. Nu kun je starten analyseren en zo waarde uit die goudmijn gaan halen. Wil je weten hoe text mining in de praktijk werkt? Houd dan mijn volgende blog in de gaten!

Philip van Kuiken

Geschreven door

Philip van Kuiken

Data scientist

meer over dit onderwerp

Send this to a friend