Mutation de la consonne initiale

From Apertium
Jump to navigation Jump to search

In English

Cette page donne un bref aperçu sur la manière dont les mutations de la consonne initiale sont actuellement analysées, désambiguïsées et générées dans Apertium. Elle utilise comme exemple la paire de langue apertium-ga-gd .

Analyse

L'analyse est prise en charge par la création de paradigmes avec le mot initial qui remplace simplement les formes non mutées avec les formes mutées. Par exemple pour la consonne initiale 'b', qui peut être lénité comme 'bh' ou éclipsée comme 'mb', on obtient le paradigme de mutation initial suivant :

    <pardef n="initial-b">
      <e><p><l>b</l><r>b</r></p></e>
      <e><p><l>bh</l><r>b</r></p></e>
      <e><p><l>mb</l><r>b</r></p></e>
    </pardef>

Cela peut ensuite être appliqué à un mot, par exemple "bulc" (), comme :

    <e lm="bulc"><par n="initial-b"/><i>u</i><par n="bu/lc__n"/></e>

La mutation initiale est 'b', et le mot prend le paradigme bu/lc__n. Le problème avec cette méthode est que quelquefois ça peut causer une "sur analyse", mais on peut faire attention à cette désambiguïsation, voir plus loin.

Désambiguïsation

La désambiguïsation des mutations initiales peut se faire en utilisant l'outil de contraintes grammaticales (voir le fichier apertium-ga-gd.ga-gd.rlx). Le tagger apertium n'est pas utile pour ce propos car il ne peut pas regarder les formes de surface des mots, mais seulement les unités lexicales. Un exemple trivial illustratif de la façon dont la contrainte grammaticale peut être utilisée est présenté plus loin. Disons qu'on veut choisir entre un déterminant possessif féminin et un déterminant possessif masculin basé sur le type de mutation présentée par le nom suivant, par exemple dans les deux phrases qui suivent :[1]

  • a pheann, — his pen (son stylo (pour un homme))
  • a haois — her age (son age (pour une femme))

Ici le déterminant, "a", peut être aussi bien masculin que féminin (c'est à dire, "his" ou "her"). Donc, si on a l'entrée suivante pour l'outil constraint grammar :

  ^a/a<det><pos><p3><mf><pl>/a<det><pos><p3><m><sg>/a<det><pos><p3><f><sg>$ ^pheann/peann<n><m><sg><nom>/peann<n><m><pl><gen>$
  ^a/a<det><pos><p3><mf><pl>/a<det><pos><p3><m><sg>/a<det><pos><p3><f><sg>$ ^haois/aois<n><f><sg><nom>$ 

D'abord on définit avec quoi on veut travailler,

LIST DetPos = (det pos);             # déterminant possessif

LIST hPro = ("<h.*>"r "[aeiou].*"r); # h-prothèse
LIST Len = ("<ph.*>"r "p.*"r);       # lénition

SET DetPosF = DetPos | (f);          # déterminant possessif féminin
SET DetPosM = DetPos | (m);          # déterminant possessif masculin

Ça devrait être pratiquement direct, puis on écrit les règles qui disent "Choisir le possessif féminin quand le nom qui suit est sujet à h-prothesis (?), et le possessif masculin quand le nom qui suit est sujet à lénition",

SELECT DetPosF IF (1 hPro);
SELECT DetPosM IF (1 Len);

L'application de cette grammaire donne :

  ^a<det><pos><p3><m><sg>$ ^peann<n><m><sg><nom>$ 
  ^a<det><pos><p3><f><sg>$ ^oíche<n><f><sg><nom>$ 

Le résultat désiré.

Génération

Aperçu

La génération des mutations initiales prend place dans deux fichiers, où est le code de la langue qui est générée (ga pour l'irlandais, gd pour l'écossais gaélique).

  • apertium-ga-gd.pre-.t1x — Règles de transfert qui ajoute des balises définissant la mutation au début des mots qui devraient être mutés.
  • apertium-ga-gd.muta-.dix — Un dictionnaire post-génération qui prend la balise et la lettre initiale du mot et envoie en sortie la forme mutée.

Par exemple, lorsqu'on traduit la phrase "do theach" (votre maison) de l'irlandais à l'écossais gaélique, le résultat sera "do thaigh" (où la mutation initiale est marquée par un underscore). La sortie de apertium-transfer sera :

  ^do<det><pos><p2><mf><sg>$ ^taigh<n><m><sg><nom>$ 

C'est alors passé à apertium-ga-gd.pre-gd, qui ajoute une balise, <l1> pour lénition.

  ^do<det><pos><p2><mf><sg>$ ^<l1>$^taigh<n><m><sg><nom>$ 

Le générateur morphologique sort alors les formes de surface des mots, et ajoute un signal "alarme" à la balise de mutation.

  do ~<l1>taigh

Finalement, le dictionnaire de mutation, apertium-ga-gd.muta-gd.dix, remplace la chaîne ~<l1>t avec 'th', qui est la forme lénitée de 't'.

  do thaigh
apertium-ga-gd.pre-.t1x

Comme mentionné plus haut, l'entrée de cette étape est :

  ^do<det><pos><p2><mf><sg>$ ^taigh<n><m><sg><nom>$ 

Une règle simplifiée (mais fonctionnant) dans ce fichier pourrait ressembler à quelque-chose comme :

<pattern>
  <pattern-item n="det"/>
  <pattern-item n="nom"/>
</pattern>
<choose> 
  <when> <!-- quabd le lemme du déterminant est "do", 
              appliquer la lénition au nom qui suit -->
    <test>
      <equal>
        <clip pos="1" side="tl" part="lem"/>
        <lit v="do"/>
      </equal>
     </test>
     <out>
      <lu><clip pos="1" side="tl" part="whole"/></lu>
      <b/>
      <lu><lit-tag v="l1"/></lu>    <!-- Lenition -->
      <lu><clip pos="2" side="tl" part="whole"/></lu>
    </out>
  </when>
</choose>

Et la sortie sera,

  ^do<det><pos><p2><mf><sg>$ ^<l1>$^taigh<n><m><sg><nom>$ 
apertium-ga-gd.muta-.dix

L'entrée de cette étape est :

  do ~<l1>taigh

La "règle", ou plutôt l'"entrée" dans le dictionnaire de mutation ressemblera à :

    <e>
      <p>
        <l><a/><s n="l1"/>t</l>
        <r>th</r>
      </p>
      <par n="alphabet"/> 
    </e>

Ici, l'alphabet est défini comme un paradigme qui pour chaque lettre entrée donnée, envoie juste en sortie la lettre inchangée. Donc, ça signifie,

"Quand on a le symbole alarme '~', suivi d'une balise indiquant la lénition suivie d'un 't' et ensuite n'importe quel caractère alphabétique, la sortie est 'th' suivi du prochain caractère".

La sortie de cette étape est une phrase correctement mutée,

  do thaigh

Notes

  1. Notez que ce n'est pas vraiment pertinent pour passer de l'irlandais à l'écossais gaélique dans la mesure où les formes de surface de chaque langue sont les mêmes