Plan de vol pour : Classification et recherche automatiques de documents

Ce Propulseur a été créé et la documentation rédigée par FormKiq

Les Propulseurs de l’ATIR sont des jeux structurés de ressources en nuage, documentation incluse, illustrant une technologie émergente. Offerts gratuitement, ils ont été conçus par des entreprises canadiennes d’expérience qui ont élaboré des produits ou des services au moyen de la technologie en question et ont accepté de partager leur savoir.

Prêt à décoller?

Voici ce que vous trouverez dans ce Plan de vol.

Aperçu

De quoi s’agit-il?

Une application qui automatise la classification et la recherche de documents est une sorte de logiciel qui recourt au traitement du langage naturel (TLN), à l’intelligence artificielle (IA) et aux algorithmes de l’apprentissage automatique (AA) pour étiqueter automatiquement les documents et les regrouper par catégorie en fonction de leur contenu. L’utilisateur trouve et récupère plus rapidement les documents grâce aux mots-clés ou aux balises créés par l’application.

Les principaux outils employés par ce Propulseur sont les suivants : Micronaut Framework, Apache Kafka, Tesseract OCR (reconnaissance optique des caractères), PyTorch et Elasticsearch. La solution complète est déployée sur deux serveurs : le premier exécute le service Elasticsearch et le deuxième exploite l’API ainsi que l’interface utilisateur.

Quelle utilité pour mon entreprise?

Une application qui classe et recherche automatiquement les documents économisera du temps à l’entreprise et lui permettra de réduire ses coûts en mettant fin aux opérations manuelles qui consistent à organiser et à catégoriser la documentation. Elle permettra aussi à l’utilisateur de trouver l’information pertinente plus vite et plus efficacement.

Particularités de la solution

  • Tous ses éléments émanent d’une source ouverte : l’usage de ce Propulseur n’exige le versement d’aucun droit de licence.
  • Elle est universelle : on peut déployer la solution sur diverses plateformes d’infonuagique.
  • Son architecture se compose de microservices : l’application n’est qu’un assemblage de services lâchement reliés entre eux; chacun peut être déployé et testé séparément et s’entretient très facilement.
  • Elle est d’une grande souplesse : la solution s’adapte aisément à divers cas de figure.

Pourquoi la classification/recherche automatique et pas une autre solution?

Depuis toujours, les organisations bâtissent une solution sur mesure ou acquièrent à grands frais un système de gestion des documents qu’elles adaptent à leurs besoins. Au moment où ce Propulseur a été conçu, pareilles solutions nécessitaient encore des opérations manuelles, la classification des documents constituant une part importante de ce travail.

Le Propulseur repose sur une approche généralisée qui satisfait la majorité des besoins usuels en gestion de documents. Il aidera l’entreprise à démarrer rapidement en prenant comme point de départ une solution IA qui réduit le nombre d’interventions manuelles. Puisque la solution utilise des outils de source ouverte, l’entreprise en gardera totalement le contrôle. Elle pourra donc l’adapter en fonction de ses besoins.

Pratiques exemplaires

Encryptage HTTPS

On devrait recourir à cette forme d’encryptage, car elle garantit une connexion sécuritaire et codée entre le serveur web et le navigateur web du client. Les données échangées restent confidentielles et conservent leur intégrité. Let’s Encrypt est une autorité de certification de source ouverte qui permet à l’utilisateur de certifier facilement un site web gratuitement et automatiquement.

Architecture de microservices

Bâtir une application avec des microservices est une pratique de plus en plus courante, pour diverses raisons.

  • Extensibilité. On peut étendre les services séparément. L’échelle maximale ou minimale est donc moins restreinte.
  • Résilience. Chaque service peut être conçu pour gérer lui-même les problèmes. En d’autres termes, le système continue de fonctionner même quand un des services défaille.
  • Agilité. Il est possible de développer et de déployer les services indépendamment les uns des autres. On pourra donc les modifier rapidement, sans que le système s’en ressente, ou très peu.
  • Les services peuvent être élaborés avec des technologies et des langages différents, ce qui accroît l’efficacité du développement et favorise l’innovation, car on pourra retenir la meilleure technologie dans chaque cas.
  • Évolutivité de l’équipe. Chaque service peut être élaboré et entretenu par une petite équipe interfonctionnelle. Indépendante, celle-ci pourra acquérir une expertise particulière tout en poursuivant sa collaboration avec les autres équipes.

Stratégie de sauvegarde

Pour préserver la disponibilité, l’intégrité et la sécurité des données, l’organisation aura absolument besoin d’une stratégie de sauvegarde. Les copies de sauvegarde faciliteront la reprise des opérations quand survient un désastre. L’organisation pourra donc poursuivre ses activités, continuer de se conformer à la réglementation et mettre ses données à l’abri des menaces éventuelles.

L’application « Classification et recherche automatiques de documents » utilise le système de fichiers local et Elasticsearch pour stocker les données. La stratégie de sauvegarde devra donc prendre en compte ces deux jeux de fichiers.

Trucs et hics

Production d’un certificat SSL avec Let’s Encrypt

Pour générer un certificat SSL, Let’s Encrypt a besoin d’un domaine. Une bonne solution consiste à héberger celui-ci sur nip.io. Toutefois, Let’s Encrypt impose certaines restrictions en fonction du domaine et de l’adresse IP. Quand la limite établie est dépassée, un message d’erreur indiquera le moment auquel les restrictions seront levées.

Elasticsearch et Java API Client

Si vous utilisez la version 7.17 ou une version supérieure d’Elasticsearch, préférez Java API Client à Java Rest Client, qui lui est antérieur. En effet, bien que le second fonctionne, vous devrez apporter des modifications précises à la configuration du serveur d’Elasticsearch pour pouvoir vous en servir.

Apprentissage automatique – huggingface.co

Hugging Face est un site web proposant un large éventail d’outils et de ressources en TLN, y compris des modèles déjà formés, des jeux de données et des bibliothèques. Il s’agit d’un excellent point de départ qui aidera le développeur et le chercheur à bâtir et à entraîner plus facilement et efficacement un modèle TLN.

Ressources

Le tableau qui suit dresse une liste partielle des liens menant aux tutoriels que nous avons jugés les plus utiles.

Contenu Résumé
Sauvegarde et restauration d’Elasticsearch au moyen d’un instantané Ce billet explique pas à pas comment créer une copie de sauvegarde de l’index Elasticsearch grâce à un instantané et comment le restaurer quand survient une catastrophe ou quand des données sont perdues.
Documentation d’Elastic.co sur la façon de prendre un instantané avec Elasticsearch Guide complet sur la façon d’obtenir un instantané des index, des partitions (shards) ou des grappes (clusters) d’Elasticsearch. Utile pour créer des copies de sauvegarde et restaurer les données.
Elasticsearch en action : présentation de Java API Client Avec sa version 7.17, Elasticsearch  a diffusé un nouveau client Java avec compatibilité avant baptisé « Java API Client ».
Hugging Face Site web proposant une multitude d’outils et de ressources en traitement du langage naturel (TLN), notamment des modèles déjà entraînés, des jeux de données et des bibliothèques. Excellent point de départ pour aider le développeur et le chercheur à bâtir et à former un modèle TLN plus facilement et plus efficacement.
Micronaut Cadriciel moderne complet, articulé sur JVM, permettant de construire aisément des applications modulaires testables, sans serveur, à partir de microservices.
Tesseract OCR Tesseract est un moteur de reconnaissance optique des caractères de source ouverte abondamment utilisé pour identifier le texte dans les images numériques.
Apache Kafka Plateforme de source ouverte pour la diffusion continue d’évènements. On s’en sert pour publier, stocker et traiter des fils de données en temps réel ou pour s’y abonner. Actuellement, le projet est supervisé par l’Apache Software Foundation.

 

Documentation

Le tableau ci-dessous indique où trouver la documentation sur le Propulseur de classification intelligente des documents.

Document Résumé
https://github.com/formkiq/intelligent-document-classification Dépôt GitHub contenant le code et la documentation

Soutien

En tant que participant de l’ATIR, vous pouvez obtenir de l’aide sur ce Propulseur. Si vous vous posez des questions :

  • affichez-les dans le canal Slack #help de l’ATIR;
  • envoyez-les par courriel à [email protected];
  • posez-les dans le dépôt GitHub.

Ça y est? À présent, laissez-nous vous montrer comment nous avons déployé cela dans le nuage de l’ATIR…

Classification et recherche automatiques de documents

La Solution type intéressera les organisations qui doivent récupérer des documents précis conservés dans un dépôt tout en cherchant du contexte supplémentaire pour retrouver et classer les résultats. Elle montre comment créer automatiquement les métadonnées d’un document par la reconnaissance optique des caractères (ROC), le traitement du langage naturel (TLN) et la recherche plein texte. La Solution type automatise ces opérations, qui s’effectuent présentement de façon manuelle, donc réduit le nombre d’erreurs que cela suppose.

Lisez la page Solution type pour en apprendre davantage sur le fonctionnement de la Solution type.

La Solution type recourt aux technologies suivantes : Micronaut, Apache Kafka, Tesseract OCR, Elasticsearch et TLN. On en trouvera la description dans les sections correspondantes.