CH718888A2 - Procédé d'extraction de données d'un document. - Google Patents

Procédé d'extraction de données d'un document. Download PDF

Info

Publication number
CH718888A2
CH718888A2 CH70158/21A CH0701582021A CH718888A2 CH 718888 A2 CH718888 A2 CH 718888A2 CH 70158/21 A CH70158/21 A CH 70158/21A CH 0701582021 A CH0701582021 A CH 0701582021A CH 718888 A2 CH718888 A2 CH 718888A2
Authority
CH
Switzerland
Prior art keywords
metadata
documents
model
document
learning
Prior art date
Application number
CH70158/21A
Other languages
English (en)
Inventor
Blayo François
Original Assignee
Neoinstinct Sa
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Neoinstinct Sa filed Critical Neoinstinct Sa
Priority to CH70158/21A priority Critical patent/CH718888A2/fr
Priority to PCT/EP2022/071982 priority patent/WO2023016925A1/fr
Publication of CH718888A2 publication Critical patent/CH718888A2/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • G06F16/353Clustering; Classification into predefined classes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/12Accounting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Technology Law (AREA)
  • Strategic Management (AREA)
  • Health & Medical Sciences (AREA)
  • Marketing (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Development Economics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

L'invention concerne un procédé d'extraction de données dans un document cible textuellement numérisé, chaque donnée étant caractérisée par son type sous la forme d'une métadonnée, ledit procédé comprenant les étapes de : conception (E5) d'un modèle générique à partir d'une pluralité de documents comprenant chacun au moins une métadonnée marquée, ledit modèle générique listant l'ensemble des métadonnées marquées, production (E6) automatique d'une base de données d'apprentissage à partir du modèle générique généré, ladite base de données d'apprentissage comprenant une pluralité de documents d'apprentissage comprenant chacun tout ou partie des types de métadonnées du modèle générique généré, chaque type de métadonnées étant associé à une valeur, génération (E7) d'une pluralité de modèles spécifiques par entrainement d'une pluralité de réseaux de neurones en même nombre que le nombre de modèles spécifiques à partir de la base d'apprentissage, l'entrainement de chaque réseau de neurones entrainant la génération d'un modèle spécifique représentatif d'un type de métadonnée listé dans le modèle générique, lecture textuelle et séquentielle du document cible à l'aide de la fenêtre glissante et calcul, pour chaque caractère de ladite fenêtre glissante et pour chaque modèle spécifique, de la probabilité d'appartenance dudit caractère à la métadonnée correspondant audit modèle spécifique, identification, dans la fenêtre glissante, du modèle spécifique pour lequel la moyenne des probabilités calculées pour chaque caractère d'au moins une série de caractères est supérieure à un seuil prédéterminé, détermination de la métadonnée associée au modèle spécifique identifié, extraction de la valeur associée à ladite métadonnée déterminée.

Description

Domaine technique de l'invention
[0001] La présente invention se rapporte à une méthode en partie mise en oeuvre par ordinateur pour la reconnaissance et l'extraction automatique de données d'un document, en particulier l'extraction automatique de données d'une pièce comptable.
État de la technique
[0002] Une étude datant de 2015 („Driscoll“) évaluant 832 divisions financières d'entreprises utilisant les données de la base de données „Open Standards Benchmarking“ de l'APQC („American Productivity & Quality Center“), a mis en lumière ce que les divisions financières font réellement toute la journée. Les dirigeants de ces divisions ont été questionnés sur le temps consacré par leurs organisations au traitement des transactions, au contrôle, à l'aide à la décision et aux activités de gestion. Les résultats ont montré que quelle que soit la taille de l'entreprise, environ la moitié du temps des divisions financières est consacrée au traitement des transactions.
[0003] Cela signifie qu'au cours d'une semaine de travail moyenne, les employés des divisions financières hautement rémunérés passent l'équivalent du lundi matin au mercredi midi pour s'assurer que les factures sont payées, que les clients reçoivent des factures correctes, que le travail de comptabilité générale est effectué et que les immobilisations sont comptabilisées, entre autres tâches qui permettent à l'argent de circuler dans l'entreprise.
[0004] A l'opposé, la direction exige des équipes financières des renseignements rapides, fiables et concis sur les répercussions économiques de mesures stratégiques et tactiques précises. En fin de premier semestre, lorsqu'il est encore temps d'améliorer le rendement, la direction veut connaître l'incidence sur la structure des coûts du choix de la stratégie A plutôt que de l'option B ou C. Elle veut que le calcul du chiffre d'affaires et de la marge d'exploitation soient déterminés par des décisions précises quant à l'affectation des ressources limitées de l'entreprise.
[0005] Afin qu'une équipe financière puisse trouver le temps d'appuyer les décisions stratégiques de l'entreprise tout en assurant ses tâches opérationnelles nécessite une réduction du travail manuel.
[0006] Par exemple, il est fréquent que des entreprises reçoivent 60 % des factures des fournisseurs sur papier ou en format PDF („Portable Document Format“). Quelqu'un doit saisir manuellement ces données dans les systèmes financiers de l'entreprise. Certains utilisent la reconnaissance optique de caractères. Mais cela prend aussi du temps, et les petites et moyennes entreprises n'ont peut-être pas les moyens de le faire à grande échelle. Ainsi, le papier continue d'encombrer le système, obligeant les employés à être formés et gérés, ce qui coûte du temps et de l'argent.
[0007] Si l'objectif est de traiter les transactions rapidement, à peu de frais et sans erreurs, les entreprises doivent libérer leur personnel financier des piles de papier en mouvement et les amener à se concentrer sur la compréhension des facteurs de coût et de demande, des besoins en ressources et des contraintes opérationnelles.
[0008] Ainsi, des millions de documents produits chaque jour sont examinés, traités, stockés, vérifiés et transformés en données lisibles par ordinateur. Par exemple, les comptes créditeurs et débiteurs, les états financiers, les documents administratifs, les dossiers des ressources humaines, les documents juridiques, les dossiers de paie, les documents d'expédition et les formulaires fiscaux.
[0009] Ces documents exigent généralement que les données soient extraites pour pouvoir être traitées.
[0010] Diverses techniques, comme l'Échange de Données informatisées (EDI), tentent d'éliminer les efforts de traitement humain en codant et en transmettant l'information documentaire dans des messages strictement formatés. L'échange de données informatisées est connu pour ses systèmes informatiques personnalisés, ses logiciels peu conviviaux et ses normes complexes qui ont empêché sa propagation rapide tout au long de la chaîne logistique. La grande majorité des entreprises ont évité de mettre en oeuvre l'EDI perçue comme trop coûteuse. De même, les applications de XML, XBRL et d'autres fichiers de documents lisibles par ordinateur sont très limitées comparativement à l'utilisation de documents sur papier et d'images numériques tels que PDF et JPEG (Joint Photographie Expert Group).
[0011] A ce jour, ces documents sont lus et interprétés par des personnes humaines pour être traités par des ordinateurs. Plus précisément, il y a trois méthodes générales d'extraction de données dans les documents : • l'extraction conventionnelle • l'externalisation • l'automatisation.
[0012] L'extraction conventionnelle des données nécessite des travailleurs ayant une formation spécifique, une expertise dans le domaine, une formation particulière, une connaissance des logiciels et/ou une compréhension culturelle. Les préposés à l'extraction des données doivent reconnaître les documents, identifier et extraire l'information pertinente sur les documents et entrer les données de façon appropriée et précise dans des logiciels particuliers. Une telle extraction manuelle des données est complexe, longue et sujette aux erreurs. Il en découle que le coût de l'extraction des données est souvent très élevé et particulièrement lorsque l'extraction des données est effectuée par des comptables, des avocats et d'autres professionnels hautement rémunérés dans le cadre de leur travail.
[0013] L'extraction de données conventionnelle expose également l'intégralité des documents aux travailleurs en charge de l'extraction de données. Ces documents peuvent contenir des renseignements de nature confidentielle concernant l'emploi, la situation de famille, les finances, les questions juridiques, fiscales et autres des collaborateurs et des entreprises.
[0014] Alors que l'extraction de données conventionnelle se fait entièrement sur papier, l'externalisation et l'automatisation commencent par la conversion du papier en fichiers d'images numériques. Cette étape est simple, facile et rapide grâce à des scanneurs de haute qualité, rapides et abordables qui sont offerts par de nombreux fournisseurs. Une fois les documents papier convertis en fichiers d'images numériques, le traitement des documents peut être rendu plus productif grâce à l'utilisation d'un logiciel de flux de travail qui achemine les documents vers la main-d'oeuvre la moins onéreuse, interne ou externe. Le traitement primaire peut être effectué par du personnel subalterne ; les exceptions peuvent être traitées par du personnel mieux formé. Malgré les gains de productivité potentiels offerts par le logiciel de flux de travail par une meilleure utilisation des ressources humaines, le traitement manuel des documents reste un processus fondamentalement coûteux.
[0015] L'externalisation exige la même éducation, la même expertise, la même formation, la même connaissance du logiciel et/ou la même compréhension culturelle. Comme pour l'extraction de données conventionnelle, les personnes chargées de l'extraction de données doivent reconnaître les documents, trouver les informations pertinentes sur les documents, extraire et saisir les données de manière appropriée et précise dans des logiciels particuliers. Comme l'externalisation est manuelle, tout comme l'extraction de données conventionnelle, elle est également complexe, longue et sujette aux erreurs. Certaines entreprises réduisent souvent les coûts en délocalisant le travail d'extraction de données dans des lieux où les coûts de la main d'oeuvre est plus faible. Par exemple, l'extraction de données à partir de documents fiscaux et financiers américains est une fonction qui a été mise en oeuvre en utilisant des milliers de travailleurs anglophones bien formés en Inde et dans d'autres pays à bas salaires.
[0016] La première étape de l'externalisation consiste à numériser les documents financiers, fiscaux ou autres et à sauvegarder les fichiers images qui en résultent. Ces fichiers d'images sont accessibles par les personnes chargées de l'extraction des données par plusieurs méthodes. Une méthode stocke les fichiers d'images sur les systèmes informatiques de l'organisation source et les travailleurs d'extraction de données visualisent les fichiers d'images sur les réseaux (tels que l'Internet ou les réseaux privés). Une autre méthode stocke les fichiers d'images sur des systèmes informatiques tiers et les travailleurs d'extraction de données visualisent alors les fichiers d'images sur les serveurs tiers à travers les réseaux. Une autre méthode consiste à transmettre les fichiers d'images des organisations sources sur les réseaux et à stocker les fichiers d'images pour que les travailleurs chargés de l'extraction des données puissent les visualiser sur le système informatique des organisations d'extraction des données.
[0017] Par exemple, un comptable peut numériser les divers formulaires fiscaux contenant les données financières des clients et transmettre les fichiers d'images numérisés à une entreprise externe. Un employé de l'entreprise externe extrait les données financières du client et les saisit dans un logiciel d'impôt sur le revenu. Le fichier de données du logiciel d'impôt qui en résulte est ensuite retransmis au comptable.
[0018] Dans cette situation, de nombreux clients ont constaté des problèmes de qualité dans les travaux d'extraction de données externalisée. Les fournisseurs de services externes s'attaquent à ces problèmes en embauchant des travailleurs mieux formés ou plus expérimentés, en leur offrant une formation plus poussée, en extrayant et en saisissant des données deux fois ou plus ou en vérifiant de façon exhaustive la qualité de leur travail. Ces mesures réduisent par voie de conséquence les économies de coûts attendues de l'externalisation.
[0019] L'externalisation s'accompagne de préoccupations relatives aux risques de sécurité associés tels que la fraude et au vol d'identité. Ces préoccupations en matière de sécurité s'appliquent aux employés et aux travailleurs temporaires ainsi qu'aux travailleurs externes et aux travailleurs à l'étranger qui ont accès à des documents contenant des renseignements sensibles.
[0020] Bien que la transmission de fichiers d'images numérisés à l'organisme d'extraction des données puisse être sécurisée par des techniques cryptographiques, les données sensibles et les renseignements personnels d'identification sont „en clair“, c'est-à-dire non cryptés lorsqu'ils sont lus par les travailleurs responsables de l'extraction des données avant leur entrée dans les systèmes informatiques appropriés. Les organisations d'extraction de données reconnaissent publiquement le besoin de sécurité de l'information. Certains organismes d'extraction de données affirment enquêter et effectuer des vérifications sur les antécédents des employés. De nombreuses organisations d'extraction de données annoncent limiter strictement l'accès physique aux locaux dans lesquels les employés entrent les données. Le papier, le matériel d'écriture, les appareils photo ou toute autre technologie d'enregistrement peuvent être interdits dans les locaux. De plus, les employés peuvent faire l'objet d'une inspection pour s'assurer que rien n'est copié ou supprimé. Étant donné que de telles mesures de sécurité en apparence exhaustives sont principalement de nature physique, elles sont imparfaites et potentiellement invérifiables.
[0021] En raison de ces imperfections, des failles dans la sécurité physique se sont produites. Par exemple, les propriétaires, les gestionnaires, le personnel des organismes d'extraction de données peuvent utiliser à mauvais escient une partie ou la totalité des renseignements confidentiels non cryptés qui leur sont confiés. De plus, des violations de la sécurité physique et des systèmes d'information par des tiers peuvent se produire. Étant donné que les organismes d'extraction de données sont de plus en plus souvent situés à l'étranger, les citoyens suisses victimes de cette façon n'ont souvent que peu ou pas de recours.
[0022] La troisième méthode générale d'extraction de données implique une automatisation partielle, combinant souvent la reconnaissance optique de caractères, l'inspection humaine et un logiciel de gestion des flux de travail.
[0023] Des outils logiciels qui facilitent l'extraction et la transformation automatisées des informations documentaires sont disponibles auprès de plusieurs fournisseurs. L'économie relative des coûts d'exploitation facilitée par ces outils est proportionnelle au degré d'automatisation qui dépend notamment de l'application, de la qualité de la personnalisation des logiciels, de la variété et de la qualité des documents.
[0024] La première étape d'une opération d'extraction de données partiellement automatisée consiste à numériser les documents financiers, fiscaux ou autres et à enregistrer les fichiers images qui en résultent. Les images numérisées sont comparées à une base de données de documents connus. Les images qui ne sont pas identifiées sont acheminées aux travailleurs de l'extraction de données pour un traitement conventionnel. Les images qui sont identifiées ont des données extraites à l'aide de modèles, basés sur l'emplacement ou sur l'étiquette, ainsi que de la technologie de reconnaissance optique de caractères (ROC).
[0025] La reconnaissance optique des caractères est imparfaite, plus d'un pour cent des caractères étant incorrectement reconnus. Or, les documents papier ne sont ni propres ni de haute qualité, souffrant d'être pliés ou abîmés avant la numérisation, déformés pendant la numérisation et dégradés pendant la binarisation post-numérisation. Par conséquent, certaines des informations nécessaires pour identifier les données ne sont souvent pas reconnaissables et il en résulte que certaines des données ne peuvent pas être extraites automatiquement.
[0026] À l'aide d'outils logiciels conventionnels, les éditeurs déclarent être en mesure d'extraire jusqu'à 80 à 90 % des données sur un nombre limité de formulaires types. Lorsqu'il existe un large éventail de formulaires, l'extraction automatisée des données est très limitée. Malgré des années d'efforts, plusieurs fournisseurs d'automatisation de documents fiscaux atteignent des taux d'identification de 50 % voire moins dans la qualité d'extraction de données et admettent de nombreuses erreurs en comparaison avec les méthodes conventionnelles d'extraction de données.
[0027] Ce taux décroit encore lorsque les documents ne sont pas issus de formulaires standardisés. Cela est le cas, par exemple, pour les tickets de caisse de supermarchés, les billets de transport urbain et tous les documents justificatifs qui ne sont pas issus d'un fournisseur administratif standard.
[0028] Afin de tenter de remédier au moins en partie à ces inconvénients, le document US20210117665A décrit un procédé à utiliser dans une plate-forme de gestion des dépenses utilisable pour effectuer une analyse de contenu d'un document de facture imagé comprenant au moins une facture, d'une manière améliorée. La plate-forme de gestion des dépenses comprend un analyseur automatique de factures (AIA) comprenant un moteur de reconnaissance optique de caractères (OCR), ledit analyseur automatique de factures (AIA) pouvant fonctionner pour effectuer une analyse automatisée d'au moins une facture. La plate-forme de gestion des dépenses comprend également un moteur d'apprentissage automatique comprenant un référentiel de connaissances et un mécanisme entraîné pour effectuer une analyse visuo-linguistique, dans lequel ledit mécanisme comprend un réseau neuronal. Le procédé comprend les étapes de réception, via une interface de communication, du document de facture imagé ; de prétraitement, par l'analyseur automatique de factures (AIA), de ladite au moins une facture, d'extraction, par le moteur de reconnaissance optique de caractères (OCR), d'un ensemble de résultats OCR associés à ladite au moins une facture, de génération, par l'analyseur automatique de factures (AIA), d'une image améliorée par OCR de l'au moins une facture, d'application, par l'analyseur automatique de factures (AIA), d'une analyse visuo-linguistique pour déterminer une information sémantique d'au moins un élément de l'au moins une facture, et de production, par l'analyseur automatique de factures (AIA), d'un ou plusieurs résultats d'analyse.
[0029] Cette solution repose sur la détection de probabilités de présence des données à identifier dans le document. Ces probabilités sont visualisées sous forme de cartes de chaleur („heatmaps“ en langue anglaise) comme illustré sur la figure 12 du document US20210117665A. Il s'agit en l'espèce de combiner une représentation spatiale avec une représentation sémantique obtenue après reconnaissance optique de caractères. L'utilisation de probabilités et de carte de chaleur est particulièrement complexe et peut limiter l'efficacité de la méthode. De plus, la solution proposée dans US20210117665A ne peut traiter que des données structurées sous forme de formulaire.
[0030] En outre, l'extraction de métadonnées de manière automatique présente une difficulté technique qui découle de la variabilité du format des métadonnées des pièces comptables. En général, pour un pays donné, la présentation de la date, du numéro de TVA, des montants reste cohérente. Par exemple, une date en Suisse sera formatée de la manière suivante : jj.mm.aaaa. En France, le format sera : jj/mm/aaaa. Aux Etats-Unis, le format sera : mm/jj/aaaa. Il existe également une variabilité au sein d'un même pays. Pour la Suisse, la date peut aussi être formatée selon jj.mm.aa ou encore jj mmmmmm aa. L'identifiant TVA qui figure sur la pièce comptable est aussi sujet à variations. Par exemple en Suisse il peut être formaté CHE-nnn.nnn.nnn TVA, CHE-nnn.nnn.nnn MWST, CHE-nnn.nnn.nnn IVA, CHE-nnn.nnn.nnn VAT. Le montant total de la pièce comptable peut aussi varier selon le format des nombres. Le séparateur peut être un „.“ ou „,“. Par exemple : 150.00 ou 150,00. Les items qui composent la description de chaque ligne de la pièce comptable peuvent aussi varier en nombre. Il peut y avoir un article comme dix articles dans une même pièce comptable. Les taux de TVA peuvent aussi être différents au sein d'une même pièce comptable. La variabilité du contenu des pièces comptable crée une complexité combinatoire qui rend une tâche d'extraction automatique difficile à réaliser par une succession de conditions.
[0031] Un but de l'invention est de proposer un système et une méthode d'extraction automatique de données dans un document, par exemple un document comptable, structuré ou non structuré. Un tel document comptable peut par exemple être une pièce justificative, un relevé de banque, une facture fournisseur ou tout document requis pour l'établissement d'un grand livre comptable. Un autre but de l'invention est de proposer une solution simple, fiable, rapide et efficace pour extraire automatiquement des données d'un grand nombre de documents, en particulier de nature variée.
Résumé de l'invention
[0032] A cette fin, l'invention a tout d'abord pour objet un procédé d'extraction de données dans un document cible textuellement numérisé, chaque donnée étant caractérisée par son type sous la forme d'une métadonnée, ledit procédé comprenant les étapes de : conception d'un modèle générique à partir d'une pluralité de documents comprenant chacun au moins une métadonnée marquée, ledit modèle générique listant l'ensemble des métadonnées marquées, production automatique d'une base de données d'apprentissage à partir du modèle générique généré, ladite base de données d'apprentissage comprenant une pluralité de documents d'apprentissage comprenant chacun tout ou partie des types de métadonnées du modèle générique généré, chaque type de métadonnées étant associé à une valeur, génération d'une pluralité de modèles spécifiques par entrainement d'une pluralité de réseaux de neurones en même nombre que le nombre de modèles spécifiques à partir de la base d'apprentissage, l'entrainement de chaque réseau de neurones entrainant la génération d'un modèle spécifique représentatif d'un type de métadonnée listé dans le modèle générique, lecture textuelle et séquentielle du document cible à l'aide de la fenêtre glissante et calcul, pour chaque caractère de ladite fenêtre glissante et pour chaque modèle spécifique, de la probabilité d'appartenance dudit caractère à la métadonnée correspondant au dit modèle spécifique, identification, dans la fenêtre glissante, du modèle spécifique pour lequel la moyenne des probabilités calculées pour chaque caractère d'au moins une série de caractères est supérieure à un seuil prédéterminé, détermination de la métadonnée associée au modèle spécifique identifié, extraction de la valeur associée à ladite métadonnée déterminée.
[0033] L'invention permet de reconnaître automatiquement tout document à partir d'un petit nombre d'extractions réalisées manuellement qui servent de base pour l'apprentissage à un système automatisé.
[0034] En reposant sur la construction automatique de modèles relatifs à chaque métadonnée par apprentissage automatique supervisé, le procédé selon l'invention est efficace pour traiter tout type de document et parer ainsi à la variabilité du contenu des documents, notamment comptables.
[0035] La constitution d'une base d'apprentissage suffisamment exhaustive permet d'assurer que les modèles offrent une performance en accord avec les besoins des utilisateurs. En particulier, l'utilisateur doit trouver un bénéfice en simplicité et en efficacité qui compensera les situations dans lesquelles l'extraction des métadonnées automatique de la pièce comptable produira un résultat partiel.
[0036] Le principe de l'invention repose sur le fait que chaque émetteur d'une pièce comptable présente son contenu d'une manière structurée et cohérente. L'invention consiste à identifier statistiquement la structure des informations contenues dans les pièces comptables produites par un émetteur et à la généraliser pour être ensuite en mesure de reconnaître les informations contenues dans toutes les pièces comptables émises par un même émetteur. Par exemple, un détaillant émet un ticket de caisse qui contient le nom de sa société, le numéro de TVA, les articles achetés, les taux de TVA appliqués pour chaque article, le total de la transaction, le vendeur, le mode de règlement, l'identification du mode de règlement, l'adresse de la société. L'invention décrite dans ce brevet doit permettre d'identifier sur un petit nombre de tickets toutes les informations précédemment décrites puis d'être en mesure de les identifier pour tout ticket émis par ce détaillant. Cette opération doit notamment permettre d'identifier tous les articles vendus, quelle que soit leur nombre, tous les taux de TVA, tous les modes de règlement tels que cash, carte bancaire, carte de payement.
[0037] Selon une caractéristique de l'invention, le procédé comprend une étape de sélection d'un nombre prédéterminé de documents de référence dans un ensemble initial de documents.
[0038] Selon un aspect de l'invention, la sélection du nombre prédéterminé de documents dans un ensemble initial de documents est réalisée manuellement par un opérateur.
[0039] Avantageusement, le procédé comprend une étape préliminaire de numérisation du document cible par reconnaissance optique de caractères pour permettre une lecture textuelle.
[0040] Selon un aspect de l'invention, le procédé comprend une étape de marquage de chaque métadonnée identifiable dans chaque document sélectionné, de préférence manuellement par un opérateur.
[0041] Avantageusement, le procédé comprend une étape d'enregistrement dans une zone mémoire des modèles spécifiques générés.
[0042] De préférence, la production (génération) automatique de la base de données d'apprentissage à partir du modèle générique généré comprend la génération d'au moins cent documents d'apprentissage, de préférence au moins mille, de préférence encore au moins dix-mille.
[0043] Selon un aspect de l'invention, chaque type de métadonnées est associé de manière aléatoire à une valeur.
[0044] De manière avantageuse, chaque document de la pluralité de documents d'apprentissage comprend tous les types de métadonnées du modèle générique généré.
[0045] Avantageusement encore, le procédé comprend une étape de filtrage pour s'assurer que chaque document comprend au maximum une métadonnée de chaque type.
[0046] De préférence, un réseau de neurones est dédié pour générer chaque modèle spécifique.
[0047] Dans un mode de réalisation, la fenêtre glissante glisse d'un caractère à chaque itération.
[0048] De préférence, la taille de la fenêtre glissante est d'au moins vingt caractères, de préférences au moins cinquante caractères, par exemple cent caractères.
[0049] L'invention concerne également un produit programme d'ordinateur caractérisé en ce qu'il comporte un ensemble d'instructions de code de programme qui, lorsqu'elles sont exécutées par un ou plusieurs processeurs, configurent le ou les processeurs pour mettre en oeuvre un procédé tel que présenté précédemment.
[0050] L'invention concerne également un module d'extraction de données dans un document cible textuellement numérisé, ledit module d'extraction étant configuré pour mettre en oeuvre certaines étapes du procédé tel que présenté précédemment.
[0051] L'invention concerne également un système comprenant un module de capture d'images, un module de gestion, un module de reconnaissance de caractères, un module d'extraction tel que présenté précédemment, une zone mémoire et un écran.
Brève description des dessins
[0052] La figure 1 illustre schématiquement une forme de réalisation du système selon l'invention. La figure 2 illustre un exemple d'image d'un document de référence. La figure 3 illustre un mode de réalisation de la phase d'apprentissage. La figure 4 illustre un exemple d'apprentissage par réseaux de neurones à partir d'une fenêtre glissante. La figure 5 illustre décrit les sous-étapes d'entrainement de l'exemple de la figure 4. La figure 6 illustre un exemple de codage par position des caractères encadrés par la balise <total>. La fenêtre 7 illustre deux exemples de profils de probabilité moyenne de prédiction d'une métadonnée à partir de caractères détectés. La figure 8 illustre un mode de réalisation de la phase d'exploitation. La figure 9 illustre un exemple d'identification de métadonnées à partir de profils de probabilités de prédiction des caractères détectés. La figure 10 illustre un exemple d'image d'un document permettant l'ajout manuel d'une métadonnée dans un champ dédié.
Description détaillée
[0053] On a représenté à la figure 1 un exemple schématique fonctionnel d'une forme de réalisation du système 1 selon l'invention.
I. Système 1
[0054] Le système 1 permet d'extraire de manière automatique une ou plusieurs données d'un document dit „cible“ tel que, par exemple, un document comptable, notamment de type facture ou facturette, ou tout autre document. Dans un document cible, chaque donnée est caractérisée par son type et éventuellement son nom. Le type d'une donnée peut être représenté par une métadonnée pour identifier ledit type de manière algorithmique ou informatique de manière connue en soi. Le rôle et le traitement de ces métadonnées sera mieux compris à la lumière de la description qui sera faite ci-après.
[0055] Le système 1 comprend un module de capture d'images 10, un module de gestion 20, un module de reconnaissance de caractères 30, un module d'extraction 40, une zone mémoire 50 et un écran 60.
[0056] Le module de capture d'images 10, le module de gestion 20, le module de reconnaissance de caractères 30, le module d'extraction 40, la zone mémoire 50 et l'écran 60 peuvent être mis en oeuvre par une même entité physique ou bien par des entités physiques distinctes.
[0057] De préférence, comme dans l'exemple illustré sur la figure 1, le module de capture d'images 10 est mis en oeuvre par un première entité physique, le module de gestion 20, le module de reconnaissance de caractères 30, le module d'extraction 40 et la zone mémoire 50 sont mis en oeuvre par une deuxième entité physique, par exemple un serveur 2 ou un ordinateur, et l'écran 60 constitue une troisième entité physique, les trois entités étant connectées entre elles de manière filaire, sans fil ou via un ou plusieurs réseaux de communication.
Module de capture d'images 10
[0058] Le module de capture d'images 10 est configuré pour générer des images de documents. Ces documents peuvent être des documents de références ou des documents cibles, comme cela sera expliqué ci-après.
[0059] Le module de capture d'images 10 peut par exemple être un scanner manuel, un scanner automatique, l'appareil photo d'un smartphone, un appareil photo et en général tout appareil capable de générer une image de la pièce comptable et d'en produire un fichier numérique, par exemple au format JPEG (Joint Photographie Expert Group), TIFF, BMP (BitMaP) ou PDF (Packet Data Format) ou tout autre format adapté. Parmi les dispositifs à balayage, on inclut les scanners connectés directement à un ordinateur, les scanners partagés connectés sur un ordinateur via un réseau et les scanners intelligents comprenant une fonctionnalité de calcul intégrée. La capture à partir de smartphones avec un envoi direct vers des systèmes de stockage tels que Dropbox®, Trésorit®, OneDrive® sont utilisables.
[0060] A l'issue de la capture d'image, la ou les images peuvent être transmises au module de gestion 20, qui les stockent dans la zone mémoire 50 ou les transfèrent au module de reconnaissance de caractères 30, ou directement au module de reconnaissance de caractères 30.
Module de gestion 20
[0061] Le module de gestion 20 est configuré pour contrôler les différentes interactions avec le module de capture d'images 10, avec le module de reconnaissance de caractères 30, avec le module d'extraction 40, avec la zone mémoire et avec l'écran 60. Le module de gestion 20 peut comprendre la zone mémoire 50 ou être relié (directement ou à distance) à la zone mémoire 50.
[0062] Afin de permettre les interactions avec l'utilisateur via l'écran 60, le module de gestion 20 comprend une interface utilisateur (UI ou User Interface). De préférence, cette interface utilisateur fonctionne à l'intérieur d'un navigateur web tel que par exemple Google Chrome®, Firefox®, Microsoft Edge®, Safari® ou tout navigateur standard disponible sur le marché ou au niveau de l'état de l'art.
[0063] Le module de gestion 20 est configuré pour permettre la sélection, de préférence manuellement par un opérateur via l'interface utilisateur, d'un nombre prédéterminé de documents, dits „de référence“, dans un ensemble initial de documents.
[0064] Le module de gestion 20 est configuré pour permettre le marquage, par un opérateur via l'interface utilisateur, de chaque métadonnée identifiable dans chaque document de référence sélectionné.
Module de reconnaissance de caractères 30
[0065] Le module de reconnaissance de caractères 30 est configuré pour coder un document cible sous forme textuelle par reconnaissance optique de caractères (ROC), appelée Optical Character Recognition (OCR) en langue anglaise.
[0066] La reconnaissance optique de caractères est un procédé informatique pour la traduction d'images de textes imprimés ou dactylographiés en fichiers de texte. Ce procédé est mis en oeuvre par un logiciel permettant de récupérer le texte dans l'image d'un texte imprimé et de le sauvegarder dans un fichier pouvant être exploité dans un traitement de texte pour enrichissement, et stocké dans une base de données ou sur un autre support exploitable par un système informatique.
[0067] Les caractères extraits de l'image par le module de reconnaissance de caractères 30 sont transférés vers le module d'extraction 40 via le module de gestion (ou alternativement directement).
Module d'extraction 40
[0068] Le module d'extraction 40 est configuré pour analyser les caractères fournis par le module de reconnaissance de caractères 30. A cette fin, le module d'extraction 40 peut être mis en oeuvre par un ordinateur, par un serveur, par une plateforme ou tout dispositif adapté comprenant un processeur ou plusieurs processeurs permettant le traitement des étapes comme cela sera décrit ci-après.
[0069] Le module d'extraction 40 est configuré pour générer de manière automatique un modèle générique à partir d'une pluralité de documents dits „marqués“. Les documents marqués correspondent à des documents de référence comprenant chacun au moins une métadonnée qui a été marquée par un opérateur via le module de gestion 20.
[0070] Le modèle générique généré par le module d'extraction 40 liste l'ensemble des métadonnées marquées dans différents documents de référence par l'opérateur.
[0071] Le module d'extraction 40 est configuré pour générer de manière automatique une base de données dite „d'apprentissage“ à partir du modèle générique généré. Ceci est réalisé par un générateur qui produit de multiples exemples à partir du „modèle générique“. Le générateur est donc une sorte de simulateur qui va produire tout un ensemble de documents différents basés sur le modèle générique.
[0072] La base de données d'apprentissage comprend donc un nombre important de documents dits „d'apprentissage“, de préférence au moins plusieurs centaines ou plusieurs milliers, comprenant chacun tout ou partie des types de métadonnées du modèle générique, chaque type de métadonnées étant associé à une valeur de donnée générée aléatoirement.
[0073] Le module d'extraction 40 est configuré pour générer une pluralité de modèles spécifiques par entrainement d'une pluralité de réseaux de neurones en même nombre à partir de la base d'apprentissage, l'entrainement de chaque réseau de neurones entrainant la génération d'un modèle spécifique représentatif d'un type de métadonnée listé dans le modèle générique. Par „même nombre“, on entend qu'un réseau de neurones est dédié à un et un seul modèle spécifique.
[0074] Le module d'extraction 40 est configuré pour enregistrer les modèles spécifiques générés dans la zone mémoire 50.
[0075] Le module d'extraction 40 est configuré pour procéder à une lecture textuelle et séquentielle d'un document cible à l'aide d'une fenêtre glissante et pour calculer, pour chaque caractère de ladite fenêtre glissante et pour chaque modèle spécifique, la probabilité d'appartenance dudit caractère à la métadonnée correspondant au modèle spécifique.
[0076] Le module d'extraction 40 est configuré pour identifier, dans la fenêtre glissante, le modèle spécifique pour lequel la moyenne des probabilités calculées pour chaque caractère d'au moins une série de caractères est supérieure à un seuil prédéterminé.
[0077] Le module d'extraction 40 est configuré pour déterminer la métadonnée associée au modèle spécifique identifié.
Zone mémoire 50
[0078] La zone mémoire 50 est comprise dans le module de gestion 20 ou est reliée (directement ou à distance) au module de gestion 20 afin de stocker les différents documents numériques utilisés lors de la mise en oeuvre de l'invention, notamment les documents de références, les documents marqués, le modèle générique, les documents d'apprentissage, les modèles spécifiques et les documents cibles.
[0079] La zone mémoire 50 peut par exemple être un disque dur sur un ordinateur local, sur un serveur de fichier, sur un service cloud tel que Dropbox®, S3®, Box®, OneDrive® et en général tout système de stockage qui offre une interface de gestion de type Application Programming Interface (API).
Ecran 60
[0080] L'écran 60 est connecté au module de gestion 20 afin d'afficher les documents, commandes et résultats nécessaires à la mise en oeuvre de l'invention.
[0081] L'écran 60 peut être de tout type : un écran d'affichage simple, un écran tactile ou tout écran adapté.
II. Exemple de mise en oeuvre
[0082] Dans l'exemple non limitatif qui sera décrit ci-après, les documents cibles traités sont des facturettes de type tickets de caisse comportant plusieurs types de données associées à différentes métadonnées. A titre d'exemple, l'une des données peut être une somme totale de valeurs numériques de type „prix“, notée „SOMME CHF“ (somme en francs suisses) dans la facturette, et qui sera identifiée par une métadonnée comportant une balise de début, notée <total>, et une balise de fin, notée </total>. Dans ce cas, la valeur de la donnée sera de type numérique et sera indiquée entre la balise de début et la balise de fin. Par exemple, pour une somme totale de 2914, 85 CHF sur la facturette, le module d'extraction 40 notera ladite somme <total>2914,85</total>.
[0083] La mise en oeuvre du procédé selon l'invention suppose deux phases distinctes : une phase d'apprentissage et une phase d'exploitation.
Phase d'apprentissage
[0084] La phase d'apprentissage est une phase préparatoire qui consiste en la sélection d'un ensemble de documents dits „de référence“, le marquage manuel par un opérateur desdits documents de référence, la production d'un modèle générique à partir des documents marqués, la génération d'un ensemble de documents dits „d'apprentissage“ à partir du document générique conçu et l'entrainement de réseaux de neurones à partir des documents d'apprentissage générés afin de créer des modèles spécifiques propres chacun à un type de métadonnées.
[0085] Cette phase d'apprentissage peut par exemple être réalisée pour chaque groupe de documents cibles similaires, notamment associés à un même éditeur desdits documents.
Marquage
[0086] Tout d'abord, à l'étape E0, l'utilisateur du système 1 dispose d'un ensemble de documents de référence, par exemple sélectionnés par l'utilisateur ou à disposition de l'utilisateur. Ces documents sont choisis de préférence de manière à présenter différentes formes et/ou différentes types de données d'un même éditeur.
[0087] Les documents de référence peuvent être sous forme papier ou électronique. Dans leur forme électronique, les documents sont des fichiers, par exemple des images de type JPEG ou des fichiers de type PDF. Dans leur forme papier, les documents de référence sont soumis au module de capture d'images 10 qui les transforme en fichiers informatiques, par exemple de type JPEG ou PDF.
[0088] Une fois numérisés, s'ils ne l'étaient pas, les documents de référence sont envoyés au module de reconnaissance de caractères 30 qui les code sous forme textuelle lors d'une étape E1 de reconnaissance optique de caractères.
[0089] Ensuite, dans une étape E2, chaque document de référence codé sous forme textuelle est présenté à l'utilisateur via l'écran 60 pour lui permettre de désigner simplement les métadonnées présentes dans ledit document de référence.
[0090] Le principe de l'analyse consiste à extraire automatiquement des métadonnées identifiables dans de document de référence sous forme textuelle. Dans l'exemple décrit ci-après, la présente invention offre l'extraction de neuf métadonnées identifiables qui sont : • Date: la date d'émission du document de référence ; • Identifier: le numéro de TVA de l'émetteur du document de référence; • Total: le montant total du document de référence; • Item-name: la description d'une ligne du document de référence; • Item-value: la valeur correspondant à l'item-name du document de référence; • Item-taxcode: le code de TVA correspondant à l'item-name; • Taxitem-code: le code correspondant à un pourcentage de TVA; • Taxitem-value: le montant de de la TVA correspondant à un Taxitem-code; • Taxitem-percentage : le pourcentage de la TVA correspondant à un Taxitem-code ;Dans cet exemple, les métadonnées identifiables sont de deux types: • Individuelles: Date, Identifier, Total, Item-name, Item-value, Item-taxcode, taxitem-code, taxitem-value, taxitem-percentage • Composées : Items et Taxitems qui sont respectivement composées de plusieurs Item et taxitem.
[0091] En référence à la figure 2, l'image du document de référence affichée sur l'écran 60 via l'interface utilisateur graphique 400 est disponible dans le champ 435 pour permettre à l'utilisateur de le reconnaître simplement. Les données extraites après l'étape d'extraction de texte sont présentées dans le champ 440. Les métadonnées à identifier sont présentées dans les champs 410 (Date), 415 (Identifier), 423 (Total) pour les métadonnées de type individuelles, 420 (Item-name), 421 (Item-value), 422 (Item-tax-code) pour les métadonnées de type Items et 425 (taxitem-code), 426 (taxitem-value), 427 (taxitem-percentage). La page peut être sauvegardée via la fonction „save“ 430.
[0092] Le champ 450 est destiné à l'affichage de messages qui résultent de traitement de cohérence sur les métadonnées de la pièce comptable. Ce traitement ne sera pas décrit dans le cadre de la présente invention.
[0093] Dans une étape E3, l'utilisateur va exploiter l'interface 400 pour associer les données identifiées dans le champ 440 avec les métadonnées à identifier (étape dite „de marquage“). A cet effet, l'utilisateur effectue une sélection d'une partie de texte du champ 440 et un glisser-déposer de ce texte dans une des métadonnées à identifier.
[0094] Par exemple sur la Figure 6, la donnée 20.12.2018 présente dans le champ 440 de l'interface 400 a été glissée-déposée dans la métadonnée Date 410. Les documents marqués sont enregistrés dans la zone mémoire 50 dans une étape E4.
[0095] Un extrait de la base de données d'un document exemple avec les métadonnées identifiées est présenté dans le Tableau 1 suivant :
[0096] Les métadonnées sont identifiées grâce aux balises qui leur correspondent. Chaque métadonnée encadre la donnée par une balise ouvrante qui se termine par une balise fermante. Par exemple la métadonnée „date“ est stockée comme <date>20.12.2018</date>.
[0097] Ce processus d'identification est répété pour l'ensemble des documents de référence disponibles afin d'obtenir un ensemble de documents de référence marqués.
Modèle générique
[0098] Une fois les documents de référence marqués, une étape E5 permet de générer une synthèse de l'ensemble des documents de référence marqués sous la forme d'un document appelé „modèle générique“ correspondant dans cet exemple à un modèle de document comptable générique. Le module d'extraction 40 construit, c'est à dire génère, de manière automatique le modèle générique à partir de la pluralité des documents marqués. Le modèle générique liste l'ensemble des métadonnées marquées par l'utilisateur dans les documents de référence. Ce modèle générique est constitué à partir d'une fusion de différents contenus pour produire un modèle génératif des pièces comptables. Il consiste à lister exhaustivement et compter les occurrences de chaque ligne du document de référence.
[0099] Par exemple, dans le Tableau 2 ci-après qui illustre un exemple de modèle générique, {{counts:22:34}}coop¶ signifie que la ligne „coop¶“ est apparue 22 fois sur les 34 exemples identifiés manuellement par l'utilisateur, la ligne {{counts:1 :34}}coo¶ est apparue 1 fois sur les 34. La ligne {{counts:3:34}}cood¶ est apparue 3 fois sur les 34 exemples :
[0100] Pour les métadonnées composées de type Items ou Taxitems, la synthèse va produire une structure syntaxique. Par exemple, pour une métadonnée de type Items : signifie qu'une métadonnée de type items a été lue, suivie d'une balise Item-name. A l'intérieur de la balise, la donnée est composée de plusieurs caractères de type texte. A la suite de Item-name, plusieurs espace sont été lus, une valeur numérique a été lue, puis une valeur décimale, plus plusieurs espaces, suivis d'une Item-value composée d'une valeur décimale, puis d'une item-taxcode composée d'une valeur entière. L'item se termine alors. L'analyse a également identifié un item formé d'une manière différente :
[0101] L'analyse syntaxique est réalisée de manière analogue pour les métadonnées de type Tax-items.
Base de données d'apprentissage
[0102] Le module d'extraction 40 produit de manière automatique dans une étape E6 une base de données d'apprentissage à partir du modèle générique généré, ladite base de données d'apprentissage comprenant une pluralité de documents d'apprentissage comprenant chacun tout ou partie des types de métadonnées du modèle générique généré, chaque type de métadonnées étant associé à une valeur.
[0103] La constitution d'une base d'apprentissage exhaustive ne peut pas être réalisée d'une façon manuelle car cela exigerait l'identification manuelle de métadonnées dans des centaines de pièces comptables. Une deuxième difficulté technique provient de ce constat : il faut faire appel à l'utilisateur pour identifier manuellement les métadonnées des pièces comptables mais cela ne peut être fait que de manière très limitée. Dans la pratique, un utilisateur acceptera d'analyser et identifier manuellement les métadonnées de quelques pièces comptables. Au-delà, le risque de provoquer un rejet sera très élevé et le système deviendra donc inutilisable. Dans le cadre de cette invention, l'identification et l'analyse d'un nombre restreint de métadonnées sera faite manuellement par un utilisateur afin de constituer une base d'exemples. Celle-ci sera ensuite automatiquement analysée afin de générer une base d'apprentissage beaucoup plus vaste. Celle-ci sera enfin utilisée pour générer automatiquement des modèles de métadonnées identifiables. Le processus détaillé est décrit en référence à la Figure 3.
[0104] A l'issue de l'analyse complète, le modèle générique est utilisé pour générer la base de données d'apprentissage, qui est stockée dans la zone mémoire 50. Cela est réalisé en produisant des documents dits „d'apprentissage“ dont le contenu est produit aléatoirement en respectant les contraintes du modèle générique. Cette méthode est rendue possible car le but poursuivi est de produire une grande quantité de documents comptables qui respectent la structure générale observée dans quelques documents et non les valeurs qu'ils contiennent.
[0105] La méthode pour générer les documents d'apprentissage consiste à choisir aléatoirement des lignes du modèle générique comme par exemple : „serui par coop self-checkout“. Dans le mode de réalisation décrit, si la ligne ne contient que des caractères, on la garde telle quelle.
[0106] Toujours dans le mode de réalisation décrit, si la ligne choisie contient des codes de types, alors on génère aléatoirement des valeurs qui correspondent à ces types afin de former une séquence de caractère.
[0107] Par exemple, la ligne <taxcode>{{int:1}}</taxcode></item>¶ permet de produire la séquence de caractères <taxcode>6</taxcode></item>¶. Le type {{int:1}} a été remplacé par la valeur 6 choisie aléatoirement.
[0108] A l'issue de la génération aléatoire de lignes et de contenus de lignes d'un document d'apprentissage, une étape de filtrage (non représentée) peut être réalisée pour garantir que ledit document d'apprentissage généré sera conforme. Plus précisément, le filtrage consiste à ne conserver qu'une seule occurrence de chaque métadonnée Date, Identifier, Total, Items, Taxitems, les métadonnées Item-name, Item_value, Item-taxcode, Taxitem-code, Taxitem-value, Taxitem-percentage pouvant quant à elles apparaitre en nombre quelconque.
[0109] Un exemple de document d'apprentissage généré par cette méthode est présenté dans le Tableau 3 :
[0110] A l'issue de cette étape E6, la zone mémoire 50 contient tous les documents générés aléatoirement, qui serviront à l'apprentissage des modèles.
Modèles spécifiques
[0111] A l'issue de la génération de la base d'apprentissage, le système déclenche une étape E7 de modélisation automatique par apprentissage de réseaux de neurones. A cette fin, le module d'extraction 40 génère une pluralité de modèles spécifiques par entrainement d'une pluralité de réseaux de neurones en nombre identique à partir de la base d'apprentissage, l'entrainement de chaque réseau de neurones entrainant la génération d'un modèle spécifique représentatif d'un type de métadonnée listé dans le modèle générique.
[0112] L'étape E7 consiste à créer un ensemble de réseaux de neurones qui construisent par apprentissage supervisé un modèle de reconnaissance des données présentes dans un document cible. Dans le cadre de la présente invention, le choix des réseaux dépend du type de métadonnée. Pour les métadonnées individuelles (Total, Identifier, Date), chaque modèle sera construit par un réseau de neurone. Il faudra donc trois réseaux pour ces trois métadonnées individuelles. Pour les métadonnées de type Items ou tax-items composées de plusieurs métadonnées individuelles, les modèles seront construits à deux niveaux : modèles pour la reconnaissance du début et de la fin des métadonnées composées, et modèles pour la reconnaissance individuelle des métadonnées. Un exemple d'architecture des réseaux de neurones pour les métadonnées individuelles est illustré sur la Figure 4.
[0113] L'architecture générale utilisée dans cet exemple pour les réseaux de neurones, qui modélisent les métadonnées individuelles, se compose d'une couche d'entrée dont la longueur est fixée par un paramètre. Dans le cas de la présente invention, la longueur pour les réseaux responsables de modéliser les métadonnées de type individuelle est fixée à cent caractères.
[0114] Cette couche d'entrée est une fenêtre de lecture glissante qui parcourt la pièce comptable en se décalant d'un caractère vers la droite pour chaque pas d'apprentissage. La fenêtre de lecture glissante 510, limitée pour l'illustration à vingt-cinq caractères, contient les caractères en cours de lecture dans le document d'apprentissage.
[0115] Les caractères d'entrée sont codés numériquement selon la méthode en utilisant une couche d'intégration (Keras). Cette méthode étant connue de l'homme de l'art, elle ne sera pas détaillée dans le cadre de cette invention. Chaque caractère est encodé avec cinq valeurs numériques.
[0116] Le réseau est constitué de trois couches de neurones dont le nombre est également fixé par un paramètre. Dans le cadre de la présente invention, il est fixé à cinq fois la taille de la fenêtre glissante, soit cinq cents neurones par couche.
[0117] La couche de sortie 520 contient autant d'unités que la taille de la fenêtre d'entrée. Les valeurs de sortie sont „0“ ou „1“ et réalisant ainsi un codage par position. La valeur „0“ signifie que la valeur dans la couche d'entrée à la position correspondante n'est pas une donnée valide pour la métadonnée que l'on modélise. La valeur „1“ signifie que la valeur dans la couche d'entrée à la position correspondante est une donnée valide pour la métadonnée que l'on modélise. Dans l'exemple de la Figure 4, la métadonnée modélisée est „Total “. La valeur 18.75 correspondant à la valeur Total dans la fenêtre glissante en cours de lecture.
[0118] Les paramètres du réseau de neurones dont l'architecture est présentée Figure 4 sont fixés par une méthode d'apprentissage dont le processus est présenté sur la Figure 5 et en référence à la figure 6.
[0119] Le processus d'apprentissage E7 débute par l'étape E71 durant laquelle le système lit un document comptable dans la zone mémoire 50. Dans l'étape E72, ce document est parcouru à travers une fenêtre glissante 376 dont la taille en nombre de caractères est fixée par un paramètre. Une valeur typique de ce paramètre est cent caractères. Cette fenêtre glissante est codée sous la forme d'un vecteur xide texte 377 dont chaque position est un caractère et toutes les balises sont retirées. Les données de la fenêtre glissante sont analysées pour y détecter la présence d'une balise correspondant au modèle en cours d'apprentissage. Par exemple, si le modèle en cours d'apprentissage concerne la métadonnée „Total“, le système recherchera la présence de la balise <total> et </total> dans le texte de la fenêtre glissante 376.
[0120] En parallèle, un vecteur de valeurs binaires zi378 et de même longueur que xiest construit pour coder la position des caractères qui correspondent au modèle en cours d'apprentissage. Ce vecteur sera rempli avec des valeurs 1 aux positions qui correspondent aux valeurs numériques des caractères entourés par les balises <total> et </total> comme illustré sur la Figure 6 (étape E73). En général, le vecteur zicodera par position la présence ou l'absence de caractères correspondant au texte du modèle en cours d'apprentissage.
[0121] Afin que la fenêtre glissante soit de longueur toujours égale, le contenu de la fenêtre glissante est rempli avec des caractères vides pour le début et pour la fin de la lecture du document comptable. Les deux vecteurs xiet zisont utilisés pour adapter les paramètres du modèle. Chaque métadonnée individuelle sera modélisée par un réseau de neurones.
[0122] Dans l'exemple décrit ici, il y a neuf métadonnées individuelles. Il y aura donc neuf réseaux de neurones dont les paramètres seront calculés afin de modéliser chacune d'elles.
[0123] En phase d'apprentissage, chaque vecteur xi associé à un vecteur zjest présenté en entrée du réseau de neurones. Les valeurs de xitraversent le réseau pour produire une sortie yi. Cette dernière est comparée à la sortie attendue zj. La méthode de comparaison est un calcul d'angle de type „cosine similarity“ connu en soi.
[0124] Pour les deux vecteurs yiet zj, l'angle θ s'obtient par le produit scalaire et la norme des vecteurs :
[0125] Comme la valeur cos θ est comprise dans l'intervalle [-1,1], la valeur „-1“ indiquera des vecteurs opposés, „0“ des vecteurs orthogonaux et „1“ des vecteurs colinéaires de coefficient positif. Les valeurs intermédiaires permettent d'évaluer le degré de similarité.
[0126] Les paramètres du modèle sont constitués de l'ensemble des connexions Wij531, 532, 533 de la Figure 5 entre neurones des différentes couches. Ils sont adaptés suivant un algorithme d'adaptation dans une étape E74 (figure 6). Dans le cadre de la présente invention, l'adaptation des coefficients repose sur une descente de gradient dont le calcul est optimisé par un optimisateur ADAM (Adaptive Moment Estimation). Ce processus est réitéré pour l'ensemble des exemples disponibles dans la base d'apprentissage.
[0127] Quand tous les caractères ont été lus, la fenêtre glissante 377 est décalée d'une unité vers la droite et les étapes E71 à E75 sont reprises jusqu'à ce que la fenêtre glissante 377 atteigne le dernier caractère du document d'apprentissage, pour chaque document d'apprentissage de la base d'apprentissage.
[0128] A l'issue de ce processus E7, les modèles spécifiques sont enregistrés dans la zone mémoire 50 afin de les rendre disponibles pour la phase d'exploitation.
Amélioration du modèle
[0129] L'interprétation du modèle construit par ce processus est que pour chaque caractère de la fenêtre glissante 377, la sortie délivrée par le réseau prédit la probabilité que le caractère de la fenêtre glissante appartienne ou non à la section modélisée par le réseau. Du fait que l'on obtient un grand nombre de prédictions, il faut agréger la totalité des prédictions obtenues. Tous les vecteurs de sortie yiproduits à partir de la base d'apprentissage sont ainsi additionnés et une moyenne est calculée. où N est le nombre d'exemples disponibles dans la base de connaissance.
[0130] L'analyse de cette moyenne permet d'améliorer le traitement destiné à produire la prédiction à partir de la fenêtre glissante. En effet, en analysant la forme des vecteurs avec des probabilités moyennes sur de nombreux échantillons, il ressort que la probabilité que des caractères donnés appartiennent à la section dépend de la forme de la prédiction. La prédiction ayant un profil très marqué aura une plus grande crédibilité qu'une prédiction avec un profil plus lisse. Un exemple est montré sur la Figure 7.
[0131] Pour différencier les pics, la méthode consiste à identifier les pics à l'intérieur d'un signal en se basant sur les propriétés des pics. Cette méthode prend un tableau de valeur monodimensionnel et trouve tous les maximas locaux par simple comparaison des valeurs voisines. Cette méthode permet de rendre compte de la proéminence de chaque pic qui, en général, peut être interprété comme la façon dont le pic se distingue de la région environnante. En outre, un filtrage additionnel est utilisé pour filtrer les petits pics qui peuvent apparaître sur les caractères du ticket.
[0132] La valeur de proéminence est ensuite utilisée comme mesure de confiance. Une valeur de proéminence très élevée signifie généralement qu'il est très probable que la région représente la section, de sorte que la région ayant la proéminence la plus élevée est renvoyée comme région d'intérêt.
Prétraitement spécifique pour les métadonnées composées
[0133] Les métadonnées composées requièrent un prétraitement spécifique qui sert à extraire une partie du document pour construire le modèle. En effet, les métadonnées Item-name, Item_value, Item-taxcode, Taxitem-code, Taxitem-value, Taxitem-percentage ne peuvent apparaître que dans le contexte de métadonnées Items ou Taxitems.
[0134] La base d'apprentissage doit donc refléter ce contexte particulier et ne contenir que des suites de caractères qui se trouvent dans ce contexte. Il convient donc d'identifier les caractères de début et de fin des parties des documents contenant les Items et Taxitems.
[0135] Une fois ce traitement réalisé, l'apprentissage des modèles se réalise selon la même architecture et le même processus que pour les items individuels.
[0136] A l'issue de l'ensemble des apprentissages, les paramètres des modèles sont enregistrés dans la zone mémoire 50 dans une étape E8. Ces paramètres seront utilisés lors de l'exploitation des modèles lorsqu'il s'agir de reconnaître automatiquement les métadonnées d'un nouveau document appelé „document cible“ n'ayant pas servi à l'apprentissage.
Phase d'exploitation
[0137] En référence à la figure 8, la phase d'exploitation comprend dans une étape S1 la lecture textuelle et séquentielle d'un document cible par le module d'extraction 40 à l'aide de la fenêtre glissante et le calcul dans une étape S2, pour chaque caractère de ladite fenêtre glissante et pour chaque modèle spécifique, de la probabilité d'appartenance dudit caractère à la métadonnée correspondant audit modèle spécifique. En s'inspirant de la manière dont le cerveau procède pour la lecture de textes, l'invention va permettre de lire un document cible à travers une fenêtre glissante centrée sur chaque caractère lu et qui lui offre ainsi un contexte de lecture.
[0138] A l'étape S1, le document comptable est lu sous une forme textuelle. Cela suppose que la phase de reconnaissance de l'image a été effectuée préalablement.
[0139] A l'étape S2, la prédiction des métadonnées est déclenchée et le module d'extraction 40 calcule les probabilités d'appartenance à une métadonnée pour chaque caractère lu dans la fenêtre glissante à partir des modèles disponibles dans la zone mémoire 50.
[0140] Dans une étape S3, le module d'extraction 40 identifie, dans la fenêtre glissante, le modèle spécifique pour lequel la moyenne des probabilités calculées pour chaque caractère d'au moins une série de caractères est supérieure à un seuil prédéterminé,
[0141] Dans une étape S4, le module d'extraction 40 détermine la métadonnée associée au modèle spécifique identifié.
[0142] Dans une étape S5, le module d'extraction 40 extrait la valeur associée à ladite métadonnée déterminée.
[0143] En référence à la figure 9, pour chaque position de la fenêtre glissante 377, le module d'extraction 40 calcule toutes les prédictions de chaque modèle. Il identifie la métadonnée qui délivre la prédiction la plus crédible et, connaissant la position de chaque caractère, le système les copie dans le champ de la métadonnée correspondant. Sur la Figure 9, pour les caractères lus dans la fenêtre glissante, le modèle de métadonnée „total“ délivre la prédiction la plus crédible. Les données à l'emplacement correspondant aux probabilités le plus élevées seront copiées dans le champ de métadonnées „Total“.
Ajout manuel d'une métadonnée
[0144] La métadonnée „description“ peut être enrichie dans une fenêtre affichée par le module d'extraction 40. En référence à la figure 10, l'utilisateur peut remplir le champ 720 de cette interface pour ajouter manuellement une description de la pièce comptable. Cette étape peut être utilisée pour faciliter le regroupement de documents cibles de manière automatique.
[0145] L'invention permet donc une extraction automatique efficace et fiable.

Claims (10)

1. Procédé d'extraction de données dans un document cible textuellement numérisé, chaque donnée étant caractérisée par son type sous la forme d'une métadonnée, ledit procédé comprenant les étapes de : – conception (E5) d'un modèle générique à partir d'une pluralité de documents comprenant chacun au moins une métadonnée marquée, ledit modèle générique listant l'ensemble des métadonnées marquées, – production (E6) automatique d'une base de données d'apprentissage à partir du modèle générique généré, ladite base de données d'apprentissage comprenant une pluralité de documents d'apprentissage comprenant chacun tout ou partie des types de métadonnées du modèle générique généré, chaque type de métadonnées étant associé à une valeur, – génération (E7) d'une pluralité de modèles spécifiques par entrainement d'une pluralité de réseaux de neurones en même nombre que le nombre de modèles spécifiques à partir de la base d'apprentissage, l'entrainement de chaque réseau de neurones entrainant la génération d'un modèle spécifique représentatif d'un type de métadonnée listé dans le modèle générique, – lecture (S1) textuelle et séquentielle du document cible à l'aide de la fenêtre glissante et calcul (S2), pour chaque caractère de ladite fenêtre glissante et pour chaque modèle spécifique, de la probabilité d'appartenance dudit caractère à la métadonnée correspondant audit modèle spécifique, – identification (S3), dans la fenêtre glissante, du modèle spécifique pour lequel la moyenne des probabilités calculées pour chaque caractère d'au moins une série de caractères est supérieure à un seuil prédéterminé, – détermination (S4) de la métadonnée associée au modèle spécifique identifié, – extraction (S5) de la valeur associée à ladite métadonnée déterminée.
2. Procédé selon la revendication 1, comprenant une étape (E0) de sélection d'un nombre prédéterminé de documents de référence dans un ensemble initial de documents.
3. Procédé selon la revendication précédente, dans lequel la sélection du nombre prédéterminé de documents dans un ensemble initial de documents est réalisée manuellement par un opérateur.
4. Procédé selon l'une quelconque des revendications précédentes, comprenant une étape de marquage (E3) de chaque métadonnée identifiable dans chaque document sélectionné, de préférence manuellement par un opérateur.
5. Procédé selon l'une quelconque des revendications précédentes, comprenant une étape d'enregistrement (E4) dans une zone mémoire (50) des modèles spécifiques générés.
6. Procédé selon l'une quelconque des revendications précédentes, dans lequel la production (E6) automatique de la base de données d'apprentissage à partir du modèle générique généré comprend la génération d'au moins cent documents d'apprentissage, de préférence au moins mille, de préférence encore au moins dix-mille.
7. Procédé selon l'une quelconque des revendications précédentes, dans lequel chaque document de la pluralité de documents d'apprentissage comprend tous les types de métadonnées du modèle générique généré.
8. Procédé selon l'une quelconque des revendications précédentes, comprenant une étape de filtrage pour s'assurer que chaque document comprend au maximum une métadonnée de chaque type.
9. Procédé selon l'une quelconque des revendications précédentes, dans lequel la fenêtre glissante glisse d'un caractère à chaque itération.
10. Module d'extraction (40) de données dans un document cible textuellement numérisé, ledit module d'extraction (40) étant configuré pour mettre en oeuvre le procédé selon la revendication 1.
CH70158/21A 2021-08-13 2021-08-13 Procédé d'extraction de données d'un document. CH718888A2 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CH70158/21A CH718888A2 (fr) 2021-08-13 2021-08-13 Procédé d'extraction de données d'un document.
PCT/EP2022/071982 WO2023016925A1 (fr) 2021-08-13 2022-08-04 Système d'extraction de données d'un document

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CH70158/21A CH718888A2 (fr) 2021-08-13 2021-08-13 Procédé d'extraction de données d'un document.

Publications (1)

Publication Number Publication Date
CH718888A2 true CH718888A2 (fr) 2023-02-15

Family

ID=85200593

Family Applications (1)

Application Number Title Priority Date Filing Date
CH70158/21A CH718888A2 (fr) 2021-08-13 2021-08-13 Procédé d'extraction de données d'un document.

Country Status (2)

Country Link
CH (1) CH718888A2 (fr)
WO (1) WO2023016925A1 (fr)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11023656B2 (en) * 2017-10-20 2021-06-01 Heretik Inc. Method and system for dynamically configuring a user interface for a specified document review task
US10936863B2 (en) 2017-11-13 2021-03-02 Way2Vat Ltd. Systems and methods for neuronal visual-linguistic data retrieval from an imaged document
RU2737720C1 (ru) * 2019-11-20 2020-12-02 Общество с ограниченной ответственностью "Аби Продакшн" Извлечение полей с помощью нейронных сетей без использования шаблонов

Also Published As

Publication number Publication date
WO2023016925A1 (fr) 2023-02-16

Similar Documents

Publication Publication Date Title
CN107608958B (zh) 基于条款统一建模的合同文本风险信息挖掘方法和系统
CN109658478B (zh) 一种提供企业画像的方法及系统
US20190279170A1 (en) Dynamic resource management associated with payment instrument exceptions processing
Hurwitz et al. Big data for dummies
US8798354B1 (en) Method and system for automatic correlation of check-based payments to customer accounts and/or invoices
US11983780B2 (en) System and method of determining tax liability of entity
WO2021025926A1 (fr) Priorisation de contenu numérique pour accélérer un hyper-ciblage
US20150242856A1 (en) System and Method for Identifying Procurement Fraud/Risk
US20220067365A1 (en) System and method for domain aware document classification and information extraction from consumer documents
CH716698A2 (fr) Hachage d&#39;image perceptuel partiel pour la déconstruction de factures.
US11710192B2 (en) Taxpayers switching tax preparers
FR3069075A1 (fr) Systeme et procede pour integrer du contenu de message dans un dispositif cible de traitement de donnees
Crookes et al. Technology challenges in accounting and finance
Jayoma et al. OCR based document archiving and indexing using PyTesseract: A record management system for dswd caraga, Philippines
Skyrius et al. The potential of big data in banking
Sahu et al. Invoice processing using robotic process automation
Lawton et al. eDiscovery in digital forensic investigations
WO2023016925A1 (fr) Système d&#39;extraction de données d&#39;un document
CN113408446B (zh) 账单核算方法、装置、电子设备及存储介质
EP3945484A1 (fr) Systèmes et procédés permettant d&#39;obtenir des informations à partir d&#39;un message numérique
TWM553835U (zh) 自動智慧化帳務系統
TWI660312B (zh) 自動智慧化帳務系統
Abate et al. Significance. Stop Illicit Heritage Trafficking with Artificial Intelligence
US20240089247A1 (en) Systems and methods for extracting discrete data from a data unit and managing access thereto using electronic digital certificates
Bogahawatte et al. Online Digital Cheque Clearance and Verification System using Block Chain