Apertium-dixtools (français)

From Apertium
Revision as of 20:28, 4 July 2014 by Bech (talk | contribs) (Correction accès svn)
Jump to navigation Jump to search

Apertium-dixtools est une commande shell qui permet de lancer l'exécution de différents outils développés en java. Ces outils permettent de faire des traitements automatiques sur un fichier dictionnaire (ou quelquefois plusieurs).

La syntaxe d'appel est :

apertium-dixtools tâche options paramètres (notamment des noms de fichier dictionnaire comme paramètre)

Parmi les tâches disponibles, on trouve :


Installation d'Apertium-dixtools

Prérequis logiciels

Vous devrez installer Ant et Java Development Kit 6 (JDK6)

$ sudo apt-get install ant sun-java6-jdk

Téléchargement

$ svn co https://svn.code.sf.net/p/apertium/svn/trunk/apertium-dixtools

Compilation

$ cd apertium-dixtools
$ ant jar

Vous pouvez aussi construire et installer en utilisant Maven 2 (http://maven.apache.org), en tapant :

mvn install

Note :

  • Si vous faites une mise à jour depuis SVN, c'est toujours une bonne idée de faire d'abord 'ant clean'.
  • 'ant jar' s'attend aussi à faire de l'auto-test. Cela peut échouer, si quelqu'un fait des modifications sans s'assurer que les tests fonctionnent. Continuez juste l'installation et reportez les échecs de test sur la liste.

Problèmes

Si vous obtenez une erreur "The J2SE Platform is not correctly set up." avec la propriété "platforms.default_platform.home" is not found, alors essayez

$ ant -Dplatforms.default_platform.home=/usr jar

ou si son f.ex. annonce une erreur avec la propriété "platforms.JDK_1.6.home" is not found, et que vous voulez pointer version Java spécifique, alors essayez

$ ant -Dplatforms.JDK_1.6.home=/usr/lib/jvm/java-6-sun jar

(Sur Mac : si vous voulez indiquer le chemin complet "/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/" (ou n'importe quel autre), commencez par faire un lien symbolique du répertoire .../1.6.0/Commands vers .../1.6.0/bin, puisque ant s'attend à ce que javac soit dans le sous répertoire bin de platforms...home)

Test

Le test est assez bavard. Les sorties ressemblent à :

-do-test-run:
    [junit] Testsuite: dictools.CrossDictTest
    [junit] [1] Loading bilingual AB (regression_test_data/crossdict/input/apertium-es-ca.es-ca.dix)
    [junit] Reading file regression_test_data/crossdict/input/apertium-es-ca.es-ca.dix

... 200 lignes de texte

    [junit] ------------- ---------------- ---------------
    [junit] Testsuite: misc.eoen.SubstractBidixTest
    [junit] Tests run: 3, Failures: 0, Errors: 0, Time elapsed: 0.073 sec
    [junit] 
    [junit] ------------- Standard Error -----------------
    [junit] checkEarlierAndRestrict
    [junit] ------------- ---------------- ---------------
    [junit] checkEarlierAndRestrict

Si le test échoue

Si vous obtenez quelque chose comme

    [junit] ------------- ---------------- ---------------

test-report:

-post-test-run:

BUILD FAILED
/home/j/esperanto/apertium/apertium-dixtools/nbproject/build-impl.xml:595: Some tests failed; see details above.

... c'est que le programme a été construit correctement, mais ne passe pas les tests. Il peut toujours être installé et fonctionnera probablement bien.

La raison la plus probable (sauf si quelqu'un a changé le programme d'une manière qui casse les tests), est que vous n'utilisez pas Unicode. Essayez en écrivant

export LANG=fr_FR.UTF-8

(ou n'importe quel autre langage Unicode installé - l'auteur de la page anglaise utilise eo.UTF-8 au lieu de en_US.UTF-8) et relancez les tests. Si ça ne vous aide pas, parlez en à la mailing list.

Installation

$ sudo ant install

Utilisation d'Apertium-dixtools

Usage: apertium-dixtools [tache] [options génériques] [paramètres tache] ...

 Taches :
   cross:              croise 2 paires de langues (en utilisant les ressources linguistiques, et les fichiers XML - voir Modèle croisé)
   cross-param:        croise 2 paires de langues (en utilisant les paramètres de ligne de commande) Crossdics
   merge-morph:        fusionne deux dictionnaires morphologiques (monodix) Fusion de dictionnaires
   equiv-paradigms:    trouve les paradigmes équivalents et met à jour les références
   list:               liste les entrées d'un dictionnaire - voir Examen d'un dictionnaire
   dix2trie:           crée un essai à partir d'un dictionnaire bilingue existant
   dix2tiny:           crée des données pour les plate-formes mobiles (j2me, palm) à partir des dictionnaires bilingues
   reverse-bil:        retourne un dictionnaire bilingue - voir Retournement d'un dictionnaire bilingue
   sort:               trie (et groupe par catégorie) un dictionnaire - voir Tri d'un dictionnaire
   format:             Formatage de dictionnaires (par rapport à des options génériques)
   fix:                "fixe" un dictionnaire (supprime les doublons, convertit les espaces)

Pour afficher l'aide sur une tâche, appelez-la sans paramètre.


Options génériques : (principalement pour les tâches qui envoient en sortie des fichiers .dix)

    -debug              affiche les informations supplémentaires de debug
    -noProcComments     ne pas ajouter le traitement des commentaires (disant ce qui est fait)
    -stripEmptyLines    supprime les lignes vides (venant du fichier original)
    -alignBidix         aligne un dictionnaire bilingue (<p> ou <i> à la colonne 10, <r> à la colonne 55)
    -alignMonodix       aligne un dictionnaire unilingue (pardef 10, 30, autres entrées 25, 45)
    -align [[E] P R]    alignement customisé (défaut <p>/<i> à la colonne 10, <r> à la colonne 55)
    -alignpardef [[E] P R] alignement de paradigme (s'il diffère de l'alignement général)

  Chaque option -align implique un 'style de sortie compact' (une entrée de dictionnaire par ligne)
  dans le cas contraire la sortie n'est pas compacte (style XML : une balise par ligne, beaucoup d'indentations)

  Utiliser - comme nom de fichier pour "piper" (fichiers .dix lus/écrits sur l'entrée/sortie standard)

Notes pour développeurs

Liste de souhaits et notes pour Apertium-dixtools

Il devrait y avoir plusieurs autres options, et TOUTES les sous-commandes devraient accepter un paramètre -fmt où tout pourrait être spécifié :

  • multi-mots -- une ligne ou plusieurs
  • multi-mots -- doivent ils être séparés

(parce que quelquefois avec les multimots complexes que vous voulez avoir se traitent (?) différemment et séparément ex: vous avez une section pour des verbes qui contient d'abord les verbes "simples", puis les verbes multi-mots)

  • multi-mots -- les verbes simples sont un par ligne
  • multi-mots -- et les verbes multi-mots sont sur plusieurs lignes

Voir aussi Crossdics : Génération d'une paire de langue à partir de 2 autres