Analyser des dossiers d'étude d'impact environnemental: de l'annotation à la détection d'entités nommées
|
|
Le besoin
Repérer rapidement les termes clé d'un document
Je suis responsable d'un service public chargé de l' évaluation environnementale des projets sur le territoire français. Lorsqu'un projet est proposé, il est accompagné d'une étude d'impact environnementale que mon équipe doit analyser en profondeur.
Le dossier d'étude d'impact est composé de fichiers PDF volumineux, ce qui pose plusieurs problèmes :
- leur prise en main est longue et fastidieuse, ce qui rallonge grandement leurs délais de traitement,
- les informations clés sont souvent parsemées au fil du texte, ce qui demande beaucoup d'effort et d'attention de la part de l'agent pour ne pas les manquer.
Avec l'expérience, mes agents ont constaté que, souvent, les informations clés qu'ils recherchaient pouvaient être classées dans différentes catégories :
- acteurs impliqués dans le projet (entreprises, organisations...),
- mentions de textes de loi,
- lieux,
- noms des personnes chargées du projet (maîtres d'ouvrage, architectes...),
- diverses dimensions et mesures (superficies, distance entre deux points...).
L'idéal serait donc de pouvoir rapidement repérer ces informations, afin que l'agent puisse se consacrer davantage aux aspects plus complexes du dossier.
Est-ce qu'il existe une technologie du Traitement Automatique des Langues répondant à mon besoin ?
La solution
Surlignage des entités nommées
Oui, le Traitement automatique des langues (TAL) peut tout à fait aider à résoudre ce type de besoin, car est possible de détecter et surligner automatiquement les termes clé d'un document.
Le cas présenté est un exemple d'application de reconnaissance d'entités nommées (ou NER pour Named Entity Recognition).
C'est ainsi que l'on nomme, en TAL, les catégories d'informations que les agents ont identifiées au cours de leur travail : il s'agit de toute expression dans un texte désignant une entité, un concept ou un objet. Les entités nommées sont typiquement des noms de lieux, de personnes ou d'organisations, et il est également possible de créer de nouvelles catégories en fonction du besoin de l'utilisateur.
La reconnaissance d'entités nommées s'opère par plusieurs étapes :
- définir des catégories pertinentes,
- constituer un corpus de référence,
- développer le modèle de détection automatique.
Pour la reconnaissance d'entités nommées, plusieurs technologies du TAL peuvent être employées, comme les méthodes heuristiques (à base de règles prédéfinies) ou l'apprentissage automatique (ou machine learning). La technologie choisie dépend du contexte applicatif. Nous présentons ici la méthode par apprentissage automatique.
Définir des catégories d'entités nommées pertinentes
A ce stade, le dialogue avec les futurs utilisateurs de l'outil est indispensable : il faut décider des entités nommées (c'est à dire des mots-clé) qui seront utiles ou pas. Dans cette étude de cas, l'expérience métier facilite grandement cette étape, puisque les agents ont déjà une idée des catégories qui leur seraient pertinentes.
On peut commencer par lister, avec les agents, les termes qu'ils aimeraient voir surlignés dans le texte et identifier leurs variants.
Puis, l'enjeu est de faire correspondre ces termes avec les catégories souhaitées, afin de créer un schéma cohérent. Cela passe par des séances de questions-réponses.
Par exemple, dans le cas des lieux, plusieurs questions peuvent êtres posées aux agents :
- De quel niveau de granularité a-t-on besoin ? Faut-il des communes, départements ou régions ?
- Qu'en est-il des noms d'espaces naturels (bassins, grottes, massifs...) ?
- Qu'en est-il des cours d'eau ?
On pourra ensuite définir une catégorie "LIEU", et, selon les réponses des agents, y inclure des sous-catégories, ou bien choisir de créer d'autres catégories indépendantes, comme "ESP-NAT" pour les espaces naturels ou "C-EAU" pour les cours d'eau.
Suivant cet exemple, "Charente-Maritime" pourra être mis dans la catégorie "LIEU", tandis que "Gouffre de Cabrespine" ira dans la catégorie "ESP-NAT".
Cela permet de créer un schéma d'annotation, document qui énumère et définit les catégories d'entités nommées en donnant des instructions pour leur annotation.
Établir un schéma d'annotation
Annoter les entités nommées présente souvent des exceptions et difficultés conceptuelles, nécessitant un cadrage clair. C'est tout le but du schéma d'annotation, qui pose les limites du projet.
Cela passe par :
- la définition des catégories,
- l'identification des ambiguïtés et exceptions,
- un ensemble de directives pour l'annotation des données.
Voici un tableau récapitulatif :
| Fonction | Application dans le schéma d'annotation |
|---|---|
| définir des catégories |
|
| identifier les ambiguïtés et exceptions |
|
| directives pour l'annotation des données |
|
Pour rédiger le schéma efficacement, il est recommandé de se baser sur des documents déjà existants et des standards reconnus (tels que Universal NER, par exemple).
Constituer un corpus de référence
Qu'est-ce qu'un corpus de référence et à quoi ça sert ?
Créer un modèle qui détecte automatiquement les entités nécessite un corpus de référence, ou corpus d'entraînement : ce sont les données que le modèle ingère et grâce auxquelles il apprendra un ensemble de règles statistiques.
Le corpus d'entraînement se doit donc d'être d'excellente qualité. Il doit être représentatif du type de documents que les agents analysent, et il doit être annoté en entités nommées, en suivant les indications du schéma d'annotation. Concrètement, cela revient à avoir, pour chaque texte du corpus, des indications sur la présence de ces entités nommées, leur catégorie, ainsi que leur position.
Il faudra veiller à mettre de côté une partie des données, car elles serviront à évaluer les performances du modèle après l'entraînement. C'est ce qu'on appelle les données de test. En général, on consacre 80% à l'entraînement et 20% au test.
Enfin, il faut prendre plusieurs questions en compte :
- le volume des données : plus il y a de données (variées), plus le modèle sera performant ;
- le coût de l'annotation : des données de qualité nécessitent des annotateurs compétents et des outils adaptés.
Il faut donc trouver un équilibre temps/coût/performance.
Comment préparer le corpus?
Les études d'impact sont des documents publics disponibles en téléchargement sur Internet, on peut aisément les récupérer automatiquement par crawling.
Il s'agira par la suite de traiter ces documents pour les préparer à l'annotation :
- extraire le texte du fichier PDF,
- nettoyer le texte : séparer les titres des paragraphes, enlever les en-têtes et pieds de page...
- uniformiser le format : séparer le texte en petites portions cohérentes de longueurs égales et les convertir en un format exploitable, par exemple au format JSON.
Comment annoter le corpus ?
Bien souvent, on a recours a l'annotation semi-automatique : une première passe est faîte par des règles (telles que des expressions régulières) ou un modèle déjà disponible. Une deuxième passe manuelle est ensuite effectuée par un annotateur humain, qui corrige les erreurs et omissions.
L'active learning est un procédé plus rapide, et sera abordé plus bas.
Développement d'un modèle de détection d'entités nommées
Quel modèle choisir pour la reconnaissance d'entités nommées ?
Aujourd'hui, les modèles les plus performants pour la reconnaissance d'entités nommées sont ceux qui utilisent l'apprentissage profond (ou deep learning), en particulier les modèles de type « transformer » comme BERT. C'est donc vers ce type de technologie que l'on souhaite se tourner.
Lorsque l'on veut développer un modèle, on doit aussi prendre en compte plusieurs facteurs, notamment temporels et financiers : combien de temps prendra l'entraînement ? Est-ce qu'il existe des ressources ouvertes et gratuites ?
Deux choix se présentent en général :
- créer un modèle de toute pièce (assez chronophage),
- prendre un modèle déjà existant et le ré-entraîner pour l'adapter à nos données ; cela s'appelle le fine-tuning.
Le choix du type d'entraînement dépend aussi du volume de données disponibles. Pour plus d'informations sur les solutions en cas de données insuffisantes, voir cet article.
La reconnaissance d'entités nommées étant une tâche très commune en TAL , beaucoup de modèles sont régulièrement entraînés et diffusés pour le grand public, avec des suites d'outils permettant de les manipuler.
Entraînement, évaluation et mise à jour
Entrainement par active learning
Un volume conséquent de données et peu d'annotateurs disponibles peuvent rendre l'annotation très chronophage. L'active learning est une option intéressante : elle permet d'accélérer le processus d'annotation sans trop impacter la qualité des données.
C'est une méthode itérative où l’on se sert des prédictions d’un modèle pour annoter de nouvelles données et entraîner un nouveau modèle avec ces dernières.
Il se résume aux étapes suivantes :
- Entraîner un modèle avec un premier corpus dit "gold".
- Evaluer le modèle.
- Produire des annotations avec les prédictions du modèle. Un score d’incertitude permet de déterminer quelles données ont été difficiles à annoter pour le modèle.
- Corriger manuellement les données ayant de mauvais scores d’incertitudes.
- Intégrer les données validées au corpus "gold".
- Revenir au 1.
L’apprentissage se poursuit jusqu’à ce que les scores obtenus lors de l’évaluation soient satisfaisants ou qu’ils stagnent.
Évaluation
Enfin, il faut évaluer la performance du modèle, en le confrontant aux données de test.
Trois métriques spécifiques sont utilisées pour évaluer la qualité de la reconnaissance d'entités nommées :
- la précision : le pourcentage d'entités nommées correctement repérées parmi tout ce qui a été repéré par le modèle ;
- le rappel : le pourcentage d'entités nommées repérées par le modèle parmi toutes celles qu'il fallait repérer dans le texte ;
- la F-mesure (ou F-score), moyenne de la précision et du rappel, qui permet d'avoir une vision globale des performances.
Ces mesures nous informent sur le nombre d'entités repérées correctement et les catégories d'entités les mieux détectées.
Mise à jour
En fonction des résultats de l'évaluation, les points faibles du modèle sont trouvés et plusieurs solutions d'amélioration sont envisagées :
- ajuster les données d'entraînement, en ajoutant par exemple plus d'entités nommées issues d'une certaine catégorie,
- changer les paramètres du modèle : ajouter du temps d'entraînement, changer la fonction de perte...
Points d'attention
Points d'attention
Le format PDF, en particulier pour les fichiers volumineux, pose certains problèmes techniques - il faut souvent recourir à des pipelines de traitement complexes pour extraire leur contenu. Plusieurs difficultés peuvent se présenter :
- le texte peut ne pas être extrait dans sa totalité, être mal reconstitué, ou bien présenter des coquilles. Pour cela, on peut avoir recours à l'OCR;
- les tableaux et images sont difficiles à retranscrire, mais les Grands Modèles de Langage (GLM ou Large Language Models/LLM en anglais) actuels sont une solution efficace ;
- les différents éléments textuels (titres, sous-titres, légendes, en-têtes, pieds de pages...) sont souvent peu identifiables. On peut avoir recours à des modèles de classification spécialisés ou bien mettre en place des scripts sur-mesure.
Note de fin
Cette étude de cas retrace les débuts du projet LIRIAe initié en 2022. Le projet a depuis évolué au fil des progrès technologiques offerts par les LLM et présente aujourd'hui des fonctionnalités plus variées, telles que la recherche sémantique et la Generation Augmentée par le recherche (Retrieval Augmented Generation ou RAG en anglais).