Lima Vallantin
Wilame
Marketing Data scientist and Master's student interested in everything concerning Data, Text Mining, and Natural Language Processing. Currently speaking Brazilian Portuguese, French, English, and a tiiiiiiiiny bit of German. Want to connect? Tu peux m'envoyer un message. Pour plus d'informations sur moi, tu peux visiter cette page.

Sommaire

N'oublies pas de partager :

Partager sur linkedin
Partager sur twitter
Partager sur facebook

N'oublies pas de partager :

Partager sur linkedin
Partager sur twitter
Partager sur whatsapp
Partager sur facebook

La génération naturelle du langage (GNL) est l'un de ces sujets à la mode dont tout le monde parle comme étant quelque chose de plus complexe qu'il ne l'est en réalité. Nous voyons des associations libres du terme à l'apprentissage profond d'une manière que nous sommes forcés de croire que c'est la seule façon de le faire. Ou que cela ne sert qu'à construire des chatbots.

Ce n'est pas le cas.

Qu'est-ce que la génération naturelle du langage?

La génération automatique de documents est aussi vieille qu'Eliza​1​l'un des premiers logiciels de traitement du langage naturel créé en 1964. L'application était capable de produire du texte et d'émuler une conversation en utilisant une méthodologie de correspondance et de substitution de modèles.

L'ordinateur ne comprenait guère ce qu'il rédigeait. Ni hier, ni aujourd'hui.

En bref, le NLG pourrait être quelque chose d'aussi simple qu'un outil tel qu’un «  text spinner ». Ou aussi élaboré que hugging face transformers. En fin de compte, la seule différence entre le second et le premier est que le premier s'appuie sur un ensemble de règles plus strictes pour fonctionner tandis que le second essaiera de construire des textes basés sur des processus statistiques.

Le fait de dire que vous utilisez du deep learning vous permettra également d'obtenir des points supplémentaires si vous voulez être branché, chic et tendance.

Je plaisante. La génération de textes à partir du deep learning est plus riche et plus diversifiée, mais elle est aussi plus coûteuse et, soyons honnêtes, pas toujours nécessaire.

Qu'une chose soit claire : la création de textes automatiquement ne signifie pas que la machine possède un niveau d'intelligence supérieur lorsqu'elle arrive avec l'aide de modèles de machine learning ou d'intelligence artificielle.

En fait, comme je le disais tout à l'heure, le deep learning n'est qu'un moyen probabiliste de créer du texte, alors que l'utilisation des templates dépend davantage de l'intervention humaine pour la création des premiers patterns.

Quand devriez-vous utiliser les Générateurs Naturels de Langage ?

Encore une fois, examinons le cas de ma société, Mad Affinity. Nous utilisons des templates de texte pour générer des descriptions de produits basées sur leurs attributs. Il s'agit simplement de fusionner un mot avec un modèle. Mais cela fonctionne à merveille pour nous.

Cela pourrait aussi bien fonctionner pour vous et pour de nombreuses autres entreprises.

La GNL basée sur des templates est toujours très utilisée dans la création de newsletters et de chatbots. L'utilisation de ce type de technologie par les entreprises remonte à 1980, avec WordStar​2​, une application qui permettait de fusionner des adresses et des étiquettes d'envoi de lettres.

Cela peut sembler tellement «  1980 ». Et pourtant, c'est ce que font les spécialistes du marketing d'aujourd'hui du monde entier lorsqu'ils créent des campagnes par courrier électronique.

Ce mécanisme simple permet de générer des textes courts, qui peuvent être utilisés aussi bien pour des campagnes de sensibilisation que pour des SMS urgents en cas de catastrophe naturelle. En fait, il est déjà utilisé.

Imaginez que vous souhaitez créer un compte Twitter qui écrive un nouveau tweet à chaque fois que la météo change dans une certaine région de votre pays. Plutôt que de passer toute la journée à vérifier les évolutions sur un site météorologique quelconque, vous pouvez créer des templates et compléter automatiquement les lacunes avec des informations récupérées à partir d'une API.

Par exemple :

import random  

temperature = "74" #get it from some random temperature service API 
local       = "New York" #the local that you are using 

# choose a sentence from the template pool 
templates = ["Current temperature in {local} is {temperature}F.",
             "Here's the current temperature for {local}: {temperature}F!'",
             "Thinking about leaving? It's {temperature}F right now in {local}.",
             "Temperature update in {local}: it's {temperature}F right now."] 

# pick one and print 
sentence = random.choice(templates).format(local=local, temperature=temperature) 
print(sentence.format(local, temperature))
#possible outcome
"Thinking about leaving? It's 74F right now in New York." 

Vous pouvez créer autant de phrases que vous le souhaitez et simplement "coller" la température et l'endroit sur celles-ci. Au fait, félicitations, vous venez d'utiliser la génération naturelle du langage.

Utilisation de la GNL : dois-je choisir les text spinners ou le deep learning ?

En ce qui concerne l'aspect technologique de la discussion, il faut garder à l'esprit que les text spinners vont résoudre la plupart de vos problèmes de production de contenu sur le commerce électronique ou sur les sites qui utilisent des textes répétitifs.

Les descriptions de produits pourraient être facilement générées uniquement en obtenant leurs caractéristiques et en les transformant en séquences de phrases complexes. Au lieu d'énumérer les couleurs d'un produit, vous pouvez les développer en une phrase plus longue en utilisant le ton de votre marque.

Ce système est un moyen rapide et facile de créer du contenu pour votre site web en utilisant des données que vous possédez déjà. Mais vous pouvez également l'utiliser pour générer des rapports de veille automatisés à partir de données analytiques.

Des technologies plus sophistiquées sont utiles lorsque vous avez besoin de créer des textes complexes, comme des synthèses de textes. Cependant, la génération de documents à partir de modèles préalablement entraînés par deep learning n'est pas exactement fiable et un certain effort humain serait encore nécessaire pour peaufiner l'ensemble.

Le deep learning peut être utile si vous souhaitez résumer un texte pour l'utiliser en tant que point de départ pour un nouveau contenu. Le problème est que la plupart des mortels ne possèdent pas de machines assez puissantes pour générer rapidement des sommaires de textes longs.

En bref, les templates sont utiles lorsque vous avez besoin de générer des phrases simples de manière extrêmement contrôlée. Le deep learning est utile si vous voulez générer des phrases complexes à partir de rien ou d’un ensemble de textes qui devra être synthétisé.

Qu'est-ce qui compte vraiment lorsqu'on utilise la GNL ?

Plus que la technologie elle-même, il est important de réfléchir au processus. Selon Dale et Reiter​3​, les étapes typiques de la GNL sont les suivantes :

  • Détermination du contenu : planification des informations qui apparaîtront dans le texte. Dans notre exemple, il s'agit de déterminer comment utiliser la température et le local et pourquoi choisir ces données là et pas un autre.
  • Structuration du contenu : prévoir comment ces informations apparaîtront. Par exemple, devons-nous utiliser la température avant le local ou vice-versa ?
  • Agrégation : écrire et fusionner des phrases similaires afin que le flux de lecture paraisse naturel pour le lecteur.
  • Lexique : déterminer les mots et les concepts qui seront utilisés dans le texte et justifier ce choix.
  • Création d'expressions de référence : décider de la manière selon laquelle il faut faire référence à des objets, des noms et des concepts déjà cités dans le texte. Par exemple, nous pourrions utiliser « la plus belle ville des États-Unis » , «  Manhattan » , «  la ville » pour faire référence à «  New York ».
  • Réalisation : c'est ici que vous écrivez le texte proprement dit, en tenant compte de la syntaxe, de la morphologie et de l'orthographe. Le texte final doit être grammaticalement correct et sa tonalité doit ressembler à celle d'un texte écrit par un humain.

Une logique complexe peut et doit être utilisée lors de l'utilisation de text spinners et de templates. Dans notre exemple pour la température, nous pourrions définir différentes phrases en fonction de la température réelle. S'il pleut, nous pourrions créer un ensemble de messages rappelant à l'utilisateur d'apporter un parapluie.

Considering anaphoras is also extremely important when building text. Your spinner should take into account the use of expressions whose interpretation depends upon another expression in context and provide solutions for cases where we need to add, remove or replace tokens such as “à New York », «aux États-Unis », ou en anglais «at 55 Oxford Street” ou “on the Hudson River”.

L'usage de langues naturelles contrôlées pour la génération automatique de textes

La notion de langues naturelles contrôlées (LNC) est bien connue dans le domaine de la traduction. Une LNC est un sous-ensemble d'une langue naturelle, telle que le français ou l'anglais, obtenue par la réduction et la restriction de certaines règles de grammaire et de vocabulaire afin de limiter ou d'éliminer l'ambiguïté et la complexité.

Les langues naturelles contrôlées sont utilisées, par exemple, par les multinationales qui produisent une multitude de documents par différents employés. Afin de conserver une unité relative, des règles sont introduites pour simplifier et assurer la cohérence des contenus.

Outre le renforcement de la cohérence du ton, les LNC (ou langues techniques) peuvent également améliorer la lisibilité et permettre l'analyse sémantique automatique.

La création d'un langage technique peut améliorer non seulement la traduction automatique (et donc réduire le coût de la traduction du contenu vers d'autres langues). C'est aussi un excellent moyen de générer des modèles qui peuvent être utilisés plus tard par les spinners. Les LNC imposent des restrictions au rédacteur en établissant une série d'instructions sur la manière d'écrire quelque chose.

En général, les instructions peuvent être quelque chose comme «  gardez les phrases courtes » , «  évitez la voix passive » ou «  utilisez des mots approuvés par un glossaire » . Mais vous pouvez utiliser cette idée générale pour créer de puissants ensembles de modèles qui pourraient être utilisés pour tirer parti de la génération de texte.

Les LNC ne sont pas seulement utiles pour créer des templates, mais aussi pour le training de modèles de machine learning et pour l'amélioration de la traduction automatique. Comme la langue est ambiguë, les modèles entraînés au moyen d'une langue contrôlée n'ont pas à faire face à l'ambiguïté, aux anaphores et autres ni à des règles de grammaire complexes.

Dans son article « Controlled Language Optimized for Uniform Translation (CLOUT) »​4​, Muegge définit un jeu de règles qui pourraient être utilisées pour réduire l'ambiguïté et créer une LNC, comme par exemple :

  1. Écrivez des phrases de moins de 25 mots.
  2. Soyez bref.
  3. Evitez la voix subordonnée.
  4. Ecrivez une phrase par idée.
  5. Évitez le gérondif.
  6. Répétez les phrases qui expriment le même contenu.
  7. Travaillez avec les répétitions et évitez les synonymes.
  8. Écrivez des phrases complètes grammaticalement et orthographiquement.
  9. Utilisez la forme active.
  10. Répétez le nom au lieu d'utiliser des pronoms.
  11. Utilisez des articles pour faciliter l'identification des noms.
  12. N'utilisez pas de mots techniques.

L'essentiel consiste à utiliser des structures de phrases simples pour améliorer la lisibilité et la facilité d'utilisation. Cela permet également de créer un langage structuré prêt à être utilisé avec l'identification des structures-type.

Cependant, certaines règles de création de la LNC semblent aller à l'encontre de la règle d'agrégation, qui dit que les phrases doivent être fusionnées et que la pronominalisation doit être utilisée. Un langage technique n'est que l'un des nombreux moyens que l'on peut trouver pour simplifier la tâche de création de textes naturels. Mais ce n'est pas le seul.

La GLN n'a pas besoin d'être difficile ou fantaisiste

Je suis le genre de personne qui aime connaître ce qui est tendance dans l'informatique, mais je recommande généralement aux autres de rester à l'écart de ce qui brille jusqu'à ce que le citoyen moyen y ait accès.

Le deep learning, c'est bien, beau et impressionnant, mais cela ne convient pas à tout le monde. Il existe des moyens plus simples de commencer à générer du contenu qui pourraient faire des merveilles pour n'importe quelle entreprise avec un programmeur ayant une connaissance de base de Python.

Avez-vous déjà envisagé cette alternative ? Avez-vous déjà essayé d'utiliser la génération naturelle du langage dans votre entreprise ou pour un projet ? Comment cela s'est-il passé ?

Références

  1. 1.
    ELIZA. Wikipedia. ELIZA. Wikipedia. Accessed December 15, 2020. https://en.wikipedia.org/wiki/ELIZA
  2. 2.
    WordStar Training Guide . Bitsavers. Publié en février 1983. Consulté le 15 décembre 2020. http://www.bitsavers.org/pdf/microPro/Wordstar_3.3/Wordstar_Training_Guide_2ed_Feb83.pdf
  3. 3.
    Dale R, Reiter E. Building Natural Language Generation Systems. Cambridge University Press; 2000.
  4. 4.
    Muegge U. Controlled Language Optimized for Uniform Translation (CLOUT). unpublished. Publié en ligne 2002:2. Consulté le 16 décembre 2020. https://works.bepress.com/uwe_muegge/88/download/

N'oublies pas de partager :

Partager sur linkedin
Partager sur twitter
Partager sur whatsapp
Partager sur facebook

Laisser un commentaire