AI-basisprincipes
Hoe Werkt Tekstclassificatie?
Tekstclassificatie is het proces van het analyseren van tekstsequenties en het toewijzen van een label, waarbij ze in een groep worden geplaatst op basis van hun inhoud. Tekstclassificatie vormt de basis van bijna elke AI- of machine learning-taak die betrekking heeft op Natural Language Processing (NLP). Met tekstclassificatie kan een computerprogramma een breed scala aan verschillende taken uitvoeren, zoals het herkennen van spam, sentimentanalyse en chatbot-functies. Hoe werkt tekstclassificatie precies? Wat zijn de verschillende methoden voor het uitvoeren van tekstclassificatie? We zullen de antwoorden op deze vragen hieronder onderzoeken.
Tekstclassificatie Definiëren
Het is belangrijk om even de tijd te nemen en ervoor te zorgen dat we begrijpen wat tekstclassificatie is, in het algemeen, voordat we de verschillende methoden voor tekstclassificatie onderzoeken. Tekstclassificatie is een van die termen die wordt toegepast op veel verschillende taken en algoritmen, dus het is handig om ervoor te zorgen dat we het basisconcept van tekstclassificatie begrijpen voordat we verdergaan.
Alles wat betrekking heeft op het creëren van verschillende categorieën voor tekst en het labelen van verschillende tekstvoorbeelden als deze categorieën, kan worden beschouwd als tekstclassificatie. Zolang een systeem deze basisstappen uitvoert, kan het worden beschouwd als een tekstclassifier, ongeacht de exacte methode die wordt gebruikt om de tekst te classificeren en ongeacht hoe de tekstclassifier uiteindelijk wordt toegepast. Het detecteren van e-mailspam, het organiseren van documenten op onderwerp of titel en het herkennen van de sentiment van een review voor een product zijn allemaal voorbeelden van tekstclassificatie omdat ze worden bereikt door tekst als invoer te nemen en een classificatielabel voor die tekst uit te voeren.
Hoe Werkt Tekstclassificatie?

Foto: Quinn Dombrowski via Flickr, CC BY SA 2.0 , (https://www.flickr.com/photos/quinnanya/4714794045)
De meeste tekstclassificatiemethoden kunnen worden onderverdeeld in een van drie verschillende categorieën: regelgebaseerde methoden of machine learning-methoden.
Regelgebaseerde Classificatiemethoden
Regelgebaseerde tekstclassificatiemethoden werken door middel van expliciet ontworpen linguïstische regels. Het systeem gebruikt de regels die door de ingenieur zijn gemaakt om te bepalen tot welke klasse een bepaalde tekst behoort, waarbij het zoekt naar aanwijzingen in de vorm van semantisch relevante tekstelementen. Elke regel heeft een patroon dat de tekst moet matchen om in de overeenkomstige categorie te worden geplaatst.
Om concreter te zijn, laten we zeggen dat je een tekstclassifier wilt ontwerpen die in staat is om algemene onderwerpen van conversatie te onderscheiden, zoals het weer, films of eten. Om je tekstclassifier in staat te stellen om discussies over het weer te herkennen, zou je het kunnen instrueren om naar weer-gerelateerde woorden in de tekstvoorbeelden te zoeken die het wordt gevoerd. Je zou een lijst met trefwoorden, frasen en andere relevante patronen kunnen hebben die kunnen worden gebruikt om het onderwerp te onderscheiden. Bijvoorbeeld, je zou de classifier kunnen instrueren om naar woorden zoals “wind”, “regen”, “zon”, “sneeuw” of “wolk” te zoeken. Je zou de classifier dan kunnen laten zoeken naar de invoertekst en tellen hoe vaak deze woorden in de tekst voorkomen en als ze vaker voorkomen dan woorden die verband houden met films, zou je de tekst classificeren als behorend tot de weercategorie.
Het voordeel van regelgebaseerde systemen is dat hun invoer en uitvoer voorspelbaar en interpreteerbaar zijn voor mensen, en ze kunnen worden verbeterd door handmatige interventie van de ingenieur. Regelgebaseerde classificatiemethoden zijn echter ook enigszins broos en hebben vaak moeite om te generaliseren omdat ze alleen kunnen voldoen aan de vooraf gedefinieerde patronen die zijn geprogrammeerd. Als voorbeeld kan het woord “wolk” verwijzen naar vochtigheid in de lucht of naar een digitale wolk waarin gegevens worden opgeslagen. Het is moeilijk voor regelgebaseerde systemen om deze nuances te hanteren zonder dat de ingenieurs veel tijd besteden aan het handmatig anticiperen en aanpassen van deze subtiele verschillen.
Machine Learning-systemen
Zoals eerder vermeld, hebben regelgebaseerde systemen beperkingen, aangezien hun functies en regels vooraf moeten worden geprogrammeerd. In tegenstelling tot regelgebaseerde systemen werken machine learning-gebaseerde classificatiesystemen door algoritmen toe te passen die patronen in datasets analyseren die zijn geassocieerd met een bepaalde klasse.
Machine learning-algoritmen worden gevoerd met vooraf gelabelde/vooraf geclassificeerde instanties die worden geanalyseerd op relevante kenmerken. Deze vooraf gelabelde instanties zijn de trainingsgegevens.
De machine learning-classifier analyseert de trainingsgegevens en leert patronen die geassocieerd zijn met de verschillende klassen. Vervolgens worden ongezien instanties gestript van hun labels en aan de classificatie-algoritme gevoerd, die de instanties een label toewijst. De toegewezen labels worden vervolgens vergeleken met de oorspronkelijke labels om te zien hoe nauwkeurig de machine learning-classifier was, waarmee wordt beoordeeld hoe goed het model de patronen heeft geleerd die de klassen voorspellen.
Machine learning-algoritmen werken door numerieke gegevens te analyseren. Dit betekent dat om een machine learning-algoritme op tekstgegevens te gebruiken, de tekst moet worden omgezet in een numerieke indeling. Er zijn verschillende methoden om tekstgegevens te coderen als numerieke gegevens en machine learning-methoden rond deze gegevens te creëren. We zullen enkele van de verschillende manieren om tekstgegevens te representeren hieronder behandelen.
Bag-of-Words
Bag-of-words is een van de meest gebruikte benaderingen voor het coderen en representeren van tekstgegevens. De term “bag-of-words” komt voort uit het feit dat je alle woorden in de documenten neemt en ze allemaal in één “zak” zonder aandacht voor woordvolgorde of grammatica, waarbij alleen de frequentie van woorden in de zak wordt geanalyseerd. Dit resulteert in een lange array, of vector, die een enkele representatie bevat van alle woorden in de invoerdocumenten. Dus als er 10000 unieke woorden zijn in de invoerdocumenten, zullen de functie vectoren 10000 woorden lang zijn. Dit is hoe de grootte van de woorden zak/functie vector wordt berekend.

Foto: gk_ via Machinelearning.co, (https://machinelearnings.co/text-classification-using-neural-networks-f5cd7b8765c6)
Nadat de grootte van de functievector is bepaald, wordt elke document in de lijst van totale documenten zijn eigen vector toegewezen met nummers die aangeven hoe vaak het woord in kwestie voorkomt in het huidige document. Dit betekent dat als het woord “eten” acht keer voorkomt in één tekstdocument, de overeenkomstige functievector/functiearray een acht in de overeenkomstige positie zal hebben.
Anders gezegd, alle unieke woorden die voorkomen in de invoerdocumenten worden allemaal in één zak gegooid en vervolgens krijgt elk document zijn eigen woordvector van dezelfde grootte, die vervolgens wordt ingevuld met het aantal keren dat de verschillende woorden in het document voorkomen.
Tekstdatasets zullen vaak een groot aantal unieke woorden bevatten, maar de meeste worden niet vaak gebruikt. Om deze reden wordt het aantal woorden dat wordt gebruikt om de woordvector te maken, meestal begrensd tot een gekozen waarde (N) en vervolgens zal de functievectorafmeting Nx1 zijn.
Term Frequency-Inverse Document Frequency (TF-IDF)
Een andere manier om een document te representeren op basis van de woorden erin is Term Frequency-Inverse Document Frequency (TF-IDF). Een TF-IDF-benadering creëert ook een vector die het document representeert op basis van de woorden erin, maar in tegenstelling tot Bag-of-words worden deze woorden gewogen door meer dan alleen hun frequentie. TF-IDF houdt rekening met de belangrijkheid van de woorden in de documenten, waarbij het probeert te kwantificeren hoe relevant dat woord is voor het onderwerp van het document. Met andere woorden, TF-IDF analyseert relevantie in plaats van frequentie en de woordtellingen in een functievector worden vervangen door een TF-IDF-score die wordt berekend met betrekking tot de gehele dataset.
Een TF-IDF-benadering werkt door eerst de termfrequentie te berekenen, het aantal keren dat de unieke termen binnen een bepaald document voorkomen. TF-IDF let echter ook op de invloed van zeer algemene woorden zoals “de”, “of” en “en”, aangezien deze “stopwords” zeer algemeen zijn, maar weinig informatie over de inhoud van het document geven. Deze woorden moeten worden gediskonteerd, wat de “inverse-documentfrequentie”-onderdeel van TF-IDF is. Dit wordt gedaan omdat de meer documenten waarin een bepaald woord voorkomt, hoe minder nuttig dat woord is om het te onderscheiden van de andere documenten in de lijst van alle documenten. De formule die TF-IDF gebruikt om de belangrijkheid van een woord te berekenen, is ontworpen om de woorden te behouden die het meest frequent en semantisch rijk zijn.
De functievectoren die zijn gemaakt door de TF-IDF-benadering, bevatten genormaliseerde waarden die opgeteld tot één zijn, waarbij elke woord een gewogen waarde wordt toegewezen, zoals berekend door de TF-IDF-formule.
Woordembeddings
Woordembeddings zijn methoden voor het representeren van tekst die ervoor zorgen dat woorden met vergelijkbare betekenissen vergelijkbare numerieke representaties hebben.
Woordembeddings werken door woorden te “vectoriseren”, wat betekent dat ze woorden representeren als reële waarden vectoren in een vectorruimte. De vectoren bestaan in een grid of matrix en hebben een richting en lengte (of magnitude). Wanneer woorden als vectoren worden weergegeven, worden de woorden omgezet in vectoren die bestaan uit reële waarden. Elk woord wordt toegewezen aan één vector en woorden die vergelijkbaar zijn in betekenis hebben vergelijkbare richting en magnitude. Deze vorm van codering maakt het mogelijk voor een machine learning-algoritme om complexe relaties tussen woorden te leren.
De embeddings die de verschillende woorden representeren, worden gemaakt met betrekking tot hoe de woorden in kwestie worden gebruikt. Omdat woorden die op vergelijkbare manieren worden gebruikt, vergelijkbare vectoren zullen hebben, vertaalt het proces van het maken van woordembeddings sommige van de betekenis die de woorden hebben. Een bag-of-words-benadering creëert broze representaties waarbij verschillende woorden ongelijksoortige representaties zullen hebben, zelfs als ze in zeer vergelijkbare contexten worden gebruikt.
Als gevolg hiervan zijn woordembeddings beter in het vastleggen van de context van woorden binnen een zin.
Er zijn verschillende algoritmen en benaderingen om woordembeddings te maken. Enkele van de meest voorkomende en betrouwbare woordembeddings-methoden zijn: embeddinglagen, word2vec en GloVe.
Embeddinglagen
Een mogelijke manier om woordembeddings te gebruiken in combinatie met een machine learning-/diepe leer systeem is door gebruik te maken van een embeddinglaag. Embeddinglagen zijn diepe leerlagen die woorden omzetten in embeddings die vervolgens worden gevoerd in de rest van het diepe leersysteem. De woordembeddings worden geleerd terwijl het netwerk traint voor een specifieke tekstgebaseerde taak.

In een woordembeddingsbenadering zullen vergelijkbare woorden vergelijkbare representaties hebben en dichter bij elkaar liggen dan bij ongelijksoortige woorden.
Om embeddinglagen te gebruiken, moet de tekst eerst worden voorbewerkt. De tekst in het document moet worden one-hot gecodeerd en de vectorgrootte moet van tevoren worden gespecificeerd. De one-hot-tekst wordt vervolgens omgezet in woordvectoren en de vectoren worden doorgegeven aan het machine learning-model.
Word2Vec
Word2Vec is een andere veel voorkomende methode voor het embedden van woorden. Word2Vec gebruikt statistische methoden om woorden om te zetten in embeddings en het is geoptimaliseerd voor gebruik met neurale netwerkmodellen. Word2Vec is ontwikkeld door Google-onderzoekers en het is een van de meest gebruikte embeddingsmethoden, aangezien het betrouwbare, rijke embeddings oplevert. Word2Vec-representaties zijn nuttig voor het identificeren van semantische en syntactische overeenkomsten in taal. Dit betekent dat Word2Vec-representaties relaties tussen vergelijkbare concepten vastleggen, waarbij ze kunnen onderscheiden dat de overeenkomst tussen “Koning” en “Koningin” koningschap is en dat “Koning” mannelijkheid impliceert, terwijl Koningin vrouwelijkheid impliceert.
GloVe
GloVe, of Global Vector voor Woordrepresentatie, bouwt voort op de embeddingsalgoritmen die worden gebruikt door Word2Vec. GloVe-embeddingsmethoden combineren aspecten van zowel Word2Vec als matrixfactorisatietechnieken zoals Latent Semantische Analyse. Het voordeel van Word2Vec is dat het context kan vastleggen, maar als een compromis legt het het globale tekststatistieken slecht vast. Traditionele vectorrepresentaties zijn daarentegen goed in het bepalen van globale tekststatistieken, maar ze zijn niet nuttig voor het bepalen van de context van woorden en frasen. GloVe haalt het beste uit beide benaderingen, waarbij het woord-context creëert op basis van globale tekststatistieken.












