Outils pour utilisateurs

Outils du site


public:spec_exploitation_annotation:calculs_syntax_sov

Requêtes et statistiques Syntaxiques

Formulation des calculs par SP

Calculs 1) calculer des statistiques sur les différentes combinaisons de S (ujet), V(erbe) et O(bjet) (les 6 sont possibles en ancien français), en tenant compte :

  • de la nature de S et de O (nom, pronom personnel, …), mais aussi (ce peut être des requêtes successives) :
  • de la détermination ou non du nom (si S et/ou O = nom) : présence ou non d'un article (et si oui, de quel type : défini, indéfini, possessif…)
  • de la complexité de S et de O (longueur en nombre de mots, mais aussi complexité « linguistique »: présence d'une subordonnée relative, d'un complément du nom…)
  • de la complexité du verbe : forme simple ou composée (temps composé, modal + infinitif…)

Calculs 2) comparer la fréquence de OV / VO selon que S est exprimé ou non ; comparer la fréquence de SV / VS selon que O est exprimé ou non.

Sélections

On s'intéresse à différents ordres de S, V et O : SVO, SOV, OSV, OVS, VSO, VOS

que l'on peut sélectionner avec une requête TIGER générique (formulée par TMR) :

  #pivot:[pos="VERcjg"]
& #clause:[cat="Snt"&type="VFin"]
//& #clause:[cat!="Snt|Insrt"&type="VFin"]
& #clause >L #pivot
& #clause >D #obj:[cat="Obj"] 
& #clause >D #suj:[cat=/Sj.*/] 
& #obj    >L #objhead:[pos =/.*/] 
& #suj    >L #sujhead:[pos =/.*/] 
 
//SVO// & #sujhead .* #pivot   & #pivot   .* #objhead
//SOV// & #sujhead .* #objhead & #objhead .* #pivot 
//OSV// & #objhead .* #sujhead & #sujhead .* #pivot
//OVS// & #objhead .* #pivot   & #pivot   .* #sujhead 
//VSO// & #pivot   .* #sujhead & #sujhead .* #objhead 
//VOS// & #pivot   .* #objhead & #objhead .* #sujhead

Usage : supprimer le commentaire //…// en début de ligne pour activer la clause définissant l'ordre SVO souhaité.

Fréquences de matchs

  • nb_matchs() SVO, SOV, OSV, OVS, VSO, VOS

Rapports de fréquences de matchs

Calculs 1)

  • détermination ou non du nom (si S et/ou O = nom) :
    • présence ou non d'un article devant (ou derrière)
    • [projection] pos → défini, indéfini, possessif…

Index hiérarchiques de propriétés de noeuds non terminaux

  • étant donné les 6 combinaisons SVO, SOV, OSV, OVS, VSO, VOS :
    • noeuds : indexh(index hiérarchique)) #sujhead.pos
    • noeuds : indexh #objhead.pos
    • noeuds : indexh #sujhead.pos / #objhead.pos
    • mots : indexh #sujhead→T.word
  • étant donné les 6 combinaisons SVO, SOV, OSV, OVS, VSO, VOS :
    • étant donné la pos du S (nom, pronom personnel…)
      • indexh des pos(O)
      • étant donné la pos du O (nom, pronom personnel…)
        • concordance
          • retour à l'arbre syntaxique
  • étant donné la pos du S (nom, pronom personnel…)
    • étant donné la pos du O (nom, pronom personnel…)
      • indexh des SVO, SOV, OSV, OVS, VSO, VOS :

Longueurs en mots

  • de la complexité de S et de O :
    • [projection] longueur en nombre de mots
      • mots : histogramme longueurs #sujhead→T
      • + ventiler longueurs x headpos (valeurs de)
  • cat = « ModA » & hors pos = « det »
    • // complexité « linguistique »: une subordonnée relative, complément du nom… = oui / non
    • → nombre
    • → indexh #sujhead.headpos
    • → indexh #objhead.headpos
  • de la complexité de V :forme simple ou composée (temps composé, modal + infinitif…) = oui / non
    • quand V complexe :
       < aux a :[] ? participe > → cat(a)

Calculs 2)

  • S est exprimé ou non
  • comparer la fréquence de OV / VO
  • comparer la fréquence de SV / VS selon que O est exprimé ou non ;
  • + filtre par interrogatif, exclamatif, etc.
  • + filtre principale, subordonnée
  • + filtre type principale, type subordonnée

Solutions

V1

La solution V1 est une solution sans intégration forte dans les outils et l'interface de TXM. Elle s'appuie sur des macros Groovy. Elle permet la validation de l'architecture par rapport aux questions initiales.

Réinterprétation des calculs 1)

  • en tenant compte d'une requête TIGER
    • “les différentes combinaisons de S (ujet), V(erbe) et O(bjet)” → requête générique + une des lignes SOV décommentée.
    • “de la nature de S et de O (nom, pronom personnel, …)” → critère de valeur de propriété de #obj, #suj ou #pivot sur le “pos”
    • “de la détermination ou non du nom (si S et/ou O = nom)” → critère de valeur de propriété de #objhead ou #sujhead sur le pos (“contienent/est un 'article'”)
    • par la complexité de S et O → critère longueur de #objhead ou #sujhead → possible en TIGER ? → Est-ce-que cela revient à regarder les #objhead et #sujhead des sous graphes ?
    • “de la complexité de S et de O” → #objhead ou #sujhead contienent/sont une subordonnée “relative, d'un complément du nom…”
    • “de la complexité du verbe” → critère de valeur de propriété de #pivot de la propriété XYZ à la valeur “forme simple ou composée (temps composé, modal + infinitif…)”

Requête générique :

  #pivot:[pos="VERcjg"]
& #clause:[cat="Snt"&type="VFin"]
//& #clause:[cat!="Snt|Insrt"&type="VFin"]
& #clause >L #pivot
& #clause >D #obj:[cat="Obj"] 
& #clause >D #suj:[cat=/Sj.*/] 
& #obj    >L #objhead:[pos =/.*/] 
& #suj    >L #sujhead:[pos =/.*/] 
 
//SVO// & #sujhead .* #pivot   & #pivot   .* #objhead
//SOV// & #sujhead .* #objhead & #objhead .* #pivot 
//OSV// & #objhead .* #sujhead & #sujhead .* #pivot
//OVS// & #objhead .* #pivot   & #pivot   .* #sujhead 
//VSO// & #pivot   .* #sujhead & #sujhead .* #objhead 
//VOS// & #pivot   .* #objhead & #objhead .* #sujhead

Faire des calculs statistiques pour 1) et 2)

  • voir et vérifier les SOV sélectionnés → Concordance avec mise en évidence ou centrage sur un élément à vérifier
  • compter le nombre de match d'une requête → macro TIGER Summary
  • voir et dénombrer les valeurs que peut prendre tout ou partie du match → macro TIGER Index
  • “(ce peut être des requêtes successives)” → comparer des fréquences de plusieurs requêtes
  • “comparer la fréquence de OV / VO selon que S est exprimé ou non” → comparer les fréquences de 2 requêtes

Macro TIGER Summary

Pour une requête TIGER affiche le nombre de matchs obtenus, sous-graphes inclus ou pas.

Si la sélection est multiple (ex: plusieurs sous-corpus sélectionnés ; une partition sur des textes sélectionnée) alors le résultat est tabulé avec un sous-corpus/partie par colonne.

Le dénombrement ne prend en compte que les matchs TIGER limités aux positions des corpus de la sélection (liste de matchs des sous-corpus/parties) → combinaison requêtes TIGER x requêtes CQL.

Paramètre :

  • R : requête TIGER
	Sous-corpus 1	Sous-corpus 2	Sous-corpus 3
F	F1	F2	F3

Macro TIGER Ratio

Affiche le rapport entre le nombre de matchs de 2 requêtes TIGER, sous-graphes inclus ou pas.

(l'implémentation se fait par l'appel successif de la macro TIGER Summary avec les 2 requêtes)

Paramètres :

  • R1 : requête TIGER 1
  • R2 : requête TIGER 2

La macro travaille sur une sélection multiple de corpus ou à partir d'une partition. Elle produira une colonne par sous-corpus/partie.

	C1	C2	C3
F de R1	F1	F2	F3
F de R2	F1'	F2'	F3'
Ratio	R1	R2	R3

Macro TIGER Index

Affiche un index hiérarchique des valeurs de propriétés de noeuds de matchs TIGER.

Les noeuds sont repérés par un ou plusieurs labels dans la requête TIGER. Les labels peuvent être positionnés sur des noeuds terminaux ou non-terminaux.

L'utilisateur doit alors indiquer les labels de noeuds à utiliser et les propriétés à projeter, pour chaque label.

Paramètres :

  • requête TIGER
  • liste des labels de noeuds à utiliser
  • liste des propriétés à projeter

La macro peut prendre une sélection de sous-corpus ou une partition. Qui génèrera une liste de corpus/sous-corpus : C1, C2, … CN. La macro produira alors une colonne par sous-corpus/partie.

Affichage :

Index h. de [SOV] dans "SRCMF"
P1_P2_P3	F dans C1	F dans C2
V1_V1_V1	N1111		N2111
V1_V1_V2	N1112		N2112
V1_V1_V3	N1113		N2113
...

Recettes

V1

Installer l'extension TIGERSearch

  • Régler le niveau de mise à jour à ALPHA
    1. sélectionner le menu “Édition > Préférences”
    2. aller dans “TXM > Avancé”
    3. sélectionner le niveau de mise à jour “ALPHA”
  • Installer l'extension
    1. sélectionner le menu “Fichier > Ajouter une extension”
    2. sélectionner “TIGERSearch”
    3. valider
    4. valider les étapes d'installation et redémarrer TXM

Charger le corpus SRCMF TXM au format TIGER

  • télécharger le corpus binaire de test XMLTS (srcmf) : https://sharedocs.huma-num.fr/wl/?id=1Nr0uSxeaJjO0vlNwC5AbstC72harFjb
    • le corpus XMLTS est la version du corpus SRCMF créée pour la communication de Madrid de Céline et Tom
    • il contient plusieurs textes (TS et CQP)
    • il contient de nouvelles métadonnées (notamment siècle et genre)
    • il ne contient pas de ponctuation (les textes CQP ont été produits à partir du TS)
  • dans TXM, charger le corpus depuis le menu Fichier > Charger > un corpus binaire (.txm)

Tester le bon fonctionnement du corpus

  • dans TXM, sélectionner le corpus
  • ouvrir l'interface d'interrogation par requête TIGER (icone tête de tigre)
  • cliquer sur la roue dentée pour ouvrir la zone de paramètres et copier-coller la requête suivante dans le champ requête :
      #pivot:[pos="VERcjg"]
    & #clause:[cat="Snt"&type="VFin"]
    //& #clause:[cat!="Snt|Insrt"&type="VFin"]
    & #clause >L #pivot
    & #clause >D #obj:[cat="Obj"] 
    & #clause >D #suj:[cat=/Sj.*/] 
    & #obj    >L #objhead:[pos =/.*/] 
    & #suj    >L #sujhead:[pos =/.*/] 
     
    & #sujhead .* #pivot   & #pivot   .* #objhead //SVO//
    //SOV// & #sujhead .* #objhead & #objhead .* #pivot 
    //OSV// & #objhead .* #sujhead & #sujhead .* #pivot
    //OVS// & #objhead .* #pivot   & #pivot   .* #sujhead 
    //VSO// & #pivot   .* #sujhead & #sujhead .* #objhead 
    //VOS// & #pivot   .* #objhead & #objhead .* #sujhead
  • lancer le calcul
  • on doit trouver 1849 phrases

Tester le bon fonctionnement de la macro TIGER Summary

Remarque : les répertoires “tiger-2019-xx-xx” correspondent aux versions précédentes des macros.
  • créer puis sélectionner le sous-corpus du texte “alexis” (pour que les calculs soient plus rapides que pour le corpus entier)
  • ouvrir la vue “Macro”
  • lancer la macro “tiger/exploit/TIGERSummary” avec les paramètres suivants :
    • tiger_query :
        #pivot:[pos="VERcjg"]
      & #clause:[cat="Snt"&type="VFin"]
      //& #clause:[cat!="Snt|Insrt"&type="VFin"]
      & #clause >L #pivot
      & #clause >D #obj:[cat="Obj"] 
      & #clause >D #suj:[cat=/Sj.*/] 
      & #obj    >L #objhead:[pos =/.*/] 
      & #suj    >L #sujhead:[pos =/.*/] 
      & #sujhead .* #pivot & #pivot .* #objhead
    • count_subgraph : coché
    • debug : OFF

La console affiche :

	alexis
F	32

Tester le bon fonctionnement de la macro TIGER Ratio

  • sélectionner le sous-corpus du texte “alexis”
  • lancer la macro “tiger/exploit/TIGERRatio” avec les paramètres :
    • tiger_query_A (requête SVO) :
        #pivot:[pos="VERcjg"]
      & #clause:[cat="Snt"&type="VFin"]
      //& #clause:[cat!="Snt|Insrt"&type="VFin"]
      & #clause >L #pivot
      & #clause >D #obj:[cat="Obj"] 
      & #clause >D #suj:[cat=/Sj.*/] 
      & #obj    >L #objhead:[pos =/.*/] 
      & #suj    >L #sujhead:[pos =/.*/] 
      & #sujhead .* #pivot & #pivot .* #objhead
    • tiger_query_B (requête SOV) :
        #pivot:[pos="VERcjg"]
      & #clause:[cat="Snt"&type="VFin"]
      //& #clause:[cat!="Snt|Insrt"&type="VFin"]
      & #clause >L #pivot
      & #clause >D #obj:[cat="Obj"] 
      & #clause >D #suj:[cat=/Sj.*/] 
      & #obj    >L #objhead:[pos =/.*/] 
      & #suj    >L #sujhead:[pos =/.*/] 
      & #sujhead .* #objhead & #objhead .* #pivot
    • count_subgraph : coché
    • debug : OFF

La console affiche :

[alexis:32]
[alexis:35]
R = 32 / 35 = 0,91
Done.

Tester le bon fonctionnement de la macro TIGER Index

  • sélectionner le sous-corpus du texte “alexis”
  • lancer la macro “tiger/exploit/TIGERIndex” avec les paramètres :
    • tiger_query :
        #pivot:[pos="VERcjg"]
      & #clause:[cat="Snt"&type="VFin"]
      //& #clause:[cat!="Snt|Insrt"&type="VFin"]
      & #clause >L #pivot
      & #clause >D #obj:[cat="Obj"] 
      & #clause >D #suj:[cat=/Sj.*/] 
      & #obj    >L #objhead:[pos =/.*/] 
      & #suj    >L #sujhead:[pos =/.*/] 
      & #sujhead .* #pivot & #pivot .* #objhead
    • labels : objhead
    • properties : pos
    • count_subgraph : coché
    • sort_column = freq
    • max_lines=10
    • debug OFF

La console affiche :

pos	F	alexis
NOMcom	18
VERcjg	7
NOMpro	6
PROind	1

Recette des questions contrastives

Contraste en diachronie
  • Créer une partition “SIECLES” sur les siècles
    • structure : text
    • propriété : siecle
  • faire un clic-droit sur la partition, sélectionner la commande Index
  • sélectionner le moteur de requête “TIGER” à gauche du champ de requête (à la place de CQL)
  • copier coller la requête
      #pivot:[pos="VERcjg"]
    & #clause:[cat="Snt"&type="VFin"]
    //& #clause:[cat!="Snt|Insrt"&type="VFin"]
    & #clause >L #pivot
    & #clause >D #obj:[cat="Obj"] 
    & #clause >D #suj:[cat=/Sj.*/] 
    & #obj    >L #objhead:[pos =/.*/] 
    & #suj    >L #sujhead:[pos =/.*/] 
    & #sujhead .* #pivot & #pivot .* #objhead
  • transformer l'index en table lexicale, en incluant la marge (Calculer les marges à partir de tous les mors du corpus)
  • calculer les spécificités de la table
  • trier la table de spécificités par l'indice du siècle “10”
Unités	F	10	indice	11	indice	12	indice	13	indice	9	indice
fud	28	28	49,9	0	-0,2	0	-7,5	0	-8,5	0	-0,0
es	17	17	30,3	0	-0,1	0	-4,5	0	-5,2	0	-0,0
a	16	16	28,5	0	-0,1	0	-4,3	0	-4,9	0	-0,0
Contraste en genre
  • Créer une partition “GENRES” sur les genres
    • structure : text
    • propriété : genre
  • faire un clic-droit sur la partition, sélectionner la commande Index
  • sélectionner le moteur de requête “TIGER”
  • copier coller la requête
      #pivot:[pos="VERcjg"]
    & #clause:[cat="Snt"&type="VFin"]
    //& #clause:[cat!="Snt|Insrt"&type="VFin"]
    & #clause >L #pivot
    & #clause >D #obj:[cat="Obj"] 
    & #clause >D #suj:[cat=/Sj.*/] 
    & #obj    >L #objhead:[pos =/.*/] 
    & #suj    >L #sujhead:[pos =/.*/] 
    & #sujhead .* #pivot & #pivot .* #objhead
  • transformer l'index en table lexicale, en incluant la marge (Calculer les marges à partir de tous les mors du corpus)
  • calculer les spécificités de la table
  • trier par l'indice du genre dramatique
Unités	F	chron	indice	dram	indice	epiq	indice	hagio	indice	hist	indice	lapid	indice	mir	indice	rbrefs	indice	serment	indice
es	17	0	-1,1	13	22,1	0	-0,9	4	3,1	0	-0,4	0	-0,1	0	-0,7	0	-0,3	0	-5,3	0	-0,0
fu	12	0	-0,8	11	20,4	0	-0,6	1	0,6	0	-0,3	0	-0,1	0	-0,5	0	-0,2	0	-3,7	0	-0,0
a	16	0	-1,0	12	20,2	0	-0,8	4	3,2	0	-0,4	0	-0,1	0	-0,7	0	-0,3	0	-5,0	0	-0,0
public/spec_exploitation_annotation/calculs_syntax_sov.txt · Dernière modification: 2019/09/16 11:32 par alexei.lavrentev@ens-lyon.fr