Geplaatst: 08-12-2017

Blog: Zoeken zonder dat je de juiste woorden weet; dat kan dankzij machine learning

Ken je dat, dat je iets op internet wilt opzoeken maar je net niet de juiste woorden kunt vinden? Je hebt bijvoorbeeld laatst een artikel in de media gelezen over een demonstratie in Rotterdam, maar was het nou eigenlijk wel in Rotterdam? Of wacht, ging het niet toch om een staking?

Wat wil het geval: de huidige zoekmachines doen slechts beperkt aan context. Als je niet precies de juiste zoekwoorden gebruikt, krijg je ook niet de resultaten die je nodig hebt. 

Junior Data Scientist Kees Renting zag hierin een mooie kans om zijn machine learning-skills te vergroten door dit probleem te tackelen. Voor zijn afstudeerstage bij ilionx ontwikkelde hij de Tekst-engine. Deze machine kan teksten terugvinden en verbanden aan elkaar koppelen aan de hand van een omschrijving “Geen enkel zoekwoord hoeft daarbij letterlijk in die tekst voor te komen.” aldus Kees. Zo wordt het steeds makkelijker voor computers om de context van een zoekvraag te leren begrijpen, wat een grote efficiency-slag gaat betekenen. 

Hoe werkt dat dan?
De Tekst-engine kan ‘begrijpend lezen’ (Language Understanding Intelligence Service). Na het ‘lezen’ en zoeken van - en in - de teksten, gaat de machine relevante onderwerpen vinden. Het mooie aan machine learning is dat de machine ‘leert’ aan de hand van grote hoeveelheid teksten. Hoe meer je het gebruikt, hoe beter het wordt. “Bij ilionx heb ik de kans gekregen om een demo-omgeving te maken die aan de hand van nieuwsberichten een scheiding maakt in ‘socials’ en ‘nieuws’, ook met sentiment analyse”, vertelt Kees.  

Kun je voorbeelden geven?

“Vergelijk het met een boekenkast. Stel, je hebt je boeken gesorteerd op genre. Elke plank heeft een eigen genre. Binnen die plank sorteer je de boeken op jaartal. Dan heb je dus al twee dimensies waarop de boeken zijn gesorteerd, namelijk genre en jaartal. Als je een thriller uit 1990 wilt vinden, dan weet je precies op welke plank en waar je op die plank je moet zoeken. De Tekst-engine werkt ook zo, maar heeft niet twee maar honderd dimensies! Zo kun je een tekst in een database gemakkelijk terugvinden, ook als je niet letterlijk de woorden uit een tekst kent, want de woorden die daar dichtbij zitten in de dimensies, die worden gebruikt.



In de praktijk kun je bijvoorbeeld denken aan nieuwsredacties. Daar zijn allerlei ‘nieuws-shifters’, medewerkers die letterlijk door teksten schiften, ieder bericht moeten interpreteren en ze dan sorteren. Met de Tekst-engine kan dit veel nauwkeuriger en makkelijker. Ideaal aangezien nieuws heel timing-gevoelig is en accuraat moet zijn.” 

Waarom heb je de Tekst-engine ontwikkeld? Wat zag jij dat er nog niet was waardoor je dacht: ‘Hé, dat ga ik gewoon maken?’
“Ik wilde altijd al een keer iets doen met machine learning. Ik was er vooral mee bezig in mijn vrije tijd, maar dat is heel anders dan wanneer je er hele dagen aan kan werken. Daarom zocht ik naar een bedrijf waar ik dit kon doen en ilionx heeft me deze kans gegeven. Mijn opdracht was het begrijpen van menselijk interesse in een tekst.”

Met welke techniek is de Tekst-engine gebouwd?
“Het project bestaat uit een proces dat woorden een betekenis geeft en teksten sorteert. Daarvoor zijn verschillende technieken gebruikt, waaronder woordvectorisatie, waardoor woorden in teksten een bepaalde waarde krijgen. Je kunt hiermee ‘berekenen’ welke woorden dicht bij elkaar liggen. We vonden het vooral belangrijk dat deze omgeving zo eenvoudig mogelijk toegankelijk zou zijn. Om dit te bereiken is deze logica geschreven in MS-SQL Natively Compiled Stored Procedures. Daarnaast is er nog een API waarmee kan worden gecommuniceerd, zodat resultaten eenvoudig kunnen worden gebruikt in andere applicaties.”

Welke toepassingsmogelijkheden zie je in de praktijk?

“Wat je er nu al mee kunt doen, is het automatiseren van het indelen van teksten door automatisch tags toe te voegen. Ook kun je een zogeheten ‘boekenkast’ maken over een onderwerp. Ik zie vooral mogelijkheden in het vindbaar maken van digitale archieven. Voor nieuwsorganisaties is dit een interessante manier om nieuws uit meerdere informatiebronnen real-time te groeperen en indexeren, zodat dit niet meer handmatig hoeft te gebeuren. Je kunt bijvoorbeeld alle berichten uit ANP, van Twitter en online media-bronnen rondom een bepaalde nieuwsgebeurtenis groeperen. Kijk, in principe is het zo dat overal waar teksten worden gebruikt, de service van meerwaarde is; denk bijvoorbeeld aan het zoeken binnen cv-teksten naar gerelateerde cv’s. Ook zijn er van allerlei toepassingen te bedenken in het juridische veld. Er zijn veel mogelijkheden, maar we willen beginnen met het optimaliseren van de nieuwsvoorzieningen binnen radio- en tv-organisaties. Redacties daar zijn erg afhankelijk van de vindbaarheid van nieuwsartikelen uit archieven. Met de Tekst-engine wordt het zoeken en vinden van dit soort verhalen een stuk eenvoudiger.”

Benieuwd hoe de Tekst-engine werkt? We geven graag een demo. Mail ons om een afspraak te maken! 

Kees Renting
Junior Data Scientist

Rik Opdam
BI Consultant