Ctl160 490160-0 Nicholas Volk Yleisen kielitieteen laitos, Helsingin yliopisto Ctl160 490160-0 p.1/24
Kurssibyrokratiaa Luennoitsija: Nicholas Volk (nvolk ling.helsinki.fi) Luennot: keskiviikkoisin 19.1.-2.3. klo 12-14. laitoksen luentosalissa (334D) Laskarit: maanantaisin 24.1.-28.2. klo 12-14 unix-luokassa (Juho Tupakka) Ennakkotietotoiveet: Unixin tiedostorakenteen alkeet (oikeudet, kopiointi, siirtäminen, poisto, liikkuminen hakemistosta toiseen) Putken idea: sort uniq -c sort -nr Nicholas Volk p.2/24
Kurssibyrokratiaa 2 KIT-verkoston opiskelijat eivät tarvitse käyttöoikeuksia HY:n linux-koneille, pääsy johonkin Unixiin (tai Cygwiniin) riittää. KIT-verkoston opiskelijoiden lienee kuitenkin tarkoituksenmukaista olla yhteydessä paikalliseen KIT-koordinaattoriin tai Helsingin pään KIT-koordinaattoriin (Hanna Westerlund). Opiskelijanumerot kerätään ilmoittautumisen yhteydessä (tai verkostolaisille luodaan numerot kurssin aikana). Nicholas Volk p.3/24
Alustava kurssin aikataulu 19.1.: Korpuksen määritelmä, valmiit korpustyökalut, unixin kertausta 26.1.: Haluttujen rivien poimiminen ja säännolliset lausekkeet 2.2.: Lauseiden laittaminen omille riveilleen, Emacs-editori ja shell-skriptit 9.2.: Rakenteisten dokumenttien siistiminen 16.2.:... 23.2.:... 2.3.:... Nicholas Volk p.4/24
Kurssin suoritus Ei luentopakkoa, laskuharjoituksista ainakin puolet palautettava. Laskuharjoitukset (36p) ja pakollinen harjoitustyö (12p) Yhteenä max. 48p Laskuharjoitukset ovat pakolliset HY:n opiskelijoille, muut voivat lähettää tekemänsä tehtävät osoitteeseen ctl160-teacher ling.helsinki.fi. (Tai voi noista erikseen yrittää sopia poikkeustapauksissa Juhon kanssa...) Nicholas Volk p.5/24
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/24
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/24
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/24
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/24
- tavoitteet Kurssin tavoitteet: 1. Oleellisten asioiden poiminta isosta tekstimassasta eli aineiston keruu 2. Aineiston muokkaaminen ihmiselle tai koneelle helpommin tulkittavaan muotoon Tavoitteisiin pyritään lähinnä Unix-käyttöjärjestelmän mukana tulevien työkalujen avulla. Nicholas Volk p.10/24
Kurssimateriaalin kattavuudesta Itsenäisesti opiskelu lienee mahdollista, mutta vaatii oma-aloitteisuutta. 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/24
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 komentotulkille, että niiden sisällä oleva osa käsitetään samaan sanaan kuuluvaksi, eli niitä ei tässä tulostettu. Hipsuja väännellään rautalangasta kurssin loppupuolella. Nicholas Volk p.12/24
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/24
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/24
Sane ja sananmuoto Edellisessä kalvossa törmäsimme termiin sane. Sane on sananmuodon esiintymä. Sananmuodolla on ainakin yksi lingvistinen tulkinta. http://www.ling.helsinki.fi/kit/term/intro.shtml Googlen avulla on helppo huomata, että termejä ei aina käytetänä näin. Nicholas Volk p.15/24
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/24
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/24
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/24
Vähän hipsuista Hipsujen sisällä oleva osa kuuluu komentotulkin kannalta samaan sanaan. Yksinkertaisten hipsujen sisällä millään merkillä ei ole erityismerkitystä. -merkkiä ei siis voi kirjoittaa yksinkertaisten hipsujen sisään. Sen voi kuitenkin kirjoittaa hipsujen rajaaman alueen viereen: tr -d,.:;!? Nicholas Volk p.19/24
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.20/24
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.21/24
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.22/24
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.23/24
Ensi kerralla... Ensi kerran teemana on haluttujen osajonojen sisältämien rivien poimiminen tesktistä. Poimimme syötteestä asioita fgrep- ja egrep-käskyn avulla Säännölliset lausekkeet Opimme löytämään halutut kohdat tekstistä myös less-käskyn Nicholas Volk p.24/24