Archives pour la catégorie manuel

Créer un arbre Treecloud à partir d’une concordance TextObserver

NB: Cet article n’est utile que pour la version 39. Désormais, depuis la version 9.4.2 Treecloud est intégré à TexObserver (disponible au téléchargement dans les jours qui viennent).

1- Calculer une concordance avec TextObserver puis cliquer sur le bouton « Exporter » au bas de la liste des concordances

1-TO-concordance

2- Dans le dossier TextObserver trouver le fichier Concordance.xls et l’ouvrir avec un éditeur de texte (ici Notepad++)

2-TO-exporter-concordance-ouvrir-notepadd

3- Dans Notepad++ faire apparaitre tous les caractères (tabulations, fin de ligne etc..)

3-notepad-aficher-tous-caracteres

4-Ouvrir la fenêtre de rechercher-remplacer

4-notepad-rechercher-remplacer

5- Rechercher les tabulations et les remplacer par des espaces (en mode Expression Régulière une tabulation se code : \t)

5-rechercher-remplacer-tabulatuion-par-espace

6- vérifier que l’encodage du fichier est bien ANSI, si ce n’est pas le cas choisir « Convert to ANSI »

6-encoder-ANSI

7- Enregistrer le fichier texte dans un sous-dossier dans le dossier Splits Tree

7-enregistrer-dans-treecloud

8- Toujours sur Notepad++ ajouter une série de mots en fin de chaque ligne (qui sera supprimé par l’anti dictionnaire de TreeCloud), ici on remplace les caractères LF (codé \n) par « de de de de de de \r\n » (le caractère CR se code \r)

Nb: si en fin de lignes vous voyez le s caractères CRLF sur fond noir il faut chercher \r\n et pas juste \n

8-balisefinligne-treecould

9- Enregistrer le résultat

10- Sur Treecloud Ouvrir un fichier texte et choisir le fichier qui vient d’être enregistré

9-ouvrir-fichier-txt-treecloud

11- Lancer le calcul de l’arbre (bouton « calculer le nuage arboré TreeCloud! »)

10-calcul-arbre

12- Si besoin est remplir la fenêtre ci-dessous et cliquer sur « Later »

11-enregistrement-treecloud

13- un arbre est calculé

12-arbre

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

créer et utiliser une table morphosyntaxiques

lors de l’import d’un répertoire de corpus au format XML étiqueté avec Treetagger Textobserver propose par défaut de créer les tables ci-dessous

selection-tables-a-creer-defaut

si l’on coche les propriétés lemme et pos en plus de ces valeurs par défaut (voir ci-dessous) on génère alors des tables supplémentaires qui permettront de visualiser directement ces caractéristiques dans le corpus.

selection-tables-a-creer-ajout-lemme-pos-encadre

Le panneau ci-dessous liste l’ensemble des tables générées

tables-creees-zoom

Ci-dessous deux tables lexicales ont été ouvertes en même temps sur textobserver afin qu’elles puissent être comparées. La première VOEUX_TREETAGG_XML_2014_discours_loc_pos.tab (AFC de droite : par locuteurs et étiquettes grammaticales) et la seconde est VOEUX_TREETAGG_XML_2014_discours_loc_word.tab (AFC de gauche : par locuteur et mots du discours)

comparaison AFC loc-word-et-loc-pos-zoom

NB: si vous désirez faire pivoter une des afc il suffit de la sélectionner en la cliquant puis, à l’aide d’un clic droit, de choisir Rotation> Angle local>… et de choisir l’angle voulu dans la liste.

notez qu’il est également possible d’ouvrir la table présentant les résultats par locuteur uniquement pour les lemmes ou les résultats par locuteur uniquement pour les pos ce qui permet d’observer des variations de l’afc liées aux spécificités des étiquettes

installer Textobserver sur windows 64bits

Pour fonctionner TextObserver à besoin que java32bits soit installer sur la machine que vous utilisez.

Si vous utilisez un windows 64bits vous devez donc

1- installer java 32bits (à un emplacement qui n’est pas celui par défaut)
2- modifier le fichier run.bat de TextObserver pour qu’il trouve java 32bits

1- Installer java 32bits

Si le lien suivant n’est plus à jour https://www.java.com/fr/, une simple recherche sur google vous permettra de trouver java 32bits pour windows.

site1

Cliquer sur Téléchargement gratuit de java vous mène à la page suivante :

site2

Enregistrer le fichier sur votre ordinateur puis exécutez le.

Vous devez absolument cocher la case Modifier le dossier de destination pour choisir un emplacement dans votre ordinateur

instal1

En cliquant sur le bouton « Installer » la fenêtre ci dessous s’ouvre vous pourrez alors cliquer sur « Modifier » pour choisir un emplacement dans votre ordinateur.

instal2

Le plus simple consiste à installer java en racine de votre dossier utilisateur dans un dossier nommé « java32″.

NB: Attention à ne pas choisir un chemin dont les noms de dossier comportent des espaces cela compliquerait l’étape suivante (il faudrait alors inclure le chemin entre guillemets).

Une fois java32bits  installé, utilisez l’explorateur windows pour trouver le fichier exécutable java. Dans l’image ci-dessous l’Application est sélectionnée (en gris moyen) et le chemin dans le disque dur est récupéré en cliquant dans la barre d’adresse de l’explorateur. Copier ce chemin.

emplacement-java

2- modifier le fichier run.bat de TextObserver pour qu’il trouve java 32bits

Ouvrir le dossier « TextObserver39″ et localiser le fichier « run.bat »

emplacementrunpointbat

éditer ce fichier avec un éditeur de texte (Notepad++ par exemple)

editrunpointbat

Le fichier original contient les lignes suivantes:

fichier-runpointbat-ori

La première ligne peut être lue ainsi :

fichier-runpointbat

Il suffit de remplacer CHEMIN_VERS_JAVA32BIT par le chemin que vous avez copié et qui correspond à l’emplacement du fichier exécutable java.

Nous obtenons donc (ceci correspond à l’emplacement de l’exécutable java 32 bits dans notre ordinateur)

fichier-runpointbat-nouveau

Enregistrer le fichier puis lancer TextObserver en double-cliquant sur le fichier run.bat

Balisage xml sur la forme graphique

1. Encoder le fichier xml

Lors de la création du fichier xml choisir un encodage ANSI ou UTF-8 mais bien le préciser à l’entrée dans TextObserver afin que les accents se codent correctement. En enregistrant en texte brut avec word vous obtiendrez du ANSI.

Lors de cet enregistrement pensez à cocher « autoriser le replacement des caractères » pour éviter entre autre les problèmes d’encodage des guillemets.

textebrut-autoriser-remplacement-caracteres

Nb : le logiciel Notepad++ permet de convertir l’encodage proprement si nécessaire (menu Encodage>Convertir en …)

2. Baliser le corpus

Chaque division du corpus (partition) doit être encadrée par un balisage.

balise1

extrait du fichier balisé :

balisage-xml

Les caractères interdits :

  • Les textes ne doivent en aucun cas contenir des chevrons (‹ ou › ) car ces caractères perturbent le fonctionnement des balises xml.
  • Ne pas laisser de & (esperluette) dans le texte.
  • les ~ (tildes) posent également problème
  • pas de tabulations
  • Ne pas utiliser les codes html pour remplacer les caractères spéciaux ou accentués dans le texte.
  • la balise (en anglais) est une balise réservée… ne pas l’utiliser pour encadrer les divisions du corpus.

NB : Le fichier ne doit en aucun cas comporter de balise vide (partition ou W)
exemple de balise vide :

exemple-balise-xml-vide
(un mot doit figurer entre la balise ouvrante et la balise fermante )

Une fois le corpus balisé, enregistrer en txt puis changer l’extension .txt pour .xml
Copier ce fichier dans un dossier en racine de TextObserver.

>> importer un corpus

Retour au texte => Recherche de motif

- Sur la forme graphique à partir de la fenêtre concordance -

Quelques fonctionnalités pour bien démarrer

Recherche d’une forme unique (forme graphique). Dans la fenêtre requête de l’onglet concordances saisir la forme recherchée et cliquer sur « appliquer ».

recherche d’une suite mots, portion de phrase, syntagme

Lorsque l’on recherche une suite de mots, une portion de phrase, un syntagme, chaque élément doit être saisi entre guillemets et séparé du suivant par un espace :

motif-suite-mots

Il est possible d’examiner la répartition du motif recherché entre les différentes parties du corpus en cliquant sur le bouton « spécificité »

Expressions régulières : rechercher la fin d’un mot

=> tout caractère suivi d’une suite fixe de caractères :
.*isme

motif-fin

>> tutoriel vidéo (constituer une liste à partir des résultats de la requête et modifier l’analyse factorielle des correspondances)

=> mot commençant par une suite fixe de caractères :
immigr.*

motif-debut

=> un mot suivi d’un autre avec un intervalle de x mots entre les deux :
« je » []{1,3} « voudrais »

motif-mot-suivit-mot-intervale

Cet exemple permet de trouver « je » suivi de 1 à 3 mots quelconques suivi de « voudrais ».

=> recherche de deux mots séparés par un intervalle quelconque
« an »[]* »disais »

« an » suivi de 0 à n mots quelconques suivi de « disais »

motif-mot-suivit-mot-intervaleinfini

=> disjonction :
« nous|Nous » « devons »

« nous » OU « Nous » suivi de « devons »

motif-OU1

=> exemple combinant la disjonction et des suites de mots :
« nous » « avons » []* « espérer|espoir|confiance »
« nous » « avons » []{1,20} « espérer|espoir|confiance »
« nous|Nous » « avons » []{1,20} « espérer|espoir|confiance|raison|raisons »

Le premier exemple permet de trouver « nous avons » suivi de « espérer » ou « espoir » ou « confiance » avec un intervalle libre de mots entre « nous avons » et l’autre mot.

motif-combine2

le second permet la même recherche mais définit un intervalle de 1 à 20 mots.

motif-combine1

le troisième ajoute permet d’obtenir le résultat qui suit

motif-combine3

Syntaxe du motif de recherche

Les caractères:

  • . : un point désigne n’importe quel caractère
  • ? : le point d’interrogation rend le caractère qui précède optionnel
  • tout autre caractère (s’il ne fait pas partie de la syntaxe des expressions) se désigne lui même (a désigne un a, b un b, etc… mais une * à une signification autre que le caractère *)

La recherche ci-dessous combine ainsi un v et un t avec un caractère libre entre les deux

motif-caractere-libre-caractere

La recherche ci-après rend le s en fin de mot optionnel

motif-caract-optionnel

Les répétitions

  • * : une étoile indique que le caractère présent juste avant se répète n’importe quel nombre de fois (de 0 à l’infini)
  • + : un plus indique que le caractère présent juste avant se répète au moins une fois et peut être présent plusieurs fois

Les ensembles

  • [] : un ensemble de crochets vide désigne un mot (ensemble de caractère)
  • []* : désigne un nombre infini de mots (de 0 à l’infini)
  • []{1,4} : désigne un nombre fini de mots (entre 1 et 4 compris)

[à venir : recherche de motifs sur catégories morphosyntaxiques]