Wat is natuurlijke taalverwerking (NLP)?

Caroline Eppright | Content Strategist | 25 maart 2021

Natuurlijke taalverwerking (NLP)

Natuurlijke taalverwerking (NLP) is een tak van de kunstmatige intelligentie (AI) die computers in staat stelt menselijke taal te begrijpen, te genereren en te manipuleren. Natuurlijke taalverwerking kan de gegevens analyseren met natuurlijke schriftelijke of mondelinge taal. Dit wordt ook wel "taal in" (language in) genoemd. De meeste consumenten hebben waarschijnlijk wel eens gecommuniceerd met NLP zonder het te realiseren. NLP is bijvoorbeeld de basistechnologie achter virtuele assistenten, zoals de Oracle Digital Assistant (ODA), Siri, Cortana of Alexa. Wanneer we vragen stellen aan deze virtuele assistenten, stelt NLP hen in staat niet alleen de vraag van de gebruiker te begrijpen, maar ook in natuurlijke taal te reageren. NLP is zowel van toepassing op geschreven tekst als op spraak en kan worden toegepast op alle menselijke talen. Andere voorbeelden van hulpmiddelen die worden ondersteund door NLP zijn zoeken op het web, spam filteren, tekst of spraak automatisch vertalen, documenten samenvatten, stemmingsanalyses uitvoeren en grammatica en spelling checken. Sommige e-mailprogramma's kunnen bijvoorbeeld automatisch een geschikt antwoord op een bericht voorstellen op basis van de inhoud van het bericht. Deze programma's gebruiken NLP om uw bericht te lezen, te analyseren en erop te reageren.

Er zijn ook andere termen die ongeveer synoniem zijn aan NLP. Begrip van natuurlijke taal (NLU) en natuurlijke taalgeneratie (NLG) hebben betrekking op het gebruik van computers om menselijke taal respectievelijk te begrijpen en te produceren. NLG kan een mondelinge beschrijving geven van wat er is gebeurd. Dit wordt ook wel "taal uit" genoemd door zinvolle informatie in tekst samen te vatten met behulp van een concept dat bekend staat als "grafische grammatica".

In de praktijk wordt NLU gebruikt terwijl NLP wordt bedoeld. Doordat computers de structuur en betekenis van alle menselijke talen begrijpen, kunnen ontwikkelaars en gebruikers communiceren met computers door natuurlijke zinnen en communicatie te gebruiken. Computationele taalkunde (CL) is het wetenschappelijk gebied dat computationele aspecten van menselijke taal bestudeert, terwijl NLP de technische discipline is die betrekking heeft op het ontwikkelen van computationele artefacten die menselijke taal begrijpen, genereren of manipuleren.

Onderzoek naar NLP begon kort na de uitvinding van digitale computers in de jaren 1950. NLP put uit zowel taalkunde als AI. De belangrijkste ontwikkelingen van de afgelopen jaren zijn echter mogelijk gemaakt door machine learning, een tak van AI die systemen ontwikkelt die leren van en generaliseren op basis van gegevens. Deep learning is een soortmachine learning die zeer complexe patronen kan leren uit grote gegevenssets. Dit betekent dat het ideaal is om de complexiteit te leren van natuurlijke taal in gegevenssets die afkomstig zijn van het web.

Toepassingen van natuurlijke taalverwerking

Routinetaken automatiseren: chatbots die door NLP worden ondersteund, kunnen een groot aantal routinetaken verwerken die vandaag de dag door mensen worden uitgevoerd, waardoor werknemers meer tijd overhouden voor meer uitdagende en interessante taken. Chatbots en digitale assistenten kunnen bijvoorbeeld een groot aantal verschillende gebruikersaanvragen herkennen, deze matchen met de juiste invoer in een bedrijfsdatabase en een geschikt antwoord op de gebruiker formuleren.

Zoekprestaties verbeteren: NLP kan het zoeken op trefwoord verbeteren voor het ophalen van documenten en beantwoorden van veelgestelde vragen door ondubbelzinnige woordkeuzes te kiezen op basis van context ('drager' betekent bijvoorbeeld iets anders in biomedische of in industriële context), door synoniemen te matchen (bijvoorbeeld documenten ophalen waarin 'auto' wordt genoemd bij een zoekopdracht naar 'automobiel') en door rekening te houden met morfologische variatie (wat belangrijk is voor niet-Engelse zoekopdrachten). Effectieve academische zoeksystemen die door NLP worden gestuurd kunnen toegang tot relevant geavanceerd onderzoek voor artsen, advocaten en andere specialisten drastisch verbeteren.

Zoekmachineoptimalisatie: NLP is een geweldig hulpmiddel om uw bedrijf hoger te laten scoren in online zoekresultaten door zoekopdrachten te analyseren om uw inhoud te optimaliseren. Zoekmachines gebruiken NLP om hun resultaten te rangschikken. Als u weet hoe u deze technieken effectief kunt gebruiken, wordt het makkelijker om boven uw concurrenten uit te komen in de zoekresultaten. Dit zal leiden tot een grotere zichtbaarheid voor uw bedrijf.

Grote documentverzamelingen analyseren en organiseren: NLP-technieken zoals het bundelen van documenten en onderwerpmodellering vereenvoudigen de taak om inzicht te krijgen in de diversiteit van de inhoud van grote documentverzamelingen, zoals bedrijfsrapporten, nieuwsartikelen of wetenschappelijke documenten. Deze technieken worden meestal voor juridische doeleinden gebruikt.

Social media-analyses: Door middel van NP kunnen consumentenbeoordelingen en social media-opmerkingen geanalyseerd worden om een beter beeld te krijgen van de enorme hoeveelheden informatie. Stemmingsanalyses identificeren positieve en negatieve opmerkingen in een stroom van social media-opmerkingen en bieden een directe meting van het klantsentiment in realtime. Dit kan in de toekomst enorme voordelen opleveren, zoals een grotere klanttevredenheid en omzet.

Marktinzichten: Als NLP de taal van de klanten van uw bedrijf analyseert, krijgt u een beter inzicht in wat ze willen en hoe u met ze kunt communiceren. Aspectgeoriënteerde stemmingsanalyse detecteert de stemming die is gekoppeld aan specifieke aspecten of producten op social media (bijvoorbeeld: 'het toetsenbord is goed, maar het scherm is te donker'). Hierdoor wordt direct bruikbare informatie gegeven voor productontwerp en -marketing.

Inhoud modereren: Als uw bedrijf grote hoeveelheden opmerkingen van klanten of gebruikers werft, kunt u met NLP modereren wat er wordt gezegd om kwaliteit en beleefdheid te behouden door de woorden, toon en intentie van opmerkingen te analyseren.

Branches die natuurlijke taalverwerking gebruiken

NLP vereenvoudigt en automatiseert een breed scala aan bedrijfsprocessen, voornamelijk processen met grote hoeveelheden ongestructureerde tekst zoals e-mails, enquêtes, social-mediagesprekken en meer. Met NLP kunnen bedrijven hun gegevens beter analyseren om de juiste beslissingen te nemen. Hier volgen slechts enkele voorbeelden van praktische NLP-toepassingen:

  • Gezondheidszorg: Naarmate gezondheidszorgsystemen over de hele wereld overstappen op elektronische patiëntendossiers, krijgen ze te maken met grote hoeveelheden ongestructureerde gegevens. NLP kan worden gebruikt om nieuwe inzichten in medische dossiers te verkrijgen en te analyseren.
  • Juridisch: Advocaten moeten vaak uren besteden aan het onderzoeken van grote verzamelingen documenten en het zoeken naar relevant materiaal voor een specifieke zaak om een zaak voor te bereiden. NLP-technologie kan het juridisch onderzoeksproces automatiseren, waar tijd bespaart en menselijke fouten voorkomt bij het doorzoeken van grote hoeveelheden documenten.
  • Financiën: In de financiële wereld gaat alles razendsnel en elk concurrentievoordeel is belangrijk. In de financiële sector gebruiken handelaren NLP-technologie om automatisch informatie in bedrijfsdocumenten en nieuwsberichten te doorzoeken om informatie in te winnen die relevant is voor hun portefeuilles en handelsbeslissingen.
  • Klantenservice: Veel grote bedrijven gebruiken virtuele assistenten of chatbots om basale vragen van klanten en informatieverzoeken (zoals veelgestelde vragen) te helpen beantwoorden en zo nodig complexe vragen naar mensen door te verwijzen.
  • Verzekering: Grote verzekeringsmaatschappijen gebruiken NLP om documenten en rapporten met betrekking tot claims te doorzoeken om de manier waarop zaken worden afgehandeld te stroomlijnen.

Overzicht NLP-technologie

Machine learning-modellen voor NLP: Zoals eerder gezegd is het moderne NLP sterk afhankelijk van de aanpak van AI, ook wel machine learning genoemd. Met machine learning worden voorspellingen gedaan door voorbeelden in een gegevensset te generaliseren. Deze gegevensset wordt trainingsgegevens genoemd. Machine learning-algoritmen trainen op deze trainingsgegevens om een machine learning-model te produceren waarmee een doeltaak wordt volbracht.

Trainingsgegevens voor stemmingsanalyses bestaan bijvoorbeeld uit zinnen samen met hun stemming (een positieve, negatieve of neutrale stemming bijvoorbeeld). Een algoritme voor machine learning leest deze gegevensset en produceert een model dat zinnen als input neemt en hun stemmingen weergeeft. Dit type model, dat zinnen of documenten invoert en een label voor die invoer teruggeeft, wordt een documentclassificatiemodel genoemd. Documentclassificaties kunnen ook worden gebruikt om documenten te classificeren op de onderwerpen die genoemd worden (bijvoorbeeld sport, financiën of politiek).

Een ander type model wordt gebruikt om entiteiten in documenten te herkennen en te classificeren. Het model voorspelt voor ieder woord in een document in hoeverre dat woord deel uitmaakt van een entiteitvermelding en zo ja, welk type entiteit erbij hoort. Bijvoorbeeld, in: "XYZ Corp-aandelen gisteren verhandeld voor $28" is "XYZ Corp" een bedrijfsentiteit, "$28" een valutabedrag en "gisteren" een datum. De trainingsgegevens voor entiteitherkenning zijn een verzameling teksten, waarbij elk woord gelabeld is met het soorten entiteit waarnaar het woord verwijst. Dit soort model, dat voor elk woord in de invoer een label produceert, wordt een sequentie-etiketteringsmodel genoemd.

Sequentie-naar-sequentiemodellen zijn een zeer recente toevoeging aan de familie van modellen die in NLP worden gebruikt. Een sequentie-naar-sequentiemodel (of seq2seq) neemt een volledige zin of document als invoer (zoals in een documentclassificatie), maar produceert een zin of een andere sequentie (bijvoorbeeld een computerprogramma) als uitvoer. (Een documentclassificatie produceert slechts één symbool als uitvoer). Voorbeelden van toepassingen van seq2seq-modellen zijn automatische vertaling, waarbij bijvoorbeeld een Engelse zin als invoer wordt genomen en de Franse zin als uitvoer wordt teruggegeven; samenvatten van documenten (waarbij de uitvoer een samenvatting is van de invoer); en semantisch parseren (waarbij de invoer een vraag of verzoek in het Engels is, en de uitvoer een computerprogramma dat dat verzoek uitvoert).

Deep learning, vooraf getrainde modellen en transfer learning: Deep learning is het meestgebruikte soort machine learning in NLP. In de jaren tachtig ontwikkelden onderzoekers neurale netwerken, waarin een groot aantal primitieve modellen voor machine learning werden gecombineerd tot één enkel netwerk: naar analogie van de hersenen worden de eenvoudige modellen voor machine learning ook wel "neuronen" genoemd. Deze neuronen zijn gerangschikt in lagen, en een diep neuraal netwerk is er een met vele lagen. Deep learning is machine learning waarbij gebruikt wordt gemaakt van diepe neurale netwerkmodellen.

Vanwege hun complexiteit zijn er doorgaans veel gegevens nodig om een diep neuraal netwerk te trainen, en de verwerking ervan vergt veel computerkracht en tijd. Moderne NLP-modellen met diepe neurale netwerken worden getraind op basis van een groot aantal bronnen, zoals Wikipedia en gegevens die van internet komen. De trainingsgegevens kunnen 10 GB of groter zijn, en het kan een week of langer duren om het diepe neurale netwerk te trainen op een krachtige cluster. (Onderzoekers hebben ontdekt dat het trainen van nog diepere modellen op basis van nog grotere gegevenssets nog betere prestaties oplevert, dus momenteel is er een wedloop om steeds grotere modellen te trainen op basis van steeds grotere gegevenssets).

De grote behoefte aan gegevens en computerkracht van diepe neurale netwerken lijkt het nut ervan ernstig te beperken. Met transfer learning kan een getraind diep neuraal netwerk echter verder worden getraind om een nieuwe taak uit te voeren met veel minder trainingsgegevens en computerkracht. De eenvoudigste vorm van transfer learning wordt "fine tuning" genoemd. Het bestaat uit het eerst trainen van het model op een grote generieke gegevensset (bijvoorbeeld Wikipedia) en dan verder trainen ("fine-tunen") van het model op een veel kleinere taakspecifieke gegevensset die gelabeld is met de eigenlijke doeltaak. Het is misschien verrassend dat de gegevenssets voor fine-tuning uiterst klein kunnen zijn en misschien slechts honderden of zelfs tientallen trainingsvoorbeelden bevatten, en dat voor fine-tuningtraining slechts enkele minuten nodig zijn op een enkele CPU. Transfer learning maakt het eenvoudig om deep learning-modellen in te zetten in de hele onderneming.

Er is nu een heel ecosysteem van aanbieders die vooraf getrainde deep learning-modellen leveren die zijn getraind op verschillende combinaties van talen, gegevenssets en pretrainingstaken. Deze vooraf getrainde modellen kunnen worden gedownload en gefine-tuned voor een groot aantal verschillende doeltaken.

Ontdek hoe het opzetten van een AI-expertisecentrum (CoE) uw succes kan vergroten met NLP-technologieën. Ons eBook biedt tips voor het bouwen van een CoE en effectief gebruik van geavanceerde machine learning-modellen.

Voorbeeld van NLP-voorverwerkingstechnieken

Tokenisatie: bij tokenisatie wordt onbewerkte tekst (bijvoorbeeld een zin of een document) opgesplitst in een opeenvolging van tokens, zoals woorden of stukjes subwoord. Tokenisatie is vaak de eerste stap in een NLP-verwerkingspijplijn. Tokens zijn vaak terugkerende reeksen tekst die bij latere verwerking als atomaire eenheden worden behandeld. Het kan gaan om woorden, om subwoordeenheden die morfemen worden genoemd (bijvoorbeeld voorvoegsels zoals "un-" of achtervoegsels zoals "-ing" in het Engels), of zelfs om afzonderlijke tekens.

Modellen met veel woorden: bij modellen met veel woorden worden documenten behandeld als niet-geordende verzamelingen tokens of woorden (als een set, behalve dat hiermee het aantal keren wordt bijgehouden dat elk element wordt weergegeven). Omdat ze de woordvolgorde volledig negeren, zullen modellen met veel woorden een zin zoals "hond bijt man" verwarren met "man bijt hond". Modellen met veel woorden worden echter vaak gebruikt om redenen van efficiëntie voor grote taken voor het ophalen van informatie, zoals zoekmachines. ze kunnen met langere documenten bijna state-of-the-art resultaten produceren.

Stopwoordverwijdering: een 'stopwoord' is een token die wordt genegeerd bij latere verwerking. Het zijn meestal korte, frequente woorden zoals "de", "het" of "een". Modellen met veel woorden en zoekmachines negeren vaak stopwoorden om de verwerkingstijd en opslag in de database te verminderen. Diepe neurale netwerken houden doorgaans wel rekening met woordvolgorde (dat wil zeggen, het zijn geen modellen met veel woorden) en doen niet aan stopwoordverwijdering omdat stopwoorden subtiele verschillen in betekenis kunnen overbrengen (bijvoorbeeld, "het pakket was kwijt" en "een pakket is kwijt" betekenen niet hetzelfde, ook al zijn ze hetzelfde na stopwoordverwijdering).

Stammen en lemmatiseren: morfemen zijn de kleinste betekenisdragende elementen van taal. Morfemen zijn meestal kleiner dan woorden. In het Engels bestaat "revisited" bijvoorbeeld uit het voorvoegsel "re-", de stam "visit," en het verleden tijd-achtervoegsel "-ed". Bij stammen en lemmatiseren worden woorden gekoppeld aan hun stamvormen (bijvoorbeeld: "revisit" + verleden tijd). Stammen en lemmatiseren zijn cruciale stappen in pre-deep learning-modellen, maar deep learning-modellen leren deze regelmatigheden doorgaans uit hun trainingsgegevens, en hebben dus geen expliciete stam- of lemmatiseringstappen nodig.

Part-of-speech-tagging en syntactisch parsen: Part-of-speech-tagging (PoS) is het proces waarbij elk woord wordt gelabeld met de woordsoort (bijvoorbeeld zelfstandig naamwoord, werkwoord, bijvoeglijk naamwoord, etc.). Een syntactische parser identificeert hoe woorden worden gecombineerd om zinnen, bijzinnen en hele zinnen te vormen. PoS-tagging is een sequentie-labelingtaak, syntactisch parsen is een uitgebreide sequentie-labelingtaak, en diepe neurale netwerken zijn de state-of-the-art technologie voor zowel PoS-tagging en syntactisch parsen. Voor deep learning waren PoS-tagging en syntactisch parsen essentiële stappen in het zinsbegrip. Moderne deep learning NLP-modellen hebben echter over het algemeen slechts marginaal (of helemaal geen) baat bij PoS- of syntaxisinformatie. Hierdoor wordt noch PoS-tagging, noch syntactisch parsen op grote schaal worden gebruikt in deep learning NLP.

NLP-programmeertalen

Python:

De NLP-bibliotheken en -toolkits zijn beschikbaar in Python, en daarom worden de meeste NLP-projecten in Python ontwikkeld. De interactieve ontwikkelomgeving van Python maakt het eenvoudig om nieuwe code te ontwikkelen en te testen.

Java en C++:

Voor de verwerking van grote hoeveelheden gegevens wordt vaak de voorkeur gegeven aan C++ en Java, omdat deze efficiëntere codering kunnen ondersteunen.

NLP-bibliotheken en ontwikkelomgevingen

Hier zijn een aantal voorbeelden van populaire NLP-bibliotheken.

TensorFlow en PyTorch: dit zijn de twee populairste toolkits voor deep learning. Zij zijn gratis beschikbaar voor onderzoek en commerciële doeleinden. Hoewel zij meerdere talen ondersteunen, is Python hun hoofdtaal. Ze worden geleverd met grote bibliotheken van vooraf gebouwde componenten, dus zelfs zeer geavanceerde deep learning NLP-modellen vereisen vaak alleen het samenvoegen van deze componenten. Ze bieden ook ondersteuning voor krachtige computerinfrastructuur, zoals clusters van machines met GPU-versnellers (graphical processor unit). Ze hebben uitstekende documentatie en tutorials.

AllenNLP: dit is een bibliotheek met NLP-componenten op hoog niveau (bijvoorbeeld eenvoudige chatbots) die zijn geïmplementeerd in PyTorch en Python. De documentatie is uitstekend.

HuggingFace: dit bedrijf distribueert honderden verschillende vooraf getrainde Deep Learning NLP-modellen en een plug-and-play softwaretoolkit in TensorFlow en PyTorch waarmee ontwikkelaars snel kunnen bepalen hoe goed verschillende vooraf getrainde modellen presteren bij hun specifieke taken.

Spark NLP: Spark NLP is een open-sourcetekstverwerkingsbibliotheek voor geavanceerde NLP voor de programmeertalen Python, Java en Scala. Het doel is om een applicatie-programmeerinterface (API) te bieden voor pijplijnen voor de verwerking van natuurlijke taal. Het biedt vooraf getrainde neurale netwerkmodellen, pijplijnen en insluitingen, evenals ondersteuning voor het trainen van aangepaste modellen.

SpaCy NLP: SpaCy is een gratis opensourcebibliotheek voor geavanceerde NLP in Python. Het is speciaal ontworpen om applicaties te bouwen die grote hoeveelheden tekst kunnen verwerken en begrijpen. SpaCy staat bekend als zeer intuïtief en kan veel van de taken aan die nodig zijn bij veelvoorkomende NLP-projecten.

Kortom, natuurlijke taalverwerking is een interessant gebied in de ontwikkeling van kunstmatige intelligentie dat de basis vormt voor een breed scala aan nieuwe producten, zoals zoekmachines, chatbots, aanbevelingssystemen en spraak-naar-tekstsystemen. Naarmate menselijke interfaces met computers steeds minder gebruik maken van knoppen, formulieren en domeinspecifieke talen, zal de vraag naar groei op het gebied van natuurlijke taalverwerking blijven toenemen. Daarom zet Oracle Cloud Infrastructure zich volledig in voor het leveren van lokale prestaties met onze voor geoptimaliseerde compute-vormen en -tools voor NLP. Oracle Cloud Infrastructure biedt een reeks GPU-vormen die u binnen enkele minuten kunt implementeren om aan de slag te gaan met NLP.