tef-innu

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

commit a9f903bf3dc4e61bb8cbdcd576e672d30af94ff7
parent bc24af64f4ac4563a1f54f999161057c779a3e05
Auteur: Loïc Daignault-Pichette <loic@asteride.xyz>
Date:   Thu,  4 Dec 2025 16:27:12 -0500

[chm] Utiliser les formes de citation

Les formes de citation remplacent les bases pour la constitution du
lexique. Puisque les bases contiennent souvent plus d’information que
les formes de citation, des traits supplémentaire y suppléent.

Diffstat:
MMakefile | 14+++++++-------
Dtef/fc.xfst | 10----------
Mtef/mots.xfst | 7+++++--
Mtef/noms/lexique.xfst | 3+--
Mtef/noms/morphemes.xfst | 4++--
Mtef/noms/noms.xfst | 16++++------------
Mtef/traits.var | 4++--
Mtef/verbes/bases.xfst | 42+++++++++++++++---------------------------
Dtef/verbes/fc.lex | 60------------------------------------------------------------
Mtef/verbes/lexique.lex | 102++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mtef/verbes/lexique.xfst | 10++++------
Mtef/verbes/morphemes.xfst | 4++--
Mtef/verbes/verbes.xfst | 14+-------------
13 fichiers modifiés, 94 insertions(+), 196 suppressions(-)

diff --git a/Makefile b/Makefile @@ -32,11 +32,12 @@ tous: tef/mots.fst web tef/verbes/lexique.fst: tef/phonologie.def tef/verbes/lexique.lexs tef/verbes/tractuel.fst: tef/traits.def tef/verbes/lexique.fst +tef/verbes/bases.fst: tef/phonologie.def tef/traits.def tef/verbes/tractuel.fst tef/verbes/morphemes.fst: tef/traits.def tef/morphemes.def \ - tef/verbes/tractuel.fst -tef/verbes/realisation.fst: tef/phonologie.def tef/traits.def tef/morphemes.def \ - tef/verbes/morphemes.fst -tef/verbes/verbes.fst: tef/traits.def tef/verbes/realisation.fst + tef/verbes/bases.fst +tef/verbes/realisation.fst: tef/phonologie.def tef/traits.def \ + tef/morphemes.def tef/verbes/morphemes.fst +tef/verbes/verbes.fst: tef/verbes/realisation.fst # ---- # NOMS @@ -47,15 +48,14 @@ tef/noms/tractuel.fst: tef/traits.def tef/noms/lexique.fst tef/noms/morphemes.fst: tef/traits.def tef/morphemes.def tef/noms/tractuel.fst tef/noms/realisation.fst: tef/phonologie.def tef/traits.def tef/morphemes.def \ tef/noms/morphemes.fst -tef/noms/noms.fst: tef/traits.def tef/noms/realisation.fst +tef/noms/noms.fst: tef/noms/realisation.fst # ---- # MOTS # ---- tef/orthographe.fst: tef/phonologie.def tef/verbes/verbes.fst tef/noms/noms.fst -tef/fc.fst: tef/orthographe.fst -tef/mots.fst: tef/traits.def tef/fc.fst +tef/mots.fst: tef/traits.def tef/orthographe.fst # ----- # TESTS diff --git a/tef/fc.xfst b/tef/fc.xfst @@ -1,10 +0,0 @@ -# ================== -# FORMES DE CITATION -# ================== - -define Orthographe @"tef/orthographe.fst"; - -# Extraire les formes de citation. -define Fc [[[[] <- "+Fc"] .o. $["+Fc"] .o. Orthographe] ?*].i; - -regex Fc .o. Orthographe; diff --git a/tef/mots.xfst b/tef/mots.xfst @@ -4,6 +4,9 @@ load defined tef/traits.def -define Fc @"tef/fc.fst"; +define Orthographe @"tef/orthographe.fst"; -regex [[] <- TAcc] .o. ~$["+Absent"] .o. Fc .o. [Traits -> []]; +# Retirer les traits de base et accidentels des non absents. +define Retirer [[] <- [TAcc|TBase] || .#. ~$["+Absent"] _] .o. Orthographe; + +regex ~$["+Absent"] .o. Retirer .o. [Traits -> []]; diff --git a/tef/noms/lexique.xfst b/tef/noms/lexique.xfst @@ -2,5 +2,4 @@ # LEXIQUE # ======= -# Former le lexique à partir des fichiers *.lst. -read regex [@txts"tef/noms/lexique.lexs"]; +read regex [@stxt"tef/noms/lexique.lexs"]; diff --git a/tef/noms/morphemes.xfst b/tef/noms/morphemes.xfst @@ -25,8 +25,8 @@ define Caser [ define CombMorphemes CombTraits .o. Caser - # La base est identique à la base. - .o. [Cases -> [] || _ $["+Base"]] + # La base est identique à la base. + .o. [Cases -> [] || _ $["+Base"]] # Choisir le suffixe nominal .o. ["[MSN]" -> "+PlObv" || _ [$["+A"] $["+Obv"]|$["+I"] $["+Pl"]]] .o. ["[MSN]" -> "+PlA" || _ $["+A"] $["+Pl"]] diff --git a/tef/noms/noms.xfst b/tef/noms/noms.xfst @@ -1,13 +1,5 @@ -# ================== -# FORMES DE CITATION -# ================== +# ==== +# NOMS +# ==== -load defined tef/traits.def - -define Realisation @"tef/noms/realisation.fst"; - -define TraitsCitation $["+Sg" "+Ntr"]; - -define Citations [[[] <- TGrm] .o. TraitsCitation .o. Realisation] "+Fc":0; - -regex Citations .P. Realisation; +regex @"tef/noms/realisation.fst"; diff --git a/tef/traits.var b/tef/traits.var @@ -8,14 +8,14 @@ # TRAITS LEXICAUX # --------------- define TAbs ["+Absent"]; # Trait d’absence -define TBase ["+Bi"|"+Bî"|"+Bu"|"+Bû"| # Traits de la base +define TBase ["+Bâ"|"+Bi"|"+Bî"|"+Bu"|"+Bû"| # Traits de la base "+Bsh"]; define TAcc ["+u"|"+ua"|"+ush"|"+e"|"+o"| # Traits accidentels "+impers"|"+vf"|"+apui"]; define TA ["+A"|"+I"]; # Animéité define TVrbe ["+VII"|"+VAI"|"+VTI"|"+VTA"]; # Classes de verbes define TDial ["+Est"|"+Ouest"]; # Dialecte -define TLex [TAbs|TAcc|TA|TVrbe|TDial]; +define TLex [TAbs|TBase|TAcc|TA|TVrbe|TDial]; # ------------------- # TRAITS GRAMMATICAUX diff --git a/tef/verbes/bases.xfst b/tef/verbes/bases.xfst @@ -4,35 +4,23 @@ # # Retrouver la forme d’une base à partir de sa forme de citation. -load defined tef/traits.def load defined tef/phonologie.def +load defined tef/traits.def + +define Tractuel @"tef/verbes/tractuel.fst"; -define Lexique [@txt"tef/verbes/fc.lex" - .o. [{+Bi} -> "+Bi"] - .o. [{+Bu} -> "+Bu"] - .o. [{+Bâ} -> "+Bâ"] - .o. [{+Bî} -> "+Bî"] - .o. [{+Bû} -> "+Bû"] - .o. [{+Bsh} -> "+Bsh"] - .o. [{+e} -> "+e"] - .o. [{+o} -> "+o"] - .o. [{+ua} -> "+ua"] - .o. [{+u} -> "+u"] - .o. [{+impers} -> "+impers"] - .o. [{+VII} -> "+VII"] - .o. [{+VAI} -> "+VAI"] - .o. [{+VTI} -> "+VTI"] - .o. [{+VTA} -> "+VTA"]].l; +# Préserver la forme de citation. +define Fc Tractuel & $["+Fc"]; # Retrouver les bases -define Bases Lexique - .o. [{u} -> {i} || _ \Lettre* "+Bi" ?* ["+VII"|"+VAI"]] - .o. [{u} -> {û} || _ \Lettre* "+Bû" ?* ["+VII"|"+VAI"]] - .o. [{u} -> [] || _ [[\Lettre* ["+VII"|"+VAI"] ?*] & ~$["+Bu"]]] - .o. [{a} -> {â} || _ \Lettre* "+Bâ" ?* ["+VII"|"+VAI"]] - .o. [{i} -> {î} || _ \Lettre* "+Bî" ?* ["+VII"|"+VAI"]] - .o. [(a){mᵘ} @-> [] || _ \Lettre* "+VTI"] - .o. [{eu} -> [] || _ \Lettre* "+VTA"] - .o. [{t} -> {sh} || _ \Lettre* "+Bsh" ?* "+VTA"]; +define Bases Tractuel + .o. [{u} -> {i} || _ \Lettre* "+Bi" ?* ["+VII"|"+VAI"]] + .o. [{u} -> {û} || _ \Lettre* "+Bû" ?* ["+VII"|"+VAI"]] + .o. [{u} -> [] || _ [[\Lettre* ["+VII"|"+VAI"] ?*] & ~$["+Bu"]]] + .o. [{a} -> {â} || _ \Lettre* "+Bâ" ?* ["+VII"|"+VAI"]] + .o. [{i} -> {î} || _ \Lettre* "+Bî" ?* ["+VII"|"+VAI"]] + .o. [(a){mᵘ} @-> [] || _ \Lettre* "+VTI"] + .o. [{eu} -> [] || _ \Lettre* "+VTA"] + .o. [{t} -> {sh} || _ \Lettre* "+Bsh" ?* "+VTA"]; -push Bases +regex [Fc .P. Bases] .o. [TBase -> []]; diff --git a/tef/verbes/fc.lex b/tef/verbes/fc.lex @@ -1,60 +0,0 @@ -akushu+Bi+VAI -apashtau+Bâ+VAI -apatan+VII -apishashu+Bi+VII -ashtueimᵘ+VTI -atusseu+VAI -auassiu+Bû+VAI -ishikapau+Bu+VAI -itishaueu+VTA -katueu+u+VTA -minu+VAI -mishishtu+Bi+VAI -mińeu+VTA -mińuateu+Bsh+VTA -napessiu+Bû+VAI -natau+Bu+VAI -natutamᵘ+VTI -nikamu+Bu+VAI -nipau+Bâ+VAI -nipiu+Bu+e+VII -nipiun+o+VII -papatau+Bâ+VAI -pashteu+VII -peshueu+VTA -petamᵘ+VTI -petueu+VTA -pikupańu+VII -pimiu+Bu+e+VII -pimiun+o+VII -puamu+Bu+VAI -sheimᵘ+VTI -shikatshu+Bi+VAI -shipeku+Bu+e+VII -shipekun+o+VII -shitamu+Bu+VII -shiueńu+VAI -takuan+VII -takushinu+VAI -tashkaimᵘ+VTI -tshiminamᵘ+VTI -tshimuan+impers+VII -tshipaimᵘ+VTI -tshishishu+Bu+VAI -tshishiteu+VII -tshitapatamᵘ+VTI -tshitimu+Bi+VAI -tshitshipańu+VII -tshiuepańu+VAI -tshiueu+Bû+VAI -tutamᵘ+VTI -uapameu+VTA -uapatamᵘ+VTI -uapau+Bâ+VII -uepashtan+VII -ueńutishiu+Bî+VAI -uikan+VII -uitsheueu+VTA -uitshieu+VTA -upau+Bu+VAI -ńutin+impers+VII diff --git a/tef/verbes/lexique.lex b/tef/verbes/lexique.lex @@ -1,60 +1,60 @@ -akushi+VAI -apashtâ+VAI +akushu+Bi+VAI +apashtau+Bâ+VAI apatan+VII -apishashi+VII -ashtuei+VTI -atusse+VAI -auassiû+VAI -ishikapau+VAI -itishau+VTA -katu+u+VTA -min+VAI -mishishti+VAI -miń+VTA -mińuash+VTA -napessiû+VAI -natau+VAI -natut+VTI -nikamu+VAI -nipiu+e+VII +apishashu+Bi+VII +ashtueimᵘ+VTI +atusseu+VAI +auassiu+Bû+VAI +ishikapau+Bu+VAI +itishaueu+VTA +katueu+u+VTA +minu+VAI +mishishtu+Bi+VAI +mińeu+VTA +mińuateu+Bsh+VTA +napessiu+Bû+VAI +natau+Bu+VAI +natutamᵘ+VTI +nikamu+Bu+VAI +nipau+Bâ+VAI +nipiu+Bu+e+VII nipiun+o+VII -nipâ+VAI -papatâ+VAI -pashte+VII -peshu+VTA -pet+VTI -petu+ua+VTA -pikupań+VII -pimiu+e+VII +papatau+Bâ+VAI +pashteu+VII +peshueu+VTA +petamᵘ+VTI +petueu+ua+VTA +pikupańu+VII +pimiu+Bu+e+VII pimiun+o+VII -puamu+VAI -shei+VTI -shikatshi+VAI -shipeku+e+VII +puamu+Bu+VAI +sheimᵘ+VTI +shikatshu+Bi+VAI +shipeku+Bu+e+VII shipekun+o+VII -shitamu+VII -shiueń+VAI +shitamu+Bu+VII +shiueńu+VAI takuan+VII -takushin+VAI -tashkai+VTI -tshimin+VTI +takushinu+VAI +tashkaimᵘ+VTI +tshiminamᵘ+VTI tshimuan+impers+VII -tshipai+VTI -tshishishu+VAI -tshishite+VII -tshitapat+VTI -tshitimi+VAI -tshitshipań+VII -tshiuepań+VAI -tshiueû+VAI -tut+VTI -uapam+VTA -uapat+VTI -uapâ+VII +tshipaimᵘ+VTI +tshishishu+Bu+VAI +tshishiteu+VII +tshitapatamᵘ+VTI +tshitimu+Bi+VAI +tshitshipańu+VII +tshiuepańu+VAI +tshiueu+Bû+VAI +tutamᵘ+VTI +uapameu+VTA +uapatamᵘ+VTI +uapau+Bâ+VII uepashtan+VII -ueńutishî+VAI +ueńutishiu+Bî+VAI uikan+VII -uitsheu+VTA -uitshi+VTA -upau+VAI +uitsheueu+VTA +uitshieu+VTA +upau+Bu+VAI ńutin+impers+VII diff --git a/tef/verbes/lexique.xfst b/tef/verbes/lexique.xfst @@ -6,9 +6,7 @@ load defined tef/phonologie.def -# Les traits accidentels doivent être analysés en symboles uniques -# manuellement. Lorsqu’un trait est le préfixe d’un autre trait, ce dernier -# trait doit être analysé d’abord. C’est pourquoi la règle ciblant {+ua} est -# placée avant celle ciblant {+u}. -read regex [@stxt"tef/verbes/lexique.lexs" | - Lettre+ "+Absent" ["+VII"|"+VAI"|"+VTI"|"+VTA"]]; +define Lexique @stxt"tef/verbes/lexique.lexs"; + +read regex Lexique | + [Lettre-{ᵘ}]* Lettre "+Absent" ["+VII"|"+VAI"|"+VTI"|"+VTA"]; diff --git a/tef/verbes/morphemes.xfst b/tef/verbes/morphemes.xfst @@ -5,7 +5,7 @@ load defined tef/traits.def load defined tef/morphemes.def -define CombTraits @"tef/verbes/tractuel.fst"; +define CombTraits @"tef/verbes/bases.fst"; # Les cases seront substituées par le nom de morphème approprié. Elles sont # placées de chaque côté de la base. @@ -17,7 +17,7 @@ define Caser [ .o. [[..] -> "Base" "[ThDec]" "[ThDir]" "[Obv]" "[SPers]" "[NbLc]" "[Tir]" "[NbNLc]" || - \[TAcc|TAbs] _ [TAcc|TAbs]* TVrbe]]; + \TLex _ TLex]]; # Combinaisons de morphèmes define CombMorphemes CombTraits diff --git a/tef/verbes/verbes.xfst b/tef/verbes/verbes.xfst @@ -2,16 +2,4 @@ # VERBES # ====== -load defined tef/traits.def - -define Realisation @"tef/verbes/realisation.fst"; - -define TraitsCitation [ - [$["+VTA"] $["+Indép" "+Ind" "+Prés"] $["+Sg" "+Ntr"] $["+Sg" "+Obv"]]| - [$["+VAI"] $["+Indép" "+Ind" "+Prés"] $["+Sg" "+Ntr"]]| - [$["+VTI"] $["+Indép" "+Ind" "+Prés"] $["+Sg" "+Ntr"]]| - [$["+VII"] $["+Indép" "+Ind" "+Prés"] $["+Sg" "+Ntr"]]]; - -define Citations [[[] <- TGrm] .o. TraitsCitation .o. Realisation] "+Fc":0; - -regex Citations .P. Realisation; +regex @"tef/verbes/realisation.fst";