Ctl160 Tekstikorpusten tietojenkäsittely

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

CLT131 Korpusten käsittely (3op)

CLT131 Korpusten käsittely

Korpusten käsittely clt131, P Luento 1

Korpusten käsittely clt131, P Luento 3

Korpusten käsittely clt131, P Luento 5

Kieliteknologian ATK-ympäristö Neljäs luento

Ctl160 Tekstikorpusten tietojenkäsittely p.1/28

Ctl160 Tekstikorpusten tietojenkäsittely p.1/15

Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento

Korpusten käsittely clt131, P Luento 4

Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento,

1.1 Tekstinprosessointiohjelmien yleinen toimintatapa (1)

Korpusten käsittely clt131, P Luento 6

Kieliteknologian ATK-ympäristö Viides luento

CLT131: Tekstityökalut 2011, toinen luento

Kieliteknologian ATK-ympäristö Viides luento

CLT131: Tekstityökalut 2011, viides luento

Komentotulkki. Kysymyksiä

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

CLT131: Tekstityökalut 2010, toinen luento

CLT131: Tekstityökalut 2011, seitsemäs luento

CLT131 Korpusten käsittely Viides luento

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

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

Luento 4. Timo Savola. 21. huhtikuuta 2006

Luento 5. Timo Savola. 28. huhtikuuta 2006

Ohjelmoinnin perusteet Y Python

CLT131: Tekstityökalut 2010, kuudes luento

CLT131: Tekstityökalut 2010, neljäs luento

CLT131: Tekstityökalut 2011, kuudes luento

Hieman linkkejä: lyhyt ohje komentoriviohjelmointiin.

Kieliteknologian ATK-ympäristö Kuudes luento

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

5. HelloWorld-ohjelma 5.1

Ohjelmoinnin perusteet Y Python

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

Ctl160 Tekstikorpusten tietojenkäsittely Viides luento

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

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

Ohjelmoinnin perusteet Y Python

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

Ohjelmoinnin perusteet Y Python

Datatähti 2000: alkukilpailun ohjelmointitehtävä

5. HelloWorld-ohjelma 5.1

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

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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

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

CLT131: Tekstityökalut 2012, kymmenes luento

Ohjelmoinnin perusteet Y Python

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

Muuttujien määrittely

CLT131: Tekstityökalut 2010, kolmas luento

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

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

Ohjelmointi 1 / syksy /20: IDE

Kieliteknologian ATK-ympäristö Kolmas luento

Ohjelmoinnin perusteet Y Python

Sekalaisia selvennyksiä

Ohjelmoinnin perusteet Y Python

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

Ohjelmoinnin peruskurssi Y1

4. Lausekielinen ohjelmointi 4.1

Ohjelmoinnin peruskurssi Y1

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

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

Ohjelmoinnin perusteet Y Python

S: siirtää listan ensimmäisen luvun viimeiseksi V: vaihtaa keskenään listan kaksi ensimmäistä lukua

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

Ohjelmoinnin perusteet Y Python

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

Talousmatematiikan perusteet, L3 Prosentti, yhtälöt Aiheet

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Java-kielen perusteita

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

Numeropelissä 3x3-ruudukko sisältää luvut 1, 2,, 9. Tehtäväsi on järjestää ruudukko näin:

Ohjelmoinnin peruskurssi Y1

4. Lausekielinen ohjelmointi 4.1

VERKKOVELHO-YLLÄPITOTYÖKALUN KÄYTTÖOHJE

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

Sisältö Tervetuloa Linuxin käyttäjäksi Olet tässä

Tekstinkäsittelyn jatko KSAO Liiketalous 1

Algoritmit 1. Luento 3 Ti Timo Männikkö

Harjoitus 5 (viikko 41)

Ohjelmoinnin perusteet Y Python

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

Tehtävä: FIL Tiedostopolut

Ohjelmoinnin peruskurssi Y1

Datatähti 2019 loppu

Unix. Markus Norrena

Puhesynteesin perusteet: Lingvistinen esikäsittely

MITÄ JAVASCRIPT ON?...3

Hyvän salasanan tunnusmerkit Hyökkääjästä salasanan pitää näyttää satunnaiselta merkkijonolta. Hyvän salasanan luominen: Luo mahdollisimman pitkä

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 29. toukokuuta 2013

Luento 2. Timo Savola. 31. maaliskuuta 2006

Transkriptio:

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

Kurssibyrokratiaa Luennoitsija: Nicholas Volk nvolk ling.helsinki.fi Luennot: keskiviikkoisin 19.1.-2.3. klo 12-14. laitoksen luentosalissa (334D), Nicholas Volk (nvolk ling.helsinki.fi) Laskarit: maanantaisin 24.1.-28.2. klo 12-14 unix-luokassa, Tupakka Ennakkotietotoiveet: Unixin tiedostorakenteen alkeet (oikeudet, kopiointi, siirtäminen, poisto, liikkuminen hakemistosta toiseen) Putken idea: sort uniq -c sort -nr Nicholas Volk p.2/23

Kurssibyrokratiaa 2 KIT-verkoston opiskelijat tarvitsevat opintojen suoritusoikeuden Helsingin yliopistoon (tarkista). Opintojen suoritusoikeuden saamiseksi ota yhteys joko paikalliseen KIT-koordinaattoriin tai Helsingin KIT-koordinaattoriin (Hanna Westerlund). Opiskelijanumerot kerätään ilmoittautumisen yhteydessä. Nicholas Volk p.3/23

Alustava kurssin aikataulu 19.1.: Korpuksen määritelmä, valmiit korpustyökalut, unixin kertausta 26.1.: Haluttujen rivien poimiminen ja säännolliset lausekkeet 2.2.: 9.2.: 16.2.: 23.2.: 2.3.: Nicholas Volk p.4/23

Kurssin suoritus Ei luentopakkoa, laskuharjoituksista ainakin puolet palautettava. Laskuharjoitukset (36p) ja pakollinen harjoitustyö (12p) Yhteenä max. 48p Nicholas Volk p.5/23

Arvostelu Pistemäärä Arvosana 40 3 38 3-36 2 34 2+ 32 2 30 2-28 1 26 1+ 24 1 Nicholas Volk p.6/23

Korpuksen määritelmä Suomen kielen perussanakirja antaa seuraavan meidän tarkoituksiimme sopivan määritelmän: korpus 2. kiel. tutkimuksen aineistoksi valittu kokoelma kieliainesta. Korpus on siis empiiristä dataa, jonka avulla voidaan testata tutkimushypoteesejä. Korpus ei valehtele, mutta sen sisältöä voidaan tulkita väärin... Nicholas Volk p.7/23

Korpustyyppejä Käytettävä korpus valikoituu tutkimusaiheen mukaan. Esimerkiksi kielen muuttumista voi tutkia diakronisen korpuksen avulla. Tekstikorpuksia on useita eri tyyppejä: puhuttua ja/tai kirjoitettua kieltä (unohtamatta nauhoitettuja puhekorpuksia) synkroninen vs. diakroninen (eri aikakausia) annoitoitu vs. annotoimaton rekisterit: proosa, kirjeet, sanomalehdet, runot, puheet... kooltaan staattinen/kasvava Nicholas Volk p.8/23

Datan tulkinnan teoriaa Merkitsevyyden määrittely jätetään tilastotieteiljöiden murheeksi, mutta voidaan tehdä seuraavia yleisiä huomioita: Tarvitaan tarpeeksi suuri määrä dataa. Korpus paljastaa lähinnä tendessejä, ei ehdottomia totuuksia. Vastaavasti saatetaan haluta aineistoa monelta, mielellään tavalliselta kirjoittajalta. Kieli ei ole maailmasta irrallinen, konteksti pitää huomioida: esim. muinais-englantia kirjoitettiin pääasiassa Wessexissä, myöhemmin Lontoon alueen murre vakiintui englannin kirjakielen perustaksi. Annotoinnin hyödyntämisestä lisää myöhemmin. Nicholas Volk p.9/23

- tavoitteet Kurssin tavoitteet: 1. Oleellisten asioiden poiminta isosta tekstimassasta eli aineiston keruu 2. Aineiston muokkaaminen ihmiselle tai koneelle helpommin tulkittavaan muotoon 3. Yksinkertaisten laskutoimitusten tekeminen aineistosta (jäänee pois) Lähestytään ongelmaa Unix-käyttöjärjestelmän mukana tulevien työkalujen ja vähän Perl-ohjelmointikielenkin avulla. Nicholas Volk p.10/23

Kurssimateriaalin kattavuudesta Pelkät kalvot tuskin soveltuvat itseopiskeluun... Keskitymme kalvoissa vain subjektiivisesti oleelliseen asiaan, mm. suurin osa käskyjen optioista ohitetaan surutta. Tarkempia tietoja saa käskyjen man-sivuilta: man käsky man -k asiasana Unixeista, komentotulkeista, käskyistä ym. on liikkeellä useita eri versioita. Keskitymme bash-komentotulkkiin ja GNU:n versioihin käskyistä. Nicholas Volk p.11/23

Merkintätavoista Kehotteen (prompt) merkkinä käytetään kurssimateriaalissa dollaria $. (Kehotteen ulkoasun määrää muuttuja PS1.) Käskyt kirjoitetaan kehotteen perään komentoriville, materiaalissa käskyt ovat tummennettuja: $ echo Terve maailma! Terve maailma! Hipsut kertovat, että niiden sisällä oleva osa käsitetään samaan komentotulkin sanaan kuuluvaksi, eli niitä ei tässä tulostettu. Hipsuja väännellään rautalangasta kurssin loppupuolella. Nicholas Volk p.12/23

head ja tail head tulostaa oletusarvoisesti 10 ensimmäistä riviä syöttestä tail vastaasti tulostaa 10 viimeistä riviä antamalla optiona positiivinen kokonaisluku saadaan haluttu määrä rivejä käskyjä yhdistelemällä voi hakea haluamansa peräkkäiset rivit esim. head -3 tail -1 hakee syötteen kolmannen rivin Nicholas Volk p.13/23

wc ja cat wc oletusarvoisesti syötteen rivien, saneiden ja merkkien määrät Optioden l, w ja c avulla voi tulostaa näistä vain halutut cat liittää monta tiedostoa yhteen, sen syötteen rivit voi numeroida n-optiolla cat on maailman eniten turhaan käytetty käsky (mikä ei tietenkään ole vaarallista): $ cat yhdestoista.txt wc 45 205 1636 $ wc < yhdestoista.txt 45 205 1636 $ wc yhdestoista.txt 45 205 1636 yhdestoista.txt Nicholas Volk p.14/23

Sane ja sananmuoto Edellisessä kalvossa törmäsimme termiin sane. Sane on sananmuodon esiintymä.... Nicholas Volk p.15/23

Syötteestä ja tulosteessa Käskyjen saama syöte tulee joko nimety(i)stä tiedosto(i)sta tai ns. oletussyötöstä (standard input) Oletussyöttö tulee käskylle joko näppäimistöltä, putkesta tai uudelleenohjauksen < avulla tiedostosta Oletustulostus (standard output) tulee oletusarvoisesti näytölle Putkella oltustulostuksen voi ohjata seuraavalle käskylle Tulostuksen voi ohjata myös tiedostoon (esim. > ja >> ) Syötteen saamistapojen välillä ei yleensä ole suurta eroa Unixin peruskäskyissä, poikkeuksena tr, joka toimii vain oletussyötön kanssa Nicholas Volk p.16/23

tr SET1 SET2 tr-käskyllä voi muuttaa merkkejä toisiksi merkeiksi, esim. tr A-ZÅÄÖ a-zåäö muuttaa isot kirjaimet pieniksi kirjaimiksi. tr n muuttaa välilyönnit rivinvaihtomerkeiksi eli käytönnössä laittaa kunkin saneen omalle rivilleen. Kirjaimet a:sta z:aan ja numerot 0:sta 9:ään ja niiden osajoukot voidaan kirjoittaa väliviivan avulla, sillä käytännössä kaikissa tietokoneen käyttämissä merkkijärjestelmissä ne ovat aina peräkkäin. Nicholas Volk p.17/23

tr s-optiolla muutetaan peräkkäiset samat merkit yhdeksi: tr -s n n poistaa tyhjät rivit. d-optiolla voi poistaa haluamansa merkit: tr -d ".,; - poistaa joukon välimerkkejä ja vastaavia. - kertoo, että kyseinen väliviiva viittaa itseensä, eikä tarkoita haarukkaa jostain merkistä johonkin merkkiin. c-optio tarkoittaa annetun (ensimmäisen) setin komplementtia: tr -dc n A-Za-zÅÄÖåäö poistaisi kaikki muut paitsi annetut merkit.. Nicholas Volk p.18/23

sort Käskyllä tr n sai sanat omat rivilleen. Käskyllä sort saadaan nämä aakkosjärjestykseen. Käsky head tulostaa oletusarvoisesti 10 ensimmäistä riviä syötteestään. $ tr -s "Enkä "Suotta Ahti Ahti Ahtia En Inkerelle, Inkereltä: Kaloin Kasvoi n < yhdestoista.txt sort head Nicholas Volk p.19/23

uniq Käsky uniq tulostaa peräkkäisistä identtisistä merkkijonoista duplikaatit. Sen option c avulla saa laskettua sananmuodon peräkkäisten esiintymien määrän: $ tr -s 1 "Enkä 1 "Suotta 2 Ahti 1 Ahtia 1 En 1 Inkerelle, 1 Inkereltä: 1 Kaloin 1 Kasvoi 1 Kauan n < yhdestoista.txt sort uniq -c head Nicholas Volk p.20/23

sort uudelleen sort-käskyn r-optio (reverse) järjestää syötteen käänteiseen järjestykseen (z tulee ennen a:ta). n-optio tulkitsee peräkkäiset numerot yhdeksi luvuksi. Nämä yhdistämällä saadaan numerot järjestettyä frekvenssilistaan, yleisin ensin: $ tr -s n < yhdestoista.txt sort uniq -c sort -nr head 8 on 5 nälkä, 4 eip 4 Saaren 3 poiallehen: 3 mennyt 3 luona 3 Viron 3 Kosi Nicholas Volk p.21/23

Alkeellinen frekvenssilista Komentorivillä voi luettavuuden parantamiseksi vaihtaa riviä kirjoittamalla kenoviivan ja rivinvaihdon peräkkäin Välimerkit tms. saattavat vääristää tulosta, joten otetaan ne pois (siis ennen järjestämistä ja laskemista): $ tr -s n < yhdestoista.txt tr -dc A-Za-zäöÄÖ sort uniq -c sort -nr head 8 on 7 nälkä 4 eip 4 Saaren 3 poiallehen 3 neiti 3 mennyt 3 lähe 3 luona 3 kasvoi n Nicholas Volk p.22/23

Ensi kerralla... Ensi kerran teemana on haluttujen osajonojen sisältämien rivien poimiminen tesktistä. Poimimme syötteestä asioita fgrep- ja egrep-käskyn avulla Opimme löytämään halutut kohdat tekstistä myös less-käskyn ja emacs-editorin hakutiloissa Opimme perlin s///-käskyn käytön komentoriviltä sekä vastaavan sed-käskyn Nicholas Volk p.23/23