CLT131 Korpusten käsittely Viides luento

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

Korpusten käsittely clt131, P Luento 6

Ctl160 Tekstikorpusten tietojenkäsittely Viides luento

Korpusten käsittely clt131, P Luento 5

Korpusten käsittely clt131, P Luento 1

CLT131 Korpusten käsittely

Korpusten käsittely clt131, P Luento 3

CLT131 Korpusten käsittely (3op)

M. Merikanto 2012 XML. Merkkauskieli, osa 2

Ctl160 Tekstikorpusten tietojenkäsittely p.1/28

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

Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento,

Korpusten käsittely clt131, P Luento 4

Ctl160 Tekstikorpusten tietojenkäsittely

CLT131: Tekstityökalut 2010, toinen luento

Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento

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

Ohjelmoinnin perusteet Y Python

Ctl160 Tekstikorpusten tietojenkäsittely p.1/24

CLT131: Tekstityökalut 2011, viides luento

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

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

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

CLT131: Tekstityökalut 2011, kahdeksas luento

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

OPPITUNTI 3 Ensimmäinen skripti

Ohjelmoinnin perusteet Y Python

linux: Ympäristömuuttujat

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

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

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

CLT131: Tekstityökalut 2012, kymmenes luento

Ohjelmoinnin perusteet Y Python

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

CLT131: Tekstityökalut 2011, kuudes luento

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

Ohjelmoinnin peruskurssi Y1

Sangen lyhyt L A T E X-johdatus

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Java-kielen perusteet

Kieliteknologian ATK-ympäristö Kolmas luento

Johdatus Ohjelmointiin

Harjoitus 6 (viikko 42)

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

Sangen lyhyt L A T E X-johdatus

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

MITÄ JAVASCRIPT ON?...3

CLT131: Tekstityökalut 2010, kuudes luento

Ohjelmoinnin peruskurssi Y1

Kieliteknologian ATK-ympäristö Kuudes luento

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

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

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

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

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

Ohjelmoinnin peruskurssi Y1

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

Ohjelmoinnin perusteet Y Python

Luento 5. Timo Savola. 28. huhtikuuta 2006

Ohjelmoinnin peruskurssi Y1

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

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

Ohjelmoinnin perusteet Y Python

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

Ohjelmoinnin perusteet Y Python

Kieliteknologian ATK-ympäristö Viides luento

CLT131: Tekstityökalut 2011, seitsemäs luento

Kieliteknologian ATK-ympäristö Viides luento

Tutoriaaliläsnäoloista

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

Ohjelmoinnin perusteet Y Python

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

Kieliteknologian ATK-ympäristö Neljäs luento

Java-kielen perusteita

Python-ohjelmointi Harjoitus 2

Harjoitus 2 (viikko 45)

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

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

Asiakastietojen tuominen toisesta tietokannasta etaika-ohjelmistoon. Kuinka yhdistän tietoja eri asiakastietokantojen välillä

Harjoitus 6 (viikko 42)

4. Lausekielinen ohjelmointi 4.1

Harjoitus 1 -- Ratkaisut

CLT131: Tekstityökalut 2011, toinen luento

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

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

Luento 4. Timo Savola. 21. huhtikuuta 2006

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

Vaasan yliopiston toimintaa tukevat informaatiopalvelut ovat käytettävissä WWW:n kautta.

Ohjelmoinnin perusteet Y Python

Harjoitus 3 (viikko 39)

XML rakenteen suunnittelu. Jaana Holvikivi

Automaattinen semanttinen annotointi

Loppukurssin järjestelyt

Transkriptio:

CLT131 Korpusten käsittely 490160-0 Viides luento Nicholas Volk Yleisen kielitieteen laitos, Helsingin yliopisto CLT131 Korpusten käsittely490160-0viides luento p.1/19

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 CLT131 Korpustenkäsittely Nicholas Volk p.2/19

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åäö])-\n([a-zåäö])/$1$2/g; Kovin Awk-maista Perliä... CLT131 Korpustenkäsittely Nicholas Volk p.3/19

Lisää s///:n optiota Optio s tulkitsee merkkijonon yksiriviseksi, eli \n on merkki muiden joukossa 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 $_; $ CLT131 Korpustenkäsittely Nicholas Volk p.4/19

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 $_; $ CLT131 Korpustenkäsittely Nicholas Volk p.5/19

Annotoitu korpus Korpus on siis kärjistetysti iso 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) CLT131 Korpustenkäsittely Nicholas Volk p.6/19

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 CLT131 Korpustenkäsittely Nicholas Volk p.7/19

Ä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 kappale \item Rakenteisessa dokumentissa rakenne (korpuksessa saneet) ja sisältö (esim. syntaktiset suhteet) on eriytetty toisistaan \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} CLT131 Korpustenkäsittely Nicholas Volk p.8/19

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ä CLT131 Korpustenkäsittely Nicholas Volk p.9/19

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... CLT131 Korpustenkäsittely Nicholas Volk p.10/19

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... CLT131 Korpustenkäsittely Nicholas Volk p.11/19

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. CLT131 Korpustenkäsittely Nicholas Volk p.12/19

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> CLT131 Korpustenkäsittely Nicholas Volk p.13/19

Merkkien esittäminen tietokoneella Kaikkia merkkejä ei aina pysty syöttämään näppäimistöltä Merkeillä on käytetyn merkkistandarin (mm. ISO-8859-1 ja Unicode) mukaiset numeeriset arvot ISO-8859-perheen 128 ensimmäistä merkkiä ovat kaikissa samat (7-bittinen ASCII-merkistö), loput 128 merkkiä ovat sisällöltään erilaisia. Esim. ISO-8859-1 sisältää meille rakkaat ääkköset. Aakkoset menevät (käytännössä) aina oikein. Ääkköset näkynevät väärin eri merkkistandardia käytettäessä. CLT131 Korpustenkäsittely Nicholas Volk p.14/19

Oktaali- ja heksaluvut Käskyn tr \012 osa \012 on oktaalikuku, joka tarkoittaa Line Feed -näppäintä eli Unixin rivinvaihtomerkkiä. Esim. \007 on piip-ääni ainakin ASCII-pohjaisissa järjestelmistä. Perlissä voi viitata merkkiin myös heksalukuna (16-järjestelmä) Tällöin kenoviivan perään laitetaan x ja kaksinumeroinen heksaluku ([0-9A-F]): $ perl -pe tr/ba/\x41\102/; AB BA $ CLT131 Korpustenkäsittely Nicholas Volk p.15/19

Susanne-korpuksen rakenne http://clwww.essex.ac.uk/w3c/corpus_ling/content/corpora/list/ public/susanne.html 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] CLT131 Korpustenkäsittely Nicholas Volk p.16/19

Susanne-korpuksen rakenne G01:0010b JJ NORTHERN northern [O[S[Np:s. Kentät ovat sarkain-merkein (\t) erotetut. Field 1: text references Field 2: Part of speech tags (morfologinen tulkinta) Field 3: The text words (saneet) Field 4: Base form (lemma) Field 5: Syntactic annotation [ viittaa jonkin syntaktisen kokonaisuuden alkuun, ] vastaavasti loppuun CLT131 Korpustenkäsittely Nicholas Volk p.17/19

Connexorin FDG-jäsentimen tulostusta Connexorinkin jäsentimen antama tekstituloste on selkeä: 1. Saneen sijainti lauseessa 2. Sane 3. Lemma 4. Funktionaalinen dependenssi 5. Pintasyntaktinen tagi ja morfologinen analyysi Kentät on erotettu sarkainmerkein Kenttä 4 voi olla myös tyhjä! Kenttä 5 voi olla moniselitteinen, jokaisella tulkinnalla oma kenttä! Eli kutakin sanetta kohden on 5+ kenttää! (Yleensä 5) CLT131 Korpustenkäsittely Nicholas Volk p.18/19

Kollokaatio Kollokaatio tarkoittaa kahden tai useamman sanan tavallista suurempaa yhdessäesiintymistodennäköisyyttä Muuttamalla frekvenssilista absoluuttisesta suhteelliseksi saadaan sanojen esiintymistiheydet Kollokaatio viitannee jonkinlaiseen semanttiseen suhteeseen Tarkasteltavien sanojen tarvitsee olla yleisiä, jotta niiden kollokaatiosta voidaan sanoa jotakin Helppo tilastoida, vaikea tulkita CLT131 Korpustenkäsittely Nicholas Volk p.19/19