• Nenhum resultado encontrado

CLT131: Tekstityökalut 2011, toinen luento

N/A
N/A
Protected

Academic year: 2023

Share "CLT131: Tekstityökalut 2011, toinen luento"

Copied!
5
0
0

Texto

(1)

CLT131: Tekstityökalut 2011, toinen luento

Tommi A Pirinen

tommi.pirinen+clt131@helsinki.fi

Helsingin yliopisto

Kieliteknologian oppiaine, Nykykielten laitos

9. marraskuuta 2011

tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 2. luento 9. marraskuuta 2011 1 / 19

Asialista

1 Käytännön asioita vielä

2 Tehtävät

3 Teoriaa ja aineistoja

4 Menetelmät ja työkalut

tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 2. luento 9. marraskuuta 2011 2 / 19

hippu—module, bash, chsh

Aloitetaan siitä että kaikki kirjautuvat hipulle ja tarkistetaan vielä että kaikki on kunnossa:

vieläkö löytyy module: command not found-ongelmia?

echo $0— onko jollakulla jotain muuta kuin bash shellinä (ja haluaa käyttää bashia)

locale -ck charmap— UTF-8 kaikilla?

tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 2. luento 9. marraskuuta 2011 3 / 19

Asialista

1 Käytännön asioita vielä

2 Tehtävät

3 Teoriaa ja aineistoja

4 Menetelmät ja työkalut

tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 2. luento 9. marraskuuta 2011 4 / 19

(2)

yleistä

scriptin käyttö näytti onnistuneen ja oli varsin hyödyllistä tiedostoja saa pakata yms., kannattaa kuitenkin noudattaa nimeämiskäytäntöjä ja aina mainita asiasta viestissä

tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 2. luento 9. marraskuuta 2011 5 / 19

1. bashrc

GREP_OPTIONS=--colour=autokahdella peräkkäisellä viivamerkillä ilman sanaväliä, ei siis voi kopioida kalvoista, joissa viivojen välissä on usein ohuke tai sitten viivat ovat langenneet yhteen

jos module ei toiminut, pitää ehkä vieläkin kopioida rimpsu verkkosivujen aineistoista

http://www.ling.helsinki.fi/kit/2011s/

clt131/materiaalit/index.shtml

tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 2. luento 9. marraskuuta 2011 6 / 19

2. esitiedot

Esitietojen perusteella seuraavanlainen alustava aikataulu kurssille

1 tr, wc, bash — saneistus, frekvenssit, skriptaus

2 grep — säännölliset lausekkeet ja haut

3 head, tail — lisää skriptauksesta ja vähän siistinnästä

4 omorfi, grep — lisää säännöllisiä lausekkeita

5 sed — lisää säännöllisiä lausekkeita ja muunnoksia

6 cut, paste — datan taulukointia ja poimintaa

7 awk — lisää säännöllisiä lausekkeita ja datan käsittelyä tämä aikataulu on vielä karkea luonnos

tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 2. luento 9. marraskuuta 2011 7 / 19

7. man, apropos, whatis

Tehtävä oli aika suurpiirteisesti muotoiltu

olennaista on, että nyt tiedämme, että kaikki osaavat lukea man-sivut

aproposon tosiaanman -k

yhteys fgrepiin on havaittavissa josGREP_OPTIONSon asetettu: hakusanat värjätään eliaproposon myös fgrep. . .

fgreppailun kohde on ns.whatis-tietokanta, käytännössä man-sivujen ensimmäisistä riveistä poimittu tiedosto (alkeellinen tekstin yhteenvetomenetelmä, vrt. wikipedia)

tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 2. luento 9. marraskuuta 2011 8 / 19

(3)

3. — 4. sanoista

Olennaisia havaintoja:

wc:n määritelmä sanoista on sanavälien väliin jäävät merkkisarjat

esim. kiinassa ei välttämättä sanavälejä käytetä esim. suomessa ajatusviiva — laskettaisiin sanaksi esim. englannissaI’mtai ranskassal’heure laskettaisiin yhdeksi sanaksi

tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 2. luento 9. marraskuuta 2011 9 / 19

Asialista

1 Käytännön asioita vielä

2 Tehtävät

3 Teoriaa ja aineistoja

4 Menetelmät ja työkalut

tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 2. luento 9. marraskuuta 2011 10 / 19

Tekstin jakaminen sanoiksi eli saneistus (tokenisointi)

saneistusviittaa termiin sane, so. sanan konkreettinen esiintymä t. sanamuoto, tällä kurssilla sanalla sanausein viitataan samaan

suurin osa korpustutkimuksesta koskee sanoja, sanojen välisiä suhteita, niiden esiintymisiä jne.

tyypillinen korpustutkimuksen kieliteknologinen toteutus siis alkaa aineiston jakamisesta sanoiksi

viimeksi huomasimme, että yksi tapa määritellä sana on sanavälien ympäröimäksi jaksoksi

tällä kertaa toteutamme siis tällaisen saneistusmenetelmän

tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 2. luento 9. marraskuuta 2011 11 / 19

Esiintymien laskeminen eli frekvenssilistaukset

useimmiten, kun käsittelemme sanoja tai mitä ikinä kielenainesta, haluamme tietää tarkasteltavien asioiden välisiä yleisyyksiä

yksinkertaisin tapa tarkastella tätä on laskea ne, ja vertailla lukumääriä

tällaisia lukumäärälaskelmia kutsutaan usein frekvensseiksi frekvenssejä sinänsä eri aineistojen välillä on hankalaa vertailla; sata esiintymää tuhannen sanan tekstissä on paljon mutta biljardin sanan tekstissä ehkei niinkään yksinkertaisin vertailukelpoisehko tapa arvioida näitä ovat prosenttiosuudet, eli todennäköisyydet:

100

1000 =10%<0.00000001% = 100

1000000000000000 (1) tällä kertaa toteutamme todennäköisyyslaskentaa hieman käsin

tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 2. luento 9. marraskuuta 2011 12 / 19

(4)

Gutenberg-aineistot

http://www.gutenberg.org/

tekstitiedostoja vanhoista, tekijänoikeudettomista kaunokirjallisuusteoksista

sisältävät mm. lisenssitekstejä

välimerkit saattavat olla poikkeuksellisiakin, esim. vanhan ortografian mukaisia — mm. suomelle kulmalainausmerkit ovat tavallisia « »

merkistöt ja merkkaus pitää valita oikein (nykyään raakateksti ja UTF-8Plain Text UTF-8löytyvät suoraan sivustolta)

tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 2. luento 9. marraskuuta 2011 13 / 19

Asialista

1 Käytännön asioita vielä

2 Tehtävät

3 Teoriaa ja aineistoja

4 Menetelmät ja työkalut

tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 2. luento 9. marraskuuta 2011 14 / 19

Gutenbergistä: Juhani Aho — Rautatie

Suora linkki:

http://www.gutenberg.org/ebooks/10481

Selaimella paikalliselle koneella haku ja siirto (scp:llä tms.) on aina mahdollista

Hipullakin on mahdollista käyttää vaikka firefoxia jos haluaa — tämä on yleensä todella hidasta

Tekstipohjaiset selaimet kutenlinksovat vähän sukkelampia mutta melko hankalia eivätkä toimi kaikilla sivuilla

Komentorivipohjainen wget on käytännöllinen tähän ja automatisoituihin hakuihin yleensäkinwget -O

rautatie.txt

http://www.gutenberg.org/cache/epub/10481/pg10481.txt

tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 2. luento 9. marraskuuta 2011 15 / 19

Sivujuonne: Koodausasiat

koodauksella tässä tarkoitetaan miten kirjaimet esitetään tietokoneen muistissa: eritoten ääkköset ym. ei

alkuperäiseen US-ASCII-aakkostoon sisältyvät merkit, ja rivinvaihdot

lähes kaikissa nykysovelluksissa merkistökoodaus on UTF-8, myös gutenbergissä

recodejaiconv muuntavat koodauksia (jos esim. vanhat gutenbergit olivat ns. latin1:tä):

I iconv -f latin1 -t utf8 < vanha >

konvertoitu

I recode l1..u8 vanha

gutenbergissä on vielä joitain enimmäkseen harmittomia DOS-rivinvaihtoja (jotka näkyvät vimissä ja emacsissa ikävästiˆM:inä)

fromdostaidos2unixmuuntavat rivinvaihdot:

I dos2unix rautatie.txt

I fromdos rautatie.txt

tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 2. luento 9. marraskuuta 2011 16 / 19

(5)

Tekstin saneistus

haluttiin jokainen sanavälein erotettu sana omalle rivilleen tr on yleistyökalu yksinkertaisiin merkkimuunnoksiin:

I tr -s ’ ’ ’\n’ < rautatie.txtmuuntaa välilyönnit rivivaihdoiksi (ts. sijoittaa välilyöntien erottamatsaneetomille riveilleen)

I huomaamme, että sanoihin kuuluvat nyt välimerkit, jota emme tällä kertaa halua

I tr -d ’.,?!:;-’ < rautatie.txtpoistaa välimerkit kokonaan

tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 2. luento 9. marraskuuta 2011 17 / 19

Sanojen laskenta

Kun meillä on jokainen sana rivillään, voimme vaikkapa laskea niiden määtä komennonwc -lavulla

ja laskea yleisyyksiä komentojensortjauniqavulla Ensin järjestetään aakkosjärjestykseensortilla Sittenuniq -claskee toistot

Sitten järjestetään numerojärjestykseensort -nr:llä Muistetaan että ns. putkien avulla voimme tehdä kaiken yhdellä rivillä:sort | uniq -c | sort -nr

tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 2. luento 9. marraskuuta 2011 18 / 19

Kotitehtäviä varten vielä: komennoista skripteiksi

tiedämme, että tr -s ’ ’ ’\n’ < rautatie.txt saneistaa rautatien

tr -d ’.,;!?-’ < rautatie.txtpoistaa välimerkit siitä

tr -s ’ ’ ’\n’ < rautatie.txt | tr -d

’.,;!?-’ tekee molemmat

jos sen tallentaa tiedostoon saneista.shilman osaa<

rautattie.txt

./saneista.sh < rautatie.txt tekee saman on yleinen käytäntö aloittaa skriptitiedosto rivillä

#!/bin/bash, tarpeellista tämä on vain joillain harvoilla unixeilla

tommi.pirinen+clt131@helsinki.fi (HY) CLT131: 2. luento 9. marraskuuta 2011 19 / 19

Referências

Documentos relacionados

Pesquisou-se especificamente sobre a utilização de ferramentas denominadas bots programas que agem como usuários reais através de Inteligência Artificial nas redes sociais, na eleição