Woordvolgorde aan te pakken met flexibiliteit

Maat: px
Weergave met pagina beginnen:

Download "Woordvolgorde aan te pakken met flexibiliteit"

Transcriptie

1 Woordvolgorde aan te pakken met flexibiliteit Een afstudeerscriptie in het kader van de studie Bedrijfscommunicatie & Digitale Media, faculteit Communicatie & Cultuur aan de Universiteit van Tilburg Door: Bram van Mensvoort Begeleiders: Dr. Emiel Krahmer, Dr. Erwin Marsi September 2006

2 Begrippenlijst Alpino Treebank pagina 17 Beoordeling pagina 30 Beoordelingsplaats Elementen pagina 18 Grammatica pagina 22 NLG pagina 6 Oplossing pagina 39 Originele zin pagina 37 Sjabloon pagina 18 Verzameling van door Alpino ontleedde zinnen. Deze databank bestaat onder andere uit XML formaat van de zinnen. Kans die de ontwikkelde surface realizer geeft aan een oplossing. Deze kans lig tussen 0 en 1 en kans hangt af van welke sjablonen de oplossing gebruikt. Als de sjablonen door veel zinnen in de grammatica ook gebruikt worden, is de kans groter. Relatieve plaats van een oplossing of suggestie, gerangschikt op beoordeling. Een oplossing met de hoogste beoordeling krijgt de 1 e plaats, een lagere oplossing krijgt een 2 e of nog lagere plaats. Een stuk zin dat niet gerepresenteerd hoeft te worden door een woord en zowel terminal als non-terminaal kan zijn. Een element is een onderdeel van een sjabloon en bevat in een XML-structuur attributen: <node begin="5" end="6" id="6" pos="verb" rel="" root="kan"/> Verzameling van grammaticaregels die ontleed zijn uit grammaticaal correcte zinnen. Hierbij worden de volgende gegevens opgenomen: dependency relatie, syntactische categorie, part-of-speech label, woordvolgorde en moederknoop. Als de grammatica wordt getraind, worden er nieuwe zinnen aan de grammatica toegevoegd. De grammatica kan opgeslagen worden in een database of in een XML bestand. Natural Language Generation is het automatisch genereren van teksten vanuit een niet-linguïstische bron. Bepaalde volgorde waarin elementen van een zin gezet kunnen worden, met de regels van de grammatica in acht genomen. Een oplossing bevat altijd evenveel elementen als de originele zin, maar dat wil niet zeggen dat deze ook grammaticaal correct is. Zin die ingevoerd is in de zingenerator module om oplossingen te genereren. Het kan zijn dat een oplossing overeenkomt met deze zin. Deel van een hiërarchische structuur waaruit een zin is samengesteld. Een sjabloon bestaat uit een moederknoop en haar (kind)elementen. Ieder kindelement kan weer als moederknoop functioneren. Een visualisatie: predc np Suggestie pagina 40 Waardering pagina 42 XML pagina 14 XSLT pagina 15 Zinnen det det een mod adj prachtige noun dag Een oplossing dat uit te meer of minder elementen bestaat dan de ingevoerde zin. Score dat proefpersonen geven aan een oplossing. Deze score kan een 0 (ongrammaticaal), 1 (matig) of 2 (perfect) zijn. extensible Markup Language is een formalisme om informatie te structureren. Dit formalisme bestaat uit elementen en attributen. Een gestandardiseerde taal dat transformaties in een XML-structuur mogelijk maakt. Een regel tekst, die een XML formaat representeert, en gebruikt is of gaat worden om oplossingen te genereren. De oplossingen zijn/worden gegenereerd door de zingenerator module. De output hiervan is een gerangschikte lijst met oplossingen. 2

3 Samenvatting Sentence Fusion is een toepassing waarbij twee gerelateerde zinnen samengevoegd worden tot een nieuwe zin, die de gedeelde informatie uit de twee zinnen omvat. Een belangrijk probleem hierbij is hoe automatisch de goede volgorde te bepalen van de woorden in de nieuwe, gefuseerde zin. In deze scriptie zal dit probleem nader bekeken worden. Momenteel wordt op diverse plaatsten Sentence Fusion onderzoek gedaan, onder meer in het Imogen project, binnen het IMIX NWO programma. Deze scriptie wordt uitgevoerd in het kader van het Imogen project. Om dit probleem aan te pakken is in deze scriptie eerst gekeken naar de gangbare technieken van Natural Language Generation (NLG) systemen. Dit zijn computersystemen die natuurlijke taal kunnen genereren. Daarbij wordt specifiek gekeken naar het gedeelte wat van abstracte informatie een leesbare zin kan genereren, namelijk surface realization. Om het probleem van de verkeerde woordvolgorde aan te pakken, zal er voor deze scriptie een surface realizer ontwikkeld worden. De surface realizer zal de zinnen corrigeren van de Sentence Fuser, het systeem dat binnen het Sentence Fusion onderzoek in ontwikkeling is en zinnen kan samenvoegen. Beide toepassingen zullen met elkaar moeten kunnen communiceren. Dit zal plaatsvinden met het formalisme XML. Dit is een formalisme om informatie te structureren. Ook wordt gekeken hoe de toepassing zo goed mogelijk kan aansluiten op andere NLG systemen in het vakgebied. Dit kan het beste met de XSLT standaard. Deze programmeertaal is gestandardiseerd, direct leesbaar en heeft op iedere computer hetzelfde resultaat. De zinnen waarmee de surface realizer mee te maken krijgt zijn alle in de Nederlandse taal en domeinonafhankelijk, dat wil zeggen dat ze niet zijn gebonden aan een bepaald onderwerp. Bij het ontwikkelen van het systeem blijkt al snel dat een XSLT systeem wegens beperkte functionaliteit erg omslachtig en complex zal zijn. Daarom is het onderzoek voortgezet met PHP, een programmeertaal met meer functionaliteiten. Hier is uiteindelijk een werkend systeem mee ontwikkeld, dat een correcte woordvolgorde van te toetsen zinnen kan aangeven. De kern van het systeem is dat grammatica regels vergeleken worden met de te toetsen zin. Als de zin overeenkomt met de regels uit de grammatica, is deze correct. Voordat een zin vergeleken kan worden met de grammatica wordt deze eerst door Alpino ontleedt, waardoor er linguïstische meta-informatie verkregen wordt en er een hierarchische structuur van zinsdelen ontstaat. De grammatica regels worden automatisch afgeleid van door Alpino ontleedde zinnen uit de Alpino Treebank. Het systeem zal een ingevoerde zin vergelijken met de grammatica op basis van meta-informatie en zal dan een aantal manieren van woordvolgorde terug geven. Deze worden gerangschikt op waarschijnlijkheid. Om de resultaten van de surface realizer vast te stellen, wordt er een evaluatieonderzoek gedaan. Uit dit onderzoek blijkt dat het genereren van oplossingen door de surface realizer gemiddeld 22 seconden duurt. Dit maakt real-time gebruik van de techniek onmogelijk, maar het is nog wel geschikt voor het genereren van documenten. Verder blijkt dat het systeem voor weinig zinnen (20%) minimaal een mogelijke manier van woordvolgorde kan aandragen. Maar de meest waarschijnlijke oplossingen die aangedragen worden zijn voor 80% als grammaticaal correct gewaardeerd door proefpersonen. In een technisch onderzoek is de imperfectie van de oplossingen nader bekeken. Daaruit blijkt dat de grammatica niet divers genoeg is om mee te werken. Dit is op te lossen door een grotere grammatica te gebruiken, zodat meer zinsdelen uit te toetsten zinnen herkent worden door het systeem. Een andere manier is om het systeem flexibel te maken. Daarbij is de bedoeling dat het systeem bepaalde optionele zinsdelen kan negeren, zodat er meer zinsdelen herkent worden. Hierbij valt te denken aan bijvoeglijke naamwoorden en bepalingen van plaats, tijd of doel. De ontwikkelde surface realizer is nu nog een basisversie, maar het onderzoek levert een hoop bruikbare informatie op om het systeem effectief te verbeteren en te optimaliseren. 3

4 Inhoudsopgave Begrippenlijst...2 Samenvatting...3 Inhoudsopgave Inleiding Theoretisch kader NLG is van grote invloed op kwaliteit en kwantiteit van informatie Van monolithisch naar modulair door de tijd NLG is nog niet perfect: probleemgebieden Content Determination: Informatie selectie Document structuring: Structuur en indeling van de tekst Lexicalisation: Bepalen van de juiste woordkeuze Aggregation: Zinsafbakening Referrig Expression Generation: Benoemen van verwijzingen Surface realization: van informatie naar grammaticaal correcte zinnen Modules: Document planning, microplanning, surface realization Methoden van surface realization: van skeletal propositions tot orthography Skeletal propositions Meaning specifications Lexicalised Case Frames Abstract Syntactic Structures Canned Text and Templates Orthography Communicatie tussen modules middels XML XML transformaties met XSLT XSLT gebaseerde NLG systemen Input: Alpino Treebank en Sentence Fuser Conclusie Systeem: woordvolgorde aangepakt Beoogd resultaat: rangschikking naar kwaliteit van de oplossing Realizer 1: XSLT gebaseerd werkt niet Het concept Obstakels Conclusie Realizer 2: PHP surface realizer Overzicht van de modules Preprocessor module: Voorbereiden van een zin Grammatica generator module: Destillatie van grammatica regels Zingenerator module Obstakels Evaluatie: 20% geeft een oplossing,waarvan 80% juist Performance evaluatie: 3 min. trainen, 22 seconden verwerken Trainingstijden grammatica generator Generatietijden van de zingenerator Analyse van de grammatica Conclusies Kringlooptest: toets met trainingszinnen voor 97% okee

5 De test: 933 bekende zinnen worden getoetst Conclusies Algemene resultaten: 20% geeft een oplossing De test: 1598 nieuwe zinnen worden getoetst Conclusies Technisch onderzoek: grammatica moet divers, maar is inflexibel Het aantal oplossingen is afhankelijk van de diversiteit van de grammatica De aanwezigheid van een oplossing is afhankelijk van optionele zinsdelen Conclusies Juistheidonderzoek: 80% van beste oplossing is correct Methode: vragenlijst om oplossingen te waarderen Resultaten Conclusies Conclusie Discussie...48 Bronvermelding...52 Bijlage: Formulier evaluatieonderzoek

6 1. Inleiding Google, Yahoo en MSN search zijn nodig toe aan een upgrade. Gebruikers van zoekmachines krijgen nu lange overzichten met zoekresultaten te zien na een vraag, maar wie kijkt er nu echt verder dan de eerste 3 zoekresultaten? En waar ga je bijvoorbeeld naar toe als je op zoek bent naar een specifiek soort woning? Niet naar Google., zegt Mark Tluszcz (geciteerd door E. Boogert, 2006), een van de eerste investeerder in het toen nog kleine Skype. Ergens heeft hij ook wel gelijk, als je op het internet zoekt, wil je graag snel antwoord op je zoekvraag. Maar zelfs Google, toch de meestgebruikte zoekmachine op het internet (Nielsen//NetRatings, 2006), werkt niet echt met je mee. Eerst moet je je zoekvraag vertalen naar een aantal trefwoorden en daarmee een beetje goochelen zodat Google je vraag correct interpreteert. Vervolgens krijg je een lijst met documenten terug van de search engine waar je zelf het antwoord op je vraag tussen moet zoeken. Er is nog heel wat ruimte voor verbetering. Question answering technologie geeft hierop een antwoord. Question answering zien sommigen als de volgende stap in de ontwikkeling van search engines. Het concept Question answering houdt in dat er met natuurlijke taal een vraag gesteld wordt aan een systeem. Dat systeem geeft daar dan met natuurlijke taal een antwoord op. In de laatste ontwikkelingen van Question answering systemen is het mogelijk om zelfs beeldmateriaal te verwachten in het antwoord. Daarnaast worden de vraagmogelijkheden steeds uitgebreider. Zo waren de eerste Question answering systemen slechts domein afhankelijk; het systeem weet dan van slechts een onderwerp (domein) iets af. Inmiddels is de ontwikkeling zover dat er ook domein onafhankelijke systemen gebouwd kunnen worden. Daarnaast kunnen Question anwering systemen behalve alleen weetjesvragen straks ook diepere vragen beantwoorden, zoals Wat is het verschil tussen een vlokkentest en een vruchtwaterpunctie? (M. Theune, E. Krahmer, W. Bosma, E. Marsi & C. van Hooijdonk, 2006). Veel huidige systemen beantwoorden een vraag van een gebruiker vaak met een lijst documenten. De gebruiker moet dan nog steeds zelf een combinatie maken van de deelantwoorden die in ieder document staan. Er valt dan niet te spreken van natuurlijke taal. Daarom wordt er een techniek ontwikkeld, waarmee het mogelijk is om zinnen te combineren. Deze techniek heet Sentence Fusion en wordt gedefinieerd als een text-to-text (revision-like) generation task which takes related sentences as input and merges these into a single output sentence (Marsi & Krahmer, 2005). Teksten worden dus gegenereerd door gerelateerde zinnen te combineren tot een nieuwe zin. Een verdere ontwikkeling van deze techniek kan het mogelijk maken om documenten samen te voegen tot één (gecombineerd) antwoord in natuurlijke taal. Sentence Fusion is een toepassing van Natural Language Generation (NLG). Reiter & Dale definiëren Natural Language Generation als: the automatic production of meaningful texts in (...) human language from some underlying non-linguistic representation of information (Marsi & Krahmer, 2005). NLG houdt dus in dat teksten automatisch gegenereerd kunnen worden. Ontwikkeling op het gebied van NLG heeft niet alleen voordelen op het gebied van Question Answering systemen, maar is op een veel breder gebied van toepassing. Op dit moment is er een Sentence Fusion systeem in ontwikkeling. Dit is het systeem dat in het IMOGEN project 1 ontwikkeld wordt door W. Bosma en M. Theune, verbonden aan de universiteit van Twente, en E. Marsi, C. van Hooijdonk en E. Krahmer, verbonden aan de universiteit van Tilburg. Dit systeem heeft nog te maken met enkele problemen. Een van de problemen is dat na het samenvoegen de woordvolgorde van de geproduceerde zin onbetrouwbaar is. In deze scriptie wordt een onderzoek beschreven dat een poging doet om het probleem van een verkeerde woordvolgorde in het Sentence Fusion systeem aan te pakken. 1 IMOGEN project: 6 Inleiding

7 In dit scriptieonderzoek zal er een systeem opgezet worden dat tracht te bereiken dat een computer wel constructieve oplossingen aandraagt om het probleem van woordvolgorde aan te pakken. Dit systeem zal in deze scriptie ook geëvalueerd worden, zodat direct te zien is of dit met het systeem inderdaad bereikt is. Maar voor het systeem beschreven wordt, zal dit document eerst dieper op de technische details ingaan die een relevante rol spelen bij dit systeem. Er zal dan bekeken worden waaruit een NLG systeem bestaat en wat de verschillende mogelijkheden zijn om het probleem aan te pakken. Daarna zal het systeem beschreven worden wat op basis van deze inzichten ontwikkeld is. Vervolgens zal dit systeem geëvalueerd worden. Het systeem wordt dan geanalyseerd op snelheid en kwaliteit. Ten slotte worden de resultaten besproken en gerelativeerd. Inleiding 7

8 2. Theoretisch kader NLG (Natural Language Generation) is van groot belang voor een scala aan toepassingen en kan zelfs van grote invloed zijn op de kwaliteit en kwantiteit van de te creëren informatie van de toekomst. Op dit moment worden er systemen ontwikkeld die dit trachten mogelijk te maken. Een nieuw te ontwikkelen onderdeel hiervan, een surface realizer, wordt in dit scriptieonderzoek bewerkstelligd en gaat hier een belangrijke taak in hebben. Voordat er ingegaan wordt op de werking van deze surface realizer, wordt eerst in dit hoofdstuk behandeld wat de gangbare gedachtes over NLG zijn, wat de stand van zaken betreft NLG nu is en hoe een NLG systeem in grote lijnen in elkaar zit. Daarnaast wordt er ingegaan op technieken waar dit scriptieonderzoek mee te maken krijgt NLG is van grote invloed op kwaliteit en kwantiteit van informatie Natural Language Generation kan van grote invloed zijn op verschillende toepassingsgebieden. Reiter & Dale (2000) halen een aantal voor- en nadelen aan. Hieronder worden ze samengevat weergegeven: Het kan tijdsbesparend werken bij het (deels) automatisch schrijven van documenten of het interpreteren van gegevens, bijvoorbeeld bij vluchtroosters. Het kan kostenbesparend werken, bijvoorbeeld het niet meer handmatig hoeven schrijven van een standaard document. Het bevordert de kwaliteit van informatie. Zoals in gevallen waar consistentie erg belangrijk is, of in gevallen waar een bepaalde conformering aan standaarden gewenst is. De kwantiteit van informatie kan makkelijk aangepast worden, bijvoorbeeld bij het automatisch vertalen naar meerdere talen. Verder wordt de toegankelijkheid van informatie beter gewaarborgd. Bijvoorbeeld hoeven er nu niet mensen aangenomen te worden om cijfers te vertalen naar begrijpelijke taal. Naast deze voordelen is het ook van belang mogelijke nadelen van NLG in acht te nemen: Niemand kan verantwoordelijk worden gesteld voor fouten of onjuistheden in een door NLG opgesteld document. Het wordt immers automatisch gegenereerd. Er kan wrijving ontstaan bij de veranderingsflexibiliteit van de lezers. De informatie kan nu gemakkelijk altijd up-to-date gehouden worden, alleen de lezers kunnen dat niet altijd zo snel aan. Het nut van NLG wordt in de praktijk al bewezen in bijvoorbeeld het systeem FoG, in Canada. Daar wordt een NLG systeem gebruikt om weersvoorspellingen te genereren Het weersysteem FoG Reiter & Dale (2000) beschrijven het weersysteem FoG. Dit systeem gebruikt men in Canada sinds FoG bepaalt aan de hand van een groot aantal meetgegevens wat interessant is voor de gebruiker en geeft dit weer in menselijke taal. Dit systeem kan dezelfde berichten zowel in het Frans als in het Engels genereren. Een lastig punt wat dit systeem heeft aangepakt is het bepalen hoe gedetailleerd de te generen tekst moet zijn. Bijvoorbeeld vanavond is het bewolkt of van zeven tot negen deze avond is het bewolkt. 8 Theoretisch kader

9 2.2. Van monolithisch naar modulair door de tijd Er hebben zich sinds 1961 al meer dan 368 systemen bedachte systemen zich aangemeld bij M. Zock en J. Bateman (2006). Reiter & Dale (Reiter & Dale, 2000) geven hun visie op de ontwikkelingen in het vakgebied NLG ontstaat in een context van automatisch vertalen. Dat komt omdat de eerste systemen ontwikkeld worden om automatisch te kunnen vertalen. De resultaten in deze pogingen komen al dicht in de buurt van een goede zin in de doeltaal. Tevens worden er in de zestiger jaren pogingen ondernomen om met een grammatica willekeurige grammaticaal correcte zinnen te genereren De eerste systemen worden ontwikkeld waarin het representeren van nietlinguïstische informatie in grammaticaal correcte zinnen benadrukt wordt. Een voorbeeld hiervan is het systeem van Davey s (1978). Zijn systeem genereert tekstuele structuren van expressies in een boter-kaas-en-eieren spel. De pogingen in deze periode brengen enkele belangrijke problemen van NLG aan het licht Het besef uit de jaren 70 dat NLG een complexe bezigheid is, brengt een golf aan research teweeg. Belangrijke onderzoeken van McDonald (1982), McKeown en Appelt (1982) brengen de golf op gang. Door deze en vervolgonderzoeken, komen de specifieke problemen aan het licht en verandert de insteek door een NLG systeem op te splitsen in modules nu. Het vakgebied wordt warrig door de grote diversiteit aan systemen die ontwikkeld worden. Wat wel kenmerkend voor deze periode is, is dat er applicaties ontwikkeld worden die praktisch toepasbaar zijn. Een voorbeeld hiervan is het FoG systeem. In deze periode wordt verder ook gekeken naar evaluatie technieken voor NLG systemen NLG is nog niet perfect: probleemgebieden Er zijn een aantal probleemgebieden in NLG waar ieder systeem mee te maken krijgt. Reiter & Dale (2000) benoemen zes hoofdgebieden, dit zijn niet per definitie de modules waar een NLG systeem mee is opgebouwd. Hieronder een overzicht van deze gebieden met hun taak: Content Determination Bepalen welke informatie wel en niet in de tekst moet worden opgenomen Document Structuring De structuur en indeling van de tekst bepalen Lexicalisation Het bepalen van de juiste woordkeuze. Aggregation De informatie opdelen in zinnen. Referring Expression Generation Het invullen van verwijswoorden door te kijken welke eigenschappen overgenomen moeten worden. Surface Realization of Linguistic Realization De informatie in grammaticaal correcte zinnen gieten die de juiste betekenis hebben Content Determination: Informatie selectie Het bepalen van de inhoud is soms strak aangegeven, maar meestal zal het NLG systeem het zelf moeten bepalen. Zo kan de inhoud afhangen van de context, het doelpubliek, het onderwerp of gebondenheid aan regels over bijvoorbeeld de lengte van de tekst. Theoretisch kader 9

10 Document structuring: Structuur en indeling van de tekst De informatie kan niet zomaar ongeordend worden gepresenteerd. De lezer verwacht een bepaalde structuur hierin. Zo kun je bijvoorbeeld verwachten dat een oorzaak voor een gevolg wordt vermeld, of dat in een weerbericht temperatuurinformatie wordt gebundeld. In deze probleemfase wordt de informatie geanalyseerd en er wordt een hiërarchische structuur van de tekst opgezet Lexicalisation: Bepalen van de juiste woordkeuze Lexicalisation kan in twee stappen verdeeld worden. In de eerste stap, conceptual lexicalisation, wordt het juiste communicatie niveau bepaald. Informatie kan vaak niet direct uit een bronbestand worden gepresenteerd, maar dient gegeneraliseerd of samengevat te worden. De tweede stap, Expressive lexicalisation, concentreert zich op de woordkeuze. Deze stap heeft meer betrekking op het zoeken van manieren om dezelfde informatie uit te dragen. Dit kan bijvoorbeeld afhankelijk zijn van variatie in de tekst, gebruikersprofiel of pragmatische overwegingen Aggregation: Zinsafbakening Aggregation houdt zich bezig met het indelen van de informatie naar zinnen. Hierbij wordt gekeken of de tekst vloeiend is. Zo houdt deze probleemfase zich ook bezig met het combineren van informatie die ook over twee zinnen te verdelen zou zijn Referrig Expression Generation: Benoemen van verwijzingen Deze probleemfase heeft zowel betrekking op het benoemen van concrete of abstracte concepten voor de eerste keer, als voor een volgende keer. Bijna alle NLG systemen opereren in een kleine context, waar dit nog geen probleem oplevert. Het huidige probleem is het verwijzen naar deze eerste benoeming. De moeilijkheid hierin is om de verwijzing te herkennen, hier een korter verwijswoord voor te vinden waardoor het betreffende concept niet ambigu wordt. Om dit te bepalen wordt er meestal gekeken naar de context, zoals voorgaande communicatie met de gebruiker Surface realization: van informatie naar grammaticaal correcte zinnen De surface realizer past de grammatica regels op de juiste manier toe aan brokjes informatie zodat er een grammaticaal correcte zin gegenereerd wordt. Deze grammatica regels omvatten morfologie, dat bepaalt hoe woorden worden gevormd, en syntax, dat bepaalt hoe zinnen worden gevormd. De meeste inputs van een surface realizer hebben als bases een beschrijving van een structuur van het proces in de te genereren zin. De surface realizer houdt zich dan bezig met de nietinformatieve aspecten in de zin. Ook een belangrijke activiteit is dan het gebruik van voorzetsels. Waar veel minder over gesproken wordt is de orthografische functie om het gebruik te bepalen van bijvoorbeeld hoofdletters, punctuatie en presentatie Modules: Document planning, microplanning, surface realization Tegenwoordig bestaan veel NLG systemen uit een aantal modules. De indeling van modules verschilt per systeem. Het is bijvoorbeeld mogelijk om voor ieder van de zes beschreven problemen uit de vorige paragraaf een module op te zetten. Maar het kan ook dat er met twee modules alle problemen aangepakt worden. Een eerste stap om te werken met modules was gezet in de jaren 80. Toen ontstond het verschil tussen wat er gezegd moest worden en hoe het gezegd moest worden. Wetenschappers hielden zich dan ook vaak uitsluitend met een van de twee bezig. 10 Theoretisch kader

11 In de jaren 90 werd er vaak een tussenmodule gebruikt. Tevens kregen de bestaande twee modules extra functies, zoals het omgaan met grafische elementen en output van meerdere formaten kunnen genereren. Volgens Reiter & Dale (2000) biedt de huidige ontwikkeling naar modularisatie veel voordelen: Modularisatie is meer dan alleen het faciliteren van de bouw van een bepaald programma: het maakt het ook mogelijk om componenten te hergebruiken bij meerdere programma s, en het maakt het makkelijker om een programma te veranderen en bij te werken door de scope van benodigde veranderingen te beperken. Het is niet vastgesteld wat de beste module-indeling is om een NLG systeem in te splitsen. Reiter and Dale (2000) geven een bruikbare indeling in modules aan. Deze indeling is gebaseerd op de zes probleemgebieden die in de vorige paragraaf gedefinieerd zijn. Document planner. Deze module verwerkt de problemen: Content determination, Document structuring en Conceptual lexicalisation. Microplanner. De module verwerkt: Expressive lexicalisation, Aggregation en Referring expression generation Surface realizer. Deze module verwerkt: linguistic realisation en generen van gewenste output Goal Document Planner Document Plan Microplanner Text Specification Surface Realizer Surface Text Illustratie 1. Pipeline model met module-indeling en tussendocumenten De samenhang tussen deze modules gebeurt via een pipeline model. Waarin de output van de ene module de input voor de volgende module is. Er vindt geen communicatie de andere kant op. Een module ontvangt dus nooit feedback van een volgende module. Belangrijk voor de surface realizer is de input, de text specification, en de output, de surface text. De text specification bevat een abstracte vorm van de zin. De surface text bevat de tekst in de eindvorm Methoden van surface realization: van skeletal propositions tot orthography Surface realization zorgt voor de vertaling van pure informatie naar begrijpbare taal en kan op verschillende manieren aangepakt worden. Het eerste onderscheid dat gemaakt kan worden is het template-based en het plan-based genereren van zinnen. Een plan-based systeem stuurt de input, de pure informatie, eerst door een aantal modules voordat een output wordt gegenereerd. Een template-based systeem verwerkt de input direct in een voorbedachte indeling waar de pure informatie alleen nog maar ingevoegd hoeft te worden. Hierdoor is een template-based vaak geschikt voor maar een onderwerp en is daarmee domein afhankelijk. Maar het onderscheid tussen een template-based en een plan-based systeem vervaagt volgens van Deemter, Krahmer en Theune (2005). Zij zien deze vervaging terug in het overslaan of toebedelen van een minimale taak van modules in sommige plan-based systemen. Daarnaast hebben beide systemen evenveel voordeel van de huidige trend waarbij linguïstische regels afgeleid worden uit corpora. Reiter & Dale (2000) definiëren nog een andere indeling bij surface realizers. Zij zien dat bij de ene realizer de input abstracter is dan de andere. Daarnaast verschilt de taak van de surface realizers, doordat deze bij de ene breder is dan bij de andere. Hieronder volgt de indeling die Reiter & Dale beschrijven. Theoretisch kader 11

12 De input voor dit scriptieonderzoek valt in de categorie Abstract Syntactic Structures. Hoewel het slechts een enkele functie zal vervullen; het zal zich voornamelijk richten op het ordenen van de woorden Skeletal propositions Een surface realizer met de meest abstracte input gebruikt de methode skeletal propositions. In deze methode worden teksten gerepresenteerd als een concept dat bepaalde argumenten kan hebben. De taak van de surface realizer is om van de abstracte vorm een zin te genereren. Een voorbeeld hiervan is: Input: deliver(courier, package, Mary) Output: De postbode bezorgde het groene pakketje aan Mary. In dit voorbeeld is het kernconcept deliver en de argumenten die worden meegegeven zijn hier courier, package en Mary. Hierbij moeten de termen als concepten worden gezien en zijn taalonafhankelijk. De surface realizer zorgt voor de juiste woorden bij deze concepten. En zal op basis hiervan de output genereren Meaning specifications Deze al iets concretere methode heeft meer informatie voor de input dan bij skeletal propositions. Hier wordt ook uitgeweid over de concepten door meer informatie hierover te geven. Visualisatie van de input: Output: De postbode bezorgde het groene pakketje aan Mary. Hier valt op te merken dat er meer informatie gegeven wordt. Zo is nu bijvoorbeeld duidelijk dat het een groen pakketje betreft. Dit wordt duidelijk gemaakt door aan een kernconcept een bewerking (modifier) te koppelen, in dit geval green. 12 Theoretisch kader

13 Lexicalised Case Frames Weer concreter is deze methode, waarbij de woorden worden bijgevoegd in de input. In plaats van de concepten waarvan woorden gegenereerd moeten worden bij de voorgaande methoden, zijn deze hier al bepaald. Ze moeten alleen nog wel morfologisch correct gemaakt worden. Voorstelling van de input: bezorgen koerier pakketje groen Mary Output: De postbode bezorgde het groene pakketje aan Mary. Uit het voorbeeld is te zien dat er geen concepten, maar woorden gebruikt worden. Deze woorden dienen als basis voor de uiteindelijke zin Abstract Syntactic Structures Deze methode lijkt erg op lexicalised case frames. Ze verschillen van elkaar, doordat de grammaticale syntactische structuur in de vorige methode door de realizer werd verwerkt, terwijl dat hier al in een eerdere module is gedaan. De taak van de realizer in deze methode is zorgen voor de juiste vervoeging van de woorden, toevoegen van functiewoorden en de woorden op de juiste manier ordenen Canned Text and Templates Soms is een stuk tekst zo statisch dat er niet verder gekeken hoeft te worden dan deze methode. In deze methode ligt de tekst helemaal vast en zijn er enkele gaten die opgevuld kunnen worden met de input. Voorstelling van de input: Output: The next 2 trains leave from Hier zijn de vastgelegde teksten The next en from. Deze zijn niet taalonafhankelijk Orthography De functie van de surface realizer in deze methode is slechts het vormgeven van tekst. Dit kan visueel, bijvoorbeeld met hoofdlettergebruik en punctuatie, maar ook auditief, waarbij er klanken aan de tekst worden toegeschreven. Theoretisch kader 13

14 2.6. Communicatie tussen modules middels XML De communicatie tussen de modules in het systeem voor dit scriptieonderzoek gebeurt in XML (Extensible Markup Language). XML wordt vaak aangeduid als een taal, maar eigenlijk is het een formalisme, omdat XML geen semantiek heeft. Een bruikbare omschrijving van XML geeft Norman Walsh (2006): XML is a markup language for documents containing structured information. Zij omschrijven XML als een opmaak taal voor documenten. Een opmaak taal, definiëren zij als een mechanisme om structuren aan te duiden in een document. Codefragment 1 geeft een voorbeeld van XML. <catalogus> <cd titel="texas alive"> <track nr="1" duur="2:45">john and Mary</track> <track nr="2" duur="3:00">the other side</track> </cd> <cd titel="colors"> <track nr="1" duur="2:30">red is the color</track> <track nr="2" duur="2:40">rainbow ahead</track> </cd> </catalogus> Codefragment 1: CD-catalogus in XML In dit codefragment wordt informatie over een kleine cd-catalogus gestructureerd gerepresenteerd. Voor de structurering maakt XML gebruik van elementen en attributen. Een voorbeeld van een element uit het codefragment hierboven is: <catalogus>. Een voorbeeld van een attribuut is hier titel= Texas alive. XML is ontwikkeld door het World Wide Web consortium 2 (w3c). Het w3c ontwikkelt webstandaarden en wordt gevormd door organisaties, eigen werknemers en gebruikers. De eerste versie van XML is gepubliceerd in 1998 en is afgeleid van SGML (Standard Generalized Markup Language, ISO 8879), wat zijn eerste standaard kent in XML heeft verschillende voordelen: Een belangrijke eigenschap van XML is dat het presentatie loskoppelt van inhoud. XML lijkt erg op HTML 3, met als grote verschil dat HTML meteen bepaalt hoe de lezer van het document deze te zien krijgt. XML daarentegen beschrijft alleen de inhoud. Het voordeel daarvan is dat er gemakkelijk meerdere presentatievormen van hetzelfde stuk inhoud gegenereerd kunnen worden. Een andere eigenschap van XML is dat het leesbaar is voor mens en machine. Het document wordt gestructureerd door leesbare en begrijpelijke bakens. Dit in tegenstelling tot bijvoorbeeld een kommagescheiden bestand, waar komma s de informatie structureren. XML is platform onafhankelijk. Dat betekent dat alle besturingssystemen, zoals Windows en Linux, hetzelfde met een XML bestand omgaan. XML biedt de mogelijkheid tot het genereren van een eigen structuur. De taal legt de gebruiker geen structuur op. 2 World Wide Web consortium: 3 HTML (HyperText Markup Language) volgens wikipedia (2006): Een taal voor de opmaak van documenten. HTML wordt vooral gebruikt op het internet, om webpagina's te tonen. 14 Theoretisch kader

15 Wat verder meespeelt in de keuze van XML voor dit project is: Communicatie standaard Het voldoen aan de standaard betekent dat heel veel systemen direct aansluiting kunnen vinden op het systeem. Uitwisselbaar Veel auteurs en veel systemen gebruiken al XML. Het is dus gemakkelijk om deze systemen met elkaar te laten communiceren Goedkoop Het gebruik van de XML standaard kost niets. Er is geen speciale software nodig om een XML document te lezen of te schrijven. Toekomstgericht XML is in 1998 ontwikkeld en belooft de communicatiestandaard van de toekomst te worden XML transformaties met XSLT Verwant aan XML is XSLT (Extensible Stylesheet Language Transformations). Waar XML dient om een structuur te beschrijven, dient XSLT voor de transformatie van die structuur. Een voorbeeld van XSLT, toegepast op het voorbeeld uit codefragment 1: <xsl:stylesheet xmlns:xsl=" version="1.0" xmlns=" <xsl:template match="catalogus"> CD catalogus: </xsl:template> <xsl:template match="cd"> <xsl:value-of </xsl:template> <xsl:template match="track"> <xsl:value-of <xsl:value-of select="text()"/> (<xsl:value- of </xsl:template> </xsl:stylesheet> Codefragment 2: Voorbeeld van een XSLT bestand De output van dit document zal zijn: CD catalogus: Texas alive: 1. John and Mary (2:45) 2. The other side (3:00) Colors: 1. Red is the color (2:30) 2. Rainbow ahead (2:40) Codefragment 3: Output van het XSLT bestand uit codefragment 2 Een taal die geschreven is voor XSLT is Xpath. Met deze taal kunnen elementen in de structuur gemakkelijk aangesproken worden. In codefragment 2 wordt Xpath gebruikt bij de match en select attributen. Theoretisch kader 15

16 XSLT is speciaal ontwikkeld om met XML om te gaan. Prescod (2001) heeft XSLT nader onder de loep genomen en kwam daarbij tot de volgende voordelen : Het is in XSLT erg gemakkelijk om documenten van boven tot onder te verwerken. Dat komt omdat XSLT ontworpen is om elementen in de XML structuur stuk voor stuk af te lopen. XML kan gemakkelijk gegenereerd worden met XSLT, omdat het helemaal ingesteld is op de XML structuur. Elementen zoeken in een XML structuur kan erg gemakkelijk. Daarvoor wordt Xpath gebruikt, dat is een taal die speciaal voor XSLT ontwikkeld is. XSLT is erg betrouwbaar; iedere XSLT engine gaat op dezelfde manier om met XML. Dit komt doordat er goed gedocumenteerd is hoe er intern bij programma s met XML omgegaan moet worden. XSLT is gemakkelijk te implementeren, omdat het meteen ingericht is om met XML overweg te gaan. Performance is afhankelijk van de snelheid van de XSLT verwerker. Dit in tegenstelling tot scripting talen, zoals PHP, waar de performance meer in handen is van de XSLT programmeur. Er hoeft dan maar een keer geoptimaliseerd te worden voor alle scripts. Maar, in de beschouwing komt ook naar voren dat XSLT een beperkte taal is en hierdoor ook enkele nadelen heeft: Het is lastig om op een andere manier door een XML document te bewegen dan van boven naar beneden. XLST is veel minder flexibel dan een scripting taal. Zo staat XSLT het niet toe om een variabele te overschrijven dat mogelijk in gebruik is door een ander gedeelte van het XSLT document. Dat betekent dat een gevulde variabele niet veranderd kan worden. XSLT is zeer beperkt in input/output. De enige vorm van informatie waar XSLT goed mee overweg kan is XML. De enige kanalen voor input van informatie zijn: de stylesheet, de input bestanden, weblocaties en argumenten. Aan de outputkant is XSLT vooral geschikt om XML of HTML te genereren. XSLT 1.0 heeft een zeer beperkte diversiteit in internet data structuren. De enige mogelijkheid hiervoor is een rij van karakters. Echter, toekomstige versies zullen waarschijnlijk ook bomen en nodelijsten kunnen verwerken. Complexe programma s, zoals een encryptie algoritme of weersimulatie, zijn in theorie mogelijk maar zijn erg lastig te programmeren. De snelheid bij dit soort toepassingen zal ook erg laag zijn. Wat verder meespeelt voor de keuze van XSLT voor dit project: Client-side processing is mogelijk er is geen dure, krachtige server nodig om NLG mogelijk te maken. Dit vergroot de flexibiliteit en bruikbaarheid van dit systeem enorm Het is mogelijk om een XSLT gebaseerde surface realizer in de browser te laten werken Er is geen speciale software nodig van de gebruiker om NLG mogelijk te maken. Hierdoor wordt de surface realizer een stuk toegankelijker XSLT gebaseerde NLG systemen Graham Wilcock heeft een poging gedaan om met XSLT een Engels/Finse surface realizer te realiseren. Daarbij vond de communicatie tussen de verschillende modules geheel in XML plaats. Dit kan als basis dienen voor dit scriptieonderzoek. 16 Theoretisch kader

17 In zijn onderzoek (G. Wilcock, 2001) gebruikt hij XSLT om tree-to-tree transformations te realiseren. Daarmee bedoelt hij dat een XML boom als input dient voor een module in het systeem. De module genereert dan een nieuwe, gewijzigde of nieuwe XML boom als output. Doordat in het onderzoek gebruik wordt gemaakt van XML-pipelines, kunnen er meerdere wijzigingen aan de oorspronkelijke boom plaatsvinden. Illustratie 1 geeft de pipeline weer, zoals G. Wilcock gebruikt heeft in zijn onderzoek. Een XML pipeline betekent dat de output van de ene module van het systeem dient als input voor de andere module. Er is dan geen communicatie terug naar een module die al benaderd is in de pipeline (van rechts naar links in de illustratie). Illustratie 1: Overzicht van het pipeline model, zoals Wilcock deze gebruikt Het systeem van Wilcock is tot op zekere hoogte taalonafhankelijk. Zo wordt er pas onderscheid gemaakt tussen de verschillende talen bij de modules microplanner en surface realizer. Ten slotte maakt de surface realizer van Wilcock gebruik van domein afhankelijke templates om zinnen te genereren. Dat betekent dat er slechts een beperkt aantal mogelijkheden aan zinnen zijn. Wilcock gebruikt open source 4 technieken om zijn systeem te realiseren. Apache Cocoon 5 : Framework voor webservers dat XML en XSLT meer mogelijkheden geeft. (onderdeel van Apache Tomcat 6 : Applicatie om componenten in te starten Apache Xalan 7 : Plugin voor Tomcat dat extra XSLT transformaties en pipelines mogelijk maakt (onderdeel van Input: Alpino Treebank en Sentence Fuser Nu de kaders voor de vorm van het systeem geschetst zijn, kan er ingegaan worden op de input van het systeem. De te ontwikkelen module van dit scriptieonderzoek gaat uit van een input van een eerdere module in het eerder besproken Sentence Fusion systeem. Deze input heeft dezelfde syntax als de zinnen in de Alpino Treebank 8. De syntax van deze zinnen zijn gebaseerd op de syntactische annotatie van het project Corpus Gesproken Nederlands 9 (CGN). Dit project heeft syntactische annotatie voor het Nederlands ontwikkeld. Het is gebaseerd op syntactische annotatie van de Tiger Treebank. Alpino, wat staat voor At Last Parsing Is Now Operational, is ontwikkeld binnen het NWO Pionier project Algorithms for Linguistic Processing. Door het analyseren van meer dan woorden is de Alpino Treebank ontstaan. Deze databank met geanalyseerde zinnen omvat het volledige cdbl gedeelte van een krant uit Eindhoven en een aantal zinnen uit Trouw. 4 Open source is computerprogrammatuur waarvan de broncode in te kijken en te veranderen is. (wikipedia, 2006) 5 Apache Cocoon: 6 Apache Tomcat: 7 Apache Xalan: 8 Alpino Treebank: 9 Corpus gesproken Nederlands: Theoretisch kader 17

18 Bij de analyse van een zin maakt Alpino gebruik van inzichten uit de Pollard & Sag variant van Head-driven Phrase Structure Grammar (HPSG grammatica). van der Beek, Bouma & van Noord (2000) definiëren dit als: "een taalkundige theorie die tracht om formeel precieze beschrijvingen en verklaringen te geven van taalkundige fenomenen. Dit maakt het mogelijk om zinnen te structureren door middel van dependency structuren. Een voorbeeld van een dependency tree wordt hieronder weergegeven. top top smain su noun Het verb is predc np det det een mod adj prachtige noun dag Illustratie 2: Dependency tree gegenereerd door Alpino van Het is een prachtige dag <?xml version="1.0" encoding="iso "?> <alpino_ds version="1.1"> <node begin="0" cat="top" end="5" id="0" rel="top"> <node begin="0" cat="smain" end="5" id="1" rel="--"> <node begin="0" end="1" id="2" pos="det" rel="su" root="het" word="het"/> <node begin="1" end="2" id="3" pos="verb" rel="" root="ben" word="is"/> <node begin="2" cat="np" end="5" id="4" rel="predc"> <node begin="2" end="3" id="5" pos="det" rel="det" root="een" word="een"/> <node begin="3" end="4" id="6" pos="adj" rel="mod" root="prachtig" word="prachtige"/> <node begin="4" end="5" id="7" pos="noun" rel="" root="dag" word="dag"/> </node> </node> </node> </alpino_ds> Codefragment 4: XML output gegenereerd door Alpino van Het is een prachtige dag Uit het voorbeeld is op te maken hoe de Alpino, net als de HPSG grammatica, de taal structureert. Alpino genereert van een zin, zogenaamde templates, in deze tekst verder betiteld als sjablonen. Het voorbeeld illustreert het sjabloon van een werkwoordelijk gezegde (Het is een prachtige dag). Dit is opgebouwd uit een onderwerp (Het), een werkwoord (is) en een lijdend voorwerp (een prachtige dag). Het lijdend voorwerp is weer een sjabloon dat een lidwoord (een), een bijvoeglijk naamwoord (prachtige) en een zelfstandig naamwoord bevat (dag). In deze scriptie worden deze als elementen aangeduid in plaats van een woord, omdat er ook elementen zijn die geen woorden bevatten, zoals het element dat een lijdend voorwerp beschrijft. Wanneer Alpino een zin ontleedt, wordt er informatie uit de zin gehaald. Deze informatie is terug te vinden in de boom bij bijvoorbeeld is, daar staat er als extra informatie verb. Daarmee wordt aangegeven dat dit element een werkwoord is. Zo wordt er verschillende informatie voor ieder element gedestilleerd. Bij een element wordt zo altijd de dependency relatie meegegeven, in de Alpino output (codefragment 4) aangegeven met het rel-attribuut. De dependency relatie definieert de verhouding van een element tot zijn moederknoop. 18 Theoretisch kader

19 Daarnaast wordt er voor non-terminale elementen een syntactische categorie meegegeven. Non-terminale elementen zijn elementen met kindelementen. In illustratie 2 zijn dit: top top, -- smain en predc np. Dit wordt in de Alpino output aangeduid met het cat-attribuut. En voor terminale elementen wordt part of speech informatie meegegeven. Terminale elementen zijn elementen zonder kindelementen, in illustratie 2 zijn dit: het, is, een, prachtige, dag. Deze worden in de Alpino output aangeduid met het pos-attribuut. Volgens van der Beek, Bouma & van Noord (2002) zijn er enkele verschillen tussen het CGN annotatiesysteem en de output van Alpino. Deze verschillen ontstaan, doordat de annotatie in de Alpino Treebank minder complex is dan de CGN annotatie. Verder is de syntax van de output XML en zijn de zinnen in de Alpino Treebank geschikt voor automatische analyse. De Sentence Fuser, waarbij in dit onderzoek mee gewerkt wordt, genereert output met dezelfde syntax als die Alpino genereert. De taak van de Sentence Fuser is om twee of meer zinnen te fuseren. Informatieblokjes uit de ene zin worden dan ergens in de tweede zin gevoegd. In het voorbeeld hieronder is te zien dat de ingevoegde informatieblokjes naadloos aansluiten tussen de rest van de zin. De input voor de Sentence Fuser kan bestaan uit de volgende twee zinnen: Cathy zag hen wild zwaaien Met bloemen zag ze hen zwaaien De Sentence Fuser zal dan zinnen genereren met mogelijke woordvolgordes. Een van die zinnen zou kunnen zijn: Cathy zag hen wild met bloemen zwaaien. Eigenlijk wordt dit in XML gecommuniceerd. Dat ziet er dan als volgt uit: <?xml version="1.0" encoding="iso "?> <alpino_ds version="1.0"> <node id="0" rel="top" cat="top" begin="0" end="6"> <node id="1" rel="--" cat="smain" begin="0" end="5"> <node id="2" rel="su" pos="noun" begin="0" end="1" root="cathy" word="cathy"/> <node id="3" rel="" pos="verb" begin="1" end="2" root="zie" word="zag"/> <node id="4" rel="obj1" index="1" pos="noun" begin="2" end="3" root="hen" word="hen"/> <node id="5" rel="vc" cat="inf" begin="2" end="5"> <!-- nieuwe deel hier --> <node id="8" rel="mod" cat="pp" begin="4" end="6"> <node id="3" rel="" pos="prep" begin="4" end="5" root="met" word="met"/> <node id="5" rel="comp" pos="noun" begin="5" end="6" root="bloem" word="bloemen"/> </node> <! - einde nieuwe deel --> <node id="6" rel="su" index="1"/> <node id="7" rel="mod" pos="adv" begin="3" end="4" root="wild" word="wild"/> <node id="8" rel="" pos="verb" begin="4" end="5" root="zwaai" word="zwaaien"/> </node> </node> <node id="9" rel="--" pos="punct" begin="5" end="6" root="." word="."/> </node> <sentence>cathy zag hen wild zwaaien.</sentence> </alpino_ds> Codefragment 5: Voorbeeldoutput van de Sentence Fuser Theoretisch kader 19

20 In dit voorbeeld wordt de samenvoeging van twee zinnen getoond. Delen uit de tweede zin worden tussen de eerste zin gevoegd. In dit voorbeeld is het op een correct wijze gebeurd, maar het kan ook voorkomen dat dit niet correct gebeurd. Om dat te detecteren wordt de te ontwikkelen surfacer realizer ingezet. Het volgende hoofdstuk gaat er op in hoe dit systeem in zijn werk zal gaan. In het voorbeeld is ook te zien hoe Alpino de informatie structureert in XML. De elementen worden hiërarchisch in XML geplaatst (dit zijn de regels met <node>). De ontleedde informatie wordt aangegeven met de attributen (zoals id, rel, pos, cat, en word) Conclusie In het vorige hoofdstuk was al aangegeven dat het doel van deze scriptie was om op een zo goed mogelijke manier het probleem van woordvolgorde aan te pakken zodat het bij kan dragen aan het Sentence Fusion systeem van het IMOGEN project. Met de kennis van dit hoofdstuk kan deze vraag genuanceerd worden. Uit dit hoofdstuk blijkt dat een NLG systeem uit meerdere modules bestaat. De constructieve bijdrage voor deze scriptie aan het Sentence Fusion systeem zal bestaan uit het ontwikkelen van een domeinonafhankelijke, Nederlandse surface realizer module. Een surface realizer module zal doorgaans verschillende problemen aanpakken om van pure informatie een lopende tekst te genereren. Het systeem in deze scriptie zal zich beperken tot het aanpakken van het probleem van woordvolgorde. De aangeleverde input valt daarbij in de categorie Abstract Syntactic Structures, waarbij de input relatief rijk aan informatie is. Om het te ontwikkelen systeem bij te kunnen laten dragen aan het Sentence Fusion systeem, zal het moeten kunnen communiceren met andere modules binnen het Sentence Fusion systeem. In dit hoofdstuk is beschreven dat de input hiervoor met XML plaatsvindt. Het systeem zal zich er op richten dat zowel de input als de output in XML plaatsvinden. De ontwikkeling van het systeem zal zich in eerste instantie richten tot een XSLT-gebaseerde aanpak, omdat deze techniek unieke voordelen biedt op dit vakgebied. XSLT bevordert de aansluiting met andere onderzoekgemeenschappen, omdat dit een taal is die aan standaarden voldoet van het w3c. Het behoeft ook geen speciale software om een XSLT te gebruiken. XSLT is gespecialiseerd in het omgaan met een XML structuur. Een XSLT gebaseerde surface realizer kan gemakkelijk gekoppeld worden aan andere NLG systemen. Dit komt doordat deze techniek breed ondersteund wordt en omdat een surface realizer module los staat ten opzichte van de andere modules in een NLG systeem. In tweede instantie, wanneer XSLT ongeschikt blijkt, zal PHP dienst doen als programmeertaal. Deze scriptingtaal is open-source en is al bekend bij de programmeur van dit project. Met deze kennis in acht genomen zijn de randvoorwaarden en uitgangspunten voor dit scriptieproject zijn als volgt vastgesteld: De surface realizer is domein onafhankelijk De input en output gebeuren uitsluitend met XML De input bestaat uitsluitend uit Nederlandstalige zinnen De input bestaat uit de output van de hiervoor besproken Sentence Fuser. Deze heeft de syntax zoals die gebruikt is in de Alpino Treebank (zie ook hoofdstuk 2.9). De uitgangspunten van de input zijn: o Ieder woord heeft een unieke id (attribuut id) o De woordvolgorde is mogelijk onjuist. o De correctiegegevens voor woordplaatsing is onbetrouwbaar (attribuut begin en o end) De suggesties voor ieder woord (attribuut word) zijn onbetrouwbaar, maar het systeem hoeft dit niet te corrigeren De output bestaat uit een lijst met mogelijkheden voor de uiteindelijke zin met zijn waarschijnlijkheid, gerangschikt op waarschijnlijkheid 20 Theoretisch kader

21 Systeem 21

22 3. Systeem: woordvolgorde aangepakt Nu bekend is wat er allemaal bij een NLG systeem komt kijken en wat de technieken zijn die dit systeem gaat gebruiken kan er nu ingegaan worden op de manier waarop de ontwikkeling van het systeem in zijn werk is gegaan. Tijdens het onderzoek wordt er geconstateerd dat de werkwijze met XSLT niet vruchtbaar is. Het onderzoek wordt dan vervolgd met een PHP gebaseerde surface realizer. De resultaten van dit PHP systeem zijn geëvalueerd in een evaluatieonderzoek, waar hoofdstuk 4 op in zal gaan Beoogd resultaat: rangschikking naar kwaliteit van de oplossing De belangrijkste taak voor dit systeem is dat de woordvolgorde correct bepaald wordt. Het bedachte concept voor het systeem gaat er van uit dat er eerst een grammatica wordt gevuld. Nieuwe zinnen, waar de grammaticale correctheid van vastgesteld moet worden, kunnen dan worden vergeleken met deze grammatica. Onderstaand voorbeeld illustreert de werking van het systeem: Beoogd resultaat van het systeem De grammatica is getraind met de zinnen: (1) Het had een prachtige dag kunnen zijn in Londen (2) Het had in Londen een prachtige dag kunnen zijn De volgende zin geldt als testzin: (3) Het had het beste karwei in Noorwegen kunnen worden Het systeem kan dan als resultaat geven: 1. Het had het beste karwei in Noorwegen kunnen worden (p=.082) 2. Het had in Noorwegen het beste karwei kunnen worden (p=.078) In het bovenstaande voorbeeld wordt er eerst een grammatica opgesteld. Deze wordt afgeleid uit de correcte zinnen (1) en (2). Hierbij wordt alleen de meta-informatie gebruikt die Alpino ontleedt uit de zinnen. Zinnen waarbij het niet zeker is of ze correct zijn, kunnen vergeleken worden met de informatie uit de grammatica. Een dergelijke zin is zin (3) in het voorbeeld. Het systeem vergelijkt de zin met de grammatica. Daarbij bekijkt het systeem niet alleen of de zin correct is, maar bekijkt ook hoe de woordvolgorde veranderd kan worden om tot een correcte zin te komen. Zo zal het systeem een mogelijke woordvolgorde als beste het karwei niet tussen de resultaten zetten, omdat deze frase, in deze volgorde, niet in de grammatica staat. Ten slotte geeft het systeem het resultaat van de vergelijking kenbaar door te rangschikken op de waarschijnlijkheid van correctheid. De waarschijnlijkheid staat achter de zinnen, aangegeven met (p=). De vergelijking van een zin met de grammatica gebeurt alleen op basis van meta-informatie, bijvoorbeeld op basis van woordsoorten. Dan is het mogelijk dat het beste karwei in zin (3) overeenkomt met een prachtige dag van zin (1). De zinnen beginnen beide met een lidwoord, gevolgd door een bijvoeglijk naamwoord en een zelfstandig naamwoord. Onderstaande illustratie visualiseert dit. predc np predc np det det het mod adj beste noun karwei Illustratie 3: Sjablonen worden vergeleken op woordsoort det det een mod adj prachtige noun dag 22 Systeem

23 Bij het vergelijken naar woordvolgorde en het zoeken naar alternatieven beperkt het systeem zich door slechts te zoeken naar woordvolgordes binnen een sjabloon. Zoals bekend is, genereert Alpino van een zin een boomstructuur, de dependency tree. Die boom bestaat uit sjablonen, zoals afgebeeld in illustratie 3. Door de hiërarchie van sjablonen te behandelen, worden uiteindelijk alle sjablonen bekeken op alternatieve woordvolgordes Realizer 1: XSLT gebaseerd werkt niet Er is eerst getracht om de surface realizer in XSLT te realiseren. Het systeem van Wilcock bewees al dat het mogelijk is om een surface realizer te baseren op XSLT. Wilcock gebruikte in zijn onderzoek een domeinafhankelijke template-based surface realizer. Het onderzoek in deze scriptie richt zich op een domein onafhankelijke surface realizer. Mogelijk werken zijn XSLT technieken ook voor een domein onafhankelijk systeem. XSLT lijkt in eerste instantie zeer geschikt voor een input met een Alpino syntax. Deze input is gebaseerd op sjablonen, waar XSLT speciaal voor ontwikkeld is. Deze taal is er ook standaard op ingesteld om sjablonen te doorlopen Het concept Het systeem bestaat uit twee stappen. In de eerste stap wordt er een grammatica gegenereerd en in een XML bestand opgeslagen. In de tweede stap kunnen zinnen getoetst worden aan deze grammatica. De illustratie hieronder visualiseert deze stappen. Alpino Treebank 1 Sentence Fuser 3 grammatica.xml XSLT stylesheet 2 4 Illustratie 4: Overzicht van de processen in de XSLT surface realizer In een eerste stap wordt er een grammatica (2) opgezet. Uit correcte zinnen in de Alpino Treebank (1) worden er regels afgeleid waaraan zinnen moeten voldoen. Dit wordt opgeslagen in een XML bestand (2). In de tweede stap wordt een zin getoetst aan de zojuist opgestelde grammatica. In deze stap wordt eerst de XML ouput van de Sentence Fuser (3) geopend. Deze bevat een link naar de XSLT stylesheet (4). De stylesheet opent het grammatica bestand (2). De XSLT stylesheet vergelijkt de twee bestanden. Het resultaat, waarin de waarschijnlijkheid van de mogelijkheden wordt aangegeven, wordt geretourneerd naar de Sentence Fuser (3). Systeem 23

24 Nu volgt een gedetailleerdere beschrijving van de werking van de XSLT stylesheet, de kern van het systeem. 1 <! XML opmaak van de zin --> 2 <node rel="presc" cat="np"> 3 <node rel="det" cat="det" word="een"> 4 <node rel="det" cat="det" word="een"> 5 <node rel="mod" cat="adj" word="prachtige"> 6 <node rel="" cat="noun" word="dag"> 7 <node> 1 <!- Grammatica.xml --> 2 <realization prob="0.25"> 3 <node rel="det" pos="det" /> 4 <node rel="mod" pos="adj" /> 5 <node rel="" pos="noun" /> 6 </realization> Codefragment 6: Ingekorte fragmenten van (links) een zin en (rechts) een grammatica In het codefragment hierboven geeft het werkgebied van de XSLT stylesheet aan. Aan de linkerkant staat een verminkt zinfragment (een een prachtige dag), aan de rechterkant staat het meest relevante sjabloon uit de grammatica. De taak van de stylesheet is om de twee sjablonen te vergelijken. Het eerste element van de sjabloon in de zin is een [rel:det, cat:det], zinsregel 3. De XSLT stylesheet zal eerst het overeenkomstige sjabloon in de grammatica opzoeken middels Xpath. Het gevonden sjabloon is rechts afgebeeld in codefragment 6. Het eerste element in dit sjabloon [rel:det, cat:det], grammatica regel 3, komt overeen met het zinselement in kwestie. Nu kan het tweede zinselement [rel:det, cat:det], zinsregel 4, vergeleken worden. De stylesheet zoekt in de grammatica weer naar het sjabloon. Dan zoekt hij weer een overeenkomstige regel. Het tweede element in de grammatica [rel:det, pos:det], (wederom) grammatica regel 3, is de juiste. Het enige probleem is nu dat in de grammatica slechts een keer een lidwoord staat [rel:det, pos:det], terwijl dit in de zin twee keer het geval is. De surface realizer beoordeelt het beschreven voorbeeld als correct, terwijl dit niet het geval is Obstakels Nu zou dit probleem gemakkelijk op te lossen zijn door bij te houden welke elementen in het sjabloon reeds verwerkt zijn. Het enige probleem is dat XSLT niet beschikt over deze functionaliteit. In XSLT is het namelijk niet mogelijk om dynamische variabelen te gebruiken. Het is wel mogelijk om variabelen aan te maken en uit te lezen, maar het is niet mogelijk om de inhoud ervan te wijzigen. Deze variabelen worden aangeroepen met <xsl:variable>. Het is dus niet mogelijk om bij te houden welke elementen uit de zin wel of niet overeenkomen met de grammatica. Er zijn methodes om het probleem aan te pakken, door bijvoorbeeld de XSLT engine, de software die de XSLT code uitvoert, aan te passen. Maar dit is echter erg omslachtig, complex en mogelijk inefficiënt. Daarnaast beperkt het de inzetbaarheid van het systeem, omdat het dan alleen mogelijk is met een aangepaste XSLT engine de surface realizer te gebruiken. Het is daarmee niet gewaarborgd dat het systeem op iedere computer hetzelfde werkt. Het onderzoek voor een XSLT gebaseerde surface realizer is daarmee ook gestaakt. Verder zou er mogelijk een performance probleem in de toekomst zich voor kunnen doen, aangezien XSLT vooral bij omvangrijke bestanden nog erg traag is. (Prescod, 2001) Conclusie XSLT biedt veel voordelen, wat het ontwikkelen van een surface realizer in deze taal erg aantrekkelijk maakt. Deze voordelen bevinden zich voornamelijk op het gebied van verdere ontwikkeling en toegankelijkheid. XSLT is echter ongeschikt om ingezet te worden om een plan-based surface realizer te realiseren. Dit komt vooral door de nadelen van XSLT over de beperkte functionaliteit. Het ontbreken van een functionaliteit voor dynamische variabelen bleek in het onderzoek de nekslag om een domeinonafhankelijke surface realizer te bouwen. Zonder dit probleem zou er mogelijk een performance probleem kunnen optreden. Maar dat heeft dit onderzoek niet kunnen bevestigen of ontkennen. 24 Systeem

25 3.3. Realizer 2: PHP surface realizer Een taal die meer functionaliteiten biedt en goed met XML kan omgaan, is PHP. PHP staat voor PHP Hypertext Processor en is een open source, platform onafhankelijke scripting taal voor internet applicaties. Deze taal is uitstekend geschikt voor de surface realizer. In het ontwikkelproces van de surface realizer bleek al snel dat het werken met verschillende modules de beste methode is. Daarom is het systeem opgesplitst in modules. De volgende paragrafen zullen hier verder op ingaan Overzicht van de modules De surface realizer is bestaat uit drie modules, te weten: een preprocessing module, een grammatica generator en een zingenerator. Illustratie 5 geeft een visualisatie van de samenhang tussen de modules. 2 1 grammatica Alpino Treebank preprocessor Grammatica generator regels Zin A Zin B 1 preprocessor 1 preprocessor Sentence Fuser Illustratie 5: Visualisatie van de samenhang tussen de modules grammatica.xml zingenerator Het systeem leert zichzelf de grammatica regels waar de zinnen uit de Alpino Treebank mee zijn opgebouwd. Dat gaat als volgt in zijn werk: Uit de Treebank worden alle zinnen eerst behandeld in een preprocessor module (1). Deze module zorgt er vooral voor dat de elemtenten in de correcte volgorde gezet worden. Vervolgens verzorgt de grammatica generator module (2) er voor dat de regels in een database gezet worden. Deze database, de grammatica, bevat alle grammaticaregels die uit de zinnen van de Alpino Treebank zijn gedestilleerd. Ten slotte worden de zinnen naar een XML bestand (3) weggeschreven. Met een goed getrainde grammatica, kunnen er zinnen getoetst worden op hun grammaticale juistheid. Dit proces begint bij het combineren van zinnen (Zin A en Zin B). Deze worden eerst in een preprocessor module (1) voorbewerkt, waarna ze met de Sentence Fuser software gecombineerd worden. Deze zinnen worden uiteindelijk getoetst aan de grammatica regels in de zingenerator module (4). Deze module kan uiteindelijk alle mogelijkheden bepalen waaruit de zin, volgens de grammatica regels, kan worden opgebouwd. Ten slotte wordt dit resultaat in XML weer teruggestuurd naar de Sentence Fuser. Een gedetailleerdere werking van de modules zal beschreven worden aan de hand van een voorbeeld. De voorbeeldzin die hiervoor gebruikt wordt is een zin uit de Alpino Treebank die gebruikt werd in de Battle of the Parsers 10 in 2001 op de LOT Winterschool. De voorbeeldzin 11 is: Het had een prachtige dag kunnen zijn in Londen. Illustratie 6 geeft een visualisatie weer van de dependency tree, zoals die in de Alpino Treebank staat. Hier worden straks de grammaticaregels op gebaseerd Zinnen in Battle of the Parsers: 11 De voorbeeldzin in XML: Systeem 25

26 top top smain punct. su 1:noun verb Het had vc ppart su 1 verb kunnen vc inf su 1 predc np verb zijn mod pp det det een mod adj prachtige noun dag prep in obj1 noun Londen Illustratie 6: Dependency tree van Het had een prachtige dag kunnen zijn in Londen. <?xml version="1.0" encoding="iso "?> <alpino_ds version="1.1"> <node begin="0" cat="top" end="10" id="0" rel="top"> <node begin="0" cat="smain" end="9" id="1" rel="--"> <node begin="0" end="1" id="2" index="1" pos="noun" rel="su" root="het" word="het"/> <node begin="1" end="2" id="3" pos="verb" rel="" root="heb" word="had"/> <node begin="0" cat="ppart" end="9" id="4" rel="vc"> <node begin="0" end="1" id="5" index="1" rel="su"/> <node begin="5" end="6" id="6" pos="verb" rel="" root="kan" word="kunnen"/> <node begin="0" cat="inf" end="9" id="7" rel="vc"> <node begin="0" end="1" id="8" index="1" rel="su"/> <node begin="2" cat="np" end="5" id="9" rel="predc"> <node begin="2" end="3" id="10" pos="det" rel="det" root="een" word="een"/> <node begin="3" end="4" id="11" pos="adj" rel="mod" root="prachtig" word="prachtige"/> <node begin="4" end="5" id="12" pos="noun" rel="" root="dag" word="dag"/> </node> <node begin="6" end="7" id="13" pos="verb" rel="" root="ben" word="zijn"/> <node begin="7" cat="pp" end="9" id="14" rel="mod"> <node begin="7" end="8" id="15" pos="prep" rel="" root="in" word="in"/> <node begin="8" end="9" id="16" pos="noun" rel="obj1" root="londen" word="londen"/> </node> </node> </node> </node> <node begin="9" end="10" id="17" pos="punct" rel="--" root="." word="."/> </node> </alpino_ds> Codefragment 7:XML formaat van de zin uit illustratie 9 als input voor de preprocessor. 26 Systeem

27 In de volgende paragrafen wordt eerst gekeken naar hoe het systeem traint. Hierbij worden de preprocessor en de grammatica generator module gebruikt. Later wordt er ingegaan op het toetsen van nieuwe zinnen aan de grammatica. Daar speelt de zingenerator module een grote rol Preprocessor module: Voorbereiden van een zin De preprocessor is de eerste module die gebruikt wordt bij het trainen van de grammatica. De module zorgt er voor dat de woordvolgorde correct gezet wordt. Uit illustratie 6 is op te maken dat de woorden van de originele zin niet in de juiste volgorde staan. De zin zou nu worden: Het had kunnen een prachtige dag zijn in London. De XML-structuur van Alpino bevat hier al een oplossing voor, het bevat namelijk de positie van de woorden. Daarmee is de correcte woordvolgorde af te leiden. In codefragment 7 staat een voorbeeld van een woord in XML formaat in de Alpino Treebank. De begin- en end-attributen geven de positie van ieder element aan. Daaraan is te zien dat deze attributen de juiste positie aangeven, maar de elementen niet in de juiste volgorde staan. De preprocessor module zorgt er ook voor dat de punctuatie verwijderd wordt uit de zin. Punctuatie kan problemen opleveren bij het vergelijken van grammaticaregels en de opbouw van nieuwe zinnen in de zingenerator module. En punctuatie wordt gedetecteerd als het rel-attribuut --" is en het pos-attribuut overeenkomt met punct. Een visualisatie van het eindresultaat van de preprocessor wordt hieronder weergegeven: top top smain su 1:noun Het verb had su 1 vc ppart vc inf su 1 predc np verb kunnen verb zijn mod pp det mod det adj een prachtige noun dag prep in obj1 noun Londen Illustratie 7: Dependency tree van de output van de preprocessor De preprocessor heeft in het voorbeeld het woord kunnen verplaatst naar een plaats voor zijn. Er is gekeken naar de begin/end attributen van kunnen. Deze duidden op een positie voor dit woord naar voor zijn. De preprocessor heeft verder alle punctuatie uit de zin verwijderd Grammatica generator module: Destillatie van grammatica regels De zin uit de preprocessor moet nu verwerkt worden, zodat deze in de database met grammatica regels gezet kan worden. De database bestaat uit een tabel waar alle grammatica regels opgeslagen worden. Op de volgende pagina vindt u een voorbeeld van een zinsregel, een grammatica regel en de overeenkomende database. Systeem 27

28 Zinsregel predc np Grammatica regel predc np Grammatica regel in de database det det een mod adj prachtige noun dag det det mod adj noun Illustratie 8: Voorbeeld van een zinsregel, een grammatica regel en de grammatica regel in de database Links in illustratie 8 wordt de structuur gevisualiseerd van zinsregel. Deze zinsregel komt uit een grammaticaal correcte zin en representeert de frase een prachtige dag. Hieruit is een grammaticaregel te destilleren, die in het midden van de illustratie is te zien. Te zien is dat alleen ontleedde informatie gebruikt wordt; De woorden zelf worden niet gebruikt. De grammaticaregel wordt in een database gezet, zoals die gevisualiseerd is rechts in illustratie 8. Het overkoepelende element in de grammaticaregel is [rel: predc, cat: np]. In de database (rechts) is dit element terug te vinden op id=1900. Daar worden ook de kindelementen aangegeven, deze komen overeen met de woorden een, prachtige en dag van de frase en met de id s 1901, 1902 en 1903 in de database. Ze worden verbonden aan het overkoepelende element met de kolom parent. Merk verder op dat terminal elementen, elementen zonder kindelementen, ook een regel in de database krijgen. Dit zijn de elementen die de woorden een, prachtige en dag kunnen representeren. Zij hebben de database regels met id=01904, id=01905 en id= Zo wordt er aangegeven dat het grammaticaal correct is dat deze elementen geen kindelementen hebben. Per grammatica regel wordt er bijgehouden: de eigenschappen van het element (de attributen cat, rel en pos). welke kindelementen het element heeft (in illustratie 8 zijn dit: een, prachtige en dag) de volgorde van de kindelementen het aantal keer dat de grammatica regel voorkomt. Bij het toevoegen van een grammatica regel wordt eerst gekeken of deze al bestaat. Als dat zo is, wordt de teller (kolom count) een opgehoogd. Wanneer dit niet het geval is, wordt de regel toegevoegd en wordt de teller op 1 gezet. Als een teller niet van toepassing is, krijgt het de waarde NULL. Hieronder wordt de database van het systeem na het toevoegen van de voorbeeldzin weergegeven. Op de volgende pagina staat een visualisatie van de hele zin met de overeenkomende database. 28 Systeem

29 top top smain su 1:noun Het verb had su 1 vc ppart vc inf su 1 predc np verb kunnen verb zijn mod pp det mod det adj een prachtige noun dag prep in obj1 noun Londen Illustratie 9: Grammatica database met overeenkomstige depencency tree Systeem 29

30 Zingenerator module Nieuwe zinnen kunnen uiteindelijk getoetst worden aan de grammatica met de zingenerator module. De Sentence Fuser werkt met zinnen die al door de preprocessor heen gegaan zijn, dus deze hoeven niet nogmaals behandeld te worden met de preprocessor. De zingenerator module loopt de zin af en bekijkt voor iedere zinsregel met diens kindelementen of hier een grammatica regel mee overeenkomt. Bij een correcte zin zal er voor iedere zinsregel een of meerdere grammatica regels gevonden worden. Een voorbeeld van een element uit de voorbeeldzin: Zinsregel predc np predc np Grammatica regels predc np predc np det det een mod adj prachtige noun dag det det noun Count = 10 num verb Count = 5 cp obcomp Illustratie 10: Zinsregel vergeleken met regels in de grammatica database det det mod adj Count = 15 De zinsregel uit illustratie 10 heeft als hoofdelement [rel:predc, cat:np]. Rechts van de verticale streep staan alle grammatica regels uit een fictieve grammatica database die ditzelfde hoofdelement hebben. noun De zingenerator module zal nu de grammatica regels van de database proberen toe te passen op de zinsregel. De linker grammatica regel zal als overeenkomstig beschouwd worden, want alle kindelementen in de grammatica kunnen door de zin worden opgevuld. De middelste grammatica regel is niet overeenkomstig, het kindelement [rel:, cat:num] staat niet in de zin. De rechter regel is weer wel overeenkomstig. Nu wordt er voor iedere regel bijgehouden hoe vaak deze gebruikt wordt, in de illustratie aangegeven met count. Hiermee is het mogelijk om de kans te berekenen van een bepaalde mogelijkheid om een zin te genereren. Zo zal het systeem in het voorbeeld de rechter regel een grotere kans geven dat deze grammaticaal correct is dan de eerste regel, omdat de count hoger is. Het systeem kan hiermee beoordelen welke oplossing de beste is. Een kans wordt berekend op basis van het aantal keer dat een regel gebruikt is. Dit getal wordt gedeeld op het totaal aantal regels met hetzelfde hoofdelement. In het voorbeeld is de linker regel 10x gebruikt in de corpus. Het totaal aantal keer dat een [rel:predc, cat:np] regel gebruikt is, is =30. De kans van de eerste regel is 10 : 30 =.33. De kans van de zin wordt bepaald door de kansen van alle zinsregels met elkaar te vermenigvuldigen. Dit is een manier die doorgaans ook in een PCFG 12 wordt gebruikt. Een voorbeeldoutput, na verwerking door de zingenerator module, wordt hieronder weergegeven. Voor dit resultaat is de voorbeeldzin ingevoerd in de surface realizer. De grammatica in dit voorbeeld bestaat uit alle achttien zinnen die zijn gebruikt in de Battle of the Parsers van <sentencegenerator version="1.0"> <sentence id="1" prob=".0051">het had een prachtige dag kunnen zijn in Londen</sentence> <sentence id="2" prob=".0037">het had in Londen een prachtige dag kunnen zijn</sentence> </sentencegenerator> Codefragment 8: Output van de surface realizer in XML formaat 12 PCFG (Probabilistic context-free grammar): Manier om door middel van kansberekening en een grammatica oplossingen te prioritiseren. 30 Systeem

31 In dit voorbeeld in XML worden twee oplossingen aangedragen. De ene oplossing (Het had een prachtige dag kunnen zijn in Londen) heeft een kans van.0051, de andere oplossing (Het had in Londen een prachtige dag kunnen zijn) heeft een kans van Obstakels Bij het ontwikkelen van het systeem is gebruik gemaakt van de Alpino corpus Battle of the Parsers 13. Iedere zin werd getest of ze correct door de modules verwerkt werden. Het onderzoek kent verschillende obstakels die op een bepaalde manier opgelost zijn. Hieronder een kort overzicht daarvan. Verwerking van index nodes Deze nodes vormen een uitzondering op andere nodes, omdat ze geen pos-, cat-, of word-label hebben. Ze leveren problemen op, omdat ze lastig te herkennen zijn uit de database. Deze nodes vormen vaak een essentieel onderdeel van een sjabloon, dus ze kunnen niet zomaar genegeerd worden. De oplossing hiervoor is om ze te behandelen als normale node, maar de pos- en catlabels mee te geven met waarde index. Een voorbeeld van een index node: <node begin="0" end="1" id="8" index="1" rel="su"/> Codefragment 9: XML representatie van een index node De woordvolgorde van Alpino komt niet overeen met uiteindelijke woordvolgorde De dependency structuren van Alpino zijn ideaal om een gewone PCFG om te bouwen. Het nadeel is dat het moeilijk te herleiden is wat de juiste woordvolgorde moet zijn. De oplossing die hiervoor gebruikt is, is om de zinnen te preprocessen. In deze stap worden de woorden, voordat ze in de grammatica gezet worden, in de juiste volgorde gezet door te kijken naar begin en end attributen. Het is daarbij zaak dat de dependency structuur zoveel mogelijk behouden blijft. Preprocessing levert onbruikbare en een onnodig groot aantal sjablonen op Door de preprocessing stap toe te passen blijken veel woorden inderdaad op de juiste plek te staan. Punctuatie wordt echter ook verplaatst. Dit levert problemen op, omdat er zo voor iedere mogelijkheid van punctuatie een nieuw sjabloon moet worden gemaakt. Hierdoor wordt de database met grammatica regels onnodig groot en daarmee neemt de performance van het systeem af. Dit probleem is opgelost door de punctuatie te verwijderen in de preprocessing stap bij de training. Bij te realiseren zinnen worden ze toegevoegd als attribuut aan de aangrenzende elementen. In de zingenerator module komen de sjablonen vervolgens overeen met de sjablonen uit de database. Bij een postprocessing stap kunnen de attributen er weer als elementen worden tussengevoegd. 13 Corpus Battle of the Parsers: Systeem 31

32 4. Evaluatie: 20% geeft een oplossing,waarvan 80% juist Het evalutatieonderzoek waarmee de surface realizer getest is, is vijfledig. In een eerste onderzoek wordt er gekeken naar de performance van het systeem. Er zal ingegaan worden op de snelheid van het systeem. Dit is een belangrijk onderdeel in het bepalen van de bruikbaarheid van het systeem. In een tweede onderzoek wordt de grammatica database getoetst aan reeds ingevoerde zinnen. Dit moet de technische werking van de programmatuur bevestigen. Het gebeurt aan de hand van het toetsen van zinnen waar de grammatica ook mee getraind is. In een derde onderzoek wordt er een algemeen beeld gecreëerd over de prestaties van het systeem. Hierin wordt een corpus met nieuwe zinnen getoetst aan de surface realizer waar vervolgens enkele kwantitatieve gegevens uit verkregen worden. In dit onderzoek valt op dat er voor lang niet alle zinnen een oplossing gegenereerd wordt. Als vierde wordt er een oorzaak gevonden voor de imperfectie van het systeem. Hierbij wordt de verwerking van enkele zinnen tot in detail geanalyseerd. Er wordt dan gekeken naar waarom het systeem bij een zin slechts een beperkt aantal oplossingen genereert en waarom het soms helemaal geen oplossingen genereert. Ten slotte beschrijft een vijfde gedeelte het onderzoek waarmee de output van het systeem op zijn juistheid wordt beoordeeld. In dit onderzoek is een enquête afgenomen waarin de kwaliteit van de zinnen door proefpersonen wordt gewaardeerd Performance evaluatie: 3 min. trainen, 22 seconden verwerken In het eerste deel van het evaluatieonderzoek wordt er ingegaan op de performance van het systeem. Hier kan mede de bruikbaarheid van het systeem in zijn huidige vorm worden bepaald. Er zal in deze evaluatie ingegaan worden op trainingstijden van een grammatica en er zal gekeken worden naar de snelheid waarmee een zin verwerkt kan worden tot oplossingen. Alle testen gebeuren op een computer met: 1.2 Ghz AMD processor, 256 MB RAM geheugen. De connectiesnelheid met internet is in theorie 100Mbit. Op de Linuxcomputer is verder geïnstalleerd: PHP versie 5.02, MySQL versie Trainingstijden grammatica generator In deze test is er gekeken naar de snelheid van het invoeren van zinnen in de grammatica. Er is een samengesteld corpus in de grammatica ingevoerd om de grammatica te trainen. Het trainingscorpus bestaat uit 1568 zinnen die samengesteld zijn uit delen van de corpora: Eindhoven corpus 14 (bevat totaal 7153 zinnen), Trouw (1100+ zinnen) en Alpino trainingszinnen 15 (350+ zinnen). De getrainde grammatica bestaat uit een combinatie van een aantal corpora: Zinnummers Aantal zinnen Gemiddeld aantal woorden Gemiddeld aantal sjablonen Alpino testzinnen ,8 13,3 Eindhoven corpus en ,5 40,3 Trouw en ,9 32,9 Tabel 1: Eigenschappen van de corpora in de grammatica 14 Eindhoven corpus: 15 Alpino trainingscorpus: 32 Systeem

33 Het trainen van de grammatica bestond uit het automatisch invoeren van de zinnen uit de diverse corpora middels de batch GUI van het systeem. Uit bovenstaande tabel is op te maken dat de corpora verschillende eigenschappen hebben. De relatief kleine selectie uit de Alpino testzinnen corpus is kenmerkend door de korte lengte van de zinnen. Er worden weinig woorden gebruikt in deze zinnen, dat heeft direct invloed op het aantal sjablonen in de zin. Het Trouw corpus maakt het grootste deel uit van de grammatica. Deze zinnen zijn van gemiddelde lengte. Het Eindhoven corpus maakt voor een kwart deel uit van de grammatica. De zinnen in dit corpus zijn relatief lang. Trainingstijden van de grammatica 12:00 trainingstijd per zin (min.:sec.) 10:00 8:00 6:00 4:00 2:00 0: aantal zinnen in database Alpino training Trouw 2001 Eindhoven Illustratie 11: Trainingstijden van het invoeren van zinnen in de grammatica De grafiek visualiseert de tijd die de grammatica generator nodig heeft om een zin toe te voegen aan de grammatica. Dit duurde gemiddeld 3:54 minuten op een totaaltijd van: 102:14:47 uur. De tijden per zin liggen tussen de nul seconden tot aan maximaal 10 minuten per zin. Uit de grafiek in illustratie 11 is op te maken dat de trainingstijd oploopt naarmate er meer zinnen in de grammatica staan. Dit is te verklaren met het optimalisatieproces. Dit proces houdt in dat bij het toevoegen van een sjabloon, de grammatica generator module eerst in de database kijkt of dit sjabloon er al in staat. Als dit het geval is, verhoogt deze de gebruiksteller van dit sjabloon. Als dit niet het geval is, wordt het sjabloon toegevoegd. Deze stap voorkomt dat de database onnodig groot wordt. Naarmate er meer zinnen zijn toegevoegd, zullen er ook meer sjablonen in de database staan. De grammatica generator module zal dus meer sjablonen moeten doorzoeken op hun gelijkenis. Daarom duurt het langer om te zoeken als de database groter is. De verwachting is dat dit effect afvlakt en de trainingstijden een constant maximum zullen krijgen. Deze verzadiging zal plaatsvinden als alle mogelijke sjablonen zijn toegevoegd. Te verwachten valt verder dat lange zinnen meer tijd nodig hebben om in de grammatica te zetten dan korte zinnen. Dit effect ontstaat doordat een lange zin meer sjablonen heeft die moeten worden vergeleken met sjablonen die al in de database staan. Maar het effect is moeilijk te meten, omdat de database steeds groter wordt. In de onderstaande grafiek worden de trainingstijden per sjabloon gevisualiseerd. Daarmee wordt de invloed van de lengte van de zin teniet gedaan. Systeem 33

34 30 Trainingstijden van de grammatica trainingstijd per sjabloon (sec.) aantal zinnen in database Alpino training Trouw 2001 Eindhoven corpus Illustratie 12: Trainingstijden per sjabloon In de grafiek is te zien wat de trainingstijden per sjabloon zijn. De lengte van de zinnen is nu niet meer van toepassing. Net als in de trainingstijd per zin is ook hier de invloed te zien van een grotere grammatica. De trend is stijgend naarmate er meer sjablonen in de grammatica zitten. Bij analyse van de gegevens, valt op dat er fluctuaties in de trainingstijden optreden. Dit kan verschillende oorzaken hebben: De aard van de gebruikte sjablonen kan per zin verschillen. Sjablonen met soortgelijke alternatieven zullen meer zoektijd nodig hebben. Bij het bekijken of een zin al in de grammatica staat, wordt er eerst grof gekeken worden of het hoofdelement gelijk is en of de ariteit gelijk is. Veel lijkende sjablonen zullen deze test gemakkelijk passeren en doorgaan naar de tweede stap waarin ieder kindelement nauwkeurig vergeleken wordt. De surface realizer server kan gebruikt zijn voor andere doeleinden. Doordat de server niet de volledige rekenkracht kan besteden aan de training zal dit de trainingstijd beïnvloeden. Dit is onwaarschijnlijk, omdat de server voor weinig (significant belastende) nevendoeleinden gebruikt werd. De batchprocedure levert een wisselende performance. Als de batchprogrammatuur zelf problemen oplevert, is dit terug te zien in de verwerkingstijd. Een slechtere programmatuur betekent een langere verwerkingstijd. Er kan vertraging in de connectie plaatsvinden. Omdat de zinnen direct van de Alpino Treebank worden gedownload, zijn de downloadtijden van invloed. Hoe slechter de verbinding, hoe langer de trainingstijd duurt. Maar in een test waar hetzelfde trainingscorpus alleen geopend en gepreprocessed werd, was de tijd hiervoor te verwaarlozen met een gemiddelde van 0,3 seconden per zin. 34 Systeem

35 Generatietijden van de zingenerator Deze test wordt de surface realizer nader bekeken op de verwerkingssnelheid. Er zal een testcorpus ingevoerd worden waarna er gemeten wordt hoe lang de surface realizer nodig heeft om iedere zin te verwerken. Hiermee kan ook de bruikbaarheid en het toepassingsgebied van de surface realizer bepaald worden. De samenstelling van het testcorpus is al eerder beschreven in paragraaf Daar wordt beschreven dat het corpus uit 1598 zinnen bestaat die komen uit de Trouw corpus, de Eindhoven corpus en de Alpino testcorpus. verwerkingstijd per zin (min:sec) 10:00 08:00 06:00 04:00 02:00 00:00 Realizer tijden Illustratie 13: Verwerkingstijden per zin zinnummer De tijden van de surface realizer zijn korter dan die van de grammatica generator. De surface realizer heeft tussen de nul seconden en negen minuten nodig met een gemiddelde van 22 seconden. De realisatie kent niet, zoals de grammatica generator wel kent, het effect dat er na het realiseren van meer zinnen het langer duurt om het resultaat te verkrijgen. Verder kan er zo snel gewerkt worden, omdat de zinnen onafhankelijk zijn van de MySQL-database. Nu is het zo dat de grammatica eerst in een XML bestand wordt opgeslagen. Bij het doorzoeken van de database hoeft dus alleen het XML bestand gebruikt te worden. Net zoals bij de grammatica training, zijn de te toetsen zinnen ook hier direct van de Alpino Treebank gedownload Analyse van de grammatica In dit evaluatie onderzoek wordt de grammatica die gegenereerd is uit 1568 zinnen bekeken. Er kunnen zo interessante linguïstische gegevens verkregen worden. Er zal ingegaan worden op het aantal sjablonen in de grammatica en de onderverdeling in dependency relatie, syntactische categorie en part-of-speech categorie. De zinnen in het trainingscorpus gebruikte totaal sjablonen. Het systeem heeft hier uiteindelijk 4943 unieke sjablonen uit gedestilleerd. Deze sjablonen bevatten 33 soorten dependency relaties, 24 syntactische categorieën en 18 verschillende part-of-speech categorieën. Totaal is 60% van de sjablonen in alle zinnen non-terminaal. Systeem 35

36 In de onderstaande tabel wordt er gegroepeerd per dependency relatie, dat is de wijze waarop een kindelement gerelateerd is aan het moederelement: Dependency relatie Aantal keer gebruikt Aantal sjablonen mod obj det su top mwp vc cnj body cmp crd predc pc app Dependency relatie Aantal keer gebruikt Aantal sjablonen r svp ld dp nucl tag predm obj se 80 2 dlink 79 1 obcomp w me Sat Totaal Tabel 2: Overzicht van sjablonen in de grammatica, gegroepeerd per dependency relatie In de onderstaande tabel wordt er gegroepeerd per syntactische categorie, dat is een categorie waarin alle non-terminale (elementen met kindelementen) elementen vallen: Syntactische categorie Aantal keer gebruikt Aantal sjablonen np pp smain top index mwu ssub inf conj ppart cp ap du Syntactische categorie Aantal keer gebruikt Aantal sjablonen rel ti advp sv oti detp whrel whsub whq ahi 4 2 svan 1 1 Totaal Tabel 3: Overzicht van sjablonen in de grammatica, gegroepeerd per syntactische categorie 36 Systeem

37 Uit die tabellen is af te leiden dat sjablonen met de dependency relatie het vaakst in zinnen gebruikt wordt. De diversiteit bij deze sjablonen is laag, slechts 28. Dat betekent dat er maar 28 verschillende sjablonen zijn die de relatie gebruiken. Dat is hoger bij --', maar dat is een uitzondering. Deze categorie bevat namelijk punctuatie en alle individuele woorden. De categorie die met de meeste sjablonen is die met relatie vc. Dit sjabloon merkt een werkwoordelijk geheel, zoals een infinitief. Er zijn dus veel manieren om een werkwoordelijk deel samen te stellen Conclusies In het evaluatieonderzoek, wat deze paragraaf beschrijft, werd vooral de bruikbaarheid van het systeem bekeken aan de hand van de performance hiervan. Uit de resultaten van de testen blijkt dat de grammatica er lang over doet om getraind te worden. Dit komt neer op gemiddeld ongeveer vier minuten per zin. Dit is erg lang, aangezien een grammatica een aantal duizenden zinnen moet bevatten om werkbaar te zijn. Maar dit gemiddelde kan nog zakken, wanneer de grammatica alle mogelijke sjablonen heeft opgenomen. Deze lange tijd hoeft overigens vrijwel geen negatieve invloed op de bruikbaarheid van het systeem, omdat het trainen van de grammatica een eenmalige actie is. Verder blijkt dat de zingenerator er ook lang over doet, met een gemiddelde van 22 seconden. Dit verkleint het toepassingsgebied, maar deze tijden zijn wel bruikbaar om bijvoorbeeld een weerbericht mee op te stellen Kringlooptest: toets met trainingszinnen voor 97% okee In dit evaluatieonderzoek wordt het systeem getoetst op zijn technische werking. Zinnen waarmee de grammatica getraind is worden hierbij ingevoerd in de zingenerator module. Als het systeem juist werkt, wordt in 100% van de gevallen de originele zin, de zin waar het systeem mee getraind is, teruggevonden tussen de mogelijke oplossingen die het systeem aandraagt De test: 933 bekende zinnen worden getoetst De test is gedaan aan de hand van 933 willekeurig geselecteerde zinnen die al in de database stonden. Onderstaande illustratie geeft weer hoe het systeem de originele zinnen beoordeelde. Het systeem beoordeelt de oplossingen en zet de beste oplossing op de 1 e plaats, minder waarschijnlijke oplossingen komen op een 2 e, of nog lagere plaats te staan. Ranking van zinnen in de database 1e plaats 2e plaats Lagere plaats Niet gevonden Illustratie 14: Resultaten kringlooptest Zoals illustratie 14 aangeeft heeft het systeem in 97% van de gevallen een oplossing gevonden voor zinnen die al in de database zitten. In 3% van de gevallen is de originele zin niet teruggevonden. Systeem 37

Dit voorbeeldproject beschrijft het gebruik van web services (open standaarden) voor de ontsluiting van kernregistraties bij de gemeente Den Haag.

Dit voorbeeldproject beschrijft het gebruik van web services (open standaarden) voor de ontsluiting van kernregistraties bij de gemeente Den Haag. Voorbeeldproject Een Haagse SOA Dit voorbeeldproject beschrijft het gebruik van web services (open standaarden) voor de ontsluiting van kernregistraties bij de gemeente Den Haag. Aanleiding Vanuit de visie

Nadere informatie

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous 2006-2007 Inhoudsopgave 1 2 1.1 Programmeertaal PHP5..................... 2 1.2 MySQL database......................... 3 1.3 Adobe Flash...........................

Nadere informatie

Module II - Enkele Begrippen

Module II - Enkele Begrippen Module II - Enkele Begrippen Wanneer we spreken over het Internet, het bekijken van websites, komen we al gauw een aantal begrippen tegen. Enkele van de veelgebruikte begrippen binnen de Internet wereld

Nadere informatie

Zoeken in een Afrikaans corpus: baie maklik! Liesbeth Augustinus Ineke Schuurman Vincent Vandeghinste Peter Dirix Frank Van Eynde

Zoeken in een Afrikaans corpus: baie maklik! Liesbeth Augustinus Ineke Schuurman Vincent Vandeghinste Peter Dirix Frank Van Eynde Zoeken in een Afrikaans corpus: baie maklik! Liesbeth Augustinus Ineke Schuurman Vincent Vandeghinste Peter Dirix Frank Van Eynde Colloquium Afrikaans - 23 oktober 2015 AFRIBOOMS PROJECT Syntactisch geannoteerd

Nadere informatie

Module V - XML. Stefan Flipkens - Cursus: Internet - Intranet (2004-2005) V 1

Module V - XML. Stefan Flipkens - Cursus: Internet - Intranet (2004-2005) V 1 Module V - XML Extensible Markub Language is een eenvoudig en flexibel text-formaat voor de opslag van data. Het is een meta opmaak (markup) taal voor de beschrijving van gestructureerde gegevens. De stukjes

Nadere informatie

Opdrachtformulering (pagina 3 van 7)

Opdrachtformulering (pagina 3 van 7) Afstudeerovereenkomst van Tim Wils Bijlage 1 Opdrachtformulering (pagina 3 van 7) Dit project betreft een eigen framework (soort API) waarmee relatief gemakkelijk en in korte tijd eindproducten opgezet

Nadere informatie

De mogelijkheden van XML voor de langdurige bewaring van digitale documenten. DAVID studiedag 30 nov 2000

De mogelijkheden van XML voor de langdurige bewaring van digitale documenten. DAVID studiedag 30 nov 2000 De mogelijkheden van XML voor de langdurige bewaring van digitale documenten DAVID studiedag 30 nov 2000 Prof. Jan Engelen, Steven Depuydt K.U.Leuven - ESAT Onderzoeksgroep Document Architecturen Waarom

Nadere informatie

CEL. Bouwstenen voor een elektronische leeromgeving

CEL. Bouwstenen voor een elektronische leeromgeving CEL Bouwstenen voor een elektronische leeromgeving FACTSHEET CEL VERSIE 1.0 DECEMBER 2001 CEL - Bouwstenen voor een elektronische leeromgeving Inhoudsopgave Wat is CEL? 1 Uitgangspunten 1 De eindgebruiker

Nadere informatie

React en React Native voor websites en apps

React en React Native voor websites en apps React en React Native voor websites en apps H A N S-PE T E R H ARMSEN HEEFT DI T GE SCH R E V EN IN APRI L 2017 Deze whitepaper is bedoeld voor product owners en beslissers. Hij gaat over React, een JavaScript

Nadere informatie

Research & development

Research & development Research & development Publishing on demand Workflow ondersteuning Typesetting Documentproductie Gespecialiseerd document ontwerp Web ontwerp en onderhoud Conversie Database publishing Advies Organisatie

Nadere informatie

Over PHP. PHP en MySQL. 1.1 Inleiding. In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze

Over PHP. PHP en MySQL. 1.1 Inleiding. In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze Over PHP 1.1 Inleiding In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze programmeertaal? En hoe is het ontstaan? Ook leer je welke editors je kunt gebruiken om PHP-scripts te maken en hoe je eenvoudig

Nadere informatie

Educatief Professioneel (EDUP) - C1

Educatief Professioneel (EDUP) - C1 Educatief Professioneel (EDUP) - C1 Voor wie? Voor hogeropgeleide volwassenen (18+) die willen functioneren in een uitdagende kennis- of communicatiegerichte functie: in het hoger onderwijs, als docent

Nadere informatie

Inleiding: Combinaties

Inleiding: Combinaties Zinnen 1 Inleiding: Combinaties Combinaties op verschillende niveaus: Lettergrepen als combinaties van fonemen. Woorden als combinaties van morfemen. Zinnen als combinaties van woorden en woordgroepen.

Nadere informatie

Zicht - Content Management Systeem een algemene beschrijving

Zicht - Content Management Systeem een algemene beschrijving Zicht - Content Management Systeem een algemene beschrijving Versie april/2008 Zicht nieuwe media ontwerpers 2008 1 Inleiding Een Content Management Systeem (CMS) is een webapplicatie waarmee je zonder

Nadere informatie

Flexibiliteit en Duurzaamheid: Teksttechnologie en Museumdocumentatie

Flexibiliteit en Duurzaamheid: Teksttechnologie en Museumdocumentatie Flexibiliteit en Duurzaamheid: Teksttechnologie en Museumdocumentatie Spectrum in een nieuw jasje Edward Vanhoutte & Ron Van den Branden Centrum voor Teksteditie en Bronnenstudie Koninklijke Academie voor

Nadere informatie

Alpino and Corpus Linguistics

Alpino and Corpus Linguistics Alpino and Corpus Linguistics Gertjan van Noord University of Groningen April 11, 2005 1 Alpino and Corpus Linguistics Context: Wide-coverage Parsing with Alpino sophisticated linguistic analysis care

Nadere informatie

Information Retrieval: introductie 1

Information Retrieval: introductie 1 Information Retrieval: introductie 1 hoe is relevante informatie in zeer grote hoveelheden van documenten te vinden? deze documenten moeten wel door de computer verwerkbaar zijn vaak zijn er te veel hits:

Nadere informatie

OpenIMS 4.2 Portaal Server

OpenIMS 4.2 Portaal Server OpenIMS 4.2 Portaal Server Inhoudsopgave 1 WAT IS EEN ENTERPRISE INFORMATIE PORTAAL?...3 1.1 BESPARINGEN...3 1.2 GERICHT OP EEN SPECIFIEKE DOELGROEP...3 2 OPENIMS PORTAAL SERVER (PS)...4 2.1 CENTRAAL BEHEER...4

Nadere informatie

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan: Vrijwel alle namen van software- en hardwareproducten die in deze cursus worden genoemd, zijn tegelijkertijd ook handelsmerken en dienen dienovereenkomstig te worden behandeld. Alle rechten voorbehouden.

Nadere informatie

Voorgeslacht rapport generator

Voorgeslacht rapport generator Beschrijving Voorgeslacht rapport generator versie 3.5 (16 mei 2006) auteur:berend Meijer De voorgeslacht rapport generator is een sjabloon voor gebruik met het genealogie-programma Aldfaer (www.aldfaer.nl).

Nadere informatie

Educatief Professioneel (EDUP) - C1

Educatief Professioneel (EDUP) - C1 Educatief Professioneel (EDUP) - C1 Voor wie? Voor hogeropgeleide volwassenen (18+) die willen functioneren in een uitdagende kennis- of communicatiegerichte functie: in het hoger onderwijs, als docent

Nadere informatie

In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze. programmeertaal? En hoe is het ontstaan? Ook leer je welke editors

In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze. programmeertaal? En hoe is het ontstaan? Ook leer je welke editors 1. Over PHP 1.1 Inleiding In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze programmeertaal? En hoe is het ontstaan? Ook leer je welke editors je kunt gebruiken om PHP-scripts te maken en hoe je

Nadere informatie

Handleiding helpdesk. Datum: 08-10-2014 Versie: 1.0 Auteur: Inge van Sark

Handleiding helpdesk. Datum: 08-10-2014 Versie: 1.0 Auteur: Inge van Sark Datum: 08-10-2014 Versie: 1.0 Auteur: Inge van Sark Inhoudsopgave Inhoudsopgave... 2 1. Beheer helpdesk... 3 1.1. Settings... 3 1.2. Applicaties... 4 1.3. Prioriteiten... 5 1.4. Gebruik mailtemplates...

Nadere informatie

OPA-methode. Inhoud. 1. De OPA-methode maakt uw zinnen leesbaar 2. Zinnen bestaan uit zinsdelen 3

OPA-methode. Inhoud. 1. De OPA-methode maakt uw zinnen leesbaar 2. Zinnen bestaan uit zinsdelen 3 OPA-methode Inhoud 1. De OPA-methode maakt uw zinnen leesbaar 2 Zinnen bestaan uit zinsdelen 3 U kunt zinnen altijd in de vier OPA-volgordes schrijven 5 PP in taal 2001 versie april 2001 1 1. De OPA-methode

Nadere informatie

Cover Page. The handle http://hdl.handle.net/1887/20358 holds various files of this Leiden University dissertation.

Cover Page. The handle http://hdl.handle.net/1887/20358 holds various files of this Leiden University dissertation. Cover Page The handle http://hdl.handle.net/1887/20358 holds various files of this Leiden University dissertation. Author: Witsenburg, Tijn Title: Hybrid similarities : a method to insert relational information

Nadere informatie

WHITEPAPER Sentiment Analyse

WHITEPAPER Sentiment Analyse WHITEPAPER Sentiment Analyse We creëren tegenwoordig In 2 dagen tijd net zoveel data als dat we deden vanaf het ontstaan van de beschaving tot en met 2003. Ruim 88% van die data is Dark Data. Wikipedia

Nadere informatie

Handleiding SEO controle & Publiceren blog-artikelen Wageningen UR blog. Oktober 2015

Handleiding SEO controle & Publiceren blog-artikelen Wageningen UR blog. Oktober 2015 Handleiding SEO controle & Publiceren blog-artikelen Wageningen UR blog. Oktober 2015 Voorwoord SEO of Search Engine Optimizing is een belangrijk onderdeel van het schrijven van een blog artikel. In deze

Nadere informatie

Informatiekunde in Groningen

Informatiekunde in Groningen kunde in John Alfa-informatica Rijksuniversiteit Huus van de Taol 3 juni 2009 Technologie voor taal kunde Studie waar computer centraal staat: Programmeren, ontwerpen, analyseren van ICT producten Gericht

Nadere informatie

Nederlands WMS - SLD Profiel. Versie 1.0

Nederlands WMS - SLD Profiel. Versie 1.0 Nederlands WMS - SLD Profiel Versie 1.0 Ravi: een profiel Ravi, netwerk voor geo-informatie Stichting Ravi is een netwerkorganisatie in het publieke domein en richt zich op de ruimtelijke ontwikkeling

Nadere informatie

Cover Page. The handle holds various files of this Leiden University dissertation.

Cover Page. The handle  holds various files of this Leiden University dissertation. Cover Page The handle http://hdl.handle.net/1887/29716 holds various files of this Leiden University dissertation. Author: Schraagen, Marijn Paul Title: Aspects of record linkage Issue Date: 2014-11-11

Nadere informatie

ONDERZOEK NAAR DE ZOEKMACHINE VRIENDELIJKHEID VAN COMMERCIËLE,

ONDERZOEK NAAR DE ZOEKMACHINE VRIENDELIJKHEID VAN COMMERCIËLE, ONDERZOEK NAAR DE ZOEKMACHINE VRIENDELIJKHEID VAN COMMERCIËLE, CLOSED SOURCE CMSEN Versie: 2.0 Dit onderzoek betreft de zoekmachine vriendelijkheid van commerciële CMS-systemen, m.a.w. systemen waar de

Nadere informatie

WEBANALYSE. WEBPAGINA: http://www.joy-ce.com/ April 2013. Vervaardigd door:

WEBANALYSE. WEBPAGINA: http://www.joy-ce.com/ April 2013. Vervaardigd door: WEBANALYSE WEBPAGINA: http://www.joy-ce.com/ April 2013 Vervaardigd door: Inhoudsopgave Inhoud.2 Introductie 3 Social Media 4 Mobiel 5 SEO..6 Basis. Inhoud. Links.. Keywords. Autoriteit. Linkuitwisseling...

Nadere informatie

Stappenplan zoeken en verwerken van informatie

Stappenplan zoeken en verwerken van informatie Stappenplan zoeken en verwerken van informatie Oriëntatie op het onderwerp Wat is het onderwerp? Welke zoektermen? Welke bronnen? Zoeken naar informatie Welke informatiebron gebruik je? Hoe zoek je digitale

Nadere informatie

Omzeil het gebruik van mappen en bestanden over Wiki s en het werken in de 21 e eeuw

Omzeil het gebruik van mappen en bestanden over Wiki s en het werken in de 21 e eeuw Omzeil het gebruik van mappen en bestanden over Wiki s en het werken in de 21 e eeuw In de whitepaper waarom u eigen documenten niet langer nodig heeft schreven we dat het rondmailen van documenten geen

Nadere informatie

Handleiding SEO controle & Publiceren blog-artikelen Wageningen UR blog. Oktober 2015

Handleiding SEO controle & Publiceren blog-artikelen Wageningen UR blog. Oktober 2015 Handleiding SEO controle & Publiceren blog-artikelen Wageningen UR blog. Oktober 2015 Voorwoord SEO of Search Engine Optimizing is een belangrijk onderdeel van het schrijven van een blog artikel. In deze

Nadere informatie

Handleiding Aansluiting beeldbank

Handleiding Aansluiting beeldbank Handleiding Aansluiting beeldbank Copyright 2014 FotoCadeau.nl Versie 1.0 Overzicht veranderen Versie Datum Verandering 1.0 22-07-2014 Oplevering eerste versie handleiding Copyright 2014 FotoCadeau.nl

Nadere informatie

open standaard hypertext markup language internetprotocol transmission control protocol internet relay chat office open xml

open standaard hypertext markup language internetprotocol transmission control protocol internet relay chat office open xml DOWNLOAD OR READ : OPEN STANDAARD HYPERTEXT MARKUP LANGUAGE INTERNETPROTOCOL TRANSMISSION CONTROL PROTOCOL INTERNET RELAY CHAT OFFICE OPEN XML PDF EBOOK EPUB MOBI Page 1 Page 2 relay chat office open xml

Nadere informatie

Het SEESCOA project; jouw user interface, altijd en overal

Het SEESCOA project; jouw user interface, altijd en overal Het SEESCOA project; jouw user interface, altijd en overal Kris Luyten Karin coninx 17 januari 2002 Samenvatting De informatica kende een ware revolutie voordat men tot de desktop PC gekomen is. 20 jaar

Nadere informatie

Parse and Corpus-based Machine Translation. STEVIN Programmadag 2010 1

Parse and Corpus-based Machine Translation. STEVIN Programmadag 2010 1 PaCo-MT Parse and Corpus-based Machine Translation STEVIN Programmadag 2010 1 Project: PaCo-MT 2008-2011 Gesponsord door NL EN NL FR Consortium partners CCL KULeuven Alfa-Informatics RUGroningen OneLiner

Nadere informatie

Wat is nieuw in deze handleiding: Dit is een nieuwe handleiding welke nieuwe functies beschrijft.

Wat is nieuw in deze handleiding: Dit is een nieuwe handleiding welke nieuwe functies beschrijft. Doel Module Fronter 92 Dit document is gemaakt door Fronter Ltd fronter.com. Het document mag alleen gekopieerd of digitaal verspreid worden volgens contract of in overeenstemming met Wat is nieuw in deze

Nadere informatie

VOLAUTOMATISCH TEKSTEN SAMENVATTEN

VOLAUTOMATISCH TEKSTEN SAMENVATTEN VOLAUTOMATISCH TEKSTEN SAMENVATTEN VAT SAMEN MET DE SUMMARIZER Iedereen is inmiddels bekend met de term Big data de groeiende hoeveelheid door machines gegenereerde informatie uitgedrukt in cijfers en

Nadere informatie

Ontwikkelaars van BIR Open BIM Standaarden en softwareleveranciers

Ontwikkelaars van BIR Open BIM Standaarden en softwareleveranciers Memo AAN Ontwikkelaars van BIR Open BIM Standaarden en softwareleveranciers VAN Bouw Informatie Raad (contactpersoon D. Spekkink, dik.spekkink@bimloket.nl) DATUM 1 januari 2016 ONDERWERP BIR Kaders voor

Nadere informatie

Stappen deelcijfer weging 10,0 10,0 10,0 10,0 10,0 10,0 10,0 10,0 totaalcijfer 10,0 Spelregels:

Stappen deelcijfer weging 10,0 10,0 10,0 10,0 10,0 10,0 10,0 10,0 totaalcijfer 10,0 Spelregels: Stappen deelcijfer weging 1 Onderzoeksvragen 10,0 6% 0,6 2 Hypothese 10,0 4% 0,4 3 Materiaal en methode 10,0 10% 1,0 4 Uitvoeren van het onderzoek en inleiding 10,0 30% 3,0 5 Verslaglegging 10,0 20% 2,0

Nadere informatie

VERENIGINGSWIJZER.NL PROJECTPLAN

VERENIGINGSWIJZER.NL PROJECTPLAN Vrije Universiteit Amsterdam Faculteit der Exacte Wetenschappen Project Multimedia Peter van Ulden Studentnr. 1494759 VERENIGINGSWIJZER.NL PROJECTPLAN INHOUDSOPGAVE 1 Inleiding...3 2 Project omschrijving...4

Nadere informatie

Zelftest XML Concepten

Zelftest XML Concepten Zelftest XML Concepten Document: n1035test.fm 18/02/2010 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING Om een idee te hebben van wat we verwachten als voorkennis

Nadere informatie

SBO WEBSITES BOUWEN IN 7 STAPPEN

SBO WEBSITES BOUWEN IN 7 STAPPEN SBO WEBSITES BOUWEN IN 7 STAPPEN STAPPENPLAN WEBSITE BOUWEN Online ondernemers behalen drie procent meer omzet dan hun offline collega's, zo blijkt uit onderzoek. Een goede reden om als mkb er online aanwezig

Nadere informatie

Release datum: 11 juni 2012

Release datum: 11 juni 2012 Highlights 1 HSExpert versie 5.2 Begin juni is versie 5.2 van HSExpert gereleased. In versie 5.2 zijn vooral wijzigingen op het RiAxion (Arbo) dossier doorgevoerd. Daarnaast zijn er wat kleinere wijzigingen

Nadere informatie

Het Muiswerkprogramma Basisgrammatica bestrijkt de grammatica die nodig is voor het leren van de Nederlandse spelling en zinsbouw.

Het Muiswerkprogramma Basisgrammatica bestrijkt de grammatica die nodig is voor het leren van de Nederlandse spelling en zinsbouw. Basisgrammatica Het Muiswerkprogramma Basisgrammatica bestrijkt de grammatica die nodig is voor het leren van de Nederlandse spelling en zinsbouw. Doelgroepen Basisgrammatica Het computerprogramma Basisgrammatica

Nadere informatie

XML. Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Marc de Graauw http://www.marcdegraauw.com/

XML. Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Marc de Graauw http://www.marcdegraauw.com/ XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) De geschiedenis van XML SGML Standard Generalized Markup Language IBM: back to the sixties... Markup: structuur, niet processing HTML:

Nadere informatie

ActiveBuilder Handleiding

ActiveBuilder Handleiding ActiveBuilder Handleiding Auteur: TalkActive I/S Datum: Juli 2004 Versie: R. 1.01 Taal: Nederlands Copyright 2004 - Talk Active alle rechten voorbehouden. Inhoud: 1. INTRODUCTIE...2 2. SNEL STARTEN...3

Nadere informatie

SELECTEER EEN PAGINA TEMPLATE EN HOOFD VOOR DE PAGINA: Selecteer, in de PAGINA ATTRIBUTEN module rechts naast

SELECTEER EEN PAGINA TEMPLATE EN HOOFD VOOR DE PAGINA: Selecteer, in de PAGINA ATTRIBUTEN module rechts naast OPMAKEN VAN BERICHTEN EN PAGINA S ONE PAGER Berichten en pagina s worden op dezelfde wijze opgemaakt. Voor het opmaken van een bericht ga je in het navigatiemenu (afbeelding rechts) naar BERICHTEN > NIEUW

Nadere informatie

Calligra. Algemene inleiding. Raphael Langerhorst Jost Schenck Vertaler/Nalezer: Natalie Koning

Calligra. Algemene inleiding. Raphael Langerhorst Jost Schenck Vertaler/Nalezer: Natalie Koning Algemene inleiding Raphael Langerhorst Jost Schenck Vertaler/Nalezer: Natalie Koning 2 Inhoudsopgave 1 Inleiding 5 1.1 Calligra-componenten................................... 5 1.2 Overzicht van de eigenschappen

Nadere informatie

Factsheet KICKSTARTERS Mirabeau

Factsheet KICKSTARTERS Mirabeau Factsheet KICKSTARTERS Mirabeau KICKSTARTERS We lanceren binnen twee maanden een nieuw digitaal platform waarmee u in hoog tempo business value genereert. De digitale transformatie is in volle gang. Consumenten

Nadere informatie

Search Engine Optimization: Optimaliseren van webteksten voor zoekmachines

Search Engine Optimization: Optimaliseren van webteksten voor zoekmachines Search Engine Optimization: Optimaliseren van webteksten voor zoekmachines Aangenaam, David Brinks SEO-copywriter david@hardcopy.nl Voor wie ik werk Referenties uit jullie branche Agenda 1. Introductie

Nadere informatie

Linux. Linux lezing 13 april 2005 Marcel Nijenhof <marceln@xs4all.nl> Note: De slechste vragen zijn niet gestelde vragen

Linux. Linux lezing 13 april 2005 Marcel Nijenhof <marceln@xs4all.nl> Note: De slechste vragen zijn niet gestelde vragen Linux Linux lezing 13 april 2005 Marcel Nijenhof Note: De slechste vragen zijn niet gestelde vragen Indeling Inleiding Overeenkomsten Verschillen Opbouw Toepassen distributies opensource

Nadere informatie

SURFconext Cookbook. Het koppelen van Alfresco aan SURFconext. Versie: 1.0. Datum: 8 december 2013. 030-2 305 305 admin@surfnet.nl www.surfnet.

SURFconext Cookbook. Het koppelen van Alfresco aan SURFconext. Versie: 1.0. Datum: 8 december 2013. 030-2 305 305 admin@surfnet.nl www.surfnet. SURFconext Cookbook Het koppelen van Alfresco aan SURFconext Auteur(s): Frank Niesten Versie: 1.0 Datum: 8 december 2013 Radboudkwartier 273 3511 CK Utrecht Postbus 19035 3501 DA Utrecht 030-2 305 305

Nadere informatie

Vraag 1. Vraag 1a TERUGKOPPELING PROEFTENTAMEN. Software architecture

Vraag 1. Vraag 1a TERUGKOPPELING PROEFTENTAMEN. Software architecture Software architecture IM0203 TERUGKOPPELING PROEFTENTAMEN Vraag 1 Vraag 1a Veel van de in het werkboek besproken patterns kunnen ingezet worden voor het referentiesysteem. We lopen de patterns hier stuk

Nadere informatie

informatie architectuur 9 december 2010 IAM V1. 2010-2011

informatie architectuur 9 december 2010 IAM V1. 2010-2011 informatie architectuur 9 december 2010 IAM V1. 2010-2011 IAM informatie architectuur Herkennen, structureren en vindbaar maken van informatie. IAM informatie architectuur Herkennen, structureren en vindbaar

Nadere informatie

Ontwerp. <naam applicatie>

Ontwerp. <naam applicatie> Ontwerp Datum Auteur Versie Telefoon Pagina: 0 Inhoudsopgave 1. MANAGEMENT SUMMARY... 1 2. INLEIDING... 1 2.1. DOEL... 1 2.2. STRUCTUUR... 1 2.3. ACHTERGROND... 1 2.4. REVISIE-GESCHIEDENIS...

Nadere informatie

Stappenplan zoeken en verwerken van informatie

Stappenplan zoeken en verwerken van informatie Stappenplan zoeken en verwerken van informatie Oriëntatie op het onderwerp Wat is het onderwerp Welke zoektermen Welke bronnen Zoeken naar informatie Welke informatiebronnen Kiezen en beoordelen van informatie

Nadere informatie

Competenties Luuk van Paridon. Analyseren

Competenties Luuk van Paridon. Analyseren Competenties Luuk van Paridon Overzicht waar ik nu sta: Afbeelding 1: Spinnenweb competenties De groene lijn geeft aan welke competenties ik tot nu toe behaald heb (zie Afbeelding 1). De competenties die

Nadere informatie

Project plan. Erwin Hannaart Sander Tegelaar 61849 62407

Project plan. Erwin Hannaart Sander Tegelaar 61849 62407 Project plan Erwin Hannaart Sander Tegelaar 61849 62407 I4C2 I4C1 1 Inhoudsopgave Doel en doelgroep van het project... 3 Beschrijving van het project... 4 Benodigde materialen... 5 Te verwachten resultaten,

Nadere informatie

TRAIN SERVICE & SHUNTING PLANNER

TRAIN SERVICE & SHUNTING PLANNER TRAIN SERVICE & SHUNTING PLANNER BOB HUISMAN Dit projectplan is het startpunt voor de student om 1) een voorkeur voor een project uit te spreken en 2) te gebruiken als start informatie bij begin project.

Nadere informatie

Sparse columns in SQL server 2008

Sparse columns in SQL server 2008 Sparse columns in SQL server 2008 Object persistentie eenvoudig gemaakt Bert Dingemans, e-mail : info@dla-os.nl www : http:// 1 Content SPARSE COLUMNS IN SQL SERVER 2008... 1 OBJECT PERSISTENTIE EENVOUDIG

Nadere informatie

Inconsistenties in dependency treebanks

Inconsistenties in dependency treebanks Inconsistenties in dependency treebanks Masterscriptie Jasper Hoenderken S0947032 Begeleider: Gertjan van Noord Tweede lezer: Gosse Bouma Rijksuniversiteit Groningen Juli 2009 Inhoudsopgave 1 Introductie

Nadere informatie

1 Introductie. Wat is een blog? Waarom is bloggen zo populair?

1 Introductie. Wat is een blog? Waarom is bloggen zo populair? 1 Introductie Wat is een blog? Nu je dit boek in je handen hebt neem ik aan dat je al eens van WordPress gehoord hebt. WordPress is een CMS dat staat voor Content Management System dat oorspronkelijk gemaakt

Nadere informatie

Handleiding CMS. Auteur: J. Bijl Coldfusion Consultant

Handleiding CMS. Auteur: J. Bijl Coldfusion Consultant Handleiding CMS Auteur: J. Bijl Coldfusion Consultant Inhoudsopgave 1.0 Inleiding 3 2.0 Introductie CMS en websites 4 3.0 Inloggen in beheer 5 4.0 Dashboard 6 4.1 Bezoekers totalen 6 4.2 Bezoekers 7 4.3

Nadere informatie

1. Inleiding Hoe wordt mijn website gemakkelijk gevonden in de verschillende zoekmachines.

1. Inleiding Hoe wordt mijn website gemakkelijk gevonden in de verschillende zoekmachines. Samenvatting In deze whitepaper wordt de vraag beantwoord: Hoe kan ik mijn website beter vindbaar maken in zoekmachines?. Om hier achter te komen wordt eerst achtergrond informatie gegeven over hoe zoekmachines

Nadere informatie

Vrijgave Inspire release 8.3. Nieuwe functionaliteit Inspire Designer 8.3

Vrijgave Inspire release 8.3. Nieuwe functionaliteit Inspire Designer 8.3 Vrijgave Inspire release 8.3 Per direct is Inspire versie 8.3 beschikbaar. In deze nieuwsbrief willen we u informeren over de nieuwe mogelijkheden en toepassingen van deze nieuwe release. Tevens willen

Nadere informatie

ZOEKEN OP HET WORLD WIDE WEB

ZOEKEN OP HET WORLD WIDE WEB ZOEKEN OP HET WORLD WIDE WEB Naam Nr Klas Datum 1. GERICHT ZOEKEN OP HET INTERNET MET EEN ZOEKROBOT Meestal weet de Internetgebruiker niet op voorhand op welke webpagina's de gewenste informatie voorkomt.

Nadere informatie

ProjectHeatmap. Onderzoeksrapport v0.5 11-03-11 Dennis Wagenaar

ProjectHeatmap. Onderzoeksrapport v0.5 11-03-11 Dennis Wagenaar ProjectHeatmap Onderzoeksrapport v0.5 11-03-11 Dennis Wagenaar 1 Inhoudsopgave Inleiding...3 Gheat...4 Info...4 Voordelen...4 Nadelen...4 Google Fusion Tables...5 Info...5 Voordelen...5 Nadelen...5 OLHeatmap...6

Nadere informatie

Webwinkel in het D-cluster van de opleiding Logistiek

Webwinkel in het D-cluster van de opleiding Logistiek Webwinkel in het D-cluster van de opleiding Logistiek Pract. 1 week 2 Pract. 2 week 3 Pract. 3 week 4 Pract. 4 week 6 Pract. 5 week 7/8 Ad van Kooten docent ERP toepassingen E-mail: ad.vankooten@han.nl

Nadere informatie

Aan het begin verliet Tony Campmans ons team, we hebben dus het hele project met één persoon minder gewerkt.

Aan het begin verliet Tony Campmans ons team, we hebben dus het hele project met één persoon minder gewerkt. INFOB1PICA 2013-2014 EINDVERSLAG Team 5: Solvify 1. Individuele teamleden en algemene informatie Studentnr Naam Uren 4153553 Joost Besseling 143 4145607 Coen Boot 161 4146603 Joost Houben 171 4088646 Michiel

Nadere informatie

Handleiding SEO controle & Publiceren blog-artikelen Wageningen UR blog. Maart 2016

Handleiding SEO controle & Publiceren blog-artikelen Wageningen UR blog. Maart 2016 Handleiding SEO controle & Publiceren blog-artikelen Wageningen UR blog. Maart 2016 Voorwoord SEO of Search Engine Optimizing is een belangrijk onderdeel van het schrijven van een blog artikel. In deze

Nadere informatie

Whitepaper. Personal Targeting Platform. De juiste content Op het juiste moment Aan de juiste persoon

Whitepaper. Personal Targeting Platform. De juiste content Op het juiste moment Aan de juiste persoon Whitepaper Personal Targeting Platform De juiste content Op het juiste moment Aan de juiste persoon Introductie 2 Geïntegreerde personalisering 2 Het opbouwen van een profiel 2 Segmenteren en personaliseren

Nadere informatie

Het Muiswerkprogramma Grammatica op maat bestrijkt de grammatica die nodig is voor het leren van de Nederlandse spelling en zinsbouw.

Het Muiswerkprogramma Grammatica op maat bestrijkt de grammatica die nodig is voor het leren van de Nederlandse spelling en zinsbouw. Grammatica op maat Het Muiswerkprogramma Grammatica op maat bestrijkt de grammatica die nodig is voor het leren van de Nederlandse spelling en zinsbouw. Doelgroepen Grammatica op maat Dit programma is

Nadere informatie

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Sjoerd van Egmond LIACS, Leiden University, The Netherlands svegmond@liacs.nl 2 juni 2010 Samenvatting Deze notitie beschrijft een nederlandse

Nadere informatie

Websites & Zoekmachines

Websites & Zoekmachines Zoekmachines, Wat en Hoe... 2 Wat is een Zoekmachine?... 2 Hoe werkt het?... 2 Meldt Je Site Aan... 3 Meta-data... 3 Links naar je site... 3 De grote 3... 3 Hoe aanmelden?... 3 Wachttijd na aanmelding...

Nadere informatie

De ontleding van het Corpus Gesproken Nederlands

De ontleding van het Corpus Gesproken Nederlands De ontleding van het Corpus Gesproken Nederlands Ton van der Wouden en Heleen Hoekstra Een corpus, in de zin van een verzameling tekst, bij elkaar brengen is tegenwoordig geen kunst meer. Met een computer

Nadere informatie

Workflow Verrijkte Documenten

Workflow Verrijkte Documenten Workflow Verrijkte Documenten Boudewijn Rempt Opgericht in 2007 in Duitsland Internationaal bedrijf met experts in Nederland, Duitsland, Denemarken, Zweden en het Verenigd Koninkrijk OpenDocument: actief

Nadere informatie

Een hele eenvoudige benadering van de oplossing van dit probleem die men wel voorgesteld heeft, is de volgende regel:

Een hele eenvoudige benadering van de oplossing van dit probleem die men wel voorgesteld heeft, is de volgende regel: Accent op voorzetsels en partikels Het tweede probleem dat ik wil gebruiken ter illustratie is een probleem dat meer van belang is voor de spraaktechnologie. Een van de technologieën die spraaktechnologen

Nadere informatie

emaxx Systeem eisen ManagementPortaal voor de ZakenMagazijn database

emaxx Systeem eisen ManagementPortaal voor de ZakenMagazijn database emaxx Systeem eisen ManagementPortaal voor de ZakenMagazijn database Datum: 25-09-2007 Auteur: ing. E.L. Floothuis Versie: 0.1 Status: Concept Kopersteden 22-4 Postbus 157 7500 AD Enschede Tel: 053 48

Nadere informatie

2. Syntaxis en semantiek

2. Syntaxis en semantiek 2. Syntaxis en semantiek In dit hoofdstuk worden de begrippen syntaxis en semantiek behandeld. Verder gaan we in op de fouten die hierin gemaakt kunnen worden en waarom dit in de algoritmiek zo desastreus

Nadere informatie

Plan van Aanpak. Plan van Aanpak. November 2003. Student Naam: David Fremeijer Studentnr: 0249432 E-mail: david@fremeijer.net

Plan van Aanpak. Plan van Aanpak. November 2003. Student Naam: David Fremeijer Studentnr: 0249432 E-mail: david@fremeijer.net Plan van Aanpak Plan van Aanpak November 2003 Student Naam: David Fremeijer Studentnr: 0249432 E-mail: david@fremeijer.net Universiteit Nijmegen Begeleider: Theo van der Weide Referent: Gert Veldhuijzen

Nadere informatie

Internet Marketing Termen

Internet Marketing Termen Internet Marketing Termen Als beginnend Internet Marketeer ga je veel termen tegen komen, die je in verwarring zullen brengen. Hieronder heb ik een lijst met termen voor je samengesteld om jouw leven als

Nadere informatie

Project Software Engineering XML parser: Parsen van een xml CD catalogus

Project Software Engineering XML parser: Parsen van een xml CD catalogus Project Software Engineering XML parser: Parsen van een xml CD catalogus Brent van Bladel brent.vanbladel@uantwerpen.be February 16, 2017 XML (Extensible Markup Language) is een taal waarmee we op een

Nadere informatie

eerste hulp bij het schrijven

eerste hulp bij het schrijven eerste hulp bij het schrijven van EEN Nieuwsbrief Om anderen op de hoogte te houden van het laatste nieuws binnen een bedrijf kan een nieuwsbrief goed van pas komen, hierdoor betrek je klanten of partners

Nadere informatie

Frontend ontwikkeling

Frontend ontwikkeling Frontend ontwikkeling Mark Jansen Edwin Vlieg PHPFreakz ledendag 10 november 2007 Frontend ontwikkeling De interface is je product richting de eindgebruiker Goede PHP code met een slechte interface geeft

Nadere informatie

Natuurlijke Taalverwerking I shift-reduce en chart parsing

Natuurlijke Taalverwerking I shift-reduce en chart parsing Natuurlijke Taalverwerking I shift-reduce en chart parsing Gosse Bouma en Geert Kloosterman 2e semester 2005/2006 Shift-reduce conflicten Epsilon-regels Breadth-first zoeken Gebruik van een chart Toepassing:

Nadere informatie

Zeon PDF Driver Trial

Zeon PDF Driver Trial Zakelijke software voor verkoop, dienstverlening en administratie Handleiding module Document Uitgaande correspondentie genereren Uitgaande correspondentie terugvinden Persoonlijk geadresseerde mailings

Nadere informatie

Het digitaal samenstellen en uniformeren van projectdocumentatie.

Het digitaal samenstellen en uniformeren van projectdocumentatie. Het digitaal samenstellen en uniformeren van projectdocumentatie. As-Built Documentatie digitaal op orde Als uw bedrijf actief is in de Marine, Off-Shore, energie of chemische industrie, dan heeft u voor

Nadere informatie

Introductie tot de cursus

Introductie tot de cursus Inhoud introductietalen en ontleders Introductie tot de cursus 1 Plaats en functie van de cursus 7 2 Inhoud van de cursus 7 2.1 Voorkennis 7 2.2 Leerdoelen 8 2.3 Opbouw van de cursus 8 3 Leermiddelen en

Nadere informatie

Software Test Document

Software Test Document Software Test Document PEN: Paper Exchange Network Software Engineering groep 1 (se1-1415) Academiejaar 2014-2015 Jens Nevens - Sander Lenaerts - Nassim Versbraegen Jo De Neve - Jasper Bevernage Versie

Nadere informatie

Automated Engineering White Paper Bouw & Infra

Automated Engineering White Paper Bouw & Infra Automated Engineering White Paper Bouw & Infra Inhoudsopgave 1. Introductie 2 2. Wat is automated engineering? 3 3. Wanneer is Automated Engineering zinvol? 3 4. Wat zijn de stappen om een ontwerpproces

Nadere informatie

Leerjaar 1/2 ICT-Academie. Niveau 4. Applicatie ontwikkeling

Leerjaar 1/2 ICT-Academie. Niveau 4. Applicatie ontwikkeling Databases SQL Leerjaar 1/2 ICT-Academie Niveau 4 Applicatie ontwikkeling Auteur: R. Meijerink Datum: Januari 2013 0. Inleiding Databases / SQL In deze lessen wordt je geleerd databases te bouwen in SQL-code.

Nadere informatie

2. Syntaxis en semantiek

2. Syntaxis en semantiek 2. Syntaxis en semantiek In dit hoofdstuk worden de begrippen syntaxis en semantiek behandeld. Verder gaan we in op de fouten die hierin gemaakt kunnen worden en waarom dit in de algoritmiek zo desastreus

Nadere informatie

Hardware Specialisatie. Module 1: Zoeken op het internet

Hardware Specialisatie. Module 1: Zoeken op het internet 1 Hardware Specialisatie Module 1: Zoeken op het internet 2 Inhoud Inleiding Zoekmachines Usenet en nieuwsgroepen Praktijkoefening 3 Inhoud > Inleiding < Zoekmachines Usenet en nieuwsgroepen Praktijkoefening

Nadere informatie

HTML & CSS DEEL 1. webdesign. Programmeren met CodeAcademy

HTML & CSS DEEL 1. webdesign. Programmeren met CodeAcademy Programmeren met CodeAcademy HTML is de taal die gebruikt wordt om webpagina s te maken die jij elke dag bezoekt. Het is een logische manier om een website te structureren. Laten we kijken wat de term

Nadere informatie

The expression of modifiers and arguments in the noun phrase and beyond van Rijn, M.A.

The expression of modifiers and arguments in the noun phrase and beyond van Rijn, M.A. UvA-DARE (Digital Academic Repository) The expression of modifiers and arguments in the noun phrase and beyond van Rijn, M.A. Link to publication Citation for published version (APA): van Rijn, M. A. (2017).

Nadere informatie

Waarom gebruiken web- ontwikkelaars Wordpress als CMS?

Waarom gebruiken web- ontwikkelaars Wordpress als CMS? Waarom gebruiken webontwikkelaars Wordpress als CMS? Figuur 1 Naam: René Sasbrink Klas: IS106 Studentnummer: 500729630 Opleiding: ICT voltijd, Software Engineer Instelling: Hogeschool van Amsterdam Vak:

Nadere informatie