Je leest:

Hoe de computer woordbetekenis leert

Hoe de computer woordbetekenis leert

‘Jeans’ en ‘spijkerbroek’ zijn twee woorden voor hetzelfde ding. Gitaren, piano’s en cello’s behoren tot dezelfde groep van dingen. Bij het woord ‘feest’ denk je ook aan woorden als ‘avond’ en ‘dansen’. Zulke relaties tussen woorden leren mensen door taal te gebruiken in hun dagelijks leven. Maar hoe leert een computer dit?

Mensen leren schijnbaar zonder moeite de betekenis van woorden. We weten dat tafels en stoelen meubels zijn en dat honden en katten dieren zijn. Ook weten we dat iemand die op zoek is naar een spijkerbroek bij een jeanswinkel terecht kan. Jeans is gewoon een ander woord voor spijkerbroek. Dit soort informatie is onmisbaar in onze dagelijkse communicatie. Ook een computer heeft dit soort informatie nodig. Niet voor zichzelf, maar wel wanneer hij met de mens moet communiceren. Bijvoorbeeld wanneer een gebruiker in een zoekmachine ‘spijkerbroek kopen Eindhoven’ intypt. We willen dan ook zoekresultaten zien, waarin slechts het woord ‘jeans’ voorkomt en niet het woord ‘spijkerbroek’.

De zelflerende computer

Er zijn verschillende manieren om een computer deze informatie te leren. Je kunt hem de kennis die wij hebben stuk voor stuk voorschotelen: een fiets is gelijk aan een rijwiel, een hond is een dier, etc. Maar je begrijpt dat het een enorm karwei is de computer deze oneindige lijst van feiten door te geven. Een andere manier is om de computer dit soort van infomatie zélf uit teksten laten leren. Het enige dat je dan nodig hebt is een hele hoop tekst (minstens 100 miljoen woorden, maar liever meer) en statistiek.

WordNet is een Amerikaanse database vol met Engelse woorden en hun onderlinge relaties. Met speciale software (visualthesaurus.com) is deze informatie te visualiseren. Klik op de afbeelding voor een vergroting

Wetenschappers van de Princeton University in de Verenigde Staten hebben de ‘handmatige’ methode gebruikt. Zo hebben zij WordNet gebouwd. WordNet is een grote database met woordbetekenissen voor het Engels. Hierin vind je bijvoorbeeld dat een ‘dog’ (‘hond’) een ‘domestic animal’ (‘huisdier’) is en dat ‘Canis familiaris’ de Latijnse benaming is voor ‘hond’. Wetenschappers hebben ondertussen WordNet uitgebreid voor verschillende Europese talen, waaronder het Nederlands. Dit project heet EuroWordNet. Hoewel de database voor het Nederlands erg uitgebreid is, is hij nog lang niet compleet. De medewerkers moeten de database steeds bijwerken. Dit is veel werk en is dus ook erg duur. Het zou dan makkelijker zijn als de computer zelf dit soort informatie leert.

Soorten relaties

Met behulp van een hele hoop teksten en wat statistiek is het mogelijk om de computer zelf te laten leren welke woorden aan elkaar verwant zijn. De computer kan zo verschillende soorten relaties tussen woorden ontdekken. Je kan de computer bijvoorbeeld laten berekenen hoe vaak de woorden A en B allebei met de woorden C, D en E in een zin voorkomen in. Al gauw leert de computer dan dat de woorden ‘feestje’ en ‘avond’ vaak voorkomen met woorden als ‘gasten’ en ‘dansen’. Dit zie je bijvoorbeeld in de volgende zinnen: ‘In de avond organiseert ZUZU een feest, waarbij zeker 50 gasten zijn uitgenodigd’ en ‘Wanneer de avond valt barst het feest los, vloeit het bier en dansen de gasten’. Deze methode heet de proximity-gebaseerde methode. Zo vind je woorden die aan elkaar gerelateerd zijn doordat de betekenissen met elkaar te maken hebben.

Woorden die gerelateerd zijn aan ‘feest’ volgens de proximity-gebaseerde methode. Via deze link kan je zelf uitproberen welke woorden de computer met elkaar associeert.

Semantische relaties

De woorden ‘feest’ en ‘avond’ uit het vorige stuk tekst zijn aan elkaar gerelateerd, maar op een heel andere manier dan de woorden ‘jeans’ en ‘spijkerbroek’ uit een eerder voorbeeld. En ‘piano’ en ‘gitaar’ zijn weer op een andere manier verbonden. De relatie tussen ‘feest’ en ‘avond’ is een soort van associatie. Het zijn twee totaal verschillende begrippen, maar ze hebben wel veel met elkaar te maken. Met de proximity-based methode leert de computer zulke associaties. Gitaren en piano’s zijn op een andere manier aan elkaar gerelateerd. Ze verwijzen naar hetzelfde type begrip; allebei zijn het muziekinstrumenten. Beide woorden vallen daarom in dezelfde categorie. Woorden als ‘jeans’ en ‘spijkerbroek’ zijn weer anders met elkaar verbonden. Ze verwijzen allebei naar hetzelfde begrip. We noemen deze twee woorden ook wel synoniemen van elkaar.

Al deze soorten verbanden zijn semantische relaties. Semantiek houdt zich bezig met de betekenissen van woorden en zinnen. Zoals je ziet kunnen woorden op verschillende manieren semantisch aan elkaar gerelateerd zijn. De afbeeldingen in dit artikel geven de relaties weer in semantische netwerken, waarin je door pijltjes ziet welke woorden iets met elkaar te maken hebben.

Zinsontleding

We zagen eerder al hoe de computer associaties tussen woorden leert. Wat nu als je woorden wil vinden die tot dezelfde categorie horen, zoals ‘piano’ en ‘gitaar’? Je kijkt dan niet naar de zin waarin ze voorkomen, maar naar welke plek ze innemen bínnen de zin. Je onderzoekt de grammaticale relaties binnen een zin. We noemen dit de syntax-gebaseerde methode. Hoe vind je die grammaticale relaties?

Zoals je weet heeft een zin een onderwerp en ook vaak een lijdend voorwerp. In de zin ‘Jan slaat Piet’ is ‘Jan’ het onderwerp en ‘Piet’ het lijdend voorwerp. Woorden spelen vaak dezelfde grammaticale rol binnen een zin. Zo zijn ‘gitaar’ en ‘piano’ vaak het lijdend voorwerp bij het werkwoord ‘spelen’. Ook komen ze vaak voor na het bijvoeglijk naamwoord ‘vals’ of ‘gestemd’. De computer kan deze grammaticale rollen van woorden herkennen. Zo leert hij dat twee woorden tot dezelfde categorie behoren. De computer vindt met deze methode ook synoniemen, maar vooral veel gelijksoortige woorden zoals ‘piano’ en ‘gitaar’.

‘Piano’ en ‘gitaar’ zijn verbonden in het syntax-gebaseerde semantische netwerk. Via deze link kan je zelf uitproberen welke woorden de computer in dezelfde categorie plaatst.

Voor de computer zulke verbanden kan zoeken, moeten de teksten dus eerst ontleed zijn. Het zou een flinke klus zijn, als je miljoenen zinnen met de hand moest ontleden. Gelukkig hoeft dat niet, de computer kan het ook zelf doen. De Rijksuniversiteit Groningen heeft een automatische zinsontleder voor het Nederlands gebouwd: Alpino. Deze heeft al miljoenen zinnen ontleed.

Vertalingen

De computer kan ook synoniemen ontdekken in grote hoeveelheden tekst. Om te leren dat een ‘jeans’ en een ‘spijkerbroek’ hetzelfde kledingstuk zijn, hebben we de computer dezelfde teksten in meerdere talen gegeven. De computer legt de vertalingen naast elkaar en rekent uit welke woorden hoogstwaarschijnlijk vertalingen van elkaar zijn. Hij ziet dat ‘jeans’ in het Engels verwijst naar ‘spijkerbroek’ in het Nederlands. Als twee verschillende woorden uit taal X in taal Y met eenzelfde woord vertaald worden, is de kans groot dat de twee woorden in taal X hetzelfde betekenen. Zowel ‘jeans’ als ‘spijkerbroek’ worden in het Engels als ‘jeans’ vertaald en in het Duits als ‘jeanshose’. Als je vertalingen zo woord-voor-woord aan elkaar koppelt, aligneer je de teksten. Daarom heet deze methode de alignment-gebaseerde methode.

‘Jeans’ en ‘spijkerbroek’ zijn verbonden in het alignment-gebaseerde semantische netwerk. Via deze link kan je zelf uitproberen welke woorden de computer als synoniemen ziet.

Meerwoordige begrippen

De computer kan op deze manier veel semantische relaties afleiden. Foutjes maakt hij echter ook. Dat had je misschien ook al gemerkt bij het uitproberen van de demo’s in de afbeeldingen. Bij het aligneren van twee vertalingen raakt de computer soms in de war. In het Nederlands gebruiken we bijvoorbeeld vaak één woord voor dingen waar andere talen twee woorden voor nodig hebben. Kijk maar naar ‘dierenbescherming’, dat is ‘animal welfare’ in het Engels. Bij het op een rij zetten van de vertalingen gaat het dan vaak mis. De computer denkt dat ‘animal’ een vertaling is van ‘dierenbescherming’ en gaat zo relaties tussen woorden zien die er niet zijn.

Wetenschappers zijn nog druk bezig om oplossingen te bedenken voor dit soort problemen. De computer zou bijvoorbeeld kunnen leren dat sommige begrippen uit meerdere woorden bestaan. Dan zou hij de woorden van de vertalingen niet meer automatisch één-op-één op een rijtje zetten, maar soms twee-op-één, of zelfs drie-op-één.

Nuttig

Je kunt je afvragen waarom een computer zo nodig woordbetekenissen moet kunnen afleiden. Verschillende taken zijn echter een stuk makkelijker als de computer taal ‘begrijpt’ en met je mee kan denken. We zagen al het voorbeeld van de zoekmachine, die automatisch ook op ‘jeans’ zoekt als je alleen ‘spijkerbroek’ intypt. De semantische netwerken kunnen ook goed van pas komen in automatische vraag-antwoord systemen. Dat is een computersysteem dat direct antwoord geeft op je vraag, in plaats van dat hij een lijst teksten geeft waarin misschien staat wat je zoekt. Als je de computer vraagt ‘Wie was de vrouw van John Lennon?’ kan hij het antwoord vinden in een tekst waarin staat dat Yoko Ono de echtgenote van John Lennon was. Hij weet immers dat ‘vrouw’ en ‘echtgenote’ synoniemen van elkaar zijn.

Er zijn nog veel meer toepassingen voor semantische netwerken te bedenken. Je kunt bijvoorbeeld je website beter vindbaar maken. Als de computer synoniemen bedenkt voor de woorden op je site, komen bezoekers met meer verschillende zoektermen op je site terecht.

Als je kijkt welke woorden de computer als synoniemen van ‘ergenis’ ziet, is het net of de computer taal écht kan begrijpen. Voor hem blijven het echter gewoon enen en nullen.

Echt taal begrijpen kan de computer nog steeds niet. Het blijven voor hem gewoon enen en nullen. Maar als de computer semantische relaties kent, begint het al iets meer te lijken op taalbegrip. Hij kan dan als het ware met je meedenken. Dat kan al een hoop ergernis schelen!

Zie ook:

Oeps: Onbekende tag `feed’ met attributen {"url"=>"https://www.nemokennislink.nl/kernwoorden/semantiek.atom", “max”=>"5", “detail”=>"normaal"}

Dit artikel is een publicatie van Kennislink (correspondentennetwerk).
© Kennislink (correspondentennetwerk), alle rechten voorbehouden
Dit artikel publiceerde NEMO Kennislink op 18 maart 2009

Discussieer mee

0

Vragen, opmerkingen of bijdragen over dit artikel of het onderwerp? Neem deel aan de discussie.

LEES EN DRAAG BIJ AAN DE DISCUSSIE