Outils pour utilisateurs

Outils du site


public:specs_construction_partition

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:specs_construction_partition [2013/11/04 14:49]
sebastien.jacquot@univ-fcomte.fr
public:specs_construction_partition [2018/11/30 10:02] (Version actuelle)
slh@ens-lyon.fr
Ligne 1: Ligne 1:
-====== Spécifications de la construction de partitions ======+====== Spécifications de la construction ​de sous-corpus ou de partitions ======
  
 A l'​heure actuelle, il est possible de construire des partitions dans TXM de 4 façon différentes : A l'​heure actuelle, il est possible de construire des partitions dans TXM de 4 façon différentes :
Ligne 71: Ligne 71:
   * c) passage en mode greedy avec une requête du type   * c) passage en mode greedy avec une requête du type
     [text & !speaker]+ ​     [text & !speaker]+ ​
- 
- 
- 
- 
  
 ==== Interface pour la création de ces types de partition ==== ==== Interface pour la création de ces types de partition ====
Ligne 87: Ligne 83:
  
 SJ: effectivement je trouve aussi mais il faudrait dans ce cas revoir les 3 assistants déjà présent car ils permettent tous de créer des partitions sur des sous-corpus en passant directement par le corpus mère, rien que par sélection de structure non racine dans les combo boxes. Avec le système actuel, on a donc ensuite dans la vue corpus une partition directement liée au corpus mère alors qu'​elle n'a en réalité été évaluée que sur un sous-corpus temporaire. SJ: effectivement je trouve aussi mais il faudrait dans ce cas revoir les 3 assistants déjà présent car ils permettent tous de créer des partitions sur des sous-corpus en passant directement par le corpus mère, rien que par sélection de structure non racine dans les combo boxes. Avec le système actuel, on a donc ensuite dans la vue corpus une partition directement liée au corpus mère alors qu'​elle n'a en réalité été évaluée que sur un sous-corpus temporaire.
 +
 +==== Sous-corpus à partir d'une sélection lexicale (CQL) ====
 +
 +Pouvoir créer un sous-corpus à partir d'une sélection lexicale (CQL) étendue à une structure (eg. '​expand to div'). Un tel sous-corpus correspond à travailler dans les cooccurrents de la CQL.
 +
 +Cette construction de sous-corpus peut être aussi appliquée pour construire les parties d'une partition (en donnant plusieurs CQL donc).
 +
 +Interface Utilisateur : cela peut être une nouvelle option-alternative au mode assisté de l'​assistant de création de sous-corpus (pour l'​instant ce mode, non finalisé, n'aide à construire les sous-corpus qu'à partir de structures).
  
 ===== Méthode ===== ===== Méthode =====
  
 +==== Mode avancé ====
 +
 +L'​utilisateur donne les requêtes CQL et les noms des parties a créer.
 +
 +L'​interface est composée :
 +  * d'une liste de champs de parties composées de :
 +    * un champ texte pour nommer la partie
 +    * un champ requête pour régler la CQL
 +    * un bouton "​+"​ pour ajouter/​insérer une nouvelle partie
 +    * un bouton "​-"​ retirer la partie
 +  * d'un bouton "​Importer depuis un fichier properties..."​ pour charger les champs depuis une liste de requêtes nommées stockée dans un fichier properties
 +  * d'un bouton "​Exécuter une macro..."​ pour exécuter une macro :
 +    * qui reçoit en paramètre le corpus, la partition, etc. et retourne une liste de listes de matches nommées ou une Partition
  
 ==== Requêtes généralisées et '​expand'​ ==== ==== Requêtes généralisées et '​expand'​ ====
Ligne 140: Ligne 157:
  
  
-===== Interface par arbre =====+==== Interface par arbre ====
  
 Une solution pour apporter une interface permettant à l'​utilisateur de définir des partitions croisées sur plusieurs propriétés et multi-niveaux serait de passer par un arbre représentant l'​arbre XML du corpus. Il s’agirait de créer l’arbre en fonction de la structure du corpus puis que l’utilisateur puisse cocher ce qui l’intéresse pour la création des partitions. Il pourrait y avoir des mécanismes de simplification de sélection, ex : pour une hiérarchie du type « text.discours.p.s », la sélection de « s » sélectionnerait automatique toute la branche. Une solution pour apporter une interface permettant à l'​utilisateur de définir des partitions croisées sur plusieurs propriétés et multi-niveaux serait de passer par un arbre représentant l'​arbre XML du corpus. Il s’agirait de créer l’arbre en fonction de la structure du corpus puis que l’utilisateur puisse cocher ce qui l’intéresse pour la création des partitions. Il pourrait y avoir des mécanismes de simplification de sélection, ex : pour une hiérarchie du type « text.discours.p.s », la sélection de « s » sélectionnerait automatique toute la branche.
Ligne 152: Ligne 169:
 BP: si on veut coder cela dans TXM, il faudrait être capables de définir un algorithme de construction (semi)automatique de l'​arbre à partir de la représentation interne du corpus ? BP: si on veut coder cela dans TXM, il faudrait être capables de définir un algorithme de construction (semi)automatique de l'​arbre à partir de la représentation interne du corpus ?
  
-SJ: Oui, je crois qu'on ne peut pas récupérer directement la structure via CWB mais le script Groovy proposé contient une méthode le faisant (méthode ​assez lourde, au besoin il faudrait peut-être le faire et le stocker une fois pour toutes quelque part avec le corpus). ​+SJ: Oui, je crois qu'on ne peut pas récupérer directement la structure via CWB mais le script Groovy proposé contient une méthode le faisant (méthode ​récursive potentiellement ​lourde, au besoin il faudrait peut-être le faire et le stocker une fois pour toutes quelque part avec le corpus). ​
  
-=== Interface par arbre === 
  
-== Exemple 1 - partition simple ==+=== Exemple 1 - partition simple ​===
  
   <text loc="​DG"></​text>​   <text loc="​DG"></​text>​
Ligne 167: Ligne 183:
  
  
-== Exemple 2 - partition croisée ==+=== Exemple 2 - partition croisée ​===
  
   <text loc="​DG"​ type="​Allocution"></​text>​   <text loc="​DG"​ type="​Allocution"></​text>​
Ligne 177: Ligne 193:
 {{:​public:​arbre_partitions_2.jpg|}} {{:​public:​arbre_partitions_2.jpg|}}
  
-== Exemple 3 - partition croisée et multi-niveaux ==+=== Exemple 3 - partition croisée et multi-niveaux ​===
  
   <text loc="​DG">​   <text loc="​DG">​
Ligne 191: Ligne 207:
 {{:​public:​arbre_partitions_3.jpg|}} {{:​public:​arbre_partitions_3.jpg|}}
  
-== Exemple 4 - corpus « complexe » ==+=== Exemple 4 - corpus « complexe » ===
  
 Interface générée : Interface générée :
Ligne 206: Ligne 222:
  
  
-===== Interface par ensemble ​=====+==== Interface par ensemble ====
  
 Voici une proposition d'​interface par ensemble, l'​idée est de permettre ​ Voici une proposition d'​interface par ensemble, l'​idée est de permettre ​
Ligne 217: Ligne 233:
 En fait ça marche aussi pour les sous-corpus,​ c'est génial nan ? En fait ça marche aussi pour les sous-corpus,​ c'est génial nan ?
  
-Remarque : compléter un peu l'​exemple,​ pour le moment je (bp) ne vois pas bien comment cela marche.+BP: Remarque : compléter un peu l'​exemple,​ pour le moment je ne vois pas bien comment cela marche
 + 
 +Scénario d'​utilisation :  
 +  * L'​utilisateur sélectionne plusieurs critères de sélection (ex: des valeurs de propriétés de structure) 
 +  * S'​affiche alors un disque par critère. 
 +  * Chaque aire chevauchante représente la réalisation simultanée des critères des disques qui construisent l'​aire 
 +  * L'​utilisateur peut alors sélectionner à la souris par activation/​désactivation les réalisations qu'il souhaite. L'​avantage de cette méthode est qu'il n'y a pas besoin de maitriser des opérateurs logiques : sélection en intention VS sélection en extension. 
 + 
 +Exemple avec le corpus DISCOURS : 
 +  * On ouvre l'​assistant en sélectionnant les propriétés de structures suivantes :  
 +    * text_type 
 +    * text_loc 
 +  * L'​utilisateur sélectionne dans la liste des valeurs celles qui l’intéresse:​ 
 +    * pour text_type : Allocution radiotélévisée et Entretien radiotélévisé. 
 +    * pour text_loc : Pompidou et de Gaulle. 
 +  * S'​affiche alors l'​écran de sélection des parties : 
 +    * 4 disques de couleur différentes qui s'​intersectent en créant 9 zones 
 +  * TODO...
  
 ===== Solution ===== ===== Solution =====
  
-  * Script de Seb : ... +==== Script ​Groovy ​de partitionnement avancé ==== 
-  * Partition croisée sur plusieurs structures+ 
 +Script permettant la création de partitions sur plusieurs propriétés croisées de même niveau et de partitions sur plusieurs niveaux de structures. (en .zip car le serveur refuse l'​extension .groovy) 
 + 
 +{{:public:​advancedpartition.zip|}} 
 + 
 +Il faudrait retester/​valider ce script. 
 + 
 +==== Macro CrossedPartitionBuilder ==== 
 + 
 +Ticket [[http://​forge.cbp.ens-lyon.fr/​redmine/​issues/​685|#​685]] 
 + 
 +En prenant le script {{:​public:​advancedpartition.zip|}},​ j'ai produit la macro CrossedPartitionBuilder (package org.txm.macro ds la TBX).  
 +Pour l'​instant la macro ne gère que le cas avec un seul niveau de structure. Mais il est possible de dé-commenter certains paramètre pour pouvoir faire des partition multi niveau, ignorer certainesstructures,​ renommer les parties de la partition. 
 + 
 +Pour fonctionner,​ la macro prend 2 paramètres :  
 +  * le nom de la structure et les propriétés à croiser. 
 +  * Et il faut avoir sélectionner un corpus 
 +Le nom de la partition est construit à partir des propriétés sélectionnées. Par exemple avec struture=text et propriétés=loc,​type,​ alors nom=text_type x text_loc. Les parties prennent comme nom "​valeur1 ∩ valeur2"​. Par exemple : "​DeGaulle ∩ Allocution"​
  
-Est-ce-que la partition croisée suffit à répondre à la problématique de Seb ? 
  
 ===== Protocole de test ===== ===== Protocole de test =====
Ligne 231: Ligne 280:
  
  
 +
 +==== Macro CrossedPartitionBuilder ====
 +=== Version sur un seul niveau de structure ===
 +
 +  - Sélectionner le corpus DISCOURS
 +  - Dans le champ "​structuralUnit"​ mettre "​text"​
 +  - Dans le champ "​structuralUnitPropertiesList"​ mettre "​loc,​type"​
 +  - Vérifier le nom de la partition = text_loc x text_type
 +  - Sélectionner la partition et vérifier :
 +    - Qu'il y a 6 parties
 +    - Vérifier les noms de parties avec la commande "​Informations"​
  
public/specs_construction_partition.1383572962.txt.gz · Dernière modification: 2013/11/04 14:49 par sebastien.jacquot@univ-fcomte.fr