Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento

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

Korpusten käsittely clt131, P Luento 4

Korpusten käsittely clt131, P Luento 3

Korpusten käsittely clt131, P Luento 5

Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento,

Kieliteknologian ATK-ympäristö Neljäs luento

Luento 4. Timo Savola. 21. huhtikuuta 2006

Ctl160 Tekstikorpusten tietojenkäsittely

Luento 5. Timo Savola. 28. huhtikuuta 2006

Korpusten käsittely clt131, P Luento 1

Komentotulkki. Kysymyksiä

CLT131 Korpusten käsittely (3op)

Kieliteknologian ATK-ympäristö Viides luento

Ctl160 Tekstikorpusten tietojenkäsittely p.1/24

Kieliteknologian ATK-ympäristö Viides luento

Ctl160 Tekstikorpusten tietojenkäsittely p.1/15

Kieliteknologian ATK-ympäristö Kolmas luento

CLT131 Korpusten käsittely

Pikanäppäin Yhdistelmiä. Luku 6 Pikanäppäimet

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

Korpusten käsittely clt131, P Luento 6

Perusohje vi-editorin käyttöön

Hannu Valtanen Oy. Linux vi-editori

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

Hieman linkkejä: lyhyt ohje komentoriviohjelmointiin.

Metropolia Ammattikorkeakoulu

Kieliteknologian ATK-ympäristö Toinen luento

Unix. Markus Norrena

Sekalaisia selvennyksiä

Luento 3. Timo Savola. 7. huhtikuuta 2006

Lupa opetuskäyttöön pyydettävä. Näppäimistö. Kohdistimen ohjausnäppäimistö. Funktionäppäimistö. Kirjoitusnäppäimistö

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen

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

Kieliteknologian ATK-ympäristö Kuudes luento

Luento 2. Timo Savola. 31. maaliskuuta 2006

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

CLT131: Tekstityökalut 2010, kuudes luento

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2

1. HARJOITUS harjoitus3_korjaus.doc

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

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

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

Vesa Ollikainen, päivitys Juha Haataja

Taulukkolaskentaa selkokielellä EXCEL

CLT131: Tekstityökalut 2011, kuudes luento

Ohjelmoinnin perusteet Y Python

Sormet skripteihin. 1 Mistä tässä harjoitteessa on kyse

1.1 Tekstinprosessointiohjelmien yleinen toimintatapa (1)

Excelin käyttö mallintamisessa. Regressiosuoran määrittäminen. Käsitellään tehtävän 267 ratkaisu.

CLT131: Tekstityökalut 2011, viides luento

CLT131 Korpusten käsittely Viides luento

TAULUKON TEKEMINEN. Sisällysluettelo

Julkaiseminen verkossa

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

Harjoitus 1 -- Ratkaisut

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

file Opetettavissa omilla säännöillä tiedostossa /etc/magic -k tulosta kaikki useista mahdollisuuksista -L/-h seuraa/älä seuraa symbolisia linkkejä

Ubuntu tunkkausta En US / Helsinki asennuksen jälkeen jotta loki5ac toimisi oikein Winen päällä.

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

Ohjelmoinnin perusteet Y Python

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Tilastolliset toiminnot

Unix-kurssi, harjoitustehtävät

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2 3

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

Zeon PDF Driver Trial

Ctl160 Tekstikorpusten tietojenkäsittely Viides luento

Unix-kurssi, harjoitustehtävät

Visma.net Approval. Versiosaate 1.40

Nuorten hyvinvointi tilastotietokannan käyttöohjeet Tieke

Ohjelmoinnin perusteet Y Python

Ponnahdusikkunoiden ja karttatekstien hallitseminen ArcGIS Online kartoissa

Helppokäyttöisyyttä Windows Vista käyttöjärjestelmän asetuksilla

5. HelloWorld-ohjelma 5.1

Octave-opas. Mikä on Octave ja miksi? Asennus

Harjoitus 5 (viikko 41)

5. Alaindeksi 6. Yläindeksi 7. Poista muotoilut 8. Tasaa teksti vasemmalle

Harjoitus 10: Mathematica

Windowsin pikanäppäimet

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

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

KAPPALEMUOTOILUT. Word Kappalemuotoilut

Visma Fivaldi -käsikirja MiniCRM

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

SuperNova Pikanäppäimet pöytäkoneille, kannettaville ja kosketusnäytöille. Tämä opas on saatavilla eri muodoissa osoitteesta

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

Datatähti 2019 loppu

TIETOKONEEN ÄÄRELLÄ. Kansalaisopistot kotouttamisen tukena hanke/opetushallitus Kuopion kansalaisopisto

SCI- A0000: Tutustuminen Linuxiin, syksy 2015

Fonttimuotoilut. Fontin tyyppi ja fonttikoko

KÄYTTÖOHJE LATOMO VERSO

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

CLT131: Tekstityökalut 2011, toinen luento

sivu 1 Verkkopäätteen muuttaminen Anvian uuteen tekniikkaan Ohje käy seuraaviin verkkopäätteisiin

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

YHTEYDEN OTTAMINEN CSC:N KONEELLE HIPPU

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

Luvuilla laskeminen. Esim. 1 Laske

Visma Fivaldi -käsikirja Asiakaskohtaiset hinnat

Transkriptio:

Ctl160 Tekstikorpusten tietojenkäsittely 490160-0 Kolmas luento Nicholas Volk Yleisen kielitieteen laitos, Helsingin yliopisto Ctl160 Tekstikorpusten tietojenkäsittely490160-0kolmas luento p.1/26

Lisää kuvausvoimaa: egrep eli grep -E Viime kerralla tutustuimme fgrep-käskyyn, joka pystyi poimimaan rivejä halutun osajonon perusteella Kuvausvoimaa lisäämään voidaan käyttää säännöllisiä lausekkeita (regular expressions, regexp) Säännölliset lausekkeet ovat eri asia kuin komeontitulkin jokerimerkit (wildcards) *,?... Tietyillä, pian opittavilla merkeillä on tietty säännöllisissä lausekkeissa erikoismerkitys egrep-käsky hyödyntää säännöllisiä lausekkeita osumia etsiessään Niin tekee myös tavallinen grep, mutta sitä emme käsittele tällä kurssilla (syntaksi vain on vähän erilainen) CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.2/26

Mikä tahansa merkki Säännöllisten lausekkeiden piste tarkoittaa mitä tahansa yhtä merkkiä Tavallinen piste kirjoitetaan \. tr \n egrep -x "..." poimisi kaikkia viisikirjaimiset sanat (vrt. bash-komentotulkin? -jokerimerkki) Yhden tietyn merkin ja minkä tahansa merkin väliin sijoittuu merkkijoukko, jossa merkki voi olla mikä tahansa annettuun joukkoon kuuluva merkki CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.3/26

Merkkijoukko Merkkijoukko koostuu hakasulkeiden sisään kirjoitetuista merkeistä, esim. suomen vokaalit: [aeiouyäö] (Bash-komentotulkin jokerimerkit taas samat ) Esim. lauseke pa[dr]at osuu, kun syötteessä on joko padat tai parat. Hakasulkeet tarvitaan (toisin kuin tr-käskyssä) Merkkijoukon komplementti saadaan kirjoittamalla ˆ välittömästi vasemman hakasulun perään: [ˆaeiouyäö] Jos hakasulku ei ilmaise merkkijoukon alkua tai loppua pitää (tai ainakin kannattaa) sen eteen kirjoittaa kenoviiva: \[ ja \] CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.4/26

- merkkijoukossa Kuten tr-käskyssä, voidaan merkkijoukossa käyttää - -merkkiä merkityksessä x:stä y:hen: [0-9] Jos halutaan viitata merkkiin, ei sen erityismerkitykseen, kirjoitetaan se egrep-käskyssä merkkijoukon ensimmäiseksi tai viimeiseksi merkiksi Perlissä toimii kenoviivan laitto -:n eteen: \- CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.5/26

Määrällistäjät: optionaalisuus Merkin, merkkijoukon ja suluilla rajatun alueen voi tehdä valinnaiseksi kirjoittamalla sen perään kysymysmerkki? Kysymysmerkkiin merkkinä viitataan kirjoittamalla \? Lingvistisesti motivoituneita esimerkkejä ei ole (vielä) helppo keksiä: egrep "Amerii?kka" egrep "ka?akk?u" egrep "märj?ät" egrep "ve[dr]?et" CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.6/26

Kleenen plus ja tähti Jos annettua merkkiä, merkkijoukkoa tai suluilla rajattua aluetta seuraa plus-merkki, tämä voi esiintyä 1:stä äärettömään kertaa Esimerkiksi positiiviset kokonaisluvut voisi määrittää seuraavasti: [0-9]+ Tähti tarkoittaa nollasta äärettömään kappaletta. Parempi määritelmä kokonaisluvuille olisi [1-9][0-9]* Merkkeihin itseensä viitataan taas kenoviivan avulla: \+ ja \* Aa+rgh? CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.7/26

Universaalikieli Mikä tahansa merkkijono eli universaalikieli voidaan nyt kuvata kahdella merkillä seuraavasti:.* Eli äskeinen onnistuu aina, myös tyhjällä merkkijonolla, kun taas.+ onnistuuu kaikella muulla paitsi tyhjällä merkkijonolla (Lauseke.* korreloi *-jokerimerkin kanssa, mitä nyt jälkimmäinen ei löydä Unixin piilotiedostoja...) egrep "ei.* eikä" CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.8/26

Tarkemmat määrän rajaukset Halutun asian perään kirjoitettujen aaltosulkeiden avulla toistojen määrä voidaan ilmaista tarkemmin: Tasan viisi kappaletta:....{5} 5-7 merkkiä:...?.?.{5,7} 5 tai enemmän:...+.{5,} CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.9/26

Viittaukset rivin alkuun ja loppuun ˆ viittaa säännöllisissä lausekkeissa merkkijonon alkuun ja $ merkkijonon loppuun: egrep "ˆ[A-ZÅÄÖ]" egrep "ss[aä]$" Yhdessä ne vastaavat x-optiota: egrep -x "sana" egrep "ˆsana$" Rivinvaihtomerkkiin \n ei egrep-käskyllä voi viitata Sarkainmerkin voi kirjoittaa egrep-käskylle näppäilemällä Ctrl-v TAB CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.10/26

Erityismerkityksen poistosta Yllä on opetettu, että kun halutaan viitata merkkiin, jolla on jokin erikoismerkitys, niin sen eteen pitää laitaa kenoviiva. Tämä ei ole aina aivan totta... Esim. merkkijoukon sisällä piste, kysymysmerkki ja kumppanit eivät tarvitse kenoviivaa eteensä, sillä merkkijoukon sisällä ko. merkit ovat semanttisesti yksiselitteisiä, eli ne voivat tarkoittaa siellä vain yhtä asiaa. Samaten ˆ tarkoitti eri asiaa lausekkeen ja merkkijoukon alussa (mitä?) Jos ei ole varma kontekstin sallimasta vapaudesta, kannattaa käyttää kenoviivoja...... siis minun mielestäni, muitakin näkemyksiä on... CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.11/26

Ryhmittely Sulkujen avulla voidaan osoittaa "määrällistäjille"yhtä merkkiä suurempi alue: (ha)+! (h[aei])+! (reduplikaatio){2} 10( Australian)? dollarilla CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.12/26

Ryhmittely 2 Piippu-merkki tarjoittaa valinnaisuutta Itse käytän sitä vain sulkujen sisällä: san(oi a)s[st]a K(u a)mpi voitti M(\. atti) Meikälainen (pitää täytyy on pakko) Välillä näkee käyettävän myös muotoja: ((pitää) (täytyy) (on pakko)) pitää täytyy on pakko CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.13/26

Palindromiesimerkki egrep-käskyllä on mahdollista viitata taaksepäin aiemmin ryhmiteltyihin kokonaisuuksiin Viittaus tapahtuu kirjoittamalla \n, jossa n on 1-9. Esim. kuusikirjaimisen palindromin tunnistaa ehto egrep "ˆ(.)(.)(.)\3\2\1$" Kiva tietää, ei tarvitse osata... CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.14/26

less Käskyllä less selata tiedoston sisältöä (mm. page up-, page down-, nuoli ylös- ja nuoli alas-näppäimet). q:n painaminen lopettaa. h antaa listan erilaisista näppäinyhdistelmistä. CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.15/26

less ja säännölliset lausekkeet Painamalla /-merkkiä pääsee kirjoittamaan säännöllisen lausekkeen. Lausekkeen kirjoittamisen ja enterin painamisen jälkeen less siirtyy ensimmäisen osuman kohdalle. n siirtyy seuraavaan osumaan. N siirtyy edelliseen osumaan. CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.16/26

Skriptaus ja editorit Usein käytetyt käskyjonot voi yhdistää "skriptiksi". Skripit kirjoitetetaan ja niitä muokataan jollakin editorilla. Tällä kurssilla käytämme GNU Emacs -editoria. Emacs käynnistyy käskyllä (laitoksen koneissa) käskyllä emacs. Luotava/muokattava tiedosto voidaan kertoa argumenttina: emacs foo. CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.17/26

Emacs-editorin ajamisesta Ikkunoinnin toimiessa Emacs-editorin käynnistyskäskyn perään kannattaa lisätä &-merkki. Tällöin prosessi haarautuu: voit jatkaa käskyjen antamista myös komentoriviltä. Ikkunoimattomassa ympäristössä jätetään &-merkki pois, muuten prosessi pyörii "taustalla". Ikkunoimattomassa ympäristössä ei voi käyttää graafista käyttöliittymää, joten ainakin muutama perusnäppäinyhdistelmä on syytä osata. (Taustalla pyörivän prosessin saa esiin käskyllä fg.) CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.18/26

Keskeisiä näppäinyhdistelmiä Tärkeimmät käskyt löytyvät graafisista valikoista, mutta niitä ei voi aina käyttää. Siksi on tarkoituksenmukaista osata muutama näppäinyhdistelmä. Tiedoston talletus: CTRL-x CTRL-s Emacsin sulkeminen: CTRL-x CTRL-c Emacsista poistuminen sulkematta Emacsia: CTRL-z (paluu käskyllä fg) Peruutus: CTRL-x u Emacsin hyödyllisistä näppäinyhdistelmistä enemmän kurssin WWW-sivujen yleiset materiaalit -kohdassa. CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.19/26

Emacsin hakutoiminnot fgrep-mäinen haku eteenpäin: CTRL-s sana Sama uudelleen: CTRL-s CTRL-s fgrep-mäinen haku taaksepäin: CTRL-r sana Merkkijonon korvaaminen: M-% (lue ALT-SHIFT-5) Lausekkeen korvaaminen: C-M-% (lue CTRL-ALT-SHIFT+5) CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.20/26

Bash-skriptien teko Shell-skripti on komentotulkille kelpaavista käskyistä koottu tiedosto, johon on luku- ja suoritusoikeudet. Esim. chmod a+rx skriptin_nimi Tällöin kutsumalla tiedoston nimeä voi käyttää käskynä. Hyvä tiedostopääte shell-skriptille on.sh Skriptin ajaminen edellyttää ohjelman suoritusoikeuden lisäksi myös ohjelman lukuoikeuden. Konekielisen tiedoston ajamiseen riittää siis pelkkä suoritusoikeus. (Konekieltä ei ole tarkoitettu ihmisen tai Unixin komentotulkin luettavaksi.) CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.21/26

PATH Ympäristömuuttujassa $PATH on : -merkillä eroteltu ne hakemistot, joista komentotulkki etsii käytettäviä käskyjä. echo $PATH which komento kertoo missä päin hakemistorakennetta komento sijaitsee. Riippumatta $PATH muuttujan arvosta työhakemistossa olevaa oikein oikeuksin varustettua skriptiä voi kutsua käskyllä./nimi Vastaavasti muitakin suhteellisia ja absoluuttisia polkuja suoritettavaan tiedostoon voi käyttää. CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.22/26

Shell-skriptien teko (2) Shell-skriptien siirreltävyyden varmistamiseksi käytämme vanhempaa sh-komentotulkkia bash-komentotulkin sijaan. Käsky which sh kertoo missä paikassa hakemistorakennetta shell-komentotulkki sijaitsee. Skriptin ensimmäisellä rivillä kerrotaan mikä ohjelma tulkitsee skriptin ja siinä olevat käskyt. Meillä shell-skriptin ensimmäinen rivi on: #!/bin/sh tai #!/bin/bash CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.23/26

Moodit Emacs-editorissa on moodeja, jotka helpottavat ohjelmien kirjoittamista. Emacs päättelee joskus tiedostopäätteen tai tiedoston ensimmäisen rivin perusteella moodin. shell-moodin saa päälle kirjoittamalla M-x sh-mode jossa iso M-kirjain tarkoittaa meta-näppäinta. M-x voi kirjoittaa joko painamalla Alt-x tai painamalla ensin Esc ja hetken päästä x-näppäintä. M-x global-font-lock-mode kytkee värit päälle tai pois päältä. CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.24/26

Shell-skriptin argumentit: ongelma Omallekin shell-skriptille voi välittää argumentteja (optiota, tiedostonnimiä...) Argumentit tallettuvat muuttujiin $1, $2... $9 ja kollektiivisesti muuttujiin $* ja $@ Argumentteja voi olla enemmän kuin yhdeksän, mutta näiden opettelu ei kuulu tälle kurssille (shift). Skriptien tulisi siis osata huolehtia argumenttien käsittelystä... Ongelma on samanlainen kuin ensimmäisellä luennolla esitelty tr-käskyn kykenemättömyys saada tiedostoja argumentteina CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.25/26

Shell-skriptit argumentit: tiedostoargumentit Tiedostoargumenttien osalta ongelman voi ratkaista laittamalla skriptin ensimmäiseksi käskyksi rivin cat $@ Tällöin cat-käsky yhdistää argumenttitiedostonsa ja laittaa ne oletussyöttönä seuraavalle käskylle Komentotulkin kommentin aloittaa muuten risuaitamerkki #. Kommentit helpottavat elämää... Se komentotulkista, lisää emacs-asiaa ensi kerralla CTL160 Tekstikorpusten tietojenkäsittely Nicholas Volk p.26/26