首頁  >  文章  >  後端開發  >  使用 Google Gemini 在 Python 行中從棘手的 PDF 中提取數據

使用 Google Gemini 在 Python 行中從棘手的 PDF 中提取數據

WBOY
WBOY原創
2024-07-19 15:27:28834瀏覽

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