Korpusten käsittely clt131, P2 2006 Luento 1 Nicholas Volk <nvolk@ling.helsinki.fi> 3.11.2006 Humanistinen tiedekunta
CLT131 Korpusten käsittely (syksy 2006) Luennoitsija FM Nicholas Volk Kurssiassistentti fil.yo. Roope Havu Laajuus: 3 opintopistettä Esitietovaatimukset: CLT130 tai vastaavat tiedot Suoritus: Annettujen tehtävien palauttaminen määräaikaan mennessä kurssiassistentille Vastaa suunnilleen vanhojen tutkintovaatimusten kurssia CTL160 (2ov)
Kurssin alustava, karkea runko Tänään: komentojonot, putkitus 2. luento: järjestäminen (abc, 123), frekvenssilista 3. luento: merkkijonojen poimiminen 4. luento: merkkijonojen poimiminen II 5. luento: merkkijonojen muokkaaminen 6. luento: merkkijonojen muokkaaminen II Viimeinen luento: kertausta, sälää, kivakivaa
Kurssin suoritus 36 tehtävää, 1 piste kustakin Palautetaan sähköpostitse osoitteeseen roope.havu@helsinki.fi CTL160 kurssia suorittavat: ottakaa yhteys luennoitsijaan Pistemäärä Arvosana 32 5 29 4 25 3 22 2
Kurssin tavoitteet 1. Oleellisten asioiden poiminta isosta tekstiaineistosta (korpuksesta) eli aineistoon keruu 2. Aineiston muokkaaminen ihmiselle tai jollekin tietokoneohjelmalle (helpommin) ymmärrettävään muotoon Tavoitteeseen pyritään Unix ja Linux käyttöjärjestelmien mukana tulevien komentorivityökalujen (komentojen) avulla. Unixeista ja niiden mukana tulevista työkaluista on eri variantteja. Keskitymme bash tulkkiin ja GNUn versioihin käskyistä.
Korpuksen määritelmä Suomen kielen perussanakirja antaa seuraavan meille sopivan määritelmän: korpus 2. kiel. tutkimuksen aineistoksi valittu kokoelma kieliainesta Tarjoaa mahdollisuuden testata tutkimushypoteeseja empiirisesti Lähdekriittisyys kuitenkin aina paikallaan...
Korpustyyppejä Kirjoitus vs. puhe Synkronia vs. diakronia Annotoitu vs. raakateksti Rekisterit Proosa Kirjeet Sanomalehtiaineisto Runous...
Merkintätavoista Kehotteen eli promptin merkkinä käytetään kurssimateriaalissa '$' merkkiä. Todellisuudessa kehotteen ulkonäkö vaihtelee käyttäjittäen ja järjestelmittäin. Käyttäjä voi myös itse muuttaa kehotteen ulkonäköä. Komennot kirjoitetaan kehotteen perään komentoriville. Materiaalissa komennot on boldattu ja koneen antama tuloste on normaalilla fontilla: $ echo 'Terve maailma' Terve maailma
Kurssimateriaalin kaatavuudesta Kurssimateriaali keskittyy (luennoitsijan mielestä) oleelliseen asiaan. Mm. Muun muassa suurin osa eri komentojen valitsimista (öh, optioista) ohitetaan surutta. Tarkempia tietoja saa komentojen ohjesivuilta mankomennon avulla man komento antaa tietoa halutusta komennostaj man k asiasana listaa komentoja, jotka liittyvät asiasanaan
Komentotulkin sanan määritelmä Kurssin kannalta epäkeskeinen ja yllättävänkin monimutkainen asia, jota en siis käsittele aihetta kattavasti kalvoilla Luennolla n. 15 min asiaa aiheesta Esimerkkejä hipsuista, välilyönneistä ja jokerimerkeistä
Potentiaalisen hipsuongelman ennakointia Joillain merkeillä on komentotulkin kannalta jokin erikoismerkitys Esim. * tarkoittaa komentotulkille mitä tahansa merkkijonoa Jos halutaan viitata itse merkkiin, ei erityismerkitykseen, viittaaminen onnistuu tyypillesti laittamalla merkin eteen kenoviiva tai laittamalla merkki yksin tai kaksinkertaisten hipsujen sisään: $ echo \* '*' * *
Yksinkertaiset hipsut Yksinkertaisten hipsujen sisällä millään merkillä ei ole erikoismerkitystä, eli kaikki merkit kahden peräkkäisen ':n välillä kuuluu komentotulkin mielestä samaan sanaan. ' merkkiä itseään ei siis voi kirjoittaa yksinkertaisten hipsujen sisälle Sen voi kuitenkin kirjoittaa välittömästi hipsujen viereen kenoviivan avulla: tr c ',.:;!?'\' Vain luennolla: komentotulkin sanan määrittely
Kaksinkertaiset hipsut Lainausmerkin sisään voi kenoviivan avulla kirjoittaa lainausmerkin: echo 28\ televisio Yksinkertaisempaa on valita käytettävät hipsut tehtävän mukaan: $ echo raa'at $ echo 'ei hauska vaan hauska '
Käskyt head ja tail head tulostaa oletusarvoisesti 10 ensimmäistä riviä syötteestä Vastaavati tail tulostaa 10 viimeistä riviä Antamalla optiona positiivinen kokonaisluku voidaan tulostaa haluttu määrä rivejä Esim. head 3 tail 1 tulostaisi syötteensä kolmannen rivin Tarkemmin luennolla: syötetyypit
Käskyt cat ja wc wc tulostaa oletusarvoisesti syötteensä rivien, saneiden ja merkkien määrän Optioiden l, w ja c avulla voi tulostaa niistä vain halutut cat komennolla voidaan katenoida yhteen tulosteeseen monen tiedosto sisällöt Komentoa käytetään usein (tarpeettomasti) yhden tiedoston tulostamiseen Optio n lisää rivinumerot tulosteesteen
Esimerkkejä $ cat yhdestoista.txt wc # turhahko cat 45 205 1636 $ wc < yhdestoista.txt # merkki on kommentti 45 205 1636 $ wc yhdestoista.txt 45 205 1636 yhdestoista.txt
wc käskyn c valitsimesta Täsmällisemmin c laskee syötteensä 8 bittisten tavujen määrän Perinteisesti (esim. ISO 8859 merkistöt) yksi tavu vastaa yhtä merkkiä ja 8 bittisellä merkistöllä pystyi kuvaamaan 256 eri merkkiä Eri alueilla käytetty eri merkistöjä (esim. meidän ääkköstuki) Nyttemmin Unicode (UTF 8) käyttää useimpien merkkien kuvaamiseen 2 tavua, sillä 16 bittinen merkkiavaruus kattaa 64K eri yhdistelmää
Sane ja sananmuoto wc käskyn yhteydessä puhuttiin saneista Sane on sananmuodon esiintymä: http://www.ling.helsinki.fi/kit/term/intro.shtml Termejä ei tosin aina käytetä käytetä näin... wc käsky laskee välimerkit saneen osiksi, lingvisti ei
STDIN Käsky(je)n saama syöte tulee joko nimety(i)stä tiedosto(i) sta tai oletussyötteenä (engl. standard input, STDIN) Oletussyöttö tulee näppäimistöltä edelliseltä komennolta putkittamalla tiedostosta uudelleenohjauksen '<' avulla Osa käskyistä tukee vain jompaa kumpaa tr käsky haluaa syötteensä aina oletussyötteestä
STDOUT Ohjelmien tuloste menee yleensä oletustulosteeseen (standard output, STDOUT) Tulostuu oletusarvoisesti näytölle Oletustulosteen voi ohjata tiedostoon >:n ja >>:n avulla > kirjoittaa tiedoston yli >> lisää tulosteen tiedoston loppuun Tulokset, joista ei olla kiinnostuneita, voidaan ohjata / dev/null nimiseen mustaan aukkoon
STDERR Virheilmoitukset tulostuvat tyypillisesti oletustulosteen sijasta standard erroriin (STDERR) STDERR:n uudelleenohjaus tiedostoon: 2> tiedosto STDERR:n uudelleenohjaus STDOUT:iin: 2>&1 Näitä ei tarvitse osata!
tr setti1 setti2 tr käskyllä voi muuttaa merkkisetin toisiksi merkeiksi Kirjainkoon pienennys: tr 'A ZÅÄÖ' 'a zåäö' Saneet omille riveilleen: tr ' ' '\n' Kirjaimet a:sta z:aan ja A:sta Z:aan ja numero 0:sta 9:ään (ja näiden osajoukot) voidaan kirjoittaa lyhyesti :n avulla, sillä (käytännössä) kaikissa tietokoneiden käyttämissä merkistöissä ne ovat aina peräkkäin
tr:n valitsimia s puristaa peräkkäiset samat merkit yhdeksi Tyhjien rivien poisto: tr s '\n' '\n' d poistaa annetut merkkilistan (toista merkkisettiä ei siis tarvita) Välimerkkien poistotapa: tr s '.,;\ ' \ kertoo, että väliviiva viittaa merkkiin itseensä eikä merkkijoukkoon X:stä Y:hyn
tr:n valitsimia (2) c tarkoittaa ensimmäisen setin komplementtia eli kaikkia muita merkkejä Välimerkkien poisto 2: tr dc 'A Za zåäöåäö \n'