Dans cet article, nous allons détailler les briques principales de l’intelligence artificielle de DiliTrust afin de démystifier et de rendre plus concret le travail de notre équipe de Data Scientist. Il s’adresse à un public novice et désireux de comprendre davantage certaines techniques d’intelligence artificielle.
Dans le processus d’analyse de contrats développé par DiliTrust, tout commence bien souvent par de l’analyse d’image. En effet, la majorité des documents que nous traitons sont des documents scannés dans lesquels le texte n’est pas directement accessible. Il est donc nécessaire de passer par une étape d’analyse d’image qui a pour but de résoudre les problèmes suivants :
- extraire le texte de l’image (Optical Character Recognition ou OCR),
- extraire des éléments visuels importants comme des paraphes, signatures ou tampons,
- comprendre l’ordre de lecture du document, particulièrement nécessaire pour les documents multi-colonnes.
Bien que ces différentes tâches puissent paraître sensiblement différentes, elles font en réalité appel à des techniques d’analyse similaires.
Découvrez dans cet article les techniques d’analyse ainsi que leurs applications concrètes dans la gestion de contrats.
Comment analyser visuellement un contrat ?
Les techniques d’analyse d’image que nous utilisons chez DiliTrust reposent sur des réseaux de neurones qui ont pour but d’extraire des représentations intéressantes, des features, utilisées ensuite pour résoudre un problème concret.
Pour la suite, imaginons que nous cherchions à savoir si notre contrat est signé :
Tout d’abord, qu’est-ce qu’une image d’un point de vue du réseau de neurones ?
Lorsque nous voyons un contrat, le réseau, lui, voit un immense tableau de chiffres, une matrice. Chacune des cases de cette matrice contient 3 valeurs qui correspondent à l’intensité des couleurs rouge, verte et bleue de chaque pixel de l’image. Cette matrice contient plusieurs millions de cases.
Cette représentation n’est pas très adaptée pour en déduire si notre contrat contient ou non une signature. En effet, pour cela, nous avons besoin d’analyser notre image à plus grande échelle, de trouver des zones d’intérêt qui regroupent plusieurs pixels. Autrement dit, nous avons besoin de faire des liens entre différentes parties de notre image.
Pour faire cela, nous utilisons des réseaux de neurones dits convolutionnels. Un filtre de convolution peut être vu comme une fenêtre qui va glisser sur l’image initiale, notre grande matrice, et qui va faire des opérations mathématiques sur l’ensemble des pixels contenus à l’intérieur de cette fenêtre. De ce fait, ce filtre va permettre d’extraire de l’information localement entre les différents pixels contenus à l’intérieur de la fenêtre.
Ces filtres ont toujours été utilisés en analyse d’image, avant même les réseaux de neurones, pour faire de l’analyse d’image. En effet, ils permettent notamment de flouter une image, détecter des contours ou encore améliorer la netteté, en modifiant simplement les paramètres qui composent ce filtre. L’exemple ci-dessous, montre le résultat d’une convolution qui consiste simplement à prendre la moyenne des pixels autour d’une position donnée. On voit que lorsque l’on augmente la taille du voisinage considéré, l’image devient plus floue.
Les avancées récentes dans le domaine de l’analyse d’image par réseaux de neurones convolutionnels viennent du fait que les filtres de convolution sont désormais appris par le modèle lors d’une phase d’entraînement. Les filtres obtenus sont donc, en théorie, les plus adaptés à la tâche sur laquelle le modèle a été entraîné. Néanmoins, là où nous gagnons en performance, nous perdons en interprétabilité. En effet, les filtres ainsi appris ont un effet plus difficile à interpréter que ceux que nous avons pu présenter.
L’analyse d’image dans la gestion de contrats
OCR
L’OCR est l’étape qui permet de localiser et d’extraire l’ensemble des mots et des lettres contenus dans une image. C’est une étape indispensable lorsque l’on souhaite extraire et analyser l’information textuelle contenue dans un contrat. Au sein de DiliTrust, nous utilisons notre brique d’OCR pour :
- Indexer automatiquement le contenu de vos contrats afin de vous proposer un moteur de recherche puissant,
- Analyser et extraire le contenu de vos contrats afin d’en extraire les éléments les plus importants tels que les parties au contrat, la date d’expiration, la durée du préavis ou encore certaines clauses (force majeure, responsabilités, …).
Analyse de la structure du document
Un contrat ce n’est pas toujours qu’une succession de clauses et son format peut grandement varier d’une entreprise à l’autre. Les variations possibles dans la structure des contrats sont multiples : multi-colonnes, tableau, formulaire… Afin de proposer l’analyse la plus robuste possible, nous avons développé notre propre brique d’analyse de la structure du document pour :
- améliorer les étapes d’analyses et d’extractions qui sont particulièrement sensibles à la qualité du texte;
- détecter des zones d’intérêt éventuelles (tableaux, entête, pieds de page…) pour les ignorer ou au contraire aller y chercher une information particulière.
Extraction des signatures
Un contrat ne devient valable que lorsqu’il a été signé, c’est donc bien souvent une des premières choses que les clients DiliTrust cherchent à contrôler. En plus des signatures, notre IA est capable de détecter les paraphes et les éléments manuscrits d’un contrat afin d’identifier rapidement ratures et corrections éventuelles.