Comment nous utilisons l’IA dans notre suite Averroes

IA

“The question of whether Machines Can Think… is about as relevant as the question of whether Submarines Can Swim”

Dijkstra (1984) The threats to computing science

workshop1

Le terme « Intelligence Artificielle » est devenu, de nos jours, couramment utilisé. Nous l’entendons un peu partout sans pour autant comprendre de quoi il s’agit vraiment ni en quoi cela nous concerne.

L’Intelligence Artificielle (IA) nous fait directement penser à des machines ou des robots sophistiqués qui sont conçus pour réaliser des tâches complexes, ou encore à des expérimentations top secrètes et des labos ultra-sécurisés.

Au fait, nous utilisons l’IA dans notre vie de tous les jours sans vraiment y faire attention et parfois même sans s’en rendre compte. Par exemple, en se connectant sur les réseaux sociaux, nous trouvons des suggestions d’amis, de groupes, de pages ou encore de vidéos. Une telle fonctionnalité peut nous sembler basique, mais en regardant de plus près, nous trouvons que ces suggestions sont ciblées et correspondent à nos préférences et aux contenus auxquels nous accédons dans notre quotidien. Ceci est possible grâce à l’IA et les exemples ne manquent pas, comme la reconnaissance vocale, la traduction automatique, ou encore les jeux vidéo.

Notre équipe, fidèle à ses traditions et dans une optique d’amélioration continue, travaille d’arrache-pied et dans une logique d’excellence technologique, pour offrir à nos clients les meilleures solutions. C’est ainsi que nous utilisons l’IA dans notre suite Averroès ! Pour être plus précis, nous œuvrons dans un domaine très spécifique de l’IA, qui est l’Apprentissage Automatique, plus connu sous le nom de Machine Learning. Ce mot vous interpelle sûrement, lisez donc notre article INTRODUCTION À L’APPRENTISSAGE AUTOMATIQUE AVEC SCIKIT-LEARN.

Nous disposons de notre outil de scan Scan2Averroès qui utilise le Machine Learning pour la Reconnaissance Automatique de Documents – RAD et la Lecture Automatique de Documents – LAD. Nous allons maintenant décrire, d’une façon simple, ce qui se passe lorsqu’un document est scanné et traité et les différentes étapes par lesquelles il passe.

Tout d’abord, le document scanné peut être de mauvaise qualité. Dans ce cas, le document subit ce qu’on appelle un prétraitement, qui est un traitement d’image pour améliorer sa qualité et faciliter l’extraction de l’information par la suite. Parmi les traitements subis, nous pouvons citer l’ajustage de la luminosité et du contraste, la suppression de bruits, les transformations géométriques ou encore la correction de distorsions, et la liste est longue.

Après que le document ait été traité, il passe ensuite par la RAD. La technique de Machine Learning utilisée est « Les forêts d’arbres décisionnels », plus connue sous le nom de « Random Forest ».

Pour mieux comprendre ce qui se passe à ce niveau, nous allons faire une analogie. Notre algorithme sera un homme appelé Mehdi. Mehdi a un grand échantillon de documents de différents types et il doit apprendre à reconnaître le type de chaque document mais aussi apprendre à classifier tous les documents qu’il recevra au futur selon ce qu’il aura appris. Cette tâche s’avère lourde et notre ami Mehdi peut se tromper, mais heureusement qu’il a une équipe qui va l’aider : Oussama, Malek, Imen et Abrar. Mehdi va distribuer un sous-échantillon différent de l’ensemble d’apprentissage à chacun de ses amis qui vont, chacun à sa façon, et en se basant sur des caractéristiques (features) attribuées aux documents, essayer de reconnaitre le type de chaque document.

Essayons de simplifier les choses. Nous allons dire que nous possédons trois types de documents : Type X, Type Y et Type Z. En parallèle, chaque document possède un vecteur ou ensemble de features [A,B,C] qui le caractérisent où A, B et C sont des chiffres.

Chacun de nos amis possède sa propre façon de traiter cette information (ce qui correspond aux différents arbres de décisions). A titre d’exemple, Abrar va baser sa décision sur la valeur de A :

  • si A>0 alors le document a 60% de chance d’être de Type X et 40% de Type Y
  • si A<0 alors le document a 70% de chance d’être de Type Z et 30% de Type Y

Si par exemple, A>0 pour un document donné, Abrar va tester la valeur de C :

  • si C>0 alors le document est de Type X
  • si C<0 alors le document est de Type Y

Dans le cas inverse, si A<0, Abrar va tester la valeur de B :

  • si B>0 alors le document est de Type Z
  • si B<0 alors le document est de Type Y

Pareillement, Oussama, Malek et Imen vont chacun définir sa façon de traiter l’information en se basant sur l’apprentissage effectué sur l’échantillon qu’il a reçu au début. Leurs choix peuvent donc diverger.

Par exemple, pour un document donné, Imen et Oussama vont prédire qu’il est de Type X, Malek va prédire qu’il est de Type Y, et Abrar va prédire qu’il est de Type Z. Mehdi va conclure que le document est de Type X en se basant sur un vote à la majorité.

Et voilà, finalement Mehdi et ses amis forment maintenant un ensemble d’arbres de décisions, ou ce que nous appelons Random Forest.

Après cette phase dite d’apprentissage, nous passons à la phase de test. A ce niveau, nous devons impérativement utiliser un échantillon différent de celui utilisé précédemment. Selon les résultats obtenus, nous pouvons recommencer la phase d’apprentissage en modifiant les features utilisés jusqu’à ce que le résultat soit satisfaisant.

Après avoir effectué les tests, notre logiciel est prêt à être utilisé. Chaque document scanné est traité et deux cas de figure se présentent :

  • Le document n’est pas reconnu et est classé en tant qu’élément de type inconnu. Le logiciel nous laisse la main d’indiquer manuellement le type
  • Le document est reconnaissable et le logiciel nous indique sa prédiction pour son type, tout en nous laissons la main de changer manuellement le type en cas d’erreur

Par la suite, la Lecture Automatique de Documents – LAD vient terminer ce que la RAD a commencé. Pour une explication simple, une fois que le type de document est reconnu, nous pouvons en extraire l’information dont nous avons besoin. La première étape consiste à localiser les champs qui contiennent l’information. Cette étape est très délicate pour pouvoir extraire l’information correcte. Après que le champ ait été localisé, il est traité par un moteur de Reconnaissance Optique de Caractères, ou comme on l’entend plus souvent, un moteur OCR (Optical Character Recongnition). Ce moteur se base également sur le Machine Learning et est passé par les phases d’apprentissage et de test. Le problème à ce niveau est que beaucoup de caractères se ressemblent et la prédiction peut être erronée surtout si la qualité du document n’est pas optimale. A titre d’exemple la lettre O peut être confondue avec le chiffre 0, ou encore la lettre B avec le chiffre 8. Pour remédier à ce problème, et dans le but d’optimiser les résultats, nous utilisons ce qu’on appelle des contraintes pour chaque champ à traiter. Par exemple, nous pouvons indiquer qu’un champ est strictement composé de lettres, ainsi le résultat obtenu ne contiendra que des lettres. Pour cela nous avons recours aux expressions régulières – REGEX ce qui nous permet d’avoir un fort taux de fiabilité. Finalement, les informations dont nous avons besoin sont extraites du document et sont validées ou corrigées si nécessaire.

Voilà en bref, comment nous utilisons l’IA dans notre suite Averroès. Ce que nous vous offrons n’est pas seulement un outil de capture. En complément, et en se basant sur le Machine Learning, et plus précisément sur les technologies RAD, LAD et OCR, notre solution vous permet de classifier automatiquement vos documents mais aussi d’en extraire et lire les données dont vous avez besoin.

Les commentaires sont fermés.