Comment fonctionne la génération de texte ?
Sommaire
Que signifie le sigle NLG ?
NLG est l’acronyme anglais de « Natural Language Generation », en d’autres termes génération (de textes) en langage naturel. Il s’agit de faire produire à une machine des textes sur un sujet donné.
Les travaux sur la génération de textes datent des débuts du traitement automatique des langues, qui est né de la traduction automatique. En effet, les premiers systèmes de traduction étaient basés sur le triptyque analyse-transfert-génération (aussi appelé triangle de Vaucquois)
Les premiers systèmes de génération industriels hors-traduction ont été les système de production de bulletins météo. Certains pouvaient aller jusqu’à produire différents types de bulletins à partir des mêmes données (météo marine et météo « standard ») et ce dans plusieurs langues.
Quelles sont les techniques utilisées pour la Génération de Textes ?
Il y a deux grandes familles de technologiques qui peuvent être mobilisées pour faire produire du texte à une machine :
- les modèles de textes paramétrables ou templates en anglais
- les réseaux de neurones profonds ou deep-learning
Comment fonctionnent les systèmes de NLG basés sur des templates ?
Les templates sont des modèles de documents qui peuvent aller du simple « texte à trous » jusqu’aux descriptions de haut niveau des structures de document.
Les textes à trous sont des textes dans lesquels des variables viennent s’insérer, comme les cher Monsieur NOM, vous avez gagné… qui forment la majorité des spams. On ne peut pas se limiter à de la pure insertion de variables, car en fonction des données, il faudra changer la formule (remplacer Monsieur par Madame), accorder les adjectifs, conjuguer les verbes, etc. Les outils permettent de mettre en œuvre ces règles linguistiques de bas niveau.
Certains systèmes fournissent des abstractions de plus haut niveau, mettant en œuvre des grammaires linguistique masquées par des primitives sémantiques de haut niveau (décrire une valeur, par exemple).
L’avantage des systèmes basés sur des templates, quels que soient les niveaux d’abstraction, est qu’ils sont déclaratifs et directement liés aux données structurées (bases de données, tableurs, etc.). Ce type de génération guidé par les données est appelé data-to-text . Une liaison directe et explicite aux données permet d’assurer la fiabilité et la traçabilité des textes produits, parfois aux dépends de la complexité de gestion des templates.
Comment les réseaux de neurones peuvent-ils générer du texte ?
Les récentes avancées dans les réseaux de neurones ont montré une redoutable capacité pour ces systèmes à produire des textes, à commencer par la traduction neuronale et plus récemment avec des modèles de langue massifs (large language models) comme GPT‑3.
Ces systèmes ont tendance à être particulièrement créatifs : ils sont capables de continuer un texte dont le début aurait été rédigé par un humain. En revanche, ils sont difficiles à contraindre. Cela les dispose donc plus à des applications de type « écriture créative » (qui consiste à laisser la machine « broder » sur un sujet) et moins à de la génération basée sur les données, pour lesquels les templates restent la solution privilégiée par les industriels.
Quels systèmes open-source pour générer du texte ?
Des systèmes open-source comme SimpleNLG ou RosaeNLG permettent de gérer les aspects morpho-syntaxiques de la génération (mise au masculin/féminin, conjugaison des verbes, etc.) au travers d’un langage de programmation de templates. Ils ne dispensent pas de l’écriture de ces templates pour chacun des cas visés.
Les modèles massifs sont disponibles en accès libre sur la plateforme Huggingface. Ils demandent toutefois un certain niveau d’expertise en Intelligence Artificielle pour être mis en œuvre.