Bonjour à tou·te·s,
Débutant en Python − avec dans une main l'ouvrage Rapid GUI Programming with Python and Qt, de l'autre les tutos de Développez.net − je vous soumets une question relative à la meilleure façon de stocker des données pour un projet.
Le projet en question mérite rapide présentation : il s'agit d'un logiciel d'aide à l'analyse de texte, à l'instar d'un vieillissant et abandonné Weft QDA ou bien, pour citer des logiciels payants (et chers !) et plus ambitieux aussi, NVivo ou encore QDA Miner.
En résumé le principe est le suivant : on dispose d'un corpus de textes en lecture seule − typiquement, des entretiens retranscrits, mais ce peut-être aussi des articles de presse, ou tout autre données textuelles rédigées − que l'on va « coder ». Dans le langage qui est le mien, celui des sciences humaines et sociales, l'opération dite de codage consiste à « étiqueter » des morceaux de texte (une phrase ou un ensemble de phrases) avec ce qu'on appelle donc un code et qui est, grosso modo, une catégorie servant à l'analyse. Par exemple, si j'ai des entretiens d'étudiants portant sur leur orientation universitaire, peut-être à l'analyse des dits entretiens vais-je devoir créer les codes « relation avec les parents », « déménagement », « scolarité lycéenne » ou d'autres choses encore. Très concrètement, l'opération est simple : il s'agit de sélectionner un segment de texte et, via un clic sur un bouton, de choisir le code associé à ce segment.
Pour finir la description, précisons qu'une fois la phase de codage terminée, la fonctionnalité de base consiste à produire des rapports : par exemple, l'ensemble des segments codés « déménagement » sur l'ensemble des entretiens retranscrits, ceci pour faciliter leur analyse et leur comparaison. Il ne s'agit ni plus ni moins que du remplacement de la vieille méthode à base de surligneurs, ciseaux et colle…
D'autres fonctionnalités plus avancées peuvent être imaginées (croisement de codes, croisement entre des codes et des variables appliquées aux différents entretiens, statistiques textuelles, etc.)
Ma question est double :
- Quel type de données est-il pertinent d'enregistrer ? Spontanément, je vois deux possibilités : soit ne stocker que les positions des segments dans le texte, soit stocker le segment lui-même (et donc dupliquer le contenu textuel qu'il représente). A priori la première solution est la plus légère en termes de stockage, mais je me demande si elle n'est davantage pas limitée. Par exemple, Weft QDA permet de coder un rapport : une fois que j'ai produit le rapport sur le code « déménagement », je peux le coder pour y appliquer des codes plus précis, plus fins. À la lumière des quelques indications que j'ai pu fournir, une solution (peut-être une troisième…) vous paraît-elle clairement plus avantageuse ?
- Sous quel format ? Là encore, spontanément, je considérerais l'alternative entre une base de données sqlite et un (ou plusieurs ?) fichiers XML. Les seconds me semblent posséder l'avantage de la « lisibilité » (si, pour une raison x ou y, l'utilisateur veut fouiller dans les données…) mais j'ai du mal à évaluer leur pertinence en termes de performance par rapport à un bdd et sa possibilité de faire des requêtes.
J'espère ne pas avoir été trop long et vous remercie
Partager