woensdag 2 september 2009

Sheeptalk

Gister mijn 1e mastervakcollege gevolgd: Speech & Language Processing 1. Beviel goed, college in een klein zaaltje met maar 15 mensen, gegeven door Rieks op den Akker. Rare vent, maar wel enthousiast over zijn vakgebied, en dat is belangrijk :-)
Het vak gaat over taal en het verwerken daarvan. Klein voorbeeldje! Stel we willen de taal 'Sheeptalk' analyseren. De taal (L1) bevat de volgende zinnen:
- baa!
- baaa!
- baaaa!
Etcetera.
Ofwel, altijd een b, minstens 2 a's (of meer) en 1 uitroepteken. 'ba!' en 'baaa' zijn geen onderdelen van sheeptalk, ofwel deze woorden zitten niet in de set L1. Dit kunnen we op meerdere manieren formeel opschrijven. Als grammatica (G1):
S -> baA!
A -> a | aA
S is het startsymbool. A is een nieuw symbool dat vervangen moet worden, door 1 of meer a's. De pipe | geldt als 'of'-teken. Je kiest een a, of een aA. Zo kun je oneindig veel a's genereren als je dat zou willen :) De taal L1 wordt gegenereerd door de grammatica G1. We kunnen ook een reguliere expressie maken die precies de sheeptalk "accepteert", en alle andere input niet:
/baa+!/
De b, a, a en ! spreken voor zich. Het zijn symbolen uit het alfabet van onze taal. De + betekent: 1 of meer. De / zijn om aan te geven dat het om een reguliere expressie gaat.

Tot zover deze mini inleiding in grammatica's en formele talen. Morgen mijn 2e college :-)