J-Safran : guide utilisateur


Lancez J-Safran avec les scripts journis dans l'archive téléchargeable:
  • jsafran.sh pour linux et cygwin
  • jsafran.bat pour windows (to be added; in the meantime, you can write your own jsafran.bat by adapting jsafran.sh)

Tutoriel / Tutorial

Please follow the following steps to make sure everything is ok:
 
1- unzip jsafran.tgz in an empty directory
2- cd into that directory
3- launch jsafran:
    ./jsafran.sh
   The JSafran window shall appear
4- load the raw text file "culture.txt":
    Menu File / Load
   The text shall appear in the main GUI.
5- tag the text:
    5.1 press lower-case "z" to show the current POS-tags: they should all be equal to "unk"
    5.2 Menu Parsing / retag all
   After a few seconds, the real (estimated) POS tags shall replace the "unk" default tags.
6- parse the text:
    Menu Parsing / "parse all w/ Malt"
   After a few seconds, you should see the dependency arcs proposed by the Malt parser on top of the utterances.
   (note that you use the broadcast news models that have been trained without any punctuation mark; so, don't be
   surprised if you see many dependency errors around punctuations !)
7- edit the automatic parsing:
    go to utterance 4: "le président déchu et la gauche ..."
      select the fourth word "et"
    press "d" to toggle edit mode: you should see a new loop-dependency in red
      move the head of this new dependency arc up to the verb "dénoncent" on the right
    press "d" again to quit the edit mode
    you have fixed an annotation error !
8- align the text with the audio file
    Menu File / listen to Audio
    You will be asked whether you want to use a previous alignement, or create a new one.
    As you don't have any alignement yet, we will create a new one. So, choose "NO".
    The JTRANS window will pop-up with the text already loaded in it.
    8.a. analyze the text to know what is pronunced and what is not: JTrans / menu edit / parse text standard
        After a few seconds, you see segments in the text highlighted in different colors.
    8.b. load the corresponding wav file: JTrans / menu file / load wav
        Select the file "culture.wav"
        You should see the spectrogram in the lower part of the JTrans window
    8.c. ask JTrans to automatically align the text and audio file: JTrans / button "AutoAlign"
        You have to wait for a few minutes while all the acoustic and language models loads up (you need at least
        1Gbyte of RAM for this to succeeds)
        You shall then see the alignement progress in the text itself, as every word is underlined in blue as soon as it is
        aligned.
      8.d. after the words have started to be underlined in blue, you can check the alignment by clicking on the button "play":
        you should then hear the wav file along with a kind a "karaoke" playback mode.
    8.e. save the alignment: JTrans / menu File / save project : give a file name like cult.jtr
9- you can now come back to the JSafran window, and navigate to any utterance.
   The next time you select "listen to audio" in JSafran's menu, the JTrans window will automatically position itself
   at the correct place, so that when you click on "play", you here the audio corresponding to the line selected in JSafran.

Lecture d'un fichier

Vous pouvez indiquer un fichier sur la ligne de commande java, ou alors utiliser le menu "File", qui supporte les fichiers de type .txt ou .conll ou .xml (format interne de JsynATS, typiquement le résultat d'un "File" + "save"). La détection du type de fichier est réalisée sur l'extension, et que l'encodage par défaut est l'UTF-8.

Enregistrement

Il faut toujours enregistrer un projet au format de JSynATS (.xml) pour ne pas perdre d'information. Il est également possible d'exporter du CoNLL.

Edition manuelle des graphes

Pour éditer une dépendance, il faut d'abord sélectionner le mot gouverné, soit en déplaçant le mot courant (en rouge à l'écran) avec les flêches, soit en cliquant avec la souris sur un mot de la phrase courante.

La touche 'd' entre et sort du mode d'édition de dépendance: dans ce mode, il est possible de choisir le gouverneur de la relation avec les flêches gauche/droite, et de choisir le type de dépendance avec la flêche haut. Pour détruire une dépendance, il suffit de choisir comme gouverneur le mot gouverné lui-lmême.

Raccourcis-claviers principaux

JSynATS utilise intensément les raccourcis-claviers, qui ne sont pas toujours bien documentés.
Les principaux sont listés dans le menu "help"

Tagging et Parsing

cf. menu "parsing"

Le POS tagging est réalisé actuellement par le TreeTagger, mais une autre solution basée sur OpenNLP est actuellement en cours d'intégration.
Le parsing est réalisé avec le Malt Parser. Deux modèles sont disponibles, respectivement pour le français écrit et oral.

Attention ! Lorsque des dépendances sont dejà présentes sur la phrase courante, le parsing essaye de préserver autant que faire se peut ces dépendances. Pour reparser complètement une phrase, il faut donc d'abord supprimer toutes les dépendances de la phrase (menu "edit" + "clear dependencies").

Il est possible de réentraîner un nouveau modèle avec le menu "parsing" + "retrain" : il faut d'abord rassembler tous les fichiers d'apprentissage dans un répertoire vide, et faire une copie de sauvegarde des anciens modèles ESTER (fichier "svmmods.mco") qui seront écrasés pendant l'apprentissage.

Annotation en rôles sémantiques

cf. menu "srl" (semantic role labelling)

L'annotation en rôles sémantiques présuppose un corpus annoté avec le jeu d'étiquettes et les dépendances utilisées pour l'annotation du corpus en dépendances de Paris 7.

Le menu "srl" permet de visualiser 10 fichiers résultats selon le type d'annotations visualisées (en dépendances, en cadres syntaxiques ou en rôles sémantiques) et le type de phrases sélectionnées (toutes les phrases du corpus d'entrée, toutes les phrases pour lesquelles tous les verbes ont été traités, toutes les phrases contenant au moins un verbe pour lequel le traitement n'a pas trouvé de solutions, etc.).

Pour une description détaillée des différents types de sorties visualisables, cf. le livrable Passage D18 "Report on a propbank experiment for French".

Recherche / transformation des arbres de dépendances

Fonction accessible par la touche F2 ou Ctrl-f
Mêmes touches pour sortir du mode "recherche/transformation"
Note: naming conventions have changed, the first triplet is refered as (dep0,head0,rel0), the second as (dep1,head1,rel1), and so on.

EXAMPLES BELOW

Look for all tokens that are not dependent of a verb: (_,p!=VERB:pres|VERB:imp,_)

Look for sentences with DISLOC in the textual comments associated to the utterance: (_,_,_) n=DISLOC

Look for all trees with a PRP root: (_,_,_) (p=PRP,_,_) rootofdep0=dep1

Look for all nouns with 4 children: (p=NOM,_,_) nfdep0=4

Look for all inflected forms of the verb "to be": (l=être,_,_)

Use of regular expressions to match a form or a POStag: the first char must be '*', followed by the regular expression as defined in Java (see class Pattern)
Look for all verbs: (p=*VER.*,_,_)

Look for all verb modifiers except negations: (f!=ne|n'|pas,p=*VER.*,MOD)