Nykysuomen sanalistan, Joukahainen-sanaston ja Käänteissanakirjan yhdistäminen

Viimeistelyä vailla oleva versio kandidaatintyöstäni: http://cs.helsinki.fi/u/listenma/kandilol.pdf

Luvut 3 ja 4 ovat olennaisia tämän projektin kannalta, joten liitin tekstin suoraan KitWikiin.

3. Aineistot

Aineistoina oli kolme eri lailla luokiteltua leksikkoa: Nykysuomen sanalista (NSL), Joukahainen-sanasto ja Käänteissanakirja (KSK). Kaikille sanoille haluttiin antaa sanaluokka sekä NSL:n käyttämä taivutusluokka, joka koostuu taivutustyypistä ja astevaihtelutyypistä. Lisäksi haluttiin merkata plurale tantum -sanat ja sellaiset vierasperäiset sanat, joiden taivutuspäätteissä esiintyvä vokaali poikkeaa vartalon kirjoitusasussa olevasta (kuten show : show'hun).

3.1. Nykysuomen sanalista

Nykysuomen sanalista on Kotimaisten kielten tutkimuskeskuksen julkaisema, ja se sisältää 94 110 sanaa, jotka ovat peräisin Suomen kielen perussanakirjasta vuodelta 1990. Sanalista on julkaistu GNU Lesser General Public License -lisenssillä, mikä tarkoittaa sitä, että aineistoa saa levittää vapaasti, mutta sen saa myös liittää osaksi muulla lisenssillä julkaistua ohjelmistoa. Listaan on valikoitu yleistä perussanastoa; mukana on hyvin vähän erisnimiä tai erikoisaloihin liittyvää sanastoa. Noin puolet on yhdyssanoja, joiden perusosa esiintyy leksikossa itsenäisenä hakusanana.

Taipuvat sanat on jaoteltu 78 taivutustyyppiin, joita merkitään numeroilla 1-78. Taipumattomien tai vaillinaisesti taipuvien sanojen tunnus on 99 ja pronominien 101. Listassa ei ole erikseen merkitty sanaluokkaa, mutta taivutustyypin perusteella saadaan karkea jaottelu: numerot 1-51 ovat nomineille ja 52-78 verbeille. Astevaihtelutyyppejä on 13 erilaista, ja niitä merkitään kirjaimella väliltä A-M. Taivutusluokka kokonaisuudessaan muodostuu taivutustyypistä ja astevaihtelutyypistä. Mahdollisia yhdistelmiä on 1080 kappaletta, eli |{1-78, 99, 101} × {A-M}|, joista leksikossa esiintyy 201.

Homonyymien käsittely on ratkaistu siten, että sanakirjamuodoltaan identtisille sanoille on kullekin oma vienti (entry). Sanan yhteydessä on tieto, jos sille on homonyymi muualla listassa. Homonyymit on eroteltu myös silloin, kun taivutuksessa ei ole eroa. Toisaalta taas joidenkin sanojen tietue voi sisältää kaksi taivutusluokkaa, jos kumpikin taivutus on sallittu. Alla pätkä Nykysuomen sanalistasta:

<st><s>aika</s><hn>1</hn><t><tn>9</tn><av>D</av></t></st>
<st><s>aika</s><hn>2</hn><t><tn>99</tn></t></st>
<st><s>arkki</s><hn>1</hn><t><tn>5</tn><av>A</av></t></st>
<st><s>arkki</s><hn>2</hn><t><tn>5</tn><av>A</av></t></st>
<st><s>merirosvous</s><t><tn>39</tn></t><t><tn>40</tn></t></st>

Tulevassa formaatissa on tarkoitus olla 1:1 vastaavuus sanatietueen ja taivutusluokan välillä, ts. yhdelle sanalle tulee niin monta vientiä kuin sillä on taivutuksia. Toinen Nykysuomen sanalistassa korjattava asia on sanaluokkatiedon tarkkuus: nominien joukko halutaan jakaa substantiiveihin, adjektiiveihin ja erisnimiin. Kyseessä on tietenkin morfologinen leksikko; tarkoitus ei ole ottaa kantaa syntaktisiin tai semanttisiin kysymyksiin, mutta adjektiivien erottelu substantiiveista on myös morfologian kannalta olennainen tieto, merkittävimpänä erona vertailumuodot.

Myös erisnimien erottelu voi olla hyödyllistä tietoa esimerkiksi automaattisessa oikeinkirjoituksen tarkistuksessa: ohjelma huomauttaa virheestä, jos kirjoittaa erisnimen pienellä alkukirjaimella. Lisäksi erityisesti vieraskieliset erisnimet saattavat olla tuntemattomia ihmisille; olisi toivottavaa, että oikeinkirjoituksen tarkistimet eivät ehdottaisi käyttäjälle tällaisia sanoja ainakaan ensimmäisten joukossa.

3.2. Joukahainen-sanasto

Joukahainen on Internetissä toimiva suomen kielen sanastotietokanta, joka on kehitetty avoimen lähdekoodin kieliteknologiasovelluksia varten. Sitä ylläpitää yhteisvoimin joukko harrastajia, ja listaa korjataan ja päivitetään jatkuvasti. Joukahainen on julkaistu GNU General Public License -lisenssin ehdoilla: sanasto on vapaasti jaossa, ja myös siitä tehtävien muunnelmien ja sitä käyttävien ohjelmistojen tulee olla vapaita.

Joukahaisessa on noin 30 000 sanaa. NSL:sta puuttuvia on noin 10 000, mistä suuri osa on erisnimiä, erikoisalojen sanastoa ja uusia sanoja. Jokaisen sanan yhteydessä kerrotaan sanaluokka, joka on joko substantiivi, adjektiivi, verbi tai erisnimi. Erisnimet on lisäksi jaoteltu etunimiin, sukunimiin, paikannimiin ja muihin. Taipumattomia sanoja kuten konjunktioita tai adverbeja Joukahaisessa ei juuri esiinny.

Taivutustyypit on nimetty niihin kuuluvien mallisanojen mukaan. Esimerkiksi luokkaan nimeltä uistin kuuluvat kaikki samalla tavalla taipuvat sanat, kuten opastin ja aterin. Taivutustyyppejä edustavia sanoja on 123 erilaista, ja niihin on yhdistetty kiinteästi 6 eri astevaihtelutyyppiä, jolloin erilaisia taivutusluokkia on yhteensä 183 kappaletta. Alla pätkä Joukahainen-sanastosta:

<word id="w506048">
        <forms>
                <form>korostaa</form>
                <form>yli=korostaa</form>
        </forms>
        <classes>
                <wclass>verb</wclass>
        </classes>
        <inflection>
                <infclass>hidastaa</infclass>
        </inflection>
</word>

Yhdyssanoille ei ole omia vientejä sanalistassa. Yksiosaisille sanoille on omat tietueet, ja kaikki yhdyssanat, joiden perusosana sana esiintyy, ovat samassa tietueessa. Homonyymejä ei ole merkitty mitenkään, esimerkiksi vaatteen osaa tarkoittava vuori ja maan kohoumaa tarkoittava vuori ovat kumpikin erillisinä hakusanoina, eikä kummankaan tietueessa kerrota homonyymistä.

Osalle sanoista on lisätietoa, esimerkiksi sanan käyttöala, yleisyysluokka tai kuvaus sanan merkityksestä. Näitä ei kuitenkaan ole kuin muutamalle tuhannelle sanalle, eikä niitä tultane käyttämään uudessa leksikossa.

3.3. Käänteissanakirja

Käänteissanakirja sisältää 72 818 hakusanaa lopun mukaan aakkostettuna. Sen sanasto ja luokitusjärjestelmä perustuvat Nykysuomen sanakirjaan, joka on julkaistu vuosina 1951-1961. Käänteissanakirjan sanoista 36 489 ei esiinny Nykysuomen sanalistassa. Näistä sanoista suuri osa on johdoksia, erikoissanastoa tai vanhaa sanastoa, joka on jätetty pois vuonna 1990 julkaistusta Suomen kielen perussanakirjasta.

Sanat on jaoteltu viiteen sanaluokkaan: substantiivi, adjektiivi, verbi, pronomini tai taipumaton. Taivutustyyppejä on nomineille 81 kappaletta ja verbeille 50, ja ne ilmaistaan numeroina samaan tapaan kuin Nykysuomen sanalistassa. Astevaihtelusta on merkitty vain sen olemassaolo, ei tyyppiä.

Homonyymit ovat erillisinä hakusanoina, vaikka niiden taivutus olisikin samanlainen. Samoin jos sanalla on sekä adjektiivin että substantiivin tulkinta, se on listassa kahteen kertaan. Jos sanan homonyymi kuuluu johonkin toiseen taivutusluokkaan, sanan yhteydessä on merkintä siitä.

Allaolevassa esimerkissä sana orpo esiintyy kahdesti, koska toinen hakusanoista on substantiivi ja toinen adjektiivi, kumpikin taipuu taivutustyypin 01 mukaisesti ja kummassakin on astevaihtelu, jota merkitsee *. Sanalla veto on kolme merkitystä, jokainen on substantiivi ja noudattaa saman taivutustyyppiä, joten listassa tehdään ero sanojen välille käyttämällä juoksevaa numeroa sanakirjamuodon perässä. Sana tilhi taipuu kahden eri paradigman mukaisesti, joten sillä on kaksi vientiä. Numero &-merkin perässä ilmaisee luokkaa, johon sanan homonyymi kuuluu.

orpo S01 *
orpo A01 *
veto1 S01 *
veto2 S01 *
veto3 S01
tilhi S04 &08
tilhi S08 &04

Lisäksi Käänteissanakirjaan on merkitty plurale tantum sanoille, jotka ovat usein monikossa (esim. ajo) tai aina monikossa (sakset). Taipumattomista sanoista on merkitty ne, jotka ottavat usein omistusliitteen (paikalla) ja joille omistusliite on pakollinen (murheissa). Ainakin plurale tantum -tietoa hyödynnetään uudessa sanalistassa, mahdollisesti myös omistusliitteitä.

3.4. Uuden formaatin esittely

Uuteen leksikkoon tulee jokaiselle sanalle sanaluokka, taivutustyyppi sekä astevaihtelutyyppi, lisäksi merkitään plurale tantum ja taivutuspäätteessä käytettävä vokaali niille sanoille, jotka sitä tarvitsevat. Yhtä sanaa kohden on yksi vienti, homonyymeja ei oteta huomioon, ellei niillä ole eri sanaluokka tai taivutusparadigma. Alla uuden formaatin XML-muoto:

<wordlist
  xmlns="foo"
  xml:id="version-id-signature"
  xml:lang="fi"
>
  <word 
    xml:id="sana"
    pos="N"
    inflectionClass="1"    
    gradationClass="0"
    pluraleTantum="0"
    pronunciation="0"
  >
  sana
  </word>
</wordlist>

Jokaisella sanalla on yksilöivä id-kenttä, joka on sanan sanakirjamuoto, homonymiatapauksissa perään liitetään juokseva numero.

3.5.Sanojen määrä

Yhdistettävät leksikot ovat pieniä tai keskikokoisia: kukin sisältää alle 100 000 sanaa, suurin on Nykysuomen sanalista 94 110 hakusanalla. Uusi lista käyttää Nykysuomen sanalistan luokitusjärjestelmää, joten oli tärkeää tietää, kuinka monelle sanalle luokitus täytyi antaa. Joukahaisessa on 9578 NSL:sta puuttuvaa sanaa ja Käänteissanakirjassa 36 489, näistä päällekkäisiä on vain 1522 sanaa. Yhteensä Nykysuomen sanalistassa esiintymättömiä sanoja oli 43 650.

  Sanakokoelma Sanojen määrä
1 Nykysuomen sanalista (NSL) 94 110
2 Joukahainen ~30 000
3 Käänteissanakirja (KSK) 72 818
4 Joukahainen \ NSL 9578
5 KSK \ NSL 36 489
6 (KSK ∪ Joukahainen) \ NSL 43 650
7 NSL \ (KSK ∪ Joukahainen) 56 180
8 (Joukahainen \ NSL) ∩ (KSK \ NSL) 1522
9 (Joukahainen ∪ NSL) \ KSK 35 293
10 NSL ∪ KSK ∪ Joukahainen ~137 000

Taulukko 1. Sanamääriä

Käytetyt sanastot olivat hyviä täydentämään Nykysuomen sanalistaa: Joukahaisessa on erityisesti uutta sanastoa ja erisnimiä, Käänteissanakirjassa taas vanhaa kieltä ja erikoissanastoa. Karsin Joukahaisesta ja Käänteissanakirjasta kuitenkin kaikkein omituisimman aineksen pois: harvinaiset slangi- ja murresanat, vanhentuneet sanat sekä todella marginaaliset erikoisalojen sanat. Yhteensä uudessa leksikossa tulee olemaan noin 137 000 sanaa, eli |NSL ∪ KSK ∪ Joukahainen| = |NSL| + |(KSK ∪ Joukahainen) \ NSL|.

Tärkeä tieto on myös se, kuinka moni sana esiintyy ainoastaan Nykysuomen sanalistassa, ts. kuinka monelle sanalle ei saada sanaluokkatietoa. Näitä sanoja on 56 180 kappaletta, ja ne ovat enimmäkseen yhdyssanoja. Toistaiseksi on kuitenkin vielä avointa, millä menetelmällä sanat aiotaan luokitella.

4. Menetelmät

Työn pääasiallinen osuus on Nykysuomen sanalistassa esiintymättömien sanojen luokitus puoliautomaattisesti morfologista arvainta hyödyntäen. Koko tehtävää ei voi jättää koneellisesti suoritettavaksi, sillä arvaimen tarkkuus ei ole toistaiseksi riittävä. Arvaimen käyttö kuitenkin helpottaa urakkaa, sillä ihminen joutuu nyt vain tarkistamaan, luokituksia ei tarvitse luoda alusta lähtien. Lisäksi leksikkoon lisättävien sanojen aiemmat morfologiset luokitukset ovat hyödyllistä tietoa: sanastojen yhteisen aineksen perusteella saadaan selville luokitusjärjestelmien keskinäinen vastaavuus, jonka perusteella voidaan suorittaa alustava tarkastus Nykysuomen sanalistassa esiintymättömille sanoille.

4.1. Morfologinen arvain

Arvaimella tarkoitetaan työkalua, joka tuottaa sananmuodoille analyysin perustuen arvaukseen. Arvaimen alkuperä on korpusten automaattisessa syntaktisessa merkitsemisessä: käytössä olevat leksikot olivat pieniä, ja tekstissä esiintyville tuntemattomille sanoille piti saada sanaluokka, jotta tekstin syntaktista rakennetta pystyttäisiin jäsentämään. Morfologinen arvain tuottaa sanaluokan lisäksi arvauksen myös taivutusparadigmasta.

Käytössäni oleva arvain (Lindén, 2009) on koulutettu Nykysuomen sanalistan sanoilla. Arvaaminen perustuu analogiaan: oletetaan että arvaimen tuntemassa sanavarastossa on sana taulukko taivutusparadigmoineen, ja arvattavaksi tulee tuntematon sananmuoto lompakoihin. Sääntö taulukko+Pl+Ill → taulukoihin on valmiiksi arvaimen tiedossa, sitä toiseen suuntaan soveltamalla uudelle sananmuodolle voidaan johtaa perusmuoto lompakko ja taivutusparadigma 4A.

Useimmissa tapauksissa mahdollisia analyysejä on monia, siksi todennäköisimmän muodon valitsemiseen tarvitaan tilastollisia menetelmiä. Arvaimeen ollaan kehittämässä parannusta, jolla tutkitaan eri analyyseista generoitujen sananmuotojen taajuuksia korpuksessa, ja näin saadaan lisätietoa arvauksen onnistumisesta. Edellisessä esimerkissä yksi monista muista mahdollisuuksista olisi tulkita lompakoihin nominatiiviksi ja olettaa sen taipuvan samaan tapaan kuin aterin, siis lompakoihin : lompakoihimen. Parannuksen myötä korpuksesta haettaisiin molempien analyysien tuottamia taivutusmuotoja, esimerkiksi lompakoilla ja lompakoihimilla. Ainakin jälkimmäisen kaltaiset selvät tapaukset karsiutunevat pois, mutta sellaiselle monitulkintaisuudelle, kuten sananmuodoissa tuli ja _alusta', korpuspohjainenkaan menetelmä ei auta.

4.2. Työn kulku

4.2.1. Yhteiset sanat

Sekä Joukahaisen sanastossa että Käänteissanakirjassa on käytössä taivutusluokat. Kummassakin on kymmeniä eri luokkia, ja todennäköisesti luokitus on tehty samankaltaisia tavoitteita silmälläpitäen kuin Nykysuomen sanalistassakin, ts. jotenkin morfologiselta kannalta perustellusti. Kummankin uuden listan kanssa aloitin ottamalla selvää luokkien vastaavuuksista yhteisten sanojen perusteella.

Jokaiselle yhteiselle sanalle etsittään kummankin sanalistan luokitus, jolloin saadaan tieto siitä, mihin NSL-luokkiin kuuluvia sanoja kuuluu mihinkin Joukahaisen luokkaan. Pätkä lopputuloksesta näkyy taulukossa 3. Prosessi on täsmälleen samanlainen Käänteissanakirjalle, taulukossa 4 on esimerkki KSK:n ja NSL:n taivutusluokkien vastaavuuksista.

Kun luokkien vastaavuudet ovat tiedossa, uusille sanoille tehdyt arvaukset voi alustavasti tarkistaa sanalla jo valmiiksi olevan luokituksen perusteella. Mitä enemmän kuvaus muistuttaa bijektiota, sitä hyödyllisempi ja luotettavampi se on koneelliseen tarkastukseen.

Joukahainen Sana NSL
autio vivisektio 3
autio yksiö 3
autio yliö 3
edam diesel 6
edam gospel 5
edam kaanon 6
edam krypton 5
haluta öljytä 74
haluta älytä 74
haluta eritä 75
kiiski kaihi 5
kiiski tilhi 7

Taulukko 2. Joukahaisen ja Nykysuomen sanalistan yhteisiä sanoja luokituksineen

Joukahainen NSL
autio 3
edam 5, 6
haluta 74, 75
kiiski 5, 7

Taulukko 3. Joukahaisen ja NSL:n taivutusluokkien keskinäisiä vastaavuuksia

KSK NSL
00 1, 99
01 1, 2, 99
02 1, 2, 3, 4, 99
03 3
04 21, 23, 5, 6, 7, 99
05 25, 5, 6, 99
06 5, 6
07 5, 6, 99
09 3, 8

Taulukko 4. KSK:n ja NSL:n taivutusluokkien keskinäisiä vastaavuuksia

Karsin käsin pois selkeät virheet, ennen kuin käytin vastaavuuksia tarkistuksen pohjana: varsinkin erikoisemmilta tuntuvat vastaavuudet olivat usein homonymiasta, kielenmuutoksesta tai leksikon laatijan virheestä johtuvia yksittäistapauksia. Esimerkiksi Käänteissanakirjan luokkaa 04 vastaa pääosin Nykysuomen sanalistan luokka 5 (risti : ristin : ristejä). Ylläolevassa vastaavuustaulukossa luokkaa 21 edustaa yksi sana, jersey, joka on tulkittu KSK:ssa lausuttavan suomalaisittain kirjoitusasun mukaisesti ja NSL:ssä englantilaisittain. 23 on myös yksittäistapaus: sanalle syli on kaksi taivutusta, joista toinen on luokan 5 mukainen (syli : syliä) ja toinen luokan 23 (syli : syltä).

Luokkiin 6 ja 7 kuuluvia sanoja on useampia, mutta niistäkin moni selittyy homonymialla, esimerkiksi kymi, jolle on kaksi eri taivutusparadigmaa: kymin ja kymen. Joissain tapauksissa näyttää olevan kyse vain kielen muutoksesta: esimerkiksi sanoille diakoni, setsuuri ja viskoosi ei ole Käänteissanakirjan julkaisun aikaan hyväksytty allomorfia -eita monikon partitiiviin, mutta nykykielessä se on käytössä.

Luokan 99 esiintyminen niin monen luokan vastaavuuksissa on myös homonymian tulosta. Esimerkiksi monille -sti-loppuisille sanoille on Käänteissanakirjassa tekijänominin tulkinta, Nykysuomen sanalistassa ne on analysoitu adverbeiksi.

4.2.2. Nykysuomen sanalistassa esiintymättömät sanat

Käytän yhä esimerkkinä Joukahaista, mutta täysin samat toimenpiteet tehtiin myös Käänteissanakirjan sanoille. Allaolevassa esimerkissä on kuusi ensimmäistä arvausta sananmuodolle narkolepsia.

1 narkolepsia <12><noun> <sg><nom>  narkolepsia narkolepsian narkolepsiaa narkolepsiaan narkolepsiat narkolepsiain~narkolepsioitten~narkolepsioiden narkolepsioita narkolepsioihin
2 narkolepsia <61><verb> <act><infa><sg><lat>  narkolepsia narkolepsin narkolepsi narkolepsisi narkolepsinee narkolepsikoon narkolepsinut 
3 narkolepsa <10><noun> <pl><ptv>  narkolepsa narkolepsan narkolepsaa narkolepsaan narkolepsat narkolepsain~narkolepsien narkolepsia narkolepsiin
4 narkolepsi <5><noun> <sg><ptv>  narkolepsi narkolepsin narkolepsia narkolepsiin narkolepsit narkolepsien narkolepseja narkolepseihin
5 narkoleps <5><noun> <sg><ptv>  narkoleps narkolepsin narkolepsia narkolepsiin narkolepsit narkolepsien narkolepseja narkolepseihin
6 narkolepsi <7><noun> <pl><ptv>  narkolepsi narkolepsen narkolepsea narkolepseen narkolepset narkolepsien narkolepsia narkolepsiin

Nykysuomen sanalistasta puuttuvat sanat pantiin morfologiseen arvaimeen, joka antaa kuusi arvausta ja generoi muutamia taivutusmuotoja tarkistajan avuksi. Arvaukset tehdään sillä oletuksella, että arvattava sana voi olla missä tahansa muodossa. Tiedämme kuitenkin, että kaikki arvattavat sanat ovat sanakirjamuodossaan, nominit nominatiivissa ja verbit A-infinitiivissä. Ylläolevan esimerkin tapauksessa vaihtoehdot 3-6 voidaan karsia heti pois: syötemuodon ja ehdotetun perusmuodon pitää täsmätä, jotta arvaimen ehdotus voisi tulla kyseeseen.

Jäljelle jääneet arvaukset tarkistetaan luokkavastaavuuksien perusteella. Ensimmäisessä, koneellisessa tarkistuksessa sanalle haetaan sen Joukahaisen luokitusta vastaavat Nykysuomen sanalistan luokat. Arvaukset käydään läpi, ja kaikki vastaavien luokkien joukosta löytyvät hyväksytään alustavaksi mahdollisuudeksi.

Sana Joukahaisluokka Vastaavat NSL-luokat Arvaukset Hyväksytyt
narkolepsia kulkija 12, 13 12, 61 12

Taulukko 5. Sanan narkolepsia tarkistusprosessia

Alustavasti oikeiden arvausten joukosta poimitaan talteen ne sanat, joille on löytynyt vain yksi vaihtoehto. Nämä arvaukset hyväksytään oikeiksi ilman ihmisen tekemää tarkistusta. Monilla luokilla on täysi keskinäinen vastaavuus, esimerkiksi Joukahaisen luokka nainen ja Nykysuomen sanalistan luokka 38, joihin kuuluvat kaikki nen-loppuiset sanat eikä mitään muuta. Jos arvaimen antamista vaihtoehdoista on hyväksytty vain yksi, sana kuuluu todennäköisesti johonkin selkeästi rajattuun luokkaan, ja arvaukseen voi luottaa melko varmasti.

Seuraavaan, käsin tehtävään tarkistukseen joutuvat ne sanat, joille on 2-6 hyväksyttyä arvausta: todennäköisesti ne kuuluvat sellaisiin taivutusluokkiin, joiden kohdalla äidinkielisten kielenpuhujienkin kielikorva vaihtelee. Tilanne on tällainen esimerkiksi useilla A-loppuisilla nomineilla: voiko sanoa perunia tai pasuunia, entä mataloja? Erityisesti Käänteissanakirjassa, jonka luokitus perustuu 1900-luvun alkupuoliskolla kerättyyn aineistoon, esiintyy melko runsaasti nykyajan kielenkäytöstä poikkeavaa taivutusta.

Osalle sanoista ei löydy ollenkaan hyväksyttäviä muotoja koneellisessa esitarkistuksessa. Näitä sanoja oli kummassakin listassa n. 3 %, ja ne edustivat melko erikoista sanastoa, kuten vierasperäisiä erisnimiä. Yksi mahdollisuus olisi ollut taivuttaa sanat johonkin taivutusmuotoon ja panna uudestaan arvaimeen, mutta tässä tapauksessa nopeammaksi keinoksi osoittautui puhdas käsityö.

Alustavasti hyväksyttyjä arvauksia Sanoja Osuus
0 319 3,3 %
1 3953 41,3 %
2 3660 38,2 %
3 1046 10,9 %
4 589 6,2 %
5 1 <0,1 %
6 2 <0,1 %
Yht 9570 100 %

Taulukko 6. Esitarkistuksessa jäljelle jääneiden vaihtoehtojen määrä Joukahaisessa

Sanoille, joissa saattaa olla astevaihtelua, arvain tuottaa sekä astevaihtelua sisältävän että sisältämättömän arvauksen. Vaikka joillain luokilla olisi täysi vastaavuus taivutustyypin suhteen, kaksi eri vaihtoehtoa astevaihtelun suhteen aiheuttaa sen, että sanalle hyväksytään alustavasti kaksi arvausta. Nämä saa tarkistettua täysin koneellisesti, sillä astevaihtelu on merkitty sekä Joukahaisen että Käänteissanakirjan sanoihin, vaikka astevaihtelutyypit ovatkin erilaisia. Arvain ehdotti sanalle kahta eri tyyppistä astevaihtelua vain yhdenlaisissa tapauksissa: jos sanakirjamuodossa esiintyy k kontinuantin jälkeen, astevaihtelun tyyppi saattaa olla D (arka : aran) tai L (arki : arjen).

4.3. Työhön käytetty aika

Sanojen tarkistaminen ihmisvoimin on ehdottomasti aikaavievin osuus työstä. Esitarkistetuista arvauksista oikeaa valitessa tuntivauhtini on 300-400 sanaa riippuen siitä, kuinka monta väärää arvausta joudun lukemaan yhtä oikeaa kohden.

Noin 3 % (~1500 kpl) osuudelle sanoista arvain ei tuottanut lainkaan hyväksyttäviä vaihtoehtoja. Loin luokitukset näille kokonaan käsityönä: luen sanan kerrallaan ja annan sille luokituksen, joko ulkomuistista tai etsimällä oikean taivutustyypin numeron Kotuksen sivuilta löytyvästä listasta. Lisäksi apuna on sanan luokitus toisessa listassa. Tällä menetelmällä sain tehtyä n. 200 sanaa tunnissa, mikä on selvästi hitaampaa kuin valmiiksi tehtyjen arvausten joukosta karsiminen, vaikka ehdinkin työn aikana oppia luokitusjärjestelmän melko hyvin.

5. Keskustelu

Tässä osiossa käsittelen työn aikana heränneitä ajatuksia ja avoimeksi jääneitä kysymyksiä. Saamani tehtävänanto, sanalistojen yhdistäminen, antaa varsin vapaat kädet – parhaassa tapauksessa hyvin suunnittelemalla saa siirrettyä paljon mekaanista työtä ihmiseltä koneelle, pahimmassa tapauksessa kieliteknologiset apuvälineet aiheuttavat vain lisävaivaa.

5.1. Arvaimesta

Arvain osoittautui hyödylliseksi työkaluksi sanojen luokitusten selvittämisessä. Toistaiseksi arvaimen tarkkuus ei ole riittävä, jotta tulokset voitaisiin hyväksyä sellaisenaan; niinpä arvaimen tuottama tuloste on suunnattu ensisijaisesti ihmislukijalle jälkitarkastusta varten. Arvain generoi jokaiselle ehdotukselle muutaman olennaisen taivutusmuodon, joten tarkistajan ei tarvitse tuntea luokitusjärjestelmää. Lisäksi on tärkeää, että oikea vaihtoehto on ehdotusten kärkipäässä. Arvaimesta saatava etu laskee nopeasti, jos jokaista sanaa kohden täytyy lukea useita rivejä virheellisiä ehdotuksia. Käyttäjälle näytetään kuusi todennäköisintä arvausta; suurimmassa osassa tapauksista näihin sisältyy myös oikea arvaus.

Testasin Käänteissanakirjan sanoilla, monennellako sijalla oikea arvaus keskimäärin oli. Krister Lindénin artikkelissa Guessers for Finite-State Transducer Lexicons (2009) on testattu samaa käyttäen aineistona Suomen kielen tekstikokoelmaa, joka on juoksevaa tekstiä ja sisältää siis kaikkia taivutusmuotoja. 1715 sanasta 48 oli verbejä, loput olivat nomineja. Omassa testissäni käsittelin nominit ja verbit erikseen nähdäkseni, vaikuttaako sanaluokka arvaimen tarkkuuteen. Tulokset olivat seuraavanlaisia:

Sija Esiintymät Prosenttiosuus
1 13287 79,5 %
2 1535 9,2%
3 440 2,6 %
4 504 3,0 %
5 147 0,9%
6 98 0,6 %
7-∞ 708 4,2 %
Yht 16719 100 %

Taulukko 7. Käänteissanakirja, substantiivit

Sija Esiintymät Prosenttiosuus
1 6185 82,9 %
2 602 8,1%
3 268 3,6 %
4 144 1,9 %
5 59 0,8%
6 60 0,8 %
7-∞ 142 1,9 %
Yht 7460 100 %

Taulukko 8. Käänteissanakirja, verbit

Sija Esiintymät Prosenttiosuus
#1 1140 73,7 %
#2 186 7,6 %
#3 64 2,9 %
#4 17 2,7 %
#5 4 1,2 %
#6 2 0,6 %
#7-∞ 302 10,8 %
Yht 1715 100,0 %

Taulukko 9. Suomen kielen tekstikokoelma (Lindén 2009)

Taulukoista 7-9 näkee, että saamani tulokset ovat hieman parempia kuin Lindénin raportoimat: Suomen kielen tekstikokoelman sanoilla noin 10 % sanoista jäi ilman oikeaa analyysia ensimmäisen kuuden arvauksen joukossa. Asiaan saattaa vaikuttaa se, että Lindénin aineisto oli juoksevaa tekstiä, kun taas kaikki minun testaamani sanat olivat sanakirjamuodossa. Lisäksi testiaineistoni on laajempi ja sisältää todennäköisesti tavallisempia sanoja – korpuksesta löytyvät sanat voivat olla harvinaisempia, esimerkiksi monet uudet sanat ovat sitaattilainoja, jotka eivät noudata suomen kielen fonotaksia.

5.2. Avoimia kysymyksiä

Vielä on avoimena se, mitä tehdään ainoastaan Nykysuomen sanalistassa esiintyville sanoille, jotka tarvitsevat sanaluokan. Verbit ja taipumattomat sanat saadaan selville taivutusnumeron perusteelle, joten ainoa selvitettävä asia on nominien jako substantiiveihin ja adjektiiveihin. Monet näistä sanoista ovat yhdyssanoja, ja todennäköisesti suurimman osan perusosalla on jo sanaluokka. Jos selvitettäväksi jää korkeintaan muutamia tuhansia sanoja, voi olla yksinkertaisempaa ja nopeampaa jättää tehtävä kokonaan ihmisen hoidettavaksi.

Jos sanoja näyttää olevan useita tuhansia, alkaa olla tehokkaampaa miettiä automaattisia ratkaisuja. Tietysti arvainta voi käyttää myös tässä, mutta hyöty ei ole niin suuri kuin taivutusparadigman selvittämisessä: ihmiselle on jo valmiiksi helppoa valita sanalle luokitus kahdesta vaihtoehdosta, toisin kuin 78 taivutustyypistä. Parempia keinoja sanaluokkien etsinnän koneellisesti ovat esimerkiksi korpuspohjaiset menetelmät: tarkastellaan, millaisissa syntaktisissa rooleissa sanat esiintyvät tai saavatko ne vertailumuotoja.

6. Lähteet

Pirinen, 2008
Suomen kielen automaattinen morfologinen jäsennin avoimen lähdekoodin menetelmin
Seppälä, 2006
Leksikkojen kehittämisestä äärellistilaisille morfologisille jäsentimille
Lindén, 2009
Entry Generation by Analogy for Morphological Lexicons
Lindén, 2009
Guessers for Finite-State Transducer Lexicons

-- InariListenmaa - 01 Oct 2008

Topic revision: r20 - 2009-04-24 - InariListenmaa
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2018 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback