Site icon ML2Grow

Een spoedcursus Natural Language Processing (NLP)

NLP

Tekst is de grootste door mensen gegenereerde gegevensbron ter wereld en groeit nog steeds elke dag exponentieel. De tekst die we typen op onze toetsenborden of mobiele apparaten is een belangrijk middel waarmee wij mensen graag onze gedachten communiceren en onze verhalen documenteren. Een belangrijke eigenschap van tekst is doorgaans dat het ongestructureerde gegevens zijn en het is precies deze ‘vrije vorm’ van expressie die ervoor zorgt dat machines virtuele hoofdpijn hebben.

Als gevolg hiervan maken veel bedrijven niet gebruik van het potentieel van hun ongestructureerde tekstgegevens, of het nu gaat om interne rapporten, klantinteracties, servicelogboeken of casusbestanden. Dergelijke gegevens zijn inderdaad doorgaans moeilijker te verwerken, automatiseren en interpreteren voor computersystemen. Laten we u er echter van overtuigen dat dit geen excuus mag zijn voor besluitvormers om kansen te missen om deze gegevens om te zetten in zinvolle informatie en impactvolle acties.

Wat is ‘natural language processing’? (NLP)

NLP staat voor Natural Language Processing en is uitgegroeid tot een volwaardige tak van AI. Kortom, NLP maakt het voor computers mogelijk om menselijke taal te begrijpen, terwijl ze toch het vermogen behouden om gegevens veel sneller te verwerken dan mensen.

Hoewel natuurlijke taalverwerking geen nieuwe wetenschap is, gaat de technologie snel vooruit dankzij een toegenomen belangstelling voor communicatie tussen mens en machine, plus een beschikbaarheid van big data, krachtige computers en verbeterde algoritmen.

Waarom is NLP belangrijk?

Verwerking van grote hoeveelheden tekstuele gegevens

De machines van tegenwoordig kunnen meer op taal gebaseerde gegevens analyseren dan mensen, zonder een pauze en op een consistente, (en goed geconstrueerde) onbevooroordeelde manier. Gezien de duizelingwekkende hoeveelheid ongestructureerde gegevens die elke dag wordt gegenereerd, van medische dossiers tot sociale media, is automatisering van cruciaal belang om tekst- en spraakgegevens efficiënt en volledig te analyseren.

De bekendste voorbeelden zijn de Google Assistant, Siri en Alexa. Mensen gebruiken Google translate elke dag om tekst in allerlei verschillende talen te vertalen. Of de app Grammarly die mensen helpt hun schrijfvaardigheid te verbeteren door automatisch grammatica- en spelfouten op te sporen.

Een andere bekende toepassing van NLP zijn chatbots, waar je een natuurlijker gesprek kunt voeren met een computer om problemen op te lossen. Uw spamfilter maakt ook gebruik van NLP-technologie om ongewenste promotionele e-mails uit uw inbox te houden.

Ze zijn natuurlijk nog verre van perfect, maar de toename in nauwkeurigheid heeft de afgelopen tien jaar enorme sprongen gemaakt.

Stelt u zich de onthullingen voor van alle enorme hoeveelheden ongestructureerde tekst die u in uw organisatie en van uw belanghebbenden verzamelt. Het kan de sleutel zijn tot de beste strategie ooit voor uw organisatie.
– Julie Derumeaux, Data Scientist ML2Grow

Structureren van een zeer ongestructureerde gegevensbron

We zijn ons er misschien niet altijd van bewust, maar wij, als collega’s op de werkvloer, communiceren niet altijd even duidelijk. De manier waarop we met elkaar chatten sinds de opkomst van internet heeft het er niet allemaal gemakkelijker op gemaakt, door alle spreektaal, afkortingen en spelfouten te lezen. Hoe frustrerend het voor ons is om al deze verschillende communicatiestijlen en informatiebronnen bij te houden, stel je voor hoe het zou zijn voor een softwareprogramma.

Maar met behulp van NLP hebben computerprogramma’s enorme sprongen gemaakt om menselijke taal te analyseren en te interpreteren en deze in een geschikte context te plaatsen.

Een revolutionaire aanpak

Om deze processen te automatiseren en nauwkeurige reacties te leveren, heeft u machine learning nodig. De mogelijkheid om computerprogramma’s te instrueren om automatisch van gegevens te leren.

Dit is waar de expertise van ML2Grow om de hoek komt kijken.

Samenvattend: machine learning is het proces waarbij algoritmen worden toegepast die machines leren automatisch te leren en te verbeteren door ervaring zonder expliciet te worden geprogrammeerd.

De eerste stap is om te weten wat de machine moet leren. We creëren een leerkader en bieden relevante en schone gegevens waar de machine van kan leren. Input staat hier centraal. Vuilnis erin, vuilnis eruit.

AI-aangedreven chatbots gebruiken bijvoorbeeld NLP om te interpreteren wat gebruikers zeggen en van plan zijn te doen, en machine learning om automatisch nauwkeurigere reacties te leveren door te leren van honderden of duizenden eerdere interacties.

In tegenstelling tot een geprogrammeerde tool die u overal kunt kopen, kan een machine learning-model nieuwe gevallen generaliseren en behandelen. Als het model struikelt over iets dat het eerder heeft gezien, kan het zijn eerdere kennis gebruiken om de zaak te evalueren.

De grote waarde voor bedrijven ligt hier in het feit dat NLP-functies ongestructureerde tekst in een mum van tijd kunnen omzetten in bruikbare gegevens en inzichten en waarbij het model continu verbetert voor de taak die u heeft ingesteld.

We kunnen elk soort tekst in ons machinemodel stoppen: opmerkingen op sociale media, online beoordelingen, antwoorden op enquêtes, zelfs financiële, medische, juridische en regelgevende documenten.

Hoe werkt het?

In algemene termen splitsen NLP-taken taal op in kortere, elementaire stukken, proberen relaties tussen de stukken te begrijpen en onderzoeken hoe de stukken samenwerken om betekenis te creëren.

Als je naar een stuk tekst kijkt, zijn er altijd drie belangrijke lagen om te analyseren:

Semantische informatie

Semantische informatie is de specifieke betekenis van een individueel woord. Een ‘crash’ kan bijvoorbeeld een auto-ongeluk betekenen, een daling van de aandelenmarkt of het bijwonen van een feest zonder te worden uitgenodigd.

Zinnen en woorden kunnen veel verschillende interpretaties hebben, bijv. “Greg’s ball cleared the fence.” Europeanen zouden denken dat ‘de bal’ naar een voetbal verwijst, terwijl de meeste Amerikanen in plaats daarvan aan een honkbal denken. Zonder NLP-systemen kan een computer de context niet verwerken.

Syntaxisinformatie

De tweede sleutelcomponent van tekst is een zin of zinsbouw, ook wel syntaxisinformatie genoemd. In NLP wordt syntactische analyse gebruikt om te beoordelen hoe de natuurlijke taal overeenkomt met de grammaticale regels.

Neem bijvoorbeeld de zin: “Although they were tired after the marathon, the cousins decided to go to a celebration at the park.” Wie zijn ‘zij’, de neven of iemand anders?

Contextinformatie

En eindelijk moeten we de context van een woord of zin begrijpen. Wat is het concept dat wordt besproken?  “It was an idyllic day to walk in the park.” Wat is de betekenis van ‘idyllisch’ en waarom was het perfect om in het park te wandelen? Waarschijnlijk omdat het warm en zonnig was.

De analyses zijn essentieel om de grammaticale structuur van een tekst te begrijpen en om vast te stellen hoe woorden zich in een bepaalde context tot elkaar verhouden. Maar het omzetten van tekst in iets dat machines kunnen verwerken, is ingewikkeld.

Kort overzicht van NLP-taken

Elementaire NLP-voorbewerkings- en leertaken omvatten tokenisatie en parsing, lemmatisering / staming, tagging van deel-van-spraak, taaldetectie en identificatie van semantische relaties. Als je ooit op de basisschool zinnen in diagrammen hebt onderverdeeld, heb je deze taken eerder handmatig gedaan.

Er zijn verschillende technieken die kunnen worden gebruikt om een dataset ‘op te schonen’ en deze overzichtelijker te maken.

Part-of-speech tagging

Is het proces van het bepalen van de woordsoort (part-of-speech) van een bepaald woord of stuk tekst op basis van het gebruik en de context. Het beschrijft de karakteristieke structuur van lexicale termen binnen een zin of tekst, daarom kunnen we ze gebruiken om aannames te doen over de semantiek. Andere toepassingen van POS-tagging zijn onder meer:

Genoemd entiteitsherkenning

Identificeert woorden of woordgroepen als nuttige entiteiten. NEM identificeert bijvoorbeeld ‘Gent’ als locatie en ‘Greg’ als de naam van een man.

Co-referentie resolutie

Is de taak om te identificeren of en wanneer twee woorden naar dezelfde entiteit verwijzen. Bijvoorbeeld ‘hij’ = ‘Greg’.

Spraakherkenning

Is de taak om spraakgegevens betrouwbaar om te zetten in tekstgegevens. Spraakherkenning is vereist voor elke toepassing die spraakopdrachten volgt of gesproken vragen beantwoordt.

Ondubbelzinnig maken van woordverstand

Is de selectie van de betekenis van een woord met meerdere betekenissen door middel van een proces van semantische analyse dat bepaalt welk woord het meest zinvol is in de gegeven context.

Tokenisatie

Wanneer een document in zinnen is opgesplitst, is het gemakkelijker om ze een voor een te verwerken. De volgende stap is om de zin in afzonderlijke woorden of tokens te scheiden. Dit is waarom het tokenisatie wordt genoemd. Het zou er ongeveer zo uitzien:

Het verwijderen van stopwoordjes

De volgende stap zou het verwijderen van veelgebruikte woorden kunnen zijn die weinig of geen unieke informatie toevoegen, zoals voorzetsels en lidwoorden in het voorbeeld hierboven (“over”, “the”).

Stemming

Verwijst naar het proces waarbij het einde of het begin van woorden wordt gesneden met de bedoeling aan- en achtervoegsels te verwijderen. Het probleem is dat affixen nieuwe vormen van hetzelfde woord kunnen creëren of uitbreiden. “Greg is helpful to bring the ball back to the playing ground”. Neem bijvoorbeeld “helpful”, “ful” is het achtervoegsel dat hier aan het einde van het woord is toegevoegd.

We laten de computer het stuk hakken naar het woord “help”. We gebruiken dit om spelfouten van tokens te corrigeren. Dit wordt niet gebruikt als grammatica-oefening voor de computer, maar om de prestaties van ons NLP-model te verbeteren.

Lemmatisering

Anders dan bij stamvorming, hangt lemmatisering af van het correct identificeren van het bedoelde woorddeel en de betekenis van een woord in een zin.

De Engelse woorden “shooting”, “shoots”, ”shot”, maken bijvoorbeeld allemaal deel uit van hetzelfde werkwoord. “Greg is shooting the ball” of “Greg shot the ball” betekent voor ons hetzelfde, maar in een andere vervoeging. Voor een computer is het handig om de basisvorm van elk woord te kennen, zodat je weet dat beide zinnen over hetzelfde concept spreken. De basisvorm van het werkwoord is dus sShoot”.

Lemmatisering is het uitzoeken van de meest basale vorm of lemma van elk woord in de zin. In ons voorbeeld vindt het de wortelvorm van ons werkwoord “shooting”.

Voorbeeld in het Engels van lemmatisering (zorg) versus stemming (auto)

NLP-bibliotheken

Natuurlijke taalverwerking is een van de meest complexe velden binnen artificiële intelligentie. Maar het bovenstaande handmatig doen zou absoluut onmogelijk zijn. Er zijn veel NLP-bibliotheken beschikbaar die al dat harde werk doen, zodat onze machine learning experten zich kunnen concentreren op het perfect laten werken van de modellen in plaats van tijd te verspillen aan sentimentanalyse of trefwoordextractie.

De volgende keer zullen we enkele van de meest populaire open-source NLP-bibliotheken bespreken die ons team gebruikt en waarom een op maat gemaakte oplossing een alternatief kan zijn voor standaardoplossingen.

Exit mobile version