Korpusten käsittely clt131, P Luento 5

Samankaltaiset tiedostot
Ctl160 Tekstikorpusten tietojenkäsittely p.1/28

Korpusten käsittely clt131, P Luento 3

Korpusten käsittely clt131, P Luento 4

Ctl160 Tekstikorpusten tietojenkäsittely p.1/15

Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento

Korpusten käsittely clt131, P Luento 6

Korpusten käsittely clt131, P Luento 1

Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento,

CLT131 Korpusten käsittely

CLT131 Korpusten käsittely (3op)

Ctl160 Tekstikorpusten tietojenkäsittely

Kieliteknologian ATK-ympäristö Neljäs luento

Ctl160 Tekstikorpusten tietojenkäsittely p.1/24

Luento 5. Timo Savola. 28. huhtikuuta 2006

CLT131 Korpusten käsittely Viides luento

CLT131: Tekstityökalut 2011, kuudes luento

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

CLT131: Tekstityökalut 2010, neljäs luento

Luento 4. Timo Savola. 21. huhtikuuta 2006

Johdatus Ohjelmointiin

Kieliteknologian ATK-ympäristö Kuudes luento

Hieman linkkejä: lyhyt ohje komentoriviohjelmointiin.

Sisällys. Johdatus Linux/Unixiin: Osa 2. Prosessin tilat. Prosessien hallinta. Prosessien monitorointi

Ohjelmoinnin perusteet Y Python

Kieliteknologian ATK-ympäristö Viides luento

Kieliteknologian ATK-ympäristö Viides luento

Asialista. CLT131: Tekstityökalut 2010, neljäs luento. Lähiaikataulu. Asialista. Käytännön asiat

Asialista. CLT131: Tekstityökalut 2010, kolmas luento. Laskuharjoitusaikataulut. Harjoituksissa havaitut virheet. Käytännön asiat/kertaus

Ohjelmoinnin perusteet Y Python

Perusohje vi-editorin käyttöön

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Ohjelmoinnin perusteet Y Python

Asialista. CLT131: Tekstityökalut 2012, kymmenes luento. 2. frekvenssien muunnos todennäköisyyksiksi. 1. taulukkohaut

CLT131: Tekstityökalut 2012, kymmenes luento

[Jnix näyttökoe. o ei ole sallittua käyttää mitään verkkolevyjakoa tai mitään siihen rinnastettavaa järjestelmdä.

Komentotulkki. Kysymyksiä

CLT131: Tekstityökalut 2010, toinen luento

Zeon PDF Driver Trial

Asialista. hippu ja.bashrc. Asialista. Tutkimusongelma: tekstin morfologisen jäsennyksen selvittely

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Python-ohjelmointi Harjoitus 5

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Komentotulkki (SHELL) C- "perhe" - csh, alkup. C shell. Komentokieli. kieltä. - tcsh - edellisen laajennettu versio

CLT131: Tekstityökalut 2011, viides luento

CLT131: Tekstityökalut 2011, seitsemäs luento

PERL. TIE Principles of Programming Languages. Ryhmä 4: Joonas Lång & Jasmin Laitamäki

Luento 3. Timo Savola. 7. huhtikuuta 2006

Harjoitus 10: Mathematica

Java-kielen perusteet

1.1 Tekstinprosessointiohjelmien yleinen toimintatapa (1)

Java-kielen perusteet

Hannu Valtanen Oy. Linux vi-editori

Metropolia Ammattikorkeakoulu

4. Lausekielinen ohjelmointi 4.1

CLT131: Tekstityökalut 2010, kolmas luento

Ohjelmoinnin perusteet Y Python

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen

Ctl160 Tekstikorpusten tietojenkäsittely Viides luento

Ohjelmoinnin peruskurssi Y1

KOODAUSPLÄJÄYS. Ohjelmoinnin perusteet

CLT131: Tekstityökalut 2010, kuudes luento

Ohjelmoinnin perusteet Y Python

Harjoitus 1: Matlab. Harjoitus 1: Matlab. Mat Sovelletun matematiikan tietokonetyöt 1. Syksy 2006

MITÄ JAVASCRIPT ON?...3

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Kieliteknologian ATK-ympäristö Toinen luento

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Datatähti 2019 alku. task type time limit memory limit. A Kolikot standard 1.00 s 512 MB. B Leimasin standard 1.00 s 512 MB

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Settings-sivun kautta on mahdollista muokata Kirjastokarttapalveluun liittyviä kirjastokohtaisia asetuksia.

PHP:n alkeita ja taustaa. Markus Norrena

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 6: Python

linux: Ympäristömuuttujat

Tehtävä 2: Säännölliset lausekkeet

4. Lausekielinen ohjelmointi 4.1

Harjoitus 3 -- Ratkaisut

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

CLT131: Tekstityökalut 2011, toinen luento

Valitse ruudun yläosassa oleva painike Download Scilab.

Unix-kurssi, harjoitustehtävät

Ohjelmoinnin perusteet Y Python

TIETOKONEEN ÄÄRELLÄ. Kansalaisopistot kotouttamisen tukena hanke/opetushallitus Kuopion kansalaisopisto

Mathematica Sekalaista asiaa

Ohjelmoinnin perusteet Y Python

Tutoriaaliläsnäoloista

Ohjelmoinnin peruskurssi Y1

Asialista. CLT131: Tekstityökalut 2011, kahdeksas luento. Merkistöistä ja kalvostoista. Asialista. Tommi A Pirinen

Harjoitus 5. Esimerkki ohjelman toiminnasta: Lausekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 1 / 5

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely.

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Kieliteknologian ATK-ympäristö Kolmas luento

Transkriptio:

Korpusten käsittely clt131, P2 2006 Luento 5 Nicholas Volk <nvolk@ling.helsinki.fi> 1.12.2006 Humanistinen tiedekunta

Perl Perl niminen ohjelmointikieli mahdollistaa tekstin monipuolisen muokkaamisen helposti Kursilla käytetään Perliä vain komentoriviltä Käytämme vain kahta kielen käskyä: s/// ja tr/// Oikeaa ohjelmointia opetetaan sitten myöhemmin toisaalla... Meille riittää Perlin käyttö komentorivillä muodossa $ perl pe 'käsky;'

Perlin pe option Optio e tarkoittaa, että suoritettava ohjelma tulee sijaitsee komentorivillä, ei jossain tiedostossa Optio p luo annettujen käskyjen ympärille implisiittisesti silmukan, jossa ensin luetaan rivit yksi kerrallaan, sitten tehdään halutut käskyt ja lopuksi (muokattu) rivi tulostetaan (ei tarvitse ymmärtää): while (<>) { käsky1; käsky2; käskyn; } continue { print $_; }

Merkkijonon korvaaminen toisella: s/// Annetun merkkijonon voi korvata toisella seuraavasti: perl pe 's/vanha/uusi/;' (Tällaisenaan komento korvaa vain kunkin rivin ensimmäisen osuman) Käskyjä voi olla useampi peräkkäin, puolipiste (oikeassa paikassa) tarkoittaa erotinta: perl pe 's/vanha/uusi/; s/pois//;' Yllä merkkijono 'pois' korvattiin ei millään eli se poistettiin (Puolipiste on myös komentotulkin komentojen erotin)

s/foo/bar/g; s/// käskyn foo osa on säännöllinen lauseke ja bar osa lausekkeen korvaava merkkijono Erotinmerkki '/' merkitään laittamalla sen eteen kenoviiva s/// käskyn optiot kirjoitetaan kolmannen jakoviivan perään Option g avulla rivillä voi olla useampiakin osumia perl pe 's/uusi/vanha/g;'

Ryhmittely Ryhmittelyn avulla voidaan ilmaista vaihtoehtoisuutta: perl pe 's/fabianink(\. atu) 28/Siltavuorenpenger 20/g;' Sulkujen sisälle rajatut merkkijonot tallettuvat Perlin erityismuuttujiin $1... $9: perl pe 's/([\.!\?]) ([A ZÅÄÖ])/$1\n$2/g; Muutujan nimi pitää ympyröidä hakasuluilla ${1}, jos seuraava merkki kuuluu joukkoon [0 9_a za Z] $1 sisältää ensimmäisenä alkaneen alueen, $2 toisen jne. perl pe 's/((h[aeio]h?)+)/$1 $2/;'

Muuttujat $&, $` ja $' Muuttuja $& saa s/// käskyssä arvokseen koko osuman Käskyt s/sana/=$&=/g; ja s/(sana)/=$1=/g; tekevät täsmälleen saman asian $` viittaa osumaa edeltäneeseen merkkijonoon $' viittaa osuman jälkeiseen merkkijonoon Näille kahdelle on tämän kurssin puitteissa vaikea keksiä hyödyllistä käyttöä

Isoja ja pieniä kirjaimia \u muuttaa seuraavan merkin isoksi kirjaimeksi \l muuttaa seuraavan merkin pieneksi kirjaimeksi perl pe 's/(.)(.)/\u$1\l$2/g;' Merkkijono voidaan muuttaa isoksi tai pieneksi laittamalle sen eteen \U tai \L ja loppuun \E perl pe 's/(^ )(...)($ )/$1\U$2\E$3/;' Edellinen osuu viisikirjaimisiin saneisiin (jos ne eivät ole peräkkäin).

Konkordanssiyritys Tämän kurssin tiedoilla emme opi tekemään kunnollista KWIC konkordanssia, mikään ei kuitenkaan estä yrittämästä Yritetään poimia haluttu sane ja ympäristöksi yksi sane sen molemmilta puolilta: perl pe 's/^(.* )?([^ ]+ sane [^ ]+).*$/$2/;' Ilman osumaa rivi jää entiselleen, blääh. Konkordanssia tarvitseva voi käyttää valmista skriptiäni: http://www.ling.helsinki.fi/kit/2003k/ctl160/skriptit/konko.perl

tr/// Perlissä voi muuttaa merkkejä toisiksi tr/// käskyn avulla: perl pe 'tr/a ZÅÄÖ/a zåäö/; Optiot d ja c tutut Unixin tr komennosta: perl pe 'tr/a z \n//dc;' Ei tarvita tällä kurssilla... Saman voi tehdä tehottomammin muodossa perl pe 's/[^a z \n]//g;' Egrep komennosta poiketen Perlissä voi viitata rivinvaihtomerkkiin

Lyhin mahdollinen osuma * ja + yrittävät osua mahdollisimman pitkiin merkkijonoihin Laittamalla Perlissä niiden perään kysymysmerkin, käytetään lyhintä sopivaa osumaa: $ echo "passi ja hammasharja" perl pe s/a.*a//g; p $ echo "passi ja hammasharja" perl pe s/a.*a//; p $ echo "passi ja hammasharja" perl pe s/a.*?a//g; p hsh $ echo "passi ja hammasharja" perl pe s/a.*?a//; p hammasharja

Luennolla lisäksi ehtimisen mukaan Pine tekstipohjainen sähköposti Twol morfologiset analysaattorit...