Tekstinterpretatie met AI: hoe een algoritme een spaarbank van een sofa onderscheidt.

Afbeelding van Willi Heidelbach via Pixabay

Kunstmatige intelligentie kent een breed scala aan toepassingsgebieden waarbij de menselijke trekjes van AI goed zichtbaar worden. Zo ook binnen het vakgebied van Natural Language Processing (NLP), waarin het verwerken van menselijke taal door een algoritme centraal staat. In dit artikel ga ik in op de drijvende kracht achter de revolutie op het gebied van modellen die in staat zijn om zinnen te interpreteren, aan te vullen of zelfs te schrijven.

 

Natural Language Processing

Klassieke algoritmen op het gebied van NLP zijn ontwikkeld voor één specifieke taak, denk bijvoorbeeld aan het herkennen of een gebruikersbeoordeling van een restaurant positief of negatief is. Om zo’n algoritme te ontwikkelen zijn grote hoeveelheden data nodig die handmatig gelabeld zijn, wat erg arbeidsintensief is en daarmee schaars is. Moderne NLP-modellen hebben baat bij datasets die uit miljoenen of zelfs miljarden voorbeelden bestaan. Zoveel data handmatig labelen is voor specifieke taken, door de kosten en tijd die hiermee gemoeid gaan, vaak niet meer haalbaar.

 

General Purpose

Om dit op te lossen is het idee van een ​general purpose language representation model ​ontstaan. Zo’n model is in staat om de opbouw van een zin en ook de onderlinge verbanden tussen woorden te begrijpen.

Een voorbeeld:

 

Ik koop een kilo bloem en een bos met rozen.

 

De betekenis van bloem en bos zonder context is ambigu, dus voor een algoritme heel lastig te interpreteren. Het algoritme moet dus begrijpen dat het hier door de eenheid kilo om tarwebloem gaat en dat bos op de rozen slaat, waarbij dus niet een stuk grond met bomen bedoeld wordt. Op het moment dat deze structuren aan een algoritme geleerd kunnen worden, maakt dit het ontwikkelen van andere toepassingen veel eenvoudiger.

 

Unsupervised learning

Het voordeel is dat deze structuren op een​ unsupervised ​manier geleerd kunnen worden. Dat betekent dat het voldoende is om heel veel tekst aan het model te voeren, zonder dat hier handmatige labels toegekend hoeven te worden. Het​ leren van zo’n algoritme gebeurt bijvoorbeeld door alle Wikipedia-artikelen in te laden, waarbij het algoritme geleerd wordt om een ontbrekend woord in een zin in te vullen.

Een voorbeeld:

 

Een [X] is een voertuig dat veelal met spierkracht wordt aangedreven.

 

Door het algoritme te leren voorspellen welk woord op de [X] zou moeten staan, wordt het heel erg goed in het begrijpen van de onderlinge verbanden tussen woorden en zinnen.

 

Toepassingen

Nu we een algoritme hebben dat in staat is de structuur van een taal te begrijpen, is daarmee de weg vrij voor allerlei toepassingen waarbij de structuur van tekst van belang is. Dit is bijvoorbeeld het geval bij een Q&A, een toepassing waarbij het mogelijk wordt om aan de hand van een tekst vragen over de tekst te stellen.

 

 

Hierboven wordt zichtbaar dat het algoritme in staat is om de verschillende definities van woorden uit elkaar te houden. Maar ook voor grotere teksten blijft dit werken.

 

 

Dit is slechts één van de toepassingen die hiermee gerealiseerd kunnen worden. Doordat het algoritme in staat is om de verbanden binnen een zin of tekst te begrijpen, kunnen dit soort algoritmen ook worden ingezet om gehele nieuwe teksten te creëren die voor mensen volstrekt logisch zijn. Zie bijvoorbeeld dit artikel, wat volledig door een computer gegenereerd is. Dit artikel is volstrekt logisch qua zinsopbouw, alleen valt het algoritme al vrij snel door de mand, doordat er geen enkele geloofwaardige boodschap wordt overgebracht.

 

Wil je meer mogelijkheden in onze wereld van algoritmen ervaren? Neem contact op met Daan Middendorp.

daan.middendorp@dockbite.nl

+31 (0) 6 42906005