Blame doc/oikoluku-korjausehdotukset.txt

Packit 2b3545
2009 Harri Pitkänen <hatapitk@iki.fi>                    GPLv2+
Packit 2b3545
Packit 2b3545
 Oikoluvun korjausehdotusten järjestäminen
Packit 2b3545
 =========================================
Packit 2b3545
Packit 2b3545
Seuraavassa on kuvattu algoritmi, jolla oikoluvun korjausehdotukset
Packit 2b3545
järjestetään. Perusperiaate on, että kullekin korjausehdotukselle
Packit 2b3545
lasketaan käänteinen painokerroin siten, että sana, jolla on pienin
Packit 2b3545
painokerroin, tulkitaan todennäköisimmäksi korjaukseksi tunnistamattomalle
Packit 2b3545
sanalle. Painokertoimet ovat positiivisia kokonaislukuja.
Packit 2b3545
Packit 2b3545
Vaihe 1:
Packit 2b3545
Packit 2b3545
Korjausehdotukselle annetaan sanaluokasta ja taivutusmuodosta riippuva
Packit 2b3545
paino p1 seuraavasti taulukon mukaan:
Packit 2b3545
Packit 2b3545
NOMINIT
Packit 2b3545
Sijamuoto     p1 
Packit 2b3545
nimentö       2
Packit 2b3545
omanto        3
Packit 2b3545
osanto        5
Packit 2b3545
olento       20
Packit 2b3545
tulento      20
Packit 2b3545
sisäolento    8
Packit 2b3545
sisäeronto   12
Packit 2b3545
sisätulento   8
Packit 2b3545
ulko-olento  12
Packit 2b3545
ulkoeronto   30
Packit 2b3545
ulkotulento  20
Packit 2b3545
vajanto      60
Packit 2b3545
seuranto     60
Packit 2b3545
keinonto     20
Packit 2b3545
Packit 2b3545
Yllä olevat painokertoimet perustuvat löyhästi taivutusmuotojen
Packit 2b3545
yleisyyteen kirjoitetussa tekstissä (VISK § 1227).
Packit 2b3545
Packit 2b3545
MUIDEN SANALUOKKIEN SANAT: p1 = 4
Packit 2b3545
Packit 2b3545
Vaihe 2:
Packit 2b3545
Packit 2b3545
Kerroin p2 lasketaan sen mukaan, miten monta vahvan morfeemirajan
Packit 2b3545
erottamaa osaa siinä on.
Packit 2b3545
 p2 = 8^(min({erillisten osien lukumäärä}, 5) - 1).
Packit 2b3545
Packit 2b3545
Vaihe 3:
Packit 2b3545
Packit 2b3545
Kerroin p3 määräytyy siitä, kuinka suuria muutoksia sanan kirjainkoon
Packit 2b3545
käyttöön on tehtävä, jotta sana olisi oikein kirjoitettu.
Packit 2b3545
Packit 2b3545
 Jos sana on sellaisenaan oikein, p3 = 1.
Packit 2b3545
 Jos sanan alkukirjain on vaihdettava isoksi kirjaimeksi, p3 = 2.
Packit 2b3545
 Jos sanan kirjainkokoon on tehtävä muita muutoksia kuin ensimmäisen
Packit 2b3545
 kirjaimen muuttaminen isoksi, p3 = 3.
Packit 2b3545
Packit 2b3545
Monikäsitteiset sanat:
Packit 2b3545
Packit 2b3545
Jos sanalla on useita analyysejä, valitaan painokertoimet siitä
Packit 2b3545
analyysistä, jonka painokerroin p3 on pienin. Jos näitäkin on useita,
Packit 2b3545
valitaan se analyysi, jonka painokertoimien tulo p1 * p2 * p3 on
Packit 2b3545
pienin.
Packit 2b3545
Packit 2b3545
Vaihe 4:
Packit 2b3545
Packit 2b3545
Korjausehdotusten generointijärjestys Voikossa on sellainen, että
Packit 2b3545
ensin generoidaan ehdotukset, jotka eroavat alkuperäisestä sanasta
Packit 2b3545
mahdollisimman vähän. Generointijärjestyksen määrää käytettävä
Packit 2b3545
SuggestionStrategy-olio, joten järjestys riippuu myös siitä, ollaanko
Packit 2b3545
korjaamassa ihmisen tekemiä näppäilyvirheitä vai optisessa
Packit 2b3545
tekstintunnistuksessa tapahtuneita virheitä. Generointijärjestys
Packit 2b3545
vaikuttaa sanan painokertoimeen seuraavan kaavan mukaisesti:
Packit 2b3545
 n = korjausehdotuksen järjestysluku (ensimmäinen = 0)
Packit 2b3545
 p4 = n + 5
Packit 2b3545
Packit 2b3545
Lopullinen painokerroin:
Packit 2b3545
Packit 2b3545
Lopullinen painokerroin on edellä laskettujen painokerrointen tulo:
Packit 2b3545
 p = p1 * p2 * p3 * p4
Packit 2b3545
Packit 2b3545
Jos korjauksena ehdotetaan sanan jakamista kahteen osaan, lasketaan
Packit 2b3545
kertoimet p1, p2 ja p3 kummallekin osalle erikseen, ja lopullinen
Packit 2b3545
kerroin on
Packit 2b3545
 p = (p1_1 * p2_1 * p3_1 + p1_2 * p2_2 * p3_2) * p4
Packit 2b3545
Packit 2b3545
Painokerrointen arvoalue on siis generoitaessa enintään 15 ehdotusta
Packit 2b3545
 [2 * 1 * 1 * 5, 60 * 4096 * 3 * 19] = [10, 14 008 320]
Packit 2b3545
Packit 2b3545
Lähteet:
Packit 2b3545
Packit 2b3545
VISK = Auli Hakulinen, Maria Vilkuna, Riitta Korhonen, Vesa Koivisto,
Packit 2b3545
Tarja Riitta Heinonen ja Irja Alho 2004: Iso suomen kielioppi.
Packit 2b3545
Helsinki: Suomalaisen Kirjallisuuden Seura. Verkkoversio, viitattu 11.9.2009.
Packit 2b3545
Saatavissa: http://scripta.kotus.fi/visk URN:ISBN:978-952-5446-35-7
Packit 2b3545