CLT131: Tekstityökalut 2010, neljäs luento

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

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

CLT131: Tekstityökalut 2010, kolmas luento

CLT131: Tekstityökalut 2011, kuudes luento

CLT131: Tekstityökalut 2011, viides luento

CLT131: Tekstityökalut 2011, seitsemäs luento

CLT131: Tekstityökalut 2010, kuudes luento

CLT131: Tekstityökalut 2010, toinen luento

CLT131: Tekstityökalut 2011, kahdeksas luento

CLT131: Tekstityökalut 2011, toinen luento

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

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

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

Korpusten käsittely clt131, P Luento 5

Luento 5. Timo Savola. 28. huhtikuuta 2006

CLT131: Tekstityökalut 2012, kymmenes luento

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

Kieliteknologian ATK-ympäristö Neljäs luento

Kieliteknologian ATK-ympäristö Kuudes luento

CLT131 Korpusten käsittely

Korpusten käsittely clt131, P Luento 3

Korpusten käsittely clt131, P Luento 4

Ohjelmoinnin perusteet Y Python

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

Ohjelmoinnin perusteet Y Python

Kieliteknologian ATK-ympäristö Viides luento

Ctl160 Tekstikorpusten tietojenkäsittely p.1/28

Hieman linkkejä: lyhyt ohje komentoriviohjelmointiin.

Kieliteknologian ATK-ympäristö Viides luento

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

CLT131: Tekstityökalut 2010, ensimmäinen luento

Ctl160 Tekstikorpusten tietojenkäsittely

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

Ctl160 Tekstikorpusten tietojenkäsittely p.1/15

Ctl160 Tekstikorpusten tietojenkäsittely p.1/24

Korpusten käsittely clt131, P Luento 1

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Python-ohjelmointi Harjoitus 2

Java-kielen perusteita

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta Toteuta Pythonilla seuraava ohjelma:

Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

Ohjelmoinnin perusteet Y Python

811120P Diskreetit rakenteet

Ohjelmoinnin perusteet Y Python

Python-ohjelmointi Harjoitus 5

815338A Ohjelmointikielten periaatteet Harjoitus 7 Vastaukset

Ohjelmoinnin perusteet Y Python

Korpusten käsittely clt131, P Luento 6

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

1.1 Tekstinprosessointiohjelmien yleinen toimintatapa (1)

Johdatus Ohjelmointiin

13. Hyvä ohjelmointitapa (osa 1) 13.1

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

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Komentotulkki. Kysymyksiä

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

Luento 3. Timo Savola. 7. huhtikuuta 2006

13. Loogiset operaatiot 13.1

Ohjelmoinnin perusteet Y Python

AS C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

Ohjelmoinnin peruskurssi Y1

Muistutus aikatauluista

Ohjelmoinnin peruskurssi Y1

Genetiivi vastaa kysymykseen kenen, minkä. Yksikössä genetiivin tunnus on -n (koulun, opettajan, kirjan). Nyt opiskelemme monikon genetiivin.

Tutoriaaliläsnäoloista

Ohjelmoinnin perusteet Y Python

ITKP102 Ohjelmointi 1 (6 op)

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

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

CLT131 Korpusten käsittely (3op)

Ohjelmoinnin perusteet Y Python

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

Ohjelmoinnin perusteet Y Python

Harjoitus 4 -- Ratkaisut

MITÄ JAVASCRIPT ON?...3

2 Konekieli, aliohjelmat, keskeytykset

811120P Diskreetit rakenteet

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Luento 4. Timo Savola. 21. huhtikuuta 2006

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)

Ohjelmoinnin perusteet Y Python

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

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento,

Transkriptio:

CLT131: Tekstityökalut 2010, neljäs luento Tommi A Pirinen tommi.pirinen@helsinki.fi Helsingin yliopisto Kieliteknologian oppiaine, Nykykielten laitos 2010-11-26

Asialista Käytännön asiat Kertausta shelliskriptien ohjausrakenteista ja palautusarvoista Ongelman kertaus Menetelmät ja aineistot Työkalut Viitteitä

Lähiaikataulu ensi viikon luennoilla Hissu Mikkonen kertoo tekstityökaluista oikeassa kieliteknologiaprojektissa ensi viikosta ei tule harjoitustehtäviä, mutta sisältänee hyödyllisiä yksityiskohtia harjoitustyötä varten harjoitustyöstä on koottu jotain ohjeita verkkosivuille http://www.ling.helsinki.fi/kit/2010s/ clt131/priv/harjoitustyo.shtml harjoitukset 3 4 ovat verkkosivuilla nyt http://www.ling.helsinki.fi/kit/2010s/ clt131/priv/harjoitukset4.shtml

Asialista Käytännön asiat Kertausta shelliskriptien ohjausrakenteista ja palautusarvoista Ongelman kertaus Menetelmät ja aineistot Työkalut Viitteitä

Shelliskriptien palautusarvot ja ehtorakenne käsitelty myös ainakin tämän vuoden CLT130:ssä lisätietoja niistä aineistoista

Shelliskriptien palautusarvot ja ehtorakenne käsitelty myös ainakin tämän vuoden CLT130:ssä lisätietoja niistä aineistoista kaikilla shell-komennoilla on palautus-arvo, joka tallentuu kunkin komennon jälkeen muuttujaan nimeltä $?: komennot false ja true ovat peruskomentoja jotka palauttavat aina onnistui- tai epäonnistui-arvon vastaavasti

Shelliskriptien palautusarvot ja ehtorakenne käsitelty myös ainakin tämän vuoden CLT130:ssä lisätietoja niistä aineistoista kaikilla shell-komennoilla on palautus-arvo, joka tallentuu kunkin komennon jälkeen muuttujaan nimeltä $?: komennot false ja true ovat peruskomentoja jotka palauttavat aina onnistui- tai epäonnistui-arvon vastaavasti muita mahdollisia arvoja on paljon; kaikki paitsi 0 epäonnistuvat (useat suuremmat arvot kriittisiä virheitä)

Shelliskriptien palautusarvot ja ehtorakenne käsitelty myös ainakin tämän vuoden CLT130:ssä lisätietoja niistä aineistoista kaikilla shell-komennoilla on palautus-arvo, joka tallentuu kunkin komennon jälkeen muuttujaan nimeltä $?: komennot false ja true ovat peruskomentoja jotka palauttavat aina onnistui- tai epäonnistui-arvon vastaavasti muita mahdollisia arvoja on paljon; kaikki paitsi 0 epäonnistuvat (useat suuremmat arvot kriittisiä virheitä) suorituksen onnistumista voi testata if-komennolla, joka pelkistetymmillään testaa komennon onnistumista: true, false, echo $? if true ; then echo Totta ; fi if! false ; then echo Ei aivan epätotta ; fi

Shelliskriptien palautusarvot ja testaus putkitetulla skriptillä palautusarvo ei kerro toimivatko kaikki ohjelmat joissain tapauksissa tämän korvaa taulukkomuuttuja $PIPESTATUS taulukosta saa arvoja hakasulkeilla: $PIPESTATUS[0] on ensimmäisen komennon palautusarvo, $PIPESTATUS[1] toisen jne.

Shelliskriptien palautusarvot ja testaus putkitetulla skriptillä palautusarvo ei kerro toimivatko kaikki ohjelmat joissain tapauksissa tämän korvaa taulukkomuuttuja $PIPESTATUS taulukosta saa arvoja hakasulkeilla: $PIPESTATUS[0] on ensimmäisen komennon palautusarvo, $PIPESTATUS[1] toisen jne. muuttujia (kuten $PIPESTATUSta) ja monimutkaisia lausekkeitahan ymmärretään komennolla test; -eq testaa palautusarvojen tai muiden lukujen yhtäläisyyttä (ei = tai ==): false true, echo $PIPESTATUS if test $PIPESTATUS[0] -eq 1 ; then echo eka väärin ; fi

Shelliskriptien taulukot ja toistorakenteet koko taulukon saa merkkijonona bashissa indeksillä *: ${PIPESTATUS[*]} merkkijonoja test taas voi testata yhtäsuuruusmerkillä: false true false, echo $PIPESTATUS[ *] if test ${PIPESTATUS[ *]} = 1 0 1 ; then echo Täsmäsi ; fi

Shelliskriptien taulukot ja toistorakenteet koko taulukon saa merkkijonona bashissa indeksillä *: ${PIPESTATUS[*]} merkkijonoja test taas voi testata yhtäsuuruusmerkillä: false true false, echo $PIPESTATUS[ *] if test ${PIPESTATUS[ *]} = 1 0 1 ; then echo Täsmäsi ; fi koko PIPESTATUS-rakenteesta onnnistumisten ja epäonnistumisten haun voi tehdä yksi kerrallaan tai valikoidulle grep-haulla shell-ohjelmoinnissa on myös mahdollisuus käydä läpi taulukoita ja listoja toistolausekkeella for muuttuja in lista koko taulukon muuttujana saa indeksillä @: for status in ${PIPESTATUS[@]} ; do... for vokaali in a e i o u y ä ö ; do echo $vokaali on vokaali ; done

Asialista Käytännön asiat Kertausta shelliskriptien ohjausrakenteista ja palautusarvoista Ongelman kertaus Menetelmät ja aineistot Työkalut Viitteitä

Tutkimusongelma: Etunimien automatisoitu keruu aineistosta Tehtäväkuvaus: halutaan kerätä etunimiä sanaston laajentamiseksi käyttämällä kirjallisuusaineistoa Lähtökohdat: gutenbergin laaja kirja-aineisto perustekstityökalut ja hakumenetelmät morfologinen analysaattori? Ongelma: mikä määrittää sanan etunimeksi (Named entity recognition) millaisissa yhteyksissä etunimiä käytetään miten saadaan nimistä perusmuoto? Tiedetään, että morfologinen analysaattorimme ei osaa perusmuotoista nimiä, joita ei ole sanastossa juuri niitä mitä etsimme!

Asialista Käytännön asiat Kertausta shelliskriptien ohjausrakenteista ja palautusarvoista Ongelman kertaus Menetelmät ja aineistot Työkalut Viitteitä

Säännöllisten lausekkeet ja hakutulosten operointi: sed sedillä täsmätään säännöllisiin lausekkeisiin ja tehdään täsmätylle osalle muunnoksia sed on kuten tr, joka yhden merkin sijasta käsittelee säännöllisiä ilmauksia sedin komentokielessä on paljon muutakin toiminnallisuutta, kurssilla käytetään lähinnä korvaus- ja poistokomentoja

Säännöllisten lausekkeet ja hakutulosten operointi: sed sedillä täsmätään säännöllisiin lausekkeisiin ja tehdään täsmätylle osalle muunnoksia sed on kuten tr, joka yhden merkin sijasta käsittelee säännöllisiä ilmauksia sedin komentokielessä on paljon muutakin toiminnallisuutta, kurssilla käytetään lähinnä korvaus- ja poistokomentoja säännöllisten lausekkeiden murteissa sed -r vastaa egrepiä ja pelkkä sed vastaa grepiä; käytämme lähinnä aiempia sedin käskyt annetaan valitsimella -e käsky, näitä voi olla useampia (yhden tapauksessa -e ei ole pakollinen, mutta välttää kirjoitusvirheitä paremmin)

sed: korvaus korvauskäskyn muoto on s/lauseke/korvaus/asetukset: lauseke on tavan säännöllinen lauseke korvaus on korvaava merkkijono; korvausosa ei ole säännöllinen lauseke, mutta voi sisältää joitain erikoismerkkejä asetukset koostuu kirjaimista: olennaisia ovat g, joka toistaa korvauksen monta kertaa per rivi (oletuksena vain kerran) ja i jonka tarkoitus on käsitellä isoja ja pieniä kirjaimia yhtäläisinä

sed: korvaus korvauskäskyn muoto on s/lauseke/korvaus/asetukset: lauseke on tavan säännöllinen lauseke korvaus on korvaava merkkijono; korvausosa ei ole säännöllinen lauseke, mutta voi sisältää joitain erikoismerkkejä asetukset koostuu kirjaimista: olennaisia ovat g, joka toistaa korvauksen monta kertaa per rivi (oletuksena vain kerran) ja i jonka tarkoitus on käsitellä isoja ja pieniä kirjaimia yhtäläisinä esim. tr \n = sed -r -e s/ /\n/g esim. tr -d [:punct:] = sed -r -e s/[[:punct:]]//g

sed: toisto ja järjestely sed-lausekkeen rakenne oli siis s/lauseke/korvaus/asetuket: korvausosassa & kopioi täsmäyksen kahdennetaan merkkejä: sed -r -e s/./&&/g

sed: toisto ja järjestely sed-lausekkeen rakenne oli siis s/lauseke/korvaus/asetuket: korvausosassa & kopioi täsmäyksen kahdennetaan merkkejä: sed -r -e s/./&&/g yleisesti \n, jossa n = 0 9, kopioi valitun osan lausekkeesta; valinta 0 on aina kaikki, eli sama kuin & valinnat 1 9 voi tehdä kaarisulkeilla

sed: toisto ja järjestely sed-lausekkeen rakenne oli siis s/lauseke/korvaus/asetuket: korvausosassa & kopioi täsmäyksen kahdennetaan merkkejä: sed -r -e s/./&&/g yleisesti \n, jossa n = 0 9, kopioi valitun osan lausekkeesta; valinta 0 on aina kaikki, eli sama kuin & valinnat 1 9 voi tehdä kaarisulkeilla järjestellään kirjainkolmikoita uudelleen (salakirjoitetaan): sed -r -e s/(.)(.)(.)/\3\2\1/g

sed: toisto ja järjestely sed-lausekkeen rakenne oli siis s/lauseke/korvaus/asetuket: korvausosassa & kopioi täsmäyksen kahdennetaan merkkejä: sed -r -e s/./&&/g yleisesti \n, jossa n = 0 9, kopioi valitun osan lausekkeesta; valinta 0 on aina kaikki, eli sama kuin & valinnat 1 9 voi tehdä kaarisulkeilla järjestellään kirjainkolmikoita uudelleen (salakirjoitetaan): sed -r -e s/(.)(.)(.)/\3\2\1/g etsitään punaisia olioita: fgrep punainen sed -e s/punainen ([[:alpha:]]*)/\1/

sed: toisto ja järjestely sed-lausekkeen rakenne oli siis s/lauseke/korvaus/asetuket: korvausosassa & kopioi täsmäyksen kahdennetaan merkkejä: sed -r -e s/./&&/g yleisesti \n, jossa n = 0 9, kopioi valitun osan lausekkeesta; valinta 0 on aina kaikki, eli sama kuin & valinnat 1 9 voi tehdä kaarisulkeilla järjestellään kirjainkolmikoita uudelleen (salakirjoitetaan): sed -r -e s/(.)(.)(.)/\3\2\1/g etsitään punaisia olioita: fgrep punainen sed -e s/punainen ([[:alpha:]]*)/\1/ tutkitaan ekvatiivilauseiden argumentteja eli kollokaatteja: sed -r -e s/([[:alpha:]]*) on ([[:alpha:]]*)/\1,\2/

Lisätieto: sed ja morfologia on täysin mahdollista toteuttaa koko taivutusoppi sed-käskyillä esimerkki: vesi: vesi veden vettä veteen vedet vesien, vetten vesiä vesiin

Lisätieto: sed ja morfologia on täysin mahdollista toteuttaa koko taivutusoppi sed-käskyillä esimerkki: vesi: vesi veden vettä veteen vedet vesien, vetten vesiä vesiin vartalovaihtelu on helppoja sed-muunnoksia; saadaan aikaan taivutusvartalot vartalovaihtelukoskee lopputavua: $ on hyödyksi: heikko vokaalivartalo sed -r -e s/si$/de/ konsonanttivartalo sed -r -e s/si$/t/ vahva vokaalivartalo sed -r -e s/si$/te/ monikkovartalo sed -r -e s/si$/s/

Lisätieto: sed ja morfologia on täysin mahdollista toteuttaa koko taivutusoppi sed-käskyillä esimerkki: vesi: vesi veden vettä veteen vedet vesien, vetten vesiä vesiin vartalovaihtelu on helppoja sed-muunnoksia; saadaan aikaan taivutusvartalot suffiksit liittyvät taivutusvartaloihin vielä helpommilla sed-kuvauksilla vartalovaihtelukoskee lopputavua: $ on hyödyksi: yksikön genetiivi sed -r -e s/si$/de/ -e s/$/n/ yksikön partitiivi sed -r -e s/si$/t/ -e s/$/tä/ yksikön illatiivi sed -r -e s/si$/te/ -e s/(.)$/\1\1n/ monikon partitiivi sed -r -e s/si$/s/ -e s/$/iä/

Lisätieto: sed ja morfologia on täysin mahdollista toteuttaa koko taivutusoppi sed-käskyillä esimerkki: vesi: vesi veden vettä veteen vedet vesien, vetten vesiä vesiin vartalovaihtelu on helppoja sed-muunnoksia; saadaan aikaan taivutusvartalot suffiksit liittyvät taivutusvartaloihin vielä helpommilla sed-kuvauksilla vartalovaihtelukoskee lopputavua: $ on hyödyksi: sed -r -e s/si$/de/ -e s/$/n/ sed -r -e s/si$/t/ -e s/$/tä/ sed -r -e s/si$/te/ -e s/(.)$/\1\1n/ sed -r -e s/si$/s/ -e s/$/iä/ puuttuu: vokaaliharmonia ja astevaihtelu, sekä samanlaiset

Lisätieto: Säännölliset lausekkeet ja ohjelmointi: awk ohjelmointikieli, joka suorittaa käskyjä riveille, jotka täsmäävät säännölliseen lausekkeeseen tai muuhun ehtoon awk käsittelee riviä numeroituna joukkona saneita, joka on usein hyvä lähtökohta käsittelylle

Lisätieto: Säännölliset lausekkeet ja ohjelmointi: awk ohjelmointikieli, joka suorittaa käskyjä riveille, jotka täsmäävät säännölliseen lausekkeeseen tai muuhun ehtoon awk käsittelee riviä numeroituna joukkona saneita, joka on usein hyvä lähtökohta käsittelylle awkin komentojen muoto on ehto {komennot}: ehto joka koostuu säännöllisestä lausekkeestaa merkitään vinoviivoin komentoja on paljon: esim. print, printf tulostamiseen

Lisätieto: Säännölliset lausekkeet ja ohjelmointi: awk ohjelmointikieli, joka suorittaa käskyjä riveille, jotka täsmäävät säännölliseen lausekkeeseen tai muuhun ehtoon awk käsittelee riviä numeroituna joukkona saneita, joka on usein hyvä lähtökohta käsittelylle awkin komentojen muoto on ehto {komennot}: ehto joka koostuu säännöllisestä lausekkeestaa merkitään vinoviivoin komentoja on paljon: esim. print, printf tulostamiseen $n, jossa n kokonaisluku, viittaa saneen numeroon sanenumeroa voi käyttää hyödyksi ehdossa ja täsmätä säännöllistä lausekketta vain n:nteen saneeseen sanenumeroja voi käyttää hyväksi print-komennolla, ja tulostaa vain valitut saneet

Lisätieto: Säännölliset lausekkeet ja ohjelmointi: awk ohjelmointikieli, joka suorittaa käskyjä riveille, jotka täsmäävät säännölliseen lausekkeeseen tai muuhun ehtoon awk käsittelee riviä numeroituna joukkona saneita, joka on usein hyvä lähtökohta käsittelylle awkin komentojen muoto on ehto {komennot}: ehto joka koostuu säännöllisestä lausekkeestaa merkitään vinoviivoin komentoja on paljon: esim. print, printf tulostamiseen $n, jossa n kokonaisluku, viittaa saneen numeroon sanenumeroa voi käyttää hyödyksi ehdossa ja täsmätä säännöllistä lausekketta vain n:nteen saneeseen sanenumeroja voi käyttää hyväksi print-komennolla, ja tulostaa vain valitut saneet kokeillaan: egrep punainen = awk /punainen/ {print} 3. sane ehdossa awk $3 /punainen/ {print} ekvatiivit: awk /ˆ[[:alpha:]]* on [[:alpha:]]*$/ print $3, ",", $1

Asialista Käytännön asiat Kertausta shelliskriptien ohjausrakenteista ja palautusarvoista Ongelman kertaus Menetelmät ja aineistot Työkalut Viitteitä

Työsuunnitelma Jatketaan siitä mihin jäätiin: 1. haettiin kirja gutenbergistä hipulle: wget http://www.gutenberg.org/cache/epub/12379/pg1237 2. (uudelleennimettiin järkevämmin (mv pg12379.txt ylosnousemus.txt)) 3. korjattiin rivinvaihdot (dos2unix ylosnousemus.txt) 4. hankiuduttiin eroon englanninkielisistä osioista (tail -n +28 ylosnousemus.txt head -n -400 > ylosnousemus-siistitty.txt) 5. haettiin nimet (egrep -o \b(sanoi epäili kuuli) [[:upper:]][[:lower:]]*)

Työsuunnitelma 1. haettiin kirja gutenbergistä hipulle: wget http://www.gutenberg.org/cache/epub/12379/pg1237 2. (uudelleennimettiin järkevämmin (mv pg12379.txt ylosnousemus.txt)) 3. korjattiin rivinvaihdot (dos2unix ylosnousemus.txt) 4. hankiuduttiin eroon englanninkielisistä osioista (tail -n +28 ylosnousemus.txt head -n -400 > ylosnousemus-siistitty.txt) 5. haettiin nimet (egrep -o \b(sanoi epäili kuuli) [[:upper:]][[:lower:]]*) 6. enää pitää poimia nimet jo melkein valmiista listasta ( sed)

Työsuunnitelma 1. haettiin kirja gutenbergistä hipulle: wget http://www.gutenberg.org/cache/epub/12379/pg1237 2. (uudelleennimettiin järkevämmin (mv pg12379.txt ylosnousemus.txt)) 3. korjattiin rivinvaihdot (dos2unix ylosnousemus.txt) 4. hankiuduttiin eroon englanninkielisistä osioista (tail -n +28 ylosnousemus.txt head -n -400 > ylosnousemus-siistitty.txt) 5. haettiin nimet (egrep -o \b(sanoi epäili kuuli) [[:upper:]][[:lower:]]*) 6. enää pitää poimia nimet jo melkein valmiista listasta ( sed) 7. helpotetaan käsittelyä järjestelemällä frekvenssin mukaan ( sort, uniq)

Työsuunnitelma 1. haettiin kirja gutenbergistä hipulle: wget http://www.gutenberg.org/cache/epub/12379/pg1237 2. (uudelleennimettiin järkevämmin (mv pg12379.txt ylosnousemus.txt)) 3. korjattiin rivinvaihdot (dos2unix ylosnousemus.txt) 4. hankiuduttiin eroon englanninkielisistä osioista (tail -n +28 ylosnousemus.txt head -n -400 > ylosnousemus-siistitty.txt) 5. haettiin nimet (egrep -o \b(sanoi epäili kuuli) [[:upper:]][[:lower:]]*) 6. enää pitää poimia nimet jo melkein valmiista listasta ( sed) 7. helpotetaan käsittelyä järjestelemällä frekvenssin mukaan ( sort, uniq) 8. viimeistellään tekemällä nimistä sanakirjaluokituksia eli arvaamalla taivutusluokkia ( sed tai awk)

Poistetaan verbit nimien ympäriltä laajennetaan nimilistaa hieman sallimalla nimi verbin kummaksi tahansa kollokaatiksi (viereiseksi saneeksi): egrep -o \b([[:upper:]][[:lower:]] * (sanoi epäili kuuli)) ((sanoi epäili kuuli) ([[:upper:]][[:lower:]]*)\b)

Poistetaan verbit nimien ympäriltä laajennetaan nimilistaa hieman sallimalla nimi verbin kummaksi tahansa kollokaatiksi (viereiseksi saneeksi): egrep -o \b([[:upper:]][[:lower:]] * (sanoi epäili kuuli)) ((sanoi epäili kuuli) ([[:upper:]][[:lower:]]*)\b) varsinainen nimilista saadaan verbistä ja nimistä koostuvista lausekkeista esim. poistamalla verbit, jotka tässä tapauksessa tunnetaan voidaan käyttää liki samaa säännöllistä lauseketta sedillä kuin grepillä: sed -r -e s/?(sanoi epäili kuuli)?//

Kertausta: frekvenssilistaus käsitelty ainakin tämän vuoden CLT130-kurssilla: työkaluilla sort ja uniq saa frekvenssilistauksia sort järjestää uniq -c laskee ja poistaa toistot sort -nr järjestää frekvenssilistan

Kertausta: frekvenssilistaus käsitelty ainakin tämän vuoden CLT130-kurssilla: työkaluilla sort ja uniq saa frekvenssilistauksia sort järjestää uniq -c laskee ja poistaa toistot sort -nr järjestää frekvenssilistan tällä kertaa emme tee mitään frekvenssilukemilla, joten kehitellään sed-lauseke niiden poistoon: sort uniq -c sort -nr on yksi yleisimpiä käskysarjoja käytettäväksi korpustutkimuksessa sed -r -e s/ˆ *[0-9]* // poistaa frekvenssit awk print $2 lienee hivenen helpompi

Alustava luokittelu suomen sanakirjoissa sanan luokitukseen tarvitaan tietää vartalovaihtelu, joka usein selviää vartalon lopusta

Alustava luokittelu suomen sanakirjoissa sanan luokitukseen tarvitaan tietää vartalovaihtelu, joka usein selviää vartalon lopusta esim. konsonanttiloppuinen Nehljudof taipuu kuten paperi, siis merkitään konsonanttiloppuiset sanat luokkaan 6: sed -r -e /[bcdfghjklmnpqrstvxz]$/&,6/

Alustava luokittelu suomen sanakirjoissa sanan luokitukseen tarvitaan tietää vartalovaihtelu, joka usein selviää vartalon lopusta esim. konsonanttiloppuinen Nehljudof taipuu kuten paperi, siis merkitään konsonanttiloppuiset sanat luokkaan 6: sed -r -e /[bcdfghjklmnpqrstvxz]$/&,6/ Maslova ei taivu kuin Vera: pitää siis keksiä eri lausekkeet arvaamme, että kyse on aata edeltävästä vokaalista: sed -r -e /e.a$/&,9/ -e /o.a$/&,10/

Asialista Käytännön asiat Kertausta shelliskriptien ohjausrakenteista ja palautusarvoista Ongelman kertaus Menetelmät ja aineistot Työkalut Viitteitä

Kirjallisuus ja linkit AWK programming language (978-0201079814)