L'extraction PDF est le processus d'extraction de texte, d'images ou d'autres données à partir d'un fichier PDF. Dans cet article, nous explorons les méthodes actuelles d'extraction de données PDF, leurs limites et comment GPT-4 peut être utilisé pour effectuer des tâches de questions-réponses pour l'extraction de PDF. Nous fournissons également un guide étape par étape pour la mise en œuvre de GPT-4 pour l'extraction de données PDF.
Alors, sautons directement dedans.
L'extraction de données PDF est le processus d'extraction de texte, d'images ou d'autres données à partir d'un fichier PDF (Portable Document Format). Ces fichiers sont largement utilisés pour partager et stocker des documents, mais leur contenu n'est pas toujours facilement accessible.
L'accessibilité et la lisibilité des fichiers PDF sont très nécessaires pour ceux qui ont des problèmes de vision ou ont du mal à lire des textes petits ou flous, utiles pour les situations juridiques, l'analyse de données et la recherche. Certains cas où l'extraction est nécessaire incluent l'utilisation de contenu texte ou image à partir de fichiers PDF dans d'autres documents pour gagner du temps et éviter les erreurs.
Nous sommes en 2023 et de nombreuses techniques et outils d'extraction de PDF sont disponibles sur Internet. Plongeons plus profondément dans les 3 techniques populaires d'extraction de données et quelques exemples de celles-ci :
OCR , ou abréviation de Optical Character Recognition
peut être utilisé pour extraire du texte à partir de diverses sources, y compris des documents numérisés, des images et des fichiers PDF, et est couramment utilisé pour numériser des documents imprimés tels que des livres, des journaux et des documents historiques.
Certains des outils OCR populaires incluent :
Les techniques basées sur des modèles tiennent compte du style du document PDF et utilisent des règles codées en dur. Ces techniques fonctionnent généralement sur des documents structurés, dont la structure reste constante et faciles à comprendre.
Utilisation du modèle regex
Ex : la date peut être extraite par la règle regex suivante :
[jj-mm-aaaa ou aaaa-mm-jj] - [0-9]{2,4}/[0-9]{2}/[0-9]{2,4}
Règles de codage en dur basées sur la position des textes et les dimensions des documents
Les techniques d'apprentissage automatique (ML) sont considérées comme l'une des meilleures méthodes d'extraction de PDF, car elles permettent une reconnaissance et une extraction de texte très précises à partir de fichiers PDF, quelle que soit la structure du fichier. Ces modèles peuvent stocker des informations sur la layout
et la position of the text
en gardant également à l'esprit le texte voisin. Cela les aide à mieux généraliser et à apprendre plus efficacement la structure du document.
Les grands modèles de langage sont un sous-ensemble de l'intelligence artificielle qui a été formé sur de grandes quantités de données textuelles. Par exemple : ChatGPT qui est formé sur l'ensemble des données et informations Internet pour produire des réponses de type humain au dialogue ou à d'autres entrées en langage naturel.
Afin de produire ces réponses en langage naturel, les LLM utilisent des modèles d'apprentissage en profondeur, qui utilisent des réseaux de neurones multicouches pour traiter, analyser et faire des prédictions avec des données complexes.
Limites des modèles ML
Un problème majeur auquel ce type de modèle est confronté est qu'ils peuvent simplement extraire les informations du PDF sans savoir si l'extraction est réellement précise et correcte. Les textes extraits peuvent également inclure d'autres informations sur les clés dans une autre clé. Avoir un contexte intelligent aide le modèle à atténuer ces inexactitudes.
Pour résoudre ce problème et intégrer l'intelligence dans le système d'extraction de PDF, nous pouvons tirer parti de la puissance de GPT-4.
GPT-4 (Generative Pre-trained Transformer 4) est un grand modèle de langage développé par OpenAI qui utilise des techniques d'apprentissage en profondeur pour générer un texte en langage naturel de type humain. C'est l'un des modèles de langage les plus grands et les plus puissants disponibles, avec 175 milliards de paramètres.
Chat-GPT, d'autre part, est une variante de GPT qui a été spécialement formée pour les applications d'IA conversationnelles. Il a été affiné sur un grand ensemble de données de conversation et peut générer des réponses de type humain aux requêtes des utilisateurs. Chat GPT peut être utilisé pour une variété d'applications, y compris les chatbots, le service client et les assistants virtuels.
Avançons avec l'énoncé du problème et examinons comment GPT-4 avec ChatGPT peut nous aider à résoudre le problème de l'extraction de PDF.
Le défi d'extraire efficacement des informations spécifiques d'une collection de fichiers PDF est un défi que de nombreuses applications et industries rencontrent régulièrement. L'extraction d'informations à partir de relevés bancaires ou de formulaires fiscaux est difficile. La méthode traditionnelle de numérisation manuelle de nombreux fichiers PDF prend beaucoup de temps et peut produire des données inexactes ou incohérentes. De plus, les données non structurées trouvées dans les fichiers PDF compliquent l'extraction des informations nécessaires par les systèmes automatisés.
Nous avons l'intention de résoudre le problème de trouver la réponse aux questions de l'utilisateur à partir du PDF avec peu d'intervention manuelle.
Nous pouvons utiliser le GPT-4 et ses intégrations à notre avantage :
Mise en œuvre
A : Extraire le texte du PDF
Vous pouvez utiliser n'importe laquelle des techniques OCR ou ML pour extraire le texte du document
B : Diviser le texte en petits morceaux appropriés en fonction de la structure du document
En utilisant les informations de coordonnées de Bounding-Box [x0, y0, x2, y2] où x0 et y0 sont les coordonnées en haut à gauche et x2 et y2 sont les coordonnées en bas à droite, vous pouvez diviser le texte entier en petits morceaux d'une certaine largeur et la hauteur.
C : Encodez ces morceaux dans Embeddings [utilisez OpenAI Embeddings ou HuggingFace ]
import torch from transformers import AutoTokenizer, AutoModel # Load the pre-trained model and tokenizer tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased') model = AutoModel.from_pretrained('bert-base-uncased') # Tokenize the sentence tokens = tokenizer.encode("<pass your code chunk block here>", return_tensors='pt') # Get the embeddings with torch.no_grad(): outputs = model(tokens) embeddings = outputs[0][0] # Print the embeddings print(embeddings)
Qu'est-ce qu'une BD vectorielle et pourquoi est-elle nécessaire ?
A : Calculer les représentations vectorielles continues pour la requête de l'utilisateur
Utilisez la même technique que celle mentionnée ci-dessus pour calculer les plongements
B : Rechercher un vecteur d'intégration de bloc dans la base de données vectorielle dont les intégrations correspondent étroitement aux intégrations de la requête de l'utilisateur
Vous pouvez utiliser n'importe quel similarity search algorithm
.
Vous pouvez utiliser Semantic Sentence Similarity de la bibliothèque de transformateurs de phrases.
from sentence_transformers import SentenceTransformer, util #Compute cosine-similarities for each code chunk embds with user's query embeddings cosine_scores = util.cos_sim(code_chunk_embds, user_query_embds)
A : Fournir 3 entrées.
Input1 : Requête de l'utilisateur
Input2 : Le morceau qui ressemblait beaucoup à la requête
Input3 : Quelques méta-instructions, le cas échéant [Système : Répondez aux questions uniquement sur la base des informations fournies dans le document]
B : La sortie GPT-4 est la réponse
Comme nous le savons déjà puisque GPT4 est un LLM si puissant qui peut incorporer une grande quantité de contexte avec une longueur de jeton de 8 192 et 32 768 jetons, produire des résultats très précis devient plus facile et très rapide.
L'API ChatGPT s'intègre de manière transparente à n'importe quel langage de programmation, ce qui peut nous aider davantage dans les tâches en aval.