Cas d’usage

Nous avons testé plusieurs modèles de Traitement du Langage Naturel dans le cadre de la conception d’une application mobile. Le but étant d’identifier les parties de phrases contenant divers degrés de violence ou d’approches propres à déclencher des conflits, et de proposer des conseils appropriés.

Nous sommes parties d’un jeu de données constitué de plusieurs milliers de phrases et annoté par des médiateurs et formateurs certifiés en Communication Nonviolente.

Chaque phrase de voit attribuer un score de nonviolence, avec 2 classifications en fonction des conseils à donner.

Nous avons conçu un système de nettoyage qui permet de réécrire les phrases dans un langage homogène, en remplaçant les abréviations par exemple. Ce texte plus facilement interprétable par l’ordinateur.

Ensuite nous avons mis en place une stratégie pour augmenter artificiellement le nombre de lignes dans le jeu de données. Deux stratégies ont été utilisées. La première qui consiste à remplacer certains mots par leur synonyme pour enrichir le vocabulaire appris par le modèle, et la seconde qui consiste à traduire automatiquement la phrase dans un autre langage, puis la retraduire en français, ce qui la réécrit différemment pour le même sense.

Ensuite nous avons testé 3 types de modèles:

  • Un modèle léger, qui consiste à donner à manger chaque mot à un réseau de neurones qui possède une entrée par mot du dictionnaire, ainsi que pour certains groupes de mots attenants. Malgré la grande dimension du vecteur d’entrée, ce modèle est extrêmement rapide. Assez pour permettre de l’inférence en temps réel sur n’importe quel appareil mobile, sans recourir à un serveur.
  • Un modèle intermédiaire, qui consiste à découper la phrase en sujet/verbe/compléments et à transformer chaque partie en vecteur de sens avec un outil traditionnel appelé Word2Vec.
  • Un modèle avancé de l’état de l’art. En important un gros réseau de neurones, BERT, pré-entraîné par Google sur des milliards de documents, en l’adaptant à nos usages. Cela consiste à garder la partie capable de comprendre le langage, de continuer à l’entraîner sur des données proches de nos besoins, puis d’y ajouter de nouvelles couches de neurones spécialisées sur les taches que nous voulons réaliser. Le modèle résultant est beaucoup plus lourd puisque le réseau de neurones pèse à lui seul 1Go. Toutefois, une fois entraîné, il permet d’obtenir les résultats en quelques milisecondes.

Le modèle avancé permet de “noter” les phrases avec seulement 2% d’écart moyen par rapport aux notes mises par les experts. Le modèle léger affiche 8% d’écart moyen sur la note, ce qui est tout fait acceptable pour une application légère embarquée.

Ces modèles sont explicables. Il est possible de connaître le degré de confiance qu’a le réseau dans ses propres prédictions. Il est aussi possible d’identifier le rôle de chaque mot dans la prédiction qui est faite.

Laisser un commentaire