Mutation de la consonne initiale

From Apertium
Revision as of 12:23, 21 May 2012 by Bech (talk | contribs) (Création de la page (début de traduction))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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 lenited (?) 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-prothesis (?)
LIST Len = ("<ph.*>"r "p.*"r);       # lenition (?)

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 à lenition (?)",

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 — Transfer rules which add tags defining the mutation to the beginning of words which should be mutated.
  • apertium-ga-gd.muta-.dix — A post-generation dictionary which takes the tag and the initial letter of the word and outputs the mutated form.

For example, when translating the phrase "do theach" (your house) from Irish to Scottish Gaelic, the result will be do thaigh (where the initial mutation is marked by an underscore). The output of apertium-transfer will be:

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

This is then passed through apertium-ga-gd.pre-gd, which adds a tag, <l1> for lenition.

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

The morphological generator then outputs the surface forms of the words, and appends an "alarm" signal to the mutation tag.

  do ~<l1>taigh

Finally, the mutation dictionary, apertium-ga-gd.muta-gd.dix, replaces the string ~<l1>t with 'th', which is the lenited form of 't'.

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

As mentioned above, the input to this stage is:

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

A simplified (although functioning) rule in this file might look something like:

<pattern>
  <pattern-item n="det"/>
  <pattern-item n="nom"/>
</pattern>
<choose> 
  <when> <!-- When the lemma of the determiner is "do", 
              apply lenition to the following noun -->
    <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>

And the output will be,

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

The input to this stage is:

  do ~<l1>taigh

The "rule", or rather "entry" in the mutation dictionary will look like:

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

Here, the alphabet is defined as a paradigm which for any given input letter, just outputs the letter unchanged. So this basically says,

"When we have the alarm symbol '~', followed by a tag indicating lenition followed by a 't' and then any alphabetic character, output 'th' followed by the next character"

The output of this stage is a correctly mutated phrase,

  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