首页  >  文章  >  后端开发  >  使用 Google Gemini 在 Python 行中从棘手的 PDF 中提取数据

使用 Google Gemini 在 Python 行中从棘手的 PDF 中提取数据

WBOY
WBOY原创
2024-07-19 15:27:28835浏览

在本指南中,我将向您展示如何使用 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 密钥

要使用管道,您需要一个 API 密钥。

免责声明:虽然 thepi.pe 是一个免费的开源工具,但 API 是有成本的,每个代币大约为 0.00002 美元。如果您想避免此类成本,请查看 GitHub 上的本地设置说明。请注意,您仍然需要向您选择的 LLM 提供商付款。

获取和设置方法如下:

  1. 访问 https://thepi.pe/platform/
  2. 创建帐户或登录
  3. 在设置页面中找到您的 API 密钥

Extracting Data from Tricky PDFs with Google Gemini in lines of Python

现在,您需要将其设置为环境变量。该过程因您的操作系统而异:

  • 从 pi.pe 平台上的设置菜单复制 API 密钥

对于 Windows:

  1. 在开始菜单中搜索“环境变量”
  2. 点击“编辑系统环境变量”
  3. 点击“环境变量”按钮
  4. 在“用户变量”下,单击“新建”
  5. 将变量名称设置为 THEPIPE_API_KEY,并将值设置为您的 API 密钥
  6. 点击“确定”保存

对于 macOS 和 Linux:
打开终端并将此行添加到 shell 配置文件(例如 ~/.bashrc 或 ~/.zshrc):

export THEPIPE_API_KEY=your_api_key_here

然后,重新加载您的配置:

source ~/.bashrc # or ~/.zshrc

定义您的提取模式

成功提取的关键是为要提取的数据定义清晰的架构。假设我们正在从工程量清单文档中提取数据:

Extracting Data from Tricky PDFs with Google Gemini in lines of Python

工程量清单文档中的页面示例。每个页面上的数据独立于其他页面,因此我们“每页”进行提取。每页要提取多条数据,所以我们将多次提取设置为True

查看列名,我们可能想要提取如下模式:

schema = {
  "item": "string",
  "unit": "string",
  "quantity": "int",
}

您可以在 pi.pe 平台上根据自己的喜好修改架构。单击“查看架构”将为您提供一个架构,您可以复制并粘贴以与 Python API 一起使用

Image description

从 PDF 中提取数据

现在,让我们使用 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 页面如下所示:

Image description

在 thepi.pe 平台上查看的工程量清单 PDF 的提取结果

Processing the Results

The extraction results are returned as a list of dictionaries. We can process these results to create a pandas DataFrame:

import pandas as pd
df = pd.DataFrame(results)
# Display the first few rows of the DataFrame
print(df.head())

This creates a DataFrame with all the extracted information, including textual content and descriptions of visual elements like figures and tables.

Exporting to Different Formats

Now that we have our data in a DataFrame, we can easily export it to various formats. Here are some options:

Exporting to Excel

df.to_excel("extracted_research_data.xlsx", index=False, sheet_name="Research Data")

This creates an Excel file named "extracted_research_data.xlsx" with a sheet named "Research Data". The index=False parameter prevents the DataFrame index from being included as a separate column.

Exporting to CSV

If you prefer a simpler format, you can export to CSV:

df.to_csv("extracted_research_data.csv", index=False)

This creates a CSV file that can be opened in Excel or any text editor.

Ending Notes

The key to successful extraction lies in defining a clear schema and utilizing the AI model's multimodal capabilities. As you become more comfortable with these techniques, you can explore more advanced features like custom chunking methods, custom extraction prompts, and integrating the extraction process into larger data pipelines.

以上是使用 Google Gemini 在 Python 行中从棘手的 PDF 中提取数据的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn