CLT131 Korpusten käsittely

Samankaltaiset tiedostot
Korpusten käsittely clt131, P Luento 3

Ctl160 Tekstikorpusten tietojenkäsittely

Ctl160 Tekstikorpusten tietojenkäsittely p.1/24

Korpusten käsittely clt131, P Luento 5

Korpusten käsittely clt131, P Luento 1

Ctl160 Tekstikorpusten tietojenkäsittely p.1/28

Korpusten käsittely clt131, P Luento 4

CLT131 Korpusten käsittely (3op)

CLT131: Tekstityökalut 2011, toinen luento

Kieliteknologian ATK-ympäristö Neljäs luento

Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento,

Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento

CLT131: Tekstityökalut 2011, viides luento

Korpusten käsittely clt131, P Luento 6

Ctl160 Tekstikorpusten tietojenkäsittely p.1/15

1.1 Tekstinprosessointiohjelmien yleinen toimintatapa (1)

CLT131 Korpusten käsittely Viides luento

CLT131: Tekstityökalut 2010, neljäs luento

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

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

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

CLT131: Tekstityökalut 2010, toinen luento

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

CLT131: Tekstityökalut 2011, kuudes luento

Kieliteknologian ATK-ympäristö Viides luento

Kieliteknologian ATK-ympäristö Viides luento

Zeon PDF Driver Trial

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

Ohjelmoinnin perusteet Y Python

Luento 5. Timo Savola. 28. huhtikuuta 2006

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

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

CLT131: Tekstityökalut 2012, kymmenes luento

CLT131: Tekstityökalut 2010, kuudes luento

CLT131: Tekstityökalut 2011, kahdeksas luento

Hannu Mäkiö. kertolasku * jakolasku / potenssiin korotus ^ Syöte Geogebran vastaus

CLT131: Tekstityökalut 2010, kolmas luento

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

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

S: siirtää listan ensimmäisen luvun viimeiseksi V: vaihtaa keskenään listan kaksi ensimmäistä lukua

Ohjelmoinnin perusteet Y Python

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

Johdatus Ohjelmointiin

Luento 4. Timo Savola. 21. huhtikuuta 2006

Java-kielen perusteet

7. Näytölle tulostaminen 7.1

Kaulaketju. Syöte. Tuloste. Esimerkki 1. Esimerkki 2

Python-ohjelmointi Harjoitus 2

TAMPEREEN TEKNILLINEN YLIOPISTO

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

Java-kielen perusteet

Ohjelmoinnin perusteet Y Python

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012

Harjoitus 4 -- Ratkaisut

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

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

Tekstinkäsittelyn jatko KSAO Liiketalous 1. Osanvaihto näkyy näytöllä vaakasuorana kaksoispisteviivarivinä ja keskellä riviä lukee osanvaihdon tyyppi

Sangen lyhyt L A T E X-johdatus

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

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Hellä ensikosketus. Tomi Kiviniemi

TAMPEREEN TEKNILLINEN YLIOPISTO

SELECT-lauseen perusmuoto

c : \tarva\osmuutos\ osmu 95hanke.dat

Tekstinkäsittely 1. Peruskäyttö. Tietotekniikan perusteet Metropolia Ammattikorkeakoulu Vesa Ollikainen

ITKP102 Ohjelmointi 1 (6 op)

Python-ohjelmointi Harjoitus 5

Perusohje vi-editorin käyttöön

Datatähti 2019 loppu

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Komentotulkki. Kysymyksiä

Ohjelmoinnin perusteet Y Python

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmoinnin perusteet Y Python

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

Ohjelmoinnin peruskurssi Y1

Kieliteknologian ATK-ympäristö Kuudes luento

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

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Merkkijonon tutkiminen matches-metodilla

Harjoitus 10: Mathematica

Pauliina Munter/Suvi Junes Tampereen yliopisto / Tietohallinto Valitse muokkaustila päälle kurssialueen etusivun oikean yläkulman painikkeesta.

Ohjelmoinnin perusteet Y Python

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

SQL:N PERUSTEET MARKKU SUNI

linux: Ympäristömuuttujat

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

Hannu Valtanen Oy. Linux vi-editori

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

Valokuvien matematiikkaa

Ohje tutkielman tekemiseen

CLT131: Tekstityökalut 2011, seitsemäs luento

Työvälineohjelmistot KSAO Liiketalous 1

Subversion-ohje. Linux Traffic Control-käyttöliittymä Ryhmä paketti2

jäsentäminen TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 26. marraskuuta 2015 TIETOTEKNIIKAN LAITOS

Sangen lyhyt L A T E X-johdatus

Säännölliset kielet. Sisällys. Säännölliset kielet. Säännölliset operaattorit. Säännölliset kielet

Numeropelissä 3x3-ruudukko sisältää luvut 1, 2,, 9. Tehtäväsi on järjestää ruudukko näin:

Metropolia ammattikorkeakoulu TI00AA : Ohjelmointi Kotitehtävät 3

Ohjelmoinnin perusteet Y Python

Transkriptio:

CLT131 Korpusten käsittely Nicholas Volk Yleisen kielitieteen laitos, Helsingin yliopisto CLT131 Korpusten käsittely p.1/16

Syöterivien järjestäminen (sort) sort-komento järjestää syöterivin (aakkosjärjestykseen) Alla olevan esimerkin perl-komennon tulostaa numerot 11, 5 ja 30 omille riveilleen. Perl-komentoa ei tarvitse ymmärtää. $ perl -e print "11\n5\n30\n"; 11 5 30 $ perl -e print "11\n5\n30\n"; sort 11 30 5 $ Eli normaalisti sort järjestää numeerisen syötteen ensimmäisen merkin mukaan. CLT131 Korpusten käsittely Nicholas Volk p.2/16

Numeerinen järjestäminen (sort -n) sort-komennon option -n avulla peräkkäiset numeromerkit käsitetään samaan lukuun kuuluviksi: $ perl -e print "11\n5\n30\n"; sort -n 5 11 30 $ Eli normaalisti sort järjestää numeerisen syötteen ensimmäisen merkin mukaan. CLT131 Korpusten käsittely Nicholas Volk p.3/16

Käänteinen järjestäminen (sort -nr) sort-komennon option -r tulostus tulee käänteisessä järjestyksessä Eli aakkosilla z tulee ennen a :ta ja numeroilla 9 ennen 1 :tä Yhdistämällä -n ja -r saadaan siis suurin luku ensin $ perl -e print "11\n5\n30\n"; sort -nr 30 11 5 $ CLT131 Korpusten käsittely Nicholas Volk p.4/16

Duplikaattien poisto (uniq) Komento uniq tulostaa peräkkäisistä identtisistä merkkijonoista duplikaatit: $ perl -e print "a\nb\na\n"; uniq a b a $ perl -e print "a\na\nb\n"; uniq a b $ Eli järjestetään ensin: $ perl -e print "a\nb\na\n"; sort uniq a b $ CLT131 Korpusten käsittely Nicholas Volk p.5/16

Duplikaattien määrä (uniq -c) uniq-komennon optio -c kertoo peräkkäisten duplikaattien määrän: $ perl -e print "a\nb\na\n"; sort uniq a b $ perl -e print "a\nb\na\n"; sort uniq -c 2 a 1 b $ Yllä esitettyjä ja edellisellä kerralla tavattuja komentoja käyttämällä voi tehdä frekvenssilistan......joka on tämän kurssin tärkein asia säännölisten lausekkeiden ohella! CLT131 Korpusten käsittely Nicholas Volk p.6/16

Frekvenssilistaa (1) Komennolla tr \n sai sanat omat rivilleen. Komennolla sort saadaan nämä aakkosjärjestykseen. Komento head tulostaa oletusarvoisesti 10 ensimmäistä riviä syötteestään. $ tr -s \n < yhdestoista.txt sort head "Enkä "Suotta Ahti Ahti Ahtia En Inkerelle, Inkereltä: Kaloin Kasvoi CLT131 Korpusten käsittely Nicholas Volk p.7/16

Frekvenssilistaa (2) Komento uniq tulostaa peräkkäisistä identtisistä merkkijonoista duplikaatit. Sen option c avulla saa laskettua sananmuodon peräkkäisten esiintymien määrän: $ tr -s \n < yhdestoista.txt sort uniq -c head 1 "Enkä 1 "Suotta 2 Ahti 1 Ahtia 1 En 1 Inkerelle, 1 Inkereltä: 1 Kaloin 1 Kasvoi 1 Kauan CLT131 Korpusten käsittely Nicholas Volk p.8/16

Frekvenssilistaa (3) sort-komennon r-optio (reverse) järjestää syötteen käänteiseen järjestykseen (z tulee ennen a:ta). n-optio tulkitsee peräkkäiset numerot yhdeksi luvuksi. Nämä yhdistämällä saadaan numerot järjestettyä frekvenssilistaan, yleisin ensin: $ tr -s \n < yhdestoista.txt sort uniq -c sort -nr head 8 on 5 nälkä, 4 eip 4 Saaren 3 poiallehen: 3 mennyt 3 luona 3 Viron 3 Kosi CLT131 Korpusten käsittely Nicholas Volk p.9/16

Valmiihko frekvenssilista Komentorivillä voi luettavuuden parantamiseksi vaihtaa riviä kirjoittamalla kenoviivan \ ja rivinvaihdon peräkkäin Välimerkit tms. saattavat vääristää tulosta, joten otetaan ne pois (siis ennen järjestämistä ja laskemista): $ tr -s \n < yhdestoista.txt tr -dc A-Za-zäöÄÖ \n \ sort uniq -c sort -nr head 8 on 7 nälkä 4 eip 4 Saaren 3 poiallehen 3 neiti 3 mennyt 3 lähe 3 luona 3 kasvoi CLT131 Korpusten käsittely Nicholas Volk p.10/16

Merkkijonon poimiminen syötteestä (fgrep) fgrep (eli grep -F) on grep-perheen kuvausvoimaltaan heikoin lenkki. Komennolla saa poimittua haluttuja merkkijonoja syötteestä. Löydettyä riviä kutsutaan osumaksi. Etsitty merkkijono annetaan ensimmäisenä argumenttina: $ fgrep neiti yhdestoista.txt Kylli oli Saaren neiti, Saaren neiti, Saaren kukka. eip on neiti mennytkänä; itse vasten vastaeli: CLT131 Korpusten käsittely Nicholas Volk p.11/16

Täydellinen osuma (fgrep -x) Optio x tarkoittaa, että "osuma" kattaa koko rivin: $ tr \n < yhdestoista.txt fgrep neiti neiti, neiti, neiti $ tr \n < yhdestoista.txt fgrep -x neiti neiti $ CLT131 Korpusten käsittely Nicholas Volk p.12/16

fgrep -i i-valitsin ei tee eroa ison ja pienen kirjaimen välille. Muiden kuin välillä a-z olevien kirjainten (mm. ääkköset) toiminnan varaan ei kannata laskea. Maakohtaiset asetukset (locale) eivät välttämättä ole kohdallaan... uniq-komennolla on samanniminen vastaava optio. sort-komennolla on f-optio, joka ajaa saman asian. $ tr \n < yhdestoista.txt fgrep -xi "en" En en $ tr \n < yhdestoista.txt fgrep -x "en" en $ CLT131 Korpusten käsittely Nicholas Volk p.13/16

Ympäröivien rivien mukaanotto Optio B n kertoo montako osumaa edeltänyttä riviä halutaan tulostaa A n tekee saman sanan jälkeen tuleville: $ tr -s \n < yhdestoista.txt fgrep -B2 -A2 -x tuli kelpoavi; vaan tuli vähän vialle, -- kuului: kaukoa tuli kosijat neien CLT131 Korpusten käsittely Nicholas Volk p.14/16

Alkeellinen korkordanssi Jo opittuja komentoja yhdistelemällä voi rakentaa alkeellisen konkordanssin: $ tr -s \n < yhdestoista.txt fgrep -B2 -A2 -x on tr -s \n tr -s - \n runo Vika on Ahtia sanoa, Saarelainen, tuo on lieto Lemmin poiallehen: eip on mennyt Päivälähän poiallehen: eip on mennyt Kuutolahan poiallehen: eip on mennyt Tähtelähän Inkereltä: eip on neiti mennytkänä; pänkerelle; siell on nälkä, kaiken nälkä." Tuop on lieto Lemminkäinen, $ Huomaa promptin paikka! Miksi se on samalla rivillä? CLT131 Korpusten käsittely Nicholas Volk p.15/16

fgrep-komennon rajoitteet fgrep pystyy poimimaan halutun merkkijonon, mutta voidaan haluta muutakin kun etukäteen määriteltyjä merkkijonoja: Merkkijonot, joiden pituus on n-m merkkiä Tuntemattoman merkkijonon metsästys: as X as Suomen kielen tavurakenteen mukaiset sanat Sanat, joissa on takavokaaleja... Näiden ongelmien ratkaisuun voidaan käyttää säännöllisiä lausekkeita... CLT131 Korpusten käsittely Nicholas Volk p.16/16