Ctl160 Tekstikorpusten tietojenkäsittely p.1/15

Samankaltaiset tiedostot
CLT131 Korpusten käsittely Viides luento

Korpusten käsittely clt131, P Luento 6

Korpusten käsittely clt131, P Luento 5

Korpusten käsittely clt131, P Luento 1

Ctl160 Tekstikorpusten tietojenkäsittely p.1/28

Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento,

M. Merikanto 2012 XML. Merkkauskieli, osa 2

Korpusten käsittely clt131, P Luento 4

Ctl160 Tekstikorpusten tietojenkäsittely

CLT131 Korpusten käsittely (3op)

Korpusten käsittely clt131, P Luento 3

Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento

CLT131 Korpusten käsittely

Ctl160 Tekstikorpusten tietojenkäsittely p.1/24

Ohjelmoinnin perusteet Y Python

Ctl160 Tekstikorpusten tietojenkäsittely Viides luento

Luento 4. Timo Savola. 21. huhtikuuta 2006

Luento 5. Timo Savola. 28. huhtikuuta 2006

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

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

XML / DTD / FOP -opas Internal

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

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

OPPITUNTI 3 Ensimmäinen skripti

Ohjelmoinnin peruskurssi Y1

Kieliteknologian ATK-ympäristö Neljäs luento

linux: Ympäristömuuttujat

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

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

CLT131: Tekstityökalut 2010, kuudes luento

Ohjelmoinnin peruskurssi Y1

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

Ohjelmoinnin peruskurssi Y1

Harjoitus 5 (viikko 48)

Ohjelmoinnin perusteet Y Python

7. Näytölle tulostaminen 7.1

Hieman linkkejä: lyhyt ohje komentoriviohjelmointiin.

Sisältö. XML, XHTML ja CSS XML XML. XML:n ja HTML:n ero. XML kieliä XML XHTML CSS XSL. T Hypermediadokumentin laatiminen 2002

Rakenteisen oppimateriaalin tuottaminen verkossa esimerkki Rhaptos. Antti Auer Koordinaattori, HT Jyväskylän yliopisto Virtuaaliyliopistohanke

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

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

Java-kielen perusteet

Ohjelmoinnin perusteet Y Python

CLT131: Tekstityökalut 2011, kuudes luento

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012

Ohjelmoinnin perusteet Y Python

Harjoitus 6 (viikko 42)

Ohjelmoinnin perusteet Y Python

CLT131: Tekstityökalut 2011, kahdeksas luento

Johdatus Ohjelmointiin

Miten kirjoittaa koulutusten kuvailevat sisällöt Opintopolkuun? Verkkopäätoimittaja Satu Meriluoto, OPH

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Ohjelmoinnin perusteet Y Python

14. Hyvä ohjelmointitapa 14.1

Tutoriaaliläsnäoloista

Harjoitus 6. Käytä String-luokasta vain charat- ja length-operaatioita.

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

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

Harjoitus 2 (viikko 45)

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

MITÄ JAVASCRIPT ON?...3

XHTML - harjoitus. Tehtävä1: Tee xhtml tiedosto käyttäen notepad (muistio) ohjelmaa. Tiedoston tallennus notepad (muistio) ohjelmassa:

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

Ohjelmoinnin perusteet Y Python

Palvelinpuolen ohjelmointi

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

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

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

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys

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

Kieliteknologian ATK-ympäristö Kuudes luento

13. Hyvä ohjelmointitapa (osa 1) 13.1

Ohjelmoinnin perusteet Y Python

Java-kielen perusteet

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

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

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.

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

Ei-yhteydettömät kielet [Sipser luku 2.3]

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Ohjelmoinnin perusteet, syksy 2006

Harjoitus 6 (viikko 42)

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

Kieliteknologian ATK-ympäristö Kolmas luento

Säännölliset kielet. Sisällys. Säännölliset kielet. Säännölliset operaattorit. Säännölliset kielet

VERKKOSOVELLUSTEN OHJELMOINTI, JOHDATUS PHP:HEN

Sangen lyhyt L A T E X-johdatus

H T M L eli kuinka laadin itselleni päheät kotisivut. Janne Käki

Harjoitus 1 -- Ratkaisut

Sangen lyhyt L A T E X-johdatus

CLT131: Tekstityökalut 2010, neljäs luento

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 3. joulukuuta 2015

Transkriptio:

Ctl160 490160-0 Nicholas Volk Yleisen kielitieteen laitos, Helsingin yliopisto Ctl160 490160-0 p.1/15

Lisää säännöllisistä lausekkeista Aikaisemmin esityt * ja + yrittävät osua mahdollisimman pitkään merkkijonoon Laittamalla niiden perään kysymysmerkki yritetäänkin osua mahdollisimman lyhyeen pätkään Merkitystä oikeastaan vain Perlissä, egrep-käskyn onnistumiseen muutos ei vaikuttaisi ja less ei sitä tuntunut kunnioittavan... Nicholas Volk p.2/15

Esimerkkejä $ 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 Huomaa g:n vaikutus kysymysmerkkiä käyttävässä versiossa.*-versiossa g ei voi vaikuttaa... Nicholas Volk p.3/15

Syötteen lukemisesta Aikaisemmin Perl-käskymme ovat lukeneet syötettä rivin kerrallaan. Muuttujaan $/ on talletettu kerralla luettavan alueen erotin. Oletusarvoisesti $/ = " n" Arvoa voi muuttaa tai sen voi asettaa pois päältä käskyllä undef $/; $/:n ollessa määrittelemätön, luetaan kerralla koko syöte $/ vastaa vastaa kutakuinkin Awk:n RS-muuttujaa Nicholas Volk p.4/15

BEGIN-lohko BEGIN-lohko suoritettaan ohjelman aluksi. Kun komennot ovat muotoa perl -pe BEGIN { undef $/; } käskyt; luetaan rivin sijasta koko syöte kerralla muistiin. Tavuviivojen poistoa: perl -pe BEGIN { undef $/; } s/([a-zåäö])- Kovin Awk-maista Perliä... n([a-zåäö])/$1$2/g; Nicholas Volk p.5/15

Lisää s///:n optiota Optio s tulkitsee merkkijonon yksiriviseksi, eli merkki muiden joukossa n on Optio m on tavallaan sen vastakohta, merkkijono tulkitaan useita rivejä sisältäväksi, eli ˆ ja $ voivat löytyä monta kertaa. $ perl -e $_="abc\n"; s/ˆ.*$//; print $_; $ perl -e $_="abc\n"; s/ˆ.*$//m; print $_; $ perl -e $_="abc\n"; s/ˆ.*$//s; print $_; $ Nicholas Volk p.6/15

Lisää esimerkkejä $ 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 $ # alusta loppuun: $ 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 $_; $ Nicholas Volk p.7/15

Annotoitu korpus Korpus on siis kärjistetysti kasa teksti Annotoituun korpukseen on lisätty lisäksi lingvististä tietoa Brownin korpuksessa annotointi merkittiin sanan perään: to_to stop_vb Mr_NPT Gaitskell_NP from_in... Tulkintavaihtoehtojen määrä pieni englannin kielessä Suomessa substantiiveilla on n. 2200 tulkintaa ja verbeillä n. 12000 (Karlsson 1982) Nicholas Volk p.8/15

Rakenteinen dokumentti Raakatekstilläkin on yleensä selkeä rakenne Otsikkoa seuraa yksi tai useampi lauseista koostuva kappale Rakenteisessa dokumentissa rakenne (korpuksessa saneet) ja sisältö (esim. syntaktiset suhteet) on eriytetty toisistaan Rakenteen kuvaamisen on useita eri kieliä, mm. L A TEX- ja XML-pohjaiset kielet Mm. kielipankin aineistot XML-muodossa (osa vielä SGML:nä) Opettelemme tunnistamaan XML-taggauksen ja irroittamaan sisällön rakenteesta Rakenteisille dokumenteille on laitoksella oma kurssinsa Nicholas Volk p.9/15

Äskeisen kalvon rakenne \begin{slide}{rakenteinen dokumentti} \small \medskip \begin{itemize} \item Raakatekstilläkin on yleensä selkeä rakenne \item Otsikkoa seuraa yksi tai useampi lauseista koostuva kappal \item Rakenteisessa dokumentissa rakenne (korpuksessa saneet) ja sisältö (esim. syntaktiset suhteet) on eriytetty toisis \item Rakenteen kuvaamisen on useita eri kieliä, mm. \LaTeX- ja XML-pohjaiset kielet \item Mm. kielipankin aineistot XML-muodossa (osa vielä SGML:nä) \item Opettelemme tunnistamaan XML-taggauksen ja irroittamaan sisällön rakenteesta \item Rakenteisille dokumenteille on laitoksella oma kurssinsa \end{itemize} \end{slide} Nicholas Volk p.10/15

XML-dokumentin rakenne XML-dokumentin rakenne on määritetty Document Type Definitionissa DTD voi olla erillisessä tiedostossa tai XML-dokumentin alussa DTD kertoo mitä tageja (merkitsimiä) dokumentti saa sisältää DTD ei kosketa meitä tällä kurssilla, joten oletetaan sen olevan erillään Dokumentin määritelmänmukaisuus (well-formedness) ei sekään kiinnosta meitä Nicholas Volk p.11/15

XML-tagit Tagit alkavat <-merkistä ja päättyvät >-merkkiin Alkutagin <:n perässä tulee tagin nimi: <otsikko> Lopputagi on muotoa </otsikko> Tagi, joka ei vaadi lopputagia merkitään laittamalla >:n eteen: <rivinvaihto/> Alkutagi voi saada tarkentavia atribuutteja: <otsikko koko="iso" > <laatikko leveys="200" korkeus=50> Eli numeerisia arvoja ei ole pakko laittaa lainausmerkkien sisään... Mutta se on hyvä tapa... Nicholas Volk p.12/15

Erikoismerkit Tageissa käytettyjä <- ja >-merkkejä ei saisi kirjoittaa dokumenttiin sellaisenaan Niille on olemassa oma notaationsa, jossa &-merkin ja puolipisteen väliin kirjoitetaan merkin "tunnus": < on < ja > on > Vastaavasti &-merkki pitää kirjoittaa poikkeuksellisesti: & Kaikkia merkkejä ei saa esiin näppäimistöltä, niillekin voi olla omat erikoisnotaationsa: ä on ä, Ö Ö... Lisäksi merkkeihin voi viitata numeeristen tunnusten avulla: esim. & Tämä taas vain tiedoksi, ei oikeastaan tämän kurssin asiaa... Nicholas Volk p.13/15

Kommentit Kommentti alkaa merkkijonolla <!-- Kommentti päättyy merkkijonoon --> Kommenttiin kuuluva alue jätetään huomioitta. Kommentit kannattaa heittää hiiteen jo ennen kun muuta dokumenttia aletaan käymään läpi... Kommentin alku ja loppu ei aina ole samalla rivillä, kuten ei taginkaan. Nicholas Volk p.14/15

Erot SGML:ään SGML on XML:n edeltävä, metakielissä on pieniä eroja Lopputagiton tagi ei tarvitse loppumerkintää <rivinvaihto> Kirjainkoolla ei ole väliä SGML:ssä: <HTML> <html> <html> Nicholas Volk p.15/15