Comment fonctionne la génération de texte ?

Que signifie le sigle NLG ?

NLG est l’a­cro­nyme anglais de « Natu­ral Lan­guage Gene­ra­tion », en d’autres termes géné­ra­tion (de textes) en lan­gage natu­rel. Il s’a­git de faire pro­duire à une machine des textes sur un sujet donné.

Les tra­vaux sur la géné­ra­tion de textes datent des débuts du trai­te­ment auto­ma­tique des langues, qui est né de la tra­duc­tion auto­ma­tique. En effet, les pre­miers sys­tèmes de tra­duc­tion étaient basés sur le trip­tyque ana­lyse-trans­fert-géné­ra­tion (aus­si appe­lé tri­angle de Vauc­quois)

Les pre­miers sys­tèmes de géné­ra­tion indus­triels hors-tra­duc­tion ont été les sys­tème de pro­duc­tion de bul­le­tins météo. Cer­tains pou­vaient aller jus­qu’à pro­duire dif­fé­rents types de bul­le­tins à par­tir des mêmes don­nées (météo marine et météo « stan­dard ») et ce dans plu­sieurs langues.

Quelles sont les techniques utilisées pour la Génération de Textes ?

Il y a deux grandes familles de tech­no­lo­giques qui peuvent être mobi­li­sées pour faire pro­duire du texte à une machine :

Comment fonctionnent les systèmes de NLG basés sur des templates ?

Les tem­plates sont des modèles de docu­ments qui peuvent aller du simple « texte à trous » jus­qu’aux des­crip­tions de haut niveau des struc­tures de document. 

Les textes à trous sont des textes dans les­quels des variables viennent s’in­sé­rer, comme les cher Mon­sieur NOM, vous avez gagné… qui forment la majo­ri­té des spams. On ne peut pas se limi­ter à de la pure inser­tion de variables, car en fonc­tion des don­nées, il fau­dra chan­ger la for­mule (rem­pla­cer Mon­sieur par Madame), accor­der les adjec­tifs, conju­guer les verbes, etc. Les outils per­mettent de mettre en œuvre ces règles lin­guis­tiques de bas niveau.

Cer­tains sys­tèmes four­nissent des abs­trac­tions de plus haut niveau, met­tant en œuvre des gram­maires lin­guis­tique mas­quées par des pri­mi­tives séman­tiques de haut niveau (décrire une valeur, par exemple).

L’a­van­tage des sys­tèmes basés sur des tem­plates, quels que soient les niveaux d’abs­trac­tion, est qu’ils sont décla­ra­tifs et direc­te­ment liés aux don­nées struc­tu­rées (bases de don­nées, tableurs, etc.). Ce type de géné­ra­tion gui­dé par les don­nées est appe­lé data-to-text . Une liai­son directe et expli­cite aux don­nées per­met d’as­su­rer la fia­bi­li­té et la tra­ça­bi­li­té des textes pro­duits, par­fois aux dépends de la com­plexi­té de ges­tion des templates.

Comment les réseaux de neurones peuvent-ils générer du texte ?

Les récentes avan­cées dans les réseaux de neu­rones ont mon­tré une redou­table capa­ci­té pour ces sys­tèmes à pro­duire des textes, à com­men­cer par la tra­duc­tion neu­ro­nale et plus récem­ment avec des modèles de langue mas­sifs (large lan­guage models) comme GPT‑3.

Ces sys­tèmes ont ten­dance à être par­ti­cu­liè­re­ment créa­tifs : ils sont capables de conti­nuer un texte dont le début aurait été rédi­gé par un humain. En revanche, ils sont dif­fi­ciles à contraindre. Cela les dis­pose donc plus à des appli­ca­tions de type « écri­ture créa­tive » (qui consiste à lais­ser la machine « bro­der » sur un sujet) et moins à de la géné­ra­tion basée sur les don­nées, pour les­quels les tem­plates res­tent la solu­tion pri­vi­lé­giée par les industriels.

Quels systèmes open-source pour générer du texte ?

Des sys­tèmes open-source comme Sim­pleNLG ou RosaeNLG per­mettent de gérer les aspects mor­pho-syn­taxiques de la géné­ra­tion (mise au masculin/féminin, conju­gai­son des verbes, etc.) au tra­vers d’un lan­gage de pro­gram­ma­tion de tem­plates. Ils ne dis­pensent pas de l’é­cri­ture de ces tem­plates pour cha­cun des cas visés. 

Les modèles mas­sifs sont dis­po­nibles en accès libre sur la pla­te­forme Hug­ging­face. Ils demandent tou­te­fois un cer­tain niveau d’ex­per­tise en Intel­li­gence Arti­fi­cielle pour être mis en œuvre. 

Par Hugues de Mazancourt
Président de l'APIL