Analyses des réponses ouvertes

De EduTech Wiki
Aller à la navigation Aller à la recherche

Problématique

Notre réflexion a pour but de proposer une solution pour traiter les questions ouvertes dans le cas des évaluations des cours. Dans la plupart des Universités, des questionnaires sont proposés aux élèves afin qu'ils puissent donner leur avis sur les cours qu'ils ont suivi. La plupart du temps, ces questionnaires sont composés de questions à choix multiples mais également des questions ouvertes.

Les questions à choix multiples sont facilement traitable de manière automatique. Le traitement des questions ouvertes est en revanche plus compliqué. Les enseignants doivent généralement lire les différents commentaires pour avoir une idées des réponses des étudiants.

Nous voudrions proposé une représentation automatiques des questions ouvertes qui permettrait aux enseignants d'avoir une idée des réponses des étudiants sans avoir à les lire. Notre but est de proposé une solution avec des programmes gratuits qui permettraient de mettre en avant les thèmes et les idées principales contenues dans les réponses des étudiants.

Solutions envisagées

Fichier de données

Pour notre exemple, nous avons utilisé le logiciel d'analyse statistique Limesurvey. Il permet d'exporter les réponses sous format *.csv.

Les logiciels d'analyse de texte mining que nous allons utiliser ensuite pour notre analyse nécessite que le fichier source soit au format *.txt.

Il suffit donc d'ouvrir le fichier .csv avec Excel puis d'enregistrer les réponses sous le format Texte (séparateur : tabulation) (*.txt). Ainsi, chacune des lignes du fichier contiendra la réponse de l'un des participants. Ce qui permettra une meilleure analyse avec le logiciel IRaMuTeQ.

Tropes

Déroulement de l’analyse

Les différentes étapes de travail de Tropes sont décrites ici: Les étapes de travail

Préparation du corpus

Tropes durant son analyse, va mettre bout à bout toutes les phrases contenues dans les documents analysés. Dans le cas de réponses à des questions ouvertes, les personnes ne pensent pas forcément à ajouter de la ponctuation (point à la fin des phrases par exemple), ce qui fait que Tropes ne pourra pas effectuer un découpage optimal. Il faut donc penser à rajouter les signes de ponctuation pour pouvoir séparer les différents propos.

Ensuite, il ne faut pas mettre les réponses à toutes les questions dans un seul document car les résultats ne seront pas significatifs s'il n'y a aucune cohérence linéaire dans le texte soumis à Tropes. C'est pourquoi Tropes nous conseille deux solutions différentes si nous traitons des réponses à des questions ouvertes. Si toutes les réponses à toutes les questions sont contenues dans un même document, Tropes conseille d'utiliser des délimiteurs (cf: Tropes: L'outil délimiteur) afin de pouvoir séparer les réponses aux diverses questions. Une autre option est de créer un document par question contenant les réponses correspondantes. Il faut donc traiter séparément chacun des documents, chacune des questions.

Proposition de traitement avec Notepad++

Enlever les lignes vides

Aller dans [Edition] > [Ligne] > [Enlever les lignes vides (contenant les blancs aussi)]

Enlever les espaces à la fin des phrases

Aller dans [Edition] > [Traitement des espacements] > [Enlever les blancs en fin de ligne]

Ajouter un point à la fin de chaque phrase

Faire CTRL+H pour ouvrir l’onglet de Recherche et remplacement.

Cette fenêtre s’affiche :

Ecran recherche.png

Il faut commencer par cocher la case Expression régulière tout en bas à gauche.

Dans la case « Recherche », mettre un « $ ». Le signe « $ » est une expression régulière qui correspond à la fin d’une ligne. Donc, en d’autres termes, on demande au logiciel de chercher les lignes où il y a un espace à la fin de la proposition.

Dans la case « Remplacer par », mettre « . ». En d'autres termes, on demande au logiciel de mettre un point à la suite du dernier caractère d'une ligne.

Enlever les points en trop à la fin de chaque phrase

Il se peut qu'il y ait des phrases qui contenaient déjà un/des point(s) avant notre dernière manipulation. Vu qu'on veut que nos lignes ne contiennent qu'un seul point final, on doit retirer les points en trop.

Pour ce faire, il faut rouvrir la fenêtre de Recherche et remplacement (Ctrl+H). Dans le « Mode de recherche », sélectionner « Mode normal ».

Dans la case « Recherche », mettre « .. » et dans la case « Remplacer par », mettre « . ». Réitérer l’opération jusqu’à ce qu’il n’y ait plus de cas trouvé.

Enfin, Enregistrer le nouveau fichier en format .txt avant de le rouvrir dans Tropes.

Solution avec R

Tout d’abord afin d’importer vos documents dans R, il vous faut créer un nouveau projet en allant dans File > New Project > New Directory > Empty Project. Ici, nommer votre projet comme vous le souhaitez.

Dans votre espace de projet, créez un dossier « corpus » dans lequel vous insérerez tous les documents que vous souhaitez analyser. Dans RStudio, vous pouvez vérifier l’emplacement de votre espace de travail en entrant la fonction suivante : getwd().

Ensuite, vous pouvez charger vos documents avec la fonction suivante : cname<-file.path(".", "corpus"). Cette fonction va appeler tous les documents contenus dans le dossier « corpus » que vous avez créé auparavant.

Ensuite, il faut charger le package de R qui va permettre de faire du text minining : library(tm)

Il faut ensuite créer une variable qui va contenir tous nos documents, pour ce faire, il faut rentrer la ligne de code suivante : docs<-Corpus(DirSource(cname)).

Enlever les lignes blanches

Pour retirer les lignes blanches contenues dans les documents, il faut créer une fonction.

Nous allons créer une fonction qui va repérer chaque ligne dont le début est aussi la fin de la ligne (une ligne vide) et qui va faire un retour en arrière à cet endroit-là.

Les lignes de codes suivantes nous permettent de le faire :

noSpace<-content_transformer(function(x,pattern) gsub(pattern, '\b', x))
docs<-tm_map(docs, noSpace, '^$')
Ajouter un point à la fin de chaque ligne

Pour ajouter un point à la fin de chaque ligne, nous allons créer une seconde variable. Celle-ci va juste détecter la fin de chaque ligne et ajouter un point.

Pour ce faire, il faut insérer les lignes suivantes dans RStudio :

addPoint<-content_transformer(function(x,pattern) gsub(pattern, ".", x))
docs<-tm_map(docs, addPoint, '$')
Voir le résultat et enregistrer

Afin de pouvoir voir le résultat, vous pouvez entrer la ligne suivante : inspect(docs)

Pour pouvoir enregistrer votre nouveau document, entrez la ligne suivante : writeCorpus(docs, path = ".", filenames = NULL)

Vous pouvez remplacer le chemin où vous voulez l’enregistrer en l’indiquant dans « path ».

Code complet à copier
cname<-file.path(".", "corpus")
dir(cname)
library(tm)
docs<-Corpus(DirSource(cname))
noSpace<-content_transformer(function(x,pattern) gsub(pattern, '\b', x))
docs<-tm_map(docs, noSpace, '^$')
inspect(docs)
addPoint<-content_transformer(function(x,pattern) gsub(pattern, ".", x))
docs<-tm_map(docs, addPoint, '$')

Utilisation envisagée

Tropes est intéressant car il permet de faire ressortir les différents termes qui sont apparus dans le texte, avec leur nombre d'occurrence. Tropes nous permet d’afficher différents types de graphiques qui peuvent entre autres, permettre de se rendre compte de la proximité des termes entre eux. Tropes offre un autre intérêt car il est possible de visualiser les propositions où les termes apparaissent en cliquant sur ces derniers.

Limites de cette solution

Limites des graphes

Tropes ne permet pas de faire des graphiques globaux. Les graphiques sont toujours centrés sur un terme en particulier, l’utilisateur n’a donc jamais une vision globale des résultats.

Limites du logiciel

Tropes est intéressant si l’enseignant sait déjà se servir du logiciel. S'il ne le connaît pas, l’enseignant doit installer Tropes sur son ordinateur et il doit apprendre à se servir du logiciel.

De plus, l’exportation des données depuis Tropes n’est pas facile et enlèverait toute l’interactivité proposée dans les divers graphiques, ce qui est un des atouts du logiciel.

IRaMuTeQ

Déroulement de l’analyse

IRaMuTeQ est une interface de R. Ce qui veut dire que c'est le logiciel R qui fait les analyses. IRaMuTeQ prépare les données et écrit des scripts qui sont ensuite traités dans R. Enfin, les résultats des analyses de R (les graphiques,...) sont affichés dans l'interface.

Préparation du corpus

A venir : solution pour insérer les variables dans le document contenant les réponses. Une réflexion est en cours pour construire un script avec R.

Utilisation envisagée

IRaMuTeQ permet d'envisager plusieurs utilisations qui soit implique l'utilisation du logiciel par le lecteur (pour la liste des formes actives) ou alors le production de graphique qui sont sauvegardés dans un format image et peuvent être partagé avec les lecteurs sans qu'il n'ait besoin d'utiliser le logiciel.

Liste des formes actives et concordancier

En lançant une analyse statistique, il est possible d'avoir accès à un tableau contenant les formes actives et leur fréquence d'apparition.

Liste formes actives.png

Il est ensuite possible d'avoir accès à des options pour les termes en faisant un clic droit sur l'un d'eux.

Liste formes actives concordancier.png

Il y a la possiblité d'avoir accès au concordancier de chaque terme. Il s'agit en fait d'un écran qui regroupe toutes les propositions où le terme est apparu.

Concordancier.png

Le concordancier peut être enregistré en format html. Il est possible alors de transmettre ce fichier et de l'utiliser en dehors du logiciel IRaMuTeQ. Cependant, seul le concordancier est exporté et pas la liste. De plus, il faut reproduire la démarche pour les différents termes de la liste.

Cette analyse est intéressante mais elle demande de lire le tableau afin de prendre connaissance des différents termes et de leur poids. Elle ne permet pas de se faire une idée rapide des idées/termes qui ont été cités dans les réponses. Elle présente cependant un énorme avantage : le concordancier. Il est intéressant pour le lecteur de pouvoir contextualiser les termes et de mieux les comprendre.

Afin d'avoir accès au tableau et au concordancier, il est indispensable d'utiliser le logiciel. Il n'est pas possible de produire un fichier de résultat et de le fournir aux enseignants.

Nuage de mots

Ce dernier représente les formes actives en assignant une taille plus important aux termes qui sont apparus le plus. Le traitement consiste à compter et lister les termes puis à produire un affichage graphique.

Nuage 1.png

Ce type de graphique à l'avantage de donner une idée rapide des termes importants mais le manque de contexte est un réel problème. Il serait en effet intéressant de pouvoir accès au contexte d'apparition des termes qui constituent le nuage.

Analyse de similitudes

Une analyse des similitudes est proposée dans IRaMuTeQ. Cette analyse se base sur le package poxy de R et produit ensuite des graphiques issus de la librairie "igraph" de R. Les termes du texte entré dans IRaMuTeQ sont traduit en matrice et cette dernière est ensuite traité par R.

Cette analyse calcule la proximité entre les formes actives (déterminée par le lexique) et produit ensuite un graphique. La taille des mots sur le graphique correspond au nombre d’occurrences du terme dans le texte. Le terme sont reliés. L'épaisseur des liens représente l'importance de la proximité entre les formes, c'est à dire si cette dernière est présente plusieurs fois.

Graph simi 1.png

Ce graphe est intéressant car il permet à l'enseignant de se faire une idée des associations entre les termes. Cela peut lui fournir une idée plus précise sur le sens des commentaires des étudiants. En effet, les liens donne une information sur le contexte d'apparition des termes dans certain cas. Dans le graphique ci-dessus, nous voyons que le mot difficile est relié à "tp". Il y a un réel ajout d'information par rapport au nuage de mots.

Limites de cette solution

La limite des solutions proposées par IRaMuTeq la plus importante est le fait qu'il n'est pas possible d'avoir une représentation visuelle intéressante et un accès au contexte des termes en même temps.

Références

Documentation sur Tropes

Manuel de Tropes

Page Edutechwiki de Tropes

Documentation sur IRaMuTeQ

Manuel d'utilisation de IRaMuTeQ

Page Edutechwiki de IRaMuTeQ

Documentation sur R

Tutoriel Edutechwiki sur R

Premiers pas avec R

Créer une fonction avec R

Initiation à R

Référence des fonctions principales de R

Text Mining avec R

Concaténation avec R