Modélisation de quelques créations oulipiennes

au moyen d'un logiciel de génération

Greg Lessard, Études françaises, Queen's University

Michael Levison, Computing and Information Science, Queen's University


1. Introduction


Ce qui suit représente la perspective ni d'un spécialiste de l'OuLiPo, ni même d'un littéraire, mais plutôt celles d'un linguiste et d'un informaticien. Pour le linguiste, c'est le système qui prime: tout exemple, tout ensemble de données, trouvent leur intérêt dans la mesure où ils se laissent décrire par un modèle commun. Quant à l'informaticien, il cherche à définir la machine la plus élégante et à la contraindre à produire un ensemble de données bien définies avec un maximum de puissance et d'efficacité.


Malgré l'écart en apparence énorme entre ces points de vue et celui qui caractérise l'OuLiPo, il reste une base commune importante: la relation entre créativité et contrainte. Nous travaillons depuis quelques années dans un projet dont le but principal est de modéliser l'aspect créatif de la performance linguistique humaine. Ainsi, nous avons réussi à faire générer par la machine des jeux de mots, des devinettes et des créations lexicales (voir les publications de Lessard et Levison dans les références). Tout comme l'OuLiPo, nous nous intéressons à l'influence des contraintes sur la production langagière, autrement dit, aux régions limitrophes à l'intersection du langage et des facteurs cognitifs.


Une précision s'impose quand même: modéliser un phénomène linguistique au moyen de l'ordinateur n'équivaut pas à mimer la production humaine. La machine peut générer des données analogues à celles produites par un locuteur humain, mais cela ne veut pas dire que les processus utilisés sont identiques, comme nous le verrons dans ce qui suit. Malgré cela, tout en restant conscients de l'écart entre la machine et l'humain, nous croyons que la manipulation informatisée de données 'oulipesques' procure deux avantages de taille:


1) Elle nous permet de tester les modèles de création de façon systématique et dans certains cas, de façon exhaustive. Ainsi, nous verrons plus loin comment on peut générer, à partir d'un lexique de base, toutes les formes possibles selon un modèle de création lexicale.


2) Elle nous permet de pousser un logiciel de génération jusqu'à la limite de ses capacités. Par exemple, nous verrons que la tentative de capter des contraintes oulipiennes nous oblige parfois à mélanger les niveaux linguistiques, ce qui provoque des difficultés de plusieurs ordres pour la machine.


2. Créations oulipiennes


Il n'est nullement question ici de faire un survol, même sommaire, des opérations déjà utilisées par les oulipiens. Retenons cependant les points suivants:


a) les manipulations peuvent se faire à tous les niveaux: lettre, phonème, syllabe, morphème, mot, phrase, texte;


b) sur l'axe paradigmatique, les opérations possibles comprennent l'ajout, le retrait ou parfois les deux ensemble, ce qui donne la substitution; sur l'axe paradigmatique, on observe la concaténation et la permutation;


c) les opérations peuvent porter strictement sur la forme (p.ex. jeux d'homonymie) ou sur la forme et le sens en même temps (p.ex. jeux de synonymie);


d) les opérations peuvent impliquer des éléments de même nature (comme le fait de remplacer une consonne par une autre) ou bien des éléments hétérogènes (comme le remplacement, analysé plus loin, du suffixe -sion par le mot sillon).


Toute tentative de modélisation doit tenir compte de l'ensemble de ces possibilités.


3. Présentation du logiciel VINCI


Dans ce qui suit, nous ferons référence à un logiciel de génération (VINCI) développé à l'University Queen's. Au fond, VINCI fournit un ensemble de métalangages pour spécifier les différents aspects d'une production linguistique (en d'autres termes, sa grammaire) et un interpréteur qui les combine pour sortir une suite de productions. Les produits du logiciel peuvent être de différentes natures. Jusqu'à présent, on a généré des mots et des phrases dans une variété de langues, y compris le français, l'anglais, le russe, l'espagnol et l'italien; des notations musicales et des formules chimiques. (VINCI tourne sous les systèmes d'exploitation Solaris et Windows95. Le logiciel est gratuit et disponible sur l'hypertoile à partir de l'adresse suivante: http://qsilver.queensu.ca/~lessard/vinci.html)


Voyons d'abord les différents modules du logiciel, chacun ayant la responsabilité pour un aspect du métalangage et de la génération. Dans tous les cas, les modules prennent la forme de fichiers textuels ordinaires.


Au niveau de base, on trouve les éléments terminaux, qui définissent les unités primordiales d'un langage. Pour les productions linguistiques, cela prend souvent la forme des parties du discours, comme l'illustre la liste suivante, qui définit l'existence de trois classes: les noms, les verbes et les adjectifs.


N, V, ADJ


Vient ensuite la possibilité de spécifier des attributs pour rattacher une information supplémentaire aux éléments terminaux. Les attributs prennent la forme de classes et de valeurs. Ainsi, la liste suivante, en format VINCI, spécifie trois classes (Nombre, Genre, et Casnom – cette dernière étant chargée des spécifications sémantiques) et des valeurs pour chaque classe (p.ex. 'sing' et 'plur' comme valeurs du Nombre). La classe Casnom illustre la possibilité d'un niveau supplémentaire de complexité: le symbole < sert à signaler une relation de dépendance entre deux valeurs. Ainsi, la valeur 'humain' est présentée comme une sous-classe de la valeur 'animé' tandis que cette dernière est présentée comme une sous-classe des valeurs 'tangible' et 'mobile'. Il en découle que selon ce schéma, un être humain est vu comme tangible et mobile, tout comme, par exemple, un véhicule.


Nombre (sing, plur)

Genre (masc, fém)

Casnom (humain<animé,

animé<tangible,

animé<mobile,

véhicule<tangible,

véhicule<mobile,

objet<tangible,...)


Le système d'attributs dont nous nous servons actuellement pour nos travaux en fraçais comprend environ 200 valeurs divisées en une cinquantaine de classes.


Une fois définis les éléments terminaux et les attributs, il est possible de spécifier les entrées lexicales (les mots du langage). Les deux exemples suivants illustrent comment cela se fait. On remarque que chaque unité lexicale occupe une ligne à elle, cette ligne étant divisée en champs par le trait vertical (|). Dans le premier exemple (chat) le premier champ comprend, entre guillemets, le mot de base (chat), le deuxième l'élément terminal (N), le troisième les attributs (un chat est un membre de la classe des animés et de toutes les classes supérieures à 'animé' ('tangible', 'mobile',...). Le quatrième champ contient la transcription phonétique et le cinquième la règle morphologique (voir ci-dessous) qui génère les formes fléchies du mot de base (chats). Le deuxième exemple (grand) reprend le même format, mais illustre également la possibilité d'utiliser des pointeurs lexicaux pour relier un mot à ses synonymes, antonymes, dérivés, etc.


"chat"|N|>animé, Nombre, Genre|Sa|$3||

"grand"|ADJ|....|$7|...|ant: "petit"; dérnom: "grandeur"; syn: "gros";|...


Le lexique français dont nous nous servons comprend environ 2500 entrées choisies selon la fréquence descendante dans le Dictionnaire des fréquences du Trésor de la langue française (Imbs 1971).


Le module suivant s'occupe des aspects syntaxiques de la génération. Cela s'accomplit au moyen de règles de réécriture où un symbole à gauche se réécrit comme une suite de symboles à droite. Ainsi, dans le premier exemple, un syntagme nominal se réécrite comme un déterminant suivi d'un nom et d'un adjectif:

SN = DET N ADJ


Il est également possible de rattacher des attributs aux éléments terminaux, comme dans l'exemple suivant qui exige que les DET N et ADJ possèdent les traits 'masc' et 'sing':


SN = DET[masc, sing] N[masc, sing] ADJ[masc, sing]


¸ un niveau d'abstraction supérieur, on peut choisir (choose) des variables qui seront partagées par différents noeuds. Ainsi, dans la règle suivante, les DET N et ADJ partageront leur nombre et genre qui seront choisis au hasard chaque fois qu'une suite est générée.


SN = choose Ge : Genre, No : Nombre;

DET[Ge, No] N[Ge, No] ADJ[Ge, No]


Finalement, le développement d'un arbre (produit de la réécriture) peut être dirigé dans une voie ou dans une autre selon les attributs présents sur la mère. Dans l'exemple qui suit, si le SN comprend l'attribut 'antéposé', l'adjectif sera mis avant le nom; sinon, il suivra le nom.


SN =

< antéposé :

choose Ge : Genre, No : Nombre;

DET[Ge, No] ADJ[Ge, No, antéposé] N[Ge, No]

>

choose Ge : Genre, No : Nombre;

DET[Ge, No] N[Ge, No] ADJ[Ge, No]


Finalement, les règles de réécriture donnent la possibilité de spécifier les caractéristiques de l'unité lexicale qui sera choisie. Dans l'exemple suivant, l'adjectif choisi doit être grand et en outre, le mot généré sera non pas grand lui-même mais un synonyme, spécifié dans le treizième champ de l'entrée lexicale. Par conséquent, le produit final risque d'être quelque chose comme le chat énorme.


SN = DET[masc, sing] N[masc, sing] ADJ[masc, sing]/ "grand"/@13:syn


Au-delà des règles de réécriture, le logiciel VINCI prévoit également la possibilité de transformations qui servent à manipuler les noeuds d'un arbre. Une transformation comprend à gauche un patron syntaxique qui doit être présent dans l'arbre, et à droite une spécification des manipulations à faire. Ainsi, dans le premier des deux exemples suivants (la transformation ANTÉPOSER), si on trouve à gauche la suite N ADJ, la transformation inverse l'ordre des deux éléments. Dans la deuxième transformation (FAIRE_SYNONYME), un nom est remplacé par son synonyme.


ANTÉPOSER = TRANSFORMATION

* N ADJ * : 1 3 2 4 ;


FAIRE_SYNONYME = TRANSFORMATION

* N * : 1 2/@13:syn 3 ;


Finalement, une fois qu'un arbre syntaxique est produit, c'est au tour de la morphologie de produire la forme fléchie de chaque entrée lexicale, selon les attributs présents dans l'arbre. Tout comme les autres modules de VINCI, les spécifications morphologiques prennent la forme de fichiers textuels dans un métalangage relativement simple. Ainsi, dans le premier des exemples suivants (rule 3), il est spécifié que si l'élément terminal de l'arbre porte le trait 'plur', il faudra ajouter un -s au contenu du premier champ lexical (par exemple, chat + s); sinon, le contenu du premier champ (indiqué par #1) reste inchangé.



rule 3

plur : #1 + "s";

* : #1;


La règle suivante, plus complexe, illustre la capacité de la morphologie à tenir compte du contexte à gauche et à droite de l'élément terminal et son application pour prévoir l'élision des e muets. Ainsi, si le mot suivant, indiqué par 1 commence par une voyelle (spécifié par la formule "a*"|"e*"|"i*"|"o*"|"u*"|...), la morphologie prend le mot de base (#1) enlève la dernière lettre (-), ajoute une apostrophe ("'") et enlève l'espace entre les deux mots ("^"). Par contre, selon la deuxième ligne, si le mot suivant comprend le trait 'aspiré', l'élision ne se fait pas.


rule 53 (élision du e muet)


1=("a*"|"e*"|"i*"|"o*"|"u*"|...) : #1- + "'" + "^";

1=<16=asp> : #1;

1=("h*"|"H*") : #1- + "'" + "^";

* : !;


La version actuelle du logiciel comprend une morphologie flexionnelle française sensiblement complète et des spécifications morphologiques plus sommaires pour d'autres langues.


Le dernier module du système permet la création exhaustive d'unités lexicales dérivées selon un lexique de base et une formule dérivationnelle. Ainsi, l'exemple suivant cherche dans le lexique tous les verbes (V) transitifs (vtd) ayant un sujet humain (humain.suj) et conjugués selon la première conjugaison, en -er ($12) et en produit (_makes_) des noms en -ment. Selon cette formule, lancer donne lancement, couper donne coupement et ainsi de suite.


rule 1 {verbe transitif en -er donne un nom en -ment}

?|V|vtd,humain.suj|?|$12| _makes_ [#1- +"+ment"]|N|

4. Moyens de traitement


Les recherches sur le traitement de la langue par les êtres humains tendent à démontrer l'existence de deux modes de fonctionnement complémentaires. D'un côté, nous avons la capacité de stocker en mémoire des unités de toutes sortes. Prenons le mot table. Si nous en avons besoin, nous ne sommes pas obligés de le recomposer à chaque occurrence. Il revient d'un seul trait. Par contre, devant le besoin d'une désignation pour l'action de nettoyer un objet pour une deuxième fois, nous avons la capacité de former le mot renettoyer, et s'il nous faut un nom pour exprimer le contraire de l'action de clouer, nous pouvons créer déclouage. Bien que non attestées dans un dictionnaire français comme le Petit Robert, ces formes sont parfaitement régulières.


En fait, la frontière entre stockage et formation n'est pas parfaitement étanche. ¸ force d'usage, une forme créée peut finir par être stockée. En même temps, la taille des unités stockées n'est pas facile à déterminer. Prenons les séries et les cycles par exemple. Souvent, ils sont stockés dans un sens, mais non pas dans l'autre. (Pour s'en convaincre, on peut essayer de réciter les lettres de l'alphabet, les jours de la semaine, etc. dans un sens et dans l'autre.)


Dans le contexte de l'opposition stockage/création, il semblerait que les phénomènes oulipiens se situent davantage du côté de la dernière tendance, puisqu'ils impliquent en principe des opérations relativement complexes donnant lieu à un produit nouveau. Par contre, lorsqu'il s'agit de modéliser de tels phénomènes, au moins quatre façons de faire se présentent, comme l'illustre le tableau suivant:


1) données pauvres + opérations simples


2) données pauvres + opérations complexes


3) données riches + opérations simples


4) données riches + opérations complexes


Illustrons cela au moyen d'un exemple assez simple: les permutations des lettres du mot rose: ce qui donne eros, roes, sroe, sore,... Prenons d'abord le modèle (1) ci-dessus. Dans un cas pareil, les données sont fournies par le mot rose présenté comme un tout inanalysable. Il est clair qu'une opération simple, incapable d'entrer à l'intérieur du mot (le cas de (1)) ne suffirait pas pour générer dans un tel cas les permutations des lettres.


Par contre, si on se permettait une opération complexe (comme en 2) avec la capacité de décomposer une unité lexicale en parties constituantes, on pourrait obtenir les formes voulues. On peut penser que c'est cela qui caractérise l'approche des humains face à un tel défi: nous sommes capables de trouver les permutations des lettres de n'importe quel mot, même celui que nous voyons pour la première fois.


Mais ce n'est pas la seule solution au problème. On pourrait également exiger que chaque unité lexicale possède déjà, sous une forme préstockée, l'ensemble des permutations de ses lettres. Dans un cas pareil, même une opération simple, telle que la recherche des différentes variantes, suffirait pour accomplir les permutations voulues (on a alors le cas (3) ci-dessus). Nous verrons plus loin que c'est l'approche que l'état actuel du logiciel VINCI nous oblige d'adopter. Les résultats sont identiques, mais les moyens sont autres.


Finalement, si on a et des données riches et des opérations complexes, comme en (4), tout est possible.


5. Exemples de divers niveaux


Essayons maintenant de ramener la discussion de la section précédente sur un terrain plus concret en prenant comme point de départ quelques opérations oulipiennes pour lesquelles nous proposerons un modèle VINCI suivi de quelques productions authentiques du logiciel. Dans chaque cas, nous analyserons la capacité du logiciel à accomplir l'opération, ainsi que les contraintes et les faiblesses qui s'observent.


a) homosyntaxismes


On a ici un cas relativement simple. Il s'agit de créer une série de syntagmes qui partagent la même structure syntaxique. La formule suivante spécifie un syntagme nominal dont les éléments sont masculins et singuliers. ¸ l'intérieur de ces contraintes, les unités lexicales sont choisies au hasard. Les mots en italique représentent une sortie typique de programme.


SN = DET[masc,sing] N[masc,sing] ADJ[masc,sing]


ton portefeuille confortable, chaque public égal, chaque inspecteur bilingue, ce texte

blessé, votre mardi inutile, cet imperméable violent, ce futur large, l'éclat parfait


b) répétition de la même initiale


Un autre problème facile à résoudre; il suffit de spécifier que le nom commence par une lettre. Dans l'exemple suivant, c'est m. Une sortie typique est reproduite.


SN = DET[masc,sing,déf] N[masc,sing]/ "m*"


le moyen, le maillot, le malheureux, le moment, le mètre, le mal


c) série (lettres de l'alphabet)


Par une extension du modèle précédent, on obtient une série de syntagmes nominaux qui suivent l'ordre de l'alphabet. Notez cependant qu'il faut spécifier les lettres de façon explicite, puisque le système VINCI est incapable de parcourir l'alphabet comme le ferait un être humain. Des sorties typiques sont ajoutées après la formule.


SN = choose Ge : Genre, No : Nombre;

DET[Ge, No] N[Ge, No]/ "a*"

DET[Ge, No] N[Ge, No]/ "b*"

DET[Ge, No] N[Ge, No]/ "c*"


tes agents les bals ses cambrioleurs

tes autobus quelques bols plusieurs capitaines

ses ascenseurs plusieurs bords tes chiffres


d) lipogrammes (éviter "e")


Le cas des lipogrammes représente en quelque sorte l'inverse des exemples b et c. Pour assurer l'absence de la lettre e, il faut procéder par étapes. D'abord, il faut modifier le lexique pour enlever les unités lexicales comprenant la lettre à éviter. Cela peut se faire en partie automatiquement au moyen du module de dérivation lexicale qui a la capacité de reconnaître des patrons dans les unités lexicales, mais la richesse de la morphologie française pose un problème. ¸ moins de parcourir l'ensemble des règles morphologiques, on ne peut pas savoir d'avance quelles règles vont ajouter un e dans la flexion des formes lexicales (p.ex. grand qui devient grande au féminin). Dans son état actuel, la machine n'a pas la capacité de post-édition de l'être humain. Il faudrait donc terminer le travail manuellement. Supposons donc un lexique débarrassé de la lettre e. La prochaine étape consiste à définir un ensemble de patrons syntaxiques capables de déclencher le produit voulu. Ainsi, le patron suivant, par le fait d'exiger un nom commençant par la lettre a, garantit l'élision de l'article défini. Un ensemble de patrons de la sorte produit un texte sans e. Les exemples en italique illustrent le produit.


SN = DET[masc,sing] N[masc,sing,humain]/ "a*" ADJ[masc,sing,humain]


l'ami obscur, l'amant amusant, l'avocat assis


Il est intéressant de comparer ce qui précède avec les possibles façons de faire d'un être humain. Ce dernier peut, par exemple, produire un texte 'normal', comprenant des e pour ensuite faire des retouches lexicales, morphologiques ou syntaxiques afin d'enlever les occurrences du e. La machine, qui n'a pas un même niveau d'intelligence, doit tout prévoir dès le début.


e) synonymie lexicale


Il reste que la machine a une certaine capacité limitée pour ajuster un texte de départ. Au moins des pointeurs lexicaux, la machine peut remplacer un mot par un autre, comme l'illustre la formule suivante, qui dans l'une de ses manifestations remplace chaussure par soulier.


SN = DET N/@13:syn ADJ


ces chaussures noires ces souliers *noires


Notons cependant un problème de taille que cela soulève. La différence de genre entre les deux mots doit être transmis aux éléments qui s'accordent avec le nom (DET et ADJ). Autrement, on finirait avec un syntagme agrammatical, où l'adjectif resterait au féminin à cause du premier nom choisi. Selon l'architecture actuelle du système VINCI, cela serait difficile sinon impossible: puisque le logiciel génère les phrases de haut en bas, la syntaxe d'abord, ensuite les choix lexicaux, et finalement la morphologie. Il manque la capacité humaine à revoir un texte et à le retravailler en fonction d'un but postérieur.


f) S + 7

Le problème S + 7 consiste à parcourir un texte en remplaçant des éléments déterminés d'avance par la septième forme équivalente qui suit dans un dictionnaire de référence. Telle qu'accomplie par un être humain, cette opération implique un va-et-vient entre le texte et le dictionnaire. Pour obtenir le même effet, VINCI doit précéder autrement. N'ayant pas la possibilité de parcourir le dictionnaire, il doit utiliser des pointeurs lexicaux pré-établis, tels qu'on trouve dans les entrées lexicales suivantes.


"chat"|N|.....|s7: "châtelain";

"chien"|N|.....|s7: "chiffe";


Par la suite, une transformation remplace chaque nom par la forme S7 définie d'avance. C'est un exemple assez clair d'un mécanisme basé sur des données riches et une opération pauvre.


S7 = TRANSFORMATION

DET N : 1 2/@13:s7


ROOT = S7 : SN


SN = choose Ge : Genre, No : Nombre;

DET[Ge,No] N[Ge,No]


Cela fonctionne dans beaucoup de cas, comme le premier ci-dessous. Par contre, comme dans le cas des synonymes, des différences de genre peuvent poser problème, comme l'illustre le deuxième exemple, où le genre de chiffe n'est pas respecté.


le chat ... le châtelain

le chien ... *le chiffe


g) anagrammes


Les anagrammes posent une série de problèmes de taille, deux en particulier. D'abord, il faut trouver un mécanisme pour décomposer un mot en lettres afin de capter de façon exhaustive l'ensemble des combinaisons possibles. Ensuite, dans une étape facultative, on doit pouvoir identifier les mots ou combinaisons de mots dans les suites ainsi constituées. Pour ce qui est du premier problème, VINCI offre la possibilité de spécifier de façon exhaustive les lettres d'un mot, comme on le voit dans l'entrée lexicale suivante.


"rose"|N|....|$104||| "r"| "o"| "s"| "e"|


Ensuite, une règle morphologique permet de capter de façon exhaustive les différentes combinaisons. (Notez que selon ce modèle, il faut établir une règle distincte pour chaque longueur de mot.)


rule 104 {pour mots de quatre lettres}

ordre2 : #9 + #8 + #10 + #11;

ordre3 : #10 + #9 + #8 + #11;

...etc...

* : #8 + #9 + #10 + #11;


Une fois mis en marche, ce programme va sortir, de façon aléatoire, toutes les combinaisons spécifiées dans la règle morphologique. Par contre, il faudrait appliquer un autre programme que VINCI si on voulait identifier les mots dans ces suites.


rose, eros, sroe, eros, rose



6. Néologie


Tournons-nous maintenant vers la génération de mots nouveaux. Nous avons signalé au début que l'un des buts de la linguistique consiste à déceler le système qui sous-tend chaque production individuelle. Or, le module de dérivation lexicale de VINCI permet de mettre cela en pratique. Pour l'illustrer, nous prendrons comme point de départ quelques néologismes créés par Raymond Queneau dans son oeuvre. Dans chaque cas, nous montrerons comment on peut formuler le modèle qui sous-tend l'exemple et l'utiliser pour générer de façon exhaustive les autres formes qui suivent le même modèle.


- constellationnaire


On a ici un exemple relativement simple qui consiste à partir d'un nom en -tion auquel on ajoute le suffixe -aire pour former un adjectif. Petit détail supplémentaire: il faut dédoubler la dernière lettre du nom. La formule VINCI est assez simple également. Le patron à gauche sélectionne les unités lexicales ayant dans leur premier champ un mot finissant en tion qui serait en même temps un nom. Dans chaque cas de la sorte, cela prend le premier champ de l'unité lexicale (#1) et y ajoute la suite naire. Le deuxième champ de la nouvelle unité lexicale devient ADJ.


rule 106

"*tion"|N|?|?|?|?| _makes_ [#1 + "naire"]|ADJ|||| %


Appliqué au lexique français de VINCI (2500 unités lexicales), cette formule génère les formes suivantes qui nous avons reproduites sans retouches autre que d'enlever la partie du discours. ¸ noter en passant que le fonctionnement normal du logiciel produit une liste en ordre alphabétique inverse. En outre, quelques-unes des formations (en italique) méritent une remarque spéciale: (1) contrairement aux autres formes, nation n'est pas un mot complexe lui-même; il aurait fallu une spécification plus détaillée pour ne pas l'inclure dans la liste. (2) On retrouve deux formes en circulationnaire puisque le lexique de base comprend deux entrées lexicales pour capter deux sens distincts.


végétationnaire situationnaire sensationnaire revendicationnaire relationnaire

relationnaire révolutionnaire questionnaire prononciationnaire positionnaire

organisationnaire opérationnaire observationnaire nationnaire intentionnaire

instructionnaire inscriptionnaire imaginationnaire habitationnaire générationnaire

formationnaire fonctionnaire expositionnaire explicationnaire dispositionnaire

directionnaire créationnaire conversationnaire conditionnaire circulationnaire

circulationnaire augmentationnaire attentionnaire affectionnaire admirationnaire

additionnaire actionnaire émotionnaire éducationnaire


- dévisagea, dépoitrina, déjamba


Le point de départ de cette série est le mot lexicalisé dévisager dont Queneau prend la structure de base (dé + désignation d'une partie du corps + er) pour former deux termes nouveaux basés sur poitrine et jambe. La formule suivante ne fait que transformer ce modèle dans le format VINCI. On cherche un nom qui se termine par la lettre e et qui porte l'attribut 'partieducorps' déjà présent dans le lexique français et on y ajoute le préfixe et le suffixe.


rule 107

"*e"|N|partieducorps.suj|?|?|?| _makes_ ["dé" + #1 + "r"]|V||||| %


Sur la base des 2500 unités de départ, cette formule produit la liste suivante. Notons d'abord que les trois termes de la liste initiale ont été reproduits par la machine, ce qui illustre le bien-fondé de la formule. On remarque toutefois une faiblesse de la formule simple utilisée ici: il aurait fallu ajouter un s avant les mots à initiale vocalique (modification facile à faire dans ce logiciel).


dévisager déventrer détêter dépoitriner dépatter déorganer déoreiller démembrer

délanguer délèvrer déjouer déjamber dégorger défoier défacer déboucher débarber

déailer déépauler


- archidyssymétrique


Cet exemple illustre l'application en cascade de règles dérivationnelles. Au nom abstrait symétrieon ajoute d'abord le préfixe dys- (cf. dyslexie), ensuite le suffixe adjectival -que (cf. dyslexique) et finalement le préfixe intensif archi- (cf. archifou). La formule VINCI ramasse ces couches dans une seule formule, et l'applique à tous les mots ayant l'attribut 'abstrait'. En même temps, il enlève la dernière lettre du mot de base (opération accomplie avec la formule #1-).


rule 108

"*ie"|N|abstrait.suj|?|?|?| _makes_ ["archidys" + #1- + "que"]|ADJ||||| %


Dans l'ensemble, les résultats sont satisfaisants, à quelques exceptions près. Parmi les faiblesses: le mot vie est sans doute abstrait, mais il entre dans une autre catégorie que les unités polysyllabiques comme tragédie. Il en va de même pour envie, partie et compagnie. Le cas de joie (qui donne archidysjoique) est plus grave, puisque le programme ne tient pas compte de la prononciation, seulement la graphie.


archidysvique archidystragédique archidysthéorique archidystechnologique

archidyssymphonique archidyssympathique archidyspoésique

archidysphilosophique archidyspartique archidysmaladique archidysjoique

archidysironique archidysindustrique archidysharmonique archidysgéométrique

archidysgéographique archidysgénique archidysfolique archidysenvique

archidyscompagnique archidyscomédique archidyscatégorique archidysénergique


- excrémentasillon, représentasillon


Ces exemples illustrent un changement de catégorie. Le suffixe -sion se trouve remplacé par un nom autonome (sillon) homonyme du dernier. En ce qui concerne le mécanisme de base, VINCI se montre à la hauteur de la tâche, comme l'illustre la formule suivante.



rule 109

"*tion"|N|?|?|?| _makes_ [#1---- + "sillon"]|!2||||| %


Par contre, deux questions se posent. D'abord, l'efficacité humoristique du produit varie d'un cas à l'autre, selon les liens sémantiques qui s'établissent entre la forme de base et le mot sillon. Ainsi, une forme comme formasillon qui implique la notion d'une voie tracée d'avance, a sans doute une charge ironique potentielle plus grande que prononciasillon. Reconnaissons toutefois qu'il s'agit là d'une question empirique, qui d'ailleurs ne manque pas d'intérêt: en fait, la production exhaustive qu'offre un logiciel faciliterait l'étude d'une question de la sorte.


Deuxième remarque: la formule VINCI capte un cas particulier. Il manque cependant le méta-niveau qui consisterait à identifier tous les cas d'homonymie entre les suffixes français et les unités lexicales.


végétasillon situasillon sensasillon revendicasillon relasillon relasillon révolusillon

quessillon prononciasillon posisillon organisasillon opérasillon observasillon nasillon

intensillon instrucsillon inscripsillon imaginasillon habitasillon générasillon formasillon

foncsillon exposisillon explicasillon disposisillon direcsillon créasillon conversasillon

condisillon circulasillon circulasillon augmentasillon attensillon affecsillon admirasillon

addisillon acsillon émosillon éducasillon


- atlanpacifiques, vétust'rilobite


On arrive ici à des mots-valise, nettement plus complexes à traiter, dans la mesure où ils exigent un niveau d'analyse plus élevé. Commençons par le premier. Il s'agit de deux mots en -ique fusionnés ensemble, avec chute de la suite -tique dans le premier mot (atlantique passe à atlan). La formule VINCI suivante permet de capter le même résultat lorsqu'on l'applique au lexique utilisé. ¸ noter en particulier dans la formule l'opérateur _and_ qui combine deux unités lexicales pour en former une autre.


rule 110

"*ique"|ADJ|?|?|?| _and_ "*ique"|ADJ|?|?|?| _makes_ [#1.1---- + #1.2]|ADJ||||| %


Puisque la règle s'applique de façon exhaustive, ses produits comprennent des cas où la même unité se combine avec elle-même (voir exemples en italique).


ununique unsympathique unspécifique unpolitique unmagnifique undomestique unantique

sympathunique sympathsympathique sympathspécifique sympathpolitique

sympathmagnifique sympathdomestique sympathantique spécifunique spécifsympathique

spécifspécifique spécifpolitique spécifmagnifique spécifdomestique spécifantique

politunique politsympathique politspécifique politpolitique politmagnifique

politdomestique politantique magnifunique magnifsympathique magnifspécifique

magnifpolitique magnifmagnifique magnifdomestique magnifantique domestunique

domestsympathique domestspécifique domestpolitique domestmagnifique

domestdomestique domestantique antunique antsympathique antspécifique antpolitique

antmagnifique antdomestique antantique


Si le traitement de atlanpacifique ne pose pas trop de problèmes, puisqu'il s'agit simplement d'accoler deux mots, il en va autrement pour vétust'rilobite qui exige la manipulation interne du deuxième élément (le retrait du t initial de trilobite, remplacé par une apostrophe). La version actuelle du programme VINCI n'ayant pas la capacité de manipuler le début des mots, le mieux qu'on peut obtenir est représenté par la formule suivante, qui enlève les deux dernières lettres du premier mot.


rule 111

"*te"|ADJ|?|?|?| _and_ "t*"|N|?|?|?| _makes_ [#1.1-- + #1.2]|N||||| %


Nous reproduisons ci-dessous quelques exemples produits par cette formule. D'autres formes non reproduites ici sont basées sur triste, juste, honnête et bête ajoutés aux mêmes noms que dans la liste suivante. Ce cas illustre non seulement la faiblesse du logiciel face à des manipulations plus complexes, mais également l'absence (actuelle) d'un niveau d'analyse plus abstraite qui permettrait de poser une question aussi générale que: donnez-moi toutes les combinaisons d'un adjectif et d'un nom où les deux partagent le même phonème. On peut obtenir le même résultat au moyen d'une trentaine de règles particulières, une par phonème, mais on saisit ici une voie de développement nécessaire si la machine veut capter le même niveau de généralisation que l'être humain.


vastype vastroupe vastrou vastrottoir vastrompette vastristesse vastravail vastransport

vastranche vastraitement vastrait vastrain vastragédie vastracteur vastrace vastournant

vastouriste vastour vastour vastour vastort vastonne vastombeau vastoit vastoilettes

vastoile vastitre vastissu vastiroir vastimbre vastigre vasthéorie vasthé vasthéâtre vastexte

vasterritoire vasterreur vasterre vasterrasse vasterrain vasterme vastendresse vastendance

vastemps vastemps vastempête vastempérature vastechnologie vastaux vastaureau

vastasse vastartine vastarte vastapisserie vastapis vastante vastalent vastailleur vastaille

vastache vastableau vastable vastabac vastête vastémoin vastéléphone vastélégramme

vastélévision vastâche


7.

Conclusions


Que conclure de l'expérience?


D'abord, en confrontant le logiciel avec les productions oulipiennes, on met en valeur deux de ses faiblesses essentielles: d'un côté, il a du mal à analyser et a manipuler les unités lexicales dans le détail, et d'un autre, il manque de mécanismes pour formuler des généralisations abstraites.


Deuxièmement, on voit que contrairement à l'être humain qui peut produire un texte et le modifier par retouches progressives, tout en ajustant le contexte en fonction des changements apportés, le logiciel est condamné actuellement à tout prévoir dès le début.


Malgré ses limites, le logiciel démontre son utilité comme outil de recherche dans la mesure où, contrairement à l'être humain, il est capable d'appliquer une règle de façon exhaustive. Entre autres choses, cela ouvre un champ de recherches intéressant à la frontière de l'empirique et de l'esthétique. Car, si l'être humain ne retient d'habitude qu'un exemplaire de chaque règle de manipulation (celui qui figure dans son texte), la machine offre la possibilité d'examiner à tour de rôle le système dans son ensemble et de fournir aux chercheurs la possibilité d'analyser les effets de chaque choix sur une classe de lecteurs. Il est certain qu'une telle étude systématique et scientifique de la créativité est de nature à plaire aux linguistes. Reste à voir comment elle sera perçue par les littéraires.


Références


Imbs, P., R. Martin (éd.) (1971) Dictionnaire des frequences, vocabulaire litteraire des XIXe et XXe siecles. Paris: Didier, Klincksieck.


Lessard, G., M. Levison. (1995) Le logiciel VINCI: lexigrammaire et génération automatique. In Lexiques-grammaires comparés et traitements automatiques, (édité par J. Labelle.) Montréal: Université du Québec à Montréal, pp. 175-185.


Lessard, G., M. Levison. (1995) Linguistic and Cognitive Underpinnings of Verbal Humour. International Cognitive Linguistics Association Conference, Albuquerque.


Lessard, G., M. Levison. (1993) Computational Modelling of Riddling Strategies. ACH/ALLC Conference, Georgetown, June, 1993. (Conference abstracts, pp. 120-122.)


Lessard, G., M. Levison. (1992) Computational Modelling of Linguistic Humour: Tom Swifties. ALLC/ACH Conference, Oxford, April, 1992. (Conference abstracts, pp. 175-178.)


Levison, M., G. Lessard. (1995) New Words from Old: A Formalism for Word Formation. Computers and the Humanities 29:463-479.


Ouvrages oulipiens consultés


Bens, J. (1980) OuLiPo 1960-1963. Paris: Christian Bourgeois.


Bergens, A. (1963) Raymond Queneau. Genève: Droz.


Oulipo (1981) Atlas de littérature potentielle. Paris: Gallimard


Oulipo (1981) La bibliothèque oulipienne. Paris: Slatkine.


Queneau, R. (1989) Oeuvres complètes, tome I. Édition établie par Cl. Debon. Paris: Gallimard.


Queneau, R. (1969) Chêne et chien. Paris: Gallimard.