NPO Backstage en Normalized Google Distance

19863555931_1a2e428368_o-300x208

NPO Backstage

De NPO heeft via het Backstage project onlangs een grote verscheidenheid aan programmadata beschikbaar gesteld aan het publiek. Het gaat onder meer om de programma gegevens van NPO Journalistiek zoals Nieuwsuur, EenVandaag, Oog in Oog en andere NTR programma’s zoals Het Klokhuis en College Tour. Naast een omvangrijke hoeveelheid metadata (zoals beschrijving, en tijdstip van uitzending) zijn ook bijvoorbeeld de complete ondertitels op te vragen.

De open programmadata is toegankelijk via de NPO Backstage API. Met behulp van deze API kunnen de programma gegevens eenvoudig worden doorzocht met behulp van de juiste URL’s. Zo levert de volgende URL bijvoorbeeld een lijst op van alle programma’s waarin het woord Rutte voorkomt:

http://backstage-api.npo.nl/v0/search/Rutte

Een volledige beschrijving van de API is hier te vinden.

Met behulp van de Backstage API kunnen allerlei interessante analyses worden gedaan. Zo is al eerder beschreven hoe met behulp van de API de populariteit van politici in de media kan worden gemeten. In een ander blog wordt met behulp van de API geanalyseerd hoe vaak Amsterdamse stadsdeel politici voorkomen in de landelijke media.

Semantische afstand tussen politieke partijen en onderwerpen

In deze post willen we nog een stapje verder gaan. We gebruiken de Backstage API om te analyseren hoe vaak bepaalde begrippen in combinatie met elkaar in de media voorkomen, dus hoe vaak ze in de media geassocieerd zijn.

Als voorbeeld toepassing hiervan kijken we naar de combinatie van politieke partijen met politieke onderwerpen. Dit geeft een indicatie over de mate waarin partijen over deze onderwerpen in openbaarheid treden. We kunnen vergelijken welke partij het meest over een bepaald onderwerp in de media komt. Of welk onderwerp een bepaalde partij het best weet uit te dragen. Deze laatste informatie kan bijvoorbeeld interessant zijn voor politieke partijen om te analyseren of de speerpunten van de partij wel voldoende in de media over het voetlicht worden gebracht.

Er zijn verschillende methoden om de mate van associatie of verbintenis tussen twee concepten of termen te meten. De methode in deze blog maakt gebruik van het concept van semantische afstand. De semantische afstand tussen termen is een metriek gebaseerd op de frequentie van het gecombineerd voorkomen van de termen in eenzelfde document voor een verzameling van documenten.

Zo is de semantische afstand gelijk aan 0 als de termen altijd samen voorkomen in dezelfde documenten; de termen staan dan zeer dicht bij elkaar en zijn sterk met elkaar verbonden. Aan de andere kant van het spectrum, als de termen nooit samen voorkomen, dan is de semantische afstand oneindig. Dus hoe sterker termen met elkaar zijn verbonden zijn, hoe kleiner de semantische afstand.

Normalized Google Distance en Normalized Backstage Distance

Het concept van semantische afstand krijgt een formele uitdrukking in de zogenaamde Normalized Google Distance (ngd) tussen twee woorden:  als x en y de betreffende twee woorden zijn, dan kan de ngd berekend worden met behulp van de volgende formule:

ngd

Hierbij zijn f(x) en f(y) het aantal hits bij een Google search naar term x, resp. y,  f(x, y) is het aantal hits bij een gecombineerde zoekactie naar zowel x en y, en M is het totaal aantal wepgina’s doorzocht door Google. De ngd is uitgebreid beschreven in de wetenschappelijke literatuur zoals bijvoorbeeld hier.

In deze blog gebruiken we een variatie op de ngd die we voor het gemak de Normalized Backstage Distance (nbd) hebben gedoopt. In deze versie zijn f(x), f(y), het aantal resultaten bij het zoeken naar x resp y in de Backstage API,  f(x, y) is het aantal resultaten naar de gecombineerde zoeken van x en y, en M is het totaal aantal objecten in de API.

Een eenvoudig java programma om de ngb te berekenen staat in het appendix. Reeds berekende waarden worden opgeslagen in een cache zodat de API niet onnodig wordt belast.

Resultaten

We hebben de ngb berekend voor combinaties tussen de zes grootste politieke partijen/politici en een aantal belangrijke politieke onderwerpen zoals milieu, woningmarkt, immigratie, etc. De resultaten zijn weergegeven in de grafieken hieronder (graag aanklikken om de grafieken te vergroten). Let op dat in deze grafieken de semantische afstand tussen de politiek en het onderwerp wordt weergegeven; dus hoe kleiner de waarde, hoe vaker ze gecombineerd voorkomen in de media. Een verdere analyse van de precieze betekenis en interpretatie van deze resultaten is noodzakelijk.

Verfijning en uitbreiding

Natuurlijk zijn de berekeningen beschreven in deze blog nog maar een begin.

Er zijn verscheidene verfijningen mogelijk. Zo wordt nog geen rekening gehouden met woorden die meerdere betekenissen kunnen hebben (zoals “zorg”) of met synoniemen die voor hetzelfde begrip gebruikt kunnen worden. Er zijn echter verfijnder berekening methoden beschikbaar die hier rekening mee houden.

Daarnaast zijn er vele uitbreidingen denkbaar. Zo zouden bv. de verschillen tussen de semantische afstand tussen begrippen per nieuws programma of per omroepen kunnen worden geanalyseerd. Om de ontwikkeling van de semantische afstand zichtbaar te maken kan deze ook in de tijd worden uitgezet. Verder kunnen andere combinaties dan politieke partijen en onderwerpen worden geanalyseerd, zoals bedrijven of producten.

De Backstage API zelf zou ook verrijkt kunnen worden met complexere query methodes zoals de nbd.

Appendix: Java code

Java code voor het berekenen van de nbd van twee strings.