Linguistische annotatie van de krant

Geplaatst op 07-02-2013 door Maarten Marx | data, Political Mashup, XPath | tags: | Geen reacties »

Binnen het PoliticalMashup project koppelen we verschillende soorten politieke data met elkaar. Een belangrijke koppeling is op politieke actor: welke politieke spelers komen er in een document voor.

Om meer grip te krijgen op de informatie die in krantenartikelen staat, voegen we allerlei linguistische annotatie toe, gebruik makend van de Frog software uit Tilburg/Nijmegen, een Named Entity recognizer aan de UvA ontwikkeld door Lars Buitinck, en software die entities koppelt aan Wikipedia ontwikkeld door Edgar Meij aan de UvA. Het eindresultaat is een UTF-8 geëncodeerd XML bestand dat valideert met een variant op het Folia schema.

De annotatie bevat:

  • Splitsing in zinnen
  • Splisting in tokens (woorden), voor elk woord het lemma en de POS tag
  • De ontdekte named entities, met hun type en per entity de hooguit 5 beste links naar de Nederlandse Wikipedia.

Hier is een voorbeeld:

UvA PolitcalMashup is van plan om alle krantenartikelen die zo beschikbaar zijn bij de KB te gaan annoteren.

Hier zijn twee voorbeeld vragen die we nu kunnen stellen.

Welke politici worden in het artikel genoemd?

We willen hun Wikipedia paginas hebben, niet slechts de strings. Die query stellen we in XPath als //folia:entity[@class='per']/folia:sense[1]/text() met als resultaat

http://nl.wikipedia.org/wiki/Hans_van_Mierlo

http://nl.wikipedia.org/wiki/Schelto_Patijn


De eerste is goed. De tweede is fout. Het gaat om een andere Patijn. Let wel, het eerste voorkomen van deze Patijn in de tekst bevat een OCR fout, en is wel goed herkend als een persoon, maar als Michiel Patijl (Michiel Patijn heeft overigens keurig een Wikipedia pagina op http://nl.wikipedia.org/wiki/Michiel_Patijn).

Welke locaties worden in dit artikel genoemd?

Die query stellen we in XPath als //folia:entity[@class='loc']/folia:sense[1]/text() met het volgende antwoord:

Hoeveel zinnen staan er in het artikel?

Vraag: count(//*:s). Antwoord: 17.

Hoeveel procent van de woorden is een adjectief?

Vraag: count(//*:w[.//@class='ADJ']) div count(//*:w) Antwoord: 0.055232

10% is een lidwoord, en 9% is een werkwoord.

De tekst bestaat uit 344 tokens, waarvan 195 verschillend, met 180 verschillende lemmas (query voor dit laatste is count(distinct-values(//*:w//*:lemma/@class))).

Reageer

Je moet ingelogd zijn om te kunnen reageren.