CLT131: Tekstityökalut 2011, seitsemäs luento Tommi A Pirinen tommi.pirinen+clt131@helsinki.fi Helsingin yliopisto Kieliteknologian oppiaine, Nykykielten laitos 14. joulukuuta 2011 tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 7. luento 14. joulukuuta 2011 1 / 15
Asialista 1 Tehtävät 2 Teoriaa 3 Menetelmät ja työkalut tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 7. luento 14. joulukuuta 2011 2 / 15
1. HTML:n siistintä perusratkaisu helpohko lisätehtäväratkaisua voi laajentaa paljonkin, melkein harjoitustehtäväksi asti helpoin laajennus toisintaa body-osion kopiointiin mitä opittiin headista ja tailista gutenbergin kanssa myös sed esim. poistaa tiettyjen säännöllisten ilmausten välistä moniriviset täsmäykset vaativat huomattavan määrän säätöä, koska html-tiedostoissa rivinvaihdot eivät merkitse mitään, helpommin voisi tietysti vaikka: tr -d \n tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 7. luento 14. joulukuuta 2011 3 / 15
2. Tavut monta lähestymistapaa; voi kopioida tavutuksenalkua viime luennoista ja poistaa viivoja mm. sanan aluista käytännössä tavut pitkän vokaaliaineksen välissä joutuu lähinnä luettelemaan Huomattavaa ettei sed g-asetuksellakaan poimi päällekkäisiä sarjoja toistuvasti, vaan jatkaa uutta edellisen perästä: s/(ab*)(ba)/\1-\2/g ei siis tavuta ababa-sanaa a-ba-ba, koska ensimmäinen korvaus sisältää jakson aba ja toinen yritys alkaa jaksosta ba tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 7. luento 14. joulukuuta 2011 4 / 15
3. Tavufrekvenssit 3. lienee helpoin tehtävä; lähinnä yhdistellään vanha saneistus ja frekvenssilasku jossa lisänä yksinkertainen sed-korvaus helpoiten meni pieleen jos erehtyi käyttämään plussia tai tähtiä tai muuta monimutkaista, koska jokainen kirjain piti laskea tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 7. luento 14. joulukuuta 2011 5 / 15
4. Karjalan muunnos niinikään 4. tehtävässä oli lähinnä suoraviivaisia muunnoksia testailtavana tämä on hyvin tyypillinen harjoitustyö jos siihen liittää esim. frekvenssiarvioita mitkä muunnokset saattavat vaikuttaa/toimia tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 7. luento 14. joulukuuta 2011 6 / 15
5. salakirjoitus lähinnä vaati keksimistä; minkä tahansa uudelleenjärjestely eli poimitaan 3 (tai 6): s/(.)(.)(.)/\3\2 \1/g tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 7. luento 14. joulukuuta 2011 7 / 15
Asialista 1 Tehtävät 2 Teoriaa 3 Menetelmät ja työkalut tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 7. luento 14. joulukuuta 2011 8 / 15
Tekstitaulukot, TSV / CSV ja laskentataulukot TSV (tab separated values) ja CSV (comma separated values) eli sarkaimin tai pilkuin erotellut kentät on melko laajasti tuettu esitystapa monimutkaisemmillekin laskentataulukoille jos siis saa frekvenssidatansa tai muun korpushaun tuloksen taulukoitua niin, esim. pasteilla tms., voi käyttää melko laajaa valikoimaa ohjelmia tulosten hyödyntämiseen: Toimistosovellukset kuten LibreOffice, OpenOffice, (jotkin vanhat Microsoft Officet ehkä) Tilastolliset sovellukset kuten R (=CLT250), SPSS Ohjelmointikielet kuten python (=CLT23.), awk, jne. Tietokantasovellukset tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 7. luento 14. joulukuuta 2011 9 / 15
Taulukoiden yhdistäminen yhteisen kentän suhteen relaatiotietokantamaailman join esim. jos meillä on kaksi frekvenssitaulukkoa ja halutaan vertailla niitä molemmissa on samoja saneita mutta eri numerot, siis asetetaan sanat päällekkäin ja niihin liittyvät frekvenssit vierekkäin tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 7. luento 14. joulukuuta 2011 10 / 15
Asialista 1 Tehtävät 2 Teoriaa 3 Menetelmät ja työkalut tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 7. luento 14. joulukuuta 2011 11 / 15
Sortilla järjestely kentän mukaan Join vaatii että käytettävät kentät on järjestetty sen kentän mukaan mikä yhdistetään sortissa on valitsin -k N jolla järjestetään tiedostot n:nnen kentän mukaan; siis frekvenssilistoissa halutaan yleensä: sort -k 2 jos taulukko jota järjestetään ei ole sarkaimin eroteltu niin voi käyttää valitsinta -t erottimen kertomiseen, esim. sort -t, -k 2 tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 7. luento 14. joulukuuta 2011 12 / 15
Joinin asetukset joinissa on aika paljon valitsimia, mutta yleensä käytetään aina samanlaista kaavaa: join -1 2-2 2 freq1 freq2, jossa -1:n vieressä oleva numero kertoo sen kentän ensimmäisestä tiedostosta (tässä freq1), jota yhdistetään ja -2:n vieressä oleva kentän toisesta tiedostosta (tässä freq2) frekvenssilistoja yleensä vertaillaan siis saneiden eli toisien kenttien eri frekvenssejä myös joinille voi antaa valitsimella -t sen merkin joka kenttiä erottaa jollei se ole sarkain, eli join -t, vastaavasti pilkuin erotellulle tiedostolle huomattavasti tämä join hävittää rivit joita ei löydy molemmista tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 7. luento 14. joulukuuta 2011 13 / 15
Joidenkin laskujen automatisointi: bc komento bc on suht suoraviivainen tekstityökalu joka toimii laskimena: echo 1+1 bc jakolasku (ohjelmointikielissä vinoviivalla merkitään) on oletuksena kokonaislukuja, pitää asettaa desimaalien määrä muuttujaan scale: echo scale=2;1/100 bc tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 7. luento 14. joulukuuta 2011 14 / 15
Lisäksi: Virkkeistys lähtökohtana rivit ensin pois ja sitten takaisin pisteiden kohdille: jopa tr \n tr.?!:; \n asioita voi rivittää uudestaan vaikka sedillä: sed -r -e s/.^{80}/& \n/g ; jos \n ei toimi sen tilalla saattaa pitää käyttää esim. rivinvaihtoa tai CTRL-v ja rivinvaihtoa (joka tulostuu ^M:nä!) tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 7. luento 14. joulukuuta 2011 15 / 15