Suomi-IT, osa 2

Ensimmäinen osassa herättelin ajattelemaan sitä, että yhteiskunnat rakentuvat aika paljon nykyään tietotekniikan päälle.

Toinen tähän liittyvä keskeinen ajatus on miettiä nimenomaan asiaa meidän suomalaisten näkövinkkelistä. Meidän – jos luet tätä tekstiä, niin todennäköisimmin kuulut kohderyhmään! Uskallan väittää, että et lukisi tätä, jollet ole suomalainen.

Kun on aikaa… ja melkein kaikki ovat etätyössä

Hyvä asia: Paljon on tapahtunut!

IT-palvelut vääjäämättä tuntuvat onneksi kääntyvän myös suomeksi. Tässä on kenties kyse tehokkuuden parantumisesta. Aina prioriteetissa ensimmäinen asia ei ole ohjelmiston kielivalintoihin liittyvät tehtävät. Tosin, nykyään Suomessa on voimassa julkisten hankintojen tarkka standardi, jossa mm. kielivalintaan ja ylipäätään julkisella rahalla tuotettavien IT-palvelujen käytettävyyteen panostetaan huomattavasti huomiota.

Väestö ikääntyy Suomessa, ja heillä on paljon sekä tarvetta että intoa hyötyä verkon kautta käytettävistä palveluista. On tärkeää, että nämä aivan perus kansalaisoikeuksia ajavat palvelut löytyvät selkeällä suomenkielellä.

Tehostumisen myötä on päästy ikuisesta minimum viable product -vaiheesta (MVP) irti, ja voidaan hioa ohjelmistoihin myös i18n eli tässä tapauksessa suomelle tapahtuva käännös. Lyhenne ‘i18n’ tulee sanan internationalization lyhemmästä muodosta, koska kyseinen alkuperäinen litania on aikamoinen kirjainten sekasotku!

Läheisiä termejä ovat myös

  • L10N (l10n) eli lokalisointi, jossa tarkoitetaan sovelluksen tiedon esitystavan mukauttamiseksi paikalliseen kulttuuriin sopivaksi

I18n on mekanismi, jossa ohjelmistoon jo (usein alkuvaiheessa) valitaan kaiken käyttöliittymän näkyvän sisällön tuottamiseen välipalikka, joka käy läpi halutun termin tai fraasin, ja kääntää sen oikealle kohdekielelle.

Yksinkertaisesti: sen sijaan että ohjelmoija laittaa suoraan sanastot ympäri ohjelmaansa, ja kutsuu kiinteätä merkkijonon tulostusta..

print("nimesi:")

..niin i18n -modulin olleassa käytössä, kutsutaan menetelmää joka hakee oikean käännöksen ja käyttää sitä:

print(trans('nimesi:',"en"))

Esimerkissä yllä i18n-modulin funktio on nimeltään trans() ja se ottaa 2 parametria: merkkijonon tunnisteen, ja halutun kohdekielen. ‘en’ on englanti, eli tuossa käännetään merkkijono “nimesi:” englanniksi, joka kääntyisi todennäköisesti “your name:”

PHP:ssä on oma joukkonsa i18n-moduleita; Reactille löytyy useita, ja kun riittävästi kaivaa tai kyselee, varmasti jokaiselle kielelle on ainakin yksi toimiva käännösmoduli. Teknisesti nämä on usein toteutettu varsin suoraviivaisesti, jolloin työ jää enimmäkseen ihmiskääntäjälle. Käännös tehdään sanastoihin (tiedostoihin), jotka sisällytetään tavalla tai toisella ohjelmistoon. Teknisesti katsoen sanasto voi olla resurssina eli irrallinen tiedosto, tai se voidaan kääntää (compile) osaksi ohjelman paketointia. Mikään ei estä sinänsä laittamasta sanastoa vaikka client-server tyyppisesti verkkoonkin, tällöin tosin kannattaa huolehtia parista asiasta erityisen tarkasti: suorituskyky voi saada pahan iskun, mikäli jokainen käännöstermin esiintymä haetaan vasta tarvittaessa verkosta, koska olipa netti miten nopea hyvänsä, kuitenkin erilaisilla protokollilla (HTTP) on omat painolastinsa (overhead) pelkän hyötysisällön lisäksi.

Kysyin tuolloin 2018:

“Tarvitsemmeko kansallista – suomalaista versiota – tietoyhteiskunnasta, vai voimmeko rakentaa tarvittavan alustan käyttäen kaupallisia, monikansallisia digitaalisia palveluita joiden olinpaikka, taustateknologia, tarkoitusperä ja historia ei välttämättä ole suoranaisesti käsissämme?”

Olemme pieni kielivähemmistö maailmassa – entä sitten?

Kielivähemmistössä olemisella on merkitystä. Esimerkiksi ohjelmistot tehdään monesti suurille kielimarkkinoille, etupäässä englannin-, kiinan-, venäjän-, ranskan-, saksan ja espanjan kielille. Suomi näyttäytyy todellakin varsin häntäpäässä.

Käytännössä tämä on näkynyt kautta historian: ohjelmistot ovat olleet kieliasunsa suhteen “vähän sinne päin”, mitä tulee suomen kieleen. Ohjelmissa on monesti yllättävän paljon sanastoa. Sanoja käännettäessä voidaan toisinaan kääntää “verbatim”, suoraan sanasta-sanaan lähdekielen ja kohdekielen välillä. Toisinaan pitää etsiä ja jopa luoda suomenkielisiä vastineita. Tietotekniikka on käännösten sisäpiiriläisille ollut aina hilpeäkin toiminta-alue. Onko englanninkielinen “cookie” siis pipari, leivos, vai eväste? Kielitoimisto päätyi evästeeseen. Kun sanaa on nyt jo useita vuosia pidetty standardina, eväste ei enää kalskahda lainkaan hassummalta, eikö totta?

Ratkaiseeko AI ja automatisoitu käännösteknologia kaikki ongelmat?

Kieliteknologiaa tukee nykyään voimakkaasti automaattisen kääntämisen tuoma teho.

Kääntämisen naiivi idea on hyvin helppo ymmärtää:

  • yksinkertainen FOR-luuppi riittää
  • idea: poimitaan lähdetekstistä yksittäiset sanat, yksi toisensa perään, kunnes sanoja ei enää ole
  • jokaiselle sanalla haetaan käännöstaulusta suomenkielinen vastinpari
  • lisätään käännettyyn kohdetekstiin vastinpari (lisäämällä vaan tekstin perälle, eli ‘konkatenoimalla’)

Idea kuulostaa toimivalta. Pieni koekin jo paljastaa, että asia ei ole näin helppo, ja käännöksestä tulee tökerön kuuloista. Kokeillaan:

Englannista “Computers can be super useful in language technology.”
=> “Tietokoneet voida olla hyvin käyttökelpoinen jossain kieli teknologia.”

Ongelmat liittyvät moniin asioihin, joista voidaan mainita:

  • sanajärjestys ei ole eri kielissä samanlainen, joten käännöstä ei voida tehdä mekaanisesti (“lineaarisesti”), vain FOR-luupilla lähdetekstiä parsimalla, yksi sana kerrallaan
  • sanojen taivutus on monimutkaisen säännöstön reguloima (vilkaise suomen kielestä projekti Morpho, ja demo-ohjelma Morfessori)
  • aina 2 sanaa ei voida kääntää erillään sellaisenaan, vaan pitää ymmärtää lauseyhteydestä, mikä on oikea käännös
  • jotkin sanat voivat olla homonyymejä, jolloin samalla sanalla on useita eri merkityksiä; tässä palataan osittain myös edelliseen sääntöön, eli lauseyhteys määrittää lopulta oikean käännöksen

Käännökset sujuvat alkuun hyvin nopeasti; tuoreesta kääntämättömästä tekstistä leijonanosa voi olla varsin vakiomuotoista ja helposti kääntyvää.

Kokeilin itse tehdä muutamia kohtuullisen isoja (500-1500 lausetta) käännöksiä POEdit -softalla. POedit hakee (kaupallisessa versiossa) netistä löytyviä Microsoft Bing -palvelun, Google Translaten ja muutaman muun avustajan käännösehdotuksia.

Yllättävän suuri osa POEditissä tekemistäni WordPress-lisäosan projektien lauseista (usein > 60%) kääntyi täysin automaattisesti, vaikka lauserakenteet olisivat monimutkaisia. Suomen kieli on nimittäin vielä vuosikymmen takaperin ollut automaattikäännöksille hyvin vaikea nakki. Ilmeisesti tekoäly on parantunut, tai aineistoa on mekaanisesti toimiville osille nyt enemmän saatavissa.

Wikipedia listaa kielten puhujasuosion seuraavasti:

  1. mandariinikiina
  2. espanja
  3. englanti
  4. hindi
  5. bengali
  6. portugali
  7. venäjä
  8. japani
  9. punjabi
  10. marathin kieli

Tyypillinen ohjelmistojen alkuperäiskieli on joko englanti, espanja, saksa, tai ranska. Näistä voidaan kääntää muihin kieliin.

Tästähän on etuakin! Me opimme ainakin tuon yleisimmän tietokoneohjelmistojen ja median kielen, englannin, varsin nopeasti.

Toisaalta, tasa-arvoisuuden vuoksi emme missään nimessä voi vaatia kansalaisilta hyvää englannin kielen osaamista vain siksi, että he voisivat täysipainoisesti osallistua esimerkiksi:

  • vaaleissa äänestämiseen
  • pankkiasiointiin
  • opetukseen
  • oppimiseen oppivelvollisuuden jälkeen

Korona-pandemia 2020-2021 aiheutti ennalta-arvaamattoman ja nopean digiloikan ympäri maailmaa. Oli pakko.

Mitä digiloikalla tarkoitetaan?

  • siirryttiin etätyöhön työpaikoilla, joilla tämä on mahdollista
  • alettiin käyttää enemmän digitaalista kohtaamista; videotapaamisia ja nettipuheluita
  • ajankäytöstä tuli enemmän ennakoivaa, kalenterin merkitys nousi
  • osa työstä piti tehdä uudella tavalla, ikään kuin “laput osittain silmillä”, kun välitöntä työkaverien seuraa ei aina ollut saatavilla
  • ihmisten välinen, pieni läsnäolossa välittyvä tieto piti välittää esimerkiksi äänensävyllä, tai emojeilla chatissa
  • kenties myös kehitettiin työn vaiheiden analyyttistä ymmärrystä samalla
  • täysin kotimaisille digitaalisille käyttöliittymille syntyi sosiaalinen tilaus
  • turha työ jäi helpommin pois, ja kuulemma työstä tuli tehokkaampaa

Montako suomalaista ohjelmistotuotetta tiesit olevan päivittäisessä, kriittisessä käytössä 2020-2021 aikana? Aika monta nimittäin on, itse asiassa.

  • SSH (tietoturvalliset yhteydet, joita erityisesti IT-ylläpito käyttää)
  • Wilma (koulujen ja kotien välinen kommunikointi)
  • Vero
  • KELA
  • DVV (Digi- ja viestintävirasto)
  • kuntien web-saitit ja muut asiointiportaalit
  • urheiluseurojen sivustot ja digitaaliset palvelut
  • kunnallisten terveyskeskusten palvelut
  • kaupalliset lääkärikeskukset ja heidän toiminnanohjausjärjestelmät
  • THL (kansallinen terveyden ja hyvinvoinnin tukimustyötä tekevä laitos)

Voisiko osaa näistä tuotteistaa pidemmälle, ja viedä ulkomaille onnistuneena konseptina? Uskon, että voisi. Katsotaan taas parin vuoden päästä lisää!

Linkkejä mainioihin suomalaista osaamista edustaviin ohjelmistotaloihin

Jukka Korpelan sivustot

Korpela on legenda suomalaisen tietojenkäsittelyn alalla. Hän on ammentanut paljon vaikutteita, ja tehnyt erittäin onnistuneesti selkeää tekstiä suomeksi. Eräs ensimmäisistä kirjoista, joita luin yliopistotasolla C-ohjelmointikielestä, oli Korpelan ja Larmelan kirjoittama. Suosittelen!

Linkit suomen datakulttuuriin

Linkit kääntäjien työkaluihin

Published by jukkasoft

Me: a code enthusiasta, technology optimist, but also a realist. In my blog something like 80% of the articles are technology related - mostly in English and Finnish. I like to envision and ponder about things, how life could be, what we are doing wrong today, and so on. "Invented" a facebook -like system in 2000, as a short product pamphlet. Haven't yet realized the 20+ ideas that might have become big things. Maybe learning this skill one of these days!

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: