Outils pour utilisateurs

Outils du site


Panneau latéral

public:specs_subcorpus

Sous-corpus

Les sous-corpus sont des sélections de mots d'un corpus (principal ou racine) ou d'un sous-corpus :

  • les sous-corpus sont implémentés par CQP par une liste de matchs
  • un match est une séquence de mots contigus définie par deux positions : du mot de début au mot de fin (de start à end, ou 'start-end')
  • un match peut également correspondre à une séquence élémentaire ne contenant qu'un seul mot (start-end=start) : c'est-à-dire à un seul mot
  • un corpus principal est implémenté par une liste singleton contenant un seul match allant du premier au dernier mot des textes du corpus
  • un sous-corpus est implémenté par une liste singleton d'un seul match ou par une liste de plusieurs matchs
  • CQP optimise la gestion des listes de matchs en les ordonnant par positions
  • les matchs d'une liste de matchs ne se recouvrent pas

Expérimentations

  • le script utilitaire CQPUtils.groovy fournit des méthodes de manipulation de listes de matchs. Voir aussi la macro ListMatches.

Règles de tomizof1) :

  1. un sous-corpus est complètement inclus [SLH ou égal ?] dans son parent 2)

Construction de sous-corpus

a) Par requête CQL nommée

Dans l'interface de construction de sous-corpus actuelle, techniquement un sous-corpus correspond à un résultat de requête CQL nommé. La requête est lancée sur les matchs du parent. Mais CQP n'interdit pas d'étendre les matchs trouvés avec le mot clé “expand to” (voir d'autres mots clés ?).

L'interface de création de sous-corpus de TXM doit s'assurer que les règles de tomizof sont respectées.

Dans certains cas, il peut être utile de créer un sous-corpus plus grand que son parent lorsqu'on souhaite s'intéresser au contexte des matches. Par exemple, récupérer les textes où se réalisent des mots clés.

[SLH : discussion] on peut récupérer les mots des textes où se réalisent des mots clés [pour en faire autre chose], ou les identifiants des textes où se réalisent des mots clés [pour en faire autre chose]. Le [pour en faire autre chose] déterminant ce qu'on fait des mots ou des identifiants.

Si un sous-corpus est plus grand que son parent, alors son noeud dans la vue Corpus doit être placé sous le premier noeud ancêtre le contenant entièrement.

b) Par combinaison de sous-corpus avec des opérateurs d'intersection, union et différence

CQP permet de combiner des sous-corpus avec les opérateurs union, inter et diff.

TXM commence à y donner accès, voir les tickets ;

Cependant les opérateurs natifs union, inter et diff de CQP ne travaillent qu'avec des matchs et sont incapables de segmenter ou de fusionner3) des matches.

[SLH : feature] il serait très intéressant d'augmenter la sémantique des opérateurs existants pour obtenir des opérateurs aux résultats plus “intuitifs” et surtout plus utiles aux opérations sur les sous-corpus d'utilisateurs de TXM → voir l'option coalesce des spécifications des nouvelles commandes ensemblistes TXM.
Il y aurait également des applications à d'autres commandes comme les Concordances calculées à partir de lignes d'Index (les pivots correspondraient à l'intersection entre la liste de matchs du résultat de la requête et la liste de matchs du corpus à l'origine de l'Index).

c) Par construction à partir d'une liste de matchs

CQP peut construire un sous-corpus a partir :

  • d'un fichier binaire encodant une liste de matchs
  • d'un fichier texte décrivant une liste de match, avec un match par ligne.

d) Par mise en relation de contraintes

Exemple

La sélection : “je cherche les passages d'une transcriptions où le résumé (de la transcription) contient 'Bardot'” se traduit par les requêtes :

  • les passages d'une transcriptions : “[] expand to sp” calculée sur le corpus
  • le résumé contient 'Bardot' : “Bardot” calculée sur le sous-corpus du résumé du corpus

De la sélection, on peut vouloir utiliser :

  • toute la transcription
  • le résumé
  • les passages

Résolution de requête sur structure

 Chapitre "<div> []" VS "[div]" test.xml : *<div> <div2>0 <sub>1 2 3</sub> 4 </div2> </div> <div> <div2>5<sub> 6 7 8 </sub>9 </div2> </div> *0123456789 : corpus *<...><...> : divs (0->4 ; 5 -> 9) *<...><...> : div2s (0->4 ; 5 -> 9) * <.> <.> : subs (0->4 ; 5 -> 9) R1=<div> [] -> 2 matches (0,0) et (5,5) R1bis=<div> [] expand to div-> 2 matches (0,4) et (5,9) R2=[div] -> 10 matches (0,0) ... (5,5) et (9,9) [on perd les limites] R2bis=[div] expand to div-> 2 matches (0,4) et (5,9) * *_123__678_ : sous-corpus construit avec la requete <sub>[]+</sub> R1=<div> [] -> 0 matches R1bis=<div> [] expand to div -> 0 matches R2=[div] -> 6 matches (1,1), (2,2) (3,3), (6,6), (7,7) et (8,8) [on perd les limites des divs et les séquences de mots R="[][]" ne marche pas] R2 + matching strategy=greedy -> 2 matches (1,3) et (6,8) R2bis=[div] expand to div-> 2 matches (0,4) et (5,9)

Interface utilisateur & Modes de création de sous-corpus

  • Simple : l'utilisateur choisi une structure encadrante et une de ses propriété pour sélectionner les structures a inclure dans le sous-corpus
  • Assisté : l'utilisateur choisi une structure encadrante et peut définir un test de sélection à partir de plusieurs des propriétés de la structure.
  • Avancé : l'utilisateur donne la requête CQL à utiliser → l'utilisateur est reponsable du respect de la règle de tomizof
  • Script (mode avancé ?) : [SLH : feature] l'utilisateur sélectionne la macro ou le script construisant le sous-corpus → la macro est reponsable du respect de la règle de tomizof. Les macros construisant des sous-corpus sont stockées dans un répertoire dédié des macros et l'interface de sélection de macro utilise ce lieu de référence pour établir la liste des macros utilisables pour cette action. Ces macros doivent fournir leur liste de matchs par le biais d'une API à définir.
  • Fichier (mode avancé ?) : [SLH : feature] l'utilisateur sélectionne le fichier au format binaire ou au format texte représentant le sous-corpus à construire → le fichier est reponsable du respect de la règle de tomizof. Le corrolaire de cette fonctionnalité est une nouvelle commande d'export de la liste de matchs d'un sous-corpus.
1)
choix d'architecture des données de TXM
2)
au sens des noeuds de la vue Corpus. Un noeud dominé a donc été calculé après son parent - et ses ancêtres - et est contenu dans son parent - et ses ancêtres
3)
voir l'option coalesce des nouvelles commandes TXM
public/specs_subcorpus.txt · Dernière modification: 2020/02/10 16:34 par matthieu.decorde@ens-lyon.fr