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

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

Teemana frekvenssilista. Vastaus koostuu käytetyistä komennoista, tulostusta ei tarvitse palauttaa, ellei sitä erikseen pyydetä.

  1. Komennolla echo $PATH voi tulostaa ne hakemistot, joista komentotulkki yrittää etsiä annettua komentoa. Hakemistoja on monta. Selvitä mikä merkki toimii hakemistojen erottimina. Laadi tämän jälkeen käskypari joka tulostaa muuttujan $PATH sisältämät hakemistot kukin omalla rivillään (eli korvaa erotin rivinvaihtolla).

  2. Montako erilaista sananmuotoa tiedostossa yhdestoista.txt on

    a) kun kirjainkokoa ei normalisoida ja välimerkkejä ei poisteta (eli sananmuodon määritelmää ei noudateta täysin)

    Oikea vastaus on 168. Mutta millä komennoilla tulos saadaan? Jos saat tuloksen 169 selvitä head- ja tail-komentojen avulla mitä ylimääräistä jäi mukaan...

    b) kun kirjainkoot yhtenäistetään ja välimerkit poistetaan

  3. Mikä on tiedoston yhdestoista.txt sort-komennon mukaisessa aakkosjärjestyksessä viimeinen sane

    a) kun kirjainkokoa ei normalisoida ja välimerkkejä ei poisteta (eli sananmuodon määritelmää ei noudateta täysin)

    b) kun kirjainkoot yhtenäistetään ja välimerkit poistetaan

  4. Lisää tämän kerran luentokalvolla 14 ("Osin normalisoitu frekvenssilista") esitettyyn komentojonoon tr-komento, jonka muuttaa isot kirjaimet pieniksi. (yhdestoista.txt)

    Alkuperäinen komentojono on siis:

    tr -s ' ' '\n' < yhdestoista.txt | #sanat omille riveilleen
    tr -dc 'a-zåäöA-ZÅÄÖ\n' | # aakkosiin kuulumattomat pois
    sort | # laitetaan aakkosjärjestykseen
    uniq -c | # lasketaan peräkkäiset duplikaatit
    sort -nr | # järjestetään esiintymien perusteella käänteisesti
    head # otetaan TOP TEN


    Risuaita '#' tarkoittaa muuten kommenttia. Komentotulkki jättää huomioimatta tämän merkin ja sen jälkeen samalla rivillä tulevat merkit.

  5. Sama pelkkien valitsimien avulla: muuta komentojonoa siten, että isot ja pienet kirjaimet käsitetään samanarvoisiksi. Tarkoituksena on siis lisätä yhteen tai useampaan komentoon optio(ita), joiden avulla kirjainkoko jätetään huomioitta.

  6. Tässä vaiheessa osaatte tehdä tiedoston yhdestoista.txt olevista sanoista "sanakirjan" (yhdestoista.words). Käänteisanakirja on puolestaan sanalista, jossa aakkostus tapahtuu saneen lopun perusteella (atsiotsedhy.words). Unixista löytyy näppärä pikkukomento nimeltään rev. Anna komentojono, jolla syötetiedostosta yhdestoista.words saadaan tiedoston atsiotsedhy.words näköinen tulostus. Tarvitset kahta rev-komentoa.