Outils pour utilisateurs

Outils du site


public:umr_lattice:democrat:importation_talismane_et_glozz

Import d'un texte étiqueté avec Talismane ou TreeTagger (avec ou sans annotations Glozz)

TXM fait appel à TreeTagger pour étiqueté un texte importé. La tokenisation est son fait, non celui de TreeTagger. Il peut être préférable de laisser la tokenisation à TreeTagger, ou bien d'utiliser un autre étiqueteur, comme Talismane.

Pour ce faire, on peut étiqueter le texte avant son import dans TXM. Il faut alors transformer la sortie de l'étiqueteur en un fichier XML de format TEI, compréhensible par TXM (en utilisant des balises <w>).

Le script `talismane2tei.py' permet de convertir la sortie de Talismane (mais aussi de TreeTagger) en un fichier TEI importable dans TXM via l'import “XML/w”.

Le script est disponible sur Sharedocs (dossier du projet ANR Democrat) et nécessite python3, ainsi que les modules (disponibles au même endroit): `talismaneloc2loc.py' et `tt2ttloc.py' (ces deux modules permettent d'ajouter des informations de position aux différents tokens; ils peuvent être utilisés de façon indépendante).

Le script bash `run_talismane2tei.sh' illustrent les différents scénarios et les différents commandes pour chacun d'eux. Dans la suite du texte, les commandes seront des commandes Unix/Linux, utilisables aussi sous Mac. Elles devront être adaptées sur Windows.

Import d'un texte sans annotation

Soit un texte sur les chats sauvé dans le fichier `chat'. Il faut lancer Talismane avec une option spéciale (--builtInTemplate=with_location) qui permet de donner la position de chaque tokens dans le fichier original. La commande sera donc, par exemple:

java -Xmx4G -Dconfig.file=talismane-fr-5.0.0.conf \
   -jar talismane-core-5.0.0.jar --analyse \
   --sessionId=fr --encoding=UTF8 \
   --builtInTemplate=with_location \
   --inFile=chat --outFile=chat.out

Pour TreeTagger, il n'y a pas de problème:

cat chat | cmd/tree-tagger-french > chat.out

(Changer les options, notament -no-unknown, directement dans `tree-tagger-french'.)

Nous avons donc le texte étiqueté dans `chat.out'. Pour convertir le convertir en TEI, on utilise la commande:

 python3 talismane2tei.py \
    --corpus chat \
    --talismane chat.out \
    -o chat.tei.xml

ou, pour TreeTagger:

 python3 talismane2tei.py \
    --corpus chat \
    --treetagger chat.out \
    -o chat.tei.xml

Le fichier TEI est `chat.tei.xml'. On peut directement l'importer dans TXM via l'import XML/w. Il faut cependant faire attention: TXM va repasser le texte à travers de TreeTagger. Cela peut être voulu pour une sortie de Talismane: on dispose alors des étiquettes de Talismane (dans `talpos' et `lemma'), et aussi celles de TreeTagger (dans `frpos' et `frlemma'). Pour une sortie de TreeTagger, cela ne sert à rien: mieux vaut alors neutraliser le lancement de TreeTagger par TXM (en entrant de faux chemins d'accès?).

Les propriétés introduites avec Talismane sont les suivantes:

  • `talpos': catégorie grammaticale de Talismane (voir tagset ci-dessous)
  • `lemma': lemme
  • `function': fonction
  • `number': nombre
  • `gender: genre
  • `annotstartpos' et `annotendpos': informations sur les annotations Glozz (voir la section ci-dessous).

Pour TreeTagger, on a simplement `frpos' et `frlemma' (en plus de `annotstartpos' et `annotendpos').

Import d'un texte déjà annoté

On parle ici d'annotations de type de celles que permet de faire l'extension Analec de TXM.

Il faut avoir les annotations dans le format de Glozz. Si les annotations ont été faites dans TXM avec l'extension Analec, on peut se servir de la macro ExportToGlozz, aussi disponible sur Sharedocs. On obtient alors un fichier .ac pour le corpus et un fichier .aa pour les annotations, par exemple `chat.ac' et `chat.aa'.

La première étape consiste à obtenir le fichier que l'on va donner à Talismane ou TreeTagger. Pour ce faire, on utilise la commande:

python3 talismane2tei.py \
   --corpus chat.ac \
   --glozz chat.aa \
   -o chat_texte

On obtient un fichier `chat_texte' que l'on peut donner à TreeTagger ou Talismane, comme tout à l'heure. Disons que la sortie de TreeTagger/Talismane soit dans `chat.out'.

Il faut maintenant créer un TEI tenant compte à la fois de l'étiquetage (TreeTagger/Talismane) et des annotations Glozz. Pour ce faire:

python3 talismane2tei.py \
   --corpus chat.ac \
   --glozz chat.aa \
   --talismane chat.out \
   -o chat.tei.xml

ou, pour TreeTagger:

python3 talismane2tei.py \
   --corpus chat.ac \
   --glozz chat.aa \
   --treetagger chat.out \
   -o chat.tei.xml

(Noter que l'option `--corpus' demande un fichier `.ac' si l'option `--glozz' est utilisé, donc `chat.ac' ici et non `chat_text', qui ne servait qu'à alimenter l'étiqueteur.)

On obtient donc le TEI dans `chat.tei.xml' que l'on peut importer dans TXM via l'import XML/w.

Mais il faut encore recréer toutes les annotations de l'extension Analec. Pour ce faire, il faut simplement sélectionner le corpus et appliquer la macro `CreateAnnotationFromWTags' (aussi sur Sharedocs), et ne pas oublier de sauvegarder les annotations via le menu contextuel du corpus (TXM ne le fait pas automatiquement après l'application de la macro).

Jeu d'étiquettes de Talismane

TagPart of speech
ADJAdjective
ADVAdverb
ADVWHInterrogative adverb
CCCoordinating conjunction
CLOClitic (object)
CLRClitic (reflexive)
CLSClitic (subject)
CSSubordinating conjunction
DETDeterminent
DETWHInterrogative determinent
ETForeign word
IInterjection
NCCommon noun
NPPProper noun
PPreposition
P+DPreposition and determinant combined (e.g. “du”)
P+PROPreposition and pronoun combined (e.g. “duquel”)
PONCTPunctuation
PROPronoun
PRORELRelative pronoun
PROWHInterrogative pronoun
VIndicative verb
VIMPImperative verb
VINFInfinitive verb
VPPPast participle
VPRPresent participle
VSSubjunctive verb
public/umr_lattice/democrat/importation_talismane_et_glozz.txt · Dernière modification: 2017/10/26 08:51 par b.oberle@etu.unistra.fr