Skip to content

Aloitussivu suomeksi

Mika Vainio edited this page Feb 20, 2023 · 35 revisions

Työkaluja suomenkielisen oikolukusanaston ylläpitoon

Affinity Publisher käyttää LibreOffice-tekstinkäsittelyohjelman hunspell-sanakirjoja Windows-pohjaisissa tietokoneissa. https://github.com/LibreOffice/dictionaries -repositoriossa ei kuitenkaan tällä hetkellä ole suomalaista sanastoa. Monet LibreOfficen käyttäjät ovat siirtyneet käyttämään Voikon oikeinkirjoituksen tarkistusta ja Joukahainen-sanakirjaa, jotka eivät ole yhteensopivia Affinity Publisher:n kanssa. Vanhoja hunspell-sanastoja löytyy internetistä. Niitä voi käyttää kirjoitusasun tarkistamiseen ja tavuttamiseen, mikäli merkkilajimääritykset on tehty oikein. Sanastojen käytöstä ja asentamisesta on olemassa ohjeita, mutta osa niistä on melko ylimalkaisia kertomuksia siitä, kuinka asennus on saatu toimimaan tietyssä laitteessa. Tämän repositorion tarkoituksena on tarjota työkaluja sanaston laajentamiseen ja ylläpitoon. Samalla annetaan ohjeet sanakirjojen asentamiseen Windows 10 ja Windows 11 käyttöjärjestelmillä varustettuihin tietokoneisiin. Tässä repositoriossa on 3 sanastotiedostoa sekä useita ohjelmia, jotka ilmenevät seuraavasta taulukosta:

Tiedosto Käyttötarkoitus
fi_FI.aff Sanojen muodostumisen yleiset säännöt
fi_FI.dic Oikeinkirjoitussanasto
hyph_fi_Fi.dic Tavustussäännöt
maintainGui.exe Graafisella käyttöliittymällä varustettu ylläpitotyökalu

source-hakemistosta löytyvät sovelluksen lähdekoodit. Sovelluksen käyttöliittymä on toteutettu Qt:n työkaluilla. Tarkempaa tietoa lähdekoodista englanninkielisellä Wiki-sivulla

Sanakirjatiedostoista

Hunspell on rakenteellisesti huono ratkaisu suomen kielen sanojen käsittelyyn, mutta Affinity-sovellusten kanssa se on tällä hetkellä ainoa vaihtoehto. Mac-käyttäjät voivat tehdä oikeinkirjoituksen tarkistuksen käyttöjärjestelmän työkaluilla. Tavutusta varten tarvitaan kuitenkin hyph_fi_FI.dic-sanakirja myös Applen valmistamiin laitteisiin.

Affix-tiedosto sisältää määritykset sanojen muodostamiseksi. Kun käyttäjä kirjoittaa sanastosta puuttuvan sanan, ehdotukset tuotetaan tässä tiedostossa määriteltyjen sääntöjen perusteella. Ehdotuksia luodaan käyttämällä oikolukusanakirjan (.dic-tiedosto) sanoja ja .aff-tiedostoon määriteltyjä etu- ja jälkiliitteitä. Etuliite (suffix) on määritelty lyhenteellä SFX ja jälkiliite (prefix) lyhenteellä PFX. Tarkemman kuvauksen tiedostossa käytetyistä merkinnöistä saa esim. Ubuntun man-sivuilta tai mikäli tarvitsee kattavan kuvauksen https://spylls.readthedocs.io/en/latest/hunspell/data_aff.html. Sanakirjatiedostossa olevan sanan perään voidaan määritellä kirjain (flag) tai useampia kirjaimia tai näitä edustava numeerinen arvo (flag vector alias), jotka kertovat, mitä aff-tiedostoon määriteltyjä sääntöjä sanan yhteydessä noudatetaan.

PFX E Y 2
PFX E   0     yli         .
PFX E   0     yli-        i

SFX L Y 9
SFX L   0     kin         .
SFX L   0     ko          .
SFX L   0     kaan        .
SFX L   0     han         .
SFX L   0     pa          .
SFX L   0     kinko       .
SFX L   0     pahan       .
SFX L   0     kohan       .
SFX L   0     kaanko      .

Edellisessä esimerkissä näkyviä sääntöjä käyttämällä saadaan muodostettua etuliitteiden avulla sanaehdotuksia tyyliin: johtaja -> ylijohtaja , insinööri -> yli-insinööri. Viimeisessä sarakkeessa oleva kirjaimen avulla määritellään perussanan ensimmäinen tai viimeinen kirjain, joka ohjaa sanaehdotuksen muodostamista. Yksittäisen kirjaimen lisäksi voidaan käyttää kirjainvektoreita tai määritellä kirjaimia, joita sanassa ei saa olla. Vastaavasti saadaan jälkiliitteiden avulla muodostettua sanaehdotuksia esim. seuraavasti: osa -> osakin, osako, osakaan jne. Vastaavasti oikolukusanakirjassa voidaan määritellä mitä etu-tai jälkiliitteitä sanan yhteydessä sovelletaan:

osa-alueet
osa-alueiden
osa-alueita
osa-aluetta
osa/LN
osaaja
osaajaksi

Sanakirjaan on merkitty sana osa ja sen perään on sijoitettu lipuiksi L ja N kirjaimet, joiden perusteella saadaan sanaan liittyvät säännöt. Liput merkitään sanastoon kauttaviivan (/) avulla. Kuten yllä olevasta esimerkistä nähdään, vain harvoihin sanoihin on kytketty sananmuodostukseen liittyviä sääntöjä. Esimerkiksi sanaan osaaja olisi voitu liittää samat säännöt kuin sanaan osaaja. Näin ei kuitenkaan ole tehty useimpien sanakirjaan lisättyjen sanojen osalta. Affix-tiedostoon ei myöskään ole luotu sääntöä ksi-päätteen muodostamiseen, jolloin sana osaajaksi on lisätty erikseen sanakirjaan.

Affix-tiedoston säännöt

Suomen kielessä sanan taipuminen määritellään jälkiliitteiden avulla. Seuraavassa esimerkissä on kuvattu, miten säännöt määritellään

SFX F Y 3
SFX F   s     kselle     s
SFX F   de    teen       de
SFX F   0     an         [^a]a

Ensimmäinen rivi sisältää sääntölohkon otsakkeen. SFX määrittelee, että kyseessä on jälkiliite. F on lippu, jolla lohkoon viitataan. Y mahdollistaa etuliitteiden käytön samassa yhteydessä. N estää sen. 3 on lohkoon kuuluvien sääntöjen lukumäärä. Loput rivit määrittelevät itse säännöt. Ensimmäisessä säännössä (vasemmalta oikealle lukien) poistetaan s ja lisätään kselle, jos sana päättyy s kirjaimeen. Esim. haukotus -> haukotukselle. Seuraava sääntö poistaa sanan lopusta merkkijonon de ja lisää merkkijonen teen, mikäli sana päättyy merkkijonoon de. Esim. sade -> sateen. Viimeisessä säännössä ei poisteta merkkejä (0) lisätään an, mikäli viimeinen kirjain on a, mutta edeltävä kirjain ei ole luettelossa [^a] Esimerkiksi kauppa -> kauppaan. Negaation merkkinä on ^ ja luettelot muodostetaan käyttäen hakasulkeita. Luettelon jäsenten välillä ei käytetä pilkkuja. Usein esiintyvä luettelo on[äeiöy], jolla kerrotaan että sana loppuu johonkin luettelossa mainittuun vokaaliin. Mikä tahansa kirjain merkitään pisteellä (.)