在本指南中,我将向您展示如何使用 Gemini Flash 或 GPT-4o 等视觉语言模型 (VLM) 从 PDF 中提取结构化数据。
Gemini 是 Google 最新的视觉语言模型系列,在文本和图像理解方面表现出了最先进的性能。这种改进的多模式功能和长上下文窗口使其特别适用于处理传统提取模型难以处理的视觉上复杂的 PDF 数据,例如图形、图表、表格和图表。
通过这样做,您可以轻松构建自己的数据提取工具,用于可视化文件和网页提取。方法如下:
Gemini 的长上下文窗口和多模式功能使其对于处理传统提取模型难以处理的视觉复杂 PDF 数据特别有用。
在我们深入提取之前,让我们设置我们的开发环境。本指南假设您的系统上安装了 Python。如果没有,请从 https://www.python.org/downloads/
下载并安装它⚠️ 请注意,如果您不想使用 Python,您可以使用 thepi.pe 的云平台上传文件并将结果下载为 CSV,而无需编写任何代码。
打开终端或命令提示符并运行以下命令:
pip install git https://github.com/emcf/thepipe pip install pandas
对于 Python 新手来说,pip 是 Python 的包安装程序,这些命令将下载并安装必要的库。
要使用管道,您需要 API 密钥。
免责声明:虽然 thepi.pe 是一个免费的开源工具,但 API 是有成本的,每个代币大约为 0.00002 美元。如果您想避免此类成本,请查看 GitHub 上的本地设置说明。请注意,您仍然需要向您选择的 LLM 提供商付款。
获取和设置方法如下:
现在,您需要将其设置为环境变量。该过程因您的操作系统而异:
对于 Windows:
对于 macOS 和 Linux:
打开终端并将此行添加到 shell 配置文件(例如 ~/.bashrc 或 ~/.zshrc):
export THEPIPE_API_KEY=your_api_key_here
然后,重新加载您的配置:
source ~/.bashrc # or ~/.zshrc
成功提取的关键是为要提取的数据定义清晰的架构。假设我们正在从工程量清单文档中提取数据:
工程量清单文档中的页面示例。每个页面上的数据独立于其他页面,因此我们“每页”进行提取。每页要提取多条数据,所以我们设置多次提取为True
查看列名,我们可能想要提取如下模式:
schema = { "item": "string", "unit": "string", "quantity": "int", }
您可以在 pi.pe 平台上根据自己的喜好修改架构。单击“查看架构”将为您提供一个架构,您可以复制并粘贴以与 Python API 一起使用
现在,让我们使用 extract_from_file 从 PDF 中提取数据:
from thepipe.extract import extract_from_file results = extract_from_file( file_path = "bill_of_quantity.pdf", schema = schema, ai_model = "google/gemini-flash-1.5b", chunking_method = "chunk_by_page" )
在这里,我们有 chunking_method="chunk_by_page" 因为我们想将每个页面单独发送到 AI 模型(PDF 太大,无法一次全部发送)。我们还设置 multiple_extractions=True 因为每个 PDF 页面都包含多行数据。 PDF 页面如下所示:
在 pi.pe 平台上查看的工程量清单 PDF 的提取结果
提取结果以字典列表的形式返回。我们可以处理这些结果来创建 pandas DataFrame:
import pandas as pd df = pd.DataFrame(results) # Display the first few rows of the DataFrame print(df.head())
这将创建一个包含所有提取信息的 DataFrame,包括文本内容和图形和表格等视觉元素的描述。
现在我们已经将数据存储在 DataFrame 中,我们可以轻松地将其导出为各种格式。以下是一些选项:
df.to_excel("extracted_research_data.xlsx", index=False, sheet_name="Research Data")
这将创建一个名为“extracted_research_data.xlsx”的 Excel 文件,其中包含一个名为“Research Data”的工作表。 index=False 参数可防止 DataFrame 索引作为单独的列包含在内。
如果您喜欢更简单的格式,可以导出为 CSV:
df.to_csv("extracted_research_data.csv", index=False)
这将创建一个可以在 Excel 或任何文本编辑器中打开的 CSV 文件。
成功提取的关键在于定义清晰的模式并利用人工智能模型的多模式功能。随着您对这些技术越来越熟悉,您可以探索更高级的功能,例如自定义分块方法、自定义提取提示以及将提取过程集成到更大的数据管道中。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3