Textmining vs NLP
Deze blog gaat over de verschillende mogelijkheden die er zijn om tekst te analyseren. Inhoudelijk en zonder te veel in de techniek te gaan zullen een aantal methoden beschreven worden.
Naast de bekende ‘gestructureerde data’ (zoals tabellen) is er een grote toename in ongestructureerde data, die omgezet kan worden naar waardevolle informatie. Ongestructureerde data is data die niet direct in tabellen te stoppen is, zoals geluidsfragmenten, beeldmateriaal en tekstbestanden. Denk hierbij ook bijvoorbeeld aan toenemende social media context, gebruikers en netwerken. In deze blog wordt verder ingezoomd in het analyseren van tekst, en worden de begrippen Text mining en Natural Language Processing uitgelegd.
De toegevoegde waarde van text mining
Text mining is kort gezegd het onttrekken van waardevolle informatie en patronen uit tekstbestanden. In de praktijk worden de verschillende technieken op het gebied van text mining zeer gewaardeerd omdat deze snel relevante informatie kunnen onttrekken uit een grote hoeveelheid documenten. Het zorgt er voor dat er veel tijd wordt bespaard voor de ‘lezer’, zodat deze de boodschap uit tekst meekrijgt. Daarnaast kan er een objectief beeld weergeven worden van een document, zonder dat de lezer beïnvloed wordt door mogelijke emoties, stemmingen of afleidingen die op dat moment zijn perceptie van bepaalde documenten kan beïnvloeden.
In deze inleidende blog wordt een aantal methoden beschreven die gebruikt kunnen worden om relevante informatie uit documenten te halen. De volgende toepassingen met de specifieke toegevoegde waarde worden beschreven:
- Word Cloud
- Bigrams en Trigrams
- Sentiment Analyse
- Samenvattingen genereren
- Taalkundig ontleden
- Entiteiten onttrekken
- Classificeren van tekst
- Topics uit documenten destilleren
- Vertalen
- Word2Vec
Tekst kan op verschillende manieren worden geanalyseerd, en de bovengenoemde technieken zijn grofweg met twee technieken te doen. Het verschil tussen text mining en Natural Language Processing wordt uitgelegd.
Word cloud
Een word cloud kan op verschillende manier gemaakt worden. Een van de opties is om de tekstinhoud te analyseren door de tekst om te zetten naar een ‘bag of words’. Hierin wordt het voorkomen van woorden geteld, zodat veel voorkomende termen uit een tekst kunnen worden gehaald. Voordat de word cloud wordt gemaakt dient de tekst eerst opgeschoond te worden, en ontdaan te zijn van stopwoorden en bijvoorbeeld nummers. De woorden met een hoge frequentie worden vervolgens gevisualiseerd in een word cloud.
Een andere mogelijkheid om een word cloud te maken is door woorden een hoge waarde te geven die veelzeggend zijn voor het betreffende document. De methode die hiervoor gebruikt kan worden heet TF-IDF. TF-IDF staat voor Term Frequency – Inverse Document Frequency. Doel van deze techniek is om woorden uit een document te filteren die veelzeggend zijn voor het betreffende document omdat dit veel wordt genoemd, gecorrigeerd voor woorden die over alle documenten heen veel voorkomen. Dit zorgt er voor dat veel genoemde stopwoorden niet als belangrijk naar boven komen. Hoe hoger de waarde die hieruit rolt, hoe belangrijker het woord voor een bepaald document is.
Bigrams en Trigrams
Een variatie op de word cloud. Een word cloud maakt gebruik van zogenoemde unigrams. Dit zijn woorden die vaak voorkomen. Bigrams zijn twee woorden die vaak samen worden genoemd. Trigrams zijn 3 woorden die vaak samen worden genoemd. N-grams (waarbij N staat voor het aantal woorden) zijn zo groot te maken als noodzakelijk, maar zal vaak na 4 woorden niet veel informatie meer toevoegen. De meest gebruikte combinaties zijn uni,- bi,- en trigrams. Door gebruik te maken van n-grams wordt er beter naar relatie tussen woorden gekeken dan bij een ‘bag of words’.
Sentiment Analysis – lexicon
Dezelfde ‘bag of words’ die hierboven beschreven wordt kan gebruikt worden om een sentiment toe te kennen aan een tekst. Er zijn bepaalde lexicons aanwezig, die door middel van ‘crowdsourcing’ een label van een emotie of score op positiviteit of negativiteit hebben gekregen. Door gebruik te maken van deze lexicons is het mogelijk om een waarde te koppelen aan de verschillende woorden in een tekst. Op deze manier kan uiteindelijk de inhoud van een tekst kwantitatief weergeven worden, en kan de lezer snel een indruk krijgen van de emotionele lading van de content, zonder het artikel te hebben gelezen. Met deze informatie als input kan naar wens de informatiebehoefte van de gebruiker worden ingevuld. De NRC lexicon is een veelgebruikte lexicon in text mining, en bevat de volgende sentimenten/emoties:
sentiments:negative, positive
emotions:anger, anticipation, disgust, fear, joy, sadness, surprise, trust
Mohammad & Turney (2013)
Verder is het mogelijk om naast een vooraf gedefinieerde lijst met woorden en bijbehorende emoties ook een sentiment analyse te maken op basis van machine learning modellen, die zelf op basis van een trainingset met labels regels kunnen maken over het sentiment van verschillende woorden. Hier wordt rekening gehouden met de samenstelling van de zin, grammatica en zinsopbouw. Rekening wordt gehouden worden met ontkenningen zoals bijvoorbeeld; ‘Dat vind ik niet leuk’. Het is zelfs mogelijk om rekening te houden met ‘spreektaal’ , sarcasme en emoticons.
Samenvattingen
Voor het maken van samenvattingen zijn meerdere methoden mogelijk. Een mogelijkheid is om belangrijke zinnen uit tekst te filteren die veel gelijkenis tonen met andere zinnen, of zinnen die woorden bevatten die aantonen dat deze kenmerkend zijn voor de tekst. Deze techniek wordt ‘Extractive summarization’ genoemd en haalt originele woorden en zinnen uit de documenten. Een veelgebruikte methode is gebaseerd op de textRank algoritme, vergelijkbaar met Google’s page ranking algoritme, wordt gebruikt toegepast op zinnen. Kort gezegd krijgen zinnen die veel gelijkenis tonen met andere zinnen een hoge score, vervolgens worden per groep de meest significante zinnen eruit gefilterd op basis van volgorde in de tekst.
Samenvattingen maken van tekst kan tegenwoordig ook met hulp van ‘deep learning’, deze methode zal zelf een samenvatting maken, zonder hiervoor (enkel) bestaande zinnen en zelfs woorden te gebruiken. ‘Abstractive summarization’ is gebaseerd op semantische logica. Deze techniek zorgt voor een samenvatting van een grotere kwaliteit dan de ‘extractive summarization’ doordat de context begrepen wordt en niet afhankelijk is van verschillende vormen van notatie. Het nadeel van deze methode is dat er een grote dataset nodig is om een model op te trainen. Deze dataset moet bestaan uit voorbeeld artikelen waar al een samenvatting van is gemaakt.
Natural Language Processing
Natural Language is een interessante combinatie op het gebied van wiskunde, taalwetenschap, computerwetenschap en psychologie. Bij Natural Language Processing (NLP) wordt er , in tegenstelling tot text mining, naar de betekenis en verbanden in tekst gekeken. Hier wordt echt naar de grammatica en samenhang van de zin gekeken. Er wordt veel meer naar de betekenis van de woorden gekeken dan naar het voorkomen hiervan. Verschillende basis oplossingen worden hieronder toegelicht.
Taalkundig ontleden
Het taalkundig ontleden van een zin kan handig zijn om tekst inhoudelijk beter te kunnen analyseren, en verbanden juist te onttrekken. Vaak is de betekening van een woord afhankelijk van de positie in de zin, en kan een woord verschillende betekenissen hebben. Het ontleden van een zin is vaak ter preparatie voor het beter begrijpen van de tekst. Het is mogelijk om bepaalde relaties uit teksten te halen, door grammaticale structuren te specificeren.
Entiteiten onttrekken
Het is mogelijk om uit teksten entiteiten te onttrekken, zoals organisaties, personen, landen etc. Dit kan handig zijn wanneer de behoefte bestaat om alleen personen uit tekst te onttrekken, of wanneer snel inzichtelijk gemaakt dient te worden welke landen in verschillende documenten genoemd worden. Als input is de grammaticale structuur van de zin nodig zodat een goed onderscheid kan worden gemaakt en op basis van eigenschappen entiteiten te onttrekken
Classificeren van tekst (supervised)
Door gebruik te maken van ‘Supervised’ classificatie is het mogelijk om tekst in te delen in vooraf ingestelde categorieën. Een voorbeeld hiervan is het indelen van nieuwsartikelen op bijvoorbeeld sport of politiek. Een ander voorbeeld is het detecteren van spam e-mails aan de hand van de context. Voor een supervised classificatie is altijd een trainingsset
nodig waar de waarden al een label hebben gekregen. Op basis van de trainingsset wordt een model gemaakt, die vervolgens op een nieuwe dataset de labels kan voorspellen, met de logica van het model. Vaak zijn er al corpora (gestructureerde set van teksten) beschikbaar met voorgetrainde datasets.
Classificeren van tekst (unsupervised)
‘Unsupervised classification’ is een manier voor het bepalen van de verschillende topics binnen documenten zonder deze van te voren te specificeren is.Hier worden de topics niet vooraf ingesteld, maar worden ‘topics’ gemaakt die te destilleren zijn uit de veel voorkomende woorden (bag of words) over de verschillende documenten. Het doel van deze methode is om een aantal topics vast te stellen en te omschrijven met een aantal sleutelwoorden, die de inhoud van het topic weergeven. Uitgangspunt hierbij is dat een document uit meerdere topics bestaat, en een topic bestaat uit een combinatie van woorden. Het is belangrijk om de tekst eerst op te schonen, waarbij o.a. nummers en stopwoorden verwijderd zijn uit de test. Voor het verbeteren van deze methode kan het handig zijn om de tekst eerst te ontleden en bijvoorbeeld bijvoeglijke naamwoorden uit de teksten te verwijderen. Op deze manier zullen deze woorden geen prominent onderdeel van de verschillende topics zijn.
Het resultaat is een indeling van documenten op verschillende topics, opgesteld door de inhoud van de documenten zelf.
Vertalen
Voor het vertalen van tekst is het belangrijk om de grammaticale structuur van de tekst goed te begrijpen. Hoewel de kwaliteit van de vertalingen de laatste jaren sterk toeneemt, is het tot de dag van vandaag nog niet mogelijk om foutloos teksten te vertalen. Een reden hiervan is dat taal zijn eigen regels heeft, die niet altijd logisch zijn. Taal is imperfect, en net als mensen niet volledig opgebouwd uit logische patronen. Echter zal het in de toekomst waarschijnlijk mogelijk worden om bijna-perfecte vertalingen aan te bieden. Grote techs die flink investeren in dit onderwerp zijn Microsoft, Google en Facebook. Microsoft heeft bijvoorbeeld met verschillende deep learning modellen ervoor gezorgd dat real-time skype gesprekken te vertalen zijn tussen verschillende talen. [1]
Word2Vec
Het idee achter Word2Vec is dat de betekenis van een woord te herleiden is naar de context van de zin, en verband met andere woorden. Word2vec is een algoritme dat gelijkenis tussen woorden berekend gebaseerd op de context. Het kan verschillende contexten begrijpen en semantische relaties herkennen. Doordat word2vec de gelijkheid in woorden kan herkennen, ook als deze anders zijn geschreven, zijn die erg bruikbaar voor bijvoorbeeld de gelijkenis in twee teksten te herkennen, zonder dat deze precies dezelfde woorden bevatten. Ook het clusteren van de tekst op basis van word2vec kan een goede vervanging zijn van het clusteren op basis van bag-of-words. Een variant hierop is doc2vec en lda2vec, waarbij laatstgenoemde een combinatie is van word2vec en topic modelling algoritme LDA. [2]
Voorwaarden voor text mining
Een voorwaarde voor het verkrijgen van een goede analyse is dat de input tekst vrij moet zijn van vervuiling. Voor het opschonen van de tekst zijn verschillende technieken beschikbaar in Python en R. Tekstbestanden zijn beter te analyseren dan PDF bestanden. PDF bestanden zijn niet gemaakt om op een gestructureerde manier data op te slaan. Helaas zijn veel documenten in organisaties toch PDF bestanden. Verschillende technieken bestaan er om PDF bestanden om te zetten in tekst formaat, maar de kwaliteit is afhankelijk van de complexiteit en uniformiteit van de bestanden. Bij het ophalen van tekst uit ongestructureerde PDF bestanden kan het lastig zijn om tabellen van tekst te onderscheiden, waardoor de kwaliteit niet altijd kan worden gegarandeerd.
Eigen documenten analyseren
Een module van de cursus Certified Data Science Cursus (CDSP) van DIKW is volledig gericht op text mining. Tijdens deze module leer je de basistechnieken in text mining programmeren in R of Python. Na het volgen van deze cursus kan je zelf programmeren in R en/of Python en naast teksten analyseren, beheers je ook de meest fundamentele concepten in Data Science.[2][BB3]
Voor meer geavanceerde tekstanalyses door middel van bovenstaande methoden, streaming data, big data of kennis graven, kan met DIKW contact worden opgenomen. Voor begeleiding of uitbesteding maar ook bijvoorbeeld het opstarten van een analyse omgeving, dataopslag etc.
Een boek dat ik kan aanraden met meer informatie over Natural Language Processing: Bird, Steven, Edward Loper and Ewan Klein (2009), Natural Language Processing with Python. O’Reilly Media Inc. Veel van bovenstaande methodes zijn ook oorspronkelijk uit dit boek.
Bronnen:
Mohammad, S. M., & Turney, P. D. (2013). Crowdsourcing a word–emotion association lexicon. Computational Intelligence, 29(3), 436-465.
Meer weten over wat data voor uw organisatie kan betekenen?
Neem contact op met Hugo Koopmans
Telefoon: +31643106780
E-mail: hugo.koopmans@dikw.com
Blogs
-
Data gedreven werken — door Nick van de Venn — last modified 26-05-2023
- Bij datagedreven werken staan mens én data centraal
-
Hoe gebruik je ChatGPT om je data pipeline te bouwen? — door Nick van de Venn — last modified 11-05-2023
- Marcel-Jan zocht het uit voor zijn grote hobby: astronomie.
-
Lead consultant en manager Business Analytics Patrick Meulstee — door Nick van de Venn — last modified 06-04-2023
- Over remote werken op Bonaire
-
Hoogwaardige data opleidingen bij DIKW Academy — door nick van de venn — last modified 28-02-2023
- Waarom wij geloven in de praktische opzet van onze cursussen
-
Lead data engineer Remy Lamberty — door Nick van de Venn — last modified 27-03-2023
- Over remote werken vanuit India
-
Van pizzakoerier naar business intelligence consultant — door Nick van de Venn — last modified 15-12-2022
- Het verhaal hoe Brian een vaste waarde werd binnen DIKW
-
Data management — door Nick van de Venn — last modified 18-11-2022
- Met vertrouwen bouwen op data
-
Bayesiaanse Statistiek — door Marc Jacobs — last modified 25-07-2022
- Wiskundig raamwerk voor ouderwets leren
-
R vs Python — door Nick van de Venn — last modified 05-07-2022
- Samenwerken is de sleutel
-
Je fietsroutes eenvoudig in kaart brengen... — door Nick van de Venn — last modified 05-05-2022
- Marcel-Jan doet het eenvoudig met behulp van Python.
-
Het DIKW model — door marco — last modified 24-02-2022
- In vier stappen waarde creëren met data
-
DIKW Academy: Waar theorie en praktijk samen komen — door marco — last modified 21-02-2022
- DIKW docenten delen hun expertise uit de praktijk
-
Laat data voor u renderen! — door marco — last modified 08-02-2022
- Bluemine: Analytics as a service
-
30 jaar intelligence: Nieuwe uitdagingen om met data waarde toe te voegen — door marco — last modified 08-02-2022
- Van oude computerterminal naar smartphone
-
De fascinerende wereld van testen — door marco — last modified 30-12-2021
- Verwacht het onverwachte
-
Verzekeraar creëert meerwaarde met slimme data hub — door marco — last modified 20-12-2021
- Klant maakt met betere voorspellingen met data
-
Op naar een mooi data gedreven 2022! — door marco — last modified 14-12-2021
- Data gedreven organisatie dient blijvend te worden gevoed
-
Machine Learning: De gereedschapskist van de data scientist — door marco — last modified 21-12-2021
- Machine Learning algoritmes zijn de gereedschappen voor een data scientist
-
Met data de wind in de zeilen — door marco — last modified 28-01-2022
- Met data management kiest u de juiste koers
-
Hoe ethisch is Facebook? — door marco — last modified 05-11-2021
- Is regulering en wetgeving voor AI nodig?
-
Boekbespreking: Data Teams van Jesse Anderson — door marco — last modified 02-11-2021
- Voor succesvolle big data projecten zijn drie teams nodig
-
Smells like AI — door marco — last modified 01-11-2021
- Artificial Intelligence creëert nieuwe muziek
-
De waarde van data voor het MKB — door marco — last modified 09-12-2021
- Bluemine ontzorgt MKB door data beheer
-
Data & AI: Kans of bedreiging? — door marco — last modified 21-12-2021
- Waarde creëren met data en AI zorgt voor nieuwe business mogelijkheden
-
Data gedrevenheid is proces van lange adem — door marco — last modified 02-11-2021
- Data is een ingrediënt dat zorgt voor meerwaarde op lange termijn
-
Hoe data leidt tot de optimalisatie van de customer journey — door marco — last modified 02-11-2021
- Ondersteun uw customer journey met data strategie
-
Wat is data engineering? — door marco — last modified 03-02-2022
- Hoe word je een data engineer?
-
De fasen om te transformeren naar een data gedreven organisatie — door marco — last modified 02-11-2021
- Welke vier fasen doorloopt een organisatie naar data gedrevenheid?
-
Data gedreven organisaties hebben grotere kans om te overleven — door marco — last modified 02-11-2021
- Transformeren naar een data gedreven organisatie kost tijd
Data Science recente blogs
-
Bayesiaanse Statistiek — door Marc Jacobs — last modified 25-07-2022
- Wiskundig raamwerk voor ouderwets leren
-
R vs Python — door Nick van de Venn — last modified 05-07-2022
- Samenwerken is de sleutel
-
Machine Learning: De gereedschapskist van de data scientist — door marco — last modified 21-12-2021
- Machine Learning algoritmes zijn de gereedschappen voor een data scientist
Data Science Nieuws & Evenementen
-
Data science opleidingen gaan weer van start! — door marco — last modified 08-02-2022
- Vanaf 21 september start ons succesnummer weer! Twaalf weken data science in R, we hebben er weer zin in
-
Aedes data science workshop 2 van 3 — door marco — last modified 07-02-2022
- Voor Aedes organiseert DIKW drie workshops data science
-
DIKW in top 50 beste data science bedrijven — door marco — last modified 22-10-2021
- DIKW is één van snelst groeiende bedrijven volgens MKB Data Science rapport