Op zoek naar nuance: zo werkt tekstanalyse

SAP_Analyse

Ongestructureerde gegevens als recensies, socialmediaberichten, CRM-records, callcenternotities en reacties bij blogposts en artikelen bevatten waardevolle inzichten voor de business. Maar uit deze grote hoeveelheid data kunnen we als mens nauwelijks zelf conclusies trekken.

Machines kunnen dat wel, via tekstanalyse. Hoe werkt dat precies? Online recensies zijn vaak een dankbare researchbron voordat we grote aankopen doen. Daarbij kijken we niet alleen naar het aantal sterren, maar ook naar de begeleidende teksten. Onbewust gaan we op zoek naar sleutelbegrippen die voor de aankoop van belang zijn, zoals 'kwaliteit', 'service', 'comfort' en 'uitstraling'. Onbewust analyseren we zo de ongestructureerde teksten die door anderen zijn achtergelaten.

Nuances missen

Voor organisaties ligt dat anders. Zij kunnen ook veel inzichten halen uit ongestructureerde teksten, maar het zijn er simpelweg veel te veel om er ‘handmatig’ chocola van te maken. Om die reden beperken organisaties zich tot het geautomatiseerd analyseren van gestructureerde gegevens (het aantal sterren in bovengenoemd voorbeeld). Ze missen daarmee alle nuances.

Grammatica en semantiek als basis

Inmiddels kunnen machines ongestructureerde teksten met behulp van tekstanalyse geautomatiseerd van structuur voorzien. Dat doen ze op ruwweg dezelfde manier als onze hersenen. Zowel mens als machine gebruikt grammatica en semantiek als houvast. Hoewel het voor velen van ons geen favoriet onderwerp was op de basisschool, helpt basale grammaticale kennis ons om structuur aan te brengen in stukken tekst. Op basis van deze structuur (grammatica) en onze kennis van de wereld/context (semantiek) zijn wij in staat om de essentie te vinden in ongestructureerde tekst. Dat geldt ook voor geautomatiseerde oplossingen.

Om op grote schaal tekst te kunnen analyseren, moeten computers grammatica en semantiek 'leren'. Dit noemen we automatische tekstanalyse. Tekstanalyse is het analyseren van ongestructureerde tekst, het extraheren van relevante informatie uit die tekst, om die informatie vervolgens om te zetten naar gestructureerde informatie die geschikt is voor verdere analyse.

Op basis van de volgende stappen wordt eerst structuur aangebracht in zinnen:

  • Bepaal de taal. Omdat talen verschillende grammaticale regels kennen, is het essentieel om geautomatiseerd de taal te bepalen.
  • Vind de individuele woorden. De tekst wordt opgedeeld in paragrafen, zinnen en woorden. Denk daarbij ook aan het verwijderen van leestekens en het splitsen van samenstellingen.
  • Bepaal waarvan de woorden zijn afgeleid. “Wij vonden de kamers ruim en schoon”. vonden -> vinden, kamers -> kamer.
  • Ontleed de zinnen. “[Wij, ONDERWERP] [vonden, PERSOONSVORM] [de kamers, LIJDEND VOORWERP] [ruim en schoon, BEPALING VAN GESTELDHEID]”.

Nu zijn de ongestructureerde zinnen voorzien van een structuur en kunnen we bijvoorbeeld sentimentanalyse op de tekst uitvoeren. Uit de voorbeeldzin 'Wij vonden de kamers ruim en schoon' kan een hotelketen afleiden dat deze klant positief was over de aspecten ‘grootte van de kamer' en 'hygiëne'. Had de klant 'Wij vonden de kamers zeer ruim en redelijk schoon' geschreven, dan zou de analyse uitwijzen dat de klant zeer positief was over het aspect ‘grootte van de kamer’ en gematigd positief over het aspect ‘hygiëne’.

Contextafhankelijk

Of kenmerken als ‘klein’, ‘langzaam’ etc. positief of negatief moeten worden uitgelegd, is afhankelijk van de context waarin deze worden gebruikt. Het aspect ‘snel’ is positief voor een fastfoodrestaurant, maar wellicht negatief voor liefhebbers van slow dining.

Daarnaast hebben woorden afhankelijk van de context een andere betekenis. Met 'geld op de bank zetten' bedoelen we natuurlijk niet dat je de inhoud van jouw spaarvarken op een bankje in het park legt.

Voor een effectievere tekstanalyse maken we daarom vaak gebruik van domeinspecifieke woordenlijsten. Met behulp van deze lijsten wordt de oplossing slimmer. Menselijke experts voegen die intelligentie (semantiek) per domein toe.

Toepassingen

Hierboven heb ik tekstanalyse met name gepositioneerd voor sentimentanalyse. Dit is slechts één van de mogelijke toepassingen. Andere voorbeelden zijn:

  • het matchen van kandidaten met vacatures;
  • het automatisch beantwoorden van e-mails van klanten;
  • het analyseren en categoriseren van wetenschappelijke artikelen (het aantal wetenschappelijke publicaties verdubbelt elke 9 jaar);
  • het analyseren van medische dossiers (ongeveer 80% van de inhoud van medische dossiers bestaat uit ongestructureerde tekst).

Er zijn zelfs experimentele websites die je persoonlijkheid analyseren op basis van je LinkedIn-profiel. Het wachten is op de eerste datingsites die deze service gaan toevoegen.

Rijkdom aan informatie

SAP - Jeroen Reizevoort Tekstanalyse gaat ons helpen gebruik te maken van de rijkdom aan informatie die verscholen zit in de almaar groeiende berg van ongestructureerde tekst. Domeinspecifieke woordenlijsten kunnen worden gebruikt om de resultaten te verfijnen. Op deze wijze draagt tekstanalyse bij aan 'machine learning'. Zo hoeven we ons straks niet meer door bergen tekst heen te worstelen om alle nuances te zien.

Mooi. Blijft er tijd over voor het 'handmatig’ lezen van een goed boek.

Jeroen Reizevoort, Enterprise Architect bij SAP Nederland