<<

Ontdekken van Impressionisten m.b.v. afstanden tot bekende Impressionisten

Afstudeerproject Bachelor AI 2004/2005 1 juli 2005

Michiel Nieuwenhuijsen Universiteit van E-mail: [email protected]

Roeland Weve Universiteit van Amsterdam E-mail: [email protected]

Supervisors: Maarten van Someren Victor de Boer

Samenvatting

In dit document beschrijven we onze methode voor het zoeken in documenten naar nog onbekende Impressionisten. Deze Impressionisten worden gevonden door te kijken naar de afstand tot bekende Impressionisten. We beschrijven de verschillende modules waaruit onze methode is opgebouwd. Enkele modules zijn: het zoeken naar personen in documenten, vergelijken of twee persoonsnamen bij dezelfde persoon horen, en het berekenen van een score om een bepaalde zekerheid te krijgen of een naam wel of niet tot het domein hoort. Ook kijken we hoe deze methode zich verhoudt tot andere IE- methodes. Om de werking van onze methode te evalueren, zullen we een aantal tests uitvoeren op het domein van Impressionisme. Omdat het onderzoek geïnspireerd is op het werk van Victor de Boer, zullen we kijken in hoeverre onze methode vergelijkbaar is met die van hem. Tevens zullen we kort bekijken of deze methode ook op andere domeinen toepasbaar is. Te denken valt aan andere kunststromingen, personen uit een bepaald sportteam proberen te halen of mensen die eenzelfde soort beroep uitoefenen bij elkaar proberen te vinden. Tot slot bespreken we nog op welke punten de methode fouten maakt, en hoe deze fouten beperkt zouden kunnen worden.

Afstudeerproject Bachelor AI 2004/2005 2 Inhoudsopgave

1. Inleiding ...... 4 2. Information Extraction ...... 5 2.1 Relation Instantiation ...... 5 2.2 Afstandsmeting ...... 5 3. Methode...... 7 3.1. Module 1: Google zoeken...... 7 3.1.1. Problemen/nadelen bij gebruik van zoekmachines...... 7 3.2. Module 2: HTML verwijderen...... 8 3.3. Module 3: Named Entity Taggers: NE en NER...... 9 3.4. Module 4: NiWeDistance...... 10 3.4.1. Problemen NiWeDistance ...... 11 3.5. Module 5: Afstandsmeting...... 12 3.6. Module 6: Samenvoegen van namen en lijsten...... 13 3.7. Berekening van de score ...... 14 4. Uitslagen experimenten...... 16 4.1. Threshold: wat is de beste threshold...... 16 4.2. NE met en zonder leren en NER...... 17 4.2.1. Werking NE en NER ...... 17 4.2.2. Testen NE en NER...... 18 4.2.3. De test met de afstandsmethode op 10 HTML documenten...... 20 4.2.4. De test met de afstandsmethode op 200 HTML documenten via Google ...... 20 4.2.5. Conclusie ...... 21 4.3. Vergelijking met Relation Instantiation...... 22 4.4. Is het zinvol om te bootstrappen ...... 26 5. Verschillende domeinen...... 29 5.1. Expressionisme ...... 29 5.2. Voetballers in het team van het WK onder 20 in 2005 ...... 29 5.4. Conclusie...... 30 6. Conclusie en toekomstig onderzoek...... 31 7. Literatuurlijst...... 32 8. Gebruikte figuren ...... 33 9. Gebruikte tabellen ...... 33 10. Bijlage: werkverdeling ...... 34

Afstudeerproject Bachelor AI 2004/2005 3 1. Inleiding Het World Wide Web is een grote brei van websites bij elkaar. Om informatie hieruit te halen, zijn er vele zoekmachines die al deze websites geïndexeerd hebben en een gebruiker kan dan aan de hand van één of meerdere woorden op zoek gaan naar informatie. Er zijn verschillende mogelijkheden [BrightPlanet, 2004] om het zoeken effectiever te maken, maar tegenwoordig is dat niet meer genoeg. Mensen willen vragen kunnen stellen aan zoekmachines, als bijvoorbeeld: ‘Welk team won de WorldCup in 1989?’, ‘Wie was de president van Amerika in 1990?’ en ‘Welke planeten staan het dichtst bij de zon?’. Om deze vragen te beantwoorden kan men alle pagina’s met de hand uitlezen, categoriseren en relevante informatie gestructureerd opslaan. Dit is echter zeer tijdrovend, dus een automatische oplossing zou uitkomst bieden. Een methode hiervoor is informatie extractie (IE), dat automatisch bepaalde (semi-) gestructureerde informatie uit ongestructureerde informatiebronnen kan halen. IE is niet alleen geschikt voor internet websites, maar ook voor andere documenten, zoals e- mail en nieuwsgroepberichten, Word documenten, Adobe Portable Document Format(PDF) documenten en Rich Text Format (RTF) documenten. Het is niet alleen mogelijk IE te gebruiken op digitale informatie, maar ook voor bijvoorbeeld op analoge televisie en radio fragmenten. Op dit moment zijn er al een aantal IE systemen, onder andere Annie [Annie, 2005] dat bestaat uit een aantal componenten, die ervoor zorgen dat het systeem voor allerlei doeleinden gebruikt kan worden. Annie is onder andere gebruikt om samenvattingen van bedrijfsverslagen te maken over gezond- en veiligheidsonderwerpen én het analyseren van football gerelateerd informatie als commentaar, nieuwsartikelen en websites, om video’s over football wedstrijden te voorzien van semantisch commentaar en deze conceptueel te indexeren. Een ander IE systeem is ArtEquAKT [Artequakt]. De aanpak van het ArtEquAKT-project is technieken van analyse en kennisverzameling te gebruiken om informatie te halen uit webpagina's, gegeven een bepaald domein, en om daarvan een knowledge base te bouwen met een bovenliggende ontologie. Het doel van Artequakt is om automatisch biografieën te laten maken aan de hand van een knowledge base die automatisch is opgebouwd door tekst fragmenten uit webdocumenten te annoteren [Kim, et al. 2003]. De genoemde systemen kunnen niet gebruikt worden voor ons doeleinde, omdat deze hiervoor niet gemaakt zijn. Wel geven ze een goed idee over wat erop dit moment voor IE systemen wordt gebruikt. Onze informatie extractie afstandsmethode houdt in om (onbekende) instanties te zoeken met behulp van (woord-)afstanden tot bekende instanties. Op deze manier kun je aan de hand van bekende gegevens, bijvoorbeeld 2 personen van een bepaalde kunststroming, de resterende personen proberen te vinden voor die kunststroming om de set compleet te maken. We zullen ons idee uitwerken aan de hand van Impressionisten: Is het ontdekken van Impressionisten mogelijk met behulp van afstanden tot bekende Impressionisten? Het idee is geïnspireerd op het idee van Victor de Boer om bepaalde relaties in een concrete vorm te brengen; ‘Relation Instantiation’. Hier zijn verschillende methodes voor, die allemaal tot doel hebben om relaties te vinden tussen instanties en concepten. Voorbeelden hiervan zijn om relaties te vinden tussen de instanties van een concept ‘stad’ en een ander concept ‘land’, of de relatie zoeken tussen instanties in de klasse ‘ArtStyle’ en instanties in de klasse ‘Artist’ in een ontologie die het kunst domein beschrijft [de Boer, 2005]. De opzet van het verslag is als volgt. In hoofdstuk 2 zullen we onze methode en die van Victor de Boer nader omschrijven: hoe ze werken en wat de verschillen en overeenkomsten zijn. In hoofdstuk 3 gaan we dieper in op de gebruikte modules. We vertellen hoe alles werkt, welke problemen we zijn tegengekomen, en wat er nog niet goed genoeg werkt. In het vierde hoofdstuk behandelen we een aantal experimenten die wij gedaan hebben. Daarna de uiteindelijke conclusies, hoe goed werkt de methode, waarom werkt het wel of niet en de uitslag van de vergelijking met Victor de Boer’s ‘Relation Instantiation’. Tot slot zullen we vermelden op welke manieren de methode volgens ons verbeterd kan worden.

Afstudeerproject Bachelor AI 2004/2005 4 2. Information Extraction Hier zullen we de methode van Victor de Boer introduceren, waarop onze methode is geïnspireerd. Tevens zullen we kort omschrijven wat onze methode precies inhoudt, en hoe deze staat in relatie tot de methode van Victor de Boer.

2.1 Relation Instantiation Relation instantiation [de Boer, 2005]: Dit onderzoek betreft een methode voor het automatisch vinden van instanties van een in een ontologie gedefinieerde relatie. Deze methode gaat er vanuit dat alle instanties van te voren al bekend zijn, en zijn verzameld in een knowledge base. Er moet alleen nog gevonden worden voor welke instanties een bepaalde relatie geldt of niet. Elke instantie krijgt een score (IS), die gebaseerd is op de score van de documenten waarin die instantie is gevonden (DS). De DS geeft aan hoe goed een bepaalde relatie wordt gerepresenteerd door het document, en hoe waarschijnlijk het is dat een in dat document gevonden instantie kan worden toegevoegd aan de knowledge base. De DS is gebaseerd op het aantal bekende instanties die in dat betreffende document zijn gevonden.

2.2 Afstandsmeting Op het internet komen vaak opsommingen voor van personen in verschillende vormen. Soms worden in een enkele zin meerdere personen achterelkaar genoemd, vaak staan er rijtjes van personen onder elkaar en meestal staan personen die iets met elkaar gemeen vaak vlak bij elkaar in documenten. Dit is interessant voor informatie-extractie: is het mogelijk om de resterende personen eruit te halen als je iemand uit zo een rijtje weet? Op die manier kun je proberen bepaalde vragen te beantwoorden als: • wie komen er allemaal uit de muziekband X, als je maar een beperkt aantal personen weet uit die band? • wie spelen er allemaal in de film Y, mocht je een aantal (hoofdrol-)spelers weten? • wie zijn naast Claude Monet, Pierre Auguste Renoir en Alfred Sisley nog meer Impressionistische schilders?

Onze informatie extractie afstandsmethode houdt in om (onbekende) instanties te zoeken met behulp van (woord-)afstanden tot bekende instanties. Deze methode van afstandmeten is geïnspireerd door het project van Victor de Boer. Hij is bezig een methode te ontwikkelen om instanties van een bepaalde relatie te vinden uit een aantal documenten. Hij is dit aan het testen op het domein van Impressionisten en Expressionisten, vandaar dat wij hebben besloten om ons voornamelijk op het domein van Impressionisten te richten. Op deze manier kunnen we de verschillende methodes met elkaar vergelijken.

Onze methode werkt als volgt: 1. Bepaal een domein D, bijvoorbeeld Impressionisten en zorg ervoor dat er genoeg documenten zijn over dit domein. 2. Bepaal ook een seed-list met een aantal seeds die over het domein D gaan. In het geval van domein D kun je als seeds bijvoorbeeld ‘Claude Monet’, ‘Berthe Morisot’ en ‘Edgar Degas’ nemen. Deze drie namen vormen samen de seed-list. Meer of minder personen is ook mogelijk. 3. In elk van de documenten uit D moeten de persoonsnamen die er in staan gemarkeerd worden en de namen uit de seed-list moeten ook gemarkeerd worden. 4. Bepaal vervolgens per document de afstand van elke naam tot aan de dichtstbijzijnde seed uit de seed-list. Hoe kleiner de afstand, hoe beter de score. 5. Voeg alle zelfde namen bij elkaar en bereken een bepaalde score aan de hand van hoeveel keer de naam is gevonden, uit welke document de naam komt, uit hoeveel verschillende documenten, etc. 6. Sorteer de uiteindelijke lijst op score. Hoe beter de score, des te waarschijnlijker het is dat het een persoon is die ook tot domein D behoort.

Afstudeerproject Bachelor AI 2004/2005 5

Er is een aantal overeenkomsten en verschillen tussen onze methode, en de methode van Victor de Boer. De grootste overeenkomst is dat allebei de methodes voor een bepaald domein een aantal onbekende instanties te vinden, aan de hand van enkele bekende instanties. Victor de Boer probeert die instanties te vinden door een bepaalde relatie te vinden, die de onbekende met de bekende instanties verbindt. Die relatie hoopt hij te bewijzen door elk document een bepaalde score te geven, zodat die score iets zegt over de overige namen die in dat document staan. Onze methode probeert dat bewijs echter te vinden door te kijken naar de afstand in woorden van de onbekende instanties, tot de bekende instanties. Het uitgangspunt van Victor de Boer is dus dat de instanties van een bepaald domein in dezelfde documenten zullen staan, en ons uitgangspunt is dat de instanties van een bepaald domein binnen die documenten dicht bij elkaar zullen staan.

Onze methode lijkt ook aan te sluiten op Google Sets [Google, 2002] Helaas is er weinig informatie over hoe dat precies werkt. Deze applicatie zoekt aan de hand van een aantal opgegeven woorden de woorden die erbij horen. Als je bijvoorbeeld de kleuren Blue, Yellow en Red opgeeft, dan krijg je als resultaat onder andere Green, Black, White, Orange en Purple terug. De geruchten [Questsin, 2005] op internet gaan dat Google alle pagina’s in zijn database afgaat en dan tabellen en/of lijsten opzoekt en de inhoud hiervan opslaat. Maar omdat het algoritme niet bekend is, kunnen we ook niet zeggen hoe de werking van Google Sets zich verhoudt tot onze methode. We kunnen alleen afgaan op de geruchten en als we daar naar kijken, dan werkt onze methode wel anders. Google Sets maakt namelijk geen gebruik van afstanden tussen de gevonden namen. Alle namen in tabellen en rijtjes tellen even zwaar.

Afstudeerproject Bachelor AI 2004/2005 6 3. Methode Het programma is opgebouwd uit verschillende modules. De output van de ene module is de input van de andere module. In dit hoofdstuk zullen we elke module bespreken en vertellen wat de beperkingen zijn, wat we er van verwachten, wat de problemen waren die we tegen kwamen en hoe we die hebben opgelost.

3.1. Module 1: Google zoeken Om personen te zoeken zijn er documenten nodig die over het domein gaan waar op gezocht wordt. Voor het domein Impressionisme en Expressionisme zijn er documenten beschikbaar, maar voor andere domeinen zijn deze er niet. Mede omdat het ons interessant leek om ons programma op andere domeinen te testen, besloten we het zoeken naar documenten te automatiseren. Het enige wat dan nodig is, is het opgeven van een zoekterm en de hoeveelheid te downloaden documenten. Bijvoorbeeld de zoekterm ‘Impressionism OR Impressionists’ en maximaal 20 documenten. Op die manier hopen we 20 documenten te vinden die gaan over Impressionisme. Om specifieker te zoeken kan ook een zoekterm als ‘Impressionism OR Impressionists -neo -post -american’ opgegeven worden. In de hoop om dan enkel pagina’s terug te krijgen die alleen over Impressionisme gaan en niet over Neo- Impressionisme, Post-Impressionisme en American-Impressionisme. Na het zoeken op een zoekterm, geeft Google een resultatenlijst terug met links, beschrijvingen en titels. Het handige van Google is dat de gevonden website-links tussen en tags staan, dus met een simpele reguliere expressie kunnen de links uit de resultatenlijst gefilterd worden. Al deze links worden één voor één geopend en de inhoud wordt daarna opgeslagen in tekstbestanden. Mocht je 100 links terug willen krijgen en er zijn maar 50 links gevonden, dan werkt de code verder op de 50 links die gevonden zijn. Verder worden alleen de pagina’s opgeslagen die uit HTML code bestaan, dat wil dus zeggen dat de PDF, PS, DOC, XLS, PPT en RTF documenten niet worden ingelezen en opgeslagen, simpelweg omdat deze documenten lastig zijn om te zetten naar tekstformaat. Het komt ook regelmatig voor dat een website down is. Als dat het geval is, zal de desbetreffende pagina niet worden opgeslagen. De code is natuurlijk aan te passen voor andere zoekmachines, zoals bijvoorbeeld Altavista, Teoma, Yahoo, etc. Daarvoor moet de reguliere expressie aangepast worden om de links uit de resultatenpagina te filteren en de zoek-URL moet worden aangepast.

3.1.1. Problemen/nadelen bij gebruik van zoekmachines Het gebruik van een zoekmachine om documenten te verzamelen werkt niet zonder nadelen. We zullen kijken in hoeverre de verkregen zoekresultaten afwijken van de verwachtte resultaten. Een interessant domein om te testen, is bijvoorbeeld het domein van ‘presidenten’. In Google zouden we dan als zoekterm bijvoorbeeld ‘president OR presidents’ opgeven, en als seed-list kunnen we dan [‘Bush’, ‘Clinton’] gebruiken. Wat meteen opvalt, is de grote diversiteit aan verschillende talen. Bij de eerste twintig resultaten staan een aantal Amerikaanse sites, een Franse, Duitse, Estse, Mexicaanse en Italiaanse site. Bij al de niet-Amerikaanse sites is de kans groot dat er geen enkele seed zal worden gevonden, waardoor die site ook geen namen op zal leveren die uiteindelijk in de output komen te staan. De reden voor deze verschillende resultaten is dat ‘President’ een woord is dat in enorm veel talen gebruikt wordt, en het zal ook gebruikt worden in merknamen (brie). De zoekterm ‘president USA’ geeft al veel meer geschikte resultaten, alleen gaan een aantal van de sites over de band ‘The Presidents of the USA’. Doordat de namen van de seed-list niet in die sites voorkomen, zal dit niet direct een negatief effect hebben op de resultaten. Een ander domein is ‘voetballers’. In Engeland is voetbal ‘football’, dus als zoekterm gebruiken we ‘football players’. Hier valt meteen op dat er meer resultaten komen over ‘American Football’, dan over ‘voetbal’. Om die resultaten zoveel mogelijk uit te sluiten, veranderen we de zoekterm in ‘football players –nfl –american’. De beste resultaten worden echter verkregen door ‘soccer’ toe te voegen aan de zoektermen.

Afstudeerproject Bachelor AI 2004/2005 7 Uiteraard is het ook een optie om de namen uit de seed-list toe te voegen aan de zoekterm. Het gevaar is dan echter dat er een groot aantal resultaten komen die specifiek over een bepaalde persoon gaan, bijvoorbeeld George Bush, en niet zozeer over presidenten in het algemeen. Door als zoekterm ‘president Bush’ te gebruiken, beperken we het domein eigenlijk ook tot George Bush. De kans is groot dat we dan in de resultaten geen andere (Amerikaanse) presidenten krijgen, maar eerder mensen uit de omgeving van Bush; bijvoorbeeld ministers, of Laura Bush, de vrouw van. Een ander verhaal betreft het domein van Impressionisten. Bij zoeken naar ‘Impressionism OR Impressionist’ komen er veel resultaten waarin ook neo-, post-, en American-Impressionists staan. Dit hoeft niet direct een ongewenst resultaat te zijn, maar hier moet wel rekening mee worden gehouden. ‘Vincent van Gogh’ wordt bijvoorbeeld meestal als neo-Impressionist aangeduid, terwijl de meeste bronnen hem niet als ‘echte’ Impressionist zien. Omdat hij dus wel regelmatig op dezelfde sites wordt genoemd als ‘echte’ Impressionisten, zal hij door ons programma ook als Impressionist bestempeld kunnen worden, terwijl de gebruiker misschien alleen geïnteresseerd is in ‘echte’ Impressionisten. Om alleen sites te krijgen met ‘echte’ Impressionisten, kan ‘-neo –American –post’ worden toegevoegd aan de zoekterm, zodat er geen site wordt teruggeven die een van deze woorden bevat. Een andere ongewenste bijkomstigheid van Google is dat er af en toe resultaten komen, waarin die zoekterm helemaal niet voorkomt. Een extreem voorbeeld is de zoekterm ‘raar kapsel’, het eerste resultaat daarmee is de site van minister-president Jan Peter Balkenende. Dit komt omdat er een groot aantal sites een link naar die betreffende site hebben, onder de woorden ‘raar kapsel’. Een ander voorbeeld is ‘miserable failure’, dat levert een link naar de biografie van George Bush. Een eenduidige oplossing voor dit probleem lijkt niet voorhanden. Sommige domeinen, of zoektermen, zijn op meerdere manieren te interpreteren, waardoor er ook verschillende resultaten naar voren komen. Het is een optie om het domein te specificeren door een term uit de seed-list toe te voegen aan de zoekterm, maar het gevaar is dat het domein zich dan beperkt tot alleen die persoon. De beste resultaten zullen worden verkregen door domeinen te kiezen die maar op één manier is te interpreteren, bijvoorbeeld Impressionisten of Formule 1-coureurs.

3.2. Module 2: HTML verwijderen Het zoeken naar persoonsnamen uit HTML documenten kan alleen als alle HTML code weg is en pure tekst overblijft. Ten eerste omdat sommige Named Entity Taggers alleen al vast lopen op de HTML code en ten tweede, mocht de tagger de HTML documenten kunnen inlezen, dan geeft deze alleen maar rare namen terug. De HTML parser 1 van Python leek ons het makkelijkste te gebruiken, maar liep in praktijk veel vast op incorrecte HTML code. Het grootste probleem waren niet de tags die niet werden afgesloten, zoals bijvoorbeeld zonder een , maar juist niet-bestaande HTML code en verkeerde commentaar tags waren voor de HTML parser funest. Voordat HTML documenten geparsed konden worden door Python, hebben we een boel reguliere expressies en aanpassingen moeten programmeren. Een opsomming van de meest voorkomende problemen die zijn opgelost: • links werden wel weggehaald, maar in plaats daarvan kwam een nummer tussen blokhaken te staan, bijvoorbeeld [12], met een verwijzing naar de link. Waarom dit standaard het geval is, is onbekend. Het was mooier geweest om hier een optie van te maken. Om het weg te krijgen was het nodig om de HTML parser klasse opnieuw te schrijven. • De parser printte de tekst alleen op het scherm. Een oplossing leidde ertoe dat de tekst wel werd opgeslagen in een bestand, maar met maximaal 75 tekens breedte. Op die manier werden namen ook opgesplitst met een voornaam als laatste woord en achternaam als begin van de zin op de nieuwe regel. • Commentaar wordt vaak als < ! commentaar > of als geschreven, in plaats van

1 met ‘parsen’ wordt het verwijderen van iets bedoelt, in dit geval de HTML code..

Afstudeerproject Bachelor AI 2004/2005 8 • Horizontale lijnen in de HTML code,


, werden door de parser omgezet naar ‘----‘ streepjes. Dit leidde tot bizarre namen die werden gevonden door de Named Entity Taggers. •