Convertir les données PDF en entrées de base de données PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Convertir des données PDF en entrées de base de données

Plusieurs organisations et entreprises s'appuient sur des documents PDF pour partager des documents importants tels que des factures, des fiches de paie, des états financiers, des bons de travail, des reçus, etc. Cependant, les PDF ne sont pas les formats de référence pour stocker des données historiques, car ils ne peuvent pas être facilement exportés et organisés en flux de travail. Ainsi, les gens utilisent des algorithmes d'extraction d'informations pour numériser les PDF et les documents numérisés dans des formats structurés tels que JSON, CSV, Tables ou Excel qui peuvent facilement être convertis en d'autres flux de travail organisationnels.

Dans certains cas, les fichiers PDF contiennent des informations essentielles à traiter dans différents ERP, CMS et autres systèmes basés sur des bases de données. Malheureusement, les documents PDF n'ont pas de fonction PDF vers base de données facile, et écrire des scripts ou créer un flux de travail autour de cette tâche est un peu compliqué. C'est là que les algorithmes OCR et Deep Learning (DL) entrent en jeu pour extraire les données de ces formats PDF et les exporter dans une base de données. Dans cet article de blog, nous examinerons différentes manières d'y parvenir en utilisant les technologies DL ainsi que certaines API populaires sur le marché.

Qu'est-ce que la conversion PDF en base de données ?

La conversion PDF en base de données consiste à exporter des données à partir de fichiers PDF vers une base de données telle que Postgres, Mongo, MySQL, etc.

Supposons que nous devions créer une application Web ou un système ERP qui contient et gère les informations de facturation provenant de différentes sources. L'ajout manuel de factures historiques dans une base de données est une tâche ardue et très sujette aux erreurs. D'un autre côté, l'utilisation d'un simple OCR peut ne pas extraire avec précision les tableaux des factures.

C'est là que la conversion avancée de PDF en base de données basée sur l'IA est utile !

Ce processus de conversion de PDF en base de données piloté par l'IA peut-il être automatisé ? - Oui.

Dans les sections ci-dessous, nous utilisons la vision par ordinateur et l'apprentissage en profondeur pour détecter les régions de table à partir de documents numérisés. Ces tableaux sont en outre stockés dans un format de données particulier tel que CSV ou Excel et seront poussés directement dans les bases de données.

Avant d'en discuter, comprenons quelques cas d'utilisation où la détection PDF vers base de données peut être utile.

Différents cas d'utilisation du PDF vers les bases de données

Les bases de données sont le meilleur moyen de stocker des informations sur le cloud et le stockage local. Ils nous permettent d'effectuer différentes opérations et manipulations à l'aide de requêtes simples. Voici quelques cas d'utilisation qui pourraient être grandement optimisés avec un flux de travail automatisé de conversion de PDF en base de données :

  1. Gestion des factures sur le Web : Les entreprises et les organisations traitent plusieurs factures chaque jour ; et il leur est difficile de traiter chaque facture manuellement. De plus, ils établissent et reçoivent parfois des factures dans un format non numérique, ce qui les rend plus difficiles à suivre. Par conséquent, ils s'appuient sur des applications Web qui peuvent stocker toutes leurs factures au même endroit. Un convertisseur PDF vers base de données pourrait automatiser l'extraction des données des factures vers l'application Web. Pour automatiser ces tâches efficacement, nous pourrions exécuter des tâches cron et les intégrer à des services tiers tels que n8n et Zapier - lorsqu'une nouvelle facture est numérisée et téléchargée, il peut exécuter l'algorithme et le pousser automatiquement dans des tables.
  2. Gestion des stocks EComt : Une grande partie de la gestion des stocks e-com passe toujours par la saisie manuelle de produits à partir de fichiers PDF et de copies numérisées. Cependant, ils doivent télécharger toutes leurs données dans un logiciel de gestion de facturation pour suivre tous leurs produits et leurs ventes. Par conséquent, l'utilisation de l'algorithme de conversion de table en base de données peut aider à automatiser leur saisie manuelle et à économiser des ressources. Ce processus implique généralement de numériser la liste d'inventaire à partir de documents numérisés et de les exporter dans des tables de base de données spécifiques en fonction de différentes règles et conditions commerciales.
  3. Extraction de données à partir d'enquêtes: Pour recueillir des commentaires et d'autres informations précieuses, nous effectuons généralement une enquête. Ils fournissent une source essentielle de données et d'informations pour presque toutes les personnes impliquées dans l'économie de l'information, des entreprises et des médias au gouvernement et aux universitaires. Lorsque ceux-ci sont collectés en ligne, il est facile d'extraire l'état des données du tableau en fonction de la réponse de l'utilisateur et de le télécharger dans une base de données. Cependant, dans la plupart des cas, les réponses aux enquêtes sont sur papier. Dans de tels cas, il est extrêmement difficile de collecter manuellement des informations et de les stocker au format numérique. Par conséquent, s'appuyer sur une table pour des algorithmes de base de données peut faire gagner du temps et également réduire les coûts supplémentaires.

Comment extraire des informations de PDF vers des bases de données relationnelles et non relationnelles ?

Un fichier PDF est considéré comme deux types différents, généré électroniquement et non généré électroniquement.

  1. PDF électroniques : ce document PDF numérisé peut contenir du texte caché derrière l'image ; ceux-ci sont également appelés fichiers PDF générés électroniquement.
  2. PDF non électroniques : dans ce type, nous voyons davantage de contenu codé en dur sous forme d'images. C'est le cas lorsque vous avez un document papier numérisé dans un fichier PDF.

Nous pourrions nous appuyer sur des langages de programmation et des frameworks simples tels que Python et Java pour le premier type (générés électroniquement). Pour les PDF non générés électroniquement, nous devrons utiliser des techniques de vision par ordinateur avec OCR et apprentissage en profondeur. Cependant, ces algorithmes peuvent ne pas être les mêmes pour tous les algorithmes d'extraction de table, et ils devront changer en fonction du type de données pour obtenir une plus grande précision. Le NLP (Natural Language Processing) est également utilisé pour comprendre les données contenues dans les tableaux et les extraire dans certains cas.

D'autre part, il existe deux types de bases de données (relationnelles et non relationnelles) ; chacune de ces bases de données possède différents ensembles de règles en fonction de leur architecture. Une base de données relationnelle est structurée, ce qui signifie que les données sont organisées en tables. Quelques exemples incluent MySQL, Postgres, etc.

En revanche, la base de données non relationnelle est orientée document, ce qui signifie que toutes les informations sont stockées dans un ordre de liste de blanchisserie. Dans un seul document de constructeur, vous aurez toutes vos données répertoriées - par exemple, MongoDB.

PDF vers une base de données lorsque les documents sont générés électroniquement

Comme indiqué, pour les fichiers PDF générés électroniquement, le processus d'extraction des tableaux est simple. L'idée est d'extraire des tables, puis d'utiliser des scripts simples pour les convertir ou les ajouter dans des tables. Pour l'extraction de tableaux à partir de fichiers PDF, il existe principalement deux techniques.

Technique #1 Flux : L'algorithme analyse les tableaux en fonction des espaces entre les cellules pour simuler une structure de tableau, en identifiant l'endroit où le texte n'est pas présent. Il est construit sur la fonctionnalité de PDFMiner consistant à regrouper les caractères d'une page en mots et en phrases à l'aide de marges. Dans cette technique, tout d'abord, les lignes sont détectées en faisant des suppositions approximatives basées sur la position de l'axe y du texte (c'est-à-dire la hauteur). Tout le texte sur la même ligne est considéré comme faisant partie de la même ligne. Ensuite, le lecteur est regroupé et assemblé en un groupe différent pour identifier les colonnes du tableau. Enfin, le tableau est défini en fonction des lignes et des colonnes détectées lors des étapes précédentes.

Technique #2 Treillis : Contrairement au flux, Lattice est plus déterministe. Ce qui signifie qu'il ne repose pas sur des suppositions ; il analyse d'abord les tables qui ont défini des lignes entre les cellules. Ensuite, il peut analyser automatiquement plusieurs tables présentes sur une page. Cette technique fonctionne essentiellement en examinant la forme des polygones et en identifiant le texte à l'intérieur des cellules du tableau. Ce serait simple si un PDF avait une fonction qui peut identifier les polygones. Si c'était le cas, il aurait vraisemblablement une méthode pour lire ce qu'il y a à l'intérieur. Cependant, ce n'est pas le cas. Par conséquent, la vision par ordinateur est largement utilisée pour identifier ces formes et extraire le contenu du tableau.

Les tables extraites sont principalement enregistrées dans un format de bloc de données. C'est l'un des types de données natifs proposés par l'un des pandas de bibliothèque Python les plus populaires. Le stockage des données d'une table dans un bloc de données présente plusieurs avantages. Ils peuvent être facilement manipulés, manipulés et exportés dans différents formats tels que JSON, CSV ou des tableaux. Cependant, avant de pousser ces blocs de données dans des tables, nous devons d'abord nous connecter à la base de données DB-Client, puis migrer la table. En utilisant des langages comme Python, nous pouvons trouver plusieurs bibliothèques qui peuvent se connecter à ces sources de données et exporter des données.

PDF vers la base de données lorsque les documents ne sont pas générés électroniquement

Les techniques décrites ci-dessus peuvent ne pas fonctionner pour les fichiers PDF non générés électroniquement, car les données ici sont analysées manuellement via une source différente. C'est pourquoi nous utiliserons les techniques OCR et Deep Learning pour extraire les données des documents numérisés et les exporter dans des bases de données.

En bref, la reconnaissance optique de caractères, OCR est un outil spécial qui convertit les lettres imprimées à partir de documents numérisés en texte modifiable. Pour identifier les tableaux PDF à partir de documents, nous devons d'abord identifier la position du tableau, puis appliquer l'OCR pour extraire les données des cellules du tableau. Voici les étapes sur la façon dont il est réalisé:

  1. Tout d'abord, nous détectons les segments de ligne en appliquant des contours horizontaux et verticaux.
  2. Les intersections de lignes entre les lignes sont détectées en regardant l'intensité des pixels de toutes les lignes. Si un pixel de ligne a plus d'intensité que le reste du pixel, il fait partie de deux lignes et, par conséquent, d'une intersection.
  3. Les bords du tableau sont déterminés en regardant l'intensité des pixels des lignes intersectées. Ici, tous les pixels d'une ligne sont pris, et les lignes les plus externes représentent les limites du tableau.
  4. L'analyse d'image est traduite en coordonnées PDF, où les cellules sont déterminées. Le texte est affecté à une cellule en fonction de ses coordonnées x et y.
  5. L'OCR est appliqué aux coordonnées pour extraire le texte
  6. Le texte extrait est exporté dans un bloc de données en fonction de la position du tableau.

C'est ainsi que nous pouvons extraire des tableaux à l'aide de CV. Cependant, il y a quelques inconvénients ici. Ces algorithmes échouent pour les grandes tables et les tables avec différents styles de modèles. C'est là qu'intervient l'apprentissage en profondeur; ils utilisent un type spécial de cadre de réseau neuronal pour apprendre à partir des données et identifier des modèles similaires en fonction des apprentissages. Au cours de la dernière décennie, ils ont atteint des performances de pointe, en particulier pour des tâches telles que l'extraction d'informations. Voyons maintenant à quel point les réseaux de neurones peuvent apprendre des données et extraire des tableaux de n'importe quel document.

La formation de réseaux de neurones profonds implique un flux de travail spécifique ; ces flux de travail sont souvent modifiés en fonction du type de données avec lesquelles nous travaillons et des performances de leur modèle. La première phase du workflow consiste à collecter les données et à les traiter sur la base de notre modèle. Dans notre cas d'extraction des tableaux des documents PDF, le jeu de données devrait idéalement contenir des documents non structurés. Ces documents sont convertis en images, chargés en tant que tenseurs et préparés en tant que classe de chargeur de données pour la formation. Ensuite, nous définissons généralement tous les hyperparamètres nécessaires à la formation. Celles-ci incluent généralement la configuration de la taille du lot, de la fonction de perte et de l'optimiseur pour le modèle. Enfin, une architecture de réseau neuronal est définie ou construite sur un modèle prédéfini. Ce modèle sera formé au-dessus des données et affiné en fonction des mesures de performance.

Voici une capture d'écran des différentes étapes impliquées dans la formation d'un modèle d'apprentissage en profondeur :

Flux de travail de ML typique (Identifier)

Extraire des données de pdf et les exporter dans une base de données SQL à l'aide de Python

Jusqu'à présent, nous avons appris ce qu'est la conversion de pdf en base de données et avons discuté de certains cas d'utilisation où cela peut être utile. Cette section abordera pratiquement ce problème à l'aide de la vision par ordinateur et détectera les tableaux dans les fichiers PDF numérisés et les exportera dans des bases de données. Pour suivre, assurez-vous d'installer Python et OpenCV sur votre ordinateur local. Vous pouvez également utiliser un bloc-notes Google Collab en ligne.

Étape 1 : Installer Tabula et Pandas

Dans cet exemple, nous utiliserons Tabula et Pandas pour extraire et pousser des tables dans des bases de données. Installons-les via pip et importons-les dans notre programme.

import tabula
import pandas as pd

Étape 2 : Lire les tables dans la trame de données

Maintenant, nous allons utiliser le read_pdf fonction de tabula pour lire des tableaux à partir de fichiers PDF ; notez que cette bibliothèque ne fonctionne que sur les documents PDF générés électroniquement. Voici l'extrait de code :

table = tabula.read_pdf("sample.pdf",pages='all',multiple_tables=False)

df = pd.concat(table)

Ici, comme nous pouvons le voir, d'abord, nous utilisons pour lire le contenu du fichier PDF, nous définissons le paramètre multiple_tables à False, car le document utilisé dans l'exemple n'a qu'un seul tableau.

Maintenant, nous allons charger cette liste dans un bloc de données à l'aide de pandas, et vous pouvez vérifier le type de la table en utilisant la méthode type ; cela renverra une trame de données pandas native.

Étape 3 : Migrer Dataframe vers Postres

Avant de pousser notre table dans les bases de données, nous devons d'abord établir une connexion à partir de notre programme, et nous pouvons le faire en utilisant le sqlalchemy client en python. De même, différents langages de programmation proposent ce type de clients de base de données pour interagir avec les bases de données directement depuis nos programmes.

Dans ce programme, nous utiliserons le create_engine méthode qui nous permet de nous connecter à la base de données ; assurez-vous de remplacer les informations d'identification de la base de données dans la chaîne donnée pour que cela fonctionne. Ensuite, nous utilisons le write_frame fonction pour exporter la table extraite dans la base de données connectée.

engine = create_engine('postgresql+psycopg2://username:password@host:port/database')

sql.write_frame(df, 'table_name', con, flavor='postgresql')

Et juste comme ça, nous avons pu exporter des tableaux à partir de fichiers PDF dans la base de données, cela semble assez simple et facile car nous avons utilisé un simple PDF généré électroniquement et traité. Pour extraire des tables à partir de tables non générées électroniquement, voici les techniques d'apprentissage en profondeur populaires qui peuvent être utilisées :

  1. Papiers avec code - GFTE : Extraction de tableaux financiers basés sur des graphiques
  2. Articles avec code - PubTables-1M : vers un ensemble de données universel et des métriques pour la formation et l'évaluation des modèles d'extraction de table
  3. TableNet: modèle d'apprentissage en profondeur pour la détection de table de bout en bout et l'extraction de données tabulaires à partir d'images de documents numérisés

Entrez Nanonets: OCR avancé pour la conversion de table PDF en base de données

Cette section examinera comment les nanonets peuvent nous aider à créer des tables dans la base de données de manière plus personnalisable et plus simple.

Nanonets™ est un OCR basé sur le cloud qui peut vous aider à automatiser votre saisie manuelle de données à l'aide de l'IA. Nous aurons un tableau de bord où nous pourrons construire/former nos modèles OCR sur nos données et les transporter en JSON/CSV ou tout autre format souhaité. Voici quelques-uns des avantages de l'utilisation de Nanonets comme scanner de documents PDF.

L'un des points forts de Nanonets est la simplicité apportée par le service. On peut opter pour ces services sans aucune connaissance en programmation et extraire facilement des données PDF avec une technologie de pointe. Ce qui suit est un bref aperçu de la facilité avec laquelle il est possible de convertir un PDF dans la base de données.

Étape 1: Allez sur nanonets.com et inscrivez-vous/connectez-vous.

Convertir les données PDF en entrées de base de données PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Étape 2: Après l'inscription, accédez à la zone "Choisir pour commencer", où vous pouvez utiliser les extracteurs prédéfinis ou en créer un vous-même à l'aide de votre jeu de données. Ici, nous utiliserons l'extracteur de facture pré-construit Invoice.

Convertir les données PDF en entrées de base de données PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Étape 3: Téléchargez le PDF des images, pour effectuer l'extraction des données et choisissez l'option d'extraction automatique.

Convertir les données PDF en entrées de base de données PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Étape 4: Créez une nouvelle intégration MySQL pour exporter les données extraites dans la base de données. Alternativement, vous pouvez choisir différentes options en fonction des bases de données de votre choix.

Convertir les données PDF en entrées de base de données PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Établissez une connexion de données et cliquez sur Ajouter une intégration. Avec cela, les données seront extraites et automatiquement téléchargées sur une base de données chaque fois que les fichiers sont téléchargés. Si vous ne trouvez pas les intégrations requises, vous pouvez toujours utiliser l'API Nanonets et écrire des scripts simples pour effectuer l'automatisation.

Horodatage:

Plus de AI et apprentissage automatique