Transformer un fichier xml balisé pour TextObserver en l’étiquetant avec Treetagger

La version 9.4.2 téléchargeable prochainement intègre désormais un module d’étiquetage automatique. Les manipulations proposées ci-dessous ne seront donc plus nécessaires.

Nous partons d’un fichier xml qui a déjà été importé dans Textobserver (il est donc nettoyé des éléments problématiques décrits dans l’article Balisage xml sur la forme graphique)

Préparation du fichier treetagger

Sur le site de treetagger (http://cental.fltr.ucl.ac.be/treetagger/)

Envoyer le fichier xml (dont l’extension .xml à été remplacée par .txt)

Télécharger le fichier résultant (clic-droit > enregistrer la cible sous…)

Ouvrir ce fichier sur Notepad++

Transformation du fichier treetagger en fichier xml

>> voir un extrait du fichier résultat

Notez que le passage par treetagger n’a pas modifié les balises existantes. Ainsi les balises ‹texte mois= »avril2013″ genre= »texte » partie= »texte1″› et ‹/texte› qui encapsulent les différents textes sont conservées. Par contre les textes eux mêmes sont maintenant découpés en unités minimales qui sont étiquetées (séparées par des tabulations)

la            DET:ART              le

première colonne : le mot du texte

deuxième colonne la POS, Part Of Speech [partie du discours] (catégorie grammaticale)

troisième colonne : le lemme

Erreurs de POS ou de lemme

Attention : treetagger fait parfois des erreurs, elles peuvent être modifiées avant l’import sur textobserver. Il faut toutefois bien respecter les POS Treetagger pour permettre la cohérence du repérage. Vous pouvez procéder de même pour les lemmes

>> pour plus d’information sur les codes treetagger

Lemme ‹unknown›

Une erreur qu’il est primordial de modifier : la présence de balises ‹unknown› qui ne peuvent en aucun cas rester en l’état. Elles devront être remplacées par unknown (on retire les signes < et > autour du unknown)

Pour cela dans la fenêtre de rechercher remplacer de Notepad++ chercher : et remplacer par unknown

rempalcer-unknown

Vous pouvez bien sûr également réparer ces erreurs en remplaçant unknown par le bon lemme (c’est même préférable mais parfois long si vous avez un nombre important d’occurrences d’‹unknown›)

Transformation des lignes étiquetées en balises mots

Au préalable cocher la puce « Expression régulière » dans la fenêtre de rechercher/remplacer

Dans la zone « Recherche » taper : (.*)\t(.*)\t(.*)

On cherche un ensemble de caractères suivi d’une tabulation, suivie d’un ensemble de caractères suivi d’une tabulation suivie d’une ensemble de caractères.

Dans la zone « Remplacer par » taper : ‹w pos= »\2″ lemme= »\3″›\1‹/w›

On écrit ‹w pos= » suivi du deuxième groupe de caractères, suivi de  » lemme= » suivi du troisième groupe de caractère, suivi de  »› suivi du premier groupe de caractères lui-même suivi de ‹ /w›

Il s’agit d’une balise w (pour word : mot) avec deux attributs : pos et lemme.

La ligne : la          DET:ART              le

Devient : ‹w pos= »DET:ART » lemme= »le »›la‹/w›

NB : Si votre fichier est trop long pour que notepad++ le traite d’un coup (c’est souvent le cas avec un fichier treetagger vous pouvez faire cette étape par fractions (sélectionner environ 30 000 lignes à la fois et cocher « dans la sélection » dans la fenêtre de rechercher remplacer).

NB2 : Notez que si vous en avez besoin vous pourrez ajouter un attribut info par exemple que vous remplirez ponctuellement après l’avoir créé pour toutes les balises w. ‹w pos= »\2″ lemme= »\3″›\1‹/w› devient alors ‹w pos= »\2″ lemme= »\3″ info= »"›\1‹/w›

Lemme « 

L’attribut lemme  » crée une erreur dans le fichier xml

Il est donc nécessaire de transformer cet attribut pour toutes les balises w concernées

Pour cela chercher lemme= »" » et le remplacer par lemme= »"

Lemme ‘

Le lemme apostrophe est une erreur de treetagger qui pose problème à l’import

Il est donc nécessaire de transformer automatiquement les lemmes= »‘ » par lemme= »" ou de modifier la balise w complète si c’est une erreur de découpage treetagger.

Pour cela chercher : lemme= »‘ » et le remplacer par lemme= »"

Vous pouvez procéder maintenant à l’import du fichier xml sur TextObserver >> voir le tutoriel