Multimedia Information Retrieval

Maat: px
Weergave met pagina beginnen:

Download "Multimedia Information Retrieval"

Transcriptie

1 Doel Multimedia Information Retrieval Opdracht 2: Text analysis versie 0.6, 25 november 2008 Onderzoeken van de kwantitatieve eigenschappen van een aantal teksten; het uitvoeren van een kwantitatieve tekstanalyse; het Vector-Space model van Information Retrieval. Deadline Lever deze opdracht in via Submit; deadline is maandag 1 december 2008, om s morgens. Bronnenmateriaal Voor deze opgave verzamel je allereerst een aantal teksten van Nederlandse politici en/of politieke commentatoren: kies 3 personen, en van elk van hen twee teksten, artikelen, speeches, of interviews zorg dat de teksten over (globaal) hetzelfde thema gaan, bv. milieu of kredietcrisis de teksten dienen ten minste 600 woorden lang te zijn: hoe langer, des te interessanter een kwantitatieve analyse is Bronnenmateriaal kun je onder meer vinden op sites van partijen en politici, de website van de Tweede Kamer, en bij kranten. Ter inspiratie het artikel uit de NRC over Ellen de Bruin. Debaters onthullen zich via taaldetails. NRC, 21 oktober Gereedschappen Je gebruikt bij dit onderdeel de volgende gereedschappen: TAPoRware ( een set van online tools voor kwantitatieve tekstanalyse Snowball, stemmer (woordstamprogramma) voor het Nederlands stopwoordenlijst Nederlands Excel uitwerksheet Vector-space model text editor, naar eigen keuze cos.pl, een tool voor het berekenen van de cosinus tussen twee vectoren Aan het eind van de opdracht vind je wat nadere informatie om je met de software op weg te helpen.

2 Inleveren 1. Een document met daarin: de uitwerkingen van de onderdelen 2 en 4, inclusief grafieken, tabellen en andere kwantitatieve resultaten de bespreking van onderdeel 5 2. De uitgebreide stopwoordenlijst (onderdeel 3) 3. Excel-sheet Vector-space model (onderdeel 5) 4. Alle (6) documenten die je geanalyseerd hebt Werkwijze Verdeel het werk als volgt: week 1: de onderdelen 1 tot en met 4 week 2: onderdeel 5 1. Test de tools Kies een willekeurige Nederlandse tekst van enige omvang en gebruik deze om alle TAPoRware tools te leren kennen. Voor de Comparator heb je een tweede tekst nodig. Test de tools met en zonder stopwoordenlijst (zie bij voorbeeld List words optie Words limited to), en verken de overige opties. Facultatief: test ook Snowball en ga na hoe je de output kunt gebruiken voor analyse met de TAPoRware tools. 2. Tekstwetten Laat zien dat Zipf s law geldt voor je teksten door voor elk van je teksten een grafiek te maken. Kies de juiste tool(s) voor het uitvoeren van je analyse. Grafieken kun je in Excel maken. Zorg dan dat je tab-separated output uit de tools krijgt: die kun je het gemakkelijkst plakken in een Excel sheet. Denk eraan dat je de woordfrequenties nodig hebt, niet de woorden zelf. Ga na in hoeverre Heaps law geldt voor je tekstcorpus. Maak langere teksten door een aantal documenten samen te voegen, of zoek nog wat lange teksten op Internet. Maak een grafiek. Voeg aan de grafieken een korte toelichting toe. ( woorden) 3. Stopwoordenlijst De gegeven stopwoordenlijst is een eerste benadering. Breid deze lijst uit met de stopwoorden die in je eigen teksten voorkomen. Aanpak: voeg nieuwe stopwoorden toe aan het begin van de lijst, in alfabetische volgorde je bent klaar als in de top-25 van meest frequente woorden van elk document apart geen stopwoorden meer voorkomen. Lever de uitgebreide stopwoordenlijst in.

3 4. Kwantitatieve tekstanalyse Lees het artikel van Ellen de Bruin uit de NRC. Gebruik dit als bron van inspiratie om een kwantitatieve analyse te maken van twee van je teksten. Deze teksten moeten van verschillende auteurs zijn. Gebruik hierbij de volgende tools: TAPoRware: de relevante tools facultatief: Snowball wellicht moet je bepaalde basisbewerkingen op je tekst uitvoeren (bv. verwijderen leestekens, hoofdletters -> kleine letters). Gebruik hiervoor een willekeurige teksteditor als je een beetje handig bent met bv. Perl is het niet moeilijk eigen tooltjes te bouwen Tip: denk goed na over de ordening en naamgeving van je materiaal. Voor je het weet heb je meerdere versies van dezelfde tekst gemaakt en daarbij nog eens een groot aantal files met analyses verzameld. Voorkom information overload! Trek onderbouwde conclusies over de inhoud van beide artikelen, uitsluitend op basis van de kwantitatieve analyses. Wat kun je zeggen over het onderwerp (bv. broeikaseffect), de stellingname (bv. bestaat niet) en de toon (bv. persoonlijk, zakelijk, emotioneel). Verschillen de beide teksten hierin? Vergelijk je conclusies met conclusies die je als menselijke lezer over de teksten zou trekken. Is er sprake van een semantic gap? Lever in: een tekst met daarin de kwantitatieve analytische gegevens, in overzichtelijke vorm gepresenteerd. Beschrijf en motiveer je aanpak, en presenteer je conclusies. ( woorden) 5. Vector-space model In dit onderdeel van de opdracht indexeer je je zes documenten op basis van het Vector Space Model. Dit levert uiteindelijk een matrix van similarity scores tussen de documenten op, en hierop gebaseerd een ranking van de documenten. Op basis van de matrix kun je conclusies trekken over de relatie tussen de documenten. Komen deze conclusie overeen met wat je zelf zou concluderen na lezing van de teksten? Je voert dit onderzoek uit in een aantal stappen: 1. keuze van het vocabulaire 2. bepalen tfidf 3. berekening van similarity scores 4. trekken van conclusies Je werkt deze opdracht in een Excel-sheet uit. Vul hierin allereerst in: je naam filenamen van de documenten waarmee je werkt 1. keuze van het vocabulaire Het is de bedoeling dat je werkt met een vocabulaire van termen. Bepaal dit vocabulaire als volgt. Bereken voor elk document de woordfrequenties. Verwijder hiervoor stopwoorden en pas stemming toe, met behulp van Snowball of, als naar je oordeel dit programma niet goed genoeg werkt, kun je dit handmatig doen/verbeteren voor de voornaamste termen. Kies voor elk document de 5 meest frequente termen. Voeg deze samen tot een lijst, je vocabulaire. Als je vocabulaire te klein is, kies dan iets meer termen per document. Als je vocabulaire te groot is, laat dan per document een term weg. Als je eerste vocabulaire boven de 20 ligt kan het zijn dat er met de gekozen termen te weinig overlap tussen de documenten is. Verzin een zinvolle oplossing, bv. het kiezen van iets minder frequente maar wel betekenisvolle termen. Vul het vocabulaire in in de eerste tabel, Documentvectoren, van de Excel-sheet.

4 2. bepalen tfidf Vul alle waarden die je hieronder bepaalt in in de Excel-sheet en/of definieer de juiste functies in de sheet. Bepaal voor elk document hoe vaak elke term uit het vocabulaire voorkomt: de term frequency (tf) Bepaal voor elke term in hoeveel documenten deze voorkomt: de document frequency (df) en vervolgens de inverse document frequency (idf). Gebruik voor de idf de volgende formule: idf = 2 log (N/df) Bereken voor elke term in elk document de tfidf door de tf met de idf te vermenigvuldigen. 3. berekening van similarity scores Je berekent de similarity score voor elk paar documenten door de cosinus uit te rekenen tussen de documentvectoren. Een documentvector bestaat uit de tfidf-waarden van het document, en komt dus overeen met de getallen in de kolom tfidf van het document. In totaal maak je 6 * 5 /2 = 15 berekeningen: de similarity score is symmetrisch. kopieer elke documentvector naar een aparte tekstfile gebruik voor de berekeningen de tool cos.pl met steeds twee tekstfiles als invoer (zie documentatie aan einde van deze opgave) vul de uitkomsten in in de tweede tabel, similarity sccores, van de Excel-sheet. 4. trekken van conclusies Bepaal nu voor ieder document een ranking van de andere documenten, van meest naar minst gelijkend, en vul deze in in de derde tabel, ranking, van de Excel-sheet. Stel voor elk document vast welk ander document het meeste gelijkenis ermee vertoont, oftwel: vind voor elk document de nearest neighbour. Komt dit overeen met je verwachtingen op grond van auteurschap? Kun je op basis van de rankings/similarity scores ook iets zeggen over de politieke verwantschap van de auteurs, bv. dat twee grofweg hetzelfde standpunt vertegenwoordigen? Komt dat overeen met je eigen (menselijke) oordeel? Inleveren: Excel-sheets, korte bespreking van de resultaten ( woorden). Informatie over software TAPoRware Algemene informatie vind je op TAPoRware is een academisch produkt, dus is de support en hulp beperkt. Wil je de software op je eigen computer installeren, dan kan dat, zie Er zijn HTML tools, XML tools en Plain Text tools. We werken met de Plain Text tools. Een korte uitleg bij deze tools vind je op Alle tools hebben korte help pages (knop met vraagtekentje). Maak hier goed gebruik van. Let speciaal op: verwacht invoer-format diverse keuzes voor output: html, tab delimited text enz. als je een pagina met resultaten opslaat, bewaar je een webpagina met scripts, niet de feitelijke resultaten. Om die te bewaren moet je ze in het browser window selecteren en kopiëren naar een text file. Snowball Informatie over Snowball vind je op Er is een link naar de pagina die de Nederlandse versie toelicht. Snowball werkt vanaf de command line. Alle opties krijg je als volgt te zien: stemwords.exe h

5 Voor normaal gebruik, geef je de volgende command line: stemwords -l nl -i myfile waarin myfile de file met je ongestamde woorden is. Als je de resultaten naar een file wilt schrijven, geef dan: stemwords -l nl -i myfile > resultfile Belangrijk: myfile moet één woord per regel bevatten; leestekens moeten worden verwijderd. Cos.pl Dit is een eenvoudig Perl-programmaatje dat de cosinus tussen twee vectoren berekent. Het wordt vanaf de command line als volgt opgestart: perl cos.pl v1 v2 Hierin staan v1 en v2 voor twee files die de coördinaten van de vectoren bevatten. Elke coördinaat dient op een aparte regel te staan. Dit is bij voorbeeld het geval als je een kolom uit Excel naar een tekstfile kopieert. Voorbeeld v1: v2: Output: vector 1 = 1 0 vector 2 = cosinus =