Oikeinkirjoituksen tarkistin
Tietotekniikassa oikeinkirjoituksen tarkistin (joka tunnetaan myös nimillä oikeinkirjoituksen tarkistus, korjausluku, oikaisuluku tai oikoluku) on tietokoneohjelma tai ohjelman toiminto, joka tarkistaa dokumentin sanojen oikeinkirjoituksen. Oikeinkirjoituksen tarkistin voi olla erillinen tekstejä käsittelevä sovellusohjelma. Yleensä tarkistin on kuitenkin osa laajempaa sovellusta, esimerkiksi tekstinkäsittelyohjelmaa tai sähköpostiohjelmaa.
Oikeinkirjoituksen tarkistin toimii vertaamalla kutakin syötesanaa sanastoon. Jos sanaa ei löydy sanastosta, tarkistin merkitsee sen virheelliseksi ja voi ehdottaa korjauksia. Yksinkertainen korjausehdotusalgoritmi voi etsiä sanastosta syötesanaa muistuttavia sanoja editointietäisyyden perusteella.
Oikeinkirjoituksen tarkistin voi toimia kirjoituksen aikana ja ilmoittaa käyttäjälle virheestä esimerkiksi alleviivaamalla virheellisen sanan. Se voi myös tarkistaa käyttäjän pyynnöstä kokonaisen dokumentin tai sähköpostiviestin. Tekstinkäsittelyohjelmat tarjoavat yleensä molemmat vaihtoehdot.
Oikeinkirjoituksen tarkistimen sanasto on väistämättä aina epätäydellinen varsinkin erisnimien ja lyhenteiden osalta. Useimmissa tarkistimissa käyttäjä voi lisätä uusia sanoja sanastoon. Joihinkin tarkistimiin on saatavana myös eri alojen erikoissanastoja.
Eri kielten asettamat erilaiset vaatimukset
[muokkaa | muokkaa wikitekstiä]Eri kielet asettavat oikeinkirjoituksen tarkistimien ohjelmoijille hyvin eri tasoisia vaatimuksia, sillä se, kuinka paljon tarkistimen pitää sisältää tietoa, riippuu runsaasti kielen ominaisuuksista. Kielissä, joissa sanoilla ei ole paljon taivutusmuotoja eikä yhdyssanoja paljon ole, esim. englannissa, tarkistimen sisällöksi mahdollisesti riittää pelkkä sanalista, mutta esimerkiksi suomen kielen kaltaisissa hyvin paljon sanoja taivuttavissa ja yhdistelevissä kielissä oikeinkirjoituksen tarkistimen tulee sisältää runsaasti tietoa kielen morfologiasta. Suomen kielen oikeinkirjoituksen tarkistimen täytyy tuntea esimerkiksi sija- ja persoonapäätteet, liitepartikkelit, possessiivisuffiksit sekä astevaihtelu. Yleispätevä sanaston toteutus voi perustua esimerkiksi äärellisiin automaatteihin.
Taivutustakin isompi haaste ovat yhdyssanat. Suomen kielen yhdyssananmuodostus on varsin vapaata, mutta kaikki yhdyssanat eivät ole semanttisesti järkeviä. Koska oikeinkirjoituksen tarkistimella ei ole yleensä tietoa semantiikasta, tarkistimen tekijä joutuu tasapainoilemaan vapaan ja rajoitetun yhdyssananmuodostuksen välillä. Liian vapaa toteutus voi hyväksyä ja ehdottaa outoja yhdyssanoja; liian rajoitettu toteutus puolestaan hylkää epätavalliset mutta kelvolliset yhdyssanat.
Kaupallisia suomen kielen oikeinkirjoituksen tarkistimia ovat kehittäneet muun muassa Lingsoft, Kielikone ja Lanser Data.[1] Ilmaisia tarkistimia ovat muun muassa Soikko ja Voikko.
Historia
[muokkaa | muokkaa wikitekstiä]Ensimmäisen oikeinkirjoituksen tarkistimen kirjoitti Les Earnest Massachusetts Institute of Technologylla vuonna 1961. Earnest oli kehittänyt tekstintunnistusohjelmiston vuosina 1959–1963, ja näki tarpeelliseksi lisätä listan hyväksyttävistä sanoista. Perustaessaan Stanfordin yliopistolla Tekoälylaboratoriota (SAIL) Earnest rekrytoi 1967 jatko-opiskelijoita kehittämään uuden oikeinkirjoitustarkistimen keräämäänsä 10 000 englannin kielen sanan sanalistaan perustuen. Vuonna 1971 jatko-opiskelija Ralph E. Gorinin kehittämä SPELL-ohjelma pystyi ehdottamaan vaihtoehtoja väärin kirjoitetuille sanoille. Ohjelmaa jaettiin ARPAnetissa muille PDP-10:n käyttäjille.[2]
Muita varhaisia kehittäjiä olivat Brownin kielitieteen professori Henry Kucera, joka kehitti ensimmäisen oikeinkirjoituksen tarkistimen DEC:in VAX-koneille 1982. Hän perusti International Spell Check -yrityksen, jonka tarkistinta käyttivät WordStar ja Microsoft Word.[3]
IBM:lle ensimmäisen oikeinkirjoituksen tarkistimen kehittivät Georgetownin yliopiston tutkijat.[4]
Myös mikrotietokoneille oikeinkirjoituksen tarkistimia oli viimeistään 1980, kuten Commodore PETin WordPro 3:lle tarkoitettu WordCheck.[5]
Avoimen lähdekoodin ohjelmissa
[muokkaa | muokkaa wikitekstiä]Unixissa yleisesti käytetty ispell-ohjelma perustuu R. E. Gorinin ohjelmaan. Sen muunsi C-kielelle MIT:n Pace Willisson. Tämänkaltaiset oikeinkirjoituksen tarkistimet perustuvat sanalistoihin ja päätteisiin (affix) ja toimivat hyvin indoeurooppalaisille kielille.[6]
Ispellista on eräitä klooneja, joten GNU-projektin GNU Aspell. Aspellin pääasiallinen parannus on, että se pystyy tarkemmin ehdottamaan oikeita vaihtoehtoja väärin kirjoitetuille englannin sanoille.[7]
Johtuen perinteisten oikeinkirjoituksen tarkistimien kyvyttömyydestä tarkistaa monimutkaisesti taipuvien kielten sanoja, kehitti unkarilainen László Németh Hunspell-ohjelman, joka perustuu morfologiseen analyysiin ja tukee agglutinoivia kieliä ja monimutkaisia yhdyssanoja. Hunspell käyttää myös Unicodea sanastoissaan.[8] Hunspell otettiin käyttöön OpenOffice.orgissa versiossa 2.0.2 aiemmin MySpellin sijaan.
Hunspell on myös lisätty Mac OS X Snow Leopard -käyttöjärjestelmään nimellä AppleSpell.[9] Tämä on yleisesti tuettu Mac OS X:n ohjelmissa. Tosin eräät ohjelmistot kuten Microsoft Word toteuttavat oman oikeinkirjoituksen tarkistimensa.
Enchant on toinen yleinen oikeinkirjoituksen tarkistin, joka on lähtöisin AbiWord-ohjelmasta. Sen tavoitteena on yhdistää yhden rajapinnan alle eri kieliä tukevia ohjelmia kuten Aspell, Hunspell, Nuspell, Hspell (heprea), Voikko (suomi), Zemberek (turkki) ja AppleSpell.[10]
Katso myös
[muokkaa | muokkaa wikitekstiä]Lähteet
[muokkaa | muokkaa wikitekstiä]- ↑ Antti Arppe: Ei yhtä ainoaa polkua – Suomalaisia kokemuksia matkalla kieliteknologisesta tutkimuksesta liiketoimintaan FiLT, Suomen kieliteknologian dokumentaatiokeskus. Arkistoitu 22.5.2007. Viitattu 30.4.2007.
- ↑ https://web.archive.org/web/20121022091418/http://www.stanford.edu/~learnest/spelling.pdf
- ↑ https://www.brownalumnimagazine.com/articles/2010-05-13/teaching-computers-to-spell
- ↑ https://web.archive.org/web/20090205140452/http://cled.georgetown.edu/faculty/
- ↑ https://www.commodore.ca/gallery/magazines/compute/Compute-008.pdf
- ↑ https://www.cs.hmc.edu/~geoff/ispell.html
- ↑ http://aspell.net/
- ↑ https://hunspell.github.io/
- ↑ https://hunspell.github.io/
- ↑ https://github.com/AbiWord/enchant