Je me suis toujours posé la question de l’objectivation de notre perception du style d’un auteur (dès mon DEA…). Étant fan de Philip K. Dick, j’ai toujours été frappé par le fait que cet auteur, qui semble avoir considéré ses romans de SF avant tout comme un moyen de joindre les deux bouts, était assez peu représentatif du genre. Pas ou peu de vaisseaux spatiaux, créatures aliens et autres gadgets. Mais une réflexion sur ce que c’est qu’être humain, la compassion, le rapport à Dieu. Il faut savoir que PKD a également écrit quelques romans « mainstream », qu’il a en général eu énormément de mal à faire publier. Le premier, Confessions of a Crap Artist, est paru 10 ans après avoir été écrit… à son grand désespoir, lui qui aurait voulu être reconnu comme un auteur « classique » avant tout. À la lecture, il faut reconnaître qu’il est difficile de voir une différence tranchée entre les romans de SF et les romans mainstream de PKD.
Dans ce billet, j’ai donc décidé de montrer les premiers résultats d’expériences réalisées à l’aide de divers outils combinant Traitement Automatique des Langues, linguistique de corpus et statistiques, sur un corpus d’écrits de plusieurs auteurs, dont PKD, pouvant être classés en « SF », « mainstream » et « nonfiction ».
J’ai d’abord constitué un corpus électronique de romans de Science Fiction, auquel j’ai ajouté des écrits non fictionnels, disponibles sur internet:
- Asimov: Caves of Steel, I Robot
- PKD:
- SF: Ubik, The Man in the High Castle
- mainstream: Confessions of a Crap Artist, Mary and the Giant
- Auteurs divers, écrits non fictionnels.
On trouve de nombreuses publications dans le domaine des « Humanités Numériques » portant sur l’attribution automatique d’auteurs, la détection de plagiat et la stylistique computationnelle. J’ai voulu voir ce que les outils de textométrie et de stylistique computationnelle pouvaient apporter à la question de la comparaison entre des écrits classés comme « SF » versus « mainstream » chez un même auteur.
Les outils auxquels je me suis intéressé sont:
- TXM (Projet Textométrie): une plate-forme développée principalement par S. Heyden, dans la lignée des approches textométriques « à la française ». TXM intègre des outils tels que Treetagger (un étiqueteur morpho-syntaxique automatique), et est prévu pour s’interfacer facilement avec la plate-forme statistique R. TXM permet de constituer des corpus annotés en XML-TEI de façon semi-automatique et assure la gestion des corpus électroniques d’un bout à l’autre de la chaîne (intégration, indexation, annotation, exportation).
- le package R stylo: un ensemble d’utilitaires et de fonctions statistiques pour la stylistique computationnelle, élaboré par M. Eder, J. Rybicki et M. Kestemont. Le package stylo permet de calculer des distances inter-textuelles (Delta, Manhattan, Zeta, etc.) sans avoir à réimplémenter les fonctions, visualiser les clusters, réaliser des analyses statistiques, mais également de la classification automatique supervisée (k-NN, Naïve Bayes et autres SVM).
Les résultats intermédiaires présentés ici permettent de voir concrètement ce qu’on peut attendre de ce genre d’outils, qui ne demandent pas de prime abord une compétence énorme en programmation et en statistique.
À la recherche des spécificités lexicales
Le logiciel TXM a été énormément utilisé pour caractériser, de façon objective, mesurable et reproductible, des spécificités qui tiennent soit à un locuteur, soit une période, soit un genre textuel. Par ex., quels sont les termes « favoris » de N. Sarkozy par opposition à J. Chirac? Quels sont les termes systématiquement évités?
TXM permet également de classer de façon automatique les textes d’un corpus, en fonction des partitions qu’on y a opéré, et en tenant compte du matériau linguistique: mots, lemmes, parties du discours, etc.
Dans ma quête d’éléments objectifs de caractérisation des romans « SF » vs. « mainstream » de PKD, je me suis donc tout naturellement penché sur les spécificités lexicales, c’est à dire les choix de mots propres à différents sous-genres. Pour mieux montrer l’intérêt d’utiliser TXM pour détecter ces spécificités, j’ai comparé tous les textes de mon corpus, plutôt que simplement les œuvres de PKD seules: j’ai donc réalisé 4 partitions à partir des textes du corpus:
- PKD SF
- PKD mainstream
- Asimov SF
- nonfiction.
Voici une sélection des termes les plus spécifiques de la catégorie « PKD SF », abstraction faite des signes de ponctuation et des noms propres liés à chaque roman. Certains signes de ponctuation sont pertinents, nous y reviendrons plus tard, mais d’autres sont des choix spécifiques à certaines maisons d’édition (apostrophe typographique vs. droite).
Unités | Fréquence | PKD_SF | score | PKD_mainstream | score | Asimov_SF | score | non-fiction | score |
said | 5071 | 2115 | 102,6 | 1941 | 70,2 | 974 | -27,2 | 41 | -1 000,0 |
he | 5906 | 2357 | 91,9 | 2287 | 87,8 | 1102 | -37,1 | 160 | -1 000,0 |
thought | 898 | 451 | 45,7 | 225 | -0,9 | 177 | -4,8 | 45 | -37,1 |
hotel | 92 | 87 | 41,6 | 5 | -6,9 | 0 | -11,9 | 0 | -8,8 |
moratorium | 66 | 66 | 36,9 | 0 | -9,0 | 0 | -8,5 | 0 | -6,3 |
himself | 593 | 306 | 34,1 | 132 | -2,2 | 143 | -0,7 | 12 | -39,6 |
book | 164 | 117 | 30,4 | 14 | -8,4 | 6 | -13,5 | 27 | -0,8 |
inertials | 54 | 54 | 30,1 | 0 | -7,3 | 0 | -7,0 | 0 | -5,2 |
oracle | 49 | 49 | 27,4 | 0 | -6,7 | 0 | -6,3 | 0 | -4,7 |
elevator | 62 | 57 | 25,7 | 0 | -8,4 | 3 | -4,7 | 2 | -3,8 |
phone | 153 | 104 | 24,4 | 34 | -0,9 | 1 | -18,0 | 14 | -3,6 |
half-life | 38 | 38 | 21,2 | 0 | -5,2 | 0 | -4,9 | 0 | -3,6 |
his | 3823 | 1323 | 20,6 | 1137 | 4,5 | 1179 | 12,4 | 184 | -160,2 |
cold-pac | 33 | 33 | 18,4 | 0 | -4,5 | 0 | -4,3 | 0 | -3,2 |
sir | 146 | 92 | 18,2 | 7 | -11,4 | 46 | 1,2 | 1 | -12,4 |
silver | 51 | 44 | 17,5 | 5 | -2,6 | 2 | -4,3 | 0 | -4,9 |
talent | 46 | 41 | 17,4 | 3 | -3,3 | 0 | -5,9 | 2 | -2,5 |
jewelry | 30 | 30 | 16,7 | 0 | -4,1 | 0 | -3,9 | 0 | -2,9 |
He | 2921 | 1012 | 16,1 | 876 | 4,1 | 972 | 19,5 | 61 | -190,4 |
office | 222 | 120 | 15,9 | 48 | -1,4 | 49 | -0,9 | 5 | -14,7 |
precog | 27 | 27 | 15,1 | 0 | -3,7 | 0 | -3,5 | 0 | -2,6 |
bowed | 33 | 31 | 14,9 | 0 | -4,5 | 2 | -2,4 | 0 | -3,2 |
authentic | 26 | 26 | 14,5 | 0 | -3,5 | 0 | -3,4 | 0 | -2,5 |
consul | 25 | 25 | 14,0 | 0 | -3,4 | 0 | -3,2 | 0 | -2,4 |
this | 1789 | 641 | 13,6 | 390 | -6,3 | 347 | -9,7 | 411 | 3,3 |
TV | 64 | 47 | 13,4 | 4 | -4,5 | 0 | -8,2 | 13 | 0,3 |
lounge | 33 | 30 | 13,4 | 2 | -2,6 | 1 | -3,2 | 0 | -3,2 |
coins | 30 | 28 | 13,3 | 1 | -3,0 | 0 | -3,9 | 1 | -2,0 |
Denver | 25 | 24 | 12,1 | 1 | -2,4 | 0 | -3,2 | 0 | -2,4 |
salesman | 30 | 27 | 11,9 | 3 | -1,6 | 0 | -3,9 | 0 | -2,9 |
conapt | 20 | 20 | 11,2 | 0 | -2,7 | 0 | -2,6 | 0 | -1,9 |
casket | 19 | 19 | 10,6 | 0 | -2,6 | 0 | -2,4 | 0 | -1,8 |
hexagram | 19 | 19 | 10,6 | 0 | -2,6 | 0 | -2,4 | 0 | -1,8 |
pedecab | 19 | 19 | 10,6 | 0 | -2,6 | 0 | -2,4 | 0 | -1,8 |
prudence | 19 | 19 | 10,6 | 0 | -2,6 | 0 | -2,4 | 0 | -1,8 |
him | 2313 | 784 | 10,6 | 921 | 41,2 | 569 | -0,9 | 39 | -161,2 |
driver | 61 | 42 | 10,6 | 15 | -0,4 | 0 | -7,9 | 4 | -2,4 |
goddam | 17 | 17 | 9,5 | 0 | -2,3 | 0 | -2,2 | 0 | -1,6 |
pharmacist | 17 | 17 | 9,5 | 0 | -2,3 | 0 | -2,2 | 0 | -1,6 |
telepath | 17 | 17 | 9,5 | 0 | -2,3 | 0 | -2,2 | 0 | -1,6 |
here | 824 | 310 | 9,5 | 272 | 4,3 | 195 | -1,0 | 47 | -30,4 |
En termes de choix lexicaux, on reconnaît assez bien le vocabulaire spécifique de PKD (conapt, precog, et autres). Ce qui est plus surprenant, c’est la présence de mots tout à fait communs, tels que certains pronoms, certains verbes, qui sont sélectionnés par l’algorithme de spécificités. Les scores de spécificité permettent d’estimer la sur-utilisation d’un mot donné dans une partition du corpus donnée. Ils sont exprimés en positif ou en négatif, avec comme valeur de rejet (ou de « banalité ») 2.0 (resp. -2.0). Autrement dit, « cold-pac » semble bien spécifique de PKD avec un score de 18.4. Il est d’ailleurs le seul à utiliser ce terme. La mesure de spécificité permet donc bien d’identifier des termes utilisés uniquement chez un auteur et pas d’autres. Elle permet également d’identifier des termes dont la fréquence relative varie chez chaque auteur. Il en va ainsi de « phone », utilisé par tous les auteurs, mais dont la répartition dans les romans de SF de PKD semble surabondante.
Un point spécial sur les ponctuations: comme dit plus haut, je ne me suis pas trop attardé dessus car certaines ponctuations sont le résultat des choix éditoriaux des maisons d’édition (guillemets arrondis). Malgré tout, le point virgule apparaît sur-représenté dans les écrits de SF de PKD, avec les scores suivants:
Unités | Fréquence | PKD_SF | score | PKD_mainstream | score | Asimov_SF | score | non-fiction | score |
; | 2920 | 1448 | 138,6 | 1074 | 31,4 | 230 | -134,7 | 168 | -104,7 |
Autrement dit, le point-virgule apparaît sur-employé chez PKD, surtout dans ses écrits de SF: avec un score de spécificité de 138.6, ses écrits de SF se démarquent très clairement tant des romans d’Asimov que des textes non fictionnels. Au-delà de la fréquence d’emploi, ce constat appelle à examiner en détail l’emploi de ce caractère de ponctuation. Il ne s’agit pas ici d’un caractère utilisé uniquement dans certains textes et pas d’autres (comme les guillemets ou apostrophes typographiques), mais bien d’un marqueur stylistique, auquel un lecteur humain ne prête pas spontanément d’attention. On voit là l’intérêt des outils de fouille automatique de texte. Ce qui ne prouve pas pour autant qu’on ait découvert quelque chose de fondamental…
Un premier essai de regroupement automatique des textes
Une fois les spécificités détectées, on peut réaliser une analyse factorielle des correspondances (ou AFC), comme suit.

Analyse factorielle des correspondances sur un corpus de textes anglais
Dans cette analyse, on peut voir que, en gros, les différents textes sont assez éloignés les uns des autres, avec un peu plus de proximité entre les romans mainstream de PKD et les romans d’Asimov. Ce qui, là encore, n’est pas forcément ce à quoi on peut s’attendre à la lecture: Asimov a un style assez reconnaissable. Toutefois, le choix des textes y est peut-être pour quelque chose: j’ai choisi Caves of Steel parce qu’il est un peu à part dans la production d’Asimov: à la fois roman de robots, dans la continuité des autres (Fondation, etc.), mais en même temps enquête policière, au cours de laquelle le partenaire robot du policier (humain) joue un rôle prépondérant.
Avec les outils de TXM, il est également très facile d’obtenir un clustering hiérarchique, sur plusieurs paramètres (mots, lemmes, annotations). Ici, j’ai choisi de réaliser un clustering avec un seuil de fréquence minimale de 5, sur les lemmes tels qu’identifiés par Treetagger.

Clustering hiérarchique d’un corpus de textes anglais
Le clustering proposé est très proche (trop?) de l’intuition: les textes de PKD sont bien regroupés dans le même cluster, les 3 textes de fiction sont regroupés dans la même branche, alors que les textes « non fiction » sont clairement distingués.
En résumé: ça marche, c’est beau, on a l’impression de comprendre quelque chose…