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