Evaluatie van de vertalingen in het LRS Automatische categorisatie van vertalingsfouten
Anne van de Wetering s1404318
Scriptiebegeleider: Sebastian Kürschner Zwolle, 7 juli 2008
Inhoudsopgave 1
Achtergrond en beschrijving van het onderzoek…………………………………………..3
2
Typen vertalingsfouten waarop het onderzoek zich richt………………………………...4
3
Doelstelling…………………………………………………………………………………….8
3.1
Totaalbeeld…………………………………………………………………………………….8
3.2
Onderlinge verdeling………………………………………………………………………….9
3.3
Ideeën voor de toekomst……………………………………………………………………..9
4
Realisatie………………………………………………………………………………..…....10
4.1
Context………………………………………………………………………………………..10
4.2
Code voor verdere categorisatie………………………………………………………..….14
4.2.1 Handelingen in de hoofdcode……………………………………………………………....14 4.2.2 Functies die de hoofdcode gebruikt………………………………………………………..17 5
Bespreking van de resultaten…………………………………………………………….…24
5.1
Evaluatie………………………………………………………………………………….......24
5.2
Samengevat…………………………………………………………………………………..27
2
Evaluatie van de vertalingen in het LRS Automatische categorisatie van vertalingsfouten 1 Achtergrond en beschrijving van het onderzoek Achtergrond van dit onderzoek vormt een database, die voor het Language Research System (afgekort LRS) in 2006 is samengesteld. De database bevat voor elk van negen Germaanse talen een gelijk aantal zelfstandige naamwoorden. Deze zijn verkregen door twee corpora’s samen te voegen (één gebaseerd op informele- en een ander op formele spraak) en de daaruit verkregen 2575 woorden te vertalen in elk van de negen Germaanse talen. De database wordt gebruikt om inzicht te krijgen in de mate waarin middelbare scholieren met verschillende moedertalen woorden kunnen lezen en/of verstaan uit een Germaanse taal die nauw verwant is aan de eigen moedertaal, waarbij de scholier niet over voorkennis beschikt van deze taal. Om deze vaardigheid daadwerkelijk te kunnen testen is een (LRS) website gecreëerd, waarin scholieren kunnen deelnemen aan een verstaanbaarheidsonderzoek. De deelnemer wordt getest in een Germaanse taal die hem/haar door het systeem wordt toegewezen, waarbij de deelnemer schriftelijk en mondeling aangeboden zelfstandige naamwoorden uit de hem/haar toegewezen taal dient te vertalen naar de eigen moedertaal. De vaardigheid van de deelnemers wordt getest aan de hand van 384 zelfstandige naamwoorden die uit de database zijn geselecteerd. Per woord voert de deelnemer de vertaling in een tekstveld in, en klikt vervolgens op een submit button. De ingevoerde vertalingen worden opgeslagen in de LRS-database. Doel van dit onderzoek, Evaluatie van de vertalingen in LRS, is het verkrijgen van inzicht op het gebied van een aantal specifieke typen vertalingsfouten die deelnemers aan het LRS verstaanbaarheidsonderzoek maken. Om dit mogelijk te maken moet een aantal doelstellingen worden gerealiseerd: uit de database afkomstige vertalingen1 die het systeem als incorrect beschouwt, moeten worden gecategoriseerd naar fouttype. Ook moet er een interface worden gecreëerd waarin onderzoekers query’s kunnen opstellen om informatie en daarmee inzicht te verkrijgen over de door deelnemers gemaakte vertalingsfouten. Op de vertalingsfouten kan eventueel
1
Vertalingen voor schriftelijk en mondeling aangeboden woorden worden in gelijke mate in beschouwing genomen
3
feedback worden gegeven: vertalingsfouten zouden bijvoorbeeld door onderzoekers kunnen worden goed- of afgekeurd. De uitwerking van netgenoemde doelstellingen is verdeeld onder Marvin Siliakus en mijzelf, en wordt in samenwerking uitgevoerd. De taken voeren we daarbij tamelijk onafhankelijk van elkaar uit. In de volgende hoofdstukken komen achtereenvolgens de volgende onderwerpen aan bod: hoofdstuk 2 gaat in op de vertalingsfouten waarop het onderzoek zich richt. In hoofdstuk 3 worden de te realiseren doelstellingen van het onderzoek besproken: paragraaf 3.1 geeft hier een totaalbeeld van, paragraaf 3.2 beschrijft hoe de doelstellingen onderling zijn verdeeld en paragraaf 3.3 gaat in op ideeën voor realisaties voor de toekomst. Hoofdstuk 4 behandelt de realisatie van de doelstellingen m.b.t. mijn eigen taak. Tenslotte worden in hoofdstuk 5 de resultaten van de verdere categorisatie besproken. 2 Typen vertalingsfouten waarop het onderzoek zich richt Vertalingen worden gecategoriseerd op basis van vier soorten regelmatig voorkomende fouten: 1 Synoniem-fouten; 2 Typ- en spellingsfouten; 3 Derivatie affix–fouten; 4 Fouten veroorzaakt door het Neighbourhood density effect (NDE). Van elk van deze drie fouttypen volgt nu een beschrijving. Synoniem–fouten Bij een vertaling van het fouttype Synoniem heeft de testpersoon als vertaling een ander woord ingevoerd dan de verwachting (met verwachting wordt de door het systeem als correct beschouwde vertaling bedoeld). Omdat de vertaling daarbij qua betekenis echter wel identiek is aan de verwachting, kan zowel de vertaling als de verwachting als correcte vertaling worden beschouwd voor het aan de testpersoon aangeboden woord (de stimulus). De betreffende vertaling die door de testpersoon was ingevoerd kan daardoor niet echt als ‘fout’ worden beschouwd. Hier volgen twee voorbeelden waarbij de vertaling een synoniemfout is (als de testpersoon van het Nederlands naar het Engels zou vertalen).
4
Stimulus
Verwachting
Vertaling
student
student
pupil
vrijheid
freedom
liberty
In het eerste voorbeeld is ‘student’ een synoniem van ‘pupil’. In het tweede voorbeeld is ‘vrijheid’ een synoniem van ‘liberty’. Als synoniem gebruikte woorden komen altijd als bestaand woord voor, en komen daarom voor in een frequentielijst Typ- en spellingsfouten Typfouten Bij vertalingen die tot het type typfout behoren, heeft de testpersoon karakters teveel, te weinig of foutief ingevoerd. Dit is niet te wijten aan een gebrek aan kennis van de spelling of taal, maar aan het feit dat de deelnemer een fout maakte tijdens het typen: een vinger kwam verkeerd neer op één of meerdere toetsen van het toetsenbord. Typfouten zijn te herkennen doordat het getypte woord (in dit geval de vertaling), afgezien van de fout(en), gelijk is aan het correcte woord (in dit geval de verwachting). In tegenstelling tot bij de meeste overige fouttypen zijn bij een typfout meestal slechts enkele karakters teveel, te weinig of foutief ingevoerd. Een vertaling van het type typfout behoort eigenlijk niet als ‘fout’ te worden beschouwd: afgezien van de (typ)fout is de vertaling namelijk correct. Bovendien mogen we aannemen dat de testpersoon de bedoeling had om de vertaling zonder de typfouten in te voeren. Hier volgen drie voorbeelden waarbij de vertaling een typfout is. Stimulus
Verwachting
Vertaling
Abkommen
overeenkomst
overeenkomst//
Abkommen
overeenkomst
oevreenkomst
Abkommen
overeenkomst
overeenkmst
In het eerste voorbeeld zijn karakters teveel ingevoerd (de laatste twee slashes), in het tweede voorbeeld zijn de tweede en derde letter omgekeerd ingevoerd, en in het laatste voorbeeld is één karakter te weinig ingevoerd (het negende karakter).
Het spreekt voor zich dat woorden met daarin typfouten niet als bestaand woord voorkomen, en daarom ontbreken in een frequentielijst.
5
Spellingsfouten Bij vertalingen die tot het type spellingsfout behoren, heeft de testpersoon een fout gemaakt in de schrijfwijze of spelling van een woord: om een bepaalde klank weer te geven zijn één of meerdere letters (voor dat doeleinde) foutief gebruikt. Spellingsfouten kunnen worden veroorzaakt door een gebrek aan spellingskennis, een gebrek aan grammaticaal inzicht, of verwarring met een andere taal. Zoals bij typfouten het geval is, behoort een vertaling van het type spellingsfout eigenlijk niet als ‘fout’ te worden beschouwd. De reden daarvoor is hetzelfde als bij vertalingen van het type typfout.
Hier volgen drie voorbeelden waarbij de vertaling een spellingsfout is. Stimulus
Verwachting
Vertaling
Gesundheit
gezondheid
gezondhijd
Gesundheit
gezondheid
chezondheid
Gesundheit
gezondheid
chezondhijd
In het eerste voorbeeld is ‘ij’ in plaats van ‘ei’ gebruikt, en in het tweede voorbeeld ‘ch’ in plaats van ‘g’. Het derde voorbeeld vormt een combinatie van deze twee fouten.
Zoals bij typfouten het geval is, komen vertalingen van het type spellingsfout niet als bestaand woord voor. Derivatie affix – fouten Bij vertalingen van het type derivatie-affix heeft de testpersoon als vertaling een woord ingevoerd dat een deel van een derivatie als affix bevat. Een derivatie is een ‘geleed woord’. Eén van de delen van een geleed woord is een ‘gebonden morfeem’, d.w.z. een woorddeel dat niet als zelfstandig woord kan worden gebruikt. Voor- en achtervoegsels (resp. pre- en suffixen) zijn gebonden morfemen. Bij derivatie-affix fouten bevat de vertaling als voor- of achtervoegsel een gebonden morfeem van een derivatie. Daarbij zijn de volgende overige kenmerken aanwezig: - het gebonden morfeem heeft geen grammaticale-, maar wel inhoudelijke betekenis; - de verwachting bevat niet het betreffende gebonden morfeem als pre- of suffix;
6
- het woorddeel van de vertaling dat achter de prefix of voor de suffix staat, vertoont qua karakters, en de volgorde waarin deze voorkomen, grote gelijkenis met dat van de verwachting (ook al bevat de verwachting niet dezelfde pre- of suffix); - de pre- of suffix van de vertaling ‘correspondeert’ met de pre- of suffix van de stimulus. Dat wil zeggen, de vertaling bevat een affix die qua betekenis gelijk is aan de affix van de stimulus, of vertoont grote gelijkenis met de stimulus qua karaktersequentie van de betreffende affix.
In tegenstelling tot bij de synoniem-, typ- en spellingsfouten kan een vertaling van het type derivatie-affix wel als ‘fout’ worden beschouwd. De vertaling komt qua betekenis namelijk niet overeen met de verwachting, en de gebruiker had de bedoeling om de foutieve vorm als vertaling in te voeren. De gebruiker redeneerde daarbij als volgt: “als de stimulus affix x bevat, dan moet de vertaling waarschijnlijk een daarmee corresponderende affix bevatten” (qua betekenis of qua vorm). Hier volgen twee voorbeelden waarbij de vertaling een derivatie-affix is. Zowel in het eerste als in het tweede voorbeeld gaat het om een fout met betrekking tot de prefix van de vertaling. Stimulus
Verwachting
Vertaling
Verhandlung
onderhandeling
verhandeling
Atmosphäre
sfeer
atmosfeer
Fouten veroorzaakt door het Neighbourhood Density Effect 2 Voor elk woord bestaat een collectie van woorden die hiermee op fonetisch gebied een bepaalde gelijkenis vertoont. Deze collectie wordt aangeduid met de term “similarity neighbourhood”. De structuur van de similarity neighbourhood (aangeduid met de term “neighbourhood structure”) wordt bepaald door twee factoren: 1) het aantal verschillende woorden in de neighbourhood en hun onderlinge verwantschap, en 2) de frequenties van de neighbours. De eerste factor wordt aangeduid met de term “neighbourhood density” of “neighbourhood confusability”. De tweede factor wordt aangeduid met de term “neighbourhood frequency”. De neighbourhood density van een woord heeft een effect op het herkennen van dit woord. Dit effect wordt aangeduid met de term “neighbourhood density effect”: hoe groter het 2
Uit: Luce, P.A. en Pisoni, D.B., Recognizing spoken words: the neighborhood activation model. Ear & Hearing, vol. 19, no. 1, 1998, pp. 1-36.
7
aantal verschillende woorden in de neighbourhood en/of hoe groter de fonetische verwantschap daartussen, hoe moeilijker het woord te herkennen is. Het neighbourhood density effect is bijvoorbeeld van toepassing als het Duitse te vertalen woord Liste (correcte Nederlandse vertaling: lijst) door de testpersoon wordt vertaald naar het Nederlandse list (bedrog). Bij vertalingen van het type neighbourhood density effect (afgekort NDE) is voor de stimulus een vertaling ingevoerd die qua karakters en de volgorde waarin deze voorkomen erg op de stimulus lijkt, en als bestaand woord voorkomt. Qua betekenis komt de vertaling niet overeen met de stimulus. Door dit verschil in betekenis kunnen vertalingen van het type NDE als echte ‘fout’ worden beschouwd. 3 Doelstelling Het in hoofdstuk 1 en 2 beschreven idee moet uiteindelijk worden geïmplementeerd in de LRS-website. Daarvoor moet een aantal doelstellingen worden gerealiseerd. Ik zal eerst al deze doelstellingen beschrijven, zodat er een totaalbeeld ontstaat. Vervolgens richt ik mij op de onderlinge taakverdeling hiervan. 3.1 Totaalbeeld De bedoeling is dat de LRS-website wordt uitgebreid middels een interfacepagina. Hierin kan een onderzoeker via een menu (bijvoorbeeld een dropdownmenu) een zelfstandig naamwoord, afkomstig uit de LRS database, selecteren dat gebruikt is als stimulus tijdens een verstaanbaarheidstest. Door gebruik van een submit-button (of automatisch) wordt aan de onderzoeker een lijst gepresenteerd bestaande uit alle door testpersonen ooit ingevoerde, door het systeem als incorrect beschouwde vertalingen voor het geselecteerde woord, gegroepeerd naar fouttype. Elk woord uit de lijst is niet alleen ingedeeld in de foutcategorie die het vertegenwoordigt maar is ook voorzien van het absolute en relatieve aantal identieke vertalingen. Daarbij moet worden gezegd dat de onderzoeker op de interfacepagina eerst de taal van het stimuluswoord en de taal van de (lijst met) vertalingen daarvoor dient aan te geven. Aan de hand van de geselecteerde keuzes kan de onderzoeker dan, in het menu, verschillende stimuluswoorden uit de geselecteerde taal selecteren. Voor het geselecteerde stimuluswoord wordt vervolgens een lijst beschikbaar gesteld met naar fouttype gecategoriseerde vertalingen uit de geselecteerde taal. Het categoriseren van de foutieve vertalingen voor een stimulus wordt uitgevoerd met behulp van pattern matching, waarbij de programmeertaal Perl wordt gebruikt.
8
Wanneer in een lijst van vertalingen systematisch dezelfde foutieve vertaling voorkomt, zullen de onderzoekers daarover geïnformeerd worden, en zal het als correct beschouwde antwoord eventueel worden aangepast. Hetzelfde principe geldt voor foutieve vertalingen van het type NDE. Bovenstaande samenvatting maakt duidelijk dat we globaal gezien twee doelen moeten realiseren: het creëren van een interfacepagina, en het uitvoeren van categorisatie m.b.v. patternmatching. Deze twee doelen staan niet los van elkaar: de mogelijkheid tot categorisatie wordt uiteindelijk ‘ingebouwd’ in de interface. 3.2 Onderlinge verdeling De in paragraaf 3.1 beschreven doelstellingen zijn onderling verdeeld: Marvin Siliakus houdt zich bezig met het ontwerp en de creatie van de foutcategorisatie-interface, en met het creëren van een PHP-script dat foutcategorisatie teweegbrengt. De input van dit Perl script bestaat uit vertalingen, afkomstig uit de LRS-database. Als output geeft het script deze vertalingen in (naar fouttype) gecategoriseerde vorm weer. De categorisatie is generiek: elke vertaling is geclassificeerd als behorend tot één van twee fouttypen: typ- of spellingsfout, of ‘Unknown error’ (daarmee wordt bedoeld: de vertaling is in elk geval geen typ- of spellingsfout, maar het is nog onduidelijk tot welk van de overige foutcategoriën de vertaling behoort). Ik zal mij bezig houden met het verder categoriseren van Marvins scriptoutput: de generieke classificatie kan nog een stuk specifieker. Het is nodig om, naast de type- en spellingsfouten, ook NDE-fouten, derivatie affix - fouten en synoniem-fouten te categoriseren. Binnen elk van deze fouttypen zijn weer verschillende typen te onderscheiden. Ook kan een vertaling tot meerdere fouttypen behoren (de grens tussen fouttypen is niet altijd zo scherp). De verdere categorisatie voer ik uit aan de hand van een Perl script, die Marvins scriptoutput als input krijgt aangeboden. Als output geeft dit script een genuanceerdere versie van de basiscategorisatie. De uitvoer van mijn taak, de verdere categorisatie, komt in hoofdstuk 4 aan bod. 3.3 Ideeën voor de toekomst Hier volgt een uiteenzetting van ideeën die eventueel in de toekomst geïmplementeerd zouden kunnen worden, met name in de foutcategorisatie-interface. Vergelijking van de vertalingsfouten aan de hand van verschillende criteria Maken testpersonen onder de 18 jaar gemiddeld andere vertalingsfouten dan testpersonen die ouder zijn dan 18? Dezelfde vraag zou je kunnen stellen aan de hand van een ander
9
vergelijkingscriterium zoals herkomstland, geslacht, onderwijstype of woordtype (schriftelijk of mondeling aangeboden). Bij de bovenstaande beschrijving gaat het steeds om een vergelijking binnen één bepaald criterium. Je zou echter ook kunnen vergelijken binnen meerdere criteria: verschillen de vertalingsfouten van testpersonen jonger dan 18 uit Denemarken van die van testpersonen ouder dan 18 uit Zweden? De mogelijkheid tot dit soort vergelijkingen zou geïmplementeerd kunnen worden in de foutcategorisatie-interface.
Suggesties voor verbeteringen tijdens een verstaanbaarheidstest Als de testpersoon tijdens een verstaanbaarheidstest een vertaling invoert die tot de categorie typ- of spellingsfout wordt gerekend, zou hij/zij een qua typ- of spellingsfouten gecorrigeerde versie van de vertaling aangeboden kunnen krijgen. Spellingsfouten kunnen immers ten onrechte de score van de testpersoon verlagen, als de ingevoerde vertaling overeenkomt met de verwachte vertaling (afgezien van de spellingsfout(en)). 4 Realisatie In dit hoofdstuk bespreek ik de realisatie van de door mij uitgevoerde verdere categorisatie. Voor een volledig beeld is het daarbij nodig om eerst een beeld te schetsen van de context waarin ik mijn doel heb gerealiseerd: in welke context wordt mijn verdere categorisatie weergegeven? Deze context wordt in de nu volgende paragraaf (4.1) besproken. In paragraaf 4.2 wordt de Perl code besproken die de verdere categorisatie teweeg brengt. Hierbij komen de in diezelfde code gedefinieerde functies aan bod die de code gebruikt voor detectie van elk van de volgende fouttypen: NDE, derivatie-affix, synoniem, en ‘not in category’. 4.1 Context De basiscategorisatie en de verdere categorisatie worden weergegeven op een pagina van het LRS. Deze pagina kan middels een interfacepagina door onderzoekers worden gegenereerd. De interfacepagina is te bereiken via de volgende URL: http://www.let.rug.nl/lrs/admincp-germanic/deviatingtranslations/. Op de interfacepagina kunnen onderzoekers in een interface constraints vormen door middel van een combinatie van dropdownmenu’s en check-boxes. Deze constraints bepalen de inhoud van de door diezelfde interface gegenereerde pagina waarop gegevens - inclusief
10
basis- en verdere categorisatie - worden weergegeven omtrent de incorrecte vertalingen, ingevoerd tijdens LRS verstaanbaarheidstesten. In de interface zijn de volgende constraintvormers aanwezig: - een dropdownmenu genaamd ‘Test language’, waarin de taal kan worden geselecteerd waarin de deelnemers zijn getest. Mogelijke talen zijn Nederlands, Fries, Duits, Nederduits, Deens, Zweeds, en Noors. - een dropdownmenu genaamd ‘Participant language’, waarin de moedertaal van de deelnemers kan worden geselecteerd. De te selecteren talen zijn hier hetzelfde als bij het ‘Test language’ - dropdownmenu, alleen ontbreekt hier Nederduits als te selecteren taal. - drie checkboxes voor respectievelijk ‘Only valid’, ‘Only untreated’ en ‘Show distance’. Als de ‘Only valid ’ checkbox is geselecteerd, worden alleen vertalingen weergegeven die door onderzoekers zijn goedgekeurd. Als de ‘Only untreated’ checkbox is geselecteerd, worden alleen vertalingen weergegeven die nog niet door onderzoekers zijn goed- of afgekeurd. Is de ‘Show distance’ checkbox geselecteerd, dan wordt voor elke vertaling weergegeven wat de (string) ‘afstand’ is tussen deze vertaling en de verwachting. Door op een submit-button te klikken wordt aan de hand van de constraints een pagina met gegevens omtrent de foutieve LRS-vertalingen gegenereerd (“Deviating translations” genaamd). Hier volgt een weergave van het bovenste gedeelte van zo’n gegenereerde pagina.
11
Afb. 1 Weergave van de door de interface gegenereerde pagina, waarop gegevens omtrent foutieve vertalingen in een tabel zijn weergegeven. De interface aan de hand waarvan de pagina is gegenereerd blijft (linksboven) in beeld.
Zoals te zien worden op deze pagina alle gegevens omtrent de incorrecte vertalingen, in een tabel weergegeven. Per rij wordt informatie gegeven over één bepaalde incorrecte vertaling die door deelnemers werd gegeven naar aanleiding van een visueel of auditief aangeboden stimulus. De betreffende incorrecte vertaling werd gegeven door deelnemers waarop de in de interface (als constraint) geselecteerde test- en moedertaal van toepassing is. Voor de duidelijkheid: met testtaal wordt de taal bedoeld waarin de deelnemers werden getest, en met moedertaal wordt de taal van de deelnemers zelf bedoeld (dus de taal waarnaar de stimulus werd vertaald). Nu volgt een beschrijving van elk van de kolommen van de tabel.
Participant In deze kolom worden de door middel van een link aanklikbare ID- nummers weergegeven van de deelnemers die de betreffende incorrecte vertaling gaven. Door het id-nummer van één van de deelnemers aan te klikken worden gegevens omtrent deze persoon vertoond zoals geslacht, leeftijd, moedertaal, en opleiding. Deze gegevens zijn van belang omdat ze geïsoleerd of in combinatie met elkaar de prestatie kunnen hebben beïnvloed van de deelnemer.
12
Stimulus In deze kolom wordt het visueel of auditief aangeboden woord weergegeven dat de participanten incorrect hebben vertaald. Pres. Method In deze kolom wordt de taal van het stimuluswoord weergegeven. Expectation In deze kolom wordt de door het systeem als correct beschouwde vertaling voor het stimuluswoord weergegeven.
Translation In deze kolom wordt de door de deelnemers ingevoerde incorrecte vertaling weergegeven. Abs. Frequency Deze kolom geeft weer hoeveel deelnemers de betreffende vertaling onder de betreffende omstandigheden hebben gegeven. Rel. frequency Deze kolom geeft hetzelfde weer als de “Abs. frequency” kolom, alleen gaat het nu om de relatieve i.p.v. de absolute frequentie. Pred. Category Deze kolom geeft de basiscategorie van de incorrecte vertaling weer. Pred. category (Anne) Deze kolom geeft de specifieke categorie van de incorrecte vertaling weer.
At word list Deze kolom geeft weer of de incorrecte vertaling voorkwam in een woordenlijst. De waarde is “yes” als het woord in een woordewnlijst voorkwam en “no” als dit niet het geval is. State De waarde in deze kolom kan twee vormen aannemen: “treated” of “untreated”. De waarde is “treated” als onderzoekers de vertaling hebben goed- of afgekeurd d.m.v. een checkbox systeem.
13
De specifiekere categorie waartoe de vertaling behoort wordt weergegeven in de kolom “Pred. category (Anne)”. De inhoud van deze kolom vormt a.h.w. een verdieping van de inhoud van de ‘Pred. category’ kolom, waarin de basiscategorie van de vertaling wordt weergegeven. In de Pred. Category - kolom wordt alleen aangegeven of de vertaling een typfout is, een spellingsfout, of een “Unknown error”. In het geval van een typ- of spellingsfout wordt tussen haakjes aangegeven tot welk subtype hiervan de vertaling behoort. Bij typfouten wordt dit eventueel nog aangevuld met “, + unknown error”. In dat laatste geval is de incorrectheid van de vertaling niet te wijten aan alleen de betreffende typefout, maar ook aan een ander fouttype (vandaar de benaming “unknown error”) waarbij nog moet worden uitgezocht om welk fouttype het precies gaat.
De Pred. category (Anne) - kolom geeft alleen een specifiekere foutcategorie weer voor vertalingen met als basiscategorie “Unknown error”, of “Typing error (…+ unknown error)”. Voor vertalingen met als basiscategorie “Typing error (subtype)”, of “Spelling error (subtype)” waarbij de “+ unknown error” ontbreekt, wordt deze niet weergegeven. Dit omdat in de laatste twee gevallen de vertaling correct zou zijn (m.a.w. gelijk zou zijn aan de verwachting) als de spellings- of typefoutkenmerken ongedaan zouden worden gemaakt. Denk bij ongedaan maken aan de verwijdering van overbodige alfabetische of non-alfabetische karakters, omdraaiing van een karaktersequentie, of substitutie van enkele karakters.
De kolom voor verdere categorisatie wordt op de volgende manier in elke rij ingevuld: voor elke rij in de tabel wordt mijn Perl script, dat de verdere categorisatie teweeg brengt, uitgevoerd. Hierbij wordt input aan mijn script meegegeven in de vorm van commandline arguments die relevante informatie bevatten (zichtbaar in de kolommen van de betreffende tabelrij): één van de argumenten bevat de stimulus, een ander de verwachting, weer een ander de vertaling, enzovoorts. De specifieke foutcategorie die mijn script aan de hand van de commandline arguments aan de vertaling toekent wordt uiteindelijk door ditzelfde script in de daartoe bestemde kolom weergegeven. 4.2 Code voor verdere categorisatie In paragraaf 4.2.1 beschrijf ik de handelingen die mijn Perl code achtereenvolgens uitvoert. De functies die daarbij worden uitgevoerd komen in Paragraaf 4.2.2 aan bod. 4.2.1
Handelingen in de hoofdcode
De volgende handelingen worden achtereenvolgens uitgevoerd:
14
Het inlezen van de commandline arguments De hoofdcode heeft bij de uitvoer de volgende commandline arguments meegekregen: - argument 1: stimulus; - argument 2: presentatie methode (was de stimulus visueel of auditief aan de testpersoon gepresenteerd); - argument 3: verwachting; - argument 4: vertaling; - argument 5: basiscategorie van de vertaling; - argument 6: testtaal (de taal van de stimulus); - argument 7: moedertaal (de taal van de deelnemer).
Deze argumenten worden door de code ingelezen en omgezet in variabelen. Ze kunnen vanaf dat moment op elk gewenst moment in de code worden gebruikt. De volgende afbeelding geeft het codedeel weer dat deze handelingen teweeg brengt.
Afb. 2 Weergave van het codedeel dat de commandlinearguments inleest, en omzet in variabelen
Uitvoer van acties afhankelijk van de waarde van de basiscategorie De waarde van de basiscategorie-variabele wordt nu in beschouwing genomen. Alleen als deze één van twee specifieke waardes bezit, wordt een sequentie van acties uitgevoerd. Welke acties worden verricht hangt af van welk van de twee waardes het is. Hier volgen de twee waardes die aanleiding vormen voor acties. Per waarde beschrijf ik de acties die achtereenvolgens worden ondernomen. 1 “Unknown error” als basiscategorie Als de basiscategorie-variabele de waarde “Unknown error” bezit, wordt de “testOverigen”functie uitgevoerd. Deze bepaalt de specifieke categorie waartoe de vertaling behoort en print deze naar het scherm (de specifieke categorie verschijnt in de kolom voor de verdere categorisatie).
15
Vervolgens wordt naar het scherm geprint of de vertaling in een woordenlijst voorkwam of niet. Deze waarde, die ook door testOverigen is bepaald, verschijnt in de kolom genaamd “At wordlist”. Hij bedraagt “yes” als de vertaling in een woordenlijst voorkwam (in dat geval is de vertaling waarschijnlijk een bestaand woord), en “no” als dit niet het geval was. 2 “Typing error (...+ unknown error)” als basiscategorie Als de basiscategorie-variabele de waarde ”Typing error (...+ unknown error)” bezit, worden eerst alle non-alfabetische karakters uit de vertaling verwijderd. Om precies te zijn wordt elk non-alfabetisch karakter in de vertaling vervangen door ‘’, de empty string. Ik heb besloten de non-alfabetische karakters te verwijderen, omdat vertalingen met als basiscategorie “Typing error (...+ unknown error)” in alle gevallen tenminste één nonalfabetisch karakter bevatten zoals een punt, komma of slash. Als de vertaling namelijk alleen een typfout is, kunnen de kenmerken daarvan ongedaan worden gemaakt zodat de vertaling gelijk is aan de verwachting. Dit is niet mogelijk als de vertaling een “unknown error” is. De vertaling wijkt in dat geval teveel af van de verwachting en bevat daardoor geen kenmerken die typerend zijn voor een typfout (bij een typfout, waarbij de verschillen tussen vertaling en stimulus klein zijn, gaat het vaak om slechts enkele karakters die teveel, te weinig of foutief zijn ingevoerd). Desondanks kan bij een unknown error wel worden vastgesteld dat deze ook typfoutkenmerken bezit. Dit is alleen met zekerheid te zeggen als de betreffende vertaling naast alfabetische- ook nonalfabetische karakters bevat (die per definitie niet thuishoren in een correcte vertaling). In dat geval behoort de vertaling tot de basiscategorie “Typing error (...+ unknown error)”. Een tweede reden voor de verwijdering van non-alfabetische karakters uit de vertaling is dat de vertaling altijd zonder non-alfabetische karakters in beschouwing moet worden genomen. Anders kan deze niet op categorie worden geanalyseerd: een vertaling die non-alfabetische karakters bevat is daardoor al bij voorbaat incorrect.
Om terug te komen op de sequentie van handelingen: nadat de non-alfabetische karakters uit de vertaling zijn verwijderd worden dezelfde handelingen uitgevoerd als wanneer de basiscategorie “Unknown error” is. De specifieke categorie wordt nu echter in een iets andere vorm in de kolom weergegeven: de basiscategorie wordt naar het scherm geprint (“Typing error (...+ unknown error)”), waarbij “unknown error” is vervangen door een specifieke categorie. Als de basiscategorie van de vertaling bijvoorbeeld “Typing error (insertion of/substitution by non-alphabetical characters + unknown error)” is en de specifieke categorie van de vertaling is “NDE (translation – stimulus)”, dan wordt de specifieke categorie van de vertaling als volgt in de daarvoor bestemde kolom weergegeven: “Typing
16
error (insertion of/substitution by non-alphabetical characters + [NDE (translation – stimulus)])”. Als de basiscategorie van de vertaling niet “Unknown error” of “Typing error (...+ unknown error)” is, wordt diezelfde basiscategorie in de kolom voor de specifieke categorie weergegeven. Dit is bijvoorbeeld het geval bij de Typing errors zonder “+ unknown error”. Is de basiscategorie bijvoorbeeld “Typing error (double insertion of non-alphabetical character)”, dan wordt deze ook in de kolom voor de specifieke categorisatie weergegeven. De volgende afbeelding geeft het codedeel weer dat de uitvoer van acties afhandelt, afhankelijk van de waarde van de basiscategorie.
Afb. 3 Weergave van het codedeel dat de uitvoer van acties afhandelt, afhankelijk van de waarde van de basiscategorie
4.2.2 Functies die de hoofdcode gebruikt In deze paragraaf komen de functies aan bod die in de hoofdcode worden gebruikt en die daar ook gedefinieerd zijn. Elk van deze functies (de functie “testOverigen” buiten beschouwing gelaten) is gespecialiseerd in het vinden van één van de fouttypen: NDE, synoniem, of derivatie-affix. De “testOverigen-functie” die de eigenlijke verdere categorisatie uitvoert, komt het eerst aan bod. Hierna volgt een beschrijving van respectievelijk de functies isSynoniem, isPrefix, isSuffix en similarity.
17
functie ‘testOverigen’ De testOverigen functie voert achtereenvolgens de volgende handelingen uit: Controleer of de vertaling in een woordenlijst voorkomt Een woordenlijst in een txt-bestand bevat frequent voorkomende woorden uit alle voor het onderzoek gebruikte moedertalen. Deze file wordt door testOverigen geopend en ingelezen waarbij elke regel, bestaande uit één woord, wordt afgegaan. Voor elke regel wordt bepaald of het woord op die regel gelijk is aan de vertaling. Als dit het geval is, krijgt de inWoordenlijst-variabele de waarde “yes”, en wordt het afgaan van de regels van de file beëindigd. Als alle regels van de file zijn afgegaan en geen regel gelijk was aan de vertaling, behoudt de inWoordenlijst variabele de waarde “no” die hieraan al was toegekend. De waarde van de inWoordenlijst-variabele wordt uiteindelijk in de “At word list” kolom weergegeven. De woordenlijst is aan de hand van de volgende corpora gecreëerd: - het Oslo corpus (http://www.tekstlab.uio.no/norsk/bokmaal/english.html); - het Parole corpus (http://parole.inl.nl/html/index_dutch.html); - het ANW corpus (http://www.inl.nl/index.php?option=com_content&task=view&id=202&Itemid=506); - het CGN corpus (http://lands.let.kun.nl/cgn/); - het Eindhoven corpus (http://www.inl.nl/index.php?option=com_content&task=view&id=350&Itemid=502).
Aan de hand van deze corpora heb ik eerst per moedertaal een woordenlijst samengesteld. Daarin heb ik op de woorden d.m.v. UNIX commando’s achtereenvolgens de volgende voorbewerking toegepast: - verwijder alle non-alfabetische karakters; - transformeer alle uppercase letters naar lowercase letters; - reduceer woorden die meer dan één keer voorkomen tot één voorkomen; - verwijder per regel overbodige informatie, en behoud alleen het woord.
18
De afzonderlijke woordenlijsten voor alle moedertalen heb ik uiteindelijk samengevoegd tot één woordenlijst (woordenlijst.txt). Bepaal of de vertaling bepaalde ‘not in category’- kenmerken bezit Tijdens deze handeling wordt bepaald of de vertaling bepaalde kenmerken bezit die al per definitie bepalen dat deze tot een bepaalde ‘not in category’ - categorie kan worden beschouwd. Met ‘not in category’ wordt in dit geval bedoeld dat de vertaling niet tot één van de fouttypen (NDE, synoniem, of derivatie - affix) behoort maar desondanks bepaalde kenmerken vertoont. Het gaat om de volgende kenmerken: - de vertaling bestaat uit slechts één karakter. In dat geval wordt de vertaling tot “not in category (translation consists of single character)” gecategoriseerd. - de vertaling bestaat uit geen enkel karakter. In dat geval wordt de vertaling tot "Not in category (translation consists of non alph-character(s))" gecategoriseerd. Hierbij moet worden opgemerkt dat vertalingen met als basiscategorie “Unknown error” tenminste één alfabetisch karakter bevatten. Uit vertalingen met als basiscategorie “Typing error (…+ unknown error)” worden alle non-alfabetische karakters verwijderd. Als de vertaling na de verwijdering geen alfabetische of non-alfabetische karakters meer bevat moet deze uit alleen non-alfabetische karakters hebben bestaan. - de vertaling is gelijk aan de stimulus. In dat geval wordt de vertaling tot "Not in category (translation equal to stimulus)" gecategoriseerd. Testpersonen die als vertaling de stimulus invoerden hebben vermoedelijk de bedoeling van de test verkeerd begrepen. - de vertaling bevat tenminste één whitespace character. In dat geval wordt de vertaling tot "Not in category (multiple word translation)" gecategoriseerd. Als de vertaling geen van deze kenmerken vertoont wordt bepaald of de vertaling tot één van de volgende fouttypen behoort: NDE, synoniem, of derivatie-affix. Bepaal of de vertaling tot het fouttype NDE, synoniem, of derivatie-affix behoort Tot welk van de fouttypen behoort de vertaling? Dit wordt bepaald door achtereenvolgens de volgende in de hoofdcode gedefinieerde functies uit te voeren: “isSynoniem” voor detectie van synoniem-fouten, “isPrefix” voor detectie van prefix-fouten van het type derivatie-affix, “isSuffix” voor detectie van suffix-fouten van het type derivatie-affix, en “similarity” voor detectie van NDE-fouten. Elk van deze functies bepaalt of de vertaling tot het betreffende fouttype behoort. Als dit het geval is wordt de vertaling tot dat fouttype gecategoriseerd en worden de overige functies niet uitgevoerd. Als dit niet het geval is worden de overige functies wel uitgevoerd.
19
Behoort de vertaling ondanks de uitvoer van alle functies tot geen van de fouttypen die deze representeren, dan wordt de vertaling gecategoriseerd tot “Not in category”. De categorie “Not in category” of “Not in category(<subtype>)” is van belang, enerzijds omdat deze categorie duidelijk maakt dat de vertaling niet tot één van de foutcategoriën behoort door bepaalde specifieke kenmerken (dit is het geval bij de categorie “Not in category(<subtype>)”), en anderzijds omdat de categorie duidelijk maakt dat de vertaling eventueel verder kan worden onderzocht op fouttypen die dit onderzoek niet in beschouwing neemt (dit is het geval bij de categorie “Not in category”). functie ‘isSynoniem’ Deze functie detecteert synoniemfouten, en gaat daarbij als volgt te werk: Open een synoniemenlijst, afhankelijk van de moedertaal een txt-bestand met daarin een synoniemenlijst wordt geopend. Welke dit is, hangt af van de waarde van de moedertaal. Is de moedertaal bijvoorbeeld Nederlands, dan wordt een txtbestand geopend met daarin Nederlandse synoniemen (hetzelfde geldt voor de overige moedertalen). De synoniemenlijsten zijn per moedertaal op dezelfde manier opgebouwd: elke regel van het betreffende bestand bestaat uit twee woorden die van elkaar zijn gescheiden door één of meer whitespace characters. Beide woorden zijn synoniemen van elkaar. Controleer a.h.v. de synoniemenlijst of vertaling en verwachting synoniem zijn van elkaar Aan de hand van de in beschouwing genomen synoniemenlijst wordt gecontroleerd of vertaling en verwachting synoniemen zijn van elkaar. De functie gaat daarbij als volgt te werk: elke regel van het synoniemenbestand wordt in beschouwing genomen. Als het eerste woord op een regel gelijk is aan de verwachting, wordt het hierachter staande woord (op diezelfde regel) in beschouwing genomen. Als deze gelijk is aan de vertaling, wordt de vertaling als synoniem gecategoriseerd. Hetzelfde principe gaat op als het tweede, en niet het eerste woord, gelijk is aan de verwachting. In dat geval wordt het hiervoor staande woord (op diezelfde regel) in beschouwing genomen. Als deze gelijk is aan de vertaling, wordt de vertaling als synoniem gecategoriseerd. Ik heb ervoor gekozen om per regel van de synoniemenlijst zowel het eerste als het tweede woord op die regel met de verwachting te vergelijken, omdat dit de kans verkleint dat vertalingen die synoniem zijn van de verwachting desondanks niet als synoniem worden
20
gecategoriseerd (over het hoofd worden gezien). Dit zou het geval zijn als het tweede woord op een regel gelijk is aan de verwachting en het eerste woord op diezelfde regel aan de vertaling, waarbij het tweede woord niet als eerste woord voorkomt in de lijst, en de verwachting alleen met het eerste woord wordt vergeleken. De synoniemenlijsten heb ik gecreëerd door synoniemenlijsten op een bepaalde site te kopiëren naar een txt-bestand (per taal één txt-bestand). De volgende site heb ik daarvoor gebruikt: http://www.mijnwoordenboek.nl/synoniemNL.php. Op deze site zijn, per letter, synoniemenlijsten te vinden van woorden die met de betreffende letter beginnen. De structuur van de lijsten heb ik niet hoeven te veranderen.
Middels deze (bovenstaande) site heb ik synoniemenlijsten voor de volgende talen kunnen creëren: Duits, Nederduits, Fries, en Nederlands. Daarbij heb ik Duits en Nederduits als één moedertaal beschouwd, evenals Fries en Nederlands. Dit omdat de betreffende talenparen erg op elkaar lijken. Voor de overige talen heb ik helaas nog geen goede synoniemenlijsten kunnen vinden. functie ‘isPrefix’ Deze functie detecteert fouten van het type derivatie-affix. Het gaat daarbij om prefix fouten. De volgende acties worden achtereenvolgens uitgevoerd: Selectie van prefix-verzamelingen Per test- en moedertaal is een verzameling prefixen opgesteld . Ook hier heb ik Duits en Nederduits als één moedertaal beschouwd, evenals Fries en Nederlands. Afhankelijk van wat de test- en moedertaal is, worden twee van deze verzamelingen in beschouwing genomen: één voor de testtaal (deze verzameling bevat prefixen uit de testtaal), een ander voor de moedertaal (deze verzameling bevat prefixen uit de moedertaal).
Elk van de prefix-verzamelingen is op dezelfde manier opgebouwd: het is een verzameling van paren. Om precies te zijn een prefix met daarachter een getal dat bij die prefix behoort. De prefix- verzamelingen heb ik per moedertaal aan de hand van de volgende sites samengesteld: - Nederlands: http://nl.wikipedia.org/wiki/Lijst_van_Nederlandse_prefixen, en http://wapedia.mobi/nl/Lijst_van_Nederlandse_prefixen;
21
- Duits: http://german.about.com/library/verbs/blverb_pre01.htm; - Deens: http://www.students.cs.uu.nl/~gjcvliet/deens/index.html, en http://en.wikipedia.org/wiki/Danish_grammar; - Noors: http://en.wiktionary.org/wiki/Category:Norwegian_prefixes; - Zweeds: http://en.wiktionary.org/wiki/Appendix:Swedish_prefixes.
De prefix-verzameling voor de stimulus wordt in beschouwing genomen De prefixen uit de verzameling voor de stimulus worden één voor één in beschouwing genomen. Als een prefix uit de verzameling gelijk is aan de prefix die de stimulus bevat, leg dan het getal vast dat bij die prefix behoort. Voor het gemak noemen we dat getal x. De prefix-verzameling voor de vertaling wordt in beschouwing genomen De prefixen uit de verzameling voor de vertaling worden één voor één in beschouwing genomen. Als een prefix uit de verzameling gelijk is aan de prefix die de vertaling bevat, controleer dan of het getal dat bij die prefix behoort gelijk is aan x. Als dit het geval is, én als de verwachting niet dezelfde prefix bevat als de vertaling, doe dan het volgende: verwijder de prefix uit zowel de verwachting als de vertaling en bereken vervolgens de similarity daartussen (tussen vertaling en verwachting minus prefix) met behulp van de similarity functie. Het gaat daarbij om de similarity qua karakters, in de volgorde waarin deze voorkomen. Is de similarity hoog genoeg (tenminste 80%), dan wordt de vertaling als derivatie affix - fout gecategoriseerd.
functie ‘isSuffix’ Deze functie detecteert fouten van het type derivatie affix. Het gaat daarbij om fouten van het type suffix. De functie werkt hetzelfde als isPrefix. Het verschil is dat deze functie suffixen in plaats van prefixen in beschouwing neemt. De suffix-verzamelingen heb ik per moedertaal aan de hand van de volgende sites samengesteld: - Nederlands: http://nl.wikipedia.org/wiki/Lijst_van_Nederlandse_suffixen, en http://wapedia.mobi/nl/Lijst_van_Nederlandse_suffixen
22
- Duits: http://german.about.com/library/verbs/blverb_pre01.htm - Deens: http://www.students.cs.uu.nl/~gjcvliet/deens/index.html, en http://en.wikipedia.org/wiki/Danish_grammar. Voor het Noors en Zweeds heb ik helaas nog geen goede suffixlijsten kunnen vinden. functie ‘similarity’ Deze functie (die ook gebruikt wordt door de functies isPrefix en isSuffix) detecteert NDE vertalingen door de stringsimilarity te meten tussen vertaling en stimulus. Als deze hoog genoeg is wordt de vertaling als NDE-fout gecategoriseerd. De functie berekent de similarity door de karakterlengte van de langste gemeenschappelijke subsequentie te berekenen tussen stimulus en vertaling. Dat wil zeggen de langste gemeenschappelijke sequentie van karakters in de volgorde waarin ze voorkomen, waarbij de karakters elkaar niet direct hoeven op te volgen. Als de karakterlengte van de langste gemeenschappelijke subsequentie tenminste zo groot is als het aantal stimuluskarakters gedeeld door 1.5 (m.a.w. tenminste 65% van de lengte van de stimulus) is de similarity zo groot dat de vertaling tot NDE wordt gecategoriseerd. Om het criterium (nu op 65%) te bepalen heb ik een lijst met incorrecte vertalingen van het type NDE geanalyseerd. Aan de hand daarvan koos ik voor 65% als criterium, omdat vertalingen van het type NDE altijd meer dan de helft van de stimuluskarakters bevatten in de betreffende volgorde. Ik heb het criterium niet hoger gemaakt dan 65%, omdat anders de kans wordt vergroot dat bepaalde NDE-vertalingen niet in beschouwing worden genomen. In de praktijk bevatten veel NDE-vertalingen namelijk slechts iets meer dan de helft van de stimuluskarakters. Om tot NDE te kunnen worden gecategoriseerd, moet de vertaling eerst aan een aantal voorwaarden voldoen. Elk van de voorwaarden zal ik nu benoemen met de reden van toepassing. - Eerste voorwaarde: de eerste en laatste letter van de vertaling moeten gelijk zijn aan die van de stimulus. Vaak is dit niet het geval bij vertalingen die niet tot de NDE-categorie behoren, ook al vertoont de rest van de karakters tussen vertaling en stimulus grote
23
gelijkenis. Deze voorwaarde zorgt ervoor dat veel van deze ongewenste gevallen al bij voorbaat niet in beschouwing worden genomen. - Tweede voorwaarde: tenminste de eerste en/of laatste twee letters van de vertaling moeten gelijk zijn aan die van de stimulus. Deze voorwaarde vormt een aanvulling op de eerste voorwaarde, en de reden van toepassing is hier hetzelfde. Zou deze tweede voorwaarde ontbreken, dan zouden vertalingen waarbij de eerste óf laatste twee letters gelijk zijn aan die van de stimulus al bij voorbaat door de eerste voorwaarde worden uitgesloten als mogelijke NDE-categorie.
- Derde voorwaarde: het aantal karakters van de vertaling mag niet veel groter zijn dan het aantal stimuluskarakters. Om precies te zijn moet het aantal karakters waaruit de vertaling bestaat kleiner zijn dan het aantal karakters van de stimulus maal 1.4. Als de vertaling namelijk veel meer karakters bevat dan de stimulus, maakt dit de kans erg groot dat de vertaling tenminste 65% van de stimuluskarakters bevat, en daardoor als NDE wordt gecategoriseerd. Ter verduidelijking: als woord a slechts 3 karakters bevat en woord b 9, is de kans erg groot dat woord b meer dan de helft van de karakters van woord a bevat in die volgorde. De vertaling ‘kat’ zou dan (zonder de derde voorwaarde) als NDE worden beschouwd als de stimulus ‘kamerplant’ was. 5 Bespreking van de resultaten 5.1 Evaluatie Hoe is de specifieke categorisatie in de praktijk uitgevallen? Ik heb de methode voor verdere categorisatie geëvalueerd door de eerste 1000 records van de Deviating translations tabel te analyseren waarbij Duits als testtaal en Nederlands als moedertaal was geselecteerd. Aan de hand daarvan volgt nu per fouttype een bespreking van de resultaten. NDE NDE – fouten waren in de meeste gevallen correct gecategoriseerd. Hier volgen een paar voorbeelden van omstandigheden waarin de vertaling correct tot NDE-fout werd gecategoriseerd onder de kolom voor de specifieke foutcategorie. NDE: categorisatie correct Stimulus
Translation
Pred. category
Pred. category (Anne)
Abkommen
afkomen
Unknown error
NDE (translation - stimulus)
Bauer
bouwer
Unknown error
NDE (translation - stimulus)
24
Bestimmung
bestemming
Unknown error
NDE (translation - stimulus)
Ondanks dit feit werden bepaalde vertalingen foutief als NDE gecategoriseerd. De combinatie van stimulus en vertaling vertoonde in die gevallen vaak bepaalde kenmerken. Hier volgen omstandigheden waarin de vertaling foutief als NDE werd gecategoriseerd, met een beschrijving van de kenmerken daarvan. NDE: categorisatie incorrect (scenario 1) Stimulus
Translation
Pred. category
Pred. category (Anne)
Kasten
kast
Unknown error
NDE (translation - stimulus)
Mangel
mannen
Unknown error
NDE (translation - stimulus)
Expectation
Translation
Pred. category
Pred. category (Anne)
geslacht
verslecht
Unknown error
NDE (translation - expectation)
Tenminste de eerste óf laatste twee letters van de vertaling waren in deze omstandigheden gelijk aan die van de stimulus (zie de eerste twee voorbeelden) of die van de verwachting (zie het laatste voorbeeld). De similarity-functie laat dit toe: óf tenminste de eerste en laatste letter moeten gelijk zijn, óf de eerste en/of laatste twee letters. Bovenstaande voorbeelden laten zien dat gelijkheid van alleen de eerste of laatste twee letters teveel ruimte overlaat voor de volgende twee ongewenste gevallen: 1) tenminste de eerste twee letters van de vertaling zijn gelijk aan die van de stimulus, maar dit is niet het geval voor de laatste twee letters. Tenminste de laatste twee letters van vertaling en stimulus verschillen daarbij dusdanig, dat de vertaling daardoor niet als NDEfout kan worden beschouwd; 2) zie punt 1. Maar nu gaat het om de laatste twee letters. NDE: categorisatie incorrect (scenario 2) Stimulus
Translation
Pred. category
Situation
station
Unknown error
Expectation
Translation
aanvoering
aanrijding
Pred. category Unknown error
Pred. category (Anne) NDE (translation - stimulus) Pred. category (Anne) NDE (translation - expectation)
In deze omstandigheden waren tenminste de eerste én laatste letter van de vertaling gelijk aan die van de stimulus (zie het eerste voorbeeld) of die van de verwachting (zie het tweede
25
voorbeeld). Dat de vertaling in deze omstandigheden als NDE-fout werd gecategoriseerd, ondanks het feit deze niet als NDE te beschouwen is in combinatie met de betreffende stimulus, komt omdat de similarity-functie geen rekening houdt met de spreiding van de letters (of combinaties daarvan) die corresponderen. Het tweede voorbeeld maakt dit goed duidelijk: hier correspondeert in de langste gemeenschappelijke subsequentie de karaktersequentie “ring” in de verwachting met de volgende sequentie in de vertaling (die ik voor het gemak vetgedrukt heb weergegeven): aanrijding. NDE: categorisatie incorrect (scenario 3) Expectation
Translation
Pred. category
Pred. category (Anne)
vleugel
vlieger
Unknown error
NDE (translation - expectation)
In deze omstandigheid vertonen vertaling en verwachting wel grote gelijkenis qua losse karakters (in de betreffende volgorde daarvan), maar niet qua klank van klinkercombinaties. Dit komt omdat de similarity-functie geen rekening houdt met klankovereenkomst van twee klinkers (in bovenstaand voorbeeld is de ‘eu’ in de verwachting anders van klank dan de ‘ie’ in de vertaling). Synoniem-fouten Ook synoniem-fouten waren - voor de talen waarvoor synoniemenlijsten gecreëerd waren in de meeste gevallen correct gecategoriseerd. De vertaling ‘arbeid’ werd bijvoorbeeld correct als synoniem van de verwachting ‘werk’ gecategoriseerd, en ‘arts’ als synoniem van ‘dokter’. Omdat de synoniemlijsten die de isSynoniem-functie per moedertaal gebruikt in de praktijk nooit uitgebreid genoeg kunnen zijn, werden sommige synoniem-vertalingen over het hoofd gezien omdat de vertaling en/of de verwachting (nog) niet in de synoniemenlijst voorkwam. Gevallen waarbij de vertaling foutief als synoniem werd gecategoriseerd waren te wijten aan ‘fouten’ in de synoniemenlijst. De vertaling ‘doos’ werd bijvoorbeeld als synoniem gecategoriseerd van de verwachting ‘blik’, omdat blik en doos in de synoniemenlijst als elkaars synoniem voorkwamen. Derivatie affix-fouten Zowel de pre- als de suffix fouten werden in de meeste gevallen correct gecategoriseerd. Zoals bij de synoniem-fouten het geval is, kunnen bepaalde vertalingen van het type derivatie-affix over het hoofd worden gezien omdat de pre- of suffix van de vertaling niet in de betreffende pre- of suffix lijst voorkomt. In tegenstelling tot de synoniemlijsten zijn fouten
26
m.b.t. categorisatie hier meestal niet te wijten aan fouten in de pre- of suffixlijsten, omdat de pre- en suffix lijsten veel minder elementen bevatten en daardoor beter controleerbaar zijn op fouten. ‘Not in category’-fouten Vertalingen van het type ‘Not in category’ werden in vrijwel alle gevallen correct gecategoriseerd. 5.2 Samengevat De verdere categorisatie is in veel gevallen correct. Desondanks worden bepaalde vertalingen foutief tot een bepaalde categorie gecategoriseerd, of worden vertalingen niet tot een fouttype gecategoriseerd door o.a. incomplete lijsten voor dat fouttype: De functie voor detectie van NDE-fouten kan effectiever worden gemaakt: hij kan restrictiever worden gemaakt qua corresponderende karakters aan het begin en eind. Ook kan de functie meer rekening gaan houden met de spreiding van de corresponderende karakters, en met de klank van klinkercombinaties. De functie voor synoniemdetectie en derivatie-affix detectie kan worden verbeterd door verdere uitbreiding van de bij die functie behorende lijsten per taal, zodat minder van deze fouttypen over het hoofd worden gezien.
27
Geraadpleegde literatuur
-
Luce, P.A. en Pisoni, D.B., Recognizing spoken words: the neighborhood activation
model. Ear & Hearing, vol. 19, no. 1, 1998, pp. 1-36. -
perlretut - Perl regular expressions tutorial (2008)
URL: http://perldoc.perl.org/perlretut.html -
Longest common subsequence problem (zonder jaar)
URL: http://en.wikipedia.org/wiki/Longest_common_subsequence_problem
-Nederlandse en Duitse synoniemen (zonder jaar) URL: http://www.mijnwoordenboek.nl/synoniemNL.php - Voor samenstelling van de woordenlijst (zonder jaar) URL’s: http://www.tekstlab.uio.no/norsk/bokmaal/english.html http://parole.inl.nl/html/index_dutch.html http://www.inl.nl/index.php?option=com_content&task=view&id=202&Itemid=506) http://lands.let.kun.nl/cgn/ http://www.inl.nl/index.php?option=com_content&task=view&id=350&Itemid=502 - Voor creatie van prefix lijsten voor de methode voor derivatie-affixen (zonder jaar) URL’s: http://nl.wikipedia.org/wiki/Lijst_van_Nederlandse_prefixen http://wapedia.mobi/nl/Lijst_van_Nederlandse_prefixen http://german.about.com/library/verbs/blverb_pre01.htm http://www.students.cs.uu.nl/~gjcvliet/deens/index.html http://en.wikipedia.org/wiki/Danish_grammar http://en.wiktionary.org/wiki/Category:Norwegian_prefixes http://en.wiktionary.org/wiki/Appendix:Swedish_prefixes - Voor creatie van suffix lijsten voor de methode voor derivatie-affixen (zonder jaar) URL’s: http://nl.wikipedia.org/wiki/Lijst_van_Nederlandse_suffixen http://wapedia.mobi/nl/Lijst_van_Nederlandse_suffixen http://german.about.com/library/verbs/blverb_pre01.htm
28
http://www.students.cs.uu.nl/~gjcvliet/deens/index.html http://en.wikipedia.org/wiki/Danish_grammar.
29