Taal

Hier gaat het over mijn activiteiten rond (Stichting) OpenTaal, maar ook over niet direct daaraan gerelateerde aspecten van taal en talen.

Inventarisatie van de eisen aan Nederlandstalige woordafbreking in OpenOffice.org en andere opensourcesoftware. De bedoeling is te komen tot een precieze specificatie waarmee goede woordafbreking kan worden geïmplementeerd.

Achtergrond

Voor een gelijkmatige opmaak van tekst kunnen woorden die niet meer in hun geheel op het eind van een regel passen worden opgesplitst in twee delen, waarvan het tweede op de volgende regel wordt geplaatst. Dit heet woordafbreking (Engels: hyphenation). Dat een woord is afgebroken wordt aangegeven met een liggend streepje (afbreekteken) aan het eind van het eerste van de twee delen.

Woorden kunnen niet op een willekeurig punt worden gesplitst, maar alleen tussen lettergrepen. Hoe een woord in lettergrepen kan worden opgedeeld is echter niet altijd duidelijk. Daar zijn dan ook regels voor geformuleerd. De genoemde regels zijn echter niet uitputtend ("slechts een vingerwijzing"). Voor de afbreking van de woorden in het Groene Boekje is de ''technische handleiding'' (pdf) gehanteerd, zie pagina 146 en verder.

Zie ook de afbreekregels van het (overig niet meer wettelijk geldende) [Spellingbesluit](http://wetten.overheid.nl/BWBR0008116/geldigheidsdatum_01-01-2006#BIJLAGE1 Spellingbesluit) van 1996 en uitleg over veranderde woordafbrekingen in het nieuwste Groene Boekje.

Naar mijn mening is van de genoemde Technische Handleiding uit te gaan als specificatie voor correcte afbreking van het Nederlands.

Automatisch afbreken

Bij tekstverwerkers zoals OpenOffice.org en opmaakprogramma's zoals TeX is handmatige woordafbreking op zijn minst omslachtig en dient daarom zoveel mogelijk automatisch plaats te vinden. In deze programma's wordt daarvoor gebruik gemaakt van een methode die gebruik maakt van [http://www.tug.org/docs/liang/ hyphenation patterns]. De methode gaat ervan uit dat aan de hand van een beperkt aantal letters links en rechts van een locatie in een woord bepaald kan worden of die locatie een geldige afbreekplaats is of niet. Dit is vastgelegd in een bestand met afbreekpatronen, dat meestal wordt samengesteld door met het programma Patgen een lijst met van afbreektekens voorziene woorden te analyseren.

Waar deze aanpak in het Engels adequate resultaten oplevert schiet hij tekort bij talen als het Nederlands, onder meer omdat deze veel productiever zijn waar het samengestelde woorden betreft. Daardoor kom je in een tekst vaker woorden tegen die niet in een woordenlijst voorkomen, waaruit de afbreekpatronen zijn samengesteld. Ook kan het voorkomen dat de schrijfwijze van lettergrepen verandert bij afbreking (voorbeeld: autootje -> auto-tje, cafeetje -> café-tje). Een acceptabele automatische woordafbreking voor het Nederlands moet rekening houden met dit soort bijzonderheden.

Aanpak

Er zijn verschillende mogelijkheden voor de implementatie van een automatische woordafbreking:

  • regels: hierbij implementeert een algoritme de afbreekregels, waarbij wel heel wat informatie nodig is om ze correct toe te passen: is het woord een samenstelling of afleiding, zo ja van welke delen, enzovoort.
  • opzoeken: hierbij zijn eenvoudig van zoveel mogelijk woorden die in een tekst kunnen voorkomen de afbrekingen gespecificeerd.
  • patronen: zoals boven beschreven.

In de praktijk zal een combinatie van deze mogelijkheden het beste resultaat geven. Zo kan informatie over hoe woorden (kunnen) zijn samengesteld een aanvulling geven op patroongebaseerde afbreking, en kan een lijst met uitzonderingen worden toegevoegd voor problematische gevallen. Aanpassing van de bestaande implementatie lijkt haalbaar en aantrekkelijker dan een radicaal andere aanpak.

Concrete beperkingen van de huidige afbreeksoftware

In eerste instantie is de aandacht gericht op de afbreekfunctie in OpenOffice.org. In dit pakket zit de mogelijkheid van automatische afbreking, daarnaast is een halfautomatische afbreekfunctie beschikbaar. Het voordeel van de halfautomatische afbreking (gegeven dat de automatische verre van perfect is) is dat de afbrekingen interactief door de gebruiker kunnen worden aangepast, overigens ook met zekere beperkingen. Het nadeel is dat deze functie expliciet moet worden gestart, wat na bewerking van de tekst in de meeste gevallen nodig is, en wat al gauw wordt vergeten of nagelaten.

  • Ik heb gemerkt dat bij speciale afbrekingen de halfautomatische afbreking niet hetzelfde werkt als de automatische (bij gevallen als cafeetje e.d.)
  • Afbreken van woorden met trema [http://www.openoffice.org/issues/show_bug.cgi?id=71608 werkt niet goed]
  • Mogelijke fouten bij de afbreking van samengestelde woorden die niet in de lijst staan waarmee de patronen zijn samengesteld
  • Geen oplossing voor de onmogelijkheid om op basis van het afzonderlijke woord automatisch correcte afbreking te kiezen bij homoniemen die verschillende afbrekingen hebben. Bijvoorbeeld koetjes -> koe-tjes of koet-jes (van koe of koet) en logeetje -> logé-tje of logeetje (afhankelijk of het om een man of vrouw gaat)

Bijzondere gevallen

Het gaat hier om voorbeelden van gevallen waarmee rekening moet worden gehouden, waarbij eerder fouten in de afbreking zijn gezien, of waarmee zulke fouten kunnen worden verwacht

  • autootje -> auto-tje
  • cafeetje -> café-tje
  • aveetje -> ave-tje
  • cornflakes -> corn-flakes, business -> busi-ness, typecasten -> type-casten (géén afbreekpunt binnen 'flakes', 'busi', 'type')
  • koetjes -> koe-tjes óf koet-tjes, logeetje -> logé-tje of logee-tje, maatje -> ma-tje óf maat-je, buurtje -> buur-tje óf buurt-je, valkuil -> val-kuil óf valk-uil
  • baby'tje -> baby-tje
  • pizza -> piz-za (niet pi-zza)
  • Alphen -> Al-phen (niet Alp-hen)
  • Aardrijkskundige namen zoals Guatemala, Puerto Rico, Reykjavik
  • bostra -> bos-tra (tra is een open strook in het bos), sleepruim -> slee-pruim (soort pruim)
  • cyberterrorisme -> ''niet'' cybert-errorisme, regeringstop -> ''niet'' regering-stop (voorbeelden van samenstellingen die waarschijnlijk niet voorkwamen in de lijst waarmee de patronen zijn samengesteld)
  • restoren (niet: rest-oren)

Meer probleemgevallen zijn gemeld in de mailinglist van OpenTaal: zoeken op "afbreking" in de titel.

Links