Introduction

Les techniques de Traitement Automatique des Langues (NLP) ont fait d’énormes progrès au cours des deux dernières années, notamment grâce à des algorithmes tels que les réseaux de neurones qui ont surpassés les approches traditionnelles à base de règles. Par exemple, on peut citer la traduction automatique (DeepL, Google Translate…) ou le Speech To Text (Siri…).

L’extraction d’information, une sous-catégorie du NLP, est à présent également impactée.

Cela signifie qu’il est désormais possible de saisir avec une très grande précision la valeur contenue dans un texte : par exemple un paragraphe dans un contrat, un sentiment dans une enquête de satisfaction client ou encore des informations clés dans un rapport médical.

Projets NLP : la “Big Picture”

Bien que cela soit vrai d’un point de vue technique, il faut trois étapes distinctes pour créer réellement de la valeur à partir de données textuelles non structurées, qui sont examinées plus en détail dans cet article.

Concevoir des applications augmentées

Les applications augmentées sont des applications d’entreprise alimentées par l’Intelligence Artificielle. En tant qu’utilisateur final, vous ne l’avez peut-être pas remarqué mais il y a beaucoup d’IA derrière la suggestion de nouveaux contacts Facebook ou la simple saisie d’une recherche Google.

Définir une application d’entreprise utilisant le NLP n’est pas simple, car on ne comprend pas toujours clairement ce que la technologie peut accomplir.

Une première approche judicieuse consiste à identifier des objectifs stratégiques qui peuvent comprendre les éléments suivants :

  • Augmenter l’efficacité opérationnelle du traitement de l’information
  • Obtenir un avantage concurrentiel en recueillant plus rapidement des informations cruciales
  • Mieux satisfaire les clients
  • Utiliser l’information comme un avantage stratégique, généralement en construisant votre propre base de connaissances d’entreprise.

Il faut ensuite définir le cas d’usage de manière concise. Et c’est vraiment le principal défi auquel vous êtes confrontés, la technologie ne doit être qu’un outil permettant de résoudre un problème métier spécifique. Sur la base de discussions avec de nombreuses parties prenantes, voici une liste des cas d’utilisation les plus fréquents en NLP, qui peuvent éventuellement être réalisés de manière simultanée :

  • Automatiser des processus métiers à partir de l’analyse de documents ou de texte.
  • Faire du routage automatique de documents par classification (par exemple, détecter le sujet d’un e-mail entrant, ou classer le verbatim d’un client en différentes catégories correspondant aux irritants).
  • Détecter automatiquement des informations clés dans un texte qui peuvent être un lieu, des personnes, un produit, une valeur, un paragraphe particulier dans un contrat ou un sentiment. Ces valeurs peuvent également être dérivées du contexte (par exemple, les honoraires d’un avocat peuvent être dérivés en détectant un montant lié à un article de loi particulier).
  • Proposer de la recherche augmentée en proposant des filtres de recherche sur des informations très ciblées (par exemple sur des événements de type « attaque terroriste »…)
  • Enrichir les données pour apporter une information en contexte autour d’un élément de texte ou une catégorie détectée, en le rapprochant d’une entrée de base de connaissance (par exemple en reliant automatiquement une thématique d’un article de loi à des décisions de justices associées).
  • Être alerté lorsque de nouvelles informations pertinentes sont disponibles, par exemple en détectant de nouvelles entités inconnues des bases de connaissance existantes (une nouvelle startup, un nouveau virus… constituant ainsi des candidats pour enrichir ma propre base de connaissance) ou bien en détectant les informations manquantes dans les documents, par exemple détecter les clauses manquantes lors de l’analyse des contrats des employés dans un processus de due diligence
  • Obtenir des réponses à des questions qui ont tendance à se présenter sous deux formes :
    • Des questions complexes utilisant des requêtes spécifiques dans des bases de connaissances.
    • Des questions plus basiques exploitant directement la technologie d’apprentissage profond en utilisant des jeux de données de questions-réponses tels que SQUAD. 
  • Établir des relations entre des entités détectées et avec éventuellement les informations contenues dans des bases de connaissances. On parle souvent du Graal du big data, car ces relations ont tendance à être cachées.

Après avoir sélectionné le ou les cas d’usage, l’exercice final consiste à attribuer une valeur aux informations obtenues. Il peut s’agir de plusieurs millions d’euros pour la découverte d’une start-up unique ou d’une technologie précoce, d’une réduction de 30 % des coûts d’un audit financier annuel ou d’une redevance annuelle pour une application qui analyse chaque année 50 000 verbatims d’une marque de consommation.  Il est également important de connaître la fréquence d’utilisation, car de nombreux cas d’utilisation sont des niches et ne sont utilisés que par quelques personnes.

Fig 2 : Un exemple d’application NLP pour l’analyse d’enquêtes clients

Construire des pipelines d’annotation de données

Derrière le front-end des applications augmentées par du NLP, des pipelines d’annotation de données sont exécutés pour extraire et transformer les données à l’aide de divers outils et algorithmes.

La création de ces pipelines est assurée par une équipe pluridisciplinaire de spécialistes des données, d’analystes et d’experts en informatique, et comporte un certain nombre d’étapes :

  • La création d’un corpus d’apprentissage fiable à partir d’un ensemble de textes. D’une manière générale, la valorisation des données textuelles prend beaucoup de temps car les éléments textuels doivent être annotés par des êtres humains qualifiés, généralement des analystes, qui sont souvent en nombre insuffisant. Il n’est pas rare que 70% du temps d’un projet NLP soit consacré à la création du corpus d’apprentissage. D’où le défi d’accélérer ce travail. Cependant, il faut aussi garder à l’esprit qu’il y a toujours un moment où un effort supplémentaire devient non rentable.
  • Plus on s’attaque aux faux positifs et aux faux négatifs, plus le modèle NLP correspondant devient fiable. Il existe différents frameworks d’apprentissage automatique pour créer de tels modèles. La bonne nouvelle est que la grande majorité de ces frameworks sont open source. Mais la moins bonne nouvelle est qu’ils changent et s’améliorent constamment.
  • Les informations extraites peuvent ensuite être combinées entre elles ou encore avec d’autres sources de données, telles que des bases de connaissances soit développées par l’entreprise elle-même soit disponibles en accès libre sur internet telle que Wikidata (la base de connaissances qui sous-tend Wikipédia). La mise en relation d’informations extraites d’un corpus textuel avec une base de connaissance est un moyen de fédérer des silos d’information.
  • Ensuite, les différents modèles et tâches de pré ou post traitement doivent être combinés dans un pipeline d’annotation de données qui alimentera l’application finale.
Figure 3 : pipeline d’annotation de données pour l’analyse de sentiments détectant dans la phrase “bien que j’aie dû attendre 20 minutes, la dame qui m’a aidé était sympathique” deux segments et attribuant à la fois un type de sujet associé à un sentiment.

Les principaux défis à relever sont de réduire le temps (et donc le coût) de configuration des pipelines d’annotation, de fournir des résultats précis grâce à des algorithmes de pointe, d’automatiser les processus tout en permettant aux experts du domaine d’être totalement autonomes grâce à une interface utilisateur conviviale et facile à manipuler.

En bref, les principales caractéristiques attendues sont les suivantes :

  • Charger un corpus de documents textuels dans lequel vous pouvez facilement rechercher et naviguer avec différents niveaux de granularité (un paragraphe dans un contrat par exemple) et différentes options de filtre.
  • Créer des étiquettes manuellement et les utiliser pour créer des annotations, ce qui est aussi simple que de surligner du texte à l’aide de stabilo. Cela peut être fait manuellement bien sûr, mais des techniques d’amorçage avec des lexiques par exemple existent pour accélérer cette première étape.
  • Un moteur de suggestion basé sur l’apprentissage actif permet de gagner un temps considérable en suggérant des éléments de texte pré-étiquetés. Les retours d’expérience montrent un gain d’efficacité compris entre 200 et 300 annotations par heure. En assistant ces tâches fastidieuses, la qualité globale tend à s’améliorer en concentrant les efforts sur les segments les plus importants à annoter, ce qui implique également la nécessité de présenter les segments à annoter de manière intelligente.
  • Expérimenter des modèles en utilisant différents algorithmes NLP à l’état de l’art. Comparer ces modèles et améliorer une étiquette ayant une qualité inférieure jusqu’à ce que vous atteigniez la meilleure qualité globale possible. Un tel processus itératif est très courant dans les projets NLP.
  • Tester les modèles avec un texte non encore annoté pour vérifier les performances.
  • Construire un pipeline d’annotation de données afin de créer un processus d’extraction automatisé de bout en bout.
Figure 4 : Le Studio Kairntech conçu par une équipe de professionnels de l’industrie ayant plus de 20 ans d’expérience dans les technologies linguistiques, répond exactement à ces défis.

Exécution des applications et des pipelines d’annotation de données

Une fois l’application et les pipelines d’annotation construits, ils sont exportés sous forme de fichiers et de containers Docker vers un environnement de production. Une maintenance régulière de la qualité des modèles est également requise.

Ici les fonctionnalités attendues sont les suivantes :

  • Exporter le pipeline d’annotation avec les modèles associés.
  • Exposer une API pour une intégration aisée dans le SI client.
  • Maintenir la qualité des différents modèles dans le temps ou améliorer leur performances en enrichissant simplement les corpus d’entrainement en nouveaux exemples ou contre exemples.

Conclusion

Le marché du NLP devrait croître de 32 % en glissement annuel pour atteindre 260 milliards en 2026. Des solutions faciles à utiliser et intégrées, accessibles aux utilisateurs non informaticien, sont d’une importance capitale pour parvenir à une adoption généralisée des technologies de NLP. En fin de compte, tout se résume à la capacité de créer des applications améliorées rapidement et de manière rentable pour répondre aux nombreuses applications utiles, et souvent de niche, qui attendent d’être lancées sur le marché.