Ctl160 Tekstikorpusten tietojenkäsittely p.1/24

Samankaltaiset tiedostot
Ctl160 Tekstikorpusten tietojenkäsittely

CLT131 Korpusten käsittely (3op)

CLT131 Korpusten käsittely

Korpusten käsittely clt131, P Luento 1

Korpusten käsittely clt131, P Luento 3

Kieliteknologian ATK-ympäristö Neljäs luento

Korpusten käsittely clt131, P Luento 5

Ctl160 Tekstikorpusten tietojenkäsittely p.1/15

Ctl160 Tekstikorpusten tietojenkäsittely p.1/28

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)

Kieliteknologian ATK-ympäristö Viides luento

Kieliteknologian ATK-ympäristö Viides luento

CLT131: Tekstityökalut 2011, viides luento

CLT131: Tekstityökalut 2011, toinen luento

Korpusten käsittely clt131, P Luento 6

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

Komentotulkki. Kysymyksiä

CLT131: Tekstityökalut 2010, toinen luento

Luento 4. Timo Savola. 21. huhtikuuta 2006

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

Hieman linkkejä: lyhyt ohje komentoriviohjelmointiin.

Luento 5. Timo Savola. 28. huhtikuuta 2006

CLT131 Korpusten käsittely Viides luento

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

CLT131: Tekstityökalut 2010, kuudes luento

CLT131: Tekstityökalut 2011, seitsemäs luento

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

5. HelloWorld-ohjelma 5.1

Kieliteknologian ATK-ympäristö Kuudes luento

CLT131: Tekstityökalut 2010, neljäs luento

Ctl160 Tekstikorpusten tietojenkäsittely Viides luento

CLT131: Tekstityökalut 2011, kuudes luento

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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

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

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

Tehtävä: FIL Tiedostopolut

5. HelloWorld-ohjelma 5.1

CLT131: Tekstityökalut 2012, kymmenes luento

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

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

Sekalaisia selvennyksiä

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

Ohjelmointi 1 / syksy /20: IDE

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

Metropolia Ammattikorkeakoulu

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

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

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

Datatähti 2000: alkukilpailun ohjelmointitehtävä

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

Alkukartoitus Opiskeluvalmiudet

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

4. Lausekielinen ohjelmointi 4.1

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

MITÄ JAVASCRIPT ON?...3

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

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

Muuttujien määrittely

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

MS-A0102 Differentiaali- ja integraalilaskenta 1

Harjoitus 5 (viikko 41)

Unix. Markus Norrena

12. Näppäimistöltä lukeminen 12.1

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

CLT131: Tekstityökalut 2011, kahdeksas luento

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Kieliteknologian ATK-ympäristö Kolmas luento

4. Lausekielinen ohjelmointi 4.1

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

Ohjelmoinnin perusteet Y Python

linux: Ympäristömuuttujat

Java-kielen perusteita

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

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

Ohjelmoinnin perusteet Y Python

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

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 8. maaliskuuta 2012

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

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

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

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

Puhesynteesin perusteet: Lingvistinen esikäsittely

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

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

Markkinoitten mallintaminen ja Internet-markkinat

Transkriptio:

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