Computerwetenschapper Tom Kenter schreef een algoritme waarmee computers zichzelf de betekenis van zinnen kunnen aanleren. Hierdoor zal het in de toekomst gemakkelijker worden om in natuurlijke taal met computers te communiceren.
Mensen zijn goed in het begrijpen van taal. Het is voor ons is het vanzelfsprekend dat ‘een wandelingetje maken’ en ‘een blokje om gaan’ ongeveer hetzelfde betekenen. Dat de zinnen uit heel andere woorden bestaan, maakt voor ons niet uit. Voor computers is dit veel lastiger. Tom Kenter van de Universiteit van Amsterdam onderzoekt hoe computers beter kunnen omgaan met onze taal. Hij schreef een algoritme dat bestaande teksten kan verwerken en zichzelf daaruit de betekenis van zinnen leert.
Wat kan het algoritme dat u schreef?
‘Je kunt in een computer de betekenis van een woord invoeren door bijvoorbeeld informatie uit een woordenboek in te typen. De computer kan dat dan reproduceren. Maar als je wil dat dit kan voor alle bestaande woorden, kost dat een hoop tijd. Het is handiger als een computer die betekenis zelf uit gewone teksten en krantenartikelen kan halen. Er bestaan algoritmes die dat kunnen voor woorden. Ik probeer hetzelfde probeer ik toe te passen op langere teksten zoals zinnen. Volgens mij is het de eerste keer in de geschiedenis dat we op grote schaal betekenisvolle informatie uit onbewerkte teksten kunnen halen.’
‘Ik probeer robots te ontwikkelen die ook echt een nieuwe stap maken’
Hoe werkt vliegen? Dat lijkt een simpele vraag, maar voor luchtvaarttechnicus en bioloog David Lentink is het een levenslange zoektocht.
Hoe kan een computer zonder uitleg zelf betekenis aan woorden geven?
‘De truc die we gebruiken is een inzicht uit 1957 van de taalwetenschapper John Rupert Firth. Hij zei: ‘You shall know a word by the company it keeps.’ Om een woord te begrijpen moet je dus kijken naar de context waarin het staat. Woorden die vaak in dezelfde context voorkomen, zullen een vergelijkbare betekenis hebben. Ik kijk in mijn onderzoek of dit principe ook toepasbaar is op langere teksten. Je geeft een zin dan betekenis door te kijken naar de omliggende zinnen.’
Mensen kunnen de betekenis van woorden en zinnen uitdrukken in beeld, taal of een gedachte. Hoe doet een computer dat?
‘De computer verbindt aan elk woord een rij getallen. Als je je dat in 3D voorstelt, krijgt elk woord drie cijfers. Die cijfers worden gewoon willekeurig gegenereerd en zeggen dus niets over het woord. Ze geven het woord alleen een willekeurige plek in een zogenaamde betekenisruimte. Dan laten we het programma bestaande teksten verwerken. Het programma haalt uit de context welke woorden een zelfde betekenis kunnen hebben. Het past de getallen een beetje aan en duwt vergelijkbare woorden zo dichter bij elkaar. Als je dit blijft herhalen, gaan woorden die vaak in de zelfde context voorkomen steeds dichter bij elkaar liggen. Zo krijg je clusters van woorden die bij elkaar horen. Dat is het principe. Eigenlijk is het iets ingewikkelder omdat wij niet met drie maar met driehonderd dimensies werken. Daarmee kan je woorden veel kanten uit duwen en allerlei verschillende betekenisaspecten uitdrukken. Ik kijk nu of dit principe ook werkt voor hele zinnen in plaats van alleen woorden.’
Wat is de grote doorbraak hiervan?
‘Het mooie is dat niemand nu gegevens hoeft in te voeren. We kunnen gewoon gebruik maken van teksten die al bestaan. Daar hebben we wel ontzettend veel van nodig, maar dat is het probleem niet. Denk maar aan alle artikelen in kranten en teksten op het Nederlandse internet. Je kunt die teksten gewoon downloaden.’
Welke toepassingen heeft deze ontwikkeling?
‘Ik denk dat de mogelijkheden eindeloos zijn. Een voorbeeld is dat je meer verschillende resultaten kunt krijgen uit zoekmachines. Als een zoekmachine documenten vindt, kan het met behulp van onze techniek zien of deze bestaan uit vergelijkbare woorden en zinnen. Dan kan de zoekmachine ervoor kiezen om niet alle documenten te tonen. Als je zoekterm ‘jaguar’ is, kan de machine jou zowel pagina’s tonen over het dier als over de auto. De kans is dan groter dat je vindt waarnaar je op zoek bent.
‘Je kunt ook denken aan vraag-antwoordsystemen. Op het internet staan ontzettend veel zinnen. Als je een vraag stelt aan een zoekmachine is er waarschijnlijk wel een zin die vergelijkbaar is met jouw vraagzin, maar dan met het antwoord erin. Dat antwoord kan gemakkelijk worden gevonden als de woorden in de zinnen hetzelfde zijn. Maar als je de computer kunt laten werken met de betekenis van een woord of een hele zin in plaats van letterlijke woorden, vind je het antwoord veel sneller. Bovendien kan een machine dan ook het echte antwoord geven in plaats van een hoop documenten waarin je als lezer het antwoord zelf moet zoeken.’
Wordt het algoritme al toegepast?
‘Geschiedkundigen vroegen ons of wij hen konden helpen met een probleem. Zij gebruiken bij hun onderzoek oude documenten als bronnen. Maar taal verandert door de jaren heen. In de jaren zestig spraken mensen bijvoorbeeld over waterstofbommen. Die term hoor je tegenwoordig niet meer. We hebben het nu over nucleaire wapens. Dat is lastig als je op zoek bent naar documenten over dit onderwerp. Je kunt niet altijd weten welke zoektermen je moet gebruiken.
‘We kunnen nu teksten uit een bepaalde periode door het algoritme halen. Zo krijg je een beeld van de taal van dat moment. Als je een modern woord intikt, redeneert het algoritme terug in de tijd. Het geeft je woordenlijstjes die je kunt gebruiken bij het zoeken naar oude documenten over een bepaald onderwerp. Je kunt hiermee heel verrassende dingen tegen komen. ‘Propaganda’ betekende rond de oorlog gewoon ‘reclame’. De bakker maakte propaganda voor zijn brood. In de jaren zeventig kreeg het woord pas de betekenis zoals we die nu kennen. Dat heb ik echt geleerd van mijn eigen programma.’
Zal dit onderzoek onze wereld veranderen?
‘Het verandert de wereld nu al. Maar er zullen nog veel meer ontwikkelingen komen die grote invloed hebben. De heilige graal is om een soort Star Trek-computer te maken. Met de computer uit deze serie kan je praten in gewone taal. Hij weet alles en geeft antwoord terug in menselijke taal. Dat zit er toch wel aan te komen. We hebben met zijn allen het internet zitten intypen dus daar zit behoorlijk veel kennis in. We moeten het er alleen nog op een handige manier uit krijgen. Maar met dit soort doorbraken komen we daar steeds dichter bij.’
Welke problemen zijn er nog?
‘Hoewel we er als mens goed in zijn geworden, is het heel onnatuurlijk om vragen te stellen met sleutelwoorden. Het is gemakkelijker om dat te doen in gewone taal. Gedeeltelijk werkt dat nu al wel. Als je in een stad bent en aan Siri of Google Now vraagt: ‘Waar zitten Thaise restaurants hier in de buurt?’, dan kom je al een heel eind. Maar als je daarna wil weten welke optie het beste is zou je een vraag moeten stellen als ‘Van al de Thaise restaurants waar ik zojuist aan refereerde, welke heeft daarvan de beste beoordelingen?’ Dat zeg je niet. Je vraagt gewoon: ‘Welke is de beste?’ Voor een computer is het lastig om te begrijpen wat je dan met ‘welke’ bedoelt. Dat zijn problemen die nog enigszins in de weg staan om een natuurlijke conversatie te hebben met een computer. Maar ook deze problemen zullen we uiteindelijk oplossen.’
Altijd op de hoogte blijven van het laatste wetenschapsnieuws? Meld je nu aan voor de New Scientist nieuwsbrief.