Column: Rekenen met woorden

18 april 2017

Ongestructureerde tekst analyseren is een uitdaging voor veel computer-algoritmen. Ondertussen worden toepassingen zoals het automatisch doorzoeken van grote document-collecties of het categoriseren van teksten op webpagina’s, artikelen, e-mails en boeken steeds belangrijker voor organisaties. Traditionele software werkt nu vaak aan de hand van directe trefwoorden. Een document waarin een zoekterm voorkomt krijgt een hogere score dan documenten waarin de term niet voorkomt. Op deze manier wordt een rangschikking gemaakt en komen relevante documenten bovenaan de resultatenlijst te staan.

Een voordeel van deze trefwoorden-aanpak is dat het simpel en intuïtief werkt. Er zijn echter ook een aantal nadelen. Stel je bent op zoek naar een nieuw bankstel en typt in een online zoekmachine de tekst ‘bank’. Aangezien ‘bank’ zowel staat voor een bank waar je op kunt zitten, als voor een bank waar je je geld kwijt kunt, krijg je gemixte resultaten. Daarnaast mis je alle webpagina’s die wel het woord ‘sofa’ of ‘zitmeubel’, maar niet het woord ‘bank’ in de tekst hebben staan. Huidige oplossingen voor problemen zoals synoniemen zijn beperkt of vergen extra werk van de gebruiker. Zo kan de gebruiker zelf meer zoektermen invoeren, wat lastig is en waarschijnlijk ontoereikend zal zijn, of kan de zoekmachine een bestaande synoniemenlijst bijhouden. Een synoniemenlijst helpt echter niet bij woorden met een dubbele betekenis. Moet er in het bovenstaande voorbeeld naast ‘bank’ ook op ‘sofa’ gezocht worden of juist op ‘kredietinstelling’? Hiervoor moet de zoekmachine ook een lijst met woorden met meerdere betekenissen bijhouden. Opeens komt er erg veel mensenwerk aan te pas om een goed werkende zoekmachine te verkrijgen.

Target kiest echter een andere aanpak door de context van woorden te analyseren. Woorden die in dezelfde context voorkomen hebben hoogstwaarschijnlijk een soortgelijke betekenis. Een simpel voorbeeld: In de twee zinnen “Ik heb een huis gekocht in Groningen” en “Ik heb een appartement gekocht in Groningen” komen de woorden ‘huis’ en ‘appartement’ in dezelfde context voor. Hieraan herkent het algoritme dat deze twee woorden qua betekenis op elkaar lijken. Als de woorden maar vaak genoeg in dezelfde context voorkomen, dan gaat de interne, wiskundige representatie van die woorden vanzelf op elkaar lijken.

In het omgekeerde geval kan het algoritme, als een woord in verschillende contexten voorkomt, ook meerdere betekenissen aan dat woord toekennen. Zo kunnen we voor bijvoorbeeld het Engelse woord ‘rock’ meerdere concepten relateren: Het kan ofwel te maken hebben met ‘bands, pop & songs’, ofwel met ‘boulder, stone & limestone’.

Het enige wat het algoritme dus nodig heeft is tekst. Het behoeft verder geen handmatig annotatiewerk of uitleg dat de woorden ‘huis’ en ‘appartement’ twee typen woningen zijn. Dit is een hele krachtige eigenschap, want meestal zijn er genoeg teksten beschikbaar, maar is er een gebrek aan een structuur die uitlegt wat woorden betekenen. Een andere mooie eigenschap van dit algoritme is dat het, zonder het onder water te wijzigen, gemakkelijk een andere taal kan leren, inclusief synoniemen. We hoeven het algoritme alleen maar nieuwe tekst in deze taal te laten zien. Dit is met name handig wanneer het model moet omgaan met specifiek vakjargon, waarvoor meestal geen kant-en-klare synoniemenlijsten te vinden zijn.

De eigenschap die uitdagende toepassingen met ongestructureerde tekst mogelijk maakt is het feit dat we nu kunnen rekenen met woorden! Zo kun je het algoritme vragen wat de vrouwelijke variant van een koning is, door middel van de volgende rekensom: ‘koning’ – ‘man’ + ‘vrouw’ = ?. Logischerwijs zal het antwoord ‘koningin’ betreffen. Een andere manier om deze rekensom te omschrijven is door de analogie ‘man staat tot koning, als vrouw staat tot …’. Het algoritme heeft geleerd om verbanden te leggen tussen woorden zonder dat daar expliciet opdracht voor is gegeven.

De software van Target is op veel verschillende manieren toe te passen. Naast de eerder genoemde toepassingen als zoeken op het web, kun je bijvoorbeeld het waardeoordeel afleiden uit recensies door aan de hand van de wiskundige representatie van de recensietekst te bepalen of het onderwerp positief of negatief is bevonden. Het algoritme is zo veelzijdig dat het ook buiten het gebied van tekstverwerking nieuwe, creatieve oplossingen mogelijk maakt. Denk bijvoorbeeld aan een unieke aanpak om online gebruikers aanbevelingen te geven. Als we op een muziekplatform playlists beschouwen als tekst en de individuele liedjes als woorden, dan kun je gebruikers aanbevelingen geven van nog niet eerder gehoorde liedjes die passen bij de stijl van hun huidige playlists.

Sybren, data-scientist bij Target: “Uit mijn ervaring blijkt dat deze aanpak een waardevolle, maar vooral ook enorm leuke toepassing van machine learning is. Het algoritme leert krachtige verbanden die een mens niet snel zou bedenken en dat allemaal zonder menselijke inspanning. De veelzijdigheid zorgt er bovendien voor dat je met een beetje creativiteit nieuwe uitdagingen kunt aangaan, of betere oplossingen voor bestaande problemen kunt formuleren. Ik kijk uit naar de nieuwe toepassingen die we voortdurend blijven bedenken.”