Tekstin sisältöä voidaan automaattisesti esikäsitellä ja annotoida monin tavoin. Tässä on muutamia esimerkkejä saatavilla olevista työkaluista. Tutkimuskäytössä on toki hyvä muistaa, etteivät menetelmät ole virheettömiä.
Perusmuotoistus on tärkeä esikäsittelyvaihe suomenkielisisten aineistojen tilastollista analysointia varten. Seuraavassa käydään läpi, miten se onnistuu suurillekin aineistoille CSC:n laskentaympäristössä.
Ensin kannattaa varmistaa, että lähdeaineisto on sopivassa muodossa. Kun se on tehty, voidaan ensin testata pienellä osalla aineistoa, miten ohjelma toimii. Sisäänkirjautumisnoodeilla voi suorittaa samoja komentoja kuin laskentanoodeillakin, mutta suurten aineistojen käsittely niillä on hidasta, muille käyttäjille epäystävällistä, ja usein mahdotonta. Lisäksi pitää muistaa ladata käyttöön haluttu moduli, jotta oikean komennon saa käyttöön. Tässä tapauksessa se on finnish-postag
, jonka saa käyttöön komennolla module load finnish-tagtools
.
Pienen osan aineistoa, ensimmäiset 3 riviä, saa näytettyä komennolla head -3 aineisto.txt
. Sen voi syöttää komennolle finnish-postag
näin:
head -3 aineisto.txt | finnish-postag
Tuloksena pitäisi olla tulostusmuoto, jossa jokainen sana on omalla rivillään, ja sitä seuraa perusmuoto ja morfologinen analyysi. Kenttien välissä on tab- eli sarkainmerkki. Esimerkiksi näin:
Tällaiselta tällainen [POS=ADJECTIVE]|[SUBCAT=DEMONSTRATIVE]|[NUM=SG]|[CASE=ABL] näyttää näyttää [POS=VERB]|[VOICE=ACT]|[MOOD=INDV]|[TENSE=PRESENT]|[PERS=SG3] perusmuotoistettu perusmuotoistaa [POS=VERB]|[VOICE=PSS]|[PCP=NUT]|[NUM=SG]|[CASE=NOM] teksti teksti [POS=NOUN]|[NUM=SG]|[CASE=NOM] . . [POS=PUNCTUATION]
Pelkät perusmuodot saa ottamalla keskimmäisen sarakkeen, eli sarakkeen numero kaksi, näin:
head -3 aineisto.txt | finnish-postag | cut -f2
Jos vielä halutaan, että perusmuodot yhdistyvät kappaleiksi, kuten lähdetekstissä, voidaan korvata rivinvaihdot välilyönneillä, ja sitten kaksinkertaiset välilyönnit kaksinkertaisilla rivinvaihdoilla:
head -3 aineisto.txt | finnish-postag | cut -f2 | tr '\n' ' ' | sed 's/ /\n\n/'
Jos tulos näyttää halutunlaiselta, ja jos aineisto on pieni, valmiin perusmuotoaineiston saa nyt aikaiseksi komennolla
cat aineisto.txt | finnish-postag | cut -f2 | tr '\n' ' ' | sed 's/ /\n\n/' > perusmuodot.txt
Jos aineisto on suuri, voidaan siirtyä lyhyeen sessioon interaktiiviselle laskentanoodille suorittamaan nämä samat komennot. Laskentanoodit kuluttavat CSC-projektin laskutusyksiköitä (billing units) sitä enemmän, mitä enemmän resursseja käyttöön varataan. Vain sellaisia laskentayksikköjä voi kulua, jotka on projektille jo myönnetty, eli rahaa laskentayksiköiden ei käyttäminen koskaan maksa. sinteractive -i
-komento aloittaa uuden komentotulkin tällaisessa noodissa niin, että se interaktiivisesti kysyy, millaisia laskentaresursseja käyttäjä tarvitsee.
$ sinteractive -i Define accounting project with option '-A' or '--account' or choose a project by giving an item number from the list below:
Tässä valitaan projekti valikosta.
Enter the desired runtime (hh:mm:ss): [24:00:00]
Tunti riittää jos aineisto ei ole ihan valtava, kirjoitetaan 1:00:00.
Enter the amount of memory to reserve in Megabytes (M) or Gigabytes (G): [2000]M
finnish-tagtools
on vähän muistinnälkäinen, kirjoitetaan 4000M (pelkkä enter antaisi oletursarvon 2000M).
Enter the number of CPU cores to reserve: [1]
Yksi core riittää, painetaan vain enteriä ja saadaan oletusarvon mukaisesti yksi core.
Enter the number of GPUs to reserve: [0]
Enter, ei tarvita gpu:ta tähän.
Enter the amount of fast local NVMe storage to reserve: [32]G
Tässä kysytään tarvetta erilliselle nopealle levyalueelle, jossa voi tehokkaasti lukea ja kirjoittaa tiedostoja. Meillä on nyt vain yksi käsittelyvaihe eikä välitiedostoja, joten kirjoitetaan 0, jolloin ylimääräistä levyaluetta ei varata.
Seuraavaksi järjestelmä kertaa varatut resurssit ja kertoo, kun ne saadaan käyttöön. Näin vaatimattomilla resursseilla sen pitäisi tapahtua pian.
Job details ----------- Accounting project: [projektisi] Runtime (hh:mm:ss): 1:00:00 Amount of memory (MB): 2000 Number of cores/threads: 1 Amount of local storage (GB): 0 srun: job queued and waiting for resources srun: job has been allocated resources
Sitten pääsee takaisin komentoriville, jossa voi kirjoittaa:
module load finnish-tagtools cat aineisto.txt | finnish-postag > aineisto_tagged.txt
Vierähtää hetki aikaa, ja sitten tuloksena on tuo tägätty tiedosto, jolle voi taas normaalissa sisäänkirjautumisnoodissa tehdä haluttuja operaatioita. Laskentanoodista voi poistua ja luovuttaa sen seuraavalle käyttäjälle kirjoittamalla:
exit