tef-innu

Transducteur à états finis de l’innu
git clone git://git.asteride.xyz/tef-innu.git
Journaux | Fichiers | Références

commit 8a1e9e4d541fa9bdcb8de7201bccb66d255d72ec
parent 1df7d47cd23d86a81f1987307534e866c7387425
Auteur: Loïc Daignault-Pichette <loic@asteride.xyz>
Date:   Wed,  3 Dec 2025 13:24:33 -0500

[bog] Corriger tef/verbes/citation.xfst

Le principe sur lequel était fondé le remplacement des bases du niveau
abstrait par leurs formes de citation était incorrecte. Je n’ai pas
trouvé de meilleure manière de le corriger que de conserver jusqu’à
cette étape les traits lexicaux des formes inférieures.

Diffstat:
MMakefile | 6++++++
Mtef/orthographe.xfst | 6++++--
Mtef/phonologie.var | 6++++++
Mtef/verbes/citation.xfst | 23+++++++----------------
Mtef/verbes/realisation.xfst | 5++---
5 fichiers modifiés, 25 insertions(+), 21 suppressions(-)

diff --git a/Makefile b/Makefile @@ -46,6 +46,12 @@ tef/noms/realisation.fst: tef/phonologie.def tef/traits.def tef/morphemes.def \ tef/noms/morphemes.fst tef/noms/noms.fst: tef/noms/realisation.fst tef/orthographe.fst +# ------ +# COMMUN +# ------ + +tef/orthographe.fst: tef/phonologie.def + # ----- # TESTS # ----- diff --git a/tef/orthographe.xfst b/tef/orthographe.xfst @@ -4,12 +4,14 @@ # # Appliquer les règles orthographiques régulières. +load defined tef/phonologie.def + define Ortho [ # Un « ᵘ » tombe devant un « u ». - [ᵘ -> [] || _ u] + [ᵘ -> [] || _ \Lettre* u] # La quantité vocalique n’est pas transcrite. .o. [â -> a ,, î -> i ,, û -> u] # Un « ᵘ » devient « u » lorsqu’il n’est pas en fin de mot. - .o. [ᵘ -> u || _ ?]]; + .o. [ᵘ -> u || _ \Lettre* Lettre]]; push Ortho diff --git a/tef/phonologie.var b/tef/phonologie.var @@ -17,3 +17,9 @@ define Voy [VoyCourte|VoyLongue|ᵘ]; # --------- define Cons [h|k|m|n|ń|p|s|t]; + +# ------- +# LETTRES +# ------- + +define Lettre [Voy|Cons]; diff --git a/tef/verbes/citation.xfst b/tef/verbes/citation.xfst @@ -4,7 +4,10 @@ load defined tef/traits.def -define Ortho @"tef/verbes/realisation.fst" .o. @"tef/orthographe.fst"; +define Realisation @"tef/verbes/realisation.fst"; +define Orthographe @"tef/orthographe.fst"; + +define Tef Realisation .o. Orthographe; define TraitsCitation [ [$["+VTA"] $["+Indép" "+Ind" "+Prés"] $["+Sg" "+Ntr"] $["+Sg" "+Obv"]]| @@ -12,19 +15,7 @@ define TraitsCitation [ [$["+VTI"] $["+Indép" "+Ind" "+Prés"] $["+Sg" "+Ntr"]]| [$["+VII"] $["+Indép" "+Ind" "+Prés"] $["+Sg" "+Ntr"]]]; -# Extraire les formes de citation et retirer les traux grammaticaux. -define BaseLexCit [[[] <- [TGrm|">"]] .o. TraitsCitation .o. Ortho]; - -# Ajouter l’infinité de suites de traits lexicaux possibles à BaseLexCit. Le -# symbole « <> » sépare les traits lexicaux originaux des traits ajoutés dans -# le niveau supérieur. -define BaseLexLexCitLex BaseLexCit "<>":0 TLex+; - -# Retirer les traits originaux et le séparateur. -define BaseLexCitLex [[] <-@ TLex* "<>"] .o. BaseLexLexCitLex; - -# Confronter BaseLexCitLex à BaseLexCit.u. -define FC [BaseLexCit.u .o. BaseLexCitLex].i ?*; +# Extraire les formes de citation et retirer les traits grammaticaux. +define FC [[[[] <- [TGrm|">"]] .o. TraitsCitation .o. Tef] ?*].i; -define Verbes FC .o. Ortho; -push Verbes +regex [[] <- TAcc] .o. FC .o. Tef .o. [Traits -> []]; diff --git a/tef/verbes/realisation.xfst b/tef/verbes/realisation.xfst @@ -49,7 +49,7 @@ define RealMorphemes CombMorphemes "+ObvSgPass" -> {a} "+ObvSgPass" || _ ~$["+VII"] .#.] .o. ["+ObvPl" -> {a} "+ObvPl" , "+ObvPlPass" -> {a} "+ObvPlPass"]; -define AltMorphemes [[] <- TAcc] .o. RealMorphemes +define AltMorphemes RealMorphemes # Base .o. [{sh} -> {t} || _ "Base" ~$["+ThLc"] .#.] .o. [[..] -> {a} || _ "Base" \Mrphm* ["+ThLcI"|"+ThI"] $["+u"]] @@ -87,8 +87,7 @@ define AltMorphemes [[] <- TAcc] .o. RealMorphemes [n|ń] Mrphm* _ \Mrphm* ["+ObvSgPass"|"+ObvPlPass"|"+NtrPlPass" ?* "+VII"] , [n|ń] ["+DubPrésNLc"|"+DubPrésLc"] Mrphm* _ ["+ObvSg"|"+ObvPl"|"+NtrPl"]] - # Retirer quelques traits - .o. [TLex -> []] + # Retirer les morphèmes .o. [Mrphm -> []]; push AltMorphemes