50% off DataCamp Premium. 700+ courses, half price. Start learning today.
Natural language processing (NLP) verbetert de manier waarop mensen en computers met elkaar communiceren door machine learning te gebruiken om de structuur en betekenis van tekst te achterhalen. Met toepassingen voor natural language processing kunnen organisaties productiever werken en kosten verlagen door tekst te analyseren en relevantere informatie te extraheren om de klantervaring te verbeteren.
Wat is Natural Language Processing (NLP)?
We staan niet vaak stil bij de subtiliteiten van onze taal. Het is een intuïtief gedrag dat steunt op semantische aanwijzingen zoals woorden, tekens of beelden om informatie en betekenis over te brengen. Er wordt wel gezegd dat een taal leren makkelijker is in de adolescentie, omdat het een herhaalbaar gedrag is dat je kunt aanleren, net als lopen. Bovendien volgen talen geen strikte regels en zijn er veel uitzonderingen.
Taalverwerving is voor mensen dan wel natuurlijk, voor computers is het extreem complex: er is veel ongestructureerde data, er zijn geen strikte regels en er is geen vaste invalshoek of context. Toch vertrouwen mensen steeds meer op computersystemen om te communiceren en taken uit te voeren. Daarom krijgen machine learning (ML) en kunstmatige intelligentie (AI) zoveel aandacht en populariteit. Natural language processing volgt de ontwikkelingen in AI op de voet. Hoewel deze twee termen misschien beelden oproepen van futuristische robots, zijn er nu al simpele toepassingen van NLP in het dagelijks leven.
NLP is een onderdeel van AI dat zich richt op het begrijpen van menselijke taal zoals die geschreven en/of gesproken wordt. Hiervoor worden specifieke computerprogramma’s ontwikkeld; een gewone computer heeft instructies nodig in een zeer precieze, afgebakende, gestructureerde en ondubbelzinnige programmeertaal. Helaas is natuurlijke menselijke taal onnauwkeurig, dubbelzinnig en verwarrend. Om een programma de betekenis van woorden te laten begrijpen, zijn algoritmen nodig die betekenis en structuur kunnen analyseren, woorden begrijpelijk maken, bepaalde verwijzingen herkennen en vervolgens taal genereren.
Wat zijn de verschillende technieken van Natural Language Processing (NLP)?
NLP-algoritmen voeren verschillende syntactische en semantische analyses uit om de betekenis van zinnen te beoordelen op basis van grammaticale regels. Ze doen dit door:
- Woorden en woordgroepen te segmenteren of de grammatica van volledige zinnen te analyseren.
- Tekst in real time te vergelijken met beschikbare databases om betekenis en context te bepalen.
- Machine learning- en deep learning-technieken te gebruiken om relevante correlaties te vinden in grote hoeveelheden gelabelde data.
Veelgebruikte NLP-technieken zijn onder meer:
- Named Entity Recognition (NER): Herkent namen van personen, plaatsen, organisaties, enz.
- Sentimentanalyse: Bepaalt of tekst een positief, negatief of neutraal sentiment uitdrukt.
- Tekstsamenvatting: Genereert beknopte samenvattingen van langere teksten.
- Aspectextractie: Identificeert belangrijke aspecten of intentie in een stuk tekst.
- Topic modeling: Ontdekt verborgen thema’s en structuren in grote tekstdatasets.
Wat kan Natural Language Processing doen?
NLP wordt in een breed scala aan toepassingen gebruikt. Dit zijn enkele van de meest voorkomende gebieden.
Berichtfilters
Berichtfilters behoren tot de eerste basistoepassingen van NLP online. De techniek werd aanvankelijk gebruikt om spamfilters te maken die ongewenste berichten identificeren op basis van bepaalde woorden of zinnen. Naarmate NLP zich ontwikkelde, deden de filters dat ook.
Een van de meest recente en gangbare toepassingen hiervan is de classificatie van e-mails door Gmail. Dit systeem kan een e-mail indelen in drie categorieën (Primair, Sociaal of Promoties) op basis van de inhoud. Hierdoor kunnen Gmail-gebruikers hun inbox beter beheren en snel belangrijke e-mails bekijken en beantwoorden.
Intelligente assistenten
Intelligente assistenten zoals Siri (Apple) en Alexa (Amazon) gebruiken spraakherkenning om spraakpatronen te identificeren, betekenis af te leiden en een nuttig antwoord te geven. Het voelt inmiddels normaal om Siri een vraag te stellen en haar ons relevant te horen antwoorden. Evenzo raken we eraan gewend om dagelijks te communiceren met Siri of Alexa via onze thermostaat, verlichting, auto, enzovoort.
We verwachten nu dat assistenten als Alexa en Siri context oppikken om ons te helpen in het dagelijks leven en bepaalde taken uit te voeren (zoals het bestellen van artikelen). We genieten zelfs van hun grappige reacties of wanneer ze iets over zichzelf vertellen. Onze interacties worden persoonlijker naarmate ze ons beter leren kennen. Volgens het New York Times-artikel Why We May Soon Be Living in Alexa's World: "Er komt een grote verschuiving aan. Alexa zal zeer waarschijnlijk het derde grote consumentenplatform van dit decennium worden."
Zoekresultaten
Zoekmachines gebruiken NLP om relevante resultaten te tonen op basis van vergelijkbaar zoekgedrag of gebruikersintentie. Zo kan iedereen vinden wat hij of zij nodig heeft, zonder speciale vaardigheden.
Wanneer je bijvoorbeeld een zoekopdracht begint te typen, toont Google populaire gerelateerde zoekopdrachten, maar het kan ook de algemene betekenis van je vraag herkennen, los van de exacte bewoording. Als je een vluchtnummer invoert, zie je de status. Bij een aandelensymbool krijg je een koersoverzicht. Typ je een wiskundige vergelijking, dan verschijnt er een rekenmachine. Je zoekopdracht kan uiteenlopende resultaten opleveren omdat de gebruikte NLP-techniek een ambigue vraag aan een bepaalde entiteit koppelt om nuttige resultaten te bieden.
Intuïtief typen
Functies zoals autocorrectie, autocomplete en intuïtieve invoer zijn zo gangbaar op onze smartphones dat we ze voor lief nemen. Automatisch en intuïtief typen lijken op zoekmachines doordat ze voorspellen hoe een woord of zin afloopt op basis van wat je invoert. Autocorrectie past soms zelfs woorden aan om de algehele betekenis van je bericht te verbeteren.
Bovendien evolueren deze functies met jou mee. Zo past intuïtief typen zich in de loop van de tijd aan jouw specifieke formuleringen aan. Dat levert soms grappige conversaties op, met zinnen die volledig zijn gebaseerd op intuïtieve invoer. Het resultaat kan verrassend persoonlijk en veelzeggend zijn en heeft soms zelfs de media gehaald.
Vertaling
Als je oefening in een vreemde taal vol grammaticale fouten staat, merkt je docent waarschijnlijk dat je hebt gesjoemeld met NLP-technologie. Veel talen laten zich helaas niet rechtstreeks vertalen omdat ze andere zinsstructuren hebben, iets wat vertaalservices vroeger weleens over het hoofd zagen. Toch zijn deze systemen een heel eind gekomen.
Dankzij NLP bieden online vertaaltools nauwkeurigere en grammaticaal correctere vertalingen. Ze zijn dus erg handig als je moet communiceren met iemand die jouw taal niet spreekt. Als je een vreemde tekst wilt vertalen, kunnen zulke tools zelfs de taal van de ingevoerde tekst herkennen.
Digitale telefoongesprekken
Als je sommige bedrijven belt, heb je vast weleens gehoord: "dit gesprek kan worden opgenomen voor trainingsdoeleinden". Hoewel deze opnames kunnen worden gebruikt voor training (bijvoorbeeld om een gesprek met een ontevreden klant te analyseren), worden ze meestal opgeslagen in een database waarmee een NLP-systeem kan leren en groeien. Geautomatiseerde systemen leiden klantgesprekken door naar een medewerker of online chatbot, die relevante informatie geeft om vragen te beantwoorden. Deze NLP-techniek wordt al door veel bedrijven gebruikt, waaronder grote telecomproviders.
Technologie voor digitale telefoongesprekken maakt het ook mogelijk dat een computer de menselijke stem imiteert. Zo kun je geautomatiseerde telefoontjes plannen om een afspraak te maken bij de garage of kapper.
Data-analyse
Natuurlijke taalcapaciteiten zijn inmiddels geïntegreerd in analytische workflows. Steeds meer BI-leveranciers bieden namelijk een natuurlijke taalinterface voor hun datavisualisaties. Slimmere visuele codering kan bijvoorbeeld de best mogelijke visualisatie voor een specifieke taak voorstellen, afhankelijk van de semantiek van de data. Iedereen kan de data verkennen met uitspraken in natuurlijke taal of vraagfragmenten waarvan de trefwoorden worden geïnterpreteerd en begrepen.
Data verkennen met taal maakt data toegankelijker en opent analytics voor het hele bedrijf, voorbij de gebruikelijke kring van IT-analisten en ontwikkelaars.
Tekstanalyse
Tekstanalyse zet ongestructureerde tekstuele data om in analyseerbare data met behulp van diverse taalkundige, statistische en machine learning-technieken.
Sentimentanalyse kan een flinke uitdaging lijken voor merken (zeker bij een grote klantenbasis). Een NLP-gebaseerde tool kan echter doorgaans klantinteracties (zoals reacties of reviews op sociale media, of zelfs vermeldingen van merknamen) beoordelen op hun aard. Merken kunnen deze interacties vervolgens analyseren om de effectiviteit van hun marketingcampagne te beoordelen of om de ontwikkeling van klantproblemen te monitoren. Op basis daarvan kunnen ze besluiten hoe te reageren of hun dienstverlening verbeteren voor een betere ervaring.
NLP draagt ook bij aan tekstanalyse door trefwoorden te extraheren en patronen of trends in ongestructureerde tekstdata te herkennen. Wat zijn de belangrijkste NLP-modellen?
Hoewel NLP al een tijd bestaat, zijn de recente ontwikkelingen opmerkelijk, vooral door de opkomst van transformer-gebaseerde modellen en grootschalige taalmodellen die door toonaangevende techbedrijven zijn ontwikkeld. Enkele van de meest geavanceerde modellen zijn:
-
Transformer-gebaseerde modellen:
- BERT en ALBERT (Google AI)
- RoBERTa (Meta/Facebook), StructBERT (Alibaba), DeBERTa (Microsoft), DistilBERT (Hugging Face)
- XLNet (Carnegie Mellon University), UniLM (Microsoft), Reformer (Google)
-
Large language models (LLM’s):
- GPT-3, GPT-4 en GPT-4 Turbo (OpenAI)
- Claude 3 (Anthropic)
- PaLM 2 en Gemini 1.5 (Google DeepMind)
- LLaMA 2 (Meta)
- Mistral en Mixtral (Mistral AI)
In deze tutorial kijken we van dichterbij hoe BERT wordt gebruikt voor NLP.
Hoe werkt Google BERT?
BERT, de afkorting van "Bidirectional Encoder Representations from Transformers", is een model uitgebracht door Google AI. Deze innovatieve techniek is gebaseerd op natural language processing (NLP).
Het algoritme gebruikt in essentie machine learning en kunstmatige intelligentie om zoekopdrachten van internetgebruikers te begrijpen. Het probeert dus hun zoekintentie te interpreteren, oftewel de natuurlijke taal die ze gebruiken.
In die zin is BERT gekoppeld aan persoonlijke stemassistenten zoals Google Home. De tool baseert zich niet langer op elk afzonderlijk woord dat de gebruiker invoert, maar kijkt naar de volledige uitdrukking en de context waarin die staat. Dit gebeurt om de resultaten te verfijnen. Het is efficiënter in het afhandelen van complexe zoekopdrachten, ongeacht het gebruikte medium.
Concreter stelt BERT de zoekmachine in staat om:
- Ambiguïteit in uitdrukkingen op te lossen door rekening te houden met de contextuele betekenis van woorden;
- Te begrijpen waarnaar voornaamwoorden verwijzen, vooral in lange alinea’s;
- Homonymieproblemen op te lossen;
- De volgende zin te begrijpen;
- Antwoorden direct in de SERP (Search Engine Result Page) te geven...
Voor andere toepassingen wordt BERT gebruikt bij:
- Vraag-en-antwoord;
- Opinieanalyse;
- Zinsovereenkomst en natural language inference;
- Detectie van beledigende tweets.
Zo zou de impact van Google BERT ongeveer 10% bedragen op de langste, natuurlijk geformuleerde zoekopdrachten.
NLP richt zich op de analyse van de door de gebruiker getypte woorden. Het trefwoord, de voorgangers en de opvolgers worden allemaal onderzocht om de vraag beter te begrijpen. Dit is het analyseprincipe dat "transformers" hanteren.
Het algoritme is bijzonder effectief voor longtail-zoekopdrachten, waar voorzetsels de betekenis beïnvloeden. Anderzijds is de impact op generieke zoekopdrachten kleiner, omdat die al goed worden begrepen door Google. Andere begripsmodellen blijven daarom gewoon werken.
Of de zoekopdracht nu rommelig of precies is geformuleerd, de zoekmachine kan haar nog steeds verwerken. Maar voor meer efficiëntie gebruik je beter meer passende termen.
Context speelt een belangrijke rol in de analyse door BERT. Machinevertaling en taalmodellering zijn geoptimaliseerd. Ook bij het genereren van kwalitatieve teksten zijn aanzienlijke verbeteringen zichtbaar.
Om dit model te gebruiken, importeren we eerst de benodigde libraries en pakketten, zoals hier getoond:

Vervolgens downloaden en extraheren we de Large Movie Review Dataset, en bekijken we de structuur van de map.

Om een gelabelde tf.data.Dataset te maken gebruiken we text_dataset_from_directory zoals hieronder. Daarna maken we een validatieset met een 80:20-splitsing van de trainingsdata via het argument validation_split.

Het is belangrijk om een willekeurige seed op te geven bij het gebruik van validation_split, zodat de validatie- en trainingsets elkaar niet overlappen.
De volgende stap is kiezen welk BERT-model je wilt laden en fine-tunen vanaf TensorFlow Hub; je kunt hub.KerasLayer gebruiken om je fijn-afgestelde model samen te stellen. Daarna proberen we het preprocessingmodel op wat tekst uit en bekijken we de output.

Vervolgens bouw je een eenvoudig model dat bestaat uit het preprocessingmodel, het BERT-model dat je in de vorige stappen hebt gekozen, een dense layer en een dropoutlaag.

Nu kun je controleren of je model werkt met de output van het preprocessingmodel.

De verliesfunctie is hier een noodzakelijke stap; we kiezen voor de verliezenfunctie losses.BinaryCrossentropy omdat we met een binair classificatieprobleem te maken hebben.

Voor fine-tuning gebruiken we dezelfde optimizer waarmee BERT oorspronkelijk is getraind: de "Adaptive Moments" (Adam). Deze optimizer minimaliseert het voorspellingsverlies en voert regularisatie uit via gewichtsverval, ook bekend als AdamW.

Met het classifier_model dat je eerder hebt gemaakt, kun je het model compileren met de verliesfunctie, metric en optimizer.

Houd er rekening mee dat de traintijd van je model korter of langer kan zijn, afhankelijk van de complexiteit van het gekozen BERT-model.

Nu evalueren we hoe ons model heeft gepresteerd door het verlies en de nauwkeurigheid te controleren.

Je kunt het history-object gebruiken als je verlies en nauwkeurigheid voor trainings- en validatiesets wilt plotten:

Al deze stappen worden uitvoerig behandeld in dit notebook. Je kunt de bovenstaande stappen oefenen en de code uitvoeren om de outputs te zien voor elk BERT-model in de lijst.
Conclusie
NLP is al stevig verankerd in de digitale wereld. De toepassingen zullen zich vermenigvuldigen naarmate bedrijven en sectoren de voordelen ontdekken en omarmen. Hoewel menselijke tussenkomst essentieel blijft voor complexere communicatieproblemen, wordt NLP onze dagelijkse bondgenoot: eerst bij het beheren en automatiseren van kleine taken, en naarmate de technologie vordert, bij steeds complexere taken.
Wil je meer leren over hoe NLP werkt en hoe je het gebruikt? Bekijk dan onze cursus Deep Learning for NLP in Python.
Veelgestelde vragen
Hoe verschilt BERT van GPT-modellen?
BERT is ontworpen voor bidirectioneel taalbegrip: het kijkt naar de volledige context van een woord binnen een zin. GPT-modellen (zoals GPT-4) daarentegen zijn autoregressief: ze voorspellen woorden van links naar rechts en zijn geoptimaliseerd voor het genereren van tekst.
Wat zijn enkele veelvoorkomende use-cases van BERT?
BERT wordt veel gebruikt voor:
- Sentimentanalyse
- Named entity recognition (NER)
- Vraag-antwoordsystemen (bijv. in Google Zoeken)
- Tekstsamenvatting
- Vertaling
Heb ik een krachtige GPU nodig om BERT te fine-tunen?
Ja, voor het fijn-afstemmen (fine-tunen) van BERT is doorgaans een GPU nodig vanwege de rekenintensiteit van het trainen van deep learning-modellen. Voorgetrainde versies van BERT kun je echter voor veel NLP-taken gebruiken met minimale rekenkracht.
Wat zijn enkele alternatieven voor BERT?
Er zijn meerdere modellen die voortbouwen op of concurreren met BERT, waaronder:
- ALBERT (Google AI): Een lichtere, efficiëntere versie van BERT
- RoBERTa (Meta): Een geoptimaliseerde versie van BERT met meer trainingsdata
- DistilBERT (Hugging Face): Een kleinere, snellere versie van BERT
- GPT-modellen (OpenAI): Autoregressieve modellen, geoptimaliseerd voor tekstgeneratie
Hoe kan ik BERT gebruiken in mijn eigen NLP-projecten?
Om te beginnen met BERT:
- Gebruik de Transformers-bibliotheek van Hugging Face om voorgetrainde BERT-modellen te laden.
- Fine-tune BERT op je eigen dataset met PyTorch of TensorFlow.
- Experimenteer met Google’s BERT-gebaseerde API’s, zoals modellen op TensorFlow Hub.
Onderwerpen
