CLT131 - Korpusten käsittely, syksy 2006, Volk
Harjoitukset 4

Palauta vastauksesi sähköpostitse kurssiassistentti Roope Havulle osoitteeseen <etunimi.sukunimi@helsinki.fi> 30.11. klo 23.59 mennessä. Laita kaikki vastauksesi samaan postiin, otsikoksi "clt131 tehtävät 4". Älä käytä liitetiedostoja ellei tehtäväsää toisin pyydetä.

  1. Tiedosto pollo.txt sisältää 53 SKTP:n eri sanomalehtiosakorpuksista kerättyä pöllö-alkuista sanetta sane-per-rivi -muodossa. Laadi yksi tai useampi egrep-komento, jo(t)ka poimii saneista mahdollisimmat monta pöllö-substantiivin eri muotoa ja mahdollisimman vähän muiden sanojen eri sanamuotoja. Yritä saada sekä saanti että tarkkuus (määritelmät seuraavassa tehtävässä) mahdollisimman suureksi. Huomaa kuitenkin, että usein saannin parantaminen huonontaa tarkkuutta ja päinvastoin. Täydellisyyteen ei tarvitse pyrkiä. Halutessasi saat "siivota" syötettä, eli poistaa välimerkit häiritsemästä jne. Lisäksi kannattaa olla tietoinen osuvatko lausekkeet osajonoon vai koko riviin, eli lauseke pöllöä osuu myös pöllöäiti-saneeseen ellei toisin käsketä...

  2. Laske käsin edellisen tehtäväsi vastauksen saanti ja tarkkuus. Saanti kertoo montako prosenttia kaikista pöllö-sanan eri muodoista (33 kpl) päätyi poimimaasi aineistoon. Tarkkuus on pöllö-sanan eri muotojen osuus koko poimastasi aineistostasi. Alkutila on saannin osalta 100 prosenttia (eli 33/33 oikeaa pöllö-sanan eri muotoa) tarkkuuden ollessa 60% (33/55).

  3. Tiedosto varas.txt sisältää 100 SKTP:n eri sanomalehtiosakorpuksista kerättyä sanetta sane-per-rivi -muodossa. Laadi yksi tai useampi egrep-käsky, jo(t)ka poimii saneista mahdollisimmat monta varas-sanan eri muotoa ja mahdollisimman vähän muita saneita. Osa saneista (mm. "varasta") voi olla sekä varas-sanan että jonkun muun sanan muotoja (sananmuoto voi viitata myös varastaa-verbiin). Tällä tavoin moniselitteiset sananmuodot tulkitaan varas-sanan muodoiksi.

  4. Tarkoitus on poimia ne rivit, joilla on sekä takavokaaleja (a, o ja u) että etuvokaaleja (y, ä ja ö) yhdellä egrep-käskyllä. (Tarvittaneen |-merkkiä..) (Vrt. edellisten harjoitusten ensimmäinen tehtävä.)

  5. a) Laadi egrep-käsky, joka poimii rivit joilla on korkeintaan kolme sanetta

    b) Laadi egrep-käsky, joka poimii rivit joilla on enemmän kuin kolme sanetta

    Sane tulkitaan taas välilyönnein erotetuksi miksi tahansa merkkijonoksi. Ja todettakoon, että erästä komennon optiota hyödyntämällä selviää puolet vähemmällä. (Kumpikaan tapa ei ole ihan triviaali, joten optiosta huolimatta tämä on tämän kerran vaikein tehtävä.) Egrep-komennon -v optio voi olla taas hyödyllinen...

  6. Laadi shell-skripti, joka saa komentoriviltä argumentteinaan nollasta n:ään tiedostotonnimeä ja tekee frekvenssilistan ko. tiedostojen sisältämistä saneista. (Ks. $*) Whitespace-merkein erotetut saneet pitää jakaa omille riveilleen, mutta välimerkkejä ei tatvitse poistaa. (Unix-kertausta: Varmista, että osaat antaa skriptillesi tarvittavat suoritusoikeudet.)