| University of Turku | ||
Suomen kielen tavutusSuomen kielen tavutus on yksinkertaista, kun sen osaa. Jopa tietokonekin on mahdollista opettaa tavuttamaan. Omituista on se, että Suomen kieltä tavutetaan TAKAPERIN.
Yksinkertaisin tavustusalgoritmi toimii siten, että lähdetään sanana lopusta.
jokaisen vastaantulevan konsonantin (tai tavumerkin) eteen pistetään tavuviiva.
Algoritmi ei toimi, jos konsonantteja on peräkkäin useampia, esim PORKKANA
(PORK-KA-NA), joka tavuttuisi tällä säännöllä seuraavasti: POR-K-K-A-NA.
Sääntö ei kuitenkaan ole täydellinen vieläkään. Esimerkiksi sana KAUNIAINEN (KAU-NI-AI-NEN) tavuttuukin nyt KAU-NIAI-NEN. tarvittaisiin siis vielä tätä koskeva lisäsääntö. Samaten VALTIONYHTIÖ on edelleen VAL-TIO-NYH-TIÖ (huono esimerkki) ja OHIO on O-HIO Virheetkin huomioiden yksinkertaisella menetelmällä on päästy kohtuullisen hyvään tulokseen. Alla on listaus QuickBasicilla kirjoitetusta ohjelmasta, joka demonstroi tätä algoritmia. Olen kirjoittanut tämän ohjelman joskus 198x -luvulla, enkä ole hionut tätä versiota silloin enkä sen jälkeen. Parhaimmillaan olen joskus saanut tämän algoritmin sullottua neljälle Basic-riville input "Anna tavutettava sana";sana$ sana$ = UCASE$(sana$) CALL TAVUTA(sana$) PRINT "Tavutettu sana"; sana$ END SUB TAVUTA (sana$) STATIC l = LEN(sana$) an$ = "AEIOUYÄÖ" 'vokaalit FLAG = 0 vok = 1 ANA$ = RIGHT$(sana$, 1) 'sanan viimeinen merkki FOR u = l - 1 TO 1 STEP -1 k$ = MID$(sana$, u, 1) v = 0 IF INSTR(an$, k$) > 0 THEN 'löytyi vokaali v = 1: vok = 1 ENDIF IF FLAG = 0 THEN T$ = "-" IF v = 1 THEN T$ = "" IF (T$ = "-") AND (vok = 0) THEN T$ = "" IF T$ = "-" THEN FLAG = 1: vok = 0 ELSE FLAG = 0 END IF IF u = 1 THEN T$ = "" ANA$ = T$ + k$ + ANA$ T$ = "" NEXT sana$ = ANA$ END SUB |
||