paint-brush
如何使用 GPT-4 提取 PDF 数据:综合指南 经过@docsumo
27,161 讀數
27,161 讀數

如何使用 GPT-4 提取 PDF 数据:综合指南

经过 Docsumo
Docsumo HackerNoon profile picture

Docsumo

@docsumo

Docsumo is a Document AI platform for tech & ops...

6 分钟 read2023/05/30
Read on Terminal Reader
Read this story in a terminal
Print this story

太長; 讀書

PDF 提取是从 PDF 文件中提取文本、图像或其他数据的过程。在本文中,我们探讨了当前的 PDF 数据提取方法、它们的局限性,以及如何使用 GPT-4 执行 PDF 提取的问答任务。我们还提供了实施 G PT-4 以提取 PDF 数据的分步指南。
featured image - 如何使用 GPT-4 提取 PDF 数据:综合指南
Docsumo HackerNoon profile picture
Docsumo

Docsumo

@docsumo

Docsumo is a Document AI platform for tech & ops teams to help them capture, validate & analyze data from documents.

0-item
1-item

STORY’S CREDIBILITY

Code License

Code License

The code in this story is for educational purposes. The readers are solely responsible for whatever they build with it.

Guide

Guide

Walkthroughs, tutorials, guides, and tips. This story will teach you how to do something new or how to do something better.

PDF 提取是从 PDF 文件中提取文本、图像或其他数据的过程。在本文中,我们探讨了当前的 PDF 数据提取方法、它们的局限性,以及如何使用 GPT-4 执行 PDF 提取的问答任务。我们还提供了实施 GPT-4 进行 PDF 数据提取的分步指南。


在本文中,我们讨论:

  • 目前PDF数据提取的方法及其局限性是什么?
  • 如何使用 GPT-4 查询一组 PDF 文件并找到任何问题的答案。具体来说,我们将探讨 PDF 提取的过程以及如何将其与 GPT-4 结合使用来执行问答任务。


那么,让我们直接进入吧。


什么是PDF提取?

PDF 数据提取是从 PDF(便携式文档格式)文件中提取文本、图像或其他数据的过程。这些文件广泛用于共享和存储文档,但它们的内容并不总是很容易访问。


为什么 PDF 提取很重要?

PDF 文件的可访问性和可读性对于那些有视力问题或难以阅读小或模糊文本的人来说非常必要,这对法律情况、数据分析和研究很有用。某些需要提取的情况包括在其他文档中使用 PDF 文件中的文本或图像内容以节省时间并避免错误。


PDF 数据提取的当前方法及其局限性是什么?

现在是 2023 年,互联网上有很多 PDF 提取技术和工具。让我们更深入地研究 3 种流行的数据提取技术和一些相同的示例:


1:OCR技术

OCROptical Character Recognition的缩写可用于从各种来源提取文本,包括扫描文档、图像和 PDF 文件,通常用于数字化印刷文档,例如书籍、报纸和历史文档。

一些流行的 OCR 工具包括:



2:模板

基于模板的技术考虑了文档 PDF 的样式并使用硬编码规则。这些技术通常适用于结构化文档,其结构保持不变且易于理解。


一些流行的基于模板的技术包括:

  • 使用正则表达式模式

    例如:可以通过以下正则表达式规则提取日期:

    [dd-mm-yyyy 或 yyyy-mm-dd] - [0-9]{2,4}/[0-9]{2}/[0-9]{2,4}

  • 基于文本位置和文档尺寸的硬编码规则


3:机器学习技术

机器学习 (ML) 技术被认为是提取 PDF 的最佳方法之一,因为无论文件结构如何,它都可以从 PDF 文件中高度准确地识别和提取文本。这些模型可以存储position of the textlayout和位置信息,同时还要记住相邻的文本。这有助于他们更好地概括并更有效地学习文档结构。


什么是法学硕士

大型语言模型是人工智能的一个子集,已经过大量文本数据的训练。例如:ChatGPT,它在整个互联网数据和信息上进行训练,以对对话或其他自然语言输入产生类似人类的反应。

为了产生这些自然语言响应,LLM 使用深度学习模型,该模型使用多层神经网络来处理、分析复杂数据并进行预测。


一些流行的 ML 模型包括:

  • 布局 LM v1、v2 和 v3 模型[ Github ]
  • DocBERT [ Github ]


机器学习模型的局限性

这类模型面临的一个主要问题是,他们只能从 PDF 中提取信息,而不知道提取的信息是否准确无误。提取的文本可能还包括另一个密钥中的一些其他密钥信息。拥有智能上下文有助于模型减少这些不准确性。


为了解决这个问题并将智能集成到 PDF 提取系统中,我们可以利用 GPT-4 的强大功能。


什么是 GPT-4 和 ChatGPT?

GPT-4(Generative Pre-trained Transformer 4)是 OpenAI 开发的一种大型语言模型,它使用深度学习技术生成类人自然语言文本。它是可用的最大和最强大的语言模型之一,具有 1750 亿个参数。

另一方面,Chat-GPT 是 GPT 的变体,专门针对对话式 AI 应用程序进行了训练。它已经在大型对话数据集上进行了微调,可以对用户查询生成类似人类的响应。 Chat GPT 可用于各种应用程序,包括聊天机器人、客户服务和虚拟助手。


让我们继续问题陈述,看看 GPT-4 和 ChatGPT 如何帮助我们解决 PDF 提取问题。


问题陈述

从 PDF 集合中高效提取特定信息的挑战是许多应用程序和行业经常遇到的挑战。从银行报表或税表中提取信息很困难。手动扫描大量 PDF 的老式方法会耗费大量时间,并且会产生不准确或不一致的数据。此外,PDF 中的非结构化数据使自动化系统难以提取必要的信息。


我们打算解决从 PDF 中找到用户问题答案的问题,而无需人工干预。


解决方案

我们可以利用 GPT-4 及其嵌入来发挥我们的优势:


  1. 生成文档嵌入以及用户查询的嵌入。
  2. 使用任何相似性方法(例如,余弦得分)识别最接近用户查询并可能包含答案的文档,然后,
  3. 将文档和用户的查询提供给 GPT-4 以发现准确的答案。

执行


第 1 步:解析 PDF

A:从PDF中提取文本

您可以使用任何 OCR 或 ML 技术从文档中提取文本


B:根据文档的结构将文本分成适当的小块

使用 Bounding-Box [x0, y0, x2, y2] 的坐标信息,其中 x0 和 y0 是左上坐标,x2 和 y2 是右下坐标,您可以将整个文本分成一定宽度的小块和身高。


C:将这些块编码为嵌入[使用OpenAI 嵌入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)


第 2 步:将向量嵌入存储在向量数据库中

什么是 Vector DB,为什么需要它?

  • 矢量数据库是专门构建的数据库,用于处理矢量嵌入的独特结构。它们通过比较值并找到彼此最相似的值来索引向量,以便于搜索和检索。示例包括 Pinecone 和 Weaviate。
  • 这个 V-DB 包含每个块片段的向量和文档本身


第 3 步:搜索与输入查询相关的块片段

A:计算用户查询的嵌入

使用与上述相同的技术来计算嵌入


B:从向量数据库中搜索块嵌入向量,其嵌入与用户查询的嵌入紧密匹配

您可以使用任何similarity search algorithm

您可以使用句子转换器库的语义句子相似度。

 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)


第 4 步:根据提供的块片段和用户查询向 GPT-4 询问答案

A:提供3个输入。

Input1 :用户查询

Input2 :与查询非常相似的块

输入 3:一些元指令(如果有)[系统:仅根据文档中提供的信息回答问题]


B:GPT-4 输出的答案

image


使用 GPT4 和 ChatGPT API 的好处?

正如我们已经知道的那样,由于 GPT4 是一个非常强大的 LLM,它可以包含大量上下文,令牌长度为 8,192 和 32,768 个令牌,因此生成非常准确的结果变得更加容易和非常快速。


ChatGPT API 与任何编程语言无缝集成,可以在下游任务中为我们提供更多帮助。


我们学到了什么?

  • 我们了解了不同的 PDF 和数据提取技术和工具
  • 这些模块和模型的局限性是什么
  • ChatGPT 和 GPT-4 在我们的用例中有什么帮助以及如何提供帮助,以及如何使用它们来解决从 PDF 中提取数据的问题


L O A D I N G
. . . comments & more!

About Author

Docsumo HackerNoon profile picture
Docsumo@docsumo
Docsumo is a Document AI platform for tech & ops teams to help them capture, validate & analyze data from documents.

標籤

这篇文章刊登在...

Read on Terminal Reader
Read this story in a terminal
 Terminal
Read this story w/o Javascript
Read this story w/o Javascript
 Lite
Also published here
X REMOVE AD