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

Samankaltaiset tiedostot
CLT131: Tekstityökalut 2011, kahdeksas luento

CLT131: Tekstityökalut 2011, seitsemäs luento

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

CLT131: Tekstityökalut 2011, viides luento

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, toinen luento

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

CLT131: Tekstityökalut 2011, toinen luento

CLT131: Tekstityökalut 2010, kolmas luento

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

CLT131: Tekstityökalut 2010, neljäs luento

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

CLT131: Tekstityökalut 2011, kuudes luento

CLT131: Tekstityökalut 2010, kuudes luento

Kieliteknologian ATK-ympäristö Kolmas luento

CLT131: Tekstityökalut 2010, ensimmäinen luento

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

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

Ohjelmoinnin perusteet Y Python

Luento 5. Timo Savola. 28. huhtikuuta 2006

CLT131 Korpusten käsittely

Luento 4. Timo Savola. 21. huhtikuuta 2006

Kieliteknologian ATK-ympäristö Neljäs luento

Ctl160 Tekstikorpusten tietojenkäsittely p.1/15

Kieliteknologian ATK-ympäristö Kuudes luento

Tehtävä 2: Säännölliset lausekkeet

Ohjelmoinnin perusteet Y Python

Kieliteknologian ATK-ympäristö Viides luento

Kieliteknologian ATK-ympäristö Viides luento

Korpusten käsittely clt131, P Luento 5

Ohjelmoinnin perusteet Y Python

Python-ohjelmointi Harjoitus 5

Ohjelma on tarkoitettu pankkiyhteysohjelmalla vastaanotettujen Finvoiceverkkolaskujen

Korpusten käsittely clt131, P Luento 1

SUOMEN PANKKIYHDISTYS

Hieman linkkejä: lyhyt ohje komentoriviohjelmointiin.

PALKKA-AINEISTON SIIRTOTIEDOSTO

Korpusten käsittely clt131, P Luento 6

Korpusten käsittely clt131, P Luento 4

CLT131 Korpusten käsittely Viides luento

Lineaarialgebra ja matriisilaskenta I

Fakta versio Forecast versio

Luento 7 Taulukkolaskennan edistyneempiä piirteitä Aulikki Hyrskykari

Insinöörimatematiikka D

Ohjelmoinnin perusteet, syksy 2006

Aine Määrä % happi hiili vety typpi ,6 kalsium ,4 fosfori 780 1,1

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento

Koodausteoria, Kesä 2014

Ohjelmoinnin perusteet Y Python

linux: Ympäristömuuttujat

CLT255: Tulosten esittäminen ja niiden arviointi tilastomenetelmillä

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

Kohdeyleisö: toisen vuoden teekkari

Numeeriset menetelmät

Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, tentin päiväys, oma nimesi, syntymäaikasi ja nimikirjoituksesi.

TEKSTINKÄSITTELYTEHTÄVIÄ, OSA 1

12. Javan toistorakenteet 12.1

SELECT-lauseen perusmuoto

12. Javan toistorakenteet 12.1

Kääntäjän virheilmoituksia

Komentotulkki. Kysymyksiä

11. Javan toistorakenteet 11.1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Sisällys. 12. Javan toistorakenteet. Yleistä. Laskurimuuttujat

CLT131 Korpusten käsittely (3op)

Harjoitus 1: Matlab. Harjoitus 1: Matlab. Mat Sovelletun matematiikan tietokonetyöt 1. Syksy 2006

Oma nimesi Tehtävä (5)

2.8. Kannanvaihto R n :ssä

Tulorekisteriin liittyvät tilanteet palkanlaskennassa. Visma Fivaldi

Aine Määrä % happi hiili vety typpi ,6 kalsium ,4 fosfori 780 1,1

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

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

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

Visma Business AddOn Tositteiden tuonti. Käsikirja

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

VERKONRAKENNUS JA URAKOINTI TYÖPAJA 1

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Excel syventävät harjoitukset

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.

Ctl160 Tekstikorpusten tietojenkäsittely p.1/24

Harjoitustehtäväkierros 1

Liite 1. Laajennettu Eukleideen algoritmi suoraviivainen tapa

Korpusten käsittely clt131, P Luento 3

XML tehtävien työnkulku

Matriisit, kertausta. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

Tehtävä 1: Veroprosentti

Sangen lyhyt L A T E X-johdatus

ASCII-taidetta. Intro: Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 6: Python

Ohjelmoinnin peruskurssien laaja oppimäärä

Luento 2. Timo Savola. 31. maaliskuuta 2006

Pong-peli, vaihe Koordinaatistosta. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana

Koodausteoria, Kesä 2014

OUTER JOIN se vanha kunnon kaveri

9 Matriisit. 9.1 Matriisien laskutoimituksia

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu

Transkriptio:

CLT131: Tekstityökalut 2011, kahdeksas luento Tommi A Pirinen tommi.pirinen@helsinki.fi Helsingin yliopisto Kieliteknologian oppiaine, Nykykielten laitos 2011-02-04 2011-02-04 1 / 17 2011-02-04 2 / 17 Merkistöistä ja kalvostoista Huomattiin, taas, harjoitustehtävistä, että kalvostoista kopioidut ja liitetyt esimerkit eivät suoraan toimi Windowsilla/Puttyllä, johtuen eräiden koodiesimerkkien esitysmuotojen erilaisuudesta: kahdesta viivasta tulee kalvoissa helposti ajatusviiva: - suorista konekirjoituslainausmerkeistä tulee kaarevat: sirkumfleksistä tulee vääränlainen: ˆ jne. sen sijaan tehtävien malliratkaisuissa on varmasti oikeat merkinnät 2011-02-04 3 / 17 2011-02-04 4 / 17

Mitataan oikaisulukujen (tai muun kt-sovelluksen) toimivuutta Tehtäväkuvaus tekstissä olevien kirjoitusvirheiden korjaavia sovelluksia pitää vertailla tarvitaan jonkinmoisiin tilastollisiin lukuihin perustuvaa luokittelua korjauksista Lähtökohdat tunnetaan väärinkirjoitettu sana ja oikea korjaus on joukko oikaisulukimia, jotka arvuuttelevat oikeaa korjausta [0..n] järjestettyä korjausehdotusta Ongelmat millä mitataan oikaisuluvun hyvyyttä (tarkemmin ks. CLT255) 2011-02-04 5 / 17 miten täsmätään oikeat korjaukset järjestettyihin ehdotuksiin Oikaisulukuvirhekorpus 2011-02-04 6 / 17 Vertailtavat oikaisulukuaineistot oikaisuluvun testaamiseen tarvitaan kirjoitusvirheitä ja oikeita korjauksia nyt meillä on Wikipediasta käsin kerättyjä virheitä käytettävän virheiden keruu ja korjausten tarkistaminen on usein työläs tehtävä, esim. tässä on tehty: omorfi-analyse.sh fgrep +? less fgrep virhe jokaiselle löydetylle selvittämään oikeaa käännöstä käsin tehdyssä tiedostossa muodon saa päättää itse; päätetään että väärin\<tab>oikein on helppo käsitellä oikaisuluvun korjaimen tehtävä on siis antaa käyttäjälle järjestetty lista ehdotuksista listojen järjestämisessä voi yhdistellä erilaisia menetelmiä: mallintaa näppäilyvirheitä näppäimistöllä (Levenshtein-etäisyys): kisas kisa,kissa,kisasi,... katsoa saneiden yleisyyttä: kissa > kisa > kisasi kaikki menetelmät tuottavat yleensä oikeita ja vääriä ehdotuksia; pitää arvioida paras voidaan järjestellä ehdotukset myös riveittäin: ehdotus1\<tab>\<tab>ehdotus2... 2011-02-04 7 / 17 2011-02-04 8 / 17

Tiedostojen yhdistely vierekkäin: paste Sarakkeiden yhdistely awkilla jotta voitaisiin laskea esim. awkilla oikeita korjauksia, helpottaa kun saadaan samaan tiedostoon vastaavat rivit kun tässä tapauksessa rivit aina täsmäävät, voidaan käyttää paste-komentoa sellaisenaan; se liittää kahden tiedoston rivit tabilla eroteltuna: paste virhekorpus korjausehdotukset-1 > korjauskorpus-1 nyt korjauskorpuksessa on toinen sarake on oikea sana ja se pitäisi löytyä korjausehdotuksista sarakkeissa kolmannesta eteenpäin tutusti nyt awk osaa käsitellä rivejä saneittain eli sarakkeittain awkin komentoriveissä käytetyt ehdot voivat puuttua sarakkeiden samuuteen vertailuoperaattorilla ==: awk $2 == $3 {print} tulosta rivit joilla kolmas sarake on sama kuin toinen 2011-02-04 9 / 17 2011-02-04 10 / 17 Tulosten vertailu ja tulostus awkilla awkilla voi myös tehdä laskelmia; erikoisehdoissa BEGIN ja END voi alustaa ja tulostaa laskelmia. Usein halutaankin prosentteja absoluuttisten lukujen sijaan: BEGIN {ekat = 0; kaikki = 0;} nollataan laskurit $2 == $3 {ekat++;} lasketaan täsmäävät {kaikki++;} lasketaan rivien määrää END {printf("oikeita tuloksia %d/%d = %.2f %%",ekat,kaikki, 100*ekat/kaikki);} tulostetaan täsmäävien osuus riveistä kirjoitettaessa komentoriville koko rimpsu menisi yhdeksi riviksi; myös awkit voi tallentaa tiedostoihin ja suorittaa awk -f skripti.awk ohita vaihtoehto? Vaihtoehtoinen, awkiton täsmäystapa: join voidaan käsitellä virhekorpusta ja ehdotustiedostoja tietokantoina join on siis tietokantamaailman join-komento; yhdistää rivit jos annetut sarakkeet täsmäävät joinin komento on yleensä join -1 sarake1-2 sarake2 tiedosto1 tiedosto2, joissa siis sarake1 on ensimmäisen tiedoston sarake joka täsmätään toisen tiedoston sarakkeeseen sarake2: join -1 2-2 1 virhekorpus korjaukset tulostaa rivit joissa korjausten ensimmäinen sarake on oikea (rivien sisältö on tässä irrelevantti, sillä haluamme vain laskea ne, mutta lopputulos on sellainen rivi jossa on yhdistetty sarake kerran ja sitten muut sarakkeet järjestyksessä) 2011-02-04 11 / 17 2011-02-04 12 / 17

Työsuunnitelma 1 rakennetaan Make-skriptiä tulevia aineistoja varten 2 noudetaan pari oikaisulukuaineistoa 3 yhdistellään virhekorpuksen kanssa 4 lasketaan prosentit ensimmäisenä oikein annetuille riveille 2011-02-04 13 / 17 2011-02-04 14 / 17 Oikaisulukuaineistojen nouto Korjausaineistojen yhdistely haetaan kurssisivuaineistosta: clt131/materiaalit/fiwiki.virhekorpus clt131/materiaalit/fiwiki.1.korjaukset clt131/materiaalit/fiwiki.2.korjaukset Make-skriptissä tiedostojen noudon voi esittää muodossa: fiwiki.virhekorpus: <tab>wget... yhdistely pastella oli suoraviivainen: paste virhekorpus korjaukset Make-skriptin sääntö monelle tiedostolle on monimutkaisempi, muttei paljoa: %.korjauskorpus: fiwiki.%.korjaukset fiwiki.virhekorpus <tab>paste fiwiki.virhekorpus $< 2011-02-04 15 / 17 2011-02-04 16 / 17

Mittaustulosten esitys mittaustuloksille oli pitkähkö awk-skripti: BEGIN {ekat = 0; kaikki = 0;} $2 == $3 {ekat++;} {kaikki++;} END {printf("oikeita tuloksia %d/%d = %.2f %%",ekat,kaikki, 100*ekat/kaikki);} jos sen tallentaa tiedostoon ekat-prosentit.awk, voidaan rakentaa Make-skripti: %.tulokset: %.korjauskorpus <tab>awk -f ekat-prosentit.awk < $< > $@ nyt siis make 1.tulokset saa aikaan korpuksen 1 tulosprosentin tiedostoon 2011-02-04 17 / 17