From 5223a3d9c9766e0d90cf9b657c84bbfa5fd435de Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Mon, 8 Oct 2018 17:55:58 +0200 Subject: [PATCH] (Fin) Add some cases for weakGrade + add exceptions to Kotus.gf --- src/finnish/Kotus.gf | 16 ++++++++++++---- src/finnish/MorphoFin.gf | 5 +++-- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/finnish/Kotus.gf b/src/finnish/Kotus.gf index b5fe474fe..802432d68 100644 --- a/src/finnish/Kotus.gf +++ b/src/finnish/Kotus.gf @@ -41,11 +41,19 @@ oper (s + "n") (init s + case a of {"a" => "o" ; _ => "ö"} + "j" + a) ; d09A : Str -> NForms -- 1040 ääniraita - = \s -> let a = last s in dSilakka s - (weakGrade s + "n") - (init s + case a of {"a" => "o" ; _ => "ö"} + "j" + a) ; + = \s -> case s of { + x + "aaka" => dSilakka s (x+"aa'an") (x+"aakoja") ; + x + "aika" => dSilakka s (x+"ajan") (x+"aikoja") ; -- lots of compound words in NewDictFin that end in aika, but are not analysed as compounds + _ => let a = last s + in dSilakka s + (weakGrade s + "n") + (init s + case a of {"a" => "o" ; _ => "ö"} + "j" + a) + } ; d10 : Str -> NForms -- 2119 äänittäjä - = \s -> dSilakka s (s + "n") (init s + "i" + vowelHarmony (last s)) ; + = \s -> case s of { + x+"poika" => dSilakka s (x+"pojan") (x+"poikia") ; + _ => dSilakka s (s + "n") (init s + "i" + vowelHarmony (last s)) + } ; d10A : Str -> NForms -- 284 änkkä = \s -> dSilakka s (weakGrade s + "n") (init s + "i" + vowelHarmony (last s)) ; d11 : Str -> NForms -- 46 ödeema diff --git a/src/finnish/MorphoFin.gf b/src/finnish/MorphoFin.gf index e1a2580ec..7edd84bae 100644 --- a/src/finnish/MorphoFin.gf +++ b/src/finnish/MorphoFin.gf @@ -858,7 +858,8 @@ resource MorphoFin = ResFin ** open Prelude in { ("hk" | "tk") + _ => kukko ; -- *tahko-tahon, *pitkä-pitkän ("f"|"s") + ("k" | "p" | "t") + _ => kukko ; -- *lasku-lasvun, *raspi-rasvin, *lastu-lasdun, *afta-aftan ("k"|"p") + "t" + _ => kukko ; -- *projekti-projekdin - x + "ku" => ku + x + "vu" ; + "uku" => ku + "uvu" ; + "yky" => ku + "yvy" ; x + "k" + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") => ku + x + o ; x + "p" + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") => ku + x + "v" + o ; x + "t" + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") => ku + x + "d" + o ; @@ -882,7 +883,7 @@ resource MorphoFin = ResFin ** open Prelude in { ("tk" | "hk" | "sk" | "sp" | "st") + _ => nke ; -- viuhke,kuiske a + k@("k"|"p"|"t") + e@("e"|"a"|"ä"|"u"|"y"|"i"|"o"|"ö") => a + k + k + e ; a + "d" + e@("e"|"a"|"ä"|"u"|"i"|"o"|"ö") => a + "t" + e ; - s + a@("a" | "ä") + "e" => s + a + "ke" ; -- säe, tae + s + a@("a"|"ä"|"o"|"ö") + "e" => s + a + "ke" ; -- säe, tae, koe s + "ui" => s + "uki" ; -- ruis s + "aa" => s + "aka" ; -- taata s + "i" + a@("a" | "e" | "i") => s + "ik" + a ; -- liata, siitä, pietä