Une Intelligence Artificielle (IA) appliquée à l'extraction d'information dans des textes non formatés.

Présentation

Exemple d'entraînement et d'usage d'une IA appliquée au traitement automatisé du langage

Extraction d'information

L'extraction d'information (information retrieval - IR - en anglais) est une tâche classique en traitement automatisé du langage et s'il existe de nombreux exemples en anglais on trouve peu de cas d'usage dans la langue de Molière. L'objectif ici est de repérer des éléments spécifiques dans des textes de jurisprudence, plus spécifiquement les dates d'accident et de consolidation, sachant qu'il y a un nombre conséquent de dates qui apparaissent.

Eléments contextuels

Lors de la procédure de suivi des conséquences d'un accident on peut détailler les étapes suivantes:

  • date de l'accident
  • date de déclaration du sinistre
  • date de consolidation (la consolidation correspond à la stabilisation de l’état de santé de la victime après un accident)
  • date de décision judicière d'indemnisation lorsque l'assurance et la victime ne se mettent pas d'accord sur le montant à verser par l'assureur.

Le but ici est de trouver la date de l'accident et l'éventuelle date de consolidation dans chaque texte de jurisprudence proposé.

L'IA est entraînée sur un reccueil d'environ 600 textes pour lesquelles les dates recherchées ont été annotées. On présente ensuite une centaine de textes qu'elle n'a jamais vu pour évaluer ses performances. Le modèle actuel permet d'obenir un taux de réussite d'environ 83%.

Exemple

Théorie et pratique

Sous le capot de notre IA

Etapes de la construction du modèle d’apprentissage utilisé:

  • Repérer les dates dans les documents en utilisant des expressions régulières.

  • Construction d’un ensemble d’entraînement avec autour de chaque date une fenêtre de mots à considérer (hyperparamètre qui sera optimisé dans les phases de recherches).

  • Pour chaque document proposé pour l’entraînement de l’IA on connait les dates cibles, ce qui permet d’avoir un jeu de donnée avec les étiquettes correspondantes (date recherchée ou pas). Bien sûr comme souvent en NLP (Natural language processing, Traitement Automatisé du Langage) le jeu de données final est très déséquilibré, ce qui nous contraint dans le choix des métriques d'évaluation du modèle.

  • Vectorisation des "phrases" autour des dates pour pouvoir utiliser un classificateur. La première phase est de transformer des chaines de caractères de chacun des mots en vecteurs numériques de grande dimension. Dans l’exemple présenté nous utilisons une version de Bert proposée par l’INRIA: CamemBERT. Les mots-vecteurs sont utilisés sans "fine tuning" au vu la faible taille de l’ensemble d’entraînement.

  • Ces vecteurs sont injectés dans un réseau neuronal récurrent (RNN) avec des cellules de type LSTM. Ce qui permet d'extraire pour chaque phrase un vecteur spécifique qui est envoyé dans un classificateur du type réseau neuronal simple couche. L'entraînement permet de spécifier l'ensemble des poids correpondants aux degrés de liberté de notre système.

Les outils

  • Pour le backend:

    Python, Pytorch, Bert, Pandas et pas mal d’expressions régulières (merci regexr) sur un serveur dédié

  • Pour le front:

    Flask, Bootstrap, Ajax avec un déploiement sur Heroku

Un texte de jurisprudence pris au hasard

Inférence

Une fois la phase d'apprentissage effectuée, notre IA est maintenant entraînée et nous pouvons lui présenter de nouveaux textes de jurisprudence auxquels elle n'a pas été confrontée. C'est ce qui est proposé sur ce site, tous les textes sont nouveaux pour notre IA. Sachant que pour la pertinence de la démo, ce sont des textes annotés qui sont présentés afin de pouvoir présenter un comparatif entre les dates réelles et les dates inférées.

L'intérêt de ce type d'IA est qu'un opérateur peut valider les nouveaux résultats et ainsi accroitre le nombre de textes annotés. De nouveaux entraînements de l'IA sur des ensembles plus vastes permettent d'en augmenter les performances au fur et à mesure.

Les résultats de l'analyse d'un texte par l'IA sont présentés sous la forme de deux cadrans. Pour des raisons de praticité pour surligner les éléments informatifs le texte initial est un peu modifié: les dates sont toutes formatées.

Remerciements

Un grand merci au Collège de France de nous faire profiter des excellents cours de Stéphane Mallat , et à toute son équipe pour avoir mis à disposition en partenariat avec Predilex le jeu de données sur lequel s’est appuyé ce travail.

Cette démonstration est issue du travail fait pour le challenge de 2020: Le NLP appliqué à l’analyse de décisions juridiques

Pour les (futurs) experts en science des données le site challenge data propose pléthore de problèmes passionnants et issus de problématiques concrètes et réelles.