>  기사  >  백엔드 개발  >  Python 라인에서 Google Gemini를 사용하여 까다로운 PDF에서 데이터 추출

Python 라인에서 Google Gemini를 사용하여 까다로운 PDF에서 데이터 추출

WBOY
WBOY원래의
2024-07-19 15:27:28835검색

이 가이드에서는 Gemini Flash 또는 GPT-4o와 같은 VLM(비전 언어 모델)을 사용하여 PDF에서 구조화된 데이터를 추출하는 방법을 보여 드리겠습니다.

Google의 최신 비전 언어 모델 시리즈인 Gemini는 텍스트 및 이미지 이해 분야에서 최고의 성능을 보여주었습니다. 이렇게 향상된 다중 모드 기능과 긴 컨텍스트 창을 사용하면 그림, 차트, 표, 다이어그램 등 기존 추출 모델에서 어려움을 겪는 시각적으로 복잡한 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의 경우:
터미널을 열고 다음 줄을 셸 구성 파일(예: ~/.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

Bill of Quantity 문서의 페이지 예입니다. 각 페이지의 데이터는 다른 페이지와 독립적이므로 "페이지별로" 추출을 수행합니다. 페이지당 추출할 데이터가 여러 개 있으므로 다중 추출을 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"
)

여기에서는 각 페이지를 AI 모델에 개별적으로 전송하려고 하기 때문에 Chunking_method="chunk_by_page"를 사용했습니다(PDF는 한 번에 모두 제공하기에는 너무 큽니다). 또한 PDF 페이지에는 각각 여러 행의 데이터가 포함되어 있으므로 multiple_extractions=True를 설정했습니다. 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.

위 내용은 Python 라인에서 Google Gemini를 사용하여 까다로운 PDF에서 데이터 추출의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.