Natural Language Processing: wanneer computers met mensen communiceren
Door de snelle interactie met je digitale assistent, en de vlotte uitspraak van Alexa of Cortana, zou je soms al eens vergeten dat die twee ‘maar’ machines zijn. Hoe kunnen we dan zo vlot met hen communiceren?
Onze interactie met digitale assistenten steunt grotendeels op Natuurlijke Taalverwerking. Natural Language Processing of NLP is een tak van kunstmatige intelligentie die ervoor zorgt dat computers menselijke taal kunnen interpreteren en begrijpen.
NLP haalt haar mosterd bij verschillende disciplines zoals computerwetenschappen en computerlinguïstiek, en is als het ware een halte tussen menselijke communicatie en het begrijpend vermogen van een computer.
Maar NLP heeft niet enkel digitale assistenten voortgebracht. Heb je ooit al eens naar de mailtjes in je spamfolder gekeken? Dan is het je daarbij waarschijnlijk opgevallen dat er bepaalde gelijkenissen opduiken in de hoofding van al die mailtjes.
Dat heeft te maken met Bayesian spam filtering, een statistische NLP-techniek die woorden in spammail aftoetst aan normale mailtjes om zo het kaf van het koren te scheiden. Je hebt trouwens vast wel al eens iets opgezocht op een website door gebruik te maken van de ingebouwde zoekbalk of door te zoeken op categorietags. Ook die zoekmethode steunt op NLP. Maar ook je Slackbot of andere chatbots worden ondersteund door Natuurlijke Taalverwerking.
Hoewel Natural Language Processing geen nieuwe technologie is, is het onderzoek ernaar de laatste jaren sterk in volume toegenomen door de groeiende interesse naar de interactie tussen mensen en computers, de toegankelijkheid van big data, en door de grotere rekencapaciteit.
Het mag duidelijk zijn dat mensen en computers op een fundamenteel andere wijze taal produceren. Zo rijgen mensen fonemen aan elkaar tot lettergrepen, die weer tot woorden worden gevormd.
Met die woorden vormen we weer zinnen enzoverder. Op die manier komen talen zoals het Spaans, Russisch of Swahili tot stand. Een computer communiceert echter met nullen en enen. Die vormen allemaal samen dan een programmeertaal zoals JAVA of HTML.
Het belang van context
Menselijke taal is erg complex en divers. Zo zijn er niet alleen meer dan zesduizend (!) talen op de wereld, maar heeft elke taal ook nog eens verschillende subtalen zoals jargon en slang. Wanneer we schrijven, maken we af en toe al eens spelfouten en nemen we ook niet altijd de juiste interpunctie in acht.
Wanneer we spreken, doorspekt ieder van ons (behalve dan misschien Jan Becaus, die zijn Waaslandse afkomst steeds goed wist te verbergen) zijn taalgebruik wel met een regionaal accentje. Die complexiteit van de menselijke taal maakt het er voor computers beslist niet makkelijker op ons te begrijpen.
Het grootste probleem met menselijke taal is misschien nog wel dat die erg afhankelijk is van de context. Wanneer jij aan je Google Assistent vertelt dat het “wel wat warm is” in je woonkamer, dan wil je dat uiteraard niet zomaar meedelen, maar is het je bedoeling dat je digitale assistent even je thermostaat voor je regelt.
Bij die specifieke interactie schakelde je digitale assistent eerst in wanneer het je stem hoorde. Onmiddellijk daarna herkende je Google Assistent de onuitgesproken intentie van je uitspraak, waarop je digitale assistent bliksemsnel reageert door de thermostaat aan te passen en je daarvan op de hoogte te brengen in een mooi geformuleerde volzin in je eigen moedertaal. Die interactie werd in eerste instantie mogelijk gemaakt door NLP, maar ook door andere elementen van kunstmatige intelligentie zoals machine learning en deep learning.
De abstractie van menselijke taal
Voor het nabootsen van menselijke taal wordt veelal gebruik gemaakt van gesuperviseerd en niet-gesuperviseerd leren, met name deep learning. Wanneer je met taal werkt, is er echter ook nood aan een meer syntactisch en semantisch inzicht dat niet noodzakelijk vervat zich in machine learning-benaderingen. NLP is een belangrijke subdiscipline van AI omdat het helpt een antwoord te bieden op de typische menselijke taalambiguïteit.
Want eenduidig is onze taal allesbehalve; als je zegt dat je naar de bank gaat, kan dat in principe ook betekenen dat je naar de ‘zitbank’ gaat. Aangezien het woord “bank” in die context echter meestal een financiële instelling aanduidt, hebben we geleerd om een dergelijke zin meteen ook als dusdanig te interpreteren. Een computerbrein moet dat uiteraard ook aanleren, en schakelt daarvoor de hulp in van Natural Language Processing.
Kort gezegd verdeelt NLP natuurlijke taal onder in haar meest elementaire deeltjes en probeert het wijs te worden uit de onderlinge zinsverbanden om zo een betekenis te filteren uit de zin of het taalgeheel. Rudimentaire NLP-taken zijn onder andere het ontleden van taal en het identificeren van semantische relaties.
In feite zijn dat allemaal taken die je eerder al in de middelbare school in de les Nederlands of de les Latijn manueel hebt moeten uitvoeren. Ook jij bent dus al eerder in contact gekomen met NLP-technieken, zelfs al ben je geen datawetenschapper.
NLP wordt meestal onderverdeeld in Natural Language Generation (NLG) oftewel de productie van natuurlijke taal, een verwijzing naar het vermogen van een computer om zelf zo natuurlijk mogelijk klinkende zinnen te genereren. Aan de andere kant van het spectrum vinden we Natural Language Understanding (NLU), oftewel de mogelijkheid van een computer om zich toch nog een weg te banen in slang, verkeerde uitspraak, onjuiste spelling, en allerlei andere taalvarianten.
Toepassingen bedrijfswereld
De bedrijfswereld maakt ondertussen gretig gebruik van NLP. Als je er graag nog even tussenuit wil, en je wil weten hoeveel vakantiedagen je nog tegoed hebt, hoef je daarvoor niet langer naar Human Resources te bellen. Nu kan je tijd besparen door Talla te raadplegen, een chatbot die alle beleidsrichtlijnen van je bedrijf doorzoekt.
Wanneer je in een telefoongesprek bent, en je plots de laatste kwartaalcijfers nodig hebt, moet je nu ook niet meer in blinde paniek door een stapel papier maaien. Vermeld het gewoon even in je gesprek en SecondMind, een start-up gespecialiseerd in audiozoekopdrachten toont je in no time de cijfers op je scherm. Oef.
NLP zorgt er ook voor dat recruiters zich sneller een weg kunnen banen door een stapeltje CV’s, waardoor het wervingsproces ook gestroomlijnder kan verlopen. Daarnaast weert NLP spam uit onze inbox, en kunnen bedrijven door middel van gevoelsanalyse, een specifieke tak van NLP, snel oppikken of tweets over hen overwegend positief of negatief zijn. Op die manier kan een bedrijf sneller inspelen op de klachten van zijn consumenten, en indien nodig zelfs de markstrategie bijsturen.
AI is niet meer weg te denken uit onze maatschappij, dus leren we er maar beter mee communiceren. Hoe meer NLP evolueert, des te vlotter onze interacties met chatbots en digitale assistenten zullen verlopen. Het zal dus niet lang meer duren voor mijn Slackbot werkelijk alles begrijpt wat ik hem/haar (?) vraag. Soon.