(tuto-rb-conpa)=

# Tutoriel – Utiliser ReaderBench pour analyser automatiquement des discussions

```{index} Auteurs; Dessus Philippe, Auteurs; Mandran Nadine
```

::::{admonition} Informations

```{button-ref} gene:index
{octicon}`home-fill`
```

- {bdg-primary}`Tutoriel`
- **Auteurs** :  {{ phd }}, & Nadine Mandran, LIG-CNRS, Univ. Grenoble Alpes.
- **Date de mise à jour** : Novembre 2022. Document créé en Octobre 2020.
- **Résumé** :  Ce document explique la procédure à suivre pour analyser automatiquement des discussions pour apprendre ou construire des connaissances avec [ReaderBench](http://readerbench.com), un système d'analyse sémantique textuelle. 
- **Documents associés** : {ref}`conpa`.
- Fichiers associés :
  : - {download}`le document tableur <images/RB-modele.xlsx>`
    - {download}`le document XML de la discussion CONPA complète <images/CONPA-anon-complet-new.xml>`
- **Voir aussi** : Document {ref}`textometrie-educ`.
- **Note** : Ce document complète et reprend les informations d'un chapitre d'ouvrage : Dessus, P., Dascalu, M., Mandran, N., Gutu-Robu, G., Dormoy-Fournier, C., & Ruseti, S. (à paraître). L’analyse sémantique automatique pour étudier les discussions visant la construction collaborative de connaissances. In B. Albero & J. Thievenaz (Eds.), *Traité de méthodologie de la recherche en sciences de l'éducation et de la formation*. Dijon : Raison & passions.

:::{dropdown} Informations supplémentaires
:animate: fade-in-slide-down

- **Durée de lecture** : {sub-ref}`wordcount-minutes` minutes.
- **Date de modification** : {sub-ref}`today`.
- **Statut du document** : Terminé.
- **Remerciements** : Nous remercions chaleureusement les participantes à la session de *focus group* dont il est question ici, à la fois pour leur participation enthousiaste et leur autorisation de diffusion de la transcription de la session.
- **Note légale** : « Le Jeu CONPA s’est inspiré du jeu [MotivéSens](http://motivesens.fr), imaginé et exploité par la société MotivéSens (817 404 908 R.C.S. Vienne) en matière de psychologie (Thérapie Comportementale et Cognitive et inspiré de la Psychologie Positive) qui a créé un jeu basé sur l’idée de Mesdames Carré et Valantin consistant en un travail de réflexion et de choix autour de cartes ressources pour atteindre un objectif positif préalablement défini. Il est rappelé que la notice du Jeu MotivéSens est soumise à droit d’auteur et que toute reprise ou citation, de tout ou partie du Jeu MotivéSens, comme toute utilisation du Jeu MotivéSens est strictement interdite, que ce soit pour un usage de formation ou commercial, sauf accord préalable et exprès des auteurs dudit Jeu. La reprise ou la citation du Jeu CONPA nécessitera obligatoirement la mention, en tant que source d’inspiration du concept de jeu du Jeu CONPA, de la société MotivéSens, développé par Mesdames Carré et Valantin en 2015.
- {{ citation }}
- {{ licence }}
:::
::::

## Introduction

Les discussions (ou débats) sont de bons moyens pour permettre à des apprenants de débattre d'un sujet, et d'approfondir collaborativement leurs connaissances, que ces débats se réalisent en présence ou à distance, *via* des plates-formes et des forums ou *chats*. Pour autant, il reste difficile pour l'enseignant animant ces débats, ou le chercheur qui veut les étudier, d'en avoir une vision immédiate : leur analyse est coûteuse en temps. Il existe des logiciels d'analyse automatique qui autorisent une première représentation des contributions de chaque participant, par exemple. Dans ce tutoriel nous allons montrer comment utiliser [ReaderBench](http://readerbench.com) à cette fin.

[ReaderBench](http://readerbench.com) est un outil d’analyse automatique de productions écrites liées à l’apprentissage. Il est multilingue (anglais, français, italien, espagnol, roumain, néerlandais) et utilise des méthodes de traitement automatique de la langue éprouvées pour analyser la cohésion entre composants du texte (phrases, tours de parole, documents, etc.). Il a été conçu par la mise en œuvre de deux modèles différents et complémentaires. Le modèle de la cohésion est opérationnalisé comme la mesure de similarité moyenne entre entités du texte (mots, phrases, tours de parole, conversation complète). Un graphe de cohésion entre tours de paroles est construit, composé d’un nœud central (la discussion complète) décomposé en tours de parole, puis en phrases, les liens entre ces nœuds symbolisent des relations de cohésion fortes. Ce mécanisme permet d’évaluer la contribution de chaque participant en rapport avec la discussion complète, mais aussi avec les contributions des autres participants. Des liens sont créés entre tours de parole : leur poids est d'autant plus grand que ces tours de parole sont sémantiquement proches. Ces liens sont bi-directionnels pour chaque nœud, selon qu'ils sont reliés aux tours de parole avant un tour donné, ou après. Le reste de ce document détaille la procédure pour analyser une discussion collaborative.

Nous utilisons ici le module CSCL (*computer-supported collaborative learning*) accessible ici : https://readerbench.com/services/cscl

## Procédure

### Description du corpus utilisé

À titre d'exemple, nous allons analyser les données produites lors d’une séance de test d’un jeu sérieux pour l’élaboration de questions de recherche en technologie de l’éducation, CONPA (Dessus & Jolivet, 2016), voir {ref}`conpa` pour les règles du jeu. Le jeu CONPA, pour Comportements, Outils, Notions, Pensée, Actions, les différents thèmes des cartes du jeu) est un jeu de table librement inspiré du jeu MotivéSens (Broc *et al*., 2017), et permet de stimuler la conception de situations de recherche et développement (R&D) d’usages innovants du numérique en situations scolaires. L’activité des joueurs est de réaliser des liens (intégration) entre un problème de recherche qu’ils spécifient initialement, avec chacune des cartes qu’ils tirent tour à tour, montrant un mot-clé (voir les mots-clés des Figures 3, 4 et 5). Les joueurs raffinent collaborativement et en parallèle leur problème sur une carte de concepts personnelle, son caractère aléatoire incitant à « sortir du cadre » et imaginer des pistes de travail originales. Ce type de jeu implique les joueurs dans une démarche de co-construction de connaissances.

Pour tester ce jeu sérieux, nous avons mis en œuvre un *focus group* (voir {ref}`tuto-focus-group`). Après la présentation du jeu (but, principes et règles) par l’animateur, ce dernier lançait une session de jeu d’environ 1 h 30 avec les participants. Lors de cette session, tous les échanges oraux ont été enregistrés. A l’issue de cette partie de jeu, une discussion a été conduite pour recueillir les avis de tous les participants y compris l’animateur. L’objectif de cette discussion était de faire émerger de nouvelles propositions pour améliorer CONPA. Les participants de la discussion analysée plus loin étaient cinq enseignantes également étudiantes de Master 2 mention « Métiers de l’enseignement, de l’éducation et de la formation ».

Les enregistrements audio ont été transcrits dans leur intégralité. Le corpus se présente sous la forme d'un fichier texte brut comprenant un tour de parole par paragraphe. La section suivante montre comment le transformer en un fichier XML lisible par *ReaderBench*.

### Codage du corpus

Chaque tour de parole doit être codé entre des balises spécifiques, indiquant à quel moment de la discussion il a été produit, et par qui. Le format général est de ce type (en exemple, le premier tour de parole de la discussion) :

```XML <Turn nickname="Animateur">
                <Utterance genid="1" ref="0" time="2015-01-15 14:00:00.0" >C'est Mireille qui commence
                </Utterance>
        </Turn>

```

Cela signifie que l'animateur est le locuteur de ce tour, qu'il démarre la discussion (qui a démarré le 15 janvier 2015 à 14:00), elle ne réfère explicitement à aucun autre tour (ref="0"). Il est assez aisé de concevoir un tableau dans lequel on insère les tours de parole et les locuteurs, ainsi que, le cas échéant, un horodatage (1 tour par ligne), les autres éléments étant répliqués et éventuellement incrémentés (variables time et ref). Le {download}`fichier <images/tab-conv-rb.xlsx>` (lisible avec n'importe quelle suite office) montre comment organiser ce codage. Les étapes suivantes sont à réaliser.

Dans la **première feuille** du fichier-tableur.

- coller dans la colonne B du tableur les noms des participants
- coller dans la colonne M du tableur les tours de parole, comme autant de lignes ;
- coller les informations d'horodatage dans les colonnes I (date) et K (heure), si elles ne sont pas disponibles, en créer de fictives, par exemple en incrémentant les informations horaires par saut de 10 s (attention à bien mettre l'horodatage en format horaire pour générer des données horaires réalistes, sinon cela fait stopper l'analyse) ;
- étendre toutes les autres colonnes en vérifiant bien que les colonnes E, l'identifiant du tour et G, le temps s'incrémentent bien.

Dans la **deuxième feuille** du fichier-tableur.

- étendre la ligne pour voir apparaître tous les tours de parole codés dans le format approprié ;
- copier l'ensemble des lignes ;
- coller les lignes dans un logiciel de traitement de textes permettant les remplacements multiples ;
- rechercher/remplacer les caractères € par une tabulation et les caractères $ par un retour de paragraphe ;
- sauvegarder le fichier résultant dans le format XML dans le format UTF-8.
- en ajoutant au début du fichier (avant les tours de parole précédents) :

```XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Dialog team="1" name="CONPA">
<Body>
```

et à la fin du fichier, le répertoire de tous les locuteurs de la conversation.

```XML
</Body>
<Participants>
        <Person nickname="Nom_locuteur_1"/>
        <Person nickname="Nom_locuteur_2"/>
        <Person nickname="Nom_locuteur_n"/>
</Participants>
</Dialog>
```

Pour faciliter les tests, voici les deux documents à télécharger :

- {download}`le document tableur <images/tab-conv-rb.xlsx>` à compléter avec ses propres discussions ;
- {download}`le document XML de la discussion CONPA complète<images/discussion-conpa.xml>`.

### Traitement dans ReaderBench

La section "analyse de discussions collaboratives" de *ReaderBench* est à cette URL : [https://readerbench.com/services/cscl](https://readerbench.com/services/cscl). Voici la procédure : 

1. Téléverser le fichier XML (onglet “Import XML“) précédemment composé par un glissé-déposé ou en cliquant sur “Choisir le fichier” ;
2. Sélectionner la langue ;
3. Cliquer sur le bouton "Process" et l'analyse débute, qui peut durer plusieurs minutes selon la longueur de la discussion.
4. Une fois l'analyse réalisée il est possible de la sauvegarder sous la forme d'un fichier JSON (bouton “Export JSON”, et de l'importer (onglet “Import JSON“), de manière à pouvoir “rejouer“ les visualisations dynamiques sans être connecté au serveur (*cf*. ci-dessous pour cette procédure). Deux onglets affichent l'ensemble des visualisations ci-dessous (Contributions et participants).

Pour visualiser une analyse déjà réalisée, il faut disposer d'un fichier JSON (voir ci-dessus). Ensuite :

- se connecter à https://readerbench.com/
- cliquer sur le bouton “`log in`“ en haut à droite ;
- cliquer sur “`sign up`“ pour se créer un compte ;
- ensuite, aller à https://readerbench.com/services/cscl ;
- cliquer sur l’onglet “import json“ ;
- cliquer sur “choisir le fichier“ et téléverser le fichier JSON ;
- cliquer sur “process“ ; les résultats apparaissent comme s'ils venaient d'être créés.


### Analyse des données dans ReaderBench

Voici le détail des analyses possibles une fois le traitement achevé (pouvant prendre plusieurs minutes selon la taille du corpus) :

#### Tableau

Le premier document fourni est un tableau reprenant tous les tours de parole et donnant toutes les informations qui feront ensuite l'objet de graphiques. Le tableau n'est pas directement exportable mais un copier-coller de l'ensemble permettra de le sauvegarder dans un tableur. Notons aussi qu'on peut réaliser un classement alphabétique des données de chaque colonne. Voici les scores décrits dans le tableau (d'après D. Dascalu, 2021).

- *score d'importance des tours de parole* :  calculé par l'algorithme *Page Rank* de Brin & Page (1998),  ce score étant d'autant plus élevé que ce tour de parole est sémantiquement relié à d'autres tours de parole (*indépendamment des participants*), et donc à la discussion entière.

- *in- et out-degree* : un score *in-degree* (entrant) élevé d'un tour de parole signale que ce tour entretient des relations sémantiques importantes avec plusieurs tours de parole qui le suivent ; un score *out-degree* (sortant) élevé, à l'inverse entretient des relations importantes avec plusieurs tours qui le précèdent. Un tour de parole avec des scores entrants élevés montrent que les idées  de ce tour vont avoir un effet/écho ultérieurement ; un score sortant élevé d’un tour montre qu’il reprend des idées antérieures. Des scores entrants et sortants sont également calculés par participant, en direction de chacun des autres (*voir Figure 1*). 

- *score de construction sociale de connaissances* : ce score est d'autant plus élevé que le tour de parole est sémantiquement relié à des tours de parole *d'autres participants* (calculé comme la somme de tous les liens entrants et sortants reliant 2 tours de parole de 2 participants différents).

- *score d'intermédiarité* (*beetwenness*) : un score d'intermédiarité élevé chez un locuteur montre qu'il a un meilleur accès ou contrôle de l'information de la discussion.

- *score de proximité* (*closeness*) : un score de proximité élevé chez un locuteur montre qu'il a une grande influence dans la discussion


#### Graphique de l'évolution des contributions tout au long de la discussion

Dans l'onglet “Contributions” est affichée la Figure 1, qui résume visuellement une grande partie des informations du tableau, décrites plus haut (importance, construction sociale de connaissances, liens entrants/sortants). Là aussi, survoler une partie du graphique indique des informations supplémentaires d'un tour de parole donné, et les mêmes outils permettent de réaliser une sauvegarde de la figure et des zooms ou dézooms. De plus, cliquer sur un nom de variable dans la légende affiche/cache la représentation graphique de cette variable.

> ```{image} /images/rb-conpa-contrib-4.png
> :align: center
> :scale: 80 %
> ```

**Figure 1 — Graphique de l'évolution des contributions tout au long de la discussion**

#### Graphe de communication dirigé par la force

Le deuxième onglet “Participants” affiche les autres visualisations. La  première figure (voir Figure 2 ci-dessous) de cet onglet représente un graphe dirigé par la force (*force-directed*) qui décrit l'intensité de communication entre les participants. La taille de chaque nœud est proportionnelle au nombre de sommets entrants et sortants, passer la souris sur chaque sommet du graphe indique les scores entrants et sortants par binôme de participant (*ReaderBench* n'affiche pas ces données sous forme tabulaire).

Ces informations peuvent être utiles si l'on veut tracer le rôle d'un participant en particulier (e.g., l'enseignant·e). On peut ainsi voir de plus près : - les élèves reprenant le plus le contenu de l'enseignant·e ; - les élèves dont le contenu est le plus repris par l'enseignant·e.



> ```{image} /images/rb-conpa-forced-graph-1.png
> :align: center
> :scale: 80 %
> ```

**Figure 2 — Graphe des relations entre participants**

#### Évolution des contributions des participants

La Figure 3 représente la contribution de chaque participant·e de manière cumulée tout au long de la discussion (les tours de parole sont en abscisses et l'intensité de la contribution en ordonnées). Ici aussi, survoler la figure permet d'afficher les scores par participant). Des outils en haut à droite permettent respectivement de télécharger l'image, de zoomer et dézoomer.


> ```{image} /images/rb-conpa-evo-cont-2.png
> :align: center
> :scale: 80 %
> ```

**Figure 3 — Évolution  des contributions des participants**

#### Graphe circulaire de communication

La Figure 4 est une manière différente (circulaire) de représenter les informations de la Figure 2.

> ```{image} /images/rb-conpa-graph3.png
> :align: center
> :scale: 100 %
> ```

**Figure 4 — Graphe circulaire relations entre participants**



## Références

- Brin, S., & Page, L. (1998). The anatomy of a large-scale hypertextual web search engine. *Computer Networks and ISDN Systems, 30*, 1–7.
- Broc, G., Carré, C., Valantin, S., Mollard, E., Blanc, V., & Shankland, R. (2017). Thérapie cognitive et comportementale et thérapie positive par le jeu : une étude pilote comparative. *Journal de Thérapie Comportementale et Cognitive*, *27* (2), 60–69. doi: 10.1016/j.jtcc.2016.12.002
- Dascalu, D. (2021). *Assessing Writing and Student Performance using Natural Language Processing and a Dialogical Framing.* (PhD Thesis in computer sciences), University Politehnica of Bucharest, Bucharest.   
- Dessus, P., & Jolivet, S. (2016). {ref}`CONPA`

