OPGAVE 1
Algemeen:
-
Opdrachten mag je alleen of met zijn tweeen maken. Als je samenwerkt met
iemand, stuur je opdracht dan 1 maal in, met duidelijke vermelding van
beide auteurs.
- Alle bestanden die je nodig hebt voor deze opdracht staan ook in
het directory ~gosse/NLP/opg1 op hagen en tcw2.
OPDRACHT
Maak een FSA macro-file met daarin macros voor
-
syllable (een mogelijke lettergreep van het Nederlands)
-
onset (een mogelijk begin (medeklinkers) van een lettergreep)
-
nucleus (een mogelijke kern (klinkers) van een lettergreep)
-
coda (een mogelijk eind (medeklinkers) van een lettergreep)
Een flauw voorbeeld is syllable.pl. Je
kunt dit bestand nemen, en de definities daar vervangen door iets beters.....
Macro's en auxiliary files
Je kunt deze macro's laden door fsa te starten (fsa tkconsol=on -tk), en dan
in het menu File te kiezen voor LoadAux of Reconsult Aux en dan het betreffende
bestand te selecteren.
Als er een macro met als naam klinker is gedefinieerd, kun je in de Regex regel
klinker gebruiken i.p.v. de corresponderende reguliere expressie.
Macro's kunnen andere macro's aanroepen (zie lettergreep).
TESTEN
Nadat je deze definities hebt gemaakt, en hebt gecontroleerd of ze correct
zijn (met fsa -tk), kun je je werk op twee manieren controleren.
Je hebt hiervoor de volgende bestanden nodig:
-
Makefile definities van
de verschillende make opdrachten.
-
dol.mono.stem lijst met eenvoudige woorden
-
dol.mono.syll afbreekpatronen voor deze woorden
-
hyphenate.pl Prolog-bestand voor het maken van
afbreekpatronen
-
monosyll lijst woorden van de vorm [medeklinker
*, klinker +, medeklinker *]
-
replace.pl prolog bestand met macro's voor hyphenate.pl
-
syllable.pl een bestand met macro's
voor syllable, onset, nucleus, en coda.
Test 1: Herkennen van `vreemde' woorden.
Het bestand 'monosyll' bevat een lijst van 5890 woorden van de vorm
[medeklinker *, klinker +, medeklinker *]. Het Unix commando
make not_accepted
maakt een bestand `not_accepted' met daarin alle woorden uit de lijst
die niet door de automaat `syllable' worden herkend. Als het goed is zal
deze lijst vooral woorden bevatten die bestaan uit meer dan een lettergreep
(aaien, beiaard,...) en woorden die niet Nederlands zijn (back, blues,...).
Test 2: Eenvoudige woorden afbreken
Het bestand dol.mono.stem bevat een lijst met 12628 mono-morfeem (niet-samengestelde)
woorden. Het (Unix) commando
make hyphen_errors
maakt een lijst hyphen_errors met daarin alle woorden die foute afbreekstreepjes
bevatten (1e kolom, 2e kolom = goede afbreekpatroon), en zegt welk percentage
je fout doet.
NOTA BENE
- Controleer voor je gaat testen eerst of alle definities correct zijn,
bv door ze te laden in fsa en enkele voorbeelden uit te proberen.
-
Het unix commando make maakt bestanden die zijn gedefinieerd in
een 'Makefile'. Als je een test overnieuw wil doen kan het zijn dat make
zegt 'FN up to date'. In dat geval kun je FN verwijderen, en opnieuw make
doen (zie ook 'man make'). Als je helemaal overnieuw wilt beginnen,
kun je ook 'make clean' zeggen: alle door make gemaakte bestanden
worden dan verwijderd.
Verslag
-
Stuur het bestand syllable.pl en een kort verslagje op naar de practicumbegeleider.
- In het verslag vermeld je de resultaten van test 1 (hoeveel woorden herken je niet?,
Kun je iets zeggen over de soort woorden die je niet herkent?) en test
2 (hoeveel woorden doe je fout?, kun je iets zeggen over de soort fouten
die je programma maakt?)
- Deelnemers aan het practicum op woensdag sturen hun resultaten naar gosse@let.rug.nl,
deelnemers aan het practicum op donderdag naar m.b.villada@let.rug.nl
Deadline: Donderdag 17 april.
Succes!
Gosse.
p.s. Mijn eigen niet al te serieuze poging levert 22%
woorden niet geaccepteerde woorden op bij test 1 en iets minder dan 10%
fouten bij test 2....