FR2838211A1 - Procede de codage et de generation de texte - Google Patents

Procede de codage et de generation de texte Download PDF

Info

Publication number
FR2838211A1
FR2838211A1 FR0204383A FR0204383A FR2838211A1 FR 2838211 A1 FR2838211 A1 FR 2838211A1 FR 0204383 A FR0204383 A FR 0204383A FR 0204383 A FR0204383 A FR 0204383A FR 2838211 A1 FR2838211 A1 FR 2838211A1
Authority
FR
France
Prior art keywords
data
sep
text
class
datum
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR0204383A
Other languages
English (en)
Inventor
Jean Pierre Balpe
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SPBOGJS
Technicolor SA
Original Assignee
SPBOGJS
Thomson Multimedia SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SPBOGJS, Thomson Multimedia SA filed Critical SPBOGJS
Priority to FR0204383A priority Critical patent/FR2838211A1/fr
Publication of FR2838211A1 publication Critical patent/FR2838211A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/247Thesauruses; Synonyms

Abstract

L'invention concerne un procédé de codage et de génération de textes. Conformément à l'invention, un tel procédé de codage automatique est caractérisé en ce qu'on code des données ( [1], [2],. [i]... [n]) de façon à associer des groupes, ou classes, de signes à une donnée ( [i]), et en ce qu'on code des contraintes rhétoriques, de façon à restreindre le nombre de classes associées à ces données et à déterminer une présentation écrite de ces données ([1], [2],...[i]...[n]) ou des signes associés.

Description

<Desc/Clms Page number 1>
PROCEDE DECODAGE ET DE GENERATION DETEXTES
La présente invention concerne un procédé de codage et de génération de textes, permettant notamment de personnaliser les textes générés.
Un texte est une suite écrite de signes qui dépendent de la langue et du code d'écriture utilisés pour écrire le texte, ces signes étant formés par une lettre ou une association de lettres (mot), par exemple en langue anglaise ou en langue française, par un diagramme ou une association d'idéogrammes, par exemple en langue chinoise, ou par l'utilisation de symboles tels que des points et des traits pour un texte utilisant le code morse.
Les textes sont habituellement utilisés par leur(s) rédacteur(s) pour communiquer une information à leur(s) lecteur(s). Ainsi, le texte "aujourd'hui il pleut à Paris" indique à un lecteur une situation météorologique (pluvieuse) à un instant (aujourd'hui) et à un lieu (Paris).
Lorsque le rédacteur d'un texte veut utiliser ce dernier pour communiquer une information identique à tous ses lecteurs, comme dans l'exemple de la situation météorologique ci-dessus, ce texte doit être univoque. En d'autres termes, le sens de ce texte doit être identique pour tous ses lecteurs.
Pour cela, il est généralement nécessaire que le rédacteur du texte respecte la (ou les) grammaire(s) propre(s) à la (ou aux) langue(s) utilisée(s) dans la rédaction du texte, cette grammaire comprenant généralement deux catégories de règles:
<Desc/Clms Page number 2>
- Une première catégorie concerne les règles de syntaxe d'un texte, c'est-à-dire les règles relatives à l'influence de premiers signes d'un texte sur l'écriture d'un ou de plusieurs deuxièmes signe(s) de ce même texte. Par exemple, en considérant la langue française, cette catégorie comprend les règles d'accord entre un adjectif et le substantif auquel il se rapporte, les règles de déclinaison d'un verbe en fonction de son sujet, ou l'ordre d'écriture des mots dans une phrase en fonction de la nature de cette dernière (exclamative, interrogative, etc.).
Une erreur de syntaxe dans l'écriture d'un texte obscurcit le sens de ce texte, ce dernier pouvant devenir ambigu. Ainsi, dans le texte "l'étoile brillent", la syntaxe n'est pas respectée, l'accord de nombre entre le sujet "l'étoile" et le verbe "brillent" n'étant pas réalisé. Dès lors, le texte est équivoque et l'on peut interpréter ce texte de deux façons : soit le texte se réfère à une seule étoile (en considérant que le verbe est mal accordé), soit le texte se réfère à une pluralité d'étoiles (en considérant que le sujet n'a pas été écrit correctement).
Dans la suite, on utilisera l'expression "contraintes syntaxiques d'un signe" pour définir l'ensemble des relations syntaxiques entre ce signe et les signes restants d'un texte. Par exemple, en considérant la langue allemande, les contraintes syntaxiques d'un verbe comprennent le nombre et le temps auxquels ce verbe doit se décliner et les contraintes syntaxiques d'un adjectif épithète comprennent le genre et le nombre auxquels cet adjectif doit être accordé.
On définit comme "formes d'un signe" l'ensemble d'écritures possibles d'un signe lorsque ses contraintes syntaxiques varient. Par exemple, les formes de l'adjectif "beau" sont beau (masculin singulier), belle (féminin singulier), beaux (masculin pluriel) et belles (féminin pluriel).
<Desc/Clms Page number 3>
Finalement, on dénomme "radical" la partie d'un signe qui n'est pas modifiée lorsque les contraintes syntaxiques de ce signe varient, et "terminaison" les parties devant être juxtaposées au radical pour obtenir le signe.
Ainsi, "be" est le radical de beau, et "au", "Ile" et "aux" ses différentes terminaisons.
- Une deuxième catégorie de règles concerne la sémantique du texte, c'est-à-dire les règles relatives aux relations de sens existant entre les signes. Par exemple, dans le texte "L'homme prit son chapeau puis il partit", il existe une relation d'identification entre le sujet du verbe "prit" et le sujet du verbe "partit", l'utilisation du pronom "il" étant univoque pour tout lecteur de ce texte.
De façon similaire aux règles syntaxiques, une irrégularité sémantique dans un texte introduit une ambiguïté. Par exemple, "Jean prit son chapeau et Paul prit ses gants, puis il partit" a un sens ambigu, "il" pouvant se référer à "Jean" ou à "Paul".
Les règles de sémantique définissent aussi les relations de sens entre des ensembles de signes, dénommés cidessous syntagmes, qui disposent d'un sens propre pouvant différer du sens littéral transmis par le groupe de signes du syntagme. Ainsi, le syntagme nominal "un pied de nez", le syntagme verbal "faire le gros dos" ou le syntagme adverbial "comme un cheveu dans la soupe" sont des exemples de syntagmes disposant d'un sens figuré dans la langue française.
Par ailleurs, il est connu de définir le champ sémantique d'un premier signe comme l'ensemble des seconds signes dont le sens a un lien avec le sens du premier signe.
Par exemple, les signes "joie", "bonheur" et "affection" sont généralement attribués au champ sémantique du signe "amour".
Dans la majorité des langues, les règles de syntaxe et de sémantique sont nombreuses et souffrent fréquemment d'exceptions. Par ailleurs, ces règles sont en constante évolution.
<Desc/Clms Page number 4>
De ce fait, les générateurs automatiques de textes connus effectuent des opérations relativement simples, comme des substitutions ou des combinaisons de syntagmes indépendants, décrites ci-dessous à l'aide de trois modes de génération de texte:
Selon un premier mode, on effectue une combinaison entre syntagmes prédéterminés tels que les règles sémantiques et syntaxiques sont respectées au sein de chaque syntagme. Par exemple, la combinaison d'un des trois syntagmes nominaux "le soleil", "la lune", "l'étoile" avec un des deux syntagmes verbaux "brille", "resplendit" et un des deux syntagmes adverbiaux "comme une perle", "comme un diamant", permet d'obtenir une phrase cohérente telle que "le soleil brille comme un diamant". On rappelle qu'un syntagme est une unité grammaticale composée d'un groupe de mots ayant une fonction propre telle que complément ou verbe.
Les syntagmes combinés sont indépendants d'un point de vue syntaxique. En d'autres termes, le choix d'un premier syntagme n'entraîne pas de modifications dans le deuxième syntagme qui lui est combiné et ces combinaisons ne nécessitent pas de considérer des règles syntaxiques. Par ailleurs, les relations sémantiques entre les syntagmes combinés sont prédéterminées en considérant toutes les combinaisons possibles entre les syntagmes utilisés.
Un tel procédé de combinaisons présente de nombreuses limitations, notamment vis-à-vis du nombre et de l'originalité des textes générés. En effet, le nombre de textes pouvant être générés est limité aux combinaisons possibles de syntagmes. Dans l'exemple précédemment décrit, douze textes peuvent être générés.
Par ailleurs, une originalité des textes générés, par exemple, par l'utilisation d'un vocabulaire donné, de formules de styles récurrentes ou d'une présentation du texte particulière est inexistante puisque l'utilisateur d'un tel procédé ne peut, par exemple, imposer l'utilisation de figures de style ou une présentation donnée du texte généré.
<Desc/Clms Page number 5>
Ainsi, dans l'exemple précédent, tous les textes générés ont une même structure comprenant un syntagme nominal suivi d'un syntagme verbal et finissant par un syntagme adjectival.
Selon un deuxième mode de génération, on remplace un premier signe d'un texte d'origine par un deuxième signe dont le champ sémantique est associé à ce premier signe. Par exemple, si on considère que les signes "étinceler" ou "scintiller" font partie du champ lexical du signe "briller" en tant que synonymes, conformément au deuxième mode de génération, "le ciel brille comme des diamants" peut être transformé en "le soleil scintille comme un diamant" ou en "le soleil étincelle comme un diamant". Ainsi, deux nouveaux textes sont générés à partir d'un premier texte.
Ce deuxième mode de génération prend en compte les rapports syntaxiques et sémantiques entre les différents signes. En effet, les règles sémantiques sont utilisées pour remplacer un premier signe par un deuxième signe appartenant à un même champ sémantique tandis que les règles syntaxiques s'appliquent pour effectuer un tel développement. Ainsi, dans l'exemple précédent, le verbe briller est remplacé par le verbe scintiller à la personne et au temps requis.
Ce mode de génération présente aussi l'inconvénient de générer un nombre de textes limité au nombre de combinaisons possibles de termes. En outre, la structure du texte est fixée par le texte d'origine.
Selon un troisième mode de génération, décrit cidessous à l'aide des figures la, lb et le, on utilise des structures grammaticales prédéterminées propres à certains signes pour générer un texte, la structure grammaticale d'un signe étant déterminée par les fonctions grammaticales (sujet verbe, complément) nécessaires à l'utilisation de ce signe.
Dans cet exemple, la structure sujet 1 verbe complément d'objet direct, nécessaire au verbe aimer dans la langue française, est utilisée en remplaçant les indications fonctionnelles (sujet, complément, ...) par des mots. Un texte
<Desc/Clms Page number 6>
est ainsi généré lorsque tous ces remplacements sont effectués.
Sur la figure la est représentée une structure 10 grammaticale comprenant un syntagme nominal 12 " Agent", sujet du verbe "aimer" compris dans un syntagme verbal 14, ce dernier ayant un syntagme nominal 16 "objet" comme complément d'objet.
Sur la figure lb est représenté un développement du syntagme nominal 16 "objet" en un signe, c'est-à-dire un mot dans cet exemple. A cet effet, le syntagme 16 nominal "objet" est aussi développé au moyen d'une structure grammaticale propre à un substantif 18 relatif au champ sémantique "homme". Cette structure comprend deux syntagmes nominaux 20 et 22 relatifs, respectivement, à des champs sémantiques "nom" et "partie d'un corps".
Il apparaît qu'une analyse sémantique du verbe aimer, en langue française, a permis de déterminer préalablement qu'un signe du champ sémantique "homme" pouvait être un complément du verbe aimer. De même, une telle analyse révèle qu'un syntagme nominal du type "le visage de Pierre" indiquant un élément du corps d'une personne, telle que "le bras de Pierre", pouvait être complément du verbe aimer comme représenté sur la figure le.
Cette troisième méthode de génération présente à nouveau l'inconvénient de ne pas permettre à son utilisateur de personnaliser le texte généré, par exemple, en imposant le choix d'un vocabulaire limité. De façon corollaire, le nombre de textes pouvant être générés reste limité en fonction des structures grammaticales prédéterminées.
Finalement, les méthodes de génération décrites cidessous présentent l'inconvénient de nécessiter un accroissement des moyens de mémorisation requis pour leur fonctionnement lorsqu'on désire augmenter le nombre de textes pouvant être générés par ces méthodes. En effet, ces méthodes étant basées sur des combinaisons, seul un accroissement des
<Desc/Clms Page number 7>
moyens de mémorisation, augmentant le nombre de combinaisons possibles, accroît le nombre de textes pouvant être générés.
La présente invention résout le problème du manque d'originalité des textes générés de façon automatique en permettant à un utilisateur de commander au générateur l'utilisation d'un style d'écriture donné, ce style étant défini, par exemple, par l'utilisation d'un vocabulaire donné et/ou d'une présentation particulière de texte généré.
Cette invention résulte de la constatation que l'on peut coder des contraintes d'écriture, dénommées contraintes rhétoriques, permettant de définir un style d'écriture.
Ainsi l'invention concerne un procédé de codage automatique de textes caractérisé en ce qu'on code des données, de façon à associer des groupes, ou classes, de signes à une donnée, et des contraintes rhétoriques, de façon à restreindre le nombre de classes associées à ces données et à déterminer une présentation écrite des données ou des signes associés.
Un procédé conforme à l'invention permet ainsi à un utilisateur de personnaliser le fonctionnement d'un générateur de texte en imposant des contraintes rhétoriques propres à ce générateur. Par exemple, un tel utilisateur peut contraindre le générateur à n'utiliser que des catégories de signes données correspondant, par exemple, à un langage, tel que familier ou populaire, à un domaine lexical, tel que juridique, à une langue et/ou à un champ sémantique.
En outre, le fonctionnement du générateur est aussi personnalisé par les contraintes rhétoriques imposant une présentation du texte choisie par l'utilisateur.
Par ailleurs, le procédé conforme à l'invention permet de générer des textes originaux et/ou de nouveaux textes sans requérir une augmentation des moyens de mémorisation d'un générateur de texte. En effet, l'originalité d'un texte est obtenue en limitant le nombre de données accessibles au générateur et/ou en définissant une
<Desc/Clms Page number 8>
présentation de ce texte, de nouveaux textes étant générés par simple modification de ces limitations.
Dans une réalisation, une classe de signes étant identifiée par une clef de classe, on code une clef de classe dans une donnée de façon à associer cette classe à cette donnée.
Dans ce cas, selon une réalisation, on associe à une première classe la clef d'une deuxième classe, la deuxième classe étant ainsi associée à toute donnée associée à la première classe.
Selon un mode de réalisation, on limite le nombre de classes associées à une donnée en codant dans cette donnée un descripteur contextuel imposant ou excluant des classes associées à cette donnée.
Dans une réalisation, on attribue à une donnée un descripteur contextuel neutre tel que des classes sont imposées ou exclues par rapport à une première donnée au moyen du descripteur contextuel d'une deuxième donnée.
Dans une réalisation, à l'intérieur d'une classe, on regroupe des signes en sous-classes identifiées par une clef de classe propre.
Selon une réalisation, on regroupe dans une classe des signes relatifs à un même champ sémantique, à un même domaine lexical, à un même langage et/ou à une même langue.
Dans une réalisation, un ordre étant attribué aux données, on détermine la présentation écrite d'une donnée en codant sa position par rapport aux autres données suivant cet ordre.
Selon une réalisation, on attribue un degré de mobilité à une donnée, l'ordre attribué à cette donnée étant variable en fonction de ce degré de mobilité.
Dans une réalisation, on code la longueur du texte formé par les signes.
Selon une réalisation, on code des renvois à la ligne, des espaces entre données et/ou des éléments de ponctuation tels que des guillemets.
<Desc/Clms Page number 9>
L'invention concerne aussi un procédé de génération automatique de texte dans lequel on utilise des données codées suivant un procédé de codage tel que précédemment décrit.
Dans une réalisation, on génère un texte en remplaçant une donnée par un (ou plusieurs) signe(s) associé(s) à cette donnée.
Selon une réalisation faisant appel à des données codées comprenant un descripteur contextuel imposant ou excluant des classes associées à cette donnée, on modifie le descripteur contextuel attribué à une donnée en cours de génération de texte.
Dans une réalisation, on attribue à une donnée un même signe au cours de la génération de texte.
Dans une réalisation, on ne représente pas un (ou des) signe(s) remplaçant une donnée.
Dans une réalisation, on génère au moins deux fois un (ou des) signe(s) associé(s) à une même donnée.
L'invention concerne aussi un produit programme d'ordinateur comprenant des instructions de code de programme pour l'exécution d'un procédé selon l'un quelconque des procédés précédemment définis lorsque ce programme est exécuté sur un ordinateur. Il convient de souligner qu'un produit programme d'ordinateur comprend tout support physique du logiciel, tel qu'un disque ou une disquette, ainsi qu'un support du signal, par exemple optique ou électronique.
L'invention concerne également un dispositif ou un terminal de génération automatique de texte caractérisé en ce qu'il comprend des moyens pour générer un texte à partir de données codées selon le procédé défini ci-dessus. Un tel dispositif peut, par exemple, comprendre un serveur relié à plusieurs terminaux à partir desquels il est possible de coder des données conformément au procédé défini ci-dessus, ces données codées étant transmises au serveur de façon à ce que ce dernier génère un texte conformément au procédé de génération défini ci-dessus.
<Desc/Clms Page number 10>
L'invention concerne aussi un serveur de génération de texte caractérisé en ce qu'il comprend des moyens pour générer un texte à partir de données codées selon le procédé de génération défini ci-dessus.
L'invention se rapporte également à un terminal de génération de texte, caractérisé en ce qu'il comprend des moyens pour générer un texte à partir de données codées selon le procédé de codage défini ci-dessus.
L'invention se rapporte également à une application du procédé de génération de texte défini ci-dessus à la réalisation d'un dispositif, d'un terminal et/ou d'un serveur de génération de texte.
D'autres caractéristiques et avantages de l'invention apparaîtront avec la description effectuée ci-dessous à titre descriptif et non limitatif en se référant aux figures suivantes :
Les figures la, lb et le, déjà décrites, sont des schémas d'un procédé de génération de texte connu, les figures 2 et 3 représentent des opérations effectuées lors de l'utilisation d'un procédé de génération de texte conforme à l'invention.
Conformément à l'invention, la réalisation de l'invention décrite ci-dessous permet de générer, à partir d'une suite de données, des textes en diverses langues. Dans cette réalisation, le procédé génère des textes écrits en toute langue utilisant des lettres pour former des signes, ces signes étant écrits suivant un même ordre de lecture allant de la gauche vers la droite de leur support d'écriture. Par exemple, de telles langues sont l'allemand, l'anglais, l'espagnol ou le français.
La génération d'un texte écrit en une ou plusieurs de ces langues utilise, comme représenté sur la figure 2, le développement d'une suite [1] [2] ... [n] de données [i] en un texte 30, comprenant une suite de signes écrits conformément à une grammaire d'une langue choisie de génération, tel que
<Desc/Clms Page number 11>
"Es regnet heute", "it is raining today", "hoy llueve" ou "aujourd'hui il pleut".
A cet effet, ce développement utilise des bases de données Bj, propres à chaque langue j, associant un champ sémantique à un groupe de signes propres à la langue j . Par exemple, en considérant le champ sémantique de l'amour, une base Bus propre à la langue anglaise associe des signes anglais tels que "love", "happiness", "joy" et "felicity" à ce champ sémantique tandis qu'une base BFR dédiée à la langue française associe des signes français tels que "joie" et "bonheur" à ce champ sémantique.
Par la suite, on considère que la langue française est utilisée pour générer le texte 30 à partir de la suite [1] [2] ... [n] de données, un tel choix étant codé par l'utilisateur du générateur de texte comme décrit ultérieurement. Ainsi, la base BFR est seule requise pour transformer une série de données [1] [2]... [5] en un texte écrit en français.
Une telle transformation est dénommée développement puisqu'elle utilise un développement de chaque donnée [i] en un ou plusieurs signes français destinés à former le texte 30. A cet effet, un ordre de développement, représenté par l'axe 32, est suivi par le générateur de texte pour développer successivement chaque donnée. Dans cet exemple, l'ordre de développement de chaque donnée [i] correspond à l'ordre d'écriture de ces données.
Conformément à l'invention, le développement de la donnée [1], par exemple, utilise le codage d'une langue, d'un champ sémantique et de contraintes syntaxiques associés à cette donnée. Plus précisément, à partir du codage de la langue et du champ sémantique, le générateur 34 peut sélectionner un signe de la base BFR appartenant au champ sémantique codé par cette donnée [1]. A cet effet, on utilise dans le codage de la donnée [1] une clef de classe et un descripteur contextuel expliqués en détail ci-dessous.
<Desc/Clms Page number 12>
Une clef de classe est un chiffre, un symbole ou un signe, tel que "amoureux", qui permet d'identifier dans une base Bj, propre à une langue j, les ensembles ou classes de signes considérés par l'utilisateur du générateur comme appartenant au champ sémantique correspondant à cette clef de classe. Par exemple, en considérant que le sens des signes "absolu", "attentif", "conscient", "humain" et "lumineux" appartiennent au champ sémantique du signe "amoureux", la classe 'amoureux' comporte ces signes "amoureux", "absolu", "attentif", "conscient", "humain" et "lumineux".
Dans ce qui suit, de façon à distinguer une clef de classe d'un signe, une clef de classe est codée au moyen de guillemets " tandis qu'un signe est codé au moyen de doubles guillements "". De plus, par la suite, toute référence à une classe 1 s'effectue au moyen de sa clef de classe '1'. En d'autres termes, on dénommera chaque classe par sa clef de classe.
Le raisonnement appliqué pour définir la classe 'amoureux' peut être effectué pour chacun des signes "absolu", "attentif", "conscient", "humain" et "lumineux". On crée ainsi des classes 'absolu', 'attentif', 'conscient', 'humain', 'lumineux', chacune de ces classes comprenant des signes considérés comme sémantiquement équivalents par l'utilisateur du générateur de texte.
De façon à augmenter la diversité des textes créés par le générateur, on introduit dans certaines classes les clefs d'autres classes. Dans cet exemple, la clef de classe 'bonheur' est ainsi intégrée dans la classe 'amoureux'.
Dès lors, le développement d'une donnée codant pour la clef de classe 'amoureux' peut aboutir, lors d'un premier développement, à la sélection d'une deuxième classe 'bonheur' ou à la sélection d'un des signes "absolu", "attentif", "conscient", "humain" et "lumineux" de la classe 'amoureux'.
De fait, il apparaît à ce stade du développement d'une donnée qu'elle peut être de différentes natures telles qu'une clef de classe ou un signe. De façon générale, le
<Desc/Clms Page number 13>
générateur 34 utilise trois types de données codées à l'aide de crochets [] : - Un premier type de donnée est du type classe ou clef de classe, par exemple ['amoureux'], et fait appel à une clef 'amoureux' de classe. Une telle donnée, dite non-finie, est développée en une deuxième donnée comprise dans la classe référencée par cette donnée non-finie. Comme précédemment mentionné, cette deuxième donnée peut être une autre donnée classe ou une donnée correspondant aux deux types décrits cidessous.
Un deuxième type de donnée est du type intermédiaire. Elle est codée sous une forme telle que "O)passionnlé ée és ées", décrite en détail ultérieurement, qui comprend le radical d'un signe ("passionn") et différentes déclinaisons ("é ée és ées") possibles pour ce radical.
Pour obtenir une telle donnée intermédiaire, on remplace une donnée non-finie par une donnée intermédiaire, la sélection de cette donnée intermédiaire s'effectuant au moyen du champ sémantique et de la langue codés par la donnée non-finie. En effet, outre des clefs de classes ou des signes, une classe peut comprendre des données intermédiaires. De plus, les contraintes syntaxiques codées par la donnée non-finie remplacée sont transmises à cette donnée intermédiaire pour générer un texte comme décrit cidessous.
Il convient de signaler qu'une donnée intermédiaire peut aussi être directement codée par l'utilisateur du générateur 34 comme une donnée [i] à développer.
- Selon un troisième niveau, la donnée ne nécessite plus de développement pour être insérée dans un texte. Par exemple, elle a la forme "passionné". Une telle donnée est dite finie et est obtenue, comme décrit ultérieurement en détail, en combinant un radical avec une terminaison d'une donnée intermédiaire, une telle combinaison respectant les
<Desc/Clms Page number 14>
contraintes syntaxiques codées par cette donnée intermédiaire.
Sur la figure 2, le développement de la donnée [1], c'est-à-dire la transformation de cette donnée codée en un signe, utilise une clef 201, comprise dans la donnée [1], pour déterminer quelles données [1.1] [1.2] ... [1.5], associées dans la base BFR à cette classe 201, peuvent remplacer cette donnée [1]. Puis, après avoir choisi une de ces données [1.1] [1.2] ... [1.5] comme décrit ultérieurement, on développe la donnée [1] en remplaçant cette dernière par la donnée choisie, dans l'exemple la donnée [1.1].
Cette nouvelle donnée est disposée suivant le même axe 32 de développement que la donnée [1] de telle sorte que, à ce stade de la génération, le texte généré comprend la suite de données [1.1] [2] ... [5] suivant cet ordre.
A ce stade du développement, on considère que la donnée [1. 1] est une clef de classe. Dès lors, une nouvelle clef 201.1, propre à la donnée [1.1], est utilisée pour développer cette donnée [1.1]. Toutefois, cette situation diffère de la situation précédente en ce que la donnée [1.1] doit être développée en une ou plusieurs données finies comprises dans la sémantique de la donnée [1. 1] et dans la sémantique de la donnée [1] à l'origine du développement. En d'autres termes, la clef 201.1 codée par la donnée [1.1] doit être modifiée de façon à comprendre la clef 201 dont elle est issue. Une telle modification est décrite ultérieurement.
A l'aide de cette clef 201.1, des données [1.1.1] [1. 1.2] ... [1.1.5] sont choisies dans la base BFR pour remplacer la donnée [1.1]. La donnée [1.1.1] étant choisie pour effectuer ce remplacement, le texte généré à ce stade du développement se présente sous la forme [1.1.1] [2] [3]... [5].
L'utilisation des clefs 201 et 201.1 permet de développer la donnée [1] en données ultérieures [1.1] puis [1.1.1] dans un premier temps, puis de continuer ce développement jusqu'à ce que le développement de la donnée
<Desc/Clms Page number 15>
[1] aboutisse à une donnée finie, c'est-à-dire à un signe tel que "le ciel" prêt à être inséré dans le texte.
Pour obtenir un tel résultat, le générateur de texte développe une donnée classe en une donnée intermédiaire, cette dernière étant développée ultérieurement en une donnée finie. Par exemple, en intégrant dans la classe [bonheur] précédemment utilisée les données intermédiaires "1)affecti#f ve fs ves", "0)passionn#é ée és ées", "0)sexue#1 11e ls lles", "0)tendr#e es es" et "0)vivan#t te ts tes", le générateur de texte peut remplacer la donnée classe [bonheur] par une de ces données intermédiaires. Dans ce cas, la suite de données "il est [amoureux] Il génère, par exemple, "il est [bonheur] ", puis "il est [0)passionnée ée és ées]", et finalement "il est passionné", cette dernière étape étant détaillée ultérieurement.
Les différentes opérations effectuées dans le développement d'une donnée [i] sont résumées sur la figure 3 qui représente un générateur 40 de texte conforme à l'invention. Ce développement débute lorsque le générateur de texte 40 détecte une ou plusieurs données à développer. Cette opération, représentée par un bloc 42, est détaillée ultérieurement.
Lorsque ces différentes données sont détectées, le générateur détermine (bloc 44) la langue devant être utilisée pour développer ces données ainsi que d'autres paramètres décrits ultérieurement, permettant, par exemple, de rattacher le texte généré à un texte déjà généré.
Par la suite, les champs sémantiques, ou classes, associés à chaque donnée sont déterminés (bloc 46). Puis, chaque donnée [i] est développée individuellement en fonction de son ordre d'écriture au moyen d'une boucle d'opérations 47. Pour cela, la classe de la donnée développée est définie (bloc 48) et une sélection parmi les différentes données de cette classe est effectuée (bloc 50).
Les opérations précédemment décrites (blocs 44,46 et 48) sont effectuées pour toute donnée, non-finie,
<Desc/Clms Page number 16>
intermédiaire ou finie. Toutefois, par la suite, les opérations effectuées dans la boucle 47 diffèrent en fonction de la nature de la donnée développée.
- Lorsque la donnée développée est une donnée nonfinie, le générateur de texte effectue des sélections (blocs 50 et 56) consécutives de données dans les classes requises jusqu'à aboutir à une donnée intermédiaire. Un tel aboutissement est contrôlé après chaque sélection.
Lorsque la donnée développée est une donnée intermédiaire, le générateur de texte effectue un lissage de la donnée (bloc 52), c'est-à-dire qu'il détermine la forme du signe choisi respectant les contraintes syntaxiques codées par la donnée. En d'autres termes, il définit la terminaison qui, associée au radical de la donnée intermédiaire, génère un signe respectant des contraintes syntaxiques codées dans la donnée non finie. Par la suite, il associe ce radical à la terminaison en effectuant le développement de la donnée (bloc 54).
Lorsque la donnée développée est une donnée finie, le générateur délivre ce signe comme une partie du texte en développement.
Un test (bloc 58) est effectué de façon régulière pour déterminer le niveau de développement de la donnée à chaque étape. Pour cela, en fonction du niveau de développement de chaque donnée (donnée non-finie, intermédiaire ou finie), le codage de cette dernière est effectué de différentes façons.
Dans cette réalisation, une donnée non-finie a généralement la structure suivante : [descripteur contextuel#clefclasse#descripteur syntaxique] où ces différents éléments ont la fonction suivante . les éléments de séparation [] permettent au générateur de texte de détecter une donnée et d'attribuer
<Desc/Clms Page number 17>
l'ensemble des codages compris entre ces éléments à cette unique donnée. L'élément délimite, à l'intérieur de chaque donnée, des éléments "descripteur contextuel" , "clefciasse" et "descripteur syntaxique" décrits ci-dessous.
- l'élément "descripteur contextuel" limite le développement d'une donnée dans un champ sémantique déterminé, ce champ sémantique pouvant être défini par l'utilisateur du générateur de texte comme décrit dans l'exemple ci-dessous où l'on considère trois classes comprenant des données finies :
Une première classe A, caractérisée par une clef "promenade", et comprenant les données suivantes : a - "Une jeune fille se promène dans la rue ensoleillée." b - "Un jeune homme passe." c - "La boulangère apporte son pain." d - "Un enfant sort de l'école."
Ces données a, b, c et d correspondent à des données finies, c'est-à-dire entièrement développées. Ces données a, b, c et d de la classe A vont être combinées à des données appartenant à deux classes, définies par leur clefs respectives 'paysage' et 'temps ensoleillé', comprenant respectivement les données suivantes:
B. Données de la classe paysage : a - "La ville est belle." b - "La lumière est éclatante." c - "Les passants ont l'air heureux." d - "La lumière est belle." e - "La transparence de l'air est tamisée par les fines gouttes d'eau de la pluie."
C. Données de la classe temps ensoleillé : a - "Il fait très beau dans les champs." b - "La lumière est éblouissante."
<Desc/Clms Page number 18>
c - "Le soleil coupe au couteau de grandes tranches d'ombre et de lumière." d - "Le soleil plaque l'ombre sur les trottoirs."
Dans cet exemple, on génère des textes par de simples combinaisons entre les données a, b, c et d de chaque classe A, B et C. Pour cela, on transmet au générateur une suite de données telle que "[promenade] [paysage] [temps ensoleillé]"ou "[temps ensoleillé] [promenade] [paysage]".
On remarque que dans ces données, seule la clef de classe est précisée. De fait, les éléments "descripteur contextuel" et "descripteur syntaxique" ne sont pas obligatoires. De fait, le descripteur contextuel permet à l'utilisateur du générateur de déterminer un contexte pour l'ensemble des textes, ou pour des passages choisis de ce texte, définis par un descripteur contextuel propre à ce contexte.
Aucun descripteur contextuel n'étant précisé, ces séries de données aboutissent, après le développement de chaque donnée non-finie par le générateur, à des juxtapositions aléatoires de données finies sélectionnées dans chaque classe. Par exemple, le texte "Une jeune fille se promène dans la rue ensoleillée. La transparence de l'air est tamisée par les fines gouttes d'eau de la pluie. Il fait très beau dans les champs. " est généré à partir de la suite "[promenade] [paysage] [temps ensoleillé]".
Cependant, il peut sembler incohérent de juxtaposer des données des classes A et C faisant référence à un temps ensoleillé avec une donnée de la classe B faisant référence à un temps pluvieux. De même, la combinaison entre une donnée faisant référence à un environnement urbain ("Une jeune fille se promène dans la rue ensoleillée") peut contraster avec une donnée faisant référence à la campagne ("Il fait très beau dans les champs").
Pour imposer un champ sémantique dans la création du texte, telle que "temps ensoleillé dans une ville", on
<Desc/Clms Page number 19>
utilise l'élément descripteur contextuel. Cet élément permet de regrouper les données de chaque classe en sous-classes, chaque sous-classe étant relative à un champ sémantique. Dans l'exemple "temps ensoleillé dans une ville", on crée un tel descripteur contextuel en attribuant à chaque donnée de la classe "paysage" une valeur de 1 à un premier chiffre de leur descripteur contextuel lorsque cette donnée fait référence à un temps ensoleillé. Inversement, ce premier chiffre prend une valeur de 2 lorsque la donnée fait référence à un temps pluvieux. On crée ainsi les données de la classe "paysage" suivantes:
B. Paysage : a-1 "La ville est belle." b-0 "La lumière est éclatante." c-1 "Les passants ont l'air heureux." d-0 "La lumière est belle." e-2 "La transparence de l'air est tamisée par les fines gouttes d'eau de la pluie." une valeur 0 étant attribuée à toute donnée neutre, c'est-à-dire pouvant correspondre ou ne pas correspondre à un temps ensoleillé. La classe "paysage" est alors divisée en trois sous-classes comprenant, respectivement, des données a et c relatives à un temps ensoleillé, e relative à un temps pluvieux et b et d relatives à des temps pluvieux ou ensoleillés.
Par la suite, on détermine des sous-classes, dans la classe "paysage", distinguant les données relatives à la ville des données qui ne se réfèrent pas expressément à un environnement urbain. Pour ce faire, on utilise un deuxième chiffre du descripteur contextuel auquel on attribue une valeur 1 lorsque la donnée associée est relative à la ville ou une valeur 2 lorsque la donnée est relative à un environnement champêtre. Dans ce cas, les données de la classe "paysage" deviennent : a-11 "la ville est belle." b-00 "la lumière est éclatante."
<Desc/Clms Page number 20>
c-10 "les passants ont l'air heureux." d-00 "la lumière est belle." e-00 "la transparence de l'air est tamisée par les fines gouttes d'eau de la pluie."
La même opération de codage est effectuée avec les classes "promenades" et "temps ensoleillé". Pour cette dernière classe, il résulte les données suivantes:
C. Données de la classe "temps ensoleillé" : a - 12 "Il fait très beau dans les champs." b - 10 "La lumière est éblouissante." c - 10 "Le soleil coupe au couteau de grandes tranches d'ombre et de lumière." d - 11 "Le soleil plaque l'ombre sur les trottoirs."
Dès lors, l'utilisateur du générateur de texte peut imposer, dans le développement des données, un champ sémantique tel qu' "urbain" ou "champêtre" et "temps ensoleillé" ou "temps pluvieux" pour lesquels le descripteur contextuel a été défini.
Le descripteur contextuel est ainsi utilisé comme un filtre pour sélectionner les données compatibles avec un champ sémantique imposé à la génération d'un texte. Par exemple, en voulant générer un texte se déroulant dans une ville sous un temps ensoleillé, il suffit de fixer le descripteur contextuel des données fournies au générateur à ce champ sémantique. Ainsi, la suite de données "[11#promenade] [111 paysage] [111 temps ensoleillé]", où le descripteur contextuel 11 requiert une sémantique de "temps ensoleillé dans une ville", est développée en un texte sémantiquement cohérent tel que : "Une jeune fille se promène dans la rue ensoleillée. La ville est belle. Le soleil plaque l'ombre sur les trottoirs"
Le moteur de génération peut aussi déterminer aléatoirement un descripteur contextuel pour un texte, par
<Desc/Clms Page number 21>
exemple lorsque l'utilisateur du générateur ne veut pas déterminer un champ sémantique dans un domaine, tel que la situation météorologique. Dans ce cas, le descripteur contextuel des données est codé par une valeur neutre 00 à laquelle le générateur attribue, de façon aléatoire, une valeur. Ainsi, en considérant la suite de données "les personnes sont très animées, [00 1 paysage] , [00-paysage] le moteur de génération détermine lors du développement de la donnée [00 1 paysage] un descripteur contextuel, par exemple un contexte "urbain pluvieux" correspondant au descripteur contextuel 12. Par la suite, la deuxième donnée [00 1 paysage] est aussi développée en accord avec ce contexte. Le texte traité par le générateur est alors "les personnes sont très animées, [12 1 paysage] , [12#paysage]".
Il est possible de combiner les modes de développement précédemment indiqués. Ainsi, en considérant la suite de données "les rues sont très animées, [00 1 paysage] , [001 paysage] [001 regard amoureux] ", le concepteur du texte impose la sémantique utilisée pour le type de paysage choisi à un type de regard.
D'une façon générale, il est nécessaire de pouvoir définir si des classes Co, Ci , ..., CN sont dépendantes ou non du descripteur contextuel d'une autre classe Co, Ci , ..., CN donnée. Pour ce faire, on utilise un tableau tel que le tableau ci-dessous.
Figure img00210001
<tb>
<tb>
C1 <SEP> C2 <SEP> ... <SEP> CN
<tb> C1 <SEP> 0 <SEP> 0 <SEP> 0 <SEP> ... <SEP> 0
<tb> C2 <SEP> 0 <SEP> 0 <SEP> 0 <SEP> 1
<tb> CN <SEP> 0 <SEP> 1... <SEP> 0
<tb>
Lorsqu'aucune entrée du tableau ne relie une clase Ci à une autre classe Cj, cette classe Ci est indépendante du descripteur contextuel propre à cette classe Cj. Inversement, si une entrée du tableau relie une classe Ci à une classe Cj,
<Desc/Clms Page number 22>
ces classes ont des influences réciproques. Plus précisément, le générateur de texte peut déterminer qu'une classe "bonheur" Ci est compatible avec la classe "enfance" C2, mais incompatible avec la classe "tristesse" CN, cette dernière étant compatible avec la classe "enfant" C2.
De façon à développer les descripteurs contextuels au fur et à mesure du développement du texte, le descripteur contextuel peut se développer au cours de la génération de texte. Par exemple, en considérant que "0" est une valeur neutre suivant laquelle un descripteur n'est plus concerné par une sémantique, on effectue le développement d'une classe telle que [bonheur] en lui attribuant la valeur 1 du premier chiffre d'un descripteur comprenant trois valeurs. Ainsi, toute donnée présentant un descripteur contextuel du type "100" pourra être développée par une donnée de la classe [bonheur] .
Si par la suite ce descripteur est combiné avec une autre classe telle que " [enfant]", à la valeur 1 du deuxième chiffre du descripteur, toute classe dont le descripteur indique "110" pourra fournir une donnée dont la sémantique correspond au bonheur et à l'enfant. En d'autres termes, une classe associée au bonheur et aux enfants est caractérisée par un descripteur "110" égal à la combinaison des deux descripteurs précédemment utilisés.
Inversement, une classe correspondant à une sémantique incompatible avec la sémantique du terme bonheur sera définie par un descripteur incompatible avec le descripteur de la classe bonheur. Par exemple, la classe "[tristesse]" a un descripteur contextuel "200" incompatible avec le descripteur "100". Dans ce cas, il est impossible de créer une classe de bonheur et de tristesse, sans modifier le descripteur associé à une des classes "[bonheur]" ou "[tristesse]".
Il apparaît ainsi que, dans ce cas, le descripteur contextuel se précise au fur et à mesure que le texte est généré jusqu'à atteindre une valeur limite à partir de
<Desc/Clms Page number 23>
laquelle ce descripteur contextuel ne peut plus être modifié. Par exemple, tel est le cas lorsque l'ensemble des chiffres codant le descripteur sont fixés.
Les informations contenues dans chaque donnée doivent aussi préciser la relation existant entre ces données. Ainsi, un verbe doit être associé à son sujet de façon à se décliner en accord avec la personne de ce dernier, tandis qu'un adjectif épithète doit être associé au mot auquel il se rapporte pour effectuer l'accord de personne et de nombre. Pour prendre en compte ces relations, chaque donnée comprend un descripteur qui code les contraintes syntaxiques devant être respectées par le signe en cours de génération.
Pour cela, le générateur de textes considère les données suivant différents types de fonction: - Une fonction émettrice d'information requise par des données du texte, par exemple l'information concernant le genre et/ou le nombre auxquels doivent s'accorder un adjectif ou se décliner un verbe. D'une façon générale, tout substantif est un émetteur d'information.
- Une fonction réceptrice d'information, par exemple lorsque la donnée est un adjectif ou un verbe. Une telle fonction est indiqué par un marqueur "=" intégré dans le codage de la donnée, comme décrit ci-dessous en considérant comme exemple la génération du texte "l'homme est très souvent une louve agressive pour les hommes ainsi que pour les femmes". Dans cet exemple, la chaîne de données à la base d'un tel texte peut se coder de la façon suivante:
Tableau 1
Figure img00230001
<tb>
<tb> Donnée <SEP> Sous <SEP> cat. <SEP> Genre <SEP> Nombre <SEP> Code <SEP> Vecteur
<tb> [1~m~homme] <SEP> 10
<tb> [v~être <SEP> 0100000] <SEP> V~
<tb> [69#] <SEP> #
<tb> [69#] <SEP> # <SEP> #
<tb> [8~m~louve] <SEP> m <SEP> Féminin <SEP> singulier <SEP> 20 <SEP> 10,20
<tb> [=l~a~agressif] <SEP> a~
<tb> [64#]
<tb> [51~m~homme] <SEP> m~ <SEP> masculin <SEP> pluriel <SEP> 11 <SEP> 10,20,11
<tb>
<Desc/Clms Page number 24>
Figure img00240001
<tb>
<tb> [41#] <SEP> #
<tb> [71#] <SEP> #
<tb> [64#] <SEP> #
<tb> [51~m~femme) <SEP> m~ <SEP> Féminin <SEP> pluriel <SEP> 21 <SEP> 10,20,11,21
<tb>
Dans ce tableau 1, une colonne "donnée" indique une donnée générant un signe du texte. Ainsi, la première donnée "[l~m~homme]" génère "l'homme",la deuxième donnée "[0100000~v~être]" génère "est", "[8~m~louve]" génère "une louve" et "[=l~a~agressif]" génère "agressive" (le codage de chaque donnée est expliqué en détail ultérieurement).
Des colonnes "genre" et "nombre" indiquent le genre, masculin ou féminin, et le nombre, singulier ou pluriel, de chaque substantif généré. Ces informations sont mémorisées par un code à deux chiffres tel que le premier chiffre est égal à 1 (2) lorsque le substantif est masculin (féminin) et tel que le deuxième chiffre est égal à 0 (1) lorsque le substantif est au singulier (pluriel).
Un vecteur transmetteur d'information (colonne "Vecteur") mémorise ces codes au fur et à mesure que des éléments émetteurs d'information sont considérés par le générateur de texte. Lorsque le générateur détecte un élément récepteur d'information, tel qu'un adjectif, à l'aide du marqueur "= ", un code (singulier ou pluriel, masculin ou féminin) est transmis à ce récepteur. A cet effet, le code (genre/nombre) que le vecteur doit considérer, parmi tous les codes mémorisés, est indiqué en considérant le nombre " X " indiqué dans le codage du récepteur d'information " = X " par l'opération suivante : nombre d'informations sur le vecteur - X + 1.
Ainsi, lorsque l'adjectif issu de la donnée [=1~ a~agressif] est généré, le générateur de texte attribuera à ce signe la déclinaison propre à un accord avec le substantif identifié par le vecteur de position 2-1+1=2, c'est-à-dire la deuxième donnée émettrice d'information précédant la donnée réceptrice, et qui correspond à la donnée ([18~m~louvel).
Suivant un autre exemple, le texte "la présence du prince sur l'astéroïde n'a pas été expliquée" peut être
<Desc/Clms Page number 25>
généré en considérant la suite de données "[1~m~présence] [7~m~prince] [58#] [l~m~astéroïde] [3100000~v~avoir] [=x~a~été] [=3 a expliqué]" comme décrit ci-dessous à l'aide du tableau 2.
Tableau 2
Figure img00250001
<tb>
<tb> Donnée <SEP> Sous <SEP> cat <SEP> Genre <SEP> Nombre <SEP> Code <SEP> Vecteur
<tb> t.
<tb>
[1~m~présence] <SEP> m~ <SEP> Féminin <SEP> singulier <SEP> 20 <SEP> 20
<tb> [7~m~prince] <SEP> m~ <SEP> Masculin <SEP> singulier <SEP> 10 <SEP> 20,10
<tb> [58#] <SEP> #
<tb> [1 <SEP> m <SEP> astéroïde] <SEP> m~ <SEP> Masculin <SEP> singulier <SEP> 10 <SEP> 20,10,10
<tb> [v <SEP> avoir <SEP> 3100000]
<tb> [=x <SEP> a <SEP> été] <SEP> a~
<tb> [=3 <SEP> a <SEP> expliqué] <SEP> a~
<tb>
Comme montré à l'aide du tableau 2, lorsque le moteur de génération développe la donnée adjective [=x~a~été], la valeur " x " suivant le signe " = " de cette donnée indique qu'il y a un blocage de l'information, le masculin singulier étant alors adopté par défaut pour accorder cet adjectif.
Lorsque la donnée [=3~a~expliqué] est rencontrée par le générateur de texte, conformément à la règle précédemment mentionnée, le générateur de texte détermine la position du vecteur à considérer (nombre de vecteurs-nombre déterminé par le marqueur +1, c'est-à-dire 3-3+1=1) et accorde l'adjectif issu de cette classe avec le substantif associé à ce vecteur " 20 ", c'est-à-dire le substantif issu de la classe [1~m~présence].
Un codage particulier est utilisé pour les adjectifs placés avant les substantifs. Pour cela, on considère que l'adjectif est associé au substantif dans une même donnée identifiée par exemple à l'aide du marqueur @.
Ainsi, la donnée "le petit prince" peut être obtenue à partir du développement de la donnée {1~a~petit@m~prince].
Le codage d'un syntagme verbal permet à ce dernier de recevoir l'ensemble des informations nécessaires, par exemple, à la conjugaison d'un verbe vis-à-vis de son sujet
<Desc/Clms Page number 26>
et/ou à l'accord d'un participe passé vis-à-vis d'un sujet ou d'un complément. En outre, un tel codage doit déterminer des informations propres au syntagme verbal, telle que la présence d'une négation.
De façon générale, dans cet exemple, une donnée intermédiaire relative à un verbe est codée de la façon suivante: [descripteur de forme#v~avoir Idescripteur syntaxique] où chacun de ces éléments a la (ou les) fonction(s) suivante(s).
- l'élément v- indique que la donnée considérée a une nature verbale tandis que avoir indique le verbe considéré.
- l'élément descripteur syntaxique est le descripteur codant les contraintes syntaxiques associées à cette donnée verbale et définies par l'utilisateur du générateur. Ce descripteur syntaxique comprend huit chiffres ABCDEFGH dont les valeurs indiquent un contexte grammatical pour le verbe à générer. Ainsi, la valeur A détermine la présence d'une négation par rapport au verbe comme indiqué ci-dessous, où les négations utilisées dans le développement d'une donnée sont représentées en fonction de cette valeur de A :
A = 0, pas de négation.
A = 1, négation = "ne... pas" ;
A = 2, négation = "ne... plus" ;
A = 3, négation = "ne... jamais" ;
A = 4, négation = "ne... rien";
A = 5, négation = "ne... que";
A = 6, négation = "ne... personne" ;
A = 7, négation = "ne... guère" ;
Par exemple, la donnée [v~rire#3100000 est développée comme "ne [v~rire#0100000] jamais". Dans un autre exemple, [v~chanter#2100000 est développé comme "ne [chantera 0100000] plus".
<Desc/Clms Page number 27>
Il convient de souligner que le premier terme de la négation est modifié si une élision est nécessaire devant le verbe généré par la donnée verbale. Par exemple, si le verbe "aimer" est considéré, la négation de "il aime" doit s'écrire "il n'aime pas boire". Pour effectuer l'élision de la négation, on utilise l'élément 1 descripteur de formes qui code aussi des contraintes syntaxiques propres au signe choisi pour remplacer la donnée. Ce descripteur de formes définit si le signe en cours de génération requiert l'élision du signe le précédant en codant une valeur de 1 (élision requise) ou de 0 (élision non requise). Ainsi, la valeur 1 du descripteur de forme d'une donnée intermédiaire "l#aim#6". requiert l'élision dans la négation "n'... personne" imposée par la valeur 6 du descripteur syntaxique.
La deuxième fonction codée dans le descripteur syntaxique concerne le temps verbal auquel doit être développée la donnée. A cet effet, on utilise un tableau de correspondances associant une valeur B à un temps verbal. Dans cet exemple, les différents temps verbaux associés à des valeurs B sont le présent (B = 1), l'imparfait (B = 2), le passé simple (B = 3), le futur (B = 4), le conditionnel présent (B = 5), le subjonctif présent (B = 6), l'impératif (B = 7), le participe présent (B = 8), et l'infinitif (B = 9) .
Comme décrit ultérieurement, lorsque la valeur de B est égale à 0, on considère qu'elle est associée au présent (B 1) si un temps verbal n'est pas imposé par le générateur.
Dès lors, le développement d'une donnée verbale en un signe s'effectue en combinant son radical, par exemple "chant" pour le verbe chanter avec une terminaison sélectionnée dans un tableau de conjugaisons des verbes en fonction du type de verbe considéré (radical), du temps requis (valeur de B), du genre et du nombre du sujet. Un tel tableau de verbes est joint dans l'annexe A pour les déclinaisons françaises d'un verbe, ce tableau étant
<Desc/Clms Page number 28>
représenté en cours de formation de telle sorte que certains verbes et/ou paragraphes sont en développement.
Dans un tel tableau, les terminaisons sont considérées suivant les temps correspondant aux valeurs de B (présent de l'indicatif, imparfait de l'indicatif, passé simple, futur, conditionnel présent, infinitif et participe présent), un numéro de paragraphe indiquant le type de conjugaison propre à chaque radical.
Il convient de signaler que le participe passé est codé comme un adjectif, c'est-à-dire qu'il est codé comme un récepteur d'informations permettant de réaliser l'accord de ce participe passé avec, par exemple, le substantif auquel il se rapporte. Ainsi, en considérant la suite de données "[v~être 10130000 Il.] [a~chanté#=x]", la donnée "[v~être#0130000#.]" agit comme transmetteur d'information tandis que la donnée "[a~chanté#=x]" est réceptrice d'information. Le texte généré est alors "ils sont chantés".
Dans un autre exemple, la suite de données "Marie [v~être#0130000#.<1] [a~chanté#=1]" génère "Marie est chantée".
Toutefois, lorsque le verbe auxiliaire est le verbe avoir, un tel accord ne se produit pas. Ainsi, "[v~avoir#0130000#.] [a~chanté#=x]" génère "ils ont chanté".
Finalement, l'impératif d'un verbe est déterminé à partir d'un codage impliquant la troisième personne du singulier (par exemple "chante") ou la deuxième personne du singulier ("viens").
De façon à maintenir la cohérence temporelle d'un texte, par exemple d'un roman, le temps déterminé pour un verbe peut être transmis automatiquement à d'autres verbes lorsque ces derniers codent un temps verbal neutre (B=0).
Ainsi, la suite de données "[v~rire#0130000} et
Figure img00280001

[vleurer I 0000000] et [v~bégayer| 0000000] est développée en "il rit et pleure et bégaie". De même, " [v~rire 1 0230000] ,
Figure img00280002

[vleurerl0000000], [v~bégayer | 0000000] génère "il riait, pleurait et bégayait".
<Desc/Clms Page number 29>
Les valeurs C, D, E, F et G du descripteur syntaxique du verbe sont utilisées pour coder l'utilisation de pronom(s) relatifs au(x) verbe(s) en génération. Pour cela, on distingue deux types d'information transmise par un pronom, à savoir la nature (nombre et genre) du signe auquel se réfère ce pronom et la nature du pronom. De fait, la nature d'un pronom, par exemple le pronom "on", peut se référer à un homme ou à une femme, mais il a une nature propre définie, dans cet exemple, par la troisième personne du masculin.
Pour cela, la troisième valeur C du descripteur syntaxique indique le genre et le nombre d'un éventuel pronom sujet en utilisant les correspondances suivantes :
C = 0, troisième personne du singulier sans pronom sujet écrit. Par exemple, "[v~chanter#0100000]" développe "chante".
- C = 1, première personne du singulier. Ainsi, "[v~ chanter #0110000]" développe "je chante". Cette fonction est modifiée si une élision est requise de telle sorte que [v~aimer#01100000]" développe "j'aime".
- C = 2, deuxième personne du singulier; "[v~chanter #0120000]" développe "tu chantes".
- C = 3, troisième personne du singulier; "[v~chanter 101300000] développe "il chante", "elle chante", ou "on chante".
- C = 4, première personne du pluriel "[v~aimer 101400000]" génère "nous aimons".
- C = 5, deuxième personne du pluriel. "[v~parler 101500000]" génère "vous parlez".
-C 6, troisième personne du pluriel. "[v~réciter 01600000]" génère "ils récitent".
Un tel codage présente deux inconvénients.
Premièrement, lorsque C = 3, on utilise la troisième personne du singulier. Mais cette troisième personne peut se rapporter à un genre masculin "il", féminin "elle" ou neutre "on".
Deuxièmement, l'utilisation d'un transmetteur d'information
<Desc/Clms Page number 30>
tel que précédemment décrit peut être inefficace pour référencer le substantif auquel se réfère chaque pronom si ce pronom est après le verbe, comme par exemple dans la texte "Etait-il seul ?".
Pour cela, on utilise dans cette réalisation, un codage spécifique dans le descripteur syntaxique comprenant les éléments <X ou >X. Plus précisément, "[...#...#<X]" " signifie que le pronom sujet dépend du Xième substantif précédant le verbe, tandis que "[...#...#>X]" signifie que le pronom sujet se rapporte au Xième substantif après le verbe.
Par exemple : " [m~cheval#7] [v~être#0100000] [a~beau #=1] [v~galoper#0130000 #<1]" est développé comme "le cheval est beau, il galope". De même, "[m~jument#7]
Figure img00300001

[v être0100000] [a~beau 1 =1] [v~galoper 10130000 Il <1] développe "la jument est belle, elle galope". Dans un dernier
Figure img00300002

exemple, "[v chanterl0130000>2], dans [m~forêt | 7] , [m~oiseau#57]" développe "chantent, dans la forêt, les oiseaux".
Le sujet peut être composé par une pluralité de substantifs. Dans ce cas, les règles d'accord sont à nouveau considérées au cas par cas. Ainsi, en français, le pluriel composé par deux sujets masculins est un pluriel masculin, le pluriel composé par deux sujets féminins est un pluriel féminin et le pluriel composé par un sujet masculin et un sujet féminin est un pluriel masculin. Ces règles sont prises en considération par un codage effectué à l'aide d'un séparateur ".".
Ce séparateur permet d'indiquer si le sujet est un pluriel masculin ou féminin en fonction de la présence d'un chiffre 1 (masculin) ou 2 (féminin) après ce marqueur. Par
Figure img00300003

exemple, " [m~cheval | 7 et [m~j ument | 7 [v êtreO10000011.2] [a~beau | =1] [v galoper01300001<1.1]" développe "le cheval et la jument sont beaux, ils galopent". De même,
Figure img00300004

"[m jumentl7] et [m-pouliche 17] [v~être 10100000111.2] [a~beau#=1.2] [v~galoper #0130000#<1.2]" développe "la jument et la pouliche sont belles, elles galopent".
<Desc/Clms Page number 31>
Un verbe peut être écrit sans pronom sujet, bien qu'il ait toujours une personne. Par défaut, par exemple lorsque le descripteur syntaxique du verbe est absent, la troisième personne du masculin singulier est appliquée.
Le codage du verbe considère aussi l'utilisation de pronoms indéfinis comme pronom sujet. A cet effet, la septième valeur G du descripteur syntaxique est utilisée de la façon suivante : - G = 0, la fonction pronom sujet indéfini est ignorée.
- G = 1, 2, ...8 ou 9, la fonction pronom sujet indéfini est activée et la fonction pronom sujet, telle que précédemment décrite, est ignorée. Par ailleurs, en fonction de la valeur de G, des pronoms indéfinis prédéterminés sont utilisés. Plus précisément, ces pronoms sont "ce" (ou "c'"en cas d'élision) pour G = 1, "ça" pour G = 2, "on" pour G = 3, "il" pour G = 4, "cela" pour G = 5.
Les valeurs des quatrième D et cinquième E chiffres du descripteur syntaxique déterminent le choix du pronom complément à l'aide d'une corrélation telle qu'indiquée dans le tableau ci-dessous:
DE 01 02 03 04 05 06 07
Pronom me te le nous vous les [a~lui]
DE 10... 19 20 21 22 23 24
Pronom se se en m'en t'en s'en y
Si une élision est requise, on remplace le pronom complément déterminé par un pronom complément correspondant.
Par exemple, "me" devient "m'" et "te" devient "t'".
Finalement, la sixième valeur F du descripteur syntaxique indique l'ordre dans lequel le syntagme verbal va être constitué. Pour cela, on considère que chaque syntagme verbal peut comprendre :
<Desc/Clms Page number 32>
Un pronom sujet, défini par une variable prosuj .
Une première partie de négation, placée avant le verbe, définie comme une variable debneg .
Une deuxième partie de négation, située après le verbe, définie comme une variable finneg .
Un pronom complément prodem .
Un constituant verbal défini comme une variable centre .
Dès lors, l'ordre dans lequel ces différents éléments peuvent être combinés est prédéfini de la façon suivante : - Lorsque le verbe est à l'infinitif (B vaut 9 dans le descripteur syntaxique), l'ordre imposé est debneg&finneg&prodem&centre . Un tel ordre génère des textes tels que "ne pas aimer".
- Lorsque F vaut 6 dans le descripteur syntaxique, on utilise un ordre inversé debneg&prodem&centre&sujet&finneg combiné à l'adjonction du symbole "-" au centre . Des textes tels que n'est-il pas ou sourions-nous sont alors générés.
La description des données intermédiaires de nature verbale effectuée précédemment peut être généralisée à la structure de toute donnée intermédiaire. Ainsi, toute donnée intermédiaire présente généralement la structure suivante: [Descripteur de formel radical 1 terminaisons possibles Idescripteur syntaxique] ces éléments ayant les fonctions suivantes : - L'élément [radical] indique la partie invariable du signe allant être écrit dans le texte généré. Par exemple, la partie [radical] du signe "souris" est [souris] et la partie [radical] de l'adjectif "vif" est [vi] .
- La partie [terminaisons] indique toutes les terminaisons pouvant être juxtaposées au radical associé. Ces terminaisons sont obtenues en considérant toutes les formes possibles du signe défini par son radical. Par exemple, pour
<Desc/Clms Page number 33>
une donnée relative au substantif "animal", le [radical] est [anima] tandis que les déclinaisons possibles sont codées sous la forme [1 ux], la première terminaison 1 formant avec le radical anima le signe singulier "animal" tandis que la deuxième terminaison ux forme avec le radical anima le pluriel "animaux".
Il convient de souligner que, dans certains cas, le radical d'un signe peut être vide. Ainsi, le radical des verbes "avoir" ou "être" ou du substantif "#il" sont vides, leurs terminaisons comprenant leurs déclinaisons respectives telles que "ai", "as", "aurons", "soit" ou "yeux".
Dans le cas d'un verbe, la partie [terminaisons] est plus nombreuse que dans le cas d'un substantif ou d'un adjectif puisqu'elle identifie l'ensemble des déclinaisons possibles de ce verbe. Par exemple, en français, la partie [terminaisons] du verbe "aimer" est la suivante: "e es e ons ez ent ais ais ait ions iez aient ai as a âmes âtes èrent erai eras era erons erez eront erais erais erait erions eriez eraient e e ions iez ent ant er", où ces déclinaisons correspondent à la conjugaison du verbe aimer au présent ("e es e ons ez ent"), à l'imparfait ("ais ais ait ions iez aient"), au passé simple ("ai as a âmes âtes èrent"), au futur ("erai eras era erons erez eront"), au conditionnel ("erais erais erait erions eriez eraient"), au subjonctif ("e e ions iez ent), au participe présent ("ant") et à l'infinitif ("er").
De façon générale, des déclinaisons modèles sont déterminées (cf annexe A) en fonction de verbes modèles.
Chaque verbe se conjugue alors en fonction d'une déclinaison modèle.
- L'élément [Descripteur de forme] varie suivant la nature grammaticale (substantif, verbe, adjectif, ...) du signe sélectionné. Plus précisément, lors du développement d'un substantif, l'élément [Descripteur de forme] comprend les éléments [élision] , [genre] et [marqueur] décrits ci-dessous :
<Desc/Clms Page number 34>
- L'élément [élision] indique si le signe en cours de génération nécessite une élision du signe qui le précède dans le texte. A cet effet, le descripteur [élision] indique une valeur [0] pour indiquer la nécessité d'une élision, ou une valeur [1] pour indiquer qu'une élision est sans objet. Par exemple, le substantif "hérisson" ne requiert pas d'élision, l'élément [élision] d'une donnée intermédiaire relative à un hérisson est codé [0], tandis que pour une donnée relative au substantif "honneur", requérant une élision, son élément [élision] code [1].
L'élément [élision] est utilisé pour des données de natures diverses. Ainsi, le verbe "aimer" nécessite une élision ([1]) tandis que le verbe "chanter" ne nécessite pas d'élision ([0]). En outre, certains verbes nécessitent une élision à un temps donné tandis que l'utilisation d'un autre temps ne nécessite pas d'élision. Par exemple, le verbe "être" à la troisième personne du singulier de l'imparfait requiert une élision (était) tandis que cette même troisième personne du singulier au futur (sera) ne nécessite pas d'élision.
Dans ce cas, on définit les conditions dans lesquelles un tel verbe requiert une élision en considérant sa première lettre. Ainsi, si la première lettre du verbe est "é, e, ê, a, i ou y", une élision est nécessaire.
Par ailleurs, on prend en compte l'éventuelle présence d'un pronom complément ou d'une négation devant un signe pour effectuer l'élision de ce pronom complément ou de cette négation. Par exemple, un verbe nécessitant une élision de son sujet "j'étais" ne requiert plus cette élision lorsqu'un pronom complément ou une négation le suit (je n'étais pas). Ainsi, le codage de l'élision est modifié en fonction de la présence d'une négation ou d'un pronom complément.
- L'élément [genre] indique le genre de la donnée développée au moyen d'une valeur [1] pour un substantif masculin, d'une valeur [2] pour un substantif féminin.
<Desc/Clms Page number 35>
- L'élément [marqueur] est utilisé pour séparer l'élément [élision] de l'élément [genre]. En fonction de la nature du signe en cours de génération, cette séparation est effectuée différemment. Ainsi, on utilise deux [marqueur] , ( et ) respectivement, pour un codage sous la forme [élision] [marqueur] [genre] [marqueur] si le signe généré est un substantif. Par exemple, [1 (2) souris 1 0] indique que le signe en cours de génération ne requiert pas d'élision 1, qu'il s'agit d'un signe féminin (2) dont le radical est souris et qui ne présente pas de déclinaisons.
Lorsque le signe généré est un adjectif, l'élément [marqueur] est codé par un seul marqueur ) sous la forme [élision] [marqueur] [genre] . Ainsi, [1)élégan#t te ts tes] indique que le signe en cours de génération ne requiert pas d'élision 1), que son radical est élégan tandis que les terminaisons possibles sont t te ts tes.
Lorsque le signe généré est un verbe, l'élément [marqueur] est \. Il est utilisé sous la forme [élision] [marqueur] [genre].
Les signes relatifs à des syntagmes sont codés de façon analogue à l'aide de marqueurs spécifiques "#" aux syntagmes. Le descripteur syntaxique est, dans ces cas, réduit au marqueur utilisé pour identifier ces données.
Les signes relatifs à des déterminants sont codés au moyen d'un tableau, tel que celui représenté à l'annexe B, et d'une valeur codée par une donnée, cette valeur identifiant un déterminant pour le signe généré à partir de cette donnée. Pour cela, une famille de déterminants est représentée à chaque ligne du tableau suivant un ordre correspondant à un nombre, puis à un genre et à une nécessité d'élision comme détaillé ci-dessous pour le déterminant "article défini le":
Figure img00350001
<Desc/Clms Page number 36>
Figure img00360001
Ainsi, la donnée "[m~cheval#7]" génère "le cheval".
De façon analogue à d'autres marqueurs, la valeur d'un déterminant peut être neutre, auquel cas cette valeur neutre est considérée commé égale à la valeur de déterminant précédente. Ainsi, "[m~cheval#7] et [m~chien#0]" génère "le cheval et le chien".
La description de l'invention effectuée précédemment utilise le développement d'une donnée [i] en un ou plusieurs signes destinés à former un texte. Toutefois, l'invention permet aussi l'utilisation de données [I] non finies destinées à être développées en une suite ou chaîne de données non finies [j] [k]... [1] . A cet effet, on considère les différents types de données suivantes :
Un premier type de donnée [I] est associé à une structure grammaticale, par exemple la structure Il sujet 1 verbe 1 complément déjà décrite pour le verbe "aimer" en langue française. Suivant cet exemple, on utilise un marqueur "stru~" pour identifier les données structurelles et une donnée "[stru~aimer]" peut alors être associée à une suite de données Il [m-personne] [v~aimer] [m~partieducorps] " correspondant à la structure grammaticale du verbe aimer.
Un deuxième type de donnée [I] est associé à un thème prédéfini par l'utilisateur du générateur de texte, ce thème correspondant, par exemple, à une clef de classe ou à un descripteur contextuel prédéterminé. Une telle donnée, identifiée par un marqueur "th", génère le développement d'un texte suivant ce thème en choisissant des signes du texte au moyen de la clef de classe ou du descripteur imposé. De façon générale, une donnée thème comprend des données préstructurées, c'est-à-dire ordonnées, constituant une structure dont les contraintes syntaxiques et le champ sémantique sont prédéfinis. Par exemple, une donnée thème
<Desc/Clms Page number 37>
telle que [th-aimer] peut être associée à une suite de données telle que : [m~hérosl] [v~aimer] [th~partie du corps] [m~héros2].
On remarque qu'une première donnée thème peut être développée en une série de données comportant une deuxième donnée thème.
Un troisième type de données [I] est associé à un dictionnaire particulier déterminé comme une sous-base bj(dp) de données dans une base Bj telle que définie à la figure 2.
Le développement d'une donnée au moyen du dictionnaire particulier, commandé au moyen d'un marqueur "dp~", permet donc à l'utilisateur du générateur de contraindre ce dernier à l'utilisation de la sous-base de données personnalisée, par exemple relative à un domaine technique.
Un quatrième type de données [I] est associé à une locution syntaxique au moyen d'un marqueur "lc~". Ainsi, une donnée telle que [lc~extrême] peut être développée en une donnée finie "plus royaliste que le roi" ou "plus chrétien que le pape" propre à une expression dans une langue donnée.
A cet effet, une sous-base bj(lc) est aussi comprise dans la base Bj.
D'une façon générale, l'invention permet de personnaliser les textes générés par l'utilisation de sousbases bi propres à un utilisateur du générateur.
Pour augmenter la diversité des textes pouvant être générés, les données codées peuvent être associées à des marqueurs, dits de rhétorique, permettant à l'utilisateur d'imposer des caractéristiques propres à l'écriture d'un texte, telles que celles décrites ci-dessous. En d'autres termes, un marqueur de rhétorique définit un ou plusieurs modes de fonctionnement du générateur.
Selon une première caractéristique, l'utilisateur du générateur de texte peut limiter le nombre de classes utilisées pour générer un texte. Par exemple, en considérant une classe "Poésie moderne" constituée des données suivantes:
<Desc/Clms Page number 38>
- "je m'offre à chacune" - "la lumière tremble" - "ta peau boit le soleil", un texte peut être généré en imposant cette seule classe et en utilisant une simple juxtaposition de ces données, telle que : "je m'offre à chacune, la lumière tremble, ta peau boit le soleil".
Selon une deuxième caractéristique, l'utilisateur du générateur de texte peut imposer un nombre minimal de classes devant être utilisées lors de la génération d'un texte. En conséquence, il détermine la fréquence tolérée d'utilisation d'une même classe. De façon analogue, l'utilisateur peut définir un nombre d'utilisations minimal ou maximal d'un même signe pour remplacer une donnée.
Selon une troisième caractéristique, le mode de sélection d'une donnée et/ou d'un signe choisis dans une classe est déterminé par l'utilisateur du générateur suivant un des trois modes suivant:
Soit le choix est aléatoire et la donnée ou le signe remplaçant une donnée est choisi au hasard dans une classe requise,
Soit le choix est systématique et la donnée ou un signe remplaçant une donnée est imposé dans une classe prédéterminée,
Soit le choix utilise une combinaison, par exemple une alternance, des deux modes précédemment décrits.
Suivant une autre caractéristique, l'utilisateur du générateur détermine si une donnée ou un signe utilisé(e) dans une classe peut être repris(e), et suivant quelle fréquence de telles reprises peuvent être effectuées. De même, comme décrit ultérieurement, l'auteur du texte peut déterminer suivant quel ordre est utilisée cette donnée.
Le texte généré peut avoir une longueur prédéterminée par l'utilisateur du générateur au moyen d'un marqueur "FF" de fin de chaîne, ce marqueur étant compris dans la suite de données fournie au générateur. En l'absence
<Desc/Clms Page number 39>
d'un tel marqueur, la longueur du texte généré n'est pas limitée.
Les relations entre les pages générées sont aussi gérées par des marqueurs rhétoriques indiquant, par exemple, d'ordonner les pages au fur et à mesure de leur génération.
En l'absence de telles variables, chaque page de texte généré est indépendante et le générateur de textes lui attribue un numéro de page indépendant.
Finalement, le format des pages ainsi qu'une forme d'écriture, prose ou poésie, sont définies par l'utilisateur du générateur.
Lorsqu'un type de prose est sélectionné, le texte généré à partir de chaque donnée est juxtaposé au fur et à mesure de sa génération. Cette génération peut être arrêtée de deux façons : suivant un arrêt non-défini, tel que l'auteur fixe un nombre maximum de signes pour le texte, ou suivant un arrêt défini, tel qu'un marqueur de fin d'événements "FF" entraîne l'arrêt de la génération.
Une page en prose est constituée par un bloc continu de signes à l'exception des textes utilisant des marqueurs dits de dialogue. De tels marqueurs se présentent par des symboles ""qui sont interprétés par le générateur de texte comme indiquant un aller à la ligne. Par exemple "il l'interrompit avec violence" "il ne dit rien !" est affiché par le générateur de texte : "il l'interrompit avec violence : - il ne dit rien !".
Un retour à la ligne peut aussi être rendu obligatoire par l'utilisation du signe "%". Par exemple "elle lui parlait toujours avec violence. % Lui préférait la tranquilité" entraîne l'affichage : "elle lui parlait toujours avec violence.
Lui préférait la tranquilité".
Le nombre d'espaces dans les écartements entre les textes séparés par un signe % est proportionnel au nombre de signes % utilisés dans les données de développement.
<Desc/Clms Page number 40>
Comme indiqué précédemment, l'ensemble des caractéristiques rhétoriques décrites ci-dessus sont codées à l'aide de marqueur propres, tel que %, ou à l'aide d'un marqueur s'appliquant pour l'ensemble du texte, dit descripteur rhétorique. Un tel descripteur, traité par le générateur avant les données pour lesquelles il paramètre le fonctionnement du générateur, a une forme telle que "=ABCDEFGHIJK$" où la valeur de chaque lettre détermine une caractéristique rhétorique.
Ainsi, la valeur du premier chiffre A de ce descripteur indique la langue utilisée pour développer les données traitées par le générateur. En d'autres termes, il détermine la base de données utilisée par le générateur. Par exemple, on peut considérer qu'une valeur zéro permet un choix aléatoire de la langue pour chaque donnée et une valeur 1 impose la langue française.
Ce descripteur indique par ailleurs la fréquence de répétition souhaitée pour les différentes données finies utilisées dans le texte, la valeur I de ce descripteur de rhétorique indiquant, pour une valeur 0, que des répétitions sont admises avec une fréquence élevée, tandis qu'une valeur 9 indique que les répétitions sont à éviter.
Par ailleurs, les valeurs JK déterminent une génération de texte avec un mode prose (JK égal à 00) ou à un mode de poésie.
Lorsqu'un mode poésie est sélectionné pour le générateur de texte, ce dernier distingue quatre types possibles de poésie, à savoir : la poésie en vers réguliers, la poésie en vers libres, la poésie en vers définis ou la poésie en vers définis centrés. Chacun des ces types de poésie est sélectionné par le descripteur de poésie défini par les deux chiffres JK tel que :
JK=01, la poésie en vers réguliers est utilisée,
JK=02 la poésie en vers définis est utilisée,
JK=03 déclenche une poésie en vers définis centrés,
<Desc/Clms Page number 41>
toute autre valeur, différente de 00, pour JK entraînant une poésie en vers libres.
De façon analogue à l'ensemble des codages précédemment décrit, le descripteur rhétorique est un descripteur ouvert, c'est-à-dire qu'il peut être modifié de façon à prendre en compte de nouvelles règles de rhétorique propres à de nouveaux styles d'écritures (par exemple l'utilisation de signes ne présentant pas d'élision) ou l'utilisation, par le générateur, de nouvelles langues requérant la détermination de paramètres rhétoriques.
Dans la poésie en vers réguliers, le texte généré est découpé en vers d'une taille prédéterminée telle que, si LT est égal à la longueur totale du texte et NL est égal au nombre de lignes possibles d'affichage, la longueur moyenne de chaque vers (NV) est : = LV.
En poésie en vers définis, le marqueur "%" est utilisé pour entraîner les retours à la ligne.
Pour la poésie en vers libre, on utilise une variation aléatoire du découpage du nombre de pieds par paires comprises entre 15 et XX, XX étant une donnée prédéterminée par l'auteur du texte.
En considérant la génération d'une pluralité de textes, on peut générer une #uvre en compilant ces textes. De façon à assurer la cohérence de cette #uvre, il peut être nécessaire d'attribuer un même signe à une donnée développée tout au long de l'#uvre, c'est-à-dire développée lors de la génération de chaque texte.
Par exemple, si l'oeuvre générée est un roman policier constitué de trois textes au cours desquels intervient un inspecteur de police identifié par une donnée "[inspecteur]", il est nécessaire que cet inspecteur soit identifié à un même personnage tout au long de l'#uvre, même si ce personnage est choisi, dans un premier temps, aléatoirement parmi une classe "inspecteur" comprenant différents personnages d'inspecteur.
<Desc/Clms Page number 42>
Inversement, si plusieurs témoins apparaissent dans l'oeuvre, ces témoins étant codés par une même donnée "[témoin]", cette donnée doit être développée en autant de types de témoins différents que requis par l'oeuvre, par exemple au cours d'auditions successives de témoins.
De façon à tenir compte de ces différences, le générateur de texte utilise deux types de variables telles que définies ci-dessous: - des variables dites locales développent une donnée non-finie en une donnée finie appartenant à une classe prédéterminée. Dans cet exemple, une variable locale est codée sous la forme "[témoin-h]", où "témoin" identifie la classe utilisée et "-h" indique la nature locale de la variable. Si la classe associée à "témoin" comprend les données finies "Pierre", "Jean" et "Jacques", une donnée non-
Figure img00420001

finie telle que " [témoin-h] [0100000 v regarderl] [témoin-h] génère des textes tels que "Jean regarde Pierre", "Jean regarde Jean" ou "Pierre regarde Jacques". En d'autres termes, le générateur ne contrôle pas les différents développements possibles.
- des variables de textes utilisées pour qu'une seule donnée finie soit associée à une donnée non finie de façon à remplacer cette dernière dans l'ensemble de l'oeuvre et du texte, comme dans l'exemple de l'inspecteur associé à une donnée "[inspecteur]" précédemment décrit.
Dans cet exemple, on utilise des variables "carac" et "caract" pour associer une donnée "[caracx]" à un signe "[caract x]"correspondant. Par exemple, si la variable carac 1 est associé aux données "Jean, Pierre, Léon, Marcel", caract 1 est développé en "Jean", "Pierre", "Léon", "Marcel".
Ainsi, " [caract 1] [010000-v-regarderl] [carac 1] ; [caract 1] [110000-v-aimerl] [carac 1]" générant, par exemple "Léon observe Pierre ; Léon n'aime pas Marcel".
Par ailleurs, cette réalisation de l'invention utilise aussi le codage de la mobilité d'une ou de plusieurs données. De fait, en langue française, certains signes ou
<Desc/Clms Page number 43>
syntagmes, peuvent être déplacés tout en respectant les règles syntaxiques et sémantiques. Par exemple, en considérant la phrase suivante . "ce matin-là, un éléphant traversa la rue", on peut déplacer le syntagme "ce matin-là", ou le syntagme "un éléphant". On obtient alors "un éléphant, ce matin-là, traversa la rue", ou "un éléphant traversa la rue ce matin-là".
Par ailleurs, il convient de remarquer que, en fonction de la langue de génération choisie, la mobilité du groupe de signes est distincte. Par exemple, en allemand, il est possible de placer un groupe sujet après un groupe verbal, ce qui est impossible en français d'une façon générale.
Pour coder la mobilité d'un syntagme, on utilise un marqueur tel que ",*" suivi d'un marqueur "," qui encadrent la donnée, le signe et/ou le syntagme pouvant être déplacés, le générateur effectuant ces déplacements de façon aléatoire ou prédéterminée.
Ainsi, ", un éléphant, traversa la rue, ,* ce matin-là" est une écriture codée permettant d'obtenir n'importe laquelle des phrases précédemment décrites.
Cette mobilité peut être définie quelle que soit la nature de la donnée. Ainsi, pour une donnée non finie, on peut écrire "[matin], [personnage], [promenade].,* [soleil],,, ce qui permet de déplacer chacune des données codées de façon aléatoire.
De la même façon que l'on peut définir la mobilité d'un groupe, on peut définir si un groupe est facultatif, c'est-à-dire s'il n'est pas obligatoire de l'écrire. Ainsi, dans l'exemple précédemment décrit, "ce matin-là" est facultatif. Dès lors, on peut utiliser des marqueurs de début du groupe facultatif "<" et un marqueur de fin de groupe facultatif ">" de la façon suivante : "un éléphant traversa la rue < ce matin-là >." est une écriture permettant d'obtenir une des deux chaînes suivantes : " un éléphant traversa la rue. " ou "un éléphant
<Desc/Clms Page number 44>
traversa la rue ce matin-là". Le moteur de génération choisi aléatoirement a permis ces deux possibilités.
Des groupes facultatifs peuvent être internes à d'autres groupes facultatifs. Par exemple, en considérant le texte suivant "Le jour se levait dans une grande exhubérance.
La place de la Concorde, noyée de soleil, resplendissait de lumière. Les passants étaient nombreux," on peut considérer que certains signes peuvent être ignorés, de façon à générer un texte tel que : "le jour se levait dans une grande exhubérance. Les passants étaient nombreux." ou "le jour se levait dans une grande exhubérance. La place de la Concorde resplendissait de lumière. Les passants étaient nombreux.".
En d'autres termes, on considère que "la place de la Concorde, noyée de soleil, resplendissait de lumière." et ", noyée de soleil," sont des syntagmes facultatifs. Dans ce cas, on utilise des marqueurs de suppression indiquant chaque syntagme facultatif. Par exemple, 111-11 indique le début d'un premier marqueur ; "-1" indique la fin de ce même marqueur, le texte ci-dessus pouvant donc être codé de la façon suivante : "le jour se levait dans une grande exhubérance.
"1- la place de la Concorde "2-, noyée de soleil -2" resplendissait de lumière. -1" les passants étaient nombreux."
Le nombre d'imbrications entre données facultatives possibles est illimité, ces imbrications pouvant porter sur n'importe quel niveau de développement de ces données.
La présente invention est susceptible de nombreuses variantes. Ainsi, les codages précédemment écrits peuvent être effectués sous diverses formes et de nouvelles règles syntaxiques et/ou de nouvelles contraintes rhétoriques peuvent être codées. Par exemple, de nouvelles conjugaisons peuvent être incluses dans l'annexe A et/ou un nouveau marqueur peut être utilisé pour coder un caractère répétitif propre à une donnée [i], cette donnée [i] étant alors développée deux fois par le générateur de texte.
<Desc/Clms Page number 45>
Annexe A
Exemple de déclinaisons verbales codées dans la base de données BFR (l.avoir),ai,as,a,avons,avez,ont,avais,avais,avait, avions,aviez,avaient,eus,eus,eut,eûmes,eûtes,eurent,aurai,aur as,aura,aurons,aurez,auront,aurais,aurais,aurait,aurions,auri ez,auraient,aie,aies,ait,ayions,ayiez,aient,ayant,avoir (2.être),suis,es,est,sommes,êtes,sont,étais,étais,é tait,étions,étiez,étaient,fus,fus,fut,fûmes,fûtes,furent,sera i,seras,sera,serons,serez,seront,serais,serais,serait,serions ,seriez,seraient,sois,sois,soit,soyions,soyiez,soient,étant,ê tre (3.dire),is,is,it,isons,isez,isent,isais,isais,isai t,isions,isiez,isaient,is,is,it,îmes,îtes,irent,irai,iras,ira ,irons,irez,iront,irais,irais,irait,irions,iriez,iraient,ise, ises,ise,isions,isiez,isent,isant,ire (4.jeter),ette,ettes,ette,etons,etez,ettent,etais,e tais,etait,etions,etiez,etaient,etai,etas,eta,etâmes,etâtes,e tèrent,etterai,etteras,ettera,etterons,etterez,etteront,etter ais,etterais,etterait,etterions,etteriez,etteraient,ette,ette s,ette,etions,etiez,ettent,etant,eter ~, 5 (6.aimer),e,es,e,ons,ez,ent,ais,ais,ait,ions,iez,ai ent,ai,as,a,âmes,âtes,èrent,erai,eras,era,erons,erez,eront,er ais,erais,erait,erions,eriez,eraient,e,es,e,ions,iez,ent,ant, er (7.placer),ce,ces,ce,çons,cez,cent,çais,çais,çait,c ions,ciez,çaient,çai,ças,ça,çâmes,çâtes,cèrent,cerai,ceras,ce ra,cerons,cerez,ceront,cerais,cerais,cerions,ceriez,ceraient, ce,ces,ce,cions,ciez,cent,çant,cer (8.manger),e,es,e,eons,ez,ent,eais,eais,eait,ions,i ez,eaient,eai,eas,ea,eâmes,eâtes,èrent,erai,eras,era,erons,er ez,eront,erais,erais,erait,erions,eriez,eraient,e,es,e,ions,i ez,ent,eant,er ~,9
<Desc/Clms Page number 46>
Figure img00460001

(l0.inquiéter),ète,ètes,ète,étons,étons,ètent,étais ,étais,était,étions,étiez,étaient,étai,étas,éta,étâmes,étâtes ,étèrent,éterai,éteras,étera,éterons,éterez,éteront,éterais,é terais,éterait,éterions,éteriez,éteraient,ète,ètes,ète,étions ,étiez,ètent,étant,éter
Figure img00460002

(ll.appeler),elle,elles,elle,elons,elez,ellent,elai s,elais,elait,elions,eliez,elaient,elai,elas,ela,elâmes,elâte s,elèrent,ellerai,elleras,ellera,ellerons,ellerez,elleront,el lerais,ellerais,ellerait,ellerions,elleriez,elleraient,elle,e lles,elle,elions,eliez,ellent,elant,eler ~,12 ~,13 ~, 14 ~,15 (16.essayer),aie,aies,aie,ayons,ayez,aient,ayais,ay ais,ayait,ayions,ayiez,ayaient,ayai,ayas,aya,ayâmes,ayâtes,ay èrent,aierai,aieras,aiera,aierons,aierez,aieront,aierais,aier ais,aierait,aierions,aieriez,aieriont,aie,aies,aie,ayions,ayi ez,aient,ayant,ayer (17.broyer),ie,ies,ie,yons,yez,ient,yais,yais,yait, yions,yiez,yaient,yai,yas,ya,yâmes,yâtes,yèrent,ierai,ieras,i era,ierons,ierez,ieront,ierais,ierais,ierait,ierions,ieriez,i eraient,ie,ies,ie,yions,uiez,ient,yant,yer (18.écrire),cris,cris,crit,crivons,crivez,crivent,c rivais,crivais,crivait,crivions,criviez,crivaient,crivis,criv is,crivit,crivîmes,crivîtes,crivirent,crirai,criras,crira,cri rons,crirez,criront,crirais,crirais,crirait,cririons,cririez, criraient,crive,crives,crive,crivions,criviez,crivent,crivant , crire (19.finir),is,is,it,issons,issez,issent,issais,issa is,issait,issions,issiez,issaient,is,is,it,îmes,îtes,irent,ir ai,iras,ira,irons,irez,iront,irais,irais,irait,irions,iriez,i raient,isse,isses,isse,issions,issiez,issent,issant,ir (20.couvrir),e,es,e,ons,ez,ent,ais,ais,ait,ions,iez ,aient,is,is,it,îmes,îtes,irent,irai,iras,ira,irons,irez,iron
<Desc/Clms Page number 47>
t,irais,irais,irait,irions,iriez,iraient,e,es,e,ions,iez,ent, ant,ir (2l.rire),is,is,it,ions,iez,ient,iais,iais,iait,iio ns,iiez,iaient,is,is,it,îmes,îtes,irent,irai,iras,ira,irons,i rez,iront,irais,irais,irait,irions,iriez,iraient,ie,ies,ie,ii ons,iiez,ient,iant,ire (22.aller),vais,vas,va,allons,allez,vont,allais,all ais,allait,allions,alliez,allaient,allai,allas,alla,allâmes,a llâtes,allèrent,irai,iras,ira,irons,irez,iront,irais,irais,ir ait,irions,iriez,iraient,aille,ailles,aille,allions,alliez,ai lient, allant,aller (23.tenir),iens,iens,ient,enons,enez,iennent,enais, enais,enait,enions,eniez,enaient,ins,ins,int,înmes,întes,inre nt,iendrai,iendras,iendra,iendrons,iendrez,iendront,iendrais, iendrais,iendrait,iendrions,iendriez,iendraient,ienne,iennes, ienne,enions,eniez,iennent,enant,enir (24.vivre),is,is,it,ivons,ivez,ivent,ivais,ivais,iv
Figure img00470001

ait,ivions,iviez,ivaient,écus,écus,écut,écûmes,écûtes,écurent ,ivrai,ivras,ivra,ivrons,ivrez,ivront,ivrais,ivrais,ivrait,vi rions,ivriez,ivraient,ive,ives,ive,ivions,iviez,ivent,ivant,i vre (25.sentir),s,s,t,tons,tez,tent,tais,tais,tait,tion
Figure img00470002

s,tiez,taient,tis,tis,tit,tîmes,tîtes,tirent,tirai,tiras,tira ,tirons,tirez,liront,tirais,tirais,tirait,tirions,tiriez,tira ient,te,tes,te,tions,tiez,tent,tant,tir
Figure img00470003

(26.feindre- craindre),ins,ins,int,ignons,ignez,igne nt,ignais,ignais,ignait,ignions,igniez,ignaient,ignis,ignis,i gnit,ignîmes,ignîtes,ignirent,indrai,indras,indra,indrons,ind rez,indront,indrais,indrais,indrait,indrions,indriez,indraien t,igne,ignes,igne,ignions,igniez,ignent,ignant,indre (27.couvrir),e,es,e,ons,ez,ent,ais,ais,ait,ions,iez ,aient,is,is,it,îmes,îtes,irent,irai,iras,ira,irons,irez,iron t,irais,irais,irait,irions,iriez,iraient,e,es,e,ions,iez,ent, ant,ir ~,28
<Desc/Clms Page number 48>
(29.broyer),oie,oies,oie,oyons,oyez,oient,oyais,oya is,oyait,oyions,oyiez,oyaient,oyai,oyas,oya,oyâmes,oyâtes,oyè rent,oierai,oieras,oiera,oierons,oierez,oieront,oierais,oiera is,oierait,oierions,oieriez,oieraient,oie,oies,oie,oyions,oyi ez,oient,oyant,oyer (30.boire),ois,ois,oit,uvons,uvez,oivent,uvais,uvai s,uvait,uvions,uviez,uvaient,us,us,ut,ûmes,ûtes,urent,oirai,o iras,oira,oirons,oirez,oiront,oirais,oirais,oirait,oirions,oi riez,oiraient,oive,oives,oive,uvions,uviez,oivent,uvant,oire (3l.craindre),ains,ains,aint,aignons,aignez,aignent ,aignais,aignais,aignait,aignions,aigniez,aignaient,aignis,ai gnis,aignit,aignîmes,aignîtes,aignirent,aindrai,aindras,aindr a,aindrons,aindrez,aindront,aindrais,aindrais,aindrait,aindri ons,aindriez,aindraient,aigne,aignes,aigne,aignions,aigniez,a ignent, aignant,aindre (32.dormir),s,s,t,mons,mez,ment,mais,mais,mait,mion s,miez,maient,mis,mis,mit,mîmes,mîtes,mirent,mirai,miras,mira ,mirons,mirez,mirent,mirais,mirais,mirait,mirions,miriez,mira ient,me,mes,me,mions,miez,ment,mant,mir (33.courir),s,s,t,ons,ez,ent,ais,ais,ait,ions,iez,a ient,us,us,ut,ûmes,ûtes,urent,rai,ras,ra,rons,rez,ront,rais,r ais,rait,rions,riez,raient,e,es,e,ions,iez,ent,ant,ir (34.mourir),eurs,eurs,eurt,ourons,ourez,eurent,oura is,ourais,ourait,ourions,ouriez,ouraient,ourus,ourus,ourut,ou rûmes,ourûtes,oururent,ourrai,ourras,ourra,ourrons,ourrez,our ront,ourrais,ourrais,ourrait,ourrions,ourriez,ourraient,eure, eures,eure,ourions,ouriez,eurent,ourant,ourir (35.servir),s,s,t,vons,vez,vent,vais,vais,vait,vion s,viez,vaient,vis,vis,vit,vîmes,vîtes,virent,virai,viras,vira ,virons,virez,virent,virais,virais,virait,virions,viriez,vira ient,ve,ves,ve,vions,viez,vent,vant,vir (36.fuir),uis,uis,uit,uyons,uyez,uient,uyais,uyais, uyait,uyions,uyiez,uyaient,uis,uis,uit,uîmes,uîtes,uirent,uir ai,uiras,uira,uirons,uirez,uiront,uirais,uirais,uirait,uirion s,uiriez,uiraient,uie,uies,uie,uyions,uyiez,uient,uyant,uir ~,(37.ouïr)
<Desc/Clms Page number 49>
Figure img00490001

(38.recevoir),çois,çois,çoit,cevons,cevez,çoivent,c evais,cevais,cevait,cevions,ceviez,cevaient,çus,çus,çut,çûmes ,çûtes,çurent,cevrai,cevras,cevra,cevrons,cevrez,cevront,cevr ais,cevrais,cevrait,cevrions,cevriez,cevraient,çoive,çoives,ç oive,cevions,ceviez,çoivent,cevant,cevoir (19.voir),ois,ois,oit,oyons,oyez,oient,oyais,oyais, oyait,oyions,ouiez,oyaient,is,is,it,îmes,îtes,irent,errai,err as,erra,errons,errez,erront,errais,errais,errait,errions,erri ez,erraient,oie,oies,oie,oyions,oyiez,oient,oyant,oir -, (40.pourvoir)
Figure img00490002

(4l.savoir),sais,sais,sait,savons,savez,savent,sava is,savais,savait,savions,saviez,savaient,sus,sus,sut,sûmes,sû tes,surent,saurai,sauras,saura,saurons,saurez,sauront,saurais ,saurais,saurait,saurions,sauriez,sauraient,sache,saches,sach e,sachions,sachiez,sachent,sachant,savoir (42.devoir),dois,dois,doit,devons,devez,doivent,dev ais,devais,devait,devions,deviez,devaient,dus,dus,dut,dûmes,d ûtes,durent,devrai,devras,devra,devrons,devrez,devront,devrai s,devrais,devrait,devrions,devriez,devraient,doive,doives,doi ve,devions,deviez,doivent,devant,devoir (43.pouvoir),eux,eux,eut,ouvons,ouvez,euvent,ouvais ,ouvais,ouvait,ouvions,ouviez,ouvaient,us,us,ut,ûmes,ûtes,ure nt,ourrai,ourras,ourra,ourrons,ourrez,ourront,ourrais,ourrais ,ourrait,ourrions,ourriez,ourraient,uisse,uisses,uisse,uissio ns,uissiez,uissent,ouvant,ouvoir -, (44.mouvoir) - ,~ ,eut,~ ,~ ,~ ,~ ,~ ,cuvait,~ ,~ ,~ ,~ ,~ ,ut,~ , ~ ,~ ,~ ,~ ,euvra,~ ,~ ,~ ,~ ,~ ,euvrait,~ ,~ ,~ ,~ ,~ ,euve,- ,- ,~ ,(45.pleuvoir),euvant,euvoir (46.falloir), ,~ ,faut, , ,~ ,~ ,~ ,fallait, , ~ ,~ ,~ ,~ ,fallut,~ ,~ ,~ ,~ ,~ ,faudra,~ ,~ ,~ ,~ ,~ ,faudrait, , , , , ,faille, , , , ,falloir (47.valoir),vaux,vaux,vaut,valons,valez,valent,vala is,valais,valait,valions,valiez,valaient,valus,valus,valut,va lûmes,valûtes,valurent,vaudrai,vaudras,vaudra,vaudrons,vaudre z,vaudront,vaudrais,vaudrais,vaudrait,vaudrions,vaudriez,vaud
<Desc/Clms Page number 50>
raient,vaille,vailles,vaille,valions,valiez,vaillent, valant,valoir (48.vouloir),eux,eux,eut,oulons,oulez,eulent,oulais ,oulais,oulait,oulions,ouliez,oulaient,oulus,oulus,oulut,oulû mes,oulûtes,oulurent,oudrai,oudras,oudra,oudrons,oudrez,oudro nt,oudrais,oudrais,oudrait,oudrions,oudriez,oudraient,euille, euilles,euille,oulions,ouliez,euillent, oulant,ouloir -, (49 . asseoir) -, (50 .
* seoir) -,(51.surseoir) -,(52.choir) (53.rendre),ds,ds,d,dons,dez,dent,dais,dais,dait,di ons,diez,daient,dis,dis,dit,dîmes,dîtes,dirent,drai,dras,dra, drons,drez,dront,drais,drais,drait,drions,driez,draient,de,de s,de,dions,diez,dent,dant,dre (54.prendre),ends,ends,end,enons,enez,ennent,enais, enais,enait,enions,eniez,enaient,is,is,it,îmes,îtes,irent,end rai,endras,endra,endrons,endrez,endront,endrais,endrais,endra it,endrions,endriez,endraient,enne,ennes,enne,enions,eniez,en nent,enant,endre (55.battre),bats,bats,bat,battons,battez,battent,ba ttais,battais,battait,battions,battiez,battaient,battis,batti s,battit,battîmes,battîtes,battirent,battrai,battras,battra,b attrons,battrez,battront,battrais,battrais,battrait,battrions ,battriez,battraient,batte,battes,batte,battions,battiez,batt ent,battant,battre (56.mettre),ets,ets,et,ettons,ettez,ettent,ettais,e ttais,ettait,ettions,ettiez,ettaient,is,is,it,îmes,îtes,irent ,ettrai,ettras,ettra,ettrons,ettrez,ettront,ettrais,ettrais,e ttrait,ettrions,ettriez,ettraient,ette,ettes,ette,ettions,ett iez,ettent,ettant,ettre -, 57 -, 58 (59.craindre),ains,ains,aint,aignons,aignez,aignent ,aignais,aignais,aignait,aignions,aigniez,aingnaient,aignis,a ignis,aignit,aignîmes,aignîtes,aignirent,aindrai,aindras,aind
<Desc/Clms Page number 51>
ra,aindrons,aindrez,aindront,aindrais,aindrais,aindrait,aindr ions,aindriez,aindraient,aigne,aignes,aigne,aignions,aigniez, aignent,aignant,aindre -, 60 -,61 (62.faire),fais,fais,fait,faisons,faites,font,faisa
Figure img00510001

is,faisais,faisait,faisions,faisiez,faisaient,fis,fis,fit,fîm es,fîtes,firent,ferai,feras,fera,ferons,ferez,feront,ferais,f erais,ferait,ferions,feriez,feraient,fasse,fasses,fasse,fassi ons,fassiez,fassent,faisant,faire (63.taire),ais,ais,ait,aisons,aisez,aisent,aisais,a isais,aisait,aisions,aisiez,aisaient,us,us,ut,ûmes,ûtes,urent ,airai,airas,aira,airons,airez,airont,airais,airais,airait,ai rions,airiez,airaient,aise,aises,aise,aisions,aisiez,aisent,a isant,aire (64.connaître),ais,ais,aît,aissons,aissez,aissent,a issais,aissais,aissait,aissions,aissiez,aissaient,us,us,ut,ûm es,ûtes,urent,aîtrai,aîtras,aîtra,aîtrons,aîtrez,aîtront,aîtr ais,aîtrais,aîtrait,aîtrions,aîtriez,aîtraient,aisse,aisses,a isse,aissions,aissiez,aissent,aissant,aître (65.naître),is,is,ît,issons,issez,issent,issais,iss ais,issait,issions,issiez,issaient,quis,quis,quît,quîmes,quît
Figure img00510002

es,quirent,îtrai,îtras,îtra,îtrons,îtrez,îtront,îtrais,îtrais ,îtrait,îtrions,îtriez,îtraient,isse,isses,isse,issions,issie z,issent,issant,ître -, 66 -, 67 (68.croire),ois,ois,oit,oyons,oyez,oient,oyais,oyai s,oyait,oyions,oyiez,oyaient,us,us,ut,ûmes,ûtes,urent,oirai,o iras,oira,oirons,oirez,oiront,oirais,oirais,oirait,oirions,oi riez,oiraient,oie,oies,oie,oyions,oyiez,oient,oyant,oire (69.boire),ois,ois,oit,uvons,uvez,oivent,uvais,uvai s,uvait,uvions,uviez,uvaient,us,us,ut,ûmes,ûtes,urent,oirai,o iras,oira,oirons,oirez,oiront,oirias,oirais,oirait,oirions,oi riez,oiraient,oive,oives,oive,uvions,uviez,oivent,uvant,oire
<Desc/Clms Page number 52>
(75.suivre),s,s,t,vons,vez,vent,vais,vais,vait,vion s,viez,vaient,vis,vis,vit,vîmes,vîtes,virent,vrai,vras,vra,vr ons,vrez,vront,vrais,vrais,vrait,vrions,vriez,vraient,ve,ves, ve,vions,viez,vent,vant,vre -, 76 (77.lire),is,is,it,isons,isez,isent,isais,isais,isa it,isions,isiez,isaient,us,us,ut,ûmes,ûtes,urent,irai,iras,ir a,irons,irez,iront,irais,irais,irait,irions,iriez,iraient,ise ,ises,ise,isions,isiez,isent,isant,ire -, 78 -, 79 (80.écrire),is,is,it,ivons,ivez,ivent,ivais,ivais,i vait,ivions,iviez,ivaient,ivis,ivis,ivît,ivîmes,ivîtes,iviren t,irai,iras,ira,irons,irez,iront,irais,irais,irait,irions,iri ez,iraient,ive,ives,ive,ivions,iviez,ivent,ivant,ire (8l.confire),is,is,it,isons,isez,isent,isais,isais, isait,isions,isiez,isaient,is,is,it,îmes,îtes,irent,irai,iras ,ira,irons,irez,iront,irais,irais,irait,irions,iriez,iraient, ise,ises,ise,isions,isiez,isent,isant,ire (82.cuire),uis,uis,uit,uisons,uisez,uisent,uisais,u isais,uisait,uisions,uisiez,uisaient,uisis,uisis,uisit,uisîme s,uisîtes,uisirent,uirai,uiras,uira,uirons,uirez,uiront,uirai s,uirais,uirait,uirions,uiriez,uiraient,uise,uises,uise,uisio ns,uisiez,uisent,uisant,uire (83.lever),ève,èves,ève,evons,evez,èrent,evais,evai s,evait,evions,eviez,evaient,evai,evas,eva,evâmes,evâtes,evèr ent,éverai,éveras,évera,éverons,éverez,éveront,éverais,éverai s,éverait,éverions,éveriez,éveraient,ève,èves,ève,evions,evie z,èvent,evant,ever (84.céder),ède,èdes,ède,édons,édons,èdent,édais,éda is,édait,édions,édiez,édaient,édai,édas,éda,édâmes,édâtes,édè rent,éderai,éderas,édera,éderons,éderez,éderont,éderais,édera
<Desc/Clms Page number 53>
is,éderait,éderions,éderiez,éderaient,ède,èdes,ède,édions,édi ez,èdent,édant,éder (85.imprégner),ègne,ègnes,ègne,égnons,égnez,ègnent, égnais,égnais,égnait,égnions,égniez,égnaient,égnai,égnas,égna ,égnâmes,égnâtes,égnèrent,égnerai,égneras,égnera,égnerons,égn erez,égneront,égnerais,égnerais,égnerait,égnerions,égneriez,é gneraient,ègne,ègnes,ègne,égnions,égniez,ègnent,égnant,égner (86.vociférer),ère,ères,ère,érons,érons,èrent,érais ,érais,érait,érions,ériez,éraient,érai,éras,éra,érâmes,érâtes ,érèrent,érerai,éreras,érera,érerons,érerez,éreront,érerais,é rerais,érerait,érerions,éreriez,éreraient,ère,ères,ère,érions ,ériez,èrent,érant,érer (87.mener),ène,ènes,ène,enons,enez,ènent,enais,enai s,enait,enions,eniez,enaient,enai,enas,ena,enâmes,enâtes,enèr ent,énerai,éneras,énera,énerons,énerez,éneront,énerais,énerai s,énerait,énerions,éneriez,éneraient,ène,ènes,ène,enions,enie z,ènent,enant,ener (88.peser),èse,èses,èse,esons,esez,èsent,esais,esai s,esait,esions,esiez,esaient,esai,esas,esa,esâmes,esâtes,esèr ent,éserai,éseras,ésera,éserons,éserez,éseront,éserais,éserai s,éserait,éserions,éseriez,éseraient,èse,èses,èse,esions,esie z,èsent,esant,eser
<Desc/Clms Page number 54>
Annexe B Tableau des pronoms
Figure img00540001
<tb>
<tb> 1 <SEP> d'un <SEP> des <SEP> d'une <SEP> des <SEP> d'un <SEP> des <SEP> d'une <SEP> des
<tb> 2 <SEP> un <SEP> de <SEP> ses~ <SEP> une <SEP> de <SEP> ses~ <SEP> un <SEP> de <SEP> ses~ <SEP> une <SEP> de <SEP> ses
<tb> 3 <SEP> au <SEP> à <SEP> la <SEP> à <SEP> l'~ <SEP> aux <SEP> aux <SEP> aux <SEP> aux <SEP> aux
<tb> 4 <SEP> ce <SEP> cette~ <SEP> cet <SEP> cette~ <SEP> cces <SEP> ces~ <SEP> ces <SEP> ces
<tb> 5 <SEP> d'un <SEP> d'une <SEP> d'un <SEP> d'une <SEP> de <SEP> de <SEP> d' <SEP> d'
<tb> 6 <SEP> du~ <SEP> de <SEP> la <SEP> de <SEP> l' <SEP> des <SEP> des <SEP> des <SEP> des <SEP> des
<tb> 7 <SEP> le <SEP> la <SEP> l' <SEP> 1' <SEP> les <SEP> les <SEP> les <SEP> les
<tb> 8 <SEP> le <SEP> plus~ <SEP> le <SEP> plus- <SEP> le <SEP> plus <SEP> le <SEP> plus~ <SEP> les <SEP> plus~ <SEP> les <SEP> plus~ <SEP> les <SEP> plus <SEP> les <SEP> plus~
<tb> 9 <SEP> leur <SEP> leur <SEP> leur <SEP> leur <SEP> leurs <SEP> leurs <SEP> leurs <SEP> leurs
<tb> 10 <SEP> non~ <SEP> ma <SEP> mon~ <SEP> mon~ <SEP> mes <SEP> mes~ <SEP> mes <SEP> mes-
<tb> 11 <SEP> notre <SEP> notre <SEP> notre <SEP> notre <SEP> nos- <SEP> nos- <SEP> nos- <SEP> nos~
<tb> 12 <SEP> quelque <SEP> quelque~ <SEP> quelque~ <SEP> quelque~ <SEP> quelques~ <SEP> quelques- <SEP> quelques~ <SEP> quelques~
<tb> 13 <SEP> son <SEP> sa <SEP> son <SEP> son <SEP> ses <SEP> ses <SEP> ses <SEP> ses
<tb> 14 <SEP> ton- <SEP> ta- <SEP> ton- <SEP> ton- <SEP> tes- <SEP> tes- <SEP> tes- <SEP> tes-
<tb> 15 <SEP> tout <SEP> toute <SEP> tout <SEP> toute~ <SEP> tous <SEP> toutes <SEP> tous <SEP> toutes
<tb> 16 <SEP> tout <SEP> le~ <SEP> Coûte <SEP> la~ <SEP> tout: <SEP> l' <SEP> toute <SEP> l' <SEP> tous <SEP> les~ <SEP> toutes <SEP> les~ <SEP> tous <SEP> les <SEP> toutes <SEP> les
<tb> 17 <SEP> tout <SEP> toute <SEP> tout <SEP> leur <SEP> toute <SEP> tous <SEP> leurs <SEP> toutes <SEP> leurs <SEP> toutes <SEP> toutes <SEP> leurs
<tb> leur <SEP> leur <SEP> leur <SEP> leurs
<tb> 18 <SEP> tout <SEP> mon~ <SEP> toute <SEP> ma- <SEP> tout <SEP> mon <SEP> toute <SEP> tous <SEP> mes- <SEP> toutes <SEP> mes- <SEP> tous <SEP> mes~ <SEP> toutes <SEP> mes~
<tb> mon
<tb> 19 <SEP> tout <SEP> toute <SEP> tout <SEP> toute <SEP> tous <SEP> nos- <SEP> toutes <SEP> nos- <SEP> tous <SEP> nos- <SEP> toutes <SEP> nosnotre <SEP> notre <SEP> notre <SEP> notre
<tb> 20 <SEP> tout <SEP> son <SEP> toute <SEP> sa <SEP> tout <SEP> son <SEP> toute <SEP> tous <SEP> ses <SEP> tous <SEP> ses <SEP> toutes <SEP> toutes <SEP> ses
<tb> son~ <SEP> ses
<tb> 21 <SEP> tout <SEP> ton- <SEP> toute <SEP> ta- <SEP> tout <SEP> ton- <SEP> toute <SEP> tous <SEP> tes <SEP> toutes <SEP> tes <SEP> tous <SEP> tes- <SEP> toutes <SEP> teston
<tb> 22 <SEP> tout <SEP> toute <SEP> tout <SEP> toute <SEP> tous <SEP> vos~ <SEP> toutes <SEP> vos- <SEP> tous <SEP> vos <SEP> toutes <SEP> vos~
<tb> votre <SEP> votre <SEP> votre <SEP> votre
<tb> 23 <SEP> un <SEP> une <SEP> un <SEP> une <SEP> des <SEP> des <SEP> des <SEP> des
<tb> 24 <SEP> un <SEP> des <SEP> une <SEP> des <SEP> un <SEP> des <SEP> une <SEP> des
<tb> 25 <SEP> votre~ <SEP> votre <SEP> votre~ <SEP> votre <SEP> vos~ <SEP> vos <SEP> vos- <SEP> vos
<tb>

Claims (22)

  1. REVENDICATIONS 1. Procédé de codage automatique de textes caractérisé en ce qu'on code des données ( [1] , [2],...[i]...[n]) de façon à associer des groupes, ou classes, de signes à une donnée ([i]), et en ce qu'on code des contraintes rhétoriques, de façon à restreindre le nombre de classes associées à ces données et à déterminer une présentation écrite des données ([1],[2],...[i]...[n]) ou des signes associés.
  2. 2. Procédé selon la revendication 1, caractérisé en ce que, une classe de signes étant identifiée par une clef (201, 20i.i,20i.i.i) de classe, on code une clef de classe dans une donnée ([i]) de façon à associer cette classe à cette donnée.
  3. 3. Procédé selon la revendication 2, caractérisé en ce qu'on associe à une première classe la clef (201, 20i.i,20i.i.i) d'une deuxième classe (201, 201.1,201.1.1), la deuxième classe étant ainsi associée à toute donnée associée à la première classe.
  4. 4.Procédé selon la revendication 2 ou 3 caractérisé en ce qu'on limite le nombre de classes associées à une donnée en codant dans cette donnée un descripteur contextuel imposant ou excluant des classes associées à cette donnée.
  5. 5.Procédé selon la revendication 4 caractérisé en ce qu'on attribue à une donnée un descripteur contextuel neutre tel que des classes sont imposées ou exclues par rapport à une première donnée au moyen du descripteur contextuel d'une deuxième donnée.
  6. 6.Procédé selon l'une des revendications 2 à 5 caractérisé en ce que, à l'intérieur d'une classe, on regroupe des signes en sous-classes identifiées par une clef de classe propre.
  7. 7.Procédé selon l'une des revendications 1 à 6 caractérisé en ce qu'on regroupe dans une classe des signes relatifs à
    <Desc/Clms Page number 56>
    un même champ sémantique, à un même domaine lexical, à un même langage et/ou à une même langue.
  8. 8. Procédé selon l'une des revendications précédentes caractérisé en ce que, un ordre étant attribué aux données, on détermine la présentation écrite d'une donnée en codant sa position par rapport aux autres données suivant cet ordre.
  9. 9.Procédé selon la revendication 8 caractérisé en ce qu'on attribue un degré de mobilité à une donnée, l'ordre attribué à cette donnée étant variable en fonction de ce degré de mobilité.
  10. 10. Procédé selon l'une des revendications précédentes caractérisé en ce qu'on code la longueur du texte formé par les signes.
  11. 11. Procédé selon l'une des revendications précédentes caractérisé en ce qu'on code des renvois à la ligne, des espaces entre données et/ou des éléments de ponctuation tels que des guillemets.
  12. 12. Procédé de génération automatique de texte caractérisé en ce qu'on utilise des données codées selon l'une des revendications précédentes.
  13. 13. Procédé selon la revendication 12, caractérisé en ce qu'on génère un texte en remplaçant une données par au moins un signe associé à cette donnée.
  14. 14. Procédé selon la revendication 12 ou 13, faisant appel à des données codées selon la revendication 4, caractérisé en ce qu'on modifie le descripteur contextuel attribué à une donnée en cours de génération de texte.
  15. 15. Procédé selon la revendication 12,13 ou 14 caractérisé en ce qu'on attribue à une donnée un même signe au cours de la génération de texte.
  16. 16. Procédé selon l'une des revendications 12 à 15, caractérisé en ce qu'on ne représente pas au moins un signe remplaçant une donnée.
    <Desc/Clms Page number 57>
  17. 17. Procédé selon l'une des revendications 12 à 16 caractérisé en ce qu'on génère au moins deux fois au moins un signe associé à une même donnée.
  18. 18. Produit programme d'ordinateur comprenant des instructions de code de programme pour l'exécution du procédé selon l'une des revendications 1 à 17 lorsque le programme est exécuté sur ordinateur.
  19. 19. Dispositif de génération automatique de texte caractérisé en ce qu'il comprend des moyens pour générer un texte à partir de données codées selon l'une des revendications 1 à 11.
  20. 20. Serveur de génération de texte caractérisé en ce qu'il comprend des moyens pour générer un texte à partir de données codées selon l'une des revendications 1 à 11.
  21. 21. Terminal de génération de texte, caractérisé en ce qu'il comprend des moyens pour générer un texte à partir de données codées selon l'une des revendications 1 à 11.
  22. 22. Application du procédé selon l'une des revendications 12 à 17 à la réalisation d'un dispositif choisi parmi un dispositif de génération de texte, un terminal de génération de texte et un serveur de génération de texte.
FR0204383A 2002-04-09 2002-04-09 Procede de codage et de generation de texte Pending FR2838211A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0204383A FR2838211A1 (fr) 2002-04-09 2002-04-09 Procede de codage et de generation de texte

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0204383A FR2838211A1 (fr) 2002-04-09 2002-04-09 Procede de codage et de generation de texte

Publications (1)

Publication Number Publication Date
FR2838211A1 true FR2838211A1 (fr) 2003-10-10

Family

ID=28052219

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0204383A Pending FR2838211A1 (fr) 2002-04-09 2002-04-09 Procede de codage et de generation de texte

Country Status (1)

Country Link
FR (1) FR2838211A1 (fr)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0241717A2 (fr) * 1986-04-18 1987-10-21 International Business Machines Corporation Méthode et appareil d'analyse linguistique
US5787386A (en) * 1992-02-11 1998-07-28 Xerox Corporation Compact encoding of multi-lingual translation dictionaries

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0241717A2 (fr) * 1986-04-18 1987-10-21 International Business Machines Corporation Méthode et appareil d'analyse linguistique
US5787386A (en) * 1992-02-11 1998-07-28 Xerox Corporation Compact encoding of multi-lingual translation dictionaries

Similar Documents

Publication Publication Date Title
Haas The prehistory of languages
Fuller The sonnet
Lass Historical linguistics and language change
Hasan Code, register and social dialect
Robins The Byzantine grammarians: their place in history
Christophe et al. Phonological phrase boundaries constrain lexical access I. Adult data
US20200227032A1 (en) Systems and Methods for Generating and Recognizing Jokes
Van Den Hout The elements of Hittite
CN108877764B (zh) 有声电子书的音频合成方法、电子设备及计算机存储介质
JP2006201870A (ja) 対話処理装置
Freeman The poem as icon: A study in aesthetic cognition
FR2927712A1 (fr) Procede et dispositif d&#39;acces a une production d&#39;une grammaire pour le traitement d&#39;un document de donnees hierarchisees.
Kreilkamp Speech on paper: Charles Dickens, Victorian phonography, and the reform of writing
KR101929509B1 (ko) 형태소 합성 장치 및 방법
Norledge Language in Dystopia
FR2838211A1 (fr) Procede de codage et de generation de texte
FR2838212A1 (fr) Procede de codage et de generation de textes
Nathan What functionalists can learn from formalists in phonology
Melka Structural observations regarding rongorongo tablet ‘Keiti’
KR20190140537A (ko) 학습 데이터의 자가생성 방법, 장치 및 컴퓨터 프로그램, 강화 학습 방법, 장치 및 컴퓨터 프로그램
Rosén About non-direct discourse: Another look at its parameters in Latin
Thomason et al. Fantastic linguistics
KHALIL Linguistic Deviations are not Linguistic Blunders: The Study on Selected Poems of EE Cummings
Meyer Generating Free Verse Poetry with Transformer Networks
CA2654961C (fr) Correcteur, programme d&#39;ordinateur et procede de correction semantique, syntaxique et lexicale d&#39;une expression erronee dans un texte numerique