De Koninklijke Bibliotheek werkt aan het identificeren van namen in krantenartikelen. Met machine learning wordt elke naam in een krantenartikel gelinkt aan de meest waarschijnlijke kandidaat in Wikidata en DBpedia. Dit biedt nieuwe zoekmogelijkheden en via contextinformatie ook nieuwe navigatiemogelijkheden.
Door: Theo van Veen
De eerste stap is het herkennen van namen. Omdat een taalkundige analyse erg rekenintensief is, vertrouwen we hiervoor op bestaande ‘Named Entity Recognition’-pakketten. Na het herkennen van een tekstfragment als naam is de volgende stap het vinden van de juiste kandidaat: wordt met ‘A. Einstein’ bedoeld ‘Albert Einstein’ of ‘Alfred Einstein’?
Hiervoor gebruiken we een aantal kenmerken. In hoeverre correspondeert bijvoorbeeld de naam in het artikel met de naam en varianten daarvan in Wikidata en DBpedia? En hoe goed komt de context in een artikel overeen met het abstract bij een naam in DBpedia? Een zin over boksen, bijvoorbeeld, past niet echt bij een politicus.
Neuraal netwerk
Voor het wegen van al die kenmerken gebruiken we een neuraal netwerk. Van meer dan drieduizend namen in artikelen is door ons handmatig bepaald wat de juiste link is. De gebruikte kenmerken in combinatie met op basis van hun naam geselecteerde kandidaten en de handmatig toegekende namen worden gebruikt om een neuraal netwerk te trainen. Vervolgens kan het neurale netwerk bij een naam in een artikel zelf de meest waarschijnlijke kandidaat uit een lijst van potentiële kandidaten bepalen.
Experimentele portal
Met een experimentele portal kunnen de mogelijkheden aan gebruikers gedemonstreerd worden. Bij elk artikel worden de herkende en gelinkte namen getoond. Door daarop te klikken worden links naar contextinformatie gegeven. Belangrijke functionaliteit is het zoeken op basis van eigenschappen in plaats van zoeken op tekst.
Dit kan door een zoekterm tussen vierkante haken te zetten, bijvoorbeeld [architect = willem dudok] of [concertzaal]. In eerste instantie wordt, naast de entiteit zelf, ook gezocht naar objecten met de zoekterm als eigenschap. Zoeken op [concertzaal] levert bijvoorbeeld ook artikelen waarin objecten met de eigenschap ‘is een concertzaal’ voorkomen. De gebruiker kan dit vervolgens verfijnen.
Er wordt hiervoor gebruikgemaakt van informatie uit Wikidata met SPARQL als zoektaal. Omdat dit nogal een ingewikkelde zoektaal is, vertaalt de software de query tussen vierkante haken naar SPARQL en gebruikt de resulterende Wikidata-identifiers om in de kranten te zoeken.
Preciezer zoeken
Op deze manier kunnen we zowel preciezer zoeken als zoeken op dingen waarvan we de namen niet kennen. Zo levert de zoekvraag [Willem Dudok] ook artikelen met architect Dudok. Voorbeelden van zoeken op dingen waarvan we de namen niet hoeven te weten zijn [concertzaal] en [romeinse keizer]. Hierbij wordt eerst gezocht op eigenschappen, zoals ‘is een=’ of ‘ambt=’. De gebruiker kan de gewenste eigenschap daarna selecteren uit een menu.
Het goed identificeren van namen is cruciaal maar ook extreem moeilijk. De betrouwbaarheid van de gelinkte namen vereist nog veel verbetering en gebruikers moeten nu nog rekening houden met foutieve en missende links. Maar uiteindelijk kunnen deze nieuwe zoekmogelijkheden het zoekproces enorm versnellen en betere resultaten opleveren.
Theo van Veen is onderzoeker/adviseur bij de Koninklijke Bibliotheek
Deze bijdrage komt uit IP nr. 9 / 2018. Het gehele nummer kun je hier lezen.