Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

public:analyse_de_corpus_evs_avec_txm [2017/05/20 21:38]
slh@ens-lyon.fr
public:analyse_de_corpus_evs_avec_txm [2018/10/03 16:24] (version actuelle)
slh@ens-lyon.fr
Ligne 7: Ligne 7:
Dans la mesure où cette page est pour l'instant publique, il est intéressant de veiller à ne pas trop désigner de personnes et de projets concrets. Dans la mesure où cette page est pour l'instant publique, il est intéressant de veiller à ne pas trop désigner de personnes et de projets concrets.
-===== Toponymes de Paris =====+====== Toponymes de Paris ======
-==== macro NIndex ====+===== Import du corpus =====
-=== Installation de la macro ===+Pour pouvoir utiliser l'outil d'annotation par concordances, il est nécessaire d'importer le corpus avec le module d'import XTZ+CSV qui prend des sources au format XML (le module d'import XTZ+CSV et l'annotation sont disponibles à partir de TXM 0.7.8) :
-  - télécharger la macro [[https://sharedocs.huma-num.fr/wl/?id=EhvZ5j4e3KAUflYdrFqExy0Jq2KFCzVI|NIndexMacro.groovy]] +  * lancer 'Fichier > Importer > XML-XTZ+CSV' 
-  - copier le fichier dans <html><code>&lt;répertoire utilisateur&gt;/TXM/scripts/macro/org/txm/macro/commands</code></html> +    * pointer le répertoire des sources XML 'Paris_corrige
-  - ouvrir la vue Macro +    * lancer l'import en cliquant sur la flèche verte
-  - accéder au répertoire 'commands+
-  - double-cliquer sur l'icone de la macro NIndex pour la lancer+
-=== Fonctionnement de la macro ===+===== Annotation du corpus =====
-La macro NIndex assiste le décompte de séquences de mots dans des corpus ou sous-corpus. Elle généralise la commande Index de TXM 0.7.8 à N requêtes CQL. Les séquences sont fournies dans un fichier d'entrée (paramètre &lt;html&gt;&lt;code&gt;inputFile&lt;/code&gt;&lt;/html&gt;), au format général d'une séquence par ligne. Trois formats de séquences sont proposés +  * faire une concordance, par exemple de %%&quot;rue|avenue|boulevard&quot;%c (&quot;d[ue]|des|aux&quot;%c|&quot;de&quot;%c &quot;la&quot;%c)? [word="[A-Z].*"]%% :\\ {{:public:conc-rues.jpg?800}} 
-  * séquences de formes de mots (ou de forme de lemme ou de forme de pos, etc.) comme par exemple des séquences déjà repérées par TXM ou par un autre logiciel, exemple :&lt;code&gt;Cathédrale Notre-Dame +  * cliquer sur le bouton 'Annoter' (bouton crayon situé en haut à gauche de la concordance) 
-rue de la Chanvrerie +    * saisir l'identifiant de l'annotation, par exemple 'id_rue_neuve' 
-...</code+    * garder l'option 'lignes sélectionnées' 
-  * séquences d'expressions régulières sur les formes de mots, exemple :<code>Tour.* +    * sélectionner les deux lignes correspondant à &quot;rue Neuve&quot; :\\ {{:public:conc-rues-annotation.jpg?800}} 
-rue|avenue|boulevard de la [A-Z].*+  * cliquer sur 'OK' pour poser l'annotation 
 +    * on voit que les pivots ont bien reçu l'annotation : \\ {{:public:conc-rues-annotation-neuve.jpg?800}} 
 + 
 +===== Enregistrement de l'annotation ===== 
 + 
 +Une fois qu'on a cliqué dans une concordance sur le bouton "Annoter", qui a une icone de crayon, pour lancer une session d'annotation, il bascule en bouton "Enregistrer les annotations" avec l'icone crayon+disquette. Cliquer sur le bouton crayon+disquette sauvegarde les annotations de la session courante, ce qui permet ensuite d'exploiter les annotations par requêtes CQL. 
 + 
 +<note>La sauvegarde des annotations est un calcul encore assez long parce que TXM ré-importe en partie le corpus.</note
 + 
 +===== Exploitation de l'annotation du corpus ===== 
 + 
 +Après la sauvegarde, on voit que des structures 'span' sont disponibles avec le contenu des annotations dans leur propriété 'ref' : 
 + 
 +==== Extrait de la Description du corpus ==== 
 + 
 +<code>... 
 +Propriétés des structures (max 20 valeurs) 
 + 
 +doc 
 +  n (1) = 0. 
 +
 +  n (18972) = 0, 1, 10990, 10991, 10992, 10993, 10994, 10995, 10996, 10997, 10998, 10999, 2, 3, 4, 5, 6, 7, 8, 9. 
 +span 
 +  author (1) = sheiden. 
 +  date (1) = 2017-06-01. 
 +  end (2) = 3778, 5576. 
 +  n (1) = "". 
 +  ref (1) = id_rue_neuve. 
 +  start (2) = 3777, 5575. 
 +...
</code> </code>
-  * requêtes CQL, exemple :<code>"Cathédrale"%cd "Notre-Dame"%cd 
-"rue|avenue|boulevard"%c "de"%c "la"%c [word="[A-Z].*"] 
-...</code> 
-Dans les séquences de formes de mots et d'expressions régulières sur les formes de mots, les formes et les expressions régulières sont séparées par un caractère espace (pour chercher une forme contenant un espace il faut utiliser une expression régulière exprimant ce caractère Unicode).+==== Concordance basée sur l'annotation ==== 
 + 
 +Pour faire une concordance basée sur l'annotation, on peut utiliser une requête de la forme suivante :\\ %%<span_ref="id_rue_neuve"> []+ expand to span%% :\\ {{:public:conc-annotation-neuve.jpg?800}}
-=== Types de séquences ===+On peut utiliser 3 variantes de ce type de requêtes :
-Le type de séquences interprété par NIndex est déterminé par le paramètre <html><code>inputIsCQL</code></html>. Si ce paramètre est sélectionné (vrai), les séquences sont interprétées comme des requêtes CQL ; sinon elles sont interprétées soit comme des formes soit comme des expressions régulières de formes en fonction du contenu de chaque ligne.+=== A) ===
-Le paramètre <html&gt;&lt;code>inputWordProperty</code></html> permet de choisir la propriété de mot qui sera utilisée pour les recherches de séquences de formes ou de séquences d'expression régulière de forme. Par exemple : +%%<span_ref=&quot;id_rue_neuve&quot;> []%% 
-  * avec la valeur 'word' (par défaut) ce seront les séquences de forme graphiques qui seront recherchées +  * glose : pour ne chercher que le premier mot de la séquence annotée
-  * avec la valeur 'frlemma' ce seront les séquences de formes de lemmes qui seront recherchées +
-  * avec la valeur 'frpos' ce seront les séquences d'étiquettes morphosyntaxiques qui seront recherchées +
-  * etc. en fonction de l'étiquetage des mots du corpus+
-=== Propriété de mot dénombrée ===+=== B) ===
-Le paramètre <html&gt;&lt;code>outputWordProperty</code></html> permet de choisir quelle propriété de mot sera utilisée pour réaliser le dénombrement des séquences trouvées. Par exemple : +%%<span_ref=&quot;id_rue_neuve&quot;> []+ expand to span%% 
-  * avec la valeur 'frlemma' ce seront les séquences de formes de lemmes qui seront dénombrées +  * glose : pour chercher tous les mots de la séquence annotée
-  * avec la valeur 'word' (par défaut) ce seront les séquences de formes graphiques qui seront dénombrées +
-  * avec la valeur 'frpos' ce seront les séquences d'étiquettes morphosyntaxiques qui seront dénombrées +
-  * etc. en fonction de l'étiquetage des mots du corpus+
 +=== C) ===
-=== Regroupement des décomptes par séquence ===+%%[_.span_ref="id_rue_neuve"]%% 
 +  * glose : pour chercher chaque mot de la séquence annotée
-Quand les séquences sont des requêtes CQL ou des expressions régulières, il est possible de regrouper les décomptes de leurs réalisations en sélectionnant le paramètre <html><code>groupByQuery</code></html>. Dans ce cas il y a une fréquence par séquence dans le tableau de sortie.+Chacune des variantes aura son utilité selon l'outil mobilisé, Concordance ou Index par exemple, et l'objectif visé.
-=== Liste des corpus à interroger ===+==== Exportation de l'annotation ====
-Les corpus dans lesquels chercher sont soit sélectionnés dans la vue corpus (avant de lancer la macro), soit fournis sous la forme d'une liste de noms de corpus à l'appel de la macro par une autre macro.+Après la sauvegarde des annotations, le corpus contient en lui-même les annotations indépendamment de l'outil d'annotation. On peut donc exporter ce corpus au format binaire (avec la commande 'Fichier > Exporter > Corpus au format binaire) dans un fichier .txm que l'on peut transmettre à un correspondant. Le correspondant charge alors le corpus binaire (avec la commande 'Fichier > Charger) puis exploite le corpus et ses annotations comme pour n'importe quel corpus binaire.
-=== Format de sortie ===+==== Annotation d'un corpus annoté chargé ====
-La macro NIndex écrit son résultat dans un fichier de sortie (paramètre <html><code>outputFile</code></html>), deux formats sont proposés : +Ceci n'a pas encore été beaucoup testé mais le correspondant peut à son tour annoter le corpus lui-même avec la contrainte actuelle qui est qu'il n'a pas le référentiel des annotations déjà réalisées sur le TXM d'origine. Donc :
-  * ODS : format tableur Calc de Libre Office (extension .ods) +
-  * TSV : format texte tabulé TSV (caractère tabulation pour séparer les colonnes)+
-Remarque : dans TXM 0.7.8 ou inférieur, pour pouvoir écrire au format ODS il faut installer au préalable des bibliothèques Java complémentaires : +  * a) il doit pouvoir ajouter des annotations, qui doivent se conformer au système d'étiquettes d'origine (mêmes noms) si on veut pouvoir faire une exploitation conjointe des annotations d'origines et des nouvelles annotations 
-  - télécharger l'archive [[https://sharedocs.huma-num.fr/wl/?id=uL8Qdg5dwjbE9rY9SBnvnZmf4ileqDbH|office.zip]] +  * b) il peut peut-être corriger des annotations d'origine, en se conformant au système d'étiquettes d'origine pour les mêmes raisons que précédemment
-  - copier dans <html><code>&lt;répertoire utilisateur&gt;/TXM/scripts/lib</code></html> les 7 fichiers qu'elle contient : +
-    * commons-validator-1.4.0.jar +
-    * java-rdfa-0.4.2.jar +
-    * jena-core-2.7.4.jar +
-    * jena-iri-0.9.4.jar +
-    * odfdom-java-0.8.10-incubating.jar +
-    * org.apache.xerces_2.9.0.v201101211617.jar +
-    * simple-odf-0.8.1-incubating.jar +
-  - quitter puis relancer TXM +
-  - la macro peut alors utiliser ces librairies+
-Quand le paramètre <html><code>odsOutputFormat</code></html> est sélectionné la sortie se fait au format ODS, sinon TSV.+Comme nous n'avons pas encore fait de tests dans ce domaine, nous serions intéressés d'avoir des retours d'expérience. 
 +Il faudra qu'on prévoit d'exporter les référentiels (jeux d'étiquettes) dans les corpus binaires.
-== Sortie au format ODS ==+===== Notes 03/10/2018 =====
-La sortie au format tableur est composée de deux feuilles : +  * format de sortie PERDIDO 
-  * feuille principale (Sheet1) : contient le tableau des décomptes avec les colonnes suivantes : +    * tests 
-    * **corpus** : nom du corpus, au format chaine +  * exploitabilité des annotations PERDIDO 
-    * **word query** ou **CQL** : la requête de séquence, au format chaine +  * travailler sur des textes structurés et annotés avec PERDIDO 
-    * **word values** : les réalisations de la séquence, au format chaine (cette colonne n'est pas présente si le paramètre <html><code>groupByQuery</code></html> est sélectionné) +    * structurer en aval : annoter les structures dans TXM 
-    * **f** : la fréquence des réalisations ou de la requête si <html><code>groupByQuery</code></html> est sélectionné, au format nombre entier +    * structurer en amont : est-ce que TXM peut piloter les demandes à PERDIDO ? 
-  * feuille de renseignement des résultats (properties), contient le tableau des paramètres du calcul avec les informations suivantes : +  * nouveaux textes
-    * date : date de lancement de la macro +
-    * time : heure de lancement de la macro +
-    * machine : nom de la machine utilisée +
-    * user : identifiant de l'utilisateur ayant lancé le calcul +
-    * macro : nom de la macro +
-    * valeurs des paramètres : corpora, inputFile, inputIsCQL, inputWordProperty, outputFile, odsOutputFormat, outputWordProperty, groupByQuery+
===== Autres projets ===== ===== Autres projets =====
public/analyse_de_corpus_evs_avec_txm.1495309090.txt.gz · Dernière modification: 2017/05/20 21:38 par slh@ens-lyon.fr