Module 2B - Tekstanalyse Flashcards
Wat is NLP?
- Natural Language Processing (NLP): domein dat zich toelegt op de ontwikkeling van de vaardigheid van computers om natuurlijke taal te begrijpen.
- NLP is een domein dat zich situeert op het snijvlak van linguïstiek en computerwetenschappen. NLP combineert statistische technieken met machine learning technieken, waardoor het bijvoorbeeld mogelijk wordt om kernwoorden uit een tekst te halen.
- Niet alleen het begrijpen van de taal; ook het produceren van menselijke taal (tekst- of sptraakgeneratie) is een belangrijk onderdeel.
Uiteindelijke doel van NLP?
- Natural Language Processing zorgt ervoor dat de kloof tussen de mens en digitale data kleiner wordt door gebruik te maken van één gemeenschappelijke taal. Het uiteindelijke doel van NLP is het ontwerpen en bouwen van systemen die de menselijke taal begrijpen én produceren, zodat we op termijn geen programmeertalen zoals Java en Python meer nodig zullen hebben.
Is dit uiteindelijke doel van NLP al bereikt?
- Nee, De ontwikkeling én toepassing van NLP is namelijk al een hele uitdaging op zich. Computers vereisen – traditioneel gezien – van mensen dat zij tegen computers praten in precieze programmeertaal. Daarnaast moet de taal absoluut niet dubbelzinnig en heel gestructureerd van aard zijn.
- Dit is vrijwel onmogelijk, want menselijke taal is nooit precies. Je hebt altijd te maken met aspecten zoals slang, dialecten en sociale context.
Tekstanalyse
- Tekstanalyse (text analytics of text mining) is de geautomatiseerde analyse van tekstuele data om daaruit informatie te halen, of: het automatisch herkennen van informatie in tekst geschreven in natuurlijke taalTekstgeneratie is het automatisch genereren van tekst
Tekstgeneratie
Tekstgeneratie is het automatisch genereren van tekst
Informatiefusie
- Informatiefusie is het automatisch herkennen van informatie in tekst in combinatie met andere brontypes (bijv. beeld, links in sociaal netwerk) waarbij de informatie wordt geïntegreerd.
Eerste systemen text mining
- De eerste systemen die werden ontwikkeld voor het ontsluiten, classificeren en begrijpen van grote tekstcorpora (text mining) waren regelgebaseerd.
- Regels en patronen werden handmatig gecodeerd door kennisingenieurs. Bv. “if ball, then class sports”.
- Probleem: bijzonder tijdrovend en niet handig in bv. het recht waarbij informatie regelmatig wijzigt: de patronen gaan telkens handmatig moeten worden aangepast.
Hoe wordt machinaal leren gebruikt bij NLP?
- Technieken van machinaal leren: steeds populairder, veel adaptiever en flexibeler. Voornamelijk over gesuperviseerd leren, waarbij de machine getraind wordt met geannoteerde voorbeelden.
- Voorbeeld:
- Systeem leren om automatisch een label (klasse of onderwerp) toekennen aan teksten → daartoe de tekst beschrijven met kenmerken (features) en deze kenmerken extraheren uit de tekst.
- De machine leert automatisch de correlatie tussen de kenmerken en het label/de klasse met behulp van voorbeelden van teksten waaraan een mens dit label heeft toegekend.
Manuele feature engineering
- Technieken van gesuperviseerd leren: voor het classificeren van teksten is een menselijk denkproces vereist over welke kenmerken van het document relevant kunnen zijn, maar daarna kan de machine de waarde of het gewicht van deze features automatisch leren op basis van de gegeven voorbeelden.
- Krijgt de machine vervolgens een nieuwe tekst, dan kan deze automatisch worden geclassificeerd. Dit betekende al een grote vooruitgang ten opzichte van de regelgebaseerde systemen.
Wat houdt taalonafhankelijkheid in?
- Deze systemen zijn taalonafhankelijk: doordat er geen feature engineering meer nodig is, maar het systeem de features zelf leert, kun je werken met teksten uit verschillende talen (tenminste, als je maar genoeg voorbeelden hebt in elk van die talen).
Zijn de systemen performant van NLP?
Deze systemen zijn zeer performant op voorwaarde dat er genoeg voorbeelden zijn om van te leren.
Nadeel artificiële neurale netwerken en deep learning?
Een belangrijk nadeel evenwel is dat deze netwerken weinig transparant zijn en heel veel parameters (gewichten) bevatten om hun patronen in de teksten te gaan modelleren. Het is daarbij niet altijd duidelijk op basis van welke criteria een beslissing wordt genomen.
Types van architecturen van neurale netwerken: hoe neuronen en connecties zijn georganiseerd in het netwerk:
- FFNN
- RNN
- CNN
- Combinaties
FFNN
Feed forward neurale netwerken (feed forward neural networks - FFNN)
RNN
Terugkerende of recurrente neurale netwerken (recurrent neural networks - RNN)
CNN
Convolutionele neurale netwerken (convolutional neural network - CNN)
LSTM
- Bijzondere variant van RNN, het lange korte-termijngeheugen netwerk (long short-term memory netwerk (LSTM)), bijzonder geschikt voor tekstanalyse en tekst generatie.
- Daarvoor is immers een systeem vereist dat over feedbackverbindingen beschikt, zodat niet alleen afzonderlijke datapunten (zoals woorden) kunnen worden verwerkt, maar ook hele reeksen gegevens (zoals gesproken of geschreven zinnen).
- Elk woord afzonderlijk verwerken zoals traditionele FFNN’S = heel moeilijk om te begrijpen.
Werkwijze RNN
- Er wordt woord per woord gelezen, maar er wordt ook rekening gehouden met de voorgeschiedenis. Bij het inlezen van elk nieuw woord, wordt immers informatie over de vorige woorden mee in rekening gebracht. Deze manier van modelleren maakt het mogelijk om de syntax en semantiek (= de betekenis van de zin) te modelleren.
Geheugencellen
- LSTM-vorm van RNN heeft geheugencellen, die het systeem helpen om te leren welke informatie moet worden onthouden, en welke informatie mag worden vergeten. Een LSTM is dus een complexer netwerk, met meer parameters, meer gewichten. Een LSTM beschikt over vier neurale netwerklagen: een cel, een invoerpoort, een uitvoerpoort en een vergeetpoort.
- De cel onthoudt waarden over willekeurige tijdsintervallen en de drie poorten geven aan welke gegevens nuttig zijn om te bewaren en welke gegevens niet nuttig zijn; zij regelen m.a.w. de informatiestroom in en uit de cel.
Illustratie geheugencellen LSTM?