Ga naar de hoofdinhoud
BVDNET
Arnhem · websites & automatiseringBVDNET
Kernconcepten

Natural language processing (NLP)

Natural language processing (NLP) is het deel van AI dat computers menselijke taal laat lezen, sorteren, vertalen en schrijven, zoals in chatbots en vertaalapps.

Ook bekend als: NLP, natuurlijke taalverwerking, taaltechnologie, computational linguistics, computationele taalkunde

Natural language processing (NLP), in het Nederlands natuurlijke taalverwerking, is het deel van AI dat met menselijke taal werkt: software die tekst leest, sorteert, vertaalt of schrijft, en soms spraak verstaat. Een klantenservice merkt het als binnenkomende e-mails vanzelf op onderwerp worden gesorteerd, een webshop als de chatbot een vraag in gewone woorden begrijpt. Vertaalapps en het spamfilter in je mailbox gebruiken het ook.

Waar komt het vandaan?

Het vakgebied heeft veel namen, schrijven Jurafsky en Martin in hun leerboek (versie van augustus 2026), waaronder computationele taalkunde en, sinds de opkomst van taalmodellen, gewoon language modelling. De wortels liggen tussen eind jaren 1940 en begin jaren 1960, toen Claude Shannon werkte aan het voorspellen van het volgende woord (1951). Van ongeveer 1965 tot begin jaren 1990 overheersten symbolische benaderingen met expliciete regels en structuren. ELIZA (1966), het programma van Joseph Weizenbaum dat met eenvoudige tekstvervangingen een therapeut nadeed, stamt uit die tijd. Vanaf eind jaren 1980 verspreidden statistische methoden zich van spraakherkenning naar tekst. Tot 2019 was de standaardaanpak: trainingsdata labelen en voor elke taak een classifier trainen.

Hoe werkt het nu?

De transformer (Vaswani e.a., 2017) werd bedacht voor machinevertaling en werd al snel een architectuur voor allerlei taken. BERT van Google (2018) werd eerst voorgetraind op ongelabelde tekst en daarna met één extra uitvoerlaag aan een taak aangepast; het haalde op elf NLP-taken de beste resultaten tot dan toe. Jurafsky en Martin zien prompting, vanaf 2019, als de volgende omslag: in plaats van per taak een classifier te trainen, typ je een vraag en voorspelt een taalmodel het antwoord. Sindsdien draait NLP vooral om het genereren van tekst, met grote taalmodellen.

Een taalmodel voorspelt het volgende woord op basis van de woorden ervoor. De tekst wordt eerst opgeknipt in tokens, die het model omzet in embeddings: reeksen getallen die betekenis vastleggen. Om te schrijven kiest het een volgend token naar waarschijnlijkheid, voegt het toe aan de tekst en herhaalt dat.

Welke taken horen erbij?

  • Tekstclassificatie: een tekst een categorie geven, zoals spam of gewone mail, of de positieve of negatieve toon van een productreview (sentimentanalyse).
  • Named entity recognition: de namen van personen, plaatsen en organisaties in een tekst vinden.
  • Machinevertaling, samenvattingen en antwoorden op vragen. Met prompting kan één taalmodel veel daarvan.
  • Spraakherkenning en spraaksynthese, die het leerboek ook tot het vakgebied rekent.

Hoe goed gaat het met Nederlands?

Joshi e.a. (Microsoft Research India, 2020) deelden 2.485 talen in zes klassen in, naar de hoeveelheid gelabelde en ongelabelde data. Nederlands zit in klasse 4, één klasse onder Engels en Duits: veel ongelabelde tekst, minder gelabelde data. Modellen die alleen op Nederlands zijn getraind, helpen: BERTje (Rijksuniversiteit Groningen, 2019), getraind op 2,4 miljard tokens, deed het beter dan het even grote meertalige BERT-model op taken als named entity recognition en sentimentanalyse. RobBERT (KU Leuven, 2020) volgde.

Waar gaat het mis?

  • Taal is meerduidig. In het voorbeeld van Jurafsky en Martin kan "JFK" een persoon zijn, het vliegveld in New York of een van de vele scholen, bruggen en straten met die naam.
  • Vertalen mist context. Toen Google in 2016 een neuraal netwerk in zijn vertaaldienst zette, schreef het dat het systeem nog woorden kon weglaten, namen of zeldzame termen verkeerd kon vertalen, en zinnen los van elkaar vertaalde, zonder de context van de pagina.
  • Taalmodellen kunnen hallucineren: tekst schrijven die feitelijk onjuist is, zoals personen of feiten die niet bestaan.

Voorbeeld

Google Translate begon in 2006 met frasegebaseerde vertaling, die een zin opknipt in woorden en woordgroepen en die grotendeels los van elkaar vertaalt. In september 2016 zette Google de vertaling van Chinees naar Engels, zo'n 18 miljoen vertalingen per dag, over op een neuraal netwerk dat de hele zin als één geheel behandelt. Tweetalige beoordelaars vonden 55% tot 85% minder vertaalfouten bij een aantal grote taalparen. In juni 2020 stapte Google over op een hybride: een transformer-encoder die de zin leest en een snellere decoder van het oudere recurrente type (RNN) die de vertaling schrijft.