Kun je de getalsnamen leren, op basis van alleen voorbeelden? Stel, ik laat mijn dochter een lange rij getallen zien, uitgeschreven in cijfers (100.021, 23.533, 892, 5.543.849,…) en ik lees die getallen één voor één luid voor in het Nederlands (een miljoen een en twintig, drieëntwintig miljoen vijfhonderdrieëndertigduizend, achthonderd tweeënnegentig) zal ze dan ooit in staat zijn om zelf ieder willekeurig nieuw getal ook voor te lezen?
Misschien niet, zegt Richard Sproat, in een intrigerend kort artikel in het tijdschrift Computational Linguistics. In ieder geval kunnen computers het tot nu toe niet op die manier.
Leren op basis van voorbeelden is juist hét grote succes van de computertaalkunde in de afgelopen decennia. Alle bekende systemen – Google Translate, Alexa en Siri – hebben de taal niet geleerd doordat iemand allerlei taalregels of definities inprogrammeerde, maar alleen maar door ze enorme hoeveelheden voorbeelden te voeren: hier heb je miljoenen Engelse teksten met hun vertaling in het Frans, probeer daar zelf maar de regelmatigheden uit te vissen door er statistiek op uit te voeren. Die methode werkt beter dan alles wat er eerder beproefd is door te proberen de taal zo expliciet mogelijk te onderwijzen aan de computer.
Maar het voorlezen van getallennamen is daar dus een uitzondering op. Sproat heeft zelf zijn lange loopbaan lang gewerkt aan voorleessystemen: je geeft ze een geschreven tekst en er komt geluid voor. Een eerste stap daarbij is tekstnormalisatie: getallen worden omgezet in woorden, afkortingen worden uitgeschreven. En precies daarbij gaat het vaak fout, zegt Sproat.
Tekstnormalisatie wordt altijd als een wat saai onderdeel beschouwd van het hele proces, maar blijkt hier dus ineens interessant. Geleerden blijken nu zo overtuigd van het succes van die statistische methoden dat ze beweren dat alles op die manier gaat. Maar wij mensen leren natuurlijk ook niet alle aspecten van onze moedertaal op dezelfde manier: een heleboel pikken we moeiteloos op door als jong peutertje eindeloos te luisteren naar wat de volwassenen allemaal zo al zeggen. Sterker nog, het allergrootste deel van de taal leren we waarschijnlijk op deze manier. Maar sommige dingen leren we juist wel aan de hand van regels: op school bijvoorbeeld.
Dat is dus misschien het geval met getalsnamen. Het is een heel logisch systeem, maar er zijn ook wel héél veel mogelijke voorbeelden: alle getallen, dus in theorie oneindig (of als we ervan uitgaan dat je in de praktijk niet verder leert tellen dan een miljard, een miljard). De meeste van die voorbeelden komen vrijwel nooit voor in de praktijk voor. En dus is het systeem heel lastig te achterhalen – in ieder geval voor computers en misschien ook wel voor mijn dochter.
Jona Lendering zegt
Dat zal dan ook wel verklaren waarom eigennamen zo slecht worden vertaald. “Karel de Grote” zou “Charlemagne” moeten zijn in het Engels, maar wordt “Karel the Great” (wat op zich al beter is dan “Great Karel”).
Ik herinner me ook “In the name of an orange” voor “In naam van Oranje”, al vermoed ik dat daar niet de zeldzaamheid van de uitdrukking een rol speelt maar het feit dat het een voor de computer vreemde zegswijze is.
erik+harteveld zegt
Honderduizendeenentwintig! Niet verkeerd voorzeggen, Marc!
Berthold van Maris zegt
Jammer dat je niet uitlegt waarom het niet kan.
Marc van Oostendorp zegt
Ik ben geen expert, maar mij lijkt het probleem dat er heel veel getallennamen zijn (zelfs als je telt tot een miljoen heb je natuurlijk… een miljoen verschillende namen) en dat de meeste daarvan zelden of nooit voorkomen. Een systeem dat er op geen enkele manier opmerkzaam op wordt gemaakt dat hier een systeem in zit krijgt dus bijna per definitie te weinig informatie.
Weia Reinboud zegt
De computer zal het verschil niet zien tussen ‘honderdduizendeenentwintig’, ‘honderdduizend eenentwintig’, ‘honderd duizend eenentwintig’ enzovoort, maar je dochter vast wel!