Skip to content
Guides8 min read

Le codage qualitatif arrive dans Potato : livres de codes, mémos et codes in vivo

Un aperçu du mode QDA, l'espace de travail d'analyse de données qualitatives à venir dans Potato 2.6 : un livre de codes vivant, du codage in vivo, des mémos analytiques, des cas et une recherche plein texte sur tout un corpus.

Potato Team

Si vous avez déjà codé des retranscriptions d'entretiens, vous connaissez l'histoire du logiciel. Les outils sérieux d'analyse de données qualitatives (QDA), comme NVivo, ATLAS.ti, MAXQDA et Dedoose, sont puissants et coûteux. Ils vivent sur le bureau, enferment votre projet dans un fichier propriétaire et transforment la collaboration en négociation de licences. Beaucoup de chercheurs finissent par coder dans un tableur, puis perdent le fil à mi-parcours, parce qu'un tableur n'a aucune idée de ce qu'est un code.

Potato est né de l'autre côté de la barrière, comme outil d'annotation de texte pour les jeux de données de TAL et d'apprentissage automatique. Au fil des dernières versions, il a développé les pièces qu'exige un flux de travail qualitatif : des empans (spans) sur les passages, un livre de codes partagé, des mesures d'accord. La prochaine version 2.6 les relie en un mode conçu pour la façon dont les chercheurs qualitatifs travaillent réellement.

Cet article parcourt le mode QDA : ce qu'il active, comment les pièces s'emboîtent et à quoi ressemble une configuration. Si vous cherchez la référence, la documentation du mode QDA contient la liste complète des options.

Potato en mode QDA, avec un schéma d'empan adossé à un livre de codes, le panneau de recherche Find et les barres latérales Notes et CodebookPotato en mode QDA

Un seul interrupteur, des valeurs qualitatives par défaut

L'essentiel de la mécanique de Potato est partagé entre des tâches très différentes. Le même schéma d'empan qui étiquette les entités nommées d'un jeu de données NER peut étiqueter des passages dans un entretien. La différence entre ces deux travaux n'est pas l'ensemble des fonctionnalités, mais la posture. Un projet NER en crowdsourcing veut un jeu d'étiquettes fixe et un échantillonnage avec recouvrement pour mesurer l'accord. Une chercheuse qui code seule vingt entretiens veut inventer des codes au fil de sa lecture et garder des notes privées sur ce qu'elle observe.

Le mode QDA est l'unique interrupteur qui adopte cette seconde posture :

yaml
qda_mode:
  enabled: true            # compose codebook + memos + cases + search

Définir qda_mode.enabled: true bascule les fonctionnalités universelles de Potato vers leurs valeurs qualitatives par défaut. Le livre de codes devient modifiable pendant que vous codez, au lieu d'être verrouillé. La barre latérale des mémos s'active. Les cas s'activent, avec détection automatique. Le codage in vivo devient disponible sur tout schéma d'empan que vous marquez comme adossé au livre de codes.

FonctionnalitéValeur par défaut standardEn mode QDA
Mode du livre de codesfixedopen : ajoutez, renommez, recolorez, déplacez ou supprimez des codes au fil de l'eau
Barre latérale des mémosdésactivéeactivée
Casdésactivésactivés, avec détection automatique
Recherche-et-réclamation par annotateurdésactivéedisponible (search.annotator_claim: true)
Touche de codage in vivoiactive sur tout schéma d'empan adossé au livre de codes

Rien de tout cela n'est figé. Le mode QDA ne change que le point de départ ; chaque valeur par défaut peut être remplacée. La seule exception est un garde-fou : si vous branchez un backend de crowdsourcing comme Prolific ou Mechanical Turk, Potato verrouille de force le livre de codes en fixed, afin que des annotateurs rémunérés ne puissent pas refaçonner le schéma partagé dans votre dos.

Les pièces

Un livre de codes vivant

Dans le codage de type théorie ancrée, le livre de codes n'est pas une chose que vous rédigez à l'avance. Il croît au fil de la lecture. Vous remarquez une idée récurrente, vous la nommez, et une semaine plus tard vous comprenez que deux de vos codes n'en font en réalité qu'un et vous les fusionnez.

Un schéma d'empan devient partie intégrante du livre de codes lorsque vous le marquez :

yaml
annotation_schemes:
- annotation_type: span    # span + codebook = qualitative coding
  name: codes
  description: Highlight a passage and apply (or mint, via `i`) a code
  codebook: true
  labels: [access barriers, cost concerns, provider trust]

Ces labels sont un ensemble de départ, pas une cage. En mode de livre de codes open, vous ajoutez, renommez, recolorez, déplacez et supprimez des codes pendant que vous travaillez. Le mode extensible permet aux codeurs d'ajouter des codes mais pas de supprimer ceux qui sont partagés ; fixed est le classique verrouillé, pour quand vous avez arrêté un schéma.

Codage in vivo

Le codage in vivo prend les propres mots du participant comme code. Quelqu'un dit « je n'arrivais tout simplement pas à être rappelé », et « être rappelé » devient le code, mot pour mot.

Sélectionnez un passage sur un schéma d'empan adossé au livre de codes et appuyez sur la touche in vivo (codebook_invivo_key, i par défaut). Potato forge un code directement à partir du texte surligné. À mesure que vous faites cela sur tout un corpus, la fragmentation devient l'ennemie : vous vous retrouvez avec « pas de rappel », « je n'arrivais pas à être rappelé » et « on ne m'a jamais rappelé » comme trois codes pour une seule idée. Le compositeur de codes contre cela en faisant remonter les codes quasi identiques pendant que vous tapez, pour que vous réutilisiez un code existant au lieu d'en engendrer un autre.

Mémos

Coder sans notes fait perdre le raisonnement derrière les codes. Les mémos sont des notes analytiques rattachées à une instance ou à une sélection de texte précise. Vous pouvez les garder privés ou les partager avec l'équipe. C'est là que vit le « pourquoi ai-je codé cela ainsi », et ils s'exportent aux côtés des citations pour que votre piste d'audit survive au projet.

Cas

Un cas regroupe des extraits en une unité d'analyse : un participant, un document, une visite de terrain. Une fois les extraits regroupés, les attributs au niveau du cas sont remontés afin que vous puissiez tabuler les codes par rapport aux variables des participants. Si chaque entretien porte un champ condition, le tableau croisé d'administration peut montrer comment un code se répartit entre les conditions.

yaml
cases:
  enabled: true
  key: participant_id
  attributes: [condition]

Recherche

Un corpus n'est navigable que si vous pouvez sauter à n'importe quelle occurrence d'un mot. Le mode QDA comprend la recherche plein texte FTS5 sur l'ensemble du jeu de données. Avec annotator_claim: true, un codeur peut tirer n'importe quel résultat de recherche directement dans sa propre file, et c'est ainsi qu'un analyste seul parcourt un corpus par thème plutôt que de le lire strictement du début à la fin.

yaml
search:
  enabled: true
  annotator_claim: true

Comment tout s'articule

Sous le capot, le livre de codes, les mémos, les cas et la recherche lisent et écrivent dans la même base de données de projet, de sorte qu'un code forgé à un endroit devient immédiatement recherchable et exportable partout ailleurs.

Architecture du mode QDA : un magasin de projet partagé sous le livre de codes, les mémos, les cas et la recherche, avec le flux de codage in vivoComment le mode QDA compose ses pièces au-dessus d'un magasin partagé

Une configuration complète

Voici une étude petite mais complète. Les blocs cases, search et mémos sont facultatifs (le mode QDA active déjà les cas et les mémos), vous ne les écrivez donc que pour régler une valeur par défaut comme la clé de cas.

yaml
annotation_task_name: My Qualitative Study
task_dir: .
output_annotation_dir: annotation_output/
data_files:
- data/interviews.json
item_properties:
  id_key: id
  text_key: text
 
qda_mode:
  enabled: true
 
codebook_invivo_key: i
 
cases:
  enabled: true
  key: participant_id
  attributes: [condition]
 
search:
  enabled: true
  annotator_claim: true
 
annotation_schemes:
- annotation_type: span
  name: codes
  description: Highlight a passage and apply (or mint, via `i`) a code
  codebook: true
  labels: [access barriers, cost concerns, provider trust]

Lancez-la depuis la racine du dépôt une fois la 2.6 installée :

bash
python potato/flask_server.py start examples/advanced/qda-mode-example/config.yaml -p 8000

Récupérer votre codage

Deux exportateurs transforment les données codées en livrables dont un article qualitatif a besoin :

  • codebook donne une ligne par code, avec sa hiérarchie, sa description, sa couleur et son nombre d'utilisations.
  • quotation_report donne une ligne par empan codé : la citation, ses décalages de caractères, l'instance source et le codeur. Ajoutez include_memos=true pour y joindre vos mémos.
bash
python -m potato.export config.yaml --format quotation_report \
  --option include_memos=true -o quotations.csv

Si plusieurs personnes codent le même matériau, vous voudrez un indice de fiabilité. Potato rapporte les kappa de Cohen et de Fleiss sur les codes, fonctionnalité arrivée dans la version 2.5 aux côtés de ces exportateurs.

Où cela se situe

Le mode QDA ne cherche pas à surclasser NVivo en fonctionnalités sur tous les axes. Ce qu'il propose, c'est un compromis différent : gratuit, open source, basé sur le web et collaboratif, logé dans le même outil que votre annotation pour l'apprentissage automatique et votre évaluation d'agents. Si votre laboratoire fait déjà tourner Potato pour l'étiquetage, le codage qualitatif n'est plus qu'à un bloc de configuration de distance, et non plus à celle d'un logiciel de bureau sous licence à part.

Le mode QDA est livré dans Potato 2.6. La documentation complète couvre chaque option, et le guide de l'accord inter-annotateurs explique les mesures de fiabilité.