Outils pour utilisateurs

Outils du site


Action disabled: source
public:tutoriel_listes_cqp

Les listes CQP (en cours d'écriture)

Le moteur de recherche CQP utilisé par TXM permet d'équiper les requêtes CQL de listes de valeurs : http://cwb.sourceforge.net/files/CQP_Tutorial/node31.html

Il est possible de faire appel à ces listes dans TXM en utilisant la macro CreateList :

(sélectionner le fichier CreateListMacro.groovy)

  • l'installation et l'appel des macros dans TXM est expliquée dans le manuel utilisateur de TXM, dans la section 15.1 Utiliser des macros.

Création d'une liste

On définit une liste en éditant la macro. Cela peut se faire dans TXM : dans la vue macro, cliquer droit sur CreateList et sélectionner “Editer”. Une fois le fichier édité, penser à le sauver (icones disquettes dans la barre d'icones en haut de la fenêtre).

Vous disposez de deux modes de définition de liste :

  • soit en énumérant les différents éléments (séparés par des blancs), cf. cas 1 “explicit list” ;
  • soit en renvoyant à un fichier, qui contient la liste des éléments à considérer, sous la forme d'un élément par ligne, cf. cas 2 “list from file”.

Le premier cas est plus léger à mettre en oeuvre pour une liste (très) courte (pas de fichier à gérer séparément).

Le second cas se prête mieux aux listes longues (pour éviter d'encombrer le code de la macro) et permet de définir des listes dans lesquelles les éléments peuvent inclure des blancs (par exemple, des mots composés ou des locutions, s'ils ont été définis au moment de l'import dans TXM -par exemple, corpus étiqueté par Cordial, ou mots composés délimités par des balises <w>). Si le chemin vers le fichier n'est pas ou plus valable, alors cela génère un message d'erreur au moment où on utilise la liste :

Variable $listeparfichier is empty.

[Mais en l'état actuel du code de la macro ce message n'est pas affiché.] La liste est créée mais est vide. L'erreur ne plante pas CQP.

Attention, on ne peut pas utiliser les expressions régulières à l'intérieur de la liste, comme ceci par exemple :

list_value = "ABR ADV DET.* INT INT KON NUM PRO.* PRP.* PUN SENT SYM"

Ici l'item “DET.*” est utilisé comme devant correspondre à une valeur qui s'écrirait littéralement “DET.*” et ne peut pas attraper les occurrences de DET:ART et DET:POS. Il faut donc renoncer aux troncatures et autres facilités données par les opérateurs, et faire une énumération extensive.

Utilisation d'une liste

Les noms de listes sont préfixés par $. Par exemple, si vous avez donné le nom “motsvides” à une liste (list_name = “motsvides”), alors en CQL il faudra appeler la liste en la désignant par “$motsvides”.

Simple

Si on veut utiliser la liste $negatif créée en exemple dans la macro, alors la requête

[frlemma = $negatif];

lancée sur le corpus Voeux attrapera tous les mots dont les lemmes sont “rien”, “non”, “ne”, “pas”, ou “sans”.

Ou encore, pour la liste $categoriesmotsvides également donnée en exemple dans le code de la macro :

[frpos!=$categoriesmotsvides]

permettrait de rechercher tous les mots sauf ceux dont la catégorie grammaticale est listée dans la stop-list.

Deux remarques importantes :

  • Pour l'appel de la liste on est obligé d'utiliser la syntaxe complète de requête CQL, avec les crochets.
  • Telle quelle une liste CQL remplace entièrement une valeur ; elle n'est pas une expression régulière et ne profite pas des options %c et %d, ni des opérateurs de combinaison (comme |) et autres caractères spéciaux.
Avec expression régulière

On ne peut appliquer aucun opérateur (%c, |, etc.) sur un appel de liste, sauf à convertir la liste en expression régulière avec la fonction RE :

[word = RE($negatif)];

On peut alors utiliser les modifieurs (%c et %d -sans guillemets) et les opérateurs de niveau 2 (combinant des propriétés) mais pas ceux de niveau 1 (opérant sur les valeurs). Exemples :

[word = RE($negatif) %c];

et si l'on a défini les deux listes $categoriesmotsvides1 et $categoriesmotsvides2 on peut écrire :

[frpos!=RE($categoriesmotsvides1) & frpos!=RE($categoriesmotsvides2)]

mais pas

[frpos!="RE($categoriesmotsvides1)|RE($categoriesmotsvides2)"]
public/tutoriel_listes_cqp.txt · Dernière modification: 2014/10/21 17:11 par benedicte.pincemin@ens-lyon.fr