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

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

Salasanaa kaipaavat: ks. ensimmäiset tehtävät.

  1. Tiedostossa dos.txt on DOS-käyttöjärjestelmässä kirjotettu pätkä tekstiä. Ääkköset tulostuvat tiedostossa väärin (unix-perspektiivistä katsoen). Kirjoita muutoskäskyt, jotka saavat tiedoston näkymään oikein Unix-koneella. Lisää ohjeita itse tiedostossa. Käytä tr:ää tai Perliä, vaikka tuntisitkin dos2unix-käskyn. (Älä leikkaa/liimaa tekstiä selainikkunasta, vaan valitse selaimella File->Save Page As... tms., jos haet tekstin graafisella selaimella! Aiemmin esitettyä lynx-käskyä voi soveltaa tiedoston haussa.)

  2. Reduplikaatiota: Laaditaan perl-käsky(t), joka lukee syötettä STDIN:stä rivi kerrallaan. Jos rivillä on osajono "x2" muutetaan se sitä aiemmin samalla riveillä olleiksi merkeiksi. Esim. "sanax2" muuttuisi muotoon "sanasana". Tee sekä $&-muuttujaa että $1-muuttujaa käyttävä versio.

  3. Taas kertaalleen modifioitu versio klassisesta frekvenssilistassa. (Frekvenssilistan tekokäskyt toivoisin ihmisten muistavan unissaankin kurssin jälkeen.) Tällä kertaa aineistona käytetään palaa Susanne-korpuksesta (sample_from_susanne.txt). Tee frekvenssilista annoitoinnissa käytetyistä sanaluokista (parts-of-speech). Käytä sanaluokkien erottamiseen muusta tekstistä Perliä (vaikka se olisikin cut-komennolla helpompaa). (Sarakkeiden merkitykset löytyvät kalvoista tai sivulta http://www.grsampson.net/SueDoc.html). Mitkä ovat kolme yleisintä sanaluokkakoodia? Mitä arvelet niiden tarkoittavan?

  4. Tiedostossa varas.twol (vaatii salasanan) on aiemmin käytetyn varas.txt-tiedostot sanat ajettu Kimmo Koskenniemen ja Lingsoftin tekemän morfologisen analysaattorin läpi. (Analysaattoria voi kokeilla itse laitoksen venus-palvelimella käskyllä fin-twol tai /usr/local/contrib/bin/fin-twol.) Tee ohjelma joka siirtää saneen morfologiset tulkinnat samalle riville sen kanssa. Huomaa, ettei kaikilla saneilla ole laisinkaan tulkintoja.

  5. Kahden pisteen tehtävä. Tee Shell-skripti, joka konvertoi xml-muotoinen karhu.txt (vaatii salasanan) raakatekstiksi: poista otsake-osa (header) kokonaan, poista kommentit ja tagit sekä sisennysvälilyönnit. (Tämä on kahden tehtävän arvoinen). Skripti saa yhden argumenti, eli syötetiedoston nimen. Aloita skriptisi seuraavilla käskyillä, jotka huolehtivat argumenttien määrästä (ei tarvitse ymmärtää, sen kun käyttää):

      #!/bin/bash
      
      if [ $# != 1 ]; then # argumenttien määrän pitää olla tasan 1
       echo "Usage: $0 xmlfile"
       exit 1
      fi # päättää if-ehdon
      
      cat $1 | # lukee komentorivillä syötetiedoston
      # ... kirjoita omat käskysi tähän perään