Korpusten käsittely clt131, P Luento 6

Samankaltaiset tiedostot
CLT131 Korpusten käsittely Viides luento

Ctl160 Tekstikorpusten tietojenkäsittely p.1/15

Ctl160 Tekstikorpusten tietojenkäsittely Viides luento

Korpusten käsittely clt131, P Luento 5

M. Merikanto 2012 XML. Merkkauskieli, osa 2

Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento,

Korpusten käsittely clt131, P Luento 3

Korpusten käsittely clt131, P Luento 4

Korpusten käsittely clt131, P Luento 1

CLT131 Korpusten käsittely (3op)

Ctl160 Tekstikorpusten tietojenkäsittely p.1/28

CLT131 Korpusten käsittely

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

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ctl160 Tekstikorpusten tietojenkäsittely

Tutkitaan sitten HTML-dokumenttien anatomiaa, jotta päästään käsiksi rakenteisten dokumenttien käsitteistöön esimerkkien kautta.

Luento 5. Timo Savola. 28. huhtikuuta 2006

Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento

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

Ohjelmoinnin perusteet Y Python

Ctl160 Tekstikorpusten tietojenkäsittely p.1/24

Ohjelmoinnin perusteet Y Python

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

OPPITUNTI 3 Ensimmäinen skripti

Ohjelmoinnin perusteet Y Python

linux: Ympäristömuuttujat

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

CLT131: Tekstityökalut 2011, kuudes luento

Ohjelmoinnin perusteet Y Python

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

811120P Diskreetit rakenteet

Kieliteknologian ATK-ympäristö Neljäs luento

Ohjelmoinnin perusteet Y Python

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

Java-kielen perusteet

linux linux: käyttäjän oikeudet + lisää ja - poistaa oikeuksia

Ohjelmoinnin perusteet Y Python

Hieman linkkejä: lyhyt ohje komentoriviohjelmointiin.

Ohjelmoinnin perusteet Y Python

XML / DTD / FOP -opas Internal

Asialista. CLT131: Tekstityökalut 2010, kuudes luento. Tuleva ohjelma. Kurssipalaute. Käytännön asiat Tuleva ohjelma Havaitut virheet ja korjaukset

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

Kieliteknologian ATK-ympäristö Kuudes luento

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

Code Camp for Girls. Sanna Nygård. Lokakuussa

Ohjelmoinnin perusteet Y Python


CLT131: Tekstityökalut 2010, toinen luento

CLT131: Tekstityökalut 2011, kahdeksas luento

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

Harjoitus 2 (viikko 45)

Ohjelmoinnin peruskurssi Y1

CLT131: Tekstityökalut 2010, kuudes luento

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Luento 4. Timo Savola. 21. huhtikuuta 2006

Ohjelmoinnin peruskurssi Y1

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

Java-kielen perusteet

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

CLT131: Tekstityökalut 2010, neljäs luento

Ohjelmoinnin perusteet Y Python

PHP:n alkeita ja taustaa. Markus Norrena

Johdatus L A TEXiin. Dept. of Mathematical Sciences. Tunti 1: Alkeet. Markus Harju, markus.harju at oulu.fi, M207

VERKKOSOVELLUSTEN OHJELMOINTI, JOHDATUS PHP:HEN

CLT131: Tekstityökalut 2011, seitsemäs luento

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

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

Johdatus Ohjelmointiin

Ohjelmoinnin perusteet Y Python

8. Näppäimistöltä lukeminen 8.1

linux: Prosessit kill PID lopettaa prosessin PID, jos siihen on oikeudet Ctrl + c lopettaa aktiivisen prosessin L7: linux

Tutoriaaliläsnäoloista

Ohjelmoinnin perusteet Y Python

Moodlen lohkot. Lohkojen lisääminen: Lohkojen muokkaaminen: Tampereen yliopisto/tietohallinto 2017 Suvi Junes

Ohjelmoinnin perusteet Y Python

Harjoitus 6 (viikko 42)

Kieliteknologian ATK-ympäristö Viides luento

Luento 1 Tietokonejärjestelmän rakenne

9. Periytyminen Javassa 9.1

Kieliteknologian ATK-ympäristö Viides luento

Metropolia Ammattikorkeakoulu

4. Lausekielinen ohjelmointi 4.1

Loppukurssin järjestelyt

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Harjoitus 5 (viikko 41)

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Transkriptio:

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

Syöterivien lukemista while (<>) { käsky1; käsky2; käskyn; } continue { print $_; } Muuttuja $/ määrittää minkä kokoisia yksiköitä <> lukee kerralla (vrt. AWK:n RS-muuttuja) Oletusarvoisesti sen arvo on \n, niinpä <> lukee kerralla rivin kokoisia paloja syötteestä Käyttäjä voi itse määrittää muuttujan arvon ($/ = ;) tai asettaa sen pois päältä (undef $/;)

BEGIN-lohko Jos Perl-ohjelmassa on AWK:n tapaan ns. BEGIN-lohko, se käydään läpi ennen kuin tehdään mitään muuta Tämä on siis looginen paikka muuttaa $/:n arvoa Syötteen voi lukea kerralla sisään seuraavalla tavalla: perl -pe 'BEGIN { undef $/; } käskyt; } Nyt voidaan tehdä monelle riville ulottuvia lausekkeita Esim. Tavuviivojen poisto tapahtuisi seuraavasti: perl -pe 'BEGIN { undef $/; } s/([a-zåäö])-\n([a-zåäö])/$1$2/g;'

Monirivinen syöte suhteessa ^- ja $-merkkeihin: lisää s///:n optiota Normaalisti.* ei mene rivinvaihtomerkin yli Optio s: rivinvaihtomerkki \n on merkki muiden joukossa, eli.* pääsee sen yli Optio m: ^ ja $ pätevät jokaiseen rivin alkuun ja loppuun $ perl -e $_="abc\n"; s/ˆ.*$//; print $_; $ perl -e $_="abc\n"; s/ˆ.*$//m; print $_; $ perl -e $_="abc\n"; s/ˆ.*$//s; print $_; $

Esimerkkejä:.* ja monirivisyys $ perl -e $_="abc\ndef\n"; s/a.*e//; print $_; abc def $ perl -e $_="abc\ndef\n"; s/a.*e//m; print $_; abc def $ perl -e $_="abc\ndef\n"; s/a.*e//s; print $_; f $

Esimerkkejä: monta rivinalkua ja -loppua $ perl -e $_="abc\ndef\n"; s/ˆ.*$//; print $_; abc def $ perl -e $_="abc\ndef\n"; s/ˆ.*$//m; print $_; def $ perl -e $_="abc\ndef\n"; s/ˆ.*$//mg; print $_; $ perl -e $_="abc\ndef\n"; s/ˆ.*$//s; print $_; $

XML-dokumentti XML-dokumentti on tiedosto, jossa on varsinaisen tekstin lisäksi mukana vaikkapa esitystapaan liittyvää metatietoa (Katsotaan vaikkapa kurssin WWW-sivun lähdekoodia) Metatieto on kirjoitettu tagien sisään XML-dokumentin rakenne (lailliset tagit ja niiden keskinäinen järjestys) kerrotaan dokumentin DTD:ssä, josta enemmän Rakenteisten dokumenttien perusteet -kurssilla Meille tagi on jotain mikä alkaa <:llä ja loppuu <-merkkiin

Tagin rakenne On alku- ja lopputageja sekä tyhjiä tageja Alkutagissa heti <:n perään tulee tagin nimi: <otsikko> Lopputagi on muotoa: </otsikko> XML:ssä jokaista alkutagia vastaa lopputagia ja ne ovat yhtä syvällä dokumentin rakenteessa Tyhjä tagi on samanaikaisesti sekä alku- että lopputagi: <rivinvaihto/> (SGML:ssä muoto <rivinvaihto> oli vielä laillinen)

Alkutagin ja tyhjän tagin attribuutit Tagien nimen perään voi tulla tarkentavia attribuutteja: <otsikko koko= iso > TEKSTI </otsikko> <laatikko leveys= 200 korkeus= 300 /> Lopputageilla näitä ei ole, ne kerrottiin jo alkutagissa Numeerisia arvoja ei tarvitse laittaa lainausmerkkeihin, mutta se on hyvä tapa

Erikoismerkit Sattuneesta <- ja >-merkkejä ei voi sellaisenaan kirjoittaa XML-dokumenttiin Ne kirjoitettan muodossa < ja > (less/greater than) Tästä puolestaan seuraa, että &-merkki kirjoitetaan & (ampersand) Muita erikoismerkkejä: ä ä, Ä Ä Myös numeerisia merkintätapoja voi käyttää: @

Kommentti Kommentti alkaa merkeillä <!-- Kommentti loppuu merkkeihin --> Kommentit jätetään huomioitta dokumenttia läpikäytäessä Niinpä ne heitetään ensimmäisen hiiteen Kommentti voi ulottua useamman rivin alueella Kommentin poist, esim. s/<!--.*?-->//gs; Tavallisen tagin poisto, esim. s/<[^>]*>//gs;

Rivinvaihtomerkki Rivinvaihtomerkki \n tarkoittaa järjestelmäkohtaista rivinvaihtoa Unixeissa rivinvaihto tehdään line feed -merkillä (LF), jonka oktaalilukuesitysmuoto on \012 Macin rivinvaihto on carriage return -merkki (CR, \015) Windowseissa näiden yhdistelmä (LF+CR, \012\015) Ja tästähän seuraa hupia siirrettäessä tiedostoja paikasta toiseen, käsitellessä binääritiedostoja Windowsissa ym.

Oktaali- ja heksaluvut Merkkeihin voi viitata myös niiden numeerisen koodin perusteella Oktaalilukua (8-järjestelmä) voidaan käyttää mm. trkomennossa ja Perlissä muodossa \nnn: echo 'ABBA' tr '\101\102' '\102\101' Perl tukee myös heksalukuja (16-järjestelmä, [0-9A-F]) echo 'abba' perl -pe 'tr/\x41\x42/\x42\x41;' Heksaluvun esitysmuoto on \xnn

Esimerkki annotoidusta korpuksesta XML on vain yksi tapa esittää metatietoa. Helppolukuisempiakin on... G01:0010b JJ NORTHERN northern [O[S[Np:s. G01:0010c NN2 liberals liberal.np:s] G01:0010d VBR are be [Vab.Vab] G01:0010e AT the the [Np:e. G01:0010f JB chief chief. G01:0010g NN2 supporters supporter. G01:0010h IO of of [Po. G01:0010i JJ civil civil [Np. G01:0010j NN2 rights right.np]

Susanne-korpuksen rakenne G01:0010b JJ NORTHERN northern [O[S[Np:s. Viisi sarkainmerkein eroteltua kenttää: 1. kenttä: sijainti tekstissä 2. kenttä: morfologinen tulkinta 3. kenttä: sane 4. kenttä: hakusana/lemma 5. kenttä: syntaktinen annotaatio http://www.grsampson.net/suedoc.html

Luennolla: FDG, TWOL, CG... Connexorin FDG:llä sekä XML- että susannemainen tulostus Lingsoftin morfologinen analysaattori TWOL Lingsoftin CG-jäsennin...