Vous cherchez à extraire des données de documents numérisés ? Essayer nanonets™ Avancée Scanner OCR basé sur l'IA pour extraire et organiser des informations à partir de Documents scannés automatiquement .
Introduction
Alors que le monde est passé des papiers et des écritures manuscrites aux documents numériques pour plus de commodité, l'importance de convertir les images et les documents numérisés en données significatives a explosé.
Pour répondre au besoin d'extraction de données de documents très précises, de nombreuses installations de recherche et sociétés (c'est-à-dire Google, AWS, Nanonets, etc.) se sont profondément concentrées sur les technologies dans les domaines de la vision par ordinateur et du traitement du langage naturel (NLP).
L'essor des technologies d'apprentissage en profondeur a assuré un pas de géant dans le type de données pouvant être extraites ; nous ne sommes plus contraints d'extraire uniquement du texte, mais également d'autres structures de données telles que des tables et des paires clé-valeur. De nombreuses solutions proposent désormais divers produits pour répondre aux besoins des particuliers et des propriétaires d'entreprise en matière d'extraction de données documentaires.
Cet article se penche sur la technologie actuelle utilisée pour l'extraction de données à partir de documents numérisés, suivi d'un court didacticiel pratique en Python. Nous examinerons également certaines des solutions populaires actuellement sur le marché offrant les meilleures offres dans ce domaine.
Qu'est-ce que l'extraction de données?
L'extraction de données est le processus de conversion de données non structurées en informations interprétables par des programmes pour permettre un traitement ultérieur des données par des humains. Nous énumérons ici plusieurs des types de données les plus courants à extraire des documents numérisés.
Données textuelles
La tâche la plus courante et la plus importante dans l'extraction de données à partir de documents numérisés est l'extraction de texte. Ce processus, bien qu'apparemment simple, est en fait très difficile car les documents numérisés sont souvent présentés sous forme d'images. De plus, les méthodes d'extraction sont fortement dépendantes des types de texte. Alors que le texte est présent dans des formats imprimés denses la plupart du temps, la capacité d'extraire du texte clairsemé de documents moins bien numérisés ou de lettres manuscrites avec des styles radicalement différents est tout aussi importante. Un tel processus permettra aux programmes de convertir des images en texte codé par machine, où nous pourrons les organiser davantage à partir de données non structurées (sans certain formatage) en données structurées pour une analyse plus approfondie.
Tables
Les formes tabulaires sont l'approche la plus populaire pour le stockage de données, car le format est facilement interprétable à l'œil nu. Le processus d'extraction de tableaux à partir de documents numérisés nécessite une technologie au-delà de la détection de caractères - il faut détecter les lignes et autres caractéristiques visuelles afin d'effectuer une extraction de tableau appropriée et de convertir davantage ces informations en données structurées pour un calcul ultérieur. Les méthodes de vision par ordinateur (décrites en détail dans les sections suivantes) sont largement utilisées pour obtenir une extraction de table de haute précision.
Paires clé-valeur
Un format alternatif que nous adoptons souvent dans les documents pour le stockage de données est les paires clé-valeur (KVP).
Les KVP sont essentiellement deux éléments de données - une clé et une valeur - liés ensemble en un seul. La clé est utilisée comme identifiant unique pour la valeur à récupérer. Un exemple classique de KVP est le dictionnaire, où les vocabulaires sont les clés et les définitions correspondantes sont les valeurs. Ces paires, bien que généralement inaperçues, sont en fait utilisées très fréquemment dans les documents : les questions des enquêtes telles que le nom, l'âge et le prix des articles sur les factures sont toutes implicitement des KVP.
Cependant, contrairement aux tableaux, les KVP existent souvent dans des formats inconnus et sont parfois même partiellement manuscrits. Par exemple, les clés peuvent être pré-imprimées dans des cases et les valeurs sont écrites à la main au moment de remplir le formulaire. Par conséquent, trouver les structures sous-jacentes pour effectuer automatiquement l'extraction KVP est un processus de recherche continu, même pour les installations et les laboratoires les plus avancés.
Figures
Enfin, il est également très important d'extraire ou capturer des données à partir de chiffres dans un document numérisé. Les indicateurs statistiques tels que les camemberts et les histogrammes contiennent souvent des informations cruciales pour les documents. Un bon processus d'extraction de données devrait pouvoir déduire des légendes et des chiffres pour extraire partiellement les données des figures pour une utilisation ultérieure.
Vous cherchez à extraire des données de documents numérisés ? Donner des nanonets™ une rotation pour une plus grande précision, une plus grande flexibilité, un post-traitement et un large éventail d'intégrations!
Technologies derrière l'extraction de données
L'extraction de données s'articule autour de deux processus principaux : Reconnaissance optique de caractères (ROC) suivi du traitement automatique du langage naturel (PNL).
L'extraction OCR est le processus de conversion d'images de texte en texte codé par machine, tandis que ce dernier est l'analyse des mots pour en déduire les significations. L'OCR est souvent accompagné d'autres techniques de vision par ordinateur telles que la détection de boîtes et de lignes pour extraire les types de données susmentionnés tels que les tables et les KVP pour une extraction plus complète.
Les principales améliorations derrière le pipeline d'extraction de données sont étroitement liées aux progrès de l'apprentissage en profondeur qui ont grandement contribué aux domaines de la vision par ordinateur et du traitement du langage naturel (TAL).
Qu'est-ce que le Deep Learning?
L'apprentissage en profondeur, a un rôle majeur derrière le battage médiatique de l'ère de l'intelligence artificielle, et a été constamment poussé au premier plan dans de nombreuses applications. En ingénierie traditionnelle, notre objectif est de concevoir un système/une fonction qui génère une sortie à partir d'une entrée donnée ; l'apprentissage en profondeur, d'autre part, s'appuie sur les entrées et les sorties pour trouver la relation intermédiaire qui peut être étendue à de nouvelles données invisibles via le soi-disant Réseau neuronal.
Un réseau de neurones, ou un perceptron multicouche (MLP), est une architecture d'apprentissage automatique inspirée de la façon dont les cerveaux humains apprennent. Le réseau contient des neurones, qui imitent les neurones biologiques et « s'activent » lorsqu'on leur donne des informations différentes. Des ensembles de neurones forment des couches, et plusieurs couches sont empilées pour former un réseau pour servir les objectifs de prédiction de plusieurs formes (c'est-à-dire, les classifications d'images ou les boîtes englobantes pour les détections d'objets).
Dans le domaine de la vision par ordinateur, un type de variation de réseau de neurones est fortement appliqué - les réseaux de neurones convolutifs (CNN). Au lieu de couches traditionnelles, un CNN adopte des noyaux convolutifs qui glissent à travers des tenseurs (ou des vecteurs de grande dimension) pour l'extraction de caractéristiques. Accompagnés des couches réseau traditionnelles à la fin, les CNN réussissent très bien dans les tâches liées à l'image et constituent en outre la base de l'extraction OCR et d'autres détections de fonctionnalités.
D'autre part, la PNL dépend d'un autre ensemble de réseaux, qui se concentre sur les données de séries chronologiques. Contrairement aux images, où une image est indépendante l'une de l'autre, la prédiction de texte peut être largement bénéfique si les mots avant ou après sont également pris en compte. Depuis quelques années, une famille de réseaux, à savoir les mémoires longues à court terme (LSTM), qui prend les résultats précédents comme entrées pour prédire les résultats actuels. Les LSTM bilatéraux ont également été souvent adoptés pour améliorer la sortie de prédiction, où les résultats avant et après ont été pris en compte. Cependant, ces dernières années, un concept de transformateurs utilisant un mécanisme d'attention commence à se développer en raison de sa plus grande flexibilité conduisant à de meilleurs résultats que les réseaux traditionnels gérant des séries chronologiques séquentielles.
Applications de l'extraction de données
L'objectif principal de l'extraction de données est de convertir les données de documents non structurés en formats structurés, dans lesquels une récupération très précise du texte, des figures et des structures de données peut être très utile pour l'analyse numérique et contextuelle. Ces analyses peuvent être très utiles notamment pour les entreprises :
La Brochure
Les sociétés commerciales et les grandes organisations traitent quotidiennement des milliers de documents aux formats similaires. Les grandes banques reçoivent de nombreuses demandes identiques et les équipes de recherche doivent analyser des piles de formulaires pour effectuer des analyses statistiques. Par conséquent, l'automatisation de l'étape initiale d'extraction des données des documents réduit considérablement la redondance des ressources humaines et permet aux travailleurs de se concentrer sur l'analyse des données et l'examen des candidatures au lieu de saisir des informations.
- Vérification des candidatures — Les entreprises reçoivent des tonnes de candidatures, qu'elles soient manuscrites ou uniquement via des formulaires de candidature. Dans la plupart des cas, ces demandes peuvent être accompagnées d'identifiants personnels à des fins de vérification. Les documents numérisés d'identité tels que les passeports ou les cartes sont généralement livrés par lots avec des formats similaires. Par conséquent, un extracteur de données bien écrit peut rapidement convertir les données (textes, tableaux, figures, KVP) en textes compréhensibles par la machine, ce qui pourrait réduire considérablement les heures de travail sur ces tâches et se concentrer sur la sélection d'applications plutôt que sur l'extraction.
- Rapprochement des paiements — Le rapprochement des paiements est le processus de comparaison des relevés bancaires pour assurer la concordance des chiffres entre les comptes, qui s'articule fortement autour de l'extraction de données à partir de documents — un problème difficile pour une entreprise de taille considérable et de diverses sources de revenus. L'extraction de données peut faciliter ce processus et permettre aux employés de se concentrer sur les données erronées et d'explorer les événements frauduleux potentiels concernant le flux de trésorerie.
- Analyses statistiques — Les commentaires des clients ou des participants aux expériences sont utilisés par les entreprises et les organisations pour améliorer leurs produits et services, et une évaluation complète des commentaires nécessitera généralement une analyse statistique. Cependant, les données d'enquête peuvent exister dans de nombreux formats ou cachées entre des textes de différents formats. L'extraction de données pourrait faciliter le processus en signalant les données évidentes des documents par lots, faciliter le processus de recherche de processus utiles et, en fin de compte, augmenter l'efficacité.
- Partage d'anciens enregistrements — Des soins de santé au changement de services bancaires, les grandes industries ont souvent besoin de nouvelles informations sur les clients qui peuvent déjà exister ailleurs. Par exemple, un patient qui change d'hôpital en raison d'un déménagement peut avoir des dossiers médicaux préexistants qui pourraient être utiles au nouvel hôpital. Dans de tels cas, un bon logiciel d'extraction de données est utile car il suffit que l'individu apporte un historique numérisé des dossiers au nouvel hôpital pour qu'il remplisse automatiquement toutes les informations. Non seulement cela serait pratique, mais cela pourrait également éviter des risques importants, en particulier dans le secteur de la santé, de voir des dossiers patients importants être négligés.
Vous cherchez à extraire des données de documents numérisés ? Donner des nanonets™ une rotation pour une plus grande précision, une plus grande flexibilité, un post-traitement et un large éventail d'intégrations!
Tutoriels
Pour fournir une vue plus claire sur la façon d'effectuer l'extraction de données, nous montrons deux ensembles de méthodes sur l'extraction de données à partir de documents numérisés.
Construire à partir de zéro
On peut créer un moteur OCR d'extraction de données simple via le moteur PyTesseract comme suit :
try: from PIL import Image
except ImportError: import Image
import pytesseract # If you don't have tesseract executable in your PATH, include the following:
pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>'
# Example tesseract_cmd = r'C:Program Files (x86)Tesseract-OCRtesseract' # Simple image to string
print(pytesseract.image_to_string(Image.open('test.png'))) # List of available languages
print(pytesseract.get_languages(config='')) # French text image to string
print(pytesseract.image_to_string(Image.open('test-european.jpg'), lang='fra')) # In order to bypass the image conversions of pytesseract, just use relative or absolute image path
# NOTE: In this case you should provide tesseract supported images or tesseract will return error
print(pytesseract.image_to_string('test.png')) # Batch processing with a single file containing the list of multiple image file paths
print(pytesseract.image_to_string('images.txt')) # Timeout/terminate the tesseract job after a period of time
try: print(pytesseract.image_to_string('test.jpg', timeout=2)) # Timeout after 2 seconds print(pytesseract.image_to_string('test.jpg', timeout=0.5)) # Timeout after half a second
except RuntimeError as timeout_error: # Tesseract processing is terminated pass # Get bounding box estimates
print(pytesseract.image_to_boxes(Image.open('test.png'))) # Get verbose data including boxes, confidences, line and page numbers
print(pytesseract.image_to_data(Image.open('test.png'))) # Get information about orientation and script detection
print(pytesseract.image_to_osd(Image.open('test.png'))) # Get a searchable PDF
pdf = pytesseract.image_to_pdf_or_hocr('test.png', extension='pdf')
with open('test.pdf', 'w+b') as f: f.write(pdf) # pdf type is bytes by default # Get HOCR output
hocr = pytesseract.image_to_pdf_or_hocr('test.png', extension='hocr') # Get ALTO XML output
xml = pytesseract.image_to_alto_xml('test.png')
Pour plus d'informations sur le code, vous pouvez consulter leur site officiel Documentation.
En termes simples, le code extrait des données telles que des textes et des cadres de délimitation à partir d'une image donnée. Bien qu'assez utile, le moteur n'est nulle part aussi puissant que ceux fournis par les solutions avancées en raison de leur puissance de calcul substantielle pour la formation.
Utilisation de l'API Google Document
def async_detect_document(gcs_source_uri, gcs_destination_uri):
"""OCR with PDF/TIFF as source files on GCS""" import json import re from google.cloud import vision from google.cloud import storage # Supported mime_types are: 'application/pdf' and 'image/tiff' mime_type = 'application/pdf' # How many pages should be grouped into each json output file. batch_size = 2 client = vision.ImageAnnotatorClient() feature = vision.Feature( type_=vision.Feature.Type.DOCUMENT_TEXT_DETECTION) gcs_source = vision.GcsSource(uri=gcs_source_uri) input_config = vision.InputConfig( gcs_source=gcs_source, mime_type=mime_type) gcs_destination = vision.GcsDestination(uri=gcs_destination_uri) output_config = vision.OutputConfig( gcs_destination=gcs_destination, batch_size=batch_size) async_request = vision.AsyncAnnotateFileRequest( features=[feature], input_config=input_config, output_config=output_config) operation = client.async_batch_annotate_files( requests=[async_request]) print('Waiting for the operation to finish.') operation.result(timeout=420) # Once the request has completed and the output has been # written to GCS, we can list all the output files. storage_client = storage.Client() match = re.match(r'gs://([^/]+)/(.+)', gcs_destination_uri) bucket_name = match.group(1) prefix = match.group(2) bucket = storage_client.get_bucket(bucket_name) # List objects with the given prefix. blob_list = list(bucket.list_blobs(prefix=prefix)) print('Output files:') for blob in blob_list: print(blob.name) # Process the first output file from GCS. # Since we specified batch_size=2, the first response contains # the first two pages of the input file. output = blob_list[0] json_string = output.download_as_string() response = json.loads(json_string) # The actual response for the first page of the input file. first_page_response = response['responses'][0] annotation = first_page_response['fullTextAnnotation'] # Here we print the full text from the first page. # The response contains more information: # annotation/pages/blocks/paragraphs/words/symbols # including confidence scores and bounding boxes print('Full text:n') print(annotation['text'])
En fin de compte, l'IA documentaire de Google vous permet d'extraire de nombreuses informations de documents avec une grande précision. De plus, le service est également proposé pour des utilisations spécifiques, y compris l'extraction de texte pour les images normales et sauvages.
S'il vous plaît se référer à ici pour plus d'information.
Solutions actuelles offrant l'extraction de données
Outre les grandes entreprises disposant d'API pour l'extraction de données de documents, il existe plusieurs solutions qui fournissent des informations très précises. OCR PDF prestations de service. Nous présentons plusieurs options d'OCR PDF spécialisées dans différents aspects, ainsi que quelques prototypes de recherche récents qui semblent fournir des résultats prometteurs* :
*Remarque : Il existe plusieurs services OCR qui ciblent des tâches telles que les images dans la nature. Nous avons ignoré ces services car nous nous concentrons actuellement sur la lecture de documents PDF uniquement.
- API Google — En tant que l'un des plus grands fournisseurs de services en ligne, Google offre des résultats étonnants en matière d'extraction de documents grâce à sa technologie de vision par ordinateur pionnière. On peut utiliser leurs services gratuitement si l'utilisation est assez faible, mais le prix s'accumule à mesure que les appels d'API augmentent.
- Lecteur profond — Deep Reader est un travail de recherche publié dans la conférence ACCV 2019. Il intègre plusieurs architectures réseau de pointe pour effectuer des tâches telles que correspondance de documents, la récupération de texte et le débruitage des images. Il existe des fonctionnalités supplémentaires telles que les tables et l'extraction de paires clé-valeur qui permettent de récupérer et d'enregistrer les données de manière organisée.
- Nanonets ™ — Avec une équipe d'apprentissage en profondeur très compétente, Nanonets™ PDF OCR est complètement indépendant des modèles et des règles. Par conséquent, non seulement Nanonets™ peut fonctionner sur des types spécifiques de fichiers PDF, mais il peut également être appliqué sur n'importe quel type de document pour la récupération de texte.
Vous cherchez à extraire des données de documents numérisés ? Donner des nanonets™ une rotation pour une plus grande précision, une plus grande flexibilité, un post-traitement et un large éventail d'intégrations!
Conclusion
En conclusion, cet article présente une explication approfondie de l'extraction de données à partir de documents numérisés, y compris les défis sous-jacents et la technologie requise pour ce processus.
Deux didacticiels de méthodes différentes sont présentés, et les solutions actuelles qui l'offrent prêtes à l'emploi sont également présentées à titre de référence.
- 2019
- Qui sommes-nous
- Absolute
- Compte
- Avec cette connaissance vient le pouvoir de prendre
- atteindre
- ajout
- Supplémentaire
- Avancée
- avances
- AI
- algorithmes
- Tous
- déjà
- alternative
- analyser
- selon une analyse de l’Université de Princeton
- Une autre
- api
- Apis
- Application
- applications
- une approche
- architecture
- autour
- article
- artificiel
- intelligence artificielle
- précaution
- Automation
- disponibles
- AWS
- fond
- Banque
- Banks
- base
- va
- LES MEILLEURS
- Au-delà
- Le plus grand
- frontière
- Box
- construire
- la performance des entreprises
- entreprises
- Cartes
- cas
- Argent liquide
- cash-flow
- certaines
- globaux
- difficile
- Charts
- Passer au paiement
- classiques
- le cloud
- CNN
- code
- comment
- Commun
- Sociétés
- Société
- complètement
- compléter
- complet
- calcul
- ordinateur
- concept
- Congrès
- confiance
- connecté
- constamment
- contient
- contribué
- commodité
- Pratique
- conversions
- Core
- Corporations
- Correspondant
- pourriez
- crucial
- Courant
- Lecture
- des clients
- Clients
- données
- informatique
- stockage de données
- affaire
- décrit
- Conception
- détail
- Détection
- différent
- difficile
- numérique
- INSTITUTIONNELS
- même
- efficace
- employés
- Moteur
- ENGINEERING
- notamment
- essentiellement
- estimations
- etc
- évaluation
- événements
- exemple
- Sauf
- expérience
- explorez
- les
- Extraits
- famille
- Fonctionnalité
- Fonctionnalités:
- Réactions
- Des champs
- trouver
- Prénom
- Flexibilité
- flux
- Focus
- concentré
- se concentre
- mettant l'accent
- Abonnement
- Premier plan
- formulaire
- le format
- document
- Test d'anglais
- Français
- Remplir
- plein
- plus
- objectif
- Bien
- plus grand
- considérablement
- Maniabilité
- hands-on
- front
- la médecine
- secteur de la santé
- utile
- ici
- Haute
- augmentation
- très
- Histoire
- les hôpitaux
- Comment
- How To
- Cependant
- HTTPS
- humain
- Ressources Humaines
- Les êtres humains
- image
- importance
- important
- améliorer
- comprendre
- Y compris
- passif
- Améliore
- individuel
- individus
- secteurs
- industrie
- d'information
- contribution
- inspiré
- Intelligence
- aide
- IT
- Emploi
- ACTIVITES
- clés
- Labs
- langue
- Langues
- gros
- conduisant
- APPRENTISSAGE
- apprentissage
- Gamme
- Liste
- Location
- click
- machine learning
- majeur
- Majorité
- man
- manière
- Marché
- Match
- assorti
- médical
- méthodes
- PLUS
- (en fait, presque toutes)
- Le Plus Populaire
- en mouvement
- plusieurs
- à savoir
- Nature
- Besoins
- réseau et
- réseaux
- Ordinaire
- numéros
- nombreux
- code
- présenté
- offrant
- Offrandes
- Offres Speciales
- officiel
- en cours
- en ligne
- opération
- Options
- de commander
- organisations
- Organisé
- Autre
- propriétaires
- participants
- Paiement
- effectuer
- période
- personnel
- Nous travaillons à vous offrir une solution de transport
- Populaire
- défaillances
- power
- prévoir
- prédiction
- représentent
- assez
- précédent
- prix
- processus
- les process
- traitement
- Produits
- Programme
- Programmes
- prometteur
- fournir
- aportando
- des fins
- vite.
- RE
- Reader
- en cours
- recevoir
- réconciliation
- Articles
- réduire
- en ce qui concerne
- relation amoureuse
- nécessaire
- exigent
- conditions
- a besoin
- un article
- Ressources
- réponse
- Résultats
- retourner
- risques
- balayage
- secondes
- service
- Services
- set
- plusieurs
- Shorts
- assistance technique à court terme
- similaires
- étapes
- depuis
- Taille
- Logiciels
- solide
- Solutions
- quelques
- spécialisé
- Spin
- state-of-the-art
- déclarations
- statistique
- storage
- courant
- STRONG
- structuré
- Ces
- réussi
- Appareils
- Sondage
- des campagnes marketing ciblées,
- tâches
- équipe
- techniques
- Les technologies
- Technologie
- tester
- le monde
- donc
- milliers
- Avec
- fiable
- fois
- ensemble
- tonnes
- vers
- traditionnel
- Formation
- tutoriels
- types
- comprendre
- unique
- utilisé
- d'habitude
- Plus-value
- divers
- Vérification
- Voir
- vision
- que
- tout en
- dans les
- sans
- des mots
- Activités principales
- ouvriers
- world
- pourra
- XML
- années