Outils pour utilisateurs

Outils du site


public:macros

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
public:macros [2019/06/06 18:54]
slh@ens-lyon.fr
public:macros [2020/05/26 16:34] (Version actuelle)
slh@ens-lyon.fr [SetMatchingStrategy]
Ligne 1: Ligne 1:
-====== Documentation des Macros de TXM ======+====== Documentation des utilitaires livrés avec TXM (macros) ​======
  
-Les macros sont de petits utilitaires ​satellites de TXM échangeables et adaptables, ​ou bien des prototypes de futures fonctionnalités ​de TXM en cours de discussion et de finalisation,​ écrits ​en langage Groovy((langage de script empruntant les meilleurs traits de langage à Python, Ruby et Perl, et dont la sémantique repose entièrement sur celle du langage de robustesse industrielle Java - tout script Groovy est compilé à la volée vers la machine virtuelle Java afin d'​être exécuté. Ce langage donne donc accès à tous les composants Java de la plateforme TXM (toutes ses classes, ses commandes, ses modules d'​import,​ ses éditeurs, etc.) ainsi qu'à tous ses composants interfacés par Java comme CQP et R. )). Ce sont des petits fichiers texte d'​extension '​.groovy'​ pouvant être édités et modifiés à tout instant avant leur exécution avec n'​importe quel éditeur de texte, y compris l'​éditeur de texte intégré de TXM (accès direct par la commande '​Éditer'​ du menu contextuel de chaque macro dans la vue Macro). Des scripts Groovy utilitaires arrivant à maturité sont régulièrement transformés en macros de TXM. Et des macros arrivant à maturité sont régulièrement intégrées sous forme de commandes de base dans TXM.+TXM est livré avec des petits utilitaires échangeables et adaptables, ​qui prennent la forme de **macros** écrites ​en langage Groovy((langage de script empruntant les meilleurs traits de langage à Python, Ruby et Perl, et dont la sémantique repose entièrement sur celle du langage de robustesse industrielle Java - tout script Groovy est compilé à la volée vers la machine virtuelle Java afin d'​être exécuté. Ce langage donne donc accès à tous les composants Java de la plateforme TXM (toutes ses classes, ses commandes, ses modules d'​import,​ ses éditeurs, etc.) ainsi qu'à tous ses composants interfacés par Java comme CQP et R. )).
  
-Les macros ​utilisent un protocole simple pour ouvrir une boite de dialogue de saisie de leurs paramètres au lancementElles sont appelées depuis la vue '​Macro'​.+Des scripts Groovy utilitaires arrivant à maturité sont régulièrement transformés en macros de TXM pour devenir des utilitaires faciles d'​accèsEt des macros arrivant à maturité ​sont régulièrement intégrées sous forme de commandes de base dans TXM.
  
-Cette page documente les macros ​livrées ​avec TXM. Les versions les plus récentes ​de ces macros sont téléchargeables directement depuis Sourceforge : [[http://​sourceforge.net/​projects/​txm/​files/​software/​TXM%20macros]]+ 
 +===== Macros ===== 
 + 
 +Une macro est un petit fichier texte dont le nom se termine par '​-Macro'​ et ayant une extension '​.groovy'​. Le texte contenu dans ce fichier décrit des actions à exécuter pour réaliser les opérations du script. Les actions consistent à accéder à tous les outils et à toutes les données manipulées par TXM. Le fichier peut être édité et modifié à tout instant, avant son exécution, avec n'​importe quel éditeur de texte((y compris l'​éditeur de texte intégré de TXM - accès direct par la commande '​Éditer'​ du menu contextuel de chaque macro dans la vue Macro)). 
 + 
 +Les macros sont des scripts qui utilisent un protocole simple pour ouvrir au lancement une boite de dialogue de saisie interactive des paramètres. On peut accéder aux macros par le biais du menu '​Affichage > Vues > Macro' : une nouvelle vue '​Macro'​ s'​ouvre pour lister les répertoires de macros. On double-clique sur le nom d'une macro pour la lancer. Faire un clic droit sur le nom, puis menu '​Éditer'​ pour éditer son contenu dans l'​éditeur intégré de TXM. 
 + 
 +Voir le manuel utilisateur de TXM pour plus d'​informations sur l'​usage des macros dans TXM. 
 + 
 +===== Utilitaires ===== 
 + 
 +Cette page documente les macros ​considérées comme des utilitaires livrés ​avec TXM. Les versions les plus à jour de ces macros sont téléchargeables directement depuis Sourceforge : [[http://​sourceforge.net/​projects/​txm/​files/​software/​TXM%20macros]]
  
 Vous pouvez partager vos propres macros et leur documentation avec la communauté des utilisateurs de TXM par le biais de cette page (vous devez être inscrit à la liste de diffusion '​txm-users'​ pour cela). Vous pouvez partager vos propres macros et leur documentation avec la communauté des utilisateurs de TXM par le biais de cette page (vous devez être inscrit à la liste de diffusion '​txm-users'​ pour cela).
 +
 +===== Documentation =====
 +
 +La documentation est organisée en **thématiques** :
 +  * [[#​preparation_des_fichiers_sources_d_un_corpus_source_workbench|Préparation des fichiers sources d'un corpus (Source Workbench)]] : pour tout ce qui concerne la manipulation et l'​enrichissement des fichiers sources d'un corpus dans divers formats (TXT, XML, TEI)
 +  * [[#​reglage_des_editions_de_textes|Réglage des Éditions de Textes]] : pour manipuler les éditions des textes d'un corpus
 +  * [[#​export|Export]] : pour réaliser des exportations de données spécifiques
 +  * [[#​variantes_de_commandes_txm|Variantes de commandes TXM]] : pour des proto-commandes prototypes de TXM
 +  * [[#​appels_repetitifs_de_commandes_txm|Appels répétitifs de commandes TXM]] : pour réaliser par script des opérations laborieuses sans manipulations de l'​interface utilisateur
 +  * [[#​moteur_cqp|Moteur CQP]] : pour ce qui a trait au moteur de recherche plein texte de TXM
 +  * [[#​scripts_r|Scripts R]] : pour ce qui a trait au pilotage de R par TXM
 +  * [[#​statistiques_complementaires|Statistiques complémentaires]] : pour des calculs statistiques complémentaires des outils standards de TXM
 +  * [[#​cartographie|Cartographie]] : pour la manipulation (prototype) de données géographiques
 +  * [[#​multimodalite_multimedia|Multimodalité & Multimédia]] : pour la gestion de transcriptions d'​enregistrements audio ou vidéo
 +  * [[#​annotation_externe_de_corpus|Annotation externe de corpus]] : pour l'​export / import d'​annotations de mots réalisées dans des outils externes à TXM (tableurs Excel ou Calc)
 +  * [[#​macros1|Macros]] : pour manipuler les macros elles-mêmes
 +  * [[#​debug|Debug]] : divers outils de diagnostics (quelle version de Java est utilisée par TXM ? quelle version de R ? etc.)
  
 ====== Préparation des fichiers sources d'un corpus (Source Workbench) ====== ====== Préparation des fichiers sources d'un corpus (Source Workbench) ======
Ligne 198: Ligne 226:
   * il ajoute à chacune de ces unités textuelles des sous unités de structures encodant le contenu d'​autres colonnes à contenu "​textuel"​ de la ligne d'​origine (ces colonnes correspondent à des réponses à des questions ouvertes par exemple)   * il ajoute à chacune de ces unités textuelles des sous unités de structures encodant le contenu d'​autres colonnes à contenu "​textuel"​ de la ligne d'​origine (ces colonnes correspondent à des réponses à des questions ouvertes par exemple)
  
-L'​idée est de pouvoir comparer dans TXM les unités textuelles entre elles, soit les répondants par exemple, en s'​appuyant sur leurs propriétés (issues de certaines colonnes de la ligne, ou caractéristiques du répondant par exemple) et sur les mots qu'ils utilisent dans leurs réponses (issues de certaines colonnes de la ligne, ou réponses textuelles à chaque question "​textuelle"​ non fermée par exemple).+=== Usage ===
  
 +L'​idée est de pouvoir comparer entre elles dans TXM des unités textuelles, correspondant au texte des réponses de répondants à une enquête par exemple, en s'​appuyant sur leurs propriétés (issues de certaines colonnes, ou caractéristiques,​ de la ligne d'un répondant) et sur les mots qu'ils utilisent dans leurs réponses (issues d'​autres colonnes, ou réponses textuelles à chaque question "​textuelle"​ non fermée, de la ligne du même répondant).
 +
 +<​html><​strike></​html>​
 === Installation des macros === === Installation des macros ===
 +<​html></​strike></​html>​
  
 +[section obsolète : ces macros sont livrées dans TXM depuis la version 0.8.0, dans la section '​text'​]
 +<​html><​strike></​html>​
   - télécharger l'​archive [[https://​sourceforge.net/​projects/​txm/​files/​software/​TXM%20macros/​Office/​Excel2XML.zip/​download|Excel2XML.zip]]   - télécharger l'​archive [[https://​sourceforge.net/​projects/​txm/​files/​software/​TXM%20macros/​Office/​Excel2XML.zip/​download|Excel2XML.zip]]
   - décompresser l'​archive   - décompresser l'​archive
Ligne 207: Ligne 241:
   - copier les fichiers .jar((librairies Java du projet [[https://​poi.apache.org|Apache POI]] manipulant les fichiers Excel)) se trouvant dans le répertoire '​Excel2XML/​office/​lib'​ dans <​html><​code>&​lt;​répertoire utilisateur&​gt;/​TXM/​scripts/​lib</​code></​html>​   - copier les fichiers .jar((librairies Java du projet [[https://​poi.apache.org|Apache POI]] manipulant les fichiers Excel)) se trouvant dans le répertoire '​Excel2XML/​office/​lib'​ dans <​html><​code>&​lt;​répertoire utilisateur&​gt;/​TXM/​scripts/​lib</​code></​html>​
   - quitter, puis relancer TXM   - quitter, puis relancer TXM
 +<​html></​strike></​html>​
  
 === Paramètres === === Paramètres ===
Ligne 215: Ligne 250:
         * inputFile : chemin du fichier .xlsx((.xlsx est le format recommandé. Le traitement de fichiers .xls ne fonctionne pas toujours correctement)) en entrée\\ **Remarques**         * inputFile : chemin du fichier .xlsx((.xlsx est le format recommandé. Le traitement de fichiers .xls ne fonctionne pas toujours correctement)) en entrée\\ **Remarques**
           * La première ligne contient les noms de colonnes           * La première ligne contient les noms de colonnes
-          * Le nom du fichier résultat est construit à partir de celui du fichier d'​entrée en remplaçant l'​extension par '​.xml'​+          * Le nom du fichier résultat est construit à partir de celui du fichier d'​entrée en remplaçant l'​extension par ''.xml''
       * pour la macro ExcelDir2XML :       * pour la macro ExcelDir2XML :
         * inputDirectory : chemin du répertoire de fichiers .xlsx         * inputDirectory : chemin du répertoire de fichiers .xlsx
     * sheetName : nom de la feuille à utiliser dans le fichier Excel (si aucun nom est fourni, la première feuille du fichier est utilisée)     * sheetName : nom de la feuille à utiliser dans le fichier Excel (si aucun nom est fourni, la première feuille du fichier est utilisée)
     * metadataColumnList : liste des noms de colonnes encodant les propriétés des unités textuelles à construire - colonnes catégorisant le répondant, séparés par une virgule : (par exemple : '​identifiant,​age,​sexe'​).\\ Les noms de ces colonnes seront utilisés pour nommer les propriétés correspondantes après normalisation automatique (réduction en minuscules, sans caractères spéciaux ni accents)     * metadataColumnList : liste des noms de colonnes encodant les propriétés des unités textuelles à construire - colonnes catégorisant le répondant, séparés par une virgule : (par exemple : '​identifiant,​age,​sexe'​).\\ Les noms de ces colonnes seront utilisés pour nommer les propriétés correspondantes après normalisation automatique (réduction en minuscules, sans caractères spéciaux ni accents)
-    * dateColumnList : liste des noms de colonnes encodant des dates à décoder de la forme '​jj/​mm/​aaaa'​ (exemple '​01/​02/​2018'​ pour le 1er février 2018)+    * dateColumnList : liste des noms de colonnes encodant des dates à décoder de la forme '​jj/​mm/​aaaa'​ (exemple ​''​01/​02/​2018'' pour le 1er février 2018)
     * textColumnList : liste des noms de colonnes encodant le contenu textuel - colonnes contenant les réponses aux questions ouvertes du répondant, séparés par une virgule : (par exemple : '​reponse1,​reponse2'​)\\ Les noms de ces colonnes seront utilisés après normalisation automatique pour nommer les balises qui délimiteront ces contenus textuels     * textColumnList : liste des noms de colonnes encodant le contenu textuel - colonnes contenant les réponses aux questions ouvertes du répondant, séparés par une virgule : (par exemple : '​reponse1,​reponse2'​)\\ Les noms de ces colonnes seront utilisés après normalisation automatique pour nommer les balises qui délimiteront ces contenus textuels
   * Sortie   * Sortie
-    * rootTag : nom de la balise XML racine du document résultat (par exemple : '​enquete'​) +    * rootTag : nom de la balise XML racine du document résultat (par exemple : ''​enquete'') 
-    * textTag : nom de la balise XML encodant les unités textuelles correspondant à chaque ligne du tableau d'​entrée (par exemple : '​reponse'​)+    * textTag : nom de la balise XML encodant les unités textuelles correspondant à chaque ligne du tableau d'​entrée (par exemple : ''​reponse'')
  
 === Exemple de tableau .xlsx de départ === === Exemple de tableau .xlsx de départ ===
Ligne 284: Ligne 319:
   * textColumnList : réponse à Q1,réponse à Q2   * textColumnList : réponse à Q1,réponse à Q2
  
-Remarque : on voit que le paramètre choisi pour '​dateColumnList'​ a provoqué l'​extraction des différents éléments composant la date en créant plusieurs propriétés :+Remarque : on voit que le paramètre choisi pour ''​dateColumnList'' a provoqué l'​extraction des différents éléments composant la date en créant plusieurs propriétés :
   * datedelareponse="​01/​02/​2018"​ : la date complète   * datedelareponse="​01/​02/​2018"​ : la date complète
   * datedelareponsejour="​01"​ : le jour dans le mois   * datedelareponsejour="​01"​ : le jour dans le mois
Ligne 294: Ligne 329:
  
   - copier le ou les fichiers .xml résultats dans un répertoire source   - copier le ou les fichiers .xml résultats dans un répertoire source
-  - lancer l'​import XTZ+CSV (commande '​Fichier / Importer / XTZ+CSV'​)+  - lancer l'​import XTZ+CSV (commande ​''​Fichier / Importer / XTZ+CSV'')
     * désigner le répertoire source     * désigner le répertoire source
-    * il est recommandé ​les paramètres d'​import suivants : +    * utiliser ​les paramètres d'​import suivants : 
-      * Éditions > Nombre de mots par page = 100000\\ ​Un grand nombre de mots par page permet d'​obtenir tout le contenu d'une ligne du tableau d'​origine dans une seule page d'​édition du texte construit +      * ''​Éditions > Nombre de mots par page'' ​= 100000\\ ​-> un grand nombre de mots par page permet d'​obtenir tout le contenu d'une ligne du tableau d'​origine dans une seule page d'​édition du texte construit 
-      * Plans textuels > Hors texte à éditer = metadata +      * ''​Plans textuels > Hors texte à éditer'' ​= metadata\\ -> le contenu textuel de la liste de propriétés ​ne sera pas indexé ​par le moteur de recherche plein texte, bien qu'il soit affiché ​dans l'​édition ​du corpus
- +
-Remarque : chaque unité textuelle correspondant à une ligne du tableau source commence par la liste de ses propriétés ​(ou métadonnées),​ et cette liste est encadrée ​par une structure "​%%<​metadata>​%%"​. Placer la structure "​%%<​metadata>​%%"​ dans le champ "​Hors ​texte à éditer"​ permet de ne pas mettre les mots de cette liste dans les mots de l'unité textuelle, tout en les affichant ​dans l'​édition ​de l'​unité textuelle.+
  
 === Exploitation dans TXM === === Exploitation dans TXM ===
  
-Avec le corpus construit on peut, par exemple, comparer des catégories de répondants entre elles en réalisant un calcul de spécificité ​du vocabulaire sur une partition. Par exemple sur une partition des valeurs de la propriété '​sexe'​ des structures '​reponse'​.+== Exemple de calcul statistique == 
 + 
 + 
 +Avec le corpus ​ainsi construit on peut, par exemple, comparer des catégories de répondants entre elles en réalisant un calcul de spécificité ​de leur vocabulaire sur une partition. Par exemple sur une partition des valeurs de la propriété ​''sexe'' des structures ​''​reponse'​' : 
 +  * construire une partition à partir de la structure ''​reponse''​ et de sa propriété ''​sexe''​ 
 +  * lancer le calcul de Spécificités sur cette partition
  
 == Exemple d'​édition == == Exemple d'​édition ==
Ligne 345: Ligne 383:
  
 ==== CSV2XML ==== ==== CSV2XML ====
 +
 +[macro obsolète : il est recommandé d'​utiliser la macro Excel2XML à la place]
  
 Macro de transformation d'un tableau au format CSV, dont certains champs contiennent du texte, en un fichier XML importable dans TXM avec le module d'​import XML/w+CSV pour une analyse textométrique. Cette macro est un premier prototype du futur module d'​import de TXM de sources sous forme de tableau au format CSV, dans l'​esprit du logiciel [[http://​www.dtmvic.com | Dtm-Vic de Ludovic Lebart]] (cf Manuel d'​Utilisation de Dtm-Vic, seconde édition (2013) section "IV. Importation,​ création et exportation des fichiers au format Dtm-Vic"​) qui traite typiquement ce genre de sources. Macro de transformation d'un tableau au format CSV, dont certains champs contiennent du texte, en un fichier XML importable dans TXM avec le module d'​import XML/w+CSV pour une analyse textométrique. Cette macro est un premier prototype du futur module d'​import de TXM de sources sous forme de tableau au format CSV, dans l'​esprit du logiciel [[http://​www.dtmvic.com | Dtm-Vic de Ludovic Lebart]] (cf Manuel d'​Utilisation de Dtm-Vic, seconde édition (2013) section "IV. Importation,​ création et exportation des fichiers au format Dtm-Vic"​) qui traite typiquement ce genre de sources.
Ligne 479: Ligne 519:
  
 **Remarque** : le répertoire résultat peut être importé dans TXM en l'​indiquant comme répertoire source du module d'​**import XML/​w+CSV**. **Remarque** : le répertoire résultat peut être importé dans TXM en l'​indiquant comme répertoire source du module d'​**import XML/​w+CSV**.
 +
 +==== CQP2XML ====
 +
 +Transforme tous les fichiers d'un répertoire ayant une extension '​.cqp',​ au format source du moteur CQP, en fichiers XML compatibles avec l'​import dans TXM avec un module XML. Les fichiers XML sont déposés dans un sous-répertoire résultat '​out'​ avec les mêmes noms mais avec une extension '​.xml'​.
 +
 +La macro encadre le contenu du fichier avec deux balises <text id="​nom du fichier sans extension">​ ... </​text>​.
 +
 +**Paramètres**
 +  * inputDirectory : répertoire des fichiers à transformer
 +  * encoding : système d'​encodage des caractères des fichiers texte (par défaut : Unicode UTF-8)
 +  * separator : caractère séparateur de colonnes (par défaut la tabulation : '​\t'​)
 +  * columns : liste des noms de colonnes des lignes de mots qui vont correspondre à des propriétés de mots, séparés par une virgule. La colonne correspondant à la forme graphique du mot doit s'​appeler '​word'​. (par défaut : word,​pos,​lemma)
 +
 +**Import dans TXM**
 +
 +Le répertoire résultat peut être importé dans TXM avec le module d'​**import XML/w+CSV** en réglant les paramètres de la façon suivante :
 +  * décocher '​Annoter le corpus'​ (sauf si vous souhaitez ajouter des propriétés supplémentaires issues de TreeTagger)
 +  * choisir la bonne langue pour les tris lexicographiques
 +  * décocher '​Tokenization'​ car les mots sont déjà encodés dans les textes
  
 ==== Taltac2XML ==== ==== Taltac2XML ====
Ligne 1133: Ligne 1192:
 ==== SetMatchingStrategy ==== ==== SetMatchingStrategy ====
  
-Permet de changer ​la stratégie de résolution des opérateurs ?, *, + sur les occurrences ​du langage de requêtes CQL au cours d'une session de travail. ​Par exemple, pour la requête((d'​après The CQP Query Language Tutorial, (CWB version 2.2.b90), Stefan Evert, 10 July 2005)) : +Change ​la stratégie de résolution ​du moteur CQP des opérateurs ?, *, + appliqués aux occurrencesau cours d'une session de travail.
-<​code>​[enpos="​DET"​]?​ [enpos="​ADJ"​]* [enpos="​NN"​] ([enpos="​PREP"​] [enpos="​DET"​]?​ [enpos="​ADJ"​]* [enpos="​NN"​])*</​code>​+
  
-Avec le texte suivant ​à interroger ​:+Par exemple : 
 +  * pour l'​interrogation du texte suivant :
 <​code> ​   the old book on the table in the room</​code>​ <​code> ​   the old book on the table in the room</​code>​
 +  * la requête CQL((d'​après The CQP Query Language Tutorial, (CWB version 2.2.b90), Stefan Evert, 10 July 2005)) :
 +<​code>​[enpos="​DET"​]?​ [enpos="​ADJ"​]* [enpos="​NN"​] ([enpos="​PREP"​] [enpos="​DET"​]?​ [enpos="​ADJ"​]* [enpos="​NN"​])*</​code>​
  
-  * pour la stratégie ​'shortest' le résultat est le suivant (matches)+Retourne, selon la stratégie ​utilisée : 
 +  * **shortest** : les résultats suivants
 <​code>​ <​code>​
 r1=         book r1=         book
Ligne 1145: Ligne 1207:
 r3=                                  room r3=                                  room
 </​code>​ </​code>​
-  * pour la stratégie 'longest'((équivalent de la stratégie '​greedy'​ des expressions régulières - voir [[https://​docs.oracle.com/​javase/​tutorial/​essential/​regex/​quant.html]])) le résultat ​est le suivant ​ (1 match)+  * **longest**((équivalent de la stratégie '​greedy'​ des expressions régulières - voir [[https://​docs.oracle.com/​javase/​tutorial/​essential/​regex/​quant.html]])) le résultat suivant ​:
 <​code>​ <​code>​
 r1= the old book on the table in the room r1= the old book on the table in the room
 </​code>​ </​code>​
-  * pour la stratégie 'standard'((équivalent de la stratégie '​reluctant'​ des expressions régulières - voir [[https://​docs.oracle.com/​javase/​tutorial/​essential/​regex/​quant.html]])) ​le résultat est le suivant ​ (matches)+  * **standard**((équivalent de la stratégie '​reluctant'​ des expressions régulières - voir [[https://​docs.oracle.com/​javase/​tutorial/​essential/​regex/​quant.html]])) ​: les résultats suivants
 <​code>​ <​code>​
 r1= the old book r1= the old book
Ligne 1155: Ligne 1217:
 r3=                              the room r3=                              the room
 </​code>​ </​code>​
-  * pour la stratégie 'traditional' le résultat est le suivant ​ (matches recouvrants)+  * **traditional** : les résultats suivants
 <​code>​ <​code>​
 r1= the old book r1= the old book
public/macros.1559840083.txt.gz · Dernière modification: 2019/06/06 18:54 par slh@ens-lyon.fr