De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Practica Computerlinguistiek Tekst en uitleg:

Verwante presentaties


Presentatie over: "Practica Computerlinguistiek Tekst en uitleg:"— Transcript van de presentatie:

1 Practica Computerlinguistiek Tekst en uitleg: http://www.ccl.kuleuven.ac.be/~vincent/practica/

2 Inhoud " Inleiding tot Perl: – scalaire data – in- en uitvoer – array- en lijstdata – controlestructuren – oefeningen

3 Inhoud (2) " Reguliere expressies – reguliere expressies in Linux: grep – reguliere expressies in Perl " Morfologische analyse m.b.v. Perl – conversie van regels in tekstvorm naar formele regels – implementatie in Perl

4 Inleiding tot Perl " Scalaire Data – variabelen – strings – getallen – operatoren " In- en Uitvoer – invoer van de gebruiker – een file als invoer – uitvoer naar het scherm – uitvoer naar een file

5 Inleiding tot Perl (2) " Array- en lijstdata – toekenning – elementtoegang – push, pop, shift en unshift " Controlestructuren – If, else, elsif en unless – While en until – For en foreach

6 Scalaire Data " Een scalaire waarde is ofwel een getal ofwel een reeks karakters (string) " VARIABLEN: een naam voor een object dat 1 of meer waarden bevat. De naam blijft constant over het programma. De waarde kan veranderen.  In Perl krijgen scalaire variabelen een naam beginnend met '$' gevolgd door een letter. Daarna kunnen nog letters, cijfers of underscores volgen (_). Vb: $xyz123, $lijn_lengte " STRINGS: opeenvolgingen van karakters. De kortste string bevat geen karakters. De langste string is afhankelijk van het geheugen van de computer.

7 Perl opstarten " tik het programma in eender welke editor (in de practica gebruiken we emacs) " save het als programmanaam.pl " start het programma aan de commandline met: perl programmanaam.pl

8 Scalaire Data (2) " Strings met enkele aanhalingstekens: elk karakter tussen de aanhalingstekens behoort letterlijk tot deze string. " Strings met dubbele aanhalingstekens: naast gewone letters zijn er ook een aantal controlekarakters (\n, \t). Deze kunnen tussen de dubbele aanhalingstekens opgenomen worden. Een ander kenmerk: variabele interpolatie: als variabelenamen gebruikt worden in de string, dan worden deze vervangen door de waarde van die variabelen. " GETALLEN: Perl maakt geen onderscheid tussen natuurlijke getallen, reële getallen en getallen in exponentiële notatie. " OPERATOREN: produceert een nieuwe waarde ahv een of meer andere waarden. Vb: =, +, -, *, /, **, concatenatie

9 In- en Uitvoer " Invoer van de gebruiker: $a= – Gebruikersinvoer eindigt op \n. Aangezien we meestal niet geinteresseerd zijn in deze \n: chop($a) verwijdert laatste karakter van string " Een File als invoer: – toekennnen van FILEHANDLE: open(FILEHANDLE,$inputfile); – lezen van de invoer: $a= – sluiten van de invoerfile: close(FILEHANDLE)

10 In- en Uitvoer (2) " Uitvoer naar het scherm: print $a, print "hallo", print "$a\n"; " Uitvoer naar een file: – filehandle toekennen: open(OUTPUT,">$filenaam"); – print OUTPUT $a, print OUTPUT "hallo" – sluiten van file: close (OUTPUT);

11 Array- en Lijstdata " Een array is een geordende lijst van scalaire data. Elk element van de array is een aparte scalaire waarde. Deze elementen hebben een specifieke volgorde. " De kleinste array bevat geen elementen. De grootste array is afhankelijk van het computergeheugen " Een array-naam lijkt op de naam van een scalaire variabele, met dit verschil: het initiële karakter is een @ ipv een $ " TOEKENNING: @lijst=(1,2,3); @lijst=("fred",4.5); @lijst=($a,17); @lijst=(); " ELEMENTTOEGANG: elk arrayelement heeft een index. Het eerste element heeft index=0, het tweede index=1 enz. – $lijst[0] is het eerste element van de array @lijst ($ wordt gebruikt omdat het om een scalaire waarde gaat)

12 Array- en Lijstdata (2) " PUSH: als we een element aan de rechterkant van de lijst willen toevoegen: push(@lijst,$nieuw_element); " POP: als we het laatste element uit de array willen verwijderen: $laatste_element=pop(@lijst); " UNSHIFT: als we een element aan de linkerkant van de lijst willen toevoegen: unshift(@lijst,$nieuw_element); " SHIFT: als we het eerste element uit de array willen verwijderen: $eerste_element=shift(@lijst);

13 Controlestructuren " If, else, elsif en unless – bij het gebruik van if wordt een voorwaarde geëvalueerd – als deze voorwaarde waar is wordt uitgevoerd wat in het volgende blok staat if ($a == 1) {doe dit als $a = 1;} else {doe dit als vwde niet waar is;} – elsif wordt gebruikt om meer vwden achter elkaar te schakelen – unless is omgekeerde van if.

14 Controlestructuren (2) " Vergelijkende operatoren – bij het stellen van de vwden worden operatoren gebruikt – gelijk aan : == bij getallen, eq bij strings – niet gelijk aan: != bij getallen, ne bij strings – kleiner dan: < bij getallen, lt bij strings – groter dan: > bij getallen, gt bij strings – kleiner of gelijk aan: <= bij getallen, le bij strings – groter of gelijk aan: >= bij getallen, ge bij strings

15 Controlestructuren (3) " Logische operatoren – vwden kunnen gecombineerd worden dmv 'en' en 'of' – 'en' : && – 'of' : || if (($a == 1) && ($naam eq 'Jan')) { blok1;} else { blok2;}

16 Controlestructuren (4) " While en until – herhalingsmechanisme zolang of totdat aan de vwden voldaan is. while ($a < 10) { doe_dit; $a++; } – until herhaalt het blok totdat aan de vwden voldaan is (cf. unless vs. if)

17 Controlestructuren (5) " for – for voert een lus uit met behulp van een teller – deze teller wordt eerst geinitialiseerd, lus wordt uitgevoerd totdat aan een vwde voldaan is, en er wordt iets met de teller gedaan for ($i=0;$i<10;$i++) { doe_dit; }

18 Controlestructuren (6) " foreach – doet iets met elk element van een array foreach $element (@array) { doe_dit; }


Download ppt "Practica Computerlinguistiek Tekst en uitleg:"

Verwante presentaties


Ads door Google