Je eindcijfer voor deze cursus is opgebouwd uit de volgende
componenten:
- 3.6/10 groepswerk: lettergreepherkenner (33%), grafeem-foneem transducer (33%), opdracht lexicale semantiek (33%)
- 0.4/10 individuele opdracht lexicale semantiek
- 2/10 twee individuele opdrachten
- 4/10 schriftelijk tentamen, minimaal cijfer 5
Bij een cijfer voor het tentamen kleiner dan 5 moet er een hertentamen worden afgelegd (eind augustus).
Het schriftelijk tentamen zal enige vragen over fsa en pos bevatten, en een aantal vragen over de eerste 8 hoofdstukken, en 17, 19 en 20 uit de 2nd edition van Jurafski and Martin, daarnaast nog hoofdstuk 2 uit Mitchell, Machine Learning
- Algemeen: Hoofdstuk 1
- Reguliere expressies: Hoofdstuk 2
- Transducers: Hoofdstuk 3
- POS: Hoofdstuk 5 tot 5.5.4
- HMM: Hoofdstuk 6 tot 6.6
- Fonetiek: Hoofdstuk 7
- Spraaksynthese en intonatie: Hoofdstuk 8, niet p298/99(tf-idf), p312/3 (target cost, join cost)
- Automatische Spraakherkenning: Hoofdstuk 9, is geen tentamenstof
- The Representation of Meaning: Hoofdstuk 17
- Lexical Semantics: Hoofdstuk 19
- Computational Lexical Semantics: Hoofdstuk 20
- Information Extraction: Hoofdstuk 22, is geen tentamenstof
Aanbevolen om je voor te bereiden:
Opgaven uit Jurafsky and Martin:
- Hoofdstuk 2: maak de oefeningen 2.1, 2.3, 2.5, 2.6, en 2.10. Als de opgaven over het Engels gaan, hoe zouden die opgaven er voor het Nederlands uitzien?
- Hoofdstuk 3: zorg dat je de toepassing van FST voor morfologische ontleding beheerst. Vraag je
opnieuw af hoe secties 3.5 en 3.6 er voor het Nederlands uit zouden zien.
- Hoofdstuk 5: exercise 5.1. Je hoeft niet zelf een tagger te kunnen bouwen, dus de meeste andere opgaven vallen af. De voorbeelden van I want to race moet je wel beheersen (figs 5.13, 5.14, 5.15, 5.18)
- Hoofdstuk 6: exercise 6.1 en 6.2 kun je ook heel goed op papier doen (staat helaas niet in de pdf draft!)
- Hoofdstuk 7: al voldoende afgedekt door Praatoefeningen
- Hoofdstuk 8: exercise 8.1 tot 8.4, niet om echt te implementeren, maar om na te denken hoe je zo'n deelprobleem zou aanpakken
- Hoofdstuk 9: exercise 9.1
Wat verdere proefvragen voor het tentamen:
- Gegeven is een lijst van monosyllabische woorden. Schrijf, in de syntax voor grep,
reguliere expressies voor de volgende patronen:
- woorden die geen e bevatten;
- woorden die uitgaan op een klinker;
- woorden die beginnen met een klinker;
- woorden waarin een opeenvolging van 3 medeklinkers voorkomt.
- Geef een transducer die de vergrotende trap maakt voor Nederlandse adjectieven.
De transducer maakt de volgende omzettingen: zwart+COMP wordt zwarter. Testinput:
groot, klein, zwaar, licht, dik, dun, grijs, braaf.
- De syntactische annotatie van het Corpus Gesproken Nederlands heeft de vorm van een
DAG (directed acyclic graph). In een DAG kan er meer dan in een boomstructuur:
(1) takken kunnen elkaar kruisen, en
(2) een knoop kan meer dan 1 ouder hebben.
Voor welke fenomenen zijn eigenschappen (1) en (2) nuttig? Geef telkens een voorbeeld.
- Wat moet je als eerste doen wanneer je de volgende zin gaat synthetiseren: Op 3 januari 2008 kocht ds J.Bakker-Leblanc sr. om 12.13 een GPS type MO 15A62 voor 120,15 euro.
[De zin geheel in woorden omzetten. Daarvoor moet hier de nodige tekstanalyse plaatsvinden voor 3, 2008, ds, J., -, sr., 12.13, GPS, MO 15A62, 120,15.]
- Geef minstens drie interpretaties van de zin Ik zag haar kleuren.
Wat is er nodig om de zin (automatisch) te disambigueren?
[haar als pers.vnw of zelfst.nw, kleuren als zelfst.nw of werkwoord. POS tagging en parsing.]
- Wat is de Turing test?
[Een computer als een mens te laten reageren]
- Waarom zal MBROLA met een Nederlandse stem niet alle Engelse woorden kunnen spreken? Wat zou er minimaal voor nodig zijn om dat wel te kunnen?
[Omdat specifiek Engelse fonemen, en difonen daarmee, niet beschikbaar zijn. Ook specifieke grafeem-foneem voor het Engels ontbreken. Dus de difoon set moet uitgebreid worden, en g2p moet uitgebreid worden.]
- Teken (ongeveer) de golfvorm van een /b/. Waar zou je de knip voor een difoon met een /b/ leggen?
[Een /b/ is vocal murmer+plof. Knip vlak voor de ruisplof]
- Geef 5 zinnen waarin POS niet altijd eenduidig is, en leg uit waarom.
- Hoe kun je uit een getagd corpus de kans uitrekenen dat een zelfstandig naamwoord op een lidwoord volgt?
[Door te tellen hoe vaak Det+N voorkomt en te delen door het aantal Det]
- Uit welke componenten bestaat een HMM voor POS tagging?
[Een state architectuur met transitie kansen, en de kansen op een POS in een state.]
- Waarom is het Viterbi algoritme efficient?
[Omdat alleen het maximale pad wordt gezocht (het voorwaartse algoritme berekent de som van de kansen langs alle mogelijke paden)]
- Beschrijf de recursiestap in het forward algoritme.
[Op t+1 kun je in een state j komen vanuit alle states: je neemt de voorwaartse variabele in een state, je vermenigvuldigt dan met de kans op een overgang naar state j, en je vermenigvuldigt met de kans op de observatie op t in j. Dat doe je voor alle mogelijke voorafgaande states, en je sommeert de uitkomst tot de waarde van de voorwaartse variabele in j op tijdstip t+1. Dat doe je voor alle j, en je schuift vervolgens op naar t+2.]
- Wat zijn de drie kernproblemen bij Hidden Markov Modelling?
[a) de kans dat een hmm een observatiereeks kan verklaren, b) het beste pad door het hmm, c) hoe train je een hmm]
- Wat zijn de observatiegrootheden bij spraakherkenning? Waarom zijn deze gecompliceerder dan de observatiegrootheden bij POS?
[Per 10 ms wordt de omhullende van een spraakspectrum bijvoorbeeld als MFCC coefficienten berekend. Dat is een continue variabele en niet discreet (aftelbaar) zoals POS]
- Waarom kan de word error rate groter dan 1 worden?
[Omdat er inserties kunnen zijn]
- Geef een grep expressie waarmee je Nederlandse postcodes herkent.
[1-9][0-9]{3}[A-Z]{2}
- a) Vul de onderstaande transitiematrix A aan (S=Start, F=Finish; non-emitting):
----1---2---3---4---F
S 0.5 0.3 ??? 0.0 0.0
1 0.3 ??? 0.1 0.1 0.0
2 0.0 0.2 0.5 0.1 ???
3 0.0 0.0 0.1 ??? 0.5
4 0.0 0.0 0.0 0.6 ???
[som op rij moet 1 zijn]
b) Wat is het kenmerkende van deze architectuur?
[je kunt niet terug: links-rechts of Bakis architectuur]
c) Wat is de kans op de statereeks 2 2 3 4 ?
[K = a(S,2)*a(2,2)*a(2,3)*a(3,4)*a(4,F)]
d) Per state kun je nu twee observaties doen: Warm of Koud. Vul de B-matrix aan:
s P(W|s) P(K|s)
1 0.3
2 0.4
3 0.2
4 0.6
[som op rij moet 1 zijn]
e) Wat is de kans op de observatiereeks Warm, Koud, Warm, Warm voor de statereeks uit c)?
[K * P(W|2)*P(K|2)*P(W|3)*P(W|4)]
f) Wat is de meest waarschijnlijke statereeks voor de observatiereeks Warm, Koud?
[mogelijke paden zijn S,1,2,F; s,1,3,F; S,2,2,F; S,2,3,F; S,2,4,F; S,3,3,F; S,3,4,F; de hoogste kans wint, kan met Viterbi, maar je hebt toch alles nodig voor de volgende vraag]
g) Wat is de totale kans dat dit model de observatiereeks Warm, Koud verklaart?
- Hoe kun je met de voorwaartse en de terugwaartse variabele de kans uitrekenen dat je op tijdstip t in een bepaalde state j zit (gegeven het hmm)?
[het product van de voorwaartse en de terugwaartse variabele voor j, op t; gedeeld door P(O|lambda); de voorwaartse variabele geeft de kans op alle observaties tot t, terwijl je op tijdstip t in state j zit, terwijl de terugwaartse variabele de kans op alle observaties na t geeft, terwijl je vanaf state j vertrekt]
- Hoe werkt PSOLA?
[PSOLA is Pitch Synchronous OverLap Add, een methode om de toonhoogte van spraak te manipuleren. Zoals de Engelse naam zeg, wordt het spraaksignaal per periode uit elkaar geknipt om vervolgens inelkaar, of uit elkaar te worden verschoven, en dan weer opgeteld te worden]
- Hoe luidt de wet van Bayes en hoe wordt die gebruikt in automatische spraakherkenning?
[P(W|A)=P(A|W)P(W)/P(A); je wilt woorden herkennen uit spraak, dan kun je gebruik maken van de te trainen kans op een akoestische realisatie gegeven een woord (veel mensen eenzelfde woord laten uitspreken), de a priori kans op het woord zelf (is ook te trainen uit tekstcorpora), en de kans op het akoestisch signaal. De laatste kan kun je negeren, omdat het signaal gegeven is, en we alleen willen weten wat voor datzelfde signaal de kans op een woord is.]
- Teken de automaat die hoort bij de reguliere expressie [[a,b]+,b*]
Geef de toestanden, overgangen, begin- en eindtoestand(en)
[sequenties als ab, abb, abab, ababbbbbb moeten gegenereerd kunnen worden]
- Maak een transducer die, gegeven de infinitief van een regelmatige werkwoord in het Nederlands, de onvoltooid verleden tijd (1ste persoon enkelvoud) maakt.
Voorbeeld: INPUT: werken OUTPUT: werkte
Gebruik de notatie van het practicum:
macro(ovt, ...).
Je transducer moet werken voor de volgende gevallen:
haten, zweten, hakken, strekken, maken, straffen, keffen, krassen, grazen,
matsen, lachen, kapen, kappen, verven, zweven.
:- multifile rx/2.
:- multifile macro/2.
:- ensure_loaded(replace_nm).
macro(cons,a..z - {a,e,i,o,u,y}).
macro(tkof,{t,k,f,s,[c,h],p}).
macro(stam,[?+,[e,n]:'+']).
% de '+' en '-' markeerders worden gebruikt
% om de context voor de replace operaties te bepalen
macro(te,replace([]:['-',t,e],tkof,'+')).
macro(de,replace([]:['-',d,e],cons,'+')).
macro(lang,replace({a:[a,a],e:[e,e]},cons,[cons,'-'])).
macro(eind,replace({[f,f]:f,
[k,k]:k,
[s,s]:s,
[p,p]:p,
v:f,
z:s},
[],'-')).
macro(ruimop,replace({'-':[],'+':[]},[],[])).
% cascade van transducers
macro(ovt,stam o te o de o lang o eind o ruimop).
-
Use the t-test to determine whether `old houses' is a collocation (at the significance
level 1%). These are the counts: `old' occurs 17,345 times, `houses' 5,437 times, and there
are 18,377,612 tokens overall.
-
What are the cosine and Jaccard similarity scores between the words `dog` and `cat` given the following information:
features: bark eat sleep
dog 10 2 7
cat 0 8 7
-
What are the potential problems (shortcomings) when using a simple path-based distance on WordNet, as in log path(c1, c2), where c1 and c2 are synsets?
-
Think of patterns in Dutch that would correspond to Hearst patterns in English (for hypernymy extraction).