Lttoolbox (français)

From Apertium
Jump to navigation Jump to search

In English

lttoolbox est une boite à outils pour les traitements lexicaux, l'analyse morphologique et la génération de mots. L'analyse est le processus de découpage d'un mot (ex: chats) en son lemme 'chat' et l'information grammaticale <n><pl>. La génération est le processus inverse.

Le paquet est décomposé en trois programmes, lt-comp, le compilateur, lt-proc, le processeur, et lt-expand, qui génère toutes les descriptions possibles entre les formes de surface et les formes lexicales dans le dictionnaire.

Création[edit]

Article principal : Bases sur les dictionnaires unilingues

Des fichiers de spécification pour analyseur morphologique, ou des dictionnaires morphologiques peuvent être trouvées dans tous nos paquets paire de langue, à partir de l'incubateur, ou vous pouvez choisir de créer le votre (plus d'instructions dans la page Bases sur les dictionnaires unilingues). Vous pouvez aussi voir notre liste de dictionnaires, qui comporte des statistiques sur les noms, emplacements et nombre d'entrées de chaque dictionnaire.

Utilisation[edit]

Compilation[edit]

Voir aussi : Compilation des dictionnaires

La compilation dans un format binaire est réalisée au moyen du programme lt-comp. Vous pouvez compiler un fichier .dix donné de gauche à droite (LR), ou de droite à gauche (RL). Compiler LR crée habituellement un analyseur, compiler RL crée habituellement un générateur.[1]

Exemple

Compiler le dictionnaire apertium-es-ca.ca.dix de gauche à droite pour fabriquer le binaire ca.bin.

$ lt-comp lr apertium-es-ca.ca.dix ca.bin

Traitement[edit]

Il y a deux modes principaux pour utiliser le processeur (lt-proc), l'analyse (qui est le mode par défaut) and la génération. L'analyse convertit les formes de surface en un ensemble de formes lexicales possibles, alors que la génération convertit une forme lexicale en la forme de surface correspondante.

Analyse[edit]

Après compilation du fichier apertium-es-ca.ca.dix de gauche à droite en ca.morf.bin, on peut analyser le catalan :

Exemple
$ echo "prova" | lt-proc ca.morf.bin

^prova/prova<n><f><sg>/provar<vblex><pri><p3><sg>/provar<vblex><imp><p2><sg>$

Génération[edit]

Et en le compilant de droite à gauche, on peut générer :

Exemple
$ echo "^prova<n><f><pl>$"  | lt-proc -g ca.gen.bin

proves

Expansion[edit]

Quelquefois, on veut être capable de voir la sortie complète du dictionnaire — par exemple, toutes les correspondances entre les formes lexicales et les formes de surface. pour cela, vous pouvez utiliser l'outil lt-expand. Cette sortie est souvent utile pour trouver les défauts dans l'assignement des paradigmes, etc.

Exemple

Voici les 10 premières lignes générées en sortie par la commande étendre le dictionnaire catalan de la paire apertium-es-ca. (Au dernier comptage, la longueur totale de la sortie dépassait les 2,3 million de lignes).

$ lt-expand apertium-es-ca.ca.dix 

abdominals:abdominal<adj><mf><pl>
abdominal:abdominal<adj><mf><sg>
absents:absent<adj><mf><pl>
absent:absent<adj><mf><sg>
absolutes:absolut<adj><f><pl>
absoluta:absolut<adj><f><sg>
absoluts:absolut<adj><m><pl>
absolut:absolut<adj><m><sg>
abstractes:abstracte<adj><mf><pl>
abstracta:abstracte<adj><f><sg>
Note

Vous ne pouvez pas exécuter lt-expand directement sur un fichier .dix.xml. Les fichiers .dix dans (par exemple) la paire apertium-en-af ont leur symboles dans un fichier séparé. Vous devez d'abord lancer xmllint :

$ xmllint --xinclude apertium-en-af.af.dix.xml > apertium-en-af.af.dix

Puis exécuter lt-expand sur le fichier apertium-en-af.af.dix.

Maintenance[edit]

Coté gauche vide

Si vous obtenez un message comme :

Error: Invalid dictionary (hint: the left side of an entry is empty)

Essayez de chercher des cotés gauche vides dans votre dictionnaire en utilisant lt-expand et grep. Par exemple, dans le dictionnaire islandais,

$ lt-expand apertium-fo-is.is.dix  | grep ^:
:kunna<vblex><imp><p2><sg>
:kunna<vblex><imp><p1><pl>
:kunna<vblex><imp><p2><pl>

Le coté gauche vide ressemblera à quelque-chose comme :

      <e>
        <p>
          <l></l>
          <r>kunna<s n="vblex"/><s n="imp"/><s n="p2"/><s n="pl"/></r>
        </p>
      </e>

Il n'est pas possible d'avoir un coté gauche vide dans un paradigme si vous n'avez pas de section (<i>) invariante dans l'entrée de la section principale, par exemple :

    <e lm="kunna"><i></i><par n="/kunna__vblex"/></e>

Cela signifie que vous devriez attendre le verbe "kunna"; là où le coté gauche est vide, vous pourriez également mettre quelque-chose à cet endroit ou rajouter quelque-chose à la section invariante.

Vitesse[edit]

$ yes mot | head -10000000 > /tmp/foo

$ head /tmp/foo
mot
mot
mot
...

$ wc -l /tmp/foo
1000000 /tmp/foo

$ time cat /tmp/foo | lt-proc en-ca.automorf.bin >/dev/null

real	0m17.606s
user	0m17.281s
sys	0m0.036s

58 823 mots / seconde

Utiliser comme bibliothèque[edit]

Voir Application Lttoolbox pour la manière d'analyser and générer les mots avec lttoolbox en C++ ou Python.

Liste de souhaits[edit]

  • Être capable d'avoir des symboles/balises multi-caractères sans '<' et '>'

Voir aussi[edit]

Notes[edit]

  1. Dans tous les paquets linguistiques courants, la direction de compilation de gauche à droite est l'analyse, alors que la direction de droite à gauche est la génération. Quoi qu'il en soit, ce n'est pas une restriction logicielle.